{"version":3,"file":"static/js/main.23469ada.js","mappings":"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C,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,GAAGC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEjB,EAAI,EAAE,EAAE,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGC,EAAI,GAAG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K,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,QAAW,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,QAAW,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,QAAW,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,QAAW,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,iBCC7oIC,EAAkB,u8ECKzBC,EAAwB,IAAI1kE,OAAO,IAAIptB,OAAO6xF,EAAgBE,SAE9DC,GAAyB,IAAI5kE,OAAO,GAAGptB,OAAO6xF,EAAgBE,OAAQ,MACtEE,GAAsB,uBACX,SAASC,GAAcC,EAAclgH,EAAMmgH,EAAI5zG,GAC1D,IAUI6zG,EAqBAC,EA/BA16D,EAAOu6D,EAAav6D,KAAMi5D,EAAWsB,EAAatB,SAAUrC,EAAY2D,EAAa3D,UACrFE,EAAWlwG,EAAQkwG,SAAUrsG,EAAQ7D,EAAQ6D,MAAOusG,EAAkBpwG,EAAQowG,gBAC9E2D,EAAyBtgH,EAAK+8G,QAAQC,GAAG,GAGzCuD,EAAuB,KAM3B,GALiB,YAAb9D,GAA0BF,IAC1BgE,EAwWR,SAAkCL,EAAcC,EAAIngH,EAAMoQ,EAAOwsG,EAAgBC,EAAiBF,GAC9F,IAAI3gH,EAIAmrG,EAHAkX,EAAgB6B,EAAa7B,cAAe14D,EAAOu6D,EAAav6D,KAAM42D,EAAY2D,EAAa3D,UAC/Fa,EAAeplD,OAAOlgD,KAAKg7C,IAAI,GAAIypD,IACnC+D,EAAyBtgH,EAAK+8G,QAAQC,GAAG,GAE7C,GAAc,aAAV5sG,GAA4C,SAApBysG,EAA4B,CACpD,IAII2D,EAAmD,QAA7BxkH,IAJtBykH,EAAoBzgH,EAAK+8G,QAAQf,UACAW,IACjC8D,EAAkBH,IAEsBrD,aAA0B,IAAPjhH,OAAgB,EAASA,EAAGohH,GAC3F,IAAKoD,EACD,OAAO,KAEXrZ,EAAUuZ,GAAaP,EAAI9B,EAAemC,OAEzC,CACD,IAAIC,EAGAE,IAHAF,EAAoBzgH,EAAK+8G,QAAQ7lF,SACIylF,IACrC8D,EAAkBH,IACmB1D,GAAgBQ,GACzD,IAAKuD,EACD,OAAO,KAEXxZ,EAAUuZ,GAAaP,EAAI9B,EAAesC,GAK9C,GAAgB,MAAZxZ,EACA,OAAO,KAOX,OALAA,EAAUyZ,GAAkBzZ,EAASxhD,GAEhC9K,QAAQ,uBAAqB,UAE7BA,QAAQ,KAAM,KA7YQgmE,CAAyBX,EAAcC,EAAIngH,EAAMoQ,EAAO7D,EAAQqwG,eAAgBrwG,EAAQswG,gBAAiBF,IAItH,aAAVvsG,GAAoD,SAA5B7D,EAAQswG,gBAA4B,CAC5D,IAAIiE,EAAoB9gH,EAAK+gH,WAAWx0G,EAAQyvG,UAChD,GAAI8E,EACA,OAAQv0G,EAAQswG,iBACZ,IAAK,OACDuD,EAAsB7zG,EAAQyvG,SAC9B,MACJ,IAAK,SACDoE,EAAsBU,EAAkB13B,OACxC,MACJ,QACIg3B,EAAsBU,EAAkBE,YAMhDZ,EAAsB7zG,EAAQyvG,SAItC,GAAKuE,EAyBDF,EAAgBE,OAtBhB,GAAc,YAAVnwG,GACU,SAAVA,GACW,aAAVA,GAAoD,SAA5B7D,EAAQswG,gBAIjCwD,EAAgBO,IAFE5gH,EAAK+8G,QAAQ7lF,QAAQylF,IACnC38G,EAAK+8G,QAAQ7lF,QAAQopF,IACqBW,SAAUt7D,QAEvD,GAAc,aAAVv1C,EAAsB,CAI3BiwG,EAAgBO,IAHZM,EAAelhH,EAAK+8G,QAAQf,SAASW,IACrC38G,EAAK+8G,QAAQf,SAASsE,IAEqB/zG,EAAQ40G,cAAex7D,OAErE,CAID06D,EAAgBO,GAFK5gH,EAAK+8G,QAAQqE,QAAQzE,IACtC38G,EAAK+8G,QAAQqE,QAAQd,GACyB36D,GAQ1D,IAAI07D,EAAuBrB,GAAoBt/G,KAAK2/G,GAAe,GAQnE,GAJAA,EAAgBA,EACXxlE,QAAQmlE,GAAqB,OAC7BnlE,QAAQ,SAAU,MAET,aAAVzqC,GAAoD,SAA5B7D,EAAQswG,gBAA4B,CAC5D,IAAIqE,EAcAI,GAdAJ,EAAelhH,EAAK+8G,QAAQf,SAASW,IACrC38G,EAAK+8G,QAAQf,SAASsE,IAaOiB,gBAAgBC,mBAC7CF,IAAkBvB,GAAuB1qF,KAAK+qF,KAC9CC,EAAgBA,EAAcxlE,QAAQ,UAAQ,OAAS9sB,OAAOuzF,EAAe,SAEjF,IAAIG,EAAiBP,EAAaK,gBAAgBG,oBAC9CD,IAAmB5B,EAAsBxqF,KAAK+qF,KAC9CC,EAAgBA,EAAcxlE,QAAQ,UAAQ,MAAM9sB,OAAO0zF,EAAgB,UAQnF,IAJA,IAAIE,EAAqBtB,EAAczgH,MAAM,kCACzCgiH,EAAc,GACdC,EAAU7hH,EAAK+8G,QAAQ8E,QAAQlF,IAC/B38G,EAAK+8G,QAAQ8E,QAAQvB,GAChBwB,EAAK,EAAGC,EAAuBJ,EAAoBG,EAAKC,EAAqBtvH,OAAQqvH,IAAM,CAEhG,GADIE,EAAOD,EAAqBD,GAIhC,OAAQE,GACJ,IAAK,MAEDJ,EAAY7uH,KAAKolB,MAAMypG,EAAaK,GAAwBJ,EAAS3B,EAAczD,EAAUmC,EAAUjC,GAEtG4D,GAAwBh0G,EAAQ21G,YAAab,IAC9C,MAEJ,IAAK,IACDO,EAAY7uH,KAAK,CAAE+iB,KAAM,YAAa/hB,MAAO8tH,EAAQM,YACrD,MACJ,IAAK,IACDP,EAAY7uH,KAAK,CAAE+iB,KAAM,WAAY/hB,MAAO8tH,EAAQO,WACpD,MACJ,IAAK,IACDR,EAAY7uH,KAAK,CAAE+iB,KAAM,cAAe/hB,MAAO8tH,EAAQQ,cACvD,MACJ,IAAK,OAEDT,EAAY7uH,KAAK,CAAE+iB,KAAM,WAAY/hB,MAAOqsH,IAC5C,MACJ,QACQ,QAAQ/qF,KAAK2sF,GACbJ,EAAY7uH,KAAK,CACb+iB,KAAM,UACN/hB,MAAOiuH,EAAK7jF,UAAU,EAAG6jF,EAAKvvH,OAAS,KAK3CmvH,EAAY7uH,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAOiuH,KAQ3D,OAAQ5xG,GACJ,IAAK,WAED,GAAgC,SAA5B7D,EAAQswG,gBAA4B,CACpC,IAAIyF,GAAetiH,EAAK+8G,QAAQf,SAASW,IACrC38G,EAAK+8G,QAAQf,SAASsE,IAAyBgC,YAE/CC,OAAW,EACXC,EAAmBxiH,EAAK+gH,WAAWx0G,EAAQyvG,UAE3CuG,EADAC,EACW9B,GAAaP,EAAID,EAAa7B,cAAgBvmG,KAAKg7C,IAAI,GAAI8rD,GAAW4D,EAAiBnhH,aAIvFkL,EAAQyvG,SAKvB,IAFA,IACIh7G,EAAS,GACJhF,EAAK,EAAGymH,EAFMH,EAAY1iH,MAAM,eAEe5D,EAAKymH,EAAmBhwH,OAAQuJ,IAAM,CAE1F,OADIgmH,EAAOS,EAAmBzmH,IAE1B,IAAK,MACDgF,EAAOjO,KAAKolB,MAAMnX,EAAQ4gH,GAC1B,MACJ,IAAK,MACD5gH,EAAOjO,KAAK,CAAE+iB,KAAM,WAAY/hB,MAAOwuH,IACvC,MACJ,QACQP,GACAhhH,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAOiuH,KAKtD,OAAOhhH,EAGP,OAAO4gH,EAGf,IAAK,OACD,IAAIj+G,EAAO4I,EAAQ5I,KAAM++G,EAAcn2G,EAAQm2G,YAC3CC,EAAW3iH,EAAKk8G,MAAM0G,OAAOj/G,GAC7B2+G,OAAc,EAClB,GAAIK,EAEAL,EAAc5B,GAAaP,EAAID,EAAa7B,cAAgBvmG,KAAKg7C,IAAI,GAAI8rD,GAAW5+G,EAAKk8G,MAAM0G,OAAOj/G,GAAM++G,QAE3G,CAID,IAAInsG,EAAK5S,EAAK/D,MAAM,SAAUijH,EAAgBtsG,EAAG,GAAIusG,EAAkBvsG,EAAG,GAC1EosG,EAAW3iH,EAAKk8G,MAAM0G,OAAOC,GAC7B,IAAIE,EAAuBrC,GAAaP,EAAID,EAAa7B,cAAgBvmG,KAAKg7C,IAAI,GAAI8rD,GAAW5+G,EAAKk8G,MAAM0G,OAAOC,GAAeH,IAC9HM,EAAiBhjH,EAAKk8G,MAAM0G,OAAOE,GAAiBG,QAAQP,GAChE,GAAIM,EAEAV,EAAcU,EAAenoE,QAAQ,MAAOkoE,OAE3C,CAGD,IAAIG,EAAaljH,EAAKk8G,MAAMiH,SAASC,IAAIV,GACrCW,EAAqB3C,GAAaP,EAAI,EAAGngH,EAAKk8G,MAAM0G,OAAOE,GAAiBJ,IAChFJ,EAAcA,EAAcY,EACvBroE,QAAQ,MAAOkoE,GACfloE,QAAQ,MAAOwoE,EAAmBxoE,QAAQ,MAAO,MAG1D75C,EAAS,GAEb,IAFA,IAESsiH,EAAK,EAAGC,EAAKjB,EAAY1iH,MAAM,iBAAkB0jH,EAAKC,EAAG9wH,OAAQ6wH,IAAM,CAC5E,IAAItB,EAAOuB,EAAGD,GACVE,EAAmB,oBAAoB9iH,KAAKshH,GAC5CwB,GAEIA,EAAiB,IACjBxiH,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAOyvH,EAAiB,KAG3DxiH,EAAOjO,KAAKolB,MAAMnX,EAAQ4gH,GAEtB4B,EAAiB,IACjBxiH,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAOyvH,EAAiB,MAGtDxB,GACLhhH,EAAOjO,KAAK,CAAE+iB,KAAM,OAAQ/hB,MAAOiuH,IAG3C,OAAOhhH,EAEX,QACI,OAAO4gH,GAMnB,SAASK,GAAwBJ,EAAS3B,EAAczD,EAAUmC,EAAUjC,EAAiBuF,EAQ7Fb,GACI,IAAIrgH,EAAS,GAET6oD,EAAIq2D,EAAa9B,gBAAiBj7G,EAAI+8G,EAAa7B,cACvD,GAAI1iF,MAAMx4B,GACN,MAAO,CAAC,CAAE2S,KAAM,MAAO/hB,MAAO81D,IAE7B,IAAKyuD,SAASn1G,GACf,MAAO,CAAC,CAAE2S,KAAM,WAAY/hB,MAAO81D,IAEvC,IAAI45D,EAAwB9D,EAAahD,GACrC8G,IACA55D,EAAIA,EAAEhP,QAAQ,OAAO,SAAU6oE,GAAS,OAAOD,GAAuBC,IAAUA,MAIpF,IACIjjB,EACAkjB,EAFAC,EAAkB/5D,EAAEvxD,QAAQ,KAgBhC,GAbIsrH,EAAkB,GAClBnjB,EAAU52C,EAAEjyD,MAAM,EAAGgsH,GACrBD,EAAW95D,EAAEjyD,MAAMgsH,EAAkB,IAGrCnjB,EAAU52C,EAQVq4D,IAA6B,YAAbzF,GAA0Bt5G,GAAK,KAAQ,CACvD,IAAI0gH,EAAiBhC,EAAQhlG,MACzBuB,EAAS,GAOT0lG,EADuBzC,EAAqBzhH,MAAM,KAAK,GAClBA,MAAM,KAC3CmkH,EAAsB,EACtBC,EAAwB,EACxBF,EAAcrxH,OAAS,IACvBsxH,EAAsBD,EAAcA,EAAcrxH,OAAS,GAAGA,QAE9DqxH,EAAcrxH,OAAS,IACvBuxH,EAAwBF,EAAcA,EAAcrxH,OAAS,GAAGA,QAEpE,IAAIyL,EAAIuiG,EAAQhuG,OAASsxH,EACzB,GAAI7lH,EAAI,EAAG,CAKP,IAHAkgB,EAAOrrB,KAAK0tG,EAAQ7oG,MAAMsG,EAAGA,EAAI6lH,IAG5B7lH,GAAK8lH,EAAuB9lH,EAAI,EAAGA,GAAK8lH,EACzC5lG,EAAOrrB,KAAK0tG,EAAQ7oG,MAAMsG,EAAGA,EAAI8lH,IAErC5lG,EAAOrrB,KAAK0tG,EAAQ7oG,MAAM,EAAGsG,EAAI8lH,SAGjC5lG,EAAOrrB,KAAK0tG,GAEhB,KAAOriF,EAAO3rB,OAAS,GAAG,CACtB,IAAIwxH,EAAe7lG,EAAOmsB,MAC1BvpC,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAOkwH,IAClC7lG,EAAO3rB,OAAS,GAChBuO,EAAOjO,KAAK,CAAE+iB,KAAM,QAAS/hB,MAAO8vH,UAK5C7iH,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAO0sG,IAM1C,QAHiBl2F,IAAbo5G,GACA3iH,EAAOjO,KAAK,CAAE+iB,KAAM,UAAW/hB,MAAO8tH,EAAQ3qF,SAAW,CAAEphB,KAAM,WAAY/hB,MAAO4vH,KAEtE,eAAblH,GAA0C,gBAAbA,IAC9BnE,SAASn1G,GAAI,CACbnC,EAAOjO,KAAK,CAAE+iB,KAAM,oBAAqB/hB,MAAO8tH,EAAQqC,cACpDtF,EAAW,IACX59G,EAAOjO,KAAK,CAAE+iB,KAAM,oBAAqB/hB,MAAO8tH,EAAQM,YACxDvD,GAAYA,GAEhB,IAAIuF,EAAiB5F,EAAWK,EAAU,EAAG,GAC7C59G,EAAOjO,KAAK,CACR+iB,KAAM,kBACN/hB,MAAOowH,EAAe/F,kBAG9B,OAAOp9G,EAEX,SAAS4/G,GAAkBzZ,EAASxhD,GAC5BwhD,EAAQ7uG,QAAQ,KAAO,IACvB6uG,EAAU,GAAGp5E,OAAOo5E,EAAS,MAAMp5E,OAAOo5E,IAE9C,IAAInrG,EAAKmrG,EAAQvnG,MAAM,KAAMwkH,EAAcpoH,EAAG,GAAIqoH,EAAkBroH,EAAG,GACvE,OAAQ2pD,GACJ,KAAK,EACD,OAAOy+D,EACX,KAAM,EACF,OAAOC,EACX,QACI,OAAOA,EAAgB/rH,QAAQ,MAAQ,EACjC+rH,EAAgBxpE,QAAQ,KAAM,KAC9B,IAAI9sB,OAAOq2F,IAkD7B,SAAS1D,GAAaP,EAAIh9G,EAAGioF,GACzB,OAAOA,EAAM+0B,EAAGlgH,OAAOkD,KAAOioF,EAAMiyB,MC5ZjC,SAASiH,GAAuBhI,EAAcn5G,EAAGnH,GACpD,IAAIua,EAQAszC,EAuBAlE,EA9BA62D,EAAmBxgH,EAAGwgH,iBACtBjC,EAAgBiC,EAAiBF,GACjC6D,EAAK5F,EAAc4F,GAAIzD,EAAiBnC,EAAcmC,eAAgBC,EAAkBpC,EAAcoC,gBACtGkF,EAAUnF,EAAeK,QAAQ8E,QAAQlF,IACzCD,EAAeK,QAAQ8E,QAAQnF,EAAeK,QAAQC,GAAG,IACzDT,EAAY,EACZqC,EAAW,EAEf,GAAIjjF,MAAMx4B,GACN0mD,EAAIg4D,EAAQ0C,SAEX,GAAKjM,SAASn1G,GAGd,CAC2B,YAAxBo3G,EAAcnqG,QACdjN,GAAK,KAKLy7G,GAFJroG,EAAKgpG,EAAgBjD,EAAcn5G,EAAG,CAClCq5G,iBAAkBA,KACJ,GAAID,EAAYhmG,EAAG,GAGrC,IAAIipG,EAAqBX,EAAsBtE,EAD/Cp3G,EAAIy7G,EAAW,EAAIz7G,EAAI2U,KAAKg7C,IAAI,IAAK8rD,GAAYz7G,EAAI2U,KAAKg7C,IAAI,GAAI8rD,IAElE/0D,EAAI21D,EAAmBpB,gBACvBj7G,EAAIq8G,EAAmBnB,mBAdvBx0D,EAAIg4D,EAAQ2C,SAoBhB,OADkBjK,EAAckK,aAE5B,IAAK,QACD9+D,EAAO,EACP,MACJ,IAAK,OAEGA,EADA4yD,EAAUp1G,EAAG,IAAMA,EAAI,GAAKw4B,MAAMx4B,GAC3B,GAGC,EAEZ,MACJ,IAAK,SAEGwiD,EADA4yD,EAAUp1G,EAAG,IAAMA,EAAI,GAAKw4B,MAAMx4B,GAC3B,GAGC,EAEZ,MACJ,QAGQwiD,EADM,IAANxiD,GAAWw4B,MAAMx4B,GACV,EAEFA,EAAI,EACF,GAGC,EAGpB,OAAO88G,GAAc,CAAE5B,cAAel7G,EAAGi7G,gBAAiBv0D,EAAG+0D,SAAUA,EAAUrC,UAAWA,EAAW52D,KAAMA,GAAQ40D,EAAcmC,eAAgByD,EAAI5F,GCvEpJ,SAASmK,GAAqBC,EAAIxhH,EAAGyhH,GAGxC,IAFA,IAAIzpG,EAAQmpG,GAAuBK,EAAIxhH,EAAGyhH,GACtC5jH,EAAS03G,EAAY,GAChBoJ,EAAK,EAAG+C,EAAU1pG,EAAO2mG,EAAK+C,EAAQpyH,OAAQqvH,IAAM,CACzD,IAAIE,EAAO6C,EAAQ/C,GACnB9gH,EAAOjO,KAAK,CACR+iB,KAAMksG,EAAKlsG,KACX/hB,MAAOiuH,EAAKjuH,QAGpB,OAAOiN,iBCNJ,SAAS8jH,GAA2BH,EAAIp4G,EAASvQ,QACpC,IAAZuQ,IAAsBA,EAAUtT,OAAOw4B,OAAO,OAClD,IACI8oF,GAAgBiC,EADGxgH,EAAGwgH,kBACWmI,GACjCv0G,EAAQ8qG,EAAU3uG,EAAS,QAAS,SAAU,CAAC,UAAW,UAAW,WAAY,QAAS,WAC9FguG,EAAcnqG,MAAQA,EACtB,IAAI4rG,EAAWd,EAAU3uG,EAAS,WAAY,cAAUhC,OAAWA,GACnE,QAAiBA,IAAbyxG,IAA2BD,EAAyBC,GACpD,MAAMlB,WAAW,2BAErB,GAAc,aAAV1qG,QAAqC7F,IAAbyxG,EACxB,MAAM9D,UAAU,gCAEpB,IAAI2E,EAAkB3B,EAAU3uG,EAAS,kBAAmB,SAAU,CAAC,OAAQ,SAAU,eAAgB,QAAS,UAC9G40G,EAAejG,EAAU3uG,EAAS,eAAgB,SAAU,CAAC,WAAY,cAAe,YACxF5I,EAAOu3G,EAAU3uG,EAAS,OAAQ,cAAUhC,OAAWA,GAC3D,QAAaA,IAAT5G,IAAuBs4G,EAA2Bt4G,GAClD,MAAMm3G,WAAW,iDAErB,GAAc,SAAV1qG,QAA6B7F,IAAT5G,EACpB,MAAMu0G,UAAU,4BAEpB,IAAIwK,EAAcxH,EAAU3uG,EAAS,cAAe,SAAU,CAAC,QAAS,SAAU,QAAS,SAC7E,aAAV6D,IACAmqG,EAAcyB,SAAWA,EAASnE,cAClC0C,EAAcsC,gBAAkBA,EAChCtC,EAAc4G,aAAeA,GAEnB,SAAV/wG,IACAmqG,EAAc52G,KAAOA,EACrB42G,EAAcmI,YAAcA,GC/B7B,SAASqC,GAA4BxK,EAAeY,EAAM6J,EAAaC,EAAaxI,GACvF,IAAIyI,EAAOnK,EAAgBI,EAAM,uBAAwB,EAAG,GAAI,GAC5DgK,EAAOhK,EAAKgE,sBACZiG,EAAOjK,EAAKiE,sBACZiG,EAAOlK,EAAK8D,yBACZqG,EAAOnK,EAAK+D,yBAEhB,GADA3E,EAAc+E,qBAAuB4F,OACxB36G,IAAT86G,QAA+B96G,IAAT+6G,EACtB/K,EAAcyE,aAAe,oBAC7BqG,EAAOzK,EAAoByK,EAAM,EAAG,GAAI,GACxCC,EAAO1K,EAAoB0K,EAAMD,EAAM,GAAI,IAC3C9K,EAAc0E,yBAA2BoG,EACzC9K,EAAc2E,yBAA2BoG,OAExC,QAAa/6G,IAAT46G,QAA+B56G,IAAT66G,EAAoB,CAC/C7K,EAAcyE,aAAe,iBAC7BmG,EAAOvK,EAAoBuK,EAAM,EAAG,GAAIH,GAExCI,EAAOxK,EAAoBwK,EAAMD,EAAM,GADfrtG,KAAKC,IAAIotG,EAAMF,IAEvC1K,EAAc4E,sBAAwBgG,EACtC5K,EAAc6E,sBAAwBgG,MAEpB,YAAb3I,EACLlC,EAAcyE,aAAe,mBAG7BzE,EAAcyE,aAAe,iBAC7BzE,EAAc4E,sBAAwB6F,EACtCzK,EAAc6E,sBAAwB6F,GCtBvC,SAASM,GAAuBZ,EAAItN,EAAS8D,EAAMn/G,GACtD,IAAIwgH,EAAmBxgH,EAAGwgH,iBAAkBgJ,EAAaxpH,EAAGwpH,WAAYC,EAAmBzpH,EAAGypH,iBAAkBC,EAAuB1pH,EAAG0pH,qBAAsBC,EAAmB3pH,EAAG2pH,iBAAkBjG,EAAqB1jH,EAAG0jH,mBAE5NkG,EAAmBxO,EAAuBC,GAC1C9qG,EAAUouG,EAAsBQ,GAChC0K,EAAM5sH,OAAOw4B,OAAO,MACpBq0F,EAAU5K,EAAU3uG,EAAS,gBAAiB,SAAU,CAAC,SAAU,YAAa,YACpFs5G,EAAIE,cAAgBD,EACpB,IAAInJ,EAAkBzB,EAAU3uG,EAAS,kBAAmB,cAAUhC,OAAWA,GACjF,QAAwBA,IAApBoyG,GACA+I,EAAqBptH,QAAQqkH,GAAmB,EAGhD,MAAM7B,WAAW,6BAA6B/sF,OAAO4uF,IAEzDkJ,EAAI7I,GAAKL,EACT,IAAIjkD,GAAIstD,EAAAA,GAAAA,GAAcP,EAAkBG,EAAkBC,EAE1D,CAAC,MAAOL,EAAYG,GAChBjJ,EAAiB8I,EAAW9sD,EAAEutD,aAClCC,EAAAA,EAAAA,MAAYxJ,EAAgB,2BAA2B3uF,OAAO2qC,EAAEutD,aAChE,IAAI1L,EAAgBiC,EAAiBmI,GACrCpK,EAAcr7G,OAASw5D,EAAEx5D,OACzBq7G,EAAc0L,WAAavtD,EAAEutD,WAC7B1L,EAAcoC,gBAAkBjkD,EAAEskD,GAClCzC,EAAcmC,eAAiBA,EAC/BoI,GAA2BH,EAAIp4G,EAAS,CAAEiwG,iBAAkBA,IAC5D,IACIwI,EACAC,EAFA70G,EAAQmqG,EAAcnqG,MAG1B,GAAc,aAAVA,EAAsB,CACtB,IACI+1G,EAAU1G,EADClF,EAAcyB,SACU,CAAE0D,mBAAoBA,IAC7DsF,EAAcmB,EACdlB,EAAckB,OAGdnB,EAAc,EACdC,EAAwB,YAAV70G,EAAsB,EAAI,EAE5C,IAAIqsG,EAAWvB,EAAU3uG,EAAS,WAAY,SAAU,CAAC,WAAY,aAAc,cAAe,WAAY,YAC9GguG,EAAckC,SAAWA,EACzBsI,GAA4BxK,EAAehuG,EAASy4G,EAAaC,EAAaxI,GAC9E,IAAIG,EAAiB1B,EAAU3uG,EAAS,iBAAkB,SAAU,CAAC,QAAS,QAAS,SACtE,YAAbkwG,IACAlC,EAAcqC,eAAiBA,GAEnC,IAAIsF,EAAchH,EAAU3uG,EAAS,cAAe,eAAWhC,GAAW,GAC1EgwG,EAAc2H,YAAcA,EAC5B,IAAIuC,EAAcvJ,EAAU3uG,EAAS,cAAe,SAAU,CAAC,OAAQ,QAAS,SAAU,cAAe,QAEzG,OADAguG,EAAckK,YAAcA,EACrBE,ECzDJ,SAASyB,GAAiBjf,GAM7B,IALA,IAAInmG,EAAS,GACTqlH,EAAalf,EAAQ7uG,QAAQ,KAC7BguH,EAAW,EACXlsH,EAAY,EACZ3H,EAAS00G,EAAQ10G,OACd4zH,EAAalf,EAAQ10G,QAAU4zH,GAAc,GAChDC,EAAWnf,EAAQ7uG,QAAQ,IAAK+tH,IAChCH,EAAAA,EAAAA,IAAUI,EAAWD,EAAY,mBAAmBt4F,OAAOo5E,IACvDkf,EAAajsH,GACb4G,EAAOjO,KAAK,CACR+iB,KAAM,UACN/hB,MAAOozG,EAAQhpE,UAAU/jC,EAAWisH,KAG5CrlH,EAAOjO,KAAK,CACR+iB,KAAMqxF,EAAQhpE,UAAUkoF,EAAa,EAAGC,GACxCvyH,WAAOwW,IAEXnQ,EAAYksH,EAAW,EACvBD,EAAalf,EAAQ7uG,QAAQ,IAAK8B,GAQtC,OANIA,EAAY3H,GACZuO,EAAOjO,KAAK,CACR+iB,KAAM,UACN/hB,MAAOozG,EAAQhpE,UAAU/jC,EAAW3H,KAGrCuO,kBCxBJ,SAASulH,GAAiBd,EAAkBG,EAAkBr5G,GAMjE,YAJgBhC,IAAZgC,GAEU2uG,EADV3uG,EAAUksG,EAASlsG,GACU,gBAAiB,SAAU,CAAC,SAAU,YAAa,aAGzEi6G,EAAAA,GAAAA,GAAuBf,EAAkBG,OChB7Ca,gBCCiC,SAAUC,GAElD,SAASC,IACL,IAAI//C,EAAmB,OAAX8/C,GAAmBA,EAAOvuG,MAAMhmB,KAAM+H,YAAc/H,KAEhE,OADAy0E,EAAM9wD,KAAO,sBACN8wD,GAJXggD,EAAAA,GAAAA,WAAUD,EAAwBD,GADM,CAQ1Cl/E,OACK,SAASq/E,GAAyBl0H,GACrC,MAAkB,wBAAXA,EAAEmjB,MDVb,SAAW2wG,GACPA,EAAgB,WAAiB,aACjCA,EAAgB,OAAa,SAC7BA,EAAgB,SAAe,WAHnC,CAIGA,KAAqBA,GAAmB,yCEDpC,SAASvI,EAAa/6G,GAGzB,OAAO2U,KAAKo1B,MAAMp1B,KAAKw6C,IAAInvD,GAAK2U,KAAKgvG,QAElC,SAASnJ,EAAO3+F,EAAG+nG,GACtB,GAAwB,oBAAb/nG,EAAE2+F,OACT,OAAO3+F,EAAE2+F,OAAOoJ,GAGpB,IADA,IAAIC,EAAM,IAAItvH,MAAMqvH,GACX7oH,EAAI,EAAGA,EAAI8oH,EAAIv0H,OAAQyL,IAC5B8oH,EAAI9oH,GAAK8gB,EAEb,OAAOgoG,EAAI5jH,KAAK,IAEb,SAAS6jH,EAAgB5uH,EAAK8nH,EAAIzpF,EAAO3iC,GACvCsE,EAAI2Z,IAAImuG,IACT9nH,EAAI8+D,IAAIgpD,EAAIlnH,OAAOw4B,OAAO,OAElBp5B,EAAI2Z,IAAImuG,GACdzpF,GAAS3iC,EAEZ,SAASmzH,EAAsB7uH,EAAK8nH,EAAIxO,GAC3C,IAAK,IAAImQ,EAAK,EAAG9lH,EAAK/C,OAAOC,KAAKy4G,GAAQmQ,EAAK9lH,EAAGvJ,OAAQqvH,IAAM,CAC5D,IAAIh4D,EAAI9tD,EAAG8lH,GACXmF,EAAgB5uH,EAAK8nH,EAAIr2D,EAAG6nD,EAAM7nD,KAGnC,SAASq9D,EAAgB9uH,EAAK8nH,EAAIzpF,GACrC,OAAO0wF,EAAsB/uH,EAAK8nH,EAAIzpF,GAAOA,GAE1C,SAAS0wF,EAAsB/uH,EAAK8nH,GAEvC,IADA,IAAIv8F,EAAS,GACJk+F,EAAK,EAAGA,EAAK5nH,UAAUzH,OAAQqvH,IACpCl+F,EAAOk+F,EAAK,GAAK5nH,UAAU4nH,GAE/B,IAAIuF,EAAQhvH,EAAI2Z,IAAImuG,GACpB,IAAKkH,EACD,MAAM,IAAInP,UAAU,GAAGnqF,OAAOoyF,EAAI,2CAEtC,OAAOv8F,EAAO/nB,QAAO,SAAUqsC,EAAKw2E,GAEhC,OADAx2E,EAAIw2E,GAAK2I,EAAM3I,GACRx2E,IACRjvC,OAAOw4B,OAAO,OAEd,SAAS61F,EAAcC,GAC1B,MAA4B,YAArBA,EAAYzxG,KAYhB,SAASohD,EAAen+D,EAAQ4G,EAAM3D,GACzC,IAAIjI,EAAQiI,EAAGjI,MACfkF,OAAOi+D,eAAen+D,EAAQ4G,EAAM,CAChC03D,cAAc,EACdD,YAAY,EACZowD,UAAU,EACVzzH,MAAOA,oOAIR,SAASmyH,EAAUrzG,EAAW+qB,EAAS6pF,GAE1C,QADY,IAARA,IAAkBA,EAAMjgF,QACvB30B,EACD,MAAM,IAAI40G,EAAI7pF,wCCtEf,SAAS8pF,EAAoBjC,EAAkBvmH,GAElD,IADA,IAAIyoH,EAAYzoH,IACH,CACT,GAAIumH,EAAiBz5F,IAAI27F,GACrB,OAAOA,EAEX,IAAIl8C,EAAMk8C,EAAUvwC,YAAY,KAChC,KAAM3L,EACF,OAEAA,GAAO,GAA4B,MAAvBk8C,EAAUl8C,EAAM,KAC5BA,GAAO,GAEXk8C,EAAYA,EAAU/vH,MAAM,EAAG6zE,iICXhC,SAAS+6C,EAAuBf,EAAkBG,GAErD,IADA,IAAIgC,EAAS,GACJ9F,EAAK,EAAG+F,EAAqBjC,EAAkB9D,EAAK+F,EAAmBp1H,OAAQqvH,IAAM,CAC1F,IACIgG,EADSD,EAAmB/F,GACDjnE,QAAQktE,EAAAA,EAAkC,IACrEC,GAAkBN,EAAAA,EAAAA,GAAoBjC,EAAkBqC,GACxDE,GACAJ,EAAO70H,KAAKi1H,GAGpB,OAAOJ,+FCXJ,SAASK,EAAsBC,EAAW/uH,IAC7C+sH,EAAAA,EAAAA,GAAyB,IAAf/sH,EAAI1G,OAAc,4BAC5B,IAAIkY,EAAOu9G,EAAUz1H,OACjB01H,EAAc,IAAIp6F,OAAO50B,EAAK,KAC9BsyE,EAAMy8C,EAAU5vH,QAAQ6vH,GAC5B,IAAa,IAAT18C,EAAY,CAKZ,IAJA,IAAIz9D,EAAQy9D,EAAM,EACdlmD,EAAMvX,EACN87C,EAAI97C,EACJud,GAAO,GACHA,GAAM,CACV,IAAI54B,EAAIu1H,EAAU5vH,QAAQ,IAAKwxD,GAQnB,MAND,IAAPn3D,EACMgY,EAAOm/C,EAGPn3D,EAAIm3D,GAGVv+B,GAAO,GAEK,IAAP54B,GACL4yB,EAAM5a,EACN4gB,GAAO,IAGPhG,EAAM5yB,EACNm3D,EAAIn3D,EAAI,GAGhB,OAAOu1H,EAAUtwH,MAAMoW,EAAOuX,GAIlC,GAFA4iG,EAAc,IAAIp6F,OAAO50B,IAEZ,KADbsyE,EAAMy8C,EAAU5vH,QAAQ6vH,KACN18C,EAAM,IAAM9gE,EAC1B,MAAO,GCnCR,SAASq7G,EAAcP,EAAkBG,EAAkBr5G,EAAS67G,EAAuB5C,EAAYG,GAC1G,IACIjtD,EAEAA,EADY,WAFFnsD,EAAQw5G,cCAnB,SAAuBN,EAAkBG,EAAkBD,GAE9D,IADA,IAAI3kH,EAAS,CAAE9B,OAAQ,IACd4iH,EAAK,EAAG+F,EAAqBjC,EAAkB9D,EAAK+F,EAAmBp1H,OAAQqvH,IAAM,CAC1F,IAAI5iH,EAAS2oH,EAAmB/F,GAC5BgG,EAAoB5oH,EAAO27C,QAAQktE,EAAAA,EAAkC,IACrEC,GAAkBN,EAAAA,EAAAA,GAAoBjC,EAAkBqC,GAC5D,GAAIE,EAKA,OAJAhnH,EAAO9B,OAAS8oH,EACZ9oH,IAAW4oH,IACX9mH,EAAOknH,UAAYhpH,EAAOtH,MAAMkwH,EAAkBr1H,OAAS,EAAGyM,EAAOzM,SAElEuO,EAIf,OADAA,EAAO9B,OAASymH,IACT3kH,EDZCqnH,CAAc5C,EAAkBG,EAAkBD,GEHvD,SAAwBF,EAAkBG,EAAkBD,GAC/D,IAgBI2C,EAhBAC,EAA8B,GAC9BC,EAAqB,GACrBC,EAAyB,GACzBC,EAA4B,IAAI5R,IACpC2O,EAAiBrzH,SAAQ,SAAU8M,GAC/B,IAAIypH,EAAkB,IAAIrR,KAAKsR,OAAO1pH,GACjC2pH,WACAjoH,WACDkoH,EAAsBxR,KAAKC,oBAAoBr4G,GAAQ,IAAMA,EACjEqpH,EAA4BI,GAAmBzpH,EAC/CspH,EAAmBtpH,GAAUA,EAC7BupH,EAAuBK,GAAuB5pH,EAC9CwpH,EAA0Bj1H,IAAIk1H,GAC9BD,EAA0Bj1H,IAAIyL,GAC9BwpH,EAA0Bj1H,IAAIq1H,MAGlC,IAAK,IAAIhH,EAAK,EAAG+F,EAAqBjC,EAAkB9D,EAAK+F,EAAmBp1H,OAAQqvH,IAAM,CAC1F,IAAIz/B,EAAIwlC,EAAmB/F,GAC3B,GAAIwG,EACA,MAEJ,IAAIR,EAAoBzlC,EAAExnC,QAAQktE,EAAAA,EAAkC,IACpE,GAAItC,EAAiBz5F,IAAI87F,GAAoB,CACzCQ,EAAcR,EACd,MAEJ,GAAIY,EAA0B18F,IAAI87F,GAAoB,CAClDQ,EAAcR,EACd,MAEJ,IAAI5oH,EAAS,IAAIo4G,KAAKsR,OAAOd,GACzBiB,EAA2B7pH,EAAO8pH,WAAWpoH,WAC7CqoH,EAA2B/pH,EAAO2pH,WAAWjoH,WAEjD,GAAI8nH,EAA0B18F,IAAIi9F,GAA2B,CACzDX,EAAcW,EACd,MAGJX,GAAcZ,EAAAA,EAAAA,GAAoBgB,EAA2BK,GAEjE,OAAKT,EAGE,CACHppH,OAAQspH,EAAmBF,IACvBG,EAAuBH,IACvBC,EAA4BD,IAC5BA,GANG,CAAEppH,OAAQymH,KFtCbuD,CAAezD,EAAkBG,EAAkBD,GAK3D,IAHA,IAAI2C,EAAc5vD,EAAEx5D,OAChB8B,EAAS,CAAE9B,OAAQ,GAAI+mH,WAAYqC,GACnCa,EAAqB,KAChBrH,EAAK,EAAGsH,EAA0BhB,EAAuBtG,EAAKsH,EAAwB32H,OAAQqvH,IAAM,CACzG,IAAI3oH,EAAMiwH,EAAwBtH,IAClCoE,EAAAA,EAAAA,GAAUoC,KAAe9C,EAAY,2BAA2Bz3F,OAAOu6F,IACvE,IAAIe,EAAkB7D,EAAW8C,IACjCpC,EAAAA,EAAAA,GAAqC,kBAApBmD,GAAoD,OAApBA,EAA0B,eAAet7F,OAAO50B,EAAK,uBACtG,IAAImwH,EAAgBD,EAAgBlwH,IACpC+sH,EAAAA,EAAAA,GAAUxuH,MAAMi2E,QAAQ27C,GAAgB,qBAAqBv7F,OAAO50B,EAAK,sBACzE,IAAIpF,EAAQu1H,EAAc,IAC1BpD,EAAAA,EAAAA,GAA2B,kBAAVnyH,GAAgC,OAAVA,EAAgB,wCAAwCg6B,cAAch6B,EAAO,YAAYg6B,OAAO50B,IACvI,IAAIowH,EAA6B,GACjC,GAAI7wD,EAAEwvD,UAAW,CACb,IAAIsB,EAAiBvB,EAAsBvvD,EAAEwvD,UAAW/uH,QACjCoR,IAAnBi/G,IACuB,KAAnBA,GACKF,EAAchxH,QAAQkxH,KACvBz1H,EAAQy1H,EACRD,EAA6B,IAAIx7F,OAAO50B,EAAK,KAAK40B,OAAOh6B,KAGvDy1H,EAAelxH,QAAQ,UAC7BvE,EAAQ,OACRw1H,EAA6B,IAAIx7F,OAAO50B,KAIpD,GAAIA,KAAOoT,EAAS,CAChB,IAAIk9G,EAAel9G,EAAQpT,IAC3B+sH,EAAAA,EAAAA,GAAkC,kBAAjBuD,GACW,qBAAjBA,GACU,OAAjBA,EAAuB,mDACtBH,EAAchxH,QAAQmxH,IACnBA,IAAiB11H,IACjBA,EAAQ01H,EACRF,EAA6B,IAIzCvoH,EAAO7H,GAAOpF,EACdo1H,GAAsBI,EAE1B,GAAIJ,EAAmB12H,OAAS,EAAG,CAC/B,IAAIi3H,EAAepB,EAAYhwH,QAAQ,OACvC,IAAsB,IAAlBoxH,EACApB,GAA4Ba,MAE3B,CACD,IAAIQ,EAAerB,EAAY1wH,MAAM,EAAG8xH,GACpCE,EAAgBtB,EAAY1wH,MAAM8xH,EAAcpB,EAAY71H,QAChE61H,EAAcqB,EAAeR,EAAqBS,EAEtDtB,EAAchR,KAAKC,oBAAoB+Q,GAAa,GAGxD,OADAtnH,EAAO9B,OAASopH,EACTtnH,6FGxEJ,IAAI+mH,EAAmC,0BACvC,SAAS7B,EAAUrzG,EAAW+qB,EAAS6pF,GAE1C,QADY,IAARA,IAAkBA,EAAMjgF,QACvB30B,EACD,MAAM,IAAI40G,EAAI7pF,+LCFf,SAAS9pB,EAAM8xG,EAAkBH,EAAkBoE,EAAe1O,GACrE,IAAI9D,EAAUoO,EAAiB5pH,QAAO,SAAUqsC,EAAKm6C,GAEjD,OADAn6C,EAAIz0C,IAAI4uF,GACDn6C,IACR,IAAI4uE,KACP,OAAOkP,EAAAA,EAAAA,GAAc3O,ECHlB,SAAgCA,GAEnC,OAAOC,KAAKC,oBAAoBF,GDCFD,CAAuBwO,GAAmB,CACpEG,eAAyB,OAAT5K,QAA0B,IAATA,OAAkB,EAASA,EAAK2O,YAAc,YAChF,GAAI,IAAI,WAAc,OAAOD,KAAkB3qH,4CERtDjG,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQ8nC,kCAA+B,EACvC,IAAIC,EAAqB9nC,EAAQ,OAC7B+nC,EAAuB/nC,EAAQ,OAC/BgoC,EAAyB,oCAgC7BjoC,EAAQ8nC,6BA/BR,SAAsCI,EAAK9S,EAAS9qG,EAASvQ,GACzD,IAAIwgH,EAAmBxgH,EAAGwgH,iBAAkBiJ,EAAmBzpH,EAAGypH,iBAAkB2C,EAAwBpsH,EAAGosH,sBAAuB5C,EAAaxpH,EAAGwpH,WAAYG,EAAmB3pH,EAAG2pH,iBACpLpL,EAAgBiC,EAAiB2N,GACrC5P,EAAc6P,+BAAgC,EAC9C,IAAIxE,GAAmB,EAAIoE,EAAmB5S,wBAAwBC,GAClEwO,EAAM5sH,OAAOw4B,OAAO,MACpB0pF,GAAO,EAAI6O,EAAmBrP,uBAAuBpuG,GACrDu5G,GAAU,EAAIkE,EAAmB9O,WAAWC,EAAM,gBAAiB,SAAU,CAAC,WAAY,UAAW,YACzG0K,EAAIE,cAAgBD,EACpB,IAAInJ,GAAkB,EAAIqN,EAAmB9O,WAAWC,EAExD,kBAAmB,cAAU5wG,OAAWA,GACxC,QAAwBA,IAApBoyG,IACKuN,EAAuB70F,KAAKsnF,GAC7B,MAAM,IAAI7B,WAAW,4BAA4B/sF,OAAO4uF,IAGhEkJ,EAAI7I,GAAKL,EACT,IAAIjkD,GAAI,EAAIuxD,EAAqBjE,eAAeP,EAAkBG,EAAkBC,EAAKuC,EAAuB5C,EAAYG,GACxHzmH,EAASw5D,EAAEx5D,OAAQ89G,EAAKtkD,EAAEskD,GAC9BzC,EAAcr7G,OAASA,EACvBq7G,EAAcnqG,OAAQ,EAAI45G,EAAmB9O,WAAWC,EAAM,QAAS,SAAU,CAAC,OAAQ,SAAU,SAAU,QAC9GZ,EAAc8P,SAAU,EAAIL,EAAmB9O,WAAWC,EAAM,UAAW,SAAU,CAAC,SAAU,QAAS,UACzG,IAAIv3F,EAAS4hG,EAAW9sD,EAAEutD,YAM1B,OALA,EAAI+D,EAAmB9D,aAAatiG,EAAQ,2BAA2BmK,OAAO2qC,EAAEutD,aAChF1L,EAAc32F,OAASA,EACvB22F,EAAc+B,aAAe,IAAIhF,KAAKgT,aAAajT,GACnDkD,EAAcgQ,YAAc,IAAIjT,KAAKkT,YAAYnT,GACjDkD,EAAcoC,gBAAkBK,EACzBmN,uCClCXlxH,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQwoC,mBAAgB,EACxB,IAAIT,EAAqB9nC,EAAQ,OA0BjCD,EAAQwoC,cAzBR,SAAuBtjB,EAASxjG,EAAMwX,GAGlC,IAFA,IACIna,EAAS,GACJ8gH,EAAK,EAAG4I,GAFE,EAAIV,EAAmB5D,kBAAkBjf,GAEZ2a,EAAK4I,EAAej4H,OAAQqvH,IAAM,CAC9E,IAAIyF,EAAcmD,EAAe5I,GACjC,GAAyB,YAArByF,EAAYzxG,KACZ9U,EAAOjO,KAAK,CACR+iB,KAAM,UACN/hB,MAAOwzH,EAAYxzH,YAGtB,EACD,EAAIi2H,EAAmB9D,WAAgC,MAArBqB,EAAYzxG,KAAc,qBAAqBiY,OAAOo5E,IACxF,IAAK,IAAInrG,EAAK,EAAG6oH,EAAU1pG,EAAOnf,EAAK6oH,EAAQpyH,OAAQuJ,IAAM,CACzD,IAAIgmH,EAAO6C,EAAQ7oH,GACnBgF,EAAOjO,KAAK,CACR+iB,KAAMksG,EAAKlsG,KACX/hB,MAAOiuH,EAAKjuH,MACZ4P,KAAMA,MAKtB,OAAO3C,uCC1BX/H,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQ0oC,kCAA+B,EACvC,IAAIX,EAAqB9nC,EAAQ,OAC7B0oC,EAA6B1oC,EAAQ,OACrC2oC,EAAkB3oC,EAAQ,OAmD9BD,EAAQ0oC,6BAlDR,SAAsCR,EAAKp2H,EAAO4P,EAAM3H,GACpD,IAAIwgH,EAAmBxgH,EAAGwgH,iBAG1B,IAFA,EAAIwN,EAAmB9D,WAAmD,YAAxC,EAAI8D,EAAmBnR,MAAM9kH,GAAqB,qCAAqCg6B,cAAch6B,GAAQmkH,YAC/I,EAAI8R,EAAmB9D,WAAkD,YAAvC,EAAI8D,EAAmBnR,MAAMl1G,GAAoB,oCAAoCoqB,cAAch6B,GAAQmkH,WACzIv8E,MAAM5nC,KAAWukH,SAASvkH,GAC1B,MAAM,IAAI+mH,WAAW,iBAAiB/sF,OAAOh6B,IAEjD,IAAI+2H,GAAe,EAAIF,EAA2BG,0BAA0BpnH,GACxE4S,EAAKimG,EAAiB2N,GAAMvmG,EAASrN,EAAGqN,OAAQxT,EAAQmG,EAAGnG,MAAOi6G,EAAU9zG,EAAG8zG,QAASE,EAAch0G,EAAGg0G,YAAajO,EAAe/lG,EAAG+lG,aACxI0O,EAAQF,EACE,UAAV16G,EACA46G,EAAQ,GAAGj9F,OAAO+8F,EAAc,UAEjB,WAAV16G,IACL46G,EAAQ,GAAGj9F,OAAO+8F,EAAc,YAE9BE,KAASpnG,IACXonG,EAAQF,GAEZ,IAAI9lB,EAAWphF,EAAOonG,GACtB,GAAgB,SAAZX,IACI,EAAIL,EAAmB/R,UAAUlkH,KAAUixG,EAC3C,MAAO,CACH,CACIlvF,KAAM,UACN/hB,MAAOixG,GAAS,EAAIglB,EAAmB/R,UAAUlkH,MAKjE,IAAIk3H,EAAK,WACL,EAAIjB,EAAmBzR,WAAWxkH,GAAQ,IAAMA,EAAQ,KACxDk3H,EAAK,QAET,IAAIC,EAAKlmB,EAASimB,GACdE,EAA2C,oBAA/B7O,EAAa2D,cACvB3D,EAAa2D,cAAcnoG,KAAK23B,IAAI17C,IAGlC,CACI,CACI+hB,KAAM,UACN/hB,MAAOuoH,EAAarxF,OAAOnT,KAAK23B,IAAI17C,IACpC4P,KAAMA,IAIlBwjG,EAAU+jB,EADLX,EAAYtqH,OAAOlM,IAE5B,OAAO,EAAI82H,EAAgBJ,eAAetjB,EAAS2jB,EAAcK,wCCrDrElyH,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQ8oC,8BAA2B,EACnC,IAAIf,EAAqB9nC,EAAQ,OAmCjCD,EAAQ8oC,yBA9BR,SAAkCpnH,GAE9B,IADA,EAAIqmH,EAAmB9D,WAAkD,YAAvC,EAAI8D,EAAmBnR,MAAMl1G,GAAoB,yBACtE,YAATA,EACA,MAAO,SACX,GAAa,YAATA,EACA,MAAO,SACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,SAATA,EACA,MAAO,MACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,WAATA,EACA,MAAO,QACX,GAAa,aAATA,EACA,MAAO,UACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,WAATA,GACS,WAATA,GACS,SAATA,GACS,QAATA,GACS,SAATA,GACS,UAATA,GACS,YAATA,GACS,SAATA,EACA,MAAM,IAAIm3G,WAAW,gBAEzB,OAAOn3G,qCCjCX1K,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtD,IAAIq3H,EAAkB,IAAIC,QAS1BppC,EAAAA,QARA,SAA0B9+E,GACtB,IAAIo3G,EAAgB6Q,EAAgBp5G,IAAI7O,GAKxC,OAJKo3G,IACDA,EAAgBthH,OAAOw4B,OAAO,MAC9B25F,EAAgBj0D,IAAIh0D,EAAGo3G,IAEpBA,uCCVXthH,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtD,IAAIu3H,EAAUppC,EAAQ,OAClB8nC,EAAqB9nC,EAAQ,OAC7BqpC,EAAiCrpC,EAAQ,OACzCspC,EAAiCtpC,EAAQ,OACzCupC,GAAuB,EAAIH,EAAQI,iBAAiBxpC,EAAQ,QAC5DypC,EAAoC,WACpC,SAASA,EAAmBtU,EAAS9qG,GAIjC,KADgBpa,MAAQA,gBAAgBw5H,EAAqBx5H,KAAKwO,iBAAc,GAE5E,MAAM,IAAIu3G,UAAU,qDAExB,OAAO,EAAIqT,EAA+BxB,8BAA8B53H,KAAMklH,EAAS9qG,EAAS,CAC5FiwG,iBAAkBiP,EAAqB/pB,QACvC+jB,iBAAkBkG,EAAmBlG,iBACrC2C,sBAAuBuD,EAAmBvD,sBAC1C5C,WAAYmG,EAAmBnG,WAC/BG,iBAAkBgG,EAAmBhG,mBAwE7C,OArEAgG,EAAmBh0H,UAAUszB,OAAS,SAAUl3B,EAAO4P,GACnD,GAAoB,kBAATxR,KACP,MAAM,IAAI+lH,UAAU,qCAGxB,KADoB,EAAIuT,EAAqB/pB,SAASvvG,MACnCi4H,8BACf,MAAM,IAAIlS,UAAU,0CAExB,OAAO,EAAIsT,EAA+Bb,8BAA8Bx4H,KAAMyvD,OAAO7tD,IAAQ,EAAIi2H,EAAmB/R,UAAUt0G,GAAO,CACjI64G,iBAAkBiP,EAAqB/pB,UAEtCrpG,KAAI,SAAUsC,GAAM,OAAOA,EAAG5G,SAC9BqP,KAAK,KAEduoH,EAAmBh0H,UAAUsoH,cAAgB,SAAUlsH,EAAO4P,GAC1D,GAAoB,kBAATxR,KACP,MAAM,IAAI+lH,UAAU,4CAGxB,KADoB,EAAIuT,EAAqB/pB,SAASvvG,MACnCi4H,8BACf,MAAM,IAAIlS,UAAU,iDAExB,OAAO,EAAIsT,EAA+Bb,8BAA8Bx4H,KAAMyvD,OAAO7tD,IAAQ,EAAIi2H,EAAmB/R,UAAUt0G,GAAO,CAAE64G,iBAAkBiP,EAAqB/pB,WAElLiqB,EAAmBh0H,UAAUi0H,gBAAkB,WAC3C,GAAoB,kBAATz5H,KACP,MAAM,IAAI+lH,UAAU,8CAExB,IAAIqC,GAAgB,EAAIkR,EAAqB/pB,SAASvvG,MACtD,IAAKooH,EAAc6P,8BACf,MAAM,IAAIlS,UAAU,mDAGxB,MAAO,CACHh5G,OAAQq7G,EAAcr7G,OACtBkR,MAAOmqG,EAAcnqG,MACrBi6G,QAAS9P,EAAc8P,QACvB1N,gBAAiBpC,EAAcoC,kBAGvCgP,EAAmBE,mBAAqB,SAAUxU,EAAS9qG,GACvD,OAAO,EAAIy9G,EAAmBzD,kBAAkBoF,EAAmBlG,kBAAkB,EAAIuE,EAAmB5S,wBAAwBC,GAAU9qG,IAElJo/G,EAAmBG,gBAAkB,WAEjC,IADA,IAAI9rH,EAAO,GACF8hH,EAAK,EAAGA,EAAK5nH,UAAUzH,OAAQqvH,IACpC9hH,EAAK8hH,GAAM5nH,UAAU4nH,GAEzB,IAAK,IAAI9lH,EAAK,EAAG+vH,EAAS/rH,EAAMhE,EAAK+vH,EAAOt5H,OAAQuJ,IAAM,CACtD,IAAIua,EAAKw1G,EAAO/vH,GAAKizG,EAAI14F,EAAGvW,KAAMd,EAASqX,EAAGrX,OAC1CypH,EAAkB,IAAIrR,KAAKsR,OAAO1pH,GACjC2pH,WACAjoH,WACL+qH,EAAmBnG,WAAWtmH,GAAUysH,EAAmBnG,WAAWmD,GAAmB1Z,EACzF0c,EAAmBlG,iBAAiBhyH,IAAIk1H,GACxCgD,EAAmBlG,iBAAiBhyH,IAAIyL,GACnCysH,EAAmBK,kBACpBL,EAAmBK,gBAAkBrD,KAIjDgD,EAAmBhG,iBAAmB,WAClC,OAAOgG,EAAmBK,iBAE9BL,EAAmBnG,WAAa,GAChCmG,EAAmBlG,iBAAmB,IAAI3O,IAC1C6U,EAAmBK,gBAAkB,GACrCL,EAAmBvD,sBAAwB,CAAC,MAC5CuD,EAAmBM,YAAa,EACzBN,EArF6B,GAuFxC1pC,EAAAA,QAAkB0pC,EAClB,IAE0B,qBAAXO,QACPjzH,OAAOi+D,eAAey0D,EAAmBh0H,UAAWu0H,OAAOC,YAAa,CACpEp4H,MAAO,0BACPyzH,UAAU,EACVpwD,YAAY,EACZC,cAAc,IAItBp+D,OAAOi+D,eAAey0D,EAAmBh0H,UAAUgJ,YAAa,SAAU,CACtE5M,MAAO,EACPyzH,UAAU,EACVpwD,YAAY,EACZC,cAAc,IAGlBp+D,OAAOi+D,eAAey0D,EAAmBE,mBAAoB,SAAU,CACnE93H,MAAO,EACPyzH,UAAU,EACVpwD,YAAY,EACZC,cAAc,IAGtB,MAAO1kE,sBCtHH2kH,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,aAAa,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,cAAc,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,QAAU,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,KAAK,mBAAmB,gBAAgB,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,mBAAmB,iBAAiB,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAK,mBAAmB,MAAQ,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,mBAAmB,KAAK,iBAAiB,cAAc,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,sBAAmB,KAAK,iBAAiB,eAAe,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,mBAAgB,MAAQ,mBAAmB,KAAK,iBAAiB,KAAO,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,gBAAgB,aAAa,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,gBAAgB,cAAc,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,gBAAgB,IAAM,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,YAAY,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,aAAa,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,KAAO,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,aAAa,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,cAAc,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,cAAc,OAAS,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,eAAe,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,eAAe,OAAS,yBCDzjIxU,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,aAAa,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,QAAU,CAAC,EAAI,eAAe,EAAI,eAAe,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,gBAAgB,gBAAgB,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,iBAAiB,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,MAAQ,CAAC,EAAI,aAAa,EAAI,aAAa,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,cAAc,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,eAAe,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,KAAO,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,aAAa,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,IAAM,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,YAAY,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,aAAa,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,KAAO,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,aAAa,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,cAAc,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,OAAS,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,OAAS,yBCDtuHxU,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,oBAAiB,aAAa,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,oBAAiB,cAAc,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,oBAAiB,QAAU,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,0BAA0B,MAAQ,4BAA4B,KAAO,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAK,uBAAuB,gBAAgB,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,sBAAsB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,uBAAuB,iBAAiB,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,sBAAsB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,uBAAuB,MAAQ,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,oBAAoB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,iBAAiB,cAAc,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,iBAAiB,eAAe,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,iBAAiB,KAAO,CAAC,EAAI,cAAc,EAAI,uBAAoB,OAAS,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,oBAAoB,aAAa,CAAC,EAAI,YAAY,EAAI,gBAAa,OAAS,CAAC,IAAM,qBAAqB,MAAQ,sBAAsB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,aAAa,cAAc,CAAC,EAAI,YAAY,EAAI,gBAAa,OAAS,CAAC,IAAM,qBAAqB,MAAQ,sBAAsB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,aAAa,IAAM,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,WAAW,KAAK,QAAQ,YAAY,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,WAAW,KAAK,QAAQ,aAAa,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,WAAW,KAAK,QAAQ,KAAO,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,mBAAmB,aAAa,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,cAAc,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,OAAS,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,eAAe,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,oBAAoB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,oBAAoB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,wBAAwB,MAAQ,0BAA0B,KAAO,CAAC,IAAM,mBAAmB,MAAQ,sBAAsB,eAAe,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,gBAAgB,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,gBAAgB,OAAS,wBCDtwIxU,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,+BAAoB,aAAa,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,eAAe,MAAQ,gBAAgB,KAAK,+BAAoB,cAAc,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAK,+BAAoB,QAAU,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAK,wBAAwB,gBAAgB,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,mBAAmB,MAAQ,oBAAoB,KAAK,wBAAwB,iBAAiB,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,wBAAwB,MAAQ,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAK,mBAAmB,cAAc,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,mBAAmB,eAAe,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,UAAU,MAAQ,WAAW,KAAO,CAAC,IAAM,UAAU,MAAQ,WAAW,KAAK,mBAAmB,KAAO,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,mBAAmB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAK,0BAAuB,aAAa,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAK,0BAAuB,cAAc,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAO,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAK,0BAAuB,IAAM,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,aAAa,KAAK,QAAQ,YAAY,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,mBAAgB,KAAK,aAAa,KAAK,QAAQ,aAAa,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAK,aAAa,KAAK,QAAQ,KAAO,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,mBAAmB,MAAQ,sBAAsB,aAAa,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,cAAc,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,WAAW,OAAS,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAO,CAAC,IAAM,oBAAoB,MAAQ,uBAAuB,eAAe,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,kBAAe,MAAQ,mBAAgB,KAAO,CAAC,IAAM,oBAAiB,MAAQ,sBAAmB,gBAAgB,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,WAAW,MAAQ,aAAa,OAAS,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,mBAAmB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,qBAAqB,MAAQ,wBAAwB,eAAe,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,gBAAgB,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,YAAY,OAAS,yBCDhpIxU,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,QAAU,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,gCAAY,KAAO,CAAC,MAAQ,gCAAY,KAAK,4BAAQ,gBAAgB,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,gCAAY,KAAO,CAAC,MAAQ,gCAAY,KAAK,4BAAQ,iBAAiB,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,4BAAQ,MAAQ,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,eAAe,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,gBAAM,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,gBAAM,IAAM,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,qBAAM,KAAK,gBAAM,YAAY,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,qBAAM,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,qBAAM,KAAK,gBAAM,KAAO,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,2BAAY,aAAa,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,2BAAY,cAAc,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,eAAe,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,gBAAgB,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,oBAAU,OAAS,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,eAAe,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,gBAAgB,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,qBAAW,OAAS,yBCDlxExU,KAAKqU,oBAAyE,oBAA5CrU,KAAKqU,mBAAmBG,iBAC5DxU,KAAKqU,mBAAmBG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,QAAU,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,gBAAgB,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,iBAAiB,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,MAAQ,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,cAAc,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,eAAe,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,IAAM,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,YAAY,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,KAAO,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,aAAa,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,cAAc,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,eAAe,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,gBAAgB,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,eAAe,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,oBAAU,gBAAgB,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,qBAAW,OAAS,2CCDlvE,IACIM,GAAK,EADKlqC,EAAQ,OACDwpC,iBAAiBxpC,EAAQ,SAE1C,EADoBA,EAAQ,OACNmqC,mBACtBpzH,OAAOi+D,eAAeogD,KAAM,qBAAsB,CAC9CvjH,MAAOq4H,EAAG1qB,QACV8lB,UAAU,EACVpwD,YAAY,EACZC,cAAc,wCCTtBp+D,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQoqC,oBAAiB,EACzB,IAAIpC,EAAuB/nC,EAAQ,OAC/BoqC,EAAsBpqC,EAAQ,OA4BlCD,EAAQoqC,eARR,SAAwBntH,GAEpB,QADe,IAAXA,IAAqBA,EAAS,QAC5B,uBAAwBo4G,QArBlC,SAA4Bp4G,GACxB,IAAKA,EACD,OAAO,EAEX,IAAIm4G,EAAU3/G,MAAMi2E,QAAQzuE,GAAUA,EAAS,CAACA,GAChD,OAAQo4G,KAAKqU,mBAAmBE,mBAAmBxU,GAAS5kH,SACxD4kH,EAAQ5kH,OAgBPo5H,CAAmB3sH,KAd5B,SAA2CA,GACvC,IACI,MAAQ,oBACJ,IAAIo4G,KAAKqU,mBAAmBzsH,GAAU,KAAM,CACxCmrH,QAAS,SACVuB,kBAEX,MAAO/+G,GACH,OAAO,GAON0/G,CAAkCrtH,GACnC,OAAO,EAAI+qH,EAAqBn2G,OAAO,CAAC5U,GAASotH,EAAoBE,iBAAkB,yCC5B/FvzH,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,IACtDkuF,EAAQuqC,sBAAmB,EAE3BvqC,EAAQuqC,iBAAmB,CAAC,QAAS,KAAM,MAAO,KAAM,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,MAAO,UAAW,UAAW,KAAM,MAAO,YAAa,KAAM,MAAO,MAAO,KAAM,KAAM,QAAS,KAAM,QAAS,KAAM,KAAM,MAAO,UAAW,UAAW,KAAM,QAAS,iBAAkB,QAAS,QAAS,KAAM,SAAU,MAAO,KAAM,MAAO,MAAO,MAAO,SAAU,MAAO,KAAM,KAAM,QAAS,KAAM,MAAO,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,QAAS,KAAM,QAAS,KAAM,SAAU,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,SAAU,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,KAAM,MAAO,QAAS,KAAM,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,UAAW,KAAM,KAAM,MAAO,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,QAAS,KAAM,KAAM,KAAM,SAAU,SAAU,MAAO,KAAM,MAAO,KAAM,QAAS,QAAS,KAAM,MAAO,KAAM,KAAM,QAAS,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,MAAO,KAAM,MAAO,KAAM,KAAM,QAAS,KAAM,MAAO,UAAW,KAAM,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,QAAS,QAAS,QAAS,KAAM,KAAM,SAAU,MAAO,KAAM,KAAM,MAAO,MAAO,KAAM,MAAO,SAAU,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,WAAY,MAAO,KAAM,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,QAAS,KAAM,KAAM,SAAU,MAAO,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,MAAO,KAAM,MAAO,KAAM,MAAO,MAAO,QAAS,KAAM,KAAM,QAAS,KAAM,UAAW,UAAW,KAAM,MAAO,KAAM,QAAS,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,KAAM,KAAM,QAAS,KAAM,MAAO,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,KAAM,MAAO,KAAM,MAAO,MAAO,WAAY,MAAO,MAAO,KAAM,UAAW,UAAW,KAAM,QAAS,QAAS,KAAM,MAAO,MAAO,KAAM,WAAY,WAAY,MAAO,KAAM,KAAM,KAAM,MAAO,KAAM,QAAS,QAAS,QAAS,KAAM,QAAS,QAAS,KAAM,aAAc,aAAc,aAAc,UAAW,aAAc,aAAc,aAAc,UAAW,KAAM,UAAW,KAAM,QAAS,QAAS,KAAM,Q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,EAAG,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,IAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,KAAM,GAAI,EAAG,GAAI,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,EAAG,IAAK,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,IAAK,EAAG,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,GAAI,GAAI,EAAG,GAAI,KAAM,IAAK,EAAG,GAAI,EAAG,IAAK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ACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,UAAW,QACX,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACT,QAAS,SACTugR,GAAI,KACJC,GAAI,KACJ,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,QAAS,QACT,UAAW,MACX,UAAW,MACX,WAAY,MACZ,WAAY,MACZ,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,WAAY,MACZ,WAAY,MACZ,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,UAAW,MACX,WAAY,MACZ,UAAW,MACX,aAAc,cC7KlB,WAAgBC,EAAe53S,GAC3B,IAAI63S,EAAeD,EAAc53S,GACjC,OAAI63S,EACO,SAAWA,GAAgBA,EAE/B73S,EAAO4D,OAAO,EAAG5D,EAAOk4E,YANL,OCG1B4/N,EAAiB,KACrB,GAAetiC,EAAAA,EAAAA,GAAmB,CAC9Bx1Q,OAAS,WACL,IAAI+3S,EAAgBD,EACpB,OAAO,SAAA93S,GACH,IAAKA,EACD,OAAO+3S,EAEXA,EAAgB/3S,GANf,GASTg4S,wBAAyB,SAASthD,GAI9B,IAHA,IAEIuhD,EAFAj4S,EAAS/M,KAAK+M,SACdnL,EAAQ6hQ,EAAO12P,IAEXnL,IAAUojT,IACdj4S,EAASk4S,EAAgBN,EAAe53S,IAEpCnL,EAAQ6hQ,EAAO12P,GAEfi4S,GAAe,EAGvB,YAAI,IAAWpjT,GAASmL,IAAW83S,EACxBphD,EAAOohD,GAEXjjT,wDC1Bf,KACIsjT,kBAAmB,SAAStjT,EAAOk3B,EAAQqsR,GACvC,GAAI,aAAersR,EAAQ,CACvBqsR,EAAahtS,UAAYgtS,EAAahtS,WAAa,EACnD,IAAItJ,EAAS7O,KAAK84B,OAAOl3B,GAAOkH,EAAAA,EAAAA,GAAO,GAAIq8S,EAAc,CACrDxhS,KAAM,gBAENyhS,EAAeplT,KAAKqlT,oBAAoBpuN,OAAOvuC,QAAQ,MAAO,QAElE,OADA75C,EAASA,EAAO65C,QAAQ,eAAgB,KAAO08P,EAAe,MAGlE,OAAOplT,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAErCs9S,kBAAmB,WACf,MAAO,CACHpuN,OAAQ,MAGhBquN,yBAA0B,WACtB,MAAO,6MCrBf,GACI,QAAS,EACTC,IAAK,EACLC,GAAI,EACJjuP,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTkuP,IAAK,EACLC,IAAK,EACLC,GAAI,EACJ,UAAW,EACXC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,UAAW,EACXC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLnkI,IAAK,EACLokI,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJv+S,GAAI,EACJ,SAAU,EACV,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTw+S,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJ,UAAW,EACXC,GAAI,EACJC,GAAI,EACJ1vO,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACT2vO,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJxuR,GAAI,EACJyuR,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJ,QAAS,EACTC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJ,SAAU,EACVC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJh/C,GAAI,EACJi/C,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACL74H,GAAI,EACJ84H,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLpsL,GAAI,EACJqsL,IAAK,EACL/8L,GAAI,EACJg9L,GAAI,EACJ,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACT,QAAS,EACTC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLrrI,GAAI,EACJsrI,GAAI,EACJC,IAAK,EACLC,GAAI,EACJC,IAAK,EACL,WAAY,EACZC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,IAAK,EACLC,GAAI,EACJ,QAAS,EACTC,GAAI,EACJhsI,GAAI,EACJ,UAAW,EACXisI,GAAI,EACJC,GAAI,EACJ,QAAS,EACT,QAAS,EACTC,IAAK,EACLC,GAAI,EACJ,QAAS,EACTC,GAAI,EACJxrP,GAAI,EACJ4wM,GAAI,EACJ66C,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJ,UAAW,EACX,UAAW,EACXC,IAAK,EACL,WAAY,EACZC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,IAAK,EACLC,IAAK,EACLC,GAAI,EACJC,GAAI,EACJC,IAAK,mCCxLLC,EAA0B,kBAC1BC,EAA8B,YAC9BC,EAAmB,SAAA50R,GAAM,OAAI,SAAAoL,GAC7B,IAAKpL,EAAO60R,aAAc,CACtB,IAAI7oD,EAAO5gO,EAAK26C,cACZ+uO,EAA8B/nP,OAAOi/L,GAAMxkQ,OAAS,EACpDutT,EAAqBD,EAA8B9oD,EAAO,IAAMA,EAChEgpD,EAAU,IAAIx/O,KAAKA,KAAK04C,IAAI6mM,EAAoB3pR,EAAKy6C,WAAYz6C,EAAK06C,UAAW16C,EAAK66C,WAAY76C,EAAK86C,aAAc96C,EAAK+6C,aAAc/6C,EAAKilO,oBAOjJ,OANIykD,GACAE,EAAQlnD,YAAY9B,GAKjBipD,EAAeD,GAHNhlT,EAAAA,EAAAA,GAAO,CACnBklT,SAAU,OACXl1R,IAGP,OAAOi1R,EAAe7pR,EAAMpL,KAE5Bm1R,EAAkB,GAStB,SAASF,EAAe7pR,EAAMpL,GAC1B,OATe,SAAAA,GACf,IAAI9xB,EAAMknT,EAAAA,EAAAA,SAAiC,IAAM5yS,KAAKC,UAAUud,GAIhE,OAHKm1R,EAAgBjnT,KACjBinT,EAAgBjnT,GAAO,IAAIm+G,KAAKgpM,eAAeD,EAAAA,EAAAA,SAAgCp1R,GAAQA,QAEpFm1R,EAAgBjnT,GAIhBonT,CAAat1R,EAAbs1R,CAAqBlqR,GAAMwkB,QAAQ8kQ,EAAyB,IAAI9kQ,QAAQ+kQ,EAA6B,KAEhH,IAAInJ,EAAe,SAAA7qO,GAAM,OAAI,IAAI0rC,KAAKgT,aAAa+1L,EAAAA,EAAAA,UAAgCp1R,OAAO2gD,IACtF40O,EAA6B,WAC7B,IAAIC,EAAmB,GACvB,OAAO,SAAAvhT,GACH,KAAMA,KAAUuhT,GAAmB,CAC/B,GAAI,MAAQhK,EAAa,GAErB,OADAgK,EAAiBvhT,IAAU,GACpB,EAEXuhT,EAAiBvhT,GAAU,GAC3B,IAAK,IAAIhB,EAAI,EAAGA,EAAI,KAAMA,EACtBuiT,EAAiBvhT,GAAQu3S,EAAav4S,IAAMA,EAGpD,OAAOuiT,EAAiBvhT,IAbC,GAgB7BwhT,EAAoB,SAAAC,GACpB,IAAIC,EAAyBJ,EAA0BH,EAAAA,EAAAA,UACvD,OAAKO,EAGED,EAAW/gT,MAAM,IAAIvH,KAAI,SAAAstD,GAAI,OAAIA,KAAQi7P,EAAyB5oP,OAAO4oP,EAAuBj7P,IAASA,KAAMviD,KAAK,IAFhHu9S,GAIXE,EAAsB,SAAAlwO,GAAG,OAAIA,EAAI91B,QAAQ,cAAe,SAExDimQ,EAAiB,SAAAhsT,GAAI,OAAIA,EAAK+lD,QAAQ,UAAW,QACjDkmQ,EAAc,CACdlqD,IAAK,CACDA,IAAK,WAETmqD,UAAW,CACPC,QAAS,QAEbC,SAAU,CACND,QAAS,OACThqD,KAAM,UACNF,MAAO,OACPF,IAAK,WAETsqD,iBAAkB,CACdF,QAAS,OACThqD,KAAM,UACNF,MAAO,OACPF,IAAK,UACLD,KAAM,UACND,OAAQ,UACRD,OAAQ,WAEZ0qD,SAAU,CACNxqD,KAAM,UACND,OAAQ,UACRD,OAAQ,WAEZK,MAAO,CACHA,MAAO,QAEXsqD,YAAa,CACTtqD,MAAO,OACPF,IAAK,WAETyqD,aAAc,CACVrqD,KAAM,UACNF,MAAO,QAEXwqD,UAAW,GACXC,UAAW,CACP5qD,KAAM,UACND,OAAQ,WAEZ8qD,UAAW,CACPxqD,KAAM,WAEVA,KAAM,CACFA,KAAM,YAGdh+P,OAAOi+D,eAAe6pP,EAAa,qBAAsB,CACrD/uS,IAAK,WACD,IAAImtO,EAAiB7nI,KAAKgpM,eAAeD,EAAAA,EAAAA,UAAgCz0L,kBACzE,MAAO,CACHqrI,KAAM9X,EAAe8X,KACrBF,MAAO5X,EAAe4X,MACtBF,IAAK1X,EAAe0X,IACpBD,KAAM,UACND,OAAQ,cAIpB,IAAI+qD,EAAgB,SAAAz2R,GAAM,MAAI,kBAAoBA,GAAU81R,EAAY91R,EAAOmK,gBAC3EusR,EAAsB,CACtBC,WAAY,SAASC,EAAYC,GAC7B,IAAIzrR,EAAO,IAAIoqC,KAAK,KAAMohP,EAAY,GAAI,GAI1C,OAHiBhC,EAAiB,CAC9B9oD,MAAO+qD,GADMjC,CAEdxpR,IAGPpL,OAAQ,SAAS42R,EAAYC,GACzB,IAAIzrR,EAAO,IAAIoqC,KAAK,EAAGohP,EAAY,GAAI,GAKnC1mS,EAJa2lS,EAAejB,EAAiB,CAC7ChpD,IAAK,UACLE,MAAO+qD,GAFqBjC,CAG7BxpR,IACoBz2B,MAAM,KAAK7H,QAAO,SAAAiqH,GAAI,OAAIA,EAAK1pH,QAAQ,MAAQ,KACtE,OAAI,IAAM6iB,EAAM1oB,OACL0oB,EAAM,GACN,IAAMA,EAAM1oB,OACZ0oB,EAAM,GAAG1oB,OAAS0oB,EAAM,GAAG1oB,OAAS0oB,EAAM,GAAKA,EAAM,GAEzDwmS,EAAoBC,WAAWC,EAAYC,KAG1D,GACIznB,OAAQ,WACJ,MAAO,QAEX0nB,cAAe,SAAS92R,EAAQnV,GAC5B,IAAIgsS,EAAc,CACdE,KAAM,OACNC,YAAa,QACbjhM,OAAQ,UACT/1F,GAAU,QAEb,OADAnV,EAAO,WAAaA,EAAOA,EAAO,aAC3Bpe,MAAMygB,MAAM,KAAM,IAAIzgB,MAAM,KAAKW,KAAI,SAACwU,EAAGg1S,GAAJ,OAAmBF,EAAoB7rS,GAAM+rS,EAAYC,OAEzGI,YAAa,SAASj3R,GAClB,IAAIjqB,EAAU,SAAAiqB,GAAM,OAAIvzB,MAAMygB,MAAM,KAAM,IAAIzgB,MAAM,IAAIW,KAAI,SAACwU,EAAGs1S,GAAJ,OAAiBtC,EAAiB,CAC1FoB,QAASh2R,GADgE40R,CAE1E,IAAIp/O,KAAK,EAAG,EAAG0hP,OAFJ,CAEiB,CAC3BH,KAAM,OACNC,YAAa,QACbhlM,MAAO,SACP+D,OAAQ,UACT/1F,GAAU,SACb,OAAOjqB,GAEXohT,eAAgB,WACZ,IAAIC,EAAkBxC,EAAiB,CACnCjpD,KAAM,UACN0rD,QAAQ,IAEZ,MAAO,CAAC,EAAG,IAAIjqT,KAAI,SAAA+gQ,GACf,IAAImpD,EAAiB9L,EAAa,GAC9B+L,EAAYH,EAAgB,IAAI5hP,KAAK,EAAG,EAAG,EAAG24L,IAAQx5P,MAAM2iT,GAChE,OAAI,IAAMC,EAAU/vT,OACT,IAEM+vT,EAAU,GAAG/vT,OAAS+vT,EAAU,GAAG/vT,OAAS+vT,EAAU,GAAKA,EAAU,IACpEzvR,WAG1B9H,OAAQ,SAASoL,EAAMosR,GACnB,GAAKpsR,EAAL,CAGA,IAAKosR,EACD,OAAOpsR,EAEP,oBAAsBosR,GAAYA,EAAQC,YAC1CD,EAAUA,EAAQ3sS,MAAQ2sS,GAE9B,IAAIE,EAAajB,EAAce,GAC/B,GAAIE,EACA,OAAO9C,EAAiB8C,EAAjB9C,CAA6BxpR,GAExC,IAAIusR,SAAoBH,EACxB,OAAIA,EAAQC,WAAa,aAAeE,GAAc,WAAaA,EACxDzwT,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAE9B2lT,EAAiB4C,EAAjB5C,CAA0BxpR,KAErCmyD,MAAO,SAASm4N,EAAY11R,GAAQ,IAC5By3R,EAD4B,OAMhC,OAJIz3R,IAAWA,EAAOy6D,QAAU,kBAAoBi7N,IAChDA,EAAaG,EAAeH,GAC5B+B,EAAY,SAAArsR,GAAI,OAAIyqR,EAAe,EAAK71R,OAAOoL,EAAMpL,MAElD94B,KAAKuxN,SAASi9F,EAAY+B,GAAaz3R,IAElD43R,yBAA0B,SAASlC,EAAY11R,GAAQ,WACnD01R,EAAaD,EAAkBC,GAC/B,IAAImC,EAAc3wT,KAAK4wT,eAAe93R,GAClC+3R,EAAYrC,EAAW/gT,MAAM,OAAO7H,QAAO,SAAAiqH,GAAI,OAAIA,EAAKvvH,OAAS,KACrE,GAAIqwT,EAAYrwT,SAAWuwT,EAAUvwT,OAArC,CAGA,IAAI++E,EAAWr/E,KAAK8wT,kBAAkBH,EAAaE,GAC/CE,EAAqB,SAAAC,GACrB,IApKYC,EAAQ35N,EAoKhB45N,EAAc,SAAC7xO,EAAU2xO,GACzB,IAAIG,EAAaH,EAAY,GAAK,EAClC,OAAO,IAAI1iP,KAAK+Q,EAASylL,KAAMzlL,EAASulL,MAAOvlL,EAASqlL,KAAMrlL,EAAS4nL,MAAQkqD,GAAc,GAAI9xO,EAAS8nL,QAAS9nL,EAAS+nL,SAF9G,CAGf/nL,EAAU2xO,GACb,GAxKYC,EAwKS1C,EAAkB,EAAKz1R,OAAOo4R,EAAYp4R,IAxK3Cw+D,EAwKqDk3N,EAxKxCE,EAAoBuC,KAAYvC,EAAoBp3N,GAyKjF,OAAO45N,GAGf,OAAOH,GAAmB,IAAUA,GAAmB,KAE3DD,kBAAmB,SAASH,EAAaE,GACrC,IAAIrlD,EAAc,IAAIl9L,KAClB+Q,EAAW,CACXylL,KAAM0G,EAAY3sL,cAClB+lL,MAAO4G,EAAY7sL,WACnB+lL,IAAK8G,EAAY5sL,UACjBqoL,MAAO,EACPE,QAAS,EACTC,QAAS,GAUb,OARAupD,EAAY1wT,SAAQ,SAACmxT,EAAYvwT,GAC7B,IAAI69E,EAAWmyO,EAAUhwT,GACrBorN,EAASh2K,SAASyoC,EAAU,IAC5B,UAAY0yO,IACZnlG,GAAU,GAEd5sI,EAAS+xO,GAAcnlG,KAEpB5sI,GAEXgyO,oBAAqB,SAASv4R,GAC1B,MAAI,kBAAoBA,GAAYA,EAAOnV,MAAQmV,EAAOA,OAGnD94B,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAFtB,SAAW+wB,EAAO8rO,OAIjC0sD,kBAAmB,SAASx4R,GACxB,MAAI,kBAAoBA,GAAYA,EAAOnV,MAAQmV,EAAOA,OAGnD94B,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAFtB,SAAW+wB,EAAOg2R,SAIjCyC,iBAAkB,WACd,OAAOhD,EAAkBR,EAAe,IAAIz/O,KAAK,KAAM,EAAG,EAAG,GAAI,IAAK,CAClEm2L,KAAM,UACND,OAAQ,UACR2rD,QAAQ,KACRznQ,QAAQ,MAAO,KAEvBkoQ,eAAgB,SAAS93R,GACrB,GAAI,kBAAoBA,EACpB,OAAO94B,KAAKuxN,SAASz4L,GAEzB,IAAI03R,GAAa1nT,EAAAA,EAAAA,GAAO,GAAI8lT,EAAY91R,EAAOmK,gBAC3CiB,EAAO,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAClCkjP,EAAgB9D,EAAiB8C,EAAjB9C,CAA6BxpR,GAEjD,OADAstR,EAAgBjD,EAAkBiD,GAC3B,CAAC,CACJhkT,KAAM,OACN5L,MAAO,GACR,CACC4L,KAAM,QACN5L,MAAO,GACR,CACC4L,KAAM,MACN5L,MAAO,GACR,CACC4L,KAAM,QACN5L,MAAO,GACR,CACC4L,KAAM,UACN5L,MAAO,GACR,CACC4L,KAAM,UACN5L,MAAO,IACRsE,KAAI,SAAA2pH,GAAI,MAAK,CACZriH,KAAMqiH,EAAKriH,KACX3M,MAAO2wT,EAAcrrT,QAAQ0pH,EAAKjuH,WAClCgE,QAAO,SAAAiqH,GAAI,OAAIA,EAAKhvH,OAAS,KAAG2kD,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE5kD,MAAQ6kD,EAAE7kD,SAAOqF,KAAI,SAAA2pH,GAAI,OAAIA,EAAKriH,UCtR3FikT,EAAU,qBAAuBtsM,KACjCusM,EAAyB,CACzBtC,UAAW,QACXC,UAAW,SACXN,SAAU,kBACVE,SAAU,YACVC,YAAa,SACbC,aAAc,SACdwC,eAAgB,QAChBjtD,IAAK,IACLI,KAAM,IACN8sD,mBAAoB,gBACpB5C,iBAAkB,6BAClBpqD,MAAO,OACP0qD,UAAW,KACXT,UAAW,OACXhqD,QAAS,MACTJ,KAAM,KACND,OAAQ,KACRD,OAAQ,KACRD,YAAa,MACb,iBAAkB,2BAElButD,EAAuB,CACvB/sD,KAAM,CAAC,IAAK,KAAM,QAClBJ,IAAK,CAAC,IAAK,MACXE,MAAO,CAAC,IAAK,KAAM,MAAO,QAC1BqC,MAAO,CAAC,IAAK,KAAM,IAAK,KAAM,MAC9BE,QAAS,CAAC,IAAK,MACfC,QAAS,CAAC,IAAK,MACfC,aAAc,CAAC,IAAK,KAAM,QAE1ByqD,GAAmBvvC,EAAAA,EAAAA,GAAmB,CACtC2lB,OAAQ,WACJ,MAAO,QAEX6pB,oBAAqB,SAASj5R,GAC1B,OAAO44R,EAAuB54R,EAAOmK,gBAEzC+uR,eAAgB,SAASh9M,GACrB,OAAOh1G,KAAK+xT,oBAAoB/8M,IAAYA,GAEhDq8M,oBAAqB,SAASv4R,GAC1B,OAAQ,IAAM94B,KAAKgyT,eAAel5R,GAAQ3yB,QAAQ,SAEtDmrT,kBAAmB,SAASx4R,GACxB,OAAQ,IAAM94B,KAAKgyT,eAAel5R,GAAQ3yB,QAAQ,SAEtDyqT,eAAgB,SAAS93R,GACrB,IAAIk8E,EAAUh1G,KAAK+xT,oBAAoBj5R,IAAWA,EAC9CjqB,EAAS,GAQb,OAPA4L,EAAAA,EAAAA,IAAKu6F,EAAQvnG,MAAM,QAAQ,SAACiN,EAAG02S,IAC3B32S,EAAAA,EAAAA,IAAKo3S,GAAsB,SAACI,EAAUC,GAC9BA,EAAiBp2L,SAASs1L,IAC1BviT,EAAOjO,KAAKqxT,SAIjBpjT,GAEX+gT,cAAe,SAAS92R,GACpB,OAAOo1O,EAAAA,EAAAA,cAA+Bp1O,IAE1Ci3R,YAAa,SAASj3R,GAClB,OAAOo1O,EAAAA,EAAAA,YAA6Bp1O,IAExCq5R,gBAAiB,SAASr5R,GACtB,OAAOo1O,EAAAA,EAAAA,gBAAiCp1O,IAE5Cm3R,eAAgB,SAASn3R,GACrB,OAAOo1O,EAAAA,EAAAA,eAAgCp1O,IAE3Cy4R,iBAAkB,WACd,MAAO,KAEXa,eAAgB,SAASt5R,GAKrB,IAJA,IAAIu5R,EAAS,IAAI/jP,KAAK,KAAM,EAAG,GAAI,GAAI,EAAG,EAAG,GACzCgkP,EAAS,IAAIhkP,KAAK,KAAM,EAAG,GAAI,GAAI,EAAG,EAAG,GACzCikP,EAAkBvyT,KAAK84B,OAAOu5R,EAAQv5R,GACtC05R,EAAkBxyT,KAAK84B,OAAOw5R,EAAQx5R,GACjC/sB,EAAI,EAAGA,EAAIwmT,EAAgBjyT,OAAQyL,IACxC,GAAIwmT,EAAgBxmT,KAAOymT,EAAgBzmT,GACvC,OAAQy9B,MAAMyM,SAASs8Q,EAAgBxmT,MAInD+sB,OAAQ,SAASoL,EAAMosR,GACnB,GAAKpsR,EAAL,CAGA,IAAKosR,EACD,OAAOpsR,EAEX,IAAIqsR,EACJ,GAAI,oBAAsBD,EACtBC,EAAYD,OACT,GAAIA,EAAQC,UACfA,EAAYD,EAAQC,eAGpB,GADAD,EAAUA,EAAQ3sS,MAAQ2sS,GACtBhmG,EAAAA,EAAAA,IAASgmG,GAET,OADAA,EAAUoB,EAAuBpB,EAAQrtR,gBAAkBqtR,EACpDmC,EAAAA,QAAAA,eAAiCC,EAAAA,EAAAA,GAAqBpC,EAAStwT,KAA9B0yT,CAAoCxuR,IAGpF,GAAKqsR,EAGL,OAAOA,EAAUrsR,KAErBmyD,MAAO,SAAS1zF,EAAMm2B,GAClB,IACI65R,EACApC,EAFA36H,EAAO51L,KAGX,GAAK2C,EAAL,CAGA,IAAKm2B,EACD,OAAO94B,KAAKq2F,MAAM1zF,EAAM,aAE5B,GAAIm2B,EAAOy6D,OACP,OAAOz6D,EAAOy6D,OAAO5wF,GAEzB,GAAI,kBAAoBm2B,GAAW44R,EAAuB54R,EAAOmK,eAE1D,CACHstR,EAAY,SAAA3uT,GACR,IAAIe,EAAOizL,EAAK98J,OAAOl3B,EAAOk3B,GAC9B,OAAO25R,EAAAA,QAAAA,cAAiC9vT,GAAM,IAElD,IACIgwT,GAAaC,EAAAA,EAAAA,GAAkBrC,GACjC,MAAO/vT,UARTmyT,EAAa75R,EAUjB,GAAI65R,EAEA,OADAhwT,EAAO8vT,EAAAA,QAAAA,cAAiC9vT,GAAM,IACvCkwT,EAAAA,EAAAA,IAAkBF,EAAY3yT,KAA9B6yT,CAAoClwT,GAE/Cs/N,EAAAA,EAAAA,IAAW,SACX,IAAIpzN,EAAS,IAAIy/D,KAAK3rE,GACtB,GAAKkM,IAAU26B,MAAM36B,EAAOo1P,WAG5B,OAAOp1P,IAEXikT,oBAAqB,WACjB,IAAIjyT,EAAQkyT,EAAAA,EAAAA,yBAAyC,SAAAhmT,GAAM,OAAIimT,EAAmBjmT,MAClF,YAAO,IAAWlM,EApJM,EAoJ8BA,KAG1D4wT,GACAK,EAAiB3iD,OAAO8jD,GAE5B,2DC7KIC,EAAS,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACxHC,EAAO,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC1EC,EAAU,CAAC,KAAM,MACjBC,EAAW,CAAC,KAAM,KAAM,KAAM,MAC9BC,EAAc,SAACC,EAAUz6R,GACzB,IAAI06R,EAAiB,CACjB1D,YAAa,EACbhlM,MAAO,EACP+D,OAAQ,GAEZ,OAAO3oH,EAAAA,EAAAA,IAAIqtT,GAAU,SAAA1sO,GAAO,OAAIA,EAAQl2E,OAAO,EAAG6iT,EAAe16R,QAErE,KACI82R,cAAe,SAAS92R,GACpB,OAAOw6R,EAAYJ,EAAQp6R,IAE/Bi3R,YAAa,SAASj3R,GAClB,OAAOw6R,EAAYH,EAAMr6R,IAE7Bq5R,gBAAiB,SAASr5R,GACtB,OAAOu6R,GAEXpD,eAAgB,SAASn3R,GACrB,OAAOs6R,sFCxBXK,EAAoB,wBAEpBC,EAAa,SAASr4N,GACtB,IAAIkoE,EAAOloE,GAAQo3N,EAAAA,QAAAA,cAAiCp3N,GAAM,GAAOjqC,WAAW,GACxEuiQ,EAAWlB,EAAAA,QAAAA,cAAiC,KAAK,GAAOrhQ,WAAW,GACvE,OAAOuiQ,GAAYpwJ,GAAQA,EAAOowJ,EAAW,IAE7CC,EAAuB,SAASjxT,EAAMkwG,EAAUhyG,EAAOgzT,GACvD,IAAIx4N,EAAO14F,EAAK9B,GACZizT,EAAWnxT,EAAK9B,EAAQ,GAC5B,IAAKgzT,EAAS,CACV,GAAI,MAAQx4N,GAAQ,MAAQA,GAVhB,SAUwB14F,EAAK8C,MAAM5E,EAAQ,EAAGA,EAAQ,GAC9D,OAAO,EAEX,GAAI,MAAQw6F,IAASq4N,EAAWI,GAC5B,OAAO,EAGf,IAAIC,EAAiBF,GAAWhhN,EAAStwF,MAAK,SAAAyyF,GAAO,OAAIryG,EAAK9B,KAAWm0G,EAAQn0G,MACjF,OAAO4yT,EAAkBttT,QAAQk1F,GAAQ,GAAKw4N,IAAYH,EAAWr4N,MAAWw4N,GAAWE,IAE3FC,EAAuB,SAASC,EAAgBpzT,GAChD,IAAK6yT,EAAWO,EAAepzT,IAC3B,KAAOA,EAAQ,IAAM6yT,EAAWO,EAAepzT,EAAQ,MAAQ,MAAQozT,EAAepzT,EAAQ,IAAM4yT,EAAkBttT,QAAQ8tT,EAAepzT,EAAQ,IAAM,IACvJA,IAGR,OAAOA,GAsEPqzT,EAAc,SAAStyT,EAAO2uT,GAC9B,OAAIhrT,MAAMi2E,QAAQ55E,GACPA,EAAMsE,KAAK,SAAStE,GACvB,OAAQ2uT,EAAU3uT,IAAU,IAAI6M,eAGhC8hT,EAAU3uT,IAAU,IAAI6M,YAEhC0lT,EAAsB,YAyBfC,EAAY,SAAS7D,GAC5B,IAAI8D,EAAmB,GACnBJ,EAAiBC,EAAY,IAAI5lP,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAIiiP,GAC5D+D,EAAmBL,EAAexmT,MAAM,IAAIvH,KAAK,SAASwU,EAAG7Z,GAC7D,OAAOA,KAEPgO,EAASolT,EACTM,EAAmB,GACnBC,EAAe,CAAC,CAChBtwR,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KACpC0mC,QAAS,KACV,CACC9wE,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,KACV,CACC9wE,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,KACV,CACC9wE,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC0mC,QAAS,IACT6+M,SAAS,GACV,CACC3vR,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,IACT6+M,SAAS,GACV,CACC3vR,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,GAAI,EAAG,GAClC0mC,QAAS,IACT6+M,SAAS,GACV,CACC3vR,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,KACV,CACC9wE,KAAM,CAAC,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAAI,IAAIA,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,IAChG0mC,QAAS,KACV,CACC9wE,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,KACV,CACC9wE,KAAM,IAAIoqC,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GACjC0mC,QAAS,MAEb,GAAKnmG,EAUL,OAPA2lT,EAAav0T,SAAS,SAASijC,GAC3B,IAAI2iB,EAnJQ,SAASouQ,EAAgBphN,EAAUwhN,EAAkBR,GACrE,IAAI9nT,EAAI,EACJ8C,EAAS,GACT4lT,EAAiB,SAASz/M,GAC1B,OAAOi/M,EAAeloT,KAAOipG,EAAQjpG,UAAO,IAAW8nT,GAAWH,EAAWO,EAAeloT,MAAQ8nT,IAKxG,IAHKtuT,MAAMi2E,QAAQq3B,KACfA,EAAW,CAACA,IAEX9mG,EAAI,EAAGA,EAAIkoT,EAAe3zT,OAAQyL,IACnC,GAAIsoT,EAAiBluT,QAAQ4F,GAAK,GAAK8mG,EAASjtG,OAAO6uT,GAAgBn0T,OAAQ,CAC3EyL,EAAIioT,EAAqBC,EAAgBloT,GACzC,EAAG,CAEC,GADA8nT,EAAUH,EAAWO,EAAeloT,KAC/B8C,EAAOvO,SAAWuzT,GAAWH,EAAW7gN,EAAS,GAAG9mG,IACrD,MAEJ8C,EAAOjO,KAAKmL,GACZsoT,EAAiBn3J,QAAQnxJ,GACzBA,UACKkoT,EAAeloT,IAAM6nT,EAAqBK,EAAgBphN,EAAU9mG,EAAG8nT,IAChF,MAMR,OAHI,IAAMhlT,EAAOvO,QAAW,MAAQ2zT,EAAeI,EAAiB,GAAK,IAAM,WAAaJ,EAAeI,EAAiB,GAAK,IAC7HA,EAAiBn3J,QAAQm3J,EAAiB,GAAK,GAE5CxlT,EAwHQ6lT,CAAcT,EAAgBC,EAAYhxR,EAAKgB,KAAMqsR,GAAY8D,EAAkBnxR,EAAK2wR,SAC/F7+M,EAAU,MAAQ9xE,EAAK8xE,SAAYu/M,EAAiBz3M,EAAU55E,EAAK8xE,QAAX,IAC5DnmG,EA5GW,SAASmmG,EAAS2/M,EAASt5N,EAAMi5N,GAChD,IAAIvoT,EACAlL,EACA+zT,EACJ,IAAKlB,EAAW1+M,EAAQ2/M,EAAQ,KAAO,KAAM,CAEzC,IADA,IAAIE,EAAclvS,KAAKC,IAAI+uS,EAAQr0T,QAAU,EAAI,EAAI,EAAG+6F,EAAK/6F,QACtDq0T,EAAQr0T,OAASu0T,GAAa,CAIjC,IAFAD,EAAeN,EADfzzT,EAAQ8zT,EAAQv8Q,OAEhBk8Q,EAAiBzzT,IAAU,EACtBkL,EAAIlL,EAAQ,EAAGkL,EAAIuoT,EAAiBh0T,OAAQyL,IAC7CuoT,EAAiBvoT,KAErBipG,EAAUA,EAAQrkG,OAAO,EAAGikT,GAAgB5/M,EAAQrkG,OAAOikT,EAAe,GAG9E,IADyCA,GAAzC/zT,EAAQ8zT,EAAQA,EAAQr0T,OAAS,GAAK,GAA0Bg0T,EAAiBh0T,OAASg0T,EAAiBzzT,GAASA,EAC7G8zT,EAAQr0T,OAASu0T,GAAa,CAEjC,IADAF,EAAQ/zT,KAAK+zT,EAAQA,EAAQr0T,OAAS,GAAK,GACtCyL,EAAIlL,EAAOkL,EAAIuoT,EAAiBh0T,OAAQyL,IACzCuoT,EAAiBvoT,KAErBipG,EAAUA,EAAQrkG,OAAO,EAAGikT,GAAgB,IAAM5/M,EAAQrkG,OAAOikT,IAIzE,OADA5/M,EApCmB,SAASA,EAAS2/M,EAASt5N,EAAMi5N,GACpD,IAAIQ,EAAgBH,EAAQ,GACxBC,EAAeE,EAAgBR,EAAiBh0T,OAASg0T,EAAiBQ,GAAiBA,EAQ/F,OAPAH,EAAQ10T,SAAS,SAASya,EAAG7Z,GACzBm0G,EAAUA,EAAQrkG,OAAO,EAAGikT,EAAe/zT,IAAUw6F,EAAK/6F,OAAS,EAAI+6F,EAAKx6F,GAASw6F,GAAQ2Z,EAAQrkG,OAAOikT,EAAe/zT,EAAQ,MAEnI,IAAM8zT,EAAQr0T,SAEd00G,GADAA,EAAUA,EAAQtsD,QAAQ,IAAM2yC,EAAMA,EAAOA,IAC3B3yC,QAAQ,SAAW2yC,EAAMA,EAAOA,IAE/C2Z,EA0BG+/M,CAAiB//M,EAAS2/M,EAASt5N,EAAMi5N,GAC5Ct/M,EAmFMggN,CAAanmT,EAAQg3C,EAAMmvD,EAASs/M,GAC7CC,EAAiBv/M,GAAWnvD,EAAKvlD,UAErCuO,EA3Ec,SAASmmG,EAASi/M,EAAgBI,EAAkBC,GAClE,IAAIW,EAAgBhB,EAAexmT,MAAM,IAAIvH,KAAK,SAASm1F,EAAMx6F,GAC7D,OAAIwzT,EAAiBluT,QAAQtF,GAAS,IAAMw6F,EAAK15E,MAAMwyS,IAAwB,MAAQ94N,GAC5Ei5N,EAAiBzzT,IAEpB,KAiBZ,OAfUm0G,EAAQvnG,MAAM,IAAIvH,KAAK,SAASm1F,EAAMx6F,GAC5C,IAAIgO,EAASwsF,EACT65N,EAAuBD,EAAc9uT,QAAQtF,IAAU,EACvDs0T,EAAoBt0T,EAAQ,GAAKo0T,EAAc9uT,QAAQtF,EAAQ,IAAM,EACrEu0T,EAAoBH,EAAc9uT,QAAQtF,EAAQ,IAAM,EAS5D,OARIq0T,IACKC,IACDtmT,EAAS,IAAMA,GAEdumT,IACDvmT,GAAU,MAGXA,KACPoC,KAAK,IAsDAokT,CAAYxmT,EAAQolT,EAAgBI,EAAkBC,GAC3DD,EAAiB/zT,OACVuO,OADX,uCCxLJ,SAASymT,EAAQ3yT,EAAMrC,GACnB,KAAOqC,EAAKrC,OAASA,GACjBqC,EAAO,IAAMA,EAEjB,OAAOA,kCAEX,IAAI4yT,EAAe,CACf,EAAG,cACH,EAAG,OACH,EAAG,UAEHC,EAAkB,CAClB73S,EAAG,SAASumB,EAAMg1C,EAAO40L,GACrB,IAAIhJ,EAAO5gO,EAAK4pO,EAAS,iBAAmB,iBAI5C,OAHI,IAAM50L,IACN4rL,GAAQ,KAELwwD,EAAQxwD,EAAKr2P,WAAYyqE,IAEpCu8O,EAAG,SAASvxR,EAAMg1C,EAAO40L,EAAQ+iD,GAC7B,IAAIjsD,EAAQ1gO,EAAK4pO,EAAS,cAAgB,cACtC2iD,EAAa8E,EAAar8O,GAC9B,OAAIu3O,EACOI,EAAUjB,cAAca,EAAY,UAAU7rD,GAElD0wD,GAAS1wD,EAAQ,GAAGn2P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE3Dk2E,EAAG,SAASlrH,EAAMg1C,EAAO40L,EAAQ+iD,GAC7B,IAAIjsD,EAAQ1gO,EAAK4pO,EAAS,cAAgB,cACtC2iD,EAAa8E,EAAar8O,GAC9B,OAAIu3O,EACOI,EAAUjB,cAAca,EAAY,cAAc7rD,GAEtD0wD,GAAS1wD,EAAQ,GAAGn2P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE3Dw8O,EAAG,SAASxxR,EAAMg1C,EAAO40L,EAAQ+iD,GAC7B,IAAIjsD,EAAQ1gO,EAAK4pO,EAAS,cAAgB,cACtCjJ,EAAUl/O,KAAKo1B,MAAM6pN,EAAQ,GAC7B6rD,EAAa8E,EAAar8O,GAC9B,OAAIu3O,EACOI,EAAUsB,gBAAgB1B,GAAY5rD,GAE1CywD,GAASzwD,EAAU,GAAGp2P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE7Dy8O,EAAG,SAASzxR,EAAMg1C,EAAO40L,EAAQ+iD,GAC7B,IAAInsD,EAAMxgO,EAAK4pO,EAAS,YAAc,YAClC2iD,EAAa8E,EAAar8O,EAAQ,EAAI,EAAIA,GAC9C,OAAO23O,EAAUd,YAAYU,GAAY/rD,IAE7Cj/M,EAAG,SAASvhB,EAAMg1C,EAAO40L,EAAQ+iD,GAC7B,IACI+E,EADQ1xR,EAAK4pO,EAAS,cAAgB,cACrB,GAAK,EAAI,EAC1B2iD,EAAa8E,EAAar8O,GAC9B,OAAO23O,EAAUZ,eAAeQ,GAAYmF,IAEhD94M,EAAG,SAAS54E,EAAMg1C,EAAO40L,GACrB,OAAOwnD,EAAQpxR,EAAK4pO,EAAS,aAAe,aAAar/P,WAAYkX,KAAKG,IAAIozD,EAAO,KAEzF87J,EAAG,SAAS9wM,EAAMg1C,EAAO40L,GACrB,OAAOwnD,EAAQpxR,EAAK4pO,EAAS,cAAgB,cAAcr/P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE3FswE,EAAG,SAAStlH,EAAMg1C,EAAO40L,GAErB,OAAOwnD,GADKpxR,EAAK4pO,EAAS,cAAgB,cAClB,IAAM,IAAIr/P,WAAYkX,KAAKG,IAAIozD,EAAO,KAElEzhB,EAAG,SAASvzB,EAAMg1C,EAAO40L,GACrB,OAAOwnD,EAAQpxR,EAAK4pO,EAAS,gBAAkB,gBAAgBr/P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE/FrsD,EAAG,SAASqX,EAAMg1C,EAAO40L,GACrB,OAAOwnD,EAAQpxR,EAAK4pO,EAAS,gBAAkB,gBAAgBr/P,WAAYkX,KAAKG,IAAIozD,EAAO,KAE/F+7J,EAAG,SAAS/wM,EAAMg1C,EAAO40L,GACrB,OAAOwnD,EAAQpxR,EAAK4pO,EAAS,qBAAuB,qBAAqBr/P,WAAY,GAAGkC,OAAO,EAAGuoE,IAEtGloE,EAAG,SAASkzB,EAAMg1C,EAAO40L,GACrB,IAAI+nD,EAAiB/nD,EAAS,EAAI5pO,EAAKykO,oBACnCmtD,EAAWD,EAAiB,EAAI,IAAM,IACtCE,EAAoBpwS,KAAK23B,IAAIu4Q,GAE7B1uD,EAAU4uD,EAAoB,GAC9BC,EAAYV,EAFJ3vS,KAAKo1B,MAAMg7Q,EAAoB,IAEbtnT,WAAY,GACtCwnT,EAAcX,EAAQnuD,EAAQ14P,WAAY,GAC9C,OAAOqnT,EAAWE,GAAa98O,GAAS,EAAI,IAAM,KAAOA,EAAQ,GAAKiuL,EAAU8uD,EAAc,KAElGC,EAAG,SAAShyR,EAAMg1C,EAAO40L,GACrB,OAAIA,IAAW5pO,EAAKykO,oBACT,IAEJ6sD,EAAgBxkT,EAAEkzB,EAAMg1C,EAAO40L,IAE1CqoD,EAAG,SAASjyR,EAAMg1C,EAAO40L,GACrB,OAAO0nD,EAAgBU,EAAEhyR,EAAMg1C,GAAS,EAAI,EAAI,EAAG40L,KAGhDsgD,EAAe,SAASt1R,EAAQ+3R,GACvC,OAAO,SAAS3sR,GACZ,IAAIkyR,EACA7F,EACAl1N,EAGAg7N,EAFA3gH,EAAY,EACZ4gH,GAAa,EAEbznT,EAAS,GACb,IAAKq1B,EACD,OAAO,KAEX,IAAKpL,EACD,OAAOoL,EAEX,IAAI4pO,EAAS,MAAQh1O,EAAOA,EAAOx4B,OAAS,IAAM,QAAUw4B,EAAOrzB,OAAO,GAC1E,IAAK2wT,EAAY,EAAGA,EAAYt9R,EAAOx4B,OAAQ81T,IAC3C/6N,EAAOviE,EAAOs9R,GACd7F,EAAYiF,EAAgBn6N,GAE5Bq6G,KADA2gH,EAA0Bh7N,IAASviE,EAAOs9R,EAAY,MAG9C7F,IAAc+F,IACdznT,GAAU0hT,EAAUrsR,EAAMwxK,EAAWo4D,EAAQ+iD,IAEjDn7G,EAAY,GAEZ,MAAQr6G,GAASg7N,GAEVC,GAAe/F,IACtB1hT,GAAUwsF,GAFVi7N,GAAcA,EAId,MAAQj7N,GAAQg7N,GAChBD,IAGR,OAAOvnT,iJC5HX0mT,EAAe,CACf,EAAG,cACH,EAAG,OACH,EAAG,UAEHgB,EAAuB,SAASr9O,EAAO23O,GACvC,OAAI33O,EAAQ,EACDpyE,OAAOC,KAAKwuT,GAAcrvT,KAAK,SAASgzE,GAC3C,MAAO,CAAC,SAAU,cAAchzE,KAAK,SAASyd,GAC1C,OAAOktS,EAAUjB,cAAc2F,EAAar8O,GAAQv1D,GAAM1S,KAAK,QAC/DA,KAAK,QACTA,KAAK,KAEN,IAAMioE,EAAQ,iBAAmB,mBAExCs9O,EAAkB,CAClB,IAAK,SAASt9O,EAAO23O,GACjB,IAAI4F,EAAcv9O,EAAQ,EAAI,IAAIt9C,OAAOs9C,EAAO,KAAO,GACnDw9O,GAAgBv5L,EAAAA,EAAAA,cAAa0zL,EAAUU,oBAE3C,MADA,MAAQmF,IAAkBA,EAAgB,GAAG96R,OAAO86R,EAAe,OAC5D,GAAG96R,OAAO86R,GAAe96R,OAAO66R,IAE3C94S,EAAG,SAASu7D,GACR,OAAO,IAAMA,EAAQ,SAASt9C,OAAOs9C,EAAO,KAAO,WAEvDu8O,EAAGc,EACHnnK,EAAGmnK,EACHb,EAAG,SAASx8O,EAAO23O,GACf,OAAI33O,EAAQ,EACD23O,EAAUsB,gBAAgBoD,EAAar8O,GAAQ,UAAUjoE,KAAK,KAElE,WAEX0kT,EAAG,SAASz8O,EAAO23O,GACf,MAAO,QAEXprQ,EAAG,SAASyzB,EAAO23O,GACf,OAAOA,EAAUZ,eAAesF,EAAar8O,EAAQ,EAAI,EAAIA,GAAQ,UAAUjoE,KAAK,MAExF6rG,EAAG,SAAS5jC,GACR,OAAO,IAAMA,EAAQ,0BAA4B,4BAErD87J,EAAG,SAAS97J,GACR,OAAO,IAAMA,EAAQ,wBAA0B,0BAEnDswE,EAAG,SAAStwE,GACR,OAAO,IAAMA,EAAQ,iBAAmB,mBAE5CzhB,EAAG,SAASyhB,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhDrsD,EAAG,SAASqsD,GACR,OAAO,IAAMA,EAAQ,qBAAuB,uBAEhD+7J,EAAG,SAAS/7J,GACR,MAAO,WAAWt9C,OAAOs9C,EAAO,MAEpCuwE,EAAG,SAASvwE,GACR,OAAO,IAAMA,EAAQ,qBAAuB,wBAGhDqrO,EAAc90P,OACdknQ,EAAyB,SAASt+Q,EAAOz2C,GACzC,OAAOy2C,EAAMnyC,KAAI,SAAAhG,GAAI,OAAIA,EAAK+iC,iBAAe98B,QAAQvE,EAAMqhC,gBAE3D2zR,EAAqB,SAASj0T,EAAMu2E,EAAO23O,GAC3C,OAAI33O,EAAQ,EACD,CAAC,SAAU,cAAchzE,KAAK,SAASyd,GAC1C,OAAO7c,OAAOC,KAAKwuT,GAAcrvT,KAAK,SAASgzE,GAC3C,IAAI29O,EAAahG,EAAUjB,cAAc2F,EAAar8O,GAAQv1D,GAC9D,OAAOgzS,EAAuBE,EAAYl0T,SAE9C+G,QAAQ,SAAS+7C,EAAGC,GACpB,OAAOD,EAAE7pB,OAAO8pB,MAChB9/C,QAAQ,SAAS/E,GACjB,OAAOA,GAAS,KAChB,GAED0jT,EAAY5hT,GAAQ,GAE3Bm0T,EAAkB,CAClBn5S,EAAG,SAAShb,EAAMu2E,GACd,IAAI4rL,EAAOy/C,EAAY5hT,GACvB,OAAI,IAAMu2E,EACC4rL,EAAO,GAAK,IAAMA,EAAO,KAAOA,EAEpCA,GAEX2wD,EAAGmB,EACHxnK,EAAGwnK,EACHlB,EAAG,SAAS/yT,EAAMu2E,EAAO23O,GACrB,OAAI33O,EAAQ,EACD23O,EAAUsB,gBAAgBoD,EAAar8O,GAAQ,UAAU/yE,QAAQxD,GAErE4hT,EAAY5hT,GAAQ,GAE/BgzT,EAAG,SAAShzT,EAAMu2E,EAAO23O,GACrB,IAAIkG,EAAWlG,EAAUd,YAAYwF,EAAar8O,EAAQ,EAAI,EAAIA,GAAQ,UAC1E,OAAOy9O,EAAuBI,EAAUp0T,IAE5C8iD,EAAG,SAAS9iD,EAAMu2E,EAAO23O,GACrB,IAAImG,EAAcnG,EAAUZ,eAAesF,EAAar8O,EAAQ,EAAI,EAAIA,GAAQ,UAChF,OAAOy9O,EAAuBK,EAAar0T,IAE/Cm6G,EAAGynM,EACHvvE,EAAGuvE,EACH/6J,EAAG+6J,EACH9sP,EAAG8sP,EACH13R,EAAG03R,EACHtvE,EAAG,SAAStyO,EAAMu2E,GAGd,IAFAA,EAAQvzD,KAAKC,IAAIszD,EAAO,GACxBv2E,EAAOA,EAAK8C,MAAM,EAAG,GACdyzE,EAAQ,GACXv2E,GAAQ,IACRu2E,IAEJ,OAAOqrO,EAAY5hT,KAGvBs0T,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAClDC,EAAkB,CAClBv5S,EAAG,cACH83S,EAAG,WACHrmK,EAAG,WACH3pG,EAAG,SAASvhB,EAAMtiC,EAAOu1T,GACrB,IAAIlwD,EAAQ/iO,EAAK66C,WACbq4O,EAAgBD,EAAe3tK,OAC/B,IAAW4tK,GAAiBA,IAAkBnwD,GAC9CA,IAECrlQ,GAAS,KAAOqlQ,EAEVrlQ,GAAS,KAAOqlQ,IACvBA,GAAS,IAFTA,EAAQ,EAIZ/iO,EAAK2tE,SAASo1J,IAElBnqJ,EAAG,UACHk4H,EAAG,WACHxrF,EAAG,WACH/xF,EAAG,aACH5qC,EAAG,aACHooN,EAAG,mBAEHoiF,EAAmB,SAAS10T,EAAM9B,GAClC,IAAIw6F,EAAO14F,EAAK9B,GAChB,IAAKw6F,EACD,OAAO,EAEX,IAAIniB,EAAQ,EACZ,GACIr4E,IACAq4E,UACKv2E,EAAK9B,KAAWw6F,GACzB,OAAOniB,GAEPo+O,EAAgB,SAASj8N,EAAMniB,GAE/B,IADA,IAAIrqE,EAAS,GACJ9C,EAAI,EAAGA,EAAImtE,EAAOntE,IACvB8C,GAAUwsF,EAEd,OAAOxsF,GAEA0oT,EAAgB,SAASz+R,EAAQ+3R,GAYxC,IAXA,IAEIyF,EAFAkB,EAAa,GACbC,EAAW,GAEX5kN,EAAW,GACX6kN,EAAkB,WACdD,IACA5kN,EAASjyG,KAAK,IAAIg7B,OAAO67R,EAAU,MACnCD,GAAc,GAAG57R,QAAOuhG,EAAAA,EAAAA,cAAas6L,GAAW,KAChDA,EAAW,KAGV1rT,EAAI,EAAGA,EAAI+sB,EAAOx4B,OAAQyL,IAAK,CACpC,IAAIsvF,EAAOviE,EAAO/sB,GAEd4rT,EAAanB,EAAgBn7N,GACjC,KAFmB,MAAQA,KAGvBi7N,GAAcA,EACV,MAAQx9R,EAAO/sB,EAAI,IAI3B,GAAI4rT,IAAerB,EAAY,CAC3B,IAAIp9O,EAAQm+O,EAAiBv+R,EAAQ/sB,GACjCipG,EAAUsiN,EAAcj8N,EAAMniB,GAClCw+O,IACA7kN,EAASjyG,KAAKo0G,GACdwiN,GAAc,IAAI57R,OAAO+7R,EAAWz+O,EAAO23O,GAAY,KACvD9kT,GAAKmtE,EAAQ,OAERu+O,IACDD,GAAc,KAElBC,GAAYp8N,EAOpB,OAJAq8N,IACKE,EAA2B/kN,IAC5B6vJ,EAAAA,OAAAA,KAAY,mDAAmD9mO,OAAO9C,EAAQ,MAE3E,CACH+5E,SAAUA,EACVglN,OAAQ,IAAI7uQ,OAAO,IAAIptB,OAAO47R,EAAY,KAAM,OAGpDM,EAAoB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACtDF,EAA6B,SAAS/kN,GAC7C,IAAIklN,EAAiB,SAAA/iN,GACjB,IAAKA,EACD,OAAO,EAEX,IAAI3Z,EAAO2Z,EAAQ,GACnB,MAAO,CAAC,IAAK,KAAK8mB,SAASzgC,IAASy8N,EAAkBh8L,SAASzgC,IAAS2Z,EAAQ10G,OAAS,GAEzF03T,GAAqB,EACrBC,EAA8B,EAClC,OAAOplN,EAAS78D,OAAM,SAACg/D,EAASn0G,EAAOgyG,GASnC,OARIklN,EAAe/iN,KACV,SAAAA,GAAO,MAAI,MAAQA,EAAQ,IAAM,IAAMA,EAAQ10G,OAA/C,CAAuD00G,KACxDgjN,IAAuBC,EAA8B,GAEpDF,EAAellN,EAAShyG,EAAQ,MACjCo3T,EAA8B,IAG/BD,MAGJE,EAAoB,WAC3B,OAAOhB,GA2CAiB,EAAY,SAASr/R,EAAQ+3R,GACpC,IAAIuH,EAAab,EAAcz+R,EAAQ+3R,GACvC,OAAO,SAASluT,GACZ,IAAI01T,EAAeD,EAAWP,OAAOtpT,KAAK5L,GAC1C,GAAI01T,EAAc,CACd,IAAIzlN,EAAM,IAAItkC,KACVpqC,EAAO,IAAIoqC,KAAKskC,EAAI/zB,cAAe,EAAG,GACtCy5O,EAAkCF,EAAWvlN,SA3BrC3sG,KAAK,SAAS8uG,GAC9B,MAAI,MAAQA,EAAQ,GACT,GAEA,MAAQA,EAAQ,GAAK,IAAMA,EAAQ,MAwBtCujN,EApBgB,SAAS1lN,GACrC,IAAI8hN,EAAU9hN,EAAS3sG,KAAK,SAAS8uG,GACjC,OAAOiiN,EAAiB9wT,QAAQ6uG,MAEpC,OAAOrvF,KAAKC,IAAII,MAAML,KAAMgvS,GAgBE6D,CAA0BF,GAC5CG,EAfe,SAASH,GACpC,IAAII,EAAgBJ,EAAe1yT,QAAQ,SAASovG,GAChD,OAAOiiN,EAAiB9wT,QAAQ6uG,GAAW,KAE/C,OAAOiiN,EAAiBr7R,OAAO88R,GAWKC,CAAyBL,GACjDnB,EAAiB,GAcrB,OAbAsB,EAAsBx4T,SAAS,SAAS+0G,EAASn0G,GAC7C,GAAKm0G,KAAWn0G,EAAQo2T,EAAiB32T,QAAUO,EAAQ03T,GAA3D,CAGA,IAAI3D,EAAe0D,EAAenyT,QAAQ6uG,GAC1C,GAAI4/M,GAAgB,EAAG,CACnB,IAAIgE,EAAgBR,EAAWvlN,SAAS+hN,GACpCiE,EAAaR,EAAazD,EAAe,IA3D5C,SAAS1wR,EAAM8wE,EAASryG,EAAMkuT,EAAWsG,GAC1D,IAAI2B,EAAc9jN,EAAQ,GACtB+jN,EAAa7B,EAAgB4B,GAC7BE,EAAalC,EAAgBgC,GACjC,GAAIC,GAAcC,EAAY,CAC1B,IAAIp3T,EAAQo3T,EAAWr2T,EAAMqyG,EAAQ10G,OAAQuwT,GAC7CsG,EAAeniN,GAAWpzG,EACtBsiC,EAAK60R,GACL70R,EAAK60R,GAAYn3T,GAEjBm3T,EAAW70R,EAAMtiC,EAAOu1T,IAkDhB8B,CAAe/0R,EAAM00R,EAAeC,EAAYhI,EAAWsG,QA9CnD,SAASjzR,EAAM8wE,EAASpC,GAChD,IAAIsmN,EAAahC,EAAgBliN,GAE7BpzG,EAAQgxG,EADK,IAAMsmN,EAAWvoT,OAAO,MAEzCuzB,EAAKg1R,GAAYt3T,GA4CDu3T,CAAsBj1R,EAAM8wE,EAASpC,OAGtC1uE,EAEX,OAAO,2HC5SXk1R,EAAiB,CACjB7+E,mBAAoB,IACpBD,iBAAkB,KA0BtB,SAAS++E,EAAc76O,GACnB,OAAOA,EAAI/vE,WAAWhB,MAAM,IAAIsmB,UAAU9iB,KAAK,IAOnD,SAASqoT,EAAY96O,GACjB,OAAOA,EAAI91B,QAAQ,QAAS,IAGhC,SAAS6wQ,EAAyBC,GAC9B,IAAKA,EACD,OAAO,EAEX,IAAI1gS,EAASwgS,EAAYE,GACzB,OAAO1gS,EAAOx4B,OAASw4B,EAAO4vB,QAAQ,OAAQ,IAAIpoD,OAGtD,SAASm5T,EAAsBD,GAC3B,IAAKA,EACD,OAAO,EAEX,IAAI1gS,EAASwgS,EAAYE,GACzB,OAAO1gS,EAAOx4B,OAASw4B,EAAO4vB,QAAQ,OAAQ,IAAIpoD,OAGtD,SAASo5T,EAAqBC,EAAWC,EAAeC,GACpD,IAAKF,EACD,MAAO,GAKX,IAHIA,EAAUr5T,OAASu5T,IACnBF,EAAYA,EAAUhpT,OAAO,EAAGkpT,IAE7BF,EAAUr5T,OAASs5T,GAAiB,MAAQD,EAAUl0T,OAAO,IAChEk0T,EAAYA,EAAUhpT,OAAO,EAAGgpT,EAAUr5T,OAAS,GAEvD,KAAOq5T,EAAUr5T,OAASs5T,GACtBD,GAAa,IAEjB,OAAOA,EAuBX,SAASG,EAAiBhhS,EAAQw8O,GAC9B,OAAOx8O,EAAOrrB,MAzFE,KAyFmBvH,KAAK,SAASkrT,EAAY2I,GACzD,IAAIC,EAAWD,EAAc,EAC7B,OAAK3I,GAAc4I,EA3FP,IA8FLA,EAAW5I,EAAaA,EAAW1oQ,QAAQ,SAAU4sN,MAC5DrkQ,KAAK,IAeN,SAASm9S,EAAat1R,EAAQw2C,GAEjC,OADAA,EAASA,GAAU8pP,EACZ,SAASx3T,GACZ,GAAI,kBAAoBA,GAAS4nC,MAAM5nC,GACnC,MAAO,GAEX,IAAIq4T,EApGZ,SAAsBnhS,GAClB,IAAIohS,EAAYphS,EAAOrrB,MAAM,KAI7B,OAHI,IAAMysT,EAAU55T,QAChB45T,EAAUt5T,KAAK,IAAMs5T,EAAU,IAE5BA,EA+FmBC,CAAarhS,GAE/BshS,EAAax4T,EAAQ,GADJ,EAAIA,IAAU,IAE/BuoH,EAAe8vM,EAAgBG,EAAa,EAAI,GAChDC,EAtBZ,SAA4BvhS,GAExB,IADA,IAAIkhS,GAAW,EACNn5T,EAAQ,EAAGA,EAAQi4B,EAAOx4B,OAAQO,IAIvC,GAHI,MAAQi4B,EAAOj4B,KACfm5T,GAAYA,GAEZ,MAAQlhS,EAAOj4B,KAAWm5T,EAC1B,OAAOn5T,EAGf,OAAOi4B,EAAOx4B,OAYYg6T,CAAmBnwM,GACrCowM,EAAmB,CAACpwM,EAAax5G,OAAO,EAAG0pT,GAAkBlwM,EAAax5G,OAAO0pT,EAAkB,IACnGG,EAAoBf,EAAsBc,EAAiB,IAC3DE,EAAoBD,EAAoBjB,EAAyBgB,EAAiB,KA/F9F,SAAyBzhS,GACrB,OAAQ,IAAMA,EAAO3yB,QAAQ,OAAS2yB,EAAOnX,MAAM,mBA+F3C+4S,CAAgBvwM,KAChBvoH,GAAQ4xQ,EAAAA,EAAAA,IAA0B5xQ,EA3HjB,IA6HhBw4T,IACDx4T,GAASA,GAEb,IA9He+4T,EA8HXC,EAAsBnB,EAAsBc,EAAiB,IAC7DM,EAAsBtB,EAAyBgB,EAAiB,KAAOjrP,EAAOwrP,4BAAyB,EAASF,EAChHG,EAAgBp1S,KAAKo1B,MAAMn5C,GAAO6M,WAAWnO,OAC7C06T,GAAiB9nD,EAAAA,EAAAA,IAAaunD,EAAmB,EApIjC,GAoI4DM,GAC5EE,GAlIWN,EAkIgBJ,EAAiB,GAjI7CI,EAAaltT,MAAM,KAAKhI,MAAM,GAAGS,KAAK,SAASs4E,GAClD,IAAI08O,EAAmB,EACvB,OAAO18O,EAAI/wE,MAAM,IAAI7H,QAAQ,SAASy1F,EAAMx6F,GAIxC,OAHAq6T,GAAoB,MAAQ7/N,GACd,MAAQA,GAAQ,MAAQA,MACvB6/N,EAAmB,MAElC56T,WA0HgDyzB,UAChDonS,GAAalnQ,EAAAA,EAAAA,GAAQryD,EAAOo5T,EAAiB,EAAI,EAAIA,GAAgBvtT,MAAM,KAC3E2tT,EAAmB1B,EAAqBL,EAAc8B,EAAW,IAAKP,EAAqBC,GAC3FQ,EAAiB3B,EAAqByB,EAAW,GAAIX,EAAmBC,GAC5EW,EAtER,SAAqB9lD,EAAa2lD,EAAY1gF,GAC1C,IAAK0gF,EAAW36T,OACZ,OAAOg1Q,EAIX,IAFA,IAAIrpP,EAAS,GACTprB,EAAQ,EACLy0Q,GAAa,CAChB,IAAIgmD,EAAYL,EAAWp6T,GAC3B,IAAKy6T,EACD,MAEJrvS,EAAOrrB,KAAK00Q,EAAY7vQ,MAAM,EAAG61T,IACjChmD,EAAcA,EAAY7vQ,MAAM61T,GAC5Bz6T,EAAQo6T,EAAW36T,OAAS,GAC5BO,IAGR,OAAOorB,EAAOhb,KAAKspO,GAqDIghF,CAAYH,EAAkBH,EAAY3rP,EAAOirK,oBACpE,IAAIihF,EAAgBnC,EAAcS,EAAiBT,EAAckB,EAAiB,IAAKa,IACnFK,EAAchB,EAAoBX,EAAiBS,EAAiB,GAAIc,GAAkB,GAE9F,OADaG,GAAiBC,EAAY95S,MAAM,MAAQ2tD,EAAOgrK,iBAAmB,IAAMmhF,GAKhG,SAASC,EAAW/4T,EAAMg5T,EAAW/uM,GACjC,IAAIhrH,GAAS+5T,EAAY,IAAM,GAAKhmR,WAAWhzC,IAAS,EACxD,OAAOiqH,GAAchrH,EAAQA,EAGjC,SAASg6T,EAAiBC,EAAWtL,EAAWoL,EAAWG,GACvD,IACIzgO,EACA14F,EACAo5T,EAHAC,EAAgBH,EAIpB,GACQE,IACA1gO,EAAO14F,EAAKrC,SAAWy7T,EAASz7T,OAAS,IAAM,IAC/Cu7T,EAAYC,EAAgBzgO,EAAOwgO,EAAYA,EAAYxgO,GAE/D14F,EAAOo5T,GAAYxL,EAAUmL,EAAWM,EAAeL,IAEvDI,EAAWxL,EAAUmL,EADrBM,EAAgBF,EAAgB,IAAME,EAAgBA,EAAgB,IACvBL,UAC1Ch5T,IAASo5T,IAAaD,EAAgBn5T,EAAKrC,SAAWy7T,EAASz7T,OAASqC,EAAKrC,QAAUy7T,EAASz7T,SACzG,GAAIw7T,GAAiBC,EAASz7T,OAASqC,EAAKrC,OAAQ,CAChD,IAAI27T,GAAa,IAAM1L,EAAU,OAAOpqT,QAAQ,SAChD,GACI01T,EAAY,IAAMA,QACbI,GAAaP,EAAWG,EAAWF,GAAa,KAE7D,OAAOE,EAGX,SAASK,EAAqBL,EAAWtL,EAAWoL,EAAW/uM,GAC3D,IAAI9zF,EAASy3R,EAAUmL,EAAWG,EAAWF,EAAW/uM,IACpDuvM,EAAiBN,EAAUpuT,MAAM,KAGjC2uT,EAAwB7L,EADCmL,EADIS,EAAe,GAAK,KAAOA,EAAe,GAAG12T,MAAM,GAChBk2T,EAAW/uM,IACjBzmH,QAAQ,KAAO,EAS7E,OARA2yB,EAASA,EAAO4vB,QAAQ,cAAe,SACnC0zQ,GAAyB,IACzBtjS,EAASA,EAAOrzB,MAAM,EAAG22T,GAAyB,IAAMtjS,EAAOrzB,MAAM22T,EAAwB,IAEjGtjS,EAASA,EAAO4vB,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAC5CizQ,IACD7iS,EAASA,EAAO4vB,QAAQ,IAAK,QAE1B5vB,EAEJ,SAASs7R,EAAU7D,GACtB,IAAIsL,EAAY,IACZF,EAAYpL,EAAU,GAAGpqT,QAAQ,QAAU,EAC/C01T,EAAYD,EAAiBC,EAAWtL,EAAWoL,GAAW,GAE9D,IAAIU,EAAiBH,EADrBL,EAAYD,EAAiBC,EAAWtL,EAAWoL,GAAW,GACTpL,EAAWoL,GAAW,GACvEW,EAAiBJ,EAAqBL,EAAWtL,EAAWoL,GAAW,GAC3E,OAAOW,IAAmB,IAAMD,EAAiBA,EAAiBA,EAAiB,IAAMC,kIClMzFC,GAAiBzzT,EAAAA,EAAAA,IAAO,EAAM,GCbL,CACzB0zT,GAAI,CACAC,IAAK,MACLC,GAAI,KACJv5G,OAAQ,SACRw5G,MAAO,QACPC,MAAO,QACPC,KAAM,OACNC,QAAS,aACTC,OAAQ,YACR98I,OAAQ,SACR+8I,KAAM,OACNC,GAAI,KACJ,gCAAiC,qBACjC,+BAAgC,SAChC,sBAAuB,WACvB,gCAAiC,kBACjC,qBAAsB,yBACtB,+BAAgC,uBAChC,mBAAoB,wBACpB,6BAA8B,sBAC9B,0BAA2B,yCAC3B,oCAAqC,mCACrC,oBAAqB,mBACrB,8BAA+B,iBAC/B,mBAAoB,mBACpB,6BAA8B,iBAC9B,qBAAsB,sBACtB,+BAAgC,qBAChC,qBAAsB,+BACtB,+BAAgC,6BAChC,mBAAoB,mBACpB,6BAA8B,iBAC9B,kBAAmB,mBACnB,6BAA8B,gCAC9B,yBAA0B,0BAC1B,wBAAyB,wBACzB,wBAAyB,gBACzB,yBAA0B,aAC1B,wBAAyB,OACzB,mBAAoB,aACpB,6BAA8B,SAC9B,2BAA4B,OAC5B,+BAAgC,0BAChC,8BAA+B,wBAC/B,8BAA+B,gBAC/B,+BAAgC,aAChC,yCAA0C,cAC1C,yCAA0C,cAC1C,6CAA8C,uBAC9C,gCAAiC,+BACjC,yCAA0C,6BAC1C,uCAAwC,2BACxC,4CAA6C,6BAC7C,0CAA2C,2BAC3C,gCAAiC,aACjC,8BAA+B,WAC/B,4BAA6B,gBAC7B,0BAA2B,sBAC3B,uBAAwB,QACxB,oBAAqB,KACrB,oBAAqB,KACrB,oBAAqB,KACrB,wBAAyB,SACzB,0BAA2B,WAC3B,+BAAgC,kBAChC,sCAAuC,mBACvC,qCAAsC,gBACtC,sCAAuC,2BACvC,oCAAqC,oBACrC,oCAAqC,oBACrC,yBAA0B,OAC1B,yBAA0B,OAC1B,0BAA2B,KAC3B,2BAA4B,MAC5B,sBAAuB,WACvB,yBAA0B,kBAC1B,kCAAmC,yBACnC,yBAA0B,UAC1B,8CAA+C,6BAC/C,2CAA4C,0CAC5C,2DAA4D,gDAC5D,0CAA2C,iBAC3C,gCAAiC,iBACjC,oCAAqC,gCACrC,mCAAoC,6BACpC,mCAAoC,mCACpC,6BAA8B,uBAC9B,+BAAgC,UAChC,4BAA6B,cAC7B,4BAA6B,OAC7B,mCAAoC,OACpC,qCAAsC,SACtC,8BAA+B,SAC/B,gCAAiC,WACjC,yCAA0C,+CAC1C,qCAAsC,iBACtC,iCAAkC,oDAClC,wBAAyB,UACzB,oCAAqC,YACrC,kCAAmC,QACnC,yCAA0C,QAC1C,sCAAuC,SACvC,yCAA0C,iBAC1C,oCAAqC,YACrC,4CAA6C,wBAC7C,uCAAwC,eACxC,+CAAgD,2BAChD,0CAA2C,cAC3C,wCAAyC,WACzC,2CAA4C,mBAC5C,wCAAyC,YACzC,uCAAwC,UACxC,gDAAiD,QACjD,8CAA+C,MAC/C,2BAA4B,aAC5B,6BAA8B,eAC9B,sBAAuB,OACvB,uBAAwB,QACxB,kCAAmC,iBACnC,mCAAoC,kBACpC,8BAA+B,gBAC/B,mCAAoC,eACpC,qCAAsC,kBACtC,2BAA4B,YAC5B,wBAAyB,WACzB,mCAAoC,oBACpC,wBAAyB,WACzB,mCAAoC,oBACpC,wBAAyB,WACzB,mCAAoC,oBACpC,wBAAyB,WACzB,mCAAoC,oBACpC,0BAA2B,aAC3B,6BAA8B,MAC9B,+BAAgC,QAChC,sCAAuC,cACvC,uCAAwC,eACxC,sBAAuB,SACvB,2BAA4B,uBAC5B,uBAAwB,eACxB,yBAA0B,aAC1B,0BAA2B,gBAC3B,gCAAiC,8BACjC,uBAAwB,yBACxB,+BAAgC,iBAChC,wCAAyC,uCACzC,oCAAqC,WACrC,4BAA6B,KAC7B,gCAAiC,SACjC,kCAAmC,uBACnC,gCAAiC,0BACjC,wBAAyB,SACzB,uBAAwB,QACxB,4BAA6B,cAC7B,0BAA2B,WAC3B,wBAAyB,SACzB,0BAA2B,0CAC3B,8BAA+B,0BAC/B,2BAA4B,aAC5B,2BAA4B,aAC5B,yBAA0B,oBAC1B,qCAAsC,iBACtC,qCAAsC,gBACtC,oCAAqC,QACrC,0CAA2C,oBAC3C,0BAA2B,YAC3B,8BAA+B,0BAC/B,yBAA0B,oBAC1B,iCAAkC,MAClC,mBAAoB,8BACpB,yBAA0B,KAC1B,mBAAoB,sBACpB,2BAA4B,MAC5B,eAAgB,WAChB,mBAAoB,gBACpB,mBAAoB,YACpB,oBAAqB,kBACrB,uBAAwB,YACxB,yBAA0B,cAC1B,yBAA0B,cAC1B,oBAAqB,YACrB,gCAAiC,gBACjC,+BAAgC,qBAChC,wBAAyB,aACzB,0BAA2B,eAC3B,kCAAmC,4BACnC,+BAAgC,yBAChC,+BAAgC,qBAChC,+BAAgC,MAChC,wBAAyB,aACzB,2BAA4B,gBAC5B,yBAA0B,cAC1B,2BAA4B,gBAC5B,wBAAyB,aACzB,8BAA+B,0BAC/B,4BAA6B,wBAC7B,2BAA4B,uBAC5B,8BAA+B,0BAC/B,+BAAgC,UAChC,mCAAoC,aACpC,iCAAkC,WAClC,qCAAsC,cACtC,oCAAqC,SACrC,8BAA+B,mBAC/B,8BAA+B,QAC/B,iCAAkC,eAClC,+BAAgC,SAChC,8BAA+B,QAC/B,+BAAgC,SAChC,gCAAiC,UACjC,+BAAgC,SAChC,oCAAqC,eACrC,iCAAkC,YAClC,4BAA6B,aAC7B,8BAA+B,QAC/B,2BAA4B,KAC5B,uCAAwC,YACxC,qCAAsC,UACtC,oCAAqC,SACrC,qCAAsC,UACtC,sCAAuC,WACvC,qCAAsC,UACtC,0BAA2B,MAC3B,2BAA4B,OAC5B,+BAAgC,YAChC,4BAA6B,QAC7B,6BAA8B,SAC9B,kCAAmC,eACnC,mCAAoC,gBACpC,uCAAwC,qBACxC,oCAAqC,iBACrC,qCAAsC,UACtC,oCAAqC,gBACrC,qBAAsB,UACtB,2CAA4C,iEAC5C,6CAA8C,mEAC9C,0CAA2C,cAC3C,4CAA6C,gBAC7C,8CAA+C,mBAC/C,gDAAiD,qBACjD,8BAA+B,cAC/B,+BAAgC,WAChC,6BAA8B,QAC9B,4BAA6B,WAC7B,6BAA8B,yLAC9B,sBAAuB,MACvB,wBAAyB,QACzB,uBAAwB,OACxB,wBAAyB,eACzB,sBAAuB,aACvB,oBAAqB,eACrB,uBAAwB,qBACxB,wBAAyB,WACzB,+BAAgC,QAChC,0BAA2B,qBAC3B,6BAA8B,WAC9B,sBAAuB,MACvB,qBAAsB,KACtB,yBAA0B,UAC1B,wBAAyB,SACzB,+BAAgC,gBAChC,2BAA4B,YAC5B,iCAAkC,kBAClC,wCAAyC,SACzC,2CAA4C,iBAC5C,sCAAuC,eACvC,8CAA+C,2BAC/C,yCAA0C,kBAC1C,iDAAkD,8BAClD,4CAA6C,cAC7C,0CAA2C,WAC3C,6CAA8C,mBAC9C,0CAA2C,YAC3C,yCAA0C,WAC1C,4CAA6C,eAC7C,yCAA0C,aAC1C,uCAAwC,YACxC,wCAAyC,aACzC,kCAAmC,oBACnC,uCAAwC,0BACxC,iCAAkC,WAClC,kCAAmC,MACnC,mCAAoC,OACpC,qCAAsC,0BACtC,kCAAmC,YACnC,mCAAoC,MACpC,mCAAoC,iBACpC,qCAAsC,aACtC,sCAAuC,cACvC,0CAA2C,OAC3C,6CAA8C,UAC9C,wCAAyC,eACzC,wCAAyC,eACzC,uCAAwC,SACxC,oCAAqC,MACrC,qCAAsC,eACtC,qCAAsC,mBACtC,0CAA2C,oBAC3C,yCAA0C,mBAC1C,uBAAwB,UACxB,0BAA2B,cAC3B,0BAA2B,mBAC3B,oBAAqB,OACrB,qBAAsB,aACtB,oBAAqB,OACrB,sBAAuB,SACvB,oBAAqB,WACrB,qBAAsB,YACtB,oBAAqB,OACrB,sBAAuB,gBACvB,yBAA0B,YAC1B,2BAA4B,cAC5B,yBAA0B,YAC1B,0BAA2B,aAC3B,sBAAuB,SACvB,8BAA+B,kBAC/B,8BAA+B,kBAC/B,2BAA4B,eAC5B,0BAA2B,cAC3B,yBAA0B,aAC1B,2BAA4B,eAC5B,0BAA2B,cAC3B,4BAA6B,gBAC7B,yBAA0B,aAC1B,wBAAyB,eACzB,oBAAqB,OACrB,oBAAqB,OACrB,qBAAsB,mBACtB,2BAA4B,eAC5B,+BAAgC,oBAChC,8BAA+B,mBAC/B,8BAA+B,mBAC/B,gCAAiC,qBACjC,iCAAkC,sBAClC,4BAA6B,gBAC7B,yBAA0B,aAC1B,2BAA4B,eAC5B,8BAA+B,kBAC/B,+BAAgC,mBAChC,sBAAuB,SACvB,sBAAuB,SACvB,sBAAuB,SACvB,qBAAsB,QACtB,qBAAsB,QACtB,sBAAuB,SACvB,2BAA4B,QAC5B,+BAAgC,aAChC,0BAA2B,aAC3B,yBAA0B,YAC1B,0BAA2B,aAC3B,wBAAyB,WACzB,+BAAgC,mBAChC,iCAAkC,qBAClC,sBAAuB,SACvB,oBAAqB,OACrB,uBAAwB,UACxB,sBAAuB,SACvB,qBAAsB,QACtB,sBAAuB,SACvB,oBAAqB,OACrB,qBAAsB,QACtB,sBAAuB,SACvB,uBAAwB,UACxB,iCAAkC,qBAClC,kCAAmC,QACnC,8BAA+B,mDAC/B,2CAA4C,kCAC5C,sCAAuC,6BACvC,wCAAyC,wBACzC,6CAA8C,6BAC9C,wCAAyC,iCACzC,yCAA0C,8CAC1C,oCAAqC,yCACrC,6BAA8B,qBAC9B,yCAA0C,iCAC1C,8BAA+B,gBAC/B,8BAA+B,SAC/B,4BAA6B,UAC7B,4BAA6B,UAC7B,8BAA+B,SAC/B,gCAAiC,WACjC,8BAA+B,eAC/B,+BAAgC,UAChC,kCAAmC,kBACnC,+BAAgC,eAChC,sCAAuC,kBACvC,mCAAoC,yBACpC,gDAAiD,UACjD,qDAAsD,OACtD,gDAAiD,UACjD,qDAAsD,OACtD,sCAAuC,SACvC,2CAA4C,OAC5C,2CAA4C,gBAC5C,gDAAiD,SACjD,sCAAuC,SACvC,2CAA4C,SAC5C,uDAAwD,uCACxD,0DAA2D,6CAC3D,mCAAoC,SACpC,yDAA0D,kCAC1D,sDAAuD,iCACvD,oDAAqD,4BACrD,gDAAiD,4BACjD,yDAA0D,8BAC1D,sDAAuD,6BACvD,oDAAqD,uBACrD,gDAAiD,uBACjD,yDAA0D,4BAC1D,4DAA6D,8BAC7D,sDAAuD,2BACvD,yDAA0D,6BAC1D,oDAAqD,uBACrD,uDAAwD,6BACxD,gDAAiD,8BACjD,uDAAwD,wBACxD,0DAA2D,0BAC3D,oDAAqD,uBACrD,uDAAwD,yBACxD,kDAAmD,qBACnD,qDAAsD,2BACtD,8CAA+C,4BAC/C,uDAAwD,yBACxD,0DAA2D,2BAC3D,oDAAqD,wBACrD,uDAAwD,0BACxD,kDAAmD,sBACnD,qDAAsD,4BACtD,8CAA+C,6BAC/C,yDAA0D,2BAC1D,4DAA6D,6BAC7D,sDAAuD,0BACvD,yDAA0D,4BAC1D,oDAAqD,wBACrD,uDAAwD,8BACxD,6CAA8C,WAC9C,sDAAuD,0BACvD,yDAA0D,gCAC1D,6CAA8C,OAC9C,qDAAsD,gBACtD,iDAAkD,YAClD,8CAA+C,OAC/C,sDAAuD,gBACvD,+CAAgD,WAChD,uDAAwD,gBACxD,2DAA4D,WAC5D,4BAA6B,UAC7B,8BAA+B,YAC/B,6BAA8B,YAC9B,+BAAgC,aAChC,2BAA4B,SAC5B,+BAAgC,gBAChC,+BAAgC,gBAChC,+BAAgC,iBAChC,wBAAyB,OACzB,wBAAyB,OACzB,4BAA6B,YAC7B,4BAA6B,YAC7B,wBAAyB,OACzB,0BAA2B,SAC3B,6BAA8B,YAC9B,6BAA8B,aAC9B,6BAA8B,aAC9B,6BAA8B,aAC9B,6BAA8B,aAC9B,kCAAmC,QACnC,mCAAoC,SACpC,mCAAoC,SACpC,6BAA8B,aAC9B,6BAA8B,aAC9B,+BAAgC,eAChC,8BAA+B,cAC/B,qCAAsC,sBACtC,yCAA0C,WAC1C,2CAA4C,aAC5C,sCAAuC,uBACvC,oCAAqC,qBACrC,qCAAsC,OACtC,sCAAuC,QACvC,8BAA+B,cAC/B,yBAA0B,QAC1B,4BAA6B,YAC7B,mCAAoC,mBACpC,4CAA6C,YAC7C,2CAA4C,WAC5C,6BAA8B,aAC9B,4BAA6B,YAC7B,8BAA+B,eAC/B,4BAA6B,YAC7B,6BAA8B,aAC9B,4BAA6B,YAC7B,gCAAiC,iBACjC,8BAA+B,eAC/B,qCAAsC,uBACtC,mCAAoC,qBACpC,8BAA+B,cAC/B,uBAAwB,MACxB,wBAAyB,OACzB,yBAA0B,QAC1B,6BAA8B,aAC9B,0BAA2B,SAC3B,gCAAiC,iBACjC,8BAA+B,eAC/B,wBAAyB,OACzB,0BAA2B,SAC3B,oCAAqC,kBACrC,kCAAmC,kBACnC,oCAAqC,eACrC,qCAAsC,gBACtC,qCAAsC,gBACtC,qCAAsC,gBACtC,qCAAsC,gBACtC,mBAAoB,KACpB,mBAAoB,KACpB,mBAAoB,KACpB,2BAA4B,KAC5B,+BAAgC,SAChC,wCAAyC,eACzC,sCAAuC,eACvC,6CAA8C,eAC9C,0CAA2C,sBAC3C,qBAAsB,SACtB,yBAA0B,aAC1B,uBAAwB,WACxB,0BAA2B,eAC3B,qBAAsB,SACtB,oBAAqB,QACrB,qBAAsB,SACtB,yBAA0B,OAC1B,4BAA6B,UAC7B,sBAAuB,UACvB,mBAAoB,OACpB,qBAAsB,SACtB,wBAAyB,YACzB,mBAAoB,OACpB,sBAAuB,OACvB,2BAA4B,YAC5B,yBAA0B,UAC1B,uBAAwB,QACxB,0BAA2B,WAC3B,yBAA0B,UAC1B,uBAAwB,QACxB,0BAA2B,WAC3B,yBAA0B,UAC1B,yBAA0B,UAC1B,sBAAuB,OACvB,2BAA4B,aAC5B,yBAA0B,WAC1B,4BAA6B,cAC7B,2BAA4B,aAC5B,6BAA8B,gBAC9B,gCAAiC,mBACjC,yBAA0B,UAC1B,0BAA2B,WAC3B,4BAA6B,aAC7B,mCAAoC,qBACpC,0BAA2B,WAC3B,mCAAoC,qBACpC,6BAA8B,eAC9B,6BAA8B,cAC9B,sBAAuB,OACvB,0BAA2B,WAC3B,0BAA2B,YAC3B,iCAAkC,mBAClC,2BAA4B,aAC5B,iCAAkC,mBAClC,uBAAwB,QACxB,4BAA6B,cAC7B,yBAA0B,UAC1B,uBAAwB,QACxB,2BAA4B,YAC5B,oBAAqB,KACrB,iCAAkC,mBAClC,sCAAuC,YACvC,mCAAoC,qBACpC,qCAAsC,uBACtC,iCAAkC,gBAClC,qCAAsC,8BACtC,oCAAqC,6BACrC,sCAAuC,+BACvC,sBAAuB,QACvB,2BAA4B,QAC5B,yBAA0B,MAC1B,8BAA+B,WAC/B,+BAAgC,YAChC,qCAAsC,mBACtC,iCAAkC,eAClC,qCAAsC,qBACtC,gCAAiC,eACjC,0BAA2B,MAC3B,6BAA8B,WAC9B,gCAAiC,cACjC,gCAAiC,cACjC,sCAAuC,oBACvC,uCAAwC,6GACxC,6CAA8C,gEAC9C,4CAA6C,qJAC7C,mDAAoD,4KACpD,2CAA4C,0HAC5C,uCAAwC,uBACxC,wCAAyC,wBACzC,iDAAkD,wCAClD,+DAAgE,2KAChE,uDAAwD,yHACxD,0CAA2C,kCAC3C,mDAAoD,0CACpD,eAAgB,OAChB,eAAgB,OAChB,oBAAqB,aACrB,sBAAuB,eACvB,qBAAsB,eACtB,6BAA8B,uBAC9B,iBAAkB,UAClB,kBAAmB,WACnB,qBAAsB,cACtB,kBAAmB,OACnB,+BAAgC,iBAChC,gCAAiC,kBACjC,2BAA4B,gBAC5B,wBAAyB,iBACzB,2BAA4B,oBAC5B,oCAAqC,+BACrC,kCAAmC,gCDhmBvCC,EAAc,GACdC,GAAsB56C,EAAAA,EAAAA,GAAmB,CACzC2lB,OAAQ,WACJ,MAAO,QAEXk1B,YAAab,EACb3vT,KAAM,SAASygE,IACXvkE,EAAAA,EAAAA,IAAO,EAAM9I,KAAKo9T,YAAa/vP,IAEnCgwP,mBAAoB,IACpBhiH,MAAO,SAASiiH,GACZt9T,KAAKq9T,mBAAqBC,GAE9BC,eAAgB,SAAS56T,GACrB,IAAIizL,EAAO51L,KACP07J,EAAQ,IAAI1yG,OAAO,kBAAoB4sI,EAAKynI,mBAAqB,QAAUznI,EAAKynI,mBAAqB,yBAA0B,KAC/HG,EAAe5nI,EAAKynI,mBAAqBznI,EAAKynI,mBAClD,OAAO16T,EAAK+lD,QAAQgzG,GAAO,SAACl9E,EAAK3zC,EAAQihG,EAAQ2xL,GAC7C,IACI5uT,EADA6uT,EAAgB9nI,EAAKynI,mBAAqBI,EAQ9C,OANI3xL,IAAW0xL,IACX3uT,EAAS+mL,EAAK98J,OAAO2kS,IAEpB5uT,IACDquT,EAAYO,IAAmB/qD,EAAAA,EAAAA,IAAS+qD,IAErC5yR,GAAUh8B,GAAU6uT,OAGnCC,qBAAsB,WAClB,OAAO39T,KAAKo9T,aAEhBQ,cAAe,SAASC,GACpB,OAAIA,EACOX,GAEJp0T,EAAAA,EAAAA,GAAO,GAAIo0T,EAAal9T,KAAK29T,uBAAuBG,EAAAA,EAAAA,YAE/D1P,aAAc,SAASpnT,GACnB,OAAOhH,KAAK+9T,kBAAkB/2T,IAAQhH,KAAK+9T,kBAAkB/2T,EAAK,OAEtE+2T,kBAAmB,SAAS/2T,EAAK+F,GAAQ,WACjC0+B,EAAUqyR,EAAAA,EAAAA,yBAAyC,SAAA/wT,GAAM,OA3C/C,SAACsmH,EAAYtmH,GAAb,OAAwBsmH,EAAWtmH,IAAW,GA2CKixT,CAAgB,EAAKZ,YAAarwT,GAAQ/F,MAC3G,GAAIykC,EACA,OAAO,WACH,IAAIjlB,EAAO,IAAMze,UAAUzH,QAAUiF,MAAMi2E,QAAQzzE,UAAU,IAAMA,UAAU,GAAGtC,MAAM,GAAKF,MAAMC,UAAUC,MAAMhF,KAAKsH,UAAW,GAEjI,OADAye,EAAK02I,QAAQzxH,GACNwyR,EAAAA,OAAAA,MAAmBj+T,KAAMwmB,KAI5CsS,OAAQ,SAAS9xB,GACb,IAAIupT,EAAYvwT,KAAKouT,aAAapnT,GAC9B4S,EAASrU,MAAMC,UAAUC,MAAMhF,KAAKsH,UAAW,GACnD,OAAOwoT,GAAaA,EAAUvqS,MAAMhmB,KAAM4Z,IAAW,MAG7D,+MExEA,GACIskT,GAAI,8BACJ,QAAS,8BACT3Y,IAAK,eACLC,GAAI,eACJ2Y,GAAI,8BACJ5mQ,GAAI,8BACJ,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT6mQ,GAAI,sBACJ3Y,IAAK,mBACLC,IAAK,mBACLC,GAAI,mBACJ,UAAW,mBACX,UAAW,mBACXC,IAAK,mBACLC,GAAI,mBACJ,YAAa,mBACbC,IAAK,8BACLC,IAAK,eACLC,GAAI,8BACJC,GAAI,8BACJoY,GAAI,oCACJ,QAAS,oCACTC,GAAI,mBACJ,QAAS,mBACTpY,GAAI,mBACJqY,IAAK,sBACLpY,GAAI,mBACJ,UAAW,mBACX,UAAW,mBACXC,GAAI,sCACJ,QAAS,sCACT,iBAAkB,sCAClB,QAAS,sCACT,QAAS,sCACToY,IAAK,oCACL,SAAU,oCACVnY,GAAI,mBACJoY,IAAK,8BACLnY,IAAK,eACLl0I,IAAK,8BACL+P,IAAK,mBACL,SAAU,mBACVokI,GAAI,mBACJC,GAAI,8BACJC,GAAI,mBACJ,QAAS,mBACTiY,IAAK,8BACLhY,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,QAAS,mBACTC,IAAK,eACLgY,IAAK,eACL/X,IAAK,mBACLC,IAAK,mBACLC,IAAK,mBACL8X,GAAI,kBACJC,IAAK,8BACL9X,GAAI,8BACJ,QAAS,8BACTv+S,GAAI,mBACJ,QAAS,mBACTg0T,GAAI,8BACJ,SAAU,8BACV,SAAU,mBACV,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,iCACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,sCACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,mBACT,QAAS,8BACT,QAAS,8BACT,QAAS,sCACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACT,QAAS,8BACTxV,GAAI,mBACJC,GAAI,mBACJ,SAAU,eACV,QAAS,sCACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,8BACT,QAAS,mBACT,QAAS,eACT,QAAS,mBACT,QAAS,eACT,QAAS,eACT,QAAS,mBACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,mBACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,eACT,QAAS,sCACT,QAAS,eACTC,GAAI,sCACJC,GAAI,sCACJC,IAAK,mBACLC,GAAI,kDACJ,QAAS,4CACTC,GAAI,mBACJ,UAAW,mBACX,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,UAAW,mBACX,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACd,aAAc,mBACdC,GAAI,mBACJuX,IAAK,8BACLtX,GAAI,sCACJ,QAAS,sCACT1vO,GAAI,sCACJ,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT2vO,IAAK,mBACLC,GAAI,sCACJC,GAAI,8BACJ,QAAS,8BACTC,GAAI,8BACJC,GAAI,mBACJC,IAAK,mBACL,SAAU,mBACV,SAAU,mBACViX,GAAI,oCACJC,IAAK,8BACLjX,GAAI,eACJC,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACTiX,IAAK,8BACLC,GAAI,mBACJzwK,GAAI,kBACJ,UAAW,kBACXw5J,GAAI,mBACJ,QAAS,mBACTC,IAAK,mBACLC,GAAI,mBACJC,GAAI,mBACJC,GAAI,sCACJp+S,GAAI,eACJq+S,GAAI,8BACJ3zE,GAAI,mBACJ76M,GAAI,mBACJyuR,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT4W,GAAI,8BACJ3W,IAAK,mBACLC,IAAK,eACL2W,GAAI,mBACJ1W,GAAI,mBACJC,IAAK,eACL0W,IAAK,8BACLzW,IAAK,8BACLC,IAAK,sCACLyW,IAAK,mBACLxW,IAAK,eACLyW,GAAI,8BACJxW,GAAI,mBACJC,IAAK,mBACLC,GAAI,6BACJuW,IAAK,8BACLC,GAAI,8BACJC,GAAI,8BACJh3T,GAAI,8BACJ,QAAS,8BACTi3T,IAAK,8BACLC,GAAI,eACJ,UAAW,eACX,UAAW,mBACX1W,IAAK,eACLC,IAAK,mBACLC,IAAK,mBACLC,GAAI,sCACJC,GAAI,eACJC,GAAI,mBACJC,IAAK,mBACLC,GAAI,mBACJC,GAAI,eACJmW,IAAK,mBACLlW,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT,QAAS,mBACTn7J,GAAI,6BACJo7J,IAAK,mBACL,SAAU,mBACVC,GAAI,mBACJC,GAAI,eACJgW,IAAK,eACLC,IAAK,iCACLhW,GAAI,mBACJiW,IAAK,mBACLC,IAAK,8BACL,SAAU,8BACVC,IAAK,8BACLlW,IAAK,mBACLC,GAAI,eACJkW,IAAK,mBACLjW,IAAK,mBACLC,GAAI,mBACJC,GAAI,mBACJgW,GAAI,8BACJ/V,GAAI,mBACJgW,IAAK,mBACL,WAAY,mBACZC,GAAI,8BACJj1D,GAAI,8BACJ,QAAS,8BACT,QAAS,eACT,QAAS,8BACTk1D,GAAI,eACJjW,IAAK,8BACL5qP,GAAI,mBACJ6qP,IAAK,mBACLC,IAAK,eACL/F,GAAI,sCACJ,QAAS,sCACT+b,GAAI,8BACJ/V,IAAK,mBACL,SAAU,mBACVgW,GAAI,sBACJ,QAAS,sBACT7uI,GAAI,sCACJ,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT84H,IAAK,mBACLhG,GAAI,mBACJiG,IAAK,mBACLC,GAAI,sCACJC,IAAK,8BACLC,IAAK,eACL4V,GAAI,eACJ,QAAS,eACTC,GAAI,8BACJjiM,GAAI,mBACJ,QAAS,mBACTkiM,GAAI,mBACJ,UAAW,mBACX,UAAW,mBACX7V,IAAK,eACL/8L,GAAI,sCACJg9L,GAAI,8BACJ,QAAS,8BACT6V,GAAI,mBACJ,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACT,QAAS,sCACTC,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT7V,GAAI,mBACJC,GAAI,eACJC,GAAI,sCACJ,QAAS,sCACTC,IAAK,eACLC,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,QAAS,mBACT,QAAS,mBACTC,GAAI,mBACJC,IAAK,eACLwV,GAAI,mBACJvV,IAAK,mBACLwV,IAAK,8BACLC,IAAK,mBACL,WAAY,mBACZxV,IAAK,eACLrrI,GAAI,mBACJ8gJ,GAAI,mBACJ,UAAW,mBACX,UAAW,mBACXxV,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACTyV,IAAK,eACLxV,IAAK,eACLC,GAAI,6BACJC,IAAK,eACL,WAAY,eACZ,WAAY,eACZC,GAAI,8BACJC,GAAI,sCACJC,GAAI,sCACJC,IAAK,mBACLmV,GAAI,8BACJlV,GAAI,8BACJ,QAAS,8BACT,QAAS,8BACT,QAAS,8BACTC,GAAI,sCACJ,QAAS,sCACT,QAAS,sCACThsI,GAAI,sCACJ,UAAW,sCACX,aAAc,sCACd,aAAc,sCACd,aAAc,sCACd,UAAW,sCACX,aAAc,sCACd,aAAc,sCACd,aAAc,sCACdkhJ,GAAI,eACJ,UAAW,eACXjV,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACTC,GAAI,mBACJ,QAAS,mBACT,QAAS,mBACT,QAAS,mBACTiV,GAAI,8BACJ,QAAS,8BACT,QAAS,8BACT,QAAS,8BACTC,GAAI,8BACJjV,IAAK,8BACL,SAAU,8BACVC,GAAI,mBACJv6C,GAAI,8BACJwvD,GAAI,eACJ,QAAS,eACThV,GAAI,mBACJxrP,GAAI,mBACJ4wM,GAAI,8BACJ,QAAS,8BACT66C,GAAI,mBACJC,IAAK,eACLC,IAAK,mBACL8U,GAAI,8BACJ7U,GAAI,mBACJ8U,IAAK,mBACLC,GAAI,8BACJ,QAAS,8BACT9U,GAAI,mBACJ,UAAW,mBACX,UAAW,mBACX,UAAW,mBACXC,IAAK,8BACL,WAAY,8BACZ,WAAY,8BACZC,GAAI,mBACJC,IAAK,eACLC,IAAK,mBACLC,GAAI,mBACJ0U,GAAI,eACJzU,IAAK,mBACLC,IAAK,sCACLC,GAAI,mBACJC,GAAI,8BACJ,QAAS,8BACTuU,IAAK,mBACL,SAAU,mBACV,SAAU,mBACVC,IAAK,8BACL,WAAY,8BACZ,WAAY,8BACZvU,IAAK,eACLwU,GAAI,8BACJ,UAAW,8BACX,aAAc,8BACd,aAAc,8BACd,aAAc,8BACd,UAAW,8BACX,aAAc,8BACd,aAAc,8BACdC,GAAI,+BC3jBJC,EAAkB,CAAC,WAAY,cAE/BC,EAA4B,0CAC5BjU,EAAkB,GAClBG,EAAe,SAAAt1R,GACf,IAAI9xB,EAAMknT,EAAAA,EAAAA,SAAiC,IAAM5yS,KAAKC,UAAUud,GAIhE,OAHKm1R,EAAgBjnT,KACjBinT,EAAgBjnT,GAAO,IAAIm+G,KAAKgT,aAAa+1L,EAAAA,EAAAA,SAAgCp1R,GAAQA,QAElFm1R,EAAgBjnT,IAM3B,GACIkhS,OAAQ,WACJ,MAAO,QAEXgd,kBAAmB,SAAStjT,EAAOk3B,EAAQqsR,GACvC,MAAI,gBAAkBrsR,EACX94B,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAE9BqmT,EAAapuT,KAAKmiU,uBAAuBrpS,EAAQqsR,EAAcvjT,GAA/DwsT,CAAuExsT,IAElFugU,uBAAwB,SAASrpS,EAAQqsR,EAAcvjT,GACnD,IAAI0tE,EACJ,GAAI,YAAcx2C,EAAQ,CACtB,IAAIspS,EAAiBv8P,OAAOjkE,GAAO6L,MAAM,KAAK,GAC9C6hE,EAAS,CACL69C,qBAAsBg4L,EAAahtS,gBAAa,EAChD43G,aAAa,EACb9C,sBAAuBm1M,GAAkBA,EAAe9hU,OACxDktB,MAAO5rB,EAAQ,EAAI,OAAS,cAGhC0tE,EAAStvE,KAAKqiU,oBAAoBld,EAAahtS,WAEnD,GAAI,YAAc2gB,EACdw2C,EAAOrxD,MAAQ,eACZ,GAAI,aAAe6a,EAAQ,CAC9B,IAAIwpS,EACAC,EAAqB,QAAUD,EAAwBnd,EAAaqd,kCAA+B,IAAWF,EAAwBA,GAAwBG,EAAAA,EAAAA,WAAWtoF,kCAC7K7qK,EAAOrxD,MAAQ,WACfqxD,EAAOu6C,SAAWs7L,EAAat7L,WAAY44M,EAAAA,EAAAA,WAAWvoF,gBACtD5qK,EAAO0/C,aAAeizM,GAAiBM,GAE3C,OAAOjzP,GAEX+yP,oBAAqB,SAASlqT,GAa1B,OAXI,OAASA,EACA,CACL60G,sBAAuB,EACvBC,sBArDU,IAwDL,CACLD,sBAAuB70G,GAAa,EACpC80G,sBAAuB90G,GAAa,IAKhD2gB,OAAQ,SAASl3B,EAAO0uT,GACpB,MAAI,kBAAoB1uT,EACbA,GAGP,aADJ0uT,EAAUtwT,KAAK0iU,iBAAiBpS,IACNzmM,WACtBymM,EAAQzmM,UAAW44M,EAAAA,EAAAA,WAAWvoF,iBAE7Bo2E,IAAW,oBAAsBA,GAAYA,EAAQ3sS,MAAS2sS,EAAQC,WAGpEvwT,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAFtBqmT,EAAakC,EAAblC,CAAsBxsT,KAIrC+gU,uBAAwB,SAAS94M,GAC7B,IAAI0mM,EAnEe,SAAA1mM,GAAQ,OAAI,IAAI1E,KAAKgT,aAAa+1L,EAAAA,EAAAA,SAAgC,CACzFjwS,MAAO,WACP4rG,SAAUA,IAiEU+4M,CAAqB/4M,GACrC,OAAO7pH,KAAK6iU,2BAA2BtS,EAAUz3R,OAAO,KAE5D+pS,2BAA4B,SAASC,GACjC,IAAInhT,EAAQugT,EAA0B3zT,KAAKu0T,IAAwB,GAInE,MAAO,CACH38S,SAJWxE,EAAM,GAAK,SAAW,QAKjCs1E,OAJSt1E,EAAM,IAAMA,EAAM,IAAM,GAKjC48D,UAJY58D,EAAM,IAAMA,EAAM,IAAM,KAO5C0jS,kBAAmB,SAASx7L,GAKxB,OAJKA,IACDA,GAAW44M,EAAAA,EAAAA,WAAWvoF,iBAGnB,CACHjjJ,OAFaj3F,KAAK2iU,uBAAuB94M,GAEtB5yB,SAG3BquN,yBAA0B,SAASz7L,GAC/B,IAAIk5M,EAAiBl5M,IAAY44M,EAAAA,EAAAA,WAAWvoF,gBAG5C,OC7GR,SAAgB8oF,EAAgBC,GAC5B,GAAKA,EAAL,CAGA,IAAIC,EAAwBF,EAC5B,GAAI,kBAAoBA,EAAgB,CACpCE,EAAwB,GACxB,IAAK,IAAIn3T,EAAI,EAAGA,EAAIi3T,EAAe1iU,OAAQyL,IACnC,MAAQi3T,EAAej3T,KACvBm3T,GAAyB,MAE7BA,GAAyBF,EAAej3T,GAahD,IAVA,IAAIo3T,EAAgB,CAChB,MAAO,MACP,IAAK,MACL,MAAO,MACP,MAAO,MACP,IAAK,MACL,IAAK,SACL,SAAUD,GAEVr0T,EAASo0T,EAAiBx1T,MAAM,KAC3BkiH,EAAK,EAAGA,EAAK9gH,EAAOvO,OAAQqvH,IACjC,IAAK,IAAI14B,KAAUksO,EACXr8T,OAAOtB,UAAUsxE,eAAer2E,KAAK0iU,EAAelsO,KACpDpoF,EAAO8gH,GAAM9gH,EAAO8gH,GAAIjnE,QAAQ,IAAIM,OAAOiuC,EAAQ,KAAMksO,EAAclsO,KAInF,OAAO,IAAMpoF,EAAOvO,OAASuO,EAAO,GAAK,MAAQA,EAAO,GAAKA,EAAO,ID8EzDu0T,CAFcpjU,KAAK2iU,uBAAuBI,GAAgB9rO,OACnCi3N,EAAAA,EAAAA,yBAA8C,SAAAnhT,GAAM,OAAIs2T,EAAkBt2T,SExF5G0kT,EAAU,qBAAuBtsM,KAGjCm+M,EAAkB,CAAC,WAAY,aAAc,cAAe,UAAW,WACvEC,EAA6B,CAC7B,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEHC,EAA0B,CAC1BC,YAAa,OACbC,UAAW,EACXC,SAAU,EACVC,SAAU,EACVC,UAAW,GAEXpR,GAAqBlwC,EAAAA,EAAAA,GAAmB,CACxC2lB,OAAQ,WACJ,MAAO,QAEX47B,eAAgBR,EAChBS,kCAAmCR,EACnCS,yBAA0B,SAASvT,GAC/B,IAAIwT,EAAe,GACnB,GAAKxT,GAAc,kBAAoBA,EAAvC,CAGA,IAAIyT,EAAazT,EAAWxtR,cAAcx1B,MAAM,KAWhD,OAVAgN,EAAAA,EAAAA,IAAKypT,GAAY,SAACrjU,EAAOe,GACjB0hU,EAAgBxnM,SAASl6H,GACzBqiU,EAAaxT,WAAa7uT,EACnBA,KAAS4hU,IAChBS,EAAaE,MAAQX,EAAwB5hU,OAGjDqiU,EAAaE,QAAUF,EAAaxT,aACpCwT,EAAaxT,WAAa,cAE1BwT,EAAaxT,WACNwT,OADX,IAIJG,sBAAuB,SAASxiU,EAAO8lI,EAAM28L,EAAUC,GACnD,IAAI7qP,EAAS9zD,KAAK23B,IAAI17C,GAClBuiU,EAAQ,EACZ,GAAI1qP,EAAS,EACT,KAAOA,GAAUA,GAAUiuD,SAAS,IAAW48L,GAAYH,EAAQG,IAC/DH,IACA1qP,GAAUiuD,OAEX,GAAIjuD,EAAS,GAAKA,EAAS,EAC9B,KAAOA,EAAS,SAAM,IAAW4qP,GAAYF,EAAQE,IACjDF,IACA1qP,GAAUiuD,EAGlB,OAAOy8L,GAEXI,kBAAmB,SAAS9qP,EAAQ0qP,EAAOz8L,GAEvC,IADA,IAAI74H,EAAS4qE,EACN0qP,EAAQ,GACXt1T,GAAU64H,EACVy8L,IAEJ,KAAOA,EAAQ,GACXt1T,GAAU64H,EACVy8L,IAEJ,OAAOt1T,GAEX21T,cAAe,SAAS5iU,EAAOqiU,EAAc9e,GACrC,SAAW8e,EAAaE,QACxBF,EAAaE,MAAQnkU,KAAKokU,sBAAsBxiU,EAAO,IAAK,EAxE3C,IA0EjBqiU,EAAaE,QACbviU,EAAQ5B,KAAKukU,kBAAkB3iU,EAAOqiU,EAAaE,MAAO,MAE9D,IAAIM,EAAezkU,KAAK+jU,kCAAkCE,EAAaE,QAAU,GAC7Et1T,EAAS7O,KAAKklT,kBAAkBtjT,EAAOqiU,EAAaxT,WAAYtL,GAEpE,OADAt2S,EAASA,EAAO65C,QAAQ,gBAAiB,KAAO+7Q,EAAe,OAGnEC,yBAA0B,SAAS9iU,EAAOujT,GACtC,IAAIgf,EAAQnkU,KAAKokU,sBAAsBxiU,EAlF5B,IAmFP63E,EAASz5E,KAAKukU,kBAAkB3iU,EAAOuiU,EAnFhC,SAoFP,IAAWhf,EAAahtS,YACxBgtS,EAAahtS,UAAY,GAEzBshE,EAAOxlB,QAAQkxP,EAAahtS,WAAa,IAvFlC,KAwFPgsT,IACA1qP,GAzFO,IA2FX,IAAIkrP,GAAaR,GAAS,EAAI,IAAM,IAAMA,EAAM11T,WAChD,OAAOzO,KAAKklT,kBAAkBzrO,EAAQ,aAAc0rO,GAAgB,IAAMwf,GAE9EC,WAAY,SAAShjU,EAAOuW,GAKxB,IAJA,IAAI0sT,EAAal/S,KAAKg7C,IAAI,GAAIxoD,GAC1Bq7C,EAAO5xD,EAAQ,EAAI,IAAM,GAEzBiN,GADJjN,GAAS+jB,KAAK23B,IAAI17C,GAASijU,IAAe,GAAKA,GAC5Bp2T,WACZI,EAAOvO,OAAS6X,GACnBtJ,EAAS,IAAMA,EAEnB,OAAO2kD,EAAO3kD,GAElBi2T,oBAAqB,SAASljU,GAC1B,IAAIonB,EAAQpnB,EAAM6M,WAAWhB,MAAM,KACnC,OAAOub,EAAM,GAAG0/B,QAAQ,yBAAyB4mB,EAAAA,EAAAA,WAASirK,qBAAuBvxN,EAAM,IAAKsmD,EAAAA,EAAAA,WAASgrK,iBAAmBtxN,EAAM,GAAK,KAEvIk8R,kBAAmB,SAAStjT,EAAOk3B,EAAQqsR,GACvC,MAAI,gBAAkBrsR,EACX94B,KAAK0kU,yBAAyB9iU,EAAOujT,IAE5C,YAAcrsR,GAAU,OAASqsR,EAAahtS,YAC9CgtS,EAAahtS,UAAYgtS,EAAahtS,WAAa,GAEnD,YAAc2gB,IACdl3B,GAAS,UAET,IAAWujT,EAAahtS,YAEpBvW,EADA,YAAck3B,EACN94B,KAAK4kU,WAAWhjU,EAAOujT,EAAahtS,WAEpC,OAASgtS,EAAahtS,UAAYvW,EAAMuyQ,eAAgBlgN,EAAAA,EAAAA,GAAQryD,EAAOujT,EAAahtS,YAIhGvW,EADA,YAAck3B,EACN94B,KAAK8kU,oBAAoBljU,GAEzBA,EAAM6M,WAAWi6C,QAAQ,KAAK4mB,EAAAA,EAAAA,WAASgrK,kBAE/C,YAAcxhN,IACdl3B,GAAS,KAENA,IAEX8gU,iBAAkB,SAAS5pS,GACvB,OAAKA,GAGD,oBAAsBA,IAGrBiiD,EAAAA,EAAAA,IAAcjiD,KACfA,EAAS,CACLnV,KAAMmV,IAJHA,GAHA,IAYfisS,eAAgB,WACZ,MAAO,CACHzqF,iBAAkBt6O,KAAKglU,sBACvBzqF,mBAAoBv6O,KAAKilU,0BAGjCA,sBAAuB,WACnB,OAAOjlU,KAAK84B,OAAO,IAAK,cAAc,IAE1CksS,oBAAqB,WACjB,OAAOhlU,KAAK84B,OAAO,IAAK,CACpBnV,KAAM,aACNxL,UAAW,IACZ,IAEP+sT,cAAe,SAAStjU,EAAOujU,GAC3B,IAAIC,EAASplU,KAAK84B,OAAO,GAAI,WAC7B,GAAI,kBAAoBl3B,GAAS,MAAQwjU,EAAO,GAC5C,OAAOxjU,EAEX,IAAIyjU,EAAiBF,EAAaC,EAAO,GAAK,IAC1CE,EAAeH,EAAa,IAAMC,EAAO,GACzCG,EAAgBJ,EAAaC,EAAO,GAAK,IACzC9nM,EAAS,IAAIt0E,OAAO,IAAMq8Q,EAAiB,IAAME,EAAgB,IAAK,KAC1E,OAAO3jU,EAAM8mD,QAAQ40E,GAAQ,SAAAjiC,GAAI,OAAIx1B,OAAOsmE,aAAa9wC,EAAKjqC,WAAW,IAAMk0Q,EAAal0Q,WAAW,GAAKi0Q,EAAej0Q,WAAW,SAE1Io0Q,wBAAyB,SAAS1sS,GAC9B,IAAI2sS,EAAazlU,KAAK+kU,iBAClBW,EAAgB,IAAI18Q,OAAO,QAASm0E,EAAAA,EAAAA,cAAasoM,EAAWnrF,iBAAmBmrF,EAAWlrF,oBAAsB,KAAM,KACtHorF,EAAiB3lU,KAAK84B,QAAQ,EAAGA,GAAQ4vB,QAAQg9Q,EAAe,KAMpE,MALA,CAAC,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKzlU,SAAQ,SAAAo7F,GACvEsqO,EAAiBA,EAAej9Q,QAAQ,IAAIM,OAAO,KAAKptB,OAAOy/D,GAAO,KAAM,KAAKz/D,OAAOy/D,OAG5FsqO,GADAA,EAAiBA,EAAej9Q,QAAQ,KAAM,QACdA,QAAQ,KAAM,MACvC,IAAIM,OAAO28Q,EAAgB,MAEtCC,QAAS,SAASjjU,EAAMm2B,GACpB,IAAKA,EACD,MAAI,MAAQn2B,EAAK+lD,QAAQ,WAAY,IAAIw8B,OAAO,IACpC,EAEL,EAEX,IAAIygP,EAAiB3lU,KAAKwlU,wBAAwB1sS,GAClD,OAAOn2B,EAAKgf,MAAMgkT,IAAmB,EAAI,GAE7C7sS,OAAQ,SAASl3B,EAAO0uT,GACpB,GAAI,kBAAoB1uT,EACpB,OAAOA,EAEX,GAAI,kBAAoB0uT,EACpB,OAAO1uT,EAGX,GAAI,oBADJ0uT,EAAUA,GAAWA,EAAQC,WAAaD,GAEtC,OAAOA,EAAQ1uT,IAEnB0uT,EAAUtwT,KAAK0iU,iBAAiBpS,IACnB3sS,OACT2sS,EAAQ3sS,KAAO,WAEnB,IAAIkiT,EAAe7lU,KAAKgkU,yBAAyB1T,EAAQ3sS,MACzD,IAAKkiT,EAAc,CACf,IAAIC,EAAkB9lU,KAAK+kU,iBAE3B,OADAe,EAAgBhL,uBAAyBxK,EAAQwK,uBAC1C96T,KAAKklU,eAAc9W,EAAAA,EAAAA,GAAakC,EAAQ3sS,KAAMmiT,EAA3B1X,CAA4CxsT,IAE1E,OAAO5B,KAAKwkU,cAAc5iU,EAAOikU,EAAcvV,IAEnDj6N,MAAO,SAAS1zF,EAAMm2B,GAClB,GAAKn2B,EAAL,CAGA,GAAIm2B,GAAUA,EAAOy6D,OACjB,OAAOz6D,EAAOy6D,OAAO5wF,GAEzBA,EAAO3C,KAAKklU,cAAcviU,GAAM,GAC5Bm2B,GAAU,kBAAoBA,GAC9BmpM,EAAAA,EAAAA,IAAW,SAEf,IAAIqY,EAAmBt6O,KAAKglU,sBACxB1nM,EAAS,IAAIt0E,OAAO,SAAUm0E,EAAAA,EAAAA,cAAam9G,GAAoB,IAAK,KACpEyrF,EAAcpjU,EAAK+lD,QAAQ40E,EAAQ,IAAI50E,QAAQ4xL,EAAkB,KAAK5xL,QAAQ,OAAQ,IAC1F,GAAI,MAAQq9Q,GAAe,KAAOA,EAC9B,OAAO,KAEX,GAAI/lU,KAAKgmU,uBAAuBD,GAAe,GAC3C,OAAO9/M,IAEX,IAAIgmG,GAAU85G,EAAc/lU,KAAK4lU,QAAQjjU,EAAMm2B,GAC/CA,EAAS94B,KAAK0iU,iBAAiB5pS,GAC/B,IAAIqsR,EAAenlT,KAAKgkU,yBAAyBlrS,EAAOnV,MACpDwgT,EAAQ,OAAShf,QAAgB,IAAWA,OAAe,EAASA,EAAagf,MACrF,GAAIA,EAAO,CACP,GAAI,SAAWA,EAAO,CAClB,IAAIxiT,EAAQhf,EAAKgf,MAAM,eACnBA,IACAwiT,EAAQr9T,OAAOC,KAAKw8T,GAA4BlnT,MAAK,SAAA8nT,GAAK,OAAIZ,EAA2BY,KAAWxiT,EAAM,OAGlHsqM,GAAUtmM,KAAKg7C,IAAI,GAAI,EAAIwjQ,GAK/B,MAHI,aAAe,OAAShf,QAAgB,IAAWA,OAAe,EAASA,EAAasL,cACxFxkG,GAAU,KAEPA,IAEX+5G,uBAAwB,SAASrjU,GAC7B,MAA4BA,EAAK8K,MAAM,KAAvC,eAAK6gG,EAAL,KAAc23N,EAAd,KACIC,EAA8B,SAAAd,GAE9B,IADA,IAAIvkU,GAAS,EACJkL,EAAI,EAAGA,EAAIq5T,EAAO9kU,OAAQyL,IAC/B,GAAI,MAAQq5T,EAAOr5T,GAAI,CACnBlL,EAAQkL,EACR,MAGR,OAAOlL,GAAS,EAAIukU,EAAO9kU,OAASO,EAAQ,GAE5CgO,EAAS,EAOb,OANIy/F,IACAz/F,GAAUq3T,EAA4B53N,EAAQ7gG,MAAM,MAEpDw4T,IACAp3T,GAAUq3T,EAA4BD,EAAWx4T,MAAM,IAAIsmB,YAExDllB,KAGf4jT,EAAmBtjD,OAAOg3D,EAAAA,GACtB1U,GACAgB,EAAmBtjD,OAAOi3D,GAE9B,0FCtSA,SAASC,EAAYzkU,EAAOuW,GACxB,IAAImuT,EAAsB3gT,KAAKg7C,IARhB,GAQkCxoD,GAEjD,OARJ,SAAoBvW,GAEhB,OADgB4xD,EAAAA,EAAAA,IAAK5xD,GACF+jB,KAAK6H,MAAM7H,KAAK23B,IAAI17C,IAMhC2kU,EADiB/yD,EAAAA,EAAAA,IAA0B5xQ,EAAOuW,IAClBmuT,EAEpC,SAASryQ,EAAQryD,EAAOuW,GAC3B,IAAIquT,EAAiBruT,GAAa,EAC9BsuT,EAAgBD,EAAiB,EAAIH,EAAW,WAAX,EAAet+T,WAAanG,EACrE,OAAO6kU,EAAcxyQ,QAAQuyQ,4EChBtBE,GAAgB1lN,WAAAA,SAAc,qQCYrCx/G,EAAS,SAAA1B,GACT,IACgBsqB,EACZtqB,EADAsqB,WAEJ,GAAIA,EAAY,CACZ,IAAIs4F,EAAc5iH,EAAQ4iH,aAC1BgqI,EAAAA,EAAAA,IAAmB5sP,GACnBsqB,EAAWm6F,GAAKzkH,EAAQykH,IACxBu3G,EAAAA,EAAAA,IAAQ,KAAM1xM,GACdA,EAAWw3G,aAAa9hI,EAAS4iH,GACjC5iH,EAAQygE,UAAY,UACbn2C,EAAWm6F,UAEfzkH,EAAQykH,IAEnB,GAAeu9H,EAAAA,EAAAA,GAAS,CACpB1+M,cAAe,SAAC/U,EAAWmxF,GAAZ,OAAsBioI,EAAAA,EAAAA,GAAep5N,EAAWmxF,IAC/Dh+G,OAAQA,EACRu3L,cAAe,WACXr6E,EAAAA,GAAAA,eAEJioN,YAAa,WACTjoN,EAAAA,GAAAA,QAEJn/F,OAAQ,SAAC8O,EAAWmxF,EAAO1/F,EAAW4oC,GAClC,GAAKA,GAgBDozK,EAAAA,EAAAA,KAAQ2rB,EAAAA,EAAAA,GAAep5N,EAAWmxF,GAAQ1/F,OAhBhC,CACV,IACgBsK,EACZtK,EADAsK,WAEAw8S,EAAW,OAAS9mT,QAAa,IAAWA,OAAY,EAASA,EAAU4iG,YAC3Eg2J,EAAW9+C,EAAAA,EAAAA,cAAyB,OACxC8+C,EAASlhM,YAAY13D,GACrB,IAAI+mT,EAAYjtG,EAAAA,EAAAA,yBAAoCpiJ,YAAYkhM,KACrC54P,EAAUykG,IACf/iH,EAAOse,IAC7BwkG,EAAAA,EAAAA,KAAQmjI,EAAAA,EAAAA,GAAep5N,EAAWmxF,GAAQqnN,GAC1C/mT,EAAUykG,GAAKsiN,EAAUtiN,GACrBn6F,GACAA,EAAWw3G,aAAa9hH,EAAW8mT,oFCrDxCE,EAAgB,SAAC9nN,EAAaC,GACrC,OAAIn4G,OAAOC,KAAKi4G,GAAa1+G,SAAWwG,OAAOC,KAAKk4G,GAAc3+G,QAG3DwG,OAAOC,KAAKi4G,GAAahpE,OAAM,SAAAhvC,GAAG,OAAIg4G,EAAYh4G,KAASi4G,EAAaj4G,gBCAnF,SAAS+/T,EAAe//E,GACpB,IACgBggF,EAEZhgF,EAFAggF,WAGJ,GACS,cAFLhgF,EADArjO,KAIIqjT,EAAW/mU,SAAQ,SAAAy3D,GAAC,MAVrB,oBAUqCA,EAVVl2D,QAUgBk2D,EAAEl2D,YCTxD,IAAI8yR,EAAY,CAAC,WA6EV,IAAM2yC,EAAb,0CACI,WAAYznN,GAAO,6BACf,cAAMA,IACD0nN,YAAcl1G,EAAAA,KACnB,EAAKxtG,eAAiB,EAAKA,eAAe/5G,MAApB,WAHP,EADvB,6CAMI,WAAiB,WACTwrE,GAAO0qC,EAAAA,EAAAA,IAAiB3gH,KAAK4gH,KAAK,GAClC9gG,EAAYm2D,EAAKhuC,cACrBjoC,KAAKknU,cACLlnU,KAAKknU,YD3EN,SAAyBtgU,EAAQu7C,GACpC,IAAIm0P,EAAW,IAAI6wB,kBAAiB,eACpC7wB,EAAS9oG,QAAQ5mM,EAAQ,CACrBwgU,WAAW,EACXC,SAAS,IAEbllR,IACA,IAAImlR,EAAYhxB,EAASixB,cAEzB,OADAjxB,EAAS5oG,aACF,kBAAM45H,EAAUrnU,QAAQ8mU,ICkERS,CAAgB1nT,GAAW,WAC1C,IAAIgB,EAzChB,SAA8B0+F,EAAO1/F,GACjC,IAAI2nT,EACJ,EAGI,QAAUA,EAAejoN,EAAMxzG,aAAU,IAAWy7T,EAAeA,EAAe,CAClF55T,KAAM,IAHAA,EADV,EACIA,KACOhN,EAFX,EAEIA,MAIAgN,GACA/G,OAAOC,KAAK8G,GAAM5N,SAAQ,SAAAuN,GAClBK,EAAKL,IAASosN,EAAAA,EAAAA,OAAkB/rN,EAAKL,MACrCK,EAAKL,IAAQ4oN,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAEG,EAAKL,SAIjD,IAAIk6T,EAAWloN,EAAM71F,SAASpK,QAAO04M,EAAAA,EAAAA,GAAS,CAC1Cn4M,UAAWA,EACXi8M,WAAYv8G,EAAMu8G,YACnB,CACCi9B,UAAWx5I,EAAMw5I,WACjBx5I,EAAMu8G,WAEN,GAFmB,CACnB/vN,MAAO6B,IACF2xG,EAAMu8G,YAActsK,OAAO02D,SAAStlH,GAAS,CAClDA,MAAOA,GACP,KACJ,YAAI,IAAW6mU,EACJ,GAEeA,EAhDT5tG,QAgDqB4tG,EAAS5tG,UAAY,EAACpsN,EAAAA,EAAAA,GAAEg6T,GAAU7nT,IAAI,IAatD8nT,CAAqB,EAAKnoN,OAAO42G,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAEoS,KAC9D,IAAMgB,EAAQxgB,QAAY,IAAMwgB,EAAQxgB,QAAUwgB,EAAQ,KAAOhB,GACjEm2D,EAAK4uF,MAAL,MAAA5uF,GAAI,OAAUn1D,SAb9B,mCAiBI,SAAsBw+F,GAClB,MAGIt/G,KAAKw/G,MAFExzG,EADX,EACIA,MACU2d,EAFd,EAEIA,SAGS+/G,EAGTpqB,EAHAoqB,QACOk+L,EAEPtoN,EAFAtzG,MACU67T,EACVvoN,EADA31F,SAEAm+S,EAAmB,OAASp+L,QAAW,IAAWA,EAAUA,EAAUo9L,EAC1E,GAAIn9S,IAAak+S,EACb,OAAO,EAEX,KAAKl/Q,EAAAA,EAAAA,IAAU38C,MAAW28C,EAAAA,EAAAA,IAAUi/Q,GAChC,OAAO57T,IAAU47T,EAErB,IACU/5T,EAEN7B,EAFA6B,KACOhN,EACPmL,EADAnL,MAGMknU,EAENH,EAFA/5T,KAGJ,OAAIhN,IADA+mU,EADA/mU,QAKIinU,EAAiBj6T,EAAMk6T,KA7CvC,2BA+CI,WACI,MAAO,CAAC,IAAI7mN,EAAAA,GAAclhH,KAAKwkH,eAAgB,CAACxkH,KAAKw/G,MAAM71F,SAAU3pB,KAAKw/G,MAAMxzG,WAhDxF,2BAkDI,WACIhM,KAAK2/G,SAAS,GAAGthG,OAAO,CAACre,KAAKw/G,MAAM71F,SAAU3pB,KAAKw/G,MAAMxzG,UAnDjE,kCAqDI,WACIhM,KAAKknU,gBAtDb,oBAwDI,WACI,OAAO,SAzDf,GAAqCxnN,EAAAA,eCvErC,SAASsoN,EAAiBpmU,GACtB,OAAO2D,MAAMi2E,QAAQ55E,IAAd,OAA2BA,IAASq2N,EAAAA,EAAAA,GAAS,GAAIr2N,GAG5D,SAASqmU,EAAgBrmU,EAAOi0Q,EAAWqyD,GACvC,IAAIr5T,EAASq5T,EAAc5nU,OAAS,GAAKu1Q,GAAaj0Q,IAAUi0Q,EAAYmyD,EAAiBnyD,GAAamyD,EAAiBpmU,GACvH4L,EAAO06T,EAAc,GAUzB,OATIA,EAAc5nU,OAAS,EACvBuO,EAAOrB,GAAQy6T,EAAgBrmU,EAAM4L,GAAO,OAASqoQ,QAAa,IAAWA,OAAY,EAASA,EAAUroQ,GAAO06T,EAAcziU,MAAM,IAChI+H,KACHutE,EAAAA,EAAAA,IAAcn5E,EAAM4L,IACpBqB,EAAOrB,GAAQw6T,EAAiBpmU,EAAM4L,IAEtCqB,EAAOrB,GAAQ5L,EAAM4L,IAGtBqB,EAEJ,SAASs5T,EAAqB3oN,EAAO36F,EAAQrX,EAAMg4O,GACtD,IAAI4iF,EAAoBvjT,EAAOrX,GAC3B66T,EAAiB7oN,EAAMhyG,GACvBqB,EAAS2wG,GACTzkC,EAAAA,EAAAA,IAAcqtP,IAAsB56T,IAASg4O,GAAYjgP,MAAMi2E,QAAQ4sP,GACvEv5T,EAAOrB,GAAQy6T,EAAgBG,EAAmBC,GAAgB9iF,EAAAA,EAAAA,cAAaC,GAAU//O,MAAM,IAE/FoJ,EAAOrB,GAAQ46T,iCCHnBE,EAAwB,SAACluT,EAASmuT,GAAV,OAAiC,SAAA/6T,GACrD1G,OAAOtB,UAAUsxE,eAAer2E,KAAK2Z,EAAS5M,SAAS,IAAW4M,EAAQ5M,KAC1E4M,EAAQ5M,GAAQ+6T,EAAmB/6T,MAGtBw0S,EAAAA,SAAAA,iCACjB,WAAYliT,EAASsa,GAAS,6BAC1B,cAAMta,EAASsa,IACVouT,0BAA2B,EAChC,EAAKC,yBAHqB,yCAK9B,WACI,MAAO,CACHC,UAAW,GACXC,OAAQ,GACR99Q,SAAU,GACVp0B,UAAW,GACX+oF,MAAO,0CAGf,WACI,IACIopN,EADoB5oU,KAAK6oU,uBAC0BvoU,OAAS,EAC5DwoU,EAA4B,oBAAsB9oU,KAAK+oU,eAAevjU,UAAUwjU,QACpF,GAAIJ,IAAmCE,EACnC,MAAMzzR,MAAM,4EAGpB,WACI,IAAI4zR,EACJ,OAAO,QAAUA,EAAiBjpU,KAAKkpU,gBAAa,IAAWD,OAAiB,EAASA,EAAe3qF,gDAE5G,SAAyBkH,GACrB,IAAI2jF,EAAsBnpU,KAAKopU,0BAA0B1/T,QAAO,SAAC0Q,EAAS5M,GAEtE,OADA4M,EAAQ5M,IAAQ,EACT4M,IACR,IAEH,OADApa,KAAKqpU,yBAA2B,SAAArjF,GAAU,QAAMmjF,EAAoBnjF,IAC7DhmP,KAAKqpU,yBAAyB7jF,0CAEzC,WACI,MAAO,CAAC,+CAEZ,WACIxlP,KAAKspU,YAAYz4S,eAAe,sCAEpC,WAAqB,WACb04S,EAAmBvpU,KAAKwpU,gCAC5B,OAAO1gU,EAAAA,EAAAA,IAAO,GAAD,QAAC,0DAAkCygU,EAAkBvpU,KAAKypU,WAAWd,OAAOj/T,QAAO,SAAC0Q,EAAS4sO,GAAS,MAC/G,UAAqCA,EAArC,GAAKx5O,EAAL,KAAWk8T,EAAX,KAAwBz/R,EAAxB,KACA,OAAOguL,EAAAA,EAAAA,GAAS,GAAI79M,GAAL,eACV5M,EAAO+7T,EAAiBG,KADd,SAEVz/R,GAAY,SAAAroC,GAAK,OAAI,EAAKijB,OAAOrX,EAAM5L,MAF7B,MAIhB,IAAK5B,KAAKypU,WAAWhzS,UAAU/sB,QAAO,SAAC0Q,EAAS5M,GAAV,OAAmByqN,EAAAA,EAAAA,GAAS,GAAI79M,GAAL,UAC/D5M,EAAO,SACR,wCAER,WAAsB,WACdm8T,EAAiB,GAIrB,OAHA7iU,OAAOC,KAAK/G,KAAK6kB,UAAU5kB,SAAQ,SAAA+G,GAC/B2iU,EAAe3iU,GAAO,EAAK6d,OAAO7d,MAE/B2iU,sCAEX,WAAuB,IACfC,EADe,QAEnB,oEACA,QAAUA,EAAwB5pU,KAAK27N,wBAAqB,IAAWiuG,GAAiCA,EAAsBhuG,oBAAoB57N,KAAK6pU,uBACvJ,IAAIC,EAAc9pU,KAAK+pU,sBACvB/pU,KAAKgqU,OAAShqU,KAAKiqU,6BAA6BH,GAChD9pU,KAAKypU,WAAWhzS,UAAUx2B,SAAQ,SAAA0pB,GAC9B,EAAKugT,oBAAoBvgT,GAAY,EAAKwgT,yBAAyB,EAAKH,OAAOrgT,OAEnF7iB,OAAOC,KAAK/G,KAAKoqU,yBAAyBnqU,SAAQ,SAAAuN,GAAI,OAAI,EAAK68T,WAAW78T,MAC1ExN,KAAKkpU,UAAWoB,EAAAA,EAAAA,MAChBtqU,KAAKuqU,mBAAqBvqU,KAAKwqU,uDAEnC,WACI,IAAIhrN,EAAQx/G,KAAKyqU,WACjBzqU,KAAK0qU,eAAelrN,iCAExB,SAAeA,GACX,IAAImrN,EAAgB3qU,KAAK6Z,WAAW,GAC/B7Z,KAAK4qU,iBACN5pS,EAAAA,cAEJA,EAAAA,OAAgBhhC,KAAK+oU,eAAgBvpN,EAAOmrN,EAAe3qU,KAAK4qU,iBAC3D5qU,KAAK4qU,kBACN5qU,KAAK4qU,iBAAkB,EACvB5pS,EAAAA,gBACAhhC,KAAKwoU,0BAA2B,GAEhCxoU,KAAKwoU,2BACLxoU,KAAK6qU,oBACL7qU,KAAKwoU,0BAA2B,0BAGxC,SAAQh7T,EAAM5L,GACV5B,KAAKmhB,SAASqlO,OAAOh5O,EAAM5L,0BAE/B,yCACA,WACIo/B,EAAAA,OAAgBhhC,KAAK6Z,WAAW,4BAEpC,WACI7Z,KAAK8qU,iBACL,iFAEJ,WAAkB,WACVhrU,EAAUE,KAAK6Z,WAAW,GAC9B,IAAK7Z,KAAK+qU,aAAc,CACpB,IACgB1hM,EACZvpI,EADAupI,WAEAijH,EAAQ/mP,MAAM4D,KAAKkgI,GAAYzjI,QAAO,SAAAga,GACtC,IAAIorT,EACJ,OAAQ,EAAKvB,WAAWhzS,UAAUqlG,SAASl8G,EAAKpS,QAAU,QAAUw9T,EAAwB3hM,EAAWzpH,EAAKpS,aAAU,IAAWw9T,OAAwB,EAASA,EAAsBC,cACzLvhU,QAAO,SAACmF,EAAQs5O,GACf,IACU36O,EAEN26O,EAFA36O,KACO5L,EACPumP,EADAvmP,MAEAspU,EAAoBr8T,EACpBs8T,EAAY39T,KAAQ1N,EAExB,OADAorU,EAAkB19T,GAAQ,KAAO5L,GAASupU,EAAYrrU,EAAQ0N,GAAQ5L,EAC/DspU,IACR,IACHlrU,KAAK+qU,aAAez+E,EACpBtsP,KAAKorU,eAAiBtrU,EAAQkK,aAAa,UAAY,GAI3D,IAFA,IAAIqhU,EAAYvrU,EAAQme,MACpBA,EAAQ,GACHlS,EAAI,EAAGA,EAAIs/T,EAAU/qU,OAAQyL,GAAK,EACvCkS,EAAMotT,EAAUt/T,IAAMs/T,EAAUC,iBAAiBD,EAAUt/T,IAI/D,OAFA/L,KAAK+qU,aAAa9sT,MAAQA,EAC1Bje,KAAK+qU,aAAap5S,MAAQ3xB,KAAKorU,eACxBprU,KAAK+qU,wDAEhB,WACI,MAAO,CACHl6S,eAAgB,CACZwmN,kBAAmB,CAAC,WAAY,iDAI5C,WACI,MAAO,qCAEX,SAAmBj9N,GAAS,WACxB,EAKIpa,KAAKypU,WAJMf,EADf,EACIA,UACU79Q,EAFd,EAEIA,SACO20D,EAHX,EAGIA,MACQmpN,EAJZ,EAIIA,OAEAY,EAAmBvpU,KAAKwpU,gCACxB+B,EAAyBzkU,OAAOC,KAAKwiU,GACrCv8E,EAAiBhtP,KAAKyyN,qBAEZ1nN,EAGVqP,EAHArP,SACmBygU,EAEnBpxT,EAFAoxT,kBAMAC,EAAc,CACdxtQ,IALA7jD,EADA6jD,IAOAlzD,SAAUA,EACV8sG,UANY2zN,EAAoB,SAAC9wT,EAAGgxT,GACpCF,EAAkBE,SAClB,GAyBJ,MAnBA,kBAAIlsN,IAAJ,OAAcx/G,KAAK2rU,wBAAuB1rU,SAAQ,SAAA+8E,GAC1Cl2E,OAAOtB,UAAUsxE,eAAer2E,KAAK2Z,EAAS4iE,KAC9CyuP,EAAYzuP,GAAY5iE,EAAQ4iE,OAGxC0rP,EAAUzoU,QAAQqoU,EAAsBmD,GAAa,kBAAM,SAC3DF,EAAuBtrU,QAAQqoU,EAAsBmD,GAAa,SAAAj+T,GAAI,OAAIw/O,EAAex/O,OACzFm7T,EAAO1oU,SAAQ,SAAA2oP,GACX,cAA0BA,EAA1B,GAAKp7O,EAAL,KAAWk8T,EAAX,KACApB,EAAsBmD,GAAa,kBAAMz+E,EAAe08E,KAAxDpB,CAAsE96T,MAE1Eq9C,EAAS5qD,SAAQ,SAAAuN,GACb,GAAIA,KAAQi+T,EAAa,CACrB,IAAI7pU,EAAQ6pU,EAAYj+T,IACpB07O,EAAAA,EAAAA,IAAWtnP,KACX6pU,EAAYj+T,GAAQ,EAAKo+T,mBAAmBhqU,QAIjD6pU,sCAEX,WACI,MAAO,mCAEX,SAAiBjsN,GACb,MAAI,kBAAoBA,EAAMvhG,OACnBg6M,EAAAA,EAAAA,GAAS,GAAIz4G,EAAO,CACvBvhG,MAAO,GACPoiH,QAAS7gB,EAAMvhG,QAGhBuhG,0BAEX,WAAW,IACHqsN,EAAuBC,EADpB,OAGUviF,EACbvpP,KAAK6kB,SADL0kO,YAEAnvO,EAAUpa,KAAK+rU,oBAAmB9zG,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKgqU,OAAQ,CAC5D/rQ,IAAKj+D,KAAKkpU,SACVn+T,SAAU/K,KAAKgsU,sBACfC,KAAMjsU,KAAKksU,SAKf,OAHAlsU,KAAKypU,WAAWhzS,UAAUx2B,SAAQ,SAAA0pB,GAC9BvP,EAAQuP,GAAY,EAAKugT,oBAAoBvgT,MAE1C3pB,KAAKmsU,kBAAiBl0G,EAAAA,EAAAA,GAAS,GAAI79M,EAASpa,KAAKupP,YAAaA,EAAa,CAC9El7O,UAAW,mBAAK,QAAUw9T,EAAwB7rU,KAAKupP,YAAY53N,aAAU,IAAWk6S,EAAwBA,EAAwB,IAAIp+T,MAAM,OAAvI,QAAiJ,QAAUq+T,EAAqB,OAASviF,QAAe,IAAWA,OAAc,EAASA,EAAY53N,aAAU,IAAWm6S,EAAqBA,EAAqB,IAAIr+T,MAAM,OAAM7H,QAAO,SAAC4V,EAAGzP,EAAG05C,GAAP,OAAajqC,GAAKiqC,EAAEt/C,QAAQqV,KAAOzP,KAAGkF,KAAK,KAAK2vB,OACvYjP,MAAO,IACR3xB,KAAKspU,+CAEZ,WACI,MAAO,wCAEX,WACI,OAAOrxG,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKosU,oBAAqBpsU,KAAKqsU,kEAEvD,WACI,IAAIpqD,EAAmBn7Q,OAAO8S,OAAO5Z,KAAKssU,gBACtCz9T,EAAS,GAIb,OAHAozQ,EAAiBhiR,SAAQ,SAAA0pB,GACrB9a,EAAO8a,GAAY,iCAEhB9a,8BAEX,WACI,MAAO,+CAEX,SAA6BuL,GACzB,IAAIuoB,EAAkB77B,OAAOg+G,QAAQ9kH,KAAKssU,gBAAgB5iU,QAAO,SAACmF,EAAQ8pS,GACtE,IAAI4zB,EACJ,UAAoC5zB,EAApC,GAAKnwR,EAAL,KAAmBgkT,EAAnB,KACA,OAAOv0G,EAAAA,EAAAA,GAAS,GAAIppN,GAAL,UACV2Z,EAAe,QAAU+jT,EAAwBnyT,EAAQoO,UAAkB,IAAW+jT,EAAwBA,EAAwBC,MAE5I,IACH,OAAOv0G,EAAAA,EAAAA,GAAS,GAAI79M,EAASuoB,wBAEjC,YACI,qDACA3iC,KAAKysU,kBAAoB,GACzBzsU,KAAKspU,YAAc,GACnBtpU,KAAKksU,MAAQ,GACblsU,KAAKkqU,oBAAsB,4CAE/B,WAA4B,WACpBr7T,EAAS,GAKb,OAJW7O,KAAK6oU,uBACX5oU,SAAQ,SAAA+G,GACT6H,EAAO7H,GAAO,SAAAxG,GAAC,OAAI,EAAKksU,QAAQ1D,QAAQtgC,EAAAA,EAAAA,qBAAuCloS,QAE5EqO,4BAEX,SAAW2L,EAAOmyT,GACd,IAAIlsT,EAASksT,EACb,IAAKlsT,EAAQ,CACT,IAAImsT,EAAiB5sU,KAAKw7N,sBAAsBhhN,EAAOxa,KAAKoqU,wBAAwB5vT,IACpFiG,EAAS,SAAAosT,GAML,OALA/lU,OAAOC,KAAK8lU,GAAS5sU,SAAQ,SAAAuN,IACrBm7C,EAAAA,EAAAA,IAAUkkR,EAAQr/T,KAAUosN,EAAAA,EAAAA,OAAkBizG,EAAQr/T,MACtDq/T,EAAQr/T,IAAQ4oN,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAEm/T,EAAQr/T,SAG5Co/T,EAAeC,IAG9B7sU,KAAKspU,YAAY9uT,GAASiG,gCAE9B,SAAeoE,GACX,IACc2gO,EAIV3gO,EAJA2gO,SACMh4O,EAGNqX,EAHArX,KACegrG,EAEf3zF,EAFA2zF,cACO52G,EACPijB,EADAjjB,MAEJumU,EAAqBnoU,KAAKgqU,OAAQhqU,KAAK6kB,SAAUrX,EAAMg4O,GACnDxlP,KAAKypU,WAAWhzS,UAAUqlG,SAAStuH,IAAS5L,IAAU42G,IACtDx4G,KAAKkqU,oBAAoB18T,GAAQxN,KAAKmqU,yBAAyBvoU,IAE/D4L,GAAQxN,KAAKoqU,wBAAwB58T,IACrCxN,KAAKqqU,WAAW78T,GAEpBxN,KAAKwoU,yBAA2BxoU,KAAKwoU,0BAA4BxoU,KAAKqpU,yBAAyB7jF,IAC/F,6DAAqB3gO,GACrB7kB,KAAK0rP,iDAET,WACI,OAAI1rP,KAAK6kB,OAAO,gCACLmc,EAAAA,cAAuBimS,EAAiB,CAC3Ct9S,SAAU3pB,KAAKu2N,aAAav2N,KAAK27N,iBAAiBK,uBAClDD,YAAY,EACZi9B,WAAW,IAGZ,6CAEX,SAAyB8zE,GACrB,GAAKA,EAAL,CAGA,IAAInjT,EAAW3pB,KAAKu2N,aAAau2G,GACjC,KAAIxiH,EAAAA,EAAAA,IAAS3gM,IAAa,gCAAkCA,EAG5D,OAAO,SAAA3d,GAAK,OAAIg1B,EAAAA,cAAuBimS,EF5TxC,SAA2Bj7T,EAAO2d,GACrC,IAAIojT,EACAvmT,EAAO,CACPmD,SAAUA,EACV3d,OAAOisN,EAAAA,EAAAA,GAAS,GAAIjsN,IAEpBg7O,EAAO,QAAU+lF,EAAc/gU,EAAM6B,YAAS,IAAWk/T,EAAcA,EAAc,GAExErjM,EACTs9G,EADAt9G,QAEJ77H,GAAO6mR,EAAAA,EAAAA,GAA8B1tC,EAAMstC,GAK/C,OAJI5qJ,IACAljH,EAAKxa,MAAM6B,KAAOA,EAClB2Y,EAAKkjH,QAAUA,GAEZljH,EE6SqDwmT,CAAkBhhU,EAAO2d,yCAErF,SAAoBsjT,GAAgB,WAChC,OAAO,SAAA7yT,GACH,IACaouR,EAGTpuR,EAHAouR,QACepwL,EAEfh+F,EAFAg+F,cACOl7D,EACP9iC,EADA8iC,MAEAn2C,EAAO,EAAK0lU,kBACZtqR,EAAOp7C,EAAKyhS,IAAYzhS,EAAKm2C,GACjC,QAAI,IAAWiF,IACGA,EAAK13C,KAAK,EACXlK,CAAQ63G,EAAeh+F,GAGhC,OADAg+F,EAAcryE,QAAS,EAChBqyE,EAGf,OAAO,OAAS60N,QAAkB,IAAWA,OAAiB,EAASA,EAAe70N,EAAeh+F,oCAG7G,SAAiBta,GACb,OAAOs2N,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAE5N,sCAE9B,SAAmB8B,GACf,IACI,IAAIiN,GAASnB,EAAAA,EAAAA,GAAE9L,GACX9B,EAAU,OAAS+O,QAAU,IAAWA,OAAS,EAASA,EAAOgR,IAAI,GACzE,OAAO,OAAS/f,QAAW,IAAWA,GAAWA,EAAQk7E,SAAWl7E,EAAU8B,EAChF,MAAO89C,GACL,OAAO99C,0BAGf,WACI5B,KAAK4qU,iBAAkB,EACvB5qU,KAAKwoU,0BAA2B,EAChCxoU,KAAK8qU,gBACL9qU,KAAK4rP,yCAET,WACI,OAAO3zB,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKuqU,mBAAoBvqU,KAAKysU,qDAEtD,SAAmBzlU,EAAKzG,GACpBP,KAAKysU,kBAAkBzlU,GAAOzG,yBAElC,SAAQiN,EAAM5L,GACV5B,KAAKksU,MAAM1+T,GAAQ5L,EACnB5B,KAAKyqP,2DAET,WACI,OAAOzqP,KAAK+oU,eAAemE,cAAgB,SA3W9BlrB,CAAyBjwF,EAAAA,SA8W9CiwF,EAAiBmrB,qBAAsB,EACvCnrB,EAAiBmrB,qBAAsB,sEClZhC,IAAIC,EAAkB,CACzB/+T,UAAW,GACXg/T,oBAAoB,EACpBjiU,UAAU,EACVkiU,mBAAmB,EACnBC,mBAAmB,EACnBzuL,SAAU,EACVj2I,SAAS,gNCFT2kU,EAA2B,CAAC,aAAc,mBAC1CC,EAAgB,CAChBtkF,oBAAoB,GAGxB,SAASukF,EAAY1mU,EAAKpF,EAAO42G,GAC7B,MAAO,CACHlrG,KAAMtG,EACNpF,MAAOA,EACP42G,cAAeA,GAIvB,SAAShhD,EAAQm2Q,EAAaplR,EAAOC,EAAOxhD,EAAK4mU,EAAcC,GAC3D,IAAIJ,EAAczmU,GAAlB,CAGA,IAAI8mU,GAAQnqT,EAAAA,EAAAA,IAAK4kC,GACbwlR,GAAQpqT,EAAAA,EAAAA,IAAK6kC,GACjB,GAAID,IAAUC,EAGd,GAAIslR,IAAUC,EACVJ,EAAY/sU,KAAK8sU,EAAY1mU,EAAKwhD,EAAOD,SACtC,GAAI,WAAaulR,EACpB,IAAK/yP,EAAAA,EAAAA,IAAcvyB,GAEZ,CACH,IAAIwlR,EAAYC,EAAY1lR,EAAOC,EAAOolR,EAAcC,GACxDF,EAAY/sU,KAAZ,MAAA+sU,GAAW,OAASK,EAAU9nU,KAAI,SAAAhG,GAAI,OAAI+3N,EAAAA,EAAAA,GAAS,GAAI/3N,EAAM,CACzDoN,KAAM,GAAGsuB,OAAO50B,EAAK,KAAK40B,OAAO17B,EAAKoN,kBAJ1CqgU,EAAY/sU,KAAK8sU,EAAY1mU,EAAKwhD,EAAOD,SAO1C,GAAI,UAAYulR,EAAO,CAE1B,GADkBD,EAAkBtrT,MAAK,SAAAkkG,GAAI,OAAImnN,EAAa9xM,SAASrV,OACpDl+D,IAAUC,EACzBmlR,EAAY/sU,KAAK8sU,EAAY1mU,EAAKwhD,EAAOD,SACtC,GAAIA,EAAMjoD,SAAWkoD,EAAMloD,OAC9BqtU,EAAY/sU,KAAK8sU,EAAY1mU,EAAKwhD,EAAOD,QACtC,CACH,IAAI2lR,EAAaD,EAAY1lR,EAAOC,EAAOolR,EAAcC,GACzD,GAAGjtU,KAAKolB,MAAM2nT,EAAaO,EAAWhoU,KAAI,SAAAhG,GAAI,OAAI+3N,EAAAA,EAAAA,GAAS,GAAI/3N,EAAM,CACjEoN,KAAM,GAAGsuB,OAAO50B,GAAK40B,OAAO17B,EAAKoN,kBAIzCqgU,EAAY/sU,KAAK8sU,EAAY1mU,EAAKwhD,EAAOD,KAGjD,IAAI4lR,EAAsB,SAAAC,GAAe,OAAI,SAACC,EAAU7uN,EAAOouN,EAAcC,GACzE,IAAIF,EAAc,GACdW,EAAe/oU,MAAMi2E,QAAQ6yP,GAE7B,SAAArxP,GACAxlB,EAAQm2Q,EAAaU,EAASrxP,GAAWwiC,EAAMxiC,GAAW,IAAIphD,OAAOohD,EAAU,KAAM,GAAGphD,OAAOgyS,EAAc,KAAKhyS,OAAOohD,GAAW6wP,IAH3F,SAAA7wP,GACzCxlB,EAAQm2Q,EAAaU,EAASrxP,GAAWwiC,EAAMxiC,GAAWA,EAAU,GAAGphD,OAAOgyS,EAAc,KAAKhyS,OAAOohD,GAAW6wP,IAYvH,OARAO,EAAgBC,GAAUpuU,QAAQquU,GAClCxnU,OAAOC,KAAKy4G,GAAO55G,QAAO,SAAAo3E,GAAQ,OAAKl2E,OAAOtB,UAAUsxE,eAAer2E,KAAK4tU,EAAUrxP,IAAaqxP,EAASrxP,KAAcwiC,EAAMxiC,MAAW/8E,SAAQ,SAAA+8E,GAC/I2wP,EAAY/sU,KAAK,CACb0M,KAAM0vE,EACNp7E,MAAO49G,EAAMxiC,GACbw7B,cAAe61N,EAASrxP,QAGzB2wP,IAEPM,EAAcE,GAAoB,SAAAE,GAAQ,OAAIvnU,OAAOC,KAAKsnU,MAC1DE,EAAa,CACbvnU,KAAK,EACLi3D,KAAK,EACLlzD,UAAU,EACVkT,OAAO,GAEPuwT,EAA+BL,GAAoB,SAAA1nN,GAAI,OAAI3/G,OAAOC,KAAK0/G,GAAM7gH,QAAO,SAAAwxF,GAAC,OAAKm3O,EAAWn3O,SC5EzG,IAAIk9L,EAAY,CAAC,eACbm6C,EAAa,CAAC,iBAAkB,gBAAiB,iBAkBjDC,EAAiB,SAAAlvN,GAAK,OAAI14G,OAAOC,KAAKy4G,GAAO91G,QAAO,SAACg/Q,EAAa1hR,GAIlE,YAHI,IAAWw4G,EAAMx4G,KACjB0hR,EAAY1hR,GAAOw4G,EAAMx4G,IAEtB0hR,IACR,KAiBUimD,EAAb,0CACI,WAAYnvN,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GACb,EAAKy3O,WAAYC,EAAAA,EAAAA,MACjB,EAAK9kR,YAAc,EAAKA,YAAYt/C,MAAjB,WACnB,EAAKqkU,YAAc,EAAKA,YAAYrkU,MAAjB,WACnB,EAAKskU,aAAe,EAAKA,aAAatkU,MAAlB,WANL,EADvB,mCASI,WACI,OAAIzK,KAAK2a,QAAQ+rT,EAAAA,EAAAA,IACN1mU,KAAK2a,QAAQ+rT,EAAAA,EAAAA,IAEjBA,EAAAA,EAAAA,eAbf,2BAeI,WACI,MAAO,CAAC,IAAIxlN,EAAAA,GAAclhH,KAAK8uU,YAAa,IAAK,IAAI5tN,EAAAA,GAAclhH,KAAK+uU,aAAc,CAAC/uU,KAAKw/G,MAAMwvN,eAAgBhvU,KAAKsvE,OAAQtvE,KAAKw/G,MAAMyvN,mBAhBlJ,2BAkBI,WACI,IAAIC,EACJ,QAAUA,EAAkBlvU,KAAK2/G,SAAS,UAAO,IAAWuvN,GAA2BA,EAAgB7wT,OAAO,CAACre,KAAKw/G,MAAMwvN,eAAgBhvU,KAAKsvE,OAAQtvE,KAAKw/G,MAAMyvN,kBApB1K,yBAsBI,WAAc,WACN15N,EAAoB,IAAIv1G,KAAKw/G,MAAM2vN,cAAcnvU,KAAK4uU,UAAUtwF,QAASt+O,KAAKi6D,YAElF,OADAj6D,KAAKoO,SAAWmnG,EACT,WACHA,EAAkBn3F,UAClB,EAAKhQ,SAAW,QA3B5B,0BA8BI,WACI,IAAIA,EAAWpO,KAAK+pD,cACpB,GAAK37C,EAAL,CAGA,IAAIghU,EDCL,SAA2Bf,EAAU7uN,GAExC,OAAOgvN,EAA6BH,EAAU7uN,EAAO,GAD7Bz3G,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAKylU,GCFhE6B,CAAkBrvU,KAAKsvU,WAAa,GAAItvU,KAAKi6D,YAC9Dm1Q,EAAe9uU,SACf8N,EAASo1O,cACT4rF,EAAenvU,SAAQ,SAAAkoP,GACnB,IACU76O,EAEN66O,EAFA76O,KACO1L,EACPumP,EADAvmP,MAEJwM,EAASyW,OAAOvX,EAAM1L,MAE1BwM,EAAS+1O,aAEbnkP,KAAKsvU,UAAYtvU,KAAKi6D,cA/C9B,sBAiDI,WAAiB,IACTs1Q,EADS,OAETC,EAAkBd,EAAe1uU,KAAKw/G,MAAMwvN,gBAE/BS,EACbD,EADAC,YACiBC,GAAYh7C,EAAAA,EAAAA,GAA8B86C,EAAiBl7C,GAC5Er6N,GAAag+J,EAAAA,EAAAA,GAAS,CACtBlmJ,aAAe,QAAUw9P,EAAevvU,KAAKsvE,cAAW,IAAWigQ,IAAgBA,EAAax9P,YAChG49P,aAAa,GACdD,GAqBH,OApBID,IACAx1Q,EAAWs+C,eAAiB,SAAAqwI,GACxB,IACWhnP,EACPgnP,EADAhnP,MAEJ,OAAO6tU,EAAY7tU,KAGX5B,KAAKw/G,MAAMyvN,cACjBhvU,SAAQ,SAAAuN,IACVi3G,EAAAA,EAAAA,IAAYj3G,EAAMysD,EAAY,KAC9BA,EAAWzsD,GAAQ,SAACtN,EAAMW,EAAOif,IAC7B0kG,EAAAA,EAAAA,IAAe,EAAKhF,MAAMwvN,eAAexhU,GAAO,CAC5CtN,KAAMA,EACNW,MAAOA,EACPif,UAAWA,GACZ,QAIRm6C,IA/Ef,0BAiFI,WACI,IAAI21Q,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAanB,KAnFnE,yBAsFI,WACI,OAAOzuU,KAAKoO,WAvFpB,oBAyFI,WACI,IAAIoxG,EAAQx/G,KAAKw/G,MACjB,OA3GkB,SAAAwnI,GACtB,IAGuB34O,EAKnB24O,EAPAxnI,MACIwvN,eACI3gU,UAGQwhU,EAEhB7oF,EAFA6oF,eACWjB,EACX5nF,EADA4nF,UAEJ,OAAOF,GAAeoB,EAAAA,EAAAA,IAAY,EAAG,MAAOzhU,EAAW,KAAM,GAAG4pN,EAAAA,EAAAA,GAAS,GAAI43G,GAAiB,KAAMjB,IAiGzFmB,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBovN,UAAW5uU,KAAK4uU,UAChBt/P,OAAQtvE,KAAKsvE,OACbrV,WAAYj6D,KAAKi6D,WACjB41Q,eAAgB7vU,KAAK6vU,qBAhGjC,GAAyCnwN,EAAAA,IAoGzCivN,EAAoBzB,aAxGkB,4TCrClC54C,EAAY,CAAC,WAAY,cAShB07C,EAAb,0CACI,WAAYxwN,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GACb,EAAK84O,cAAgB,GAHN,EADvB,8CAMI,WACI,OAAOh4G,EAAAA,EAAAA,GAAS,GAAIj4N,KAAK2a,SAAV,UACV+rT,EAAAA,EAAAA,GAAmB1mU,KAAKsvE,QAAUo3P,EAAAA,EAAAA,iBAR/C,kBAWI,WAAa,WACT,YAAI,IAAW1mU,KAAKiwU,cAAc3gQ,OACvBtvE,KAAKiwU,cAAc3gQ,OAEvBtvE,KAAKiwU,cAAc3gQ,OAAiB,CACvCyC,WAAY,EAAKytC,MAAMztC,cAhBnC,0BAmBI,WACI,IAAI69P,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KArBnE,iCAwBI,SAAoBh1K,EAAWC,EAAW5kG,GAClC3a,KAAKw/G,MAAMztC,aAAeutC,EAAUvtC,aACpC/xE,KAAKiwU,cAAc3gQ,YAAS,KA1BxC,oBA6BI,WACI,IAAIkwC,EAAQx/G,KAAKw/G,MACjB,MAAoB,CAChBA,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBlwC,OAAQtvE,KAAKsvE,OACbugQ,eAAgB7vU,KAAK6vU,gBApCgBrwN,MAAMz0G,aAEvD,GAAoCq0G,EAAAA,IAsCpC4wN,EAAe9C,aAvCkB,uDCR7B54C,EAAY,CAAC,uBAAwB,uBAAwB,YAAa,qBAAsB,kBAAmB,iBAAkB,OAAQ,WAAY,YAAa,UAAW,UAAW,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,OAAQ,WAAY,UAAW,qBAAsB,YAAa,aAAc,aAAc,eAAgB,aAAc,YAAa,wBAAyB,qBAAsB,iBAAkB,aAAc,WAAY,UAAW,SA+E5e47C,EAAcppU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B/C,EAAAA,GAAkBtmU,OAAOqpU,0BAA0B,CAClJC,qBAtBgC,IAuBhCC,qBAtBgC,GAuBhChwM,QAAS,GACT4rM,KAAMnlU,OAAOqtM,OAAO,IACpBlzE,QAAS,GACTzzH,KAAM,GACN8iU,gBAAgB,MAQPxuB,EAAb,0CACI,WAAYtiM,GAAO,6BACf,cAAMA,IACD+wN,kBAAmB1B,EAAAA,EAAAA,MACxB,EAAK13O,MAAQ,CACThsE,QAAQ,EACRojB,SAAS,EACTiiS,SAAS,GAEb,EAAKC,kBAAoB,EAAKA,kBAAkBhmU,MAAvB,WACzB,EAAKimU,aAAe,EAAKA,aAAajmU,MAAlB,WACpB,EAAKkmU,eAAiB,EAAKA,eAAelmU,MAApB,WACtB,EAAKmmU,YAAc,EAAKA,YAAYnmU,MAAjB,WACnB,EAAK1J,MAAQ,EAAKA,MAAM0J,MAAX,WACb,EAAKg+C,KAAO,EAAKA,KAAKh+C,MAAV,WACZ,EAAK0sS,SAAW,EAAKA,SAAS1sS,MAAd,WAChB,EAAKomU,WAAa,EAAKA,WAAWpmU,MAAhB,WAClB,EAAKqmU,cAAgB,EAAKA,cAAcrmU,MAAnB,WACrB,EAAKsmU,eAAiB,EAAKA,eAAetmU,MAApB,WACtB,EAAKumU,iBAAmB,EAAKA,iBAAiBvmU,MAAtB,WACxB,EAAKwmU,eAAiB,EAAKA,eAAexmU,MAApB,WACtB,EAAKymU,eAAiB,EAAKA,eAAezmU,MAApB,WACtB,EAAK0mU,aAAe,EAAKA,aAAa1mU,MAAlB,WACpB,EAAK2mU,mBAAqB,EAAKA,mBAAmB3mU,MAAxB,WAC1B,EAAK4mU,iBAAmB,EAAKA,iBAAiB5mU,MAAtB,WACxB,EAAK6mU,iBAAmB,EAAKA,iBAAiB7mU,MAAtB,WACxB,EAAK8mU,mBAAqB,EAAKA,mBAAmB9mU,MAAxB,WAzBX,EADvB,mCA4BI,WACI,OAAIzK,KAAK2a,QAAQ+rT,EAAAA,EAAAA,IACN1mU,KAAK2a,QAAQ+rT,EAAAA,EAAAA,IAEjBA,EAAAA,EAAAA,eAhCf,2BAkCI,WACI,MAAO,CAAC,IAAIxlN,EAAAA,GAAclhH,KAAKywU,kBAAmB,IAAK,IAAIvvN,EAAAA,GAAclhH,KAAK0wU,aAAc,CAAC1wU,KAAKw/G,MAAM6wN,qBAAsBrwU,KAAKw/G,MAAM6tN,mBAAoBrtU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAMiyN,WAAY,IAAIvwN,EAAAA,GAAclhH,KAAK2wU,eAAgB,CAAC3wU,KAAKw/G,MAAM4wN,qBAAsBpwU,KAAKw/G,MAAM6tN,mBAAoBrtU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMkyN,WAAY1xU,KAAKm3F,MAAMhsE,SAAU,IAAI+1F,EAAAA,GAAclhH,KAAK4wU,YAAa,CAAC5wU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMx4C,UAAW,IAAIk6C,EAAAA,GAAclhH,KAAK8wU,cAAe,CAAC9wU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMxN,YAAa,IAAIkP,EAAAA,GAAclhH,KAAK+wU,eAAgB,CAAC/wU,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMzN,WAAY/xG,KAAKm3F,MAAM5oD,UAAW,IAAI2yE,EAAAA,GAAclhH,KAAKgxU,iBAAkB,CAAChxU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAM+tN,kBAAmBvtU,KAAKw/G,MAAMmyN,aAAc3xU,KAAKm3F,MAAMhsE,SAAU,IAAI+1F,EAAAA,GAAclhH,KAAKixU,eAAgB,CAACjxU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAM+tN,kBAAmBvtU,KAAKw/G,MAAMoyN,WAAY5xU,KAAKm3F,MAAMq5O,UAAW,IAAItvN,EAAAA,GAAclhH,KAAKkxU,eAAgB,CAAClxU,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAM3H,YAAa,IAAIqJ,EAAAA,GAAclhH,KAAKmxU,aAAc,CAACnxU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMqyN,qBAAsB,IAAI3wN,EAAAA,GAAclhH,KAAKoxU,mBAAoB,CAACpxU,KAAKw/G,MAAMqyN,qBAAsB,IAAI3wN,EAAAA,GAAclhH,KAAKqxU,iBAAkB,CAACrxU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMsyN,qBAAsB,IAAI5wN,EAAAA,GAAclhH,KAAKsxU,iBAAkB,CAACtxU,KAAKw/G,MAAMjuG,OAAQvR,KAAKw/G,MAAMluG,QAAS,IAAI4vG,EAAAA,GAAclhH,KAAKuxU,mBAAoB,CAACvxU,KAAKw/G,MAAM6gB,WAAW9e,EAAAA,EAAAA,SAnC7iD,2BAqCI,WACI,IAAI2tN,EAAiB6C,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAkBC,EAAmBC,EAAmBC,EAAmBC,EAC9N,QAAUxD,EAAkBlvU,KAAK2/G,SAAS,UAAO,IAAWuvN,GAA2BA,EAAgB7wT,OAAO,CAACre,KAAKw/G,MAAM6wN,qBAAsBrwU,KAAKw/G,MAAM6tN,mBAAoBrtU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAMiyN,WAC3O,QAAUM,EAAmB/xU,KAAK2/G,SAAS,UAAO,IAAWoyN,GAA4BA,EAAiB1zT,OAAO,CAACre,KAAKw/G,MAAM4wN,qBAAsBpwU,KAAKw/G,MAAM6tN,mBAAoBrtU,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMkyN,WAAY1xU,KAAKm3F,MAAMhsE,SAChP,QAAU6mT,EAAmBhyU,KAAK2/G,SAAS,UAAO,IAAWqyN,GAA4BA,EAAiB3zT,OAAO,CAACre,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMx4C,UACnK,QAAUirQ,EAAmBjyU,KAAK2/G,SAAS,UAAO,IAAWsyN,GAA4BA,EAAiB5zT,OAAO,CAACre,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMxN,YACjM,QAAUkgO,EAAmBlyU,KAAK2/G,SAAS,UAAO,IAAWuyN,GAA4BA,EAAiB7zT,OAAO,CAACre,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMzN,WAAY/xG,KAAKm3F,MAAM5oD,UACnM,QAAU4jS,EAAmBnyU,KAAK2/G,SAAS,UAAO,IAAWwyN,GAA4BA,EAAiB9zT,OAAO,CAACre,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAMp0G,SAAUpL,KAAKw/G,MAAM+tN,kBAAmBvtU,KAAKw/G,MAAMmyN,aAAc3xU,KAAKm3F,MAAMhsE,SACrO,QAAUinT,EAAmBpyU,KAAK2/G,SAAS,UAAO,IAAWyyN,GAA4BA,EAAiB/zT,OAAO,CAACre,KAAKw/G,MAAMgyN,gBAAiBxxU,KAAKw/G,MAAM+tN,kBAAmBvtU,KAAKw/G,MAAMoyN,WAAY5xU,KAAKm3F,MAAMq5O,UAC9M,QAAU6B,EAAmBryU,KAAK2/G,SAAS,UAAO,IAAW0yN,GAA4BA,EAAiBh0T,OAAO,CAACre,KAAKw/G,MAAM8tN,kBAAmBttU,KAAKw/G,MAAM3H,YAC3J,QAAUy6N,EAAmBtyU,KAAK2/G,SAAS,UAAO,IAAW2yN,GAA4BA,EAAiBj0T,OAAO,CAACre,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMqyN,qBAC9I,QAAUU,EAAoBvyU,KAAK2/G,SAAS,WAAQ,IAAW4yN,GAA6BA,EAAkBl0T,OAAO,CAACre,KAAKw/G,MAAMqyN,qBACjI,QAAUW,EAAoBxyU,KAAK2/G,SAAS,WAAQ,IAAW6yN,GAA6BA,EAAkBn0T,OAAO,CAACre,KAAKw/G,MAAMhyG,KAAMxN,KAAKw/G,MAAMsyN,qBAClJ,QAAUW,EAAoBzyU,KAAK2/G,SAAS,WAAQ,IAAW8yN,GAA6BA,EAAkBp0T,OAAO,CAACre,KAAKw/G,MAAMjuG,OAAQvR,KAAKw/G,MAAMluG,QACpJ,QAAUohU,EAAoB1yU,KAAK2/G,SAAS,WAAQ,IAAW+yN,GAA6BA,EAAkBr0T,OAAO,CAACre,KAAKw/G,MAAM6gB,YAnDzI,+BAqDI,WACI,MAGIrgI,KAAKw/G,MAFkBmzN,EAD3B,EACIA,sBACgBC,EAFpB,EAEIA,eAEAA,IACAA,EAAet0F,QAAUt+O,KAAKuwU,iBAAiBjyF,SAEnD,OAASq0F,QAAyB,IAAWA,GAAiCA,EAAsB3yU,KAAKuwU,iBAAiBjyF,WA7DlI,0BA+DI,WAAe,WACX,EAMIt+O,KAAKw/G,MALiB6wN,EAD1B,EACIA,qBACoBhD,EAFxB,EAEIA,mBACiBmE,EAHrB,EAGIA,gBACUpmU,EAJd,EAIIA,SACUqmU,EALd,EAKIA,SAEAloT,EAAWioT,EACf,GAAInE,IACKjiU,EACD,OAAOynU,EAAAA,EAAAA,IAAyB7yU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,GAC3D,EAAK++H,UAAS,SAAAu5L,GAAgB,MAAK,CAC/B3nT,QAAQ,MAEZ,OAASsmT,QAAY,IAAWA,GAAoBA,EAASj3T,KAC9D,CACC5X,QAASytU,EACT9mT,SAAUA,GACX,gBAlFnB,4BAuFI,WAAiB,WACb,EAKIvpB,KAAKw/G,MAJiB4wN,EAD1B,EACIA,qBACoB/C,EAFxB,EAEIA,mBACiBmE,EAHrB,EAGIA,gBACYE,EAJhB,EAIIA,WAEAnoT,EAAWioT,EACf,GAAInE,EACA,OAAO0F,EAAAA,EAAAA,IAA2B/yU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,GACzD,EAAK28E,MAAMhsE,SACX,EAAKouH,UAAS,SAAAu5L,GAAgB,MAAK,CAC/B3nT,QAAQ,MAEZ,OAASumT,QAAc,IAAWA,GAAsBA,EAAWl3T,MAExE,CACC5X,QAASwtU,EACT7mT,SAAUA,GACX,gBA1Gf,yBA8GI,WAAc,WACV,EAIIvpB,KAAKw/G,MAHKp0G,EADd,EACIA,SACMoC,EAFV,EAEIA,KACSw5D,EAHb,EAGIA,QAEA+yK,EAAYvsO,EAChB,GAAIw5D,IAAY57D,EAIZ,OAHA6tS,EAAAA,GAAAA,GAAWj5S,KAAKuwU,iBAAiBjyF,QAASt3K,EAAS,CAC/C+yK,UAAWA,IAER,kBAAMk/D,EAAAA,GAAAA,IAAY,EAAKs3B,iBAAiBjyF,QAAS,CACpDvE,UAAWA,OA1H3B,2BA+HI,WAAgB,WACZ,EAKI/5O,KAAKw/G,MAJKp0G,EADd,EACIA,SACmBkiU,EAFvB,EAEIA,kBACM9/T,EAHV,EAGIA,KACWwkG,EAJf,EAIIA,UAEA+nI,EAAY,GAAGn+M,OAAOpuB,EAAM,SAChC,GAAI8/T,IACKliU,EACD,OAAO4nU,EAAAA,EAAAA,IAA0BhzU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,GACvDA,EAAMiiR,uBACP,EAAKljJ,UAAS,SAAAu5L,GAAgB,MAAK,CAC/BvkS,SAAS,MAEb,OAASyjE,QAAa,IAAWA,GAAqBA,EAAUx3F,MAErE,KAAMu/N,KAhJzB,4BAqJI,WAAiB,WACb,EAII/5O,KAAKw/G,MAHc8tN,EADvB,EACIA,kBACM9/T,EAFV,EAEIA,KACYukG,EAHhB,EAGIA,WAEAgoI,EAAY,GAAGn+M,OAAOpuB,EAAM,SAChC,GAAI8/T,EACA,OAAO2F,EAAAA,EAAAA,IAA2BjzU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,IACxDA,EAAMiiR,sBAAwB,EAAKtlM,MAAM5oD,UAC1C,EAAKgrG,UAAS,SAAAu5L,GAAgB,MAAK,CAC/BvkS,SAAS,MAEb,OAASwjE,QAAc,IAAWA,GAAsBA,EAAWv3F,MAExE,KAAMu/N,KApKrB,8BAwKI,WAAmB,WACf,EAKI/5O,KAAKw/G,MAJYgyN,EADrB,EACIA,gBACUpmU,EAFd,EAEIA,SACmBmiU,EAHvB,EAGIA,kBACcoE,EAJlB,EAIIA,aAEApoT,EAAWioT,EACf,GAAIjE,IACKniU,EACD,OAAO8nU,EAAAA,EAAAA,IAA6BlzU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,IAC9D,EAAK28E,MAAMhsE,QAAU,EAAKouH,UAAS,SAAAu5L,GAAgB,MAAK,CACrDtC,SAAS,MAEb,OAASmB,QAAgB,IAAWA,GAAwBA,EAAan3T,KAC1E,CACC+O,SAAUA,GACX,gBAzLnB,4BA8LI,WAAiB,WACb,EAIIvpB,KAAKw/G,MAHYgyN,EADrB,EACIA,gBACmBjE,EAFvB,EAEIA,kBACYqE,EAHhB,EAGIA,WAEAroT,EAAWioT,EACf,GAAIjE,EACA,OAAO4F,EAAAA,EAAAA,IAA2BnzU,KAAKuwU,iBAAiBjyF,SAAS,SAAA9jO,GACzD,EAAK28E,MAAMq5O,UACX,EAAKj3L,UAAS,SAAAu5L,GAAgB,MAAK,CAC/BtC,SAAS,MAEb,OAASoB,QAAc,IAAWA,GAAsBA,EAAWp3T,MAExE,CACC+O,SAAUA,GACX,gBA/Mf,4BAmNI,WACI,MAGIvpB,KAAKw/G,MAFc8tN,EADvB,EACIA,kBACWz1N,EAFf,EAEIA,UAEJ,GAAIy1N,GAAqBz1N,EAAW,CAChC,IAAI5tG,EAAKkvS,EAAAA,GAAAA,GAAYn5S,KAAKuwU,iBAAiBjyF,QAASt+O,KAAKuwU,iBAAiBjyF,SAAS,SAAA99O,GAAC,OAAIq3G,EAAUr3G,MAClG,OAAO,kBAAM24S,EAAAA,GAAAA,IAAalvS,OA1NtC,0BA8NI,WAAe,WACP8vO,EAAY,GAAGn+M,OAAO57B,KAAKw/G,MAAMhyG,KAAM,oBAEnBqkU,EACpB7xU,KAAKw/G,MADLqyN,mBAEJ,GAAIA,EAIA,OAHAt1T,EAAAA,GAAAA,GAAUvc,KAAKuwU,iBAAiBjyF,QAASuzF,EAAoB,CACzD93F,UAAWA,IAER,kBAAMx9N,EAAAA,GAAAA,IAAW,EAAKg0T,iBAAiBjyF,QAAS,CACnDvE,UAAWA,OAxO3B,gCA6OI,WACI,IACwB83F,EACpB7xU,KAAKw/G,MADLqyN,mBAEJ,GAAIA,EAEA,OADAj0F,EAAAA,QAAAA,IAAoBi0F,GACb,WACHj0F,EAAAA,QAAAA,OAAuBi0F,MApPvC,8BAyPI,WAAmB,WACf,EAGI7xU,KAAKw/G,MAFChyG,EADV,EACIA,KACoBskU,EAFxB,EAEIA,mBAEA/3F,EAAY,GAAGn+M,OAAOpuB,EAAM,oBAChC,GAAIskU,EAIA,OAHAv8Q,EAAAA,GAAAA,GAAcv1D,KAAKuwU,iBAAiBjyF,SAAS,kBAAMwzF,GAAmB,MAAO,kBAAMA,GAAmB,KAAQ,CAC1G/3F,UAAWA,IAER,kBAAMxkL,EAAAA,GAAAA,IAAe,EAAKg7Q,iBAAiBjyF,QAAS,CACvDvE,UAAWA,OApQ3B,8BAyQI,WACI,MAGI/5O,KAAKw/G,MAFGjuG,EADZ,EACIA,OACOD,EAFX,EAEIA,OAEA4pE,EAAAA,EAAAA,IAAW5pE,IACX2wN,EAAAA,EAAAA,IAAW,QAAS,UAEpB/mJ,EAAAA,EAAAA,IAAW3pE,IACX0wN,EAAAA,EAAAA,IAAW,QAAS,YAlRhC,gCAqRI,WACI,IACa5hG,EACTrgI,KAAKw/G,MADL6gB,QAEA,KAAOA,IACPrgI,KAAKuwU,iBAAiBjyF,QAAQrgO,MAAMoiH,QAAUA,KA1R1D,sCA6RI,WAII,OCpXD,SAAqC+yM,EAAS9jQ,GACjD,IAAI+jQ,GAAgB1qR,EAAAA,EAAAA,IAAUyqR,GAC1BE,GAAoB3qR,EAAAA,EAAAA,KAAU4qR,EAAAA,EAAAA,WAAexhQ,cAAgBshQ,KAAkB1qR,EAAAA,EAAAA,IAAU,OAAS2mB,QAAU,IAAWA,OAAS,EAASA,EAAOyC,YACpJ,OAAOshQ,GAAiBD,KAAa,OAAS9jQ,QAAU,IAAWA,OAAS,EAASA,EAAOyC,aAAeuhQ,EDiXhGE,CADHxzU,KAAKw/G,MADLztC,WAE2C/xE,KAAKsvE,UAjS5D,sBAmSI,WACI,IChY0B8jQ,EAAS9jQ,EDiYnByC,EACZ/xE,KAAKw/G,MADLztC,WAEJ,OCnY0BqhQ,EDmYDrhQ,ECnYUzC,EDmYEtvE,KAAKsvE,YClY1C,IAAW8jQ,EACJA,OAEP,KAAY,OAAS9jQ,QAAU,IAAWA,OAAS,EAASA,EAAOyC,YAC5DzC,EAAOyC,YAEXwhQ,EAAAA,EAAAA,WAAexhQ,aDqF1B,sBAySI,WACI,IA5UMvrD,EA4UN,EAKIxmB,KAAKw/G,MAJCysN,EADV,EACIA,KACU7gU,EAFd,EAEIA,SACmBkiU,EAHvB,EAGIA,kBACSzkU,EAJb,EAIIA,QAEA4qU,EAAYnG,IAAsBliU,GAAYpL,KAAKw/G,MAAMi0N,UAC7D,OAAOx7G,EAAAA,EAAAA,GAAS,IAAInvN,EAAAA,EAAAA,GAAO,GAAI2qU,GAAa,CACxCA,UAAWA,KApVTjtT,GAqVMyxM,EAAAA,EAAAA,GAAS,GAAIg0G,EAAM,CAC3B7gU,SAAUA,EACVupB,QAAS9rB,IAvVC/B,OAAOC,KAAKyf,GAAM9c,QAAO,SAAC68D,EAAGv/D,GAC/C,OAAIwf,EAAKxf,IACEixN,EAAAA,EAAAA,GAAS,GAAI1xJ,GAAL,UACV,SAAWv/D,GAAO,OAASA,EAAMA,EAAM,QAAQ40B,OAAO50B,GAAO6+D,OAAOr/C,EAAKxf,MAG3Eu/D,IACR,MAiVUz9D,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6vU,mBAtT7B,kBAwTI,WACI,MAGI7vU,KAAKw/G,MAFGjuG,EADZ,EACIA,OACOD,EAFX,EAEIA,MAEA2M,EAAQje,KAAK6vU,eAAe5xT,OAAS,GACrCy1T,GAAgB/9E,EAAAA,EAAAA,IAAmB,SAASz6K,EAAAA,EAAAA,IAAW5pE,GAASA,IAAUA,GAC1EqiU,GAAiBh+E,EAAAA,EAAAA,IAAmB,UAAUz6K,EAAAA,EAAAA,IAAW3pE,GAAUA,IAAWA,GAClF,OAAO0mN,EAAAA,EAAAA,GAAS,GAAIh6M,EAAO,CACvB1M,OAAQ,OAASoiU,QAAkB,IAAWA,EAAiBA,EAAiB11T,EAAM1M,OACtFD,MAAO,OAASoiU,QAAiB,IAAWA,EAAgBA,EAAgBz1T,EAAM3M,UAlU9F,sBAqUI,WAAiB,MACb,EAUItR,KAAKw/G,MATe6tN,EADxB,EACIA,mBACgBiD,EAFpB,EAEIA,eACWjiU,EAHf,EAGIA,UACS4yH,EAJb,EAIIA,QACU71H,EALd,EAKIA,SACmBkiU,EANvB,EAMIA,kBACmBC,EAPvB,EAOIA,kBACoBuE,EARxB,EAQIA,mBACSjpU,EATb,EASIA,QAEA+qU,IAAgBtG,IAAsBliU,EACtCyoU,IAAgBtG,IAAsBniU,EACtC0oU,IAAgBzG,IAAuBjiU,EACvC2oU,GAAU,GACV,cAAezD,IADL,SAETzqQ,OAAOo7D,KAAaA,IAFX,SAGTp7D,OAAOx3D,KAAeA,IAHb,SAIV,sBAAuBjD,IAJb,SAKV,sBAAuBvC,IALb,SAMV,qBAAsB7I,KAAKm3F,MAAM5oD,SAAWqlS,IANlC,SAOV,oBAAqB5zU,KAAKm3F,MAAMhsE,QAAU2oT,IAPhC,SAQV,mBAAoB9zU,KAAKm3F,MAAMq5O,SAAWqD,IAAgB7zU,KAAKm3F,MAAMhsE,SAR3D,SASV,WAAYnrB,KAAK+xE,aATP,SAUV,iCAAkC+/P,GAVxB,GAYd,OAAOkC,EAAAA,EAAAA,GAAeD,KAhW9B,oBAkWI,WACI,MAII/zU,KAAKw/G,MAHKp0G,EADd,EACIA,SACmBkiU,EAFvB,EAEIA,kBACUxuL,EAHd,EAGIA,SAGJ,OADkBwuL,IAAsBliU,EACnB0zI,OAAW,IAzWxC,0BA2WI,WACI,IAAI8wL,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KA7WnE,mBAgXI,WACIvzR,EAAAA,GAAAA,QAAcf,KAAKuwU,iBAAiBjyF,WAjX5C,kBAmXI,WACI,IAAI52O,EAAgBkyN,EAAAA,EAAAA,iBAA4B55N,KAAKuwU,iBAAiBjyF,SAClEt+O,KAAKuwU,iBAAiBjyF,UAAY52O,GAClCA,EAAc+gD,SAtX1B,sBAyXI,WACIzoD,KAAKu5I,UAAS,SAAAu5L,GAAgB,MAAK,CAC/B3nT,QAAQ,QA3XpB,wBA8XI,WACInrB,KAAKu5I,UAAS,SAAAu5L,GAAgB,MAAK,CAC/B3nT,QAAQ,QAhYpB,oBAmYI,WACI,IAAIq0F,EAAQx/G,KAAKw/G,MACjB,OA/ZkB,SAAA9lG,GACtB,IAAIumB,GAASyuS,EAAAA,EAAAA,KAAeoB,EAAAA,EAAAA,IAAY,EAAG,MAAOp2T,EAAUgT,WAAYhT,EAAU8lG,MAAMz0G,SAAU,GAAGktN,EAAAA,EAAAA,GAAS,GAAIv+M,EAAU2vH,WAAY,CACpIyV,SAAUplI,EAAUolI,SACpBlzH,MAAOlS,EAAU8lG,MAAM5xF,KACvB3P,OAAO4mG,EAAAA,EAAAA,IAAgBnrG,EAAUkoB,UACjC,KAAMloB,EAAU62T,mBACpB,OAAO72T,EAAUu6T,4BAA6BC,EAAAA,EAAAA,IAAqB,EAAGlE,EAAgB,CAClFj+P,WAAYr4D,EAAUq4D,WACtBhnE,SAAUk1B,IACTA,EAsZM8vS,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBr0F,OAAQnrB,KAAKm3F,MAAMhsE,OACnBojB,QAASvuC,KAAKm3F,MAAM5oD,QACpBiiS,QAASxwU,KAAKm3F,MAAMq5O,QACpBD,iBAAkBvwU,KAAKuwU,iBACvBjhQ,OAAQtvE,KAAKsvE,OACb2kQ,2BAA4Bj0U,KAAKi0U,2BACjCliQ,WAAY/xE,KAAK+xE,WACjBs3D,WAAYrpI,KAAKqpI,WACjBznG,OAAQ5hC,KAAK4hC,OACblV,WAAY1sB,KAAK0sB,WACjBoyH,SAAU9+I,KAAK8+I,SACf+wL,eAAgB7vU,KAAK6vU,qBAlZjC,GAA4B5vN,EAAAA,IAsZ5B6hM,EAAOorB,aAAegD,kTEpflB57C,EAAY,CAAC,YAAa,qBAAsB,WAAY,YAAa,YAAa,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,OAAQ,SAAU,UAAW,YAAa,eAAgB,aAAc,WAAY,SAAU,mBAAoB,UAAW,kBAAmB,SA0BvS6/C,EAAyBrtU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B/C,EAAAA,GAAkBtmU,OAAOqpU,0BAA0B,CAC7J9rQ,KAAM,OACN+vQ,aAAc,MACd7oU,OAAQzE,OAAOqtM,OAAO,CAClB3qD,EAAG,EACH3iG,EAAG,IAEPwtR,yBAAyB,MAEhBC,EAAb,0CACI,WAAY90N,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GAFE,EADvB,2CAKI,WACI,OAAOn3F,KAAKw/G,QANpB,0BAQI,WACI,IAAIowN,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KAVnE,oBAaI,WACI,IAAI90K,EAAQx/G,KAAKw/G,MACjB,OAnCkB,SAAAwnI,GACtB,IACoBgoF,EAEhBhoF,EAFAgoF,eACgBa,EAChB7oF,EADA6oF,eAEJ,OAAOnB,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGvF,EAAAA,IAAqB12G,EAAAA,EAAAA,GAAS,CACxEk3G,cAAeoF,EAAAA,EACfvF,eAAgBA,EAChBC,cAAe,IAChBY,KA0BQE,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBwvN,eAAgBhvU,KAAKgvU,eACrBa,eAAgB7vU,KAAK6vU,qBAlBjC,GAAuCzwN,EAAAA,IAsBvCk1N,EAAkBpH,aAAeiH,eCzD7B7/C,EAAY,CAAC,YAAa,qBAAsB,OAAQ,WAAY,YAAa,UAAW,eAAgB,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,YAAa,UAAW,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,WAAY,kBAAmB,mBAAoB,wBAAyB,4BAA6B,mBAAoB,QAAS,cAAe,UAAW,SAwG5akgD,EAAc1tU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B/C,EAAAA,GAAkBtmU,OAAOqpU,0BAA0B,CAClJ15L,UAAU,EACVjpI,KAAM,GACNk1S,gBAAiB,KACjBC,iBAAkB,KAClB8xB,sBAAuB,OACvBC,0BAA2B,SAC3B9xB,iBAAkB,QAClB1yR,SAAS,EACTo0C,UAAWx9D,OAAOqtM,OAAO,IACzB5/J,aAAc,KACdk7R,YAAa,iBAENkF,EAAkB,CACrBl+L,eACA,OAAO+9L,EAAY/9L,UAEnBjpI,WACA,OAAOgnU,EAAYhnU,MAEnBk1S,sBACA,OAAO8xB,EAAY9xB,iBAEnBC,uBACA,OAAO6xB,EAAY7xB,kBAEnB8xB,4BACA,OAAOD,EAAYC,uBAEnBC,gCACA,OAAOF,EAAYE,2BAEnB9xB,uBACA,OAAO4xB,EAAY5xB,kBAEnB1yR,cACA,OAAOskT,EAAYtkT,SAEnBo0C,gBACA,OAAOkwQ,EAAYlwQ,WAEnB/vB,mBACA,OAAOigS,EAAYjgS,cAEnBk7R,kBACA,OAAO+E,EAAY/E,aAEnBphU,gBACA,OAAOmmU,EAAYnmU,WAEnBg/T,yBACA,OAAOmH,EAAYnH,oBAEnBjiU,eACA,OAAOopU,EAAYppU,UAEnBkiU,wBACA,OAAOkH,EAAYlH,mBAEnBC,wBACA,OAAOiH,EAAYjH,mBAEnBzuL,eACA,OAAO01L,EAAY11L,UAEnBj2I,cACA,OAAO2rU,EAAY3rU,SAEnBojU,WACA,OAAOiE,EAAAA,GAAAA,MAEPjvM,cACA,OAAOivM,EAAAA,GAAAA,UAYFj0S,EAAb,0CACI,WAAYujF,GAAO,6BACf,cAAMA,IACDovN,WAAYC,EAAAA,EAAAA,MACjB,EAAK+D,gBAAiB/D,EAAAA,EAAAA,MACtB,EAAKoB,cAAgB,GACrB,EAAK94O,MAAQ,CACTy9O,sBAAuB,MAAMh5S,OAAO,IAAIu1N,EAAAA,GACxC0jF,4BAA4B,EAC5BjzU,WAAO,IAAW,EAAK49G,MAAM59G,MAAQ,EAAK49G,MAAM59G,MAAQ,EAAK49G,MAAMjrE,cAEvE,EAAKugS,kCAAoC,EAAKA,kCAAkCrqU,MAAvC,WACzC,EAAK1J,MAAQ,EAAKA,MAAM0J,MAAX,WACb,EAAKg+C,KAAO,EAAKA,KAAKh+C,MAAV,WACZ,EAAKunG,UAAY,EAAKA,UAAUvnG,MAAf,WAbF,EADvB,4CAgBI,WACI,MAAO,CAAC,IAAIy2G,EAAAA,GAAclhH,KAAK80U,kCAAmC,CAAC90U,KAAKw/G,MAAMtvF,QAASlwB,KAAKw/G,MAAMojM,iBAAkB5iT,KAAKw/G,MAAMkjM,gBAAiB1iT,KAAKw/G,MAAMmjM,oBAAoBphM,EAAAA,EAAAA,SAjBvL,2BAmBI,WACI,IAAI2tN,EACJ,QAAUA,EAAkBlvU,KAAK2/G,SAAS,UAAO,IAAWuvN,GAA2BA,EAAgB7wT,OAAO,CAACre,KAAKw/G,MAAMtvF,QAASlwB,KAAKw/G,MAAMojM,iBAAkB5iT,KAAKw/G,MAAMkjM,gBAAiB1iT,KAAKw/G,MAAMmjM,qBArB/M,+CAuBI,WAAoC,WAChC3iT,KAAKu5I,UAAS,SAAAu5L,GAAgB,MAAK,CAC/B+B,2BAA4B,EAAKE,kCAzB7C,uBA4BI,SAAUv6T,GACN,IACew3F,EACXhyG,KAAKw/G,MADLxN,UAEJ,OAASA,QAAa,IAAWA,GAAqBA,EAAUx3F,KAhCxE,sBAkCI,WACI,MAAO,GAAGohB,OApME,SAAA5vB,GAChB,IACai1H,EAGTj1H,EAHAi1H,QACS/wG,EAETlkB,EAFAkkB,QACUumH,EACVzqI,EADAyqI,SAEAs9L,GAAa,QACb,sBAAuBt9L,EACvB,cAAevmH,GACd,GAAG0L,OAAOqlG,KAAaA,GAE5B,OAAO+yM,EAAAA,EAAAA,GAAeD,GAyLDiB,EAAc/8G,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKw/G,MAAO,CACpD59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,YApC/E,uCAuCI,WACI,IAAIqzU,EACJ,EAGIj1U,KAAKw/G,MAFItvF,EADb,EACIA,QACkB0yR,EAFtB,EAEIA,iBAEAD,EAAmB,QAAUsyB,EAAwBj1U,KAAK2iT,wBAAqB,IAAWsyB,EAAwBA,EAAwB,GAE9I,QADoB/kT,GAAW,YAAc0yR,IACpBD,EAAiBriT,OAAS,IA/C3D,gBAiDI,WACI,MAGIN,KAAKw/G,MAFItvF,EADb,EACIA,QAGArhB,EAAS,CACTqmU,SALJ,EAEIz+L,SAGqB,OAAS,QAC9B0+L,QAAUjlT,EAAmB,QAAT,QAKxB,OAHIlwB,KAAK+0U,8BACLlmU,EAAOumU,YAAcp1U,KAAKm3F,MAAMy9O,wBAE7B38G,EAAAA,EAAAA,GAAS,GAAIppN,EAAQ7O,KAAKw/G,MAAMysN,QA7D/C,4BA+DI,WAAuB,WACnB,YAAI,IAAWjsU,KAAKiwU,cAActtB,iBACvB3iT,KAAKiwU,cAActtB,iBAEvB3iT,KAAKiwU,cAActtB,iBAAoB,WAC1C,MAGI,EAAKnjM,MAFYkjM,EADrB,EACIA,gBACkBC,EAFtB,EAEIA,iBAEA0yB,EAAsB1yB,IAAoB,OAAIA,GAIlD,OAHK0yB,GAAuB3yB,IACxB2yB,EAAsB,EAACp9G,EAAAA,EAAAA,GAAS,GAAIyqF,KAEjC2yB,EATmC,KAnEtD,mCA+EI,WACI,IAAIC,EACJ,OAAO,QAAUA,EAAuBt1U,KAAK4yU,sBAAmB,IAAW0C,OAAuB,EAASA,EAAqBh3F,UAjFxI,0BAmFI,WACI,IAAIi3F,GAAoBt9G,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKw/G,MAAO,CACzC59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,QAG3E,OADgB8yR,EAAAA,EAAAA,GAA8B6gD,EAAmBjhD,KAvFzE,mBA0FI,WACIt0R,KAAK4uU,UAAUtwF,QAAQv9O,UA3F/B,kBA6FI,WACIf,KAAK4uU,UAAUtwF,QAAQ71L,SA9F/B,iCAgGI,SAAoB62D,EAAWC,EAAW5kG,IACtC,mEACI3a,KAAKw/G,MAAMkjM,kBAAoBpjM,EAAUojM,iBAAmB1iT,KAAKw/G,MAAMmjM,mBAAqBrjM,EAAUqjM,mBACtG3iT,KAAKiwU,cAActtB,sBAAmB,KAnGlD,oBAsGI,WACI,IAAInjM,EAAQx/G,KAAKw/G,MACjB,OA5PkB,SAAA9lG,GACtB,IACUuyT,EA6BNvyT,EA7BAuyT,KACYhrM,EA4BZvnH,EA5BAgT,WAC4BmoT,EA2B5Bn7T,EA3BAm7T,2BACW7iO,EA0BXt4F,EA1BAs4F,UAJJ,EA8BIt4F,EAzBA8lG,MACei0N,EANnB,EAMQA,UACoBpG,EAP5B,EAOQA,mBACUtiU,EARlB,EAQQA,SACWsD,EATnB,EASQA,UACUjD,EAVlB,EAUQA,SACmBkiU,EAX3B,EAWQA,kBACQ/7T,EAZhB,EAYQA,OACMqc,EAbd,EAaQA,KACmB2/S,EAd3B,EAcQA,kBACSvmQ,EAfjB,EAeQA,QACW6wC,EAhBnB,EAgBQA,UACY9lC,EAjBpB,EAiBQA,WACU+sE,EAlBlB,EAkBQA,SACuB21L,EAnB/B,EAmBQA,sBAC2BC,EApBnC,EAoBQA,0BACS7rU,EArBjB,EAqBQA,QACOyI,EAtBf,EAsBQA,MAEYu+T,EAMhBn2T,EANAm2T,eACgB+C,EAKhBl5T,EALAk5T,eACkBjwB,EAIlBjpS,EAJAipS,iBACuBiyB,EAGvBl7T,EAHAk7T,sBACyBY,EAEzB97T,EAFA87T,wBACW5G,EACXl1T,EADAk1T,UAEJ,OAAOF,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGpyB,EAAAA,IAAQ7pF,EAAAA,EAAAA,GAAS,CAC3D26G,eAAgBA,EAChB3G,KAAMA,EACNhrM,QAASA,EACTosM,mBAAoBA,EACpBC,kBAAmBA,EACnBC,kBAAmBA,EACnBkG,UAAWA,EACXplU,UAAWA,EACX0jE,WAAYA,EACZnkD,KAAMA,EACNxiB,SAAUA,EACVmG,OAAQA,EACRD,MAAOA,EACP0gG,UAAWA,EACXhrC,QAASA,EACT6wC,UAAWA,EACXinC,SAAUA,EACVj2I,QAASA,GACVgnU,EAAgB,CACf9kU,UAAU61H,EAAAA,EAAAA,IAAe,CAAC71H,EAAU8pU,IAA8BX,EAAAA,EAAAA,IAAqB,EAAGI,EAAmB,CACzG3xB,iBAAkBA,EAClBt+O,KAAMowQ,EACNL,aAAcM,EACd3iQ,WAAYA,EACZnrE,OAAQ4uU,EACRtwT,SAAUswT,EACVC,gBAAiBD,EACjB3nT,UAAW+mT,KACV,KACL,KAAMhG,IA8LCmB,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,EAAO,CACvB59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,QAEvEgzU,sBAAuB50U,KAAKm3F,MAAMy9O,sBAClCC,2BAA4B70U,KAAKm3F,MAAM09O,2BACvCjC,eAAgB5yU,KAAK4yU,eACrBhE,UAAW5uU,KAAK4uU,UAChB58N,UAAWhyG,KAAKgyG,UAChBtlF,WAAY1sB,KAAK0sB,WACjBqoT,4BAA6B/0U,KAAK+0U,4BAClC9I,KAAMjsU,KAAKisU,KACXtpB,iBAAkB3iT,KAAK2iT,iBACvB6yB,wBAAyBx1U,KAAKw1U,wBAC9B3F,eAAgB7vU,KAAK6vU,qBAtHjC,GAA4B5vN,EAAAA,IAoI5BhkF,EAAOixS,aAAeyH,+IClUf,IACIe,EAAqB,WACrBC,EAAuB,aACvBC,EAAiB,OAEjBC,EAA2B,4DCL/B,SAASC,EAAkBC,EAAoBC,GAMlD,IALA,IAAIzqU,EAAS,CACTmN,KAAM,EACNI,IAAK,GAELhZ,EAAUk2U,EACP,QAAUnqS,EAAW/rC,SAAY,IAAW+rC,GAAYA,EAAS6qN,eAAiB52P,EAAQuB,UAAU0d,SAASg3T,IAAqB,CACrI,IAAIlqS,EACA5D,EAAgBnoC,EAAQ42P,aACxBu/E,EAAcn2U,EAAQmc,wBACtBi6T,EAAoBjuS,EAAchsB,wBACtC1Q,EAAOmN,MAAQu9T,EAAYv9T,KAAOw9T,EAAkBx9T,KACpDnN,EAAOuN,KAAOm9T,EAAYn9T,IAAMo9T,EAAkBp9T,IAClDhZ,EAAUA,EAAQ42P,aAEtB,OAAOnrP,0ICVE4qU,EAAb,WACI,WAAY96L,IAAW,eACnBr7I,KAAK21U,qBAAuB,aAC5B31U,KAAK01U,mBAAqB,WAC1B11U,KAAK41U,eAAiB,OACtB51U,KAAKq7I,UAAY,OAASA,QAAa,IAAWA,EAAYA,EAAYq6L,EAAAA,GALlF,yCAOI,WACI,OAAO11U,KAAKq7I,YAAcs6L,EAAAA,IAAwB31U,KAAKq7I,YAAcu6L,EAAAA,KAR7E,sBAUI,WACI,OAAO51U,KAAKq7I,YAAcq6L,EAAAA,IAAsB11U,KAAKq7I,YAAcu6L,EAAAA,KAX3E,kBAaI,WACI,OAAO51U,KAAKq7I,YAAcu6L,EAAAA,OAdlC,yCCLO,SAAS5B,EAAeD,GAC3B,OAAOjtU,OAAOC,KAAKgtU,GAAYnuU,QAAO,SAAAwxF,GAAC,OAAI28O,EAAW38O,MAAInmF,KAAK,wHCEpD,SAASypQ,EAAwBlyQ,GAC5C,IAAI4tU,EACA3wT,GAASwoM,EAAAA,EAAAA,MACb,OAAOzlN,EAAK,QAAU4tU,EAAwB3wT,EAAO88G,wBAAqB,IAAW6zM,OAAwB,EAASA,EAAsB31U,KAAKglB,EAAQjd,GAAM,qRCC5J,SAAS6tU,EAAiBpsS,GAC7B,OAAO,SAACnqC,EAASS,EAASs/R,EAAW9lD,GACjC,IAAIv/N,EAAQu/N,GAAY3rB,EAAAA,EAAAA,cAAankL,EAAW8vM,GAAa9vM,EAC7D,GAAI1pC,EAEA,OADAo1N,EAAAA,EAAAA,GAAgB71N,EAAS0a,EAAOqlR,EAAWt/R,GACpC,WACHo1N,EAAAA,EAAAA,IAAiB71N,EAAS0a,EAAOja,KAM1C,IAAI+1U,EAAwBD,EAAiBE,EAAAA,GAczC1D,GAbyBwD,EAAiBG,EAAAA,EAAAA,QACbH,EAAiBG,EAAAA,EAAAA,MACdH,EAAiBG,EAAAA,EAAAA,OAClBH,EAAiBG,EAAAA,EAAAA,MAClBH,EAAiBG,EAAAA,EAAAA,KAChBH,EAAiBG,EAAAA,EAAAA,MACfH,EAAiBG,EAAAA,EAAAA,QAClBH,EAAiBx0S,EAAAA,EAAAA,MACnBw0S,EAAiBx0S,EAAAA,EAAAA,IACfw0S,EAAiBx0S,EAAAA,EAAAA,MACpBw0S,EAAiB,cACjBA,EAAiB,cACpBA,EAAiB,WAChBA,EAAiB,aAC5CtD,EAA6BsD,EAAiB,cAC9CnD,EAA+BmD,EAAiB,gBAChDlD,EAA6BkD,EAAiB,cAC9CrD,EAA4BqD,EAAiB,WAC7CpD,EAA6BoD,EAAiB,gDCtClD,SAASI,EAASC,GACrB,OAAOA,EAAYjnR,OAAOinR,EAAUhuR,QAAQ,KAAM,KAAO,0PC2BzDiuR,EAAoB,gBAEpBC,EAAc,CACdxxP,IAAK,WACLwQ,IAAK,aAELihP,EAAc,CACdzxP,IAAK,WACLwQ,IAAK,aAELkhP,EAA2B,CAC3Bj7T,MAAO,aACPuX,IAAK,WACL9P,OAAQ,SACR,gBAAiB,gBACjB,eAAgB,gBAEhByzT,EAAuB,CACvBl7T,MAAO,aACPuX,IAAK,WACL9P,OAAQ,SACR0zT,QAAS,WAETC,EAAqB,CACrB7xP,IAAK,MACLwQ,IAAK,UAELshP,EAAc,SAACp3U,EAAS2mH,EAAM7kH,GAG9B,GAFAA,GAAQ+zP,EAAAA,EAAAA,IAAmBlvI,EAAM7kH,GACjC9B,EAAQme,OAAMy3O,EAAAA,EAAAA,IAAUjvI,IAAS7kH,IAC5B06N,EAAAA,EAAAA,MAAa,CACd,GAAI,KAAO16N,KAAU+mD,EAAAA,EAAAA,IAAU/mD,GAC3B,OAEJ,IACIu1U,GADUniH,EAAAA,EAAAA,IAAUvuG,GACE,KAAO7kH,EAAQ,KACzC4gI,EAAAA,EAAAA,IAAS1iI,EAASq3U,GAAW,KAG/BC,EAAAA,SAAAA,yIACF,SAAex1U,EAAOk0C,IAClB,6DAAqBl0C,IACjB+mD,EAAAA,EAAAA,IAAU7S,IACV91C,KAAKmhB,SAASk2T,2BAA2B,CACrC7pU,KAAM,UACN2pF,MAAOv1F,EACP01U,SAAUxhS,UAPpBshS,CAAgBG,EAAAA,GAYhBC,EAAAA,WACF,WAAY39T,EAAUgL,IAAQ,eAC1B7kB,KAAK4kB,UAAY/K,EACjB7Z,KAAKy3U,QAAU5yT,0CAEnB,WACI7kB,KAAK4kB,UAAUvJ,IAAI,CACfgE,SAAS6/P,EAAAA,EAAAA,IAAgB,iBAAmB,SAEhDg4D,EAAYl3U,KAAK4kB,UAAU/E,IAAI,GAAI,gBAAiBo3T,EAAmBj3U,KAAKy3U,QAAQ,0CAExF,WACIz3U,KAAK4kB,UAAUvJ,IAAI,CACfq8T,eAAgB13U,KAAK23U,qDAG7B,WACI,IAAI99R,EAAQ75C,KAAKy3U,QAAQ,SACzB,OAAO59R,KAASi9R,EAA2BA,EAAyBj9R,GAASA,kCAEjF,WACI75C,KAAK4kB,UAAUvJ,IAAI,CACfu8T,WAAY53U,KAAK63U,+DAGzB,WACI,IAAIC,EAAa93U,KAAKy3U,QAAQ,cAC9B,OAAOK,KAAcf,EAAuBA,EAAqBe,GAAcA,6BAEnF,SAAY5gH,GACR,IAAI6gH,GAAiB74D,EAAAA,EAAAA,IAAgB,iBACjC7jI,EAAYr7I,KAAKy3U,QAAQ,cAC7Bh9T,EAAAA,EAAAA,IAAKy8M,GAAS,WACV,IAAI8gH,GAAQtqU,EAAAA,EAAAA,GAAE1N,MACVE,EAAO83U,EAAMnqU,KAAK8oU,GACtBqB,EAAM38T,IAAI,CACNgE,QAAS04T,EAAiB,SAC3B18T,IAAIw7T,EAAYx7L,GAAYn7I,EAAK+3U,SAAW,QAAQ58T,IAAIu7T,EAAYv7L,GAAYn7I,EAAKg4U,SAAW,KACnGhB,EAAYc,EAAMn4T,IAAI,GAAI,YAAa3f,EAAKi4U,UAAY,GACxDjB,EAAYc,EAAMn4T,IAAI,GAAI,WAAY3f,EAAKk4U,OAC3ClB,EAAYc,EAAMn4T,IAAI,GAAI,cAAc8oC,EAAAA,EAAAA,IAAUzoD,EAAKm4U,QAAUn4U,EAAKm4U,OA1FrE,GA2FDL,EAAMjtU,WAAW0P,MAAK,SAACC,EAAG49T,IACtB5qU,EAAAA,EAAAA,GAAE4qU,GAAaj9T,IAAI,CACf/J,MAAO,OACPC,OAAQ,OACR8N,SAAS6/P,EAAAA,EAAAA,IAAgB,iBAAmB,OAC5Cq5D,UAAW,IAEfrB,EAAYoB,EAAa,WAAY,GACrCpB,EAAYoB,EAAa,iBAAiB5qU,EAAAA,EAAAA,GAAE4qU,GAAa,GAAGr6T,MAAMu6T,eAAiB,sBAjD7FhB,GAsDAiB,EAAAA,SAAAA,6IACF,WACI,OAAO3vU,EAAAA,EAAAA,IAAO,kEAA4B,CACtCuyI,UAAW,MACXxhG,MAAO,QACPi+R,WAAY,UACZzK,oBAAoB,EACpBC,mBAAmB,EACnBoL,wBAAoB,EACpBlsQ,YAAQ,8BAGhB,WACI,MAvHa,0CAyHjB,WACI,OAAOmqQ,+BAEX,WACI,OAAO32U,KAAK24U,iBAAiB5tU,SAAS/K,KAAK44U,sCAE/C,YACI,qDACA54U,KAAK6Z,WAAW4F,SAlIH,eAmIbzf,KAAK64U,cACL74U,KAAK84U,2CAET,WACI94U,KAAK+4U,QAAU,IAAIvB,EAAex3U,KAAK6Z,WAAY7Z,KAAK6kB,OAAOpa,KAAKzK,oCAExE,WACIA,KAAKwsE,OAASxsE,KAAK6kB,OAAO,WAAa,mCAE3C,WACI,OAAO7kB,KAAK6kB,OAAO,aAAsB7kB,KAAKwsE,OAAOlsE,uCAEzD,SAAiB03U,EAAO1oQ,GACpBtvE,KAAKwsE,OAAO5rE,KAAK,CACbo3U,MAAOA,EACP1oQ,OAAQA,uCAGhB,WACI,OAAOtvE,KAAKwsE,OAAOxG,mCAEvB,WACIhmE,KAAK6Z,WAAW4F,SA1JR,UA2JRzf,KAAK+4U,QAAQC,aACb,2DACAh5U,KAAKi5U,eACLj5U,KAAKk5U,+CAET,WACIl5U,KAAKm5U,oBAAsBn5U,KAAKw7N,sBAAsB,kDAE1D,WACIx7N,KAAK+4U,QAAQK,cACbp5U,KAAK+4U,QAAQM,+CAEjB,SAAa3tU,GAET,KADA,2DAAmBA,GACZ1L,KAAKs5U,oBAAoB,CAC5B,IAAIp5U,EAAOF,KAAKu5U,sBAChBv5U,KAAKonP,iBAAiBlnP,EAAK83U,MAAOS,GAAK3vU,EAAAA,EAAAA,GAAO,CAC1CyjB,aAAcvsB,KAAK6kB,OAAO,gBAC1B20T,gBAAiBx5U,KAAK6kB,OAAO,mBAC7B40T,WAAYz5U,KAAK6kB,OAAO,cACxB60T,YAAa15U,KAAK6kB,OAAO,eACzB80T,kBAAmB35U,KAAK6kB,OAAO,qBAC/B+0T,eAAgB55U,KAAK6kB,OAAO,kBAC5B2nD,OAAQxsE,KAAKwsE,QACdtsE,EAAKovE,SAEZtvE,KAAK+4U,QAAQc,YAAY75U,KAAK85U,mDAElC,SAAmBtzT,GACf,IAAIuzT,EAAYvzT,EAAKqkD,UAAYrkD,EAAKqkD,SAASoL,KAC/C,OAAI8jQ,EACO/5U,KAAKg6U,yBAAyBxzT,EAAMuzT,IAE/C,iEAAgCvzT,yCAEpC,SAAuBA,GACnB,IAAIyzT,EAAYzzT,EAAKqkD,SAASqwM,IACzB++D,GAGLj6U,KAAKk6U,iBAAiB1zT,EAAK8xT,YAAa2B,wCAE5C,SAAsB1tT,EAAc/F,GAChC,OAAIA,EAAKqkD,SAASqwM,IACP3uP,EAAaohG,OAASphG,EAAaohG,UAAWjgH,EAAAA,EAAAA,MAEzD,oEAAmC6e,EAAc/F,qCAErD,SAAmBtmB,EAAM+yB,EAAUrxB,EAAOk0C,GAClC,YAAc7iB,GACdjzB,KAAKm5U,oBAAoB,CACrB3rU,KAAMylB,EACNkkE,MAAOv1F,EACP01U,UAAU,IAAUxhS,KAG5B,iEAAyB51C,EAAM+yB,EAAUrxB,iCAE7C,SAAe4kB,GACX,OAAQA,EAAKhZ,MACT,IAAK,SACL,IAAK,YACDxN,KAAK0rP,cACL,MACJ,IAAK,QACD1rP,KAAK+4U,QAAQK,cACb,MACJ,IAAK,aACDp5U,KAAK+4U,QAAQM,mBACb,MACJ,SACI,6DAAqB7yT,gCAGjC,WAAe,WACPpM,GAAU,4DAId,OAHAA,EAAQi9T,2BAA6B,SAAA72U,GACjC,EAAK24U,oBAAoB34U,IAEtB4Z,QA9HTq+T,CAAY0B,EAAAA,GAiIlB1B,EAAI2B,UAAYhD,GAChB92T,EAAAA,EAAAA,SAAkB,QAASm4T,GAC3B,oNClQqB4B,EAAAA,SAAAA,+IACjB,WACI,OAAOr3B,EAAAA,QAAAA,eAAgChjT,KAAKs6U,qDAEhD,WACI,MAAO,CAAC,+CAEZ,WACI,MAAO,CAAC,QAAS,iCAErB,WAAW,WACH96N,GAAQ,wDAcZ,OAbAA,EAAMx4C,QAAU,SAAAggL,GACZ,IACWxsO,EACPwsO,EADAxsO,MAEJ,EAAK+/T,aAAa,CACd//T,MAAOA,EACPggU,gBAAiB,EAAKC,0BAI1B,SADWpoE,EAAAA,EAAAA,GAAmB7yJ,EAAM7/F,QAEpC6/F,EAAM/+C,aAAezgE,KAAKmqU,0BAAyB,kBAAM3qN,EAAM7/F,SAE5D6/F,8BAEX,WACI,MAAO,CACH71F,SAAU,6CAGlB,SAAmBjP,EAAG9Y,GAClB,IAAIO,EAASnC,KAAK0sU,QAClB9qU,EAAQO,EAAOg1S,WAAah1S,EAAO0uU,6CAEvC,WAAmB,WACX6J,GAAe,EACf93B,EAAmB,QACvB,OAAO5iT,KAAK6lP,eAAc,SAAAsC,GACtB,IACW3tO,EAEP2tO,EAFA3tO,MACamgU,EACbxyF,EADAwyF,YAEJ,GAAID,EAAc,CACd,IAAIF,EAAkB,EAAKC,uBAC3B,QAAI,IAAWD,GAAmB,KAAOA,EAAiB,CACtD,IAAI1lQ,EAAmB0lQ,EAAgB7mQ,WACvCivO,EAAmB9tO,EAAiBp9B,OAChC,YAAco9B,EAAiBp9B,SAC/BgjS,GAAe,EACf,EAAK71T,OAAO,YAAY,GACxBiwD,EAAiBmvJ,SAASzlL,MAAK,SAAAoqM,GAC3B,IACYlxM,EACRkxM,EADAlxM,OAEJ,EAAK7yB,OAAO,YAAY,GAExB,WADA+9R,EAAmBlrQ,IACaijS,EAAYtpT,QAC5CqpT,GAAe,OAK/B,UAAY93B,GAAoBpoS,EAAMnT,iBACtCmT,EAAMpT,yDAGd,YACI,oEACApH,KAAKqqU,WAAW,WAAYrqU,KAAK46U,oBACjC56U,KAAKu6U,aAAev6U,KAAK66U,gDAE7B,YACI,2DACA,IAAIlhT,EAAW35B,KAAK6Z,WAAWwC,KAAK,sBAChCy+T,EAAYnhT,EAAS5uB,WAAWnF,OAAO,wBACvCmyG,EAASp+E,EAAS5uB,WAAWnF,OAAO,2BACpCk1U,EAAUx6U,SACVw6U,EAAUr7T,SAAS,qBACnBq7T,EAAU/6T,OAAOg4F,GACjBp+E,EAASo8N,YAAY+kF,sCAG7B,SAAmB1gU,GACf,yEAAgC69M,EAAAA,EAAAA,GAAS,GAAI79M,EAAS,CAClDgG,aAAchG,EAAQ2gU,2CAG9B,WACI,IAAIlhU,EAAW7Z,KAAK6Z,WAChB2gU,EAAkBx6U,KAAK6kB,OAAO,mBAClC,YAAO,IAAW21T,GAAmB,KAAOA,EAAkBA,EAAkBx3B,EAAAA,QAAAA,UAA2BnpS,EAAU7Z,KAAKwrP,gBAAgB3xO,sCAE9I,WACI,OAAO7Z,KAAKw7N,sBAAsB,UAAW,CACzC6b,kBAAmB,CAAC,4CAG5B,SAAexyN,GACX,GACS,YADDA,EAAOrX,KAEPxN,KAAKu6U,aAAev6U,KAAK66U,sBAEjC,6DAAqBh2T,SAxGRw1T,CAAsB56N,EAAAA,2HCJvC60K,EAAY,CAAC,eAAgB,WAAY,UAsChC0mD,EAAb,0CACI,WAAYx7N,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GAFE,EADvB,uCAKI,WACI,OAAOk7K,EAAAA,EAAAA,GAAmBryQ,KAAKw/G,MAAMmO,UAN7C,oBAQI,WACI,MAAO,SAAW3tH,KAAKw/G,MAAMr5F,SAAW,gBAAkB,KATlE,yBAWI,WACI,IAAI80T,GAAiB,QACjB,WAAW,GACVj7U,KAAK2mI,WAAa3mI,KAAK2mI,UAGhBhZ,EACR3tH,KAAKw/G,MADLmO,OAEJ,MAAI,WAAa3tH,KAAKk7U,YACXlH,EAAAA,EAAAA,IAAe/7G,EAAAA,EAAAA,GAAS,GAAIgjH,GAAL,UACzB,WAAWr/S,OAAO+xF,IAAU,KAGjC,aAAe3tH,KAAKk7U,YACblH,EAAAA,EAAAA,IAAe/7G,EAAAA,EAAAA,GAAS,GAAIgjH,GAAL,UACzBp1Q,OAAO8nD,KAAYA,KAGxB,UAAY3tH,KAAKk7U,YACVlH,EAAAA,EAAAA,GAAeiH,GAEtB,QAAUj7U,KAAKk7U,YACRlH,EAAAA,EAAAA,IAAe/7G,EAAAA,EAAAA,GAAS,GAAIgjH,EAAgB,CAC/C,eAAe,KAGhB,KArCf,0BAuCI,WACI,IAAIrL,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KAzCnE,oBA4CI,WACI,IA9CU6mD,EA8CN37N,EAAQx/G,KAAKw/G,MACjB,OAjEkB,SAAAwnI,GACtB,IACmBnkG,EAMfmkG,EANAnkG,cADJ,EAOImkG,EALAxnI,MACkB47N,EAHtB,EAGQ36Q,aACQktD,EAJhB,EAIQA,OAEQutN,EACZl0F,EADAk0F,WAEJ,OAAOt6M,EAAAA,EAAAA,IAAe,CAAC,WAAas6M,IAAcpL,EAAAA,EAAAA,IAAY,EAAG,IAAKjtL,GAAgB,aAAeq4L,IAAcpL,EAAAA,EAAAA,IAAY,EAAG,IAAKjtL,GAAgB,UAAYq4L,IAAcpL,EAAAA,EAAAA,IAAY,EAAG,MAAOjtL,EAAe,KAAM,EAAG,CAC3Ns5D,IAAK,GACLv6I,IAAK+rD,IACLytN,IAAgBtL,EAAAA,EAAAA,IAAY,EAAG,IAAKjtL,EAAeu4L,EAAa,IAAK,IAAK,GAqDnErL,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,EAAO,CACvB/+C,cAjDE06Q,EAiDwB37N,EAAM/+C,aAjDd06Q,IAAiBA,EAAajO,aAAe,SAAA1tN,GAAK,OAAIkvN,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGiH,GAAcljH,EAAAA,EAAAA,GAAS,GAAIz4G,MAAW27N,MAmDzJD,WAAYl7U,KAAKk7U,WACjBv0M,SAAU3mI,KAAK2mI,SACfkc,cAAe7iJ,KAAK6iJ,cACpBgtL,eAAgB7vU,KAAK6vU,qBArDjC,GAA0BzwN,EAAAA,IAyD1B47N,EAAK9N,aA9DkB,CACnB/mT,SAAU,OACVwnG,OAAQ,8BCnCR2mK,EAAY,CAAC,UAcN+mD,EAAiB,CACxB/rQ,OAAQxoE,OAAOqtM,OAAO,KAEbmnI,EAAb,0CACI,WAAY97N,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GACb,EAAK84O,cAAgB,GACrB,EAAKsL,SAAW,EAAKA,SAAS9wU,MAAd,WAChB,EAAK+wU,SAAW,EAAKA,SAAS/wU,MAAd,WALD,EADvB,sCAQI,WAAgB,WACZ,YAAI,IAAWzK,KAAKiwU,cAAcwL,UACvBz7U,KAAKiwU,cAAcwL,UAEvBz7U,KAAKiwU,cAAcwL,UAAa,WACnC,IACYnsQ,EACR,EAAKkwC,MADLlwC,OAEJ,OAAOosQ,EAAAA,EAAAA,IAAWpsQ,GAJiB,KAZ/C,0BAmBI,WACI,IAAIsgQ,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KArBnE,sBAwBI,SAAStrK,IACLuyN,EAAAA,EAAAA,IAASv7U,KAAKy7U,UAAWzyN,KAzBjC,sBA2BI,SAASA,IACLwyN,EAAAA,EAAAA,IAASx7U,KAAKy7U,UAAWzyN,KA5BjC,iCA8BI,SAAoB1J,EAAWC,EAAW5kG,GAClC3a,KAAKw/G,MAAMlwC,SAAWgwC,EAAUhwC,SAChCtvE,KAAKiwU,cAAcwL,eAAY,KAhC3C,oBAmCI,WACI,IAxCkBzvU,EAwCdwzG,EAAQx/G,KAAKw/G,MACjB,OAzCkBxzG,EAyCE,CAChBwzG,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBi8N,UAAWz7U,KAAKy7U,UAChB5L,eAAgB7vU,KAAK6vU,iBA5CEnB,EAAAA,EAAAA,KAAeoB,EAAAA,EAAAA,IAAY,EAAG,MAAO,eAAgB,KAAM,GAAG73G,EAAAA,EAAAA,GAAS,GAAIjsN,EAAM6jU,sBAIpH,GAA+BzwN,EAAAA,IA4C/Bk8N,EAAUpO,aAAemO,sCC7DrB/mD,EAAY,CAAC,YAAa,qBAAsB,WAAY,YAAa,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,OAAQ,eAAgB,eAAgB,UAAW,YAAa,WAAY,UAAW,aAAc,cAAe,WAAY,WAAY,eAAgB,OAAQ,OAAQ,eAAgB,oBAAqB,UAAW,SA6C7WqnD,EAAe,CAAC,WAAY,OAAQ,aAiE7BC,EAAc90U,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B/C,EAAAA,GAAkBtmU,OAAOqpU,0BAA0B,CAClJ9C,oBAAoB,EACpBE,mBAAmB,EACnB5tT,KAAM,GACNk8T,aAAc,OACd90Q,YAAa,YACbpkE,KAAM,GACNghB,KAAM,SACNm4T,cAAc,EACdC,mBAAmB,EACnB37T,aAActZ,OAAOqtM,OAAO,QAErB6nI,GAAqBjnF,EAAAA,EAAAA,IAAyB,CAAC,CACtD3W,OAAQ,iBAAM,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAC1D/tN,QAAS,CACLkzT,mBAAmB,IAExB,CACClvF,OAAQ,kBAAM69F,EAAAA,EAAAA,aAAW39F,EAAAA,EAAAA,aACzBlkO,QAAS,CACL0hU,cAAc,MASlB73T,EAAc,SAAAk3T,GAAY,OAAIA,IAAiBA,EAAajO,aAAe,SAAA1tN,GAAK,OAAIkvN,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGiH,GAAcljH,EAAAA,EAAAA,GAAS,GAAIz4G,MAAW27N,IACxJe,EAAb,0CACI,WAAY18N,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GACb,EAAKglP,YAAatN,EAAAA,EAAAA,MAClB,EAAKuN,cAAevN,EAAAA,EAAAA,MACpB,EAAKwN,gBAAiBxN,EAAAA,EAAAA,MACtB,EAAKD,WAAYC,EAAAA,EAAAA,MACjB,EAAKoB,cAAgB,GACrB,EAAKlvU,MAAQ,EAAKA,MAAM0J,MAAX,WACb,EAAK0sS,SAAW,EAAKA,SAAS1sS,MAAd,WAChB,EAAKomU,WAAa,EAAKA,WAAWpmU,MAAhB,WAClB,EAAK6xU,aAAe,EAAKA,aAAa7xU,MAAlB,WACpB,EAAK6mU,iBAAmB,EAAKA,iBAAiB7mU,MAAtB,WACxB,EAAKgnU,SAAW,EAAKA,SAAShnU,MAAd,WAChB,EAAKinU,WAAa,EAAKA,WAAWjnU,MAAhB,WAClB,EAAK8xU,cAAgB,EAAKA,cAAc9xU,MAAnB,WACrB,EAAKu+T,QAAU,EAAKA,QAAQv+T,MAAb,WAhBA,EADvB,4CAmBI,WACI,MAAO,CAAC,IAAIy2G,EAAAA,GAAclhH,KAAKs8U,aAAc,CAACt8U,KAAKw/G,MAAMg9N,SAAUx8U,KAAKw/G,MAAMu8N,oBAAqB,IAAI76N,EAAAA,GAAclhH,KAAKsxU,iBAAkB,CAACtxU,KAAKw/G,MAAM77F,QAAQ49F,EAAAA,EAAAA,SApBxK,2BAsBI,WACI,IAAI2tN,EAAiB6C,EACrB,QAAU7C,EAAkBlvU,KAAK2/G,SAAS,UAAO,IAAWuvN,GAA2BA,EAAgB7wT,OAAO,CAACre,KAAKw/G,MAAMg9N,SAAUx8U,KAAKw/G,MAAMu8N,oBAC/I,QAAUhK,EAAmB/xU,KAAK2/G,SAAS,UAAO,IAAWoyN,GAA4BA,EAAiB1zT,OAAO,CAACre,KAAKw/G,MAAM77F,SAzBrI,0BA2BI,WAAe,WACX,EAGI3jB,KAAKw/G,MAFKg9N,EADd,EACIA,SAGJ,GAJA,EAEIT,mBAEqBS,EAOrB,OANAnrT,EAAAA,GAAAA,GAASrxB,KAAKq8U,eAAe/9F,SAAS,SAAA9jO,GAAK,OAAIgiU,EAAS,CACpDhiU,MAAOA,EACPmgU,YAAa,EAAK0B,eAAe/9F,YACjC,CACAvE,UAAW,eAER,kBAAM1oN,EAAAA,GAAAA,IAAU,EAAKgrT,eAAe/9F,QAAS,CAChDvE,UAAW,kBAxC3B,8BA6CI,WAIQ,SADA/5O,KAAKw/G,MADL77F,MAGAs+M,EAAAA,EAAAA,IAAW,QAAS,OAAQ,OAAQ,OAAQ,iCAlDxD,sBAqDI,SAASznN,GAGDxa,KAAKw/G,MADLs8N,cAEY97U,KAAKo8U,aAAa99F,QAAQk9F,SAAS,CAC/C17U,QAASE,KAAKm8U,WAAW79F,QACzB9jO,MAAOA,MA3DnB,wBA8DI,SAAWA,GAGHxa,KAAKw/G,MADLs8N,cAEY97U,KAAKo8U,aAAa99F,QAAQi9F,SAAS,CAC/Cz7U,QAASE,KAAKm8U,WAAW79F,QACzB9jO,MAAOA,MApEnB,2BAuEI,SAAcA,GACV,MAGIxa,KAAKw/G,MAFIx4C,EADb,EACIA,QACmB+0Q,EAFvB,EAEIA,kBAEJ,OAAS/0Q,QAAW,IAAWA,GAAmBA,EAAQ,CACtDxsD,MAAOA,IAEXuhU,GAAqB/7U,KAAKq8U,eAAe/9F,QAAQjtN,UA/EzD,qBAiFI,SAAQ7wB,GACJ,IACeq3G,EACX73G,KAAKw/G,MADL3H,UAGS2wL,EAGThoS,EAHAgoS,QACepwL,EAEf53G,EAFA43G,cACOl7D,EACP18C,EADA08C,MAEAruC,EAAS,OAASgpG,QAAa,IAAWA,OAAY,EAASA,EAAUr3G,GAC7E,GAAI,OAASqO,QAAU,IAAWA,GAAUA,EAAOk3B,OAC/C,OAAOl3B,EAEP,UAAY25R,GAAW,UAAYtrP,GAAS,UAAYsrP,GAAW,UAAYtrP,IAC/Ek7D,EAAc/wG,iBACdrH,KAAKu8U,cAAcnkO,MAhG/B,gBAoGI,WACI,MAGIp4G,KAAKw/G,MAFC7/F,EADV,EACIA,KACMhd,EAFV,EAEIA,KAEA0gJ,EAAQ,OAAS1gJ,QAAQ,IAAWA,EAAOA,EAAO,GACtD,IAAKA,GAAQgd,EAET,QADiB0yP,EAAAA,EAAAA,GAAmB1yP,IAEhC,IAAK,QAED0jI,GADqB1jI,EAAKm8G,SAAS,WAAa,qDAAqD54F,KAAKvjB,GAClFA,EAAK+oC,QAAQ,mBAAoB,MAAQ,GACjE,MACJ,IAAK,SACD26F,EAAQ85K,EAAAA,EAAAA,QAA2BtwD,EAAAA,EAAAA,IAASltP,GAAM,KAAUA,EAC5D,MACJ,IAAK,WACD0jI,EAAQ1jI,EACR,MACJ,IAAK,MACD,IAAI88T,EAAoBC,EAExBr5L,EADY,QAAUo5L,EAAqB,QAAUC,EAAoB,wBAAwBnuU,KAAKoR,UAAU,IAAW+8T,OAAoB,EAASA,EAAkB,UAAO,IAAWD,EAAqBA,EAAqB,GAIlP,OAAOxkH,EAAAA,EAAAA,GAAS,CACZzlF,KAAM,UACP6Q,EAAQ,CACPA,MAAOA,GACP,MAjIZ,sBAmII,WACI,OAlOY,SAAAr3I,GAAS,MAEf2T,EAKN3T,EALA2T,KACck8T,EAId7vU,EAJA6vU,aACa90Q,EAGb/6D,EAHA+6D,YACMpkE,EAENqJ,EAFArJ,KACMghB,EACN3X,EADA2X,KAEAg5T,EAAqB51Q,GAAe40Q,EAAa7/M,SAAS/0D,GAC1DgtQ,GAAU,GACV,aAAa,IADH,SAET,kBAAkBn4S,OAAO+gT,EAAqB51Q,EAAc,cAAe,IAFlE,SAGT,aAAanrC,OAAO,OAASjY,QAAQ,IAAWA,EAAOA,EAAO,WAAY,IAHjE,SAIV,uBAAwBhhB,IAJd,SAKV,uBAAwBgd,IALd,SAMV,uBAAwB,SAAWk8T,GANzB,GAQd,OAAO7H,EAAAA,EAAAA,GAAeD,GAiNXiB,CAAch1U,KAAKw/G,SApIlC,sBAsII,WACI,MAGIx/G,KAAKw/G,MAFC7/F,EADV,EACIA,KACMgE,EAFV,EAEIA,KAEJ,OAAIhE,GAAQ,SAAWgE,GACX,OAAShE,QAAQ,IAAWA,EAAOA,EAAO,KAAO,OAEtD,KA9If,2BAgJI,WAAsB,WAClB,YAAI,IAAW3f,KAAKiwU,cAAc2M,gBACvB58U,KAAKiwU,cAAc2M,gBAEvB58U,KAAKiwU,cAAc2M,gBAAmB,WACzC,MAII,EAAKp9N,MAHC7/F,EADV,EACIA,KACMhd,EAFV,EAEIA,KACMghB,EAHV,EAGIA,KAEJ,OAAQhhB,GAAQgd,GAAQ,SAAWgE,EAAO,CACtCk5T,YAAY,EACZC,kBAAkB,EAClBC,oBAAqB,GACrB,GAVqC,KApJrD,8BAiKI,WACI,MAII/8U,KAAKw/G,MAHC7/F,EADV,EACIA,KACcS,EAFlB,EAEIA,aACMzd,EAHV,EAGIA,KAEJ,OAAOs1N,EAAAA,EAAAA,GAAS,CACZt4M,KAAMA,EACNhd,KAAMA,GACPyd,KA1KX,0BA4KI,WACI,IAAIwvT,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KA9KnE,mBAiLI,WACIt0R,KAAK4uU,UAAUtwF,QAAQv9O,UAlL/B,sBAoLI,WACIf,KAAK4uU,UAAUtwF,QAAQ64D,aArL/B,wBAuLI,WACIn3S,KAAK4uU,UAAUtwF,QAAQuyF,eAxL/B,iCA0LI,SAAoBvxN,EAAWC,EAAW5kG,IACtC,mEACI3a,KAAKw/G,MAAM7/F,OAAS2/F,EAAU3/F,MAAQ3f,KAAKw/G,MAAM78G,OAAS28G,EAAU38G,MAAQ3C,KAAKw/G,MAAM77F,OAAS27F,EAAU37F,OAC1G3jB,KAAKiwU,cAAc2M,qBAAkB,KA7LjD,oBAgMI,WACI,IAAIp9N,EAAQx/G,KAAKw/G,MACjB,OA7QkB,SAAA9lG,GACtB,MAMIA,EAAU8lG,MALAz0G,EADd,EACIA,SACc8wU,EAFlB,EAEIA,aACcT,EAHlB,EAGI36Q,aACUu8Q,EAJd,EAIIrzT,SACMhnB,EALV,EAKIA,KAEAs6U,GAAcvjU,EAAU8lG,MAAM71F,WAAa5e,GAAY,KAAOpI,EAC9Du6U,EAAa,SAAWrB,EACxBsB,GAAiBzjU,EAAU8lG,MAAM71F,WAAa5e,IAAa2O,EAAU0jU,YAAc1jU,EAAU8lG,MAAM/+C,gBAAiByzQ,EAAAA,EAAAA,IAAqB,EAAG8G,EAAM,CAClJrtN,OAAQj0G,EAAU0jU,WAClBj3T,SAAU01T,EACVp7Q,aAAc26Q,IAElB,OAAO1M,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGpyB,EAAAA,IAAQ7pF,EAAAA,EAAAA,GAAS,CAC3Dw7G,UAAW/5T,EAAU8lG,MAAMi0N,UAC3BpG,mBAAoB3zT,EAAU8lG,MAAM6tN,mBACpCpB,KAAMvyT,EAAUuyT,KAChB59T,UAAWqL,EAAU8lG,MAAMnxG,UAC3B4yH,QAASvnH,EAAUgT,WACnBthB,SAAUsO,EAAU8lG,MAAMp0G,SAC1BkiU,kBAAmB5zT,EAAU8lG,MAAM8tN,kBACnC/7T,OAAQmI,EAAU8lG,MAAMjuG,OACxBqc,KAAMlU,EAAU8lG,MAAM5xF,KACtB2/S,kBAAmB7zT,EAAU8lG,MAAM+tN,kBACnCkE,SAAU/3T,EAAU+3T,SACpBzqQ,QAASttD,EAAU6iU,cACnB7K,WAAYh4T,EAAUg4T,WACtB75N,UAAWn+F,EAAUsvT,QACrBj3P,WAAYr4D,EAAU8lG,MAAMztC,WAC5B+sE,SAAUplI,EAAU8lG,MAAMs/B,SAC1Bj2I,QAAS6Q,EAAU8lG,MAAM32G,QACzByI,MAAOoI,EAAU8lG,MAAMluG,OACxBoI,EAAUm2T,eAAgB,CACzB9kU,UAAU+kU,EAAAA,EAAAA,IAAY,EAAG,MAAO,oBAAqB,CAACp2T,EAAU8lG,MAAM71F,UAAYqzT,EAAe,CAC7FnvU,KAAM6L,EAAU2jU,sBACf3jU,EAAU8lG,MAAM71F,UAAY5e,EAAUmyU,GAAcC,EAAeF,IAAcnN,EAAAA,EAAAA,IAAY,EAAG,OAAQ,iBAAkBntU,EAAM,IAAKu6U,GAAcC,EAAezjU,EAAU8lG,MAAMu8N,oBAAqBjM,EAAAA,EAAAA,IAAY,GAAI,QAAS,yBAA0B,KAAM,EAAG,CACpQnsT,KAAM,SACNm7H,UAAW,GACZ,KAAMplI,EAAU2iU,gBAAiB3iU,EAAU8lG,MAAMs8N,eAAgB5H,EAAAA,EAAAA,IAAqB,EAAGoH,EAAW,CACnGhsQ,OAAQ51D,EAAUkjU,iBACnB,KAAMljU,EAAU0iU,eAAgB,EAAG,KAAM,KAAM1iU,EAAUyiU,cAC5D,KAAMziU,EAAUk1T,YAkOTmB,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,EAAO,CACvB71F,SAAU1F,EAAYu7F,EAAM71F,UAC5B82C,aAAcx8C,EAAYu7F,EAAM/+C,gBAEpC07Q,WAAYn8U,KAAKm8U,WACjBE,eAAgBr8U,KAAKq8U,eACrBD,aAAcp8U,KAAKo8U,aACnBxN,UAAW5uU,KAAK4uU,UAChB6C,SAAUzxU,KAAKyxU,SACfC,WAAY1xU,KAAK0xU,WACjB6K,cAAev8U,KAAKu8U,cACpBvT,QAAShpU,KAAKgpU,QACdiD,KAAMjsU,KAAKisU,KACXv/S,WAAY1sB,KAAK0sB,WACjB0wT,WAAYp9U,KAAKo9U,WACjBR,gBAAiB58U,KAAK48U,gBACtBS,mBAAoBr9U,KAAKq9U,mBACzBxN,eAAgB7vU,KAAK6vU,qBApNjC,GAA4B5vN,EAAAA,IAwN5Bi8N,EAAOhP,aAAepmU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0ByL,GAAc90U,OAAOqpU,2BAA0Bl4G,EAAAA,EAAAA,GAAS,IAAI+qB,EAAAA,EAAAA,IAAsBg5F,OAClL,IAAIsB,EAAuB,OCjWNpB,EAAAA,SAAAA,mIACjB,WACI,IAAI18N,GAAQ,wDAEZ,OADAA,EAAM3H,UAAY73G,KAAKu9U,oBAAoB/9N,EAAM3H,WAC1C2H,uBAEX,WAAQ,MACAg+N,EACJ,OAAO,QAAUA,EAAgBx9U,KAAK0sU,eAAY,IAAW8Q,OAAgB,GAAS,EAAAA,GAAcz8U,MAAd,QAAuBgH,mCAEjH,WAAW,MACH01U,EACJ,OAAO,QAAUA,EAAiBz9U,KAAK0sU,eAAY,IAAW+Q,OAAiB,GAAS,EAAAA,GAAetmC,SAAf,QAA2BpvS,qCAEvH,WAAa,MACL21U,EACJ,OAAO,QAAUA,EAAiB19U,KAAK0sU,eAAY,IAAWgR,OAAiB,GAAS,EAAAA,GAAe7M,WAAf,QAA6B9oU,4CAEzH,WACI,MAAO,CACHi/D,QAAS,CACLqwK,kBAAmB,CAAC,aAExBmlG,SAAU,4BAGlB,WACI,MAAO,CACH7T,OAAQ,GACRD,UAAW,GACX79Q,SAAU,CAAC,YACXp0B,UAAW,CAAC,WAAY,gBACxB+oF,MAAO,CAAC,qBAAsB,oBAAqB,OAAQ,eAAgB,UAAW,WAAY,UAAW,cAAe,WAAY,eAAgB,OAAQ,OAAQ,eAAgB,oBAAqB,eAAgB,YAAa,YAAa,WAAY,oBAAqB,SAAU,OAAQ,YAAa,aAAc,WAAY,UAAW,sCAGpW,WACI,OAAOm+N,QApCMzB,CAAe0B,IAuCpCt9T,EAAAA,EAAAA,SAAkB,WAAY47T,GAC9BA,EAAOlvF,eD0TA,SAAwBv5K,GAC3B6pQ,EAAqB18U,KAAK6yE,GAC1ByoQ,EAAOhP,aAAepmU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B+L,EAAOhP,cAAepmU,OAAOqpU,2BAA0BntF,EAAAA,EAAAA,IAAsBg5F,IAAsBl1U,OAAOqpU,2BAA0BntF,EAAAA,EAAAA,IAAsBs6F,OEzW9P,sTCgBMO,EAAAA,SAAAA,6IACF,WACI,OAAO/0U,EAAAA,EAAAA,IAAO,kEAA4B,CACtCk+D,QAAS,KACT82Q,eAAgB,KAChBn6T,KAAM,SACNojD,YAAa,WACbpkE,KAAM,yCAGd,WACI,OAAO,oEAA6Bi5B,OAAO,CAAC,CACxCwiN,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACLuJ,KAAM,UACNojD,YAAa,gCAIzB,YACI,qDACA/mE,KAAK+9U,2CAET,WACI/9U,KAAKu6U,aAAev6U,KAAKw7N,sBAAsB,WAC/Cx7N,KAAKg+U,oBAAsBh+U,KAAKw7N,sBAAsB,6CAE1D,YACI,2DACAx7N,KAAK6Z,WAAW4F,SAvCO,yBAwCvBzf,KAAKi+U,iBACLj+U,KAAKk+U,+CAET,WAAiB,WACb,EAIIl+U,KAAK6kB,SAHOktD,EADhB,EACIA,WACMpuD,EAFV,EAEIA,KACaojD,EAHjB,EAGIA,YAEJ/mE,KAAKm+U,YAAcn+U,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUwuU,EAAAA,QAAQ,CACzD5O,mBAAmB,EACnB3tT,KAAMoyD,EAAa,eAAiB,cACpC/K,QAAS,SAAAxmE,GACL,EAAK+5U,aAAa,CACdl/L,WAAY,EACZ7gI,MAAOha,KAGfmjB,KAAMA,EACNojD,YAAaA,EACboiL,mBAAoB,KAExB,IAAIi1F,EAAcp+U,KAAKm+U,YAAYtkU,WAAW4F,SA3DT,uCA2D0DA,SA7DzD,wCA8DtCzf,KAAKq+U,YAAcr+U,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUwuU,EAAAA,QAAQ,CACzD5O,mBAAmB,EACnB3tT,KAAMoyD,EAAa,cAAgB,eACnC/K,QAAS,SAAAxmE,GACL,EAAK+5U,aAAa,CACdl/L,UAAW,EACX7gI,MAAOha,KAGfmjB,KAAMA,EACNojD,YAAaA,EACboiL,mBAAoB,KAExB,IAAIm1F,EAAct+U,KAAKq+U,YAAYxkU,WAAW4F,SAxEb,mCAwE0DA,SA1EzD,oCA2ElCzf,KAAKu+U,SAAWv+U,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAS+R,SAvEX,8BAuE8Dy8T,EAAAA,QAAQ,CACxG5O,mBAAmB,EACnBtmQ,QAAS,SAAAxmE,GACL,EAAKw9U,oBAAoB,CACrBxjU,MAAOha,KAGfmjB,KAAMA,EACNojD,YAAaA,EACbp9C,SAAU,SAACjP,EAAGoG,GAGN,EAAK+D,SADLliB,KAEwB8K,MAAM,OACjBxN,SAAQ,SAAAu+U,IACrB9wU,EAAAA,EAAAA,GAAEoT,GAASf,QAAOrS,EAAAA,EAAAA,GAAE,UAAU+R,SArF1B,kBAqFsD9c,KAAK67U,QAGvEr1F,mBAAoB,KAExB,IAAIs1F,EAAWz+U,KAAKu+U,SAAS1kU,WAC7B7Z,KAAK6Z,WAAWkG,OAAOq+T,EAAaK,EAAUH,iCAElD,WACIt+U,KAAKu+U,SAAS15T,OAAO,OAAQ7kB,KAAK6kB,OAAO,qCAE7C,SAAa65T,EAAc98U,GACvB,IACIO,EAASnC,KADI,IAAM0+U,EAAe,UAElCv8U,IACAA,EAAO0iB,OAAO,WAAYjjB,GAC1BO,EAAO0X,WAAW28M,YAvGe,sCAuGqC50N,kCAG9E,SAAe4kB,GACX,GACS,SADDA,EAAKhZ,KAELxN,KAAKk+U,sBAGL,6DAAqB13T,SA7G/Bq3T,CAAkB/7B,EAAAA,SAiHxB,kHCrGc3oE,EACV2oE,EAAAA,QAAAA,SAQA68B,EAA4B,yBAE5BC,EAA+B,4BAC/BC,EAA+B,4BAC/BC,EAAkC,+BAClCC,EAAwC,qCACxCC,EAAsC,mCACtCC,EAAkC,+BAClCC,EAAgC,6BAChCC,EAAgC,6BAChCC,EAAyB,WAAWxjT,OAXF,+BAW0C,KAC5EyjT,GAA8BjxH,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgB,cAC3Dq1C,GAAmClxH,EAAAA,EAAAA,cAAamxH,EAAAA,EAAqB,cACrEC,EAA0B,iBA6U9B,EA5Ue19B,EAAAA,QAAAA,QAAe,CAC1B29B,aAAc,WACV,MAAO,QAEXhtH,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BrtL,KAAM,IAAIoqC,KACVg/P,mBAAmB,EACnBoS,aAAc,KACdC,cAAe,KACfC,YAAa,KACbC,YAAa,KACb3lL,SAAU,EACV4lL,SAAU,EACVC,qBAAqB,EACrBC,WAAY,kBAAM,IAAI1xQ,SAG9Bm8K,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAKigV,eAETA,YAAa,WACTjgV,KAAK6Z,WAAWkG,OAAO/f,KAAKkgV,gBAC5BlgV,KAAKmgV,8BACLngV,KAAKogV,cACLpgV,KAAKqgV,uBACLrgV,KAAKsgV,eACLtgV,KAAKugV,eACLvgV,KAAKwgV,iBAETN,aAAc,WACVlgV,KAAKygV,SAAU/yU,EAAAA,EAAAA,GAAE,WACjB,IAAIgzU,EAAsBvjB,EAAAA,EAAAA,OAA2B,6BACjDwjB,EAAuBxjB,EAAAA,EAAAA,OAA2B,8BAKtD,OAJAn9T,KAAK4gV,QAAQ,CACTv9L,MAAO,GAAGznH,OAAO8kT,EAAqB,MAAM9kT,OAAO+kT,GACnDnuM,KAAM,QACPxyI,KAAKygV,SACDzgV,KAAKygV,SAEhBL,YAAa,WACTpgV,KAAK6gV,OAAQnzU,EAAAA,EAAAA,GAAE,WAAWuqB,SAASj4B,KAAKygV,SAKxC,IAJA,IAAIK,EAAU,CACVC,SAAU/gV,KAAKghV,oBACfC,aAAc,MAETC,EAAW,EAAGhnL,EAAWl6J,KAAK6kB,OAAO,YAAaq8T,EAAWhnL,EAAUgnL,IAAY,CACxFJ,EAAQ17P,IAAMplF,KAAKmhV,aACnB,IAAK,IAAIC,EAAW,EAAGtB,EAAW9/U,KAAK6kB,OAAO,YAAau8T,EAAWtB,EAAUsB,IAC5EphV,KAAKqhV,YAAYP,EAASM,GAE9BphV,KAAKshV,sBAAsBR,KAGnCK,WAAY,WACR,IAAI/7P,EAAMw0I,EAAAA,EAAAA,cAAyB,MAGnC,OAFA55N,KAAK4gV,QAAQ,OAAQ,OAAOlzU,EAAAA,EAAAA,GAAE03E,IAC9BplF,KAAK6gV,MAAMhhU,IAAI,GAAG23D,YAAY4N,GACvBA,GAEXm8P,YAAa,SAASR,EAAUS,GAC5B,IAAIh2J,EAAOouC,EAAAA,EAAAA,cAAyB,MAChC6nH,GAAQ/zU,EAAAA,EAAAA,GAAE89K,GAQd,OAPAA,EAAKn9K,UAAYrO,KAAK0hV,oBAAoBX,EAAUS,GACpDh2J,EAAK1qL,aAAa,aAAc6gV,EAAAA,EAAAA,cAAgCZ,EAAUa,EAAAA,QAAAA,wBAC1Ex3G,EAAAA,EAAAA,IAAY5+C,EAAMg0J,EAAyBuB,GAC3C/gV,KAAK4gV,QAAQ,CACTpuM,KAAM,WACN6Q,MAAOrjJ,KAAK6hV,iBAAiBd,IAC9BU,GACI,CACHj2J,KAAMA,EACNi2J,MAAOA,IAGfJ,YAAa,SAASt/S,EAAQy/S,GAC1B,IACcT,EAGVh/S,EAHAg/S,SACcE,EAEdl/S,EAFAk/S,aACK77P,EACLrjD,EADAqjD,IAEA67P,GACAW,EAAAA,QAAAA,eAA6BX,EAAcF,GAE/Ch/S,EAAOk/S,aAAeF,EACtB,MAGI/gV,KAAKuhV,YAAYR,EAAUS,GAFrBh2J,EADV,EACIA,KACOi2J,EAFX,EAEIA,MAEA/B,EAAe1/U,KAAK6kB,OAAO,iBAC/BnX,EAAAA,EAAAA,GAAE03E,GAAKrlE,OAAOyrK,GACVk0J,EACAA,EAAangU,OAAOvf,KAAK8hV,yBAAyBf,EAAUS,EAAWC,IAEvEj2J,EAAKjrH,UAAYvgE,KAAK+hV,aAAahB,GAEvCh/S,EAAOg/S,SAAW/gV,KAAKgiV,iBAAiBjB,IAE5CW,oBAAqB,SAASX,EAAUS,GACpC,IAAInzU,EAxHc,mBAgJlB,OAvBIrO,KAAKiiV,aAAalB,KAClB1yU,GAAa,IAAIutB,OAnHF,uBAqHf57B,KAAKkiV,kBAAkBnB,IAAa/gV,KAAKmiV,eAAepB,MACxD1yU,GAAa,IAAIutB,OAAO+iT,IAExB3+U,KAAKoiV,aAAarB,KAClB1yU,GAAa,IAAIutB,OAjIG,2BAmIpB,UAAY57B,KAAK6kB,OAAO,mBACpB,IAAM28T,IACNnzU,GAAa,IAAIutB,OAjIM,kCAmIvB4lT,IAAcxhV,KAAK6kB,OAAO,YAAc,IACxCxW,GAAa,IAAIutB,OAnII,gCAqIrB57B,KAAKqiV,mBAAmBtB,KACxB1yU,GAAa,IAAIutB,OAzID,2BA2IhB57B,KAAKsiV,iBAAiBvB,KACtB1yU,GAAa,IAAIutB,OA3IH,0BA8IfvtB,GAEXyzU,yBAA0B,SAASf,EAAUS,EAAWC,GACpD,IAAIc,EAAaxB,aAAoBzyQ,KAIrC,MAAO,CACHtiE,MAAO,CACHrJ,KALG4/U,EAAaviV,KAAK+hV,aAAahB,GAAYA,EAM9C78S,KALGq+S,EAAaxB,OAAW,EAM3Bn0E,KALG5sQ,KAAKy/U,gBAOZ3/T,WAAWs2M,EAAAA,EAAAA,GAAiBqrH,GAC5B5gV,MAAO2gV,IAGfhB,cAAe,WAAW,WACtBxgV,KAAKwiV,yBACL7sH,EAAAA,EAAAA,IAAiB31N,KAAKygV,QAASpB,GAC/B1pH,EAAAA,EAAAA,GAAgB31N,KAAKygV,QAASpB,EAA6BD,GAAwB,SAAA5+U,IAC1EkN,EAAAA,EAAAA,GAAElN,EAAEkO,eAAeqhN,SAAS4uH,IAC7B,EAAK8D,iBAAiB,CAClBjoU,MAAOha,EACPoB,OAAO8L,EAAAA,EAAAA,GAAElN,EAAEkO,eAAeb,KAAK2xU,QAI3C7pH,EAAAA,EAAAA,IAAiB31N,KAAKygV,QAASnB,GAC3B,UAAYt/U,KAAK6kB,OAAO,mBACxB7kB,KAAK0iV,yBACL/sH,EAAAA,EAAAA,GAAgB31N,KAAKygV,QAASnB,EAAkCF,GAAwB,SAAA5+U,IAC/EkN,EAAAA,EAAAA,GAAElN,EAAEkO,eAAeqhN,SAAS4uH,IAC7B,EAAKgE,iBAAiB,CAClBnoU,MAAOha,EACPoB,OAAO8L,EAAAA,EAAAA,GAAElN,EAAEkO,eAAeb,KAAK2xU,UAMnDgD,uBAAwB,WACpBxiV,KAAKyiV,iBAAmBziV,KAAKw7N,sBAAsB,gBAEvDknH,uBAAwB,WACpB1iV,KAAK2iV,iBAAmB3iV,KAAKw7N,sBAAsB,gBAEvD2kH,4BAA6B,WACzB,IAAIR,EAAgB3/U,KAAK6kB,OAAO,iBAChC7kB,KAAK4iV,sBAAwBr9U,MAAMi2E,QAAQmkQ,GAAiB3/U,KAAK6iV,gCAAgClD,GAAiBA,GAAiB3tH,EAAAA,MAEvI6wH,gCAAiC,SAASlD,GACtC,OAAO3tH,EAAAA,MAEXiwH,aAAc9oG,EACd+oG,kBAAmB/oG,EACnBgpG,eAAgB,SAASpB,GACrB,IAAIlwB,EAAY,CACZ3sR,KAAM68S,EACNn0E,KAAM5sQ,KAAKy/U,gBAEf,OAAOz/U,KAAK4iV,sBAAsB/xB,IAEtCuxB,aAAcjpG,EACdkpG,mBAAoBlpG,EACpBmpG,iBAAkBnpG,EAClB4oG,aAAc5oG,EACd6nG,kBAAmB7nG,EACnB6oG,iBAAkB7oG,EAClBknG,qBAAsB,SAASyC,GAC3B,GAAK9iV,KAAK6kB,OAAO,qBAAjB,CAGAi+T,EAAgBA,GAAiB9iV,KAAK6kB,OAAO,iBAC7C,IAAIk+T,EAAoB/iV,KAAKgjV,oBACzBC,EAAoBjjV,KAAKkjV,eAAeJ,GAC5CC,EAAkBlrT,YAAYsnT,GAC1B2D,GACAG,EAAkBxjU,SAAS0/T,KAGnC6D,kBAAmB,WACf,OAAOhjV,KAAKygV,QAAQpkU,KAAK,IAAIuf,OAAOujT,KAExCmB,aAAc,WACV,GAAKtgV,KAAK6kB,OAAO,uBAAjB,CAGA,IAAIjjB,EAAQ5B,KAAK6kB,OAAO,SACnBtf,MAAMi2E,QAAQ55E,KACfA,EAAQ,CAACA,IAEb5B,KAAKmjV,qBAAqBvhV,KAE9BuhV,qBAAsB,SAASvhV,GAAO,IAC9BwhV,EAD8B,OAElC,QAAUA,EAAwBpjV,KAAKqjV,uBAAoB,IAAWD,GAAiCA,EAAsBnjV,SAAQ,SAAAwhV,GACjIA,EAAM5pT,YAAY+mT,MAEtB5+U,KAAKqjV,gBAAkBzhV,EAAMsE,KAAI,SAAAtE,GAAK,OAAI,EAAKshV,eAAethV,MAC9D5B,KAAKqjV,gBAAgBpjV,SAAQ,SAAAwhV,GACzBA,EAAMhiU,SAASm/T,OAGvB2B,aAAc,WAAW,IACjB+C,EAAoBC,EAAuBC,EAAuBC,EAAuBC,EAAuBC,EAAuBC,EAAwBC,EAD9I,OAErB,EAKI7jV,KAAK6kB,SAJgBk7T,EADzB,EACIA,oBACezjI,EAFnB,EAEIA,cACO16M,EAHX,EAGIA,MACOoqF,EAJX,EAIIA,MAEC+zP,GAAuB,UAAYzjI,IAGxC,QAAUgnI,EAAqBtjV,KAAK8jV,oBAAiB,IAAWR,GAA8BA,EAAmBrjV,SAAQ,SAAAwhV,GACrHA,EAAM5pT,YAAYgnT,MAEtB,QAAU0E,EAAwBvjV,KAAK+jV,2BAAwB,IAAWR,GAAiCA,EAAsBtjV,SAAQ,SAAAwhV,GACrIA,EAAM5pT,YAAYinT,MAEtB,QAAU0E,EAAwBxjV,KAAKgkV,6BAA0B,IAAWR,GAAiCA,EAAsB3rT,YAAYknT,GAC/I,QAAU0E,EAAwBzjV,KAAKikV,2BAAwB,IAAWR,GAAiCA,EAAsB5rT,YAAYmnT,GAC7I,QAAU0E,EAAwB1jV,KAAKkkV,4BAAyB,IAAWR,GAAiCA,EAAsB7rT,YAAYonT,GAC9I,QAAU0E,EAAwB3jV,KAAKmkV,0BAAuB,IAAWR,GAAiCA,EAAsB9rT,YAAYqnT,GAC5Il/U,KAAK8jV,aAAe93P,EAAM9lF,KAAI,SAAAtE,GAAK,OAAI,EAAKshV,eAAethV,MAC3D5B,KAAKkkV,qBAAuBlkV,KAAKkjV,eAAethV,EAAM,IACtD5B,KAAKmkV,mBAAqBnkV,KAAKkjV,eAAethV,EAAM,IACpD5B,KAAK8jV,aAAa7jV,SAAQ,SAAAwhV,GACtBA,EAAMhiU,SAASo/T,MAEnB,QAAU+E,EAAyB5jV,KAAKkkV,4BAAyB,IAAWN,GAAkCA,EAAuBnkU,SAASw/T,GAC9I,QAAU4E,EAAyB7jV,KAAKmkV,0BAAuB,IAAWN,GAAkCA,EAAuBpkU,SAASy/T,KAEhJkF,oBAlQ0B,WAkQJ,IACdC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EADlF,OAElB,EAIIzkV,KAAK6kB,SAHgBk7T,EADzB,EACIA,oBACezjI,EAFnB,EAEIA,cACcooI,EAHlB,EAGIA,aAEC3E,GAAuB,UAAYzjI,IAGxC,QAAU+nI,EAAyBrkV,KAAK+jV,2BAAwB,IAAWM,GAAkCA,EAAuBpkV,SAAQ,SAAAwhV,GACxIA,EAAM5pT,YAAYinT,MAEtB,QAAUwF,EAAyBtkV,KAAKgkV,6BAA0B,IAAWM,GAAkCA,EAAuBzsT,YAAYknT,GAClJ,QAAUwF,EAAyBvkV,KAAKikV,2BAAwB,IAAWM,GAAkCA,EAAuB1sT,YAAYmnT,GAChJh/U,KAAK+jV,oBAAsBW,EAAax+U,KAAI,SAAAtE,GAAK,OAAI,EAAKshV,eAAethV,MACzE5B,KAAKgkV,sBAAwBhkV,KAAKkjV,eAAewB,EAAa,IAC9D1kV,KAAKikV,oBAAsBjkV,KAAKkjV,eAAewB,EAAaA,EAAapkV,OAAS,IAClFN,KAAK+jV,oBAAoB9jV,SAAQ,SAAAwhV,GAC7BA,EAAMhiU,SAASq/T,MAEnB,QAAU0F,EAAyBxkV,KAAKgkV,6BAA0B,IAAWQ,GAAkCA,EAAuB/kU,SAASs/T,GAC/I,QAAU0F,EAAyBzkV,KAAKikV,2BAAwB,IAAWQ,GAAkCA,EAAuBhlU,SAASu/T,KAEjJ6C,iBAAkB,SAAS39S,GACvB,OAAOlkC,KAAK+hV,aAAa79S,IAE7BygT,uBAAwB,WACpB,IAAIzgT,EAAOlkC,KAAK6kB,OAAO,QACnBiB,EAAM9lB,KAAK6kB,OAAO,OAEtB,OADAqf,EAAO09S,EAAAA,QAAAA,qBAAmC5hV,KAAKy/U,eAAgBv7S,GACxD,IAAIoqC,KAAKxoD,GAAOoe,EAAOpe,EAAMA,EAAMoe,IAE9Cg/S,eAAgB/pG,EAChByrG,WAAYzrG,EACZjd,eAAgB,SAAS11M,GACrB,IACUhZ,EAENgZ,EAFAhZ,KACO5L,EACP4kB,EADA5kB,MAEJ,OAAQ4L,GACJ,IAAK,QACDxN,KAAKsgV,eACL,MACJ,IAAK,QACDtgV,KAAKugV,eACL,MACJ,IAAK,eACDvgV,KAAKokV,sBACL,MACJ,IAAK,gBACDpkV,KAAKqgV,qBAAqBz+U,GAC1B,MACJ,IAAK,cACD5B,KAAKwiV,yBACL,MACJ,IAAK,cACDxiV,KAAK0iV,yBACL,MACJ,IAAK,MACL,IAAK,MACL,IAAK,gBACL,IAAK,eACL,IAAK,gBACD1iV,KAAK0rP,cACL,MACJ,IAAK,aACD1rP,KAAKogV,cACL,MACJ,QACIpgV,KAAKuxN,SAAS/qM,kBCpC9B,EAzUY,CACRo+O,MAAOigF,EAAAA,QAAiB,CACpBpF,aAAc,WACV,MAAO,SAEXhtH,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bw0C,eAAgB,EAChB7rG,SAAU,EACV4lL,SAAU,KAGlBG,YAAa,WACTjgV,KAAKuxN,WACLvxN,KAAK8kV,iBAET1E,YAAa,WACTpgV,KAAKuxN,WACLvxN,KAAKygV,QAAQpkU,KAAK,IAAIuf,OApBF,2BAoBqCnc,SArBpC,4BAuBzBslU,mBAAoB/yH,EAAAA,KACpB6vH,iBAAkB,SAAS39S,GACvB,OAAO4tR,EAAAA,QAAAA,OAAwB5tR,EAAM,aAEzC4gT,cAAe,WACX,IAAIE,GAAat3U,EAAAA,EAAAA,GAAE,QACfu3U,GAAUv3U,EAAAA,EAAAA,GAAE,WAAWqS,OAAOilU,GAClChlV,KAAKygV,QAAQ7qF,QAAQqvF,GACrB,IAAK,IAAI7D,EAAW,EAAGtB,EAAW9/U,KAAK6kB,OAAO,YAAau8T,EAAWtB,EAAUsB,IAC5EphV,KAAKklV,kBAAkB9D,EAAU4D,GAEjChlV,KAAK6kB,OAAO,oBACZ7kB,KAAKmlV,sBAAsBH,IAGnCE,kBAAmB,SAAS1D,EAAWwD,GACnC,IACoBj/E,EAChB/lQ,KAAK6kB,SADLkhP,eAEJ,EAGI/lQ,KAAKolV,eAAer/E,EAAiBy7E,GAF/B6D,EADV,EACIC,KACaC,EAFjB,EAEIz1B,YAEA2xB,GAAQ/zU,EAAAA,EAAAA,GAAE,QAAQkS,KAAK,CACvBkmJ,MAAO,MACP0/K,KAAMH,IACP1iV,KAAK4iV,GACRP,EAAWjlU,OAAO0hU,IAEtB0D,sBAAuB,SAASH,GAC5B,IAAIS,GAAwB/3U,EAAAA,EAAAA,GAAE,QAAQkS,KAAK,CACvCkmJ,MAAO,MACP0/K,KAAM,aACN7zT,MAAO,0BAEXqzT,EAAWpvF,QAAQ6vF,IAEvBnE,sBAAuB,SAASR,GAC5B,MAGI9gV,KAAK6kB,SAFY6gU,EADrB,EACIA,gBACchG,EAFlB,EAEIA,aAEJ,GAAKgG,EAAL,CAGA,IAAIt6E,EAAaprQ,KAAK2lV,eAAe7E,EAAQG,cACzCz1J,EAAOouC,EAAAA,EAAAA,cAAyB,MAChC6nH,GAAQ/zU,EAAAA,EAAAA,GAAE89K,GACdA,EAAKn9K,UArEqB,+BAsEtBqxU,EACAA,EAAangU,OAAOvf,KAAK8hV,yBAAyB12E,GAAa,EAAGq2E,IAElEj2J,EAAKjrH,UAAY6qM,EAErB01E,EAAQ17P,IAAIwwK,QAAQpqE,GACpBxrL,KAAK4gV,QAAQ,CACTpuM,KAAM,WACN6Q,MAAO,QAAQznH,OAAOwvO,IACvBq2E,KAEPkE,eAAgB,SAASzhT,GACrB,MAGIlkC,KAAK6kB,SAFW+gU,EADpB,EACIA,eACgB7/E,EAFpB,EAEIA,eAEJ,MAAI,SAAW6/E,EACJh9E,EAAAA,QAAAA,cAAwB1kO,EAAM6hO,EAAgB,IAAMA,EAAiB,gBAAkB,YAE3F6C,EAAAA,QAAAA,cAAwB1kO,EAAM6hO,EAAgB6/E,IAEzDC,oBAAqB,WACjB,OAAO/zB,EAAAA,QAAAA,OAAwB9xT,KAAK6kB,OAAO,QAAS,iBAExDo9T,aAAc,SAASlB,GACnB,IAAI+E,EAAQ9lV,KAAK6kB,OAAO,aAAZ7kB,GACZ,OAAO4oQ,EAAAA,QAAAA,SAAmBm4E,EAAU+E,IAExC5D,kBAAmB,SAASnB,GACxB,IAAIgF,EAAU/lV,KAAK6kB,OAAO,OACtBmhU,EAAUhmV,KAAK6kB,OAAO,OAC1B,OAAQ+jP,EAAAA,QAAAA,YAAsBm4E,EAAUgF,EAASC,EAAS,SAE9D5D,aAAc,SAASrB,GACnB,OAAOA,EAASpiQ,aAAe3+E,KAAK6kB,OAAO,QAAQ85D,YAEvD0jQ,mBAAoB,SAAStB,GACzB,OAAOn4E,EAAAA,QAAAA,SAAmBm4E,EAAUn4E,EAAAA,QAAAA,kBAA4B5oQ,KAAK6kB,OAAO,WAEhFy9T,iBAAkB,SAASvB,GACvB,OAAOn4E,EAAAA,QAAAA,SAAmBm4E,EAAUn4E,EAAAA,QAAAA,iBAA2B5oQ,KAAK6kB,OAAO,WAE/Ek9T,aAAc,SAAShB,GACnB,OAAOjvB,EAAAA,QAAAA,OAAwBivB,EAAU,MAE7CqE,eAAgB,SAAS1gF,GACrB,IACIsrD,EAAWtrD,EADE1kQ,KAAK6kB,OAAO,YAE7B,MAAO,CACHygU,KAAMxzB,EAAAA,QAAAA,cAA+B9B,GACrCF,YAAagC,EAAAA,QAAAA,YAA6B,eAAe9B,KAGjEgxB,kBAAmB,WACf,IACoBj7E,EAChB/lQ,KAAK6kB,SADLkhP,eAEAkgF,EAAWr9E,EAAAA,QAAAA,kBAA4B5oQ,KAAK6kB,OAAO,SACnDqhU,EAAsBngF,EAAiBkgF,EAASh+E,SAChDk+E,EAAanmV,KAAK6kB,OAAO,YAK7B,OAJIqhU,GAAuB,IACvBA,GAAuBC,GAE3BF,EAAS9/E,QAAQ8/E,EAASrnQ,UAAYsnQ,GAC/BD,GAEXjE,iBAAkB,SAAS99S,GAGvB,OAFAA,EAAO,IAAIoqC,KAAKpqC,IACXiiO,QAAQjiO,EAAK06C,UAAY,GACvB16C,GAEXg/S,eAAgB,SAASh/S,GACrB,OAAOlkC,KAAKygV,QAAQpkU,KAAK,kBAAkBuf,OAAO+lT,EAAAA,EAAAA,cAAgCz9S,EAAM0kO,EAAAA,QAAAA,sBAAiC,QAE7Hg8E,WAAY,SAAS1gT,GACjB,OAAO0kO,EAAAA,QAAAA,iBAA2B1kO,EAAMlkC,KAAK6kB,OAAO,SAAW+jP,EAAAA,QAAAA,iBAA2B1kO,EAAMlkC,KAAK6kB,OAAO,SAEhHg+T,gCAAiC,SAASlD,GACtC,OAAO,SAASn5T,GAIZ,GAHqBm5T,EAAcp9T,MAAM,SAASriB,GAC9C,OAAO0oQ,EAAAA,QAAAA,SAAmB1oQ,EAAMsmB,EAAK0d,SAGrC,OAAO,MAKvB4gO,KAAM+/E,EAAAA,QAAiB,CACnBpF,aAAc,WACV,MAAO,QAEXwC,aAAc,SAASlB,GACnB,IAAI+E,EAAQ9lV,KAAK6kB,OAAO,aAAZ7kB,GACZ,OAAO4oQ,EAAAA,QAAAA,iBAA2Bm4E,EAAU+E,IAEhD5D,kBAAmB,SAASnB,GACxB,OAAQn4E,EAAAA,QAAAA,YAAsBm4E,EAAUn4E,EAAAA,QAAAA,kBAA4B5oQ,KAAK6kB,OAAO,QAAS+jP,EAAAA,QAAAA,iBAA2B5oQ,KAAK6kB,OAAO,UAEpIu9T,aAAc,WACV,OAAO,GAEXC,mBAAoB,WAChB,OAAO,GAEXC,iBAAkB,WACd,OAAO,GAEXP,aAAc,SAAShB,GACnB,OAAOjvB,EAAAA,QAAAA,cAA+B,eAAeivB,EAASpiQ,aAElEqiQ,kBAAmB,WACf,IAAIx1E,EAAcxrQ,KAAK6kB,OAAO,QAC1BhX,EAAO,IAAIygE,KAAKk9L,GAGpB,OAFA39P,EAAKs4P,QAAQ,GACbt4P,EAAKq4P,SAAS,GACPr4P,GAEXm0U,iBAAkB,SAAS99S,GAGvB,OAFAA,EAAO,IAAIoqC,KAAKpqC,IACXgiO,SAAShiO,EAAKy6C,WAAa,GACzBz6C,GAEXg/S,eAAgB,SAASh/S,GACrB,IAAIkiT,EAAY,IAAI93Q,KAAKpqC,GAEzB,OADAkiT,EAAUjgF,QAAQ,GACXnmQ,KAAKygV,QAAQpkU,KAAK,kBAAkBuf,OAAO+lT,EAAAA,EAAAA,cAAgCyE,EAAWx9E,EAAAA,QAAAA,sBAAiC,QAElIi5E,iBAAkB,SAAS39S,GACvB,OAAO4tR,EAAAA,QAAAA,OAAwB5tR,EAAM,iBAEzC2hT,oBAAqB,WACjB,OAAO/zB,EAAAA,QAAAA,OAAwB9xT,KAAK6kB,OAAO,QAAS,SAExD+/T,WAAY,SAAS1gT,GACjB,OAAO0kO,EAAAA,QAAAA,SAAmB1kO,EAAMlkC,KAAK6kB,OAAO,SAAW+jP,EAAAA,QAAAA,SAAmB1kO,EAAMlkC,KAAK6kB,OAAO,SAEhGy8T,sBAAuBtvH,EAAAA,OAE3Bq0H,OAAQxB,EAAAA,QAAiB,CACrBpF,aAAc,WACV,MAAO,UAEXwC,aAAc,SAASlB,GACnB,IAAI+E,EAAQ9lV,KAAK6kB,OAAO,aAAZ7kB,GACZ,OAAO4oQ,EAAAA,QAAAA,SAAmBm4E,EAAU+E,IAExC5D,kBAAmB,SAASnB,GACxB,IAAIj7T,EAAM9lB,KAAK6kB,OAAO,OAClBe,EAAM5lB,KAAK6kB,OAAO,OACtB,OAAQ+jP,EAAAA,QAAAA,YAAsBm4E,EAASliQ,cAAe/4D,GAAOA,EAAI+4D,cAAej5D,GAAOA,EAAIi5D,gBAE/FujQ,aAAc,SAASrB,GACnB,IAAI78S,EAAO,IAAIoqC,KAAKyyQ,GAEpB,OADA78S,EAAKgiO,SAAS,IACN0C,EAAAA,QAAAA,WAAqB1kO,EAAMlkC,KAAK6kB,OAAO,UAEnDw9T,mBAAoB,WAChB,OAAO,GAEXC,iBAAkB,WACd,OAAO,GAEXP,aAAc,SAAShB,GACnB,OAAOjvB,EAAAA,QAAAA,OAAwBivB,EAAU,SAE7CC,kBAAmB,WACf,IAAIl8E,EAAO8D,EAAAA,QAAAA,qBAA+B5oQ,KAAK6kB,OAAO,SAAW,EACjE,OAAO+jP,EAAAA,QAAAA,uBAAiC9D,EAAM,EAAG,IAErDk9E,iBAAkB,SAAS99S,GAGvB,OAFAA,EAAO,IAAIoqC,KAAKpqC,IACX0iO,YAAY1iO,EAAK26C,cAAgB,GAC/B36C,GAEX2hT,oBAAqB,WACjB,IAAIr6E,EAAcxrQ,KAAK6kB,OAAO,QAC1ByhU,EAAoB19E,EAAAA,QAAAA,qBAA+B4C,GACnDe,EAAY,IAAIj+L,KAAKk9L,GACrBgB,EAAU,IAAIl+L,KAAKk9L,GAGvB,OAFAe,EAAU3F,YAAY0/E,GACtB95E,EAAQ5F,YAAY0/E,EAAoB,GACjCx0B,EAAAA,QAAAA,OAAwBvlD,EAAW,QAAU,IAAMulD,EAAAA,QAAAA,OAAwBtlD,EAAS,SAE/F+5E,sBAAuB,SAAS/6E,EAAa5pQ,GACzC,OAAOgnQ,EAAAA,QAAAA,WAAqB4C,EAAa5pQ,IAE7CshV,eAAgB,SAASh/S,GACrB,IAAIkiT,EAAY,IAAI93Q,KAAKpqC,GAGzB,OAFAkiT,EAAUjgF,QAAQ,GAClBigF,EAAUlgF,SAAS,GACZlmQ,KAAKygV,QAAQpkU,KAAK,kBAAkBuf,OAAO+lT,EAAAA,EAAAA,cAAgCyE,EAAWx9E,EAAAA,QAAAA,sBAAiC,QAElIg8E,WAAY,SAAS1gT,GACjB,OAAO0kO,EAAAA,QAAAA,WAAqB1kO,EAAMlkC,KAAK6kB,OAAO,SAAW+jP,EAAAA,QAAAA,WAAqB1kO,EAAMlkC,KAAK6kB,OAAO,SAEpGy8T,sBAAuBtvH,EAAAA,OAE3Bw0H,QAAS3B,EAAAA,QAAiB,CACtBpF,aAAc,WACV,MAAO,WAEXwC,aAAc,SAASlB,GACnB,IAAI+E,EAAQ9lV,KAAK6kB,OAAO,aAAZ7kB,GACZ,OAAO4oQ,EAAAA,QAAAA,WAAqBm4E,EAAU+E,IAE1C5D,kBAAmB,SAASnB,GACxB,IAAIsF,EAASz9E,EAAAA,QAAAA,qBAA+Bm4E,GACxC0F,EAAY79E,EAAAA,QAAAA,qBAA+B5oQ,KAAK6kB,OAAO,QACvD6hU,EAAY99E,EAAAA,QAAAA,qBAA+B5oQ,KAAK6kB,OAAO,QAC3D,OAAQ+jP,EAAAA,QAAAA,YAAsBy9E,EAAQI,EAAWC,IAErDtE,aAAc,SAASrB,GACnB,IAAI78S,EAAO,IAAIoqC,KAAKyyQ,GAEpB,OADA78S,EAAKgiO,SAAS,IACN0C,EAAAA,QAAAA,YAAsB1kO,EAAMlkC,KAAK6kB,OAAO,UAEpDw9T,mBAAoB,WAChB,OAAO,GAEXC,iBAAkB,WACd,OAAO,GAEXP,aAAc,SAAShB,GACnB,IAAIx0E,EAAYulD,EAAAA,QAAAA,OAAwBivB,EAAU,QAC9Cv0E,EAAU,IAAIl+L,KAAKyyQ,GAEvB,OADAv0E,EAAQ5F,YAAY4F,EAAQ3tL,cAAgB,GACrC0tL,EAAY,MAAQulD,EAAAA,QAAAA,OAAwBtlD,EAAS,SAEhEw0E,kBAAmB,WACf,IAAIqF,EAASz9E,EAAAA,QAAAA,wBAAkC5oQ,KAAK6kB,OAAO,SAAW,GACtE,OAAO+jP,EAAAA,QAAAA,uBAAiCy9E,EAAQ,EAAG,IAEvDrE,iBAAkB,SAAS99S,GAGvB,OAFAA,EAAO,IAAIoqC,KAAKpqC,IACX0iO,YAAY1iO,EAAK26C,cAAgB,IAC/B36C,GAEXg/S,eAAgB,SAASh/S,GACrB,IAAIkiT,EAAY,IAAI93Q,KAAKpqC,GAIzB,OAHAkiT,EAAUjgF,QAAQ,GAClBigF,EAAUlgF,SAAS,GACnBkgF,EAAUx/E,YAAYgC,EAAAA,QAAAA,qBAA+Bw9E,IAC9CpmV,KAAKygV,QAAQpkU,KAAK,kBAAkBuf,OAAO+lT,EAAAA,EAAAA,cAAgCyE,EAAWx9E,EAAAA,QAAAA,sBAAiC,QAElIi9E,oBAAqB,WACjB,IAAIr6E,EAAcxrQ,KAAK6kB,OAAO,QAC1B8hU,EAAuB/9E,EAAAA,QAAAA,wBAAkC4C,GACzDe,EAAY,IAAIj+L,KAAKk9L,GACrBgB,EAAU,IAAIl+L,KAAKk9L,GAGvB,OAFAe,EAAU3F,YAAY+/E,GACtBn6E,EAAQ5F,YAAY+/E,EAAuB,IACpC70B,EAAAA,QAAAA,OAAwBvlD,EAAW,QAAU,IAAMulD,EAAAA,QAAAA,OAAwBtlD,EAAS,SAE/Fo4E,WAAY,SAAS1gT,GACjB,OAAO0kO,EAAAA,QAAAA,YAAsB1kO,EAAMlkC,KAAK6kB,OAAO,SAAW+jP,EAAAA,QAAAA,YAAsB1kO,EAAMlkC,KAAK6kB,OAAO,SAEtGy8T,sBAAuBtvH,EAAAA,8EClS/B,GAnDM40H,WACF,WAAYv4T,IAAW,eACnBruB,KAAK6mV,SAAWx4T,2CAEpB,SAAW23N,GACP,OAAOhmP,KAAK6mV,SAASC,YAAY9gG,4BAErC,SAAUpkP,EAAOpB,GACbR,KAAK6mV,SAASE,WAAWnlV,EAAOpB,+BAEpC,WACIR,KAAK6mV,SAASG,eAAgB,oCAElC,SAAmBplV,EAAO42G,GACtBx4G,KAAK6mV,SAASI,oBAAoBrlV,EAAO42G,GACrC52G,EAAM,IAAM5B,KAAK6mV,SAAShiU,OAAO,eAAeo/O,YAAcriQ,EAAM,GAAGqiQ,WACvEjkQ,KAAK6mV,SAASK,cAActlV,EAAM,uCAG1C,SAAoBA,EAAO42G,GAAe,IAClCj0F,EAAQ4iU,EAD0B,OAEtCvlV,GAAS,QAAU2iB,EAAS3iB,SAAU,IAAW2iB,OAAS,EAASA,EAAOre,KAAI,SAAAhG,GAAI,OAAI,EAAKknV,eAAelnV,QAAW,GACrHs4G,GAAiB,QAAU2uO,EAAiB3uO,SAAkB,IAAW2uO,OAAiB,EAASA,EAAejhV,KAAI,SAAAhG,GAAI,OAAI,EAAKknV,eAAelnV,QAAW,GAC7JF,KAAKqnV,kBAAkBzlV,GACvB5B,KAAKsnV,mBAAmB1lV,EAAO42G,GAC1Bx4G,KAAKunV,qBACNvnV,KAAK6mV,SAASW,mBAElBxnV,KAAKunV,qBAAsB,uCAE/B,SAAsBE,GAClB,GAAIA,EAAMnnV,OACN,OAAO,IAAIguE,KAAK3oD,KAAKG,IAAL,MAAAH,MAAI,QAAQ8hU,mCAGpC,SAAe7lV,GACX,OAAO5B,KAAK6mV,SAASO,eAAexlV,kCAExC,WACI,OAAO5B,KAAK6mV,SAASa,oDAEzB,SAAmB1hG,EAAY07D,GAC3B1hT,KAAK6mV,SAASc,mBAAmB3hG,EAAY07D,oCAEjD,SAAkB9/S,GACd5B,KAAK2nV,mBAAmB,QAAS/lV,qCAErC,SAAmBA,GACf5B,KAAK6mV,SAAShiU,OAAO,cAAe,OAASjjB,QAAS,IAAWA,EAAQA,EAAQ,IAAI0sE,YAhDvFs4Q,GC8BN,GA7BMgB,SAAAA,iCACF,WAAYv5T,GAAW,6BACnB,cAAMA,IACD0mM,KAAO,kBAFO,+CAIvB,WACI,MAAO,CACHnzN,MAAO5B,KAAK6nV,WAAW,SACvB77P,MAAO,GACPswH,cAAe,qCAGvB,SAAYwrI,EAAetnV,GACvBR,KAAK+nV,eACL/nV,KAAKgoV,UAAUF,EAAetnV,qCAElC,SAAmBoB,EAAO42G,GACtB,IAAIj0F,EAAQ4iU,EACZ,QAAU5iU,EAAS3iB,SAAU,IAAW2iB,IAAkB3iB,EAAQ,CAAC5B,KAAK6nV,WAAW,WACnF,QAAUV,EAAiB3uO,SAAkB,IAAW2uO,IAAkC3uO,EAAgB,KAC1G,iEAAyB52G,EAAO42G,wCAEpC,WACI,OAAOx4G,KAAK6nV,WAAW,0CAE3B,SAAkBjmV,GACd5B,KAAK2nV,mBAAmB,QAAS/lV,EAAM,UA1BzCgmV,CAAwChB,ICoC9C,GApCMqB,SAAAA,iCACF,WAAY55T,GAAW,6BACnB,cAAMA,IACD0mM,KAAO,iBAFO,+CAIvB,WACI,MAAO,CACHnzN,MAAO5B,KAAK6nV,WAAW,UACvB77P,MAAO,GACPswH,cAAe,oCAGvB,SAAYwrI,EAAetnV,GACvB,IAAIoZ,GAAS,QAAI5Z,KAAK6nV,WAAW,WAC7BK,EAAuBtuU,EAAOqiH,WAAU,SAAA/3F,GAAI,OAAK,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKikT,kBAAoBL,EAAcK,kBACpID,GAAwB,EACxBtuU,EAAOrK,OAAO24U,EAAsB,GAEpCtuU,EAAOhZ,KAAKknV,GAEhB9nV,KAAK+nV,eACL/nV,KAAKooV,mBAAmBN,GACxB9nV,KAAKunV,qBAAsB,EAC3BvnV,KAAKgoV,UAAUpuU,EAAQpZ,qCAE3B,SAAmBoB,EAAO42G,GACtB,IAAIj0F,EAAQ4iU,EACZ,QAAU5iU,EAAS3iB,SAAU,IAAW2iB,IAAkB3iB,EAAQ5B,KAAK6nV,WAAW,WAClF,QAAUV,EAAiB3uO,SAAkB,IAAW2uO,IAAkC3uO,EAAgB,KAC1G,iEAAyB52G,EAAO42G,wCAEpC,WACI,IAAIivO,EAAQznV,KAAK6nV,WAAW,UAAUjiV,QAAO,SAAAhE,GAAK,OAAIA,KACtD,OAAO5B,KAAKqoV,sBAAsBZ,SAjCpCQ,CAAuCrB,gBCCzC0B,GAAe,MACfC,GAAe,QA4HnB,GA3HMC,SAAAA,iCACF,WAAYn6T,GAAW,6BACnB,cAAMA,IACD0mM,KAAO,iBAFO,+CAIvB,WACI,IAAInzN,EAAQ5B,KAAKyoV,aAEjB,MAAO,CACH7mV,MAAOA,EACPoqF,MAHQhsF,KAAK0oV,gBAAgB9mV,EAAM,GAAIA,EAAM,IAI7C06M,cAAe,QACfujI,YAAa7/U,KAAK2oV,kBAAkBl+U,KAAKzK,kCAGjD,SAAY8nV,EAAetnV,GACvB,MAA2BR,KAAKyoV,aAAhC,gBAAKl8E,EAAL,KAAgBC,EAAhB,KACAxsQ,KAAK+nV,eACL/nV,KAAKooV,mBAAmBN,GACxB9nV,KAAKunV,qBAAsB,GACvB,IAASvnV,KAAK6mV,SAAShiU,OAAO,+BAC9B7kB,KAAK6mV,SAAS+B,gBAAiB,EAC3B,cAAgB5oV,KAAK6mV,SAAShiU,OAAO,qBACjC7kB,KAAK6mV,SAASO,eAAeU,GAAiB9nV,KAAK6mV,SAASO,eAAe56E,GAC3ExsQ,KAAKgoV,UAAU,CAACF,EAAe,MAAOtnV,GAEtCR,KAAKgoV,UAAU,CAACF,EAAet7E,GAAUhsQ,GAEtCR,KAAK6mV,SAASO,eAAeU,IAAkB9nV,KAAK6mV,SAASO,eAAe76E,GACnFvsQ,KAAKgoV,UAAU,CAACz7E,EAAWu7E,GAAgBtnV,GAE3CR,KAAKgoV,UAAU,CAACF,EAAe,MAAOtnV,KAElC+rQ,GAAaC,EACrBxsQ,KAAKgoV,UAAU,CAACF,EAAe,MAAOtnV,GAEtCR,KAAKgoV,UAAUz7E,EAAYu7E,EAAgB,CAACv7E,EAAWu7E,GAAiB,CAACA,EAAev7E,GAAY/rQ,qCAG5G,SAAmBoB,EAAO42G,GACtB,IAAIj0F,EAAQ4iU,EACZ,QAAU5iU,EAAS3iB,SAAU,IAAW2iB,IAAkB3iB,EAAQ5B,KAAKyoV,cACvE,QAAUtB,EAAiB3uO,SAAkB,IAAW2uO,IAAkC3uO,EAAgB,KAC1G,iEAAyB52G,EAAO42G,sCAEpC,SAAoB52G,EAAO42G,IACvB,kEAA0B52G,EAAO42G,GACjC,IAAIxsB,EAAQhsF,KAAK6oV,YACjB7oV,KAAK2nV,mBAAmB,QAAS37P,wCAErC,WACI,MAGIhsF,KAAK6mV,SAAShiU,SAFcikU,EADhC,EACIA,2BACmBC,EAFvB,EAEIA,kBAEAnvU,EAAS5Z,KAAK6nV,WAAW,UAC7B,GAAIiB,EAA4B,CAC5B,GAAI,cAAgBC,GAAqBnvU,EAAO,GAC5C,OAAOA,EAAO,GAElB,GAAI,YAAcmvU,GAAqBnvU,EAAO,GAC1C,OAAOA,EAAO,GAGtB,IAAI6tU,EAAQ7tU,EAAOhU,QAAO,SAAAhE,GAAK,OAAIA,KACnC,OAAO5B,KAAKqoV,sBAAsBZ,6BAEtC,WACI,IAAI7tU,EAAS5Z,KAAK6nV,WAAW,UAC7B,IAAKjuU,EAAOtZ,OACR,OAAOsZ,EAEX,eAA2BA,EAA3B,GAAK2yP,EAAL,KAAgBC,EAAhB,KACA,GAAID,GAAaC,GAAWD,EAAYC,EAAS,OACtB,CAACA,EAASD,GAAhCA,EAD4C,KACjCC,EADiC,KAGjD,MAAO,CAACD,EAAWC,4BAEvB,WACI,MAA2BxsQ,KAAKyoV,aAAhC,gBAAKl8E,EAAL,KAAgBC,EAAhB,KACA,OAAOxsQ,KAAK0oV,gBAAgBn8E,EAAWC,kCAE3C,SAAgBD,EAAWC,GACvB,IAAKD,IAAcC,EACf,MAAO,GAEX,IAAIhB,EAAcxrQ,KAAK6mV,SAAShiU,OAAO,eAAeo/O,UAClD+kF,EAAiB,IAAI16Q,KAAK3oD,KAAKC,IAAI4lP,EAAc+8E,GAAch8E,IAC/D08E,EAAe,IAAI36Q,KAAK3oD,KAAKG,IAAI0lP,EAAc+8E,GAAc/7E,IACjE,yBAAW5D,EAAAA,QAAAA,mBAA6BogF,EAAgBC,EAAcX,KAAtE,CAAqFW,qCAEzF,SAAkBzoV,GACd,IAAI0oV,EAAiBlpV,KAAK0nV,kBAC1B,EAA2B1nV,KAAKyoV,aAAhC,gBAAKl8E,EAAL,KAAgBC,EAAhB,KACA,EAGIxsQ,KAAK6mV,SAAShiU,SAFcikU,EADhC,EACIA,2BACmBC,EAFvB,EAEIA,kBAEJ,GAAIG,EAAgB,CAEhB,IAAI38E,GAAcC,GADKs8E,GAA8B,cAAgBC,GAM9D,GAAKx8E,IAAaC,GAAas8E,GAA8B,YAAcC,GAK3E,GAAIx8E,GAAaC,EAAS,CAC7B,GAAI,cAAgBu8E,GAAqBvoV,EAAEoB,MAAQ2qQ,EAE/C,YADAvsQ,KAAK2nV,mBAAmB,eAAgB3nV,KAAK0oV,gBAAgBloV,EAAEoB,MAAO2qQ,IAEnE,GAAI,YAAcw8E,GAAqBvoV,EAAEoB,MAAQ4qQ,EAEpD,YADAxsQ,KAAK2nV,mBAAmB,eAAgB3nV,KAAK0oV,gBAAgBl8E,EAAShsQ,EAAEoB,cAT5E,GAAIpB,EAAEoB,MAAQ4qQ,EAEV,YADAxsQ,KAAK2nV,mBAAmB,eAAgB3nV,KAAK0oV,gBAAgBloV,EAAEoB,MAAO4qQ,SAN1E,GAAIhsQ,EAAEoB,MAAQ2qQ,EAEV,YADAvsQ,KAAK2nV,mBAAmB,eAAgB3nV,KAAK0oV,gBAAgBn8E,EAAW/rQ,EAAEoB,QAiBlF5B,KAAK2nV,mBAAmB,eAAgB,WAvH9Ca,CAAuC5B,IC6DzCuC,GAA+B,IAK/BC,IAAiCh7H,EAAAA,EAAAA,cAAai7H,EAAAA,EAAmB,cACjEC,GAAoB,CACpB1kF,MAAO,EACPE,KAAM,EACNuhF,OAAQ,EACRG,QAAS,GAET+C,GACO,QADPA,GAEM,OAFNA,GAGQ,SAHRA,GAIS,UAETC,GAAuB,CACvBC,gBAAiB7B,GACjB8B,eAAgBzB,GAChB0B,eAAgBnB,IAMpB,IAAIoB,GAAW3tT,EAAAA,EAAAA,QAAe,CAC1B4tT,iBAAkB,oBAClBp3H,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg8G,mBAAmB,EACnBF,oBAAoB,EACpB7hE,YAAa,IAAIl9L,KACjB1sE,MAAO,KACPgY,OAAQ,GACRkwU,6BAAyB,EACzBhkU,IAAK,IAAIwoD,KAAK,IAAK,GACnB1oD,IAAK,IAAI0oD,KAAK,IAAK,GACnBy3L,oBAAgB,EAChBgkF,WAAY,EACZC,UAAWT,GACXU,aAAcV,GACdW,aAAcX,GACdjtI,cAAe,SACf6tI,iBAAiB,EACjBzE,iBAAiB,EACjBE,eAAgB,OAChBlG,aAAc,OACdC,cAAe,KACfC,YAAa,KACbwK,mBAAoB,KACpBC,gBAAgB,EAChBrK,WAAY,kBAAM,IAAI1xQ,SAG9Bs0K,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,OAI/Bgd,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg5H,WAAY,SAAS/pV,GACjBA,EAAE6G,kBACEo4S,EAAAA,EAAAA,qBAAoBj/S,GACpBR,KAAKwqV,gBAAgB,GAErBxqV,KAAKyqV,yBAAyB,EAAIzqV,KAAK0qV,sBAG/CC,UAAW,SAASnqV,GAChBA,EAAE6G,kBACEo4S,EAAAA,EAAAA,qBAAoBj/S,GACpBR,KAAKwqV,iBAAiB,GAEtBxqV,KAAKyqV,0BAA0B,EAAIzqV,KAAK0qV,sBAGhDE,QAAS,SAASpqV,GAEd,GADAA,EAAE6G,kBACEo4S,EAAAA,EAAAA,qBAAoBj/S,GACpBR,KAAK6qV,kBACF,CACH,GAAI5qH,GAAAA,QAAAA,YAAejgO,KAAK8qV,MAAMjxU,YAC1B,OAEJ7Z,KAAKyqV,0BAA0B,EAAIzqV,KAAK8qV,MAAMjmU,OAAO,eAG7DkmU,UAAW,SAASvqV,GAEhB,GADAA,EAAE6G,kBACEo4S,EAAAA,EAAAA,qBAAoBj/S,GACpBR,KAAKgrV,oBACF,CACH,GAAI/qH,GAAAA,QAAAA,YAAejgO,KAAK8qV,MAAMjxU,YAC1B,OAEJ7Z,KAAKyqV,yBAAyB,EAAIzqV,KAAK8qV,MAAMjmU,OAAO,eAG5D+yH,KAAM,SAASp3I,GACXA,EAAE6G,iBACF,IAAI2iV,EAAYhqV,KAAK6kB,OAAO,aACxB2mP,EAAcxrQ,KAAK6kB,OAAO,eAC1BiB,EAAM9lB,KAAK8mV,YAAY,OAC3B,IAAI9mV,KAAK8qV,MAAM3I,eAAe32E,GAA9B,CAGA,IAAItnO,EAAO0kO,EAAAA,QAAAA,SAAmBohF,EAAWx+E,EAAa1lP,GAAOA,EAAM8iP,EAAAA,QAAAA,qBAA+BohF,EAAWx+E,GAC7GxrQ,KAAKirV,4BAA4B/mT,KAErC9Q,IAAK,SAAS5yB,GACVA,EAAE6G,iBACF,IAAI2iV,EAAYhqV,KAAK6kB,OAAO,aACxB2mP,EAAcxrQ,KAAK6kB,OAAO,eAC1Be,EAAM5lB,KAAK8mV,YAAY,OAC3B,IAAI9mV,KAAK8qV,MAAM3I,eAAe32E,GAA9B,CAGA,IAAItnO,EAAO0kO,EAAAA,QAAAA,SAAmBohF,EAAWx+E,EAAa5lP,GAAOA,EAAMgjP,EAAAA,QAAAA,oBAA8BohF,EAAWx+E,GAC5GxrQ,KAAKirV,4BAA4B/mT,KAErCgnT,OAAQ,SAAS1qV,GACbA,EAAE6G,iBACFrH,KAAKwqV,iBAAiB,EAAIxqV,KAAK0qV,sBAEnCS,SAAU,SAAS3qV,GACfA,EAAE6G,iBACFrH,KAAKwqV,gBAAgB,EAAIxqV,KAAK0qV,sBAElC9hV,IAAKopN,EAAAA,KACLnmF,MAAO7rI,KAAKorV,oBAGpBA,iBAAkB,SAAS5qV,GACvB,GAAKR,KAAK0nV,mBAEH,IAAK1nV,KAAK8qV,MAAM3I,eAAeniV,KAAK6kB,OAAO,gBAAiB,CAC/D,IAAIjjB,EAAQ5B,KAAKqrV,qBAAqBrrV,KAAK6kB,OAAO,gBAClD7kB,KAAKsrV,mBAAmBC,YAAY3pV,EAAOpB,SAH3CR,KAAKgrV,iBAMbQ,wBAAyB,SAASxlG,GAC9B,IAAIpkP,EAAQ5B,KAAK6kB,OAAOmhO,GAAc,SACtC,OAAIhmP,KAAK6kB,OAAO,2BACL7kB,KAAK6kB,OAAO,4BAEnBkgG,EAAAA,EAAAA,IAAUnjH,GACH,UAEN0oN,EAAAA,EAAAA,IAAS1oN,GAGP+/U,EAAAA,EAAAA,2BAA6C//U,QAHpD,GAKJwlV,eAAgB,SAASxlV,GACrB,OAAO+/U,EAAAA,EAAAA,gBAAkC//U,IAE7CmlV,WAAY,SAASnlV,EAAO4Y,GACxB,IAAIwrO,EAAazgP,MAAMi2E,QAAQ55E,GAAS,SAAW,QACnD,GAAI4Y,EAAO,CACP,GAAI,YAAcA,EAAMmJ,KAAM,CAC1B,IAAI8nU,EAAczrV,KAAK8qV,MAAM9H,oBAAoBnjU,IAAI,GACrDrF,EAAM5T,OAAS6kV,EAEnBzrV,KAAK0rV,sBAAsBlxU,GAE/Bxa,KAAK8mV,YAAY9gG,EAAYpkP,IAEjCklV,YAAa,SAAS9gG,EAAY07D,GAAa,WAC3C,GAAI,IAAM35S,UAAUzH,OAAQ,CACxB,IAAI06R,EACAphR,EAAS,QAAUohR,EAAeh7R,KAAK6kB,OAAO,iBAAc,IAAWm2Q,EAAeA,EAAe,GACzG,MAAO,WAAah1C,EAAapsO,EAAO1T,KAAI,SAAAtE,GAAK,OAAI,EAAKwlV,eAAexlV,MAAU5B,KAAKonV,eAAepnV,KAAK6kB,OAAOmhO,IAEvH,IAAIgoB,EAAsBhuQ,KAAKwrV,wBAAwBxlG,GACnD2lG,EAAkB,WAAa3lG,GAAc,OAAS07D,QAAe,IAAWA,OAAc,EAASA,EAAYx7S,KAAI,SAAAtE,GAAK,OAAI+/U,EAAAA,EAAAA,cAAgC//U,EAAOosQ,QAA0B,GAAK2zE,EAAAA,EAAAA,cAAgCjgC,EAAa1zC,GACvPhuQ,KAAK6kB,OAAOmhO,EAAY2lG,IAE5BC,WAAY,SAAS5B,EAAW9lT,EAAM34B,EAAQwoB,GAC1C,OAAQi2T,GACJ,KAAKT,GACDrlT,EAAKiiO,QAAQjiO,EAAK06C,UAAYrzE,EAASwoB,GACvC,MACJ,KAAKw1T,GACDrlT,EAAKgiO,SAAShiO,EAAKy6C,WAAapzE,EAASwoB,GACzC,MACJ,KAAKw1T,GACDrlT,EAAK0iO,YAAY1iO,EAAK26C,cAAgBtzE,EAASwoB,GAC/C,MACJ,KAAKw1T,GACDrlT,EAAK0iO,YAAY1iO,EAAK26C,cAAgB,GAAKtzE,EAASwoB,KAGhE02T,yBAA0B,SAASl/U,GAC/B,IAAIsgV,EAAW7rV,KAAK6kB,OAAO,eACvB2mP,EAAc,IAAIl9L,KAAKu9Q,GACvB7B,EAAYhqV,KAAK6kB,OAAO,aAC5B7kB,KAAK4rV,WAAW5B,EAAWx+E,EAAajgQ,EAAQ,GAMhD,IALA,IAAIy6U,EAAUhmV,KAAK8rV,cACf/F,EAAU/lV,KAAK+rV,cACfC,EAA8BhsV,KAAKisV,wBAAwBjC,EAAWx+E,EAAaqgF,GACnFK,GAAuB74E,EAAAA,EAAAA,IAAQ7H,EAAau6E,EAASC,IAAYgG,EACjEG,EAAc,IAAI79Q,KAAKk9L,GACpB0gF,GAAsB,CACzB,IAAKlsV,KAAK8qV,MAAM3I,eAAegK,GAAc,CACzC3gF,EAAc2gF,EACd,MAEJnsV,KAAK4rV,WAAW5B,EAAWmC,EAAa5gV,EAAQ,GAChDygV,EAA8BhsV,KAAKisV,wBAAwBjC,EAAWmC,EAAaN,GACnFK,GAAuB74E,EAAAA,EAAAA,IAAQ84E,EAAapG,EAASC,IAAYgG,EAEjEhsV,KAAK8qV,MAAM3I,eAAe0J,IAAa7rV,KAAK8qV,MAAM3I,eAAe32E,GACjExrQ,KAAKwqV,gBAAgBj/U,EAAS,EAAI,GAAK,IAEvCvL,KAAKgnV,eAAgB,EACrBhnV,KAAK6kB,OAAO,cAAe2mP,KAGnC4gF,oBAvM0B,SAuMNpC,EAAWpiF,EAAOC,GAClC,OAAQmiF,GACJ,KAAKT,GACD,OAAO3hF,EAAMjpL,aAAekpL,EAAMlpL,WACtC,KAAK4qQ,GACD,OAAO3hF,EAAMykF,YAAcxkF,EAAMwkF,UACrC,KAAK9C,GACD,OAAOtzS,SAAS2xN,EAAMykF,UAAY,MAAQp2S,SAAS4xN,EAAMwkF,UAAY,IACzE,KAAK9C,GACD,OAAOtzS,SAAS2xN,EAAMykF,UAAY,OAASp2S,SAAS4xN,EAAMwkF,UAAY,OAGlFJ,wBAnN0B,SAmNFjC,EAAWpiF,EAAOC,GACtC,OAAQmiF,GACJ,KAAKT,GACD,OAAQ9jS,EAAImiN,EAAMjpL,WAAYj5B,EAAImiN,EAAMlpL,WAAYrhC,EAAM33B,KAAK23B,IAAImI,EAAIC,GAAI//B,KAAKG,IAAIw3B,EAAK,GAAKA,IAAS,EAC3G,KAAKisS,GACD,OAAO5jU,KAAK23B,IAAIsqN,EAAMykF,UAAYxkF,EAAMwkF,YAAc,EAC1D,KAAK9C,GACD,OAAO5jU,KAAK23B,IAAIsqN,EAAMykF,UAAYxkF,EAAMwkF,YAAc,GAC1D,KAAK9C,GACD,OAAO5jU,KAAK23B,IAAIsqN,EAAMykF,UAAYxkF,EAAMwkF,YAAc,IAE9D,IAAI5mS,EAAGC,EAAGpI,GAEd2tS,4BAA6B,WACzB,IAMIqB,EACAC,EAPAV,EAAW9jV,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAK6kB,OAAO,eACxF2mP,EAAc,IAAIl9L,KAAKu9Q,GACvB7B,EAAYhqV,KAAK6kB,OAAO,aACxB2nU,GAA0BxsV,KAAKysV,oBAAoBjhF,GACnDkhF,EAAyBF,EACzBG,EAA0BH,EAG1BL,EAAc,IAAI79Q,KAAKk9L,GACvBohF,EAAe,IAAIt+Q,KAAKk9L,GAC5B,EAAG,CACC,GAAIkhF,EAAwB,CACxBlhF,EAAc2gF,EACd,MAEJ,GAAIQ,EAAyB,CACzBnhF,EAAcohF,EACd,MAEJ5sV,KAAK4rV,WAAW5B,EAAWmC,EAAa,EAAG,GAC3CnsV,KAAK4rV,WAAW5B,EAAW4C,EAAc,GAAI,GAC7CN,EAA2BtsV,KAAKosV,oBAAoBpC,EAAWmC,EAAaN,GAC5EU,EAA4BvsV,KAAKosV,oBAAoBpC,EAAW4C,EAAcf,GAC9Ea,EAAyBJ,IAA6BtsV,KAAKysV,oBAAoBN,GAC/EQ,EAA0BJ,IAA8BvsV,KAAKysV,oBAAoBG,SAC5EN,GAA4BC,GACrCvsV,KAAK6kB,OAAO,cAAe2mP,IAE/BihF,oBAAqB,SAASvoT,GAC1B,IAAI8hT,EAAUhmV,KAAK8rV,cACf/F,EAAU/lV,KAAK+rV,cACnB,QAAQ14E,EAAAA,EAAAA,IAAQnvO,EAAM6hT,EAASC,IAAYhmV,KAAK8qV,MAAM3I,eAAej+S,IAEzEsuC,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6sV,yBACL7sV,KAAK8sV,oBACL9sV,KAAKwnV,mBACLxnV,KAAK+9U,gBAET8O,uBAAwB,WACpB,IAAIE,EAAe/sV,KAAKgtV,4BACpB17H,EAAWk4H,GAAqBuD,GAC/B/sV,KAAKsrV,oBAAsBtrV,KAAKsrV,mBAAmBv2H,OAASg4H,IAC7D/sV,KAAKsrV,mBAAqB,IAAIh6H,EAAStxN,QAG/CitV,0BAA2B,WACvBjtV,KAAK6sV,yBACL7sV,KAAK4rP,YAETohG,0BAA2B,WAEvB,OADoBhtV,KAAK6kB,OAAO,kBAE5B,IAAK,QACD,MAAO,iBACX,IAAK,QACD,MAAO,iBACX,QACI,MAAO,oBAGnBioU,kBAAmB,WACf,IAAI5C,EAAelqV,KAAK6kB,OAAO,gBAC3BolU,EAAejqV,KAAK6kB,OAAO,gBAC3BmlU,EAAYhqV,KAAK6kB,OAAO,aACxBykU,GAAkBW,GAAgBX,GAAkBY,KAGpDZ,GAAkBU,GAAaV,GAAkBW,GACjDjqV,KAAK6kB,OAAO,YAAaolU,GAClBX,GAAkBU,GAAaV,GAAkBY,IACxDlqV,KAAK6kB,OAAO,YAAaqlU,KAGjC1C,iBAAkB,WACd,IAAI0F,EACA1hF,EAAc,QAAU0hF,EAAwBltV,KAAKmtV,mBAAmBntV,KAAKsrV,mBAAmB8B,gCAA6B,IAAWF,EAAwBA,EAAwBltV,KAAKmtV,mBAAmBntV,KAAK6kB,OAAO,gBAChO7kB,KAAK6kB,OAAO,cAAe2mP,IAE/B2hF,mBAAoB,SAASjpT,GAEzB,OADAA,EAAO0kO,EAAAA,QAAAA,cAAwB1kO,EAAMlkC,KAAK+rV,cAAe/rV,KAAK8rV,gBACvDnjS,EAAAA,EAAAA,IAAUzkB,GAAQlkC,KAAKqtV,SAASnpT,GAAQA,GAEnD65S,aAAc,WACV/9U,KAAKyiV,iBAAmBziV,KAAKw7N,sBAAsB,eACnDx7N,KAAKstV,oBAAsBttV,KAAKw7N,sBAAsB,uBAE1DE,eAAgB,WACZ17N,KAAK27N,iBAAiBC,oBAAoB,CACtCpwC,KAAM,IAAIu7D,GAAAA,GAAkB,SAAS3sO,GACjC,IAAIvM,EAAOuM,EAAQpO,OACnB0B,EAAAA,EAAAA,GAAE0M,EAAQ0F,WAAWC,QAAOrS,EAAAA,EAAAA,GAAE,UAAU/K,KAAKkL,GAAQA,EAAKlL,MAAQkjE,OAAOh4D,UAGjF7N,KAAKuxN,YAET62H,mBAAoB,SAASlkT,GAMzB,GALI+7L,GAAAA,QAAAA,YAAejgO,KAAKutV,iBACpBttH,GAAAA,QAAAA,KAAQjgO,KAAKutV,gBAAgB,GAEvBvtV,KAAK+rV,cACL/rV,KAAK8rV,cAEX9rV,KAAK6kB,OAAO,cAAe,IAAIypD,UADnC,CAIA,IAAIi6L,EAAiBvoQ,KAAKmtV,mBAAmBjpT,GAC7C,GAAIA,EAAK+/N,YAAcsE,EAAetE,UAAtC,CAIA,IAAI14P,EAASvL,KAAKwtV,gBAAgBxtV,KAAK8qV,MAAMjmU,OAAO,QAAS0jP,GACzD,IAAMh9P,IAAWvL,KAAK0nV,mBAAqB1nV,KAAKytV,0BAChDliV,EAAS,GAETvL,KAAK8qV,OAAS,IAAMv/U,IAAWvL,KAAK0tV,oBAChC1tV,KAAK2tV,gBACDpiV,EAAS,GAAKA,GAAU,GACxBvL,KAAK4tV,gBACL5tV,KAAK6tV,kBAAkBtlF,GACvBvoQ,KAAKknV,cAAc3+E,GACnBvoQ,KAAK8tV,oBACE,IAAMviV,GAAUvL,KAAKgnV,eAC5BhnV,KAAK6tV,kBAAkBtlF,GACvBvoQ,KAAKknV,cAAc3+E,IAEnBvoQ,KAAK+tV,UAAUxiV,EAAQg9P,GAG3BvoQ,KAAK+tV,UAAUxiV,EAAQg9P,IAG3BvoQ,KAAK8tV,mBACL9tV,KAAK6tV,kBAAkBtlF,GACvBvoQ,KAAKknV,cAAc3+E,IAEvBvoQ,KAAKgnV,eAAgB,OA5BjBhnV,KAAK6kB,OAAO,cAAe,IAAIypD,KAAKi6L,MA8B5CylF,sBA5W0B,SA4WJ9pT,GAClB,QAAKlkC,KAAK2tV,iBAGHzpT,GAAQlkC,KAAK2tV,gBAAgBhJ,0BAExCsJ,eAAgB,SAAS/pT,GACrB,OAAOlkC,KAAKguV,sBAAsB9pT,GAAQlkC,KAAK2tV,gBAAkB3tV,KAAK8qV,OAE1E+C,kBAAmB,SAAS3pT,GAEpB,IAAIgqT,GADJluV,KAAK6kB,OAAO,mBAAqC7kB,KAAK+oS,eAxX/Ch5E,SA3BO,uBAqZd/vN,KAAK8qV,MAAMjmU,OAAO,gBAAiB,MACnC,QAAUqpU,EAAwBluV,KAAK2tV,uBAAoB,IAAWO,GAAiCA,EAAsBrpU,OAAO,gBAAiB,OAC1I7kB,KAAKguV,sBAAsB9pT,GAAQlkC,KAAK2tV,gBAAkB3tV,KAAK8qV,OACrEjmU,OAAO,gBAAiBqf,KAGrC6nT,YAAa,WACT,IAAIoC,EAAYnuV,KAAK6kB,OAAO,aAC5B,OAAIspU,IAGAnuV,KAAK8lB,MAGT9lB,KAAK8lB,IAAM9lB,KAAK8mV,YAAY,QAAU,IAAIx4Q,KAAK,IAAK,IAFzCtuE,KAAK8lB,MAKpBgmU,YAAa,WACT,IAAIsC,EAAYpuV,KAAK6kB,OAAO,aAC5B,OAAIupU,IAGApuV,KAAK4lB,MAGT5lB,KAAK4lB,IAAM5lB,KAAK8mV,YAAY,QAAU,IAAIx4Q,KAAK,IAAK,IAFzCtuE,KAAK4lB,MAKpB4nU,gBAAiB,SAASjhF,EAAWC,GACjC,IAII6hF,EAJArE,EAAYhqV,KAAK6kB,OAAO,aAC5B,GAAImlU,IAAcT,GACd,OAAOvpV,KAAKsuV,iBAAiB/hF,EAAWC,GAG5C,OAAQw9E,GACJ,KAAKT,GACD8E,EAAiB,IACjB,MACJ,KAAK9E,GACD8E,EAAiB,GACjB,MACJ,QACIA,EAAiB,EAEzB,OAAOp4S,SAASu2N,EAAQ3tL,cAAgBwvQ,GAAkBp4S,SAASs2N,EAAU1tL,cAAgBwvQ,IAEjGC,iBAAkB,SAAS/hF,EAAWC,GAGlC,OAAO,IAFUA,EAAQ3tL,cAAgB0tL,EAAU1tL,gBACjC2tL,EAAQ7tL,WAAa4tL,EAAU5tL,aAGrD6rQ,gBAAiB,SAASj/U,GAAQ,WAC9B,IAAIvL,KAAKuuV,mBAAT,CAGAvuV,KAAKuuV,oBAAqB,EAC1B,IAAIrqT,EAAOlkC,KAAKwuV,iBAAiBjjV,EAASvL,KAAK0qV,qBAC/C1qV,KAAKirV,4BAA4B/mT,GACjClkC,KAAKyuV,uBAAyB5rV,YAAW,WACrC,EAAK0rV,oBAAqB,OAGlC7D,kBAAmB,WACf,OAAO1qV,KAAK6kB,OAAO,eAAiB,EAAI,GAE5C2pU,iBAAkB,SAASjjV,EAAQ24B,GAC/B,IAAIwqT,EAEAC,GADJzqT,EAAOlkC,KAAKqtV,SAAS,QAAUqB,EAAQxqT,SAAS,IAAWwqT,EAAQA,EAAQ1uV,KAAK6kB,OAAO,iBACjE+5D,UAClB0rL,EAAa1B,EAAAA,QAAAA,qBAA+B5oQ,KAAK6kB,OAAO,cAAgBtZ,EAC5E24B,EAAKiiO,QAAQ,GACbjiO,EAAKgiO,SAAShiO,EAAKy6C,WAAa2rL,GAChC,IAAIskF,EAAUhmF,EAAAA,QAAAA,iBAA2B1kO,GAAM06C,UAE/C,OADA16C,EAAKiiO,QAAQwoF,EAAaC,EAAUA,EAAUD,GACvCzqT,GAEX6kQ,aAAc,WACV,OAAO/oS,KAAK6Z,YAEhB4wO,YAAa,WACTzqP,KAAK6uV,uBACL7uV,KAAKuxN,WACL,IAAI13M,EAAW7Z,KAAK6Z,WACpBA,EAAS4F,SAlfI,eAmfb5F,EAAS28M,YA1eU,oBA0ewB,UAAYx2N,KAAK6kB,OAAO,kBACnE7kB,KAAKogV,cACLvmU,EAASkG,OAAO/f,KAAK6gV,OACrB7gV,KAAK8uV,eACL9uV,KAAKwgV,gBACLxgV,KAAK8tV,mBACLj0U,EAAS+7O,QAAQ51P,KAAKw+H,WAAW3kH,YACjC7Z,KAAK+uV,mBACL/uV,KAAKgvV,gBACLhvV,KAAKsrV,mBAAmBhE,qBACxBtnV,KAAKknV,gBACLlnV,KAAK4gV,QAAQ,OAAQ,eACrB5gV,KAAKirV,+BAETnvH,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK6tV,kBAAkB7tV,KAAK6kB,OAAO,iBAEvCu7T,YAAa,WACJpgV,KAAKutV,iBACNvtV,KAAK6gV,OAAQnzU,EAAAA,EAAAA,GAAE,SAAS+R,SAtgBV,oBAugBdzf,KAAKutV,gBAAiB7/U,EAAAA,EAAAA,GAAE,SAAS+R,SAlgBV,6BAmgBvBzf,KAAK6gV,MAAM9gU,OAAO/f,KAAKutV,kBAG/B0B,sBAre0B,WAsetB,OAAOjvV,KAAKuxN,WAAW31L,OAAO,CAAC57B,KAAK8qV,SAExCgE,aAAc,WACV9uV,KAAK6Z,WAAW4F,SAASyvU,oBAA4BlvV,KAAK6kB,OAAO,cACjE,MAGI7kB,KAAK6kB,SAFQ2mP,EADjB,EACIA,YACYu+E,EAFhB,EAEIA,WAIJ,GAFA/pV,KAAK6Z,WAAW28M,YA7gBO,wBA6gB+BuzH,EAAa,GACnE/pV,KAAK8qV,MAAQ9qV,KAAKmvV,oBAAoB3jF,IAClClvC,EAAAA,GAAAA,MAAa,CACb,IAAI8yH,EAAapvV,KAAKwuV,kBAAkB,EAAGhjF,GAC3CxrQ,KAAKqvV,YAAcrvV,KAAKsvV,iBAAiBF,GAAcpvV,KAAKmvV,oBAAoBC,GAAc,KAC9F,IAAIG,EAAYvvV,KAAKwuV,iBAAiBzE,EAAYv+E,GAClD+jF,EAAUppF,QAAQ,GAClBnmQ,KAAKwvV,WAAaxvV,KAAKsvV,iBAAiBC,GAAavvV,KAAKmvV,oBAAoBI,GAAa,KAE3FxF,EAAa,IACb/pV,KAAK2tV,gBAAkB3tV,KAAKmvV,oBAAoBnvV,KAAKwuV,iBAAiB,EAAGhjF,KAE7ExrQ,KAAKyvV,mBAETN,oBAAqB,SAASjrT,GAC1B,IACe8lT,EACXhqV,KAAK6kB,SADLmlU,UAEA0F,EAAeC,EAAM3F,GACrB4F,GAAQliV,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAKutV,gBACjCj+Q,EAAStvE,KAAK6vV,YAAY3rT,GAE9B,OADWlkC,KAAKonP,iBAAiBwoG,EAAOF,EAAcpgR,IAG1DugR,YAAa,SAAS3rT,GAClB,IAAI4rT,EACAnQ,EAAgB3/U,KAAK6kB,OAAO,iBAEhC,OADA86T,GAAgBzkQ,EAAAA,EAAAA,IAAWykQ,GAAiB3/U,KAAK+vV,iBAAiBpQ,EAAcl1U,KAAKzK,OAAS2/U,GACvF1nH,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKsrV,mBAAmB0E,iBAAkB,CAC1D9rT,KAAMA,EACNpe,IAAK9lB,KAAK+rV,cACVnmU,IAAK5lB,KAAK8rV,cACV/lF,eAAgB,QAAU+pF,EAAgB9vV,KAAK6kB,OAAO,yBAAsB,IAAWirU,EAAgBA,EAAgBh+B,EAAAA,QAAAA,sBACvH4zB,gBAAiB1lV,KAAK6kB,OAAO,mBAC7B+gU,eAAgB5lV,KAAK6kB,OAAO,kBAC5BmlU,UAAWhqV,KAAK6kB,OAAO,aACvBi6H,cAAU,EACVwuL,kBAAmBttU,KAAK6kB,OAAO,qBAC/B0oT,kBAAmBvtU,KAAK6kB,OAAO,qBAC/B86T,cAAeA,EACfC,YAAa5/U,KAAKiwV,kBAAkBxlV,KAAKzK,MACzC0/U,aAAc1/U,KAAKi8N,qBAAqB,gBACxC8jH,oBAAqB//U,KAAK0nV,kBAC1B1H,WAAYhgV,KAAK6kB,OAAO,iBAGhC27T,cA5hB0B,WA4hBV,WACZ7qH,EAAAA,EAAAA,IAAiB31N,KAAKutV,eAAgBnE,IAClC,UAAYppV,KAAK6kB,OAAO,kBACxB8wM,EAAAA,EAAAA,GAAgB31N,KAAKutV,eAAgBnE,GAAgC,MAAM,SAAA5oV,GACvE,EAAKmnV,mBAAmB,eAAgB,QAIpDoI,iBAAkB,SAAS5tS,GACvB,IAAIyzI,EAAO51L,KACX,OAAO,SAAS+hC,GAIZ,OAHAj5B,EAAAA,EAAAA,GAAOi5B,EAAQ,CACX1T,UAAWunK,IAERzzI,EAAKpgB,KAGpButT,iBAAkB,SAASprT,GACvB,IAAI8lT,EAAYhqV,KAAK6kB,OAAO,aACxBiB,EAAM8iP,EAAAA,QAAAA,uBAAiCohF,EAAWhqV,KAAK+rV,eACvDnmU,EAAMgjP,EAAAA,QAAAA,uBAAiCohF,EAAWhqV,KAAK8rV,eAC3D,OAAOljF,EAAAA,QAAAA,YAAsB1kO,EAAMpe,EAAKF,IAE5C6pU,gBAAiB,WACb,IACgB1F,EACZ/pV,KAAK6kB,SADLklU,YAEJ9tS,EAAAA,EAAAA,IAAKj8C,KAAK8qV,MAAMjxU,WAAY,CACxBnB,KAAM,EACNI,IAAK,IAET9Y,KAAKkwV,iBAAiBlwV,KAAKqvV,aAAc,GACzCrvV,KAAKkwV,iBAAiBlwV,KAAKwvV,WAAYzF,GACvC/pV,KAAKkwV,iBAAiBlwV,KAAK2tV,gBAAiB,IAEhDuC,iBA/jB0B,SA+jBTtjF,EAAMujF,GACnBvjF,IAAQ3wN,EAAAA,EAAAA,IAAK2wN,EAAK/yP,WAAY,CAC1BnB,KAAM1Y,KAAKowV,iBAAiBD,GAC5Br3U,IAAK,KAGbs3U,iBAAkB,SAASD,GAEvB,OAAO,IAAMA,GADOnwV,KAAK6kB,OAAO,eAAiB,EAAI,GACV,KAE/CorU,kBAAmB,SAASzvV,GACxB,IAAIwpV,EAAYhqV,KAAK6kB,OAAO,aACxBwrU,EAAWznF,EAAAA,QAAAA,YAAsBohF,GACjCd,EAAiBlpV,KAAK0nV,kBAC1B,GAAI2I,IAAanH,EACblpV,KAAKgrV,cAAcxqV,EAAEga,MAAM9L,mBACxB,CACH,IAAI6X,EAAWvmB,KAAKqrV,qBAAqB7qV,EAAEoB,OAC3C5B,KAAKsrV,mBAAmBC,YAAYhlU,EAAU/lB,EAAEga,OAChDxa,KAAKyiV,iBAAiBjiV,KAG9B6qV,qBAAsB,SAASnnT,GAC3B,IAAIr1B,EAAS,IAAIy/D,KAAKpqC,GAClBw2C,EAAe16E,KAAK8mV,YAAY,SAOpC,OANIpsQ,IACA7rE,EAAOgjG,SAASn3B,EAAaqE,YAC7BlwE,EAAOs9P,WAAWzxL,EAAasE,cAC/BnwE,EAAOyhV,WAAW51Q,EAAauE,cAC/BpwE,EAAO0hV,gBAAgB71Q,EAAayuL,oBAEjCt6P,GAEX64U,gBAAiB,WACb,OAAO1nV,KAAK6kB,OAAO,eAAiB7kB,KAAK6kB,OAAO,iBAEpDmmU,cAAe,SAASx/J,GACpB,IAAIw+J,EAAYhqV,KAAK6kB,OAAO,aAC5B,IAAI7kB,KAAK0nV,kBAAT,CAGA,IAAI2I,EAAWznF,EAAAA,QAAAA,YAAsBohF,GACrC,GAAKqG,EAAL,CAGA,IAAIG,EAAiBxwV,KAAK8qV,MAAMjmU,OAAO,kBAAoB7kB,KAAK8qV,MAAMjmU,OAAO,QACzE2mK,IACAglK,GAAiB9iV,EAAAA,EAAAA,GAAE89K,GAAM39K,KAroBP,mBAuoBtB7N,KAAKytV,yBAA0B,EAC/BztV,KAAK6kB,OAAO,cAAe2rU,GAC3BxwV,KAAK6kB,OAAO,YAAawrU,GACzBrwV,KAAKytV,yBAA0B,EAC/BztV,KAAK8tV,mBACL9tV,KAAKywV,mBACLzwV,KAAKirV,8BACLjrV,KAAK6tV,kBAAkB7tV,KAAKmtV,mBAAmBntV,KAAK6kB,OAAO,oBAE/DipU,iBAAkB,WACT9tV,KAAKw+H,aACNx+H,KAAKw+H,WAAa,IAAIq/M,GAAUnwU,EAAAA,EAAAA,GAAE,SAAU1N,KAAK0wV,qBAErD1wV,KAAKw+H,WAAW35G,OAAO,OAAQ7kB,KAAK2wV,iBAAiB3wV,KAAK8qV,MAAO9qV,KAAK2tV,kBACtE3tV,KAAK4wV,4BAETF,iBAAkB,WACd,IACgB3+Q,EACZ/xE,KAAK6kB,SADLktD,WAEJ,MAAO,CACHpvE,KAAM3C,KAAK2wV,iBAAiB3wV,KAAK8qV,MAAO9qV,KAAK2tV,iBAC7C3mR,QAAShnE,KAAK6wV,uBAAuBpmV,KAAKzK,MAC1C89U,eAAgB99U,KAAK6qV,YAAYpgV,KAAKzK,MACtC+xE,WAAYA,IAGpB8+Q,uBAAwB,SAASrwV,GAC7B,MAGIR,KAAK6kB,SAFQ2mP,EADjB,EACIA,YACYu+E,EAFhB,EAEIA,WAEAx+U,EAAS/K,EAAE66I,UACf,GAAI0uM,EAAa,EAAG,CAChB,IAAI+G,EAAuB9wV,KAAKguV,sBAAsBxiF,IAC7BslF,GAAwBvlV,EAAS,IAAMulV,GAAwBvlV,EAAS,KAE7FA,GAAU,GAGlB,IAAIilV,EAAiBxwV,KAAKwuV,iBAAiBjjV,EAAQigQ,GACnDxrQ,KAAKirV,4BAA4BuF,IAErC3F,YAAa,WACT,IAAIb,EAAYhqV,KAAK6kB,OAAO,aACxBwrU,EAAWznF,EAAAA,QAAAA,UAAoBohF,GAC9BqG,IAAYrwV,KAAK+wV,gBAAgB/G,KAGtChqV,KAAK6kB,OAAO,YAAawrU,GACzBrwV,KAAK8tV,mBACL9tV,KAAKywV,mBACLzwV,KAAKirV,8BACLjrV,KAAK6tV,kBAAkB7tV,KAAKmtV,mBAAmBntV,KAAK6kB,OAAO,mBAE/DksU,gBAAiB,SAAS/G,GACtB,IAAIlkU,EAAM9lB,KAAK+rV,cACXnmU,EAAM5lB,KAAK8rV,cACf,OAAOljF,EAAAA,QAAAA,SAAmBohF,EAAWlkU,EAAKF,IAAQ5lB,KAAK6kB,OAAO,kBAAoBmlU,GAEtF4G,yBAA0B,WACtB5wV,KAAKw+H,WAAWwyN,aAAa,SAASroS,EAAAA,EAAAA,IAAU3oD,KAAKwvV,aACrDxvV,KAAKw+H,WAAWwyN,aAAa,SAASroS,EAAAA,EAAAA,IAAU3oD,KAAKqvV,eAEzDN,iBAAkB,WACT/uV,KAAKixV,aACNjxV,KAAKixV,WAAajxV,KAAKonP,iBAAiBpnP,KAAK6Z,WAAYm5R,EAAAA,EAAW,CAChEP,QAASzyS,KAAKkxV,mBAAmBzmV,KAAKzK,MACtC2yS,UAAW3yS,KAAKmxV,oBAAoB1mV,KAAKzK,MACzC6yS,MAAO7yS,KAAKoxV,iBAAiB3mV,KAAKzK,MAClC8tS,aAAc9tS,KAAKqxV,WAAW5mV,KAAKzK,UAI/CkxV,mBAAoB,SAAS1wV,GACzBy/N,GAAAA,QAAAA,KAAQjgO,KAAKutV,gBAAgB,GAC7B,IACgBxD,EACZ/pV,KAAK6kB,SADLklU,WAEJ/pV,KAAKsxV,0BAA0B,YAC/B9wV,EAAEga,MAAMq+M,cAAgB74N,KAAKuxV,iBAAiB,QAAU,EAAIxH,EAAa,EACzEvpV,EAAEga,MAAMs+M,eAAiB94N,KAAKuxV,iBAAiB,QAAU,EAAIxH,EAAa,GAE9EuH,0BAA2B,SAASpjT,IAChCxgC,EAAAA,EAAAA,GAAE,IAAIkuB,OAhuBY,qBAguBiBvgB,IAAI,SAAU6yB,IAErDqjT,iBAAkB,SAAS/jV,GACvB,IAAIo/P,EACA78G,EAAQ/vJ,KAAK6kB,OAAO,cAMxB,MALI,SAAWrX,EACXo/P,EAAO78G,EAAQ/vJ,KAAKqvV,YAAcrvV,KAAKwvV,WAChC,SAAWhiV,IAClBo/P,EAAO78G,EAAQ/vJ,KAAKwvV,WAAaxvV,KAAKqvV,aAEnCziF,GAEXukF,oBAAqB,SAAS3wV,GAC1B,IAAI+K,EAAS/K,EAAEga,MAAMjP,QACrB0wC,EAAAA,EAAAA,IAAKj8C,KAAKutV,eAAgB,CACtB70U,KAAMnN,EAASvL,KAAKqxV,aACpBv4U,IAAK,IAET9Y,KAAKwxV,wBAAwBjmV,IAEjC6lV,iBAAkB,SAAS5wV,GACvBR,KAAKsxV,0BAA0B,QAC/B,MAGItxV,KAAK6kB,SAFQ2mP,EADjB,EACIA,YACYz5L,EAFhB,EAEIA,WAEA4oO,EAAen6S,EAAEga,MAAMmgS,aACvB82C,EAAc92C,EAAmBA,EAAeh1R,KAAK23B,IAAIq9P,GAA5B,EAE7B+2C,EADyB1xV,KAAKguV,sBAAsBxiF,KACJz5L,GAAc,IAAM0/Q,EAAa,IAAMA,GAC3F,GAAI,IAAMA,EAAV,CAIA,IAAIlmV,GAAUkmV,EAAazxV,KAAK0qV,qBAAuBgH,EAAqB,EAAI,GAC5ExtT,EAAOlkC,KAAKwuV,iBAAiBjjV,GAC7BvL,KAAK2xV,sBAAsBztT,KAEvBA,EADAutT,GAAc,EACP,IAAInjR,KAAKtuE,KAAK+rV,eAEd,IAAIz9Q,KAAKtuE,KAAK8rV,gBAG7B9rV,KAAK6kB,OAAO,cAAeqf,QAZvBlkC,KAAK4xV,gBAAgB,EAAGzI,KAchCkI,WAAY,WAIR,OAHKrxV,KAAK6xV,kBACN7xV,KAAK6xV,iBAAkB/0M,EAAAA,EAAAA,IAAS98I,KAAK6Z,YAAc7Z,KAAK6kB,OAAO,eAE5D7kB,KAAK6xV,iBAEhBL,wBAAyB,SAASjmV,GAC9BA,GAAUvL,KAAK0qV,oBACf,IACI99E,EACAklF,EAFAC,EAAc/xV,KAAK6kB,OAAO,cAAgB,EAG1CtZ,EAAS,IAAMvL,KAAKqvV,aACpBziF,EAAO5sQ,KAAKqvV,YACZyC,EAAiBC,GAAe/xV,KAAK8qV,OAC9Bv/U,GAAU,IAAMvL,KAAKwvV,YAC5B5iF,EAAOmlF,EAAc/xV,KAAK2tV,gBAAkB3tV,KAAKwvV,WACjDsC,EAAiBC,EAAc/xV,KAAKwvV,WAAa,OAEjD5iF,EAAO5sQ,KAAK8qV,MACZgH,EAAiBC,EAAc/xV,KAAK2tV,gBAAkB,MAE1D3tV,KAAKw+H,WAAW35G,OAAO,OAAQ7kB,KAAK2wV,iBAAiB/jF,EAAMklF,KAE/DnB,iBAAkB,SAAS/jF,EAAMklF,GAC7B,IAAIjrQ,EAAU+lL,EAAKi5E,sBAInB,GADI7lV,KAAK6kB,SADLklU,WAEa,GAAK+H,EAAgB,CAClC,IAAIE,EAAwBF,EAAejM,sBAC3Ch/P,EAAU,GAAGjrD,OAAOirD,EAAS,OAAOjrD,OAAOo2T,GAE/C,OAAOnrQ,GAEX8qQ,sBAAuB,SAASztT,GAC5B,IAAIlkC,KAAK8qV,MAAMlG,WAAW1gT,GAA1B,CAGA,IAAIpe,EAAM9lB,KAAK+rV,cACXnmU,EAAM5lB,KAAK8rV,cACXvjF,EAAiBK,EAAAA,QAAAA,cAAwB1kO,EAAMpe,EAAKF,GACxD,OAAO2iP,IAAmBziP,GAAOyiP,IAAmB3iP,IAExDopU,cAAe,WAAW,WAClB7E,EAAkBnqV,KAAK6kB,OAAO,mBAClC,GAAIslU,EAAiB,CACjB,IAAI8H,EAAejyV,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUwuU,EAAAA,QAAQ,CACzD5O,kBAAmBttU,KAAK6kB,OAAO,qBAC/BliB,KAAMw6T,EAAAA,EAAAA,OAA2B,8BACjCn2P,QAAS,SAAAxgD,GACL,EAAK0rU,aAAa1rU,IAEtB7C,KAAM,UACNojD,YAAa,OACboiL,mBAAoB,KACrBtvO,WAAW4F,SA30BQ,4BA40BtBzf,KAAKmyV,UAAWzkV,EAAAA,EAAAA,GAAE,SAAS+R,SA70BX,sBA60B2CM,OAAOkyU,GAClEjyV,KAAK6Z,WAAWkG,OAAO/f,KAAKmyV,UAEhCnyV,KAAK6Z,WAAW28M,YA90BQ,0BA80B+B2zH,IAE3D0E,qBAAsB,WAClB7uV,KAAKoyV,iBAAkB1kV,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,UAAUqY,SAASj4B,KAAK6Z,YACzE7Z,KAAKqyV,gBAAgBryV,KAAK6kB,OAAO,WAErCwtU,gBAAiB,SAASzwV,GACtB,IAAIomV,EAAYhoV,KAAKonV,eAAexlV,GACpC5B,KAAKsyV,oBAAoBvuU,IAAI49T,EAAAA,EAAAA,cAAgCqG,EA50B/B,gBA80BlCsK,kBAAmB,WACf,OAAOtyV,KAAKoyV,iBAEhB3B,iBAAkB,WACdxwH,GAAAA,QAAAA,KAAQjgO,KAAK8qV,MAAMjxU,YAAY,GAC/B7Z,KAAKuyV,kBAAkBvyV,KAAK8qV,MAr1BX,GACF,EAo1B0D3B,IACrEnpV,KAAK6kB,OAAO,cAAgB,IAC5Bo7M,GAAAA,QAAAA,KAAQjgO,KAAK2tV,gBAAgB9zU,YAAY,GACzC7Z,KAAKuyV,kBAAkBvyV,KAAK2tV,gBAx1Bf,GACF,EAu1BwExE,MAG3FoJ,kBAAmB,SAAS3lF,EAAMzjQ,EAAM63D,EAAIw+J,GACxC,OAAOS,GAAAA,QAAAA,QAAW2sC,EAAK/yP,WAAY,CAC/B8J,KAAM,MACNxa,KAAM,CACFm4N,MAAOn4N,EACP+nI,QAAS/nI,GAEb63D,GAAI,CACAsgK,MAAOtgK,EACPkwE,QAASlwE,GAEbw+J,SAAUA,KAGlBuuH,UAAW,SAASxiV,EAAQ3J,GACxB,GAAI,IAAM2J,GAAU,IAAMoa,KAAK23B,IAAI/xC,IAAWvL,KAAKsvV,iBAAiB1tV,GAAQ,CACxE,IAAI4wV,EAAUxyV,KAAKmvV,oBAAoBvtV,GACnC2J,EAAS,GACTvL,KAAKwvV,YAAcxvV,KAAKwvV,WAAW31U,WAAWrY,SAC9CxB,KAAKwvV,WAAagD,IAElBxyV,KAAKqvV,aAAervV,KAAKqvV,YAAYx1U,WAAWrY,SAChDxB,KAAKqvV,YAAcmD,GAEvBxyV,KAAKyvV,kBAET,IAEIgD,GAFgBzyV,KAAK0qV,qBACRn/U,EAAS,EAAI,EAAIA,EAAS,GAAK,EAAI,GACJvL,KAAKqxV,aAC1BrxV,KAAKutV,eAAepnU,WAAWzN,OAC7B+5U,IACrBzyV,KAAK0yV,4BACL1yV,KAAK2yV,4BAA4BpnV,EAAQ3J,GAEzC5B,KAAK4xV,gBAAgBa,EAAatJ,IAA8B/vT,KAAKp5B,KAAK2yV,4BAA4BloV,KAAKzK,KAAMuL,EAAQ3J,MAIrIgwV,gBAAiB,SAAS5wR,EAAIw+J,GAC1B,OAAOS,GAAAA,QAAAA,QAAWjgO,KAAKutV,eAAgB,CACnC5pU,KAAM,QACNxa,KAAM,CACFuP,KAAM1Y,KAAKutV,eAAepnU,WAAWzN,MAEzCsoD,GAAI,CACAtoD,KAAMsoD,GAEVw+J,SAAUA,KAGlB6tH,SAAU,SAAAzrV,GAAK,OAAI,IAAI0sE,KAAK1sE,IAC5BswV,aAAc,SAAS1rU,GACnB,IAAIs/T,EAAQ,IAAIx3Q,KACZtuE,KAAK0nV,kBACL1nV,KAAKsrV,mBAAmBC,YAAYzF,EAAOt/T,EAAKhM,QAGpDxa,KAAK0yV,6BAA8B,EACnC1yV,KAAK6kB,OAAO,YAAa7kB,KAAK6kB,OAAO,iBACrC7kB,KAAKsrV,mBAAmBC,YAAYzF,EAAOt/T,EAAKhM,OAChDxa,KAAKywV,mBACLzwV,KAAK0yV,6BAA8B,IAEvCC,4BAA6B,SAASpnV,EAAQi9P,GAC1CxoQ,KAAK4yV,gBAAgBrnV,GACrBvL,KAAKyvV,kBACLzvV,KAAK6yV,iBACL7yV,KAAK8tV,mBACL9tV,KAAK6tV,kBAAkBrlF,GACvBxoQ,KAAKknV,cAAc1+E,GACnBxoQ,KAAKsrV,mBAAmBhE,sBAE5BsL,gBAAiB,SAASrnV,GACtB,IAAIunV,EACJ,GAAI,IAAMvnV,EAAV,CAGA,IAGIwnV,EACAC,EACAC,EACAC,EACAC,EANYpJ,EACZ/pV,KAAK6kB,SADLklU,WAoBJ,GAbIx+U,EAAS,GACTwnV,EAAa,EACbC,EAAkB,cAClBC,EAAkB,aAClBC,EAAsB,QACtBC,EAAqB,IAAMpJ,EAAa,QAAU,oBAElDgJ,GAAc,EACdC,EAAkB,aAClBC,EAAkB,cAClBC,EAAsB,IAAMnJ,EAAa,QAAU,kBACnDoJ,EAAqB,SAEpBnzV,KAAKgzV,GAAV,CAGA,IAAII,EAAkBpzV,KAAKgzV,GAAiBnuU,OAAO,QACnD,QAAUiuU,EAAwB9yV,KAAKizV,UAAqB,IAAWH,GAAiCA,EAAsBj5U,WAAWrY,SACzIxB,KAAKizV,GAAmBjzV,KAAKmvV,oBAAoBnvV,KAAKwuV,iBAAiBuE,EAAahJ,EAAYqJ,IAChGpzV,KAAKmzV,GAAoBt5U,WAAWrY,SAChC,IAAMuoV,EACN/pV,KAAKmzV,GAAsBnzV,KAAKgzV,IAEhChzV,KAAKmzV,GAAsBnzV,KAAKkzV,GAChClzV,KAAKkzV,GAAuBlzV,KAAKgzV,IAErC,IAAIK,EAAerzV,KAAKwuV,kBAAkBuE,EAAYK,GACtDpzV,KAAKgzV,GAAmBhzV,KAAKsvV,iBAAiB+D,GAAgBrzV,KAAKmvV,oBAAoBkE,GAAgB,QAE3GR,eAAgB,YACZ52S,EAAAA,EAAAA,IAAKj8C,KAAKutV,eAAgB,CACtB70U,KAAM,EACNI,IAAK,KAGbyyO,OAAQ,WACJvrP,KAAKuxN,WACLvxN,KAAKszV,8BACEtzV,KAAKutV,sBACLvtV,KAAKw+H,kBACLx+H,KAAKmyV,UAEhBmB,qBAAsB,kBACXtzV,KAAK6xV,iBAEhB0B,cAAe,WACXvzV,KAAK8qV,MAAMjxU,WAAWrY,SACtBxB,KAAKqvV,aAAervV,KAAKqvV,YAAYx1U,WAAWrY,SAChDxB,KAAK2tV,iBAAmB3tV,KAAK2tV,gBAAgB9zU,WAAWrY,SACxDxB,KAAKwvV,YAAcxvV,KAAKwvV,WAAW31U,WAAWrY,gBACvCxB,KAAK8qV,aACL9qV,KAAK2tV,uBACL3tV,KAAKqvV,mBACLrvV,KAAKwvV,kBACLxvV,KAAKgnV,eAEhB3qH,SAAU,WACNn+L,aAAal+B,KAAKyuV,wBAClBzuV,KAAKuxN,YAETq8H,cAAe,WACX5tV,KAAKwzV,oBACLxzV,KAAKuzV,gBACLvzV,KAAK8uV,gBAEThlG,mBAAoB,WAChB9pP,KAAKyvV,mBAETgE,gBAAiB,WACbzzV,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK6tV,kBAAkB7tV,KAAK6kB,OAAO,iBAEvC6uU,iBAAkB,WACd,IAAIC,EACJ3zV,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK8qV,MAAMjmU,OAAO,gBAAiB,MACnC,QAAU8uU,EAAyB3zV,KAAK2tV,uBAAoB,IAAWgG,GAAkCA,EAAuB9uU,OAAO,gBAAiB,OAE5J8iU,mBAAoB,SAAS3hG,EAAYz/N,GACrC,IAAIqtU,EAAwBC,EAAmBC,EAC/C9zV,KAAK8qV,MAAMjmU,OAAOmhO,EAAYz/N,GAC9B,QAAUqtU,EAAyB5zV,KAAK2tV,uBAAoB,IAAWiG,GAAkCA,EAAuB/uU,OAAOmhO,EAAYz/N,GACnJ,QAAUstU,EAAoB7zV,KAAKqvV,mBAAgB,IAAWwE,GAA6BA,EAAkBhvU,OAAOmhO,EAAYz/N,GAChI,QAAUutU,EAAmB9zV,KAAKwvV,kBAAe,IAAWsE,GAA4BA,EAAiBjvU,OAAOmhO,EAAYz/N,IAEhIwtU,mBAAoB,SAASjuU,GACzB9lB,KAAKg0V,6BACLh0V,KAAK6kB,OAAO,YAAa7kB,KAAKonV,eAAethU,IAC7C9lB,KAAK2nV,mBAAmB,MAAO3nV,KAAK+rV,gBAExCkI,mBAAoB,SAASruU,GACzB5lB,KAAKg0V,6BACLh0V,KAAK6kB,OAAO,YAAa7kB,KAAKonV,eAAexhU,IAC7C5lB,KAAK2nV,mBAAmB,MAAO3nV,KAAK8rV,gBAExCkI,2BAA4B,WACxBh0V,KAAK6kB,OAAO,CACRspU,UAAW,KACXC,UAAW,OAEfpuV,KAAK2nV,mBAAmB,MAAO3nV,KAAK+rV,eACpC/rV,KAAK2nV,mBAAmB,MAAO3nV,KAAK8rV,gBAExC7E,oBAAqB,SAASrlV,EAAO42G,GAAe,WAChDA,EAAcv4G,SAAQ,SAAAC,GAClB,EAAK0gV,QAAQ,gBAAY,EAAQ,EAAKkK,MAAM5H,eAAehjV,OAE/D0B,EAAM3B,SAAQ,SAAAC,GACV,EAAK0gV,QAAQ,YAAY,EAAM,EAAKkK,MAAM5H,eAAehjV,OAEzDF,KAAK6kB,OAAO,cAAgB,IAC5B2zF,EAAcv4G,SAAQ,SAAAC,GAClB,EAAK0gV,QAAQ,gBAAY,EAAQ,EAAK+M,gBAAgBzK,eAAehjV,OAEzE0B,EAAM3B,SAAQ,SAAAC,GACV,EAAK0gV,QAAQ,YAAY,EAAM,EAAK+M,gBAAgBzK,eAAehjV,SAI/EgnV,cAAe,SAAStlV,GACpB,IAAI2iB,EACJ3iB,EAAQ,QAAU2iB,EAAS3iB,SAAU,IAAW2iB,EAASA,EAASvkB,KAAK6kB,OAAO,eAC9E,IAAIqvU,EAAS,MAAQ,IAAI/iG,EAAAA,EAErBgjG,EADOn0V,KAAKiuV,eAAersV,GACXshV,eAAethV,GACnC5B,KAAK4gV,QAAQ,KAAMsT,EAAQC,GAC3Bn0V,KAAK4gV,QAAQ,mBAAoBsT,GACjCl0V,KAAKstV,oBAAoB4G,IAE7BE,uBAAwB,SAAS5lS,EAAUhoC,GACvCxmB,KAAK0tV,qBAAsB,EAC3Bl/R,EAASxoC,MAAMhmB,KAAMwmB,UACdxmB,KAAK0tV,qBAEhBxxH,eAAgB,SAAS11M,GACrB,IACW5kB,EAEP4kB,EAFA5kB,MACe42G,EACfhyF,EADAgyF,cAEJ,OAAQhyF,EAAKhZ,MACT,IAAK,QACDxN,KAAKuxN,SAAS/qM,GACdxmB,KAAKszV,uBACL,MACJ,IAAK,MACL,IAAK,MACDtzV,KAAK8lB,SAAM,EACX9lB,KAAK4lB,SAAM,EACX5lB,KAAKo0V,uBAAuBp0V,KAAKooV,mBAAoB,CAACpoV,KAAK6kB,OAAO,iBAClE7kB,KAAK4tV,gBACL5tV,KAAK8tV,mBACL,MACJ,IAAK,gBACD9tV,KAAKitV,4BACLjtV,KAAKwnV,mBACL,MACJ,IAAK,iBACDxnV,KAAK4tV,gBACL5tV,KAAK4wV,2BACL,MACJ,IAAK,cACD5wV,KAAK4gV,QAAQ,UAAM,EAAQ5gV,KAAK8qV,MAAM5H,eAAe1qO,IACrDx4G,KAAKooV,mBAAmBxmV,GACxB,MACJ,IAAK,YACD5B,KAAK6Z,WAAWge,YAAYq3T,oBAA4B12O,GACxDx4G,KAAK8sV,oBACL9sV,KAAK4tV,gBACL5tV,KAAK8tV,mBACL9tV,KAAKknV,gBACL,MACJ,IAAK,eACL,IAAK,eACDlnV,KAAK8sV,oBACL9sV,KAAK4wV,2BACL,MACJ,IAAK,QACG,WAAa5wV,KAAK6kB,OAAO,kBACzB7kB,KAAKsrV,mBAAmB+I,oBAAoB,CAACzyV,GAAQ,CAAC42G,IAE1Dx4G,KAAKqyV,gBAAgBzwV,GACrB5B,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,SACG,WAAaxmB,KAAK6kB,OAAO,kBACzB7kB,KAAKsrV,mBAAmB+I,oBAAoBzyV,EAAO42G,GAEvDx4G,KAAKs0V,wBAAwB1yV,EAAO42G,GACpCx4G,KAAK0rV,2BAAsB,GAC3B,MACJ,IAAK,aACD1rV,KAAK4tV,gBACL5tV,KAAK8tV,mBACL,MACJ,IAAK,cACD9tV,KAAK8qV,MAAMjmU,OAAO,cAAejjB,GACjC,MACJ,IAAK,qBACD5B,KAAKstV,oBAAsBttV,KAAKw7N,sBAAsB,sBACtD,MACJ,IAAK,gBACL,IAAK,0BACL,IAAK,eACL,IAAK,kBACDx7N,KAAK0rP,cACL,MACJ,IAAK,iBACD,MACJ,IAAK,aACL,IAAK,kBACL,IAAK,iBACD1rP,KAAK4tV,gBACL,MACJ,QACI5tV,KAAKuxN,SAAS/qM,KAG1B+tU,iBAAkB,WACd,OAAOv0V,KAAK8qV,MAAMjmU,OAAO,qBAGjCvE,EAAAA,EAAAA,SAAkB,aAAcspU,IAChC,IC/sCA,GD+sCA,6PE/rCA,IAAI4K,EAAuB,0BACvBC,EAAoB,uBACHx4T,EAAAA,SAAAA,mIACjB,WAAW,WACHujF,GAAQ,wDAiBZ,OAhBAA,EAAMxN,UAAY,WAEd,GADsC,SAAW,EAAKntF,OAAO,yBACxB,CACjC,IAAI6vU,GAA4BhnV,EAAAA,EAAAA,GCzBzC,SAAqClF,EAAI+gB,GAC5C,IAAIowP,EAAiBg7E,EAErB,OADW,QAAUh7E,EAAkB,QAAUg7E,EAAmBnsV,EAAGm5H,mBAAgB,IAAWgzN,OAAmB,EAASA,EAAiBl0V,KAAK+H,UAAQ,IAAWmxQ,EAAkBA,EAAkBn3Q,UAC/Lo3E,cAAcrwD,GDsBoBqrU,CAA4B,EAAK90V,UAAW,2CAC9E,OAAS40V,QAA6B,IAAWA,GAAqCA,EAA0B78T,YAAY28T,GACxH,EAAKK,8BACL32T,aAAa,EAAK22T,8BAEtB,EAAKA,6BAA+BhyV,YAAW,WAC3C,OAAS6xV,QAA6B,IAAWA,GAAqCA,EAA0Bj1U,SAAS+0U,KAC1H,OAGXh1O,EAAMs1O,qBAAuB,SAAAt0V,GACzB,EAAKu0V,0BAA4Bv0V,GAE9Bg/G,gCAEX,SAAe1/G,IACX,6DAAqBA,GACrBE,KAAK60V,kCAA+B,EACpC70V,KAAKg1V,mBAAoBv3G,EAAAA,EAAAA,MACzB5vO,EAAAA,EAAAA,IAAK7N,KAAK6Z,WAAW,GAAI46U,EAAmBz0V,6BAEhD,WACI,IAAIg7R,EACJ,QAAUA,EAAeh7R,KAAK6kB,OAAO,4BAAyB,IAAWm2Q,GAAwBA,wCAErG,YACI,oEACAh7R,KAAKi1V,mBAAqBj1V,KAAKw7N,sBAAsB,iBAAkB,CACnE6b,kBAAmB,CAAC,WAAY,0CAGxC,SAAaj9N,IACT,2DAAmBA,GACnBpa,KAAK6kB,OAAOm+R,EAAAA,QAAAA,sBAAuC5oS,sCAEvD,WACI,OAAOtR,EAAAA,EAAAA,IAAO,kEAA4B,CACtCosV,wBAAyB,CACrB1rM,EAAG,EACH3iG,EAAG,GAEPsuS,yBAA0B,4CAGlC,SAAwBC,EAAaC,GAAkB,WAC/CC,GAAqBxsV,EAAAA,EAAAA,GAAO,GAAIssV,EAAYvwU,UAC5C0wU,EAAc,kBAAM,EAAKC,QAAQH,EAAkBC,IACvDC,IACAH,EAAY98T,GAAG,gBAAiBi9T,mCAEpC,SAAiB3zV,EAAO42G,GACpB,IAAIi9O,IAAkB9sS,EAAAA,EAAAA,IAAU/mD,MAAW+mD,EAAAA,EAAAA,IAAU6vD,GACjD52G,IAAU42G,GAAkBi9O,GAC5Bz1V,KAAKg1V,kBAAkBj3G,KAAK,CACxBn8O,MAAOA,EACP4gB,OAAQxiB,8CAIpB,SAAwB4B,EAAO42G,GAC3B,IAAIk9O,EACJ,QAAUA,EAAwB11V,KAAKi1V,0BAAuB,IAAWS,GAAiCA,EAAsBj1V,KAAKT,KAAM,CACvIF,QAASE,KAAK6Z,WACd2+F,cAAeA,EACf52G,MAAOA,EACP4Y,MAAOxa,KAAK+0V,4BAEhB/0V,KAAK+0V,+BAA4B,gCAErC,SAAelwU,GACX,IACUrX,EAGNqX,EAHArX,KACegrG,EAEf3zF,EAFA2zF,cACO52G,EACPijB,EADAjjB,MAKJ,OAHI4L,QAAQ,IAAWxN,KAAKosU,oBAAoB5+T,IAC5CxN,KAAKqqU,WAAW78T,GAEZA,GACJ,IAAK,QACDxN,KAAK21V,iBAAiB/zV,EAAO42G,GAC7Bx4G,KAAKs0V,wBAAwB1yV,EAAO42G,GACpC,MACJ,IAAK,iBACDx4G,KAAKi1V,mBAAqBj1V,KAAKw7N,sBAAsB,iBAAkB,CACnE6b,kBAAmB,CAAC,WAAY,cAEpC,MACJ,IAAK,UACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACDr3O,KAAK6kB,OAAOm+R,EAAAA,QAAAA,6BAA8Cn+R,EAAQ7kB,KAAK6kB,YAE/E,6DAAqBA,wBAEzB,WACI,IACWjjB,EACP5B,KAAKyyN,qBADL7wN,MAEJ5B,KAAK6kB,OAAO,CACRjjB,MAAOA,4BAGf,YACI,yDACAiM,EAAAA,EAAAA,IAAK7N,KAAKF,UAAW20V,EAAmB,MACpCz0V,KAAK60V,8BACL32T,aAAal+B,KAAK60V,oCAlHT54T,CAAewjF,EAAAA,GAsHhCm2O,EAAeC,EAAAA,EAAAA,SACfC,EAAc,SAAA1nV,GAAQ,OAAIwnV,EAAaxnV,IAAaA,aAAoB6tB,GAC5EA,EAAO85T,SAAWD,EAClBD,EAAAA,EAAAA,SAAqBC,ME3IAE,EAAAA,SAAAA,wIACjB,WACI,OAAO,4BAEX,WAEI,OADkBh2V,KAAK6Z,WAAW,GACfxY,UAAU0d,SAAS,wDAE1C,WACI,MAAO,CAAC,iCAEZ,WACI,IAAIygG,GAAQ,wDAIZ,OAHI,OAASA,EAAM59G,QACf49G,EAAM59G,MAAQggH,QAAQpC,EAAM59G,QAEzB49G,QAhBMw2O,CAAiB/5T,uICIlCg6T,EAAmB,CACnB,CAAC,GAAI,IACL,CAAC,GAAI,KAELC,EAAmB,CACnB,CACI,CAAC,GAAI,GACL,CAAC,GAAI,KAET,CACI,CAAC,GAAI,IACL,CAAC,GAAI,MAIb,SAASC,IACL,IAAI5lU,GAAQ+tN,EAAAA,EAAAA,WACZ,MAAO,CACH83G,iBAAiBna,EAAAA,EAAAA,YAAW1rT,GAC5B8lU,gBAAgBC,EAAAA,EAAAA,WAAU/lU,IAoBlC,SAASgmU,EAAsBC,EAAUC,GACrC,IAAIC,EATR,SAA4BD,GACxB,MAGIN,IAFgBE,EADpB,EACIA,eACiBD,EAFrB,EAEIA,gBAEJ,OAAOF,GAAkBO,IAAYL,IAAkBC,GAIjCM,CAAmBF,GAErCG,EAAsBF,EAnB9B,WACI,MAGIP,IAFgBE,EADpB,EACIA,eACiBD,EAFrB,EAEIA,gBAEJ,OAAOH,GAAkBG,IAAkBC,GAarBQ,GAEtB,OAAOlxU,KAAK+iK,KAAKkuK,EAAsBJ,GC9C3C,IAAIliE,EAAY,CAAC,YAAa,QAuCjBwiE,EAAb,0CACI,WAAYt3O,GAAO,6BACf,cAAMA,IACDroB,MAAQ,GACb,EAAK4/P,YAAaloB,EAAAA,EAAAA,MAClB,EAAKoB,cAAgB,GACrB,EAAKl+H,eAAiB,EAAKA,eAAetnM,MAApB,WACtB,EAAKusV,gBAAkB,EAAKA,gBAAgBvsV,MAArB,WACvB,EAAKwsV,YAAc,EAAKA,YAAYxsV,MAAjB,WACnB,EAAKysV,oBAAsB,EAAKA,oBAAoBzsV,MAAzB,WARZ,EADvB,4CAWI,WACI,MAAO,CAAC,IAAIy2G,EAAAA,GAAclhH,KAAK+xM,eAAgB,CAAC/xM,KAAKw/G,MAAMi3O,UAAWz2V,KAAKw/G,MAAMhnG,UAZzF,2BAcI,WACI,IAAI02T,EACJ,QAAUA,EAAkBlvU,KAAK2/G,SAAS,UAAO,IAAWuvN,GAA2BA,EAAgB7wT,OAAO,CAACre,KAAKw/G,MAAMi3O,UAAWz2V,KAAKw/G,MAAMhnG,SAhBxJ,4BAkBI,WACI,MAGIxY,KAAKw/G,MAFMi3O,EADf,EACIA,UACMj+U,EAFV,EAEIA,KAEJ,IAAI8jN,EAAAA,EAAAA,OAAe9jN,EAAM,CACrB,IACI2+U,EAAcZ,EADAv2V,KAAKi3V,YAAYz+U,GACkBi+U,GACrDz2V,KAAKg3V,gBAAgBG,MA1BjC,6BA6BI,SAAgBv8S,GACE56C,KAAK+2V,WAAWz4G,QACtBrgO,MAAM28B,SAAW,GAAGhf,OAAOgf,EAAU,QA/BrD,yBAiCI,SAAYpiC,GACR,OAAI6yM,EAAAA,EAAAA,IAAS7yM,GACFA,EAEPA,EAAKmjH,SAAS,MACP1lF,SAASz9B,EAAM,IAEnBxY,KAAKk3V,wBAxCpB,iCA0CI,WACI,IAAIp3V,EAAUE,KAAK+2V,WAAWz4G,QAC1B84G,GAAoB18E,EAAAA,EAAAA,GAAwB56Q,GAEhD,OADuBm2C,SAAS,OAASmhT,QAAqB,IAAWA,OAAoB,EAASA,EAAkB9lV,MAAO,MA7CvI,qBAgDI,WAAgB,WACZ,YAAI,IAAWtR,KAAKiwU,cAAconB,UACvBr3V,KAAKiwU,cAAconB,UAEvBr3V,KAAKiwU,cAAconB,UAAa,WACnC,IACU7+U,EACN,EAAKgnG,MADLhnG,KAEAlH,GAAQqkP,EAAAA,EAAAA,IAAmB,QAASn9O,GAExC,MAAO,CACHjH,QAFSokP,EAAAA,EAAAA,IAAmB,SAAUn9O,GAGtClH,MAAOA,GARwB,KApD/C,0BAgEI,WACI,IAAIs+T,EAAc5vU,KAAKw/G,MAEvB,OADgBk1K,EAAAA,EAAAA,GAA8Bk7C,EAAat7C,KAlEnE,iCAqEI,SAAoBh1K,EAAWC,EAAW5kG,IACtC,mEACI3a,KAAKw/G,MAAMhnG,OAAS8mG,EAAU9mG,OAC9BxY,KAAKiwU,cAAconB,eAAY,KAxE3C,oBA2EI,WACI,IAAI73O,EAAQx/G,KAAKw/G,MACjB,OA5FkB,SAAA9lG,GACtB,IACe29U,EAEX39U,EAFA29U,UACYN,EACZr9U,EADAq9U,WAEJ,OAAOjnB,EAAAA,EAAAA,IAAY,EAAG,OAAQ,mBAAoB,KAAM,EAAG,CACvD7xT,OAAO4mG,EAAAA,EAAAA,IAAgBwyO,IACxB,KAAMN,GAqFEhnB,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,GACpBu3O,WAAY/2V,KAAK+2V,WACjBC,gBAAiBh3V,KAAKg3V,gBACtBC,YAAaj3V,KAAKi3V,YAClBC,oBAAqBl3V,KAAKk3V,oBAC1BG,UAAWr3V,KAAKq3V,UAChBxnB,eAAgB7vU,KAAK6vU,qBApFjC,GAAkCnwN,EAAAA,IAwFlCo3O,EAAa5pB,aA9FkB,CAC3BupB,WAAW,4BClCXniE,EAAY,CAAC,YAAa,qBAAsB,OAAQ,YAAa,eAAgB,WAAY,2BAA4B,oBAAqB,SAAU,OAAQ,oBAAqB,WAAY,YAAa,UAAW,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,uBAAwB,WAAY,OAAQ,kBAAmB,mBAAoB,wBAAyB,4BAA6B,mBAAoB,QAAS,cAAe,UAAW,SAkH7dgjE,EAAgBxwV,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0BqE,EAAAA,IAAc1tU,OAAOqpU,0BAA0B,CAChJxtU,KAAM,GACN40V,0BAA0B,EAC1BlqB,oBAAoB,EACpBE,mBAAmB,EACfD,wBACA,MAAO,YAAcnlG,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD5zL,cAAc,EACdk7R,YAAa,iBAEN+nB,EAAoB,CACvB70V,WACA,OAAO20V,EAAc30V,MAErB40V,+BACA,OAAOD,EAAcC,0BAErBlqB,yBACA,OAAOiqB,EAAcjqB,oBAErBE,wBACA,OAAO+pB,EAAc/pB,mBAErBD,wBACA,OAAOgqB,EAAchqB,mBAErB/4R,mBACA,OAAO+iT,EAAc/iT,cAErBk7R,kBACA,OAAO6nB,EAAc7nB,aAErBh5L,eACA,OAAO6gN,EAAc7gN,UAErBjpI,WACA,OAAO8pV,EAAc9pV,MAErBk1S,sBACA,OAAO40C,EAAc50C,iBAErBC,uBACA,OAAO20C,EAAc30C,kBAErB8xB,4BACA,OAAO6iB,EAAc7iB,uBAErBC,gCACA,OAAO4iB,EAAc5iB,2BAErB9xB,uBACA,OAAO00C,EAAc10C,kBAErB1yR,cACA,OAAOonU,EAAcpnU,SAErBo0C,gBACA,OAAOgzR,EAAchzR,WAErBj2D,gBACA,OAAOipV,EAAcjpV,WAErBjD,eACA,OAAOksV,EAAclsV,UAErB0zI,eACA,OAAOw4M,EAAcx4M,UAErBj2I,cACA,OAAOyuV,EAAczuV,SAErBojU,WACA,OAAOiE,EAAAA,GAAAA,OAYF8lB,EAAb,0CACI,WAAYx2O,GAAO,6BACf,cAAMA,IACDi4O,WAAY5oB,EAAAA,EAAAA,MACjB,EAAK13O,MAAQ,CACTv1F,WAAO,IAAW,EAAK49G,MAAM59G,MAAQ,EAAK49G,MAAM59G,MAAQ,EAAK49G,MAAMjrE,cAEvE,EAAKxzC,MAAQ,EAAKA,MAAM0J,MAAX,WACb,EAAKg+C,KAAO,EAAKA,KAAKh+C,MAAV,WACZ,EAAK8xU,cAAgB,EAAKA,cAAc9xU,MAAnB,WACrB,EAAKu+T,QAAU,EAAKA,QAAQv+T,MAAb,WATA,EADvB,4CAYI,WACI,MAAO,EAAC82G,EAAAA,EAAAA,SAbhB,2BAeI,SAAc/mG,GAAO,IASLk9U,EASAC,EAlBK,OACjB,EAII33V,KAAKw/G,MAHqB+3O,EAD9B,EACIA,yBACU9gN,EAFd,EAEIA,SACsBq+M,EAH1B,EAGIA,qBAECr+M,IACD,OAASq+M,QAAwB,IAAWA,GAAgCA,EAAqBt6U,GAC7F+8U,GAEAv3V,KAAKu5I,UAAS,SAAAu5L,GAEV,MAAO,CACHlxU,MAFJ81V,EAAa,aAAU,IAAW,EAAKl4O,MAAM59G,MAAQ,EAAK49G,MAAM59G,MAAQkxU,EAAiBlxU,eAAa,IAAW,EAAK49G,MAAM59G,MAAQ,EAAK49G,MAAM59G,MAAQkxU,EAAiBlxU,QAAS,SAKrL5B,KAAKw/G,MAAMiwN,YAAYioB,KAGvB13V,KAAKu5I,UAAS,SAAAu5L,GACV,IAAI9rF,EAEJ,MAAO,CACHplP,MAFJ+1V,IAAc,QAAU3wG,OAAO,IAAW,EAAKxnI,MAAM59G,MAAQ,EAAK49G,MAAM59G,MAAQkxU,EAAiBlxU,aAAU,IAAWolP,GAAOA,OAKjIhnP,KAAKw/G,MAAMiwN,YAAYkoB,OAzCvC,qBA6CI,SAAQn3V,GACJ,IACeq3G,EACX73G,KAAKw/G,MADL3H,UAGS2wL,EAGThoS,EAHAgoS,QACepwL,EAEf53G,EAFA43G,cACOl7D,EACP18C,EADA08C,MAEAruC,EAAS,OAASgpG,QAAa,IAAWA,OAAY,EAASA,EAAUr3G,GAC7E,GAAI,OAASqO,QAAU,IAAWA,GAAUA,EAAOk3B,OAC/C,OAAOl3B,EAEP,UAAY25R,GAAW,UAAYtrP,IACnCk7D,EAAc/wG,iBACdrH,KAAKu8U,cAAcnkO,MA5D/B,sBAgEI,WACI,OA7OY,SAAApsG,GAChB,IACUrJ,EAENqJ,EAFArJ,KACOf,EACPoK,EADApK,MAIAmyU,EAAa,CACb,eAAe,EACf,uBAAuB,IAJbnyU,EAKV,yBAA0Be,EAC1B,4BALgB,OADNf,GAQd,OAAOoyU,EAAAA,EAAAA,GAAeD,GAgOXiB,EAAc/8G,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKw/G,MAAO,CAC1C59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,WAlE/E,gBAqEI,WACI,IAAIklS,GAAU,UAAU,IAAW9mS,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,OAEhFiN,EAAS,CACT2jI,KAAM,WACNs0J,QAHgB,aAAU,IAAW9mS,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,OAG7D,QAAU,GAAGg6B,OAAOkrQ,IAEjD,OAAO7uE,EAAAA,EAAAA,GAAS,GAAIppN,EAAQ7O,KAAKw/G,MAAMysN,QA5E/C,0BA8EI,WACI,IAAIsJ,GAAoBt9G,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKw/G,MAAO,CACzC59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,QAG3E,OADgB8yR,EAAAA,EAAAA,GAA8B6gD,EAAmBjhD,KAlFzE,mBAqFI,WACIt0R,KAAKy3V,UAAUn5G,QAAQv9O,UAtF/B,kBAwFI,WACIf,KAAKy3V,UAAUn5G,QAAQ71L,SAzF/B,oBA2FI,WACI,IAAI+2D,EAAQx/G,KAAKw/G,MACjB,OA1PkB,SAAA9lG,GACtB,IACUuyT,EAgCNvyT,EAhCAuyT,KACYhrM,EA+BZvnH,EA/BAgT,WACW+qU,EA8BX/9U,EA9BA+9U,UACS5/O,EA6BTn+F,EA7BAsvT,QACehiQ,EA4BfttD,EA5BA6iU,cALJ,EAiCI7iU,EA3BA8lG,MACei0N,EAPnB,EAOQA,UACoBpG,EAR5B,EAQQA,mBACWh/T,EATnB,EASQA,UACUjD,EAVlB,EAUQA,SACmBkiU,EAX3B,EAWQA,kBACQ/7T,EAZhB,EAYQA,OACMqc,EAbd,EAaQA,KACmB2/S,EAd3B,EAcQA,kBACUipB,EAflB,EAeQA,SACStmU,EAhBjB,EAgBQA,QACM1iB,EAjBd,EAiBQA,KACWwkG,EAlBnB,EAkBQA,UACUykC,EAnBlB,EAmBQA,SACY1kE,EApBpB,EAoBQA,WACU+sE,EArBlB,EAqBQA,SACMn8I,EAtBd,EAsBQA,KACiB+/S,EAvBzB,EAuBQA,gBACkBC,EAxB1B,EAwBQA,iBACuB8xB,EAzB/B,EAyBQA,sBAC2BC,EA1BnC,EA0BQA,0BACkB9xB,EA3B1B,EA2BQA,iBACOhhT,EA5Bf,EA4BQA,MACSiH,EA7BjB,EA6BQA,QACOyI,EA9Bf,EA8BQA,MAEYu+T,EAChBn2T,EADAm2T,eAEJ,OAAOnB,EAAAA,EAAAA,KAAewF,EAAAA,EAAAA,IAAqB,EAAGj4S,EAAAA,IAAQg8L,EAAAA,EAAAA,GAAS,CAC3Dg0G,KAAMA,EACNhrM,QAASA,EACTj6D,QAASA,EACT6wC,UAAWA,EACX47N,UAAWA,EACXpG,mBAAoBA,EACpBC,kBAAmBA,EACnBC,kBAAmBA,EACnBl/T,UAAWA,EACXjD,SAAUA,EACVqrI,SAAUA,EACV7oH,KAAMA,EACNrc,OAAQA,EACRD,MAAOA,EACPygE,WAAYA,EACZ+sE,SAAUA,EACVj2I,QAASA,EACT65S,gBAAiBA,EACjBC,iBAAkBA,EAClB8xB,sBAAuBA,EACvBC,0BAA2BA,EAC3B9xB,iBAAkBA,EAClB1yR,QAASA,EACT8hF,UAAWA,GACZ69N,EAAgB,CACf9kU,UAAU61H,EAAAA,EAAAA,IAAe,EAAC8tM,EAAAA,EAAAA,KAAeoB,EAAAA,EAAAA,IAAY,GAAI,QAAS,KAAM,KAAM,GAAG73G,EAAAA,EAAAA,GAAS,CACtFt0M,KAAM,SACN/hB,MAAO,GAAGg6B,OAAOh6B,IAClB4L,GAAQ,CACPA,KAAMA,OACJsiU,EAAAA,EAAAA,IAAY,EAAG,MAAO,wBAAyB,EAACoE,EAAAA,EAAAA,IAAqB,EAAG4iB,EAAc,CACxFt+U,KAAMg+U,EACNC,WAAW,IAAS70V,IACpBe,IAAQmtU,EAAAA,EAAAA,IAAY,EAAG,OAAQ,mBAAoBntU,EAAM,IAAK,IAAK,KACvE,KAAM80V,IAoLC1nB,CAAa,CAChBvwN,OAAOy4G,EAAAA,EAAAA,GAAS,GAAIz4G,EAAO,CACvB59G,WAAO,IAAW5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKw/G,MAAM59G,MAAQ5B,KAAKm3F,MAAMv1F,QAEvE61V,UAAWz3V,KAAKy3V,UAChBlb,cAAev8U,KAAKu8U,cACpBvT,QAAShpU,KAAKgpU,QACdt8S,WAAY1sB,KAAK0sB,WACjBu/S,KAAMjsU,KAAKisU,KACX4D,eAAgB7vU,KAAK6vU,qBAtGjC,GAA8B5vN,EAAAA,IAoH9B+1O,EAAS9oB,aAAesqB,EACxB,IAAIla,EAAuB,OCxTN0Y,EAAAA,SAAAA,mIACjB,WACI,IAAIx2O,GAAQ,wDAEZ,OADAA,EAAM3H,UAAY73G,KAAKu9U,oBAAoB/9N,EAAM3H,WAC1C2H,uBAEX,WAAQ,MACAg+N,EACJ,OAAO,QAAUA,EAAgBx9U,KAAK0sU,eAAY,IAAW8Q,OAAgB,GAAS,EAAAA,GAAcz8U,MAAd,QAAuBgH,+BAEjH,WAAO,MACC01U,EACJ,OAAO,QAAUA,EAAiBz9U,KAAK0sU,eAAY,IAAW+Q,OAAiB,GAAS,EAAAA,GAAeh1R,KAAf,QAAuB1gD,4CAEnH,WACI,MAAO,CACHiqG,UAAW,GACXhrC,QAAS,4BAGjB,WACI,MAAO,CACH2hQ,OAAQ,CACJ,CAAC,QAAS,eAAgB,gBAE9BD,UAAW,CAAC,eAAgB,kBAAmB,mBAAoB,SACnE79Q,SAAU,GACVp0B,UAAW,GACX+oF,MAAO,CAAC,OAAQ,WAAY,2BAA4B,qBAAsB,oBAAqB,oBAAqB,uBAAwB,eAAgB,cAAe,WAAY,OAAQ,kBAAmB,mBAAoB,wBAAyB,4BAA6B,mBAAoB,UAAW,YAAa,YAAa,YAAa,YAAa,WAAY,SAAU,OAAQ,UAAW,YAAa,aAAc,WAAY,UAAW,QAAS,OAAQ,sCAGve,WACI,OAAOo4O,QAhCM5B,CAAiBpY,IAmCtCt9T,EAAAA,EAAAA,SAAkB,aAAc01U,GAChCA,EAAShpG,eDqRF,SAAwBv5K,GAC3B6pQ,EAAqB18U,KAAK6yE,GAC1BuiR,EAAS9oB,aAAepmU,OAAOw4B,OAAOx4B,OAAOtB,WAAWyyN,EAAAA,EAAAA,GAASnxN,OAAOqpU,0BAA0B6lB,EAAS9oB,cAAepmU,OAAOqpU,0BAbrI,SAA8BjD,GAC1B,IAAI2qB,EAAc,CAAC,SACnB,OAAO/wV,OAAOC,KAAKmmU,GAAcxjU,QAAO,SAAC81G,EAAOxiC,GAC5C,IAAIimL,EAAYiqE,EAAalwP,GAG7B,OADAwiC,EADsBq4O,EAAYt1U,MAAK,SAAA60E,GAAC,OAAIA,IAAMpa,KAAY,UAAYA,EAASkI,OAAO,GAAGwgC,cAAgB1oC,EAASv3E,MAAM,GAAKu3E,GACxGimL,EAClBzjJ,IACR,IAMwJs4O,EAAqB90G,EAAAA,EAAAA,IAAsBs6F,QEhU1M,4FC0BIya,EAAiB11G,EAAAA,QAAAA,QAAc,CAC/Bz+G,KAAM,SAAS/pH,EAAUO,EAAS49O,GAC9Bh4P,KAAK4kB,UAAY/K,EACjB7Z,KAAKmhB,SAAW/G,EAChBpa,KAAKg4V,SAAWhgG,GAChBrO,EAAAA,EAAAA,IAAwB9vO,EAAU7Z,KAAMA,KAAKq8N,UAC7Cr8N,KAAK87N,WAETA,QAAS,WACL,IAAIvhC,GAAe7sL,EAAAA,EAAAA,GAAE,SAAS+R,SAzBD,+BA0B7Bzf,KAAK4kB,UAAU7E,OAAOw6K,GACtBv6L,KAAKi4V,UAAY,GACjBj4V,KAAKk4V,mBAETA,gBAAiB,WACbl4V,KAAKm4V,cAAc,WAAYn4V,KAAKo4V,gBAAgB3tV,KAAKzK,OACzDA,KAAKm4V,cAAc,UAAWn4V,KAAKq4V,eAAe5tV,KAAKzK,QAE3Dm4V,cAAe,SAAS5zT,EAAOhlB,GAC3B,IAAIy4O,EAAUh4P,KAAKg4V,SACfM,EAAat4V,KAAKmhB,SAASq3O,YAAYj0N,GACvC+8Q,EApCU,SAASl4D,EAAaxvN,EAAI40B,GAC5C,IAMI1Y,EANAyiT,EAAmB,SAAS32V,GACxBk0C,IAAal0C,IACb4sD,EAAS5sD,EAAOk0C,GAChBA,EAAWl0C,IAInB,MAAO,CACHwc,QAASgrO,EAAYxvN,EAAI2+T,GACzBvrR,MAAO,WACHurR,EAAiB3+T,OAyBP4+T,CAAgBx4V,KAAKmhB,SAASioO,eAAgB,WACxD,OAAOkvG,EAAWtgG,KAClB,SAASp2P,EAAOk0C,GAChB91C,KAAKy4V,QAAS,EACdl5U,EAAO3d,EAAOk0C,IAChBrrC,KAAKzK,OACPA,KAAKi4V,UAAUr3V,KAAK0gT,IAExBo3C,aAAc,WAKV,GAJA14V,KAAKy4V,QAAS,GACdh+U,EAAAA,EAAAA,IAAKza,KAAKi4V,WAAY,SAASv9U,EAAG4mS,GAC9BA,EAAQt0O,WAERhtE,KAAKy4V,OACL,OAAO,GAGfL,gBAAiB,SAASx2V,EAAOk0C,GAC7B91C,KAAK4kB,UAAU4xM,YAxDI,sBAwDgC50N,GACnD5B,KAAK4kB,UAAUhF,KAAK,kBAAmBhe,GACvC5B,KAAK24V,kBAAkB/2V,IAE3B+2V,kBAAmB,SAASC,GACxB,IAAIC,EAAiB74V,KAAKmhB,SAASm3B,MAC/BugT,GAAkBD,GAClBC,EAAeC,gBAAgB94V,KAAK4kB,YAG5CyzU,eAAgB,SAASz2V,EAAOk0C,GAC5B91C,KAAK4kB,UAAU4xM,YApEK,0BAoE8B,IAAW50N,IAAUA,IAE3Ey6N,SAAU,YACN5hN,EAAAA,EAAAA,IAAKza,KAAKi4V,WAAY,SAASv9U,EAAG4mS,GAC9BA,EAAQljS,gBAIpB25U,EAAehuS,YAAc,SAASlwC,GAClC,OAAOkzO,EAAAA,EAAAA,IAAqBlzO,EAAU7Z,OAE1C,oUC7BI+4V,EAAa,UACbC,EAAwB,WACxBC,EAAiC,8BAQjCC,EAAyB,sBACzBC,EAAkB,8BAElBC,EAAW,KACXC,EAAa,OACbC,EAAa,OACbC,EAAc,QAGdC,EAAa,OACbC,EAAc,QACdtf,EAAmBr4B,EAAAA,QAAAA,QAAe,CAClC+nC,iBAAkB,IAAMkP,EACxBzO,eAAgB,WACZ,IAAIruS,EAAO,SAASjc,EAAUx/B,IACrBi/S,EAAAA,EAAAA,qBAAoBj/S,KACrBA,EAAE6G,iBACF7G,EAAE4G,kBACFpH,KAAK05V,WAAW15T,EAAUx/B,KAGlC,OAAOsI,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BooI,MAAO,SAASn5V,GACZA,EAAE6G,iBACFrH,KAAKorV,iBAAiB5qV,IAE1BqrI,MAAO7rI,KAAKorV,iBACZT,UAAW1uS,EAAKxxC,KAAKzK,KAAMs5V,GAC3B/O,WAAYtuS,EAAKxxC,KAAKzK,KAAMu5V,GAC5B3O,QAAS3uS,EAAKxxC,KAAKzK,KAAMo5V,GACzBrO,UAAW9uS,EAAKxxC,KAAKzK,KAAMq5V,GAC3BnO,OAAQjvS,EAAKxxC,KAAKzK,KAAMo5V,GACxBjO,SAAUlvS,EAAKxxC,KAAKzK,KAAMq5V,GAC1BzhN,KAAM37F,EAAKxxC,KAAKzK,KAAMy5V,GACtBrmU,IAAK6oB,EAAKxxC,KAAKzK,KAAMw5V,MAG7BpO,iBAAkB,SAAS5qV,GACvB,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACjC,GAAKu1M,EAAa95N,OAAlB,CAGA,IAAIuqE,EAAW7qE,KAAK45V,aAAax/H,GAC7B,OAASvvJ,QAAY,IAAWA,GAAYA,EAAS7D,SACrDhnE,KAAK65V,2BAA2Bz/H,EAAcvvJ,EAAS7D,QAAS,CAC5DxsD,MAAOha,IAGfR,KAAK85V,mBAAkBhxV,EAAAA,EAAAA,GAAO,GAAItI,EAAG,CACjCoG,OAAQwzN,EAAav6M,IAAI,GACzBnR,cAAe0rN,EAAav6M,IAAI,QAGxC4yM,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BwoI,eAAe,EACfC,eAAe,EACftuV,MAAO,GACP6gB,aAAc,OACdqtT,eAAgB,KAChBF,YAAa,KACbD,WAAY,KACZD,gBAAiB,IACjBG,kBAAmB,KACnBsgB,qBAAsB,KACtB93R,WAAYg7P,EAAAA,EAAAA,OAA2B,iCACvC+8B,kBAAkB,EAClB7uU,WAAY,KACZ6vQ,gBAAiB,KACjBi/D,gBAAiB,GACjBC,qBAAsB,WACtBC,qBAAqB,EACrBC,eAAgB,KAChB/uU,iBAAa,EACbgvU,aAAc,SAAS1sV,GACnB,OAAOA,EAAOA,EAAKzC,cAAW,GAElCovV,YAAa,SAAS3sV,GAClB,OAAOA,EAAOA,EAAKhF,aAAU,MAIzC2pE,MAAO,WACHxyE,KAAKy6V,wBACLz6V,KAAK+6R,sBACL/6R,KAAKuxN,WACLvxN,KAAK06V,sBACL16V,KAAKs6R,sBAETmgE,sBAAuB,WACnB,IAAIlvU,EAAcvrB,KAAK6kB,OAAO,eAC9B7kB,KAAK26V,eAAiBpvU,GAAc+mO,EAAAA,EAAAA,eAActyP,KAAK6kB,OAAO,qBAAkB,GAEpF62M,eAAgB,WACZ17N,KAAK46V,uBACL56V,KAAK66V,2BACL76V,KAAKuxN,YAETkK,0BAA2B,WACvB,MAjGsB,QAmG1Bo/H,yBAA0B,WACtB,IAAIjjG,EAAY53P,KAAK86V,gBACrB96V,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAM,IAAIy3P,EAAAA,EAAiB,SAASpwN,EAAY15B,IACxCktE,EAAAA,EAAAA,IAAcltE,GACd7N,KAAK+6V,4BAA4BltV,EAAM05B,IAEnCqwN,IAAa18K,EAAAA,EAAAA,IAAW08K,EAAUj1P,QAClCkL,EAAO+pP,EAAUj1P,KAAKkL,IAE1B05B,EAAW5kC,KAAKkjE,QAAO25L,EAAAA,EAAAA,eAAc3xP,EAAM,QAEjDpD,KAAKzK,MAAOA,KAAKg7V,qBAAsBh7V,KAAK6kB,OAAO,kCAAmC+yO,MAGhGojG,mBAAoB,WAChB,MAAO,CAAC,OAAQ,SAEpBF,cAAe,WACX,GAAI96V,KAAK26V,eACL,MAAO,CACHh4V,KAAM3C,KAAK26V,iBAIvBI,4BAA6B,SAASltV,EAAM05B,IACpCohB,EAAAA,EAAAA,IAAU96C,EAAKlL,OACf4kC,EAAW5kC,KAAKkL,EAAKlL,OAErBgmD,EAAAA,EAAAA,IAAU96C,EAAK25C,OACfjgB,EAAWigB,KAAK35C,EAAK25C,OAG7BozS,qBAAsB,WAAW,WACzBK,GAAWjzG,EAAAA,EAAAA,IAAchoP,KAAK6Z,WA3IjB,UA4IjB,GAAKohV,EAAS36V,SAAUN,KAAK6kB,OAAO,SAASvkB,OAA7C,CAGA,IAAIoL,EAAQuvV,EAAS/0V,KAAI,SAAA8gP,GACrB,IACalnP,EAETknP,EAFAlnP,QACSsa,EACT4sO,EADA5sO,QAQJ,MANyB,KAAK8oB,KAAKpjC,EAAQygE,aAAenmD,EAAQuP,SAE9DvP,EAAQuP,SAAW,EAAKuxU,qBAAqBp7V,IAE7C4N,EAAAA,EAAAA,GAAE5N,GAAS0B,SAER4Y,KAEXpa,KAAK6kB,OAAO,QAASnZ,KAEzBwvV,qBAAsB,SAASh7V,GAC3B,IAAIi7V,EAhKkB,QAgKqB,IAAIhqG,EAAAA,EAC3C2pF,GAAYptU,EAAAA,EAAAA,GAAExN,GAAMitJ,SAAS7xE,QAAQ1jD,WAAW,gBAAgBnY,SAASy5U,GAE7E,OADAl5V,KAAK8sP,cAAcquG,EAAYrgB,GACxBqgB,GAEXC,mBAAoB,WAChB,MAAO,CACH30S,UAAU,IAGlBi0S,oBAAqB,WACjB16V,KAAKq7V,oBAAsB,GAE/BtyD,aAAc,WACV,OAAO/oS,KAAK6Z,YAEhB45U,gBAAiB,SAASjzV,GAEtB,GADAR,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACrB/H,KAAKs7V,eAAe96V,EAAEoG,QAA3B,CAGA,IAAI20V,GAAkB7tV,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACpC,GAAI02U,EAAgBj7V,OAChBN,KAAKw7V,gBAAgBD,OAClB,CACH,IAAIE,EAAcz7V,KAAK07V,iBACnBD,EAAYn7V,QACZN,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBqlI,OAI3D/H,iBAAkB,WACd1zV,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAIooC,GAAUziC,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBAC5B7kB,KAAK27V,wBAAwBxrT,GAAS,IAE1CyrT,kBApLkC,SAoLhB/hV,GACd,OAAOA,EAASwC,KAAKrc,KAAK6pV,mBAE9B6R,eAAgB,SAASp/N,GACrB,IAAIi/N,GAAkB7tV,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACpC,GAAI02U,EAAgBj7V,OAChB,OAAOi7V,EAEX,IAAI16V,EAAQb,KAAK6kB,OAAO,uBAAyB7kB,KAAK6kB,OAAO,iBAAmB,EAC5Eg3U,EAAiB77V,KAAK87V,oBACtBjgO,EAAYggO,EAAev7V,OAAS,EAIxC,OAHIO,EAAQ,IACRA,EAAQy7H,EAAOT,EAAY,GAExBggO,EAAej0S,GAAG/mD,IAE7B64V,WAAY,SAAS15T,GACjB,IACI+7T,EADA7kI,EAASl3N,KAAKg8V,qBAElB,OAAQh8T,GACJ,IA5MQ,SA6MR,KAAKo5T,EACD2C,EAAa/7V,KAAKi8V,UAAU/kI,GAC5B,MACJ,IA/MU,WAgNV,KAAKmiI,EACD0C,EAAa/7V,KAAKk8V,UAAUhlI,GAC5B,MACJ,KAAKqiI,EACDwC,EAAa/7V,KAAK6kB,OAAO,cAAgB7kB,KAAKi8V,UAAU/kI,GAAUl3N,KAAKk8V,UAAUhlI,GACjF,MACJ,KAAKoiI,EACDyC,EAAa/7V,KAAK6kB,OAAO,cAAgB7kB,KAAKk8V,UAAUhlI,GAAUl3N,KAAKi8V,UAAU/kI,GACjF,MACJ,KAAKuiI,EACDsC,EAAa7kI,EAAOltJ,QACpB,MACJ,KAAKwvR,EACDuC,EAAa7kI,EAAO56F,OACpB,MACJ,QACI,OAAO,EAEX,IAAMy/N,EAAWz7V,QACjBN,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiB2lI,KAGvDI,iBAAkB,SAASC,GAEvB,OADAA,EAAgBA,GAAiBp8V,KAAK85U,iBACjBl0U,OAAO,aAEhCo2V,mBAAoB,SAASI,GACzB,OAAOp8V,KAAKm8V,iBAAiBC,IAEjCH,UAAW,SAAS/kI,GAChB,IAAI/mL,EAAUnwC,KAAK07V,iBACfW,EAAcnlI,EAAOr2N,MAAMsvC,GAC3BmsT,EAAQplI,EAAO56F,OACf07M,GAAQtqU,EAAAA,EAAAA,GAAEwpN,EAAOmlI,EAAc,IAC/BE,EAAOv8V,KAAK6kB,OAAO,iBAIvB,OAHI,IAAMmzT,EAAM13U,QAAUi8V,IACtBvkB,EAAQskB,GAELtkB,GAEXkkB,UAAW,SAAShlI,GAChB,IAAI/mL,EAAUnwC,KAAK07V,gBAAe,GAC9BW,EAAcnlI,EAAOr2N,MAAMsvC,GAC3BqsT,EAAStlI,EAAOltJ,QAChBguQ,GAAQtqU,EAAAA,EAAAA,GAAEwpN,EAAOmlI,EAAc,IAC/BE,EAAOv8V,KAAK6kB,OAAO,iBAIvB,OAHI,IAAMmzT,EAAM13U,QAAUi8V,IACtBvkB,EAAQwkB,GAELxkB,GAEXykB,mBAAoB,SAAStsT,GACzBnwC,KAAK08V,WAAWvsT,IAEpBwrT,wBAAyB,SAAS/0V,EAAQurI,EAAWwqN,GACjD,IAAIxsT,GAAUziC,EAAAA,EAAAA,GAAE9G,GACZupC,EAAQ7vC,SACRN,KAAK48V,2BACL58V,KAAK68V,eAAe1sT,EAASwsT,GAC7B38V,KAAK88V,kBAAkB3qN,EAAWhiG,IAEtCnwC,KAAK+8V,iCAETH,yBAA0B,SAASzsT,GAC/BnwC,KAAK4gV,QAAQ,oBAAoBj4R,EAAAA,EAAAA,IAAU3oD,KAAK6kB,OAAO,mBAAqB7kB,KAAKg9V,mBAAqB,KAAM7sT,IAEhH0sT,eAAgB,SAAS1sT,EAASwsT,IACzBA,GAAmB38V,KAAK6kB,OAAO,kBAChC7kB,KAAK4gV,QAAQ,KAAM5gV,KAAKg9V,mBAAoB7sT,GAE5CnwC,KAAK4gV,QAAQ,KAAM,KAAMzwS,IAGjCihC,YAAa,SAAAv3D,GAAQ,OAAIA,GAAY,UAAWnM,EAAAA,EAAAA,GAAEmM,GAAU+F,KAAK,kBACjE47U,gBAAiB,SAASrrT,GACtB,GAAKA,GAAYA,EAAQ7vC,OAAzB,CAGAN,KAAK27V,wBAAwBxrT,GAAS,GACtCnwC,KAAKi6V,qBAAqBj6V,KAAKg9V,oBAC/B,IACmBjD,EACf/5V,KAAK6kB,SADLk1U,cAEAkD,EAAmBj9V,KAAKoxE,YAAYjhC,GACpC4pT,IAAkBkD,GAClBj9V,KAAKy8V,mBAAmBtsT,KAGhC+sT,uBAAwB,SAASh9V,GAC7B,IAAI2O,GAASnB,EAAAA,EAAAA,KACTkoL,EAAO51L,KAQX,OAPAA,KAAKm9V,eAAe1iV,MAAM,WACtB,IAAIu9T,GAAQtqU,EAAAA,EAAAA,GAAE1N,MACd,GAAIg4U,EAAMnqU,KAAK+nL,EAAKwnK,kBAAoBl9V,EAEpC,OADA2O,EAASmpU,GACF,KAGRnpU,GAEXwuV,gBAAiB,SAASn9V,GACtB,OAAOF,KAAK6kB,OAAO,SAAS1e,QAAQjG,IAExCo9V,mBAAoB,SAASp9V,EAAM+yB,EAAUrxB,EAAOk0C,GAChD,IAAIkiS,EAAQh4U,KAAKk9V,uBAAuBh9V,GACnC83U,EAAM13U,SAGNN,KAAKwO,YAAY4rU,UAAUrwR,YAAYiuR,GAAO0gB,aAAazlU,EAAUrxB,IACtE5B,KAAKu9V,aAAavlB,EAAO93U,GAEX,aAAe+yB,GAAYrxB,GAEzC5B,KAAK84V,gBAAgB9gB,KAG7B8gB,gBAjUkC,SAiUlB9gB,GACRA,EAAMl+S,GAAG95B,KAAK6kB,OAAO,oBACrB7kB,KAAK6kB,OAAO,iBAAkB,OAGtC04U,aAAc,SAASvlB,GACnB,IAAIntQ,EAAW7qE,KAAK45V,aAAa5hB,GAC7Bn3U,EAAQm3U,EAAMnqU,KAAK7N,KAAKw9V,iBAC5Bx9V,KAAKy9V,YAAYz9V,KAAKq7V,oBAAsBx6V,EAAOgqE,EAAU,KAAMmtQ,IAEvE+kB,8BAA+B/qI,EAAAA,KAC/BkK,eAAgB,SAAS11M,GACrB,GAAI,UAAYA,EAAKhZ,KAAM,CACvB,IAAIurF,EAAUvyE,EAAKg/N,SAAS7jO,MAAMw3U,GAClC,GAAIpgQ,GAAWA,EAAQz4F,OAAQ,CAC3B,IAAI2yB,EAAW8lE,EAAQA,EAAQz4F,OAAS,GACpCk9G,EAAWh3F,EAAKg/N,SAAS98L,QAAQ,IAAMz1B,EAAU,IACjD/yB,EAAOF,KAAK6kB,OAAO24F,GAEvB,YADAx9G,KAAKs9V,mBAAmBp9V,EAAM+yB,EAAUzM,EAAK5kB,MAAO4kB,EAAKgyF,gBAIjE,OAAQhyF,EAAKhZ,MACT,IAAK,QACL,IAAK,kBACL,IAAK,uBACL,IAAK,qBACDxN,KAAK06V,sBACL16V,KAAK0rP,cACL,MACJ,IAAK,aACD1rP,KAAKs6R,qBACLt6R,KAAK09V,sBACL,MACJ,IAAK,aACL,IAAK,mBACD19V,KAAK09V,sBACL,MACJ,IAAK,eA+BL,IAAK,cACL,IAAK,eACD19V,KAAK0rP,cACL,MA/BJ,IAAK,iBACD1rP,KAAK29V,0BACL,MACJ,IAAK,cAYL,IAAK,gBACL,IAAK,gBACL,IAAK,sBACD,MAbJ,IAAK,aACL,IAAK,kBACD39V,KAAK49V,mBACL,MACJ,IAAK,oBACD59V,KAAK69V,0BACL,MACJ,IAAK,uBACD79V,KAAKi6V,qBAAuBj6V,KAAKw7N,sBAAsB,wBACvD,MAKJ,IAAK,iBACDx7N,KAAK27V,wBAAwBn1U,EAAKgyF,eAAe,GAAO,GACxDx4G,KAAKw7V,iBAAgB9tV,EAAAA,EAAAA,GAAE8Y,EAAK5kB,QAC5B,MACJ,IAAK,cACD5B,KAAKy6V,wBACLz6V,KAAK66V,2BACL76V,KAAK0rP,cACL,MAKJ,QACI1rP,KAAKuxN,SAAS/qM,KAG1BklO,YAAa,WAET,OADA1rP,KAAK6kB,OAAO,iBAAkB,MACvB7kB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAErC+1V,cAAe,WAEX,OADA99V,KAAK+9V,yBACE/9V,KAAKk7R,gBAAgB3B,gBAEhCwkE,uBAAwB,WACpB/9V,KAAKg+V,4BAA8B,GAEvCC,uBAAwB,WACpBj+V,KAAKg+V,6BAA+B,GAExCE,uBAAwB,WACpBl+V,KAAKg+V,4BAA8B,MAEvCG,0BAA2B,SAAS7gG,GAChC,IAAI5xP,EAAQ1L,KAAK6kB,OAAO,SACpB7kB,KAAK2jP,cAAgBj4O,GAAS1L,KAAKo+V,sBACnCp+V,KAAKq7V,oBAAsB3vV,EAAMpL,OAC5BN,KAAKoxR,gBAAkB,IAAMpxR,KAAKg+V,8BACnCh+V,KAAK6kB,SAASnZ,MAAQA,EAAMkwB,OAAO0hO,EAAS73P,MAAMzF,KAAKg+V,+BAE3Dh+V,KAAKk+V,yBACLl+V,KAAKq+V,mBAELr+V,KAAK6kB,OAAO,QAASy4O,EAAS73P,UAGtC44V,gBAAiB,WACbr+V,KAAKs+V,kBACLt+V,KAAKu+V,kBAETC,4BAA6B,WACzBx+V,KAAKk+V,yBACLl+V,KAAK6kB,OAAO,QAAS7kB,KAAK6kB,OAAO,WAErCu5U,mBAAoB,WAChB,OAAO,MAAQp+V,KAAKg+V,6BAA+Bh+V,KAAKy+V,4BAE5DA,yBAA0B,WACtB,OAAO,GAEXlzG,OAAQ,WACJvrP,KAAK0+V,mBACL1+V,KAAK2+V,sBACL3+V,KAAK4+V,mBAAqB5+V,KAAK4+V,WAC/B5+V,KAAKwzV,qBAETmL,oBAAqB,YACjBjxV,EAAAA,EAAAA,GAAE1N,KAAK24U,kBAAkBluQ,SAE7B4xJ,SAAU,WACNr8N,KAAKuxN,WACLrzL,aAAal+B,KAAK6+V,oBAEtBjzG,SAAU,WACN5rP,KAAK06V,sBACL16V,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B4wU,eAAgB,WACZ,OAAO34U,KAAK6Z,YAEhBilV,WAAY,WACR,OAAO/F,GAEXgG,kBAAmB,WACf,OAAO/+V,KAAK8+V,aAAe9F,GAE/BgG,mBAAoB,WAChB,MAnekB,oBAqetBC,uBAAwB,WACpB,MAreuB,yBAue3BrmB,cAAe,WACX,MAAO,IAAM54U,KAAK8+V,cAEtB1B,aAAc,WACV,MAhfY,cAkfhBI,cAAe,WACX,MAlfa,eAofjB1jB,cAAe,WACX,OAAO95U,KAAK24U,iBAAiBt8T,KAAKrc,KAAK44U,kBAE3CnuF,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAKi6V,qBAAuBj6V,KAAKw7N,sBAAsB,wBACvDx7N,KAAK6Z,WAAW4F,SA/fD,iBAggBfzf,KAAKs+V,mBAETA,iBAAiBl+F,EAAAA,EAAAA,gBAAe,WAC5BpgQ,KAAKk/V,wBAETX,eAAgB,WACZv+V,KAAKm/V,2BAETrjI,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKo/V,oBACLp/V,KAAK49V,mBACL59V,KAAK69V,2BAETwB,iBAAkB,kBAAMx9T,EAAAA,EAAAA,MACxBu9T,kBAzfkC,WAyfd,WACZE,EAAet/V,KAAK44U,gBACpBljC,EAAe11S,KAAKq/V,mBACpBE,GAAsBnxI,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MACxDyqI,GAAwBpxI,EAAAA,EAAAA,cAAasnF,EAAc11S,KAAK+0N,MACxD0qI,EAAgB,IAAI3oH,EAAAA,GAAO,SAAAtwN,GAC3B,IACWhM,EACPgM,EADAhM,MAEJ,EAAKklV,wBAAwBllV,MAEjCm7M,EAAAA,EAAAA,IAAiB31N,KAAK24U,iBAAkB4mB,EAAqBD,GAC7D3pI,EAAAA,EAAAA,IAAiB31N,KAAK24U,iBAAkB6mB,EAAuBF,GAC/D3pI,EAAAA,EAAAA,GAAgB31N,KAAK24U,iBAAkB4mB,EAAqBD,GAAc,SAAA9+V,GAAC,OAAI,EAAKs5V,kBAAkBt5V,MACtGm1N,EAAAA,EAAAA,GAAgB31N,KAAK24U,iBAAkB6mB,EAAuBF,GAAc,SAAA9+V,GACxEi/V,EAAc31R,QAAQ,CAClBhqE,SAAS4N,EAAAA,EAAAA,GAAElN,EAAEoG,QACb4T,MAAOha,QAInBs5V,kBAAmB,SAASt5V,EAAGgmB,EAAM8oD,GACjCtvE,KAAK2/V,oBAAoBn/V,EAAG,cAAegmB,EAAM8oD,IAErDowR,wBAAyB,SAASl/V,GACzBR,KAAK6kB,OAAO,uBAGjB7kB,KAAK4/V,kBAAoB,WAGrB,GAFA1hU,aAAal+B,KAAK6+V,mBAClB7+V,KAAK4/V,kBAAoB,MACrBp/V,EAAEi8R,qBAAN,CAGA,IAAItsP,GAAUziC,EAAAA,EAAAA,GAAElN,EAAEoG,QACdi5V,EAAe1vT,EAAQpmC,QAAQ/J,KAAK85U,iBACpCgmB,EAAoB9/V,KAAK+/V,kBAAkB5vT,GAC3C0vT,EAAav/V,QAAUN,KAAKs7V,eAAe,OAASwE,QAAqB,IAAWA,OAAoB,EAASA,EAAkBjgV,IAAI,KACvI7f,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBypI,MAErDp1V,KAAKzK,MACPA,KAAK6+V,kBAAoBh8V,WAAW7C,KAAKggW,uBAAuBv1V,KAAKzK,SAEzE+/V,kBAAmB,SAAS5vT,GACxB,GAAIA,EAAQrW,GAAGlyB,EAAAA,IACX,OAAOuoC,EAGP,IADAA,EAAUA,EAAQ1kC,SACX0kC,EAAQ7vC,SAAWs5N,EAAAA,EAAAA,WAAsBzpL,EAAQtwB,IAAI,MAAQ+5M,EAAAA,EAAAA,mBAA8BzpL,EAAQtwB,IAAI,KAAK,CAC/G,GAAIswB,EAAQrW,GAAGlyB,EAAAA,IACX,OAAOuoC,EAEXA,EAAUA,EAAQ1kC,WAI9Bu0V,uBAAwB,WACpBhgW,KAAK4/V,mBAAqB5/V,KAAK4/V,qBAEnCK,kBAAmB,WACfjgW,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKggW,0BAETpC,iBAAkB,WACd,IAAIsC,EAAiBlgW,KAAK24U,iBACtB2mB,EAAet/V,KAAK44U,gBACpB3uS,GAAYmkL,EAAAA,EAAAA,cAAa4uE,EAAAA,EAAAA,KAAgBh9R,KAAK+0N,MAClDY,EAAAA,EAAAA,IAAiBuqI,EAAgBj2T,EAAWq1T,GAC5C3pI,EAAAA,EAAAA,GAAgBuqI,EAAgBj2T,EAAWq1T,EAAc,CACrD18V,QAAS5C,KAAKmgW,mBACfngW,KAAKogW,iBAAiB31V,KAAKzK,QAElCmgW,gBAAiB,WACb,OAAOngW,KAAK6kB,OAAO,oBAEvBw7U,qBAAsB,WAClB,OAAOrgW,KAAKumP,sBAAsB,eAEtC65G,iBAAkB,SAAS5/V,GACnBR,KAAKqgW,uBACLrgW,KAAK2/V,oBAAoBn/V,EAAG,cAE5BA,EAAEulC,QAAS,GAGnB83T,wBAAyB,WACrB,IAAIqC,EAAiBlgW,KAAK24U,iBACtB2mB,EAAet/V,KAAK44U,gBACpB3uS,GAAYmkL,EAAAA,EAAAA,cAAakyI,EAAAA,EAAsBtgW,KAAK+0N,MACxDY,EAAAA,EAAAA,IAAiBuqI,EAAgBj2T,EAAWq1T,GAC5C3pI,EAAAA,EAAAA,GAAgBuqI,EAAgBj2T,EAAWq1T,EAAct/V,KAAKugW,wBAAwB91V,KAAKzK,QAE/FwgW,4BAA6B,WACzB,OAAOxgW,KAAKumP,sBAAsB,sBAEtCg6G,wBAAyB,SAAS//V,GAC1BR,KAAKwgW,8BACLxgW,KAAK2/V,oBAAoBn/V,EAAG,qBAE5BA,EAAEulC,QAAS,GAGnBm5T,mBAAoB,WAChB,IAAIxzV,EAAQ1L,KAAK6kB,OAAO,UAAY,GAChC7kB,KAAKq7V,oBACLr7V,KAAKygW,aAAa/0V,EAAMjG,MAAMzF,KAAKq7V,sBAEnCr7V,KAAKygW,aAAa/0V,IAG1B+0V,aAAc,SAAS/0V,GACfA,EAAMpL,SACNma,EAAAA,EAAAA,IAAK/O,EAAO,SAAS7K,EAAOgqE,GACxB7qE,KAAKy9V,YAAYz9V,KAAKq7V,oBAAsBx6V,EAAOgqE,IACrDpgE,KAAKzK,OAEXA,KAAK09V,uBAETD,YAAa,SAAS58V,EAAOgqE,EAAUtjC,EAAYm5T,GAC/C,IAAIC,EACA3+U,EAAY,QAAU2+U,EAAc,OAAS9/V,QAAS,IAAWA,OAAQ,EAASA,EAAMX,YAAS,IAAWygW,EAAcA,EAAc9/V,EAC5I0mC,EAAaA,GAAcvnC,KAAK24U,iBAChC,IAAIioB,EAAa5gW,KAAK6gW,iBAAiB7+U,EAAW6oD,EAAUtjC,EAAYm5T,GACxE1gW,KAAK8gW,gBAAgBF,EAAY/1R,EAAU7oD,GAC3C4+U,EAAWhhV,KAAK5f,KAAK6kB,OAAO,oBAC5B7kB,KAAK+gW,sBAAsBl2R,EAAU+1R,GACrC,IAAII,EAAehhW,KAAKihW,gBAAgBL,GACpCM,EAAuBlhW,KAAKmhW,mBAAmB,CAC/CtgW,MAAOmhB,EACP6oD,SAAUA,EACV/qD,WAAWs2M,EAAAA,EAAAA,GAAiB4qI,GAC5BI,aAAcphW,KAAK++V,oBACnBsC,oBAAqBrhW,KAAK6kB,OAAO,kBAEjC+wK,EAAO51L,KAUX,OATAy6N,EAAAA,EAAAA,IAAKymI,GAAsB9nU,MAAM,SAAS4nU,GACtCprK,EAAK0rK,uBAAuB,CACxBx2R,YAAa81R,EACbtoB,YAAa0oB,EACbn2R,SAAUA,EACV7oD,UAAWA,IAEf4zK,EAAK2rK,yBAAyB1gW,EAAOgqE,GAAUurJ,EAAAA,EAAAA,GAAiBwqI,OAE7DA,GAEXK,gBAAiB,SAASL,GACtB,IAAII,EAAeJ,EAAWvkV,KAAK,gCAEnC,OADA2kV,EAAanpU,YAAYohU,GAClB+H,GAEXD,sBAAuB,SAASl2R,EAAUuvJ,GACjCvvJ,GAAaA,EAAS7D,SAG3B2uJ,EAAAA,EAAAA,GAAgByE,EAAc6vE,EAAAA,EAAgB,SAASzpS,GACnDR,KAAK65V,2BAA2Bz/H,EAAcvvJ,EAAS7D,QAAS,CAC5DxsD,MAAOha,KAEbiK,KAAKzK,QAEXmhW,mBAAoB,SAAS36U,GACzB,IAAIkqD,EAAmB1wE,KAAKwhW,qBAAqBh7U,GAC7C+F,EAAevsB,KAAKu2N,aAAa7lJ,GACrC1wE,KAAKyhW,uBAAuBj7U,GAC5B,IAAIk7U,GAAkBh0V,EAAAA,EAAAA,GAAE1N,KAAK2hW,sBAAsBp1U,EAAc/F,IACjE,OAAKk7U,EAAgB3xI,SAASmpI,GAGvBl5V,KAAKg6U,yBAAyBxzT,EAAMk7U,GAFhCl7U,EAAK1G,WAIpBk6T,yBAA0B,SAASxzT,EAAMo7U,GAIrC,OAHAl0V,EAAAA,EAAAA,GAAE8Y,EAAK1G,WAAWi2O,YAAY6rG,GAC9Bp7U,EAAK1G,WAAYs2M,EAAAA,EAAAA,GAAiBwrI,GAClC5hW,KAAKyhW,uBAAuBj7U,GACrBo7U,GAEXH,uBAAwB,SAASj7U,GAC7B,IAAIy6G,EAAU,CAAC83N,EAAaC,EAAuBxyU,EAAK46U,eACxD1zV,EAAAA,EAAAA,GAAE8Y,EAAK1G,WAAWL,SAASwhH,EAAQhwH,KAAK,OAE5C4wV,uBAAwB,SAASt6T,EAAYq5T,EAAY//V,GACrD+/V,EAAW3oU,SAASsP,IAExBs5T,iBAAkB,SAAShgW,EAAOgqE,EAAUtjC,EAAYm5T,GACpD,IAAIE,GAAalzV,EAAAA,EAAAA,GAAE,SAOnB,GANA,IAAI1N,KAAKwO,YAAY4rU,UAAUwmB,EAAY5gW,KAAK8hW,eAAgBj3R,GAAY,IACxE61R,GAAkBA,EAAepgW,OACjCogW,EAAe3qG,YAAY6qG,GAE3B5gW,KAAK6hW,uBAAuBphW,KAAKT,KAAMunC,EAAYq5T,EAAY//V,GAE/Db,KAAK6kB,OAAO,sBAAuB,CACnC,IAAIE,EAAe/kB,KAAK26V,eAAiB36V,KAAK26V,eAAe9vR,GAAYA,EACzE+1R,EAAWhhV,KAAK,QAASmF,GAE7B,OAAO67U,GAEXkB,aAAc,WACV,IAAIlsK,EAAO51L,KACX,MAAO,CACHopP,YAAa,WACT,OAAOxzD,EAAK/wK,OAAO,mCAEvByzB,MAAOs9I,EACP4iE,YAAa,SAASj0N,GAClB,IAAIwxD,EAAO6/F,EAAK/wK,OAAO0f,EAAQ,QAE/B,OADa+tN,EAAAA,EAAAA,eAAcv8J,MAKvCurQ,uBAAwBtvI,EAAAA,KACxBuvI,yBAA0B,SAAS1gW,EAAOgqE,EAAUC,GAChD9qE,KAAK+hW,sBAAL/hW,CAA4B,CACxB8qE,YAAaA,EACb9oD,UAAWnhB,EACXgqE,SAAUA,KAGlBi2R,gBAAiB,SAAShhW,EAAS+N,EAAMhN,GACrCf,EAAQ2f,SAAS,CAACs5U,EAAY/4V,KAAK8+V,cAAc7tV,KAAK,MAAMpD,KAAK7N,KAAKo9V,eAAgBvvV,GAAMA,KAAK7N,KAAKw9V,gBAAiB38V,IAE3H88V,wBAAyB,WACrB,OAAO39V,KAAKgiW,kBAAoBhiW,KAAKw7N,sBAAsB,iBAAkB,CACzE17N,QAASE,KAAKF,UACdu3O,kBAAmB,CAAC,WAAY,YAChC9uJ,SAAU,eAGlBw5Q,qBAAsB,WAClB,OAAO/hW,KAAKgiW,mBAAqBhiW,KAAK29V,2BAE1C6D,qBAAsB,SAASh7U,GAC3B,IAAI3Y,EAAO2Y,EAAKqkD,SACZo3R,EAAmBz7U,EAAKy7U,kBAAoBjiW,KAAK6kB,OAAO,wBAE5D,OADehX,GAAQA,EAAKo0V,IACTz7U,EAAK66U,qBAE5BM,sBAAuB,SAASp1U,EAAc21U,GAC1C,OAAO31U,EAAahN,OAAO,CACvBvT,MAAOk2V,EAAWr3R,SAClB/qD,UAAWoiV,EAAWpiV,UACtBjf,MAAOqhW,EAAWrhW,MAClBk4P,WAAY/4P,KAAKmiW,wBAAwB51U,EAAc21U,MAG/DC,wBAAyB,WACrB,OAAOnwI,EAAAA,MAEXowI,uBAAwB,WACpB,OAAOpiW,KAAK24U,kBAEhB+kB,oBAAqB,SAAShyV,GAC1BA,EAAQA,GAAS1L,KAAK6kB,OAAO,SAC7B,IAAIs9C,EAAaniE,KAAK6kB,OAAO,cACzBw9U,GAAclgS,GAAcz2D,GAASA,EAAMpL,QAAUN,KAAKk7R,gBAAgBnyQ,YAC1Es5U,GAAcriW,KAAKsiW,WACnBtiW,KAAKsiW,SAAS9gW,SACdxB,KAAKsiW,SAAW,KAChBtiW,KAAK4gV,QAAQ,aAAS,IAErByhB,IACDriW,KAAKsiW,SAAWtiW,KAAKsiW,WAAY50V,EAAAA,EAAAA,GAAE,SAAS+R,SAAS,oBACrDzf,KAAKsiW,SAASrqU,SAASj4B,KAAKoiW,0BACxBpiW,KAAK6kB,OAAO,oBACZ7kB,KAAKsiW,SAAS3/V,KAAKw/D,GAEnBniE,KAAKsiW,SAAS96S,KAAK2a,IAG3BniE,KAAK6Z,WAAW28M,YApxBD,uBAoxBgC6rI,IAEnD1C,oBAAqB,SAAS4C,EAASC,EAAmBC,EAAYC,GAClE1iW,KAAK2iW,kBAAkBJ,EAAQ37V,OAAQ47V,GAAmB15V,EAAAA,EAAAA,GAAO25V,EAAY,CACzEjoV,MAAO+nV,IACPG,IAERC,kBAAmB,SAASC,EAAWJ,EAAmBC,EAAYC,GAClE,IAAIjiV,EAASzgB,KAAKw7N,sBAAsBgnI,GAAmB15V,EAAAA,EAAAA,GAAO,CAC9DsuO,qBAAsB,eACvBsrH,IACH,OAAO1iW,KAAK6iW,sBAAsBD,EAAWniV,EAAQgiV,IAEzD5I,2BAA4B,SAAS+I,EAAWriW,EAASkiW,EAAYC,GACjE,IAAIjiV,EAASzgB,KAAK6lP,cAActlP,GAASuI,EAAAA,EAAAA,GAAO,CAC5CsuO,qBAAsB,eACvBsrH,IACH,OAAO1iW,KAAK6iW,sBAAsBD,EAAWniV,EAAQgiV,IAEzDI,sBAAuB,SAASD,EAAWniV,EAAQgiV,GAC/C,IAAIroI,EAAep6N,KAAK8iW,qBAAoBp1V,EAAAA,EAAAA,GAAEk1V,IAC1Cp8U,GAAO1d,EAAAA,EAAAA,GAAO,GAAI25V,GACtB,OAAOhiV,GAAO3X,EAAAA,EAAAA,GAAO25V,EAAYziW,KAAK+iW,kBAAkB3oI,GAAe5zM,KAE3Eu8U,kBAAmB,SAAS3oI,GACxB,MAAO,CACHtvJ,aAAasrJ,EAAAA,EAAAA,GAAiBgE,GAC9Bp4M,UAAWhiB,KAAK85U,gBAAgBj5U,MAAMu5N,GACtCvvJ,SAAU7qE,KAAK45V,aAAax/H,KAGpC0oI,oBAAqB,SAASjpV,GAC1B,OAAOnM,EAAAA,EAAAA,GAAEmM,GAAU9P,QAAQ/J,KAAK44U,kBAEpCghB,aAAc,SAAS9uR,GACnB,OAAOp9D,EAAAA,EAAAA,GAAEo9D,GAAaj9D,KAAK7N,KAAKo9V,iBAEpC4F,sBAAuB,SAASt3V,EAAO6xQ,GACnC,IAAI1uQ,EAAS,EAMb,OALInD,IACA+O,EAAAA,EAAAA,IAAK/O,GAAQ,SAASgP,EAAGxa,GACrB2O,IAAUypN,EAAAA,EAAAA,IAAcp4N,EAAMq9Q,IAAiB,MAGhD1uQ,GAEXmuV,iBAAkB,WAId,OAHKh9V,KAAKijW,iBACNjjW,KAAKijW,eAAiB,MAAQ,IAAI9xG,EAAAA,GAE/BnxP,KAAKijW,gBAEhB9F,aAAc,WACV,OAAOn9V,KAAK85U,iBAEhBopB,eAAgB,WACZ,OAAOljW,KAAK24U,oBAEjBv3M,QAAQ+hO,EAAAA,GACXhpB,EAAiBC,UAAY7C,EAAAA,EAC7B,sNCp3BI6rB,EAAyB,iBAEzBC,EAAc,SAASxiW,GACvB,OAFqB,IAEdA,GAEPs5U,EAAmBmpB,EAAAA,QAAAA,QAA6B,CAChDnwI,uBAAwB,WACpBnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BhmN,cAAc,KAGtBqlN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BjV,cAAe,OACfinJ,mBAAmB,EACnBC,eAAe,EACf5uU,cAAe,GACfmiP,iBAAkB,GAClB0sF,yBAA0B,KAC1BnsF,QAAS,KACT7oP,eApBa,EAqBbrhB,aAAc,KACds2V,mBAAoB,KACpBC,gBAAiB,KACjBC,eAAgB,KAChBC,cAAe,QAGvBjgO,KAAM,SAAS9jI,EAASsa,GACpBpa,KAAK8jW,aAAe1pV,GAAW,GAC/Bpa,KAAKuxN,SAASzxN,EAASsa,IAE3Bo4D,MAAO,WACHxyE,KAAK+jW,oBACL/jW,KAAKuxN,WACLvxN,KAAKgkW,iBACLhkW,KAAKikW,wBAETD,eAAgB,WACZhkW,KAAKkkR,YAAa5xB,EAAAA,EAAAA,eAActyP,KAAK6kB,OAAO,aAEhDq/U,gBAAiB,SAAStvU,GACtB,OAAO50B,KAAKmkW,cAAcC,eAAexvU,IAE7CyvU,gBAAiB,SAASttF,EAAkBniP,GACxC,OAAO50B,KAAKmkW,cAAcG,eAAevtF,EAAkBniP,IAE/D2vU,eAAgB,SAAS1jW,GACrB,OAAOb,KAAKmkW,cAAcK,cAAc3jW,IAE5C4jW,eAAgB,SAASz9V,GACrB,OAAOhH,KAAKmkW,cAAcO,cAAc19V,IAE5C29V,oBAAqB,SAAS95R,GAC1B,OAAO7qE,KAAKmkW,cAAcS,mBAAmB/5R,IAEjDg6R,gBAAiB,WACb,QAAS7kW,KAAKk7R,gBAAgBl0R,OAElC89V,mBAAoB,WAChB,OAAO9kW,KAAKk7R,gBAAgBt1R,UAEhCoB,IAAK,WACD,OAAIhH,KAAK6kB,OAAO,WACL7kB,KAAK6kB,OAAO,WAEhB7kB,KAAKk7R,gBAAgBl0R,OAEhCkxQ,MAAO,SAASh4Q,GACZ,IAAI8G,EAAM9G,EAMV,OALIF,KAAK6kB,OAAO,WACZ7d,EAAMhH,KAAKkkR,WAAWhkR,GACfF,KAAKk7R,gBAAgB10O,UAC5Bx/C,EAAMhH,KAAKk7R,gBAAgBhjB,MAAMh4Q,IAE9B8G,GAEX+9V,6BAA8B,WAC1B,OAAO,GAEXd,qBAAsB,WAClB,IAAIruK,EAAO51L,KACPglW,EAAcpvK,EAAKuuK,cAAca,YACrChlW,KAAKkzD,WAAa,IAAI8hG,EAAAA,EAAU,CAC5BiwM,eAAgBjlW,KAAK+kW,+BACrB1gS,KAAMrkE,KAAK6kB,OAAO,iBAClB4+U,yBAA0BzjW,KAAK6kB,OAAO,4BACtCwyP,kBAAmBr3Q,KAAK6kW,kBACxBnB,mBAAoB,SAASl9U,IACrBA,EAAK0+U,cAAc5kW,QAAUkmB,EAAK2+U,gBAAgB7kW,UAClDs1L,EAAK/wK,OAAO,gBAAiB+wK,EAAKyuK,gBAAgB79U,EAAKuwP,iBAAkBvwP,EAAKoO,gBAC9EghK,EAAKwvK,qBAAqB5+U,KAGlC5gB,OAAQgwL,EAAKkvK,mBAAmBr6V,KAAKmrL,GACrC6uF,WAAY,WACR,IAAI/4Q,EAAQkqL,EAAK/wK,OAAO,SACpB4/P,EAAa7uF,EAAKslG,gBAAgBzW,aACtC,OAAOA,GAAc,EAAIA,EAAa7uF,EAAKyvK,eAAe35V,IAE9D1E,IAAK4uL,EAAK5uL,IAAIyD,KAAKmrL,GACnBsiF,MAAOtiF,EAAKsiF,MAAMztQ,KAAKmrL,GACvBhpL,KAAM,SAASwN,GACX,IAAIkrV,EACArqE,EAAiBrlG,EAAKslG,gBAG1B,OAFA9gR,EAAQmrV,kBAAoB,QAAUD,EAAwBrqE,EAAexJ,qBAAkB,IAAW6zE,OAAwB,EAASA,EAAsBC,kBACjKnrV,EAAQ6yQ,SAAWgO,EAAehO,WAC9BgO,EAAez0O,QACRy0O,EAAe3B,cAAcl/Q,GAASgf,MAAM,SAAS46P,GACxD,IAAIp+F,EAAKivD,UAAT,CAGA,IAAIn5O,GAAQuoR,EAAAA,EAAAA,IAAoBD,GAAYnmR,KAC5CotR,EAAevB,iBAAiBhuR,QAG5B,IAAI8mN,EAAAA,IAAUpiN,QAAQpQ,KAAKwlW,eAG3CC,WAAY,WACR,OAAO7vK,EAAKslG,gBAAgBptR,UAEhC03V,WAAYR,EAAYv6V,KAAKmrL,EAAKuuK,kBAG1CkB,eAAgB,SAAS35V,GAAO,WAC5B,OAAOA,EAAMhC,QAAO,SAACg8V,EAAYxlW,GAAb,OAAsBwlW,GAAcxlW,EAAKwL,MAAQ,EAAK25V,eAAenlW,EAAKwL,OAAS,KAAI,IAE/Gq4V,kBAAmB,WACf,IAAI4B,EAAWC,EAAAA,EACf5lW,KAAKmkW,cAAgB,IAAIwB,EAAS3lW,OAEtC6lW,wBAAyB,SAAS9+V,GAC9B,IAAI6uL,EAAO51L,KACP8lW,EAAU,GAUd,OATA/+V,EAAOA,GAAQ/G,KAAKkzD,WAAW6yS,sBAC/BnwK,EAAKuuK,cAAc6B,cACnBvrV,EAAAA,EAAAA,IAAK1T,GAAO,SAAS2T,EAAG1T,GACpB,IAAIynB,EAAgBmnK,EAAK6uK,eAAez9V,GACpCq8V,EAAY50U,IACZq3U,EAAQllW,KAAK6tB,MAGrBmnK,EAAKuuK,cAAc8B,WACZH,GAEXr7G,YAAa,WAAW,WACpBzqP,KAAKkmW,YAAa,EACblmW,KAAKk7R,gBAAgBnyQ,aACtB/oB,KAAKmmW,wBAAwB/sU,MAAK,kBAAM,EAAKgtU,6BAEjDpmW,KAAKuxN,YAETuK,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKkmW,YAAa,GAEtB/G,wBAAyB,WACrBn/V,KAAKkmW,YAAa,EAClBlmW,KAAKqmW,WAAY,EACjBrmW,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9Bo+V,sBAAuB,SAASG,GAE5B,IAAIl5V,EACAqhB,EACAsoP,EACAniP,EACJ,OALA0xU,EAAWA,GAAYtmW,KAAKumW,uBAMxB,IAAK,gBACDn5V,EAAepN,KAAKmkW,cAAcqC,mBAAmBxmW,KAAK6kB,OAAO,mBAC7D8jC,EAAAA,EAAAA,IAAUv7C,IACVpN,KAAK2mP,8BAA8B,gBAAiB,CAACv5O,IACrDpN,KAAK2mP,8BAA8B,eAAgBv5O,GACnDpN,KAAK2mP,8BAA8B,mBAAoB3mP,KAAKmkW,cAAcC,eAAe,CAACh3V,OAE1FpN,KAAK2mP,8BAA8B,gBAAiB,IACpD3mP,KAAK2mP,8BAA8B,mBAAoB,IACvD3mP,KAAK2mP,8BAA8B,eAAgB,OAEvD,MACJ,IAAK,gBAGD,GADAl4N,GADAmG,EAAgB50B,KAAK6kB,OAAO,kBAAoB,IAClBvkB,OAASN,KAAKmkW,cAAcS,mBAAmBhwU,EAAc,KAvLlF,EAwLL50B,KAAK6kB,OAAO,uBAAyBw+U,EAAY50U,GACjD,OAAOzuB,KAAKmmW,sBAAsB,iBAEtCnmW,KAAK2mP,8BAA8B,eAAgB/xN,EAAc,IACjE50B,KAAK2mP,8BAA8B,gBAAiBl4N,GACpDzuB,KAAK2mP,8BAA8B,mBAAoB3mP,KAAKmkW,cAAcC,eAAexvU,IACzF,MACJ,IAAK,eAGD,GAFAxnB,EAAepN,KAAK6kB,OAAO,gBAC3B4J,EAAgBzuB,KAAKmkW,cAAcS,mBAAmBx3V,GAClDpN,KAAK6kB,OAAO,uBAAyBw+U,EAAY50U,GACjD,OAAOzuB,KAAKmmW,sBAAsB,kBAElCx9S,EAAAA,EAAAA,IAAUv7C,IACVpN,KAAK2mP,8BAA8B,gBAAiB,CAACv5O,IACrDpN,KAAK2mP,8BAA8B,gBAAiBl4N,GACpDzuB,KAAK2mP,8BAA8B,mBAAoB3mP,KAAKmkW,cAAcC,eAAe,CAACh3V,OAE1FpN,KAAK2mP,8BAA8B,gBAAiB,IACpD3mP,KAAK2mP,8BAA8B,mBAAoB,IACvD3mP,KAAK2mP,8BAA8B,iBA5M9B,IA8MT,MACJ,IAAK,mBAED,GADAowB,EAAmB/2Q,KAAK6kB,OAAO,oBAC3B7kB,KAAK6kB,OAAO,qBAAsB,CAClC,IAAI0vF,EAAoBv0G,KAAKykW,eAAe1tF,EAAiB,IAC7D,IAAKssF,EAAY9uP,GACb,OAAOv0G,KAAKmmW,sBAAsB,iBAG1C,OAAOnmW,KAAKkzD,WAAWuzS,aAAa1vF,GAE5C,OAAQ,IAAIvkD,EAAAA,IAAUpiN,UAAUI,WAEpC+1V,oBAAqB,WACjB,IAAIvgH,EAAa,gBACb0gH,EAAkB,SAAS1gH,GAC3B,IAAI07D,EAAc1hT,KAAK6kB,OAAOmhO,GAE9B,OADar9L,EAAAA,EAAAA,IAAU+4P,IAAgBA,EAAYphT,QAClC0lP,KAAchmP,KAAK8jW,cACtCr5V,KAAKzK,MAQP,OAPI0mW,EAAgB,iBAChB1gH,EAAa,gBACN0gH,EAAgB,gBACvB1gH,EAAa,eACN0gH,EAAgB,sBACvB1gH,EAAa,oBAEVA,GAEX2gH,aAAc,SAASlpG,EAASC,GAC5B,GAAID,EAAQn9P,SAAWo9P,EAAQp9P,OAC3B,OAAO,EAEX,IAAK,IAAIyL,EAAI,EAAGA,EAAI2xP,EAAQp9P,OAAQyL,IAChC,GAAI0xP,EAAQ1xP,KAAO2xP,EAAQ3xP,GACvB,OAAO,EAGf,OAAO,GAEXq6V,wBAAyB,WACrB,GAAI,SAAWpmW,KAAK6kB,OAAO,iBACvB7kB,KAAK2mP,8BAA8B,gBAAiB,IACpD3mP,KAAKmmW,sBAAsB,sBACxB,GAAI,WAAanmW,KAAK6kB,OAAO,iBAAkB,CAClD,IAAI6tC,EAAe1yD,KAAK6kB,OAAO,iBAC/B,GAAI6tC,EAAapyD,OAAS,IAAMoyD,EAAapyD,QAAUN,KAAK6kB,OAAO,sBAAwB7kB,KAAK6kB,OAAO,UAAY7kB,KAAK6kB,OAAO,SAASvkB,OAAQ,CAC5I,IAAIwzG,EAAmB9zG,KAAKkzD,WAAW0zS,mBACnCC,OAAsB,IAAWn0S,EAAa,GAAKohD,EAAiB,GAAKphD,EAAa,GAS1F,YARI,IAAWm0S,IACXA,EAAsB7mW,KAAKmkW,cAAca,cAAc,IAEvDhlW,KAAK6kB,OAAO,YAAcgiV,GAAuBA,EAAoBn7V,QACrEm7V,EAAoBn7V,MAAQ,CAACm7V,EAAoBn7V,MAAM,KAE3D1L,KAAKkzD,WAAWuzS,aAAazmW,KAAKkkW,gBAAgB,CAAC2C,KACnD7mW,KAAK2mP,8BAA8B,gBAAiB,CAACkgH,IAC9C7mW,KAAKmmW,sBAAsB,iBAElCnmW,KAAKkzD,WAAWuzS,aAAazmW,KAAKkkW,gBAAgBxxS,QAEnD,CACH,IAAIgrM,EAAU19P,KAAKkkW,gBAAgBlkW,KAAK6kB,OAAO,kBAC3C44O,EAAUz9P,KAAKkzD,WAAW6yS,sBACzB/lW,KAAK2mW,aAAalpG,EAASC,IAC5B19P,KAAKkzD,WAAWuzS,aAAa/oG,GAGrC,OAAQ,IAAIlrC,EAAAA,IAAUpiN,UAAUI,WAEpCspV,kBAAmB,SAASt5V,GAAG,uBACvBsmW,GAAqB,IAAIt0I,EAAAA,IAAUpiN,UACnCmhN,EAAWvxN,KAAKuxN,SACpBvxN,KAAK6lP,cAAc,SAASrlP,GACxB,IAAIumW,EACJD,EAAoB,QAAUC,EAAwB/mW,KAAKgnW,mBAAmBxmW,EAAEga,cAAW,IAAWusV,EAAwBA,EAAwBD,GACxJr8V,KAAKzK,MAAO,CACVo3O,qBAAsB,eAJ1Bp3O,CAKG,CACC8qE,aAAap9D,EAAAA,EAAAA,GAAElN,EAAEkO,eACjB8L,MAAOha,IAEXsmW,EAAkB1oS,QAAO,WACrBmzJ,EAASvrM,MAAM,EAAMje,OAG7Bi/V,mBAAoB,SAASxmW,GACzB,IAAIymW,EACAH,EACJ,GAAK9mW,KAAK6kB,OAAO,iBAAjB,CAGA,IAAIu1M,EAAe55N,EAAEkO,cAMrB,OALI1O,KAAKknW,eAAe9sI,GACpBp6N,KAAKmnW,aAAa3mW,EAAEkO,eAEpBo4V,EAAoB9mW,KAAK08V,WAAWl8V,EAAEkO,eAEnC,QAAUu4V,EAAqBH,SAAsB,IAAWG,OAAqB,EAASA,EAAmBz2V,YAE5H42V,qBAAsB,SAASvmW,GAC3B,OAAOb,KAAK85U,gBAAgBlyR,GAAG/mD,IAEnCygW,uBAAwB,SAAS96U,GAC7B,GAAI,SAAWxmB,KAAK6kB,OAAO,iBAAkB,CACzC,IAAIu1M,GAAe1sN,EAAAA,EAAAA,GAAE8Y,EAAKskD,aACtBu8R,EAAsBrnW,KAAKmkW,cAAcmD,mBAAmBltI,GAC5D8sI,EAAiBlnW,KAAKunW,gBAAgBF,GAC1CrnW,KAAKwnW,uBAAuBptI,EAAc8sI,KAGlDM,uBAAwB,SAASptI,EAAcrsN,GAC3CqsN,EAAa5D,YAAYx2N,KAAKg/V,qBAAsBjxV,GACpD/N,KAAKynW,2BAA2BrtI,EAAcv0J,OAAO93D,KAEzDq3V,qBAAsB,SAAS5+U,GAC3B,IAAIovK,EAAO51L,KACPklW,EAAgB1+U,EAAK0+U,cACrBC,EAAkB3+U,EAAK2+U,gBAC3B,GAAIvvK,EAAKywK,YAAcnB,EAAc5kW,QAAU6kW,EAAgB7kW,QAAS,CACpE,IAAIonW,EAAyB9xK,EAAK+xK,wBAClC,IAAK/xK,EAAKswK,WAAY,CAClB,IACI0B,EADAC,EAAiB,GAEjBC,EAAmB,GACvBlyK,EAAKuuK,cAAc6B,aACnB,IAAK,IAAIj6V,EAAI,EAAGA,EAAIm5V,EAAc5kW,OAAQyL,IACtC67V,EAAkBhyK,EAAK6uK,eAAeS,EAAcn5V,IACpD87V,EAAejnW,KAAKgnW,GACpBhyK,EAAKmyK,cAAcH,GAEvB,IAAK,IAAIj4O,EAAK,EAAGA,EAAKw1O,EAAgB7kW,OAAQqvH,IAC1Ci4O,EAAkBhyK,EAAK6uK,eAAeU,EAAgBx1O,IACtDm4O,EAAiBlnW,KAAKgnW,GACtBhyK,EAAKoyK,iBAAiBJ,GAE1BhyK,EAAKuuK,cAAc8B,WACnBrwK,EAAKjiF,iBAAiBk0P,EAAgBC,IAE1CrtI,EAAAA,EAAAA,IAAKitI,GAAwBtuU,MAAM,WAC/Bw8J,EAAKqyK,0BAA0BzhV,EAAKixB,WAAYjxB,EAAKg7D,mBAIjEymR,0BAA2B,SAASxwT,EAAY+pC,GAC5CxhF,KAAKw7N,sBAAsB,qBAAsB,CAC7C6b,kBAAmB,CAAC,WAAY,aADpCr3O,CAEG,CACCy3C,WAAYA,EACZ+pC,aAAcA,KAGtBmyB,iBAAkBq+G,EAAAA,KAClBy1I,2BAA4B,SAASt3T,EAASvuC,GAC1C5B,KAAK4gV,QAAQ,WAAYh/U,EAAOuuC,IAEpC63T,iBAAkB,SAASJ,GACvB,IAAIxtI,EAAep6N,KAAKmkW,cAAc+D,eAAeN,GACjDvE,EAAYuE,KACZ5nW,KAAKwnW,uBAAuBptI,GAAc,GAC1CzE,EAAAA,EAAAA,eAA4ByE,EAAc,gBAAgB,KAGlE2tI,cAAe,SAASH,GACpB,IAAIxtI,EAAep6N,KAAKmkW,cAAc+D,eAAeN,GACjDvE,EAAYuE,KACZ5nW,KAAKwnW,uBAAuBptI,GAAc,GAC1CzE,EAAAA,EAAAA,eAA4ByE,EAAc,gBAAgB,KAGlEmtI,gBAAiB,SAAS1mW,GACtB,IAAImG,EAAMhH,KAAKukW,eAAe1jW,GAC9B,OAAOb,KAAKkzD,WAAWg0S,eAAelgW,EAAK,CACvCmhW,cAAc,KAGtBjsI,eAAgB,SAAS11M,GAAM,WAC3B,OAAQA,EAAKhZ,MACT,IAAK,gBACDxN,KAAK0rP,cACL,MACJ,IAAK,eACIllO,EAAK5kB,OAAS2D,MAAMi2E,QAAQh1D,EAAK5kB,SAAW4kB,EAAK5kB,MAAMtB,SACxDN,KAAK6kB,OAAO,mBAAoB,IAEpC7kB,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,gBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACDxmB,KAAKmmW,sBAAsB3/U,EAAKhZ,MAAM4rB,MAAK,kBAAM,EAAKgtU,6BACtD,MACJ,IAAK,UACDpmW,KAAKgkW,iBACL,MACJ,IAAK,oBACDhkW,KAAKomW,0BACL,MACJ,IAAK,gBACL,IAAK,qBACL,IAAK,iBACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACD,MACJ,QACIpmW,KAAKuxN,SAAS/qM,KAG1B4hV,oBAAqB,WACjBpoW,KAAK2mP,8BAA8B,gBAAiB,IACpD3mP,KAAKmmW,sBAAsB,kBAE/BkC,qBAAsB,SAASjuI,GAC3B,GAAIA,EAAavsN,KAAKu1V,GAClB,OAAQ,IAAI5wI,EAAAA,IAAUpiN,UAAUI,UAEpC4pN,EAAavsN,KAAKu1V,GAAwB,GAC1C,IAAIp4T,EAAW,IAAIwnL,EAAAA,GACf81I,EAAqB,CACrBviU,QAAQ,GAERwiU,EAAgBvoW,KAAK2iW,kBAAkBvoI,EAAc,iBAAkBkuI,EAAoB,CAC3FjxH,kBAAmB,CAAC,WAAY,cAapC,OAXA5c,EAAAA,EAAAA,IAAK8tI,GAAenqS,OAAO,SAASx8D,GAChC,IAAI4mW,GAAuBD,EACvBE,GAAyBD,GAAuB,aAAeD,EAAcpxQ,QAC7EuxQ,IAAuB3gW,UAAUzH,OACjCqoW,EAAeH,GAAuBC,IAA0BC,GAAsBD,GAAyB7mW,GACnH64N,EAAAA,EAAAA,KAAKC,EAAAA,EAAAA,IAAY4tI,EAAmBviU,SAASq4B,QAAQ,WACjDg8J,EAAavsN,KAAKu1V,GAAwB,MAC1ChqU,MAAM,SAAS2M,GACf4iU,IAAiB5iU,EAASiF,EAAS56B,UAAY46B,EAASU,YACxD5K,KAAKkK,EAASU,SACpBjhC,KAAKzK,OACAgrC,EAASx6B,WAEpBo4V,kBAAmB,SAAS5wB,GACxB,IAAI/8C,EAAiBj7R,KAAKk7R,gBACtBlwP,EAAW,IAAIwnL,EAAAA,GACfq2I,EAAgB7oW,KAAK6kB,OAAO,YAC5BikV,EAAY7tE,EAAez0O,QAC/B,IAAKsiT,EACD,OAAQ,IAAIt2I,EAAAA,IAAUpiN,UAAUI,UAEpC,IAAKs4V,EAAUtnW,OACX,MAAMygO,EAAAA,EAAAA,MAAa,SAevB,OAbAjiO,KAAK6kB,OAAO,YAAY,GACxBikV,EAAUtnW,OAAOy5R,EAAe/iB,MAAMl4Q,KAAK45V,aAAa5hB,KAAS5+S,MAAM,SAASpyB,QACxE,IAAWA,EACXgkC,EAAS56B,UAET46B,EAASU,YAEb5K,MAAM,WACNkK,EAASU,YAEbV,EAASozB,OAAO,WACZp+D,KAAK6kB,OAAO,WAAYgkV,IAC1Bp+V,KAAKzK,OACAgrC,GAEX+9T,oBAAqB,WACjB,IAAI/9T,EAAW,IAAIwnL,EAAAA,GAQnB,OAPIxyN,KAAKoxR,eAAiBpxR,KAAK6kB,OAAO,WAClCmmB,EAAS56B,UAETpQ,KAAKgpW,mBAAmB5vU,MAAM,WAC1B4R,EAAS56B,aAGV46B,EAASx6B,WAEpBw4V,iBAAkB,WAEd,OADAhpW,KAAKi+V,yBACEj+V,KAAKk7R,gBAAgBtuR,QAEhCq8V,4BAA6B,SAASpoW,GAClC,IAAImG,EAAMhH,KAAKukW,eAAe1jW,GAC9Bb,KAAKkzD,WAAWg2S,SAAS,CAACliW,KAE9BmiW,yBAA0B,SAAStoW,GAE/B,IADA,IAAIs8V,EAAen9V,KAAK85U,gBACf/tU,EAAIlL,EAAQ,EAAGkL,EAAIoxV,EAAa78V,OAAQyL,KAC7C2B,EAAAA,EAAAA,GAAEyvV,EAAapxV,IAAI8B,KAAK7N,KAAKw9V,gBAAiBzxV,EAAI,IAG1Dq9V,sBAAuB,SAASpjH,GAC5B,IAAI07D,EAAc1hT,KAAK6kB,OAAOmhO,GAC1B07D,aAAuBn7P,EAAAA,GAG3BvmD,KAAK0kP,qBAAqB,CACtBl3O,KAAMw4O,EACNR,SAAUQ,EACVpkP,MAAO8/S,KAGfwlD,eAAgB,SAASp8R,GACrB,OAAO9qE,KAAKunW,gBAAgBvnW,KAAKmkW,cAAcmD,mBAAmBx8R,KAEtE4xR,WAAY,SAAS5xR,GACjB,GAAI,SAAW9qE,KAAK6kB,OAAO,iBAA3B,CAGA,IAAI7C,EAAYhiB,KAAKmkW,cAAcmD,mBAAmBx8R,GACtD,GAAKu4R,EAAYrhV,GAAjB,CAGA,IAAIhb,EAAMhH,KAAKukW,eAAeviV,GAC9B,IAAIhiB,KAAKkzD,WAAWg0S,eAAelgW,GAAnC,CAGA,GAAI,WAAahH,KAAK6kB,OAAO,iBACzB,OAAO7kB,KAAKkzD,WAAWuzS,aAAa,CAACz/V,IAErC,IAAI+vQ,EAAmB/2Q,KAAK6kB,OAAO,qBAAuB,GAC1D,OAAO7kB,KAAKkzD,WAAWuzS,aAAhB,kBAAiC1vF,GAAjC,CAAmD/vQ,IAAM,CAACA,QAGzEmgW,aAAc,SAASr8R,GACnB,IAAI9oD,EAAYhiB,KAAKmkW,cAAcmD,mBAAmBx8R,GACtD,GAAKu4R,EAAYrhV,GAAjB,CAGA,IAAI+0P,EAAmB/2Q,KAAKkzD,WAAW6yS,sBACvC,KAAI/lW,KAAK6kB,OAAO,sBAAwBkyP,EAAiBz2Q,QAAU,GAAnE,CAGA,IAAI0G,EAAMhH,KAAKukW,eAAeviV,GACzBhiB,KAAKkzD,WAAWg0S,eAAelgW,EAAK,CACjCmhW,cAAc,KAItBnoW,KAAKkzD,WAAWg2S,SAAS,CAACliW,OAE9BqiW,0BAA2B,SAASxoW,GAChCb,KAAKipW,4BAA4BpoW,GACjCb,KAAKmpW,yBAAyBtoW,GAC9Bb,KAAKmkW,cAAcmF,kBAAkBzoW,IAEzC0oW,yBAA0B,SAASvxB,EAAOwxB,GACtC,IAAIC,EAAiBzpW,KAAKk7R,gBAAgBvB,gBAAkB,aAAe,QAC3E35R,KAAKopW,sBAAsBK,GAC3BzpW,KAAK2iW,kBAAkB3qB,EAAO,gBAAiBwxB,EAAmB,CAC9DxyH,cAAe,WACXghG,EAAMx2U,UAEV61O,kBAAmB,CAAC,WAAY,cAEpCr3O,KAAK09V,uBAETgM,WAAY,SAAS5+R,GACjB,IAAI8qH,EAAO51L,KACPgrC,EAAW,IAAIwnL,EAAAA,GACfwlH,EAAQh4U,KAAKmkW,cAAc+D,eAAep9R,GAC1CjqE,EAAQb,KAAKmkW,cAAcmD,mBAAmBx8R,GAC9C6+R,EAAwB3pW,KAAKi/V,yBAqBjC,OApBIoE,EAAYxiW,GACZb,KAAKqoW,qBAAqBrwB,GAAO5+S,MAAM,WACnC4+S,EAAMv4T,SAASkqV,GACf,IAAIH,EAAoB5zK,EAAKmtK,kBAAkB/qB,GAC/CpiJ,EAAKgzK,kBAAkB5wB,GAAO5+S,MAAM,WAChCw8J,EAAKyzK,0BAA0BxoW,GAC/B+0L,EAAK2zK,yBAAyBvxB,EAAOwxB,GACrC5zK,EAAKmzK,sBAAsB3vU,MAAM,WAC7B4R,EAASq0L,YAAYzpC,SAEzB90J,MAAM,WACNk3S,EAAMngT,YAAY8xU,GAClB3+T,EAASu0L,WAAW3pC,SAExB90J,MAAM,WACNkK,EAASu0L,WAAW3pC,MAGxB5qJ,EAASu0L,WAAW3pC,GAEjB5qJ,EAASx6B,WAEpBo5V,YAAa,SAAS9+R,EAAa++R,GAC/B,IAAI7+T,EAAW,IAAIwnL,EAAAA,GACf58B,EAAO51L,KACPsxN,EAAWtxN,KAAKmkW,cAChB2F,EAAcx4I,EAAS42I,eAAep9R,GACtCi/R,EAAmBz4I,EAAS42I,eAAe2B,GAC3CG,EAAc14I,EAASg2I,mBAAmBx8R,GAC1Cm/R,EAAmB34I,EAASg2I,mBAAmBuC,GAC/CJ,EAAiBzpW,KAAKk7R,gBAAgBvB,gBAAkB,aAAe,QAO3E,OANmB0pE,EAAY2G,IAAgB3G,EAAY4G,IAAqBD,IAAgBC,EAE5Fj/T,EAASq0L,YAAYr/N,MAErBgrC,EAASu0L,WAAWv/N,MAEjBgrC,EAASx6B,UAAU4oB,MAAM,WAC5B2wU,EAAiBz4I,EAAS44I,kBAAkBF,EAAaC,IAAmBH,GAC5Ex4I,EAAS64I,uBAAuBH,EAAaC,GAC7CjqW,KAAKmpW,yBAAyBa,GAC9Bp0K,EAAK/wK,OAAO,gBAAiB+wK,EAAKyuK,gBAAgBzuK,EAAK1iI,WAAW6yS,sBAAuBnwK,EAAK1iI,WAAW0zS,qBACrG,UAAY6C,GACZ7zK,EAAKwzK,sBAAsBK,GAE/B7zK,EAAK+sK,kBAAkBmH,EAAa,kBAAmB,CACnDxyS,UAAWg6J,EAAS84I,SAASJ,GAC7BK,QAAS/4I,EAAS84I,SAASH,IAC5B,CACC5yH,kBAAmB,CAAC,WAAY,oBAKhD,mICtoBI8B,EAAWkJ,EAAAA,QAAAA,SCqEf,EDpEmBA,EAAAA,QAAAA,QAAc,CAC7Bz+G,KAAM,SAAS0mO,GACXtqW,KAAKuqW,kBAAoBD,GAE7B1F,mBAAoBzrH,EACpBqtH,mBAAoBrtH,EACpBirH,eAAgBjrH,EAChBmrH,eAAgBnrH,EAChB6rH,YAAa7rH,EACbqrH,cAAe,SAAS3jW,GACpB,IAAI2pW,EAAcxqW,KAAKyqW,sBAAsB5pW,GAC7C,OAAOb,KAAKokW,eAAe,CAACpkW,KAAKwmW,mBAAmBgE,KAAe,IAEvEE,WAAY,SAASxxE,EAAMC,GACvB,OAAIn5R,KAAKuqW,kBAAkB1F,mBAChBzwG,EAAAA,EAAAA,cAAa8kC,EAAMC,GAEnBD,IAASC,GAGxB6sE,WAAY,WACRhmW,KAAK2qW,OAAS,IAElB1E,SAAU,WACNjmW,KAAK2qW,OAAS,MAElBjG,cAAevrH,EACfmuH,mBAAoB,SAAS1lW,GACzB,OAAI5B,KAAK4qW,uBAAuBhpW,GACrBA,EAEP5B,KAAK6qW,aAAajpW,GACX5B,KAAK8qW,oBAAoBlpW,GAEhC5B,KAAK+qW,QAAQnpW,GACN5B,KAAKgrW,wBAAwBppW,GAEjC5B,KAAK8qW,oBAAoB9qW,KAAK4kW,mBAAmBhjW,KAE5DwoW,SAAU,SAASxoW,GACf,OAAI5B,KAAK4qW,uBAAuBhpW,GACrB5B,KAAKyqW,sBAAsB7oW,GAElC5B,KAAK6qW,aAAajpW,GACXA,EAEP5B,KAAK+qW,QAAQnpW,GACN5B,KAAKyqW,sBAAsBzqW,KAAKgrW,wBAAwBppW,IAE5D5B,KAAK4kW,mBAAmBhjW,IAEnCsmW,eAAgB,SAAStmW,GACrB,GAAI5B,KAAK4qW,uBAAuBhpW,GAC5B,OAAO5B,KAAKirW,0BAA0BrpW,GAE1C,GAAI5B,KAAK6qW,aAAajpW,GAClB,OAAO5B,KAAKirW,0BAA0BjrW,KAAK8qW,oBAAoBlpW,IAEnE,GAAI5B,KAAK+qW,QAAQnpW,GACb,OAAO8L,EAAAA,EAAAA,GAAE9L,GAEb,IAAIylW,EAAsBrnW,KAAK8qW,oBAAoB9qW,KAAK4kW,mBAAmBhjW,IAC3E,OAAO5B,KAAKirW,0BAA0B5D,IAE1C0D,QAAS,SAAAviW,GAAE,OAAIoxN,EAAAA,EAAAA,OAAkBpxN,IAAM0gP,EAAAA,EAAAA,IAAW1gP,GAAMA,EAAGqX,IAAI,GAAKrX,IACpE8gW,kBAAmBnwH,EACnB+wH,kBAAmB,SAASF,EAAaC,GACrC,OAAOjqW,KAAKkrW,qBAAqBlB,EAAaC,IAAqBD,EAAcC,EAAmB,QAAU,UAElHE,uBAAwBhxH,EACxByxH,uBAAwB,SAAS/pW,GAC7B,MAAO,kBAAoBA,GAAS8kB,KAAK6H,MAAM3sB,KAAWA,GAE9DgqW,aAAc1xH,EACd6xH,wBAAyB7xH,EACzB2xH,oBAAqB3xH,EACrBsxH,sBAAuBtxH,EACvB8xH,0BAA2B9xH,EAC3B+xH,qBAAsB/xH,ICvFFgyH,QAAqB,CACzCC,eAAgB,WACZ,OAAOprW,KAAKuqW,kBAAkB1lV,OAAO,UAAY,IAErD+/U,mBAAoB,SAAS/5R,GACzB,IAAIqtM,EAAQl4Q,KAAKuqW,kBAAkBryF,MAAMztQ,KAAKzK,KAAKuqW,mBACnD,OAAIryF,EACOl4Q,KAAK0kW,cAAcxsF,EAAMrtM,IAEzB7qE,KAAKorW,iBAAiBjlW,QAAQ0kE,IAG7C27R,mBAAoB,SAAS3lW,GACzB,OAAOb,KAAKorW,iBAAiBvqW,IAEjCyoW,kBAAmB,SAASzoW,GACxBb,KAAKorW,iBAAiB77V,OAAO1O,EAAO,IAExCmkW,YAAa,WACT,OAAOhlW,KAAKorW,kBAEhBhH,eAAgB,SAAS14V,GACrB,IAAIwsQ,EAAQl4Q,KAAKuqW,kBAAkBryF,MAAMztQ,KAAKzK,KAAKuqW,mBAC/C17V,EAASnD,EACb,GAAIwsQ,EAAO,CACPrpQ,EAAS,GACT,IAAK,IAAI9C,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAC9B8C,EAAOjO,KAAKs3Q,EAAMxsQ,EAAMK,KAGhC,OAAO8C,GAEX61V,cAAe,SAAS19V,GACpB,IAAI24C,EAAQ3/C,KAAK2qW,OACb5jW,EAAO44C,GAASA,EAAM54C,MAAQ/G,KAAKokW,eAAepkW,KAAKorW,kBAI3D,GAHIzrT,IAAUA,EAAM54C,OAChB44C,EAAM54C,KAAOA,GAEb,kBAAoBC,EAOpB,OAAOD,EAAKZ,QAAQa,GANpB,IAAK,IAAI+E,EAAI,EAAGzL,EAASyG,EAAKzG,OAAQyL,EAAIzL,EAAQyL,IAC9C,GAAI/L,KAAK0qW,WAAW1jW,EAAKD,EAAKgF,IAC1B,OAAOA,EAMnB,OAAQ,GAEZu4V,eAAgB,SAASv9V,EAAM2E,GAC3B,OAAQA,GAAS3E,GAAMtB,SAE3B0kW,uBAAwB,SAASH,EAAaC,GAC1C,IAAIv+V,EAAQ1L,KAAKorW,iBACbC,EAAgB3/V,EAAMs+V,GAC1Bt+V,EAAM6D,OAAOy6V,EAAa,GAC1Bt+V,EAAM6D,OAAO06V,EAAkB,EAAGoB,IAEtCR,aAAc,SAAShqW,GACnB,MAAO,kBAAoBA,GAAS8kB,KAAK6H,MAAM3sB,KAAWA,GAE9DmqW,wBAAyB,SAASlgS,GAC9B,OAAO9qE,KAAKuqW,kBAAkBzwB,gBAAgBj5U,MAAMiqE,IAExDggS,oBAAqB,SAASjqW,GAC1B,OAAOA,GAEX4pW,sBAAuB,SAAS5pW,GAC5B,OAAOA,GAEXoqW,0BAA2B,SAASpqW,GAChC,OAAOA,GAAS,EAAIb,KAAKuqW,kBAAkBzwB,gBAAgBlyR,GAAG/mD,GAAS,MAE3EqqW,qBAAsB,WAClB,OAAO,kKCjDXI,EAAoB,aACxB,IAAenxB,EAAAA,EAAAA,QAAyB,CACpC1nH,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg6I,oBAAoB,KAG5B3nO,KAAM,WAAW,IACT4nO,EADS,OAEbxrW,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKyrW,2BAA6B,SAAAjrW,GACT,EAAK06R,gBACPvB,kBAAoB,EAAKuB,gBAAgBhJ,aACxD,EAAKw5E,iBAAmB,GAExB,EAAKA,kBAAoBlrW,EAAEkzR,mBAC3BlzR,EAAEkzR,iBAAiB1tO,MAAQ,EAAK0lT,mBAErC,QAAUF,EAAwBxrW,KAAKk7R,uBAAoB,IAAWswE,GAAiCA,EAAsBlzU,GAAG,4BAA6Bt4B,KAAKyrW,6BAEzK93E,OAAQ,WACJ3zR,KAAK0rW,iBAAmB,GAE5Bl5R,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK2rW,qBACL3rW,KAAK0rW,iBAAmB,GAE5BE,sBAAuB,SAAS5kW,GAAK,WAC7B6H,GAASnB,EAAAA,EAAAA,KACT4pQ,EAAUt3Q,KAAKgH,MASnB,OARAhH,KAAKm9V,eAAe1iV,MAAK,SAACC,EAAGxa,GACzB,IAAI83U,GAAQtqU,EAAAA,EAAAA,GAAExN,GACV2qE,EAAW,EAAK+uR,aAAa5hB,GACjC,GAAI1gE,GAAU4T,EAAAA,EAAAA,IAAU5T,EAAS,EAAKY,MAAMrtM,GAAW7jE,GAAO,EAAK6kW,cAAchhS,EAAU7jE,GAEvF,OADA6H,EAASmpU,GACF,KAGRnpU,GAEXsvV,0BAA2B,SAAS7gG,EAAU98P,GACtC,OAASA,QAAK,IAAWA,GAAKA,EAAEo/E,QAChC5/E,KAAK8rW,iBAAiBtrW,EAAEo/E,UAExB5/E,KAAKuxN,SAAS+rC,EAAU98P,GACxBR,KAAK2rW,uBAGbE,cAAe,SAAStjT,EAAOC,GACvBD,GAASA,EAAK,aACdA,EAAQA,EAAM16C,MAElB,IACI,OAAOyN,KAAKC,UAAUgtC,KAAWjtC,KAAKC,UAAUitC,GAClD,MAAOhoD,GACL,OAAO+nD,IAAUC,IAGzBujT,oBAAqB,SAASxjT,EAAOC,GACjC,OAAOxoD,KAAK6rW,cAActjT,EAAOC,IAErCwjT,mBAAoB,SAASpsR,EAASl0E,GAClC,IAAImD,GAAS,EAiBb,OAhBI7O,KAAK6kB,OAAO,aACP+6D,EAAQt/E,SACTuO,GAAS,IAEb4L,EAAAA,EAAAA,IAAKmlE,GAAS,SAAC7zE,EAAGyzB,GACV,WAAaA,EAAO7b,OACpB9U,GAAS,GACT4L,EAAAA,EAAAA,IAAK/O,GAAO,SAACgP,EAAGxa,GACZ,QAAI,IAAWs/B,EAAO3xB,KAAK7G,KAAOw4B,EAAO3xB,KAAK7G,MAAQ9G,EAAK8G,IAEvD,OADA6H,GAAS,GACF,UAMpBA,GAEXo9V,gBAAiB,WAAW,WACxB,GAAIjsW,KAAK6kB,OAAO,sBAAuB,CACnC,IAAIhW,GAAS8uP,EAAAA,EAAAA,GAAY39P,KAAKksW,YAAalsW,KAAKmkW,cAAca,eAAe,SAAAn3V,GACzE,OAAIA,QAAQ,IAAWA,EAAI,WAChBA,EAAI,WAER,EAAKqqQ,MAAMrqQ,KACnB7N,KAAK+rW,oBAAoBthW,KAAKzK,OACjC,GAAI6O,GAAU7O,KAAKksW,YAAY5rW,SAAWN,KAAKgsW,mBAAmBn9V,EAAQ7O,KAAKksW,aAG3E,OAFAlsW,KAAK8rW,iBAAiBj9V,GAAQ,GAC9B7O,KAAK09V,uBACE,EAEP19V,KAAK2rW,qBAGb,OAAO,GAEXA,mBAAoB,WAChB,GAAI3rW,KAAK6kB,OAAO,sBAAuB,CACnC,IAAInZ,EAAQ1L,KAAKmkW,cAAca,cAC/B,IACIhlW,KAAKksW,aAAcpjW,EAAAA,EAAAA,IAAO,EAAM,GAAI4C,GAC/B1L,KAAKgH,QACNhH,KAAKksW,YAAclsW,KAAKksW,YAAYhmW,KAAI,SAACimW,EAAWtrW,GAAZ,4BACnCyqW,EAAoB5/V,EAAM7K,KADS,gBAE9BsrW,GAF8B,MAK9C,MAAO3rW,GACLR,KAAKksW,aAAcpjW,EAAAA,EAAAA,GAAO,GAAI4C,MAI1C2wN,SAAU,WACNr8N,KAAKk7R,gBAAgB7iQ,IAAI,4BAA6Br4B,KAAKyrW,4BAC3DzrW,KAAKuxN,YAET66I,gBAAiB,SAAS1iF,EAASh+Q,EAAO8zB,EAAQ6sU,GAAkB,WAChE,GAAIA,EACArsW,KAAKy9V,YAAYj+T,EAAO3+B,MAAO2+B,EAAO3xB,KAAM,KAAM7N,KAAK4rW,sBAAsBpsU,EAAOx4B,UACjF,CACH,IAAIslW,EAAc5gW,GAAM49Q,EAAAA,EAAAA,IAAWI,EAASh+Q,EAAO8zB,EAAOx4B,MACtDslW,IACAjuV,EAAAA,EAAAA,IAAOqrQ,EAASh+Q,EAAO8zB,EAAOx4B,IAAKw4B,EAAO3xB,MAAMurB,MAAK,WACjD,EAAKqkU,YAAY/xV,EAAMvF,QAAQmmW,GAAcA,EAAa,KAAM,EAAKV,sBAAsBpsU,EAAOx4B,WAKlHulW,gBAAiB,SAAS7iF,EAASh+Q,EAAO8zB,EAAQ6sU,GAAkB,YAChE5xI,EAAAA,EAAAA,IAAK4xI,IAAoB3lR,EAAAA,EAAAA,IAAOgjM,EAASh+Q,EAAO8zB,EAAO3xB,KAAM2xB,EAAO3+B,QAAQu4B,MAAK,WAC7E,IAAIozU,EACJ,EAAKC,2BAA2BjtU,GAChC,IAAI0gU,EAAiB,EAAKwM,kBAAkBltU,EAAO3xB,MACnD,EAAK4vV,YAAY,QAAU+O,EAAgBhtU,EAAO3+B,aAAU,IAAW2rW,EAAgBA,EAAgB9gW,EAAMpL,OAAQk/B,EAAO3xB,KAAMqyV,GAClI,EAAKyM,4BACL,EAAKjB,uBAGbgB,kBAAmB,SAASE,GACxB,OAAO5sW,KAAK24U,kBAEhBk0B,oCAAqC,SAASC,GAC1C,IAAIr+U,EAAgBzuB,KAAK6kB,OAAO,iBAC5B4J,EAAgBq+U,EAChB9sW,KAAK6kB,OAAO,gBAAiB4J,EAAgB,GACtCA,IAAkBq+U,GAAe,IAAM9sW,KAAK6kB,OAAO,iBAAiBvkB,OAC3EN,KAAK6kB,OAAO,gBAAiB,IAE7B7kB,KAAKomW,2BAGbqG,2BAA4B,SAASjtU,GACjC,IAAI/Q,EAAgBzuB,KAAK6kB,OAAO,iBAC5B2a,EAAO3+B,OAAS4tB,GAChBzuB,KAAK6kB,OAAO,gBAAiB4J,EAAgB,IAGrDk+U,0BAA2B36I,EAAAA,KAC3B+6I,gBAAiB,SAASrjF,EAASh+Q,EAAO8zB,EAAQ6sU,GAAkB,WAC5DxrW,EAAQwrW,EAAmB7sU,EAAO3+B,OAAQyoR,EAAAA,EAAAA,IAAWI,EAASh+Q,EAAO8zB,EAAOx4B,KAEhF,GADkBqlW,EAAmB7sU,EAAO69N,QAAU3xP,EAAM7K,GAC3C,CACb,IAAImsW,EAAsBhtW,KAAK4rW,sBAAsBpsU,EAAOx4B,KACxDwiW,EAAoBxpW,KAAK+iW,kBAAkBiK,GAC/ChtW,KAAKqoW,qBAAqB2E,GAAqB5zU,MAAK,WAC5CizU,GACA,EAAKlD,yBAAyBtoW,EAAQ,GACtC,EAAK0oW,yBAAyByD,EAAqBxD,GACnD,EAAKqD,oCAAoChsW,KAEzC,EAAKwoW,0BAA0BxoW,GAC/B,EAAK0oW,yBAAyByD,EAAqBxD,OAG3DxpW,KAAK0rW,qBAGbI,iBAAkB,SAASlsR,EAASysR,GAAkB,WAC9C3gW,EAAQ1L,KAAKmkW,cAAca,cAC3Bt7E,EAAU,CACV1iR,IAAKhH,KAAKgH,IAAIyD,KAAKzK,MACnBk4Q,MAAOl4Q,KAAKk4Q,MAAMztQ,KAAKzK,OAEvBi7R,EAAiBj7R,KAAKk7R,gBACtBz0O,EAAWw0O,EAAex0O,WAC1B/7B,EAAQuwQ,EAAevwQ,SACvB+7B,GAAY/7B,KACZk1D,EAAUA,EAAQh6E,QAAO,SAAA1F,GAAI,MAAI,WAAaA,EAAKyjB,WAAQ,IAAWzjB,EAAKW,UAE/E++E,EAAQ3/E,SAAQ,SAAAu/B,GAAM,OAAI,EAAK,IAAI5D,OAAO4D,EAAO7b,KAAM,aAAa+lQ,EAASh+Q,EAAO8zB,EAAQ6sU,MAC5FrsW,KAAKq7V,oBAAsB3vV,EAAMpL,OACjCN,KAAK2rW,qBACL3rW,KAAKm/V,2BAET0C,uBAAwB,SAASt6T,EAAYq5T,EAAY//V,GACrD,IAAIigP,EAAqBv5M,EAAWx8B,SAAS/K,KAAK44U,iBAAiB/4T,IAAIhf,GACvE+4N,EAAAA,EAAAA,cAAyBryL,EAAW1nB,IAAI,GAAI+gV,EAAW/gV,IAAI,GAAIihO,IAEnE5kB,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,QACoBxN,KAAKisW,gBAAgBzlV,EAAK5kB,QAE3C5B,KAAKuxN,SAAS/qM,GAElB,MACJ,IAAK,aACIxmB,KAAK6kB,OAAO,uBAA0B2B,EAAK5kB,OAC5C5B,KAAK6kB,OAAO,QAAS,IAEzB7kB,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,qBACD,MACJ,QACIxmB,KAAKuxN,SAAS/qM,uIC3O1BymV,EAAkB,cAClBC,EAAwBD,oBAGxBE,EAAiCF,mCAOjCG,EAAuBC,EAAAA,EAAAA,UACvBC,EAAa,CACbC,0BAA2BH,EAAqBI,2BAA2B/iW,KAAK2iW,GAChFK,SAAUL,EAAqBM,UAAUjjW,KAAK2iW,IAE9CO,EAAWC,EAAAA,EAAAA,QAAuB,CAClCtjB,eAAgB,WACZ,IAAIujB,EAAe,SAASrtW,GAExB,GADAA,EAAE4G,kBACEpH,KAAK6kB,OAAO,UAEZ,OADArkB,EAAE6G,kBACK,GAGf,OAAOyB,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3oN,IAAK,SAASpI,GACV,GAAKR,KAAK6kB,OAAO,UAAjB,CAGA,IAAIipV,EAAoBttW,EAAE2C,SAAWnD,KAAK+tW,uBAAyB/tW,KAAKguW,wBACpEF,IACAn4I,EAAAA,EAAAA,QAAqBm4I,EAAmB,SACxCA,EAAkBhgW,UAEtBtN,EAAE6G,mBAENwkI,MAAO7rI,KAAKorV,iBACZT,UAAWkjB,EACXtjB,WAAYsjB,EACZjjB,QAAS,SAASpqV,GACd,OAAKR,KAAK6kB,OAAO,WAIbrkB,EAAE6c,SACFrd,KAAKknE,SACE,IALP1mE,EAAE6G,kBACK,IAQf0jV,UAAW,SAASvqV,GAChB,OAAKR,KAAK6kB,OAAO,WAAcrkB,EAAE6c,UAI5Brd,KAAK6kB,OAAO,WAAarkB,EAAE6c,UAC5Brd,KAAKiuW,qBACE,IALPztW,EAAE6G,kBACK,OAUvBorN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B28I,kBAAkB,EAClBC,eAAgB,aAChBC,QAAS,EACTC,cAAe,KACfC,gBAAiB,kBAGzBC,oBAAqB,WACjBvuW,KAAKuxN,WACD,eAAiBvxN,KAAK6kB,OAAO,mBAC7B7kB,KAAKwuW,sBAAsBxuW,KAAK6kB,OAAO,WAG/C4pV,aAAc,WACV,OAAO3lW,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BjgN,MAAO,MAGfo9V,qBAAsB,WAClB1uW,KAAK2uW,mBACL3uW,KAAK4uW,0BAETA,uBAAwB,WACpB,IAAIC,EAAe7uW,KAAK8uW,OAAOC,gBAC3BF,IACAA,EAAapvV,SArFY,+BAqF6BA,SApFhC,4BAoFsEpD,KAAK,+BAA+BoD,SAnFpG,kCAoF5BovV,EAAaxyV,KAAK,kBAAkBoD,SAnFb,6BAoFvBovV,EAAaxyV,KAAK,oBAAoBoD,SAnFd,gCAsFhCkvV,iBAAkB,WACd3uW,KAAK8uW,OAAOE,kBAAkBvvV,SA5FRwtV,uBA6FtB,IAAIgC,GAAavhW,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK8uW,OAAOn1U,YACjD35B,KAAKkvW,WAAalvW,KAAKonP,iBAAiB6nH,EAAY5B,EAAAA,EAAWrtW,KAAKmvW,oBACpEnvW,KAAKkvW,WAAWE,mBAAmB,SAAUpvW,KAAKqvW,eAAe5kW,KAAKzK,OACtE21N,EAAAA,EAAAA,GAAgBs5I,EAAY,QAAS,WACjCjvW,KAAKe,SACP0J,KAAKzK,QAEXqvW,eAAgB,WACZrvW,KAAKknE,QACLlnE,KAAKe,SAETitW,sBAAuB,WACnB,OAAOtgW,EAAAA,EAAAA,GAAE1N,KAAKkvW,WAAWI,WAAW,GAAGxvW,WAAWuc,KAAK,UAE3DkzV,eAAgB,SAAS3tW,GACrB5B,KAAK6kB,OAAO,QAASjjB,GACjBA,GACA0rW,EAAWC,0BAA0BvtW,KAAKwvW,qBAAsB5tW,GAEhE5B,KAAKyvW,4BACLzvW,KAAKknE,QACLlnE,KAAKyvW,2BAA4B,IAGzCN,iBAAkB,WACd,IAAIv5K,EAAO51L,KACX,MAAO,CACH4B,MAAOg0L,EAAK/wK,OAAO,SACnB6qV,WAAY95K,EAAK/wK,OAAO,SACxBqpV,iBAAkBt4K,EAAK/wK,OAAO,oBAC9BspV,eAAgBv4K,EAAK/wK,OAAO,kBAC5ByoT,kBAAmB13I,EAAK/wK,OAAO,qBAC/BkiD,YAAa/mE,KAAK6kB,OAAO,eACzBqvU,OAAQl0V,KAAK2vW,QACbC,kBAAmB,SAAS5oH,GACxB,IACWxsO,EACPwsO,EADAxsO,MAEJo7K,EAAK65K,2BAA4B,EAC7B75K,EAAKs5K,WAAWrqV,OAAO,WAAa+wK,EAAK/wK,OAAO,WAChD+wK,EAAK81J,sBAAsBlxU,GAC3Bo7K,EAAK25K,eAAe35K,EAAKs5K,WAAWrqV,OAAO,UAC3C+wK,EAAK1uH,UAGbqxC,eAAgB,SAAS4vI,GACrB,IACW3tO,EAGP2tO,EAHA3tO,MACO5Y,EAEPumP,EAFAvmP,MACe42G,EACf2vI,EADA3vI,cAEAq3P,EAAgB,cAAgBj6K,EAAK/wK,OAAO,kBAC5CirV,EAAaxC,EAAWG,SAAS7rW,KAAW42G,EAC5Cu3P,EAAiBF,GAAiBj6K,EAAK65K,0BACvCO,EAAep6K,EAAKq6K,sBACpBH,IAAeC,GAAkBC,IAGjCx1V,GACAo7K,EAAK81J,sBAAsBlxU,GAE/Bo7K,EAAK25K,eAAe3tW,OAIhCwpV,iBAAkB,SAAS5qV,GACvB,IAAI+lB,EAAWvmB,KAAK63F,SAAS9zE,MAC7B,EAGI/jB,KAAK6kB,SAFEjjB,EADX,EACIA,MACkBssW,EAFtB,EAEIA,iBAEAp4T,EAAWl0C,GAASssW,EAAmBZ,EAAWG,SAAS7rW,GAASA,EACxE,IAAK2kB,EACD,OAAO,EAGX,IADY,IAAIkuN,EAAAA,QAAMluN,GACZsuN,eAAV,CASA,GALItuN,IAAauvB,IACb91C,KAAKkwW,qBAAqB3pV,GAC1BvmB,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,QAAS7kB,KAAK6kB,OAAO,oBAAsByoV,EAAWG,SAASlnV,GAAYA,IAEvFvmB,KAAKkvW,WAAY,CACjB,IAAIiB,EAAiBnwW,KAAKkvW,WAAWrqV,OAAO,SACxCjjB,IAAUuuW,IACVnwW,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,QAASsrV,IAI7B,OADAnwW,KAAKknE,SACE,EAhBHlnE,KAAK63F,SAAS9zE,IAAI+xB,IAkB1Bs6T,oBAAqB,SAAS5vW,GAC1BR,KAAK0rV,sBAAsBlrV,EAAEga,OAC7Bxa,KAAKuvW,eAAevvW,KAAKkvW,WAAWrqV,OAAO,UAC3C7kB,KAAKuxN,YAET8+I,qBAAsB,WAClBrwW,KAAKswW,mBACLtwW,KAAKuxN,YAET09H,sBA1LkC,WA2L9B,OAAOjvV,KAAKuxN,WAAW31L,OAAO,CAAC57B,KAAKkvW,cAExC18R,MAAO,WACHxyE,KAAKuxN,YAETk5B,YAAa,WACTzqP,KAAK6Z,WAAW4F,SAASwtV,GACzBjtW,KAAKuxN,YAETg/I,aAAc,WACVvwW,KAAKuxN,WACLvxN,KAAK2vW,QAAU,MAAM/zU,OAAO,IAAIu1N,EAAAA,GAChCnxP,KAAK4gV,QAAQ,mBAAoB5gV,KAAK2vW,SACtC3vW,KAAK63F,SAASp4E,SAASytV,GACvBltW,KAAKwwW,uBAETA,oBAAqB,WACjBxwW,KAAK6Z,WAAWi8O,WAAUpoP,EAAAA,EAAAA,GAAE,SAAS+R,SA1NPytV,gCA2N9BltW,KAAKywW,yBAA2BzwW,KAAK6Z,WAAW9O,WAAW68C,GAAG,GAC9D5nD,KAAKwvW,sBAAuB9hW,EAAAA,EAAAA,GAAE,SAAS+R,SA3NJwtV,oCA2NmDh1U,SAASj4B,KAAK0wW,4BAC/F1wW,KAAK6kB,OAAO,SAGbyoV,EAAWC,0BAA0BvtW,KAAKwvW,qBAAsBxvW,KAAK6kB,OAAO,UAF5E7kB,KAAKywW,yBAAyBhxV,SAAS0tV,IAK/C7sB,aAAc,WACV,MAGItgV,KAAK6kB,SAFEjjB,EADX,EACIA,MACkBssW,EAFtB,EAEIA,iBAGAvrW,EADuBf,GAASssW,EACFZ,EAAWG,SAAS7rW,GAASA,EAE/D,OADA5B,KAAK6kB,OAAO,OAAQliB,GACb3C,KAAKuxN,YAEhB++I,iBAAkB,WACd,IAAIv4P,EAAS/3G,KAAK63F,SACdj2F,EAAQ5B,KAAK6kB,OAAO,SACxBkzF,EAAOh0F,IAAIniB,GACX5B,KAAKwuW,sBAAsB5sW,IAE/B4sW,sBAAuB,SAAS5sW,GACxB5B,KAAKkvW,YACLlvW,KAAKkvW,WAAWrqV,OAAO,CACnBjjB,MAAOA,EACP8tW,WAAY9tW,KAIxB+uW,yBAA0B,SAASnwW,GAC/B,IAAIoB,EAAQ5B,KAAK63F,SAAS9zE,MACtBniB,IACAA,EAAQ5B,KAAKkwW,qBAAqBtuW,GAClC5B,KAAKwuW,sBAAsB5sW,IAE/B5B,KAAKuxN,SAAS/wN,EAAGoB,IAErBsuW,qBAAsB,SAAStuW,GAM3B,OALe,IAAI6yO,EAAAA,QAAM7yO,GACZizO,iBACT70O,KAAKswW,mBACL1uW,EAAQ5B,KAAK6kB,OAAO,UAEjBjjB,GAEX2pP,OAAQ,WACJvrP,KAAKuxN,kBACEvxN,KAAKiwW,uBAEhB/zI,eAAgB,SAAS11M,GACrB,IAAI5kB,EAAQ4kB,EAAK5kB,MACb4L,EAAOgZ,EAAKhZ,KAChB,OAAQA,GACJ,IAAK,QACDxN,KAAKywW,yBAAyBj6I,YAAY22I,GAAiCvrW,GACvEA,EACA0rW,EAAWC,0BAA0BvtW,KAAKwvW,qBAAsB5tW,GAEhE5B,KAAKwvW,qBAAqB53U,WAAW,SAErC,OAASh2B,IACT5B,KAAKiwW,uBAAwB,GAEjCjwW,KAAKwuW,sBAAsB5sW,GAC3B5B,KAAKiwW,uBAAwB,EAC7BjwW,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,kBACL,IAAK,mBACDxmB,KAAKuxN,SAAS/qM,GACdxmB,KAAK8uW,QAAU9uW,KAAK4uW,yBACpB,MACJ,IAAK,mBACL,IAAK,UACG5uW,KAAKkvW,YACLlvW,KAAKkvW,WAAWrqV,OAAOrX,EAAM5L,GAEjC,MACJ,QACI5B,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,aAAcqtV,2NC9R5BiD,EAAuB,6BAKvBC,EAAoC,gCACpCC,EAA0C,sCAC1CC,EAA0C,sCAS1CC,EAA6B,yBAQ7BC,EAA2B,6BAG3BC,EAAyC,2CACzCC,EAAqC,uCAErCC,EAAc,UACd/D,EAAYpxU,EAAAA,EAAAA,QAAe,CAC3BquT,eAAgB,WACZ,IAAI+mB,EAAQrxW,KAAK6kB,OAAO,cACpB+wK,EAAO51L,KACPsxW,EAA2B,SAAS9wW,GACpC,IAAI69C,EAAO,IAAMu3I,EAAK27K,cAKtB,OAJI/wW,EAAE2C,WACFk7C,GAAQu3I,EAAK/wK,OAAO,YAExBw5B,EAAOA,EAAO,EAAIA,EAAO,EAClB14B,KAAK6H,MAAM6wB,IAElBmzT,EAA+B,SAASnzT,GACxC,IAAIz8C,EAAQg0L,EAAK67K,cAAc18H,IAAIloN,EAAIwxB,EACnCz8C,EAAQ,IACRA,EAAQ,IACDA,EAAQ,IACfA,EAAQ,GAEZg0L,EAAK67K,cAAc18H,IAAIloN,EAAIjrB,EAC3B8vW,KAEAC,EAAyB,SAASnxW,GAClC,IAAI69C,EAAO,IAAMu3I,EAAKg8K,eAKtB,OAJIpxW,EAAE2C,WACFk7C,GAAQu3I,EAAK/wK,OAAO,YAExBw5B,EAAOA,EAAO,EAAIA,EAAO,EAClB14B,KAAK6H,MAAM6wB,IAElBwzT,EAA6B,SAASxzT,GACtC,IAAIz8C,EAAQg0L,EAAK67K,cAAc18H,IAAIluL,EAAIxI,EACnCz8C,EAAQ,IACRA,EAAQ,IACDA,EAAQ,IACfA,EAAQ,GAEZg0L,EAAK67K,cAAc18H,IAAIluL,EAAIjlD,EAC3B8vW,KAGJ,SAASA,IACL97K,EAAKk8K,sBACLl8K,EAAKm8K,oBAAoBn8K,EAAK67K,cAAc18H,IAAIvrF,EAAGosC,EAAK67K,cAAc18H,IAAIloN,EAAG+oK,EAAK67K,cAAc18H,IAAIluL,GAExG,IAAImrT,EAAkB,SAASxxW,GAC3B,IAAI69C,EAAO,KAAOu3I,EAAKq8K,uBAAyBr8K,EAAKs8K,uBAKrD,OAJI1xW,EAAE2C,WACFk7C,GAAQu3I,EAAK/wK,OAAO,YAExBw5B,EAAOA,EAAO,EAAIA,EAAO,GAGzB8zT,EAAsB,SAAS9zT,GAC/Bu3I,EAAK67K,cAAc18H,IAAIvrF,GAAKnrG,EAC5Bu3I,EAAKw8K,uBACL,IAAIC,GAAiB/9I,EAAAA,EAAAA,IAAO1+B,EAAK08K,kBACjC18K,EAAK28K,gBAAgBF,EAAev5V,IAAM88K,EAAKs8K,sBAAwB,IAEvEM,EAAoB,SAAShyW,GAC7B,IAAI69C,EAAO,EAAIu3I,EAAK68K,4BAMpB,OALIjyW,EAAE2C,WACFk7C,GAAQu3I,EAAK/wK,OAAO,YAExBw5B,EAAOA,EAAO,IAAMA,EAAO,IAC3BA,EAAOgzT,GAAShzT,EAAOA,GAGvBq0T,EAAwB,SAASr0T,GACjCu3I,EAAK67K,cAAchsT,GAAKpH,EACxBu3I,EAAK+8K,2BACL,IAAIN,GAAiB/9I,EAAAA,EAAAA,IAAO1+B,EAAKg9K,sBACjCh9K,EAAKi9K,wCAAwCR,EAAe35V,KAAOk9K,EAAKk9K,yBAA2B,IAEvG,OAAOhqW,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bq5H,QAAS,SAASpqV,GACdA,EAAE6G,iBACF7G,EAAE4G,mBACEq4S,EAAAA,EAAAA,qBAAoBj/S,GAChBR,KAAKyxW,cAAc18H,IAAIvrF,GAAK,MAAQxpJ,KAAK+yW,iBACzC/yW,KAAK0rV,sBAAsBlrV,GAC3B2xW,EAAoBH,EAAgBxxW,KAEjCR,KAAKyxW,cAAc18H,IAAIluL,EAAI,MAClC7mD,KAAK0rV,sBAAsBlrV,GAC3BqxW,EAA2BF,EAAuBnxW,MAG1DuqV,UAAW,SAASvqV,GAChBA,EAAE6G,iBACF7G,EAAE4G,mBACEq4S,EAAAA,EAAAA,qBAAoBj/S,GAChBR,KAAKyxW,cAAc18H,IAAIvrF,GAAK,IACxBxpJ,KAAK+yW,iBACL/yW,KAAKyxW,cAAc18H,IAAIvrF,EAAI,KAE/BxpJ,KAAK0rV,sBAAsBlrV,GAC3B2xW,GAAqBH,EAAgBxxW,KAElCR,KAAKyxW,cAAc18H,IAAIluL,EAAI,IAClC7mD,KAAK0rV,sBAAsBlrV,GAC3BqxW,GAA4BF,EAAuBnxW,MAG3D+pV,WAAY,SAAS/pV,GACjBA,EAAE6G,iBACF7G,EAAE4G,mBACEq4S,EAAAA,EAAAA,qBAAoBj/S,IAChB6wW,EAAQrxW,KAAKyxW,cAAchsT,EAAI,EAAIzlD,KAAKyxW,cAAchsT,EAAI,GAAKzlD,KAAK6kB,OAAO,uBAC3E7kB,KAAK0rV,sBAAsBlrV,GAC3BkyW,GAAuBF,EAAkBhyW,KAEtCR,KAAKyxW,cAAc18H,IAAIloN,EAAI,MAClC7sB,KAAK0rV,sBAAsBlrV,GAC3BgxW,EAA6BF,EAAyB9wW,MAG9DmqV,UAAW,SAASnqV,GAChBA,EAAE6G,iBACF7G,EAAE4G,mBACEq4S,EAAAA,EAAAA,qBAAoBj/S,IAChB6wW,EAAQrxW,KAAKyxW,cAAchsT,EAAI,EAAIzlD,KAAKyxW,cAAchsT,EAAI,GAAKzlD,KAAK6kB,OAAO,uBAC3E7kB,KAAK0rV,sBAAsBlrV,GAC3BkyW,EAAsBF,EAAkBhyW,KAErCR,KAAKyxW,cAAc18H,IAAIloN,EAAI,IAClC7sB,KAAK0rV,sBAAsBlrV,GAC3BgxW,GAA8BF,EAAyB9wW,MAG/DqrI,MAAO,SAASrrI,GACZR,KAAKgzW,qBAAqBxyW,OAItCiyN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,KACP8tW,WAAY,KACZE,uBAAmB,EACnB1B,kBAAkB,EAClBE,QAAS,EACTrnS,iBAAa,KAGrB67K,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,OAI/B96P,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKizW,uBACLjzW,KAAKkzW,8BAETA,2BAA4B,WACxBlzW,KAAKmzW,yBAA2BnzW,KAAKw7N,sBAAsB,sBAE/Dw3I,qBAAsB,SAASxyW,GACtBR,KAAKmzW,0BAGVnzW,KAAKmzW,yBAAyB,CAC1B34V,MAAOha,KAGfyyW,qBAAsB,WAClBjzW,KAAKozW,iBAAiBpzW,KAAK6kB,OAAO,WAEtCuuV,iBAAkB,SAASxxW,GACvBA,EAAQA,GAASwvW,EACjB,IAAIiC,EAAW,IAAI5+H,EAAAA,QAAM7yO,GACpByxW,EAASx+H,gBAQL70O,KAAKyxW,gBACNzxW,KAAKyxW,cAAgB,IAAIh9H,EAAAA,QAAM28H,IAEnCpxW,KAAK6kB,OAAO,QAAS7kB,KAAKyxW,cAAc/8H,YAVnC10O,KAAKyxW,eAAiBzxW,KAAK0tW,UAAU1tW,KAAKyxW,iBAAmBzxW,KAAK0tW,UAAU2F,KAC7ErzW,KAAKyxW,cAAgB4B,EACjBrzW,KAAKszW,gBACLtzW,KAAKwtW,2BAA2BxtW,KAAKszW,eAAgBD,KAUrEE,cAAe,SAAS3xW,GACpB,IAAIw3C,EAAQx3C,GAASwvW,EACjBiC,EAAW,IAAI5+H,EAAAA,QAAMr7L,GACpBi6T,EAASx+H,gBACe70O,KAAK0tW,UAAU1tW,KAAK6kB,OAAO,gBAAkB7kB,KAAK0tW,UAAU2F,KAE7ErzW,KAAKwzW,aACLxzW,KAAKwtW,2BAA2BxtW,KAAKwzW,YAAaH,IAKlE5oH,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SA9OD,gBA+Ofzf,KAAKyzW,+BAET33I,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK0zW,iBACL1zW,KAAK2zW,kBACL3zW,KAAK4zW,2BACL5zW,KAAK6zW,kBACL7zW,KAAK8zW,+BAETtG,2BAA4B,SAASxyV,EAAKo+B,GAChCA,aAAiBq7L,EAAAA,UACnBr7L,EAAQ,IAAIq7L,EAAAA,QAAMr7L,IAEtBp+B,EAAIK,IAAI,kBAAmBrb,KAAK0tW,UAAUt0T,KAE9Cs0T,UAAW,SAASt0T,GAIhB,OAHMA,aAAiBq7L,EAAAA,UACnBr7L,EAAQ,IAAIq7L,EAAAA,QAAMr7L,IAEf,QAAU,CAACA,EAAMmtB,EAAGntB,EAAMotB,EAAGptB,EAAMsM,EAAGtM,EAAMqM,GAAGx0C,KAAK,MAAQ,KAEvEqvU,aAAc,WACVtgV,KAAKuxN,SAASvxN,KAAK6kB,OAAO,oBAAsB7kB,KAAK0tW,UAAU1tW,KAAKyxW,eAAiBzxW,KAAK6kB,OAAO,WAErG4uV,4BAA6B,WACzB,IAAI35V,EAAU9Z,KAAK6Z,WACnB7Z,KAAK+zW,wBAAyBrmW,EAAAA,EAAAA,GAAE,SAAS+R,SAzQhB,0BAyQqDwY,SAASne,GACvF9Z,KAAKg0W,mBAETA,gBAAiB,SAASC,GACtB,IAAIC,EAAgBl0W,KAAK+zW,uBAAuB13V,KAAK,IAAMu0V,GACvDuD,EAAoBD,EAAc5zW,OAElC0c,EAAQm3V,GADGn0W,KAAK6kB,OAAO,oBAAsB,EAAI,GAKrD,GAHI7H,EAAQ,GACRk3V,EAActsT,IAAI,GAAGpmD,SAErBwb,EAAQ,EAAG,CACXA,EAAQ2I,KAAK23B,IAAItgC,GACjB,IACIjR,EADAguJ,EAAO,GAEX,IAAKhuJ,EAAI,EAAGA,EAAIiR,EAAOjR,IACnBguJ,EAAKn5J,MAAK8M,EAAAA,EAAAA,GAAE,SAAS+R,SAASmxV,IAElC,GAAIuD,EACA,IAAKpoW,EAAI,EAAGA,EAAIguJ,EAAKz5J,OAAQyL,IACzBmoW,EAActsT,GAAG,GAAGi9G,MAAM9K,EAAKhuJ,SAGnC/L,KAAK+zW,uBAAuBh0V,OAAOg6I,KAI/Cq6M,yBAA0B,SAASvzW,EAAOwzW,EAAYC,GAClD,OAAO5mW,EAAAA,EAAAA,GAAE,SAAS+R,SAnSE,+BAmS8BA,SAAS60V,GAAiBr8U,SAASo8U,EAAWh4V,KAAK,IAAMu0V,GAAsBhpT,GAAG/mD,KAExI6yW,eAAgB,WACZ,IAAIa,EAAev0W,KAAKo0W,yBAAyB,EAAGp0W,KAAK+zW,uBApS7B,6BAqSxBS,GAAwB9mW,EAAAA,EAAAA,GAAE,SAAS+R,SAAS,CAACoxV,EAAmCC,GAAyC7/V,KAAK,MAC9HwjW,GAAwB/mW,EAAAA,EAAAA,GAAE,SAAS+R,SAAS,CAACoxV,EAAmCE,GAAyC9/V,KAAK,MAClIjR,KAAK00W,WAAYhnW,EAAAA,EAAAA,GAAE,SAAS+R,SAxSL,wBAwSwCpE,IAAI,kBAAmBrb,KAAKyxW,cAAcj7H,eAAeJ,SAASn+M,SAASs8U,GAC1Iv0W,KAAK4xW,gBAAiB/0N,EAAAA,EAAAA,IAAU78I,KAAK00W,WACrC10W,KAAKuxW,eAAgBz0N,EAAAA,EAAAA,IAAS98I,KAAK00W,WACnC10W,KAAK20W,uBACL30W,KAAK00W,UAAU30V,OAAO,CAACy0V,EAAuBC,KAElDE,qBAAsB,WAAW,WAC7B30W,KAAK40W,iBAAkBlnW,EAAAA,EAAAA,GAAE,SAAS+R,SA7SJ,+BA6S8CwY,SAASj4B,KAAK00W,WAC1F,IAAIG,EAAa,CACb5qW,GAAIjK,KAAK6kB,OAAO,UAChB2tH,KAAM,eAEVxyI,KAAK4gV,QAAQi0B,EAAY70W,KAAK40W,iBAC9B50W,KAAKonP,iBAAiBpnP,KAAK40W,gBAAiBxsU,EAAAA,EAAW,CACnDhiB,gBAAiB,KACjBlB,SAAUllB,KAAK00W,UACf1hJ,kBAAkB,EAClBD,YAAa,WACT,OAAQ/yN,KAAK80W,qBAAuB,GACtCrqW,KAAKzK,MACP0yN,WAAY,SAAAs0B,GACR,IACWxsO,EACPwsO,EADAxsO,MAEAu6V,GAAwBzgJ,EAAAA,EAAAA,IAAO,EAAKsgJ,iBACxC,EAAKI,eAAgB,EACrB,EAAKtpB,sBAAsBlxU,GAC3B,EAAKu3V,oBAAoB,EAAKN,cAAc18H,IAAIvrF,EAAG,EAAKyrN,0BAA0BF,GAAwB,EAAKG,qBAAqBH,OAG5I/0W,KAAKm1W,qBAAsBr4N,EAAAA,EAAAA,IAAS98I,KAAK40W,iBACzC50W,KAAK80W,sBAAuBj4N,EAAAA,EAAAA,IAAU78I,KAAK40W,iBAC3C50W,KAAK8xW,uBAETA,oBAAqB,YACjB71T,EAAAA,EAAAA,IAAKj8C,KAAK40W,gBAAiB,CACvBl8V,KAAMiN,KAAK6H,MAAMxtB,KAAKuxW,cAAgBvxW,KAAKyxW,cAAc18H,IAAIloN,EAAI,IAAM7sB,KAAKm1W,oBAAsB,GAClGr8V,IAAK6M,KAAK6H,MAAMxtB,KAAK4xW,eAAiB5xW,KAAK4xW,eAAiB5xW,KAAKyxW,cAAc18H,IAAIluL,EAAI,IAAM7mD,KAAK80W,qBAAuB,MAGjII,qBAAsB,SAASH,GAC3B,IAAInzW,EAAQ+jB,KAAKo1B,MAAMg6T,EAAsBj8V,IAAM9Y,KAAK80W,qBAAuB,GAC/E,OAAO,IAAMnvV,KAAK6H,MAAM,IAAM5rB,EAAQ5B,KAAK4xW,iBAE/CqD,0BAA2B,SAASF,GAChC,IAAIK,EAAazvV,KAAKo1B,MAAMg6T,EAAsBr8V,KAAO1Y,KAAKm1W,oBAAsB,GACpF,OAAOxvV,KAAK6H,MAAM,IAAM4nV,EAAap1W,KAAKuxW,gBAE9CQ,oBAAqB,SAASsD,EAAKD,EAAYxzW,GAC3C,IAAI6jD,EAAIzlD,KAAKyxW,cAAchsT,EAC3BzlD,KAAKyxW,cAAgB,IAAIh9H,EAAAA,QAAM,OAAS,CAAC4gI,EAAKD,EAAYxzW,GAAOqP,KAAK,KAAO,KAC7EjR,KAAKyxW,cAAchsT,EAAIA,EACvBzlD,KAAKs1W,oCACLt1W,KAAKu1W,cAET5B,gBAAiB,WACb,IAAI6B,EAAgBx1W,KAAKo0W,yBAAyB,EAAGp0W,KAAK+zW,uBAzV5B,+BA0V9B/zW,KAAKy1W,mBAAoB/nW,EAAAA,EAAAA,GAAE,SAAS+R,SAxVH,kCAwVgDwY,SAASu9U,GAC1Fx1W,KAAK01W,YAAahoW,EAAAA,EAAAA,GAAE,SAAS+R,SA5VJ,0BA4VyCwY,SAASj4B,KAAKy1W,mBAChFz1W,KAAK21W,iBAAkB94N,EAAAA,EAAAA,IAAU78I,KAAK01W,YACtC11W,KAAKiyW,wBAAyBz5I,EAAAA,EAAAA,IAAex4N,KAAKy1W,mBAClDz1W,KAAK41W,yBAETA,sBAAuB,WAAW,WAC9B51W,KAAKsyW,kBAAmB5kW,EAAAA,EAAAA,GAAE,SAAS+R,SAhWH,iCAgW+CwY,SAASj4B,KAAKy1W,mBAC7Fz1W,KAAKonP,iBAAiBpnP,KAAKsyW,iBAAkBlqU,EAAAA,EAAW,CACpDhiB,gBAAiB,KACjBlB,SAAUllB,KAAKy1W,kBACfziJ,kBAAkB,EAClBF,cAAe,WACfJ,WAAY,SAAAy1B,GACR,IACW3tO,EACP2tO,EADA3tO,MAEJ,EAAKw6V,eAAgB,EACrB,EAAKtpB,sBAAsBlxU,GAC3B,EAAK+3V,iBAAgBj+I,EAAAA,EAAAA,IAAO,EAAKg+I,kBAAkBx5V,IAAM,EAAKo5V,sBAAwB,MAG9FlyW,KAAKkyW,uBAAwBr1N,EAAAA,EAAAA,IAAU78I,KAAKsyW,kBAC5CtyW,KAAKoyW,wBAETA,qBAAsB,WAClB,IAAIyD,EAAiB71W,KAAKiyW,uBACtB6D,EAAe91W,KAAKkyW,sBACpBp5V,GAAO+8V,EAAiBC,IAAiB,IAAM91W,KAAKyxW,cAAc18H,IAAIvrF,GAAK,IAC3EqsN,EAAiB/8V,EAAMg9V,IACvBh9V,EAAM+8V,EAAiBC,GAEvBh9V,EAAM,IACNA,EAAM,IAEVmjC,EAAAA,EAAAA,IAAKj8C,KAAKsyW,iBAAkB,CACxBx5V,IAAK6M,KAAK6H,MAAM1U,MAGxBy5V,gBAAiB,SAASwD,GACtB,IAAIV,EAAM,IAAM1vV,KAAK6H,MAAM,KAAOuoV,EAAiB/1W,KAAKkyW,sBAAwB,IAAMlyW,KAAKiyW,uBAAyBjyW,KAAKkyW,wBACrHkD,EAAap1W,KAAKyxW,cAAc18H,IAAIloN,EACpCjrB,EAAQ5B,KAAKyxW,cAAc18H,IAAIluL,EACnC7mD,KAAK+yW,gBAAiB,GACtBsC,EAAMA,EAAM,EAAI,EAAIA,IACT,MACPr1W,KAAK+yW,gBAAiB,EACtBsC,EAAM,GAEVr1W,KAAK+xW,oBAAoBsD,EAAKD,EAAYxzW,GAC1C5B,KAAK00W,UAAUr5V,IAAI,kBAAmBrb,KAAKyxW,cAAcj7H,eAAeJ,UAE5Ew9H,yBAA0B,WACtB,IAAIoC,EAAyBh2W,KAAKo0W,yBAAyB,EAAGp0W,KAAK+zW,wBACnE/zW,KAAKi2W,qBAAsBvoW,EAAAA,EAAAA,GAAE,SAAS+R,SA7YJ,mCA6YkDwY,SAAS+9U,IAEjGnC,gBAAiB,WACb7zW,KAAKk2W,uBACLl2W,KAAKm2W,mBACLn2W,KAAKo2W,mBAETF,qBAAsB,WAClB,IAAIG,GAA0B3oW,EAAAA,EAAAA,GAAE,SAAS+R,SAxYF,wCAwYqDwY,SAASj4B,KAAKi2W,qBACtGK,GAA+B5oW,EAAAA,EAAAA,GAAE,SAAS+R,SAxYD,8CAwY0DwY,SAASo+U,GAChHr2W,KAAKszW,gBAAiB5lW,EAAAA,EAAAA,GAAE,SAAS+R,SAAS,CAACwxV,EAA0BE,GAAoClgW,KAAK,MAC9GjR,KAAKwzW,aAAc9lW,EAAAA,EAAAA,GAAE,SAAS+R,SAAS,CAACwxV,EAA0BC,GAAwCjgW,KAAK,MAC/GjR,KAAKwtW,2BAA2BxtW,KAAKwzW,YAAaxzW,KAAK6kB,OAAO,eAC9D7kB,KAAKwtW,2BAA2BxtW,KAAKszW,eAAgBtzW,KAAKyxW,eAC1D6E,EAA6Bv2V,OAAO,CAAC/f,KAAKwzW,YAAaxzW,KAAKszW,kBAEhEQ,4BAA6B,WACrB9zW,KAAK6kB,OAAO,sBACZ7kB,KAAK+zW,uBAAuB13V,KAAK,IAAMu0V,GAAsBhpT,GAAG,GAAGnoC,SAzZtC,kCA0Z7Bzf,KAAKu2W,2BACLv2W,KAAKw2W,6BAGbL,iBAAkB,WACdn2W,KAAKy2W,qBAAuB,CAACz2W,KAAK02W,uBAAuB,CACrD5yU,WAAY6yU,EAAAA,QACZ/0W,MAAO5B,KAAKyxW,cAAclrS,EAC1BgyC,eAAgBv4G,KAAK42W,aAAansW,KAAKzK,MAAM,GAC7C62W,UAAW,IACXC,cAAe35C,EAAAA,EAAAA,OAA2B,uBAC1C45C,WA1aqB,2BA2arB/2W,KAAK02W,uBAAuB,CAC5B5yU,WAAY6yU,EAAAA,QACZ/0W,MAAO5B,KAAKyxW,cAAcjrS,EAC1B+xC,eAAgBv4G,KAAK42W,aAAansW,KAAKzK,MAAM,GAC7C62W,UAAW,IACXC,cAAe35C,EAAAA,EAAAA,OAA2B,yBAC1C45C,WAhbuB,6BAibvB/2W,KAAK02W,uBAAuB,CAC5B5yU,WAAY6yU,EAAAA,QACZ/0W,MAAO5B,KAAKyxW,cAAc/rT,EAC1B6yD,eAAgBv4G,KAAK42W,aAAansW,KAAKzK,MAAM,GAC7C62W,UAAW,IACXC,cAAe35C,EAAAA,EAAAA,OAA2B,wBAC1C45C,WAtbsB,6BAwb1B/2W,KAAKi2W,oBAAoBl2V,OAAO/f,KAAKy2W,sBACrCz2W,KAAKsvW,WAAa,CAACtvW,KAAKy2W,qBAAqB,GAAGp6V,KAAK,iBAAiB26V,YAAY,YAAah3W,KAAKy2W,qBAAqB,GAAGp6V,KAAK,iBAAiB26V,YAAY,YAAah3W,KAAKy2W,qBAAqB,GAAGp6V,KAAK,iBAAiB26V,YAAY,cAE9ON,uBAAwB,SAASt8V,GAAS,WAClCsyI,GAAUh/I,EAAAA,EAAAA,GAAE,SACZupW,GAASvpW,EAAAA,EAAAA,GAAE,WAAW+R,SAASrF,EAAQ28V,YAAYp0W,KAAKyX,EAAQy8V,UAAY,KAAK92V,OAAO2sI,GAC5FipE,EAAAA,EAAAA,IAAiBshJ,EAAQhtE,EAAAA,GACzBt0E,EAAAA,EAAAA,GAAgBshJ,EAAQhtE,EAAAA,GAAiB,SAASzpS,GAC9CA,EAAE6G,oBAEN,IAAIy8B,EAAa1pB,EAAQ0pB,WACrBhI,GAAgBhzB,EAAAA,EAAAA,GAAO,CACvBlH,MAAOwY,EAAQxY,MACf22G,eAAgBn+F,EAAQm+F,eACxBizN,kBAAmB,SAAAxiN,GAAI,OAAI,EAAKkuP,iBAAiBluP,KAClD,CACCjiD,YAAa/mE,KAAK6kB,OAAO,iBAY7B,OAVIif,IAAe6yU,EAAAA,UACf76U,EAAchW,IAAM1L,EAAQ0L,KAAO,EACnCgW,EAAclW,IAAMxL,EAAQwL,KAAO,IACnCkW,EAAcuiB,KAAOjkC,EAAQikC,MAAQ,GAE5B,IAAIva,EAAW4oH,EAAS5wH,GAC9BszU,mBAAmB,QAAS,SAAS5uW,GACxCR,KAAKgzW,qBAAqBxyW,IAC5BiK,KAAKzK,OACPA,KAAK4gV,QAAQ,QAASxmU,EAAQ08V,cAAepqN,GACtCuqN,GAEXE,gBAAiB,WACb,MAAO,CACHrzU,WAAYszU,EAAAA,QACZx1W,MAAO5B,KAAKyxW,cAAcr7H,QAAQ1tL,QAAQ,IAAK,IAC/C6vD,eAAgBv4G,KAAK42W,aAAansW,KAAKzK,MAAM,GAC7C+2W,WAAY/F,EACZ6F,UAAW,IACXC,cAAe35C,EAAAA,EAAAA,OAA2B,yBAGlDi5C,gBAAiB,WACbp2W,KAAKq3W,UAAYD,EAAAA,QAAAA,YAAoBp3W,KAAK02W,uBAAuB12W,KAAKm3W,mBAAmBl/U,SAASj4B,KAAKi2W,qBAAqB55V,KAAK,gBACjI,IAAIi7V,EAAU,MAAM17U,OAAO,IAAIu1N,EAAAA,GAC3BomH,EAAYv3W,KAAKi2W,oBAAoB55V,KAAK,IAAIuf,OAAOo1U,IAA6B30V,KAAK,IAAIuf,OArd/E,wBAsdhB57B,KAAK4gV,QAAQ,KAAM02B,EAASC,GAC5Bv3W,KAAK4gV,QAAQ,aAAc02B,EAASt3W,KAAK40W,kBAE7C2B,yBAA0B,WACtB,IAAIiB,EAAyBx3W,KAAKo0W,yBAAyB,EAAGp0W,KAAK+zW,uBAjejC,mCAke9B0D,GAAsB/pW,EAAAA,EAAAA,GAAE,SAAS+R,SAjeD,qCAieiDwY,SAASu/U,GAC1FE,GAA4BhqW,EAAAA,EAAAA,GAAE,SAAS+R,SAteA,sCAseuDwY,SAASw/U,GAC3Gz3W,KAAK23W,qBAAsBjqW,EAAAA,EAAAA,GAAE,SAAS+R,SAzeH,oCAyekDwY,SAASy/U,GAC9F13W,KAAK43W,uBAAuB53W,KAAK23W,qBACjC33W,KAAK63W,0BAA0BL,IAEnCI,uBAAwB,SAAS58V,GAC7B,IAAIo+B,EAAQp5C,KAAKyxW,cACbqG,EAAa,GAAGl8U,OAAOwd,EAAMmtB,EAAG,KAAK3qC,OAAOwd,EAAMotB,EAAG,KAAK5qC,OAAOwd,EAAMsM,GACvEqsB,EAAa/xE,KAAK6kB,OAAO,cACzBkzV,EAAa,QAAQn8U,OAAOk8U,EAAY,MAAMl8U,OAAOm2C,EAAa,IAAM,IAAK,KAC7EimS,EAAc,QAAQp8U,OAAOk8U,EAAY,MAAMl8U,OAAOm2C,EAAa,IAAM,IAAK,KAC9EkmS,EAAkB,2BAA2Br8U,OAAOm8U,EAAY,MAAMn8U,OAAOo8U,EAAa,KAC9Fh9V,EAAIK,IAAI,kBAAmB48V,IAE/BzB,yBAA0B,WACtB,IAAI5gL,EAAO51L,KACPk4W,EAAyBl4W,KAAKo0W,yBAAyB,EAAGp0W,KAAK+zW,wBACnEn+K,EAAKuiL,mBAAqBn4W,KAAK02W,uBAAuB,CAClD5yU,WAAY6yU,EAAAA,QACZ/0W,MAAO5B,KAAKyxW,cAAchsT,EAC1B7/B,IAAK,EACLy4B,KAAM,GACNk6D,eAAgB,SAAS/xF,GACrB,IAAI5kB,EAAQ4kB,EAAK5kB,MACjBA,EAAQg0L,EAAK67K,cAAc76H,aAAah1O,GAASA,EAAQg0L,EAAK67K,cAAchsT,EAC5Ej/B,EAAKhM,OAASo7K,EAAK81J,sBAAsBllU,EAAKhM,OAC9Co7K,EAAKwiL,yBAAyBx2W,GAC9Bg0L,EAAK+8K,4BAEToE,WAlgB+B,mCAmgB/BF,UAAW,QACXC,cAAe35C,EAAAA,EAAAA,OAA2B,2BAC3CllS,SAASigV,GAAwB77V,KAAK,iBAAiB26V,YAAY,aAE1EoB,yBAA0B,SAASC,GAC/Br4W,KAAKyxW,cAAchsT,EAAI4yT,EACvBr4W,KAAKu1W,cAETsC,0BAA2B,SAAS/9V,GAAS,WACzC9Z,KAAK4yW,sBAAuBllW,EAAAA,EAAAA,GAAE,SAAS+R,SA3gBH,qCA2gBmDwY,SAASne,GAChG9Z,KAAKonP,iBAAiBpnP,KAAK4yW,qBAAsBxqU,EAAAA,EAAW,CACxDhiB,gBAAiB,KACjBlB,SAAUpL,EACVk5M,kBAAkB,EAClBF,cAAe,aACfJ,WAAY,SAAAk2B,GACR,IACWpuO,EACPouO,EADApuO,MAEJ,EAAKw6V,eAAgB,EACrB,IAAIsD,EAAsB,EAAK1F,qBAC3B2F,GAA6BjkJ,EAAAA,EAAAA,IAAOgkJ,GAAqB5/V,KAAO,EAAKo6V,yBAA2B,EACpG,EAAKpnB,sBAAsBlxU,GAC3B,EAAKq4V,wCAAwC0F,MAGrDv4W,KAAK8yW,0BAA2Bh2N,EAAAA,EAAAA,IAAS98I,KAAK4yW,sBAC9C5yW,KAAKyyW,6BAA8B31N,EAAAA,EAAAA,IAAShjI,GAAW9Z,KAAK8yW,yBAC5D9yW,KAAK2yW,4BAETE,wCAAyC,SAASkD,GAC9C,IAAIsC,GAAgBtC,EAAiB/1W,KAAK8yW,yBAA2B,GAAK9yW,KAAKyyW,4BAC3E1gS,EAAa/xE,KAAK6kB,OAAO,cAC7BwzV,EAAetmS,EAAasmS,EAAe,EAAIA,EAC3CtC,GAAkB/1W,KAAKyyW,4BAA8BzyW,KAAK8yW,yBAA2B,EACrFuF,EAAetmS,EAAa,EAAI,EACzBsmS,EAAe,IACtBA,EAAeA,EAAapkT,QAAQ,IAExC,IAAIukT,EAAuBx4W,KAAKm4W,mBAAmBtzV,OAAO,SAC1DwzV,EAAe1yV,KAAKC,IAAIyyV,EAAc,IACtCA,EAAe1yV,KAAKG,IAAIuyV,EAAc,MACjBG,EACjBx4W,KAAKg1W,eAAgB,EAErBh1W,KAAKm4W,mBAAmBtzV,OAAO,QAASwzV,IAGhD1F,yBAA0B,WACtB,IAAIj6V,EAAO1Y,KAAKyyW,6BAA+B,EAAIzyW,KAAKyxW,cAAchsT,GAClE/sC,EAAO,IACPA,EAAO,GAEP1Y,KAAKyyW,4BAA8B/5V,IACnCA,EAAO1Y,KAAKyyW,8BAEhBx2T,EAAAA,EAAAA,IAAKj8C,KAAK4yW,qBAAsB,CAC5Bl6V,KAAM1Y,KAAK6kB,OAAO,cAAgB7kB,KAAKyyW,4BAA8B/5V,EAAOA,KAGpF68V,WAAY,WACR,IAAI/8P,EAAgBx4G,KAAK6kB,OAAO,SAC5B4zV,EAAaz4W,KAAK6kB,OAAO,oBAAsB7kB,KAAK0tW,UAAU1tW,KAAKyxW,eAAiBzxW,KAAKyxW,cAAcr7H,QAC3Gp2O,KAAKwtW,2BAA2BxtW,KAAKszW,eAAgBtzW,KAAKyxW,eACtDgH,IAAejgQ,EACfx4G,KAAKg1W,eAAgB,EAErBh1W,KAAK6kB,OAAO,QAAS4zV,IAG7BC,YAAa,WACT14W,KAAKizW,uBACLjzW,KAAK24W,kBAET/B,aAAc,SAASgC,EAAOpyV,GAC1B,IAAIqyV,EACAxF,EACAuF,EACAvF,EAAWrzW,KAAK84W,aAAa,IAAM94W,KAAKq3W,UAAUxyV,OAAO,WAEzDg0V,EAAO74W,KAAK+4W,eACR/4W,KAAKm4W,oBACLU,EAAKj4W,KAAKZ,KAAKm4W,mBAAmBtzV,OAAO,UACzCwuV,EAAW,QAAUwF,EAAK5nW,KAAK,MAAQ,KAEvCoiW,EAAW,OAASwF,EAAK5nW,KAAK,MAAQ,KAGzCjR,KAAKg5W,gCACNh5W,KAAKyxW,cAAgB,IAAIh9H,EAAAA,QAAM4+H,GAC/BrzW,KAAK0rV,sBAAsBllU,EAAKhM,OAChCxa,KAAKu1W,aACLv1W,KAAK24W,mBAGbG,aAAc,SAASpiI,GACnB,OAAO12O,KAAKyxW,cAAch7H,WAAWC,GAAOA,EAAM12O,KAAKyxW,cAAcr7H,SAEzE2iI,aAAc,WACV,IAAIxyS,EAAIvmE,KAAKsvW,WAAW,GAAGzqV,OAAO,SAC9B2hD,EAAIxmE,KAAKsvW,WAAW,GAAGzqV,OAAO,SAC9B6gC,EAAI1lD,KAAKsvW,WAAW,GAAGzqV,OAAO,SAMlC,OALK7kB,KAAKyxW,cAAc96H,WAAWpwK,EAAGC,EAAG9gB,KACrC6gB,EAAIvmE,KAAKyxW,cAAclrS,EACvBC,EAAIxmE,KAAKyxW,cAAcjrS,EACvB9gB,EAAI1lD,KAAKyxW,cAAc/rT,GAEpB,CAAC6gB,EAAGC,EAAG9gB,IAElBizT,eAAgB,WACZ34W,KAAKoyW,uBACLpyW,KAAK8xW,sBACL9xW,KAAKs1W,oCACLt1W,KAAK00W,UAAUr5V,IAAI,kBAAmBrb,KAAKyxW,cAAcj7H,eAAeJ,SACpEp2O,KAAK4yW,uBACL5yW,KAAKo4W,yBAAyBp4W,KAAKyxW,cAAchsT,GACjDzlD,KAAK2yW,6BAGb2C,kCAAmC,WAC/Bt1W,KAAKg5W,+BAAgC,EACrCh5W,KAAKq3W,UAAUxyV,OAAO,QAAS7kB,KAAKyxW,cAAcr7H,QAAQ1tL,QAAQ,IAAK,KACvE1oD,KAAKsvW,WAAW,GAAGzqV,OAAO,QAAS7kB,KAAKyxW,cAAclrS,GACtDvmE,KAAKsvW,WAAW,GAAGzqV,OAAO,QAAS7kB,KAAKyxW,cAAcjrS,GACtDxmE,KAAKsvW,WAAW,GAAGzqV,OAAO,QAAS7kB,KAAKyxW,cAAc/rT,GACtD1lD,KAAKg5W,+BAAgC,EACjCh5W,KAAK6kB,OAAO,sBACZ7kB,KAAK43W,uBAAuBn3W,KAAKT,KAAMA,KAAK23W,qBAC5C33W,KAAKm4W,mBAAmBtzV,OAAO,QAAS7kB,KAAKyxW,cAAchsT,KAGnEy2K,eAAgB,SAAS11M,GACrB,IAAI5kB,EAAQ4kB,EAAK5kB,MACjB,OAAQ4kB,EAAKhZ,MACT,IAAK,QACDxN,KAAKozW,iBAAiBxxW,GACjB5B,KAAKg1W,eACNh1W,KAAK24W,iBAET34W,KAAKg1W,eAAgB,EACrBh1W,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,aACDxmB,KAAKuzW,cAAc3xW,GACnB,MACJ,IAAK,oBACD5B,KAAKkzW,6BACL,MACJ,IAAK,mBACGlzW,KAAK+zW,yBACL/zW,KAAKg0W,gBAAgB,oBACrBh0W,KAAK8zW,+BAET,MACJ,IAAK,UACD,MACJ,IAAK,cACD9zW,KAAK6zW,kBACL,MACJ,QACI7zW,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,cAAe+sV,GACjC,kXC3qBI4L,EAAqBC,eACrBC,EAA8BF,wBAE9BG,EAAgCF,0BAChCG,EAA6BJ,uBAC7BK,EAAmB,aAKnBC,EAAuB,iBAGvBlgB,EAAa,OAGbI,EAAc,QACdD,EAAa,OACbggB,EAAU,CAAC,YAAa,UAAW,mBAAoB,WAAY,WAAY,gBAAiB,kBAAmB,iBAAkB,qBAAsB,uBAC3JC,EAA2B,CAPhB,KAO2BpgB,EAAYI,EAAaD,GAC/DkgB,EAAqB,gBACrBj0V,GAASwoM,EAAAA,EAAAA,MACPivE,EAAAA,SAAAA,uIACF,SAAay8E,GACT,IAAI9qW,EAAS,KAQb,OAPIs7M,EAAAA,EAAAA,IAASwvJ,GACL,OAASA,EAAgBnsW,OACzBqB,EAAS8qW,EAAgBnsW,MAAQksW,GAGrC7qW,EAAS8qW,EAEN9qW,8BAEX,SAAa8qW,GACT,OAAOxvJ,EAAAA,EAAAA,IAASwvJ,IAAoBA,EAAgB77O,wCAExD,WACI,OAAOh1H,EAAAA,EAAAA,IAAO,kEAA4B,CACtC8wW,UAAWF,EACXpzV,oBAAoB,EACpBH,SAAU,CACNw5C,GAAI,WACJD,GAAI,YAER5uC,UAAW,KACXE,QAAS,KACT6oV,iBAAkB,KAClB9oV,SAAU,KACV+oV,SAAU,KACVC,cAAe,KACfC,iBAAkB,OAClBnxW,SAAS,EACTjC,YAAQ,EACRqzW,gBAAiB,KACjBC,eAAgB,KAChBC,mBAAoB,KACpBC,oBAAqB,2CAG7B,WACI,OAAO,oEAA6Bx+U,OAAO,CAAC,CACxCwiN,OAAQ,mBAAO9hB,EAAAA,EAAAA,OACfliN,QAAS,CACLkqN,UAAW,8CAIvB,YACI,sEACAx7N,EAAAA,EAAAA,GAAO9I,KAAKuiP,mBAAoB,CAC5B83H,oBAAqB,CACjB71H,MAAO,OACPjjM,MAAO,oDAInB,WAAe,WACXvhD,KAAK64D,SAAW,IAChBp+C,EAAAA,EAAAA,IAAK++V,GAAS,SAAC34W,EAAO4f,GAClB,EAAKo4C,SAASp4C,GAAU,EAAK+6M,sBAAsB/6M,IAAWuxM,EAAAA,8CAGtE,YACI,uEACAlpN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BkR,WAAW,EACXl3N,cAAc,mCAGtB,0CACA,WACI,OAAOpN,KAAK8rB,SAAW9rB,KAAK8rB,SAAS6N,YAAajsB,EAAAA,EAAAA,wCAEtD,WACI,OAAO1N,KAAK24U,+CAEhB,WACI,OAAO34U,KAAK8rB,SAAW9rB,KAAK8rB,SAAS6N,gBAAa,gCAEtD,WAAiB,WACb,OAAO7wB,EAAAA,EAAAA,IAAO,8DAAwB,CAClC6wV,MAAO,WACH,IAAI3hB,GAAQtqU,EAAAA,EAAAA,GAAE,EAAKmX,OAAO,mBAC1B,EAAKqlD,OACA8tQ,EAAM13U,QAAW,EAAKg6W,uBAG3B,EAAK5d,WAAW1kB,EAAM,KAE1BlsM,OAAQ9rI,KAAKkqE,qCAGrB,WACI,IAAIqwS,EAAkBv6W,KAAKg8V,qBACvBwe,EAAeD,EAAgB30W,OAAO,IAAIg2B,OA1GzB,qBA2GjB6+U,EAAeF,EAAgB30W,OAAO,IAAIg2B,OAAO29U,IAErD,OAD4BkB,EAAa1wW,QAAQ,IAAI6xB,OAAOw9U,IAClC/8V,KAAK,IAAIuf,OAAOq9U,IAAqBp4W,MAAM25W,IAAiB,EAC3EA,EAEPC,EAAan6W,OACNm6W,GAEX,wFAEJ,SAAWz6U,GACP,IAKI+7T,EALA7kI,EAASl3N,KAAK06W,oBAAoB16U,GAClC26U,EAAa36W,KAAK07V,gBAAe,GACjC+e,EAAez6W,KAAKkjW,iBAAiB7mV,KAAK,IAAIuf,OAAO29U,IAErDqB,MADeltW,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACYvkB,SAAUm6W,EAAan6W,QAEpE,OAAQ0/B,GACJ,IA1HG,KA2HC+7T,EAAa6e,EAAyB56W,KAAKi8V,UAAU/kI,GAAUyjJ,EAC/D36W,KAAK66W,mBAAmB9e,GACpB4e,EAAW7gV,GAAGo9L,EAAOltJ,UACrBhqE,KAAK64D,SAASohT,gBAAgBU,GAElC,MACJ,KAAKthB,EACD0C,EAAa6e,EAAyB56W,KAAKk8V,UAAUhlI,GAAUyjJ,EAC/D36W,KAAK66W,mBAAmB9e,GACpB4e,EAAW7gV,GAAGo9L,EAAO56F,SACrBt8H,KAAK64D,SAASqhT,eAAeS,GAEjC,MACJ,IArIM,QAsIF5e,EAAa/7V,KAAK6kB,OAAO,cAAgB7kB,KAAK86W,sBAAwB96W,KAAK+6W,sBAAsB7jJ,EAAQl3L,GACzGhgC,KAAK66W,mBAAmB9e,GACxB,MACJ,IA1IK,OA2IDA,EAAa/7V,KAAK6kB,OAAO,cAAgB7kB,KAAK+6W,sBAAsB7jJ,EAAQl3L,GAAYhgC,KAAK86W,sBAC7F96W,KAAK66W,mBAAmB9e,GACxB,MACJ,KAAKtC,EACDsC,EAAa7kI,EAAOltJ,QACpBhqE,KAAK66W,mBAAmB9e,GACxB,MACJ,KAAKvC,EACDuC,EAAa7kI,EAAO56F,OACpBt8H,KAAK66W,mBAAmB9e,GACxB,MACJ,QACI,gEAAwB/7T,sCAGpC,SAAmBnmB,GACXA,GAAY,IAAMA,EAASvZ,QAC3BN,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBv8M,uCAGvD,SAAoBmmB,GAChB,IACIk3L,EADAukI,EAAcz7V,KAAK07V,gBAAe,GAMtC,OAJI+d,EAAyB39O,SAAS97F,KAClCk3L,EAASukI,EAAY1xV,QAAQ,IAAI6xB,OAAOw9U,IAAgCruW,WAAWA,YAEvFmsN,EAASl3N,KAAKg8V,mBAAmB9kI,iCAGrC,WACI,OAAOl3N,KAAK6Z,mDAEhB,WACI,IAAI8uC,EAAAA,EAAAA,IAAU3oD,KAAK8rB,UAAW,CAC1B,IAAIqkB,EAAUnwC,KAAK8rB,SAAS6N,YAC5B,uEAA+BwW,uCAGvC,WACI,IAAI6qU,EAAWh7W,KAAK07V,gBAAe,GAC/Buf,EAAcD,EAASl2V,QAAQ,IAAI8W,OAAOu9U,IAA8BnvS,QAC5E,OAAIixS,EAAY36W,QACZN,KAAKk7W,yBAAyBD,GAC9Bj7W,KAAKm7W,aAAaH,EAASjxW,QAAQ,IAAI6xB,OAAO09U,KACvC2B,IAEXj7W,KAAK64D,SAASshT,mBAAmBa,GAC1BA,wCAEX,SAAsB9jJ,EAAQl3L,GAC1B,IAAIg7U,EAAWh7W,KAAK07V,gBAAe,GAC/B7wR,EAAW7qE,KAAK45V,aAAaohB,GAC7B/kS,EAAOj2E,KAAKo7W,aAAaC,cAAcxwS,GACvCywS,EAAmBt7W,KAAKu7W,YAAYtlS,GACpCulS,EAAWR,EAASjwW,SAAS,IAAI6wB,OAAO09U,IAC5C,GAAIgC,IAAqBN,EAASjrJ,SAxMZ,qBA4MlB,OAHKyrJ,EAASl7W,QAAU,WAAak7W,EAASngW,IAAI,eAC9Crb,KAAKy7W,aAAaT,GAEfh7W,KAAKk8V,UAAUl8V,KAAK06W,oBAAoB16U,IAEnDhgC,KAAK64D,SAASuhT,oBAAoBY,yBAGtC,WACQh7W,KAAK8rB,WACL9rB,KAAK8rB,SAASjS,WAAWrY,SACzBxB,KAAK8rB,SAAW,MAEpB9rB,KAAK07W,6BAA6B17W,KAAK27W,eACvC,iFAEJ,WACI37W,KAAK6Z,WAAW4F,SA3NQ,wBA4NxB,kFAEJ,YACI,uDACAzf,KAAK47W,kBAAkB57W,KAAK6kB,OAAO,YACnC7kB,KAAK67W,oDAET,WACI77W,KAAK07W,6BAA6B17W,KAAK27W,cACvC37W,KAAK87W,oEAET,YACK97W,KAAK+7W,qBAAuB/7W,KAAK+oS,eAAezoS,SAAjD,8GAEJ,WACI,IAAIN,KAAK8rB,SAAT,CAGA,IAAIkwV,EAAiBh8W,KAAKi8W,qBAC1Bj8W,KAAK8rB,SAAW9rB,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK4kB,WAAYs3V,EAAAA,QAASF,GACpF,IAAIhN,EAAkBhvW,KAAK8rB,SAAS6N,WACpCq1U,EAAgBvvV,SAlPI,mBAmPpBzf,KAAKm8W,mBAAmBnN,GACxBhvW,KAAKo8W,2BAA2BpN,GAChChvW,KAAK69V,uFAET,WACI,IAAIqC,EAAiBlgW,KAAK24U,iBACtB1uS,GAAYmkL,EAAAA,EAAAA,cAAakyI,EAAAA,EAAsBtgW,KAAK+0N,MACxDY,EAAAA,EAAAA,IAAiBuqI,EAAgBj2T,EAAW,IAAIrO,OAAO09U,IACvD3jJ,EAAAA,EAAAA,GAAgBuqI,EAAgBj2T,EAAW,IAAIrO,OAAO09U,GAAoB,SAAA94W,GACtEA,EAAE4G,kBACF5G,EAAE6G,iBACFsuN,EAAAA,EAAAA,IAAiBuqI,EAAgBj2T,EAAW,IAAIrO,OAAO09U,KACxD7uW,KAAKzK,8CAEZ,SAAwBQ,IACpB,sEAA8BA,GAC9BA,EAAE4G,4DAEN,SAA2ByS,GACnBsuN,EAAAA,QAAAA,UAAkBkU,OAClBxiO,EAAS4F,SA3QK,qEA8QtB,SAA6B7Y,GACzB,IAAIgzW,EAAY55W,KAAKq8W,aAAar8W,KAAK6kB,OAAO,cAC9C,GAAK+0V,EAAL,CAGA,IAAI3vU,GAAYmkL,EAAAA,EAAAA,cAAawrJ,EAAW55W,KAAK+0N,MACzC/0N,KAAKs8W,6BACL3mJ,EAAAA,EAAAA,IAAiBiE,EAAAA,EAAAA,cAA0B3vL,EAAWrjC,EAAQ5G,KAAKs8W,8BAEnE3mJ,EAAAA,EAAAA,KAAiBjoN,EAAAA,EAAAA,GAAE9G,GAASqjC,gDAGpC,WAA+B,WACvBrjC,EAAS5G,KAAK27W,aACd/B,EAAY55W,KAAKq8W,aAAar8W,KAAK6kB,OAAO,cAC9C,GAAK+0V,EAAL,CAGA,IAAI3vU,GAAYmkL,EAAAA,EAAAA,cAAawrJ,EAAW55W,KAAK+0N,MACzCwnJ,EAAoBv8W,KAAK6lP,eAAc,SAAArlP,GACvC,IAAIs9H,EAAQ,EAAK0+O,aAAa,EAAK33V,OAAO,cACtCi5G,EACAj7H,YAAW,kBAAM,EAAK45W,MAAMj8W,EAAEga,SAAQsjH,GAEtC,EAAK2+O,MAAMj8W,EAAEga,SAElB,CACC48N,qBAAsB,WAEtB72O,EAAU,SAAAC,GAAC,OAAI+7W,EAAkB,CACjC/hW,MAAOha,EACPoG,QAAQ8G,EAAAA,EAAAA,GAAElN,EAAEkO,kBAEhB6tW,EAAoBv8W,KAAK6lP,cAAc02H,IACnCrzH,EAAAA,EAAAA,IAAWtiP,IAAWA,EAAOo0E,WAAYC,EAAAA,EAAAA,IAASr0E,IAClD5G,KAAKs8W,kCAA+B,EACpC3mJ,EAAAA,EAAAA,GAAgB/uN,EAAQqjC,EAAW1pC,KAEnCP,KAAKs8W,6BAA+B/7W,EACpCo1N,EAAAA,EAAAA,GAAgBiE,EAAAA,EAAAA,cAA0B3vL,EAAWrjC,EAAQ5G,KAAKs8W,gEAG1E,SAAiB97W,IACb,+DAAuBA,GACvBA,EAAE4G,mDAEN,4CACA,SAAiB+tN,EAAUunJ,GACvB,IAAIC,EAAUD,GAAoB18W,KAAK24U,kBACvCxjH,GAAWznN,EAAAA,EAAAA,GAAE,UACJuqB,SAAS0kV,GAASl9V,SAAS65V,GAAkBj+V,IAAI,aAAcqhW,EAAmB,SAAW,WACjGvnJ,EAAS1pN,SAASskN,SAxTH,uBAyThB/vN,KAAKm8W,mBAAmBhnJ,GAE5B,IAAIynJ,GAAkB,+DAAuBznJ,GAC7C,OAAIunJ,EACOE,EAEP58W,KAAK6kB,OAAO,SACL+3V,EAAgBvhW,IAAI,WAAYrb,KAAK6kB,OAAO,UAEnD7kB,KAAK6kB,OAAO,UACL+3V,EAAgBvhW,IAAI,YAAarb,KAAK6kB,OAAO,WAEjD+3V,qCAEX,SAAoB3mS,EAAM2qR,GACtB5gW,KAAKygW,aAAazgW,KAAK68W,eAAe5mS,GAAO2qR,GAC7C5gW,KAAK64D,SAASghT,iBAAiB,CAC3B/uS,aAAasrJ,EAAAA,EAAAA,GAAiBwqI,GAC9B/1R,SAAUoL,EAAK6mS,eAAe58W,KAC9B68W,gBAAgB3mJ,EAAAA,EAAAA,GAAiBwqI,EAAW71V,SAAS,IAAI6wB,OAAO09U,yCAGxE,WAAqB,WACbnzV,EAAWnmB,KAAK6kB,OAAO,YAwB3B,MAvBqB,CACjByoT,kBAAmBttU,KAAK6kB,OAAO,qBAC/By/M,UAAWtkO,KAAK6kB,OAAO,aACvBm4V,cAAc,EACd12V,mBAAoB,SAAA9lB,GAAC,OAAI,EAAKy8W,2BAA2Bz8W,IACzD08W,uBAAuB,EACvBC,oBAAoB,EACpBC,gBAAgB,EAChBj3V,SAAU,CACNw5C,GAAIx5C,EAASw5C,GACbD,GAAIv5C,EAASu5C,GACbD,GAAIz/D,KAAK27W,aACTv2V,UAAW,WAEf61N,SAAS,EACToiI,WAAW,EACX9rW,OAAQ,OACRD,MAAO,OACP0f,QAAShxB,KAAKs9W,2BAA2B7yW,KAAKzK,MAC9C+wB,SAAU/wB,KAAKu9W,4BAA4B9yW,KAAKzK,MAChD85W,SAAU95W,KAAKw9W,4BAA4B/yW,KAAKzK,MAChDy1U,gBAAiBhwT,6CAIzB,SAA2BsJ,GACvB/uB,KAAK64D,SAAS7nC,QAAQjC,8CAE1B,SAA4BA,GACxB/uB,KAAK64D,SAAS9nC,SAAShC,GAClBA,EAAIgX,SACL/lC,KAAKy9W,wBACLz9W,KAAK2mP,8BAA8B,WAAW,+CAGtD,SAA4B53N,GACxB/uB,KAAK64D,SAASihT,SAAS/qV,4CAE3B,SAA0BvuB,GACtB,MAGIR,KAAK6kB,SAFgBw1V,EADzB,EACIA,oBACoB/zV,EAFxB,EAEIA,mBAEJ,OAAI40D,EAAAA,EAAAA,IAAW50D,GACJA,EAAmB9lB,IACnB06E,EAAAA,EAAAA,IAAWm/R,GACXA,EAAoB75W,GAEpB8lB,GAAsB+zV,4CAGrC,SAA2B75W,GACvB,IAAKR,KAAK09W,0BAA0Bl9W,GAChC,OAAO,EAEX,GAAIo5N,EAAAA,EAAAA,WAAsBp5N,EAAEoG,QACxB,OAAO,EAEX,IAAI+2W,EAAuB39W,KAAK49W,yBAAyBp9W,EAAEoG,QACvDi3W,EAAkB79W,KAAK89W,sBACvBC,EAAe/9W,KAAKg+W,kBAAkBx9W,EAAEoG,QACxCq3W,EAAYj+W,KAAK6Z,WAAWiL,QAAQ,IAAI8W,OAAOq9U,IAC/CiF,EAAoBH,EAAa,KAAOE,EAAU,IAAMF,EAAaz9W,QAAU29W,EAAU39W,OAE7F,QAD4BN,KAAKm+W,kBAAkBR,EAAsBE,IAAoBE,EAAaz9W,UAC7E49W,IACrB,YAAcl+W,KAAKo+W,uBACnBp+W,KAAKq+W,2BAA2BN,IAE7B,2CAIf,SAAyBn3W,GACrB,OAAO8G,EAAAA,EAAAA,GAAE9G,GAAQmD,QAAQ,IAAI6xB,OAAOw9U,uCAExC,WACI,OAAOp5W,KAAK8rB,SAAS6N,WAAWtd,KAAK,IAAIuf,OAAOw9U,qCAEpD,SAAkBxyW,GACd,OAAO8G,EAAAA,EAAAA,GAAE9G,GAAQmD,QAAQ,IAAI6xB,OAAOq9U,IAAqBrxT,GAAG,oCAEhE,SAAkB02T,EAAgBC,GAC9B,IAAIC,GAAS,EAMb,OALA/jW,EAAAA,EAAAA,IAAK8jW,GAAc,SAAC19W,EAAO49W,GACnBH,EAAexkV,GAAG2kV,KAAcD,IAChCA,GAAS,MAGVA,4CAEX,SAA2BT,GAAc,WACjCW,EAAmBX,EAAa1hW,KAAK,IAAIuf,OAAO09U,IAChDqF,GAAgB71W,EAAAA,EAAAA,GAAO,GAAI9I,KAAK4+W,gBAChCF,EAAiBp+W,OAAS,IAC1Bma,EAAAA,EAAAA,IAAKkkW,GAAe,SAAC99W,EAAO26W,GACxB,IAAIp0V,EAAW,EAAK42V,kBAAkBxC,EAAS7gW,SAASlP,SACpD2b,EAAS3b,SAASquB,GAAGikV,EAAatyW,SAASA,YAAc2b,EAAS0S,GAAGikV,EAAatyW,WAClF,EAAK0vW,aAAaK,kCAKlC,SAAaxjC,GACT,IAAI/hQ,EAAOj2E,KAAKo7W,aAAaC,cAAcr7W,KAAK45V,aAAa5hB,IAE7D,GADAh4U,KAAKk7W,yBAAyBljC,GACzBh4U,KAAKu7W,YAAYtlS,GAAtB,CAGA,IAAIulS,EAAWxjC,EAAMjtU,SAAS,IAAI6wB,OAAO09U,IACrCuF,EAAoBrD,EAASl7W,QACjC,2DAAmB03U,GACd6mC,GACD7+W,KAAK8+W,oBAAoB7oS,EAAM+hQ,GAE9Bh4U,KAAK++W,kBAAkBvD,IACxBx7W,KAAKg/W,aAAahnC,4CAG1B,SAAyBA,GACrB,IAAIinC,EAAiBjnC,EAAMvsU,OAAO,IAAImwB,OAAOy9U,IAA6Bv+U,WAAWze,KAAK,IAAIuf,OAAOu9U,IACjG8F,EAAe3+W,SACf2+W,EAAepnV,YAAYshV,GAC3Bn5W,KAAKm7W,aAAa8D,EAAe5iW,KAAK,IAAIuf,OAAO09U,uCAGzD,SAAkBkC,GACVx7W,KAAK++W,kBAAkBvD,IACvBx7W,KAAKk/W,iBAAiB1D,oCAG9B,SAAkBA,GACd,MAAO,YAAcA,EAASngW,IAAI,0CAEtC,SAAa++M,GACT,IAAIkK,EAAYtkO,KAAK6kB,OAAO,aAAe7kB,KAAK6kB,OAAO,aAAa28B,KAAO,GACvEg6T,EAAWphJ,EAAarvN,SAAS,IAAI6wB,OAAO09U,IAC5C6F,EAAkBn/W,KAAKo/W,oBAAoBhlJ,GAC3Cp6N,KAAK8rB,UAAY9rB,KAAK8rB,SAASjH,OAAO,cACjC8jC,EAAAA,EAAAA,IAAU3oD,KAAK4+W,kBAChB5+W,KAAK4+W,eAAiB,IAErB5+W,KAAK4+W,eAAe9iP,SAAS0/O,IAC9Bx7W,KAAK4+W,eAAeh+W,KAAK46W,GAEzBl3I,GACArE,EAAAA,QAAAA,KAAQu7I,GAEZ6D,EAAAA,EAAAA,MAAwB7D,EAAU2D,GAC9B76I,KACIvpJ,EAAAA,EAAAA,IAAcupJ,EAAUtjK,MACxBsjK,EAAUtjK,GAAG76C,SAAWg5V,GAE5Bn/W,KAAKs/W,SAAS9D,EAAUl3I,IAE5Bk3I,EAASngW,IAAI,aAAc,oCAGnC,SAASksB,EAAYntB,GACjB6lN,EAAAA,QAAAA,QAAW14L,EAAYntB,sCAE3B,SAAoB6jW,GAChB,IAAIjE,EAAmBh6W,KAAK6kB,OAAO,oBAAoBoe,cAEnD9c,EAAW,CACXf,UAAW,OACXq6C,GAHmBw+S,EAAUxyW,OAAO,IAAImwB,OAAOy9U,IAI/C9tW,OAAQ,CACJi+I,EAAG,EACH3iG,GAAI,IAGZ,OAAQmzT,GACJ,IAAK,OACD7zV,EAASw5C,GAAK,WACdx5C,EAASu5C,GAAK,YACd,MACJ,IAAK,QACDv5C,EAASw5C,GAAK,YACdx5C,EAASu5C,GAAK,WACd,MACJ,QACQ1/D,KAAK6kB,OAAO,eACZsB,EAASw5C,GAAK,WACdx5C,EAASu5C,GAAK,cAEdv5C,EAASw5C,GAAK,YACdx5C,EAASu5C,GAAK,YAG1B,OAAOv5C,iDAEX,SAAgCs8U,GAC5B,GAAKA,EAAWj8U,KAAKlmB,OAArB,CAGA,IAAIuqE,EAAW43R,EAAWj8U,KAAK,GAAGqkD,SAC9BoL,EAAOj2E,KAAKo7W,aAAaC,cAAcxwS,GAC3C,GAAKoL,EAAL,CAGA,IAAImkJ,GAAe1sN,EAAAA,EAAAA,GAAE+0V,EAAWj8U,KAAK,GAAGskD,aACpC0wS,EAAWphJ,EAAa/9M,KAAK,IAAIuf,OAAO09U,IAM5C,GAL0Bt5W,KAAKu7W,YAAYtlS,KAAUulS,EAASl7W,SAE1DN,KAAK8+W,oBAAoB7oS,EAAMmkJ,GAC/BohJ,EAAWphJ,EAAa/9M,KAAK,IAAIuf,OAAO09U,KAExCl/I,EAAaz/M,UAAY6gW,EAAS7gW,SAAW,YAAc6gW,EAASngW,IAAI,cAA5E,CAGArb,KAAKu/W,2BAA2B9c,GAChC,IAAI+c,EAA0B30S,IAAY,IAAUA,EAAS40S,iBAC7D,GAAK50S,IAAYA,EAASz/D,WAAYo0W,EAGtC,GAAI,IAAMhE,EAASl7W,OAAQ,CACvB,IAAIo/W,GAAehyW,EAAAA,EAAAA,GAAE0sN,EAAat1M,QAAQ,IAAI8W,OAAO09U,IAAmB,IACxEt5W,KAAKm7W,aAAauE,IACbjd,EAAWkd,UAAY3/W,KAAK8rB,UAAY9rB,KAAK8rB,SAASjH,OAAO,YAC9D7kB,KAAK6kB,OAAO,WAAW,QAGvB7kB,KAAK4+W,gBAAkB5+W,KAAK4+W,eAAet+W,OAAS,GAChDN,KAAK4+W,eAAe,GAAG9kV,GAAG0hV,IAC1Bx7W,KAAKm7W,aAAaK,GAG1Bx7W,KAAKy7W,aAAarhJ,kCAG1B,SAAawlJ,GAAa,WAClBjB,GAAgB71W,EAAAA,EAAAA,GAAO,GAAI9I,KAAK4+W,iBACpCnkW,EAAAA,EAAAA,IAAKkkW,GAAe,SAAC99W,EAAO26W,IACpBoE,EAAY9lV,GAAG0hV,KAAaz8V,EAAAA,EAAAA,IAAS6gW,EAAY,GAAIpE,EAAS,OAC9DA,EAAS/vW,SAASosB,YAAYshV,GAC9B,EAAK+F,iBAAiB1D,uCAIlC,SAAiBA,GACb,IAAI36W,EAAQb,KAAK4+W,eAAez4W,QAAQq1W,GACpCl3I,EAAYtkO,KAAK6kB,OAAO,aAAe7kB,KAAK6kB,OAAO,aAAaqlD,KAAO,KACvErpE,GAAS,GACTb,KAAK4+W,eAAervW,OAAO1O,EAAO,GAEtCb,KAAK6/W,aAAarE,GAClBl3I,GAAatkO,KAAKs/W,SAAS9D,EAAUl3I,GACrCk3I,EAASngW,IAAI,aAAc,sCAE/B,SAAaksB,GACT04L,EAAAA,QAAAA,KAAQ14L,GAAY,wCAExB,WAAwB,WAChBo3U,GAAgB71W,EAAAA,EAAAA,GAAO,GAAI9I,KAAK4+W,gBACf5+W,KAAK8rB,SAAS6N,WAAWtd,KAAK,IAAIuf,OAAOu9U,IAC/CthV,YAAYshV,IAC3B1+V,EAAAA,EAAAA,IAAKkkW,GAAe,SAACjkW,EAAG8gW,GACpB,EAAKL,aAAaK,wCAG1B,SAAmB3yW,GACXA,GACA7I,KAAKk/V,mDAGb,SAAe14U,GACX,GAAIgzV,EAAQ19O,SAASt1G,EAAKhZ,MACtBxN,KAAK+9U,oBAGT,OAAQv3T,EAAKhZ,MACT,IAAK,UACDxN,KAAK47W,kBAAkBp1V,EAAK5kB,OAC5B,MACJ,IAAK,YACL,IAAK,WACL,IAAK,mBACD5B,KAAK0rP,cACL,MACJ,IAAK,SACDllO,EAAKgyF,eAAiBx4G,KAAK07W,6BAA6Bl1V,EAAKgyF,eAC7Dx4G,KAAK0rP,cACL,MACJ,IAAK,sBACL,IAAK,qBACD,MACJ,SACI,6DAAqBllO,qCAGjC,SAAkBs5V,GACd,OAAOA,EAAU9/W,KAAKy8W,QAAUz8W,KAAK+/W,yCAEzC,iCACA,SAAMvlW,GACF,IAAIgM,EAAO,CACPw5V,QAASxlW,GAEThK,GAAW,IAAIgiN,EAAAA,IAAU9mL,SAASl7B,UAEtC,GADAxQ,KAAK64D,SAAS/nC,UAAUtK,GACpBA,EAAKuf,OACL,OAAOv1B,EAEX,IAEQyvW,EAFJ95V,EAAWnmB,KAAKkgX,qBAAqB1lW,GACrC2L,IAEKnmB,KAAK8rB,WACN9rB,KAAKmgX,4BACLngX,KAAK8rB,SAAS6N,WAAWla,SAASzf,KAAKogX,gBACvCpgX,KAAKqgX,oBACLrgX,KAAKsgX,qBACLtgX,KAAKo/V,oBACLp/V,KAAKygW,aAAazgW,KAAKo7W,aAAamF,iBAExCvgX,KAAK2mP,8BAA8B,WAAW,GAC9C3mP,KAAK8rB,SAASjH,OAAO,WAAYsB,GACjC3V,EAAUxQ,KAAK8rB,SAAS01B,OACxBhnC,GAASA,EAAMpT,kBACfpH,KAAKwgX,sBACA,OAAShmW,QAAS,IAAWA,GAAiB,QAAUylW,EAAuBzlW,EAAM49F,qBAAkB,IAAW6nQ,OAA7E,EAA6GA,EAAqBt8V,QAAUq5Q,EAAAA,EAAAA,MAClLh9R,KAAKygX,gDAGb,OAAOjwW,oCAEX,WACIxQ,KAAK0gX,kBAAoB,MAAM9kV,OAAO,IAAIu1N,EAAAA,GAC1CnxP,KAAK4gV,QAAQ,OAAQ5gV,KAAK0gX,mBAC1B1gX,KAAK4gV,QAAQ,CACT32U,GAAIjK,KAAK0gX,kBACTluO,KAAM,QACPxyI,KAAK8rB,SAAS6N,gDAErB,WACI35B,KAAK8rB,UAAY9rB,KAAK4gV,QAAQ,KAAM,KAAM5gV,KAAK8rB,SAAS6N,YACxD35B,KAAK4gV,QAAQ,YAAQ,6BAEzB,WACI,OAAO5gV,KAAK6kB,OAAO,WAAa7kB,KAAK6kB,OAAO,YAAY46C,KAAM/xD,EAAAA,EAAAA,GAAEksN,EAAAA,EAAAA,sDAEpE,WACI,OAAO9wN,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6kB,OAAO,YAAa,CACvC46C,GAAIz/D,KAAK27W,mDAGjB,SAAqBqE,GACjB,IAAI75V,EAAWnmB,KAAK2gX,0BAChBC,EAAoB5gX,KAAKijP,sBAAsB,YAC/C49H,EAAoB7gX,KAAKw7N,sBAAsB,iBAC/CwkJ,GAAWA,EAAQ34W,gBAAkBu5W,IACrCz6V,EAASs5C,GAAKugT,GAElB,IAAIvd,EAAa,CACbt8U,SAAUA,EACV3L,MAAOwlW,GASX,OAPAa,EAAkBpe,GACdA,EAAW18T,OACX5f,EAAW,KACJs8U,EAAWjoV,QAClBioV,EAAWjoV,MAAMurB,QAAS,EAC1Bi6U,EAAQ34W,kBAEL8e,0BAEX,WACI,IAAKm2M,EAAAA,EAAAA,MAEE,GAAIt8N,KAAK8rB,SAAU,CACtB,IAAIg1V,EAAe9gX,KAAK8rB,SAASjH,OAAO,aACxC,wDACA7kB,KAAK8rB,UAAY9rB,KAAK8rB,SAASjH,OAAO,WAAYi8V,QAElD,6DANA,6EASR,WACI,IAAItwW,EAOJ,OANIxQ,KAAK8rB,WACLtb,EAAUxQ,KAAK8rB,SAASo+C,OACxBlqE,KAAK2mP,8BAA8B,WAAW,IAElD3mP,KAAK+gX,uBACL/gX,KAAK6kB,OAAO,iBAAkB,MACvBrU,IAAY,IAAIgiN,EAAAA,IAAU9mL,SAASl7B,gCAE9C,SAAOsvW,GACH,IAAIj3W,EAAU7I,KAAK6kB,OAAO,WAE1B,OADAi7V,OAAU,IAAWA,GAAWj3W,EAAUi3W,EACnC9/W,KAAK47W,kBAAkBkE,uBAElC,WACI,OAAO9/W,KAAKo1P,QAAO,uBAEvB,WACI,OAAOp1P,KAAKo1P,QAAO,SAjtBrB8nC,CAAoB8jF,EAAAA,IAotB1B1gW,EAAAA,EAAAA,SAAkB,gBAAiB48Q,GACnC,IC1xBA,ED0xBA,iOEtxBM+jF,EAAAA,SAAAA,yIACF,WACI,OAAO/6W,EAAAA,EAAAA,IAAIlG,KAAKuqW,kBAAkB1lV,OAAO,UAAW,SAASq8V,EAAahhX,GACtE,OAAOA,EAAKwL,MAAQ,CAACxL,GAAM07B,QAAO11B,EAAAA,EAAAA,IAAIhG,EAAKwL,MAAOw1W,IAAiBhhX,mCAG3E,SAAeA,GAAM,WACjB,OAAOob,KAAKC,UAAUrb,GAAM,SAAC8G,EAAKpF,GAC9B,MAAI,aAAeoF,EACR,EAAKm6W,mBAAmBv/W,GAE5BA,uCAGf,SAAmB+nB,GAOf,MALI,kBAAoBA,GACXjc,EAAAA,EAAAA,GAAEic,GAAUhnB,OAEZgnB,EAASlb,iBAnBxBwyW,UAA6Brb,GAwBnC,0BCFI7M,EAAamgB,eAEbkI,EAA8BroB,EAAa,YAC3CsgB,EAA6BtgB,EAAa,WAQ1CsoB,EAA4BtoB,EAAa,UAEzCuoB,EAA6BvoB,EAAa,QAE1CwoB,EAAgB,CAChB//T,KAAM,GACN0oB,KAAM,KAENs3S,EAAiC,GAAG5lV,OAAO0lV,EAA4B,aAEvEG,EAAoB,cAClBT,EAAAA,SAAAA,6IACF,WACI,OAAOl4W,EAAAA,EAAAA,IAAO,kEAA4B,CACtC4C,MAAO,GACPi7H,SAAU,GACV0mM,oBAAoB,EACpBq0C,gBAAiB,CACbl0W,KAAM,UACNswH,MAAO,CACHt8E,KAAM,GACN0oB,KAAM,MAGdo6J,UAAW,CACP9iL,KAAM,CACF79B,KAAM,OACNxa,KAAM,EACN63D,GAAI,EACJw+J,SAAU,KAEdt1J,KAAM,CACFvmD,KAAM,OACNxa,KAAM,EACN63D,GAAI,EACJw+J,SAAU,MAGlBgkI,eAAe,EACfnJ,qBAAqB,EACrB/iF,QAAS,KACT6iF,gBAAiB,CACb3nN,KAAM,YAEVspM,cAAc,gCAGtB,WACI,MAAO,8CAEX,WACI,OAAOid,4CAEX,8CACA,WACI,OAAOqoB,8BAEX,WACI,MAtEiB,2CAwErB,WACI,OAAOphX,KAAK24U,uCAEhB,WACI34U,KAAK6kB,OAAO,iBAAkB,OAC9B,oFAEJ,WAAiB,WACb,OAAO/b,EAAAA,EAAAA,IAAO,8DAAwB,CAClC6wV,MAAO,WACH,IAAI3hB,GAAQtqU,EAAAA,EAAAA,GAAE,EAAKmX,OAAO,mBACrBmzT,EAAM13U,QAAW,EAAKg6W,uBAG3B,EAAK5d,WAAW1kB,EAAM,KAE1BkT,OAAQl5H,EAAAA,KACRm5H,SAAUn5H,EAAAA,0CAGlB,WACI,MA9EoB,WA8EbhyN,KAAK6kB,OAAO,sCAEvB,WACI7kB,KAAK6pV,iBAAmB,IAAIjuT,OAAOm9T,IACnC,qDACA/4V,KAAK2hX,sBACL3hX,KAAK+9U,gDAET,SAAkB6jC,EAAeC,EAAe76H,GAC5C,IACc86H,EAEV96H,EAFA86H,SACKljU,EACLooM,EADApoM,IAEJ,OAASgjU,QAAiB,IAAWA,GAAyBA,EAAcniW,SArFvD,oBAsFrB,OAASoiW,QAAiB,IAAWA,GAAyBA,EAAcpiW,SAAS+hW,GACrF,IAAIO,GAAiB53J,EAAAA,EAAAA,IAAS23J,GAAYA,EAAW,GACrD,OAAOp0W,EAAAA,EAAAA,GAAE,OAAO+R,SAASgiW,GAAmB7hW,MAAKq4M,EAAAA,EAAAA,GAAS,GAAI8pJ,EAAgB,CAC1EhiT,KAAMnhB,KACN7+B,OAAO6hW,GAAe7hW,OAAO8hW,8BAErC,SAAYt6U,EAAYsjC,GACpB,IACUrjB,EAENqjB,EAFArjB,KACK5I,EACLisB,EADAjsB,IAEAgjU,EAAgB5hX,KAAKgiX,kBAAkBn3S,GACvCg3S,EAAgB7hX,KAAKiiX,kBAAkBp3S,GAE3C,GADAtjC,EAAWigB,KAAKA,GACZ5I,EAAK,CACL,IAAIqhB,EAAOjgE,KAAKkiX,kBAAkBN,EAAeC,EAAeh3S,GAChEtjC,EAAWxnB,OAAOkgD,QAElB14B,EAAWxnB,OAAO6hW,GAAe7hW,OAAO8hW,GAE5Ct6U,EAAWxnB,OAAO/f,KAAKmiX,oBAAoBt3S,IAC3C7qE,KAAKoiX,mBAAmBv3S,EAAUtjC,EAAW97B,2CAEjD,SAAkBo/D,GACd,IACUloE,EACNkoE,EADAloE,KAEAu9V,GAAiBxyV,EAAAA,EAAAA,GAAE,UAAU+R,SAAS6hW,GACtCe,GAAWtnS,EAAAA,EAAAA,IAAclQ,GAAYloE,EAAOkjE,OAAOgF,GACvD,OAAOloE,GAAQu9V,EAAev9V,KAAK0/W,yCAEvC,WACI,MAAO,CAAC,MAAO,+CAEnB,SAAoBx3S,GAChB,IACIy3S,EADA52W,EAAQm/D,EAASn/D,MAErB,GAAIA,GAASA,EAAMpL,OAAQ,CACvB,IAAIiiX,GAAe70W,EAAAA,EAAAA,GAAE,SAAS+R,SAAS4hW,GACvCiB,GAAmB50W,EAAAA,EAAAA,GAAE,UAAU+R,SArID4hW,iCAqI+CthW,OAAOwiW,GAExF,OAAOD,wCAEX,WACI,MAAO,CACHE,UAAW,EACXC,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpB3sP,YAAa,iCAGrB,SAAc5oH,GACV,GAAKA,EAAL,CAGA,IAAIw1W,EAAe5iX,KAAKo7W,aAAaC,cAAcjuW,GACnDpN,KAAKo7W,aAAayH,gBAAgBD,EAAa9F,eAAe91W,KAAK,uCAEvE,WACI,IAAI87W,EAAe9iX,KAAKo7W,aAAa2H,uBACjCC,EAAcF,EAAaxiX,QAAUwiX,EAAa,GAClD11W,EAAepN,KAAK6kB,OAAO,gBAC/B,GAAKm+V,EAAL,CAIA,IAAI/sS,EAAOj2E,KAAKo7W,aAAa6H,aAAaD,IACtC,IAAU/sS,EAAK7vC,aAGdh5B,EAIDA,IAAiB6oE,EAAK6mS,eAAe58W,OACrCF,KAAKo7W,aAAayH,gBAAgBG,GAAa,GAC/ChjX,KAAKkjX,cAAc91W,IALnBpN,KAAK6kB,OAAO,eAAgBoxD,EAAK6mS,eAAe58W,YARhDF,KAAKkjX,cAAc91W,+BAgB3B,uCACA,YACI,2DACApN,KAAK6kB,OAAO,iBAAmB7kB,KAAKmjX,mDAExC,WACInjX,KAAK4+V,YAAar/U,EAAAA,EAAAA,wCAEtB,SAAmB1F,EAAUjY,EAAOpB,GAEhC,IADA,uDAAyBwlB,MAAMhmB,KAAM+H,WAChC/H,KAAK4+V,WAAV,CAGA,IAAItvR,EAAS,CACTxvE,QAAS+Z,EACTW,MAAOha,GAEPoB,EACA5B,KAAK4+V,WAAWpjB,SAASlsQ,GAEzBtvE,KAAK4+V,WAAWrjB,SAASjsQ,uCAGjC,WACI,IAAIoyO,EAAc1hT,KAAK6kB,OAAO,mBAE9B,OADA68R,GAAcv3F,EAAAA,EAAAA,IAASu3F,GAAeA,EAAYl0S,KAAOk0S,EAClD1hT,KAAKojX,mBAAqB1hE,EAAc,4CAEnD,4CACA,WACI,MAAO,YAAcv5E,EAAAA,QAAAA,OAAeC,4CAExC,WACI,IAAIu9H,EAAWsb,EACfjhX,KAAKmkW,cAAgB,IAAIwB,EAAS3lW,wCAEtC,SAAmB6Z,GACfA,EAAS4F,SAASzf,KAAK6kB,OAAO,iDAElC,WACI,MAAO,IAAI+W,OAAOy9U,qCAEtB,SAAmB74W,GACf,IAAI45N,EAAep6N,KAAKqjX,2BAA2B7iX,GAC9C45N,IAAgBp6N,KAAKsjX,gBAAgBlpJ,KAG1C55N,EAAE4G,kBACE,YAAcpH,KAAKo+W,wBACnBlgV,aAAal+B,KAAKujX,sBAClBvjX,KAAKujX,qBAAuB1gX,WAAW7C,KAAKy7W,aAAahxW,KAAKzK,KAAMo6N,GAAep6N,KAAKwjX,iBAAiB,6CAGjH,SAAmBpnB,GACf,OAAO,iEAAyBA,GAAex2V,QAAQ,WACnD,MAAO,YAAa8H,EAAAA,EAAAA,GAAE1N,MAAMqb,IAAI,gDAGxC,SAAgB28T,GACZ,OAAOh4U,KAAKyjX,gBAAgBzrC,EAAMnqU,KAAK7N,KAAKo9V,6CAEhD,SAAahjI,GACTp6N,KAAK0jX,kBAAkBtpJ,oCAE3B,SAAkBtvJ,IACdp9D,EAAAA,EAAAA,GAAEo9D,GAAarrD,SAtPWs5U,yDAwP9B,SAAiBt4U,GACb,IACWq9G,EACP99H,KAAK6kB,OAAO,mBADZi5G,MAEJ,OAAKn1E,EAAAA,EAAAA,IAAUm1E,IAGRqsF,EAAAA,EAAAA,IAASrsF,GAASA,EAAMr9G,GAAUq9G,EAF9ByjP,EAAc9gW,6CAI7B,SAA2Bg5M,GACvB,IAAItpL,GAAUziC,EAAAA,EAAAA,GAAE+rN,EAAU7yN,QAC1B,GAAIupC,EAAQ4/K,SAAS/vN,KAAK8+V,eAAiB3uT,EAAQtwB,IAAI,KAAO45M,EAAU/qN,cACpE,OAAOyhC,EAEX,MAAQA,EAAQ4/K,SAAS/vN,KAAK8+V,eAE1B,IADA3uT,EAAUA,EAAQ1kC,UACNskN,SAAS,cACjB,OAAO,KAGf,OAAO5/K,kCAEX,WACIjS,aAAal+B,KAAKujX,iDAEtB,SAAYttS,GACR,OAAOA,GAAQA,EAAK6mS,eAAe6G,aAAarjX,yCAEpD,WACIN,KAAKygW,aAAazgW,KAAKo7W,aAAamF,4CAExC,SAAa/yH,EAAOkvH,GAAkB,WAClC,GAAIlvH,EAAMltP,OAAQ,CACdN,KAAK4jX,UAAW,EAChB,IAAIC,EAAiB7jX,KAAK8jX,iBAAiB9jX,KAAK6Z,WAAY6iW,GACxDqH,GAAqB,EACrBC,GAAuB,GAC3BvpW,EAAAA,EAAAA,IAAK+yO,GAAO,SAAC3sP,EAAOo1E,GAChB,IAAIguS,GAAgB,IAAUhuS,EAAKptE,QAC/Bo7W,GAAiBF,EAAoB,IACrCA,EAAoBljX,GAELkjX,EAAoBljX,IAAUo1E,EAAKiuS,YAAcrjX,IAAUmjX,KAE1EA,EAAsBC,EAAgBpjX,EAAQA,EAAQ,GAEtDA,IAAUmjX,GAAuBD,EAAoBljX,GACrD,EAAKsjX,iBAAiBN,GAE1B,EAAKpmB,YAAY58V,EAAOo1E,EAAM4tS,MAE7B7jX,KAAK4jX,UACNC,EAAepkW,SAnTFy5V,qDAuTzB,SAAiB/jJ,GACb,IAAI5tL,GAAa75B,EAAAA,EAAAA,GAAE,QAEnB,OADA1N,KAAK4gV,QAAQ,OAAQ,OAAQr5S,GACtBA,EAAWtP,SAASk9L,GAAU11M,SApTTy5V,4DAsThC,SAAkB2K,GACd,IAAIjiB,GAAQl0V,EAAAA,EAAAA,GAAE,QAEd,OADA1N,KAAK4gV,QAAQ,OAAQ,OAAQghB,GACtBA,EAAM3pU,SAAS4rV,GAAgBpkW,SAAS45V,8BAEnD,SAAYx4W,EAAOo1E,EAAM4tS,EAAgBO,GACrC,IAAI14W,EAAQ1L,KAAK6kB,OAAO,SACpB+8U,EAAQwiB,GAAgBpkX,KAAKqkX,kBAAkBR,GAC/Cn4W,EAAM7K,EAAQ,IAAM6K,EAAM7K,EAAQ,GAAGqjX,YACrCtiB,EAAMniV,SA5TiBy5V,2BA8T3B,IAAItY,GAAa,0DAAkB//V,EAAOo1E,EAAK6mS,eAAe58W,KAAM0hW,GAChE3rR,EAAK6mS,eAAe58W,OAASF,KAAK6kB,OAAO,iBACzC+7U,EAAWnhV,SAAS2hW,GAExBxgB,EAAWhhV,KAAK,YAAa,GACzB5f,KAAKu7W,YAAYtlS,IACjBj2E,KAAK4gV,QAAQ,WAAY,OAAQggB,mCAGzC,SAAiB//V,EAAOgqE,EAAUq1R,GAC9B,IAAIU,EAAaV,EAAen1V,SAAS,IAAI6wB,OAAOm9T,IACpD,OAAO6H,EAAWtgW,OAASsgW,GAAa,qDAAuB56U,MAAMhmB,KAAM+H,uCAE/E,SAAaiwU,EAAO93U,GAChB,IAAI+1E,EAAOj2E,KAAKo7W,aAAaC,cAAcn7W,GACvCW,EAAQm3U,EAAMnqU,KAAK7N,KAAKw9V,iBACxBqmB,EAAiB7rC,EAAMjuU,QAAQ,MAC/Bq6W,EAAepsC,EAAMjuU,QAAQ,MACjC/J,KAAKy9V,YAAY58V,EAAOo1E,EAAM4tS,EAAgBO,qCAElD,SAAmBv5S,EAAU+1R,GACzB,IAAI0jB,IAAUz5S,EAASloE,QAASkoE,EAASloE,KAAKrC,OAC1CikX,IAAY15S,EAASlrD,KACrB6kW,IAAa35S,EAASn/D,SAAUm/D,EAASn/D,MAAMpL,OACnDsgW,EAAWpqI,YArVIuiI,wBAqV0BurB,GACzC1jB,EAAWpqI,YArVIuiI,wBAqV0BwrB,GACpCvkX,KAAK4jX,WACN5jX,KAAK4jX,SAAWW,GAEpB3jB,EAAWpqI,YAxVOuiI,2BAwV0ByrB,kCAEhD,SAAgB5jB,GACZ,IAAII,GAAe,8DAAsBJ,GAIzC,OAHKI,EAAa1gW,SACd0gW,EAAeJ,EAAW71V,SAAS,IAAI6wB,OAtWvBm9T,0BAwWbiI,wCAEX,SAAuBx6U,GACnB,IAAI4zM,GAAe1sN,EAAAA,EAAAA,GAAE8Y,EAAKskD,aACtBr8C,EAAgBzuB,KAAKo7W,aAAa2H,uBACjCt0V,EAAcnuB,QAAWN,KAAKykX,gBAAgBj+V,EAAKqkD,WAAc7qE,KAAK0kX,kBAAkBl+V,EAAKqkD,UAIvF7qE,KAAKo7W,aAAaC,cAAc70V,EAAKqkD,UACvCiyS,eAAe91W,MAAQynB,EAAc,IAC1C2rM,EAAa36M,SAASzf,KAAKg/V,sBAC3Bh/V,KAAKynW,2BAA2BrtI,EAAc,SAE9Cp6N,KAAKynW,2BAA2BrtI,EAAc,SAR9Cp6N,KAAKynW,2BAA2BrtI,EAAc,0CAWtD,SAAkBl6N,GACd,OAAO,IAAUA,EAAKkmC,2CAE1B,SAAiBw2U,IACblvW,EAAAA,EAAAA,GAAE,QAAQuqB,SAAS2kV,GAAiBn9V,SAxXdy5V,sDA0X1B,SAAkB14W,GACd,IAAIA,EAAEmkX,cAAN,CAGA,IAAIC,EAAyB5kX,KAAK6lP,cAAc7lP,KAAK6kX,gCAAgCp6W,KAAKzK,OAC1FA,KAAK2/V,oBAAoBn/V,EAAG,cAAe,GAAI,CAC3Cw2O,cAAeh3O,KAAK8kX,WACpB5tI,aAAc0tI,EAAuBn6W,KAAKzK,QAE9CQ,EAAEmkX,eAAgB,6BAEtB,SAAWliB,GACP,IAAIj8U,EAAOi8U,EAAWj8U,KAAK,GACvBy5C,EAAOz5C,EAAKhM,MAAM5T,OAAOkkD,uBAAuB22T,GAAmB,GACnEj7V,EAAKqkD,SAASjsB,KAAOqhB,GACrBA,EAAK5uC,uDAGb,SAAgCoxU,GAC5BziW,KAAKu/W,2BAA2B9c,GAC5B,YAAcziW,KAAKo+W,uBACnBp+W,KAAK0jX,kBAAkBjhB,EAAWj8U,KAAK,GAAGskD,uDAGlD,SAA2B23R,GACvB,IAAIj8U,EAAOi8U,EAAWj8U,KAAOi8U,EAAWj8U,KAAK,GAAKi8U,EAClD,GAAKziW,KAAK+kX,qBAAqBv+V,EAAKqkD,UAApC,CAGA,IAAIm6S,EAAkBhlX,KAAKo7W,aAAa2H,uBACpCkC,EAAeD,EAAgB1kX,QAAUN,KAAKo7W,aAAa6H,aAAa+B,EAAgB,IACxFC,GACAjlX,KAAKklX,qBAAqBD,GAAc,GAEvCA,GAAgBA,EAAanI,eAAe58W,OAASsmB,EAAKqkD,UAG3D7qE,KAAKioW,0BAA0B,KAAMjoW,KAAK6kB,OAAO,iBACjD7kB,KAAK2mP,8BAA8B,eAAgB,OAHnD3mP,KAAK08V,WAAWl2U,EAAKqkD,+CAM7B,SAAqB3qE,GACjB,IAAIilX,EAAyBnlX,KAAKs6W,uBAAyBt6W,KAAK6kB,OAAO,iBACvE,OAAQ7kB,KAAKolX,qBAAuBD,GAA0BnlX,KAAK0kX,kBAAkBxkX,KAAUF,KAAKqlX,aAAanlX,oCAErH,WACI,OAAOF,KAAK24U,iBAAiB7+S,GAAG,+CAEpC,WACI,OAAO2nO,EAAAA,EAAAA,2CAEX,SAAej7O,GACX,OAAQA,EAAKhZ,MACT,IAAK,kBACD,MACJ,IAAK,eACD,IAAIyoE,EAAOj2E,KAAKo7W,aAAaC,cAAc70V,EAAK5kB,OAC5CohX,EAAchjX,KAAKo7W,aAAa2H,uBAAuB,GAC3D,GAAI9sS,GAAQA,EAAK6mS,eAAe91W,MAAQg8W,EAAa,CACjD,IAAI,IAAU/sS,EAAK7vC,WACf,MAEA48U,GACAhjX,KAAKklX,qBAAqBllX,KAAKo7W,aAAa6H,aAAaD,IAAc,GAE3EhjX,KAAKklX,qBAAqBjvS,GAAM,GAChCj2E,KAAKolW,uBAET,MACJ,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,eACDplW,KAAK0rP,cACL,MACJ,SACI,6DAAqBllO,wCAGjC,SAAqByvD,EAAMr0E,GACvB,IAAIkpE,EAAc9qE,KAAKslX,kBAAkBrvS,EAAK6mS,eAAe58W,MAC7D4qE,IAAep9D,EAAAA,EAAAA,GAAEo9D,GAAa0rJ,YAAY4qJ,GAC1CphX,KAAKo7W,aAAayH,gBAAgB5sS,EAAK6mS,eAAe91W,IAAKpF,oCAE/D,SAAkBipE,GAAU,IACpBh8D,EADoB,OASxB,OAPA4L,EAAAA,EAAAA,IAAKza,KAAK85U,iBAAiB,SAACp/T,EAAGowD,GAC3B,OAAIp9D,EAAAA,EAAAA,GAAEo9D,GAAaj9D,KAAK,EAAKuvV,kBAAoBvyR,IAGjDh8D,EAASi8D,GACF,MAEJj8D,sCAEX,SAAqB02W,EAAc7yT,IAC3B6yT,GAAgB7yT,IAChB1yD,KAAKioW,0BAA0Bv1S,EAAc6yT,4CAGrD,SAA0B1d,EAAgBC,GACtC9nW,KAAKw7N,sBAAsB,qBAAsB,CAC7C6b,kBAAmB,CAAC,WAAY,aADpCr3O,CAEG,CACCy3C,WAAY,CAACowT,GACbrmR,aAAc,CAACsmR,+BAGvB,SAAWh9R,GACP,IAAID,EAAWC,EAAYkQ,SAAWh7E,KAAK45V,aAAa9uR,GAAeA,EACnEk4S,EAAchjX,KAAKo7W,aAAa2H,uBAAuB,GACvD31W,EAAepN,KAAK6kB,OAAO,gBAC3BoxD,EAAOj2E,KAAKo7W,aAAaC,cAAcxwS,GACvCoL,EAAK6mS,eAAe91W,MAAQg8W,IACxBA,GACAhjX,KAAKklX,qBAAqBllX,KAAKo7W,aAAa6H,aAAaD,IAAc,GAE3EhjX,KAAKklX,qBAAqBjvS,GAAM,GAChCj2E,KAAKolW,qBAAqBh4V,EAAcy9D,GACxC7qE,KAAK2mP,8BAA8B,eAAgB97K,gCAG3D,SAAaC,GACT,IAAID,EAAWC,EAAYkQ,SAAWh7E,KAAK45V,aAAa9uR,GAAeA,EACnEmL,EAAOj2E,KAAKo7W,aAAaC,cAAcxwS,GACvCz9D,EAAepN,KAAK6kB,OAAO,gBAC3BoxD,EAAK6mS,eAAe7vV,WACpBjtB,KAAKklX,qBAAqBjvS,GAAM,GAChCj2E,KAAKolW,qBAAqBh4V,EAAc,MACxCpN,KAAK2mP,8BAA8B,eAAgB,aA5ezDq6H,CAAiBwE,EAAAA,GAgfvBxE,EAAS5mC,UAAYqrC,EAAAA,EACrB,8LCthBIC,EAAc,SAAAxhV,GAAI,OAAIA,EAAKy6C,WAAa,GACxCgnS,EAAc,SAACzhV,EAAMtiC,GACrB,IAAI8iQ,EAAMxgO,EAAK06C,UACXgnS,EAAcC,EAAU,IAAK3hV,GAC7B3d,GAAW2sP,EAAAA,EAAAA,IAAaj9N,SAASr0C,GAAQgkX,EAAY9/V,IAAK8/V,EAAYhgW,KAC1Ese,EAAKgiO,SAAS3/O,EAAW,EAAG,GAC5B,MAGIs/V,EAAU,KAAM3hV,GAFXpe,EADT,EACIA,IACKF,EAFT,EAEIA,IAEAkgW,GAAS5yG,EAAAA,EAAAA,IAAaxO,EAAK5+O,EAAKF,GACpCse,EAAKiiO,QAAQ2/G,IAEbC,EAAkB,CAClBtgU,EAAG,SAAAvhB,GAAI,OAAIA,EAAK66C,WAAa,GAAK,EAAI,GACtC42O,EAAG,SACHh4S,EAAG,cACH83S,EAAGiwD,EACHt2N,EAAGs2N,EACH5oQ,EAAG,UACHk4H,EAAG,WACHxrF,EAAG,WACH/xF,EAAG,aACH5qC,EAAG,aACHooN,EAAG,mBAEHiiF,GAAkBpuT,EAAAA,EAAAA,GAAO,IAAIovT,EAAAA,EAAAA,MAAqB,CAClDzyQ,EAAG,SAACvhB,EAAMtiC,GACN,IAAIqlQ,EAAQ/iO,EAAK66C,WACHkoL,GAAS,OACLhxN,SAASr0C,IAG3BsiC,EAAK2tE,UAAUo1J,EAAQ,IAAM,KAEjCnqJ,EAAG,SAAC54E,EAAMtiC,GAEFA,EADiBikX,EAAU,KAAM3hV,GAAMte,KAEvCse,EAAKgiO,SAAShiO,EAAKy6C,WAAa,GAEpCz6C,EAAKiiO,QAAQvkQ,IAEjB4nJ,EAAG,SAACtlH,EAAMtiC,GACN,IAAIokX,EAAO9hV,EAAK66C,YAAc,GAC9B76C,EAAK2tE,UAAUjwG,EAAQ,IAAMokX,EAAO,GAAK,KAE7CvwD,EAAGkwD,EACHv2N,EAAGu2N,EACHhwD,EAAG,SAACzxR,EAAMtiC,GACFA,EAAQ,GAGZsiC,EAAKiiO,QAAQjiO,EAAK06C,UAAY16C,EAAK+jO,SAAWhyN,SAASr0C,KAE3D+b,EAAG,SAACumB,EAAMtiC,GACN,IAAIqkX,EAAc/hV,EAAK26C,cACnBi0F,EAAcjtG,OAAOjkE,GAAOtB,OAC5B4lX,EAAiBrgT,OAAOggT,EAAU,IAAK3hV,GAAMte,KAAKtlB,OAClDimB,EAAW0vB,SAAS4vB,OAAOogT,GAAat1W,OAAO,EAAGu1W,EAAiBpzM,GAAelxK,GACtFsiC,EAAK0iO,YAAYrgP,MAId4/V,EAAkB,SAACxjX,EAAMy1T,GA6BhC,IA5BA,IAAIvpT,EAASupT,EAAWP,OAAOtpT,KAAK5L,GAChCkZ,EAAQ,EACRuX,EAAM,EACNgzV,EAAW,GACXC,EAAQ,WAERjzV,GADAvX,EAAQuX,GACMvkB,EAAO9C,GAAGzL,OACxB,IATew4T,EASX9jN,EAAUojN,EAAWvlN,SAAS9mG,EAAI,GAAG28C,QAAQ,SAAU,IACvD+6M,GAVWq1D,EAUe9jN,EAAQ,GAVR+wQ,EAAgBjtD,IAAiB,kBAAMA,IAWrEstD,EAASxlX,KAAK,CACVC,MAAOkL,EAAI,EACXu6W,OAAQtxQ,IAAYnmG,EAAO9C,GAC3Bw6W,MAAO,CACH1qW,MAAOA,EACPuX,IAAKA,GAET4hF,QAASA,EACTryG,KAAMkM,EAAO9C,GACbkwK,OAAQ,WACJ,IAAK,IAAI87D,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAE3B,OAAO6tI,EAAS,WAAT,GAAU7wQ,EAAQ,IAAlB,OAAyBxuF,KAEpCggW,OAAQtvD,EAAgBliN,EAAQ,KAAOg9G,EAAAA,KACvCyxC,OAAQA,KAGP13P,EAAI,EAAGA,EAAI8C,EAAOvO,OAAQyL,IAC/Bs6W,IAEJ,OAAOD,GAEPP,EAAY,SAAC7wQ,EAAS9wE,EAAMuiV,GAC5B,IAAIxqM,EAAS,CACTt+J,EAAG,CACCmI,IAAK,EACLF,IAAK,MAET6vS,EAAG,CACC3vS,IAAK,EACLF,IAAK,IAETwpI,EAAG,CACCtpI,IAAK,EACLF,IAAK,IAETk3F,EAAG,CACCh3F,IAAK,EACLF,IAAK,IAET8gW,GAAI,CACA5gW,IAAK,EACLF,IAAK,IAAI0oD,KAAKpqC,EAAK26C,cAAe36C,EAAKy6C,WAAa,EAAG,GAAGC,WAE9D+2O,EAAG,CACC7vS,IAAK,EACLF,IAAK,GAETovN,EAAG,CACClvN,IAAK,EACLF,IAAK,IAET4jI,EAAG,CACC1jI,IAAK,EACLF,IAAK,IAET6xC,EAAG,CACC3xC,IAAK,EACLF,IAAK,IAETiH,EAAG,CACC/G,IAAK,EACLF,IAAK,IAETqvN,EAAG,CACCnvN,IAAK,EACLF,IAAK,KAET6/B,EAAG,CACC3/B,IAAK,EACLF,IAAK,IAGb,OAAOq2J,EAAOwqM,GAAiBzxQ,IAAYinE,EAAO0qM,uHCvJlDC,EAAkB,CAAC,OAAQ,MAAO,QAAS,OAC3CC,EAAkB,CAAC,QAAS,UAAW,UAAW,gBAElDC,EAAU,MAYVl+G,EAAY,CACZm+G,kBAAmB,CAAC,OAAQ,OAAQ,YACpCC,WAfa,IAgBbF,QAASA,EACTG,SAfW,QAgBXC,0BAA2B,IAAI54S,KAAK,KAAM,EAAG,GAC7C64S,0BAA2B,WACvB,IAAI3+G,EAAU,IAAIl6L,KAClB,OAAO,IAAIA,KAAKk6L,EAAQ3pL,cAAgB,GAAI2pL,EAAQ7pL,WAAY6pL,EAAQ5pL,UAAW,GAAI,GAAI,IAFpE,GAI3BwoS,aAAc,CACVljV,KAAM,CACFmjV,mBAAoB,WAChB,MAAO,cAEX3xU,WAAYkxU,GAEhB/5S,KAAM,CACFw6S,mBAAoB,WAChB,MAAO,SAEX3xU,WAAYmxU,GAEhBS,SAAU,CACND,mBAAoB,WAChB,IAAIE,EAcJ,OAbE,WACE,IAAIxvQ,GAASrqG,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,YACvCm4F,EAAOh0F,IAAI,qBACPg0F,EAAOh0F,QACPwjW,EAAkB,qBAJxB,GAOGA,IACDA,EAAkB,wBAEtB3+G,EAAUw+G,aAAaE,SAASD,mBAAqB,WACjD,OAAOE,GAEJA,GAEX7xU,WAAY,GAAF,OAAMkxU,EAAoBC,IAExC,iBAAkB,CACdQ,mBAAoB,WAChB,MAAO,uBAEX3xU,WAAY,GAAF,OAAMkxU,EAAN,CAAuB,QAAS,UAAW,cAG7DY,YAAa,CACTtjV,KAAM,YACN2oC,KAAM,YACNy6S,SAAU,sBAEdG,mBAAoB,CAChBvjV,KAAM,OACN2oC,KAAM,OACNy6S,SAAU,kBAEdI,qBAAsB,SAASxjV,EAAMvgB,GACjC,IAAIqxF,EAAU4zJ,EAAUw+G,aAAazjW,GAAM0jW,qBAC3C,OAAO1lC,EAAAA,EAAAA,cAAgCz9S,EAAM8wE,IAEjD2yQ,uBAAwB,SAAShlX,GAC7B,IAAIuhC,EAAOy9S,EAAAA,EAAAA,WAA6Bh/U,GACxC,OAAOkoN,EAAAA,EAAAA,IAAO3mL,GAAQA,OAAO,GAEjC0jV,eAAgB,SAAS9iH,EAAMF,GAC3B,OAAO,IAAIt2L,KAAKw2L,EAAMF,EAAQ,EAAG,GAAGhmL,WAExCipS,WAAY,SAAS/xU,EAAUvvB,EAAUuS,GACrC,IAAKvS,EACD,OAAOA,GAAY,KAEvB,IAAKuvB,GAAYtM,MAAMsM,EAASmuN,WAAY,CACxC,IAAIrxJ,EAAM,IAAItkC,KAAK,MACnBx4B,EAAW,IAAIw4B,KAAKskC,EAAI/zB,cAAe+zB,EAAIj0B,WAAYi0B,EAAIh0B,WAE/D,IAAI/vE,EAAS,IAAIy/D,KAAKx4B,EAAS6qL,WAC3BmnJ,EAAal/G,EAAUw+G,aAAatuV,GAKxC,OAJAre,EAAAA,EAAAA,IAAKqtW,EAAWpyU,YAAa,WACzB,IAAI1T,EAAgB4mO,EAAUm/G,qBAAqB/nX,MACnD6O,EAAOmzB,EAAcwkV,QAAQjgW,EAASyb,EAAcyhO,cAEjD50P,GAEXm5W,uBAAwB,SAASC,GAC7B,IAEIl8W,EAFAm8W,EAAe,EACfC,EAAuB,EAE3B,IAAKp8W,EAAI,EAAGA,EAAIk8W,EAAa3nX,SAAUyL,EAC/Bk8W,EAAal8W,GAAGzL,OAAS6nX,IACzBD,EAAen8W,EACfo8W,EAAuBF,EAAal8W,GAAGzL,QAG/C,OAAO4nX,GAEX72D,oBAAqB,SAASv4R,GAC1B,OAAOg5R,EAAAA,QAAAA,oBAAqCh5R,IAEhDw4R,kBAAmB,SAASx4R,GACxB,OAAOg5R,EAAAA,QAAAA,kBAAmCh5R,IAE9CsvV,eAAgB,SAAStvV,EAAQ+9R,EAAYE,GACzC,IAAIkH,EApHU,SAASnlS,GAC3B,IAAI23R,SAAoB33R,EACxB,MAAI,WAAa23R,EACN,SAEP,WAAaA,QAAc,IAAW33R,EAAOnV,KACtCmV,EAAOnV,KAEX,KA4GgB0kW,CAAgBvvV,GAC/B8rO,EAAQ,EACPq5D,IAAgBr1D,EAAUyoD,oBAAoB4M,KAC/Cr5D,EAAQgE,EAAUo/G,uBAAuBnxD,IAE7C,IAAIyxD,EAAc,IAAIh6S,KAAK,KAAMs2L,EAAO,GAAI,GAAI,GAAI,GAAI,KACxD,IAAKq5D,GAAgBr1D,EAAU0oD,kBAAkB2M,GAAe,CAC5D,IAAI/5R,EAAOokV,EAAY1pS,UAAY0pS,EAAYrgH,SAAWW,EAAUo/G,uBAAuBjxD,GAC3FuxD,EAAYniH,QAAQjiO,GAExB,OAAOokV,GAEXC,cAAe,SAASrkV,GACpBA,EAAKosT,WAAW,GAChBpsT,EAAKqsT,gBAAgB,KAG7B3nF,EAAUm/G,qBAAuB,CAC7BjjH,KAAM,CACFrB,OAAQ,cACR+iH,OAAQ,cACRj2D,UAAW,SAAS3uT,EAAOsiC,GACvB,IAAIiqC,EAAa,IAAIG,KAAKpqC,EAAK+/N,WAE/B,OADA91L,EAAWy4L,YAAYhlQ,GAChBkwT,EAAAA,QAAAA,OAAwB3jP,EAAY,SAE/Cq6S,gBAAY,EACZC,cAAU,GAEd/jH,IAAK,CACDjB,OAAQ,UACR+iH,OAAQ,UACRj2D,UAAW,SAAS3uT,EAAOsiC,GACvB,IAAIiqC,EAAa,IAAIG,KAAKpqC,EAAK+/N,WAE/B,OADA91L,EAAWg4L,QAAQvkQ,GACZkwT,EAAAA,QAAAA,OAAwB3jP,EAAY,MAE/Cq6S,WAAY,EACZC,cAAU,GAEd7jH,MAAO,CACHnB,OAAQ,WACR+iH,OAAQ,WACRj2D,UAAW,SAAS3uT,GAChB,OAAOkwT,EAAAA,QAAAA,gBAAiClwT,IAE5C4mX,WAAY,EACZC,SAAU,IAEdxhH,MAAO,CACHxD,OAAQ,WACR+iH,OAAQ,WACRj2D,UAAW,SAAS3uT,GAChB,OAAOkwT,EAAAA,QAAAA,OAAwB,IAAIxjP,KAAK,EAAG,EAAG,EAAG1sE,GAAQ,SAE7D4mX,WAAY,EACZC,SAAU,IAEdthH,QAAS,CACL1D,OAAQ,aACR+iH,OAAQ,aACRj2D,UAAW,SAAS3uT,GAChB,OAAOkwT,EAAAA,QAAAA,OAAwB,IAAIxjP,KAAK,EAAG,EAAG,EAAG,EAAG1sE,GAAQ,WAEhE4mX,WAAY,EACZC,SAAU,IAEdrhH,QAAS,CACL3D,OAAQ,aACR+iH,OAAQ,aACRj2D,UAAW,SAAS3uT,GAChB,OAAOkwT,EAAAA,QAAAA,OAAwB,IAAIxjP,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG1sE,GAAQ,WAEnE4mX,WAAY,EACZC,SAAU,IAEdphH,aAAc,CACV5D,OAAQ,kBACR+iH,OAAQ,kBACRj2D,UAAW,SAAS3uT,GAChB,OAAOkwT,EAAAA,QAAAA,OAAwB,IAAIxjP,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG1sE,GAAQ,gBAEtE4mX,WAAY,EACZC,SAAU,MAGlB,8DCjNItvI,EAAWkJ,EAAAA,QAAAA,SACXqmI,EAAkBrmI,EAAAA,QAAAA,QAAc,CAChCz+G,KAAM,SAAS+kP,GACX3oX,KAAK2oX,QAAUA,GAEnBC,aAAc,WACV,OAAO5oX,KAAK6oX,SAAW7oX,KAAK6oX,QAAQhkW,OAAOmB,MAAMhmB,KAAK6oX,QAAS9gX,YAEnE+gX,cAAe,SAAShpX,GACpBA,EAAUA,IAAW4N,EAAAA,EAAAA,GAAE,SACvB1N,KAAK6oX,QAAU7oX,KAAK+oX,cAAcjpX,GAClCE,KAAK6oX,QAAQhvW,WAAWoe,SAASj4B,KAAKgpX,wBAE1CD,cAAe,SAASjpX,GACpB,IAAImnP,EAAajnP,KAAKipX,iBAClB9hI,EAAgBnnP,KAAKkpX,oBACzB,OAAOlpX,KAAK2oX,QAAQvhI,iBAAiBtnP,EAASmnP,EAAYE,IAE9D+hI,kBAAmB/vI,EACnB8vI,eAAgB9vI,EAChBgwI,kBAAmB,WACf,MAAO,CACH9kT,KAAM,SAGd+kT,iBAAkBjwI,EAClBkwI,cAAer3J,EAAAA,KACfs3J,oBAAqBt3J,EAAAA,KACrBu3J,iBAAkBv3J,EAAAA,KAClBw3J,cAAe,SAAS7mX,EAAMm2B,GAC1B,IAAIl3B,EAAQkwT,EAAAA,QAAAA,MAAuBnvT,EAAMm2B,GACzC,OAAOl3B,GAAgBkwT,EAAAA,QAAAA,MAAuBnvT,IAElD8mX,kBAAmBz3J,EAAAA,KACnB03J,kBAAmB,WACf1pX,KAAK69F,gBAET8rR,YAAaxwI,EACb4Q,kBAAmB,WACf,IAAI6/H,EACJ,QAAUA,EAAkB5pX,KAAK6pX,mBAAgB,IAAWD,GAA2BA,EAAgBtkW,WAE3GwkW,mBAAoB,WAChB,IAAI3sO,EAAQn9I,KAAK6pX,YACjB7pX,KAAK8oX,gBACL,IAAIiB,EAAgB5sO,EAAMxjH,WAAWluB,SACrCkqN,EAAAA,EAAAA,IAAiBo0J,EAAe,aAChCp0J,EAAAA,EAAAA,GAAgBo0J,EAAe,YAAa/pX,KAAKgqX,qBAAqBv/W,KAAKzK,QAE/EiqX,qBAAsBj4J,EAAAA,KACtBk4J,oBAAqBl4J,EAAAA,KACrBg4J,qBAAsB,SAASxpX,GAC3BA,EAAE6G,kBAEN2hX,oBAAqB,WACjB,OAAOhpX,KAAK6pX,YAAYlwV,YAE5BkwV,UAAW,WACP,OAAO7pX,KAAK2oX,QAAQ7Z,QAExBqb,oBAAqBn4J,EAAAA,KACrBo4J,mBAAoBp4J,EAAAA,KACpBn0H,aAAc,WACV79F,KAAK6oX,SAAW7oX,KAAK6oX,QAAQhkW,OAAO,QAAS7kB,KAAKqqX,iBAEtDC,wBAAyBt4J,EAAAA,KACzBu4J,eAAgB,WACZ,OAAO,IAAIj8S,MAEfk8S,mBAAoBx4J,EAAAA,KACpBy4J,YAAa,WACLzqX,KAAK2oX,QAAQ9jW,OAAO,WACpB7kB,KAAK69F,gBAGbjgE,SAAU,WACN,OAAO59B,KAAK6oX,QAAQhkW,OAAO,UAE/B6lW,oBAAqB,WACjB,OAAO,GAEXtsW,QAAS,WACL,IAAI++H,EAAQn9I,KAAK6pX,YACb1sO,GACAA,EAAMxjH,WAAW8wC,SAGzB4/S,aAAc,WACV,OAAItiX,UAAUzH,OACHN,KAAK2oX,QAAQ3gC,UAAUhiU,MAAMhmB,KAAK2oX,QAAS5gX,WAE3C/H,KAAK2oX,QAAQ9gC,WAAW7hU,MAAMhmB,KAAK2oX,QAAS,CAAC,aAIhE,ICgFA,EAxKuBD,EAAAA,QAAwB,CAC3C3zJ,KAAM,WACNo0J,kBAAmB,WACf,OAAOrgX,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bo5J,gBAAiBxtD,EAAAA,EAAAA,OAA2B,iCAGpDksD,cAAe,WACX,IAAIuB,EAAiB,SAASpqX,GAC1B,QAAIR,KAAK6kB,OAAO,YACZrkB,EAAE6G,kBACK,IAIf,MAAO,CACHkjV,WAAY,WACR,GAAIvqV,KAAK6kB,OAAO,UACZ,OAAO,GAGf8lU,UAAW,WACP,GAAI3qV,KAAK6kB,OAAO,UACZ,OAAO,GAGfgnH,MAAO,SAASrrI,GACZ,GAAIR,KAAK2oX,QAAQ9jW,OAAO,UAAW,CAE/B,GADArkB,EAAE6G,iBACErH,KAAK6oX,QAAQhkW,OAAO,eAAiB7kB,KAAK6oX,QAAQhkW,OAAO,gBAAiB,CAC1E,IAAIgmW,EAAY7qX,KAAK8qX,qBACjBC,EAAoB/qX,KAAKgrX,mBACzBC,EAAsBjrX,KAAKkrX,wBAM/B,OALID,GAAuBJ,GAAa,aAAeE,GACnD/qX,KAAKqqX,aAAaQ,EAAWrqX,GAEjCyqX,GAAuBjrX,KAAK2oX,QAAQzhT,QACpClnE,KAAK2oX,QAAQhY,yBAAyBnwW,IAC9ByqX,EAER,OAAO,EAGXjrX,KAAK2oX,QAAQhY,yBAAyBnwW,IAE5CiK,KAAKzK,MACP43I,KAAMgzO,EACNx3V,IAAKw3V,IAGbxB,iBAAkB,SAAS+B,GACvB,OAAOA,GAAiB,aAE5BD,sBAAuB,kBAAM,GAC7BjC,eAAgB,WACZ,OAAOr/B,EAAAA,SAEXkhC,mBAAoB,WAChB,OAAO9qX,KAAK6oX,QAAQ/9B,MAAMjmU,OAAO,kBAErCykW,oBA5D2C,WA6DvC,OAAOtpX,KAAK6oX,SAEhBK,kBAAmB,WACf,IAAIvpC,EAAgB3/U,KAAK2oX,QAAQ9jW,OAAO,iBACxC,OAAO/b,EAAAA,EAAAA,GAAO9I,KAAK2oX,QAAQ9jW,OAAO,mBAAoB,CAClDjjB,MAAO5B,KAAKqqX,gBAAkB,KAC9BvgC,wBAAyB,KACzBhkU,IAAK9lB,KAAK2oX,QAAQ9gC,WAAW,OAC7BjiU,IAAK5lB,KAAK2oX,QAAQ9gC,WAAW,OAC7BtvO,eAAgBv4G,KAAKorX,qBAAqB3gX,KAAKzK,MAC/C4/U,YAAa5/U,KAAKiwV,kBAAkBxlV,KAAKzK,MACzC8+I,SAAU,KACV6gM,eAAezkQ,EAAAA,EAAAA,IAAWykQ,GAAiB3/U,KAAK+vV,iBAAiBpQ,EAAcl1U,KAAKzK,KAAK2oX,UAAYhpC,EACrGyK,mBAAoBpqV,KAAK48V,yBAAyBnyV,KAAKzK,MACvDqqV,gBAAgB,KAGxB0F,iBAAkB,SAAS5tS,GACvB,IAAIyzI,EAAO51L,KACX,OAAO,SAAS+hC,GAIZ,OAHAj5B,EAAAA,EAAAA,GAAOi5B,EAAQ,CACX1T,UAAWunK,EAAK+yL,UAEbxmU,EAAKpgB,KAGpB66T,yBAA0B,SAASp8V,GAC/BR,KAAKgrX,mBAAqB,WAC1BhrX,KAAK2oX,QAAQ/nC,QAAQ,mBAAoBpgV,EAAEulP,cAE/CslI,sBA3F2C,WA2FnB,WAChB/c,EAAkBtuW,KAAK2oX,QAAQ9jW,OAAO,mBAEtCsB,EAD2B,YAAcmoV,EACH,CAAC,SAAU,WAAY56I,EAAAA,EAAAA,WAAU46I,GAC3E,MAAO,CACHruU,OAAQ,WACRF,QAAS5Z,EAAS,GAClB6Z,SAAU,UAAY7Z,EAAS,GAAK,SAAWA,EAAS,GACxD/L,QAAS,CACL0oB,cAAe,SAAStiC,GACpBA,EAAE6tB,UAAU+gV,mBAAmB,SAAUpvW,KAAKqvW,eAAe5kW,KAAKzK,QACpEyK,KAAKzK,MACPgnE,QAAS,SAAAxgD,GACL,EAAKqiW,QAAQ32B,aAAa1rU,IAE9B7jB,KAAM3C,KAAK2oX,QAAQ9jW,OAAO,mBAC1BlB,KAAM,WAIlB2nW,mBAAoB,WAChB,IACqBC,EACjBvrX,KAAK2oX,QAAQ9jW,SADb0mW,gBAEJ,OAAO3/T,EAAAA,EAAAA,IAAc2/T,KAAoB,IAAUA,EAAgB1iX,SAEvE2iX,sBArH2C,SAqHrBx+V,GAGlB,MAFiB,eAAiBhtB,KAAK2oX,QAAQ9jW,OAAO,mBACV7kB,KAAKsrX,qBAG7C,CADkBtrX,KAAKqrX,yBACvB,eAAwBr+V,IAErBA,GAEX28V,YAAa,SAASlb,GAClB,OAAO3lW,EAAAA,EAAAA,IAAO,EAAM2lW,EAAc,CAC9BtoV,SAAU,CACNf,UAAW,gBAEf9T,MAAO,UAGf+9V,eAAgB,WACZrvW,KAAK2oX,QAAQzhT,QACblnE,KAAK2oX,QAAQ5nX,SAEjBqqX,qBAAsB,SAAS5qX,GAC3B,IAAIoB,EAAQpB,EAAEoB,MACVi0Q,EAAYr1Q,EAAEg4G,cACdowJ,EAAAA,QAAAA,SAAmBhnQ,EAAOi0Q,IAAcjN,EAAAA,QAAAA,oBAA8BhnQ,EAAOi0Q,IAG7E,cAAgB71Q,KAAK2oX,QAAQ9jW,OAAO,mBACpC7kB,KAAKqqX,aAAarqX,KAAK49B,WAAYp9B,EAAEga,QAG7CqjF,aAAc,WACL79F,KAAK6oX,SAGV7oX,KAAK6oX,QAAQhkW,OAAO,QAAS7kB,KAAKqqX,iBAEtCG,mBAAoB,WAChBxqX,KAAKgrX,mBAAqB,QACtBhrX,KAAK2oX,QAAQ9jW,OAAO,WAAa7kB,KAAK6oX,SACtC7oX,KAAK69F,cAAa,IAG1BoyP,kBAAmB,SAASzvV,GACxB,IAAImoX,EAAU3oX,KAAK2oX,QACf,cAAgBA,EAAQ9jW,OAAO,oBAC/B8jW,EAAQ9jW,OAAO,UAAU,GACzB7kB,KAAKqqX,aAAarqX,KAAK49B,WAAYp9B,EAAEga,0JCvJjD,IAGIixW,GAA6B,mBAI3BC,GAAAA,SAAAA,6IACF,WACI,OAAO5iX,EAAAA,EAAAA,IAAO,kEAA4B,CACtC6iX,cAAe,QACfC,WAAW,EACXn9V,cAAe,EACfo9V,eAAe,EACfngX,MAAO,GACPogX,aAAa,EACb9kT,QAAS,KACT+kT,uBAAwB,KACxBC,iBAAiB,yBAGzB,YACI,qDACAhsX,KAAK6kB,OAAO,qBAAsB7kB,KAAKisX,0BAA0BxhX,KAAKzK,OACtEA,KAAK6kB,OAAO,QAAS7kB,KAAKksX,kBAAkBzhX,KAAKzK,8BAErD,YACI,uDACAA,KAAKmsX,2BACLnsX,KAAK6Z,WAAW4F,SA7BI,qBA8BpBzf,KAAKosX,wBACLpsX,KAAKygW,eACLzgW,KAAKqsX,uBACLrsX,KAAKssX,oBACLtsX,KAAKusX,oBACLvsX,KAAKwsX,yEAET,WACIxsX,KAAKysX,sBAAwBzsX,KAAKw7N,sBAAsB,2DAE5D,WAAoB,WAChB7F,EAAAA,EAAAA,IAAgBjoN,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAc,gBAAgB,SAAAtf,GACjD,EAAKksX,kBAAmB,0CAGhC,WACI,GAAK1sX,KAAK6kB,OAAO,eAAjB,CAGA,IAAIolB,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAC9C1pN,EAAcrL,KAAKw7N,sBAAsB,WAC7C7F,EAAAA,EAAAA,KAAiBjoN,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAcmqB,GACtC0rL,EAAAA,EAAAA,IAAgBjoN,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAcmqB,GAAY,SAASzpC,GACtD6K,EAAY,CACRmP,MAAOha,oCAInB,WACI,IAAIkL,EAAQ1L,KAAK6kB,OAAO,UAAY,GAChCqyM,GAASxpN,EAAAA,EAAAA,MACbA,EAAAA,EAAAA,GAAE1N,KAAK8gB,WAAW2pD,QAClB/+D,EAAMzL,SAAS,SAASC,GACpBg3N,EAASA,EAAO51N,KAAIoM,EAAAA,EAAAA,GAAE,SAAS+R,SAASgsW,IAA4B1rW,OAAO7f,QAE/EwN,EAAAA,EAAAA,GAAE1N,KAAK8gB,WAAWf,OAAOm3M,GACzBl3N,KAAK2sX,QAAUz1J,EACfl3N,KAAKqe,iDAET,YACI3Q,EAAAA,EAAAA,GAAE,SAAS+R,SAjE6B,mCAiEuBM,QAAOrS,EAAAA,EAAAA,GAAE,SAAS+R,SAhExC,qCAgE8FwY,UAASvqB,EAAAA,EAAAA,GAAE1N,KAAK8f,kDAE3J,SAAqB2O,GACjB,IAAI5tB,EAAQb,KAAK4sX,UAAU,OAASn+V,QAAiB,IAAWA,EAAgBA,EAAgBzuB,KAAK6kB,OAAO,kBAC5G7kB,KAAK6sX,QAAQ,CACT/zW,IAAK9Y,KAAK8sX,iBAAiBjsX,KAE/Bb,KAAK+sX,kDAET,SAAUlsX,GACN,IACIo9P,GADQj+P,KAAK6kB,OAAO,UAAY,IACdvkB,OACtB,OAAIO,GAASo9P,EACFA,EAAY,EAEnBp9P,EAAQ,EACD,EAEJA,kCAEX,SAAiBA,GACb,OAAO8kB,KAAK6H,MAAMxtB,KAAKgtX,cAAgBnsX,oCAE3C,WACI,IAAIy+V,EAAet/V,KAAKitX,mBACpBhjV,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAClDY,EAAAA,EAAAA,IAAiB31N,KAAK6Z,WAAYowB,EAAWq1T,GAC7C3pI,EAAAA,EAAAA,GAAgB31N,KAAK6Z,WAAYowB,EAAWq1T,EAAct/V,KAAK85V,kBAAkBrvV,KAAKzK,uCAE1F,WACI,MAAO,qDAEX,SAAkBQ,GACdR,KAAK6kB,OAAO,gBAAiB7kB,KAAKktX,kBAAkB1sX,EAAEkO,iDAE1D,SAAkBo8D,GACd,OAAO9qE,KAAK85U,gBAAgBj5U,MAAMiqE,gCAEtC,WACI,OAAO9qE,KAAK6Z,WAAWwC,KAAKrc,KAAKitX,0DAErC,WACI,IAAIx+V,EAAgBzuB,KAAK6kB,OAAO,kBAChCpK,EAAAA,EAAAA,IAAKza,KAAK2sX,SAAU,SAAS9rX,IACzB6M,EAAAA,EAAAA,GAAE1N,MAAMw2N,YA9GsB,4BA8G2B/nM,IAAkB5tB,iDAGnF,WACI,MAAO,YAAcsnO,EAAAA,QAAAA,OAAeC,YAAcpoO,KAAK0sX,wCAE3D,SAAQS,GACJ,MC1ID,SAA2BntV,EAAUq7G,GACxC,IAAItgE,EAAAA,EAAAA,IAAc/6C,GAAW,CACzB,IAAItnB,GAAO8mP,EAAAA,EAAAA,eAAcx/N,EAAStnB,KAAMsnB,EAAShvB,GAC7C8H,GAAM0mP,EAAAA,EAAAA,eAAcx/N,EAASlnB,IAAKknB,EAASriB,GAC/C,MAAO,CACHjF,MAAMiwC,EAAAA,EAAAA,IAAUjwC,GAAQA,OAAO,EAC/BI,KAAK6vC,EAAAA,EAAAA,IAAU7vC,GAAOA,OAAM,GAGpC,MAGI,IAAIq9T,GAAAA,EAAgB96L,GAFN+xO,EADlB,EACIA,aACYC,EAFhB,EAEIA,WAEJ,MAAO,CACH30W,KAAM00W,IAAgBzkU,EAAAA,EAAAA,IAAU3oB,GAAYA,OAAW,EACvDlnB,IAAKu0W,IAAc1kU,EAAAA,EAAAA,IAAU3oB,GAAYA,OAAW,GD8HhDstV,CAAkBH,GAFbr0W,EADT,EACIA,IACMJ,EAFV,EAEIA,KAEAsnB,EAAWhgC,KAAKklD,eAChBloC,EAAQ,CACRhM,EAAGgvB,EAAStnB,KAAOA,EACnBiF,EAAGqiB,EAASlnB,IAAMA,GAEtB,GAAI9Y,KAAK06G,eAAiB19F,EAAMhM,GAAKgM,EAAMW,GAEvC,GADA3d,KAAKutX,oBAAmB,GACpBvtX,KAAKwtX,aAAextX,KAAKytX,8BAA+B,CACxD,IAAI73L,EAAO51L,KACXigO,EAAAA,QAAAA,MAAQvyN,EAAAA,EAAAA,GAAE1N,KAAK8gB,YACfm/M,EAAAA,QAAAA,SAAWvyN,EAAAA,EAAAA,GAAE1N,KAAK8gB,WAAY,CAC1B0+M,SAAU,IACV77M,KAAM,QACNq9C,GAAI,CACAloD,IAAK6M,KAAKo1B,MAAM/9B,EAAMW,IAE1BsmN,SAN0B,YAOtB2F,EAAAA,EAAAA,KAAcl8N,EAAAA,EAAAA,GAAEkoL,EAAK90K,YACrB80K,EAAK83L,WAAW,CACZ1wW,MAAOA,cAIZhd,KAAKwtX,gBAEZxtX,KAAK0tX,WAAW,CACZ1wW,MAAOA,6BAKvB,SAAUxc,GACN,OAAOR,KAAK2tX,eAAentX,2CAE/B,SAAyBK,GACrB,IAAI6kW,EAAa1lW,KAAK6kB,OAAO,SAASvkB,OACtC,OAAOqlB,KAAKC,IAAID,KAAKG,IAAIjlB,EAAO6kW,EAAa,GAAI,wCAErD,SAAsB10V,GAClB,OAAQ,IAAMA,GAAKA,GAAK,+CAE5B,SAA6B48W,GACzB,IAEIjxW,EAFc3c,KAAKklD,eAAepsC,IACH80W,EAAuB5tX,KAAKgtX,cAE/D,GAAIhtX,KAAK6tX,sBAAsBlxW,GAC3B,OAAOixW,EAEX,IAAIvyO,EAAY1+H,EAAK,EAAI,GAAK,EAE9B,OADuB3c,KAAK8tX,yBAAyBF,EAAuBvyO,uCAGhF,SAAqBuyO,GACjB,GAAI5tX,KAAKytX,8BACL,OAAOztX,KAAK+tX,6BAA6BH,GAE7C5tX,KAAKwtX,YAAa,EAClB,IAAIp1C,EAAQp4U,KAAKklD,eAAepsC,IAAM9Y,KAAKgtX,cAC3C,OAAOrnW,KAAK6H,MAAM4qT,oCAEtB,WACI,IAAIw1C,EAAuB5tX,KAAK6kB,OAAO,iBACnCmpW,EAAmBhuX,KAAKiuX,qBAAqBL,GAC7CI,IAAqBJ,EACrB5tX,KAAKqsX,qBAAqB2B,GAE1BhuX,KAAK6kB,OAAO,gBAAiBmpW,GAEjChuX,KAAK0sX,kBAAmB,6BAE5B,WACI,IAAI10C,EAAQh4U,KAAK2sX,QAAQ3iT,QACzB,OAAO6yE,EAAAA,EAAAA,IAAUm7L,gCAErB,SAAc7gP,GACVn3F,KAAK6Z,WAAW28M,YAvMW,kBAuM+Br/H,6BAE9D,WACI,OAAOzpF,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAaga,GAAG,qDAElC,SAA0Bl4B,EAAO42G,GAC7Bx4G,KAAKysX,sBAAsB,CACvB7qX,MAAOA,EACP42G,cAAeA,EACfh+F,WAAO,sCAGf,SAAmB3R,IACf,iEAAyBA,GACzB7I,KAAKisX,0BAA0BpjX,4CAEnC,SAA0BA,GAAS,WAC3BA,IACA7I,KAAKkuX,iBAAmBrrX,YAAW,WAC/B,EAAKwpX,qBAAqB,EAAKxnW,OAAO,sBAG9C7kB,KAAKmuX,mBAAkB,oCAE3B,SAAkBh3R,GACdn3F,KAAK6Z,WAAW28M,YA/NY,4BA+N+Br/H,wCAE/D,WACI,IAAI1oE,EAAgBzuB,KAAK6kB,OAAO,iBAC5BupW,EAAWpuX,KAAK4sX,UAAUn+V,GAC1B2/V,IAAa3/V,EACbzuB,KAAK+sX,yBAEL/sX,KAAK6kB,OAAO,gBAAiBupW,iCAGrC,SAAe5nW,GACX,OAAQA,EAAKhZ,MACT,IAAK,gBACDxN,KAAKquX,0BAA0B7nW,EAAK5kB,MAAO4kB,EAAKgyF,eAChDx4G,KAAKqsX,qBAAqB7lW,EAAK5kB,OAC/B,MACJ,IAAK,QACD5B,KAAKygW,eACLzgW,KAAKsuX,wBACL,MACJ,IAAK,UACL,IAAK,cACDtuX,KAAKosX,wBACL,MACJ,IAAK,yBACDpsX,KAAKwsX,8BACL,MACJ,SACI,6DAAqBhmW,4BAGjC,WACI0X,aAAal+B,KAAKkuX,mBAClB,8DA5PFxC,CAAuB6C,EAAAA,IA+P7BjuW,EAAAA,EAAAA,SAAkB,mBAAoBorW,IACtC,UErRI8C,GAAiB,cAKjBC,GACM,OAINC,GACM,OADNA,GAEO,QAFPA,GAGK,MAHLA,GAIO,QAEPC,GAAW1yV,EAAAA,EAAAA,QAAe,CAC1B2yV,aAAc,WACV,IAAIhtX,EAAQ5B,KAAK6kB,OAAO,SACpBqf,EAAO,IAAIoqC,KAAK1sE,GACpB,OAAQA,GAAS4nC,MAAMtF,GAAQlkC,KAAK6uX,kBAAoB3qV,GAE5D2qV,gBAAiB,WACb,IAAI3qV,EAAO,IAAIoqC,KACf,OAAItuE,KAAK6kB,OAAO,UAAY4pW,GACjB,IAAIngT,KAAKpqC,EAAK26C,cAAe36C,EAAKy6C,WAAYz6C,EAAK06C,WAEvD16C,GAEXuuL,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bw0H,QAAS+oC,EAAAA,0BACT9oC,QAAS8oC,EAAAA,0BACTnrW,KAAM8qW,GACN7sX,MAAO,IAAI0sE,KACXygT,mBAAmB,KAG3BnsI,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,SAAS4wI,GACb,MAAO,YAAcA,EAAQ5mJ,YAEjChuN,QAAS,CACL20W,mBAAmB,OAI/BjzJ,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAAS+uW,IACzBxuX,KAAKivX,qBAAqBjvX,KAAK6kB,OAAO,SACtC7kB,KAAKkvX,uBAETD,qBAAsB,SAASE,EAAeC,GAC1CpvX,KAAK6Z,WAAW4F,SAAS+uW,eAAuBW,GAChDC,GAAkBpvX,KAAK6Z,WAAWge,YAAY22V,eAAuBY,IAEzEF,oBAAqB,WACjBlvX,KAAK6Z,WAAW28M,YA1DK,sBA0D+Bx2N,KAAK6kB,OAAO,uBAEpEwqW,SAAU,WACN,OAAOrvX,KAAKsvX,WAEhBpwB,mBAAoB,WAChBl/V,KAAKsvX,WAAY5hX,EAAAA,EAAAA,GAAE,SAAS+R,SA/DP,uBAgErBzf,KAAKuvX,iBACLvvX,KAAKsvX,UAAUr3V,SAASj4B,KAAK6Z,aAEjC01W,eAAgB,WACPvvX,KAAKwvX,qBACNxvX,KAAKwvX,oBAAqB9hX,EAAAA,EAAAA,GAAE,SAAS+R,SApEX,wBAsE9Bzf,KAAKwvX,mBAAmB/kT,QACxBzqE,KAAKyvX,uBACLzvX,KAAK0vX,SAAW,GAChB,IAAI95L,EAAO51L,MACXya,EAAAA,EAAAA,IAAKm7K,EAAK+5L,gBAAiB,SAASniX,GAChC,IAAIoiX,GAAUliX,EAAAA,EAAAA,GAAE,SAASuqB,SAAS29J,EAAK45L,oBAAoB/vW,SAASowW,qBAA8Bj6L,EAAK+5L,eAAeniX,GAAMmW,MAC5HiyK,EAAK85L,SAAS95L,EAAK+5L,eAAeniX,GAAMmW,MAAQiyK,EAAKwxD,iBAAiBwoI,EAASlE,GAAgB,CAC3FhgX,MAAOkqL,EAAK+5L,eAAeniX,GAAMsiX,aACjCrhW,cAAemnK,EAAK+5L,eAAeniX,GAAMihB,cACzCk9V,cAAe,QACfK,iBAAiB,EACjBv5E,QAAS,SAASjyS,GACd,IAAIuvX,EAASvvX,EAAE6tB,UACf0hW,EAAOC,eAAc,GACrBp6L,EAAKq6L,iBAAiBr6L,EAAK+5L,eAAeniX,GAAOuiX,EAAOlrW,OAAO,mBAEnEguR,MAAO,SAASryS,GACCA,EAAE6tB,UACR2hW,eAAc,IAEzBhpT,QAAS,SAASxmE,GACd,IAAIuvX,EAASvvX,EAAE6tB,UACf0hW,EAAOC,eAAc,GACrBp6L,EAAKq6L,iBAAiBr6L,EAAK+5L,eAAeniX,GAAOuiX,EAAOlrW,OAAO,kBAC/D+wK,EAAKs6L,gBAAgBt6L,EAAK+5L,eAAeniX,GAAOuiX,EAAOlrW,OAAO,kBAC9DkrW,EAAOC,eAAc,IAEzBjE,uBAAwB,SAASvrX,GAC7B,IAAIuvX,EAASvvX,EAAE6tB,UACfunK,EAAKs6L,gBAAgBt6L,EAAK+5L,eAAeniX,GAAOuiX,EAAOlrW,OAAO,wBAI1E+wK,EAAK45L,mBAAmBv3V,SAAS29J,EAAKy5L,aAE1CI,qBAAsB,SAAS9rW,GAC3B,IAAIiyK,EAAO51L,KACX2jB,EAAOA,GAAQiyK,EAAK/wK,OAAO,QAC3B+wK,EAAK+5L,eAAiB,GACtB79D,EAAAA,QAAAA,eAAgCg9D,EAAAA,YAAwBnrW,IAAO1jB,SAAS,SAASgyT,GAC7Er8H,EAAKu6L,oBAAoBl+D,OAGjCk+D,oBAAqB,SAASr7J,GAgB1B,IAfA,IAAI9yL,EAAgB8sV,EAAAA,qBAAiCh6J,GACjDs7J,EAAapwX,KAAKqwX,iCAAiCv7J,GACnD0zJ,EAAa4H,EAAW5H,WACxBC,EAAW2H,EAAW3H,SACtBl4D,EAAYvuR,EAAcuuR,UAC1B+/D,EAAUtwX,KAAKuwX,kBACfjhT,EAAS,CACT3rD,KAAMmxM,EACNvtM,SAAUya,EAAcwkV,OACxBgK,WAAY,GACZV,aAAc,GACd1lB,SAAU,SAASxoW,GACf,OAAOA,EAAMogC,EAAcyhO,UAAY+kH,IAGtCz8W,EAAIy8W,EAAYz8W,GAAK08W,EAAU18W,IACpCujE,EAAOkhT,WAAW5vX,KAAKmL,GACvBujE,EAAOwgT,aAAalvX,KAAK2vT,EAAUxkT,EAAGukX,IAE1ChhT,EAAO7gD,cAAgB6gD,EAAO86R,SAASkmB,GACvCtwX,KAAK2vX,eAAe76J,GAAiBxlJ,GAEzC2gT,iBAAkB,SAASQ,GACvB,IAAIC,EAAeD,GAAiBzwX,KAAK0vX,SAASe,EAAc9sW,OAChElJ,EAAAA,EAAAA,IAAKza,KAAK0vX,UAAW,WACjB1vX,KAAKmuX,kBAAkBnuX,OAAS0wX,OAGxCC,uBAAwB,WACpB,IAAI/6L,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAK0vX,UAAW,SAAS/rW,GAC1B,IAAIitW,EAAeh7L,EAAK+5L,eAAehsW,GAAMymV,SAASx0K,EAAK26L,mBAC3DvwX,KAAK6kB,OAAO,gBAAiB+rW,OAGrCV,gBAAiB,SAASH,EAAQthW,GAC9B,GAAIA,IAAkBshW,EAAOthW,cAAe,CACxC,IAAIoiW,EAAcd,EAAOS,WAAW/hW,GAChClH,EAAWwoW,EAAOxoW,SAClBmzD,EAAe,IAAIpM,KAAKtuE,KAAKuwX,mBAC7B/kH,EAAc9wL,EAAakE,UAC3BmnQ,EAAU/lV,KAAK6kB,OAAO,WACtBmhU,EAAUhmV,KAAK6kB,OAAO,WACtBkrW,EAAOpsW,OAAS+qW,GAChBljH,EAAc7lP,KAAKG,IAAI0lP,EAAasjH,EAAAA,eAA2Bp0S,EAAamE,cAAegyS,IACpFd,EAAOpsW,OAAS+qW,KACvBljH,EAAc7lP,KAAKG,IAAI0lP,EAAasjH,EAAAA,eAA2B+B,EAAan2S,EAAaiE,cAE7FjE,EAAayrL,QAAQqF,GACrB9wL,EAAanzD,GAAUspW,GACvB,IAAItoH,EAAiBK,EAAAA,QAAAA,cAAwBluL,EAAcqrQ,EAASC,GACpEtrQ,EAAeo0S,EAAAA,WAAuBvmH,EAAgB7tL,EAAc,QACpEA,EAAekuL,EAAAA,QAAAA,cAAwBluL,EAAcqrQ,EAASC,GAC9DhmV,KAAK6kB,OAAO,QAAS61D,GACrBq1S,EAAOthW,cAAgBA,EAEvBshW,EAAOpsW,OAAS+qW,IAChB1uX,KAAK8wX,kBAELf,EAAOpsW,OAAS+qW,KAChB1uX,KAAK+wX,eAAerC,IACpB1uX,KAAK+wX,eAAerC,MAG5BqC,eAAgB,SAASC,GACrB,IAAIjB,EAAS/vX,KAAK0vX,SAASsB,GAC3B,GAAIjB,EAAQ,CACR/vX,KAAKmwX,oBAAoBa,GACzB,IAAIC,EAAejxX,KAAK2vX,eAAeqB,GACnCA,IAAetC,IAAmBuC,EAAanB,aAAarhX,aAAeshX,EAAOlrW,OAAO,SAASpW,YAClGshX,EAAOlrW,OAAO,CACVnZ,MAAOulX,EAAanB,aACpBrhW,cAAewiW,EAAaxiW,kBAK5C8hW,gBAAiB,WACb,IAAID,EAAUtwX,KAAK4uX,eACf7oC,EAAU/lV,KAAK6kB,OAAO,WACtBmhU,EAAUhmV,KAAK6kB,OAAO,WAC1B,OAAO+jP,EAAAA,QAAAA,cAAwB0nH,EAASvqC,EAASC,IAErDqqC,iCAAkC,SAASv7J,GACvC,IAAIw7J,EAAUtwX,KAAKuwX,kBACfxqC,EAAU/lV,KAAK6kB,OAAO,WACtBmhU,EAAUhmV,KAAK6kB,OAAO,WACtBqsW,EAAUtoH,EAAAA,QAAAA,SAAmB0nH,EAASvqC,GACtCorC,EAAWD,GAAWZ,EAAQ3xS,aAAeonQ,EAAQpnQ,WACrDyyS,EAAUxoH,EAAAA,QAAAA,SAAmB0nH,EAAStqC,GACtCqrC,EAAWD,GAAWd,EAAQ3xS,aAAeqnQ,EAAQrnQ,WACrD2yS,EAAUH,GAAYb,EAAQ1xS,YAAcmnQ,EAAQnnQ,UACpD2yS,EAAUF,GAAYf,EAAQ1xS,YAAconQ,EAAQpnQ,UACpD58C,EAAgB8sV,EAAAA,qBAAiCh6J,GACjD0zJ,EAAaxmV,EAAcwmV,WAC3BC,EAAWzmV,EAAcymV,SA0B7B,OAzBI3zJ,IAAkB45J,KAClBlG,EAAaziC,EAAQlnQ,cACrB4pS,EAAWziC,EAAQnnQ,eAEnBi2I,IAAkB45J,KACdwC,IACA1I,EAAaziC,EAAQpnQ,YAErByyS,IACA3I,EAAWziC,EAAQrnQ,aAGvBm2I,IAAkB45J,KAClBjG,EAAWqG,EAAAA,eAA2BwB,EAAQzxS,cAAeyxS,EAAQ3xS,YACjEuyS,GAAWC,IACX3I,EAAaziC,EAAQnnQ,WAErBwyS,GAAWC,IACX5I,EAAWziC,EAAQpnQ,YAGvBk2I,IAAkB45J,KAClBlG,EAAa8I,EAAUvrC,EAAQhnQ,WAAaypS,EAC5CC,EAAW8I,EAAUvrC,EAAQjnQ,WAAa0pS,GAEvC,CACHD,WAAYA,EACZC,SAAUA,IAGlBqI,gBAAiB,WACb9wX,KAAK+wX,eAAerC,IACpB1uX,KAAK+wX,eAAerC,IACpB1uX,KAAK+wX,eAAerC,KAExBxyJ,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,UACL,IAAK,UACL,IAAK,OACDxN,KAAKuvX,iBACLvvX,KAAKivX,qBAAqBzoW,EAAK5kB,MAAO4kB,EAAKgyF,eAC3C,MACJ,IAAK,UACDx4G,KAAKuxN,SAAS/qM,GACVA,EAAK5kB,OACL5B,KAAKuvX,iBAET,MACJ,IAAK,QACDvvX,KAAK6kB,OAAO,QAAS7kB,KAAK4uX,gBAC1B5uX,KAAK8wX,kBACL9wX,KAAK2wX,yBACL,MACJ,QACI3wX,KAAKuxN,SAAS/qM,KAG1B+kO,OAAQ,WACJvrP,KAAKuxN,kBACEvxN,KAAKwvX,uBAGpBlvW,EAAAA,EAAAA,SAAkB,aAAcquW,IAChC,UC9RIlpW,IAASwoM,EAAAA,EAAAA,MAWTujK,GAAmB9I,EAAAA,QAAwB,CAC3C3zJ,KAAM,WACNo0J,kBAAmB,WACf,OAAOrgX,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BkgK,kBAAkB,EAClBC,gBAAiBv0D,EAAAA,EAAAA,OAA2B,MAC5C,6BAA6B,KAGrCisD,iBAAkB,SAAS+B,GACvB,OAAOA,GAAiBviH,EAAAA,YAAsB5oQ,KAAK2oX,QAAQ9jW,OAAO,UAEtE8kW,YAAa,SAASr6S,GAClB,MAAO,CACHtiD,aAAchtB,KAAK2oX,QAAQgJ,2BAC3B7uV,cAAewsC,EAAOxsC,cACtB6/M,oBAAqB,CAAC,CAClBvE,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACL9I,MAAO,IACPC,OAAQ,MAEb,CACC6sO,OAAQ,SAAS4wI,GACb,IAAIrwP,EAAWqwP,EAAQrwP,SACvB,MAAO,YAAcA,GAAY,QAAUA,GAE/CvkH,QAAS,CACL9I,MAAO,OACPC,OAAQ,SAEb,CACC6sO,OAAQ,SAASwzI,GACb,IAAIjzP,EAAWizP,EAASjzP,SACpB09G,EAAQu1I,EAASv1I,MACrB,MAAO,YAAc19G,GAAY09G,GAErCjiO,QAAS,CACL9I,MAAO,IACP0N,SAAU,OACV0G,UAAW,OACXnU,OAAQ,OACR4U,SAAU,CACNf,UAAW,kBAGpB,CACCg5N,OAAQ,CACJz/G,SAAU,MACV09G,OAAO,GAEXjiO,QAAS,CACL9I,MAAO,OACP6U,SAAU,CACNu5C,GAAI,SACJC,GAAI,SACJF,GAAIh6C,SAMxBqjW,cAAe,WACX,IAAIp0O,EAAAA,EAAAA,WAAU10I,KAAK2oX,QAAQ9jW,OAAO,UAAY7kB,KAAK2oX,QAAQkJ,iBAAmB7xX,KAAK2oX,QAAQ9jW,OAAO,YAC1F7kB,KAAK6oX,UACL7oX,KAAK6oX,QAAQhvW,WAAWrY,SACxBxB,KAAK6oX,QAAU,UAHvB,CAOA,IAAI1rO,EAAQn9I,KAAK6pX,YACjB,GAAI7pX,KAAK6oX,QACL7oX,KAAK6oX,QAAQhkW,OAAO7kB,KAAKkpX,yBACtB,CACH,IAAIppX,GAAU4N,EAAAA,EAAAA,GAAE,SAASuqB,SAASklH,EAAMxjH,YACxC35B,KAAK6oX,QAAU7oX,KAAK+oX,cAAcjpX,GAEtCE,KAAK6oX,QAAQhvW,WAAWoe,SAASj4B,KAAKgpX,yBAE1CC,eAAgB,WACZ,OAAO0F,IAEXjF,kBAAmB,WACf1pX,KAAKuxN,WACDvxN,KAAK6oX,SACL7oX,KAAK6oX,QAAQhkW,OAAO,QAAS7kB,KAAK6oX,QAAQ0H,oBAGlDrH,kBAAmB,WACf,MAAO,CACHtnX,MAAO5B,KAAKqqX,gBAAkB,IAAI/7S,KAClC3qD,KAAM3jB,KAAK2oX,QAAQ9jW,OAAO,QAC1BkhU,QAAS/lV,KAAK2oX,QAAQ9gC,WAAW,QAAU,IAAIv5Q,KAAK,KAAM,EAAG,GAC7D03Q,QAAShmV,KAAK2oX,QAAQ9gC,WAAW,QAAU,IAAIv5Q,KAAKA,KAAKskC,MAAQ,GAAKg2J,EAAAA,UACtElmB,YAAa,WACT1iP,KAAK6oX,QAAU,MACjBp+W,KAAKzK,UAInB,MCxGI8xX,GAAiBpJ,EAAAA,QAAwB,CACzC3zJ,KAAM,SACN40J,YAAa,SAASlb,GAClB,OAAO3lW,EAAAA,EAAAA,GAAO,GAAI2lW,EAAc,CAC5Bn9V,MAAO,UAGfk4W,cAAe,SAAS7mX,GACpB,OAAKA,EAGD,aAAe3C,KAAK2oX,QAAQ9jW,OAAO,QAC5B,IAAIypD,KAAK3rE,EAAK+lD,QAAQ,KAAM,KAAKA,QAAQ,IAAK,KAAKj7C,MAAM,KAAK,IAElEm7P,EAAAA,uBAAiCjmQ,GAL7B,MAOfmnX,mBAAoB93J,EAAAA,KACpBi3J,eAAgBj3J,EAAAA,KAChBk3J,kBAAmBl3J,EAAAA,KACnB+/J,gBAAiB,WACb,IAAIpuW,EAAO3jB,KAAK2oX,QAAQ9jW,OAAO,QAM/B,OALK+jP,EAAAA,kBAAAA,SAAqCjlP,GAE/B,aAAeA,IAAS+wH,EAAAA,EAAAA,WAAU/wH,KACzCA,EAAO,kBAFPA,EAAO,OAIJA,GAEX4lW,iBAAkB,WACd,IAAIyI,EAAiBhyX,KAAK2oX,QAAQ37O,UAAU,YACxCm7F,EAAAA,QAAAA,OAAeoU,SAAWy1I,GAC1BA,EAAe15V,GAAG,QAAS,WACvBt4B,KAAK2oX,QAAQ9wR,SAASh4E,IAAI,GAAGwR,SAC/B5mB,KAAKzK,QAGfmpX,kBAAmB,WACf,MAAO,CACH9kT,KAAMrkE,KAAK+xX,oBAGnB3I,iBAAkB,SAAS+B,GACvB,IAAIxnW,EAAO3jB,KAAK+xX,kBAChB,OAAO5G,GAAiBviH,EAAAA,YAAsBjlP,IAElD8lW,kBAAmB,SAAS1xQ,GACxBA,EAAOn4F,KAAK,CACRkG,IAAK67T,EAAAA,EAAAA,cAAgC3hV,KAAK2oX,QAAQ9gC,WAAW,OAAQ,cACrEjiU,IAAK+7T,EAAAA,EAAAA,cAAgC3hV,KAAK2oX,QAAQ9gC,WAAW,OAAQ,mBAIjF,0CC7CIoqC,GAAc,SAASC,EAAQ1gV,EAAOjmC,GACtC4mX,GAAUD,EAAQ1gV,EAAOjmC,IAEzB4mX,GAAY,SAASD,EAAQ1gV,EAAOjmC,GACpC2mX,EAAO72W,IAAI,YAAa,UAAYm2B,EAAQ,oBAAsBjmC,EAAS,QAE3E6mX,GAAWn2V,EAAAA,EAAAA,QAAe,CAC1Bw2L,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,IAAI0sE,KAAKA,KAAKskC,OACrBy/Q,iBAAiB,EACjBC,YAAY,EACZC,aAAc,EACdxrT,iBAAa,KAGrByrT,UAAW,WACP,OAAOxyX,KAAK6kB,OAAO,UAAY,IAAIypD,MAEvCkE,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SA9BH,gBAgCjBq8M,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKyyX,aACLzyX,KAAKqkD,eAETouU,WAAY,WACR,IAAIC,GAAOhlX,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK6Z,YAChCnO,EAAQ,GACR1L,KAAK6kB,OAAO,eACZnZ,EAAM9K,KAAK,CACPw3U,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,SAAU3pB,KAAK2yX,aAAaloX,KAAKzK,QAGzC0L,EAAM9K,KAAK,CACPw3U,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,SAAU3pB,KAAK4yX,aAAanoX,KAAKzK,QAErCA,KAAKonP,iBAAiBsrI,EAAMj6C,GAAAA,EAAK,CAC7BlnU,OAAQ,OACRD,MAAO,OACP+pI,UAAW,MACX3vI,MAAOA,KAGfinX,aAAc,SAASj4W,EAAGshI,EAAIl8H,GAC1B9f,KAAK6yX,aAAcnlX,EAAAA,EAAAA,GAAE,SAAS+R,SA3DP,yBA4DvBzf,KAAK8yX,eAAgBplX,EAAAA,EAAAA,GAAE,SAAS+R,SAvDP,2BAwDzB,IAAI8nB,GAAa75B,EAAAA,EAAAA,GAAEoS,GACnBynB,EAAW9nB,SAhEQ,qBAgEuBM,OAAO/f,KAAK6yX,aAAa9yW,OAAO/f,KAAK8yX,eAC/E9yX,KAAK4gV,QAAQ,OAAQ,eAAgBr5S,IAEzCwrV,aAAc,WACV,IAAIlmT,EAAO7sE,KAAKwyX,YACZQ,EAAiBnmT,EAAKkS,WAAa,GAAK,IAAMlS,EAAKmS,aAAe,GAAK,GACvEi0S,EAAmBpmT,EAAKmS,aAAe,GAAK,IAChDizS,GAAYjyX,KAAK6yX,YAAaG,EAAgBhzX,KAAK6kB,OAAO,iBAC1DotW,GAAYjyX,KAAK8yX,cAAeG,EAAkBjzX,KAAK6kB,OAAO,kBAElEquW,aAAc,SAASC,GAAgB,WAC/BznX,EAAQ,CAAC,CACT0sU,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,SAAU,kBAAM,EAAKypW,SAASv5W,aAC/B,CACCu+T,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,UAAUjc,EAAAA,EAAAA,GAAE,SAAS+R,SAjFG,8BAiFqC9c,KAAKmvT,EAAAA,QAAAA,qBACnE,CACCsmB,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,SAAU,kBAAM,EAAK0pW,WAAWx5W,cAUpC,OARIs5W,GACAznX,EAAM9K,KAAK,CACPw3U,MAAO,EACPC,OAAQ,EACRF,SAAU,OACVxuT,SAAU,kBAAM,EAAK2pW,UAAUz5W,cAGhCnO,GAEXknX,aAAc,WACV,IAAIO,GAAkBnzX,KAAK6kB,OAAO,mBAMlC,OALA7kB,KAAKuzX,eAAeJ,GACpBnzX,KAAKwzX,mBACDL,GACAnzX,KAAKyzX,qBAEFzzX,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAS+R,SA3GrB,qBA2GqDg5T,GAAAA,EAAK,CACzEp9L,UAAW,MACXxhG,MAAO,SACPi+R,WAAY,SACZpsU,MAAO1L,KAAKkzX,aAAaC,KAC1Bt5W,YAEP05W,eAAgB,SAASJ,GAAgB,YACxBnzX,KAAKozX,SAAWpzX,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUipW,GAAAA,SAAW7tW,EAAAA,EAAAA,GAAO,CAC7Egd,KAAM,EACNF,IAAKutW,EAAiB,GAAK,GAC3BvxX,MAAO5B,KAAKwyX,YAAYzzS,WACxBw5B,eAAgBv4G,KAAK0zX,uBAAuBjpX,KAAKzK,MACjDwrU,kBAAmB,SAAAxiN,GAAI,OAAI,EAAKkuP,iBAAiBluP,KAClDhpH,KAAK2zX,yBACD/yC,QAAQ,QAAS,UAE5BgzC,MAAO,WACH,OAAQ5zX,KAAK6kB,OAAO,oBAAsB,IAAM7kB,KAAKszX,UAAUzuW,OAAO,UAE1E6uW,uBAAwB,SAAS1sI,GAC7B,IACWplP,EAEPolP,EAFAplP,MACWysB,EACX24N,EADA34N,UAEAqsD,EAAe16E,KAAKwyX,YACpBjsW,EAAW,IAAI+nD,KAAKoM,GACpBm5S,EAAW7zX,KAAK8zX,qBAAqBlyX,GACzCysB,EAAUxJ,OAAO,QAASgvW,GACtB7zX,KAAK4zX,UACLC,GAAY,IAEhBttW,EAASsrF,SAASgiR,GAClBjrH,EAAAA,cAAwBriP,GACxBvmB,KAAK6kB,OAAO,QAAS0B,IAEzButW,qBAAsB,SAAS7sH,GAC3B,IAAI8sH,EAAgB/zX,KAAK6kB,OAAO,mBAAqB,GAAK,GAC1D,OAAQkvW,EAAgB9sH,GAAS8sH,GAErCP,iBAAkB,WAAW,YACZxzX,KAAKqzX,WAAarzX,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUipW,GAAAA,SAAW7tW,EAAAA,EAAAA,GAAO,CAC/Egd,KAAM,EACNF,IAAK,GACLhkB,MAAO5B,KAAKwyX,YAAYxzS,aACxBwsP,kBAAmB,SAAAxiN,GAAI,OAAI,EAAKkuP,iBAAiBluP,IACjDzQ,eAAgB,SAAA4vI,GACZ,IAII6rI,GAAc,GADd7rI,EAFAvmP,OAG4B,GAD5BumP,EADA95N,UAGMxJ,OAAO,QAASmvW,GAC1B,IAAInnT,EAAO,IAAIyB,KAAK,EAAKkkT,aACzB3lT,EAAKs/L,WAAW6nH,GAChBprH,EAAAA,cAAwB/7L,GACxB,EAAKhoD,OAAO,QAASgoD,KAE1B7sE,KAAK2zX,yBACD/yC,QAAQ,QAAS,YAE5B6yC,mBAAoB,WAAW,WACvBz8D,EAAclF,EAAAA,QAAAA,kBACL9xT,KAAKszX,UAAYtzX,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAS+R,SAvKzC,wBAuK4Ew0W,GAAAA,QAAW,CACzGvoX,MAAO,CAAC,CACJ9J,OAxKW,EAyKXe,KAAMq0T,EAAY,IACnB,CACCp1T,MA1KW,EA2KXe,KAAMq0T,EAAY,KAEtBhsP,UAAW,QACXz/C,YAAa,OACbigT,kBAAmB,SAAAxiN,GAAI,OAAI,EAAKkuP,iBAAiBluP,IACjDzQ,eAAgB,SAAAqwI,GACZ,IACWhnP,EACPgnP,EADAhnP,MAEAqlQ,EAAQ,EAAKurH,YAAYzzS,WACzBlS,EAAO,IAAIyB,KAAK,EAAKkkT,aACrBqB,GAAY5sH,EAAQ,GAAKrlQ,GAAS,GACtCirE,EAAKglC,SAASgiR,GACd,EAAKhvW,OAAO,QAASgoD,IAEzBjrE,MAAO5B,KAAKwyX,YAAYzzS,YAAc,GA1LvB,GADA,EA4LfhY,YAAa/mE,KAAK6kB,OAAO,kBAEtB+7T,QAAQ,QAAS,SAE5BszC,iBAAkB,WACd,IAAIl0X,KAAK6kB,OAAO,mBAAhB,CAGA,IAGI0B,EAHQvmB,KAAKwyX,YACCzzS,YACE,GArMD,GADA,EAwMnB/+E,KAAKm0X,yBAAyBn0X,KAAKszX,UAAW/sW,KAElD4tW,yBAA0B,SAAS3xW,EAAQ5gB,GACnC4gB,IACAA,EAAO4xW,6BACP5xW,EAAOqC,OAAO,QAASjjB,GACvB4gB,EAAO6xW,6BAGfV,oBAAqB,WACjB,MAAO,CACHW,iBAAiB,EACjBC,sBAAuB,SAAS3yX,GAC5B,OAAQA,EAAQ,GAAK,IAAM,IAAMA,GAErCmlE,YAAa/mE,KAAK6kB,OAAO,iBAGjC2vW,gBAAiB,SAASvtH,GACtB,OAAOjnQ,KAAK6kB,OAAO,mBAAqBoiP,EAAQA,EAAQ,IAAM,IAElEwtH,aAAc,WACV,IAAIxtH,EAAQjnQ,KAAKw0X,gBAAgBx0X,KAAKwyX,YAAYzzS,YAClD/+E,KAAKm0X,yBAAyBn0X,KAAKozX,SAAUnsH,GAC7CjnQ,KAAKm0X,yBAAyBn0X,KAAKqzX,WAAYrzX,KAAKwyX,YAAYxzS,cAChEh/E,KAAKk0X,oBAET7vU,YAAa,WACLrkD,KAAK6kB,OAAO,eACZ7kB,KAAK+yX,eAET/yX,KAAKy0X,gBAET3qI,mBAAoB,SAASjhP,GACrBA,GACA7I,KAAKqkD,eAGb63K,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,QACDxN,KAAKqkD,cACLrkD,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,eACD,MACJ,IAAK,kBACL,IAAK,aACL,IAAK,cACDxmB,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,aAAc8xW,IAChC,UC3QI3sW,IAASwoM,EAAAA,EAAAA,MAYTymK,GAA8B,gCAC9BC,GAA2BC,EAAAA,QAAyB,CACpD7/J,KAAM,mBACNo0J,kBAAmB,WACf,OAAOrgX,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B48I,eAAgB,aAChBG,gBAAiB,eACjB,6BAA6B,KAGrC4c,sBAAuB,WACnB,OAAOtiH,EAAAA,QAAAA,SAAmB5oQ,KAAK8qX,qBAAsB9qX,KAAK4oX,aAAa,WAE3EQ,iBAAkB,SAAS+B,GACvB,OAAOA,GAAiB,sBAE5B0J,gBAAiB,WACb,OAAO/iE,EAAAA,QAAAA,eAAgC9xT,KAAKopX,iBAAiBppX,KAAK2oX,QAAQ9jW,OAAO,oBAErFimW,mBAAoB,WAChB,IAAIgK,EAAW90X,KAAKuxN,WACpB,OAAOvxN,KAAK+0X,gBAAgBD,IAEhChM,cAAe,WACX9oX,KAAKuxN,WACLvxN,KAAKg1X,UAAYh1X,KAAK2oX,QAAQvhI,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAU0kX,GAAU,CACjExwX,MAAO5B,KAAKqqX,eACZiI,YAAatyX,KAAKi1X,gBAClB5C,gBAAiBryX,KAAK60X,kBACtBt8Q,eAAgBv4G,KAAKorX,qBAAqB3gX,KAAKzK,MAC/C+mE,YAAa/mE,KAAK2oX,QAAQ9jW,OAAO,iBAErC7kB,KAAKg1X,UAAU5lB,mBAAmB,SAAUpvW,KAAKqvW,eAAe5kW,KAAKzK,QAEzE0pX,kBAAmB,WACf1pX,KAAKuxN,WACL,IAAIp0E,EAAQn9I,KAAK6pX,YACb1sO,GACAA,EAAMg4E,WAAWqB,YAvCO,6BAuCoCx2N,KAAKk1X,kBAErEh3V,aAAal+B,KAAKm1X,eAClBn1X,KAAKm1X,cAAgBtyX,WAAW,WAC5B7C,KAAK6pX,aAAe7pX,KAAK6pX,YAAYvkW,WACvC7a,KAAKzK,MAAO,IAElB0qX,oBAAqB,WACjB,IAAI0K,EAAiBp1X,KAAKi1X,gBACtBI,EAAsBr1X,KAAKs1X,qBAC/B,OAAIF,IAAmBC,GACnBr1X,KAAKs1X,qBAAuBF,OACrB,IAAWC,GAEfr1X,KAAKuxN,YAEhB1zH,aAAc,SAAS03R,GACnB,IAAIrxV,EAAOlkC,KAAKqqX,eACXnmV,GAASqxV,IACVrxV,EAAO,IAAIoqC,KACXwgT,EAAAA,cAA0B5qV,IAE9BlkC,KAAKuxN,WACDvxN,KAAKg1X,YACL9wV,GAAQlkC,KAAKg1X,UAAUnwW,OAAO,QAASqf,GACvClkC,KAAKg1X,UAAUnwW,OAAO,kBAAmB7kB,KAAK60X,qBAGtDK,eAAgB,WACZ,OAAOp4O,EAAAA,EAAAA,IAASr3H,KArEO,KAuE3BwvW,cAAe,WACX,OAAQj1X,KAAK2oX,QAAQ9jW,OAAO,oBAAsB7kB,KAAK2oX,QAAQ9jW,OAAO,sBAAwB7kB,KAAKk1X,kBAEvGhC,aAAc,WACV,IAAIxnX,EAAQ,CAAC,CACT0sU,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV3qU,KAAM,aAUV,OARKxN,KAAKi1X,iBACNvpX,EAAM9K,KAAK,CACPw3U,MAAO,EACPC,OAAQ,EACRF,SAAU,OACV3qU,KAAM,SAGP9B,GAEXo+W,mBAAoB,WAChB9pX,KAAKuxN,WACLvxN,KAAKs1X,qBAAuBt1X,KAAKi1X,gBACjC,IAAIlL,EAAgB/pX,KAAK6pX,YAAYlwV,WACrC35B,KAAKw1X,KAAOx1X,KAAK2oX,QAAQvhI,kBAAiB15O,EAAAA,EAAAA,GAAE,SAASuqB,SAAS8xV,GAAgBtxC,GAAAA,EAAK,CAC/Ep9L,UAAW,MACXy8L,WAAY,UACZpsU,MAAO1L,KAAKkzX,eACZ3mW,aAAc,SAAS1e,EAAM9B,EAAGjM,GAC5B,IAAIynC,GAAa75B,EAAAA,EAAAA,GAAE,SACnB,OAAQG,EAAKL,MACT,IAAK,WACD+5B,EAAWxnB,OAAO/f,KAAK6oX,QAAQhvW,YAC3B7Z,KAAKi1X,kBACLj1X,KAAKg1X,UAAUn7W,WAAW4F,SAASi1W,IACnCntV,EAAWxnB,OAAO/f,KAAKg1X,UAAUn7W,aAErC,MACJ,IAAK,OACD0tB,EAAWxnB,OAAO/f,KAAKg1X,UAAUn7W,aACjCnM,EAAAA,EAAAA,GAAE5N,GAAS2f,SAASi1W,IAE5B,OAAOntV,GACT98B,KAAKzK,QAEXA,KAAKy1X,qBAET9L,YAAa,SAASlb,GAClB,IAAIinB,EAAsB11X,KAAKuxN,SAASk9I,GACxC,OAAO3lW,EAAAA,EAAAA,GAAO4sX,EAAqB,CAC/BpkX,MAAO,UAGf24W,qBAAsB,WAClB,OAAOjqX,KAAKg1X,UAAU5B,SAASv5W,WAAWwC,KAAK,UAEnDo5W,kBAAmB,WACf,IAAI9M,EAAU3oX,KAAK2oX,QACnB3oX,KAAKg1X,UAAU5B,SAAShkB,mBAAmB,OAAQ,SAAS5uW,GACpDA,EAAE2C,WACF3C,EAAE6G,iBACFshX,EAAQ5nX,aAIpBipX,qBAAsB,SAASxpX,IACtBkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmpN,SAAS,yBACtB/vN,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACrB/H,KAAK2oX,QAAQgN,kBACd31X,KAAK2oX,QAAQ5nX,UAIzBg0X,gBAAiB,SAAS7wV,GACtB,IAAI2oC,EAAO7sE,KAAKg1X,UAAUnwW,OAAO,SAEjC,OADAqf,EAAK2tE,SAAShlC,EAAKkS,WAAYlS,EAAKmS,aAAcnS,EAAKoS,aAAcpS,EAAKs8L,mBACnEjlO,GAEXtG,SAAU,WACN,IAAIg4V,EACA1xV,EAAO,QAAU0xV,EAAuB51X,KAAK6oX,QAAQhkW,OAAO,gBAAa,IAAW+wW,EAAuBA,EAAuB51X,KAAK6oX,QAAQt0B,mBAEnJ,OADArwT,EAAOA,EAAO,IAAIoqC,KAAKpqC,GAAQ,IAAIoqC,KAC5BtuE,KAAK+0X,gBAAgB7wV,IAEhC9lB,QAAS,WACL8f,aAAal+B,KAAK61X,sBAClB33V,aAAal+B,KAAKm1X,eAClBn1X,KAAKuxN,cAGb,wCC3KI9rM,IAASwoM,EAAAA,EAAAA,MAqBT6nK,GAAkB,CAClBhwW,IAAK,IAAIwoD,KAAK,EAAG,EAAG,EAAG,EAAG,GAC1B1oD,IAAK,IAAI0oD,KAAK,EAAG,EAAG,EAAG,GAAI,KAE3BynT,GAAerN,EAAAA,QAAwB,CACvC3zJ,KAAM,OACNs0J,cAAe,WACX,MAAO,CACHzgX,IAAK,WACD,MAGI5I,KAAK6kB,SAFGmxW,EADZ,EACIA,OACgB7nB,EAFpB,EAEIA,eAEA6nB,GAAU,cAAgB7nB,GAC1BnuW,KAAKknE,SAGbyyR,MAAO3nI,EAAAA,KACPp6E,KAAMo6E,EAAAA,KACN5+L,IAAK4+L,EAAAA,OAGbm3J,kBAAmB,WACf,OAAOrgX,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B48I,eAAgB,eAGxBib,iBAAkB,SAAS+B,GACvB,OAAOA,GAAiB,aAE5BxB,YAAa,SAASlb,GAClB,OAAOA,GAEX7wU,SAAU,WACN,IAAInP,EAAgBzuB,KAAK6oX,QAAQhkW,OAAO,iBACxC,IAAK,IAAM4J,EACP,OAAOzuB,KAAK2oX,QAAQ9jW,OAAO,SAE/B,IAAIgmD,EAAW7qE,KAAKi2X,aAAaxnW,GACjC,OAAOzuB,KAAKk2X,mBAAmBrrT,IAEnCy/S,wBAAyB,WACrB,OAAO,GAEXC,eAAgB,WACZ,OAAO,IAAIj8S,KAAK,OAEpB67S,oBAAqB,WACjBnqX,KAAK2oX,QAAQ5+H,qBAEjB++H,cAAe,WACX9oX,KAAKuxN,WACLvxN,KAAKm2X,iBAETlN,eAAgB,WACZ,OAAOmN,GAAAA,GAEXlN,kBAAmB,WACf,MAAO,CACH38V,aAAcvsB,KAAKq2X,sBAAsB5rX,KAAKzK,MAC9C05U,YAAa15U,KAAKs2X,sBAAsB7rX,KAAKzK,MAC7C8+I,UAAW,EACXm7M,qBAAsBj6V,KAAK48V,yBAAyBnyV,KAAKzK,MACzDs8M,cAAe,WAGvBsgJ,yBAA0B,SAASp8V,GAC/BR,KAAK2oX,QAAQ/nC,QAAQ,mBAAoB,IACzC5gV,KAAK2oX,QAAQ/nC,QAAQ,mBAAoBpgV,EAAEulP,cAE/CowI,cAAe,WACXn2X,KAAKi2X,aAAej2X,KAAKu2X,oBACzBv2X,KAAK6oX,QAAQhkW,OAAO,QAAS7kB,KAAKi2X,eAEtCvM,kBAAmB,WACV1pX,KAAK6oX,UAGV7oX,KAAK6oX,QAAQhkW,OAAO,iBAAkB,MACtC7kB,KAAKw2X,2BACDx2X,KAAK6oX,QAAQhkW,OAAO,iCACpB7kB,KAAKy2X,oBAAsB5zX,WAAW7C,KAAK02X,sBAAsBjsX,KAAKzK,OAEtEA,KAAK02X,0BAGbt4W,QAAS,WACLpe,KAAKuxN,WACLrzL,aAAal+B,KAAKy2X,sBAEtB54R,aAAc,WACL79F,KAAK6oX,UAGV7oX,KAAKm2X,gBACLn2X,KAAKw2X,2BACLx2X,KAAK02X,0BAETF,yBAA0B,WACtB,IAAI50X,EAAQ5B,KAAKqqX,eACbsM,EAAY32X,KAAK42X,cAAch1X,IAC9B,IAAM+0X,EACP32X,KAAK6oX,QAAQhkW,OAAO,gBAAiB,IAErC7kB,KAAK6oX,QAAQhkW,OAAO,gBAAiB8xW,IAG7CD,sBAAuB,WACnB12X,KAAK6oX,QAAQgO,aAAa72X,KAAK6oX,QAAQhkW,OAAO,mBAElD+xW,cAAe,SAAS1yV,GAEpB,IADA,IAAIr1B,GAAU,EACL9C,EAAI,EAAG2rD,EAAI13D,KAAKi2X,aAAa31X,OAAQyL,EAAI2rD,EAAG3rD,IACjD,GAAI/L,KAAK82X,eAAe5yV,EAAMlkC,KAAKi2X,aAAalqX,IAAK,CACjD8C,EAAS9C,EACT,MAGR,OAAO8C,GAEXioX,eAAgB,SAAS9sT,EAAOu6L,GAC5B,OAAO15C,EAAAA,EAAAA,IAAO7gJ,KAAU6gJ,EAAAA,EAAAA,IAAO05C,IAAWv6L,EAAM+U,aAAewlL,EAAOxlL,YAAc/U,EAAMgV,eAAiBulL,EAAOvlL,cAEtHu3S,kBAAmB,WACf,IAAIzwW,EAAM9lB,KAAK2oX,QAAQ9gC,WAAW,QAAU7nV,KAAK+2X,iBAAiB,OAC9DnxW,EAAM5lB,KAAK2oX,QAAQ9gC,WAAW,QAAU7nV,KAAK+2X,iBAAiB,OAC9Dn1X,EAAQ5B,KAAK2oX,QAAQ9gC,WAAW,UAAY,KAC5C7qU,EAAQ4I,EAAME,EACdqhP,EAAUrhP,EAAIk5D,aAAeh/E,KAAK2oX,QAAQ9jW,OAAO,YACrD,OAAI7H,EAAQ,EACD,IAEPA,EAAQ4rP,EAAAA,UACR5rP,EAAQ4rP,EAAAA,SAERhnQ,EAAQkkB,EAAM8iP,EAAAA,WAGlB9iP,EAAM9lB,KAAK+2X,iBAAiB,QACxB5qH,WAAWhF,GACXvlQ,GAAS+jB,KAAK23B,IAAI17C,EAAQgkB,GAAOgjP,EAAAA,UACjC5rP,GAAS,GAAK4I,EAAIm5D,WAAap5D,KAAK23B,IAAI13B,EAAIo5D,aAAemoL,IAAYyB,EAAAA,aALhE5oQ,KAAKg3X,eAAelxW,EAAK,IAAIwoD,KAAKxoD,GAAM9I,KASvDg6W,eAAgB,SAASxO,EAAY9tS,EAAcu8S,GAG/C,IAFA,IAAIC,EAAa,GACb1wH,EAAWxmQ,KAAK2oX,QAAQ9jW,OAAO,YAC5B61D,EAAe8tS,GAAcyO,GAChCC,EAAWt2X,KAAK,IAAI0tE,KAAKoM,IACzBA,EAAayxL,WAAWzxL,EAAasE,aAAewnL,GAExD,OAAO0wH,GAEXH,iBAAkB,SAAS7xW,GACvB,IAAIiyW,EAAgBrB,GAAgB5wW,GAChCw1D,EAAe,IAAIpM,MAAKkxL,EAAAA,EAAAA,eAAcx/P,KAAK2oX,QAAQ9gC,WAAW,SAAU,IAC5E,OAAO,IAAIv5Q,KAAKoM,EAAamE,cAAenE,EAAaiE,WAAYjE,EAAakE,UAAWu4S,EAAcp4S,WAAYo4S,EAAcn4S,eAEzIq3S,sBAAuB,SAASxrT,GAC5B,IAAIsgT,EAAgBnrX,KAAK2oX,QAAQ9jW,OAAO,iBACxC,OAAOitS,EAAAA,QAAAA,OAAwBjnP,EAAU7qE,KAAKopX,iBAAiB+B,KAEnEmL,sBAAuB,SAAS91X,GAC5B,GAAI,eAAiBR,KAAK2oX,QAAQ9jW,OAAO,kBAAzC,CAGA,IAAIqf,EAAOlkC,KAAKk2X,mBAAmB11X,EAAEqqE,UACrC7qE,KAAK2oX,QAAQ9jW,OAAO,UAAU,GAC9B7kB,KAAKqqX,aAAanmV,EAAM1jC,EAAEga,SAE9B07W,mBAAoB,SAASrrT,GACzB,IAAI3mC,EAAOlkC,KAAK2oX,QAAQ9jW,OAAO,SAC3BoiP,EAAQp8L,EAASkU,WACjBooL,EAAUt8L,EAASmU,aACnBooL,EAAUv8L,EAASoU,aACnB6lL,EAAOj6L,EAASgU,cAChB+lL,EAAQ/5L,EAAS8T,WACjB+lL,EAAM75L,EAAS+T,UAgBnB,OAfI16C,IAEIA,EADAlkC,KAAK2oX,QAAQ9jW,OAAO,2BACb88T,EAAAA,EAAAA,gBAAkCz9S,GAElC,IAAIoqC,KAAKpqC,IAEf2tE,SAASo1J,GACd/iO,EAAKioO,WAAWhF,GAChBjjO,EAAKosT,WAAWlpF,GAChBljO,EAAK0iO,YAAY9B,GACjB5gO,EAAKgiO,SAAStB,GACd1gO,EAAKiiO,QAAQzB,IAEbxgO,EAAO,IAAIoqC,KAAKw2L,EAAMF,EAAOF,EAAKuC,EAAOE,EAAS,EAAG,GAElDjjO,GAEXolV,oBAAqB,WACjB,OAAOtpX,KAAK6oX,SAEhBuO,mBAAoB,WAChB,IAAIC,GAAwBC,EAAAA,GAAAA,GAAat3X,KAAK2oX,QAAQ9jW,OAAO,2BAC7D,QAAI,IAAWwyW,GAAyB,SAAWA,EAAuB,CACtEr3X,KAAK2oX,QAAQ4O,gBAAgB,SAAU,QACvC,IAAIC,GAAch/J,EAAAA,EAAAA,IAAex4N,KAAK6oX,QAAQhvW,YAC1C6L,EAAY,KAAMm3H,EAAAA,EAAAA,IAAUp3H,IAChCzlB,KAAK2oX,QAAQ4O,gBAAgB,SAAU5xW,KAAKG,IAAI0xW,EAAa9xW,IAEjE1lB,KAAK2oX,QAAQ8O,WAAaz3X,KAAK2oX,QAAQ8O,UAAUC,oBAErDlO,cAAe,SAAS7mX,EAAMm2B,GAC1B,IAAIl3B,EAAQ5B,KAAKuxN,SAAS5uN,EAAMm2B,GAIhC,OAHIl3B,IACAA,EAAQgnQ,EAAAA,WAAqBhnQ,EAAO,IAAI0sE,KAAK,MArNvC,SAuNH1sE,KAGf,MCjPI6jB,IAASwoM,EAAAA,EAAAA,MA+BT0pK,GAAgB,aAIhBC,GAAwB,qBAExBC,GAAc,CACdhxC,SAAU,WACVixC,QAAS,UACT52T,KAAM,OACN62T,OAAQ,UAERtJ,GAAO,CACPvqV,KAAM,OACNojV,SAAU,WACVz6S,KAAM,QAENmrT,GACU,WADVA,GAEU,WAFVA,GAGQ,SAHRA,GAIkB,mBAJlBA,GAKM,OAENC,GAAmB,CACnBruC,SAAUA,EACV+kC,SAAUA,GACVuJ,OAAQA,GACRC,iBAAkBA,GAClB/B,KAAMA,IAENgC,GAAUxqB,EAAAA,EAAAA,QAAuB,CACjCtjB,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAYvxN,KAAKwxN,UAAU63J,kBAElDgP,wBAAyB,WACrBr4X,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKwxN,UAAU+3J,oBAEnB92J,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B5tM,KAAM,OACN20W,iBAAiB,EACjB12X,MAAO,KACPkoV,6BAAyB,EACzBhkU,SAAK,EACLF,SAAK,EACLulW,cAAe,KACf3kH,SAAU,GACVm5E,cAAe,KACf44C,WAAYV,GAAYhxC,SACxB2xC,mBAAoBr7D,EAAAA,EAAAA,OAA2B,iCAC/Cs7D,sBAAuBt7D,EAAAA,EAAAA,OAA2B,oBAClDu0D,gBAAiBv0D,EAAAA,EAAAA,OAA2B,MAC5Cu7D,mBAAmB,EACnBnN,gBAAiB,GACjBoN,wBAAwB,EACxBC,qBAAqB,KAG7Bh2I,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,OAEdvkH,QAAS,CACL,6BAA6B,IAElC,CACCgkO,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLk0V,gBAAiB,iBAEtB,CACClwH,OAAQ,WACJ,IACIz/G,EADawpG,EAAAA,QAAAA,OACSxpG,SAC1B,MAAO,QAAUA,GAAY,YAAcA,GAE/CvkH,QAAS,CACLm+W,WAAYV,GAAYE,SAE7B,CACC35I,OAAQ,CACJz/G,SAAU,UACVypG,WAAY,WAEhBhuN,QAAS,CACLk0V,gBAAiB,oBAI7BjqH,aAAc,SAASjqO,GACnBpa,KAAK8jW,cAAeh7V,EAAAA,EAAAA,GAAO,GAAIsR,GAC/Bpa,KAAKuxN,SAASn3M,GACdpa,KAAK64X,wBAETA,qBAAsB,WAClB,IAAIN,EAAav4X,KAAK6kB,OAAO,cACzBlB,EAAO3jB,KAAK6kB,OAAO,QACnB0zW,IAAeV,GAAY32T,MAASv9C,IAAS8qW,GAAKnH,UAAY3jW,IAAS8qW,GAAKvqV,OAC5Eq0V,EAAaV,GAAYhxC,UAEzBljU,IAAS8qW,GAAK5hT,MAAQ0rT,IAAeV,GAAYhxC,WACjD0xC,EAAaV,GAAY32T,MAE7BlhE,KAAK6kB,OAAO,qBAAsB,YAAcsjN,EAAAA,QAAAA,OAAexpG,UAAY45P,IAAeV,GAAYE,QACtG/3X,KAAK84X,YAAcP,GAEvB/lT,MAAO,WACHxyE,KAAK+4X,gBACL/4X,KAAK6kB,QAAO/b,EAAAA,EAAAA,GAAO,GAAI9I,KAAKwxN,UAAU23J,oBAAqBnpX,KAAK8jW,sBACzD9jW,KAAK8jW,aACZ9jW,KAAKuxN,YAETynK,wBAAyB,SAAS3qR,GAC9B,OAAOA,EAAOnpB,OAAO,GAAGjiD,cAAgBorE,EAAO19F,OAAO,IAE1DooX,cAAe,WACX,IAAIhsC,EAAe/sV,KAAKi5X,iBAAiBj5X,KAAKk5X,kBAC1C5nK,EAAW2mK,GAAiBlrC,GAC1B/sV,KAAKwxN,WAAaxxN,KAAKwxN,UAAUuD,OAASg4H,IAC5C/sV,KAAKwxN,UAAY,IAAIF,EAAStxN,QAGtCk5X,eAAgB,WACZ,IAAIjmR,EAAcjzG,KAAK6kB,OAAO,QAC1Bs0W,EAAS,SAASj2V,KAAK+vE,GAEvBtvF,EAAO,GAOX,MARa,SAASuf,KAAK+vE,KAGvBtvF,GAAQ8qW,GAAKvqV,MAEbi1V,IACAx1W,GAAQ8qW,GAAK5hT,MAEVlpD,GAEXs1W,iBAAkB,SAASt1W,GACvB,IAAI40W,EAAav4X,KAAK84X,YACtB,OAAIP,IAAeV,GAAYC,QACpBE,GACAO,IAAeV,GAAYE,OAC3BC,GAEPr0W,IAAS8qW,GAAKvqV,KACP8zV,GAEPr0W,IAAS8qW,GAAKnH,SACP0Q,GAEJA,IAEXvtI,YAAa,WACTzqP,KAAK6Z,WAAW4F,SAASk4W,IACzB33X,KAAKuxN,WACLvxN,KAAKo5X,sBACLp5X,KAAKq5X,0BACLr5X,KAAKwxN,UAAUi4J,kBAAkBzpX,KAAK63F,WAE1CikI,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKs5X,yBAETzuI,kBAAmB,WACf7qP,KAAKuxN,WACLvxN,KAAK6Z,WAAW28M,YAvKE,iBAuKgCx2N,KAAK6kB,OAAO,UAC9D7kB,KAAKu5X,oBACLv5X,KAAKo3X,sBAETrtI,kBAAmB,WACf/pP,KAAKuxN,WACLvxN,KAAKo3X,sBAETA,mBAAoB,WAEZ,IAAIoC,EAAuBC,EAD3Bz5X,KAAK8uW,SAEL,QAAU0qB,GAAyBC,EAAkBz5X,KAAKwxN,WAAW4lK,0BAAuB,IAAWoC,GAAiCA,EAAsB/4X,KAAKg5X,KAG3KL,oBAAqB,WACjB,IAAIv/W,EAAW7Z,KAAK6Z,YACpBY,EAAAA,EAAAA,IAAKg0W,IAAO,SAAS/zW,EAAGxa,GACpB2Z,EAASge,YAAY8/V,cAAsBz3X,MAE/C2Z,EAAS4F,SAASk4W,cAAsB33X,KAAK6kB,OAAO,UAExDw0W,wBAAyB,WACrB,IAAIx/W,EAAW7Z,KAAK6Z,YACpBY,EAAAA,EAAAA,IAAKo9W,IAAc,SAASn9W,EAAGxa,GAC3B2Z,EAASge,YAAY8/V,cAAsBz3X,MAE/C2Z,EAAS4F,SAASk4W,cAAsB33X,KAAK84X,cAEjDQ,sBAAuB,WACnB,IAAKh9J,EAAAA,EAAAA,MAAL,CAGA,IAAIo9J,EAAe15X,KAAK63F,SAASh4E,IAAI,GACjCk2P,EAAe/1Q,KAAK6kB,OAAO,cAC3B80W,EAAmB35X,KAAK45X,uBACxBC,EAA2B75X,KAAK85X,+BAChCC,EAAWpkV,WAAWlwB,GAAO88G,iBAAiBm3P,GAAcpoX,OAASqoX,EACrEK,EAA2BH,EAAyBvoX,MAAQyoX,EAC5D97W,EAAQy7W,EAAaz7W,MACzBje,KAAK6Z,WAAW28M,YA7MK,yBA6MgCwjK,GAA4Bh6X,KAAK6kB,OAAO,wBACzFm1W,QACI,IAAWh6X,KAAKi6X,iBAChBj6X,KAAKi6X,eAAiBlkH,EAAe8jH,EAAyBK,YAAcL,EAAyBM,cAEzGpkH,EAAe93P,EAAMu7B,YAAc,EAAIv7B,EAAM07B,aAAe,GAE5Do8N,EAAe93P,EAAMu7B,YAAcx5C,KAAKi6X,eAAiB,KAAOh8W,EAAM07B,aAAe35C,KAAKi6X,eAAiB,OAGnHL,qBAAsB,WAClB,IAAID,EAAmB,EACvB,GAAI35X,KAAKo6X,yBAA2B,KAAOp6X,KAAK63F,SAAS9zE,MAAO,CAC5D,IAAIs2W,EAAqBr6X,KAAK6Z,WAAWwC,KAAK,yBAA6BwD,IAAI,GAC/E85W,EAAmBhkV,WAAWlwB,GAAO88G,iBAAiB83P,GAAoB/oX,OAE9E,OAAOqoX,GAEXG,6BAA8B,WAC1B,IAAIhhW,EAAS94B,KAAKwxN,UAAU43J,iBAAiBppX,KAAK6kB,OAAO,kBACrDy1W,EAAexoE,EAAAA,QAAAA,OAAwBg9D,EAAAA,eAA2Bh2V,EAAQg5R,EAAAA,QAAAA,gBAAkCA,EAAAA,QAAAA,eAAiCh5R,GAC7Ii/E,EAAS/3G,KAAK63F,SACd6hS,EAAe3hR,EAAOl4F,IAAI,GAC1B06W,GAAuBvqH,EAAAA,EAAAA,IAA4Bj4J,EAAQuiR,GAE3DE,OADkB,IAAWx6X,KAAKi6X,eACKj6X,KAAKi6X,eAAT,EACvCM,EAAqBtiW,SAASj4B,KAAK6Z,YACnC,IAAI4+M,EAAe9iL,WAAWlwB,GAAO88G,iBAAiBg4P,EAAqB16W,IAAI,IAAIvO,OAC/E6oX,EAAexkV,WAAWlwB,GAAO88G,iBAAiBm3P,GAAc//U,cAChEugV,EAAcvkV,WAAWlwB,GAAO88G,iBAAiBm3P,GAAclgV,aAC/DihV,EAAiBhiK,EAAeyhK,EAAcC,EAAeK,EAEjE,OADAD,EAAqB/4X,SACd,CACH8P,MAAOmpX,EACPP,YAAaA,EACbC,aAAcA,IAGtBlrC,sBAtNiC,WAuN7B,OAAOjvV,KAAKuxN,WAAW31L,OAAO,CAAC57B,KAAKwxN,WAAaxxN,KAAKwxN,UAAU83J,yBAEpEoR,aAAc,WACV16X,KAAKuxN,WACLvxN,KAAK8uW,OAAO35I,WAAW11M,SAASm4W,IAChC53X,KAAK26X,uBAETnP,sBA9NiC,WA+N7B,IAAIoP,EAAuBC,EAAwBC,EAC/CC,EAAe/6X,KAAKuxN,WACxB,OAAO,QAAUqpK,EAAwB,QAAUC,GAA0BC,EAAmB96X,KAAKwxN,WAAWg6J,6BAA0B,IAAWqP,OAAyB,EAASA,EAAuBp6X,KAAKq6X,EAAkBC,UAAkB,IAAWH,EAAwBA,EAAwBG,GAEtTtsB,aAAc,WACV,IAAIkb,EAAc3pX,KAAKuxN,WACvB,OAAOzoN,EAAAA,EAAAA,GAAO9I,KAAKwxN,UAAUm4J,YAAYA,GAAc,CACnD/9V,MAAO5rB,KAAKg7X,iBACZrvO,aAAa,KAGrBgvO,oBAAqB,WACjB,GAAK36X,KAAK8uW,OAAV,CAGA,IAAIj1V,EAAW7Z,KAAK6Z,WAChBohX,GAAiBnyX,EAAAA,EAAAA,GAAO,GAAI2lX,GAAMoJ,KACtCp9W,EAAAA,EAAAA,IAAKwgX,EAAgB,SAASvgX,EAAGxa,GAC7B2Z,EAASge,YAAY+/V,sBAA8B13X,IACrDuK,KAAKzK,OACPA,KAAK8uW,OAAO35I,WAAW11M,SAASm4W,sBAA8B53X,KAAK6kB,OAAO,SAASpF,SAASm4W,sBAA8B53X,KAAK84X,aAAar5W,SA7QjH,+BA+Q/By7W,oBAAqB,WACjBl7X,KAAKuxN,WACLvxN,KAAKwxN,UAAUs4J,sBAEnB9b,sBAAuB,WACnB,OAAOhuW,KAAKwxN,UAAUy4J,wBAA0BjqX,KAAKuxN,YAEzDw8I,qBAAsB,WAClB,OAAO/tW,KAAKwxN,UAAU04J,uBAAyBlqX,KAAKuxN,YAExD4pK,qBAAsB,WAClBn7X,KAAKuxN,WACLvxN,KAAKwxN,UAAU24J,uBAEnBiR,mBAAoB,WAChBp7X,KAAKuxN,WACLvxN,KAAKwxN,UAAUk4J,qBAEnB2R,oBAAqB,WACjBr7X,KAAKuxN,WACLvxN,KAAKwxN,UAAUk4J,oBACf1pX,KAAKwxN,UAAU44J,sBAEnBtgI,mBAAoB,SAASjhP,GACrBA,GACA7I,KAAKs5X,yBAGbgC,mBAAoB,SAAS96X,GACzBR,KAAK6kB,OAAO,OAAQ,IACpB7kB,KAAKuxN,SAAS/wN,IAElB+6X,mBAAoB,WAChB,GAAIv7X,KAAK84X,cAAgBjB,GAAYC,QACjC,OAAO,EAEX,IAAIn5P,EAAWwpG,EAAAA,QAAAA,OAAexpG,SAE9B,OAD4B3+H,KAAK6xX,kBAAoB,QAAUlzP,GAAY,YAAcA,GAE9E3+H,KAAK6kB,OAAO,YAEhB7kB,KAAKuxN,YAEhB6oK,sBAAuB,WACnB,OAAOp6X,KAAKuxN,aAAevxN,KAAK6xX,iBAEpCvxC,aAAc,WACV,IAAI1+U,EAAQ5B,KAAK6nV,WAAW,SAG5B,OAFA7nV,KAAK6kB,OAAO,OAAQ7kB,KAAKw7X,kBAAkB55X,IAC3C5B,KAAKwxN,UAAUi5J,cACRzqX,KAAKuxN,YAEhB8gI,gBAAiB,WACb,IAAIzwV,EAAQ5B,KAAK6nV,WAAW,SACxBiC,EAA0B9pV,KAAK6kB,OAAO,2BACtC42W,EAAe3M,EAAAA,mBAA+B9uX,KAAK6kB,OAAO,SAC1D62W,EAAc5xC,EAA0BnI,EAAAA,EAAAA,cAAgC//U,EAAOkoV,GAA2BglC,EAAAA,qBAAiCltX,EAAO65X,GACtJz7X,KAAKsyV,oBAAoBvuU,IAAI23W,IAEjCF,kBAAmB,SAAS55X,GACxB,IACI+5X,EADAt3T,EAAOrkE,KAAK6kB,OAAO,QAEvB,GAAI,SAAWw/C,EAAM,CACjB,IAAI8mT,EAAgBnrX,KAAKwxN,UAAU43J,iBAAiBppX,KAAK6kB,OAAO,kBAChE82W,EAAgB7pE,EAAAA,QAAAA,OAAwBlwT,EAAOupX,OAC5C,CACH,IAAIryV,EAAS94B,KAAK47X,iBAAiBv3T,GAE/Bs3T,EADA7iW,EACgBg5R,EAAAA,QAAAA,OAAwBlwT,EAAOk3B,GAE/Bg2V,EAAAA,qBAAiCltX,EAAOyiE,GAGhE,OAAOs3T,GAEXC,iBAAkB,SAASv3T,GACvB,OAAOqwE,EAAAA,EAAAA,WAAUrwE,GAAQ,KAAOyqT,EAAAA,YAAwBzqT,IAE5DssS,yBAA0B,SAASnwW,GAC/B,MAIIR,KAAK6kB,SAHCliB,EADV,EACIA,KACMghB,EAFV,EAEIA,KACiB++R,EAHrB,EAGIA,gBAEAhoO,EAAe16E,KAAK6nV,WAAW,SACnC,GAAIllV,IAAS3C,KAAKw7X,kBAAkB9gT,GAApC,CAIA,IAAIw2O,EAAalxT,KAAK67X,eAAel5X,GACjCf,EAAQ,OAAS84E,QAAgB,IAAWA,EAAeA,EAAe16E,KAAK87X,oBAC/Ev1W,EAAWuoW,EAAAA,WAAuBltX,EAAOsvT,EAAYvtS,GACrDugB,EAAOgtR,GAAc,SAAWvtS,EAAO4C,EAAW2qS,EACtD,GAAIlxT,KAAK+7X,yBAAyB73V,GAAMhU,QAAS,CAC7C,IAAIyrW,EAAgB37X,KAAKw7X,kBAAkBj1W,GACvC3kB,GAAS2kB,GAAY3kB,EAAMqiQ,YAAc19O,EAAS09O,WAAa03H,IAAkBh5X,EACjF3C,KAAKsgV,eAELtgV,KAAKgoV,UAAUzhU,EAAU/lB,SAZ7BR,KAAKg8X,0BAA0BthT,EAAcgoO,IAgBrDs5E,0BA3ViC,SA2VPp6X,EAAO8gT,GACxBA,IAAmBA,EAAgBu5E,iBACpCj8X,KAAK+7X,yBAAyBn6X,GAC9B5B,KAAKk8X,uBAAuBt6X,KAGpCk6X,kBAAmB,WACf,OAAO97X,KAAKwxN,UAAU84J,2BAA6BtqX,KAAKwxN,UAAU+4J,kBAEtEsR,eAAgB,SAASl5X,GACrB,IAAIwoX,EAAgBnrX,KAAKwxN,UAAU43J,iBAAiBppX,KAAK6kB,OAAO,kBAC5Ds3W,EAAan8X,KAAKwxN,UAAUg4J,cAAc7mX,EAAMwoX,GACpD,OAAO,OAASgR,QAAc,IAAWA,EAAaA,OAAa,GAEvEJ,yBAzWiC,SAyWRn6X,GACrB,IACI0iX,IADOtkX,KAAK6kB,OAAO,SACC,OAASjjB,EAC7BipN,IAAWjpN,IAASw6X,EAAAA,EAAAA,IAAWx6X,KAAW4nC,MAAM5nC,EAAMqiQ,WACtDo4H,EAAgBxxK,GAAU+9C,EAAAA,QAAAA,YAAsBhnQ,EAAO5B,KAAK6nV,WAAW,OAAQ7nV,KAAK6nV,WAAW,OAAQ7nV,KAAK6kB,OAAO,SACnHqL,GAAWo0V,IAAY1iX,GAASy6X,EAChCC,EAAoB,GAOxB,OANKzxK,EAEOwxK,IACRC,EAAoBt8X,KAAK6kB,OAAO,0BAFhCy3W,EAAoBt8X,KAAK6kB,OAAO,sBAIpC7kB,KAAKu8X,+BAA+BrsW,EAASosW,GACtC,CACHpsW,QAASA,EACT26L,OAAQA,IAGhB0xK,+BA3XiC,SA2XFrsW,EAASosW,GACpCt8X,KAAK6kB,OAAO,CACRqL,QAASA,EACTwyR,gBAAiBxyR,EAAU,KAAO,CAC9B+rW,gBAAgB,EAChBxwV,QAAS6wV,MAIrBJ,uBAAwB,SAASt6X,GAC7B5B,KAAKg1V,kBAAkBj3G,KAAK,CACxBv7N,OAAQxiB,KACR4B,MAAO5B,KAAKw8X,eAAe56X,MAGnC66X,gBAAiB,SAASl2W,GACtB,IAAIuvB,EAAW91C,KAAK6nV,WAAW,SAG/B,OAFc/xS,GAAYA,EAASmuN,cACrB19O,GAAYA,EAAS09O,YAGvCy4H,eAAgB,SAASn2W,GAGrB,OAFcvmB,KAAK6kB,OAAO,WACZ0B,GAAYvmB,KAAKw7X,kBAAkBj1W,IAAa,KAGlEo2W,aAAc,WACV38X,KAAKuxN,WACLvxN,KAAK63F,SAASj4E,KAAK,eAAgB,QAEvCg9W,mBAAoB,WACX58X,KAAK6xX,iBACN7xX,KAAKuxN,WAELvxN,KAAKwxN,UAAUk5J,uBACf1qX,KAAK68X,oBAGb7B,eAAgB,WACZ,IAAIpiW,EAAc54B,KAAK6kB,OAAO,eAC9B,GAAI+T,EACA,OAAOA,EAEX,IAAIjV,EAAO3jB,KAAK6kB,OAAO,QACvB,OAAIlB,IAAS8qW,GAAK5hT,KACPswP,EAAAA,EAAAA,OAA2B,0CAElCx5S,IAAS8qW,GAAKvqV,MAAQvgB,IAAS8qW,GAAKnH,SAC7BnqD,EAAAA,EAAAA,OAA2B,0CAE/B,IAEX0/D,iBAAkB,WACd78X,KAAKwxN,UAAUpzM,UACfpe,KAAK+4X,gBACL/4X,KAAK6kB,OAAO7kB,KAAKwxN,UAAU23J,qBAC3BnpX,KAAK4rP,YAETwkH,oBAAqB,SAAS5vW,GAC1B,IAAIoB,EAAQ5B,KAAKwxN,UAAU5zL,WAC3B59B,KAAKgoV,UAAUpmV,EAAOpB,EAAEga,OACxBxa,KAAKuxN,YAET8K,SAAU,WACN,IAAIygK,EACJ98X,KAAKuxN,WACL,QAAUurK,EAAmB98X,KAAKwxN,iBAAc,IAAWsrK,GAA4BA,EAAiB1+W,WAE5GyzW,cAAe,WACX,OAAO7xX,KAAK84X,cAAgBjB,GAAYE,QAE5CgF,kBAAmB,WACf,IAAIC,EACJ,QAAUA,EAAeh9X,KAAK8uW,cAAW,IAAWkuB,GAAwBA,EAAan4W,OAAO,QAAS7kB,KAAKg7X,mBAElH9+J,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,kBACL,IAAK,UAiDL,IAAK,UAQL,IAAK,WACDxN,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKs5X,wBACL,MAxDJ,IAAK,aACDt5X,KAAK64X,qBAAqB,CACtBN,WAAY/xW,EAAK5kB,QAErB5B,KAAK68X,mBACL78X,KAAKq5X,0BACLr5X,KAAK0rP,cACL,MACJ,IAAK,OACD1rP,KAAK64X,qBAAqB,CACtB//V,OAAQtS,EAAK5kB,QAEjB5B,KAAK68X,mBACL78X,KAAKo5X,sBACLp5X,KAAK26X,sBACL36X,KAAKs5X,wBACLt5X,KAAK69F,eACL,MACJ,IAAK,cACD79F,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK+8X,oBACL,MACJ,IAAK,MACL,IAAK,MACD,IAAI7sW,EAAUlwB,KAAK6kB,OAAO,WAC1B7kB,KAAK+7X,yBAAyB/7X,KAAK6nV,WAAW,UACzC33T,GACDlwB,KAAKk8X,uBAAuBl8X,KAAK6nV,WAAW,UAEhD7nV,KAAK0rP,cACL,MACJ,IAAK,0BACL,IAAK,WACL,IAAK,gBACL,IAAK,kBACD1rP,KAAK0rP,cACL,MACJ,IAAK,gBACD1rP,KAAK6kB,OAAO,OAAQ7kB,KAAKw7X,kBAAkBx7X,KAAK6nV,WAAW,WAC3D7nV,KAAKi9X,oBACL,MACJ,IAAK,OACDj9X,KAAKwxN,UAAUg5J,mBAAmBhkW,EAAK5kB,OACvC5B,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,MAKJ,IAAK,qBACD/H,KAAKs5X,wBACLt5X,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,MAKJ,IAAK,kBACD/H,KAAKu3X,gBAAgB,eAAgBv3X,KAAKwrX,yBAC1C,MACJ,IAAK,qBACL,IAAK,wBACL,IAAK,oBACL,IAAK,kBACL,IAAK,sBACD,MACJ,QACIxrX,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,aAGtCyjV,wBAAyB,WACrB,IAAI5pV,EAAQ5B,KAAK6kB,OAAO,SACxB,OAAI7kB,KAAK6kB,OAAO,6BAA8ByqD,EAAAA,EAAAA,WAASkrK,oBAC5Cx6O,KAAK6kB,OAAO,4BAEnBkgG,EAAAA,EAAAA,IAAUnjH,GACH,UAEN0oN,EAAAA,EAAAA,IAAS1oN,GAGP+/U,EAAAA,EAAAA,2BAA6C//U,QAHpD,GAKJi8F,aAAc,SAASj8F,GACnB5B,KAAKuxN,WACLvxN,KAAK+7X,yBAAyB,OAASn6X,QAAS,IAAWA,EAAQA,EAAQ5B,KAAK6nV,WAAW,WAE/FG,UAAW,SAASpmV,EAAO2gW,GACvB,IAAI26B,EAAiBl9X,KAAKy8X,gBAAgB76X,GAW1C,OAVIs7X,GAAkB36B,GAClBviW,KAAK0rV,sBAAsB6W,GAE1B26B,IACGl9X,KAAK08X,eAAe96X,GACpB5B,KAAK69F,aAAaj8F,GACX,KAAO5B,KAAK6kB,OAAO,SAC1B7kB,KAAKk8X,uBAAuBt6X,IAG7B5B,KAAK6nV,WAAW,QAASjmV,IAEpCimV,WAAY,SAAS7hG,EAAYpkP,GAC7B,GAAI,IAAMmG,UAAUzH,OAChB,OAAOqhV,EAAAA,EAAAA,gBAAkC3hV,KAAK6kB,OAAOmhO,IAEzDhmP,KAAK6kB,OAAOmhO,EAAYhmP,KAAKw8X,eAAe56X,KAEhD46X,eAAgB,SAASt4V,GACrB,IAAI8pO,EAAsBhuQ,KAAKwrV,0BAC/B,OAAO7J,EAAAA,EAAAA,cAAgCz9S,EAAM8pO,IAEjDmvH,YAAa,WACT,IAAIv7X,EAAQ5B,KAAK6kB,OAAO,SACxB7kB,KAAKuxN,WACD,OAAS3vN,GACT5B,KAAKk8X,uBAAuB,OAGpC3gW,MAAO,WACH,IAAI35B,EAAQ5B,KAAK6kB,OAAO,SACxB7kB,KAAKuxN,WACD,OAAS3vN,GACT5B,KAAK+7X,yBAAyB,SAI1C,6BCvmBIqB,GAAuB,cAEvBC,IAAY,EACZC,GAAcC,GAAAA,QAAoB,CAClCjzC,eADkC,SACnB9pV,GAAG,WACVg9X,EAAmBx9X,KAAKuxN,SAAS/wN,GACjCi9X,EAAsB,SAAAj9X,GACtB,IAAIk9X,EAAkBF,GAAiB/0F,EAAAA,EAAAA,kBAAiBjoS,IACxD,OAAOk9X,GAAmBA,EAAgB13W,MAAM,EAAM,CAACxlB,KAEvDm9X,EAAe,SAACn9X,EAAGo9X,GACnB,OAAI,EAAKC,0BAA0Br9X,GACxBi9X,EAAoBz3W,MAAM,EAAM,CAACxlB,IAEjCo9X,EAAY53W,MAAM,EAAM,CAACxlB,KAGxC,OAAOsI,EAAAA,EAAAA,GAAO,GAAI00X,EAAkB,CAChCzxP,IAAK,SAAAvrI,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GACtB,EAAKsjX,YAlBP,GAmBE,EAAKC,kBAAoBvjX,EAAMnT,qBAEnCs2S,UAAW,SAAAn9S,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GAC5B,EAAKsjX,YAAYT,IACjB,EAAKU,kBAAoBvjX,EAAMnT,qBAEnCuwI,KAAM,SAAAp3I,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GACvB,EAAKwjX,mBACLxjX,EAAMnT,qBAEV+rB,IAAK,SAAA5yB,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GACtB,EAAKyjX,kBACLzjX,EAAMnT,qBAEVykI,OAAQ,SAAAtrI,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GACzB,EAAK0jX,eAAe1jX,OAExBqxH,MAAO,SAAArrI,GAAC,OAAIm9X,EAAan9X,GAAG,WACxB,EAAK29X,oBAETxzC,UAAW,SAAAnqV,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GAC5B,EAAK4jX,gBAAgBf,IACrB7iX,EAAMnT,qBAEVkjV,WAAY,SAAA/pV,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GAC7B,EAAK4jX,gBA5CP,GA6CE5jX,EAAMnT,qBAEVujV,QAAS,SAAApqV,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GAC1B,EAAK6jX,oBAhDP,GAiDE7jX,EAAMnT,qBAEV0jV,UAAW,SAAAvqV,GAAC,OAAIm9X,EAAan9X,GAAG,SAAAga,GAC5B,EAAK6jX,oBAAoBhB,IACzB7iX,EAAMnT,wBAIlBw2X,0BAvDkC,SAuDRr9X,GACtB,IAAI89X,EAA0Bt+X,KAAK6kB,OAAO,WAAarkB,IAAM,IAAM,CAAC,YAAa,OAAO2F,SAAQsiS,EAAAA,EAAAA,kBAAiBjoS,IACjH,OAAQR,KAAKu+X,oBAAsBD,GAA2B99X,GAAKA,EAAE6c,QAEzEghX,oBA3DkC,SA2DdhgV,GAChBr+C,KAAKw+X,qBACL,IAAIC,EAAgBz+X,KAAK0+X,oBAAoB1+X,KAAK2+X,mBAE9C3hX,EADehd,KAAK0+X,sBACGD,EAC3Bz+X,KAAK4+X,eAAe5+X,KAAK2+X,mBACzB3+X,KAAK6+X,cAAc7hX,EAAQqhC,GAAM,IAErCo0K,mBAnEkC,WAoE9B,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3ButK,iBAAiB,EACjBC,eAAgB,IAAIzwT,KAAK,IAAK,EAAG,EAAG,EAAG,EAAG,MAGlD0wT,iBAzEkC,SAyEjBh4I,GACb,IACmB5uI,EAEf4uI,EAFA5uI,cACK+jG,EACL6qC,EADA7qC,IAEAn1M,EAAMoxG,EAAcvqG,MAAQuqG,EAAcpxG,IAC9C,MAAO,kBAAoBA,GAAO,IAAMA,EAAI1G,SAAW67M,KAAQsjG,EAAAA,EAAAA,qBAAoBrnM,IAEvF6mR,kBAjFkC,SAiFhBz+X,GACd,IAAI0+X,EACArxX,EAAO,QAAUqxX,EAAmB1+X,EAAE43G,qBAAkB,IAAW8mR,OAAmB,EAASA,EAAiBrxX,KACpH,OAAO,KAAO,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKvN,SAAW21C,SAASpoC,EAAM,KAE7FsxX,qBAAsB,WAClB,OAAOh3J,EAAAA,QAAAA,OAAeoU,SAE1B6iJ,iBAzFkC,SAyFjB5+X,EAAGwG,GAChB,IAAIq4X,EAAgBr/X,KAAK63F,SAAS9zE,MAClC/jB,KAAKs/X,iBAAiBt4X,GACtBxG,EAAE6G,iBACmBg4X,IAAkBr/X,KAAK63F,SAAS9zE,OACnC4xM,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,UAE1Dq/Q,iBAhGkC,SAgGjB12W,GAAG,WACZwG,EAAMxG,EAAE43G,cAAcpxG,IACtB6H,EAAS7O,KAAKuxN,SAAS/wN,GAC3B,OAAKR,KAAKu+X,oBAAsBv+X,KAAKm/X,yBAGjC/4J,GAAAA,QAAAA,QAAkB,YAAc5lO,EAAEwG,KAAO,IAAMxG,EAAE+iK,KAAKp9J,QAAQ,UAC9Da,EAAMxG,EAAE+iK,KAAK76G,QAAQ,QAAS,IAC9B1oD,KAAKs/X,iBAAiBt4X,GACtBhH,KAAKu/X,kBAAoB,WACrB,EAAKC,wBAEFx/X,KAAKg/X,iBAAiBx+X,IAC7BR,KAAKo/X,iBAAiB5+X,EAAE43G,cAAepxG,IAThC6H,GAaf4wX,wBAjHkC,SAiHVj/X,GAAG,WACvBR,KAAKu/X,kBAAoB,KACzB,IACe7qP,EACXl0I,EAAE43G,cADFs8B,UAEA,0BAA4BA,IAC5B10I,KAAKu/X,kBAAoB,WACrB,EAAKC,wBAGb,IAAIE,EAAqB,0BAA4BhrP,EAErD,GAAIgrP,GADoB,yBAA2BhrP,EACN,CACzC,IAAI2G,EAAYqkP,EAAqBrC,GAhInC,EAiIFr9X,KAAKu/X,kBAAoB,WACrB,EAAKzB,cACL,EAAKM,gBAAgB/iP,IAG7B,GAAKr7I,KAAKu+X,oBAAuBv+X,KAAKg/X,iBAAiBx+X,GAAvD,CAGA,IAAIwG,EAAMxG,EAAE43G,cAAcvqG,KAE1B,OADA7N,KAAKo/X,iBAAiB5+X,EAAGwG,IAClB,IAEX24X,iBA3IkC,SA2IjBn/X,GACb,IACmBga,EACfha,EADA43G,cAEA,2BAA6B,OAAS59F,QAAS,IAAWA,OAAQ,EAASA,EAAMk6H,YAAc10I,KAAKi/X,kBAAkBz+X,KACtHR,KAAKs/X,iBAAiB9kX,EAAM3M,MAC5B7N,KAAKymB,mBAAmBzmB,KAAKw7X,kBAAkBx7X,KAAK4/X,aACpD5/X,KAAKo+X,mBAETp+X,KAAKuxN,SAAS/wN,GACVR,KAAKu/X,oBACLv/X,KAAKu/X,oBACLv/X,KAAKu/X,kBAAoB,OAGjCD,iBA1JkC,SA0JjBt4X,GACThH,KAAK+9X,mBACL/9X,KAAK6/X,iBAAmB,GAE5B7/X,KAAKw+X,qBACDh1V,MAAMyM,SAASjvC,IACfhH,KAAK8/X,cAAc94X,GAEnBhH,KAAK+/X,cAAc/4X,IAG3B+2X,eArKkC,WAsK9B,IAAIxX,EAAQvmX,KAAKggY,SACjB,OAAOzZ,EAAMnzV,IAAMmzV,EAAM1qW,QAAU7b,KAAK6kB,OAAO,QAAQvkB,QAE3D2/X,kBAzKkC,WA0K9B,GAAIjgY,KAAKkgY,eACL,OAAOlgY,KAAKkgY,eAEhB,IAAIpnW,EAAS94B,KAAKwxN,UAAU43J,iBAAiBppX,KAAK6kB,OAAO,kBACrDs7W,GAAgB71K,EAAAA,EAAAA,IAASxxL,KAAYg5R,EAAAA,QAAAA,oBAAqCh5R,GAQ9E,OANI94B,KAAKkgY,eADLC,EACsBrnW,GAEAs7R,EAAAA,EAAAA,IAAW,SAASxyT,GACtC,OAAOkwT,EAAAA,QAAAA,OAAwBlwT,EAAOk3B,MAGvC94B,KAAKkgY,gBAEhB1B,mBAxLkC,WAyL9B,IAAKx+X,KAAK4/X,WAAY,CAClB,IAAIh+X,EAAQ,SAAW5B,KAAK6kB,OAAO,QAAU,IAAIypD,KAAK,MAAQ,IAAIA,KAClEtuE,KAAK4/X,WAAah+X,EAClB5B,KAAK2+X,kBAAoB/8X,EACzB5B,KAAKogY,qBAGbC,mBAhMkC,SAgMfz6W,GACf,IAAIsgW,EAAiBrgT,OAAOjgD,GAAKtlB,OAC7BggY,EAAetgY,KAAKugY,mBAAmB,WAAWjgY,OAElDkgY,EADgB,IAAMF,EACYpa,EAAiBvgW,KAAKG,IAAIw6W,EAAcpa,GAC1Eua,EAAmBzgY,KAAKywR,aAAanwR,SAAWkgY,EAChDE,EAAoBzqV,SAASj2C,KAAKywR,aAAe,KAAO7qQ,EAC5D,OAAO66W,GAAoBC,GAE/BX,cAzMkC,SAyMpB1kS,GACV,IACSz1E,EACL5lB,KAAK2gY,uBADL/6W,IAEAsgW,EAAiBrgT,OAAOjgD,GAAKtlB,OACjCN,KAAKywR,cAAgBzwR,KAAKywR,aAAep1L,GAAM1qF,QAAQu1W,GACnD18U,MAAMxpC,KAAKywR,gBACXzwR,KAAKywR,aAAep1L,GAExBr7F,KAAK4gY,oBAAoB5gY,KAAKywR,cAC1BzwR,KAAKqgY,mBAAmBz6W,IACxB5lB,KAAKo+X,gBAtNH,IAyNV0B,cAvNkC,SAuNpBzkS,GACV,GAAK7xD,MAAMyM,SAASj2C,KAAKugY,mBAAmB,UAA5C,CAMA,IAHA,IAAItkN,EAASj8K,KAAKugY,mBAAmB,SAAxBvgY,CAAkCA,KAAK4/X,YAChDiB,EAAc7gY,KAAKywR,aAAep1L,EAAKp4D,cACvC69V,EAAW7kN,EAAOr2J,IAAMq2J,EAAOn2J,IAC1B/Z,EAAI,EAAGA,GAAK+0X,EAAU/0X,IAG3B,GAFA/L,KAAK4+X,eAAe5+X,KAAK2+X,mBACzB3+X,KAAK6+X,cAAc9yX,EAAI,GACnB,IAAM/L,KAAKugY,mBAAmB,QAAQt9V,cAAc98B,QAAQ06X,GAE5D,YADA7gY,KAAKywR,aAAeowG,GAI5B7gY,KAAKw+X,qBACDx+X,KAAKywR,eACLzwR,KAAK+gY,oBACL/gY,KAAK8/X,cAAczkS,MAG3B0lS,kBA5OkC,WA6O9B/gY,KAAKywR,aAAe,IAExBqtG,YAAa,SAASziP,GAClB,IAAKr7I,KAAK+9X,iBAAkB,CACxB,IAAI9sE,EAASjxT,KAAK0+X,oBAAoB1+X,KAAK6kB,OAAO,mBAClD7kB,KAAK4gY,oBAAoB3vE,GACzBjxT,KAAKo+X,gBAAgB/iP,GAEzBr7I,KAAK+gY,qBAETxC,iBAvPkC,WAwP9B,OAAOv+X,KAAK6kB,OAAO,oBAAsB,SAAW7kB,KAAK6kB,OAAO,SAEpEm8W,mBA1PkC,WA2P9BhhY,KAAKihY,aAAc1pE,EAAAA,EAAAA,IAAcv3T,KAAKigY,oBAAqBnuE,EAAAA,SAC3D,IAAI+F,EAAS73T,KAAKihY,YAAYppE,OAC1BlqM,EAASkqM,EAAOlqM,OAChBpL,EAAQs1M,EAAOt1M,MACf2+Q,EAAmB,IAAIl4U,OAAO,wBAC9Bm4U,EAAkBxzQ,EAAOlgH,MAAMyzX,GAAkBh7X,KAAI,SAAAk7X,GAAU,OAAIF,EAAiBh+V,KAAKk+V,GAAcA,EAAa3uE,GAAAA,QAAAA,cAAiC2uE,GAAY,MAAQnwX,KAAK,IAClLjR,KAAKihY,YAAYppE,OAAS,IAAI7uQ,OAAOm4U,EAAiB5+Q,IAE1D8+Q,eAnQkC,WAoQ9BrhY,KAAK6/X,iBAAmB,EACxB7/X,KAAKkgY,eAAiB,KACtBlgY,KAAKghY,qBACLhhY,KAAK4+X,kBAET0C,YAzQkC,WA0Q9BthY,KAAKuxN,WACLvxN,KAAKuhY,oBACLvhY,KAAKwhY,kBACDxhY,KAAKu+X,qBACLv+X,KAAKyhY,oBACLzhY,KAAKqhY,iBACLrhY,KAAKogY,qBAGbA,iBAnRkC,WAoR9B,GAAKpgY,KAAKu+X,mBAAV,CAGA,IAAI57X,EAAO3C,KAAK6kB,OAAO,SAAW7kB,KAAKw7X,kBAAkBx7X,KAAK4/X,YAC1Dj9X,IACA3C,KAAK0hY,WAAavb,EAAgBxjX,EAAM3C,KAAKihY,aACxCjhY,KAAK63F,SAAS/9D,GAAG,YAClB95B,KAAKo+X,qBAIjBmD,kBA/RkC,WAgS9B5rK,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU,iBAEpC4pS,kBAlSkC,WAkSd,WAChB9rK,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,UAAWgvK,IAAuBp9X,KAAK2hY,kBAAkBl3X,KAAKzK,OAC1G21N,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,QAASgvK,IAAuBp9X,KAAK4hY,kBAAkBn3X,KAAKzK,OACxG21N,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,OAAQgvK,KAAuB,WACvE,EAAKoC,yBAET7pK,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,iBAAkBgvK,IAAuBp9X,KAAK6hY,2BAA2Bp3X,KAAKzK,OACtHA,KAAKm/X,wBACLxpK,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,cAAegvK,IAAuBp9X,KAAKy/X,wBAAwBh1X,KAAKzK,QAG5Hw/X,oBA7SkC,WA8S9Bx/X,KAAKymB,mBAAmBzmB,KAAKw7X,kBAAkBx7X,KAAK4/X,aACpD5/X,KAAKo+X,mBAETH,gBAjTkC,WAkT1Bj+X,KAAK6kB,OAAO,UACZ7kB,KAAK6/X,iBAAmB7/X,KAAK0hY,WAAWphY,OACxCN,KAAKo+X,gBAAgBf,MAG7BW,iBAvTkC,WAwT1Bh+X,KAAK6kB,OAAO,UACZ7kB,KAAK6/X,kBAAoB,EACzB7/X,KAAKo+X,gBA5TH,KA+TV0D,cA7TkC,SA6TpBthY,GACNR,KAAKu+X,oBACLv+X,KAAK6+X,cAAcr+X,EAAEwc,MAAQ,EAjU3B,EAiUyCqgX,GAAU78X,IAG7D49X,gBAlUkC,WAmU9B,IAAI//U,EAAOt2C,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,EAC5E,GAAK/H,KAAK6kB,OAAO,UAAW7kB,KAAK6kP,UAAjC,CAGIxmM,IACAr+C,KAAK2+X,kBAAoB,IAAIrwT,KAAKtuE,KAAK4/X,aAE3C,IAAI/+X,GAAQqyQ,EAAAA,EAAAA,IAAalzQ,KAAK6/X,iBAAmBxhV,EAAM,EAAGr+C,KAAK0hY,WAAWphY,OAAS,GACnF,GAAIN,KAAK0hY,WAAW7gY,GAAOylX,OAAQ,CAC/B,IAAIyb,EAAkB,IAAMlhY,GAASw9C,EAAO,GAAKx9C,IAAUb,KAAK0hY,WAAWphY,OAAS,GAAK+9C,EAAO,EAChG,IAAK0jV,EAED,YADA/hY,KAAKo+X,gBAAgB//U,GAAQ,EAAIA,EAAO,EAAIA,EAAO,GAGnDx9C,EAAQb,KAAK6/X,iBAGjB7/X,KAAK6/X,mBAAqBh/X,GAC1Bb,KAAK+gY,oBAET/gY,KAAK6/X,iBAAmBh/X,EACxBb,KAAKggY,OAAOhgY,KAAKugY,mBAAmB,YAExCyB,sBA1VkC,WA2V9B,GAAI,MAAQhiY,KAAKugY,mBAAmB,WAAW,GAC3C,MAAO,MAGfI,qBA/VkC,SA+VbsB,GAEjB,OADoBjiY,KAAKugY,mBAAmB,SACrC2B,CAAcliY,KAAK4/X,WAAYqC,GAAkBjiY,KAAKgiY,0BAEjEtD,oBAnWkC,SAmWd12C,GAChBA,EAAYA,GAAahoV,KAAK4/X,WAC9B,IAAIn8H,EAASzjQ,KAAKugY,mBAAmB,UACrC,OAAOrlT,EAAAA,EAAAA,IAAWuoL,GAAUA,EAAOukF,GAAaA,EAAUvkF,MAE9D0+H,kBAxWkC,SAwWhBvgY,GACd,IAAIwgY,EAASpiY,KAAKywR,aAAa9uQ,MAAM,OACjCs6J,EAASj8K,KAAK2gY,uBACdza,EAAiBrgT,OAAOo2G,EAAOr2J,KAAKtlB,OACxC,QAAS8hY,GAAUA,EAAO,IAAM,IAAMv8T,OAAOjkE,IAAQ+O,QAAQu1W,IAEjE0a,oBA9WkC,SA8Wdh/X,EAAOomV,GACvBA,EAAYA,GAAahoV,KAAK4/X,WAC9B,IAAIpZ,EAASxmX,KAAKugY,mBAAmB,UACjCtkN,EAASj8K,KAAK2gY,uBAClB/+X,GAAQyxQ,EAAAA,EAAAA,IAAQzxQ,EAAOq6K,EAAOn2J,IAAKm2J,EAAOr2J,KAAOhkB,EAAQA,EAAQ,GACjEA,EAAQ5B,KAAKmiY,mBAAkBjvH,EAAAA,EAAAA,IAAatxQ,EAAOq6K,EAAOn2J,IAAKm2J,EAAOr2J,OACtEs1D,EAAAA,EAAAA,IAAWsrS,GAAUA,EAAOx+B,EAAWpmV,GAASomV,EAAUw+B,GAAQ5kX,GAClE5B,KAAKymB,mBAAmBzmB,KAAKw7X,kBAAkBxzC,IAC/ChoV,KAAKogY,oBAETG,mBAxXkC,SAwXfttW,GACf,GAAKjzB,KAAK0hY,YAAe1hY,KAAK0hY,WAAW1hY,KAAK6/X,kBAG9C,OAAO7/X,KAAK0hY,WAAW1hY,KAAK6/X,kBAAkB5sW,IAElD2rW,eA9XkC,WA+X9B,IAAIh9X,EAAQmG,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAK6nV,WAAW,SAC7F7nV,KAAK4/X,WAAah+X,GAAS,IAAI0sE,KAAK1sE,GACpC5B,KAAK2+X,kBAAoB/8X,GAAS,IAAI0sE,KAAK1sE,IAE/CygY,eAnYkC,WAoY9B,IAAIzgY,EAAQ5B,KAAK4/X,YAAc,IAAItxT,KAAKtuE,KAAK4/X,YACzCh+X,GAAS,SAAW5B,KAAK6kB,OAAO,SAChCjjB,EAAMiwG,SAAS,EAAG,EAAG,EAAG,GAE5B7xG,KAAK2+X,kBAAoB,IAAIrwT,KAAK1sE,GAClC5B,KAAK6nV,WAAW,QAASjmV,IAE7Bs8X,eA3YkC,WA4Y9Bl+X,KAAK4+X,iBACL5+X,KAAKymB,mBAAmBzmB,KAAKw7X,kBAAkBx7X,KAAK4/X,aACpD5/X,KAAKogY,oBAET35W,mBAhZkC,SAgZf9jB,GACf3C,KAAKuxN,SAAS5uN,GACV3C,KAAKu+X,oBACLv+X,KAAK6kB,OAAO,OAAQliB,IAG5Bk8X,cAtZkC,SAsZpBxgV,EAAM4jV,GAChBjiY,KAAKw+X,qBACL,MAGIx+X,KAAK2gY,qBAAqBsB,GAFrBr8W,EADT,EACIA,IACKE,EAFT,EAEIA,IAEAw8W,EAAa18W,EAAME,EACnB,IAAMw8W,GACNA,IAEJ,IAAI/7W,EAAW83B,EAAOr+C,KAAK0+X,sBACvBn4W,EAAWX,EACXW,EAAWvmB,KAAKuiY,aAAah8W,EAAU,CACnCi8W,UAAW18W,EACX28W,aAAc78W,EACd08W,WAAYA,IAET/7W,EAAWT,IAClBS,EAAWvmB,KAAKuiY,aAAah8W,EAAU,CACnCi8W,UAAW58W,EACX68W,aAAc38W,EACdw8W,WAAYA,KAGpBtiY,KAAK4gY,oBAAoBr6W,IAE7Bg8W,aAhbkC,SAgbrBh8W,EAAU4hO,GACnB,IACeq6I,EAGXr6I,EAHAq6I,UACcC,EAEdt6I,EAFAs6I,aAGAzlX,GAASuJ,EAAWk8W,GADpBt6I,EADAm6I,WAGJ,OAAOtlX,EAAQwlX,EAAYxlX,EAAQ,GAAIw2C,EAAAA,EAAAA,IAAKx2C,GAASylX,GAEzDd,kBAzbkC,WA0b9B3hY,KAAK4+X,eAAe5+X,KAAK4/X,YACrB5/X,KAAK6kB,OAAO,UACZ7kB,KAAK6/X,iBbnUuB,SAAChvE,EAAW1qS,GAChD,IAAK,IAAIpa,EAAI,EAAGA,EAAI8kT,EAAUvwT,OAAQyL,IAAK,CACvC,IAAI22X,EAAe7xE,EAAU9kT,GAAGw6W,MAAMnzV,KAAOjN,EAC7C,IAAK0qS,EAAU9kT,GAAGu6W,QAAUoc,EACxB,OAAO32X,EAGf,OAAO,Ka4TyB42X,CAA2B3iY,KAAK0hY,WAAY1hY,KAAKggY,SAASnkX,OAC7E7b,KAAK+9X,oBACFp1U,EAAAA,EAAAA,IAAU3oD,KAAK6/X,kBACf7/X,KAAKggY,OAAOhgY,KAAKugY,mBAAmB,UAEpCvgY,KAAKi+X,qBAKrB4D,2BAtckC,SAscPrhY,GAAG,WAC1BR,KAAK63F,SAAS9zE,IAAI/jB,KAAKw7X,kBAAkBx7X,KAAK4/X,aAC9C5/X,KAAKo+X,kBACLp+X,KAAKu/X,kBAAoB,WACrB,EAAKC,wBAGboC,kBA7ckC,SA6chBphY,GACd,IAAI4gB,EAAUphB,KAAK4iY,qBAAqB5iY,KAAK6kB,OAAO,QAAS7kB,KAAKggY,UAAUlwH,EAAAA,EAAAA,IAActvQ,IACtF0jC,EAAO4tR,EAAAA,QAAAA,MAAuB1wS,EAASphB,KAAKigY,qBAC5C/7V,GAAQlkC,KAAK6iY,aAAa3+V,KAC1BlkC,KAAK4/X,WAAa17V,EAClBlkC,KAAKymB,mBAAmBzmB,KAAKw7X,kBAAkBx7X,KAAK4/X,aACpD5/X,KAAKogY,mBACLpgY,KAAKo+X,mBAET59X,EAAE6G,kBAENw7X,aAAc,SAAA3+V,GAAI,OAAI2mL,EAAAA,EAAAA,IAAO3mL,KAAUsF,MAAMtF,IAC7C4+V,cAzdkC,WA0d9B,IAAIlhY,EAAQ5B,KAAK6nV,WAAW,SAC5B,OAAQ7nV,KAAK4/X,YAAc5/X,KAAK4/X,WAAW37H,cAAgBriQ,GAASA,EAAMqiQ,YAE9E8+H,iBA7dkC,WA8d9B/iY,KAAK+gY,oBACD/gY,KAAK8iY,iBACLntK,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,WAG5CsmS,cAnekC,WAoe9Bn+X,KAAK+iY,mBACL/iY,KAAKo+X,gBAveC,IAyeV1qC,iBAvekC,SAuejBlzV,GACeR,KAAKu+X,qBAAuB/9X,EAAEi8R,sBAEtDz8R,KAAK+iY,mBACL/iY,KAAKuxN,SAAS/wN,GACdR,KAAKg+X,iBAAiBx9X,IAEtBR,KAAKuxN,SAAS/wN,IAGtBmwW,yBAjfkC,SAifTnwW,GACrB,IAAImC,EAAO3C,KAAK6kB,OAAO,QACnB7kB,KAAKu+X,oBACLv+X,KAAK0rV,sBAAsBlrV,GACtBmC,EAEM,OAAS3C,KAAK4/X,YACrB5/X,KAAK4+X,eAAej8X,GAFpB3C,KAAK4/X,WAAa,KAItB5/X,KAAKqiY,kBAELriY,KAAKuxN,SAAS/wN,IAGtB07N,eA/fkC,SA+fnB11M,GACX,OAAQA,EAAKhZ,MACT,IAAK,kBACDxN,KAAKshY,cACL,MACJ,IAAK,gBACL,IAAK,OACDthY,KAAKuxN,SAAS/qM,GACdxmB,KAAKshY,cACL,MACJ,IAAK,QACDthY,KAAK4+X,iBACL5+X,KAAKuxN,SAAS/qM,GACdxmB,KAAKogY,mBACL,MACJ,IAAK,iBACD,MACJ,QACIpgY,KAAKuxN,SAAS/qM,KAG1Bg7W,gBAphBkC,WAqhB9BxhY,KAAK+gY,2BACE/gY,KAAK0hY,kBACL1hY,KAAK6/X,wBACL7/X,KAAK4/X,YAEhBrkW,MA1hBkC,WA2hB9Bv7B,KAAKwhY,kBACLxhY,KAAK6/X,iBAAmB,EACxB7/X,KAAKuxN,YAETg6B,OA/hBkC,WAgiB9BvrP,KAAKuxN,WACLvxN,KAAKuhY,oBACLvhY,KAAKwhY,qBAGb,OC5kBAlhX,EAAAA,EAAAA,SAAkB,YAAag9W,IAC/B,ICFA,GDEA,sDEFA,IAAel1V,EAAf,iOCuCI84M,EAAmBtnB,EAAAA,EAAAA,iBAEnBopK,EAA0B,UAC1B3kJ,EAAalW,EAAAA,QAAAA,OACb86J,EAAcr1B,EAAAA,EAAAA,QAAuB,CACrCtjB,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO,GAAI9I,KAAKuxN,WAAY,CAC/B3oN,IAAK,SAASpI,GACV,GAAKR,KAAK6kB,OAAO,UAAjB,CAGA,IAAIq+W,EAAoBljY,KAAKmjY,uBACzBr1B,EAAoBttW,EAAE2C,SAAW+/X,EAAkB5mQ,OAAS4mQ,EAAkBl5T,QAClF8jS,GAAqBn4I,EAAAA,EAAAA,QAAqBm4I,EAAmB,SAC7DttW,EAAE6G,sBAId87X,qBAAsB,WAClB,OAAOnjY,KAAKojY,eAAex9X,OAAOy9X,EAAAA,KAEtCD,aAAc,WACV,OAAO11X,EAAAA,EAAAA,GAAE1N,KAAK8gB,WAAWzE,KAAK,MAElCo2M,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bn/G,mBAAmB,EACnBhsF,gBAAiB48W,EACjBvR,kBAAkB,EAClB8C,sBAAuB,SAAS3yX,GAC5B,OAAO2D,MAAMi2E,QAAQ55E,GAASA,EAAMqP,KAAK,MAAQrP,GAErD+2X,wBAAwB,KAGhCl9J,0BAA2B,WACvB,OAAOunK,GAEXtnK,eAAgB,WACZ17N,KAAKuxN,YAETk5B,YAAa,WACTzqP,KAAKsjY,uBACLtjY,KAAK6Z,WAAW4F,SA1CE,kBA2ClBzf,KAAKuxN,YAET8gI,gBAAiB,WACb,IAAIzwV,EAAQ5B,KAAK6kB,OAAO,SACpB62W,EAAc17X,KAAKujY,uBAAuB3hY,GAAS5B,KAAK26V,eAAe/4V,GAASA,EACpF5B,KAAKsyV,oBAAoBvuU,IAAI23W,IAEjC6H,uBAAwB,SAAS3hY,GAC7B,MAAO,SAAW5B,KAAK6kB,OAAO,eAAgBslM,EAAAA,EAAAA,IAASvoN,IAE3Dq7X,kBAAmB,WAAW,WAC1Bj9X,KAAKwjY,sBACL,IAAI5pX,EAAS,GACb,IAAK5Z,KAAK65R,YAEN,OADA75R,KAAKuxN,SAAS33M,IACN,IAAI44M,EAAAA,IAAUpiN,UAE1B,IAAIsqE,EAAe16E,KAAKyjY,mBACpB18X,EAAO,OAAS2zE,QAAgB,IAAWA,EAAeA,EAAe,GAC7E3zE,EAAOxB,MAAMi2E,QAAQz0E,GAAQA,EAAO,CAACA,GACrC,IAAI28X,GAAoBx9X,EAAAA,EAAAA,IAAIa,GAAM,SAAAC,GAC9B,IAAIgkC,EAAW,IAAIwnL,EAAAA,GAUnB,OATA,EAAKmxK,UAAU38X,GAAKo3D,QAAO,SAAAl+D,GACvB,IAAI6kB,EAAe,EAAK41U,eAAez6V,IACnCyoD,EAAAA,EAAAA,IAAU5jC,GACVnL,EAAOhZ,KAAKmkB,GACL,EAAKF,OAAO,sBACnBjL,EAAOhZ,KAAKoG,GAEhBgkC,EAAS56B,aAEN46B,KAEPumL,EAAWvxN,KAAKuxN,SAAS9mN,KAAKzK,MAClC,OAAOy6N,EAAAA,GAAAA,MAAWz6N,KAAM0jY,GAAmBtlU,QAAO,WAC9C,EAAKv5C,OAAO,eAAgBjL,GAC5B23M,EAAS33M,EAAOtZ,QAAUsZ,OAGlC+pX,UAAW,SAAS/hY,GAChB,IAAIopC,EAAW,IAAIwnL,EAAAA,GACf58B,EAAO51L,KACPoN,GAAe2+O,EAAAA,EAAAA,MAAK/rP,KAAK6kB,OAAO,UAAY,GAAI,SAAS3kB,GACzD,OAAOF,KAAK4jY,eAAe5jY,KAAK6jY,aAAa3jY,GAAO0B,IACtD6I,KAAKzK,OAAO,GAiBd,YAhBI,IAAWoN,EACX49B,EAAS56B,QAAQhD,GAEjBpN,KAAK8jY,WAAWliY,GAAOw3B,MAAM,SAASl5B,GAClC8qC,EAAS56B,QAAQlQ,MACjB4gC,MAAM,SAASta,GACX,OAASA,QAAQ,IAAWA,GAAQA,EAAKu9W,qBAGzCnuM,EAAK/wK,OAAO,qBACZmmB,EAAS56B,QAAQxO,GAEjBopC,EAASU,aAIdV,EAASx6B,WAEpBwzX,wBAAyB,SAASxjY,GAC9B,GAAI,SAAUioS,EAAAA,EAAAA,kBAAiBjoS,GAA/B,CAGA,IAAIyjY,EAAiBjkY,KAAKmjY,uBAAuBn5T,QAAQnqD,IAAI,GACzDqkX,EAAgBlkY,KAAKmjY,uBAAuB7mQ,OAAOz8G,IAAI,GACvDswB,EAAU3vC,EAAE43G,cAAcxxG,OAC1Bu9X,IAAkBh0V,IAAY8zV,IAAkBzjY,EAAEwlE,OAClDo+T,IAAiBj0V,IAAY+zV,GAAkB1jY,EAAEwlE,QACjDm+T,GAAgBC,KAChBpkY,KAAKknE,QACLyuJ,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,SAChCssS,GACA3jY,EAAE43G,cAAc/wG,oBAI5BqzX,aAAc,SAASl6X,GAAG,WACtBR,KAAKuxN,WACDvxN,KAAK6kB,OAAO,sBACZs0R,EAAAA,GAAAA,GAAYn5S,KAAK8gB,UAAW,MAAM,SAAAtgB,GAAC,OAAI,EAAKwjY,wBAAwBxjY,OAG5E06X,oBAAqB,WACjB,GAAIl7X,KAAK6kB,OAAO,qBAAuBm+W,EAAvC,CAGA,IAAI58W,EAAkBpmB,KAAKi8N,qBAAqB,mBAChD,GAAM71M,GAAmBpmB,KAAK6kB,OAAO,mBAArC,CAGA,IAAIklW,EAAgB/pX,KAAK8uW,OAAOn1U,WAC5BvZ,EAAe,CACfxe,MAAO5B,KAAKqkY,mBACZh2W,UAAWruB,MAEf+pX,EAAct/S,QACdrkD,EAAgB7G,OAAO,CACnBO,WAAWs2M,EAAAA,EAAAA,GAAiB2zJ,GAC5B/9W,MAAOoU,OAGfkkX,wBAAyB,WACrB,OAAOjmJ,EAAWv6D,KAEtBygN,uBAAwB,WACpB,IAAI78X,EAAgBw5O,IACpB,OAAOx5O,GAAiB1H,KAAK8uW,OAAOn1U,WAAW9Z,IAAI,GAAGd,SAASrX,IAEnE88X,0BAA2B,WACvB,MAAO,YAAcnmJ,EAAWjW,YAAcpoO,KAAKskY,2BAA6BtkY,KAAKukY,0BAEzFlJ,oBAAqB,WACjBr7X,KAAKuxN,WACLvxN,KAAKykY,oBAAiB,GAE1BC,wBAAyB,SAASlkY,GAC9BR,KAAKuxN,SAAS/wN,GACdR,KAAKykY,eAAiBjkY,EAAE2lB,UAE5Bw+W,yBAA0B,SAAS5uH,GAC/B,MAGI/1Q,KAAKuxN,SAASwkD,GAClB,MAAO,CACHr2M,GALJ,EACIA,GAKAC,GANJ,EAEIA,GAKAp0D,OAAQ,CACJs7C,GAAI,GAERzhC,UAAW,YAGnBqpV,aAAc,WAAW,WAEEnhC,EACnBttU,KAAK6kB,SADLyoT,kBAEJ,OAAOxkU,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BzyE,UAAW,EACX6M,aAAa,EACb2hL,kBAAmBA,EACnBlnT,gBAAiB48W,EACjB7lB,mBAAoBn9W,KAAKwkY,0BAA0B/5X,KAAKzK,MACxDmmB,UAAUrd,EAAAA,EAAAA,GAAO9I,KAAK6kB,OAAO,iBAAkB,CAC3C46C,GAAIz/D,KAAK6Z,aAEb2xT,kBAAmB,SAAAxiN,GAAI,OAAI,EAAKnkG,OAAO,sBAAwB,EAAKm/W,wBAAwBh7Q,IAC5F47Q,iCAAiC,EACjCl/W,UAAW,WACP,IAAIm/W,EACAC,EAAgB,QAAUD,EAAuB7kY,KAAKykY,sBAAmB,IAAWI,OAAuB,EAASA,EAAqBh+U,EAAE7mB,SAC/I,OAAO+kW,EAAAA,EAAAA,GAA4B/kY,KAAK6Z,WAAYirX,IACtDr6X,KAAKzK,SAGfo7X,mBAAoB,WAChBp7X,KAAKuxN,WACL,IAAIyzK,EAAgBhlY,KAAKmjY,uBAAuBn5T,QAChD2rJ,EAAAA,EAAAA,QAAqBqvK,EAAe,UAExCC,2BAA4BjzK,EAAAA,KAC5BkK,eAAgB,SAAS11M,GAErB,OADAxmB,KAAKklY,6BAA6B1+W,GAC1BA,EAAKhZ,MACT,IAAK,aACDxN,KAAKi9X,oBACL,MACJ,IAAK,eACDj9X,KAAK6kB,OAAO,OAAQ2B,EAAK5kB,OACzB,MACJ,IAAK,cACD5B,KAAKsgV,eACL,MACJ,IAAK,kBACDtgV,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,OAG3B46G,QAAQ+jQ,EAAAA,IACX7kX,EAAAA,EAAAA,SAAkB,gBAAiB2iX,GACnC,8TCnQqBmC,EAAAA,SAAAA,iCACjB,WAAY53X,EAAMgV,EAAQpI,GAAS,6BAC/B,cAAM5M,EAAMgV,EAAQpI,IACfirX,gBAAkB,KAFQ,8CAInC,SAAcj3X,GACV,IACYoU,EACRxiB,KADAwiB,OAEJpU,EAASyW,OAAO,WAAW,SAAArkB,GACvB,IAAI8kY,GACA,QAAUA,EAAwB9iX,EAAO+iX,8BAA2B,IAAWD,GAAyBA,EAAsB7kY,KAAK+hB,KAGrIA,EAAOqC,OAAO,sBAFZrC,EAAOgjX,aAAahlY,MAI5Bm1N,EAAAA,EAAAA,GAAgBvnN,EAASyL,WAAY,aAAa,SAAArZ,GAC1CgiB,EAAO3I,WAAWigB,GAAG,sBACrBt5B,EAAE6G,2CAId,WACI,IACYmb,EACRxiB,KADAwiB,OAEA3I,GAAWnM,EAAAA,EAAAA,GAAE,SACb0M,EAAUpa,KAAKylY,cACnBzlY,KAAK0lY,gBAAgB7rX,GACrB,IAAIzL,EAAWoU,EAAO4kO,iBAAiBvtO,EAAUqiU,EAAAA,SAAQpzU,EAAAA,EAAAA,GAAO,GAAIsR,EAAS,CACzEmvO,YAAa,CACT,aAAc4zE,EAAAA,EAAAA,OAhCT,oCAoCb,OADAn9T,KAAK2lY,cAAcnjX,EAAO3I,WAAYA,EAAUO,EAAQvR,SACjD,CACHgR,SAAUA,EACVzL,SAAUA,8BAGlB,WACI,IACYoU,EACRxiB,KADAwiB,OAEA3Z,EAAU7I,KAAK06G,aAEftgG,EAAU,CACVkzT,mBAAmB,EACnBC,mBAAmB,EACnBF,oBAAoB,EACpByO,cAAc,EACd1wU,SANaoX,EAAOqC,OAAO,YAO3Bhc,QAASA,GAGb,OADA7I,KAAK4lY,aAAaxrX,GACXA,4BAEX,WACI,IACYoI,EACRxiB,KADAwiB,OAEJ,OAAO,2DAAsBA,EAAOqC,OAAO,mDAE/C,SAAc6nI,EAAS7yI,EAAUuuL,GAC7B17C,EAAQ8pE,YAlEsB,mCAkEuBpuB,GACjDvuL,GACAA,EAASge,YAAY,aAAapY,SArEV,2DAwEhC,WACI,OAAOzf,KAAKwiB,OAAOqC,OAAO,4BAA8B7kB,KAAKqlY,4CAEjE,SAAajrX,GACJpa,KAAK6lY,oBACNzrX,EAAQuP,SAAW3pB,KAAKwiB,OAAOy5M,qBAAqB,0BACpDj8N,KAAKqlY,gBAAkBrlY,KAAKwiB,OAAOqC,OAAO,iDAGlD,WAEI,IADmB,sDACD,CACd,IACYrC,EAERxiB,KAFAwiB,OACUpU,EACVpO,KADAoO,SAEAs+I,EAAUlqI,EAAO3I,WACjBO,EAAUpa,KAAKylY,cACnB,OAASr3X,QAAY,IAAWA,GAAoBA,EAASyW,OAAOzK,GACpEpa,KAAK2lY,cAAcj5O,EAAS,OAASt+I,QAAY,IAAWA,OAAW,EAASA,EAASyL,WAAYO,EAAQvR,gBAxFpGu8X,CAAuBU,EAAAA,gHC6CxCC,EAAiC,kCAEjCC,EAA2B,4BAK3BC,EAAQ,QAAU99J,EAAAA,QAAAA,UAAkBxpG,SACpCivO,EAAiBwJ,EAAAA,QAAAA,QAAgB,CACjC9sB,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO,GAAI9I,KAAKuxN,WAAY,CAC/B3oN,IAAK,SAASpI,GACV,GAAKR,KAAK6kB,OAAO,UAGjB,GAAI,cAAgB7kB,KAAK6kB,OAAO,kBAAhC,CAIA,IAAIipV,EAAoBttW,EAAE2C,SAAWnD,KAAK+tW,uBAAyB/tW,KAAKguW,wBACpEF,IACAn4I,EAAAA,EAAAA,QAAqBm4I,EAAmB,SACxCA,EAAkBhgW,UAEtBtN,EAAE6G,sBARErH,KAAKknE,SAUb4kE,OAAQ,SAAStrI,GAKb,OAJIR,KAAK6kB,OAAO,WACZrkB,EAAE6G,iBAENrH,KAAKknE,SACE,GAEX0jR,QAAS,SAASpqV,GACd,UAAKi/S,EAAAA,EAAAA,qBAAoBj/S,KACrBA,EAAE6G,iBACF7G,EAAE4G,kBACE5G,EAAE6c,WACFrd,KAAKknE,SACE,IAKnB6jR,UAAW,SAASvqV,GAChB,UAAKi/S,EAAAA,EAAAA,qBAAoBj/S,KACrBA,EAAE6G,iBACF7G,EAAE4G,kBACE5G,EAAE6c,WACFrd,KAAKiuW,qBACE,IAKnBpiO,MAAO,SAASrrI,GAKZ,OAJIR,KAAK6kB,OAAO,YACZrkB,EAAE6G,iBACFrH,KAAK2wW,yBAAyBnwW,KAE3B,MAInB0lY,mBAAoB,WAChB,OAAOlmY,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BpuB,KAAM,WACN24X,KAAMf,MAGd3yK,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,KACPwkY,SAAU,KACVC,SAAU,KACVrQ,QAAQ,EACR5jR,mBAAmB,EACnB+7P,eAAgB,YAChBiP,gBAAgB,EAChB/vC,oBAAoB,EACpBi5D,uBAAwB,iBACxBj4B,cAAe,KACfojB,kBAAkB,EAClB8U,oBAAoB,EACpBC,aAAS,EACTv0R,gBAAiB,CACborQ,WAAW,GAEfp4V,cAAejlB,KAAK2kY,2BACpB8B,mBAAoB,KACpB/U,gBAAiBv0D,EAAAA,EAAAA,OAA2B,MAC5CupE,iBAAkBvpE,EAAAA,EAAAA,OAA2B,UAC7CmxC,gBAAiB,UACjBqqB,wBAAwB,EACxBjkD,0BAA2B,UAGnClrF,cAAe,WACX,OAAO,GAEXm7I,yBAA0B,SAAS5uH,GAC/B,IAAI5vP,GAAW2vP,EAAAA,EAAAA,GAAoBC,GACnC,MAAO,CACHxqQ,OAAQ,CACJi+I,EAAG,EACH3iG,GAAI,GAER6Y,GAAIv5C,EAAW,OACfw5C,GAAIx5C,EAAW,UACff,UAAW,cAGnBw9N,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,SAAS4wI,GAEb,MADgB,YAAcA,EAAQrwP,UAG1CvkH,QAAS,CACL6K,cAAe,CACX1Z,OAAQ,CACJs7C,EAAG,SAMvB8/U,cAAe,WACX,OAAO3mY,KAAK6Z,WAAWwC,KAAK,oCAAsC2tD,SAEtEwI,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK4mY,yBACL5mY,KAAK6mY,8BACL7mY,KAAK8mY,qBAAqB9mY,KAAK6kB,OAAO,eACtC7kB,KAAKmhB,SAASw+B,MAAM,kBAAmB3/C,KAAK6kB,OAAO,qBAEvDiiX,qBAAsB,SAAS/wH,GAC3B,MAGI/1Q,KAAK2kY,yBAAyB5uH,GAF1Br2M,EADR,EACIA,GACIC,EAFR,EAEIA,GAEAmiB,EAAkB9hF,KAAK6kB,OAAO,iBAClC7kB,KAAK6kB,OAAO,iBAAiB/b,EAAAA,EAAAA,GAAO,GAAIg5E,EAAiB,CACrDpiB,GAAIA,EACJC,GAAIA,MAGZinU,uBAAwB,WACpB5mY,KAAK+mY,YAAc/mY,KAAKw7N,sBAAsB,WAAY,CACtD6b,kBAAmB,CAAC,WAAY,cAEpCr3O,KAAKgnY,aAAehnY,KAAKw7N,sBAAsB,WAAY,CACvD6b,kBAAmB,CAAC,WAAY,eAGxCwvJ,4BAA6B,WACzB7mY,KAAKinY,wBAA0BjnY,KAAKw7N,sBAAsB,qBAAsB,CAC5E6b,kBAAmB,CAAC,WAAY,eAGxCoT,YAAa,WACTzqP,KAAK6uV,uBACL7uV,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SArKK,qBAsKrBzf,KAAK4gV,QAAQ,OAAQ,aAEzB9kH,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKknY,qBACLlnY,KAAKmnY,yBACLnnY,KAAK48X,sBAET19B,mBAAoB,WACXl/V,KAAK6kB,OAAO,mBACb7kB,KAAKonY,gBAGb72B,aAAc,WACVvwW,KAAKuxN,WACLvxN,KAAKqnY,aACLrnY,KAAKsnY,mBAETD,WAAY,WACRrnY,KAAKunY,YAAcvnY,KAAK6Z,WAAWi8O,WAAUpoP,EAAAA,EAAAA,GAAE,SAAS+R,SAASsmX,IAAiCh7X,WAAW68C,GAAG,IAEpH0/U,gBAAiB,WACbtnY,KAAK4gV,QAAQ,CACT4mD,SAAU,OACVjjU,aAAc,UAGtBg3T,mBAAoB,WAChB,OAAQv7X,KAAKynY,eAAiBznY,KAAKuxN,YAEvCmtI,iBAAkB,WACd1+V,KAAKuxN,WACDvxN,KAAK6kB,OAAO,kBACZ7kB,KAAK0nY,sBAGbC,kBAAmB,WACf,OAAO3nY,KAAK6kB,OAAO,kBAAoB7kB,KAAKi8N,qBAAqB,kBAErEqlK,YAAa,WACLthY,KAAK6kB,OAAO,kBAGhB7kB,KAAKuxN,YAETqhK,aAAc,WACV,IAAIvkB,EAAgBruW,KAAK2nY,oBACzBt5B,GAAiBruW,KAAK4nY,sBAAsBv5B,EAAeruW,KAAKqkY,qBAEpEwD,mBAAoB,aACS7nY,KAAK2nY,qBAE1B3nY,KAAKuxN,YAGb+uH,aAAc,WACNtgV,KAAK6kB,OAAO,2BACZ7kB,KAAKqyV,kBAEKryV,KAAKuxN,WACXnzJ,OAAOp+D,KAAK4yX,aAAanoX,KAAKzK,QAE1C4nY,sBAAuB,SAASv5B,EAAexgW,GAAM,IAC7Ci6X,EAD6C,OAEjD9nY,KAAK+nY,yBAA2B,QAAUD,EAAwB9nY,KAAK+nY,+BAA4B,IAAWD,EAAwBA,EAAwB,GAAK,EACnK,IAAI31P,GAAY5jG,EAAAA,EAAAA,IAAQvuC,KAAK63F,UACzBtwD,EAAavnC,KAAKunY,YACtBvnY,KAAKgoY,wBACLhoY,KAAKioY,2BACLjoY,KAAKkoY,wBACLloY,KAAK0nY,qBACLngW,EAAWkjC,QACX,IAAI09T,GAAmBz6X,EAAAA,EAAAA,GAAE,SAAS+R,SAvOI,4CAuO8CwY,SAASsP,GAC7F8mU,EAAc9uV,OAAO,CACjBvT,MAAO6B,EACPiS,WAAWs2M,EAAAA,EAAAA,GAAiB+xK,GAC5BpvI,WAAY,WAER,GADA,EAAKgvI,0BACD,IAAM,EAAKA,wBAAf,CAGA,IAAIhwR,EAAS,EAAKlgB,SAClB,IAAKkgB,EAAOz3G,OACR,MAAM2hO,EAAAA,EAAAA,MAAa,SAEvB,EAAKmmK,kBACLj2P,GAAawjF,EAAAA,EAAAA,QAAqB59G,EAAQ,aAGlD/3G,KAAKqoY,sBAAsB9gW,IAE/B2gW,sBAxPiC,WAyP7B,IAAII,EAAuBC,EAAuBC,EACrBxoY,KAAK6kB,OAAO,4BACd,QAAUyjX,EAAwBtoY,KAAKoyV,uBAAoB,IAAWk2C,GAAiCA,EAAsBn7O,UACxJ,IAAIs7O,EAA+B,QAAUF,EAAwBvoY,KAAK0oY,gCAA6B,IAAWH,OAAwB,EAASA,EAAsB,GAAGn+W,WACxKu+W,EAA8B,QAAUH,EAAwBxoY,KAAK4oY,+BAA4B,IAAWJ,OAAwB,EAASA,EAAsB,GAAGp+W,WAC1K,OAASq+W,QAAgC,IAAWA,GAAwCA,EAA6Bt7U,YAAYntD,KAAK0oY,yBAAyB,IACnK,OAASC,QAA+B,IAAWA,GAAuCA,EAA4Bx7U,YAAYntD,KAAK4oY,wBAAwB,KAEnKP,sBAjQiC,SAiQX9gW,GAClB,IAAIshW,EACAlQ,EAAyB34X,KAAK6kB,OAAO,0BACzC0iB,EAAWquN,QAAQ51P,KAAK0oY,0BACxB/P,IAA2B,QAAUkQ,EAAyB7oY,KAAKoyV,uBAAoB,IAAWy2C,GAAkCA,EAAuB5wW,SAASsP,IACpKA,EAAWxnB,OAAO/f,KAAK4oY,0BAE3BX,yBAxQiC,WAyQ7BjoY,KAAK8oY,mBAAqB9oY,KAAK6Z,WAAW9O,WAAW68C,GAAG,IAE5DwgV,gBAAiB,WACbpoY,KAAKqgX,oBACLrgX,KAAK+oY,2BACL/oY,KAAKgpY,iBACLhpY,KAAKipY,0BAETA,uBAAwB,WACpBtzK,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU,aAAc73F,KAAKkpY,8BACnDlpY,KAAKmpY,yBAET9E,iBAAkB,WACd,OAAOrkY,KAAK6kB,OAAO,UAEvB62M,eAAgB,WACZ17N,KAAK27N,iBAAiBC,oBAAoB,CACtCo2J,eAAgB,IAAIjrI,EAAAA,GAAkB,SAAS3sO,GAC3C,IAAIoF,GAAQ9R,EAAAA,EAAAA,GAAE,SAAS+R,SAlSJ,2BAmSnB/R,EAAAA,EAAAA,GAAE0M,EAAQ0F,WAAWC,OAAOP,QAGpCxf,KAAKuxN,YAET21K,mBAAoB,WAChB,IAAIkC,EAAgBppY,KAAK2mY,gBACrB18V,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAC9C08J,EAAmBzxX,KAAK6kB,OAAO,oBACnC8wM,EAAAA,EAAAA,IAAiByzK,EAAen/V,GAChC0rL,EAAAA,EAAAA,GAAgByzK,EAAen/V,EAAWjqC,KAAKqpY,sBAAsB5X,IACrEzxX,KAAK6Z,WAAW28M,YA1Se,oCA0S+Bi7J,GAC1DA,IACAzxX,KAAKspY,wBAA0BtpY,KAAK6lP,cAAc7lP,KAAKwlY,aAAa/6X,KAAKzK,SAGjFmnY,uBAAwB,WAAW,WAC3BlB,IACAjmY,KAAKupY,wBACL5zK,EAAAA,EAAAA,GAAgB31N,KAAK2mY,iBAAiBv4K,EAAAA,EAAAA,cAAa,WAAYpuN,KAAK+0N,OAAO,SAAAv6M,GACvE,IAAI+8B,EAAY/8B,EAAM6xB,cAClBkL,GAAa,EAAK1yB,OAAO,YACA,EAAK2kX,wBAAwBjyV,IAElD,EAAK2vB,cAMzBsiU,wBAAyB,SAASjyV,GAC9B,IAAIkyV,EAAezpY,KAAK8gB,SAAUpT,EAAAA,EAAAA,GAAE1N,KAAK8gB,WAAW/W,QAAQ,IAAI6xB,OAAOoqW,IAA6BhmY,KAAK0pY,QAEzG,OAD2B,KAAMh8X,EAAAA,EAAAA,GAAE6pC,GAAWxtC,QAAQ,IAAI6xB,OAAOoqW,GAA2ByD,GAAcnpY,QAG9GipY,sBAAuB,WACnBtD,GAAStwK,EAAAA,EAAAA,IAAiB31N,KAAK2mY,iBAAiBv4K,EAAAA,EAAAA,cAAa,WAAYpuN,KAAK+0N,QAElFs0K,sBAAuB,SAAS5X,GAAkB,WAC9C,OAAOA,EAAmB,SAAAjxX,GACtB,EAAKmpY,mBAAmBnpY,IACxB,SAAAA,GACA,EAAKopY,gBAGbpE,aAAc,WACVxlY,KAAK6pY,oBAETF,mBAAoB,SAASnpY,GACzBR,KAAKspY,wBAAwB,CACzB9uX,MAAOha,KAGfspY,4BAA6B,WACzB,OAAO9pY,KAAK63F,UAEhB+xS,YAAa,WACT,OAAI5pY,KAAK6kB,OAAO,cAGZ7kB,KAAK6kB,OAAO,wBAAyB0pB,EAAAA,EAAAA,IAAQvuC,KAAK63F,YAClD73F,KAAK+pY,sBACLp0K,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,WAEjC,IAEXkyS,oBAAqB,WACjB,IAAIC,EAAiBjiY,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAC7E2xX,EAAe15X,KAAK63F,SAASh4E,IAAI,GACrC,GAAI65W,EAAc,CACd,IACW93X,EACP83X,EADA93X,MAEAo2G,GAAgBrvD,EAAAA,EAAAA,IAAU/mD,KAAWooY,GAAkBhqY,KAAKynY,eAAiB7lY,EAAMtB,OAAS,EAChGN,KAAKggY,OAAO,CACRnkX,MAAOm8F,EACP5kF,IAAK4kF,IACN,KAGXyvR,YAAa,WACT,OAAOznY,KAAK6kB,OAAO,sBAEvBglX,iBAAkB,SAASzhM,GAClBpoM,KAAK4pY,gBAGL5pY,KAAK6kB,OAAO,cACbujL,EAAYrgM,UAAUzH,OAAS8nM,GAAapoM,KAAK6kB,OAAO,UACxD7kB,KAAK6kB,OAAO,SAAUujL,MAG9B6hM,iBAxXiC,WAyX7B,OAAOjqY,KAAK8uW,QAAU9uW,KAAKkqY,iBAE/BtN,mBAAoB,WAChB,IAAI5G,EAASh2X,KAAK6kB,OAAO,UACrBmxW,GACAh2X,KAAKonY,eAETpnY,KAAK6Z,WAAW28M,YApYM,2BAoY+Bw/J,GACrDh2X,KAAKu3X,gBAAgB,UAAWvB,GAChC,IAAImU,EAAQ,CACRC,SAAUpU,EACVpsW,SAAU5pB,KAAKiqY,oBAEnBjqY,KAAK4gV,QAAQupD,GACbnqY,KAAK4gV,QAAQ,OAAQo1C,EAASh2X,KAAKkqY,qBAAkB,EAAQlqY,KAAK6Z,aAEtEutX,aAAc,WACNpnY,KAAK0pY,UAGT1pY,KAAK0pY,SAAUh8X,EAAAA,EAAAA,GAAE,SAAS+R,SAASumX,GAA0B/tW,SAASj4B,KAAK6Z,YAC3E7Z,KAAK06X,eACL16X,KAAKk7X,wBAETA,oBAAqBlpK,EAAAA,KACrB0oK,aAAc,WACV,IAAI/Q,GAAc7gX,EAAAA,EAAAA,GAAO9I,KAAKyuW,eAAgBzuW,KAAKmhB,SAASw+B,MAAM,2BAC3DgqU,EAAYtP,oBACfsP,EAAYpgI,cAAgBziP,OAAOC,KAAK4iX,EAAYpgI,aAAajpP,eAC1DqpX,EAAYpgI,YAEvBvpP,KAAK8uW,OAAS9uW,KAAKonP,iBAAiBpnP,KAAK0pY,QAASW,EAAAA,EAAO1gB,GACzD3pX,KAAK8uW,OAAOx2U,GAAG,CACXwnV,QAAS9/W,KAAKm7X,qBAAqB1wX,KAAKzK,MACxCy4S,MAAOz4S,KAAKo7X,mBAAmB3wX,KAAKzK,MACpC04S,OAAQ14S,KAAKuuW,oBAAoB9jW,KAAKzK,MACtC20B,OAAQ30B,KAAKq7X,oBAAoB5wX,KAAKzK,MACtCsqY,aAActqY,KAAK0uW,qBAAqBjkW,KAAKzK,QAEjDA,KAAK0uW,uBACL1uW,KAAKuqY,mBAAmBvqY,KAAK8uW,OAAOn1U,YACpC35B,KAAKwqY,wBAAwBxqY,KAAK8uW,OAAQ,oBAE9Cy7B,mBApaiC,SAoadxgB,GACf/pX,KAAKkqY,gBAAkB,MAAQ,IAAI/4I,EAAAA,EACnCnxP,KAAK4gV,QAAQ,KAAM5gV,KAAKkqY,gBAAiBngB,IAE7Crb,qBAAsB18I,EAAAA,KACtBy8I,aAAc,WAAW,WACrB,MAAO,CACH3rU,cAAe9iC,KAAKyqY,2BACpBtkX,UAAUrd,EAAAA,EAAAA,GAAO9I,KAAK6kB,OAAO,iBAAkB,CAC3C46C,GAAIz/D,KAAK6Z,aAEbwjW,UAAWr9W,KAAK6kB,OAAO,6BACvB+/W,iCAAiC,EACjCtzX,MAAO,kBAAMo5X,EAAAA,EAAAA,GAAgB,EAAK7wX,aAClCtI,OAAQ,OACR0pO,SAAS,EACTkiI,oBAAoB,EACpB72V,mBAAoB,SAAA9lB,GAAC,OAAI,EAAKmqY,6BAA6BnqY,IAC3D8jO,UAAW,CACP9iL,KAAM,CACF79B,KAAM,OACN67M,SAAU,EACVr2N,KAAM,EACN63D,GAAI,GAERkJ,KAAM,CACFvmD,KAAM,OACN67M,SAAU,IACVr2N,KAAM,EACN63D,GAAI,IAGZo8S,gBAAgB,EAChB9vC,mBAAmB,EACnBs9D,iBAAiB,EACjBj/O,aAAa,EACb3+H,aAAchtB,KAAKwrX,wBACnBqf,aAAc7qY,KAAK0kY,wBAAwBj6X,KAAKzK,MAChD8qY,YAAY,EACZ1kX,gBAAiB,KACjB2kX,sBAAuB/E,EACvBgF,uCAAuC,IAG/CP,yBAA0B,WAAW,WACjC,OAAKzqY,KAAK6kB,OAAO,sBAGV,SAAArkB,GACH,EAAKymY,wBAAwB,CACzB9pP,MAAO38I,EAAE6tB,aAJN,MAQf07N,kBAAmB,aACXztB,EAAAA,EAAAA,OAAgBt8N,KAAK6Z,WAAWigB,GAAG,YAIvC95B,KAAKu5X,oBAHDv5X,KAAKknE,SAKbqyT,kBAAmB,WAAW,gBAEtB,KADajC,EAAAA,EAAAA,GAAat3X,KAAK6kB,OAAO,2BAEtC7kB,KAAKu3X,gBAAgB,SAAS,kBAAMmT,EAAAA,EAAAA,GAAgB,EAAK7wX,gBAGjE6qX,wBAAyB,SAASlkY,GAC9B,IAAIyqY,EAAaC,EACjB,EAGIlrY,KAAK6kB,SAFMsmX,EADf,EACIA,UACapkU,EAFjB,EAEIA,YAEJ,GAAK/mE,KAAK8uW,OAAV,CAGA,IAAIs8B,EAAuBprY,KAAK8uW,OAAOE,kBACnCq8B,EAAmB,QAAUJ,EAAczqY,EAAE2lB,gBAAa,IAAW8kX,GAAuB,QAAUC,EAAgBD,EAAYpkV,SAAM,IAAWqkV,OAAhE,EAAyFA,EAAc3jK,KAC1L+jK,EAAuB,WAAaH,GAAa,aAAepkU,EAIpE,GAHIvmE,EAAE2lB,UACFilX,EAAqB50K,YAzfM,oCAyfwC60K,GAEnEA,GAAoBC,GAAwBtrY,KAAKurY,OAAOnjM,YAAa,CACrE,IAAI6uK,EAASj3W,KAAKurY,OAAO1xX,YACzBoiC,EAAAA,EAAAA,IAAKmvV,EAAsB,CACvBtyX,KAAKw7M,EAAAA,EAAAA,IAAO82K,GAAsBtyX,IAAMm9B,SAASghU,EAAO57V,IAAI,kBAIxE8/W,qBAAsBnpK,EAAAA,KACtBu8I,oBAAqB,WACjBvuW,KAAK6kB,OAAO,UAAU,IAE1Bu2W,mBAAoB,WAChB,IAAIoQ,EACJxrY,KAAK+mY,cACL,QAAUyE,EAAwBxrY,KAAKyrY,0BAAuB,IAAWD,GAAiCA,EAAsB3mX,OAAO,eAAgB7kB,KAAK0rY,sCAEhKrQ,oBAAqB,WACjB,IAAIsQ,EACJ3rY,KAAKgnY,eACL,QAAU2E,EAAyB3rY,KAAKyrY,0BAAuB,IAAWE,GAAkCA,EAAuB9mX,OAAO,eAAgB7kB,KAAK0rY,sCAEnKA,kCAAmC,WAC/B,IAAIh3D,EAA4B10U,KAAK6kB,OAAO,6BAC5C,GAAI,SAAW6vT,EACX,OAAOA,EAEX,IAAIN,EAAe,SACnB,GAAIp0U,KAAK8uW,QAAU9uW,KAAK8uW,OAAOjqV,OAAO,WAAY,CAC9C,IACS+mX,EACLvsB,EAAAA,EAAAA,MAAwBr/W,KAAK6Z,YAD7Bf,IAGK+yX,EACLxsB,EAAAA,EAAAA,MAAwBr/W,KAAK8uW,OAAOn1U,YADpC7gB,IAEJs7T,EAAew3D,EAAQ5rY,KAAK6kB,OAAO,iBAAiBtZ,OAAOs7C,EAAIglV,EAAW,SAAW,MAEzF,OAAOz3D,GAEXu2D,6BAA8B,SAAS3jJ,GACnC,IACYpgP,EACRogP,EADApgP,OAEAupC,GAAUziC,EAAAA,EAAAA,GAAE9G,GACZorX,EAAiBhyX,KAAKgtI,UAAU,YAChC8+P,EAAkB9Z,GAAkBA,EAAen4W,WACnDkyX,IAAmB57V,EAAQpmC,QAAQ/J,KAAK6Z,YAAYvZ,OACpD0rY,IAA4B77V,EAAQpmC,QAAQ+hY,GAAiBxrY,OAEjE,OADsByrY,IAAmBC,GAG7CzgJ,OAAQ,kBACGvrP,KAAKspY,wBACRtpY,KAAK0pY,UACL1pY,KAAK0pY,QAAQloY,gBACNxB,KAAK0pY,eACL1pY,KAAK8uW,QAEhB9uW,KAAKuxN,YAETgmK,gBAAiB,SAASvxI,EAAYpkP,GAClC5B,KAAKisY,iBAAiB,SAAUlkY,YAEpCkmW,kBAAmB,WACVjuW,KAAK6kB,OAAO,aACb7kB,KAAK6pY,kBAAiB,IAG9Bre,sBAAuB,WACnB,MAAO,eAAiBxrX,KAAK6kB,OAAO,kBAAoB7kB,KAAK2xX,2BAA6B,IAE9F3jB,sBAAuB,WACnB,OAAOhuW,KAAK8uW,OAAO35I,WAAW94M,KAAK,6BAEvC0xV,qBAAsB,WAClB,OAAO/tW,KAAK8uW,OAAO35I,WAAW94M,KAAK,+BAEvC2nX,wBAAyB,SAASxjY,GAC9B,IAAIqZ,GAAWnM,EAAAA,EAAAA,GAAElN,EAAEkO,gBACflO,EAAE2C,UAAY0W,EAASigB,GAAG95B,KAAKguW,2BAA6BxtW,EAAE2C,UAAY0W,EAASigB,GAAG95B,KAAK+tW,2BAC3Fp4I,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,SACpCr3F,EAAE6G,mBAGV6kY,wBAAyB,WACrBv2K,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,SACpC73F,KAAKknE,SAETilU,+BAAgC,SAAS3rY,GACrCA,EAAE6tB,UAAU+gV,mBAAmB,MAAOpvW,KAAKgkY,wBAAwBv5X,KAAKzK,OACxEQ,EAAE6tB,UAAU+gV,mBAAmB,SAAUpvW,KAAKksY,wBAAwBzhY,KAAKzK,QAE/E2xX,yBAA0B,WACtB,IAAIya,EAAgB,CAAC,CACjBC,SAAU,OACVjyX,QAAS,CACL4sD,QAAShnE,KAAKowW,oBAAoB3lW,KAAKzK,MACvC2C,KAAM3C,KAAK6kB,OAAO,mBAClBie,cAAe9iC,KAAKmsY,+BAA+B1hY,KAAKzK,QAE7D,CACCqsY,SAAU,SACVjyX,QAAS,CACL4sD,QAAShnE,KAAKqwW,qBAAqB5lW,KAAKzK,MACxC2C,KAAM3C,KAAK6kB,OAAO,oBAClBie,cAAe9iC,KAAKmsY,+BAA+B1hY,KAAKzK,SAGhE,OAAOA,KAAKssY,sBAAsBF,IAEtCE,sBAAuB,SAASF,GAC5B,IAAI99B,EAAkBtuW,KAAK6kB,OAAO,mBAC9B0nX,EAAeH,EACnB,GAAI,YAAc99B,EAAiB,CAC/B,IAAInoV,GAAWutM,EAAAA,EAAAA,WAAU46I,IACzB7zV,EAAAA,EAAAA,IAAK8xX,GAAe,SAAS7xX,EAAG5a,IAC5BgJ,EAAAA,EAAAA,GAAOhJ,EAAS,CACZigC,QAAS5Z,EAAS,GAClB6Z,SAAU7Z,EAAS,QAI/B,OAAOomX,GAEXn8B,oBAAqB,WACjBpwW,KAAKknE,QACLlnE,KAAK6kB,OAAO,sBAAwB7kB,KAAKe,SAE7CsvW,qBAAsB,WAClBrwW,KAAKknE,QACLlnE,KAAK6kB,OAAO,sBAAwB7kB,KAAKe,SAE7CyrY,oBAAqB,SAAShmX,GAC1B,IAAIpM,EAAU0nS,EAAAA,QAAAA,wBAA+Bt7R,GAC7CxmB,KAAKu3X,gBAAgBn9W,GACrB,IAAIqyX,EAAc3lY,OAAOC,KAAKqT,IACzB,IAAMqyX,EAAYtmY,QAAQ,WAAa,IAAMsmY,EAAYtmY,QAAQ,WAClEnG,KAAK+pP,qBAGb8kG,qBAAsB,WACd7uV,KAAK6kB,OAAO,4BACZ7kB,KAAKoyV,iBAAkB1kV,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,UAAUqY,SAASj4B,KAAK6Z,cAGjFw4U,gBAAiB,WACbryV,KAAKsyV,oBAAoBvuU,IAAI/jB,KAAK6kB,OAAO,WAE7CytU,kBAAmB,WACf,OAAItyV,KAAK6kB,OAAO,0BACL7kB,KAAKoyV,gBAELpyV,KAAKuxN,YAGpB8K,SAAU,WACNr8N,KAAKupY,wBACLvpY,KAAKuxN,YAET2K,eAAgB,SAAS11M,GACrB,IAAIw2W,EACJ,OAAQx2W,EAAKhZ,MACT,IAAK,QACL,IAAK,SACDxN,KAAKuxN,SAAS/qM,GACd,QAAUw2W,EAAeh9X,KAAK8uW,cAAW,IAAWkuB,GAAwBA,EAAa13W,UACzF,MACJ,IAAK,SACDtlB,KAAK48X,qBACL,MACJ,IAAK,WACL,IAAK,WACD58X,KAAK4mY,yBACL,MACJ,IAAK,qBACD5mY,KAAK6mY,8BACL,MACJ,IAAK,iBACGl+U,EAAAA,EAAAA,IAAUniC,EAAK5kB,OACf5B,KAAK4yX,eAEL5yX,KAAK0rP,cAET,MACJ,IAAK,oBACL,IAAK,mBACD1rP,KAAK0rP,cACL,MACJ,IAAK,yBACL,IAAK,qBACD1rP,KAAK0sY,eAAe,CAAC,aACrB,MACJ,IAAK,kBACD1sY,KAAKwsY,oBAAoBhmX,GACzBxmB,KAAKmhB,SAASw+B,MAAM,kBAAmB3/C,KAAK6kB,OAAO,oBACnD,MACJ,IAAK,gBACD,MACJ,IAAK,kBACGy3M,EAAAA,EAAAA,OACAt8N,KAAKonY,eAET,MACJ,IAAK,iBACL,IAAK,kBACL,IAAK,mBACL,IAAK,kBACDpnY,KAAKu3X,gBAAgB,eAAgBv3X,KAAKwrX,yBAC1C,MACJ,IAAK,yBACGxrX,KAAKoyV,kBACLpyV,KAAKoyV,gBAAgB5wV,SACrBxB,KAAKoyV,qBAAkB,GAE3BpyV,KAAK6uV,uBACL,MACJ,IAAK,aACD7uV,KAAK8mY,qBAAqBtgX,EAAK5kB,OAC/B5B,KAAKuxN,SAAS/qM,GACd,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1B28G,KAAM,WACFnjI,KAAK6kB,OAAO,UAAU,IAE1BqiD,MAAO,WACHlnE,KAAK6kB,OAAO,UAAU,IAE1B0f,MAAO,WACH,OAAO6xL,EAAAA,EAAAA,GAAiBp2N,KAAK63F,WAEjC/2E,QAAS,WACL,OAAO9gB,KAAK8uW,OAAS9uW,KAAK8uW,OAAOhuV,UAAY,SAGrDR,EAAAA,EAAAA,SAAkB,mBAAoBstV,GACtC,4HC7xBI88B,EAAkB,SAAS7wX,GAC3B,IAAIyiN,EAAAA,EAAAA,MACA,OAAOhE,EAAAA,EAAAA,IAAcz+M,IAGzBy9W,EAAe,SAAS9+W,GAOxB,OANI,OAASA,IACTA,OAAO,GAEP,oBAAsBA,IACtBA,EAAOA,KAEJA,wLCQPg8U,EAAuB,0BAIvBC,EAAoB,uBAEpBk4C,EAA4B,UAE5BC,EAAwB,CAAC,WAAY,SAAU,cAC/CC,EAA8B,CAC9Bp4D,sBAAuB,OACvBC,0BAA2B,eAC3BwgB,wBAAyB,SACzB43C,mBAAoB,YAEpB7wW,EAAS6lR,EAAAA,QAAAA,QAAe,CACxBl+K,KAAM,WACF5jI,KAAK60V,6BAA+B,KACpC70V,KAAKg1V,mBAAoBv3G,EAAAA,EAAAA,KACzBz9O,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B0/O,eAAgB,SAAS3nP,GACrBE,KAAKuxN,SAASzxN,GACd,IAAI+Z,EAAW7Z,KAAK6Z,WAChBA,IACAhM,EAAAA,EAAAA,IAAKgM,EAAS,GAAI46U,EAAmBz0V,OAG7CqkP,aAAc,SAASjqO,GACnBpa,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK6kB,OAAOm+R,EAAAA,QAAAA,sBAAuC5oS,KAEvDo4D,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKmhB,SAASw+B,MAAM,2BAA4B3/C,KAAK6kB,OAAO,6BAC7C7kB,KAAK6Z,WACX4F,SAjCY,0BAmCzBgzM,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,KACP4L,KAAM,GACN+qG,eAAgB,KAChBk+B,UAAU,EACVvmH,SAAS,EACTwyR,gBAAiB,KACjBC,iBAAkB,KAClBC,iBA1CkB,QA2ClB6xB,sBAAuB,OACvBC,0BAA2B,SAC3Bo4D,wBAAoB,EACpB53C,wBAAyB,CACrB1rM,EAAG,EACH3iG,EAAG,GAEPsuS,yBAA0B,GAC1B43C,wBAAwB,KAGhCC,sBAAuB,WACdhtY,KAAK6kB,OAAO,aACb7kB,KAAKuxN,YAGb4B,uBAAwB,WACpBnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BsvF,iBAAiB,KAGzBuqF,yBAA0B,WACtBjtY,KAAKi1V,mBAAqBj1V,KAAKw7N,sBAAsB,iBAAkB,CACnE6b,kBAAmB,CAAC,WAAY,eAGxC+8I,2BAA4B,WACxBp0X,KAAKktY,8BAA+B,GAExC7Y,yBAA0B,WACtBr0X,KAAKktY,8BAA+B,GAExCziJ,YAAa,WACT,IAAIuwC,EACJh7R,KAAKmtY,uBACLntY,KAAKotY,sBAAsBptY,KAAK6kB,OAAO,SACvC7kB,KAAKuxN,WACLvxN,KAAKqtY,yBACL,QAAUryG,EAAeh7R,KAAK6kB,OAAO,4BAAyB,IAAWm2Q,GAAwBA,KAErGs5D,wBAAyB,SAAS1yV,EAAO42G,GAChCx4G,KAAKi1V,oBACNj1V,KAAKitY,2BAETjtY,KAAKi1V,mBAAmBj1V,KAAKstY,iBAAiB1rY,EAAO42G,KAEzD80R,iBAAkB,SAAS1rY,EAAO42G,GAC9B,MAAO,CACH52G,MAAOA,EACP42G,cAAeA,EACfh+F,MAAOxa,KAAK+0V,4BAGpBrJ,sBAAuB,SAASlrV,GAC5BR,KAAK+0V,0BAA4Bv0V,GAErCizV,gBAAiB,SAASjzV,GACtB,IAAI+sY,EAAkC,SAAWvtY,KAAK6kB,OAAO,yBAC7D,GAAI7kB,KAAKwtY,6BAA+BD,EAAiC,CACrE,IAAI/B,EACA92C,EAA4B,QAAU82C,EAAwBxrY,KAAKyrY,0BAAuB,IAAWD,OAAwB,EAASA,EAAsBr2K,WAChK,OAASu/H,QAA6B,IAAWA,GAAqCA,EAA0B78T,YAAY28T,GAC5Ht2T,aAAal+B,KAAK60V,8BAClB70V,KAAK60V,6BAA+BhyV,YAAW,kBAAM,OAAS6xV,QAA6B,IAAWA,OAA4B,EAASA,EAA0Bj1U,SAAS+0U,KAAuB,KAEzM,OAAOx0V,KAAKuxN,SAAS/wN,IAEzBgtY,0BAA2B,WACvB,OAAO,GAEXC,sBAAuB,WACnB,MAAO,cAEXC,mBAAoB,WAAW,WACvBhsF,EAAc1hT,KAAK6kB,OAAO,eAC1BgmB,EAAS7qC,KAAKytY,wBACdE,EAAwBf,EAAsB1mY,KAAI,SAAAm+D,GAAI,OAAIx5B,EAASw5B,KACvEspU,EAAsB1tY,SAAQ,SAAAoO,GAAS,OAAI,EAAKwL,WAAWge,YAAYxpB,MACvE,IAAIu/X,EAAmB/iW,EAAS62Q,EAChC,IAAK,IAAMisF,EAAsBxnY,QAAQynY,GAAmB,CACxD,IAAIC,EAAqB7tY,KAAKyyN,qBAAqB1rJ,YAC/C+mU,EAAsB9tY,KAAK+iP,uBAAuB/iP,KAAK4iP,wBAAwB77K,YACnF6mU,EAAmB/iW,GAAUijW,GAAuBD,GAExD7tY,KAAK6Z,WAAW4F,SAASmuX,IAE7BG,qBAAsB,WAClB,IAAIprF,EAAmB3iT,KAAK6kB,OAAO,oBAInC,OAHK89R,GAAoB3iT,KAAK6kB,OAAO,qBACjC89R,EAAmB,CAAC3iT,KAAK6kB,OAAO,qBAE7B89R,GAEXqrF,0BAA2B,WACnBhuY,KAAKiuY,sBACLjuY,KAAKiuY,oBAAoBzsY,SACzBxB,KAAK4gV,QAAQ,cAAe,MAC5B5gV,KAAKiuY,yBAAsB,EAC3BjuY,KAAKyrY,wBAAqB,IAGlCyC,yBAA0B,SAASC,GAC/BnuY,KAAK6Z,WAAW28M,YArJJ,aAqJ+B23K,GAC3CnuY,KAAK4gV,QAAQ+rD,EAA2BwB,QAAa,IAEzDd,uBAAwB,WACpB,IAAIn9W,EAAUlwB,KAAK6kB,OAAO,YAAc7kB,KAAK6kB,OAAO,sBAAwB8nX,EACxEhqF,EAAmB3iT,KAAK+tY,uBACxBl0X,EAAW7Z,KAAK6Z,WAEpB,GADA7Z,KAAKkuY,0BAA0Bh+W,IAC1BosM,EAAAA,EAAAA,QAAe,IAAUt8N,KAAK6kB,OAAO,4BAG1C7kB,KAAKguY,6BACA99W,GAAWyyR,GAAkB,CAC9B,MAKI3iT,KAAK6kB,SAJkB4vT,EAD3B,EACIA,sBACyBygB,EAF7B,EAEIA,wBACoB43C,EAHxB,EAGIA,mBACY/6T,EAJhB,EAIIA,WAEJ/xE,KAAKiuY,qBAAsBvgY,EAAAA,EAAAA,GAAE,SAASuqB,SAASpe,GAC/C,IAAIu0X,EAA6B,MAAMxyW,OAAO,IAAIu1N,EAAAA,GAClDnxP,KAAK4gV,QAAQ,cAAewtD,GAC5BpuY,KAAKyrY,mBAAqB,IAAIn3D,EAAAA,EAAkBt0U,KAAKiuY,qBAAqBnlY,EAAAA,EAAAA,GAAO,CAC7E65S,iBAAkBA,EAClB5wO,WAAYA,EACZnrE,OAAQ5G,KAAKquY,8BACb54D,gBAAiB57T,EACjBwqD,KAAMowQ,EACNL,aAAcp0U,KAAKsuY,gCACnB/iY,OAAQ2pV,EACRhwU,SAAU4nX,EACVj/W,UAAWugX,GACZpuY,KAAKmhB,SAASw+B,MAAM,8BACvB3/C,KAAKwqY,wBAAwBxqY,KAAKyrY,mBAAoB,8BAG9D6C,8BAA+B,WAC3B,OAAOtuY,KAAK6kB,OAAO,8BAEvBwpX,4BAA6B,WACzB,OAAOruY,KAAK6Z,YAEhBszX,qBAAsB,WAClB,IAAI12P,EAAWz2I,KAAK6kB,OAAO,YAC3B7kB,KAAKuuY,wBAAwB93P,GAC7Bz2I,KAAK6Z,WAAW28M,YAnMG,sBAmMiC//E,GACpDz2I,KAAK4gV,QAAQ,WAAYnqM,QAAY,IAEzC83P,wBAAyB,SAASC,GAC9B,IAAIC,EAAezuY,KAAK8pY,8BACpB7/V,GAAYmkL,EAAAA,EAAAA,cAAa,UAlMZ,kBAmMjBsgL,EAAAA,EAAAA,IAAiBD,EAAcxkW,GAC3BukW,GACAE,EAAAA,EAAAA,GAAgBD,EAAcxkW,GAAW,SAAAzpC,GACjC,eAAgBioS,EAAAA,EAAAA,kBAAiBjoS,IACjCA,EAAE6G,qBAKlBg1N,SAAU,WACN,IAAIv8N,EAAUE,KAAK6Z,WAAW,IAC9BhM,EAAAA,EAAAA,IAAK/N,EAAS20V,EAAmB,MACjCv2T,aAAal+B,KAAK60V,8BAClB70V,KAAKguY,4BACLhuY,KAAKuxN,YAET67K,sBAAuB,SAAS5/X,GAC5B,IAAImhY,EAAiB3uY,KAAKsyV,oBACrBq8C,IAGDnhY,EAAKlN,OAAS,EACdquY,EAAe/uX,KAAK,OAAQpS,GAE5BmhY,EAAe/2W,WAAW,UAGlC06T,kBAAmB,WACf,OAAO,MAEXs8C,4BAA6B,SAAS5nJ,GAClC,IAAI2kJ,EAEMn+X,EAENw5O,EAFAx5O,KACO5L,EACPolP,EADAplP,MAEAitY,EAAYhC,EAA4Br/X,GAAQq/X,EAA4Br/X,GAAQA,EACxF,QAAUm+X,EAAyB3rY,KAAKyrY,0BAAuB,IAAWE,GAAkCA,EAAuB9mX,OAAOgqX,EAAWjtY,IAEzJktY,kBAAmB98K,EAAAA,KACnBkK,eAAgB,SAAS11M,GACrB,IAAIuoX,EACJ,OAAQvoX,EAAKhZ,MACT,IAAK,iBACDxN,KAAKitY,2BACL,MACJ,IAAK,WACDjtY,KAAKmtY,uBACLntY,KAAKgvY,qBACL,MACJ,IAAK,QACGxoX,EAAK5kB,OAAS4kB,EAAKgyF,eACnBx4G,KAAKg1V,kBAAkBj3G,KAAK,CACxBn8O,MAAO4kB,EAAK5kB,MACZ4gB,OAAQxiB,OAGXA,KAAKktY,+BACNltY,KAAKs0V,wBAAwB9tU,EAAK5kB,MAAO4kB,EAAKgyF,eAC9Cx4G,KAAK0rV,2BAAsB,IAE/B,MACJ,IAAK,QACD1rV,KAAKuxN,SAAS/qM,GACd,QAAUuoX,EAAyB/uY,KAAKyrY,0BAAuB,IAAWsD,GAAkCA,EAAuBE,iBACnI,MACJ,IAAK,OACDjvY,KAAKotY,sBAAsB5mX,EAAK5kB,OAChC,MACJ,IAAK,UACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACD5B,KAAK6kB,OAAOm+R,EAAAA,QAAAA,6BAA8Cx8R,EAAMxmB,KAAK6kB,WACrE7kB,KAAKqtY,yBACL,MACJ,IAAK,qBACL,IAAK,wBACL,IAAK,4BACL,IAAK,0BACDrtY,KAAK4uY,4BAA4BpoX,GACjC,MACJ,IAAK,aACDxmB,KAAK4uY,4BAA4BpoX,GACjCxmB,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,2BACDxmB,KAAKkvY,0BAA0BlvY,KAAKyrY,mBAAoBjlX,GACxD,MACJ,IAAK,yBACD,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1BiiC,KAAM,WACEzoD,KAAK8uY,sBACLz/H,EAAAA,EAAAA,OAGR9zO,MAAO,WACH,IAAIyxN,EAAiBhtP,KAAKyyN,qBAC1BzyN,KAAK6kB,OAAO,QAASmoO,EAAeprP,UAG5Cq6B,EAAO85T,SAAW,SAAA3nV,GAAQ,OAAIA,aAAoB6tB,GAClD,6ICpTIkpW,GAAsBr8X,EAAAA,EAAAA,GAAO,GAAIq6V,EAAAA,EAAiB,CAClDgsC,8BAA+B,WAC3B,MAAO,CACHzjY,MAAO,GACP2f,WAAY,KACZkB,aAAc,OACd3qB,MAAO,KACPopE,UAAW,OACXz/C,iBAAa,IAGrB+3W,qBAAsB,WAClBtjY,KAAKovY,sBACLpvY,KAAKy6V,wBACLz6V,KAAKqvY,wBACLrvY,KAAKu6R,kBACLv6R,KAAKsvY,sBAETA,mBAAoB,WACXtvY,KAAK6kB,OAAO,gBACb7kB,KAAK65R,YAAc,IAAItzO,EAAAA,EAAW,CAC9BC,MAAO,IAAIJ,EAAAA,QAAWpmD,KAAK6kB,OAAO,UAClC6hC,SAAU,IAEd1mD,KAAK+6R,wBAGb0/D,sBAAuB,WACnBz6V,KAAK26V,gBAAiBroG,EAAAA,EAAAA,eAActyP,KAAKuvY,uBAE7CA,mBAAoB,WAChB,OAAOvvY,KAAK6kB,OAAO,gBAEvBuqX,oBAAqB,WACjBpvY,KAAK6jY,cAAevxI,EAAAA,EAAAA,eAActyP,KAAKwvY,qBAE3CA,iBAAkB,WACd,OAAOxvY,KAAK6kB,OAAO,cAAgB,QAEvCi/W,WAAY,SAASliY,GACjB,IAAIopC,EAAW,IAAIwnL,EAAAA,GAEnB,OADA5wN,EAAQ5B,KAAKyvY,gBAAgB7tY,IACxB+mD,EAAAA,EAAAA,IAAU/mD,IAGf5B,KAAK27R,YAAY37R,KAAKwvY,mBAAoB5tY,GAAOw3B,KAAK,SAASl5B,GAC3DF,KAAK4jY,eAAe5jY,KAAK6jY,aAAa3jY,GAAO0B,GAASopC,EAAS56B,QAAQlQ,GAAQ8qC,EAASU,UAC1FjhC,KAAKzK,OAAO8gC,MAAM,WAChBkK,EAASU,YAEb1rC,KAAK0vY,mBAAqB1kW,EACnBA,EAASx6B,WARLw6B,EAASU,SAASl7B,WAUjCgzX,oBAAqB,WACjB,IAAImM,EACJ,QAAUA,EAAwB3vY,KAAK0vY,0BAAuB,IAAWC,GAAiCA,EAAsBjkW,OAAO,CACnIq4V,oBAAoB,KAG5BN,iBAAkB,WACd,OAAOzjY,KAAK6kB,OAAO,UAEvB4qX,gBAAiB,SAAS7tY,GACtB,IAAI2iB,EAKJ,OAJA3iB,EAAQ,QAAU2iB,EAAS3iB,SAAU,IAAW2iB,EAASA,EAASvkB,KAAKyjY,qBAC1DzjY,KAAK65R,aAAe,SAAW75R,KAAKwvY,qBAC7C5tY,EAAQ5B,KAAK4vY,YAAYhuY,IAEtBkhQ,EAAAA,EAAAA,OAAuBlhQ,IAElCguY,YAAa,SAAShuY,GAClB,IAAIoF,EAAMhH,KAAK65R,YAAY7yR,MAC3B,GAAIzB,MAAMi2E,QAAQx0E,GAAM,CAEpB,IADA,IAAI6H,EAAS,GACJ9C,EAAI,EAAG2rD,EAAI1wD,EAAI1G,OAAQyL,EAAI2rD,EAAG3rD,IACnC8C,EAAO7H,EAAI+E,IAAMnK,EAAMoF,EAAI+E,IAE/B,OAAO8C,EAKX,OAHI7H,GAAO,kBAAoBpF,IAC3BA,EAAQA,EAAMoF,IAEXpF,GAEXgiY,eAAgB,SAASxhI,EAAQC,GAC7B,IAAIwtI,EAAgB7vY,KAAK65R,aAAe75R,KAAK65R,YAAY7yR,MACrD6H,EAAS7O,KAAK8vY,eAAe1tI,EAAQC,GAQzC,OAPKxzP,GAAUghY,IAAiBlnV,EAAAA,EAAAA,IAAUy5M,KAAWz5M,EAAAA,EAAAA,IAAU05M,KAEvDxzP,EADAtJ,MAAMi2E,QAAQq0T,GACL7vY,KAAK+vY,uBAAuB3tI,EAAQC,EAAQwtI,GAE5C7vY,KAAKgwY,cAAc5tI,EAAQC,EAAQwtI,IAG7ChhY,GAEXkhY,uBAAwB,SAAS3tI,EAAQC,EAAQr7P,GAC7C,IAAImjN,EAAW8lL,EAAAA,GACf,IAAK9lL,EAASi4C,KAAYj4C,EAASk4C,GAC/B,OAAO,EAEX,IAAK,IAAIt2P,EAAI,EAAG2rD,EAAI1wD,EAAI1G,OAAQyL,EAAI2rD,EAAG3rD,IACnC,GAAIq2P,EAAOp7P,EAAI+E,MAAQs2P,EAAOr7P,EAAI+E,IAC9B,OAAO,EAGf,OAAO,GAEXikY,cAAe,SAAS5tI,EAAQC,EAAQr7P,GACpC,IAAIkpY,EAAmBptI,EAAAA,EAAAA,OACnBqtI,GAAY3wI,EAAAA,EAAAA,eAAc0wI,EAAiB9tI,EAAOp7P,IAAOo7P,GACzDguI,GAAY5wI,EAAAA,EAAAA,eAAc0wI,EAAiB7tI,EAAOr7P,IAAOq7P,GAC7D,OAAOriQ,KAAK8vY,eAAeK,EAAWC,IAE1CN,eAAgB,SAAS1tI,EAAQC,GAC7B,OAAOtQ,EAAAA,EAAAA,cAAaqQ,GAAQ,MAAUrQ,EAAAA,EAAAA,cAAasQ,GAAQ,IAE/DgtI,sBAAuBr9K,EAAAA,KACvBq+K,iCAAkC,WAC9BrwY,KAAKqvY,wBACLrvY,KAAKilY,2BAA2B,eAAgBjlY,KAAK6kB,OAAO,kBAEhEyrX,sBAAuB,WACnB,IAAItlU,EAAYhrE,KAAK6kB,OAAO,aAE5B,OADuBylM,EAAAA,EAAAA,IAASt/I,IAAc,SAAWA,IAAakQ,EAAAA,EAAAA,IAAWlQ,GACvDA,EAAY,MAE1Ck6T,6BAA8B,SAAS1+W,GACnC,OAAQA,EAAKhZ,MACT,IAAK,QACDxN,KAAKsvY,qBACLtvY,KAAKilY,2BAA2B,SAChC,MACJ,IAAK,aACDjlY,KAAKu6R,kBACL,MACJ,IAAK,eACDv6R,KAAKqwY,mCACL,MACJ,IAAK,YACDrwY,KAAKovY,sBACL,MACJ,IAAK,cACDpvY,KAAKy6V,wBACLz6V,KAAKqvY,wBACLrvY,KAAKilY,2BAA2B,mBAIhD,qOCnKIsL,EAAgBluJ,EAAAA,QAAAA,QAAc,CAC9Bz+G,KAAM,WACF5jI,KAAKwwY,eAAiB,GACtBxwY,KAAKywY,YAAc,EACnBzwY,KAAK+6G,mBAAqB,GAE9B21R,YAAa,GACbC,qBAAsB,SAASjlY,EAAOklY,GAClC,IAAIh7M,EAAO51L,MACXya,EAAAA,EAAAA,IAAK/O,GAAQ,SAASgP,EAAGxa,GACrB,IAAI66H,GAAWpyE,EAAAA,EAAAA,IAAUioV,GAAaA,EAAYh7M,EAAKi7M,aAAa3wY,GAChE+1E,EAAO2/G,EAAKk7M,mBAAmB5wY,EAAM66H,GACzC66D,EAAK46M,eAAe5vY,KAAKq1E,GACzB2/G,EAAKm7M,qBAAqB96T,EAAK6mS,eAAe91W,KAC9C4uL,EAAK86M,YAAYz6T,EAAK6mS,eAAe91W,KAAO4uL,EAAK46M,eAAelwY,OAAS,EACrEs1L,EAAKo7M,iBAAiB9wY,IACtB01L,EAAK+6M,qBAAqB/6M,EAAKq7M,eAAe1tI,QAAQ73P,MAAMxL,GAAO+1E,EAAK6mS,eAAe91W,SAInG+pY,qBAAsB,SAAS/pY,GAC3B,IAAI2hD,EAAAA,EAAAA,IAAU3oD,KAAK0wY,YAAY1pY,IAC3B,MAAMi7N,EAAAA,EAAAA,MAAa,QAASj7N,IAGpC6pY,aAAc,SAAS3wY,GACnB,MAAO,UAAYF,KAAKkxY,UAAYlxY,KAAKixY,eAAe1tI,QAAQqtI,UAAU1wY,QAAQ,GAEtF8wY,iBAAkB,SAAS9wY,GACvB,GAAI,UAAYF,KAAKkxY,UAArB,CAGA,IAAIxlY,EAAQ1L,KAAKixY,eAAe1tI,QAAQ73P,MAAMxL,GAC9C,OAAOwL,GAASA,EAAMpL,SAE1B6wY,cAAe,SAASjxY,GACpB,IAAIi3Q,EAAYn3Q,KAAKixY,eAAe1tI,QAAQv8P,IACxCoqY,EAAUj6H,EAAUj3Q,GAExB,OADmBi3Q,IAAci6H,GAAW,IAAMA,KAAYh5I,EAAAA,EAAAA,IAAYg5I,GACpDA,EAAUpxY,KAAKqxY,iBAEzCP,mBAAoB,SAAS5wY,EAAM0wY,GAC/B5wY,KAAKywY,eACL,IAAUvwY,EAAK2I,SAAW7I,KAAK+6G,qBAC/B,IAAI9kC,EAAO,CACP6mS,eAAgB,CACZ1xW,SAAUpL,KAAKixY,eAAe1tI,QAAQn4P,SAASlL,EAAM,CACjDq0C,cAAc,IAElB61V,SAAUpqY,KAAKixY,eAAe1tI,QAAQ6mI,SAASlqY,EAAM,CACjDq0C,cAAc,IAElBtnB,SAAUjtB,KAAKixY,eAAe1tI,QAAQt2O,SAAS/sB,EAAM,CACjDq0C,cAAc,IAElBvtC,IAAKhH,KAAKmxY,cAAcjxY,GACxB0wY,WAAWjoV,EAAAA,EAAAA,IAAUioV,GAAaA,EAAY5wY,KAAKsxY,WACnDpxY,KAAMF,KAAKuxY,yBAAyBrxY,GACpCyjX,aAAc,KAKtB,OAFA76W,EAAAA,EAAAA,GAAOmtE,EAAM/1E,UACN+1E,EAAKvqE,MACLuqE,GAEXu7T,gBAAiB,WACb,IAAI57M,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS91X,EAAGu7D,GACnC,GAAIA,EAAK6mS,eAAe8zB,YAAch7M,EAAK07M,WAA3C,CAGA,IAAI7lY,EAASmqL,EAAK67M,cAAcx7T,GAChCxqE,GAAUA,EAAOqxW,eAAe6G,aAAa/iX,KAAKq1E,EAAK6mS,eAAe91W,UAG9EuqY,yBAA0B,SAASrxY,GAC/B,IAAIk4P,EAAAA,EAAAA,IAAYl4P,GAAO,CACnB,IAAI8G,EAAM9G,EACVA,EAAO,GACPF,KAAKixY,eAAeS,QAAQ1qY,IAAI9G,EAAM8G,GAE1C,OAAO9G,GAEXyxY,qBAAsB,SAAS17T,EAAMxqE,GACjC,IAAKwqE,EACD,OAAO,KAEX,IAAI27T,EAAa,CACbjvY,KAAM3C,KAAKixY,eAAe1tI,QAAQlkP,QAAQ42D,GAC1CjvE,IAAKivE,EAAK6mS,eAAe91W,IACzBimB,SAAUgpD,EAAK6mS,eAAe7vV,SAC9Bm9W,SAAUn0T,EAAK6mS,eAAestB,SAC9Bh/X,SAAU6qE,EAAK6mS,eAAe1xW,SAC9BK,OAAQA,GAAU,KAClBo/D,SAAUoL,EAAK6mS,eAAe58W,KAC9B6K,SAAU,GACVW,MAAO,IAMX,OAJIkmY,EAAWnmY,SACXmmY,EAAWnmY,OAAOV,SAASnK,KAAKgxY,GAChCA,EAAWnmY,OAAOC,MAAM9K,KAAKgxY,IAE1BA,GAEXC,qBAAsB,SAAShkY,EAAMpC,GACjC,IAAKoC,EAAKvN,OACN,MAAO,GAEX,IAAIs1L,EAAO51L,KACP8xY,EAAc,GAQlB,OAPAr3X,EAAAA,EAAAA,IAAK5M,GAAO,SAAS6M,EAAGu7D,GACpBA,GAAOmiL,EAAAA,EAAAA,IAAYniL,GAAQ2/G,EAAKm8M,UAAU97T,GAAQA,EAClD,IAAI27T,EAAah8M,EAAK+7M,qBAAqB17T,EAAMxqE,GACjDmmY,EAAW7mY,SAAW6qL,EAAKi8M,qBAAqB57T,EAAK6mS,eAAe6G,aAAciuB,GAClFE,EAAYlxY,KAAKgxY,GACjB37T,EAAK6mS,eAAe80B,WAAaA,KAE9BE,GAEXE,iBAAkB,SAASC,GACvBjyY,KAAKixY,eAAiBgB,GAE1BF,UAAW,SAAS/qY,GAChB,OAAOhH,KAAKwwY,eAAexwY,KAAK0kW,cAAc19V,KAAS,MAE3DyqY,cAAe,SAASx7T,GACpB,OAAOj2E,KAAK+xY,UAAU97T,EAAK6mS,eAAe8zB,YAE9CsB,SAAU,SAASrkY,EAAM7G,GACrB,GAAI,OAASA,QAAO,IAAWA,EAC3B,OAAO,KAEX,IAAI6H,EAAS,KACT+mL,EAAO51L,KACPkyY,EAAW,SAASrkY,EAAM7G,GAQ1B,OAPAyT,EAAAA,EAAAA,IAAK5M,GAAO,SAAS6M,EAAG5a,GAEpB,IADwBA,EAAQg9W,gBAAkBh9W,EAAQg9W,eAAe91W,KAAO4uL,EAAKq7M,eAAe1tI,QAAQv8P,IAAIlH,IAC1F2O,aAAezH,EAAIyH,WAErC,OADAI,EAAS/O,GACF,KAGR+O,GAEX,OAAOqjY,EAASrkY,EAAM7G,IAE1BqqY,cAAe,WACX,OAAOrxY,KAAKywY,aAEhB0B,qBAAsB,WAClB,OAAOnyY,KAAK+6G,oBAEhBq3R,iBAAkB,WACd,IAAIx8M,EAAO51L,KACXA,KAAK0wY,YAAc,IACnBj2X,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS3vY,EAAOo1E,GACvC2/G,EAAKm7M,qBAAqB96T,EAAK6mS,eAAe91W,KAC9C4uL,EAAK86M,YAAYz6T,EAAK6mS,eAAe91W,KAAOnG,MAGpDwxY,mBAAoB,WAChBryY,KAAK0wY,YAAc,GACnB1wY,KAAKsyY,qBACLtyY,KAAKoyY,mBACLpyY,KAAKwxY,mBAETc,mBAAoB,WAChBtyY,KAAK0wY,YAAc,IACnBj2X,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS3vY,EAAOo1E,GACvCA,EAAK6mS,eAAe6G,aAAe,OAG3Cjf,cAAe,SAAS19V,GACpB,OAAOhH,KAAK0wY,YAAY1pY,IAE5BurY,qBAAsB,SAAS7mY,EAAO82W,EAAW/xQ,GAQ7C,OAPAzwG,KAAKywY,YAAc,EACnBzwY,KAAK+6G,mBAAqB,EAC1B/6G,KAAKsxY,WAAa9uB,EAClBxiX,KAAKkxY,UAAYzgS,EACjBzwG,KAAK0wY,YAAc,GACnB1wY,KAAK2wY,qBAAqBjlY,GAC1B1L,KAAKwxY,kBACExxY,KAAKwwY,kBAGpB,IClLIgC,EAAW,WACXC,EAAW,WAEfC,EAAAA,EAAAA,eAAgCt7B,EAAAA,SAChC,IAAIu7B,EAActwJ,EAAAA,QAAAA,QAAc,CAC5Bz+G,KAAM,SAASxpH,GACXpa,KAAKoa,QAAU,IACftR,EAAAA,EAAAA,GAAO9I,KAAKoa,QAASpa,KAAK4yY,kBAAmBx4X,GAC7Cpa,KAAKoa,QAAQy4X,cAAcb,iBAAiBhyY,KAAKoa,QAAQ04X,eACzD9yY,KAAK+yY,mBAAqB,GAC1B/yY,KAAKgzY,mBAAqB,GAC1BhzY,KAAKwwY,eAAiB,GACtBxwY,KAAKizY,+BACLjzY,KAAKkzY,gBAET1tQ,UAAW,SAASh4H,EAAM5L,GACtB5B,KAAKoa,QAAQ5M,GAAQ5L,EACjB,uBAAyB4L,GACzBxN,KAAK2zG,oBAGbi/R,gBAAiB,WACb,MAAO,CACHE,mBAAe,EACfpnY,MAAO,GACP+2W,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpBH,UAAW,EACXxsP,YAAa,GACbvlB,SAAU,OACV73B,WAAY,WACZi6T,cAAe,IAAIM,EACnBC,cAAephL,EAAAA,KACfxsK,KAAM,OAGdytV,6BAA8B,WAC1BjzY,KAAKqzY,sBAAwBrzY,KAAKoa,QAAQy4X,cAAcN,qBAAqBvyY,KAAKoa,QAAQ1O,MAAO1L,KAAKoa,QAAQooW,UAAWxiX,KAAKoa,QAAQq2F,UACtIzwG,KAAKwwY,eAAiBxwY,KAAKoa,QAAQ47G,YAAY11H,OAASN,KAAKk5J,OAAOl5J,KAAKoa,QAAQ47G,aAAeh2H,KAAKqzY,sBACrGrzY,KAAKoa,QAAQy4X,cAAcrC,eAAiBxwY,KAAKwwY,eACjDxwY,KAAK2zG,mBACL3zG,KAAKszY,oBAET3/R,iBAAkB,WACV3zG,KAAKoa,QAAQsoW,qBACb1iX,KAAKuzY,wBACLvzY,KAAKwzY,uBAETxzY,KAAK+yY,mBAAqB/yY,KAAKyzY,sBAAsBhB,IAEzDa,iBAAkB,SAAStsY,GACnBhH,KAAKoa,QAAQuoW,qBACb37W,EAAMhH,KAAK0zY,iBAAiB1sY,GAAOhH,KAAK2zY,uBAE5C3zY,KAAKgzY,mBAAqBhzY,KAAKyzY,sBAAsBjB,IAEzDiB,sBAAuB,SAASxgX,GAC5B,IAAI2iK,EAAO51L,KACPq4C,EAAQ,GAcZ,OAbA59B,EAAAA,EAAAA,IAAKm7K,EAAKg+M,2BAA4B,SAASl5X,EAAGu7D,GACzC2/G,EAAKi+M,eAAe59T,IAGrBA,EAAK6mS,eAAe7pV,KAChBA,IAAau/W,GAAY58M,EAAKx7K,QAAQqoW,kBACtCpqU,EAAMz3C,KAAKq1E,EAAK6mS,eAAe91W,MAE/BqxC,EAAM/3C,QAAUs1L,EAAKitL,gBAAgBxqU,EAAM,IAAI,GAAO,GACtDA,EAAQ,CAAC49B,EAAK6mS,eAAe91W,UAIlCqxC,GAEXu7V,wBAAyB,WACrB,OAAO5zY,KAAKoa,QAAQqoW,kBAAoBziX,KAAKs4G,UAAYt4G,KAAK8zY,eAElED,eAAgB,SAAS59T,GACrB,OAAO,IAAUA,EAAK6mS,eAAe58W,KAAK2I,SAE9CkpY,UAAW,SAASlkY,EAAM7G,GACtB,OAAO6G,IAAS7N,KAAKwwY,eAAiBxwY,KAAKoa,QAAQy4X,cAAcd,UAAU/qY,GAAOhH,KAAKoa,QAAQy4X,cAAcX,SAASrkY,EAAM7G,IAEhIusY,sBAAuB,WACnB,IAAI39M,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS91X,EAAGu7D,GACnC,GAAKA,EAAK6mS,eAAe6G,aAAarjX,OAAtC,CAGA,IAAIyN,EAAakoE,EAAK6mS,eAAe7vV,UACrC,IAASlf,GAAc6nL,EAAKm+M,yBAAyB99T,EAAMloE,QAGnEylY,oBAAqB,WACjB,IAAI59M,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS91X,EAAGu7D,GACtB2/G,EAAKx7K,QAAQy4X,cAAcpB,cAAcx7T,IACxCA,EAAK6mS,eAAe8zB,YAAch7M,EAAKx7K,QAAQooW,WACzD5sL,EAAKo+M,gBAAgB/9T,GAAO,SAASxqE,GACjC,IAAIwoY,EAAiBr+M,EAAKs+M,wBAAwBzoY,GAClDmqL,EAAKu+M,eAAe1oY,EAAQgnY,EAAUwB,UAKtDN,oBAAqB,WACjB,IAAI/9M,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS91X,EAAGu7D,GAC9BA,EAAK6mS,eAAestB,UAGzBx0M,EAAK89M,iBAAiBz9T,EAAK6mS,eAAe91W,SAGlD0sY,iBAAkB,SAAS1sY,GACvB,IAAI4uL,EAAO51L,KACPi2E,EAAOj2E,KAAKijX,aAAaj8W,GAC7B4uL,EAAKo+M,gBAAgB/9T,GAAO,SAASxqE,GACjCmqL,EAAKu+M,eAAe1oY,EAAQ+mY,GAAU,OAG9C4B,iBAAkB,SAASn+T,EAAMo+T,EAAW7lV,EAAU8lV,GAClD,IAAKp5T,EAAAA,EAAAA,IAAW1sB,GAAhB,CAGA,IAAIonI,EAAO51L,KACPu0Y,EAAUt+T,EAAK6mS,eAAe91W,KAE7B,KADLstY,EAAgBA,GAAiB,IACRnuY,QAAQouY,KAC7BD,EAAc1zY,KAAK2zY,IACnB95X,EAAAA,EAAAA,IAAKw7D,EAAK6mS,eAAe6G,cAAe,SAASjpW,EAAG1T,GAChD,IAAI8X,EAAQ82K,EAAKqtL,aAAaj8W,GAC9BwnD,EAAS1vC,GACLA,EAAMg+V,eAAe6G,aAAarjX,QAAU+zY,GAC5Cz+M,EAAKw+M,iBAAiBt1X,EAAOu1X,EAAW7lV,EAAU8lV,SAKlEN,gBAAiB,SAAS/9T,EAAMznB,EAAU8lV,GACtC,GAAIr+T,EAAK6mS,eAAe8zB,YAAc5wY,KAAKoa,QAAQooW,YAActnS,EAAAA,EAAAA,IAAW1sB,GAA5E,CAGA8lV,EAAgBA,GAAiB,GACjC,IAAIttY,EAAMivE,EAAK6mS,eAAe91W,IAC9B,IAAK,IAAMstY,EAAcnuY,QAAQa,GAAM,CACnCstY,EAAc1zY,KAAKoG,GACnB,IAAIyE,EAASzL,KAAKoa,QAAQy4X,cAAcpB,cAAcx7T,GAClDxqE,IACA+iD,EAAS/iD,GACLA,EAAOqxW,eAAe8zB,YAAc5wY,KAAKoa,QAAQooW,WACjDxiX,KAAKg0Y,gBAAgBvoY,EAAQ+iD,EAAU8lV,OAKvDJ,wBAAyB,SAASj+T,GAK9B,IAJA,IAAIyvR,EAAazvR,EAAK6mS,eAAe6G,aAAarjX,OAC9Ck0Y,EAAqB,EACrBC,EAAsB,EACtB5lY,GAAS,EACJ9C,EAAI,EAAGA,GAAK25V,EAAa,EAAG35V,IAAK,CACtC,IAAImuQ,EAAYl6Q,KAAKijX,aAAahtS,EAAK6mS,eAAe6G,aAAa53W,IAC/D2oY,GAAmB,IAAUx6H,EAAU4iG,eAAe58W,KAAK2I,QAC3D8rY,EAAaz6H,EAAU4iG,eAAe7vV,SACtCynX,EACAD,IAGAE,EACAH,SACO,IAAWG,IAClBH,GAAsB,IAM9B,OAHIA,IACA3lY,EAAS2lY,IAAuB9uC,EAAa+uC,QAA6B,GAEvE5lY,GAEXklY,yBAA0B,SAAS99T,EAAMkhB,GACrC,IAAIy+F,EAAO51L,KACXA,KAAKo0Y,iBAAiBn+T,GAAM,GAAO,SAASn3D,GACpC82K,EAAKi+M,eAAe/0X,IACpB82K,EAAKu+M,eAAer1X,EAAO2zX,EAAUt7S,OAIjDg9S,eAAgB,SAASl+T,EAAM1xC,EAAO4yD,GAC9BlhB,EAAK6mS,eAAev4U,KAAW4yD,IAGnClhB,EAAK6mS,eAAev4U,GAAS4yD,EACzBlhB,EAAK6mS,eAAe80B,aACpB37T,EAAK6mS,eAAe80B,WAAWrtW,GAAS4yD,GAE5Cn3F,KAAKoa,QAAQ04X,cAAcpB,QAAQntW,GAAO0xC,EAAK6mS,eAAe58W,KAAMi3F,GACpEn3F,KAAKoa,QAAQg5X,cAAcn9T,KAE/B2+T,cAAe,SAAS7tY,GACpB,IAAI6uL,EAAO51L,MACXya,EAAAA,EAAAA,IAAK1T,GAAO,SAAS2T,EAAG1T,GACpB,IAAInG,EAAQ+0L,EAAK8uK,cAAc19V,GAC3BivE,EAAO2/G,EAAKqtL,aAAaj8W,GAC7B4uL,EAAK46M,eAAe3vY,GAAS,EAC7Bo1E,EAAK6mS,eAAe6G,aAAarjX,QAAUs1L,EAAKg/M,cAAc3+T,EAAK6mS,eAAe6G,kBAG1FkxB,YAAa,SAAS7tY,GAClB,IAAIivE,EAAOj2E,KAAKijX,aAAaj8W,GAC7BhH,KAAKwwY,eAAexwY,KAAK0kW,cAAc19V,IAAQ,EAC/ChH,KAAK40Y,cAAc3+T,EAAK6mS,eAAe6G,cACvC,IAAI/tL,EAAO51L,KACPqkJ,EAAU,EACV34I,GAAQ5C,EAAAA,EAAAA,GAAO,GAAI9I,KAAKwwY,iBAC5B/1X,EAAAA,EAAAA,IAAK/O,GAAQ,SAAS7K,EAAOX,GACpBA,IACD01L,EAAK46M,eAAejhY,OAAO1O,EAAQwjJ,EAAS,GAC5CA,SAIZywP,SAAU,SAAS50Y,GACf,IAAI2yY,EAAgB7yY,KAAKoa,QAAQy4X,cAC7B58T,EAAO48T,EAAc/B,mBAAmB5wY,EAAMF,KAAKoa,QAAQ04X,cAAcvvI,QAAQqtI,UAAU1wY,IAC/FF,KAAKwwY,eAAiBxwY,KAAKwwY,eAAe50W,OAAOq6C,GACjDj2E,KAAKqzY,sBAAwBrzY,KAAKqzY,sBAAsBz3W,OAAOq6C,GAC/D48T,EAAcrC,eAAiBqC,EAAcrC,eAAe50W,OAAOq6C,IAEvE8+T,cAAe,WACX/0Y,KAAKoa,QAAQy4X,cAAcR,qBAC3BryY,KAAK2zG,mBACL3zG,KAAKszY,oBAETvwB,qBAAsB,WAClB,OAAO/iX,KAAK+yY,oBAEhBiC,qBAAsB,WAClB,OAAOh1Y,KAAKgzY,oBAEhB16R,QAAS,WACL,OAAOt4G,KAAKwwY,gBAEhBsD,YAAa,WACT,OAAO9zY,KAAKqzY,uBAEhBh4B,cAAe,SAASn7W,GACpB,IAAI2O,EAAS,KAOb,OANA4L,EAAAA,EAAAA,IAAKza,KAAKwwY,gBAAiB,SAAS91X,EAAGu7D,GACnC,GAAIA,EAAK6mS,eAAe58W,OAASA,EAE7B,OADA2O,EAASonE,GACF,KAGRpnE,GAEXomY,gBAAiB,SAASvpY,GACtB,IAAIkqL,EAAO51L,KACPwtP,EAAQ,GAKZ,OAJA/yO,EAAAA,EAAAA,IAAK/O,GAAQ,SAASgP,EAAGxa,GACrB,IAAI+1E,EAAO2/G,EAAKylL,cAAcn7W,GAC9B+1E,GAAQu3K,EAAM5sP,KAAKq1E,MAEhBu3K,GAEXy1H,aAAc,SAASj8W,EAAK6G,GACxB,OAAO7N,KAAK+xY,UAAUlkY,GAAQ7N,KAAK4zY,0BAA2B5sY,IAElEksY,aAAc,WACV,OAAOlzY,KAAKoa,QAAQy4X,cAAchB,qBAAqB7xY,KAAKugX,iBAEhE8wB,cAAe,WACX,OAAOrxY,KAAKoa,QAAQy4X,cAAcxB,iBAEtCc,qBAAsB,WAClB,OAAOnyY,KAAKoa,QAAQy4X,cAAcV,wBAEtC+C,cAAe,SAASj/T,GACpB,OAAOA,EAAK6mS,eAAe80B,YAE/BrxB,aAAc,WACV,OAAOvgX,KAAKm1Y,iBAAiBn1Y,KAAKoa,QAAQooW,YAE9C2yB,iBAAkB,SAASvE,GACvB,OAAO54G,EAAAA,EAAAA,SAAMh4R,KAAKwwY,eAAgB,CAC9BzqH,WAAY/lR,KAAKoa,QAAQ2rQ,aAC1BngR,OAAO,CAAC,2BAA4BgrY,IAAY92K,WAEvD4qI,cAAe,SAAS19V,GACpB,OAAOhH,KAAKoa,QAAQy4X,cAAcnuC,cAAc19V,IAEpDouY,QAAS,SAASl1Y,GACdF,KAAK80Y,SAAS50Y,GACdF,KAAK+0Y,iBAETlgX,WAAY,SAAS7tB,GACjBhH,KAAK60Y,YAAY7tY,GACjBhH,KAAK+0Y,iBAETlyB,gBAAiB,SAAS77W,EAAKmwF,EAAOk+S,GAClC,IAAIC,EAAuBt1Y,KAAKu1Y,sBAAsBp+S,GAClDlhB,EAAOj2E,KAAK+xY,UAAUsD,GAAmBC,EAAuBt1Y,KAAKqzY,sBAAwBrzY,KAAKwwY,eAAgBxpY,GACtHhH,KAAKm0Y,eAAel+T,EAAMw8T,EAAUt7S,GAChCn3F,KAAKoa,QAAQsoW,qBAAuB2yB,IACpCl+S,EAAQn3F,KAAKuzY,wBAA0BvzY,KAAK+zY,yBAAyB99T,EAAMkhB,GAC3En3F,KAAKwzY,uBAETxzY,KAAK+yY,mBAAqB/yY,KAAKyzY,sBAAsBhB,IAEzD8C,sBAAuB,SAASC,GAC5B,OAAQx1Y,KAAKoa,QAAQqoW,oBAAsB+yB,GAE/CC,wBAAyB,SAASzuY,EAAKmwF,GACnC,IAAIlhB,EAAOj2E,KAAKijX,aAAaj8W,GAC7BhH,KAAKm0Y,eAAel+T,EAzTb,WAyT6BkhB,IAExCu+S,gBAAiB,SAASv+S,GACtB,IAAKxuC,EAAAA,EAAAA,IAAUwuC,GAAf,CAGA,IAAIy+F,EAAO51L,KACP21Y,EAAkB//M,EAAKm9M,mBAAmBn9M,EAAKm9M,mBAAmBzyY,OAAS,GAC3Es1Y,EAAgBhgN,EAAK2/M,sBAAsBp+S,GAASn3F,KAAKqzY,sBAAwBrzY,KAAKwwY,gBAC1F/1X,EAAAA,EAAAA,IAAKm7X,GAAgB,SAAS/0Y,EAAOo1E,GAC5B2/G,EAAKi+M,eAAe59T,IAGzB2/G,EAAKu+M,eAAel+T,EAAMw8T,EAAUt7S,MAExCy+F,EAAKm9M,mBAAqBn9M,EAAK69M,sBAAsBhB,IAChDt7S,GAASy+F,EAAKx7K,QAAQmpV,mBACvB3tK,EAAKitL,gBAAgB8yB,GAAiB,KAG9CrgQ,cAAe,WACX,QAAIt1I,KAAK+iX,uBAAuBziX,SACrBN,KAAK+iX,uBAAuBziX,SAAWN,KAAKmyY,6BAAgC,IAK3F0D,gBAAiB,SAAS7uY,EAAKmwF,GAC3B,IAAIlhB,EAAOj2E,KAAKijX,aAAaj8W,GAC7BhH,KAAKm0Y,eAAel+T,EAAMu8T,EAAUr7S,GAChCA,GACAn3F,KAAKszY,iBAAiBtsY,GAE1BhH,KAAKgzY,mBAAqBhzY,KAAKyzY,sBAAsBjB,IAEzD99W,WAAY,SAASx0B,GACjB,OAAQF,KAAKoa,QAAQ47G,YAAY11H,UAAYN,KAAK81Y,qBAAqB91Y,KAAKoa,QAAQ47G,YAAa,CAAC91H,IAAOI,QAE7Gy1Y,gBAAiB,SAASxsX,EAAU3nB,EAAOyrF,GACvC,IAAIymM,EAAe,GACnB,OAAKvuR,MAAMi2E,QAAQjyD,KAGnB9O,EAAAA,EAAAA,IAAK8O,GAAW,SAASxd,EAAG7L,GACxB4zR,EAAalzR,KAAK,CAACV,EAAMmtF,EAAWzrF,GAAQ,SAEhDkyR,EAAa17O,MACN07O,GANI,CAACvqQ,EAAU8jE,EAAWzrF,IAQrCk0Y,qBAAsB,SAASE,EAAaJ,GACxC,IAAIrsX,EAAWvpB,KAAKoa,QAAQq+D,YAAcz4E,KAAKoa,QAAQ04X,cAAcvvI,QAAQlkP,QACzEguE,EAAYqlT,EAAAA,EAAAA,yBAA0C1yY,KAAKoa,QAAQw+D,YACnEx5C,EAAWp/B,KAAK+1Y,gBAAgBxsX,EAAUysX,EAAa3oT,GAE3D,OADAuoT,EAAgBA,GAAiB51Y,KAAKqzY,uBAC/Br7G,EAAAA,EAAAA,SAAM49G,EAAe,CACxB7vH,WAAY/lR,KAAKoa,QAAQ2rQ,aAC1BngR,OAAOw5B,GAAU06L,WAExB5gE,OAAQ,SAASljC,GACb,IAAI4/D,EAAO51L,KACP+4F,EAAU/4F,KAAK81Y,qBAAqB9/Q,GACpC68Q,EAAgB7yY,KAAKoa,QAAQy4X,cAuCjC,OAtCE,SAASoD,EAAel9S,EAASl4F,GAE/B,IADA,IAAIP,EAASy4F,EAAQz4F,OACdO,EAAQP,GAAQ,CACnB,IAAI21E,EAAO8iB,EAAQl4F,GACnB,GAAIo1E,EAAK6mS,eAAe8zB,YAAch7M,EAAKx7K,QAAQooW,UAAnD,CAIA,IAAI/2W,EAASonY,EAAcpB,cAAcx7T,GACpCxqE,GAKAA,EAAOqxW,eAAestB,UACvBx0M,EAAKu+M,eAAe1oY,EAAQ+mY,GAAU,GAEtCz5S,EAAQ+iC,SAASrwH,GACjB5K,KAGJk4F,EAAQxpF,OAAO1O,EAAO,EAAG4K,GACzBwqY,EAAel9S,EAASl4F,MAZpBohO,EAAAA,EAAAA,IAAW,QAAShsJ,EAAK6mS,eAAe8zB,UAAW36T,EAAK6mS,eAAe91W,KACvEnG,UANAA,KALV,CAwBAk4F,EAAS,GACP/4F,KAAKoa,QAAQorC,OACbuzC,EAAU0qL,EAAAA,EAAAA,gBAA2BuU,EAAAA,EAAAA,SAAMj/L,GAAU,CACjDvzC,KAAMxlD,KAAKoa,QAAQorC,KACnBugO,WAAY/lR,KAAKoa,QAAQ2rQ,aAC1BjsD,WAEP+4K,EAAcnC,YAAc,IAC5Bj2X,EAAAA,EAAAA,IAAKs+E,GAAU,SAASl4F,EAAOo1E,GAC3BA,EAAK6mS,eAAe6G,aAAe,GACnCkvB,EAAcnC,YAAYz6T,EAAK6mS,eAAe91W,KAAOnG,KAEzDgyY,EAAcrC,eAAiBz3S,EAC/B85S,EAAcrB,kBACPqB,EAAcrC,kBAG7B,yBC5ZI0F,EAAuB,oBACvB1wB,EAA+BrrC,EAAAA,EAAAA,QAAyB,CACxD1nH,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B+lD,QAAS,KACT/rP,YAAa,OACb4qX,aAAc,WACd57C,aAAc,WACd67C,UAAW,QACX7oE,mBAAmB,EACnB8oE,aAAc,WACdC,aAAc,cAGtB1zJ,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,OAI/B96P,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKu2Y,iBACLv2Y,KAAKw2Y,mBACLx2Y,KAAKqvY,yBAET90G,gBAAiB,WACbv6R,KAAKuxN,WACLvxN,KAAK65R,aAAe75R,KAAK65R,YAAYpzO,UAAS,IAElD+vV,iBAAkB,WACd,IAAIvE,EAAYjyY,KAAKy2Y,8BACrBz2Y,KAAKo7W,aAAe,IAAIs7B,GAAwB5tY,EAAAA,EAAAA,GAAO,CACnDgqY,cAAe,CACXvvI,QAAS0uI,EAAU1uI,QACnBmuI,QAASO,EAAUP,SAEvBhmY,MAAO1L,KAAK6kB,OAAO,UACpB7kB,KAAK22Y,4BAEZA,uBAAwB3kL,EAAAA,KACxB4kL,uBAAwB5kL,EAAAA,KACxBq9K,sBAAuB,WACnB,IAAI59W,EAAS,CAAC,OAAQ,OAAQ,QAAS,QAAQmK,OAAO57B,KAAK42Y,0BAC3D52Y,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAM,IAAIy3P,EAAAA,EAAiB33P,KAAK62Y,YAAYpsY,KAAKzK,MAAOyxB,EAAQzxB,KAAK6kB,OAAO,kCAAmC,CAC3GliB,KAAM3C,KAAK26V,eACXjvV,MAAO1L,KAAKqlX,kBAIxBwxB,YAAa,SAAStvW,EAAYsjC,GAC9BtjC,EAAWigB,KAAKqjB,EAASrjB,MAAMznC,OAAO/f,KAAKgiX,kBAAkBn3S,IAAW9qD,OAAO/f,KAAKiiX,kBAAkBp3S,KAE1Gm3S,kBAAmB,SAASn3S,GACxB,OAAOA,EAASlrD,MAAO2yP,EAAAA,EAAAA,GAAkBznM,EAASlrD,WAAQ,GAE9DsiW,kBAAmB,SAASp3S,GACxB,OAAOn9D,EAAAA,EAAAA,GAAE,UAAU/K,KAAKkoE,EAASloE,OAErC4zY,eAAgB,WACZ,IAAI3gN,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAK82Y,iBAAkB,SAASp8X,EAAGq8X,GACpCnhN,EAAKohN,iBAAiBD,MAE1B/2Y,KAAKy6V,yBAETq8C,cAAe,WACX,MAAO,CAAC,MAAO,WAAY,QAAS,WAAY,WAAY,aAEhEj6B,eAAgB,SAAS5mS,GACrB,IAAI2/G,EAAO51L,KACP60H,EAAM,GAKV,OAJAp6G,EAAAA,EAAAA,IAAKw7D,EAAK6mS,eAAe6G,cAAe,SAASjpW,EAAG1T,GAChD,IAAIkzQ,EAAYtkF,EAAKwlL,aAAa6H,aAAaj8W,GAC/C6tH,EAAIj0H,KAAKs5Q,MAENrlJ,GAEXoiR,aAAc,SAAShhU,GACnB,OAAOA,GAAQA,EAAK6mS,eAAe6G,aAAarjX,QAEpD02Y,iBAAkB,SAAShxJ,GACvB,IAAIyd,EAAS,IAAMzd,EAAa,SAC5BwgI,EAAS,IAAMxgI,EAAa,SAC5BkxJ,EAAal3Y,KAAK6kB,OAAOmhO,EAAa,QAC1C,OAAKkxJ,GAIMh8T,EAAAA,EAAAA,IAAWg8T,IAClBl3Y,KAAKwmX,GAAU,SAAS94S,EAAK9rE,GACzB8rE,EAAIwpU,KAAgBt1Y,QAExB5B,KAAKyjQ,GAAU,SAAS/1L,GACpB,OAAOA,EAAIwpU,SAInBl3Y,KAAKyjQ,IAAUnR,EAAAA,EAAAA,eAAc4kJ,QAC7Bl3Y,KAAKwmX,IAAUv0H,EAAAA,EAAAA,eAAcilJ,MAbzBl3Y,KAAKyjQ,GAAUzxC,EAAAA,UACfhyN,KAAKwmX,GAAUx0J,EAAAA,QAcvBykL,4BAA6B,WACzB,IAAI7gN,EAAO51L,KACPiyY,EAAY,CACZ1uI,QAAS,GACTmuI,QAAS,IAUb,OARAj3X,EAAAA,EAAAA,IAAKza,KAAK82Y,iBAAkB,SAASp8X,EAAGq8X,GACpC,IAAII,EAAa,IAAMJ,EAAW,SAC9B79E,EAAa,IAAM69E,EAAW,SAC9BK,EAAc,aAAeL,EAAW,YAAcA,EAC1D9E,EAAU1uI,QAAQ6zI,GAAexhN,EAAKuhN,GACtClF,EAAUP,QAAQ0F,GAAexhN,EAAKsjI,MAE1C+4E,EAAU1uI,QAAQlkP,QAAWrf,KAAK26V,eAA6C36V,KAAK26V,eAAjC,SAAA9vR,GAAQ,OAAIA,EAASloE,MACjEsvY,GAEXxnJ,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAK67W,mBAETA,gBAAiB,WACb77W,KAAK+oS,eAAetpR,SAASzf,KAAKogX,iBAEtCA,aAAcpuJ,EAAAA,KACd6uI,iBAAkB,SAAShgW,EAAOgqE,GAC9B,IAAI+1R,EAAa5gW,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAE3C,OADA64V,EAAWpqI,YAAY0/K,IAAwBl2Y,KAAKyjX,gBAAgB54S,IAC7D+1R,GAEX1kI,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,cACL,IAAK,UACDxN,KAAKu2Y,iBACLv2Y,KAAKqvY,wBACLrvY,KAAKslB,UACL,MACJ,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,eACL,IAAK,eACDtlB,KAAKu2Y,iBACLv2Y,KAAKw2Y,mBACLx2Y,KAAKslB,UACL,MACJ,IAAK,QACDtlB,KAAKw2Y,mBACLx2Y,KAAKuxN,SAAS/qM,GACd,MACJ,QACIxmB,KAAKuxN,SAAS/qM,OAI9B,sIC3KA,EAhBmC,CAC/B6wX,aAAc,WACV,QAASr3Y,KAAKs3Y,aAAah3Y,QAE/Bg3Y,WAAY,WACR,OAAOt3Y,KAAK6+P,MAAMh6O,OAAO,cAE7B0yX,eAAgB,WACZ,OAAOv3Y,KAAK6+P,MAAMh6O,OAAO,sBAE7B2yX,gBAAiB,SAASp9K,EAAc35M,GACpCzgB,KAAK6+P,MAAMg7F,2BAA2Bz/H,EAAc35M,EAAQ,GAAI,CAC5D42N,kBAAmB,CAAC,WAAY,mECGxCogK,EAAoB,wBAExBC,EAAAA,EAAAA,GAAkB,OAAQ,UAAWC,EAAAA,EAAAA,QAAsB,CACvDnlU,MAAO,WACH,IAAIolU,GAAQlqY,EAAAA,EAAAA,GAAE,SAAS+R,SAASg4X,GAChCz3Y,KAAK6+P,MAAMhlP,WAAWkG,OAAO63X,GAC7B53Y,KAAKgL,MAAQhL,KAAK63Y,eAAeD,IAErCC,eAAgB,SAASh+X,GACrB,OAAO7Z,KAAK6+P,MAAMzX,iBAAiBvtO,EAAUqiW,EAAAA,QAAS,CAClDjhI,SAAS,EACTmiI,gBAAgB,EAChBD,oBAAoB,EACpB72V,mBAAoB,SAAS9lB,GACzB,QAAQkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAM0tY,GAAmBn3Y,QAEzDgkO,UAAW,CACP9iL,KAAM,CACF79B,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACFoI,OAAQ,EACR2/H,QAAS,GAEblwE,GAAI,CACAzvD,OAAQ,WACJ,OAAOinN,EAAAA,EAAAA,IAAex4N,KAAK83Y,aAC7BrtY,KAAKzK,MACPkxI,QAAS,IAGjBhnE,KAAM,CACFvmD,KAAM,QACN67M,SAAU,EACVr2N,KAAM,CACF+nI,QAAS,GAEblwE,GAAI,CACAkwE,QAAS,KAIrB0zP,iCAAiC,EACjCrzX,OAAQ,WACJ,OAAOvR,KAAK83Y,YAAat/K,EAAAA,EAAAA,IAAex4N,KAAK83Y,YAAc,GAC7DrtY,KAAKzK,MACPsR,MAAO,WACH,OAAOgnN,EAAAA,EAAAA,IAAct4N,KAAK6+P,MAAMhlP,aAClCpP,KAAKzK,MACP6wB,eAAgB7wB,KAAK+3Y,mBAAmBttY,KAAKzK,SAGrD+3Y,mBAAoB,SAASv3Y,GACzB,IAAIwuW,EAAkBxuW,EAAE6tB,UAAUsL,WAC9BjuB,EAAQ1L,KAAKs3Y,aAAa7xY,QAC1BzF,KAAKu3Y,kBACL7rY,EAAM9K,KAAK,CACP+B,KAAMw6T,EAAAA,EAAAA,OAA2B,8BACjC18S,OAAQzgB,KAAKg4Y,YAAYvtY,KAAKzK,QAGtCA,KAAK83Y,YAAapqY,EAAAA,EAAAA,GAAE,SACpB1N,KAAK6+P,MAAMzX,iBAAiBpnP,KAAK83Y,WAAYG,EAAAA,EAAU,CACnDvsY,MAAOA,EACPguU,YAAa15U,KAAKk4Y,sBAAsBztY,KAAKzK,MAC7CuR,OAAQ,OACR43O,mBAAoB,KAExB6lH,EAAgBvvV,SAnEY,+BAoE5BuvV,EAAgBjvV,OAAO/f,KAAK83Y,aAEhCI,sBAAuB,SAAS1xX,GAC5BxmB,KAAKgL,MAAMk/D,OACXlqE,KAAKw3Y,gBAAgBx3Y,KAAKm4Y,eAAgB3xX,EAAKqkD,SAASpqD,SAE5Du3X,YAAa,WACTh4Y,KAAK6+P,MAAM6qG,WAAW1pW,KAAKm4Y,iBAE/BC,kBAAmB,SAASh+K,GAWxB,OAVAp6N,KAAKm4Y,eAAiB/9K,EACtBp6N,KAAKgL,MAAM6Z,OAAO,CACdsB,SAAU,CACNu5C,GAAI,MACJC,GAAI,SACJF,GAAI26J,EACJh1M,UAAW,UAGnBplB,KAAKgL,MAAMw2C,QACJ,GAEXpjC,QAAS,WACDpe,KAAKgL,OACLhL,KAAKgL,MAAM6O,WAAWrY,SAE1BxB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,cAE/Bq5H,QAAQi3Q,mFCtGPl/J,EAAWw+J,EAAAA,EAAAA,SAQXW,EAAsB,sBACtBC,GAA0BnqL,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoBy2W,GAC3D56G,GAAoBtvE,EAAAA,EAAAA,cAAajjM,EAAAA,GAAQmtX,GAEzCE,EAAgC,kCAIhCC,EAAgD,kDAGhDC,EAA0Bf,EAAAA,EAAAA,QAAsB,CAChDnlU,MAAO,WACHxyE,KAAK24Y,aAAcjrY,EAAAA,EAAAA,GAAE,SAAS+R,SAPG,wCAQjCzf,KAAK44Y,gBAAiBlrY,EAAAA,EAAAA,GAAE,SAAS+R,SAPG,2CAQpCzf,KAAK64Y,qBAAsBnrY,EAAAA,EAAAA,GAAE,SAAS+R,SANI,iDAO1Ck2M,EAAAA,EAAAA,GAAgB31N,KAAK24Y,YAAaJ,EAAyBv4Y,KAAK84Y,uBAAuBruY,KAAKzK,OAC5F21N,EAAAA,EAAAA,GAAgB31N,KAAK44Y,eAAgBL,EAAyBv4Y,KAAK84Y,uBAAuBruY,KAAKzK,OAC/FA,KAAK6+P,MAAMhlP,WAAWkG,OAAO/f,KAAK24Y,YAAYvjJ,QAAO,IAAQr1O,OAAO/f,KAAK44Y,eAAexjJ,QAAO,KAEnG5sG,YAAa,WACT,OAAOxoJ,KAAK84Y,0BAEhBA,uBAAwB,WACpB,QAAK94Y,KAAK+4Y,sBAGV/4Y,KAAKg5Y,cAAch5Y,KAAK+4Y,sBACjB,IAEXC,cAAe,SAAS5+K,GACpBp6N,KAAKi5Y,mBAAmB7+K,GAAc,IAE1C6+K,mBAAoB,SAAS7+K,EAAc8+K,QACnC,IAAWA,IACXA,GAAiBl5Y,KAAKm5Y,iBAAiB/+K,IAE3Cp6N,KAAKo5Y,eAAeh/K,EAAc8+K,GAClCl5Y,KAAKq5Y,iBAAiBH,GACtBl5Y,KAAKs5Y,wBAAwBl/K,EAAc8+K,GAC3Cl5Y,KAAKu5Y,qBAAqBn/K,EAAc8+K,IAE5CC,iBAAkB,SAAS/+K,GACvB,OAAOA,EAAarK,SAASyoL,IAEjCY,eAAgB,SAASh/K,EAAc9wL,GACnCtpC,KAAK6+P,MAAMhlP,WAAW28M,YAzCiB,6CAyCqCltL,GAC5EtpC,KAAK24Y,YAAYvjJ,OAAO9rN,GACxBtpC,KAAK44Y,eAAexjJ,OAAO9rN,GACvBA,GACAtpC,KAAKw5Y,qBAAqBp/K,GAE9Bp6N,KAAKy5Y,qBAAqBr/K,EAAc9wL,IAE5CkwW,qBAAsB,SAASp/K,GAC3B,IAAIs/K,EAAQ15Y,KAAK6+P,MAAMhlP,WACnB8/X,EAAgBD,EAAMnuY,SAASuN,IAC/B8gY,GAAaphL,EAAAA,EAAAA,IAAekhL,GAG5BG,EAFgBz/K,EAAa7uN,SAASuN,IAEC6gY,EACvCG,EAA0BF,GAFbphL,EAAAA,EAAAA,IAAe4B,GAEwBy/K,GACxDtvM,EAAAA,EAAAA,IAAUvqM,KAAK24Y,YAAahzX,KAAKC,IAAIi0X,EAAsB,KAC3DtvM,EAAAA,EAAAA,IAAUvqM,KAAK44Y,eAAgBjzX,KAAKC,IAAIk0X,EAAyB,KAErEL,qBAAsB,SAASr/K,EAAc9wL,GACrCA,EACA8wL,EAAa/9M,KAAK,yBAA+B2tD,QAAQjqD,OAAO/f,KAAK64Y,qBAErE74Y,KAAK64Y,oBAAoB1rP,UAGjCksP,iBAAkB,SAASH,GACvB,IAAI7uU,EAAarqE,KAAK6+P,MAAMhlP,WAAW6qC,aAAa,YAChDw0V,EACA7uU,EAAW/xC,GAAG,QAASt4B,KAAK+5Y,kBAE5B1vU,EAAWhyC,IAAI,QAASr4B,KAAK+5Y,mBAGrCA,iBAAkB,SAASvzX,GACvBA,EAAKhM,MAAMurB,QAAS,GAExBuzW,wBAAyB,SAASl/K,EAAcz6K,GACxCA,EACA3/C,KAAK+4Y,oBAAsB3+K,SAEpBp6N,KAAK+4Y,qBAGpBQ,qBAAsB,SAASn/K,EAAc8+K,GACrCA,GACAl5Y,KAAKg6Y,mBAAmB5/K,GACxBp6N,KAAKi6Y,oBAAoB7/K,GACzBp6N,KAAKk6Y,2BAA2B9/K,GAChCzE,EAAAA,EAAAA,IAAiByE,EAAcv4L,EAAAA,EAAAA,MAE/B7hC,KAAKm6Y,mBAAmB//K,GACxBp6N,KAAKo6Y,0BAA0BhgL,GAAchhM,KAAKp5B,KAAKq6Y,oBAAoB5vY,KAAKzK,KAAMo6N,MAG9F4/K,mBAAoB,SAAS5/K,GACzBA,EAAa36M,SAASg5X,GACtB9iL,EAAAA,EAAAA,GAAgByE,EAAcsjE,EAAmB1rE,EAAAA,MACjD2D,EAAAA,EAAAA,IAAiByE,EAAcv4L,EAAAA,EAAAA,GAAkB7hC,KAAKq6Y,oBAAoB5vY,KAAKzK,KAAMo6N,KAEzFigL,oBAAqB,SAASjgL,GAC1BA,EAAaviM,YAAY4gX,GACzB9iL,EAAAA,EAAAA,IAAiByE,EAAcsjE,IAEnCu8G,oBAAqB,SAAS7/K,GAC1BA,EAAa36M,SAAS+4X,IAE1B2B,mBAAoB,SAAS//K,GACzBA,EAAaviM,YAAY2gX,IAE7B0B,2BAA4B/gK,EAC5BihK,0BAA2BjhK,EAC3BmhK,0BAA2B,SAASlgL,GAEhC,OADAA,EAAeA,GAAgBp6N,KAAK+4Y,qBAChBhuY,SAAS,gDAEjCitY,YAAa,SAAS59K,GAClBA,EAAeA,GAAgBp6N,KAAK+4Y,oBACpC/4Y,KAAKs6Y,0BAA0BlgL,GAAcjtE,SACzCitE,EAAatgM,GAAG,6CAGpB95B,KAAK6+P,MAAM6qG,WAAWtvI,GAAch8J,OAAOp+D,KAAKg5Y,cAAcvuY,KAAKzK,KAAMo6N,KAE7EmgL,cAAe,WACX,OAAOv6Y,KAAK6+P,MAAMh6O,OAAO,eAE7BzG,QAAS,WACDpe,KAAK24Y,aACL34Y,KAAK24Y,YAAYn3Y,SAEjBxB,KAAK44Y,gBACL54Y,KAAK44Y,eAAep3Y,SAExBxB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,cAGlC,ICrJIyyY,EAA2C,6CAC3CC,EAAyC,2CACzCC,EAA+C,iDAC/CC,EAAiC,mCAEjCC,EAAgClC,EAAAA,QAAgC,CAChElmU,MAAO,WACHxyE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAI8yY,GAAmBntY,EAAAA,EAAAA,GAAE,SAAS+R,SAAS+6X,GACvCM,GAAiBptY,EAAAA,EAAAA,GAAE,SAAS+R,SAASg7X,GACrCM,GAAsBrtY,EAAAA,EAAAA,GAAE,SAAS+R,SAASi7X,GAC1CM,GAAUttY,EAAAA,EAAAA,GAAE,SAAS+R,SAASk7X,GAClC36Y,KAAK6+P,MAAMzX,iBAAiB4zJ,EAAS9+D,EAAAA,QAAQ,CACzCv5U,KAAMw6T,EAAAA,EAAAA,OAA2B,8BACjCx5S,KAAM,SACNqjD,QAAS,SAASxmE,GACdR,KAAKg4Y,cACLx3Y,EAAEga,MAAMpT,mBACVqD,KAAKzK,MACPmpP,mBAAoB,KAExB0xJ,EAAiB96X,OAAO+6X,GACxBA,EAAe/6X,OAAOg7X,GACtBA,EAAoBh7X,OAAOi7X,GAC3Bh7Y,KAAKi7Y,kBAAoBJ,GAE7Bb,mBAAoB,SAAS5/K,GACzBp6N,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1Bk4N,EAAAA,QAAAA,KAAQjgO,KAAKi7Y,mBAAmB,GAChCj7Y,KAAKi7Y,kBAAkBhjX,SAASmiM,IAEpCigL,oBAAqB,WACjBr6Y,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKi7Y,kBAAkB9tP,UAE3B+sP,2BAA4B,WACxB,IAAIpxX,EAAM9oB,KAAKu6Y,gBACXW,GAAYp+P,EAAAA,EAAAA,IAAS98I,KAAK6+P,MAAMhlP,YAChCshY,EAAcn7Y,KAAKo7Y,eACnB/kM,EAAYvtL,EAAMoyX,GAAaC,EAC/B7kM,EAAUxtL,EAAMoyX,EAAYC,EAAc,EAC9C,OAAOl7K,EAAAA,QAAAA,QAAWjgO,KAAKi7Y,kBAAmB,CACtCt3X,KAAM,SACN67M,SAvCsC,IAwCtCr2N,KAAM,CACF4U,MAAOs4L,GAEXr1I,GAAI,CACAjjD,MAAOu4L,MAInB8jM,0BAA2B,WACvB,IAAItxX,EAAM9oB,KAAKu6Y,gBACXW,GAAYp+P,EAAAA,EAAAA,IAAS98I,KAAK6+P,MAAMhlP,YAChCshY,EAAcn7Y,KAAKo7Y,eACnB/kM,EAAYvtL,EAAMoyX,EAAYC,EAAc,EAC5C7kM,EAAUxtL,EAAMoyX,GAAaC,EACjC,OAAOl7K,EAAAA,QAAAA,QAAWjgO,KAAKi7Y,kBAAmB,CACtCt3X,KAAM,SACN67M,SAxDsC,IAyDtCr2N,KAAM,CACF4U,MAAOs4L,GAEXr1I,GAAI,CACAjjD,MAAOu4L,MAInB8kM,aAAc,WAIV,OAHKp7Y,KAAKq7Y,wBACNr7Y,KAAKq7Y,uBAAwB/iL,EAAAA,EAAAA,IAAct4N,KAAKi7Y,oBAE7Cj7Y,KAAKq7Y,uBAEhBj9X,QAAS,WACDpe,KAAKi7Y,mBACLj7Y,KAAKi7Y,kBAAkBz5Y,SAE3BxB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,eAKlC2vY,EAAAA,EAAAA,GAAkB,SAAU,SAAUkD,EAA8B57O,QAAQ,CACxEs8O,UAAW,SAAShsU,GAChB,IAAI8qJ,EAAe9qJ,EAAO8qJ,aACtB7yL,EAAa+nC,EAAO/nC,WACpBg0W,GAAU7tY,EAAAA,EAAAA,GAAE,SAAS+R,SALA,gCAMzBzf,KAAK6+P,MAAMzX,iBAAiBm0J,EAASr/D,EAAAA,QAAQ,CACzCv8T,KAAM,gBACNqnD,QAAS,SAASxmE,GACdy/N,EAAAA,QAAAA,KAAQjgO,KAAKi7Y,mBAAmB,GAChCj7Y,KAAKi5Y,mBAAmB7+K,GACxB55N,EAAEga,MAAMpT,mBACVqD,KAAKzK,MACPmpP,mBAAoB,KAExB5hN,EAAW9nB,SAhBwB,0CAiBnC8nB,EAAWxnB,OAAOw7X,QAG1B7D,EAAAA,EAAAA,GAAkB,SAAU,cAAekD,EAA8B57O,QAAQ,CAC7Ew8O,oBAAoB,EACpBpqD,iBAAkB,SAASh3H,EAAc5zM,GAKrC,OAJI,IAAMA,EAAKm0R,eACX16E,EAAAA,QAAAA,KAAQjgO,KAAKi7Y,mBAAmB,GAChCj7Y,KAAKi5Y,mBAAmB7+K,KAErB,MAGf,2HCxHI30M,GAASwoM,EAAAA,EAAAA,MA2BTwtL,EAA2C,WAC3CC,EAAcvhE,EAAAA,EAAAA,QAAyB,CACvC1nH,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BoqL,YAAY,EACZ/0Y,OAAQ,KACRglB,MAAO,GACPyxV,WAAW,EACXu+B,kBAAkB,EAClBC,WAAY1+E,EAAAA,EAAAA,OAA2B,UACvC2+E,cAAe,KACfjzY,SAAS,EACTs5D,WAAY,GACZmrQ,mBAAmB,EACnBk2B,eAAe,KAGvB5gH,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,MACV29G,QAAQ,GAEZliO,QAAS,CACLuhY,YAAY,OAIxBjgL,eAAgB,WACZ17N,KAAKuxN,WACLvxN,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAM,IAAIy3P,EAAAA,GAAkB,SAASpwN,EAAY15B,GAC7C,IAAI1L,EAAS,IAAI+5U,EAAAA,SAAOxuU,EAAAA,EAAAA,GAAE,UAAU5E,EAAAA,EAAAA,GAAO,CACvCk+D,QAASn5D,GAAQA,EAAKwjB,MACtB01C,YAAal5D,GAAQA,EAAKk5D,aAAe00U,GAC1C5tY,IACH05B,EAAWxnB,OAAO5d,EAAO0X,cACzB,CAAC,WAAY,OAAQ,OAAQ,OAAQ,UAAW,QAAS,eAAgB7Z,KAAK6kB,OAAO,sCAGjG8zT,eAAgB,WACZ,OAAO34U,KAAK+7Y,iBAEhBj9C,WAAY,WACR,MA/CsB,uBAiD1B1B,aAAc,WACV,MAjDyB,yBAmD7B4+C,kBAAmBhqL,EAAAA,KACnB64B,kBAAmB74B,EAAAA,KACnBy4B,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SA7DC,kBA8DjBzf,KAAKi8Y,wBAETngL,QAAS,WACL97N,KAAK06X,gBAETuhB,qBAAsB,WAClBj8Y,KAAK+7Y,iBAAkBruY,EAAAA,EAAAA,GAAE,SAAS+R,SAnEP,4BAoE3Bzf,KAAKo4V,mBAETA,gBAAiB,WACbp4V,KAAK+7Y,gBAAgBvlL,YAAY,oBAAqBx2N,KAAK6kB,OAAO,cAEtE61W,aAAc,WACV16X,KAAK0pY,SAAUh8X,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK6Z,YACxC7Z,KAAKk8Y,iBAAmBl8Y,KAAKm8Y,iBAAmBn8Y,KAAKonY,eACrDpnY,KAAKo8Y,oBACLp8Y,KAAKq8Y,gBAAgB,YAEzBA,gBAAiB,SAASr2J,GACtBhmP,KAAK8uW,QAAU9uW,KAAK8uW,OAAOjqV,OAAOmhO,EAAYhmP,KAAK6kB,OAAOmhO,KAE9Dk2J,eAAgB,WACZ,OAAOl8Y,KAAK6kB,OAAO,eAAiB7kB,KAAK6kB,OAAO,WAEpDu3X,kBAAmB,WACfp8Y,KAAKq8Y,gBAAgB,aACrBr8Y,KAAK8uW,QAAU9uW,KAAK8uW,OAAO35I,WAAWqB,YAjFP,gCAiFsDx2N,KAAK6kB,OAAO,eAErG0mO,OAAQ,WACAvrP,KAAK0pY,SACL1pY,KAAK0pY,QAAQloY,SAEjBxB,KAAKuxN,YAET+qL,eAAgB,WACZ,MAAO,CACHx5W,cAAe,SAAStc,GACpBxmB,KAAK8uW,OAAStoV,EAAK6H,WACrB5jB,KAAKzK,MACPoL,UAAU,EACViyW,WAAW,EACXzxV,MAAO5rB,KAAK6kB,OAAO,SACnBu4V,gBAAiB33V,EAAO82X,QACxB1rX,eAAgB7wB,KAAKw8Y,yBAAyB/xY,KAAKzK,MACnD85W,SAAU95W,KAAKkqE,KAAKz/D,KAAKzK,QAGjCm8Y,eAAgB,WACZn8Y,KAAKonP,iBAAiBpnP,KAAK0pY,QAAS+S,EAAAA,GAAS3zY,EAAAA,EAAAA,GAAO9I,KAAKs8Y,iBAAkB,CACvEhrY,MAAOtR,KAAK6kB,OAAO,UAAY,IAC/BtT,OAAQvR,KAAK6kB,OAAO,WAAa,OACjCje,OAAQ5G,KAAK6kB,OAAO,aAExB7kB,KAAK8uW,OAAOE,kBAAkBpvV,KAAK,OAAQ,UAC3C5f,KAAK8uW,OAAO35I,WAAW11M,SAjHU,mCAmHrC2nX,aAAc,WACVpnY,KAAKonP,iBAAiBpnP,KAAK0pY,QAASW,EAAAA,GAAOvhY,EAAAA,EAAAA,GAAO9I,KAAKs8Y,iBAAkB,CACrE3wP,aAAa,EACbr6I,MAAOtR,KAAK6kB,OAAO,UAAY,OAC/BtT,OAAQvR,KAAK6kB,OAAO,WAAa,OACjC+lX,iBAAiB,EACjBzkX,SAAU,CACNu5C,GAAI,SACJC,GAAI,SACJF,GAAIh6C,GAER6+M,UAAW,CACP9iL,KAAM,CACF79B,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACFgd,SAAU,CACNu5C,GAAI,MACJC,GAAI,SACJF,GAAIh6C,IAGZu7C,GAAI,CACA76C,SAAU,CACNu5C,GAAI,SACJC,GAAI,SACJF,GAAIh6C,KAIhBykD,KAAM,CACFvmD,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACFgd,SAAU,CACNu5C,GAAI,SACJC,GAAI,SACJF,GAAIh6C,IAGZu7C,GAAI,CACA76C,SAAU,CACNu5C,GAAI,MACJC,GAAI,SACJF,GAAIh6C,SAMxBzlB,KAAK8uW,OAAO35I,WAAW11M,SAtKQ,iCAwKnC+8X,yBAA0B,WACtBx8Y,KAAK8uW,OAAOn1U,WAAW5Z,OAAO/f,KAAK+7Y,iBACnC/7Y,KAAKo/V,oBACLp/V,KAAK49V,mBACL59V,KAAKs+V,kBACLt+V,KAAKu+V,iBACLv+V,KAAK08Y,uBAETA,oBAAqB,WACjB,IAAI18Y,KAAKk8Y,mBAGLl8Y,KAAK28Y,gBACL38Y,KAAK28Y,eAAen7Y,SAEpBxB,KAAK6kB,OAAO,qBAAqB,CACjC,IAAI+3X,EAAoB58Y,KAAKw7N,sBAAsB,kBAAoBxJ,EAAAA,KACnEp8B,EAAO51L,KACXA,KAAK28Y,gBAAiBjvY,EAAAA,EAAAA,GAAE,SAAS+R,SAxLN,yBAwLiDwY,SAASj4B,KAAK8uW,QAAU9uW,KAAK8uW,OAAOn1U,YAChH35B,KAAKonP,iBAAiBpnP,KAAK28Y,eAAgBzgE,EAAAA,QAAQ,CAC/C9wU,UAAU,EACV27D,YAAa00U,EACb94Y,KAAM3C,KAAK6kB,OAAO,cAClBmiD,QAAS,SAASxmE,GACd,IAAIq8Y,EAAa,CACbriY,MAAOha,EACPulC,QAAQ,GAEZ62W,EAAkBC,GACbA,EAAW92W,QACZ6vJ,EAAK1rH,QAGbi/K,mBAAoB,OAIhC43G,sBAAuB/uI,EAAAA,KACvB8nI,kBAAmB,SAASt5V,GACxBR,KAAKuxN,SAAS/wN,IACTkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQkzB,GAAG,6CAChB95B,KAAKkqE,QAGbk2R,iBAAkB,SAAS5/V,GACvBR,KAAKuxN,SAAS/wN,IACTkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQkzB,GAAG,6CAChB95B,KAAKkqE,QAGbgyJ,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,QACDxN,KAAKq8Y,gBAAgB71X,EAAKhZ,MAC1B,MACJ,IAAK,WACDxN,KAAKo4V,kBACL,MACJ,IAAK,YACDp4V,KAAKo8Y,oBACL,MACJ,IAAK,mBACL,IAAK,gBACL,IAAK,aACDp8Y,KAAK08Y,sBACL,MACJ,IAAK,SACL,IAAK,aACL,IAAK,QACD18Y,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,KAG1B4uO,OAAQ,SAAS0qH,GACb,IAAIlqL,EAAO51L,KACP88G,EAAI,IAAI01G,EAAAA,GAKZ,OAJA58B,EAAKk5K,OAAO15G,OAAO0qH,GAAS1mV,MAAM,WAC9Bw8J,EAAK/wK,OAAO,UAAWi7V,GACvBhjQ,EAAEuiH,YAAYzpC,MAEX94E,EAAEtsG,WAEbgxC,KAAM,WACF,OAAOxhD,KAAKo1P,QAAO,IAEvBlrL,KAAM,WACF,OAAOlqE,KAAKo1P,QAAO,OAG3B90O,EAAAA,EAAAA,SAAkB,gBAAiBo7X,GACnC,QC/PIpD,EAAsB,sBACtBv8G,GAAmB3tE,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBquG,GAChD56G,GAAoBtvE,EAAAA,EAAAA,cAAajjM,EAAAA,GAAQmtX,GAEzCwE,EAA2B,6BAC3BC,EAA2B,6BAC3BC,EAAqC,uCACrCC,GAA2B,6BAC3BC,GAA0B,6BAK9BxF,EAAAA,EAAAA,GAAkB,OAAQ,QAASgB,EAAAA,QAAgC,CAC/D8C,oBAAoB,EACpBhpU,MAAO,WACHxyE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK8oY,oBAAqBp7X,EAAAA,EAAAA,GAAE,SAAS+R,SAASu9X,GAC9CrnL,EAAAA,EAAAA,GAAgB31N,KAAK8oY,mBAAoBprG,EAAmB1rE,EAAAA,MAC5DhyN,KAAKm9Y,WAAYzvY,EAAAA,EAAAA,GAAE,SAAS+R,SAASw9X,IAA0BhlX,SAASj4B,KAAK8oY,oBAC7E9oY,KAAKo9Y,cACLp9Y,KAAKq9Y,uBAETD,YAAa,WACT,GAAKp9Y,KAAKq3Y,eAAV,CAGA,IAAI9sX,EAAYvqB,KAAKs3Y,aACrB,GAAI,IAAM/sX,EAAUjqB,OAAQ,CACxB,IAAIg9Y,EAAW/yX,EAAU,GACzBvqB,KAAKu9Y,kBAAkBD,EAAS36Y,KAAM,SAASnC,GAC3CA,EAAE4G,kBACFpH,KAAKw9Y,YAAYF,IACnB7yY,KAAKzK,WACJ,CACH,IAAI43Y,GAAQlqY,EAAAA,EAAAA,GAAE,SAAS+R,SAhCZ,sBAiCXzf,KAAKgL,MAAQhL,KAAK6+P,MAAMzX,iBAAiBwwJ,EAAO8D,EAAa,CACzDr+B,WAAW,EACX3xW,MAAO6e,EACPmvT,YAAa,SAASlzT,GAClBxmB,KAAKw9Y,YAAYh3X,EAAKqkD,WACxBpgE,KAAKzK,MACPmpP,mBAAoB,KAExByuJ,EAAM3/W,SAASj4B,KAAK6+P,MAAMhlP,YAC1B,IAAI4jY,EAAcz9Y,KAAKu9Y,kBAAkBpgF,EAAAA,EAAAA,OAA2B,4BAA6B,SAAS38T,GACtGA,EAAE4G,kBACFpH,KAAKgL,MAAMw2C,QACb/2C,KAAKzK,OACPA,KAAKgL,MAAM6Z,OAAO,SAAU44X,MAGpCF,kBAAmB,SAAS56Y,EAAM8d,GAC9B,IAAIg9X,GAAc/vY,EAAAA,EAAAA,GAAE,SAAS+R,SAASy9X,IAAyBz9X,SA5CpC,kCA4C2E9c,KAAKA,GAG3G,OAFA3C,KAAKm9Y,UAAUp9X,OAAO09X,GACtB9nL,EAAAA,EAAAA,GAAgB8nL,EAAa1hH,EAAkBt7Q,GACxCg9X,GAEXJ,oBAAqB,WACjB,GAAKr9Y,KAAKu3Y,iBAAV,CAGA,IAAImG,GAAgBhwY,EAAAA,EAAAA,GAAE,SAAS+R,SAASy9X,IAAyBz9X,SApDpC,oCAoD6E9c,MAAKs5U,EAAAA,EAAAA,cAAe,GAAK9e,EAAAA,EAAAA,OAA2B,+BAC9JxnG,EAAAA,EAAAA,GAAgB+nL,EAAe3hH,EAAkB,SAASv7R,GACtDA,EAAE4G,kBACFpH,KAAKg4Y,eACPvtY,KAAKzK,OACPA,KAAKm9Y,UAAUp9X,OAAO29X,KAE1BF,YAAa,SAASF,GAClBt9Y,KAAKw3Y,iBAAgB9pY,EAAAA,EAAAA,GAAE1N,KAAK29Y,aAAcL,EAAS78X,QACnDzgB,KAAK84Y,0BAET8E,cAAe,SAAStuU,GACpBtvE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAIqyN,EAAe9qJ,EAAO8qJ,aAC1BA,EAAa36M,SAASq9X,GACtB,IAAIe,GAAoBnwY,EAAAA,EAAAA,GAAE,SAAS+R,SAASs9X,GAC5C3iL,EAAa07B,UAAU+nJ,IAE3BvD,0BAA2B,WACvB,OAAOt6Y,KAAK8oY,oBAEhBtgP,YAAa,SAAS9tI,EAAGla,GACrB,SAAIkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAMgzY,GAA0Bz8Y,QAC7CN,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAIzCmpV,mBAAoB,SAAS92H,GACzBp6N,KAAKg6Y,mBAAmB5/K,GACxBp6N,KAAK89Y,eAAe1jL,GACpBp6N,KAAK+9Y,cAAc/9Y,KAAKg+Y,cAAc,KAE1C7sD,oBAAqB,SAAS/2H,EAAc5zM,GACxC,IACIy3X,EADMj+Y,KAAKu6Y,iBACa,EAAI,EAC5B2D,EAAsBl+Y,KAAKm5Y,iBAAiB/+K,GAEhD,GADsBp6N,KAAKm+Y,uBAAuBr9X,UAAY9gB,KAAKo+Y,qBAAqBt9X,SAChEo9X,KAAuB13X,EAAKjb,OAAS0yY,EAAiB,GAA9E,CAIA,IAAI1yY,EAASvL,KAAKq+Y,iBAAmB73X,EAAKjb,OACtCmvS,EAAcwjG,GAAuBl+Y,KAAKs+Y,mBAAqBL,EAAiB,EAEhFhvR,GADmB1jH,EAASmvS,GAAeujG,EACf,EAAIt4X,KAAK23B,KAAK/xC,EAASmvS,GAAe16S,KAAKs+Y,oBAAsB,EAEjG,OADAt+Y,KAAK+9Y,cAAc/9Y,KAAKg+Y,cAAc/uR,KAC/B,EARHzoG,EAAKuf,QAAS,GAUtBq4W,mBAAoB,WAChB,IAAIt1X,EAAM9oB,KAAKu6Y,gBACX0D,EAAiBn1X,GAAO,EAAI,EAChC,MAAO,CACHhI,QAAS,EACToX,iBAAkBpP,GAAO9oB,KAAKs+Y,mBAAqBt+Y,KAAKq+Y,iBACxD7X,SAAUxmY,KAAKs+Y,mBAAqBL,IAG5CD,cAAe,SAAS/uR,GACpB,IACIgvR,EADMj+Y,KAAKu6Y,iBACa,EAAI,EAC5BgE,EAAiBv+Y,KAAKo+Y,qBAC1B,MAAO,CACHt9X,QAASy9X,EAAez9X,QAAUmuG,EAAUjvH,KAAKs+Y,mBAAqBL,EACtE/lX,iBAAkBqmX,EAAermX,iBAAmBvS,KAAKG,IAAImpG,EAAS,GAAKjvH,KAAKs+Y,mBAAqBL,EACrGzX,QAAS+X,EAAe/X,QAAU7gX,KAAKG,IAAImpG,EAAS,GAAKjvH,KAAKs+Y,mBAAqBL,IAG3FE,qBAAsB,WAClB,MAAO,CACHr9X,SAASwzM,EAAAA,EAAAA,IAAOt0N,KAAKw+Y,iBAAiB9lY,KACtCwf,kBAAkBo8L,EAAAA,EAAAA,IAAOt0N,KAAK8oY,oBAAoBpwX,KAClD8tX,SAASlyK,EAAAA,EAAAA,IAAOt0N,KAAKm9Y,WAAWzkY,OAGxCqlY,cAAe,SAAS9iW,IACpBgB,EAAAA,EAAAA,IAAKj8C,KAAKw+Y,gBAAiB,CACvB9lY,KAAMuiC,EAAUn6B,WAEpBm7B,EAAAA,EAAAA,IAAKj8C,KAAK8oY,mBAAoB,CAC1BpwX,KAAMuiC,EAAU/iB,oBAEpB+jB,EAAAA,EAAAA,IAAKj8C,KAAKm9Y,UAAW,CACjBzkY,KAAMuiC,EAAUurV,WAGxBsX,eAAgB,SAAS1jL,GACjBA,EAAa,KAAOp6N,KAAK29Y,cAG7B39Y,KAAKw+Y,gBAAkBpkL,EAAa/9M,KAAK,IAAM0gY,GAC/C/8Y,KAAKq+Y,kBAAmB/lL,EAAAA,EAAAA,IAAc8B,GACtCp6N,KAAKs+Y,mBAAqBt+Y,KAAKs+Y,qBAAsBhmL,EAAAA,EAAAA,IAAct4N,KAAKm9Y,YACxExyM,EAAAA,EAAAA,IAAS3qM,KAAK8oY,mBAAoB9oY,KAAKs+Y,oBACnCt+Y,KAAKw+Y,gBAAgBl+Y,SACrBN,KAAK29Y,YAAcvjL,EAAa,MAGxCqkL,8BAA+B,WAC3B,OAAOz+Y,KAAKq+Y,iBAAmBr+Y,KAAKs+Y,oBAExCltD,iBAAkB,SAASh3H,EAAc5zM,GACrCxmB,KAAK89Y,eAAe1jL,GACpB,IAAI6jL,EAAiBj+Y,KAAKu6Y,gBAAkB,GAAK,EAC7ChvY,EAASvL,KAAKq+Y,iBAAmB73X,EAAKjb,OACtCmzY,GAAwB1+Y,KAAKm5Y,iBAAiB/+K,IAAiB7uN,EAAS0yY,EAAiB,GAAKj+Y,KAAKs+Y,mBACnGpF,EAAgB1yX,EAAKm0R,eAAiBsjG,GAAkBS,EAE5D,OADA1+Y,KAAKi5Y,mBAAmB7+K,EAAc8+K,IAC/B,GAEXc,mBAAoB,SAAS5/K,GACzB6F,EAAAA,QAAAA,KAAQjgO,KAAKw+Y,iBAAiB,GAC9Bx+Y,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK8oY,mBAAmB7wW,SAASmiM,IAErCigL,oBAAqB,WACjBr6Y,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK8oY,mBAAmB37O,UAE5B+sP,2BAA4B,WACxB,OAAOl6Y,KAAK2+Y,oBAAoB3+Y,KAAKg+Y,cAAc,KAEvD5D,0BAA2B,SAAShgL,GAEhC,OADAp6N,KAAK89Y,eAAe1jL,GACbp6N,KAAK2+Y,oBAAoB3+Y,KAAKg+Y,cAAc,KAEvDW,oBAAqB,SAAS1jW,GAC1B,IAAI26I,EAAO51L,KACP8hF,EAAkB9hF,KAAKm+Y,uBACvBS,EAAmBj5X,KAAKG,IAAIH,KAAK23B,IAAIwkC,EAAgBhhE,QAAUm6B,EAAUn6B,SAAW9gB,KAAKs+Y,mBAAoB,GACjH,OAAOr+K,EAAAA,QAAAA,QAAWjgO,KAAKw+Y,gBAAiB,CACpCr1Y,KAAM24E,EACN9gB,GAAI/lB,EACJqiL,OAtLsB,sCAuLtBkC,SAxLwB,IAwLkBo/K,EAC1CttL,SAAU,QACVsP,KAAM,SAAS3lL,GACX26I,EAAKmoN,cAAc9iW,OAI/B78B,QAAS,WACDpe,KAAKgL,OACLhL,KAAKgL,MAAM6O,WAAWrY,SAEtBxB,KAAK8oY,oBACL9oY,KAAK8oY,mBAAmBtnY,SAE5BxB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,cAE/Bq5H,QAAQi3Q,KC5OXX,EAAAA,EAAAA,GAAkB,SAAU,SAAUC,EAAAA,EAAAA,QAAsB,CACxDkH,SAAU,SAASvvU,GACf,IAAI8qJ,EAAe9qJ,EAAO8qJ,aACtB7yL,EAAa+nC,EAAO/nC,WACpByzW,GAAUttY,EAAAA,EAAAA,GAAE,SAAS+R,SALA,gCAMzBzf,KAAK6+P,MAAMzX,iBAAiB4zJ,EAAS9+D,EAAAA,QAAQ,CACzCv8T,KAAM,SACNqnD,QAAS,SAASxgD,GACdA,EAAKhM,MAAMpT,kBACXpH,KAAKg4Y,YAAY59K,IACnB3vN,KAAKzK,MACPmpP,mBAAoB,KAExB5hN,EAAW9nB,SAfwB,0CAeuBM,OAAOi7X,IAErEhD,YAAa,SAAS59K,GACdA,EAAatgM,GAAG,6CAGpB95B,KAAK6+P,MAAM6qG,WAAWtvI,QCb9Bs9K,EAAAA,EAAAA,GAAkB,SAAU,QAASC,EAAAA,EAAAA,QAAsB,CACvD6D,oBAAoB,EACpBsD,oBAAqB,SAAS1kL,EAAc7uN,EAAQisL,GAChD,IAAIxsJ,EAAW,IAAIwnL,EAAAA,GACfusL,EAAaxzY,EAASvL,KAAKg/Y,kBAiB/B,OAhBIxnN,EACAyoC,EAAAA,QAAAA,QAAW7F,EAAc,CACrBp5J,GAAI,CACAtoD,KAAMqmY,GAEVp7X,KAAM,QACNsgN,SAAU,WACNj5L,EAAS56B,QAAQgqN,EAAc7uN,QAIvC0wC,EAAAA,EAAAA,IAAKm+K,EAAc,CACf1hN,KAAMqmY,IAEV/zW,EAAS56B,WAEN46B,EAASx6B,WAEpB0gV,mBAAoB,SAAS92H,GAEzB,OADAp6N,KAAKg/Y,mBAAoBliQ,EAAAA,EAAAA,IAASs9E,IAC3B,GAEX+2H,oBAAqB,SAAS/2H,EAAc5zM,GAExC,OADAxmB,KAAK8+Y,oBAAoB1kL,EAAc5zM,EAAKjb,SACrC,GAEX6lV,iBAAkB,SAASh3H,EAAc5zM,GACrC,IAAIjb,EAASib,EAAKm0R,aAQlB,OAPA36S,KAAK8+Y,oBAAoB1kL,EAAc7uN,GAAQ,GAAM6tB,KAAK,SAASghM,EAAc7uN,GACzEoa,KAAK23B,IAAI/xC,IACTvL,KAAK6+P,MAAM6qG,WAAWtvI,GAAct5L,KAAK,WACrC9gC,KAAK8+Y,oBAAoB1kL,EAAc,GAAG,IAC5C3vN,KAAKzK,QAEbyK,KAAKzK,QACA,sBCpCXi/Y,GAAuB,0BAG3BvH,EAAAA,EAAAA,GAAkB,UAAW,UAAWC,EAAAA,EAAAA,QAAsB,CAC1DnlU,MAAO,WACH,IAAItR,EAAOlhE,KAAK6+P,MAChB7+P,KAAKk/Y,gBAAkBl/Y,KAAK6+P,MAAMh6O,OAAO,WACzC7kB,KAAKm/Y,aAAc,EACnB,IAAIv5Y,EAAS5F,KAAKk/Y,gBAAkB,yDAA2D,kBAC/Fl/Y,KAAKo/Y,UAAYl+U,EAAKkmL,iBAAiBlmL,EAAKm+U,YAAYv+X,UAAWw+X,GAAAA,GAAUx2Y,EAAAA,EAAAA,GAAO,CAChFulB,UAAW6yC,EACX96C,gBAAiB,KACjBm5X,iBAAiB,EACjB35Y,OAAQA,EACRka,UAAWohD,EAAKrnD,WAChBi5M,cAAe5xJ,EAAKr8C,OAAO,sBAAwB,OAAS,WAC5D1F,OAAQ,IAAIyc,OAAOqjX,IACnBhsL,aAAcjzN,KAAKw/Y,cACnB15P,YAAa9lJ,KAAK61N,kBAAkBprN,KAAKzK,MACzCy/Y,aAAcz/Y,KAAK0/Y,mBAAmBj1Y,KAAKzK,MAC3C2/Y,UAAW3/Y,KAAK4/Y,gBAAgBn1Y,KAAKzK,OACtCkhE,EAAKr8C,OAAO,mBAEnB07R,YAAa,WACTvgT,KAAKo/Y,UAAU/gY,UAEnBmhY,cAAe,SAASh/Y,GACpB,IAAIqO,GAASnB,EAAAA,EAAAA,GAAElN,EAAEsqE,aAAawQ,QAAQ77D,SA1BZ,iCA0BkDA,SAzB5D,kBA2BhB,OADAkrL,EAAAA,EAAAA,IAAS97L,GAAQiuI,EAAAA,EAAAA,IAASt8I,EAAEsqE,cACrBj8D,GAEXgnN,kBAAmB,SAASr1N,GACpBR,KAAKm/Y,cACL3+Y,EAAEulC,QAAS,IAInB25W,mBAAoB,SAASl/Y,IACrBR,KAAKk/Y,iBAAoBl/Y,KAAK6/Y,YAAYr/Y,EAAE82D,UAAW92D,EAAE6pW,WACzD7pW,EAAEulC,QAAS,IAInB85W,YAAa,SAASvoV,EAAW+yS,GAC7B,IAAIy1C,EAAY9/Y,KAAK6+P,MAAMkhJ,0BAA0BzoV,GAErD,OADYt3D,KAAK6+P,MAAMkhJ,0BAA0B11C,GACpC5+V,SAASoU,IAAI,KAAOigY,EAAUr0Y,SAASoU,IAAI,IAE5D+/X,gBAAiB,SAASp/Y,GACtB,IAAIw/Y,EAAiBhgZ,KAAK6+P,MAAMkhJ,0BAA0Bv/Y,EAAE6pW,SAC5DrqW,KAAK6+P,MAAM+qG,aAAYl8V,EAAAA,EAAAA,GAAElN,EAAEsqE,aAAck1U,IAE7CnB,SAAU,SAASvvU,GAAQ,WACnB2wU,GAAUvyY,EAAAA,EAAAA,GAAE,SAAS+R,SAASw/X,IAClCtpL,EAAAA,EAAAA,GAAgBsqL,EAAS,iBAAiB,SAAAz/Y,GACtC,EAAK2+Y,cAAe9hH,EAAAA,EAAAA,cAAa78R,MAErCm1N,EAAAA,EAAAA,GAAgBsqL,EAAS,SAAU,CAC/Br9Y,QAAS,KACV,SAAApC,GACCA,EAAEulC,QAAS,EACX,EAAKo5W,aAAc,KAEvB7vU,EAAO/nC,WAAW9nB,SAhEW,oCAgE8BM,OAAOkgY,oBC3E1E,GAAe7pB,EAAf,gECJA8pB,EAAAA,EAAAA,eAA8B9oC,EAAAA,+JCa1B+oC,EAA0B,sBAI1BC,EAAcnkX,EAAAA,EAAAA,QAAe,CAC7BquT,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BooI,MAAO,SAASn5V,GACZA,EAAE6G,iBACFrH,KAAKu6U,aAAa,CACd//T,MAAOha,QAKvBiyN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg8G,mBAAmB,EACnBF,oBAAoB,EACpBzrU,OAAO,KAGf4rY,0BAA2B,WACvB,OAAO,GAEX5qJ,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,OAI/B96P,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAtCC,mBAwCrBgrO,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAKqgZ,cACLrgZ,KAAKsgZ,oBAAoBtgZ,KAAK6kB,OAAO,UACrC7kB,KAAKugZ,eACLvgZ,KAAK4gV,QAAQ,OAAQ,UAEzBy/D,YAAa,WACTrgZ,KAAKwgZ,QAAS9yY,EAAAA,EAAAA,GAAE,SAAS+R,SAAS0gY,IAClCzyY,EAAAA,EAAAA,GAAE,SAAS+R,SA/Ce,2BA+CuBwY,SAASj4B,KAAKwgZ,QAC/DxgZ,KAAK6Z,WAAWkG,OAAO/f,KAAKwgZ,SAEhCF,oBAAqB,SAASx5G,GAC1B9mS,KAAK6Z,WAAW28M,YAlDS,yBAkD+BswE,GAASzqR,KAAK,wBAA+Bm6M,YAjDvE,8BAiDoHswE,GAClJ9mS,KAAK4gV,QAAQ,UAAW95C,IAE5By5G,aAAc,WACV,IAAIt2W,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAClD/0N,KAAKu6U,aAAev6U,KAAK6lP,cAAc,SAASr/N,GAC5CxmB,KAAKuqS,cAAc/jR,EAAKhM,QAC1B/P,KAAKzK,OACP21N,EAAAA,EAAAA,IAAiB31N,KAAK6Z,WAAYowB,GAClC0rL,EAAAA,EAAAA,GAAgB31N,KAAK6Z,WAAYowB,EAAW,SAASzpC,GACjDR,KAAKu6U,aAAa,CACd//T,MAAOha,KAEbiK,KAAKzK,QAEXuqS,cAAe,SAAS/pS,GACpBR,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,SAAS,IAEzBq3M,eAAgB,SAAS11M,GACrB,GACS,UADDA,EAAKhZ,KAELxN,KAAKsgZ,oBAAoB95X,EAAK5kB,OAC9B5B,KAAKuxN,SAAS/qM,QAGdxmB,KAAKuxN,SAAS/qM,OAI9BlG,EAAAA,EAAAA,SAAkB,gBAAiB8/X,GACnC,2BChFIK,EAAiC,mCAIjCC,EAAkC,oCAClCC,EAAwB,0BACxBC,EAAsC,uCACtCC,EAA4B,6BAE5B9kH,GAAmB3tE,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgB,wBACpDytG,EAAAA,EAAAA,GAAkB,YAAa,UAAWC,EAAAA,EAAAA,QAAsB,CAC5DnlU,MAAO,WACHxyE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAIu0M,EAAgBt8M,KAAK6+P,MAAMh6O,OAAO,iBACtC7kB,KAAK8gZ,gBAAkB,WAAaxkM,EACpCt8M,KAAK+gZ,gBAAkB/gZ,KAAK8gZ,gBAAkBF,EAAsCF,EACpF1gZ,KAAKghZ,cAAgBhhZ,KAAK8gZ,gBAAkBD,EAA4BF,EACxE3gZ,KAAKihZ,eAAiBjhZ,KAAK8gZ,gBAAkBV,EAAcpqD,EAAAA,QAC3Dh2V,KAAK6+P,MAAMhlP,WAAW4F,SAASghY,IAEnCnF,UAAW,SAAShsU,GAChB,IAAI8qJ,EAAe9qJ,EAAO8qJ,aACtB7yL,EAAa+nC,EAAO/nC,WAAW9nB,SAASzf,KAAK+gZ,iBAC7CG,GAAWxzY,EAAAA,EAAAA,GAAE,SAAS+R,SAASzf,KAAKghZ,eAAe/oX,SAASsP,GAChE,IAAIvnC,KAAKihZ,eAAeC,GAAUp4Y,EAAAA,EAAAA,GAAO9I,KAAKmhZ,iBAAkB,CAC5Dv/Y,MAAO5B,KAAKohZ,YAAYhnL,GACxBmvB,YAAa,CACT,aAAc,eAElB+jF,mBAAmB,EACnBC,mBAAmB,EACnBh1N,eAAgB,SAAS/3G,GACrBA,EAAEga,OAASxa,KAAK6+P,MAAMwiJ,0BAA0B7gZ,EAAEga,OAClDxa,KAAKshZ,qBAAqBlnL,EAAc55N,EAAEoB,OAC1CpB,EAAEga,OAASha,EAAEga,MAAMpT,mBACrBqD,KAAKzK,UAGf49Y,cAAe,SAAStuU,GACpBtvE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAIqyN,EAAe9qJ,EAAO8qJ,aACtBx/M,EAAU5a,KAAKihZ,eAAel3V,YAAYqwK,EAAa/9M,KAAK,IAAMrc,KAAKghZ,gBAC3ErrL,EAAAA,EAAAA,GAAgByE,EAAc,eAAgB,SAAS55N,EAAG22F,GACtDv8E,EAAQiK,OAAO,QAASsyE,IAC1B1sF,KAAKzK,QAEXuhZ,sBAAuB,WACdvhZ,KAAKwhZ,aAGVxhZ,KAAKyhZ,mBAAmB58X,OAAO,QAAS7kB,KAAK6+P,MAAMmY,gBAEvDupC,YAAa,WACL,QAAUvgT,KAAK6+P,MAAMh6O,OAAO,mBAG3B7kB,KAAKwhZ,YAGNxhZ,KAAKuhZ,wBAFLvhZ,KAAK0hZ,qBAKbC,qBAAsB,SAASC,EAAqBC,GAChD,IAAIC,GAAiBD,EACjB3gV,EAAOlhE,KAAK6+P,MACZkjJ,EAAa/hZ,KAAKwhZ,YAClBQ,EAAgB9gV,EAAK+gV,oBAGzB,SADyBF,KADFF,GAAe,IAAMD,GAAuBE,GAAiBF,IAAwBI,MAGxG9gV,EAAKr8C,OAAO,iBAAkBk9X,GAC9B7gV,EAAK21T,aAAa31T,EAAKr8C,OAAO,oBACvB,IAIfq9X,oBAAqB,SAAS1hZ,GAC1B,GAAIR,KAAKwhZ,aAAexhZ,KAAKwhZ,YAAYzxL,SArEvB,oBAyEd,OAHAvvN,EAAEoG,OAAS5G,KAAKwhZ,YAAY3hY,IAAI,GAChC7f,KAAK6+P,MAAMwiJ,0BAA0B7gZ,GACrCR,KAAKyhZ,mBAAmB58X,OAAO,SAAU7kB,KAAKyhZ,mBAAmB58X,OAAO,WACjE,GAGf68X,iBAAkB,WACd,IAAIK,EAAa/hZ,KAAKwhZ,aAAc9zY,EAAAA,EAAAA,GAAE,SAAS+R,SApFf,sBAqF5ByhD,EAAOlhE,KAAK6+P,MACZsjJ,EAAmBjhV,EAAKopR,iBAAiBS,UAAUtgV,KAAKy2D,GAC5DlhE,KAAKyhZ,mBAAqBvgV,EAAKkmL,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAS+R,SAtFlB,+BAsFuEwY,SAAS8pX,GAAa/rD,EAAAA,QAAU,CAC5IzsG,YAAa,CACT,aAAc,cAElB+jF,mBAAmB,EACnBC,mBAAmB,IAEvBvtU,KAAKyhZ,mBAAmBryC,mBAAmB,YAAa+yC,IACxDz0Y,EAAAA,EAAAA,GAAE,SAAS+R,SA7F2B,4BA6FuB9c,KAAK3C,KAAK6+P,MAAMh6O,OAAO,kBAAkBoT,SAAS8pX,GAC/G/hZ,KAAK6+P,MAAMqkG,iBAAiBttG,QAAQmsJ,GACpC/hZ,KAAKuhZ,wBACLvhZ,KAAKoiZ,2BAETA,wBAAyB,WACrBpiZ,KAAKyhZ,mBAAmB58X,OAAO,iBAAkB7kB,KAAKqiZ,kBAAkB53Y,KAAKzK,OAC7E21N,EAAAA,EAAAA,IAAiB31N,KAAKwhZ,YAAazlH,GACnCpmE,EAAAA,EAAAA,GAAgB31N,KAAKwhZ,YAAazlH,EAAkB/7R,KAAKsiZ,uBAAuB73Y,KAAKzK,QAEzFqiZ,kBAAmB,SAAS7hZ,GACxBA,EAAEga,OAASha,EAAEga,MAAMpT,kBACnB,IAAIm7Y,EAAgBviZ,KAAKyhZ,mBAAmB58X,OAAO,SACnDrkB,EAAEga,OAASxa,KAAK6+P,MAAMwiJ,0BAA0B7gZ,EAAEga,QAC9C,IAAS+nY,EACTviZ,KAAKwiZ,mBACE,IAAUD,GACjBviZ,KAAKyiZ,oBAETziZ,KAAK6+P,MAAMrjC,sBAAsB,0BAAjCx7N,CAA4D,CACxD4B,MAAO2gZ,KAGfG,0BAA2B,WACvB,IAAIxhV,EAAOlhE,KAAK6+P,MACZo8B,EAAiB/5N,EAAKg6N,gBAC1B,QAAI,aAAeh6N,EAAKr8C,OAAO,kBAAoBq8C,EAAKr8C,OAAO,aAAeo2Q,EAAevwQ,WACzFu3M,EAAAA,EAAAA,IAAW,UACJ,IAIfugL,gBAAiB,WACRxiZ,KAAK0iZ,6BAGV1iZ,KAAK6+P,MAAM3rM,WAAWqiF,UAAU,SAAWv1I,KAAK6+P,MAAMh6O,OAAO,mBAEjE49X,kBAAmB,WACVziZ,KAAK0iZ,6BAGV1iZ,KAAK6+P,MAAM3rM,WAAWyvV,YAAY,SAAW3iZ,KAAK6+P,MAAMh6O,OAAO,mBAEnEy9X,uBAAwB,SAAS9hZ,GAC7BR,KAAK6+P,MAAMwiJ,0BAA0B7gZ,GACrCR,KAAKyhZ,mBAAmB58X,OAAO,SAAU7kB,KAAKyhZ,mBAAmB58X,OAAO,WAE5Eu8X,YAAa,SAAShnL,GAClB,OAAOp6N,KAAK6+P,MAAMqoG,eAAe9sI,IAErCknL,qBAAsB,SAASlnL,EAAc0sE,GACrCA,EACA9mS,KAAK6+P,MAAM69F,WAAWtiI,GAEtBp6N,KAAK6+P,MAAMsoG,aAAa/sI,IAGhCh8M,QAAS,WACLpe,KAAK4iZ,oBACL5iZ,KAAK6+P,MAAMhlP,WAAWge,YAAY4oX,GAClCzgZ,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B66Y,kBAAmB,WACX5iZ,KAAKwhZ,cACLxhZ,KAAKwhZ,YAAYhgZ,SACjBxB,KAAKwhZ,YAAc,sRClL3BqB,EAAkC,+BAGlCC,EAAoC,iCA2BxC,EAzBevrE,EAAAA,EAAAA,QAA6B,CACxC2gB,gBAAiB,WACbl4V,KAAKuxN,WACLvxN,KAAKm4V,cAAc,QAASn4V,KAAK+iZ,aAAat4Y,KAAKzK,OACnDA,KAAKm4V,cAAc,cAAen4V,KAAKgjZ,mBAAmBv4Y,KAAKzK,QAEnE+iZ,aAAc,SAASE,GAEnB,GADAjjZ,KAAK4kB,UAAU7Z,SAAS,iCAAuCvJ,SAC1DyhZ,EAAL,CAGA,IAAIC,GAASx1Y,EAAAA,EAAAA,GAAE,SAAS+R,SAASojY,GAAiC9iY,QAAOrS,EAAAA,EAAAA,GAAE,SAAS+R,SAfhE,sBAegGA,SAd1G,YAcgI9c,KAAKsgZ,IAC3IE,EAAWnjZ,KAAK4kB,UAAU7Z,SAAS,mCAAyCi/D,QAChFm5U,EAAS7iZ,OAAS,EAAI4iZ,EAAOthR,aAAauhR,GAAYD,EAAOjrX,SAASj4B,KAAK4kB,aAE/Eo+X,mBAAoB,SAASI,GAEzB,GADApjZ,KAAK4kB,UAAU7Z,SAAS,mCAAyCvJ,SAC5D4hZ,EAAL,CAGA,IAAIC,GAAoB31Y,EAAAA,EAAAA,GAAE,SAAS+R,SAASqjY,GACxCK,GAAWz1Y,EAAAA,EAAAA,GAAE,SAAS+R,SAtBJ,wBAuBtB4jY,EAAkBtjY,OAAOojY,GAAUlrX,SAASj4B,KAAK4kB,gJCnBlD,SAAS0+X,EAAgB96Y,GAC5B,IAAI+6Y,EAAuBC,EAC3B,OAAOh7Y,IAAM8zN,EAAAA,EAAAA,MAAc,QAAUinL,GAAyBC,GAAav1L,EAAAA,EAAAA,OAAa1rF,wBAAqB,IAAWghR,OAAwB,EAASA,EAAsB9iZ,KAAK+iZ,EAAYh7Y,GAAM,KAEnM,SAASi7Y,EAAiB3jZ,EAASk0D,GACtC,IAAI/1C,EAAQqlY,EAAgBxjZ,GAC5B,OAAOme,GAAQw4T,EAAAA,EAAAA,GAASx4T,EAAM,SAAS2d,QAAO+2O,EAAAA,EAAAA,IAAS3+M,MAAW,MC2ElEqrV,aAjBAqE,EAAkB,eAClBC,EAAqB,gBAGrBC,EAAmB,gBACnBC,EAA0B,uBAC1BC,EAAwB,qBAExBC,EAA6B,0BAI7BC,EAAuB,oBAIvBC,GAAmB3xJ,EAAAA,EAAAA,eAAc,SAE1B2lJ,EAAW99D,EAAAA,EAAAA,QAAyB,CAC3C0P,iBAAkB,CAAC85D,EANQ,uBAMsC1yY,KAAK,KACtEq5U,eAAgB,WACZ,IAAI10J,EAAO51L,KACPkkZ,EAAmB,SAAS7oQ,GAC5B,IAAI28L,EAAQmsE,EAAmB9oQ,GACX28L,EAAMl+S,GAAG87J,EAAK/wK,OAAO,sBAEnC,SAASmzT,EAAO38L,GACd,IAAI+oQ,EAAiBpsE,EAAM7xT,WAAWrN,IAClC,SAAWuiI,IACX+oQ,EAAiBpsE,EAAM7xT,WAAWrN,KAAM+jI,EAAAA,EAAAA,IAAU+4C,EAAK/7K,aAAc2+M,EAAAA,EAAAA,IAAew/G,IAExFpiJ,EAAK/wI,SAASu/V,GALhB,CAMApsE,EAAO38L,GACT28L,EAAQmsE,EAAmB9oQ,IAE/Bu6C,EAAK/wK,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiB4hH,IAC/CpiJ,EAAKihM,aAAa7+C,IAGtB,SAASmsE,EAAmB9oQ,GACxB,IAAIp0G,EAAY2uJ,EAAK3uJ,YACjBo9W,GAAkBxnQ,EAAAA,EAAAA,IAAU+4C,EAAK/7K,YACjCm+T,GAAQtqU,EAAAA,EAAAA,GAAEkoL,EAAK/wK,OAAO,mBACtBy/X,GAAgB,EACpB,IAAKtsE,EAAM13U,OACP,OAAOoN,EAAAA,EAAAA,KAEX,KAAO42Y,GAAe,CAClB,IAAIC,EAAYvsE,EAAM38L,KACtB,IAAKkpQ,EAAUjkZ,OACX,MAEJ,IAAIkkZ,EAAmBD,EAAUp+X,WAAWrN,KAAM0/M,EAAAA,EAAAA,IAAe+rL,GAAa,GAC9ED,EAAgBE,EAAmBH,EAAkBp9W,GAAau9W,EAAmBv9W,KAEjF+wS,EAAQusE,GAGhB,OAAOvsE,EAEX,OAAOlvU,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bo5H,UAAW34H,EAAAA,KACXu4H,WAAYv4H,EAAAA,KACZk5H,OAAQ,WAEJ,OADAg5D,EAAiB,SACV,GAEX/4D,SAAU,WAEN,OADA+4D,EAAiB,SACV,MAInBzxL,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg8G,mBAAmB,EACnBk3E,oBAAoB,EACpBC,kBAAkB,EAClBlhD,eAAe,EACfmoB,cAAe,WACfg5B,oBAAoB,EACpB94B,eAAe,EACfG,iBAAiB,EACjBrlW,eAAe,EACfi+X,gBAAiBznF,EAAAA,EAAAA,OAA2B,0BAC5C0nF,eAAgB1nF,EAAAA,EAAAA,OAA2B,yBAC3C2nF,eAAgB3nF,EAAAA,EAAAA,OAA2B,yBAC3C4nF,gBAAiB5nF,EAAAA,EAAAA,OAA2B,0BAC5CjzH,SAAU,KACV86M,cAAe,KACfC,cAAe,KACfC,aAAc,eACdC,eAAgBhoF,EAAAA,EAAAA,OAA2B,yBAC3CioF,YAAa,KACbC,SAAS,EACTC,gBAAiB,KACjBC,mBAAmB,EACnBC,cAAe,QACfC,iBAAiB,EACjBp4E,oBAAoB,EACpB8sB,gBAAiB,CACb3nN,KAAM,UAEVspM,cAAc,EACd4pE,cAAc,EACdC,eAAe,EACfC,gBAAiB,SAAS/3Y,GACtB,OAAOA,EAAOA,EAAKu1Y,iBAAc,GAErCyC,UAAW,SAASh4Y,GAChB,OAAOA,EAAOA,EAAKo1Y,WAAQ,MAIvCrgK,qBAAsB,WAClB,IAAIkjK,GAAYxnK,EAAAA,EAAAA,WAChB,OAAOt+O,KAAKuxN,WAAW31L,QAAOmqX,EAAAA,EAAAA,KAA0B,CAAC,CACrD3nK,OAAQ,WACJ,OAAQoiC,EAAAA,iBAEZpmQ,QAAS,CACLuqY,oBAAoB,IAEzB,CACCvmK,OAAQ,SAAS4wI,GACb,OAAQxuG,EAAAA,kBAAoBr4C,EAAAA,QAAAA,eAAyB,YAAcA,EAAAA,QAAAA,OAAeC,YAAc,YAAc4mJ,EAAQrwP,UAE1HvkH,QAAS,CACLuxW,cAAe,UACfu5B,aAAc,eAEnB,CACC9mK,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,IAExB,CACClvF,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,YAAW6pE,IAEtB1rY,QAAS,CACLwqY,gBAAiB,GACjBC,eAAgB,GAChBC,eAAgB,GAChBC,gBAAiB,GACjBjpE,cAAc,OAI1BhyF,mBAAoB,SAASjhP,GACrBA,GACA7I,KAAKgmZ,qBAAoB,IAGjClnD,WAAY,WACR,OAAO4kD,GAEXtmD,aAAc,WACV,MAlJiB,kBAoJrBzkB,eAAgB,WACZ,OAAO34U,KAAKunY,aAEhB8Z,0BAA2B,SAAS7gZ,GAChCR,KAAKimZ,8BAAgCzlZ,GAEzC0lZ,yBAA0B,WACtB,OAAOlmZ,KAAKimZ,+BAEhBE,qBAAsB,WACbnmZ,KAAK6kB,OAAO,WAGb7kB,KAAKomZ,mBAAqBpmZ,KAAK24U,iBAAiB5tU,SAAS,kBAAwBA,SAAS,uBAA6BA,SAAS/K,KAAK44U,iBAFrI54U,KAAKomZ,mBAAqBpmZ,KAAK24U,iBAAiB5tU,SAAS/K,KAAK44U,kBAKtEkzB,iBAAkB,WACd9rW,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKmmZ,uBACLnmZ,KAAKgmZ,qBAAoB,IAE7Bp8C,YAAa,SAAS9+R,EAAa++R,GAE/B,OADc7pW,KAAKuxN,SAASzmJ,EAAa++R,GAC1BzwU,MAAM,WACjBp5B,KAAKmmZ,2BAGbz8C,WAAY,SAAS5+R,GAEjB,OADc9qE,KAAKuxN,SAASzmJ,GACb1xC,MAAM,WACjBp5B,KAAKmmZ,2BAGbrsE,cAAe,WACX,OAAO95U,KAAKomZ,oBAEhBp/C,mBAAoB,SAASxmW,GACzB,GAAI,WAAaR,KAAK6kB,OAAO,mBAAoB7kB,KAAKknW,eAAe1mW,EAAEkO,eAGvE,OAAO1O,KAAKuxN,SAAS/wN,IAEzBi+V,yBAA0B,WACtB,OAAO,GAEXjsR,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKk7R,gBAAgBzB,2BACrBz5R,KAAKunY,YAAcvnY,KAAK6Z,WACxB7Z,KAAKqmZ,kBACLrmZ,KAAKqwU,qBArMoB,GAsMzBrwU,KAAKsmZ,4BAETC,kBAAmB,WACf,MAAO,iBAAmBvmZ,KAAK6kB,OAAO,iBAE1C2hY,gBAAiB,WACb,MAAO,eAAiBxmZ,KAAK6kB,OAAO,iBAExCu2U,mBAAoB,WAChB,IAAIqrD,EAAezmZ,KAAKumZ,oBACpBG,EAAa1mZ,KAAKwmZ,kBACtB,OAAO19Y,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B9qK,UAAU+4M,EAAAA,EAAAA,eAAcinJ,GAAgBC,GAAY,MAG5DC,kBAAmB,WACf,OAAO3mZ,KAAK6kB,OAAO,YAEvB+hY,0BAA2B,SAASC,GAChC,OAAO7mZ,KAAK24U,iBAAiBt8T,KAAK,IAAIuf,OAAOgoX,IAAmBh8V,GAAGi/V,GAAYxqY,KAAK,IAAIuf,OAAOkoX,KAEnGgD,2BAA4B,WACxB,MAAO,OAEXT,gBAAiB,WACb,IAAI3B,EAAmB1kZ,KAAK6kB,OAAO,oBAC/B4/X,EAAqBC,GAAoB1kZ,KAAK6kB,OAAO,sBACrDkiY,EAAoBrC,GAAoB1kZ,KAAKumZ,uBAAyBvmZ,KAAKk7R,gBAAgBvB,gBAC/F35R,KAAKq/Y,YAAcr/Y,KAAKonP,iBAAiBpnP,KAAK6Z,WAykB3CwlY,GAAep9F,EAAAA,QAzkByD,CACvE1wS,OAAQvR,KAAK6kB,OAAO,UACpBvT,MAAOtR,KAAK6kB,OAAO,SACnBzZ,SAAUpL,KAAK6kB,OAAO,cAAgB6/X,EACtCx6M,SAAUlqM,KAAKgnZ,eAAev8Y,KAAKzK,MACnCinZ,WAAYxC,EAAqBzkZ,KAAKknZ,iBAAiBz8Y,KAAKzK,MAAQ,KACpEmnZ,cAAeJ,EAAoB/mZ,KAAKonZ,qBAAqB38Y,KAAKzK,MAAQ,KAC1E2rX,cAAe3rX,KAAK6kB,OAAO,iBAC3B+mW,UAAW5rX,KAAK6kB,OAAO,sBACvBgnW,cAAe7rX,KAAK6kB,OAAO,iBAC3BmnW,gBAAiBhsX,KAAK6kB,OAAO,mBAC7B8B,cAAe3mB,KAAK6kB,OAAO,iBAC3B+/X,gBAAiB5kZ,KAAK6kB,OAAO,mBAC7BggY,eAAgB7kZ,KAAK6kB,OAAO,kBAC5BigY,eAAgB9kZ,KAAK6kB,OAAO,kBAC5BwiY,gBAAiBrnZ,KAAK6kB,OAAO,mBAC7ByiY,aAAa,IAEjBtnZ,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAE1N,KAAKq/Y,YAAYv+X,WAClC9gB,KAAK6kB,OAAO,iBACZ7kB,KAAKunY,YAAY9nX,SAASukY,GAE9BhkZ,KAAKunZ,4BAETA,yBAA0B,WACtBvnZ,KAAKwnZ,cAAgBxnZ,KAAKw7N,sBAAsB,YAChDx7N,KAAKynZ,mBAAqBznZ,KAAKw7N,sBAAsB,iBACrDx7N,KAAK0nZ,mBAAqB1nZ,KAAKw7N,sBAAsB,kBAEzDwrL,eAAgB,SAASxmZ,GACrBR,KAAKwnZ,eAAiBxnZ,KAAKwnZ,cAAchnZ,IAE7Ck7N,eAAgB,WACZ17N,KAAK27N,iBAAiBC,oBAAoB,CACtClxM,MAAO,IAAIitO,EAAAA,GAAkB,SAASpwN,EAAY15B,IAC1CktE,EAAAA,EAAAA,IAAcltE,GACVA,EAAK7G,KACLugC,EAAW5kC,KAAKkL,EAAK7G,KAGzBugC,EAAW5kC,KAAKkjE,OAAOh4D,MAE3B,CAAC,OAAQ7N,KAAK6kB,OAAO,qCAE7B7kB,KAAKuxN,YAETwpI,4BAA6B,SAASltV,EAAM05B,GAExC,GADAvnC,KAAKuxN,SAAS1jN,EAAM05B,GAChB15B,EAAK8R,KAAM,CACX,IAAIH,GAAQ8yP,EAAAA,EAAAA,GAAkBzkQ,EAAK8R,MAAMF,SA/R1B,qBAgSXkoY,GAAiBj6Y,EAAAA,EAAAA,GAAE,SAAS+R,SAjSP,+BAkSzBkoY,EAAe5nY,OAAOP,GACtB+nB,EAAWquN,QAAQ+xJ,KAG3B3sD,mBAAoB,WAChB,MAAO,CAAC,OAAQ,OAAQ,SAE5BgrD,oBAAqB,SAAS4B,GAC1B,IAAI3sH,EAAiBj7R,KAAKk7R,gBACtB2sH,EAAqB7nZ,KAAKumZ,qBAAuBqB,IAAgB3sH,EAAelyQ,cAAgB/oB,KAAKoxR,cACrGpxR,KAAK8nZ,uBAAuBD,GAC5B7nZ,KAAK+nZ,wBAEL/nZ,KAAKq/Y,YAAYpmH,SAAS4uH,IAAuB5sH,EAAelyQ,aAChE/oB,KAAKgoZ,kBAAkBhoZ,KAAKioZ,4BAA8BjoZ,KAAKoxR,eAC/DpxR,KAAKkoZ,2BAA0B,KAGvCD,wBAAyB,WACrB,OAAOjoZ,KAAKwmZ,mBAAqBxmZ,KAAKk7R,gBAAgBhJ,YAE1Di2H,gCAAiC,SAAS5hY,GAItC,OAHIoiC,EAAAA,EAAAA,IAAUpiC,KACVvmB,KAAKooZ,sBAAwB7hY,GAE1BvmB,KAAKooZ,uBAEhBC,iCAAkC,SAASt/X,GACnC/oB,KAAKkoZ,8BAGLn/X,GAAa/oB,KAAK6kB,OAAO,mBACzB7kB,KAAKsoZ,2BAA6BzlZ,WAAW,WACzC,IAGQ0lZ,GAHOvoZ,KAAK85U,gBAAgBx5U,SACIN,KAAKmoZ,oCAGzC,QAAUI,EAAoBvoZ,KAAKq/Y,mBAAgB,IAAWkJ,GAA6BA,EAAkBC,iBAEnH/9Y,KAAKzK,QAEPk+B,aAAal+B,KAAKsoZ,4BAClBtoZ,KAAKq/Y,aAAer/Y,KAAKq/Y,YAAYoJ,iBAEpC1/X,GACD/oB,KAAKmoZ,iCAAgC,KAG7ChqD,0BAA2B,YAClBn+V,KAAKo+V,uBAAwB9hI,EAAAA,EAAAA,OAC9Bt8N,KAAKq/Y,aAAer/Y,KAAKq/Y,YAAYx6V,SAAS,GAElD7kD,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKmoZ,iCAAgC,IAEzC9pD,gBAAiB,WACbr+V,KAAKs+V,kBACLt+V,KAAKm/V,2BAETupD,gCAAiC,WACxB1oZ,KAAK6kB,OAAO,oBACb7kB,KAAKqoZ,kCAAiC,IAG9CH,0BAA2B,SAAStmZ,GAChC,IAAKmG,UAAUzH,OACX,OAAON,KAAK2oZ,4BAEhB3oZ,KAAK2oZ,4BAA8B/mZ,GAEvCgnZ,kBAAmB,WACf,IAAIv+U,EAAarqE,KAAKq/Y,YACtB,OAAQh1U,IAAcwyE,EAAAA,EAAAA,IAAUxyE,EAAWvpD,YAAa+7H,EAAAA,EAAAA,IAAUxyE,EAAWvqD,cAEjFonY,iBAAkB,SAAS1mZ,GACvBR,KAAKynZ,mBAAmBjnZ,GACxB,IAAIy6R,EAAiBj7R,KAAKk7R,gBACtBD,EAAetB,kBAAoBsB,EAAelyQ,aAClD/oB,KAAKooW,sBACLntE,EAAe5K,UAAU,GACzB4K,EAAetH,UAEf3zR,KAAKgmZ,uBAGb8B,uBAAwB,SAASD,GAC7B,IAAIgB,EAAuBC,EACvBC,GAAkBlsQ,EAAAA,EAAAA,IAAU78I,KAAKq/Y,YAAYv+X,YAAa+7H,EAAAA,EAAAA,IAAU78I,KAAKq/Y,YAAYv/X,cAAgB,QAAU+oY,EAAwB,QAAUC,EAAyB9oZ,KAAKq/Y,YAAYn6V,sBAAmB,IAAW4jW,OAAyB,EAASA,EAAuBhwY,WAAQ,IAAW+vY,EAAwBA,EAAwB,GACzV,OAAOhB,KAAwB7nZ,KAAK4oZ,qBAAuBG,IAE/DhB,qBAAsB,WAAW,WACN/nZ,KAAK6Z,WAAWigB,GAAG,cAEtCoE,aAAal+B,KAAKgpZ,oBAClBhpZ,KAAKgpZ,mBAAqBnmZ,YAAW,WACjC,EAAKi7V,qBAIjBspD,qBAAsB,SAAS5mZ,GAC3BR,KAAK0nZ,mBAAmBlnZ,GACHR,KAAKk7R,gBACNnyQ,aAAgB/oB,KAAKoxR,cAGrCpxR,KAAKgmZ,sBAFLhmZ,KAAK89V,iBAKb2C,aAAc,SAAS/0V,GACf1L,KAAK6kB,OAAO,aACZpK,EAAAA,EAAAA,IAAK/O,EAAO1L,KAAKipZ,aAAax+Y,KAAKzK,OACnCA,KAAKkpZ,4BACLlpZ,KAAK09V,uBACDzhB,EAAAA,EAAAA,eACAj8U,KAAKmpZ,oCAGTnpZ,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAE9B/H,KAAKmmZ,uBACLnmZ,KAAKgmZ,qBAAoB,IAE7BkD,0BAA2B,WACvB,IAAIj/W,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAC9CxrM,EAAW,wBACX1P,EAAW7Z,KAAK6Z,WAChB0rY,EAAoBvlZ,KAAK6kB,OAAO,qBACpChL,EAAS28M,YA5ZmB,6BA4ZwB+uL,GACpD5vL,EAAAA,EAAAA,IAAiB97M,EAAUowB,EAAW1gB,GAClCg8X,GACA5vL,EAAAA,EAAAA,GAAgB97M,EAAUowB,EAAW1gB,EAAU,SAAS/oB,GACpDR,KAAK6lP,cAAc,SAASrlP,GACxB,IAAI4oZ,GAAS17Y,EAAAA,EAAAA,GAAElN,EAAEga,MAAM9L,eAAejD,SACtCzL,KAAKqpZ,sBAAsBD,GACvBppZ,KAAK6kB,OAAO,sBACZ7kB,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBgzL,EAAO/sY,KAAK,iBAAuBurC,GAAG,MAE3Fn9C,KAAKzK,MAAO,CACVo3O,qBAAsB,WAP1Bp3O,CAQG,CACCwa,MAAOha,KAEbiK,KAAKzK,QAGfqpZ,sBAAuB,SAASD,EAAQh0J,GACpC,IAAIpqN,EAAW,IAAIwnL,EAAAA,GACnB,GAAI42L,EAAOr5L,SAASg0L,KAAgC3uJ,EAChD,OAAOpqN,EAAS56B,UAEpB,IAAIk5Y,EAAaF,EAAOr+Y,SAAS,uBAC7Bw+Y,GAAc/wL,EAAAA,EAAAA,IAAe8wL,GAC7BE,EAAY,EAqBhB,OApBI,IAAMD,KACNh/M,EAAAA,EAAAA,IAAU++M,EAAY,QACtBE,GAAYhxL,EAAAA,EAAAA,IAAe8wL,IAE/BF,EAAO5yL,YAAYutL,EAA4B3uJ,GAC/Cn1B,EAAAA,QAAAA,QAAWqpL,EAAY,CACnB3lY,KAAM,SACNxa,KAAM,CACFoI,OAAQg4Y,GAEZvoV,GAAI,CACAzvD,OAAQi4Y,GAEZhqL,SAAU,IACVyE,SAAU,WACNjkO,KAAK03X,mBACL13X,KAAKgmZ,qBAAoB,GACzBh7W,EAAS56B,WACX3F,KAAKzK,QAEJgrC,EAASx6B,WAEpBguV,4BAA6B,WACzBx+V,KAAKk+V,yBACDl+V,KAAK2jP,eACL3jP,KAAK09V,sBACL19V,KAAKgmZ,wBAGbv7J,YAAa,WACTzqP,KAAKomZ,oBAAqB14Y,EAAAA,EAAAA,KAC1B1N,KAAK6Z,WAAW4F,SA7dP,WA8dTzf,KAAKuxN,WACLvxN,KAAK6kB,OAAO,iBAAmB7kB,KAAKmjX,mBACpCnjX,KAAK4gV,QAAQ,CACTpuM,KAAM,QACNi3Q,gBAAiB,QAClBzpZ,KAAK6Z,YACR7Z,KAAK0pZ,gBAETA,aAnd2C,WAodvC,IACWh+Y,EACP1L,KAAK6kB,SADLnZ,MAEAi+Y,EAAW,OAASj+Y,QAAS,IAAWA,GAASA,EAAMpL,OAAS,CAChEkyI,KAAM,UACN6Q,MAAO,SACP,CACA7Q,UAAM,EACN6Q,WAAO,GAEXrjJ,KAAK4gV,QAAQ+oE,IAEjB5gH,aAAc,WACV,OAAO/oS,KAAK24U,kBAEhBwqC,iBAAkB,WACdnjX,KAAK4+V,YAAar/U,EAAAA,EAAAA,OAEtBqqY,mBAAoB,SAAS/vY,EAAUjY,EAAOpB,GAC1CR,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAI6tL,EAAO51L,KACX,GAAKA,KAAK4+V,WAAV,CAGA,IAAItvR,EAAS,CACTxvE,QAAS+Z,EACTW,MAAOha,GAEPoB,GACIq6U,EAAAA,EAAAA,cACAj8U,KAAK6pZ,gBAAkBhnZ,YAAY,WAC/B+yL,EAAKgpK,WAAWpjB,SAASlsQ,KACzBw6U,IAEJl0N,EAAKgpK,WAAWpjB,SAASlsQ,IAG7BpxC,aAAal+B,KAAK6pZ,iBAClB7pZ,KAAK4+V,WAAWrjB,SAASjsQ,MAGjCgyR,uBAAwB,SAAS96U,GAC7BxmB,KAAKmmZ,uBACLnmZ,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACtB/H,KAAK6kB,OAAO,kBACZ7kB,KAAK+pZ,mBAAkBr8Y,EAAAA,EAAAA,GAAE8Y,EAAKskD,eAGtCi/U,kBAAmB,SAAS3vL,GACxB,IAAI4vL,GAAe57L,EAAAA,EAAAA,cAAa0kF,EAAAA,GAAe9yS,KAAK+0N,MACpDY,EAAAA,EAAAA,GAAgByE,EAAc4vL,EAAchqZ,KAAKiqZ,qBAAqBx/Y,KAAKzK,QAE/EiqZ,qBAAsB,SAASzpZ,GAC3BR,KAAK2/V,oBAAoBn/V,EAAG,cAAe,CACvC66I,UAAW76I,EAAE+K,OAAS,EAAI,OAAS,WAG3C2+Y,mBAAoB,SAAS1pZ,GACzBR,KAAK0nZ,mBAAmBlnZ,GACxB,IAAIy6R,EAAiBj7R,KAAKk7R,gBACtBD,EAAetB,kBAAoBsB,EAAelyQ,cAClD/oB,KAAKq/Y,YAAY8K,eAAc,GAC/BnqZ,KAAKoqZ,aAAaj9P,SAClBntJ,KAAKkoZ,2BAA0B,GAC/BloZ,KAAK89V,kBAGbmrD,aAAc,SAASpoZ,EAAO6pB,GAC1B,IAAI2/X,GAAgB38Y,EAAAA,EAAAA,GAAE,SAAS+R,SAASmkY,GAAkB3rX,SAASj4B,KAAK24U,kBACpE1uU,EAAK,MAAM2xB,QAAQ,IAAIu1N,EAAAA,GAAM1iP,YAC7B67Y,EAAY,CACZ93Q,KAAM,QACN+3Q,WAAYtgZ,GAEhBjK,KAAK4gV,QAAQ0pE,EAAWD,GACxB,IAAIG,GAAsB98Y,EAAAA,EAAAA,GAAE,SAAS+R,SAASokY,GAAyBjkY,KAAK,KAAM3V,GAAIguB,SAASoyX,GAC3FI,EAAoBzqZ,KAAK6kB,OAAO,iBAChC2gY,EAAgBxlZ,KAAKu2N,aAAa7rM,EAAMf,UAAY8gY,EAAmB//X,EAAO7pB,EAAO2pZ,GACrFtoD,EAAa,CACbrhW,MAAOA,EACPgqE,SAAUngD,EACV5K,WAAWs2M,EAAAA,EAAAA,GAAiBo0L,IAEhCxqZ,KAAK2hW,sBAAsB6jD,EAAetjD,IACtCjmB,EAAAA,EAAAA,gBACAvuU,EAAAA,EAAAA,GAAE,SAAS+R,SAljBiB,kCAkjB2BuoB,UAAUwiX,GAErExqZ,KAAK0qZ,qBAAuB7pZ,EAC5B,IAAIyoZ,GAAa57Y,EAAAA,EAAAA,GAAE,SAAS+R,SAASqkY,GAAuB7rX,SAASoyX,IACrE5vY,EAAAA,EAAAA,IAAKwpY,EAAiBv5X,IAAU,GAAI,SAAS1I,EAAW9hB,GACpDF,KAAKy9V,YAAY,CACb/yU,MAAO7pB,EACPX,KAAM8hB,GACP9hB,EAAMopZ,IACX7+Y,KAAKzK,OACPA,KAAK2qZ,mBAAmB,CACpBC,cAAcx0L,EAAAA,EAAAA,GAAiBi0L,GAC/BxD,WAAYhmZ,EACZgqZ,UAAWngY,KAGnBogY,qBAAsB,SAAStqZ,GAC3BR,KAAK4pZ,oBAAmBl8Y,EAAAA,EAAAA,GAAElN,EAAEkO,gBAAgB,EAAMlO,IAEtDuqZ,mBAAoB,SAASvqZ,GACzBR,KAAK4pZ,oBAAmBl8Y,EAAAA,EAAAA,GAAElN,EAAEkO,gBAAgB,IAEhDy6Y,iCAAkC,WAC9B,IAAI5/X,EAAW,wBACX1P,EAAW7Z,KAAK6Z,WACpB7Z,KAAKgrZ,sBAAwBhrZ,KAAKgrZ,uBAAyBhrZ,KAAK8qZ,qBAAqBrgZ,KAAKzK,MAC1FA,KAAKirZ,oBAAsBjrZ,KAAKirZ,qBAAuBjrZ,KAAK+qZ,mBAAmBtgZ,KAAKzK,MACpF,IAAIkrZ,EAAgB,CAACrxY,EAAU,gBAAiB0P,EAAUvpB,KAAKgrZ,uBAC3DG,EAAc,CAACtxY,EAAU,2BAA4B0P,EAAUvpB,KAAKirZ,qBACxEt1L,EAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAoBu1L,GACpBv1L,EAAAA,EAAAA,GAAAA,MAAAA,EAAAA,EAAmBu1L,GACnBv1L,EAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAoBw1L,GACpBx1L,EAAAA,EAAAA,GAAAA,MAAAA,EAAAA,EAAmBw1L,IAEvB7E,yBAA0B,WACtBtmZ,KAAK2qZ,mBAAqB3qZ,KAAKw7N,sBAAsB,oBAEzD+vB,OAAQ,WACJrtN,aAAal+B,KAAK6pZ,iBACd7pZ,KAAKoqZ,eACLpqZ,KAAKoqZ,aAAa5oZ,SAClBxB,KAAKoqZ,aAAe,MAExBpqZ,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9Bs0N,SAAU,WACNr8N,KAAKmoZ,iCAAgC,GACrCjqX,aAAal+B,KAAKwzS,YAClBt1Q,aAAal+B,KAAKgpZ,oBAClB9qX,aAAal+B,KAAKsoZ,4BAClBtoZ,KAAKuxN,YAET65L,qBAAsB,SAASxpZ,GAC3B5B,KAAKuxN,SAAS3vN,GACd5B,KAAKq/Y,YAAYx6X,OAAO,WAAYjjB,IAAU5B,KAAK6kB,OAAO,sBAE9DmjY,kBAAmB,SAASpmZ,GACxB,IAAIq5R,EAAiBj7R,KAAKk7R,gBACtBojD,EAAct+U,KAAKqrZ,iBACvBrrZ,KAAK6Z,WAAW28M,YA5mBE,cA4mB+B50N,GAC7CA,GAASq5R,EAAe/I,YACxBosD,EAAYrmT,SAASj4B,KAAK24U,kBAEzB/2U,GACD08U,EAAYnxL,UAGpBk+P,eAAgB,WAIZ,OAHKrrZ,KAAKoqZ,eACNpqZ,KAAKoqZ,aAAepqZ,KAAKsrZ,qBAEtBtrZ,KAAKoqZ,cAEhBkB,kBAAmB,WACf,IAAIxyJ,GAAUprP,EAAAA,EAAAA,GAAE,SAAS+R,SA1nBJ,uBA2nBjBu7X,GAAUttY,EAAAA,EAAAA,GAAE,SAASuqB,SAAS6gO,GAOlC,OANA94P,KAAKonP,iBAAiB4zJ,EAAS9+D,EAAAA,QAAQ,CACnCv5U,KAAM3C,KAAK6kB,OAAO,kBAClBmiD,QAAShnE,KAAKkqZ,mBAAmBz/Y,KAAKzK,MACtC2jB,MAAMs4T,EAAAA,EAAAA,cAAe,eAAY,EACjC9yF,mBAAoB,KAEjB2P,GAEX4gG,WAAY,WACR15V,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK62X,aAAa72X,KAAK6kB,OAAO,oBAElC+mO,SAAU,WACN,IAAKtvB,EAAAA,EAAAA,MAEE,CACH,IAAIr1L,EAAYjnC,KAAKq/Y,YAAYp4W,YACjCjnC,KAAKuxN,WACLtqL,GAAajnC,KAAKq/Y,YAAYx6V,SAAS5d,QAJvCjnC,KAAKuxN,YAOb2K,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,eACDxN,KAAKgoZ,kBAAkBxhY,EAAK5kB,OAC5B5B,KAAKqmZ,kBACL,MACJ,IAAK,aACDrmZ,KAAKuxN,SAAS/qM,GACdxmB,KAAKqmZ,kBACLrmZ,KAAKmoZ,iCAAgC,GACrC,MACJ,IAAK,QACDnoZ,KAAKuxN,SAAS/qM,GACdxmB,KAAKmoZ,iCAAgC,GACrC,MACJ,IAAK,kBACL,IAAK,iBACL,IAAK,iBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACDnoZ,KAAKqmZ,kBACLrmZ,KAAKgmZ,qBAAoB,GACzB,MACJ,IAAK,iBACL,IAAK,cACL,IAAK,eAQL,IAAK,UACL,IAAK,oBACL,IAAK,gBA0BL,IAAK,kBACL,IAAK,YACDhmZ,KAAK0rP,cACL,MApCJ,IAAK,WACL,IAAK,gBACL,IAAK,gBACD1rP,KAAKunZ,2BACL,MAMJ,IAAK,eACDvnZ,KAAKunY,YAAY/wK,YAAYwtL,EAAsBx9X,EAAK5kB,OACxD,MACJ,IAAK,kBACD5B,KAAKsmZ,2BACL,MACJ,IAAK,QACL,IAAK,SACDtmZ,KAAKuxN,SAAS/qM,GACdxmB,KAAKq/Y,YAAYx6X,OAAO2B,EAAKhZ,KAAMgZ,EAAK5kB,OACxC5B,KAAKq/Y,YAAYhhY,SACjB,MACJ,IAAK,kBACDre,KAAK0oZ,kCACL,MACJ,IAAK,UACD1oZ,KAAKuxN,SAAS/qM,GACdxmB,KAAKq/Y,YAAYhhY,SACjB,MACJ,IAAK,aACDre,KAAKqmZ,kBACLrmZ,KAAKuxN,SAAS/qM,GACd,MAKJ,IAAK,gBACL,IAAK,gBACD,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1Bu8U,kBAAmB,SAAS3oI,GACxB,IAAKp6N,KAAK6kB,OAAO,WACb,OAAO7kB,KAAKuxN,SAAS6I,GAEzB,IAAIgvL,EAAShvL,EAAarwN,QAAQ,kBAC9BiuU,EAAQoxE,EAAO/sY,KAAK,iBACxB,OAAOvT,EAAAA,EAAAA,GAAO9I,KAAKuxN,SAAS6I,GAAe,CACvCp4M,UAAW,CACP0I,MAAO0+X,EAAOvoZ,QACdX,KAAM83U,EAAMn3U,MAAMu5N,OAI9BmxL,YAAa,SAAS1E,GAClB,IAAI77W,EAAW,IAAIwnL,EAAAA,GACf42L,EAASppZ,KAAK24U,iBAAiBt8T,KAAK,kBAAwBurC,GAAGi/V,GAInE,OAHA7mZ,KAAKqpZ,sBAAsBD,GAAQ,GAAOhwX,KAAK,WAC3C4R,EAASq0L,YAAYr/N,OACvByK,KAAKzK,OACAgrC,EAASx6B,WAEpBg7Y,cAAe,SAAS3E,GACpB,IAAI77W,EAAW,IAAIwnL,EAAAA,GACf42L,EAASppZ,KAAK24U,iBAAiBt8T,KAAK,kBAAwBurC,GAAGi/V,GAInE,OAHA7mZ,KAAKqpZ,sBAAsBD,GAAQ,GAAMhwX,KAAK,WAC1C4R,EAASq0L,YAAYr/N,OACvByK,KAAKzK,OACAgrC,GAEX0sV,iBAAkB,WACd,IAAI9hM,EAAO51L,KACPgrC,EAAW,IAAIwnL,EAAAA,GASnB,OARI58B,EAAKypN,YACLzpN,EAAKypN,YAAYhhY,SAAS+a,MAAM,YAC3Bw8J,EAAKgzN,qBAAuBhzN,EAAKowN,qBAAoB,GACtDh7W,EAASq0L,YAAYzpC,MAGzB5qJ,EAASq0L,YAAYzpC,GAElB5qJ,EAASx6B,WAEpBmjR,OAAQ,WACJ3zR,KAAKuxN,WACLvxN,KAAK6kD,SAAS,GACd7kD,KAAKknZ,oBAET5hY,QAAS,WACLtlB,KAAK6kD,SAAS,GACd7kD,KAAKuxN,YAETtqL,UAAW,WACP,OAAOjnC,KAAKq/Y,YAAYn6V,eAAepsC,KAE3CuuC,aAAc,WACV,OAAOrnD,KAAKq/Y,YAAYh4V,gBAE5BD,aAAc,WACV,OAAOpnD,KAAKq/Y,YAAYj4V,gBAE5Bq0F,SAAU,SAAS91G,GACf3lC,KAAKq/Y,YAAY5jQ,SAAS91G,IAE9Bkf,SAAU,SAAS7kB,GACfhgC,KAAKq/Y,YAAYx6V,SAAS7kB,IAE9B62V,aAAc,SAAS/rT,GACnB,IAAIktQ,EAAQh4U,KAAKmkW,cAAc+D,eAAep9R,GAC1C5qE,EAAO,OAAS83U,QAAS,IAAWA,OAAQ,EAASA,EAAMn4T,IAAI,GACnE7f,KAAKq/Y,YAAY5sS,gBAAgBvyG,EAAM,CACnC8d,OAAQylY,EAAiBvjZ,EAAM,aAGvC6pP,kBAAmB,WACf/pP,KAAK03X,sBAEVt2P,QAAQqqR,EAAAA,GACXxT,EAAS79D,UAAYsxE,mHCh3BjBpT,EAAsB,sBACtBqT,GAAyBv9L,EAAAA,EAAAA,cAAaskF,EAAAA,GAAiB4lG,GACvDsT,GAA0Bx9L,EAAAA,EAAAA,cAAawkF,EAAAA,GAAiB0lG,GACxDuT,GAAuBz9L,EAAAA,EAAAA,cAAa0kF,EAAAA,GAAewlG,GACnDX,EAAgBt1J,EAAAA,QAAAA,QAAc,CAC9Bz+G,KAAM,SAAS1iE,GACXlhE,KAAK6+P,MAAQ39L,EACblhE,KAAKwyE,SAETA,MAAOw/I,EAAAA,KACPwpL,oBAAoB,EACpBuO,kBAAmB,SAASz6U,GACxB,IAAIw8U,EAAc,CACdh+G,aAAc,WAKV,OAJI9tS,KAAK+rZ,mBACL/rZ,KAAKgsZ,iBAAkBlvQ,EAAAA,EAAAA,IAAS98I,KAAK6+P,MAAMhlP,YAC3C7Z,KAAK+rZ,kBAAmB,GAErB/rZ,KAAKgsZ,iBACdvhZ,KAAKzK,OAEX21N,EAAAA,EAAAA,GAAgBrmJ,EAAO8qJ,aAAcuxL,EAAwBG,EAAa9rZ,KAAKisZ,uBAAuBxhZ,KAAKzK,OAC3G21N,EAAAA,EAAAA,GAAgBrmJ,EAAO8qJ,aAAcwxL,EAAyB5rZ,KAAKksZ,wBAAwBzhZ,KAAKzK,OAChG21N,EAAAA,EAAAA,GAAgBrmJ,EAAO8qJ,aAAcyxL,EAAsB7rZ,KAAKiqZ,qBAAqBx/Y,KAAKzK,QAE9FisZ,uBAAwB,SAASzrZ,GAC7B,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACnB0rN,EAAatgM,GAAG,4CAChBt5B,EAAEulC,QAAS,GAGf7H,aAAal+B,KAAK6+P,MAAMgrJ,iBACxB7pZ,KAAKkxV,mBAAmB92H,EAAc55N,KAE1C0rZ,wBAAyB,SAAS1rZ,GAC9B,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACvB1O,KAAKmxV,oBAAoB/2H,EAAc55N,IAE3CypZ,qBAAsB,SAASzpZ,GAC3B,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACvB1O,KAAKoxV,iBAAiBh3H,EAAc55N,GACpCR,KAAK+rZ,kBAAmB,GAE5BzQ,UAAWtpL,EAAAA,KACX6sL,SAAU7sL,EAAAA,KACVmvL,eAAgB,WACZ,MAAO,CACH9zE,mBAAoBrtU,KAAK6+P,MAAMh6O,OAAO,sBACtC0oT,kBAAmBvtU,KAAK6+P,MAAMh6O,OAAO,qBACrCyoT,kBAAmBttU,KAAK6+P,MAAMh6O,OAAO,uBAG7C+4X,cAAe,SAAStuU,GAChBtvE,KAAKw7Y,qBACLx7Y,KAAK+pZ,kBAAkBz6U,GACvBtvE,KAAK+rZ,kBAAmB,IAGhCxrG,YAAavuF,EAAAA,KACbxpE,YAAawpE,EAAAA,KACb2vL,qBAAsB3vL,EAAAA,KACtBkwL,oBAAqBlwL,EAAAA,KACrBomL,kBAAmBpmL,EAAAA,KACnBk/H,mBAAoBl/H,EAAAA,KACpBm/H,oBAAqBn/H,EAAAA,KACrBo/H,iBAAkBp/H,EAAAA,KAClBm6L,iBAAkBn6L,EAAAA,KAClBo6L,qBAAsBp6L,EAAAA,KACtB5zM,QAAS4zM,EAAAA,OAEb,+GCpFWq6L,EAAW,GACf,SAAS/2U,EAASzwD,EAAQlB,EAAM2oY,GACnC,IAAIC,EAAqBF,EACrBG,EAAkB,GACtBA,EAAgB3nY,GAAU0nY,EAAmB1nY,GAAU0nY,EAAmB1nY,GAAU,GACpF2nY,EAAgB3nY,GAAQlB,GAAQ2oY,GAChCxjZ,EAAAA,EAAAA,GAAOyjZ,EAAoBC,oKCK3BC,EAAe,SAAS3mD,GACxB,OAAQA,EAAQp7U,OAHE,IAG0Bo7U,EAAQ5lW,MAEpD8xJ,EAAa,SAAS06P,GACtB,MAAO,CACHhiY,MAAOgiY,GAPO,GAQdxsZ,KAPa,QAOPwsZ,IA2Ld,EAxL0BvhD,EAAAA,EAAAA,QAAqB,CAC3CwhD,eAAgB,WACZ,OAAO3sZ,KAAKuqW,kBAAkB5xB,iBAAiBt8T,KAAK,mBAExDuwY,mBAAoB,SAASxD,GACzB,OAAOA,EAAO/sY,KAAK,kBAEvBuoV,mBAAoB,SAAS/5R,GACzB,IAAI5+C,EAASjsB,KAAKuqW,kBAAkB1lV,OAAO,SACvChkB,GAAQ,EACZ,QAAKgqE,IAGDA,EAASn/D,OAASm/D,EAASn/D,MAAMpL,SACjCuqE,EAAWA,EAASn/D,MAAM,KAE9B+O,EAAAA,EAAAA,IAAKwR,GAAS,SAAS46X,EAAYn8X,GAC/B,QAAKA,EAAMhf,SAGX+O,EAAAA,EAAAA,IAAKiQ,EAAMhf,OAAQ,SAASsW,EAAW9hB,GACnC,OAAIA,IAAS2qE,IAGbhqE,EAAQ,CACJ6pB,MAAOm8X,EACP3mZ,KAAM8hB,IAEH,OAEPnhB,QAAJ,MAIGA,IAEX2lW,mBAAoB,SAAS3lW,GACzB,IAAI6K,EAAQ1L,KAAKuqW,kBAAkB1lV,OAAO,SAC1C,OAAIkgG,EAAAA,EAAAA,IAAUlkH,GACHb,KAAKglW,cAAcnkW,GAEvBA,GAAS6K,EAAM7K,EAAM6pB,QAAUhf,EAAM7K,EAAM6pB,OAAOhf,MAAM7K,EAAMX,OAAS,MAElF8kW,YAAa,WAGT,IAFA,IAAIv6E,EAAc,GACd/+Q,EAAQ1L,KAAKuqW,kBAAkB1lV,OAAO,SACjC9Y,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAC1BL,EAAMK,IAAML,EAAMK,GAAGL,MACrB++Q,EAAcA,EAAY7uP,OAAOlwB,EAAMK,GAAGL,OAE1C++Q,EAAY7pR,KAAK8K,EAAMK,IAG/B,OAAO0+Q,GAEX6+E,kBAAmB,SAASzoW,GACxB,IAAIilW,EAAU9zM,EAAWnxJ,GACTb,KAAKuqW,kBAAkB1lV,OAAO,SAASihV,EAAQp7U,OAAOhf,MAC5D6D,OAAOu2V,EAAQ5lW,KAAM,IAEnCkkW,eAAgB,SAAS14V,GACrB,IACIK,EADAy5V,EAAa,GAEjB,IAAKz5V,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IACtBL,EAAMK,IAAML,EAAMK,GAAGL,MACrB85V,EAAaA,EAAW5pU,OAAOlwB,EAAMK,GAAGL,OAExC85V,EAAW5kW,KAAK8K,EAAMK,IAG9B,IAAI8C,EAAS,GACb,IAAK9C,EAAI,EAAGA,EAAIy5V,EAAWllW,OAAQyL,IAC/B8C,EAAOjO,KAAKZ,KAAKuqW,kBAAkBryF,MAAMstF,EAAWz5V,KAExD,OAAO8C,GAEX61V,cAAe,SAAS19V,EAAK0E,GACzB,IAAIugB,EAASvgB,GAAS1L,KAAKuqW,kBAAkB1lV,OAAO,SAChDhkB,GAAS,EACT+0L,EAAO51L,KAmBX,OAlBAya,EAAAA,EAAAA,IAAKwR,GAAS,SAAS46X,EAAYn8X,GAC/B,GAAKA,EAAMhf,MAaX,OAVA+O,EAAAA,EAAAA,IAAKiQ,EAAMhf,OAAQ,SAASsW,EAAW9hB,GACnC,IAAIkxY,EAAUx7M,EAAK20K,kBAAkBryF,MAAMh4Q,GAC3C,GAAI01L,EAAK80K,WAAW0mC,EAASpqY,GAKzB,OAJAnG,EAAQ,CACJ6pB,MAAOm8X,EACP3mZ,KAAM8hB,IAEH,MAGV,IAAMnhB,QAAX,KAIGA,GAEXgsZ,WAAY,SAASnhZ,GACjB,IACIgf,EADiB1qB,KAAKuqW,kBAAkBrvE,gBACjBxwQ,QAC3B,OAAIA,EACO+4P,EAAAA,EAAAA,gBAA2BuU,EAAAA,EAAAA,SAAMtsR,GAAQ,CAC5Cgf,MAAOA,IACRovM,UAEA95N,KAAKuqW,kBAAkB1lV,OAAO,UAEzCy/U,eAAgB,SAASv9V,EAAM2E,GAAO,WAC9BmD,EAAS,GACTod,EAASjsB,KAAK6sZ,WAAWnhZ,GACzBohZ,EAAoB,GA8BxB,OAlBAryY,EAAAA,EAAAA,IAAK1T,GAAO,SAAS2T,EAAG1T,GACpB,IAAI+lZ,EAZU,SAAA/lZ,GACd,IAAInG,EAAQ,EAAK6jW,cAAc19V,EAAKilB,GAChCvB,EAAQ7pB,GAASorB,EAAOprB,EAAM6pB,OAClC,GAAKA,EAGL,MAAO,CACHsiY,SAAUtiY,EAAM1jB,IAChB9G,KAAMwqB,EAAMhf,MAAM7K,EAAMX,OAIb+sZ,CAAYjmZ,GAC3B,GAAK+lZ,EAAL,CAGA,IAAIC,EAAWD,EAASC,SACpB9sZ,EAAO6sZ,EAAS7sZ,KAChBgtZ,EAAgBJ,EAAkBE,GACjCE,IACDA,EAAgB,CACZlmZ,IAAKgmZ,EACLthZ,MAAO,IAEXohZ,EAAkBE,GAAYE,EAC9Br+Y,EAAOjO,KAAKssZ,IAEhBA,EAAcxhZ,MAAM9K,KAAKV,OAEtB2O,GAEXs7V,uBAAwB,SAASH,EAAaC,GAC1C,IAAIv+V,EAAQ1L,KAAKuqW,kBAAkB1lV,OAAO,SACtCsoY,EAAgBn7P,EAAWg4M,GAC3BojD,EAAqBp7P,EAAWi4M,GAChCojD,EAAkB3hZ,EAAMyhZ,EAAcziY,OAAOhf,MAC7C4hZ,EAAuB5hZ,EAAM0hZ,EAAmB1iY,OAAOhf,MACvD2/V,EAAgBgiD,EAAgBF,EAAcjtZ,MAClDmtZ,EAAgB99Y,OAAO49Y,EAAcjtZ,KAAM,GAC3CotZ,EAAqB/9Y,OAAO69Y,EAAmBltZ,KAAM,EAAGmrW,IAE5DR,aAAc,SAAShqW,GACnB,OAAOA,IAASkkH,EAAAA,EAAAA,IAAUlkH,EAAM6pB,SAAUq6F,EAAAA,EAAAA,IAAUlkH,EAAMX,OAE9D8qW,wBAAyB,SAASlgS,GAC9B,IAAIktQ,GAAQtqU,EAAAA,EAAAA,GAAEo9D,GACVs+U,EAASpxE,EAAMjuU,QAAQ,kBAC3B,OAAKq/Y,EAAO9oZ,OAGLmsZ,EAAa,CAChB/hY,MAAO1qB,KAAK2sZ,iBAAiB9rZ,MAAMuoZ,GACnClpZ,KAAMF,KAAK4sZ,mBAAmBxD,GAAQvoZ,MAAMm3U,MAJpC,GAOhB8yB,oBAAqB,SAASjqW,GAC1B,OAAO4rZ,EAAa5rZ,IAExB4pW,sBAAuB,SAAS5pW,GAC5B,OAAOmxJ,EAAWnxJ,IAEtBoqW,0BAA2B,SAASpqW,GAChC,IAAIilW,EAAU9zM,EAAWnxJ,GACrBuoZ,EAASppZ,KAAK2sZ,iBAAiB/kW,GAAGk+S,EAAQp7U,OAC9C,OAAO1qB,KAAK4sZ,mBAAmBxD,GAAQxhW,GAAGk+S,EAAQ5lW,OAEtDgrW,qBAAsB,SAASqiD,EAAYC,GACvC,OAAOx7P,EAAWu7P,GAAY7iY,QAAUsnI,EAAWw7P,GAAa9iY,6DC7LpE+iY,EAAsB,GACtBC,EAAiB,SAASC,EAAaC,EAAmBC,GAC1DJ,EAAoB7sZ,KAAK,CACrB0oC,QAASqkX,EACTG,cAAeF,EACfG,iBAAkBF,KAG1BH,GAAgB,WACZ,OAAO1tZ,KAAK6kB,OAAO,aAAavkB,UAC/B,WACD,MAAO,UACN,WACD,OAAON,KAAK6kB,OAAO,eAEvB6oY,GAAgB,WACZ,OAAQ1tZ,KAAK6kB,OAAO,aAAavkB,QAAUN,KAAK6kB,OAAO,wBACtD,WACD,IAAIw/C,EAAOrkE,KAAK6kB,OAAO,kBACvB,MAAO,WAAaw/C,GAAQ,gBAAkBA,GAAQ,UAAYA,GAAQ,WAAaA,EAAO,SAAW,UACxG,WACD,IAAIA,EAAOrkE,KAAK6kB,OAAO,kBAIvB,MAHI,cAAgBw/C,IAChBA,EAAO,SAEJA,KAEXqpV,GAAgB,WACZ,MAAO,SAAW1tZ,KAAK6kB,OAAO,kBAAoB7kB,KAAK6kB,OAAO,4BAC7D,WACD,MAAO,eACN,WACD,MAAO,aAEX6oY,GAAgB,WACZ,OAAO1tZ,KAAK6kB,OAAO,iCAAmC7kB,KAAK6kB,OAAO,qCAAuC7kB,KAAK6kB,OAAO,yBACpH,WACD,MAAO,aACN,WACD,MAAO,aAEX,IAOImpY,EAAe3rK,EAAAA,QAAAA,QAAc,CAC7Bz+G,KAAM,SAAS1iE,GACXlhE,KAAK6+P,MAAQ39L,EACblhE,KAAKiuZ,4BAET7vY,QAAS,WACDpe,KAAKkuZ,aAAeluZ,KAAKkuZ,YAAY5tZ,SACrCma,EAAAA,EAAAA,IAAKza,KAAKkuZ,aAAc,SAASxzY,EAAGyzY,GAChCA,EAAU/vY,cAItB6vY,yBAA0B,WACtBjuZ,KAAKkuZ,YAAc,IACnBzzY,EAAAA,EAAAA,IAAKgzY,EAAqB,SAAS/yY,EAAGmK,GAElC,GADoBA,EAAOykB,QAAQ7oC,KAAKT,KAAK6+P,OAC1B,CACf,IAAIivJ,EAAgBjpY,EAAOipY,cAAcrtZ,KAAKT,KAAK6+P,OAC/CkvJ,EAAmBlpY,EAAOkpY,iBAAiBttZ,KAAKT,KAAK6+P,OACrDsvJ,EAAYnuZ,KAAKouZ,iBAAiBN,EAAeC,GACrD/tZ,KAAKkuZ,YAAYttZ,KAAKutZ,KAE5B1jZ,KAAKzK,QAEXouZ,iBAAkB,SAASzqY,EAAM0qY,GAE7B,OAAO,IADcruZ,KAAKsuZ,eAAe3qY,EAAM0qY,GACxC,CAAmBruZ,KAAK6+P,QAEnCyvJ,eAAgB,SAAS3qY,EAAM0qY,GAC3B,IAAIE,EACAC,EAAiB,QAAUD,EAAiBlC,EAAAA,EAAS1oY,UAAU,IAAW4qY,OAAiB,EAASA,EAAeF,GACvH,IAAKG,EACD,MAAMvsL,EAAAA,EAAAA,MAAa,QAASt+M,EAAM0qY,GAEtC,OAAOG,GAEXC,kBAAmB,SAASjoY,GACxB,IAAI4zM,GAAe1sN,EAAAA,EAAAA,GAAE8Y,EAAKskD,aACtBwE,EAAS,CACT8qJ,aAAcA,GAElBp6N,KAAK0uZ,mBAAmBt0L,EAAc9qJ,GACtCtvE,KAAK2uZ,iBAAiBv0L,EAAc9qJ,GACpCtvE,KAAK4uZ,iBA9CyB,gBA8CyBt/U,IAE3Du/U,mBAAoB,WAChB7uZ,KAAK4uZ,iBAhDuB,gBAkDhCF,mBAAoB,SAASt0L,EAAc9qJ,GACvC,IAAIw/U,EAAc9uZ,KAAK+uZ,yBAtDU,YAsDmDz/U,EAxD3D,2BAyDzB8qJ,EAAaw7B,QAAQk5J,IAEzBH,iBAAkB,SAASv0L,EAAc9qJ,GACrC,IAAI0/U,EAAahvZ,KAAK+uZ,yBAzDU,WAyDkDz/U,EA3D1D,0BA4DxB8qJ,EAAar6M,OAAOivY,IAExBD,yBAA0B,SAAS/lZ,EAAQsmE,EAAQ2/U,GAC/C,IAAIC,GAAaxhZ,EAAAA,EAAAA,GAAE,SAUnB,OATA+M,EAAAA,EAAAA,IAAKza,KAAKkuZ,aAAc,WACpB,IAAI3mX,GAAa75B,EAAAA,EAAAA,GAAE,SAAS+R,SAASwvY,GACrCjvZ,KAAKgJ,IAAQF,EAAAA,EAAAA,GAAO,CAChBy+B,WAAYA,GACb+nC,IACC/nC,EAAWx8B,WAAWzK,QACtB4uZ,EAAWnvY,OAAOwnB,MAGnB2nX,EAAWnkZ,YAEtB6jZ,iBAAkB,SAAS5lZ,EAAQsmE,IAC/B70D,EAAAA,EAAAA,IAAKza,KAAKkuZ,aAAc,WACpBluZ,KAAKgJ,GAAQsmE,OAGrB6/U,eAAgB,SAAS3hZ,GACrB,IAAKxN,KAAKkuZ,YACN,OAAO,EAIX,IAFA,IAAIkB,EAAapvZ,KAAKkuZ,YAClB5tZ,EAAS8uZ,EAAW9uZ,OACfyL,EAAI,EAAGA,EAAIzL,EAAQyL,IACxB,GAAIqjZ,EAAWrjZ,GAAGyB,KAAUwkN,EAAAA,KACxB,OAAO,EAGf,OAAO,GAEXq9L,cAAe,SAAS7hZ,EAAM4sN,EAAc55N,GACxC,IAAKR,KAAKkuZ,YACN,OAAO,EAKX,IAHA,IAAInvW,GAAW,EACXqwW,EAAapvZ,KAAKkuZ,YAClB5tZ,EAAS8uZ,EAAW9uZ,OACfyL,EAAI,EAAGA,EAAIzL,KAChBy+C,EAAWqwW,EAAWrjZ,GAAGyB,GAAM4sN,EAAc55N,IADrBuL,KAM5B,OAAOgzC,GAEXypG,YAAa,SAAS4xE,EAAc55N,GAChC,OAAOR,KAAKqvZ,cAAc,cAAej1L,EAAc55N,IAE3DmhZ,qBAAsB,SAASC,EAAqBC,GAChD,OAAO7hZ,KAAKqvZ,cAAc,uBAAwBzN,EAAqBC,IAE3EK,oBAAqB,SAAS1hZ,GAC1B,OAAOR,KAAKqvZ,cAAc,sBAAuB7uZ,IAErD8uZ,yBAA0B,WACtB,OAAOtvZ,KAAKmvZ,eAAe,sBAE/B/W,kBAAmB,SAASh+K,EAAc55N,GACtC,OAAOR,KAAKqvZ,cAAc,oBAAqBj1L,EAAc55N,IAEjE+uZ,yBAA0B,WACtB,IAAIC,EAAoB,GAExB,OADAxvZ,KAAK4uZ,iBAxHiC,uBAwHyBY,GACxDA,EAAkBv+Y,KAAK,QAGtC,eC3KIw+Y,EAAWxX,EAAAA,EAAAA,QAAiB,CAC5B3tD,eAD4B,WACX,WACT10J,EAAO51L,KACPyL,EAASzL,KAAKuxN,WACdm+L,EAAkB,SAAClvZ,EAAGmvZ,GACtB,IAAIC,EAAe,EAAKzrD,cACpB7J,EAAiB,EAAKz1U,OAAO,kBAC7BgrY,EAAmBD,EAAatoD,mBAAmBhN,GAEvD,KADyBu1D,IAAqB,EAAK5N,uBACzB,EAAK/mH,gBAAgBnyQ,YAG/C,GAAIvoB,EAAE2C,UAAYyyL,EAAK/wK,OAAO,gCAAiC,CAC3D,IAAIirY,EAAgBD,GAAoBF,GAAU,EAAI,GAClDpL,EAAYqL,EAAa1nD,eAAe4nD,GAC5C,EAAKlmD,YAAYtP,EAAgBiqD,GACjC,EAAK1tB,aAAav8B,GAClB95V,EAAE6G,qBACC,CACgB,EAAK0oZ,cACYpO,qBAAqBkO,EAAkBF,KAEvEA,EAASlkZ,EAAOm/U,QAAQpqV,GAAKiL,EAAOs/U,UAAUvqV,MAI1D,OAAOsI,EAAAA,EAAAA,GAAO,GAAI2C,EAAQ,CACtBsgI,IAAK,SAAAvrI,GACGo1L,EAAK/wK,OAAO,uBACZrkB,EAAE6G,iBACFuuL,EAAK8zK,WAAW9zK,EAAK/wK,OAAO,qBAGpC+lU,QAAS,SAAApqV,GAAC,OAAIkvZ,EAAgBlvZ,GAAG,IACjCuqV,UAAW,SAAAvqV,GAAC,OAAIkvZ,EAAgBlvZ,IAChCqrI,MAAO,SAASrrI,GACPR,KAAK+vZ,cAAc7N,oBAAoB1hZ,IACxCiL,EAAOogI,MAAM7lH,MAAMhmB,KAAM+H,YAGjC4xV,MAAO,SAASn5V,GACPR,KAAK+vZ,cAAc7N,oBAAoB1hZ,IACxCiL,EAAOkuV,MAAM3zU,MAAMhmB,KAAM+H,eAKzC4rG,iBA/C4B,WAgDxB3zG,KAAK+vZ,cAAclB,qBACnB7uZ,KAAKuxN,YAET0wL,kBAnD4B,WAoDxB,OAAOjiZ,KAAK85U,gBAAgBx5U,OAAS,GAEzC6lZ,qBAtD4B,WAuDxBnmZ,KAAKuxN,WACL,IAAIi+L,EAAoBxvZ,KAAK+vZ,cAAcR,2BACvCC,EAAkBlvZ,SAClBN,KAAKomZ,mBAAqBpmZ,KAAKomZ,mBAAmBhwJ,IAAIo5J,KAG9DzjD,oBAAqB,SAASxjT,EAAOC,GACjC,IAAIwnW,EAAaznW,GAASA,EAAM0nW,WAChC,QAAID,IAAehwZ,KAAKgH,OAAShH,KAAKkzD,WAAWg0S,eAAe8oD,KAGzDhwZ,KAAKuxN,SAAShpK,EAAOC,IAEhCiqK,mBApE4B,WAqExB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B2+L,uBAAuB,EACvB5zM,cAAe,OACf6zM,cAAe,OACfC,wBAAyB,KACzBC,cAAeC,EAAAA,EAAAA,OAA2B,oBAC1C/lY,UAAW,GACXgmY,SAAU,UACVC,mBAAmB,EACnBC,eAAgB,SAChBC,aAAc,MAGtB9tK,qBAlF4B,WAmFxB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,SAAA4wI,GAAO,MAAI,QAAUA,EAAQrwP,UACrCvkH,QAAS,CACLm2Y,SAAU,QACVE,eAAgB,cAErB,CACCryK,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLq2Y,eAAgB,aAI5Bj+U,MAlG4B,WAmGxBxyE,KAAKuxN,WACLvxN,KAAK2wZ,qBAETp2H,gBAtG4B,WAuGxBv6R,KAAKuxN,WACAvxN,KAAK4wZ,oBACN5wZ,KAAK65R,aAAe75R,KAAK65R,YAAYrM,mBAAkB,IAG/DojI,iBA5G4B,WA6GxB,MAAO,SAAW5wZ,KAAK6kB,OAAO,kBAElC8rY,kBA/G4B,WAgHxB3wZ,KAAK+vZ,cAAgB,IAAI/B,EAAahuZ,OAE1C6wZ,qBAlH4B,WAmHpB7wZ,KAAK+vZ,eACL/vZ,KAAK+vZ,cAAc3xY,WAG3B0yY,qBAvH4B,WAwHxB9wZ,KAAK6wZ,uBACL7wZ,KAAK2wZ,qBAET5sD,kBA3H4B,WA4HpB/jW,KAAK6kB,OAAO,WACZ7kB,KAAKmkW,cAAgB,IAAI4sD,EAAoB/wZ,MAE7CA,KAAKuxN,YAGbk5B,YAlI4B,WAmIxBzqP,KAAK8wZ,uBACL9wZ,KAAKuxN,YAETkvI,aAtI4B,WAuIxBzgW,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,WACjB/H,KAAK+vZ,cAAclB,sBAEvB7vD,mBAAoB,iBA5IO,yBA6I3BC,uBAAwB,iBA5IQ,8BA6IhCnF,kBA5I4B,SA4IVt5V,GACd,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACvB,IAAI0rN,EAAatgM,GAAG,4CAApB,CAGA,IAAIk3X,EAAwBhxZ,KAAK+vZ,cAAcvnQ,YAAY4xE,EAAc55N,GACrEwwZ,IAGJhxZ,KAAKqhZ,0BAA0B7gZ,GAC/BR,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,cAErBy4V,4BAxJ4B,WAyJxB,OAAOxgW,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,YAAc/H,KAAK+vZ,cAAcT,4BAE7DlvD,iBA3J4B,SA2JX5/V,GACb,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACvB,IAAI0rN,EAAatgM,GAAG,4CAApB,CAGA,IAAIk3X,GAAwBnhH,EAAAA,EAAAA,cAAarvS,IAAMR,KAAK+vZ,cAAc3X,kBAAkBh+K,EAAc55N,GAC9FwwZ,EACAxwZ,EAAEwwZ,uBAAwB,EAG9BhxZ,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,aAErB2kW,kBAAmB,SAASE,GACxB,GAAI5sW,KAAK6kB,OAAO,WAAY,CACxB,IAAIosY,EACApK,EAAa,QAAUoK,EAAwBjxZ,KAAKmkW,cAAcS,mBAAmBgI,UAAgB,IAAWqkD,OAAwB,EAASA,EAAsBvmY,MAC3K,OAAO1qB,KAAK4mZ,0BAA0BC,GAEtC,OAAO7mZ,KAAKuxN,SAASq7I,IAG7BrM,wBAhL4B,SAgLJ//V,GACpB,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAElN,EAAEkO,eACvB,IAAI0rN,EAAatgM,GAAG,4CAApB,CAGA,IAAIk3X,GAAyBxwZ,EAAEwwZ,uBAAyBhxZ,KAAK+vZ,cAAc3X,kBAAkBh+K,EAAc55N,GACvGwwZ,EACAxwZ,EAAE6G,iBAGNrH,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,aAErBu5V,uBA5L4B,SA4LL96U,GACnBxmB,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,WACjB/H,KAAK+vZ,cAActB,kBAAkBjoY,IAEzC+kO,OAhM4B,WAiMxBvrP,KAAK6wZ,uBACL7wZ,KAAKuxN,YAET2/L,cApM4B,SAoMdrwZ,GACV,IAAIm3U,EAAQh4U,KAAKmkW,cAAc+D,eAAernW,GAC9Cb,KAAK6kB,OAAO,iBAAkBmzT,GAC9Bh4U,KAAKe,QACLf,KAAK62X,aAAa72X,KAAK6kB,OAAO,oBAElCq3M,eA1M4B,SA0Mb11M,GACX,OAAQA,EAAKhZ,MACT,IAAK,gBACDxN,KAAKu6R,kBACLv6R,KAAKk7R,gBAAgB7K,UAAU,GAC/BrwR,KAAKk7R,gBAAgBtuR,OACrB,MACJ,IAAK,UACD5M,KAAKooW,6BACEpoW,KAAK0qZ,qBACZ1qZ,KAAK+jW,oBACL/jW,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,wBACL,IAAK,YACL,IAAK,WACL,IAAK,oBACL,IAAK,iBACL,IAAK,eACL,IAAK,gBACDxmB,KAAK0rP,cACL,MACJ,IAAK,0BACD,MACJ,QACI1rP,KAAKuxN,SAAS/qM,KAG1B+uH,UAtO4B,WAuOxB,OAAOv1I,KAAKkzD,WAAWqiF,UAAUv1I,KAAK4wZ,qBAE1CO,YAzO4B,WA0OxB,OAAOnxZ,KAAKkzD,WAAWyvV,YAAY3iZ,KAAK4wZ,qBAE5C55I,YA5O4B,WA6OxB,OAAOh3Q,KAAKkzD,WAAWk+V,kBAAkBpxZ,KAAK4wZ,qBAElDS,0BA/O4B,SA+OFvmV,GACtB,OAAO9qE,KAAK85U,gBAAgBj5U,MAAMiqE,IAEtCi1U,0BAlP4B,SAkPFuR,GACtB,IAAIl1D,EAAgBp8V,KAAK85U,gBACzB,OAAIw3E,EAAY,GAAKA,GAAal1D,EAAc97V,QACrCoN,EAAAA,EAAAA,KAEJ0uV,EAAcx0S,GAAG0pW,IAE5BC,eAzP4B,SAyPb1wZ,GACX,OAAOb,KAAKmkW,cAAcqC,mBAAmB3lW,MAGrD,eClPA,EAxBiB4uZ,EAAAA,QAAiBvP,EAAAA,GAAgBlhP,QAAQ,CACtD61D,iBAAkB,SAASxmN,GACvB,MAAO,WAAaA,GAExBy2V,mBAAoB,WAChB,IAAI7pE,EAAiBj7R,KAAKk7R,gBACtBxH,EAAmB,CACnB9tR,OAAQq1R,EAAer1R,UAI3B,OAFAq1R,EAAezB,gBAAgB9F,GAClBA,EAAiB9tR,QAGlC20R,gBAAiB,WACb,IAAI34R,EAAQ5B,KAAK6kB,OAAO,eACpBkxE,EAAO/1F,KAAK6kB,OAAO,cACnBw/C,EAAOrkE,KAAK6kB,OAAO,cACvB7kB,KAAKuxN,WACL,IAAI0pE,EAAiBj7R,KAAKk7R,gBAC1Bt5R,GAASA,EAAMtB,QAAU26R,EAAejlK,YAAYp0H,GACpDyiE,EAAK/jE,QAAU26R,EAAetK,gBAAgBuvH,EAAAA,EAAAA,yBAAwC77U,IACtF0xB,GAAQklM,EAAexiN,WAAWsd,OCrB1Cz1E,WAAAA,SAAkB,SAAUmvY,GAC5B,mJCKIhxR,GAAY+8G,EAAAA,EAAAA,MAmBZg2K,EAA8B,2BAG9BC,EAAgB3vG,EAAAA,QAAAA,QAAe,CAC/BrvF,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BmgM,aAAc,GACdrkF,oBAAoB,EACpBE,mBAAmB,EACnBokF,uBAAwB,EACxBC,wBAAwB,KAGhChvK,qBAAsB,WAClB,IAAIkjK,GAAYxnK,EAAAA,EAAAA,WAChB,OAAOt+O,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WAGJ,MADsB,YADLjW,EAAAA,QAAAA,OAC8BxpG,WAAa,UAAUz7F,KAAKu7F,EAAUI,YAGzFzkH,QAAS,CACLy3Y,UAAU,IAEf,CACCzzK,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,YAAW6pE,IAEtB1rY,QAAS,CACLu3Y,uBAAwB,EACxBC,wBAAwB,IAE7B,CACCxzK,OAAQ,WACJ,OAAO0zK,EAAAA,EAAAA,WAAUhM,IAErB1rY,QAAS,CACLu3Y,uBAAwB,OAIpCnoK,cAAe,WACX,OAAO,GAEXh3K,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAlDE,qBAoDtBgrO,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAK0qU,iBACL1qU,KAAK+xZ,0BACL/xZ,KAAKgyZ,iBAETtnF,eAAgB,WACZ1qU,KAAKsvX,WAAY5hX,EAAAA,EAAAA,GAAE,SAAS+R,SA1DF,4BA2D1Bzf,KAAK6Z,WAAWkG,OAAO/f,KAAKsvX,YAEhCyiC,wBAAyB,WACrB/xZ,KAAKk1N,WAAYxnN,EAAAA,EAAAA,GAAE,SAAS+R,SA7DF,4BA8D1Bzf,KAAKsvX,UAAUvvW,OAAO/f,KAAKk1N,YAE/B88L,cAAe,aACP1tL,EAAAA,EAAAA,cAAgBtkO,KAAK6kB,OAAO,aAAgB7kB,KAAK6kB,OAAO,gBAGxD7kB,KAAKiyZ,wBAFLjyZ,KAAKkyZ,6BAKbA,0BAA2B,WACvB,IAAIC,EAAwBnyZ,KAAK6kB,OAAO,0BACxC7kB,KAAKoyZ,aAAc1kZ,EAAAA,EAAAA,GAAE,SAAS+R,SAxEP,yBAyEvBzf,KAAKk1N,UAAUn1M,OAAO/f,KAAKoyZ,aAC3B,IAAK,IAAIrmZ,EAAI/L,KAAK6kB,OAAO,0BAA2B9Y,GAAK,IAAKA,EAAG,CAC7D,IAAIsmZ,GAAW3kZ,EAAAA,EAAAA,GAAE,SAAS+R,SAAS+xY,GAA6B/xY,SAAS+xY,EAA8BzlZ,GACnGomZ,GACAE,EAAStyY,QAAOrS,EAAAA,EAAAA,GAAE,SAAS+R,SA3EH,mCA6E5Bzf,KAAKoyZ,YAAYryY,OAAOsyY,KAGhCJ,sBAAuB,WACnB,IAAIP,EAAe1xZ,KAAK6kB,OAAO,gBAC/B7kB,KAAKsvX,UAAU7vW,SAjFS,0BAkFpBiyY,GACA1xZ,KAAKsvX,UAAUj0W,IAAI,kBAAmB,OAASq2Y,EAAe,MAGtE7mK,kBAAmB,WACf7qP,KAAKuxN,WACLvxN,KAAKsyZ,kCAETA,+BAAgC,WAC5B,GAAKtyZ,KAAKoyZ,YAAV,CAGA,IAAI9gZ,EAAQtR,KAAK6kB,OAAO,SACpBtT,EAASvR,KAAK6kB,OAAO,UACzB,GAAIvT,GAASC,EAAQ,CACjBD,GAAQwrI,EAAAA,EAAAA,IAAS98I,KAAK6Z,YACtBtI,GAASsrI,EAAAA,EAAAA,IAAU78I,KAAK6Z,YACxB,IAAI04Y,EAAe5sY,KAAKG,IAAIvU,EAAQD,GACpCtR,KAAKsvX,UAAUj0W,IAAI,CACf9J,OAAQghZ,EACRjhZ,MAAOihZ,EACP33W,SAAU23W,OAItBhnK,OAAQ,WACJvrP,KAAKuxN,WACLvxN,KAAKwyZ,4BACLxyZ,KAAKyyZ,yBAETD,0BAA2B,WAClBxyZ,KAAKoyZ,cAGVpyZ,KAAKoyZ,YAAY5wZ,gBACVxB,KAAKoyZ,cAEhBK,sBAAuB,WACnBzyZ,KAAKsvX,UAAUj0W,IAAI,kBAAmB,SAE1C6gN,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,yBACL,IAAK,yBACL,IAAK,eACDxN,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,kBAAmBmxY,GACrC,6ICjJIiB,EAA4B,yBAC5BC,EAA0B,uBAI1BC,EAAY12C,EAAAA,QAAAA,QAAgB,CAC5B5xB,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BzlF,OAAQkmF,EAAAA,QAGhBS,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B9lL,QAAS0xR,EAAAA,EAAAA,OAA2B,WACpC7rT,MAAO,IACPC,OAAQ,GACR+yN,UAAW,KACXuuL,eAAe,EACfnB,aAAc,GACdoB,UAAU,EACVh1R,MAAO,EACPi1R,+BAA+B,EAC/BC,sBAAuB,KACvB1lF,mBAAmB,EACnB4vC,uBAAuB,EACvB+1C,qBAAqB,KAG7BrwK,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACL84Y,aAAc,gBAEnB,CACC90K,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACLqxB,QAAS,GACTn6B,MAAO,GACPC,OAAQ,GACRmU,UAAW,GACX1G,SAAU,QAItBwzD,MAAO,WACHxyE,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B+zN,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAxDF,gBAyDdzf,KAAKm1N,WAAW11M,SAxDM,yBA0D1By/U,mBAAoB,WAChBl/V,KAAKuxN,WACLvxN,KAAK25B,WAAWla,SAzDM,wBA0DtBzf,KAAKmzZ,2BAA4BzlZ,EAAAA,EAAAA,GAAE,SAAS+R,SAzDd,gCA0D9Bzf,KAAKmzZ,0BAA0Bl7X,SAASj4B,KAAK25B,YAC7C35B,KAAKozZ,qBACLpzZ,KAAKqzZ,wBACLrzZ,KAAKszZ,uBACLtzZ,KAAKuzZ,kBAET92C,MAAO,WACH,IAAI3+O,EAAQ99H,KAAK6kB,OAAO,SACxB,IAAKi5G,EACD,OAAO99H,KAAKuxN,WAEhB,IAAIvmL,EAAW,IAAIwnL,EAAAA,GACfjB,EAAWvxN,KAAKuxN,SAAS9mN,KAAKzK,MAOlC,OANAA,KAAKwzZ,oBACLxzZ,KAAKyzZ,aAAe5wZ,YAAY,WAC5B0uN,IAAWn4L,MAAM,WACb4R,EAAS56B,eAEb0tH,GACG9yF,EAASx6B,WAEpBuvW,MAAO,WAEH,OADA//W,KAAKwzZ,oBACExzZ,KAAKuxN,YAEhBiiM,kBAAmB,WACft1X,aAAal+B,KAAKyzZ,eAEtBF,eAAgB,WACZ,GAAKvzZ,KAAKmzZ,0BAAV,CAGA,IAAI1nX,EAAUzrC,KAAK6kB,OAAO,WAC1B,GAAK4mB,EAAL,CAGA,IAAIioX,GAAWhmZ,EAAAA,EAAAA,GAAE,SAAS+R,SAASkzY,GAAyBhwZ,KAAK8oC,GACjEzrC,KAAKmzZ,0BAA0BpzY,OAAO2zY,MAE1CJ,qBAAsB,WACbtzZ,KAAKmzZ,2BAA8BnzZ,KAAK6kB,OAAO,mBAG/C7kB,KAAKoyZ,cACNpyZ,KAAKoyZ,aAAc1kZ,EAAAA,EAAAA,GAAE,SAAS+R,SAASizY,GAA2Bz6X,SAASj4B,KAAKmzZ,4BAEpFnzZ,KAAKonP,iBAAiBpnP,KAAKoyZ,YAAaX,EAAAA,EAAe,CACnDC,aAAc1xZ,KAAK6kB,OAAO,oBAGlCwuY,sBAAuB,WACnBrzZ,KAAK25B,WAAWtd,KAAK,yBAA+B7a,SACpDxB,KAAK25B,WAAWtd,KAAK,2BAAiC7a,gBAC/CxB,KAAKoyZ,aAEhBgB,mBAAoB,WAChBpzZ,KAAK25B,WAAW68L,YAjHU,4BAiHgCx2N,KAAK6kB,OAAO,cAE1Eq3M,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,QACD,MACJ,IAAK,UACL,IAAK,gBACDxN,KAAKqzZ,wBACLrzZ,KAAKszZ,uBACLtzZ,KAAKuzZ,iBACL,MACJ,IAAK,WACDvzZ,KAAKozZ,qBACL,MACJ,IAAK,eACDpzZ,KAAKszZ,uBACL,MACJ,QACItzZ,KAAKuxN,SAAS/qM,KAG1B61M,SAAU,WACNr8N,KAAKwzZ,oBACLxzZ,KAAKuxN,eAGbjxM,EAAAA,EAAAA,SAAkB,cAAesyY,GACjC,uUChJMe,EAAAA,SAAAA,6IACF,WACI,OAAO7qZ,EAAAA,EAAAA,IAAO,kEAA4B,CACtCqmN,YAAa,aACbrwE,SAAU,KACV6yL,aAAc3/G,EAAAA,uCAGtB,WACIhyN,KAAKo7W,aAAep7W,KAAK6kB,OAAO,gBAC3B7kB,KAAKo7W,eACN,kGAGR,WACIp7W,KAAKmgX,6BACL,kEACA,IAAIlqS,EAAOj2E,KAAKo7W,aAAa6H,aAAajjX,KAAK6kB,OAAO,eACtDoxD,GAAQj2E,KAAKygW,aAAazgW,KAAK68W,eAAe5mS,IAC9Cj2E,KAAK4zZ,mDAET,WACI5zZ,KAAK6zZ,mBAAoBnmZ,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK24U,kBAAkBl5T,SAxB9B,uEA0B1C,WACI,OAAO3W,EAAAA,EAAAA,IAAO,kEAA4B,CACtC+hY,aAAc7qY,KAAK8zZ,gCAAgCrpZ,KAAKzK,uDAGhE,SAAgC+uB,GAC5B/uB,KAAK+zZ,eAAehlY,mCAExB,SAAiBvuB,IACb,+DAAuBA,GACvBR,KAAK88V,mBAAkB,EAAOt8V,EAAEkO,gDAEpC,WACI,MAAO,eAAiB1O,KAAK6kB,OAAO,iDAExC,SAAmBrkB,GACQR,KAAK6kB,OAAO,eACnCmvY,CAAiBxzZ,IACjB,iEAAyBA,GACzBR,KAAK88V,mBAAkB,EAAMt8V,EAAEkO,2CAEnC,SAAauvW,GACTj+W,KAAK64D,SAAS/nC,UAAU,CACpB/f,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAAS7rB,QAEb,2DAAmBi+W,GACnBj+W,KAAK64D,SAAS7nC,QAAQ,CAClBjgB,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAAS7rB,mCAGjB,SAAai+W,GACTj+W,KAAK64D,SAAS9nC,SAAS,CACnBgV,QAAQ,EACRh1B,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAAS7rB,QAEb,2DAAmBi+W,GACnBj+W,KAAK64D,SAASihT,SAAS,CACnB/oW,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAAS7rB,qCAGjB,SAAe+uB,GACX,GAAK/uB,KAAK6zZ,kBAAV,CAGA,IAAIr4C,EAAWx7W,KAAK24U,iBAAiB5tU,SAAS,IAAI6wB,OAzEnC,eAyE6DgsB,GAAG,GAC3Eq2T,EAAYj+W,KAAK6kB,OAAO,YAAY46C,GACpCt5C,EAAW,CACXs5C,GAAI+7S,GAEJy4C,EAAkBllY,EAAI5I,SACtB+tY,EAAYD,EAAgBptW,EAAE7mB,SAC9Bm0X,EAAYF,EAAgBzqQ,EAAExpH,SAC9Bo0X,EAAan2C,EAAU1yW,SACvBw+I,EAAapkI,KAAK6H,MAAM4mY,EAAW17Y,MACnC4uC,EAAY3hC,KAAK6H,MAAM4mY,EAAWt7Y,KAClCu7Y,GAAYv3Q,EAAAA,EAAAA,IAASmhO,GACrBq2C,GAAaz3Q,EAAAA,EAAAA,IAAUohO,GACvBs2C,GAAez3Q,EAAAA,EAAAA,IAAS0+N,GACxBg5C,GAAgB33Q,EAAAA,EAAAA,IAAU2+N,GAC9Bx7W,KAAK6zZ,kBAAkBx4Y,IAAI,UAAW,UACtCsvL,EAAAA,EAAAA,IAAS3qM,KAAK6zZ,kBAAmB7zZ,KAAKy0Z,oBAAsBJ,EAAYE,EAAeF,EAAY,EAAIE,EAAe,IACtHhqN,EAAAA,EAAAA,IAAUvqM,KAAK6zZ,kBAAmB7zZ,KAAKy0Z,oBAAsB,EAAIH,EAAaE,EAAgBF,EAAa,EAAIE,GAC3Gx0Z,KAAKy0Z,oBACDP,EAAY5sW,EACR3hC,KAAK6H,MAAM2mY,KAAepqQ,GAC1B5jI,EAAS5a,OAAS,OAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,aAE5Bv5C,EAAS5a,OAAS,QAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,eAGhC6qI,EAAAA,EAAAA,IAAUvqM,KAAK6zZ,kBAAmB,GAC9BluY,KAAK6H,MAAM2mY,KAAepqQ,GAC1B5jI,EAAS5a,OAAS,MAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,gBAE5Bv5C,EAAS5a,OAAS,OAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,iBAG7By0V,EAAYpqQ,EACfpkI,KAAK6H,MAAM0mY,KAAe5sW,GAC1BnhC,EAAS5a,OAAS,OAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,aAE5Bv5C,EAAS5a,OAAS,QAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,eAEzB/5C,KAAK6H,MAAM0mY,KAAe5sW,GACjCnhC,EAAS5a,OAAS,MAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,cAE5Bv5C,EAAS5a,OAAS,OAClB4a,EAASw5C,GAAKx5C,EAASu5C,GAAK,gBAEhC2/S,EAAAA,EAAAA,MAAwBr/W,KAAK6zZ,kBAAmB1tY,2CAEpD,WACI,OAAOnmB,KAAK6kB,OAAO,4CAEvB,WACI,OAAO7kB,KAAK8rB,SAASjH,OAAO,4CAEhC,WACI,OAAO7kB,KAAK8rB,SAAS6N,iBArIvBg6X,CAAgBz2H,EAAAA,GAwItB,0BCtHIg8E,EAAgB,UAEhBw7C,EAA2Bx7C,qBAC3BD,EAAqBC,eACrBE,EAAgCF,0BAChCC,EAA8BF,wBAC9B07C,EAAwB,kBACxBC,EAAyCD,mCAIzCp7C,EAAuB,iBAEvBs7C,EAAyB37C,wBACzB47C,EAAqC57C,2BAMrC67C,EAAyB,cACzBC,EAAqB,WACrBC,EAAqB,WACrB1zC,EAAgB,CAChB//T,KAAM,GACN0oB,KAAM,KAENsvS,EAAU,CAAC,mBAAoB,iBAAkB,kBAAmB,kBAAmB,oBAAqB,cAAe,qBAAsB,kBAC/I07C,EAAAA,SAAAA,6IACF,WACI,OAAOpsZ,EAAAA,EAAAA,IAAO,kEAA4B,CACtCqmN,YAAa,aACb6qJ,iBAAkB,OAClBm7C,qBAAsB,CAClB3nZ,KAAM,UACNswH,MAAO,CACHt8E,KAAM,GACN0oB,KAAM,MAGdkrV,yBAAyB,EACzBC,iBAAkB,KAClBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAiB,KACjB98B,mBAAmB,0CAG3B,YACI,uEACA5vX,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BkR,WAAW,EACXl3N,cAAc,iCAGtB,WACI,IAAIqoZ,GAAmB,6DACnBC,EAAkB11Z,KAAK21Z,uBAC3B,OAAOF,EAAiBn0Z,IAAIo0Z,uCAEhC,WACI,IAAI7qW,EAAW,GACXy0S,EAAe,IAAI1jU,OAAOq9U,GAC1B28C,EAAiB51Z,KAAK61Z,UAAUv1Z,QAAUN,KAAK61Z,UAAU,GAI7D,OAHID,GAAkBA,EAAe1yD,mBACjCr4S,EAAW+qW,EAAe1yD,iBAAiB7mV,KAAKijV,IAE7Cz0S,8BAEX,WACI,OAAO7qD,KAAK6Z,4CAEhB,WACI,MAAO,eAAiB7Z,KAAK6kB,OAAO,yCAExC,SAAWmb,GACP,IAGIy4M,EACAprJ,EAEA0uQ,EANA7kI,EAASl3N,KAAKg8V,qBACd85D,EAAmB91Z,KAAKy0Z,oBACxBh5D,EAAcz7V,KAAK07V,gBAAe,GAKtC,OAAQ17T,GACJ,IApEG,KAqECqtD,EAAYyoU,EAAmBf,EAAyB/0Z,KAAK+1Z,6BAA6Bd,GAC1Fx8K,EAAWq9K,EAAmBr6D,EAAcvkI,EAE5C6kI,EADmB/7V,KAAKg2Z,6BAA6B3oU,EAAWorJ,EACnDw9K,GACb,MACJ,IAzEK,OA0ED5oU,EAAYyoU,EAAmBf,EAAyB/0Z,KAAK+1Z,6BAA6Bf,GAC1Fv8K,EAAWq9K,EAAmBr6D,EAAcvkI,EAE5C6kI,EADmB/7V,KAAKg2Z,6BAA6B3oU,EAAWorJ,EACnDw9K,GACb,MACJ,IA7EM,QA8EF5oU,EAAYyoU,EAAmB91Z,KAAK+1Z,6BAA6Bf,GAAsBD,EACvFt8K,EAAWq9K,EAAmB5+L,EAASukI,EAEvCM,EADmB/7V,KAAKg2Z,6BAA6B3oU,EAAWorJ,EACnDw9K,GACb,MACJ,IApFK,OAqFD5oU,EAAYyoU,EAAmB91Z,KAAK+1Z,6BAA6Bd,GAAsBF,EACvFt8K,EAAWq9K,EAAmB5+L,EAASukI,EAEvCM,EADmB/7V,KAAKg2Z,6BAA6B3oU,EAAWorJ,EACnDw9K,GACb,MACJ,QACI,gEAAwBj2X,GAE5B+7T,GAAc,IAAMA,EAAWz7V,QAC/BN,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiB2lI,gDAGvD,SAA6B1uQ,GACzB,IAAI6oU,EAAe7oU,EAInB,OAHIrtF,KAAK6kB,OAAO,gBACZqxY,EAAe7oU,IAAc4nU,EAAqBD,EAAqBC,GAEpEiB,8CAEX,SAA6B7oU,EAAWorJ,GACpC,IAAIh4N,EAASuxM,EAAAA,KACb,OAAQ3kI,GACJ,KAAK0nU,EACIt8K,EAAS1oB,SApHA,uBAqHVtvM,EAASzgB,KAAKy7W,aAAahxW,KAAKzK,KAAMy4O,IAE1C,MACJ,KAAKu8K,EACDv0Y,EAASzgB,KAAKk8V,UAAUzxV,KAAKzK,KAAMy4O,GACnC,MACJ,KAAKw8K,EACDx0Y,EAASzgB,KAAKi8V,UAAUxxV,KAAKzK,KAAMy4O,GAE3C,OAAOh4N,wBAEX,YACI,sDACAzgB,KAAK6kB,OAAO,kCAAoCqZ,aAAal+B,KAAKm2Z,qDAEtE,SAAmBttZ,GACXA,IACK7I,KAAKo2Z,iBACNp2Z,KAAKq2Z,yBAETr2Z,KAAK+pP,yDAGb,WACI,OAAO/pP,KAAK6kB,OAAO,sBAAwB,eAAiB7kB,KAAK6kB,OAAO,qDAE5E,WACI,IAAIyxY,EAAat2Z,KAAK6Z,WAAWwC,KAAK,MAAM2tD,QAAQj/D,SAAS,MAAMA,SAAS,IAAI6wB,OAAOq9U,IACvFj5W,KAAKo2Z,gBAAkBp2Z,KAAKgjW,sBAAsBszD,GAAY,oCAElE,WACI,GAAKt2Z,KAAKu2Z,uBAAV,CAGA,IAAIC,GAAiBl+L,EAAAA,EAAAA,IAAct4N,KAAK6Z,YACxC7Z,KAAKy2Z,oBAAoBz2Z,KAAKo2Z,gBAAkBI,yBAEpD,YACI,qDACAx2Z,KAAK61Z,UAAY,+BAErB,WAAe,WACX71Z,KAAK64D,SAAW,IAChBp+C,EAAAA,EAAAA,IAAK++V,GAAS,SAAC34W,EAAO4f,GAClB,EAAKo4C,SAASp4C,GAAU,EAAK+6M,sBAAsB/6M,iCAG3D,WACIzgB,KAAK02Z,gBAAkB,KACvB12Z,KAAK6Z,WAAW4F,SAASy5V,IACzB,2DACAl5W,KAAKm8W,mBAAmBn8W,KAAK6Z,YAC7B7Z,KAAK4gV,QAAQ,OAAQ,kCAEzB,YACI,uDACA5gV,KAAK22Z,wDAET,WAMI,OALA32Z,KAAK42Z,WAAa,IAAI16E,EAAAA,SAAOxuU,EAAAA,EAAAA,GAAE,SAAS+R,SAASq1Y,GAAqC,CAClFn1Y,KAAM,OACN0tT,oBAAoB,EACpBrmQ,QAAShnE,KAAK62Z,gBAAgBpsZ,KAAKzK,QAEhCA,KAAK42Z,WAAW/8Y,0CAE3B,SAAgBs9E,IACRpc,EAAAA,EAAAA,IAAcoc,KACdA,GAASn3F,KAAK8rB,SAASjH,OAAO,YAElC7kB,KAAK8rB,SAASjH,OAAO,UAAWsyE,GAChCn3F,KAAK82Z,4BAA4B3/T,8CAErC,SAA4BA,GACxBn3F,KAAK42Z,YAAc52Z,KAAK42Z,WAAW/8Y,WAAW28M,YA7L1B,kBA6L6Dr/H,sCAErF,SAAoBA,GAChB,IAAI4/T,EAAsB/2Z,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAO84X,IACtDsC,EAAoBh3Z,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOi5X,IACpD19T,EACAn3F,KAAKi3Z,uBAELj3Z,KAAKk3Z,WAAal3Z,KAAKk3Z,UAAUC,cACjCn3Z,KAAK8rB,UAAY9rB,KAAK62Z,gBAAgB1/T,IAE1C4/T,EAAoB3hK,QAAQj+J,GAC5B6/T,EAAkB5hK,OAAOj+J,oCAE7B,WACSn3F,KAAKo3Z,sBAGVp3Z,KAAKy2Z,qBAAoB,GACzBz2Z,KAAKo3Z,oBAAoB51Z,SACzBxB,KAAKo3Z,oBAAsB,KAC3Bp3Z,KAAKk3Z,UAAY,KACjBl3Z,KAAK42Z,WAAa,KAClB52Z,KAAK8rB,SAAW,+CAEpB,SAA0BtrB,GACtBR,KAAK64D,SAAS6gR,YAAYl5U,GACrBA,EAAEy1E,KAAKlrE,SAASzK,QACjBN,KAAK62Z,iBAAgB,6CAG7B,WAA6B,WAErB1wY,EADMnmB,KAAK6kB,OAAO,cACD,QAAU,OAC/B,MAAO,CACH+/W,iCAAiC,EACjCl/W,UAAW,kBAAMq/W,EAAAA,EAAAA,GAA4B,EAAKlrX,aAClDujW,gBAAgB,EAChBniI,SAAS,EACT3W,WAAW,EACX64I,oBAAoB,EACpBrD,SAAU,WACN,EAAKg9C,6BAA4B,IAErCvlZ,OAAQ,OACR+U,mBAAoB,SAAA9lB,GAAC,QAAKkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAI6xB,OAAOk5X,IAAqCx0Z,QAC9F6lB,SAAU,CACNf,UAAW,UACXu6C,GAAI,UAAYx5C,EAChBu5C,GAAI,OAASv5C,EACbs5C,GAAIz/D,KAAK42Z,WAAW/8Y,gDAIhC,WAAsB,WACdw9Y,EAAc,GASlB,OARA58Y,EAAAA,EAAAA,IAAK,CAAC,aAAc,QAAS,YAAa,qBAAsB,YAAa,aAAc,WAAY,cAAe,cAAe,oBAAqB,OAAQ,oBAAqB,YAAa,QAAS,eAAgB,eAAgB,gBAAiB,WAAY,YAAY,SAACC,EAAGmK,GACtRwyY,EAAYxyY,GAAU,EAAKA,OAAOA,OAEtCpK,EAAAA,EAAAA,IAAK,CAAC,oBAAqB,qBAAsB,mBAAmB,SAACC,EAAG0nO,GACpEi1K,EAAYj1K,GAAc,SAAA5hP,GACtB,EAAKq4D,SAASupL,GAAY5hP,QAG3BsI,EAAAA,EAAAA,GAAOuuZ,EAAa,CACvBhsY,WAAYrrB,KAAK25R,gBACjB29H,mBAAoBt3Z,KAAK6kB,OAAO,aAChC60T,YAAa15U,KAAKu3Z,0BAA0B9sZ,KAAKzK,MACjDw3Z,eAAgB,SAAAh3Z,GACZ,EAAKsrB,SAASxG,UACd,EAAKuzC,SAASy8V,eAAe90Z,IAEjCi3Z,gBAAiB,SAAAj3Z,GACb,EAAKsrB,SAASxG,UACd,EAAKuzC,SAAS28V,gBAAgBh1Z,IAElCk3Z,sBAAsB,EACtBl0D,cAAexjW,KAAK6kB,OAAO,iBAC3B8yY,YAAa,yCAGrB,WACI,GAAK33Z,KAAKu2Z,uBAAV,CAGAv2Z,KAAKo3Z,qBAAsB1pZ,EAAAA,EAAAA,GAAE,SAAS+R,SAASo1Y,GAC/C,IAAI+C,EAAa53Z,KAAK63Z,yBACtB73Z,KAAKk3Z,UAAYl3Z,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUoqZ,EAAAA,QAAU93Z,KAAK+3Z,uBAClE/3Z,KAAK8rB,SAAW9rB,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAUwuW,EAAAA,QAASl8W,KAAKg4Z,8BAChEh4Z,KAAK8rB,SAAS6N,WAAW5Z,OAAO/f,KAAKk3Z,UAAUr9Y,YAAY4F,SAASo1Y,GAAwBp1Y,SAASzf,KAAK6kB,OAAO,aACjH7kB,KAAK8rB,SAASqpM,WAAW11M,SApRYo1Y,yCAqRrC70Z,KAAKo3Z,oBAAoBr3Y,OAAO63Y,GAChC53Z,KAAKo3Z,oBAAoBr3Y,OAAO/f,KAAK8rB,SAASjS,YAC9C7Z,KAAK6Z,WAAWkG,OAAO/f,KAAKo3Z,qBAC5Bp3Z,KAAKq2Z,yBACLr2Z,KAAK+pP,8CAET,SAAUkuK,GACN,IAAIn6R,EAAQ99H,KAAK6kB,OAAO,wBAAwBi5G,MAChD,OAAKn1E,EAAAA,EAAAA,IAAUm1E,IAGJqsF,EAAAA,EAAAA,IAASrsF,GAASA,EAAMm6R,GAAan6R,EAFrCyjP,EAAc02C,mCAK7B,SAAiBz3Z,GACb,sEAA8BA,IAAKR,KAAK02Z,iDAE5C,WACI,IAAIvhM,GAAWznN,EAAAA,EAAAA,GAAE,SAEjB,OADAynN,EAASl9L,SAASj4B,KAAK6Z,YAAY4F,SAASzf,KAAKy0Z,oBAAsBC,EAtTlDx7C,qBAuTrB,+DAA8B/jJ,sCAElC,SAAoBl/I,EAAM2qR,GACtB,IAAI/0U,EAAU7rB,KAAKk4Z,eAAejiV,EAAM2qR,GAGxC,OAFA5gW,KAAK61Z,UAAUj1Z,KAAKirB,GACpB7rB,KAAKm4Z,qBAAqBv3D,GACnB/0U,uCAEX,WACI,OAAO,qEAA8B+P,OAAO57B,KAAK02Z,+CAErD,SAAezgV,EAAMgoS,GACjB,IAAIm6C,GAAoB1qZ,EAAAA,EAAAA,GAAE,SAAS+R,SAASk1Y,GAAuB18X,SAASgmV,GACxEvyW,EAAQ1L,KAAK68W,eAAe5mS,GAC5BoiV,EAAUr4Z,KAAKonP,iBAAiBgxK,EAAmBzE,GAAS7qZ,EAAAA,EAAAA,GAAO9I,KAAKs4Z,qBAAsB,CAC9Fl9C,aAAcp7W,KAAKo7W,aACnBm9C,WAAYtiV,EAAK6mS,eAAe91W,IAChC0E,MAAOA,EACPimU,aAAc3xU,KAAKw4Z,eAAe/tZ,KAAKzK,MACvCmmB,SAAUnmB,KAAKy4Z,mBAAmBx6C,MAGtC,OADAj+W,KAAK04Z,uBAAuBz6C,EAAWo6C,GAChCA,oCAEX,WAAqB,WACbM,GAAiBjrZ,EAAAA,EAAAA,GAAE,SACnBooZ,EAAmB91Z,KAAKy0Z,oBAC5B,MAAO,CACHloY,aAAcvsB,KAAK6kB,OAAO,gBAC1Bje,OAAQ+xZ,EACRxpM,YAAanvN,KAAK6kB,OAAO,eACzBy3L,cAAet8M,KAAK6kB,OAAO,iBAC3B8hH,SAAU3mI,KAAK6kB,OAAO,YACtB2+U,cAAexjW,KAAK6kB,OAAO,iBAC3B0oT,kBAAmBvtU,KAAK6kB,OAAO,qBAC/BwoT,mBAAoBrtU,KAAK6kB,OAAO,sBAChCyoT,kBAAmBttU,KAAK6kB,OAAO,qBAC/By/M,UAAWtkO,KAAK6kB,OAAO,aACvB68V,gBAAiB1hX,KAAK6kB,OAAO,mBAC7B0G,YAAavrB,KAAK6kB,OAAO,eACzB01U,aAAcv6V,KAAK6kB,OAAO,gBAC1BsxX,aAAcn2Y,KAAK6kB,OAAO,gBAC1BuxX,UAAWp2Y,KAAK6kB,OAAO,aACvBo1U,qBAAsB,SAAAz5V,GACbA,EAAE6tB,UAAUxJ,OAAO,YAGxB,EAAKA,OAAO,iBAAkBrkB,EAAE6tB,UAAUxJ,OAAO,oBAErD6+U,mBAAoB1jW,KAAK44Z,qCAAqCnuZ,KAAKzK,MACnE05U,YAAa15U,KAAK64Z,8BAA8BpuZ,KAAKzK,MACrD45U,eAAgB55U,KAAK84Z,iCAAiCruZ,KAAKzK,MAC3Di6W,gBAAiB67C,EAAmB,KAAO91Z,KAAK+4Z,mBAAmBtuZ,KAAKzK,KAAMi1Z,GAC9E/6C,eAAgB47C,EAAmB,KAAO91Z,KAAK+4Z,mBAAmBtuZ,KAAKzK,KAAMg1Z,GAC7E76C,mBAAoBn6W,KAAK+4Z,mBAAmBtuZ,KAAKzK,KAAM81Z,EAAmBb,EAAqB,MAC/F76C,oBAAqB07C,EAAmB91Z,KAAK+4Z,mBAAmBtuZ,KAAKzK,KAAMg1Z,GAAsB,8CAGzG,WACI,IAAKh1Z,KAAKojX,mBACN,MAAO,UAEX,IAAI1hE,EAAc1hT,KAAK6kB,OAAO,wBAC9B,OAAOslM,EAAAA,EAAAA,IAASu3F,GAAeA,EAAYl0S,KAAOk0S,oCAEtD,SAAmBrmK,GACf,IAAI67E,EAASl3N,KAAKg8V,qBACd/9F,EAAY/mC,EAAO52N,OACnB04Z,EAAe9hM,EAAOtxN,OAAO,IAAIg2B,OAAOu9U,IAA8BvxT,GAAG,GACzE5lC,EAAYk1M,EAAOr2N,MAAMm4Z,GAC7Bh5Z,KAAKm7W,aAAan7W,KAAK02Z,kBACvB10Y,GAAaq5H,IAAc45Q,GAAsB,EAAI,IACpCh3J,EACbj8O,EAAY,EACLA,EAAY,IACnBA,EAAYi8O,EAAY,GAE5B,IAAIg7J,EAAW/hM,EAAOtvK,GAAG5lC,GACzBhiB,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiB6iM,wDAEnD,SAAqCzyY,GACjC,IAAIpZ,EAAeoZ,EAAKixB,WAAWn3C,QAAUkmB,EAAKixB,WAAW,GACzD5rB,EAAU8nY,EAAAA,YAAoBntY,EAAK1mB,UAEvC4jW,EADyB1jW,KAAK64D,SAAS6qS,oBACpBl9U,GACnBpZ,GAAgBpN,KAAKk5Z,0BAA0B9rZ,EAAa,GAAIye,GAChE7rB,KAAKm5Z,sBACLn5Z,KAAK2mP,8BAA8B,eAAgBv5O,4CAEvD,SAA0BlN,EAAMk5Z,GAAe,WACvCC,GAAoBtxZ,UAAUzH,QAClCma,EAAAA,EAAAA,IAAKza,KAAK61Z,WAAW,SAACh1Z,EAAOgrB,GACzB,IAAI2vV,EAAW3vV,EAAQ8sT,iBACnB2gF,GAAe99C,EAAS1hV,GAAGs/X,GAAiBA,EAAczgF,kBAC1D4gF,EAAgB/9C,EAASn/V,KAAK,IAAIuf,OAAO,EAAKojU,uBAClD,GAAIs6D,GAAeC,EAAcj5Z,QAAU+4Z,EAAkB,CACzDE,EAAc1hY,YAAY,EAAKmnU,sBAC/B,IAAIw6D,EAAmB,EAAK5/D,aAAa2/D,GACrCC,IACAA,EAAiBvsY,UAAW,GAEhCpB,EAAQu8U,6DAIpB,WACI,IAAIqxD,EAAoBz5Z,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOw9U,IAAgCpvS,QAAQj/D,WAAWA,WAAWnF,OAAO,IAAIg2B,OAAO57B,KAAKg/V,uBACzIy6D,EAAkBn5Z,SACSN,KAAK45V,aAAa6/D,GACxBxsY,UAAW,EAChCwsY,EAAkB5hY,YAAY73B,KAAKg/V,oEAG3C,SAA8Bx+V,GAC1BR,KAAK64D,SAAS6gR,YAAYl5U,mDAE9B,SAAiCA,GAC7BR,KAAK64D,SAAS+gR,eAAep5U,yCAEjC,SAAuBy9W,EAAWpyV,GAAS,WAEnC6tY,EADyB7tY,EAAQ8tY,oBACCt9Y,KAAK,IAAIuf,OAxahC,eAyaXg+X,GAAwBxrM,EAAAA,EAAAA,cAAayrM,EAAAA,EAAe75Z,KAAK+0N,KAAO,YACpElpM,EAAQhH,OAAO,CACXiM,UAAW9wB,KAAK85Z,yBAAyBrvZ,KAAKzK,KAAMi+W,EAAWpyV,GAC/DmF,QAAShxB,KAAK+5Z,uBAAuBtvZ,KAAKzK,KAAMi+W,EAAWpyV,GAC3DkF,SAAU/wB,KAAKg6Z,wBAAwBvvZ,KAAKzK,KAAMi+W,EAAWpyV,GAC7DiuV,SAAU95W,KAAKi6Z,wBAAwBxvZ,KAAKzK,KAAMi+W,EAAWpyV,MAEjEpR,EAAAA,EAAAA,IAAKi/Y,GAAU,SAAC74Z,EAAOgrB,GACnB8pM,EAAAA,EAAAA,IAAiB9pM,EAAS+tY,GAC1BjkM,EAAAA,EAAAA,GAAgB9pM,EAAS+tY,EAAuB,KAAM,EAAKM,0BAA0BzvZ,KAAK,EAAMwzW,+CAGxG,SAAyBA,EAAWpyV,GAChC,IAAIsuY,EAAUl8C,EAAUlzW,SAAS,IAAI6wB,OAAOg5X,IAC5C50Z,KAAK64D,SAASw8V,iBAAiB,CAC3BtkZ,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAASA,IAEbsuY,EAAQ34W,OACRy8T,EAAUx+V,SAAS05V,yCAEvB,SAAuB8E,EAAWpyV,GAC9B7rB,KAAK64D,SAASy8V,eAAe,CACzBvkZ,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAASA,2CAGjB,SAAwBoyV,EAAWpyV,EAAS4tM,GACxC,IAAI0gM,EAAUl8C,EAAUlzW,SAAS,IAAI6wB,OAAOg5X,IACxCpuY,EAAOizM,EACXjzM,EAAKzV,UAAWqlN,EAAAA,EAAAA,GAAiB6nJ,GACjCz3V,EAAKqF,QAAUA,EACf7rB,KAAK64D,SAAS08V,gBAAgB/uY,IAC9BizM,EAAYjzM,GACGuf,SACP/lC,KAAK02Z,kBAAoB7qY,IACzB7rB,KAAK02Z,gBAAkB,MAE3ByD,EAAQjwV,OACR+zS,EAAUpmV,YAAYshV,2CAG9B,SAAwB8E,EAAWpyV,GAC/B7rB,KAAK64D,SAAS28V,gBAAgB,CAC1BzkZ,UAAUqlN,EAAAA,EAAAA,GAAiB6nJ,GAC3BpyV,QAASA,6CAGjB,SAA0BoyV,EAAWxkJ,GACjC,IAAI7yN,GAAS8G,EAAAA,EAAAA,GAAE+rN,EAAUptL,eAAevnB,QAAQ,IAAI8W,OAAO+4X,IAAwB,GAC/EzsQ,EAAcloJ,KAAKo6Z,yBAAyBn8C,GAAW07C,oBAAoB,GAC3E35Z,KAAK6kB,OAAO,4BAA8Bje,IAAWshJ,IACrDloJ,KAAKw4Z,iBACL31Z,WAAW7C,KAAKq6Z,yBAAyB5vZ,KAAKzK,MAAOA,KAAKs6Z,UAAU,kDAG5E,WACI,GAAKt6Z,KAAK02Z,gBAAV,CAGA,IAAI6D,GAAoB7sZ,EAAAA,EAAAA,GAAE1N,KAAK02Z,gBAAgB78Y,WAAWc,SAASo1M,SAASwpJ,GACxEihD,EAAuBx6Z,KAAK02Z,gBAAgBiD,oBAAoBt9Y,KAAK,IAAIuf,OAAO29U,IAAuBj5W,OAC3EN,KAAK02Z,gBAAgBiD,oBAAoB95Y,IAAI,GAAG+5D,cAAc,WAC3D4gV,GAAyBD,GACxDv6Z,KAAK02Z,gBAAgBxsV,gDAG7B,SAAyB+zS,GACrB,IAAKA,EACD,OAAO,EAEX,IAAIzC,EAAWyC,EAAUlzW,SAAS,IAAI6wB,OAAO+4X,IAC7C,OAAOn5C,EAASl7W,QAAUqzZ,EAAAA,YAAoBn4C,qCAElD,SAAmByC,GACf,IAAIw8C,EAAmBz6Z,KAAKy0Z,oBACxBz6C,EAAmBh6W,KAAK6kB,OAAO,oBAAoBoe,cACnD8uC,EAAa/xE,KAAK6kB,OAAO,cACzBs6V,EAAkB,CAClB/5V,UAAW,OACXq6C,GAAIw+S,GAER,OAAQjE,GACJ,IAAK,YACDmF,EAAgBx/S,GAAK,WACrBw/S,EAAgBz/S,GAAK+6V,EAAmB,cAAgB,YACxD,MACJ,IAAK,gBACDt7C,EAAgBx/S,GAAK86V,EAAmB,cAAgB,YACxDt7C,EAAgBz/S,GAAK,WACrB,MACJ,QACQ+6V,GACAt7C,EAAgBx/S,GAAKoS,EAAa,eAAiB,cACnDotS,EAAgBz/S,GAAKqS,EAAa,YAAc,aAEhDotS,EAAgBx/S,GAAKoS,EAAa,WAAa,YAC/CotS,EAAgBz/S,GAAKqS,EAAa,YAAc,YAG5D,OAAOotS,sCAEX,SAAqBnnC,IACjBtqU,EAAAA,EAAAA,GAAE,SAASuqB,SAAS+/S,GAAOv4T,SAASm1Y,GAAwC1qV,8CAEhF,SAAwB1pE,IACNkN,EAAAA,EAAAA,GAAElN,EAAEoG,QACSmD,QAAQ/J,KAAK85U,iBACvB/pH,SAAS,4BACtB/vN,KAAK6kB,OAAO,iBAAkB,OAGlC,sEAA8BrkB,qCAElC,SAAmBA,GACf,IAAIk6Z,GAAqBtsM,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoB7hC,KAAK+0N,MAC3DijH,EAAQh4U,KAAKqjX,2BAA2B7iX,GACxCy1E,EAAOj2E,KAAKo7W,aAAaC,cAAcr7W,KAAK45V,aAAa5hB,IACzD2iF,GAAoBhyW,EAAAA,EAAAA,IAAUnoD,EAAEgmY,UAAY,IAAMhmY,EAAEgmY,WAAY79U,EAAAA,EAAAA,IAAUnoD,EAAEgmY,UAAY,IAAMhmY,EAAE08C,MACpG,IAAIl9C,KAAKsjX,gBAAgBtrC,GAIzB,GADAriH,EAAAA,EAAAA,IAAiBqiH,EAAO0iF,GACnB16Z,KAAKi3Y,aAAahhU,IAIvB,GAAI,YAAcj2E,KAAK46Z,6BAA+BD,EAAmB,CACrE,IAAI9uY,EAAU7rB,KAAK66Z,qBAAqB7iF,GACxCh4U,KAAKw4Z,iBACA3sY,EAAQivY,qBACTnlM,EAAAA,EAAAA,GAAgBqiH,EAAO0iF,EAAoB16Z,KAAK+6Z,sBAAsBtwZ,KAAKzK,OAC3EA,KAAKg7Z,kBAAoBh7Z,KAAKs6Z,UAAU,eAR5Ct6Z,KAAKg7Z,kBAAoBn4Z,WAAW7C,KAAKq6Z,yBAAyB5vZ,KAAKzK,MAAOA,KAAKs6Z,UAAU,yCAYrG,SAAiBW,GAAU,WACnBjjF,EAAQh4U,KAAKqjX,2BAA2B43C,GACxC5uX,GAAgB3+B,EAAAA,EAAAA,GAAEutZ,EAAS5uX,gBAC/B,+DAAuB4uX,GACvBj7Z,KAAKw4Z,iBACDx4Z,KAAKsjX,gBAAgBtrC,IAGrB3rS,EAAc0jL,SA1jBoB,sCA6jBlC/vN,KAAK6kB,OAAO,6BAA+BwnB,EAAc0jL,SAASqpJ,KAClEp5W,KAAKk7Z,kBAAoBr4Z,YAAW,WAChC,EAAKw3Z,6BACNr6Z,KAAKs6Z,UAAU,6CAG1B,WACI,QAAKt6Z,KAAK02Z,kBAGV12Z,KAAKm7W,aAAan7W,KAAK02Z,kBAChB,+BAEX,SAAat8L,GACT,IAAIvuM,EAAU7rB,KAAK66Z,qBAAqBzgM,GACpCp6N,KAAK02Z,kBAAoB7qY,GACzB7rB,KAAKi3Z,sBAELprY,IACA7rB,KAAKw4Z,iBACLx4Z,KAAKe,QACL8qB,EAAQ21B,OACRxhD,KAAK6kB,OAAO,iBAAkBgH,EAAQhH,OAAO,oBAEjD7kB,KAAK02Z,gBAAkB7qY,EACvB7rB,KAAKm7Z,iBAAmB/gM,8BAE5B,SAAavuM,GACTA,GAAWA,EAAQq+C,OACflqE,KAAK02Z,kBAAoB7qY,IACzB7rB,KAAK02Z,gBAAkB,MAE3B12Z,KAAKm7Z,iBAAmB,0CAE5B,SAAsB36Z,GAAG,WACrB,IAAIA,EAAEwhS,WAAYxhS,EAAEwhS,SAAS1hS,OAA7B,CAGA,IAAI03U,GAAQtqU,EAAAA,EAAAA,GAAElN,EAAEkO,gBACXi6C,EAAAA,EAAAA,IAAU3oD,KAAKg7Z,qBAGpBh7Z,KAAKw4Z,iBACLx4Z,KAAKg7Z,kBAAoBn4Z,YAAW,WAChC,IAAIgpB,EAAU,EAAKgvY,qBAAqB7iF,GACpCnsT,IAAYA,EAAQivY,oBACpB,EAAKr/C,aAAazjC,KAEvBh4U,KAAKs6Z,UAAU,yCAEtB,WACIp8X,aAAal+B,KAAKk7Z,mBAClBh9X,aAAal+B,KAAKg7Z,uDAEtB,SAAqB5gM,EAAcvvJ,GAC/B,IAAIh/C,EAAU7rB,KAAKo6Z,yBAAyBhgM,GAC5C,GAAIvuM,EACA,OAAOA,EAEPg/C,EAAWA,GAAY7qE,KAAK45V,aAAax/H,GACzC,IAAInkJ,EAAOj2E,KAAKo7W,aAAaC,cAAcxwS,GAC3C,OAAO7qE,KAAKi3Y,aAAahhU,IAASj2E,KAAK8+W,oBAAoB7oS,EAAMmkJ,kDAGzE,SAAgCqoI,GAC5B,IAAIj8U,EAAOi8U,EAAWj8U,KAAKlmB,QAAUmiW,EAAWj8U,KAAK,GACrD,GAAKA,IAAQxmB,KAAKyjX,gBAAgBj9V,EAAKqkD,UAAvC,CAGA,IAAIuvJ,GAAe1sN,EAAAA,EAAAA,GAAE8Y,EAAKskD,aACtB8qV,EAAiB51Z,KAAK66Z,qBAAqBzgM,EAAc5zM,EAAKqkD,UAElE,GADA7qE,KAAKu/W,2BAA2B9c,GAC5BziW,KAAK02Z,gBAAiB,CACtB,GAAI12Z,KAAK02Z,kBAAoBd,EAIzB,YAHI,YAAc51Z,KAAK6kB,OAAO,yBAC1B7kB,KAAKm7W,aAAan7W,KAAK02Z,kBAI3B12Z,KAAKm7W,aAAan7W,KAAK02Z,iBAG1Bd,IAGAA,EAAekF,oBAChB96Z,KAAKy7W,aAAarhJ,mCAI1B,SAAe5zM,GACX,GAAIgzV,EAAQrzW,QAAQqgB,EAAKhZ,OAAS,EAC9BxN,KAAK+9U,oBAGT,OAAQv3T,EAAKhZ,MACT,IAAK,cACL,IAAK,mBACDxN,KAAK0rP,cACL,MACJ,IAAK,uBACL,IAAK,0BACD,MACJ,IAAK,kBACD1rP,KAAKo7Z,sBAAsB50Y,EAAKhZ,KAAMgZ,EAAK5kB,OAC3C,MACJ,IAAK,oBACD4kB,EAAK5kB,MAAQ5B,KAAK22Z,kBAAoB32Z,KAAKq7Z,oBAC3C,MACJ,IAAK,QACGr7Z,KAAKu2Z,yBACLv2Z,KAAKk3Z,UAAUryY,OAAO2B,EAAKhZ,KAAMgZ,EAAK5kB,OACtC5B,KAAK8rB,SAASjH,OAAO2B,EAAKhZ,KAAMgZ,EAAK5kB,SAEzC,6DAAqB4kB,GACrBxmB,KAAK+pP,oBACL,MACJ,IAAK,YACG/pP,KAAKu2Z,wBACLv2Z,KAAKk3Z,UAAUryY,OAAO,qBAAsB2B,EAAK5kB,QAErD,6DAAqB4kB,GACrB,MACJ,SACQxmB,KAAKu2Z,wBAA2B/vY,EAAKhZ,OAASgZ,EAAKg/N,UAAY,UAAYh/N,EAAKhZ,MAChFxN,KAAKk3Z,UAAUryY,OAAO2B,EAAKg/N,SAAUh/N,EAAK5kB,QAE9C,6DAAqB4kB,yCAGjC,SAAsBhZ,EAAM5L,IACxB6Y,EAAAA,EAAAA,IAAKza,KAAK61Z,WAAW,SAACh1Z,EAAOgrB,GACzBA,EAAQhH,OAAOrX,EAAM5L,gCAG7B,SAAWkpE,GACP9qE,KAAKm7W,aAAan7W,KAAK02Z,kBACvB,yDAAiB5rV,+BAErB,SAAaA,GACT9qE,KAAKm7W,aAAan7W,KAAK02Z,kBACvB,yDAAiB5rV,SAtrBnBoqV,CAAal0C,EAAAA,IAyrBnB1gW,EAAAA,EAAAA,SAAkB,SAAU40Y,GAC5B,IC3vBA,ED2vBA,4GE7uBIzvY,GAASwoM,EAAAA,EAAAA,MACTqtM,EAAU,KACVC,EAAc,GAyClB,IAAIC,EAAsB,SAAAr1Y,GAAQ,OAAImkM,EAAAA,EAAAA,IAASnkM,IAAaA,EAAS21G,SAAS,OAAS,YAAc,WAMjG2/R,EAAoB,SAAAz0Z,GACpB,IAAIugC,EAAag0X,EAAYv0Z,GAC7B,OAAOugC,GAPgB,SAAAvgC,GACvB,IAAIugC,GAAa75B,EAAAA,EAAAA,GAAE,SAASuqB,UAASkhM,EAAAA,EAAAA,OAErC,OADAoiM,EAAYv0Z,GAAOugC,EACZA,EAI0Bm0X,CAAqB10Z,IAEtD20Z,EAAsB,SAAC77Y,EAAWu7H,GAClC,IAAIugR,EAAmB,iCAAiChgY,OAAOy/G,EAAW,cAC1Ev7H,EAAU8X,WAAW,SAASnY,SAASm8Y,IAEvCC,EAAqB,SAAC/7Y,EAAWu7H,EAAWl1H,GAC5C,MAGIrG,EAAU/U,WAAWi/D,QAAQnqD,IAAI,GACjCi8Y,EAAa,CACbC,WALJ,EACIj/Y,YAKAk/Y,YANJ,EAEIj/Y,aAKAyI,aAAcC,EAAOq8H,YACrBF,YAAan8H,EAAOo8H,YAEpBo6Q,GAAc3xM,EAAAA,EAAAA,IAASnkM,GAAY+1Y,EAAsB/1Y,EAAU21Y,GAAc31Y,EACjFyb,EAASu6X,EAA+B9gR,EAAW4gR,EAAaH,GACpEh8Y,EAAUzE,IAAIumB,IAEds6X,EAAwB,SAAC36W,EAAOylM,GAChC,IACgB+0K,EAIZ/0K,EAJA+0K,WACaC,EAGbh1K,EAHAg1K,YACcx2Y,EAEdwhO,EAFAxhO,aACao8H,EACbolG,EADAplG,YAEJ,OAAQrgG,GACJ,IAAK,WACD,MAAO,CACHzoC,IAAK,GAAIJ,KAAM,IAEvB,IAAK,YACD,MAAO,CACHI,IAAK,GAAIiF,MAAO,IAExB,IAAK,cACD,MAAO,CACHC,OAAQ,GAAItF,KAAM,IAE1B,IAAK,eACD,MAAO,CACHsF,OAAQ,GAAID,MAAO,IAE3B,IAAK,aACD,MAAO,CACHjF,IAAK,GAAIJ,KAAMiN,KAAK6H,MAAMo0H,EAAc,EAAIm6Q,EAAa,IAEjE,IAAK,cACD,MAAO,CACHjjZ,IAAK6M,KAAK6H,MAAMhI,EAAe,EAAIw2Y,EAAc,GAAItjZ,KAAM,IAEnE,IAAK,eACD,MAAO,CACHI,IAAK6M,KAAK6H,MAAMhI,EAAe,EAAIw2Y,EAAc,GAAIj+Y,MAAO,IAEpE,IAAK,SACD,MAAO,CACHjF,IAAK6M,KAAK6H,MAAMhI,EAAe,EAAIw2Y,EAAc,GAAItjZ,KAAMiN,KAAK6H,MAAMo0H,EAAc,EAAIm6Q,EAAa,IAG7G,QACI,MAAO,CACH/9Y,OAAQ,GAAItF,KAAMiN,KAAK6H,MAAMo0H,EAAc,EAAIm6Q,EAAa,MAIxEI,EAAiC,SAAC9gR,EAAW4gR,EAAaH,GAC1D,IAAIM,EAAqBC,EAAmBC,EAAoBC,EAAkBC,EAAoBC,EAAqBC,EAAqBC,EAAmBC,EAAsBC,EAAoBC,EAAmBC,EAEhNhB,EAIZD,EAJAC,WACaC,EAGbF,EAHAE,YACcx2Y,EAEds2Y,EAFAt2Y,aACao8H,EACbk6Q,EADAl6Q,YAEJ,OAAQvG,EAAU3yF,QAAQ,gBAAiB,KACvC,IAAK,KACD,MAAO,CACH1qC,OAAQ,QAAUo+Y,EAAsBH,EAAYj+Y,cAAW,IAAWo+Y,EAAsBA,EAAsB52Y,EAAew2Y,EAAcC,EAAYnjZ,IAAKA,IAAK,GAAIJ,KAAM,QAAU2jZ,EAAoBJ,EAAYvjZ,YAAS,IAAW2jZ,EAAoBA,EAAoB,GAAIt+Y,MAAO,QAAUu+Y,EAAqBL,EAAYl+Y,aAAU,IAAWu+Y,EAAqBA,EAAqB,IAEtZ,IAAK,OACD,MAAO,CACHxjZ,IAAK,QAAUyjZ,EAAmBN,EAAYnjZ,WAAQ,IAAWyjZ,EAAmBA,EAAmB/2Y,EAAew2Y,EAAcC,EAAYj+Y,OAAQA,OAAQ,GAAItF,KAAM,QAAU8jZ,EAAqBP,EAAYvjZ,YAAS,IAAW8jZ,EAAqBA,EAAqB,GAAIz+Y,MAAO,QAAU0+Y,EAAsBR,EAAYl+Y,aAAU,IAAW0+Y,EAAsBA,EAAsB,IAEnZ,IAAK,OACD,MAAO,CACH1+Y,MAAO,QAAU2+Y,EAAsBT,EAAYl+Y,aAAU,IAAW2+Y,EAAsBA,EAAsB96Q,EAAcm6Q,EAAaE,EAAYvjZ,KAAMA,KAAM,GAAII,IAAK,QAAU6jZ,EAAoBV,EAAYnjZ,WAAQ,IAAW6jZ,EAAoBA,EAAoB,GAAI3+Y,OAAQ,QAAU4+Y,EAAuBX,EAAYj+Y,cAAW,IAAW4+Y,EAAuBA,EAAuB,IAE1Z,IAAK,QACD,MAAO,CACHlkZ,KAAM,QAAUmkZ,EAAqBZ,EAAYvjZ,YAAS,IAAWmkZ,EAAqBA,EAAqBj7Q,EAAcm6Q,EAAaE,EAAYl+Y,MAAOA,MAAO,GAAIjF,IAAK,QAAUgkZ,EAAoBb,EAAYnjZ,WAAQ,IAAWgkZ,EAAoBA,EAAoB,GAAI9+Y,OAAQ,QAAU++Y,EAAuBd,EAAYj+Y,cAAW,IAAW++Y,EAAuBA,EAAuB,MAI/Z,IA9IA,SAAgBtxX,EAASuxX,EAAa39V,GAClC,IAAIjlD,GAAU2gE,EAAAA,EAAAA,IAActvC,GAAWA,EAAU,CAC7CA,QAASA,GAET6qD,GAAQvb,EAAAA,EAAAA,IAAciiV,GAAeA,OAAc,EACnDr5Y,GAAOo3D,EAAAA,EAAAA,IAAciiV,QAAe,EAASA,EAEnCC,EACV7iZ,EADA0/V,SAEJ,GAAI,OAASxjR,QAAS,IAAWA,GAASA,EAAMnwE,SAAU,CACtD,IACcA,EACVmwE,EADAnwE,SAEAk1H,EAAY/kD,EAAM+kD,WAAamgR,EAAoBr1Y,GACnD+2Y,GAAe5yM,EAAAA,EAAAA,IAASnkM,GAAYA,EAAW,GAAGyV,OAAOzV,EAASrN,IAAK,KAAK8iB,OAAOzV,EAASzN,KAAM,KAAKkjB,OAAOzV,EAASnI,OAAQ,KAAK4d,OAAOzV,EAASpI,OAEzIo/Y,EACX/iZ,EADA0W,UAEAyW,EAAak0X,EAAkByB,GACnCvB,EAAoBp0X,EAAY8zG,IAChCvyI,EAAAA,EAAAA,GAAOsR,EAAS,CACZ0F,UAAWynB,EACXzW,UAAW,SAAStK,GAChBq1Y,EAAmBt0X,EAAY8zG,EAAWl1H,GAC1C,OAASg3Y,QAAiB,IAAWA,GAAyBA,EAAc32Y,OAIxF1d,EAAAA,EAAAA,GAAOsR,EAAS,CACZuJ,KAAMA,EACN07C,YAAaA,EACby6S,SAAU,SAAStzV,IACf9Y,EAAAA,EAAAA,GAAE8Y,EAAK1mB,SAAS0B,SAChB,OAASy7Z,QAAgB,IAAWA,GAAwBA,EAAaz2Y,MAGjF80Y,GAAU5tZ,EAAAA,EAAAA,GAAE,SAASuqB,UAASkhM,EAAAA,EAAAA,OAC9B,IAAIikM,EAAAA,QAAM9B,EAASlhZ,GAASonC,iLCrD5B67W,EAAwB,SAAS7+U,GAGjC,IAFA,IAAI8+U,EAAe,EACfC,EAAiB,EACZxxZ,EAAI,EAAGA,EAAIyyE,EAAIl+E,SAAUyL,EAI9B,GAHI,MAAQyyE,EAAIzyE,IACZuxZ,IAEA,MAAQ9+U,EAAIzyE,OACVwxZ,EACED,EAAe,IAAM,GACrB,MAAO,CACHE,WAAYD,EACZ18Z,MAAOkL,GAKvB,MAAO,CACHyxZ,WAAY,EACZ38Z,OAAQ,IAGZ48Z,EAAmB,SAASj/U,EAAKhjE,EAAGk8C,GAEpC,IADA,IAAI3rD,GAAK,EACF2rD,KAAO3rD,IAAMyyE,EAAIl+E,QACpByL,EAAIyyE,EAAIr4E,QAAQqV,EAAGzP,GAEvB,OAAOA,GAEP2xZ,EAAe,SAASl/U,EAAK39E,GAC7B,OAAK,IAAMA,EACA,CAAC29E,GAEL,CAACA,EAAI/4E,MAAM,EAAG5E,GAAQ29E,EAAI/4E,MAAM5E,EAAQ,KCxBxC88Z,EAAqB,SAASh7Z,EAAMm2B,GAC3C,GAAI,kBAAoBA,EAAQ,CAC5B,IAAIohS,EAAYphS,EAAOrrB,MAAM,KACzB+lD,EAAOimB,EAAAA,QAAAA,QAAe92E,EAAMm2B,GAChCohS,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GAE/CphS,GADAA,EAASohS,EAAU1mQ,EAAO,EAAI,EAAI,IACN9K,QAAQ,cAAc,SAAA81B,GAAG,OAAIA,EAAI/wE,MAAM,IAAIvH,KAAI,iBAAM,OAAK+K,KAAK,IAAIN,OAAO,MACtG,IAAIitZ,EAAmB,YAAYrvZ,KAAKuqB,GAAQ,GAAGx4B,OAC/Cu9Z,EAAoB,YAAYtvZ,KAAKuqB,GAAQ,GAAGx4B,OACpD,MAAO,CACHub,MAAO+hZ,EACPxqY,IAAKzwB,EAAKrC,OAASu9Z,GAGvB,MAAO,CACHhiZ,MAAO,EACPuX,IAAKzwB,EAAKrC,SAKlBw9Z,EAA4B,SAASj9Z,EAAO8B,GAC5C,IAAI23O,EAAmB7gK,EAAAA,QAAAA,sBACnB6jD,EAAS,IAAIt0E,OAAO,SAAUm0E,EAAAA,EAAAA,cAAam9G,GAAoB,IAAK,KAExE,OADyB33O,EAAK8C,MAAM,EAAG5E,GACb6nD,QAAQ40E,EAAQ,IAAIh9H,QAE9Cy9Z,EAAe,SAASp7Z,GACxB,OAAOA,EAAK8K,MAAM,IAAIsmB,UAAU9iB,KAAK,KAErC+sZ,EAA2B,SAASC,EAAYt7Z,GAChD,IAAKs7Z,EACD,OAAQ,EAMZ,IAJA,IAAI3gS,EAAS,SACT+mB,EAAU,EACVxjJ,EAAQ,KACRgO,EAASyuH,EAAO/uH,KAAK5L,GAClBkM,GAAQ,CAEX,GADAhO,EAAQgO,EAAOhO,MACXwjJ,GAAW45Q,EACX,OAAOp9Z,EAEXwjJ,IACAx1I,EAASyuH,EAAO/uH,KAAK5L,GAEzB,OAAO,OAAS9B,EAAQ8B,EAAKrC,OAASO,GAK/Bq9Z,EAAqB,SAAS33C,EAAOh7W,GAO5C,YANI,IAAWg7W,EAAM1qW,QACjB0qW,EAAQ,CACJ1qW,MAAO0qW,EACPnzV,IAAKmzV,IAGN,CACH1qW,MAAO0qW,EAAM1qW,MAAQtQ,EACrB6nB,IAAKmzV,EAAMnzV,IAAM7nB,IAoClB,SAAS4yZ,EAAqB53C,EAAO5jX,EAAMm2B,GAC9CytV,EAAQ23C,EAAmB33C,EAAO,GAClC,IAAI63C,EAAaT,EAAmBh7Z,EAAMm2B,GAK1C,MAJoB,CAChBjd,OAAOq3P,EAAAA,EAAAA,IAAaqzG,EAAM1qW,MAAOuiZ,EAAWviZ,MAAOuiZ,EAAWhrY,KAC9DA,KAAK8/O,EAAAA,EAAAA,IAAaqzG,EAAMnzV,IAAKgrY,EAAWviZ,MAAOuiZ,EAAWhrY,MAI3D,yMChGHirY,EAAa,cACbC,GAAuBlwM,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,GAAkBw8X,GACtDE,GAA2BnwM,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,OAAsBw8X,GAuElE,EAtEiBv8G,EAAAA,QAAAA,QAAe,CAC5BrvF,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bl2E,UAAW,KACX59G,SAAU,KACV4vS,oBAAoB,EACpBE,mBAAmB,KAG3B9iF,YAAa,WACTzqP,KAAKuxN,WACL,IAAIl2E,EAAYmjR,qBAAmBx+Z,KAAK6kB,OAAO,aAC/C7kB,KAAK6Z,WAAW4F,SAjBA,4BAiB4BA,SAAS47H,GACrDr7I,KAAKy+Z,WAAY/wZ,EAAAA,EAAAA,GAAE,SAAS+R,SAAS47H,EAAY,SAASpjH,SAASj4B,KAAK6Z,aAE5EiiN,QAAS,WACL97N,KAAKuxN,WACL,IAAItnL,GAAYmkL,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoB7hC,KAAK+0N,MAClDl7M,EAAW7Z,KAAK6Z,WACpB87M,EAAAA,EAAAA,IAAiB97M,EAAUowB,GAC3B0rL,EAAAA,EAAAA,GAAgB97M,EAAUowB,EAAWjqC,KAAK0+Z,iBAAiBj0Z,KAAKzK,OAChEA,KAAK2+Z,mBAAqB3+Z,KAAKw7N,sBAAsB,aAEzDkjM,iBAAkB,SAASl+Z,GACvBA,EAAE6G,iBACFrH,KAAKgxS,cACLr7E,EAAAA,EAAAA,GAAgB31N,KAAK6Z,WAAYmjR,EAAAA,EAAAA,KAAgB,WAC7Ch9R,KAAK4+Z,kBAAoB,IAAIpsM,EAAAA,IAC7B5zG,EAAAA,EAAAA,IAAK5+G,KAAK4+Z,mBACV5+Z,KAAK2+Z,mBAAmB,CACpBnkZ,MAAOha,IAEXR,KAAKwzS,WAAa5uP,YAAY5kD,KAAK2+Z,mBApCzB,IAoC8D,CACpEnkZ,MAAOha,KAEbiK,KAAKzK,OACP,IAAIwC,EAAWo3N,EAAAA,EAAAA,cACfjE,EAAAA,EAAAA,GAAgBnzN,EAAU87Z,EAAsBt+Z,KAAKgxS,YAAYvmS,KAAKzK,OACtE21N,EAAAA,EAAAA,GAAgBnzN,EAAU+7Z,EAA0Bv+Z,KAAKgxS,YAAYvmS,KAAKzK,OAC1EA,KAAK2+Z,mBAAmB,CACpBnkZ,MAAOha,KAGf67N,SAAU,WACNr8N,KAAKgxS,cACLhxS,KAAKuxN,YAETy/E,YAAa,WACTr7E,EAAAA,EAAAA,IAAiB31N,KAAK6Z,WAAYmjR,EAAAA,EAAAA,MAClC,IAAIx6R,EAAWo3N,EAAAA,EAAAA,cACfjE,EAAAA,EAAAA,IAAiBnzN,EAAU87Z,GAC3B3oM,EAAAA,EAAAA,IAAiBnzN,EAAU+7Z,GACvBv+Z,KAAK4+Z,mBACL5+Z,KAAK4+Z,kBAAkBxuZ,UAEvBpQ,KAAKwzS,YACL7uP,cAAc3kD,KAAKwzS,aAG3Bt3E,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,WACL,IAAK,YACDxN,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,OC5ETq4Y,EAAAA,SAAAA,wIACjB,SAAczwZ,EAAU0wZ,GACpB,IACYt8Y,EACRxiB,KADAwiB,OAEAynB,GAAYmkL,EAAAA,EAAAA,cAAawoF,EAAAA,EAAAA,KAAcp0R,EAAOuyM,MAC9CgqM,EAAyBD,EAAe/zZ,WACxCi0Z,EAAoBx8Y,EAAOqjO,eAAc,SAAArlP,GAAC,OAAIgiB,EAAOy8Y,+BAA+Bz+Z,MACxFm1N,EAAAA,EAAAA,IAAiBmpM,EAAgB70X,GACjC0rL,EAAAA,EAAAA,GAAgBmpM,EAAgB70X,GAAW,SAAAzpC,GAAC,OAAIw+Z,EAAkB,CAC9DxkZ,MAAOha,OAEX0+Z,EAAAA,YAAuBH,EAAuBn3W,GAAG,IAAI/iC,OAAO,YAAY,SAAArkB,GAAC,OAAIgiB,EAAO28Y,qBAAqB3+Z,MACzG0+Z,EAAAA,YAAuBH,EAAuBn3W,GAAG,IAAI/iC,OAAO,YAAY,SAAArkB,GAAC,OAAIgiB,EAAO48Y,uBAAuB5+Z,6BAE/G,WACI,IACYgiB,EACRxiB,KADAwiB,OAEAs8Y,GAAiBpxZ,EAAAA,EAAAA,GAAE,SAAS+R,SArBb,+BAsBf4/Y,GAAU3xZ,EAAAA,EAAAA,GAAE,SAASuqB,SAAS6mY,GAC9BQ,GAAY5xZ,EAAAA,EAAAA,GAAE,SAASuqB,SAAS6mY,GAChC1kZ,EAAUpa,KAAKylY,cASnB,OARAzlY,KAAK0lY,gBAAgBo5B,GACrBt8Y,EAAO4kO,iBAAiBi4K,EAASH,GAAYp2Z,EAAAA,EAAAA,GAAO,CAChDuyI,UAAW,MACZjhI,IACHoI,EAAO4kO,iBAAiBk4K,EAAWJ,GAAYp2Z,EAAAA,EAAAA,GAAO,CAClDuyI,UAAW,QACZjhI,IACHpa,KAAK2lY,cAAcnjX,EAAO3I,WAAY7Z,KAAKu/Z,mBAAoBnlZ,EAAQvR,SAChE,CACHuF,SAAU0wZ,EACVjlZ,SAAUilZ,8BAGlB,WACI,IACYt8Y,EACRxiB,KADAwiB,OAIJ,MAAO,CACH3Z,QAHU7I,KAAK06G,aAIftvG,SAHWoX,EAAOqC,OAAO,uCAMjC,WACI,IACYrC,EACRxiB,KADAwiB,OAEJ,OAAO,2DAAsBA,EAAOqC,OAAO,mDAE/C,WACI,IACYrC,EACRxiB,KADAwiB,OAEJ,OAAOA,EAAOqC,OAAO,oBAAsBrC,EAAOqC,OAAO,oDAE7D,SAAc6nI,EAAS8yQ,EAAiBp3N,GACpC17C,EAAQ8pE,YA7DgB,mCA6DuBgpM,GAC/C9yQ,EAAQ8pE,YAhEC,oBAgEuBpuB,yBAEpC,WAEI,IADmB,sDACD,CACd,IACY5lL,EAERxiB,KAFAwiB,OACUpU,EACVpO,KADAoO,SAEAs+I,EAAUlqI,EAAO3I,WACjBuuL,EAAYpoM,KAAK06G,aACjB8kT,EAAkBx/Z,KAAKu/Z,mBACvBE,EAAerxZ,EAASrD,WACxB20Z,EAASR,EAAAA,YAAuBO,EAAa73W,GAAG,IAChD+3W,EAAWT,EAAAA,YAAuBO,EAAa73W,GAAG,IAClDxtC,EAAUpa,KAAKylY,cACnBi6B,EAAO76Y,OAAOzK,GACdulZ,EAAS96Y,OAAOzK,GAChBpa,KAAK2lY,cAAcj5O,EAAS8yQ,EAAiBp3N,UA/EpCy2N,CAAoB/4B,EAAAA,cCiBrC85B,EAAOj6Y,KAEPk6Y,EAAuB,CAAC,MAAO,MAAO,YAAa,YAAa,aAAc,OAAQ,MAAO,SAE7FC,EAAgBC,EAAAA,EAAAA,QAAmB,CACnCz1E,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bq5H,QAAS,SAASpqV,IACTi/S,EAAAA,EAAAA,qBAAoBj/S,KACrBA,EAAE6G,iBACF7G,EAAE4G,kBACFpH,KAAKm/Z,qBAAqB3+Z,KAGlCuqV,UAAW,SAASvqV,IACXi/S,EAAAA,EAAAA,qBAAoBj/S,KACrBA,EAAE6G,iBACF7G,EAAE4G,kBACFpH,KAAKo/Z,uBAAuB5+Z,KAGpCqrI,MAAO,gBAGf4mF,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,EACPkkB,SAAK,EACLF,SAAK,EACLy4B,KAAM,EACNi2U,iBAAiB,EACjB0rC,qBAAqB,EACrB37V,KAAM,OACN47V,oBAAqB9iG,EAAAA,EAAAA,OAA2B,mCAChDqpE,aAAS,KAGjBh9I,cAAe,WACX,OAAO,GAEX08I,mBAAoB,WAChB,OAAOlmY,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BpuB,KAAM,QACN24X,KAAM04B,MAGdqB,oBAAqB,WACjB,IAAIp3R,EAAUnzF,WAAWywL,EAAAA,QAAAA,SACzB,OAAOA,EAAAA,QAAAA,QAAkBt9F,GAAW,IAAMs9F,EAAAA,QAAAA,QAAkBt9F,GAAW,IAE3E85G,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,OAAOjW,EAAAA,QAAAA,OAAesU,UAAYtU,EAAAA,QAAAA,eAEtC/tN,QAAS,CACL4lZ,qBAAqB,IAE1B,CACC5hL,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAepoO,KAAKkga,uBAC1Dz1Z,KAAKzK,MACPoa,QAAS,CACLiqD,KAAM,cAIlBomL,YAAa,WACTzqP,KAAK6uV,uBACL7uV,KAAK6Z,WAAW4F,SApEL,gBAqEXzf,KAAKuxN,YAET4uM,sBAAuB,WACnB,IAAI92R,EAAarpI,KAAKuxN,WAEtB,OADAloF,EAAW+2R,UAAY,UAChB/2R,GAEX61N,mBAAoB,WAChBl/V,KAAK6kB,OAAO,YAAc7kB,KAAK4+B,eAAe5+B,KAAK6kB,OAAO,UAC1D7kB,KAAK4gV,QAAQ,OAAQ,eAEzBiO,qBAAsB,WAClB7uV,KAAKoyV,iBAAkB1kV,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,UAAUqY,SAASj4B,KAAK6Z,YACzE7Z,KAAKqyV,gBAAgBryV,KAAK6kB,OAAO,WAErCwtU,gBAAiB,SAASzwV,GACtB5B,KAAKsyV,oBAAoBvuU,KAAIy9O,EAAAA,EAAAA,6BAA4B5/P,KAE7D0wV,kBAAmB,WACf,OAAOtyV,KAAKoyV,iBAEhButC,iBAAkB,SAASn/X,GACvBR,KAAKuxN,SAAS/wN,GACd,IAAI66F,GAAOkkN,EAAAA,EAAAA,SAAQ/+S,GAEnB,IADuB,cAAc0iC,KAAKm4D,GACnB,CACnB,IAAImtM,GAAUC,EAAAA,EAAAA,kBAAiBjoS,GAC/B,IAAIi/S,EAAAA,EAAAA,qBAAoBj/S,IAAMgoS,GAAWq3H,EAAqB/jS,SAAS0sK,GACnE,OAGJ,OADAhoS,EAAE6G,kBACK,EAEXrH,KAAKqga,aAAc,GAEvBv+B,cAAe,SAASv/B,GACpBA,EAAQvlV,MAAQ,EAAIhd,KAAKsga,iBAAiB,EAAG/9D,GAAWviW,KAAKsga,kBAAkB,EAAG/9D,IAEtFjiB,aAAc,WACV,IAAIigF,EAAavga,KAAK63F,SAAS9zE,MAC3BniB,EAAQ5B,KAAK6kB,OAAO,SACnB07Y,EAAWjga,QAAUmvD,OAAO8wW,KAAgB3+Z,IAC7C5B,KAAKwga,oBACLxga,KAAKkpY,gCAET,IAAIrtE,GAAYlzQ,EAAAA,EAAAA,IAAU/mD,GAAS,KAAOu7T,EAAAA,EAAAA,OAA2B,0BAOrE,OANAn9T,KAAK4gV,QAAQ,CACT6/E,UAAUjhK,EAAAA,EAAAA,eAAc59P,EAAO,IAC/B8+Z,UAAW7kG,IAEf77T,KAAK6kB,OAAO,OAAQ7kB,KAAK63F,SAAS9zE,OAClC/jB,KAAK0sY,kBACG,IAAIl6K,EAAAA,IAAUpiN,WAE1BowZ,kBAAmB,WACf,IAAI5+Z,EAAQ5B,KAAK6kB,OAAO,SACpB40D,EAAShqB,OAAO7tD,GAChB++Z,EAAiBn3X,MAAMiwC,GAAU,GAAKz5E,KAAK4ga,4BAA4Bh/Z,GAC3E5B,KAAKymB,mBAAmBk6Y,IAE5BC,4BAA6B,SAASh/Z,GAClC,OAAO5B,KAAK6kB,OAAO,wBAAZ7kB,CAAqC4B,IAEhD+6X,aAAc,WACV38X,KAAK63F,SAAS4uB,KAAK,CACf3gG,IAAK9lB,KAAK6kB,OAAO,OACjBe,IAAK5lB,KAAK6kB,OAAO,OACjBw5B,KAAMr+C,KAAK6kB,OAAO,UAEtB7kB,KAAK4gV,QAAQ,CACTigF,UAAUrhK,EAAAA,EAAAA,eAAcx/P,KAAK6kB,OAAO,OAAQ,IAC5Ci8Y,UAAUthK,EAAAA,EAAAA,eAAcx/P,KAAK6kB,OAAO,OAAQ,OAGpDo6Y,+BAAgC,WAC5B,IAAIlnT,EAAS/3G,KAAK63F,SACb73F,KAAK6kB,OAAO,wBAA0B+0M,EAAAA,EAAAA,qBAAkC7hH,EAAO,IAChF49G,EAAAA,EAAAA,QAAqB59G,EAAQ,UAGrConT,qBAAsB,SAAS3+Z,GACtBR,KAAK6kB,OAAO,aACb7kB,KAAKsga,iBAAiB,EAAG9/Z,EAAEga,OAASha,IAG5C4+Z,uBAAwB,SAAS5+Z,GACxBR,KAAK6kB,OAAO,aACb7kB,KAAKsga,kBAAkB,EAAG9/Z,EAAEga,OAASha,IAG7C8/Z,iBAAkB,SAAS9sW,EAAM+uS,GAC7B,IAAIlkT,EAAO1I,WAAW31C,KAAK6kB,OAAO,SAClC,GAAI,IAAMw5B,EAAV,CAGA,IAAIz8C,EAAQ+zC,WAAW31C,KAAK+ga,yBAA2B,EACvDn/Z,EAAQ5B,KAAKgha,iBAAiBp/Z,EAAOy8C,EAAOmV,GAC5C,IAAI1tC,EAAM9lB,KAAK6kB,OAAO,OAClBe,EAAM5lB,KAAK6kB,OAAO,QAClB8jC,EAAAA,EAAAA,IAAU7iC,KACVlkB,EAAQ+jB,KAAKC,IAAIE,EAAKlkB,KAEtB+mD,EAAAA,EAAAA,IAAU/iC,KACVhkB,EAAQ+jB,KAAKG,IAAIF,EAAKhkB,IAE1B5B,KAAK0rV,sBAAsB6W,GAC3BviW,KAAK6kB,OAAO,QAASjjB,KAEzBo/Z,iBAAkB,SAASp/Z,EAAOy8C,GAC9B,IAAIq9G,EAAQ,WACRulQ,EAAevlQ,EAAMx4H,KAAKthC,GAC1Bs/Z,EAAcxlQ,EAAMx4H,KAAKmb,GAC7B,GAAI4iX,GAAgBC,EAAa,CAC7B,IAAIC,EAAgBF,EAAevlQ,EAAMntJ,KAAK3M,GAAO,GAAGtB,OAAS,EAC7D8ga,EAAeF,EAAcxlQ,EAAMntJ,KAAK8vC,GAAM,GAAG/9C,OAAS,EAC1D+ga,EAAWzB,EAAKh6Y,IAAIu7Y,EAAeC,GAEvC,OADAx/Z,EAAQ5B,KAAKw0O,OAAO5yO,EAAQy8C,EAAMgjX,GAGtC,OAAOz/Z,EAAQy8C,GAEnBm2L,OAAQ,SAAS5yO,EAAOuW,GACpBA,EAAYA,GAAa,EACzB,IAAI0sT,EAAal/S,KAAKg7C,IAAI,GAAIxoD,GAG9B,OAFAvW,GAASijU,EACTjjU,EAAQ+jB,KAAK6H,MAAM5rB,GAASijU,GAGhCy8F,wBAAyB,WACrBtha,KAAKuxN,WACL,IAAIgwM,GAAwBnzM,EAAAA,EAAAA,cAAa,WArMT,6BAsMhCuH,EAAAA,EAAAA,IAAiB31N,KAAKF,UAAWyha,GACjC5rM,EAAAA,EAAAA,GAAgB31N,KAAKF,UAAWyha,EAAuBvha,KAAKwha,wBAAwB/2Z,KAAKzK,QAE7Fwha,wBAAyB,WACrB,GAAI,WAAaxha,KAAK6kB,OAAO,QAA7B,CAGA,IAAIkzF,EAAS/3G,KAAK63F,SACd8oU,EAAiB3ga,KAAK4ga,4BAA4B5ga,KAAK6kB,OAAO,UAClEkzF,EAAOh0F,IAAI,MACXg0F,EAAOh0F,IAAI48Y,KAEfhwD,yBAA0B,SAASnwW,GAC/B,IAAIu3G,EAAS/3G,KAAK63F,SACd0oU,EAAavga,KAAKyha,iBAClB7/Z,EAAQ5B,KAAK0ha,YAAYnB,GACzBoB,EAAiB,MAAQpB,GAAc,MAAQA,GAC/Cvga,KAAK4ha,iBAAoB5ha,KAAK4+B,eAAeh9B,IAI7C+/Z,GACA3ha,KAAKuxN,SAAS/wN,EAAGgpC,MAAM5nC,GAAS,KAAOA,GAE3C5B,KAAK6ha,sBAAsBtB,EAAY3+Z,GACvC5B,KAAKg1V,kBAAkBj3G,KAAK,CACxBn8O,MAAOA,EACP4gB,OAAQxiB,QATR+3G,EAAOh0F,IAAI/jB,KAAK4ga,4BAA4Bh/Z,KAYpDiga,sBAAuB,SAAStB,EAAY1yJ,GACxC,IAAIi0J,EAAoB9ha,KAAK+ha,mBAAmBxB,GAC5CyB,EAAiBhia,KAAKiia,gBAAgB1B,GACrCuB,GAAsBE,GAAkB,OAASn0J,GAC9Cp+M,OAAO8wW,KAAgB1yJ,GACvB7tQ,KAAK63F,SAAS9zE,IAAI/jB,KAAK4ga,4BAA4B/yJ,KAI/Dq0J,uBAAwB,SAAStga,GAC7B,OAAOA,EAAM8mD,QAAQ,IAAK,MAE9By5W,gBAAiB,WACb,IAAIC,EAAe,WAAapia,KAAK6kB,OAAO,QACxCw9Y,EAAgBria,KAAK63F,SAASh4E,IAAI,GAAGyiZ,SACzC,OAAOF,GAAgBC,GAAiBA,EAAcE,UAE1D97Y,mBAAoB,SAAS9jB,GACrB3C,KAAKmia,mBAGTnia,KAAKuxN,SAAS5uN,IAElBo/Z,mBAAoB,SAASnga,GACzB,MAAO,+BAA+BshC,KAAKthC,IAE/Cqga,gBAAiB,SAASrga,GACtB,OAAOyxQ,EAAAA,EAAAA,IAAQzxQ,EAAO5B,KAAK6kB,OAAO,OAAQ7kB,KAAK6kB,OAAO,SAE1D29Y,UAAW,SAAS5ga,GAChB,OAAO,OAAS5B,KAAK0ha,YAAY9/Z,IAErCg9B,eAAgB,SAASh9B,GACrB,IAAI2+Z,EAAavga,KAAKyha,iBAClBgB,EAAezia,KAAK4ha,gBACpB1xY,GAAU,EACVm7L,EAAWrrN,KAAKwia,UAAUjC,GAgB9B,OAfI/2X,MAAMimB,OAAO7tD,MACbsuB,GAAU,IAETtuB,GAAS6ga,EACVvyY,GAAU,EACFm7L,GAAao3M,IACrBvyY,GAAU,GAEdlwB,KAAK6kB,OAAO,CACRqL,QAASA,EACTwyR,gBAAiBxyR,EAAU,KAAO,CAC9B+rW,gBAAgB,EAChBxwV,QAASzrC,KAAK6kB,OAAO,0BAGtBqL,GAEX6wY,qBAAsB,WAClB,OAAO/ga,KAAK0ha,YAAY1ha,KAAKyha,mBAEjCA,eAAgB,WACZ,IAAI7/Z,EAAQ5B,KAAK63F,SAAS9zE,MAAM6c,OAChC,OAAO5gC,KAAKkia,uBAAuBtga,IAEvC8/Z,YAAa,SAAS9/Z,GAClB,IAAI63E,EAAS9jC,WAAW/zC,GACxB,OAAI4nC,MAAMiwC,GACC,MAEJy5L,EAAAA,EAAAA,IAAaz5L,EAAQz5E,KAAK6kB,OAAO,OAAQ7kB,KAAK6kB,OAAO,SAEhEs4W,YAAa,WACLn9X,KAAKmia,oBACLnia,KAAK63F,SAAS9zE,IAAI,IAClB/jB,KAAK4+B,kBAET5+B,KAAKuxN,YAETh2L,MAAO,WACC,OAASv7B,KAAK6kB,OAAO,UACrB7kB,KAAK6kB,OAAO,OAAQ,IAChB7kB,KAAK63F,SAASv3F,QACdN,KAAKsgV,gBAGTtgV,KAAK6kB,OAAO,QAAS,OAG7Bq3M,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,QACDxN,KAAK4+B,eAAepY,EAAK5kB,OACzB5B,KAAKqyV,gBAAgB7rU,EAAK5kB,OAC1B5B,KAAKuxN,SAAS/qM,GACdxmB,KAAKq0X,2BACL,MACJ,IAAK,OACDr0X,KAAK28X,eACL,MACJ,IAAK,MACL,IAAK,MACD38X,KAAK28X,eACL38X,KAAK6kB,OAAO,QAAS7kB,KAAK0ha,YAAY1ha,KAAK6kB,OAAO,WAClD,MACJ,IAAK,kBACL,IAAK,sBACD7kB,KAAK0sY,eAAe,CAAC,UACrB,MACJ,IAAK,sBACD,MACJ,QACI1sY,KAAKuxN,SAAS/qM,OCtU1Bk8Y,EAA6B,oBAI7BC,EAAY,QAGZC,EDmUJ,ECnUoB9C,QAAsB,CACtCrtM,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3ButK,iBAAiB,EACjBhmW,OAAQ,QAGhB+pY,aAAc,SAAS77Z,GACnB,MAAO,QAAUA,GAErBsjV,eAAgB,WACZ,OAAKtqV,KAAKu+X,oBAGHz1X,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BuxM,MAAO9ia,KAAK+ia,YAAYt4Z,KAAKzK,MAC7B+rI,IAAK/rI,KAAKw0D,eAAe/pD,KAAKzK,MAC9B29S,UAAW39S,KAAKw0D,eAAe/pD,KAAKzK,MACpC2qV,UAAW3qV,KAAKgja,cAAcv4Z,KAAKzK,MAvB3B,GAwBRuqV,WAAYvqV,KAAKgja,cAAcv4Z,KAAKzK,KAzB7B,GA0BP43I,KAAM53I,KAAKija,iCAAiCx4Z,KAAKzK,KA1B1C,GA2BP6rI,MAAO7rI,KAAKkja,sBAAsBz4Z,KAAKzK,MACvCozB,IAAKpzB,KAAKija,iCAAiCx4Z,KAAKzK,MA3BxC,KAiBDA,KAAKuxN,YAapB4xM,uBAAwB,SAASxga,GAC7B,IAAI23O,EAAmB7gK,EAAAA,QAAAA,sBACnB2pV,EAA+B/F,EAAsBr9Z,KAAK6kB,OAAO,WAAW24Y,WAChF,OAAOC,EAAiB96Z,EAAM23O,EAAkB8oL,IAEpD3vE,gBAAiB,SAASjzV,GACjBR,KAAKqja,yBAAyB7ia,KAC/BR,KAAKsja,oBACLtja,KAAKuja,cAAgB1ga,WAAW,WAC5B7C,KAAKuja,mBAAgB,EACrB,IAAIh9C,EAAQvmX,KAAKggY,SACjB,GAAIzZ,EAAM1qW,QAAU0qW,EAAMnzV,KAAOpzB,KAAKu+X,mBAAoB,CACtD,IAAI57X,EAAO3C,KAAKwja,eACZpnG,EAAwBp8T,KAAKmja,uBAAuBxga,GACpDy5T,GAAyB,EACzBp8T,KAAKggY,OAAO,CACRnkX,MAAOugT,EACPhpS,IAAKgpS,IAGTp8T,KAAKija,kCAlDT,EAkDyDzia,KAG/DiK,KAAKzK,MAjDU,IAmDrBA,KAAKuxN,SAAS/wN,IAElBkzV,iBAAkB,SAASlzV,GACvB,IAAIija,GAAqBzja,KAAKqja,yBAAyB7ia,GACnDija,IACAzja,KAAK0ja,iBAAkB,EACnB1ja,KAAKu+X,oBACLv+X,KAAKkja,yBAGblja,KAAKuxN,SAAS/wN,GACVija,IACAzja,KAAK0ja,iBAAkB,IAG/BC,qBAjEsC,SAiEjBpD,GACjB,IAAIznY,EAAS94B,KAAKigY,oBACdr+X,EAAQ5B,KAAK6kB,OAAO,SAExB,OADgB7kB,KAAKswT,QAAQ1uT,EAAOk3B,IAAW,MAC1BynY,GAEzB2C,sBAAuB,WACnB,IAAI3C,EAAavga,KAAKwja,eAClBxja,KAAK2ja,qBAAqBpD,KAC1Bvga,KAAK4ja,qBACL5ja,KAAK6ja,qBACL7ja,KAAK8ja,wBACD9ja,KAAK+ja,eAAiB/ja,KAAK6kB,OAAO,UAClC8wM,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,YAIhDmrU,cAAe,SAAS3kX,EAAM79C,GAC1B,GAAKR,KAAKu+X,mBAAV,CAGA,IAAI57X,EAAO3C,KAAKwja,eACZ1qY,EAAS94B,KAAKigY,oBACd+jC,EAAY9F,EAAmBl+Z,KAAKggY,SAAU3hV,IJpCzB,SAASkoU,EAAO5jX,EAAMm2B,GAEnD,IAAIslY,EAAaD,EADjB53C,EAAQ23C,EAAmB33C,EAAO,GACW5jX,EAAMm2B,GACnD,OAAOytV,EAAM1qW,OAASuiZ,EAAWviZ,OAAS0qW,EAAMnzV,KAAOgrY,EAAWhrY,KIkCzD6wY,CAAoBD,EAAWrha,EAAMm2B,KACtCkrY,EAhGO,IAgGK3lX,EAAwB2lX,EAAU5wY,IAAM4wY,EAAUnoZ,MAC9Drb,EAAE6G,iBACFrH,KAAKggY,OAAOm+B,EAAqB6F,EAAWrha,EAAMm2B,OAG1DorY,qBAAsB,SAAS7oR,GAC3B,IAAI+iR,EAAaT,EAAmB39Z,KAAKwja,eAAgBxja,KAAKigY,qBAC1DkkC,EAAWjG,EAvGJ,IAuGuB7iR,EAA6B+iR,EAAWviZ,MAAQuiZ,EAAWhrY,IAAK,GAClGpzB,KAAKggY,OAAOmkC,IAEhBlB,iCAAkC,SAAS5nR,EAAW76I,IAC7CR,KAAKu+X,oBAAsB/9X,GAAKA,EAAE2C,WAGvCnD,KAAKkka,qBAAqB7oR,GAC1B76I,GAAKA,EAAE6G,mBAEX+8Z,iBAAkB,SAASzha,EAAM4jX,GAC7B,IAAIjsI,EAAmB7gK,EAAAA,QAAAA,sBACnB4qV,EAAyB1ha,EAAKuiF,OAAOqhS,EAAMnzV,OAASknN,EAExD,OADmBt6O,KAAKska,WAAahqL,GAAoB,MAAQt6O,KAAKska,UAAY,MAAQtka,KAAKska,WAAaD,GAGhHb,aAAc,WACV,OAAO/pV,EAAAA,QAAAA,cAAqBz5E,KAAK63F,SAAS9zE,OAAO,IAErDmzV,iBAAkB,SAAS12W,GAIvB,GAHAR,KAAKsja,oBACLtja,KAAKska,SAAW7qV,EAAAA,QAAAA,eAAqB8lO,EAAAA,EAAAA,SAAQ/+S,IAAI,GACjDR,KAAKuka,cAAe97H,EAAAA,EAAAA,kBAAiBjoS,IAChCR,KAAKwka,iBAAiBhka,EAAE43G,eACzB,OAAOp4G,KAAKuxN,SAAS/wN,GAEzB,IAAIika,EAAiBzka,KAAKwja,eACtBj9C,EAAQvmX,KAAKggY,SACb0kC,EAAc1ka,KAAKuka,eAAiB5B,EAAY,GAAK3ia,KAAKska,SAC1D/9Y,EAAWvmB,KAAK2ka,UAAUF,EAAgBl+C,EAAOm+C,GAYrD,OAXI1ka,KAAKoka,iBAAiBK,EAAgBl+C,KACtCvmX,KAAK4ka,WAAW,GAChBpka,EAAE43G,cAAc/wG,uBAEhB,IAAWkf,EACPvmB,KAAKuka,eAAiB5B,GACtBnia,EAAE43G,cAAc/wG,iBAGpBrH,KAAK+ja,aAAex9Y,EAEjBvmB,KAAKuxN,SAAS/wN,IAEzBm/X,iBAAkB,SAASn/X,GAClBR,KAAKu+X,oBACNv+X,KAAKuxN,SAAS/wN,IAGtBg0D,eAAgB,SAASh0D,GACrB,IAAI+lX,EAAQvmX,KAAKggY,SACbr9X,EAAO3C,KAAKwja,eACZ3nZ,EAAQ0qW,EAAM1qW,MACduX,EAAMmzV,EAAMnzV,IAChBpzB,KAAKska,UAAW/kH,EAAAA,EAAAA,SAAQ/+S,GACxBR,KAAKuka,cAAe97H,EAAAA,EAAAA,kBAAiBjoS,GACrC,IAAIqka,EAAc7ka,KAAK6ia,aAAa7ia,KAAKuka,cACrCO,GAAkBD,EACtB,GAAIhpZ,IAAUuX,EAAK,CAGf,KADgB0xY,GADIjpZ,EAC8B,GAAKgpZ,GADnChpZ,EACkElZ,EAAKrC,QAMvF,YADAE,EAAE6G,iBAHFw9Z,GAAezxY,IACf0xY,GAAkBjpZ,IAM1B,IAAIw/E,EAAO14F,EAAK8C,MAAMoW,EAAOuX,GAC7B,GAAIpzB,KAAK+ka,QAAQ1pU,GAAjB,CACIr7F,KAAK4ka,WAAWC,EAAc,GAAK,IAC/B7ka,KAAK+ja,aAAe,GAAK,EAAI/ja,KAAK+ja,gBAAiB,OACnD/ja,KAAK+ia,YAAYvia,GACjBR,KAAK8ja,wBACyB9ja,KAAK6kB,OAAO,oBAAoBpX,MAAM,KAAKquH,SAAS,UAE9E65F,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,UAG5Cr3F,EAAE6G,qBAVN,CAaA,IAAIizO,EAAmB7gK,EAAAA,QAAAA,sBACvB,GAAI4hB,IAASi/I,EAAb,CAQA,GAAIlnN,EAAMvX,EAAQlZ,EAAKrC,OAMnB,GALiBN,KAAK4iY,qBAAqBjgY,EAAM,CAC7CkZ,MAAOA,EACPuX,IAAKA,GACN,IACuB8lI,OAAO,SAAW,GAC5Bl5J,KAAKiia,gBAAgB,GAEjC,YADAjia,KAAK+ja,aAAe/ja,KAAK+ja,aAAe,GAAK,EAAI/ja,KAAK+ja,gBAAiB,KAAU,EAAI,GAI7F,IAAIiB,EAAqBhla,KAAK2ka,UAAUhia,EAAM,CAC1CkZ,MAAOA,EACPuX,IAAKA,GACN,SACC,IAAW4xY,EACXxka,EAAE6G,iBAEFrH,KAAK+ja,aAAeiB,MA1BxB,CACI,IAAI5oG,EAAwBz5T,EAAKwD,QAAQm0O,GACrCt6O,KAAKila,gBAAgB7oG,EAAwB,KAC7Cp8T,KAAK4ka,WAAWC,EAAc,GAAK,GACnCrka,EAAE6G,qBAyBd69Z,iBAAkB,WAGd,OAAQ,IAFKlla,KAAKigY,oBACWv3U,QAAQ,WAAY,IACnBviD,QAAQ,MAE1Cg/Z,OAAQ,SAASxia,EAAMm2B,GACnB,IAAIssY,EAAepla,KAAK6kB,OAAO,UAC3BwgZ,GAAiBnqV,EAAAA,EAAAA,IAAWkqV,EAAa7xU,QACzCA,EAAS8xU,EAAiBD,EAAa7xU,OAAS9Z,EAAAA,QAAAA,MAChD6rV,EAAwB,EAC5B,IAAKD,EAAgB,CACjB,IAAIE,EAAmBlI,EAAsBvkY,GAAQj4B,MACjD2ka,EAAiBxla,KAAKmja,uBAAuBxga,GAC7C8ia,GAA2B,IAAMF,EAAmBA,EAAmBzsY,EAAOx4B,OAC9Eola,GAAyB,IAAMF,EAAiBA,EAAiB7ia,EAAKrC,OACtEola,EAAwBD,IAA4B,IAAM3sY,EAAO3yB,QAAQ,OACzEm/Z,EAAwBI,EAAwBD,GAIxD,OAAOlyU,EADP5wF,EAAOA,EAAKgO,OAAO20Z,GACCxsY,IAExBw3R,QAAS,SAAS1uT,EAAOk3B,GACrB,IAAIssY,EAAepla,KAAK6kB,OAAO,UAC3B8gZ,GAAmB,OAASP,QAAgB,IAAWA,OAAe,EAASA,EAAa70G,YAAc60G,EAC1G70G,GAAYr1O,EAAAA,EAAAA,IAAWyqV,GAAmBA,EAAkBlsV,EAAAA,QAAAA,OAEhE,OADqB,OAAS73E,EAAQ,GAAK2uT,EAAU3uT,EAAOk3B,IAGhEmnW,kBAAmB,WAIf,OAHKjgY,KAAK4la,gBACN5la,KAAK6la,gBAEF7la,KAAK4la,gBAEhBC,cAAe,WAAW,WAClB/sY,EAAS94B,KAAK6kB,OAAO,UACrBwgZ,GAAiBnqV,EAAAA,EAAAA,IAAW,OAASpiD,QAAU,IAAWA,OAAS,EAASA,EAAOy6D,QACnF4sS,GAAgB71K,EAAAA,EAAAA,IAASxxL,KAAYA,EAAO3yB,QAAQ,MAAQ,GAAK2yB,EAAO3yB,QAAQ,MAAQ,GACxF2/Z,EAAsB,gBAAkBhtY,GAAU,iBAAmB,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAOnV,MAC5HoiZ,EAAsBV,GAAkBllC,GAAiB2lC,EAC7D9la,KAAK4la,eAAiBG,EAAsBjtY,GAASktY,EAAAA,EAAAA,IAAc,SAAApka,GAC/D,IAAIe,EAAO,EAAK2tT,QAAQ1uT,EAAOk3B,GAC/B,OAAO2gD,EAAAA,QAAAA,cAAqB92E,GAAM,OAG1Csja,kBAAmB,SAAStja,GACxB,IAAIm2B,EAAS94B,KAAKigY,oBAClB,IAAI31K,EAAAA,EAAAA,IAASxxL,GAAS,CAClB,IAAIohS,EAAYphS,EAAOrrB,MAAM,KACzB+lD,EAAOimB,EAAAA,QAAAA,QAAe92E,EAAMm2B,GAEhC,OADAohS,EAAU,GAAKA,EAAU,IAAM,IAAMA,EAAU,GACxC1mQ,EAAO,EAAI0mQ,EAAU,GAAKA,EAAU,GAG3C,OADYzgP,EAAAA,QAAAA,QAAe92E,GACZ,EAAI,IAAM,IAGjCuja,aAAc,SAASvja,EAAMwja,GACzB,IAAIrtY,EAAS94B,KAAKima,kBAAkBtja,GAChC43O,EAAqB9gK,EAAAA,QAAAA,wBACrB2sV,EAAQpma,KAAKqma,UAAUvtY,GACvBjqB,EAASlM,EACb,GAAIyja,EAAM9la,OAAQ,CACd,IAAIgma,EAAcF,EAAM,GACpBG,EAAe,IAAIv9W,OAAO,KAAMm0E,EAAAA,EAAAA,cAAaipS,EAAM,IAAM,IAAM,KAAM,KACrEI,EAAkB,IAAIx9W,OAAO,MAAOm0E,EAAAA,EAAAA,cAAagpS,EAAe,GAAK5rL,GAAsB,IAAK,KACpG1rO,EAASA,EAAO65C,QAAQ49W,EAAa,IAAI59W,QAAQ69W,EAAc,IAAI79W,QAAQ89W,EAAiB,IAEhG,OAAO33Z,GAEXw3Z,UAAW,SAASvtY,GAChB,IAAIu/R,EAAe,iBAAiB9pT,KAAKuqB,GACrCk8E,EAAUqjN,GAAgBA,EAAa,GAAGz3R,OAC9C,OAAO9H,EAAOrrB,MAAMunG,GAAS9uG,KAAK,SAASuga,GACvC,OAAOA,EAAK/9W,QAAQ,KAAM,QAGlCg+W,qBAAsB,SAAS9ka,EAAOypH,GAClC,IAAI1iE,EAAAA,EAAAA,IAAU/mD,GAAQ,CAClB,IAAI+ka,EAAW/ka,EAAM6M,WACjB2tT,EAAwBuqG,EAASxga,QAAQ,KAC7C,GAAIwga,GAAYvqG,GAAyB,EAAG,CACxC,IAAIvuD,EAAcl4N,WAAWgxX,EAASh2Z,OAAO,EAAGyrT,EAAwB/wM,EAAe,IACvF,OAAO7hF,MAAMqkO,GAAejsQ,EAAQisQ,GAG5C,OAAOjsQ,GAEX+ia,UAAW,SAAShia,EAAM8lB,EAAW4yE,GACjC,IAAIurU,EAAa5ma,KAAK4iY,qBAAqBjgY,EAAM8lB,EAAW4yE,GACxDviE,EAAS94B,KAAKigY,oBACd4mC,EAAiBp+Y,EAAU5M,QAAU4M,EAAU2K,IAC/Cy6O,EAAc7tQ,KAAK8ma,gBAAgBF,EAAY9tY,GAC/CuyF,GAAgBvyF,EAAOy6D,QAAUvzF,KAAK+ma,oBAAoBH,GAAYhhZ,IACtEs3W,EAAiBrvH,IAAgB7tQ,KAAK+ja,aAEtCiD,EAA2B3rU,IADR5hB,EAAAA,QAAAA,uBACqC,IAAM4xC,EAC9D47S,GAA2BJ,IAAmB3pC,GAvT9C,MAuTgE7hS,IAAmBr7F,KAAK+ha,mBAAmB6E,IAAe5ma,KAAK+ka,QAAQ1pU,GAC3I,IAAI2rU,IAA4BC,IAG5B,KAAOjna,KAAKkma,aAAaU,KACzB/4J,EAAcloP,KAAK23B,IAAI,EAAIt9C,KAAK+ja,gBAEhCv6X,MAAMqkO,IAAV,CAGA,IL1U0BzjD,EAAUjyM,EK0UhCvW,EAAQ,OAASisQ,EAAc7tQ,KAAK+ja,aAAel2J,EAEvD,OADAA,EAAcxiJ,EAAerrH,KAAK0ma,qBAAqB9ka,EAAOypH,GAAgBwiJ,GACtE/0O,EAAOy6D,QAAUvzF,KAAKkla,oBL5UM/sZ,EK4U+CkzG,GL5UzD++F,EK4U4CyjD,KL3UvDtG,EAAAA,EAAAA,IAAOn9C,EAAW,IAAKjyM,IK2U6D01P,IAEvGi5J,gBAAiB,SAASnka,EAAMm2B,GAC5B,IAAI06B,EAAOimB,EAAAA,QAAAA,QAAe92E,GAAO,OAASm2B,QAAU,IAAWA,OAAS,EAASA,EAAOy3R,YAAcz3R,GAClGouY,EAAmBlna,KAAKkma,aAAavja,GAAM,GAC3CkrQ,EAAc7tQ,KAAKmla,OAAO+B,EAAkBpuY,GAC5CquY,EAAkBt5J,EAAc,GAAK,EAAI,EAE7C,OAD0B9oJ,EAAAA,EAAAA,IAAU8oJ,IAAgBr6M,IAAS2zW,EAAkB3zW,EAAOq6M,EAAcA,GAGxGk0J,mBAAoB,SAASp/Z,GACzB,IAAK3C,KAAKu+X,mBACN,OAAOv+X,KAAKuxN,SAAS5uN,GAEzB,IAAI4jX,EAAQvmX,KAAKggY,SACbh5N,EAAQvtF,EAAAA,QAAAA,sBACR0zF,EAAantK,KAAKmja,uBAAuBxga,GACzCyka,EAAiBj6P,GAAc,GAAKA,EAAao5M,EAAM1qW,MACvDwrZ,EAAYrna,KAAKkma,aAAavja,GAAM,GAAM8K,MAAMu5J,GACpD,IAAKogQ,GAAkB,IAAMC,EAAU/ma,OACnC,OAAO,EAEX,IAAIgna,EAAcD,EAAU,GAAG/ma,OAE3B+ka,IADSrla,KAAKigY,oBACY1sS,OAC1Bp7E,GAAaktZ,GAAkBrla,KAAK+ma,oBAAoB/ma,KAAKigY,oBAAqBt9X,GAClF4ka,IAAqBlC,IAAwBhyJ,EAAAA,EAAAA,IAAQi0J,EAAanvZ,EAAU2N,IAAK3N,EAAUyN,KAC3F4hZ,EAAe,MAAQH,EAAU,GAAGniV,OAAOoiV,EAAc,GAC7D,OAAOC,IAAuBC,IAAiBF,IAEnDrF,gBAAiB,SAASrga,GACtB,IAAIkkB,GAAM05O,EAAAA,EAAAA,eAAcx/P,KAAK6kB,OAAO,QAAQ,KACxCe,GAAM45O,EAAAA,EAAAA,eAAcx/P,KAAK6kB,OAAO,OAAQ,KAC5C,OAAOwuP,EAAAA,EAAAA,IAAQzxQ,EAAOkkB,EAAKF,IAE/B6hZ,cAAe,SAAS9ka,GACpB,IAAI8ha,EAAiBhrV,EAAAA,QAAAA,cAAqB92E,GAAM,GAC5Cwha,EJ5UqB,SAASxha,EAAM+ka,EAAWnhD,EAAOztV,GAC9DytV,EAAQ23C,EAAmB33C,EAAO,GAClC,IAAIv/M,EAAQvtF,EAAAA,QAAAA,sBACRkuV,EAsBR,SAAgChla,GAC5B,OAAO,IAAMA,EAAKrC,UAAYqC,EAAKgf,MAAM,iBAvBdimZ,CAAuBjla,GAC9Cyga,EAA+B/F,EAAsBvkY,GAAQ0kY,WAC7DqK,EAAgBF,EAAuB,EAAIlK,EAAiB96Z,EAAMqkK,EAAOo8P,GACzE0E,EAAmBrK,EAAiBiK,EAAW1gQ,EAAOo8P,GACtDiE,EAAY3J,EAAa/6Z,EAAMkla,GAC/BE,EAAiBrK,EAAagK,EAAWI,GAE7C,IADsB,IAAMD,GAAiBthD,EAAM1qW,MAAQgsZ,EACvC,CAChB,IAAIG,EAAgBzhD,EAAM1qW,MAAQgsZ,EAAgB,EAC9CI,EAAenK,EAA0BkK,EAAeX,EAAU,IAEtE,OAAOlJ,EADW4J,EAAe,GAAKD,EAAmB,EAAI9J,EAAyBiK,EAAcF,EAAe,IAAM,EAAIL,EAAUpna,OAC9Fona,EAAW5uY,GAEpD,IAAIovY,EA/BsB,SAASvla,GACvC,OAAOA,EAAK+lD,QAAQ,YAAa,IA8BNy/W,CAA4BJ,EAAe,IAC9DK,EAAkBf,EAAU,GAAG/ma,OAASimX,EAAM1qW,MAC9CwsZ,EAAgBvK,EAA0BsK,EAAiBrK,EAAasJ,EAAU,KAClFiB,EAAqBtK,EAAyBqK,EAAetK,EAAamK,IAE9E,OAAO/J,EADoB+J,EAAiB5na,QAAUgoa,EAAqB,GACzBZ,EAAW5uY,GIuT9CyvY,CAAoBvoa,KAAKwja,eAAgBiB,EAAgBzka,KAAKggY,SAAUhgY,KAAKigY,qBAC5FjgY,KAAK63F,SAAS9zE,IAAIphB,GAClB3C,KAAKkpY,+BACLlpY,KAAKwoa,gBAAkB7la,EAClB3C,KAAK0ja,iBACN1ja,KAAKggY,OAAOmkC,IAGpB5lC,iBAAkB,WACd,QAASv+X,KAAK6kB,OAAO,WAAa7kB,KAAK6kB,OAAO,oBAElD4jZ,iBAAkB,WACd,IAAIC,EAAe,WAAa1oa,KAAK6kB,OAAO,QACxCi4N,EAAY,YAAc3U,EAAAA,QAAAA,OAAeC,WACzCpoO,KAAKu+X,oBAAsBmqC,EAC3B1oa,KAAK2oa,cAAc7rL,GAAa98O,KAAKkga,sBAAwB,OAAS,OAEtElga,KAAKuxN,YAGbq3M,QAAS,SAASpqV,GACd,OAAO8rI,EAAAA,EAAAA,IAAS9rI,IAAQ,IAAMA,EAAIl+E,QAEtCska,WAAY,SAASr5Z,GACjB,GAAKA,EAAL,CAGA,IACIs9Z,EAAgB1K,EADLD,EAAmBl+Z,KAAKggY,SAAUz0X,GACEvL,KAAKwja,eAAgBxja,KAAKigY,qBAC7EjgY,KAAKggY,OAAO6oC,KAEhBrE,iBAAkB,SAAShka,GACvB,IAAIgoS,GAAUC,EAAAA,EAAAA,kBAAiBjoS,GAC3Bsoa,GAAgBrpH,EAAAA,EAAAA,qBAAoBj/S,IAAMA,EAAE6c,QAAU7c,EAAE2C,WAAanD,KAAK4oa,QAAQpgI,GAClFugI,EAAavgI,IAAYm6H,EAE7B,OADsB3ia,KAAKu+X,qBACAuqC,IAAkBC,GAEjDx4D,aAAc,WACVvwW,KAAKuxN,WACLvxN,KAAKgpa,oBAETA,iBAAkB,WACdhpa,KAAKgkR,cACLhkR,KAAKipa,yBACDjpa,KAAKu+X,oBACLv+X,KAAKkpa,0BAGbD,uBAAwB,WACpBtzM,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU,uBAEpCsxU,kBAAmB,SAAS3oa,GACxB,IAAIk0I,EAAYl0I,EAAE43G,eAAiB53G,EAAE43G,cAAcs8B,UACnD,OAAI/rF,EAAAA,EAAAA,IAAU+rF,GACH,oBAAsBA,EAEtB10I,KAAKopa,gBAGpBF,uBAAwB,WACpB,IAAInxT,EAAS/3G,KAAK63F,SAClB89H,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cApad,QAoawCs0M,GAA6B,SAASlia,GACpFR,KAAKqpa,aAAa7oa,GAClBR,KAAKopa,gBAAiB,GACxB3+Z,KAAKzK,OACP21N,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cAAa,UAAWs0M,GAA6B,WACpE1ia,KAAKuja,gBACNvja,KAAKuja,cAAgB1ga,WAAW,WAC5B7C,KAAKuja,mBAAgB,EACrBvja,KAAKggY,OAAOm+B,EAAqBn+Z,KAAKggY,SAAUhgY,KAAKwja,eAAgBxja,KAAKigY,uBAC5Ex1X,KAAKzK,MA5aM,KA8anByK,KAAKzK,OACP21N,EAAAA,EAAAA,GAAgB59G,EAAQ,aAAc,WAClC/3G,KAAKsja,qBACP74Z,KAAKzK,QAEXsja,kBAAmB,WACfplY,aAAal+B,KAAKuja,eAClBvja,KAAKuja,mBAAgB,GAEzB/B,wBAAyB,WACrB,IAAKxha,KAAKu+X,mBACN,OAAOv+X,KAAKuxN,YAGpB0zM,gBAAiB,SAASpka,GACtB,IAAI8B,EAAO3C,KAAKwja,eAAe/9Z,MAAM5E,GACrC,OAAO8B,IAAS3C,KAAK+ka,QAAQpia,GAAM,IAEvCoia,QAAS,SAASvmV,EAAK8rI,GACnB,IAAIg/M,GAA0BnsS,EAAAA,EAAAA,cAAa1jD,EAAAA,QAAAA,uBAG3C,OADiB,IAAIzwB,OADF,SAAWsgX,EAA0B,MACd,KACxBpmY,KAAKs7C,KAAS8rI,GAAYtqN,KAAK4oa,QAAQpqV,KAE7DkjV,YAAa,SAAS/+Z,GAClB,OAAK3C,KAAKu+X,mBAGHv+X,KAAK+ja,aAFD/ja,KAAKuxN,SAAS5uN,IAI7Boka,oBAAqB,SAASpka,GAC1B,IAAIwsX,EAAgBnvX,KAAKima,kBAAkBtja,GACvC4ma,EAAqBlM,EAAsBluC,GAAetuX,MAC1D2oa,GAAa9L,EAAavuC,EAAeo6C,GAAoB,IAAM,IAAI7gX,QAAQ,SAAU,IAG7F,MAAO,CACH5iC,IAHe0jZ,EAAU9gX,QAAQ,UAAW,MAAMpoD,OAIlDslB,IAHe4jZ,EAAUlpa,SAMjCyia,YAAa,SAASvia,GAClB,GAAKR,KAAKu+X,mBAAV,CAGA,IAAIhY,EAAQvmX,KAAKggY,SACjB,GAAIzZ,EAAM1qW,QAAU0qW,EAAMnzV,IAAK,CAC3B,IAAIq1Q,EAAAA,EAAAA,kBAAiBjoS,KAAOmia,EAExB,YADA3ia,KAAKypa,mBAAmBjpa,EAAG+lX,GAAO,GAGlCvmX,KAAKggY,OAAOm+B,EAAqB,EAAGn+Z,KAAKwja,eAAgBxja,KAAKigY,sBAGtEjgY,KAAKypa,mBAAmBjpa,EAAG+lX,KAE/BkjD,mBAAoB,SAASjpa,EAAG+lX,EAAOmjD,GACnC,IAAInjZ,GAAY,GAAIi5O,EAAAA,EAAAA,eAAcx/P,KAAK+ja,aAAc,MACrD,IAAI/ja,KAAKiia,gBAAgB17Y,IAAa,IAAMA,KACxCvmB,KAAK+ja,aAAex9Y,EAChBmjZ,GAAsB,CACtB,IAAI5wY,EAAS94B,KAAKigY,oBACd0pC,EAAe3pa,KAAKwja,eACxBxja,KAAK8ja,wBACLtja,EAAE6G,iBACF,IAAIuia,EAAc5pa,KAAKwja,eACnBj4Z,EJ7aQ,SAASo+Z,EAAcvoZ,EAAS0X,GACxD,IAAI+wY,EAAqBlM,EAAmBgM,EAAc7wY,GAE1D,OADoB6kY,EAAmBv8Y,EAAS0X,GAC3Bjd,MAAQguZ,EAAmBhuZ,MI0avBiuZ,CAAeH,EAAcC,EAAa9wY,GAEnDixY,EAAoB5L,EADxB53C,EAAQ23C,EAAmB33C,EAAOh7W,GACkBq+Z,EAAa9wY,GACjE94B,KAAKggY,OAAO+pC,KAIxBC,qBAAsB,SAASrna,EAAM4jX,GAEjC,OADqBvmX,KAAKuka,eAAiB5B,GA3fvC,MA2foDhga,EAAKuiF,OAAOqhS,EAAM1qW,MAAQ,GAC1D7b,KAAK4iY,qBAAqBjgY,EAAM,CACpDkZ,MAAO0qW,EAAM1qW,MAAQ,EACrBuX,IAAKmzV,EAAM1qW,OACZ,IAAMlZ,GAEbmha,sBAAuB,WACnB,IAAIhrY,EAAS94B,KAAKigY,oBACdh0K,EAASjsN,KAAK0ha,cACdgG,EAAY1na,KAAKswT,QAAQrkG,EAAQnzL,IAAW,GAChD94B,KAAKyna,cAAcC,IAEvB2B,aAAc,SAAS7oa,GACnB,IAAIika,EAAiBzka,KAAKwja,eACtBj9C,EAAQvmX,KAAKggY,SACbiqC,EAAmBjqa,KAAKgqa,qBAAqBvF,EAAgBl+C,GAC7D2jD,EAAkBD,IAAqBxF,EAE3C,GADAA,EAAiBwF,GACZjqa,KAAKmpa,kBAAkB3oa,IAAMR,KAAK+ha,mBAAmBkI,GAKtD,OAJAjqa,KAAKwoa,gBAAkB/D,OACnByF,GACAlqa,KAAK8ja,yBAKb,GADqBrqV,EAAAA,QAAAA,cAAqBz5E,KAAKwoa,iBAAiB,KAAU/D,EACtD,CAChB,IAAI7ia,EAAQ5B,KAAK2ka,UAAUF,EAAgBl+C,EAAO,KAC9C59T,EAAAA,EAAAA,IAAU/mD,KACV5B,KAAK+ja,aAAenia,GAG5B5B,KAAK8ja,yBAETr9Y,mBAAoB,WACZzmB,KAAKu+X,mBACLv+X,KAAKkpY,+BAELlpY,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAGlCu4U,aAAc,WAKV,OAJItgV,KAAKu+X,qBACLv+X,KAAK+ja,aAAe/ja,KAAK6kB,OAAO,SAChC7kB,KAAK8ja,yBAEF9ja,KAAKuxN,YAEhBqyM,mBAAoB,WAChB,IAAIrD,EAAavga,KAAKwja,eACtBxja,KAAK+ja,aAAe/ja,KAAK2ka,UAAUpE,EAAYvga,KAAKggY,WAExD6jC,mBAAoB,WAChB,GAAK7ja,KAAKu+X,mBAAV,CAGA,IACI1wH,EADc7tQ,KAAKkma,aAAalma,KAAKwja,gBACTxja,KAAK0ha,cAAgB,MAChD38S,EAAAA,EAAAA,IAAU8oJ,GAIf7tQ,KAAK+ja,cAAe7wJ,EAAAA,EAAAA,IAAarF,EAAa7tQ,KAAK6kB,OAAO,OAAQ7kB,KAAK6kB,OAAO,QAH1E7kB,KAAK+ja,aAAel2J,IAK5B8iG,yBAA0B,SAASnwW,GAC/B,IAAKR,KAAKu+X,mBACN,OAAOv+X,KAAKuxN,SAAS/wN,GAEzB,IAAI+lX,EAAQvmX,KAAKggY,SACjBhgY,KAAK0rV,sBAAsBlrV,GAC3BR,KAAKska,SAAW,KAChBtka,KAAKuka,aAAe,KACpBvka,KAAK4ja,qBACL5ja,KAAK6ja,qBACL7ja,KAAK6kB,OAAO,QAAS7kB,KAAK+ja,cACtBx9C,GACAvmX,KAAKggY,OAAOzZ,IAGpBrqJ,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,SACL,IAAK,kBACDxN,KAAKyoa,mBACLzoa,KAAK6la,gBACL7la,KAAKgpa,mBACLhpa,KAAKsgV,eACLtgV,KAAK+oY,2BACL/oY,KAAKgpY,iBACL,MACJ,IAAK,MACL,IAAK,MACDhpY,KAAK6ja,qBACL7ja,KAAKuxN,SAAS/qM,GACd,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1Bw9P,YAAa,kBACFhkR,KAAKwoa,uBACLxoa,KAAKska,gBACLtka,KAAKuka,oBACLvka,KAAK+ja,oBACL/ja,KAAK0ja,gBACZxlY,aAAal+B,KAAKuja,sBACXvja,KAAKuja,eAEhBh4K,OAAQ,WACJvrP,KAAKgkR,cACLhkR,KAAKuxN,cAGb,KCzpBAjxM,EAAAA,EAAAA,SAAkB,cAAesiZ,GACjC,ICFA,EDEA,oMEiBIn9Y,GAASwoM,EAAAA,EAAAA,MACTk8M,EAA2B,CAC3BrxZ,IAAK,CACD4mD,GAAI,aACJC,GAAI,cAER3hD,OAAQ,CACJ0hD,GAAI,gBACJC,GAAI,iBAER5hD,MAAO,CACH2hD,GAAI,eACJC,GAAI,gBAERjnD,KAAM,CACFgnD,GAAI,cACJC,GAAI,eAERr8C,OAAQ,CACJo8C,GAAI,SACJC,GAAI,UAER,eAAgB,CACZD,GAAI,eACJC,GAAI,gBAER,YAAa,CACTD,GAAI,YACJC,GAAI,aAER,cAAe,CACXD,GAAI,cACJC,GAAI,eAER,WAAY,CACRD,GAAI,WACJC,GAAI,aAGRyqW,EAAkC,CAClC5gR,EAAG,EACH3iG,EAAG,GAEDwjX,EAAAA,WACF,WAAYrjL,IAAM,eACd,IACc7gO,EAUV6gO,EAVA7gO,SACWrG,EASXknO,EATAlnO,UACiB21T,EAQjBzuF,EARAyuF,gBACO16T,EAOPisO,EAPAjsO,MACU4e,EAMVqtN,EANArtN,SACUw7L,EAKV6xB,EALA7xB,SACc01K,EAId7jJ,EAJA6jJ,aACyBy/B,EAGzBtjL,EAHAsjL,wBACiBC,EAEjBvjL,EAFAujL,gBACqBC,EACrBxjL,EADAwjL,oBAEJxqa,KAAKgqU,OAAS,CACV7jT,SAAUA,EACVrG,UAAWA,EACX21T,gBAAiBA,EACjB80F,gBAAiBA,EACjB1/B,aAAcA,EACdy/B,wBAAyBA,EACzBE,oBAAqBA,GAEzBxqa,KAAKyqa,OAAS1vZ,EACd/a,KAAKk1N,UAAYv7L,EACjB35B,KAAKsvX,UAAYn6J,EACjBn1N,KAAK0qa,uBAAoB,EACzB1qa,KAAK2qa,uBAAoB,EACzB3qa,KAAK4qa,qCAAsC,EAC3C5qa,KAAK6qa,qBAAkB,EACvB7qa,KAAK8qa,sBAAmB,EACxB9qa,KAAK+qa,6BAA0B,EAC/B/qa,KAAKgra,gBAAgBlrZ,GACrB9f,KAAKytD,eAAetnC,GACpBnmB,KAAKira,sBAAsBx1F,0CAE/B,WAEI,OADAz1U,KAAKgra,kBACEhra,KAAK0qa,gDAEhB,WACI,OAAO1qa,KAAK2qa,wCAEhB,WACI,OAAO3qa,KAAKutD,0CAEhB,SAAuB29W,GACnBlra,KAAKgqU,OAAOwgG,oBAAsBU,EAClClra,KAAKmra,oDAET,SAAoBZ,GAChBvqa,KAAKgqU,OAAOugG,gBAAkBA,6CAElC,SAA4B3oa,GACxB5B,KAAK4qa,oCAAsChpa,IAAU5B,KAAK6qa,8CAE9D,WACI,IAAIO,EAAwBpra,KAAKgqU,OAAOugG,gBACxCvqa,KAAKqra,4BAA4BD,iCAErC,SAAeE,GACXtra,KAAKgqU,OAAO7jT,SAAWmlZ,EACvBtra,KAAKutD,UAAYvtD,KAAKura,mBAAmBD,GACzCtra,KAAKira,uDAET,WACI,IAAIO,EAAgBzja,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKgqU,OAAOlqT,UACjG9f,KAAKgqU,OAAOlqT,UAAY0rZ,EACxBxra,KAAK0qa,kBAAoBc,GAAgB99Z,EAAAA,EAAAA,GAAE89Z,GAAiBC,EAAAA,EAAAA,mBAA0Bzra,KAAKyqa,QAC3Fzqa,KAAKira,sBAAsBjra,KAAKgqU,OAAOyL,sDAE3C,WACI,IAAIA,EAAkB1tU,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKgqU,OAAOyL,gBACnGz1U,KAAKgqU,OAAOyL,gBAAkBA,EAC9Bz1U,KAAK2qa,kBAAoB3qa,KAAK0ra,gEAElC,SAA2BlxZ,GACvBxa,KAAK2ra,6BACL3ra,KAAK4ra,uBAAuBpxZ,kCAEhC,WACQxa,KAAK4qa,oCACL5qa,KAAK6ra,kCAEL5vX,EAAAA,EAAAA,IAAKj8C,KAAKk1N,UAAWl1N,KAAK6qa,iBAC1B7qa,KAAK8ra,6DAGb,WACQ9ra,KAAK2qa,mBACL1xM,EAAAA,EAAAA,MAAoBj5N,KAAKsvX,UAAW,CAChC5vT,GAAI,WACJC,GAAI,WACJF,GAAIz/D,KAAK2qa,wDAIrB,WACI,IACIoB,GADW9wV,EAAAA,EAAAA,IAASj7E,KAAKgsa,iBAAiBnsZ,IAAI,KAAO7f,KAAKgqU,OAAOwgG,oBACtC,QAAU,WACzCxqa,KAAKsvX,UAAUj0W,IAAI,WAAY0wZ,6CAEnC,WACI/ra,KAAK+qa,wBAA0B/qa,KAAK6qa,gBACpC7qa,KAAK6qa,iBAAkBv2M,EAAAA,EAAAA,IAAOt0N,KAAKk1N,wDAEvC,WACIl1N,KAAKisa,yBACLriM,EAAAA,EAAAA,IAAc5pO,KAAKk1N,WACnB,IAAIg3M,EAAkBlsa,KAAKsvX,UAAUj0W,IAAI,YACzCrb,KAAKsvX,UAAUj0W,IAAI,WAAY,UAC/B,IAAI+oY,EAAiBnrL,EAAAA,EAAAA,MAAoBj5N,KAAKk1N,UAAWl1N,KAAKutD,WAC9DvtD,KAAKsvX,UAAUj0W,IAAI,WAAY6wZ,GAC/Blsa,KAAK8qa,iBAAmB1mB,EACxBpkZ,KAAK8ra,mEAET,SAAuBtxZ,GACnB,IAAI47K,EAAmBp2L,KAAK+qa,wBACxBoB,EAAcnsa,KAAK6qa,kBACQ,OAASz0O,QAAoB,IAAWA,OAAmB,EAASA,EAAiBt9K,OAASqzZ,EAAYrzZ,MAAQ,OAASs9K,QAAoB,IAAWA,OAAmB,EAASA,EAAiB19K,QAAUyzZ,EAAYzzZ,OAExP1Y,KAAKgqU,OAAOsgG,wBAAwB,CAChCl0O,iBAAkBA,EAClBjwK,SAAUgmZ,EACV3xZ,MAAOA,IAGfxa,KAAKgqU,OAAO6gE,aAAa,CACrB1kX,SAAUnmB,KAAK8qa,wDAGvB,WACI,IAAIsB,EACAjnZ,EAAiB,QAAUinZ,EAAkBpsa,KAAKutD,iBAAc,IAAW6+W,EAAkBA,EAAkB,CAC/GjnZ,eAAgBilZ,GAEpBpqa,KAAKk1N,UAAU75M,IAAI,SAAU,GAAGugB,OAAOzW,EAAe0hC,EAAG,OAAOjrB,OAAOzW,EAAeqkI,EAAG,0CAE7F,WACI,IAAI6iR,EAAuBC,EACvBd,EAAgBxra,KAAKgqU,OAAOlqT,UAC5BysZ,EAAsBvsa,KAAKgqU,OAAOyL,gBAClC+2F,GAAalqJ,EAAAA,EAAAA,IAAQ,QAAU+pJ,EAAwBrsa,KAAKgqU,OAAO7jT,gBAAa,IAAWkmZ,OAAwB,EAASA,EAAsB5sW,IAAMz/D,KAAKgqU,OAAO7jT,SAASs5C,GAAG74D,OAAS,QAAU0la,EAAyBtsa,KAAKgqU,OAAO7jT,gBAAa,IAAWmmZ,OAAyB,EAASA,EAAuB7sW,GAC7T,OAAI8sW,GACO7+Z,EAAAA,EAAAA,GAAE6+Z,GAETf,GACO99Z,EAAAA,EAAAA,GAAE89Z,GAETgB,GACO9+Z,EAAAA,EAAAA,GAAE8+Z,IAEN9+Z,EAAAA,EAAAA,GAAE+X,qCAEb,SAAmB6lZ,GACf,IAAImB,EAAwB,CACxBtnZ,eAAgBilZ,GAEpB,OAAIzhX,EAAAA,EAAAA,IAAU2iX,IACHxia,EAAAA,EAAAA,IAAO,EAAM,GAAI2ja,EAAuBzsa,KAAK0sa,kBAAkBpB,IAE/DmB,mCAGf,SAAkBtmZ,GACd,OAAImkM,EAAAA,EAAAA,IAASnkM,IACFrd,EAAAA,EAAAA,GAAO,GAAIqha,EAAyBhkZ,IAExCA,QAxKTkkZ,sWC/DKsC,EAAe,WACtB,IAAIj8Y,EAAY,GAChB,MAAO,CACHpvB,IAAK,SAASktD,GACL99B,EAAUorG,SAASttE,IACpB99B,EAAU9vB,KAAK4tD,IAGvBhtD,OAAQ,SAASgtD,GACb,IAAIo+W,EAAkBl8Y,EAAUvqB,QAAQqoD,IACnC,IAAMo+W,GACPl8Y,EAAUnhB,OAAOq9Z,EAAiB,IAG1C7uL,KAAM,WACF,IAAIvvL,EAAW99B,EAAU0nB,MACrBvpC,IAAW2/C,EAIf,OAHI3/C,GACA2/C,IAEG3/C,GAEXg+Z,YAAa,WACT,OAAOn8Y,EAAUpwB,OAAS,IAvBZ,0DC8EtBuiR,EAAQnlC,EAAAA,EAAAA,IACRj4N,GAASwoM,EAAAA,EAAAA,MACT6+M,EAAkBptL,EAAAA,GAKlBqtL,EAAsB,mBACtBC,EAAwB,qBAGxBC,EAAgB,GAChBC,EAAiC,8BAErCrqJ,GAAM,WACFltD,EAAAA,EAAAA,gBAA6BiE,EAAAA,EAAAA,cAA0B/3L,EAAAA,EAAAA,MAAoB,SAAArhC,GACvE,IAAK,IAAIuL,EAAIkha,EAAc3sa,OAAS,EAAGyL,GAAK,EAAGA,IAC3C,IAAKkha,EAAclha,GAAGoha,4BAA4B3sa,GAC9C,aAKhB,IAAI07W,EAAUp6D,EAAAA,QAAAA,QAAe,CACzBwoC,eAAgB,WACZ,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BzlF,OAAQ,WACJ9rI,KAAKkqE,WAIjBuoJ,mBAAoB,WAAW,WAC3B,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B87G,oBAAoB,EACpBxkU,SAAS,EACTu0W,gBAAgB,EAChBniI,SAAS,EACTi4K,aAAc,GACdka,YAAa,GACbjnZ,UAAUrd,EAAAA,EAAAA,GAAO,GAAIqha,EAAAA,EAAAA,QACrB74Z,MAAO,OACPmN,SAAU,KACVO,SAAU,KACVzN,OAAQ,OACRqN,UAAW,KACX8G,UAAW,KACX4+M,UAAW,CACP9iL,KAAM,CACF79B,KAAM,MACN67M,SAAU,IACVr2N,KAAM,CACFm4N,MAAO,MAGfp3J,KAAM,CACFvmD,KAAM,MACN67M,SAAU,IACVr2N,KAAM,CACF+nI,QAAS,EACTowF,MAAO,GAEXtgK,GAAI,CACAkwE,QAAS,EACTowF,MAAO,OAInB+4I,qBAAqB,EACrB/zV,oBAAoB,EACpB+mZ,0BAA0B,EAC1BC,4CAA4C,EAC5CC,+BAA+B,EAC/BviC,uCAAuC,EACvCl6W,UAAW,KACXE,QAAS,KACTD,SAAU,KACV+oV,SAAU,KACV1zV,gBAAiB,UACjB42V,cAAc,EACdutD,iBAAiB,EACjBzqZ,eAAW,EACX21T,qBAAiB,EACjBu9E,sBAAuB,WACnB,EAAK9oV,QAETizS,oBAAoB,EACpB81C,qBAAqB,EACrBpoB,aAAc,KACd3tB,uBAAuB,EACvBswD,mBAAmB,EACnBC,wBAAwB,EACxBjD,qBAAqB,KAG7B5nL,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,QAAQ9hB,EAAAA,EAAAA,OAEZliN,QAAS,CACL9I,MAAO,KACPC,OAAQ,KACR+yN,UAAW,KACXmpM,wBAAwB,OAIpCt6M,uBAAwB,WACpBnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BkR,WAAW,KAGnBnP,SAAU,WACN,OAAOn1N,KAAKsvX,WAEhBo+C,oBAAqB,WACjB,OAAO1ta,KAAKk1N,WAEhBotB,sBAhGyB,WAiGrBtiP,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKuiP,mBAAoB,CAC5B83H,oBAAqB,CACjB71H,MAAO,OACPjjM,MAAO,yBAInBqiF,KAAM,SAAS9jI,EAASsa,GACpBpa,KAAKuxN,SAASzxN,EAASsa,GACnBA,IACIA,EAAQizZ,2BAA6BjzZ,EAAQkzZ,4CAC7Ctta,KAAK8jP,4BAA4B,2BAA4B,CACzDU,MAAO,OACP/4M,QAAS,yCAGbrxB,EAAQmvO,cAAgBnvO,EAAQmzZ,+BAChCvta,KAAK8jP,4BAA4B,cAAe,CAC5CU,MAAO,OACP/4M,QAAS,yCAGb,wBAAyBrxB,IAAYA,EAAQ4wX,uCAC7ChrY,KAAK2ta,0CAIjBA,sCA7HyB,WA8HrB3ta,KAAK8jP,4BAA4B,sBAAuB,CACpDU,MAAO,OACP/4M,QAAS,2EAGjB+mC,MAAO,WAAW,WACdxyE,KAAKuxN,WACLvxN,KAAK+9U,eACL/9U,KAAK4ta,iCACL5ta,KAAK6ta,4BACL7ta,KAAK8ta,oBAAsB,KAC3B9ta,KAAKsvX,WAAY5hX,EAAAA,EAAAA,GAAE,SAAS+R,SA5JR,sBA6JpBzf,KAAKk1N,WAAYxnN,EAAAA,EAAAA,GAAE,SAAS+R,SA5JR,sBA6JpBzf,KAAK+ta,yBACL,IAAIl0Z,EAAW7Z,KAAK6Z,WAChB7Z,KAAK6kB,OAAO,6BACZ7kB,KAAKsvX,UAAU7vW,SAAS5F,EAAS+F,KAAK,UAE1C/F,EAAS4F,SApKG,cAqKZzf,KAAKsvX,UAAU1vW,KAAK,YAAa,sCACjC5f,KAAKgua,6BAA4B,GACjChua,KAAKiua,2BAA2Bjua,KAAK6kB,OAAO,0BAC5C7kB,KAAKkua,+BAAiC,CAClC3ta,QAAS,SAAAC,GACL,EAAK2ta,4BAA4B3ta,KAGzCR,KAAKoua,0BAETA,uBA3JyB,YA4JjBlzV,EAAAA,EAAAA,IAAWl7E,KAAK6kB,OAAO,cACvBo9M,EAAAA,EAAAA,IAAW,UAGnB8rM,uBAAwB,WACpB/ta,KAAKk1N,UAAUsB,YAAYu2M,EAAqB/sa,KAAK6kB,OAAO,kBAEhEopZ,2BAA4B,SAAS1ta,GACjCP,KAAKqua,uBAAyB9ta,GAElC+ta,gBAAiB,WACb,MAAO,CAAC,YAAa,UAAW,WAAY,WAAY,eAAgB,4BAE5EvwF,aAAc,WAAW,WACrB/9U,KAAK64D,SAAW,GAChB,IAAIr4C,EAAUxgB,KAAKsua,mBACnB7zZ,EAAAA,EAAAA,IAAK+F,GAAS,SAAC9F,EAAG+F,GACd,EAAKo4C,SAASp4C,GAAU,EAAK+6M,sBAAsB/6M,EAAQ,CACvD42N,kBAAmB,CAAC,WAAY,eAC9BrlB,EAAAA,SAGd47M,+BAAgC,WAC5B,IAAIn5V,EAAQz0E,KACZA,KAAKmta,4BAA8B,WAC/B,OAAO14V,EAAM85V,qBAAN,MAAA95V,EAA8B1sE,aAG7C0iP,YAxLyB,WAyLrBzqP,KAAKuxN,WACLvxN,KAAKwua,2BACLxua,KAAKyua,2BAETF,qBAAsB,SAAS/ta,GACvBR,KAAK0ua,0BACL1ua,KAAK2ua,iBAET,IAAIC,GAAmBlha,EAAAA,EAAAA,GAAE+X,EAAOjjB,UAAUs3B,GAAGt5B,EAAEoG,UAAWmY,EAAAA,EAAAA,IAAS0G,EAAOjjB,SAAUhC,EAAEoG,QAClFioa,GAAiBnha,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAI6xB,OAAOmxY,IAAsBzsa,OAK1E,OAJmBsua,IAAqBC,KAAoB7ua,KAAKk1N,UAAUp7L,GAAGt5B,EAAEoG,UAAWmY,EAAAA,EAAAA,IAAS/e,KAAKk1N,UAAUr1M,IAAI,GAAIrf,EAAEoG,UACzG5G,KAAK09W,0BAA0Bl9W,IAC/CR,KAAK8ua,qBAAqBtua,GAEvBR,KAAK6kB,OAAO,0BAEvB64V,0BAA2B,SAASl9W,GAChC,IACwB8lB,EACpBtmB,KAAK6kB,SADLyB,mBAEJ,OAAI40D,EAAAA,EAAAA,IAAW50D,GACJA,EAAmB9lB,GAEvB8lB,GAEXwoZ,qBAlNyB,SAkNJtua,GACbR,KAAK6kB,OAAO,YACZrkB,EAAE6G,iBAENrH,KAAKkqE,QAETuxJ,0BAA2B,WACvB,MAvOsB,WAyO1BC,eAAgB,WACZ17N,KAAK27N,iBAAiBC,oBAAoB,CACtC96M,QAAS,IAAI+6M,EAAAA,IAEjB77N,KAAKuxN,YAETw9M,cAAe,WAEX,IADA,IAAIC,EAAehva,KAAKiva,gBACflja,EAAIija,EAAa1ua,OAAS,EAAGyL,GAAK,EAAGA,IAAK,CAC/C,IAAImja,EAAmBF,EAAajja,GAAGoja,sBACvC,GAAID,EAAiBllW,OAASklW,EAAiB5yS,KAC3C,OAAO0yS,EAAajja,KAAO/L,KAGnC,OAAO,GAEXiva,cAAe,WACX,OAAOhC,GAEXmC,iBAAkB,WACd,OAAOlzD,EAAQmzD,cAEnBrB,4BAA6B,SAAS54K,GAClC,IAAIk6K,EAAStva,KACb8sa,EAAgBtra,OAAOxB,KAAKuva,uBACxBn6K,IACAp1P,KAAKuva,sBAAwB,WACzBD,EAAOE,uBAAP,MAAAF,EAAiCvna,YAErC+ka,EAAgBxra,IAAItB,KAAKuva,yBAGjCC,uBAAwB,WACpBxva,KAAKyva,oBAAoBzE,gBAAgBhra,KAAK6kB,OAAO,cACrD7kB,KAAK4rP,YAET4iL,yBA/PyB,WAgQrB,IACiBpB,EACbpta,KAAK6kB,SADLuoZ,YAEA/jS,GAAavgI,EAAAA,EAAAA,GAAO,GAAIska,GACxBpgN,EAAa3jF,EAAW13G,aACrB03G,EAAW13G,MAClB3xB,KAAKm1N,WAAWv1M,KAAKypH,GAAYxxG,YAAY73B,KAAK8ta,qBAAqBruZ,SAASutM,GAChFhtN,KAAK8ta,oBAAsB9gN,GAE/B0iN,yBAA0B,SAAS7ma,GAE/B,OADA7I,KAAK2ua,iBACE9la,EAAU7I,KAAKy8W,QAAUz8W,KAAK+/W,SAEzC4vD,oBAAqB,WACjB,OAAO3va,KAAK4mP,gBAAgB,YAAa5mP,OAE7C4va,kBAAmB59M,EAAAA,KACnB69M,gBAAiB,WACb,IAAIC,EAAuBC,EAAsBC,EAAuBC,EAASjwa,KAC7EskO,EAAY,QAAUwrM,EAAwB9va,KAAK2va,6BAA0B,IAAWG,EAAwBA,EAAwB,GACxII,EAAgBlwa,KAAKmwa,oBAAoB7rM,EAAU9iL,KAAM,MACzD4uX,EAAqB,QAAUL,EAAuB,OAASG,QAAiB,IAAWA,OAAgB,EAASA,EAAcr0Z,aAAU,IAAWk0Z,EAAuBA,EAAuB/9M,EAAAA,KACrMq+M,EAAwB,QAAUL,EAAwB,OAASE,QAAiB,IAAWA,OAAgB,EAASA,EAAcjsM,gBAAa,IAAW+rM,EAAwBA,EAAwBh+M,EAAAA,KAClNhyN,KAAKs/W,SAAS4wD,GAAgB,WAC1B,IAAID,EAAOK,mBAAX,CAGIL,EAAOprZ,OAAO,sBACd8wM,EAAAA,EAAAA,QAAqBs6M,EAAOlnI,eAAgB,SAEhD,IAAK,IAAIhxD,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAE3Bq4L,EAAsB5va,KAAtB,MAAA4va,EAAqB,CAAMJ,GAAN,OAAiBzpZ,IACtCypZ,EAAOvB,0BAA2B,EAClCuB,EAAO7kL,WAAY,EACnB6kL,EAAOp3W,SAAS7nC,UAChBi/Y,EAAOM,yBACPN,EAAOO,iBAAiBpga,cACvB,WACD,IAAI6/Z,EAAOK,mBAAX,CAGA,IAAK,IAAInqL,EAAQp+O,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAM4gP,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAClF5/N,EAAK4/N,GAASr+O,UAAUq+O,GAE5BgqL,EAAmB3va,KAAnB,MAAA2va,EAAkB,CAAMH,GAAN,OAAiBzpZ,IACnCypZ,EAAOvB,0BAA2B,OAG1C+B,4BAA6B,SAASC,EAAWC,EAAeC,IACxDniK,EAAAA,EAAAA,IAAUiiK,GACVA,EAAUlyX,MAAK,SAAAqyX,GACPA,EACAD,IAEAD,OAELlxX,OAAM,kBAAMkxX,OAEfD,EAAYE,IAAmBD,KAGvCl0D,MAAO,WAAW,WAMd,GALAz8W,KAAKwwa,iBAAmB,IAAIh+M,EAAAA,GAC5BxyN,KAAK8wa,cAAgB9wa,KAAK+wa,kBAC1B/wa,KAAKwwa,iBAAiBp3Y,MAAK,kBAChB,EAAK03Y,iBAEZ9wa,KAAK8wa,cAEL,OADA9wa,KAAKorP,WAAY,EACVprP,KAAKwwa,iBAAiBpga,UAEjC,GAAIpQ,KAAKgxa,gBACL,OAAQ,IAAIx+M,EAAAA,IAAUpiN,UAAUI,UAGpC,GADAxQ,KAAKgxa,iBAAkB,EACnBhxa,KAAKixa,+BACEjxa,KAAKixa,wBACZjxa,KAAKwwa,iBAAiB9kY,aACnB,CACH,IAAI8V,EAAO,WACP,EAAKouX,kBAAkB,EAAK/qZ,OAAO,qBACnC,EAAK8pZ,iBACL,EAAK3yB,mBAAkB,GACvB,EAAK9mL,UAAU75M,IAAI,aAAc,UACjC,EAAK65M,UAAUsB,YAAYw2M,GAAuB,GAClD,EAAKkE,4BAA2B,GAChC,EAAKzB,oBAAoB0B,iBACzB,EAAK5yE,iBACL,IAAI6yE,EAAc,CACdrrY,QAAQ,GAEZ,EAAK8yB,SAAS/nC,UAAUsgZ,GACxB,EAAKX,4BAA4BW,EAAYrrY,QAAQ,WACjD,EAAKmvL,UAAU75M,IAAI,aAAc,IACjC,EAAKugW,mBAAkB,GACvB,EAAKi0D,qBACN,WACC,EAAK7zB,mBAAkB,GACvB,EAAK9mL,UAAU75M,IAAI,aAAc,IACjC,EAAK65M,UAAUsB,YAAYw2M,GAAuB,GAClD,EAAKqE,0BAA2B,EAChC,EAAKC,qBACL,EAAKzsZ,OAAO,WAAW,GACvB,EAAK2rZ,iBAAiBpga,cAG1BpQ,KAAK6kB,OAAO,kCACZ7kB,KAAKuxa,iBACLvxa,KAAKwxa,kBAAoB3ua,WAAW2+C,IAEpCA,IAGR,OAAOxhD,KAAKwwa,iBAAiBhga,WAEjC2/Z,oBAAqB,SAASsB,EAAgBp2R,GAY1C,OAXIo2R,IACAA,GAAiB3oa,EAAAA,EAAAA,GAAO,CACpB6a,KAAM,QACNy/M,0BAA0B,GAC3BquM,IACCtnN,EAAAA,EAAAA,IAASsnN,EAAep2R,MACxBvyI,EAAAA,EAAAA,GAAO2oa,EAAep2R,GAAY,CAC9Bl1H,SAAUnmB,KAAKyva,oBAAoBtpZ,YAIxCsrZ,GAEXC,eAAgB,WACZ,IAAIC,EAAwBC,EAAsBC,EAAuBC,EAAS9xa,KAC9EskO,EAAY,QAAUqtM,EAAyB3xa,KAAK2va,6BAA0B,IAAWgC,EAAyBA,EAAyB,GAC3II,EAAgB/xa,KAAKmwa,oBAAoB7rM,EAAUp6J,KAAM,QACzD8nW,EAAqB,QAAUJ,EAAuB,OAASG,QAAiB,IAAWA,OAAgB,EAASA,EAAcl2Z,aAAU,IAAW+1Z,EAAuBA,EAAuB5/M,EAAAA,KACrMigN,EAAwB,QAAUJ,EAAwB,OAASE,QAAiB,IAAWA,OAAgB,EAASA,EAAc9tM,gBAAa,IAAW4tM,EAAwBA,EAAwB7/M,EAAAA,KAClNhyN,KAAKs/W,SAASyyD,GAAgB,WAC1B,IAAIG,EACJJ,EAAO58M,UAAU75M,IAAI,gBAAiB,IACtCy2Z,EAAOl2D,mBAAkB,GACzB,IAAK,IAAIt/F,EAAQv0Q,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAM+2Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAClF/1P,EAAK+1P,GAASx0Q,UAAUw0Q,GAE5B01J,EAAsBxxa,KAAtB,MAAAwxa,EAAqB,CAAMH,GAAN,OAAiBtrZ,IACtCsrZ,EAAOK,0BAA2B,EAClC,QAAUD,EAAkBJ,EAAOj5W,gBAAa,IAAWq5W,GAA2BA,EAAgBp4D,WACtGg4D,EAAOM,gBAAgBhia,aACtB,WACD0ha,EAAO58M,UAAU75M,IAAI,gBAAiB,QACtC,IAAK,IAAImhQ,EAAQz0Q,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMi3Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAClFj2P,EAAKi2P,GAAS10Q,UAAU00Q,GAE5Bu1J,EAAmBvxa,KAAnB,MAAAuxa,EAAkB,CAAMF,GAAN,OAAiBtrZ,IACnCsrZ,EAAOK,0BAA2B,MAG1CpyD,MAAO,WAAW,WACd,IAAK//W,KAAKgxa,gBACN,OAAQ,IAAIx+M,EAAAA,IAAUpiN,UAAUI,UAEpCxQ,KAAKgxa,iBAAkB,EACvBhxa,KAAKoya,gBAAkB,IAAI5/M,EAAAA,GAC3B,IAAIqqL,EAAa,CACb92W,QAAQ,GAqBZ,OAnBI/lC,KAAKqxa,iCACErxa,KAAKqxa,yBACZrxa,KAAKoya,gBAAgB1mY,WAErB1rC,KAAK64D,SAAS9nC,SAAS8rX,GACvB78Y,KAAKuwa,yBACLvwa,KAAK4va,mBAAkB,GACvB5va,KAAKywa,4BAA4B5zB,EAAW92W,QAAQ,WAChD,EAAKssY,kBACL,EAAKC,gBAAe,GACpB,EAAKC,sBAAqB,GAC1B,EAAKhB,iBACL,EAAKG,oBACN,WACC,EAAKT,yBAA0B,EAC/B,EAAKpsZ,OAAO,WAAW,GACvB,EAAKutZ,gBAAgBhia,cAGtBpQ,KAAKoya,gBAAgB5ha,WAEhC6ha,gBAAiB,WACb,IAAI3qa,EAAgBkyN,EAAAA,EAAAA,qBACa55N,KAAKk1N,UAAU74M,KAAK3U,GAAepH,SAEhE+uQ,EAAAA,EAAAA,OAGRiwG,SAAU,SAASh7I,EAAWkuM,EAAkBC,GACxCnuM,GACAmuM,EAAgBA,GAAiBnuM,EAAUzoN,OAASm2M,EAAAA,KACpDiO,EAAAA,QAAAA,QAAWjgO,KAAKk1N,WAAWpsN,EAAAA,EAAAA,GAAO,GAAIw7N,EAAW,CAC7CzoN,MAAO42Z,EACPxuM,SAAUuuM,MAGdA,KAGR7D,eAAgB,WACZ1uM,EAAAA,QAAAA,KAAQjgO,KAAKk1N,WAAW,IAE5B0mJ,kBAAmB,SAAS/yW,GACpBA,GAAW7I,KAAK+wa,oBAGpB/wa,KAAKgxa,gBAAkBnoa,EACvB7I,KAAK2ua,iBACA9la,IACD+2S,EAAAA,EAAAA,IAAmB5/S,KAAKk1N,WAExBrsN,GACA7I,KAAK0ya,wBACL1ya,KAAK2ya,mBACL3ya,KAAK4ya,mBACLx5K,EAAAA,EAAAA,IAAkBp5P,KAAKk1N,YACvB2qF,EAAAA,EAAAA,IAAmB7/S,KAAKk1N,aAExBl1N,KAAKg8Y,kBAAkBnzY,GACvB7I,KAAKk1N,UAAUsB,YAAYw2M,GAAwBnka,GACnD7I,KAAKkxa,2BAA2Broa,GAChC7I,KAAKsxa,sBAETtxa,KAAKsya,eAAezpa,GACpB7I,KAAKuya,qBAAqB1pa,KAE9Bqoa,2BAA4B,SAAS2B,GACjC,IAAI7D,EAAehva,KAAKiva,gBACpBpua,EAAQmua,EAAa7oa,QAAQnG,MAC7B6ya,IACK,IAAMhya,IACPb,KAAK8ya,QAAUC,EAAAA,GAAkB/ya,KAAKova,oBACtCJ,EAAapua,KAAKZ,OAEtBA,KAAKsvX,UAAUj0W,IAAI,SAAUrb,KAAK8ya,SAClC9ya,KAAKk1N,UAAU75M,IAAI,SAAUrb,KAAK8ya,WAC1B,IAAMjya,IACdmua,EAAaz/Z,OAAO1O,EAAO,GAC3Bkya,EAAAA,GAAkB/ya,KAAK8ya,WAG/BR,eAAgB,SAASzpa,GACrB7I,KAAKsvX,UAAU94J,YAzgBI,oBAygB8B3tN,GAAW7I,KAAK6kB,OAAO,YACxE7kB,KAAKsvX,UAAUj0W,IAAI,kBAAmBrb,KAAK6kB,OAAO,WAAa7kB,KAAK6kB,OAAO,gBAAkB,IAC7F7kB,KAAKgza,qBAAqBnqa,GAAW7I,KAAK6kB,OAAO,aAErDgpZ,0BAA2B,WACvB,IAAIoF,EAASjza,KACbA,KAAKkza,6BAA+B,WAChCD,EAAOE,eAAP,MAAAF,EAAyBlra,aAGjCira,qBAAsB,SAAS1pY,GAC3B,IAAIW,GAAYmkL,EAAAA,EAAAA,cAAa,UAAWpuN,KAAK+0N,MACzCzrL,EACAqsL,EAAAA,EAAAA,GAAgBiE,EAAAA,EAAAA,cAA0B3vL,EAAWjqC,KAAKkza,8BAE1Dv9M,EAAAA,EAAAA,IAAiBiE,EAAAA,EAAAA,cAA0B3vL,EAAWjqC,KAAKkza,+BAGnE/D,oBAAqB,WAOjB,IANA,IAAIiE,EAAYpza,KAAKsvX,UAAUjzW,KAAK,KAChCg3Z,EAAgBD,EAAU9ya,OAAS,EACnCuO,EAAS,CACTm7D,MAAO,KACPsyD,KAAM,MAEDvwH,EAAI,EAAGA,GAAKsna,KACZxka,EAAOm7D,OAASopW,EAAUxrX,GAAG77C,GAAG+tB,GAAGupW,EAAAA,MACpCx0X,EAAOm7D,MAAQopW,EAAUxrX,GAAG77C,KAE3B8C,EAAOytH,MAAQ82S,EAAUxrX,GAAGyrX,EAAgBtna,GAAG+tB,GAAGupW,EAAAA,MACnDx0X,EAAOytH,KAAO82S,EAAUxrX,GAAGyrX,EAAgBtna,KAE3C8C,EAAOm7D,QAASn7D,EAAOytH,MAPKvwH,KAWpC,OAAO8C,GAEXska,eAAgB,SAAS3ya,GACrB,GAziBM,SAyiBFioS,EAAAA,EAAAA,kBAAiBjoS,IAAmBR,KAAK+ua,gBAA7C,CAGA,IAAIG,EAAmBlva,KAAKmva,sBACxBlrC,EAAiBirC,EAAiBllW,MAClCk6T,EAAgBgrC,EAAiB5yS,KACjCg3S,GAAe9ya,EAAE2C,UAAY3C,EAAEoG,SAAWs9X,EAAcrkX,IAAI,GAC5D0zZ,EAAoB/ya,EAAE2C,UAAY3C,EAAEoG,SAAWq9X,EAAepkX,IAAI,GAClE2zZ,EAAiB,IAAMtE,EAAiB5ua,OACxCmza,IAAmB10Z,EAAAA,EAAAA,IAAS/e,KAAKsvX,UAAUzvW,IAAI,GAAIrf,EAAEoG,QACzD,GAAI0sa,GAAeC,GAAqBC,GAAkBC,EAAiB,CACvEjza,EAAE6G,iBACF,IAAIqsa,EAAgBlza,EAAE2C,SAAW+gY,EAAgBD,EACjDtuK,EAAAA,EAAAA,QAAqB+9M,EAAe,WACpC/9M,EAAAA,EAAAA,QAAqB+9M,EAAe,YAG5CnB,qBAAsB,SAASjpY,IACvBgzL,EAAAA,EAAAA,QACAt8N,KAAK2za,8BAA8BrqY,GACnCtpC,KAAK4za,uCAAuCtqY,KAGpDqqY,8BAA+B,SAASxia,GAC/BnR,KAAKqua,yBAGNl9Z,EACA0ia,EAAAA,IAA2B7za,KAAKqua,wBAEhCwF,EAAAA,OAA8B7za,KAAKqua,0BAG3CuF,uCAAwC,SAASE,GAC7C,IAAIC,EACAC,GAAc5lN,EAAAA,EAAAA,cAAa,SAAUpuN,KAAK+0N,MAC9C,EAGI,QAAUg/M,EAAwB/za,KAAKkua,sCAAmC,IAAW6F,EAAwBA,EAAwB,GAFxHE,EADjB,EACIA,YACS1za,EAFb,EAEIA,QAEJo1N,EAAAA,EAAAA,IAAiBs+M,EAAaD,EAAazza,GAC3C,IAAI2za,EAAgBl0a,KAAK6kB,OAAO,sBAChC,GAAIivZ,GAAiBI,EAAe,CAChC,IAAI1lZ,EAAWxuB,KAAKm0a,4BAA4BrvZ,UAC5C,YAAcqjN,EAAAA,QAAAA,OAAeC,aAC7B55M,EAAWA,EAASltB,IAAImkB,IAE5BkwM,EAAAA,EAAAA,GAAgBnnM,EAAUwlZ,EAAazza,GACvCP,KAAKkua,+BAA+B+F,YAAczlZ,IAG1D2/Y,4BAA6B,SAAS3ta,GAClC,IAAI4za,GAAe,EACfF,EAAgBl0a,KAAK6kB,OAAO,uBAC5Bq2D,EAAAA,EAAAA,IAAWg5V,KACXE,EAAeF,EAAc1za,IAE5B4za,GAAiBp0a,KAAK0ua,0BACvB1ua,KAAKkqE,QAGbiqW,0BAA2B,WACvB,OAAOn0a,KAAKsvX,WAEhBxzJ,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKq0a,0BACLr0a,KAAK0va,yBAAyB1va,KAAK6kB,OAAO,aAE9CwvZ,wBAAyB,WAChBr0a,KAAKk1N,UAAUzpN,SAASquB,GAAG95B,KAAK6Z,aACjC7Z,KAAKk1N,UAAUj9L,SAASj4B,KAAK6Z,aAGrC0kV,eAAgB,WACZ,IAAI+1E,GAAwBt0a,KAAKgxa,iBAAmBhxa,KAAK6kB,OAAO,kBAC3C7kB,KAAK6kB,OAAO,YAAc7kB,KAAK+wa,kBAEhD/wa,KAAKorP,WAAY,EAGjBprP,KAAKu0a,yBAA2BD,IAGpCt0a,KAAKu0a,yBAA0B,EAC/Bv0a,KAAKq0a,0BACLr0a,KAAKuxN,aAETw/M,gBAAiB,WACb,IAAK/wa,KAAK6kB,OAAO,0BACb,OAAO,EAEX,QAAI,IAAW7kB,KAAK8wa,cAChB,OAAO9wa,KAAK8wa,cAEhB,IAAIh3Z,EAAU9Z,KAAK6Z,WAAWpO,SAC9B,GAAIqO,EAAQggB,GAAG,YACX,OAAO,EAEX,IAAI06Y,GAAW,EAQf,OAPA16Z,EAAQxY,IAAIwY,EAAQgL,WAAWrK,MAAM,WAEjC,GAAI,UADW/M,EAAAA,EAAAA,GAAE1N,MACOqb,IAAI,WAExB,OADAm5Z,GAAW,GACJ,KAGRA,IAAa56M,EAAAA,EAAAA,UAAqB76M,SAASjF,EAAQ+F,IAAI,KAElEq/U,mBAAoB,WAAW,WACvBu1E,EAAsB,IAAIjiN,EAAAA,GAC1BkiN,EAAwB10a,KAAK6kB,OAAO,mBACpCuB,EAAkBpmB,KAAKu2N,aAAam+M,GACpC34M,EAAa/7N,KAAK27N,iBAAiBK,wBAA0B04M,EAkBjE,OAjBAtuZ,GAAmBA,EAAgB7G,OAAO,CACtCO,WAAWs2M,EAAAA,EAAAA,GAAiBp2N,KAAK25B,YACjCg7Y,SAAS,EACT54M,WAAYA,EACZg9B,WAAY,WACR07K,EAAoBrka,UAChB,EAAKyU,OAAO,kCACZ,EAAKklO,uBAIjB/pP,KAAK40a,uCAAuC50a,KAAK6kB,OAAO,wBACxD4vZ,EAAoBr7Y,MAAK,WACjB,EAAKvU,OAAO,YACZ,EAAK8tZ,sBAGN8B,EAAoBjka,WAE/Bqka,6BApqByB,WAqqBrB,MAKI70a,KAAK6kB,SAJM/E,EADf,EACIA,UACiB21T,EAFrB,EAEIA,gBACqB+0F,EAHzB,EAGIA,oBACiBD,EAJrB,EAIIA,gBAEJ,MAAO,CACHzqZ,UAAWA,EACX21T,gBAAiBA,EACjB16T,MAAO/a,KAAK6Z,WACZ8f,SAAU35B,KAAKk1N,UACfC,SAAUn1N,KAAKsvX,UACfub,aAAc7qY,KAAK64D,SAASgyU,aAC5By/B,wBAAyBtqa,KAAK64D,SAASyxW,wBACvCC,gBAAiBA,EACjBC,oBAAqBA,IAG7BiE,wBAvrByB,WAwrBrBzua,KAAKyva,oBAAsB,IAAIpF,EAAAA,EAA0Brqa,KAAK60a,iCAElED,uCAAwC,SAAStrY,GAC7C,IAAIW,GAAYmkL,EAAAA,EAAAA,cAAaG,EAAAA,GAAevuN,KAAK+0N,MACjDY,EAAAA,EAAAA,IAAiB31N,KAAKsvX,UAAWrlV,GAC7BX,GACAqsL,EAAAA,EAAAA,GAAgB31N,KAAKsvX,UAAWrlV,EAAW,CACvC0pC,SAAU,WACN,OAAO,GAEX0uN,aAAc,WACV,MAAO,QAEXgM,oBAAqB,SAASj5C,GACrBA,GACDp1P,KAAK0vS,wBAAwBt6C,IAGrC45C,gBAAiBh9E,EAAAA,KACjB+/E,UAAU,IACX,SAAAvxS,GACC,IAAI43G,EAAgB53G,EAAE43G,cAAcA,cAE1Bz0F,GACNy0F,GAAiB,IADjBz0F,KAEAmxZ,EAAU,UAAYnxZ,EACtBoxZ,EAAc,cAAgBpxZ,EAC9BqxZ,EAAkBF,KAAYr1H,EAAAA,EAAAA,qBAAoBj/S,GACtDA,EAAE6rS,uBAAwB,EACtBj0L,IAAiB,IAAU53G,EAAE+5S,cAAgBw6H,IAAgBD,GAAWE,IACxEx0a,EAAE6G,qBAKlBiqa,mBAAoB,WAChBtxa,KAAKk1N,UAAUj9L,SAASj4B,KAAK6Z,YAC7B7Z,KAAKsvX,UAAUniO,UAEnBulR,sBA/tByB,WAguBrB,IAAIuC,EAAoBj1a,KAAKyva,oBAAoBloY,gBAC7C,IAAW0tY,IAGOA,EAAkB30a,OAAS,GAE7C40a,EAAAA,EAAAA,IAAa,QAASl1a,KAAK+0N,QAGnC49M,iBAAkB,WACd,IAAIsC,EAAoBj1a,KAAKyva,oBAAoBloY,WACjDvnC,KAAKsvX,UAAUr3V,SAASg9Y,GACxBj1a,KAAKk1N,UAAUj9L,SAASj4B,KAAKsvX,YAEjCsjD,gBAAiB,SAASx4Z,GAGlBpa,KAAK6kB,SADLhc,UAEWyzN,EAAAA,EAAAA,QACXt8N,KAAK2ua,iBACL3ua,KAAKm1a,wBAGbA,oBAAqB,WACjBn1a,KAAKyva,oBAAoBhiX,eAAeztD,KAAK4mP,gBAAgB,aAC7D5mP,KAAK0qU,iBACL1qU,KAAK6qP,oBACL7qP,KAAKulB,mBAETA,gBA7vByB,WA8vBrBvlB,KAAKyva,oBAAoB2F,mBAE7BC,oBAAqB,WACjB,OAAOp6V,EAAAA,EAAAA,IAASj7E,KAAKyva,oBAAoBzD,iBAAiBnsZ,IAAI,KAAO7f,KAAK6kB,OAAO,YAErF0rZ,uBAAwB,WACpB,IAAI1na,EAAU7I,KAAK6kB,OAAO,WACtBg8T,GAAQnzU,EAAAA,EAAAA,GAAEksN,EAAAA,EAAAA,WACV07M,EAAc,QAAUntM,EAAAA,QAAAA,OAAexpG,UAAYynG,EAAAA,QAAAA,OACnDmvM,EAAqBv1a,KAAKq1a,sBAC1BG,EAAuB30F,EAAM9wH,SAASm9M,GACtCuI,GAA0BD,GAAwB3sa,GAAW0sa,EAC7DG,EAAwBF,KAA0B3sa,IAAY0sa,GAAsBv1a,KAAK6kP,WACzFywL,IACII,GACA70F,EAAMhpT,YAAYq1Y,GAClBznZ,EAAOo/B,SAAS,EAAG7kD,KAAK21a,sBACxB31a,KAAK21a,0BAAuB,GACrBF,IACPz1a,KAAK21a,qBAAuBlwZ,EAAOujB,YACnC63S,EAAMphU,SAASytZ,MAI3BxiG,eAAgB,WACZ1qU,KAAKyva,oBAAoBtE,uBACzBnra,KAAK41a,2BACL51a,KAAKyva,oBAAoBoG,mBAE7BD,yBAA0B,WACtB,IAAI5J,EAAmBhsa,KAAKyva,oBAAoBzD,iBAC5CvjY,EAAkBmxL,EAAAA,EAAAA,qBAClBk8M,GAA0B76V,EAAAA,EAAAA,IAAS+wV,EAAiBnsZ,IAAI,IACxDk2Z,EAAeD,EAA0BrtY,EAAgB+2B,aAAc84J,EAAAA,EAAAA,IAAc0zM,GACrFgK,EAAgBF,EAA0BrwZ,EAAOq8H,aAAc02E,EAAAA,EAAAA,IAAewzM,GAClFhsa,KAAKsvX,UAAUj0W,IAAI,CACf/J,MAAOyka,EACPxka,OAAQyka,KAGhBnrL,kBAAmB,WACf,IAAI/pO,EAAU9gB,KAAKk1N,UAAUr1M,IAAI,GACjC7f,KAAKk1N,UAAU75M,IAAI,CACfoD,SAAUze,KAAK4mP,gBAAgB,WAAY9lO,GAC3C9B,SAAUhf,KAAK4mP,gBAAgB,WAAY9lO,GAC3ClC,UAAW5e,KAAK4mP,gBAAgB,YAAa9lO,GAC7C4E,UAAW1lB,KAAK4mP,gBAAgB,YAAa9lO,GAC7CxP,MAAOtR,KAAK4mP,gBAAgB,QAAS9lO,GACrCvP,OAAQvR,KAAK4mP,gBAAgB,SAAU9lO,MAG/CioR,aAAc,WACV,OAAO/oS,KAAKk1N,WAEhB83K,sBAAuB,WAAW,WAC9BhtY,KAAK+7W,oBAAsB5iE,EAAAA,GAAAA,GAAYn5S,KAAKk1N,UAAW,MAAM,SAAAlsG,GAAI,OAAI,EAAKkuP,iBAAiBluP,OAE/FkuP,iBAAkB,SAAS98V,GACvB,IAAI5Z,EAAI4Z,EAAQg+F,cACZjoE,GAAUziC,EAAAA,EAAAA,GAAElN,EAAEoG,SACdupC,EAAQrW,GAAG95B,KAAKk1N,YAAel1N,KAAK6kB,OAAO,sBAC3C7kB,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,YAGzB2yG,WAAY,WACR,OAAO16G,KAAK6kB,OAAO,YAEvBilO,mBAAoB,SAASjhP,GACrBA,EACI7I,KAAK6kB,OAAO,YACZ7kB,KAAK0va,yBAAyB7ma,GAGlC7I,KAAK0va,yBAAyB7ma,IAGtCkhP,kBAAmB,WACf/pP,KAAK4ya,mBAETrnL,OAAQ,WACJ,IAAInxO,EAAUpa,KAAK6kB,SACd7kB,KAAKu0a,yBAA4Bn6Z,EAAQu1T,aAC1C3vU,KAAK25B,WAAW8wC,QAEpBzqE,KAAK47W,mBAAkB,GACvB57W,KAAKuxa,iBACLvxa,KAAK0+V,oBAET6yE,eAt1ByB,WAu1BjBvxa,KAAKwxa,mBACLtzY,aAAal+B,KAAKwxa,mBAEtBxxa,KAAKwxa,kBAAoB,MAE7Bn1M,SAAU,WACN4D,EAAAA,QAAAA,KAAQjgO,KAAKk1N,WAAW,GACxBh3L,aAAal+B,KAAKi2a,iBAClBj2a,KAAKgua,6BAA4B,GACjChua,KAAKuya,sBAAqB,GAC1Bvya,KAAKkxa,4BAA2B,GAChClxa,KAAKgza,sBAAqB,GAC1Bhza,KAAK64D,SAAW,KAChB74D,KAAKkua,+BAAiC,KACtClua,KAAKuxN,WACLvxN,KAAKuwa,yBACLvwa,KAAK6kB,OAAO,YAAckuZ,EAAAA,GAAkB/ya,KAAK8ya,SACjD9ya,KAAKsvX,UAAU9tX,SACfxB,KAAKk1N,UAAU1zN,UAEnBmpP,oBAAqB,SAAS7hO,GAC1B9oB,KAAKk1N,UAAUsB,YAz3BG,SAy3B8B1tM,IAEpDozM,eAAgB,SAAS11M,GAAM,WAEhB5kB,EAEP4kB,EAFA5kB,MACM4L,EACNgZ,EADAhZ,KAEJ,GAAIxN,KAAKsua,kBAAkBxyS,SAAStuH,GAChCxN,KAAK+9U,oBAGT,OAAQvwU,GACJ,IAAK,YA6DL,IAAK,sBACL,IAAK,qBACL,IAAK,wBACD,MA9DJ,IAAK,UACDxN,KAAKsya,eAAetya,KAAK6kB,OAAO,YAChC7kB,KAAKuwa,yBACL,MACJ,IAAK,eACDvwa,KAAKsya,eAAetya,KAAK6kB,OAAO,YAChC,MACJ,IAAK,QACL,IAAK,SAGL,IAAK,WACL,IAAK,WACL,IAAK,YACL,IAAK,YACD7kB,KAAK4ya,kBACL,MACJ,IAAK,WACD5ya,KAAKyva,oBAAoBhiX,eAAeztD,KAAK6kB,OAAO,aACpD7kB,KAAKyva,oBAAoBpE,6BAA4B,GACrDrra,KAAK4ya,kBACL5ya,KAAKuwa,yBACL,MACJ,IAAK,UACDvwa,KAAK0va,yBAAyB9ta,GAAOw3B,MAAK,WACtC,IAAI88Y,EACJ,OAAO,QAAUA,EAAwB,EAAKC,wBAAqB,IAAWD,OAAwB,EAASA,EAAsB72M,YAAY,MAClJv+L,MAAK,WACJ,IAAIs1Y,EACJ,OAAO,QAAUA,EAAyB,EAAKD,wBAAqB,IAAWC,OAAyB,EAASA,EAAuB1qY,YAE5I,MACJ,IAAK,YACD1rC,KAAKyva,oBAAoBzE,gBAAgBppa,GACzC5B,KAAK0rP,cACL1rP,KAAKuwa,yBACL,MACJ,IAAK,kBACDvwa,KAAKyva,oBAAoBxE,sBAAsBrpa,GAC/C5B,KAAK0qU,iBACL1qU,KAAKuwa,yBACL,MACJ,IAAK,eACDvwa,KAAK+ta,yBACL,MACJ,IAAK,iBACL,IAAK,kBACD/ta,KAAKu0a,yBAA0B,EAC/Bv0a,KAAKurP,SACLvrP,KAAK0rP,cACL,MACJ,IAAK,wBACD1rP,KAAK2za,+BAA8B,GACnC3za,KAAKiua,2BAA2Brsa,GAChC5B,KAAK2za,8BAA8B3za,KAAK6kB,OAAO,YAC/C,MACJ,IAAK,qBACD7kB,KAAK4za,uCAAuC5za,KAAK6kB,OAAO,YACxD,MAKJ,IAAK,aACD7kB,KAAKu0a,yBAA0B,EAC/Bv0a,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,sBACDxmB,KAAKyva,oBAAoBvE,mBAAqBtpa,EAC9C,MACJ,IAAK,cACD5B,KAAKwua,2BACL,MACJ,IAAK,kBACDxua,KAAKyva,oBAAoBlF,gBAAkB3oa,EAC3C,MACJ,IAAK,sBACD5B,KAAK2ta,wCACL3ta,KAAK40a,uCAAuChza,GAC5C,MACJ,QACI5B,KAAKuxN,SAAS/qM,KAG1B4uO,OAAQ,SAAS0qH,GAAS,WACtBA,OAAU,IAAWA,GAAW9/W,KAAK6kB,OAAO,WAAai7V,EACzD,IAAIjxW,EAAS,IAAI2jN,EAAAA,GACjB,GAAIstJ,IAAY9/W,KAAK6kB,OAAO,WACxB,OAAOhW,EAAOwwN,YAAYr/N,KAAM,CAAC8/W,IAAUtvW,UAE/C,IAAI6la,EAAkB,IAAI7jN,EAAAA,GAU1B,OATAxyN,KAAKm2a,iBAAmBE,EACxBr2a,KAAK6kB,OAAO,UAAWi7V,GACvBu2D,EAAgB7la,UAAU4oB,MAAK,kBACpB,EAAK+8Y,iBACZtna,EAAOwwN,YAAY,EAAM,CAAC,EAAKx6M,OAAO,gBACvCic,MAAK,kBACG,EAAKq1Y,iBACZtna,EAAO68B,YAEJ78B,EAAO2B,WAElBmpB,SAAU,WACN,OAAO35B,KAAKk1N,WAEhB1zK,KAAM,WACF,OAAOxhD,KAAKo1P,QAAO,IAEvBlrL,KAAM,WACF,OAAOlqE,KAAKo1P,QAAO,IAEvBt0O,QAAS,WACL,OAAOs1M,EAAAA,EAAAA,GAAiBp2N,KAAKk1N,YAEjC5vM,QAAS,WACDtlB,KAAKu0a,yBACLv0a,KAAKyva,oBAAoBpE,6BAA4B,GACrDrra,KAAK4ya,gBAAgB,CACjB0D,oBAAoB,KAExBz2H,EAAAA,EAAAA,IAAmB7/S,KAAKk1N,YAExBl1N,KAAKuxN,cAIjB2qJ,EAAQmzD,WAAa,SAAAlsX,GAAM,OAAI4vX,EAAAA,GAAgB5vX,KAC/C7iC,EAAAA,EAAAA,SAAkB,YAAa47V,GAC/B,4HCnlCW6oB,EAA8B,SAAClrX,EAAU08Z,GAChD,IAIIC,EAJAp3L,GAAU1xO,EAAAA,EAAAA,IAAEugN,EAAAA,EAAAA,OAEP9xM,EACLtC,EAAStO,SADTuN,IAGJ,IAAIisG,EAAAA,EAAAA,IAAUwxT,GAAgB,CAC1B,GAAIA,EAAgBp6Z,EAChB,OAAOA,EAAgBo6Z,EAEvBC,GAAe74J,EAAAA,EAAAA,IAAev+B,GAAWm3L,EAAgBn3L,EAAQn4M,gBAElE,CACH,IAAIqgB,EAAYnrC,EAAgBijO,EAAQn4M,YACpCwvY,GAAe94J,EAAAA,EAAAA,IAAev+B,GAAW93L,GAAYkxK,EAAAA,EAAAA,IAAe3+M,GACxE28Z,EAAe7wZ,KAAKC,IAAI0hC,EAAWmvX,GAEvC,MAlBwB,GAkBjBD,6JC1BPnH,EAAa,KACbqH,EAAc,GACPhvS,EAAO,SAAAivS,GAEd,OADAtH,GAAa7vK,EAAAA,EAAAA,eAAcm3K,EAAQtH,IAG5B/vY,EAAS,WAChB,IAAIs3Y,EAAY7ua,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAKsna,EAC7E/ua,EAASo2a,EAAYp2a,OACrBO,GAASP,EAASo2a,EAAYp2a,EAAS,GAAKs2a,GAAa,EAE7D,OADAF,EAAY91a,KAAKC,GACVA,GAEAW,EAAS,SAAA2hD,GAChB,IAAIh9B,EAAWuwZ,EAAYvwa,QAAQg9C,GAC/Bh9B,GAAY,GACZuwZ,EAAYnna,OAAO4W,EAAU,IAG1B0wZ,EAAsB,SAAA1zX,GAAM,OAAIuzX,EAAYp2a,QAAUo2a,EAAYA,EAAYp2a,OAAS,KAAO6iD,qMChBpF2zX,EAAAA,SAAAA,6IACjB,WACI,OAAOhua,EAAAA,EAAAA,IAAO,kEAA4B,CACtCmqZ,qBAAqB,mCAG7B,WACI,MAAO,kBAPM6jB,CAAoBr6B,EAAAA,GAUzCq6B,EAAY9pL,eAAiB,SAASv5K,GAClCgpU,EAAAA,EAAAA,eAAuBhpU,KAE3BnzD,EAAAA,EAAAA,SAAkB,YAAaw2Z,GClB/B,8NCYWC,EAAoB,CAC3Br+Z,KAAM,kBACNI,IAAK,iBACLiF,MAAO,mBACPC,OAAQ,qBAsFL,eCrGHs2Q,EAAY,CAAC,UAAW,SAAU,UAsBlC0iJ,EAAkB,CAClBt+Z,MAAO,EACPI,KAAM,EACNwK,OAAQ,EACRvF,MAAO,EACPC,OAAQ,GAERi5Z,EAA2B,CAC3Bn+Z,IAAK,CACD4mD,GAAI,gBACJC,GAAI,aACJv6C,UAAW,YAEfpH,OAAQ,CACJ0hD,GAAI,aACJC,GAAI,gBACJv6C,UAAW,YAEfrH,MAAO,CACH2hD,GAAI,cACJC,GAAI,eACJv6C,UAAW,YAEf1M,KAAM,CACFgnD,GAAI,eACJC,GAAI,cACJv6C,UAAW,aAGf8xZ,EAAkC,CAClC1tR,EAAG,GACH3iG,EAAG,IAEDswX,EAAAA,SAAAA,iCACF,WAAYnwL,GAAM,sBACd,IACa/L,EAGT+L,EAHA/L,QACQr0O,EAERogP,EAFApgP,OACQsrX,EACRlrI,EADAkrI,OACM1rW,GAAOkuQ,EAAAA,EAAAA,GAA8B1tC,EAAMstC,GALvC,OAMd,cAAM9tQ,IACDwjT,QAAS/xG,EAAAA,EAAAA,GAAS,GAAI,EAAK+xG,OAAQ,CACpC/uF,QAASA,EACTr0O,OAAQA,IAEZ,EAAKwwa,QAAUllD,EACf,EAAKmlD,mBAAgB,EACrB,EAAK5pX,eAAe,EAAKu8Q,OAAO7jT,UAblB,gDAelB,WACQnmB,KAAKgqU,OAAO/uF,SACZj7O,KAAKsvX,UAAUj0W,IAAI,CACfvC,IAAK,EACLJ,KAAM,gCAIlB,SAAa9R,GACT5G,KAAKgqU,OAAOpjU,OAASA,EACrB5G,KAAKytD,eAAeztD,KAAKgqU,OAAO7jT,+CAEpC,iDACA,WACI,IAAI5a,GAASi7N,EAAAA,EAAAA,cAAaxmO,KAAKutD,UAAUhiD,QAAU,IAE5C+ra,EAEH/ra,EAFAi+I,EACG+tR,EACHhsa,EADAs7C,EAEA2wX,EAAiBx3a,KAAKy3a,kBACtBC,EAAmB13a,KAAK23a,oBAC5B,GAAIH,GAAkBE,EAAkB,CACpC,IAIIE,GAJkB53a,KAAK63a,oBACI,EAAI,GAAKb,EAAgBh3a,KAAKq3a,iBAC7CG,GAAiB36R,EAAAA,EAAAA,IAAU78I,KAAKo3a,UAAWt6R,EAAAA,EAAAA,IAAS98I,KAAKo3a,UAC/Cp3a,KAAK83a,uBAAuB93a,KAAKq3a,gBAE3DG,EAAiBD,GAAWK,EAAcN,GAAWM,EAEzD,OAAO9ua,EAAAA,EAAAA,GAAO,GAAI9I,KAAKutD,UAAW,CAC9BhiD,OAAQ+ra,EAAU,IAAMC,0CAGhC,SAAuBvjX,GACnB,IAAIlb,EAAc94C,KAAKk1N,UAAU75M,IAAI07Z,EAAkB/iX,IACvD,OAAO/d,SAAS6C,IAAgB,kCAEpC,WACI,IAAI4mB,EAAKu5J,EAAAA,EAAAA,MAAAA,eAAmCj5N,KAAKutD,UAAUmS,IACvDC,EAAKs5J,EAAAA,EAAAA,MAAAA,eAAmCj5N,KAAKutD,UAAUoS,IAC3D,OAAOD,EAAG8pF,IAAM7pF,EAAG6pF,GAAK9pF,EAAG7Y,IAAM8Y,EAAG9Y,iCAExC,WACI,IAAImN,EAAOjsD,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKq3a,cACjF,MAAO,QAAUrjX,GAAQ,WAAaA,mCAE1C,WACI,IAAIA,EAAOjsD,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKq3a,cACjF,MAAO,SAAWrjX,GAAQ,UAAYA,iCAE1C,SAAgB7tC,GACZ,IAAIu5C,EAAKu5J,EAAAA,EAAAA,MAAAA,eAAmC9yM,EAASu5C,IACjDC,EAAKs5J,EAAAA,EAAAA,MAAAA,eAAmC9yM,EAASw5C,IACjDo4W,EAAaf,EAAgBt3W,EAAG8pF,KAAOwtR,EAAgBr3W,EAAG6pF,IAAMwtR,EAAgBt3W,EAAG7Y,KAAOmwX,EAAgBr3W,EAAG9Y,IAAM,EAAI,EAG3H,OAFuBlhC,KAAK23B,IAAI05X,EAAgBt3W,EAAG8pF,GAAKuuR,EAAaf,EAAgBr3W,EAAG6pF,IACnE7jI,KAAK23B,IAAI05X,EAAgBt3W,EAAG7Y,GAAKkxX,EAAaf,EAAgBr3W,EAAG9Y,IAC3C8Y,EAAG6pF,EAAI7pF,EAAG9Y,oCAEzD,SAAmBykX,GACf,IAIIlnB,EAJAqoB,EAAwB,CACxBhtW,GAAIz/D,KAAKgqU,OAAOpjU,OAChBue,eAAgB+xZ,GASpB,OALI9yB,GADAz7V,EAAAA,EAAAA,IAAU2iX,IACOxia,EAAAA,EAAAA,IAAO,EAAM,GAAI2ja,EAAuBzsa,KAAK0sa,kBAAkBpB,IAE/DmB,EAErBzsa,KAAKq3a,cAAgBr3a,KAAKg4a,gBAAgB5zB,GACnCA,mCAEX,SAAkBknB,GACd,OAAIhhN,EAAAA,EAAAA,IAASghN,IACFxia,EAAAA,EAAAA,GAAO,GAAImua,EAAyB3L,IAExCA,QA5FT6L,CAAkC9M,EAAAA,qOCXpC4N,EAAoB,CACpBv/Z,KAAM,QACNI,IAAK,SACLiF,MAAO,OACPC,OAAQ,MACRsF,OAAQ,UAER40Z,EAAuB,SAASx2H,GAChC,OAAOv3F,EAAAA,EAAAA,IAASu3F,GAAeA,EAAYl0S,KAAOk0S,GAElDv/D,EAAe,SAASvsD,EAAMowD,GAC9B,IAAI07D,EAAc9rH,EAAK/wK,OAAOmhO,GAC9B,OAAOkyL,EAAqBx2H,IAM5By2H,EAAc,SAASviP,EAAMpoL,GAC7B,MAKIooL,EAAK/wK,SAJGje,EADZ,EACIA,OACSq0O,EAFb,EAEIA,QACU7vO,EAHd,EAGIA,SACWgta,EAJf,EAIIA,UAEAC,GAAa/tN,EAAAA,EAAAA,IAAS1jN,GACtB0xa,EAAwBr9L,GAAW,SAAWztO,EAC9CgN,EAAQ89Z,EAAwB,KAAOn2L,EAAavsD,EAAM,GAAGh6J,OAAOpuB,EAAM,UAI9E,GAHI8qa,GAAyBF,GACzBn2M,EAAAA,EAAAA,IAAW,SAEVznN,IAASpP,EAAd,CAGA,IAAI6+B,GAAYmkL,EAAAA,EAAAA,cAAa5zM,EAAOo7K,EAAKm/B,MACrCt0M,EAASm1K,EAAKiwD,cAAc,WAC5B,IAAI/nH,EAtBQ,SAAS83D,EAAMowD,GAC/B,IAAI07D,EAAc9rH,EAAK/wK,OAAOmhO,GAC9B,OAAO77B,EAAAA,EAAAA,IAASu3F,IAAgBA,EAAY5jL,MAoB5By6S,CAAc3iP,EAAMpoL,EAAO,SACvCxN,KAAKw4a,uBACD16S,EACA99H,KAAKy4a,UAAUjra,GAAQ3K,YAAY,WAC/B+yL,EAAKpoL,OACLswH,GAEJ83D,EAAKpoL,MAEX/C,KAAKmrL,GAAO,CACVwhD,qBAAsB,WAEtB72O,EAAU,SAASC,GACnBigB,EAAO,CACHjG,MAAOha,EACPoG,QAAQ8G,EAAAA,EAAAA,GAAElN,EAAEkO,kBAGhBgqa,EAAqB,IAAMlra,EAAO,eACtC,GAAI6qa,EACAziP,EAAK8iP,GAAsBn4a,EAC3Bo1N,EAAAA,EAAAA,GAAgBiE,EAAAA,EAAAA,cAA0B3vL,EAAWrjC,EAAQrG,OAC1D,CACH,IAAI8zD,GAAgB+hK,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAE9G,IACvCgvL,EAAK8iP,QAAsB,EAC3B/iN,EAAAA,EAAAA,GAAgBthK,EAAepqB,EAAW1pC,MAG9Co4a,EAAc,SAAS/iP,EAAMhvL,EAAQ4G,EAAMgN,GAC3C,IAAIyvB,EAAYzvB,GAAS2nO,EAAavsD,EAAMpoL,EAAO,SACnD,GAAKy8B,EAAL,CAGAA,GAAYmkL,EAAAA,EAAAA,cAAankL,EAAW2rJ,EAAKm/B,MACzC,IAAI2jN,EAAqB,IAAMlra,EAAO,eAClCooL,EAAK8iP,GACL/iN,EAAAA,EAAAA,IAAiBiE,EAAAA,EAAAA,cAA0B3vL,EAAWrjC,EAAQgvL,EAAK8iP,IAEnE/iN,EAAAA,EAAAA,KAAiBS,EAAAA,EAAAA,IAAiB1oN,EAAAA,EAAAA,GAAE9G,IAAUqjC,KAGlDwyW,EAAUpS,EAAAA,EAAAA,QAAc,CACxB53K,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3qN,YAAQ,EACRq0O,SAAS,EACT90N,UAAUrd,EAAAA,EAAAA,GAAO,GAAImua,EAAAA,EAAAA,QACrB3wZ,oBAAoB,EACpBg+M,UAAW,CACP9iL,KAAM,CACF79B,KAAM,OACNxa,KAAM,EACN63D,GAAI,GAERkJ,KAAM,CACFvmD,KAAM,OACNxa,KAAM,EACN63D,GAAI,IAGZq8S,WAAW,EACX/rW,MAAO,OACPC,OAAQ,OACRo6I,aAAa,EACbitR,eAAe,EACf9tC,YAAY,EACZ3tB,oBAAoB,EACpB07D,cAAe,GACfjB,YAAa,EACbpN,qBAAqB,KAG7B5nL,qBAAsB,WAClB,MAAO,CAAC,CACJxE,OAAQ,CACJz/G,SAAU,OAEdvkH,QAAS,CACLy+Z,cAAe,CACX1zZ,eAAgB,CACZqkI,EAAG,GACH3iG,GAAI,IAERzhC,UAAW,SAGpB,CACCg5N,OAAQ,WACJ,QAAQ9hB,EAAAA,EAAAA,OAEZliN,QAAS,CACLkqN,UAAW,SAIvB9xJ,MAAO,WACH,IAAIwoN,EACJh7R,KAAKuxN,WACLvxN,KAAK84a,eACL94a,KAAKy4a,UAAY,GACjBz4a,KAAK6Z,WAAW4F,SA5IJ,cA6IZzf,KAAKm1N,WAAW11M,SA5II,sBA6IpB,IAAIs5Z,EAAgB,QAAU/9I,EAAeh7R,KAAK6kB,OAAO,uBAAoB,IAAWm2Q,OAAe,EAASA,EAAa16R,OAC7HN,KAAK4gV,QAAQ,OAAQm4F,EAAgB,SAAW,YAEpDj9M,QAAS,WACL97N,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAKg5a,cAAch5a,KAAK6kB,OAAO,WAC/B7kB,KAAKi5a,iBAETD,cAAe,SAASpya,GACpB+xa,EAAY34a,KAAM4G,EAAQ,QAC1B+xa,EAAY34a,KAAM4G,EAAQ,SAE9Bqya,cAAe,WACXd,EAAYn4a,KAAM,QAClBm4a,EAAYn4a,KAAM,SAEtB84a,aAAc,WACV94a,KAAKo3a,SAAU1pa,EAAAA,EAAAA,GAAE,SAAS+R,SA7JR,oBA6JsCuoB,UAAUhoC,KAAKgvW,oBAE3Eu/D,qBAAsB,SAAS/ta,GAC3B,OAAIR,KAAKk5a,gBAAgB14a,IACdR,KAAKuxN,SAAS/wN,IAI7B04a,gBAAiB,SAAS14a,GACtB,QAAQkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ/J,KAAK6kB,OAAO,WAAWvkB,QAEvDg/W,SAAU,SAASh7I,GACXA,GAAaA,EAAUtjK,IAAM,kBAAoBsjK,EAAUtjK,KAC3Dl4D,EAAAA,EAAAA,GAAOw7N,EAAUtjK,GAAI,CACjB76C,SAAUnmB,KAAKm5a,0BAGvBn5a,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B4ma,eAAgB,WACZ3ua,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9Bqxa,aAAc,WACVp5a,KAAKm1N,WAAWqB,YAnLU,4BAmLgCx2N,KAAK6kB,OAAO,cACtE7kB,KAAKuxN,YAEThsM,gBAAiB,WACb,IAAI8zZ,IAAyBtxa,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,KAAKA,UAAU,GACzF/H,KAAKuxN,WACLvxN,KAAKs5a,uBAAuBD,GAC5Br5a,KAAK64D,SAASgyU,gBAElByuC,uBAAwB,SAASD,GAC7Br5a,KAAKu5a,sBAAsBF,GAC3Br5a,KAAKw5a,mBAAmBH,GACxB,IAAII,EAAkBz5a,KAAKm5a,wBACvBO,EAAiBzgN,EAAAA,EAAAA,MAAoBj5N,KAAKgvW,kBAAmByqE,GAC7DrlG,EAAep0U,KAAK25a,mBAAmBD,GAC3C15a,KAAK45a,qBAAqB,eAAiBxlG,GAC3Cp0U,KAAK65a,oBAAoBH,EAAelwR,EAAE+9E,KAAMmyM,EAAe7yX,EAAE0gL,OAC5CvnO,KAAK23a,qBAAuB33a,KAAKy3a,oBAElDz3a,KAAK85a,qBAAqB1lG,IAGlCmlG,sBAAuB,SAASF,GAC5Br5a,KAAK+5a,kBAAkBV,GACvBr5a,KAAK45a,qBAAqB,eAAiB55a,KAAKyva,oBAAoB4H,gBACpEp7X,EAAAA,EAAAA,IAAKj8C,KAAKgvW,kBAAmB,CACzBt2V,KAAM,EACNI,IAAK,IAET9Y,KAAKo3a,QAAQ/7Z,IAAI,CACbvC,IAAK,OACLiF,MAAO,OACPC,OAAQ,OACRtF,KAAM,UAGd8ga,mBAAoB,SAASH,GACzB,GAAKr5a,KAAK25B,YAAe0/Y,EAAzB,CAGA,IAAIW,EAAoB/gN,EAAAA,EAAAA,UAAwBj5N,KAAKgvW,kBAAmBhvW,KAAKm5a,yBAC7E,GAAIa,EAAkBxwR,EAAEo9E,SAAW,GAAK5mO,KAAK23a,sBAAwBqC,EAAkBxwR,EAAE89E,IAAK,CAC1F,IAAI2yM,GAAoBn9R,EAAAA,EAAAA,IAAS98I,KAAKgvW,mBAAqBgrE,EAAkBxwR,EAAEo9E,UAC/Ej8B,EAAAA,EAAAA,IAAS3qM,KAAKgvW,kBAAmBirE,GAErC,GAAID,EAAkBnzX,EAAE+/K,SAAW,GAAK5mO,KAAKy3a,oBAAsBuC,EAAkBnzX,EAAEygL,IAAK,CACxF,IAAI4yM,GAA0Br9R,EAAAA,EAAAA,IAAU78I,KAAKgvW,mBAAqBgrE,EAAkBnzX,EAAE+/K,SAClFuzM,GAAwBt9R,EAAAA,EAAAA,IAAU78I,KAAK25B,YAAcqgZ,EAAkBnzX,EAAE+/K,UAC7Er8B,EAAAA,EAAAA,IAAUvqM,KAAKgvW,kBAAmBkrE,IAClC3vO,EAAAA,EAAAA,IAAUvqM,KAAK25B,WAAYwgZ,MAGnChB,sBAAuB,WACnB,OAAOn5a,KAAKyva,oBAAoB0J,yBAEpChF,0BAA2B,WACvB,OAAOzma,EAAAA,EAAAA,GAAE1N,KAAKyva,oBAAoBliX,UAAUkS,IAAMz/D,KAAKuxN,aAE3DooN,mBAAoB,SAAS35Y,GACzB,IAAIo6Y,EAAsBp6Y,EAAS6mB,EAAE0gL,KACjC8yM,EAAwBr6Y,EAASwpH,EAAE+9E,KACvC,OAAOvnO,KAAKy3a,mBAAqB2C,GAAuBp6a,KAAK23a,qBAAuB0C,GAAyBr6a,KAAK63a,mBAAqBI,EAAkBj4a,KAAKyva,oBAAoB4H,eAAiBr3a,KAAKyva,oBAAoB4H,eAEhOuC,qBAAsB,SAASU,GAC3Bt6a,KAAKm1N,WAAWt9L,YAAY,yEAAyEpY,SAAS66Z,IAElHT,oBAAqB,SAASU,EAAqBC,GAC/Cx6a,KAAKm1N,WAAWqB,YAAY,gCAAiC+jN,GAAqB/jN,YAAY,8BAA+BgkN,IAEjIV,qBAAsB,SAAS9lX,GAC3B,IAAIymX,GAAY/pN,EAAAA,EAAAA,GAAgB1wN,KAAKo3a,QAAQv3Z,IAAI,IAC7C66Z,IAAc16a,KAAKy3a,gBAAgBzjX,GAAQymX,EAAUlpa,OAASkpa,EAAUnpa,OAC5EtR,KAAKo3a,QAAQ/7Z,IAAI48Z,EAAkBjkX,GAAO0mX,GAC1C,IAgBIC,EAhBA5mX,EAAO/zD,KAAKy3a,gBAAgBzjX,GAAQ,OAAS,MAC7C/O,EAAejlD,KAAKy3a,gBAAgBzjX,GAAQ,QAAU,SACtD7jB,GAAUziC,EAAAA,EAAAA,GAAE1N,KAAKyva,oBAAoBliX,UAAUkS,IAC/Ck7O,EAAe1hF,EAAAA,EAAAA,OAAqB9oL,IAAY,CAChDr3B,IAAK,EACLJ,KAAM,GAENkia,EAAgB3hN,EAAAA,EAAAA,OAAqBj5N,KAAKgvW,mBAC1C6rE,EAAYJ,EAAUx1X,GACtB61X,EAAkBF,EAAc7mX,GAChCgnX,GAAcrqN,EAAAA,EAAAA,GAAgB1wN,KAAKgvW,kBAAkBnvV,IAAI,IAAIolC,GAC7DkoU,EAAiBxyE,EAAa5mP,GAC9BM,EAAgBlkB,EAAQtwB,IAAI,GAC5BguR,EAAax5O,IAAkBA,EAAchtD,gBAAiBqpN,EAAAA,EAAAA,GAAgBr8J,GAAepP,GAAgB,EAC7Gn/B,EAAMH,KAAKC,IAAIk1Z,EAAiB3tD,GAChCvnW,EAAMD,KAAKG,IAAIg1Z,EAAkBC,EAAa5tD,EAAiBt/E,GAG/D8sI,EADA,UAAY36a,KAAK6kB,OAAO,iBACRiB,EAAMg1Z,EACf,QAAU96a,KAAK6kB,OAAO,iBACbe,EAAMk1Z,EAAkBD,GAEvB/0Z,EAAMF,GAAO,EAAIk1Z,EAAkBD,EAAY,EAEpE,IAAI/hY,EAAc94C,KAAKyva,oBAAoBqI,uBAAuB9jX,GAC9DgnX,GAAqB9nK,EAAAA,EAAAA,IAAaynK,EAAgB7hY,EAAc94C,KAAK6kB,OAAO,eAAgBi0B,EAAaiiY,EAAcF,EAAY,EAAI/hY,GAC3I94C,KAAKo3a,QAAQ/7Z,IAAI04C,EAAMinX,IAE3BnD,iBAAkB,WACd,OAAO73a,KAAKyva,oBAAoBoI,oBAEpCkC,kBAAmB,SAASkB,GACpBA,GACAj7a,KAAKuxN,YAGbsjN,6BAlNwB,WAmNpB,MAGI70a,KAAK6kB,SAFIo2N,EADb,EACIA,QACQr0O,EAFZ,EAEIA,OAEJ,OAAOkC,EAAAA,EAAAA,GAAO,GAAI9I,KAAKuxN,WAAY,CAC/B3qN,OAAQA,EACRq0O,QAASA,EACTi3I,OAAQlyX,KAAKo3a,WAGrB3I,wBA7NwB,WA8NpBzua,KAAKyva,oBAAsB,IAAI0H,EAAAA,EAA0Bn3a,KAAK60a,iCAElEe,yBAA0B,WAClB51a,KAAK6kB,OAAO,YACZ7kB,KAAKm1N,WAAW95M,IAAI,CAChB/J,MAAO,OACPC,OAAQ,UAIpBkma,gBAAiB,SAASzjX,GACtB,OAAOh0D,KAAKyva,oBAAoBgI,gBAAgBzjX,IAEpD2jX,kBAAmB,SAAS3jX,GACxB,OAAOh0D,KAAKyva,oBAAoBkI,kBAAkB3jX,IAEtDknX,mBAAoB,SAAS1ta,GACzB0wB,aAAal+B,KAAKy4a,UAAUjra,KAEhCgra,qBAAsB,WAClBx4a,KAAKk7a,mBAAmB,QACxBl7a,KAAKk7a,mBAAmB,SAE5B3vL,OAAQ,WACJvrP,KAAKg5a,cAAch5a,KAAK6kB,OAAO,WAC/B7kB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9Bm0N,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,gBACL,IAAK,cACDxN,KAAK4ya,kBACL,MACJ,IAAK,aACGpsZ,EAAK5kB,OACL5B,KAAK6kB,OAAO,cAAc,GAE9B,MACJ,IAAK,SACD2B,EAAKgyF,eAAiBx4G,KAAKg5a,cAAcxyZ,EAAKgyF,eAC9Cx4G,KAAKyva,oBAAoB0L,aAAa30Z,EAAK5kB,OAC3C5B,KAAK0rP,cACL,MACJ,IAAK,YACL,IAAK,YACD,IAAIl+O,EAAOgZ,EAAKhZ,KAAKw+B,UAAU,EAAG,GAC9BxxB,EAAQ09Z,EAAqB1xZ,EAAKgyF,eACtCx4G,KAAKkqE,OACLyuW,EAAY34a,KAAMA,KAAK6kB,OAAO,UAAWrX,EAAMgN,GAC/C29Z,EAAYn4a,KAAMwN,GAClB,MACJ,IAAK,UACDxN,KAAKk7a,mBAAmB10Z,EAAK5kB,MAAQ,OAAS,QAC9C5B,KAAKuxN,SAAS/qM,GACd,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1Bg7B,KAAM,SAAS56C,GAIX,OAHIA,GACA5G,KAAK6kB,OAAO,SAAUje,GAEnB5G,KAAKuxN,eAGpBjxM,EAAAA,EAAAA,SAAkB,YAAam8X,GAC/B,yMCtZqB2+B,EAAAA,SAAAA,6IACjB,WACI,OAAOtya,EAAAA,EAAAA,IAAO,kEAA4B,CACtCmqZ,qBAAqB,mCAG7B,WACI,MAAO,kBAPMmoB,CAAkB/wC,EAAAA,GAUvC+wC,EAAUpuL,eAAiB,SAASv5K,GAChC42T,EAAAA,EAAAA,eAAqB52T,KAEzBnzD,EAAAA,EAAAA,SAAkB,UAAW86Z,GClB7B,gWCsNA,EA7LMC,WACF,WAAY/rW,IAAQ,eAChBtvE,KAAKuZ,KAAK+1D,sCAEd,SAAK03K,GACD,IACiBr7F,EAIbq7F,EAJAr7F,YACQxsI,EAGR6nO,EAHA7nO,OACkBm8Z,EAElBt0L,EAFAs0L,iBACoBC,EACpBv0L,EADAu0L,mBAEJv7a,KAAKyva,oBAAsB8L,EAC3Bv7a,KAAKw7a,kBAAoBF,EACzBt7a,KAAKy7a,QAAUt8Z,EACfnf,KAAK07a,aAAe/vR,EACpB3rJ,KAAKwjN,cACA73D,GAGL3rJ,KAAKmR,oCAET,SAAS3Q,GACLR,KAAK6sX,QAvBY,EAuBgB,EAAGrsX,yBAExC,SAAOA,GACHR,KAAK6sX,SA1BY,EA0BiB,EAAGrsX,2BAEzC,SAASA,GACLR,KAAK6sX,QAAQ,GA7BI,EA6BoBrsX,4BAEzC,SAAUA,GACNR,KAAK6sX,QAAQ,EAhCI,EAgCmBrsX,4BAExC,WAAY,WACJ2tI,EAAanuI,KAAK27a,iBACtBhmN,EAAAA,EAAAA,GAAgB31N,KAAKy7a,QAASttS,EAAWytS,gBAAgB,SAAAp7a,GACrD,EAAKq1N,kBAAkBr1N,MAE3Bm1N,EAAAA,EAAAA,GAAgB31N,KAAKy7a,QAASttS,EAAW0tS,iBAAiB,SAAAr7a,GACtD,EAAKs7a,mBAAmBt7a,MAE5Bm1N,EAAAA,EAAAA,GAAgB31N,KAAKy7a,QAASttS,EAAW67Q,cAAc,SAAAxpZ,GACnD,EAAKs1N,gBAAgBt1N,iCAG7B,WACI,IAAI2tI,EAAanuI,KAAK27a,iBACtBhmN,EAAAA,EAAAA,IAAiB31N,KAAKy7a,QAASttS,EAAWytS,gBAC1CjmN,EAAAA,EAAAA,IAAiB31N,KAAKy7a,QAASttS,EAAW0tS,iBAC1ClmN,EAAAA,EAAAA,IAAiB31N,KAAKy7a,QAASttS,EAAW67Q,4CAE9C,WAII,MAAO,CACH4xB,gBAJiBxtN,EAAAA,EAAAA,cAAa2tN,EAAAA,GAAgB,eAK9CF,iBAJkBztN,EAAAA,EAAAA,cAAa4tN,EAAAA,GAAe,eAK9ChyB,cAJe57L,EAAAA,EAAAA,cAAa6tN,EAAAA,GAAc,iDAOlD,SAAkBz7a,GACd,IAAI07a,EAAiBl8a,KAAKm8a,qBAC1Bn8a,KAAKo8a,YAAc,CACfpra,EAAG,EACH2M,EAAG,GAEPnd,EAAEsrS,eAAiB,GACnBtrS,EAAEu4N,aAAemjN,EAAepja,IAChCtY,EAAEw4N,gBAAkBkjN,EAAel+Z,OACnCxd,EAAEq4N,cAAgBqjN,EAAexja,KACjClY,EAAEs4N,eAAiBojN,EAAen+Z,wCAEtC,SAAmBvd,GACf,IAAIm6S,EAAe,CACf7hS,IAAKtY,EAAE+K,OAAOoS,EAAI3d,KAAKo8a,YAAYz+Z,EACnCjF,KAAMlY,EAAE+K,OAAOyF,EAAIhR,KAAKo8a,YAAYpra,GAExChR,KAAKq8a,cAAc1hI,GACnB36S,KAAKo8a,YAAc57a,EAAE+K,sCAEzB,SAAgBiP,GACZxa,KAAKyva,oBAAoB6M,cACzBt8a,KAAKyva,oBAAoB3D,2BAA2BtxZ,0BAExD,SAAQ1B,EAAKJ,EAAMlY,GACf,GAAKR,KAAK07a,aAAV,CAGAl7a,EAAE6G,iBACF7G,EAAE4G,kBACF,IAAImE,EAASvL,KAAKu8a,2BAA2Bzja,EAAKJ,GAClD1Y,KAAKq8a,cAAc9wa,GACnBvL,KAAK81N,gBAAgBt1N,8CAEzB,SAA2BsY,EAAKJ,GAC5B,IAAIwja,EAAiBl8a,KAAKm8a,qBAC1B,MAAO,CACHrja,KAAKo6P,EAAAA,EAAAA,IAAap6P,GAAMoja,EAAepja,IAAKoja,EAAel+Z,QAC3DtF,MAAMw6P,EAAAA,EAAAA,IAAax6P,GAAOwja,EAAexja,KAAMwja,EAAen+Z,+CAGtE,WACI,IAAIvb,EAAWo3N,EAAAA,EAAAA,cACX95M,EAAY9f,KAAKyva,oBAAoB+M,qBAAqB38Z,IAAI,GAC9D22Y,GAAiBl+L,EAAAA,EAAAA,IAAcx4M,GAC/BukY,GAAkB7rL,EAAAA,EAAAA,IAAe14M,GAKrC,OAJIm7D,EAAAA,EAAAA,IAASn7D,KACTukY,EAAkB1+X,KAAKC,IAAIpjB,EAAS+lC,KAAK8e,aAAcg9V,GACvDmS,EAAiB7wY,KAAKC,IAAIpjB,EAAS+lC,KAAKi3B,YAAag3V,IAElD,CACHllZ,MAAOklZ,EACPjlZ,OAAQ8yY,wCAGhB,WACI,IAAIvkY,EAAY9f,KAAKyva,oBAAoB+M,qBAAqB38Z,IAAI,GAClE,OAAOo7D,EAAAA,EAAAA,IAASn7D,GAAa,CACzBhH,IAAK,EACLJ,KAAM,IACN+9O,EAAAA,EAAAA,IAAU32O,sCAElB,WACI,OAAO22O,EAAAA,EAAAA,IAAUz2P,KAAKw7a,iDAE1B,WACI,IAAIiB,EAAsBz8a,KAAK08a,0BAC3BC,EAAoB38a,KAAK48a,wBAC7B,MAAO,CACH5ra,EAAGyra,EAAoBnra,MAAQqra,EAAkBrra,MACjDqM,EAAG8+Z,EAAoBlra,OAASora,EAAkBpra,sCAG1D,WACI,MAGIvR,KAAK48a,wBAFEtra,EADX,EACIA,MACQC,EAFZ,EAEIA,OAEAsra,EAAoB78a,KAAKyva,oBAAoBoN,kBACjD,MAAO,CACH7ra,EAAGM,EAAQura,EACXl/Z,EAAGpM,EAASsra,gCAGpB,WACI,IAAIC,EAAY98a,KAAK+8a,iBACjBC,EAAah9a,KAAKi9a,iBACtB,MAAO,CACHjsa,EAAG8ra,EAAU9ra,EAAIgsa,EAAWhsa,EAC5B2M,EAAGm/Z,EAAUn/Z,EAAIq/Z,EAAWr/Z,wCAGpC,WACI,MAAO,CACHrM,MAAOtR,KAAKw7a,kBAAkB1+Z,YAC9BvL,OAAQvR,KAAKw7a,kBAAkBz+Z,gDAGvC,WACI,IAAI+/Z,EAAY98a,KAAKk9a,gBAErB,KADoBJ,EAAUn/Z,GAAK,GAAKm/Z,EAAU9ra,GAAK,GAEnD,MAAO,CACH8H,IAAK,EACLkF,OAAQ,EACRtF,KAAM,EACNqF,MAAO,GAGf,IAAIo/Z,EAAkBn9a,KAAKo9a,sBACvBC,EAAoBr9a,KAAKm5a,wBACzB6D,EAAah9a,KAAKi9a,iBACtB,MAAO,CACHnka,IAAKqka,EAAgBrka,IAAMuka,EAAkBvka,IAAMkka,EAAWr/Z,EAC9DK,QAASm/Z,EAAgBrka,IAAMuka,EAAkBvka,IAAMgka,EAAUn/Z,EACjEjF,KAAMyka,EAAgBzka,KAAO2ka,EAAkB3ka,KAAOska,EAAWhsa,EACjE+M,OAAQo/Z,EAAgBzka,KAAO2ka,EAAkB3ka,KAAOoka,EAAU9ra,gCAG1E,SAAczF,GACV,IAAIu2E,GAAkBwyI,EAAAA,EAAAA,IAAOt0N,KAAKw7a,mBAC9BrP,EAAc,CACdzzZ,KAAMopE,EAAgBppE,KAAOnN,EAAOmN,KACpCI,IAAKgpE,EAAgBhpE,IAAMvN,EAAOuN,MAEtCmjC,EAAAA,EAAAA,IAAKj8C,KAAKw7a,kBAAmBrP,SA1L/BkP,yBCuBFiC,EAAY,cAGZC,EAAyB,sBAMzBC,GAA6BpvN,EAAAA,EAAAA,cAAaC,EAAAA,GAAgBivN,GAC1DnvN,GAAuBC,EAAAA,EAAAA,cAAaG,EAAAA,GAAe+uN,GACnDG,GAA2BrvN,EAAAA,EAAAA,cAAaK,EAAAA,GAAc6uN,GACtDI,EAA2B,CAC3Bhla,KAAM,kBACNI,IAAK,iBACLiF,MAAO,mBACPC,OAAQ,qBAERG,EAAY4zM,EAAAA,QAAAA,QAAqB,CACjCU,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bl3M,QAAS,MACTgkC,KAAM,IACNs/X,cAAe,SACf3vY,UAAM,EACNvvB,SAAU,GACVO,SAAU,IACVJ,UAAW,GACX8G,UAAW,IACXk4Z,cAAe,KACfv+U,SAAU,KACVw+U,YAAa,KACbC,gBAAgB,EAChBC,iBAAiB,KAGzBvrW,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SArCF,iBAuClBgrO,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAKg+a,kBAETliN,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKk5U,kBAETA,eAAgB,WACZl5U,KAAKi+a,mBAAqBj+a,KAAKw7N,sBAAsB,iBACrDx7N,KAAKk+a,iBAAmBl+a,KAAKw7N,sBAAsB,eACnDx7N,KAAKm+a,cAAgBn+a,KAAKw7N,sBAAsB,aAEpDwiN,eAAgB,WAAW,WACvBh+a,KAAKo+a,SAAW,GAChB,IAAI/ja,EAAUra,KAAK6kB,OAAO,WAC1B,GAAI,SAAWxK,GAAYA,EAA3B,CAGA,IAAIgka,EAAa,QAAUhka,EAAU,CAAC,MAAO,SAAU,OAAQ,SAAWA,EAAQ5M,MAAM,KACpF6wa,EAAmB,IACvB7ja,EAAAA,EAAAA,IAAK4ja,GAAY,SAACx9a,EAAO09a,GACrBD,EAAiBC,IAAc,EAC/B,EAAKC,cAAcD,MAEvBD,EAAiBtga,QAAUsga,EAAiBvga,OAAS/d,KAAKw+a,cAAc,uBACxEF,EAAiBtga,QAAUsga,EAAiB5la,MAAQ1Y,KAAKw+a,cAAc,sBACvEF,EAAiBxla,KAAOwla,EAAiBvga,OAAS/d,KAAKw+a,cAAc,oBACrEF,EAAiBxla,KAAOwla,EAAiB5la,MAAQ1Y,KAAKw+a,cAAc,mBACpEx+a,KAAKqzN,yBAETmrN,cAAe,SAASD,GACpB,IAAIt+B,GAAUvyY,EAAAA,EAAAA,GAAE,SAAS+R,SAAS89Z,GAAwB99Z,SAAS89Z,uBAA+BgB,GAAYtmZ,SAASj4B,KAAK6Z,YAC5H7Z,KAAKo+a,SAASx9a,KAAKq/Y,IAEvB5sL,qBAAsB,WAClB,IAAIrzN,KAAK6kB,OAAO,YAAhB,CAGA,IAAIwa,EAAW,GACfA,EAASm+Y,GAA8Bx9a,KAAK61N,kBAAkBprN,KAAKzK,MACnEq/B,EAAS8uL,GAAwBnuN,KAAKy+a,aAAah0a,KAAKzK,MACxDq/B,EAASo+Y,GAA4Bz9a,KAAK81N,gBAAgBrrN,KAAKzK,MAC/DA,KAAKo+a,SAASn+a,SAAQ,SAAAy+a,GAClB/oN,EAAAA,EAAAA,GAAgB+oN,EAAer/Y,EAAU,CACrCg8G,UAAW,OACXw3E,WAAW,SAIvBiE,qBAAsB,WAClB92N,KAAKo+a,SAASn+a,SAAQ,SAAAy+a,GAClB/oN,EAAAA,EAAAA,IAAiB+oN,OAGzBC,qBAAsB,SAASC,GAC3BA,EAAqB5+a,KAAKqzN,uBAAyBrzN,KAAK82N,wBAE5D+nN,gBAAiB,WACb,IAAIhla,EAAW7Z,KAAK6Z,WACpB,MAAO,eAAiBA,EAASwB,IAAI,aAAe,CAChD/J,OAAOgnN,EAAAA,EAAAA,IAAcz+M,GACrBtI,QAAQinN,EAAAA,EAAAA,IAAe3+M,IACvB,CACAvI,OAAOwrI,EAAAA,EAAAA,IAASjjI,GAChBtI,QAAQsrI,EAAAA,EAAAA,IAAUhjI,KAG1Bg8M,kBAAmB,SAASr1N,GACxB,IAAIqZ,EAAW7Z,KAAK6Z,WAChBA,EAASigB,GAAG,4CACZt5B,EAAEulC,QAAS,GAGf/lC,KAAK8+a,sBAAqB,GAC1B9+a,KAAK++a,aAAe/+a,KAAKg/a,gBAAgBx+a,GACzCR,KAAKi/a,kBAAmB3qN,EAAAA,EAAAA,IAAOz6M,GAC/B7Z,KAAKk/a,aAAel/a,KAAK6+a,kBACzB7+a,KAAKm/a,mBAAmB3+a,GACxBR,KAAKi+a,mBAAmB,CACpBzja,MAAOha,EACP8Q,MAAOtR,KAAKk/a,aAAa5ta,MACzBC,OAAQvR,KAAKk/a,aAAa3ta,OAC1B8I,QAASra,KAAK++a,eAElBv+a,EAAEsrS,eAAiB,OAEvBgzI,qBAAsB,SAASl9a,GAC3B5B,KAAK6Z,WAAW28M,YA9HO,wBA8H+B50N,IAE1Du9a,mBAAoB,SAAS3+a,GACzB,IAAIwtC,EAAOhuC,KAAK01N,WAChB,GAAK1nL,EAAL,CAGA,IAAIiyW,GAAUvyY,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,wBAC9Bq1a,GAAc9mN,EAAAA,EAAAA,IAAc2nL,GAC5BnqC,GAAet9I,EAAAA,EAAAA,IAAeynL,GAC9Bo/B,EAAep/B,EAAQ10Y,SACvB2sN,EAAalqL,EAAKziC,OAClB25C,EAAellD,KAAKs/a,uBACxB9+a,EAAEq4N,cAAgB74N,KAAKu/a,eAAiBF,EAAa3ma,KAAOw/M,EAAWx/M,KAAOwsC,EAAas6X,QAC3Fh/a,EAAEs4N,eAAiB94N,KAAKy/a,gBAAkBvnN,EAAWx/M,KAAOs1B,EAAK18B,MAAQ+ta,EAAa3ma,KAAO0ma,EAAcl6X,EAAas6X,QACxHh/a,EAAEu4N,aAAe/4N,KAAK0/a,cAAgBL,EAAavma,IAAMo/M,EAAWp/M,IAAMosC,EAAay6X,QACvFn/a,EAAEw4N,gBAAkBh5N,KAAK4/a,iBAAmB1nN,EAAWp/M,IAAMk1B,EAAKz8B,OAAS8ta,EAAavma,IAAMg9V,EAAe5wT,EAAay6X,UAE9H5mY,gBAAiB,SAASl/B,EAAUwhI,GAChC,IAAIpgE,EAAAA,EAAAA,IAASphE,EAASgG,IAAI,IACtB,OAAO,EAEX,IAAIi5B,EAAcj/B,EAASwB,IAAIqia,EAAyBriS,IACxD,OAAOplG,SAAS6C,IAAgB,GAEpC+mY,eAAgB,SAASxkS,EAAWz5I,GAChC,IAAI4W,EAAOxY,KAAKk/a,aAEhB,OAAOt9a,GADM,MAAQy5I,EAAY7iI,EAAKlH,MAAQkH,EAAKjH,OAASiH,EAAKjH,OAASiH,EAAKlH,QAGnFwua,sBAAuB,SAAS94L,GAC5B,IACOh2O,EAEHg2O,EAFAh2O,EACG2M,EACHqpO,EADArpO,EAEAoia,EAAgB//a,KAAK6/a,eAAe,IAAK7ua,GAC7C,GAAI+ua,GAAiBpia,EACjB,MAAO,CACH3M,EAAGA,EACH2M,EAAGoia,GAGX,IAAIC,EAAgBhgb,KAAK6/a,eAAe,IAAKlia,GAC7C,OAAIqia,GAAiBhva,EACV,CACHA,EAAGgva,EACHria,EAAGA,GAGJ,CACH3M,EAAG,EACH2M,EAAG,IAGXsia,kBAAmB,SAASlsX,GACxB,IAAImsX,EAAQlgb,KAAK++a,aACjB,MAAI,MAAQhrX,EACDmsX,EAAMxna,KAAO,OAAS,QAEtBwna,EAAMpna,IAAM,MAAQ,UAGnCqna,aAAc,SAASpsX,EAAMnyD,GACzB,IAAI6yE,EACA2rW,EAAgBpgb,KAAKigb,kBAAkBlsX,GAC3C,OAAOpuC,KAAKG,IAAIlkB,EAAO,QAAU6yE,EAAQz0E,KAAK,IAAI47B,OAAOwkZ,EAAe,qBAAkB,IAAW3rW,EAAQA,EAAQ,MAEzH4rW,wBAAyB,SAASrja,GAAO,WACjCsja,GAAcroN,EAAAA,EAAAA,GAAS,GAAIj7M,GAC3BxE,EAAOxY,KAAKk/a,aAChB,EAKIl/a,KAAK6kB,SAJKpG,EADd,EACIA,SACWG,EAFf,EAEIA,UACUI,EAHd,EAGIA,SACW0G,EAJf,EAIIA,UAEAo3H,EAAW,kBAAMtkI,EAAKlH,MAAQgva,EAAYtva,GAC1C6rI,EAAY,kBAAMrkI,EAAKjH,OAAS+ua,EAAY3ia,GAC5C4ia,EAAW,SAAAxsX,GAAI,OAAIusX,EAAYvsX,KAAU,EAAKosX,aAAapsX,EAAMusX,EAAYvsX,KAC7EysX,EAAY,kBAAMntK,EAAAA,EAAAA,IAAQv2H,IAAYr+H,EAAUO,IAAauha,EAAS,MACtEE,EAAY,kBAAMptK,EAAAA,EAAAA,IAAQx2H,IAAaj+H,EAAW8G,IAAc66Z,EAAS,MAC7E,IAAKC,IAAa,CACd,IAAIxva,EAAIhR,KAAKmgb,aAAa,KAAKjtK,EAAAA,EAAAA,IAAap2H,IAAYr+H,EAAUO,GAAYxG,EAAKlH,OACnFgva,EAAc,CACVtva,EAAGA,EACH2M,EAAG3d,KAAK6/a,eAAe,IAAK7ua,IAGpC,IAAKyva,IAAa,CACd,IAAI9ia,EAAI3d,KAAKmgb,aAAa,KAAKjtK,EAAAA,EAAAA,IAAar2H,IAAaj+H,EAAW8G,GAAalN,EAAKjH,QACtF+ua,EAAc,CACVtva,EAAGhR,KAAK6/a,eAAe,IAAKlia,GAC5BA,EAAGA,GAGX,OAAO6ia,KAAeC,IAAcH,EAAc,CAC9Ctva,EAAG,EACH2M,EAAG,IAGX+ia,UAAW,SAASv4L,GAChB,IACOn3O,EAEHm3O,EAFAn3O,EACG2M,EACHwqO,EADAxqO,EAEAnF,EAAOxY,KAAKk/a,aAChB,EAKIl/a,KAAK6kB,SAJKpG,EADd,EACIA,SACWG,EAFf,EAEIA,UACUI,EAHd,EAGIA,SACW0G,EAJf,EAIIA,UAEJ,MAAO,CACH1U,GAAGkiQ,EAAAA,EAAAA,IAAa16P,EAAKlH,MAAQN,EAAGyN,EAAUO,GAAYxG,EAAKlH,MAC3DqM,GAAGu1P,EAAAA,EAAAA,IAAa16P,EAAKjH,OAASoM,EAAGiB,EAAW8G,GAAalN,EAAKjH,SAGtEova,kBAAmB,SAASp1a,GACxB,IAAI20a,EAAQlgb,KAAK++a,aACb6B,EAAwB5gb,KAAK6gb,iBAAiBX,IAAUlgb,KAAK6kB,OAAO,mBACpE7H,EAAQ,CACRhM,EAAGzF,EAAOyF,GAAKkva,EAAMxna,MAAQ,EAAI,GACjCiF,EAAGpS,EAAOoS,GAAKuia,EAAMpna,KAAO,EAAI,IAEpC,GAAI8na,EAAuB,CACvB,IAAIE,EAAoB9gb,KAAK8/a,sBAAsB9ia,GAEnDA,EAD8Bhd,KAAKqgb,wBAAwBS,OAExD,CACH,IAAIR,EAActgb,KAAK0gb,UAAU1ja,GAEjCA,EADyBhd,KAAK+gb,aAAaT,GAG/C,OAAOtja,GAEXgka,gBAAiB,SAAShka,EAAO4rO,GAC7B,IACWt3O,EAEPs3O,EAFAt3O,MACQC,EACRq3O,EADAr3O,OAEAyuB,EAAWhgC,KAAKi/a,iBAChBiB,EAAQlgb,KAAK++a,aACblla,EAAW7Z,KAAK6Z,WAChBo8T,EAAcj2U,KAAK6+a,kBACnBv3X,EAAYtqC,EAAMW,GAAKuia,EAAMpna,KAAO,EAAI,KAAOm9T,EAAY1kU,QAAUA,GAAUA,GAC/Ew4I,EAAa/sI,EAAMhM,GAAKkva,EAAMxna,MAAQ,EAAI,KAAOu9T,EAAY3kU,OAASA,GAASA,IACnF2qC,EAAAA,EAAAA,IAAKpiC,EAAU,CACXf,IAAKknB,EAASlnB,KAAOona,EAAMpna,IAAMwuC,EAAY,GAC7C5uC,KAAMsnB,EAAStnB,MAAQwna,EAAMxna,KAAOqxI,EAAa,MAGzD00R,aAAc,SAASj+a,GACnB,IAAI+K,EAASvL,KAAKihb,WAAWzgb,GACzBwc,EAAQhd,KAAK2gb,kBAAkBp1a,GAC/BuwZ,EAAa97Z,KAAKkhb,kBAAkBlka,GACxChd,KAAKghb,gBAAgBhka,EAAO8+Y,GAC5B97Z,KAAKmhb,qBAAqB3gb,EAAGs7Z,IAEjColB,kBAAmB,SAASlka,GACxB,IAAIoka,EAAiB,SAAA5oa,GAAI,MAAI,OAASA,EAAKwzB,UAAUxzB,EAAKlY,OAAS,IAC/D+gb,EAAwB,WAAarhb,KAAK6kB,OAAO,iBACjDrM,EAAOxY,KAAKk/a,aACZ5ta,EAAQkH,EAAKlH,MAAQ0L,EAAMhM,EAC3BO,EAASiH,EAAKjH,OAASyL,EAAMW,EAC7B2ja,EAAethb,KAAK6Z,WAAWgG,IAAI,GAAG5B,MACtCsja,EAAoBvka,EAAMhM,GAAKqwa,GAAyBD,EAAeE,EAAahwa,OACpFkwa,EAAqBxka,EAAMW,GAAK0ja,GAAyBD,EAAeE,EAAa/va,QAWzF,OAVIgwa,GACAvhb,KAAK6kB,OAAO,CACRvT,MAAOA,IAGXkwa,GACAxhb,KAAK6kB,OAAO,CACRtT,OAAQA,IAGT,CACHD,MAAOiwa,EAAoBjwa,EAAQkH,EAAKlH,MACxCC,OAAQiwa,EAAqBjwa,EAASiH,EAAKjH,SAGnD4va,qBAAsB,SAAS3gb,EAAGm4S,GAC9B,IACWrnS,EAEPqnS,EAFArnS,MACQC,EACRonS,EADApnS,OAEJvR,KAAKm+a,cAAc,CACf3ja,MAAOha,EACP8Q,MAAOtR,KAAK6kB,OAAO,UAAYvT,EAC/BC,OAAQvR,KAAK6kB,OAAO,WAAatT,EACjC8I,QAASra,KAAK++a,gBAElBl/H,EAAAA,EAAAA,IAAmB7/S,KAAK6Z,aAE5Bgna,iBAAkB,SAAAX,GAAK,OAAI,IAAMp5a,OAAO8S,OAAOsma,GAAOx2a,QAAO,SAAC+3a,EAAK7/a,GAAN,OAAgB6/a,EAAM7/a,IAAO,IAC1Fq/a,WAAY,SAASzgb,GACjB,IAAI+K,EAAS/K,EAAE+K,OACX20a,EAAQlgb,KAAK++a,aAOjB,OANKmB,EAAMxna,MAASwna,EAAMnia,QACtBxS,EAAOyF,EAAI,GAEVkva,EAAMpna,KAAQona,EAAMlia,SACrBzS,EAAOoS,EAAI,GAERpS,GAEXw1a,aAAc,SAAS/ja,GACnB,MAAO,WAAahd,KAAK6kB,OAAO,iBAAmB7kB,KAAK0hb,aAAa1ka,GAAShd,KAAK2hb,gBAAgB3ka,IAEvG4ka,UAAW,WACP,OAAOp7M,EAAAA,EAAAA,cAAaxmO,KAAK6kB,OAAO,SAAU7kB,KAAK6kB,OAAO,oBAE1D88Z,gBAAiB,SAAS3ka,GACtB,IAAIy5L,EAAQz2M,KAAK4hb,YACjB,MAAO,CACH5wa,EAAGgM,EAAMhM,EAAIgM,EAAMhM,EAAIylM,EAAMjtD,EAC7B7rI,EAAGX,EAAMW,EAAIX,EAAMW,EAAI84L,EAAM5vJ,IAGrC66X,aAAc,SAAS1ka,GACnB,IAAIkja,EAAQlgb,KAAK++a,aACbxza,EAAS,CACTyF,EAAGgM,EAAMhM,GAAKkva,EAAMxna,MAAQ,EAAI,GAChCiF,EAAGX,EAAMW,GAAKuia,EAAMpna,KAAO,EAAI,IAE/B29L,EAAQz2M,KAAK4hb,YACb5hZ,EAAWhgC,KAAKi/a,iBAChBzma,EAAOxY,KAAKk/a,aACZ2C,EAAO3B,EAAMxna,KAAOsnB,EAAStnB,KAAOsnB,EAAStnB,KAAOF,EAAKlH,MACzDwwa,EAAO5B,EAAMpna,IAAMknB,EAASlnB,IAAMknB,EAASlnB,IAAMN,EAAKjH,OACtDwwa,GAAaF,EAAOt2a,EAAOyF,GAAKylM,EAAMjtD,EACtCw4R,GAAaF,EAAOv2a,EAAOoS,GAAK84L,EAAM5vJ,EACtC2M,EAAO7tC,KAAK6tC,MAAS,SAAAxiD,GAErB,OAAI,KADJA,GAAKA,IACUw4B,MAAMx4B,GACVA,EAEJA,EAAI,EAAI,GAAK,GAEpBixa,EAAkB,SAACxrO,EAAOlrM,GAAR,OAAoB,EAAI,GAAKioD,EAAKjoD,IAAW,EAAIkrM,GACnEyrO,EAAgB,SAAC32a,EAAQkrM,GAAT,OAAmB9wL,KAAK23B,IAAI/xC,GAAU,GAAKkrM,GAC3D0rO,EAAa52a,EAAOyF,EAAI+wa,EACxBK,EAAa72a,EAAOoS,EAAIqka,EACxBD,EAAYE,EAAgBxrO,EAAMjtD,EAAGj+I,EAAOyF,KAC5Cmxa,GAAc1rO,EAAMjtD,GAEpBw4R,EAAYC,EAAgBxrO,EAAM5vJ,EAAGt7C,EAAOoS,KAC5Cyka,GAAc3rO,EAAM5vJ,GAExB,IAAIw7X,GAAmBnC,EAAMxna,OAAQwna,EAAMnia,OAAWmka,EAAc32a,EAAOyF,EAAGylM,EAAMjtD,GAAkB,EAAb24R,EACrFG,GAAmBpC,EAAMpna,MAAOona,EAAMlia,QAAYkka,EAAc32a,EAAOoS,EAAG84L,EAAM5vJ,GAAkB,EAAbu7X,EACzF,MAAO,CACHpxa,EAAGqxa,GAAmBnC,EAAMxna,MAAQ,EAAI,GACxCiF,EAAG2ka,GAAmBpC,EAAMpna,KAAO,EAAI,KAG/Ckma,gBAAiB,SAASx+a,GACtB,IAAI2vC,GAAUziC,EAAAA,EAAAA,GAAElN,EAAEoG,QACd27a,EAAwBpyY,EAAQ4/K,SAASyyN,uCACzCC,EAAyBtyY,EAAQ4/K,SAASyyN,wCAC1CE,EAA2BvyY,EAAQ4/K,SAASyyN,0CAC5CG,EAA4BxyY,EAAQ4/K,SAASyyN,2CACjD,MAAO,CACH1pa,IAAKq3B,EAAQ4/K,SApYQ,4BAoYgCwyN,GAAyBE,EAC9E/pa,KAAMy3B,EAAQ4/K,SAnYQ,6BAmYiCwyN,GAAyBG,EAChF1ka,OAAQmyB,EAAQ4/K,SArYQ,+BAqYmC2yN,GAA4BC,EACvF5ka,MAAOoyB,EAAQ4/K,SApYQ,8BAoYkC0yN,GAA0BE,IAG3FjtN,SAAU,WACN,IAAI1nL,EAAOhuC,KAAK6kB,OAAO,QAIvB,OAHIq2D,EAAAA,EAAAA,IAAWltC,KACXA,EAAOA,EAAKvtC,KAAKT,QAEjB+6E,EAAAA,EAAAA,IAAc/sC,GACPhuC,KAAK4ib,mBAAmB50Y,GAE5BhuC,KAAK6ib,oBAAoB70Y,IAEpCsxY,qBAAsB,WAClB,IAAItxY,EAAOhuC,KAAK6kB,OAAO,QAEnBqgC,EAAe,CACfy6X,QAAS,EACTH,QAAS,GAEb,KALiBtkW,EAAAA,EAAAA,IAAWltC,MAAU+sC,EAAAA,EAAAA,IAAc/sC,GAKrC,CACX,IAAI80Y,GAAcp1a,EAAAA,EAAAA,GAAEsgC,GAAM,IACtBitC,EAAAA,EAAAA,IAAS6nW,KACT59X,EAAas6X,QAAUsD,EAAY75Y,YACnCic,EAAay6X,QAAUmD,EAAY95Y,aAG3C,OAAOkc,GAEX09X,mBAAoB,SAAS50Y,GACzB,IAAIn/B,EAAS,CACTyC,MAAO08B,EAAKjwB,MAAQiwB,EAAKt1B,KACzBnH,OAAQy8B,EAAKhwB,OAASgwB,EAAKl1B,IAC3BvN,OAAQ,CACJmN,KAAMs1B,EAAKt1B,KACXI,IAAKk1B,EAAKl1B,MAIlB,OADA9Y,KAAK+ib,qBAAqBl0a,GACnBA,GAEXg0a,oBAAqB,SAAS70Y,GAC1B,IACIn/B,EADA2hN,GAAQ9iN,EAAAA,EAAAA,GAAEsgC,GAad,OAXIwiL,EAAMlwN,SACNuO,EAAS,CACLyC,OAAOosQ,EAAAA,EAAAA,IAAcltD,GACrBj/M,QAAQosQ,EAAAA,EAAAA,IAAentD,GACvBjlN,QAAQzC,EAAAA,EAAAA,GAAO,CACXgQ,IAAK,EACLJ,KAAM,IACPuiE,EAAAA,EAAAA,IAASu1I,EAAM,IAAM,GAAKA,EAAMjlN,WAEvCvL,KAAK+ib,qBAAqBl0a,EAAQ2hN,IAE/B3hN,GAEXk0a,qBAAsB,SAASl0a,EAAQ2hN,GACnC,IAAIwyN,EAAiBxyN,EAAQxwN,KAAK+4C,gBAAgBy3K,EAAO,QAAU,EAC/DyyN,EAAgBzyN,EAAQxwN,KAAK+4C,gBAAgBy3K,EAAO,OAAS,EACjE3hN,EAAOtD,OAAOmN,MAAQsqa,EAAiBhjb,KAAK+4C,gBAAgB/4C,KAAK6Z,WAAY,QAC7EhL,EAAOtD,OAAOuN,KAAOmqa,EAAgBjjb,KAAK+4C,gBAAgB/4C,KAAK6Z,WAAY,OAC3EhL,EAAOyC,QAASgnN,EAAAA,EAAAA,IAAct4N,KAAK6Z,aAAc6jQ,EAAAA,EAAAA,IAAc19Q,KAAK6Z,YACpEhL,EAAO0C,SAAUinN,EAAAA,EAAAA,IAAex4N,KAAK6Z,aAAc8jQ,EAAAA,EAAAA,IAAe39Q,KAAK6Z,aAE3Ei8M,gBAAiB,SAASt1N,GACtB,IAAIqZ,EAAW7Z,KAAK6Z,WACpB7Z,KAAKk+a,iBAAiB,CAClB1ja,MAAOha,EACP8Q,OAAOgnN,EAAAA,EAAAA,IAAcz+M,GACrBtI,QAAQinN,EAAAA,EAAAA,IAAe3+M,GACvBQ,QAASra,KAAK++a,eAElB/+a,KAAK8+a,sBAAqB,IAE9BoE,aAAc,SAAS5xa,GACnBtR,KAAK6kB,OAAO,SAASquP,EAAAA,EAAAA,IAAa5hQ,EAAOtR,KAAK6kB,OAAO,YAAa7kB,KAAK6kB,OAAO,eAElFs+Z,cAAe,SAAS5xa,GACpBvR,KAAK6kB,OAAO,UAAUquP,EAAAA,EAAAA,IAAa3hQ,EAAQvR,KAAK6kB,OAAO,aAAc7kB,KAAK6kB,OAAO,gBAErFq3M,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,WACDxN,KAAK2+a,sBAAsBn4Z,EAAK5kB,OAChC5B,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,UACDxmB,KAAK0rP,cACL,MACJ,IAAK,WACL,IAAK,YACDpvB,EAAAA,EAAAA,OAAet8N,KAAKkjb,cAAa5qN,EAAAA,EAAAA,IAAct4N,KAAK6Z,aACpD,MACJ,IAAK,YACL,IAAK,aACDyiN,EAAAA,EAAAA,OAAet8N,KAAKmjb,eAAc3qN,EAAAA,EAAAA,IAAex4N,KAAK6Z,aACtD,MACJ,IAAK,WACL,IAAK,gBACL,IAAK,cACD7Z,KAAKk5U,iBACL,MACJ,IAAK,OACL,IAAK,gBACL,IAAK,OACL,IAAK,iBACL,IAAK,kBACD,MACJ,QACIl5U,KAAKuxN,SAAS/qM,KAG1B+kO,OAAQ,WACJvrP,KAAK6Z,WAAWwC,KAAK,wBAA8B7a,UAEvDgoP,cAAe,WACX,OAAO,MAGflpO,EAAAA,EAAAA,SAAkBg9Z,EAAWn/Z,GAC7B,sJCnjBIm2Q,EAAY,CAAC,aAAc,qBAAsB,sBAAuB,oBAAqB,qBAc7F7uQ,GAASwoM,EAAAA,EAAAA,MACPm1N,EAAAA,SAAAA,iCACF,WAAYp8L,GAAM,sBACd,IACgB8jJ,EAKZ9jJ,EALA8jJ,WACoBu4C,EAIpBr8L,EAJAq8L,mBACqBC,EAGrBt8L,EAHAs8L,oBACmBC,EAEnBv8L,EAFAu8L,kBACmB1G,EACnB71L,EADA61L,kBACMr2Z,GAAOkuQ,EAAAA,EAAAA,GAA8B1tC,EAAMstC,GAPvC,OAQd,cAAM9tQ,IACDwjT,QAAS/xG,EAAAA,EAAAA,GAAS,GAAI,EAAK+xG,OAAQ,CACpC8gE,WAAYA,EACZu4C,mBAAoBA,EACpBC,oBAAqBA,EACrBC,kBAAmBA,EACnB1G,kBAAmBA,IAEvB,EAAK2G,2BAAwB,EAC7B,EAAKC,6BAjBS,yCAmBlB,SAAe34C,GACX9qY,KAAKgqU,OAAO8gE,WAAaA,EACrBA,EACA9qY,KAAK0jb,qBAEL1jb,KAAK2jb,wDAGb,WACI,OAAO3jb,KAAKwjb,qDAEhB,WACI,OAAIxjb,KAAKgqU,OAAOs5G,oBACL,EAEJtjb,KAAKgqU,OAAO6yG,uBAUvB,SAAsBA,GAClB78a,KAAKgqU,OAAO6yG,kBAAoBA,iCATpC,SAAsB0G,GAClBvjb,KAAKgqU,OAAOu5G,kBAAoBA,EAChCvjb,KAAKyjb,8DAET,SAAwBH,GACpBtjb,KAAKgqU,OAAOs5G,oBAAsBA,EAClCtjb,KAAKyjb,4DAKT,SAAgBjY,IACZ,8DAAsBA,GACtBxra,KAAKyjb,wDAET,WACIzjb,KAAKqra,6BAA4B,gCAErC,WACIrra,KAAKqra,6BAA4B,kCAErC,WAQQ,IAAIuY,EAAuBC,EAP3B7jb,KAAKgqU,OAAO8gE,aACZ7uV,EAAAA,EAAAA,IAAKj8C,KAAKk1N,UAAW,CACjBp8M,IAAK,EACLJ,KAAM,IAEV1Y,KAAK8ra,+BAGL,QAAU8X,GAAyBC,EAAe7jb,KAAKgqU,QAAQq5G,0BAAuB,IAAWO,GAAiCA,EAAsBnjb,KAAKojb,IAC7J,0GAGR,WACI7jb,KAAKwjb,sBAAwBxjb,KAAK8jb,iEAEtC,WACI,OAAI9jb,KAAKgqU,OAAOs5G,qBACL51a,EAAAA,EAAAA,GAAE+X,GAETzlB,KAAKgqU,OAAOu5G,mBACL71a,EAAAA,EAAAA,GAAE1N,KAAKgqU,OAAOu5G,oBAEArgK,EAAAA,EAAAA,MAAmBrjQ,IAAI,IAAM7f,KAAKgqU,OAAOlqT,UACtC9f,KAAK0qa,mBAAoBh9Z,EAAAA,EAAAA,GAAE+X,sCAE3D,WACI,OAAIzlB,KAAKgqU,OAAO8gE,YACLp9X,EAAAA,EAAAA,GAAE+X,IAEb,qGAEJ,WACIzlB,KAAKqra,6BAA4B,sCAErC,WACIrra,KAAKqra,6BAA4B,SA9FnC+X,CAAgC/Y,EAAAA,GCLlC0Z,GAAsB,CACtBC,YAAahyN,EAAAA,KACbiyN,gBAAiBjyN,EAAAA,MAEVkyN,GAA4B,WACnC,KAAK5nN,EAAAA,EAAAA,MACD,OAAOynN,GAEX,IAAIt+Z,GAASwoM,EAAAA,EAAAA,MACTxlL,EAAkBmxL,EAAAA,EAAAA,cAAyBnxL,gBAC3CF,EAAOqxL,EAAAA,EAAAA,UACPuqN,EAAc,QAAUh8M,EAAAA,QAAAA,OAAexpG,SACvCylT,EAAe,CACfjiT,SAAU,KACVkiT,UAAW,KACXC,UAAW,KACX3qY,aAAc,KACdxzB,SAAU,KACVrN,IAAK,KACLJ,KAAM,MAuBV,MAAO,CACHsra,YAAaG,EAAc,WACvB,KAAIx7X,EAAAA,EAAAA,IAAUy7X,EAAaj+Z,WAAa,UAAYoiB,EAAKtqB,MAAMkI,SAA/D,CAGA,IACaw5Z,EAETl6Z,EAFAk6Z,QACSH,EACT/5Z,EADA+5Z,QAEJ4E,EAAaj+Z,SAAWoiB,EAAKtqB,MAAMkI,SACnCi+Z,EAAatra,IAAMyvB,EAAKtqB,MAAMnF,IAC9Bsra,EAAa1ra,KAAO6vB,EAAKtqB,MAAMvF,KAC/B6vB,EAAKtqB,MAAM8iO,YAAY,WAAY,SACnCx4M,EAAKtqB,MAAM8iO,YAAY,MAAO,GAAGnlN,QAAQ+jZ,EAAS,OAClDp3Y,EAAKtqB,MAAM8iO,YAAY,OAAQ,GAAGnlN,QAAQ4jZ,EAAS,SACnD,YApCkB,WACtB,IAAI+E,EAAiB9+Z,EAAOo8H,WAAap5G,EAAgB+2B,YACzD,KAAI4kX,EAAazqY,cAAgB4qY,GAAkB,GAAnD,CAGA,IAAI5qY,EAAel0B,EAAO88G,iBAAiBh6F,GAAM+iS,iBAAiB,iBAC9Dk5G,EAA2BvuY,SAAS0D,EAAc,IACtDyqY,EAAazqY,aAAe6qY,EAC5Bj8Y,EAAKtqB,MAAM8iO,YAAY,gBAAiB,GAAGnlN,OAAO4oZ,EAA2BD,EAAgB,QA6BzFE,GACIL,EAAajiT,UAAY,WAAa55F,EAAKtqB,MAAMkkH,WAGrDiiT,EAAajiT,SAAW55F,EAAKtqB,MAAMkkH,SACnCiiT,EAAaC,UAAY97Y,EAAKtqB,MAAMoma,UACpCD,EAAaE,UAAY/7Y,EAAKtqB,MAAMqma,UACpC/7Y,EAAKtqB,MAAM8iO,YAAY,WAAY,YAEvCkjM,gBAAiBE,EAAc,WAC3B,IAAKx7X,EAAAA,EAAAA,IAAUy7X,EAAaj+Z,UAA5B,CAGA,IAAIw5Z,GAAW1pY,SAAS1N,EAAKtqB,MAAMnF,IAAK,IACpC0ma,GAAWvpY,SAAS1N,EAAKtqB,MAAMvF,KAAM,IACzC,CAAC,WAAY,MAAO,QAAQzY,SAAQ,SAAAgzB,GAC5BmxZ,EAAanxZ,GACbsV,EAAKtqB,MAAM8iO,YAAY9tN,EAAUmxZ,EAAanxZ,IAE9CsV,EAAKtqB,MAAM0hQ,eAAe1sP,MAGlCxN,EAAOo/B,SAAS26X,EAASG,GACzByE,EAAaj+Z,SAAW,OACxB,YAlDCwiC,EAAAA,EAAAA,IAAUy7X,EAAazqY,gBAGxByqY,EAAazqY,aACbpR,EAAKtqB,MAAM8iO,YAAY,gBAAiB,GAAGnlN,OAAOwoZ,EAAazqY,aAAc,OAE7EpR,EAAKtqB,MAAM0hQ,eAAe,iBAE9BykK,EAAazqY,aAAe,MA4CxB,CAAC,WAAY,YAAa,aAAa15C,SAAQ,SAAAgzB,GAC3C,IAAK01B,EAAAA,EAAAA,IAAUy7X,EAAanxZ,IAA5B,CAGA,IAAIyxZ,EAAsBzxZ,EAASy1B,QAAQ,WAAW,SAAAuuC,GAAM,MAAI,IAAIr7D,OAAOq7D,EAAOh0D,kBAC9EmhZ,EAAanxZ,GACbsV,EAAKtqB,MAAM8iO,YAAY2jM,EAAqBN,EAAanxZ,IAEzDsV,EAAKtqB,MAAM0hQ,eAAe+kK,GAE9BN,EAAanxZ,GAAY,YCxCrCxN,IAASwoM,EAAAA,EAAAA,MACT02N,GAAc,WACdC,GAAsB,mBAMtB1uC,GAAuB,oBAEvB2uC,GAAoB,iBAEpBC,GAAqB,kBAKrBC,GAA+B,CAAC,SAAU,QAAS,QAKnDC,GAAgB5+M,EAAAA,QAAAA,SAAkB6+M,EAAAA,EAAAA,GAAgB7+M,EAAAA,QAAAA,QAAiB,CAAC,KAAO,EAC3E8+M,GAAoB,CACpBC,OAAQ,GACRnmR,QATqC,0BAUrC7lE,KAXkC,wBA0ClCkxS,GAAQnuB,EAAAA,QAAAA,QAAgB,CACxB5xB,eAAgB,WAAW,WACvB,OAAOxhV,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bq5H,QAAS,SAAApqV,GACL,IAAI4kb,EACJ,QAAUA,EAAc,EAAKC,aAAU,IAAWD,GAAuBA,EAAYz1B,OAAOnvZ,IAEhGuqV,UAAW,SAAAvqV,GACP,IAAI8kb,EACJ,QAAUA,EAAe,EAAKD,aAAU,IAAWC,GAAwBA,EAAaC,SAAS/kb,IAErGmqV,UAAW,SAAAnqV,GACP,IAAIglb,EACJ,QAAUA,EAAe,EAAKH,aAAU,IAAWG,GAAwBA,EAAaC,SAASjlb,IAErG+pV,WAAY,SAAA/pV,GACR,IAAIklb,EACJ,QAAUA,EAAe,EAAKL,aAAU,IAAWK,GAAwBA,EAAaC,UAAUnlb,OAI9GiyN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bu5K,YAAY,EACZl/W,MAAO,GACPyxV,WAAW,EACXuoE,cAAe,QACfC,gBAAiB,KACjBvC,qBAAqB,EACrB33R,aAAa,EACb43R,uBAAmB,EACnBuC,kBAAkB,EAClBjJ,kBAAmB,EACnBe,cAAe,KACfv+U,SAAU,KACVw+U,YAAa,KACbjF,eAAe,EACf5rZ,aAAc,GACd49W,iBAAiB,EACjBm7C,eAAgB,SAChBC,0BAA0B,EAC1BC,uBAAuB,EACvBC,mBAAmB,KAG3BtjM,qBAAsB,WAClB,IAAIkjK,GAAYqgC,EAAAA,EAAAA,WAChB,OAAOnmb,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,OAEdvkH,QAAS,CACLkqN,UAAWtkO,KAAKomb,gBAErB,CACChoM,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLkqN,UAAWtkO,KAAKqmb,oBAErB,CACCjoM,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLwwX,iBAAiB,IAEtB,CACCxsJ,OAAQ,SAAS4wI,GACb,MAAO,YAAc7mJ,EAAAA,QAAAA,OAAeC,YAAc,YAAc4mJ,EAAQrwP,UAE5EvkH,QAAS,CACLuxI,aAAa,IAElB,CACCyyF,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,IAExB,CACClvF,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,YAAW6pE,IAEtB1rY,QAAS,CACL4ra,0BAA0B,EAC1BC,uBAAuB,EACvBr7C,iBAAiB,OAI7Bw7C,cAAe,CACX5kY,KAAM,CACF79B,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACFgd,SAAU,CACNu5C,GAAI,MACJC,GAAI,WAGZqB,GAAI,CACA76C,SAAU,CACNu5C,GAAI,SACJC,GAAI,YAIhBuK,KAAM,CACFvmD,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACF+nI,QAAS,EACT/qH,SAAU,CACNu5C,GAAI,SACJC,GAAI,WAGZqB,GAAI,CACAkwE,QAAS,EACT/qH,SAAU,CACNu5C,GAAI,MACJC,GAAI,aAKpB0mX,kBAAmB,WACf,OAAOrmb,KAAK6kB,OAAO,cAAgB,CAC/B28B,KAAM,CACF79B,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACF2P,IAAK,MACLo4H,QAAS,GAEblwE,GAAI,CACAloD,IAAK,EACLo4H,QAAS,IAGjBhnE,KAAM,CACFvmD,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACF2P,IAAK,EACLo4H,QAAS,GAEblwE,GAAI,CACAloD,IAAK,MACLo4H,QAAS,KAGjB,CACA1vF,KAAM,CACF79B,KAAM,OACN67M,SAAU,IACVr2N,KAAM,EACN63D,GAAI,GAERkJ,KAAM,CACFvmD,KAAM,OACN67M,SAAU,IACVr2N,KAAM,EACN63D,GAAI,KAIhBwR,MAAO,WACH,IAAI8zW,EAA4Btmb,KAAK6kB,OAAO,yBACxC0ha,EAAsBD,EAA4B,GAAG1qZ,OAAOgpZ,GAAqB,KAAKhpZ,OAAO0qZ,GAA6B1B,GAC9H5kb,KAAKuxN,WACLvxN,KAAKwmb,6BACLxmb,KAAKymb,qCACLzmb,KAAK6Z,WAAW4F,SAASkla,IACzB3kb,KAAKm1N,WAAW11M,SAAS8ma,GACzBvmb,KAAK0mb,eAAiB1mb,KAAKk1N,UAAU4gC,WAAUpoP,EAAAA,EAAAA,GAAE,SAAS+R,SArOxC,qBAqOuE1U,WAAW68C,GAAG,GACvG5nD,KAAK2mb,4BACL3mb,KAAKgvW,kBAAkBpvV,KAAK,OAAQ,WAExCk8M,QAAS,WACL,IAAI8qN,EAAe5mb,KAAK6kB,OAAO,cAC/B7kB,KAAK6mb,uBAAuBD,GAC5B5mb,KAAKuxN,YAETi1N,2BAA4B,WACxBxmb,KAAK8mb,qBAAuB5C,MAEhC2C,uBAAwB,SAASjlb,GAC7B5B,KAAKgvW,kBAAkBx4I,YArPD,sBAqPsC50N,GAAO40N,YAnPlD,mBAmPmF50N,IAExG85N,eAAgB,WACZ17N,KAAKuxN,WACLvxN,KAAK27N,iBAAiBC,oBAAoB,CACtChwM,MAAO,IAAIiwM,EAAAA,EACX79M,OAAQ,IAAI69M,EAAAA,KAGpByyM,gBAAiB,WACb,OAAOtua,KAAKuxN,WAAW31L,OAAO,CAAC,gBAAiB,WAAY,iBAEhEmrZ,sBAAuB,SAASluT,GACvB74H,KAAKgnb,yBAAyBnuT,IAC/B74H,KAAK4ya,gBAAgB,CACjBqU,sBAAsB,KAIlCC,mCAAoC,WAChC,IAAI5iN,EAAYtkO,KAAK6kB,OAAO,aAC5B,MAAO,CAAC,KAAM,QAAQtC,MAAK,SAAAkkG,GACvB,IAAI0gU,EACA73W,EAAS,OAASg1J,QAAa,IAAWA,GAAqB,QAAU6iN,EAAkB7iN,EAAU9iL,YAAS,IAAW2lY,OAAnE,EAA8FA,EAAgB1gU,GACxK,OAAO0jG,EAAAA,EAAAA,IAAS76I,KAAY,UAAWA,GAAU,WAAYA,OAGrEm3W,mCA1NwB,WA0Na,WAC7BW,EAAoCpnb,KAAKknb,qCAC7Clnb,KAAKgnb,yBAA2B,SAAAnuT,GAAK,OAAIuuT,GAAqC,EAAK1Y,0BAA4B,EAAK2Y,8BAA8BxuT,KAEtJyuT,sBAAuB,SAASC,GAAe,WAC3C,GAAKvnb,KAAK6kB,OAAO,qBAAjB,CAGA,IAAI2ia,EAAiBxnb,KAAKk1N,UAAUr1M,IAAI,GACpC0na,EACAlwL,EAAAA,EAAAA,QAAgCmwL,GAAgB,SAAA3uT,GAC5C,EAAKkuT,sBAAsBluT,MAG/Bw+H,EAAAA,EAAAA,UAAkCmwL,KAG1CH,8BAA+B,SAASxuT,GACpC,IAAI4uT,EAAuBC,EAAwBC,EAG3CC,EAAuBC,EAF3BC,EAAa,QAAUL,EAAwB5uT,EAAMkvT,sBAAmB,IAAWN,OAAwB,EAASA,EAAsB,GAC9I,GAAIK,EAEA,OAAO7xY,SAAS6xY,EAAWE,WAAY,OAAS,QAAUJ,EAAwB5nb,KAAKiob,2BAAwB,IAAWL,OAAwB,EAASA,EAAsBt2a,QAAU2kC,SAAS6xY,EAAWI,UAAW,OAAS,QAAUL,EAAyB7nb,KAAKiob,2BAAwB,IAAWJ,OAAyB,EAASA,EAAuBt2a,QAE3W,IAAIsmM,EAAch/E,EAAMg/E,YACxB,OAAO5hK,SAAS4hK,EAAYvmM,MAAO,OAAS,QAAUo2a,EAAyB1nb,KAAKiob,2BAAwB,IAAWP,OAAyB,EAASA,EAAuBp2a,QAAU2kC,SAAS4hK,EAAYtmM,OAAQ,OAAS,QAAUo2a,EAAyB3nb,KAAKiob,2BAAwB,IAAWN,OAAyB,EAASA,EAAuBp2a,SAExWgtV,eArPwB,WAsPpBv+V,KAAKuxN,WACLvxN,KAAKsnb,uBAAsB,IAE/BpoF,mBAAoB,WAChBl/V,KAAKo5a,eACLp5a,KAAKuxN,WACLvxN,KAAKmob,gBACLnob,KAAKoob,iBAEThP,aAAc,WACV,IAAI1ta,EAAQ1L,KAAKqob,iBAAiB,OAC9BC,EAAYtob,KAAK6kB,OAAO,SACxBw4V,EAAYr9W,KAAK6kB,OAAO,aAO5B,GANIw4V,GAAeirE,GACf58a,EAAMwxJ,QAAQ,CACVl9H,SAAUmoM,EAAAA,QAAAA,UAAkBqU,IAAM,SAAW,SAC7C75O,KAAM2lb,IAGVjrE,GAAa3xW,EAAMpL,OAAS,EAAG,CAC/BN,KAAKuob,SAAWvob,KAAKuob,QAAQ/mb,SAC7B,IAAIgnb,GAAS96a,EAAAA,EAAAA,GAAE,SAAS+R,SAASola,IAAmBjjT,aAAa5hI,KAAK25B,YACtE35B,KAAKuob,QAAUvob,KAAKyob,sBAAsB,gBAAiB/8a,EAAO88a,GAAQ/oa,SAASola,IACnF7kb,KAAK0ob,cACL1ob,KAAK2ob,0BAA0B3ob,KAAKuob,SACpCvob,KAAKuob,QAAQ/xN,YA3TU,sBA2TgCx2N,KAAK4ob,wBACrD5ob,KAAKuob,SACZvob,KAAKuob,QAAQp7R,UAGrBs7R,sBAAuB,SAASziM,EAAYn4O,EAAM05B,EAAYshZ,GAC1D,MAKI7ob,KAAK6kB,SAJOktD,EADhB,EACIA,WAC0Bi0W,EAF9B,EAEIA,yBACuBC,EAH3B,EAGIA,sBACU76a,EAJd,EAIIA,SAEAue,EAAW3pB,KAAKi8N,qBAAqB+pB,GAEzC,GADsBr8N,aAAoBkyM,EAAAA,EACrB,CACjB,IAAIstB,GAAqBrgP,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6kB,OAAO,sBAAuB,CACnEikO,cAAe,CAAC,UAAW,WAE3BggM,GAAiBhgb,EAAAA,EAAAA,GAAO+/a,EAA0B,CAClDn9a,MAAOmC,EACPkkE,WAAYA,EACZg3W,kBAAmB/C,EACnBgD,eAAgB/C,EAChB76a,SAAUA,EACV+9O,mBAAoBA,IAExBnpP,KAAKu2N,aAAa,uBAAuBh3M,OAAO,CAC5CO,UAAWynB,EACXv7B,MAAO,CACHi0B,OAAQjgC,KAAKipb,kBACb7ua,QAAS0ua,KAGjB,IAAII,EAAW3hZ,EAAWx8B,SAAS,OAEnC,OADAw8B,EAAWwuN,YAAYmzL,GAChBA,EAEP,IAAIpwL,GAAUprP,EAAAA,EAAAA,GAAEic,EAASpK,OAAO,CAC5BO,WAAWs2M,EAAAA,EAAAA,GAAiB7uL,MAMhC,OAJIuxN,EAAQ/oC,SAlWK,yBAmWbxoL,EAAWwuN,YAAY+C,GACvBvxN,EAAauxN,GAEVvxN,GAGf0hZ,gBAAiB,WACb,MAAO,iBAEXvZ,yBAA0B,SAAS7ma,GAC/B,OAAO7I,KAAKuxN,SAAS1oN,IAEzBk3W,MApUwB,WAsUpB,OADA//W,KAAKsnb,uBAAsB,GACpBtnb,KAAKuxN,YAEhBo3N,0BAA2B,SAASQ,GAChCnpb,KAAKopb,uBAALppb,CAA6B,CACzBqpb,cAAcjzN,EAAAA,EAAAA,GAAiB+yN,MAGvCC,sBAAuB,WACnB,OAAOppb,KAAKspb,oBAAsBtpb,KAAKupb,4BAE3CA,yBAA0B,WACtB,OAAOvpb,KAAKspb,mBAAqBtpb,KAAKw7N,sBAAsB,kBAAmB,CAC3E17N,QAASE,KAAKF,UACdu3O,kBAAmB,CAAC,WAAY,eAGxCmyM,gBAAiB,WACb,MAAO,CACHzpZ,QAAS,MACTC,SAAU,QACVrW,SAAU3pB,KAAKypb,4BAGvBA,wBAAyB,WAAW,WAChC,OAAO,SAAC/ua,EAAGshI,EAAIl8H,GACX,IAAIk7X,GAAUttY,EAAAA,EAAAA,GAAE,SAAS+R,SA7YD,kBA8YxB,EAAK2nO,iBAAiB4zJ,EAAS9+D,EAAAA,QAAQ,CACnCv8T,KAAM,QACNqnD,QAAS,EAAK0iX,8BAAyB,GACvC3iX,YAAa,OACboiL,mBAAoB,MAExBz7O,EAAAA,EAAAA,GAAEoS,GAAWC,OAAOi7X,KAG5BqtC,iBAAkB,SAAStoZ,GAAS,WAC5B/S,EAAehtB,KAAK6kB,OAAO,gBAC3B8ka,EAAgB,GACpB3pb,KAAK4pb,oBAAsB,GAC3B,IAAIC,EAAkB1hN,EAAAA,QAAAA,UAAkBxpG,SACpC99H,EAAQ,EA0BZ,OAzBA4Z,EAAAA,EAAAA,IAAKuS,GAAc,SAACtS,EAAG7M,GACnB,IAAIi8a,GAAanhY,EAAAA,EAAAA,IAAU96C,EAAKw+X,UAC5BnsY,EAAO4pb,EA9YF,SAAAt8a,GACjB,IACImxH,EADSwpG,EAAAA,QAAAA,UACSxpG,SAClB5+F,EAAU,SACVC,EAAW,SACf,GAAI,QAAU2+F,EACV,OAAQnxH,GACJ,IAAK,SACDuyB,EAAU,MACV,MACJ,IAAK,QACDA,EAAU,MACVC,EAAW,QACX,MACJ,IAAK,OACDA,EAAW,aAEhB,GAAI,YAAc2+F,EACrB,OAAQnxH,GACJ,IAAK,SACL,IAAK,OACDwyB,EAAW,QAGvB,MAAO,CACHD,QAASA,EACTC,SAAUA,GAoXkB+pZ,CAAel8a,EAAKw+X,UAAYx+X,EAMxD,GALIi8a,GAAc,QAAUD,GAAmBhpb,EAAQ,IACnDX,EAAK6/B,QAAU,MACfl/B,KAEJX,EAAK6/B,QAAUlyB,EAAKkyB,SAAW7/B,EAAK6/B,SAAW,MAC3C7/B,GAAQA,EAAK6/B,UAAYA,EAAS,CAC9B+pZ,IACAhhb,EAAAA,EAAAA,GAAO5I,EAAM,CACT8/B,SAAUnyB,EAAKmyB,UAChB,EAAKgqZ,uBAAuBn8a,IAEnC,IAAIo8a,EAAa,YAAcJ,EAC3B,SAAWh8a,EAAKw+X,UAAY49C,GAAc,WAAap8a,EAAKw+X,WAAa49C,EACzEN,EAAczsR,QAAQh9J,GAEtBypb,EAAc/ob,KAAKV,OAI3B,QAAU6/B,GAAW//B,KAAK4ob,mBAC1Be,EAAc/ob,KAAKZ,KAAKwpb,mBAErBG,GAEXf,gBA1YwB,WA2YpB,OAAO5ob,KAAK6kB,OAAO,oBAAsB7kB,KAAK6kB,OAAO,cAEzDqla,oBAAqB,SAAAC,GAAQ,MAAI,SAAWA,EAASlnZ,cAAgB,MAAO4pO,EAAAA,EAAAA,IAASs9K,GAAU,IAC/FH,uBAAwB,SAASn8a,GAC7B,IAAI+nL,EAAO51L,KACPmqb,EAAWt8a,EAAKw+X,SACpB,IAAK04C,GAA6BjpT,SAASquT,GACvC,OAAO,EAEX,IAAIC,GAAathb,EAAAA,EAAAA,GAAO,CACpBnG,KAAMw6T,EAAAA,EAAAA,OAA2Bn9T,KAAKkqb,oBAAoBC,IAC1DnjX,QAAShnE,KAAK0pb,yBAAyB77a,EAAKm5D,SAC5CmiL,mBAAoB,GACpBxlO,KAAMiyK,EAAK/wK,OAAO,4BA/bJ,UACD,SA+bbkiD,YAAa6uH,EAAK/wK,OAAO,yBA9bd,OACK,aA8bjBhX,EAAKuM,SAAW,IACfiwa,EAAY1F,YAAoBwF,EAEpC,OADAnqb,KAAK4pb,oBAAoBhpb,KAAKypb,GACvB,CACH1ga,SAAU,SAASjP,EAAGshI,EAAIl8H,GACtB,IAAIwqa,GAAe58a,EAAAA,EAAAA,GAAE,SAAS+R,SAAS4qa,GAAWpyZ,SAASnY,GAC3D81K,EAAKwxD,iBAAiBkjM,EAAcpuG,EAAAA,QAAQkuG,MAIxDV,yBAA0B,SAASr+a,GAC/B,OAAOrL,KAAK6lP,cAAcx6O,EAAa,CACnC6rO,aAAc,SAAS12O,GACnBA,EAAE6tB,UAAU67C,WAIxBk+W,cAAe,WACX,IAAI18a,EAAQ1L,KAAKqob,iBAAiB,UAClC,GAAI38a,EAAMpL,OAAQ,CACdN,KAAKuqb,UAAYvqb,KAAKuqb,SAAS/ob,SAC/B,IAAIgpb,GAAU98a,EAAAA,EAAAA,GAAE,SAAS+R,SAASqla,IAAoBjvL,YAAY71P,KAAK25B,YACvE35B,KAAKuqb,SAAWvqb,KAAKyob,sBAAsB,iBAAkB/8a,EAAO8+a,EAAS,CACzEC,aAAa,IACdhra,SAASqla,IACZ9kb,KAAK0qb,sBAEL1qb,KAAKuqb,UAAYvqb,KAAKuqb,SAASp9R,UAGvCi+P,qBAAsB,SAASxpZ,GAC3B5B,KAAKuxN,SAAL,MAAAvxN,KAAiB+H,WACjB/H,KAAK25B,WAAW68L,YAAY0/K,GAAsBt0R,QAAQhgH,KAE9D8ob,eAAgB,WAAW,WACnBC,EAAU5F,IACdtqa,EAAAA,EAAAA,IAAKkwa,GAAS,SAACjwa,EAAG6mC,GACd,IAAIlzC,EAAYs2a,YAAoBpjY,EAChC,EAAKqoY,oBAAoB9tT,SAASztH,IAClC,EAAK8mN,WAAW11M,SAASpR,EAAY,YACrC,EAAKk8a,SAAS9qa,SAASpR,KAEvB,EAAK8mN,WAAWt9L,YAAYxpB,EAAY,YACxC,EAAKk8a,SAAS1yZ,YAAYxpB,QAItCyuV,kBAzcwB,SAycN3qN,EAAWt4H,GAEzB,GADA7Z,KAAKuxN,SAASp/E,EAAWt4H,GACrBs4H,IAAc4gS,EAAAA,GAA+B/ya,KAAK8ya,SAAU,CAC5D,IAAI3vX,EAAS4vX,EAAAA,GAAkB/ya,KAAKova,oBACpC2D,EAAAA,GAAkB/ya,KAAK8ya,SACvB9ya,KAAK8ya,QAAU3vX,EACfnjD,KAAKsvX,UAAUj0W,IAAI,SAAU8nC,GAC7BnjD,KAAKk1N,UAAU75M,IAAI,SAAU8nC,KAGrCwjY,0BAndwB,WAodpB,IAAIiE,GAA4B5qb,KAAK6kB,OAAO,uBAC5C7kB,KAAK25B,WAAW68L,YAvgBa,8BAugB+Bo0N,IAEhE/V,6BAvdwB,WAwdpB,MAMI70a,KAAK6kB,SALOimX,EADhB,EACIA,WACoBu4C,EAFxB,EAEIA,mBACqBC,EAHzB,EAGIA,oBACmBC,EAJvB,EAIIA,kBACmB1G,EALvB,EAKIA,kBAEJ,OAAO/za,EAAAA,EAAAA,GAAO,GAAI9I,KAAKuxN,WAAY,CAC/Bu5K,WAAYA,EACZu4C,mBAAoBA,EACpBC,oBAAqBA,EACrBC,kBAAmBA,EACnB1G,kBAAmBA,KAG3BpO,wBAvewB,WAwepBzua,KAAKyva,oBAAsB,IAAI2T,EAAwBpjb,KAAK60a,iCAEhEgW,eAAgB,WACZ,OAAO7qb,KAAK8qb,cAEhBlY,gBAAiB,SAASx4Z,GACtB,MAGIpa,KAAK6kB,SAFIhc,EADb,EACIA,QACmB8yL,EAFvB,EAEIA,kBAEJ,GAAI9yL,IAAWyzN,EAAAA,EAAAA,MAAa,CACxB,IACIyuN,EADa/qb,KAAK0ua,4BACsB,OAASt0Z,QAAW,IAAWA,GAAWA,EAAQk8Z,qBAAuB36O,EACrH37L,KAAKswa,mBAAqBya,QAAyB,EACnD/qb,KAAK2ua,iBACD,OAASv0Z,QAAW,IAAWA,GAAWA,EAAQ6sa,qBAClDjnb,KAAKulB,iBAAgB,GAErBvlB,KAAKm1a,oBAAoB,OAAS/6Z,QAAW,IAAWA,OAAU,EAASA,EAAQ4wa,mBAEnFD,IACA/qb,KAAK6va,kBACL7va,KAAKswa,wBAAqB,KAItC2a,iBAAkB,WACTjrb,KAAK6kB,OAAO,uBAGjB7kB,KAAKiob,oBAAsB,CACvB32a,MAAO2kC,UAAS6mG,EAAAA,EAAAA,IAAS98I,KAAKk1N,WAAY,IAC1C3jN,OAAQ0kC,UAAS4mG,EAAAA,EAAAA,IAAU78I,KAAKk1N,WAAY,OAGpDigN,oBAAqB,WACjB,IAAI6V,EAAoBjjb,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAC/Eijb,GACDhrb,KAAKkrb,sBAETlrb,KAAKuxN,WACLvxN,KAAKirb,mBACLjrb,KAAK+5a,qBAETmR,oBAAqB,WAEb,SADSlrb,KAAK4mP,gBAAgB,WAE9B5mP,KAAK25B,WAAWte,IAAI,CAChB9J,OAAQ,OACRmU,UAAW,UAIvBgja,YAAa,WACT,IAAIyC,EAAcnrb,KAAK6qb,iBACnBl/R,EAAc3rJ,KAAK6kB,OAAO,eAC9B,GAAKsma,EAAL,CAGA,IAAI77W,EAAS,CACTq8E,YAAaA,EACbxsI,OAAQgsa,EAAYtra,IAAI,GACxBy7Z,iBAAkBt7a,KAAKk1N,UAAUr1M,IAAI,GACrC07Z,mBAAoBv7a,KAAKyva,qBAEzBzva,KAAKqlb,MACLrlb,KAAKqlb,MAAM9ra,KAAK+1D,GAEhBtvE,KAAKqlb,MAAQ,IAAIhK,EAAU/rW,GAE/BtvE,KAAKgvW,kBAAkBx4I,YA9lBH,qBA8lBsC7qE,KAE9Dw8R,cAAe,WAAW,WACtBnob,KAAKorb,WAAaprb,KAAKonP,iBAAiBpnP,KAAKk1N,UAAW/2M,EAAW,CAC/D9D,QAASra,KAAK6kB,OAAO,iBAAmB,MAAQ,OAChDg5Z,YAAa,SAAAr9a,GACT,EAAK6qb,kBAAkB7qb,GACvB,EAAK8mb,uBAAsB,IAE/BjoV,SAAU,SAAA7+F,GACN,EAAKu5a,oBACL,EAAKlhX,SAASwmC,SAAS7+F,IAE3Bo9a,cAAe,SAAAp9a,GACX,EAAK8mb,uBAAsB,GAC3B,EAAKzuX,SAAS+kX,cAAcp9a,IAEhCoe,UAAW,IACXH,SAAU,IACVuvB,KAAMhuC,KAAKyva,oBAAoB+M,qBAC/BuB,iBAAiB,KAGzBsN,kBAAmB,SAAS7qb,GACxB,IAAI8Q,EAAQtR,KAAKorb,WAAWvma,OAAO,SAC/BtT,EAASvR,KAAKorb,WAAWvma,OAAO,UACpCvT,GAAStR,KAAK2mP,8BAA8B,QAASr1O,GACrDC,GAAUvR,KAAK2mP,8BAA8B,SAAUp1O,GACvDvR,KAAKirb,mBACLjrb,KAAKyva,oBAAoB6b,gBACzBtrb,KAAKyva,oBAAoB3D,2BAA2Btra,EAAEga,OACtDxa,KAAK64D,SAASglX,YAAYr9a,IAE9Bu5a,kBAAmB,YACd/5a,KAAK6kB,OAAO,uBAAyBmtM,EAAAA,QACtC,IAAIu5N,EAAiBvrb,KAAKgvW,kBAAkBnvV,IAAI,GAC5C2ra,EAA6Bxrb,KAAKyrb,sBAAsBF,GAC5Dvrb,KAAK25B,WAAWte,IAAIrb,KAAK0rb,oBAAoBF,EAA4BD,IACzEvrb,KAAK2rb,kBAAkB3rb,KAAKgvW,kBAAmBw8E,IAEnDI,4BAA6B,SAASJ,EAA4BK,GAC9D,OAAOL,IAA+BtG,GAAkB/rV,MAAQ0yV,EAAwB,GAE5FJ,sBAAuB,SAASF,GAC5B,IAAIO,EAAc,SAAWP,EAAetta,MAAM3M,OAAS,KAAOi6a,EAAetta,MAAM3M,MACnFk6a,EAA6BtG,GAAkBC,OAQnD,OAPInlb,KAAK+rb,iBAAmB/rb,KAAK6kB,OAAO,uBAEhC2ma,EADAM,GAAe9G,GACcE,GAAkBlmR,QAElBkmR,GAAkB/rV,MAGhDqyV,GAEXE,oBAAqB,SAASF,EAA4BD,GACtD,IAAIl0F,EAAY,GACZ20F,EAAmBhsb,KAAK4mP,gBAAgB,YAAa2kM,GACrDU,EAAmBjsb,KAAK4mP,gBAAgB,YAAa2kM,GACrDW,EAAmBlsb,KAAKmsb,oBACxBC,EAAmCF,EAAiBroZ,OAASqoZ,EAAiBG,OAASH,EAAiBI,uBAAyBJ,EAAiBK,qBAAuBvsb,KAAK4rb,4BAA4BJ,EAA4BU,EAAiBL,uBAC3P,GAAIL,IAA+BtG,GAAkBC,QACjD,IAAKnlb,KAAK+rb,iBAAmBC,GAAoBC,EAAkB,CAC/D,IACIO,GADgBxsb,KAAK6kB,OAAO,cAAgBc,KAAKG,KAAI4qM,EAAAA,EAAAA,GAAgB66N,GAAgBh6a,QAAQ08M,EAAAA,EAAAA,MAAYnsE,cAAe4uE,EAAAA,EAAAA,GAAgB66N,GAAgBh6a,QACxH66a,EACpC/0F,EAAY,CACR9lV,OAAQoU,KAAKC,IAAI,EAAG4ma,GACpB5ta,UAAW,OACX8G,UAAW,aAGhB,CACH,IAAI5F,GAAYpS,EAAAA,EAAAA,GAAE1N,KAAKyva,oBAAoBzD,kBAAkBnsZ,IAAI,GAC7D4sa,GAAiB5wK,EAAAA,EAAAA,IAAqBmwK,GAAmBI,EAAkCtsa,GAE/Fu3U,EAAY,CACR9lV,OAAQ,OACRqN,WAHiBk9P,EAAAA,EAAAA,IAAqBmwK,GAAmBG,EAAkCtsa,GAI3F4F,UAAW+ma,GAGnB,OAAOp1F,GAEXs0F,kBAAmB,SAASpkZ,EAAYmlZ,GACpC,IAAIC,EAAgB,GACpB,IAAK,IAAIn/a,KAAQ03a,GACTA,GAAkB13a,KAAUk/a,IAC5BC,GAAiB,IAAMzH,GAAkB13a,IAGjD+5B,EAAW1P,YAAY80Z,GAAelta,SAASita,IAEnDX,cAAe,WACX,MAAO,SAAW/rb,KAAKgvW,kBAAkBnvV,IAAI,GAAG5B,MAAM1M,QAE1D46a,kBAAmB,WACf,IAAIrB,EAAa9qb,KAAK8qb,aAClB/7E,EAAgB/uW,KAAK+uW,gBACzB,MAAO,CACHlrU,QAAQq4O,EAAAA,EAAAA,IAAiB4uK,GAAcA,EAAWjra,IAAI,IACtDwsa,QAAQnwK,EAAAA,EAAAA,IAAiB6yF,GAAiBA,EAAclvV,IAAI,IAC5Dysa,wBAAwBvwK,EAAAA,EAAAA,IAAmB/7Q,KAAKgvW,kBAAkBnvV,IAAI,IAAI,GAC1E0sa,sBAAsBxwK,EAAAA,EAAAA,IAAmB/7Q,KAAK25B,WAAW9Z,IAAI,IAAI,GACjEgsa,uBAAuB9vK,EAAAA,EAAAA,IAAmB/7Q,KAAK25B,WAAW9Z,IAAI,IAAI,KAG1Ew1Z,oBAAqB,WACjB,OAAOr1a,KAAKuxN,YAAcvxN,KAAK6kB,OAAO,eAE1CgmO,kBAAmB,WACX7qP,KAAK6kB,OAAO,cACZ7kB,KAAKgvW,kBAAkB3zV,IAAI,CACvB/J,MAAO,OACPC,OAAQ,OACRkN,SAAU,GACVO,SAAU,GACVJ,UAAW,GACX8G,UAAW,KAGf1lB,KAAKuxN,YAEL+K,EAAAA,EAAAA,OACAt8N,KAAK4sb,+BAGb7iM,kBAAmB,WACf/pP,KAAK4ya,gBAAgB,CACjBoY,mBAAmB,KAG3Bz/L,OAAQ,WACJvrP,KAAKuxN,WACLvxN,KAAKsnb,uBAAsB,IAE/BjrN,SAAU,WACNr8N,KAAKuxN,WACLvxN,KAAK4va,mBAAkB,IAE3Bgd,4BAA6B,WACzB5sb,KAAKgvW,kBAAkBx4I,YA/uBK,6BA+uBsC8B,EAAAA,EAAAA,IAAct4N,KAAKgvW,sBAAuBlyN,EAAAA,EAAAA,IAASr3H,MAEzH8qZ,uBA5rBwB,WA6rBfvwa,KAAK6kB,OAAO,qBAGjB7kB,KAAKuxN,YAETq+M,kBAAmB,SAAStmY,GACxB,GAAKtpC,KAAK8mb,qBAAV,CAGA,MAGI9mb,KAAK8mb,qBAFQ9C,EADjB,EACIA,YACiBC,EAFrB,EAEIA,gBAEA36Y,EACA26Y,IAEAD,MAGR6I,gBAAiB,WACb7sb,KAAKulB,mBAET22M,eAAgB,SAAS11M,GACrB,IAAIsma,EAEOlrb,EAEP4kB,EAFA5kB,MACM4L,EACNgZ,EADAhZ,KAEJ,OAAQA,GACJ,IAAK,WACDxN,KAAKuxN,SAAS/qM,GACdxmB,KAAKo5a,eACLp5a,KAAKoob,gBACL,MACJ,IAAK,YACDpob,KAAKymb,qCACL,MACJ,IAAK,mBACDzmb,KAAK4va,kBAAkBhua,GACvB,MACJ,IAAK,YACL,IAAK,QACL,IAAK,gBACD5B,KAAKo5a,eACLp5a,KAAK4ya,mBACL/yH,EAAAA,EAAAA,IAAmB7/S,KAAKgvW,mBACxB,MACJ,IAAK,iBACDhvW,KAAKoob,gBACLpob,KAAK4ya,mBACL/yH,EAAAA,EAAAA,IAAmB7/S,KAAKgvW,mBACxB,MACJ,IAAK,YAGG,IAAI+9E,EADR,GADA/sb,KAAKuxN,SAAS/qM,GACVxmB,KAAK6kB,OAAO,iBAEZ,QAAUkoa,EAAmB/sb,KAAKorb,kBAAe,IAAW2B,GAA4BA,EAAiBloa,OAAO,OAAQ7kB,KAAKyva,oBAAoB+M,sBAErJ,MACJ,IAAK,QACL,IAAK,SACDx8a,KAAKuxN,SAAS/qM,GACd,QAAUsma,EAAoB9sb,KAAKorb,kBAAe,IAAW0B,GAA6BA,EAAkBjoa,OAAOrX,EAAM5L,GACzH,MACJ,IAAK,kBACD5B,KAAKupb,yBAAyB3nb,GAC9B,MACJ,IAAK,eACL,IAAK,2BACL,IAAK,wBACD,IAAIorb,GAAwBxma,EAAKg/N,SAAS7jO,MAAM,sDAChD3hB,KAAKo5a,eACLp5a,KAAKoob,gBACD4E,IACAhtb,KAAK4ya,mBACL/yH,EAAAA,EAAAA,IAAmB7/S,KAAKgvW,oBAE5B,MACJ,IAAK,cACDhvW,KAAK0ob,cACL,MACJ,IAAK,oBACD1ob,KAAKyva,oBAAoB8T,kBAAoB3hb,EACzC5B,KAAK6kB,OAAO,kBACZ7kB,KAAKorb,WAAWvma,OAAO,OAAQ7kB,KAAKyva,oBAAoB+M,sBAE5Dx8a,KAAKyva,oBAAoB2F,kBACzB,MACJ,IAAK,sBACDp1a,KAAKyva,oBAAoB6T,oBAAsB1hb,EAC3C5B,KAAK6kB,OAAO,kBACZ7kB,KAAKorb,WAAWvma,OAAO,OAAQ7kB,KAAKyva,oBAAoB+M,sBAE5D,MACJ,IAAK,oBACDx8a,KAAKyva,oBAAoBoN,kBAAoBj7a,EAC7C,MACJ,IAAK,gBACD5B,KAAKmob,gBACLnob,KAAK4ya,kBACL,MACJ,IAAK,oBACD5ya,KAAK4ya,mBACL/yH,EAAAA,EAAAA,IAAmB7/S,KAAKgvW,mBACxB,MACJ,IAAK,aACDhvW,KAAKyva,oBAAoB3kC,WAAalpY,EACtC5B,KAAK6mb,uBAAuBjlb,GAC5B5B,KAAKuwa,yBACLvwa,KAAK4ya,mBACL/yH,EAAAA,EAAAA,IAAmB7/S,KAAKgvW,mBACxB,MACJ,IAAK,kBACDhvW,KAAKo5a,eACL,MACJ,IAAK,sBACDp5a,KAAKuxN,SAAS/qM,GACdxmB,KAAK2mb,4BACL,MACJ,QACI3mb,KAAKuxN,SAAS/qM,KAG1BuoV,cAAe,WACX,OAAO/uW,KAAKuqb,UAEhBO,WAAY,WACR,OAAO9qb,KAAKuob,SAEhB5uZ,SAAU,WACN,OAAO35B,KAAK0mb,gBAEhB5la,QAAS,WACL,OAAOs1M,EAAAA,EAAAA,GAAiBp2N,KAAK25B,aAEjCq1U,gBAAiB,WACb,OAAOhvW,KAAKk1N,cAGpB50M,EAAAA,EAAAA,SAAkB,UAAW+pX,IAC7B,2QCj7BI4iD,EAAqB,iBAErB9sC,EAA0B,sBAOxB+sC,EAAAA,SAAAA,uIACF,WACI,OAAOltb,KAAK6Z,WAAWpO,qDAE3B,WACI,OAAO,oCAEX,WACI,IAAIuhP,GAAiB,kEACrB,OAAOlkP,EAAAA,EAAAA,GAAOkkP,EAAgBm4I,EAAAA,EAAAA,gCAAqD,CAC/EhrC,gBAAiB,CACb3nN,KAAM,sCAIlB,WAAc,YACV,4DACA0tH,EAAAA,EAAAA,cAAY,WACR,EAAKi9F,eAAe19U,SAASwta,iDAGrC,WACI,OAAOjtb,KAAK+oS,qDAEhB,SAAuBviR,GACnB,IAEcghC,EAGVhhC,EAJAqkD,SACIrjB,KAESsjB,EACbtkD,EADAskD,YAEJ,IAAKtjB,EAAM,CACP,IAAI2lY,GAASz/a,EAAAA,EAAAA,GAAE,SAAS+R,SAAS0gY,IACjCzyY,EAAAA,EAAAA,GAAE,SAAS+R,SAvCW,2BAuC2BwY,SAASk1Z,GAC1D,IAAIC,GAAkB1/a,EAAAA,EAAAA,GAAE,SAASqS,OAAOota,GAAQ1ta,SArC1B,6BAsCtB/R,EAAAA,EAAAA,GAAEo9D,GAAa8qL,QAAQw3L,IAE3B,qEAA6B5ma,yCAEjC,SAAuB4zM,EAAcrsN,IACjC,qEAA6BqsN,EAAcrsN,GAC3CqsN,EAAa5D,YAnDY,yBAmD4BzoN,GAAYsO,KAAK,IAAIuf,OAAOukX,IAA0Bn2U,QAAQwsJ,YAjDrF,8BAiDkIzoN,GAChK/N,KAAK4gV,QAAQ,UAAW7yU,EAAYqsN,kCAExC,WACIp6N,KAAKs+V,kBACLt+V,KAAKu+V,+CAET,WACI,IAAI9yV,GAAS,8DACb,OAAO3C,EAAAA,EAAAA,GAAO,GAAI2C,EAAQ,CACtBogI,MAAO,SAASrrI,GAEZ,OADAA,EAAE6G,iBACKoE,EAAOogI,MAAM7lH,MAAMhmB,KAAM+H,YAEpC4xV,MAAO,SAASn5V,GAEZ,OADAA,EAAE6G,iBACKoE,EAAOkuV,MAAM3zU,MAAMhmB,KAAM+H,2CAI5C,WACI,OAAO/H,KAAK24U,iBAAiB5tU,SAAS/K,KAAK44U,2DAE/C,kBAhEEs0G,CAAwB/yG,EAAAA,GAkExBkzG,EAAAA,SAAAA,6IACF,WACI,MAAO,CACH5mY,UAAU,uCAGlB,WAEI,OAD0B,oEACC7qB,OAAO,CAAC,CAC/BwiN,OAAQ,CACJ9B,QAAQ,GAEZliO,QAAS,CACLkza,OAAQ,eAEb,CACClvM,OAAQ,iBAAM,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAC1D/tN,QAAS,CACLkzT,mBAAmB,6CAI/B,SAAwBtgQ,GACpBA,IAAS,mGAEb,WACI,OAAOhtE,KAAK6Z,yCAEhB,WACI,OAAO7Z,KAAK6Z,6CAEhB,WACI,IAAImzO,GAAiB,kEACrB,OAAOlkP,EAAAA,EAAAA,GAAOkkP,GAAgBlkP,EAAAA,EAAAA,GAAOq8X,EAAAA,EAAAA,gCAAqD,CACtF53D,mBAAmB,EACnBF,oBAAoB,EACpBigH,OAAQ,2CAGhB,SAAcptb,GACV,OAAOF,KAAK6jY,aAAe7jY,KAAK6jY,aAAa3jY,GAAQA,EAAKyC,sCAE9D,WACI,OAAO3C,KAAKoyV,qCAEhB,YACI,qDACApyV,KAAK6pV,iBAAmB,IAAIjuT,OAAOqxZ,GACnCjtb,KAAKowU,qBAnHqB,IAoH1BpwU,KAAKsjY,kDAET,WACItjY,KAAK6Z,WAAW4F,SAxHA,iBAyHhBzf,KAAK6uV,uBACL7uV,KAAK4gV,QAAQ,OAAQ,cACrB5gV,KAAKutb,gBACLvtb,KAAKwtb,iBACL,4FAEJ,SAAkBxmM,GACd,IACiBl8K,EAGbk8K,EAHAl8K,YACOtwD,EAEPwsO,EAFAxsO,MACUqwD,EACVm8K,EADAn8K,SAEJ,GAAI7qE,KAAKm9V,eAAerjU,GAAGgxC,GAAc,CACrC,IAAIvkD,EAAWvmB,KAAKytb,cAAc5iX,GAC9BtkD,IAAavmB,KAAK6kB,OAAO,WACzB7kB,KAAK0rV,sBAAsBlxU,GAC3Bxa,KAAK6kB,OAAO,QAAS0B,yCAIjC,WACI,IAAI3kB,EAAQmG,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAK6kB,OAAO,SACrF6oa,EAAmB,SAAW1tb,KAAK6kB,OAAO,aAC1C8oa,EAAoBD,GAAoB,OAAS9rb,IAAS+mD,EAAAA,EAAAA,IAAU/mD,GACxE,OAAO+rb,EAAoB,CAAC/rb,GAAS,gCAEzC,SAAc84E,GACV,IAAI94E,EAAQ5B,KAAKyvY,gBAAgB/0T,GACjC16E,KAAKilY,2BAA2B,mBAAoBjlY,KAAK4tb,qBAAqBhsb,kCAElF,SAAe4kB,GACX,IACUhZ,EAENgZ,EAFAhZ,KACO5L,EACP4kB,EADA5kB,MAGJ,OADA5B,KAAKklY,6BAA6B1+W,GAC1BhZ,GACJ,IAAK,aACDxN,KAAK0rP,cACL,MACJ,IAAK,oBACL,IAAK,YACL,IAAK,WACD1rP,KAAKilY,2BAA2Bz3X,EAAM5L,GACtC,MACJ,IAAK,YACD,6DAAqB4kB,GACrBxmB,KAAKilY,2BAA2Bz3X,EAAM5L,GACtC,MACJ,IAAK,YACD5B,KAAKilY,2BAA2B,UAAWjlY,KAAKswY,yBAChD,MACJ,IAAK,QACDtwY,KAAK6tb,cAAcjsb,GACnB5B,KAAKqyV,gBAAgBzwV,IACrB,6DAAqB4kB,GACrB,MACJ,IAAK,QACDxmB,KAAK6tb,cAAc7tb,KAAK6kB,OAAO,UAC/B,MACJ,IAAK,eACL,IAAK,cACD,MACJ,IAAK,SACD7kB,KAAKwtb,gBACLxtb,KAAK8tb,mBACL,MACJ,SACI,6DAAqBtna,2BAGjC,YACI,uDACAxmB,KAAK8tb,gDAET,WACI,IAAIR,EAASttb,KAAK6kB,OAAO,UACrBhL,EAAW7Z,KAAK6Z,WACpBA,EAAS28M,YAzMgB,yBAyMwB,aAAe82N,GAChEzza,EAAS28M,YA3MkB,2BA2MwB,eAAiB82N,gCAExE,WAAgB,WACZttb,KAAK+tb,kBAAoB,IAAIv7N,EAAAA,GAC7B,IAAIw7N,GAAUtgb,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK6Z,YACvC,EAMI7Z,KAAK6kB,SALQ0G,EADjB,EACIA,YACWkoT,EAFf,EAEIA,UACmBnG,EAHvB,EAGIA,kBACc/gT,EAJlB,EAIIA,aACUuyH,EALd,EAKIA,SAEJ9+I,KAAKonP,iBAAiB4mM,EAASd,EAAiB,CAC5CpqZ,cAAe,SAAAqlN,GACX,IACe95N,EACX85N,EADA95N,UAEJ,EAAK4/Z,QAAU5/Z,GAEnBwC,eAAgB,SAAArwB,GACZ,EAAK2+V,yBAAwB,IAEjCzlB,YAAa15U,KAAK85V,kBAAkBrvV,KAAKzK,MACzCurB,YAAaA,EACbkoT,UAAWA,EACXpoT,WAAYrrB,KAAK65R,YACjByzC,kBAAmBA,EACnB/gT,aAAcA,EACd+qP,QAASt3Q,KAAKswY,wBACdnuU,WAAY,GACZuiV,kBAAkB,EAClBlhD,eAAe,EACflnJ,cAAe,SACfy6D,iBAAkB/2Q,KAAK4tb,uBACvB9uS,SAAUA,IAEd9+I,KAAK+tb,kBAAkB39a,8CAE3B,WACIpQ,KAAKoyV,iBAAkB1kV,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,UAAUqY,SAASj4B,KAAK6Z,YACzE7Z,KAAKqyV,wDAET,YACI,uEACAvpV,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BxxN,OAAO,mCAGf,SAAgBA,GACZ,IAAI2iB,EACJ3iB,EAAQ,QAAU2iB,EAAS3iB,SAAU,IAAW2iB,EAASA,EAASvkB,KAAK6kB,OAAO,SAC9E,IAAI62W,EAAc,SAAW17X,KAAK6kB,OAAO,aAAe7kB,KAAK26V,eAAe/4V,GAASA,EACrF5B,KAAKoyV,gBAAgBruU,IAAI23W,6CAE7B,WACI17X,KAAK+tb,kBAAkB30Z,KAAKp5B,KAAKisY,iBAAiBxhY,KAAKzK,KAAM,UAAW+H,4CAE5E,WACI,GAAI,eAAiB/H,KAAK6kB,OAAO,UAC7B7kB,KAAKm9V,eAAe9hV,IAAI,SAAU,YAC/B,CACH,IAAIqqV,EAAa1lW,KAAK6kB,OAAO,SAASvkB,OACtCN,KAAKm9V,eAAe9hV,IAAI,SAAU,IAAMqqV,EAAa,2BAG7D,WACI,IAAIwoF,EACJ,QAAUA,EAAgBlub,KAAKiub,eAAY,IAAWC,GAAyBA,EAAcntb,oCAEjG,WACI,IAAIotb,EACJ,OAAO,QAAUA,EAAiBnub,KAAKiub,eAAY,IAAWE,OAAiB,EAASA,EAAehxF,qBA3MzGkwF,CAAmBpxZ,EAAAA,GA8MzBoxZ,EAAWjsT,QAAQ+jQ,EAAAA,IACnB7kX,EAAAA,EAAAA,SAAkB,eAAgB+sa,GAClC,IC7SA,ED6SA,8OEjSIe,EAAuC,kCACvCC,EAAkC,gCAmMtC,EAzLuCv8D,EAAAA,EAAAA,QAAuB,CAC1Dt/S,MAAO,SAASnI,GACZrqE,KAAKuxN,SAASlnJ,GACdrqE,KAAKsub,YAAcjkX,EAAWikX,YAC9Btub,KAAKuub,WAAalkX,EAAWkkX,WAC7Bvub,KAAKwub,iBAAmBnkX,EAAWmkX,iBACnCxub,KAAKyub,qBAAsB/gb,EAAAA,EAAAA,GAAE28D,EAAWvpD,WACxC9gB,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAE28D,EAAWvqD,aAChC9f,KAAK0ub,kBAETA,eAAgB,WACZ1ub,KAAK2ub,mBAAoBlxM,EAAAA,EAAAA,KACzBz9O,KAAK4ub,kBAAmBnxM,EAAAA,EAAAA,KACxBz9O,KAAK6ub,sBAAuBpxM,EAAAA,EAAAA,MAEhCl+N,OAAQ,WACJvf,KAAKuxN,WACLvxN,KAAK8ub,kBACL9ub,KAAK+ub,iBAETD,gBAAiB,WACb,IAAIE,GAASthb,EAAAA,EAAAA,GAAE,SAAS+R,SA9BM,iCA+B1Bwva,GAAiBvhb,EAAAA,EAAAA,GAAE,SAAS+R,SA9BE,qCA+B9Byva,EAAiB,IAAIz9B,EAAAA,GAAc/jZ,EAAAA,EAAAA,GAAE,UAAUmM,WAC/Cs1a,EAAQnvb,KAAKovb,gBAAiB1hb,EAAAA,EAAAA,GAAE,SAAS+R,SA/BhB,gCAgC7Bzf,KAAKqvb,mBAAoB3hb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,oBAAoBoT,SAASk3Z,GAClFnvb,KAAKsvb,kBAAmB5hb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,mBAAmBoT,SAASk3Z,GAChFnvb,KAAKwub,kBAAmB9gb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,mBAAmBoT,SAASk3Z,GAChFnvb,KAAKuub,WAAW9jX,QAAQ1qD,OAAOiva,GAAQjva,OAAOkva,EAAelva,OAAOmva,IAAiBnva,OAAOova,IAEhGJ,cAAe,WACX/ub,KAAKquQ,OApCQ,EAqCbruQ,KAAKuvb,wBAETA,qBAAsB,WAClB,IAAI35P,EAAO51L,KACPwvb,EAAoB,CAAC,CACrB1vb,QAASE,KAAKqvb,kBACdI,aA3CS,GA4CV,CACC3vb,QAASE,KAAKsvb,iBACdG,aA7CM,GA8CP,CACC3vb,QAASE,KAAKwub,iBACdiB,aA/CW,KAiDfh1a,EAAAA,EAAAA,IAAK+0a,GAAoB,SAAS90a,EAAGxa,GACjC,IAAIugB,EAASm1K,EAAKy4E,SAAWnuQ,EAAKuvb,aAAe,WAAa,cAC9Dvvb,EAAKJ,QAAQ2gB,GAtDoB,4CAyDzCpC,OAAQ,WACJre,KAAKuxN,WACLvxN,KAAK0vb,uBAETxO,kBAAmB,WACflhb,KAAKuxN,WACLvxN,KAAK2vb,eAAiB3vb,KAAKsub,YAAYzua,IAAI,GAAGwnC,aAC9C,IAAIuoY,EAAY5vb,KAAKyub,oBAAoB5ua,IAAI,GACzCuzL,EAAcpzM,KAAKunY,YAAY1nX,IAAI,GACvC7f,KAAK6vb,gBAAkBlqa,KAAKC,IAAIgqa,EAAUvoY,aAAe+rJ,EAAY/rJ,aAAc,IAEvFyoY,mBAAoB,WAChB,IAAIC,EAAoB/vb,KAAKuxN,WAE7B,OADAw+N,EAAkBnhY,SAAWmhY,EAAkBnhY,UAAY5uD,KAAKgwb,iBACzDD,GAEXL,oBAAqB,WACjB1vb,KAAKsub,YAAYjza,IAAI,CACjBvC,KAAM9Y,KAAK2vb,kBAGnBM,UAAW,WACPjwb,KAAKuxN,WACLvxN,KAAKkwb,aAETC,WAAY,WACRnwb,KAAKuxN,WACLvxN,KAAKkwb,aAETA,UAAW,WApFG,IAqFNlwb,KAAKquQ,SACLruQ,KAAKowb,mBAAmBpwb,KAAK2vb,gBAC7BzxZ,aAAal+B,KAAKqwb,yBAClBrwb,KAAKqwb,wBAA0Bxtb,WAAW,WACtC7C,KAAKswb,uBACP7lb,KAAKzK,MAAO,OAGtBowb,mBAAoB,SAAS7kb,IACzB0wC,EAAAA,EAAAA,IAAKj8C,KAAKsub,YAAa,CACnBx1a,IAAKvN,KAET0wC,EAAAA,EAAAA,IAAKj8C,KAAKyub,oBAAqB,CAC3B31a,IAAKvN,KAGbglb,aAAc,SAAS/vb,GAEnB,GADAR,KAAKuxN,SAAS/wN,GArGC,IAsGXR,KAAKquQ,OAAT,CAGA,IAAImiL,EAAkBxwb,KAAKggC,WAAWlnB,IAClC23a,GAAezwb,KAAK0wb,WAAa,GAAKF,EAC1Cxwb,KAAK0wb,UAAYF,EACbxwb,KAAK2wb,cACL3wb,KAAK4wb,iBACEH,EAAc,GAAKzwb,KAAK6wb,iBAC/B7wb,KAAK8wb,eAEL9wb,KAAK+wb,mBAGbJ,YAAa,WACT,OAAO3wb,KAAKgwb,kBAAoBhwb,KAAK0wb,WAAa1wb,KAAK2vb,gBAE3DkB,eAAgB,WACZ,OAAO7wb,KAAKgxb,qBAAuBrra,KAAK6H,MAAMxtB,KAAK6vb,gBAAkBlqa,KAAKo1B,MAAM/6C,KAAK0wb,aAAe,GAExGI,aAAc,WAzHE,IA0HR9wb,KAAKquQ,SAGTruQ,KAAKquQ,OA7HO,EA8HZruQ,KAAK6ub,qBAAqB9wM,SAE9B6yM,eAAgB,WAlIF,IAmIN5wb,KAAKquQ,SAGTruQ,KAAKquQ,OAtIK,EAuIVruQ,KAAKuub,WAAW9ua,SAAS4ua,GACzBrub,KAAKuvb,yBAETwB,eAAgB,WA3IC,IA4IT/wb,KAAKquQ,SAGTruQ,KAAKuub,WAAW12Z,YAAYu2Z,GAAsCv2Z,YAAYw2Z,GAC9Erub,KAAK+ub,kBAETuB,oBAAqB,WAhJF,IAiJXtwb,KAAKquQ,SAGTruQ,KAAKquQ,OApJU,EAqJfruQ,KAAKuub,WAAW9ua,SAAS2ua,GAAsCv2Z,YAAYw2Z,GAC3Erub,KAAKuvb,uBACLvvb,KAAK2ub,kBAAkB5wM,SAE3BkzM,eAAgB,SAAS3nZ,GACjBA,IACAtpC,KAAKkhb,oBACLlhb,KAAK0vb,uBAET1vb,KAAKgwb,iBAAmB1mZ,GAE5B4nZ,kBAAmB,SAAS5nZ,GACxBtpC,KAAKgxb,oBAAsB1nZ,GAE/B6nZ,eAAgB,WACZnxb,KAAKquQ,OArKK,GAuKd4qB,QAAS,WACL,IAAIjuP,EAAW,IAAIwnL,EAAAA,GAanB,OAZAxyN,KAAKkhb,oBACLhjZ,aAAal+B,KAAKoxb,iBAxKN,IAyKRpxb,KAAKquQ,SACLruQ,KAAKquQ,OA7KI,GA+KbruQ,KAAKoxb,gBAAkBvub,WAAW,WAC9B7C,KAAKowb,mBAAmB,GACxBpwb,KAAK+wb,iBACL/wb,KAAK4ub,iBAAiB7wM,OACtB/9O,KAAKqxb,gBACLrmZ,EAAS56B,WACX3F,KAAKzK,MAjLa,KAkLbgrC,EAASx6B,WAEpB4N,QAAS,WACL8f,aAAal+B,KAAKqwb,yBAClBnyZ,aAAal+B,KAAKoxb,iBAClBpxb,KAAKuxN,oCC9LT+/N,EAAyC,kCAyL7C,EAhLwCx/D,EAAAA,EAAAA,QAAuB,CAC3Dt/S,MAAO,SAASnI,GACZrqE,KAAKuxN,SAASlnJ,GACdrqE,KAAKsub,YAAcjkX,EAAWikX,YAC9Btub,KAAKuub,WAAalkX,EAAWkkX,WAC7Bvub,KAAKyub,qBAAsB/gb,EAAAA,EAAAA,GAAE28D,EAAWvpD,WACxC9gB,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAE28D,EAAWvqD,aAChC9f,KAAK0ub,iBACL1ub,KAAK0wb,UAAY,GAErBhC,eAAgB,WACZ1ub,KAAK2ub,mBAAoBlxM,EAAAA,EAAAA,KACzBz9O,KAAK4ub,kBAAmBnxM,EAAAA,EAAAA,KACxBz9O,KAAK6ub,sBAAuBpxM,EAAAA,EAAAA,MAEhCl+N,OAAQ,WACJvf,KAAKuxN,WACLvxN,KAAK8ub,kBACL9ub,KAAK+ub,iBAETD,gBAAiB,WACb,IAAIG,GAAiBvhb,EAAAA,EAAAA,GAAE,SAAS+R,SA7BE,qCA8B9Byva,EAAiB,IAAIz9B,EAAAA,GAAc/jZ,EAAAA,EAAAA,GAAE,UAAUmM,WACnD7Z,KAAKwgZ,QAAS9yY,EAAAA,EAAAA,GAAE,SAAS+R,SA7BP,oBA8BlBzf,KAAKuub,WAAW9jX,QAAQ1qD,OAAO/f,KAAKwgZ,QAAQzgY,OAAOkva,EAAelva,OAAOmva,KAE7EH,cAAe,WACX/ub,KAAKquQ,OAhCQ,EAiCbruQ,KAAKuxb,mBACLvxb,KAAKkhb,qBAETqQ,iBAAkB,WACdvxb,KAAKuub,WAAWlza,IAAI,CAChB61H,QAAS,KAGjBgwS,kBAAmB,WACflhb,KAAKuxN,WACLvxN,KAAK2vb,eAAiB3vb,KAAKsub,YAAYzua,IAAI,GAAGwnC,aAC9C,IAAIuoY,EAAY5vb,KAAKyub,oBAAoB5ua,IAAI,GACzCuzL,EAAcpzM,KAAKunY,YAAY1nX,IAAI,GACvC7f,KAAK6vb,gBAAkBlqa,KAAKC,IAAIgqa,EAAUvoY,aAAe+rJ,EAAY/rJ,aAAc,IAEvFyoY,mBAAoB,WAChB,IAAIC,EAAoB/vb,KAAKuxN,WAE7B,OADAw+N,EAAkBnhY,SAAWmhY,EAAkBnhY,UAAY5uD,KAAKgwb,iBACzDD,GAEXyB,WAAY,SAAShxb,GACjBR,KAAKuxN,SAAS/wN,GAtDD,IAuDTR,KAAKquQ,QAA6B,IAAMruQ,KAAK0wb,YAC7C1wb,KAAKyxb,eAAgB5xJ,EAAAA,EAAAA,WAAUr/R,EAAE43G,eAAez6F,EAChD3d,KAAKquQ,OAtDG,IAyDhBq/G,WAAY,SAASltX,GACjBR,KAAKuxN,SAAS/wN,GACdR,KAAK0xb,SAAU7xJ,EAAAA,EAAAA,WAAUr/R,EAAE43G,eAAez6F,EAAI3d,KAAKyxb,cA3DvC,IA4DRzxb,KAAKquQ,SACDruQ,KAAKgwb,kBAAoBhwb,KAAK0xb,QAAU,EACxC1xb,KAAKquQ,OA7DF,EA+DHruQ,KAAKkwb,aA/DF,IAkEPlwb,KAAKquQ,SACL7tQ,EAAE6G,iBACFrH,KAAK2xb,kBAGbA,cAAe,WACX,IAAIC,EAAiB5xb,KAAK6xb,qBACtB/4a,EAAM6M,KAAKG,IAAI,EAAI8ra,EAAgB5xb,KAAK0xb,QAAU1xb,KAAK8xb,6BACvDtgZ,EAAQ,IAAM14B,EAAM84a,EAAiB,EACzC5xb,KAAKuub,WAAWlza,IAAI,CAChB61H,QAAS,IACVslF,YAnFgC,qCAmFkB19M,EAAM84a,IAC3D31Y,EAAAA,EAAAA,IAAKj8C,KAAKuub,WAAY,CAClBz1a,IAAKA,IAET9Y,KAAKwgZ,OAAOnlY,IAAI,CACZkN,UAAW,UAAYipB,EAAQ,UAGvCm/Y,YAAa,WACT,OAAO3wb,KAAKgwb,kBAtFD,IAsFqBhwb,KAAKquQ,QAA2BruQ,KAAK0xb,SAAW1xb,KAAK6xb,qBAAuB7xb,KAAK8xb,6BAErHD,mBAAoB,WAChB,OAAOlsa,KAAK6H,MAAM,KAAMgrM,EAAAA,EAAAA,IAAex4N,KAAK4kB,aAEhDkta,0BAA2B,WACvB,OAAQnsa,KAAK6H,MAAM,KAAMgrM,EAAAA,EAAAA,IAAex4N,KAAKuub,cAEjD0B,UAAW,WACHjwb,KAAK2wb,eACL3wb,KAAKswb,sBAETtwb,KAAKkwb,aAETC,WAAY,WACRnwb,KAAKkwb,aAETA,UAAW,WAxGK,IAyGRlwb,KAAKquQ,QAxGE,IAwG0BruQ,KAAKquQ,QACtCruQ,KAAK+ub,iBAGbwB,aAAc,SAAS/vb,GAEnB,GADAR,KAAKuxN,SAAS/wN,GA/GC,IAgHXR,KAAKquQ,OAAT,CAGA,IAAImiL,EAAkBxwb,KAAKggC,WAAWlnB,IAClC23a,EAAczwb,KAAK0wb,UAAYF,EACnCxwb,KAAK0wb,UAAYF,EACbC,EAAc,GAAKzwb,KAAK6wb,iBACxB7wb,KAAK8wb,eAEL9wb,KAAK+wb,mBAGbF,eAAgB,WACZ,OAAO7wb,KAAKgxb,qBAAuBrra,KAAK6H,MAAMxtB,KAAK6vb,gBAAkBlqa,KAAKo1B,MAAM/6C,KAAK0wb,aAAe,GAExGI,aAAc,WACV9wb,KAAK6ub,qBAAqB9wM,QAE9BgzM,eAAgB,WApIC,IAqIT/wb,KAAKquQ,SAGTruQ,KAAKuub,WAAW12Z,YAAYy5Z,GAC5Btxb,KAAK+ub,kBAETuB,oBAAqB,WACjBtwb,KAAKquQ,OA1IU,EA2IfruQ,KAAK+xb,2BAETA,wBAAyB,WACrB/xb,KAAKgyb,mBACLhyb,KAAK2ub,kBAAkB5wM,QAE3Bi0M,iBAAkB,WACdhyb,KAAKuub,WAAW9ua,SAAS6xa,IACzBr1Y,EAAAA,EAAAA,IAAKj8C,KAAKuub,WAAY,CAClBz1a,IAAK9Y,KAAK6xb,wBAGlBZ,eAAgB,SAAS3nZ,GACrBtpC,KAAKsub,YAAYl5L,OAAO9rN,GACxBtpC,KAAKgwb,iBAAmB1mZ,GAE5B4nZ,kBAAmB,SAAS5nZ,GACxBtpC,KAAKgxb,oBAAsB1nZ,GAE/B6nZ,eAAgB,WACZnxb,KAAKquQ,OAhKK,GAkKd4qB,QAAS,WACL,IAAIjuP,EAAW,IAAIwnL,EAAAA,GASnB,OARAxyN,KAAKkhb,oBACLhjZ,aAAal+B,KAAKoxb,iBAClBpxb,KAAKoxb,gBAAkBvub,WAAW,WAC9B7C,KAAK+wb,iBACL/wb,KAAK4ub,iBAAiB7wM,OACtB/9O,KAAKqxb,gBACLrmZ,EAAS56B,WACX3F,KAAKzK,MAAO,KACPgrC,EAASx6B,WAEpB4N,QAAS,WACL8f,aAAal+B,KAAKqwb,yBAClBnyZ,aAAal+B,KAAKoxb,iBAClBpxb,KAAKuxN,wBCxLTquM,EAAOj6Y,KAMPyoa,EAAuC,kCACvCC,EAAkC,gCASlC4D,EAAqBC,EAAAA,EAAAA,QAAiB,CACtCtuT,KAAM,WACF5jI,KAAK2vb,eAAiB,EACtB3vb,KAAKmyb,kBAAoB,EACzBnyb,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK0ub,iBACL1ub,KAAK+ub,iBAETA,cAAe,WACX/ub,KAAKquQ,OAbQ,EAcbruQ,KAAKuvb,wBAETA,qBAAsB,WAClB,IAAI35P,EAAO51L,KACPwvb,EAAoB,CAAC,CACrB1vb,QAASE,KAAKqvb,kBACdI,aApBS,GAqBV,CACC3vb,QAASE,KAAKsvb,iBACdG,aAtBM,GAuBP,CACC3vb,QAASE,KAAKwub,iBACdiB,aAxBW,KA0Bfh1a,EAAAA,EAAAA,IAAK+0a,GAAoB,SAAS90a,EAAGxa,GACjC,IAAIugB,EAASm1K,EAAKy4E,SAAWnuQ,EAAKuvb,aAAe,WAAa,cAC9Dvvb,EAAKJ,QAAQ2gB,GA/BoB,4CAkCzCiua,eAAgB,WACZ1ub,KAAK2ub,mBAAoBlxM,EAAAA,EAAAA,KACzBz9O,KAAK4ub,kBAAmBnxM,EAAAA,EAAAA,KACxBz9O,KAAK6ub,sBAAuBpxM,EAAAA,EAAAA,MAEhC20M,cAAe,WAEX,GADsB,eAAiBpyb,KAAKqyb,WACvB,CACjBryb,KAAK2vb,eAAiB3vb,KAAKsub,YAAYzua,IAAI,GAAGwnC,aAC9CrnD,KAAKmyb,kBAAoBnyb,KAAKsyb,eAAezya,IAAI,GAAGwnC,aACpD,IAAI+rJ,EAAcpzM,KAAKunY,YAAY1nX,IAAI,GACnC+va,EAAY5vb,KAAKk1N,UAAUr1M,IAAI,GACnC7f,KAAK6vb,gBAAkBlqa,KAAKC,IAAIgqa,EAAUvoY,aAAernD,KAAKmyb,kBAAoB/+O,EAAY/rJ,aAAc,GAEhHrnD,KAAKuxN,YAETghO,iBAAkB,WACdvyb,KAAKwyb,WAAW3ta,OAAO,CACnB4ta,cAAezyb,KAAK0yb,iBACpB3X,YAAa/6a,KAAK2yb,eAAiB3yb,KAAK2vb,eAAiB3vb,KAAKmyb,kBAC9DS,WAAY5yb,KAAK6yb,oBAGzBC,aAAc,WACV9yb,KAAKuxN,WACDvxN,KAAK2wb,cACL3wb,KAAK4wb,iBACE5wb,KAAK6wb,iBACZ7wb,KAAK+yb,oBA7DI,IA8DF/yb,KAAKquQ,QACZruQ,KAAK+wb,kBAGbiC,eAAgB,WACZhzb,KAAKwyb,WAAW97R,OAAO12J,KAAK2vb,eAAiB3vb,KAAK0wb,YAEtDC,YAAa,WACT,OAAO3wb,KAAKgwb,kBAAoBhwb,KAAK0wb,WAAa,GAEtDG,eAAgB,WACZ,IAAIz9O,EAAcpzM,KAAKunY,YAAY1nX,IAAI,GACvC,OAAO7f,KAAKgxb,qBAAuBrra,KAAK6H,MAAMxtB,KAAK6vb,gBAAkBlqa,KAAK+iK,KAAK0qB,EAAYnsK,aAAe,GAE9GgsZ,gBAAiB,WACTjzb,KAAKkzb,aA5EC,IA4Eclzb,KAAKquQ,OACzBruQ,KAAKswb,sBACEtwb,KAAKkzb,aA5EJ,IA4EmBlzb,KAAKquQ,OAChCruQ,KAAKmzb,sBAELnzb,KAAKuxN,YAGbwhO,kBAAmB,WAlFH,IAmFR/yb,KAAKquQ,SAGTruQ,KAAKquQ,OAtFO,EAuFZruQ,KAAKozb,WAAapzb,KAAKqzb,kBAE3BC,cAAe,WACX,OAAQtzb,KAAK2vb,gBAEjB0D,cAAe,WACX,OAAOzzB,EAAK95Y,IAAI9lB,KAAKuxN,YAAavxN,KAAK2vb,iBAE3CwD,oBAAqB,WACjBnzb,KAAK6ub,qBAAqB9wM,QAE9B6yM,eAAgB,WApGF,IAqGN5wb,KAAKquQ,SAGTruQ,KAAKquQ,OAxGK,EAyGVruQ,KAAKuzb,WAAa,EAClBvzb,KAAKuub,WAAW9ua,SAAS4ua,GACzBrub,KAAKuvb,yBAETwB,eAAgB,WA9GC,IA+GT/wb,KAAKquQ,SAGTruQ,KAAK+ub,gBACL/ub,KAAKoyb,gBACLpyb,KAAKuub,WAAW12Z,YAAYu2Z,GAAsCv2Z,YAAYw2Z,GAC9Erub,KAAK4ub,iBAAiB7wM,SAE1BuyM,oBAAqB,WArHF,IAsHXtwb,KAAKquQ,SAGTruQ,KAAKquQ,OAzHU,EA0HfruQ,KAAKuub,WAAW9ua,SAAS2ua,GAAsCv2Z,YAAYw2Z,GAC3Erub,KAAKuvb,uBACLvvb,KAAK2ub,kBAAkB5wM,SAE3By1M,gBAAiB,WASb,OAzIa,IAiITxzb,KAAKquQ,QACLruQ,KAAKyzb,gBAETzzb,KAAKqhB,UACDrhB,KAAK0zb,cACL1zb,KAAK0zb,aAAapuO,QAEtBtlN,KAAK0zb,cAAej0L,EAAAA,EAAAA,cAAaz/P,KAAK2zb,SAASlpb,KAAKzK,OAC7CA,KAAK0zb,aAAaljb,SAE7Bmjb,SAAU,WACN3zb,KAAK+wb,iBACL/wb,KAAKizb,mBAETW,4BAA6B,SAAStqZ,GAC9BtpC,KAAKgxb,sBAAwB1nZ,IAGjCtpC,KAAKgxb,oBAAsB1nZ,EAC3BtpC,KAAKoyb,kBAETyB,yBAA0B,SAASvqZ,GAC3BtpC,KAAKgwb,mBAAqB1mZ,IAG9BtpC,KAAKgwb,iBAAmB1mZ,EACxBtpC,KAAK8zb,2BACL9zb,KAAK+zb,mBAETD,yBAA0B,WACtB9zb,KAAK0wb,YAAa7zS,EAAAA,EAAAA,IAAU78I,KAAKsub,eAAiBtub,KAAK2vb,eACvD3vb,KAAKuzb,WAAa,EAClBvzb,KAAKyxE,SAETuiX,uBAAwB,WACpBh0b,KAAKquQ,OAnKK,GAqKdjwP,QAAS,WACDpe,KAAK0zb,cACL1zb,KAAK0zb,aAAapuO,QAEtBtlN,KAAKuxN,cA8Eb,EA3EkC0iO,EAAAA,EAAAA,QAA0B,CACxDzhX,MAAO,SAASnI,GACZrqE,KAAKuxN,SAASlnJ,GACdrqE,KAAKuub,WAAalkX,EAAWkkX,WAC7Bvub,KAAKsub,YAAcjkX,EAAWikX,YAC9Btub,KAAKsyb,eAAiBjoX,EAAWioX,eACjCtyb,KAAK0ub,kBAETA,eAAgB,WACZ1ub,KAAK2ub,mBAAoBlxM,EAAAA,EAAAA,KACzBz9O,KAAK4ub,kBAAmBnxM,EAAAA,EAAAA,KACxBz9O,KAAK6ub,sBAAuBpxM,EAAAA,EAAAA,MAEhCl+N,OAAQ,WACJvf,KAAK8ub,kBACL9ub,KAAKuxN,YAETu9N,gBAAiB,WACb,IAAIE,GAASthb,EAAAA,EAAAA,GAAE,SAAS+R,SAnMM,iCAoM1Bwva,GAAiBvhb,EAAAA,EAAAA,GAAE,SAAS+R,SAnME,qCAoM9Byva,EAAiB,IAAIz9B,EAAAA,GAAc/jZ,EAAAA,EAAAA,GAAE,UAAUmM,WAC/Cs1a,EAAQnvb,KAAKovb,gBAAiB1hb,EAAAA,EAAAA,GAAE,SAAS+R,SApMhB,gCAqM7Bzf,KAAKqvb,mBAAoB3hb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,oBAAoBoT,SAASk3Z,GAClFnvb,KAAKsvb,kBAAmB5hb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,mBAAmBoT,SAASk3Z,GAChFnvb,KAAKwub,kBAAmB9gb,EAAAA,EAAAA,GAAE,SAAS/K,KAAK3C,KAAK6kB,OAAO,mBAAmBoT,SAASk3Z,GAChFnvb,KAAKuub,WAAW9jX,QAAQ1qD,OAAOiva,GAAQjva,OAAOkva,EAAelva,OAAOmva,IAAiBnva,OAAOova,IAEhG8B,eAAgB,SAAS3nZ,GACrBtpC,KAAKqvZ,cAAc,mBAAoB/lX,IAE3C4nZ,kBAAmB,SAAS5nZ,GACxBtpC,KAAKqvZ,cAAc,sBAAuB/lX,IAE9C4qZ,gBAAiB,SAAS74S,GACtB,IAAIu6C,EAAO51L,KACPq3I,EAAWu+C,EAAKu+P,WAAW94S,GAAa,IAAI42S,EAAmBr8P,EAAKw+P,iBAAiB/4S,IACzFhE,EAASs3S,kBAAkBrtb,KAAK,WAC5Bs0L,EAAK+4P,kBAAkB5wM,UAE3B1mG,EAASu3S,iBAAiBttb,KAAK,WAC3Bs0L,EAAKg5P,iBAAiB7wM,UAE1B1mG,EAASw3S,qBAAqBvtb,KAAK,WAC/Bs0L,EAAKi5P,qBAAqB9wM,WAGlCq2M,iBAAkB,SAAS/4S,GACvB,OAAOvyI,EAAAA,EAAAA,GAAO9I,KAAKuxN,SAASl2E,GAAY,CACpCg5S,WAAYr0b,KAAKsub,YACjBgG,cAAet0b,KAAKsyb,eACpBiC,UAAWv0b,KAAKuub,WAChBiG,cAAex0b,KAAKovb,eACpBqF,iBAAkBz0b,KAAKqvb,kBACvBqF,gBAAiB10b,KAAKsvb,iBACtBqF,gBAAiB30b,KAAKwub,oBAG9B2C,eAAgB,WACZnxb,KAAKqvZ,cAAc,mBAEvBp2H,QAAS,WACL,OAAOj5R,KAAKqvZ,cAAc,WAAWj2X,KAAKp5B,KAAKqxb,gBAEnDrxZ,SAAU,WACN,IAAIA,EAAWhgC,KAAKuxN,WAEpB,OADAvxL,EAASlnB,MAAO+jI,EAAAA,EAAAA,IAAU78I,KAAKsub,aACxBtuZ,GAEX5hB,QAAS,YACL3D,EAAAA,EAAAA,IAAKza,KAAKm0b,YAAa,WACnBn0b,KAAKoe,aAETpe,KAAKuxN,+CCtPTqjO,EAAmB,gBAKnBC,EAA+BD,6BAI/BE,EAAoB,CACpBC,SAAUC,EACVC,UAAWC,EACXC,UAAWlB,GAEXmB,IAAgB94N,EAAAA,EAAAA,MAChB+4N,EAAyB,CACzB5sC,cAAez2L,EAAAA,KACfinE,QAASjnE,EAAAA,KACT+gE,QAAS/gE,EAAAA,KACT9sK,aAAc,iBAAO,CACjBpsC,IAAK,EACLJ,KAAM,IAEVwjN,eAAgB,SAAS11M,GACrB,GAAI,cAAgBA,EAAKhZ,KACrB,OAAOxN,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,aAIzCk6S,EAAassE,EAAAA,EAAAA,QAAmB6mE,EAAeC,EAAyB,CACxE5iO,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BqzL,gBAAiBznF,EAAAA,EAAAA,OAA2B,gCAC5C0nF,eAAgB1nF,EAAAA,EAAAA,OAA2B,+BAC3C2nF,eAAgB3nF,EAAAA,EAAAA,OAA2B,+BAC3CkqF,gBAAiBlqF,EAAAA,EAAAA,OAA2B,gCAC5C8pF,WAAY,KACZE,cAAe,KACfmuC,gBAAiB,cAGzB1yM,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WAEJ,MAAO,YADUjW,EAAAA,QAAAA,OACexpG,UAEpCvkH,QAAS,CACLk7a,gBAAiB,cAEtB,CACCl3M,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACLwqY,gBAAiB,GACjBC,eAAgB,GAChBC,eAAgB,GAChBuC,gBAAiB,QAI7B70U,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKu1b,0BAA2B,GAEpCC,sBAAuB,WACnBx1b,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAASm1a,GACzB50b,KAAKy1b,eACLz1b,KAAK01b,iBACL11b,KAAK21b,oBACL31b,KAAK41b,kBAETH,aAAc,WACV,IAAI97Z,GAAWjsB,EAAAA,EAAAA,GAAE,SAAS+R,SA1EHm1a,yBA2EvB50b,KAAKk1N,UAAU4gC,UAAUn8N,IAE7B+7Z,eAAgB,WACZ,IAAIrB,EAAar0b,KAAKsub,aAAc5gb,EAAAA,EAAAA,GAAE,SAAS+R,SA7ErBm1a,4BA8EtBL,EAAYv0b,KAAKuub,YAAa7gb,EAAAA,EAAAA,GAAE,SAAS+R,SA5ErBm1a,2BA6ExBP,EAAWt0a,OAAOw0a,GAClBv0b,KAAKk1N,UAAU0gC,QAAQy+L,IAE3BsB,kBAAmB,WACf,IAAIrB,EAAgBt0b,KAAKsyb,gBAAiB5kb,EAAAA,EAAAA,GAAE,SAAS+R,SAlFxBm1a,+BAmFzBiB,EAAe71b,KAAK81b,eAAgBpob,EAAAA,EAAAA,GAAE,SAAS+R,SAASo1a,GACxD5F,GAAiBvhb,EAAAA,EAAAA,GAAE,SAAS+R,SAjFKo1a,wCAkFjC3F,EAAiB,IAAIz9B,EAAAA,GAAc/jZ,EAAAA,EAAAA,GAAE,UAAUmM,WAC/Cs1a,EAAQnvb,KAAK+1b,mBAAoBrob,EAAAA,EAAAA,GAAE,SAAS+R,SAlFhBo1a,mCAmFhC70b,KAAKg2b,yBACLH,EAAa91a,OAAOkva,EAAelva,OAAOmva,IAAiBnva,OAAOova,GAClEmF,EAAcv0a,OAAO81a,GACrB71b,KAAKk1N,UAAUn1M,OAAOu0a,IAE1BsB,eAAgB,WACZ,IAAIK,GAAoBvob,EAAAA,EAAAA,GAAE,SAAS+R,SAxFhBm1a,2BAwF+C38Z,SAASj4B,KAAK6Z,YAC5Eq8a,EAAmB,CACnBj7M,SAAS,EACTn9G,MAAO,IACPryF,QAASzrC,KAAK6kB,OAAO,kBACrBsB,SAAU,CACNs5C,GAAIz/D,KAAK6Z,aAGjB7Z,KAAKm2b,WAAan2b,KAAKonP,iBAAiB6uM,EAAmBrjC,EAAAA,EAAWsjC,IAE1EF,uBAAwB,WACpBh2b,KAAK+1b,kBAAkBpzb,KAAK3C,KAAK6kB,OAAO,qBAE5Cuxa,gBAAiB,WACb,IAAIrpG,EAAe/sV,KAAK6kB,OAAO,aAAe7kB,KAAK6kB,OAAO,mBAAqB,YAC3Ewxa,EAAgBvB,EAAkB/nG,GACtC/sV,KAAKwxN,UAAY,IAAI6kO,EAAcr2b,MACnCA,KAAKwxN,UAAUm9N,kBAAkBrtb,IAAItB,KAAKknZ,iBAAiBz8Y,KAAKzK,OAChEA,KAAKwxN,UAAUo9N,iBAAiBttb,IAAItB,KAAKwzb,gBAAgB/ob,KAAKzK,OAC9DA,KAAKwxN,UAAUq9N,qBAAqBvtb,IAAItB,KAAKs2b,oBAAoB7rb,KAAKzK,QAE1Eu2b,eAAgB,WACZv2b,KAAKuxN,WACLvxN,KAAKw2b,gBAAkBx2b,KAAKw7N,sBAAsB,cAClDx7N,KAAKy2b,mBAAqBz2b,KAAKw7N,sBAAsB,iBACrDx7N,KAAK02b,0BAETA,uBAAwB,WACpB12b,KAAK22b,gBAAgB32b,KAAKumP,sBAAsB,eAChDvmP,KAAK42b,mBAAmB52b,KAAKumP,sBAAsB,mBAEvDjuN,GAAI,SAAS2R,GACT,IAAIp7B,EAAS7O,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAIvC,MAHI,aAAekiC,GAAa,gBAAkBA,GAC9CjqC,KAAK02b,yBAEF7nb,GAEX8nb,gBAAiB,SAASrtZ,GACtB,GAAI,IAAMvhC,UAAUzH,OAChB,OAAON,KAAKgwb,iBAEZhwb,KAAKuub,YAAcvub,KAAKwxN,YACxBxxN,KAAKuub,WAAWn5L,OAAO9rN,GACvBtpC,KAAKwxN,UAAUy/N,eAAe3nZ,GAC9BtpC,KAAKgwb,iBAAmB1mZ,IAGhCstZ,mBAAoB,SAASttZ,GACzB,GAAI,IAAMvhC,UAAUzH,OAChB,OAAON,KAAKgxb,oBAEZhxb,KAAK81b,eAAiB91b,KAAKwxN,YAC3BxxN,KAAK81b,cAAc1gM,OAAO9rN,GAC1BtpC,KAAKwxN,UAAU0/N,kBAAkB5nZ,GACjCtpC,KAAKgxb,oBAAsB1nZ,IAGnC49W,iBAAkB,WACdlnZ,KAAK62b,mBAAkB,GACvB72b,KAAK82b,oBAETD,kBAAmB,SAASj1b,GACxB,GAAImG,UAAUzH,OAAS,EACnB,OAAON,KAAKu1b,yBAEhBv1b,KAAKu1b,yBAA2B3zb,GAEpCk1b,iBAAkB,WACd92b,KAAKwoZ,eACLxoZ,KAAKw2b,mBAETF,oBAAqB,WACjBt2b,KAAK62b,mBAAkB,GACvB72b,KAAKmzb,uBAETA,oBAAqB,WACjBnzb,KAAKwoZ,eACLxoZ,KAAKy2b,sBAETjD,gBAAiB,WACbxzb,KAAKyoZ,gBACLzoZ,KAAK62b,mBAAkB,IAE3B36N,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,aACL,IAAK,gBACDxN,KAAKu2b,iBACL,MACJ,IAAK,kBACL,IAAK,iBACL,IAAK,iBACL,IAAK,kBACDv2b,KAAK0rP,cACL,MACJ,IAAK,kBACD1rP,KAAKg2b,yBACL,MACJ,QACIh2b,KAAKuxN,SAAS/qM,KAG1B1F,QAAS,WACL,OAAOs1M,EAAAA,EAAAA,GAAiBp2N,KAAKk1N,UAAUnqN,WAAW68C,GAAG,KAEzDqxO,QAAS,SAAS89J,GAId,YAHI,IAAWA,GACX/2b,KAAKmqZ,eAAe4sC,GAEjB/2b,KAAKwxN,UAAUynE,WAE1BkxH,cAAe,SAAS6sC,GACpBh3b,KAAK42b,mBAAmBI,IAE5BjkK,QAAS,WACA/yR,KAAKumP,sBAAsB,gBAGhCvmP,KAAKwxN,UAAU2/N,iBACfnxb,KAAK82b,qBAETtuC,aAAc,WACNxoZ,KAAK62b,qBAAuB72b,KAAK6Z,WAAWigB,GAAG,aAC/C95B,KAAKm2b,WAAW30Y,OAEpBxhD,KAAKi3b,SAETxuC,cAAe,WACXzoZ,KAAKm2b,WAAWjsX,OAChBlqE,KAAKk3b,WAET76N,SAAU,WACNr8N,KAAKwxN,UAAUpzM,UACfpe,KAAKuxN,WACDvxN,KAAKm2b,YACLn2b,KAAKm2b,WAAWt8a,WAAWrY,aAIvC8e,EAAAA,EAAAA,SAAkB,eAAgB2hS,GAClC,ICtQA,EDsQA,wEEnQI9oE,EAAWkJ,EAAAA,QAAAA,SAKXhxB,EAAWgxB,EAAAA,QAAAA,QAAc,CACzBz+G,KAAM,WACF5jI,KAAKm3b,WAAY,EACjBn3b,KAAKo3b,UAAW,EAChBp3b,KAAKq3b,iBAAmBr3b,KAAKs3b,UAAU7sb,KAAKzK,OAEhD6b,MAAO,WACH7b,KAAKo3b,UAAW,EAChBp3b,KAAKm3b,WAAY,EACjBn3b,KAAKs3b,aAET/8a,KAAM,WACFva,KAAKo3b,UAAW,GAChBx6N,EAAAA,EAAAA,sBAAqB58N,KAAKu3b,sBAE9BD,UAAW,WACP,GAAIt3b,KAAKw3b,aACLx3b,KAAK8vS,YADT,CAIA,GAAI9vS,KAAKy3b,cAGL,OAFAz3b,KAAKm3b,WAAY,OACjBn3b,KAAKkwb,YAGTlwb,KAAKyxN,QACLzxN,KAAKu3b,qBAAsBtnT,EAAAA,EAAAA,uBAAsBjwI,KAAKq3b,oBAE1D5lO,MAAO0nB,EACPs+M,YAAazlO,EAAAA,KACb89E,MAAO99E,EAAAA,KACPk+N,UAAWl+N,EAAAA,KACXwlO,WAAY,WACR,OAAOx3b,KAAKo3b,UAEhBziO,WAAY,WACR,QAAS30N,KAAKo3b,UAAYp3b,KAAKm3b,cAGvC,mGC3CWpxC,EAAyB,WAChC,MAAO,CAAC,CACJ3nK,OAAQ,WACJ,OAAQoiC,EAAAA,iBAEZpmQ,QAAS,CACLwxW,WAAW,IAEhB,CACCxtI,OAAQ,SAAS4wI,GACb,OAAQ7mJ,EAAAA,QAAAA,eAAyB,YAAcA,EAAAA,QAAAA,OAAeC,YAAc,YAAc4mJ,EAAQrwP,UAEtGvkH,QAAS,CACLyxW,eAAe,EACfllW,eAAe,EACfqlW,gBAAiBvjJ,EAAAA,MACjBkjJ,cAAe,iECpB3B,IAAe4C,EAAf,2ICkBImpE,EAA0B,uBAG1BC,EAAW,WACXC,EAAa,aAEb9lE,EAAiBzvI,EAAAA,QAAAA,QAAc,CAC/Bz+G,KAAM,SAASi0T,GACX73b,KAAKwyE,MAAMqlX,IAEfrlX,MAAO,SAASqlX,GACZ73b,KAAKy5B,WAAao+Z,EAClB73b,KAAK4kB,UAAYiza,EAAWh+a,WAC5B7Z,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAEmqb,EAAW/3a,aAChC9f,KAAKk1N,UAAY2iO,EAAWl+Z,WAC5B35B,KAAKqyb,WAAawF,EAAWhza,OAAO,aACpC7kB,KAAK83b,uBAAyBD,EAAWhza,OAAO,yBAChD7kB,KAAK6kB,OAASgza,EAAWhza,OAAOpa,KAAKotb,GACrC73b,KAAKw7N,sBAAwBq8N,EAAWr8N,sBAAsB/wN,KAAKotb,GACnE73b,KAAK+3b,UAAYF,EAAWE,UAAUttb,KAAKotb,GAC3C73b,KAAKg4b,aAAeH,EAAWG,aAAavtb,KAAKotb,GACjD73b,KAAKi4b,kBAAoBJ,EAAWI,kBAAkBxtb,KAAKotb,GAC3D73b,KAAKszb,cAAgBuE,EAAWvE,cAAc7ob,KAAKotb,GACnD73b,KAAKk4b,qBAAuBL,EAAWK,qBAAqBztb,KAAKotb,IAErEt4a,OAAQ,WACJ,IACI6oN,EADSD,EAAAA,QAAAA,OACWxpG,SACxB3+H,KAAK4kB,UAAUnF,SAASi4a,GAAyBj4a,SAASi4a,wBAAgCtvN,GAAY5R,YA1B3E,mCA0BsHx2N,KAAKm4b,uBAClJn4b,KAAKm4b,uBAAyBn4b,KAAK83b,wBACnC93b,KAAKo4b,qBAGbC,kBAAmB,SAASC,GACpBA,GAAiBt4b,KAAK6kB,OAAO,eACzB7kB,KAAKm4b,uBAAyBn4b,KAAK83b,wBACnC93b,KAAKu4b,mBAIjBH,kBAAmB,WACfp4b,KAAKw4b,YAAc,GACnBx4b,KAAKy4b,sBAAwB,EAC7Bz4b,KAAK4kB,UAAUnF,SA1Cc,qCA2C7Bzf,KAAK04b,iBAAiBf,GACtB33b,KAAK04b,iBAAiBd,IAE1Bc,iBAAkB,SAASr9S,GAClBr7I,KAAKg4b,aAAa38S,KAGvBr7I,KAAKw4b,YAAYn9S,GAAa,IAAI0uD,EAAAA,GAAUr8L,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK4kB,WAAY,CAC7Ey2H,UAAWA,EACXs9S,WAAY34b,KAAKy5B,WAAW5U,OAAO,qBAG3C2sa,WAAYx/N,EAAAA,KACZ4mO,YAAa5mO,EAAAA,KACb07J,WAAY,SAASltX,GACbR,KAAK+3b,YACLv3b,EAAEulC,QAAS,EAGX/lC,KAAKi4b,sBACLz3b,EAAE43G,cAAc65L,kBAAmB,IAG3Cg+I,UAAWj+N,EAAAA,KACX6mO,aAAc7mO,EAAAA,KACdm+N,WAAYn+N,EAAAA,KACZ8mO,eAAgB,SAAStqY,GACrBA,EAAWA,EAAS/jD,KAAKzK,OACzBya,EAAAA,EAAAA,IAAKza,KAAKw4b,aAAe,IAAK,SAASn9S,EAAW09S,GAC9CvqY,EAASuqY,EAAW19S,OAG5B29S,cAAe,WACXh5b,KAAKwnZ,cAAgBxnZ,KAAKw7N,sBAAsB,YAChDx7N,KAAKqxb,cAAgBrxb,KAAKw7N,sBAAsB,cAEpDy9N,kBAAmB,WACf,MAGIj5b,KAAKggC,WAFCtnB,EADV,EACIA,KACKI,EAFT,EAEIA,IAEJ,MAAO,CACH0B,MAAOxa,KAAKk5b,oBACZh0Y,aAAcllD,KAAKm5b,mBACnBC,YAAap5b,KAAKk4b,uBAAyBl4b,KAAKq5b,iBAAiB3gb,GAAQ1Y,KAAKs5b,eAAe5gb,GAC7F6gb,aAAcv5b,KAAKk4b,uBAAyBl4b,KAAKs5b,gBAAgB3za,KAAK23B,IAAI5kC,IAAS1Y,KAAKq5b,gBAAgB3gb,GACxG8gb,WAAYx5b,KAAKg4b,aAAaL,GAAYhya,KAAK6H,MAAM1U,IAAQ,OAAI,EACjE2gb,cAAez5b,KAAKg4b,aAAaL,GAAYhya,KAAK6H,MAAM7H,KAAK23B,IAAIxkC,GAAO9Y,KAAKszb,gBAAgBx6a,MAAQ,OAAI,IAGjHqgb,iBAAkB,WACd,MAGIn5b,KAAKggC,WAFAlnB,EADT,EACIA,IACMJ,EAFV,EAEIA,KAEJ,MAAO,CACHI,KAAMA,EACNJ,KAAM1Y,KAAK05b,sBAAsBhhb,KAGzCghb,qBAlG+B,SAkGV1yZ,GACjB,OAAIhnC,KAAKk4b,uBACEl4b,KAAKszb,gBAAgB56a,KAAOsuB,EAEhCA,GAEXsyZ,eAAgB,SAAS5gb,GACrB,OAAO1Y,KAAKg4b,aAAaJ,GAAcjya,KAAK6H,MAAM9U,IAAS,OAAI,GAEnE2gb,gBAAiB,SAAS3gb,GACtB,OAAO1Y,KAAKg4b,aAAaJ,GAAcjya,KAAK6H,MAAM7H,KAAK23B,IAAI5kC,GAAQ1Y,KAAKszb,gBAAgB56a,OAAS,OAAI,GAEzGy/a,oBAAqB,WACjB,IACmBxsE,EACf3rX,KAAK6kB,SADL8mW,cAEJ,MAAO,UAAYA,IAAiB,IAAUA,GAElD4kE,aAAc,SAAS/vb,GACnBR,KAAKk5b,oBAAsB14b,EAC3BR,KAAKu4b,kBACLv4b,KAAKwnZ,cAAcxnZ,KAAKi5b,sBAE5BV,gBAAiB,WACb,MAGIv4b,KAAKm5b,mBAFArgb,EADT,EACIA,IACMJ,EAFV,EAEIA,KAEJ1Y,KAAK84b,gBAAgB,SAASC,GAC1BA,EAAUriS,OAAO,CACb59I,KAAMA,EACNJ,MAAOA,IAEXqgb,EAAUl0a,OAAO,WAAW,MAEhC7kB,KAAK25b,mBAETA,gBAAiB,WACbz7Z,aAAal+B,KAAKy4b,uBAClBz4b,KAAKy4b,sBAAwB51b,WAAW,WACpC7C,KAAK84b,gBAAgB,SAASC,GAC1BA,EAAUl0a,OAAO,WAAW,OAElCpa,KAAKzK,MA9Ic,MAgJzBggC,SAAU,WACN,MAAO,CACHtnB,MAAO1Y,KAAKunY,YAAYvgW,aACxBluB,KAAM9Y,KAAKunY,YAAYtgW,cAG/B2yZ,gBAAiB5nO,EAAAA,KACjB3zM,OAAQ,WACJre,KAAKqhB,UACLrhB,KAAKqxb,cAAcrxb,KAAKi5b,sBAE5B53a,QAAS,WACLrhB,KAAKkhb,oBACLlhb,KAAK65b,qBAET3Y,kBAAmB,WACflhb,KAAK0yb,eAAiB,CAClBnhb,QAAQsrI,EAAAA,EAAAA,IAAU78I,KAAKunY,aACvBj2X,OAAOwrI,EAAAA,EAAAA,IAAS98I,KAAKunY,cAEzBvnY,KAAK85b,sBAAwB,CACzBvob,QAAQsrI,EAAAA,EAAAA,IAAU78I,KAAKy5B,WAAWE,YAClCroB,OAAOwrI,EAAAA,EAAAA,IAAS98I,KAAKy5B,WAAWE,aAEpC35B,KAAK2yb,aAAe,CAChBphb,QAAQsrI,EAAAA,EAAAA,IAAU78I,KAAKk1N,WACvB5jN,OAAOwrI,EAAAA,EAAAA,IAAS98I,KAAKk1N,aAG7B2kO,kBAAmB,WACf75b,KAAK84b,gBAAgB,SAASC,EAAW19S,GACrC,IAAInjI,EAAYmjI,IAAcs8S,EAAW,SAAW,QACpDoB,EAAUl0a,OAAO,CACb4ta,cAAezyb,KAAK0yb,eAAex6a,GACnC6ia,YAAa/6a,KAAK85b,sBAAsB5hb,KAE5C6gb,EAAU16a,aAGlByxa,mBAAoB,WAChB,MAAO,CACHlhY,SAAU5uD,KAAKg4b,aAAaL,IAAa33b,KAAK2yb,aAAaphb,OAASvR,KAAK0yb,eAAenhb,OACxFs9C,WAAY7uD,KAAKg4b,aAAaJ,IAAe53b,KAAK2yb,aAAarhb,MAAQtR,KAAK0yb,eAAephb,QAGnG8M,QAAS,WACL,IAAI/P,EAAYrO,KAAK4kB,UAAU/E,IAAI,GAAGxR,UAClC0rb,EAAyB,IAAI/wY,OAAO0uY,2BAAkC,KACtEqC,EAAuB72Z,KAAK70B,IAC5BrO,KAAK4kB,UAAUiT,YAAYxpB,EAAUsT,MAAMo4a,GAAwB9ob,KAAK,MAE5E0kN,EAAAA,EAAAA,IAAiB31N,KAAK4kB,UAAW,uBACjC+wM,EAAAA,EAAAA,IAAiB31N,KAAKunY,YAAa,uBACnCvnY,KAAKg6b,oBACL97Z,aAAal+B,KAAKy4b,wBAEtBuB,kBAAmB,WACfh6b,KAAK84b,gBAAgB,SAASC,GAC1BA,EAAUl/a,WAAWrY,aAG7Bi6I,SAAU,SAAS91G,GACf,IAAI3F,EAAWhgC,KAAKggC,WACpBhgC,KAAKunY,YAAYtgW,UAAUthB,KAAK6H,OAAOwS,EAASlnB,IAAM6sB,EAAS7sB,MAC/D9Y,KAAKunY,YAAYvgW,WAAWrhB,KAAK6H,OAAOwS,EAAStnB,KAAOitB,EAASjtB,QAErEi7D,SAAU,SAASnzE,GACf,OAAIR,KAAK6kB,OAAO,iBAGZo6Q,EAAAA,EAAAA,qBAAoBz+R,KAAMR,KAAKi6b,0BAA0Bz5b,OAGpDR,KAAKi4b,sBAElBgC,0BA1N+B,SA0NLz5b,GACtB,IAAIsf,EAAY9f,KAAKunY,YAAY1nX,IAAI,GASrC,OAPIrf,EAAEwc,MAAQ,EACDxc,EAAE2C,UAAY2c,EAAUknB,YAAclnB,EAAUmnB,UAClDzmC,EAAE2C,SACA2c,EAAUknB,YAAchnC,KAAKszb,gBAAgB56a,KAE7CoH,EAAUmnB,WAAajnC,KAAKszb,gBAAgBx6a,KAI7DupR,aAAc,WACV,OAAOriS,KAAKi4b,uBAGpB,qUCnNA,IAAIiC,EAAa,eAEbC,EAAmB,gBAInBtkH,EAA2B,wBAC3B8hH,EAAW,WACXC,EAAa,aACbwC,EAAO,OACP7rE,EAAax8J,EAAAA,QAAAA,QAAqB,CAClCU,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BnmN,UAAU,EACV8+L,SAAU,KACV7uD,UAAWs8S,EACXhsE,cAAe,WACfC,WAAW,EACXC,eAAe,EACfG,iBAAiB,EACjBrlW,eAAe,EACfgsR,UAAW,KACXF,QAAS,KACTI,MAAO,KACPwnJ,SAAU,KACVC,uBAAuB,EACvBhzC,aAAa,EACbizC,gBAAgB,EAChBC,gBAAgB,KAGxB53M,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,QAAOmqX,EAAAA,EAAAA,KAA0B,CAAC,CACrD3nK,OAAQ,WACJ,OAAOoiC,EAAAA,iBAAmB,YAAcr4C,EAAAA,QAAAA,OAAexpG,WAAaynG,EAAAA,QAAAA,SAExEhsN,QAAS,CACLkgb,uBAAuB,OAInCj2M,aAAc,SAASjqO,GACnBpa,KAAKuxN,SAASn3M,GACR,0BAA2BA,GAC7Bpa,KAAKy6b,6BAGbA,0BAA2B,WAClBz6b,KAAK0lP,cAAc,0BACpB1lP,KAAK6kB,OAAO,yBAA0B7kB,KAAK6kB,OAAO,eAG1D2tD,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKw1b,wBACLx1b,KAAK0wS,SAAU,GAEnB5mD,mBAAoB,SAASjhP,GACrBA,GACA7I,KAAKqe,SACLre,KAAK06b,qBACL16b,KAAK26b,oBAAsB36b,KAAK6kD,SAAS7kD,KAAK26b,2BACvC36b,KAAK26b,oBAEZ36b,KAAK26b,mBAAqB36b,KAAKklD,gBAGvCswY,sBAAuB,WACnB,IAAI37a,EAAW7Z,KAAK6Z,WAAW4F,SAAS06a,GACpC5yZ,EAAavnC,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAE,SAAS+R,SAjEtB,2BAkErB01M,EAAWn1N,KAAKsvX,WAAY5hX,EAAAA,EAAAA,GAAE,SAAS+R,SAjEpB,0BAkERzf,KAAKk1N,WAAYxnN,EAAAA,EAAAA,GAAE,SAAS+R,SAASo2T,IAC3C91T,OAAOlG,EAASyuO,YAAYrwN,SAASsP,GAC9CA,EAAWtP,SAASk9L,GACpBA,EAASl9L,SAASpe,IAEtBkwO,kBAAmB,WACf/pP,KAAKqe,SACLre,KAAK06b,sBAETjwM,YAAa,WACTzqP,KAAKuxN,WACLvxN,KAAK46b,oBAET9+N,QAAS,WACL97N,KAAK66b,kBACL76b,KAAKqzN,uBACLrzN,KAAK86b,uBACL96b,KAAKu2b,iBACLv2b,KAAKqe,SACLre,KAAKuxN,WACLvxN,KAAK06b,oBAAmB,IAE5BA,mBAAoB,SAASK,GACzB/6b,KAAKwxN,UAAU6mO,kBAAkB0C,IAErCzH,cAAe,WACX,OAKI5lb,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAaD,IAAI,GAC5B,MAAO,CACHnH,KAPJ,EACIkzL,YADJ,EAEIpsI,YAMA1mD,IARJ,EAGIsuC,aAHJ,EAIIC,eAORgsK,qBAAsB,WAClB,IAAI/B,EAAWtxN,KAAKwxN,UAChBwpO,EAAgB,CAChB34J,aAAc/wE,EAAS+wE,aAAa53R,KAAK6mN,GACzC39I,SAAU3zE,KAAK03G,UAAUjtG,KAAKzK,MAC9B+xS,SAAU/xS,KAAK6kB,OAAO,aACtBgtR,aAAc7xS,KAAKunY,aAEvB5xK,EAAAA,EAAAA,IAAiB31N,KAAKsvX,UAAW,IAAM4qE,GACvCvkO,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,KAAmB0jH,GAAac,EAAeh7b,KAAKi7b,aAAaxwb,KAAKzK,OACnH21N,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,MAAoB0jH,GAAa5oO,EAASsnO,YAAYnub,KAAK6mN,IACxGqE,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,KAAmB0jH,GAAa5oO,EAASo8J,WAAWjjX,KAAK6mN,IACtGqE,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,IAAkB0jH,GAAa5oO,EAAS2+N,UAAUxlb,KAAK6mN,IACpGqE,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,OAAqB0jH,GAAa5oO,EAASunO,aAAapub,KAAK6mN,IAC1GqE,EAAAA,EAAAA,GAAgB31N,KAAKsvX,WAAWlhK,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,KAAmB0jH,GAAa5oO,EAAS6+N,WAAW1lb,KAAK6mN,IACtGqE,EAAAA,EAAAA,IAAiB31N,KAAKunY,YAAa,IAAM2yD,GACzCvkO,EAAAA,EAAAA,GAAgB31N,KAAKunY,aAAan5K,EAAAA,EAAAA,cAAa,SAAU8rO,GAAa5oO,EAASi/N,aAAa9lb,KAAK6mN,KAErG55G,UAAW,SAASl3G,GAChB,OAAIR,KAAK+3b,cAGT/3b,KAAKk7b,gBACEl7b,KAAK2tX,eAAentX,KAE/BmtX,eA3HkC,SA2HnBntX,GACX,OAAOR,KAAKwxN,UAAU79I,SAASnzE,IAEnCktX,WA9HkC,SA8HvBltX,GACPR,KAAKwxN,UAAUk8J,WAAWltX,IAE9B+sX,mBAjIkC,SAiIf3rX,GACf5B,KAAKwxN,UAAU+7J,mBAAmB3rX,IAEtCq5b,aAAc,WACV,IAAI3pO,EAAWtxN,KAAKwxN,UACpBF,EAASkgO,WAAWxra,MAAMsrM,EAAUvpN,YAExC+yb,qBAAsB,WAClB96b,KAAK6Z,WAAW28M,YAhJQ,yBAgJ+Bx2N,KAAK6kB,OAAO,aAC/D7kB,KAAK6kB,OAAO,YACZ7kB,KAAKi3b,QAELj3b,KAAKk3b,WAGb0D,iBAAkB,WACd56b,KAAK6Z,WAAWge,YAAY,4BAA+BA,YAAY,0BAA6BA,YAAY,sBAAyBpY,SAAS,iBAAmBzf,KAAK6kB,OAAO,eAErLg2a,gBAAiB,WACb76b,KAAKo2b,kBACLp2b,KAAKwxN,UAAUjyM,SACfvf,KAAK6Z,WAAWhM,KA/JE,uBA+JwB7N,KAAKwxN,YAEnD4kO,gBAAiB,WACbp2b,KAAKwxN,UAAYxxN,KAAK6kB,OAAO,aAAe,IAAIitW,EAAAA,EAAe9xX,MAAQ,IAAIi0b,EAAAA,EAAkBj0b,OAEjGu2b,eAAgB,WACZv2b,KAAKwxN,WAAaxxN,KAAKwxN,UAAUwnO,iBAErCztM,OAAQ,WACJvrP,KAAKwxN,WAAaxxN,KAAKwxN,UAAUpzM,WAErC89M,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,WACDxN,KAAKu2b,iBACL,MACJ,IAAK,YACDv2b,KAAKm7b,0BACLn7b,KAAK0rP,cACL,MACJ,IAAK,YACD1rP,KAAKy6b,4BACLz6b,KAAK0rP,cACL,MACJ,IAAK,iBACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,gBACL,IAAK,wBACD1rP,KAAK0rP,cACL,MACJ,IAAK,WACD1rP,KAAK86b,uBACL96b,KAAKwxN,WAAaxxN,KAAKwxN,UAAUooO,kBACjC,MACJ,IAAK,iBACL,IAAK,kBACD,MACJ,IAAK,QACD55b,KAAKuxN,SAAS/qM,GACdxmB,KAAK06b,qBACL,MACJ,QACI16b,KAAKuxN,SAAS/qM,KAG1B20a,wBAAyB,WACrB,IAAIC,EAAep7b,KAAKq7b,mBACxB,GAAKD,IAAiB9+N,EAAAA,EAAAA,MAAtB,CAGA,IAAIp3K,EAAellD,KAAKklD,eACxBA,EAAak2Y,GAAgB,EAC7Bp7b,KAAK6kD,SAASK,KAElBm2Y,iBAAkB,WACd,IAAIhgT,EAAYr7I,KAAK6kB,OAAO,aAC5B,OAAIw2H,IAAcs8S,EACP,OAEPt8S,IAAcu8S,EACP,WADX,GAIJlH,UAAW,WACP,OAAO1wb,KAAKwxN,UAAUxxL,YAE1Bs7Z,mBAAoB,SAASt7Z,GACzB,IAAI+6C,EAAAA,EAAAA,IAAc/6C,GAAW,CACzB,IAAItnB,GAAO8mP,EAAAA,EAAAA,eAAcx/N,EAAStnB,KAAMsnB,EAAShvB,GAC7C8H,GAAM0mP,EAAAA,EAAAA,eAAcx/N,EAASlnB,IAAKknB,EAASriB,GAC/C,MAAO,CACHjF,MAAMiwC,EAAAA,EAAAA,IAAUjwC,IAASA,OAAO,EAChCI,KAAK6vC,EAAAA,EAAAA,IAAU7vC,IAAQA,OAAM,GAGjC,IAAIuiI,EAAYr7I,KAAK6kB,OAAO,aAC5B,MAAO,CACHnM,KAAM2iI,IAAcs8S,GAAY33Z,OAAW,EAC3ClnB,IAAKuiI,IAAcu8S,GAAc53Z,OAAW,IAIxD+3Z,UAAW,WACP,OAAO/3b,KAAK0wS,SAEhBumJ,MAAO,WACHj3b,KAAK0wS,SAAU,GAEnBwmJ,QAAS,WACAl3b,KAAK6kB,OAAO,cACb7kB,KAAK0wS,SAAU,IAGvBsnJ,aAAc,SAAS38S,GACnB,IAAIijG,EAAUt+O,KAAK6kB,OAAO,aAC1B,OAAIw2H,IAAcs8S,EACPr5M,IAAYs5M,EAEnBv8S,IAAcu8S,EACPt5M,IAAYq5M,EAEhBr5M,IAAYjjG,GAEvBkgT,wBAAyB,WACrB,IAAIxL,EAAoB/vb,KAAKwxN,UAAUs+N,qBACnC9vb,KAAKg4b,aAAaoC,IAASrK,EAAkBnhY,UAAYmhY,EAAkBlhY,WAC3E7uD,KAAKw7b,uBAAyBpB,EACvBp6b,KAAKg4b,aAAaJ,IAAe7H,EAAkBlhY,WAC1D7uD,KAAKw7b,uBAAyB5D,EACvB53b,KAAKg4b,aAAaL,IAAa5H,EAAkBnhY,SACxD5uD,KAAKw7b,uBAAyB7D,EAE9B33b,KAAKw7b,uBAAyB,MAGtCvD,kBAAmB,WACf,OAAOj4b,KAAKw7b,wBAEhB7ha,SAAU,WACN,OAAO35B,KAAKk1N,WAEhBp0M,QAAS,WACL,OAAOs1M,EAAAA,EAAAA,GAAiBp2N,KAAKk1N,YAEjCp1M,UAAW,WACP,OAAOs2M,EAAAA,EAAAA,GAAiBp2N,KAAKunY,cAEjCriV,aAAc,WACV,OAAOllD,KAAKwxN,UAAU2nO,oBAE1BjB,qBAAsB,WAClB,MAGIl4b,KAAK6kB,SAFM+mW,EADf,EACIA,UACY75S,EAFhB,EAEIA,WAEJ,OAAO65S,GAAa75S,GAExB9qC,UAAW,WACP,OAAOjnC,KAAKklD,eAAepsC,KAE/BkuB,WAAY,WACR,OAAOhnC,KAAKklD,eAAexsC,MAE/B2uC,aAAc,WACV,OAAOw1F,EAAAA,EAAAA,IAAU78I,KAAKunY,cAE1BngV,aAAc,WACV,OAAOoxK,EAAAA,EAAAA,IAAex4N,KAAK25B,aAE/B6lC,YAAa,WACT,OAAOs9E,EAAAA,EAAAA,IAAS98I,KAAKunY,cAEzB37L,YAAa,WACT,OAAO0sB,EAAAA,EAAAA,IAAct4N,KAAK25B,aAE9Btb,OAAQ,WACJ,GAAKre,KAAKwxN,UAGV,OAAOiJ,EAAAA,EAAAA,IAAKz6N,KAAKwxN,UAAUnzM,UAAU+a,KAAK,WACtCp5B,KAAKu7b,2BACP9wb,KAAKzK,QAEXy7I,SAAU,SAAS91G,KACfA,EAAW3lC,KAAKs7b,mBAAmB31Z,IACrB7sB,KAAQ6sB,EAASjtB,QAG/B1Y,KAAKk7b,gBACLl7b,KAAKwxN,UAAU/1E,SAAS91G,KAE5Bkf,SAAU,SAASsoU,GACfA,EAAiBntX,KAAKs7b,mBAAmBnuE,GACzCntX,KAAKk7b,gBACL,IAAIl7Z,EAAWhgC,KAAK0wb,YACf1wb,KAAK6kB,OAAO,eACbsoW,EAAiBntX,KAAKwxN,UAAUiqO,iBAAiBtuE,GACjDntV,EAAWhgC,KAAKwxN,UAAUiqO,iBAAiBz7Z,IAE3ChgC,KAAKk4b,yBACLl4Z,EAAStnB,KAAOsnB,EAAStnB,KAAO1Y,KAAKszb,gBAAgB56a,MAEzD,IAAIitB,EAAW3lC,KAAKs7b,mBAAmB,CACnC5ib,KAAMsnB,EAAStnB,MAAO8mP,EAAAA,EAAAA,eAAc2tH,EAAez0W,KAAMsnB,EAAStnB,MAClEI,IAAKknB,EAASlnB,KAAM0mP,EAAAA,EAAAA,eAAc2tH,EAAer0W,IAAKknB,EAASlnB,QAE9D6sB,EAAS7sB,KAAQ6sB,EAASjtB,OAG/B1Y,KAAKwxN,UAAU/1E,SAAS91G,IAE5B8sE,gBAAiB,SAAS3yG,EAASyL,GAC/B,IAAIsO,GAAWnM,EAAAA,EAAAA,GAAE5N,GACb47b,EAAuB17b,KAAK25B,WAAWtd,KAAKvc,GAASQ,OACrDq7b,EAAyB9hb,EAASiL,QAAQ,kBAAwBxkB,OAASuZ,EAASiL,QAAQ,0BAAgCxkB,SAAW,EAC3I,GAAKo7b,GAAyBC,EAA9B,CAGA,IAAIC,EAAiB,CACjB9ib,IAAK,EACLJ,KAAM,GAEN2iI,EAAYr7I,KAAK6kB,OAAO,aACxBw2H,IAAcs8S,IACdiE,EAAeljb,KAAO1Y,KAAK67b,yBAAyBhib,EAAU+9a,EAAYrsb,IAE1E8vI,IAAcu8S,IACdgE,EAAe9ib,IAAM9Y,KAAK67b,yBAAyBhib,EAAU89a,EAAUpsb,IAE3EvL,KAAK6kD,SAAS+2Y,KAElBC,yBAA0B,SAAShib,EAAUwhI,EAAW9vI,GACpD,IAAI25C,EAAellD,KAAKklD,eACxB,OChaD,SAAoCmP,EAAegnF,EAAW/7E,EAAkBpa,EAAc35C,GACjG,IAAIuwb,GAAmB7jO,EAAAA,EAAAA,GAAS,CAC5Bn/M,IAAK,EACLJ,KAAM,EACNqF,MAAO,EACPC,OAAQ,GACTzS,GACC8hX,EAAahyO,IAAcq6L,EAAAA,GAC3BjvN,EAAO4mQ,EAAa,MAAQ,OAC5B0uE,EAAc1uE,EAAa,SAAW,QACtCn1W,EAAYm1W,EAAa,SAAW,QACpC2uE,EAAsB18X,EAAiB,SAAS1jC,QAAO+2O,EAAAA,EAAAA,IAASz6P,KAChE+jb,EAAsB38X,EAAiB,SAAS1jC,QAAO+2O,EAAAA,EAAAA,IAASz6P,KAChEu6a,EAAgBnzX,EAAiBrjD,wBAAwB/D,GACzDolQ,EAAcjpN,EAAcp4C,wBAAwB/D,GACpDopN,EAAQ,EACR37M,KAAK23B,IAAIm1Y,EAAgBuJ,GAAuB,IAChD16N,EAAQmxN,EAAgBuJ,GAE5B,IAAIE,GAAwBpmH,EAAAA,EAAAA,GAAkBD,EAAAA,GAA0BxhR,GAAeoyD,GAAQ66G,EAC3F66N,EAAwBj3Y,EAAauhE,GACrC21U,EAAsBD,EAAwBD,EAAwBJ,EAAiBr1U,GACvF41U,EAAoBF,EAAwBD,EAAwB5+K,EAAch8C,EAAQ26N,EAAsBH,EAAiBC,GACrI,OAAIK,GAAuB,GAAKC,GAAqB,EAC1CF,EAEJA,GAAyBx2a,KAAK23B,IAAI8+Y,GAAuBz2a,KAAK23B,IAAI++Y,GAAqBA,EAAoBD,GDsYvGE,CAA2Bzib,EAASgG,IAAI,GAAIw7H,GAAW3tI,EAAAA,EAAAA,GAAE1N,KAAK8f,aAAaD,IAAI,GAAIqlC,EAAc35C,IAE5G2vb,cAAe,WACNl7b,KAAK6kB,OAAO,mBACb7kB,KAAKqe,UAGbmrO,cAAe,WACX,OAAO,GAEXmmF,YAAa,WACT,QAAS4+C,EAAWphD,wBAG5B7sT,EAAAA,EAAAA,SAAkB45a,EAAY3rE,GAC9B,sGEOIguE,EACAC,0LA5YAC,EAA8BC,8BAC9BC,EAAgCD,gCAChCE,EAA6B,0BAG7BjF,EAAW,WACXC,EAAa,aACbiF,EAAe,IAGfnrJ,EAAiB/rR,KAAK6H,MAAM,IAAM,IAKlCsva,EADkB,IACgBprJ,EAClCqrJ,GAA2B,EAAIp3a,KAAKg7C,IAAIk8X,EAAcC,KAAmB,EAAID,GAC7EG,EACS,SADTA,EAEW,WAFXA,EAGK,MAHLA,EAIM,OAJNA,EAKM,YALNA,EAMI,UANJA,EAOO,aAPPA,EAQM,YARNA,EASK,MAELC,EAAkB5rO,EAAAA,EAAAA,QAAiB,CACnCztF,KAAM,SAASyT,GACXr3I,KAAKuxN,WACLvxN,KAAKq3I,SAAWA,GAEpB6lT,eAxBqB,EAyBrBzF,YAAa,WACT,OAAO9xa,KAAK23B,IAAIt9C,KAAKq3I,SAAS8lT,YAAcn9b,KAAKk9b,gBAErDzrO,MAAO,WACHzxN,KAAKq3I,SAAS+lT,YAAYp9b,KAAKq3I,SAAS8lT,WACxCn9b,KAAKq3I,SAAS8lT,WAAan9b,KAAKq9b,iBAEpCA,cAAe,WACX,OAAOr9b,KAAKq3I,SAAS67S,YAAc2J,EAlCb,IAoC1B3M,UAAW,WACPlwb,KAAKq3I,SAAS47S,qBAGlBqK,EAAiBL,EAAgBj+R,QAAQ,CACzCk+R,eApC4BK,GAqC5B9F,YAAa,WACT,OAAOz3b,KAAKq3I,SAASmmT,yBAA2Bx9b,KAAKuxN,YAEzD8rO,cAAe,WACX,OAAOR,GAEX3M,UAAW,WACPlwb,KAAKq3I,SAAS5lE,MAAMzxE,KAAKq3I,SAASomT,iBAClCz9b,KAAKuxN,cAGF2gO,EAAW7vM,EAAAA,QAAAA,QAAc,CAChCz+G,KAAM,SAASxpH,GACXpa,KAAKqkP,aAAajqO,GAClBpa,KAAK09b,iBACL19b,KAAK29b,kBAETt5M,aAAc,SAASjqO,GAAS,WAC5Bpa,KAAK0wb,UAAY,EACjB1wb,KAAK49b,aAAc,EACnB59b,KAAK69b,gBAAiB,EACtB79b,KAAK89b,MAAQ1jb,EAAQihI,YAAcu8S,EAAa,IAAM,IACtD53b,KAAK+9b,MAAQ3jb,EAAQihI,YAAcu8S,EAAa,OAAS,MACzD53b,KAAKg+b,WAAa5jb,EAAQihI,YAAcu8S,EAAa,QAAU,SAC/D53b,KAAKi+b,YAAc7jb,EAAQihI,YAAcu8S,EAAa,aAAe,aACrEn9a,EAAAA,EAAAA,IAAKL,GAAS,SAAC4rO,EAAY07D,GACvB,EAAK,IAAM17D,GAAc07D,MAGjCg8I,eAAgB,WACZ19b,KAAKk+b,iBAAmB,IAAIjB,EAAgBj9b,MAC5CA,KAAKm+b,gBAAkB,IAAIb,EAAet9b,OAE9C29b,eAAgB,WACZ39b,KAAKwyb,WAAa,IAAIzoP,EAAAA,GAAUr8L,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAKunY,aAAc,CACnElsP,UAAWr7I,KAAKqyb,WAChBxpb,QAAS7I,KAAKo+b,eACdC,eAAgBr+b,KAAKs+b,yBAAyBt+b,KAAKu+b,mBACnD5F,WAAY34b,KAAKo+b,iBAErBp+b,KAAKw+b,YAAcx+b,KAAKwyb,WAAW34a,YAEvCykb,yBAA0B,SAASj6X,GAC/B,OAAO,IAASA,EAAO,YAAa,IAAUA,EAAO,QAAUA,GAEnE+4X,YAAa,SAASpgb,GAClB,IAAIyhb,EAAez+b,KAAK0wb,UACxB1wb,KAAK0wb,WAAa1za,EAClBhd,KAAK0+b,kBACL1+b,KAAKyxE,QACD9rD,KAAK23B,IAAImhZ,EAAez+b,KAAK0wb,WAAa,GAG9C/6N,EAAAA,EAAAA,eAA4B31N,KAAKunY,YAAa,CAC1C5jX,KAAM,YAGd+6a,gBAAiB,WACT1+b,KAAK2+b,gBAAkB3+b,KAAKkzb,UAAUlzb,KAAK0wb,aAG/C1wb,KAAKm9b,UAAY,EACjBn9b,KAAK0wb,UAAY1wb,KAAK4+b,mBAE1BA,eAAgB,SAAS5+Z,GAErB,OADAA,OAAW,IAAWA,EAAWA,EAAWhgC,KAAK0wb,UAC1C/qa,KAAKC,IAAID,KAAKG,IAAIka,EAAUhgC,KAAKuzb,YAAavzb,KAAKozb,aAE9D3hX,MAAO,SAASzxC,GACZhgC,KAAK0wb,eAAY,IAAW1wZ,EAAWA,EAAWhgC,KAAK6yb,iBAAmB7yb,KAAK0wb,UAC/E1wb,KAAK8yb,eACL9yb,KAAKgzb,kBAETF,aAAc,WACV,IAAI9yZ,EAAWhgC,KAAK0wb,UACpB1wb,KAAKunY,YAAYvnY,KAAKi+b,cAAcj+Z,EAAWhgC,KAAK6yb,kBACpD7yb,KAAK6+b,yBAAyB7+Z,IAElC6yZ,eAAgB,WACZ,IAAIv2N,EAAAA,EAAAA,QAAgBt8N,KAAK8+b,YAAa,CAClC,IAAIh/b,EAAUE,KAAK4kB,UAAU/E,IAAI,GAC7Bk/a,EAAgB/+b,KAAKg/b,kBAAkBl/b,EAASE,KAAKg+b,YACrDiB,EAAgBj/b,KAAKk/b,kBAAkBp/b,EAASE,KAAKg+b,YACzDh+b,KAAK8+b,YAAcn5a,KAAK6H,MAAMuxa,EAAgBE,EAAgB,KAAO,IAEzE,OAAOj/b,KAAK8+b,aAAe,GAE/BE,kBAAmB,SAASl/b,EAASoY,GACjC,OAAOyN,KAAK6H,OAAMkjM,EAAAA,EAAAA,GAAgB5wN,GAASoY,KAE/Cgnb,kBAAmB,SAASp/b,EAASoY,GAEjC,OAAOpY,EADa,UAAW6yQ,EAAAA,EAAAA,IAASz6P,KAG5C2mb,yBAA0B,SAAS7+Z,GAC/B,IAAIm/Z,EACAzyJ,GAAa1sS,KAAKo/b,oBAQtB,GANID,EADAn/Z,EAAW,EACOA,EACXA,GAAY0sQ,EACD1sQ,EAAW0sQ,EAEX1sQ,EAAW,EAE7BhgC,KAAKq/b,mBAAqBF,EAA9B,CAGA,IAAIhyE,EAAiB,GACrBA,EAAentX,KAAK+9b,OAASoB,EAC7Bn/b,KAAKq/b,iBAAmBF,EACpB,IAAMA,GAIVljZ,EAAAA,EAAAA,IAAKj8C,KAAKk1N,UAAWi4J,IAHjBvjJ,EAAAA,EAAAA,IAAc5pO,KAAKk1N,aAK3B89N,eAAgB,WACZhzb,KAAKwyb,WAAW97R,OAAO12J,KAAK0wb,YAEhCuC,gBAAiB,WACTjzb,KAAKkzb,cACLlzb,KAAKs/b,iBACDt/b,KAAKu/b,mBACLv/b,KAAKu/b,kBAAkBnvb,WAG/BpQ,KAAKw/b,mBAETA,gBAAiB,WACTx/b,KAAKkzb,cAGTlzb,KAAKy/b,gBACLz/b,KAAK0/b,eACL1/b,KAAKm+b,gBAAgBtib,UAEzB6jb,aAAc,WACV,IACIC,GADgB3/b,KAAKy9b,gBAAkBz9b,KAAK4+b,kBACX5+b,KAAK0wb,UAC1C1wb,KAAKm9b,UAAYwC,EAAiB5C,GAEtC7J,UAAW,SAASlzZ,GAEhB,OADAA,OAAW,IAAWA,EAAWA,EAAWhgC,KAAK0wb,UAC1C1wb,KAAK4+b,eAAe5+Z,KAAcA,GAE7Cw9Z,sBAAuB,WACnB,IAAIx9Z,EAAWhgC,KAAK0wb,UAChBkP,EAAe5/Z,EAAWhgC,KAAKm9b,UACnC,OAAOn9Z,EAAWhgC,KAAKozb,YAAcwM,GAAgB5/b,KAAKozb,YAAcpzZ,EAAWhgC,KAAKuzb,YAAcqM,GAAgB5/b,KAAKuzb,YAE/H0H,aAAc,SAASz6b,GACnBR,KAAK6/b,iBACL7/b,KAAK8/b,uBAAuBt/b,IAEhCq/b,gBAAgBz/L,EAAAA,EAAAA,gBAAe,WAC3BpgQ,KAAKs/b,iBACLt/b,KAAKk+b,iBAAiB3jb,OACtBva,KAAKm+b,gBAAgB5jb,UAEzBulb,uBAAwB,SAASt/b,GAC7B,KAAIy+R,EAAAA,EAAAA,qBAAoBz+R,EAAE43G,eAA1B,CAGA,IAAIjoE,GAAUziC,EAAAA,EAAAA,GAAElN,EAAE43G,cAAcxxG,QAC5Bm5b,EAAmB//b,KAAKggc,aAAa7vZ,GACrC4vZ,GACA//b,KAAKigc,qBAAqBz/b,GAE9BR,KAAKkgc,gBAAkBH,GAAoB//b,KAAKmgc,SAAShwZ,GACzDnwC,KAAKogc,sBAAwBpgc,KAAKkgc,iBAAmBlgc,KAAKqgc,qBAAqBlwZ,GAC3EnwC,KAAKkgc,iBACLlgc,KAAKwyb,WAAW8N,eAGxBC,yBAA0B,SAASpwZ,GAC/B,OAAOnwC,KAAKmgc,SAAShwZ,IAEzB8vZ,qBAAsB,SAASz/b,GAC3B,IAAIggc,EAAgBhgc,EAAE,OAASR,KAAK89b,MAAMp4U,eAAiB1lH,KAAK4kB,UAAUrZ,SAASvL,KAAK+9b,OACpF/9Z,EAAWhgC,KAAK0wb,UAAY8P,EAAgBxgc,KAAKygc,4BAA6B5jT,EAAAA,EAAAA,IAAU78I,KAAKunY,aAAe,EAChHvnY,KAAKo9b,aAAaz3a,KAAK6H,MAAMwS,KAEjC0ga,cAAe,WACX1gc,KAAK2gc,kBAETC,aAAc,SAAS5jb,GACfhd,KAAKogc,uBAGLpgc,KAAKkgc,kBACLljb,EAAMhd,KAAK89b,QAAUn4a,KAAK6H,MAAMxQ,EAAMhd,KAAK89b,OAAS99b,KAAKygc,6BAE7Dzgc,KAAK6gc,UAAU7jb,KAEnB6jb,UAAW,SAAS7jb,GAChBA,EAAQA,EAAMhd,KAAK89b,OACd99b,KAAKkzb,cACNl2a,GA/OkB,IAiPtBhd,KAAKo9b,YAAYpgb,IAErB8jb,iBAAkB,SAAS9jb,GACvBhd,KAAK6gc,UAAU7jb,GACfhd,KAAKizb,mBAETwN,yBAA0B,WACtB,OAAOzgc,KAAKwyb,WAAWuO,2BAE3BC,YAAa,SAAS3uJ,GAKlB,OAJAryS,KAAKu/b,kBAAoB,IAAI/sO,EAAAA,GAC7BxyN,KAAKm9b,UAAY9qJ,EAASryS,KAAK89b,OAC/B99b,KAAKihc,kBACLjhc,KAAKkhc,uBACElhc,KAAKu/b,kBAAkB/ub,WAElCywb,gBAAiB,WACbjhc,KAAKmhc,mBACLnhc,KAAKk+b,iBAAiBrib,SAE1Bslb,iBAAkB,WACTnhc,KAAKohc,kBAAmBphc,KAAKkgc,kBAC9Blgc,KAAKm9b,UAAY,IAGzB+D,qBAAsB,WAClBlhc,KAAKkgc,iBAAkB,EACvBlgc,KAAKogc,sBAAuB,GAEhCiB,aAAc,WACNrhc,KAAKkgc,iBACLlgc,KAAKizb,kBAETjzb,KAAKkhc,uBACLlhc,KAAKw/b,mBAET8B,gBAAiB,WACbthc,KAAK6/b,iBACL7/b,KAAKw+b,YAAYh9b,UAErBuyb,eAAgB,WACZ/zb,KAAKqhB,UACLrhB,KAAKyzb,iBAETpya,QAAS,WAAW,WAEhB,OADArhB,KAAK6/b,kBACE1/L,EAAAA,EAAAA,cAAY,WACf,EAAKohM,mBACL,EAAKC,kBACL,EAAKpP,gBACL,EAAKG,oBACLryL,EAAAA,EAAAA,cAAY,WACR,EAAK8yL,iBACL,EAAKR,WAAWn0a,gBAI5Bkjb,iBAAkB,WACdvhc,KAAK8+b,YAAc,MAEvB0C,gBAAiB,WACbxhc,KAAK0wb,YAAap8N,EAAAA,EAAAA,IAAOt0N,KAAKk1N,WAAWl1N,KAAK+9b,OAAS/9b,KAAKunY,YAAYvnY,KAAKi+b,gBAAkBj+b,KAAK6yb,kBAExGT,cAAe,WACXpyb,KAAKuzb,WAAavzb,KAAKszb,gBACvBtzb,KAAKozb,WAAapzb,KAAKqzb,iBAE3BC,cAAe,WACX,OAAO,GAEXD,cAAe,WAEX,OADArzb,KAAKo/b,oBAAsBz5a,KAAKC,IAAI5lB,KAAK2yb,eAAiB3yb,KAAK0yb,iBAAkB,IACzE1yb,KAAKo/b,qBAEjB7M,kBAAkBlyL,EAAAA,EAAAA,eAAc,WAAW,WACnCoyL,EAAgBzyb,KAAK0yb,iBACrB3X,EAAc/6a,KAAK2yb,eACnB8O,EAAoBzhc,KAAKk/b,kBAAkBl/b,KAAKunY,YAAY1nX,IAAI,GAAI7f,KAAKg+b,YACzE0D,EAAkB1hc,KAAKk/b,kBAAkBl/b,KAAKk1N,UAAUr1M,IAAI,GAAI7f,KAAKg+b,aACzE99L,EAAAA,EAAAA,cAAY,WACR,EAAKsyL,WAAW3ta,OAAO,CACnB4ta,cAAeA,EACf1X,YAAaA,EACb0mB,kBAAmBA,EACnBC,gBAAiBA,EACjB9O,WAAY,EAAKC,yBAI7BY,eAAerzL,EAAAA,EAAAA,gBAAcC,EAAAA,EAAAA,eAAaD,EAAAA,EAAAA,gBAAe,WACrD,IAAIpgO,EAAWhgC,KAAK4+b,iBAChB+C,EAAkB3ha,IAAahgC,KAAK0wb,UACxC1wb,KAAK0wb,UAAY1wZ,EACjBhgC,KAAKyxE,QACDkwX,GACA3hc,KAAKwnZ,qBAGbo6C,sBAAuB,SAASphb,GAC5BxgB,KAAKwnZ,cAAgBhnY,EAAQkG,OAC7B1mB,KAAKy/b,cAAgBj/a,EAAQqhb,QAEjClB,eAAgB,WACZ3gc,KAAKwyb,WAAW3ta,OAAO,WAAW,IAEtCy6a,eAAgB,WACZt/b,KAAKwyb,WAAW3ta,OAAO,WAAW,IAEtC6ta,eAAgB,WACZ,OAAO1yb,KAAKg/b,kBAAkBh/b,KAAKunY,YAAY1nX,IAAI,GAAI7f,KAAKg+b,aAEhErL,aAAc,WACV,IAAImP,EAAmB,WAAa9hc,KAAKk1N,UAAU75M,IAAI,WAAarb,KAAK89b,MAAMp4U,eAC3Eq1T,EAAc/6a,KAAKg/b,kBAAkBh/b,KAAKk1N,UAAUr1M,IAAI,GAAI7f,KAAKg+b,YACrE,IAAK8D,EAAkB,CACnB,IAAIC,EAAsB/hc,KAAKk1N,UAAU,GAAG,UAAWy9C,EAAAA,EAAAA,IAAS3yQ,KAAKg+b,aAAeh+b,KAAK6yb,iBACzF9X,EAAcp1Z,KAAKC,IAAIm8a,EAAqBhnB,GAEhD,OAAOA,GAEXinB,eAAgB,SAASxhc,GACrB,IAAI2vC,GAAUziC,EAAAA,EAAAA,GAAElN,EAAE43G,cAAcxxG,QAChC,OAAO5G,KAAKmgc,SAAShwZ,IAAYnwC,KAAKggc,aAAa7vZ,IAEvDgwZ,SAAU,SAAStmb,GACf,OAAO7Z,KAAKo+b,gBAAkBp+b,KAAKwyb,WAAWyP,QAAQpob,IAE1Dmmb,aAAc,SAASnmb,GACnB,OAAO7Z,KAAKo+b,gBAAkBvkb,GAAYA,EAASigB,GAAG95B,KAAKw+b,cAE/D0D,YAAa,WACT,OAAOv8a,KAAK6H,MAAMxtB,KAAK0wb,UAAY1wb,KAAKozb,aAAe,GAE3D+O,YAAa,WACT,OAAOx8a,KAAK6H,MAAMxtB,KAAK0wb,UAAY1wb,KAAKuzb,aAAe,GAE3D6O,oBAAqB,WACjBpic,KAAKuhc,mBACLvhc,KAAKuyb,mBACLvyb,KAAKwyb,WAAW6P,eAEpBC,oBAAqB,WACjBtic,KAAKwyb,WAAW+P,eAEpBnkb,QAAS4zM,EAAAA,OAIFiiO,EAAoB5xM,EAAAA,QAAAA,QAAc,CACzCz+G,KAAM,SAASi0T,GACX73b,KAAKwyE,MAAMqlX,IAEfrlX,MAAO,SAASqlX,GACZ73b,KAAKy5B,WAAao+Z,EAClB73b,KAAK4kB,UAAYiza,EAAWh+a,WAC5B7Z,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAEmqb,EAAW/3a,aAChC9f,KAAKsvX,UAAYuoE,EAAWvoE,UAC5BtvX,KAAKk1N,UAAY2iO,EAAWl+Z,WAC5B35B,KAAK6kB,OAASgza,EAAWhza,OAAOpa,KAAKotb,GACrC73b,KAAKw7N,sBAAwBq8N,EAAWr8N,sBAAsB/wN,KAAKotb,GACnE73b,KAAK+3b,UAAYF,EAAWE,UAAUttb,KAAKotb,GAC3C73b,KAAKg4b,aAAeH,EAAWG,aAAavtb,KAAKotb,GACjD73b,KAAKi4b,kBAAoBJ,EAAWI,kBAAkBxtb,KAAKotb,GAC3D73b,KAAKszb,cAAgBuE,EAAWvE,cAAc7ob,KAAKotb,IAEvDt4a,OAAQ,WACJvf,KAAK4kB,UAAUnF,SAASm9a,GACxB58b,KAAKwic,mBACDxic,KAAK6kB,OAAO,gBACZ7kB,KAAKunY,YAAY9gR,KAAK,WAAY,GAEtCzmH,KAAKyic,yBACLzic,KAAK0ic,yBAETF,iBAAkB,WACdxic,KAAKm0b,WAAa,GACdn0b,KAAKg4b,aAAaJ,IAClB53b,KAAKk0b,gBAAgB0D,GAErB53b,KAAKg4b,aAAaL,IAClB33b,KAAKk0b,gBAAgByD,GAEzB33b,KAAK4kB,UAAU4xM,YA5amB,yCA4a8B,WAAax2N,KAAK6kB,OAAO,mBAE7Fqva,gBAAiB,SAAS74S,GACtBr7I,KAAKm0b,WAAW94S,GAAa,IAAI62S,EAASlyb,KAAKo0b,iBAAiB/4S,KAEpE+4S,iBAAkB,SAAS/4S,GACvB,MAAO,CACHA,UAAWA,EACX1hH,SAAU35B,KAAKk1N,UACf3tL,WAAYvnC,KAAKunY,YACjBpyK,SAAUn1N,KAAKsvX,UACfz1W,SAAU7Z,KAAK4kB,UACf+B,cAAe3mB,KAAK6kB,OAAO,iBAC3B89a,iBAAkB3ic,KAAK6kB,OAAO,iBAC9BgnW,cAAe7rX,KAAK6kB,OAAO,iBAC3B01a,eAAgBv6b,KAAK6kB,OAAO,kBAC5B+9a,oBAAqB5ic,KAAKqgc,qBAAqB51b,KAAKzK,QAG5Dy7b,iBAAkB,SAAStuE,GACvB,IAAK,IAAI9xO,KAAar7I,KAAKm0b,WAAY,CACnC,IAAI1tU,EAAOzmH,KAAK6ic,oBAAoBxnT,GACpC,IAAI1yF,EAAAA,EAAAA,IAAUwkU,EAAe1mQ,IAAQ,CACjC,IAAI4wB,EAAWr3I,KAAKm0b,WAAW94S,GAC/B8xO,EAAe1mQ,IAAS4wB,EAASw7S,kBAGzC,OAAO1lE,GAEXkzE,qBAAsB,SAASlwZ,GAC3B,IAAIthC,GAAS,EAIb,OAHA7O,KAAKqvZ,cAAc,mBAAoBl/W,GAAS/W,MAAM,SAAS0pa,EAA0BC,GACrFl0b,EAASi0b,GAA4BC,KAElCl0b,GAEX2ib,WAAY,SAAShxb,GACjBR,KAAKgjc,oBAAoBxic,GACzBR,KAAKk5b,oBAAsB14b,EAC3BR,KAAKqvZ,cAAc,OAAQ7uZ,IAE/Bwic,oBAAqB,SAASxic,IACtBy+R,EAAAA,EAAAA,qBAAoBz+R,EAAE43G,eACtBp4G,KAAKutX,oBAAmB,IAG5BvtX,KAAKutX,qBACLvtX,KAAKijc,eAAe,SAAS5rT,EAAUgE,GACnC,IAAIlrG,GAAUziC,EAAAA,EAAAA,GAAElN,EAAE43G,cAAcxxG,QAC5BspB,EAAUmnH,EAAS2qT,eAAexhc,IAAMR,KAAK6kB,OAAO,oBAAsB7kB,KAAKkjc,WAAW/yZ,GAC9FnwC,KAAKmjc,iBAAiB9nT,GAAanrH,OAG3Cgza,WAAY,SAASrpb,GACjB,QAASA,EAAS9P,QAAQ/J,KAAK4kB,WAAWtkB,QAE9CitX,mBAAoB,SAAS3rX,GACzBA,EAAQA,IAAS,EACjB5B,KAAKmjc,iBAAmB,GACxBnjc,KAAKmjc,iBAAL,WAAoCvhc,EACpC5B,KAAKmjc,iBAAL,SAAkCvhc,GAEtCqhc,cAAe,SAASz0Y,GACpBA,EAAWA,EAAS/jD,KAAKzK,OACzBya,EAAAA,EAAAA,IAAKza,KAAKm0b,YAAa,SAAS94S,EAAWhE,GACvC7oF,EAAS6oF,EAAUgE,OAG3Bu9S,YAAa,SAASp4b,GAClBR,KAAKk5b,oBAAsB14b,EAC3BR,KAAKqvZ,cAAc,SAASj2X,KAAKp5B,KAAKojc,eAE1CC,YAAa,WACT7G,EAAmBx8b,MAEvBsjc,aAAc,WACN9G,IAAqBx8b,OACrBw8b,EAAmB,OAG3B9uE,WAAY,SAASltX,GACjB,GAAIR,KAAK+3b,YAGL,OAFAv3b,EAAEulC,QAAS,OACX/lC,KAAKsjc,eAGTtjc,KAAKqjc,cACL7ic,EAAE6G,gBAAkB7G,EAAE6G,iBACtBrH,KAAKujc,gBAAgB/ic,EAAGA,EAAEwc,OAC1Bhd,KAAKk5b,oBAAsB14b,EAC3BR,KAAKqvZ,cAAc,OAAQ7uZ,EAAEwc,QAEjCumb,gBAAiB,SAAS/ic,EAAGmlC,GACzBA,EAAS30B,GAAKhR,KAAKmjc,iBAAL,WACdx9Z,EAAShoB,GAAK3d,KAAKmjc,iBAAL,SACd,IAAIvgU,EAAmB5iI,KAAKwjc,0BACxB5gU,IAAoBq8J,EAAAA,EAAAA,qBAAoBz+R,EAAE43G,iBAC1CzyE,EAAS30B,EAAI2U,KAAK6H,MAAMmY,EAAS30B,EAAI4xH,EAAmB,KAAO,IAC/Dj9F,EAAShoB,EAAIgI,KAAK6H,MAAMmY,EAAShoB,EAAIilH,EAAmB,KAAO,MAGvE4gU,wBAAyB,WACrB,IAAIlnO,EAAAA,EAAAA,MACA,OAAOrO,EAAAA,EAAAA,MAAYrrF,kBAG3BqtT,UAAW,SAASzvb,GAKhB,OAJAR,KAAKsjc,eACLtjc,KAAKyjc,oBAAoBjjc,EAAE43G,eAAiB53G,EAAE43G,cAAcxxG,QAC5D5G,KAAKujc,gBAAgB/ic,EAAGA,EAAE6xS,UAC1BryS,KAAKk5b,oBAAsB14b,EACpBR,KAAKqvZ,cAAc,MAAO7uZ,EAAE6xS,UAAUj5Q,KAAKp5B,KAAK0jc,aAE3D7K,aAAc,SAASr4b,GAGnB,OAFAR,KAAKsjc,eACLtjc,KAAKk5b,oBAAsB14b,EACpBR,KAAKqvZ,cAAc,MAAO,CAC7Br+Y,EAAG,EACH2M,EAAG,KAGXwya,WAAY,WACRnwb,KAAKsjc,eACLtjc,KAAKqvZ,cAAc,SAEvBkhC,aAAc,WACVvwb,KAAK2jc,mBACL3jc,KAAKwnZ,iBAETi7C,uBAAwB,WACpB9sO,EAAAA,EAAAA,IAAiB31N,KAAK4kB,UAAW,IAAIgX,OAAO+ga,KACvC38b,KAAK6kB,OAAO,aAAe7kB,KAAK6kB,OAAO,gBACxC8wM,EAAAA,EAAAA,GAAgB31N,KAAK4kB,WAAWg/a,EAAAA,EAAAA,cAAkB,UAAWjH,GAAgC38b,KAAK6jc,gBAAgBp5b,KAAKzK,QAG/H6jc,gBAAiB,SAASrjc,GAAG,WASzB,GARA09B,aAAal+B,KAAK8jc,uBAClB9jc,KAAK8jc,sBAAwBjhc,YAAW,YAChC4lS,EAAAA,EAAAA,kBAAiBjoS,KAAOw8b,GACxB,EAAKiG,eAAc,SAAA5rT,GACfA,EAAS08S,uBAIhB/zb,KAAKunY,YAAYztW,GAAG8/L,EAAAA,EAAAA,iBAA4B55N,KAAKunY,YAAY1nX,IAAI,KAA1E,CAGA,IAAI03N,GAAU,EACd,QAAQkxD,EAAAA,EAAAA,kBAAiBjoS,IACrB,KAAKw8b,EACDh9b,KAAK+jc,cAAc,CACfpmb,EAAG,IAEP,MACJ,KAAKq/a,EACDh9b,KAAK+jc,cAAc,CACfpmb,GAAI,IAER,MACJ,KAAKq/a,EACDh9b,KAAK+jc,cAAc,CACf/yb,EAAG,IAEP,MACJ,KAAKgsb,EACDh9b,KAAK+jc,cAAc,CACf/yb,GAAI,IAER,MACJ,KAAKgsb,EACDh9b,KAAKgkc,cAAc,GACnB,MACJ,KAAKhH,EACDh9b,KAAKgkc,eAAe,GACpB,MACJ,KAAKhH,EACDh9b,KAAKikc,gBACL,MACJ,KAAKjH,EACDh9b,KAAKkkc,eACL,MACJ,QACI3sN,GAAU,EAEdA,IACA/2O,EAAE4G,kBACF5G,EAAE6G,oBAGV08b,cAAe,SAAS9zY,GACpB,IAAI2yE,EAAmB5iI,KAAKwjc,0BACxBt+Y,EAnmBa,GAomBb09E,IACA19E,EAAev/B,KAAK23B,IAAI4H,EAAe09E,EAAmB,KAAO,KAErE5iI,KAAKy7I,SAAS,CACV3iI,KAAMm3C,EAAMtyC,GAAK,IAAMunC,EACvBxsC,MAAOu3C,EAAMj/C,GAAK,IAAMk0C,KAGhC8+Y,cAAe,SAAS3zZ,GACpB,IAAIo2E,EAAOzmH,KAAKmkc,aAEZx+Z,EAAW,GACX89N,EAAS,UAFGzjQ,KAAKokc,iBAAiB39U,GAEDq2B,EAAAA,GAAWD,EAAAA,GAChDl3G,EAAS8gF,GAAQp2E,GAAQozN,EAAOzjQ,KAAKunY,aACrCvnY,KAAKy7I,SAAS91G,IAElBy+Z,iBAAkB,SAAS39U,GACvB,MAAO,SAAWA,EAAO,QAAU,UAEvCo8U,oBAAqB,SAASxnT,GAC1B,OAAOA,IAAcu8S,EAAa,OAAS,OAE/CqM,cAAe,WACX,IACIt+Z,EAAW,GACfA,EAFW3lC,KAAKmkc,cAEC,EACjBnkc,KAAKy5B,WAAWorB,SAASlf,IAE7Bu+Z,aAAc,WACV,IAAIz9U,EAAOzmH,KAAKmkc,aAEZx+Z,EAAW,GACX89N,EAAS,UAFGzjQ,KAAKokc,iBAAiB39U,GAEDq2B,EAAAA,GAAWD,EAAAA,GAChDl3G,EAAS8gF,GAAQg9I,EAAOzjQ,KAAKk1N,WAAauuC,EAAOzjQ,KAAKunY,aACtDvnY,KAAKy5B,WAAWorB,SAASlf,IAE7BqzZ,cAAe,WACXh5b,KAAKojc,aAAepjc,KAAKqkc,qBAAqB,WAC9Crkc,KAAK0jc,WAAa1jc,KAAKqkc,qBAAqB,SAC5Crkc,KAAKqxb,cAAgBrxb,KAAKqkc,qBAAqB,aAC/Crkc,KAAKskc,0BAETA,uBAAwB,WACpBtkc,KAAKwnZ,cAAgBxnZ,KAAKqkc,qBAAqB,YAC/Crkc,KAAKy/b,cAAgBz/b,KAAKqkc,qBAAqB,YAC/Crkc,KAAKqvZ,cAAc,gBAAiB,CAChC3oY,OAAQ1mB,KAAKwnZ,cACbq6C,OAAQ7hc,KAAKy/b,iBAGrB4E,qBAAsB,SAASr+M,GAAY,uBACnCu+M,EAAgBvkc,KAAKw7N,sBAAsBwqB,GAC/C,OAAO,WACHu+M,GAAcz7b,EAAAA,EAAAA,GAAO,EAAKmwb,oBAAqBlxb,MAGvDkxb,kBAAmB,WACf,MAGIj5b,KAAKm0b,WAFOqQ,EADhB,EACI31Y,WACU41Y,EAFd,EAEI71Y,SAEArjD,EAASvL,KAAKm5b,mBAKlB,OAJAn5b,KAAK0kc,cAAgB,CACjB5rb,IAAK2rb,GAAal5b,EAAOuN,IACzBJ,KAAM8rb,GAAaj5b,EAAOmN,MAEvB,CACH8B,MAAOxa,KAAKk5b,oBACZh0Y,aAAcllD,KAAK0kc,cACnBtL,YAAaoL,GAAaA,EAAUrC,cACpC5I,aAAciL,GAAaA,EAAUtC,cACrC1I,WAAYiL,GAAaA,EAAUtC,cACnC1I,cAAegL,GAAaA,EAAUvC,gBAG9C/I,iBA7SyC,WA8SrC,MAAO,CACHrgb,KAAM9Y,KAAKggC,WAAWlnB,IACtBJ,MAAO1Y,KAAKggC,WAAWtnB,OAG/B22Y,cAAe,SAASplX,GACpB,IAAIzjB,EAAO,GAAG/gB,MAAMhF,KAAKsH,WAAWtC,MAAM,GACtCo4D,GAAY33D,EAAAA,EAAAA,IAAIlG,KAAKm0b,YAAY,SAAA98S,GAAQ,OAAIA,EAAS,IAAMptG,EAAY,WAAWjkB,MAAMqxH,EAAU7wH,MACvG,OAAOi0M,EAAAA,GAAAA,MAAW/sN,EAAAA,EAAGmwD,GAAWrtD,WAEpCwvB,SAAU,WACN,IAAIA,GAAWs0L,EAAAA,EAAAA,IAAOt0N,KAAKk1N,WAG3B,OAFAl1L,EAASlnB,KAAO9Y,KAAKunY,YAAYtgW,YACjCjH,EAAStnB,MAAQ1Y,KAAKunY,YAAYvgW,aAC3BhH,GAEX45Z,gBAAiB,WACb55b,KAAK0ic,yBAETA,sBAAuB,WACnB/sO,EAAAA,EAAAA,IAAiB31N,KAAK4kB,UAAW,IAAIgX,OAAO6ga,KACvCz8b,KAAK6kB,OAAO,aAAe7kB,KAAK2kc,iBACjChvO,EAAAA,EAAAA,GAAgB31N,KAAK4kB,WAAWg/a,EAAAA,EAAAA,cAAkB,aAAcnH,GAA8Bz8b,KAAKoic,oBAAoB33b,KAAKzK,OAC5H21N,EAAAA,EAAAA,GAAgB31N,KAAK4kB,WAAWg/a,EAAAA,EAAAA,cAAkB,aAAcnH,GAA8Bz8b,KAAKsic,oBAAoB73b,KAAKzK,SAGpI2kc,aAAc,WACV,MAAO,YAAc3kc,KAAK6kB,OAAO,kBAErCu9a,oBAAqB,SAAS5hc,IAC1BA,EAAIA,GAAK,IACP43G,cAAgB53G,EAAE43G,eAAiB,GACjCokV,GAAoBh8b,EAAE43G,cAAcwsV,gBAGpCrI,GACAA,EAAkB+F,sBAEtB/F,EAAoBv8b,KACpBA,KAAKqvZ,cAAc,eACnB7uZ,EAAE43G,cAAcwsV,eAAgB,IAEpCtC,oBAAqB,SAAS9hc,GACtB+7b,IAAsBv8b,MAAQw8b,IAAqBD,IAGvDv8b,KAAKqvZ,cAAc,eACnBktC,EAAoB,KACpBv8b,KAAKyjc,oBAAoBjjc,GAAKA,EAAE6rC,iBAEpCo3Z,oBAAqB,SAAS78b,GAC1B,GAAK5G,KAAK2kc,gBAAoB/9b,IAAU41b,EAAxC,CAGA,IACI5rO,GADUljN,EAAAA,EAAAA,GAAE9G,GACUmD,QAAQ,IAAI6xB,OAAOgha,EAA4B,6BACrEiI,EAAmBj0O,EAAYtwN,QAAUswN,EAAY/iN,KApvBvC,wBAqvBd0ub,GAAqBA,IAAsBsI,GAC3CtI,EAAkB+F,sBAElBuC,GACAA,EAAiBzC,wBAGzB/jb,OAAQ,WAAW,WACXxP,EAAS7O,KAAKqvZ,cAAc,UAAUj2X,KAAKp5B,KAAKqxb,eACpD,OAAO52N,EAAAA,EAAAA,IAAK5rN,GAAQsxP,EAAAA,EAAAA,cAAY,WAC5B,IAAI4vL,EAAoB,EAAKD,qBAO7B,OANA5vL,EAAAA,EAAAA,cAAY,WACR,IAAI4kM,EAAiB/U,EAAkBnhY,SAAW,QAAU,GAC5Dk2Y,EAAiB/U,EAAkBlhY,WAAa,QAAUi2Y,EAC1DA,EAAiB/U,EAAkBnhY,UAAYmhY,EAAkBlhY,WAAa,OAASi2Y,EACvF,EAAKv9D,YAAYlsX,IAAI,cAAeypb,OAEjCrqO,EAAAA,EAAAA,MAAOjqN,eAGtBs/a,mBAAoB,WAChB,IAAIjkE,EAAgB7rX,KAAK6kB,OAAO,iBAC5Bkgb,EAAmB/kc,KAAKm0b,WAAL,SACnB6Q,EAAqBhlc,KAAKm0b,WAAL,WACzB,MAAO,CACHvlY,SAAUm2Y,IAAqBA,EAAiB3R,WAAa,GAAKvnE,GAClEh9T,WAAYm2Y,IAAuBA,EAAmB5R,WAAa,GAAKvnE,KAGhFumE,cAAe,WACXpyb,KAAKm0b,WAAL,YAA+Bn0b,KAAKm0b,WAAL,WAA4B/B,iBAE/D6S,2BAA4B,WACxB,OAAOjlc,KAAK6kB,OAAO,eAAiB7kB,KAAK6kB,OAAO,eAAiB8ya,GAErEU,kBAAmB,SAAS0C,GASxB,GARIA,IACA/6b,KAAKklc,WAAa,CACdC,YAAa,EACb3lY,YAAax/D,KAAKunY,YAAY1nX,IAAI,GAAG2/C,YACrC4lY,iBAAkBplc,KAAKqlc,+BAG/Brlc,KAAKoyb,gBACDpyb,KAAKilc,6BAA8B,CACnC,IAAIj+Z,EAAahnC,KAAKszb,gBAAgB56a,KAAO1Y,KAAKklc,WAAWC,YACzDn+Z,GAAc,IACdA,EAAa,EACbhnC,KAAKklc,WAAWC,YAAcnlc,KAAKszb,gBAAgB56a,MAEnD1Y,KAAKm5b,mBAAmBzgb,OAASsuB,IACjChnC,KAAKklc,WAAWI,cAAe,EAC/Btlc,KAAKy5B,WAAWorB,SAAS,CACrBnsC,KAAMsuB,IAEVhnC,KAAKklc,WAAWI,cAAe,KAI3C3B,iBAAkB,WACd,GAAI3jc,KAAKilc,+BAAiCjlc,KAAKklc,WAAWI,aAAc,CACpE,MAGItlc,KAAKunY,YAAY1nX,IAAI,GAFR2/C,EADjB,EACIA,YACYx4B,EAFhB,EAEIA,WAEAo+Z,EAAmBplc,KAAKqlc,6BACxBrlc,KAAKklc,WAAWE,mBAAqBA,GAAoBplc,KAAKklc,WAAW1lY,cAAgBA,IACzFx/D,KAAKklc,WAAWC,YAAcnlc,KAAKszb,gBAAgB56a,KAAOsuB,GAE9DhnC,KAAKklc,WAAW1lY,YAAcA,EAC9Bx/D,KAAKklc,WAAWE,iBAAmBA,IAG3CC,2BAA4B,WACxB,OAAO/oO,EAAAA,EAAAA,OAAcrO,EAAAA,EAAAA,MAAYrrF,iBAAmB,GAExD6Y,SAAU,SAAS91G,GACf,IAAIo/Z,EAAmB/kc,KAAKm0b,WAAL,SACnB6Q,EAAqBhlc,KAAKm0b,WAAL,WACrB4Q,IACAp/Z,EAAS7sB,IAAMisb,EAAiBnG,eAAej5Z,EAAS7sB,IAAMisb,EAAiBrU,WAAaqU,EAAiBrU,WAE7GsU,IACAr/Z,EAASjtB,KAAOssb,EAAmBpG,eAAej5Z,EAASjtB,KAAOssb,EAAmBtU,WAAasU,EAAmBtU,WAEzH1wb,KAAKutX,oBAAmB,GACxBvtX,KAAKojc,eACLpjc,KAAKqvZ,cAAc,WAAY,CAC3Br+Y,EAAG20B,EAASjtB,KACZiF,EAAGgoB,EAAS7sB,MAEhB9Y,KAAK0jc,aACL1jc,KAAK2jc,oBAEThwX,SAAU,SAASnzE,GACf,SAAIy+R,EAAAA,EAAAA,qBAAoBz+R,MAAMi/S,EAAAA,EAAAA,qBAAoBj/S,OAG9CR,KAAK6kB,OAAO,gBAGZ7kB,KAAK6kB,OAAO,oBAGTo6Q,EAAAA,EAAAA,qBAAoBz+R,GAAKR,KAAKulc,eAAe/kc,GAAKR,KAAKsvS,cAAc9uS,OAEhF+kc,eAAgB,SAAS/kc,GAAG,WACpB62I,EAAWr3I,KAAKm0b,WAAWn0b,KAAKwlc,gBAAgBhlc,IAChDilc,EAAapuT,EAAS6qT,cACtBwD,EAAaruT,EAAS8qT,cACtBwD,GAA+BF,IAAeC,EAC9CE,GAAqBH,IAAeC,EACpCG,EAAgBJ,GAAcjlc,EAAEwc,MAAQ,EACxC8ob,EAAgBJ,GAAcllc,EAAEwc,MAAQ,EACxC+ob,EAAYJ,IAAgCC,GAAqBC,GAAiBC,GAQtF,OAPAC,EAAYA,QAAa,IAAW/lc,KAAKgmc,uBAErC9na,aAAal+B,KAAKgmc,qBAClBhmc,KAAKgmc,oBAAsBnjc,YAAW,WAClC,EAAKmjc,yBAAsB,IA/1Bd,MAk2BdD,GAEXz2J,cAAe,SAAS9uS,GACpB,SAAKR,KAAK6kB,OAAO,sBAAuBnX,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAI6xB,OA72BvC,4BA62B2Et7B,SAG7FN,KAAKi4b,qBAEhB51J,aAAc,SAAS7hS,GACnB,OAAOy+R,EAAAA,EAAAA,qBAAoBz+R,GAAKR,KAAKwlc,gBAAgBhlc,GAAKR,KAAKi4b,qBAEnEkM,WAAY,WACR,OAAOnkc,KAAKwlc,oBAAsB5N,EAAa,OAAS,OAE5D4N,gBAAiB,SAAShlc,GACtB,OAAQR,KAAK6kB,OAAO,cAChB,KAAK+ya,EACD,OAAOA,EACX,KAAKD,EACD,OAAOA,EACX,QACI,OAAOn3b,GAAKA,EAAE2C,SAAWy0b,EAAaD,IAGlDv5a,QAAS,WACLpe,KAAKsjc,eACD/G,IAAsBv8b,OACtBu8b,EAAoB,MAExBv8b,KAAKqvZ,cAAc,WACnBrvZ,KAAK82N,uBACL92N,KAAK4kB,UAAUiT,YAAY+ka,GAC3B58b,KAAKk5b,oBAAsB,KAC3Bh7Z,aAAal+B,KAAKgmc,qBAClB9na,aAAal+B,KAAK8jc,wBAEtBhtO,qBAAsB,WAClBnB,EAAAA,EAAAA,IAAiB31N,KAAK4kB,UAAW,IAAIgX,OAAO6ga,IAC5C9mO,EAAAA,EAAAA,IAAiB31N,KAAKunY,YAAa,IAAI3rW,OAAO+ga,sKCr7BlDsJ,EAAY,cACZC,EAA6B,0BAC7BC,EAAoC,GAAGvqa,OAAOsqa,EAA4B,WAI1EtO,EAAa,aAEbwO,EACU,WADVA,EAES,UAFTA,EAGQ,SAHRA,EAIO,QAEPC,EAAkB,KAClBt8P,EAAY+3G,EAAAA,QAAAA,QAAe,CAC3BrvF,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bl2E,UAAW,KACXxyI,SAAS,EACTwkU,oBAAoB,EACpBgxH,eAAgB+H,EAChB3T,cAAe,EACf1X,YAAa,EACb4d,YAAY,EACZ/F,WAAY,KAGpBpgX,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKsmc,YAAa,GAEtB77M,YAAa,WACTzqP,KAAKumc,eACLvmc,KAAKuxN,YAETuK,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK46b,mBACL56b,KAAKqhB,UACLrhB,KAAKwmc,4BACLxmc,KAAK6kB,OAAO,oBAAqB7kB,KAAK2kc,gBACtC3kc,KAAK6Z,WAAW28M,YArCE,yBAqC+Bx2N,KAAK6kB,OAAO,uBAEjE0hb,aAAc,WACVvmc,KAAKymc,SAAU/4b,EAAAA,EAAAA,GAAE,SAAS+R,SA1CJ,yBA2CtB/R,EAAAA,EAAAA,GAAE,SAAS+R,SA1CmB,gCA0CuBwY,SAASj4B,KAAKymc,SACnEzmc,KAAK6Z,WAAW4F,SAASymb,GAA4Bnmb,OAAO/f,KAAKymc,UAErExE,QAAS,SAASpob,GACd,QAAS7Z,KAAK6Z,WAAWwC,KAAKxC,GAAUvZ,QAE5Cqkc,aAAc,WACV,IAAItG,EAAiBr+b,KAAK6kB,OAAO,kBACjC,OAAQw5a,IAAmB+H,GAA6B/H,IAAmB+H,IAA6Bpmc,KAAK6kB,OAAO,eAExH+1a,iBAAkB,WACd,IAAIv/S,EAAYr7I,KAAK6kB,OAAO,aAC5B7kB,KAAK6Z,WAAW4F,SAAS,gBAAkB47H,GAC3Cr7I,KAAKg+b,WAAa3iT,IAAcu8S,EAAa,QAAU,SACvD53b,KAAK+9b,MAAQ1iT,IAAcu8S,EAAa,OAAS,OAErD4O,0BAA2B,WACvB7wO,EAAAA,EAAAA,GAAgB31N,KAAKymc,SAASr4O,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoBoka,GAAYjmc,KAAKsgc,WAAW71b,KAAKzK,QAEpGsgc,WAAY,WACRtgc,KAAK6Z,WAAW4F,SAAS0mb,GACzBE,EAAkBrmc,MAEtB0mc,YAAa,WACT1mc,KAAK6Z,WAAWge,YAAYsua,GAC5BE,EAAkB,MAEtBhE,YAAa,WACTric,KAAKsmc,YAAa,EACdtmc,KAAK2mc,kBACL3mc,KAAK6kB,OAAO,WAAW,IAG/B09a,YAAa,WACTvic,KAAKsmc,YAAa,EAClBtmc,KAAK6kB,OAAO,WAAW,IAE3BgmO,kBAAmB,WACf7qP,KAAKymc,QAAQprb,IAAI,CACb/J,MAAOtR,KAAK6kB,OAAO,SACnBtT,OAAQvR,KAAK6kB,OAAO,aAG5Bm3X,kBAAmB,SAASnzY,GACpB7I,KAAK6kB,OAAO,oBAAsBuhb,GAClCpmc,KAAKymc,QAAQprb,IAAI,WAErBxS,EAAU7I,KAAK4mc,kBAAkB/9b,GACjC7I,KAAK6kB,SAAShc,QAAUA,EACxB7I,KAAKymc,QAAQjwO,YAAY,sBAAuB3tN,IAEpD+9b,kBAAmB,SAAS/9b,GACxB,GAAI7I,KAAK6mc,+BAAiC7mc,KAAK2mc,iBAC3C,OAAO,EAEX,OAAQ3mc,KAAK6kB,OAAO,mBAChB,KAAKuhb,EACD,MACJ,KAAKA,EACDv9b,EAAUA,KAAa7I,KAAKsmc,WAC5B,MACJ,KAAKF,EACDv9b,GAAU,EACV,MACJ,KAAKu9b,EACDv9b,GAAU,EAElB,OAAOA,GAEX6tJ,OAAQ,SAAS12H,GACb,IAAIhgC,KAAKorP,YAAT,EAGIrwK,EAAAA,EAAAA,IAAc/6C,KACdA,EAAWA,EAAShgC,KAAK+9b,QAAU,GAEvC,IAAI+I,EAAoB,GACxBA,EAAkB9mc,KAAK+9b,OAAS/9b,KAAK+mc,4BAA4B/ma,IACjEic,EAAAA,EAAAA,IAAKj8C,KAAKymc,QAASK,KAEvBC,4BAA6B,SAAS/ma,GAClC,OAAQA,EAAWhgC,KAAKgnc,aAE5B3lb,QAAS,WACL,IAAIoxa,EAAgB9sa,KAAK6H,MAAMxtB,KAAK6kB,OAAO,kBACvCk2Z,EAAcp1Z,KAAK6H,MAAMxtB,KAAK6kB,OAAO,gBACrC48a,EAAoB97a,KAAK6H,MAAMxtB,KAAK6kB,OAAO,sBAC3C68a,EAAkB/7a,KAAK6H,MAAMxtB,KAAK6kB,OAAO,oBACzC2kB,MAAMi4Z,KACNA,EAAoBhP,EACpBiP,EAAkB3mB,GAEtB/6a,KAAK6mc,6BAA+BnF,EAAkBD,EAAoBC,EAAkBD,EAC5Fzhc,KAAKinc,6BAA+BlsB,EAAc0X,EAAgB1X,EAAc0X,EAChF,IAAIyU,EAAYvhb,KAAK6H,MAAM7H,KAAKC,IAAID,KAAK6H,MAAMila,EAAgBzyb,KAAKinc,8BArIvD,KAsIbjnc,KAAKgnc,aAAevU,EAAgByU,IAAclnc,KAAK6kB,OAAO,eAAiBk2Z,EAAc0X,IAC7Fzyb,KAAK6kB,OAAO7kB,KAAKg+b,WAAYkJ,EAAYlnc,KAAK6kB,OAAO,eACrD7kB,KAAK6Z,WAAWwB,IAAI,UAAWrb,KAAK2mc,iBAAmB,GAAK,SAEhEv7M,UAAW,WACP,OAAOprP,KAAK6kB,OAAO,oBAAsBuhb,GAE7CO,eAAgB,WACZ,OAAQ3mc,KAAKorP,aAAeprP,KAAK6mc,6BAA+B,GAEpE9F,wBAAyB,WACrB,OAAO/gc,KAAKinc,8BAEhBE,eAAgB,SAAS3ub,GACrB,OAAOuiE,EAAAA,EAAAA,IAAcviE,GAAQA,EAAKxY,KAAKg+b,aAAe,EAAIxlb,GAE9D+yO,OAAQ,WACJvrP,KAAKuxN,WACDvxN,OAASqmc,IACTA,EAAkB,MAEtB1wO,EAAAA,EAAAA,IAAiB31N,KAAKymc,QAAS,IAAMR,IAEzC/pO,eAAgB,SAAS11M,GACrB,IAAIxmB,KAAKorP,YAGT,OAAQ5kO,EAAKhZ,MACT,IAAK,gBACL,IAAK,cACDxN,KAAK6kB,SAAS2B,EAAKhZ,MAAQxN,KAAKmnc,eAAe3gb,EAAK5kB,OACpD5B,KAAKqhB,UACL,MACJ,IAAK,kBACL,IAAK,oBAOL,IAAK,aACDrhB,KAAKqhB,UACL,MANJ,IAAK,iBACL,IAAK,YACDrhB,KAAK0rP,cACL,MAIJ,QACI1rP,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,aAGtCsW,QAAQ+hP,EAAAA,EAAAA,gBAAe,WACnBpgQ,KAAK4mc,qBAAuB5mc,KAAK6kB,OAAO,WAAW,QAG3Duib,EAAAA,EAAAA,KAAmB,WACfzxO,EAAAA,EAAAA,gBAA6BiE,EAAAA,EAAAA,eAA0BxL,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,GAAkBoka,IAAa,WAC3FI,GACAA,EAAgBK,oBAI5B,+VCtNIjhb,GAASwoM,EAAAA,EAAAA,MAyCTo5O,EAAe,CAAC,aAAc,WAAY,UAAW,eACrDC,EAAuB,YAAcn/N,EAAAA,QAAAA,OAAexpG,SACpD4oU,EAAe35F,EAAAA,EAAAA,QAAuB,CACtCtjB,eAAgB,WACZ,IAAI7+U,EAASzL,KAAKuxN,WAClB,OAAOzoN,EAAAA,EAAAA,GAAO,GAAI2C,EAAQ,CACtB7C,IAAK,SAASpI,GACV,GAAIR,KAAKwnc,wBAAyB,CAC9Bxnc,KAAK0rV,sBAAsBlrV,GAC3B,IAAIg6W,GAAe9sW,EAAAA,EAAAA,GAAE1N,KAAK6+P,MAAMh6O,OAAO,mBACvC21V,EAAal6W,QAAUN,KAAKync,oBAAoBjtF,GAEpD/uW,EAAO7C,IAAIod,MAAMhmB,KAAM+H,YAE3B4xV,MAAO3nI,EAAAA,KACPp6E,KAAMo6E,EAAAA,KACN5+L,IAAK4+L,EAAAA,QAGbw1O,sBAAuB,WACnB,OAAOxnc,KAAK6kB,OAAO,WAAa,cAAgB7kB,KAAK6kB,OAAO,mBAEhE4ib,oBAAqB,SAAS5tb,GAC1B,IAAIjY,EAAQ5B,KAAK6jY,aAAa7jY,KAAK6+P,MAAM+6F,aAAa//U,IACtD7Z,KAAK0nc,UAAU9lc,IAEnB8lc,UAAW,SAAS9lc,GAChB5B,KAAK6kB,OAAO,QAASjjB,IAEzB6wN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,YAAYzoN,EAAAA,EAAAA,GAAOq8X,EAAAA,EAAAA,gCAAqD,CACvFpgX,kBAAc,EACdyR,eAAe,EACfoiD,WAAY,WACZ2gC,cAAe,IACfouV,gBAAiB,EACjBlvX,WAAY,KACZmvX,iBAAkB,qBAClBx6b,aAAc,KACd+0D,WAAYg7P,EAAAA,EAAAA,OAA2B,iCACvC+8B,kBAAkB,EAClBwJ,mBAAoB,KACpBhqB,YAAa1nH,EAAAA,KACb61O,sBAAsB,EACtBxiD,SAAS,EACTG,cAAe,QACfvgY,cAAe,CACXy6C,GAAI,WACJC,GAAI,cACJp0D,OAAQ,CACJi+I,EAAG,EACH3iG,EAAG,GAEPzhC,UAAW,QAEfsgY,cAAc,EACdrzS,oBAAoB,MAG5BuwI,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,OAEdvkH,QAAS,CACL6K,cAAe,CACX1Z,OAAQ,CACJs7C,GAAI,MAIjB,CACCu3L,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLk0V,gBAAiB,qBAI7Bn7I,uBAAwB,WACpBnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BxxN,OAAO,EACPwL,cAAc,EACd2X,cAAc,KAGtBytD,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKsjY,uBACLtjY,KAAK+9U,eACL/9U,KAAK8nc,qBACL9nc,KAAK+nc,sBACL/nc,KAAKgoc,qBACLhoc,KAAKioc,cAETC,mCAAoC,WAChCloc,KAAK6+P,MAAMk+F,8BAAgC/8V,KAAKmoc,wBAAwB19b,KAAKzK,OAEjFioc,WAAY,WACR,IAAIv8b,EAAQ1L,KAAK6kB,SAASnZ,MACtBA,IAAUA,EAAMpL,QAAUN,KAAK65R,cAC/B75R,KAAK6kB,SAASnZ,MAAQ1L,KAAK65R,YAAYnuR,UAG/CqyU,aAAc,WACV/9U,KAAKooc,0BACLpoc,KAAKqoc,8BACLroc,KAAKsoc,wBAETF,wBAAyB,WACrBpoc,KAAKuoc,oBAAsBvoc,KAAKw7N,sBAAsB,iBAAkB,CACpE6b,kBAAmB,CAAC,WAAY,eAGxCgxN,4BAA6B,WACzBroc,KAAKwoc,wBAA0Bxoc,KAAKw7N,sBAAsB,qBAAsB,CAC5E6b,kBAAmB,CAAC,WAAY,eAGxCixN,qBAAsB,WAClBtoc,KAAKyoc,iBAAmBzoc,KAAKw7N,sBAAsB,gBAEvDE,eAAgB,WACZ17N,KAAKuxN,WACLvxN,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAM,IAAIy4P,EAAAA,EAAqB,WAGvC8uI,YAAa,WACT,OAAOznY,KAAKuxN,YAAcvxN,KAAK6kB,OAAO,kBAE1C6jb,mBAAoB,SAASloc,GACrBR,KAAK6+P,OAAS7+P,KAAK6+P,MAAMnZ,cAAc,sBACvC1lP,KAAK4pY,eAGb++D,cAAe,SAAS/mc,EAAOia,EAAOuX,GAClC,OAAIxxB,EAAQwxB,EACDvX,EAEPja,EAAQia,EACDuX,EAEJxxB,GAEXqvR,OAAQ,WACJ,IAAIvlR,EAAQ1L,KAAKorW,gBAAgBprW,KAAK6+P,OAAS7+P,KAAK65R,YAAYnuR,SAEhE,OADqB,IAAIk9b,EAAAA,QAAUl9b,GAAO9F,OAAO,WAAY,MAAM,GAAMk0N,WAG7E+uO,cAAe,SAASxqZ,GACpB,IAAI3yC,EAAQ1L,KAAKixR,SAEjB,OAAOvlR,EADS1L,KAAK2oc,cAAc3oc,KAAK8oc,oBAAsBzqZ,EAAM,EAAG3yC,EAAMpL,OAAS,KAG1Fwoc,kBAAmB,WACf,IAAIp9b,EAAQ1L,KAAKixR,SACb7jR,EAAepN,KAAK6kB,OAAO,gBAC3BhW,GAAU,EAOd,OANA4L,EAAAA,EAAAA,IAAK/O,EAAO,SAAS7K,EAAOX,GACxB,GAAIF,KAAK4jY,eAAe1jY,EAAMkN,GAE1B,OADAyB,EAAShO,GACF,GAEb4J,KAAKzK,OACA6O,GAEXu4X,aAAc,WACVpnY,KAAKuxN,WACLvxN,KAAK+oc,iCACL/oc,KAAK8uW,OAAO35I,WAAW11M,SAASzf,KAAKgpc,sBACrC,IAAIj/E,EAAgB/pX,KAAK8uW,OAAOn1U,WAChCg8L,EAAAA,EAAAA,IAAiBo0J,EAAe,WAChCp0J,EAAAA,EAAAA,GAAgBo0J,EAAe,UAAW/pX,KAAK0oc,mBAAmBj+b,KAAKzK,QAE3E+oc,+BAAgC,WAC5B,IAAIE,EAAkBjpc,KAAK6kB,OAAO,6BAC9B0iB,EAAa0ha,IAAmBv7b,EAAAA,EAAAA,GAAEu7b,GACtC,GAAI1ha,GAAcA,EAAWjnC,UAAW26E,EAAAA,EAAAA,IAAS1zC,EAAW1nB,IAAI,IAAK,CACjE,IAAIqpb,EAAwB,GAAGzjc,MAAMhF,KAAK8mC,EAAWziB,WACrDokb,EAAsBhsS,QAAQ31H,EAAW1nB,IAAI,KAC7CpF,EAAAA,EAAAA,IAAKyub,EAAuB,SAASn9b,EAAGN,GACpC,OAAIA,KAAWiC,EAAAA,EAAAA,GAAE,QAAQmS,IAAI,KAElB,WAAa4F,EAAO88G,iBAAiB92H,GAAQ64a,WACpDtkb,KAAKmpc,2BAA4Bz7b,EAAAA,EAAAA,GAAEjC,IAC5B,QAFJ,IAIThB,KAAKzK,SAGfgpc,mBAAoB,WAChB,MApM+B,iCAsMnC/rE,kBAAmB,WACf,IAAIr7X,EAAQ5B,KAAKyjY,mBAEjB,OADAzjY,KAAKwjY,sBACExjY,KAAKopc,gBAAgBxnc,EAAO5B,KAAKqpc,iBAAiB5+b,KAAKzK,OAAOo+D,OAAOp+D,KAAKuxN,SAAS9mN,KAAKzK,KAAM4B,KAEzGwnc,gBAAiB,SAASxnc,EAAO4sD,GAC7B,OAAOxuD,KAAK2jY,UAAU/hY,GAAOw8D,OAAO5P,IAExC86Y,kBAAmB,SAAS1nc,EAAO+9C,GAC/B,IAAI6lT,EACAp4V,EAiBJ,OAhBIuyC,GAAS,kBAAoB/9C,IACxB+9C,EAAM4pZ,cACP5pZ,EAAM4pZ,YAAc,IACpB/jG,EAAaxlW,KAAKorW,kBACPnrW,SAAS,SAASC,GACzBy/C,EAAM4pZ,YAAYvpc,KAAK6jY,aAAa3jY,IAASA,IAC7CF,OAERoN,EAAeuyC,EAAM4pZ,YAAY3nc,IAEhCwL,IACDo4V,EAAaxlW,KAAKorW,iBAClBh+V,GAAe2+O,EAAAA,EAAAA,MAAKy5G,EAAY,SAAStlW,GACrC,OAAOF,KAAK4jY,eAAe5jY,KAAK6jY,aAAa3jY,GAAO0B,IACtD6I,KAAKzK,OAAO,IAEXoN,GAEXu2X,UAAW,SAAS/hY,EAAO+9C,GACvB,IAAIvyC,EAAepN,KAAKspc,kBAAkB1nc,EAAO+9C,GACjD,YAAO,IAAWvyC,GAAgB,IAAIolN,EAAAA,IAAUpiN,QAAQhD,GAAcoD,UAAYxQ,KAAK8jY,WAAWliY,IAEtGwpW,eAAgB,SAAS1/V,GACrB,IAAI85V,EAAa,GACjB95V,EAAQA,GAAS1L,KAAK6kB,OAAO,UAAY7kB,KAAK65R,YAAYnuR,SAAW,GACrE,IAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAC1BL,EAAMK,IAAML,EAAMK,GAAGL,MACrB85V,EAAaA,EAAW5pU,OAAOlwB,EAAMK,GAAGL,OAExC85V,EAAW5kW,KAAK8K,EAAMK,IAG9B,OAAOy5V,GAEX2iG,wBA/OsC,WAgPlC,IAAIqB,EACAxzE,EAASh2X,KAAK6kB,OAAO,UACrB4kb,EAAoB,QAAUD,EAAcxpc,KAAK6+P,aAAU,IAAW2qM,OAAc,EAASA,EAAYxsG,mBACzG0sG,GAAiBh8b,EAAAA,EAAAA,GAAE,IAAIkuB,OAAO6ta,IAAoBnpc,OAAS,EAC3Dqpc,EAAmB3zE,GAAU0zE,GAAkBD,EACnDzpc,KAAK4gV,QAAQ,CACT+oH,iBAAkBA,GAAoB,QAG9CN,iBAAkB,SAASnpc,GACvB,IAAI6kB,EAAe/kB,KAAKi8F,cAAc/7F,GACtCF,KAAK6kB,OAAO,gBAAgB26O,EAAAA,EAAAA,eAAct/P,EAAM,OAChDF,KAAK6kB,OAAO,eAAgBE,IAEhCk3E,cAAe,SAAS/7F,GACpB,OAAOF,KAAK26V,eAAez6V,IAE/B0pc,iBAAkB,WACd,IAAIjqZ,EAAQ,GACZ3/C,KAAK6pc,oBAAoBpvb,KAAK,SAASC,EAAGowD,GACtC,IAAIsvJ,GAAe1sN,EAAAA,EAAAA,GAAEo9D,GACjBg/X,EAAY9pc,KAAK6jY,aAAazpK,EAAavsN,KA1QlC,mBA2QQ7N,KAAK+pc,iBAAiBD,EAAWnqZ,GAElD3/C,KAAK6+P,MAAM69F,WAAWtiI,GAEtBp6N,KAAK6+P,MAAMsoG,aAAa/sI,IAE9B3vN,KAAKzK,QAEXo7X,mBAAoB,WAChBp7X,KAAKuxN,WACLvxN,KAAKgqc,mBAETA,gBAAiB,WACRhqc,KAAK6kB,OAAO,sBAAyB7kB,KAAK6+P,OAG/C7+P,KAAK6+P,MAAMh6O,OAAO,iBAAkB,OAExCklb,iBAAkB,SAASnoc,GACvB,OAAO5B,KAAK4jY,eAAehiY,EAAO5B,KAAK6kB,OAAO,WAElDkjb,oBAAqB,WACjB,IAAInvX,EAAa54E,KAAK6kB,OAAO,cACzBolb,EAAuBrxX,EAAW31C,cACtC,IAAKoka,EAAavrU,SAASmuU,GACvB,MAAMhoO,EAAAA,EAAAA,MAAa,QAASrpJ,IAGpCovX,mBAAoB,WAChBhoc,KAAK6kB,OAAO,eAAgB,OAEhCqlb,2BAA4B,WACxBlqc,KAAK+6R,sBACL/6R,KAAKmqc,eAAe,kBAAmBnqc,KAAKk7R,iBAC5Cl7R,KAAK8nc,qBACL9nc,KAAKi9X,oBAAoBn8V,KAAK,WACtB9gC,KAAKoqc,yBAGTpqc,KAAKgoc,sBACPv9b,KAAKzK,QAEXoqc,sBAAuB,WACnB,OAAOpqc,KAAK6kB,OAAO,uBAEvB0W,MAAO,WACHv7B,KAAKuxN,WACLvxN,KAAKqqc,eACLrqc,KAAKgoc,sBAET6B,kBAAmB,WACf,OAAO7pc,KAAKsqc,OAAStqc,KAAKsqc,OAAOjub,KA/ThB,kBA+T2C3O,EAAAA,EAAAA,MAEhE+gW,aAAc,WACV,OAAO3lW,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BwhM,+BAA+B,EAC/BmzB,mBAAmB,EACnBxga,UAAW1lB,KAAKqlB,cAAc5a,KAAKzK,SAG3Ck7X,oBAAqB,WACjBl7X,KAAKuxN,WACLvxN,KAAKuqc,eAETt7G,sBAtUsC,WAuUlC,IAAIu7G,EAAmBxqc,KAAKyqc,oBAC5B,OAAOzqc,KAAKuxN,WAAW31L,OAAO,EAAE4ua,GAAoBxqc,KAAK6+P,SAE7D0rM,YAAa,WACTvqc,KAAK0qc,QAAU,OAAS,IAAIv5M,EAAAA,GAAM5sO,OAClC,IAAIm1X,GAAQhsY,EAAAA,EAAAA,GAAE,SAASkS,KAAK,KAAM5f,KAAK0qc,SAASzya,SAASj4B,KAAK8uW,OAAOn1U,YACrE35B,KAAKsqc,OAAS5wD,EACd15Y,KAAK6+P,MAAQ7+P,KAAKonP,iBAAiBsyJ,EAAOtjB,EAAAA,EAAMp2X,KAAK2qc,eACrD3qc,KAAK4qc,eACL5qc,KAAK6qc,gCACL7qc,KAAKkoc,sCAET2C,8BAA+B,WAC3B,IAAI5ga,GAAYmkL,EAAAA,EAAAA,cAAa,YAAa,kBAC1CuH,EAAAA,EAAAA,IAAiB31N,KAAKsqc,OAAQrga,GAC9B0rL,EAAAA,EAAAA,GAAgB31N,KAAKsqc,OAAQrga,GAAW,SAAAzpC,GAAC,OAAIA,EAAE6G,qBAEnD4iY,iBAxVsC,WAyVlC,OAAOjqY,KAAK6+P,OAAS7+P,KAAK0qc,SAE9B9tE,mBAAoB,WAChB58X,KAAKuxN,WACLvxN,KAAK6+P,OAAS7+P,KAAKmoc,0BACnBnoc,KAAK4gV,QAAQ,OAAQ5gV,KAAK8uW,QAAU9uW,KAAKkqY,kBAE7C5C,gBAAiB,WACbtnY,KAAK4gV,QAAQ,CACT4mD,SAAU,UACVjjU,aAAc,UAGtBqmY,aAAc,WACN5qc,KAAK6+P,OAAS7+P,KAAK8qc,4BACnB9qc,KAAK8nc,sBAGbgD,yBAA0B,WAEtB,QAD2B9qc,KAAK6+P,MAAMh6O,OAAO,gBACf7kB,KAAK+qc,6BAEvC3nF,iBAAkB,WACd,MAAO,YAAcj7I,EAAAA,QAAAA,OAAeC,YAExCuiO,YAAa,WACT,IAAIvwb,EAAU,CACVkiM,cAAe,SACf3lI,WAAY32E,KAAK6kB,OAAO,cACxBmmb,iBAAkBhrc,KAAK6kB,OAAO,oBAC9Bs9C,WAAYniE,KAAK6kB,OAAO,cACxBq1U,iBAAkBl6V,KAAK6kB,OAAO,oBAC9BwgY,QAASrlZ,KAAK6kB,OAAO,WACrB6gY,aAAc1lZ,KAAK6kB,OAAO,gBAC1BwtF,mBAAoBryG,KAAK6kB,OAAO,sBAChCgM,eAAgB7wB,KAAKirc,yBAAyBxgc,KAAKzK,MACnDusB,aAAcvsB,KAAK6kB,OAAO,gBAC1B4gY,iBAAiB,EACjBnuI,QAASt3Q,KAAKswY,wBACd/kX,YAAavrB,KAAKuvY,qBAClBiW,cAAexlZ,KAAK6kB,OAAO,iBAC3B60T,YAAa15U,KAAKkrc,qBAAqBzgc,KAAKzK,MAC5CqrB,WAAYrrB,KAAKmrc,iBACjBjwK,gBAAiBl7R,KAAKk7R,gBACtBqyC,oBAAmBvtU,KAAKojX,oBAAqBpjX,KAAK6kB,OAAO,qBACzDyoT,oBAAmBttU,KAAKojX,oBAAqBpjX,KAAK6kB,OAAO,sBAK7D,OAHK7kB,KAAKyqc,sBACNrwb,EAAQ0kI,SAAW,MAEhB1kI,GAEXqwb,kBAAmB,kBAAM,GACzBU,eAAgB,WACZ,OAAOnrc,KAAK+qc,4BAA8B/qc,KAAK65R,YAAc,MAEjEuhE,mBAAoB,WAChB,MAAO,CACH30S,UAAU,IAGlBkgW,kBAAmB,WACf,OAAO3mZ,KAAK6kB,OAAO,YAEvBiiY,2BAA4B,WACxB,MAAO,OAEXmkD,yBAA0B,WACtBjrc,KAAK6+P,MAAQ7+P,KAAK6+P,OAAS7+P,KAAKsqc,OAAOc,OAAO,YACzCprc,KAAK6kB,OAAO,mBACb7kB,KAAK4pc,mBAET5pc,KAAKu5X,oBACLv5X,KAAKqrc,wBACLrrc,KAAKuoc,uBAET4B,eAAgB,SAASnkN,EAAYpkP,GACjC5B,KAAKisY,iBAAiB,QAASlkY,YAEnCmjc,qBAAsB,SAAS1qc,GAC3BR,KAAKs2X,sBAAsB91X,GAC3BR,KAAKyoc,iBAAiBjoc,IAE1B81X,sBAAuBtkK,EAAAA,KACvB81O,mBAAoB,WACX9nc,KAAK6+P,QAGV7+P,KAAKmqc,eAAe,aAAcnqc,KAAKmrc,kBAClCnrc,KAAK+qc,6BACN/qc,KAAKmqc,eAAe,QAAS,MAGrCY,0BAA2B,WACvB,OAAO/qc,KAAK6kB,OAAO,yBAA2B7kB,KAAKsrc,8BAEvDA,2BAA4B,WACxB,OAAOtrc,KAAKywR,eAAehiR,WAAWnO,QAAUN,KAAK6kB,OAAO,oBAEhE0mb,iBAAkB,WACd,OAAOvrc,KAAKwrc,sBAA+Bxrc,KAAK+qc,6BAEpDS,mBAAoB,WAChB,IAAIC,EAA4Bzrc,KAAKsrc,6BACrC,OAAOtrc,KAAKk7R,gBAAgBhJ,YAAclyR,KAAK6kB,OAAO,yBAA2B7kB,KAAK6kB,OAAO,qBAAuB4mb,IAA8Bzrc,KAAK0rc,gCAE3Jj7K,aAAc,WACV,OAAOzwR,KAAK63F,SAAS9zE,OAAS,IAElC4nb,gBAAiB,WACb,OAAOv9O,EAAAA,EAAAA,cA1cI,QA0cuBpuN,KAAK+0N,KAAO,WAElD62O,0BAA2B,WACvB,OAAOx9O,EAAAA,EAAAA,cAAa,mBAAoBpuN,KAAK+0N,KAAO,qBAExD82O,wBAAyB,WACrB,OAAOz9O,EAAAA,EAAAA,cAAa,iBAAkBpuN,KAAK+0N,KAAO,mBAEtD+2O,wBAAyB,WACrB,OAAO19O,EAAAA,EAAAA,cAAa,QAASpuN,KAAK+0N,KAAO,gBAE7CyrH,cAAe,WAAW,WACtBxgV,KAAKuxN,WACLoE,EAAAA,EAAAA,GAAgB31N,KAAK63F,SAAU73F,KAAK8rc,2BAA2B,WAC3D,EAAK9B,qBAELhqc,KAAK+rc,6BACLp2O,EAAAA,EAAAA,GAAgB31N,KAAK63F,SAAU73F,KAAK2rc,mBAAmB,SAAAnrc,GACnD,EAAKwrc,eAAexrc,MAEpB8mc,IACA3xO,EAAAA,EAAAA,GAAgB31N,KAAK63F,SAAU73F,KAAK4rc,6BAA6B,WAC7D,EAAKK,8BAA6B,MAEtCt2O,EAAAA,EAAAA,GAAgB31N,KAAK63F,SAAU73F,KAAK6rc,2BAA2B,SAAArrc,GAC3D,EAAKyrc,kCAA6B,GAClC,EAAKD,eAAexrc,EAAG,EAAKiwR,sBAK5Cs7K,yBAA0B,WACtB,OAAO/rc,KAAK6kB,OAAO,kBAEvBmkX,eAAgB,WACZrzK,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU73F,KAAK2rc,mBACrCh2O,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU73F,KAAK8rc,2BACjCxE,IACA3xO,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU73F,KAAK4rc,6BACrCj2O,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU73F,KAAK6rc,4BAEzC7rc,KAAKuxN,YAET06O,6BAA8B,SAASrqc,GACnC,IAAImG,UAAUzH,OAGV,OAAON,KAAKksc,mBAFZlsc,KAAKksc,mBAAqBtqc,GAKlCoqc,eAAgB,SAASxrc,EAAGw1H,GAAa,WACrC,IAAIh2H,KAAKisc,+BAGT,GAAKjsc,KAAKsrc,6BAAV,CAIA,IAAI/xV,EAAgBv5G,KAAK6kB,OAAO,iBAC5B00F,GACAv5G,KAAKmsc,oBACLnsc,KAAKosc,aAAevpc,YAAW,WAC3B,EAAKwpc,kBAAkBr2U,KACxBzc,IAEHv5G,KAAKqsc,kBAAkBr2U,QAVvBh2H,KAAKssc,mBAabA,gBAAiB,WACbtsc,KAAKmsc,oBACDnsc,KAAKurc,oBACLvrc,KAAKusc,kBAAkB,MAE3Bvsc,KAAK4qc,gBAETyB,kBAAmB,WACf,IAAIr2U,EAAcjuH,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKywR,eACxFzwR,KAAKusc,kBAAkBv2U,IAE3Bu2U,kBAAmB,SAASv2U,GACxBh2H,KAAKmsc,oBACL,IAAIlxK,EAAiBj7R,KAAKk7R,gBAC1BD,EAAexiN,WAAWz4E,KAAK6kB,OAAO,eAAiB7kB,KAAKuvY,sBAC5Dt0G,EAAetK,gBAAgB3wR,KAAK6kB,OAAO,eAC3Co2Q,EAAejlK,YAAYA,GAC3BilK,EAAeruR,OAAOwsB,KAAKp5B,KAAKwsc,oBAAoB/hc,KAAKzK,KAAMg2H,KAEnEq0U,aAAc,WACV,IAAIpvK,EAAiBj7R,KAAKk7R,gBAC1BD,EAAejlK,eAAiBilK,EAAejlK,YAAY,OAE/Dw2U,oBAAqB,WACjBxsc,KAAK0rc,+BAAiC1rc,KAAKsrc,6BAC3Ctrc,KAAK4qc,eACL5qc,KAAKysc,2BAETC,iBAAkB,WACd,OAAO1sc,KAAK2sc,mBAEhBF,wBAAyB,WACrB,IAAIzsc,KAAK6kB,OAAO,aAAgB7kB,KAAKywR,eAArC,CAGA,IAAIm8K,EAAkB5sc,KAAK0sc,mBACvBE,IAAoB5sc,KAAK6sc,eAG7B7sc,KAAK6kB,OAAO,SAAU+nb,GAClBA,IACA5sc,KAAKu5X,oBACLv5X,KAAKqrc,4BAGbltG,0BAA2B,SAAS7gG,GAC5B,IAAMt9P,KAAKk7R,gBAAgB7K,YAC3BrwR,KAAK6kB,SAASnZ,MAAQ4xP,EAEtBt9P,KAAK6kB,SAASnZ,MAAQ1L,KAAK6kB,SAASnZ,MAAMkwB,OAAO0hO,IAGzDqvM,gBAAiB,WACb,IAEIG,GAFiB9sc,KAAKk7R,gBACOxvR,SAAW,IACbpL,OAE/B,SADgCN,KAAK+qc,8BACE+B,IAE3CX,kBAAmB,WACfjua,aAAal+B,KAAKosc,qBACXpsc,KAAKosc,cAEhBjxE,qBAAsB,WAClBn7X,KAAKu5X,oBACLv5X,KAAKqrc,yBAETthN,kBAAmB,WACf/pP,KAAKuxN,WACLvxN,KAAKqrc,yBAET0B,kBAAmB,WACf,IAAI9xK,EAAiBj7R,KAAKk7R,gBACtB8xK,EAAmB/xK,EAAe5K,YAClC48K,GAActkZ,EAAAA,EAAAA,IAAU3oD,KAAKowR,aAAe48K,GAAoBhtc,KAAKowR,YAAc6K,EAAetJ,eAAiB3xR,KAAK6+P,MAAM+pJ,oBAElI,OADA5oZ,KAAKowR,WAAa48K,EACXC,GAEX5B,sBAAuB,WACdrrc,KAAK8uW,SAGN9uW,KAAK+sc,qBACL/sc,KAAK8uW,OAAOxpV,UAEhBtlB,KAAK6+P,OAAS7+P,KAAK6+P,MAAM64H,qBAE7BryW,cAAe,WACX,IAAIxL,EAAW7Z,KAAK6Z,WAChBqzb,EAA2Bltc,KAAKmpc,0BAChC7hZ,EAAYztC,EAAStO,SAASuN,KAAOo0b,EAA2BA,EAAyB3hc,SAASuN,IAAM,GACxG0M,GAAegzM,EAAAA,EAAAA,IAAe/yM,GAC9B4+X,EAAkB6oD,EAA2Bvnb,KAAKG,KAAI0yM,EAAAA,EAAAA,IAAe00O,GAA2B1nb,GAAgBA,EAChHE,EAAYC,KAAKC,IAAI0hC,EAAW+8V,EAAkB/8V,GAAYkxK,EAAAA,EAAAA,IAAe3+M,IACjF,OAAO8L,KAAKG,IAAI,GAAKu+X,EAAiB3+X,IAE1C6lO,OAAQ,WACAvrP,KAAK6+P,cACE7+P,KAAK6+P,aAET7+P,KAAK0rc,+BACZ1rc,KAAKuxN,YAET8K,SAAU,WACNr8N,KAAKmsc,oBACLnsc,KAAKuxN,YAET0zK,2BAA4B,WACxBjlY,KAAKmqc,eAAenkb,MAAMhmB,KAAM+H,YAEpCsqV,gBAAiB,WACb,IAAIzwV,EAAQ5B,KAAK6kB,OAAO,SACpB62W,EAAc17X,KAAKujY,uBAAuB3hY,GAAS5B,KAAK26V,eAAe/4V,GAASA,EACpF5B,KAAKsyV,oBAAoBvuU,IAAI23W,IAEjC6H,uBAAwB,SAAS3hY,GAC7B,MAAO,SAAW5B,KAAK6kB,OAAO,eAAgBslM,EAAAA,EAAAA,IAASvoN,IAE3Ds6N,eAAgB,SAAS11M,GAErB,OADAxmB,KAAKklY,6BAA6B1+W,GAC1BA,EAAKhZ,MACT,IAAK,oBACL,IAAK,oBACDxN,KAAKojX,oBAAsBpjX,KAAKmqc,eAAe3jb,EAAKhZ,KAAMgZ,EAAK5kB,OAC/D5B,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,QACIxmB,KAAK6kB,OAAO,eACb7kB,KAAKkqc,6BAET,MACJ,IAAK,aACDlqc,KAAKkqc,6BACL,MACJ,IAAK,YACDlqc,KAAKsgV,eACLtgV,KAAKmqc,eAAe,UAAWnqc,KAAKswY,yBACpC,MACJ,IAAK,cACDtwY,KAAKsgV,eACLtgV,KAAKmqc,eAAe,cAAenqc,KAAKuvY,sBACxC,MACJ,IAAK,aACDvvY,KAAK+nc,sBACL,MACJ,IAAK,kBACD/nc,KAAK4qc,eACL,MACJ,IAAK,gBACL,IAAK,uBACL,IAAK,aACD5qc,KAAK0rP,cACL,MACJ,IAAK,iBACD1rP,KAAKooc,0BACL,MACJ,IAAK,qBACDpoc,KAAKqoc,8BACL,MACJ,IAAK,cACDroc,KAAKsoc,uBACL,MACJ,IAAK,UACL,IAAK,gBACL,IAAK,eACL,IAAK,aACL,IAAK,mBACL,IAAK,qBACDtoc,KAAKmqc,eAAe3jb,EAAKhZ,MACzB,MACJ,IAAK,eACDxN,KAAK6kB,OAAO,OAAQ2B,EAAK5kB,OACzB,MACJ,IAAK,eACL,IAAK,gBACD,MACJ,IAAK,eACG4kB,EAAKgyF,gBAAkBhyF,EAAK5kB,OAC5B5B,KAAKwoc,wBAAwB,CACzBp7b,aAAcoZ,EAAK5kB,QAG3B,MACJ,QACI5B,KAAKuxN,SAAS/qM,OAG3B46G,QAAQ+jQ,EAAAA,EAAqBsmB,EAAAA,IAChCnrY,EAAAA,EAAAA,SAAkB,iBAAkBinb,GACpC,QCvtBI4F,YAAgC,8BAChCl5E,EAAYszE,EAAAA,QAAqB,CACjCj9G,eAAgB,WACZ,IAAI10J,EAAO51L,KACPyL,EAASzL,KAAKuxN,WACd67O,EAAiB,SAAS5sc,GACTR,KAAKynY,cAMXznY,KAAKqtc,sBACZrtc,KAAKstc,mBAAoB,GALrBttc,KAAK6kB,OAAO,qBACZrkB,EAAE6G,iBACFrH,KAAKu7B,SAKbv7B,KAAKutc,sBAAwB/sc,EAC7BR,KAAKwtc,sBAAuB,GAE5BC,EAAiB,WACb73Q,EAAK/wK,OAAO,kBAAoB+wK,EAAKy3Q,qBACrCz3Q,EAAKo2Q,kBAGb,OAAOljc,EAAAA,EAAAA,GAAO,GAAI2C,EAAQ,CACtB7C,IAAK,WACG5I,KAAK6kB,OAAO,WAAa,cAAgB7kB,KAAK6kB,OAAO,mBACrD7kB,KAAK+pY,qBAAoB,GAE7Bt+X,EAAO7C,KAAO6C,EAAO7C,IAAIod,MAAMhmB,KAAM+H,WACrC/H,KAAK0tc,uBAET9iH,QAAS,SAASpqV,GACd,GAAIiL,EAAOm/U,QAAQ5kU,MAAMhmB,KAAM+H,WAI3B,OAHK/H,KAAK6kB,OAAO,WACb7kB,KAAK2tc,cAAcntc,IAEhB,GAGfuqV,UAAW,SAASvqV,GAChB,GAAIiL,EAAOs/U,UAAU/kU,MAAMhmB,KAAM+H,WAI7B,OAHK/H,KAAK6kB,OAAO,WACb7kB,KAAK2tc,cAAcntc,IAEhB,GAGfmqV,UAAW,WACP8iH,IACAhic,EAAOk/U,WAAal/U,EAAOk/U,UAAU3kU,MAAMhmB,KAAM+H,YAErDwiV,WAAY,WACRkjH,IACAhic,EAAO8+U,YAAc9+U,EAAO8+U,WAAWvkU,MAAMhmB,KAAM+H,YAEvD6vI,KAAM,WACF61T,IACAhic,EAAOmsI,MAAQnsI,EAAOmsI,KAAK5xH,MAAMhmB,KAAM+H,YAE3CqrB,IAAK,WACDq6a,IACAhic,EAAO2nB,KAAO3nB,EAAO2nB,IAAIpN,MAAMhmB,KAAM+H,YAEzC+jI,OAAQ,WACJ,IAAIj9H,EAASpD,EAAOqgI,QAAUrgI,EAAOqgI,OAAO9lH,MAAMhmB,KAAM+H,WAExD,OADA/H,KAAK4tc,iBACE,OAAS/+b,QAAU,IAAWA,GAASA,GAElDg9H,MAAO,SAASrrI,GACZ,IAAIqtc,EAAW7tc,KAAK6kB,OAAO,UACvBipb,EAAY9tc,KAAK63F,SAAS9zE,MAAM6c,OAChCmta,EAAeD,GAAa9tc,KAAK6+P,QAAU7+P,KAAK6+P,MAAMh6O,OAAO,kBACjE,IAAKipb,IAAanlZ,EAAAA,EAAAA,IAAU3oD,KAAK6kB,OAAO,WAAa7kB,KAAK6kB,OAAO,iBAC7D7kB,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,CACRzX,aAAc,KACdxL,MAAO,OAEX5B,KAAKknE,YACF,CACH,GAAIlnE,KAAK6kB,OAAO,qBAQZ,OAPArkB,EAAE6G,iBACE0mc,IACIF,GACA7tc,KAAK6pY,mBAET7pY,KAAK2wW,yBAAyBnwW,IAE3Bqtc,EAEX,GAAIpic,EAAOogI,OAASpgI,EAAOogI,MAAM7lH,MAAMhmB,KAAM+H,WACzC,OAAO8lc,IAInBl0G,MAAO,SAASn5V,GACZ,IAAIqtc,EAAW7tc,KAAK6kB,OAAO,UACvBmpb,EAAkBhuc,KAAK6kB,OAAO,iBAC9ButF,EAAoBpyG,KAAK6kB,OAAO,qBACpC,GAAKgpb,IAAYG,IAAmB57V,EAKpC,OAFA5xG,EAAE6G,iBACFrH,KAAK2wW,yBAAyBnwW,IACvB,GAEXm9S,UAAWyvJ,EACXrhU,IAAKqhU,KAGb36O,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B34L,YAAaukS,EAAAA,EAAAA,OAA2B,UACxCkxC,cAAe,KACf4/F,sBAAuB,SACvBrG,iBAAkB,SAClBx1V,mBAAmB,EACnB3kF,qBAAsB,SAASjtB,IACtBmoD,EAAAA,EAAAA,IAAUnoD,EAAEmxD,cACbnxD,EAAEmxD,WAAanxD,EAAEmC,OAGzButZ,uBAAuB,EACvBg+C,eAAe,EACfC,gBAAgB,EAChB18E,kBAAkB,EAClB8U,oBAAoB,EACpB6nE,oBAAoB,EACpBz1E,wBAAwB,KAGhCnmT,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKquc,iCAET5jN,YAAa,WACTzqP,KAAK6Z,WAAW4F,SA3IF,gBA4Idzf,KAAKsuc,iBACLtuc,KAAKuxN,WACLvxN,KAAKunY,YAAY9nX,SA5IO,2BA8I5B2nX,aAAc,WACVpnY,KAAKuxN,WACLvxN,KAAK8uW,OAAOj1V,WAAW4F,SAjJH,sBAkJpBzf,KAAK8uW,OAAOE,kBAAkBpvV,KAAK,YAAa,IAEpDopb,mBAAoB,WAChB,OAAOhpc,KAAKuxN,WAAa,IAAM47O,GAEnC7qN,sBApJiC,WAqJ7BtiP,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKuiP,mBAAoB,CAC5BqlN,iBAAkB,CACdpjN,MAAO,OACPjjM,MAAO,4BAInBqsZ,eAAgB,YACP5tc,KAAK6kB,OAAO,kBAAoB7kB,KAAK6+P,QACtC7+P,KAAKuuc,kBAAkB,MACvBvuc,KAAKy0X,aAAaz0X,KAAK6kB,OAAO,mBAGtC+3W,mBAAoB,WAChB58X,KAAKuxN,WACDvxN,KAAK6kB,OAAO,YACZ7kB,KAAK02X,wBACL12X,KAAKwuc,0BAGbA,sBAAuB,WACnB,IAAIC,EAEJ,GADkBzuc,KAAKywR,eACvB,CAIA,MAGIzwR,KAAK6kB,SAFEnZ,EADX,EACIA,MACc0B,EAFlB,EAEIA,aAEAshc,EAAa1uc,KAAK6+P,MAAMi7E,gBACxBj5U,EAAQ,QAAU4tc,EAAiB,OAAS/ic,QAAS,IAAWA,OAAQ,EAASA,EAAMvF,QAAQiH,UAAkB,IAAWqhc,EAAiBA,GAAkB,EAC/Jn0G,GAAkB,IAAMz5V,GAAUb,KAAK2uc,wBAAiD,KAAvBD,EAAW9mZ,GAAG/mD,GACnFb,KAAKuuc,kBAAkBj0G,QAVnBt6V,KAAKuuc,kBAAkB,OAY/BK,sBAAuB,WACnB,GAAK5uc,KAAK6+P,MAIV,GADkB7+P,KAAKywR,iBACHzwR,KAAK6kB,OAAO,qBAAhC,CAIA,IACIy1U,EADat6V,KAAK6+P,MAAMi7E,gBACI1jF,IAzMV,sBAyMuCxuM,GAAG,GAChE5nD,KAAKuuc,kBAAkBj0G,QALnBt6V,KAAKuuc,kBAAkB,OAO/BA,kBAAmB,SAASzuc,GACxBE,KAAK6uc,0BAA2B,EAChC7uc,KAAK6+P,MAAMh6O,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBt2N,WAC9CE,KAAK6uc,0BAEhBn4E,sBAAuB,WACnB12X,KAAK6+P,OAAS7+P,KAAK6+P,MAAMg4H,aAAa72X,KAAK6+P,MAAMh6O,OAAO,kBAE5Domb,yBAA0B,WACtBjrc,KAAKuxN,WACYvxN,KAAKk7R,gBAAgBz0O,YACpBzmD,KAAK+sc,qBAGvB/sc,KAAK02X,yBAETp2C,aAAc,WAGV,OAFAtgV,KAAKi9X,oBACLj9X,KAAKqyV,mBACG,IAAI7/H,EAAAA,IAAUpiN,WAE1B6sX,kBAAmB,WACf,OAAOj9X,KAAKuxN,WAAWnzJ,OAAO,WAC1Bp+D,KAAK8uc,0BACPrkc,KAAKzK,QAEX8uc,uBAAwB,WACpB9uc,KAAKsuc,iBACLtuc,KAAK+uc,wBAAwB3wY,OAAO,WAChCp+D,KAAK4pc,oBACPn/b,KAAKzK,QAEX+uc,sBAAuB,WAEnB,OADA/uc,KAAK4yX,gBACG,IAAIpgK,EAAAA,IAAUpiN,WAE1B4+b,aAAc,SAAS3wZ,GACnB,IAAIn+C,EAAOF,KAAK6oc,cAAcxqZ,GAC1Bz8C,EAAQ5B,KAAK6jY,aAAa3jY,GAC9BF,KAAK0nc,UAAU9lc,IAEnB+rc,cAAe,SAASntc,IACKR,KAAKk7R,gBAAgBhJ,YAAc,IAAI1/D,EAAAA,IAAUpiN,UAAYpQ,KAAKk7R,gBAAgBtuR,QACxFwsB,KAAK,WACpB,IAAI3K,EAAgBzuB,KAAK8oc,oBACrBmG,EAAWjvc,KAAKk7R,gBAAgBx0O,WAChCirO,EAAa3xR,KAAKk7R,gBAAgBvJ,aAClCu9K,EAAazgb,IAAkBzuB,KAAKixR,SAAS3wR,OAAS,EAC1DN,KAAK0rV,sBAAsBlrV,GAC3B,IAAI69C,EAAO,eAAgBoqP,EAAAA,EAAAA,kBAAiBjoS,GAAK,GAAK,EAClDyuc,IAAat9K,GAAcu9K,GAAc7wZ,EAAO,GAC3Cr+C,KAAK8uW,QACN9uW,KAAKonY,eAEJpnY,KAAKk7R,gBAAgBnyQ,aACtB/oB,KAAK6+P,MAAMi/F,gBAAgB1kU,KAAKp5B,KAAKgvc,aAAavkc,KAAKzK,KAAMq+C,KAGjEr+C,KAAKgvc,aAAa3wZ,IAExB5zC,KAAKzK,QAEXqpc,iBAAkB,SAASnpc,GACvB,IAAIivc,GAAiBnvc,KAAKoqc,8BAA2B,IAAWlqc,EAChEF,KAAKuxN,SAAS49O,EAAgB,KAAOjvc,GAChCivc,GAAmBnvc,KAAKynY,gBAAiBznY,KAAK2uc,yBAC/C3uc,KAAKmqc,eAAe,eAAgBnqc,KAAK6kB,OAAO,kBAGxDulb,sBAAuB,WACnB,OAAOpqc,KAAK6kB,OAAO,sBAAwB7kB,KAAKuxN,YAEpDt1H,cAAe,SAAS/7F,GAEpB,OADAA,IAAQyoD,EAAAA,EAAAA,IAAUzoD,IAASF,KAAKoqc,wBAA0Bpqc,KAAK6kB,OAAO,SAAW3kB,EAC1EF,KAAKuxN,SAASrxN,IAEzByqc,YAAa,WACT,IAAI97b,GAAS/F,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CACjC2zL,aAAc,eACdxhD,mBAAoB1jW,KAAKovc,6BACzBhic,aAAcpN,KAAK6kB,OAAO,gBAC1Bo1U,qBAAsBj6V,KAAKqvc,8BAA8B5kc,KAAKzK,QAQlE,OANIA,KAAK6kB,OAAO,2BACZ/b,EAAAA,EAAAA,GAAO+F,EAAQ,CACXqhZ,uBAAuB,EACvB1sD,eAAe,IAGhB30V,GAEXwgc,8BAA+B,SAAS7uc,GACpC,IAAIR,KAAK6uc,yBAAT,CAGA,IAAI3tY,EAAO1gE,EAAE6tB,UACTisU,GAAiB5sV,EAAAA,EAAAA,GAAEwzD,EAAKr8C,OAAO,mBAC/ByG,EAAc41C,EAAK04R,aAAaU,GACpCt6V,KAAKy0X,aAAanpW,KAEtBmpW,aAAc,SAASv0X,GAEnB,IADoBF,KAAKi8N,qBAAqB,mBACvBj8N,KAAK6kB,OAAO,iBAAmB,CAClD,IAAIliB,EAAO3C,KAAK26V,eAAez6V,GAG/B,OAFAF,KAAK6kB,OAAO,OAAQliB,QACpB3C,KAAKymB,mBAAmB9jB,GAG5B3C,KAAK4yX,gBAETw8E,2BAA4B,WACxB,OAAOpvc,KAAK6kB,OAAO,yBAA2B7kB,KAAKsvc,wBAAwB7kc,KAAKzK,MAAQgyN,EAAAA,MAE5Fs9O,wBAAyB,SAAS9uc,IAC9Bia,EAAAA,EAAAA,IAAKja,EAAEi3C,YAAc,GAAI,SAAS/8B,EAAG60b,GACjCvvc,KAAK0nc,UAAU1nc,KAAK6jY,aAAa0rE,KACnC9kc,KAAKzK,QAEXwvc,sBAAuB,WACnB,OAAOxvc,KAAKk7R,gBAAgBllK,eAEhC6zQ,iBAAkB,SAASzhM,GACvB,IAAIpoM,KAAK6kB,OAAO,YAAhB,CAOA,IAJAujL,EAAYrgM,UAAUzH,OAAS8nM,GAAapoM,KAAK6kB,OAAO,YACrC7kB,KAAKyvc,sBACpBzvc,KAAK0vc,mBAAkB,GAEvB1vc,KAAK2vc,cAAgBvnQ,EAAW,CAChCpoM,KAAK2vc,YAAW,GAChB,IAAIC,EAAsB5vc,KAAK6kB,OAAO,yBAA2B7kB,KAAKsrc,6BACtE,GAAIsE,GAAuB5vc,KAAKk7R,gBAAgBvB,gBAAiB,CAC7D,GAAI35R,KAAKosc,aACL,OAEJ,IAAIp2U,EAAch2H,KAAKwvc,wBACvBx5U,GAAeh2H,KAAK2vc,YAAW,GAC/B3vc,KAAKusc,kBAAkBv2U,GAAe,WAEtCh2H,KAAKmqc,eAAe,QAAS,IAGjC/hQ,GACApoM,KAAK02X,wBAET12X,KAAKuxN,SAASnpB,KAElBkmQ,eAAgB,WACRtuc,KAAK6kB,OAAO,mBACZ7kB,KAAK6Z,WAAW+F,KAAK,QAAS5f,KAAK6kB,OAAO,kBAGlDgmO,kBAAmB,WACf7qP,KAAKuxN,WACLvxN,KAAKu5X,oBACLv5X,KAAKqrc,yBAETwE,uBAAwB,WACpB,IAAIC,EAAsB9vc,KAAK6kB,OAAO,gBACtC,GAAI,OAASirb,EACT,OAAO,EAEX,IAAIluc,EAAQ5B,KAAK26V,eAAem1G,GAGhC,OAFmBluc,EAAQikE,OAAOjkE,GAAS,MAC3B5B,KAAKywR,gBAGzB89E,oBAAqB,WACbvuW,KAAK6vc,0BACL7vc,KAAK4tc,iBAET5tc,KAAKuxN,YAET8pK,oBAAqB,WACjBr7X,KAAKuxN,WACDvxN,KAAK+vc,wBACL/vc,KAAK2vc,YAAW,GAChB3vc,KAAKssc,kBACLtsc,KAAK+vc,qBAAoB,KAGjCL,kBAAmB,SAASM,GACpBhwc,KAAK6kB,OAAO,aAGhB7kB,KAAKiwc,mBAAqBjwc,KAAKiwc,kBAAkB7xY,OAAO,WACpD,MAIIp+D,KAAK6kB,SAHcutF,EADvB,EACIA,kBACMzvG,EAFV,EAEIA,KACcmtc,EAHlB,EAGI1ic,aAEAglG,EACK49V,GAAqBhwc,KAAKkwc,mBAC3Blwc,KAAKy0X,aAAa,OAASq7E,QAAuB,IAAWA,EAAsBA,EAAsB9vc,KAAKmwc,kBAAkBxtc,IAChI3C,KAAKqqc,gBAITrqc,KAAK6kB,OAAO,mBACP7kB,KAAKywR,gBAAkBzwR,KAAK6kB,OAAO,iBACpC7kB,KAAKowc,kBAITpwc,KAAK6vc,0BAGT7vc,KAAKi9X,oBAAoB7+T,OAAO,SAAShxD,GACrC,IAAIijc,GAAkB7wM,EAAAA,EAAAA,eAAcpyP,EAAc0ic,GAClD9vc,KAAKqpc,iBAAiBgH,GACtBrwc,KAAKy0X,aAAa47E,GAClBrwc,KAAKqqc,gBACP5/b,KAAKzK,QACTyK,KAAKzK,QAEXswc,8BAA+B,WAE3B,OADuBtwc,KAAK6kB,OAAO7kB,KAAKuwc,kCAChBz0U,SAAS,SAErC00U,0BAA2B,SAAShwc,GAChC,OAAOR,KAAKqja,yBAAyB7ia,IAAMR,KAAKswc,iCAEpD58G,iBAAkB,SAASlzV,GAClBR,KAAKwwc,0BAA0Bhwc,KACVR,KAAKywc,uBAAuBjwc,EAAE6rC,iBAEhDrsC,KAAK0vc,oBACL1vc,KAAKmsc,qBAETnsc,KAAK0tc,oBAAoBltc,IAE7BA,EAAEoG,OAAS5G,KAAK63F,SAASh4E,IAAI,GAC7B7f,KAAKuxN,SAAS/wN,IAElBktc,oBAAqB,SAASltc,GAC1B,IACmBg2B,EACfx2B,KAAK6kB,SADL2R,cAEAk6a,EAAkB1wc,KAAKywc,uBAAuB,OAASjwc,QAAK,IAAWA,OAAI,EAASA,EAAE6rC,eAE1F,GADyBrsC,KAAK2vc,cAAgBn5a,IAAkBk6a,EACxC,CACpB,IAAI1zE,EACA2zE,EAAiB,QAAU3zE,EAAeh9X,KAAK8uW,cAAW,IAAWkuB,OAAe,EAASA,EAAam1C,yBAC9Gnya,KAAKmsc,oBACDwE,EACA3wc,KAAK+vc,qBAAoB,IAEzB/vc,KAAK2vc,YAAW,GAChB3vc,KAAKssc,qBAIjByD,oBAAqB,SAASnuc,GAC1B,IAAKmG,UAAUzH,OACX,OAAON,KAAK4wc,yBAEhB5wc,KAAK4wc,yBAA2Bhvc,GAEpC6uc,uBAAwB,SAAS7pc,GAC7B,SAAS8G,EAAAA,EAAAA,GAAE9G,GAAQmD,QAAQ,IAAI6xB,OAAOuxa,IAAgC7sc,QAE1E8vc,gBAAiB,WACb,IAAIhjc,EAAepN,KAAK6kB,OAAO,gBAC3Bgsb,EAAmB7wc,KAAK26V,eAAevtV,GAClBA,GAAgB,KAAOyjc,IAExC7wc,KAAKutc,uBACLvtc,KAAK0rV,sBAAsB1rV,KAAKutc,uBAEpCvtc,KAAK6kB,OAAO,QAAS,cAElB7kB,KAAKutc,uBAEhBb,iBAAkB,WACd,OAAO1sc,KAAK+qc,6BAA+B/qc,KAAK2vc,cAEpD9C,WAAY,WACR,IAAInlc,EAAgBkyN,EAAAA,EAAAA,iBAA4B55N,KAAKF,WACrD,OAAOE,KAAKuxN,aAAc7jN,EAAAA,EAAAA,GAAEhG,GAAeqC,QAAQ/J,KAAK63F,UAAUv3F,OAAS,GAE/Eiwc,+BAAgC,WAC5B,MAAO,yBAEXjvC,wBAAyB,WACjBtha,KAAKynY,eACLznY,KAAKuxN,YAGb8yK,iBAAkB,WACd,IAAIysE,EAAe9wc,KAAK6+P,OAAS7+P,KAAK6kB,OAAO,YAAanX,EAAAA,EAAAA,GAAE1N,KAAK6+P,MAAMh6O,OAAO,mBAC9E,OAAIisb,GAAgBA,EAAaxwc,OACtBN,KAAK6+P,MAAM+6F,aAAak3G,GAE5B9wc,KAAK6kB,OAAO,iBAEvBklb,iBAAkB,SAASnoc,GACvB,OAAO5B,KAAK4jY,eAAehiY,EAAO5B,KAAK6kB,OAAO,WAElDksb,wBAAyB,WACrB,QAAS/wc,KAAK6kB,OAAO,0BAA4B,WAAa7kB,KAAK6kB,OAAO,mBAE9EyxW,sBAAuB,SAAS91X,GAC5B,IAAIg4G,EAAgBx4G,KAAKyjY,mBACzBzjY,KAAKuuc,mBAAkB7gc,EAAAA,EAAAA,GAAElN,EAAEsqE,cAC3B9qE,KAAK0rV,sBAAsBlrV,EAAEga,OAC7Bxa,KAAKgxc,mBAAmBhxc,KAAK6jY,aAAarjY,EAAEqqE,WACxC7qE,KAAK+wc,2BACL/wc,KAAK6kB,OAAO,UAAU,GAEtB7kB,KAAK6kB,OAAO,kBAAoB2zF,IAAkBx4G,KAAK6jY,aAAarjY,EAAEqqE,WACtE7qE,KAAKy0X,aAAaj0X,EAAEqqE,UAEpB7qE,KAAKyvc,sBACLzvc,KAAK0tc,uBAGb+B,mBAAoB,WAChB,OAAOzvc,KAAK2vc,cAEhBqB,mBAAoB,SAASpvc,GACzB5B,KAAK0nc,UAAU9lc,IAEnB+hY,UAAW,SAAS/hY,EAAO+9C,GACvB,IAAIi2I,EAAO51L,KACPgrC,EAAW,IAAIwnL,EAAAA,GAcnB,OAbAxyN,KAAKuxN,SAAS3vN,EAAO+9C,GAAOvmB,KAAK,SAASl5B,GACtC8qC,EAAS56B,QAAQlQ,IACnBuK,KAAKzK,OAAO8gC,KAAK,SAASta,GACxB,GAAI,OAASA,QAAQ,IAAWA,IAAQA,EAAKu9W,mBAA7C,CAGA,IAAI32X,EAAewoL,EAAK/wK,OAAO,gBAC3B+wK,EAAK/wK,OAAO,sBAAwBjjB,IAAUg0L,EAAKiuM,aAAaz2X,GAChE49B,EAAS56B,QAAQhD,GAEjB49B,EAASU,WAEfjhC,KAAKzK,OACAgrC,EAASx6B,WAEpB44b,gBAAiB,SAASxnc,EAAO4sD,GAE7B,OADAxuD,KAAKiwc,kBAAoBjwc,KAAK2jY,UAAU/hY,GAAOw8D,OAAO5P,GAC/CxuD,KAAKiwc,mBAEhBtB,sBAAuB,WACnB,IAAIvhc,EAAepN,KAAK6kB,OAAO,gBAC3BmxG,EAAch2H,KAAKywR,eACnBogL,EAAmB7wc,KAAK26V,eAAevtV,GAC3C,OAAQyjc,GAAoB76U,IAAgB66U,EAAiBpic,YAEjEkiW,yBAA0B,SAASnwW,GAC3BR,KAAK6kB,OAAO,sBAAwB7kB,KAAK2uc,0BAA4B3uc,KAAKkwc,mBAC1Elwc,KAAKkwc,kBAAmB,EACxBlwc,KAAKixc,wBAAwBzwc,KAGrC6tc,8BAA+B,WAC3Bruc,KAAKkxc,0BAA4Blxc,KAAKw7N,sBAAsB,yBAEhE20O,kBAAmB,SAASxtc,GACxB,IAAIo/B,EAAS,CACTp/B,KAAMA,GAENwuc,EAAenxc,KAAKkxc,0BAA0Bnva,GAC9C7hC,GAAOs/P,EAAAA,EAAAA,eAAc2xM,EAAcpva,EAAO4vB,YAI9C,OAHIhJ,EAAAA,EAAAA,IAAUwoZ,IACVlvO,EAAAA,EAAAA,IAAW,QAAS,uBAAwB,cAEzC/hO,GAEX+wc,wBAAyB,SAASzwc,GAC9B,IAAIw1H,EAAch2H,KAAKywR,eACnBvwR,EAAOF,KAAKmwc,kBAAkBn6U,GAElC,GADAh2H,KAAK0rV,sBAAsBlrV,QACvB,IAAWN,EAEX,MADAF,KAAKsgV,eACCr+G,EAAAA,EAAAA,MAAa,UAEnBwsC,EAAAA,EAAAA,IAAUvuQ,IACVw6N,EAAAA,EAAAA,IAAYx6N,GAAMk5B,KAAKp5B,KAAKoxc,eAAe3mc,KAAKzK,OAAO8gC,KAAK9gC,KAAKoxc,eAAe3mc,KAAKzK,KAAM,OAE3FA,KAAKoxc,eAAelxc,IAG5Bkxc,eAAgB,SAASlxc,GACjBF,KAAK6kP,YAGT3kP,EAAOA,GAAQ,KACfF,KAAK6kB,OAAO,eAAgB3kB,GAC5BF,KAAK0tc,sBACL1tc,KAAK0nc,UAAU1nc,KAAK6jY,aAAa3jY,IACjCF,KAAKymB,mBAAmBzmB,KAAK26V,eAAez6V,IAC5CF,KAAKkwc,kBAAmB,IAE5B50E,mBAAoB,SAAS96X,GAIzB,OAHAR,KAAKstc,mBAAoB,EACzBttc,KAAKuxN,SAAS/wN,GACdR,KAAKssc,mBACE,GAEXqD,WAAY,SAAS/tc,GACjB,IAAKmG,UAAUzH,OACX,QAASN,KAAKqxc,gBAElBrxc,KAAKqxc,gBAAkBzvc,GAE3Boqc,eAAgB,WACRhsc,KAAKstc,yBACEttc,KAAKstc,mBAGZttc,KAAK+qc,6BACL/qc,KAAK2vc,YAAW,GAEpB3vc,KAAKuxN,SAASxpN,aAElBykc,oBAAqB,SAASx2U,GAC1Bh2H,KAAKuxN,WACD,OAASv7F,IACTh2H,KAAKsxc,2BACLtxc,KAAK4uc,0BAGbvB,kBAAmB,WACf,IAAI70a,EAAQx4B,KAAK63F,SAASh4E,IAAI,GAC1B0xb,EAAsBvxc,KAAKywR,eAAenwR,OAC1Cg1I,EAAgB,IAAM98G,EAAM8kE,gBAAkB9kE,EAAMw9E,eAAiBu7V,EACrEC,EAAoBh5a,EAAM8kE,iBAAmB9kE,EAAMw9E,aACnDy7V,EAAuBF,IAAwB/4a,EAAMw9E,aACzD,OAAOh2G,KAAK2vc,cAAgB6B,IAAsBl8T,GAAiBm8T,GAAwBzxc,KAAK0xc,iCAEpGA,8BAA+B,WAC3B,OAAQ1xc,KAAKwtc,sBAAwBxtc,KAAK6kB,OAAO,mBAAqB7kB,KAAK6kB,OAAO,sBAAwB,eAAiB7kB,KAAK6kB,OAAO,eAE3Iysb,yBAA0B,WACtB,GAAKtxc,KAAK0xc,gCAAV,CAIA,IAAIxxc,EAAOF,KAAK6+P,OAAS7+P,KAAKorW,eAAeprW,KAAK6+P,MAAMh6O,OAAO,UAAU,GACzE,GAAK3kB,EAAL,CAGA,IAAI63G,EAAS/3G,KAAK63F,SACdi7E,EAAc/6D,EAAOh0F,MAAMzjB,OAC/B,GAAI,IAAMwyK,EAAV,CAGA,IAAI4mN,EAAe3hR,EAAOl4F,IAAI,GAC1BkF,EAAe/kB,KAAK26V,eAAez6V,GAAMuO,WAC7CirX,EAAa93X,MAAQmjB,EACrB/kB,KAAKggY,OAAO,CACRnkX,MAAOi3J,EACP1/I,IAAKrO,EAAazkB,uBAjBXN,KAAKwtc,sBAoBpBnxO,SAAU,WACNr8N,KAAK8uc,uBAAyB98O,EAAAA,YACvBhyN,KAAKiwc,kBACZjwc,KAAKuxN,YAET2K,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,wBACDxN,KAAK+oY,2BACL/oY,KAAK2xc,qBACL3xc,KAAKgpY,iBACL,MACJ,IAAK,uBACDhpY,KAAKquc,gCACL,MACJ,IAAK,iBACDruc,KAAKsuc,iBACL,MACJ,IAAK,qBACL,IAAK,oBACL,IAAK,wBACDtuc,KAAK0rP,cACL,MACJ,IAAK,gBACD,MACJ,QACI1rP,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,cAAe2zW,GACjC,qKCvsBqB29E,EAAAA,WACjB,WAAYx3b,IAAS,eACjBpa,KAAKoa,QAAUA,EACfpa,KAAK6xc,WAAW,mBAAoB,IACpC7xc,KAAK8xc,8DAET,WACI9xc,KAAK6xc,WAAW,gBAAiB,IACjC7xc,KAAK6xc,WAAW,kBAAmB,IACnC7xc,KAAK6xc,WAAW,eAAgB,IAChC7xc,KAAK6xc,WAAW,aAAc,4BAElC,sCACA,SAAWrkc,EAAM5L,GACb5B,KAAKoa,QAAQ5M,GAAQ5L,oCAEzB,WACI,IAAIsjW,EAAgBllW,KAAKoa,QAAQ8qV,cAC7BC,EAAkBnlW,KAAKoa,QAAQ+qV,gBAC/B1tT,EAAaz3C,KAAKoa,QAAQq9B,WAC1B+pC,EAAexhF,KAAKoa,QAAQonE,aAC5B5sD,EAAgB50B,KAAKoa,QAAQwa,cAC7BmiP,EAAmB/2Q,KAAKoa,QAAQ28P,iBAChC2sF,EAAqB1jW,KAAKoa,QAAQspV,oBAAsB1xI,EAAAA,KAC5DhyN,KAAK8xc,iBACLpuG,EAAmB,CACf9uU,cAAeA,EACfmiP,iBAAkBA,EAClBmuF,cAAeA,EACfC,gBAAiBA,EACjB1tT,WAAYA,EACZ+pC,aAAcA,6BAGtB,SAAU03M,EAAMC,GACZ,OAAIn5R,KAAKoa,QAAQi9P,mBACTltD,EAAAA,EAAAA,IAAS+uE,KAAS/uE,EAAAA,EAAAA,IAASgvE,GACpBD,IAASC,GAGjB/kC,EAAAA,EAAAA,cAAa8kC,EAAMC,qCAE9B,SAAmBztR,GACf,OAAOA,EAAM9F,QAAQ,SAAS1F,GAC1B,QAAS,OAASA,QAAQ,IAAWA,GAAQA,EAAKkL,4CAG1D,SAAgBrE,EAAMgrc,EAAUC,EAAYh7L,GAIxC,OAHAjwQ,EAAOA,GAAQ,GACfA,EAAOxB,MAAMi2E,QAAQz0E,GAAQA,EAAO,CAACA,GACrC/G,KAAK2zE,WACE3zE,KAAK+2Q,iBAAiBhwQ,EAAMgrc,EAAUC,EAAYh7L,0CAE7D,SAAwBi7L,GAAc,WAClC,OAAI1sc,MAAMi2E,QAAQy2X,GACPA,EAAa/rc,KAAI,SAAAqmH,GAAC,OAAI,EAAK2lV,wBAAwB3lV,QAE1D49F,EAAAA,EAAAA,IAAS8nP,WACFA,EAAatob,SAEjBsob,oCAEX,SAAkBA,EAAcE,EAAarkc,EAAQkpQ,GACjD,IAAIo7L,EAAeC,UAAU/2b,KAAKC,UAAUvb,KAAKkyc,wBAAwBD,KAAgB3xc,OACrFgyc,EAAkBtyc,KAAKoa,QAAQqpV,0BAA4B2uG,EAAepyc,KAAKoa,QAAQqpV,yBACvFz4T,EAAW,IAAIwnL,EAAAA,GACfi/D,EAAc,CACd7rR,OAAQ0sc,OAAkB,EAASL,EACnCnkc,OAAQwkc,EAAkBtyc,KAAKoa,QAAQqrV,aAAe33V,GAAU9N,KAAKoa,QAAQqrV,cAejF,OAbIwsG,GAAgB,IAAMA,EAAa3xc,OACnC0qC,EAAS56B,QAAQ,IAEjBpQ,KAAKoa,QAAQxN,KAAK6kR,GAAar4P,MAAM,SAAS1tB,GAC1C,IAAI6mc,GAAgBx3X,EAAAA,EAAAA,IAAcrvE,GAASA,EAAMmC,KAAOnC,EACpDymc,IAAgBn7L,EAChBu7L,EAAgBA,EAAc3sc,OAAOusc,GAC9BG,IACPC,GAAgB3J,EAAAA,EAAAA,SAAU2J,GAAe3sc,OAAOqsc,GAAcn4O,WAElE9uL,EAAS56B,QAAQmic,MACjBzxa,KAAKkK,EAASU,OAAOjhC,KAAKugC,IAE3BA,2CAEX,SAA0BjkC,GACtB,IAAK,IAAIgF,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAAK,CAClC,IAAIw1P,GAAUD,EAAAA,EAAAA,YAAWv6P,EAAKgF,IAC9B,KAAKo+M,EAAAA,EAAAA,IAASo3C,GACVvhQ,KAAKoa,QAAQo4b,eAAejxM,GAAWvhQ,KAAKoa,QAAQo4b,eAAejxM,IAAY,GAC9DvhQ,KAAKoa,QAAQo4b,eAAejxM,GAClC3gQ,KAAKmL,sCAI5B,SAAmBL,GACf,IAAK,IAAIK,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAC9B,GAAI/L,KAAKoa,QAAQ8sV,eAAex7V,EAAMK,IAClC,OAGR,OAAO,wCAEX,WACI,IAAIL,EAAQ1L,KAAKoa,QAAQorV,aACrBitG,EAAazyc,KAAKoa,QAAQxU,SAC1BgvB,EAAgB50B,KAAKoa,QAAQs4b,oBAAsB1yc,KAAKoa,QAAQwa,cAAgB50B,KAAKoa,QAAQwa,cAAchvB,QAAO,SAAA1F,GAAI,QAAM,OAASA,QAAQ,IAAWA,GAAQA,EAAKkL,aACrKqnc,IACA79a,GAAgBg0a,EAAAA,EAAAA,SAAUh0a,GAAehvB,OAAO6sc,GAAY34O,WAEhE,IAAI64O,EAAsB/9a,EAAct0B,OACpCsyc,EAAsBlnc,EAAMpL,OAASN,KAAK6yc,mBAAmBnnc,GAAOpL,OACxE,OAAKqyc,EAGDA,GAAuB3yc,KAAKoa,QAAQqqQ,aAAemuL,QAAvD,EAFW5yc,KAAK8yc,mBAAmBpnc,4CAOvC,WAII,IAHA,IAAIA,EAAQ1L,KAAK6yc,mBAAmB7yc,KAAKoa,QAAQorV,cAC7CutG,GAAmB,EACnBC,GAAqB,EAChBjnc,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IAAI7L,EAAOwL,EAAMK,GACb8+D,EAAW7qE,KAAKoa,QAAQ64b,YAAY/yc,GACpC8G,EAAMhH,KAAKoa,QAAQ89P,MAAMrtM,GACzB7qE,KAAKoa,QAAQ84b,iBAAiBhzc,KAC1BF,KAAKmzc,kBAAkBnsc,GACvB+rc,GAAmB,EAEnBC,GAAqB,GAIjC,QAAID,KACQC,QAA4B,SAzI3BpB,cCJAwB,EAAAA,SAAAA,2IACjB,WACI,OAAOpzc,KAAKqzc,kBAAkBrzc,KAAKoa,QAAQk5b,oDAE/C,WACI,IAAIx2V,EAAI,IAAI01G,EAAAA,GACR58B,EAAO51L,KACPgH,EAAMhH,KAAKoa,QAAQpT,MACnB8G,GAASw8M,EAAAA,EAAAA,IAAStjN,GAAO,CAACA,GAAOA,EAOrC,OANAhH,KAAKqzc,kBAAkBrzc,KAAKoa,QAAQk5b,gBAAiB,KAAMxlc,GAAQsrB,MAAM,SAAS1tB,GAC9E,IAAI3E,EAAO2E,EAAMxF,KAAK,SAAShG,GAC3B,OAAO01L,EAAKx7K,QAAQ89P,MAAMh4Q,MAE9B48G,EAAE1sG,QAAQrJ,MACV+5B,KAAKg8E,EAAEpxE,QACJoxE,EAAEtsG,0CAEb,SAAiBzJ,EAAMgrc,EAAUC,EAAYh7L,GACzC,GAAIA,EAAa,CACb,IAAIpxQ,EAAS5F,KAAKoa,QAAQxU,UACMA,GAAU0V,KAAKC,UAAU3V,KAAY0V,KAAKC,UAAUvb,KAAKoa,QAAQk5b,kBAAoBtB,EAEjHhyc,KAAK6xc,WAAW,kBAAmBG,EAAa,GAAK,MAErDhyc,KAAKuzc,oBAAoBvB,EAAYpsc,EAAQoxQ,OAE9C,CACE+6L,GACD/xc,KAAK6xc,WAAW,kBAAmB,IAEvC,IAAK,IAAI9lc,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IACzBimc,EACAhyc,KAAKwzc,mBAAmBzsc,EAAKgF,IAE7B/L,KAAKyzc,gBAAgB1sc,EAAKgF,GAAIirQ,GAAc+6L,GAKxD,OADA/xc,KAAK0jW,sBACG,IAAIlxI,EAAAA,IAAUpiN,0CAE1B,SAAiBrJ,GACb/G,KAAK6xc,WAAW,kBAAmB,MACnC,IAAK,IAAI9lc,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAC7B/L,KAAKyzc,gBAAgB1sc,EAAKgF,sCAGlC,SAAmB8+D,GACf,OAAO7qE,KAAKmzc,kBAAkBtoY,oCAElC,SAAkBA,GACd,IAAIyoY,EAAkBtzc,KAAKoa,QAAQk5b,gBACnC,OAAKA,MAGI1K,EAAAA,EAAAA,SAAU,CAAC/9X,IAAWjlE,OAAO0tc,GAAiBx5O,UAAUx5N,kCAErE,WACI,IAAIozc,EAAW1zc,KAAKoa,QAAQpT,MAC5B,OAAIzB,MAAMi2E,QAAQk4X,IAAa,IAAMA,EAASpzc,OACnCozc,EAAS,GAEbA,+BAEX,SAAc1sc,GACV,IAAIswQ,EAAUt3Q,KAAKoa,QAAQpT,MAC3B,OAAIzB,MAAMi2E,QAAQ87L,IAAY,IAAMA,EAAQh3Q,OACjC0G,EAAIswQ,EAAQ,IAEhBtwQ,iCAEX,SAAgBA,GACZ,IAAI0sc,EAAW1zc,KAAK2zc,cAChB/tc,EAAS,CAAC8tc,EAAU,IAAK1zc,KAAK4zc,cAAc5sc,IAChD,GAAIzB,MAAMi2E,QAAQk4X,GAAW,CACzB9tc,EAAS,GACT,IAAK,IAAImG,EAAI,EAAGA,EAAI2nc,EAASpzc,OAAQyL,IACjCnG,EAAOhF,KAAK,CAAC8yc,EAAS3nc,GAAI,IAAK/E,EAAI0sc,EAAS3nc,MACxCA,IAAM2nc,EAASpzc,OAAS,GACxBsF,EAAOhF,KAAK,OAIxB,OAAOgF,iCAEX,SAAgBoB,EAAKgwQ,EAAa68L,GAC9B,IAAIjuc,EAAS5F,KAAK8zc,gBAAgB9sc,GAClChH,KAAKuzc,qBAAoB,EAAO3tc,EAAQoxQ,EAAa68L,qCAEzD,SAAmB7sc,GACf,IAAIpB,EAAS5F,KAAK8zc,gBAAgB9sc,GAClChH,KAAKuzc,qBAAoB,EAAM3tc,2BAEnC,WACI,IAAIoB,EAAMhH,KAAKoa,QAAQpT,IACvB,GAAIA,QAAO,IAAWA,IAClB,MAAMi7N,EAAAA,EAAAA,MAAa,QAAS,oDAGpC,SAAeqxO,EAAiB1tc,GAC5B,IAAK0tc,EACD,OAAQ,EAGZ,IADA,IAAI7+a,EAAenZ,KAAKC,UAAU3V,GACzB/E,EAAQ,EAAGA,EAAQyyc,EAAgBhzc,OAAQO,IAAS,CACzD,IAAIkzc,EAAYT,EAAgBzyc,GAChC,GAAIkzc,GAAaz4b,KAAKC,UAAUw4b,KAAet/a,EAC3C,OAAO5zB,EAGf,OAAQ,kCAEZ,SAAiByyc,EAAiB1tc,GAC9B,SAAI0tc,IAAmB1tc,KACZ5F,KAAKg0c,eAAeV,EAAiB1tc,KAAY0tc,EAAgBhzc,OAAS,GAAK,IAAMN,KAAKg0c,eAAe,CAACV,GAAkB1tc,sCAI3I,SAAmB0tc,EAAiBW,GAOhC,OANIX,EAAgBhzc,OAAS,IAAKgqN,EAAAA,EAAAA,IAASgpP,EAAgB,KAAOA,EAAgB,KAAOW,IACrFX,EAAkB,CAACA,IAEnBA,EAAgBhzc,QAChBgzc,EAAgB1yc,KAAKqzc,GAElBX,oCAEX,SAAmB1tc,GAIf,OAHIA,IAAU0kN,EAAAA,EAAAA,IAAS1kN,EAAO,MAC1BA,EAAS,CAACA,IAEPA,4CAEX,SAA2Bsuc,GACvB,OAAOA,EAAQl+Z,OAAM,SAACm+Z,EAAYpoc,GAC9B,OAAIA,EAAI,IAAM,EACHxG,MAAMi2E,QAAQ24X,IAAe,MAAQA,EAAW,GAEhD,QAAUA,wCAI7B,SAAoBnC,EAAYpsc,EAAQoxQ,EAAa68L,GACjD,IAAIO,EACAC,EAAgBrC,EAAa,CAAC,IAAKpsc,GAAUA,EAC7C0uc,EAAmBtC,EAAa,MAAQ,KACxCuC,GAAgB,EAChBjB,EAAkBtzc,KAAKoa,QAAQk5b,iBAAmB,GAEtD,GAAI,QAAUc,EADdd,EAAkBtzc,KAAKw0c,mBAAmBlB,UACW,IAAWc,GAAoBA,EAAiB9zc,SAAWuzc,EAAY,CACxH,IAAIY,EAAez0c,KAAK00c,kBAAkBpB,EAAiB1tc,EAAQosc,EAAYh7L,GAC3E29L,EAAc30c,KAAK00c,kBAAkBpB,EAAiB1tc,GAASosc,GAC3CA,KAAgB,IAAMyC,IAAiB,IAAME,IAAgB30c,KAAK40c,2BAA2BtB,KAEjHA,EAAkB,IAEtB,IAAIuB,EAA6B70c,KAAK80c,aAAalvc,IAAW5F,KAAK+0c,oCAAoCzB,EAAiBqB,GACxHJ,EAAgB3uc,EAAOtF,SAAWu0c,EAElCN,IACAjB,EAAkBtzc,KAAKg1c,mBAAmB1B,EAAiBgB,IAC3C1zc,KAAKyzc,GAEzBf,EAAkBtzc,KAAKi1c,iBAAiB3B,GACxCtzc,KAAK6xc,WAAW,kBAAoBG,GAAesB,EAAgBhzc,OAAgBgzc,EAAP,sCAEhF,SAAiB1tc,GAIb,OAHIA,GAAU,IAAMA,EAAOtF,SACvBsF,EAASA,EAAO,IAEbA,sCAEX,SAAqBA,EAAQ+uc,EAAa39L,GACtC,IAAI3pL,EAAYznF,EAAO,GACnB+uc,EAAc,EACd/uc,EAAO2J,OAAOolc,EAAc,EAAG,GAE/B/uc,EAAO2J,OAAOolc,EAAa,GAE3B39L,GAAe,QAAU3pL,GACzBznF,EAAO2J,OAAO,EAAG3J,EAAOtF,0CAGhC,SAAmBsF,EAAQoB,GACvB,OAAO,IAAMpB,EAAOtF,QAAUsF,EAAO,KAAOoB,GAAO,MAAQpB,EAAO,+BAEtE,SAAaA,GACT,GAAI,IAAMA,EAAOtF,QAAU,MAAQsF,EAAO,GACtC,OAAO5F,KAAK80c,aAAalvc,EAAO,IAEpC,IAAI8tc,EAAW1zc,KAAK2zc,cACpB,GAAIpuc,MAAMi2E,QAAQk4X,GAAW,CACzB,GAAI9tc,EAAOtF,SAAW,EAAIozc,EAASpzc,OAAS,EACxC,OAAO,EAEX,IAAK,IAAIyL,EAAI,EAAGA,EAAI2nc,EAASpzc,OAAQyL,IAAK,CACtC,GAAIA,EAAI,GAAK,QAAUnG,EAAO,EAAImG,EAAI,GAClC,OAAO,EAEX,IAAK/L,KAAKk1c,mBAAmBtvc,EAAO,EAAImG,GAAI2nc,EAAS3nc,IACjD,OAAO,EAGf,OAAO,EAEX,OAAO/L,KAAKk1c,mBAAmBtvc,EAAQ8tc,sDAE3C,SAAoCJ,EAAiBqB,GACjD,GAAIA,GAAe,EAAG,CAClB,IAAK,IAAI5oc,EAAI4oc,EAAa5oc,EAAIunc,EAAgBhzc,OAAQyL,IAClD,GAAI,kBAAoBunc,EAAgBvnc,KAAO/L,KAAK80c,aAAaxB,EAAgBvnc,IAC7E,OAAO,EAGf,OAAO,EAEX,OAAO,mCAEX,SAAkBunc,EAAiB1tc,EAAQuvc,EAAUn+L,GAEjD,GADApxQ,EAASuvc,EAAW,CAAC,IAAKvvc,GAAUA,EAChC0V,KAAKC,UAAU3V,KAAY0V,KAAKC,UAAU+3b,GAE1C,OADAA,EAAgB/jc,OAAO,EAAG+jc,EAAgBhzc,QACnC,EAEX,IAAIq0c,EAAc30c,KAAKg0c,eAAeV,EAAiB1tc,GACvD,GAAI+uc,GAAe,EAEf,OADA30c,KAAKo1c,qBAAqB9B,EAAiBqB,EAAa39L,GACjD29L,EAEP,IAAK,IAAI5oc,EAAI,EAAGA,EAAIunc,EAAgBhzc,OAAQyL,IACxC,GAAIxG,MAAMi2E,QAAQ83X,EAAgBvnc,KAAOunc,EAAgBvnc,GAAGzL,OAAS,EAAG,CACpE,IAAI+0c,EAAer1c,KAAK00c,kBAAkBpB,EAAgBvnc,GAAInG,GAAQ,EAAOoxQ,GAC7E,GAAIq+L,GAAgB,EAMhB,OALK/B,EAAgBvnc,GAAGzL,OAEb,IAAMgzc,EAAgBvnc,GAAGzL,SAChCgzc,EAAgBvnc,GAAKunc,EAAgBvnc,GAAG,IAFxC/L,KAAKo1c,qBAAqB9B,EAAiBvnc,EAAGirQ,GAI3Cq+L,EAInB,OAAQ,mCAGhB,WACI,IAAIzvc,EAAS5F,KAAKoa,QAAQxU,SACtB0tc,EAAkBtzc,KAAKoa,QAAQk5b,gBACnC,OAAKA,KAGAA,EAAgBhzc,SAGhBsF,GAAWA,EAAOtF,QAGvBgzc,EAAkBtzc,KAAKw0c,mBAAmBlB,KACtCtzc,KAAKs1c,iBAAiBhC,EAAiB1tc,KAGvC5F,KAAKs1c,iBAAiBhC,EAAiB,CAAC,IAAK1tc,UAAjD,QAPA,8CAYJ,WACI,IAAI2vc,EAAkBv1c,KAAKoa,QAAQxU,SAC/B0tc,EAAkBtzc,KAAKoa,QAAQk5b,gBAC/B1tc,EAAS2vc,EAAkB,CAACA,EAAiB,MAAOjC,GAAmBA,EAC3E,OAAOtzc,KAAKqzc,kBAAkBztc,SA9QjBwtc,CAAyBxB,oCCezB4D,EAAAA,SAAAA,iCACjB,WAAYp7b,GAAS,6BACjB,cAAMA,IACDq7b,2BAFY,yDAIrB,WACIz1c,KAAK6xc,WAAW,iBAAkB7xc,KAAKoa,QAAQi9P,iBAAmB,KAAO,uCAE7E,WACI,OAAOr3Q,KAAKoa,QAAQ28P,iBAAiBtxQ,MAAM,mCAE/C,WACI,OAAOzF,KAAKoa,QAAQwa,cAAcnvB,MAAM,2CAE5C,SAAyBiG,EAAOsmc,GAC5B,IACI0D,EACAC,EACA5pc,EAHAmsQ,EAAQl4Q,KAAKoa,QAAQ89P,MAIzB,GAAKA,EAAL,CAGA,IAAI09L,EAAkB5D,GAActmc,EAAMpL,OAAS,IAAMN,KAAKoa,QAAQi9P,iBAItE,IAHIu+L,IACAF,EAAwB,IAEvB3pc,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CAC/B,IAAI7L,EAAOwL,EAAMK,GACb/E,EAAMkxQ,EAAMh4Q,GACZ8xc,GACA2D,EAAW31c,KAAKwzc,mBAAmBxsc,EAAK0uc,EAAuB,OAASx1c,QAAQ,IAAWA,OAAO,EAASA,EAAKkL,UAC5Gsqc,GAAyBC,GAAY,IACrCD,EAAsBC,IAAY,IAGtC31c,KAAKyzc,gBAAgBzsc,EAAK9G,GAG9B01c,GACA51c,KAAK61c,0BAA0BH,6CAGvC,SAA0BA,GACtB,IAAI3+L,EAAmB/2Q,KAAKoa,QAAQ28P,iBAAiBtxQ,MAAM,GACvDmvB,EAAgB50B,KAAKoa,QAAQwa,cAAcnvB,MAAM,GACrDzF,KAAKoa,QAAQ28P,iBAAiBz2Q,OAAS,EACvCN,KAAKoa,QAAQwa,cAAct0B,OAAS,EACpC,IAAK,IAAIyL,EAAI,EAAGA,EAAIgrQ,EAAiBz2Q,OAAQyL,IACpC2pc,EAAsB3pc,KACvB/L,KAAKoa,QAAQ28P,iBAAiBn2Q,KAAKm2Q,EAAiBhrQ,IACpD/L,KAAKoa,QAAQwa,cAAch0B,KAAKg0B,EAAc7oB,KAGtD/L,KAAKy1c,2BACLz1c,KAAK81c,0BAA0B91c,KAAKoa,QAAQ28P,wDAEhD,SAAuBhwQ,EAAMirc,EAAYh7L,EAAapxQ,GAClD,IAAIoyQ,EAAsBjwQ,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAClFijC,EAAW,IAAIwnL,EAAAA,GACfxrN,EAAMhH,KAAKoa,QAAQpT,MACvB,IAAKD,EAAKzG,SAAW02Q,EAEjB,OADAhsO,EAAS56B,QAAQ,IACV46B,EAEX,GAAIgsO,GAAeg7L,IAAepsc,EAE9B,OADAolC,EAAS56B,QAAQpQ,KAAK4mW,oBACf57T,EAEX,IAAI+qa,EAAyB,IAAIj/L,EAAAA,EAAuB/vQ,EAAMiwQ,GAC1DiB,EAAiB89L,EAAuBj+L,kBAAkB9wQ,EAAKpB,EAAQoyQ,GACvEg+L,EAAkB,GACtB,GAAIhE,EAAY,CACZ,IAAIp9a,EAAgB50B,KAAKoa,QAAQwa,cACjCohb,EAAkB/9L,GAAkBlxQ,EAAKzG,SAAWs0B,EAAct0B,QAASsoc,EAAAA,EAAAA,SAAUh0a,GAAehvB,OAAOqyQ,GAAgBn+C,UAAYllM,EAAcnvB,MAAM,GAE/J,IAAI8sc,EAAgByD,EAAgB11c,OAAS01c,EAAkBh2c,KAAKoa,QAAQorV,YAAW,GAAM5/V,OAAO5F,KAAKoa,QAAQ84b,kBAAkBhtc,IAAIlG,KAAKoa,QAAQ64b,aAChJd,EAAc4D,EAAuB7+L,eAAel3Q,KAAKoa,QAAQ89P,MAAOl4Q,KAAKo3Q,UAAU3sQ,KAAKzK,MAAOA,KAAKoa,QAAQi9P,iBAAkBrwQ,GAOtI,OANAurc,EAAgBA,EAAc3sc,OAAOusc,GACjC6D,EAAgB11c,SAAW02Q,GAAeu7L,EAAcjyc,SAAWyG,EAAKzG,OACxE0qC,EAAS56B,QAAQmic,GAEjBvna,EAAWhrC,KAAKqzc,kBAAkBp7L,EAAgBk6L,EAAa,KAAMn7L,GAElEhsO,yCAEX,SAAwBt/B,GACpB,IAAIuqc,EAAe,GACf/9L,EAAQl4Q,KAAKoa,QAAQ89P,MACzB,GAAKA,EAAL,CAGA,IAAK,IAAInsQ,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IACI/E,EAAMkxQ,EADCxsQ,EAAMK,IAEjBkqc,EAAar1c,KAAKoG,GAEtBhH,KAAKk2c,iBAAiBD,EAAcvqc,wCAExC,SAAqB3E,GAEjB,IADA,IAAIk+V,EAAiBjlW,KAAKoa,QAAQ6qV,eACzBl5V,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAAK,CAClC,IAAI/E,EAAMD,EAAKgF,GACTk5V,GAAkB,OAASj+V,GAAShH,KAAKmzc,kBAAkBnsc,IAC7Di7N,EAAAA,EAAAA,IAAW,QAASj7N,yCAIhC,WACI,IAAIq9D,EAAOrkE,KAAKoa,QAAQiqD,KACxB,MAAO,QAAUA,GAAQ,aAAeA,oCAE5C,WACI,IAAI8xY,EACJ,MAAO,aAAe,QAAUA,EAAwBn2c,KAAKo2c,yBAAsB,IAAWD,OAAwB,EAASA,EAAsBh/W,6CAEzJ,SAAqBpwF,EAAMirc,EAAYqE,EAAiBC,GACpD,IAAI1hb,EACAohb,EAAkBhE,EAAajrc,EAAO,GAM1C,OAJI6tB,EADA0hb,IAGgB95M,EAAAA,EAAAA,IAAiBz1P,EAAM/G,KAAKoa,QAAQ28P,kBAEjD,CACHt/N,WAAY4+Z,EAAgBp/Z,MAAMrb,OAAOhH,GACzC4sD,aAAc60X,EAAgB51V,QAAQ7kF,OAAOo6a,GAC7Cjvc,KAAMA,0CAGd,SAAwBA,EAAMirc,EAAYh7L,EAAas/L,GACnD,IAAIC,EAAgBvE,GAAch7L,EAC9Bq/L,EAAkB,CAClBp/Z,MAAO,GACPwpE,QAAS,IAET+1V,EAAqBx2c,KAAKy2c,wBAC1BC,EAAkBF,EAAqBx2c,KAAK22c,iBAAmB,GAgBnE,OAfIH,IACIx2c,KAAK42c,8BACDL,GACAv2c,KAAKo2c,kBAAkB1qa,SACvBgra,EAAkB,KACVl5M,EAAAA,EAAAA,GAAYz2P,EAAM/G,KAAKoa,QAAQ28P,oBACvCs/L,EAAgBp/Z,MAAQy/Z,EAAgBj/Z,WACxC4+Z,EAAgB51V,QAAUi2V,EAAgBl1X,aACrCwwX,GACDhyc,KAAKo2c,kBAAkB1qa,WAInCgra,EAAkB12c,KAAK62c,qBAAqB9vc,EAAMirc,EAAYqE,EAAiBr2c,KAAK42c,iCAA8B,EAASN,IAExHI,8CAEX,SAA6B3vc,EAAMirc,EAAYh7L,GAC3C,IAEQ8/L,EAAuBC,EAF3BC,EAAcjwc,EACd/G,KAAKy2c,yBAA2Bz2c,KAAK42c,8BAAgC5E,IAAeh7L,IAEpFggM,GAAcx6M,EAAAA,EAAAA,IAAiBz1P,EAAK60B,OAAO,QAAUk7a,EAAwB92c,KAAK22c,wBAAqB,IAAWG,OAAwB,EAASA,EAAsBr/Z,YAAa,QAAUs/Z,EAAyB/2c,KAAK22c,wBAAqB,IAAWI,OAAyB,EAASA,EAAuBv1X,cACvTw1X,GAAc96M,EAAAA,EAAAA,IAAgB86M,IAElC,OAAOA,oCAEX,SAAmBjwc,EAAMirc,EAAYh7L,EAAas/L,GAC9C,IAAIt+L,EAAsBjwQ,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAClF6tL,EAAO51L,KACPgrC,EAAW,IAAIwnL,EAAAA,GACf5sN,EAASgwL,EAAKx7K,QAAQxU,SAS1B,OARA5F,KAAK42c,4BAA8B52c,KAAKi3c,qBACxCj3c,KAAK22c,iBAAmB32c,KAAKk3c,wBAAwBnwc,EAAMirc,EAAYh7L,EAAas/L,IACpF77O,EAAAA,EAAAA,IAAK7kC,EAAKwgR,mBAAmBh4Y,QAAQ,WACjC,IAAI44Y,EAAcphR,EAAKuhR,6BAA6Bpwc,EAAMirc,EAAYh7L,GACtEphF,EAAKghR,6BAA8B,EACnChhR,EAAKwhR,uBAAuBJ,EAAahF,EAAYh7L,EAAapxQ,EAAQoyQ,GAAqB5+O,KAAK4R,EAAS56B,SAAS0wB,KAAKkK,EAASU,WAExIkqJ,EAAKwgR,kBAAoBpra,EAClBA,kCAEX,SAAiBjkC,EAAMgrc,EAAUC,EAAYh7L,EAAas/L,GACtD,IAAIt+L,EAAsBjwQ,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAClF6tL,EAAO51L,KACPgrC,EAAW4qJ,EAAKyhR,mBAAmBtwc,EAAMirc,EAAYh7L,EAAas/L,EAAat+L,GASnF,OARAhtO,EAAS5R,MAAM,SAAS1tB,GAChBqmc,EACAn8Q,EAAK0hR,yBAAyB5rc,EAAOsmc,GAErCp8Q,EAAK2hR,wBAAwB7rc,GAEjCkqL,EAAK8tK,wBAEF14T,iCAEX,SAAgBhkC,EAAK6jE,GACjB,IAAIliB,EAAAA,EAAAA,IAAUkiB,KAAc7qE,KAAKoa,QAAQs4b,qBAAuB7nY,EAASz/D,UAChE,IAAMpL,KAAKoa,QAAQo9b,iBAAiBrxc,QAAQa,IAC7ChH,KAAKoa,QAAQo9b,iBAAiB52c,KAAKoG,OAF3C,CAMA,IAAIu6P,EAAUvhQ,KAAKy3c,YAAYzwc,IAC1B,IAAMhH,KAAK03c,wBAAwBn2M,OAC/Bp3C,EAAAA,EAAAA,IAASo3C,IAAYvhQ,KAAKoa,QAAQo4b,iBACnCxyc,KAAKoa,QAAQo4b,eAAejxM,GAAW,CAACvhQ,KAAKoa,QAAQ28P,iBAAiBz2Q,SAE1EN,KAAKoa,QAAQ28P,iBAAiBn2Q,KAAKoG,GACnChH,KAAKoa,QAAQ8qV,cAActkW,KAAKoG,GAChChH,KAAKoa,QAAQq9B,WAAW72C,KAAKiqE,GAC7B7qE,KAAKoa,QAAQwa,cAAch0B,KAAKiqE,2CAGxC,SAAuB7jE,EAAK2wc,GAExB,IADA,IAAI5gM,EAAmB/2Q,KAAKoa,QAAQ28P,iBAC3Bl2Q,EAAQ,EAAGA,EAAQk2Q,EAAiBz2Q,OAAQO,IACjD,KAAM82c,IAAqBA,EAAiB92c,KAAWb,KAAKo3Q,UAAUL,EAAiBl2Q,GAAQmG,GAC3F,OAAOnG,EAGf,OAAQ,yCAEZ,SAAwBmG,EAAK2wc,GACzB,IAAI7xG,EAAU9lW,KAAKoa,QAAQo4b,eAAexrc,GAM1C,OALI8+V,GAAWA,EAAQxlW,OAAS,GAAKq3c,IACjC7xG,EAAUA,EAAQlgW,QAAQ,SAAS/E,GAC/B,OAAQ82c,EAAiB92c,OAG1BilW,GAAWA,EAAQ,IAAM,EAAIA,EAAQ,IAAM,yCAEtD,SAAwB9+V,EAAK2wc,GASzB,OAPI33c,KAAKoa,QAAQi9P,iBACGr3Q,KAAKoa,QAAQ28P,iBAAiB5wQ,QAAQa,IAC/CmjN,EAAAA,EAAAA,IAASnjN,GACAhH,KAAK43c,uBAAuB5wc,EAAK2wc,GAEjC33c,KAAK63c,wBAAwB7wc,EAAK2wc,2CAI1D,SAAyBhC,GACrB,IAAK,IAAImC,EAAkBnC,EAAUmC,EAAkB93c,KAAKoa,QAAQ28P,iBAAiBz2Q,OAAQw3c,IAAmB,CAC5G,IAAIC,EAAa/3c,KAAKoa,QAAQ28P,iBAAiB+gM,GAC3CE,GAAiB12M,EAAAA,EAAAA,YAAWy2M,GAC5BE,EAAoBj4c,KAAKoa,QAAQo4b,eAAewF,GACpD,GAAKC,EAGL,IAAK,IAAIlsc,EAAI,EAAGA,EAAIksc,EAAkB33c,OAAQyL,IACtCksc,EAAkBlsc,GAAK4pc,GACvBsC,EAAkBlsc,wCAKlC,SAAmB/E,EAAK0uc,EAAuB98G,GAC3C,GAAK54V,KAAKoa,QAAQs4b,sBAAuB95G,EAAzC,CAGA,IAAIr3F,EAAUvhQ,KAAKy3c,YAAYzwc,GAC3B4uc,IAAoBF,EACpBC,EAAW31c,KAAK03c,wBAAwBn2M,EAASm0M,GACrD,GAAIC,EAAW,EACX,OAAOA,EAIX,GAFA31c,KAAKoa,QAAQ+qV,gBAAgBvkW,KAAKoG,GAClChH,KAAKoa,QAAQonE,aAAa5gF,KAAKZ,KAAKoa,QAAQwa,cAAc+gb,IACtDC,EACA,OAAOD,EAIX,GAFA31c,KAAKoa,QAAQ28P,iBAAiBxnQ,OAAOomc,EAAU,GAC/C31c,KAAKoa,QAAQwa,cAAcrlB,OAAOomc,EAAU,IACxCxrP,EAAAA,EAAAA,IAASo3C,KAAavhQ,KAAKoa,QAAQo4b,eACnC,OAAOmD,EAEX,IAAIuC,EAAal4c,KAAKoa,QAAQo4b,eAAejxM,GAC7C,OAAK22M,GAGLA,EAAWlyY,QACNkyY,EAAW53c,eACLN,KAAKoa,QAAQo4b,eAAejxM,GAEvCvhQ,KAAKm4c,yBAAyBxC,GACvBA,GAPIA,uCASf,SAAqB5uc,EAAM2E,GACvB,IAAK,IAAIK,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IACxB/L,KAAKmzc,kBAAkBpsc,EAAKgF,MAC7B/L,KAAKoa,QAAQ8qV,cAActkW,KAAKmG,EAAKgF,IACrC/L,KAAKoa,QAAQq9B,WAAW72C,KAAK8K,EAAMK,2CAI/C,SAAuBhF,EAAMqxc,EAAiBC,GAC1C,IAAK,IAAItsc,EAAI,EAAGA,EAAIqsc,EAAgB93c,OAAQyL,IACnC/L,KAAKmzc,kBAAkBiF,EAAgBrsc,MACxC/L,KAAKoa,QAAQ+qV,gBAAgBvkW,KAAKw3c,EAAgBrsc,IAClD/L,KAAKoa,QAAQonE,aAAa5gF,KAAKy3c,EAAiBtsc,+CAI5D,SAA2B/E,EAAKmhW,GAC5B,IAEQmwG,EADR,SADyBnwG,GAAgBnoW,KAAK22c,kBAAoB32c,KAAKi3c,wBAGlD,QAAUqB,EAAyBt4c,KAAK22c,iBAAiBl/Z,kBAAe,IAAW6ga,EAAyBA,EAAyB,IACpIx8U,SAAS90H,8BAKnC,SAAYA,GACR,OAAOhH,KAAKoa,QAAQi9P,iBAAmBrwQ,GAAMs6P,EAAAA,EAAAA,YAAWt6P,mCAE5D,SAAiBD,EAAM2E,GACnB1L,KAAKu4c,qBAAqBxxc,EAAM2E,GAChC,IAAI0sc,EAAkBp4c,KAAKoa,QAAQ28P,iBAC/BshM,EAAmBr4c,KAAKoa,QAAQwa,cAC/B50B,KAAKoa,QAAQi9P,mBACdr3Q,KAAKy1c,2BACLz1c,KAAK81c,0BAA0B/uc,IAEnC/G,KAAK6xc,WAAW,mBAAoB9qc,GACpC/G,KAAK6xc,WAAW,gBAAiBnmc,GACjC1L,KAAKw4c,uBAAuBzxc,EAAMqxc,EAAiBC,qCAEvD,SAAmBxtY,GACf,IAAIzwD,EAAUrS,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,GAC3Ef,EAAMhH,KAAKoa,QAAQ89P,MAAMrtM,GAC7B,OAAO7qE,KAAKmzc,kBAAkBnsc,EAAKoT,oCAEvC,SAAkBpT,GACd,IAAIoT,EAAUrS,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,GAC3E8G,EAAS7O,KAAKy4c,2BAA2Bzxc,EAAKoT,EAAQ+tV,cAC1D,IAAKt5V,EAAQ,CACT,IAAI0yP,EAAUvhQ,KAAKy3c,YAAYzwc,GAC3BnG,EAAQb,KAAK03c,wBAAwBn2M,GACzC1yP,GAAU,IAAMhO,EAEpB,OAAOgO,mCAEX,SAAkB6pc,GACd,OAAIA,EACO14c,KAAK24c,4BAEL34c,KAAK44c,oEAGpB,WACI,IAAIthM,EAAUt3Q,KAAKoa,QAAQpT,MACvBD,EAAO/G,KAAK+lW,sBACZngW,EAAS5F,KAAKoa,QAAQxU,SAC1B,IAAKmB,EAAKzG,OACN,OAAOkyN,EAAAA,EAAAA,MAAWpiN,QAAQ,IAE9B,IACI6nQ,EADyB,IAAInB,EAAAA,EAAuB/vQ,GACZ+wQ,kBAAkBR,EAAS1xQ,GAAQ,GAC/E,OAAO5F,KAAKqzc,kBAAkBp7L,SArWjBu9L,CAAyB5D,cCTzB58S,EAAAA,WACjB,WAAY56I,IAAS,eACjBpa,KAAKoa,SAAUtR,EAAAA,EAAAA,GAAO9I,KAAKyyN,qBAAsBr4M,EAAS,CACtD28P,iBAAkB38P,EAAQ0oW,cAAgB,KAE9C9iX,KAAKsrV,mBAAqBtrV,KAAKoa,QAAQ4wB,SAAW,IAAI6ta,EAAiB74c,KAAKoa,SAAW,IAAI0+b,EAAiB94c,KAAKoa,SACjHpa,KAAK+4c,mBAAqB,EACrB/4c,KAAKoa,QAAQi9P,kBACdr3Q,KAAKsrV,mBAAmBwqH,0BAA0B91c,KAAKoa,QAAQ28P,mEAGvE,WACI,MAAO,CACHkuF,gBAAgB,EAChBj6T,UAAU,EACVqsO,kBAAkB,EAClBhzM,KAAM,WACNzvC,cAAe,GACf0+a,gBAAiB,GACjB7vG,yBAA0B,EAC1BC,mBAAoB1xI,EAAAA,KACpBhrN,IAAKgrN,EAAAA,KACLkmD,MAAO,SAASh4Q,GACZ,OAAOA,GAEX0M,KAAM,WACF,OAAQ,IAAI4lN,EAAAA,IAAUpiN,QAAQ,KAElCq0Q,WAAY,WACR,OAAQ,GAEZyuL,iBAAkB,WACd,OAAO,GAEXhsG,eAAgB,WACZ,OAAO,GAEX+rG,YAAa,SAAS/yc,GAClB,OAAOA,GAEXulW,WAAYzzI,EAAAA,KACZpsN,OAAQosN,EAAAA,8BAGhB,WACIhyN,KAAKsrV,mBAAmB33Q,8CAE5B,WACI,OAAO3zE,KAAKsrV,mBAAmBya,sDAEnC,WACI,OAAO/lW,KAAKsrV,mBAAmBsb,kDAEnC,SAAgBhlW,GACZ,QAAI,IAAWA,EACX,OAAO5B,KAAKoa,QAAQk5b,gBAExB,IAAI0F,EAAkBh5c,KAAKoa,QAAQk5b,kBAAoB1xc,GAAS0Z,KAAKC,UAAUvb,KAAKoa,QAAQk5b,mBAAqBh4b,KAAKC,UAAU3Z,GAChI5B,KAAKoa,QAAQk5b,gBAAkB1xc,EAC/Bo3c,GAAmBh5c,KAAK0jW,iDAE5B,SAAa38V,EAAMuvc,GACf,OAAOt2c,KAAK+2Q,iBAAiBhwQ,GAAM,GAAO,GAAO,EAAOuvc,yBAE5D,SAAOvvc,GACH,OAAO/G,KAAK+2Q,iBAAiBhwQ,GAAM,2BAEvC,SAASA,GACL,OAAO/G,KAAK+2Q,iBAAiBhwQ,GAAM,GAAM,mCAE7C,SAAiBA,EAAMgrc,EAAUC,EAAYh7L,EAAas/L,GACtD,IAAI2C,EAIJ,OAHAlyc,EAAO,QAAUkyc,EAAQlyc,SAAS,IAAWkyc,EAAQA,EAAQ,GAC7Dlyc,EAAOxB,MAAMi2E,QAAQz0E,GAAQA,EAAO,CAACA,GACrC/G,KAAK2zE,WACE3zE,KAAKsrV,mBAAmBv0E,iBAAiBhwQ,EAAMgrc,EAAUC,EAAYh7L,EAAas/L,iCAE7F,WACI,OAAOt2c,KAAK+2Q,iBAAiB,oCAEjC,SAAiBlsM,EAAU7jE,GACvBhH,KAAKsrV,mBAAmBmoH,gBAAgBzsc,EAAK6jE,sCAEjD,SAAoB7jE,GAChBhH,KAAKsrV,mBAAmBkoH,mBAAmBxsc,oCAE/C,SAAkBD,EAAM2E,GACpB1L,KAAKsrV,mBAAmB4qH,iBAAiBnvc,EAAM2E,qCAEnD,WACI1L,KAAKsrV,mBAAmBoY,wDAE5B,SAAoB1hV,EAAWjb,EAAMmyc,GAAc,IAC3CC,EAAuBC,EACvBC,EAGArua,EAEAsua,EAP2C,OAG3C5tc,EAAQ1L,KAAKoa,QAAQorV,aACrBtlW,EAAOwL,EAAMsW,GAIbu3b,GAA8B,EAC9BC,GAAmC,EACnCC,EAAyB,SAAA54c,GAAK,OAAIA,GAAS,IAAM6K,EAAM9F,QAAO,SAAA2iT,GAAE,OAAIA,EAAGmxJ,YAAc74c,KAAOP,QAShG,IAbuB,QAAU64c,GAAyBC,EAAgBp5c,KAAKoa,SAASu/b,wBAAqB,IAAWR,OAAwB,EAASA,EAAsB14c,KAAK24c,MAK5JzwZ,EAAAA,EAAAA,IAAUzoD,KAC9Bo5c,EAAcp5c,EAAKw5c,UAAY13b,EAC/BA,EAAY9hB,EAAKw5c,UACjBH,EAA8BE,EAAuBz5c,KAAK+4c,oBACtDpwZ,EAAAA,EAAAA,IAAU3oD,KAAK45c,0BACfJ,EAAmCC,EAAuBz5c,KAAK45c,2BAGlE55c,KAAK65c,iBAAmB75c,KAAK85c,WAAW55c,GACzC,OAAO,EAEX,IAAI2qE,EAAW7qE,KAAKoa,QAAQ64b,YAAY/yc,GACpCkxY,EAAUpxY,KAAKoa,QAAQ89P,MAAMrtM,GAEjC,IADA9jE,EAAOA,GAAQ,IACNi/D,OAAS,aAAehmE,KAAKoa,QAAQiqD,MAAQrkE,KAAK+4c,mBAAqB,EACxEQ,GAA+BC,GAC/BH,EAAyBr3b,IAAchiB,KAAK45c,wBAA0B55c,KAAK+4c,oBAAsB/4c,KAAK45c,0BAElG5ua,EAAWhrC,KAAK+5c,+CAA+C/3b,IAGnEq3b,EAAyBr5c,KAAKg6c,uCAAuCh4b,EAAWtW,EAAO4tc,QAExF,GAAIvyc,EAAK6T,QAAS,CAErB,GADA5a,KAAKi6c,0CACAf,EAAc,CACf,IAAInrc,EAAa/N,KAAKsrV,mBAAmB4uH,mBAAmBrvY,GACxD,WAAa7qE,KAAKoa,QAAQiqD,MAC1BrkE,KAAKm6c,qBAELpsc,EACA/N,KAAKo6c,oBAAoBhpE,GAEzBpxY,KAAKq6c,iBAAiBxvY,EAAUumU,GAGxCioE,GAAyB,MACtB,CACHr5c,KAAKi6c,yCACL,IAAIz8M,EAAcx9P,KAAKsrV,mBAAmBl0E,UAAUp3Q,KAAKoa,QAAQ28P,iBAAiB,GAAIq6H,GAClF,IAAMpxY,KAAKoa,QAAQ28P,iBAAiBz2Q,QAAWk9P,IAC/Cx9P,KAAKs6c,kBAAkB,CAAClpE,GAAU,CAACvmU,IACnCwuY,GAAyB,GAGjC,OAAIA,IACA5+O,EAAAA,EAAAA,IAAKzvL,GAAU5R,MAAK,WAChB,EAAK2/a,kBAAoB/2b,GACxBk3b,GAAgB,EAAKx1G,yBAEnB,QALX,4BAQJ,SAAWxjW,GACP,OAAOF,KAAKoa,QAAQ84b,iBAAiBhzc,+BAEzC,WACI,MAAO,WAAaF,KAAKoa,QAAQiqD,MAAQ,aAAerkE,KAAKoa,QAAQiqD,uCAEzE,SAAmBx2D,GACf,OAAO7N,KAAKsrV,mBAAmB4uH,mBAAmBrsc,EAAM,CACpDs6V,cAAc,kCAGtB,SAAep5U,EAAK3U,GAChB,OAAOpa,KAAKsrV,mBAAmB6nH,kBAAkBpkb,EAAK3U,yDAE1D,kBACWpa,KAAK45c,6DAEhB,WACI55c,KAAK+4c,mBAAqB,gEAE9B,SAA+CW,GAAW,WAClDjoL,EAAczxR,KAAKoa,QAAQmgc,eAAeb,EAAW15c,KAAK+4c,kBAAmB/4c,KAAK45c,wBAClF5ua,EAAW,IAAIwnL,EAAAA,GACf8mP,EAAc7nL,EAAYzrO,KAK9B,OAJAhmD,KAAKoa,QAAQxN,KAAK6kR,GAAar4P,MAAK,SAAA1tB,GAChC,EAAKsuc,uCAAuCN,EAAWhuc,EAAO4tc,GAC9Dtua,EAAS56B,aAEN46B,EAASx6B,gEAEpB,SAAuCwR,EAAWtW,EAAO4tc,GACrD,IACIkB,EAWA3sc,EACAujY,EACAzpY,EACAwsH,EAfAklV,GAAyB,EAEzBoB,GAAqB9xZ,EAAAA,EAAAA,IAAU2wZ,GAC/Bz4c,EAAQ45c,EAAqBz6c,KAAK+4c,kBAAoBO,EAAct5c,KAAK+4c,kBACzE7gM,EAAQl4Q,KAAKoa,QAAQ89P,MACrB5sP,EAAc5f,EAAM7K,GACpB65c,EAAc16c,KAAKoa,QAAQ64b,YAAY3nb,GACvCqvb,EAAaziM,EAAMwiM,GACnBE,EAAwBtvb,GAAetrB,KAAKk6c,mBAAmBQ,GAQnE,IAPK/xZ,EAAAA,EAAAA,IAAU3oD,KAAK45c,0BAChB55c,KAAK45c,uBAAyB55c,KAAK+4c,mBAMnC/4c,KAAK45c,yBAA2B55c,KAAK+4c,kBAIrC,IAHAyB,EAAgBx6c,KAAK+4c,kBAAoB/4c,KAAK45c,uBAAyB,GAAK,EAC5Ejyc,EAAa8yc,EAAqBz6c,KAAK+4c,kBAAoBO,EAAct5c,KAAK+4c,kBAC9E5kV,EAAWsmV,EAAqBz6c,KAAK45c,uBAAyBN,EAAct5c,KAAK45c,uBAC5E/4c,EAAQ8G,EAAY9G,IAAUszH,EAAUtzH,GAAS25c,GAC9CC,GAAsBz6c,KAAK85c,WAAWpuc,EAAM7K,OAC5CuwY,EAAUl5H,EAAMl4Q,KAAKoa,QAAQ64b,YAAYvnc,EAAM7K,KAC/Cb,KAAKo6c,oBAAoBhpE,GACzBioE,GAAyB,GAIrC,GAAIr3b,IAAchiB,KAAK45c,uBAInB,IAHAY,EAAgBx4b,EAAYhiB,KAAK45c,uBAAyB,GAAK,EAC/Djyc,EAAa8yc,EAAqBz4b,EAAYs3b,EAAct3b,EAC5DmyG,EAAWsmV,EAAqBz6c,KAAK45c,uBAAyBN,EAAct5c,KAAK45c,uBAC5E/4c,EAAQ8G,EAAY9G,IAAUszH,EAAUtzH,GAAS25c,GAC9CC,GAAsBz6c,KAAK85c,WAAWpuc,EAAM7K,OAE5CuwY,EAAUl5H,EADVrqQ,EAAO7N,KAAKoa,QAAQ64b,YAAYvnc,EAAM7K,KAEtCb,KAAKq6c,iBAAiBxsc,EAAMujY,GAC5BioE,GAAyB,GAQrC,OAJKoB,IAAsBz6c,KAAK85c,WAAWxub,IAAkBsvb,IACzD56c,KAAKq6c,iBAAiBK,EAAaC,GACnCtB,GAAyB,GAEtBA,oCAEX,WACIr5c,KAAKs6c,kBAAkB,GAAI,6BAE/B,SAAUO,GAEN,OADA76c,KAAK86c,yBACDD,EACO76c,KAAK+6c,mBAAkB,GAEvB/6c,KAAK+2Q,iBAAiB,IAAI,GAAM,GAAO,8BAGtD,SAAY8jM,GAER,OADA76c,KAAK86c,yBACDD,EACO76c,KAAK+6c,mBAAkB,GAEvB/6c,KAAK+2Q,iBAAiB,IAAI,GAAM,GAAM,oCAGrD,SAAkBi7L,GAEd,IADA,IAAItmc,EAAQ1L,KAAKsrV,mBAAmBunH,mBAAmB7yc,KAAKoa,QAAQorV,cAC3Dz5V,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IAAI7L,EAAOwL,EAAMK,GACjB,GAAI/L,KAAK85c,WAAW55c,GAAO,CACvB,IAAI2qE,EAAW7qE,KAAKoa,QAAQ64b,YAAY/yc,GACpCkxY,EAAUpxY,KAAKoa,QAAQ89P,MAAMrtM,GAC7B98D,EAAa/N,KAAKknW,eAAekqC,GAChCrjY,GAAeikc,GAChBhyc,KAAKq6c,iBAAiBxvY,EAAUumU,GAEhCrjY,GAAcikc,GACdhyc,KAAKo6c,oBAAoBhpE,IAKrC,OADApxY,KAAK0jW,sBACG,IAAIlxI,EAAAA,IAAUpiN,2CAE1B,SAAkBsoc,GACd,OAAO14c,KAAKsrV,mBAAmB8lE,kBAAkBsnD,8CAErD,WACI,OAAO14c,KAAKsrV,mBAAmB0vH,oCApRlBhmT,sDCPrB,KACIimT,6BAA8B,WAC1B,IAAI5vb,EAAarrB,KAAK6kB,OAAO,cACzBq2b,GAAiB,EACjBrtc,EAAO,GA+BX,OA9BI7N,KAAK2mZ,qBAVQ,SAAA94Y,GAAI,OAAItI,MAAMi2E,QAAQ3tE,IAASA,EAAKmoC,OAAM,SAAA91C,GAG/D,OAFmB,IAAM4G,OAAOC,KAAK7G,GAAMI,QACpB,QAASJ,GAAQ,UAAWA,GACRqF,MAAMi2E,QAAQt7E,EAAKwL,UAO1Byvc,CAAmB9vb,KAC/Cxd,EAAOwd,EAAW3hB,QAAO,SAACg/Q,EAAaxoR,GACnC,IAAIwL,EAAQxL,EAAKwL,MAAMxF,KAAI,SAAAk1c,GAUvB,OATKjxP,EAAAA,EAAAA,IAASixP,KACVA,EAAY,CACRz4c,KAAMy4c,GAEVF,GAAiB,GAEf,QAASE,IACXA,EAAUp0c,IAAM9G,EAAK8G,KAElBo0c,KAEX,OAAO1yL,EAAY9sP,OAAOlwB,KAC3B,IACH2f,EAAa,CACTm7B,MAAO,CACH7iC,KAAM,QACN9V,KAAMA,GAEV6c,MAAO,CACHnB,SAAU,MACVovQ,qBAAqB,IAGzBuiL,IACA7vb,EAAWotD,WAAa,SAGzBptD,yNCdX5F,GAASwoM,EAAAA,EAAAA,MAETotP,EAAoB,cAEpBC,EAAmB,SAAAxwY,GAAW,OAAIp9D,EAAAA,EAAAA,GAAEo9D,GAAahxC,GAAG,aACpD09J,EAAU,SAAC13L,EAASwvE,GACpB,IAAIzlE,EAAIua,EACR,GAAKtkB,EAAL,CAGA,IAAI4Y,GAAQ,QAAU7O,EAAKylE,EAAOtO,UAAO,IAAWn3D,OAAK,EAASA,EAAG6O,OAAS,EAC1EI,GAAO,QAAUsL,EAAKkrD,EAAOtO,UAAO,IAAW58C,OAAK,EAASA,EAAGtL,MAAQ,EAC5EhZ,EAAQme,MAAMsK,UAAY,aAAaqT,OAAOljB,EAAM,OAAOkjB,OAAO9iB,EAAK,OACvEhZ,EAAQme,MAAMgnN,WAAahF,EAAAA,QAAAA,IAAS,GAAK,aAAarkM,OAAO0zC,EAAOkwJ,SAAU,OAAO5jM,OAAO0zC,EAAOguJ,UA6BvG,IAAIgiL,EAAWl3W,EAAAA,EAAAA,QAAkB,CAC7BoqC,MAD6B,WAEzBxyE,KAAKuxN,WACLvxN,KAAKu7c,qBAAuBv7c,KAAKw7c,oBAAoB/wc,KAAKzK,MAC1DA,KAAKy7c,sBAAwB,MAEjChpP,mBAN6B,WAOzB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bj2I,OAAO,EACP11E,OAAQ,MACR81c,gBAAiB,WACjBC,iBAAkB,OAClBC,qBAAqB,EACrBr8D,iBAAiB,EACjBs8D,gBAAgB,EAChBp8D,aAAc,KACdq8D,MAAO,KACPC,SAAU,KACVp8D,UAAW,KACXq8D,sBAAuB,KACvB13O,UAAW,CACP3gN,KAAM,QACN67M,SAAU,IACVlC,OAAQ,QAEZhmK,UAAW,KACX+yS,QAAS,KACT4xG,gBAAgB,EAChBC,WAAY,KACZC,gBAAiB,EACjB5wc,OAAQ,EACR6wc,YAAY,EACZC,qBAAsB,KAG9B9gb,MAnC6B,WAoCzBv7B,KAAK6kB,OAAO,CACRo3b,gBAAgB,EAChB5xG,QAAS,KACT/yS,UAAW,KACX4kZ,WAAY,KACZC,gBAAiB,EACjBE,qBAAsB,IAEtBr8c,KAAKs8c,sBACLt8c,KAAKs8c,qBAAqB96c,SAE9BxB,KAAKs8c,qBAAuB,MACvBt8c,KAAKu8c,mBAAqBv8c,KAAKw8c,iBAChCx8c,KAAKw8c,eAAenhc,IAAI,eAAgBrb,KAAKy8c,qBAC7Cz8c,KAAKw8c,eAAiB,OAG9BE,oBAAqB,SAAChxc,EAAO7K,GAAR,OAAkB6K,EAAMjG,MAAM,EAAG5E,GAAOkzB,UAAUnuB,OAAO01c,GAAkB,IAChGzlP,kBAtD6B,SAsDXr1N,GAEd,GADAR,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YACtB,IAASvH,EAAEulC,OAAf,CAGA,IAAIixL,EAAiBh3N,KAAKi3N,oBAC1Bj3N,KAAK28c,oBACL38c,KAAK48c,yBAAyBp8c,GAC9BR,KAAK6kB,OAAO,YAAa7kB,KAAK68c,iBAAiB7lP,IAC/Ch3N,KAAK6kB,OAAO,kBAAmB7kB,KAAK6kB,OAAO,aAE/C+3b,yBAjE6B,SAiEJp8c,GACrB,IAAIowN,EAAc5wN,KAAKw1N,gBAAe9nN,EAAAA,EAAAA,GAAElN,EAAEoG,SACtCgqN,IACA5wN,KAAKy7c,sBAAwB,CACzB37c,QAAS8wN,EACT5pL,WAAY4pL,EAAY5pL,aACxBC,UAAW2pL,EAAY3pL,aAE3B0uL,EAAAA,EAAAA,IAAiB/E,EAAa,SAAU5wN,KAAKu7c,sBAC7C5lP,EAAAA,EAAAA,GAAgB/E,EAAa,SAAU5wN,KAAKu7c,wBAGpDuB,6BA7E6B,WA8ErB98c,KAAKy7c,wBACL9lP,EAAAA,EAAAA,IAAiB31N,KAAKy7c,sBAAsB37c,QAAS,SAAUE,KAAKu7c,sBACpEv7c,KAAKy7c,sBAAwB,OAGrCD,oBAnF6B,SAmFTh7c,GAAG,WACfu8c,EAAuB/8c,KAAKy7c,sBAC5BsB,GACA,CAAC,aAAc,aAAa98c,SAAQ,SAAA+8c,GAChC,GAAIx8c,EAAEoG,OAAOo2c,KAAgBD,EAAqBC,GAAa,CAC3D,IAAIvhU,EAAWj7I,EAAEoG,OAAOo2c,GAAcD,EAAqBC,GAC3D,EAAKC,mBAAmBxhU,GACxB,EAAKyhU,mBACLH,EAAqBC,GAAcx8c,EAAEoG,OAAOo2c,QAK5DjnP,kBAhG6B,SAgGXv1N,GAEd,GADAR,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACtB/H,OAASA,KAAKsyN,wBAGlBtyN,KAAK48c,yBAAyBp8c,GAC9BR,KAAK28c,oBACL38c,KAAK6kB,OAAO,aAAc,IACrB7kB,KAAKu8c,mBAAmB,CACzB,IAAIL,EAAal8c,KAAK6kB,OAAO,cACzBs4b,EAAgBjB,EAAWA,EAAW57c,OAAS,GACnD,GAAI68c,EAAe,CACf,IAAItjc,EAAW7Z,KAAK6Z,WAChBm9M,EAAiBh3N,KAAKi3N,oBACtBo2J,EAAartX,KAAKo9c,yBAClBC,EAAoBhwF,GAAa70J,EAAAA,EAAAA,IAAexB,GAAgB,IAAQsB,EAAAA,EAAAA,IAActB,GAAgB,GACtGsmP,EAAazjc,EAASgG,IAAI,GAAGwtW,EAAa,eAAiB,eAC3DuuE,EAAiB/hb,EAASgG,IAAI,GAAGwtW,EAAa,YAAc,cAC5Di+C,EAAej+C,EAAa,MAAQ,OACpCkwF,EAAoBJ,EAAc7xC,GAClC6R,EAAkBtja,EAAStO,SAAS+/Z,GACpCkyC,EAAWrgC,EAAkBmgC,EAAa1hB,EAAiB2hB,EAC/D,GAAIC,EAAWH,GACPhwF,EAAY,CACZ,IAAI3hX,EAAQ1L,KAAKy9c,YACbC,GAAYhwc,EAAAA,EAAAA,GAAE1N,KAAK08c,oBAAoBhxc,IAC3C1L,KAAKw8c,eAAiBkB,EACtB19c,KAAKy8c,oBAAsBiB,EAAU79b,IAAI,GAAG5B,MAAM0/b,aAClDD,EAAUric,IAAI,eAAgBgic,EAAoBG,GAClD,IAAII,EAAYF,EAAU3zc,QAAQ,gBAC9B8zc,EAAWD,EAAU/vc,KAAK,iBAAmB+vc,EAAU/vc,KAAK,gBAChEgwc,GAAYA,EAASx/b,aAMzC23M,kBArI6B,WAsIzBh2N,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACtB/H,OAASA,KAAKsyN,uBACdtyN,KAAK88c,gCAGb5qP,UA3I6B,WA4IrBlyN,OAASA,KAAK05N,uBACd15N,KAAK6kB,OAAO,WAAY,IAGhCstM,UAhJ6B,WAiJrBnyN,OAASA,KAAK05N,uBACd15N,KAAK6kB,OAAO,UAAW7kB,KAAK6kB,OAAO,eAG3Ci5b,WArJ6B,SAqJlBtjc,GACP,IACIujc,EADkB/9c,KAAK05N,sBACY7/M,WACnC+2M,EAAc5wN,KAAKw1N,eAAeuoP,GACtC,GAAIntP,EAAa,CACb,MA7KZ,SAA+BA,GAC3B,IAAIrlN,EAASqlN,EAAYrlN,SAEd0S,EACP2yM,EAAY,GADZ3yM,MAEAu7B,EAAc7D,WAAW13B,EAAMu7B,cAAgB,EAC/CG,EAAehE,WAAW13B,EAAM07B,eAAiB,EACjDD,EAAa/D,WAAW13B,EAAMy7B,aAAe,EAC7CpoC,EAAQs/M,EAAY,GAAGpxJ,aAAehmB,EAAcG,GACpDpoC,GAASsrI,EAAAA,EAAAA,IAAU+zE,GACnBl4M,EAAOnN,EAAOmN,KAAO8gC,EACrB1gC,EAAMvN,EAAOuN,IAAM4gC,EACvB,MAAO,CACHhhC,KAAMA,EACNqF,MAAOrF,EAAOpH,EACdwH,IAAKA,EACLkF,OAAQlF,EAAMvH,GAkKNysc,CAAsBptP,GAJhBl4M,EADV,EACIA,KACOqF,EAFX,EAEIA,MACKjF,EAHT,EAGIA,IACQkF,EAJZ,EAIIA,OAEAqsV,EAAUrqW,KAAK6kB,OAAO,WACtBq3b,EAAal8c,KAAK6kB,OAAO,cACzBo5b,EAAY,OAAS/B,QAAc,IAAWA,OAAa,EAASA,EAAWt2c,QAAO,SAAA1F,GAAI,OAAIA,EAAKW,QAAUwpW,KAAS,GAC1H,GAAI4zG,QAAa,IAAWA,EAAUnlc,IAElC,OADiB9Y,KAAKo9c,yBAEXtkc,GAAO6M,KAAK+iK,KAAKu1R,EAAUnlc,MAAQ6M,KAAKo1B,MAAMkja,EAAUnlc,MAAQkF,EAEpEtF,GAAQiN,KAAK+iK,KAAKu1R,EAAUvlc,OAASiN,KAAKo1B,MAAMkja,EAAUvlc,OAASqF,EAGlF,OAAO,GAEXq0M,QA7K6B,SA6KrBC,GACJryN,KAAK88c,+BACL,IASQoB,EACAC,EAVJnnP,EAAiBh3N,KAAKi3N,oBACtBjJ,EAAkBhuN,KAAKsyN,sBACvB8rP,EAAoBpwP,EAAgB+G,OAAS/0N,KAAK+0N,KAClDs1I,EAAUrqW,KAAK6kB,OAAO,WAEfrK,EACP63M,EADA73M,MAEA6jc,EAAYr+c,KAAK89c,WAAWtjc,GAChC,GAAI,OAAS6vV,GAAWA,GAAW,GAAKg0G,IAGhCrwP,IAAoBhuN,QACpBk+c,EAAYl+c,KAAKs+c,cAAc9jc,MAE3B2jc,EAAen+c,KAAKuyN,iBAAiB/3M,KAGzC4jc,IACAx0O,EAAAA,EAAAA,IAAc5S,GAEdh3N,KAAK6kB,OAAO,oBACXq5b,GAAal+c,KAAKu+c,UAAUvnP,EAAgBqzI,EAAS8zG,GAEtDnwP,IAAoBhuN,MACpB,OAAOA,KAAKw+c,kBAAkBhkc,GAGtC,OAAOg4M,EAAAA,EAAAA,MAAWpiN,WAEtB6hN,SA5M6B,SA4MpBzxN,GACL,IAAI07c,EAAal8c,KAAK6kB,OAAO,cAC7B,GAAKq3b,EAAL,CAQA,IALA,IAII+B,EAJA5wF,EAAartX,KAAKo9c,yBAClBqB,EAAWpxF,EAAa,MAAQ,OAChCvoS,EAAiBuoS,EAAa7sX,EAAEsnC,MAAQtnC,EAAEonC,MAC1CmqC,EAAa/xE,KAAK6kB,OAAO,cAEpB9Y,EAAImwc,EAAW57c,OAAS,EAAGyL,GAAK,EAAGA,IAAK,CAC7C,IAAI2yc,EAAiBxC,EAAWnwc,EAAI,KAAOmwc,EAAWnwc,GAAG0yc,GAAYvC,EAAWnwc,EAAI,GAAG0yc,IAAa,EACpG,MAAMpxF,GAAct7S,EAAa+S,EAAiB45X,EAAiBA,EAAiB55X,SAAmB,IAAW45X,EAG9G,MAFAT,EAAY/B,EAAWnwc,GAK3Bkyc,IACAj+c,KAAK2+c,2BAA2Bn+c,EAAGy9c,GAC/Bj+c,KAAK6xN,sBAAsB+sP,eAAiB5+c,KAAKu8c,mBACjDv8c,KAAKk9c,sBAIjBX,gBArO6B,WAsOzB,MAAO,aAAev8c,KAAK6kB,OAAO,qBAAuB7kB,KAAK6kB,OAAO,wBAEzEg6b,mBAxO6B,WAyOzB,IAAIC,EAKJ,OAJI9+c,KAAKu8c,oBACLuC,GAAwBpxc,EAAAA,EAAAA,GAAE,SAAS+R,SAASzf,KAAK60N,iBAAiBwmP,IAAoBz5U,aAAa5hI,KAAKsyN,sBAAsB4D,gBAElIl2N,KAAKs8c,qBAAuBwC,EACrBA,GAEXrB,UAhP6B,WAiPzB,IAAIroP,EAAgBp1N,KAAKi1N,oBACzB,OAAOj1N,KAAKk1N,YAAY74M,KAAK+4M,GAAeghC,IAAI,IAAIx6N,OAAO57B,KAAK60N,iBAAiBwmP,KAAqBjlN,IAAI,IAAIx6N,OAAO57B,KAAK60N,iBAzRhH,WAyRgJiF,WAE9JilP,iBApP6B,WAuPzB,OAFsB/+c,KAAKsyN,wBACLtyN,KAAK05N,uBACmB15N,KAAK6kB,OAAO,oBAE9Dm6b,cAzP6B,SAyPfC,EAAcC,EAAuBjD,GAC/C,IAAIL,EAAsB57c,KAAK6kB,OAAO,uBAEtC,SADsBo3b,GAAkBj8c,KAAK++c,oBACpB,IAAME,GAAiBrD,MAG3C57c,KAAKu8c,qBAGF,IAAM2C,GAAyBD,IAAiBC,IAA0BjD,GAAkBgD,IAAiBC,EAAwB,MAEjJC,eApQ6B,WAqQzB,IACInnI,EACAzsU,EACA6zc,EAHAvwc,EAAS,GAITkjE,EAAa/xE,KAAK6kB,OAAO,cACzBwoW,EAAartX,KAAKo9c,yBAClBjgH,EAAen9V,KAAKy9c,YACpB4B,EAAsBliH,EAAav3V,OAAO01c,GAC1CgE,EAAmBD,EAAoB/+c,OACvCi/c,EAAiBv/c,KAAK+2N,uBACtBmoP,EAAwBG,EAAoBl5c,QAAQo5c,EAAe1/b,IAAI,IAC3E,GAAIy/b,EAAkB,CAClB,IAAK,IAAIvzc,EAAI,EAAGA,GAAKuzc,EAAkBvzc,IAAK,CACxC,IAAIyzc,GAA2BnyF,GAAct7S,EAAahmE,IAAMuzc,EAC5DG,EAAyBpyF,GAActhX,IAAMuzc,EAC7Cvzc,EAAIuzc,IAEJ/zc,GADAysU,GAAQtqU,EAAAA,EAAAA,GAAE2xc,EAAoBtzc,KACfR,SACf6zc,GAAY9mP,EAAAA,EAAAA,IAAc0/G,IAE9BnpU,EAAOjO,KAAK,CACRq7c,gBAAgB,EAChBvjc,KAAMnN,EAAOmN,MAAQ8mc,EAA0BJ,EAAY,GAC3Dtmc,IAAKvN,EAAOuN,KAAO2mc,EAAyB5wc,EAAO9C,EAAI,GAAGwF,OAAS,GACnE1Q,MAAOkL,IAAMuzc,EAAmBniH,EAAa78V,OAAS68V,EAAah3V,QAAQ6xU,EAAMn4T,IAAI,IACrFm4T,MAAOA,EACP1mU,OAAOgnN,EAAAA,EAAAA,IAAc0/G,GACrBzmU,QAAQinN,EAAAA,EAAAA,IAAew/G,GACvB9nT,QAASlwB,KAAKg/c,cAAcjzc,EAAGmzc,KAGvC,GAAIl/c,KAAK6kB,OAAO,uBAAwB,CACpC,IAAI66b,EAAS7wc,EACbA,EAAS,GACT,IAAK,IAAI8gH,EAAK,EAAGA,EAAK+vV,EAAOp/c,OAAQqvH,IACjC9gH,EAAOjO,KAAK8+c,EAAO/vV,IACf+vV,EAAO/vV,EAAK,IACZ9gH,EAAOjO,MAAKkI,EAAAA,EAAAA,GAAO,GAAI42c,EAAO/vV,GAAK,CAC/BssV,gBAAgB,EAChBnjc,IAAK6M,KAAKo1B,OAAO2ka,EAAO/vV,GAAI72G,IAAM4mc,EAAO/vV,EAAK,GAAG72G,KAAO,GACxDJ,KAAMiN,KAAKo1B,OAAO2ka,EAAO/vV,GAAIj3G,KAAOgnc,EAAO/vV,EAAK,GAAGj3G,MAAQ,GAC3DwX,QAASlwB,KAAKg/c,cAAcrvV,EAAIuvV,GAAuB,YAMvErwc,EAAOjO,KAAK,CACRq7c,gBAAgB,EAChBp7c,MAAO,EACPqvB,SAAS,IAGjB,OAAOrhB,GAEX8tc,kBA5T6B,SA4TXgD,IACVA,GAAe3/c,KAAK6kB,OAAO,gBAAkB7kB,KAAK6kB,OAAO,gBACzD7kB,KAAK6kB,OAAO,aAAc7kB,KAAKm/c,mBAGvClC,mBAjU6B,SAiUVxhU,GACf,IAAIygU,EAAal8c,KAAK6kB,OAAO,cAC7B,GAAI42H,GAAYygU,IAAel8c,KAAK6kB,OAAO,cAAe,CACtD,IACI+6b,EADa5/c,KAAKo9c,yBACc,MAAQ,OAC5ClB,EAAWj8c,SAAQ,SAAAg+c,GACfA,EAAU2B,IAAqBnkU,OAI3CohU,iBA3U6B,SA2UZziP,GACb,OAAOp6N,KAAKy9c,YAAYt3c,QAAQi0N,EAAav6M,IAAI,KAErDs2M,qBA9U6B,SA8URt8M,GACjB,IAAI2M,EAAOxmB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAErC,OADAye,EAAKxa,MAAMsrD,UAAYt3D,KAAK68c,iBAAiBhjc,GACtC2M,GAEXq5b,mBAnV6B,SAmVVj+c,GACf5B,KAAKs8c,sBAAwBt8c,KAAKs8c,qBAAqBlnN,OAAOxzP,IAElEw7c,uBAtV6B,WAuVzB,MAAO,aAAep9c,KAAK6kB,OAAO,oBAEtCi7b,kBAzV6B,SAyVXz1G,EAAS01G,GACvB,IAAIC,EAAqBhgd,KAAKsyN,wBAA0BtyN,KAAK05N,sBACzDpiK,EAAYt3D,KAAKigd,sBACrB,OAAI,OAAS51G,EACF/yS,EAEJ3xC,KAAKC,IAAIo6b,GAAsB1oZ,GAAa+yS,GAAW01G,EAAiB11G,EAAUA,EAAU,EAAG,IAE1Gs0G,2BAjW6B,SAiWFn+c,EAAGy9c,GAC1B,IAAIjwP,EAAkBhuN,KAAKsyN,sBACvB+3I,EAAUrqW,KAAK8/c,kBAAkB7B,EAAUp9c,MAAOo9c,EAAUhC,gBAC5DxiP,GAAY3wN,EAAAA,EAAAA,GAAO9I,KAAKq3N,cAAc72N,GAAI,CAC1C6pW,QAASA,EACT4xG,eAAgBgC,EAAUhC,iBAE9BgC,EAAU/tb,SAAWlwB,KAAKo3N,WAAW,eAAhBp3N,CAAgCy5N,IACjDA,EAAU1zL,QAAWk4a,EAAU/tb,SASnClwB,KAAK6kB,OAAO,CACRo3b,eAAgBgC,EAAUhC,eAC1B5xG,QAAS4zG,EAAUp9c,QAEvBb,KAAKo3N,WAAW,wBAAhBp3N,EAAyC8I,EAAAA,EAAAA,GAAO9I,KAAKq3N,cAAc72N,GAAI,CACnE0/c,oBAAoB9pP,EAAAA,EAAAA,GAAiBp2N,KAAKs8c,sBAC1CvoP,aAAaqC,EAAAA,EAAAA,GAAiBpI,EAAgBkI,kBAElDl2N,KAAK28c,qBAhBIsB,EAAU/tb,SACXlwB,KAAK6kB,OAAO,CACRo3b,gBAAgB,EAChB5xG,QAAS,QAezB81G,qBA5X6B,SA4XRnoI,EAAO1mU,GAExB,GADAtR,KAAKogd,aAAepgd,KAAKw1N,eAAewiH,GACpCh4U,KAAKogd,aAAc,CACnB,IAAIC,GAAkBvjU,EAAAA,EAAAA,IAAS98I,KAAKogd,cAChCE,EAAetgd,KAAKogd,aAAa70c,SAASmN,KAAOs/T,EAAMzsU,SAASmN,KAChE6nc,GAAgBjoP,EAAAA,EAAAA,IAAc0/G,GAASsoI,EAAeD,EACtDC,EAAe,IACfhvc,GAASgvc,GAETC,EAAgB,IAChBjvc,GAASivc,GAGjB,OAAOjvc,GAEXkvc,wBA3Y6B,SA2YLC,EAAqB31Y,GACzC,IAAImxY,EAAiBj8c,KAAK6kB,OAAO,kBAC7BmzT,GAAQtqU,EAAAA,EAAAA,GAAEo9D,GACVuiT,EAAartX,KAAKo9c,yBAClB9rc,EAAQ,GACRC,EAAS,GACbkvc,EAAoBjqP,YAAYx2N,KAAK60N,iBAAiB,sBAAuBonP,IACzE5uF,GAAc4uF,KACd3qc,GAAQgnN,EAAAA,EAAAA,IAAc0/G,IAErBq1C,IAAc4uF,IACf1qc,GAASinN,EAAAA,EAAAA,IAAew/G,IAE5B1mU,EAAQtR,KAAKmgd,qBAAqBnoI,EAAO1mU,GACzCmvc,EAAoBplc,IAAI,CACpB/J,MAAOA,EACPC,OAAQA,KAGhBgtc,UA9Z6B,SA8ZnBnkP,EAAcv5N,EAAOs9c,GAC3B,IAAIuC,EACAtkH,EAAgBp8V,KAAKy9c,YACrBkD,EAAqBvkH,EAAcv7V,GACnCmtN,EAAkBhuN,KAAKsyN,sBACvB6rP,IACA/jP,EAAeA,EAAa9+I,QAC5B0yI,EAAgB4I,wBAAuB,EAAOwD,IAE7CumP,IACDD,EAAyBtkH,EAAcv7V,EAAQ,IAEnDb,KAAK4gd,cAAcxmP,EAAcumP,EAAoBD,IAEzDE,cA5a6B,SA4afC,EAAa3gd,EAAM4gd,GACxB5gd,GAAS4gd,EAEHA,EACPD,EAAYhrN,aAAYnoP,EAAAA,EAAAA,GAAEozc,IAE1BD,EAAYj/U,cAAal0H,EAAAA,EAAAA,GAAExN,IAJ3B2gd,EAAY5ob,SAASj4B,KAAK6Z,aAOlC49M,kBArb6B,SAqbXj3N,EAAG45N,GACjB,OAAOtxN,EAAAA,EAAAA,GAAO9I,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAAY,CAChDuvD,UAAWt3D,KAAK68c,iBAAiBziP,MAGzC/C,cA1b6B,SA0bf72N,GACV,IAAIwtN,EAAkBhuN,KAAKsyN,sBACvBvE,EAAkB/tN,KAAK05N,sBACvBuiP,EAAiBluP,EAAgBlpM,OAAO,kBAC5C,OAAO/b,EAAAA,EAAAA,GAAO9I,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAAY,CAChDuvD,UAAW02J,EAAgBnpM,OAAO,aAClCwlV,QAASrqW,KAAK8/c,kBAAkB/xP,EAAgBlpM,OAAO,WAAYo3b,GACnEA,eAAgBA,KAGxB//O,eApc6B,SAocd11M,GAAM,WAEPhZ,EACNgZ,EADAhZ,KAEJ,OAAQA,GACJ,IAAK,eACL,IAAK,wBACL,IAAK,QACL,IAAK,WACL,IAAK,YACDxN,KAAK,IAAI47B,OAAOpuB,EAAM,WAAaxN,KAAKw7N,sBAAsBhuN,GAC9D,MACJ,IAAK,kBACL,IAAK,sBACL,IAAK,iBACL,IAAK,mBACL,IAAK,aACL,IAAK,YACL,IAAK,kBACL,IAAK,kBACL,IAAK,SACL,IAAK,uBACL,IAAK,aACD,MACJ,IAAK,YACD,EAAC,GAAO,GAAMvN,SAAQ,SAAA8gd,GAClB,IAAIzpZ,EAAYypZ,EAAev6b,EAAK5kB,MAAQ4kB,EAAKgyF,cACjD,GAAI,OAASlhD,EAAW,CACpB,IAAI0pZ,GAAetzc,EAAAA,EAAAA,GAAE,EAAK+vc,YAAYnmZ,IACtC,EAAKs/J,uBAAuBmqP,EAAcC,OAGlD,MACJ,IAAK,iBACDhhd,KAAKihd,6BAA6Bz6b,GAClC,MACJ,IAAK,UACDxmB,KAAKkhd,sBAAsB16b,GAC3B,MACJ,QACIxmB,KAAKuxN,SAAS/qM,KAG1By6b,6BA/e6B,WAgfrBjhd,KAAKu8c,mBAAqBv8c,KAAKs8c,sBAC/Bt8c,KAAKk9c,oBAGbiE,mBApf6B,SAofVh7b,GACf,IACIi7b,EADAvnc,EAAW7Z,KAAK6Z,WAapB,GAXI,WAAaA,EAASwB,IAAI,YAC1B+lc,EAAkBvnc,EAASgG,IAAI,GAE/BhG,EAASiL,UAAUrK,MAAM,WACrB,GAAI,aAAc/M,EAAAA,EAAAA,GAAE1N,MAAMqb,IAAI,YAE1B,OADA+lc,EAAkBphd,MACX,KAKfohd,EAAiB,CACjB,IAAIC,GAAa3wP,EAAAA,EAAAA,GAAgB0wP,GAC7BE,EAAwBthd,KAAKo9c,yBAC7Bvhc,EAAQylc,EAAwB,MAAQ,OACxClub,EAAMkub,EAAwB,SAAW,QACzCC,EAAaD,EAAwB77b,EAAOujB,YAAcvjB,EAAOwjB,YACrE,GAAI9iB,EAAStK,GAASwlc,EAAWxlc,GAAS0lc,GAAcp7b,EAAStK,GAASwlc,EAAWjub,GAAOmub,EACxF,OAAO,EAGf,OAAO,GAEXL,sBA9gB6B,SA8gBP16b,GAClB,IAAI6jV,EAAU7jV,EAAK5kB,MACnB,GAAI5B,KAAKu8c,kBAAmB,CACxB,IAAIiF,EAAkB,OAASn3G,GAAWA,GAAW,EACrDrqW,KAAK6/c,mBAAmB2B,GACpBA,GACAxhd,KAAKk9c,wBAGTl9c,KAAKyhd,WAAWj7b,EAAKgyF,cAAehyF,EAAK5kB,MAAO4kB,EAAKy0Z,aAG7D58Z,OA1hB6B,WA2hBzB,GAAI,OAASre,KAAK6kB,OAAO,cAAgB,OAAS7kB,KAAK6kB,OAAO,WAA9D,CAGA7kB,KAAK28c,mBAAkB,GACvB38c,KAAK0hd,yBACL,IAAIr3G,EAAUrqW,KAAK6kB,OAAO,WAC1B7kB,KAAKkhd,sBAAsB,CACvBt/c,MAAOyoW,EACP4wE,YAAY,MAGpBymC,uBAtiB6B,WAuiBzB,IAAIpqZ,EAAYt3D,KAAKigd,sBACjBe,GAAetzc,EAAAA,EAAAA,GAAE1N,KAAKy9c,YAAYnmZ,IAClC0pZ,EAAa1gd,SACbN,KAAK62N,gBAAkBmqP,EACvBhhd,KAAK42N,wBAAuB,EAAMoqP,KAG1CW,oBA9iB6B,SA8iBTjpc,GAChB,IAAIk4M,EAAc5wN,KAAKogd,aACvB,GAAIxvP,GAAe5wN,KAAKo9c,yBAA0B,CAC9C,IAAIkD,EAAe1vP,EAAYrlN,SAASmN,KAAOA,EAC3C4nc,EAAe,IACf5nc,GAAQ4nc,GAGhB,OAAO5nc,GAEXwkc,iBAxjB6B,WAyjBzB,IAAIuD,EAAsBzgd,KAAKs8c,sBAAwBt8c,KAAK6+c,qBAC5D,GAAK4B,EAAL,CAGA,IAAI/0c,EAAQ1L,KAAKy9c,YACbpzG,EAAUrqW,KAAK6kB,OAAO,WACtBy8b,EAAwBthd,KAAKo9c,yBAC7BrrY,EAAa/xE,KAAK6kB,OAAO,cACzBo3b,EAAiBj8c,KAAK6kB,OAAO,kBAC7BsB,EAAW,KACX2kD,EAAcp/D,EAAM2+V,GACxB,GAAIv/R,EAAa,CACb,IAAIsvJ,GAAe1sN,EAAAA,EAAAA,GAAEo9D,GACrB3kD,EAAWi0M,EAAa7uN,SACnB+1c,IAAyBvvY,GAAekqY,IACzC91b,EAASzN,OAAQ4/M,EAAAA,EAAAA,IAAc8B,GAAc,QAE9C,CACH,IAAIwnP,EAAyB92Y,EAAc9qE,KAAK08c,oBAAoBhxc,EAAO2+V,GACvEu3G,IACAz7b,GAAWzY,EAAAA,EAAAA,GAAEk0c,GAAwBr2c,SACjC+1c,EACAn7b,EAASrN,MAAO0/M,EAAAA,EAAAA,IAAeopP,GAAwB,GAC/C7vY,IACR5rD,EAASzN,OAAQ4/M,EAAAA,EAAAA,IAAcspP,GAAwB,KAQnE,GAJA5hd,KAAKwgd,wBAAwBC,EAAqB31Y,GAC9C3kD,IAAanmB,KAAKmhd,mBAAmBh7b,KACrCA,EAAW,MAEXA,EAAU,CACV,IAAI07b,EAAyBP,GAAyBj3G,IAAY3+V,EAAMpL,OACpEwhd,GAAyBtpP,EAAAA,EAAAA,IAAeioP,GAC5Ct6b,EAASzN,KAAO1Y,KAAK2hd,oBAAoBx7b,EAASzN,MAClDyN,EAASrN,IAAM+oc,GAA0B17b,EAASrN,KAAOgpc,EAAyB37b,EAASrN,IAAMgpc,EAAyB37b,EAASrN,IACnI9Y,KAAKyxE,MAAMtrD,EAAUs6b,GAEzBA,EAAoBrrN,SAASjvO,KAEjC63X,cAlmB6B,SAkmBftyY,EAAO4xQ,EAAahmN,EAAW+yS,GAEzC,IADA,IAAIpvT,EAAY,GACPlvC,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IAAIoa,EAAW,EACX,OAASkkV,GAAW,OAAS/yS,IAI5B,IAAMA,EACHvrD,GAAKs+V,IACLlkV,EAAWm3P,IAEP,IAAM+sF,EACVt+V,EAAIurD,IACJnxC,GAAYm3P,GAEThmN,EAAY+yS,EACft+V,EAAIurD,GAAavrD,EAAIs+V,IACrBlkV,GAAYm3P,GAEThmN,EAAY+yS,GACft+V,GAAKs+V,GAAWt+V,EAAIurD,IACpBnxC,EAAWm3P,GAGnBriO,EAAUr6C,KAAKulB,IApBX80B,EAAUr6C,KAAKulB,GAsBvB,OAAO80B,GAEX8ma,yBA/nB6B,SA+nBJT,GACrB,IAAI/B,EAAiBv/c,KAAK+2N,uBACtBv+M,EAAOxY,KAAK6kB,OAAO,wBAOvB,OANKrM,IACDA,EAAO8oc,IAAyB9oP,EAAAA,EAAAA,IAAe+mP,IAAkB/mP,EAAAA,EAAAA,IAAe+mP,GAAgB,IAAS,IAAKjnP,EAAAA,EAAAA,IAAcinP,IAAkBjnP,EAAAA,EAAAA,IAAcinP,GAAgB,IAAS,EAChLv/c,KAAK6kB,OAAO,eACb7kB,KAAK6kB,OAAO,uBAAwBrM,IAGrCA,GAEXync,oBA1oB6B,WA2oBzB,MAIIjgd,KAAK6kB,SAHMyyC,EADf,EACIA,UACiB6kZ,EAFrB,EAEIA,gBACQ5wc,EAHZ,EAGIA,OAEJ,OAAO,MAAQ+rD,EAAY,KAAOA,EAAY6kZ,EAAkB5wc,GAEpEk2c,WAlpB6B,SAkpBlBO,EAAa33G,EAAS4wE,GAU7B,IATA,IA9qBYn7a,EA8qBRw3D,EAAYt3D,KAAKigd,sBACjBqB,EAAwBthd,KAAKo9c,yBAC7BwC,EAAmB0B,EAAwB,MAAQ,OACnDhkM,EAAct9Q,KAAK+hd,yBAAyBT,GAC5C51c,EAAQ1L,KAAKy9c,YACbwE,EAAgBjid,KAAKg+Y,cAActyY,EAAO4xQ,EAAahmN,EAAW0qZ,GAClE/ma,EAAYj7C,KAAKg+Y,cAActyY,EAAO4xQ,EAAahmN,EAAW+yS,GAC9D63G,EAAkBlid,KAAK6kB,OAAO,aAC9BktD,EAAa/xE,KAAK6kB,OAAO,cACpB9Y,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IAAI++D,EAAcp/D,EAAMK,GACpBo2c,EAAeF,EAAcl2c,GAC7Boa,EAAW80B,EAAUlvC,GACrB,OAASs+V,GAAW,OAAS/yS,GA3rBzBx3D,EA4rBUgrE,KAxrB1BhrE,EAAQme,MAAMsK,UAAY,GAC1BzoB,EAAQme,MAAMgnN,WAAa,KAwrBRk9O,IAAiBh8b,GAAY80Z,GAAc90Z,IAClDqxK,EAAQ1sH,GAAahiE,EAAAA,EAAAA,GAAO,GAAIo5c,EAAiB,CAC7ClhZ,IAAI,UACC4+Y,GAAoB0B,GAAyBvvY,GAAc5rD,EAAWA,QAM3FywM,uBA3qB6B,SA2qBNh1N,EAAOiY,GAC1B,IAAIm9M,EAAiBn9M,GAAY7Z,KAAK62N,gBACtC72N,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WACrB/H,KAAKu8c,mBACNvlP,GAAkBA,EAAeR,YAAYx2N,KAAK60N,iBAAiB,iBAAkBjzN,IAG7Fy6N,SAlrB6B,WAmrBzBr8N,KAAKu7B,QACLv7B,KAAKuxN,YAET+sP,cAtrB6B,SAsrBfjsP,GACV,IAAI7rM,EAAOxmB,KAAKq3N,cAAchF,GAE9B,OADAryN,KAAKo3N,WAAW,QAAhBp3N,CAAyBwmB,GAClBA,EAAKuf,QAEhBwsL,iBA3rB6B,SA2rBZF,GACb,IAAIrE,EAAkBhuN,KAAKsyN,sBACvB9rM,EAAOxmB,KAAKq3N,cAAchF,GAE9B,OADArE,EAAgBoJ,WAAW,WAA3BpJ,CAAuCxnM,GAChCA,EAAKuf,QAEhBy4a,kBAjsB6B,SAisBXnsP,GACd,IAAI7rM,EAAOxmB,KAAKq3N,cAAchF,GAE9B,OADAryN,KAAKo3N,WAAW,YAAhBp3N,CAA6BwmB,GACtBA,EAAKhW,UAAWgiN,EAAAA,EAAAA,MAAWpiN,cAG1CkQ,EAAAA,EAAAA,SAhvBe,aAgvBag/X,GAC5B,IC9wBA,ED8wBA,0UE1sBI8iE,EAAsB,YAGtBC,EAAmB,SACnBC,EAAyB,sBACzBC,EAA0B,gBAC1BC,EAAiC,uBAEjCC,EAA2B,wBAO3BC,EAASzuF,EAAAA,QAAAA,QAAkB,CAC3B3pC,eAAgB,WAAW,WACnB7+U,EAASzL,KAAKuxN,WACdoxP,EAAa,SAAAvoc,GAAO,OAAI,EAAKykP,MAAMq4G,iBAAiB98V,IACpD23D,EAAa/xE,KAAK6kB,OAAO,cAC7B,OAAO/b,EAAAA,EAAAA,GAAO,GAAI2C,EAAQ,CACtBkyS,UAAW,SAASn9S,GAChB,GAAKR,KAAK4id,qBAAV,CAGA5id,KAAK6id,sBAAsBrid,GAC3BR,KAAK8id,eAAgB,EACrB,IAAIC,EAAe/id,KAAKgjd,cAAgBhjd,KAAKijd,eAAe3mV,OACxDt8H,KAAKgjd,cACLhjd,KAAKkjd,cAAc,QAAQ,GAE3B,IAAMH,EAAazid,SAGvBN,KAAKmjd,qBAAsB,EAC3Bnjd,KAAKojd,kBAAkBL,UAChB/id,KAAKmjd,uBAEhBv4H,QAAS,SAACpqV,EAAGwoH,GAAJ,OAAaxoH,EAAE6c,SAAW,EAAKwhP,MAAQpzP,EAAOm/U,QAAQnqV,KAAK,EAAMD,GAAKmid,EAAW35V,IAC1F+hO,UAAW,SAACvqV,EAAGwoH,GAAJ,OAAaxoH,EAAE6c,SAAW,EAAKwhP,MAAQpzP,EAAOs/U,UAAUtqV,KAAK,EAAMD,GAAKmid,EAAW35V,IAC9F+iB,IAAK,SAASvrI,GACV,GAAKR,KAAKgjd,cAAiBhjd,KAAK4id,qBAAhC,CAGA5id,KAAK6id,sBAAsBrid,GAC3BR,KAAK8id,eAAgB,EACrB,IAAIC,EAAe/id,KAAKgjd,aACxBhjd,KAAKkjd,cAAc,QAAQ,GAC3Bljd,KAAKmjd,qBAAsB,EAC3Bnjd,KAAKojd,kBAAkBL,UAChB/id,KAAKmjd,sBAEhBt3U,MAAO,SAASrrI,EAAG4Z,GACf,IAAIipc,EAAoBrjd,KAAK6+P,OAAS,OAAS7+P,KAAK6+P,MAAMh6O,OAAO,kBAEjE,GADmB7kB,KAAK6kB,OAAO,uBAAyBw+b,EAIpD,OAFA7id,EAAE6G,sBACF,KAAOrH,KAAKywR,gBAAkBzwR,KAAKixc,wBAAwBzwc,IAG3DR,KAAK6kB,OAAO,YACZ7kB,KAAK0rV,sBAAsBlrV,GAC3Bmid,EAAWvoc,GACX5Z,EAAE6G,mBAGVsyV,MAAO,SAASn5V,EAAG4Z,GACf,IAAIyzb,EAAW7tc,KAAK6kB,OAAO,UACvBy+b,EAAgBtjd,KAAK+rc,2BACrB8B,IAAayV,IACbtjd,KAAK0rV,sBAAsBlrV,GAC3Bmid,EAAWvoc,GACX5Z,EAAE6G,mBAGVsjV,UAAW,SAASnqV,GAChB,MAAKR,KAAK4id,sBAAwB5id,KAAK8tC,YAAc9tC,KAAKynY,eAAiB11T,IAAe/xE,KAAKgjd,cAA/F,CAGAxid,EAAE6G,iBACF,IAAIg0I,EAAYtpE,EAAa,OAAS,OACtC/xE,KAAKkjd,cAAc7nU,IAClBr7I,KAAK6kB,OAAO,cAAgB7kB,KAAKujd,iBAAiBloU,KAEvDkvM,WAAY,SAAS/pV,GACjB,GAAKR,KAAK4id,uBAAwB5id,KAAK8tC,cAAc9tC,KAAKynY,eAAkB11T,GAAe/xE,KAAKgjd,cAAhG,CAGAxid,EAAE6G,iBACF,IAAIg0I,EAAYtpE,EAAa,OAAS,OACtC/xE,KAAKkjd,cAAc7nU,IAClBr7I,KAAK6kB,OAAO,cAAgB7kB,KAAKujd,iBAAiBloU,QAI/DwnU,sBAAuB,SAASrid,GAC5BA,EAAE6G,iBACF7G,EAAE4G,kBACFpH,KAAK0rV,sBAAsBlrV,IAE/BstC,SAAU,WACN,OAAO,IAAM9tC,KAAKwyX,YAAYlyX,QAElCkjd,qBAAsB,SAAS3pc,GAC3B7Z,KAAKyjd,gBAAkB5pc,EAAS4F,SAtGP,qBAwG7B+nb,sBAAuB,WACnB,OAAO,GAEXob,mBAAoB,WAChB,IAAIz8b,GAAWogW,EAAAA,EAAAA,GAAMvmX,KAAK63F,UAC1B,OAAO,IAAM1xE,EAAStK,OAAS,IAAMsK,EAASiN,KAElDswb,iCAlG2B,SAkGMz5c,GAC7BjK,KAAK4gV,QAAQ,mBAAoB32U,EAAIjK,KAAK63F,WAE9CqrX,cAAe,SAAS7nU,EAAWsoU,GAC/B,IAAK3jd,KAAKgjd,aAAc,CACpB,IAAIY,EAAc5jd,KAAKijd,eAIvB,OAHAjjd,KAAKgjd,aAAe,SAAW3nU,EAAYuoU,EAAY55Y,QAAU45Y,EAAYtnV,OAC7Et8H,KAAK88V,mBAAkB,EAAM98V,KAAKgjd,mBAClChjd,KAAK0jd,iCAAiC1jd,KAAKgjd,aAAapjc,KAAK,OAGjE,IAAIikc,EAAkB7jd,KAAKgjd,aAAa3nU,GAAW,IAAIz/G,OAAOymb,IAC1DwB,EAAgBvjd,OAAS,GACzBN,KAAK8jd,mBAAmBD,GACxB7jd,KAAK0jd,iCAAiCG,EAAgBjkc,KAAK,SACpD+jc,GAAmB,SAAWtoU,GAAar7I,KAAKynY,iBACvDznY,KAAK+jd,iBACL/jd,KAAK0jd,qCAGbI,mBAAoB,SAASD,GACzB7jd,KAAK88V,mBAAkB,EAAO98V,KAAKgjd,cACnChjd,KAAKgjd,aAAea,EACpB7jd,KAAK88V,mBAAkB,EAAM98V,KAAKgjd,eAEtCe,eAAgB,WACP/jd,KAAKgjd,eAGVhjd,KAAK88V,mBAAkB,EAAO98V,KAAKgjd,cACnChjd,KAAK0jd,0CACE1jd,KAAKgjd,eAEhBgB,kBAAmB,SAASnqc,GACxB,OAAIA,GAAYA,EAASvZ,QAAUuZ,EAAS,KAAO7Z,KAAK+oS,eAAe,GAC5DlvR,EAEJ7Z,KAAKuxN,YAEhB0yP,mBAAoB,WAChB,OAAOjkd,KAAKyjd,iBAEhBS,iBA5I2B,WA6IvB,OAAOlkd,KAAK63F,UAEhB0rX,iBAAkB,SAASloU,GACvB,IAAIr7I,KAAK6kB,OAAO,eAAiBy3M,EAAAA,EAAAA,OAG5Bt8N,KAAKyjd,gBAAV,CAGA,IAAI7nB,EAAiB57b,KAAKmkd,mBAAmB9oU,GAC7Cr7I,KAAKyjd,gBAAgBz8a,WAAW40Z,KAEpCuoB,mBAAoB,SAAS9oU,GACzB,MAAI,UAAYA,GAAa,QAAUA,EAC5Br7I,KAAKokd,mBAAmB/oU,GAE5Br7I,KAAKgjd,aAAehjd,KAAKqkd,uBAAuBhpU,GAAar7I,KAAKokd,mBAAmB,QAEhGA,mBAAoB,SAAS/oU,GACzB,IAAItpE,EAAa/xE,KAAK6kB,OAAO,cAG7B,MAFmB,QAAUw2H,EAAYtpE,GAElBA,EAAa,GADnBA,GAAc,EAAI,IACmB/xE,KAAKyjd,gBAAgB5jc,IAAI,GAAG+rL,aAAc0sB,EAAAA,EAAAA,IAAct4N,KAAKyjd,mBAEvHY,uBAAwB,SAAShpU,GAC7B,IACIipU,EAAe,SAAWjpU,EADbr7I,KAAK6kB,OAAO,cAGnBqgC,EACNllD,KAAKgjd,aAAa78b,WADlBzN,KAEAsuB,EAAahnC,KAAKyjd,gBAAgBz8a,aAOtC,OANIs9a,IACAp/Z,IAAgBozK,EAAAA,EAAAA,IAAct4N,KAAKgjd,cAAc,IAAQ1qP,EAAAA,EAAAA,IAAct4N,KAAKyjd,kBAE5Ea,EAAep/Z,EAAe,IAC9Ble,GAAcke,GAEXle,GAEX2ma,cAAe37O,EAAAA,KACfS,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,GACP2kY,oBAAoB,EACpBg+E,qBAAsB,KACtBC,YAAa,MACbn0D,cAAelzF,EAAAA,EAAAA,OAA2B,oBAC1CsnJ,mBAAmB,EACnB7vb,cAAe,GACfu7X,cAAe,OACfC,wBAAyB,KACzBs0D,sBAAkB,EAClBC,kBAAkB,EAClBC,oBAAqB,KACrBhpa,WAAW,EACXmgS,mBAAmB,KAG3BvpQ,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6kd,eAAiB,GACtB7kd,KAAK8kd,oCAET/mI,aAAc,WACV/9U,KAAKuxN,WACLvxN,KAAK+kd,gCAETA,6BAA8B,WAC1B/kd,KAAKgld,yBAA2Bhld,KAAKw7N,sBAAsB,sBAAuB,CAC9Ewb,cAAe,SAASx2O,GACpBR,KAAKild,0BAA0Bzkd,EAAEgmB,KAAK,KACxC/b,KAAKzK,MACPq3O,kBAAmB,CAAC,WAAY,eAGxC4tO,0BAA2B,SAASz+b,GAChC,IACYqgK,EACR7mL,KAAKwyX,YADLlyX,OAECN,KAAK6kB,OAAO,oBAGb2B,EAAK7jB,KAAOw6T,EAAAA,EAAAA,aAAiC,oBAAjCA,CAAsDt2I,GAFlErgK,EAAK7jB,KAAOw6T,EAAAA,EAAAA,aAAiC,wBAAjCA,CAA0Dt2I,EAAgB7mL,KAAK6kB,OAAO,oBAAsB,IAKhIwqX,sBAAuB,WACnBrvY,KAAKuxN,WACLvxN,KAAK27N,iBAAiBC,oBAAoB,CACtCp7F,IAAK,IAAIm3H,EAAAA,GAAiB,SAACpwN,EAAY15B,GACnC,IAAIq3c,EACAC,GAAcz3c,EAAAA,EAAAA,GAAE,SAAS+R,SA5Od,mBA6Of/R,EAAAA,EAAAA,GAAE,UAAU/K,KAAK,QAAUuid,EAAar3c,EAAKlL,YAAS,IAAWuid,EAAaA,EAAar3c,GAAMoqB,SAASktb,IAC1Gz3c,EAAAA,EAAAA,GAAE,SAAS+R,SAAS+ic,GAAgCvqb,SAASktb,GAC7D59a,EAAWxnB,OAAOolc,KACnB,CAAC,QAASnld,KAAK6kB,OAAO,kCAAmC,CACxDliB,KAAM3C,KAAK26V,oBAIvByqH,qBAAsB,SAAS97a,GACvBA,GACAtpC,KAAK6uV,uBACL7uV,KAAKqyV,oBAELryV,KAAKoyV,iBAAmBpyV,KAAKoyV,gBAAgB5wV,gBACtCxB,KAAKoyV,kBAGpBvD,qBAAsB,WACb7uV,KAAK6kB,OAAO,uBAGjB7kB,KAAKoyV,iBAAkB1kV,EAAAA,EAAAA,GAAE,YAAYkS,KAAK,CACtCylc,SAAU,WACV,aAAc,mBACfhqc,IAAI,UAAW,QAAQ4c,SAASj4B,KAAK6Z,cAE5Cw4U,gBAAiB,WACb,GAAKryV,KAAK6kB,OAAO,qBAAjB,CAKA,IAFA,IAAIjjB,EAAQ5B,KAAKwyX,YACb9sP,EAAW,GACN35H,EAAI,EAAG2rD,EAAI91D,EAAMtB,OAAQyL,EAAI2rD,EAAG3rD,IAAK,CAC1C,IAAIu5c,EAAiBtld,KAAKujY,uBAAuB3hY,EAAMmK,IACvD25H,EAAS9kI,MAAK8M,EAAAA,EAAAA,GAAE,YAAYqW,IAAIuhc,EAAiBtld,KAAK26V,eAAe/4V,EAAMmK,IAAMnK,EAAMmK,IAAI6T,KAAK,WAAY,aAEhH5f,KAAKsyV,oBAAoB7nR,QAAQ1qD,OAAO2lH,KAE5C+kH,YAAa,WACTzqP,KAAKuld,mBAAoB73c,EAAAA,EAAAA,KACzB,IAAI83c,GAAoBxld,KAAK6kB,OAAO,aACpC7kB,KAAK6Z,WAAW4F,SA/RL,aA+R4B+2M,YAzRhB,0BAyRwDx2N,KAAK6kB,OAAO,kBAAoB7kB,KAAK6kB,OAAO,uBAAuB2xM,YAAYisP,EAA0B+C,GACxLxld,KAAK4gV,QAAQ,CACTpuM,KAAM,QACNi3Q,gBAAiB,UAClBzpZ,KAAK6Z,YACR7Z,KAAKyld,mBACLzld,KAAKuxN,YAETm0P,eAzR2B,SAyRZC,EAAUC,EAAO3hT,GAC5B,IAAK0hT,EACD,OAAOC,EAEX,GAAI3hT,EAAc,CACd,GAAI0hT,IAAaC,EACb,OAEJ,OAAOD,EAASl4c,MAAM,KAAK7H,QAAO,SAAAqE,GAAE,OAAIA,IAAO27c,KAAO30c,KAAK,KAE/D,MAAO,GAAG2qB,OAAO+pb,EAAU,KAAK/pb,OAAOgqb,IAE3CC,mBArS2B,SAqSR57c,EAAIg6J,GAEnB,IADwBh6J,EAEpBjK,KAAK4gV,QAAQ,kBAAc,EAAQ5gV,KAAK6Z,gBAD5C,CAIA,IAAIisc,EAAU9ld,KAAK6Z,WAAW+F,KAAK,mBAC/Bmmc,EAAa/ld,KAAK0ld,eAAeI,EAAS77c,EAAIg6J,GAClDjkK,KAAK4gV,QAAQ,aAAcmlI,EAAY/ld,KAAK6Z,cAEhDiiN,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAKgmd,yBACLhmd,KAAKimd,0BACLjmd,KAAKujd,iBAAiB,UAE1BkC,iBAAkB,WACdzld,KAAKkmd,aAAelmd,KAAKi8N,qBAAqB,gBAElD22J,aAAc,WACV,IAAIuzF,IAA0Bx9Z,EAAAA,EAAAA,IAAU3oD,KAAK6kB,OAAO,kBACpD7kB,KAAK6Z,WAAW28M,YA9TkB,6BA8T+B2vP,GAAwB3vP,YA7TxD,6BA6TyG2vP,GAC1Inmd,KAAKuxN,YAETy0P,uBAAwB,WACpB,IAAII,EAAkBpmd,KAAK6lP,cAAc7lP,KAAKqmd,kBAAkB57c,KAAKzK,OACjEiqC,GAAYmkL,EAAAA,EAAAA,cAAamoH,EAAAA,EAAY,qBACzC5gH,EAAAA,EAAAA,IAAiB31N,KAAKyjd,gBAAiBx5a,GACvC0rL,EAAAA,EAAAA,GAAgB31N,KAAKyjd,gBAAiBx5a,EAAW,IAAIrO,OAAO4mb,IAAiC,SAAAhoc,GACzF4rc,EAAgB,CACZ5rc,MAAOA,QAInByrc,wBAAyB,WACrB,IAAIK,GAAkBl4P,EAAAA,EAAAA,cAAa,eAAgBpuN,KAAK+0N,MACpDl7M,EAAW7Z,KAAK6Z,WAChB0sc,EAAcvmd,KAAK6kB,OAAO,aAC9B8wM,EAAAA,EAAAA,IAAiB97M,EAAUysc,GACvB,YAAcn+O,EAAAA,QAAAA,OAAeC,WAI7Bm+O,GAGJ5wP,EAAAA,EAAAA,GAAgB97M,EAAUysc,EAAiBtmd,KAAKwmd,+BAA+B/7c,KAAKzK,OANhFA,KAAKyjd,iBAAmBzjd,KAAKyjd,gBAAgBpoc,IAAI,YAAakrc,EAAc,GAAK,SAQzFC,+BAAgC,SAAShmd,GACrC,IAAIwmC,EAAahnC,KAAKyjd,gBAAgBz8a,aAClChqB,GAxV8B,GAwVtBxc,EAAEwc,MACd,KAAKyiS,EAAAA,EAAAA,qBAAoBj/S,KAAMimd,EAAAA,EAAAA,GAAYzmd,KAAKyjd,gBAAiBzmc,GAAO,GAEpE,OADAhd,KAAKyjd,gBAAgBz8a,WAAWA,EAAahqB,IACtC,GAGfwjU,cAAe,WAAW,WACtBxgV,KAAKuxN,WACL,IAAI/4L,EAAQx4B,KAAK63F,SACbkiJ,GAAY3rB,EAAAA,EAAAA,cAAa,UAAWpuN,KAAK+0N,MAC7CY,EAAAA,EAAAA,GAAgBn9L,EAAOuhN,GAAW,SAAAv5O,GAC9B,IAAIgoS,GAAUC,EAAAA,EAAAA,kBAAiBjoS,IAC1B,EAAKkmd,cAAcl+K,IAAY,EAAKi/F,eACrC,EAAKs8E,qBAIjB/a,mBAAoB,WAChB,OAAOhpc,KAAKuxN,WAALvxN,4BAEXuwW,aAAc,WACVvwW,KAAKuxN,WACLvxN,KAAK2md,kCAETA,+BAAgC,WAAW,WACnC18a,GAAYmkL,EAAAA,EAAAA,cAAa,YAAa,YAC1CuH,EAAAA,EAAAA,IAAiB31N,KAAK2mY,gBAAiB18V,GACvC0rL,EAAAA,EAAAA,GAAgB31N,KAAK2mY,gBAAiB18V,GAAW,SAAAzpC,GACzCA,EAAEoG,SAAW,EAAKixF,SAAS,IAAM,EAAKg1W,cACtCrsc,EAAE6G,qBAId0nc,sBAAuB,WACnB,OAAO/uc,KAAK4md,sBAEhBxd,gBAAiB,WACb,OAAO3uO,EAAAA,EAAAA,OAEX21O,gBAAiB,WACbpwc,KAAK63F,SAAS9zE,IAAI,IAClB/jB,KAAKkpY,+BACLlpY,KAAK6kB,OAAO,OAAQ,KAExB4uU,gBAAiB,SAASjzV,GACjBR,KAAKqja,yBAAyB7ia,IAC/BR,KAAKujd,iBAAiB,OAE1Bvjd,KAAKuxN,SAAS/wN,IAElBy8X,kBAAmB,WAEf,OADAj9X,KAAK6kB,OAAO,eAAgB7kB,KAAKywR,gBAC1BzwR,KAAKuxN,YAEhBm+O,kBAAmB,SAASM,GACnBA,GACDhwc,KAAKowc,mBAGb18G,iBAAkB,SAASlzV,GAClBR,KAAKqja,yBAAyB7ia,KAC/BR,KAAK+jd,iBACL/jd,KAAKujd,iBAAiB,UAE1Bvjd,KAAKuxN,SAAS/wN,IAElBwtW,sBAAuB,WACnB,OAAOhuW,KAAK6kB,OAAO,yBAA2B7kB,KAAK6+P,MAAMkqC,eAAiB/oS,KAAKuxN,YAEnFuzP,iCAAkC,WAC9B9kd,KAAK6md,4BAA8B7md,KAAKw7N,sBAAsB,4BAElE+uO,YAAa,WAAW,WACpBvqc,KAAKuxN,WACLvxN,KAAK8md,2BACD9md,KAAK6kB,OAAO,2BACZ7kB,KAAK6+P,MAAMuwG,mBAAmB,OAAO,SAAA5uW,GAAC,OAAI,EAAKwjY,wBAAwBxjY,MACvER,KAAK6+P,MAAMuwG,mBAAmB,UAAU,SAAA5uW,GAAC,OAAI,EAAK0rY,wBAAwB1rY,QAGlFiqc,kBAAmB,WACf,MAAO,eAAiBzqc,KAAK6kB,OAAO,mBAExC8lb,YAAa,WAAW,WAChBruP,EAAgBt8M,KAAK6kB,OAAO,yBAA2B,MAAQ,WACnE,OAAO/b,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BjV,cAAeA,EACf+zM,cAAerwZ,KAAK6kB,OAAO,iBAC3BurY,wBAAyB,SAAAppK,GACrB,IACWplP,EACPolP,EADAplP,MAEJ,EAAKild,4BAA4B,CAC7Bjld,MAAOA,KAGfuuZ,cAAenwZ,KAAK6kB,OAAO,iBAC3B+P,cAAe50B,KAAK6kd,eACpB5qH,qBAAsB,QAG9B2sH,mBAAoB,WAAW,WACvB9pW,EAAI,IAAI01G,EAAAA,GAOZ,OANAxyN,KAAKwjd,qBAAqBxjd,KAAK0wW,4BAC/B1wW,KAAK+md,mBACL/md,KAAKgnd,cAAc5tb,MAAK,WACpB,EAAK01U,QAAU,EAAKA,OAAO+9E,kBAC3B/vU,EAAE1sG,aACH0wB,KAAKg8E,EAAEpxE,QACHoxE,EAAEtsG,WAEb8lX,sBAAuB,SAAS91X,IAC3BR,KAAK6kB,OAAO,0BAA4B7kB,KAAKowc,kBAC1C,eAAiBpwc,KAAK6kB,OAAO,oBAGjC7kB,KAAKuxN,SAAS/wN,GACdR,KAAK0rV,2BAAsB,KAE/B+jH,mBAAoB,WAChB,IAAIwX,EAAoBjnd,KAAKuxN,WAE7B,OAD4BvxN,KAAK6kB,OAAO,0BACPoic,GAErCF,iBAAkB,WACd,IAAIhvW,EAAS/3G,KAAK63F,SACdj2F,EAAQm2G,EAAOh0F,MACfmjc,GAAe58P,EAAAA,EAAAA,IAAS1oN,IAAUA,EAClC0P,EAAQ,GACRkH,EAAO,GACP2uc,EAAcnnd,KAAK6kB,OAAO,kBAAoB7kB,KAAK6kB,OAAO,qBAC9D,GAAIqic,GAAgBC,EAAa,CAC7B,IAAIC,GAAsBp3M,EAAAA,EAAAA,IAA4Bj4J,EAAQn2G,EAAO,CACjEsuQ,iBAAiB,IAErBk3M,EAAoBvxN,YAAY99I,GAChCzmG,GAAQgnN,EAAAA,EAAAA,IAAc8uP,GAAuB,EAC7CA,EAAoB5ld,cACZI,IACR4W,EAAO,GAEXu/F,EAAO18F,IAAI,QAAS/J,GACpBymG,EAAOn4F,KAAK,OAAQpH,IAExB84b,yBAA0B,WACtBtxc,KAAKuxN,WACLvxN,KAAKqnd,uBAET70F,UAAW,WACP,OAAOxyX,KAAK6kB,OAAO,UAAY,IAEnCyic,kBAAmB,WACf,IAAI1tc,EAAS5Z,KAAKwyX,YACdkyF,EAAmB1kd,KAAK6kB,OAAO,oBACnC,OAAO8jC,EAAAA,EAAAA,IAAU+7Z,IAAqB9qc,EAAOtZ,OAASokd,GAE1D6C,gBAAiB,SAASxvW,GACtB,IAAIyvW,GAAO95c,EAAAA,EAAAA,GAAE,SAAS+R,SAAS4ic,GAAkB5ic,SAAS6ic,GACtD97b,EAAO,CACPihc,iBAAiBrxP,EAAAA,EAAAA,GAAiBoxP,GAClC5yb,cAAe50B,KAAK6kB,OAAO,kBAG/B,OADA7kB,KAAKgld,yBAAyBx+b,IAC1BA,EAAKuf,SAGTyhb,EAAK35c,KAAKu0c,EAAqB57b,EAAK7jB,MACpC6kd,EAAK5lV,aAAa7pB,GAClB/3G,KAAKkmd,aAAa3mc,OAAO,CACrBvT,MAAOwa,EAAK7jB,KACZmd,WAAWs2M,EAAAA,EAAAA,GAAiBoxP,KAEzBA,IAEXE,WAAY,SAASvwZ,GACjB,IAAI4gN,EAAmB/3Q,KAAKk7R,gBAAgBt1R,SACxC6xQ,EAAatgN,EAAQ2gN,kBAAkB93Q,KAAK6kB,OAAO,aAAckzP,GACjE4vM,EAAoBtV,UAAU/2b,KAAKC,UAAUk8P,IAAan3Q,OAC1Dikd,EAAuBvkd,KAAK6kB,OAAO,wBACvC,GAAI8ic,GAAqBpD,EACrB,OAAO9sM,EAEXx1C,EAAAA,EAAAA,IAAW,QAASsiP,IAExBqD,kBAAmB,SAAShuc,GAAQ,IAC5Biuc,EAAuBre,EADK,OAEhC,QAAUqe,EAAwB7nd,KAAK8nd,iCAA8B,IAAWD,GAAiCA,EAAsBn8a,SACvI,IAAIyrB,EAAU,IAAI4wZ,EAAAA,EAAcnuc,GAC5Bouc,EAAoB,QAAUxe,EAAcxpc,KAAK6+P,aAAU,IAAW2qM,OAAc,EAASA,EAAY3kb,OAAO,iBAChHojc,IAAsBD,GAAqBhod,KAAK6+P,MAAMq8B,gBAAgBhJ,WACtEt9P,EAAgBozb,GAAqBhod,KAAK6kB,OAAO,iBACjDqjc,EAAuB/wZ,EAAQ+/M,eAAel3Q,KAAK6jY,cACnD0uE,EAAgB39a,EAAchvB,OAAOsid,GACrCC,EAA6B5V,EAAcjyc,SAAWsZ,EAAOtZ,OAC7Dw8G,EAAI,IAAI01G,EAAAA,GACRyoE,EAAiBj7R,KAAKk7R,gBAC1B,GAAMl7R,KAAKood,uBAAwBH,IAAsBE,EAElD,CACH,MAIIltL,EAAexJ,cAHI8zE,EADvB,EACIA,kBACQ5tK,EAFZ,EAEIA,OACQ7pL,EAHZ,EAGIA,OAEAlI,EAAS5F,KAAK0nd,WAAWvwZ,GAmB7B,OAlBA8jO,EAAe3B,cAAc,CACzB1zR,OAAQA,EACR2/V,kBAAmBA,EACnB5tK,OAAQA,EACR7pL,OAAQA,IACTsrB,MAAK,SAACvrB,EAAMugR,GAEX,GADA,EAAKg6L,sBAAuB,EACxB,EAAKvjO,UACL/nI,EAAEpxE,aADN,CAIA,IACUhgC,GACNuoR,EAAAA,EAAAA,IAAoBpmR,EAAMugR,GAD1BvgR,KAEAw6c,EAAcptL,EAAevB,iBAAiBhuR,GAClDoxG,EAAE1sG,QAAQi4c,EAAYzid,OAAOsid,QAC9Bpnb,KAAKg8E,EAAEpxE,QACV1rC,KAAK8nd,0BAA4BhrW,EAC1BA,EAAEtsG,UA1BT,OAAOssG,EAAE1sG,QAAQmic,GAAe/hc,WA6BxC83c,gBAAiB,SAAS1uc,EAAQ24b,GAAe,WACzC7mc,EAAQ,GACRi0C,EAAQ,GACR4oa,EAAuB,SAAWvod,KAAKwvY,mBACvCg5E,EAAiB,GACrBjW,EAActyc,SAAQ,SAAAwod,GAClB,IAAIC,EAAoBH,EAAuBjtc,KAAKC,UAAUktc,GAAgB,EAAK5kF,aAAa4kF,GAChGD,EAAeE,GAAqBD,KAExC,IAAIE,EAAmB,GACvB/uc,EAAO3Z,SAAQ,SAAC2B,EAAOf,GACnB,IAAIk8G,EAAcyrW,EAAeD,EAAuBjtc,KAAKC,UAAU3Z,GAASA,GAChF,GAAI2md,KAAyB5/Z,EAAAA,EAAAA,IAAUo0D,GACnC4rW,EAAiB/nd,KAAK,EAAK+iY,UAAU/hY,EAAO+9C,GAAOye,QAAO,SAAAl+D,GACtD,IAAI2F,EAAU,EAAK+id,eAAel9c,EAAOxL,EAAM0B,EAAOf,GACtD6K,EAAM6D,OAAO1O,EAAO,EAAGgF,WAExB,CACH,IAAIA,EAAU,EAAK+id,eAAel9c,EAAOqxG,EAAan7G,EAAOf,GAC7D6K,EAAM6D,OAAO1O,EAAO,EAAGgF,OAG/B,IAAIi3G,EAAI,IAAI01G,EAAAA,GAIZ,OAHAiI,EAAAA,GAAAA,MAAWz6N,KAAM2od,GAAkBvqZ,QAAQ,WACvC0+C,EAAE1sG,QAAQ1E,MAEPoxG,EAAEtsG,WAEbo4c,eAAgB,SAASl9c,EAAOxL,EAAM0B,EAAOgxK,GACzC,IAAIjqH,EAAAA,EAAAA,IAAUzoD,GAEV,OADAF,KAAK6kd,eAAejkd,KAAKV,GAClBA,EAEP,IAAIkN,EAAepN,KAAK6kB,OAAO,gBAE/B,OADiB7kB,KAAK6jY,aAAaz2X,KAAkBxL,EAAQwL,EAAexL,GAIpFind,eAAgB,WACZ,OAAO7od,KAAK6kB,OAAO,aAAe7kB,KAAKk7R,gBAAgBxwQ,SAE3Do+b,kBAAmB,SAASlvc,GACxB,IAAI6wQ,EAAc,GAOlB,OANA7wQ,EAAO3Z,QAAQ,SAAS2B,GACpB,IAAI1B,EAAOF,KAAKspc,kBAAkB1nc,IAC9B+mD,EAAAA,EAAAA,IAAUzoD,IACVuqR,EAAY7pR,KAAKV,IAEvBuK,KAAKzK,OACAyqR,GAEXs+L,yBAA0B,SAASnvc,GAAQ,WACnCgb,EAAgB,IAAI49L,EAAAA,GAexB,OAdIxyN,KAAKgpd,kCACLhpd,KAAKk7R,gBAAgBn1P,OAAO/lC,KAAKgpd,iCAAiC/5L,aAEjEjvR,KAAKk7R,gBAAgBxvR,QAAQpL,OAS9Bs0B,EAAcxkB,QAAQpQ,KAAK8od,kBAAkBlvc,IAR7C5Z,KAAKgpd,iCAAmChpd,KAAKk7R,gBAAgBtuR,OAAOwsB,MAAK,WACrExE,EAAcxkB,QAAQ,EAAK04c,kBAAkBlvc,OAC9CknB,MAAK,WACJlM,EAAcxkB,QAAQ,OACvBguD,QAAO,WACN,EAAK4qZ,sCAAmC,KAKzCp0b,EAAcpkB,WAEzBy4c,cAAe,WAAW,WAClBrvc,EAAS5Z,KAAKwyX,YACd02F,EAAU,IAAI12P,EAAAA,GASlB,OARAxyN,KAAK6kd,eAAiB,IACK7kd,KAAK6od,iBAAmB7od,KAAK+od,yBAAyBnvc,GAAU5Z,KAAK4nd,kBAAkBhuc,IAC7Fwf,MAAK,SAAAm5a,GACV,EAAK+V,gBAAgB1uc,EAAQ24b,GACnCn0Y,QAAQ,SAASvwD,GACnBq7c,EAAQ94c,QAAQvC,SAErBizB,KAAKoob,EAAQx9a,OAAOjhC,KAAKzK,OACrBkpd,EAAQ14c,WAEnBw2c,YAAa,WAAW,WAChBlqW,EAAI,IAAI01G,EAAAA,GACR22P,GAAkB,EAmBtB,OAlBInpd,KAAKopd,yBAAyBppd,KAAKqpd,mBACnCrpd,KAAK6kd,eAAiB7kd,KAAKspd,mBAAmBtpd,KAAKqpd,iBAC/Crpd,KAAK6kd,eAAevkd,SAAWN,KAAKqpd,gBAAgB/od,SACpDN,KAAKupd,gBAAgBvpd,KAAK6kd,gBAC1BsE,GAAkB,EAClBrsW,EAAE1sG,YAGL+4c,GACDnpd,KAAKipd,gBAAgB7vb,MAAK,SAAA1tB,GAClB,EAAKm5O,UACL/nI,EAAEpxE,UAGN,EAAK69a,gBAAgB79c,GACrBoxG,EAAE1sG,cACH0wB,KAAKg8E,EAAEpxE,QAEPoxE,EAAEtsG,WAEb+4c,gBAAiB,SAAS79c,GACtB1L,KAAKwpd,gBAAgB99c,GACrB1L,KAAKypd,oBACAzpd,KAAKmjd,qBACNnjd,KAAK+jd,kBAGbqF,yBAA0B,SAASxvc,GAC/B,OAAOA,GAAU5Z,KAAKk7R,gBAAgBhJ,YAAct4Q,EAAOtZ,QAAUN,KAAKorW,iBAAiB9qW,QAE/Fgpd,mBAAoB,SAAS1vc,GACzB,IAAIgb,EAAgB50B,KAAK0pd,0BAA0B9vc,GAEnD,GAD2B,IAAMgb,EAAct0B,QAAUsZ,EAAOtZ,OAAS,GAAKs0B,EAAct0B,OAASsZ,EAAOtZ,OAClF,CACtB,IAAIklW,EAAaxlW,KAAKorW,iBACtBx2U,EAAgB50B,KAAK2pd,qBAAqBnkH,EAAY5rV,GAE1D,OAAOgb,GAEX80b,0BAA2B,SAAS9vc,GAChC,IAAIgwc,EACA5B,EAAoB,QAAU4B,EAAe5pd,KAAK6+P,aAAU,IAAW+qN,OAAe,EAASA,EAAa/kc,OAAO,iBACnH+P,EAAgB,GAIpB,OAHIhb,EAAOtZ,UAAY,OAAS0nd,QAAqB,IAAWA,OAAoB,EAASA,EAAkB1nd,UAC3Gs0B,EAAgB50B,KAAK2pd,qBAAqB3B,EAAmBpuc,IAE1Dgb,GAEX+0b,qBAAsB,SAASnkH,EAAY5rV,GAAQ,WAe/C,OAdoB4rV,EAAW5/V,QAAO,SAAAikd,GAElC,IADA,IAAInvY,EACK3uE,EAAI,EAAGA,EAAI6N,EAAOtZ,OAAQyL,IAE/B,GADA2uE,EAAe9gE,EAAO7N,IAClBo+M,EAAAA,EAAAA,IAASzvI,IACT,GAAI,EAAKkpT,eAAeimF,EAAUnvY,GAC9B,OAAO,OAER,GAAI,EAAKkpT,eAAe,EAAKC,aAAagmF,GAAWnvY,GACxD,OAAO,EAGf,OAAO,IACR16E,OAGPooY,gBAAiB,WACbpoY,KAAK8pd,cAAc15c,UACnBpQ,KAAKuxN,WACL,IAAIw4P,EAAgB/pd,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAptBd,kCAqtB/B57B,KAAKwjd,qBAAqBuG,GAC1B/pd,KAAKgmd,0BAETwD,gBAAiB,SAAS99c,GAAO,IACzBs+c,EADyB,OAE7B,QAAUA,EAAsBhqd,KAAK8pd,qBAAkB,IAAWE,GAA+BA,EAAoBt+a,SACrH1rC,KAAK8pd,cAAgB,IAAIt3P,EAAAA,GACzBxyN,KAAK4yX,eACL5yX,KAAK6kB,OAAO,gBAAiB7kB,KAAK6kd,eAAep/c,SACjDzF,KAAKiqd,aACDjqd,KAAK63F,SAASv3F,OAAS,GACvBN,KAAK8pd,cAAc15c,WAEvBqqN,EAAAA,EAAAA,IAAKz6N,KAAK8pd,eAAe1wb,MAAK,WAC1B,EAAK8wb,oBAAoBx+c,OAGjCw+c,oBApuB2B,SAouBPx+c,GAAO,WACnBy+c,EAAYnqd,KAAKsnd,qBAAuBtnd,KAAKund,gBAAgBvnd,KAAK63F,UAClE8sX,EAAmB3kd,KAAK6kB,OAAO,oBAC/B6/b,EAAmB1kd,KAAK6kB,OAAO,oBACnCnZ,EAAMzL,SAAQ,SAACC,EAAMW,GACjB,GAAIspd,GAAaxF,GAAoBwF,IAAcxF,GAAoB9jd,EAAQ6jd,IAAqB,EAChG,OAAO,EAEX,EAAK0F,WAAWlqd,EAAMiqd,GAAa,EAAKtyX,aAExC73F,KAAK6sc,cACL7sc,KAAKujd,iBAAiB,OAE1Bvjd,KAAKqqd,uBAETJ,WAAY,WACR,GAAIjqd,KAAKsnd,oBACLtnd,KAAKijd,eAAezhd,aACjB,CACH,IAAI8od,EAAQtqd,KAAKijd,eACbrpc,EAAS5Z,KAAKwyX,aAClB/3W,EAAAA,EAAAA,IAAK6vc,GAAQ,SAAS5vc,EAAG8lH,GACrB,IAAIgnV,GAAO95c,EAAAA,EAAAA,GAAE8yH,GACT0oV,EAAU1B,EAAK35c,KAAKu0c,GAClB,OAASxoc,QAAU,IAAWA,GAAUA,EAAOkiH,SAASotV,IAC1D1B,EAAKhmd,YAIjBxB,KAAK6ld,sBAET4D,kBAAmB,WACf,IAAIt0a,IAAYn1C,KAAKwyX,YAAYlyX,QAAUN,KAAK6kd,eAAevkd,QAAUN,KAAKywR,gBAC9EzwR,KAAKuqd,iBAAiBp1a,GACtBn1C,KAAKymB,sBAETA,mBAAoB,WAChBzmB,KAAK+md,oBAETsD,oBAAqB,WACjBrqd,KAAKuld,kBAAoBvld,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOymb,KAE7DY,aAAc,WACV,OAAOjjd,KAAKuld,mBAEhBiF,kBAAmB,SAAStqd,EAAMsnd,GAC9Bxnd,KAAKkmd,aAAa3mc,OAAO,CACrBvT,MAAO9L,EACP4f,WAAWs2M,EAAAA,EAAAA,GAAiBoxP,MAGpC4C,WAAY,SAASlqd,EAAM63G,GACvB,IAAIn2G,EAAQ5B,KAAK6jY,aAAa3jY,GAC9B,IAAKyoD,EAAAA,EAAAA,IAAU/mD,GAAf,CAGA,IAAI4ld,EAAOxnd,KAAKyqd,QAAQ7od,GACpBmjB,EAAe/kB,KAAK26V,eAAez6V,GACnCgtD,EAAYltD,KAAKkM,cAAchM,EAAM6kB,GACzC,GAAIyic,GACI7+Z,EAAAA,EAAAA,IAAU5jC,KACVyic,EAAK/8Y,QACLzqE,KAAKwqd,kBAAkBt9Z,EAAWs6Z,IAEtCA,EAAK3vb,YAAY0qb,GACjBvid,KAAK6ld,mBAAmB2B,EAAK5nc,KAAK,WAC/B,CACH,IAAI8qc,EAAQ,MAAM9ub,OAAO,IAAIu1N,EAAAA,GAC7Bq2N,EAAOxnd,KAAK2qd,WAAW/od,EAAOm2G,EAAQ2yW,IAClC/ha,EAAAA,EAAAA,IAAUzoD,GACVF,KAAKwqd,kBAAkBt9Z,EAAWs6Z,IAElCA,EAAK/nc,SAAS8ic,GACdvid,KAAKwqd,kBAAkB5od,EAAO4ld,IAElCxnd,KAAK6ld,mBAAmB6E,MAGhCx+c,cAAe,SAAShM,EAAM6kB,GAC1B,OAAIolM,EAAAA,EAAAA,IAASjqN,KAASyoD,EAAAA,EAAAA,IAAU5jC,GACrB7kB,GAEAs/P,EAAAA,EAAAA,eAAcz6O,EAAc,KAG3C0lc,QAAS,SAAS7od,GAId,IAHA,IAAI0od,EAAQtqd,KAAKijd,eACb2H,EAAaN,EAAMhqd,OACnBuO,GAAS,EACJ9C,EAAI,EAAGA,EAAI6+c,EAAY7+c,IAAK,CACjC,IAAIy7c,EAAO8C,EAAMv+c,GACbm9c,GAAU9+O,EAAAA,EAAAA,IAAYo9O,EAAMpF,GAChC,GAAIxgd,IAAUsnd,IAAW90N,EAAAA,EAAAA,cAAaxyP,EAAOsnd,GAAU,CACnDr6c,GAASnB,EAAAA,EAAAA,GAAE85c,GACX,OAGR,OAAO34c,GAEX87c,WAAY,SAAS/od,EAAOm2G,EAAQ2yW,GAChC,OAAOh9c,EAAAA,EAAAA,GAAE,SAASkS,KAAK,KAAM8qc,GAAOjrc,SAAS4ic,GAAkBx0c,KAAKu0c,EAAqBxgd,GAAOggI,aAAa7pB,IAEjHmxR,6BAA8B,WAC1BlpY,KAAKuqd,kBAAkBvqd,KAAKwyX,YAAYlyX,SAAWN,KAAKywR,eAAenwR,SAE3E2wc,wBAAyB,SAASzwc,GAC9BR,KAAKuxN,SAAS/wN,GACdR,KAAKowc,mBAETiW,kBAAmB,SAAS7/b,GACxB,IAAIhmB,EAAIgmB,EAAKhM,MACbha,EAAE4G,kBACFpH,KAAK0rV,sBAAsBlrV,GAC3B,IAAIgnd,GAAO95c,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAI6xB,OAAOymb,IAC1Crid,KAAKojd,kBAAkBoE,IAE3BpE,kBAAmB,SAASoE,GACxB,GAAIA,EAAKz3P,SAASuyP,GACTtid,KAAK6kB,OAAO,oBAGb7kB,KAAKu7B,QAFLv7B,KAAK6kB,OAAO,QAAS7kB,KAAKwyX,YAAY/sX,MAAM,EAAGzF,KAAK6kB,OAAO,0BAFnE,CAQA,IAAIilb,EAAY0d,EAAK35c,KAAKu0c,GACtByI,EAASrD,EAAK5nc,KAAK,MACvB5f,KAAK8qd,qBAAqBhhB,GAC1B9pc,KAAK6ld,mBAAmBgF,GAAQ,GAChC7qd,KAAKqqd,wBAET51F,aAAcziK,EAAAA,KACd84P,qBAAsB,SAAShhB,GAC3B,IAAIloc,EAAQ5B,KAAKwyX,YAAY/sX,QAC7BzF,KAAK+qd,WAAWnpd,EAAOkoc,GACvB9pc,KAAK6kB,OAAO,QAASjjB,GACjB,IAAMA,EAAMtB,QACZN,KAAK+jd,kBAGbtgF,iBAAkB,WACd,OAAOzjY,KAAKgrd,cAEhB1b,wBAAyB,SAAS9uc,GAAG,WACjC,GAAI,eAAiBR,KAAK6kB,OAAO,kBAAjC,CAGA,IAAIjjB,EAAQ5B,KAAKwyX,YAAY/sX,QAQ7B,IAPAgV,EAAAA,EAAAA,IAAKja,EAAEghF,cAAgB,IAAI,SAAC9mE,EAAGuwc,GAC3B,EAAKF,WAAWnpd,EAAO,EAAKiiY,aAAaonF,QAE7Cxwc,EAAAA,EAAAA,IAAKja,EAAEi3C,YAAc,IAAI,SAAC/8B,EAAG60b,GACzB,EAAK2b,QAAQtpd,EAAO,EAAKiiY,aAAa0rE,OAE1Cvvc,KAAKqnd,wBACAjzN,EAAAA,EAAAA,cAAap0P,KAAK6+P,MAAMh6O,OAAO,oBAAqB7kB,KAAK6kB,OAAO,UAAW,CAC5E,IAAIsmc,EAA2Bnrd,KAAK6+P,MAAMqnJ,2BAC1CilE,GAA4Bnrd,KAAK0rV,sBAAsBy/H,GACvDnrd,KAAK6kB,OAAO,QAASjjB,GAEzB5B,KAAK6+P,MAAMwiJ,+BAA0B,KAEzC0pE,WAAY,SAASnpd,EAAO1B,GACxB,IAAIW,EAAQb,KAAKord,YAAYlrd,EAAM0B,GAC/Bf,GAAS,GACTe,EAAM2N,OAAO1O,EAAO,IAG5Bqqd,QAAS,SAAStpd,EAAO1B,GACTF,KAAKord,YAAYlrd,GACjB,GACR0B,EAAMhB,KAAKV,IAGnBmkY,iBAAkB,WACd,OAAOrkY,KAAK6kd,eAAep/c,SAE/Burc,mBAAoB,SAASpvc,GACpB5B,KAAK6kB,OAAO,0BACb7kB,KAAK0nc,UAAU9lc,IAGvB8lc,UAAW,SAAS9lc,GAChB,GAAI,OAASA,EAAb,CAGA,IAAIypd,EAAa,eAAiBrrd,KAAK6kB,OAAO,kBAC1C+tJ,EAAa5yK,KAAKord,YAAYxpd,GAC9BgY,GAAUyxc,EAAarrd,KAAK6+P,MAAMh6O,OAAO,oBAAsB7kB,KAAKwyX,aAAa/sX,QACjFmtK,GAAc,EACdh5J,EAAOrK,OAAOqjK,EAAY,GAE1Bh5J,EAAOhZ,KAAKgB,GAEZ,eAAiB5B,KAAK6kB,OAAO,kBAC7B7kB,KAAK6+P,MAAMh6O,OAAO,mBAAoBjL,GAEtC5Z,KAAK6kB,OAAO,QAASjL,KAG7Bmwb,iBAAkB,SAASnoc,EAAO+9C,GAC9B,OAAO3/C,KAAKord,YAAYxpd,EAAO,KAAM+9C,IAAU,GAEnDyra,YAAa,SAASxpd,EAAOgY,EAAQ+lC,GAAO,WACpC9wC,GAAU,EACd,OAAI8wC,GAAS,kBAAoB/9C,IACxB+9C,EAAM2ra,gBACP3ra,EAAM2ra,cAAgB,IACtB1xc,EAASA,GAAU5Z,KAAKwyX,aACjBvyX,SAAS,SAAS2B,EAAOf,GAC5B8+C,EAAM2ra,cAAc1pd,GAASf,MAGjCe,KAAS+9C,EAAM2ra,eACR3ra,EAAM2ra,cAAc1pd,IAGnCgY,EAASA,GAAU5Z,KAAKwyX,aACxB/3W,EAAAA,EAAAA,IAAKb,GAAQ,SAAC/Y,EAAOinV,GACjB,GAAI,EAAK87C,eAAehiY,EAAOkmV,GAE3B,OADAj5U,EAAShO,GACF,KAGRgO,IAEXm8c,WAAY,WACR,IAAIpxc,EAAS5Z,KAAKwyX,YACd9gP,EAAY93H,EAAOA,EAAOtZ,OAAS,GACvC,OAAO,OAASoxI,QAAa,IAAWA,EAAYA,EAAY,MAEpEq6T,yBAA0B,WACtB,OAAO/rc,KAAK6kB,OAAO,kBAAoB7kB,KAAK6kB,OAAO,sBAEvDmnb,eAAgB,SAASxrc,GACjBR,KAAK6kB,OAAO,kBAAsBrkB,IAAMR,KAAK8id,gBAC7C9id,KAAKuxN,SAASxpN,WACd/H,KAAK8md,4BAET9md,KAAKqnd,6BACErnd,KAAK8id,eAEhBuE,oBAAqB,WACjB,IAAIvnd,EAAUE,KAAK6Z,WACfX,GAAiB2jI,EAAAA,EAAAA,IAAU/8I,GAC/BE,KAAK+md,mBACL,IAAIwE,GAAgB1uU,EAAAA,EAAAA,IAAU/8I,GAC1BE,KAAK8uW,QAAU9uW,KAAK6kB,OAAO,WAAa7kB,KAAKynY,eAAiB8jF,IAAkBryc,GAChFlZ,KAAK8uW,OAAOxpV,WAGpBskb,iBAAkB,WACd,IAAI4hB,GACH,QAAUA,EAAexrd,KAAK6+P,aAAU,IAAW2sN,OAAe,EAASA,EAAa7xL,kBAAoB35R,KAAK6+P,MAAMh6O,OAAO,gBAAiB7kB,KAAK6kd,iBAEzJ4G,2BAA4B,WACxB,IAAIxwL,EAAiBj7R,KAAKk7R,uBACnBl7R,KAAK0rd,YACZzwL,EAAer1R,OAAO,MACtBq1R,EAAetH,UAEnBmzL,yBAA0B,WACtB,GAAK9md,KAAK6kB,OAAO,sBAAyB7kB,KAAK6+P,MAA/C,CAGA,IAAIo8B,EAAiBj7R,KAAKk7R,gBACtBywL,EAAkB3rd,KAAKwvY,mBAC3B,IAAIllL,EAAAA,EAAAA,IAASqhQ,IAAoB,SAAWA,EAAiB,CACzD,IAAI/ld,EAAS5F,KAAK4rd,6BACd,IAAW5rd,KAAK0rd,cAChB1rd,KAAK0rd,YAAczwL,EAAer1R,UAAY,MAElD5F,KAAK0rd,aAAe9ld,EAAOhF,KAAKZ,KAAK0rd,aACrC9ld,EAAOtF,OAAS26R,EAAer1R,OAAOA,GAAUq1R,EAAer1R,OAAO,WAEtEq1R,EAAer1R,OAAO5F,KAAK6rd,0BAA0Bphd,KAAKzK,OAE9Di7R,EAAeruR,SAEnBg/c,sBAAuB,WAAW,WAC1Bhmd,EAAS,GAEb,OADA5F,KAAKwyX,YAAYvyX,SAAQ,SAAA2B,GAAK,OAAIgE,EAAOhF,KAAK,CAAC,IAAK,CAAC,EAAK4uY,mBAAoB5tY,QACvEgE,GAEXimd,0BAA2B,SAAShhZ,GAAU,WACtCi/X,EAAY9pc,KAAK6jY,aAAah5T,GAC9Bh8D,GAAS,EAOb,OANA4L,EAAAA,EAAAA,IAAKza,KAAKwyX,aAAa,SAAC3xX,EAAOe,GAC3B,GAAI,EAAKgiY,eAAehiY,EAAOkoc,GAE3B,OADAj7b,GAAS,GACF,KAGRA,GAEXsvV,0BAA2B,WACvBn+V,KAAKood,sBAAuB,EAC5Bpod,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9BqoW,oBAAqB,SAAS5pV,GAC1BxmB,KAAK0rV,sBAAsBllU,EAAKhM,OAChCxa,KAAK6kB,OAAO,QAAS7kB,KAAK8rd,wBAC1B9rd,KAAKowc,kBACLpwc,KAAKuxN,WACLvxN,KAAK0tc,uBAEToe,qBAAsB,WAClB,IAAIC,EAAa/rd,KAAKgsd,iBAClBtxY,EAAe16E,KAAK6kB,OAAO,UAAY,GACvConc,EAAeF,EAAWzrd,QAAS67P,EAAAA,EAAAA,IAAgBzhL,EAAcqxY,GAAc,GAC/EzuN,EAAW2uN,EAAa3rd,QAASk8P,EAAAA,EAAAA,IAAiBuvN,EAAYrxY,GAAgBqxY,EAClF,OAAOE,EAAarwb,OAAO0hO,IAE/B0uN,eAAgB,WAAW,WACvB,OAAKhsd,KAAK6+P,MAGH7+P,KAAKorW,eAAeprW,KAAK6+P,MAAMh6O,OAAO,kBAAkB3e,KAAI,SAAAhG,GAAI,OAAI,EAAK2jY,aAAa3jY,MAFlF,IAIf4nc,mBAAoB,WAChB,IAAIptX,EAAe16E,KAAKwyX,YACxBxyX,KAAKuxN,WACD72I,IAAiB16E,KAAK6kB,OAAO,UAC7B7kB,KAAK6kB,OAAO,QAAS61D,GAEzB16E,KAAK4pc,oBAEThtE,mBAAoB,WAChB58X,KAAKuxN,WACD,eAAiBvxN,KAAK6kB,OAAO,mBAAsB7kB,KAAK6kB,OAAO,WAC/D7kB,KAAK4pc,oBAGbrua,MAAO,WACHv7B,KAAK0vc,oBACL,IAAIn7Z,EAAev0C,KAAKyyN,qBAAqB7wN,MACzC84E,EAAe16E,KAAK6kB,OAAO,SAC3B0vB,GAAgB,IAAMA,EAAaj0C,QAAUo6E,GAAgBnmC,EAAaj0C,SAAWo6E,EAAap6E,QAGtGN,KAAKuxN,YAETg6B,OAAQ,WACJvrP,KAAKuxN,kBACEvxN,KAAKksd,2BACLlsd,KAAKqpd,uBACLrpd,KAAKkmd,cAEhBiG,4BAhkC2B,SAgkCC7uN,EAAU8uN,GAAe,WACjD,IAAK9uN,EAASh9P,OACV,MAAO,CACHm3C,WAAY,GACZ+pC,aAAc4qY,EAAc3md,SAGpC,IAAK2md,EAAc9rd,OACf,MAAO,CACHm3C,WAAY6lN,EAAS73P,QACrB+7E,aAAc,IAGtB,IAAI6qY,EAAyBD,EAAc1id,QAAO,SAACxD,EAAKhG,GAGpD,OADAgG,EADY,EAAK29X,aAAa3jY,IACjBA,EACNgG,IACR,IACCuxC,EAAa,GAQjB,OAPA6lN,EAASr9P,SAAQ,SAAAC,GACb,IAAI0B,EAAQ,EAAKiiY,aAAa3jY,GACzBmsd,EAAuBzqd,IACxB61C,EAAW72C,KAAKV,UAEbmsd,EAAuBzqd,MAE3B,CACH61C,WAAYA,EACZ+pC,aAAc16E,OAAO8S,OAAOyyc,KAGpCnwP,eAAgB,SAAS11M,GACrB,IACUhZ,EAGNgZ,EAHAhZ,KACO5L,EAEP4kB,EAFA5kB,MACe42G,EACfhyF,EADAgyF,cAEJ,OAAQhrG,GACJ,IAAK,0BACDxN,KAAK8kd,mCACL,MACJ,IAAK,sBACD9kd,KAAK+kd,+BACL/kd,KAAKgnd,cACL,MACJ,IAAK,oBACGpld,EACA5B,KAAK8md,2BAEL9md,KAAKyrd,6BAET,MACJ,IAAK,oBACDzrd,KAAKold,qBAAqBxjd,GAC1B,MACJ,IAAK,cACD5B,KAAKuxN,SAAS/qM,GACdxmB,KAAK07N,iBACL17N,KAAK0rP,cACL,MACJ,IAAK,cACD1rP,KAAKyld,mBACLzld,KAAK0rP,cACL,MACJ,IAAK,gBACD1rP,KAAKmqc,eAAe,gBAAiBnqc,KAAK6kB,OAAO,kBACjD,MACJ,IAAK,WACL,IAAK,WACD7kB,KAAKuxN,SAAS/qM,IACb5kB,GAAS5B,KAAKgpY,iBACf,MACJ,IAAK,QACDhpY,KAAKqpd,gBAAkBznd,EACvB5B,KAAKuxN,SAAS/qM,GACdxmB,KAAKqpd,qBAAkB,EACvBrpd,KAAK8md,2BACL,MACJ,IAAK,mBACL,IAAK,mBACD9md,KAAKgnd,cACL,MACJ,IAAK,gBACDhnd,KAAKmqc,eAAe38b,EAAM5L,GAC1B,MACJ,IAAK,eASL,IAAK,uBACD,MARJ,IAAK,gBACD5B,KAAKwoc,wBAAwBxoc,KAAKmsd,4BAA4Bvqd,EAAO42G,IACrE,MACJ,IAAK,YACDx4G,KAAK6Z,WAAW28M,YAAYisP,GAA2B7gd,GACvD5B,KAAKimd,0BACL,MAGJ,QACIjmd,KAAKuxN,SAAS/qM,KAG1Bgpb,sBAAuB,WACnB,OAAOxvc,KAAKuxN,YAAcvxN,KAAKywR,gBAEnC89E,oBAAqB,WACjBvuW,KAAKuxN,WACLvxN,KAAKqqc,mBAGb/pb,EAAAA,EAAAA,SAAkB,WAAYoic,GAC9B,+LC5tCI4J,EAAWl1G,EAAAA,QAAAA,QAAgB,CAC3B3kJ,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bg7P,YAAY,EACZ3tc,eAAW,EACX8G,eAAW,EACXwga,mBAAmB,KAG3Bz7L,YAAa,WACTzqP,KAAK6Z,WAAW4F,SAbH,eAcbzf,KAAKuxN,WACLvxN,KAAK4gV,QAAQ,YAAa,SAE9Bse,mBAAoB,WAChBl/V,KAAKwsd,qBACLxsd,KAAKuxN,YAETg/I,aAAc,WACVvwW,KAAKuxN,WACLvxN,KAAKysd,wBAETC,aAAc,WACV,IAAI30W,GAASrqG,EAAAA,EAAAA,GAAE,cAGf,OAFA1N,KAAK2sd,sBAAsB50W,EAAQ/3G,KAAK6kB,OAAO,cAC/C7kB,KAAK4sd,iCAAiC70W,GAC/BA,GAEX40W,sBAAuB,SAAS50W,EAAQ80W,GACpC90W,EAAOn4F,KAAKitc,GAAkBptc,SA/BT,wBAiCzBgtc,qBAAsB,WAClBzsd,KAAK8sd,QAAU,EACf,IAAI/0W,EAAS/3G,KAAK63F,SACdk1X,GAAiBC,EAAAA,EAAAA,GAAkBj1W,GAAQ,GAC/C49G,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cAAaooH,EAAAA,EAAAA,KAAmBx2U,KAAK+0N,MAAOg4P,EAAgB/6P,EAAAA,MACpF2D,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoB7hC,KAAK+0N,MAAO/0N,KAAK41N,oBAAoBnrN,KAAKzK,OACnG21N,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoB7hC,KAAK+0N,MAAO/0N,KAAKugS,oBAAoB91R,KAAKzK,QAEvG41N,oBAAqB,SAASp1N,GAC1BR,KAAK8sd,SAAUjtL,EAAAA,EAAAA,WAAUr/R,GAAGmd,GAEhC4iR,oBAAqB,SAAS//R,GAC1B,IAAIysd,GAAgBptL,EAAAA,EAAAA,WAAUr/R,GAAGmd,EAC7BX,EAAQhd,KAAK8sd,QAAUG,GACvBxG,EAAAA,EAAAA,GAAYzmd,KAAK63F,SAAU76E,KAC3Bxc,EAAEyxS,kBAAmB,EACrBzxS,EAAE4G,mBAENpH,KAAK8sd,QAAUG,GAEnBpiO,kBAAmB,WACf,IAAIhxO,EAAW7Z,KAAK6Z,WAChB/Z,EAAU+Z,EAASgG,IAAI,GACvBvO,EAAQtR,KAAK4mP,gBAAgB,QAAS9mP,GACtCyR,EAASvR,KAAK4mP,gBAAgB,SAAU9mP,GACxC8e,EAAY5e,KAAK6kB,OAAO,aACxBa,EAAY1lB,KAAK6kB,OAAO,aAC5BhL,EAASwB,IAAI,CACTuD,eAAW,IAAWA,EAAYA,EAAY,GAC9C8G,eAAW,IAAWA,EAAYA,EAAY,GAC9CpU,MAAOA,EACPC,OAAQA,KAGhB27c,iBAAkB,WACdltd,KAAK6Z,WAAWwB,IAAI,CAChB9J,OAAQ,GACRqN,UAAW,GACX8G,UAAW,MAGnB86T,cAAe,WACPxgV,KAAK6kB,OAAO,sBACZ8wM,EAAAA,EAAAA,GAAgB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,cAAepuN,KAAK+0N,MAAO/0N,KAAKwsd,mBAAmB/hd,KAAKzK,OAExGA,KAAKuxN,YAETy3K,eAAgB,WACZrzK,EAAAA,EAAAA,IAAiB31N,KAAK63F,UAAUu2H,EAAAA,EAAAA,cAAa,cAAepuN,KAAK+0N,OACjE/0N,KAAKuxN,YAET47P,qBAlF2B,SAkFNp1W,GACjB,OAAOgkK,EAAAA,EAAAA,IAAmB/7Q,KAAK4kB,UAAU/E,IAAI,IAAI,IAASk8P,EAAAA,EAAAA,IAAmB/7Q,KAAKotd,sBAAsBvtc,IAAI,IAAI,IAASk8P,EAAAA,EAAAA,IAAmB/7Q,KAAK0wW,2BAA2B7wV,IAAI,IAAI,IAAS06P,EAAAA,EAAAA,GAAoB,UAAUtsD,EAAAA,EAAAA,MAAY1rF,iBAAiBxqB,EAAOl4F,IAAI,KAAKykL,QAE5QkoR,mBAAoB,WAChB,IAAKlwP,EAAAA,EAAAA,MAAL,CAGA,IAAIvkH,EAAS/3G,KAAK63F,SACdtmF,EAASvR,KAAK6kB,OAAO,UACrBwoc,OAAqB,IAAW97c,GAAUvR,KAAK6kB,OAAO,qBAE1D,GADiCwoc,QAAsB,IAAW97c,GAAUvR,KAAK6kB,OAAO,aACxF,CAIA7kB,KAAKktd,mBACLltd,KAAK4kB,UAAUvJ,IAAI,UAAUm9M,EAAAA,EAAAA,IAAex4N,KAAK4kB,YACjDmzF,EAAO18F,IAAI,SAAU,GACrB,IAAIiyc,EAAmBttd,KAAKmtd,qBAAqBp1W,GACjD/3G,KAAK6qP,oBACL,IAAIjsO,EAAY5e,KAAKutd,mBAAmB,aACpC7nc,EAAY1lB,KAAKutd,mBAAmB,aACpCC,EAAcz1W,EAAO,GAAG3wD,aAI5B,QAHI,IAAWxoC,IACX4uc,EAAc7nc,KAAKC,IAAI4nc,EAAa5uc,EAAY0uc,SAEhD,IAAW5nc,EAAW,CACtB,IAAI+nc,EAAoB/nc,EAAY4nc,EAChCI,EAAaF,EAAcC,EAC/BD,EAAc7nc,KAAKG,IAAI0nc,EAAaC,GACpCztd,KAAK4sd,iCAAiC70W,GAAS21W,GAEnD31W,EAAO18F,IAAI,SAAUmyc,GACjBH,GACArtd,KAAK4kB,UAAUvJ,IAAI,SAAU,aAtB7B08F,EAAO18F,IAAI,SAAU,MAyB7Bkyc,mBAAoB,SAASvnO,GACzB,IAAImxI,EAAgBn3X,KAAK6kB,OAAOmhO,GAChC,IAAIr9L,EAAAA,EAAAA,IAAUwuU,GACV,MAAO,kBAAoBA,EAAgBA,GAAgBz7G,EAAAA,EAAAA,IAAYy7G,EAAen3X,KAAK6Z,WAAWgG,IAAI,GAAGooB,cAAejoC,KAAK4kB,UAAU/E,IAAI,KAGvJ4oZ,iBAAkBz2M,EAAAA,KAClB83B,mBAAoB,SAASjhP,GACrBA,GACA7I,KAAKwsd,sBAGbI,iCAAkC,SAAS70W,EAAQ41W,GAC/C,GAAI51W,EAAQ,CACR,IAAImuU,GAAoB1mL,EAAAA,EAAAA,eAAcmuN,EAAqB3td,KAAK6kB,OAAO,sBACvEkzF,EAAOy+G,YAvIsB,kCAuI0B0vN,KAG/Dn8L,kBAAmB,WACX/pP,KAAK6kB,OAAO,YACZ7kB,KAAKwsd,sBAGbtwP,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,oBACDxN,KAAK4sd,iCAAiC5sd,KAAK63F,SAAUrxE,EAAK5kB,OAC1D5B,KAAKgpY,iBACLhpY,KAAKwsd,qBACL,MACJ,IAAK,QACL,IAAK,SACDxsd,KAAKuxN,SAAS/qM,GACdxmB,KAAKwsd,qBACL,MACJ,IAAK,YACL,IAAK,YACDxsd,KAAK6qP,oBACL7qP,KAAKwsd,qBACL,MACJ,IAAK,UACDxsd,KAAKuxN,SAAS/qM,GACdA,EAAK5kB,OAAS5B,KAAKwsd,qBACnB,MACJ,QACIxsd,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,aAAcgsc,GAChC,wKC1MI7mc,GAASwoM,EAAAA,EAAAA,MAaT2/P,EAAa,CAAC,YAAa,MAAO,QAAS,SAAU,WAAY,MAAO,OAAQ,YAAa,aAAc,YAAa,UAAW,OAEnIC,EAAkB,eAGlBz2G,EAAU2oD,EAAAA,EAAAA,QAAmB,CAC7Bn8R,KAAM,SAAS9jI,EAASsa,GAChBA,IACApa,KAAK8td,iBAAmB1zc,EAAQiK,iBAEpCrkB,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B0qN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B3vN,MAAO,GACPyiE,KAAM,OACN0pZ,UAAW,QAGnBtjO,YAAa,WACTzqP,KAAK6Z,WAAW4F,SAnBJ,cAoBZzf,KAAKuxN,WACLvxN,KAAK4gV,QAAQ,OAAQ,YAEzB6nF,iBAAkB,WACdzoa,KAAKuxN,WACLvxN,KAAKgud,qBAETxkO,cAAe,WACX,OAAO,GAEXmzI,aAAc,WACV38X,KAAKuxN,WACLvxN,KAAKiud,wBAETA,qBAAsB,WAClB,IAAIF,EAAY/td,KAAKkud,gBACjBH,GAAaA,EAAY,EACzB/td,KAAK63F,SAASj4E,KAAK,YAAamuc,GAEhC/td,KAAK63F,SAASjgE,WAAW,cAGjCo2b,kBAAmB,WACf,IAAIn0c,EAAW7Z,KAAK4kB,UAChB,WAAa5kB,KAAK6kB,OAAO,SACzBhL,EAAS4F,SAASouc,GAClB7td,KAAKmud,yBACD,IAAWnud,KAAK8td,mBAChB9td,KAAK8td,iBAAmB9td,KAAK6kB,OAAO,mBACpC7kB,KAAK6kB,OAAO,mBAAmB,MAGnChL,EAASge,YAAYg2b,GACrB7td,KAAKoud,cAAgBpud,KAAKoud,aAAa5sd,SACvCxB,KAAK6kB,OAAO,uBAAmB,IAAW7kB,KAAK8td,iBAAmB9td,KAAK6kB,OAAO,mBAAqB7kB,KAAK8td,yBACjG9td,KAAK8td,mBAGpBK,kBAAmB,WACf,IAAIE,GAAc3gd,EAAAA,EAAAA,GAAE,SAAS+R,SAzDpB,WAyDyCA,SAxDlC,kBAyDhB4uc,EAAYrmb,UAAUhoC,KAAK63F,SAASpsF,UACpCzL,KAAKoud,aAAeC,GAExBC,wBAAyB,WACrB,GAAItud,KAAKoud,aAAc,CACnB,IAAIp1b,EAAkBh5B,KAAK63F,SAASpsF,SACpC,OAAOqxI,EAAAA,EAAAA,IAAS9jH,GAAmBh5B,KAAKuud,uBAE5C,OAAOvud,KAAKuxN,YAEhBg9P,qBAAsB,WAClB,IAAIC,EAAmBxud,KAAKuxN,WAI5B,OAHIvxN,KAAKoud,eACLI,IAAoBl2P,EAAAA,EAAAA,IAAct4N,KAAKoud,eAEpCI,GAEXtyP,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,YACDxN,KAAKiud,uBACL,MACJ,IAAK,OACDjud,KAAKuxN,SAAS/qM,GACdxmB,KAAKyud,oBACL,MACJ,IAAK,OACDzud,KAAKuxN,SAAS/qM,GACdxmB,KAAKiud,uBACL,MACJ,QACIjud,KAAKuxN,SAAS/qM,KAG1Bkoc,wBAAyB,SAASlud,GAC9B,IAAImud,EAAkB3ud,KAAKkud,gBAC3B,IAAIS,GAAoBnud,EAAEwlC,SAAYhmC,KAAK4ud,gBAMvC,OAAO,EALP,IAAI72W,GAASrqG,EAAAA,EAAAA,GAAElN,EAAEoG,QACbI,GAAMyhS,EAAAA,EAAAA,kBAAiBjoS,GAE3B,OADAR,KAAK6ud,iBAAiB92W,GACfA,EAAOh0F,MAAMzjB,OAASqud,GAAmBf,EAAW9xV,SAAS90H,IAAQ,KAAOye,EAAOmwJ,eAAennK,YAKjHqgd,uBAAwB,SAAStud,GAC7B,IAAIu3G,GAASrqG,EAAAA,EAAAA,GAAElN,EAAEoG,QACb5G,KAAK6kB,OAAO,cACZ7kB,KAAK6ud,iBAAiB92W,IAG9B82W,iBAAkB,SAAS92W,GACvB,IAAI42W,EAAkB3ud,KAAKkud,gBACvB92U,EAAYr/B,EAAOh0F,MACnB4qc,GAAmBv3U,EAAU92I,OAASqud,GACtC52W,EAAOh0F,IAAIqzH,EAAUzmI,OAAO,EAAGg+c,KAGvCT,cAAe,WAEX,QADwBlud,KAAK6kB,OAAO,QACX,KAAO7kB,KAAK6kB,OAAO,iBAGpDvE,EAAAA,EAAAA,SAAkB,YAAa82V,GAC/B,IC7IA,ED6IA,2GE7IqB0uB,EAAAA,WACjB,WAAYt4X,EAAMgV,EAAQpI,IAAS,eAC/Bpa,KAAKoO,SAAW,KAChBpO,KAAKunC,WAAa,KAClBvnC,KAAK+ud,aAAe,KACpB/ud,KAAKwiB,OAASA,EACdxiB,KAAKwN,KAAOA,EACZxN,KAAKoa,QAAUA,GAAW,iDAE9B,SAAgBmtB,GACZvnC,KAAK+ud,cAAerhd,EAAAA,EAAAA,GAAE,SAASuqB,SAASsP,kCAE5C,SAAgB1tB,GACZ,IACkBk1c,EAEd/ud,KAFA+ud,aACYxnb,EACZvnC,KADAunC,WAEJwnb,EAAeA,EAAah5N,YAAYl8O,GAAYA,EAASoe,SAASsP,gCAE1E,WACI,KAAM,yCAEV,WACI,KAAM,6CAEV,WACI,QAASvnC,KAAKoO,mCAElB,WACI,IACYoU,EAERxiB,KAFAwiB,OAGJ,OADIxiB,KADAoa,QAEWvR,UAAY2Z,EAAOqC,OAAO,uCAE7C,WACI,KAAM,+CAEV,WACI,OAAO7kB,KAAK06G,eAAiB16G,KAAKgvd,qCAEtC,WACI,IACc5gd,EAEVpO,KAFAoO,SACc2gd,EACd/ud,KADA+ud,aAEA3gd,IACAA,EAASgQ,QAAUhQ,EAASgQ,UAAYhQ,EAAS5M,SACjDxB,KAAKoO,SAAW,MAEpB2gd,GAAgBA,EAAavtd,+BAEjC,WACI,IAAI+lC,EAAax/B,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAKunC,WAEvF,GADAvnC,KAAKunC,WAAaA,EACdvnC,KAAK06G,aAAc,CACnB,MAGI16G,KAAKivd,UAFK7gd,EADd,EACIA,SACUyL,EAFd,EAEIA,SAEJ7Z,KAAKoO,SAAWA,EAChBpO,KAAKi5a,cAAc7qa,EAAUyL,QAE7B7Z,KAAKkvd,gBAAgB3nb,yBAG7B,WAII,OAHIvnC,KAAKmvd,iBACLnvd,KAAKuf,WAEAvf,KAAKoO,eAtED03X,uSCSjBspF,EAAcx4K,EAAAA,EAAAA,KACdy4K,EAAwB,qBAKPC,EAAAA,SAAAA,kIACjB,WACI,IAAIz1c,GAAWnM,EAAAA,EAAAA,GAAE,UAAU+R,SANC,wBAMuCM,QAAOrS,EAAAA,EAAAA,GAAE,UAAU+R,SAJlE,WAIkGA,SAL5F,kBAQ1B,OAFAzf,KAAK0lY,gBAAgB7rX,GACrB7Z,KAAKqe,QAAO,GACL,CACHjQ,SAAUyL,EACVA,SAAUA,6BAGlB,WAII,OADI7Z,KADAwiB,OAEU43W,qDAElB,SAAchsX,EAAU4sY,GACpB,IACYx4X,EACRxiB,KADAwiB,OAEA2pD,EAAa3pD,EAAOuyM,KACxBY,EAAAA,EAAAA,GAAgBqlL,GAAS5sL,EAAAA,EAAAA,cAAaghQ,EAAajjZ,IAAa,SAAA3rE,GAC5DA,EAAE6G,iBACE,UAAY7G,EAAEspS,aACdtnR,EAAO84W,mBAAmB96X,MAGlCm1N,EAAAA,EAAAA,GAAgBqlL,GAAS5sL,EAAAA,EAAAA,cAAa/8L,EAAAA,EAAO86C,IAAa,SAAA3rE,GAAC,OAAIgiB,EAAO84W,mBAAmB96X,mCAE7F,SAAcksJ,EAAS07C,GACnB17C,EAAQ8pE,YA/ByB,uBA+BuBpuB,yBAE5D,WACI,IAAIs/H,EAAW3/T,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,IAC1E2/T,IAAD,sDACA,IACYllT,EAERxiB,KAFAwiB,OACUpU,EACVpO,KADAoO,SAEAs+I,EAAUlqI,EAAO3I,WACjBuuL,EAAYpoM,KAAK06G,aACrBtsG,GAAYA,EAASooN,YAAY64P,GAAwBjnR,GACzDpoM,KAAK2lY,cAAcj5O,EAAS07C,SA1CfknR,CAAoBxpF,EAAAA,yBCFrCypF,EAA8B,2BACbC,EAAAA,SAAAA,wIACjB,SAAcphd,EAAUyL,GACpB,IACY2I,EACRxiB,KADAwiB,OAEJmzM,EAAAA,EAAAA,GAAgB97M,EAAUgC,EAAAA,GAAO,WAC7B2G,EAAO3I,WAAW4F,SAAS8vc,MAE/B55P,EAAAA,EAAAA,GAAgB97M,EAAUuZ,EAAAA,GAAK,WAC3B5Q,EAAO3I,WAAWge,YAAY03b,MAElC55P,EAAAA,EAAAA,GAAgB97M,EAAUowR,EAAAA,GAAgB,SAAAzpS,GACtCA,EAAE4G,4CAGV,WACI,IACYob,EACRxiB,KADAwiB,OAEA3I,GAAWnM,EAAAA,EAAAA,GAAE,SAOjB,OANA1N,KAAK0lY,gBAAgB7rX,GAMd,CACHA,SAAUA,EACVzL,SAPWoU,EAAO4kO,iBAAiBvtO,EAAUqiU,EAAAA,SAAQpzU,EAAAA,EAAAA,GAAO,GAAI9I,KAAKoa,QAAS,CAC9Eq1c,sBAAsB,EACtBrkd,SAAUpL,KAAKoxE,cACf+3K,mBAAoBnpP,KAAK0vd,2BAA2Bltc,iDAO5D,SAA2BA,GACvB,OAAO1Z,EAAAA,EAAAA,GAAO,GAAI0Z,EAAOqC,OAAO,sBAAuB,CACnDikO,cAAe,CAAC,mCAGxB,WACI,IAAIx4I,GAAY,sDAIhB,OAHItwG,KAAKoO,UACLpO,KAAKoO,SAASyW,OAAO,WAAY7kB,KAAKoxE,eAEnCk/B,4BAEX,WAII,OADItwG,KADAwiB,OAEUqC,OAAO,sCAEzB,WAEI,YADsB,IAAW7kB,KAAKoa,QAAQhP,SAEnCpL,KAAKoO,SAAWpO,KAAKoO,SAASyW,OAAO,YAAc7kB,KAAKoa,QAAQhP,SAEhEpL,KAAKwiB,OAAOqC,OAAO,kBAtDjB2qc,CAAqB1pF,EAAAA,cCsB1C,SAAS6pF,EAAqBC,EAAe93a,GACzC,IAAK,IAAM83a,EAAczpd,QAAQ2xC,GAC7B,MAAMmqL,EAAAA,EAAAA,MAAa,QAASnqL,GAEhC83a,EAAchvd,KAAKk3C,OAMF+3a,EAAAA,WACjB,WAAYrtc,EAAQstc,IAAoB,eACpC9vd,KAAKwmY,QAAU,GACfxmY,KAAK8vd,mBAAqBA,EAC1B9vd,KAAKwiB,OAASA,mDAElB,SAAmBgkX,GAAS,WACpB5uV,EAAQ,GACZ,OAAO4uV,EAAQtgY,KAAI,SAAA/D,GACf,IAhDa4td,EAgDTC,EAAiB,kBAAoB7td,EACpC6td,IAjDQD,EAkDO5td,EAjD5B,WACI,IAAK4td,GAAc,kBAAoBA,GAAcxqd,MAAMi2E,QAAQu0Y,GAC/D,MAAM9tP,EAAAA,EAAAA,MAAa,SAF3B,GAKA,WACI,KAAM,SAAU8tP,GACZ,MAAM9tP,EAAAA,EAAAA,MAAa,SAF3B,GAKA,WAII,GAAI,kBADA8tP,EADAvid,KAGA,MAAMy0N,EAAAA,EAAAA,MAAa,SAL3B,GAQA,WACI,IACcjiM,EACV+vb,EADA/vb,SAEA,aAAc+vb,GAAc,UAAY/vb,GAAY,WAAaA,IACjE+vb,EAAW/vb,SAAW,SAL9B,IAiCQ,IAAIiwb,EAAkBD,GAhBlC,SAAgCxid,EAAM0id,GAClC,QAASA,EAAsB7zc,MAAK,SAAAuS,GAAI,OAAIA,EAAKphB,OAASA,KAeV2id,CAAuBhud,EAAOqL,KAAM,EAAKsid,oBACjF,GAAIG,EAAiB,CACjB,IAAIG,EAAoB,EAAKN,mBAAmBzzc,MAAK,SAAA2qO,GACjD,IACUx5O,EACNw5O,EADAx5O,KAEJ,OAAOA,IAASrL,GAAUqL,IAASrL,EAAOqL,QAE9C,IAAK4id,EACD,MAAMnuP,EAAAA,EAAAA,MAAa,QAAS,EAAKz/M,OAAOuyM,KAAM5yN,GAGlD,OADAwtd,EAAqB/3a,EAAOz1C,GACrBiud,EAEP,IACU5id,EACNrL,EADAqL,KAGJ,OADAmid,EAAqB/3a,EAAOpqC,IACrB1E,EAAAA,EAAAA,GAAO3G,EAAQ,CAClBgkY,KAAMqpF,oCAKtB,SAAca,GACV,IACUlqF,EAGNkqF,EAHAlqF,KACS/rX,EAETi2c,EAFAj2c,QAGAjY,EAAS,IAAIgkY,EADbkqF,EADA7id,KAEwBxN,KAAKwiB,OAAQpI,GAEzC,OADApa,KAAKwmY,QAAQ5lY,KAAKuB,GACXA,gCAEX,SAAeqkY,EAASj/V,EAAY4lV,GAAgB,WAC5CmjG,EAAoB,KAcxB,OAbkB9pF,EAAUxmY,KAAKuwd,mBAAmB/pF,GAAWxmY,KAAK8vd,oBACxD7vd,SAAQ,SAAAowd,GAChB,MAEIA,EADArwb,eADJ,MACyB,QADzB,KAGiBmtV,GACb,EAAKqjG,cAAcH,GAAa9wc,QAC5B+wc,EAAoBA,IAAqB5id,EAAAA,EAAAA,GAAE,SAAS+R,SAjG/B,mCAkGrB,WAAa0tW,EAAiB5lV,EAAWquN,QAAQ06N,GAAqB/ob,EAAWxnB,OAAOuwc,GACjFA,OAIZA,uBAEX,WACItwd,KAAKwmY,QAAQvmY,SAAQ,SAAAkC,GAAM,OAAIA,EAAOic,aACtCpe,KAAKwmY,QAAU,4BAEnB,SAAUiqF,GACN,IAAItud,EAASnC,KAAKwmY,QAAQnqX,MAAK,SAAA8rO,GAI3B,OADIA,EADA36O,OAEYijd,KAEpB,OAAOtud,GAAUA,EAAOiM,2CAE5B,SAAmBo4X,EAASj/V,GACxB,OAAOvnC,KAAKi+U,eAAeuoD,EAASj/V,EAAY,4CAEpD,SAAoBi/V,EAASj/V,GACzB,OAAOvnC,KAAKi+U,eAAeuoD,EAASj/V,EAAY,uCAEpD,SAAcqQ,GACV53C,KAAKwmY,QAAQvmY,SAAQ,SAAAkC,GACZy1C,IAAU,IAAMA,EAAMzxC,QAAQhE,EAAOqL,OACtCrL,EAAOkc,kBAtFFwxc,8CC7CjBa,EAAyB,sBACzBC,EAA8B,2BAC9BC,EAAuC,oCACvCC,EAAuC,oCAIrCC,EAAAA,WACF,WAAY9pO,IAAM,eACd,IACat6F,EAOTs6F,EAPAt6F,QACM/pJ,EAMNqkP,EANArkP,KACM0hE,EAKN2iL,EALA3iL,KACM05H,EAINipD,EAJAjpD,KACuBgzR,EAGvB/pO,EAHA+pO,sBACgBv6D,EAEhBxvK,EAFAwvK,eACaw6D,EACbhqO,EADAgqO,YAEJhxd,KAAKgqU,OAAS,CACVt9K,QAASA,EACT/pJ,KAAMA,EACN0hE,KAAMA,EACN05H,KAAMA,EACNgzR,sBAAuBA,EACvBv6D,eAAgBA,EAChBw6D,YAAaA,GAEjBhxd,KAAKqiN,IAAM,GAAGzmL,OAAO80b,EAAwB,KAAK90b,OAAO,IAAIu1N,EAAAA,GAC7DnxP,KAAK87N,UACL97N,KAAKixd,mEAET,WACI,QAASjxd,KAAKgqU,OAAOrnU,MAAQ,WAAa3C,KAAKgqU,OAAO3lQ,4BAE1D,WACIrkE,KAAKkxd,UAAWxjd,EAAAA,EAAAA,GAAE,SAAS+R,SA/BV,mBAgCjBzf,KAAKmxd,aAAczjd,EAAAA,EAAAA,GAAE,UACrB1N,KAAKoxd,SAAU1jd,EAAAA,EAAAA,GAAE,SAAS+R,SAhChB,YAgCsCM,OAAO/f,KAAKmxd,aAC5Dnxd,KAAKqxd,SAAU3jd,EAAAA,EAAAA,GAAE,SAAS+R,SAhCV,kBAiChBzf,KAAKyqa,QAAS/8Z,EAAAA,EAAAA,GAAE,SAAS+R,SAASixc,GAAwB9wc,KAAK,KAAM5f,KAAKqiN,KAAKtiM,OAAO/f,KAAKkxd,UAAUnxc,OAAO/f,KAAKoxd,SAASrxc,OAAO/f,KAAKqxd,SACtIrxd,KAAKsxd,cACLtxd,KAAKuxd,cACLvxd,KAAKwxd,qBACLxxd,KAAKyxd,yDAET,WACI,IAAI5od,EAAU7I,KAAK06G,aACnB16G,KAAK0xd,gCAAgC7od,GACrC7I,KAAK2xd,wBAAwB9od,GAC7BA,EAAU7I,KAAKyqa,OAAOxyY,SAASj4B,KAAKgqU,OAAOt9K,SAAW1sJ,KAAKyqa,OAAOt9Q,gDAEtE,SAAwBtkJ,GAEpB,GADA7I,KAAKgqU,OAAOt9K,QAAQ70H,YAAY+4b,GAAsC/4b,YAAY84b,GAC9E9nd,EAAS,CACT,IAAIkuW,EAAa,aAAe/2W,KAAKgqU,OAAO3lQ,KAAOusZ,EAAuCD,EAC1F3wd,KAAKgqU,OAAOt9K,QAAQjtI,SAASs3V,mDAGrC,WACI,IAAIluW,EAAUd,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK/H,KAAK06G,aAEpF,GADA16G,KAAKgqU,OAAOt9K,QAAQ70H,YAAYg5b,GAC5Bhod,EAAS,CACT,IAAI+od,EAAqB5xd,KAAKgqU,OAAO+mJ,sBAAwBF,EAAuC,GACpG7wd,KAAKgqU,OAAOt9K,QAAQjtI,SAASmyc,+BAGrC,WACI5xd,KAAKmxd,YAAYvxc,KAAK,YAAa5f,KAAKgqU,OAAOjsI,iCAEnD,WACI/9L,KAAKmxd,YAAYxud,KAAK3C,KAAKgqU,OAAOrnU,wCAEtC,WACI3C,KAAKkxd,SAAS71c,IAAI,CACd/J,MAAOtR,KAAKgqU,OAAOgnJ,6CAG3B,WACIhxd,KAAKoxd,QAAQ/1c,IAAI,CACb2D,SAAUhf,KAAKgqU,OAAOwsF,yCAG9B,WACI,OAAOx2Z,KAAKyqa,gCAEhB,WACI,OAAOzqa,KAAK06G,kCAEhB,WACI,GAAI16G,KAAK06G,aACL,OAAO16G,KAAKqiN,8BAGpB,SAAWh+I,GACPrkE,KAAKgqU,OAAO3lQ,KAAOA,EACnBrkE,KAAKixd,oDAET,SAAWtud,GACP3C,KAAKgqU,OAAOrnU,KAAOA,EACnB3C,KAAKuxd,cACLvxd,KAAKixd,oDAET,SAAWlzR,GACP/9L,KAAKgqU,OAAOjsI,KAAOA,EACnB/9L,KAAKsxd,yDAET,SAA4BP,GACxB/wd,KAAKgqU,OAAO+mJ,sBAAwBA,EACpC/wd,KAAK0xd,mEAET,SAAkBV,GACdhxd,KAAKgqU,OAAOgnJ,YAAcA,EAC1Bhxd,KAAKwxd,mDAET,SAAeh7D,GACXx2Z,KAAKgqU,OAAOwsF,eAAiBA,EAC7Bx2Z,KAAKyxd,wBA7GPX,yBCmCFe,EAAyB,sBAIzBC,EAA+B,iBAI/BC,EAAsC,wBAEtCC,EAAc,CAAC,UAAW,WAAY,QAAS,SAAU,MAAO,OAAQ,QAAS,SACjFC,EAAe,CAAC,MAAO,QAAS,QAAS,UAAW,MAAO,SAAU,SAAU,WAAY,MAAO,OAAQ,YAAa,UAAW,aAAc,aAChJC,EAAyBpB,EAE7B,SAASqB,EAAuB3rF,GAC5B,IAAI79U,EAAAA,EAAAA,IAAU69U,KAAajhY,MAAMi2E,QAAQgrT,GACrC,MAAMvkK,EAAAA,EAAAA,MAAa,SAG3B,IAAImwP,EAAiBn2b,EAAAA,EAAAA,QAAe,CAChC2nG,KAAM,SAASlpH,EAAGN,GACVA,GACA+3c,EAAuB/3c,EAAQosX,SAEnCxmY,KAAKqyd,kBAAoB,IAAIxC,EAA2B7vd,KAAMA,KAAKkmY,sBACnElmY,KAAK0oY,yBAA2B,KAChC1oY,KAAK4oY,wBAA0B,KAC/B5oY,KAAKsyd,uBAAyB,KAC9Btyd,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B0qN,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bi1K,aAAS,EACT5kY,MAAO,GACP2qd,YAAY,EACZloc,iBAAiB,EACjBujb,iBAAkB,SAClBhva,YAAa,GACb0rC,UAAW,GACX0tC,UAAW,KACXD,WAAY,KACZ8F,UAAW,KACX06W,QAAS,KACT90b,SAAU,KACVpL,QAAS,KACT8iH,MAAO,KACPC,OAAQ,KACRl9B,QAAS,KACTs6W,WAAY,KACZnuZ,KAAM,OACNkpQ,mBAAmB,EACnBD,mBAAmB,EACnB3qU,UAAM,EACN4xX,sBAAuB,SAAS3yX,GAC5B,OAAO+mD,EAAAA,EAAAA,IAAU/mD,KAAU,IAAUA,EAAQA,EAAQ,IAEzDmlE,aAAauI,EAAAA,EAAAA,WAASsrK,mBAAqB,WAC3C63O,oBAAoB,EACpBpvU,MAAO,GACP8nP,UAAW,SACXunF,UAAW,MAGnB9vO,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,IAAI0nK,GAAYxnK,EAAAA,EAAAA,WAChB,OAAO29F,EAAAA,EAAAA,YAAW6pE,IAEtB1rY,QAAS,CACL2sD,aAAauI,EAAAA,EAAAA,WAASsrK,mBAAqB,SAC3CuwJ,UAAW,gBAIvBjF,mBAAoB,WAChB,MAAO,CAAC,CACJ14X,KAAM,QACN24X,KAAMmpF,KAGdl1F,sBAAuB,WACnB,OAAOp6X,KAAK6kB,OAAO,qBAAuB7kB,KAAK6kB,OAAO,aAE1DgzE,OAAQ,WACJ,OAAO73F,KAAK6Z,WAAWwC,KApFC,wBAoF+B2tD,SAE3D6iY,WAAY,WACR,OAAOt+Z,EAAAA,EAAAA,IAAQvuC,KAAK63F,WAAa73F,KAAKuxN,YAE1Co1K,cAAe,WACX,OAAO3mY,KAAK6Z,YAEhB84c,kBAAmB,WACf,OAAO3yd,KAAK2mY,gBAAgBtqX,KAAK,oCAA0CurC,GAAG,IAElF8+Z,cAAe,SAAS1/c,GACpB,OAAQ,IAAMird,EAAa9rd,QAAQa,IAEvC0mY,mBAAoB,WAChB1tY,KAAKuxN,WACLvxN,KAAK4yd,sBAAsB5yd,KAAK6kB,OAAO,iBAE3C4lO,YAAa,WACTzqP,KAAK6Z,WAAW4F,SA1GD,iBA2Gfzf,KAAKuwW,eACLvwW,KAAK0tY,qBACL1tY,KAAKyoa,mBACLzoa,KAAK6nY,qBACL7nY,KAAK28X,eACL38X,KAAKuxN,WACLvxN,KAAKsgV,eACLtgV,KAAK6yd,gBAET/2P,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK+oY,2BACL/oY,KAAKwgV,gBACLxgV,KAAK8yd,wBACL9yd,KAAKmpY,yBAET54B,aAAc,WACVvwW,KAAK8oY,mBAAqB9oY,KAAKotd,uBAAwB1/c,EAAAA,EAAAA,GAAE,SAAS+R,SAxHzC,2BAwH8EwY,SAASj4B,KAAK6Z,YACrH7Z,KAAK0wW,4BAA6BhjW,EAAAA,EAAAA,GAAE,SAAS+R,SA5Hd,iCA4HyDwY,SAASj4B,KAAKotd,uBACtGptd,KAAK0wW,2BAA2B3wV,OAAO/f,KAAK0sd,gBAC5C1sd,KAAKq4X,2BAET06F,mBA5GgC,WA6G5B,OAAO/yd,KAAK0wW,4BAEhBsiH,wBAAyB,WACrBhzd,KAAK6Z,WAAW4F,SAASsyc,GACzB,IAAI/4b,EAAkBh5B,KAAK+yd,qBACvBE,GAAoBvld,EAAAA,EAAAA,GAAE,SAAS+R,SA9HF,wBA8H+CwY,SAASe,GACzFh5B,KAAKkzd,kBAAoBlzd,KAAKonP,iBAAiB6rO,EAAmBxhE,EAAAA,IAEtE0hE,yBAA0B,WACjBnzd,KAAKkzd,oBAGVlzd,KAAKkzd,kBAAkB90c,UACvBpe,KAAKkzd,kBAAkBr5c,WAAWrY,SAClCxB,KAAKkzd,kBAAoB,KACzBlzd,KAAK6Z,WAAWge,YAAYk6b,KAEhC1kF,uBAAwB,WACpBrtY,KAAKuxN,WACL,IAAI5zF,EAAY,YAAc39H,KAAK6kB,OAAO,oBACtChL,EAAW7Z,KAAK6Z,WAChB8jH,IACC39H,KAAKkzd,mBAAqBlzd,KAAKgzd,0BAChChzd,KAAKozd,gBAAiB,IAElB,YAAcpzd,KAAK6kB,OAAO,sBAC1B7kB,KAAKozd,gBAAiB,GAErBpzd,KAAKozd,iBAAkB,IAASpzd,KAAK6kB,OAAO,wBAC7C7kB,KAAKozd,eAAiB,UAAYpzd,KAAK6kB,OAAO,uBAAyB7kB,KAAKkzd,mBAEhFlzd,KAAKmzd,4BAETt5c,EAAS28M,YAxJY,aAwJ0Bx2N,KAAKozd,iBAExD/6F,wBAAyB,WACrB,IAAImO,EAAUxmY,KAAK6kB,OAAO,WAC1B7kB,KAAK0oY,yBAA2B1oY,KAAKqyd,kBAAkBgB,oBAAoB7sF,EAASxmY,KAAK8oY,oBACzF9oY,KAAK4oY,wBAA0B5oY,KAAKqyd,kBAAkBiB,mBAAmB9sF,EAASxmY,KAAK8oY,qBAE3FyqF,uBAAwB,WACpB,IAAIhrF,EAAuBC,EAC3B,QAAUD,EAAwBvoY,KAAK0oY,gCAA6B,IAAWH,GAAiCA,EAAsB/mY,SACtI,QAAUgnY,EAAwBxoY,KAAK4oY,+BAA4B,IAAWJ,GAAiCA,EAAsBhnY,SACrIxB,KAAKqyd,kBAAkBmB,SAE3BjoO,OA3JgC,WA4J5BvrP,KAAKqyd,kBAAkBmB,QACvBxzd,KAAKmzd,2BACLnzd,KAAKyzd,iCACLzzd,KAAK0oY,yBAA2B,KAChC1oY,KAAK4oY,wBAA0B,KAC/B5oY,KAAKotd,sBAAwB,KAC7Bptd,KAAK8oY,mBAAqB,KAC1B9oY,KAAKuxN,YAETm7P,aAAc,WACV,IAAI30W,GAASrqG,EAAAA,EAAAA,GAAE,WAEf,OADA1N,KAAK2sd,sBAAsB50W,EAAQ/3G,KAAK6kB,OAAO,cACxCkzF,GAEXq1R,sBAAuB,SAAS5/X,GAC5B,IAAIkmd,EAAgB1zd,KAAK6kB,OAAO,kBAChC,OAAO7kB,KAAKuxN,SAAS/jN,GAAQkmd,GAAiB,KAElD/G,sBAAuB,SAAS50W,EAAQ80W,GACpC,IAAI8G,GAAkB7qd,EAAAA,EAAAA,GAAO9I,KAAKmga,wBAAyB0sD,GAC3D90W,EAAOn4F,KAAK+zc,GAAiBl0c,SAASoyc,GAAwBx2c,IAAI,YAAarb,KAAK6kB,OAAO,UAAY,IAAM,KAEjHs7Y,sBAAuB,WACnB,IAAIyzD,EAAoB,CACpBrvZ,aAAc,OAElB,EAGI4jK,EAAAA,QAAAA,OAFKqU,EADT,EACIA,IACK14D,EAFT,EAEIA,IAKJ,OAHI04D,GAAO14D,KACP8vS,EAAkBh7b,YAAc,KAE7Bg7b,GAEXlnF,eAAgB,SAAS90V,GACrB53C,KAAKqyd,kBAAkBwB,cAAcj8a,IAEzCg7a,sBAAuB,SAASh4O,GAAmB,YAC/CngO,EAAAA,EAAAA,IAAKza,KAAK6kB,OAAO,YAAY,SAACnK,EAAGssO,GAC7B,IACa5sO,EAET4sO,EAFA5sO,QACMq2c,EACNzpO,EADAx5O,KAEJ,GAAI4M,IAAYA,EAAQ2sD,aAAe,EAAKliD,OAAO,WAAY,CAC3D,IAAIivc,EAAiB,EAAK9mV,UAAUyjV,GACpCqD,EAAejvc,QAAUivc,EAAejvc,OAAO,cAAe,eAAiB+1N,EAAoB,OAAS,kBAIxH0lG,aAAc,WAEV,OADyBtgV,KAAKi9X,oBACJzsX,WAE9BysX,kBAAmB,SAASr7X,GACxB,IAAI2iB,EACJ3iB,EAAQ,QAAU2iB,EAAS3iB,SAAU,IAAW2iB,EAASA,EAASvkB,KAAK6kB,OAAO,SAC9E,IAAIliB,EAAO3C,KAAK6kB,OAAO,QACnBE,EAAe/kB,KAAK6kB,OAAO,gBAC3B0vW,EAAwBv0X,KAAK6kB,OAAO,yBAYxC,YAXI,IAAWE,GAAgB,OAASnjB,EACpCe,EAAO4xX,EAAsBxvW,IACrB4jC,EAAAA,EAAAA,IAAUhmD,KAClBA,EAAO4xX,EAAsB3yX,IAEjC5B,KAAK6kB,OAAO,OAAQliB,GAChB3C,KAAK63F,SAAS9zE,UAAW4kC,EAAAA,EAAAA,IAAUhmD,GAAQA,EAAO,IAClD3C,KAAKymB,mBAAmB9jB,GAExB3C,KAAKkpY,gCAED,IAAI12K,EAAAA,IAAUpiN,WAE1BqW,mBAAoB,SAAS9jB,GACzB3C,KAAK63F,SAAS9zE,IAAIphB,GAClB3C,KAAKkpY,gCAET04B,cAAe,WACX,GAAI5ha,KAAK63F,SAASv3F,OAAQ,CACtB,IAAIgia,EAAWtia,KAAK63F,SAASh4E,IAAI,GAAGyiZ,SACpC,GAAIA,EACA,OAAOA,EAASyxD,MAGxB,OAAO,GAEXxJ,iBAAkB,SAASp1a,GACvBn1C,KAAK6Z,WAAW28M,YAjQW,sBAiQ+BrhL,GAC1Dn1C,KAAK6/c,mBAAmB1qa,IAE5B0qa,mBAAoB,SAAS1qa,GACzBn1C,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOk2b,IAA+Blqa,GAAG,GAAG4uK,YApQjD,sBAoQqFrhL,IAE7GwnV,aAAc,WACV38X,KAAKmtY,uBACLntY,KAAKg0d,yBACLh0d,KAAKi0d,mBAET7oE,qBAAsB,SAASxpZ,GAC3B5B,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B,IAAIgwG,EAAS/3G,KAAK63F,SAClBkgB,EAAO0O,KAAK,WAAY7kH,IAE5Bqyd,gBAAiB,WACb,IAAIl8W,EAAS/3G,KAAK63F,SACdzsF,EAAWpL,KAAK6kB,OAAO,YACvByoT,EAAoBttU,KAAK6kB,OAAO,qBAChCzZ,IAAakiU,EACbv1N,EAAOn4F,KAAK,YAAa,GAEzBm4F,EAAOngF,WAAW,aAG1Bu1W,qBAAsB,WAClBntY,KAAK63F,SAAS4uB,KAAK,WAAYzmH,KAAKu7X,sBACpCv7X,KAAKuxN,YAETgqK,mBAAoB,WAChB,OAAOv7X,KAAK6kB,OAAO,aAEvBmvc,uBAAwB,WACpBh0d,KAAK63F,SAAS4uB,KAAK,aAAczmH,KAAK6kB,OAAO,gBAEjD4uc,+BAAgC,WACxBzzd,KAAKsyd,yBACLj7N,EAAAA,EAAAA,UAAkCr3P,KAAKsyd,wBACvCtyd,KAAKsyd,uBAAyB,OAGtCrO,mBAAoB,WAChB,OAAOjkd,KAAK63F,UAEhBy2X,wBAAyB,WACrB,OAAOxxU,EAAAA,EAAAA,IAAS98I,KAAKikd,uBAEzBsK,qBAAsB,WAClB,IAAI2F,EAAqBl0d,KAAK0oY,2BAA4B5rP,EAAAA,EAAAA,IAAS98I,KAAK0oY,0BACxE,OAAO,OAASwrF,QAAsB,IAAWA,EAAqBA,EAAqB,GAE/FzF,kBAAmB,WACfzud,KAAKurY,OAAO4oF,kBAAkBn0d,KAAKuud,wBACnCvud,KAAKurY,OAAO0D,eAAejvY,KAAKsud,4BAEpCpK,iBA3SgC,WA4S5B,OAAOlkd,KAAKikd,sBAEhBmQ,cA9SgC,WA+S5B,IAAIC,EAIApoJ,EAAO,CACPs+E,WAFQ,CAFEvqZ,KAAKurY,OAAO+oF,QACN,QAAUD,EAAsBr0d,KAAKu0d,qBAAkB,IAAWF,OAAsB,EAASA,EAAoBz0c,KAAK,OACzGha,OAAOg8G,SAAS3wG,KAAK,WAEjC,GAEzBjR,KAAK4gV,QAAQ3U,EAAMjsU,KAAKkkd,qBAE5B2O,aAAc,WACV7yd,KAAKyzd,iCACLzzd,KAAKsyd,wBAAyB5kd,EAAAA,EAAAA,GAAE1N,KAAKikd,sBAAsBpkc,IAAI,GAC/D,MAII7f,KAAK6kB,SAHEw+H,EADX,EACIA,MACW8nP,EAFf,EAEIA,UACWunF,EAHf,EAGIA,UAEA8B,EAAc,CACd9nU,QAAS1sJ,KAAK6Z,WACdlX,KAAM0gJ,EACN06C,KAAM20R,EACNruZ,KAAM8mU,EACN4lF,wBAAyB/wd,KAAK0oY,yBAC9B8tB,eAAgBx2Z,KAAKsud,0BACrB0C,YAAahxd,KAAKuud,wBAEtBvud,KAAKurY,OAAS,IAAI2mF,EAAuBsC,GACzCx0d,KAAKo0d,gBACDp0d,KAAKsyd,wBACLj7N,EAAAA,EAAAA,QAAgCr3P,KAAKsyd,uBAAwBtyd,KAAKyud,kBAAkBhkd,KAAKzK,QAGjG6nY,mBAAoB,WAChB7nY,KAAKy0d,2BACLz0d,KAAK00d,4BAETD,yBAA0B,WAClBz0d,KAAKu0d,gBACLv0d,KAAKu0d,cAAc/yd,SACnBxB,KAAKu0d,cAAgB,MAEzB,IAAIx8W,EAAS/3G,KAAK63F,SACdj/D,EAAc54B,KAAK6kB,OAAO,eAC1B8vc,EAAwB,CACxB1qd,GAAI2uB,EAAc,MAAMgD,OAAO,IAAIu1N,EAAAA,QAAQ,EAC3C,sBAAuBv4N,GAEvB2hK,EAAev6L,KAAKu0d,eAAgB7md,EAAAA,EAAAA,GAAE,SAASkS,KAAK+0c,GACxDp6R,EAAas7D,YAAY99I,GACzBwiF,EAAa96K,SAASqyc,IAE1B4C,yBAA0B,WAAW,WAC7BE,GAAaxmQ,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,GAAkB7hC,KAAK+0N,MACrDY,EAAAA,EAAAA,GAAgB31N,KAAKu0d,cAAeK,GAAY,WAC5Cj/P,EAAAA,EAAAA,QAAqB,EAAK99H,SAAU,YAExC73F,KAAKkpY,gCAET2rF,aAAc,WACV,OAAO70d,KAAKu0d,gBAAiB7md,EAAAA,EAAAA,MAEjC4tX,mBAAoB,SAAS96X,GACzB,IAAIu3G,EAAS/3G,KAAK63F,SAClBr3F,EAAE4G,kBACFpH,KAAK0rV,sBAAsBlrV,GAC3BR,KAAKm9X,eACJn9X,KAAK6sc,cAAgBl3O,EAAAA,EAAAA,QAAqB59G,EAAQ,SACnD49G,EAAAA,EAAAA,QAAqB59G,EAAQ,UAEjColR,YAAa,WACTn9X,KAAKu7B,SAETilT,cAAe,WAAW,WAClBzoO,EAAS/3G,KAAK63F,UAClBp9E,EAAAA,EAAAA,IAAKu3c,GAAa,SAACt3c,EAAGF,GAClB,GAAI,EAAK+rO,sBAAsB,KAAO/rO,GAAQ,CAC1C,IAAIiG,EAAS,EAAK+6M,sBAAsB,KAAOhhN,EAAO,CAClD68N,kBAAmB,CAAC,cAExB1hB,EAAAA,EAAAA,GAAgB59G,GAAQq2G,EAAAA,EAAAA,cAAa5zM,EAAMyoB,cAAe,EAAK8xL,OAAO,SAAAv0N,GAC9D,EAAKqkP,WAGTpkO,EAAO,CACHjG,MAAOha,YAM3BwoY,eAAgB,WAAW,WACnBjxR,EAAS/3G,KAAK63F,UAClBp9E,EAAAA,EAAAA,IAAKu3c,GAAa,SAACt3c,EAAGF,GAClBm7M,EAAAA,EAAAA,IAAiB59G,GAAQq2G,EAAAA,EAAAA,cAAa5zM,EAAMyoB,cAAe,EAAK8xL,UAEpE/0N,KAAKwgV,iBAETm/C,iBAAkB,WACd3/X,KAAK6kB,OAAO,OAAQ7kB,KAAK63F,SAAS9zE,QAEtC8/a,gBAAiB,SAASrjc,GACtB,IAAIu3G,EAAS/3G,KAAK63F,SACdi9X,EAAct0d,EAAEwlC,SAAW,WAAYyiQ,EAAAA,EAAAA,kBAAiBjoS,GACxDu0d,EAAah9W,EAAOh0F,QAAU/jB,KAAK6kB,OAAO,SAC1Ciwc,GAAeC,GACfp/P,EAAAA,EAAAA,QAAqB59G,EAAQ,WAGrCw4V,+BAAgC,WAC5B,MAAO,oBAEXjvC,wBAAyB,WACrB,IAAI0zD,GAAgB5mQ,EAAAA,EAAAA,cAAapuN,KAAKi1d,wBAAyB,GAAGr5b,OAAO57B,KAAK+0N,KAAM,eAChF6yO,GAAmBx5O,EAAAA,EAAAA,cAAapuN,KAAK6kB,OAAO7kB,KAAKuwc,kCAAmC,GAAG30a,OAAO57B,KAAK+0N,KAAM,gBACzGmgQ,GAAe9mQ,EAAAA,EAAAA,cAAa,UAAW,GAAGxyL,OAAO57B,KAAK+0N,KAAM,eAC5Dh9G,EAAS/3G,KAAK63F,SAClB89H,EAAAA,EAAAA,GAAgB59G,EAAQi9W,EAAeh1d,KAAK2/X,iBAAiBl1X,KAAKzK,OAClE21N,EAAAA,EAAAA,GAAgB59G,EAAQ6vV,EAAkB5nc,KAAK2wW,yBAAyBlmW,KAAKzK,OAC7E21N,EAAAA,EAAAA,GAAgB59G,EAAQm9W,EAAcl1d,KAAK6jc,gBAAgBp5b,KAAKzK,QAEpEm1d,uBAAwB,WACpB,IAAIC,EAAuB,IAAIx5b,OAAO57B,KAAK+0N,KAAM,eAC7CsgQ,EAAsB,IAAIz5b,OAAO57B,KAAK+0N,KAAM,cAChDY,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAUu9X,GAChCz/P,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAUw9X,IAEpCtsF,yBAA0B,WACtB/oY,KAAKm1d,yBACLn1d,KAAKsha,2BAET2zD,sBAAuB,WACnB,MAAO,yBAEXlsL,aAAc,WACV,OAAO/oS,KAAK63F,UAEhBy9X,kBAAmB,WACf,OAAOt1d,KAAKF,WAEhBy1d,SAAU,SAASz1d,GACf,OAAOA,IAAYE,KAAK63F,SAASh4E,IAAI,IAEzCwjZ,yBAA0B,SAAS7oZ,GAC/B,GAAIA,EAAMiiR,qBACN,OAAO,EAEX,IAAI+4L,EAAgBx1d,KAAKy1d,gBAAgBj7c,EAAM6xB,eAO/C,MANI,YAAc7xB,EAAMmJ,KACpB6xc,EAAgBA,GAAiBx1d,KAAKy1d,gBAAgBj7c,EAAM5T,UAAY5G,KAAKu1d,SAAS/6c,EAAM5T,QACpF4ud,GACRx1d,KAAK88V,mBAAkB,EAAO98V,KAAK6Z,YAEvC27c,GAAiBh7c,EAAMnT,iBAChBmud,GAEXC,gBAAiB,SAAS7ud,GACtB,QAAS5G,KAAK6Z,WAAWwC,KAAKzV,GAAQtG,QAE1C0jd,kBAAmB,WACf,OAAOhkd,KAAK6Z,YAEhB45U,gBAAiB,SAASj5U,GACtBxa,KAAKqja,yBAAyB7oZ,GAC9Bxa,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B2rV,iBAAkB,SAASl5U,GACvBxa,KAAKqja,yBAAyB7oZ,GAC9Bxa,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAE9B+0V,kBAAmB,SAAS3qN,EAAWt4H,GACnC7Z,KAAKuxN,SAASp/E,EAAWnyI,KAAKgkd,kBAAkBnqc,KAEpD87W,eAAgB,SAAS71X,GACrB,OAAOE,KAAKuxN,UAAS7jN,EAAAA,EAAAA,GAAE5N,GAAWE,KAAK6Z,cAE3CsvX,sBAAuB,WACnB,IAAIpxR,EAAS/3G,KAAK63F,SAClB89H,EAAAA,EAAAA,GAAgB59G,EAAQ,aAAc/3G,KAAKkpY,6BAA6Bz+X,KAAKzK,QAEjFkpY,6BAA8B,WAC1B,IAAIvmY,EAAO3C,KAAK63F,SAAS9zE,MACrBoxB,GAAW,KAAOxyC,GAAQ,OAASA,IAAS3C,KAAK4ha,gBACrD5ha,KAAKuqd,iBAAiBp1a,IAE1Bw7T,yBAA0B,SAASnwW,EAAGmga,GAC9B3ga,KAAK6kB,OAAO,cAGhB7kB,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,QAAS9c,UAAUzH,OAAS,EAAIqga,EAAiB3ga,KAAK63F,SAAS9zE,OAC3E/jB,KAAK0rV,2BAAsB,KAE/BonI,sBAAuB,WACnB9yd,KAAK01d,gBAAkB11d,KAAKw7N,sBAAsB,aAAc,CAC5D6b,kBAAmB,CAAC,cAExB1hB,EAAAA,EAAAA,IAAiB31N,KAAK63F,SAAU,iCAChC89H,EAAAA,EAAAA,GAAgB31N,KAAK63F,SAAU,gCAAiC73F,KAAK21d,mBAAmBlrd,KAAKzK,QAEjG21d,mBAAoB,SAASn1d,GACrBR,KAAK6kP,WAGL,WAAY4jD,EAAAA,EAAAA,kBAAiBjoS,IAC7BR,KAAK01d,gBAAgB,CACjBl7c,MAAOha,KAInBq9F,aAAc,WACV79F,KAAKmhB,SAASqlO,OAAO,OAAQ,MAC7BxmP,KAAKsgV,gBAETjkH,SAAU,WACNr8N,KAAK01d,qBAAkB,EACvB11d,KAAKuxN,YAET+gI,kBAAmB,WACf,OAAOtyV,KAAK63F,UAEhBi3S,kBAAmB,WACf,OAAO9uY,KAAK63F,SAAS/9D,GAAG8/L,EAAAA,EAAAA,iBAA4B55N,KAAK63F,SAAS,MAEtEqkI,eAAgB,SAAS11M,GACrB,IACUhZ,EAGNgZ,EAHAhZ,KACUg4O,EAEVh/N,EAFAg/N,SACO5jP,EACP4kB,EADA5kB,MAEAqoC,EAAYz8B,EAAKk7C,QAAQ,KAAM,IACnC,GAAIspa,EAAYl2V,SAAS7xF,GACrBjqC,KAAKgpY,sBAGT,OAAQx7X,GACJ,IAAK,mBACDxN,KAAK+oY,2BACL/oY,KAAK2xc,qBACL3xc,KAAKgpY,iBACL,MACJ,IAAK,iBACDhpY,KAAKitY,2BACL,MACJ,IAAK,oBACDjtY,KAAKuxN,SAAS/qM,GACdxmB,KAAKi0d,kBACL,MACJ,IAAK,aACDj0d,KAAKg0d,yBACL,MACJ,IAAK,OACDh0d,KAAKyoa,mBACL,MACJ,IAAK,aACDzoa,KAAK8yd,wBACL,MACJ,IAAK,cACD9yd,KAAK6nY,qBACL7nY,KAAKo0d,gBACL,MACJ,IAAK,QACDp0d,KAAKurY,OAAOtqW,WAAWr/B,GACvB5B,KAAKo0d,gBACL,MACJ,IAAK,YACDp0d,KAAKurY,OAAOqqF,WAAWh0d,GACvB,MACJ,IAAK,YACD5B,KAAKurY,OAAOsqF,WAAWj0d,GACvB5B,KAAKo0d,gBACL,MACJ,IAAK,QACDp0d,KAAKuxN,SAAS/qM,GACdxmB,KAAKurY,OAAO0D,eAAejvY,KAAKsud,2BAChC,MACJ,IAAK,WACL,IAAK,WACDtud,KAAK0sY,iBACL1sY,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,kBACDxmB,KAAK0sY,eAAe,CAAC,UACrB,MACJ,IAAK,OAkCL,IAAK,qBACD,MAjCJ,IAAK,QACD1sY,KAAK69F,eACL79F,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,YACDxmB,KAAK2sd,sBAAsB3sd,KAAK63F,SAAU73F,KAAK6kB,OAAOrX,IACtD,MACJ,IAAK,cACDxN,KAAK0tY,qBACL1tY,KAAKyud,oBACL,MACJ,IAAK,UACGjpO,IAAah4O,GACb2kd,EAAuBvwd,GAE3B5B,KAAKuzd,yBACLvzd,KAAKq4X,0BACLr4X,KAAK4yd,sBAAsB5yd,KAAK6kB,OAAO,gBACvC7kB,KAAKyud,oBACLzud,KAAKurY,OAAOuqF,8BAA8B91d,KAAK0oY,0BAC/C,MACJ,IAAK,UACD1oY,KAAKuxN,SAAS/qM,GACV5kB,GAAS5B,KAAK6kB,OAAO,aACrB7kB,KAAKuzd,yBACLvzd,KAAKq4X,0BACLr4X,KAAK4yd,sBAAsB5yd,KAAK6kB,OAAO,iBAE3C,MACJ,IAAK,wBACD7kB,KAAK0rP,cACL,MAGJ,QACI1rP,KAAKuxN,SAAS/qM,KAG1BiiZ,iBAAkB,WACdzoa,KAAK2oa,cAAc3oa,KAAK6kB,OAAO,UAEnC8jZ,cAAe,SAAShlZ,GACpB,IAAI6U,EAAQx4B,KAAK63F,SACb,WAAal0E,IACbA,EAAO,QAEX,IACI6U,EAAMiuF,KAAK,OAAQ9iG,GACrB,MAAOnjB,GACLg4B,EAAMiuF,KAAK,OAAQ,UAG3BumB,UAhoBgC,SAgoBtBx/H,GACN,OAAOxN,KAAKqyd,kBAAkBrlV,UAAUx/H,IAE5CzM,MAAO,WACH40N,EAAAA,EAAAA,QAAqB31N,KAAK63F,SAAU,UAExCt8D,MAAO,WACCv7B,KAAKozd,iBACLpzd,KAAKozd,gBAAiB,EACtBpzd,KAAKqtY,0BAET,IAAIrgJ,EAAiBhtP,KAAKyyN,qBACtBzyN,KAAK6kB,OAAO,WAAamoO,EAAeprP,OACxC5B,KAAKmhB,SAASqlO,OAAO,OAAQ,IAC7BxmP,KAAKsgV,gBAELtgV,KAAK6kB,OAAO,QAASmoO,EAAeprP,QAG5C02B,GAAI,SAAS2R,EAAWijG,GACpB,IAAIr+H,EAAS7O,KAAKuxN,SAAStnL,EAAWijG,GAClC1yH,EAAQyvB,EAAUi7C,OAAO,GAAGwgC,cAAgBz7E,EAAUt5B,OAAO,GAIjE,OAHIqhd,EAAY7rd,QAAQqU,IAAU,GAC9Bxa,KAAKgpY,iBAEFn6X,KAGf,oOCjtBIknd,EAAa,IACbC,EAAe3zO,EAAAA,QAAAA,QAAc,CAC7Bz+G,KAAM,SAASt0D,GACXtvE,KAAKukB,OAASwxc,GACdjtd,EAAAA,EAAAA,GAAO9I,KAAMsvE,IAEjBhxB,KAAM,SAASm1B,GACX,IAAK1rE,UAAUzH,OACX,OAAON,KAAKi2d,MAEhBj2d,KAAKi2d,MAAQxiZ,GAEjB9wE,KAAMqvN,EAAAA,KACNpwN,MAAOowN,EAAAA,KACP5H,SAAU4H,EAAAA,KACV7yM,OAAQ6yM,EAAAA,KACRkkQ,qBAAsB,SAAS1vc,EAAM8oD,GACjC,IAAI6mZ,EAAaC,EAAeC,EAChC/mZ,EAASA,GAAU,GACnB,IAAIgnZ,EAAmBxvd,OAAOtB,UAAUsxE,eAAer2E,KAAK+lB,EAAM,SAAW,QAAU,OAKvF,OAJAA,EAAK8vc,GAAoB,QAAUH,EAAc7mZ,EAAOkP,WAAQ,IAAW23Y,EAAcA,EAAc3vc,EAAK8vc,GAC5G9vc,EAAK3K,MAAQ,QAAUu6c,EAAgB9mZ,EAAOzzD,aAAU,IAAWu6c,EAAgBA,EAAgB5vc,EAAK3K,MACxG2K,EAAKlmB,OAAS,QAAU+1d,EAAiB/mZ,EAAOhvE,cAAW,IAAW+1d,EAAiBA,EAAiB7vc,EAAKlmB,OAC7GkmB,EAAK3lB,MAAQ2lB,EAAK3lB,MAAQ,EACnB2lB,GAEX+U,MAAOy2L,EAAAA,KACP/zG,MAAO+zG,EAAAA,KACPhoJ,MAAO,SAASnpE,GAEZ,OADAA,EAAQA,GAAS,EACVb,KAAKs+C,OAAO0rB,MAAMnpE,EAAQ,IAErC01d,WAAY,WACR,OAAO,GAEX1tD,cAAe,SAAStiD,EAAOiwG,EAAoBn7X,GAC/C,OAAOm7X,EAAqBx2d,KAAKy2d,iBAAiBlwG,EAAO,EAAGlrR,GAAQr7F,KAAK02d,kBAAkBnwG,EAAO,EAAGlrR,IAEzGo7X,iBAAkBzkQ,EAAAA,KAClB0kQ,kBAAmB1kQ,EAAAA,KACnB9hM,QAAS8hM,EAAAA,OAEF2kQ,EAAgBX,EAAah3T,QAAQ,CAC5C1gH,KAAM0zK,EAAAA,KACN7yM,OAAQ,WACJ,OAAO,GAEXxc,KAAM,WACF,MAAO,IAEXf,MAAO,WACH,MAAO,IAEXooE,MAAO,WACH,OAAO,GAEXogJ,SAAU,WACN,MAAO,IAEXy+M,cAAe,WACX,OAAO,GAEX34Y,QAAS,WACL,OAAO,KAGJ0mc,EAAWZ,EAAah3T,QAAQ,CACvCr8J,KAAM,WACF,OAAQ3C,KAAKukB,SAAWwxc,EAAa/1d,KAAKukB,OAASvkB,KAAK62d,UAAY72d,KAAKs+C,OAAO37C,QAEpFf,MAAO,WACH,OAAO5B,KAAKukB,OAASvkB,KAAKs+C,OAAO18C,SAErCwoN,SAAU,WACN,OAAOpqN,KAAKukB,OAASvkB,KAAKs+C,OAAO8rK,YAErCjrM,OAAQ,SAASqH,GACb,IAAIg4D,EAAM13E,OAAOtB,UAAUsxE,eAAer2E,KAAK+lB,EAAM,SAAWA,EAAK5kB,MAAQ4kB,EAAK7jB,KAClF,IAAK67E,IAAQA,EAAIl+E,SAAWkmB,EAAKlmB,OAC7B,OAAO,EAEX,GAAIkmB,EAAK3K,MACL,OAAO7b,KAAKs+C,OAAOn/B,OAAOnf,KAAKk2d,qBAAqB1vc,EAAM,CACtD3K,MAAO2K,EAAK3K,MAAQ,KAG5B,IAAIw/E,EAAO7c,EAAI,GACXs4Y,EAAOt4Y,EAAIxyC,UAAU,GAEzB,OADAhsC,KAAK+2d,eAAe17X,EAAM70E,GACnBxmB,KAAKg3d,YAAch3d,KAAKs+C,OAAOn/B,OAAOnf,KAAKk2d,qBAAqB1vc,EAAM,CACzEg4D,IAAKs4Y,EACLx2d,OAAQkmB,EAAKlmB,OAAS,KACpB,EAAIN,KAAKmf,OAAOnf,KAAKk2d,qBAAqB1vc,EAAM,CAClDg4D,IAAKs4Y,EACLx2d,OAAQkmB,EAAKlmB,OAAS,MAG9B29G,MAAO,SAASz3F,GACZxmB,KAAK+2d,eAAehB,EAAYvvc,GAChCxmB,KAAKs+C,OAAO2/D,MAAMj+G,KAAKk2d,qBAAqB1vc,KAEhD+U,MAAO,WACHv7B,KAAKg3d,WAAU,GACfh3d,KAAKs+C,OAAO/iB,SAEhBw7b,eAAgB,SAAS17X,EAAM70E,GAE3B,GADAxmB,KAAKg3d,WAAU,GACVh3d,KAAKi3d,WAAW57X,EAAM70E,GAA3B,CAGA,IAAI0wc,EAAe77X,IAAS06X,EAAa/1d,KAAK62d,SAAWx7X,EACzD70E,EAAK2wc,SAAW3wc,EAAK2wc,SAASnrb,UAAU,EAAGxlB,EAAK3lB,OAASq2d,EAAe1wc,EAAK2wc,SAASnrb,UAAUxlB,EAAK3lB,MAAQ,GAC7Gb,KAAKg3d,WAAU,GACfh3d,KAAKukB,OAAS82E,IAElB27X,UAAW,SAASp1d,GAChB,IAAKmG,UAAUzH,OACX,QAASN,KAAKo3d,YAElBp3d,KAAKo3d,cAAgBx1d,GAEzBooE,MAAO,SAASnpE,GACZ,OAAOb,KAAKukB,SAAWwxc,EAAal1d,GAAS,EAAIb,KAAKuxN,SAAS1wN,IAEnEo2d,WAAY,SAAS57X,EAAM70E,GACvB,OAAI60E,IAAS06X,GAGN/1d,KAAK+0E,SAASsmB,EAAM70E,IAE/BuuD,SAAU,SAASsmB,EAAM70E,GACrB,IAAI6wc,EAAer3d,KAAKq3d,aACxB,OAAIA,aAAwBrua,OACjBqua,EAAan0b,KAAKm4D,IAEzBngB,EAAAA,EAAAA,IAAWm8Y,GACJA,EAAah8X,EAAM70E,EAAK3lB,MAAO2lB,EAAK2wc,UAE3C5xd,MAAMi2E,QAAQ67Y,GACPA,EAAav7V,SAASzgC,GAE1Bg8X,IAAiBh8X,GAE5Bk7X,WAAY,SAAShwG,GACjB,OAAO,IAAMA,EAAQvmX,KAAKg3d,YAAch3d,KAAKs+C,OAAOi4a,WAAWhwG,EAAQ,IAE3EkwG,iBAAkB,SAASlwG,EAAO1lX,EAAOw6F,GACrC,OAAIx6F,GAAS0lX,EACF1lX,EAEJb,KAAKs+C,OAAOm4a,iBAAiBlwG,EAAO1lX,EAAQ,EAAGw6F,IAASx6F,EAAQ,GAE3E61d,kBAAmB,SAASnwG,EAAO1lX,GAC/B,OAAIA,GAAS0lX,EAAQ,EACVA,EAEJvmX,KAAKs+C,OAAOo4a,kBAAkBnwG,EAAO1lX,EAAQ,IAAMA,EAAQ,GAEtEqvB,QAAS,SAAS1J,GACd,OAAOxmB,KAAK+0E,SAAS/0E,KAAKukB,OAAQiC,IAASxmB,KAAKs+C,OAAOpuB,QAAQlwB,KAAKk2d,qBAAqB1vc,OAGtF8wc,EAAeV,EAAS53T,QAAQ,CACvCp9J,MAAO,WACH,OAAO5B,KAAKs+C,OAAO18C,SAEvBud,OAAQ,SAASqH,GACb,IAAI+wc,EAAmBzwd,OAAOtB,UAAUsxE,eAAer2E,KAAK+lB,EAAM,SAC9Dg4D,EAAM+4Y,EAAmB/wc,EAAK5kB,MAAQ4kB,EAAK7jB,KAC/C,IAAK67E,EAAIl+E,SAAWkmB,EAAKlmB,OACrB,OAAO,EAEX,GAAIkmB,EAAK3K,OAAS07c,EACd,OAAOv3d,KAAKs+C,OAAOn/B,OAAOnf,KAAKk2d,qBAAqB1vc,EAAM,CACtD3K,MAAO2K,EAAK3K,OAAS2K,EAAK3K,MAAQ,KAG1C,IAAIw/E,EAAO7c,EAAI,GACXs4Y,EAAOt4Y,EAAIxyC,UAAU,GACzBhsC,KAAK+2d,eAAe17X,GACpB,IAAIm8X,EAAWx3d,KAAKi3d,WAAW57X,GAAQr7F,KAAKk2d,qBAAqB1vc,EAAM,CACnEg4D,IAAKs4Y,EACLx2d,OAAQkmB,EAAKlmB,OAAS,IACrBkmB,EACL,OAAOxmB,KAAKs+C,OAAOn/B,OAAOq4c,GAAY,GAE1Cv5W,MAAO,SAASz3F,GACZxmB,KAAKg3d,WAAU,GACfh3d,KAAKs+C,OAAO2/D,MAAMj+G,KAAKk2d,qBAAqB1vc,KAEhDuwc,eAAgB,SAAS17X,GACrBr7F,KAAKg3d,UAAUh3d,KAAK+0E,SAASsmB,KAEjCtmB,SAAU,SAASsmB,GACf,OAAOA,IAASr7F,KAAK62d,UAEzB7sZ,MAAO,SAASnpE,GAEZ,OADAA,EAAQA,GAAS,EACVb,KAAKs+C,OAAO0rB,MAAMnpE,EAAQ,IAErC41d,iBAAkB,SAASlwG,EAAO1lX,EAAOw6F,GACrC,OAAIx6F,GAAS0lX,GAASlrR,IAASr7F,KAAK62d,SACzBh2d,EAEP0lX,IAAU1lX,EAAQ,GAAKb,KAAKg3d,YACrBzwG,EAEJvmX,KAAKs+C,OAAOm4a,iBAAiBlwG,EAAO1lX,EAAQ,EAAGw6F,IAE1Dq7X,kBAAmB,SAASnwG,EAAO1lX,GAC/B,OAAIA,GAAS0lX,EAAQ,EACV,EAEJvmX,KAAKs+C,OAAOo4a,kBAAkBnwG,EAAO1lX,EAAQ,IAExDqvB,QAAS,SAAS1J,GACd,OAAOxmB,KAAKs+C,OAAOpuB,QAAQlwB,KAAKk2d,qBAAqB1vc,8DC1NzD42W,EAAuB,SAGvBq6F,EAAqB,CAAC,wBAAyB,yBAA0B,gBAAiB,0BAC1FC,EAAsB,CAAC,cAAe,eACtCC,EAAc,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,eAE3E,SAASC,EAAet3d,GACpB,MANa,IAMKkrH,OAAOlrH,OAERu3d,EAAAA,WACjB,WAAYr1c,IAAQ,eAChBxiB,KAAKwiB,OAASA,8CAElB,WAAgB,MACZ,OAAO,EAAAxiB,KAAKwiB,QAAOqC,OAAZ,QAAsB9c,uCAEjC,WACI,OAAO/H,KAAKwiB,OAAOq1E,qCAEvB,SAAassU,GACT,IAAKA,EACD,OAAOnka,KAAKwiB,OAAOw9W,SAEvBhgY,KAAKwiB,OAAOw9W,OAAOmkC,4CAEvB,WAA4B,WACxB,GAAKnka,KAAK83d,cAAc,oBAAoBrqd,MAAM,KAAKquH,SAAS,UAAhE,CAGA,IAAI/jB,EAAS/3G,KAAK+3d,eACdh+O,GAAY3rB,EAAAA,EAAAA,cA9BP,wBA8BgCgvK,GACzCsR,EAAAA,EAAAA,GAAgB32R,EAAQgiI,GAAW,SAAAv5O,GAC/B,EAAKgiB,OAAOw1c,eAAex3d,0CAGnC,WACIR,KAAKi4d,cAAgBj4d,KAAK83d,cAAc,QACxC93d,KAAKk4d,WAAal4d,KAAKm4d,4CAE3B,SAAc39c,GACV,IACmB49F,EACf59F,EADA49F,cAEJ,GAAKA,EAAL,CAGA,IACes8B,EACXt8B,EADAs8B,UAEJ,GAAIgjV,EAAoB57V,SAAS4Y,GAC7B10I,KAAKo4d,gCACF,GAAIX,EAAmB37V,SAAS4Y,GACnC10I,KAAKq4d,sCACF,CACH,IAAIC,EAAet4d,KAAKm4d,eACxB,IAAKG,EAAallc,IACd,OAEJpzB,KAAKu4d,qBACLv4d,KAAKw4d,iBAAiBpgX,GACtBp4G,KAAKm4d,aAAaG,GAClBt4d,KAAKy4d,4BAA4BrgX,EAAcvqG,MAE/C7N,KAAK83d,cAAc,UAAY93d,KAAKi4d,eACpCz9c,EAAMitR,oEAGd,WACI,IAAI8+E,EAAQvmX,KAAKm4d,eACjBn4d,KAAK04d,kBAAkB,CACnB78c,MAAO0qW,EAAM1qW,MACbvb,OAAQimX,EAAMnzV,IAAMmzV,EAAM1qW,MAC1BlZ,KAAM,KAEV3C,KAAKm4d,aAAan4d,KAAKk4d,2DAE3B,WACIl4d,KAAKu4d,qBACL,IAAIhyG,EAAQvmX,KAAKm4d,eACjBn4d,KAAKwiB,OAAOm2c,sBACZ34d,KAAKwiB,OAAOo2c,eACe54d,KAAKm4d,eACPt8c,QAAU0qW,EAAM1qW,QACrC7b,KAAKwiB,OAAOq2c,uBACZ74d,KAAKwiB,OAAOo2c,kDAGpB,WACI,IAAIE,EAAkBC,EAClBz4d,GAAU,QAAUw4d,EAAmB94d,KAAKk4d,kBAAe,IAAWY,OAAmB,EAASA,EAAiB1lc,MAAQ,QAAU2lc,EAAoB/4d,KAAKk4d,kBAAe,IAAWa,OAAoB,EAASA,EAAkBl9c,QAAU,EACjP0qW,EAAQvmX,KAAKm4d,eACZn4d,KAAKg5d,gBACNh5d,KAAKwiB,OAAOq2c,uBACZ74d,KAAK04d,kBAAkB,CACnB78c,MAAO0qW,EAAM1qW,MACbvb,OAAQA,EACRqC,KAAMi1d,EAAet3d,iDAIjC,SAA4BuN,GACxB,IAAIord,EAAuBC,EACvBv2d,EAAO,OAASkL,QAAQ,IAAWA,EAAOA,EAAO,GACrD7N,KAAKwiB,OAAOm2c,sBACQ34d,KAAK04d,kBAAkB,CACvC78c,MAAO,QAAUo9c,EAAwB,QAAUC,EAAoBl5d,KAAKk4d,kBAAe,IAAWgB,OAAoB,EAASA,EAAkBr9c,aAAU,IAAWo9c,EAAwBA,EAAwB,EAC1N34d,OAAQqC,EAAKrC,QAAU,EACvBqC,KAAMA,KAGN3C,KAAKm4d,aAAan4d,KAAKk4d,6CAG/B,SAAkB1xc,GACd,IAAI2yc,EAAa3yc,EAAK7jB,KAAKrC,OACvB84d,EAAsBp5d,KAAKwiB,OAAO62c,aAAa7yc,GAEnD,GADAxmB,KAAKwiB,OAAO82c,eACRt5d,KAAKwiB,OAAOg0c,qBAAsB,CAClC,MAGIx2d,KAAKm4d,eAFEt8c,EADX,EACIA,MACKuX,EAFT,EAEIA,IAEAmmc,EAAaH,EAAsBD,EAClBC,EAAsB,GACrB,IAAMD,GACxBn5d,KAAKm4d,aAAa,CACdt8c,MAAOA,EAAQ09c,EACfnmc,IAAKA,EAAMmmc,IAGnBv5d,KAAKwiB,OAAOo2c,eAEhB,QAASQ,iCAEb,WAAkB,WAGd,GAFAp5d,KAAKwiB,OAAOg3c,uBACZx5d,KAAKwiB,OAAOm2c,uBACP34d,KAAKwiB,OAAOi3c,iBAAmBz5d,KAAK83d,cAAc,WACnD93d,KAAKwiB,OAAOo2c,mBACT,CACH,IAAIryG,EAAQvmX,KAAKwiB,OAAOk3c,gBAAgB1vZ,QACxChqE,KAAKuja,cAAgB1ga,YAAW,WAC5B,EAAKs1d,aAAa,CACdt8c,MAAO0qW,EACPnzV,IAAKmzV,MAEV,oCAGX,SAAiB/rW,GACbxa,KAAKwiB,OAAOw1c,eAAex9c,GACvB,YAAcxa,KAAK83d,cAAc,iBAAmB93d,KAAKwiB,OAAOi3c,kBAChEz5d,KAAK83d,cAAc,OAAQ,IAC3B93d,KAAKwiB,OAAOiE,mBAAmB,gCAGvC,SAAYjM,GACR,IACYgI,EACRxiB,KADAwiB,OAEJA,EAAOm3c,gBAAgBn/c,GAAO,WACrBgI,EAAOosc,iBACRpsc,EAAOo3c,WAjKN,mCAqKb,SAAYp/c,GACR,IAAI+rW,EAAQvmX,KAAKm4d,eACb0B,EAAe75d,KAAK+3d,eAAeh0c,MAAMioB,UAAUu6U,EAAM1qW,MAAO0qW,EAAMnzV,KAC1EpzB,KAAKwiB,OAAOm3c,gBAAgBn/c,GAAO,kBAAMs/c,EAAAA,EAAAA,IAAiBt/c,EAAOq/c,kCAErE,WAAe,WACX75d,KAAK+5d,kBACL/5d,KAAKg6d,WAAan3d,YAAW,WACzB,IAAIjB,EAAQ,EAAK4gB,OAAOy3c,gBAAgB,EAAKlC,eAAeh0c,OAC5D,EAAK+zc,cAAc,QAASl2d,mCAGpC,SAAc4Y,GACV,IACYgI,EACRxiB,KADAwiB,OAEJ,IAAIxiB,KAAK83d,cAAc,YAAvB,CAGA,IAAIvxG,EAAQvmX,KAAKm4d,eACjB31c,EAAOm3c,gBAAgBn/c,GAAO,WAC1B,IAAI0/c,GAAaJ,EAAAA,EAAAA,IAAiBt/c,GAC9B2/c,EAAW33c,EAAOk3c,gBAAgB/2d,OAAOqpC,UAAUu6U,EAAMnzV,KACzDgnc,EAAW53c,EAAO62c,aAAa,CAC/B12d,KAAMu3d,EACNr+c,MAAO0qW,EAAM1qW,MACbvb,OAAQ45d,EAAW55d,SAEnB6ja,EAAW59C,EAAM1qW,MAAQu+c,EAC7B53c,EAAO62c,aAAa,CAChB12d,KAAMw3d,EACNt+c,MAAOsoZ,EACP7ja,OAAQ65d,EAAS75d,SAErBkiB,EAAOw9W,OAAO,CACVnkX,MAAOsoZ,EACP/wY,IAAK+wY,wCAIjB,SAAiB3pZ,GAAO,WAERgI,EACRxiB,KADAwiB,OAEA63c,EAAWr6d,KAAK+3d,eAAeh0c,MACnC/jB,KAAKs6d,mBAAqBz3d,YAAW,WAC7B,EAAKm2d,gBACLx2c,EAAOm3c,gBAAgBn/c,GAAO,WAC1BgI,EAAO62c,aAAa,CAChB12d,KAAM03d,EACNx+c,MAAO,EACPvb,OAAQ+5d,EAAS/5d,YAGzBkiB,EAAO+3c,+CAInB,WACI,IAAIxiX,EAAS/3G,KAAK+3d,eAClB,GAAI3xP,EAAAA,QAAAA,OAAgB,CAChB,IAAIo0P,EACAhic,EAAQu/E,EAAOl4F,IAAI,GACvB,OAAO,QAAU26c,EAAiB,OAAShic,QAAS,IAAWA,OAAQ,EAASA,EAAMugE,QAAQ,4BAAyB,IAAWyhY,GAAiBA,EAEvJ,OAAO,iCAEX,WACIt8b,aAAal+B,KAAKg6d,sCAEtB,SAAWS,GAAa,WACpB,OAAO,SAAAj0c,GACH,IAAIiuD,EACJ,QAAUA,EAAQ,EAAK,IAAI74C,OAAO6+b,EAAa,mBAAgB,IAAWhmZ,GAAiBA,EAAMh0E,KAAK,EAAM+lB,gCAGpH,WAAe,WACPuxF,EAAS/3G,KAAK+3d,eAClBJ,EAAY13d,SAAQ,SAAAgqC,GAChB,IAAI8vM,GAAY3rB,EAAAA,EAAAA,cAAankL,EAAUhH,cAAem6V,GACtDsR,EAAAA,EAAAA,GAAgB32R,EAAQgiI,EAAW,EAAKqqD,WAAWn6P,OAEvDjqC,KAAK06d,wDAET,WACIhsF,EAAAA,EAAAA,IAAiB1uY,KAAK+3d,eAAgB,IAAIn8b,OAAOwhW,yBAErD,WACIp9X,KAAK+5d,kBACL77b,aAAal+B,KAAKuja,eAClBrlY,aAAal+B,KAAKs6d,0BAvPLzC,GCoBjB8C,EAAY,WACZ,MAAO,IAEPp0G,EAAQq0G,EAAAA,EAGRC,EAA0B,uBAC1BC,EAAoB,UAEpBC,EAAmB,CACnB,EAAG,QACH,EAAG,UACH,IAAK,YACL3rU,EAAG,SAAS/zD,GACR,OAAO2/X,EAAc3/X,IAEzBnL,EAAG,SAASmL,GACR,OAAO2/X,EAAc3/X,IAAS4/X,EAAY5/X,IAE9C6sB,EAAG,KACH1sG,EAAG,IACH0/c,EAAG,SAAS7/X,GACR,OAAO2/X,EAAc3/X,IAAS8/X,EAAc9/X,IAEhD51C,EAAG,SAAS41C,GACR,OAAO2/X,EAAc3/X,IAAS8/X,EAAc9/X,IAAS4/X,EAAY5/X,KAIzE,SAAS8/X,EAAc9/X,GACnB,MAAO,QAAQn4D,KAAKm4D,GAGxB,SAAS2/X,EAAc3/X,GACnB,IAAIkoE,EAAOloE,EAAKjqC,aAChB,OAAO,GAAKmyG,GAAQA,EAAO,IAAM,GAAKA,GAAQA,EAAO,KAAOA,EAAO,IAGvE,SAAS03T,EAAY5/X,GACjB,MAAO,MAAQA,EAEnB,IAAI+/X,EAAiBhJ,EAAAA,EAAAA,QAAuB,CACxC3/P,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B8pQ,KAAM,GACNxE,SAAU,IACVyE,UAAW,GACXC,mBAAoBp+J,EAAAA,EAAAA,OAA2B,mBAC/Cq+J,gBAAgB,EAChBC,aAAc,YAGtBnxI,eAAgB,WACZ,IAAI10J,EAAO51L,KACP07d,EAAgB,CAChB3vV,IAAK6pD,EAAK+lS,cAAcv3L,WAAW,OACnCv4J,MAAO+pD,EAAKoiS,gBAEZnpd,EAAS+mL,EAAK27B,WAQlB,OAPA92M,EAAAA,EAAAA,IAAKihd,GAAgB,SAAS10d,EAAKwnD,GAC/B,IAAIota,EAAgB/sd,EAAO7H,GAC3B6H,EAAO7H,GAAO,SAASxG,GACnBo1L,EAAK/wK,OAAO,SAAW2pC,EAAS/tD,KAAKm1L,EAAMp1L,GAC3Co7d,GAAiBA,EAAcp7d,OAGhCqO,GAEXyjV,kBAAmB,WACf,OAAQtyV,KAAK6kB,OAAO,QAA4B7kB,KAAK67d,gBAAvB77d,KAAKuxN,YAEvC/+I,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK87d,qBAETA,kBAAmB,WACf97d,KAAK27d,cAAgB,IAAI9D,EAAa73d,OAE1CyqP,YAAa,WACTzqP,KAAK+7d,uBACL/7d,KAAKuxN,YAETyqQ,+BAAgC,WAE5B,GAD2Bh8d,KAAK8hY,gBAAkB9vK,EAAAA,KAClD,CAGA,IAAIx5L,EAAQx4B,KAAK63F,SACb5tD,GAAYmkL,EAAAA,EAAAA,cAAaqyE,EAAAA,EAAgBzgS,KAAK+0N,MAC9CknQ,EAAmBj8d,KAAK6lP,cAAc,SAASrlP,GAC/C,IACWga,EACPha,EADAga,OAEA+zB,EAAAA,EAAAA,IAAQ/V,MAAWinR,EAAAA,EAAAA,qBAAoBjlS,KACvCxa,KAAK8hY,cAActnX,GACnBA,EAAMnT,iBACNmT,EAAMpT,oBAEZqD,KAAKzK,OACP21N,EAAAA,EAAAA,IAAiBn9L,EAAOyR,GACxB0rL,EAAAA,EAAAA,GAAgBn9L,EAAOyR,GAAY,SAASzpC,GACxCy7d,EAAiB,CACbzhd,MAAOha,SAInBshY,cAAe9vK,EAAAA,KACf8J,QAAS,WACL97N,KAAKshY,cACLthY,KAAKuxN,WACLvxN,KAAKg8d,kCAETD,qBAAsB,WACd/7d,KAAK6kB,OAAO,UACZ7kB,KAAK67d,iBAAkBnud,EAAAA,EAAAA,GAAE,WAAWkS,KAAK,OAAQ,UAAUqY,SAASj4B,KAAK2mY,mBAGjFu1F,qBAAsB,WAClBl8d,KAAK67d,iBAAmB77d,KAAK67d,gBAAgBr6d,UAEjD8/X,YAAa,WACTthY,KAAK6Z,WAAWge,YAAYgjc,GAC5B76d,KAAK05d,gBAAkB,KACvB15d,KAAK27d,cAAcQ,eACdn8d,KAAK6kB,OAAO,UAGjB7kB,KAAK6Z,WAAW4F,SAASo7c,GACzB76d,KAAK27d,cAAcS,eACnBp8d,KAAKq8d,aACLr8d,KAAKs8d,uBAETC,uBAAwB,SAAS/ta,EAAUhoC,GACvC+/V,EAAQo0G,EACR,IACInsa,EAASxoC,MAAMhmB,KAAMwmB,GADzB,QAGI+/V,EAAQq0G,EAAAA,IAGhB5C,eAAgB,SAASx3d,GACrB,IAAIu3G,EAAS/3G,KAAK63F,SACd0oU,EAAaxoT,EAAOh0F,MACxB,GAAIw8Y,IAAevga,KAAKw8d,cAAxB,CAGAx8d,KAAKw8d,cAAgBj8D,EACrB,IAAIk8D,GAAcjuL,EAAAA,EAAAA,aAAYhuS,EAAG,CAC7BmjB,KAAM,WAEVgyM,EAAAA,EAAAA,QAAqB59G,EAAQ0kX,KAEjCJ,WAAY,WACRr8d,KAAK08d,YAAa5zd,EAAAA,EAAAA,GAAO,GAAIiyd,EAAkB/6d,KAAK6kB,OAAO,cAC3D7kB,KAAK05d,gBAAkB15d,KAAK28d,eAAe,IAE/CA,eAAgB,SAAS97d,GACrB,IAAIw6d,EAAOr7d,KAAK6kB,OAAO,QACvB,GAAIhkB,GAASw6d,EAAK/6d,OACd,OAAO,IAAIq2d,EAEf,IAAIiG,EAAkBvB,EAAKx6d,GACvBg8d,EA7JO,OA6JSD,EAChB/td,EAASgud,EAAgB,IAAIvF,EAAa,CAC1CT,SAAUwE,EAAKx6d,EAAQ,KACtBb,KAAK88d,aAAaF,GAEvB,OADA/td,EAAOyvC,KAAKt+C,KAAK28d,eAAe97d,EAAQ,EAAIg8d,IACrChud,GAEXiud,aAAc,SAAS9nX,GACnB,IAAI+nX,EAUJ,OATAtid,EAAAA,EAAAA,IAAKza,KAAK08d,YAAa,SAASM,EAAa3F,GACzC,GAAI2F,IAAgBhoX,EAKhB,OAJA+nX,EAAa,CACT/nX,QAASgoX,EACT3F,aAAcA,IAEX,MAGR1ua,EAAAA,EAAAA,IAAUo0a,GAAc,IAAInG,GAAS9td,EAAAA,EAAAA,GAAO,CAC/C+td,SAAU72d,KAAK6kB,OAAO,aACvBk4c,IAAe,IAAIzF,EAAa,CAC/BT,SAAU7hX,KAGlBsnX,mBAAoB,WAChB,GAAKt8d,KAAK05d,gBAAV,CAGA,IAAI93d,EAAQ5B,KAAK6kB,OAAO,UAAY,GACpC7kB,KAAK05d,gBAAgBz7W,MAAMj+G,KAAKi9d,4BAChC,IAAIC,EAAY,CACZ58d,OAAQsB,EAAMtB,QAElB48d,EAAUl9d,KAAKm9d,qBAAuB,OAAS,SAAWv7d,EAC1D5B,KAAKq5d,aAAa6D,GAClBl9d,KAAKs5d,iBAET12F,qBAAsB,SAASjgY,EAAM8lB,EAAW4yE,GAC5C,YAAI,IAAWA,EACJ14F,EAEMA,EAAK8C,MAAM,EAAGgjB,EAAU5M,OAEfw/E,EADV14F,EAAK8C,MAAMgjB,EAAU2K,MAIzC+pc,mBAAoB,WAChB,OAAOn9d,KAAK6kB,OAAO,mBAEvBy0c,aAAc,SAAS/yG,GACnBA,EAAQA,GAASvmX,KAAKggY,SACtBhgY,KAAKsgV,eACLtgV,KAAKggY,OAAOzZ,IAEhBkzG,cAAe,WACX,OAAOtkb,EAAAA,EAAAA,SAAQn1C,KAAKukB,SAExB64c,gBAAiB,WAEb,MAAI,YADep9d,KAAK6kB,OAAO,mBAEpB0pB,EAAAA,EAAAA,IAAQvuC,KAAK63F,YAAc73F,KAAKy5d,kBAI/CD,qBAAsB,WAClB,GAAIx5d,KAAKo9d,kBAAmB,CACxB,IAAIz6d,EAAO3C,KAAK05d,gBAAgB/2d,OAChC3C,KAAK6kB,OAAO,OAAQliB,GAChB,YAAc3C,KAAK6kB,OAAO,iBAC1B7kB,KAAKymB,mBAAmB9jB,KAIpC29U,aAAc,WACV,GAAItgV,KAAK05d,kBACL15d,KAAKw5d,uBACDx5d,KAAK67d,iBAAiB,CACtB,IAAIj6d,EAAQ5B,KAAK05d,gBAAgB93d,QAC7By7d,GAAsBlob,EAAAA,EAAAA,SAAQvzC,GAAoC,GAA3B5B,KAAKs9d,oBAChDt9d,KAAK67d,gBAAgB93c,IAAIs5c,GAGjC,OAAOr9d,KAAKuxN,YAEhB+rQ,kBAAmB,WACf,OAAOt9d,KAAKi6d,kBAAkBvxa,QAAQ,OAAQ,KAElDioT,yBAA0B,SAASnwW,GAC1BR,KAAK05d,iBAIV15d,KAAK0rV,sBAAsBlrV,GAC3BR,KAAK6kB,OAAO,QAAS7kB,KAAKs9d,sBAJtBt9d,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,YAMlCw1d,mBAAoB,SAAS/8d,GACzB,OAAOR,KAAK0md,eAAcj+K,EAAAA,EAAAA,kBAAiBjoS,MAAOi/S,EAAAA,EAAAA,qBAAoBj/S,IAE1E64d,aAAc,SAAS7yc,GACnB,IAAIg3c,EAAex9d,KAAK05d,gBAAgBv6c,OAAOnf,KAAKi9d,yBAAyBz2c,IAG7E,OAFAxmB,KAAKukB,OAASvkB,KAAK05d,gBAAgB93d,QACnC5B,KAAKy9d,WAAaz9d,KAAK05d,gBAAgB/2d,OAChC66d,GAEXP,yBAA0B,SAASz2c,GAI/B,OAHAA,EAAOA,GAAQ,IACV3lB,MAAQ,EACb2lB,EAAK2wc,SAAWn3d,KAAK05d,gBAAgB/2d,OAC9B6jB,GAEXyzc,gBAAiB,SAASt3d,GAMtB,OAJIA,EADA3C,KAAKm9d,qBACEn9d,KAAK09d,0BAA0B/6d,GAAQ3C,KAAKy9d,YAAc,IAE1D96d,GAAQ3C,KAAKukB,QAAU,IAItCm5c,0BAA2B,SAAS/6d,GAChC,OAAOA,EAAK+lD,QAAQ,IAAIM,OAAOhpD,KAAK6kB,OAAO,YAAa,KArR/C,MAuRb80c,gBAAiB,SAASn5d,EAAGm9d,GAAY,WACrC,IAAI39d,KAAK6kB,OAAO,YAAhB,CAGA7kB,KAAK24d,sBACLn4d,EAAE6G,iBACFrH,KAAK49d,mBACL,IAAIj0D,EAAe3pa,KAAK63F,SAAS9zE,MAC7B85c,EAAkB,WACdl0D,IAAiB,EAAK9xU,SAAS9zE,OAC/B4xM,EAAAA,EAAAA,QAAqB,EAAK99H,SAAU,UAGxC0/I,EAAUomP,IACVpmP,EACAA,EAAQ/4L,KAAKq/a,IAEb79d,KAAK24d,sBACL34d,KAAK44d,eACL54d,KAAKs5d,eACLt5d,KAAK05d,gBAAgBn+b,QACrBsic,OAGRjE,WAAY,SAAS5yd,EAAKq0I,GACtBr7I,KAAKqyb,WAAWh3S,GAAay/U,GAC7B96d,KAAK44d,aAAa5xd,GAClBhH,KAAK89d,gBAAgB92d,GACrBhH,KAAK4ka,cAETg5D,iBAAkB,WACd,GAAK59d,KAAK4ud,gBAAV,CAGA,IAAIroG,EAAQvmX,KAAKggY,SACb+9F,EAAa,IAAIx4d,MAAMghX,EAAMnzV,IAAMmzV,EAAM1qW,MAAQ,GAAG5K,KA1T/C,KA2TTjR,KAAK89d,gBAAgBC,KAEzBD,gBAAiB,SAASlvU,GACtB,IAAI23N,EAAQvmX,KAAKggY,SACbnkX,EAAQ7b,KAAKw2d,qBAAuBjwG,EAAM1qW,MAAQ0qW,EAAM1qW,MAAQ,EAChEuX,EAAMpzB,KAAKw2d,qBAAuBjwG,EAAMnzV,IAAMmzV,EAAMnzV,IAAM,EAC1D9yB,EAASub,IAAUuX,EAAM,EAAIA,EAAMvX,EACvC7b,KAAKq5d,aAAa,CACd12d,KAAMisJ,EACN/yI,MAAOA,EACPvb,OAAQA,KAGhB09d,sBAAuB,WACnBh+d,KAAK64d,uBACL,IAAIP,EAAet4d,KAAKggY,SAASnkX,MAEjC,OADA7b,KAAK44d,gBACGN,GAAgBA,IAAiBt4d,KAAKggY,SAASnkX,OAE3D+8c,aAAc,SAASv9X,GACnB,IAAI4iY,EAAaj+d,KAAKggY,SAASnkX,MAC3B26c,EAAqBx2d,KAAKw2d,qBAC1BjwG,EAAQvmX,KAAK05d,gBAAgB7wD,cAAco1D,EAAYzH,EAAoBn7X,GAC/Er7F,KAAKggY,OAAO,CACRnkX,MAAO0qW,EACPnzV,IAAKmzV,KAGbq+C,WAAY,WACR,IAAI0zD,EAAet4d,KAAKggY,SAASnkX,MAC7Bqid,EAAgB5F,GAAgBt4d,KAAKw2d,qBAAuB,GAAK,GACjEjwG,EAAQvmX,KAAK05d,gBAAgBnD,WAAW2H,GAAiB5F,GAAgBt4d,KAAKw2d,qBAAuB,GAAK,GAAK8B,EACnHt4d,KAAKggY,OAAO,CACRnkX,MAAO0qW,EACPnzV,IAAKmzV,KAGbyZ,OAAQ,SAAS75W,EAAU6mD,GACvB,IAAI+qC,EAAS/3G,KAAK63F,SAClB,GAAKkgB,EAAOz3G,OAGZ,OAAKyH,UAAUzH,YAGfimX,EAAMxuQ,EAAQ5xF,EAAU6mD,GAFbu5S,EAAMxuQ,IAIrB62W,cAAe,WACX,IAAIroG,EAAQvmX,KAAKggY,SACjB,OAAOzZ,EAAM1qW,QAAU0qW,EAAMnzV,KAEjCi/Z,WAAY,SAASh3S,GACjB,IAAKtzI,UAAUzH,OACX,OAAON,KAAKm+d,iBAEhBn+d,KAAKm+d,iBAAmB9iV,GAE5Bs9U,oBAAqB,WACjB34d,KAAKqyb,WAAWyoC,IAEpBjC,qBAAsB,WAClB74d,KAAKqyb,WApXY,aAsXrBmkC,mBAAoB,WAChB,OAAOx2d,KAAKqyb,eAAiByoC,GAEjCvvO,OAAQ,WACJvrP,KAAK27d,eAAiB37d,KAAK27d,cAAcnI,QACzCxzd,KAAKuxN,YAETgpQ,cAAe,WACX,GAAKv6d,KAAK05d,gBAAV,CAGA,IAAIxpc,GAAUilB,EAAAA,EAAAA,SAAQn1C,KAAK6kB,OAAO,WAAa7kB,KAAK05d,gBAAgBxpc,QAAQlwB,KAAKi9d,4BACjFj9d,KAAK6kB,OAAO,CACRqL,QAASA,EACTwyR,gBAAiBxyR,EAAU,KAAO,CAC9B+rW,gBAAgB,EAChBxwV,QAASzrC,KAAK6kB,OAAO,2BAIjCu5c,qBAAsB,WAClBp+d,KAAKk8d,uBACDl8d,KAAK6kB,OAAO,UACZ7kB,KAAK63F,SAASjgE,WAAW,QACzB53B,KAAK+7d,wBAET/7d,KAAKotY,sBAAsBptY,KAAK6kB,OAAO,UAE3Cw5c,kBAAmB,WACfr+d,KAAKo+d,uBACLp+d,KAAKshY,cACLthY,KAAKu6d,iBAET+D,kBAAmB,SAASjD,GACxB,IAAIA,EAAJ,CAGA,IAAIz5d,EAAQ5B,KAAK6kB,OAAO,SACxB7kB,KAAK6kB,OAAO,CACRliB,KAAMf,EACNsuB,SAAS,IAEblwB,KAAKg1V,kBAAkBj3G,KAAK,CACxBn8O,MAAOA,EACP4gB,OAAQxiB,OAEZA,KAAKsgV,iBAETpkH,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,OACDxN,KAAKq+d,oBACLr+d,KAAKs+d,kBAAkB93c,EAAK5kB,OAC5B,MACJ,IAAK,WACL,IAAK,YACL,IAAK,iBACD5B,KAAKq+d,oBACL,MACJ,IAAK,QACDr+d,KAAKs8d,qBACLt8d,KAAKu6d,gBACLv6d,KAAKuxN,SAAS/qM,GACdxmB,KAAKw8d,cAAgBx8d,KAAK63F,SAAS9zE,MACnC,MACJ,IAAK,qBACD,MACJ,IAAK,eACD/jB,KAAK6kB,OAAO,OAAQ,IACpB7kB,KAAKsgV,eACL,MACJ,QACItgV,KAAKuxN,SAAS/qM,OAI9B,KC9eAlG,EAAAA,EAAAA,SAAkB,eAAgB86c,GAClC,4FCGI,EAGAjzP,EAAAA,QAAAA,OAFKqU,EADT,EACIA,IACK14D,EAFT,EAEIA,IAEAy6S,EAA0B/hP,GAAO14D,EACjC06S,EAAW,SAAShmc,GACpB,IAAIwzD,EACJ,IACIA,EAAQ,CACJnwE,MAAO2c,EAAM8kE,eACblqE,IAAKoF,EAAMw9E,cAEjB,MAAOx1G,GACLwrF,EAAQ,CACJnwE,MAAO,EACPuX,IAAK,GAGb,OAAO44D,GAEPyyY,EAAW,SAASjmc,EAAOrS,GAC3B,IAAIoiB,EAAOqxL,EAAAA,EAAAA,UACX,GAAKrxL,EAAKxpB,SAASyZ,IAAW+P,EAAKxpB,SAASyZ,EAAMmpG,cAAcl3F,MAGhE,IACIjS,EAAM8kE,eAAiBn3E,EAAStK,MAChC2c,EAAMw9E,aAAe7vF,EAASiN,IAChC,MAAO5yB,MAab,IAXY,SAASg4B,EAAOrS,GACxB,IAAI6mD,EAAQjlE,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAExE,GADAywB,GAAQ9qB,EAAAA,EAAAA,GAAE8qB,GAAO3Y,IAAI,KAChB8oC,EAAAA,EAAAA,IAAUxiC,GACX,OAAOq4c,EAAShmc,IAEfw0C,GAASuxZ,GAA2B3kQ,EAAAA,EAAAA,iBAA4BphM,KAAWA,GAGhFimc,EAASjmc,EAAOrS,yHCzChBsgc,EAAc,SAAS3mc,EAAW9C,EAAO7Z,GACzC,IAAIokC,GAAa75B,EAAAA,EAAAA,GAAEoS,GACf4+c,EAAev7d,EAAWokC,EAAWP,aAAeO,EAAWN,YAC/Dw/E,EAAOtjH,EAAW,QAAU,SAG5Bw7d,EAFap3b,EAAWk/E,KAAK,SAAS7qF,OAAO6qF,IAChCl/E,EAAWk/E,KAAK,SAAS7qF,OAAO6qF,IACDi4W,EAAe,EAC/D,OAAI,IAAMA,GAAgB,IAAMC,QAGV,IAAMD,GAAgB1hd,GAAS,GAC5B,IAAM2hd,GAAmB3hd,GAAS,GAClC0hd,EAAe,GAAKC,EAAkB,SAC/D,IAIA3R,EAAoB,SAASltc,EAAW8+c,GACxC,IAAIr3b,GAAa75B,EAAAA,EAAAA,GAAEoS,GACnB,MAAO,CACH6zD,SAAU,SAASnzE,GACf,IAAIy+R,EAAAA,EAAAA,qBAAoBz+R,KAAOmnJ,EAAcnnJ,EAAEoG,QAAQg4d,IAAiBlxd,EAAAA,EAAAA,GAAEi6I,GAAa7tH,GAAGha,IACtF,QAAI2mc,EAAYl/a,GAAa/mC,EAAEwc,MAAOxc,EAAE2C,YACpC3C,EAAE8tS,gBAAiB,GACZ,GAIf,IAAI3mJ,gnBCOZhtI,EACAkkd,EACAC,EACAC,EACAC,EAqMAC,+GC/OOC,GAAqBzhP,WAAAA,gBD4B5Bh4N,GAASwoM,EAAAA,EAAAA,MACT40D,EAAQnlC,EAAAA,EAAAA,IACRvkB,EAAWgmQ,EAAAA,GACXryD,EAAkBptL,EAAAA,GAClB0/O,EAAe,IAAI5sQ,EAAAA,GACnB6sQ,EAAmB,qBAGnBC,EAAqB,eACrBC,EAAY,MAMZ1hW,EAAiB,KACjB2hW,EAAsB,MAE1B,SAASC,IACL,KAAKnjQ,EAAAA,EAAAA,MACD,OAAO,KAEX,IACIztN,EADA/O,GAAU4N,EAAAA,EAAAA,GAAE,QAASiN,GAAS8E,SAAS,mBAAmBwY,SAAStd,EAAQ8tB,iBAE/E,IAEI,OADA55B,EAAS4W,EAAO88G,iBAAiBziI,EAAQ+f,IAAI,IAAIu7K,aAIjDvsL,EAASA,EAAO65C,QAAQ,QAAS,KACtB/3C,OAAO,EAAG6ud,EAAoBl/d,UAAYk/d,EAC1C,KAEJ3wd,EAAO8B,OAAO6ud,EAAoBl/d,QAN9B,KAHf,QAWIR,EAAQ0B,UAGT,SAASk+d,EAAiB55E,GAC7B,IAAI65E,EACA97U,EACA+7U,GAAkB,EAGtB,SAASC,IACLb,EAAmB,KACnBr6a,cAAck/F,GACd+7U,GAAkB,EAClBV,EAAmBnhP,OACnBmhP,EAAmBz0Z,QACnB20Z,EAAahvd,UAEjB,GAVA4ud,EAAmBl5E,EAUfg6E,MAA2BjiW,EAC3BgiW,QACG,CACH,IAAKD,EAID,YAHIZ,IACAA,EAAmBl5E,IAI3B65E,EAAgBrxZ,KAAKskC,MACrBgtX,GAAkB,EAClB/7U,EAAUj/F,aAAa,WACnB,IAAIstO,EAAW4tM,IACXC,GAAa7tM,GAAY5jN,KAAKskC,MAAQ+sX,EAAgB9hW,EACtDkiW,GACA99P,EAAAA,EAAAA,IAAW,QAAS+8P,IAEpB9sM,GAAY6tM,IACZF,MAEJ,KAGL,SAASC,IACZ,IAAKd,EACD,OAAO,EAEX,IAAIgB,EAAkBhB,IAAqBO,EAC3C,GAAI,aAAeH,EAAajoY,SAAW6oY,EACvC,OAAO,EAEX,IAAIC,EAAcR,IAClB,SAAIQ,IAAeD,IAGZC,IAAgBjB,EAwB3B,SAASkB,EAAqBC,GAC1B,IAAIC,EAAoBD,EAAmBA,EAAiB1yd,MAAM,KAAO,GACrEoB,EAAS,KACb,GAAIiwd,EAAa,CACb,GAAIqB,KAAoBrB,EACpB,OAAOqB,GAEX1ld,EAAAA,EAAAA,IAAKqkd,GAAc,SAASuB,EAAgBC,GACxC,IAAIC,EAAkBF,EAAe5yd,MAAM,KAC3C,KAAI2yd,EAAkB,IAAMG,EAAgB,KAAOH,EAAkB,OAGjEA,EAAkB,IAAMA,EAAkB,KAAOG,EAAgB,OAGjEH,EAAkB,IAAMA,EAAkB,KAAOG,EAAgB,IAMrE,OAHK1xd,IAAUyxd,EAAU/9L,WACrB1zR,EAASwxd,IAETC,EAAU/9L,eAAd,KAKR,OAAO1zR,EAaJ,SAAS0K,EAAKa,IAVrB,SAAqBomd,GACjB,IACQA,IAAe7ld,IACfmkd,EAAc,MAEpB,MAAO9td,GACL8td,EAAc,KAElBnkd,EAAU6ld,GAIVngU,EADAjmJ,EAAUA,GAAW,IACDO,SAAWi/M,EAAAA,EAAAA,eAC1Bj/M,KA/DT,WACI,IAAI8ld,GAAiB/yd,EAAAA,EAAAA,GAAE2xd,EAAkB1kd,GACpC8ld,EAAenge,SAGpBw+d,EAAc,GACdD,GAAmBnxd,EAAAA,EAAAA,IAAE4nP,EAAAA,EAAAA,GAAU,yBAA0B36O,GACzD8ld,EAAehmd,MAAM,WACjB,IAAIwlD,GAAOvyD,EAAAA,EAAAA,GAAE1N,KAAM2a,GACf+ld,EAAgBzga,EAAKrgD,KA7FhB,cA8FLg/B,EAAMqhB,EAAKrgD,KAAK,QAChB2iR,EAAW,SAAWtiO,EAAKrgD,KA9FrB,eA+FVk/c,EAAY4B,GAAiB,CACzB9hb,IAAKA,EACL2jP,SAAUA,MAGlBk+L,EAAenkW,OAAOuoC,MAAMg6T,GAC5B4B,EAAej/d,UAgDfm/d,GACA5B,OAAmB,EACnBzgP,EAAQlkO,IAEL,SAASkkO,EAAQlkO,GACpB,IAAKrS,UAAUzH,OAEX,OADAy+d,EAAmBA,GAAoBU,IAG3C7/O,EAAiBzmB,KAEb,kBADJ/+M,EAAUA,GAAW,MAEjBA,EAAU,CACNmW,MAAOnW,IAGf,IAEIwmd,EAFAC,EAAazmd,EAAQ0md,UACrBC,EAAe3md,EAAQ2md,aAS3B,IAPAhC,EAAmBmB,EAAqB9ld,EAAQmW,OAASwuc,MAErD6B,EAAmB9B,EAAYC,IAE/BgC,GACA7B,EAAmB59d,IAAIy/d,GAEvBH,EACA/B,EAAiBj/c,KAAK,OAAQk/c,EAAYC,GAAkBngb,MACxDsgb,EAAmBrlc,OAAS,aAAeulc,EAAajoY,SAAW/8E,EAAQ4md,gBAC3EtB,EAAiBX,OAElB,KAAI8B,EAOP,MAAM5+P,EAAAA,EAAAA,MAAa,QAAS88P,IANxBziQ,EAAAA,EAAAA,OACAojQ,EAAiBH,GAErBL,EAAmBnhP,OACnBmhP,EAAmBz0Z,QAIvB20Z,EAAahmc,MAAK,kBAAMqmN,GAAiByjC,EAAAA,EAAAA,MAAoB67M,MAgB1D,SAASt/O,EAAiB3/O,EAASgmZ,GACtCm5E,EAdJ,SAAuBn5E,GAEnB,IAAIj3Y,EAAS,GACToyd,GAFJn7E,EAAYA,GAAaxnK,MAESwnK,EAAUr4Y,MAAM,KAOlD,OANIwzd,IACApyd,EAAOjO,KAAK,YAAcqge,EAAe,GAAI,YAAcA,EAAe,GAAK,eAC3EA,EAAe3ge,OAAS,GACxBuO,EAAOjO,KAAK,mBAAqBqge,EAAe,IAAMhlJ,EAAW6pE,GAAa,IAAMm7E,EAAe,GAAK,MAGzGpyd,EAIQmmU,CAAc8wE,GAAW70Y,KAAK,MAC7CvD,EAAAA,EAAAA,GAAE5N,GAAS2f,SAASw/c,GAClB,WACE,IAAItwR,GAAa2tB,EAAAA,EAAAA,OAAe72M,EAAOm9G,iBACvC,GAAK+rE,KAAcA,EAAa,GAAhC,CAGA,IAAIuyR,GAAUxzd,EAAAA,EAAAA,GAAE,SAChBwzd,EAAQ7ld,IAAI,SAAU,2BACtB3N,EAAAA,EAAAA,GAAE,QAAQqS,OAAOmhd,GACb,KAAM1oQ,EAAAA,EAAAA,IAAe0oQ,MACrBxzd,EAAAA,EAAAA,GAAE5N,GAAS2f,SAAS6/c,GACpBL,GAAgB,iBAEpBiC,EAAQ1/d,UAZV,GAeC,SAASo+O,EAAiB9/O,IAC7B4N,EAAAA,EAAAA,GAAE5N,GAAS+3B,YAAYonc,GAG3B,SAASkC,EAAW3ya,GAChB0wa,EAAmB59d,IAAIktD,GAG3B,SAAS4ya,EAAQC,EAAav7E,GAI1B,OAHKA,IACDA,EAAYi5E,GAAoBU,KAE7B,IAAIz2a,OAAOq4a,GAAan+b,KAAK4iX,GAEjC,SAAS7pE,EAAW6pE,GACvB,OAAOs7E,EAAQ,WAAYt7E,GAExB,SAASgM,EAAUhM,GACtB,OAAOs7E,EAAQ,UAAWt7E,GAEvB,SAASp/Q,EAAOo/Q,GACnB,OAAOs7E,EAAQ,OAAQt7E,GAEpB,SAASxvD,EAAUwvD,GACtB,OAAOs7E,EAAQ,UAAWt7E,GAEvB,SAASw7E,EAAgB3+d,EAAMwqM,GAClC,IAAI3qM,EAAWo3N,EAAAA,EAAAA,cACX2nQ,EAAc/+d,EAAS4gC,cAAc,QACzCm+b,EAAYtjd,MAAMkI,SAAW,WAC7Bo7c,EAAYtjd,MAAMnF,IAAM,UACxByod,EAAYtjd,MAAMvF,KAAO,UACzB6od,EAAYtjd,MAAMs3C,WAAa,SAC/Bgsa,EAAYtjd,MAAMm9K,WAAa,QAC/BmmS,EAAYtjd,MAAM28B,SAAW,QAC7B2mb,EAAYtjd,MAAMkvL,WAAaA,EAC/Bo0R,EAAYhha,UAAY59D,EACxBH,EAAS+lC,KAAKivC,YAAY+pZ,GAC1B,IAAIC,EAAkBD,EAAYzkd,YAClCykd,EAAYtjd,MAAMm9K,WAAa,gCAC/B,IAAIqmS,EAAkBF,EAAYzkd,YAElC,OADAykd,EAAYn3c,WAAW+iC,YAAYo0a,GAC5BC,IAAoBC,EAExB,SAASC,EAAY/+d,EAAMwqM,GAC9B,OAAO,IAAIhvJ,SAAQ,SAAA/tC,GACf,IAAI6tG,EAAQ,WACRt5D,cAAcwkJ,GACdjrK,aAAakrK,GACbh5L,KAEA+4L,EAAavkJ,aAAY,WACrB08a,EAAgB3+d,EAAMwqM,IACtBlvF,MAEL,IACCmrF,EAAYvmM,WAAWo7G,EAAO,QAI1C,SAAS0jX,IAKL,GAJApod,EAAK,CACDund,WAAW,EACXE,eAAe,KAEftzd,EAAAA,EAAAA,GAAE2xd,EAAkB1kd,GAASra,OAC7B,MAAM2hO,EAAAA,EAAAA,MAAa,SAsBpB,SAAS2/P,IACZ/C,GAAoBA,EAAiBj/c,KAAK,OAAQ,eAClDm/c,EAAmB,KACnBC,EAAmB,KACnBI,EAAe,IAAI5sQ,EAAAA,GAEhB,SAASqvQ,EAAYrza,GACxB4wa,EAAahmc,KAAKo1B,GAEf,SAASsza,EAAkBl/d,GAC9Bi7H,EAAiBj7H,GA7BjB05N,EAAAA,EAAAA,MACAqlQ,IAEA9+M,EAAM8+M,GAEV70D,EAAgBxra,KAAK,SAAS63N,EAAU8pD,GACpCm8M,EAAahmc,MAAM,WACfwmN,EAAiBqjC,GACjBxjC,EAAiBtmB,SAGzBgP,EAAAA,QAAAA,QAAAA,KAAqB,WACjB5uN,EAAK,CACDund,WAAW,OAkBnB,OACIgB,kBAAmBA,EACnBD,YAAaA,EACbD,WAAYA,EACZ/+M,MAAOs+M,EACPO,YAAaA,EACbJ,gBAAiBA,EACjBhrI,UAAWA,EACX5vN,OAAQA,EACRorR,UAAWA,EACX71E,WAAYA,EACZr8F,iBAAkBA,EAClBH,iBAAkBA,EAClBnB,QAASA,EACTohP,iBAAkBA,EAClBI,qBAAsBA,gNElXtBr6c,GAASwoM,EAAAA,EAAAA,MAgBT40D,EAAQnlC,EAAAA,EAAAA,IACRqkP,EAAc,WACdC,EAAqBD,YAMrBE,EAAa,CAAC,OAAQ,UAAW,QAAS,WAC1CC,EAAc,GAEdC,EAAmB,CACnBrpd,IAAK,CACD4mD,GAAI,MACJC,GAAI,MACJF,GAAI,KACJl0D,OAAQ,OAEZyS,OAAQ,CACJ0hD,GAAI,SACJC,GAAI,SACJF,GAAI,KACJl0D,OAAQ,SAEZ+X,OAAQ,CACJo8C,GAAI,SACJC,GAAI,SACJF,GAAI,KACJl0D,OAAQ,OAEZwS,MAAO,CACH2hD,GAAI,eACJC,GAAI,eACJF,GAAI,KACJl0D,OAAQ,OAEZmN,KAAM,CACFgnD,GAAI,cACJC,GAAI,cACJF,GAAI,KACJl0D,OAAQ,QAGZ62d,EAA0B,CAC1B54U,EAAG,EACH3iG,EAAG,GAEPg8N,GAAO,WACHltD,EAAAA,EAAAA,gBAA6BiE,EAAAA,EAAAA,cAA0B/3L,EAAAA,EAAAA,MAAqB,SAASrhC,GACjF,IAAK,IAAIuL,EAAIm2d,EAAY5he,OAAS,EAAGyL,GAAK,EAAGA,IACzC,IAAKm2d,EAAYn2d,GAAGoha,4BAA4B3sa,GAC5C,aAKhB,IAAI48Z,EAAQlhD,EAAAA,QAAAA,QAAgB,CACxBzpJ,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B9lL,QAAS,GACT9nB,KAAM,OACN07C,YAAa,IACbl5C,SAAU,gBACVm+M,UAAW,CACP9iL,KAAM,CACF79B,KAAM,OACN67M,SAAU,IACVr2N,KAAM,EACN63D,GAAI,GAERkJ,KAAM,CACFvmD,KAAM,OACN67M,SAAU,IACVr2N,KAAM,EACN63D,GAAI,IAGZi6K,SAAS,EACT1pO,OAAQ,OACRyhZ,sBAAuB,KACvBC,qBAAqB,EACrBrzV,cAAc,EACdyia,cAAc,KAGtBz/O,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,CACJz/G,SAAU,WAEdvkH,QAAS,CACLkM,oBAAoB,EACpBhV,MAAO,OACPgzN,UAAW,CACP9iL,KAAM,CACF79B,KAAM,QACN67M,SAAU,IACVr2N,KAAM,CACFgd,SAAU,CACNu5C,GAAI,MACJC,GAAI,SACJF,GAAIh6C,KAIhBykD,KAAM,CACFvmD,KAAM,QACN67M,SAAU,IACVx+J,GAAI,CACA76C,SAAU,CACNu5C,GAAI,MACJC,GAAI,SACJF,GAAIh6C,QAMzB,CACC24N,OAAQ,SAAS4wI,GACb,IAAIpyI,EAAU,UAAYoyI,EAAQ5mJ,WAC9B1oG,EAAY,YAAcsvP,EAAQrwP,SACtC,OAAOi+G,GAAWl9G,GAEtBtlH,QAAS,CACL9I,MAAO,QACP6U,SAAU,CACNw5C,GAAI,gBACJD,GAAI,gBACJn0D,OAAQ,SAGjB,CACC6yO,OAAQ,SAASwzI,GACb,MAAO,UAAYA,EAASxpJ,YAEhChuN,QAAS,CACL9I,MAAO,UAEZ,CACC8sO,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACLqE,SAAU,IACVO,SAAU,IACVqgD,YAAa,SAIzBmT,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAKsie,sBAETpjI,mBAAoB,WAChBl/V,KAAKuie,UAAW70d,EAAAA,EAAAA,GAAE,SAAS+R,SAtJTuid,oBAsJuCr/d,KAAK3C,KAAK6kB,OAAO,YAAYoT,SAASj4B,KAAK25B,YACpG35B,KAAK4gV,QAAQ,OAAQ,QAAS5gV,KAAKuie,UAC/BN,EAAWnmW,SAAS97H,KAAK6kB,OAAO,QAAQoe,gBACxCjjC,KAAK25B,WAAWi8N,SAAQloP,EAAAA,EAAAA,GAAE,SAAS+R,SAxJxBuid,kBA0Jfhie,KAAKuxN,YAETuK,QAAS,WACL97N,KAAKuxN,WACLvxN,KAAK6Z,WAAW4F,SAASsid,GACzB/he,KAAKm1N,WAAW11M,SAlKEuid,oBAmKlBhie,KAAK25B,WAAWla,SAASuid,EAAqBn8Z,OAAO7lE,KAAK6kB,OAAO,SAASoe,eAC1EjjC,KAAK25B,WAAWla,SAnKEuid,oBAoKlBhie,KAAKwie,mBAAmB,SACxBxie,KAAKwie,mBAAmB,UAE5BA,mBAAoB,SAAShod,GACzB,IAAI+nV,EAAU,KAAO/nV,EAAMyoB,cAC3B0yL,EAAAA,EAAAA,IAAiB31N,KAAK25B,WAAY4oU,GAClCviW,KAAK6kB,OAAO,UAAYrK,IAAUm7M,EAAAA,EAAAA,GAAgB31N,KAAK25B,WAAY4oU,EAASviW,KAAKkqE,KAAKz/D,KAAKzK,QAE/Fsie,mBAAoB,WAChB,IAAKh4Q,EAAAA,EAAAA,IAAStqN,KAAK6kB,OAAO,aAA1B,CAGA,IAAI49c,EAAmBzie,KAAK6kB,OAAO,YAAYpX,MAAM,KAAK,GACtDi1d,EAAqB1ie,KAAK6kB,OAAO,YAAYpX,MAAM,KAAK,GAI5D,OAHAzN,KAAK6kB,OAAO,YAAY/b,EAAAA,EAAAA,GAAO,CAC3Bqc,eAAgBi9c,GACjBD,EAAiBM,KACZC,GACJ,IAAK,SACL,IAAK,OACL,IAAK,QACD1ie,KAAK6kB,OAAO,YAAY86C,IAAM,IAAM+ia,EACpC1ie,KAAK6kB,OAAO,YAAY66C,IAAM,IAAMgja,KAGhDjmH,MAAO,WACH,OAAOz8W,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAAWq2D,OAAO,WAC/ClgC,aAAal+B,KAAK2ie,cAClB3ie,KAAK2ie,aAAe9/d,WAAW7C,KAAKkqE,KAAKz/D,KAAKzK,MAAOA,KAAK6kB,OAAO,iBACnEpa,KAAKzK,QAEXiva,cAAe,WACX,OAAOizD,GAEX9yD,iBAAkB,WACd,OAAOpva,KAAKuxN,WAjMO,KAmMvB8K,SAAU,WACNn+L,aAAal+B,KAAK2ie,cAClB3ie,KAAKuxN,YAET2K,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,OACDxN,KAAK25B,WAAW9B,YAAYmqc,EAAqBx7c,EAAKgyF,eACtDx4G,KAAK25B,WAAWla,SAASuid,EAAqBn8Z,OAAOr/C,EAAK5kB,OAAOqhC,eACjE,MACJ,IAAK,UACGjjC,KAAKuie,UACLvie,KAAKuie,SAAS5/d,KAAK6jB,EAAK5kB,OAE5B,MACJ,IAAK,eACD5B,KAAKwie,mBAAmB,SACxB,MACJ,IAAK,eACDxie,KAAKwie,mBAAmB,SACxB,MACJ,IAAK,cACD,MACJ,QACIxie,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAlOkB,UAkOa88Y,GAC/B,IC7PA,ED6PA,qME5PIwlE,EAAgB,CAAC,iBAAkB,WAAY,aAAc,YAAa,SAAU,cAAe,SAAU,YAAa,gBAAiB,oBAOxI,SAASC,EAAmClod,EAASza,GACxD,IAAI4ie,EACJ,GAAKnod,EAAL,CAGA,IAAIq9T,EAAQr9T,EAAQuiV,uBAAuBh9V,GAC3C,GAAK83U,EAAM13U,OAAX,CAGA,IAAIuqE,EAAWlwD,EAAQi/U,aAAa5hB,GAChC+qJ,KAAwB,QAAUD,EAAoBj4Z,EAASzwD,eAAY,IAAW0od,GAAqBA,EAAkB13d,UAAYy/D,EAASz/D,UAAYuP,EAAQkK,OAAO,aAErKob,EACR4qC,EADA5qC,OAEJ,GAAIA,IAAW,IAAM2ic,EAAcz8d,QAAQ85B,GAAS,CAChD,IAAI+ic,EAAUhrJ,EAAM37T,KAAK4jB,EAAOgD,cAAcylB,QAAQ,KAAM,SAC5D,GAAIs6a,EAAQ1ie,OAAQ,CAChB,IAAI2ie,EAAuBC,EACvBC,EAxBM,SAAStpd,GAC3B,IAAIgxD,EAAWhxD,EAAShM,MAAQgM,EAAShM,OACrCu1d,EAAev4Z,GAAYA,EAASu4Z,aACpCn8O,EAAam8O,GAAgBA,EAAa,GAC9C,OAAOn8O,GAAcp8K,EAASo8K,GAoBHo8O,CAAgBL,GACnC,IAAKG,EACD,OAEJ,IAIQG,EAJJC,EAAe,QAAUN,EAAwBE,EAAap6L,oBAAiB,IAAWk6L,OAAwB,EAASA,EAAsBxie,KAAK0ie,GAC1J,GAAI,qBAAuBljc,EACvBsjc,EAAeA,GAAgBA,EAAalnd,KAAK,IAAIuf,OAhC5C,wBAmCT2nc,EAAe,QAAUD,EAAgBC,SAAiB,IAAWD,EAAgBA,GAAgB51d,EAAAA,EAAAA,GAAEy1d,EAAarje,WAExH,IAAIg/I,EAAW,QAAUokV,EAAqBr4Z,EAASzwD,eAAY,IAAW8od,OAAqB,EAASA,EAAmBpkV,SAC3HikV,EACAQ,EAAa3jd,KAAK,YAAa,GAE/B2jd,EAAa3jd,KAAK,WAAY,OAASk/H,QAAY,IAAWA,EAAWA,EAAW,sBCrCvF0kV,EAAb,WACI,WAAYzjc,IAAS,eACjB//B,KAAKyje,SAAW1jc,EAFxB,0CAII,cAJJ,mCAKI,cALJ,8BAMI,cANJ,yBAOI,cAPJ,2BAQI,cARJ,8BASI,WACI,IAAI2jc,EACJ,OAAO,QAAUA,EAAwB1je,KAAKyje,SAAS5+c,OAAO,gBAAa,IAAW6+c,EAAwBA,EAAwB,KAX9I,4BAaI,WACI,OAAO1je,KAAKyje,SAASzgI,sBAAsBhjW,KAAKyje,SAAStmI,gBAAgB,KAdjF,2BAgBI,WACI,IAAI8Z,EAASj3W,KAAKyje,SAASE,wBAAwBtnd,KAAK,IAAIuf,OAlB1C,qBAkBuEgsB,GAAG,GAC5F,GAAKqvT,EAAO32W,OAAZ,CAGA,IAAIm4N,GAAe37E,EAAAA,EAAAA,IAAS98I,KAAKyje,SAAS5pd,YACtC+pd,GAAgBtrQ,EAAAA,EAAAA,IAAc2+I,IAAUn6N,EAAAA,EAAAA,IAASm6N,GACrDA,EAAO57V,IAAI,WAAYo9M,EAAemrQ,MAvB9C,gCAyBI,cAzBJ,+BA0BI,cA1BJ,gCA2BI,cA3BJ,4BA4BI,gBA5BJ,gFCEIC,EAA4B,yBAE5BC,EAAoC,iCACpCC,EAA6B,0BAE7BC,EAAkC,+BAEjBC,EAAAA,SAAAA,gIACjB,YACI,qDACAjke,KAAK6pV,iBAAmB,IAAIjuT,OAAOioc,EAA2B,UAAUjoc,OAAOkoc,EAAmC,gCAEtH,WACI9je,KAAKkke,mBACL,2DACAlke,KAAKmke,2CAET,WACI,OAAOnke,KAAK24U,iBAAiB5tU,wCAEjC,WACI,OAAO/K,KAAKoke,eAAer5d,SAAS/K,KAAK44U,gDAE7C,WAAkB,WACVrxS,EAAavnC,KAAK24U,kBACtBl+T,EAAAA,EAAAA,IAAK,CAAC,SAAU,SAAU,QAAS,SAAS,SAACC,EAAG2pd,GAC5C,IAAIC,EAAc,KAAK1oc,OAAOyoc,EAAS,WAClC,EAAKC,KACN,EAAKA,IAAe52d,EAAAA,EAAAA,GAAE,SAAS+R,SAASskd,IAE5C,EAAKO,GAAarsc,SAASsP,kCAGnC,YACI,iDAAmBvhB,MAAMhmB,KAAM+H,WAC/B/H,KAAKuke,8CAET,WACyBvke,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAhCvB,0BAiCRhc,KAAK,OAAQ,uCAEhC,WACI,IAAI4kd,EAAYxke,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOmoc,IAChDS,EAAU3sc,YAAYmsc,GACtBQ,EAAUpuO,IAAI,UAAUxuM,IAAI,GAAGnoC,SAASukd,8BAE5C,SAAYnje,EAAOX,EAAMuke,EAAeC,GACpC,IAAIC,EACA3kc,EAAW,QAAU2kc,EAAiBzke,EAAK8/B,gBAAa,IAAW2kc,EAAiBA,EAAiB,OACrGp9b,EAAavnC,KAAK,KAAK47B,OAAOoE,EAAU,YACxC8qC,GAAc,0DAAkBjqE,EAAOX,EAAMqnC,EAAYm9b,GAgB7D,OAfI1ke,KAAKwhW,qBAAqB,CACtB32R,SAAU3qE,KAEd4qE,EAAYrrD,SAlDQ,2BAoDpB,SAAWugB,GAAY,aAAe9/B,EAAK+/B,QAAU,kBAAoB//B,EAAK+/B,QAAU//B,EAAK0ke,WAC7F95Z,EAAYrrD,SAASokd,GAErB,aAAe3je,EAAK+/B,QACpB6qC,EAAYrrD,SA3DU,4BA6DtB,kBAAoBvf,EAAK+/B,QACzB6qC,EAAYrrD,SAASqkd,GAEzBh5Z,EAAYrrD,SAASvf,EAAKymI,UACnB77D,sCAEX,SAAqBtkD,GACjB,IAAImD,GAAW,mEAA2BnD,GACtC3Y,EAAO2Y,EAAKqkD,SAEhB,OADmBh9D,GAAQA,EAAKg3d,kBACTl7c,oCAE3B,WACI,MAAO,CACH88B,UAAU,oCAGlB,SAAkBjmD,EAAGgmB,EAAM8oD,IACnB5hE,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAI6xB,OAAOioc,IAA4Bvje,SAC3D,gEAAwBE,EAAGgmB,EAAM8oD,yBAGzC,WACItvE,KAAKoke,eAAe35Z,SACpB,4DA/Eaw5Z,CAAwBhsF,EAAAA,oCCiBxB6sF,YAAAA,SAAAA,yIACjB,WACI,IAAI/uW,EAAY,GAIhB,OAHK/1H,KAAK6kB,OAAO,WAAc7kB,KAAK6+P,MAAMh6O,OAAO,oBAC7CkxG,EAAY/1H,KAAK+ke,QAAQz6I,mBAEtBxhV,EAAAA,EAAAA,IAAO,8DAAwBitH,EAAW,CAC7CntH,IAAK,WACD5I,KAAK8uW,QAAU9uW,KAAK8uW,OAAO5kS,4CAIvC,WACI,OAAOphE,EAAAA,EAAAA,IAAO,kEAA4B,CACtC4C,MAAO,GACPguU,YAAa,KACbruT,WAAY,KACZkB,aAAc,OACdy4c,cAAe,KACf33J,oBAAoB,EACpBE,mBAAmB,EACnByoD,QAAQ,EACRp8C,eAAgB,KAChByoJ,cAAc,EACdvmJ,cAAc,EACdh8T,eAAW,EACXwkN,UAAW,CACP9iL,KAAM,CACF79B,KAAM,OACNxa,KAAM,EACN63D,GAAI,GAERkJ,KAAM,CACFvmD,KAAM,OACNq9C,GAAI,0CAKpB,WACI,OAAO,oEAA6BplC,OAAO,CAAC,CACxCwiN,OAAQ,WACJ,MAAO,YAAcjW,EAAAA,QAAAA,OAAeC,aAAeD,EAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,IAExB,CACClvF,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACL0hU,cAAc,EACdx3G,UAAW,CACP9iL,KAAM,CACF79B,KAAM,MACN67M,SAAU,IACVr2N,KAAM,CACFm4N,MAAO,GAEXtgK,GAAI,CACAsgK,MAAO,IAGfp3J,KAAM,CACFvmD,KAAM,MACN67M,SAAU,IACVr2N,KAAM,CACFm4N,MAAO,GAEXtgK,GAAI,CACAsgK,MAAO,8BAO/B,YACI,qDACAthO,KAAK6Z,WAAW4F,SAvFG,mBAwFnBzf,KAAKsoc,uBACLtoc,KAAKile,6DAET,WACIjle,KAAKyoc,iBAAmBzoc,KAAKw7N,sBAAsB,qDAEvD,WACIx7N,KAAKkle,mBAAqBlle,KAAKw7N,sBAAsB,+CAEzD,WACIx7N,KAAK27N,iBAAiBC,oBAAoB,CACtC96M,QAAS,IAAI63O,EAAAA,EAAqB,cAEtC,yFAEJ,WACI34P,KAAKy3B,iBACL,kFAEJ,YACI,uDACAz3B,KAAK4gV,QAAQ,CACT4mD,UAAU,EACV4C,SAAUpqY,KAAK6kB,OAAO,8CAG9B,WACQ7kB,KAAK6kB,OAAO,WACZ7kB,KAAK06X,qCAGb,WACI16X,KAAK0+V,mBACL1+V,KAAK6+P,OAAS7+P,KAAK6+P,MAAMhlP,WAAWrY,SACpCxB,KAAK8uW,QAAU9uW,KAAK8uW,OAAOj1V,WAAWrY,gBAC/BxB,KAAK6+P,aACL7+P,KAAK8uW,oCAEhB,WAAgB,WACRksC,EAAUh7Y,KAAK6Z,WAAW4F,SA3HJ,0BA4H1Bzf,KAAK+ke,QAAU/ke,KAAKonP,iBAAiB4zJ,EAAS9+D,EAAAA,QAAQ,CAClDv8T,KAAM,WACNgK,SAAU,UACVmyT,aAAc97U,KAAK6kB,OAAO,gBAC1B0oT,mBAAmB,EACnBD,mBAAmB,EACnBtmQ,QAAS,SAAAxmE,GACL,EAAKqkB,OAAO,UAAW,EAAKA,OAAO,WACnC,EAAKqgd,mBAAmB1ke,wCAIpC,SAAmBqZ,EAAUjY,EAAOpB,GAChCR,KAAK+ke,QAAQn7E,mBAAmB/vY,EAAUjY,EAAOpB,wCAErD,SAAsBw1X,GAClB,IAAI7+R,EAAQ,OAAS6+R,QAAU,IAAWA,EAASA,GAAUh2X,KAAK8uW,OAAOjqV,OAAO,WAC5EmxW,GACAh2X,KAAK06X,eAET16X,KAAK8uW,OAAO15G,OAAOj+J,GACnBn3F,KAAK4gV,QAAQ,WAAYzpP,+BAE7B,WAAe,WACX,IAAIn3F,KAAK0pY,QAAT,CAGA1pY,KAAK0pY,SAAUh8X,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK6Z,YACxC,MAII7Z,KAAK6kB,SAHOktD,EADhB,EACIA,WACWjyD,EAFf,EAEIA,UACWwkN,EAHf,EAGIA,UAEJtkO,KAAK8uW,OAAS9uW,KAAKonP,iBAAiBpnP,KAAK0pY,QAAS,UAAW,CACzD5mW,cADyD,SAC3CkkN,GAGNA,EADA34N,UAEM8mM,WAAW11M,SApKI,iCAoKyCA,SArKjD,0BAuKrB29V,gBAAgB,EAChBh3V,gBAAiB,SAAAoha,GAAc,OAAI,EAAK+iB,YAAY/iB,IACpD5iD,iCAAiC,EACjCl/W,UAAW,kBAAM,EAAKL,iBACtBc,SAAU,CACNu5C,GAAI,OAAO9jC,OAAOm2C,EAAa,OAAS,SACxCpS,GAAI,UAAU/jC,OAAOm2C,EAAa,OAAS,SAC3C3sD,UAAW,WACX7Z,OAAQ,CACJs7C,EA3KQ,GA6KZ4Y,GAAIz/D,KAAK6Z,YAEbyqN,UAAWA,EACXme,gBAAiB,SAAA0F,GACb,IACU36O,EAEN26O,EAFA36O,KACO5L,EACPumP,EADAvmP,MAEA,YAAc4L,GACd,EAAKqX,OAAO,SAAUjjB,IAG9Bke,UAAWA,EACXoma,mBAAmB,EACnB30a,OAAQ,OACRD,MAAO,OACPgV,mBAAoB,SAAA9lB,GAAC,OAAI,EAAKmqY,6BAA6BnqY,IAC3D28W,oBAAoB,EACpBliI,SAAS,EACTtvF,aAAa,EACb0xN,WAAW,EACXytB,YAAY,EACZ0/B,qBAAqB,kCAG7B,WACI,IAAI3wZ,EAAW7Z,KAAK6Z,WAChBytC,EAAYztC,EAAStO,SAASuN,IAC9B0M,GAAegzM,EAAAA,EAAAA,KAAevK,EAAAA,EAAAA,OAC9BvoM,EAAYC,KAAKC,IAAI0hC,EAAW9hC,EAAe8hC,GAAYkxK,EAAAA,EAAAA,IAAe3+M,IAC9E,OAAO8L,KAAKG,IAAIN,EAAcE,EA3MV,EADS,gDA8MjC,SAA6BllB,GAEzB,QADsBkN,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ/J,KAAK6Z,YAAYvZ,kCAG/D,SAAYknb,GAAgB,WACpB7tZ,GAAWjsB,EAAAA,EAAAA,GAAE85a,GACjB7tZ,EAASla,SAtNe,wBAuNxBzf,KAAK6+P,MAAQ7+P,KAAKonP,iBAAiBztN,EAAUsqc,EAAiB,CAC1D54c,WAAYrrB,KAAKmle,qBACjBjgF,aAAc,eACdO,iBAAiB,EACjBtjV,WAAY,GACZ51C,aAAcvsB,KAAK6kB,OAAO,gBAC1B60T,YAAa,SAAAl5U,GACL,EAAKqkB,OAAO,iBACZ,EAAKA,OAAO,UAAU,GAE1B,EAAK4jb,iBAAiBjoc,IAE1Bs+I,UAAW,EACXwuL,mBAAmB,EACnBD,oBAAoB,EACpBuM,eAAgB55U,KAAK6kB,OAAO,kBAC5Bs1U,gBAAiB,CACb3nN,KAAM,gDAIlB,SAAmBtyI,EAAM+yB,EAAUrxB,GAC/B,IAAI4nc,EACJ,QAAUA,EAAcxpc,KAAK6+P,aAAU,IAAW2qM,GAAuBA,EAAYlsG,mBAAmBp9V,EAAM+yB,EAAUrxB,GACxHihe,EAAmC7ie,KAAK6+P,MAAO3+P,qCAEnD,WACI,IAAI86R,EACJ,OAAO,QAAUA,EAAeh7R,KAAK6kB,OAAO,qBAAkB,IAAWm2Q,EAAeA,EAAeh7R,KAAK6kB,OAAO,2CAEvH,WACI,IAAI+kc,EACJ,QAAUA,EAAe5pd,KAAK6+P,aAAU,IAAW+qN,GAAwBA,EAAa/kc,OAAO,aAAc7kB,KAAKmle,6BAC3Gnle,KAAKole,qDAEhB,WACI,OAAO,qEAA8Bxpc,OAAO,CAAC57B,KAAK6+P,yCAEtD,SAAkBh2P,IACd,gEAAwBA,GACxB7I,KAAK+ke,QAAQlgd,OAAO,UAAWhc,iCAEnC,SAAe2d,GACX,IAAIglc,EAAc6Z,EAAcC,EAEtB93d,EAENgZ,EAFAhZ,KACO5L,EACP4kB,EADA5kB,MAEJ,OAAQ4L,GACJ,IAAK,QACL,IAAK,aACIxN,KAAK6kB,OAAO,UAGb7kB,KAAK8nc,qBAFL9nc,KAAKole,iBAAkB,EAI3B,MACJ,IAAK,eACD,QAAU5Z,EAAexrd,KAAK6+P,aAAU,IAAW2sN,GAAwBA,EAAa3mc,OAAOrX,EAAMxN,KAAKu2N,aAAa30N,IACvH,MACJ,IAAK,cACD5B,KAAKsoc,uBACL,MACJ,IAAK,gBACDtoc,KAAKkle,qBACL,MACJ,IAAK,eACDlle,KAAK0rP,cACL,MACJ,IAAK,oBACD,QAAU25O,EAAerle,KAAK6+P,aAAU,IAAWwmO,GAAwBA,EAAaxgd,OAAOrX,EAAM5L,IACrG,6DAAqB4kB,GACrB,MACJ,IAAK,iBACD,QAAU8+c,EAAetle,KAAK6+P,aAAU,IAAWymO,GAAwBA,EAAazgd,OAAOrX,EAAM5L,GACrG,MACJ,IAAK,SACG5B,KAAKole,iBACLple,KAAK8nc,qBAET9nc,KAAKule,sBAAsB3je,GAC3B5B,KAAKwle,gCACL,MACJ,IAAK,eACD,MACJ,IAAK,YACDxle,KAAK8uW,QAAU9uW,KAAK8uW,OAAOjqV,OAAOrX,EAAM5L,GACxC,MACJ,IAAK,WACG5B,KAAK6+P,OACL7+P,KAAKwle,gCAET,MACJ,SACI,6DAAqBh/c,iDAGjC,WAAgC,WAC5BxmB,KAAK6kB,OAAO,SAAS5kB,SAAQ,SAAAC,GAAI,OAAI2ie,EAAmC,EAAKhkO,MAAO3+P,YArTvE4ke,CAAqBhjL,EAAAA,qBCZtCkrH,EAAwB,qBAGxBy4D,EAA+B,4BAC/BC,EAAsB,4BACbC,EAAb,WACI,WAAY5lc,IAAS,eACjB//B,KAAKyje,SAAW1jc,EAFxB,0CAII,WAAc,YACVmgO,EAAAA,EAAAA,cAAY,WACR,EAAK0lO,sBACL,EAAKC,wBAPjB,iCAUI,WAAsB,WAClB,GAAK7le,KAAK8le,uBAAV,CAGA9le,KAAK+le,6BACL,IAAInuF,GAAQlqY,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAKgme,0BACjCC,EAAkBjme,KAAKyje,SAASjoQ,sBAAsB,eACtDqpQ,EAAmB7ke,KAAKyje,SAASxnQ,qBAAqB,oBAC1Dj8N,KAAKgL,MAAQhL,KAAKyje,SAASr8O,iBAAiBwwJ,EAAOktF,EAAc,CAC7D15d,SAAUpL,KAAKyje,SAAS5+c,OAAO,YAC/B0H,aAAc,kBAAMs4c,GACpBnrJ,YAAa,SAAAl5U,GACTyle,EAAgBzle,IAEpBsf,UAAW9f,KAAKyje,SAAS5+c,OAAO,iBAChC49N,gBAAiB,SAAAuE,GACb,IACUx5O,EAENw5O,EAFAx5O,KACO5L,EACPolP,EADAplP,MAEA,WAAa4L,GACb,EAAKi2d,SAAS5+c,OAAO,sBAAuBjjB,GAE5C,UAAY4L,GACZ,EAAK04d,sBAAsBtke,SAlC/C,6BAuCI,WACS5B,KAAKgL,OACNhL,KAAK4le,sBAET5le,KAAKgL,OAAShL,KAAKgL,MAAM6Z,OAAO,QAAS7kB,KAAKmme,iBAC1Cnme,KAAKgL,QAAUhL,KAAKgL,MAAM6Z,OAAO,SAASvkB,QAC1CN,KAAKgL,MAAM6Z,OAAO,UAAU,KA7CxC,wCAgDI,WACI7kB,KAAKome,yBAA0B14d,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAKyje,SAAS4C,gBAAgB5md,SApD9D,qBAoD6FA,SArD3E,+BAI7C,oCAmDI,WACI,OAAOzf,KAAKome,0BApDpB,mCAsDI,SAAsB77c,GAClB,IAAI7e,EAAQ,OAAS6e,QAAa,IAAWA,EAAYA,EAAYvqB,KAAKmme,gBACtEG,EAAgB56d,EAAMpL,QAAUN,KAAK8le,qBAAqBp6d,GAC9D1L,KAAKule,sBAAsBe,KAzDnC,mCA2DI,SAAsB1ke,GACb5B,KAAKgme,0BAGVhme,KAAKgme,yBAAyBxvQ,YAAYw2M,GAAwBpra,KA/D1E,8BAiEI,WAAmB,YACfs+P,EAAAA,EAAAA,cAAY,WACR,EAAKqmO,uBAnEjB,+BAsEI,WACIvme,KAAKume,oBAvEb,8BAyEI,WAAmB,IACX7C,EADW,OAEf,OAAO33O,EAAAA,EAAAA,MAAK,QAAU23O,EAAwB1je,KAAKyje,SAAS5+c,OAAO,gBAAa,IAAW6+c,EAAwBA,EAAwB,IAAI,SAAAxje,GAAI,OAAK,EAAKuje,SAAS+C,YAAYtme,QA3E1L,2BA6EI,WAAgB,IACRume,EAAwBC,EADhB,OAERn8c,GAAYwhO,EAAAA,EAAAA,MAAK,QAAU06O,EAAyBzme,KAAKyje,SAAS5+c,OAAO,gBAAa,IAAW4hd,EAAyBA,EAAyB,IAAI,SAAAvme,GAAI,OAAI,EAAKuje,SAAS+C,YAAYtme,MACzLyme,EAAe3me,KAAKyje,SAAS9qJ,iBAAiB5tU,SAAS,IAAI6wB,OAAO6pc,EAA8B,KAAK7pc,OAAO8pc,IAAsBtvO,IAAI,IAAIx6N,OAAOoxY,IACrJhta,KAAK4me,cAAgB,QAAUF,EAAsB1me,KAAK4me,qBAAkB,IAAWF,EAAsBA,EAAsB,GACnI,IAAIG,EAAgB,GAAGphe,MAAMhF,KAAKkme,GAAczge,KAAI,SAAAhG,GAChD,IAAI2qE,EAAW,EAAK44Z,SAAS7pI,aAAa15V,GACtCggW,GAAiBxyV,EAAAA,EAAAA,GAAExN,GACnB4me,EAAc5mI,EAAen1V,WACjC,OAAOjC,EAAAA,EAAAA,GAAO,CACV+7d,iBAAkB,WAMd,OALA,EAAK+B,cAAchme,KAAK,CACpBkf,UAAWogV,EACXhgW,KAAM4me,KAEOp5d,EAAAA,EAAAA,GAAE,SAAS+R,SAASgmd,GACnB1ld,OAAO+md,KAE9Bj8Z,MAEP,wBAAWg8Z,IAAX,OAA6Bt8c,MAjGrC,kCAmGI,SAAqB7e,GACjB,IAAI6e,EAAY,OAAS7e,QAAS,IAAWA,EAAQA,EAAQ1L,KAAKyje,SAAS5+c,OAAO,SAC9EhW,GAAS,EACTk4d,GAAez0O,EAAAA,EAAAA,eAAc,WAC7B00O,GAAiB10O,EAAAA,EAAAA,eAAc,gBAYnC,OAXA73O,EAAAA,EAAAA,IAAK8P,GAAY,SAAS1pB,EAAOX,GAC7B,IAAI+me,EAAcF,EAAa7me,EAAM,CACjCgyP,eAAe,IAEfg1O,EAAeF,EAAe9me,EAAM,CACpCgyP,eAAe,MAEf,IAAU+0O,GAAgB,SAAWC,GAAgB,WAAaA,IAAiB,SAAWhne,EAAK8/B,WACnGnxB,GAAS,MAGVA,IAnHf,2BAqHI,WACI,IAAIs4d,EACJnne,KAAKyje,SAAS2D,gBAAgB/rd,IAAI,CAC9BipL,OAAQ,SACR/1F,MAAO,UAEX9zF,EAAAA,EAAAA,IAAK,QAAU0sd,EAAuBnne,KAAK4me,qBAAkB,IAAWO,EAAuBA,EAAuB,IAAK,SAASzsd,EAAGgzD,IACnIhgE,EAAAA,EAAAA,GAAEggE,EAAI5tD,WAAWC,OAAO2tD,EAAIxtE,SAEhCF,KAAK4me,cAAgB,GACrB,IAAInuQ,GAAe37E,EAAAA,EAAAA,IAAS98I,KAAKyje,SAAS5pd,YAE1C,OADA7Z,KAAKqne,mBAAmB5uQ,GACjBA,IAjIf,gCAmII,SAAmBA,GACf,IAAI6uQ,EACAT,EAAgB7me,KAAKyje,SAAS5pd,WAAWwC,KAAK,IAAIuf,OAAO6pc,IAC7D,GAAKoB,EAAcvme,OAAnB,CAGAm4N,EAAe,QAAU6uQ,EAAgB7uQ,SAAiB,IAAW6uQ,EAAgBA,GAAgBxqV,EAAAA,EAAAA,IAAS98I,KAAKyje,SAAS5pd,aAC5HnM,EAAAA,EAAAA,GAAEm5d,GAAehvc,YAAY6tc,GAE7B,IADA,IAAI6B,EAAavne,KAAKwne,iBACfX,EAAcvme,QAAUm4N,EAAe8uQ,GAAY,CACtD,IAAIvvJ,EAAQ6uJ,EAAcj/a,IAAI,GAC9B2/a,IAAcjvQ,EAAAA,EAAAA,IAAc0/G,GAC5BA,EAAMv4T,SAASimd,GACfmB,EAAct3d,QAAQ,EAAG,OAhJrC,4BAmJI,WACI,OAAOvP,KAAKyje,SAASzgI,sBAAsB,CAAChjW,KAAKyje,SAASgE,gBAAiBzne,KAAKyje,SAAS2D,gBAAiBpne,KAAKyje,SAAS4C,mBApJhI,gCAsJI,SAAmBnme,EAAM+yB,EAAUrxB,GAGvB,IAAI8le,EAFZ,GAAI1ne,KAAKyje,SAAS+C,YAAYtme,KACtB,aAAe+yB,GAAY,qBAAuBA,GAGlD,YADA,QAAUy0c,EAAc1ne,KAAKgL,aAAU,IAAW08d,GAAuBA,EAAYpqI,mBAAmBp9V,EAAM+yB,EAAUrxB,IAIhI5B,KAAKume,oBA9Jb,yBAgKI,SAAYrme,EAAM4qE,GACV,SAAW5qE,EAAKyne,cAChB78Z,EAAYrrD,SAASgmd,KAlKjC,4BAqKI,SAAej4d,EAAM5L,GACjB,IAAIgme,EAAcC,EAAcC,EAAcC,EAAcC,EAC5D,OAAQx6d,GACJ,IAAK,WACD,QAAUo6d,EAAe5ne,KAAKgL,aAAU,IAAW48d,GAAwBA,EAAa/id,OAAOrX,EAAM5L,GACrG,MACJ,IAAK,sBACD,QAAUime,EAAe7ne,KAAKgL,aAAU,IAAW68d,GAAwBA,EAAahjd,OAAO,SAAUjjB,GACzG,MACJ,IAAK,cACD,QAAUkme,EAAe9ne,KAAKgL,aAAU,IAAW88d,GAAwBA,EAAajjd,OAAOrX,EAAM5L,GACrG,MACJ,IAAK,gBACD,QAAUmme,EAAe/ne,KAAKgL,aAAU,IAAW+8d,GAAwBA,EAAaljd,OAAO,YAAajjB,GAC5G,MACJ,IAAK,mBACD,QAAUome,EAAehoe,KAAKgL,aAAU,IAAWg9d,GAAwBA,EAAanjd,OAAO,eAAgBjjB,QArL/H,KCRM0hE,EAAAA,SAAAA,6IACF,WACI,OAAOx6D,EAAAA,EAAAA,IAAO,kEAA4B,CACtC+7d,iBAAkB,WAClBoD,mBAAe,EACfC,qBAAqB,EACrBtsb,WAAW,gCAGnB,WACI,OAAO57C,KAAK6kB,OAAO,8CAEvB,SAAkB3M,GACV,WAAaA,KAGjB,iEACAlY,KAAKmoe,gBAAgBp+O,gDAEzB,YACI,2DACA/pP,KAAKwle,gCACLxle,KAAKmoe,gBAAgB19O,4CAEzB,YACI,8DACAzqP,KAAKooe,sDAET,WACI,OAAIpoe,KAAKqoe,eACEroe,KAAK2je,yBAEhB,mGAEJ,WACI3je,KAAK6Z,WAAW28M,YArCM,uBAqC+Bx2N,KAAKqoe,gBAC1Droe,KAAKmoe,gBAAkBnoe,KAAKqoe,eAAiB,IAAI7E,EAAkBxje,MAAQ,IAAI2le,EAAmB3le,qCAEtG,WACI,IAAIA,KAAKqoe,eAGT,6GAEJ,WACIroe,KAAKmoe,gBAAgBd,qBACrBrne,KAAKmoe,gBAAgBjC,yBACrB,uEACAlme,KAAKmoe,gBAAgBtC,8CAEzB,SAAYhle,EAAOX,EAAMuke,EAAeC,GACpC,IAAI55Z,GAAc,0DAAkBjqE,EAAOX,EAAMuke,EAAeC,GAChE1ke,KAAKmoe,gBAAgB1qI,YAAYv9V,EAAM4qE,GACvC,IACY7qC,EAER//B,EAFA+/B,OACUqoc,EACVpoe,EADAooe,SAKJ,MAHI,aAAeroc,GAAU,WAAaqoc,GACtCx9Z,EAAY0rJ,YA3DW,6BA6DpB1rJ,gCAEX,WACI,OAAO9qE,KAAKmoe,gBAAgBX,8CAEhC,WACI,OAAOxne,KAAKmoe,gBAAgBhC,gDAEhC,WACI,OAAOnme,KAAKmoe,gBAAgB9/C,gDAEhC,WACI,IAAIrob,KAAK6Z,WAAWigB,GAAG,WAAvB,CAGA,IAAI2+L,EAAez4N,KAAKmoe,gBAAgBI,gBACnCvoe,KAAKqoe,iBACN,4DAAoB5vQ,sCAG5B,SAAmBv4N,EAAM+yB,EAAUrxB,GAC/B5B,KAAKmoe,gBAAgB7qI,mBAAmBp9V,EAAM+yB,EAAUrxB,GACnD5B,KAAKwme,YAAYtme,KAClB,iEAAyBA,EAAM+yB,EAAUrxB,GAEzC,aAAeqxB,GAAY,qBAAuBA,GAClD4vc,EAAmC7ie,KAAME,GAEzC,aAAe+yB,GACfjzB,KAAKslB,uDAGb,WAAgC,WAC5BtlB,KAAKqob,mBAAmBpob,SAAQ,SAAAC,GAAI,OAAI2ie,EAAmC,EAAM3ie,iCAErF,SAAY2qE,GACR,MAAO,SAAWA,EAAS7qC,UAAY,WAAa6qC,EAAS88Z,2CAEjE,SAAe98Z,GACX,YAAO,IAAWA,EAAS7qC,UAAY,UAAY6qC,EAAS88Z,2CAEhE,SAAe3gP,GACX,IACUx5O,EAENw5O,EAFAx5O,KACO5L,EACPolP,EADAplP,MAGJ,OADA5B,KAAKmoe,gBAAgBjsQ,eAAe1uN,EAAM5L,GAClC4L,GACJ,IAAK,gBACL,IAAK,mBACL,IAAK,sBACD,MACJ,IAAK,YACDxN,KAAK0rP,cACL,MACJ,IAAK,YACD,mDAAqB1lO,MAAMhmB,KAAM+H,WACjC/H,KAAKwle,gCACL,MACJ,SACI,mDAAqBx/c,MAAMhmB,KAAM+H,4CAG7C,WACI/H,KAAK+pP,0BA5HPzmL,CAAgBkla,EAAAA,IA+HtBlod,EAAAA,EAAAA,SAAkB,YAAagjD,GAC/B,IC/IA,ED+IA,sEEhJO,IAAImla,EAAgB,6QC0C3B,EAlC4BC,EAAAA,EAAAA,QAA6B,CACrDj+O,YADqD,WAEjDzqP,KAAK2oe,eAAiB,GACtB3oe,KAAKuxN,YAET4vI,mBALqD,SAKlC36U,GACf,IAAIoid,EAAwB,IAAIp2Q,EAAAA,GAC5Bq2Q,EAAe,IAAIr2Q,EAAAA,GACvBxyN,KAAK2oe,eAAenid,EAAK3lB,OAASgoe,EAClC,IAAI7nI,EAAehhW,KAAKuxN,SAAS9wN,KAAKT,KAAMwmB,GAI5C,OAHAqid,EAAazvc,MAAK,WACdwvc,EAAsBx4d,QAAQ4wV,MAE3B4nI,EAAsBp4d,WAEjC2xV,wBAAyB,SAAS51U,EAAc21U,GAAY,WACxD,OAAO,WACH,EAAKymI,eAAezmI,EAAWrhW,OAAOuP,YAG9C04d,wBAAyB92Q,EAAAA,KACzB+2Q,kBArBqD,WAqBjC,WACZjsX,EAAI,IAAI01G,EAAAA,GAKZ,OAJAiI,EAAAA,GAAAA,MAAWz6N,KAAMA,KAAK2oe,gBAAgBvvc,MAAK,WACvC,EAAK0vc,0BACLhsX,EAAE1sG,aAEC0sG,EAAEtsG,WAEb+6O,OA7BqD,WA8BjDvrP,KAAKuxN,WACLvxN,KAAK2oe,eAAiB,sCCP1BK,EAAuB,oBAEvBC,EAAsB,mBAGtBC,EAAsB,mBAItBC,EAAwB,qBACxBC,EAAmB,OAKjBZ,EAAAA,SAAAA,sKACF,WACI,OAAO,2FAAoD5ie,QAAO,SAAA1F,GAAI,MAAI,aAAeA,mCAE7F,YACI,8DACA,IAAIypB,EAAW,IAAIguO,EAAAA,EAAiB,SAASpwN,EAAY15B,EAAMw7d,GAC3D,IAAItuZ,EAAAA,EAAAA,IAAcltE,GAAO,CACrB,IAYQy7d,EAXE3me,EAGNkL,EAHAlL,KACM6kD,EAEN35C,EAFA25C,KACQvnB,EACRpyB,EADAoyB,OAQJ,GANIt9B,GACA4kC,EAAW5kC,KAAKA,GAAMmzP,UAAU,SAEhCtuM,GACAjgB,EAAWigB,KAAKA,GAEhB,qBAAuBvnB,EAEvBpyB,EAAKuM,QAAU,QAAUkvd,EAAgBz7d,EAAKuM,eAAY,IAAWkvd,EAAgBA,EAAgB,IAChG3gb,EAAAA,EAAAA,IAAU96C,EAAKuM,QAAQ2sD,eACxBl5D,EAAKuM,QAAQ2sD,YAAc/mE,KAAK6kB,OAAO,kBAAoBukd,EA1BzC,aA6B1B,GAAI,aAAenpc,EAAQ,CAEnB,IAAIspc,EAAgBC,EAKhBC,EAAgBC,EANxB,GAAI1pe,KAAK6kB,OAAO,kBAEZhX,EAAKuM,QAAU,QAAUmvd,EAAiB17d,EAAKuM,eAAY,IAAWmvd,EAAiBA,EAAiB,GACxG17d,EAAKuM,QAAQ2sD,YAAc,QAAUyia,EAAwB37d,EAAKuM,QAAQ2sD,mBAAgB,IAAWyia,EAAwBA,EAAwBJ,EAEzJ,GAAIppe,KAAK6kB,OAAO,qBAEZhX,EAAKuM,QAAU,QAAUqvd,EAAiB57d,EAAKuM,eAAY,IAAWqvd,EAAiBA,EAAiB,GACxG57d,EAAKuM,QAAQuJ,KAAO,QAAU+ld,EAAqB77d,EAAKuM,QAAQuJ,YAAS,IAAW+ld,EAAqBA,EAvCvG,gBA2CVnic,EAAW5kC,KAAKkjE,OAAOh4D,IAE3B7N,KAAKu2N,aAAa,uBAAuBh3M,OAAO,CAC5CO,UAAWynB,EACXv7B,MAAOq9d,EACP59d,OAAQzL,QAEdyK,KAAKzK,MAAO,CAAC,OAAQ,OAAQ,SAAU,WAAYA,KAAK6kB,OAAO,mCACjE7kB,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAMypB,EACN2zX,SAAU3zX,sCAGlB,WACI,OAAO7gB,EAAAA,EAAAA,IAAO,kEAA4B,CACtC6ge,SAAU,aACVtkF,SAAS,EACT2jC,gBAAgB,EAChBD,mBAAmB,wCAG3B,WACI,OAAO,oEAA6BntZ,OAAO,CAAC,CACxCwiN,OAAQ,WACJ,OAAO69F,EAAAA,EAAAA,eAEX7hU,QAAS,CACL4ua,gBAAgB,oCAI5B,WACI,OAAOhpb,KAAK2je,wBAAwBtnd,KAAK,CAAC,IAAIuf,OAAOotc,GAAuB,IAAIptc,OArF7D,qBAqF2F,IAAIA,OAAOqtc,IAAsBh4d,KAAK,gCAExJ,WACI,MArFiB,8CAuFrB,WACI,MA/EoB,wDAiFxB,WACQjR,KAAK6kP,YAGT7kP,KAAKuoe,gBACLvoe,KAAK4pe,gDAET,WACI5pe,KAAK6pe,iBACL7pe,KAAKkke,mBACL,kFAEJ,YACI,uDACAlke,KAAK+oe,oBACL/oe,KAAK8pe,qEAET,WACI9pe,KAAKuoe,8CAET,WACIvoe,KAAK6Z,WAAW4F,SAASgpd,EAAAA,GACzBzoe,KAAK2je,yBAA0Bj2d,EAAAA,EAAAA,GAAE,SAAS+R,SA7Gd,8BA6GsDwY,SAASj4B,KAAK6Z,YAChG7Z,KAAK4gV,QAAQ,OAAQ,0CAEzB,WAAkB,WACVr5S,EAAavnC,KAAK2je,yBACtBlpd,EAAAA,EAAAA,IAAK,CAAC,SAAU,SAAU,UAAU,SAACC,EAAG2pd,GACpC,IAAI0F,EAAe,cAAcnuc,OAAOyoc,GACzB98b,EAAWlrB,KAAK,IAAIuf,OAAOmuc,IAC5Bzpe,SACV,EAAK,KAAKs7B,OAAOyoc,EAAS,aAAc32d,EAAAA,EAAAA,GAAE,SAAS+R,SAASsqd,GAAc9xc,SAASsP,oCAI/F,SAAckxL,GACV,IAAI6uQ,EACJ7uQ,EAAe,QAAU6uQ,EAAgB7uQ,SAAiB,IAAW6uQ,EAAgBA,GAAgBxqV,EAAAA,EAAAA,IAAS98I,KAAK6Z,YACnH7Z,KAAKone,gBAAgB/rd,IAAI,CACrBipL,OAAQ,SACR/1F,MAAO,SAEX,IAAIy7X,GAAat5Q,EAAAA,EAAAA,GAAgB1wN,KAAKyne,gBAAgB5nd,IAAI,IACtDoqd,GAAYv5Q,EAAAA,EAAAA,GAAgB1wN,KAAKqme,eAAexmd,IAAI,IACxD7f,KAAKkqe,oBAAoBF,EAAYC,EAAWxxQ,GAChD,IAAIw+I,EAASj3W,KAAK2je,wBAAwBtnd,KAAK,IAAIuf,OAAOstc,IAAsBthb,GAAG,GAC/Euib,EAAWlzH,EAAOxrW,SACtB,GAAKwrW,EAAO32W,OAAZ,CAGA,IAAI8pe,EAAcJ,EAAW14d,MAAQ04d,EAAW14d,MAAQ2lW,EAAO9wV,WAAWzN,KACtE2xd,EAAqBF,EAASp6Q,SAASi5Q,GAAwB,EAAIoB,EACnEE,EAAoBH,EAASp6Q,SAASk5Q,GAAuB,EAAIgB,EAAU34d,MAC3Ei5d,EAAsB,EAC1BJ,EAASp/d,WAAWqrP,IAAI,IAAIx6N,OAAOstc,IAAsBzud,MAAM,WAC3D8vd,IAAuBjyQ,EAAAA,EAAAA,IAAct4N,SAEzC,IAAIwqe,EAAY/xQ,EAAe8xQ,EAC3BE,EAAkB9kd,KAAKC,IAAI4kd,EAAYH,EAAqBC,EAAmB,GACnF,GAAIH,EAASp6Q,SAASi5Q,GAClBhpe,KAAK0qe,cAAc1qe,KAAKyne,gBAAiBgD,OACtC,CACH,IAAI7G,GAAgBtrQ,EAAAA,EAAAA,IAAc2+I,IAAUn6N,EAAAA,EAAAA,IAASm6N,GACrDA,EAAO57V,IAAI,WAAYovd,EAAkB7G,wCAGjD,SAAoBoG,EAAYC,EAAWxxQ,GACvCz4N,KAAK0qe,cAAc1qe,KAAKone,gBAAiB3uQ,EAAeuxQ,EAAW14d,MAAQ24d,EAAU34d,OACrF,IAAI+/V,EAAQrxW,KAAK6kB,OAAO,cACpB8ld,EAAWt5H,EAAQ44H,EAAYD,EAC/BY,EAAYv5H,EAAQ24H,EAAaC,EACjCY,GAAan6Q,EAAAA,EAAAA,GAAgB1wN,KAAKone,gBAAgBvnd,IAAI,KACtD8qd,EAAS5sd,MAAQ8sd,EAAWnyd,MAAQmyd,EAAW9sd,MAAQ6sd,EAAUlyd,OACjE1Y,KAAKone,gBAAgB/rd,IAAI,CACrBu7O,WAAY+zO,EAASr5d,MACrBw5d,YAAaF,EAAUt5d,MACvBi9F,MAAOo8X,EAASr5d,MAAQs5d,EAAUt5d,MAAQ,OAAS,uCAI/D,SAAc64d,EAAUnrd,GACpB,IACIqjB,EADU8nc,EAAS9td,KAAK,IAAIuf,OAAOstc,IAClBpvQ,UACrB96M,GAAYhf,KAAK+qe,0BAA0B1oc,GAC3C,IAAI2oc,EAAehre,KAAKire,uBAAuB5oc,GAC3CioO,EAAa3kP,KAAK23B,IAAI0tb,EAAehsd,GACrCA,EAAWgsd,GACX3oc,EAASA,EAAOtO,UAChB/zB,KAAKkre,oBAAoB7oc,EAAQioO,GAAY,IAE7CtqQ,KAAKkre,oBAAoB7oc,EAAQioO,GAAY,sCAGrD,SAAoBjoO,EAAQioO,EAAY6gO,GAIpC,IAHA,IAAIC,EAAoB,SAAS/nV,GAC7B,OAAOqtE,EAAAA,EAAAA,GAAgBrtE,GAAO/xI,OAEzBvF,EAAI,EAAGA,EAAIs2B,EAAO/hC,OAAQyL,IAAK,CACpC,IAAIkrW,GAASvpW,EAAAA,EAAAA,GAAE20B,EAAOt2B,IAClBs/d,EAAoB1ld,KAAK+iK,KAAK0iT,EAAkB/oc,EAAOt2B,KACvDu/d,OAAgB,EAChBH,GACAl0H,EAAO57V,IAAI,WAAY,WAE3B,IAAIkwd,EAAqB5ld,KAAK+iK,KAAKyiT,EAAYC,EAAkB/oc,EAAOt2B,IAAMs/d,GAC9E,KAAIE,EAAqBjhO,GAGlB,CACHghO,EAAgBH,EAAYE,EAAoB/gO,EAAa+gO,EAAoB/gO,EACjF2sG,EAAO57V,IAAI,WAAYiwd,GACvB,MALAA,EAAgBH,EAAYI,EAAqB,EACjDjhO,GAAcihO,EAMlBt0H,EAAO57V,IAAI,WAAYiwd,qCAG/B,WACI,IAAIzxd,EAAW7Z,KAAK6Z,WACpBA,EAASge,YAAYsxc,GACjBnpe,KAAK6kB,OAAO,gBAAkB7kB,KAAKgjW,sBAAsBhjW,KAAKm9V,gBAAgB,IAAQrgN,EAAAA,EAAAA,IAASjjI,IAC/FA,EAAS4F,SAAS0pd,yCAG1B,SAAuB9mc,GACnB,IAAI/wB,EAAQ,EAIZ,OAHA+wB,EAAOpiC,SAAS,SAASojJ,EAAOxiJ,GAC5ByQ,IAASgnN,EAAAA,EAAAA,IAAcj1E,MAEpB/xI,2CAEX,SAA0B+wB,GACtB,IAAIlU,EAAU,EAId,OAHAkU,EAAOpiC,SAAS,SAASojJ,EAAOxiJ,GAC5BstB,IAAWmqM,EAAAA,EAAAA,IAAcj1E,IAASvG,EAAAA,EAAAA,IAASuG,MAExCl1H,6BAEX,SAAYttB,EAAOX,EAAMuke,EAAeC,GACpC,IAAIC,EAAgB6G,EAChBxrc,EAAW,QAAU2kc,EAAiBzke,EAAK8/B,gBAAa,IAAW2kc,EAAiBA,EAAiB,SACrG7kd,EAAY,OAAS2kd,QAAiB,IAAWA,EAAgBA,EAAgBzke,KAAK,KAAK47B,OAAOoE,EAAU,YAC5Gyrc,KAAiB,QAAUD,EAAatre,EAAKyC,YAAS,IAAW6oe,EAAaA,EAAatre,EAAKsnD,MAChGsjB,GAAc,0DAAkBjqE,EAAOX,EAAM4f,EAAW4kd,GAE5D,OADA55Z,EAAY0rJ,YAvOO,qBAuO4Bi1Q,GAAaj1Q,YAAY0yQ,EAAqBuC,GAAahsd,SAASvf,EAAKymI,UACjH77D,qCAEX,WAAsB,YAClBrwD,EAAAA,EAAAA,IAAKza,KAAK6kB,OAAO,UAAU,SAACgiY,EAAYn8X,GACpC,IAAIghd,EACAC,EAAajhd,EAAMhf,MACnB67B,GAAa75B,EAAAA,EAAAA,GAAE,SAAS+R,SA5Od,oBA6OVugB,EAAW,QAAU0rc,EAAkBhhd,EAAMsV,gBAAa,IAAW0rc,EAAkBA,EAAkB,SACxGC,GAAeA,EAAWrre,UAG/Bma,EAAAA,EAAAA,IAAKkxd,GAAY,SAAC3pd,EAAW9hB,GACzB,EAAKu9V,YAAYz7U,EAAW9hB,EAAMqnC,EAAY,SAElD,EAAKo8b,wBAAwBtnd,KAAK,eAAeuf,OAAOoE,IAAWjgB,OAAOwnB,mCAGlF,SAAa77B,GACK1L,KAAK6kB,OAAO,YAAcnZ,EAAMpL,QAAUoL,EAAM,GAAGA,MACvD1L,KAAK4re,uBAAR,2DAAmDlge,mCAE9D,WACI,IAAIsvR,EACJ,OAAO,QAAUA,EAAeh7R,KAAK6kB,OAAO,gBAAa,IAAWm2Q,EAAeA,EAAe,qCAEtG,WACI,IAAItvR,EAAQ1L,KAAKqob,mBACjBrob,KAAK6Z,WAAW28M,YAtQC,kBAsQ+B,IAAM9qN,EAAMpL,QACxDN,KAAKq7V,oBACLr7V,KAAKygW,aAAa/0V,EAAMjG,MAAMzF,KAAKq7V,sBAEnCr7V,KAAKygW,aAAa/0V,GAEtB1L,KAAK4pe,uDAET,kCACA,WACI5pe,KAAK2je,wBAAwB54d,WAAW0/D,QACxCzqE,KAAK6Z,WAAW4wD,eACTzqE,KAAKyne,uBACLzne,KAAKone,uBACLpne,KAAKqme,iDAEhB,SAAmBx9d,GACXA,GACA7I,KAAKuoe,0CAGb,WACI,OAAOzrV,EAAAA,EAAAA,IAAS98I,KAAK6Z,YAAc,IAAKgjI,EAAAA,EAAAA,IAAU78I,KAAK6Z,YAAc,iCAEzE,SAAgB3Z,GACZ,OAAOF,KAAKqob,mBAAmBlib,QAAQjG,qCAE3C,SAAmBA,EAAM+yB,EAAUrxB,IAC/B,uDAAyBokB,MAAMhmB,KAAM,CAACE,EAAM+yB,EAAUrxB,IACtD5B,KAAKuoe,8CAET,SAAevhP,GACX,IACUx5O,EAENw5O,EAFAx5O,KAEAw5O,EADAplP,MAEJ,OAAQ4L,GACJ,IAAK,SACD,mDAAqBwY,MAAMhmB,KAAM+H,WACjC/H,KAAK+pP,oBACL,MACJ,IAAK,WACL,IAAK,iBACL,IAAK,oBACD/pP,KAAK0rP,cACL,MACJ,IAAK,cACD1rP,KAAK4pe,oBACL,MACJ,IAAK,UACD,MACJ,SACI,mDAAqB5jd,MAAMhmB,KAAM+H,oCAG7C,YACI,wDACAm2B,aAAal+B,KAAK6re,wEAEtB,WAA8B,YACtB5vJ,EAAAA,EAAAA,eACA99R,QAAQpI,IAAI,CAAQ,IAAIoI,SAAQ,SAAA/tC,IAcb,SAAX07d,IACA5tc,aAAa,EAAK2tc,6BAClB,EAAKA,4BAA8Bhpe,YAAW,kBAftC,WACR,IAAIkpe,GAAiB,EAUrB,OATA,EAAKlyd,WAAWiL,UAAUrK,MAAK,SAACC,EAAGjP,GAC/B,GAAIw0N,EAAAA,QAAAA,aAAevyN,EAAAA,EAAAA,GAAEjC,IAEjB,OADAsge,GAAiB,GACV,KAGXA,GACA37d,IAEG27d,EAI6Cn7L,IAAWk7L,MAxU3D,IA0URA,MACI,WACJ,IAAIE,EAAU,EAAKnyd,WAAWwC,KAAK,IAAIuf,OAAOstc,IAC1Cxna,EAAW,GAMf,OALAsqa,EAAQvxd,MAAK,SAACC,EAAG2oI,GACb,IAAI1gJ,GAAO+K,EAAAA,EAAAA,GAAE21I,GAAO1gJ,OAChBwqM,GAAaz/L,EAAAA,EAAAA,GAAE21I,GAAOhoI,IAAI,cAC9BqmD,EAAS9gE,MAAK8ge,EAAAA,EAAAA,aAAY/+d,EAAMwqM,OAE7BhvJ,QAAQpI,IAAI2rB,GARf,KASDljB,MAAK,WACR,EAAKurM,6BApVfy+O,CAAoByD,IAyV1B3rd,EAAAA,EAAAA,SAAkB,gBAAiBkod,GACnC,+JC7XIpsV,EAAUqgQ,EAAAA,EAAAA,QAAgB,CAC1BhqL,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BvkM,aAAc,GACd49W,iBAAiB,EACjBk7C,kBAAkB,EAClBzoE,WAAW,EACXzxV,MAAO,KACPg6Z,cAAe,KACfC,gBAAiB,KACjBE,eAAgB,KAChB9yB,qBAAqB,EACrB/1C,uBAAuB,KAG/BphJ,QAAS,WACL97N,KAAK6Z,WAAW4F,SArBJ,cAsBZzf,KAAKm1N,WAAW11M,SArBI,sBAsBpBzf,KAAKuxN,YAETgtI,eAAgB,WACZv+V,KAAKuxN,WACLvxN,KAAKkse,WAAa,MAAQ,IAAI/6O,EAAAA,EAC9BnxP,KAAKgvW,kBAAkBpvV,KAAK,CACxB3V,GAAIjK,KAAKkse,aAEblse,KAAKmse,wBAAuB,IAEhCA,uBAAwB,SAASrsH,GAC7B,IAAI3vU,GAAUziC,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,WACxBw+H,EAAQy8N,EAAU9/W,KAAKkse,gBAAa,GACnCjxZ,EAAAA,EAAAA,IAAS9qC,EAAQtwB,IAAI,KACtB7f,KAAK4gV,QAAQ,cAAev9L,EAAOlzG,OAI/C7vB,EAAAA,EAAAA,SAAkB,YAAa87H,GAC/B,IChDA,EDgDA,wYEcIgwV,EAAe,cACfC,EAAa,GAAGzwc,OAAOwwc,EAAc,SACrCE,EAAuB,GAAG1wc,OAAOywc,EAAY,cAC7CE,EAA4B,GAAG3wc,OAAOywc,EAAY,kBAClDG,EAA8B,GAAG5wc,OAAOywc,EAAY,qBACpDI,EAAU,GAAG7wc,OAAOywc,EAAY,YAChCtzI,EAAa,GAAGn9T,OAAOwwc,EAAc,SACrCM,EAA2B,GAAG9wc,OAAOm9T,EAAY,kBACjD4zI,EAAuC,GAAG/wc,OAAOm9T,EAAY,8BAC7D6zI,EAA4C,GAAGhxc,OAAOwwc,EAAc,wCACpES,EAA8B,GAAGjxc,OAAOm9T,EAAY,qBACpD+zI,EAAgB,GAAGlxc,OAAOm9T,EAAY,SACtCg0I,EAA+B,GAAGnxc,OAAOwwc,EAAc,2BACvDY,EAA6B,GAAGpxc,OAAOwwc,EAAc,yBACrDa,EAA2B,GAAGrxc,OAAOwwc,EAAc,uBACnDc,EAAuB,GAAGtxc,OAAOwwc,EAAc,kBAC/Ce,EAA+B,GAAGvxc,OAAOwwc,EAAc,0BACvDgB,EAAsC,GAAGxxc,OAAOwwc,EAAc,kCAC9DiB,EAAwB,GAAGzxc,OAAOwwc,EAAc,oBAChDp/D,EAAwB,qBACxB92B,EAAuB,oBAEvBo3F,EAAyB,oBACzBC,EAAe,eACfC,GAAehoH,EAAAA,EAAAA,QAAqC,CACpDl7B,eAAgB,SAAS9pV,GAAG,WACpB6wB,EAAQ,SAAA7wB,GACR,IAAI45N,GAAe1sN,EAAAA,EAAAA,GAAE,EAAKmX,OAAO,mBAC5Bu1M,EAAa95N,SAGlBE,EAAEoG,OAASwzN,EACX55N,EAAEkO,cAAgB0rN,EAClB,EAAK0/H,kBAAkBt5V,EAAG45N,EAAarvN,SAAS,IAAMguV,IAChC,EAAK00I,sBAAsB,EAAK5od,OAAO,mBACrBupM,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBqjM,IAEjE,EAAKI,oBAAoBlte,KAG7BsN,EAAS,SAAAtN,GACTA,EAAE6G,iBACF,IAAIk0V,GAAkB7tV,EAAAA,EAAAA,GAAE,EAAKmX,OAAO,mBAChC8od,EAAmB,EAAKC,qBAAqBryI,GACjD,IAAKoyI,EAAiB9od,OAAO,YAAa,CACtC,IAAIg4I,EAAe8wU,EAAiB9od,OAAO,SAC3C,EAAKgpd,sBAAsBhxU,EAAc0+L,EAAgBl/U,KAAK,IAAM08U,GAAYl5U,IAAI,IAAI,KAG5Fiud,EAA4B,SAAS32Y,EAAO32F,GAC5C,GAAKR,KAAK6kB,OAAO,oBAAjB,CAGArkB,EAAE6G,iBACF,IAAI0me,GAAerge,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACjC,GAAKkpd,EAAazte,OAAlB,CAGA,IAAIyQ,EAAW/Q,KAAK45V,aAAam0I,EAAa1xd,KAAK,IAAIuf,OAAOm9T,KAC9D/4V,KAAKgue,2BAA2B,CAACj9d,GAAWomF,MAEhD,OAAOruF,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B1lF,MAAO7rI,KAAKiue,kBAAoBnge,EAASujB,EACzCsoU,MAAO35V,KAAKiue,kBAAoBnge,EAASujB,EACzC68c,SAAUJ,EAA0Brje,KAAKzK,MAAM,GAC/C8ia,MAAOgrE,EAA0Brje,KAAKzK,MAAM,MAGpDgue,2BAA4B,SAAStie,EAAOyrF,GACxC,GAAKzrF,EAGL,IAAK,IAAIK,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAC9C,IAAI7L,EAAOwL,EAAMK,GACbkqE,EAAOj2E,KAAKo7W,aAAaC,cAAcn7W,GAC3CF,KAAKmue,qBAAqBl4Z,EAAMkhB,GAChCn3F,KAAKgue,2BAA2B9te,EAAKwL,MAAOyrF,KAGpDi3Y,gBAAiB,SAASn4Z,EAAMt2B,GAC5B,IAAI34C,EAAMhH,KAAKque,cAAcp4Z,EAAK6mS,eAAe91W,KACjD,GAAI24C,EASA,OARKA,EAAM2ub,aACP3ub,EAAM2ub,WAAa,GACnBtue,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAOywc,IAAa5xd,MAAM,WAC/C,IAAImnV,GAAQl0V,EAAAA,EAAAA,GAAE1N,MACVgH,EAAM46V,EAAMhiV,KAAK2td,GACrB5tb,EAAM2ub,WAAWtne,GAAO46V,MAGzBjiT,EAAM2ub,WAAWtne,KAAQ0G,EAAAA,EAAAA,KAEpC,IAAI5N,EAAUE,KAAK6Z,WAAWgG,IAAI,GAAG+5D,cAAc,IAAIh+C,OAAO2xc,EAAc,MAAM3xc,OAAO50B,EAAK,OAC9F,OAAO0G,EAAAA,EAAAA,GAAE5N,IAEb+pV,iBAAkB,IAAMkP,EACxBqnB,aAAc,WACV,OAAOgsH,GAEX35Q,mBAAoB,WAChB,IAAIu6B,GAAiBlkP,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CACzC+lM,kBAAkB,EAClB1hB,cAAe,OACfx4B,gBAAgB,EAChBmxH,kBAAkB,EAClBC,aAAc,WACd92E,sBAAsB,EACtB+2E,sBAAsB,EACtBC,mBAAoB,OACpBC,WAAY,KACZC,aAAc,KACdv+E,cAAelzF,EAAAA,EAAAA,OAA2B,oBAC1C0xK,uBAAwB,KACxBr3E,eAAgB,KAChBC,gBAAiB,KACjBq3E,gBAAiB,WACjBnqF,oBAAoB,EACpBoqF,oBAAoB,EACpBvsH,UAAW,EACXl1C,mBAAmB,EACnBhxH,cAAe,WACfq7M,YAAa,WACbn0D,eAAe,EACfwrI,eAAgB,KAChB5+E,wBAAyB,OAE7B,OAAOtnZ,EAAAA,EAAAA,IAAO,EAAMkkP,EAAgB,CAChC7D,mBAAoB,CAChBG,4BAA4B,MAIxC1G,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,OAAQoiC,EAAAA,iBAEZpmQ,QAAS,CACLuqY,oBAAoB,OAIhCsqF,mBAAoBj9Q,EAAAA,KACpBm0I,sBAAuB1kG,EAAAA,UACvBytO,sBAAuB,WACnB,IAAIxnI,EAAyB1nW,KAAK2nW,yBAClCltI,EAAAA,EAAAA,IAAKitI,GAAwBtuU,KAAK,WAC9Bp5B,KAAKw7N,sBAAsB,qBAAsB,CAC7C6b,kBAAmB,CAAC,WAAY,aADpCr3O,IAGFyK,KAAKzK,QAEXmve,mCAAoC,WAChCnve,KAAKove,6BAA+Bpve,KAAKw7N,sBAAsB,0BAA2B,CACtF6b,kBAAmB,CAAC,WAAY,eAGxCg4P,2BAA4B,SAASzte,GACjC5B,KAAKove,6BAA6B,CAC9Bxte,MAAOA,KAGf0te,oBAAqB,SAAS1te,EAAO42G,GACjC,GAAI,SAAWA,GAAiB,SAAW52G,EAA3C,CAGA,IAAI2te,EAAkBvve,KAAKwve,iBAAmBxve,KAAKwve,gBAAgBlve,OACnE,OAAQsB,GACJ,IAAK,YACI2te,IACDvve,KAAKmve,qCACLnve,KAAKyve,wBAET,MACJ,IAAK,SACGF,IACAvve,KAAKwve,gBAAgBhue,gBACdxB,KAAKwve,oBAI5BxnI,iBAAkB,WACd,IAAIpyK,EAAO51L,MACXya,EAAAA,EAAAA,IAAKza,KAAKo7W,aAAa04B,eAAgB,SAASp5X,EAAGu7D,GAC1C2/G,EAAKqhN,aAAahhU,IAGvB2/G,EAAKwlL,aAAayH,gBAAgB5sS,EAAK6mS,eAAe91W,KAAK,GAAO,OAG1Ek1N,eAAgB,SAAS11M,GACrB,IACUhZ,EAGNgZ,EAHAhZ,KACO5L,EAEP4kB,EAFA5kB,MACe42G,EACfhyF,EADAgyF,cAEJ,OAAQhrG,GACJ,IAAK,gBACGxN,KAAKwve,iBACLxve,KAAKwve,gBAAgBE,WAAW,YAAY7qd,OAAO,OAAQjjB,GAE/D,MACJ,IAAK,qBACD5B,KAAKsve,oBAAoB1te,EAAO42G,GAChCx4G,KAAK0rP,cACL,MACJ,IAAK,kBACD1rP,KAAK2ve,gBAAgB9qd,OAAO,YAAajjB,GACzC,MACJ,IAAK,qBACD5B,KAAK2ve,gBAAgB9qd,OAAO,YAAajjB,GACzC,MACJ,IAAK,eACM5B,KAAKwve,gBACZxve,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,aACDxmB,KAAKuxN,SAAS/qM,GACdxmB,KAAKw2Y,mBACLx2Y,KAAKsmD,QAAU,GACf,MACJ,IAAK,eACDtmD,KAAKu2Y,iBACLv2Y,KAAKslB,UACL,MACJ,IAAK,cACDtlB,KAAK4ve,mBACL,MACJ,IAAK,iBACL,IAAK,gBACL,IAAK,YACL,IAAK,iBACL,IAAK,uBACL,IAAK,yBACL,IAAK,iBACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACL,IAAK,qBACL,IAAK,gBACD,MACJ,IAAK,gBACD5ve,KAAKw2Y,mBACLx2Y,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,0BACDxmB,KAAKmve,qCACL,MACJ,IAAK,uBACDnve,KAAKo7W,aAAa51O,UAAU,qBAAsBh/G,EAAK5kB,OACvD5B,KAAKslB,UACL,MACJ,IAAK,aACL,IAAK,eACDtlB,KAAKslB,UACL,MACJ,QACItlB,KAAKuxN,SAAS/qM,KAG1B+zQ,gBAAiB,WACTv6R,KAAK6ve,2BACL7ve,KAAK8ve,4BAA4B,MAAM12c,KAAK,SAASkkO,GAC7CA,GAAYA,EAASh9P,QACrBN,KAAK6kB,OAAO,QAASy4O,IAE3B7yP,KAAKzK,QAEPA,KAAKuxN,WACLvxN,KAAK+ve,kBAAoB/ve,KAAKgwe,qBAGtCA,iBAAkB,WACd,IAAIpqe,EAAS5F,KAAKsmD,QACb1gD,EAAOm+B,SACRn+B,EAAOm+B,OAAS/jC,KAAK65R,YAAYj0R,UAEhCA,EAAOqqe,WACRrqe,EAAOqqe,SAAW,CAACjwe,KAAK6kB,OAAO,gBAAiB7kB,KAAK6kB,OAAO,gBAGpEgrd,yBAA0B,WACtB,OAAO30Z,EAAAA,EAAAA,IAAWl7E,KAAK6kB,OAAO,oBAAsB7kB,KAAKkwe,yBAE7DJ,4BAA6B,SAAS1ld,GAClC,IAAI+ld,EAAmBnwe,KAAK6kB,OAAO,kBAAkBpkB,KAAKT,KAAMoqB,GAChE,OAAI7kB,MAAMi2E,QAAQ20Z,IACN,IAAI39Q,EAAAA,IAAUpiN,QAAQ+/d,GAAkB3/d,UAEhD2/d,IAAoBj1Z,EAAAA,EAAAA,IAAWi1Z,EAAiB3xb,OACzCk8K,EAAAA,EAAAA,IAAYy1Q,IAEf,IAAI39Q,EAAAA,IAAUpiN,QAAQ,IAAII,WAEtC4/d,eAAgB,WACZ,OAAKpwe,KAAKsmD,QAAQviB,QAAW/jC,KAAKsmD,QAAQviB,OAAOzjC,OAG1C,CAACN,KAAKsmD,QAAQviB,OAAQ/jC,KAAKsmD,QAAQ2pb,UAF/Bjwe,KAAKsmD,QAAQ2pb,UAI5BzxI,4BAA6B,WACzBx+V,KAAK09V,uBAETlrR,MAAO,WACHxyE,KAAKsmD,QAAU,GACftmD,KAAKuxN,WACLvxN,KAAKqwe,4BAETlyI,0BAA2B,SAAS7gG,GAChC,IAAI5xP,EAAQ1L,KAAK6kB,OAAO,SACpB7kB,KAAK2jP,cAAgB3jP,KAAK+ve,kBAAoBrke,EAAMpL,QAGxDN,KAAK6kB,OAAO,QAASy4O,IAEzBgzO,6BAA8B,WACrBtwe,KAAKuwe,yBAGVvwe,KAAKuwe,uBAAuB/ue,SAC5BxB,KAAKuwe,uBAAyB,OAElCC,6BAA8B,WAG1B,OAFAxwe,KAAKuwe,wBAAyB7ie,EAAAA,EAAAA,GAAE,SAAS+R,SAASytd,GAClDlte,KAAKonP,iBAAiBpnP,KAAKuwe,uBAAwB9+E,EAAAA,EAAe,IAC3DzxZ,KAAKuwe,wBAEhBloF,iCAAkC,SAASt/X,GACvC,IAAI0nd,EAKJ,GAJIzwe,KAAK+ve,mBACLU,EAAezwe,KAAKowe,iBACpBpwe,KAAK65R,YAAYj0R,OAAO6qe,IAExB1nd,IAAc/oB,KAAK65R,YAAY3H,WAAY,CAC3ClyR,KAAK6kB,OAAO,QAAS,IACrB,IAAIswM,GAAWznN,EAAAA,EAAAA,GAAE,SAAS+R,SAAS0td,GACnCnte,KAAKwwe,+BAA+Bv4c,SAASk9L,GAC7Cn1N,KAAKkjW,iBAAiBnjV,OAAOo1M,GACzBn1N,KAAK+ve,kBAAoB/ve,KAAK65R,YAAYj0R,WAAa6qe,GACvDzwe,KAAK65R,YAAYj0R,OAAO,SAG5B5F,KAAKswe,gCAGbD,yBAA0B,WAAW,WAC7B,UAAYrwe,KAAK6kB,OAAO,kBAG5B7kB,KAAK65R,aAAe75R,KAAK65R,YAAYrzO,QAAQluB,GAAG,YAAY,SAAAzyB,GACxD,EAAKgf,SAASnZ,MAAQ,EAAKmZ,OAAO,SAAS+W,OAAO/1B,GAClD,EAAKu1W,aAAag6B,QAAQvvY,GACrB,EAAKu1W,aAAa1mV,WAAW7uB,IAGlC,EAAK6qe,aAAa,EAAKC,gBAAgB9qe,OACxCyyB,GAAG,WAAW,SAAAs4c,GACb,IAAI36Z,EAAO,EAAKmlS,aAAa6H,aAAa2tH,IACtCjob,EAAAA,EAAAA,IAAUstB,KACV,EAAKpxD,OAAO,SAAS,EAAKu2V,aAAa1W,cAAczuR,EAAK6mS,eAAe91W,MAAQ,EACjF,EAAK6pe,2BAA2B56Z,GAChC,EAAK66Z,eACL,EAAK11H,aAAavmV,WAAW+7c,GAC7B,EAAKF,aAAa,EAAKC,gBAAgB16Z,SAInD46Z,2BAA4B,SAAS56Z,GAAM,WACnClvE,EAAOkvE,EAAK6mS,eAAe6G,cAC/BlpW,EAAAA,EAAAA,IAAK1T,GAAM,SAAC2T,EAAG1T,GACX,EAAK6d,OAAO,SAAS,EAAKu2V,aAAa1W,cAAc19V,IAAQ,EAC7D,EAAK6pe,2BAA2B,EAAKz1H,aAAa6H,aAAaj8W,QAGvE8pe,aAAc,WAAW,WACjBple,GAAQ5C,EAAAA,EAAAA,IAAO,EAAM,GAAI9I,KAAK6kB,OAAO,UACrCw/H,EAAU,GACd5pI,EAAAA,EAAAA,IAAK/O,GAAO,SAAC7K,EAAOX,GACXA,IACD,EAAK2kB,OAAO,SAAStV,OAAO1O,EAAQwjJ,EAAS,GAC7CA,SAIZqsV,aAAc,SAAS31W,GACnB,IAAIxzF,EAAavnC,KAAK+we,yBAAyBh2W,GAC/C/6H,KAAKygW,aAAal5T,EAAYvnC,KAAKo7W,aAAa+5B,iBAAiBp6Q,KAErEi2W,iBAAkB,SAAS52Q,GACvB,GAAIA,EAAa95N,OACb,OAAO85N,EAAarvN,SAAS,IAAI6wB,OAAO0wc,IAE5C,IAAIz0C,EAAa73b,KAAK2ve,gBACtB,OAAI93C,GACOnqb,EAAAA,EAAAA,GAAEmqb,EAAW/2a,WAAW/V,YAE5B2C,EAAAA,EAAAA,MAEXqje,yBAA0B,SAASh2W,GAC/B,IAAI9kD,EAAOj2E,KAAKo7W,aAAa6H,aAAaloP,GACtCq/F,EAAenkJ,EAAOj2E,KAAKoue,gBAAgBn4Z,GAAQ,GACvDj2E,KAAKgxe,iBAAiB52Q,GAAc54N,SACpC,IAAI+lC,EAAavnC,KAAKixe,qBAAqB72Q,GAC3C,GAAIp6N,KAAKkxe,aAAan2W,GAAW,CAC7B,IAAI88T,EAAa73b,KAAK2ve,gBACjB93C,GACD73b,KAAKmxe,8BAETzje,EAAAA,EAAAA,GAAEmqb,EAAW/2a,WAAWf,OAAOwnB,GAEnC,OAAOA,GAEX2pc,aAAc,SAASn2W,GACnB,OAAOA,IAAa/6H,KAAK6kB,OAAO,cAEpCiyX,cAAe,WACX,IAAI7E,EAAYjyY,KAAKuxN,WAErB,OADA0gL,EAAUrxY,KAAK,YACRqxY,GAEX0E,uBAAwB,WACpB,IAAIy6F,EAAmBC,EAAuBC,EAC9C,MAAO,CACH9uH,UAAWxiX,KAAK6kB,OAAO,aACvB49V,mBAAoBziX,KAAKuxe,qBACzB7uH,mBAAoB1iX,KAAKwxe,wBACzB7uH,mBAAoB3iX,KAAK6kB,OAAO,wBAChC0+U,kBAAmBvjW,KAAK6kB,OAAO,qBAC/B4rF,SAAUzwG,KAAK6kB,OAAO,iBACtB2gC,KAAMxlD,KAAK65R,aAAe75R,KAAK65R,YAAYr0O,OAC3CugO,WAAY,QAAUqrN,EAAoBpxe,KAAK65R,mBAAgB,IAAWu3M,GAA6B,QAAUC,EAAwBD,EAAkB3/M,mBAAgB,IAAW4/M,GAAiC,QAAUC,EAAyBD,EAAsB5we,KAAK2we,UAAuB,IAAWE,OAAzN,EAA2PA,EAAuBvrN,aAGxXt7B,YAAa,WACTzqP,KAAKmxe,6BACLnxe,KAAK09V,oBAAoB19V,KAAKo7W,aAAamF,gBAC3CvgX,KAAKuxN,WACLvxN,KAAK4gV,QAAQ,OAAQ,SAEzBse,mBAAoB,WAChB,IAAI2kB,EAAiB7jX,KAAKixe,wBAC1Bvje,EAAAA,EAAAA,GAAE1N,KAAK2ve,gBAAgB7ud,WAAWf,OAAO8jW,GACpC7jX,KAAK6kB,OAAO,UAAa7kB,KAAK6kB,OAAO,SAASvkB,SAGnDN,KAAKygW,aAAaojB,EAAgB7jX,KAAKo7W,aAAamF,gBACpDvgX,KAAK4ve,mBACD5ve,KAAKyxe,sBACLzxe,KAAKmve,qCACLnve,KAAKyve,qBAAqB5rH,MAGlCksH,eAAgB,WACZ,OAAO/ve,KAAK6kB,OAAO,uBAAyB7kB,KAAKkwe,2BAA6Blwe,KAAK6kB,OAAO,eAE9Fqrd,sBAAuB,WACnB,MAAO,UAAYlwe,KAAK6kB,OAAO,kBAEnCs6U,wBAAyB,WACrB,IAAI9zU,EAAarrB,KAAK25R,gBAClB+3M,EAAyBrmd,IAAeA,EAAW6mQ,YAAclyR,KAAK2xe,iCACtE95C,EAAa73b,KAAK2ve,gBAClB93C,IAAcv7N,EAAAA,EAAAA,OACdu7N,EAAWx5a,SAEVqzd,GACD1xe,KAAKuxN,WAELsmO,IAAcv7N,EAAAA,EAAAA,OACdu7N,EAAWx5a,UAGnB8yd,2BAA4B,WACxBnxe,KAAK4xe,YAAc5xe,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAASuqB,SAASj4B,KAAK6Z,YAAa00W,EAAAA,EAAY,CACvF3C,UAAW5rX,KAAK6kB,OAAO,sBACvBw2H,UAAWr7I,KAAK6kB,OAAO,mBACvByiY,aAAa,KAGrB2pF,qBAAsB,SAASn3d,GAC3B,IAAIytB,GAAa75B,EAAAA,EAAAA,GAAE,QAAQ+R,SAAS6sd,GAEpC,GADAtse,KAAK4gV,QAAQ,OAAQ,QAASr5S,GAC1BztB,GAAWA,EAAQxZ,OAAQ,CAC3B,IAAIuqE,EAAW7qE,KAAK45V,aAAa9/U,EAAQ/O,SAAS,IAAMguV,IACpD/4V,KAAK6xe,gBAAgBhna,IACrBtjC,EAAW9nB,SAAS+sd,GAExBjlc,EAAWtP,SAASne,GAExB,OAAOytB,GAEX88U,kBAAmB,SAASR,EAAgB5tS,GACxC,IAAI67Z,EAAsBC,EACtBnwI,GAAQl0V,EAAAA,EAAAA,GAAE,QAAQ+R,SAAS4sd,GAAYzsd,KAAK2td,EAAcvte,KAAKque,cAAcp4Z,EAAK6mS,eAAe91W,MAAMghC,UAAU67U,GACjHv3H,EAAQ,CACR95G,KAAM,WACN6Q,MAAOrjJ,KAAK26V,eAAe1kR,EAAK6mS,eAAe58W,OAAS,GACxDkoB,MAAOpoB,KAAKgye,UAAUnuH,IAO1B,QALuB,OAAS5tS,QAAQ,IAAWA,GAAQ,QAAU67Z,EAAuB77Z,EAAK6mS,sBAAmB,IAAWg1H,GAAwB,QAAUC,EAAwBD,EAAqBnuH,oBAAiB,IAAWouH,IAAyBA,EAAsBzxe,UAErRgsP,EAAM89I,SAAWn0T,EAAK6mS,eAAestB,WAAY,GAErDpqY,KAAK4gV,QAAQt0F,EAAOs1G,GACbA,GAEXowI,UAAW,SAASnuH,GAChB,IAAIp4W,EAASo4W,EAAep4W,SAC5B,OAAOA,EAAOskN,SAAS,yBAA2B,EAAI95K,SAASxqC,EAAOmU,KAAK,eAAiB,GAEhGqud,gBAAiB,WACb,MAAO,SAAWjue,KAAK6kB,OAAO,uBAElCotd,wBAAyB,WACrB,OAAOjye,KAAK6kB,OAAO,eAAiB7kB,KAAK6kB,OAAO,iBAEpD4sd,kBAAmB,WACf,MAAO,cAAgBzxe,KAAK6kB,OAAO,wBAA0B7kB,KAAKuxe,sBAEtE9wI,aAAc,SAASojB,EAAgBr2H,GAEnC,IADA,IACSzhP,EADIyhP,EAAMltP,OAAS,EACPyL,GAAK,EAAGA,IACzB/L,KAAKy9V,YAAY1xV,EAAGyhP,EAAMzhP,GAAI83W,GAElC7jX,KAAKq7V,qBAAuB7tG,EAAMltP,QAEtCm9V,YAAa,SAASy0I,EAAWj8Z,EAAM4tS,GACnC,IAAIjiB,EAAQ5hW,KAAKqkX,kBAAkBR,EAAgB5tS,GAC/Ck8Z,EAAWl8Z,EAAK6mS,eAChBs1H,EAAepye,KAAKiue,kBACxBrsI,EAAMniV,SAAS2yd,EAAe1F,EAA2BG,GACzDjrI,EAAMprI,YAAYw2M,GAAuB,IAAUmlE,EAASjye,KAAK2I,SAC7D7I,KAAKiye,4BACLrwI,EAAMniV,SAASktd,GACf9oH,EAAepkW,SAASmtd,IAE5BwF,GAAgBpye,KAAKqye,gBAAgBzwI,EAAO3rR,GAC5Cj2E,KAAK4gV,QAAQ,WAAYuxJ,EAASlld,SAAU20U,GAC5C5hW,KAAKsye,qBAAqB1wI,EAAOuwI,EAASlld,UACtCkld,EAAS/me,UACTpL,KAAK4gV,QAAQ,WAAYuxJ,EAAS/me,SAAUw2V,GAEhD5hW,KAAKuxN,SAASvxN,KAAKq7V,oBAAsB62I,EAAWC,EAASjye,KAAM0hW,IAC/D,IAAUuwI,EAASjye,KAAK2I,SACxB7I,KAAKuye,gBAAgB3wI,EAAO3rR,IAGpCwxR,2BAA4Bz1I,EAAAA,KAC5BugR,gBAAiB,SAAS3wI,EAAO3rR,GAAM,WAC9Bj2E,KAAKi3Y,aAAahhU,IAInBj2E,KAAKiye,0BACLjye,KAAKwye,2BAA2B5wI,EAAO3rR,GAEvCj2E,KAAKyye,4BAA4B7wI,EAAO3rR,GAExCj2E,KAAK6kB,OAAO,oBAAsBoxD,EAAK6mS,eAAestB,UAG1DpqY,KAAK0ye,cAAcz8Z,GAAM78C,MAAK,SAAAwpF,GAC1B,EAAK+vX,gBAAgB/wI,EAAO,EAAKgxI,eAAe38Z,GAAO2sC,OAZvD5iH,KAAK6ye,cAAcjxI,IAe3BgxI,eAAgB,SAASE,GACrB,OAAO9ye,KAAKo7W,aAAa6H,aAAa6vH,EAAWh2H,eAAe91W,MAEpEiwY,aAAc,SAAShhU,GACnB,OAAIj2E,KAAK+ve,kBAAoB/ve,KAAK6ve,4BACvB,IAAU7ve,KAAK+ye,gBAAgB98Z,EAAK6mS,eAAe58W,MAEvDF,KAAKuxN,SAASt7I,IAEzBy8Z,cAAe,SAASz8Z,GAAM,WACtBjrC,EAAW,IAAIwnL,EAAAA,GACfwgR,EAAgBhze,KAAK68W,eAAe5mS,GAQxC,OAPI+8Z,EAAc1ye,OACd0qC,EAAS56B,QAAQ4ie,GAEjBhze,KAAKize,iBAAiBh9Z,GAAM78C,MAAK,SAAA1tB,GAC7Bs/B,EAAS56B,QAAQ,EAAKgrW,aAAa65B,gBAAgBvpY,OAGpDs/B,EAASx6B,WAEpBmie,gBAAiB,SAAS/wI,EAAO3rR,EAAM2sC,GACnC,IAAIswX,EAAuBlze,KAAKixe,qBAAqBrvI,EAAO3rR,GACxDk9Z,EAA2BvwX,EAAWh9G,QAAO,SAAAs0Q,GAAS,OAAK,IAAMjkM,EAAK6mS,eAAe6G,aAAax9W,QAAQ+zQ,EAAU4iG,eAAe91W,QAEvI,GADAhH,KAAKygW,aAAayyI,EAAsBC,GACpCA,EAAyB7ye,SAAW21E,EAAK6mS,eAAe7vV,SAAU,CAClE,IAAI81F,EAAaowX,EAAyB,GAC1Cnze,KAAKoze,oBAAoBrwX,EAAY/iH,KAAKoue,gBAAgBrrX,IAE9D/iH,KAAKqze,oBAAoBzxI,EAAOuxI,EAAyB7ye,QACrD21E,EAAK6mS,eAAestB,UACpB8oG,EAAqBzzd,SAAS+sd,IAGtCjrI,yBAA0B,SAASv/U,EAAW6oD,EAAUC,GACpD,IAAImL,EAAOj2E,KAAKsze,SAASxoa,GACzB9qE,KAAK+hW,sBAAL/hW,CAA4B,CACxB8qE,YAAaA,EACb9oD,UAAWA,EACX6oD,SAAUA,EACVoL,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,MAG9C48Z,cAAe,SAASjxI,GACpBA,EAAMniV,SAASgtd,IAEnBiB,oBAAqB,SAASlte,IACPkN,EAAAA,EAAAA,GAAElN,EAAEkO,cAAc0b,YACnB2lM,SAAS08Q,IACvBzse,KAAKmue,qBAAqB3te,EAAEkO,mBAAe,EAAQlO,IAG3Dove,iBAAkB,WACd,IAAI2D,EAAoBvze,KAAKyte,sBAAsBzte,KAAK6kB,OAAO,gBAC3D+3V,EAAkB58W,KAAK24U,iBACvB2mB,EAAet/V,KAAK44U,gBACxBjjH,EAAAA,EAAAA,IAAiBinJ,EAAiB,qBAA8Btd,GAChE3pI,EAAAA,EAAAA,GAAgBinJ,EAAiB22H,EAAmBj0I,EAAct/V,KAAK0te,oBAAoBjje,KAAKzK,QAEpGyte,sBAAuB,SAASjge,GAC5B,IAAIgN,EAAQ,UAAYhN,EAAOy8R,EAAAA,EAAiBupM,EAAAA,EAChD,OAAOplR,EAAAA,EAAAA,cAAa5zM,EAAO8yd,IAE/BgG,SAAU,SAAS99L,GACf,KAAK7sP,EAAAA,EAAAA,IAAU6sP,GACX,OAAO,KAEX,GAAIA,EAAWsnE,eACX,OAAOtnE,EAEX,IAAIp9C,EAAAA,EAAAA,IAAYo9C,GACZ,OAAOx1S,KAAKo7W,aAAa6H,aAAaztE,GAE1C,IAAI1qO,GAAcp9D,EAAAA,EAAAA,GAAE8nS,GAAY31R,IAAI,GACpC,OAAKirD,EAGD8uJ,EAAAA,EAAAA,cAAyB9uJ,GAClB9qE,KAAKyze,kBAAkB3oa,GAE3B9qE,KAAKo7W,aAAaC,cAAcvwS,GAL5B,MAOf2oa,kBAAmB,SAAS3oa,GACxB,IAAI82R,GAAQl0V,EAAAA,EAAAA,GAAEo9D,GAAa/gE,QAAQ,IAAMsie,GACrCrle,EAAMhH,KAAK0ze,cAAc9xI,EAAMhiV,KAAK2td,IACxC,OAAOvte,KAAKo7W,aAAa6H,aAAaj8W,IAE1Cmne,qBAAsB,SAASrja,EAAaqsB,EAAO32F,GAC/C,IAAIy1E,EAAOj2E,KAAKsze,SAASxoa,GACzB,IAAKmL,EACD,OAAQ,IAAIu8I,EAAAA,IAAU9mL,SAASl7B,UAEnC,GAAIylE,EAAK6mS,eAAe1xW,SACpB,OAAQ,IAAIonN,EAAAA,IAAU9mL,SAASl7B,UAEnC,IAAIqsJ,EAAe5mF,EAAK6mS,eAAestB,SACvC,GAAIvtO,IAAiB1lE,EACjB,OAAQ,IAAIq7H,EAAAA,IAAUpiN,UAAUI,UAEpC,GAAIxQ,KAAKi3Y,aAAahhU,GAAO,CACzB,IAAI2rR,EAAQ5hW,KAAKoue,gBAAgBn4Z,GACjC,GAAI2rR,EAAMvlV,KAAK,IAAIuf,OAAO2wc,EAA2B,UAAU3wc,OAAOoxY,EAAuB,MAAM1sa,OAC/F,OAAQ,IAAIkyN,EAAAA,IAAU9mL,SAASl7B,UAE9BqsJ,GAAiB78J,KAAK2ze,yBAAyB/xI,IAChD5hW,KAAK4ze,qBAAqBhyI,GAOlC,OAJKj5S,EAAAA,EAAAA,IAAUwuC,KACXA,GAAS0lE,GAEb78J,KAAKo7W,aAAay6B,gBAAgB5/T,EAAK6mS,eAAe91W,IAAKmwF,GACpDn3F,KAAK6ze,uBAAuB59Z,EAAMkhB,EAAO32F,IAEpDmze,yBA/oBoD,SA+oB3B/xI,GAErB,OADqBA,EAAM72V,SAAS,IAAI6wB,OAAO0wc,IACzBl2O,IAAI,UAAU91P,QAExCsze,qBAAsB,SAAShyI,GAC3B5hW,KAAKonP,kBAAiB15O,EAAAA,EAAAA,GAAE,SAAS+R,SAAS8sd,GAA4B96E,EAAAA,EAAe,IAAI53Y,WAAWoe,SAAS2pU,GACjGA,EAAM72V,SAAS,IAAI6wB,OAAOmxc,EAA8B,MAAMnxc,OAAOqxc,IAC3E/ia,QAEV4pa,oBAAqB,SAASlyI,EAAO3rR,EAAMz2D,EAAOE,GAC9CF,EAAMyY,SAAS2pU,GACfpiV,EAAMC,SAASC,GACXu2D,EAAK6mS,eAAe1xW,UACpBoU,EAAMC,SAASy2X,GAEnBl2Y,KAAK+ze,qCAAqCv0d,EAAOy2D,IAErDw8Z,4BAA6B,SAAS7wI,EAAO3rR,GACzC,IAAIz2D,GAAQ9R,EAAAA,EAAAA,GAAE,SAAS+R,SAASstd,GAA8B90c,SAAS2pU,GACnE3rR,EAAK6mS,eAAestB,WACpB5qX,EAAMC,SAAS2td,GACfxrI,EAAMn2V,SAASgU,SAAS+sd,IAExBv2Z,EAAK6mS,eAAe1xW,UACpBoU,EAAMC,SAASy2X,GAEnBl2Y,KAAK+ze,qCAAqCv0d,EAAOy2D,IAErDu8Z,2BAA4B,SAAS5wI,EAAO3rR,GACxC,MAGIj2E,KAAK6kB,SAFO8pd,EADhB,EACIA,WACcC,EAFlB,EAEIA,aAEAoF,GAAc1hO,EAAAA,EAAAA,GAAkB,OAASq8N,QAAc,IAAWA,EAAaA,EAAaC,GAC5FqF,GAAgB3hO,EAAAA,EAAAA,GAAkB,OAASs8N,QAAgB,IAAWA,EAAeA,EAAeD,GACxG3ue,KAAK8ze,oBAAoBlyI,EAAO3rR,EAAM+9Z,EAAa/G,GACnDjte,KAAK8ze,oBAAoBlyI,EAAO3rR,EAAMg+Z,EAAejH,GACrD,IAAIkH,EAAiBj+Z,EAAK6mS,eAAestB,SACrC8pG,GACAtyI,EAAMn2V,SAASgU,SAAS+sd,GAE5Bxse,KAAKm0e,2BAA2BH,EAAaC,EAAeC,IAEhEH,qCAAsC,SAASv0d,EAAOy2D,GAAM,WACpDhsC,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAClDY,EAAAA,EAAAA,IAAiBn2M,EAAOyqB,GACxB0rL,EAAAA,EAAAA,GAAgBn2M,EAAOyqB,GAAW,SAAAzpC,GAC9B,EAAK2te,qBAAqBl4Z,EAAK6mS,eAAe91W,SAAK,EAAQxG,OAGnE2ze,2BAA4B,SAASH,EAAaC,EAAeC,GAC7DD,EAAc7+O,OAAO8+O,GACrBF,EAAY5+O,QAAQ8+O,IAExBL,uBAAwB,SAAS59Z,EAAMkhB,EAAO32F,GAC1C,IAAIohW,EAAQ5hW,KAAKoue,gBAAgBn4Z,GAC7Bm+Z,GAAgBxyI,EAAMthW,QAAU62F,GAASyqQ,EAAM9nU,GAAG,WACtD,GAAI95B,KAAK6kB,OAAO,yBAA2Buvd,EAAc,CACrD,IAAIhqd,EAAapqB,KAAKsze,SAASr9Z,EAAK6mS,eAAe8zB,WAC/CxmX,GACApqB,KAAK6ze,uBAAuBzpd,EAAY+sE,EAAO32F,GAGvD,GAAKR,KAAKiye,2BAGH,GAAIjye,KAAK2ze,yBAAyB/xI,GAAQ,CAC7C,IAAIyyI,EAAoBzyI,EAAM72V,SAAS,IAAI6wB,OAAOqxc,IAC9CqH,EAAsB1yI,EAAM72V,SAAS,IAAI6wB,OAAOoxc,IACpDhte,KAAKm0e,2BAA2BE,EAAmBC,EAAqBn9Y,SAL5DyqQ,EAAM72V,SAAS,IAAI6wB,OAAOmxc,IAChCv2Q,YAAY42Q,EAAqCj2Y,GAM3D,IAAI0sR,EAAiBjiB,EAAM72V,SAAS,IAAI6wB,OAAO0wc,IAC3CiI,EAAsB1wH,EAAevjX,OAAS,EAC9Ck0e,EAAqB,IAAIhiR,EAAAA,GAC7B,OAAKr7H,GAASo9Y,IAAwB1wH,EAAe/pV,GAAG,WACpD95B,KAAKy0e,sBAAsBx+Z,EAAMkhB,EAAO32F,EAAGg0e,GACpCA,EAAmBhke,WAE1B,IAAMylE,EAAK6mS,eAAe6G,aAAarjX,SAAWN,KAAK+ve,kBAAoB/ve,KAAK6ve,6BAChF7ve,KAAK00e,2BAA2Bz+Z,EAAMkhB,EAAO32F,EAAGg0e,GACzCA,EAAmBhke,YAE9BxQ,KAAK2ye,gBAAgB/wI,EAAO3rR,EAAMj2E,KAAK68W,eAAe5mS,IACtDj2E,KAAKm/V,0BACLn/V,KAAKy0e,sBAAsBx+Z,EAAMkhB,EAAO32F,EAAGg0e,GACpCA,EAAmBhke,YAE9Bkke,2BAA4B,SAASz+Z,EAAMkhB,EAAO32F,EAAGg0e,GAAoB,WACjE5yI,EAAQ5hW,KAAKoue,gBAAgBn4Z,GACjCj2E,KAAKize,iBAAiBh9Z,GAAM78C,MAAK,SAAA1tB,GAC7B,IAAIipe,EAAiB,EAAK/B,eAAe38Z,GACzC,EAAK08Z,gBAAgB/wI,EAAO+yI,EAAgB,EAAKv5H,aAAa65B,gBAAgBvpY,IACzEA,GAAUA,EAAMpL,QAIrB,EAAK6+V,0BACL,EAAKs1I,sBAAsBE,EAAgBx9Y,EAAO32F,EAAGg0e,IAJjDA,EAAmBpke,cAO/B6ie,iBAAkB,SAASh9Z,GAAM,WAC7B,GAAIj2E,KAAK6ve,2BAA4B,CACjC,IAAIj+F,EAAa5xY,KAAKo7W,aAAa85B,cAAcj/T,GACjD,OAAOj2E,KAAK8ve,4BAA4Bl+F,GAAYx4W,MAAK,SAAAkkO,GAChD,EAAKs3O,gBAAgBt3O,IACtB,EAAKu3O,aAAav3O,MAI9B,OAAKt9P,KAAK+ve,kBAGV/ve,KAAKsmD,QAAQ2pb,SAAW,CAACjwe,KAAK6kB,OAAO,gBAAiBoxD,EAAK6mS,eAAe91W,KAC1EhH,KAAK65R,YAAYj0R,OAAO5F,KAAKowe,kBACtBpwe,KAAK65R,YAAYjtR,OAAOwsB,MAAK,SAAAkkO,GAC3B,EAAKs3O,gBAAgBt3O,IACtB,EAAKu3O,aAAav3O,QANd,IAAI9qC,EAAAA,IAAUpiN,QAAQ,IAAII,WAU1Coke,gBAAiB,SAASt3O,EAAU5xP,GAChC,IAAIope,EAAgB90e,KAAKk4Q,MAAM5a,EAAS,IACpCy3O,EAAW/0e,KAAKo7W,aAAa04B,cACjC,QAAS9zY,KAAKo7W,aAAa6H,aAAa6xH,EAAeC,IAE3DF,aAAc,SAASv3O,GACnBt9P,KAAK6kB,SAASnZ,MAAQ1L,KAAK6kB,OAAO,SAAS+W,OAAO0hO,GAClDt9P,KAAKw2Y,oBAETi+F,sBAAuB,SAASx+Z,EAAMkhB,EAAO32F,EAAGg0e,GAC5C,IAAI5yI,EAAQ5hW,KAAKoue,gBAAgBn4Z,GAC7B4tS,EAAiBjiB,EAAM72V,SAAS,IAAI6wB,OAAO0wc,IAC3Cr2Z,GAAQu+Z,GAAsB,IAAM3wH,EAAevjX,QACnDk0e,EAAmBpke,UAEvByzW,EAAepkW,SAAS+sd,GACxB,IAAIwI,GAAan4V,EAAAA,EAAAA,IAAUgnO,GAC3B5jJ,EAAAA,QAAAA,KAAQ4jJ,GAAgB,GACxB5jJ,EAAAA,QAAAA,QAAW4jJ,EAAgB,CACvBlgW,KAAM,SACN67M,SAAUx/N,KAAK6kB,OAAO,oBAAsB,IAAM,EAClD1b,KAAM,CACFuc,UAAWyxE,EAAQ,EAAI69Y,GAE3Bh0a,GAAI,CACAt7C,UAAWyxE,EAAQ69Y,EAAa,GAEpC/wQ,SAAU,WACN4/I,EAAexoW,IAAI,YAAa,QAChCwoW,EAAertJ,YAAYg2Q,EAA6Br1Y,GACxDn3F,KAAK4gV,QAAQ,WAAYzpP,EAAOyqQ,GAChC5hW,KAAK2ve,gBAAgBtxd,SACrBre,KAAKi1e,+BAA+B99Y,EAAOlhB,EAAMz1E,GAC7Cg0e,GACAA,EAAmBpke,WAEzB3F,KAAKzK,SAGfi1e,+BAAgC,SAASC,EAAYj/Z,EAAMz1E,GACvD,GAAKR,KAAKi3Y,aAAahhU,KAASj2E,KAAK2xe,iCAArC,CAGA,IAAI3rP,EAAakvP,EAAa,iBAAmB,kBACjD,IAAIvsb,EAAAA,EAAAA,IAAUnoD,GACVR,KAAK2/V,oBAAoBn/V,EAAGwlP,EAAY,CACpC/vK,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,SAEvC,CACH,IAAIrvE,EAAS5G,KAAKoue,gBAAgBn4Z,GAClCj2E,KAAK2iW,kBAAkB/7V,EAAQo/O,EAAY,CACvCxrO,MAAOha,EACPy1E,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,QAIlDo9Z,oBAAqB,SAASzxI,EAAOuzI,GACjC,IAEQC,EAFJlmD,EAAiBttF,EAAMvlV,KAAK,IAAIuf,OAAO2wc,IACvCr9C,EAAe5ub,SAEf,QAAU80e,EAAwB3jF,EAAAA,EAAAA,YAA0By9B,UAAoB,IAAWkmD,GAAiCA,EAAsBvwd,OAAO,WAAW,IAExK,IAAIwwd,EAAczzI,EAAM72V,SAAS,IAAI6wB,OAAOoxc,EAA4B,MAAMpxc,OAAOmxc,IACjFoI,EACAE,EAAY7zb,QAGhB6zb,EAAYx9c,YAAYk1c,GACxBnrI,EAAMniV,SAASgtd,KAEnBrqI,uBAAwB,WACpB,IAAIy1F,EAAa73b,KAAK2ve,gBACtB,OAAO93C,GAAanqb,EAAAA,EAAAA,GAAEmqb,EAAW/2a,WAAa9gB,KAAKuxN,YAEvDgtI,eAAgB,WACZ,IAAI7yV,EAAQ1L,KAAK6kB,OAAO,SACpBnZ,GAASA,EAAMpL,SACfN,KAAKu0a,yBAA0B,GAEnCv0a,KAAKuxN,YAETk+Q,qBAAsB,SAASloc,GAC3BA,EAAaA,GAAcvnC,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAO0wc,IAAuBtia,QAClFhqE,KAAKwve,iBAAkB9he,EAAAA,EAAAA,GAAE,SAAS+R,SAAS4td,GAC3C,IAAIzre,EAAQ5B,KAAKo7W,aAAa9lO,gBAC9Bt1I,KAAKonP,iBAAiBpnP,KAAKwve,gBAAiBx5I,EAAAA,QAAU,CAClDp0V,MAAOA,EACP2nP,YAAa,CACT,aAAc,cAElB5mP,KAAM3C,KAAK6kB,OAAO,iBAClB0zF,eAAgBv4G,KAAKs1e,iCAAiC7qe,KAAKzK,QAE/DA,KAAKsye,qBAAqBtye,KAAKwve,gBAAiB5te,GAChD2lC,EAAWq9H,OAAO5kK,KAAKwve,kBAE3B8F,iCAAkC,SAAS9ud,GACvCxmB,KAAKu1e,iBAAiB/ud,GACtBxmB,KAAKqve,2BAA2B7od,EAAK5kB,QAEzC2ze,iBAAkB,SAAS/ud,GACvBxmB,KAAKo7W,aAAas6B,gBAAgBlvX,EAAK5kB,OACvC5B,KAAKw1e,iBACLx1e,KAAKkve,yBAETmD,gBAAiB,SAASzwI,EAAO3rR,GAC7B,IAAIw/Z,GAAY/ne,EAAAA,EAAAA,GAAE,SAASuqB,SAAS2pU,GACpC5hW,KAAKonP,iBAAiBquP,EAAWz/I,EAAAA,QAAU,CACvCp0V,MAAOq0E,EAAK6mS,eAAe7vV,SAC3BsrF,eAAgBv4G,KAAK01e,qBAAqBjre,KAAKzK,MAC/CstU,mBAAmB,EACnB/jF,YAAa,CACT,aAAc,eAElBn+O,SAAUpL,KAAKyjX,gBAAgBxtS,MAGvCq8Z,qBAAsB,SAAS1wI,EAAOhgW,GAClCggW,EAAMprI,YAh4BY,sBAg4BuB50N,IAE7C+ze,yBAA0B,SAAS1/Z,EAAMkhB,GACrC,IAAIyqQ,EAAQ5hW,KAAKoue,gBAAgBn4Z,GAC7B+hQ,EAAQ4pB,EAAMvlV,KAAK,IAAM08U,GAAYnxS,GAAG,IAC5C5nD,KAAKo7W,aAAaq6B,wBAAwBx/T,EAAK6mS,eAAe91W,IAAKmwF,GACnE6gP,EAAMxhH,YAAY0/K,IAAwB/+S,GACtCn3F,KAAKiue,oBACUjue,KAAK4te,qBAAqBhsI,GAChC/8U,OAAO,aAAcsyE,IAGtCmmQ,mBAAoB,SAASp9V,EAAM+yB,EAAUrxB,GACzC,IAAIq0E,EAAOj2E,KAAKo7W,aAAaC,cAAcn7W,GACvC+yB,IAAajzB,KAAK6kB,OAAO,iBACzB7kB,KAAK21e,yBAAyB1/Z,EAAMr0E,IAG5C8ze,qBAAsB,SAASl1e,GAC3B,IACIw3U,GADQtqU,EAAAA,EAAAA,GAAElN,EAAEV,SAAS2L,OAAO,IAAM4ge,GACpBthe,SAAS,IAAMguV,GAC7B74V,EAAOF,KAAK45V,aAAa5hB,GACzB/hQ,EAAOj2E,KAAKyze,kBAAkBz7J,GAC9Bp2U,EAAQpB,EAAEoB,MACVq0E,GAAQA,EAAK6mS,eAAe7vV,WAAarrB,GAG7C5B,KAAK6te,qBAAqBjse,EAAO1B,EAAMM,EAAEga,QAE7C+2d,mBAAoB,WAChB,MAAO,WAAavxe,KAAK6kB,OAAO,kBAEpC2sd,sBAAuB,WACnB,OAAOxxe,KAAK6kB,OAAO,yBAA2B,WAAa7kB,KAAK6kB,OAAO,kBAE3E+wd,sBAAuB,SAAShkG,EAAYikG,EAAmBt6Z,GAC3D,IAAIo6X,EAAWkgC,EAAkB1ve,QAAQyrY,EAAW5qY,KAYpD,OAXI2uc,GAAY,GACZkgC,EAAkBtme,OAAOomc,EAAU,GAEnCp6X,IACA9gE,EAAAA,EAAAA,IAAKm3X,EAAW7mY,SAAU,SAAS2P,EAAGw/P,GAClCl6Q,KAAK41e,sBAAsB17N,EAAW27N,GAAmB,IAC3Dpre,KAAKzK,OAEP4xY,EAAWnmY,QACXzL,KAAK41e,sBAAsBhkG,EAAWnmY,OAAQoqe,GAE3C,IAAMA,EAAkBv1e,QAEnCw1e,gBAAiB,SAAS7/Z,GACtB,IAAIstR,EAAoBvjW,KAAK6kB,OAAO,qBAChCkxd,EAAe/1e,KAAKuxe,qBACpBsE,EAAoB71e,KAAKg2e,sBAC7B,GAAKzyI,EAGL,OAAIwyI,EACO,IAAMF,EAAkBv1e,OAExBN,KAAK41e,sBAAsB3/Z,EAAK6mS,eAAe80B,WAAYikG,EAAkBpwe,SAAS,IAGrGooe,qBAAsB,SAASjse,EAAOkpE,EAAay3R,GAAS,WACpDtsR,EAAOj2E,KAAKsze,SAASxoa,GACzB,IAAKmL,IAAQ,IAAUA,EAAKptE,QACxB,OAAO,EAEX,GAAIotE,EAAK6mS,eAAe7vV,WAAarrB,EACjC,OAAO,EAEX,IAAKA,GAAS5B,KAAK81e,gBAAgB7/Z,GAAO,CACtC,GAAIj2E,KAAKiue,kBAAmB,CACxB,IAAIrsI,EAAQ5hW,KAAKoue,gBAAgBn4Z,GACjCj2E,KAAK4te,qBAAqBhsI,GAAO/8U,OAAO,SAAS,GAErD,OAAO,EAEX,GAAIjjB,GAAS5B,KAAKuxe,qBAAsB,CACpC,IAAIzuH,EAAe9iX,KAAKg2e,uBACxBv7d,EAAAA,EAAAA,IAAKqoW,GAAc,SAACjiX,EAAOmG,GACvB,EAAKo0W,aAAayH,gBAAgB77W,GAAK,GACvC,EAAKwue,iBACL,EAAKS,0BAA0B,EAAK3C,SAAStse,OAGrDhH,KAAKo7W,aAAayH,gBAAgB5sS,EAAK6mS,eAAe91W,IAAKpF,GAC3D,IAAI0zI,EAAgBt1I,KAAKo7W,aAAa9lO,gBAClC4gW,EAA2Bl2e,KAAKyxe,qBAAuBzxe,KAAKwve,gBAAgBE,WAAW,YAAY7qd,OAAO,WAAaywH,EAO3H,OANAt1I,KAAKw1e,iBACLx1e,KAAKi2e,0BAA0Bhga,EAAMssR,GACrCviW,KAAKkve,wBACDgH,GACAl2e,KAAKqve,2BAA2B/5V,IAE7B,GAEX2gW,0BAA2B,SAAShga,EAAMssR,GACtC,IAAIK,EAAYL,GAAWviW,KAAKk9V,uBAAuBjnR,EAAK6mS,eAAe58W,OAC7DqiW,EAAUviW,KAAK2/V,oBAAsB3/V,KAAK2iW,mBAChDliW,KAAKT,KAAM4iW,EAAW,yBAA0B,CACpD3sR,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,GACtCpL,SAAUoL,EAAK6mS,eAAe58W,QAGtC0te,qBAAsB,SAAShsI,GAC3B,OAAOA,EAAM72V,SAAS,gBAAgB2ke,WAAW,aAErD8F,eAAgB,WAAW,WACnB71b,EAAQ,GAaZ,IAZAllC,EAAAA,EAAAA,IAAKza,KAAKo7W,aAAa9iQ,WAAW,SAAC59F,EAAGu7D,GAClC,IAAI2rR,EAAQ,EAAKwsI,gBAAgBn4Z,EAAMt2B,GACnCw2b,EAAgBlga,EAAK6mS,eAAe7vV,SACnC20U,EAAMthW,SAGX,EAAKgye,qBAAqB1wI,EAAOu0I,GACjC,EAAKv1J,QAAQ,WAAYu1J,EAAev0I,GACpC,EAAKqsI,mBACL,EAAKL,qBAAqBhsI,GAAO/8U,OAAO,QAASsxd,OAGrDn2e,KAAKyxe,oBAAqB,CAC1B,IAAI2E,EAAoBp2e,KAAKwve,gBAAgBE,WAAW,YACxD0G,EAAkBvxd,OAAO,sBAAkB,GAC3Cuxd,EAAkBvxd,OAAO,QAAS7kB,KAAKo7W,aAAa9lO,iBACpD8gW,EAAkBvxd,OAAO,iBAAkB7kB,KAAKs1e,iCAAiC7qe,KAAKzK,SAG9Foze,oBAAqB,SAASn9Z,EAAM2rR,GAChC,GAAKA,EAAL,CAGA,IAAIx3U,EAAapqB,KAAKo7W,aAAa6H,aAAahtS,EAAK6mS,eAAe8zB,WAChEt0P,GAAc5uI,EAAAA,EAAAA,GAAEk0V,EAAM98U,QAAQ,IAAMund,GAAY,IACpD,GAAIrse,KAAKiue,kBAAmB,CACxB,IAAIoI,EAAcjsd,EAAW0yV,eAAe7vV,SAC5CjtB,KAAK4te,qBAAqBtxV,GAAaz3H,OAAO,QAASwxd,GACvDr2e,KAAKsye,qBAAqBh2V,EAAa+5V,GAEvCjsd,EAAW0yV,eAAe8zB,YAAc5wY,KAAK6kB,OAAO,cACpD7kB,KAAKoze,oBAAoBhpd,EAAYkyH,KAG7CumN,sBAAuB,SAASD,EAAWniV,EAAQgiV,GAC/C,IAAIroI,GAAe1sN,EAAAA,EAAAA,GAAEk1V,GAAW74V,QAAQ,IAAMsie,GAAYthe,SAAS,IAAMguV,GACzE,OAAOt4U,GAAO3X,EAAAA,EAAAA,GAAO9I,KAAK+iW,kBAAkB3oI,GAAeqoI,KAE/DlC,wBAAyB,SAAS//V,GAC9BR,KAAKs2e,oBAAoB,oBAAqB91e,IAElD4/V,iBAAkB,SAAS5/V,GACvBR,KAAKs2e,oBAAoB,aAAc91e,IAE3C81e,oBAAqB,SAASrsc,EAAWzpC,GACrC,IAAIy1E,EAAOj2E,KAAKyze,kBAAkBjze,EAAEkO,eACpC1O,KAAK2/V,oBAAoBn/V,EAAGypC,EAAW,CACnCgsC,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,MAG9C6oR,WAAY,WACR,OAAO/F,GAEXqE,aAAc,WACV,OAAO0vI,GAEX1tI,kBAAmB,WACf,IAAIm3I,EAAgB,IAAMv2e,KAAK8+V,aAC3B03I,EAAsB,IAAMnK,EAAa,MAAQgB,EACjDpjc,GAAYmkL,EAAAA,EAAAA,cAAa67E,EAAAA,EAAgBjqS,KAAK+0N,MAC9C0hR,GAAmBroR,EAAAA,EAAAA,cAAavsL,EAAAA,EAAAA,KAAoB7hC,KAAK+0N,MACzDmrI,EAAiBlgW,KAAK24U,iBACtB/iJ,EAAO51L,KACX21N,EAAAA,EAAAA,IAAiBuqI,EAAgBj2T,EAAWssc,GAC5C5gR,EAAAA,EAAAA,IAAiBuqI,EAAgBu2I,EAAkBD,GACnD7gR,EAAAA,EAAAA,GAAgBuqI,EAAgBj2T,EAAWssc,GAAgB,SAAS/1e,GAChEo1L,EAAKkkK,kBAAkBt5V,GAAGkN,EAAAA,EAAAA,GAAE1N,UAEhC21N,EAAAA,EAAAA,GAAgBuqI,EAAgBu2I,EAAkBD,GAAsB,SAASh2e,GAC7Eo1L,EAAK8pK,wBAAwBl/V,OAGrCs5V,kBAAmB,SAASt5V,EAAGw3U,GAC3B,IAAIntQ,EAAW7qE,KAAK45V,aAAa5hB,GAC7B/hQ,EAAOj2E,KAAKyze,kBAAkBz7J,GAClCh4U,KAAK2/V,oBAAoBn/V,EAAG,cAAe,CACvCy1E,KAAMj2E,KAAKo7W,aAAa85B,cAAcj/T,KAEtCj2E,KAAK6kB,OAAO,mBAAqBrkB,EAAEi8R,sBACnCz8R,KAAK6te,sBAAsB53Z,EAAK6mS,eAAe7vV,SAAU49C,EAAUrqE,IAG3Ek2e,4BAA6B,SAASx/Q,EAAQvvN,GAE1C,IADA,IAAIqa,EAAYra,EACTqa,GAAa,GAAG,CACnB,IAAIg2T,GAAQtqU,EAAAA,EAAAA,GAAEwpN,EAAOl1M,IACrBhiB,KAAK6te,sBAAqB,EAAM71J,EAAM37T,KAAK,IAAM08U,GAAYl5U,IAAI,IACjEmC,MAGR20d,2BAA4B,SAASz/Q,EAAQvvN,GAGzC,IAFA,IAAIrH,EAAS42N,EAAO52N,OAChB0hB,EAAYra,EACTqa,EAAY1hB,GAAQ,CACvB,IAAI03U,GAAQtqU,EAAAA,EAAAA,GAAEwpN,EAAOl1M,IACrBhiB,KAAK6te,sBAAqB,EAAM71J,EAAM37T,KAAK,IAAM08U,GAAYl5U,IAAI,IACjEmC,MAGRjhB,MAAO,WACCf,KAAKyxe,oBACL97Q,EAAAA,EAAAA,QAAqB31N,KAAKwve,gBAAiB,SAG/Cxve,KAAKuxN,YAETkiI,gBAAiB,SAASjzV,GAAG,WACzBR,KAAKigW,kBAAkBz/V,GAAG,GAC1B,IAAIo2e,GAAkBlpe,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmpN,SAASs9Q,GAC3C,GAAIuJ,GAAmB52e,KAAK6kB,OAAO,kBAAnC,CACIqZ,aAAal+B,KAAK62e,wBAClB,IAAI/2e,EAAU82e,GAAkBxgR,EAAAA,EAAAA,GAAiBp2N,KAAKwve,kBAAmB9he,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACvF7kB,KAAK62e,uBAAyBh0e,YAAW,WACrC,EAAK24V,gBAAgB17V,UAJ7B,CAQA,IAAI27V,EAAcz7V,KAAK07V,iBACvB17V,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBqlI,EAAY1xV,QAAQ,IAAMsie,OAE7E3sI,wBAAyB,SAASl/V,GAC9B,GAAKR,KAAK6kB,OAAO,qBAAjB,CAGA,IAAIsrB,GAAUziC,EAAAA,EAAAA,GAAElN,EAAEoG,QAAQmD,QAAQ,IAAMsie,EAAa,MAAQgB,GAC7D,GAAKl9b,EAAQ7vC,OAAb,CAGA,IAAIwqE,EAAc36B,EAAQ4/K,SAASmmL,GAAwB,KAAO/lW,EAClEnwC,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBtrJ,OAEnDgsa,sBAAuB,SAASC,GAC5B,OAAOA,EAAO3gP,KAAK,WACf,OAAO1oP,EAAAA,EAAAA,GAAE1N,MAAM+K,SAAS,IAAMguV,GAAYhpI,SAASmmL,OAG3Dx8C,WAAY,SAAS15T,EAAUx/B,GAC3B,IAAI44V,EAAW,KACXC,EAAa,OACbI,EAAc,QACdD,EAAa,OACbF,EAAat5V,KAAK6kB,OAAO,cAAgB,QAAU,OACnD00U,EAAcv5V,KAAK6kB,OAAO,cAAgB,OAAS,QACvD7kB,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAO0wc,IAAuB7xd,MAAM,WACzDwlN,EAAAA,QAAAA,KAAQjgO,MAAM,MAElB,IAAIk3N,EAASl3N,KAAKg3e,gBAClB,GAAK9/Q,GAAWA,EAAO52N,OAGvB,OAAQ0/B,GACJ,KAAKo5T,EACD,IAAI69I,EAAYj3e,KAAKi8V,UAAU/kI,GAC/Bl3N,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiB6gR,IAC/C,IAAIC,EAAkBl3e,KAAKm3e,oBAAoBF,GAC/Cj3e,KAAK2ve,gBAAgBl9X,gBAAgBykY,GACjC12e,EAAE2C,UAAYnD,KAAKiue,mBACnBjue,KAAK6te,sBAAqB,EAAMqJ,GAEpC,MACJ,KAAK79I,EACD,IAAIkrD,EAAYvkZ,KAAKk8V,UAAUhlI,GAC/Bl3N,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBmuL,IAC/C,IAAI6yF,EAAkBp3e,KAAKm3e,oBAAoB5yF,GAC/CvkZ,KAAK2ve,gBAAgBl9X,gBAAgB2kY,GACjC52e,EAAE2C,UAAYnD,KAAKiue,mBACnBjue,KAAK6te,sBAAqB,EAAMuJ,GAEpC,MACJ,KAAK39I,EACD,IAAI49I,EAAangR,EAAOltJ,QACpBxpE,EAAE2C,UAAYnD,KAAKiue,mBACnBjue,KAAK02e,4BAA4Bx/Q,EAAQA,EAAOr2N,MAAMb,KAAKi8V,UAAU/kI,KAEzEl3N,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBihR,IAC/Cr3e,KAAK2ve,gBAAgBl9X,gBAAgBzyG,KAAKm3e,oBAAoBE,IAC9D,MACJ,KAAK79I,EACD,IAAIkkH,EAAYxmP,EAAO56F,OACnB97H,EAAE2C,UAAYnD,KAAKiue,mBACnBjue,KAAK22e,2BAA2Bz/Q,EAAQA,EAAOr2N,MAAMb,KAAKk8V,UAAUhlI,KAExEl3N,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBsnP,IAC/C19c,KAAK2ve,gBAAgBl9X,gBAAgBzyG,KAAKm3e,oBAAoBz5B,IAC9D,MACJ,KAAKnkH,EACDv5V,KAAKs3e,0BACL,MACJ,KAAKh+I,EACDt5V,KAAKu3e,4BACL,MACJ,QAEI,YADAv3e,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,aAItCove,oBAAqB,SAASv1I,GAC1B,OAAOA,EAAMvlV,KAAK,IAAM08U,GAAYl5U,IAAI,IAE5Cm3d,cAAe,WACX,OAAOh3e,KAAK6Z,WAAWwC,KAAK,IAAMgwd,GAAYj2O,IAAI,YAEtDkhP,wBAAyB,WACrB,IAAIE,GAAe9pe,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACjC,GAAK2yd,EAAal3e,SAAUk3e,EAAaznR,SAAS08Q,GAAlD,CAIA,GADY+K,EAAan7d,KAAK,IAAIuf,OAAO0wc,IAAuB1kb,GAAG,GACzDmoK,SAASy8Q,GAA8B,CAC7C,IAAIjoF,EAAYvkZ,KAAKk8V,UAAUl8V,KAAK82e,sBAAsB92e,KAAKg3e,kBAG/D,OAFAh3e,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBmuL,SAC/CvkZ,KAAK2ve,gBAAgBl9X,gBAAgBzyG,KAAKm3e,oBAAoB5yF,IAGlE,IAAItuU,EAAOj2E,KAAKyze,kBAAkB+D,EAAazse,SAAS,IAAMguV,IAC9D/4V,KAAKmue,qBAAqBl4Z,GAAM,KAEpCwha,2BAA4B,SAAS71I,GACjC,GACIA,EAAQA,EAAMn2V,SAAS1B,QAAQ,IAAMsie,SAChCzqI,EAAM72V,SAAS,uCAAuCzK,QAC/D,OAAOshW,GAEX21I,0BAA2B,WACvB,IAAIC,GAAe9pe,EAAAA,EAAAA,GAAE1N,KAAK6kB,OAAO,mBACjC,GAAK2yd,EAAal3e,OAAlB,CAGA,IAAIo3e,EAAcF,EAAan7d,KAAK,IAAIuf,OAAO0wc,IAAuB1kb,GAAG,GACzE,IAAK4vb,EAAaznR,SAAS08Q,IAAYiL,EAAY3nR,SAASy8Q,GAA8B,CACtF,IAAIv2Z,EAAOj2E,KAAKyze,kBAAkB+D,EAAazse,SAAS,IAAMguV,IAC9D/4V,KAAKmue,qBAAqBl4Z,GAAM,OAC7B,CACH,IAAI0ha,EAAgB33e,KAAKy3e,2BAA2BD,GACpDG,EAAcr3e,QAAUN,KAAK6kB,OAAO,kBAAkBuxM,EAAAA,EAAAA,GAAiBuhR,IACvE33e,KAAK2ve,gBAAgBl9X,gBAAgBzyG,KAAKm3e,oBAAoBQ,OAGtEtJ,cAAe,SAASzse,GACpB,OAAO0oN,EAAAA,EAAAA,IAAS1oN,GAASywc,UAAUzwc,GAASA,GAEhD8xe,cAAe,SAAS9xe,GACpB,OAAO0oN,EAAAA,EAAAA,IAAS1oN,GAASg2e,UAAUh2e,GAASA,GAEhD+te,cAAe,WACX,OAAO3ve,KAAK4xe,aAEhBl6G,iBAAkB,WAAW,WACrB1sV,EAAW,IAAIwnL,EAAAA,GACfqlO,EAAa73b,KAAK2ve,gBAQtB,OAPI93C,EACAA,EAAWx5a,SAAS+a,MAAK,WACrB4R,EAASq0L,YAAY,MAGzBr0L,EAASq0L,YAAYr/N,MAElBgrC,EAASx6B,WAEpBksV,WAAY,SAAS5xR,GACjB,OAAO9qE,KAAK6te,sBAAqB,EAAM/ia,IAE3Cq8R,aAAc,SAASr8R,GACnB,OAAO9qE,KAAK6te,sBAAqB,EAAO/ia,IAE5C+sa,WAAY,SAAS/sa,GACjB,OAAO9qE,KAAKmue,qBAAqBrja,GAAa,IAElDgta,aAAc,SAAShta,GACnB,OAAO9qE,KAAKmue,qBAAqBrja,GAAa,IAElDita,SAAU,WACN,OAAO/3e,KAAKo7W,aAAa83B,gBAE7B8kG,iBAAkB,WAAW,WACzB,OAAOh4e,KAAKg2e,sBAAsB9ve,KAAI,SAAAc,GAClC,IAAIivE,EAAO,EAAKmlS,aAAa6H,aAAaj8W,GAC1C,OAAO,EAAKo0W,aAAa85B,cAAcj/T,OAG/C+/Z,oBAAqB,WACjB,OAAOh2e,KAAKo7W,aAAa2H,wBAE7BxtO,UAAW,WACHv1I,KAAKyxe,oBACLzxe,KAAKwve,gBAAgBE,WAAW,YAAY7qd,OAAO,SAAS,GAE5D7kB,KAAKu1e,iBAAiB,CAClB3ze,OAAO,KAInBuvZ,YAAa,WACLnxZ,KAAKyxe,oBACLzxe,KAAKwve,gBAAgBE,WAAW,YAAY7qd,OAAO,SAAS,GAE5D7kB,KAAKu1e,iBAAiB,CAClB3ze,OAAO,KAInBq2e,yBAA0B,WACtBj4e,KAAK2xe,kCAAmC,EACxC3xe,KAAKm/V,2BAET+4I,UAAW,WAAW,WACd1qP,EAAQxtP,KAAKo7W,aAAa9iQ,UAC1B6/X,EAAoB,GACxBn4e,KAAK2xe,kCAAmC,EACxCnkP,EAAMvtP,SAAQ,SAAAg2E,GAAI,OAAIkia,EAAkBv3e,KAAK,EAAKute,qBAAqBl4Z,EAAK6mS,eAAe91W,KAAK,OAChGm3C,QAAQi6b,WAAWD,GAAmB35b,MAAK,WACvC,IAAI65b,EACJ,OAAO,QAAUA,EAAwB,EAAKC,yBAAsB,IAAWD,OAAwB,EAASA,EAAsB53e,KAAK,OAGnJ02Z,YAAa,YACT18Y,EAAAA,EAAAA,IAAKza,KAAKo7W,aAAa45B,uBAAwB,SAASt6X,EAAG1T,GACvDhH,KAAKmue,qBAAqBnne,GAAK,IACjCyD,KAAKzK,QAEX62X,aAAc,SAAS0hH,GAAoB,WACnCtia,EAAOj2E,KAAKsze,SAASiF,GACzB,IAAKtia,EACD,OAAQ,IAAIu8I,EAAAA,IAAU9mL,SAASl7B,UAInC,IAFA,IAAIgoe,EAAmB,GACnBpud,EAAa6rD,EAAK6mS,eAAe80B,WAAWnmY,OACzC,MAAQ2e,GACNA,EAAWggX,UACZouG,EAAiB53e,KAAKwpB,EAAWpjB,KAErCojB,EAAaA,EAAW3e,OAE5B,IAAIgte,EAAiB,IAAIjmR,EAAAA,GAUzB,OATAxyN,KAAK04e,aAAaF,EAAiBzkd,WAAWqqC,QAAO,WACjD,IAAIvkD,EAAW,EAAKu0d,gBAAgBn4Z,GAChCp8D,GAAYA,EAASvZ,QACrB,EAAKq4e,uBAAuB9+d,EAASgG,IAAI,IACzC44d,EAAeroe,WAEfqoe,EAAe/sc,YAGhB+sc,EAAejoe,WAE1Bmoe,uBAAwB,SAAStkb,GAC7B,IAAIwjY,EAAa73b,KAAK2ve,gBACtB,EAGI3ve,KAAK6kB,SAFYiqd,EADrB,EACIA,gBACY/8Z,EAFhB,EAEIA,WAEAo7S,EAAiB,CACjBr0W,IAAK,EACLJ,KAAM,GAENkge,GAAiB9iK,EAAAA,EAAAA,GAAkBD,EAAAA,GAA0BxhR,GACjE,GAAIy6a,IAAoBp5J,EAAAA,GAAoB,CACxC,IAAIp2Q,GAAmB5xD,EAAAA,EAAAA,GAAEmqb,EAAW/3a,aAAaD,IAAI,GACrDstW,EAAez0W,KAAOq5D,EAAa6ma,EAAelge,KAAO27C,EAAcv3C,YAAcwiD,EAAiBE,YAAco5a,EAAelge,KAEnIo2d,IAAoBn5J,EAAAA,KACpBw3C,EAAer0W,IAAM8/d,EAAe9/d,KAExC++a,EAAWhzY,SAASsoU,IAExBurH,aAAc,SAASG,GAAc,WACjC,IAAKA,GAAgB,IAAMA,EAAav4e,OACpC,OAAQ,IAAIkyN,EAAAA,IAAUpiN,UAAUI,UAEpC,IAAIsoe,EAAiB,IAAItmR,EAAAA,GACrBumR,EAAmBF,EAAa3ye,KAAI,SAAAc,GAAG,OAAI,EAAK6we,WAAW7we,MAE/D,OADAyzN,EAAAA,GAAAA,MAAW/sN,EAAAA,EAAGqre,GAAkB3/c,MAAK,kBAAM0/c,EAAe1oe,aAAW0wB,MAAK,kBAAMg4c,EAAeptc,YACxFotc,EAAetoe,WAE1B6rN,SAAU,WACNr8N,KAAKuxN,WACLrzL,aAAal+B,KAAK62e,wBAClB72e,KAAKi4e,yBAA2B,QAGxC,MCt7CA/3F,EAAAA,EAAAA,eAA8B9oC,EAAAA,SAC9B,IAAIg1H,GAAe,cACfE,GAAuB,GAAG1wc,OAAOwwc,GAAc,mBAC/C4M,GAAiBxL,GAAAA,QAAqBttF,EAAAA,GAAgBlhP,QAAQ,CAC9D61D,iBAAkB,SAASxmN,GACvB,MAAO,GAAGutB,OAAOwwc,GAAc,KAAKxwc,OAAOvtB,IAE/C6tN,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,cACGxN,KAAKiue,mBAAqBjue,KAAKwxe,yBAC/Bxxe,KAAKgoW,mBAEThoW,KAAKw2Y,mBACLx2Y,KAAKi5e,gBACLj5e,KAAKk5e,oBACLl5e,KAAK6kB,OAAO,iBAAkB,MAC9B,MACJ,IAAK,aACD7kB,KAAKw2Y,mBACLx2Y,KAAKslB,UACL,MACJ,IAAK,aACDtlB,KAAK6kB,OAAO,wBAA0B7kB,KAAKm5e,qBAAuBn5e,KAAKw2Y,mBACvEx2Y,KAAKslB,UACL,MACJ,QACItlB,KAAKuxN,SAAS/qM,KAG1B2yd,mBAAoB,WAChBn5e,KAAK2mP,8BAA8B,wBAAwB,GAC3D3mP,KAAKw2Y,mBACLx2Y,KAAK2mP,8BAA8B,wBAAwB,IAE/DgwJ,uBAAwB,WACpB,OAAO7tY,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bv7F,YAAah2H,KAAK6kB,OAAO,eACzB+zD,WAAY54E,KAAK6kB,OAAO,eAAiB,WACzC4zD,WAAYz4E,KAAK6kB,OAAO,iBAGhCu0d,kBAAmB,WACf,OAAOp5e,KAAK6Z,WAAWwC,KAAK,IAAIuf,OAAO0wc,KAAuBtia,SAElEiva,cAAe,WACX,GAAIj5e,KAAKq5e,cAAe,CACpB,IAAIv9c,EAAgB97B,KAAKs5e,0BACzBt5e,KAAKq5e,cAAcx0d,OAAOiX,KAGlCo9c,kBAAmB,WACf,IACIK,EADAhyc,EAAavnC,KAAKo5e,oBAElB7xc,EAAWjnC,SACXinC,EAAWkjC,QACX8ua,EAAYv5e,KAAKo7W,aAAamF,eAC9BvgX,KAAK09V,oBAAoB67I,GACzBv5e,KAAKygW,aAAal5T,EAAYgyc,GAC9Bv5e,KAAKm/V,4BAGbp2D,aAAc,WACV,OAAO/oS,KAAK24U,eAAe34U,KAAK6kB,OAAO,mBAE3C85U,oBAAqB,WACjB3+V,KAAK6Z,WAAW4wD,SAEpBkuQ,eAAgB,SAAS6gK,GACrB,OAAIx5e,KAAKyxe,oBACEzxe,KAAKo5e,oBAEZp5e,KAAK4xe,aAAe4H,GACb9re,EAAAA,EAAAA,GAAE1N,KAAK4xe,YAAY9wd,WAEvB9gB,KAAKuxN,YAEhBsqJ,gBAAiB,WACb77W,KAAK6Z,WAAW4F,SAASzf,KAAKogX,iBAElC70H,OAAQ,WACJvrP,KAAKuxN,WACLvxN,KAAKy5e,uBAGbn5d,EAAAA,EAAAA,SAAkB,aAAc04d,IAChC,IC7FA,GD6FA,wMEhEIU,EACO,QADPA,EAES,UAFTA,EAGS,UAEPC,EAAAA,WACF,cAAc,eACV35e,KAAK+0N,KAAO,oDAEhB,SAAenzN,GACX,OAAOu7T,EAAAA,EAAAA,aAAiC,cAAcvhS,OAAO57B,KAAK+0N,MAA3DooG,CAAkEv7T,0CAE7E,SAAwBA,GACpB,OAAOu7T,EAAAA,EAAAA,aAAiC,cAAcvhS,OAAO57B,KAAK+0N,KAAM,cAAjEooG,CAAgFv7T,gCAE3F,SAAcA,GACV,OAAQg4e,EAAgBC,SAASlma,SAAS/xE,EAAO,4BAErD,SAASA,EAAO6xE,GAAM,WACdqma,EAAav0e,MAAMi2E,QAAQ55E,GAASA,EAAQ,CAACA,GAC7CiN,GAAS,EASb,OARIire,EAAWx5e,OACXw5e,EAAW9jc,OAAM,SAAA8zZ,GAEb,OADAj7b,EAAS,EAAK6oG,UAAUoyV,EAAWr2X,MAIvC5kE,EAAS7O,KAAK03G,UAAU,KAAMjkC,GAE3B5kE,QAxBT8qe,GA2BAI,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKhlR,KAAO,WAFF,0CAId,SAAUnzN,EAAO6xE,GACb,SAAK9qB,EAAAA,EAAAA,IAAU/mD,MAGX,IAAUA,IAGdA,EAAQikE,OAAOjkE,IACX6xE,EAAK7yC,OAAS+nB,EAAAA,EAAAA,IAAU8qB,EAAK7yC,QAC7Bh/B,EAAQA,EAAMg/B,QAEX,KAAOh/B,UAhBhBm4e,CAA8BJ,GAmB9BK,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKjlR,KAAO,UAFF,0CAId,SAAUnzN,EAAO6xE,GACb,SAAI,IAAUA,EAAKwma,mBAAoBj6e,KAAKy5d,cAAc73d,MAGtD6xE,EAAKyma,qBAAsB5vR,EAAAA,EAAAA,IAAS1oN,IAC5B4nC,MAAMipR,EAAAA,QAAAA,MAAyB7wT,KAEhCmjH,EAAAA,EAAAA,IAAUnjH,UAZvBo4e,CAA6BL,GAgB7BQ,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKplR,KAAO,QAFF,0CAId,SAAUnzN,EAAO6xE,GACb,IAAI,IAAUA,EAAKwma,kBAAoBj6e,KAAKy5d,cAAc73d,GACtD,OAAO,EAEX,IAAIw4e,EAAcR,EAAgB1hX,QAAQvkD,SAAS/xE,EAAO6xE,GACtD4ma,GAAa1xb,EAAAA,EAAAA,IAAU/mD,IAAU,KAAOA,EACxC63E,EAAS2ga,EAAczkc,WAAW/zC,GAASy4e,GAAcz4e,EAAM++N,UAC/D76M,EAAM2tD,EAAK3tD,IACXF,EAAM6tD,EAAK7tD,IACf,IAAMw0d,KAAevvR,EAAAA,EAAAA,IAAOjpN,KAAYy4e,EACpC,OAAO,EAEX,IAAI1xb,EAAAA,EAAAA,IAAU7iC,GACV,OAAI6iC,EAAAA,EAAAA,IAAU/iC,GACH6zD,GAAU3zD,GAAO2zD,GAAU7zD,EAE/B6zD,GAAU3zD,EACd,IAAI6iC,EAAAA,EAAAA,IAAU/iC,GACjB,OAAO6zD,GAAU7zD,EAEjB,MAAMq8M,EAAAA,EAAAA,MAAa,eAzBzBk4Q,CAA2BR,GA6B3BW,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKvlR,KAAO,eAFF,0CAId,SAAUnzN,EAAO6xE,GACb,IAAIlvD,EAKJ,OAJA3iB,EAAQikE,OAAO,QAAUthD,EAAS3iB,SAAU,IAAW2iB,EAASA,EAAS,KACrEkvD,EAAK7yC,OAAS+nB,EAAAA,EAAAA,IAAU8qB,EAAK7yC,QAC7Bh/B,EAAQA,EAAMg/B,WAEd6yC,EAAKwma,mBAAoBj6e,KAAKy5d,cAAc73d,KAGzCg4e,EAAgB5tZ,MAAMrY,SAAS/xE,EAAMtB,QAAQwI,EAAAA,EAAAA,GAAO,GAAI2qE,UAdjE6ma,CAAkCX,GAiBlCY,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKxlR,KAAO,SAFF,yCAId,SAASnzN,EAAO6xE,GACZ,GAAIA,EAAKwma,kBAAoBj6e,KAAKy5d,cAAc73d,GAC5C,OAAO,EAEX,IAAI8xE,EAAYD,EAAKC,UACjB8ma,EAAa9ma,IAAawH,EAAAA,EAAAA,IAAWxH,EAAU7uD,SAAW6uD,EAAU7uD,OAAO,cAC3E41d,GAAcv/Z,EAAAA,EAAAA,IAAWs/Z,IAAeA,IACxCz4c,EAAS,CACTngC,MAAOA,EACP8xE,UAAWA,EACXD,KAAMA,GAKV,OAHIgna,IACA3xe,EAAAA,EAAAA,GAAOi5B,EAAQ04c,GAEZhna,EAAKtqB,mBAAmBpnB,SApBjCw4c,CAA4BZ,GAuB5Be,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACK3lR,KAAO,QAFF,yCAId,SAASnzN,EAAO6xE,GAMZ,IALK9qB,EAAAA,EAAAA,IAAU8qB,EAAKkna,cAChB7xe,EAAAA,EAAAA,GAAO2qE,EAAM,CACTkna,YAAY,IAGhBlna,EAAKwma,kBAAoBj6e,KAAKy5d,cAAc73d,GAC5C,OAAO,EAEX,IAAI8xE,EAAYD,EAAKC,UACjB8ma,EAAa9ma,IAAawH,EAAAA,EAAAA,IAAWxH,EAAU7uD,SAAW6uD,EAAU7uD,OAAO,cAC3E41d,GAAcv/Z,EAAAA,EAAAA,IAAWs/Z,IAAeA,IACxCz4c,EAAS,CACTngC,MAAOA,EACP8xE,UAAWA,EACXD,KAAMA,GAENgna,IACA3xe,EAAAA,EAAAA,GAAOi5B,EAAQ04c,GAEnB,IAAIlsO,EAAiB96L,EAAKtqB,mBAAmBpnB,GAC7C,KAAK0sO,EAAAA,EAAAA,IAAUF,GACX,MAAMtsC,EAAAA,EAAAA,MAAa,SAEvB,OAAOjiO,KAAK46e,oBAAmBlgR,EAAAA,EAAAA,IAAY6zC,GAAgB/9P,6CAE/D,SAAmBA,GACf,IAAIw6B,EAAW,IAAIwnL,EAAAA,GAgBnB,OAfAhiN,EAAQguC,MAAM,SAAS6iB,GACnBr2B,EAAS56B,QAAQixD,MAChB,SAASqnE,GACV,IAAIrnE,EAAM,CACNnxC,SAAS,IAETy4B,EAAAA,EAAAA,IAAU+/E,MACN4hF,EAAAA,EAAAA,IAAS5hF,GACTrnE,EAAI51B,QAAUi9F,GACPyhF,EAAAA,EAAAA,IAASzhF,KAAQ//E,EAAAA,EAAAA,IAAU+/E,EAAIj9F,WAAY6+K,EAAAA,EAAAA,IAAS5hF,EAAIj9F,WAC/D41B,EAAI51B,QAAUi9F,EAAIj9F,UAG1BT,EAAS56B,QAAQixD,MAEdr2B,EAASx6B,gBAhDlBkqe,CAA2BH,GAmD3BM,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACK9lR,KAAO,UAFF,0CAId,SAAUnzN,EAAO6xE,GACb,IAAKA,EAAKqna,iBACN,MAAM74Q,EAAAA,EAAAA,MAAa,SAEvB,GAAIxuJ,EAAKwma,kBAAoBj6e,KAAKy5d,cAAc73d,GAC5C,OAAO,GAEXkH,EAAAA,EAAAA,GAAO2qE,EAAM,CACTkna,YAAY,IAEhB,IAAII,EAAatna,EAAKqna,mBAEtB,OADWrna,EAAKuna,gBAAkB,MAE9B,IAAK,KACD,OAAOp5e,GAASm5e,EACpB,IAAK,KACD,OAAOn5e,GAASm5e,EACpB,IAAK,MACD,OAAOn5e,IAAUm5e,EACrB,IAAK,MACD,OAAOn5e,IAAUm5e,EACrB,IAAK,IACD,OAAOn5e,EAAQm5e,EACnB,IAAK,KACD,OAAOn5e,GAASm5e,EACpB,IAAK,IACD,OAAOn5e,EAAQm5e,EACnB,IAAK,KACD,OAAOn5e,GAASm5e,SAjC1BF,CAA6BlB,GAqC7BsB,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKlmR,KAAO,UAFF,0CAId,SAAUnzN,EAAO6xE,GACb,IAAI,IAAUA,EAAKwma,kBAAoBj6e,KAAKy5d,cAAc73d,GACtD,OAAO,EAEX,IAAIozG,EAAUvhC,EAAKuhC,QAInB,OAHIs1G,EAAAA,EAAAA,IAASt1G,KACTA,EAAU,IAAIhsD,OAAOgsD,IAElBA,EAAQ9xE,KAAKthC,SAbtBq5e,CAA6BtB,GAgB7BuB,EAAAA,SAAAA,iCACF,aAAc,6BACV,gBACKnmR,KAAO,QAFF,0CAId,SAAUnzN,EAAO6xE,GACb,SAAI,IAAUA,EAAKwma,mBAAoBj6e,KAAKy5d,cAAc73d,KAGnDg4e,EAAgB5kY,QAAQrhC,SAAS/xE,GAAOkH,EAAAA,EAAAA,GAAO,GAAI2qE,EAAM,CAC5DuhC,QAAS,2CAVfkmY,CAA2BvB,GAc7BC,EAAkB,CAClBC,SAAU,IAAIE,EACd7hX,QAAS,IAAI8hX,EACbhuZ,MAAO,IAAImuZ,EACXgB,aAAc,IAAIb,EAClBv2c,OAAQ,IAAIw2c,EACZz/O,MAAO,IAAI4/O,EACXljb,QAAS,IAAIqjb,EACb7lY,QAAS,IAAIimY,EACbG,MAAO,IAAIF,GAEXG,EAAch5P,EAAAA,QAAAA,QAAc,CAC5Bz+G,KAD4B,SACvBl5G,GACD1qB,KAAK0qB,MAAQA,EACb1qB,KAAK6mN,WAAa,GAClB7mN,KAAKs7e,mBAAqB,GAC1Bt7e,KAAKu7e,0BAA4Bv7e,KAAKu7e,0BAA0B9we,KAAKzK,MACrEA,KAAKw7e,uBACLx7e,KAAKs9O,gBAAkB,IAAIC,EAAAA,eAAev9O,OAE9C2zE,SAT4B,WASjB,WACH9kE,EAAS,CACTqhB,SAAS,EACTkzR,YAAa,GACbv8F,WAAY,GACZnvK,OAAQgic,EACRz1Q,SAAU,MAyBd,OAvBAjkO,KAAKy7e,kCACLz7e,KAAKs7e,mBAAqB,GAC1Bt7e,KAAKw7e,wBACL/ge,EAAAA,EAAAA,IAAKza,KAAK6mN,YAAY,SAACnsM,EAAGg5D,GACtB,IAAIgoa,EAAkBhoa,EAAUC,WAChC9kE,EAAOqhB,QAAUrhB,EAAOqhB,SAAWwrd,EAAgBxrd,QAC/Cwrd,EAAgBt4L,cAChBv0S,EAAOu0S,YAAcv0S,EAAOu0S,YAAYxnR,OAAO8/c,EAAgBt4L,cAEnEv0S,EAAOg4M,WAAWjmN,KAAK8yE,GACnBgoa,EAAgBhkc,SAAWgic,GAC3B,EAAKiC,qBAAqBjoa,GAE9B,EAAKkoa,yBAAyBloa,MAE9B1zE,KAAKs7e,mBAAmBh7e,OACxBuO,EAAO6oC,OAASgic,GAEhB7qe,EAAO6oC,OAAS7oC,EAAOqhB,QAAUwpd,EAAeA,EAChD15e,KAAKy7e,kCACLz7e,KAAK67e,qBAAqBhte,IAE9B7O,KAAK87e,sBAAsBjte,IACpB/F,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6iT,gBAAgBh0S,SAE3C+se,yBA1C4B,SA0CHloa,GACrBA,EAAUp7C,GAAG,aAAct4B,KAAKu7e,2BAChC7na,EAAUp7C,GAAG,YAAat4B,KAAKu7e,4BAEnCQ,6BA9C4B,SA8CCroa,GACzBA,EAAUr7C,IAAI,aAAcr4B,KAAKu7e,2BACjC7na,EAAUr7C,IAAI,YAAar4B,KAAKu7e,4BAEpCE,gCAlD4B,WAkDM,YAC9Bhhe,EAAAA,EAAAA,IAAKza,KAAK6mN,YAAY,SAACnsM,EAAGg5D,GACtB,EAAKqoa,6BAA6Broa,OAG1Cooa,sBAvD4B,SAuDNjte,GAClB7O,KAAK6iT,gBAAgBh0S,OAASA,EAC1BA,EAAO6oC,SAAWgic,IAGjB15e,KAAK6iT,gBAAgB73Q,WACtBhrC,KAAK6iT,gBAAgB73Q,SAAW,IAAIwnL,EAAAA,GACpCxyN,KAAK6iT,gBAAgBh0S,OAAOo1N,SAAWjkO,KAAK6iT,gBAAgB73Q,SAASx6B,aAG7Emre,qBAjE4B,SAiEPjoa,IACIq4K,EAAAA,EAAAA,MAAK/rP,KAAKs7e,oBAAqB,SAASv3d,GACzD,OAAOA,IAAQ2vD,KACf,IAEA1zE,KAAKs7e,mBAAmB16e,KAAK8yE,IAGrCsoa,wBAzE4B,SAyEJtoa,GACpB,IAAI7yE,EAAQb,KAAKs7e,mBAAmBn1e,QAAQutE,GACxC7yE,GAAS,GACTb,KAAKs7e,mBAAmB/re,OAAO1O,EAAO,IAG9Co7e,kBA/E4B,SA+EV74L,GACd,IAAI84L,EAAe,GASnB,OARAzhe,EAAAA,EAAAA,IAAKza,KAAK6mN,YAAa,SAASnsM,EAAGg5D,GAC/B,IAAIyoa,GAAapwP,EAAAA,EAAAA,MAAKq3D,GAAc,SAAS3vO,GACzC,OAAOA,EAAKC,YAAcA,KAE1Byoa,EAAW77e,SACX47e,EAAeA,EAAatgd,OAAOugd,OAGpCD,GAEXE,mBA3F4B,SA2FTvte,GACf,GAAK7O,KAAK6iT,gBAAgBh0S,OAA1B,CAGA,IAAIu0S,EAAcpjT,KAAK6iT,gBAAgBh0S,OAAOu0S,YAC1CnqN,GAAQ8yJ,EAAAA,EAAAA,MAAKq3D,GAAc,SAAS3vO,GACpC,OAAOA,EAAKC,YAAc7kE,EAAO6kE,aAEjC7kE,EAAOu0S,cACPA,EAAcnqN,EAAMr9D,OAAO/sB,EAAOu0S,cAEtCpjT,KAAK6iT,gBAAgBh0S,OAAOu0S,YAAcpjT,KAAKi8e,kBAAkB74L,KAErEm4L,0BAxG4B,SAwGF1se,GAClBA,EAAO6oC,SAAWgic,EAItB15e,KAAKq8e,mBAAmBxte,GAHpB7O,KAAK27e,qBAAqB9se,EAAO6kE,YAKzC2oa,mBA/G4B,SA+GTxte,GAGf,GAFA7O,KAAKg8e,wBAAwBnte,EAAO6kE,WACpC1zE,KAAKo8e,mBAAmBvte,IACnB7O,KAAKs7e,mBAAmBh7e,OAAQ,CAEjC,GADAN,KAAKy7e,mCACAz7e,KAAK6iT,gBAAgBh0S,OACtB,OAEJ7O,KAAK6iT,gBAAgBh0S,OAAO6oC,OAAS,IAAM13C,KAAK6iT,gBAAgBh0S,OAAOu0S,YAAY9iT,OAASo5e,EAAeA,EAC3G15e,KAAK6iT,gBAAgBh0S,OAAOqhB,QAAUlwB,KAAK6iT,gBAAgBh0S,OAAO6oC,SAAWgic,EAC7E,IAAIr4a,GAAMv4D,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6iT,gBAAgBh0S,OAAQ,CAC9Co1N,SAAU,OAEVj5L,EAAWhrC,KAAK6iT,gBAAgB73Q,SACpChrC,KAAK6iT,gBAAgB73Q,SAAW,KAChChrC,KAAK67e,qBAAqBx6a,GAC1Br2B,GAAYnoC,YAAW,WACnBmoC,EAAS56B,QAAQixD,QAI7Bw6a,qBApI4B,SAoIPhte,GACjB7O,KAAKs9O,gBAAgB+B,UAAU,YAAa,CAACxwO,KAEjD2se,qBAvI4B,WAwIxBx7e,KAAK6iT,gBAAkB,CACnBh0S,OAAQ,KACRm8B,SAAU,OAGlBsxc,2BA7I4B,WA8IpBt8e,KAAK6iT,gBAAgBh0S,SACrB7O,KAAK6iT,gBAAgBh0S,OAAOg4M,WAAa7mN,KAAK6mN,aAGtD01R,0BAlJ4B,SAkJF7oa,GACtB,IAAI7yE,EAAQb,KAAK6mN,WAAW1gN,QAAQutE,GAChC7yE,GAAS,IACTb,KAAK6mN,WAAWt3M,OAAO1O,EAAO,GAC9Bb,KAAKs8e,6BACLt8e,KAAKq8e,mBAAmB,CACpB3oa,UAAWA,MAIvB8oa,kBA5J4B,SA4JV9oa,GACT1zE,KAAK6mN,WAAW/qF,SAASpoD,KAC1B1zE,KAAK6mN,WAAWjmN,KAAK8yE,GACrB1zE,KAAKs8e,+BAGb/gd,MAlK4B,YAmKxB9gB,EAAAA,EAAAA,IAAKza,KAAK6mN,YAAa,SAASnsM,EAAGg5D,GAC/BA,EAAUn4C,WAEdv7B,KAAKs7e,mBAAqB,GAC1Bt7e,KAAKw7e,wBAETljd,GAzK4B,SAyKzB2R,EAAWijG,GAEV,OADAltI,KAAKs9O,gBAAgBhlN,GAAG2R,EAAWijG,GAC5BltI,MAEXq4B,IA7K4B,SA6KxB4R,EAAWijG,GAEX,OADAltI,KAAKs9O,gBAAgBjlN,IAAI4R,EAAWijG,GAC7BltI,QAGXgjT,EAAmB,CACnB/2R,OAAQ,GACRwwd,eAFmB,SAEJ/xd,GACX,IAAI7b,GAASk9O,EAAAA,EAAAA,MAAK/rP,KAAKisB,QAAS,SAASqjD,GACrC,OAAOA,EAAO5kD,QAAUA,KAE5B,GAAI7b,EAAOvO,OACP,OAAOuO,EAAO,IAGtB6te,UAVmB,SAUT7ie,EAAU7N,GAChB,IAAI2we,EAAgBC,EAEhBpiK,GADqB,QAAUmiK,EAAiB9ie,EAAShM,cAAW,IAAW8ue,GAA0B,QAAUC,EAAwBD,EAAevZ,oBAAiB,IAAWwZ,OAAtF,EAAuHA,EAAsB9gX,SAAS,uBAC9MjiH,EAASgje,kBAAkB,YACvE,GAAIriK,EACA,OAAOA,EAEX,IAAIsiK,EAAWjje,EAASiL,QAAQ,uBAAuBklD,QACvD,OAAI8ya,EAASx8e,OACFw8e,EAASD,kBAAkB,YAE/B7we,GAEX+we,WAvBmB,WAwBf/8e,KAAKisB,OAAS,GACdjsB,KAAKg9e,YAETA,SA3BmB,SA2BVtyd,GACL,IAAI4kD,EAAStvE,KAAKy8e,eAAe/xd,GAKjC,OAJK4kD,IACDA,EAAS,IAAI+ra,EAAY3wd,GACzB1qB,KAAKisB,OAAOrrB,KAAK0uE,IAEdA,GAEX2ta,YAnCmB,SAmCPvyd,GACR,IAAI4kD,EAAStvE,KAAKy8e,eAAe/xd,GAC7B7pB,EAAQb,KAAKisB,OAAO9lB,QAAQmpE,GAIhC,OAHIzuE,GAAS,GACTb,KAAKisB,OAAO1c,OAAO1O,EAAO,GAEvByuE,GAEX4ta,mBA3CmB,SA2CAtud,GACf,IACU6kD,EAGN7kD,EAHA6kD,KACWC,EAEX9kD,EAFA8kD,UACMlmE,EACNohB,EADAphB,MAECm7C,EAAAA,EAAAA,IAAU8qB,EAAKhoC,WACZioC,EAAUypa,0BAA2Bx0b,EAAAA,EAAAA,IAAUn7C,GAC/CimE,EAAKhoC,QAAUioC,EAAUypa,wBAAwB3ve,GAEjDimE,EAAKhoC,QAAUioC,EAAU0pa,mBAIrCC,eAzDmB,SAyDJzud,GACX,IACY/f,EAER+f,EAFA/f,OACM4kE,EACN7kD,EADA6kD,KAEC5kE,EAAOmmE,aACRnmE,EAAOmmE,WAAavB,GAEnB5kE,EAAOu0S,cACRv0S,EAAOu0S,YAAc,IAEzBv0S,EAAOu0S,YAAYxiT,KAAK6yE,IAE5BE,SAtEmB,SAsEV/xE,EAAOq3F,EAAOzrF,GAAM,IACrB8ve,EADqB,OAErBzue,EAAS,CACTrB,KAAMA,EACN5L,MAAOA,EACPozE,WAAY,KACZouO,YAAa,KACblzR,SAAS,EACTjI,gBAAiBgxE,EACjBiqN,aAAc,KACdxrQ,OAAQgic,EACRz1Q,SAAU,MAEVvwJ,EAAY,OAASulB,QAAS,IAAWA,GAAiB,QAAUqkZ,EAAUrkZ,EAAM,UAAO,IAAWqkZ,OAArD,EAAwEA,EAAQ5pa,UACjI6pa,EAAiB,GAuDrB,OAtDA9ie,EAAAA,EAAAA,IAAKw+E,GAAS,IAAI,SAACv+E,EAAG+4D,GAClB,IACI+pa,EADAC,EAAgB7D,EAAgBnma,EAAK9vD,MAEzC,IAAI85d,EAsCA,MAAMx7Q,EAAAA,EAAAA,MAAa,SArCnB,OAAIt5K,EAAAA,EAAAA,IAAU8qB,EAAKvjD,UAAYujD,EAAK7xE,QAAUA,IAAU6xE,EAAKkna,aACpDlna,EAAKvjD,UACNrhB,EAAOqhB,SAAU,EACjB,EAAKmtd,eAAe,CAChBxue,OAAQA,EACR4kE,KAAMA,KAEH,IAIfA,EAAK7xE,MAAQA,EACT,UAAY6xE,EAAK9vD,MACjB45d,EAAe38e,KAAK,CAChB6yE,KAAMA,EACNgqa,cAAeA,KAEZ,IAEXD,EAAuBC,EAAc9pa,SAAS/xE,EAAO6xE,GACrDA,EAAKvjD,QAAUstd,EACVA,IACD3ue,EAAOqhB,SAAU,EACjB,EAAKgtd,mBAAmB,CACpBzpa,KAAMA,EACNC,UAAW+pa,EACXjwe,KAAMA,IAEV,EAAK6ve,eAAe,CAChBxue,OAAQA,EACR4kE,KAAMA,OAGTA,EAAKvjD,cAAV,OAOJrhB,EAAOqhB,UAAYrhB,EAAOu0S,aAAem6L,EAAej9e,SACxDuO,EAAS7O,KAAK09e,oBAAoB,CAC9B97e,MAAOA,EACP8J,MAAO6xe,EACP1ue,OAAQA,EACRrB,KAAMA,KAGdxN,KAAK29e,gCAAgCjqa,EAAW7kE,GAChDA,EAAO6oC,OAAS7oC,EAAOq0S,aAAew2L,EAAiB7qe,EAAOqhB,QAAUwpd,EAAeA,EAChF7qe,GAEX8ue,gCA7ImB,SA6Iajqa,EAAW7kE,GACvC,IAAI+ue,EACJ,GAAKlqa,EAAL,CAGA,IAAImqa,EAAc76L,EAAiBy5L,eAAe/oa,EAAUoqa,kBAC5DD,EAAYzB,mBAAmB37e,KAAKo9e,EAAa,CAC7Cnqa,UAAWA,EACX0vO,YAAa,QAAUw6L,EAAsB/ue,EAAOu0S,mBAAgB,IAAWw6L,EAAsBA,EAAsB,OAGnIF,oBAxJmB,SAwJC12P,GAAM,WAEVn4O,EAIRm4O,EAJAn4O,OACOjN,EAGPolP,EAHAplP,MACO8J,EAEPs7O,EAFAt7O,MACM8B,EACNw5O,EADAx5O,KAEAuwe,EAAe,GAkCnB,OAjCAtje,EAAAA,EAAAA,IAAK/O,GAAO,SAACgP,EAAGxa,GACZ,IAAI89e,EAAiB99e,EAAKu9e,cAAc9pa,SAAS/xE,EAAO1B,EAAKuzE,MAC7D,IAAKg7L,EAAAA,EAAAA,IAAUuvO,GAOR,CACEnve,EAAOq0S,eACRr0S,EAAOq0S,aAAe,IAE1Br0S,EAAOq0S,aAAatiT,KAAKV,EAAKuzE,MAC9B,IAAI85M,EAAcywN,EAAex/b,MAAK,SAAA6iB,GAClC,IAAI48a,EAAa,EAAKC,sBAAsB78a,GAO5C,OANA,EAAK88a,kBAAkB,CACnB1qa,KAAMvzE,EAAKuzE,KACXwqa,WAAYA,EACZvqa,UAAWxzE,EAAKu9e,cAChBjwe,KAAMA,IAEHywe,KAEXF,EAAan9e,KAAK2sR,QArBlB,EAAK4wN,kBAAkB,CACnB1qa,KAAMvzE,EAAKuzE,KACXwqa,WAAY,EAAKC,sBAAsBF,GACvCtqa,UAAWxzE,EAAKu9e,cAChBjwe,KAAMA,OAoBduwe,EAAaz9e,SACbuO,EAAOo1N,SAAW9lL,QAAQpI,IAAIgoc,GAAcv/b,MAAK,SAAA5kC,GAAM,OAAI,EAAKwke,qBAAqB,CACjFvve,OAAQA,EACR+K,OAAQA,QAGT/K,GAEXsve,kBAnMmB,SAmMDh2P,GACd,IACU10K,EAIN00K,EAJA10K,KACYwqa,EAGZ91P,EAHA81P,WACWvqa,EAEXy0K,EAFAz0K,UACMlmE,EACN26O,EADA36O,KAEJimE,EAAKvjD,QAAU+td,EAAW/td,QACrB+td,EAAW/td,WACRy4B,EAAAA,EAAAA,IAAUs1b,EAAWxyc,WAAY6+K,EAAAA,EAAAA,IAAS2zR,EAAWxyc,UAAYwyc,EAAWxyc,QAAQnrC,OACpFmzE,EAAKhoC,QAAUwyc,EAAWxyc,QAE1BzrC,KAAKk9e,mBAAmB,CACpBzpa,KAAMA,EACNC,UAAWA,EACXlmE,KAAMA,MAKtB0we,sBAvNmB,SAuNGD,GAClB,IAAIpve,EAWJ,OAVIs7M,EAAAA,EAAAA,IAAS8zR,IACTpve,GAAS/F,EAAAA,EAAAA,GAAO,GAAIm1e,IACft1b,EAAAA,EAAAA,IAAU95C,EAAOqhB,WAClBrhB,EAAOqhB,SAAU,IAGrBrhB,EAAS,CACLqhB,UAASmyP,EAAAA,EAAAA,IAAU47N,IAAcA,GAGlCpve,GAEXuve,qBArOmB,SAqOEx1P,GAAO,WAEZhvO,EAERgvO,EAFAhvO,OACQ/K,EACR+5O,EADA/5O,OAeJ,OAbA4L,EAAAA,EAAAA,IAAKb,GAAQ,SAAC/Y,EAAOkjB,GACjB,IAAI,IAAUA,EAAImM,QAAS,CACvBrhB,EAAOqhB,QAAUnM,EAAImM,QACrB,IAAIujD,EAAO5kE,EAAOq0S,aAAariT,GAC/B,EAAKw8e,eAAe,CAChBxue,OAAQA,EACR4kE,KAAMA,QAIlB5kE,EAAOq0S,aAAe,KACtBr0S,EAAOo1N,SAAW,KAClBp1N,EAAO6oC,OAAS7oC,EAAOqhB,QAAUwpd,EAAeA,EACzC7qe,GAEXwve,yBAzPmB,SAyPM3zd,EAAOgpD,GAC5B,IAAImqa,EAAc76L,EAAiBg6L,SAAStyd,GAC5Cmzd,EAAYrB,kBAAkB/7e,KAAKo9e,EAAanqa,IAEpD4qa,mBA7PmB,SA6PA5zd,EAAO6zd,GACtB,IAAIC,OAAiB,IAAW9zd,EAC5B+zd,EAA4B/zd,GAAS,sBAAwBA,EAAMqqM,KACvE,OAAQypR,IAAmBC,IAA8BF,EAAkBj+e,QAE/Ei8e,0BAlQmB,SAkQO7xd,EAAOgpD,GAC7B,IAAIpE,EAAS0zO,EAAiBy5L,eAAe/xd,GAC7C,GAAI4kD,EAAQ,CACRA,EAAOita,0BAA0B97e,KAAK6uE,EAAQoE,GAC9C,IAAI6qa,EAAoBjva,EAAOu3I,WAC3B7mN,KAAKs+e,mBAAmB5zd,EAAO6zd,IAC/Bv+e,KAAKi9e,YAAYvyd,KAI7Bg0d,sBA5QmB,SA4QGtke,GAAS,WACvBuke,EAAgB,GAWpB,OAVIvke,GACA,CAAC,UAAW,mBAAoB,kBAAmB,oBAAoBna,SAAQ,SAAAwmH,GACvEA,KAAQrsG,IACRtR,EAAAA,EAAAA,GAAO61e,EAAe,EAAKC,6BAA6B,CACpDpxe,KAAMi5G,EACN7kH,MAAOwY,EAAQqsG,IAChBrsG,OAIRuke,GAEXC,6BA1RmB,SA0RUjmM,EAAOv+R,GAChC,IACU5M,EAENmrS,EAFAnrS,KACO5L,EACP+2S,EADA/2S,MAEJ,OAAQ4L,GACJ,IAAK,mBACD,IAAI0iB,EAAUtuB,IAAU83e,GAAgB93e,IAAU83e,EAClD,OAAOt/d,EAAQ8V,UAAYA,EAAU,CACjCA,QAASA,GACT,GACR,IAAK,UACD,IACsB0yR,EAClBxoS,EADAwoS,iBAEAi8L,EAAYj8L,EAMhB,OALIhhT,GAASghT,IAAqB82L,EAC9BmF,EAAYnF,EACJ93e,GAASghT,IAAqB82L,IACtCmF,EAAYnF,GAETmF,IAAcj8L,EAAmB,CACpCA,iBAAkBi8L,GAClB,GACR,IAAK,mBACD,IAAIn8L,EAAmB9gT,GAAUA,EAAMtB,OAAgBsB,EAAM,GAAb,KAChD,OAAOwY,EAAQsoS,kBAAoBA,EAAkB,CACjDA,gBAAiBA,GACjB,GACR,IAAK,kBACD,IACsBC,EAClBvoS,EADAuoS,iBAEJ,IAAK/gT,GAAS+gT,EACV,MAAO,CACHA,iBAAkB,MAEnB,GAAI/gT,IAAU+gT,EACjB,MAAO,CACHA,iBAAkB,CAAC/gT,IAEpB,GAAIA,GAAS+gT,GAAoB/gT,IAAU+gT,EAAiB,GAE/D,OADAA,EAAiB,GAAK/gT,EACf,CACH+gT,iBAAkBA,EAAiBl9S,SAInD,MAAO,IAEXq5e,cA5UmB,SA4ULp0d,GACV,IAAImzd,EAAc76L,EAAiBy5L,eAAe/xd,GAClD,IAAKmzd,EACD,MAAM57Q,EAAAA,EAAAA,MAAa,SAEvB,OAAO47Q,EAAYlqa,YAEvBora,WAnVmB,SAmVRr0d,GACP,IAAImzd,EAAc76L,EAAiBy5L,eAAe/xd,GAClD,IAAKmzd,EACD,MAAM57Q,EAAAA,EAAAA,MAAa,SAEvB,OAAO47Q,EAAYtid,UAG3BynR,EAAiB+5L,aACjB,sLC/yBIiC,EAA0B,qBAGxBC,EAAAA,SAAAA,6IACF,WACI,8FAEJ,YACI,qDACAj8L,EAAAA,QAAAA,SAA0BhjT,iCAE9B,WACI,IAAI6Z,EAAW7Z,KAAK6Z,WACpBA,EAAS4F,SAASu/d,GAClBnle,EAASwC,KAAK,IAAIuf,OAbJ,iBAa6BnhB,MAAM,SAASC,EAAGwke,GACzDC,EAAAA,QAAAA,aAAsBzxe,EAAAA,EAAAA,GAAEwxe,IAAqBE,4BAEjDvle,EAASwC,KAAK,IAAIuf,OAfK,yBAe6BnhB,MAAM,SAASC,EAAG2ke,GAClEC,EAAAA,EAAAA,aAA8B5xe,EAAAA,EAAAA,GAAE2xe,IAAmBE,6BAEvD,mFAEJ,WACI,OAAOv8L,EAAAA,QAAAA,cAA+BhjT,2BAE1C,WACI,OAAOgjT,EAAAA,QAAAA,WAA4BhjT,8BAEvC,WACIgjT,EAAAA,QAAAA,YAA6BhjT,MAC7BA,KAAK6Z,WAAWge,YAAYmnd,IAC5B,qFAEJ,WACI,OAAO,QA/BTC,CAAwBltR,EAAAA,UAkC9BzxM,EAAAA,EAAAA,SAAkB,oBAAqB2+d,kIC3BnCO,EAAkB,qBAKlBlrK,EAAoB4nC,EAAAA,QAAAA,QAAgB,CACpCzpJ,mBADoC,WAEhC,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B43B,mBAAoB,GACpB4pK,+BAA+B,EAC/B93K,SAAS,EACT3pO,MAAO,OACPC,OAAQ,OACR+U,oBAAoB,EACpBg+M,UAAW,KACXz7N,SAAS,EACTq0W,uBAAuB,EACvBuwD,wBAAwB,EACxB17V,YAAY,EACZ3rD,gBAAiBpmB,KAAKy/e,iBACtBzge,SAAU,OACVc,UAAW9f,KAAK6Z,WAChBjT,YAAQ,EACRy9D,KAAM,OACNs+O,sBAAkB,EAClBswG,qBAAqB,EACrB7+E,aAAc,MACdlvT,cAAU,EACV3Z,OAAQ,CACJi+I,EAAG,EACH3iG,EAAG,GAEPh5B,eAAW,KAGnB2kD,MA9BoC,WA+BhCxyE,KAAKuxN,WACLvxN,KAAKivY,iBACLjvY,KAAKghb,mBAETv2L,YAnCoC,WAoChCzqP,KAAKuxN,WACLvxN,KAAK0/e,yBACL1/e,KAAK2/e,0BACL3/e,KAAK4/e,mBACL5/e,KAAK6/e,oBAETF,wBAAyB,WACrB,IACY/4e,EACR5G,KAAK6kB,SADLje,OAEJ5G,KAAK6kB,OAAO,cAAeje,IAE/B84e,uBAAwB,WACpB1/e,KAAK8/e,YAAc9/e,KAAK+/e,iBACxB,IAAIC,EAAoBhgf,KAAK6kB,OAAO,YAAc7kB,KAAK8/e,YACvD9/e,KAAKigf,yBAAyBD,IAElCC,yBAA0B,SAASp3e,GAC3BA,GACA7I,KAAK6Z,WAAW4F,SAAS+/d,GACzBx/e,KAAKm1N,WAAW11M,SAAS+/d,KAEzBx/e,KAAK6Z,WAAWge,YAAY2nd,GAC5Bx/e,KAAKm1N,WAAWt9L,YAAY2nd,KAGpCK,iBA9DoC,WA+DhC,MAGI7/e,KAAK6kB,SAFM/E,EADf,EACIA,UACW+N,EAFf,EAEIA,UAEA5jB,EAAK,OAAS4jB,QAAa,IAAWA,EAAYA,GAAYngB,EAAAA,EAAAA,GAAEoS,GAAWF,KAAK,oBACpF5f,KAAK25B,WAAWla,SAtEM,8BAsE4BG,KAAK,KAAM3V,IAEjEw1e,iBAtEoC,SAsEnB3/e,GACb,IAAI+Z,EAAW/Z,IAAW4N,EAAAA,EAAAA,GAAE5N,GAC5B,OAAS+Z,QAAY,IAAWA,GAAoBA,EAAS2tC,KAAKxnD,KAAK8/e,cAE3EC,eA1EoC,WA2EhC,IAAI/kN,EACA2nB,EAAmB,QAAU3nB,EAAeh7R,KAAK6kB,OAAO,2BAAwB,IAAWm2Q,EAAeA,EAAe,GACzHklN,EAAyB,GAM7B,OALAv9L,EAAiB1iT,SAAQ,SAAAyoI,GACrB,IAAIy3W,EAEJD,IADgBA,EAAyB,SAAW,KACd/hO,EAAAA,EAAAA,YAAW,QAAUgiO,EAAe,OAASz3W,QAAO,IAAWA,OAAM,EAASA,EAAIj9F,eAAY,IAAW00c,EAAeA,EAAe,OAE1KD,GAEXN,iBArFoC,WAsFhC,IAAIv7a,EAAOrkE,KAAK6kB,OAAO,QACvB7kB,KAAKm1N,WAAWqB,YA3FG,0BA2F+B,SAAWnyJ,GAAMmyJ,YA1F9C,4BA0FkF,WAAanyJ,IAExH4qU,eAzFoC,WA0FhC,IAAIroY,EAAS5G,KAAK6kB,OAAO,UACrB4nB,GAAc6rL,EAAAA,EAAAA,IAAc1xN,GAC5BoY,EAAW,OACXytB,IACAztB,EAAW2G,KAAKC,IAAI6mB,EA/FG,MAiG3BzsC,KAAK6kB,OAAO,CACR7F,SAAUA,KAGlBohe,mBAAoB,SAAShsK,EAAcisK,GACvC,OAAQjsK,GACJ,IAAK,MACD,MAAO,CAAC,GAAGx4S,OAAOykd,EAAS,WAAY,GAAGzkd,OAAOykd,EAAS,SAC9D,IAAK,OACD,MAAO,CAAC,QAAS,QACrB,IAAK,QACD,MAAO,CAAC,OAAQ,SACpB,QACI,MAAO,CAAC,GAAGzkd,OAAOykd,EAAS,QAAS,GAAGzkd,OAAOykd,EAAS,cAGnEr/D,gBAAiB,WACb,MAKIhhb,KAAK6kB,SAJSuvT,EADlB,EACIA,aACYriQ,EAFhB,EAEIA,WACQuua,EAHZ,EAGI/0e,OACU2Z,EAJd,EAIIA,SAEAm7d,GAAUvqO,EAAAA,EAAAA,GAAoB/jM,GAC9B92B,EAAYj7C,KAAKogf,mBAAmBhsK,EAAcisK,GAClD90e,GAAS0sN,EAAAA,EAAAA,GAAS,GAAIqoR,GAC1Btgf,KAAK6Z,WAAW4F,SAAS,sBAAsBmc,OAAOw4S,IAClDriQ,GAAc,SAAWqiQ,GAAgB,UAAYA,IACrD7oU,EAAOi+I,GAAKj+I,EAAOi+I,GAEnB,QAAU4qL,IACV7oU,EAAOs7C,GAAKt7C,EAAOs7C,GAEnB,SAAWutR,IACX7oU,EAAOi+I,GAAKj+I,EAAOi+I,GAEvBxpJ,KAAK6kB,OAAO,WAAY,CACpBtZ,OAAQA,EACR2Z,SAAUA,EACVw6C,GAAIzkB,EAAU,GACd0kB,GAAI1kB,EAAU,GACd71B,UAAW,eAGnB82M,eA5IoC,SA4IrB11M,GACX,IACUhZ,EAGNgZ,EAHAhZ,KACO5L,EAEP4kB,EAFA5kB,MACe42G,EACfhyF,EADAgyF,cAEJ,OAAQhrG,GACJ,IAAK,SACDxN,KAAK2/e,0BACL3/e,KAAKivY,iBACLjvY,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,WACDxmB,KAAK6kB,OAAO,oBAAqBjjB,GACjC,MACJ,IAAK,OACD5B,KAAK4/e,iBAAiBh+e,GACtB,MACJ,IAAK,aACL,IAAK,SACL,IAAK,eACD5B,KAAK6Z,WAAWge,YAAY,sBAAsB+D,OAAO48E,IACzDx4G,KAAKghb,kBACL,MACJ,IAAK,YACDhhb,KAAK6/e,mBACL7/e,KAAKuxN,SAAS/qM,GACd,MACJ,IAAK,YACDxmB,KAAK6/e,mBACL,MACJ,IAAK,mBACD7/e,KAAK0/e,yBACL1/e,KAAKy/e,iBAAiBz/e,KAAK25B,YAC3B,MACJ,QACI35B,KAAKuxN,SAAS/qM,QAI9BlG,EAAAA,EAAAA,SAAkB,sBAAuBg0T,GACzC,wHC5LIisK,EAA2B,uBAG3BjB,EAAoBnlK,EAAAA,EAAAA,QAAyB,CAC7C1nH,mBAD6C,WAEzC,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B+7G,mBAAmB,EACnBnrQ,WAAY,QAGpBgxJ,uBAP6C,WAQzCnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BonH,iBAAiB,KAGzBhoQ,MAb6C,WAczCxyE,KAAKuxN,WACLvxN,KAAKo/e,0BAETA,uBAjB6C,WAkBzC,IAAIvle,EAAW7Z,KAAK6Z,WAChB6Q,EAAQ1qB,KAAK6kB,OAAO,oBAAsBm+R,EAAAA,QAAAA,UAA2BnpS,EAAU7Z,KAAKwrP,gBAAgB3xO,IACpGgke,EAAc76L,EAAAA,QAAAA,SAA0Bt4R,GAC5C1qB,KAAKwgf,oBACLxgf,KAAKygf,eAAgB,EACrBzgf,KAAK89e,iBAAmBpzd,EACxB1qB,KAAK0gf,kBAAoB1gf,KAAK2gf,wBAAwBl2e,KAAKzK,MAC3D69e,EAAYvld,GAAG,YAAat4B,KAAK0gf,oBAErCF,kBA3B6C,WA4BzC,IAAI3C,EAAc76L,EAAAA,QAAAA,eAAgChjT,KAAK89e,kBACvDD,GAAeA,EAAYxld,IAAI,YAAar4B,KAAK0gf,oBAErDE,iBA/B6C,SA+B5B/5R,EAAYn7M,GACzB,IAAIm1e,EAAe,GAWnB,OAVApme,EAAAA,EAAAA,IAAKosM,GAAa,SAASnsM,EAAGg5D,GAC1B,IAAIota,GAAa/0P,EAAAA,EAAAA,MAAKrgP,GAAQ,SAASxL,GACnC,GAAIA,EAAKwzE,YAAcA,EACnB,OAAO,KAGXota,EAAWxgf,SACXugf,EAAeA,EAAajld,OAAOkld,OAGpCD,GAEXF,wBA7C6C,SA6CrB5+c,GAAQ,WACxBr2B,EAAQ1L,KAAK4gf,iBAAiB7+c,EAAO8kL,YAAY3gN,EAAAA,EAAAA,IAAI67B,EAAOqhR,aAAc,SAAS3vO,GACnF,MAAO,CACH9wE,KAAM8wE,EAAKhoC,QACXioC,UAAWD,EAAKC,UAChB7yE,MAAO4yE,EAAK5yE,WAGpBb,KAAK6mN,WAAa9kL,EAAO8kL,YACzBpsM,EAAAA,EAAAA,IAAKza,KAAK6mN,YAAY,SAACnsM,EAAGg5D,GACtB,GAAIA,EAAUqta,qBAAuB,EAAM,CACvC,IAAIxgf,EAAU,EAAKygf,uBAAuBv2e,KAAK,GAC/CipE,EAAUp7C,GAAG,YAAa/3B,GAC1BmzE,EAAUp7C,GAAG,aAAc,WACvBo7C,EAAUr7C,IAAI,YAAa93B,GAC3BmzE,EAAUqta,mBAAqB,KAC/Bxgf,EAAU,QAEdmzE,EAAUqta,mBAAqB,MAGvC/gf,KAAK6kB,OAAO,QAASnZ,IAEzBs1e,uBApE6C,SAoEtBh6P,GA2BnB,IA1BA,IACa92N,EAGT82N,EAHA92N,QACWwjD,EAEXszK,EAFAtzK,UACa0vO,EACbp8D,EADAo8D,YAEA13S,EAAQ1L,KAAK6kB,OAAO,SACpBo8d,GAAe,EACfj/d,EAAY,EACZqkW,EAAQ,WACR,IAAInmX,EAAOwL,EAAMsW,GACjB,GAAI9hB,EAAKwzE,YAAcA,EAAW,CAC9B,IAAIwta,GAAYn1P,EAAAA,EAAAA,MAAKq3D,GAAe,IAAK,SAAS3vO,GAC9C,OAAOA,EAAK5yE,QAAUX,EAAKW,SAC3B,GACJ,GAAIqvB,IAAYgxd,EAGZ,OAFAx1e,EAAM6D,OAAOyS,EAAW,GACxBi/d,GAAe,EACR,WAEPC,EAAUz1c,UAAYvrC,EAAKyC,OAC3BzC,EAAKyC,KAAOu+e,EAAUz1c,QACtBw1c,GAAe,GAGvBj/d,KAEGA,EAAYtW,EAAMpL,QACV+lX,KAKf5rW,EAAAA,EAAAA,IAAK2oS,GAAc,SAAS1oS,EAAG+4D,IACXs4K,EAAAA,EAAAA,MAAKrgP,GAAQ,SAASxL,GAClC,OAAOA,EAAKwzE,YAAcA,GAAaxzE,EAAKW,QAAU4yE,EAAK5yE,SAC3D,KAEA6K,EAAM9K,KAAK,CACP+B,KAAM8wE,EAAKhoC,QACXioC,UAAWA,EACX7yE,MAAO4yE,EAAK5yE,QAEhBogf,GAAe,MAGnBA,IACAv1e,EAAQ1L,KAAK4gf,iBAAiB5gf,KAAK6mN,WAAYn7M,GAC/C1L,KAAK6kB,OAAO,QAASnZ,KAG7B++O,YAvH6C,WAwHzCzqP,KAAK6Z,WAAW4F,SAAS8ge,GACzBvgf,KAAKuxN,YAET2K,eA3H6C,SA2H9B11M,GACX,GACS,oBADDA,EAAKhZ,KAELxN,KAAKo/e,8BAGLp/e,KAAKuxN,SAAS/qM,IAG1Bs4U,WAAY,iBAtICyhJ,6BAuIbnjJ,aAAc,iBAtIEmjJ,kCAuIhBj/I,uBAtI6C,SAsItBv/T,GACnB4zL,EAAAA,EAAAA,GAAgB5zL,EAAO+oC,YAAa,SAAU,WAC1C/oC,EAAO8oC,SAAS6I,WAAa3xC,EAAO8oC,SAAS6I,UAAU3yE,OAASghC,EAAO8oC,SAAS6I,UAAU3yE,YAGlGs7N,SA3I6C,WA4IzCr8N,KAAKuxN,WACLvxN,KAAKwgf,qBAETjB,uBA/I6C,WAgJzCv/e,KAAKo/e,6BAGb9+d,EAAAA,EAAAA,SAAkB,sBAAuBg/d,GACzC,wKCpKI6B,WAAiB9+P,QAAAA,QAAc,CAC/Bz+G,KAD+B,SAC1BphH,EAAQkxD,GAAW,WACpB1zE,KAAKwiB,OAASA,EACdxiB,KAAK0zE,UAAYA,EACjB1zE,KAAKohf,4BAA8B,GACnC,IAAI7gf,EAAU,SAAAimB,GACV,EAAK46d,4BAA4Bnhf,SAAQ,SAAAC,GAAI,OAAIA,EAAKsmB,OAE1DhE,EAAOwyU,kBAAkB1zV,IAAIf,GAC7BiiB,EAAO8V,GAAG,aAAc,WACpB9V,EAAOwyU,kBAAkBxzV,OAAOjB,OAGxCq9B,SAb+B,WAc3B,OAAO59B,KAAKwiB,OAAOqC,OAAO,UAE9Bw8d,0BAhB+B,WAiB3B,OAAOrhf,KAAKwiB,OAAOqC,OAAO,oBAE9By8d,OAnB+B,WAoB3B,OAAOthf,KAAKwiB,OAAOqC,OAAO,aAE9B08d,uBAtB+B,SAsBRx/c,GACnB/hC,KAAKwiB,OAAOqC,OAAO,CACf89R,iBAAkB5gR,EAAOqhR,YACzBR,iBAAkB7gR,EAAO2V,UAGjCnc,MA5B+B,WA6B3Bv7B,KAAKwiB,OAAO+Y,SAEhBx6B,MA/B+B,WAgC3Bf,KAAKwiB,OAAOzhB,WAGpB,oCChBIwhT,EAA0B,QAE1BC,EAA4B,UAC5B28L,EAAYptR,EAAAA,QAAAA,QAAqB,CACjCsyB,aAAc,SAASjqO,GACnBpa,KAAKuxN,SAASvrM,MAAMhmB,KAAM+H,WAC1B/H,KAAK6kB,OAAOm+R,EAAAA,QAAAA,sBAAuC5oS,KAEvDq4M,mBALiC,WAM7B,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3BtpM,gBAAiB,MAGzBuqD,MAViC,WAW7BxyE,KAAKuxN,WACLvxN,KAAKo/e,yBACLp/e,KAAKuuC,SAAUkvM,EAAAA,EAAAA,KACfz9O,KAAKwhf,eACLxhf,KAAK6iT,gBAAkB,CACnBh0S,OAAQ,KACRm8B,SAAU,KACVy2c,gBAAgB,IAGxBrC,uBArBiC,WAsB7B,IAAI10d,EAAQ1qB,KAAKs6U,aACZt6U,KAAKygf,eACNzgf,KAAKs4B,GAAG,aAAc,SAAS9R,GAC3Bw8R,EAAAA,QAAAA,0BAA2Cx8R,EAAK6H,UAAUyvd,iBAAkBt3d,EAAK6H,cAGpFruB,KAAKygf,eAAiBzgf,KAAK89e,mBAAqBpzd,IACjDs4R,EAAAA,QAAAA,0BAA2ChjT,KAAK89e,iBAAkB99e,MAClEA,KAAKygf,eAAgB,EACrBzgf,KAAK89e,iBAAmBpzd,EACxBs4R,EAAAA,QAAAA,yBAA0Ct4R,EAAO1qB,QAGzDmzN,uBAnCiC,WAoC7BnzN,KAAKuxN,YACLzoN,EAAAA,EAAAA,GAAO9I,KAAKozN,oBAAqB,CAC7BonH,iBAAiB,KAGzBknK,WAzCiC,WA0C7B,IAAI5hf,EAAUE,KAAK6Z,WAAW,GAC9B,OAAOuwN,EAAAA,EAAAA,IAAYtqO,EAAS,yBAEhC0hf,aA7CiC,WA6ClB,WACPG,EAAmB3hf,KAAK0hf,aACxBl5R,EAAUxoN,KAAK6kB,OAAO,WAC1B,IAAK2jM,EAAS,CACV,GAAIm5R,EASA,OARAn5R,EAAU,IAAI24R,EAAeQ,EAAkB3hf,OACvCohf,4BAA4Bxgf,MAAK,SAAA4lB,GACjC,EAAKq8R,gBAAgB4+L,gBAGzB,EAAK9ta,SAASntD,WAElBxmB,KAAK6kB,OAAO,UAAW2jM,GAG3B,MAAMyZ,EAAAA,EAAAA,MAAa,SAEvB,IAAIvxM,EAAY83L,EAAQ44R,4BACpB1wd,GACAA,EAAU9vB,MAAK,SAAA4lB,GACX,EAAKmtD,SAASntD,OAI1BmkO,oBArEiC,SAqEb56F,GAChB,IAAI6xV,EAAuB5mN,EAAc6mN,EACrC9va,EAAa,QAAU6va,EAAwB,QAAU5mN,EAAeh7R,KAAK6kB,OAAO,kBAAe,IAAWm2Q,GAAwB,QAAU6mN,EAAsB7mN,EAAax4Q,cAAW,IAAWq/d,OAA5E,EAA2GA,EAAoBh9d,OAAO,qBAAkB,IAAW+8d,EAAwBA,EAAwB7xV,EACpV/vJ,KAAKuxN,SAASx/I,IAElB04K,YA1EiC,WA2E7BzqP,KAAK6Z,WAAW4F,SA/EF,gBAgFdzf,KAAKuxN,YAETuK,QA9EiC,WA+E7B97N,KAAKuxN,WACLvxN,KAAK8hf,kCAETA,+BAlFiC,WAmF7B,IAAIH,EAAmB3hf,KAAK0hf,aAC5B,GAAIC,EAAkB,CAClB,IACIxyd,GADQnvB,KAAK6kB,OAAO,oBAAsB,IACvBtC,MAAK,SAAAykO,GAIxB,MAAO,aADHA,EADArjO,SAGF,KACFg+d,EAAiB9ge,iBACjB8ge,EAAiB/gK,QAAQ,WAAYzxT,GAEzCwyd,EAAiB98d,OAAO,qBAAqB,WACzC88d,EAAiB/gK,QAAQ,WAAYzxT,QAIjD26N,mBApGiC,SAoGdjhP,GACXA,GACA7I,KAAKo/e,0BAGbljR,eAzGiC,SAyGlB11M,GACX,OAAQA,EAAKhZ,MACT,IAAK,kBAED,YADAxN,KAAKo/e,yBAET,IAAK,kBAID,OAHAp/e,KAAK+hf,wBACL/hf,KAAK8hf,2CACL,IAAW9hf,KAAK6kB,OAAO,YAAc7kB,KAAK2zE,YAE9C,IAAK,UACD3zE,KAAKwhf,eACL,MACJ,IAAK,UACL,IAAK,mBACDxhf,KAAK6kB,OAAOm+R,EAAAA,QAAAA,6BAA8Cx8R,EAAMxmB,KAAK6kB,WACrE,MACJ,QACI7kB,KAAKuxN,SAAS/qM,KAG1Bw7d,oBA9HiC,WA8HX,WAOlB,OANKhif,KAAKiif,mBACNjif,KAAKiif,kBAAmB/7e,EAAAA,EAAAA,IAAIlG,KAAK6kB,OAAO,oBAAoB,SAAC4uD,EAAM5yE,GAAP,OAAiBiI,EAAAA,EAAAA,GAAO,GAAI2qE,EAAM,CAC1FC,UAAW,EACX7yE,MAAOA,QAGRb,KAAKiif,kBAEhB3nK,WAvIiC,WAwI7B,IAAIzgU,EAAW7Z,KAAK6Z,WACpB,OAAO7Z,KAAK6kB,OAAO,oBAAsBm+R,EAAAA,QAAAA,UAA2BnpS,EAAU7Z,KAAKwrP,gBAAgB3xO,KAEvGkoe,sBA3IiC,kBA4ItB/hf,KAAKiif,kBAEhBtua,SA9IiC,SA8IxBntD,GAAM,IAWP3X,EAXO,OACP25M,EAAUxoN,KAAK6kB,OAAO,WACtBrX,EAAOxN,KAAK6kB,OAAO,QACnBy8d,EAAS94R,EAAQ84R,QAAU94R,EAAQ84R,SACnC1/e,EAAQ4kB,QAAQ,IAAWA,EAAK5kB,MAAQ4kB,EAAK5kB,MAAQ4mN,EAAQ5qL,WAC7Dskd,EAAe15R,EAAQ64R,2BAA6B74R,EAAQ64R,4BAC5DpoZ,EAAQj5F,KAAKgif,sBACbj/L,EAAgB/iT,KAAK6iT,iBAAmB7iT,KAAK6iT,gBAAgBh0S,OACjE,OAAIk0S,GAAiBA,EAAcrrQ,SAAW8qQ,GAA6BO,EAAcnhT,QAAUA,GACxFkH,EAAAA,EAAAA,GAAO,GAAIi6S,IAGlBu+L,EACAzye,EAAS,CACLqhB,SAAS,EACTwnB,OAAQ6qQ,GAEL2/L,GAAgBA,EAAajmH,gBACpCimH,EAAaxua,UAAY1zE,KACzB6O,EAAS,CACLqhB,SAAS,EACTwnB,OArKgB,UAsKhBs9B,WAAYkta,EACZ9+L,YAAa,CAAC8+L,KAGlBrze,EAASm0S,EAAAA,QAAAA,SAA0BphT,EAAOq3F,EAAOzrF,GAErDqB,EAAO5E,IAAM,IAAIknP,EAAAA,GAAM1iP,WACvBzO,KAAKijT,uBAAuBp0S,EAAQ25M,GACpC35M,EAAOo1N,UAAYp1N,EAAOo1N,SAASzlL,MAAK,SAAA6iB,GAChCA,EAAIp3D,KAAO,EAAK44S,gBAAgBh0S,OAAO5E,IACvC,EAAKg5S,uBAAuB5hP,EAAKmnJ,OAGlC1/M,EAAAA,EAAAA,GAAO,GAAI9I,KAAK6iT,gBAAgBh0S,UAE3C0sB,MAnLiC,WAoL7B,IAAIitL,EAAUxoN,KAAK6kB,OAAO,WACtBhW,EAAS,CACT5E,GAAI,KACJimB,SAAS,EACT8kD,WAAY,KACZouO,YAAa,KACbF,aAAc,KACdxrQ,OAAQ6qQ,EACRt+E,SAAU,MAEdjkO,KAAK6iT,gBAAgB4+L,gBAAiB,EACtCj5R,EAAQjtL,QACRv7B,KAAK6iT,gBAAgB4+L,gBAAiB,EACtCzhf,KAAK+hf,wBACL/hf,KAAKijT,uBAAuBp0S,EAAQ25M,IAExCs6F,wBApMiC,SAoMTj0S,GACpB,GAAK7O,KAAK6iT,gBAAgBh0S,QAAU7O,KAAK6iT,gBAAgBh0S,OAAO5E,KAAO4E,EAAO5E,GAM1E,IAAK,IAAIw8G,KAAQ53G,EACT,OAAS43G,GAAQ,aAAeA,IAChCzmH,KAAK6iT,gBAAgBh0S,OAAO43G,GAAQ53G,EAAO43G,QAR2B,CAC9E,IAAIw9G,EAAWjkO,KAAK6iT,gBAAgB73Q,UAAYhrC,KAAK6iT,gBAAgBh0S,OAAOo1N,SAC5EjkO,KAAK6iT,gBAAgBh0S,QAAS/F,EAAAA,EAAAA,GAAO,GAAI+F,EAAQ,CAC7Co1N,SAAUA,MAUtBg/E,uBAlNiC,SAkNVp0S,EAAQ25M,GAC3B,IAAI25R,EAAkBnif,KAAKw7N,sBAAsB,cAAe,CAC5D6b,kBAAmB,CAAC,cAQxB,GANAxoO,EAAO6kE,UAAY1zE,KACnBA,KAAK8iT,wBAAwBj0S,GAC7B25M,EAAQ+4R,wBAA0B/4R,EAAQ+4R,uBAAuBvhf,KAAK6iT,gBAAgBh0S,QACtF7O,KAAK6kB,OAAO,CACR+9R,iBAAkB5iT,KAAK6iT,gBAAgBh0S,OAAO6oC,SAE9C13C,KAAK6iT,gBAAgBh0S,OAAO6oC,SAAW8qQ,EAMvC,OALKxiT,KAAK6iT,gBAAgB73Q,WACtBhrC,KAAK6iT,gBAAgB73Q,SAAW,IAAIwnL,EAAAA,GACpCxyN,KAAK6iT,gBAAgBh0S,OAAOo1N,SAAWjkO,KAAK6iT,gBAAgB73Q,SAASx6B,gBAEzExQ,KAAKs9O,gBAAgB+B,UAAU,aAAc,CAACr/O,KAAK6iT,gBAAgBh0S,SAGnE7O,KAAK6iT,gBAAgBh0S,OAAO6oC,SAAW8qQ,IACvC2/L,EAAgBtze,GACZ7O,KAAK6iT,gBAAgB73Q,WACrBhrC,KAAK6iT,gBAAgB73Q,SAAS56B,QAAQvB,GACtC7O,KAAK6iT,gBAAgB73Q,SAAW,QAI5CjqC,MA5OiC,WA6O7B,IAAIynN,EAAUxoN,KAAK6kB,OAAO,WAC1B2jM,GAAWA,EAAQznN,OAASynN,EAAQznN,SAExCyoP,cAAe,WACX,OAAO,MAGflpO,EAAAA,EAAAA,SAAkB,cAAe6+d,GACjC,uJC1QIiD,EAAc,SAAStif,EAASg/I,GAChC,IAoBJ,SAAiBh/I,GACb,IAAI+Z,GAAWnM,EAAAA,EAAAA,GAAE5N,GACjB,OAAO+Z,EAASigB,GAAG,aAAe,WAAajgB,EAASwB,IAAI,eAAiB,WAAaxB,EAASiL,UAAUzJ,IAAI,cAtB5GxS,CAAQ/I,GACT,OAAO,EAEX,IAAI+2P,EAAW/2P,EAAQ+2P,SAAS5zN,cAC5Bo/c,GAAoB74c,MAAMs1G,GAC1B85M,EAAa94V,EAAQsL,SACrBk3e,EAAiB,iDAAiDp/c,KAAK2zN,GACvE0rP,EAAc,MAAQ1rP,EAEtBmoD,EAAoBl/S,EAAQk/S,kBAQhC,OAPIsjM,GAAkBtjM,GACH45C,EACR2pJ,GACOzif,EAAQigE,MAERsib,GASf,IAAIz6e,EAAY,SAAS/G,EAAOf,GACnC,OAAOsif,EAAYtif,GAAS4N,EAAAA,EAAAA,GAAE5N,GAAS8f,KAAK,cAErCyjX,EAAW,SAASxiY,EAAOf,GAClC,IAAIg/I,GAAWpxI,EAAAA,EAAAA,GAAE5N,GAAS8f,KAAK,YAC/B,OAAQ4pB,MAAMs1G,IAAaA,GAAY,IAAMsjW,EAAYtif,EAASg/I,IAE3DvwG,EAAU,SAAS10B,GAC1B,IAAI/Z,GAAU4N,EAAAA,EAAAA,GAAEmM,GAAUgG,IAAI,GAC9B,OAAO+5M,EAAAA,EAAAA,iBAA4B95N,KAAaA,iEChChD0if,EAAgC,aAgBpC,KACIC,mBAhBqB,SAAA3if,GACrB,IACI4if,GADWh1e,EAAAA,EAAAA,GAAE5N,GACciK,QAAQ,YAAY6xB,OAAO4md,EAA+B,kBAAkB5md,OAAO4md,EAA+B,OAC7IG,GAAW/gf,EAAAA,EAAAA,MACf,IAAK8gf,EAAgBpif,OACjB,OAAOqif,EAEX,IAAIC,EAAmB,IAAI55b,OAAO,WAAWptB,OAAO4md,EAA+B,gBAC/EK,EAAcH,EAAgB,GAAGr0e,UAAUsT,MAAMihe,GAAkB,GACnEE,EAA0BH,EAAS53e,SAAS,IAAM83e,GAItD,OAHKC,EAAwBxif,SACzBwif,GAA0Bp1e,EAAAA,EAAAA,GAAE,SAAS+R,SAASoje,GAAa5qd,SAAS0qd,IAEjEG,kEChBX,KAAej1P,EAAAA,EAAAA,GAAW5rB,EAAAA,EAAAA,eAAuB,CAC7C8gR,MAAO,uDACPC,MAAO,2FACPC,MAAO,iDACPC,MAAO,+EACPC,MAAO,4CACPC,MAAO,yCACPC,MAAO,0EACPC,MAAO,mDACPC,MAAO,2FACPC,MAAO,wDACPC,MAAO,iEACPC,MAAO,4EACPC,MAAO,mCACPC,MAAO,kDACPC,MAAO,oDACPC,MAAO,0EACPC,MAAO,yEACPC,MAAO,uCACPC,MAAO,8GACPC,MAAO,sDACPC,MAAO,8CACPC,MAAO,4CACPC,MAAO,yDACPC,MAAO,oCACPC,MAAO,oCACPC,MAAO,kEACPC,MAAO,yCACPC,MAAO,0DACPC,MAAO,uFACPC,MAAO,6CACPC,MAAO,6DACPC,MAAO,yGACPC,MAAO,mEACPC,MAAO,mDACPC,MAAO,mDACPC,MAAO,iEACPC,MAAO,2FACPC,MAAO,mGACPC,MAAO,4EACPC,MAAO,oDACPC,MAAO,oFACPC,MAAO,0CACPC,MAAO,8EACPC,MAAO,4DACPC,MAAO,2DACPC,MAAO,iDACPC,MAAO,uCACPC,MAAO,2DACPC,MAAO,4CACPC,MAAO,oFACPC,MAAO,4EACPC,MAAO,oLACPC,MAAO,sDACPC,MAAO,0GACPC,MAAO,gFACPC,MAAO,wEACPC,MAAO,oFACPC,MAAO,sEACPC,MAAO,mDACPC,MAAO,6LACPC,MAAO,sMACPC,MAAO,6GACPC,MAAO,uIACPC,MAAO,qJACPC,MAAO,iLACPC,MAAO,sEACPC,MAAO,yDACPC,MAAO,4GACPC,MAAO,gCACPC,MAAO,6OC5DX,ICZ8BtyR,EDY1BuyR,GCZ0BvyR,EDYE,UCX5B,WACI,aACI,MADU,eACJ,IAAIz/K,MAAM,WAAWzZ,OAAOk5L,EAAe,gBAFzD,+CAII,gBAJJ,MDYJ,GACIrC,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B34I,WAAY,GACZH,WAAY,KACZu9C,YAAa,GACbx/F,eAAe,EACf8wd,oBAAqB,MAG7B78P,YAAa,WACTzqP,KAAKunf,gBACLvnf,KAAKuxN,YAETg2R,cAAe,WACX,IAAI1te,EAAW7Z,KAAK6Z,WAChB2c,EAAgBx2B,KAAK6kB,OAAO,iBAC5B2ie,EAAqBxnf,KAAK60N,iBAAiB,UAC3C4yR,EAAuBznf,KAAK60N,iBAAiB,eACjD,IAAKr+L,EAGD,OAFA3c,EAASge,YAAY4vd,QACrBznf,KAAKy5e,mBAGT,IAAI39c,EAAgB97B,KAAKs5e,0BACrBt5e,KAAKq5e,cACLr5e,KAAKq5e,cAAcx0d,OAAOiX,IAE1BjiB,EAAS4F,SAASgoe,GAClBznf,KAAK0nf,uBAAwBh6e,EAAAA,EAAAA,GAAE,SAAS+R,SAAS+ne,GAAoBx/c,UAAUnuB,GAC/E7Z,KAAKq5e,cAAgBr5e,KAAKonP,iBAAiBpnP,KAAK0nf,sBAAuBL,EAAavrd,KAG5F29c,iBAAkB,WACdz5e,KAAK0nf,uBAAyB1nf,KAAK0nf,sBAAsBlmf,gBAClDxB,KAAK0nf,6BACL1nf,KAAKq5e,eAEhBC,wBAAyB,WACrB,IAAI1jT,EAAO51L,KACP2nf,EAAoB/xT,EAAK/wK,OAAO,uBAChC+ie,EAAazqL,EAAAA,EAAAA,OAA2B,UAC5C,OAAOr0T,EAAAA,EAAAA,GAAO,CACVu7D,KAAM,SACNzrC,YAAagvd,EACb9oW,SAAU82C,EAAK/wK,OAAO,YACtBjjB,MAAOg0L,EAAK/wK,OAAO,eACnB+ib,iBAAkB,QAClBtjY,UAAW,CACP,aAAcsjb,GAElBrvY,eAAgB,SAAS/3G,GACrB,IAAI+4G,EAAgBq8E,EAAK/wK,OAAO,iBAChC+wK,EAAKiyT,qBAAuB,IAAIr1R,EAAAA,GAChCt0L,aAAa03J,EAAKkyT,qBAClBlyT,EAAKiyT,qBAAqBzud,KAAK,WAC3Bp5B,KAAK6kB,OAAO,cAAerkB,EAAEoB,QAC/B6I,KAAKmrL,IACHp1L,EAAEga,OAAS,UAAYha,EAAEga,MAAMmJ,MAAQ41F,EACvCq8E,EAAKkyT,oBAAsBjlf,YAAY,WACnC+yL,EAAKiyT,qBAAqBz3e,YAC1BmpG,GAEJq8E,EAAKiyT,qBAAqBz3e,YAGnCu3e,IAEPI,eAAgB,WACZ,OAAI/nf,KAAK6kB,OAAO,iBACL7kB,KAAK24U,gBAAe,GAExB34U,KAAKuxN,YAEhBw3E,aAAc,WACV,OAAI/oS,KAAK6kB,OAAO,iBACL7kB,KAAK24U,gBAAe,GAExB34U,KAAKuxN,YAEhB0uI,kBAAmB,SAASz/V,EAAG2xI,GACvBnyI,KAAK6kB,OAAO,kBACZ7kB,KAAK88V,kBAAkB3qN,EAAWnyI,KAAK6Z,YAE3C7Z,KAAKuxN,SAAS/wN,EAAG2xI,IAErB61W,yBAA0B,SAASpva,GAC/B,MAAO,WAAaA,EAAa,IAAMA,GAE3CsjJ,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,gBACL,IAAK,sBACDxN,KAAK0rP,cACL,MACJ,IAAK,aACL,IAAK,aACL,IAAK,cACD,IAAK1rP,KAAK65R,YAEN,YADA53D,EAAAA,EAAAA,IAAW,SAGX,eAAiBz7M,EAAKhZ,KACtBxN,KAAK65R,YAAYlJ,gBAAgB3wR,KAAKgof,yBAAyBxhe,EAAK5kB,QAEpE5B,KAAK65R,YAAYrzQ,EAAKhZ,MAAMgZ,EAAK5kB,OAErC5B,KAAK65R,YAAYjtR,OACjB,MACJ,IAAK,gBACD,MACJ,QACI5M,KAAKuxN,SAAS/qM,KAG1BzlB,MAAO,WACEf,KAAK6kB,OAAO,oBAAqB7kB,KAAK6kB,OAAO,iBAIlD7kB,KAAKuxN,WAHDvxN,KAAKq5e,eAAiBr5e,KAAKq5e,cAAct4e,SAKjDknf,WAAY,WACR,IAAIpue,EAAW7Z,KAAK6Z,WACpB7Z,KAAK4gV,QAAQ,CACTpuM,KAAM,KACNm3T,iBAAkB,MACnB9vb,GACHA,EAAS+F,KAAK,WAAY,OAE9B2rO,OAlIW,WAmIPvrP,KAAKuxN,WACLvxN,KAAKiof,cAETr8P,SAAU,WACF5rP,KAAK6nf,sBACL7nf,KAAK6nf,qBAAqBz3e,UAE9BpQ,KAAKuxN,YAET22R,eAAgB,SAAStmf,GACrBylf,EAAczlf,+MEvHtB,SAASd,EAAa0M,EAAM5L,EAAOgF,GAC/B4G,EAAO,SAAWA,GAAQ,OAASA,EAAOA,EAAO,QAAQouB,OAAOpuB,GAChE5L,GAAQ+mD,EAAAA,EAAAA,IAAU/mD,GAASA,EAAM6M,WAAa,KAC9C7H,EAAOgZ,KAAKpS,EAAM5L,GAEtB,IAAIkgT,EAAS/vF,EAAAA,QAAAA,QAAqB,CAC9Bq+G,qBAAsB,IACtBC,qBAAsB,GACtBia,eAAgB,iBAAO,IACvB73H,mBAJ8B,WAK1B,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B42R,eAAgB,KAChB5lN,UAAU,EACVn3R,UAAU,EACVvC,SAAS,EACT+kB,UAAM,EACNy/S,oBAAoB,EACpBx8S,eAAgB,KAChB08S,mBAAmB,EACnBD,mBAAmB,EACnBxuL,SAAU,EACV20L,eAAW,EACXzhO,UAAW,KACXD,WAAY,KACZy5N,kBAAmB,KACnBikJ,sBAAsB,EACtB9zR,mBAAmB,KAG3BinD,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,IAAIA,EAASjW,EAAAA,QAAAA,OACTxpG,EAAWy/G,EAAOz/G,SAClBmK,EAAUs1G,EAAOt1G,QACrB,MAAO,QAAUnK,IAAYsmT,EAAAA,EAAAA,GAAgBn8S,EAAS,SAAW,GAErE1uH,QAAS,CACLuhL,mBAAmB,OAI/BnpH,MArC8B,WAsC1BxyE,KAAKuxN,WACLvxN,KAAKooc,2BAETl5D,0BAA2B,SAAS95C,EAAa5uU,GAC7C,IAAIpM,EAAU0nS,EAAOsmM,wBAAwB5he,GAC7C4uU,GAAeA,EAAYvwU,OAAOzK,GAClCpa,KAAKmhB,SAASw+B,MAAMn5B,EAAKhZ,KAAM4M,IAEnCowX,wBA9C8B,SA8CNp1C,EAAaC,GAAkB,WAC/CE,EAAc,kBAAM,EAAKp0U,SAASqlO,OAAO6uG,GAAkBvsV,EAAAA,EAAAA,GAAO,GAAIssV,EAAYvwU,YACtF0wU,IACAH,EAAY98T,GAAG,gBAAiBi9T,IAEpCwyJ,eAnD8B,WAoD1B,OAAO/nf,KAAK+oS,gBAEhBq/J,wBAtD8B,WAuD1Bpoc,KAAKuoc,oBAAsBvoc,KAAKw7N,sBAAsB,iBAAkB,CACpE6b,kBAAmB,CAAC,WAAY,eAGxCoT,YA3D8B,WA4D1B,MAGIzqP,KAAK6kB,SAFKzZ,EADd,EACIA,SACSvC,EAFb,EAEIA,QAEJ7I,KAAK6Z,WAAW4F,SAAS,aACzBzf,KAAKorZ,qBAAqBhgZ,GAC1BpL,KAAKg8Y,kBAAkBnzY,GACvB7I,KAAKqof,cACLrof,KAAKsof,gBAAkBtof,KAAK+kV,qBAC5B/kV,KAAKuxN,YAETuK,QAvE8B,WAwE1B97N,KAAKuxN,WACLvxN,KAAKu+V,iBACLv+V,KAAKqgX,oBACLrgX,KAAKuof,wBACLvof,KAAKsgX,qBACLtgX,KAAKwof,2BAETH,YA/E8B,WAgF1B,IACUz6d,EACN5tB,KAAK6kB,SADL+I,KAEJ5tB,KAAK6Z,WAAW+F,KAAK,QAASgO,GAAQ,OAE1C2wU,eArF8B,WAqFb,YACbr+F,EAAAA,EAAAA,cAAY,kBAAO,EAAKrb,eAAwC,EAA5B,EAAKq6G,wBAA+B9lU,MAAK,kBAAO,EAAKyrN,eAA6C,EAAjC,EAAKs6G,8BAE9GD,mBAAoBltI,EAAAA,KACpBmtI,yBAAyB/+F,EAAAA,EAAAA,gBAAe,WACpC,OAAOpgQ,KAAKuoc,yBAEhBlsO,SA5F8B,WA6F1Br8N,KAAKuoc,oBAAsB,KAC3Bvoc,KAAKgoY,wBACLhoY,KAAKuxN,YAETiiI,kBAjG8B,WAkG1BxzV,KAAK4pZ,mBAAmB5pZ,KAAK0ta,uBAAuB,IAExDniL,OApG8B,WAqG1BvrP,KAAK0+V,mBACL1+V,KAAKwzV,oBACLxzV,KAAKuxN,WACLvxN,KAAK6Z,WAAW4wD,SAEpBuxU,kBA1G8B,SA0GZnzY,GACd7I,KAAK6Z,WAAW28M,YAAY,sBAAuB3tN,IAEvDw3W,kBA7G8B,WA8G1BrgX,KAAKgtY,wBACDhtY,KAAKsof,iBACLtof,KAAK+kV,qBACL/kV,KAAKyof,qBACLzof,KAAK0of,qBAGbA,iBArH8B,WAsH1B,IAAI1te,EAAMhb,KAAK+oS,eAEA0qC,EACXzzU,KAAK6kB,SADL4uT,UAEJz4T,EAAI4E,KAAK,YAAa6zT,IAE1B60K,aA5H8B,WA6H1B,MAGItof,KAAK6kB,SAFcyoT,EADvB,EACIA,kBACUliU,EAFd,EAEIA,SAEJ,OAAOkiU,IAAsBliU,GAEjCsia,oBAnI8B,WAoI1B,OAAO1ta,KAAK6Z,YAEhBkvR,aAtI8B,WAuI1B,OAAO/oS,KAAK87V,qBAEhBR,eAAgB,SAASx7V,GAErB,OADmB4N,EAAAA,EAAAA,GAAE1N,KAAK+oS,gBAAgBjvE,UACtBh+F,SAASh8H,IAEjC87V,kBA7I8B,SA6IZ/hV,GACd,OAAOA,EAASwC,KAAKrc,KAAK6pV,kBAAkBzzF,IAAI,uBAEpD0lG,kBAhJ8B,WAiJ1B,IAAIp0V,EAAgB1H,KAAK0ta,sBACzB,OAAI1ta,KAAK6pV,iBACE7pV,KAAK47V,kBAAkBl0V,GAE3BA,GAEXq9U,mBAvJ8B,WAwJ1B,IACcjmM,EACV9+I,KAAK6kB,SADLi6H,SAEJ9+I,KAAK+oS,eAAenpR,KAAK,WAAYk/H,IAEzCgrP,4BA7J8B,WA8J1B,OAAO9pY,KAAK0ta,uBAEhBikC,mBAhK8B,WAiK1B3xc,KAAK0nY,qBACL1nY,KAAKyof,sBAETnzB,kBApK8B,WAqK1B,OAAOt1d,KAAK+oS,gBAEhB0qD,gBAvK8B,SAuKdj5U,GAAO,WACdA,EAAMiiR,sBACPz8R,KAAKw7N,sBAAsB,YAAa,CACpCwb,cAAe,kBAAM,EAAKipH,kBAAkBzlV,GAAO,IACnD68N,kBAAmB,CAAC,aAFxBr3O,CAGG,CACCwa,MAAOA,KAInBk5U,iBAjL8B,SAiLbl5U,GAAO,WACfA,EAAMiiR,sBACPz8R,KAAKw7N,sBAAsB,aAAc,CACrCwb,cAAe,kBAAM,EAAKipH,kBAAkBzlV,GAAO,IACnD68N,kBAAmB,CAAC,WAAY,aAFpCr3O,CAGG,CACCwa,MAAOA,KAInBylV,kBA3L8B,SA2LZj5G,EAAM70G,GACpB,IACYvrI,EACRogP,EADApgP,OAEA5G,KAAKs7V,eAAe10V,IACpB5G,KAAK88V,kBAAkB3qN,GAAWzkI,EAAAA,EAAAA,GAAE9G,KAG5Ck2V,kBAnM8B,SAmMZ3qN,EAAWt4H,IACNA,GAAYA,EAASvZ,OAASuZ,EAAW7Z,KAAK+oS,gBACpDvyE,YAAY,mBAAoBrkF,IAEjDwjP,eAvM8B,SAuMf71X,GAEX,OADmB4N,EAAAA,EAAAA,GAAE5N,GAAWE,KAAK+oS,gBACjBh5E,SAAS,qBAEjC88O,WA3M8B,WA4M1B,OAAO7sc,KAAK21X,kBAEhB1mC,sBAAuB,iBAAM,IAC7B+9C,sBA/M8B,WA+MN,WACpBhtY,KAAKgoY,wBACL,MAGIhoY,KAAK6kB,SAFcyoT,EADvB,EACIA,kBACmB9B,EAFvB,EAEIA,kBAEAm9K,EAAoB3of,KAAKivV,wBAAwB3uV,QAElCgtU,GAAqBq7K,KADRn9K,KAG5BxrU,KAAK+7W,oBAAsB5iE,EAAAA,GAAAA,GAAYn5S,KAAK8pY,8BAA+B9pY,KAAK+oS,gBAAgB,SAAA//K,GAAI,OAAI,EAAKkuP,iBAAiBluP,QAGtIkuP,iBA5N8B,SA4Nb98V,EAASwue,GACtB,IAAKA,EAAqB,CACtB,IACmBxwY,EAGfh+F,EAHAg+F,cACSowL,EAETpuR,EAFAouR,QACOtrP,EACP9iC,EADA8iC,MAEAn2C,EAAO/G,KAAKsqV,eAAelyO,GAC3Bj2D,EAAOp7C,EAAKyhS,IAAYzhS,EAAKm2C,GACjC,QAAI,IAAWiF,EAGX,IAFcA,EAAK13C,KAAKzK,KACXO,CAAQ63G,EAAeh+F,GAEhC,OAAO,EAInB,IAAIyue,EAAoB7of,KAAKivV,wBAENzjB,EACnBxrU,KAAK6kB,SADL2mT,kBAIJ,OAFAq9K,EAAkB5of,SAAQ,SAAAI,GAAQ,OAAIA,GAAYA,EAAS62W,iBAAiB98V,MAC5EoxT,GAAqBA,EAAkBpxT,IAChC,GAEX40X,mBArP8B,WAsP1BhvY,KAAK0+V,mBACL1+V,KAAKqgX,qBAET3hB,iBAzP8B,WA0PX1+V,KAAK+oS,eACXnxQ,WAAW,YACpB53B,KAAK88V,mBAAkB,GACvB98V,KAAK0nY,qBACL1nY,KAAKgoY,yBAETA,sBAhQ8B,WAiQ1B7uF,EAAAA,GAAAA,IAAan5S,KAAK+7W,qBAClB/7W,KAAK+7W,oBAAsB,MAE/BuE,mBApQ8B,WAoQT,WAEM/yC,EACnBvtU,KAAK6kB,SADL0oT,kBAEAhkT,EAAWvpB,KAAK6pV,iBAChB7uU,EAAMhb,KAAK0ta,sBACfl1H,EAAAA,GAAAA,IAAUx9R,EAAK,CACXuO,SAAUA,EACVwwN,UAAW,eAEXwzF,GACA/0B,EAAAA,GAAAA,GAASx9R,EAAK,IAAI87N,EAAAA,GAAO,SAAAqR,GACrB,IACW3tO,EAEP2tO,EAFA3tO,MACS1a,EACTqoP,EADAroP,QAEJ,EAAKgpf,mBAAmBtue,GACxB,EAAKqK,OAAO,kBAAkBnX,EAAAA,EAAAA,GAAE5N,MACjC,CACCu3O,kBAAmB,CAAC,eACpB,SAAA78N,GACA,EAAKqK,OAAO,iBAAkB,MAC9B,EAAKkke,iBAAiBvue,KACvB,CACC+O,SAAUA,EACVwwN,UAAW,gBAIvBwuQ,sBAjS8B,WAiSN,WAEIl7K,EACpBrtU,KAAK6kB,SADLwoT,mBAEA9jT,EAAWvpB,KAAK6pV,iBAChB7uU,EAAMhb,KAAK0ta,sBACfviZ,EAAAA,GAAAA,IAAWnQ,EAAK,CACZ++N,UAAW,aACXxwN,SAAUA,IAEV8jT,GACAliT,EAAAA,GAAAA,GAAUnQ,EAAK,IAAI87N,EAAAA,GAAO,SAAA8R,GACtB,IACWpuO,EAEPouO,EAFApuO,MACS1a,EACT8oP,EADA9oP,QAEJ,OAAO,EAAK8pZ,oBAAmBl8Y,EAAAA,EAAAA,GAAE5N,IAAU,EAAM0a,MACjD,IAAIs8N,EAAAA,GAAO,SAAA6hE,GACX,IACWn+R,EAEPm+R,EAFAn+R,MACS1a,EACT64S,EADA74S,QAEJ,OAAO,EAAK8pZ,oBAAmBl8Y,EAAAA,EAAAA,GAAE5N,IAAU,EAAO0a,KACnD,CACC68N,kBAAmB,CAAC,WAAY,cAChC,CACAihE,YAAat4S,KAAKqwU,qBAClB93B,YAAav4S,KAAKowU,qBAClB7mT,SAAUA,EACVwwN,UAAW,gBAIvB2tJ,mBAlU8B,WAmU1B,IAAI1sX,EAAMhb,KAAKs1d,oBACfv0d,EAAAA,GAAAA,IAAUia,EAAK,CACX++N,UAAW,GAAGn+M,OAAO57B,KAAK+0N,KAAM,YAGxC0zR,mBAxU8B,WAwUT,WACbzte,EAAMhb,KAAKs1d,oBACfv0d,EAAAA,GAAAA,GAASia,GAAK,SAAAxa,GAAC,OAAI,EAAKizV,gBAAgBjzV,MAAI,SAAAA,GAAC,OAAI,EAAKkzV,iBAAiBlzV,KAAI,CACvEu5O,UAAW,GAAGn+M,OAAO57B,KAAK+0N,KAAM,SAChC6+G,YAAa,SAAC/yU,EAAO2H,GAAR,OAAekF,EAAAA,EAAAA,GAAElF,GAAIsxB,GAAGkvd,EAAAA,QAG7CF,mBAAoB92R,EAAAA,KACpB+2R,iBAAkB/2R,EAAAA,KAClB43L,mBAjV8B,SAiVX/vY,EAAUjY,GACzB5B,KAAK6kB,OAAO,WAAYjjB,GACxBiY,EAAS28M,YAAY,kBAAmB50N,IAE5Cqnf,cArV8B,WAsV1B,IAAId,EAAiBnof,KAAKmhB,SAASqlO,OAAO,kBAC1CxmP,KAAKkpf,OAAOf,EAAgBA,IAEhCgB,iBAzV8B,SAyVbnue,GACb,OAAOA,GAAOA,EAAIjR,QAAQ/J,KAAK6pV,kBAAoB7pV,KAAK0ta,wBAE5Dw7E,OA5V8B,SA4VvBlue,EAAKoue,GACR,MAIIppf,KAAK6kB,SAHc0oT,EADvB,EACIA,kBACUniU,EAFd,EAEIA,SACUm3R,EAHd,EAGIA,SAIJ,IAFA6mN,EAAYppf,KAAKmpf,iBAAiBC,KACrBA,EAAU5yR,YAAY,kBAAkB,GACjDx7M,GAAOuyT,IAAsBniU,IAAam3R,EAAU,CACpD,IAAI8mN,EAAoBrpf,KAAKmpf,iBAAiBnue,GAC9Cque,GAAqBA,EAAkB7yR,YAAY,kBAAkB,KAG7E40L,qBAzW8B,SAyWTxpZ,GACjB5B,KAAK6Z,WAAW28M,YAAY,oBAAqB50G,QAAQhgH,IACzD5B,KAAK4gV,QAAQ,WAAYh/U,QAAS,IAEtC4mf,wBA7W8B,WA8W1Bxof,KAAK6Z,WAAW28M,YAAY,uBAAwBx2N,KAAK6kB,OAAO,0BAEpEonX,iBAhX8B,SAgXbhlJ,EAAYzgO,GAAM,WAC/B,GAAKxmB,KAAKinP,GAGV,IAAIlsK,EAAAA,EAAAA,IAAcv0D,EAAK,KACnB/L,EAAAA,EAAAA,IAAK+L,EAAK,IAAI,SAAC3B,EAAQjjB,GAAT,OAAmB,EAAKqqY,iBAAiBhlJ,EAAY,CAACpiO,EAAQjjB,WADhF,CAIA,IAAIokP,EAAax/N,EAAK,GAClB5kB,EAAQ4kB,EAAK,GACb,IAAMA,EAAKlmB,SACXsB,EAAQ5B,KAAK6kB,OAAOmhO,IAExB,IAAIsjQ,EAAkBtpf,KAAK,GAAG47B,OAAOqrN,EAAY,cACjDjnP,KAAKinP,GAAYpiO,OAAOyke,EAAkBA,EAAgBtjQ,GAAcA,EAAYpkP,KAExFs6N,eAhY8B,SAgYf11M,GACX,IACUhZ,EAGNgZ,EAHAhZ,KACO5L,EAEP4kB,EAFA5kB,MACe42G,EACfhyF,EADAgyF,cAEJ,OAAQhrG,GACJ,IAAK,WACDxN,KAAKorZ,qBAAqBxpZ,GAC1B5B,KAAKipf,gBACLjpf,KAAKgvY,qBACL,MACJ,IAAK,OACDhvY,KAAKqof,cACL,MACJ,IAAK,uBACDrof,KAAKwof,0BACL,MACJ,IAAK,qBACDxof,KAAKuof,wBACL,MACJ,IAAK,oBACDvof,KAAKsgX,qBACLtgX,KAAKipf,gBACL,MACJ,IAAK,WACL,IAAK,oBACDjpf,KAAKgvY,qBACL,MACJ,IAAK,YACL,IAAK,aACL,IAAK,oBACD,MACJ,IAAK,YACDhvY,KAAK0of,mBACL,MACJ,IAAK,iBACD1of,KAAKkpf,OAAOtnf,EAAO42G,GACnB,MACJ,IAAK,WACDx4G,KAAKipf,gBACL,MACJ,IAAK,UACDjpf,KAAKg8Y,kBAAkBp6Y,GACnB5B,KAAKirP,gCACLjrP,KAAKsrP,wBAAwB1pP,EAAQ,QAAU,UAEnD,MACJ,IAAK,oBACD5B,KAAKgtY,wBACL,MACJ,IAAK,iBACDhtY,KAAKooc,0BACL,MACJ,QACIpoc,KAAKuxN,SAAS/qM,KAG1Bk0F,WA1b8B,WA2b1B,IACa7xG,EACT7I,KAAK6kB,SADLhc,QAEJ,OAAO7I,KAAKuxN,YAAc1oN,GAE9B26O,YAhc8B,WAic1BxjP,KAAKu7R,QAAO,GACZv7R,KAAKuxN,YAET4yB,UApc8B,WAqc1BnkP,KAAKuxN,WACDvxN,KAAK2jP,cACL3jP,KAAKu7R,QAAO,IAGpBA,OA1c8B,SA0cvB35R,GACH,GAAI,IAAMmG,UAAUzH,OAChB,OAAON,KAAKupf,SAEhBvpf,KAAKupf,SAAW3nf,GAEpBg/U,QAhd8B,WAid1B,IAAK7lQ,EAAAA,EAAAA,IAAchzE,UAAUzH,QAAU,OAAI,EAASyH,UAAU,IAEvD,CACH,IAAInB,GAAUmB,UAAUzH,QAAU,OAAI,EAASyH,UAAU,KAAO/H,KAAK+nf,kBACrEtte,EAAAA,EAAAA,IAAK1S,UAAUzH,QAAU,OAAI,EAASyH,UAAU,IAAI,SAACyF,EAAM5L,GAAP,OAAiBd,EAAa0M,EAAM5L,EAAOgF,WAH/F9F,EAAaiH,UAAUzH,QAAU,OAAI,EAASyH,UAAU,GAAIA,UAAUzH,QAAU,OAAI,EAASyH,UAAU,IAAKA,UAAUzH,QAAU,OAAI,EAASyH,UAAU,KAAO/H,KAAK+nf,mBAM3KyB,QAxd8B,WAyd1B,OAAOxpf,KAAKu7R,UAEhBj2Q,QA3d8B,WA4d1BtlB,KAAK4rP,YAET7qP,MA9d8B,WA+d1BA,EAAAA,GAAAA,QAAcf,KAAK+oS,iBAEvBqmE,mBAje8B,SAieXpoW,EAAKzG,GACpB,IAAIy2c,EAAch3c,KAAKsqV,iBACvBtqV,KAAKsqV,eAAiB,kBAAMxhV,EAAAA,EAAAA,GAAOkuc,GAAD,UAC7Bhwc,EAAMzG,QAInBuhT,EAAOsmM,wBAA0B,SAAAxvM,GAC7B,IACUprS,EAGNorS,EAHAprS,KACUg4O,EAEVozD,EAFApzD,SACO5jP,EACPg3S,EADAh3S,MAEAwY,EAAU,GACV5M,IAASg4O,EACTprO,EAAUxY,EAGVwY,EADaorO,EAAS/3O,MAAM,KAAK2qC,OACfx2C,EAEtB,OAAOwY,GAEX,mLC1hBIqve,EAAkB,eAClBC,EAAuB,oBACvBC,EAA0B,uBAC1BC,EAAyB,sBAMlBluK,EAAa,WACpB,IAAIpsQ,EAASvnE,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,GAExD+0U,EAIlBxtQ,EAJAwtQ,iBACqBC,EAGrBztQ,EAHAytQ,oBACYF,EAEZvtQ,EAFAutQ,WACagtK,EACbv6a,EADAu6a,YAEJ,MAAO,CACH9sK,oBAAqBA,GAdO,EAe5BF,WAAYA,IAAc,EAC1BgtK,YAAaA,GAAe,EAC5BC,UAAWC,EAAa,OAASjtK,QAAoB,IAAWA,GAAmBA,KAGhFv9T,EAAS,SAASiH,GACzB,IAAI8oD,EAASosQ,EAAWl1T,GACxB,MAAO,CACHg1T,SAAUA,EAAS/wU,KAAKzK,KAAMsvE,GAC9BisQ,SAAUA,EAAS9wU,KAAKzK,KAAMsvE,KAUlC06a,EAAW,SAASlqf,EAAS+pf,GAG7B,IAFA,IAAII,EARW,SAASnqf,GACxB,IAAI+O,EAAS/O,EAAQiL,SAAS,iBAI9B,OAHI,IAAM8D,EAAOvO,SACbuO,GAASnB,EAAAA,EAAAA,GAAE,SAAS+R,SAASgqe,GAAiBxxd,SAASn4B,IAEpD+O,EAGSq7e,EAAax8e,EAAAA,EAAAA,GAAE5N,IAC3B+O,EAASo7e,EAAUl/e,SAAS,sBAA4B+uN,UACnD/tN,EAAI8C,EAAOvO,OAAQyL,EAAI89e,EAAa99e,IAAK,CAC9C,IAAIo+e,GAAez8e,EAAAA,EAAAA,GAAE,SAASuqB,SAASgyd,GAAWxqe,SAASiqe,GAC3D76e,EAAOjO,KAAKupf,EAAa,IAE7B,OAAOz8e,EAAAA,EAAAA,GAAEmB,IA4BN,SAAS2sU,EAASh1T,EAAM8oD,GAC3B,IAAI86a,EAAQJ,EAAS16a,EAAOxvE,QAAS0mB,EAAKqje,aAAajic,GAAG0nB,EAAO+6a,MAlE5C,GAmErB7je,EAAK8je,eAAiBpsd,aAAa1X,EAAK8je,eACxCC,EAAiBH,GACjBA,EAAM/ue,IA9Be,SAASmL,EAAM8oD,GACpC,IAKI52D,EACAI,EANAhZ,GAAU4N,EAAAA,EAAAA,GAAE4hE,EAAOxvE,SACnB24N,GAAeH,EAAAA,EAAAA,IAAcx4N,GAC7B44N,GAAgBF,EAAAA,EAAAA,IAAe14N,GAC/B0qf,EAAkBv0c,SAAStwB,KAAK+0H,KAAK+9E,EAAeA,EAAeC,EAAgBA,IACnF+xR,EAAW9ke,KAAKG,IA/CJ,IA+CuBmwB,SAASu0c,EAAkBhke,EAAKu2T,sBAGvE,GAAIv2T,EAAKq2T,WACLnkU,GAAQ+/M,EAAegyR,GAAY,EACnC3xe,GAAO4/M,EAAgB+xR,GAAY,MAChC,CACH,IAAIjwe,EAAQ80D,EAAO90D,MACf2L,EAAWrmB,EAAQyL,SAGvBmN,EAFQ8B,EAAMotB,MAAQzhB,EAASzN,KAEpB+xe,EAAW,EACtB3xe,EAFQ0B,EAAMstB,MAAQ3hB,EAASrN,IAErB2xe,EAAW,EAEzB,MAAO,CACH/xe,KAAMA,EACNI,IAAKA,EACLvH,OAAQk5e,EACRn5e,MAAOm5e,GAODC,CAAmBlke,EAAM8oD,IACnC9oD,EAAKmke,eAAiB9nf,WAAW+nf,EAAmBngf,KAAKzK,KAAMwmB,EAAM4je,GAAQ,GAGjF,SAASQ,EAAmBpke,EAAM4je,GAC9B,IAAIS,EAAcrke,EAAKsje,UAAUgB,aAAe,KAChDV,EAAM3qe,SAASkqe,GAAyBtue,IAAI,qBAAsBwve,GAGtE,SAASd,EAAajtK,GAClB,MAAO,CACHguK,aAAchuK,EAjFQ,IADL,IAmFjBiuK,YAnFiB,IAoFjBC,cApFiB,KAwFzB,SAAST,EAAiBH,GACtBA,EAAMvyd,YAAY+xd,GAAwBvue,IAAI,qBAAsB,IAEjE,SAASkgU,EAAS/0T,EAAM8oD,GAC3B9oD,EAAKmke,gBAAkBzsd,aAAa1X,EAAKmke,gBACzC,IAAIP,EAAQJ,EAAS16a,EAAOxvE,QAASwvE,EAAOu6a,aAAajic,GAAG0nB,EAAO+6a,MA3F9C,GA4FjBP,EAAYtje,EAAKsje,UACjBe,EAAcf,EAAUiB,YAAc,OAASjB,EAAUkB,cAAgB,KAC7EZ,EAAM3qe,SAASmqe,GAAwB/xd,YAAY8xd,GAAyBtue,IAAI,qBAAsBwve,GACtG,IAAIjiT,EAAoBjjL,KAAKC,IAAIkke,EAAUiB,YAAajB,EAAUkB,eAClExke,EAAK8je,cAAgBznf,WAAW0nf,EAAiB9/e,KAAKzK,KAAMoqf,GAAQxhT,8ECDpEqiT,8EAtGAC,EAASvle,KAAKo1B,MACdowc,EAAQxle,KAAK+iK,KAEb0iU,EAAW7lf,MAAMi2E,QAKjB6va,EAAkB,WAOlBC,GAAQ,eACPD,EAAkB,CACfE,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aALT,kBANQ,CAChBH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAEL,SAQR,gBAAiB,CACbH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAZT,SAcR,cAAe,CACXH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAlBT,kBAoBA,CACJH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAxBT,kBA0BA,CACJH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aA9BT,gBAgCF,CACFH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aApCT,iBAsCD,CACHH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aA1CT,mBA4CC,CACLH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAhDT,kBAkDA,CACJH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzFC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAtDT,mBAwDC,CACLH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aA5DT,SA8DR,YAAa,CACTH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAlET,SAoER,YAAa,CACTH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aAxET,SA0ER,cAAe,CACXH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,aA9ET,SAgFR,aAAc,CACVH,UAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,WACnEC,cAAe,CAAC,UAAW,UAAW,WACtCC,YAAa,CAAC,UAAW,WACzBC,YAAa,YApFT,GAwFL,SAASC,EAAen+e,GAC3B,QAAI,IAAWA,EACX,OAAOy9e,GAAsBI,EAE7B79e,GAAOo+e,EAAAA,EAAAA,eAAcp+e,GACrBy9e,EAAqBz9e,KAAQ89e,EAAW99e,OAAO,EAWhD,SAASq+e,EAAWC,EAASt6d,GAGhC,IAAI3iB,EAFJ2iB,EAAaA,GAAc,GAC3Bs6d,EAAUA,SAAY,IAAWb,EAAqBz5d,EAAWu6d,aAAeJ,KAEhF,IAAIhoe,EAAO6N,EAAW7N,KACtB,OAAIyne,EAASU,GACFA,EAAQrmf,MAAM,KAEjBumf,EAAAA,EAAAA,IAAUF,KACVj9e,EAASy8e,GAASM,EAAAA,EAAAA,eAAcE,KAE/Bj9e,IACDA,EAASy8e,EAASK,MAGnBhoe,EAAO9U,EAAO8U,GAAMle,MAAM,GAAKoJ,GA4B1C,SAASo9e,EAAQnsS,GACb,IAAIosS,EAAM,EACVlsf,KAAKs+C,KAAO,WACR,IAAI+iB,EAAMy+I,EAAIosS,KAId,OAHIA,IAAQpsS,EAAIx/M,QACZN,KAAKu7B,QAEF8lC,GAEXrhE,KAAKu7B,MAAQ,WACT2wd,EAAM,GAId,SAASC,EAA2BL,EAASt6d,GACzC,IAAI46d,EAAgB56d,EAAW66d,aA1KX,GA0K8C,EAC9DC,EAAe,IAAIL,EAAQ,CAAC,EAAGG,GAAgBA,IAC/CT,EAAiB,GAErB,SAASY,IACL,IAAIluc,EAAOiuc,EAAahuc,OACxBqtc,EAAiBttc,EA0MzB,SAA2Bmuc,EAAiBnuc,GACxC,IACItyC,EADA+/e,EAAU,GAEVn3Q,EAAK63Q,EAAgBlsf,OACzB,IAAKyL,EAAI,EAAGA,EAAI4oO,IAAM5oO,EAClB+/e,EAAQlrf,KAAK6rf,EAAYD,EAAgBzgf,GAAIsyC,IAEjD,OAAOytc,EAjNqBY,CAAkBZ,EAASztc,GAAQytc,EAAQrmf,MAAM,GAE7E,MAAO,CACHknf,SAAU,SAAS9rf,GACf,IAAIu4C,EAAQuyc,EAAe9qf,EAAQirf,EAAQxrf,QAI3C,OAHIO,EAAQirf,EAAQxrf,SAAWwrf,EAAQxrf,OAAS,GAC5Cisf,IAEGnzc,GAEXwzc,eAAgB,SAAS1za,GACrB,IAAI81H,EAAS,GACb91H,EAAQA,GAAS1nD,EAAW0nD,MAC5B,IAAK,IAAIntE,EAAI,EAAGA,EAAImtE,EAAOntE,IACvBijM,EAAOpuM,KAAKZ,KAAK2sf,SAAS5gf,IAE9B,OAAOijM,GAEXzzK,MAAO,WACH+wd,EAAa/wd,QACbgxd,MAoJL,SAASM,EAAcf,EAASt6d,EAAYs7d,GAC/C,IAAIC,EAAa,CACb3ue,QADa,WAETpe,KAAKgtf,mBAAqB,MAE9BC,aAJa,SAIA/za,GACT,OAAOl5E,KAAKgtf,mBAAmBL,SAAS3sf,KAAKyxW,gBAAiBv4R,IAElE0za,eAPa,SAOE1za,EAAO1nD,GAClB,OAAOxxB,KAAKgtf,mBAAmBJ,eAAe1za,GAAQ1nD,GAAc,IAAIg6F,SAE5EjwF,MAVa,WAaT,OAFAv7B,KAAKyxW,cAAgB,EACrBzxW,KAAKgtf,mBAAmBzxd,QACjBv7B,OAIXktf,IADJ17d,EAAaA,GAAc,IACK07d,eAAiB,IAAIjqd,cACjD+rK,EAAS68S,EAAWC,EAAS,CAC7Bnoe,KAAM6N,EAAW7N,MAAQ,YACzBooe,aAAce,IAUlB,OAPIC,EAAWC,mBADX,cAAgBE,EACgBf,EAA2Bn9S,EAAQx9K,GAC5D,gBAAkB07d,EAxKjC,SAAsCpB,EAASt6d,GAC3C,MAAO,CACHm7d,SAAU,SAAS9rf,EAAOq4E,GACtB,IAAIi0a,EAAerB,EAAQxrf,OACvB8sf,EAASlC,GAAQhya,EAAQ,GAAKi0a,EAAe,GAC7C/zc,EAAQ0yc,EAAQjrf,EAAQssf,GAC5B,OAAIC,EAAS,EACF,SAASh0c,EAAOi0c,EAAYC,GAC/B,IAAIl4Q,EAAM,IAAIm4Q,EAAAA,QAAOn0c,GAAOg8L,IACxBllJ,EAAIklJ,EAAIllJ,EAAI,IACZs9Z,EAAWF,EAAa,EAAIA,EAC5BG,EAAOv9Z,EAAI,GAAKs9Z,EAChBE,EAAOx9Z,EAAI,GAAKs9Z,EAChBG,GAAeL,EAAa,GAAK,EACjCM,EAAYP,EAAaM,EAa7B,OAZIF,EAAO9ne,KAAKG,IAAI,GAAI,GAAKoqE,KACzBu9Z,EAAO9ne,KAAKG,IAAI,GAAI,GAAKoqE,IAEzBw9Z,EAAO/ne,KAAKC,IAAI,GAAIsqE,EAAI,KAAO,EAAIA,MACnCw9Z,EAAO/ne,KAAKC,IAAI,GAAIsqE,EAAI,KAAO,EAAIA,KAEnC09Z,EAAY,EACZ19Z,IAAMu9Z,EAAOv9Z,GAAK09Z,EAAYD,EAE9Bz9Z,GAAK09Z,EAAYD,GAAeD,EAAOx9Z,GAE3CklJ,EAAIllJ,EAAI,IAAMA,EACPq9Z,EAAAA,QAAAA,UAAAA,QAAyBn4Q,GAAKgB,QApBlC,CAqBLh9L,EAAO8xc,EAAOrqf,EAAQssf,GAAeC,GAEpCh0c,GAEXwzc,eAAgB,SAAS1za,GACrB,IAAI81H,EAAS,GACb91H,EAAQA,GAAS1nD,EAAW0nD,MAC5B,IAAK,IAAIntE,EAAI,EAAGA,EAAImtE,EAAOntE,IACvBijM,EAAOpuM,KAAKZ,KAAK2sf,SAAS5gf,EAAGmtE,IAEjC,OAAO81H,GAEXzzK,MAAO,cAiIyBsyd,CAA6B7+S,EAAQx9K,GA7H7E,SAAuBs6d,EAASt6d,GAC5B,IAAI27d,EAAerB,EAAQxrf,OACvBwtf,EAAkB,GAEtB,SAASC,EAAiB70a,EAAO80a,EAAarmf,EAAYsmf,GAMtD,IALA,IAGIC,EACA11e,EAJA8iT,EAAY31S,KAAKo1B,MAAMm+B,EAAQ80a,GAC/BG,EAAaj1a,EAAQ80a,EAAc1yL,EACnCvvT,EAAIpE,EAGDoE,EAAIpE,EAAauxE,GACpB1gE,EAAO8iT,EACH6yL,EAAa,IACb31e,GAAQ,EACR21e,KAEJD,EAAc11e,EAAO,EAAImN,KAAKo1B,MAAMviC,EAAO,GAAK,EAChDy1e,EAAartf,KAAKmL,EAAImif,GACtBnif,GAAKyM,EAET,OAAOy1e,EAAazoc,MAAM,SAASC,EAAGC,GAClC,OAAOD,EAAIC,KAInB,SAAS0oc,EAAoBv5X,EAAKltH,EAAYuxE,GAG1C,IADA,IAAIvzC,EAAW,EACN55B,EAFTpE,GAAcuxE,EAAQvxE,GAAcuxE,EAEXntE,EAAI,EAAImtE,EAAOntE,GAAK,EAAG,CAC5C,IAAIlL,GAASq4E,EAAQntE,GAAKmtE,EAC1B,GAAI27C,EAAIh0H,GACJ,MAAO,CAACg0H,EAAIh0H,GAAQ8kC,GAExBA,KAIR,SAAS0od,EAAcn1a,GACnB,GAAIA,GAASi0a,EACT,OAAOrB,EAEX,IAAIj9e,EAAS,GACTy/e,EAAgBnB,EAAe,EAC/BoB,EAAoB,EACpBC,EAAoB,GAEpBA,EADAh9d,EAAWi9d,mBACSV,EAAiB70a,EAAQ,EAAGo1a,EAAe,EAAG,CAAC,EAAGp1a,EAAQ,IAE1D60a,EAAiB70a,EAAQ,EAAGi0a,EAAe,EAAG,EAAG,CAAC,IAE1E,IAAK,IAAIphf,EAAI,EAAGA,EAAImtE,EAAOntE,IACnByif,EAAkBrof,QAAQ4F,IAAM,IAChC8C,EAAO9C,GAAK+/e,EAAQyC,MAsB5B,OAnBA1/e,EAAS,SAAS6/e,EAAwBC,GACtC,IAAK,IAAI5if,EAAI,EAAGA,EAAI4if,EAAe5if,IAE/B,IADY2if,EAAuB3if,GACvB,CACR,IAAI6if,EAASF,EAAuB3if,EAAI,GACxC,IAAK6if,EACD,SAEA,IAAIC,EAAKT,EAAoBM,EAAwB3if,EAAG4if,GACpDG,EAAS,IAAIvB,EAAAA,QAAOsB,EAAG,IAC3BD,EAAS,IAAIrB,EAAAA,QAAOqB,GACpB,IAAK,IAAIrka,EAAI,EAAGA,EAAIska,EAAG,GAAItka,IAAKx+E,IAC5B2if,EAAuB3if,GAAK6if,EAAOt4Q,MAAMw4Q,GAASvka,EAAI,IAAMska,EAAG,GAAK,IAAIz4Q,QAKxF,OAAOs4Q,EAjBF,CAkBP7/e,EAAQqqE,GACHrqE,EAEX,MAAO,CACH89e,SAAU,SAAS9rf,EAAOq4E,GAKtB,OAJAA,EAAQA,GAAS1nD,EAAW0nD,OAASi0a,EACjCW,EAAgBxtf,SAAW44E,IAC3B40a,EAAkBO,EAAcn1a,IAE7B40a,EAAgBjtf,EAAQq4E,IAEnC0za,eAAgB,SAAS1za,EAAOsyC,GAE5B,GADAtyC,EAAQA,GAAS1nD,EAAW0nD,OAASi0a,EACjC3hY,GAAUtyC,EAAQi0a,EAAc,CAEhC,IADA,IAAIn+S,EAASq/S,EAAclB,GAClBphf,EAAI,EAAGA,EAAImtE,EAAQi0a,EAAcphf,IACtCijM,EAAOpuM,KAAKouM,EAAOjjM,IAEvB,OAAOijM,EAEP,OAAOm+S,EAAe,EAAIkB,EAAcn1a,GAAOzzE,MAAM,EAAGyzE,GAAS,IAGzE39C,MAAO,cA+ByBwzd,CAAc//S,EAAQx9K,GAE1Du7d,EAAWxxd,QACJwxd,EAaX,SAASN,EAAYuC,EAAc3wc,GAC/B,IAQkBjF,EARdi6T,EAAW,IAAIk6I,EAAAA,QAAOyB,GAAc74Q,MAAM93L,GAC1C4wc,EAQG,IADW71c,EAPWi6T,GAQX9sS,EAAI,IAAMntB,EAAMotB,EAAI,IAAMptB,EAAMsM,EAJlD,OAHIupc,EAAY,KAAOA,EAAY,MAC/B57I,EAAW,IAAIk6I,EAAAA,QAAOyB,GAAc74Q,OAAO93L,EAAO,IAE/Cg1T,EAASj9H,QAMb,SAAS84Q,EAAmBvhY,EAAQn1G,EAAMs0e,GAC7C,IAAIhB,EAAUtze,EAAO,EAWzB,SAA8Bm1G,EAAQz0C,GAClC,IAIIntE,EAJAojf,EAAaj2a,EAAQ,EACrBk2a,EAAczhY,EAAOrtH,OAAS,EAC9B0uM,EAAS,GACTqgT,EAAW,GAGf,SAASC,EAASh2a,GACd,IAAI3hB,EAAIy3b,EAAc91a,EAClB2vO,EAAKiiM,EAAOvzb,GACZ43b,EAAKpE,EAAMxzb,GACf03b,EAASzuf,KAAKouM,EAAOi6G,GAAI3yE,MAAMtnC,EAAOugT,GAAK53b,EAAIsxP,GAAI7yE,SAEvD,IAAKrqO,EAAI,EAAGA,GAAKqjf,IAAerjf,EAC5BijM,EAAOpuM,KAAK,IAAI2sf,EAAAA,QAAO5/X,EAAO5hH,KAElC,GAAIojf,EAAa,EACb,IAAKpjf,EAAI,EAAGA,GAAKojf,IAAcpjf,EAC3Bujf,EAASvjf,EAAIojf,QAGjBG,EAAS,IAEb,OAAOD,EAlCkBG,CAAqB3D,EAAWl+X,EAAQ,CAC7DhqG,KAAM,cACNooe,aAAce,IACdt0e,GAAQ,GACZ,MAAO,CACHm0e,SAAU,SAAS9rf,GACf,OAAOirf,EAAQjrf,IAAU,sBC5YjC4uf,EAAYpgU,EAAAA,SACZqgU,EAAgBC,EAAAA,aAChBC,EAAmBC,EAAAA,gBACnBC,EAAUhnf,EAAAA,EACVinf,EAAQt1e,EAAAA,GAEZ,SAASu1e,EAAaz/d,EAAOjjB,GACzB,IAAI2if,EAAS1/d,EAIb,OAHAjjB,GAAQyif,EAAMzif,EAAKG,MAAM,MAAO,SAASiN,EAAGgpP,GACxC,OAAOusP,EAASA,EAAOvsP,MAEpBusP,EAEJ,IAAIC,EAAmB7tQ,EAAAA,QAAAA,QAAc,CACxCz+G,KAAM,SAASxpH,GACXpa,KAAKmwf,cAAgB/1e,EAAQg2e,aAC7Bpwf,KAAKqwf,YAAcj2e,EAAQk2e,YAAc,GACzCZ,EAAc1vf,OAElBoe,QAAS,WAGL,OAFAwxe,EAAiB5vf,MACjBA,KAAKuwf,UAAYvwf,KAAKiwf,OAASjwf,KAAKwwf,MAAQ,KACrCxwf,MAEXywf,YAAa,SAASjic,GAElB,OADAxuD,KAAKuwf,UAAY/hc,EACVxuD,MAEX48I,SAAU,SAASrsH,EAAOzH,GAGtB,OAFA9oB,KAAK0wf,SAAWnge,EAChBvwB,KAAKm4D,KAAOrvC,EACL9oB,KAAK+yR,WAEhBA,QAAS,WACL,IAAIz0C,EAAUt+O,KAAK0wf,UAAY,GAC3Bnge,EAAQk/d,EAAUnxQ,EAAQ9wO,MAAQ8wO,GAatC,OAZAt+O,KAAK2wf,WAAapge,EAAM/iB,KACxBxN,KAAK4wf,gBAAkBrge,EAAMsge,eAC7B7wf,KAAKwwf,MAAQV,EAAQ,GAAIv/d,EAAM08K,KAAMqxC,EAAQrxC,MAC7CjtM,KAAKmwf,eAAiBJ,EAAM/vf,KAAKmwf,cAAc1if,MAAM,MAAO,SAASiN,EAAGpN,GACpEijB,EAAQu/d,GAAQ,EAAM,GAAIv/d,EAAMjjB,OAEpCtN,KAAKiwf,OAASH,GAAQ,EAAM,GAAIv/d,GAAOy7d,EAAAA,EAAAA,IAAU1tQ,GAAW,GAAKA,GACjEt+O,KAAK8wf,oBACDC,EAAAA,EAAAA,aAAa/wf,KAAKm4D,KAAMn4D,KAAKiwf,OAAOl+a,aACpC+9a,GAAQ,EAAM9vf,KAAKiwf,OAAQjwf,KAAKiwf,OAAO93b,MAE3Cn4D,KAAKuwf,YACEvwf,MAEXuwB,MAAO,SAASjjB,GACZ,OAAO0if,EAAahwf,KAAKiwf,OAAQ3if,IAErCw4Y,UAAW,WACP,OAAO9lZ,KAAK2wf,YAEhB9D,cAAe,SAASf,EAAS1xe,GAC7B,OAAOyxe,EAAWC,EAAS1xe,EAASpa,KAAK4wf,kBAE7CI,sBAAuB,SAASlF,EAAS5ya,GACrC,OAAOg2a,EAAmBpD,EAAS5ya,EAAOl5E,KAAK4wf,kBAEnDK,sBAAuB,SAASnF,GAC5B,OD2WD,SAA4Bn+X,EAAQm/X,GACvC,IAAIhB,EAAUD,EAAWl+X,EAAQ,CAC7BhqG,KAAM,cACNooe,aAAce,IAEd8B,EAAS,IAAIrB,EAAAA,QAAOzB,EAAQ,IAC5BgD,EAAS,IAAIvB,EAAAA,QAAOzB,EAAQ,IAChC,MAAO,CACHa,SAAU,SAASv0K,GACf,OAAO,GAAKA,GAASA,GAAS,EAAIw2K,EAAOt4Q,MAAMw4Q,EAAQ12K,GAAOhiG,QAAU,OCpXrE86Q,CAAmBpF,EAAS9rf,KAAK4wf,kBAE5CO,eAAgB,SAASrF,GACrB,ODuED,SAAwBA,EAASC,GAIpC,OAHAD,EAAUD,EAAWC,EAAS,CAC1BC,aAAcA,KAEHL,aAAeI,EAAQ,GC3E3BJ,CAAYI,EAAS9rf,KAAK4wf,kBAErCE,iBAAkB,WACd,IAAIl7T,EAAO51L,KACX+vf,EAAMn6T,EAAKy6T,aAAe,IAAK,SAAS31e,EAAGpN,GACvCsoL,EAAKw7T,gBAAgBpB,EAAap6T,EAAKq6T,OAAQ3if,QAGvD8jf,gBAAiB,SAASnkT,GACtB6iT,EAAQ7iT,EAAMjtM,KAAKwwf,MAAOV,EAAQ,GAAI7iT,uOCjG9C,GAAe4gD,EAAAA,EAAAA,GAAW5rB,EAAAA,EAAAA,eAAuB,CAC7CovR,MAAO,sBACPC,MAAO,2CACPC,MAAO,gEACPC,MAAO,8CACPC,MAAO,oFACPC,MAAO,uCACPC,MAAO,qDACPC,MAAO,yCACPC,MAAO,yDACPC,MAAO,2BACPC,MAAO,+DACPC,MAAO,wEACPC,MAAO,yBACPC,MAAO,2BACPC,MAAO,0BACPC,MAAO,6CACPC,MAAO,uEACPC,MAAO,6BACPC,MAAO,kEACPC,MAAO,6DACPC,MAAO,uDACPC,MAAO,kDACPC,MAAO,mEACPC,MAAO,qEACPC,MAAO,uDACPC,MAAO,+DACPC,MAAO,8CC1BPC,EAAOrte,KAAKG,IACZmte,EAAOtte,KAAKC,IACZ4uN,EAAS7uN,KAAK6H,MAId0le,EAAyB,CACzBx6e,KAJc,EAKd4K,OAJe,EAKfvF,MAJY,GAMZo1e,EAAuB,CACvBr6e,IATc,EAUdwK,OATe,EAUftF,OATY,GAWZo1e,EAAU,CACVvkc,WAAY,EACZD,SAAU,GAEVykc,EAAa,GAYjB,SAASC,EAAU1xf,EAAOsE,EAAKquC,GAC3B,IAAIxwB,GAAMwve,EAAAA,EAAAA,eAAe3xf,GACzB,OAAOmiB,KAAO7d,EAAMA,EAAI6d,GAAOwwB,EAGnC,SAASi/c,EAAuBp5e,GAC5B,IAaiBq5e,EAbbz/b,EAAOs/b,EAAUl5e,EAAQ45C,KAAMo/b,EAAS,GACxC13c,EAAY,CAAC43c,EAAUl5e,EAAQs5e,oBAAqBR,EAnCzC,GAmCgFI,EAAUl5e,EAAQu5e,kBAAmBR,EApCtH,IAqCd,MAAO,CACHn/b,KAAMA,EACNy/b,SASaA,EATQ/3c,EAAUsY,GAU5By/b,EAAU,EAAI,EAAI,GATrBG,UAAWl4c,EAAU,EAAIsY,GACzB6/b,KAAMz5e,EAAQy5e,KACdr2W,SAAUpjI,EAAQojI,UAAY,EAC9B35G,OAAQzpB,EAAQypB,OAChB1d,SAAU/L,EAAQ+L,UAgB1B,SAAS2te,EAAUp4c,EAAWljC,GAC1B,OAAQkjC,EAAY,GAAK,EAAI,GAAKljC,EAGtC,SAASu7e,EAAe7zf,EAAM+a,EAAMi9T,GAChC,IAAIlkR,EAAO9zD,EAAK8zD,KACZx7C,EAAOtY,EAAKJ,QAAQ2kM,QAAQ,CAACxpL,EAAK,GAAKA,EAAK,GAAIA,EAAK,GAAKA,EAAK,KAC/D+4e,EAAU,YAAc9zf,EAAKimB,SAAW,EAAI+xT,EAAQlkR,GACpD9jC,EAAU1X,EAAKw7C,GAAQ/4C,EAAK,EAAI+4C,GAAQ/4C,EAAK+4C,GAAQggc,EAOzD,OANI9je,IACI,WAAahwB,EAAKimB,WAClBlL,EAAK/a,EAAKuzf,QAAUz/b,IAAS8/b,EAAU5zf,EAAKuzf,QAASj7e,EAAKw7C,KAE9D9zD,EAAKsY,KAAOA,GAET0X,EAGX,SAAS+je,EAAoB/zf,EAAM+a,EAAMi5e,GACrC,IAvBcx4c,EAAW+J,EAAGC,EAAGltC,EAuB3B27e,EAAcj0f,EAAK8zD,KACnBogc,EA3BG,EA2B8BD,EACjCzlc,EAAW,GACXklc,GA1BUl4c,EA0BWx7C,EAAK0zf,UA1BLnuc,EA0BgByuc,EAAcE,GA1B3B1uc,EA0B2Cwuc,EAAc,EAAIE,GA1B1D57e,EA0B0EtY,EAAKsY,KAAK47e,GAzB5Gf,EAAW33c,GAAW+J,EAAGC,EAAGltC,IAiCnC,OAPAk2C,EAASylc,GAAe3/Q,EAAO9lL,EAAS,EAAIylc,GAAel5e,EAAK/a,EAAKuzf,QAAUU,IAAgB,WAAaj0f,EAAKimB,SAAW2te,EAAU5zf,EAAKuzf,QAASvzf,EAAKsY,KAAK27e,IAAgB,IAC9Kzlc,EAASxuD,EAAKuzf,QAAUU,GAAe3/Q,EAAOv5N,EAAK/a,EAAKuzf,QAAUU,GAAeL,EAAU5zf,EAAKuzf,QAASvzf,EAAKsY,KAAK27e,KAC/G,WAAaj0f,EAAKimB,WAClBlL,EAAK/a,EAAKuzf,QAAUU,GAAezlc,EAASxuD,EAAKuzf,QAAUU,IAE/Dzlc,EAAS0lc,GAAiB5/Q,EAAOo/Q,EAAU,IAC3Cllc,EAAS,EAAI0lc,GAAiB5/Q,EAAOo/Q,EAAU,IACxCllc,EAGX,SAAS2lc,EAAgBn0f,EAAM+a,EAAMi5e,EAAeI,EAAS97e,EAAM+7e,GAC/D,IAAI7lc,EAAWulc,EAAoB/zf,EAAM+a,EAAMi5e,GAC3CM,EAAcP,EAAoB/zf,EAAMo0f,EAASA,GACjD97e,EAAKtY,EAAK8zD,MAAQ,GAClBx7C,EAAKtY,EAAK8zD,OAAS9zD,EAAKsY,KAAKtY,EAAK8zD,MAClCugc,EAAWr0f,EAAKuzf,QAAUvzf,EAAK8zD,MAAQtF,EAASxuD,EAAKuzf,QAAUvzf,EAAK8zD,MACpE9zD,EAAKJ,QAAQ0qe,aAEbtqe,EAAKJ,QAAQm8C,KAAKyS,EAAU8lc,GAIpC,SAASC,IACLz0f,KAAK00f,SAAW,GAqFpB,SAASC,EAA0B70f,EAASmb,GACxC,IAAI25e,EAAW35e,EAAKxV,QAChBipD,EAAWulc,EAAoBn0f,EAAS80f,EAAUA,GAGtD,OAFAlmc,EAAS5uD,EAAQk0D,MAAQ/4C,EAAKnb,EAAQk0D,MACtCtF,EAAS,EAAI5uD,EAAQk0D,MAAQ/4C,EAAK,EAAInb,EAAQk0D,MACvCtF,EAGX,SAASmmc,EAAWhxd,EAAQixd,GACxB,IAAI9gc,EAAOnwB,EAAOmwB,KACdy/b,EAAU5vd,EAAO4vd,QACjBG,EAAY/vd,EAAO+vd,UACvB,MAAO,CACH5/b,KAAMA,EACNy/b,QAASA,EACTG,UAAWA,EACXp2W,SAAU,EACV19I,QAAS,CACL2kM,QAAS,SAASopG,GACd,IAAIh/R,EAASg/R,EAAWpoS,QACpBsvf,EAAWD,EAAYh1f,QAAQ2kM,QAAQopG,EAAWpoS,SACtDooS,EAAW4lN,IAAYsB,EAAStB,GAChC,IAAIuB,EAAanxd,EAAO/jC,QAAQ2kM,QAAQopG,EAAWpoS,SAInD,OAHAoJ,EAAOmlD,GAAQ+gc,EAAS/gc,GAAQghc,EAAWhhc,GAAQruC,KAAKC,IAAIove,EAAWhhc,GAAO+gc,EAAS/gc,IACvF8gc,EAAYt8e,KAAOu8e,EACnBlxd,EAAOrrB,KAAOw8e,EACPnmf,GAEXotC,KAAM,SAAShhC,EAAMq5e,GACjB,GAAIA,EAAQ,GAAKA,EAAQ,GAAKzwd,EAAOrrB,KAAK,GAAKs8e,EAAYt8e,KAAK,GA1MrD,EA2MPxY,KAAKwqe,gBADT,CAIA,IAAIyqB,EAAWN,EAA0BG,EAAaR,GACtDA,EAAQ,EAAIQ,EAAYrB,SAAWwB,EAASH,EAAYrB,SACxD,IAAIyB,EAAiBP,EAA0B9wd,EAAQywd,GACnDA,EAAQ,EAAIQ,EAAYrB,SAAWx4e,EAAK,EAAI65e,EAAYrB,UAAY5vd,EAAOrrB,KAAKqrB,EAAO4vd,SAAWx4e,EAAK,EAAI4oB,EAAO4vd,SAAWx4e,EAAK4oB,EAAO4vd,WACzIx4e,EAAK,EAAI65e,EAAYrB,SAAWa,EAAQ,EAAIQ,EAAYrB,UAE5D,IAAI0B,EAAaR,EAA0B9wd,EAAQ5oB,GAC/Ck6e,EAAW,EAAIL,EAAYrB,SAAWa,EAAQ,EAAIQ,EAAYrB,WAC9Dx4e,EAAK,EAAI65e,EAAYrB,SAAWa,EAAQ,EAAIQ,EAAYrB,SACxD0B,EAAaR,EAA0B9wd,EAAQ5oB,IAEnD65e,EAAYh1f,QAAQm8C,KAAKg5c,GACzBpxd,EAAO/jC,QAAQm8C,KAAKk5c,EAAYD,KAEpC1qB,UAAW,WACP3mc,EAAO/jC,QAAQ0qe,YACfsqB,EAAYh1f,QAAQ0qe,eA7NpC6oB,EAnBkB,GAmBQ,SAAS5tc,EAAGC,EAAGltC,GACrC,MAAO,CAACitC,EAAGutc,EAAKttc,EAAGD,EAAIjtC,KAE3B66e,EArBmB,GAqBQ,SAAS5tc,EAAGC,EAAGltC,GACtC,MAAO,CAACy6e,EAAKxtc,GAAIA,EAAIC,EAAIltC,GAAQ,GAAIw6e,EAAKttc,GAAID,EAAIC,EAAIltC,GAAQ,KAElE66e,EAvBgB,GAuBQ,SAAS5tc,EAAGC,EAAGltC,GACnC,MAAO,CAACy6e,EAAKxtc,EAAGC,EAAIltC,GAAOktC,IAkF/B+uc,EAAOjvf,UAAY,CACfgJ,YAAaimf,EACbr2e,QAAS,WACLpe,KAAK00f,SAAW,MAEpBpzf,IAAK,SAASsF,GACV5G,KAAK00f,SAAS9zf,KAAKgG,IAEvBwuf,QAAS,SAASb,EAAYr8K,GAC1B,IAEInsU,EAFAkP,EAAOs5e,EAAW9uf,QAClB8wP,EAmCZ,SAAuBA,GACnB,IAAIxqP,EAGAuhb,EAFA34M,EAAK4hB,EAAQj2P,OACbywC,EAAa,GAEjB,IAAKhlC,EAAI,EAAGA,EAAI4oO,IAAM5oO,GAClBuhb,EAAS/2L,EAAQxqP,GAAGspf,oBAEhB/nE,EAASkmE,EAAuBlmE,IACzBxtb,QAAUy2P,EAAQxqP,GACzBglC,EAAWnwC,KAAK0sb,IAOxB,OAJAv8Y,EAAWyU,MAAM,SAASC,EAAGC,GACzB,OAAOA,EAAEsO,KAAOvO,EAAEuO,MAAQvO,EAAE+3F,SAAW93F,EAAE83F,YAE7CzsG,EAIJ,SAA0BA,GACtB,IAGIpa,EAHA2+d,EAAWvkd,EAAWnrC,QAAQ,SAAS1F,GACvC,OAAO,IAASA,EAAK2zf,QACrB,GAEAyB,IACA3+d,EAAaoa,EAAWnrC,QAAQ,SAAS1F,GACrC,OAAOo1f,EAAS7B,UAAYvzf,EAAKuzf,SAAWvzf,EAAK8zD,OAASshc,EAASthc,MAAQ9zD,IAASo1f,KACpF,IAER,GAAIA,GAAY3+d,EACZ,MAAO,CAACk+d,EAAWl+d,EAAY2+d,IAAW15d,OAAOmV,EAAWnrC,QAAQ,SAAS1F,GACzE,QAASA,IAASy2B,GAAcz2B,IAASo1f,OAGjD,OAAOvkd,EAnBMwkd,CAAiBxkd,GAnDZykd,CAAcx1f,KAAK00f,UAE7B//Q,EAAK4hB,EAAQj2P,OACbq/C,EAAQ,GACZ,IAAK5zC,EAAI,EAAGA,EAAI4oO,IAAM5oO,EACdgof,EAAex9P,EAAQxqP,GAAIkP,EAAMi9T,GACjCv4R,EAAM/+C,KAAK21P,EAAQxqP,IAEnBwqP,EAAQxqP,GAAGjM,QAAQ0qe,YAI3B,OADAxqe,KAAK2qW,OAAShrT,EAAM5rB,UACb9Y,GAEXm4J,SAAU,SAASmhV,EAAYL,GAC3B,IAKIttf,EACAmF,EANAyM,EAAOzQ,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,CAAC,EAAG,GAC5E0tf,EAAelB,EAAW9uf,QAC1B6uf,EAAUC,EAAW9uf,QACrB8wP,EAAUv2P,KAAK2qW,OACf+qJ,EAAa,EAGb/gR,EAAK4hB,EAAQj2P,OACjB,IAAKyL,EAAI,EAAGA,EAAI4oO,IAAM5oO,GAClBnF,EAAS2vP,EAAQxqP,IACNioD,OAAS0hc,IAChBD,EAAelB,EAAW9uf,SAE9B4uf,EAAgBztf,EAAQ6uf,EAAcvB,EAAeI,EAAS97e,EAAM+7e,GACpEmB,EAAa9uf,EAAOotD,KAExB,OAAOx7C,IAgGf,wCCvPIm9e,EAAiB,+CCWjBjlP,EAAiBklP,EAAAA,eAuCd,IAAIC,EAAyB,SAAS5uQ,EAAY6uQ,GACrD,OAAO,SAAS7rf,EAAIuc,GAChBsve,EAAa,mBAAoB,CAC7Blvf,OAAQ,CACJqD,GAAIA,EACJ0Z,KAAM,MAAQ1Z,EAAG,GAAK,QAAU,UAChCuc,KAAMA,EACN7jB,KAAMozf,EAAAA,OAAAA,MAAoB,KAAM,CAACrlP,EAAezmQ,IAAK2xB,OAAOpV,GAAQ,KACpEyZ,OAAQgnN,EACRn+G,QAASA,EAAAA,aAMzB,SAASktX,EAAiBC,GACtB,OAAO,SAACzoT,EAASgW,GACb,MASR,SAA+Bh1J,EAAUg1J,GACrC,IAAI5gN,EACArC,EAAU,WACV29B,aAAat7B,GACbA,EAAUC,WAAW2rD,EAAU,MAEnC,MAAO,CACHjuD,QAASA,EACT6d,QAFG,WAGC8f,aAAat7B,GACb4gN,EAAYjjN,KAhBZ21f,CAAsBD,EAAgBzyS,GAF7BjjN,EADb,EACIA,QACS6d,EAFb,EAEIA,QAGJ,OADAovL,EAAQjtM,GACD6d,GCpBf,IAAI8se,EAASvle,KAAKo1B,MACdo7c,EAAOP,EAAAA,IAEPQ,EAAqB,aACrBC,EAAsB,mBACtB5+K,EAAU1lH,EAAAA,QAAAA,UAAAA,OAEd,SAASukS,IACL,OAAO,EAGX,SAASC,KACL,OAAO,EAOX,SAASC,GAA0Bh2f,GAC1BA,EAAE6tB,UAAUivN,gBAAgB4I,SAAS,qBACtCiwQ,EAAKnwe,MAAM,KAAM,CAACxlB,EAAEoG,OAAOqD,IAAI2xB,OAAOp7B,EAAEoG,OAAO4f,MAAQ,KAI/D,SAASiwe,GAAkB78e,GACvB,OAAOA,EAAOlQ,QAAQ,SAASmF,EAAQjN,GACnC,OAAOA,EAAQ,IAAMiN,EAASjN,EAAQiN,IACtC,GA6BR,SAAS6nf,GAAY1wa,GACjBA,EAAU/lF,SAAQ,SAAAub,GAAC,OAAIA,OAG3B,SAASm7e,GAAsBjoT,GAC3B,OAAOupB,EAAAA,EAAAA,GAAS,GAAIvpB,EAAQ,CACxBn9L,OAAQ25e,EAAOx8S,EAAOn9L,QACtBD,MAAO45e,EAAOx8S,EAAOp9L,SAQ7B,IAAIslf,KALgBt6R,EAAAA,EAAAA,MArCI,WACpB,IAAIu6R,EAAuB,CACvBn7R,eADuB,aAEvB93F,KAFuB,SAElB9jI,EAASsa,GACVpa,KAAKuxN,SAASzxN,EAASsa,GACvB,IAAI08e,EAAel9R,EAAAA,EAAAA,cAAyB,OACxCtoN,EAAQ8I,IAAW2qG,EAAAA,EAAAA,IAAU3qG,EAAQ9I,OAAS8I,EAAQ9I,MAAQ,KAAO,OACrEC,EAAS6I,IAAW2qG,EAAAA,EAAAA,IAAU3qG,EAAQ7I,QAAU6I,EAAQ7I,OAAS,KAAOvR,KAAK+2f,kBAAkBxlf,OAAS,KAC5GqoN,EAAAA,EAAAA,SAAoBk9R,EAAc,QAASxlf,GAC3CsoN,EAAAA,EAAAA,SAAoBk9R,EAAc,SAAUvlf,GAC5CqoN,EAAAA,EAAAA,SAAoBk9R,EAAcT,GAClCz8R,EAAAA,EAAAA,cAAyB95N,EAASg3f,KAGtCE,EAAiBjlS,EAAAA,QAAAA,QAAqB8kS,GACtCI,EAAkBD,EAAeh4V,QASrC,OARAg4V,EAAeh4V,QAAU,SAAS1vF,GAC9B,IAAK,IAAI/qC,KAAS+qC,IACV4L,EAAAA,EAAAA,IAAW5L,EAAO/qC,KAAW,MAAQA,EAAM5zB,OAAO,EAAG,IAAM,WAAa4zB,GAAS,aAAeA,GAAS,mBAAqBA,KAC9H+qC,EAAO/qC,GAASytL,EAAAA,MAGxB,OAAOilS,EAAgBx2f,KAAKT,KAAMsvE,IAE/B0nb,EAkBqBE,GAAsBnlS,EAAAA,QAAAA,QAAqB,CACvEolS,WAAY,CACRC,mBAAoB,CAChB5pf,KAAM,mBACN6pf,eAAgB,CACZhgR,kBAAmB,CAAC,cAG5BigR,QAAS,CACL9pf,KAAM,QACN6pf,eAAgB,CACZhgR,kBAAmB,CAAC,eAIhC5kB,mBAAoB,WAChB,OAAO3pN,EAAAA,EAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B6lS,mBAAoBZ,MAG5Be,WAAW,EACX/kb,MAAO,WACH,IAAIojH,EAAO51L,KACX41L,EAAKhxK,UAAU7Z,SAAS,qBAA2BvJ,SACnDo0L,EAAK4hU,gBAAkB,GACvB5hU,EAAK27B,SAASvrM,MAAM4vK,EAAM7tL,WAC1B6tL,EAAK6hU,eAAiB,EACtB7hU,EAAK8hU,qBAAuB,EAC5B9hU,EAAK+hU,oBAAqB,EAC1B/hU,EAAKgiU,UAAWh4a,EAAAA,EAAAA,MAChBg2G,EAAKiiU,kBACLjiU,EAAKkiU,cAAgBliU,EAAKmiU,sBAC1BniU,EAAKkiU,cAAcrH,aAAa,WAC5B76T,EAAKoiU,eAAepiU,EAAKqiU,2BAE7BriU,EAAK80D,2BACL90D,EAAKsiU,gBACL,IAAIC,EAAaviU,EAAK2hU,WAAa3hU,EAAKwiU,UAAUtnf,KAClDqnf,GAAcA,EAAWE,cAAcC,YAAY,QAAQA,YAAY,cACvE1iU,EAAKg1D,0BACLh1D,EAAKk1D,kCACLl1D,EAAK2iU,iCAAiCv4f,KAAK06G,cAC3Ck7E,EAAK4iU,oBACL5iU,EAAK6iU,kBAAoB5C,EAAuBjgU,EAAKm/B,KAAMn/B,EAAK8iU,eAChE9iU,EAAKmjJ,QAAU,IAAI4/K,EACnBR,GAAcA,EAAWS,UAAU,QACnChjU,EAAKijU,eACLjjU,EAAKkjU,YACLX,GAAcA,EAAWS,YACzBhjU,EAAKmjU,QAAQnjU,EAAKojU,kBAEtBjB,oBAnDuE,WAoDnE,OAAO,IAAI7H,EAAAA,EAAiBlwf,KAAKi5f,4BAErCA,wBAtDuE,WAuDnE,MAAO,CACH7I,aAAcpwf,KAAKmwf,cACnBG,WAAYtwf,KAAKqwf,cAGzB2I,gBAAiB,CAAC,SAAU,iBAAkB,QAAS,YACvDH,aAAc,WACV,IAAIjjU,EAAO51L,MACXya,EAAAA,EAAAA,IAAKm7K,EAAKsjU,UAAW,SAASx+e,EAAGy+e,GAC7BA,EAAO5/e,KAAK9Y,KAAKm1L,OAGzBwjU,gBAAiB,WACb,IAAIxjU,EAAO51L,MACXya,EAAAA,EAAAA,IAAKm7K,EAAKsjU,SAASzzf,QAAQsuB,WAAY,SAASrZ,EAAGy+e,GAC/CA,EAAO/6e,QAAQ3d,KAAKm1L,OAG5BmjU,QAAS,SAASM,GACdr5f,KAAK43f,SAASt2f,IAAI+3f,IAEtBxB,gBAAiB,aACX73f,KAAKy3f,gBAEX6B,eAAgB,WACR,MAAQt5f,KAAKy3f,gBAAkBz3f,KAAK43f,SAAS1+a,QAAU,IAAMl5E,KAAKu5f,mBAClEv5f,KAAKo4f,UAAUx5Y,OACf5+G,KAAKu5f,kBAAmB,EACxBv5f,KAAKw5f,gBACLx5f,KAAK43f,SAASr8d,QACdv7B,KAAKu5f,kBAAmB,EACxBv5f,KAAKy5f,kBACLz5f,KAAKo4f,UAAUsB,SACX15f,KAAK25f,eACL35f,KAAK45f,sBAET55f,KAAK65f,qBAAqB75f,KAAK85f,QAAU,CAAC95f,KAAK85f,SAAW,IAC1D95f,KAAK03f,uBACL13f,KAAK+5f,UACL/5f,KAAK03f,yBAGbmC,qBAjGuE,SAiGlDnuf,GACjB1L,KAAKg6f,iBAAiBh6f,KAAKi6f,mBAAmBvuf,KAElDwuf,2BAA4B,SAAAxuf,GAAK,OAAIA,EAAMhC,QAAO,SAAC+8B,EAAM16B,GAAP,MAAc,CAC5DL,MAAO+6B,EAAK/6B,MAAMkwB,OAAO7vB,EAAEouf,mBAC3Blue,OAAQwa,EAAKxa,OAAO2P,OAAO7vB,EAAEquf,yBAC7B,CACA1uf,MAAO,GACPugB,OAAQ,MAEZgue,mBA3GuE,SA2GpDvuf,GACf,IAAIm/C,EAAW7qD,KAAKk6f,2BAA2Bxuf,GAC3Cyif,EAAanuf,KAAKq6f,0BACtB,MAAO,CACH3uf,MAAOyif,EAAWzif,MAAMkwB,OAAOivB,EAASn/C,OACxCugB,OAAQkie,EAAWlie,OAAO2P,OAAOivB,EAAS5+B,QAC1Cque,cAAe,CAACnM,EAAWmM,eAC3BC,YAAa,CAACpM,EAAWoM,eAGjCF,wBAAyB,iBAAO,CAC5B3uf,MAAO,GACPugB,OAAQ,GACRque,cAAe,aACfC,YAAa,eAEjBP,iBA3HuE,SA2HtDhzQ,GACb,IACWt7O,EAIPs7O,EAJAt7O,MACe4uf,EAGftzQ,EAHAszQ,cACaC,EAEbvzQ,EAFAuzQ,YACQtue,EACR+6N,EADA/6N,OAEA2pK,EAAO51L,KAEX,GADA41L,EAAK4kU,qBAAqBvue,EAAQ,UAC9B2pK,EAAK6kU,iBAGL,OAFA7kU,EAAK6kU,kBAAmB,OACxB/D,GAAY6D,GAGhB,IAAIG,GAAgB,EACpBjgS,EAAAA,GAAAA,MAAW7kC,EAAMlqL,GAAO0tB,MAAK,WACzB,GAAIshe,EACA9kU,EAAK4kU,qBAAqBvue,EAAQ,eADtC,CAIAyqe,GAAY4D,GACZ1kU,EAAK6kU,kBAAmB,EACxB,IAAI76a,EAAU,CAAC,SAAU,eACrBg2G,EAAK+hU,oBACL/3a,EAAQh/E,KAAK,uBACbg1L,EAAK+hU,oBAAqB,GAE1B/3a,EAAQh/E,KAAK,iBAEjBg1L,EAAKoiU,eAAep4a,GACpBg2G,EAAK4kU,qBAAqBvue,EAAQ,eAEtCyue,GAAgB,GAEpBF,qBA7JuE,SA6JlDvue,EAAQspC,GACzBtpC,EAAOhsB,SAAQ,SAAAumE,GAAC,OAAIA,EAAE5mD,KAAK,CACvB21C,WAAYA,QAGpBqkc,oBAAqB,WACjB,IAAIv6P,EAAQr/P,KAAK25f,cACjB35f,KAAK25f,cAAgB,KACrB35f,KAAKwjP,eACL/oO,EAAAA,EAAAA,IAAK4kP,GAAQ,SAAS3kP,EAAG+F,GACrBA,OAEJzgB,KAAKmkP,aAET6zQ,eAAgB,SAASqB,GACrBr5f,KAAK63f,kBACL73f,KAAK+4f,QAAQM,GACbr5f,KAAKs5f,kBAETE,cAAe,WACX,IAEIztf,EAFA6zE,EAAU5/E,KAAK43f,SACf+C,EAAQ36f,KAAK46f,mBAEbjmR,EAAKgmR,EAAMr6f,OACf,IAAKyL,EAAI,EAAGA,EAAI4oO,IAAM5oO,EACd6zE,EAAQ/lD,IAAI8ge,EAAM5uf,KAClB/L,KAAK,WAAa26f,EAAM5uf,OAIpC8uf,oBAAqB,CAAC,SAAU,QAAS,WAAY,kBACrDC,oBAAqB,CAAC,eAAgB,iBAAkB,UACxDC,oBAAqB,CAAC,YACtBC,eAAgB,WACZh7f,KAAK04f,cAAcuC,gBAEvBC,cAAe,WACXl7f,KAAKm7f,mBAETC,iBAAkB,WACdp7f,KAAKq7f,uBAETC,uBAAwB,WACpBt7f,KAAKu7f,uBAETC,qBAAsB,WAClBx7f,KAAK0qP,2BACL1qP,KAAK+4f,QAAQ,CAAC,oBAElB0C,uBAAwB,WACpBz7f,KAAK07f,eAETC,eAAgB,WACZ37f,KAAK47f,mBAETC,iBAAkB,WACd,IAAI76d,EAAWhhC,KAAKo4f,UAChBtnf,EAAOkwB,EAASlwB,KAChB9Q,KAAK6kB,OAAO,aACZ7kB,KAAK87f,mBAAqBhrf,EAAK8O,KAAK,kBACpC9O,EAAK8O,KAAK,CACN,iBAAkB,OAClBha,OAAQo7B,EAAS+6d,qBAAqB9xf,MAEnC,SAAW6G,EAAK8O,KAAK,mBAC5B9O,EAAK8O,KAAK,CACN,kBAAkB+oC,EAAAA,EAAAA,IAAU3oD,KAAK87f,oBAAsB97f,KAAK87f,mBAAqB,KACjFl2f,OAAQ,QAIpBqyf,uBAAwB,CAAC,YACzBC,cAAe,WACX,IAAI8D,EAAYh8f,KAAKi8f,sBACrBj8f,KAAKk8f,QAAUvF,GAAsBqF,GACrCh8f,KAAKo4f,UAAY,IAAIj2S,EAAAA,SAAS,CAC1Bx7E,SAAU3mI,KAAKm8f,iBAAmB,IAAMn8f,KAAKo8f,WAC7CC,aAAcr8f,KAAK6kB,OAAO,gBAC1B/E,UAAW9f,KAAK4kB,UAAU,KAE9B5kB,KAAKo4f,UAAU77e,OAAOvc,KAAKk8f,QAAQ5qf,MAAOtR,KAAKk8f,QAAQ3qf,SAE3D+qf,iBAAkB,WACdt8f,KAAKo4f,UAAUh6e,WAEnBm+e,uBAAwB,WACpB,IAAK,IAAItyf,KAAMjK,KAAKw3f,gBAChBx3f,KAAKw3f,gBAAgBvtf,GAAImU,UAE7Bpe,KAAKw3f,gBAAkB,MAE3BgF,qBAAsBxqS,EAAAA,KACtBzyM,OAAQ,WACJvf,KAAKg4f,eAAe,CAAC,mBACrB,IAAInvf,EAAU7I,KAAK06G,aACnB16G,KAAKu4f,iCAAiC1vf,IACrCA,GAAW7I,KAAKy8f,wBAErBlE,iCAAkC,SAASpnf,GACvC,IAAIqd,GAAW9gB,EAAAA,EAAAA,GAAE1N,KAAKo4f,UAAUtnf,KAAKhR,SAASglB,UAC1C,YAAcqjN,EAAAA,QAAAA,OAAexpG,WAC7BnwG,EAAWA,EAASltB,KAAI2sN,EAAAA,EAAAA,QAE5BjuN,KAAK08f,mCAAqC18f,KAAK08f,oCAAsC,WACjF18f,KAAKy8f,wBACPhyf,KAAKzK,MACP21N,EAAAA,EAAAA,KAAiBjoN,EAAAA,EAAAA,KAAIpM,IAAItB,KAAK28f,mBAAoB,qBAAsB38f,KAAK08f,oCACzEvrf,IACAwkN,EAAAA,EAAAA,GAAgBnnM,EAAU,qBAAsBxuB,KAAK08f,oCACrD18f,KAAK28f,kBAAoBnue,IAGjCiue,qBAAsBzqS,EAAAA,KACtBqK,SAAU,WACN,IAAIzmC,EAAO51L,KACPA,KAAK6kP,YAGTjvD,EAAK27B,SAASvrM,MAAM4vK,EAAM7tL,WAC1B6tL,EAAK2iU,kCAAiC,GACtC3iU,EAAKgnU,uBACLhnU,EAAKmjJ,QAAQ36T,UACbw3K,EAAK8iU,cAAct6e,UACnBw3K,EAAKinU,eACLjnU,EAAKwjU,kBACLxjU,EAAK2mU,yBACL3mU,EAAK0mU,mBACL1mU,EAAKkiU,cAAc15e,UACnBw3K,EAAKkiU,cAAgBliU,EAAKwiU,UAAYxiU,EAAK8iU,cAAgB,OAE/DF,kBAAmB,WACf,IAAI5iU,EAAO51L,KACX41L,EAAK8iU,cDjZN,SAA4BoE,EAAWC,GAC1C,IAMIn9a,EANAo9a,EAAW,GAyBf,OAxBAvif,EAAAA,EAAAA,IAAKqif,GAAY,SAAStvf,EAAMohB,GACxBA,EAAKphB,MACLghS,EAAYhhS,MAIpByvf,EAAaz9d,OAAS,SAAShyB,GAC3B,IAAI0vf,EAAYJ,EAAUtvf,GAI1B,OAHI0vf,KACCt9a,EAAUA,GAAW,IAAIpyE,GAAQ0vf,KAE7BA,GAEbD,EAAahC,aAAe,WACpBr7a,KACAnlE,EAAAA,EAAAA,IAAKmlE,GAAU,SAASpyE,EAAM0vf,GAC1B1uN,EAAY0uN,EAAUpld,SAAWtqC,MAErCoyE,EAAU,OAGlBq9a,EAAa7+e,QAAU,WACnB0+e,EAAYC,EAAiBC,EAAW,MAErCC,EAEP,SAASzuN,EAAYhhS,GACjB,IAAI0vf,EAAYJ,EAAUtvf,GAC1Bwvf,EAASE,EAAU1vf,MAAQuvf,EAAevvf,EAAM0vf,EAAU7F,gBAG9D,SAAS4F,EAAazvf,EAAMuhB,EAAKk1M,GAC7B+4R,EAASxvf,GAAMuhB,GACfk1M,GAAYA,KC8WSk5R,CAAmBvnU,EAAKuhU,YAAa,SAAS3pf,EAAM6pf,GACrE,OAAOzhU,EAAK4lC,sBAAsBhuN,EAAM6pf,OAGhD4E,oBAAqB,WACjB,IAAIrmU,EAAO51L,KACPwY,EAAOo9K,EAAK/wK,OAAO,SAAW,GAC9By/K,EAAS1O,EAAK/wK,OAAO,WAAa,GAClCu4e,EAAgBxnU,EAAKmhU,mBAAqB,GAC1CsG,EAAgB,SAAC7kf,EAAMw7C,EAAMyvM,GAC7B,GA9SS7hQ,EA8SO4W,EAAKw7C,IA7StBrL,EAAAA,EAAAA,IAAU/mD,IAAUA,EAAQ,KA6SK06N,EAAAA,EAAAA,MAC5B,OAAO,EA/SvB,IAAqB16N,EAiTL07Q,EAAc7Z,EAAO7tE,EAAKhxK,WAC9B,OAAO04P,GAAe,EAAI,EAAIA,GAE9B7kD,EAAe4kS,EAAc7kf,EAAM,SAAS,SAAAxH,GAAC,OAAI8rI,EAAAA,EAAAA,IAAS9rI,MAC1D0nN,EAAgB2kS,EAAc7kf,EAAM,UAAU,SAAAxH,GAAC,OAAI6rI,EAAAA,EAAAA,IAAU7rI,MAC7D09L,EAAS,CACTp9L,MAAOkH,EAAKlH,OAAS,EAAI,EAAImlf,GAAkB,CAACj+e,EAAKlH,MAAOmnN,EAAc2kS,EAAc9rf,QACxFC,OAAQiH,EAAKjH,QAAU,EAAI,EAAIklf,GAAkB,CAACj+e,EAAKjH,OAAQmnN,EAAe0kS,EAAc7rf,SAC5FmH,KAAM+9e,GAAkB,CAACnyT,EAAO5rL,KAAM0kf,EAAc1kf,OACpDI,IAAK29e,GAAkB,CAACnyT,EAAOxrL,IAAKskf,EAActkf,MAClDiF,MAAO04e,GAAkB,CAACnyT,EAAOvmL,MAAOq/e,EAAcr/e,QACtDC,OAAQy4e,GAAkB,CAACnyT,EAAOtmL,OAAQo/e,EAAcp/e,UAQ5D,OANI0wL,EAAOp9L,MAAQo9L,EAAOh2L,KAAOg2L,EAAO3wL,OAAS,GAAK2wL,EAAOn9L,OAASm9L,EAAO51L,IAAM41L,EAAO1wL,QAAU,KAChG0wL,EAAS,CACLp9L,MAAO,EACPC,OAAQ,IAGTm9L,GAEXgtT,YAAa,WACT,IA7XsB4B,EAASC,EA6X3BvB,EAAYh8f,KAAKi8f,sBA7XCqB,EA8XGt9f,KAAKk8f,QA9XCqB,EA8XQvB,EA7XlCr2e,KAAK23B,IAAIggd,EAAQhsf,MAAQisf,EAAQjsf,OAdhB,GAcoDqU,KAAK23B,IAAIggd,EAAQ/rf,OAASgsf,EAAQhsf,QAdtF,GAc2H+rf,EAAQ5kf,OAAS6kf,EAAQ7kf,MAAQ4kf,EAAQxkf,MAAQykf,EAAQzkf,KAAOwkf,EAAQv/e,QAAUw/e,EAAQx/e,OAASu/e,EAAQt/e,SAAWu/e,EAAQv/e,SA6X1Nhe,KAAKw9f,gBACtDx9f,KAAKk8f,QAAUvF,GAAsBqF,GACrCh8f,KAAKy9f,+BAA8B,GACnCz9f,KAAKo4f,UAAU77e,OAAOvc,KAAKk8f,QAAQ5qf,MAAOtR,KAAKk8f,QAAQ3qf,QACvDvR,KAAK+4f,QAAQ,CAAC,aAGtB0E,8BAA+BzrS,EAAAA,KAC/B0rS,YAAa,WACT,MAAO,CAAC,EAAG,IAEfC,kBAAmB3rS,EAAAA,KACnB4pS,gBAAiB,WACb,IAAIltT,EAAS1uM,KAAKk8f,QACd5uE,EAASttb,KAAK+4U,QACd99T,EAAOyzL,EAAOp9L,MAAQ,GAAKo9L,EAAOn9L,OAAS,EAAI,CAACm9L,EAAOh2L,KAAMg2L,EAAO51L,IAAK41L,EAAOp9L,MAAQo9L,EAAO3wL,MAAO2wL,EAAOn9L,OAASm9L,EAAO1wL,QAAU,CAAC,EAAG,EAAG,EAAG,GACrJ/C,EAAOqya,EAAO8nE,QAAQn6e,EAAMjb,KAAK09f,eACjC,IAAIE,EAAW59f,KAAK69f,WAAW5if,IAASA,EACxCqya,EAAOl6Q,SAASwqV,EAAU59f,KAAK29f,qBAAuBC,IAE1DE,WAAY,SAAStwf,EAAMuwf,GACvB,IAAIxte,EAAQvwB,KAAK83f,cAAcvne,MAAM/iB,GACjCqX,EAAS7kB,KAAK6kB,OAAOrX,GACzB,OAAOuwf,OAAW,IAAWl5e,EAASA,EAAS0L,GAAQznB,EAAAA,EAAAA,IAAO,EAAM,GAAIynB,EAAO1L,IAEnF02e,oBAAqB,WACjB,IAAI3lU,EAAO51L,KACPg+f,GAAiBjN,EAAAA,EAAAA,aAAan7T,EAAKkoU,WAAW,kBAAkB,IAAO,GACvEloU,EAAKqoU,uBACLroU,EAAKgnU,uBAEThnU,EAAKqoU,sBDtYN,SAA6Bz2E,EAAgBw2E,EAAgBzhf,GAChE,IAAI2hf,EACAC,EAAgBnI,EAAiBz5e,GAMrC,MALI,gBAAiBqve,EAAAA,EAAAA,eAAcoS,GAC/BE,EAAiBC,GAAc,SAAA59f,GAAO,OAAI69f,EAAAA,QAAAA,IAA2B79f,MAAU,SAAAA,GAAO,OAAI69f,EAAAA,QAAAA,OAA8B79f,OACjH,IAASy9f,IAChBE,EAAiBC,GAAc,SAAA59f,GAAO,OAAI82P,EAAAA,EAAAA,QAAgCmwL,EAAgBjnb,MAAU,kBAAM82P,EAAAA,EAAAA,UAAkCmwL,OAEzI02E,EC8X0BG,CAAoBzoU,EAAKhxK,UAAU,GAAIo5e,GAAgB,kBAAMpoU,EAAKoiU,eAAe,CAAC,uBAEnH4E,qBAAsB,WACd58f,KAAKi+f,wBACLj+f,KAAKi+f,wBACLj+f,KAAKi+f,sBAAwB,OAGrCK,eAAgBtsS,EAAAA,KAChBwxB,YAAa,WACT,IAAI5tD,EAAO51L,KAMX,OALI41L,EAAK+tD,cAAgB/tD,EAAKovD,qBAC1BpvD,EAAK0oU,iBACL1oU,EAAKiiU,mBAETjiU,EAAK27B,SAASvrM,MAAM4vK,EAAM7tL,WACnB6tL,GAEXuuD,UAAW,WAGP,OAFAnkP,KAAKuxN,WACLvxN,KAAKglP,oBAAsBhlP,KAAKs5f,iBACzBt5f,MAEX6kB,OAAQ,SAASrX,GACb,IAAIooL,EAAO51L,KACX,KAAI41L,EAAK+tD,cAAgB/tD,EAAK2jU,mBAAqBxxf,UAAUzH,OAAS,IAAKi+f,EAAAA,EAAAA,IAAU/wf,KAIjF,OAAOiqU,EAAQzxT,MAAM4vK,EAAM7tL,WAH3B6tL,EAAK+jU,cAAgB/jU,EAAK+jU,eAAiB,GAC3C/jU,EAAK+jU,cAAc/4f,KAAKg1L,EAAK4oU,sBAAsBz2f,aAK3Dy2f,sBAAuB,SAASh4e,GAC5B,IAAIovK,EAAO51L,KACX,OAAO,WACHy3U,EAAQzxT,MAAM4vK,EAAMpvK,KAG5B+kO,OAAQv5B,EAAAA,KACR8J,QAAS9J,EAAAA,KACTkK,eAAgB,SAASntM,GACrB,IAAI6mK,EAAO51L,KACX,IAAI41L,EAAK8hU,qBAAT,CAGA,IAAI+G,EAAiB7oU,EAAK8oU,4BAA4B3ve,GAClD6wD,EAAU,GACV6+a,EAAen+f,OAAS,EACxBm+f,EAAex+f,SAAQ,SAAA0+f,GAAE,OAAI/+a,EAAQh/E,KAAKg1L,EAAKgpU,yBAAyBD,OAExE/+a,EAAQh/E,KAAKg1L,EAAKipU,kBAAkB9ve,EAAIvhB,OAE5CoyE,EAAUA,EAAQh6E,QAAO,SAAA4V,GAAC,QAAMA,KAC5Bo6K,EAAK8iU,cAAcl5d,OAAOzQ,EAAIvhB,MAC9BooL,EAAKmjU,QAAQ,CAAC,WACPn5a,EAAQt/E,OAAS,EACxBs1L,EAAKmjU,QAAQn5a,GAEbg2G,EAAK27B,SAASvrM,MAAM4vK,EAAM7tL,aAGlCgyf,QAAS/nS,EAAAA,KACTynS,gBAAiBznS,EAAAA,KACjB6sS,kBAAmB,CACfrmf,KAAM,iBACN8rL,OAAQ,iBACR05T,eAAgB,iBAChBzte,MAAO,QACPwhD,WAAY,QACZosM,WAAY,QACZ50B,YAAa,eACbn+O,SAAU,YAEdwzf,yBAA0B,GAC1BE,0BAA2B,GAC3BJ,4BAA6B,SAASK,GAClC,IAAInpU,EAAO51L,KACPwlP,EAAWu5Q,EAAcv5Q,SACzB4gI,EAAW5gI,EAAS/3O,MAAM,OAC1BD,EAAOuxf,EAAcvxf,KACrB5L,EAAQm9f,EAAcn9f,MACtBwY,EAAUpa,KAAK8+f,0BAA0Btxf,GACzCwxf,EAA2B,GAmB/B,OAlBI5kf,KACI,IAASA,EACT4kf,EAAyBp+f,KAAK4M,IAE9B4M,EAAQna,SAAQ,SAAAwuF,GACZ+2J,EAASr/O,QAAQsoF,IAAO,GAAKuwa,EAAyBp+f,KAAK6tF,MAE3D,IAAM23R,EAAS9lX,SACX,YAAaqjB,EAAAA,EAAAA,IAAK/hB,GAClBg0L,EAAKqpU,gCAAgCr9f,EAAOwY,EAAS4kf,GAC9C,WAAYr7e,EAAAA,EAAAA,IAAK/hB,IACpBA,EAAMtB,OAAS,GAAKsB,EAAMo0C,OAAM,SAAA91C,GAAI,OAAI01L,EAAKspU,8BAA8Bh/f,EAAMka,OACjFxY,EAAM3B,SAAQ,SAAAC,GAAI,OAAI01L,EAAKqpU,gCAAgC/+f,EAAMka,EAAS4kf,SAMvFA,EAAyBp5f,QAAO,SAAChE,EAAOf,EAAO+lB,GAAf,OAAwBA,EAAKzgB,QAAQvE,KAAWf,MAE3Fq+f,8BAA+B,SAASC,EAAc/kf,GAClD,OAAQtT,OAAOC,KAAKo4f,GAAc58e,MAAK,SAAAvb,GAAG,OAAK,IAAMoT,EAAQjU,QAAQa,OAEzEi4f,gCAAiC,SAASE,EAAc/kf,EAAS4kf,GAC7D,IAAII,EAAat4f,OAAOC,KAAKo4f,GACzBn/f,KAAKk/f,8BAA8BC,EAAc/kf,IACjDglf,EAAWn/f,SAAQ,SAAA+G,GAAG,OAAIoT,EAAQjU,QAAQa,IAAQ,GAAKg4f,EAAyBp+f,KAAKoG,OAG7F8iP,mBAAoB,WAChB9pP,KAAKuf,UAET47e,gBAAiB,WACbn7f,KAAK83f,cAAcl7W,SAAS58I,KAAK6kB,OAAO,SAAU7kB,KAAK6kB,OAAOuxe,KAElEiJ,oBAAqB,WACjB,MAAO,CACHv2e,IAAK9oB,KAAK6kB,OAAOuxe,GACjBj4O,WAAYn+Q,KAAK6kB,OAAO,cACxBy/M,UAAWtkO,KAAKw8f,yBAGxBnB,oBAAqB,WACjBr7f,KAAKo4f,UAAU9yX,WAAWtlI,KAAKq/f,wBAEnCC,IAAK,WACD,OAAOt/f,KAAKo4f,UAAUkH,OAE1BrkP,QAAS,WACL,IAAIvsE,EAAS1uM,KAAKk8f,SAAW,GAC7B,MAAO,CACH5qf,MAAOo9L,EAAOp9L,MACdC,OAAQm9L,EAAOn9L,SAGvBi4e,QAAS+M,GACTgJ,aAAcjJ,EACdkJ,cAAe,WACXx/f,KAAKwpf,QAAU+M,IAEnBkJ,sBAAuB,WACnB,IAAIz+d,EAAWhhC,KAAKo4f,UAChBsH,EFlmByB/J,EEmmB7B,IAAK,IAAI1rf,KAAMy1f,EACX,IAAK1/f,KAAKw3f,gBAAgBvtf,GAAK,CAC3B,MAOIy1f,EAASz1f,GANHkwF,EADV,EACIx2E,KACQqrL,EAFZ,EAEIA,OACe2wT,EAHnB,EAGIA,cACUh2e,EAJd,EAIIA,SACOrY,EALX,EAKIA,MACQC,EANZ,EAMIA,OAEJ,OAAQ4oF,GACJ,IAAK,SACDn6F,KAAKw3f,gBAAgBvtf,GAAM+2B,EAAS4+d,eAAe5wT,EAAQ/kM,EAAI01f,GAC/D,MACJ,IAAK,SACD3/f,KAAKw3f,gBAAgBvtf,GAAM+2B,EAAS6+d,eAAe7wT,EAAQ/kM,GAC3D,MACJ,IAAK,UACDjK,KAAKw3f,gBAAgBvtf,GAAM+2B,EAAS8+d,cAAc71f,EAAIjK,KAAKu2N,aAAa5sM,GAAWrY,EAAOC,MAK9Gwuf,OAAQ,WACJ,IAAInqU,EAAO51L,KACX41L,EAAK4zT,QAAU+M,GACX3gU,EAAK2pU,gBACL3pU,EAAKwiU,UAAU4H,gBAAgB,WAC3BpqU,EAAK4zT,QAAU8M,KAGvB1gU,EAAK8iU,cAAc,QAAS,OAGpC,OACAuH,EAAAA,EAAAA,IAAerJ,4JChpBXxhE,IAAgB94N,EAAAA,EAAAA,MAEpB,SAAS4jS,IACLlggB,KAAKu7B,QAuBT,SAAS4ke,EAAYC,EAASC,GAC1B,OAAOD,IAAYC,GAAUvQ,EAAAA,EAAAA,GAAQ,GAAIsQ,EAASC,IAAWvQ,EAAAA,EAAAA,GAAQ,GAAIsQ,GAG7E,SAASE,EAAaC,EAAUC,GAC5B,OAAOD,IAAaC,EAAWD,EAAS3ke,OAAO4ke,GAAYD,EAAS96f,QAGxE,SAASg7f,EAAkBrjb,GACvBA,EAAMw9a,mBAAqBx9a,EAAMy9a,oBAAoBj/d,OAAOwhD,EAAM09a,oBAAqB19a,EAAM29a,qBAGjG,SAAS2F,EAAUl0f,GACf,IAAI4wE,EAAQp9E,KAAKwF,UACb+9J,EAAO/2J,EAAS+2J,KACpBnmF,EAAM,WAAammF,GAAQ/2J,EAASjM,QAChCiM,EAASm0f,kBACTvjb,EAAM66a,uBAAuBr3f,KAAK2iK,GAElC/2J,EAASqY,SACTu4D,EAAMyhb,kBAAkBryf,EAASqY,QAAU0+I,IAC7C/2J,EAASo0f,eAAiBxjb,EAAMy9a,oBAAsBz9a,EAAM29a,qBAAqBn6f,KAAK2iK,GACxFk9V,EAAkBrjb,GAGtB,SAASyjb,IACL,IAAIC,EAAe,SAASA,IACxB,IAAI/0f,EAEA8C,EADA8lO,EAAKmsR,EAAaC,OAAOzggB,OAE7B,IAAKyL,EAAI,EAAGA,EAAI4oO,IAAM5oO,EAClB8C,EAASiyf,EAAaC,OAAOh1f,GAAGia,MAAMhmB,KAAM+H,WAEhD,OAAO8G,GASX,OAPAiyf,EAAaC,OAAS,GACtBD,EAAax/f,IAAM,SAASpB,GACxB4ggB,EAAaC,OAAOnggB,KAAKV,IAE7B4ggB,EAAazvc,KAAO,SAAS+0J,GACzB06S,EAAaC,OAAS36S,EAAS26S,OAAOt7f,SAEnCq7f,EAEJ,SAASnpU,EAAO/wL,EAAQ4G,EAAMwzf,GACjC,IAAI1iR,EAAU13O,EAAO4G,GAChB8wO,EAEOA,EAAQh9O,MAKZ,IAAUwF,OAAOtB,UAAUsxE,eAAer2E,KAAKmG,EAAQ4G,KACvD8wO,EAAUuiR,KACFxvc,KAAKzqD,EAAO4G,IAExB8wO,EAAQh9O,IAAI0/f,MARZ1iR,EAAUuiR,KACFv/f,IAAIsF,EAAO4G,IACnB8wO,EAAQh9O,IAAI0/f,IAJZ1iR,EAAU0iR,EAYdp6f,EAAO4G,GAAQ8wO,EAGnB,SAAS2iR,EAAU9H,GACf,IAAI/7a,EAAQp9E,KAAKwF,UACjB43E,EAAM87a,SAASt4f,KAAKu4f,GACpBA,EAAO7I,YAAclza,EAAMiza,YAAYzvf,KAAKolB,MAAMo3D,EAAMiza,YAAa8I,EAAO7I,YACxE6I,EAAO7gR,UACPw3Q,EAAAA,EAAAA,GAAQ9vf,KAAKwF,UAAW2zf,EAAO7gR,SAE/B6gR,EAAO+H,WACP/H,EAAO+H,UAAUlhgB,MAEjBm5f,EAAOx7b,WACP72D,OAAOC,KAAKoyf,EAAOx7b,WAAW19D,SAAS,SAAS+G,GAC5C,IAAIm7C,EAAOg3c,EAAOx7b,UAAU32D,GAC5B2wL,EAAOv6G,EAAOp2E,EAAKm7C,KACnBniD,MAjGZkggB,EAAM16f,UAAY,CACdgJ,YAAa0xf,EACb5+f,IAAK,SAAS+3f,GACV,IAAIttf,EACA4oO,EAAK0kR,EAAM/4f,OACXiiH,EAAQviH,KAAKmhgB,OACjB,IAAKp1f,EAAI,EAAGA,EAAI4oO,IAAM5oO,EAClBw2G,EAAM82Y,EAAMttf,IAAM,GAG1B8tB,IAAK,SAAS0pI,GACV,OAAOvjK,KAAKmhgB,OAAO59V,GAAQ,GAE/BrqF,MAAO,WACH,OAAOpyE,OAAOC,KAAK/G,KAAKmhgB,QAAQ7ggB,QAEpCi7B,MAAO,WACHv7B,KAAKmhgB,OAAS,KAmFf,IAAIlB,EAAiB7qE,EAAe,SAASn1Z,GAChD,IAAImhe,EAAWnhe,EAAO++H,QACtB/+H,EAAO++H,QAAU,WACb,IAAInwJ,EAASuyf,EAASp7e,MAAMhmB,KAAM+H,WAC9Bq1E,EAAQvuE,EAAOrJ,UAKnB,MAJA,CAAC,WAAY,aAAc,kBAAmB,yBAA0B,oBAAqB,sBAAuB,sBAAuB,sBAAuB,sBAAsBvF,SAAS,SAAS+G,GACtMo2E,EAAMp2E,GAAO,MAEjB6H,EAAOoyf,UAAYjvS,EAAAA,KACZnjN,GAEXoxB,EAAOyge,UAAY1uS,EAAAA,KACnB/xL,EAAOghe,UAAYjvS,EAAAA,MACnB,SAAS/xL,GACT,IAAImhe,EAAWnhe,EAAO++H,QACtB/+H,EAAO++H,QAAU,WACb,IAAI5hF,EAAQp9E,KAAKwF,UACb67f,EAAUjkb,EAAM87a,SAChB5I,EAAalza,EAAMiza,YACnByM,EAAY1/a,EAAM+5a,WAClBmK,EAAiBlkb,EAAM47a,gBACvBuI,EAAwBnkb,EAAM66a,uBAC9BuJ,EAAmBpkb,EAAMyhb,kBACzB4C,EAA0Brkb,EAAMwhb,yBAChC8C,EAA2Btkb,EAAM0hb,0BACjC6C,EAAqBvkb,EAAMy9a,oBAC3B+G,EAAqBxkb,EAAM09a,oBAC3B+G,EAAqBzkb,EAAM29a,oBAC3Blsf,EAASuyf,EAASp7e,MAAMhmB,KAAM+H,WAelC,OAdAq1E,EAAQvuE,EAAOrJ,WACT0zf,SAAWoH,EAAae,EAASjkb,EAAM87a,UAC7C97a,EAAMiza,YAAciQ,EAAahQ,EAAYlza,EAAMiza,aACnDjza,EAAM+5a,WAAagJ,EAAYrD,EAAW1/a,EAAM+5a,YAChD/5a,EAAM47a,gBAAkBsH,EAAagB,EAAgBlkb,EAAM47a,iBAC3D57a,EAAM66a,uBAAyBqI,EAAaiB,EAAuBnkb,EAAM66a,wBACzE76a,EAAMyhb,kBAAoBsB,EAAYqB,EAAkBpkb,EAAMyhb,mBAC9Dzhb,EAAMwhb,yBAA2BuB,EAAYsB,EAAyBrkb,EAAMwhb,0BAC5Exhb,EAAM0hb,0BAA4BqB,EAAYuB,EAA0Btkb,EAAM0hb,2BAC9E1hb,EAAMy9a,oBAAsByF,EAAaqB,EAAoBvkb,EAAMy9a,qBACnEz9a,EAAM09a,oBAAsBwF,EAAasB,EAAoBxkb,EAAM09a,qBACnE19a,EAAM29a,oBAAsBuF,EAAauB,EAAoBzkb,EAAM29a,qBACnE0F,EAAkBrjb,GAClBvuE,EAAOoyf,UAAYA,EACZpyf,GAEXoxB,EAAOz6B,UAAU0zf,SAAW,GAC5Bj5d,EAAOz6B,UAAU6qf,YAAc,GAC/Bpwd,EAAOyge,UAAYA,EACnBzge,EAAOghe,UAAYA,GAEhB,SAASrhb,IACZ,OAAO,IAAIsgb,kdCjKXluS,EAAO,aACA8vS,EAAkB,CACzBC,aAAc,SAASzob,EAAKz9D,EAAOuX,GAC/B,OAAO,IAAMkmD,EAAMlmD,GAAO,EAAIzN,KAAKg7C,IAAI,EAAI2Y,EAAK,KAAOlmD,EAAMvX,KAAUA,GAE3EshN,OAAQ,SAAS7jJ,EAAKz9D,EAAOuX,GACzB,OAAO,IAAMkmD,EAAMlmD,EAAMkmD,GAAOlmD,EAAMvX,KAAUA,IAG7Cmmf,EAAmB,CAC1BC,SAAU,SAASr1X,EAAM7qG,EAAQmge,EAAU5kS,EAAQ6kS,GAC/C,IAEIC,EACAC,EACAt2f,EACAw+E,EALAphF,EAAO44B,EAAO54B,KACd63D,EAAKj/B,EAAOi/B,GAKZihc,EAAW,GACf,IAAKl2f,EAAI,EAAGA,EAAI5C,EAAK7I,OAAQyL,IAAK,CAG9B,GADAs2f,EAAM,EADND,EAASj5f,EAAK4C,IACA,IACVq2f,EAAO9hgB,OAAS,EAChB,IAAKiqF,EAAI,EAAGA,EAAI63a,EAAO9hgB,OAAQiqF,IAC3B83a,EAAIzhgB,KAAK08N,EAAO4kS,EAAUE,EAAO73a,GAAIvpB,EAAGj1D,GAAGw+E,KAGnD03a,EAASrhgB,KAAKyhgB,GAElBF,EAAcF,SAAWlge,EAAO3O,KAAO,IAAM8ue,EAAWnge,EAAO3O,IAAM6ue,EACrEr1X,EAAKhtH,KAAK,CACNqif,SAAUA,KAGlBK,IAAK,SAAS11X,EAAM7qG,EAAQmge,EAAU5kS,GAClC,IAAIn0N,EAAO44B,EAAO54B,KACd63D,EAAKj/B,EAAOi/B,GACZs9K,EAAU,GACd,IAAK,IAAIvyO,KAAK5C,EACVm1O,EAAQvyO,GAAKuxN,EAAO4kS,EAAU/4f,EAAK4C,GAAIi1D,EAAGj1D,IAE9C6gI,EAAKhtH,KAAK0+N,IAEd/1N,UAAW,SAASqkH,EAAM7qG,EAAQmge,EAAU5kS,EAAQ6kS,GAChD,IAAIh5f,EAAO44B,EAAO54B,KACd63D,EAAKj/B,EAAOi/B,GACZs9K,EAAU,GACd,IAAK,IAAIvyO,KAAK5C,EACVm1O,EAAQvyO,GAAKo2f,EAAcp2f,GAAKuxN,EAAO4kS,EAAU/4f,EAAK4C,GAAIi1D,EAAGj1D,IAEjE6gI,EAAKhtH,KAAK0+N,IAEd52G,KAAM,SAASkF,EAAM7qG,EAAQmge,EAAU5kS,EAAQ6kS,EAAeI,GAC1D,IAAI70b,EAAM,GACVA,EAAI60b,GAAiBJ,EAAcI,GAAiBjlS,EAAO4kS,EAAUnge,EAAO54B,KAAM44B,EAAOi/B,IACzF4rE,EAAKhtH,KAAK8tD,IAEdhzD,EAAGs3M,EACHiS,SAAU,SAASnkO,EAAS0igB,GACxB1igB,EAAQ8f,KAAK4if,KAIrB,SAASnkd,EAAKu0D,GACV,IACIuiJ,EADAstQ,EAAczigB,KAAK0igB,aAGvB,IAAKvtQ,KADLn1P,KAAK2igB,UAAY3igB,KAAK4igB,cAAchwZ,GACnB5yG,KAAK+hC,OAAQ,EACf0ge,EAAYttQ,IAAastQ,EAAY/6X,MAC3C1nI,KAAKF,QAASE,KAAK+hC,OAAOozN,GAAWn1P,KAAK2igB,UAAW3igB,KAAK6igB,QAAS7igB,KAAK8igB,eAAgB3tQ,GAGjG,OADAn1P,KAAKoa,QAAQikC,MAAQr+C,KAAKoa,QAAQikC,KAAKr+C,KAAK6igB,QAAQ7igB,KAAK2igB,UAAW,EAAG,GAAI3igB,KAAK2igB,WAC5E,IAAM3igB,KAAK2igB,WACJ3igB,KAAKua,OAKpB,SAASwof,EAAUnwZ,GAIf,OAHIA,EAAM5yG,KAAKgjgB,YAAchjgB,KAAK89H,QAC9B99H,KAAKijgB,KAAO5kd,IAET,EAGX,SAASxiC,EAAM+2F,GAGX,OAFA5yG,KAAKgjgB,WAAapwZ,EAClB5yG,KAAKijgB,KAAOjjgB,KAAK89H,MAAQilY,EAAY1kd,GAC9B,EAGX,SAAS6kd,EAAUpjgB,EAASiiC,EAAQ3nB,GAChCpa,KAAK2igB,UAAY,EACjB3igB,KAAKF,QAAUA,EACfE,KAAK+hC,OAASA,EACd/hC,KAAKoa,QAAUA,EACfpa,KAAKw/N,SAAWplN,EAAQ+of,kBAAoB/of,EAAQolN,SAAWplN,EAAQ+of,kBAAoB/of,EAAQolN,SACnGx/N,KAAK89H,MAAQ1jH,EAAQ0jH,OAAS1jH,EAAQolN,SAAWplN,EAAQ0jH,OAAS,EAClE99H,KAAK0igB,aAAetof,EAAQqof,aAAeT,EAC3ChigB,KAAK6igB,QAAUf,EAAgB1nf,EAAQkjN,SAAWwkS,EAAgBC,aAClE/hgB,KAAK8igB,eAAiB,GACtB9igB,KAAKijgB,KAAOpnf,EAcT,SAASunf,EAAoBtjgB,GAChCE,KAAKqjgB,gBAAkB,EACvBrjgB,KAAKsjgB,SAAW,KAChBtjgB,KAAKujgB,YAAc,GACnBvjgB,KAAKF,QAAUA,EAhBnBojgB,EAAU19f,UAAY,CAClBo9f,cAAe,SAAShwZ,GACpB,OAAOjtF,KAAKG,IAAI,GAAI8sF,EAAM5yG,KAAK89H,MAAQ99H,KAAKgjgB,YAAchjgB,KAAKw/N,WAEnEjlN,KAAM,SAASipf,GACX,IAAIppf,EAAUpa,KAAKoa,QACfqof,EAAczigB,KAAK0igB,aACvB1igB,KAAKua,KAAOva,KAAKijgB,KAAOjxS,EACxBywS,EAAYx+R,UAAYw+R,EAAYx+R,SAASjkO,KAAKF,QAASE,KAAK8igB,gBAChE1of,EAAQ6pN,WAAau/R,GAAmBppf,EAAQ6pN,aASxDm/R,EAAoB59f,UAAY,CAC5B6gX,MAAO,WACH,IAIIo9I,EAJA7tU,EAAO51L,KACP0jgB,EAAa9tU,EAAK2tU,YAClBI,EAAkB,EAClB/wZ,GAAO,IAAItkC,MAAM21L,UAEjBrtD,EAAehhB,EAAKguU,cACxB,IAAKH,KAAMC,EACFA,EAAWD,GAAIR,KAAKrwZ,WACd8wZ,EAAWD,GAEtBE,IAEJ,GAAI,IAAMA,EAQN,OAPA/tU,EAAKr7K,YACLq7K,EAAKiuU,mBAAqBjtT,GAAgB/zM,YAAY,WAC9C,IAAM+yL,EAAKytU,kBACXzsT,IACAhhB,EAAKguU,cAAgB,UAKjChuU,EAAK0tU,SAAWrzX,EAAAA,sBAAAA,KAA2B,MAAO,WAC9C2lD,EAAKywL,UACLzwL,EAAK91L,UAEbgkgB,aAAc,SAASx/R,GACnB,IAAI1uC,EAAO51L,KACX41L,EAAK2tU,YAAY3tU,EAAKytU,mBAAqB/+R,EAC3CpmM,aAAa03J,EAAKiuU,oBACbjuU,EAAK0tU,WACNple,aAAa03J,EAAKmuU,aAClBnuU,EAAKmuU,YAAclhgB,YAAY,WAC3B+yL,EAAK0tU,SAAW,EAChB1tU,EAAKywL,UACL,KAGZ29I,eAAgB,SAASp3X,EAAM7qG,EAAQ3nB,GAC/BwyH,GAAQ7qG,GAAU3nB,IAClBwyH,EAAK03F,WAAa13F,EAAK03F,UAAU/pN,OACjCva,KAAK8jgB,aAAal3X,EAAK03F,UAAY,IAAI4+R,EAAUt2X,EAAM7qG,EAAQ3nB,MAGvE4lf,eAAgB,SAASppT,GACrB52M,KAAKqjgB,gBAAkBrjgB,KAAK4jgB,cAAgBhtT,EAAeA,KAE/Dx4L,QAAS,WACLpe,KAAKua,OACLva,KAAKF,QAAU,MAEnBya,KAAM,WACFva,KAAKujgB,YAAc,GACnBvjgB,KAAKqjgB,gBAAkB,GACvBzmS,EAAAA,EAAAA,sBAAqB58N,KAAKsjgB,UAC1Bple,aAAal+B,KAAK+jgB,aAClB7le,aAAal+B,KAAK6jgB,oBAClB7jgB,KAAKsjgB,SAAW,MAEpB1kZ,KAAM,WACF,IAAI6kZ,EAEAQ,EACAC,EAFAR,EAAa1jgB,KAAKujgB,YAGtB,IAAKE,KAAMC,EACPO,EAAcP,EAAWD,GAAIrpf,QAAQ6pf,YACrCC,EAA6BA,GAA8BD,EACtDA,IACDP,EAAWD,GAAIlpf,MAAK,UACbmpf,EAAWD,KAExBS,GAA8BlkgB,KAAKua,mCC9KzCkL,GAASwoM,EAAAA,EAAAA,MAEJroM,EAELD,KAFAC,IACO4H,EACP7H,KADA6H,MAKA22e,EAAqB,CACrB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACfjzX,SAAS,EACTypX,OAAO,EACPyJ,SAAS,EACTC,QAAQ,EACR,WAAW,EACX92e,MAAM,GAGN+2e,EAAa,SACbC,EAAmB,eACnBC,EAAqB,iBACrBC,EAAgB,YAKhBC,EAAO,OAEPC,EAAW,MACXC,EACK99f,OAAOw4B,OAOD,SAAS89C,GACZ,OAAOt2E,OAAOw4B,OAAO89C,IAPlB,SAASA,GACZ,IAAIynb,EAAI,aAER,OADAA,EAAEr/f,UAAY43E,EACP,IAAIynb,GAQnBC,EAAW,CACXC,OAAQ,EACRv+d,OAAQ,EACR,iBAAkB,MAElBw+d,GAAYvoS,EAAAA,EAAAA,IAAU,WACtB,IAAIwoS,EAAkBrrS,EAAAA,EAAAA,cAAyB,OAG/C,OAFAqrS,EAAgBhnf,MAAMvF,KAAO,UAC7Busf,EAAgBhnf,MAAMkI,SAAW,WAC1B,CACH8+e,gBAAiBA,EACjBC,cAAe,MAuBvB,SAASC,EAAiBvjgB,GACtB,OAAOA,GAAS,kBAAoBA,EAGxC,SAASwhC,EAAcm/K,GACnB,OAAOqX,EAAAA,EAAAA,gBAA2B,6BAA8BrX,GAE7D,SAAS6iT,EAAWn7f,EAAIoyf,GAC3B,OAAO,OAASpyf,EAAK,QAAUoyf,EAAe52e,EAAOua,SAAS+/B,KAAKtyD,MAAM,KAAK,GAAK,IAAM,IAAMxD,EAAK,IAAMA,EAG9G,SAASnB,EAAOlC,EAAQ+mH,GACpB,IAAI3mH,EACJ,IAAKA,KAAO2mH,EACR/mH,EAAOI,GAAO2mH,EAAO3mH,GAEzB,OAAOJ,EAEX,IAAIy+f,EAAyB,CACzB//K,KAAMo/K,EACNY,QAAS,WACTC,WAAY,WACZC,WAAY,WACZC,UAAW,WACXnif,OAAQ,WACRoif,aAAc,WACdC,SAAU,WACVC,YAAa,WACbC,YAAa,YAEV,SAASC,EAAqBhmgB,EAASwsP,GAoB1C,OAnBIA,EAAMy5Q,UAAY,UAAWna,EAAAA,EAAAA,eAAct/P,EAAMy5Q,SAAS1qX,aAC1DixG,EAAQxjP,EAAO,GAAIwjP,IACbpwH,KAAOp8H,EAAQkmgB,UAAYlmgB,EAAQkhC,SAASile,iBAAiB,CAC/D7sd,MAAOkzM,EAAMpwH,KACb6pY,SAAUz5Q,EAAMy5Q,UACjBjmgB,EAAQkmgB,UAAW,kBACf15Q,EAAM1mP,QACN9F,EAAQkmgB,WACflmgB,EAAQkhC,SAASkle,oBAAoBpmgB,EAAQkmgB,WAC7ClmgB,EAAQkmgB,UAAY,YACb15Q,EAAM1mP,QACN0mP,EAAM1mP,QACb0mP,EAAQxjP,EAAO,GAAIwjP,IACb1mP,OAAS9F,EAAQwmD,QAAUxmD,EAAQkhC,SAASile,iBAAiB,GAAInmgB,EAAQwmD,QAAS,UACjFxmD,EAAQwmD,UACfxmD,EAAQkhC,SAASkle,oBAAoBpmgB,EAAQwmD,SAC7CxmD,EAAQwmD,QAAU,aAEfgmM,EAAMy5Q,SACNz5Q,EAEX,IAAI65Q,EAAe,SAASn1f,EAAG2M,EAAGyof,EAAQC,EAAQC,EAAeC,EAAeC,EAAaC,EAAaC,EAAUC,GAChH,MAAO,CAAC,KAAM31f,EAAIq1f,EAASC,GAAeryc,QAhIzB,IAgImDt2C,EAAI0of,EAASE,GAAetyc,QAhI/E,GAgIwG,IAAKoyc,EAAOpyc,QAhIpH,GAgI6Ioyc,EAAOpyc,QAhIpJ,GAgI6K,EAAG0yc,EAAU,GAAI31f,EAAIq1f,EAASG,GAAavyc,QAhIxN,IAgIkPt2C,EAAI0of,EAASI,GAAaxyc,QAhI5Q,GAgIqSyyc,EAAW,IAAM,KAAM11f,EAAIo1f,EAASI,GAAavyc,QAAQ,IAAKt2C,EAAIyof,EAASK,GAAaxyc,QAhI7X,GAgIsZ,IAAKmyc,EAAOnyc,QAhIla,GAgI2bmyc,EAAOnyc,QAhIlc,GAgI2d,EAAG0yc,EAAU,GAAI31f,EAAIo1f,EAASE,GAAeryc,QAhIxgB,IAgIkiBt2C,EAAIyof,EAASG,GAAetyc,QAhI9jB,GAgIulB,KAAKhjD,KAAK,MAGtnB,SAAS21f,EAAkBlnD,EAAQ/7b,GAC/B,IAAIu9C,EAAO,CACP,CAAC,IAAK,EAAG,IAEb,OAAQv9C,GACJ,IAAK,OACDu9C,EAAO2lc,EAAkBnnD,GACzB,MACJ,IAAK,OACDx+Y,EAAO2lc,EAAkBnnD,GAAQ,GACjC,MACJ,IAAK,SACDx+Y,EAAO4lc,EAAmBpnD,GAC1B,MACJ,IAAK,aACDx+Y,EAAO4lc,EAAmBpnD,GAAQ,GAE1C,OAAOx+Y,EAGX,SAAS2lc,EAAkBnnD,EAAQx4Y,GAC/B,OAAO6/b,EAAcrnD,EAAQsnD,EAAwB9/b,GAGzD,SAAS4/b,EAAmBpnD,EAAQx4Y,GAChC,OAAO6/b,EAAcrnD,EAAQunD,EAAyB//b,GAG1D,SAAS6/b,EAAcrnD,EAAQwnD,EAAoBhgc,GAC/C,IAAIigc,EACAp7f,EACA4oO,EACAzzK,EAAO,GACX,GAAI,QAAUimc,EAAWznD,EAAO,UAAO,IAAWynD,GAAYA,EAAS7mgB,OACnE,IAAKyL,EAAI,EAAG4oO,EAAK+qO,EAAOp/c,OAAQyL,EAAI4oO,IAAM5oO,EACtCm7f,EAAmBxnD,EAAO3zc,GAAIm7D,EAAOhG,QAGzCgmc,EAAmBxnD,EAAQx4Y,EAAOhG,GAEtC,OAAOA,EAGX,SAAS8lc,EAAuBtnD,EAAQx4Y,EAAOhG,GAC3C,IAAIn1D,EAAI,EACJq7f,EAAKlmc,EAAK5gE,OACVq3D,EAAIyvc,EACJzyR,GAAM+qO,GAAU,IAAIp/c,OACxB,GAAIq0O,EAAI,CACJ,QAAI,IAAW+qO,EAAO,GAAG1uc,EACrB,KAAOjF,EAAI4oO,GACPzzK,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO3zc,GAAGiF,EAAG0uc,EAAO3zc,KAAK4R,QAG/C,KAAO5R,EAAI4oO,GACPzzK,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO3zc,KAAM2zc,EAAO3zc,MAG9Cm1D,EAAKkmc,GAAI,GAAK,SAEdlmc,EAAKvJ,GAAK,CAAC,IAAK,EAAG,GAGvB,OADAuP,GAAShG,EAAKtgE,KAAK,CAAC,MACbsgE,EAGX,SAAS+lc,EAAwBvnD,EAAQx4Y,EAAOhG,GAC5C,IAAIn1D,EACA4rD,EAAIuJ,EAAK5gE,OACTq0O,GAAM+qO,GAAU,IAAIp/c,OACxB,GAAIq0O,EACA,QAAI,IAAW+qO,EAAO,GAAG1uc,EAErB,IADAkwD,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO,GAAG1uc,EAAG0uc,EAAO,GAAG/hc,GACpC5R,EAAI,EAAGA,EAAI4oO,GACZzzK,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO3zc,GAAGiF,EAAG0uc,EAAO3zc,KAAK4R,EAAG+hc,EAAO3zc,GAAGiF,EAAG0uc,EAAO3zc,KAAK4R,EAAG+hc,EAAO3zc,GAAGiF,EAAG0uc,EAAO3zc,KAAK4R,QAIvG,IADAujD,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO,GAAIA,EAAO,IAC/B3zc,EAAI,EAAGA,EAAI4oO,GACZzzK,EAAKvJ,KAAO,CAAC,IAAK+nZ,EAAO3zc,KAAM2zc,EAAO3zc,KAAM2zc,EAAO3zc,KAAM2zc,EAAO3zc,KAAM2zc,EAAO3zc,KAAM2zc,EAAO3zc,WAIlGm1D,EAAKvJ,GAAK,CAAC,IAAK,EAAG,GAGvB,OADAuP,GAAShG,EAAKtgE,KAAK,CAAC,MACbsgE,EAuCX,SAASmmc,EAAoBC,EAAU3jf,GACnC,IAAI3S,EAAIs2f,EAASA,EAAShngB,OAAS,GAC/Bqd,EAAI2pf,EAASA,EAAShngB,OAAS,GACnC,OAAQqjB,GACJ,IAAK,OACL,IAAK,OACD2jf,EAAS,GAAK,IACd,MACJ,IAAK,SACL,IAAK,aACDA,EAAS,GAAK,IACdA,EAAS,GAAKA,EAAS,GAAKA,EAAS,GAAKt2f,EAC1Cs2f,EAAS,GAAKA,EAAS,GAAKA,EAAS,GAAK3pf,GAItD,SAAS4pf,EAAsBz8Y,EAAOC,EAAMpnG,GACxC,IAAI2jf,EAAWx8Y,EAAMA,EAAMxqH,OAAS,GAAGmF,QACnCsG,EAAI++G,EAAMxqH,OAEd,IADA+mgB,EAAoBC,EAAU3jf,GACvB5X,EAAIg/G,EAAKzqH,OAAQyL,IACpB++G,EAAM/+G,GAAKu7f,EAAS7hgB,MAAM,GAIlC,SAAS+hgB,EAAsB18Y,EAAOC,EAAMpnG,GACxC,IAAI5X,EACAw0H,EAGAknY,EACAC,EAHAC,EAAc78Y,EAAMxqH,OACpBsngB,EAAa78Y,EAAKzqH,OAGtB,IAAKqngB,EAAc,GAAK,IAAM,IAAMC,EAAa,GAAK,IAAM,EAAG,CAC3D77f,GAAK47f,EAAc,GAAK,EAAI,EAE5BF,GADAlnY,EAAOzV,EAAMrlH,MAAM,EAAGsG,EAAI,IACRw0H,EAAKjgI,OAAS,GAAGmF,MAAM,GACzCiigB,EAAa58Y,EAAMrlH,MAAMsG,EAAI,GAAG,GAAGtG,MAAM,GACzC4hgB,EAAoBI,EAAY9jf,GAChC0jf,EAAoBK,EAAY/jf,GAChC,IAAK,IAAI4mE,EAAIx+E,EAAGw+E,GAAKq9a,EAAa,GAAK,EAAI,EAAGr9a,IAC1CugC,EAAMv7G,OAAOg7E,EAAI,EAAG,EAAGk9a,GACvB38Y,EAAMv7G,OAAOg7E,EAAI,EAAG,EAAGm9a,IAKnC,SAASG,EAAQjyU,EAAMh0J,GACnB,IACI56B,EACApF,EAFAkmgB,EAAalyU,EAAKmyU,QAItB,IAAK/ggB,KADL46B,EAASA,GAAU,GAEfhgC,EAAQggC,EAAO56B,IACX2hD,EAAAA,EAAAA,IAAU/mD,KACVA,GAAS,kBAAoBA,GAAUuigB,EAAmBn9f,GAAc,GAAP,KACjE8ggB,EAAW9ggB,GAAO,KAAOpF,EAAQA,EAAQ,MAGjD,IAAKoF,KAAO8ggB,GACRlmgB,EAAQkmgB,EAAW9ggB,IAEf4uL,EAAK91L,QAAQme,MAAMjX,GAAOpF,EACnB,OAASA,IAChBg0L,EAAK91L,QAAQme,MAAMjX,GAAO,IAGlC,OAAO4uL,EAGX,SAASoyU,EAAWl2b,EAAS4kQ,GACzB,IAAI52U,EAAUgyE,EAAQhyE,QAClBmK,EAAK6nE,EAAQlyD,KAAK82T,GAClBzsU,IAAO,IAAMA,EAAG9D,QAAQ,gBACxBrG,EAAQkkH,gBAAgB0yN,GACxB52U,EAAQgB,aAAa41U,EAAW0uL,EAAWn7f,EAAI6nE,EAAQ9wC,SAASq7d,gBAIxE,SAAS4L,EAASryU,EAAM02D,GACpBA,EAAQA,GAAS,GACjB,IAEItlP,EACApF,EAIAsmgB,EACAC,EACA97M,EACAtgT,EAVAS,EAAWopL,EAAKwyU,UAChB/+X,EAAa,GAGbuD,EAAOgpD,EAAK91L,QACZkhC,EAAW40J,EAAK50J,SAChBlY,EAAMkY,EAASlY,IAKnB,IAAKq8e,EAAiB74Q,GAClB,OAAIA,KAAS9/O,EACFA,EAAS8/O,GAEhBA,KAASw4Q,EACFA,EAASx4Q,GAEb,EAGX,IAAKtlP,KADL8B,EAAOugI,EAAYijH,GACPjjH,EAER,QAAI,KADJznI,EAAQynI,EAAWriI,IACnB,CAIA,GADAwF,EAASxF,GAAOpF,EACZ,UAAYoF,EACZA,EAAM,cACNpF,EAAQ,CACJ8W,KAAMoQ,EAAM,MAAQ,QACpBxF,OAAQ,SACRvF,MAAO+K,EAAM,QAAU,OACxBlnB,IAAU,SACV,IAAI,cAAgBoF,EAAK,CAC5BmhgB,GAAuB,EACvB,SACG,GAAInhgB,IAAQu9f,EACf4D,GAAuB,OACpB,IAAIvmgB,GAAU,SAAWoF,GAAO,cAAgBA,GAAO,WAAaA,GAAQ,IAAMpF,EAAMuE,QAAQ,cAGhG,IAAI,kEAAkE+8B,KAAKl8B,GAAM,CACpFkhgB,GAAqB,EACrB,SACO,aAAahle,KAAKl8B,KACzBkhgB,GAAqB,QANrBtyU,EAAKyyU,qBACLzmgB,EAAQwjgB,EAAWxjgB,EAAOo/B,EAASq7d,cAOnC,OAASz6f,EACTgrI,EAAK5oB,gBAAgBh9G,GAErB4lI,EAAK9rI,aAAakG,EAAKpF,GAG/B,GAAIumgB,GAAwB,cAAe37f,EAKvC,GAJA5K,EAAQ4K,EAASwuC,UACjBqxQ,GAAM,gBAAiBz2H,EAAOA,EAAK0yU,YAAc97f,EAAS+3f,kBAAsB,EAChFv9f,EAAM,mBAEF,MADJpF,EAAQ,OAASA,EAAQ,IAAKgqf,EAAAA,EAAAA,eAAchqf,KACxB,UAAYA,GAASA,IAAU8igB,EAC/C9uU,EAAK91L,QAAQkkH,gBAAgBh9G,OAC1B,CAGH,IADA+E,GADAnK,EAAQA,EAAM8mD,QAAQ,YAAa,QAAQA,QAAQ,QAAS,QAAQA,QAAQ,OAAQ,QAAQA,QAAQ,KAAM,IAAIj7C,MAAM,MAC1GnN,OACHyL,KACHnK,EAAMmK,GAAKkqC,SAASr0C,EAAMmK,IAAMsgT,EAEpCz2H,EAAK91L,QAAQgB,aAAakG,EAAKpF,EAAMqP,KAAK,MAMlD,OAHIi3f,GACAtyU,EAAK2yU,uBAEF3yU,EAuIX,SAAS4yU,EAActnc,EAAMhmB,EAAM+6B,EAAMwyb,EAAaC,GAClD,IAAIzqf,EACA0qf,EACA58f,EACA4oO,EACA6Y,EACJ,QAAI,IAAWv3K,EAAK2yb,UAChB1nc,EAAKtgE,KAAK,CACNgB,MAAOq0E,EAAK2yb,UACZ3qf,MAAOwqf,EACPp6f,UAAWq6f,EACXxtd,KAAMA,EACN3pC,OAAQk3f,EAAYhE,cAAkB,SAEvC,GAAI,OAASxub,EAAKssI,UACnBrnK,OACC,GAAI0+K,EAAAA,EAAAA,cAAyB3jJ,GAAO,CAEvC,OADAntE,EAAOmV,EAAQ,GAAIwqf,GACXxyb,EAAKssI,SACT,IAAK,IACL,IAAK,SACDtkM,EAAM4qf,eAAmB,OACzB,MACJ,IAAK,IACL,IAAK,KACD5qf,EAAM6qf,cAAkB,SACxB,MACJ,IAAK,IACD7qf,EAAM8qf,mBAAuB,YAQrC,KANAJ,EAAY1yb,EAAKh4D,OACPm7B,QAAUn7B,EAAMi+G,KAAOysY,EAAUvvd,OAC3Cuvd,EAAU/td,WAAa38B,EAAMwmf,aAAiBkE,EAAU/td,UACxD+td,EAAUx4P,YAAclyP,EAAM6qf,cAAkBH,EAAUx4P,WAC1Dw4P,EAAUx7T,aAAelvL,EAAM4qf,eAAmBF,EAAUx7T,YAC5Dw7T,EAAUK,iBAAmB/qf,EAAM8qf,mBAAuBJ,EAAUK,gBAC/Dj9f,EAAI,EAA4B4oO,GAAzB6Y,EAAQv3K,EAAK2sC,YAAuBtiH,OAAQyL,EAAI4oO,IAAM5oO,EAC9DmvC,EAAOstd,EAActnc,EAAMhmB,EAAMsyM,EAAMzhP,GAAIkS,EAAOg4D,EAAK5nE,WAAaq6f,GAG5E,OAAOxtd,EAyDX,SAAS+td,GAAav9f,EAAO5L,EAAS2mF,GAClC,IAAI16E,EACA4oO,EACAz0O,EACJ,IAAK6L,EAAI,EAAG4oO,EAAKjpO,EAAMpL,OAAQyL,EAAI4oO,IAAM5oO,GACrC7L,EAAOwL,EAAMK,IACR06E,GAAarjD,EAAc,SAChCljC,EAAKumF,GAAWjP,YAAYoiJ,EAAAA,EAAAA,eAA0B15N,EAAK0B,QAC3D1B,EAAK+d,OAAS4pf,EAAQ,CAClB/ngB,QAASI,EAAKumF,GACdshb,QAAS,IACV7ngB,EAAK+d,OACR/d,EAAKmO,WAAanO,EAAKumF,GAAW3lF,aAAa,QAASZ,EAAKmO,WAC7DvO,EAAQ03E,YAAYt3E,EAAKumF,IAIjC,SAASyib,KACDlpgB,KAAKmpgB,cACLnpgB,KAAK4f,KAAK,CACNjd,KAAM3C,KAAKoogB,UAAUzlgB,OA6CjC,SAASymgB,GAAoBnzb,GACzB,IAAIqF,EAMJ,OALIrF,KACAqF,EAAQrF,EAAKywH,aACP1iF,gBAAgB,KACtB1oC,EAAM0oC,gBAAgB,MAEnB1oC,GAASrF,EAGpB,SAASozb,GAAoBvpgB,GAEzB,IADA,IAAIwpgB,EAAgB1vS,EAAAA,EAAAA,iBAA4B95N,EAAS,SAChDiM,EAAI,EAAGA,EAAIu9f,EAAchpgB,OAAQyL,IACtCjM,EAAQqtD,YAAYm8c,EAAcv9f,IAEtC,OAAOu9f,EAGX,SAASC,GAA4BzpgB,GACjC,IAAIwpgB,EAAgBD,GAAoBvpgB,GACxC,OAAO,WACH,IAAK,IAAIiM,EAAI,EAAGA,EAAIu9f,EAAchpgB,OAAQyL,IACtCjM,EAAQ03E,YAAY8xb,EAAcv9f,KAsD9C,SAASy9f,GAAoB7mgB,EAAMqc,EAAUyqf,EAAUC,GACnD,IAAI/xc,EACAoxP,EACJ,GAAI0gN,GAAYzqf,GAAY0qf,EAAS1qf,EACjC,IAAK24C,EAAI,EAAGoxP,EAAKpmT,EAAKf,MAAMtB,OAAQq3D,GAAKoxP,IAAMpxP,EAC3C,GAAI8xc,EAAW9mgB,EAAKgngB,MAAMC,mBAAmB,EAAGjyc,GAAK34C,EACjD,OAAO24C,EAAI,EAM3B,SAASkyc,GAAalngB,GAClB,OAAOA,EAAKf,MAAMtB,OAASqC,EAAKgngB,MAAMC,mBAAmB,EAAGjngB,EAAKf,MAAMtB,QAAU,EAmErF,SAASwpgB,GAAkBC,EAAkB/iR,GAIzC,OADIA,EADAgjR,sBAE2B,IAAMD,EAAmB,GAAKpF,EAGjE,SAASsF,GAAYtngB,EAAMongB,EAAkB3vf,GACzC,IAAI8vf,EAAWJ,GAAkBC,EAAkB3vf,GACnD,GAAIzX,EAAKf,MAAMtB,QAAUqC,EAAKgngB,MAAMv/e,WAChC,IAAK,IAAIre,EAAIpJ,EAAKf,MAAMtB,OAAS,EAAGyL,GAAK,EAAGA,IAAK,CAC7C,GAAIpJ,EAAK8mgB,SAAW9mgB,EAAKgngB,MAAMC,mBAAmB,EAAG79f,GAAKg+f,EAAkB,CACxEI,GAAWxngB,EAAMoJ,EAAGm+f,GACpB,MACO,IAAMn+f,GACbo+f,GAAWxngB,EAAM,EAAGungB,IAMpC,SAASE,GAASzngB,EAAMqc,EAAU+qf,EAAkB3vf,EAASiwf,GACzD,IACIC,EADA1B,EAAYjmgB,EAAKf,MAEjB,SAAWwY,EAAQgwf,WACnBE,EAAa,WAAalwf,EAAQgwf,SAhD1C,SAA4BzngB,EAAMqc,GAS9B,IARA,IAAIurf,EAAiB5ngB,EAAK8mgB,SAAW,EAAI,CAAC,GAAK,GAC3Ce,EAAe7ngB,EAAKf,MAAM6L,MAAM,IAAI/D,QAAO,SAACo8V,EAASzqQ,EAAMx6F,GAI3D,MAHI,MAAQw6F,GACRyqQ,EAAQllW,KAAKC,GAEVilW,IACRykK,GACCE,EAAa,OACV,IAAWD,EAAaC,EAAa,IAAM9ngB,EAAK8mgB,SAAW9mgB,EAAKgngB,MAAMC,mBAAmB,EAAGY,EAAaC,EAAa,IAAMzrf,GAC/Hyrf,IAEJ,OAAOD,EAAaC,GAoC6BC,CAAmB/ngB,EAAMqc,GAjC9E,SAA2Brc,EAAMqc,GAC7B,IAAK,IAAIjT,EAAI,EAAGA,EAAIpJ,EAAKf,MAAMtB,OAAS,EAAGyL,IACvC,GAAIpJ,EAAK8mgB,SAAW9mgB,EAAKgngB,MAAMC,mBAAmB,EAAG79f,EAAI,GAAKiT,EAC1D,OAAOjT,EA8BuE4+f,CAAkBhogB,EAAMqc,IAE9G,IACIm7c,EADAywC,EAAY,GAEhB,GAAIzkZ,SAASmkZ,KAAiB,IAAMD,GAAsB,IAAMC,GAAa,CACzEH,GAAWxngB,EAAM2ngB,EAAY,IAC7B,IAAIO,EAAgB,MAAQjC,EAAU0B,GAAc,EAAI,EACpDQ,EAAalC,EAAUnjgB,MAAM6kgB,EAAaO,GAC9C,GAAIC,EAAWxqgB,OAAQ,CACnB,IAAIyqgB,EAAY3B,GAAoBzmgB,EAAKgngB,OAYzC,GAXAoB,EAAUjogB,YAAcgogB,EACxBnogB,EAAKgngB,MAAMv/e,WAAWotD,YAAYuzb,IAClC5wC,EAAWrxd,EAAOA,EAAO,GAAInG,GAAO,CAChCf,MAAOkpgB,EACPrB,SAAU,EACVl4f,OAAQ,EACRo4f,MAAOoB,EACP/wd,OAAQovd,GAAoBzmgB,EAAKq3C,QACjC0vd,OAAQqB,EAAUnB,mBAAmB,EAAGkB,EAAWxqgB,WAE9C05C,SAAWmgb,EAASngb,OAAOl3C,YAAcgogB,GAC9C3wC,EAASuvC,OAAS1qf,KAClB4rf,EAAYR,GAASjwC,EAAUn7c,EAAU+qf,EAAkB3vf,EAASkwf,IACrDhqgB,OACX,MAAO,IAKvB,GAAIqC,EAAKf,MAAMtB,QAIX,GAHI,aAAe8Z,EAAQ4wf,cAAgBrogB,EAAKgngB,MAAMC,mBAAmB,EAAGjngB,EAAKf,MAAMtB,QAAU0e,GAC7Firf,GAAYtngB,EAAMongB,EAAkB3vf,GAEpC,SAAWA,EAAQ4wf,cAAgBrogB,EAAKgngB,MAAMC,mBAAmB,EAAGjngB,EAAKf,MAAMtB,QAAU0e,EACzF,MAAO,QAGXrc,EAAKgngB,MAAMv/e,WAAW+iC,YAAYxqD,EAAKgngB,OAE3C,IAAI3gf,EAAQ,GAIZ,OAHImxc,GACAnxc,EAAMpoB,KAAKu5d,GAER,CAAC,CACJ8wC,aAAcrC,EAAUtogB,OACxB0oB,MAAOA,IACR4S,OAAOgve,GAOd,SAASM,GAAaj7c,EAAO85c,EAAkB3vf,EAASsL,EAAWkuB,GAC/D,IAAIo3d,EAAe5wf,EAAQ4wf,aAC3B,IAAK7kZ,SAASzgG,IAAc,IAAM+pC,OAAO/pC,IAAc,SAAWslf,EAC9D,OAAO/6c,EAEX,IAAIphD,EAASohD,EAAMvmD,QAAO,SAACy+O,EAAOj4J,EAAGrvF,EAAOg0H,GACxC,cAA4BszH,EAA5B,GAAKl4L,EAAL,KAAYk7c,EAAZ,KACI55f,EAXZ,SAA6B2pC,EAAMtH,GAC/B,OAAOsH,EAAKlyB,MAAMtf,QAAO,SAAC6H,EAAQ5O,GAAT,OAAkBijB,EAAIrU,EAAQ65f,GAAkBzogB,EAAMixC,MAAc,GAU5Ey3d,CAAoBn7a,EAAGt8C,GAEpC,IADAu3d,GAAgB55f,GACGmU,EACfuqC,EAAMrvD,KAAKsvF,QAKX,GAHAA,EAAElnE,MAAM/oB,SAAQ,SAAAC,GACZorgB,GAAeprgB,MAEf,aAAe8qgB,EAAc,CAC7B,IAAIr3X,EAAW9e,EAAIh0H,EAAQ,GAC3B,GAAI8yI,EAAU,CACV,IAAIhxI,EAAOgxI,EAAS3qH,MAAM2qH,EAAS3qH,MAAM1oB,OAAS,GAC7CqC,EAAK4ogB,cACF,IAAMxB,GAAoBpngB,EAAK+mgB,OAASK,EACxCI,GAAWxngB,EAAMA,EAAKf,MAAMtB,OAAQwpgB,GAAkBC,EAAkB3vf,IAExE6vf,GAAYtngB,EAAMongB,EAAkB3vf,KAMxD,MAAO,CAAC61C,EAAOk7c,KAChB,CACC,GAAI,IAER,MAAI,SAAWH,GAAgBn8f,EAAO,GAAK6W,GACvC7W,EAAO,GAAG5O,SAAQ,SAAAiwF,GACdA,EAAElnE,MAAM/oB,SAAQ,SAAAC,GACZorgB,GAAeprgB,SAGhB,IAEJ2O,EAAO,GAGlB,SAAS28f,GAAmB1rgB,EAAS2rgB,EAAOzsf,EAAU+qf,EAAkB3vf,GACpE,IAAKqxf,EAAO,CACR,IACI9ogB,EAAO,CACPf,MAFY9B,EAAQgD,YAGpByO,OAAQ,EACR2pC,KAAM,GAEVp7C,EAAQgD,YAAc,GACtBmmgB,GAAa,CAACtmgB,GAAO7C,EAAS,SAC9B2rgB,EAAQ,CAAC9ogB,GAEb,OAAO8ogB,EAAM/hgB,QAAO,SAACk/O,EAAOjmP,GACxB,cAAkDimP,EAAlD,GAAK34L,EAAL,KAAYw5c,EAAZ,KAAsBC,EAAtB,KAA8Bnvf,EAA9B,KAAoC09K,EAApC,KACI/8I,EAAO+U,EAAMA,EAAM3vD,OAAS,GAChC,GAAIia,EACA,MAAO,CAAC01C,EAAOw5c,EAAUC,EAAQnvf,GAErC,GAAK2gC,GAAQv4C,EAAKu4C,OAAS+8I,EAMpB,CAEH,GADAt1L,EAAK8mgB,SAAWA,EACZA,EAAWM,GAAoB,SAAW3vf,EAAQgwf,UAAY,aAAehwf,EAAQ4wf,aAErF,OADAM,GAAe3ogB,GACR,CAACstD,EAAOw5c,EAAUC,EAAQnvf,EAAM09K,GAE3C/8I,EAAKlyB,MAAMpoB,KAAK+B,GAChBu4C,EAAK+vd,cAAgBtogB,EAAKf,MAAMtB,YAZhCqC,EAAK8mgB,SAAWA,EAAW,EAC3Bx5c,EAAMrvD,KAAK,CACPqqgB,aAActogB,EAAKf,MAAMtB,OACzB0oB,MAAO,CAACrmB,KAahB,GAFAA,EAAK+mgB,OAASA,EAASD,EAAWI,GAAalngB,GAC/C8mgB,EAAWC,GACP/gd,EAAAA,EAAAA,IAAU3pC,IAAa0qf,EAAS1qf,EAAU,CAC1C,IAAI0sf,EAAgBtB,GAASzngB,EAAMqc,EAAU+qf,EAAkB3vf,GAC1Dsxf,EAAcprgB,OAIf2vD,EAAQA,EAAMr0B,OAAO8ve,EAAc9lgB,QAAO,SAAAsqF,GAAC,OAAIA,EAAElnE,MAAM1oB,OAAS,OAHhE2vD,EAAQ,GACR11C,GAAO,GAKf,MAAO,CAAC01C,EAAOw5c,EAAUC,EAAQnvf,EAAM5X,EAAKu4C,QAC7C,CACC,GAAI,EAAG,GAAG,EAAO,IAClB,GAGP,SAASivd,GAAWxngB,EAAM9B,GACtB,IAAI8qgB,EAAe5jgB,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK48f,EAChFvjf,EAAUze,EAAKf,MAAM+O,OAAO,EAAG9P,GAAS8qgB,EAC5ChpgB,EAAKf,MAAQe,EAAKgngB,MAAM7mgB,YAAcse,EACtCze,EAAKq3C,SAAWr3C,EAAKq3C,OAAOl3C,YAAcse,GACtCuqf,IAAiBhH,IACjBhigB,EAAK4ogB,aAAc,GAI3B,SAASD,GAAe3ogB,GACpBA,EAAKgngB,MAAMv/e,YAAcznB,EAAKgngB,MAAMv/e,WAAW+iC,YAAYxqD,EAAKgngB,OAChEhngB,EAAKq3C,QAAUr3C,EAAKq3C,OAAO5vB,YAAcznB,EAAKq3C,OAAO5vB,WAAW+iC,YAAYxqD,EAAKq3C,QAoCrF,SAAS4xd,GAAqB1rgB,EAAMsN,EAAM5L,GACtC1B,EAAKypgB,MAAM7ogB,aAAa0M,EAAM5L,GAC9B1B,EAAK85C,QAAU95C,EAAK85C,OAAOl5C,aAAa0M,EAAM5L,GAGlD,SAASwpgB,GAAkBlrgB,EAAMq0C,GAC7B,OAAOr0C,EAAKyjI,SAAWkoY,GAAkB3rgB,EAAKqR,OAAQgjC,GAAgBr0C,EAAKqR,QAAUgjC,EAGzF,SAASu3d,GAAgBh6b,GACrB,GAAKA,EAAQi6b,OAAb,CAGA,IAGIhggB,EACA4oO,EAJAjpO,EAAQomE,EAAQi6b,OAChB/6f,EAAI8gE,EAAQs2b,UAAUp3f,EACtB4iC,EAAak+B,EAAQk6b,iBAGrB9rgB,EAAOwL,EAAM,GAGjB,IAFAkggB,GAAqB1rgB,EAAM,IAAK8Q,GAChC46f,GAAqB1rgB,EAAM,IAAK4xE,EAAQs2b,UAAUzqf,GAC7C5R,EAAI,EAAG4oO,EAAKjpO,EAAMpL,OAAQyL,EAAI4oO,IAAM5oO,EAAG,CAExC,GADA7L,EAAOwL,EAAMK,GACT4pC,WAAWz1C,EAAKqR,SAAW,EAC3Bq6f,GAAqB1rgB,EAAM,IAAK8Q,GAEhC46f,GAAqB1rgB,EAAM,KADdkrgB,GAAkBlrgB,EAAM0zC,MAsBjD,SAASi4d,GAAkBI,EAAWC,GAClC,IAAIC,EAAgBx2d,WAAWs2d,GAC3BG,EAAgBz2d,WAAWu2d,GAC3BG,EAAUF,GAllCM,GAmlChBG,EAAUF,GAnlCM,GAolCpB,OAAOC,EAAUC,EAAW9ie,MAAM2ie,GAA6BE,EAAZJ,EAAuBzie,MAAM4ie,GAA6BE,EAAZJ,EAuBrG,SAASK,GAAY32U,EAAM7zJ,EAAQ3nB,EAAS6pN,GAExC,IAAIj9N,EACApF,EAFJwY,EAAUA,GAAW,GAGrB,IAAI4mB,EAAW40J,EAAK50J,SAChBx0B,EAAWopL,EAAKwyU,UAChBoE,EAAkB,GAClB1lT,EAAW,CACX2lT,WAAY,EACZC,WAAY,EACZ3H,OAAQ,EACRv+d,OAAQ,EACRg3Q,OAAQ,EACRmvN,QAAS,EACTC,QAAS,GAKb,GAHI3oS,IACA7pN,EAAQ6pN,SAAWA,GAEnBjjM,EAASs2X,mBAAoB,CAC7B,IAAKtwZ,KAAO+6B,EACRngC,EAAQmgC,EAAO/6B,GACX,6CAA6Ck8B,KAAKl8B,IAClDwlgB,EAAgBjkf,UAAYikf,EAAgBjkf,WAAa,CACrDpf,KAAM,GACN63D,GAAI,IAERwrc,EAAgBjkf,UAAUpf,KAAKnC,GAAOA,KAAOwF,EAAWijD,OAAOjjD,EAASxF,GAAKitD,QAAQ,IAAM6yJ,EAAS9/M,GACpGwlgB,EAAgBjkf,UAAUy4C,GAAGh6D,GAAOpF,GAEpC4qgB,EAAgBxlgB,GADT,QAAUA,GAAO,aAAeA,EAChBpF,EAEA,CACnBuH,KAAMnC,KAAOwF,EAAWA,EAASxF,GAAO2uC,WAAWigJ,EAAK91L,QAAQkK,aAAahD,IAAQ,GACrFg6D,GAAIp/D,GAIhBo/B,EAASgje,eAAepuU,EAAM42U,EAAiB1jgB,EAAOA,EAAO,GAAIk4B,EAASwsV,YAAapzW,SAEvFA,EAAQikC,MAAQjkC,EAAQikC,KAAK59C,KAAKm1L,EAAM,EAAG,GAC3Cx7K,EAAQ6pN,UAAY7pN,EAAQ6pN,SAASxjO,KAAKm1L,GAC1CA,EAAKh2K,KAAKmiB,GAEd,OAAO6zJ,EAkDX,SAASi3U,GAAUjmgB,EAAQ4qB,GACvB,IAAIk8C,EAAM,CACN5zC,IAAI,EACJtsB,KAAMgkB,EAAWhkB,MAAQgkB,EACzBqzI,MAAOrzI,EAAWqzI,OAOtB,OALIj+J,EACA8mE,EAAI1M,GAAKp6D,EAET8mE,EAAIo/b,SAAU,EAEXp/b,EAEJ,IAAIq/b,GAAa,SAAS/re,EAAUuhL,EAAS5+L,GAChD3jB,KAAKghC,SAAWA,EAChBhhC,KAAKF,QAAUsjC,EAAcm/K,GAC7BviN,KAAKoogB,UAAY,GACjBpogB,KAAK+ngB,QAAU,GACX,SAAWxlT,IACXviN,KAAK2jB,KAAOA,GAAQ,SAI5B,SAASqpf,GAAsBx+c,GAC3By+c,GAAoBzrgB,OAAOgtD,GAE/Bu+c,GAAWvngB,UAAY,CACnBgJ,YAAau+f,GACbG,cAAe,WACX,OAAOltgB,KAAK4kB,YAAc5kB,KAAK4kB,WAAYlX,EAAAA,EAAAA,GAAE1N,KAAKF,WAEtDuogB,mBAAoB,WAChB,IAAIzyU,EAAO51L,KACP45B,EAAK,WACLoue,EAAWpyU,EAAM,QACjBoyU,EAAWpyU,EAAM,aACjBoyU,EAAWpyU,EAAM,WAErBA,EAAK91L,QAAQqtgB,YAAcvze,EAC3BA,EAAGoH,SAAW40J,EAAK50J,SACnBise,GAAoB3rgB,IAAIs4B,GACxBg8J,EAAKyyU,mBAAqB,cAE9B+E,sBAAuB,YACjB,SAASC,EAAcvtgB,GACrB,IAAIiM,EACJ,IAAKA,EAAI,EAAGA,EAAIjM,EAAQ8iH,WAAWtiH,OAAQyL,IACvCihgB,GAAsBltgB,EAAQ8iH,WAAW72G,GAAGohgB,aAC5CE,EAAcvtgB,EAAQ8iH,WAAW72G,IAJvC,CAMA/L,KAAKF,UAEXse,QAAS,WAIL,OAHA4uf,GAAsBhtgB,KAAKF,QAAQqtgB,aACnCntgB,KAAKotgB,wBACLptgB,KAAKktgB,gBAAgB1rgB,SACdxB,MAEX+f,OAAQ,SAAStU,GAEb,OADCA,GAAUzL,KAAKghC,SAASlwB,MAAMhR,QAAQ03E,YAAYx3E,KAAKF,SACjDE,MAEXwB,OAAQ,WACJ,IAAI1B,EAAUE,KAAKF,QAEnB,OADAA,EAAQsqB,YAActqB,EAAQsqB,WAAW+iC,YAAYrtD,GAC9CE,MAEXq4f,YAAa,WAET,OADAr4f,KAAKstgB,OAAS,GACPttgB,MAEXs4f,YAAa,SAAS9me,GAIlB,OAHA+7e,GAAS,CACLC,MAAOX,GAAU,KAAMr7e,IACxBxxB,MACIA,MAEX44f,UAAW,SAASprf,GAEhB,OADAxN,KAAKytgB,WAAajggB,EACXxN,MAEX0tgB,OAAQ,SAAS9mgB,EAAQ4qB,GAGrB,OAFAxxB,KAAKwtgB,MAAQX,GAAUjmgB,EAAQ4qB,GAC/B+7e,GAASvtgB,KAAM4G,GACR5G,MAEX2tgB,QAAS,WAGL,OAkQR,SAAoB/mgB,GAChB,IAAImF,EACAL,EAAQ9E,EAAO4mgB,MAAMxsc,GAAGssc,OAC5B,IAAKvhgB,EAAI,EAAGL,EAAMK,KAAOnF,IAAUmF,GACnCL,EAAM6D,OAAOxD,EAAG,GAChB6hgB,GAAcligB,EAAOK,GAzQjB8hgB,CAAW7tgB,MACXA,KAAKwtgB,MAAQ,KACNxtgB,MAEX8tgB,WAAY,WACR,IAEI/hgB,EACAuyC,EAHA2hB,EAAOjgE,KAAKwtgB,MACZ9hgB,EAAQu0D,EAAKe,GAAGssc,OAGpB,IAAKvhgB,EAAIk0D,EAAKl0D,EAAI,GACbuyC,EAAO5yC,EAAMK,MAAQuyC,EAAKkvd,MAAM1ze,KAAM/tB,GAG3C,OAFA/L,KAAK+tgB,QAAQ9tc,EAAKe,GAAI1iB,GACtB2hB,EAAKnmC,IAAK,EACH95B,MAEX+tgB,QAAS,SAAStigB,EAAQ6yC,GACtB7yC,EAAO3L,QAAQ8hI,aAAa5hI,KAAKF,QAASw+C,EAAOA,EAAKx+C,QAAU,OAEpEkugB,WAAY,WAGR,OAFAhugB,KAAKwB,SACLxB,KAAKwtgB,MAAM1ze,IAAK,EACT95B,MAEXi+G,MAAO,WAGH,OAFAj+G,KAAKotgB,wBACLptgB,KAAKktgB,gBAAgBzic,QACdzqE,MAEXiugB,aAAc,WACV,IAAIrhY,EAAO5sI,KAAKF,QACZ2L,EAASmhI,EAAKxiH,WAElB,OADA3e,GAAUA,EAAOm2H,aAAagL,EAAMnhI,EAAOs3G,YACpC/iH,MAEXkugB,aAAc,WACV,IAAIthY,EAAO5sI,KAAKF,QACZ2L,EAASmhI,EAAKxiH,WAElB,OADA3e,GAAUA,EAAO+rE,YAAYo1D,GACtB5sI,MAEX4f,KAAM,SAAS0sO,GACX,OAAO27Q,EAASjogB,KAAMssP,IAE1B6hR,UAAW,SAAS7hR,GAChB,OAAOtsP,KAAK4f,KAAKkmf,EAAqB9lgB,KAAMssP,KAEhDjxO,IAAK,SAASumB,GACV,OAAOime,EAAQ7ngB,KAAM4hC,IAEzB41J,QAAS,SAASz1J,EAAQ3nB,EAAS6pN,GAC/B,OAAOsoS,GAAYvsgB,KAAM+hC,EAAQ3nB,EAAS6pN,IAE9CmqS,MAjHmB,SAiHb90b,EAAK+0b,GACP,OAAOrugB,KAAK4f,KAAK,CACbwuf,MAAO90b,IAAO,EACd+0b,eAAgBA,KAGxB9F,qBAvHmB,WAwHf,IACIoE,EACAC,EAFAh7P,EAAK5xQ,KAAKoogB,UAGVkG,EAAkB,GAClBC,EAAY38P,EAAGw8P,MACfI,EAAc58P,EAAGy8P,gBAAkB,EACnCI,EAAY78P,EAAG2yP,gBAAoB,EACnCmK,GAAcD,GAAc,MAAQF,IAAa,IAASA,EAAiD,EA73C7F,GA63C+EC,EAC7FG,GAAcF,GAAc,MAAQF,IAAa,IAASA,EAAiD,EA93C7F,GA83C+EC,EACjGF,EAAgB1tgB,KAAK,eAAiBgxQ,EAAG66P,YAAc,GAAKiC,GAAe,MAAQ98P,EAAG86P,YAAc,GAAKiC,GAAe,KACpH/8P,EAAG4rC,SAECmvN,EADA,YAAa/6P,EACHA,EAAG+6P,QAEH/6P,EAAG5gQ,EAGb47f,EADA,YAAah7P,EACHA,EAAGg7P,QAEHh7P,EAAGj0P,EAEjB2wf,EAAgB1tgB,KAAK,UAAYgxQ,EAAG4rC,OAAS,KAAOmvN,GAAW,GAAK,KAAOC,GAAW,GAAK,MAE/F,IAAIgC,GAAgBjmd,EAAAA,EAAAA,IAAUipN,EAAGmzP,QAC7B8J,GAAgBlmd,EAAAA,EAAAA,IAAUipN,EAAGprO,SAC7Booe,GAAiBC,IACjBP,EAAgB1tgB,KAAK,UAAYgugB,EAAgBh9P,EAAGmzP,OAAS,GAAK,KAAO8J,EAAgBj9P,EAAGprO,OAAS,GAAK,KAE1G8ne,EAAgBhugB,QAChBN,KAAKF,QAAQgB,aAAa,YAAawtgB,EAAgBr9f,KAAK,OAGpEgrC,KAAM,SAASjrC,EAAG2M,EAAG65K,EAASs3U,GAC1B,IAAIphc,EAAM,GAQV,OAPA/kB,EAAAA,EAAAA,IAAU33C,KAAO08D,EAAI++b,WAAaz7f,IAClC23C,EAAAA,EAAAA,IAAUhrC,KAAO+vD,EAAIg/b,WAAa/uf,GAC7B65K,EAGDx3L,KAAKw3L,QAAQ9pH,EAAKohc,GAFlB9ugB,KAAK4f,KAAK8tD,GAIP1tE,MAEXw9S,OAAQ,SAAShsQ,EAAOxgC,EAAG2M,EAAG65K,EAASs3U,GACnC,IAAIphc,EAAM,CACN8vO,OAAQhsQ,GAAS,GASrB,OAPAmX,EAAAA,EAAAA,IAAU33C,KAAO08D,EAAIi/b,QAAU37f,IAC/B23C,EAAAA,EAAAA,IAAUhrC,KAAO+vD,EAAIk/b,QAAUjvf,GAC1B65K,EAGDx3L,KAAKw3L,QAAQ9pH,EAAKohc,GAFlB9ugB,KAAK4f,KAAK8tD,GAIP1tE,MAEX+ugB,gBAAiB,WACb,IACIC,EADApiY,EAAO5sI,KAAKF,QAEhB,IACIkvgB,EAAOpiY,EAAKqiY,SAAWriY,EAAKqiY,UAC9B,MAAOzugB,IACT,OAAOwugB,GAAQ,CACXh+f,EAAG,EACH2M,EAAG,EACHrM,MAAOs7H,EAAK9vH,aAAe,EAC3BvL,OAAQq7H,EAAK7vH,cAAgB,IAGrCkyf,QAAS,WACL,IAAIC,EAAiBlvgB,KAAKoogB,UACtB4G,EAAOhvgB,KAAK+ugB,kBAMhB,OAJIC,EADAE,EAAe1xN,QACR2xN,EAAAA,EAAAA,YAAWH,EAAM,EAAE,YAAaE,EAAiBA,EAAevC,QAAUuC,EAAel+f,IAAM,GAAI,YAAak+f,EAAiBA,EAAetC,QAAUsC,EAAevxf,IAAM,IAAKuxf,EAAe1xN,SAEnM4xN,EAAAA,EAAAA,eAAcJ,IAI7BpuP,OAAQ,WACJ,OAAOD,EAAAA,EAAAA,IAAa3gR,KAAKF,UAE7B22P,UAAW,WACP,OAAOz2P,KAAKktgB,gBAAgB3hgB,UAEhC8jgB,cAAe,SAAS7L,GACpB,IAAIl/R,EAAYtkO,KAAKskO,UAErB,OADAA,GAAaA,EAAU/pN,KAAKipf,GACrBxjgB,MAEXsvgB,SAAU,SAAS3sgB,GACf,IAAI4sgB,EAAYnse,EAAc,SAC9Bmse,EAAUzsgB,YAAcH,GAAQ,GAChC3C,KAAKF,QAAQ03E,YAAY+3b,IAE7BC,YAvNmB,WAwNfnG,GAAoBrpgB,KAAKF,UAE7B+N,KAAM,SAAS6/D,EAAK3pD,GAChB,IACI/c,EADA4lI,EAAO5sI,KAAKF,QAEhB,QAAI,IAAWikB,EACX6oH,EAAKl/D,GAAO3pD,OAEZ,IAAK/c,KAAO0mE,EACRk/D,EAAK5lI,GAAO0mE,EAAI1mE,GAGxB,OAAOhH,MAEXs4B,GAAI,WACA,IAAI9R,EAAO,CAACxmB,KAAKktgB,iBAGjB,OAFA1mf,EAAK5lB,KAAKolB,MAAMQ,EAAMze,WACtB4tN,EAAAA,EAAAA,GAAAA,MAAsBA,EAAAA,EAAcnvM,GAC7BxmB,MAEXq4B,IAAK,WACD,IAAI7R,EAAO,CAACxmB,KAAKktgB,iBAGjB,OAFA1mf,EAAK5lB,KAAKolB,MAAMQ,EAAMze,WACtB4tN,EAAAA,EAAAA,IAAAA,MAAuBA,EAAAA,EAAcnvM,GAC9BxmB,MAEX4J,QAAS,WACL,IAAI4c,EAAO,CAACxmB,KAAKktgB,iBAGjB,OAFA1mf,EAAK5lB,KAAKolB,MAAMQ,EAAMze,WACtB4tN,EAAAA,EAAAA,QAAAA,MAA2BA,EAAAA,EAAcnvM,GAClCxmB,OAGR,IAAIyvgB,GAAiB,SAASzue,EAAUrd,GAC3Copf,GAAWtsgB,KAAKT,KAAMghC,EAAU,OAAQrd,IAE5C8rf,GAAejqgB,UAAYo/f,EAAamI,GAAWvngB,WACnDsD,EAAO2mgB,GAAejqgB,UAAW,CAC7BgJ,YAAaihgB,GACb7vf,KAhmCJ,SAAkB0sO,GACd,IAAI21Q,EAcJ,OAbIkD,EAAiB74Q,KAEjB21Q,GADA31Q,EAAQxjP,EAAO,GAAIwjP,IACF21Q,SACb,WAAY31Q,IACZ21Q,EAAW2E,EAAkBt6Q,EAAMozN,OAAQ1/c,KAAK2jB,aACzC2oO,EAAMozN,QAEbuiD,IACA31Q,EAAMxvI,EA1MlB,SAA0BmlZ,GACtB,IAEIl2f,EAEA2jgB,EACAnlb,EACAolb,EANA7yZ,EAAI,GACJnlD,EAAI,EAEJg9K,EAAKstR,EAAS3hgB,OAIlB,IAAKyL,EAAI,EAAGA,EAAI4oO,IAAM5oO,EAElB,IAAKw+E,EAAI,EAAGolb,GADZD,EAAUzN,EAASl2f,IACMzL,OAAQiqF,EAAIolb,IAAMplb,EACvCuyB,EAAEnlD,KAAO+3c,EAAQnlb,GAGzB,OAAOuyB,EAAE7rG,KAAK,KA4LI2+f,CAAiB3N,GAC3BjigB,KAAKiigB,SAAWA,SACT31Q,EAAM21Q,WAGdgG,EAASjogB,KAAMssP,IAklCtB90D,QAzUJ,SAAqBz1J,EAAQ3nB,EAAS6pN,GAClC,IACI4rS,EACAC,EAFAC,EAAc/vgB,KAAKiigB,UAAY,GAanC,OAVIjigB,KAAKghC,SAASs2X,oBAAsB,WAAYv1X,IAEhD+te,EA78BR,SAA4BE,EAAaH,EAAalsf,GAClD,IAEI5X,EACAkkgB,EAHAC,EAAYF,EAAY1vgB,OACxB6vgB,EAAYN,EAAYvvgB,OAGxB8vgB,GAAqB,IAAMzsf,EAAKxd,QAAQ,QAAUqhgB,EAAwBD,EAC9E,GAAI,IAAM2I,EACN,IAAKnkgB,EAAI,EAAGA,EAAIokgB,EAAWpkgB,IACvBikgB,EAAYpvgB,KAAKivgB,EAAY9jgB,GAAGtG,MAAM,SAEnCyqgB,EAAYC,EACnBC,EAAkBJ,EAAaH,EAAalsf,GACrCusf,EAAYC,IACnBF,EAAsBJ,EAAYpqgB,MAAM,GACxC2qgB,EAAkBP,EAAaG,EAAarsf,IAEhD,OAAOssf,EA67BWI,CAAmBN,EADjCF,EAAcjJ,EAAkB7ke,EAAO29a,OAAQ1/c,KAAK2jB,MACO3jB,KAAK2jB,MAChEoe,EAAOkge,SAAW,CACd94f,KAAM4mgB,EACN/uc,GAAI6uc,EACJz8e,IAAK08e,UAEF/te,EAAO29a,QAEX6sD,GAAYvsgB,KAAM+hC,EAAQ3nB,EAAS6pN,MA6TvC,IAAIqsS,GAAgB,SAAStve,GAChC+re,GAAWtsgB,KAAKT,KAAMghC,EAAU,OAAQ,QAE5Csve,GAAc9qgB,UAAYo/f,EAAamI,GAAWvngB,WAClDsD,EAAOwngB,GAAc9qgB,UAAW,CAC5BgJ,YAAa8hgB,GACb1wf,KAvlCJ,SAAiB0sO,GACb,IACIt7O,EACA2M,EACA4yf,EACAC,EACAC,EACAC,EANAlkgB,EAAWxM,KAAKoogB,UAyBpB,OAlBIjD,EAAiB74Q,KAEb,MADJA,EAAQxjP,EAAO,GAAIwjP,KACC,MAAOA,GAAS,gBAAiBA,GAAS,gBAAiBA,GAAS,eAAgBA,GAAS,aAAcA,KAC3H9/O,EAASwE,EAAIA,EAAI,MAAOs7O,EAAQA,EAAMt7O,EAAIxE,EAASwE,SAC5Cs7O,EAAMt7O,EACbxE,EAASmR,EAAIA,EAAI,MAAO2uO,EAAQA,EAAM3uO,EAAInR,EAASmR,SAC5C2uO,EAAM3uO,EACbnR,EAAS+jgB,YAAcA,EAAc,gBAAiBjkR,EAAQA,EAAMikR,YAAc/jgB,EAAS+jgB,mBACpFjkR,EAAMikR,YACb/jgB,EAASgkgB,YAAcA,EAAc,gBAAiBlkR,EAAQA,EAAMkkR,YAAchkgB,EAASgkgB,mBACpFlkR,EAAMkkR,YACbhkgB,EAASikgB,WAAaA,EAAa,eAAgBnkR,EAAQA,EAAMmkR,WAAajkgB,EAASikgB,kBAChFnkR,EAAMmkR,WACbjkgB,EAASkkgB,SAAWA,EAAW,aAAcpkR,EAAQA,EAAMokR,SAAWlkgB,EAASkkgB,gBACxEpkR,EAAMokR,SACbpkR,EAAMxvI,EAAIqpZ,EAAangf,MAAM,MAAM2qf,EAAAA,EAAAA,oBAAmB3/f,EAAG2M,EAAG4yf,EAAaC,EAAaC,EAAYC,KAGnGzI,EAASjogB,KAAMssP,IA8jCtB90D,QAjUJ,SAAoBz1J,EAAQ3nB,EAAS6pN,GACjC,IAAIz3N,EAAWxM,KAAKoogB,UAChBwI,EAAY,CACZzngB,KAAM,GACN63D,GAAI,IAuBR,OArBIhhE,KAAKghC,SAASs2X,qBAAuB,MAAOv1X,GAAU,MAAOA,GAAU,gBAAiBA,GAAU,gBAAiBA,GAAU,eAAgBA,GAAU,aAAcA,KACrK6ue,EAAUzngB,KAAK6H,EAAIxE,EAASwE,GAAK,EACjC4/f,EAAUzngB,KAAKwU,EAAInR,EAASmR,GAAK,EACjCizf,EAAUzngB,KAAKongB,YAAc/jgB,EAAS+jgB,aAAe,EACrDK,EAAUzngB,KAAKqngB,YAAchkgB,EAASgkgB,aAAe,EACrDI,EAAUzngB,KAAKsngB,WAAajkgB,EAASikgB,YAAc,EACnDG,EAAUzngB,KAAKungB,SAAWlkgB,EAASkkgB,UAAY,EAC/CE,EAAU5vc,GAAGhwD,EAAI,MAAO+wB,EAASA,EAAO/wB,EAAIxE,EAASwE,SAC9C+wB,EAAO/wB,EACd4/f,EAAU5vc,GAAGrjD,EAAI,MAAOokB,EAASA,EAAOpkB,EAAInR,EAASmR,SAC9CokB,EAAOpkB,EACdizf,EAAU5vc,GAAGuvc,YAAc,gBAAiBxue,EAASA,EAAOwue,YAAc/jgB,EAAS+jgB,mBAC5Exue,EAAOwue,YACdK,EAAU5vc,GAAGwvc,YAAc,gBAAiBzue,EAASA,EAAOyue,YAAchkgB,EAASgkgB,mBAC5Ezue,EAAOyue,YACdI,EAAU5vc,GAAGyvc,WAAa,eAAgB1ue,EAASA,EAAO0ue,WAAajkgB,EAASikgB,kBACzE1ue,EAAO0ue,WACdG,EAAU5vc,GAAG0vc,SAAW,aAAc3ue,EAASA,EAAO2ue,SAAWlkgB,EAASkkgB,gBACnE3ue,EAAO2ue,SACd3ue,EAAOuge,IAAMsO,GAEVrE,GAAYvsgB,KAAM+hC,EAAQ3nB,EAAS6pN,MAwSvC,IAAI4sS,GAAiB,SAAS7ve,GACjC+re,GAAWtsgB,KAAKT,KAAMghC,EAAU,SAEpC6ve,GAAerrgB,UAAYo/f,EAAamI,GAAWvngB,WACnDsD,EAAO+ngB,GAAerrgB,UAAW,CAC7BgJ,YAAaqigB,GACbjxf,KAnkCJ,SAAkB0sO,GACd,IAAIt7O,EACA2M,EACArM,EACAC,EACA86S,EACAykN,EACAC,EAqBJ,OApBI5L,EAAiB74Q,UAEb,KADJA,EAAQxjP,EAAO,GAAIwjP,IACEt7O,QAAK,IAAWs7O,EAAM3uO,QAAK,IAAW2uO,EAAMh7O,YAAS,IAAWg7O,EAAM/6O,aAAU,IAAW+6O,EAAMi4Q,kBAC7Fvzf,OAArB,IAAWs7O,EAAMt7O,EAAQhR,KAAKgxgB,WAAa1kR,EAAMt7O,EAAQhR,KAAKgxgB,YAAc,EACvDrzf,OAArB,IAAW2uO,EAAM3uO,EAAQ3d,KAAKixgB,WAAa3kR,EAAM3uO,EAAQ3d,KAAKixgB,YAAc,EACnD3/f,OAAzB,IAAWg7O,EAAMh7O,MAAgBtR,KAAKkxgB,eAAiB5kR,EAAMh7O,MAAgBtR,KAAKkxgB,gBAAkB,EAC1E3/f,OAA1B,IAAW+6O,EAAM/6O,OAAkBvR,KAAKmxgB,gBAAkB7kR,EAAM/6O,OAAkBvR,KAAKmxgB,iBAAmB,EAG1GJ,IAFqC1kN,OAArC,IAAW//D,EAAMi4Q,gBAAyBvkgB,KAAKsogB,YAAch8Q,EAAMi4Q,gBAAyBvkgB,KAAKsogB,cAElF,IADfwI,MAAYx/f,EAAQC,EAASD,EAAQC,GAAU,IACnB86S,GAAM,EAAIykN,EACtCxkR,EAAMt7O,EAAIA,EAAI+/f,EAAQ,EACtBzkR,EAAM3uO,EAAIA,EAAIozf,EAAQ,EACtBzkR,EAAMh7O,MAAQA,EAAQy/f,EACtBzkR,EAAM/6O,OAASA,EAASw/f,IACtB1kN,GAAM,KAAO0kN,GAAW,IAAMA,QAAS,IAAW1kN,KAAS//D,EAAMi4Q,gBAAoBwM,IAEvF,UAAWzkR,UACJA,EAAM8hR,OAGdnG,EAASjogB,KAAMssP,MAyiCnB,IAAI8kR,GAAiB,SAASpwe,GACjC+re,GAAWtsgB,KAAKT,KAAMghC,EAAU,QAChChhC,KAAKqb,IAAI,CACL,cAAe,SAgBvB,SAASuyf,GAAcligB,EAAOisD,GAC1B,IAAI5rD,EACA7L,EACJ,IAAK6L,EAAI4rD,EAAGz3D,EAAOwL,EAAMK,KAAMA,EAC3B7L,EAAKstgB,MAAMzhgB,EAAIA,EAIvB,SAASwhgB,GAAS3mgB,EAAQkZ,GACtB,IAEI/T,EACA7L,EAHAwL,EAAQoU,EAAUwtf,OAClBtmgB,EAAMJ,EAAO4mgB,MAAM3oW,MAAQj+J,EAAO4mgB,MAAM3oW,OAAS/kJ,EAAU2tf,WAG/D,GAAIzmgB,EAAK,CACL,IAAK+E,EAAI,GACJ7L,EAAOwL,EAAMK,KAAO7L,EAAKstgB,MAAMhggB,OAASxG,IAAO+E,GACpD,GAAI7L,EACA,MAAO6L,GACF7L,EAAOwL,EAAMK,KAAO7L,EAAKstgB,MAAM3oW,QAAU79J,IAAO+E,SAGzDA,EAAIL,EAAMpL,OAEdoL,EAAM6D,OAAOxD,EAAG,EAAGnF,GACnBgngB,GAAcligB,EAAOK,GAUlB,SAASo2M,GAAS/nM,GACrBpa,KAAK8Q,KAAO9Q,KAAKynP,eAAe,MAAO,CACnC4pR,MAAO,6BACPvoY,QAAS,MACT5M,KAAMwoY,EACN1qd,OAAQ0qd,EACR,eAAgB,IACjB9kf,KAAK,CACJ+R,MAAOvX,EAAQusH,WAChBtrH,IAAI,CACH,cAAe,SACf,kBAAmBqpf,EACnB,mBAAoBA,EACpB,sBAAuBA,EACvB,8BAA+B,mBAC/Brlf,QAAS,QACT8iH,SAAU,WAEdniI,KAAKwyE,QACLxyE,KAAKq8f,eAAiBjif,EAAQiif,aAC9Br8f,KAAKunY,aAAc75X,EAAAA,EAAAA,GAAE0M,EAAQ0F,WAC7B9f,KAAK8Q,KAAKiP,OAAO,CACbjgB,QAASsa,EAAQ0F,YAErB9f,KAAKsxgB,QAAU,EACftxgB,KAAKuxgB,SAAU,EAxEnBH,GAAe5rgB,UAAYo/f,EAAamI,GAAWvngB,WACnDsD,EAAOsogB,GAAe5rgB,UAAW,CAC7BgJ,YAAa4igB,GACbxxf,KA/iCJ,SAAkB0sO,GACd,IAAIklR,EACJ,IAAKrM,EAAiB74Q,GAClB,OAAO27Q,EAASjogB,KAAMssP,GAE1BA,EAAQxjP,EAAO,GAAIwjP,GACnB,IAAI9/O,EAAWxM,KAAKoogB,UAChBqJ,GAAa9od,EAAAA,EAAAA,IAAUn8C,EAAQ,UAAiBm8C,EAAAA,EAAAA,IAAUn8C,EAAS+3f,sBACnE,IAAWj4Q,EAAK,OAChB9/O,EAAQ,KAAa8/O,EAAK,YACnBA,EAAK,KACZklR,GAAkB,QAElB,IAAWllR,EAAK,SAChB9/O,EAAQ,OAAe8/O,EAAK,cACrBA,EAAK,aAEZ,IAAWA,EAAMi4Q,kBACjB/3f,EAAS+3f,gBAAoBj4Q,EAAMi4Q,uBAC5Bj4Q,EAAMi4Q,sBAEb,IAAWj4Q,EAAMk4Q,oBACjBh4f,EAASg4f,kBAAsBl4Q,EAAMk4Q,yBAC9Bl4Q,EAAMk4Q,wBAEb,IAAWl4Q,EAAK,kBAslBxB,SAAwBx6K,EAASp2B,GAC7B,IAAKo2B,EAAQi6b,QAAU,WAAarwd,EAChC,OAKJ,IAHA,IAAIhwC,EAAQomE,EAAQi6b,OAChB1wX,EAAY,SAAW3/F,GAAa,EAAI,EACxCg2d,EAAe/rf,KAAKC,IAAII,MAAML,KAAMja,EAAMxF,KAAI,SAAAgwD,GAAC,OAAI2zc,GAAa3zc,OAC3DnqD,EAAI,EAAGA,EAAIL,EAAMpL,OAAQyL,IAAK,CACnC,IAAI7L,EAAOwL,EAAMK,GACb4lgB,EAAY9H,GAAa3pgB,GACzB,IAAMwxgB,GAAgBA,IAAiBC,GACvC/F,GAAqB1rgB,EAAM,KAAMm7I,EAAY7tH,GAAOkkf,EAAeC,GAAa,EAAI,IAAM,KAhmB9FC,CAAe5xgB,KAAMssP,EAAK,uBACnBA,EAAK,gBAEhB,IAAIulR,GAAYlpd,EAAAA,EAAAA,IAAUn8C,EAAQ,UAAiBm8C,EAAAA,EAAAA,IAAUn8C,EAAS+3f,iBAatE,OAZA0D,EAASjogB,KAAMssP,IACfklR,EAAkBA,GAAmBK,IAAcJ,GAAcjlgB,EAAQ,SAghB7E,SAAyBslE,EAASnvE,EAAMkvgB,GACpC,IAAInmgB,EAIJ,GAFAomE,EAAQi6b,OAAS,KACjBj6b,EAAQmsC,QACJ,OAASt7G,EACT,OAEJA,EAAO,GAAKA,EACPmvE,EAAQ9wC,SAASm9O,aAAe,kBAAkBj7O,KAAKvgC,KAAU,IAAMA,EAAKwD,QAAQ,KAG9E,MAAM+8B,KAAKvgC,GAClB+I,EAnbR,SAAwB/I,GAIpB,IAHA,IAAI8ogB,EAAQ9ogB,EAAK+lD,QAAQ,MAAO,IAAIj7C,MAAM,OACtC1B,EAAI,EACJL,EAAQ,GACLK,EAAI0/f,EAAMnrgB,OAAQyL,IACrBL,EAAM9K,KAAK,CACPgB,MAAO6pgB,EAAM1/f,GAAG60B,OAChBrvB,OAAQ,EACR2pC,KAAMnvC,IAGd,OAAOL,EAwaKomgB,CAAenvgB,GAChBkvgB,IACPnmgB,EAAQ,CAAC,CACL9J,MAAOe,EAAKi+B,OACZrvB,OAAQ,KANZ7F,EA9bR,SAAmB/I,GACf,IAAI+I,EAAQ,GACRy3B,EAAMy2L,EAAAA,EAAAA,cAAyB,OAQnC,OAPAz2L,EAAIo9B,UAAY59D,EAAK+lD,QAAQ,MAAO,IAAIA,QAAQ,MAAO,SAASA,QAAQ,UAAW,eACnFvlB,EAAIz9B,iBAAiB,gBAAgBzF,SAAQ,SAAAH,GACzCA,EAAQme,MAAQne,EAAQkK,aAAa,cACrClK,EAAQkkH,gBAAgB,iBAE5BwkZ,EAAc98f,EAAO,EAAGy3B,EAAK,GAAI,IAnCrC,SAA2Bz3B,GACvB,IAAIK,EACA4oO,EAEAz0O,EADA68G,EAAcrxG,EAAM,GAExB,IAAKK,EAAI,EAAG4oO,EAAKjpO,EAAMpL,OAAQyL,EAAI4oO,IAAM5oO,GACrC7L,EAAOwL,EAAMK,IACJmvC,OAAS6hE,EAAY7hE,MAC1B6hE,EAAYxrG,OAASs6f,GAAkB9uZ,EAAYxrG,OAAQrR,EAAKqR,QAChEwrG,EAAY4mB,SAAW5mB,EAAY4mB,UAAY,IAAMhuF,WAAWz1C,EAAKqR,QACrErR,EAAKqR,OAAS00G,KAEdlJ,EAAc78G,EAwBtB6xgB,CAAkBrmgB,GACXA,EAobK4pP,CAxchB,SAA0B9tM,GACtB,IAAIwqd,EAAyB,gDAC7B,OAAOxqd,EAAKkB,QAAQ,0CAA2C,SAASupd,EAAa5mY,EAAIC,EAAI4mY,GAIzF,OAAO7mY,GAHPC,GAAMA,GAAMA,EAAG3pH,MAAMqwf,IAA2B,IAAI9rgB,KAAK,SAASs4E,GAC9D,OAAOA,KACPvtE,KAAK,MACQihgB,KAicJC,CAAiBxvgB,IAU9B+I,EACIA,EAAMpL,SACNwxE,EAAQi6b,OAASrggB,EACbmmgB,GACA5I,GAAav9f,EAAOomE,EAAQhyE,QAASwkgB,GAEzC2E,GAAav9f,EAAOomE,EAAQhyE,QAAS,UAGzCgyE,EAAQhyE,QAAQ03E,YAAYoiJ,EAAAA,EAAAA,eAA0Bj3N,IA3iBtDyvgB,CAAgBpygB,KAAMwM,EAAS7J,KAAMkvgB,GACrC7xgB,KAAKmpgB,cAAe,IAEpBqI,QAAmB,IAAWllR,EAAMt7O,QAAK,IAAWs7O,EAAM3uO,IAC1Dmuf,GAAgB9rgB,MAEhB6xgB,GAgmBR,SAAyB//b,GACrB,IAAKA,EAAQi6b,OACT,OAEJ,IAIIpC,EACA59f,EACA4oO,EANAjpO,EAAQomE,EAAQi6b,OAChB/xd,EAAS83B,EAAQs2b,UAAR,OACTnud,EAAc63B,EAAQs2b,UAAU7D,gBAChC8N,EAAgBvgc,EAAQs2b,UAAU5D,mBAAuB,EAI7D,IAAKz4f,EAAI,EAAG4oO,EAAKjpO,EAAMpL,OAAQyL,EAAI4oO,IAAM5oO,GACrC49f,EAAQj+f,EAAMK,GAAGiuC,QACXl5C,aAAawjgB,EAAYtqd,GAC/B2vd,EAAM7ogB,aAAayjgB,EAAkBtqd,GACrC0vd,EAAM7ogB,aAAa0jgB,EAAoB6N,GACvC1I,EAAM7ogB,aAAa,kBAAmB,SA/mBtCwxgB,CAAgBtygB,MAEbA,MAsgCPqb,IAngCJ,SAAiBumB,GAMb,OAJAime,EAAQ7ngB,KADR4hC,EAASA,GAAU,IAEf6ie,KAAiB7ie,GACjBkqe,GAAgB9rgB,MAEbA,MA8/BPuygB,cAj4BJ,SAAuBvzf,GACnB,IAAIixC,EAEAlkD,EACA4oO,EACA69R,EACAjob,EACAolb,EACAhtgB,EANA4ogB,GAAc,EAOlBrC,GAAYzogB,KAAKT,MACjB,IAAIkqgB,EAAWlqgB,KAAKghC,SAASr+B,KAAKgigB,GAAU/kf,KAAK5f,KAAK+ngB,SAAShof,OAAO/f,KAAKghC,SAASlwB,MAChF2hgB,EAAgBvI,EAAS+E,UAAU39f,MACvC,GAAItR,KAAK+ugB,kBAAkBz9f,MAAQ0N,EAO/B,IANIA,EAAWyzf,EAAgB,EAC3Bzzf,EAAW,EAEXA,GAAYyzf,EAEhBxid,EAkHR,SAAsBnwD,EAAS2rgB,EAAOzsf,GAClC,IACIjT,EACA4oO,EACAhyO,EACA8mgB,EACAC,EALAz5c,EAAQ,GAMZ,GAAIw7c,EACA,IAAK1/f,EAAI,EAAG4oO,EAAK82R,EAAMnrgB,OAAQyL,EAAI4oO,IAAM5oO,EAEhCkkD,GADLttD,EAAO8ogB,EAAM1/f,IACGmvC,OAOZv4C,EAAK8mgB,SAAWA,EAChBx5c,EAAMttD,EAAKu4C,MAAMlyB,MAAMpoB,KAAK+B,GAC5BstD,EAAMttD,EAAKu4C,MAAM+vd,cAAgBtogB,EAAKf,MAAMtB,SAR5CqC,EAAK8mgB,SAAWA,EAAW,EAC3Bx5c,EAAMrvD,KAAK,CACPqqgB,aAActogB,EAAKf,MAAMtB,OACzB0oB,MAAO,CAACrmB,MAOhB+mgB,EAASD,EAAW9mgB,EAAKgngB,MAAMC,mBAAmB,EAAGjngB,EAAKf,MAAMtB,QAChEqC,EAAKwxH,SAAWq1Y,GAAoB7mgB,EAAMqc,EAAUyqf,EAAUC,GAC9DD,EAAWC,OAGf/mgB,EAAO,CACHf,MAAO9B,EAAQgD,YACf6mgB,MAAO7pgB,IAEN2pgB,SAAWA,EAAW,EAC3BC,EAASD,EAAWI,GAAalngB,GACjCA,EAAKwxH,SAAWq1Y,GAAoB7mgB,EAAMqc,EAAUyqf,EAAUC,GAC9Dz5c,EAAQ,CAAC,CACLg7c,aAAcnrgB,EAAQgD,YAAYxC,OAClC0oB,MAAO,CAACrmB,KAGhB,OAAOstD,EAxJKyid,CAAa1ygB,KAAKF,QAASE,KAAK+rgB,OAAQ/sf,GAC3CjT,EAAI,EAAG4oO,EAAK1kL,EAAM3vD,OAAQyL,EAAI4oO,IAAM5oO,EAErC,GADAymgB,EAAYvid,EAAMlkD,GAAGid,MACjB,IAAMinC,EAAMlkD,GAAGk/f,aAGnB,IAAK1gb,EAAI,EAAGolb,EAAK6C,EAAUlygB,OAAQiqF,EAAIolb,IAAMplb,EACzC5nF,EAAO6vgB,EAAUjob,IACb5hC,EAAAA,EAAAA,IAAUhmD,EAAKwxH,WACfg2Y,GAAWxngB,EAAMA,EAAKwxH,UACtBo3Y,GAAc,GACP5ogB,EAAK8mgB,SAAWzqf,GACvBssf,GAAe3ogB,GAO/B,OAFAungB,EAAS1ogB,SACTxB,KAAKmpgB,aAAeoC,EACbA,GA61BPoH,WA/zBJ,SAAoB3zf,EAAU0G,GAC1B,IAAItL,EAAUrS,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,GAC3E6tL,EAAO51L,KACPiwD,EAAQ,GACR2id,GAAc,EACdC,GAAc,EACd9I,EAAmB/qf,EACvBkqf,GAAYzogB,KAAKm1L,GACjB,IAAIk9U,EAAsBvJ,GAA4BvpgB,KAAKF,SACvDoqgB,EAAWt0U,EAAK50J,SAASr+B,KAAKgigB,GAAU/kf,KAAKg2K,EAAKmyU,SAAShof,OAAO61K,EAAK50J,SAASlwB,MAChF2hgB,EAAgBvI,EAAS+E,UAAU39f,MACvC,EAGIskL,EAAKm5U,kBAFEz9f,EADX,EACIA,MACQC,EAFZ,EAEIA,OA6BJ,OA3BKD,GAASC,KAAYD,EAAQ0N,GAAY0G,GAAanU,EAASmU,KAC5D1G,EAAWyzf,EAAgB,EAC3B1I,EAAmB,EAEnBA,GAAoB0I,EAGxBxid,EAAQi7c,GADRj7c,EAAQu7c,GAAmB51U,EAAK91L,QAAS81L,EAAKm2U,OAAQ/sf,EAAU+qf,EAAkB3vf,GACtD2vf,EAAkB3vf,EAASsL,EAAWiwB,WAAW31C,KAAKgsgB,mBAClFhsgB,KAAK+rgB,OAAS97c,EAAMvmD,QAAO,SAAC+hgB,EAAOvwd,GAAR,OAAiBuwd,EAAM7ve,OAAOsf,EAAKlyB,SAAQ,IAAIpjB,QAAO,SAAAswD,GAAC,MAAI,KAAOA,EAAEt0D,SAAOsE,KAAI,SAAAgwD,GAEtG,OADAA,EAAElc,QAAUkc,EAAEyzc,MAAMv/e,WAAWotD,YAAYthB,EAAElc,QACtCkc,KACRhwD,KAAI,SAAAgwD,GAEH,OADAA,EAAEyzc,MAAMv/e,WAAWotD,YAAYthB,EAAEyzc,OAC1Bzzc,MAEVl2D,KAAK+rgB,OAAOzrgB,SAAWN,KAAK+rgB,OAAS,MACtC6G,GAAc,EACV5ygB,KAAK+rgB,OACLD,GAAgB9rgB,OAEhBA,KAAKF,QAAQgD,YAAc,GAC3B+vgB,GAAc,IAGtB3I,EAAS1ogB,SACTo0L,EAAKuzU,aAAeyJ,EACpBE,IACO,CACH54W,SAAUjqG,EAAM3vD,OAChBsygB,YAAaA,EACbC,YAAaA,IAmxBjB3J,YAAaA,GACb8C,eAP6B,WAQzB,OAAQxie,MAAMmM,WAAW31C,KAAK+ngB,QAAQtD,eArgDtB,GAqgDyCzkgB,KAAK+ngB,QAAQtD,gBAiE9EtiT,GAAS38M,UAAY,CACjBgJ,YAAa2zM,GACb3vI,MAAO,WACHxyE,KAAK+ygB,MAAQ/ygB,KAAKynP,eAAe,QAAQ1nO,OAAO/f,KAAK8Q,MACrD9Q,KAAKgzgB,qBAAuB,IAAI5P,EAAoBpjgB,KAAK8Q,KAAKhR,SAC9DE,KAAKwtX,WAAa,CACdlkV,SAAS,EACTk2L,SAAU,IACVlC,OAAQ,iBAGhBh4F,WAAY,SAASlrH,GAOjB,OANApa,KAAK8oB,MAAQ1O,EAAQ0O,IACrB9oB,KAAKm+Q,aAAe/jQ,EAAQ+jQ,WAC5Bn+Q,KAAKizgB,uBAAuB74f,EAAQkqN,WAAa,IACjDtkO,KAAK8Q,KAAK8O,KAAK,CACXy7H,UAAWr7I,KAAK8oB,IAAM,MAAQ,QAE3B9oB,MAEXynP,eAAgB,SAASllC,EAAS3iM,EAAM+D,GACpC,IAAIipH,EAAO,IAAImgY,GAAW/sgB,KAAMuiN,EAAS5+L,GAEzC,OADA/D,GAAQgtH,EAAKhtH,KAAKA,GACXgtH,GAEXhuB,KAAM,WAjkDV,IAAoB9tG,EAwkDZ,OANI,IAAM9Q,KAAKsxgB,UACXtxgB,KAAKuxgB,SAAWvxgB,KAAKunY,YAAYztW,GAAG,YAChC95B,KAAKuxgB,UApkDDzggB,EAqkDO9Q,KAAK8Q,KApkDxB,IAAMk0f,IAAYE,eAClBtrS,EAAAA,EAAAA,UAAqBpiJ,YAAYwtb,IAAYC,mBAC9CD,IAAYE,cACfp0f,EAAKiP,OAAO,CACRjgB,QAASklgB,IAAYC,sBAkkDlBjlgB,KAAKsxgB,QACDtxgB,MAEX05f,OAAQ,WAjkDZ,IAAqB5of,EAAMgP,EAykDnB,QAPE9f,KAAKsxgB,QACH,IAAMtxgB,KAAKsxgB,UACPtxgB,KAAKuxgB,UApkDAzggB,EAqkDO9Q,KAAK8Q,KArkDNgP,EAqkDY9f,KAAKunY,YAAY,GApkDpDz2X,EAAKiP,OAAO,CACRjgB,QAASggB,MAEXklf,IAAYE,cACV,IAAMF,IAAYE,eAClBtrS,EAAAA,EAAAA,UAAqBzsK,YAAY63c,IAAYC,kBAikDzCjlgB,KAAKuxgB,SAAU,GAEZvxgB,MAEXuc,OAAQ,SAASjL,EAAOC,GAOpB,OANID,GAAS,GAAKC,GAAU,GACxBvR,KAAK8Q,KAAK8O,KAAK,CACXtO,MAAOA,EACPC,OAAQA,IAGTvR,MAEXoe,QAAS,WACL,IAAIpX,EAKJ,IAAKA,KAJLhH,KAAK8Q,KAAKsN,UACVpe,KAAK+ygB,MAAM30f,UACXpe,KAAKgzgB,qBAAqB50f,UAC1B6uf,GAAoBiG,iBAAiBlzgB,MACzBA,KACRA,KAAKgH,GAAO,KAEhB,OAAOhH,MAEXs3Z,iBAAkB,WACd,QAASt3Z,KAAKwtX,WAAWlkV,SAE7B2pe,uBAAwB,SAASx2a,GAE7B,OADA3zF,EAAO9I,KAAKwtX,WAAY/wR,GACjBz8F,MAEXmzgB,kBAAmB,SAASv0Z,GAExB,OADA5+G,KAAKgzgB,qBAAqBp0Z,EAAO,OAAS,UACnC5+G,MAEXgkgB,eAAgB,SAASlkgB,EAASiiC,EAAQ3nB,GAEtC,OADApa,KAAKgzgB,qBAAqBhP,eAAelkgB,EAASiiC,EAAQ3nB,GACnDpa,MAEXs/f,IAAK,WACD,OAAOt/f,KAAK8Q,KAAK8vQ,UAErBwyP,cAAe,WACX,OAAOpzgB,KAAK8Q,KAAK2lP,aAErBupQ,eAAgB,SAASppT,GACrB52M,KAAKgzgB,qBAAqBhT,eAAeppT,IAE7C37L,KAAM,SAASjK,EAAG2M,EAAGrM,EAAOC,GAExB,OADW,IAAIs/f,GAAe7wgB,MAClB4f,KAAK,CACb5O,EAAGA,GAAK,EACR2M,EAAGA,GAAK,EACRrM,MAAOA,GAAS,EAChBC,OAAQA,GAAU,KAG1B8hgB,WAAY,WACR,OAAOrzgB,KAAKynP,eAAe,SAE/B6rR,OAAQ,SAAStigB,EAAG2M,EAAG4oD,GACnB,OAAOvmE,KAAKynP,eAAe,SAAU,CACjC8rR,GAAIvigB,GAAK,EACTw1S,GAAI7oS,GAAK,EACT4oD,EAAGA,GAAK,KAGhBC,EAAG,WACC,OAAOxmE,KAAKynP,eAAe,MAE/Bj/I,MAAO,SAASx3F,EAAG2M,EAAG8rI,EAAGD,EAAGzpF,EAAM//B,GAC9B,IAAIwoE,EAAQxoG,KAAKynP,eAAe,QAAS,CACrCz2O,EAAGA,GAAK,EACR2M,EAAGA,GAAK,EACRrM,MAAOm4I,GAAK,EACZl4I,OAAQi4I,GAAK,EACbgqX,oBAAqBnO,GAAuBzZ,EAAAA,EAAAA,eAAc5rd,KAAc0ke,IAG5E,OADAl8Z,EAAM1oG,QAAQ2zgB,eAAe,+BAAgC,OAAQ1zc,GAAQ,IACtEyoC,GAEXl7F,KAAM,SAASoyc,EAAQ/7b,GAEnB,OADW,IAAI8rf,GAAezvgB,KAAM2jB,GACxB/D,KAAK,CACb8/b,OAAQA,GAAU,MAG1B4iD,IAAK,SAAStxf,EAAG2M,EAAG4yf,EAAaC,EAAaC,EAAYC,GAEtD,OADW,IAAIJ,GAActwgB,MACjB4f,KAAK,CACb5O,EAAGA,GAAK,EACR2M,EAAGA,GAAK,EACR4yf,YAAaA,GAAe,EAC5BC,YAAaA,GAAe,EAC5BC,WAAYA,GAAc,EAC1BC,SAAUA,GAAY,KAG9B/tgB,KAAM,SAASwyD,EAAOnkD,EAAG2M,GAErB,OADW,IAAIyzf,GAAepxgB,MAClB4f,KAAK,CACbjd,KAAMwyD,EACNnkD,EAAGA,GAAK,EACR2M,EAAGA,GAAK,KAGhBiif,eAAgB,SAAS8T,GACrB,IAAIzpgB,EAAKlC,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,IAAK4rgB,EAAAA,EAAAA,oBACtEhU,EAAgB53f,UAAUzH,OAAS,EAAIyH,UAAU,QAAK,EACtDsnf,EAAWrvf,KAAKynP,eAAe,iBAAkB,CACjDx9O,GAAIA,EACJ2pgB,kBAAmB,UAAUh4e,OAAO+je,GAAiB,EAAG,OACzD5/e,OAAO/f,KAAK+ygB,OAGf,OAFA1jB,EAASplf,GAAKA,EACdjK,KAAK6zgB,qBAAqBH,EAAOrkB,GAC1BA,GAEXwQ,eAAgB,SAAS6T,EAAOzpgB,GAC5B,IAAIolf,EAAWrvf,KAAKynP,eAAe,iBAAkB,CACjDx9O,GAAIA,IACL8V,OAAO/f,KAAK+ygB,OAEf,OADA/ygB,KAAK6zgB,qBAAqBH,EAAOrkB,GAC1BA,GAEXwkB,qBAAsB,SAASH,EAAOhpf,GAAO,WACzCgpf,EAAMzzgB,SAAQ,SAAAsa,GACV,IAAIu5f,EACJ,EAAKrsR,eAAe,OAAQ,CACxBl8O,OAAQgP,EAAKhP,OACb,aAAc,QAAUuogB,EAAkBv5f,EAAK,qBAAkB,IAAWu5f,EAAkBA,EAAkBv5f,EAAK6+B,MACrH,eAAgB7+B,EAAK22H,UACtBnxH,OAAO2K,OAGlBsqF,QAAS,SAAS57D,EAAO2sd,EAAU1jT,GAE/B,IAAIhkK,GADJ0nd,EAAWA,GAAY,IACH1nd,MAAQ,EACxB01d,EAAU11d,EAAO,EACjB21d,EAAW,IAAM31d,EACjBp0C,EAAKo4M,IAAOsxT,EAAAA,EAAAA,oBACZ72Z,EAAI,WAAY8uY,EAAAA,EAAAA,eAAcma,EAAS1qX,WAAa,KAAO04X,EAAU,KAAOA,EAAU,OAASA,EAAU,IAAMA,EAAU,QAAU11d,EAAO,MAAQA,EAAO,QAAU21d,EAAW,IAAMD,EAAU,MAAQA,EAAU,IAAMC,EAAW,WAAa31d,EAAO,IAAMA,EAAO,OAAS01d,EAAU,IAAMA,EAAU,MAAQA,EAAU,IAAMC,EAAW,MAAQD,EAAU,KAAOA,EAAU,MAAQC,EAAW,IAAMD,EACpY/+Z,EAAUh1G,KAAKynP,eAAe,UAAW,CACzCx9O,GAAIA,EACJqH,MAAO+sC,EACP9sC,OAAQ8sC,EACR41d,aAAc,mBACfl0f,OAAO/f,KAAK+ygB,OAWf,OAVA/9Z,EAAQ/qG,GAAKA,EACbjK,KAAKib,KAAK,EAAG,EAAGojC,EAAMA,GAAMz+B,KAAK,CAC7Bs8G,KAAM9iF,EACN83F,QAAS60X,EAAS70X,UACnBnxH,OAAOi1F,GACV,IAAIy6Z,GAAezvgB,MAAM4f,KAAK,CAC1Bk9F,EAAGA,EACH,eAAgBipZ,EAASz0f,OAAS,EAClC0oC,OAAQZ,IACTr5B,OAAOi1F,GACHA,GAEX8qZ,cAAe,SAAS71f,EAAI0f,EAAUrY,EAAOC,GACzC,IAAIsT,EAAS,CACT5a,GAAIA,EACJqH,MAAOA,EACPC,OAAQA,EACR2igB,oBAAqB,iBACrBD,aAAcj0gB,KAAKm0gB,iBAAiB7igB,EAAOC,IAE3CyjG,EAAUh1G,KAAKynP,eAAe,UAAW5iO,GAAQ9E,OAAO/f,KAAK+ygB,OAIjE,OAHAppf,EAASpK,OAAO,CACZO,UAAWk1F,EAAQl1G,UAEhBk1G,GAEXm/Z,iBAAkB,SAAS7igB,EAAOC,GAC9B,GAAIk+C,OAAOn+C,IAAUm+C,OAAOl+C,GACxB,MAAO,kBAGf6igB,sBAAuB,SAAS10D,EAAQn0c,GACpC,OAAOm0c,EAAOx5c,KAAK,SAAS8gK,EAAOnmK,GAC/B,OAAIA,EAAQ,IAAM,EACPmmK,EAAQz7J,EAEZy7J,MAGfqtW,UAAW,SAASrrgB,EAAQsrgB,GACxB,IAAIrqgB,GAAK0pgB,EAAAA,EAAAA,oBACLY,EAAWv0gB,KAAKynP,eAAe,WAAY,CAC3Cx9O,GAAIA,IACL8V,OAAO/f,KAAK+ygB,OACXyB,EAAQxrgB,EAAOgd,MAAMhmB,KAAMs0gB,GAAYv0f,OAAOw0f,GAUlD,OATAC,EAAMvqgB,GAAKA,EACXuqgB,EAAMhzgB,OAAS,WACX,KAAM,mBAEVgzgB,EAAMp2f,QAAU,WAGZ,OAFAm2f,EAASn2f,UACTm2f,EAAW,KACJv0gB,MAEJw0gB,GAEXC,SAnPiB,SAmPRzjgB,EAAG2M,EAAGrM,EAAOC,GAClB,OAAOvR,KAAKq0gB,UAAUr0gB,KAAKib,KAAMlT,YAErC2sgB,WAtPiB,SAsPN1jgB,EAAG2M,EAAGg3f,GACb,OAAO30gB,KAAKq0gB,UAAUr0gB,KAAKszgB,OAAQvrgB,YAEvC6sgB,aAAc,SAAS5jgB,EAAG2M,EAAGrM,EAAOC,EAAQm9B,EAASC,EAAS8Z,EAAMrP,EAAO83F,GACvE,IAAIjnI,GAAK0pgB,EAAAA,EAAAA,oBACL/tgB,EAAS5F,KAAKynP,eAAe,SAAU,CACvCx9O,GAAIA,EACJ+G,EAAGA,GAAK,EACR2M,EAAGA,GAAK,EACRrM,MAAOA,GAAS,EAChBC,OAAQA,GAAU,IACnBwO,OAAO/f,KAAK+ygB,OACX8B,EAAe70gB,KAAKynP,eAAe,iBAAkB,CACrDp4I,GAAI,gBACJxgG,OAAQ,qBACRimgB,aAAcrsd,GAAQ,IACvB1oC,OAAOna,GACN2F,EAASvL,KAAKynP,eAAe,WAAY,CACzCp4I,GAAI,qBACJxgG,OAAQ,eACR6N,GAAIgyB,GAAW,EACf/xB,GAAIgyB,GAAW,IAChB5uB,OAAOna,GACNmvgB,EAAQ/0gB,KAAKynP,eAAe,UAAW,CACvC54O,OAAQ,cACR,cAAeuqC,GAAS,GACxB,gBAAiB83F,IAClBnxH,OAAOna,GACNovgB,EAAYh1gB,KAAKynP,eAAe,cAAe,CAC/Cp4I,GAAI,cACJ4la,IAAK,eACL/wb,SAAU,KACVr1E,OAAQ,oBACTkR,OAAOna,GACNsvgB,EAAiBl1gB,KAAKynP,eAAe,cAAe,CACpDp4I,GAAI,gBACJ4la,IAAK,kBACL/wb,SAAU,SACXnkE,OAAOna,GA2BV,OA1BAA,EAAOqE,GAAKA,EACZrE,EAAOivgB,aAAeA,EACtBjvgB,EAAO2F,OAASA,EAChB3F,EAAOmvgB,MAAQA,EACfnvgB,EAAOovgB,UAAYA,EACnBpvgB,EAAOsvgB,eAAiBA,EACxBtvgB,EAAOga,KAAO,SAAS0sO,GACnB,IAAI6oR,EAAc,GACdC,EAAc,GACdC,EAAa,GAejB,MAdA,MAAO/oR,IAAU6oR,EAAYnkgB,EAAIs7O,EAAMt7O,GACvC,MAAOs7O,IAAU6oR,EAAYx3f,EAAI2uO,EAAM3uO,GACvC,UAAW2uO,IAAU6oR,EAAY7jgB,MAAQg7O,EAAMh7O,OAC/C,WAAYg7O,IAAU6oR,EAAY5jgB,OAAS+6O,EAAM/6O,QACjD02f,EAASjogB,KAAMm1gB,GACf,SAAU7oR,GAAStsP,KAAK60gB,aAAaj1f,KAAK,CACtCk1f,aAAcxoR,EAAM7jM,OAExB,YAAa6jM,IAAU8oR,EAAY14f,GAAK4vO,EAAM59M,SAC9C,YAAa49M,IAAU8oR,EAAYz4f,GAAK2vO,EAAM39M,SAC9C3uC,KAAKuL,OAAOqU,KAAKw1f,GACjB,UAAW9oR,IAAU+oR,EAAW,eAAiB/oR,EAAMlzM,OACvD,YAAakzM,IAAU+oR,EAAW,iBAAmB/oR,EAAMp7G,SAC3DlxI,KAAK+0gB,MAAMn1f,KAAKy1f,GACTr1gB,MAEJ4F,GAEX0vgB,aAAc,SAAS3xf,EAAM4xf,GACzB,IAAItrgB,GAAK0pgB,EAAAA,EAAAA,oBACL/tgB,EAAS5F,KAAKynP,eAAe,SAAU,CACvCx9O,GAAIA,IACL8V,OAAO/f,KAAK+ygB,OACXyC,EAA2Bx1gB,KAAKynP,eAAe,uBAAuB1nO,OAAOna,GAC7E0mP,EAAQ,CACR3oO,KAAMA,EACN4xf,MAAOA,GAMX,OAJA3vgB,EAAOqE,GAAKA,EACZjK,KAAKynP,eAAe,UAAW6E,GAAOvsO,OAAOy1f,GAC7Cx1gB,KAAKynP,eAAe,UAAW6E,GAAOvsO,OAAOy1f,GAC7Cx1gB,KAAKynP,eAAe,UAAW6E,GAAOvsO,OAAOy1f,GACtC5vgB,GAEXm2f,mBAAoB,WAChB,GAAI/7f,KAAKy1gB,iBACL,OAAOz1gB,KAAKy1gB,iBAEhB,IAAIxrgB,GAAK0pgB,EAAAA,EAAAA,oBACL/tgB,EAAS5F,KAAKynP,eAAe,SAAU,CACvCx9O,GAAIA,IACL8V,OAAO/f,KAAK+ygB,OAOf,OANA/ygB,KAAKynP,eAAe,iBAAiB7nO,KAAK,CACtC+D,KAAM,SACN/J,OAAQ,2FACTmG,OAAOna,GACVA,EAAOqE,GAAKA,EACZjK,KAAKy1gB,iBAAmB7vgB,EACjBA,GAEX8vgB,cAAe,SAASzrgB,GACpB,IAAIrE,EAAS5F,KAAKynP,eAAe,SAAU,CACvCx9O,GAAIA,IACL8V,OAAO/f,KAAK+ygB,OAMf,OALA/ygB,KAAKynP,eAAe,gBAAiB,CACjC9jO,KAAM,SACN/J,OAAQ,GAAGgiB,OAAO,IAAK,eAAeA,OAAO,IAAK,eAAeA,OAAO,IAAK,oBAC9E7b,OAAOna,GACVA,EAAOqE,GAAKA,EACLrE,GAEX+vgB,iBAAkB,WACd,IAKInogB,EALAoogB,EAAU51gB,KAAK61gB,qBAAuB71gB,KAAK61gB,sBAAwB,CACnEC,OAAQ,GACRC,QAAQpC,EAAAA,EAAAA,qBAERmC,EAASF,EAAQE,OAErB,IAAKtogB,KAAQsogB,EACTA,EAAOtogB,GAAMwnG,QAAQ52F,UAEzBw3f,EAAQE,OAAS,GACjBF,EAAQI,UAAY,GACpBJ,EAAQK,OAAS,GAErBC,YAAa,SAASv9N,EAAOw9N,EAAWF,GACpC,IACW78d,EAEPu/P,EAFAv/P,MACU2sd,EACVptN,EADAotN,SAEJ,OAAO/lgB,KAAKg1G,QAAQ57D,EAAO2sd,EAAU,GAAGnqe,OAAOu6e,EAAW,cAAcv6e,OAAOq6e,OAEnFG,WAAY,SAAS17f,EAAGy7f,EAAWF,GAC/B,OAAOj2gB,KAAK01gB,cAAc,GAAG95e,OAAOu6e,EAAW,gBAAgBv6e,OAAOq6e,OAE1EhQ,iBAAkB,SAAS35Q,EAAOruL,EAAKt6C,GACnC,IACI0yf,EAGArha,EAJA4ga,EAAU51gB,KAAK61gB,qBAEfxsb,EAAO,YAAc1lE,EAgCjC,SAAyBi1R,GACrB,IACWx/P,EAEPw/P,EAFAx/P,MACU2sd,EACVntN,EADAmtN,SAEJ,MAAO,IAAM3sd,EAAQ,KAAO2sd,EAAS1nd,KAAO,IAAM0nd,EAASz0f,MAAQ,IAAMy0f,EAAS70X,QAAU,IAAM60X,EAAS1qX,UArCvEi7X,CAAgBhqR,GA99DlC,sBA+9DVtjP,EAAS,YAAc2a,EAAO3jB,KAAKk2gB,YAAcl2gB,KAAKo2gB,WAiB1D,OAfIR,EAAQI,UAAU/3c,KAASorB,IACvBprB,GACAj+D,KAAKkmgB,oBAAoBjoc,IAE7Bo4c,EAAcT,EAAQE,OAAOzsb,MAEzB2rB,EAAUhsG,EAAOvI,KAAKT,KAAMssP,EAAOspR,EAAQG,OAAQH,EAAQK,UAC3DI,EAAcT,EAAQE,OAAOzsb,GAAQ,CACjC2rB,QAASA,EACT97B,MAAO,GAEX08b,EAAQI,UAAUhha,EAAQ/qG,IAAMo/E,KACjCgtb,EAAYn9b,MACfjb,EAAMo4c,EAAYrha,QAAQ/qG,IAEvBg0D,GAEXioc,oBAAqB,SAASjoc,GAC1B,IAAI23c,EAAU51gB,KAAK61gB,qBACfxsb,EAAOusb,EAAQI,UAAU/3c,GACzBo4c,EAAcT,EAAQE,OAAOzsb,GAC7Bgtb,GAAe,MAAQA,EAAYn9b,QACnCm9b,EAAYrha,QAAQ52F,iBACbw3f,EAAQE,OAAOzsb,UACfusb,EAAQI,UAAU/3c,MAYrC,IAAIgvc,GAAsB,WACtB,IAAIv8e,EAAY,GAChB,MAAO,CACHpvB,IAAK,SAASs4B,GACVlJ,EAAU9vB,KAAKg5B,IAEnBp4B,OAAQ,SAASo4B,GACblJ,EAAYA,EAAU9qB,QAAQ,SAAS4C,GACnC,OAAOA,IAAOoxB,MAGtBs5e,iBAAkB,SAASlye,GACvBtQ,EAAYA,EAAU9qB,QAAQ,SAAS4C,GACnC,OAAOA,EAAGw4B,WAAaA,MAG/B+8M,KAAM,WACFrtN,EAAUzwB,SAAS,SAAS25B,GACxBA,SAlBU,GAuBf28e,GAAe,WACtBtJ,GAAoBlvR,kuDCpiEhB42B,EASJhvP,KATAgvP,GACM6hQ,EAQN7wf,KARA6wf,KACKl5d,EAOL33B,KAPA23B,IACK6iB,EAMLx6C,KANAw6C,IACOplB,EAKPp1B,KALAo1B,MACM2tI,EAIN/iK,KAJA+iK,KACK/nH,EAGLh7C,KAHAg7C,IACM+5E,EAEN/0H,KAFA+0H,KACO+7X,EACP9wf,KADA8wf,MAEAzjB,EAAOrte,KAAKG,IACZmte,EAAOtte,KAAKC,IACZ8wf,EAAO/wf,KAAKivP,IACZ+hQ,EAAOhxf,KAAKixf,IACZpiS,EAAS7uN,KAAK6H,MACdq7O,EAAqBD,EAAAA,QAAAA,mBAErBiuQ,EAAaliQ,EAAK,IAClBmiQ,EAAStte,MACTute,EAAUtnd,OAEVund,EAAqB,EACdC,EAAe,GACfC,EAAS,SAASt1gB,EAAO8lI,GAChC,OAAK9lI,EAGEu+D,EAAIv+D,GAASu+D,EAAIunE,GAPjBzhB,KASAkxZ,EAAmB,SAASv1gB,GACnC,OAAO2lQ,EAAAA,EAAAA,IAAO2vQ,EAAOt1gB,EAAO,MAErBw1gB,EAAU,SAASjzM,EAAOz8L,GACjC,OAAO/mE,EAAI+mE,EAAMy8L,IAEVkzM,EAAiB,SAAS7le,GACjC,OAAQA,EAAQ,IAAM,KAAO,KAEtB8le,EAA8B,SAAS9le,GAC9C,OAAO,GAAKA,GAEL+le,EAAmB,SAAS31gB,GACnC,OAAO+yQ,EAAK/yQ,EAAQ,KAEb41gB,EAAe,SAAShme,GAC/B,IAAIime,EAAiBF,EAAiB/le,GACtC,MAAO,CACHojO,IAAK8hQ,EAAKe,GACVb,IAAKD,EAAKc,KAIP97N,EAAc,SAAS/9E,EAAIluB,EAAImuB,EAAIluB,GAC1C,IAAI+nU,EAAQ75S,EAAKD,EACb+5S,EAAQhoU,EAAKD,EACjB,OAAOh1D,EAAKi9X,EAAQA,EAAQD,EAAQA,IAE7BE,EAAkB,SAASn+b,GAClC,IACIo+b,EADAngd,EAAIpa,EAAIm8B,GAEZ,OAAKq9b,EAAOp/c,GAxCLuuD,IAyCCvuD,EAAI,GACJA,EAAIyI,EAAIzI,GAAK8+c,GACbqB,EAAKnvV,EAAKhxH,IACEA,EAbM,MAawBmgd,EAAK98d,EAAM2c,IAElD,GAIJogd,EAAuB,SAASj8f,EAAOuX,EAAK8lD,GACnD,IAEIpgD,EAFA6he,EAAQ1H,EAAK2kB,EAAgB/7f,GAAQ+7f,EAAgBxkf,IACrDjb,GAAay/f,EAAgBt6d,EAAIlqB,EAAMvX,GAASq9D,GAEpD,OAAK49b,EAAOnc,IAAWmc,EAAO3+f,GAevB,MAdCmlC,EAAIq9c,IAAU,GACd7he,EAAS,aACT3gB,EAAY,IAAMA,EAAY,GAC9BA,EAAY,IAAMA,EAAY,KAE9B2gB,EAAS,eACT3gB,GAAawif,EAAQ,GACT,IAAMxif,EAAY,IAE3B,CACHwL,KAAMmV,EACN3gB,UAAWA,KAKZ4/f,EAAa,SAASn2gB,EAAOuW,GAIpC,GAHIA,EAAY,KACZA,EAAY,KAEZ4sG,EAAAA,EAAAA,IAAUnjH,GACV,OAAIqyQ,EAAAA,EAAAA,IAAcryQ,GACPm1gB,EAAQn1gB,EAAM2xQ,cAAcp7P,IAE5B4+f,EAAQn1gB,EAAMqyD,QAAQ97C,KAI9B6/f,EAAW,SAASp2gB,GAC3B,OAAOA,EAAM2xQ,gBAAgB9lQ,MAAM,KAAK,IAErC,SAASvH,EAAImyC,EAAOmW,GAKvB,IAJA,IAGI5sD,EAHAmK,EAAI,EACJyrC,EAAMa,EAAM/3C,OACZuO,EAAS,GAEN9C,EAAIyrC,GAEH,QADJ51C,EAAQ4sD,EAASnW,EAAMtsC,GAAIA,KAEvB8C,EAAOjO,KAAKgB,GAEhBmK,IAEJ,OAAO8C,EAGX,SAASopgB,EAAa70f,EAAQrc,GAC1B,OAAOb,EAAIa,GAAM,SAAAC,GAAG,OAAIoc,EAAOpc,GAAOoc,EAAOpc,GAAO,QAGxD,SAASkxgB,EAAe90f,EAAQrc,EAAMoxgB,EAAcC,GAChD,IAAIC,EAAMD,EAOV,OANA39f,EAAAA,EAAAA,IAAK1T,GAAM,SAAC2T,EAAG1T,GACPoc,EAAOpc,KACPoc,EAAOpc,IAAQmxgB,EACfE,GAAOF,MAGRE,EAEJ,SAASzsB,EAAchqf,GAC1B,OAAOikE,OAAOjkE,GAAOqhC,cAElB,SAASq1e,EAAgB5pU,GAO5B,OANIA,IACAA,EAAO6pU,YAAc7pU,EAAO51L,IAC5B41L,EAAO8pU,eAAiB9pU,EAAO1wL,OAC/B0wL,EAAO+pU,aAAe/pU,EAAOh2L,KAC7Bg2L,EAAOgqU,cAAgBhqU,EAAO3wL,OAE3B2wL,EAGX,SAASiqU,EAAmB/2gB,GACxB,OAAO,KAAmBA,GAASA,EAAQ,KAAmBA,EAAQ,EAEnE,SAASwtgB,EAAcJ,GAC1B,IAAI4J,EAAKD,EAAmB59d,EAAMi0d,EAAKh+f,IACnC6ngB,EAAKF,EAAmB59d,EAAMi0d,EAAKrxf,IAGnC9O,EAAS,CACTmC,EAAG4ngB,EACHj7f,EAAGk7f,EACHvngB,MALKqngB,EAAmBjwV,EAAKsmV,EAAK19f,MAAQ09f,EAAKh+f,IAKnC4ngB,EACZrngB,OALKongB,EAAmBjwV,EAAKsmV,EAAKz9f,OAASy9f,EAAKrxf,IAKnCk7f,GAGjB,OADAhqgB,EAAOsmC,SAAWtmC,EAAOmC,IAAMnC,EAAO8O,IAAM9O,EAAOyC,QAAUzC,EAAO0C,OAC7D1C,EAEJ,SAASsggB,EAAWH,EAAM1rf,EAAQkuB,GACrC,IAAIojO,EAAMmiQ,EAAQL,EAAKlle,EAAQqle,GAAY5id,QAAQ,IAC/C2id,EAAMG,EAAQJ,EAAKnle,EAAQqle,GAAY5id,QAAQ,IAC/C6kd,EAAK9J,EAAK19f,MAAQ,EAClByngB,EAAK/J,EAAKz9f,OAAS,EACnBkqS,EAAUuzN,EAAKh+f,EAAI8ngB,EACnBp9N,EAAUszN,EAAKrxf,EAAIo7f,EACnBC,EAAM17d,EAAIw7d,EAAKlkQ,GAAOt3N,EAAIy7d,EAAKnC,GAC/BqC,EAAM37d,EAAIw7d,EAAKlC,GAAOt5d,EAAIy7d,EAAKnkQ,GAGnC,OAAOw6P,EAAc,CACjBp+f,EAHWsS,EAAO,IAAMm4R,EAAUn4R,EAAO,IAAMsxP,GAAO8mC,EAAUp4R,EAAO,IAAMszf,EAG/DoC,EACdr7f,EAHW2F,EAAO,IAAMm4R,EAAUn4R,EAAO,IAAMszf,GAAOl7N,EAAUp4R,EAAO,IAAMsxP,EAG/DqkQ,EACd3ngB,MAAO,EAAI0ngB,EACXzngB,OAAQ,EAAI0ngB,IAGb,IAAIC,EAAe,SAAS91f,EAAQrc,EAAMqxgB,GAC7C,IAAIe,EACJ,IACIA,EAAYlB,EAAa70f,EAAQrc,IACvBnG,KAAK8nL,EAAK0vV,EAAWe,EAAU74gB,SACzC83gB,EAAWF,EAAe90f,EAAQrc,EAAMisf,EAAKhte,MAAM,KAAMmzf,GAAYf,SAChEA,EAAW,GAAKe,EAAU74gB,OAAS,GAC5C,OAAO83gB,GAEAgB,EAAc,SAASx3gB,EAAO2yC,GACrC,YAAO,IAAW3yC,EAAQA,EAAQ2yC,GAE3B8ke,EAAa,SAASz/f,GAC7B,IACI7N,EACA4oO,EAFA2kS,EAAS,GAGb,IAAKvtgB,EAAI,EAAG4oO,EAAK/6N,EAAOtZ,OAAQyL,EAAI4oO,IAAM5oO,EACtCutgB,EAAO1tB,EAAchye,EAAO7N,KAAO,EAEvC,OAAO,SAASnK,EAAO2yC,GACnB,IAAIhwB,EAASqne,EAAchqf,GAC3B,OAAO03gB,EAAO/0f,GAAUA,EAASgwB,IAG9Bgle,EAAmB,SAASn/f,GACnC,IAAIo/f,EAAc,GAelB,OAdA/+f,EAAAA,EAAAA,IAAKL,GAAW,IAAK,SAASpT,EAAKpF,GAC/B,GAAI,cAAcshC,KAAKl8B,SAAc,GAAI,YAAcA,EACnDpF,EAAQ,UACL,GAAI,UAAYoF,GAEnB,GADAA,EAAM,OACF,YAAaoT,EAAS,CACtB,IAAIg/B,EAAQ,IAAIq7L,EAAAA,QAAM7yO,GACtBA,EAAQ,QAAQg6B,OAAOwd,EAAMmtB,EAAG,KAAK3qC,OAAOwd,EAAMotB,EAAG,KAAK5qC,OAAOwd,EAAMsM,EAAG,KAAK9pB,OAAOxhB,EAAQ82H,QAAS,WAG3GlqI,EAAM,QAAUA,EAEpBwygB,EAAYxygB,GAAOpF,KAEhB43gB,GAEJ,SAASC,GAAiBC,EAAcjJ,EAAYj/d,EAAOmje,GAC9D,IAAIgF,EAAmBhF,EAAS,EAAIA,EAAS,EAC7Cnje,GAAQmX,EAAAA,EAAAA,IAAUnX,GAASA,EAAQi/d,EAAa,GAAK,EACrD,IAAImJ,EAASpC,EAAahme,GAC1B,MAAO,CACHxgC,EAAGwjO,EAAOklS,EAAa1ogB,EAAI2ogB,EAAmBC,EAAOhlQ,KACrDj3P,EAAG62N,EAAOklS,EAAa/7f,EAAIg8f,EAAmBC,EAAOhD,MAGtD,IAAIiD,GAAmB,SAASH,EAAc1ogB,EAAG2M,GACpD,IAAIg3f,EAASh5N,EAAY+9N,EAAa1ogB,EAAG0ogB,EAAa/7f,EAAG3M,EAAG2M,GACxD6zB,EAAQile,EAAM94f,EAAI+7f,EAAa/7f,EAAG3M,EAAI0ogB,EAAa1ogB,GACvD,MAAO,CACH8ogB,IAAKtlS,EAAO6iS,EAAe,IAAM7le,EAAQmjO,IACzCpuM,EAAGiuK,EAAOmgS,KAGPoF,GAAwB,SAASC,EAAgBtugB,GACxD,IAIIuugB,EAEA35gB,EACAuN,EAPAqsgB,GAAkBh/b,EAAAA,EAAAA,IAAW8+b,EAAeE,iBAAmBF,EAAeE,gBAAkBloT,EAAAA,KAChGmoT,EAAYH,EAAeG,UAC3BC,EAAkB,GAClBC,EAAc,GAEdtugB,EAAI,EAIR,IAAKzL,GADLoL,EAAQA,GAAS,IACGpL,OAAQyL,EAAIzL,EAAQyL,IAEhCougB,KADJtsgB,EAAOnC,EAAMK,OAETkugB,EAASG,EAAgBvsgB,EAAKssgB,OAE1BF,EAASG,EAAgBvsgB,EAAKssgB,IAAc,CACxC3sgB,KAAMK,EAAKssgB,GACXG,eAAgBzsgB,EAAKssgB,IAEzBE,EAAYz5gB,KAAKq5gB,EAAOzsgB,QAIpC,OAAOtH,EAAIm0gB,GAAc,SAASE,GAC9B,IAAI7vf,EAAQ0vf,EAAgBG,GAC5B,OAAOzxgB,EAAAA,EAAAA,GAAO4hB,EAAOwvf,EAAgBz5gB,KAAK,KAAMiqB,EAAMld,WAGnDgtgB,GAAoB,SAASC,EAAYjyJ,EAAYC,GAC5D,GAAI,IAAMgyJ,EAAWn6gB,OACjB,MAAO,CACHm6gB,WAAY,IAGpBjyJ,GAAa7/T,EAAAA,EAAAA,IAAU6/T,GAAcA,EAAaiyJ,EAAW,GAC7DhyJ,GAAW9/T,EAAAA,EAAAA,IAAU8/T,GAAYA,EAAWgyJ,EAAWA,EAAWn6gB,OAAS,GAC3E,IAGIo6gB,EAHAC,EAAkBz0gB,EAAIu0gB,GAAY,SAAAlyb,GAAQ,OAAI,OAASA,QAAY,IAAWA,OAAW,EAASA,EAASo4I,aAC3Gi6S,EAAkBD,EAAgBx0gB,QAAQqiX,EAAW7nJ,WACrDk6S,EAAgBF,EAAgBx0gB,QAAQsiX,EAAS9nJ,WAEjDw0O,GAAW,EACfylE,EAAkB,IAAMA,EAAkB,GAC1CC,EAAgB,IAAMA,EAAgBJ,EAAWn6gB,OAAS,GACtDu6gB,EAAgBD,IAChBF,EAAUG,EACVA,EAAgBD,EAChBA,EAAkBF,EAClBvlE,GAAW,GAEf,IAAI2lE,EAAoBL,EAAWh1gB,MAAMm1gB,EAAiBC,EAAgB,GACtEE,EAAUD,EAAkBx6gB,OAAS,EACzC,MAAO,CACHm6gB,WAAYK,EACZj/f,MAAOi/f,EAAkB3lE,EAAW4lE,EAAU,GAC9C3nf,IAAK0nf,EAAkB3lE,EAAW,EAAI4lE,GACtC5lE,SAAUA,IAGX,SAAS6lE,GAAqBC,GACjC,QAASA,EAAKzpgB,KAAO,GAElB,SAAS0pgB,GAAqBC,GACjCA,EAAMl7gB,SAAQ,SAAAg7gB,GACV,IAAI1pgB,EAAS0pgB,EAAK1pgB,OACdC,EAAO,EACP4pgB,EAAezle,WAAWpkC,SAAW,IACrC+4M,EAAAA,EAAAA,IAAS/4M,IAAWA,EAAOpL,QAAQ,OAAS,IAAK4+G,EAAAA,EAAAA,IAAUxzG,IAAWA,EAAS,KAC/E6pgB,EAAe5mS,EAAO4mS,GACtB5pgB,EAAO,IAENA,GAAQ4pgB,KACL9wT,EAAAA,EAAAA,IAAS/4M,IAAWA,EAAOpL,QAAQ,MAAQ,GAC3Ci1gB,GAAgB,IAChB5pgB,EAAO,GACA4pgB,EAAe,IACtBA,EAAeA,GAAgB,EAAI,EAAI99d,EAAI89d,KAGnDH,EAAK1pgB,OAAS6pgB,EACdH,EAAKzpgB,KAAOA,KAEhB,IAAI6pgB,EAAsBF,EAAMv1gB,OAAOo1gB,IACnCM,EAAYD,EAAoB3xgB,QAAO,SAAC+8B,EAAM6X,GAAP,OAAgB7X,GAAQ6X,EAAK/sC,QAAU,KAAI,GAClFgqgB,EAAoBF,EAAoB/6gB,OACxCk7gB,EAAmBH,EAAoBz1gB,QAAO,SAAAq1gB,GAAI,OAAKA,EAAK1pgB,UAC5DkqgB,EAAmBD,EAAiBl7gB,OACxC,GAAIg7gB,EAAY,GAAKG,EACjBD,EAAiBv7gB,SAAQ,SAAAg7gB,GAAI,OAAIA,EAAK1pgB,QAAU,EAAI+pgB,GAAaG,UAC9D,GAAIH,EAAY,GAAKA,EAAY,IAAMG,GAAoB,IAAMH,GAAaG,EAAkB,CACnG,GAAIA,EAAkB,CAClB,IAAIC,EAAiBJ,EAAYC,EAC7BI,EAAiBF,EAAmBC,EACxCL,EAAoBz1gB,QAAO,SAAAq1gB,GAAI,OAAIA,EAAK1pgB,UAAQtR,SAAQ,SAAAg7gB,GAAI,OAAIA,EAAK1pgB,SAAW+pgB,EAAYK,GAAkBL,KAC9GE,EAAiBv7gB,SAAQ,SAAAg7gB,GAAI,OAAIA,EAAK1pgB,OAASmqgB,KAEnDL,EAAoBp7gB,SAAQ,SAAAg7gB,GAAI,OAAIA,EAAK1pgB,QAAU,EAAI+pgB,MAGxD,SAASM,GAAoBT,EAAOzsU,EAAQmtU,GAC/C,IAAIC,EAAmB,EACnB3tf,EAAU8of,EACV8E,EAAYF,EAAUntU,EAAOp9L,MAAQo9L,EAAOh2L,KAAOg2L,EAAO3wL,MAAQ2wL,EAAOn9L,OAASm9L,EAAO51L,IAAM41L,EAAO1wL,OACtGg+f,EAAmBb,EAAMzxgB,QAAO,SAAC+8B,EAAMgjO,GAAP,OAAehjO,GAASu0e,GAAqBvxQ,GAAoB,EAAbA,EAAIl4P,UAAa,GACrG0qgB,EAAcF,EAAY5tf,GAAWgtf,EAAM76gB,OAAS,GAAK07gB,EACzDE,EAAYL,EAAU,OAAS,MAC/BM,EAAUN,EAAU,QAAU,SAClCV,EAAMl7gB,SAAQ,SAAAg7gB,GACV,IAAImB,EAAcpB,GAAqBC,GAAsBzmS,EAAOymS,EAAK1pgB,OAAS0qgB,GAAnChB,EAAK1pgB,OACpD0pgB,EAAKvsU,OAASusU,EAAKvsU,QAAU,IAC7B5lM,EAAAA,EAAAA,GAAOmygB,EAAKvsU,OAAQA,GACpBusU,EAAKvsU,OAAOwtU,GAAaxtU,EAAOwtU,GAAaJ,EAC7Cb,EAAKvsU,OAAOytU,GAAWztU,EAAOytU,IAAYJ,EAAYK,EAAaN,GACnEA,EAAmBA,EAAmBM,EAAajuf,EACnDmqf,EAAgB2C,EAAKvsU,WAGtB,IAAI0wD,GAAS,SAAS/mN,GACzB,IAAIz+B,EAAS,GACb,OAAO1T,EAAImyC,GAAQ,SAASn4C,GACxB,IAAI2O,EAAU+K,EAAO1Z,GAAe,KAAPA,EAE7B,OADA0Z,EAAO1Z,IAAQ,EACR2O,MAGJwtgB,GAAoC,SAASrN,EAAMryf,EAAI2G,GAC9D,IAAI82S,EAAa40M,EAAKh+f,EAAIg+f,EAAK19f,MAAQ,GAAKgS,EAAOtS,EAC/CsrgB,GAAqBliN,EAAa40M,EAAKh+f,EAAIg+f,EAAKh+f,EAAIg+f,EAAK19f,OAASgS,EAAOtS,EACzEurgB,EAAkBvN,EAAKrxf,EAAI2F,EAAO3F,EAClC6+f,EAAkBD,EAAkB5/f,EACpC8/f,EAAoBjoS,EAAO95F,EAAK4hY,EAAoBA,EAAoBC,EAAkBA,EAAkBC,EAAkBA,IAC9H9/f,GAAM09S,GAAcqiN,GAAqBA,IAAsBH,EACnE,MAAO,CACHtrgB,EAAGsS,EAAOtS,GAAKopT,EAAa19S,EAAKA,EAAKsyf,EAAK19f,OAC3CqM,EAAGqxf,EAAKrxf,EAAIhB,IAGb,SAAS+/f,GAAmBC,EAAMC,GACrC,MAAO,CACHC,cAAeF,EAAKE,eAAiBD,EAAKC,cAC1CrkgB,KAAMy6e,EAAK0pB,EAAKnkgB,MAAQ,EAAGokgB,EAAKpkgB,MAAQ,GACxCskgB,aAAcH,EAAKG,cAAgBF,EAAKE,aACxCC,qBAAsB9pB,EAAK0pB,EAAKI,sBAAwB,EAAGH,EAAKG,sBAAwB,IAGzF,SAASC,GAAkBp7gB,GAC9B,OAAI2D,MAAMi2E,QAAQ55E,GACP,CACH4mX,WAAY5mX,EAAM,GAClB6mX,SAAU7mX,EAAM,IAGbA,GAAS,GAGjB,SAAS+ugB,GAAmB3/f,EAAG2M,EAAG4yf,EAAaC,EAAaC,EAAYC,GAC3E,IAAIhK,EACAuW,GAAQ,EACRC,EAAYnF,EAAWrH,EAAU,GAAKqH,EAAWtH,EAAY,GAqBjE,OApBIyM,IACI5/d,EAAI4/d,GAAa,MAAQ,IACzBzM,EAAa,EACbC,EAAW,IACXhK,GAAW,EACXgK,GAAY,KAEZD,EAAa,MACbA,GAAc,KAEdC,EAAW,MACXA,GAAY,KAEZD,EAAaC,IACbD,GAAc,KAElBwM,GAAQ,GAEZxM,GAAcoG,EACdnG,GAAYmG,EACL,CAAC7lgB,EAAG2M,EAAGgI,KAAKG,IAAI0qf,EAAaD,GAAc5qf,KAAKC,IAAI4qf,EAAaD,GAAc5qf,KAAKivP,IAAI67P,GAAa9qf,KAAKixf,IAAInG,GAAa9qf,KAAKivP,IAAI87P,GAAW/qf,KAAKixf,IAAIlG,GAAWhK,EAAU3rd,EAAMuC,EAAIozd,EAAWD,GAAc97P,GAAM,EAAI,IAAM,IAAKsoQ,GAEzO,SAASE,GAAyBC,EAAaC,GAClD,OAAIA,EACOD,EAEJ,CAACA,EAAY50J,WAAY40J,EAAY30J,UAEzC,SAAS60J,GAAetxb,EAAOuxb,GAClC,MAAI,aAAevxb,EAAMykB,SACd,SAAS+sa,EAAYC,GACxB,IAAIjqd,EAAOzrD,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,EAC5E,OAAO,IAAIumE,KAAKkvc,EAAWv5Q,UAAYzwM,EAAOiqd,IAGlD,gBAAkBzxb,EAAM0xb,SACjB,SAASF,EAAYC,GACxB,IAAIjqd,EAAOzrD,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,EACxEo4D,EAAMw9c,GAAUH,EAAYxxb,EAAM07C,MAAQl0E,EAAOiqd,EACrD,OAAOG,GAAWz9c,EAAK6rB,EAAM07C,OAG9B,SAAS81Y,EAAYC,GACxB,IAAIjqd,EAAOzrD,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,GAAKA,UAAU,GAAK,EACxEwe,EAAWi3f,EAAahqd,EAAOiqd,EACnC,OAAOF,GAAoBh3f,EAAWi3f,GAAc,EAAI,EAAIj3f,GAG7D,SAASs3f,GAAkBzjgB,EAASgjgB,EAAaU,EAAYC,GAChE,IAAIC,GAAar1d,EAAAA,EAAAA,IAAUy0d,EAAY50J,YACnCy1J,GAAat1d,EAAAA,EAAAA,IAAUy0d,EAAY30J,UACnCy1J,EAAc,aAAe9jgB,EAAQsjgB,SACzCK,EAAYA,GAAaD,EACzB,IAAIx8gB,EAAMg8gB,GAAeljgB,GAAS,GAC9B0L,EAAMk4f,EAAaZ,EAAY50J,WAAau1J,EAAUj4f,IACtDF,EAAMq4f,EAAab,EAAY30J,SAAWs1J,EAAUn4f,IACpDu4f,EAAcf,EAAY98gB,OAC1Bm6gB,EAAasD,EAAUtD,WAC3B,GAAIyD,KAAgBv1d,EAAAA,EAAAA,IAAU7iC,MAAS6iC,EAAAA,EAAAA,IAAU/iC,GAC7C,MAAO,CACH4iW,WAAY1iW,EACZ2iW,SAAU7iW,GAGlB,IAAI+iC,EAAAA,EAAAA,IAAUw1d,GACV,GAAID,EACI,aAAe9jgB,EAAQq2F,WAAasU,EAAAA,EAAAA,IAAUo5Z,KAC9CA,EAAct1Q,EAAmBs1Q,IAEjCF,IAAeD,IAAeC,IAAeD,IAC7Cr1d,EAAAA,EAAAA,IAAUm1d,EAAWl4f,OAASA,EAAMA,EAAMk4f,EAAWl4f,IAAMk4f,EAAWl4f,IAAMA,GAC5EE,EAAMxkB,EAAIskB,EAAKu4f,GAAc,IACtBH,IAAeC,KACtBt1d,EAAAA,EAAAA,IAAUm1d,EAAWh4f,OAASA,EAAMA,EAAMg4f,EAAWh4f,IAAMg4f,EAAWh4f,IAAMA,GAC5EF,EAAMtkB,EAAIwkB,EAAKq4f,SAInB,GADAA,EAAcloe,SAASkoe,IAClB30e,MAAM20e,IAAgBh4Z,SAASg4Z,GAEhC,GADAA,IACKF,GAAeD,GAGb,GAAIA,IAAeC,EAAY,CAElCr4f,EADqB40f,GAAkBC,EAAY30f,OAAK,GACnC20f,WAAW0D,QAC7B,IAAKH,GAAcC,EAAY,CAClC,IAAIG,EAAkB5D,GAAkBC,OAAY,EAAQ70f,GAC5DE,EAAMs4f,EAAgB3D,WAAW2D,EAAgB3D,WAAWn6gB,OAAS,EAAI69gB,SAPzEv4f,EAAM60f,EAAWA,EAAWn6gB,OAAS,GACrCwlB,EAAM20f,EAAWA,EAAWn6gB,OAAS,EAAI69gB,GAmBzD,OARID,KACIv1d,EAAAA,EAAAA,IAAUm1d,EAAWl4f,MAAQA,EAAMk4f,EAAWl4f,MAC9CA,EAAMk4f,EAAWl4f,MAEjB+iC,EAAAA,EAAAA,IAAUm1d,EAAWh4f,MAAQA,EAAMg4f,EAAWh4f,MAC9CA,EAAMg4f,EAAWh4f,MAGlB,CACH0iW,WAAY1iW,EACZ2iW,SAAU7iW,GAGX,SAAS+3f,GAAU/7gB,EAAO8lI,GAC7B,IAAI22Y,EAAiBt2gB,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAC7Eu2gB,EAAkBv2gB,UAAUzH,OAAS,EAAIyH,UAAU,QAAK,EAC5D,IAAKs2gB,EACD,OAAOnH,EAAOt1gB,EAAO8lI,GAEzB,GAAI,IAAM9lI,EACN,OAAO,EAEX,IAAI28gB,EAAiBrH,EAAO55d,EAAI17C,GAAQ8lI,IAAS42Y,EAAkB,GACnE,OAAIC,EAAiB,EACV,GAEJh3Q,EAAAA,EAAAA,KAAO/zM,EAAAA,EAAAA,IAAK5xD,GAAS28gB,EAAgB9ud,OAAOkR,EAAI+mE,EAAM42Y,EAAkB,GAAGrqd,QAAQ3W,EAAIghe,MAE3F,SAASV,GAAWh8gB,EAAO8lI,GAC9B,IAAI22Y,EAAiBt2gB,UAAUzH,OAAS,QAAK,IAAWyH,UAAU,IAAKA,UAAU,GAC7Eu2gB,EAAkBv2gB,UAAUzH,OAAS,EAAIyH,UAAU,QAAK,EAC5D,IAAKs2gB,EACD,OAAOjH,EAAQx1gB,EAAO8lI,GAE1B,GAAI,IAAM9lI,EACN,OAAO,EAEX,IAAI28gB,EAAiBnH,EAAQ95d,EAAI17C,IAAU08gB,EAAkB,GAAI52Y,GACjE,OAAI62Y,EAAiB,EACV,GAEJh3Q,EAAAA,EAAAA,KAAO/zM,EAAAA,EAAAA,IAAK5xD,GAAS28gB,EAAgB9ud,OAAOkR,EAAI+mE,EAAM42Y,GAAiBrqd,QAAQ3W,EAAIghe,MAEvF,SAASE,GAAexyb,EAAOyyb,GAClC,OAAIl5gB,MAAMi2E,QAAQijc,GACPzyb,EAAM1rF,SAAWm+gB,EAAiBn+gB,QAAU0rF,EAAMh2C,OAAM,SAAC91C,EAAM6L,GAAP,OAAa40N,GAAQzgO,KAAUygO,GAAQ89S,EAAiB1ygB,OAEhH40N,GAAQ30I,EAAMw8R,cAAgB7nJ,GAAQ89S,EAAiBj2J,aAAe7nJ,GAAQ30I,EAAMy8R,YAAc9nJ,GAAQ89S,EAAiBh2J,UAGnI,SAAS9nJ,GAAQ/+N,GACpB,OAAOA,GAASA,EAAM++N,UAEnB,SAAS+9S,GAAchwU,EAAQ19L,EAAG2M,GACrC,OAAO3M,GAAK09L,EAAOh2L,MAAQ1H,GAAK09L,EAAO3wL,OAASJ,GAAK+wL,EAAO51L,KAAO6E,GAAK+wL,EAAO1wL,OAE5E,IAAI21f,GAAmB,iBAAM,cAAc/3e,OAAOo7e,MAClD,SAAS2H,GAAavle,EAAOwle,GAChC,OAAIt0T,EAAAA,EAAAA,IAASlxK,KAAWA,EACbA,EACAwle,EACAxle,EAAMsuF,KAENtuF,EAAMyle,QAAUzle,EAAMsuF,sXCnkBjCo3Y,EAAQ,UACRC,EAAQ,UACRC,EAAa,UACbC,EAAa,UAEbC,EAAM,UACNC,EAAsB,UACtBC,EAAwB,UACxB1a,EAAO,OACP2a,EAAQ,QACRC,EAAM,MACNC,EAAQ,QACRC,EAAS,SACTC,EAAO,OACPC,EAAS,SACTC,EAAS,SACTC,EAAU,UACd,GAAgB,CACZrvf,MAAO,CACH/iB,KAAM,gBACNu1K,WAAW,EACXkqB,KAAM,CACF7zJ,MAAOgme,EACP5pc,OAAQ,oEACRlhC,OAAQ,IACR97B,KAAM,GACN01B,OAAQ,WAEZ8vd,gBAAgB,EAChB36d,gBAAiBy7e,EACjBe,kBAAmBV,EACnBW,oBAAqBV,EACrBW,UAAWf,EACXgB,UAAWZ,EACXxzf,MAAO,CACHyX,gBAAiBy7e,EACjB7xU,KAAM,CACFz0L,KAAM,GACNg9D,OAAQ,8GACRlhC,OAAQ,KAEZ2re,SAAU,CACNhzU,KAAM,CACFz0L,KAAM,IAEVjN,OAAQ,EACR6+f,SAAU,SACVY,aAAc,YAElBZ,SAAU,SACVY,aAAc,YAElBkV,iBAAkB,CACdv9gB,KAAM,cAEVw9gB,OAAQ,CACJ98e,gBAAiBy7e,EACjBx6U,OAAQ,GACR2I,KAAM,CACFz0L,KAAM,GACN4gC,MAAO+le,EACP7qe,OAAQ,KAEZnyC,OAAQ,CACJmiM,OAAQ,CACJxrL,IAAK,EACLJ,KAAM,GACNqF,MAAO,GACPC,OAAQ,GAEZuxF,QAAS,CACLn2D,MAAO,OACPH,YAAa,OACb5V,gBAAiBy7e,GAErBtmO,MAAO,CACHp/P,MAAO,OACPH,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO2le,EACP9le,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO,OACPH,YAAa,UACb5V,gBAAiB,YAGzB+8e,YAAapB,GAEjBxzb,QAAS,CACLliD,SAAS,EACT+R,OAAQ,CACJ/pC,MAAO,EACP8nC,MAAO4le,EACPhke,UAAWqke,EACXx2gB,SAAS,GAEbokM,KAAM,CACF7zJ,MAAO+le,GAEX/le,MAAO0le,EACPuB,YAAa,GACbC,iBAAkB,GAClBC,iBAAkB,GAClBl8e,cAAe,SACfm8e,QAAQ,EACRxgf,SAAU0/e,EACVe,OAAQ,CACJvvY,QAAS,GACTxiG,QAAS,EACTC,QAAS,EACT8Z,KAAM,EACNrP,MAAO2le,GAEX2B,aAAa,GAEjBC,OAAQ,CACJC,UAAW,gBACXjtB,kBAAmB2rB,EACnB5rB,oBAAqB6rB,EACrBp5f,SAAUy5f,EACV/2gB,SAAS,EACTy7L,OAAQ,GACRu8U,WAAY,GACZxle,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACPwvgB,aAAc,EACd9le,UAAWqke,GAEfiB,iBAAkB,GAClBC,iBAAkB,GAClBQ,YAAa,EACb7mX,SAAU,EACV8mX,kBAAmB,GACnBC,eAAgB,EAChBr1f,MAAO,CACHyX,gBAAiBy7e,EACjBx6U,OAAQ,CACJ5rL,KAAM,EACNsF,OAAQ,EACRD,MAAO,EACPjF,IAAK,GAETm0L,KAAM,CACFz0L,KAAM,GACN87B,OAAQ,KAEZ2re,SAAU,CACN10gB,OAAQ,EACR0hM,KAAM,CACFz0L,KAAM,IAEV4xf,SAAU,OACVY,aAAc,YAElBZ,SAAU,OACVY,aAAc,aAGtB,eAAgB,CACZ1mS,UAAW,CACPh7L,SAAS,EACTk2L,SAAU,IACVlC,OAAQ,eACR4jT,uBAAwB,KAE5BC,qBAAsB,CAClB9le,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEX8vgB,cAAc,EACdv4gB,SAAS,EACT+3gB,UAAW,eACXtkU,cAAe,gBACf+kU,WAAY,CACRtb,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,EACN6yF,QAAS,KAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZ0sU,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,EACN6yF,QAAS,IAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGfgwgB,cAAe,CACXC,YAAa,OACb3/gB,MAAO,EACPw3C,MAAO2le,EACPyC,UAAW,EACXC,WAAY,GAEhBp+X,MAAO,CACHx6I,SAAS,EACT6yC,UAAWgke,EACX/f,cAAe,EACf+hB,iBAAkB,EAClBC,eAAgB,EAChBC,aAAc,EACdC,mBAAmB,EACnBC,mBAAe,EACfC,mBAAe,EACf57f,SAAUy5f,EACV3yU,KAAM,CACF7zJ,MAAO0le,GAEXzje,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO4le,EACPhke,UAAWqke,GAEf2C,UAAW,CACPn5gB,SAAS,EACTyI,MAAO,KAInB2wgB,oBAAqB,SACrBC,mBAAoB,SACpBC,gBAAgB,EAChBC,oBAAqB,CACjBC,qBAAqB,EACrBC,uBAAuB,EACvBC,eAAe,GAEnB32f,MAAO,CACH04K,OAAQ,IAEZk+U,eAAgB,CACZlxgB,MAAO,GACPC,OAAQ,GACRkxgB,YAAY,GAEhBtqd,KAAM,CACFwod,OAAQ,CACJ+B,iBAAkBjD,IAG1BkD,wBAAyBje,GAE7B,oBAAqB,CACjB77f,SAAS,EACT+5gB,qBAAqB,EACrBC,gBAAiB,KACjBC,cAAe,GACfC,yBAA0B,gBAC1BC,yBAA0B,eAC1B1xgB,MAAO,EACP+xI,MAAO,CACHx6I,SAAS,GAEbo6gB,KAAM,CACFp6gB,SAAS,EACTyI,MAAO,GAEX4xgB,UAAW,CACPr6gB,SAAS,EACTyI,MAAO,EACP4/H,QAAS,IAEb+xX,KAAM,CACFp6f,SAAS,EACTyI,MAAO,EACPhR,OAAQ,EACR0lE,MAAO,GAEXm9c,UAAW,CACPt6gB,SAAS,EACTyI,MAAO,EACP4/H,QAAS,GACT5wI,OAAQ,EACR0lE,MAAO,GAEXo9c,WAAY,CACR9C,iBAAkB,GAClBC,iBAAkB,GAEtB8C,kBAAmB,CACf/xgB,MAAO,EACP8nC,MAAO2le,EACP/je,UAAWqke,EACXh8X,MAAO,CACHx6I,SAAS,EACTsd,SAAUw5f,IAGlBz/X,OAAQ,CACJmD,MAAO,KAGf,0BAA2B,CACvB4pD,KAAM,CACF7zJ,MAAO,WAEX+0Z,gBAAgB,EAChB9yZ,OAAQ,CACJ/pC,MAAO,EACP8nC,MAAO,UACP4B,UAAWqke,EACXx2gB,SAAS,GAEbuwC,MAAO0le,EACP5tY,QAAS,GACTmvY,YAAa,GACbiD,WAAY,GACZhD,iBAAkB,GAClBC,iBAAkB,GAClBE,OAAQ,CACJvvY,QAAS,IACTxiG,QAAS,EACTC,QAAS,EACT8Z,KAAM,EACNrP,MAAO2le,GAEXv2a,MAAO,CACHl3F,MAAO,GACPC,OAAQ,IAEZ64f,SAAU,SACVY,aAAc,WACduY,eAAe,GAEnBC,MAAO,CACHrC,qBAAsB,CAClBx9f,KAAM,OACN2yE,MAAO,UACPmtb,YAAa,CACTn6e,aAAS,GAEb09H,MAAO,CACHn+J,SAAS,EACTouF,OAAQ,SACRz+E,KAAM,GACN6iC,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEXsvgB,UAAW,YACXtkU,cAAe,YACf+kU,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,KAInBoygB,QAAS,GACTxoe,KAAM,CACF5pC,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGfqygB,YAAa,CACTrygB,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGfsygB,cAAe,CACXtygB,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGfuygB,gBAAiB,CACbvygB,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGfwygB,kBAAmB,CACfxygB,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGfyygB,SAAU,CACNzygB,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGf08B,KAAM,CACFg5H,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEb8yY,YAAa,CACTh9W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEb+yY,gBAAiB,CACbj9W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEbgzY,sBAAuB,CACnBl9W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEbizY,SAAU,CACN9oe,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEX01J,MAAO,CACHn+J,SAAS,GAEbw4gB,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf4/H,QAAS,IAEbkzY,OAAQ,CACJ9ygB,MAAO,EACP+vgB,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,IAGf+ygB,WAAY,CACRr9W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEbozY,kBAAmB,CACft9W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEbqzY,IAAK,CACDzD,aAAc,EACd95W,MAAO,CACHq6W,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,IAGjBwwL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,MAKzB27gB,WAAY,CACR1D,aAAc,EACd95W,MAAO,CACHq6W,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,IAGjBwwL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,KAIrBw6I,MAAO,CACHl9H,SAAUw5f,IAGlB8E,eAAgB,CACZ3D,aAAc,EACd95W,MAAO,CACHq6W,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,IAGjBwwL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,KAIrBw6I,MAAO,CACHl9H,SAAUw5f,IAGlB+E,SAAU,CACN5D,aAAc,EACd95W,MAAO,CACHq6W,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,IAGjBwwL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,MAKzB87gB,UAAW,CACP39W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEb0zY,gBAAiB,CACb59W,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEb0rJ,OAAQ,CACJ1rJ,QAAS,GACT81B,MAAO,CACHq6W,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,IAGjBwwL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,MAKzBg8gB,YAAa,CACTvzgB,MAAO,EACPwzgB,UAAW,CACP1re,MAAO8le,GAEXmC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,EACPmmK,WAAW,GAEfzQ,MAAO,CACH3rH,OAAQ,CACJxyC,SAAS,KAIrBk8gB,MAAO,CACHzzgB,MAAO,EACPwzgB,UAAW,CACP1re,MAAO8le,GAEXmC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,GAEfjtV,WAAW,GAEf4hB,eAAgB,CACZ/nL,MAAO,EACPmmK,WAAW,GAEfzQ,MAAO,CACH3rH,OAAQ,CACJxyC,SAAS,MAKzBm8gB,UAAW,CACP17e,SAAS,EACT8P,MAAO,UACP9nC,MAAO,EACP0pC,UAAWqke,EACXh8X,MAAO,CACHx6I,SAAS,EACTokM,KAAM,CACF7zJ,MAAO0le,EACPtmgB,KAAM,KAGdysgB,aAAc,CACVp8gB,SAAS,GAEbq8gB,eAAgB,CACZr8gB,SAAS,IAGjBs8gB,mBAAoB,CAChBC,oBAAqB,EACrBC,uBAAuB,EACvBC,WAAY,CACRh0gB,MAAO,EACP8nC,MAAO,UACP8B,KAAM,SAEVmoG,MAAO,CACHk+X,YAAa,WACbgE,oBAAqB,OACrBC,eAAgB,GAChBpb,SAAU,SACVY,aAAc,QAElBp/e,MAAO,CACHqhL,KAAM,CACFz0L,KAAM,IAEV8rL,OAAQ,EACR5oJ,UAAWgke,GAEf2D,kBAAmB,CACf/C,iBAAkB,GAClBC,iBAAkB,KAG1BkF,eAAgB,CACZt/f,SAAUq5f,EACVkG,mBAAoB,GACpBriY,MAAO,CACHs8W,cAAe,GACfgmB,kBAAmB,EACnBjqe,UAAWgke,GAEf0D,WAAY,CACR//X,MAAO,CACHqwW,oBAAqBgsB,EACrB/rB,kBAAmB2rB,IAG3B+D,kBAAmB,CACfhgY,MAAO,CACHqwW,oBAAqB6rB,EACrB5rB,kBAAmB2rB,IAG3BsG,cAAe,IAEnBC,aAAc,CACV1/f,SAAUs5f,EACViG,mBAAoB,GACpBriY,MAAO,CACH3nG,UAAW6je,GAEf6D,WAAY,CACR//X,MAAO,CACHqwW,oBAAqB+rB,EACrB9rB,kBAAmB+rB,IAG3B2D,kBAAmB,CACfhgY,MAAO,CACHqwW,oBAAqB+rB,EACrB9rB,kBAAmB2rB,IAG3BsG,cAAe,IAEnBE,aAAc,CACVC,WAAW,EACXC,qBAAqB,EACrBC,SAAU,CAAC,EAAG,EAAG,EAAG,EAAG,IAE3BC,UAAW,CACPjD,KAAM,CACFp6gB,SAAS,GAEbs9gB,mBAAmB,EACnBC,kBAAmB,GAEvBC,mBAAoB,CAChBhjf,gBAAiBqhe,EACjBrpd,OAAQ,CACJjC,MAAO4le,EACP1tgB,MAAO,EACPzI,SAAS,EACTiQ,KAAK,EACLkF,QAAQ,EACRtF,MAAM,EACNqF,OAAO,EACPi9B,UAAWqke,IAGnBv2V,UAAW,CACPjgL,SAAS,EACT0C,OAAQ,EACR6tC,MAAO,OACP9nC,MAAO,IAEXg1gB,cAAc,EACdC,sBAAsB,EACtB1K,SAAS,EACT2K,sBAAsB,EACtBC,gBAAgB,EAChBC,gBAAiB,GACjBC,cAAe,GACfC,cAAe,GACfC,WAAY,CACRC,aAAc,CACV1te,MAAO,UACP83F,QAAS,IAEb61Y,OAAQ,QACRC,iBAAiB,EACjBC,oBAAoB,IAG5BC,IAAK,CACD3W,YAAa,GACb4W,YAAa,GACbxjgB,KAAM,MACNy+f,oBAAqB,CACjBgF,sBAAsB,GAE1BjG,qBAAsB,CAClB+F,IAAK,CACD7re,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXuC,WAAY,CACRtb,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,KAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZ0sU,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,IAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,KAInB+1gB,SAAU,CACNhse,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXuC,WAAY,CACRtb,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,KAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZ0sU,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,IAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,KAInBg2gB,MAAO,CACHjse,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXuC,WAAY,CACRtb,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,KAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,IAGf+nL,eAAgB,CACZ0sU,SAAU,CACN1qX,UAAWkkY,EACXjugB,MAAO,EACP+sC,KAAM,GACN6yF,QAAS,IAEbumC,WAAW,EACXp8H,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,KAInB+xI,MAAO,CACH2nX,aAAc,WACdZ,SAAU,WAGlBuW,OAAQ,CACJC,UAAW,oBACXv9e,gBAAiBqhe,GAErB8d,eAAgB,CACZC,YAAY,IAGpB8E,MAAO,CACHjmT,MAAO,CACH2hS,KAAM,CACFp6f,SAAS,EACTvI,OAAQ,EACRgR,MAAO,EACP4/H,QAAS,GAEbiyY,UAAW,CACPt6gB,SAAS,EACTvI,OAAQ,EACRgR,MAAO,EACP4/H,QAAS,GAEbmS,MAAO,CACHx6I,SAAS,EACT6yC,UAAWgke,EACX8H,gBAAiB,OACjBjC,oBAAqB,QAEzBp/f,SAAUm5f,EACVyG,WAAW,GAEf0B,eAAgB,CACZl8gB,OAAQ,EACR+F,MAAO,EACP+xB,gBAAiB,WAErBqkf,gBAAiB,CACb30R,SAAU,CACN35M,MAAO,WAEXsre,SAAU,CACN/qL,MAAO,EACPnhV,KAAM,GACN4gC,MAAO,UACP/V,gBAAiBqhe,EACjB/hgB,KAAM,CACFmwJ,OAAQ,EACRm6C,KAAM,CACFz0L,KAAM,GACN4gC,MAAO,QAInBuue,eAAgB,CACZC,YAAa,WAEjBC,eAAgB,CACZluL,MAAO,EACPr5V,OAAQ,GACRgR,MAAO,GACP8nC,MAAO,WAEX0ue,UAAW,CACPzH,YAAa,EACbqB,iBAAkB,EAClBC,eAAgB,EAChBvoe,MAAO,UACPz2C,KAAM,CACFsqM,KAAM,CACF7zJ,MAAO0le,EACPtmgB,KAAM,OAKtBuvgB,UAAW,CACPC,oBAAoB,EACpB16F,OAAQ,CACJomE,oBAAqBgsB,EACrB/rB,kBAAmB6rB,GAEvB78gB,KAAM,CACFsqM,KAAM,CACFz0L,KAAM,MAIlByvgB,UAAW,CACP3mT,MAAO,CACH4mT,oBAAqB,GACrB/4T,YAAaywT,EACbv8X,MAAO,CACH8kY,eAAgB,KAGxBV,eAAgB,CACZt4T,YAAaywT,GAEjBwI,mBAAoB,kBACpBC,sBAAuB,iBACvBX,gBAAiB,CACbvtb,MAAO,kBACP44J,SAAU,CACNxnP,OAAQ,GACR+8gB,iBAAkB,EAClBh3gB,MAAO,EACPi3gB,YAAa,GACbC,eAAgB,GAChBC,sBAAuB,IAE3BC,eAAgB,CACZp3gB,MAAO,GAEXq2gB,eAAgB,CACZhuL,MAAO,EACPgvL,eAAgB,IAEpBjE,SAAU,CACNn5gB,OAAQ,IAEZs8gB,eAAgB,CACZt8gB,OAAQ,GAEZu8gB,UAAW,CACPv8gB,QAAS,KAIrBq9gB,QAAS,CACLtnT,MAAO,CACH4mT,oBAAqB,GACrBW,sBAAuBtJ,EACvBuJ,oBAAqBtJ,EACrBn8X,MAAO,CACH8kY,gBAAiB,KAGzBV,eAAgB,CACZoB,sBAAuBtJ,EACvBuJ,oBAAqBtJ,GAEzB4I,mBAAoB,WACpBC,sBAAuB,iBACvBX,gBAAiB,CACbvtb,MAAO,YACP44J,SAAU,CACNxnP,OAAQ,IACRjL,OAAQ,GACRgR,MAAO,IAEXy3gB,UAAW,CACPz3gB,MAAO,IAEXozgB,SAAU,CACNn5gB,OAAQ,GACRs9gB,sBAAuBtJ,EACvBuJ,oBAAqBtJ,GAEzBqI,eAAgB,CACZt8gB,OAAQ,GACRs9gB,sBAAuBpJ,EACvBqJ,oBAAqBxJ,GAEzBwI,UAAW,CACPv8gB,QAAS,EACTs9gB,sBAAuBpJ,EACvBqJ,oBAAqBxJ,MAKrC0J,SAAU,CACN3lf,gBAAiB,UACjB4lf,oBAAqB,GACrBC,WAAY,EACZvG,wBAAyB,OACzBt/X,MAAO,CACHyP,OAAQ,GACRq2X,eAAgB,EAChBl8U,KAAM,CACFz0L,KAAM,KAGdmogB,OAAQ,CACJ93gB,SAAS,GAEbk/gB,UAAW,CACPC,oBAAoB,EACpB16F,OAAQ,CACJomE,oBAAqBgsB,EACrB/rB,kBAAmB6rB,GAEvB78gB,KAAM,CACFsqM,KAAM,CACFz0L,KAAM,OAKtB4wgB,cAAe,CACX9nT,MAAO,CACHshT,qBAAqB,EACrBtxgB,MAAO,EACP8nC,MAAO2le,EACP7tY,QAAS,GACTm4Y,yBAAyB,EACzBrD,qBAAqB,EACrB3iY,MAAO,CACHkiY,oBAAqB,OACrB7pe,UAAWgke,EACX72gB,SAAS,EACTyghB,UAAW,EACXr8U,KAAM,CACFz0L,KAAM,KAGdyqf,KAAM,CACF3xf,MAAO,EACP8nC,MAAO2le,EACP7tY,QAAS,IACTroI,SAAS,EACTvI,OAAQ,IAEZ6ihB,UAAW,CACP7xgB,MAAO,EACP8nC,MAAO2le,EACP7tY,QAAS,IACTroI,SAAS,EACTvI,OAAQ,IAEZ4/I,OAAQ,CACJ5uI,MAAO,EACP8nC,MAAO,UACP83F,QAAS,GACTroI,SAAS,EACT0ghB,gBAAiB,GACjBD,UAAW,GACXE,eAAgB,EAChBC,cAAe,GACfpmY,MAAO,IAEXy/X,cAAe,GACfmD,SAAU,CAAC,EAAG,EAAG,EAAG,EAAG,GACvBX,WAAY,CACRh0gB,MAAO,EACP8nC,MAAO,UACP8B,KAAM,SAEV6qe,WAAW,GAEf2D,mBAAoB,UACpBC,aAAc,CACV9ghB,SAAS,EACT03gB,iBAAkB,EAClBD,iBAAkB,EAClBlne,MAAO,UACPwwe,kBAAmB1K,EACnBjyU,KAAM,CACF7zJ,MAAO0le,EACPtmgB,KAAM,KAGdqxgB,aAAc,CACVv4gB,MAAO,EACP8nC,MAAO2le,EACP7tY,QAAS,IAEb44Y,QAAS,CACL54Y,QAAS,KAEb64Y,WAAY,CACR3we,MAAO,UACPvwC,SAAS,EACT2/F,MAAO,CACHxoE,SAAU,SAGlBgqf,SAAU,CACNC,aAAa,EACb3yH,kBAAkB,EAClB4yH,0BAA0B,EAC1BC,6BAA6B,EAC7BC,kBAAkB,EAClBC,gBAAiB,mBAErBrsB,gBAAgB,EAChBwlB,MAAO,CACHkD,gBAAiB,GACjBC,cAAe,GACfC,cAAe,GACf0C,UAAW,GACXgB,aAAc,EACdpE,UAAW,CACP/wE,UAAU,EACV2tE,cAAe,IAEnB3B,qBAAsB,CAClBx9f,KAAM,OACN8/f,YAAa,CACTn6e,aAAS,GAEb09H,MAAO,CACHn+J,SAAS,GAEb66gB,QAAS,CACL18W,MAAO,CACHn+J,SAAS,OAM7B3C,IAAK,CACD0lB,MAAO,CACH04K,OAAQ,IAEZylV,WAAY,CACRjxe,YAAa,EACbG,YAAa,WAEjBsxe,MAAO,CACHlnY,MAAO,CACH/5G,SAAS,EACT0Q,OAAQ8ke,EACR,eAAgB,EAChB,iBAAkB,GAClB7xU,KAAM,CACF7zJ,MAxtCR,UAytCQ5gC,KAAM,MAIlB,aAAc,CACVsgC,YAAa,EACbG,YAAa6le,EACb1le,MAAO,UACPoxe,mBAAoBvL,EACpBwL,oBAAqB,EACrBC,oBAAqBzL,EACrB57X,MAAO,CACH,eAAgB,EAChB4pD,KAAM,CACFz0L,KAAM,MAIlB,aAAc,CACVsgC,YAAa,EACbM,MAAO,UACPuxe,aAAc,UACdF,oBAAqB,EACrBG,cAAe,UACfvnY,MAAO,CACH,eAAgB,EAChB4pD,KAAM,CACFz0L,KAAM,MAIlB,eAAgB,CACZ6qI,MAAO,CACH/5G,SAAS,EACT,eAAgB,EAChB2jK,KAAM,CACFz0L,KAAM,MAIlB,mBAAoB,CAChBsgC,YAAa,EACbG,YAAa6le,EACbtmgB,KAAM,EACNqygB,aAAc,EACdC,SAAU,GACVC,UAAWjM,EACXkM,YAAa,IACbvK,QAAQ,GAEZ,sBAAuB,CACnBvoM,QAAS,GACTD,QAAS,GACTgzM,mBAAoB,EACpBT,mBAAoBvL,EACpBwL,oBAAqB,EACrBC,oBAAqBzL,GAEzB,mBAAoB,CAChBzmgB,KAAM,GACNyygB,mBAAoB,EACpBT,mBAAoBvL,EACpBwL,oBAAqB,EACrBC,oBAAqBzL,GAEzB,qBAAsB,CAClBzmgB,KAAM,IAEVmogB,OAAQ,CACJhtB,kBAAmB6rB,EACnB9rB,oBAAqB6rB,EACrBp5f,SAAUw5f,EACVuL,kBAAmB,IACnB7ve,OAAQ,CACJxyC,SAAS,GAEby3gB,iBAAkB,GAClBC,iBAAkB,IAEtB4K,WAAY,CACRlye,YAAa,UACbH,YAAa,EACbM,MAAO0le,EACPx6U,OAAQ,GACRpzD,QAAS,IAEb/4E,KAAM,CACFwod,OAAQ,CACJ+B,iBAAkBjD,KAI9B2L,QAAS,CACLC,KAAM,CACFhwe,OAAQ,CACJ/pC,MAAO,EACP4/H,QAAS,GACT93F,MAAO,WAEXA,MAAO,UACPioe,WAAY,CACRtb,SAAU,CACN70X,QAAS,IACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAW,SAEfhgG,OAAQ,IAEZg+I,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,GACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAW,SAEfhgG,OAAQ,CACJ61F,QAAS,IAGjBmS,MAAO,CACHx6I,SAAS,EACTy3gB,iBAAkB,EAClBC,iBAAkB,EAClBtzU,KAAM,CACF7zJ,MAAO,UACP9E,OAAQ,KAEZmse,OAAQ,CACJvvY,QAAS,GACTxiG,QAAS,EACTC,QAAS,EACT8Z,KAAM,EACNrP,MAAO,WAEXgxd,SAAU,SACVY,aAAc,aAGtBtgf,MAAO,CACHyD,QAAS,EACTktB,OAAQ,CACJ/pC,MAAO,GAEX8nC,MAAO,UACPioe,WAAY,CACRtb,SAAU,CACN70X,QAAS,EACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAW,SAEfhgG,OAAQ,IAEZg+I,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,EACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAW,SAEfhgG,OAAQ,IAEZgoG,MAAO,CACHx6I,SAAS,EACTy3gB,iBAAkB,EAClBC,iBAAkB,EAClBtzU,KAAM,CACF7zJ,MAAOgme,EACP9qe,OAAQ,KAEZ02d,aAAc,aAGtBp/e,MAAO,CACHq0f,SAAU,IAEdz0b,QAAS,GACT00b,iBAAkB,IAEtBoL,UAAW,CACPC,UAAW,UACX/J,UAAW,EACXgK,YAAa,GACbC,SAAU,UACVC,SAAU,UACVC,iBAAkB,UAClBC,iBAAkB,UAClBC,SAAU,UACVC,UAAW,UACXC,eAAgB,UAChBC,YAAa,SACbC,WAAYnN,EACZoN,UAAW,EACXvogB,KAAM,OACNwogB,cAAe,MACfC,WAAY,MACZC,iBAAkB,EAClBC,eAAe,EACfC,YAAY,EACZ/gc,QAAS,CACLliD,SAAS,IAGjBkjf,OAAQ,CACJpze,MAAO,UACPqze,YAAa,UACbhgf,YAAa,EACbigf,YAAY,EACZC,eAAe,EACfnhc,QAAS,CACLliD,SAAS,IAGjBsjf,MAAO,CACHzL,qBAAsB,CAClBx9f,KAAM,UACNkpgB,QAAQ,EACR7lX,MAAO,CACHn+J,SAAS,EACTouF,OAAQ,SACRz+E,KAAM,GACN6iC,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEXsvgB,UAAW,YACXtkU,cAAe,YACf+kU,WAAY,CACRhme,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEXkH,KAAM,IAEV6gL,eAAgB,CACZh+I,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,GAEXkH,KAAM,KAGdkrgB,QAAS,GACTxoe,KAAM,CACF5pC,MAAO,EACP0pC,UAAWqke,EACXgC,WAAY,CACR/vgB,MAAO,EACPy0f,SAAU,CACN1qX,UAAWqpX,IAGnBrrU,eAAgB,CACZ/nL,MAAO,IAGf08B,KAAM,CACFg5H,MAAO,CACHn+J,SAAS,GAEbqoI,QAAS,IAEbyyY,YAAa,CACTrygB,MAAO,GAEXizgB,IAAK,CACDrzY,QAAS,IAEbszY,WAAY,CACRtzY,QAAS,KAGjBsxY,eAAgB,CACZlxgB,MAAO,GACPC,OAAQ,GACRkxgB,YAAY,GAEhBiE,gBAAiB,GACjBvB,mBAAoB,CAChBt8gB,SAAS,EACTw8gB,uBAAuB,EACvBhiY,MAAO,CACHkiY,oBAAqB,OACrBC,eAAgB,GAEpBvC,KAAM,CACFp6gB,SAAS,GAEbq6gB,UAAW,CACPr6gB,SAAS,GAEbo6f,KAAM,CACFp6f,SAAS,GAEb+iB,MAAO,CACHqhL,KAAM,CACFz0L,KAAM,IAEV8rL,OAAQ,KAGhBwhV,aAAc,CACVrV,WAAY,EACZqc,wBAAwB,EACxBl3N,YAAQ,GAEZswN,UAAW,CACPH,WAAW,EACX9iB,KAAM,CACFp6f,SAAS,IAGjB48gB,eAAgB,CACZt/f,SAAUm5f,EACVoG,mBAAoB,GACpBriY,MAAO,CACH3nG,UAAWgke,IAGnBmG,aAAc,CACV1/f,SAAUm5f,EACVoG,mBAAoB,GACpBriY,MAAO,CACH3nG,UAAW6je,KAIvBwN,OAAQ,CACJC,UAAU,EACVZ,WAAY,MACZa,WAAY,QACZd,cAAe,MACfe,cAAc,EACd5wU,cAAe,SACfp8M,KAAM,CACFm7C,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXuC,WAAY,CACRtb,SAAU,CACN70X,QAAS,IACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAWkkY,GAEflke,OAAQ,IAEZg+I,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,GACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAWkkY,GAEflke,OAAQ,KAGhBzvB,MAAO,CACH04K,OAAQ,IAEZk+U,eAAgB,CACZlxgB,MAAO,GACPC,OAAQ,GACRkxgB,YAAY,GAEhB9B,OAAQ,CACJ93gB,SAAS,GAEbsvD,KAAM,CACFwod,OAAQ,CACJ+B,iBAAkBjD,IAG1Bj0b,QAAS,CACL2hc,iBAAkB,SAASv+f,GACvB,MAAO,CACHjsB,KAAMisB,EAAK1uB,KAAKu4O,SAAW,IAAM7pN,EAAKitS,aAIlDs5I,UAAU,EACVx9U,UAAW,eACXy1Z,UAAW,EACXC,WAAY,EACZ1K,wBAAyB,QACzBt/X,MAAO,CACH2nX,aAAc,WACdZ,SAAU,SACVvhgB,SAAS,EACT6qf,oBAAqB6rB,EACrBmC,iBAAkB,EAClBC,eAAgB,EAChBE,mBAAmB,EACnBC,cAAe,SAASlzf,GACpB,OAAOA,EAAK1uB,KAAKu4O,SAAW,IAAM7pN,EAAKitS,WAE3C11S,SAAU,UACV8mL,KAAM,CACF7zJ,MAAO0le,GAEXzje,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO4le,EACPhke,UAAWqke,GAEf2C,UAAW,CACPn5gB,SAAS,EACTyI,MAAO,EACP4/H,QAAS,MAIrBo8Y,OAAQ,CACJC,YAAa,SACbC,YAAa,SACbC,YAAa,SACbP,cAAc,EACdxxe,UAAWgke,EACX8C,eAAgB,CACZlxgB,MAAO,GACPC,OAAQ,GACRkxgB,YAAY,GAEhBp/X,MAAO,CACHx6I,SAAS,EACT64gB,iBAAkB,EAClBC,eAAgB,EAChB4D,oBAAqB,WACrBmI,eAAe,EACfzgV,KAAM,CACF7zJ,MAAO2le,EACPzqe,OAAQ,KAEZ+G,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXgD,cAAe,SAASlzf,GACpB,OAAOA,EAAKhD,OAEhB60f,OAAQ,CACJvvY,QAAS,GACTxiG,QAAS,EACTC,QAAS,EACT8Z,KAAM,EACNrP,MAAO0le,IAGflzf,MAAO,CACH04K,OAAQ,GACR2I,KAAM,CACFz0L,KAAM,GACN87B,OAAQ,KAEZ2re,SAAU,CACNhzU,KAAM,CACFz0L,KAAM,MAIlBgzE,QAAS,CACLliD,SAAS,GAEb2sC,KAAM,CACF9nD,QAAS,GACT7c,MAAO,EACP4/H,QAAS,EACT71F,OAAQ,CACJjC,MAAO0le,EACPxtgB,MAAO,EACPzI,SAAS,GAEbw4gB,WAAY,CACRtb,SAAU,CACN70X,QAAS,IACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAWkkY,GAEflke,OAAQ,KAGhB4kB,KAAM,CACF7mB,MAAO,UACPu0e,UAAW,OACXz8Y,QAAS,GACT71F,OAAQ,CACJjC,MAAO0le,EACPxtgB,MAAO,EACPzI,SAAS,GAEbw4gB,WAAY,CACRnwY,QAAS,GACT60X,SAAU,CACN70X,QAAS,IACT7yF,KAAM,EACN/sC,MAAO,EACP+pI,UAAWkkY,GAEflke,OAAQ,OAKxBuye,mBAAe,GAChB,CACCr9f,MAAO,CACH/iB,KAAM,yBAEVoghB,cAAe,kBC/tDfC,EAAe,UACfC,EAAmB,OACnBC,EAAc,OACdC,EAAiB,UACjBC,EAAa,UACbC,EAAe,UACnB,GAAgB,CACZ39f,MAAO,CACH/iB,KAAM,kBACNqjf,eAAgB,UAChBxtd,gBAAiByqf,EACjBjO,kBAAmBkO,EACnBjO,oBAAqBkO,EACrBjO,UAAWmO,EACXlO,UAAWiO,EACX9N,OAAQ,CACJ98e,gBAAiByqf,EACjB7gV,KAAM,CACF7zJ,MAAO20e,GAEX5rhB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiByqf,GAErBt1O,MAAO,CACHp/P,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,aAI7Bs9e,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO60e,IAGfzic,QAAS,CACLpyC,MAAO00e,EACPzye,OAAQ,CACJjC,MAAO80e,GAEXjhV,KAAM,CACF7zJ,MAAO20e,IAGf,eAAgB,CACZ5M,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,MAKvB,0BAA2B,CACvBjhV,KAAM,CACF7zJ,MAAO20e,GAEX1ye,OAAQ,CACJjC,MAAO80e,GAEX90e,MAAO00e,GAEXtK,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,IAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,aAInBgwe,cAAe,CACX9nT,MAAO,CACHgkT,WAAY,CACRlse,MAAO,WAEX6pd,KAAM,CACF/xX,QAAS,MAGjBw4Y,mBAAoBmE,EACpBlE,aAAc,CACVvwe,MAAOy0e,GAEXhE,aAAc,CACVzwe,MAAOy0e,EACP38Y,QAAS,KAGjBo6Y,UAAW,CACPW,WAAY6B,EACZrC,SAAU,UACVC,SAAU,WAEdN,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO80e,EACP7qY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO40e,MAKvBxB,OAAQ,CACJpze,MAAOy0e,GAEXtG,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOy0e,GAEX/F,UAAW,CACP1ue,MAAOy0e,MAKvBD,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,2BAEVoghB,cAAe,oBC3If9O,EAAQ,UAERqP,EAAY,UACZC,EAAc,UACdnP,EAAa,UAEboP,EAAa,UACbC,EAAe,UACfC,EAAiB,UACjBL,EAAe,UACnB,GAAgB,CACZ39f,MAAO,CACH/iB,KAAM,eACNy/L,KAAM,CACF7zJ,MAAO,WAEX/V,gBAAiB,UACjBw8e,kBAAmB,UACnBC,oBAAqB,UACrBC,UAAW,UACXC,UAAW,UACXG,OAAQ,CACJ98e,gBAAiB,UACjB4pK,KAAM,CACF7zJ,MAAO,WAEXj3C,OAAQ,CACJotG,QAAS,CACLn2D,MAAO,UACPH,YAAa,UACb5V,gBAAiB,WAErBm1Q,MAAO,CACHp/P,MAAO,UACPH,YAAa,UACb5V,gBAAiB,QAErBtiC,MAAO,CACHq4C,MAAO,UACPH,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO,UACPH,YAAa,UACb5V,gBAAiB,YAGzB+8e,YAAa,WAEjB50b,QAAS,CACLpyC,MAAO+0e,EACP9ye,OAAQ,CACJjC,MAAO80e,GAEXjhV,KAAM,CACF7zJ,MAAO,YAGf,eAAgB,CACZ+ne,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,IAGf5M,cAAe,CACXloe,MAAO0le,KAInB,oBAAqB,CACjBuE,kBAAmB,CACfjqe,MAAO0le,IAGf,0BAA2B,CACvB7xU,KAAM,CACF7zJ,MAAO,WAEXiC,OAAQ,CACJjC,MAAO80e,GAEX90e,MAAO+0e,EACP1N,OAAQ,CACJvvY,QAAS,KACTviG,QAAS,EACT8Z,KAAM,IAGd+6d,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,IAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,YAGfyte,WAAY,CACRC,aAAc,CACV1te,MAAO0le,KAInByI,MAAO,CACHE,eAAgB,CACZpkf,gBAAiB+qf,GAErB1G,gBAAiB,CACb30R,SAAU,CACN35M,MAAOg1e,GAEX1J,SAAU,CACNtre,MAAO,WAEXuue,eAAgB,CACZC,YAAa,WAEjBC,eAAgB,CACZzue,MAAO,WAEX0ue,UAAW,CACP1ue,MAAO,aAInB4ve,SAAU,CACN3lf,gBAAiB,WAErB+lf,cAAe,CACX9nT,MAAO,CACH2hS,KAAM,CACF7pd,MAAO0le,EACP5tY,QAAS,KAEbiyY,UAAW,CACP/pe,MAAO0le,EACP5tY,QAAS,IAEbo0Y,WAAY,CACRlse,MAAO,YAGfswe,mBAAoB0E,EACpBzE,aAAc,CACVvwe,MAAOg1e,EACPnhV,KAAM,CACF7zJ,MAAO6le,IAGf4K,aAAc,CACVzwe,MAAO0le,EACP5tY,QAAS,IAEb44Y,QAAS,CACL1we,MAAO+0e,EACPj9Y,QAAS,KAGjBhrI,IAAK,CACD6jhB,WAAY,CACR9we,YAAa,WAEjBsxe,MAAO,CACHlnY,MAAO,CACHrpG,OAvKR,UAwKQizJ,KAAM,CACF7zJ,MAAO0le,KAInB,aAAc,CACV7le,YAAagme,EACb7le,MA3KO,UA4KPoxe,mBAAoB1L,EACpB4L,oBAAqB5L,GAEzB,aAAc,CACV1le,MAAO,UACPuxe,aAAc,UACdC,cAAe,WAEnB,sBAAuB,CACnBJ,mBAAoB1L,EACpB4L,oBAAqB5L,GAEzB,mBAAoB,CAChB0L,mBAAoB1L,EACpB4L,oBAAqB5L,GAEzB6B,OAAQ,CACJtle,OAAQ,CACJjC,MAAO,WAEX6zJ,KAAM,CACF7zJ,MAAO0le,IAGfqM,WAAY,CACRlye,YAAao1e,EACbj1e,MAAO6le,IAGfmM,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO,UACPiqG,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO,cAKvBkye,UAAW,CACPC,UAAW8C,EACXtC,eAAgBsC,EAChB1C,iBAAkB4C,EAClB3C,iBAAkB0C,EAClBzC,SAAU0C,EACVzC,UAAWwC,EACXrC,WAAYhN,GAEhBuN,OAAQ,CACJC,YAAa6B,GAEjBvB,OAAQ,CACJ7shB,KAAM,CACFm7C,OAAQ,CACJjC,MAAO,aAInBk0e,OAAQ,CACJjqY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO0le,GAEX2B,OAAQ,CACJvvY,QAAS,IAGjBj7D,KAAM,CACF56B,OAAQ,CACJjC,MAAO,YAGf6mB,KAAM,CACF7mB,MAAO,UACPiC,OAAQ,CACJjC,MAAO,WAEXioe,WAAY,CACRjoe,MAAO,cAKvBw0e,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,wBAEVoghB,cAAe,iBCzQf9O,EAAQ,UACRC,EAAQ,UACRyP,EAAkB,UAClBC,EAAe,UAEnB,GAAgB,CACZl+f,MAAO,CACH/iB,KAAM,mBACNqjf,eAAgB,SAChB5jT,KAAM,CACF7zJ,MAAO0le,GAEXz7e,gBAAiB07e,EACjBc,kBAAmBf,EACnBgB,oBAAqBhB,EACrBiB,UAAWjB,EACXkB,UAAWlB,EACXqB,OAAQ,CACJ98e,gBAAiB07e,EACjB9xU,KAAM,CACF7zJ,MAAO0le,GAEX38gB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO0le,EACP7le,YAAa6le,EACbz7e,gBAAiB07e,GAErBvmO,MAAO,CACHp/P,MAAO0le,EACP7le,YAAa6le,EACbz7e,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO0le,EACP7le,YAAa,UACb5V,gBAAiB07e,GAErB5zf,OAAQ,CACJiuB,MAAO2le,EACP9le,YAAa6le,EACbz7e,gBAAiBy7e,IAGzB7le,YAAa6le,EACb4P,gBAAiB3P,EACjB4P,sBAAuB7P,EACvB8P,YAAa7P,EACb2L,oBAAqB8D,EACrB5D,cAAe4D,EACfpO,YAAa,QAEjB50b,QAAS,CACLnwC,OAAQ,CACJjC,MAAO0le,GAEX7xU,KAAM,CACF7zJ,MAAO0le,GAEX1le,MAAO2le,GAEX,eAAgB,CACZoC,qBAAsB,CAClBG,cAAe,CACXloe,MAAO0le,GAEXuC,WAAY,CACRtb,SAAU,CACN70X,QAAS,KAGjBmoD,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,MAGjBmS,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO0le,GAEXzje,OAAQ,CACJjC,MAAO0le,MAKvB,oBAAqB,CACjBuE,kBAAmB,CACfjqe,MAAO0le,IAGf,0BAA2B,CACvB7xU,KAAM,CACF7zJ,MAAO0le,GAEXzje,OAAQ,CACJjC,MAAO0le,GAEX1le,MAAO2le,GAEXyE,MAAO,CACHrC,qBAAsB,GACtB6D,UAAW,CACP5re,MAAO,WAEXite,mBAAoB,CAChBhjf,gBAAiB07e,EACjB1je,OAAQ,CACJjC,MAAO0le,IAGfh2V,UAAW,CACP1vI,MAAO0le,GAEXqG,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,YAGfyte,WAAY,CACRC,aAAc,CACV1te,MAAO0le,EACP5tY,QAAS,MAIrBg2Y,IAAK,CACD/F,qBAAsB,CAClB+F,IAAK,CACD7F,WAAY,CACRtb,SAAU,CACN70X,QAAS,KAGjBmoD,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,OAIrBm2Y,SAAU,CACNhG,WAAY,CACRtb,SAAU,CACN70X,QAAS,KAGjBmoD,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,OAIrBo2Y,MAAO,CACHjG,WAAY,CACRtb,SAAU,CACN70X,QAAS,KAGjBmoD,eAAgB,CACZ0sU,SAAU,CACN70X,QAAS,SAM7Bq2Y,MAAO,CACHE,eAAgB,CACZpkf,gBAAiBy7e,GAErB4I,gBAAiB,CACb30R,SAAU,CACN35M,MAAO0le,GAEX4F,SAAU,CACNtre,MAAO0le,EACPz7e,gBAAiB07e,GAErB4I,eAAgB,CACZC,YAAa9I,GAEjB+I,eAAgB,CACZzue,MAAO0le,GAEXgJ,UAAW,CACP1ue,MAAO0le,EACPn8gB,KAAM,CACFsqM,KAAM,CACF7zJ,MAAO2le,OAM3BiK,SAAU,CACN3lf,gBAAiB,WAErB+lf,cAAe,CACX9nT,MAAO,CACH2hS,KAAM,CACF7pd,MAAO0le,EACP5tY,QAAS,IAEbiyY,UAAW,CACP/pe,MAAO0le,EACP5tY,QAAS,KAEbo0Y,WAAY,CACRlse,MAAO,YAGfswe,mBAAoB8E,EACpB7E,aAAc,CACVvwe,MAAOo1e,GAEX3E,aAAc,CACVzwe,MAAOo1e,EACPt9Y,QAAS,GAEb44Y,QAAS,CACL54Y,QAAS,KAEb64Y,WAAY,CACR3we,MAAO2le,IAGf74gB,IAAK,CACD6jhB,WAAY,CACR9we,YAAa6le,GAEjByL,MAAO,CACHlnY,MAAO,CACHrpG,OAAQ+ke,EACR9xU,KAAM,CACF7zJ,MAAO0le,KAInB,aAAc,CACV7le,YAAa8le,EACb3le,MA5OO,UA6OPoxe,mBAAoB1L,EACpB4L,oBAAqB5L,EACrBz7X,MAAO,CACH4pD,KAAM,CACF/7D,QAAS,KAIrB,aAAc,CACV93F,MAAO,UACPuxe,aAAc,UACdC,cAAe9L,GAEnB,mBAAoB,CAChB7le,YAAa8le,EACb3le,MAAOq1e,EACP1D,UAAWhM,EACXiM,YAAa,KAEjB,sBAAuB,CACnB5xe,MAAOq1e,EACPjE,mBAAoB1L,EACpB4L,oBAAqB5L,GAEzB,mBAAoB,CAChB0L,mBAAoB1L,EACpB4L,oBAAqB5L,GAEzBqM,WAAY,CACRlye,YAAa6le,EACb1le,MAAO2le,EACP7tY,QAAS,KAGjBk6Y,QAAS,CACLC,KAAM,CACFjye,MAAO,WAEX1uB,MAAO,CACH0uB,MAAO,UACPiqG,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO0le,MAKvBwM,UAAW,CACPW,WAAYlN,GAEhByN,OAAQ,GACRI,MAAO,CACHzL,qBAAsB,IAE1B4L,OAAQ,CACJ1pY,MAAO,CACH2+X,UAAW,CACP9wY,QAAS,KAIrBo8Y,OAAQ,CACJjqY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO0le,GAEX2B,OAAQ,CACJvvY,QAAS,IAGjBj7D,KAAM,CACF56B,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,IAGf7+c,KAAM,CACFixE,QAAS,GACT71F,OAAQ,CACJxyC,SAAS,EACTyI,MAAO,EACP8nC,MAAO0le,GAEXuC,WAAY,CACRnwY,QAAS,OAKzB08Y,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,4BAEVoghB,cAAe,qBChVfC,EAAe,UACfC,EAAmB,UACnBC,EAAc,OAEdE,EAAa,UACbC,EAAe,UACnB,GAAgB,CACZ39f,MAAO,CACH/iB,KAAM,mBACNqjf,eAAgB,YAChBxtd,gBAAiByqf,EACjBjO,kBAAmBkO,EACnBjO,oBATa,UAUbC,UAAWmO,EACXlO,UAAWiO,EACX9N,OAAQ,CACJ98e,gBAAiByqf,EACjB7gV,KAAM,CACF7zJ,MAAO20e,GAEX5rhB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiByqf,GAErBt1O,MAAO,CACHp/P,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO20e,EACP90e,YAAa,UACb5V,gBAAiB,aAI7Bs9e,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO60e,IAGfzic,QAAS,CACLpyC,MAAO,UACPiC,OAAQ,CACJjC,MAAO80e,GAEXjhV,KAAM,CACF7zJ,MAAO20e,IAGf,eAAgB,CACZ5M,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,MAKvB,0BAA2B,CACvBjhV,KAAM,CACF7zJ,MAAO20e,GAEX1ye,OAAQ,CACJjC,MAAO80e,GAEX90e,MAAO,WAEXoqe,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,IAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,aAInBmue,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOy0e,GAEX/F,UAAW,CACP1ue,MAAOy0e,EACPlrhB,KAAM,CACFsqM,KAAM,CACF7zJ,MAAO00e,OAM3B9E,SAAU,CACN3lf,gBAAiB,WAErB0pf,OAAQ,CACJ7shB,KAAM,CACFm7C,OAAQ,CACJjC,MAAO00e,KAInBxC,UAAW,CACPW,WAAY6B,EACZrC,SAAU,UACVC,SAAU,WAEdN,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO80e,EACP7qY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO20e,MAKvB7nhB,IAAK,CACD6jhB,WAAY,CACR9we,YAAai1e,GAEjB,aAAc,CACV90e,MAAO,UACPH,YAAa60e,IAGrB1E,cAAe,CACXU,QAAS,CACL1we,MAAO00e,GAEXxsT,MAAO,CACHgkT,WAAY,CACRlse,MAAO,WAEX6pd,KAAM,CACF/xX,QAAS,KAGjBw4Y,mBAAoBmE,EACpBlE,aAAc,CACVvwe,MAAOy0e,EACP5gV,KAAM,CACF7zJ,MAAO,SAGfywe,aAAc,CACVzwe,MAAOy0e,EACP38Y,QAAS,KAGjBs7Y,OAAQ,CACJpze,MAAOy0e,GAEXP,OAAQ,CACJrtd,KAAM,CACF5kB,OAAQ,CACJjC,MAAO00e,IAGf73c,KAAM,CACF56B,OAAQ,CACJjC,MAAO00e,MAKvBF,cAAe,gBAChB,CACCr9f,MAAO,CACH/iB,KAAM,4BAEVoghB,cAAe,qBCrLfC,EAAe,UACfC,EAAmB,UACnBC,GAAc,UACdC,GAAiB,OACjBC,GAAa,UACbC,GAAe,UACnB,IAAgB,CACZ39f,MAAO,CACH/iB,KAAM,qBACNqjf,eAAgB,cAChBxtd,gBAAiByqf,EACjBjO,kBAAmBkO,GACnBjO,oBAAqBkO,GACrBjO,UAAWmO,GACXlO,UAAWiO,GACX9N,OAAQ,CACJ98e,gBAAiByqf,EACjB7gV,KAAM,CACF7zJ,MAAO20e,IAEX5rhB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiByqf,GAErBt1O,MAAO,CACHp/P,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,aAI7Bs9e,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO60e,KAGfzic,QAAS,CACLpyC,MAAO00e,EACPzye,OAAQ,CACJjC,MAAO,WAEX6zJ,KAAM,CACF7zJ,MAAO20e,KAGf,eAAgB,CACZ5M,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,OAKvB,0BAA2B,CACvBjhV,KAAM,CACF7zJ,MAAO20e,IAEX1ye,OAAQ,CACJjC,MAAO,WAEXA,MAAO00e,GAEXtK,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,KAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,aAInB2ze,OAAQ,CACJ7shB,KAAM,CACFm7C,OAAQ,CACJjC,MAAO00e,KAInBxC,UAAW,CACPW,WAAY6B,EACZrC,SAAU,UACVC,SAAU,WAEdN,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO80e,GACP7qY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO40e,OAKvB5E,cAAe,CACXU,QAAS,CACL1we,MAAO00e,GAEXxsT,MAAO,CACHgkT,WAAY,CACRlse,MAAO,WAEX6pd,KAAM,CACF/xX,QAAS,KAGjBw4Y,mBAAoBmE,EACpBlE,aAAc,CACVvwe,MAAOy0e,EACP5gV,KAAM,CACF7zJ,MAAO,SAGfywe,aAAc,CACVzwe,MAAOy0e,EACP38Y,QAAS,KAGjBs7Y,OAAQ,CACJpze,MAAOy0e,GAEXtG,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOy0e,GAEX/F,UAAW,CACP1ue,MAAOy0e,KAInBP,OAAQ,CACJrtd,KAAM,CACF5kB,OAAQ,CACJjC,MAAO00e,IAGf73c,KAAM,CACF56B,OAAQ,CACJjC,MAAO00e,MAKvBF,cAAe,gBAChB,CACCr9f,MAAO,CACH/iB,KAAM,8BAEVoghB,cAAe,uBCpKfC,GAAe,UACfC,GAAmB,UACnBC,GAAc,UACdC,GAAiB,UACjBC,GAAa,UACbC,GAAe,UACnB,IAAgB,CACZ39f,MAAO,CACH/iB,KAAM,oBACNqjf,eAAgB,aAChBxtd,gBAAiByqf,GACjBjO,kBAAmBkO,GACnBjO,oBAAqBkO,GACrBjO,UAAWmO,GACXlO,UAAWiO,GACX9N,OAAQ,CACJ98e,gBAAiByqf,GACjB7gV,KAAM,CACF7zJ,MAAO20e,IAEX5rhB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiByqf,IAErBt1O,MAAO,CACHp/P,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,4BAErBtiC,MAAO,CACHq4C,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,4BAErBlY,OAAQ,CACJiuB,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,8BAI7Bs9e,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO60e,KAGfzic,QAAS,CACLpyC,MAAO,OACPiC,OAAQ,CACJjC,MAAO80e,IAEXjhV,KAAM,CACF7zJ,MAAO20e,KAGf,eAAgB,CACZ5M,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,OAKvB,0BAA2B,CACvB90e,MAAO,OACPiC,OAAQ,CACJjC,MAAO80e,IAEXjhV,KAAM,CACF7zJ,MAAO20e,KAGfvK,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,KAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,aAInB2ze,OAAQ,CACJ7shB,KAAM,CACFm7C,OAAQ,CACJjC,MAAO00e,MAInBxC,UAAW,CACPW,WAAY6B,GACZrC,SAAU,UACVC,SAAU,WAEdN,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO80e,GACP7qY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO40e,OAKvB5E,cAAe,CACXU,QAAS,CACL1we,MAAO00e,IAEXxsT,MAAO,CACHgkT,WAAY,CACRlse,MAAO,WAEX6pd,KAAM,CACF/xX,QAAS,MAGjBw4Y,mBAAoBmE,GACpBlE,aAAc,CACVvwe,MAAOy0e,IAEXhE,aAAc,CACVzwe,MAAOy0e,GACP38Y,QAAS,KAGjBs7Y,OAAQ,CACJpze,MAAOy0e,IAEXtG,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOy0e,IAEX/F,UAAW,CACP1ue,MAAOy0e,OAKvBD,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,6BAEVoghB,cAAe,sBCrJfC,GAAe,UACfC,GAAmB,OACnBC,GAAc,OACdC,GAAiB,UACjBC,GAAa,UACbC,GAAe,UACnB,IAAgB,CACZ39f,MAAO,CACH/iB,KAAM,mBACNqjf,eAAgB,YAChBxtd,gBAAiByqf,GACjBjO,kBAAmBkO,GACnBjO,oBAAqBkO,GACrBjO,UAAWmO,GACXlO,UAAWiO,GACX9N,OAAQ,CACJ98e,gBAAiByqf,GACjB7gV,KAAM,CACF7zJ,MAAO20e,IAEX5rhB,OAAQ,CACJotG,QAAS,CACLn2D,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiByqf,IAErBt1O,MAAO,CACHp/P,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO20e,GACP90e,YAAa,UACb5V,gBAAiB,aAI7Bs9e,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO60e,KAGfzic,QAAS,CACLpyC,MAAO00e,GACPzye,OAAQ,CACJjC,MAAO80e,IAEXjhV,KAAM,CACF7zJ,MAAO20e,KAGf,eAAgB,CACZ5M,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO80e,OAKvB,0BAA2B,CACvB90e,MAAO00e,GACPzye,OAAQ,CACJjC,MAAO80e,IAEXjhV,KAAM,CACF7zJ,MAAO20e,KAGfvK,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO80e,KAGf/I,mBAAoB,CAChBG,WAAY,CACRlse,MAAO,aAInBgwe,cAAe,CACX9nT,MAAO,CACHgkT,WAAY,CACRlse,MAAO,WAEX6pd,KAAM,CACF/xX,QAAS,MAGjBw4Y,mBAAoBmE,GACpBlE,aAAc,CACVvwe,MAAOy0e,IAEXhE,aAAc,CACVzwe,MAAOy0e,GACP38Y,QAAS,KAGjBo6Y,UAAW,CACPW,WAAY6B,GACZrC,SAAU,UACVC,SAAU,WAEdN,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO80e,GACP7qY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO40e,OAKvBxB,OAAQ,CACJpze,MAAOy0e,IAEXtG,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOy0e,IAEX/F,UAAW,CACP1ue,MAAOy0e,OAKvBD,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,4BAEVoghB,cAAe,qBC3IfiB,GAAc,+DAEdC,GAAoB,mBACpBC,GAAmB,yBACnBC,GAAmB,yBACnBC,GAAwB,UACxBnQ,GAAQ,UAERsP,GAAc,UAEdC,GAAa,UACbC,GAAe,UACfC,GAAiB,UACjBW,GAAqB,UACrBC,GAAoB,UACpB1qc,GAAS,CAAC,CACVl0D,MAAO,CACH/iB,KAAM,WACNqjf,eAAgB,WAChB5jT,KAAM,CACFz3H,OAAQq5c,IAEZjjgB,MAAO,CACH04K,OAAQ,CACJxrL,IAAK,GACLkF,OAAQ,GACRtF,KAAM,EACNqF,MAAO,GAEXkvL,KAAM,CACFz0L,KAAM,GACNg9D,OAAQq5c,GACRv6e,OAAQ,KAEZo/c,oBAAqB,OACrBusB,SAAU,CACNhzU,KAAM,CACFz0L,KAAM,IAEVk7e,oBAAqB,SAG7Bloa,QAAS,CACLi1b,OAAQ,CACJvvY,QAAS,GAEb71F,OAAQ,CACJxyC,SAAS,GAEby3gB,iBAAkB,EAClBC,iBAAkB,EAClBF,YAAa,EACbrgf,SAAU,OACVoZ,MAAO,UACP6zJ,KAAM,CACF7zJ,MAAO0le,IAEXgC,aAAc,GAElB0C,MAAO,CACH2B,mBAAoB,CAChBhC,UAAW,CACPjyY,QAAS,IAEbmS,MAAO,CACH4pD,KAAM,CACFz0L,KAAM,MAIlB42gB,yBAA0B,CACtBniV,KAAM,CACF7zJ,MAAO0le,IAEXzje,OAAQ,CACJjC,MAAO,WAEXA,MAAO,UACPine,YAAa,GACbiD,WAAY,EACZ7C,OAAQ,CACJvvY,QAAS,IACTviG,QAAS,EACT8Z,KAAM,GAEVq4d,aAAc,IAGtBoG,IAAK,CACDt7f,MAAO,CACH8ne,oBAAqB,SACrBusB,SAAU,CACNvsB,oBAAqB,YAIjCk5B,MAAO,CACHzH,mBAAoB,CAChBhC,UAAW,CACPjyY,QAAS,KAGjBtlH,MAAO,CACH8ne,oBAAqB,SACrBusB,SAAU,CACNvsB,oBAAqB,YAIjCq5B,OAAQ,CACJnhgB,MAAO,CACH8ne,oBAAqB,SACrBusB,SAAU,CACNvsB,oBAAqB,YAIjC6zB,MAAO,CACH37f,MAAO,CACH8ne,oBAAqB,SACrBusB,SAAU,CACNvsB,oBAAqB,YAIjCs1B,SAAU,CACNp9f,MAAO,CACH8ne,oBAAqB,SACrBusB,SAAU,CACNvsB,oBAAqB,YAIjC01B,cAAe,CACXS,aAAc,CACV34Y,QAAS,KAGjBk6Y,QAAS,CACL1ggB,MAAO,CACH24H,MAAO,CACH4pD,KAAM,CACF34J,OAAQ,SAM5Bs5e,cAAe,iBAChB,CACCr9f,MAAO,CACH/iB,KAAM,iBACNuygB,UAAW,UACXC,UAAW8O,GACXjP,kBAzJgB,mBA0JhBc,OAAQ,CACJ1zU,KAAM,CACF7zJ,MAAO01e,KAGftL,MAAO,CACH16V,UAAW,CACP1vI,MAAO,UACP83F,QAAS,KAGjBq2Y,MAAO,CACHE,eAAgB,CACZpkf,gBAAiB,oBAGzB2lf,SAAU,CACN3lf,gBAAiB,YAGzBuqf,cAAe,YAChB,CACCr9f,MAAO,CACH/iB,KAAM,gBACNuygB,UAAW,UACX18e,gBAAiB4rf,GACjBjP,UAAWgP,GACX/hV,KAAM,CACF7zJ,MAAO41e,IAEXnP,kBAAmBkP,GACnBjP,oBAAqBiP,GACrBvjc,QAAS,CACLpyC,MAAO,QAEX+me,OAAQ,CACJ98e,gBAAiB4rf,GACjBhiV,KAAM,CACF7zJ,MAAO,WAEXj3C,OAAQ,CACJotG,QAAS,CACLn2D,MAAO,UACPH,YAAa,UACb5V,gBAAiB4rf,IAErBz2O,MAAO,CACHp/P,MAAO,UACPH,YAAa,UACb5V,gBAAiB,WAErBtiC,MAAO,CACHq4C,MAAO,UACPH,YAAa,UACb5V,gBAAiB,WAErBlY,OAAQ,CACJiuB,MAAO,UACPH,YAAa,UACb5V,gBAAiB,YAGzB+8e,YAAa,WAEjB,eAAgB,CACZe,qBAAsB,CAClB99X,MAAO,CACHhoG,OAAQ,CACJjC,MAAO81e,KAGf5N,cAAe,CACXloe,MAAO0le,MAInB,oBAAqB,CACjBuE,kBAAmB,CACfjqe,MAAO0le,KAGf,0BAA2B,CACvBzje,OAAQ,CACJjC,MAAO,QAEXA,MAAO,QAEXoqe,MAAO,CACH6C,mBAAoB,CAChBhre,OAAQ,CACJjC,MAAO81e,KAGf/J,mBAAoB,CAChBG,WAAY,CACRlse,MAAO+1e,KAGftI,WAAY,CACRC,aAAc,CACV1te,MAAO0le,MAInByI,MAAO,CACHE,eAAgB,CACZpkf,gBAAiB+qf,IAErB1G,gBAAiB,CACb30R,SAAU,CACN35M,MAAOg1e,IAEX1J,SAAU,CACNtre,MAAO,WAEXuue,eAAgB,CACZC,YAAa,WAEjBC,eAAgB,CACZzue,MAAO,WAEX0ue,UAAW,CACP1ue,MAAO,aAInB4ve,SAAU,CACN3lf,gBAAiB,WAErB+lf,cAAe,CACX9nT,MAAO,CACH2hS,KAAM,CACF7pd,MAAO0le,GACP5tY,QAAS,KAEbiyY,UAAW,CACP/pe,MAAO0le,GACP5tY,QAAS,IAEbo0Y,WAAY,CACRlse,MAAO+1e,KAGfzF,mBAAoB0E,GACpBzE,aAAc,CACVvwe,MAAOg1e,GACPnhV,KAAM,CACF7zJ,MAAO61e,KAGfpF,aAAc,CACVzwe,MAAO0le,GACP5tY,QAAS,IAEb44Y,QAAS,CACL1we,MAAO0le,GACP5tY,QAAS,KAGjBhrI,IAAK,CACD6jhB,WAAY,CACR9we,YAAa,WAEjBsxe,MAAO,CACHlnY,MAAO,CACHrpG,OAzTR,UA0TQizJ,KAAM,CACF7zJ,MAAO0le,MAInB,aAAc,CACV7le,YAAag2e,GACb71e,MA/TO,UAgUPoxe,mBAAoB1L,GACpB4L,oBAAqB5L,IAEzB,aAAc,CACV1le,MAAO,UACPuxe,aAAc,UACdC,cAAe,WAEnB,sBAAuB,CACnBJ,mBAAoB1L,GACpB4L,oBAAqB5L,IAEzB,mBAAoB,CAChB0L,mBAAoB1L,GACpB4L,oBAAqB5L,IAEzB6B,OAAQ,CACJtle,OAAQ,CACJjC,MAAO,WAEX6zJ,KAAM,CACF7zJ,MAAO0le,KAGfqM,WAAY,CACRlye,YAAao1e,GACbj1e,MAAO61e,KAGf7D,QAAS,CACL1ggB,MAAO,CACH0uB,MAAO,UACPiqG,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO,cAKvBkye,UAAW,CACPC,UAAW8C,GACXtC,eAAgBsC,GAChB1C,iBAAkB4C,GAClB3C,iBAAkB0C,GAClBzC,SAAU0C,GACVzC,UAAWwC,GACXrC,WAAYgD,IAEhBzC,OAAQ,CACJC,YAAa6B,IAEjBvB,OAAQ,CACJ7shB,KAAM,CACFm7C,OAAQ,CACJjC,MAAO61e,MAInB3B,OAAQ,CACJjqY,MAAO,CACH4pD,KAAM,CACF7zJ,MAAO0le,OAKvB8O,cAAe,aAGnB,SAASyB,GAAuBC,EAAYxpI,EAAW4lG,GACnD,MAAO,CACHn7d,MAAO,CACH/iB,KAAM,YAAc8hhB,EAAa,IAAMxpI,EACvCsjI,cAAe,CACXM,mBAAoBh+B,EACpBi+B,aAAc,CACVvwe,MAAOsyc,GAEXm+B,aAAc,CACVzwe,MAAOsyc,IAGfxlf,IAAK,CACD,mBAAoB,CAChBkzC,MAAOsyc,GAEX,sBAAuB,CACnBtyc,MAAOsyc,GAEXi1B,OAAQ,CACJ4O,YAAa7jC,IAGrB8gC,OAAQ,CACJpze,MAAOsyc,GAEX67B,MAAO,CACHG,gBAAiB,CACbhD,SAAU,CACNtre,MAAOsyc,GAEXo8B,UAAW,CACP1ue,MAAOsyc,MAKvBkiC,cAAe,YAAc9nI,GAGrC,IAAI0pI,GAAkB,CAClBnkT,KAAM,UACN2E,KAAM,UACNuB,OAAQ,UACRa,OAAQ,UACRoB,KAAM,WAEV,IAAK,IAAIi8S,MAAUD,GACf,GAAI1ohB,OAAOtB,UAAUsxE,eAAer2E,KAAK+uhB,GAAiBC,IAAS,CAC/D,IAAIr2e,GAAQo2e,GAAgBC,IAC5Bhrc,GAAO7jF,KAAKyuhB,GAAuBI,GAAQ,QAASr2e,IAAQi2e,GAAuBI,GAAQ,OAAQr2e,IAAQ,CACvG7oB,MAAO,CACH/iB,KAAM,YAAYouB,OAAO6zf,GAAQ,mBAErC7B,cAAe,YAAYhyf,OAAO6zf,GAAQ,WAC3C,CACCl/f,MAAO,CACH/iB,KAAM,YAAYouB,OAAO6zf,GAAQ,kBAErC7B,cAAe,YAAYhyf,OAAO6zf,GAAQ,WAItD,IChbIC,GDgbJ,MCtbIjrc,GAAS,GACTkrc,GAAgB,GAChBC,GAAsB,GACtB9/B,GAAUhnf,EAAAA,EACVinf,GAAQt1e,EAAAA,GACRskd,GAAmB,KAEnB8wD,GAAe,EACfC,GAAe,GACZ,SAASzgW,GAASy2N,GACrB,IAAIt4Y,GAAOo+e,EAAAA,EAAAA,eAAc9lG,GACzB,OAAOrhU,GAAOj3E,IAASi3E,GAAOkrc,GAAcnihB,IAAS24a,MAGzD,SAAS4pG,GAAoBvihB,EAAMwihB,GAC/B,OAAOL,GAAcnihB,EAAO,IAAMwihB,IAAWJ,GAAoBpihB,EAAO,IAAMwihB,IAAWL,GAAcnihB,GAG3G,SAASyihB,GAAwBtxZ,EAAUmK,EAASknZ,GAChD,OAAOD,GAAoBpxZ,EAAWmK,EAASknZ,IAAWD,GAAoBpxZ,EAAUqxZ,GAErF,SAAS7pG,GAAargC,EAAWoqI,GACpC,IAAKnohB,UAAUzH,OACX,OAAOy+d,IAAoBgxD,IAAoBI,EAAAA,EAAAA,aAAsBT,GAEzE,IAAIM,GAASpkC,EAAAA,EAAAA,eAAcskC,GAE3B,OADAnxD,IAAoBj5E,GAAaA,EAAUnnR,SAAWsxZ,IAAwBrkC,EAAAA,EAAAA,eAAc9lG,EAAUnnR,UAAWmnR,EAAUh9Q,QAASknZ,GAAUD,IAAoBnkC,EAAAA,EAAAA,eAAc9lG,GAAYkqI,KAAYjxD,GACjM/+d,KAwBJ,SAASowhB,GAAc7/f,EAAOq9f,GACjC,IAAI9nI,GAAY8lG,EAAAA,EAAAA,eAAcr7d,GAASA,EAAM/iB,MACzCs4Y,IACAv1X,EAAMwyJ,YAAc2sW,GAAe5pI,GAhB3C,SAA2BA,EAAWuqI,GAClC,IAAIC,EATR,SAAsBxqI,EAAWyqI,GAC7B,IAAI54d,EAAImuV,EAAU3/Y,QAAQoqhB,GAC1B,OAAO54d,EAAI,EAAI,CACXnqD,KAAMs4Y,EAAU95W,UAAU,EAAG2rB,GAC7Bq4d,OAAQlqI,EAAU95W,UAAU2rB,EAAI,IAChC,KAIY64d,CAAa1qI,EAAW,MAAQ,CAC5Ct4Y,KAAMs4Y,GAENt4Y,EAAO8ihB,EAAU9ihB,KACjBwihB,EAASM,EAAUN,OACnBA,GACAL,GAAcnihB,GAAQmihB,GAAcnihB,IAAS6ihB,EAC7CV,GAAcnihB,EAAO,IAAMwihB,GAAUK,GAErCV,GAAcnihB,GAAQ6ihB,EAOtBI,CAAkB3qI,EAAWA,GAC7BrhU,GAAOqhU,GAAagqG,IAAQ,EAAM,GAAIzgU,GAASu+V,GAqBvD,SAAoBr9f,GA2HhB,OArCAmggB,IArFAnggB,EAAQu/d,IAAQ,EAAM,CAClBowB,iBAAkB,CACdjzU,KAAM,IAEVkzU,OAAQ,CACJlzU,KAAM,IAEV0zU,OAAQ,CACJ1zU,KAAM,GACN5xJ,OAAQ,IAEZzvB,MAAO,CACHqhL,KAAM,IAEVzhH,QAAS,CACLyhH,KAAM,IAEV,eAAgB,GAChB,oBAAqB,CACjBg2U,KAAM,GACNC,UAAW,GACXjgB,KAAM,GACNkgB,UAAW,GACXv3f,MAAO,CACHqhL,KAAM,IAEV5pD,MAAO,CACH4pD,KAAM,KAGd,0BAA2B,CACvBA,KAAM,GACN5xJ,OAAQ,IAEZmoe,MAAO,CACHrC,qBAAsB,CAClB0D,YAAa,KAGrBqC,IAAK,GACL0F,MAAO,GACPrF,MAAO,CACHjmT,MAAO,CACH2hS,KAAM,GACNkgB,UAAW,GACX9/X,MAAO,CACH4pD,KAAM,MAIlB+7U,SAAU,GACV+D,OAAQ,GACRO,OAAQ,GACRpnhB,IAAK,CACD6jhB,WAAY,IAEhBqB,QAAS,CACLC,KAAM,CACFhyV,eAAgB,CACZh+I,OAAQ,KAGhB3wB,MAAO,CACH2wB,OAAQ,GACRg+I,eAAgB,CACZh+I,OAAQ,IAEZgoG,MAAO,CACH4pD,KAAM,MAIlBm8U,cAAe,CACX9nT,MAAO,CACH2hS,KAAM,GACNkgB,UAAW,GACX9/X,MAAO,CACH4pD,KAAM,KAGdu2U,MAAO,IAEX8H,UAAW,GACXkB,OAAQ,IACTj8f,IACe2vf,iBAAkB,kBAAmB3vf,GACvDmggB,GAAYnggB,EAAMizf,MAAMrC,qBAAqB0D,YAAa,aAAc,KAAMt0f,EAAM8S,iBACpFqtf,GAAYnggB,EAAMrqB,IAAI6jhB,WAAY,QAAS,KAAMx5f,EAAM8S,iBACvDqtf,GAAYnggB,EAAM3E,MAAMqhL,KAAM,QAAS,KAAM18K,EAAMsvf,mBACnD8Q,GAAYpggB,EAAM3E,MAAO,WAAY,KAAM2E,EAAM3E,OACjD8kgB,GAAYnggB,EAAMowf,OAAO1zU,KAAM,QAAS,KAAM18K,EAAMuvf,qBACpD4Q,GAAYnggB,EAAMowf,OAAOtle,OAAQ,QAAS,KAAM9qB,EAAMwvf,WAkC1D,SAAmBxvf,GACf,IAAI40f,EAAqB50f,EAAM,qBAC/Bw/d,GAAM,CAACo1B,EAAmBlC,KAAMkC,EAAmBjC,YAAa,SAASxogB,EAAGgzD,GACxEgjd,GAAYhjd,EAAK,QAAS,KAAMn9C,EAAMwvf,cAE1ChwB,GAAM,CAACo1B,EAAoBA,EAAmBliB,KAAMkiB,EAAmBhC,UAAWgC,EAAmB9hY,MAAM4pD,OAAQ,SAASvyL,EAAGgzD,GAC3Hgjd,GAAYhjd,EAAK,QAAS,KAAMn9C,EAAMyvf,cAE1C0Q,GAAYvL,EAAmBv5f,MAAMqhL,KAAM,QAAS,KAAM18K,EAAMuvf,qBAChE4Q,GAAYnggB,EAAMg3f,MAAMjmT,MAAMj+E,MAAM4pD,KAAM,QAAS,KAAM18K,EAAMyvf,WAC/D0Q,GAAYnggB,EAAMg3f,MAAMjmT,MAAM2hS,KAAM,QAAS,KAAM1ye,EAAM8S,iBACzDqtf,GAAYnggB,EAAMg3f,MAAMjmT,MAAM6hT,UAAW,QAAS,KAAM5yf,EAAM8S,iBAC9Dqtf,GAAYnggB,EAAM64f,cAAc9nT,MAAMj+E,MAAM4pD,KAAM,QAAS,KAAM18K,EAAMyvf,WA7CvE4Q,CAAUrggB,GACVw/d,GAAM,CAAC,QAAS,MAAO,QAAS,QAAS,WAAY,MAAO,UAAW,SAAU,gBAAiB,YAAa,SAAU,WAAY,SAASr1e,EAAG2pd,GAC7IqsD,GAAYnggB,EAAM8zc,GAAU,iBAAkB9zc,GAC9CmggB,GAAYnggB,EAAM8zc,GAAU,2BAA4B,KAAM9zc,EAAM8S,iBACpEstf,GAAYpggB,EAAM8zc,GAAU,UAAW9zc,GACvCoggB,GAAYpggB,EAAM8zc,GAAU,SAAU9zc,MAE1Cw/d,GAAM,CAAC,QAAS,MAAO,QAAS,QAAS,WAAY,MAAO,UAAW,SAAU,gBAAiB,WAAY,SAASr1e,EAAG2pd,GACtHssD,GAAYpggB,EAAM8zc,GAAU,mBAAoB9zc,GAChDoggB,GAAYpggB,EAAM8zc,GAAU,SAAU9zc,GACtCoggB,GAAYpggB,EAAM8zc,GAAU,QAAS9zc,MAEzCw/d,GAAM,CAAC,QAAS,MAAO,UAAW,SAASr1e,EAAG2pd,GAC1CssD,GAAYpggB,EAAO8zc,EAAS,KAAM9zc,EAAM,oBAE5Cw/d,GAAM,CAAC,QAAS,UAAW,SAASr1e,EAAG2pd,GACnC9zc,EAAM8zc,GAAW9zc,EAAM8zc,IAAY,GACnCssD,GAAYpggB,EAAM8zc,GAAU,qBAAsB,KAAM9zc,EAAM,yBAElEw/d,GAAM,CAAC,QAAS,QAAS,MAAO,QAAS,SAASr1e,EAAG2pd,GACjD9zc,EAAM8zc,GAAW9zc,EAAM8zc,IAAY,GACnCssD,GAAYpggB,EAAM8zc,GAAU,2BAA4B,KAAM9zc,EAAM,+BAExEoggB,GAAYpggB,EAAM64f,cAAc5F,MAAO,uBAAwBjzf,EAAMizf,OACrEmN,GAAYpggB,EAAM64f,cAAc5F,MAAO,sBAAuBjzf,EAAMizf,OACpEkN,GAAYnggB,EAAM66f,QAAQ1ggB,MAAM2wB,OAAQ,QAAS,KAAM9qB,EAAMwvf,WAC7D2Q,GAAYnggB,EAAM66f,QAAQC,KAAKhyV,eAAeh+I,OAAQ,QAAS,KAAM9qB,EAAMsvf,mBAC3E6Q,GAAYnggB,EAAM66f,QAAQ1ggB,MAAM2uK,eAAeh+I,OAAQ,QAAS,KAAM9qB,EAAMsvf,mBAC5E6Q,GAAYnggB,EAAMrqB,IAAIy6gB,OAAQ,kBAAmBpwf,GAoBrD,SAAwBA,GACpB,IAAIrqB,EAAMqqB,EAAMrqB,IAChB6pf,GAAM,CAAC,OAAQ,OAAQ,WAAY,SAASr1e,EAAG2pd,GAC3CssD,GAAYzqhB,EAAK,SAAWm+d,EAAS,KAAMn+d,EAAIqkhB,UAEnDx6B,GAAM,CAAC,MAAO,SAAU,MAAO,UAAW,SAASr1e,EAAG2pd,GAClDssD,GAAYzqhB,EAAK,gBAAkBm+d,EAAS,KAAMn+d,EAAI,oBAzB1D2qhB,CAAetggB,GACRA,EAhJ4DuggB,CAAWvggB,KAG3E,SAASwggB,GAAyB5nhB,EAAM63D,GAC3C4ud,GAAoBzmhB,GAAQ63D,EAGhC,SAAS0vd,GAAY9phB,EAAQ29B,EAAOopF,EAAQwjJ,GACxC,IAAI5sP,EAASopG,EAASA,EAAOppF,GAAS4sO,OAClC,IAAW5sP,QAAU,IAAW3d,EAAO29B,KACvC39B,EAAO29B,GAAShgB,GAIxB,SAASosgB,GAAY/phB,EAAQ29B,EAAOopF,EAAQwjJ,GACxC,IAAI5sP,EAASopG,EAASA,EAAOppF,GAAS4sO,OAClC,IAAW5sP,IACX3d,EAAO29B,GAASurd,IAAQ,EAAM,GAAIvre,EAAQ3d,EAAO29B,KA0JlD,SAASord,GAAa/of,GACzB,IAAIoqhB,IAAanB,GACjBjphB,EAAO+jW,OAASqmL,EAChBlB,GAAakB,GAAYpqhB,EAEtB,SAASipf,GAAgBjpf,UACrBkphB,GAAalphB,EAAO+jW,QAExB,SAASsmL,KAIZ,OAHAlhC,GAAM+/B,IAAe,WACjB9vhB,KAAK+yR,aAEF/yR,MAEP4rD,EAAAA,EAAAA,IAAc64B,MAAW74B,EAAAA,EAAAA,IAAc+je,MAAmBD,IAC1D,GAAG9zf,OAAOs1f,EAAaC,EAAeC,EAAYC,EAAgBC,EAAgBC,GAAkBC,GAAiBC,GAAgBC,IAAgBzxhB,SAAQ,SAAAi2D,GACzJk6d,GAAcl6d,EAAE3lC,MAAO2lC,EAAE03d,yCCnRjC,OAOC,WACA,aAEA,IAAI+D,IACe,qBAAXlsgB,SACPA,OAAOjjB,WACPijB,OAAOjjB,SAAS4gC,eAGbwuf,EAAuB,CAE1BD,UAAWA,EAEXE,cAAiC,qBAAX95U,OAEtB+5U,qBACCH,MAAgBlsgB,OAAO/kB,mBAAoB+kB,OAAO0yZ,aAEnD45G,eAAgBJ,KAAelsgB,OAAOs3N,aAKhC,KAANxiH,EAAAA,WACC,OAAOq3Z,GADF,8BAvBP,uCCLD,IAAII,EAAUjic,EAAQ,OAMlBkic,EAAgB,CAClBC,mBAAmB,EACnBC,aAAa,EACbC,cAAc,EACdllN,cAAc,EACdh+T,aAAa,EACbmjhB,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACX9ugB,MAAM,GAEJ+ugB,EAAgB,CAClBllhB,MAAM,EACNlN,QAAQ,EACRkF,WAAW,EACXmthB,QAAQ,EACRC,QAAQ,EACR7qhB,WAAW,EACX8qhB,OAAO,GASLC,EAAe,CACjB,UAAY,EACZt7d,SAAS,EACT01Q,cAAc,EACdh+T,aAAa,EACbujhB,WAAW,EACX9ugB,MAAM,GAEJovgB,EAAe,GAInB,SAASC,EAAW3kgB,GAElB,OAAI2jgB,EAAQiB,OAAO5kgB,GACVykgB,EAIFC,EAAa1kgB,EAAS,WAAiB4jgB,EAVhDc,EAAaf,EAAQkB,YAhBK,CACxB,UAAY,EACZ3zgB,QAAQ,EACR2tT,cAAc,EACdh+T,aAAa,EACbujhB,WAAW,GAYbM,EAAaf,EAAQmB,MAAQL,EAY7B,IAAI/td,EAAiBj+D,OAAOi+D,eACxBxD,EAAsBz6D,OAAOy6D,oBAC7B6xd,EAAwBtshB,OAAOsshB,sBAC/B71c,EAA2Bz2E,OAAOy2E,yBAClC5B,EAAiB70E,OAAO60E,eACxB03c,EAAkBvshB,OAAOtB,UAsC7Bg1H,EAAO1qC,QArCP,SAASwjc,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB/3c,EAAe63c,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAI1shB,EAAOw6D,EAAoBiyd,GAE3BJ,IACFrshB,EAAOA,EAAK60B,OAAOw3f,EAAsBI,KAM3C,IAHA,IAAIG,EAAgBX,EAAWO,GAC3BK,EAAgBZ,EAAWQ,GAEtBznhB,EAAI,EAAGA,EAAIhF,EAAKzG,SAAUyL,EAAG,CACpC,IAAI/E,EAAMD,EAAKgF,GAEf,IAAK2mhB,EAAc1rhB,MAAUyshB,IAAaA,EAAUzshB,OAAW4shB,IAAiBA,EAAc5shB,OAAW2shB,IAAiBA,EAAc3shB,IAAO,CAC7I,IAAIs2E,EAAaC,EAAyBi2c,EAAiBxshB,GAE3D,IAEE+9D,EAAewud,EAAiBvshB,EAAKs2E,GACrC,MAAO98E,OAKf,OAAO+yhB,sFCjGT,SAASM,EAAc5jc,GACnB,YAAa,IAANA,GAAsB,OAANA,EAE3B,SAASq6H,EAASr6H,GACd,MAAoB,kBAANA,EAElB,SAASi1H,EAAYj1H,GACjB,YAAa,IAANA,EAGX,IAAI6jc,EAAiB,CACjBC,oBAAqB,EACrBC,qBAAsB,EACtBC,wBAAyB,EACzBC,qBAAsB,EACtBC,uBAAwB,EACxBC,sBAAuB,GAE3B,SAAShxf,EAAczf,EAAM67F,EAAO60a,GAChC,IACItphB,EAKAuphB,EANAC,EAAcxshB,UAEdk2D,EAAM,KACNj3D,EAAM,KACNqH,EAAY,KACZk0G,EAAQ,EAERiya,EAAWzshB,UAAUzH,OAAS,EAClC,GAAiB,IAAbk0hB,EACAzphB,EAAWsphB,OAEV,GAAIG,EAAW,EAEhB,IADAzphB,EAAW,GACJyphB,KAAa,GAChBzphB,EAASyphB,GAAYD,EAAYC,EAAW,GAGpD,IAAIlqU,EAAS3mM,GA0BR,CAQD,GAPA4+F,EAAQ,EACH2iG,EAAYn6M,KACRy0G,IACDA,EAAQ,IAEZA,EAAMz0G,SAAWA,IAEhB8ohB,EAAcr0a,GAEf,IAAK,IAAIi1a,KADTH,EAAW,GACQ90a,EACA,QAAXi1a,EACAzthB,EAAMw4G,EAAMx4G,IAEI,QAAXythB,EACLx2d,EAAMuhD,EAAMvhD,IAEoB,IAA3B61d,EAAeW,IACfx2d,IACDA,EAAM,IAEVA,EAAIw2d,GAAUj1a,EAAMi1a,IAGpBH,EAASG,GAAUj1a,EAAMi1a,GAIrC,OAAOvgN,EAAAA,EAAAA,IAAqB3xN,EAAO5+F,EAAM2wgB,EAAUtthB,EAAKi3D,GApDxD,GADAskD,GAAQmya,EAAAA,EAAAA,IAAwB/wgB,IAC3BkwgB,EAAcr0a,GAEf,IAAK,IAAIiH,KADT6ta,EAAW,GACM90a,EACA,cAATiH,GAAiC,UAATA,EACxBp4G,EAAYmxG,EAAMiH,GAEJ,QAATA,EACLz/G,EAAMw4G,EAAMx4G,IAEE,aAATy/G,GAAuBy+F,EAAYn6M,GACxCA,EAAWy0G,EAAMz0G,SAEH,QAAT07G,EACLxoD,EAAMuhD,EAAMvhD,KAGC,oBAATwoD,IACAlE,GAAS,MAEb+xa,EAAS7ta,GAAQjH,EAAMiH,IAmCvC,OAAY,KAARlE,GACOqe,EAAAA,EAAAA,IAA4B,IAAb4zZ,EAAiB,CAACzphB,GAAYA,EAAU,EAAyB/D,IAEpF8oU,EAAAA,EAAAA,IAAYvtN,EAAO5+F,EAAMtV,EAAWtD,EAAU,EAAyBuphB,EAAUtthB,EAAKi3D,6hBCjGjG,IAAIud,EAAUj2E,MAAMi2E,QACpB,SAASm5c,EAAiB1kc,GACtB,IAAItsE,SAAcssE,EAClB,MAAgB,WAATtsE,GAA8B,WAATA,EAEhC,SAASkwgB,EAAc5jc,GACnB,YAAa,IAANA,GAAsB,OAANA,EAE3B,SAASk+S,EAAUl+S,GACf,OAAa,OAANA,IAAoB,IAANA,IAAqB,IAANA,QAAoB,IAANA,EAEtD,SAAS/U,EAAW+U,GAChB,MAAoB,oBAANA,EAElB,SAASq6H,EAASr6H,GACd,MAAoB,kBAANA,EAKlB,SAASwxB,EAAOxxB,GACZ,OAAa,OAANA,EAKX,SAAS2kc,EAAY5qd,EAAOu6L,GACxB,IAAI0zC,EAAM,GACV,GAAIjuO,EACA,IAAK,IAAIhjE,KAAOgjE,EACZiuO,EAAIjxS,GAAOgjE,EAAMhjE,GAGzB,GAAIu9P,EACA,IAAK,IAAIswR,KAAStwR,EACd0zC,EAAI48O,GAAStwR,EAAOswR,GAG5B,OAAO58O,EAgBX,SAAS68O,EAAkB7kc,GACvB,OAAQwxB,EAAOxxB,IAAmB,kBAANA,EAKhC,IAAIqzB,EAAY,GAEhB,SAASyxa,EAAmBvnhB,GACxB,OAAOA,EAAKmD,OAAO,GAAGsyB,cAE1B,SAASu0C,EAAY0rC,EAAWvB,GAC5BuB,EAAU1rC,YAAYmqC,GAE1B,SAASqza,EAAe9xa,EAAW+xa,EAASruN,GACpCnlN,EAAOmlN,GACPpvP,EAAY0rC,EAAW+xa,GAGvB/xa,EAAU0e,aAAaqzZ,EAASruN,GAYxC,SAASz5Q,EAAY+1D,EAAWg3J,GAC5Bh3J,EAAU/1D,YAAY+sN,GAE1B,SAASg7Q,EAAQC,GACb,IAAK,IAAIpphB,EAAI,EAAGA,EAAIophB,EAAQ70hB,OAAQyL,IAChCophB,EAAQpphB,KAGhB,SAASqphB,EAAenya,EAAOoya,EAAW9ya,GACtC,IAAIx3G,EAAWk4G,EAAMl4G,SACrB,OAAY,EAARw3G,EACOx3G,EAAS61G,IAER,KAAR2B,EAC4B,IAArBU,EAAMX,WAA0Cv3G,EAAWA,EAASsqhB,EAAY,EAAItqhB,EAASzK,OAAS,GAE1GyK,EAEX,SAAS41G,EAAiBsC,EAAOoya,GAE7B,IADA,IAAI9ya,EACGU,GAAO,CAEV,GAAY,MADZV,EAAQU,EAAMV,OAEV,OAAOU,EAAMtB,IAEjBsB,EAAQmya,EAAenya,EAAOoya,EAAW9ya,GAE7C,OAAO,KAEX,SAAS+ya,EAAerya,EAAOC,GAC3B,EAAG,CACC,IAAIX,EAAQU,EAAMV,MAClB,GAAY,KAARA,EAEA,YADAp1D,EAAY+1D,EAAWD,EAAMtB,KAGjC,IAAI52G,EAAWk4G,EAAMl4G,SAOrB,GANY,EAARw3G,IACAU,EAAQl4G,EAAS61G,KAET,EAAR2B,IACAU,EAAQl4G,GAEA,KAARw3G,EAA6B,CAC7B,GAAyB,IAArBU,EAAMX,WAGL,CACD,IAAK,IAAIv2G,EAAI,EAAGyrC,EAAMzsC,EAASzK,OAAQyL,EAAIyrC,IAAOzrC,EAC9CuphB,EAAevqhB,EAASgB,GAAIm3G,GAEhC,OANAD,EAAQl4G,SASXk4G,GAEb,SAASsya,EAAatya,EAAOC,EAAW0jN,GACpC,EAAG,CACC,IAAIrkN,EAAQU,EAAMV,MAClB,GAAY,KAARA,EAEA,YADAyya,EAAe9xa,EAAWD,EAAMtB,IAAKilN,GAGzC,IAAI77T,EAAWk4G,EAAMl4G,SAOrB,GANY,EAARw3G,IACAU,EAAQl4G,EAAS61G,KAET,EAAR2B,IACAU,EAAQl4G,GAEA,KAARw3G,EAA6B,CAC7B,GAAyB,IAArBU,EAAMX,WAGL,CACD,IAAK,IAAIv2G,EAAI,EAAGyrC,EAAMzsC,EAASzK,OAAQyL,EAAIyrC,IAAOzrC,EAC9CwphB,EAAaxqhB,EAASgB,GAAIm3G,EAAW0jN,GAEzC,OANA3jN,EAAQl4G,SASXk4G,GAEb,SAASuya,EAAmBpnhB,EAAUkxG,EAAWnoB,GAC7C,OAAI/oF,EAASI,YAAY+jhB,yBACdqC,EAAYz9b,EAAO/oF,EAASI,YAAY+jhB,yBAAyBjza,EAAWnoB,IAEhFA,EAEX,IAAIs+b,EAAc,CACd5ue,GAAG,GAEHzsC,EAAU,CACVs7gB,oBAAqB,KACrB5lN,YAAa,KACb6lN,eAAgB,MAEpB,SAASC,EAAej0a,EAAK52G,GACzB42G,EAAI7+G,YAAciI,EAGtB,SAAS8qhB,EAAyBnkZ,EAAWokZ,GACzC,OAAQhB,EAAkBpjZ,IACtBA,EAAUl3H,QAAUs7gB,EAAUt7gB,OAC9Bk3H,EAAU7jI,OAASiohB,EAAUjohB,KAErC,SAASkohB,EAAqB/0d,EAAI73D,GAC9B,IAAK,IAAI6zE,KAAY7zE,OAxKR,IAyKO63D,EAAGgc,KACfhc,EAAGgc,GAAY7zE,EAAK6zE,IAG5B,OAAOhc,EAEX,SAASg1d,EAAUhthB,EAAQithB,GACvB,QAAS/6c,EAAWlyE,KAAYA,EAAOithB,IAAO,GAGlD,IAAIC,EAAY,IAChB,SAAShhT,EAAE5yH,EAAYv3G,EAAUsD,EAAWk0G,EAAOv7G,EAAKw4G,EAAOvhD,EAAKt6C,GAChE3jB,KAAKsiH,WAAaA,EAClBtiH,KAAK+K,SAAWA,EAChB/K,KAAKqO,UAAYA,EACjBrO,KAAK2hH,IAAM,KACX3hH,KAAKuiH,MAAQA,EACbviH,KAAKgH,SAAc,IAARA,EAAiB,KAAOA,EACnChH,KAAKw/G,WAAkB,IAAVA,EAAmB,KAAOA,EACvCx/G,KAAKi+D,SAAc,IAARA,EAAiB,KAAOA,EACnCj+D,KAAK2jB,KAAOA,EAEhB,SAASmsT,EAAYvtN,EAAO5+F,EAAMtV,EAAWtD,EAAUu3G,EAAY9C,EAAOx4G,EAAKi3D,GAC3E,IAAIk4d,OAA2B,IAAf7za,EAAwB,EAA6BA,EACjEW,EAAQ,IAAIiyH,EAAEihT,EAAWprhB,EAAUsD,EAAWk0G,EAAOv7G,EAAKw4G,EAAOvhD,EAAKt6C,GAO1E,OANIvJ,EAAQ01T,aACR11T,EAAQ01T,YAAY7sN,GAEN,IAAdkza,GACAC,EAAkBnza,EAAOA,EAAMl4G,UAE5Bk4G,EAsCX,SAASixN,EAAqB3xN,EAAO5+F,EAAM67F,EAAOx4G,EAAKi3D,GACnDskD,EAbJ,SAA+BA,EAAO5+F,GAClC,OAAY,GAAR4+F,EACOA,EAEP5+F,EAAKne,WAAame,EAAKne,UAAU+Z,OAC1B,EAEPoE,EAAKpE,OACE,MAEJ,EAGC82gB,CAAsB9za,EAAO5+F,GACrC,IAAIs/F,EAAQ,IAAIiyH,EAAE,EAA4B,KAAM,KAAM3yH,EAAOv7G,EAzBrE,SAA2Bu7G,EAAO5+F,EAAM67F,GAEpC,IAAI0tN,GAAwB,MAAR3qN,EAAiC5+F,EAAKpE,OAASoE,GAAMupT,aACzE,OAAI2mN,EAAc3mN,GACP1tN,EAEPq0a,EAAcr0a,GACPo1a,EAAY1nN,EAAc,MAE9B6oN,EAAqBv2a,EAAO0tN,GAgBmCopN,CAAkB/za,EAAO5+F,EAAM67F,GAtCzG,SAA2B+C,EAAO5+F,EAAMs6C,GACpC,GAAY,EAARskD,EACA,OAAOtkD,EAEX,IAAIs4d,GAAwB,MAARh0a,EAAiC5+F,EAAKpE,OAASoE,GAAM4ygB,aACzE,OAAI1C,EAAc0C,GACPt4d,EAEP41d,EAAc51d,GACPs4d,EAEJR,EAAqB93d,EAAKs4d,GA2B4EC,CAAkBj0a,EAAO5+F,EAAMs6C,GAAMt6C,GAIlJ,OAHIvJ,EAAQ01T,aACR11T,EAAQ01T,YAAY7sN,GAEjBA,EAEX,SAASwza,EAAgB9zhB,EAAMqE,GAC3B,OAAO,IAAIkuO,EAAE,EAA4B2+S,EAAclxhB,KAAkB,IAATA,IAA0B,IAATA,EAAiB,GAAKA,EAAM,KAAM,GAAeqE,EAAK,KAAM,KAAM,MAEvJ,SAAS45H,EAAe71H,EAAUu3G,EAAYt7G,GAC1C,IAAIq5L,EAAWyvI,EAAY,KAAqB,KAAqB,KAAM/kU,EAAUu3G,EAAY,KAAMt7G,EAAK,MAC5G,OAAQq5L,EAAS/9E,YACb,KAAK,EACD+9E,EAASt1L,SAAW2rhB,IACpBr2V,EAAS/9E,WAAa,EACtB,MACJ,KAAK,GACD+9E,EAASt1L,SAAW,CAAC0rhB,EAAgB1rhB,IACrCs1L,EAAS/9E,WAAa,EAG9B,OAAO+9E,EAEX,SAASquI,EAAezrN,GACpB,IAAIzD,EAAQyD,EAAMzD,MAClB,GAAIA,EAAO,CACP,IAAI+C,EAAQU,EAAMV,MACN,IAARA,SACuB,IAAnB/C,EAAMz0G,UAAuB8ohB,EAAc5wa,EAAMl4G,WACjDqrhB,EAAkBnza,EAAOzD,EAAMz0G,eAEX,IAApBy0G,EAAMnxG,YACFwlhB,EAAc5wa,EAAM50G,aACpB40G,EAAM50G,UAAYmxG,EAAMnxG,WAAa,MAEzCmxG,EAAMnxG,eAAY+J,SAGR,IAAdonG,EAAMx4G,MACNi8G,EAAMj8G,IAAMw4G,EAAMx4G,IAClBw4G,EAAMx4G,SAAMoR,QAEE,IAAdonG,EAAMvhD,MAEFglD,EAAMhlD,IADE,EAARskD,EACYqya,EAAY3xa,EAAMhlD,IAAKuhD,EAAMvhD,KAG7BuhD,EAAMvhD,IAEtBuhD,EAAMvhD,SAAM7lD,GAGpB,OAAO6qG,EAYX,SAAS0za,EAAYC,GACjB,IAAIr0a,GAA8B,MAAtBq0a,EAAar0a,MACrB/C,EAAQo3a,EAAap3a,MACzB,GAAY,GAAR+C,IACKd,EAAOjC,GAAQ,CAChB,IAAIq3a,EAAer3a,EAEnB,IAAK,IAAIx4G,KADTw4G,EAAQ,GACQq3a,EACZr3a,EAAMx4G,GAAO6vhB,EAAa7vhB,GAItC,OAAsC,KAAzB,KAARu7G,GACM,IAAI2yH,EAAE0hT,EAAat0a,WAAYs0a,EAAa7rhB,SAAU6rhB,EAAavohB,UAAWk0G,EAAOq0a,EAAa5vhB,IAAKw4G,EAAOo3a,EAAa34d,IAAK24d,EAAajzgB,MAlB5J,SAAuBizgB,GACnB,IAAIE,EAAcF,EAAa7rhB,SAC3Bu3G,EAAas0a,EAAat0a,WAC9B,OAAOse,EAA8B,IAAfte,EAA0Cq0a,EAAYG,GAAeA,EAAY5whB,IAAIywhB,GAAcr0a,EAAYs0a,EAAa5vhB,KAiB3I+vhB,CAAcH,GAEzB,SAASF,IACL,OAAOD,EAAgB,GAAI,MAM/B,SAASO,EAAiBxpS,EAAO3+O,EAAQhO,EAAOk3c,GAC5C,IAAK,IAAIvga,EAAMg2M,EAAMltP,OAAQO,EAAQ22C,EAAK32C,IAAS,CAC/C,IAAI62D,EAAI81L,EAAM3sP,GACd,IAAKstY,EAAUz2U,GAAI,CACf,IAAIu/d,EAASl/E,EAAam+E,EAAYr1hB,EACtC,GAAI26E,EAAQ9jB,GACRs/d,EAAiBt/d,EAAG7oD,EAAQ,EAAGoohB,OAE9B,CACD,GAAItC,EAAiBj9d,GACjBA,EAAI++d,EAAgB/+d,EAAGu/d,OAEtB,CACD,IAAIC,EAASx/d,EAAE1wD,IACXmwhB,EAAgB7sU,EAAS4sU,IAAWA,EAAO,KAAOhB,GACxC,MAAVx+d,EAAE6qD,OAAyC40a,KAC3Cz/d,EAAIi/d,EAAYj/d,IAEpBA,EAAE6qD,OAAS,MACN40a,EAQID,EAAOlrf,UAAU,EAAG+ra,EAAWz3c,UAAYy3c,IAChDrgZ,EAAE1wD,IAAM+wc,EAAam/E,GARjBz1a,EAAOy1a,GACPx/d,EAAE1wD,IAAMiwhB,EAGRv/d,EAAE1wD,IAAM+wc,EAAam/E,EAOjCrohB,EAAOjO,KAAK82D,MAK5B,SAASg9d,EAAwB/wgB,GAC7B,OAAQA,GACJ,IAAK,MACD,OAAO,GACX,IAAK,QACD,OAAO,GACX,IAAK,SACD,OAAO,IACX,IAAK,WACD,OAAO,IACX,IAjVO,KAkVH,OAAO,KACX,QACI,OAAO,GAGnB,SAASyygB,EAAkBnza,EAAOl4G,GAC9B,IAAIqshB,EACAC,EAAgB,EAEpB,GAAIlpJ,EAAUpjY,GACVqshB,EAAcrshB,OAEb,GAAI4phB,EAAiB5phB,GACtBsshB,EAAgB,GAChBD,EAAcrshB,OAEb,GAAIywE,EAAQzwE,GAAW,CAExB,IADA,IAAIysC,EAAMzsC,EAASzK,OACVyL,EAAI,EAAGA,EAAIyrC,IAAOzrC,EAAG,CAC1B,IAAI2rD,EAAI3sD,EAASgB,GACjB,GAAIoiY,EAAUz2U,IAAM8jB,EAAQ9jB,GAAI,CAC5B0/d,EAAcA,GAAershB,EAAStF,MAAM,EAAGsG,GAC/CirhB,EAAiBjshB,EAAUqshB,EAAarrhB,EAAG,IAC3C,MAEC,GAAI4ohB,EAAiBj9d,IACtB0/d,EAAcA,GAAershB,EAAStF,MAAM,EAAGsG,IACnCnL,KAAK61hB,EAAgB/+d,EAAGw+d,EAAYnqhB,QAE/C,CACD,IAAI/E,EAAM0wD,EAAE1wD,IACRswhB,GAA0B,MAAV5/d,EAAE6qD,OAAyC,EAC3Dg1a,EAAY91a,EAAOz6G,GACnBwwhB,EAAaltU,EAAStjN,IAAQA,EAAI,KAAOkvhB,EACzCoB,GAAgBC,GAAaC,GAC7BJ,EAAcA,GAAershB,EAAStF,MAAM,EAAGsG,IAC3CurhB,GAAgBE,KAChB9/d,EAAIi/d,EAAYj/d,KAEhB6/d,GAAaC,KACb9/d,EAAE1wD,IAAMkvhB,EAAYnqhB,GAExBqrhB,EAAYx2hB,KAAK82D,IAEZ0/d,GACLA,EAAYx2hB,KAAK82D,GAErBA,EAAE6qD,OAAS,OAKf80a,EADuB,KAD3BD,EAAcA,GAAershB,GACbzK,OACI,EAGA,OAIpB82hB,EAAcrshB,GACFw3G,OAAS,MACA,MAAjBx3G,EAASw3G,QACT60a,EAAcT,EAAY5rhB,IAE9BsshB,EAAgB,EAIpB,OAFAp0a,EAAMl4G,SAAWqshB,EACjBn0a,EAAMX,WAAa+0a,EACZp0a,EAEX,SAASw0a,EAAcj/f,GACnB,OAAI21W,EAAU31W,IAAUm8f,EAAiBn8f,GAC9Bi+f,EAAgBj+f,EAAO,MAE9BgjD,EAAQhjD,GACDooG,EAAepoG,EAAO,EAAyB,MAErC,MAAdA,EAAM+pF,MAA4Bo0a,EAAYn+f,GAASA,EAGlE,IAAIk/f,EAAU,+BACVC,EAAQ,uCACR/xP,EAAa,CACb,gBAAiB8xP,EACjB,gBAAiBA,EACjB,aAAcA,EACd,aAAcA,EACd,aAAcA,EACd,cAAeA,EACf,aAAcA,EACd,WAAYC,EACZ,WAAYA,EACZ,YAAaA,GAGjB,SAASC,EAAwB/we,GAC7B,MAAO,CACHmgB,QAASngB,EACTgxe,WAAYhxe,EACZmrD,UAAWnrD,EACXkrD,WAAYlrD,EACZgxD,UAAWhxD,EACXixe,WAAYjxe,EACZ0ra,QAAS1ra,EACTyxF,YAAazxF,EACb83F,YAAa93F,EACbumF,UAAWvmF,EACXkxe,WAAYlxe,EACZmxe,YAAanxe,EACboxe,aAAcpxe,GAGtB,IAAIqxe,EAAsBN,EAAwB,GAC9CO,EAAiBP,EAAwB,MACzCQ,EAAkBR,GAAwB,GAC9C,SAASS,EAA0B7qhB,EAAMm0G,GACrC,IAAI22a,EAAe32a,EAAI42a,IASvB,OARKD,IACDA,EAAe32a,EAAI42a,IAAMX,EAAwB,OAEhDU,EAAa9qhB,IACsB,MAA9B0qhB,EAAoB1qhB,KACtB2qhB,EAAe3qhB,GAsG3B,SAA+BA,GAC3B,IAAIgrhB,EAAyB,YAAThrhB,GAA+B,eAATA,EAlB9C,SAAwBA,GACpB,OAAO,SAAUgN,GACQ,IAAjBA,EAAMrY,OAOVs2hB,EAAej+gB,GAAO,EAAMhN,EAAMkrhB,GAAsBl+gB,IAHpDA,EAAMpT,mBAYoDuxhB,CAAenrhB,GANrF,SAAmBA,GACf,OAAO,SAAUgN,GACbi+gB,EAAej+gB,GAAO,EAAOhN,EAAMkrhB,GAAsBl+gB,KAI4Bo+gB,CAAUprhB,GAEnG,OADAhL,SAAS9B,iBAAiBq0hB,EAAmBvnhB,GAAOgrhB,GAC7CA,EAzGwBK,CAAsBrrhB,IAG9C8qhB,EAEX,SAASQ,EAAsBtrhB,EAAMm0G,GACjC,IAAI22a,EAAe32a,EAAI42a,IACnBD,GAAgBA,EAAa9qhB,KACO,MAA9B0qhB,EAAoB1qhB,KACtBhL,SAASrC,oBAAoB40hB,EAAmBvnhB,GAAO2qhB,EAAe3qhB,IACtE2qhB,EAAe3qhB,GAAQ,MAE3B8qhB,EAAa9qhB,GAAQ,MAqB7B,SAASirhB,EAAej+gB,EAAOu+gB,EAASvrhB,EAAMqyR,GAC1C,IAAIl+K,EAJR,SAAuBnnG,GACnB,OAAO0gE,EAAW1gE,EAAM06R,cAAgB16R,EAAM06R,eAAe,GAAK16R,EAAM5T,OAG9DoyhB,CAAcx+gB,GACxB,EAAG,CAIC,GAAIu+gB,GAAWp3a,EAAIv2G,SACf,OAEJ,IAAIkthB,EAAe32a,EAAI42a,IACvB,GAAID,EAAc,CACd,IAAIW,EAAeX,EAAa9qhB,GAChC,GAAIyrhB,IAEAp5P,EAAUl+K,IAAMA,EAChBs3a,EAAaz+gB,MAAQy+gB,EAAaz+gB,MAAMy+gB,EAAaprhB,KAAM2M,GAASy+gB,EAAaz+gB,GAC7EA,EAAM0+gB,cACN,OAIZv3a,EAAMA,EAAIv3F,kBACJq3F,EAAOE,IAErB,SAASv6G,IACLpH,KAAKk5hB,cAAe,EACfl5hB,KAAKm5hB,6BACNn5hB,KAAKynS,2BAGb,SAAShL,IACL,OAAOz8R,KAAKmkI,iBAEhB,SAAS2gK,KACL,OAAO9kS,KAAKk5hB,aAEhB,SAASR,GAAsBl+gB,GAE3B,IAAIqlR,EAAY,CACZl+K,IAAKn/G,UAWT,OATAgY,EAAMiiR,mBAAqBA,EAC3BjiR,EAAMsqR,qBAAuBA,GAC7BtqR,EAAMpT,gBAAkBA,EACxBN,OAAOi+D,eAAevqD,EAAO,gBAAiB,CAC1C0qD,cAAc,EACdrlD,IAAK,WACD,OAAOggR,EAAUl+K,OAGlBk+K,EA+BX,SAASu5P,GAAqB55a,EAAOzgD,EAAYv+D,GAC7C,GAAIg/G,EAAMzgD,GAAa,CACnB,IAAI1+D,EAAWm/G,EAAMzgD,GACjB1+D,EAASma,MACTna,EAASma,MAAMna,EAASwN,KAAMrN,GAG9BH,EAASG,OAGZ,CACD,IAAI64hB,EAAqBt6d,EAAW97B,cAChCu8E,EAAM65a,IACN75a,EAAM65a,GAAoB74hB,IAItC,SAAS84hB,GAAsBv6d,EAAYw6d,GACvC,IAAIC,EAAW,SAAUh5hB,GACrB,IAAIyiH,EAAQjjH,KAAKukH,GAEjB,GAAKtB,EAAL,CAGA,IAAIzD,EAAQyD,EAAMzD,OAAS8D,EACvB3B,EAAMsB,EAAMtB,IAChB,GAAI2oG,EAASvrJ,GACTq6d,GAAqB55a,EAAOzgD,EAAYv+D,QAGxC,IAAK,IAAIuL,EAAI,EAAGA,EAAIgzD,EAAWz+D,SAAUyL,EACrCqthB,GAAqB55a,EAAOzgD,EAAWhzD,GAAIvL,GAGnD,GAAI06E,EAAWq+c,GAAa,CACxB,IAAIE,EAAWz5hB,KAAKukH,GAChB+va,EAAWmF,EAASj6a,OAAS8D,EACjCi2a,EAAWjF,EAAU3ya,GAAK,EAAO83a,MASzC,OANA3yhB,OAAOi+D,eAAey0d,EAAU,UAAW,CACvCt0d,cAAc,EACdD,YAAY,EACZrjE,OAAO,EACPyzH,UAAU,IAEPmka,EAGX,SAASrhH,GAAYx2T,EAAK13E,EAAW1pC,GACjC,IAAIm5hB,EAAc,IAAMzvf,EACpB0vf,EAAeh4a,EAAI+3a,GACvB,GAAIC,EAAc,CACd,GAAIA,EAAa,GAAGC,QAChB,OAEJj4a,EAAIxhH,oBAAoBw5hB,EAAa,GAAIA,EAAa,IACtDh4a,EAAI+3a,GAAe,KAEnBx+c,EAAW36E,KACXohH,EAAIjhH,iBAAiBupC,EAAW1pC,GAChCohH,EAAI+3a,GAAe,CAACzvf,EAAW1pC,IAIvC,SAASs5hB,GAAcl2gB,GACnB,MAAgB,aAATA,GAAgC,UAATA,EAElC,IAAIm2gB,GAAoBR,GAAsB,UAAWS,IACrDC,GAAkBV,GAAsB,CAAC,UAAW,YAAaS,IAErE,SAASE,GAAaz/gB,GAClBA,EAAMpT,kBAYV,SAAS2yhB,GAAgBG,EAAkBv4a,GACvC,IAAIh+F,EAAOu2gB,EAAiBv2gB,KACxB/hB,EAAQs4hB,EAAiBt4hB,MACzBklS,EAAUozP,EAAiBpzP,QAC3Bu+K,EAAW60E,EAAiB70E,SAC5B9wa,EAAe2lf,EAAiB3lf,aAChC6lJ,GAAYy5V,EAAcjyhB,GAC1B+hB,GAAQA,IAASg+F,EAAIh+F,MACrBg+F,EAAI7gH,aAAa,OAAQ6iB,GAExBkwgB,EAAcxuE,IAAaA,IAAa1jW,EAAI0jW,WAC7C1jW,EAAI0jW,SAAWA,GAEdwuE,EAAct/e,IAAkB6lJ,IACjCz4E,EAAIptE,aAAeA,EAAe,IAElCslf,GAAcl2gB,IACVy2K,IACAz4E,EAAI//G,MAAQA,GAEXiyhB,EAAc/sP,KACfnlL,EAAImlL,QAAUA,IAId1sG,GAAYz4E,EAAI//G,QAAUA,GAC1B+/G,EAAIptE,aAAe3yC,EACnB+/G,EAAI//G,MAAQA,GAENiyhB,EAAc/sP,KACpBnlL,EAAImlL,QAAUA,GAK1B,SAASqzP,GAAmBl3a,EAAOrhH,GAC/B,GAAmB,WAAfqhH,EAAMt/F,MAsBd,SAA2Bs/F,EAAOrhH,GAC9B,IAAI49G,EAAQyD,EAAMzD,OAAS8D,EACvB3B,EAAMsB,EAAMtB,IAEhBA,EAAI//G,MAAQ49G,EAAM59G,MACd49G,EAAM59G,QAAUA,GAAU45E,EAAQ55E,KAA0C,IAAhCA,EAAMuE,QAAQq5G,EAAM59G,OAChE+/G,EAAI10F,UAAW,EAET4mgB,EAAcjyhB,IAAWiyhB,EAAcr0a,EAAMvyF,YACnD00F,EAAI10F,SAAWuyF,EAAMvyF,WAAY,GA9BjCmtgB,CAAkBn3a,EAAOrhH,OAExB,CACD,IAAImJ,EAAWk4G,EAAMl4G,SACjBw3G,EAAQU,EAAMV,MAClB,GAAY,EAARA,EACA43a,GAAmBpvhB,EAAS61G,IAAKh/G,QAEhC,GAAY,EAAR2gH,EACL43a,GAAmBpvhB,EAAUnJ,QAE5B,GAAyB,IAArBqhH,EAAMX,WACX63a,GAAmBpvhB,EAAUnJ,QAE5B,GAAuB,GAAnBqhH,EAAMX,WACX,IAAK,IAAIv2G,EAAI,EAAGyrC,EAAMzsC,EAASzK,OAAQyL,EAAIyrC,IAAOzrC,EAC9CouhB,GAAmBpvhB,EAASgB,GAAInK,IA/DhDq4hB,GAAaL,SAAU,EAgFvB,IAAIS,GAAiBf,GAAsB,WAAYgB,IAIvD,SAASA,GAAiBJ,EAAkBv4a,EAAK44a,EAAUt3a,GACvD,IAAIu3a,EAAwB54a,QAAQs4a,EAAiB70E,UAChDwuE,EAAcqG,EAAiB70E,WAAam1E,IAA0B74a,EAAI0jW,WAC3E1jW,EAAI0jW,SAAWm1E,GAEnB,IAAI35hB,EAAQq5hB,EAAiBzrgB,cAK7B,IAJe,IAAX5tB,IACA8gH,EAAIlzF,eAAiB,GAGN,IADFw0F,EAAMX,WACwB,CAC3C,IAAI1gH,EAAQs4hB,EAAiBt4hB,MAlxBb,kBAmxBHf,GAAUA,GAAS,GAAK8gH,EAAIvnG,QAAQvZ,KAC7Ce,EAAQ+/G,EAAIvnG,QAAQvZ,GAAOe,OAE3B24hB,GAAY1G,EAAcjyhB,KAC1BA,EAAQs4hB,EAAiB3lf,cAE7B4lf,GAAmBl3a,EAAOrhH,IAIlC,IAukCIiN,GACAuoF,GAxkCAqjc,GAAwBnB,GAAsB,UAAWoB,IACzDC,GAAoBrB,GAAsB,YAO9C,SAASoB,GAAmBR,EAAkBv4a,EAAK44a,GAC/C,IAAI34hB,EAAQs4hB,EAAiBt4hB,MACzBg5hB,EAAWj5a,EAAI//G,MACnB,GAAIiyhB,EAAcjyhB,IACd,GAAI24hB,EAAU,CACV,IAAIhmf,EAAe2lf,EAAiB3lf,aAC/Bs/e,EAAct/e,IAAiBA,IAAiBqmf,IACjDj5a,EAAIptE,aAAeA,EACnBotE,EAAI//G,MAAQ2yC,SAIfqmf,IAAah5hB,IAElB+/G,EAAIptE,aAAe3yC,EACnB+/G,EAAI//G,MAAQA,GAIpB,SAASi5hB,GAAet4a,EAAOU,EAAOtB,EAAKu4a,EAAkBK,EAAUO,GACvD,GAARv4a,EACAw3a,GAAgBG,EAAkBv4a,GAErB,IAARY,EACL+3a,GAAiBJ,EAAkBv4a,EAAK44a,EAAUt3a,GAErC,IAARV,GACLm4a,GAAmBR,EAAkBv4a,EAAK44a,GAE1CO,IACAn5a,EAAI4C,GAAKtB,GAGjB,SAAS83a,GAA4Bx4a,EAAOZ,EAAKu4a,GACjC,GAAR33a,EAnJR,SAAqBZ,EAAKu4a,GAClBL,GAAcK,EAAiBv2gB,OAC/Bw0Z,GAAYx2T,EAAK,SAAUq4a,IAC3B7hH,GAAYx2T,EAAK,QAASs4a,KAG1B9hH,GAAYx2T,EAAK,QAASm4a,IA8I1BkB,CAAYr5a,EAAKu4a,GAEJ,IAAR33a,EAtEb,SAAsBZ,GAClBw2T,GAAYx2T,EAAK,SAAU04a,IAsEvBY,CAAat5a,GAEA,IAARY,GA9Cb,SAAwBZ,EAAKu4a,GACzB/hH,GAAYx2T,EAAK,QAAS84a,IACtBP,EAAiBz8f,UACjB06Y,GAAYx2T,EAAK,SAAUg5a,IA4C3BO,CAAev5a,EAAKu4a,GAG5B,SAASiB,GAAwBjB,GAC7B,OAAOA,EAAiBv2gB,MAAQk2gB,GAAcK,EAAiBv2gB,OAASkwgB,EAAcqG,EAAiBpzP,UAAY+sP,EAAcqG,EAAiBt4hB,OAGtJ,SAAS0oU,KACL,MAAO,CACHhsF,QAAS,MASjB,SAAS88S,GAAWn9d,GACZA,IACK+3d,EAAU/3d,EAAK,OAASA,EAAIqgL,UAC7BrgL,EAAIqgL,QAAU,MAI1B,SAAS+8S,GAASp9d,EAAKr8D,EAAOygH,GACtBpkD,IAAQid,EAAWjd,SAAwB,IAAhBA,EAAIqgL,UAC/Bj8H,EAAUzhH,MAAK,WACNo1hB,EAAU/3d,EAAKr8D,SAA0B,IAAhBq8D,EAAIqgL,UAC9BrgL,EAAIqgL,QAAU18O,MAM9B,SAASJ,GAAOyhH,EAAOC,GACnBo4a,GAAQr4a,GACRqya,EAAerya,EAAOC,GAE1B,SAASo4a,GAAQr4a,GACb,IAEIhlD,EAFAskD,EAAQU,EAAMV,MACdx3G,EAAWk4G,EAAMl4G,SAErB,GAAY,IAARw3G,EAA2B,CAC3BtkD,EAAMglD,EAAMhlD,IACZ,IAAIuhD,EAAQyD,EAAMzD,MAClB47a,GAAWn9d,GACX,IAAIqkD,EAAaW,EAAMX,WACvB,IAAKb,EAAOjC,GAER,IADA,IAAIz4G,EAAOD,OAAOC,KAAKy4G,GACdzzG,EAAI,EAAGyrC,EAAMzwC,EAAKzG,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAC7C,IAAI/E,EAAMD,EAAKgF,GACXqshB,EAAgBpxhB,IAChB8xhB,EAAsB9xhB,EAAKi8G,EAAMtB,KAI5B,GAAbW,EACAi5a,GAAmBxwhB,GAEC,IAAfu3G,GACLg5a,GAAQvwhB,QAGPA,IACO,EAARw3G,GACIrnC,EAAWnwE,EAASywhB,uBACpBzwhB,EAASywhB,uBAEbJ,GAAWn4a,EAAMhlD,KACjBlzD,EAAS0whB,KAAM,EACfH,GAAQvwhB,EAAS61G,MAEJ,EAAR2B,IAEAsxa,EADL51d,EAAMglD,EAAMhlD,MACeid,EAAWjd,EAAIk2d,yBACtCl2d,EAAIk2d,uBAAuBxza,EAAiBsC,GAAO,GAAOA,EAAMzD,OAAS8D,GAE7Eg4a,GAAQvwhB,IAEK,KAARw3G,EACL/gH,GAAOuJ,EAAUk4G,EAAMhlD,KAEV,KAARskD,GACkB,GAAnBU,EAAMX,YACNi5a,GAAmBxwhB,IAKnC,SAASwwhB,GAAmBxwhB,GACxB,IAAK,IAAIgB,EAAI,EAAGyrC,EAAMzsC,EAASzK,OAAQyL,EAAIyrC,IAAOzrC,EAC9CuvhB,GAAQvwhB,EAASgB,IAGzB,SAAS2vhB,GAAS/5a,GAEdA,EAAI7+G,YAAc,GAEtB,SAAS64hB,GAAkBh6a,EAAKsB,EAAOl4G,GACnCwwhB,GAAmBxwhB,GACD,KAAdk4G,EAAMV,MACN+ya,EAAerya,EAAOtB,GAGtB+5a,GAAS/5a,GAuDjB,SAASi6a,GAAqBlqZ,EAAWokZ,EAAW+F,EAAWl6a,GAC3D,IAAIm6a,EAAYpqZ,GAAaA,EAAU5vB,QAAW,GAC9Ci6a,EAAYjG,GAAaA,EAAUh0a,QAAW,GAC9Cg6a,IAAaC,IACRlI,EAAckI,IA/Y3B,SAAyBp6a,EAAKphD,GAC1B,IAAIwhD,EAAUv/G,SAAS4gC,cAAc,KAErC,OADA2+E,EAAQxhD,UAAYA,EACbwhD,EAAQxhD,YAAcohD,EAAIphD,UA4YIyhD,CAAgBL,EAAKo6a,KAC7Ct6a,EAAOo6a,KACmB,GAAvBA,EAAUv5a,WACVi5a,GAAmBM,EAAU9whB,UAEC,IAAzB8whB,EAAUv5a,YACfg5a,GAAQO,EAAU9whB,UAEtB8whB,EAAU9whB,SAAW,KACrB8whB,EAAUv5a,WAAa,GAE3BX,EAAIphD,UAAYw7d,IAI5B,SAASC,GAAUv1a,EAAMirB,EAAWokZ,EAAWn0a,EAAKS,EAAO65a,EAAoBJ,GAC3E,OAAQp1a,GACJ,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,eACL,IAAK,MACL,IAAK,WACL,IAAK,MACL,IAAK,gBACD,MACJ,IAAK,YACD9E,EAAIu6a,YAAcpG,EAClB,MACJ,IAAK,kBACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,gBACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,WACDn0a,EAAI8E,KAAUqva,EACd,MACJ,IAAK,iBACL,IAAK,QACL,IAAK,SACD,GAAImG,GAA+B,UAATx1a,EACtB,MAEJ,IAAI7kH,EAAQiyhB,EAAciC,GAAa,GAAKA,EACxCn0a,EAAI8E,KAAU7kH,IACd+/G,EAAI8E,GAAQ7kH,GAEhB,MACJ,IAAK,SAlGb,SAAoBu6hB,EAAeC,EAAez6a,GAC9C,GAAIkya,EAAcuI,GACdz6a,EAAIqC,gBAAgB,aADxB,CAIA,IACI/lG,EACArc,EAFAy6hB,EAAW16a,EAAI1jG,MAGnB,GAAIqsM,EAAS8xU,GACTC,EAASh8Z,QAAU+7Z,OAGvB,GAAKvI,EAAcsI,IAAmB7xU,EAAS6xU,GAe3C,IAAKl+gB,KAASm+gB,EACVx6hB,EAAQw6hB,EAAcn+gB,GACtBo+gB,EAASt7S,YAAY9iO,EAAOrc,OAjB2B,CAC3D,IAAKqc,KAASm+gB,GAEVx6hB,EAAQw6hB,EAAcn+gB,MACRk+gB,EAAcl+gB,IACxBo+gB,EAASt7S,YAAY9iO,EAAOrc,GAGpC,IAAKqc,KAASk+gB,EACNtI,EAAcuI,EAAcn+gB,KAC5Bo+gB,EAAS18Q,eAAe1hQ,KA6E5Bq+gB,CAAW5qZ,EAAWokZ,EAAWn0a,GACjC,MACJ,IAAK,0BACDi6a,GAAqBlqZ,EAAWokZ,EAAW+F,EAAWl6a,GACtD,MACJ,QACQy2a,EAAgB3xa,GAhjBhC,SAA8Bj5G,EAAMixI,EAAW89Y,EAAW56a,GACtD,GAAIzmC,EAAWqhd,GACXlE,EAA0B7qhB,EAAMm0G,GAAKn0G,GAAQ+uhB,OAE5C,GAAIzH,EAAkByH,GAAY,CACnC,GAAI1G,EAAyBp3Y,EAAW89Y,GACpC,OAEJlE,EAA0B7qhB,EAAMm0G,GAAKn0G,GAAQ+uhB,OAG7CzD,EAAsBtrhB,EAAMm0G,GAsiBpB66a,CAAqB/1a,EAAMirB,EAAWokZ,EAAWn0a,GAErB,MAAvB8E,EAAKr1D,WAAW,IAAqC,MAAvBq1D,EAAKr1D,WAAW,GAvHnE,SAAoB5jD,EAAMkkI,EAAWokZ,EAAWn0a,GAC5C,GAAImza,EAAkBgB,GAAY,CAC9B,GAAID,EAAyBnkZ,EAAWokZ,GACpC,OAEJA,EAZR,SAAuBA,GAEnB,IAAIh9Y,EAAKg9Y,EAAUt7gB,MACnB,OAAO,SAAUha,GACbs4I,EAAGg9Y,EAAUjohB,KAAMrN,IAQPi8hB,CAAc3G,GAE9B39G,GAAYx2T,EAAKoza,EAAmBvnhB,GAAOsohB,GAiH/B4G,CAAWj2a,EAAMirB,EAAWokZ,EAAWn0a,GAElCkya,EAAciC,GACnBn0a,EAAIqC,gBAAgByC,GAEfrE,GAASwjL,EAAWn/K,GAGzB9E,EAAI8xZ,eAAe7tO,EAAWn/K,GAAOA,EAAMqva,GAG3Cn0a,EAAI7gH,aAAa2lH,EAAMqva,IAKvC,SAAS6G,GAAW15a,EAAOV,EAAO/C,EAAOmC,EAAKS,GAC1C,IAAI65a,GAAqB,EACrBW,GAAyB,IAARr6a,GAAiC,EAOtD,IAAK,IAAIkE,KANLm2a,IACAX,EAAqBd,GAAwB37a,KAEzCu7a,GAA4Bx4a,EAAOZ,EAAKnC,GAG/BA,EAEbw8a,GAAUv1a,EAAM,KAAMjH,EAAMiH,GAAO9E,EAAKS,EAAO65a,EAAoB,MAEnEW,GACA/B,GAAet4a,EAAOU,EAAOtB,EAAKnC,GAAO,EAAMy8a,GAIvD,SAASY,GAAezuhB,EAAUoxG,EAAO7kG,GACrC,IAAImihB,EAAYrF,EAAcrphB,EAASmR,OAAOigG,EAAOpxG,EAAS+oF,MAAOx8E,IACjEsM,EAAetM,EAKnB,OAJIugE,EAAW9sE,EAAS2uhB,mBACpB91gB,EAAe2tgB,EAAYj6gB,EAASvM,EAAS2uhB,oBAEjD3uhB,EAASo1G,IAAMv8F,EACR61gB,EAEX,SAASE,GAA6B/5a,EAAOxD,EAAWD,EAAO7kG,EAASynG,EAAOC,GAC3E,IAAIj0G,EAAW,IAAIqxG,EAAUD,EAAO7kG,GAChCsihB,EAAc7uhB,EAAS8uhB,GAAKt7a,QAAQnC,EAAU8ya,0BAA4BnkhB,EAAS+uhB,yBASvF,GARA/uhB,EAASgvhB,KAAOh7a,EAChBh0G,EAASivhB,GAAKh7a,EACdY,EAAMl4G,SAAWqD,EACjBA,EAASkvhB,KAAM,EACflvhB,EAASuM,QAAUA,EACfvM,EAASoxG,QAAU8D,IACnBl1G,EAASoxG,MAAQA,GAEhBy9a,EAqBD7uhB,EAAS+oF,MAAQq+b,EAAmBpnhB,EAAUoxG,EAAOpxG,EAAS+oF,YApB9D,GAAIjc,EAAW9sE,EAASmvhB,oBAAqB,CACzCnvhB,EAASovhB,KAAM,EACfpvhB,EAASmvhB,qBACT,IAAIjxV,EAAUl+L,EAASqvhB,IACvB,IAAKh8a,EAAO6qF,GAAU,CAClB,IAAIn1G,EAAQ/oF,EAAS+oF,MACrB,GAAIsqB,EAAOtqB,GACP/oF,EAAS+oF,MAAQm1G,OAGjB,IAAK,IAAItlM,KAAOslM,EACZn1G,EAAMnwF,GAAOslM,EAAQtlM,GAG7BoH,EAASqvhB,IAAM,KAEnBrvhB,EAASovhB,KAAM,EAOvB,OADApvhB,EAASwyG,IAAMi8a,GAAezuhB,EAAUoxG,EAAO7kG,GACxCvM,EAEX,SAASu1G,GAA0BV,EAAOtoG,GACtC,IAAI6kG,EAAQyD,EAAMzD,OAAS8D,EAC3B,OAAqB,MAAdL,EAAMV,MAAiCU,EAAMt/F,KAAKpE,OAAOigG,EAAOyD,EAAMhlD,IAAKtjD,GAAWsoG,EAAMt/F,KAAK67F,EAAO7kG,GAGnH,SAAS+ihB,GAAMz6a,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACvD,IAAIE,EAASU,EAAMV,OAAS,MAChB,IAARA,EACAo7a,GAAa16a,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAE5C,EAARE,EA6Fb,SAA6BU,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACrE,IAAIj0G,EAAW4uhB,GAA6B/5a,EAAOA,EAAMt/F,KAAMs/F,EAAMzD,OAAS8D,EAAW3oG,EAASynG,EAAOC,GACzGq7a,GAAMtvhB,EAASwyG,IAAKsC,EAAW90G,EAASo1G,IAAKpB,EAAOwkN,EAAUvkN,GAC9Du7a,GAA6B36a,EAAMhlD,IAAK7vD,EAAUi0G,GA/F9Cw7a,CAAoB56a,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAEnD,EAARE,IA+Fb,SAAkCU,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAC1Eq7a,GAAOz6a,EAAMl4G,SAAW0shB,EAAc9za,GAA0BV,EAAOtoG,IAAYuoG,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GA/FpHy7a,CAAyB76a,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACrE07a,GAAkC96a,EAAOZ,IAE5B,IAARE,GAAkC,GAARA,EAC/By7a,GAAU/6a,EAAOC,EAAW0jN,GAEf,KAARrkN,EAcb,SAAuBU,EAAOtoG,EAASuoG,EAAWd,EAAOwkN,EAAUvkN,GAC/D,IAAIt3G,EAAWk4G,EAAMl4G,SACjBu3G,EAAaW,EAAMX,WAGN,GAAbA,GAA8D,IAApBv3G,EAASzK,SACnDgiH,EAAaW,EAAMX,WAAa,EAChCv3G,EAAWk4G,EAAMl4G,SAAW2rhB,KAEb,IAAfp0a,EACAo7a,GAAM3yhB,EAAUm4G,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAGrD47a,GAAmBlzhB,EAAUm4G,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GA1BlE67a,CAAcj7a,EAAOtoG,EAASuoG,EAAWd,EAAOwkN,EAAUvkN,GAE7C,KAARE,GAKb,SAAqBU,EAAOtoG,EAASuoG,EAAW0jN,EAAUvkN,GACtDq7a,GAAMz6a,EAAMl4G,SAAUk4G,EAAMhlD,IAAKtjD,GAAS,EAAO,KAAM0nG,GACvD,IAAI87a,EAAmBzH,IACvBsH,GAAUG,EAAkBj7a,EAAW0jN,GACvC3jN,EAAMtB,IAAMw8a,EAAiBx8a,IARzBy8a,CAAYn7a,EAAOtoG,EAASuoG,EAAW0jN,EAAUvkN,GA0BzD,SAAS27a,GAAU/6a,EAAOC,EAAW0jN,GACjC,IAAIjlN,EAAOsB,EAAMtB,IAAMn/G,SAASmgH,eAAeM,EAAMl4G,UAChD02G,EAAOyB,IACR8xa,EAAe9xa,EAAWvB,EAAKilN,GAGvC,SAAS+2N,GAAa16a,EAAOC,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAC9D,IAAIE,EAAQU,EAAMV,MACd/C,EAAQyD,EAAMzD,MACdnxG,EAAY40G,EAAM50G,UAClBi0G,EAAaW,EAAMX,WACnBX,EAAOsB,EAAMtB,IA7oCrB,SAA+B6e,EAAKpe,GAChC,OAAIA,EACO5/G,SAASi+H,gBAAgB,6BAA8BD,GAE3Dh+H,SAAS4gC,cAAco9F,GAyoCP69Z,CAAsBp7a,EAAMt/F,KAAOy+F,EAAQA,IAAkB,GAARG,GAA+B,GACvGx3G,EAAWk4G,EAAMl4G,SASrB,GARK8ohB,EAAcxlhB,IAA4B,KAAdA,IACzB+zG,EACAT,EAAI7gH,aAAa,QAASuN,GAG1BszG,EAAItzG,UAAYA,GAGL,KAAfi0G,EACAsza,EAAej0a,EAAK52G,QAEnB,GAAmB,IAAfu3G,EAA2C,CAChD,IAAIg8a,EAAgBl8a,GAAwB,kBAAfa,EAAMt/F,KAChB,IAAf2+F,GACqB,MAAjBv3G,EAASw3G,QACTU,EAAMl4G,SAAWA,EAAW4rhB,EAAY5rhB,IAE5C2yhB,GAAM3yhB,EAAU42G,EAAKhnG,EAAS2jhB,EAAe,KAAMj8a,IAE/B,IAAfC,GAA0D,IAAfA,GAChD27a,GAAmBlzhB,EAAU42G,EAAKhnG,EAAS2jhB,EAAe,KAAMj8a,GAGnEZ,EAAOyB,IACR8xa,EAAe9xa,EAAWvB,EAAKilN,GAE9BnlN,EAAOjC,IACRm9a,GAAW15a,EAAOV,EAAO/C,EAAOmC,EAAKS,GAEzCi5a,GAASp4a,EAAMhlD,IAAK0jD,EAAKU,GAE7B,SAAS47a,GAAmBlzhB,EAAU42G,EAAKhnG,EAASynG,EAAOwkN,EAAUvkN,GACjE,IAAK,IAAIt2G,EAAI,EAAGA,EAAIhB,EAASzK,SAAUyL,EAAG,CACtC,IAAI+S,EAAQ/T,EAASgB,GACH,MAAd+S,EAAMyjG,QACNx3G,EAASgB,GAAK+S,EAAQ63gB,EAAY73gB,IAEtC4+gB,GAAM5+gB,EAAO6iG,EAAKhnG,EAASynG,EAAOwkN,EAAUvkN,IAgBpD,SAASu7a,GAA6B3/d,EAAK7vD,EAAUi0G,GACjDg5a,GAASp9d,EAAK7vD,EAAUi0G,GACpBnnC,EAAW9sE,EAASmwhB,oBACpBl8a,EAAUzhH,KARlB,SAAkCwN,GAC9B,OAAO,WACHA,EAASmwhB,qBAMMC,CAAyBpwhB,IAQhD,SAAS2vhB,GAAkC96a,EAAOZ,GAC9C,IAAIpkD,EAAMglD,EAAMhlD,IACX41d,EAAc51d,KACf+3d,EAAU/3d,EAAIi2d,qBAAsBjxa,EAAMzD,OAAS8D,GAC/CpoC,EAAWjd,EAAI81d,sBACf1xa,EAAUzhH,KAVtB,SAA+Bq9D,EAAKglD,GAChC,OAAO,WACHhlD,EAAI81d,oBAAoBpza,EAAiBsC,GAAO,GAAOA,EAAMzD,OAAS8D,IAQnDm7a,CAAsBxge,EAAKglD,KAiBtD,SAASy7a,GAAM7C,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACtE,IAAIu8a,EAAaD,EAAUp8a,OAAS,MAChCs5a,EAAUt5a,QAAUq8a,GAAa/C,EAAUl4gB,OAASg7gB,EAAUh7gB,MAAQk4gB,EAAU70hB,MAAQ23hB,EAAU33hB,KAAmB,KAAZ43hB,EACnF,MAAlB/C,EAAUt5a,MAftB,SAA4Bs5a,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOC,GACzEi5a,GAAQO,GACwD,KAA3D8C,EAAUp8a,MAAQs5a,EAAUt5a,MAAQ,OACrCm7a,GAAMiB,EAAW,KAAMhkhB,EAASynG,EAAO,KAAMC,GAttCrD,SAAsBa,EAAW27a,EAAQC,GACrC57a,EAAUC,aAAa07a,EAAQC,GAutC3B37a,CAAaD,EAAWy7a,EAAUh9a,IAAKk6a,EAAUl6a,OAGjD+7a,GAAMiB,EAAWz7a,EAAWvoG,EAASynG,EAAOzB,EAAiBk7a,GAAW,GAAOx5a,GAC/Eiza,EAAeuG,EAAW34a,IAOtB67a,CAAmBlD,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOC,GAIpEq7a,GAAMiB,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAGzC,IAAZu8a,EA8Eb,SAAsB/C,EAAW8C,EAAWhkhB,EAASynG,EAAOw8a,EAAWv8a,GACnE,IAKI63a,EALAv4a,EAAOg9a,EAAUh9a,IAAMk6a,EAAUl6a,IACjCq9a,EAAYnD,EAAUr8a,MACtBF,EAAYq/a,EAAUn/a,MACtBo9a,GAAgB,EAChBX,GAAqB,EAIzB,GAFA75a,EAAQA,IAAsB,GAAZw8a,GAAmC,EAEjDI,IAAc1/a,EAAW,CACzB,IAAI2/a,EAAmBD,GAAa17a,EAEpC,IADA42a,EAAmB56a,GAAagE,KACPA,EAKrB,IAAK,IAAImD,KAJTm2a,GAA6B,IAAZgC,GAAqC,KAElD3C,EAAqBd,GAAwBjB,IAEhCA,EAAkB,CAC/B,IAAIxoZ,EAAYutZ,EAAiBx4a,GAC7Bqva,EAAYoE,EAAiBzza,GAC7BirB,IAAcokZ,GACdkG,GAAUv1a,EAAMirB,EAAWokZ,EAAWn0a,EAAKS,EAAO65a,EAAoBJ,GAIlF,GAAIoD,IAAqB37a,EACrB,IAAK,IAAImxa,KAAUwK,EACXpL,EAAcqG,EAAiBzF,MAAaZ,EAAcoL,EAAiBxK,KAC3EuH,GAAUvH,EAAQwK,EAAiBxK,GAAS,KAAM9ya,EAAKS,EAAO65a,EAAoBJ,GAKlG,IAAIqD,EAAeP,EAAU5zhB,SACzBo0hB,EAAgBR,EAAUtwhB,UAE1BwthB,EAAUxthB,YAAc8whB,IACpBtL,EAAcsL,GACdx9a,EAAIqC,gBAAgB,SAEf5B,EACLT,EAAI7gH,aAAa,QAASq+hB,GAG1Bx9a,EAAItzG,UAAY8whB,GAGR,KAAZP,EA7FR,SAAsCj9a,EAAKu9a,GACnCv9a,EAAI7+G,cAAgBo8hB,IACpBv9a,EAAI7+G,YAAco8hB,GA4FlBE,CAA6Bz9a,EAAKu9a,GAGlCG,GAAcxD,EAAUv5a,WAAYq8a,EAAUr8a,WAAYu5a,EAAU9whB,SAAUm0hB,EAAcv9a,EAAKhnG,EAASynG,GAA4B,kBAAnBu8a,EAAUh7gB,KAA0B,KAAMk4gB,EAAWx5a,GAExKu6a,GACA/B,GAAe+D,EAAWD,EAAWh9a,EAAKu4a,GAAkB,EAAO+B,GAEvE,IAAIqD,EAAUX,EAAU1ge,IACpBshe,EAAU1D,EAAU59d,IACpBshe,IAAYD,IACZlE,GAAWmE,GACXlE,GAASiE,EAAS39a,EAAKU,IAzIvBm9a,CAAa3D,EAAW8C,EAAWhkhB,EAASynG,EAAOw8a,EAAWv8a,GAE7C,EAAZu8a,EA6Qb,SAA6B/C,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACpF,IAAIj0G,EAAYuwhB,EAAU5zhB,SAAW8whB,EAAU9whB,SAE/C,GAAI02G,EAAOrzG,GACP,OAEJA,EAASivhB,GAAKh7a,EACd,IAAI/C,EAAYq/a,EAAUn/a,OAAS8D,EAC/Bg8a,EAAUX,EAAU1ge,IACpBshe,EAAU1D,EAAU59d,IACpBshD,EAAYnxG,EAAS+oF,MACzB,IAAK/oF,EAAS8uhB,GAAI,CACd,GAAIhid,EAAW9sE,EAASqxhB,2BAA4B,CAIhD,GAHArxhB,EAASovhB,KAAM,EACfpvhB,EAASqxhB,0BAA0Bngb,EAAW3kG,GAE1CvM,EAASqthB,IACT,OAEJrthB,EAASovhB,KAAM,EAEd/7a,EAAOrzG,EAASqvhB,OACjBl+a,EAAYq1a,EAAYr1a,EAAWnxG,EAASqvhB,KAC5CrvhB,EAASqvhB,IAAM,MAGvBiC,GAAqBtxhB,EAAUmxG,EAAWD,EAAW4D,EAAWvoG,EAASynG,GAAO,EAAOwkN,EAAUvkN,GAC7Fk9a,IAAYD,IACZlE,GAAWmE,GACXlE,GAASiE,EAASlxhB,EAAUi0G,IAzS5Bs9a,CAAoB9D,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAE9D,EAAZu8a,EA0Sb,SAAkC/C,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACzF,IAAIxB,GAAe,EACfvB,EAAYq/a,EAAUn/a,OAAS8D,EAC/Bg8a,EAAUX,EAAU1ge,IACpB+ge,EAAYnD,EAAUr8a,MACtBogb,GAAoB/L,EAAcyL,GAClCO,EAAYhE,EAAU9whB,SACtB60hB,GAAoB1kd,EAAWokd,EAAQrL,2BACvCpza,EAAey+a,EAAQrL,wBAAwB+K,EAAW1/a,IAE9D,IAAqB,IAAjBuB,EAAwB,CACpB++a,GAAoB1kd,EAAWokd,EAAQlL,wBACvCkL,EAAQlL,sBAAsB4K,EAAW1/a,GAE7C,IAAIw9a,EAAYrF,EAAc9za,GAA0Bg7a,EAAWhkhB,IACnE+jhB,GAAMmB,EAAW/C,EAAW55a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACjEs8a,EAAU5zhB,SAAW+xhB,EACjB8C,GAAoB1kd,EAAWokd,EAAQtL,uBACvCsL,EAAQtL,qBAAqBgL,EAAW1/a,QAI5Cq/a,EAAU5zhB,SAAW80hB,EA/TrBC,CAAyBjE,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAEnE,GAAZu8a,EAgUb,SAAmB/C,EAAW8C,GAC1B,IAAI5iO,EAAW4iO,EAAU5zhB,SACrB42G,EAAOg9a,EAAUh9a,IAAMk6a,EAAUl6a,IACjCo6M,IAAa8/N,EAAU9whB,WACvB42G,EAAIkB,UAAYk5M,GAnUhBgkO,CAAUlE,EAAW8C,GAEJ,IAAZC,EACLD,EAAUh9a,IAAMk6a,EAAUl6a,IAET,KAAZi9a,EAsBb,SAAuB/C,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOC,GACpE,IAAI29a,EAAenE,EAAU9whB,SACzBm0hB,EAAeP,EAAU5zhB,SACzBk1hB,EAAiBpE,EAAUv5a,WAC3B49a,EAAiBvB,EAAUr8a,WAC3BskN,EAAW,KAGM,GAAjBs5N,GAAsE,IAAxBhB,EAAa5+hB,SAC3D4/hB,EAAiBvB,EAAUr8a,WAAa,EACxC48a,EAAeP,EAAU5zhB,SAAW2rhB,KAExC,IAAIyJ,EAA+D,KAA9B,EAAjBD,GACpB,GAAqB,GAAjBD,EAA4C,CAC5C,IAAIG,EAAUJ,EAAa1/hB,QAIT,EAAjB2/hB,GAA8D,EAAjBC,GAE1CC,IAEEA,GAAgBjB,EAAa5+hB,OAAS8/hB,KAExCx5N,EAAWjmN,EAAiBq/a,EAAaI,EAAU,IAAI,GAAO19a,aAGtE28a,GAAcY,EAAgBC,EAAgBF,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUi1N,EAAWx5a,GAhDtHg+a,CAAcxE,EAAW8C,EAAWz7a,EAAWvoG,EAASynG,EAAOC,GAkDvE,SAAqBw5a,EAAW8C,EAAWhkhB,EAAS0nG,GAChD,IAAIi+a,EAAgBzE,EAAU59d,IAC1Bsie,EAAgB5B,EAAU1ge,IAC1Bihe,EAAeP,EAAU5zhB,SAG7B,GAFAs0hB,GAAcxD,EAAUv5a,WAAYq8a,EAAUr8a,WAAYu5a,EAAU9whB,SAAUm0hB,EAAcoB,EAAe3lhB,GAAS,EAAO,KAAMkhhB,EAAWx5a,GAC5Is8a,EAAUh9a,IAAMk6a,EAAUl6a,IACtB2+a,IAAkBC,IAAkBpyJ,EAAU+wJ,GAAe,CAC7D,IAAIjpd,EAAOipd,EAAav9a,IACxBx0D,EAAYmze,EAAerqd,GAC3BuB,EAAY+od,EAAetqd,IAxD3Buqd,CAAY3E,EAAW8C,EAAWhkhB,EAAS0nG,GA+HnD,SAASg9a,GAAcY,EAAgBC,EAAgBF,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAU1kN,EAAaG,GACjI,OAAQ49a,GACJ,KAAK,EACD,OAAQC,GACJ,KAAK,EACDxB,GAAMsB,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACvE,MACJ,KAAK,EACD7gH,GAAOw+hB,EAAc98a,GACrB,MACJ,KAAK,GACDo4a,GAAQ0E,GACRpK,EAAe1ya,EAAWg8a,GAC1B,MACJ,SAnBhB,SAA2Cc,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOC,GAC9Fi5a,GAAQ0E,GACR/B,GAAmBiB,EAAch8a,EAAWvoG,EAASynG,EAAOzB,EAAiBq/a,GAAc,GAAO39a,GAClGiza,EAAe0K,EAAc98a,GAiBbu9a,CAAkCT,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOC,GAGjG,MACJ,KAAK,EACD,OAAQ69a,GACJ,KAAK,EACDxC,GAAMwB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACzD,MACJ,KAAK,EACD,MACJ,KAAK,GACDuza,EAAe1ya,EAAWg8a,GAC1B,MACJ,QACIjB,GAAmBiB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAG9E,MACJ,KAAK,GACD,OAAQ69a,GACJ,KAAK,IAhKrB,SAA8BF,EAAcd,EAAch8a,GAClD88a,IAAiBd,IACI,KAAjBc,EACA98a,EAAUH,WAAWF,UAAYq8a,EAGjCtJ,EAAe1ya,EAAWg8a,IA2JlBwB,CAAqBV,EAAcd,EAAch8a,GACjD,MACJ,KAAK,EACDw4a,GAASx4a,GACTw6a,GAAMwB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACzD,MACJ,KAAK,EACDq5a,GAASx4a,GACT,MACJ,QACIw4a,GAASx4a,GACT+6a,GAAmBiB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAG9E,MACJ,QACI,OAAQ69a,GACJ,KAAK,GACD3E,GAAmByE,GACnBpK,EAAe1ya,EAAWg8a,GAC1B,MACJ,KAAK,EACDvD,GAAkBz4a,EAAWhB,EAAa89a,GAC1CtC,GAAMwB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GACzD,MACJ,KAAK,EACDs5a,GAAkBz4a,EAAWhB,EAAa89a,GAC1C,MACJ,QACI,IAAIW,EAAmC,EAAtBX,EAAa1/hB,OAC1BsgiB,EAAmC,EAAtB1B,EAAa5+hB,OAEX,IAAfqgiB,EACIC,EAAa,GACb3C,GAAmBiB,EAAch8a,EAAWvoG,EAASynG,EAAOwkN,EAAUvkN,GAGtD,IAAfu+a,EACLjF,GAAkBz4a,EAAWhB,EAAa89a,GAElB,IAAnBE,GAAkE,IAAnBD,EA8I5E,SAA4Bx6e,EAAGC,EAAGi8D,EAAKhnG,EAASynG,EAAOmkD,EAASs6X,EAASC,EAAW5+a,EAAaG,GAC7F,IAKI0+a,EACAn6N,EANAo6N,EAAOz6X,EAAU,EACjB06X,EAAOJ,EAAU,EACjBt2c,EAAI,EACJ22c,EAAQz7e,EAAE8kC,GACV42c,EAAQz7e,EAAE6kC,GAKd23C,EAAO,CAEH,KAAOg/Z,EAAMl6hB,MAAQm6hB,EAAMn6hB,KAAK,CAO5B,GANkB,MAAdm6hB,EAAM5+a,QACN78D,EAAE6kC,GAAK42c,EAAQxK,EAAYwK,IAE/BzC,GAAMwC,EAAOC,EAAOx/a,EAAKhnG,EAASynG,EAAO0+a,EAAWz+a,GACpD58D,EAAE8kC,GAAK42c,IACL52c,EACMy2c,GAAQz2c,EAAI02c,EAChB,MAAM/+Z,EAEVg/Z,EAAQz7e,EAAE8kC,GACV42c,EAAQz7e,EAAE6kC,GAKd,IAHA22c,EAAQz7e,EAAEu7e,GACVG,EAAQz7e,EAAEu7e,GAEHC,EAAMl6hB,MAAQm6hB,EAAMn6hB,KAAK,CAQ5B,GAPkB,MAAdm6hB,EAAM5+a,QACN78D,EAAEu7e,GAAQE,EAAQxK,EAAYwK,IAElCzC,GAAMwC,EAAOC,EAAOx/a,EAAKhnG,EAASynG,EAAO0+a,EAAWz+a,GACpD58D,EAAEu7e,GAAQG,EAEVF,IACI12c,IAFJy2c,GAEgBz2c,EAAI02c,EAChB,MAAM/+Z,EAEVg/Z,EAAQz7e,EAAEu7e,GACVG,EAAQz7e,EAAEu7e,IAGlB,GAAI12c,EAAIy2c,GACJ,GAAIz2c,GAAK02c,EAGL,IADAr6N,GADAm6N,EAAUE,EAAO,GACIJ,EAAUlgb,EAAiBj7D,EAAEq7e,IAAU,GAAQD,EAC7Dv2c,GAAK02c,GAEU,OADlBE,EAAQz7e,EAAE6kC,IACAg4B,QACN78D,EAAE6kC,GAAK42c,EAAQxK,EAAYwK,MAE7B52c,EACFmzc,GAAMyD,EAAOx/a,EAAKhnG,EAASynG,EAAOwkN,EAAUvkN,QAInD,GAAI93B,EAAI02c,EACT,KAAO12c,GAAKy2c,GACRx/hB,GAAOikD,EAAE8kC,KAAMo3B,QAO3B,SAAmCl8D,EAAGC,EAAG/qC,EAAS4rJ,EAASs6X,EAASG,EAAMC,EAAM12c,EAAGo3B,EAAKS,EAAO0+a,EAAW5+a,EAAaG,GACnH,IAAI6+a,EACAC,EACAJ,EACAh1hB,EAAI,EACJq1hB,EAAS72c,EACT82c,EAAS92c,EACT+2c,EAAQN,EAAOz2c,EAAI,EACnBg3c,EAAQN,EAAO12c,EAAI,EACnBi3c,EAAU,IAAIC,WAAWF,EAAQ,GAEjCG,EAAwBJ,IAAU/6X,EAClC9tH,GAAQ,EACR6gC,EAAM,EACNqod,EAAU,EAEd,GAAId,EAAU,IAAMS,EAAQC,GAAS,GACjC,IAAKx1hB,EAAIq1hB,EAAQr1hB,GAAKi1hB,IAAQj1hB,EAE1B,GADAm1hB,EAAQz7e,EAAE15C,GACN41hB,EAAUJ,EAAO,CACjB,IAAKh3c,EAAI82c,EAAQ92c,GAAK02c,EAAM12c,IAExB,GADA42c,EAAQz7e,EAAE6kC,GACN22c,EAAMl6hB,MAAQm6hB,EAAMn6hB,IAAK,CAEzB,GADAw6hB,EAAQj3c,EAAI82c,GAAUt1hB,EAAI,EACtB21hB,EAEA,IADAA,GAAwB,EACjBN,EAASr1hB,GACZvK,GAAOikD,EAAE27e,KAAWz/a,GAGxBroC,EAAMiR,EACN9xC,GAAQ,EAGR6gC,EAAMiR,EAEQ,MAAd42c,EAAM5+a,QACN78D,EAAE6kC,GAAK42c,EAAQxK,EAAYwK,IAE/BzC,GAAMwC,EAAOC,EAAOx/a,EAAKhnG,EAASynG,EAAO0+a,EAAWz+a,KAClDs/a,EACF,OAGHD,GAAyBn3c,EAAI02c,GAC9Bz/hB,GAAO0/hB,EAAOv/a,QAGZ+/a,GACNlgiB,GAAO0/hB,EAAOv/a,OAIrB,CACD,IAAIg0V,EAAW,GAEf,IAAK5pc,EAAIs1hB,EAAQt1hB,GAAKk1hB,IAAQl1hB,EAC1B4pc,EAASjwZ,EAAE35C,GAAG/E,KAAO+E,EAGzB,IAAKA,EAAIq1hB,EAAQr1hB,GAAKi1hB,IAAQj1hB,EAE1B,GADAm1hB,EAAQz7e,EAAE15C,GACN41hB,EAAUJ,EAEV,QAAU,KADVh3c,EAAIorX,EAASurF,EAAMl6hB,MACD,CACd,GAAI06hB,EAEA,IADAA,GAAwB,EACjB31hB,EAAIq1hB,GACP5/hB,GAAOikD,EAAE27e,KAAWz/a,GAG5B6/a,EAAQj3c,EAAI82c,GAAUt1hB,EAAI,EACtButE,EAAMiR,EACN9xC,GAAQ,EAGR6gC,EAAMiR,EAGQ,OADlB42c,EAAQz7e,EAAE6kC,IACAg4B,QACN78D,EAAE6kC,GAAK42c,EAAQxK,EAAYwK,IAE/BzC,GAAMwC,EAAOC,EAAOx/a,EAAKhnG,EAASynG,EAAO0+a,EAAWz+a,KAClDs/a,OAEID,GACNlgiB,GAAO0/hB,EAAOv/a,QAGZ+/a,GACNlgiB,GAAO0/hB,EAAOv/a,GAK1B,GAAI+/a,EACA/F,GAAkBh6a,EAAKO,EAAaz8D,GACpCw4e,GAAmBv4e,EAAGi8D,EAAKhnG,EAASynG,EAAO0+a,EAAWz+a,QAErD,GAAI5pE,EAAO,CACZ,IAAImpf,EA2CZ,SAAuB/sa,GACnB,IAAIgta,EAAO,EACP91hB,EAAI,EACJw+E,EAAI,EACJ5yB,EAAI,EACJ62I,EAAI,EACJ3nJ,EAAI,EACJrrC,EAAI,EACJg8B,EAAMq9E,EAAIv0H,OACVk3C,EAAMsqf,KACNA,GAAStqf,EACT3oC,GAAS,IAAI4yhB,WAAWjqf,GACxB4/C,GAAI,IAAIqqc,WAAWjqf,IAEvB,KAAOzrC,EAAIyrC,IAAOzrC,EAEd,GAAa,KADb81hB,EAAOhta,EAAI9oH,IACK,CAEZ,GAAI8oH,EADJtqC,EAAI17E,GAAO8oD,IACEkqe,EAAM,CACfzqc,GAAErrF,GAAKw+E,EACP17E,KAAS8oD,GAAK5rD,EACd,SAIJ,IAFAyiM,EAAI,EACJ3nJ,EAAI8Q,EACG62I,EAAI3nJ,GAEHguE,EAAIhmH,GADR2M,EAAKgzL,EAAI3nJ,GAAM,IACMg7e,EACjBrzV,EAAIhzL,EAAI,EAGRqrC,EAAIrrC,EAGRqmhB,EAAOhta,EAAIhmH,GAAO2/L,MACdA,EAAI,IACJp3G,GAAErrF,GAAK8C,GAAO2/L,EAAI,IAEtB3/L,GAAO2/L,GAAKziM,GAIxByiM,EAAI72I,EAAI,EACR,IAAIiqe,EAAM,IAAIH,WAAWjzV,GACzB3nJ,EAAIh4C,GAAO2/L,EAAI,GACf,KAAOA,KAAM,GACTozV,EAAIpzV,GAAK3nJ,EACTA,EAAIuwC,GAAEvwC,GACNh4C,GAAO2/L,GAAK,EAEhB,OAAOozV,EA7FOG,CAAcP,GAExB,IADAj3c,EAAIq3c,EAAIthiB,OAAS,EACZyL,EAAIw1hB,EAAQ,EAAGx1hB,GAAK,EAAGA,IACL,IAAfy1hB,EAAQz1hB,IAGU,OADlBo1hB,EAAQz7e,EADR4zB,EAAMvtE,EAAIs1hB,IAEA9+a,QACN78D,EAAE4zB,GAAO6nd,EAAQxK,EAAYwK,IAGjCzD,GAAMyD,EAAOx/a,EAAKhnG,EAASynG,GAD3B2+a,EAAUznd,EAAM,GAC4Bund,EAAUlgb,EAAiBj7D,EAAEq7e,IAAU,GAAQD,EAAWz+a,IAEjG93B,EAAI,GAAKx+E,IAAM61hB,EAAIr3c,GAIxBgrc,EAFA4L,EAAQz7e,EADR4zB,EAAMvtE,EAAIs1hB,GAGU1/a,GADpBo/a,EAAUznd,EAAM,GACmBund,EAAUlgb,EAAiBj7D,EAAEq7e,IAAU,GAAQD,GAGlFv2c,SAIP,GAAIo3c,IAAYJ,EAGjB,IAAKx1hB,EAAIw1hB,EAAQ,EAAGx1hB,GAAK,EAAGA,IACL,IAAfy1hB,EAAQz1hB,KAGU,OADlBo1hB,EAAQz7e,EADR4zB,EAAMvtE,EAAIs1hB,IAEA9+a,QACN78D,EAAE4zB,GAAO6nd,EAAQxK,EAAYwK,IAGjCzD,GAAMyD,EAAOx/a,EAAKhnG,EAASynG,GAD3B2+a,EAAUznd,EAAM,GAC4Bund,EAAUlgb,EAAiBj7D,EAAEq7e,IAAU,GAAQD,EAAWz+a,IAzI9G2/a,CAA0Bv8e,EAAGC,EAAG/qC,EAAS4rJ,EAASs6X,EAASG,EAAMC,EAAM12c,EAAGo3B,EAAKS,EAAO0+a,EAAW5+a,EAAaG,GA5M9F4/a,CAAmBjC,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOu+a,EAAYC,EAAYh6N,EAAU1kN,EAAaG,GAgHjJ,SAA+B29a,EAAcd,EAAcv9a,EAAKhnG,EAASynG,EAAO8/a,EAAoBC,EAAoBv7N,EAAUvkN,GAK9H,IAJA,IAEI+/a,EACA5+V,EAHAynU,EAAei3B,EAAqBC,EAAqBA,EAAqBD,EAC9En2hB,EAAI,EAGDA,EAAIk/f,IAAgBl/f,EACvBq2hB,EAAYlD,EAAanzhB,GACzBy3L,EAAYw8V,EAAaj0hB,GACH,MAAlBq2hB,EAAU7/a,QACV6/a,EAAYlD,EAAanzhB,GAAK4qhB,EAAYyL,IAE9C1D,GAAMl7V,EAAW4+V,EAAWzgb,EAAKhnG,EAASynG,EAAOwkN,EAAUvkN,GAC3D29a,EAAaj0hB,GAAKq2hB,EAEtB,GAAIF,EAAqBC,EACrB,IAAKp2hB,EAAIk/f,EAAcl/f,EAAIo2hB,IAAsBp2hB,EAEvB,OADtBq2hB,EAAYlD,EAAanzhB,IACXw2G,QACV6/a,EAAYlD,EAAanzhB,GAAK4qhB,EAAYyL,IAE9C1E,GAAM0E,EAAWzgb,EAAKhnG,EAASynG,EAAOwkN,EAAUvkN,QAGnD,GAAI6/a,EAAqBC,EAC1B,IAAKp2hB,EAAIk/f,EAAcl/f,EAAIm2hB,IAAsBn2hB,EAC7CvK,GAAOw+hB,EAAaj0hB,GAAI41G,GAtIZ0gb,CAAsBrC,EAAcd,EAAch8a,EAAWvoG,EAASynG,EAAOu+a,EAAYC,EAAYh6N,EAAUvkN,KAYvI,SAASq9a,GAAqBtxhB,EAAUmxG,EAAWD,EAAW4D,EAAWvoG,EAASynG,EAAOp1C,EAAO45P,EAAUvkN,GACtG,IAAIigb,EAAYl0hB,EAAS+oF,MACrB6nc,EAAY5whB,EAASoxG,MACrBy9a,EAAar7a,QAAQxzG,EAAS8uhB,IAC9BqF,EAASrnd,EAAW9sE,EAASo0hB,uBAIjC,GAHIvF,IACA19a,EAAYi2a,EAAmBpnhB,EAAUkxG,EAAWC,IAAc+ib,EAAY1N,EAAY0N,EAAW/ib,GAAaA,IAElHvyC,IAAUu1d,GAAWA,GAAUn0hB,EAASo0hB,sBAAsBljb,EAAWC,EAAW5kG,GAAW,EAC1FsihB,GAAc/hd,EAAW9sE,EAASq0hB,sBACnCr0hB,EAASq0hB,oBAAoBnjb,EAAWC,EAAW5kG,GAEvDvM,EAASoxG,MAAQF,EACjBlxG,EAAS+oF,MAAQooB,EACjBnxG,EAASuM,QAAUA,EACnB,IAAI+nhB,EAAW,KACX5F,EAAYD,GAAezuhB,EAAUkxG,EAAW3kG,GAChDsihB,GAAc/hd,EAAW9sE,EAAS+uhB,2BAClCuF,EAAWt0hB,EAAS+uhB,wBAAwB6B,EAAWsD,IAE3D5D,GAAMtwhB,EAASwyG,IAAKk8a,EAAW55a,EAAW90G,EAASo1G,IAAKpB,EAAOwkN,EAAUvkN,GAEzEj0G,EAASwyG,IAAMk8a,EACX5hd,EAAW9sE,EAASu0hB,qBA5BhC,SAAyBv0hB,EAAU4whB,EAAWsD,EAAWI,EAAUrgb,GAC/DA,EAAUzhH,MAAK,WACXwN,EAASu0hB,mBAAmB3D,EAAWsD,EAAWI,MA2B9CE,CAAgBx0hB,EAAU4whB,EAAWsD,EAAWI,EAAUrgb,QAI9Dj0G,EAASoxG,MAAQF,EACjBlxG,EAAS+oF,MAAQooB,EACjBnxG,EAASuM,QAAUA,EA+S3B,IAAImnhB,GAAS,EAsGb,SAASvihB,GAAOiZ,EAAO0qF,EAAW10D,EAAU7zC,QACtB,IAAb6zC,IAAsBA,EAAW,WACrB,IAAZ7zC,IAAqBA,EAAU2oG,GAtCxC,SAAkB9qF,EAAO0qF,EAAW10D,EAAU7zC,GAC1C,IAAI0nG,EAAY,GACZwgb,EAAY3/a,EAAUqB,GAC1Bkxa,EAAY5ue,GAAI,EACZgte,EAAcgP,GACThP,EAAcr7f,KACG,MAAdA,EAAM+pF,QACN/pF,EAAQm+f,EAAYn+f,IAExBklgB,GAAMllgB,EAAO0qF,EAAWvoG,GAAS,EAAO,KAAM0nG,GAC9Ca,EAAUqB,GAAK/rF,EACfqqgB,EAAYrqgB,GAIZq7f,EAAcr7f,IACdh3B,GAAOqhiB,EAAW3/a,GAClBA,EAAUqB,GAAK,OAGG,MAAd/rF,EAAM+pF,QACN/pF,EAAQm+f,EAAYn+f,IAExBkmgB,GAAMmE,EAAWrqgB,EAAO0qF,EAAWvoG,GAAS,EAAO,KAAM0nG,GACzDwgb,EAAY3/a,EAAUqB,GAAK/rF,GAGnC08f,EAAQ7ya,GACRoza,EAAY5ue,GAAI,EACZq0B,EAAW1sB,IACXA,IAEA0sB,EAAW9gE,EAAQu7gB,iBACnBv7gB,EAAQu7gB,eAAekN,EAAW3/a,GAOtC4/a,CAAStqgB,EAAO0qF,EAAW10D,EAAU7zC,GAnDM,qBAAbnY,UAM1BijB,OAAO00P,OACPA,KAAK30Q,UAAU+yhB,IAAM,KACrBp+Q,KAAK30Q,UAAU++G,GAAK,MAsD5B,IAAIw+a,GAAQ,GACRtzZ,GAA8B,qBAAZtxF,QAChBA,QAAQ/tC,UAAUouC,KAAK/zC,KAAK0zC,QAAQ/tC,WACpC,SAAUq1C,GACRhgC,OAAO5iB,WAAW4iD,EAAG,IAEzBu9e,IAAmB,EACvB,SAASC,GAAkB50gB,EAAWgpE,EAAU7oC,EAAUwe,GACtD,IAAIs/H,EAAUj+K,EAAUovgB,IAIxB,GAHIvid,EAAWmc,KACXA,EAAWA,EAASi1G,EAAUsoV,EAAYvmgB,EAAU8oE,MAAOm1G,GAAWj+K,EAAU8oE,MAAO9oE,EAAUmxF,MAAOnxF,EAAU1T,UAElHk5gB,EAAcvnV,GACdj+K,EAAUovgB,IAAMpmc,OAGhB,IAAK,IAAI6rc,KAAY7rc,EACjBi1G,EAAQ42V,GAAY7rc,EAAS6rc,GAGrC,GAAK70gB,EAAUmvgB,IA4BNtid,EAAW1sB,IAChBngC,EAAUgvgB,GAAGz8hB,KAAK4tD,EAAS/jD,KAAK4jB,QA7BhB,CAChB,IAAKongB,EAAY5ue,GACQ,IAAjBk8e,GAAMziiB,OAKN,OAJA6iiB,GAAW90gB,EAAW2+C,QAClBkO,EAAW1sB,IACXA,EAAS/tD,KAAK4tB,IAe1B,IAVkC,IAA9B00gB,GAAM58hB,QAAQkoB,IACd00gB,GAAMniiB,KAAKytB,GAEX2+C,IACA3+C,EAAU+0gB,IAAK,GAEdJ,KACDA,IAAmB,EACnBvzZ,GAAS4zZ,KAETnod,EAAW1sB,GAAW,CACtB,IAAI80e,EAAKj1gB,EAAUk1gB,IACdD,IACDA,EAAKj1gB,EAAUk1gB,IAAM,IAEzBD,EAAG1iiB,KAAK4tD,KAOpB,SAASg1e,GAAsBn1gB,GAE3B,IADA,IAAIgxO,EAAQhxO,EAAUk1gB,IACbx3hB,EAAI,EAAGA,EAAIszP,EAAM/+P,SAAUyL,EAChCszP,EAAMtzP,GAAGtL,KAAK4tB,GAElBA,EAAUk1gB,IAAM,KAEpB,SAASF,KACL,IAAIh1gB,EAEJ,IADA20gB,IAAmB,EACX30gB,EAAY00gB,GAAM/8d,SACtB,IAAK33C,EAAUotgB,IAAK,CAChB,IAAIzud,EAAQ3+C,EAAU+0gB,GACtB/0gB,EAAU+0gB,IAAK,EACfD,GAAW90gB,EAAW2+C,GAClB3+C,EAAUk1gB,KACVC,GAAsBn1gB,IAKtC,SAAS80gB,GAAW90gB,EAAW2+C,GAC3B,GAAIA,IAAU3+C,EAAUmvgB,IAAK,CACzB,IAAIiG,EAAep1gB,EAAUovgB,IAC7BpvgB,EAAUovgB,IAAM,KAChB,IAAIp7a,EAAY,GAChBoza,EAAY5ue,GAAI,EAChB64e,GAAqBrxgB,EAAWumgB,EAAYvmgB,EAAU8oE,MAAOssc,GAAep1gB,EAAUmxF,MAAOmB,EAAiBtyF,EAAUuyF,KAAK,GAAMx2F,WAAYiE,EAAU1T,QAAS0T,EAAU+ugB,KAAMpwd,EAAO,KAAMq1C,GAC/L6ya,EAAQ7ya,GACRoza,EAAY5ue,GAAI,OAGhBx4B,EAAU8oE,MAAQ9oE,EAAUovgB,IAC5BpvgB,EAAUovgB,IAAM,KAGxB,IAAIh+a,GAAY,SAAmBD,EAAO7kG,GAEtC3a,KAAKm3F,MAAQ,KAEbn3F,KAAKw9hB,KAAM,EACXx9hB,KAAKs9hB,KAAM,EACXt9hB,KAAKy9hB,IAAM,KACXz9hB,KAAK4gH,IAAM,KACX5gH,KAAKy7hB,KAAM,EACXz7hB,KAAKwjH,IAAM,KACXxjH,KAAKujiB,IAAM,KACXvjiB,KAAKk9hB,IAAK,EACVl9hB,KAAKq9hB,GAAK,KACVr9hB,KAAKo9hB,MAAO,EACZp9hB,KAAKojiB,IAAK,EACVpjiB,KAAKw/G,MAAQA,GAAS8D,EACtBtjH,KAAK2a,QAAUA,GAAW2oG,GAE9B7D,GAAUj6G,UAAUm6c,YAAc,SAAsBnxZ,GAChDxuD,KAAKy7hB,KAITwH,GAAkBjjiB,KAAM,GAAIwuD,GAAU,IAE1CixD,GAAUj6G,UAAU+zI,SAAW,SAAmBliD,EAAU7oC,GACpDxuD,KAAKy7hB,KAGJz7hB,KAAKs9hB,KACN2F,GAAkBjjiB,KAAMq3F,EAAU7oC,GAAU,IAGpDixD,GAAUj6G,UAAU+Z,OAAS,SAAiBqgG,EAAYC,EAAY6jb,GAClE,OAAO,2BCvmEX,OAUA,SAAYppa,EAAQxhB,GAEnB,aAE6D,kBAAnB0hB,EAAO1qC,QAShD0qC,EAAO1qC,QAAUwqC,EAAO93H,SACvBs2G,EAASwhB,GAAQ,GACjB,SAAUmvB,GACT,IAAMA,EAAEjnJ,SACP,MAAM,IAAI6yC,MAAO,4CAElB,OAAOyjE,EAAS2wC,IAGlB3wC,EAASwhB,GAtBX,CA0BuB,qBAAX70G,OAAyBA,OAASzlB,MAAM,SAAUylB,EAAQk+gB,GAMtE,aAEA,IAAI9ua,EAAM,GAEN+ua,EAAW98hB,OAAO60E,eAElBl2E,EAAQovH,EAAIpvH,MAEZo+hB,EAAOhva,EAAIgva,KAAO,SAAUxrf,GAC/B,OAAOw8E,EAAIgva,KAAKpjiB,KAAM43C,IACnB,SAAUA,GACb,OAAOw8E,EAAIj5F,OAAO5V,MAAO,GAAIqyB,IAI1Bz3C,EAAOi0H,EAAIj0H,KAEXuF,EAAU0uH,EAAI1uH,QAEd00E,EAAa,GAEbpsE,EAAWosE,EAAWpsE,SAEtBqsE,EAASD,EAAW/D,eAEpBgtd,EAAahpd,EAAOrsE,SAEpBs1hB,EAAuBD,EAAWrjiB,KAAMqG,QAExC+wS,EAAU,GAEV38N,EAAa,SAAqBxN,GASpC,MAAsB,oBAARA,GAA8C,kBAAjBA,EAAIsN,UAC1B,oBAAbtN,EAAIxtE,MAIV+6E,EAAW,SAAmBvN,GAChC,OAAc,MAAPA,GAAeA,IAAQA,EAAIjoD,QAIhCjjB,EAAWijB,EAAOjjB,SAIjBwhiB,EAA4B,CAC/BrghB,MAAM,EACNi+C,KAAK,EACLqie,OAAO,EACPC,UAAU,GAGX,SAASC,EAAS5gY,EAAMttF,EAAMkB,GAG7B,IAAIprE,EAAGgY,EACN49C,GAHDwV,EAAMA,GAAO30E,GAGC4gC,cAAe,UAG7B,GADAu+B,EAAOh/D,KAAO4gK,EACTttF,EACJ,IAAMlqE,KAAKi4hB,GAYVjghB,EAAMkyD,EAAMlqE,IAAOkqE,EAAKjsE,cAAgBisE,EAAKjsE,aAAc+B,KAE1D41D,EAAO7gE,aAAciL,EAAGgY,GAI3BozD,EAAIopD,KAAK/oD,YAAa7V,GAASv3C,WAAW+iC,YAAawU,GAIzD,SAASyie,EAAQ12d,GAChB,OAAY,MAAPA,EACGA,EAAM,GAIQ,kBAARA,GAAmC,oBAARA,EACxCmN,EAAYpsE,EAAShO,KAAMitE,KAAW,gBAC/BA,EAQT,IAAIo7D,EAAU,QAEbu7Z,EAAc,SAGd3gP,EAAS,SAATA,EAAmBn6R,EAAU5O,GAI5B,OAAO,IAAI+oS,EAAO9pR,GAAGrgB,KAAMgQ,EAAU5O,IA8XvC,SAAS2phB,EAAa52d,GAMrB,IAAIptE,IAAWotE,GAAO,WAAYA,GAAOA,EAAIptE,OAC5CqjB,EAAOyghB,EAAQ12d,GAEhB,OAAKwN,EAAYxN,KAASuN,EAAUvN,KAIpB,UAAT/pD,GAA+B,IAAXrjB,GACR,kBAAXA,GAAuBA,EAAS,GAAOA,EAAS,KAAOotE,GAIhE,SAASmpL,EAAUjqH,EAAMp/H,GAExB,OAAOo/H,EAAKiqH,UAAYjqH,EAAKiqH,SAAS5zN,gBAAkBz1B,EAAKy1B,cA/Y9DygR,EAAO9pR,GAAK8pR,EAAOl+S,UAAY,CAG9B28B,OAAQ2mG,EAERt6H,YAAak1S,EAGbpjT,OAAQ,EAERw5N,QAAS,WACR,OAAOr0N,EAAMhF,KAAMT,OAKpB6f,IAAK,SAAU+mC,GAGd,OAAY,MAAPA,EACGnhD,EAAMhF,KAAMT,MAIb4mD,EAAM,EAAI5mD,KAAM4mD,EAAM5mD,KAAKM,QAAWN,KAAM4mD,IAKpD29e,UAAW,SAAUC,GAGpB,IAAIh5Z,EAAMk4K,EAAOzmJ,MAAOj9J,KAAKwO,cAAeg2hB,GAM5C,OAHAh5Z,EAAIi5Z,WAAazkiB,KAGVwrI,GAIR/wH,KAAM,SAAU+zC,GACf,OAAOk1P,EAAOjpS,KAAMza,KAAMwuD,IAG3BtoD,IAAK,SAAUsoD,GACd,OAAOxuD,KAAKukiB,UAAW7gP,EAAOx9S,IAAKlG,MAAM,SAAU4sI,EAAM7gI,GACxD,OAAOyiD,EAAS/tD,KAAMmsI,EAAM7gI,EAAG6gI,QAIjCnnI,MAAO,WACN,OAAOzF,KAAKukiB,UAAW9+hB,EAAMugB,MAAOhmB,KAAM+H,aAG3CiiE,MAAO,WACN,OAAOhqE,KAAK4nD,GAAI,IAGjB00E,KAAM,WACL,OAAOt8H,KAAK4nD,IAAK,IAGlB88e,KAAM,WACL,OAAO1kiB,KAAKukiB,UAAW7gP,EAAO33D,KAAM/rP,MAAM,SAAU2kiB,EAAO54hB,GAC1D,OAASA,EAAI,GAAM,OAIrB64hB,IAAK,WACJ,OAAO5kiB,KAAKukiB,UAAW7gP,EAAO33D,KAAM/rP,MAAM,SAAU2kiB,EAAO54hB,GAC1D,OAAOA,EAAI,OAIb67C,GAAI,SAAU77C,GACb,IAAIyrC,EAAMx3C,KAAKM,OACdiqF,GAAKx+E,GAAMA,EAAI,EAAIyrC,EAAM,GAC1B,OAAOx3C,KAAKukiB,UAAWh6c,GAAK,GAAKA,EAAI/yC,EAAM,CAAEx3C,KAAMuqF,IAAQ,KAG5Dn3D,IAAK,WACJ,OAAOpzB,KAAKykiB,YAAczkiB,KAAKwO,eAKhC5N,KAAMA,EACN4kD,KAAMqvE,EAAIrvE,KACVj2C,OAAQslH,EAAItlH,QAGbm0S,EAAO56S,OAAS46S,EAAO9pR,GAAG9wB,OAAS,WAClC,IAAIsR,EAAS5M,EAAMo0D,EAAKvQ,EAAMgqB,EAAaC,EAC1C10E,EAASmB,UAAW,IAAO,GAC3BgE,EAAI,EACJzL,EAASyH,UAAUzH,OACnBi7E,GAAO,EAsBR,IAnBuB,mBAAX30E,IACX20E,EAAO30E,EAGPA,EAASmB,UAAWgE,IAAO,GAC3BA,KAIsB,kBAAXnF,GAAwBs0E,EAAYt0E,KAC/CA,EAAS,IAILmF,IAAMzL,IACVsG,EAAS5G,KACT+L,KAGOA,EAAIzL,EAAQyL,IAGnB,GAAqC,OAA9BqO,EAAUrS,UAAWgE,IAG3B,IAAMyB,KAAQ4M,EACbi3C,EAAOj3C,EAAS5M,GAIF,cAATA,GAAwB5G,IAAWyqD,IAKnCkqB,GAAQlqB,IAAUqyP,EAAO3oO,cAAe1pB,KAC1CgqB,EAAc91E,MAAMi2E,QAASnqB,MAC/BuQ,EAAMh7D,EAAQ4G,GAIb8tE,EADID,IAAgB91E,MAAMi2E,QAAS5Z,GAC3B,GACIyZ,GAAgBqoO,EAAO3oO,cAAenZ,GAG1CA,EAFA,GAITyZ,GAAc,EAGdz0E,EAAQ4G,GAASk2S,EAAO56S,OAAQyyE,EAAMD,EAAOjqB,SAGzBj5C,IAATi5C,IACXzqD,EAAQ4G,GAAS6jD,IAOrB,OAAOzqD,GAGR88S,EAAO56S,OAAQ,CAGd+7hB,QAAS,UAAa/7Z,EAAUnjH,KAAK+5D,UAAWh3B,QAAS,MAAO,IAGhE8gc,SAAS,EAET9pc,MAAO,SAAUsf,GAChB,MAAM,IAAI3pB,MAAO2pB,IAGlBgzJ,KAAM,aAENj3I,cAAe,SAAUrN,GACxB,IAAI0P,EAAO+oT,EAIX,SAAMz4T,GAAgC,oBAAzBj/D,EAAShO,KAAMitE,QAI5B0P,EAAQwmd,EAAUl2d,KASK,oBADvBy4T,EAAOrrT,EAAOr6E,KAAM28E,EAAO,gBAAmBA,EAAM5uE,cACfs1hB,EAAWrjiB,KAAM0lY,KAAW49J,IAGlEn4e,cAAe,SAAU8hB,GACxB,IAAIlgE,EAEJ,IAAMA,KAAQkgE,EACb,OAAO,EAER,OAAO,GAKRo3d,WAAY,SAAUvhY,EAAMnpJ,EAAS+8D,GACpCgtd,EAAS5gY,EAAM,CAAE0gY,MAAO7phB,GAAWA,EAAQ6phB,OAAS9sd,IAGrD18D,KAAM,SAAUizD,EAAKlf,GACpB,IAAIluD,EAAQyL,EAAI,EAEhB,GAAKu4hB,EAAa52d,GAEjB,IADAptE,EAASotE,EAAIptE,OACLyL,EAAIzL,IACqC,IAA3CkuD,EAAS/tD,KAAMitE,EAAK3hE,GAAKA,EAAG2hE,EAAK3hE,IADnBA,UAMpB,IAAMA,KAAK2hE,EACV,IAAgD,IAA3Clf,EAAS/tD,KAAMitE,EAAK3hE,GAAKA,EAAG2hE,EAAK3hE,IACrC,MAKH,OAAO2hE,GAKR/qE,KAAM,SAAUiqI,GACf,IAAI32D,EACHu1D,EAAM,GACNz/H,EAAI,EACJivE,EAAW4xD,EAAK5xD,SAEjB,GAAMA,EAQC,IAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAC/C,OAAO4xD,EAAK9pI,YACN,GAAkB,IAAbk4E,GAA+B,IAAbA,EAC7B,OAAO4xD,EAAK/pB,eARZ,KAAU5sC,EAAO22D,EAAM7gI,MAGtBy/H,GAAOk4K,EAAO/gT,KAAMszE,GAUtB,OAAOu1D,GAIRu5Z,UAAW,SAAUlwa,EAAKvmH,GACzB,IAAIk9H,EAAMl9H,GAAW,GAarB,OAXY,MAAPumH,IACCyva,EAAax9hB,OAAQ+tH,IACzB6uL,EAAOzmJ,MAAOzxB,EACE,kBAAR3W,EACN,CAAEA,GAAQA,GAGZj0H,EAAKH,KAAM+qI,EAAK3W,IAIX2W,GAGRw5Z,QAAS,SAAUp4Z,EAAM/X,EAAK9oH,GAC7B,OAAc,MAAP8oH,GAAe,EAAI1uH,EAAQ1F,KAAMo0H,EAAK+X,EAAM7gI,IAGpDk5hB,SAAU,SAAUr4Z,GACnB,IAAImtG,EAAYntG,GAAQA,EAAKs4Z,aAC5B18f,EAAUokG,IAAUA,EAAKjM,eAAiBiM,GAAOnkG,gBAIlD,OAAQ47f,EAAYnhgB,KAAM62M,GAAavxM,GAAWA,EAAQquN,UAAY,SAKvE55F,MAAO,SAAUjzF,EAAOu6L,GAKvB,IAJA,IAAI/sN,GAAO+sN,EAAOjkQ,OACjBiqF,EAAI,EACJx+E,EAAIi+D,EAAM1pE,OAEHiqF,EAAI/yC,EAAK+yC,IAChBvgB,EAAOj+D,KAAQw4P,EAAQh6K,GAKxB,OAFAvgB,EAAM1pE,OAASyL,EAERi+D,GAGR+hL,KAAM,SAAUy4S,EAAOh2e,EAAUmzM,GAShC,IARA,IACC5oK,EAAU,GACVhtF,EAAI,EACJzL,EAASkkiB,EAAMlkiB,OACf6kiB,GAAkBxjS,EAIX51P,EAAIzL,EAAQyL,KACAyiD,EAAUg2e,EAAOz4hB,GAAKA,KAChBo5hB,GACxBpsc,EAAQn4F,KAAM4jiB,EAAOz4hB,IAIvB,OAAOgtF,GAIR7yF,IAAK,SAAUs+hB,EAAOh2e,EAAUz/B,GAC/B,IAAIzuB,EAAQsB,EACXmK,EAAI,EACJy/H,EAAM,GAGP,GAAK84Z,EAAaE,GAEjB,IADAlkiB,EAASkkiB,EAAMlkiB,OACPyL,EAAIzL,EAAQyL,IAGL,OAFdnK,EAAQ4sD,EAAUg2e,EAAOz4hB,GAAKA,EAAGgjB,KAGhCy8G,EAAI5qI,KAAMgB,QAMZ,IAAMmK,KAAKy4hB,EAGI,OAFd5iiB,EAAQ4sD,EAAUg2e,EAAOz4hB,GAAKA,EAAGgjB,KAGhCy8G,EAAI5qI,KAAMgB,GAMb,OAAOiiiB,EAAMr4Z,IAIdvnG,KAAM,EAIN4zQ,QAASA,IAGa,oBAAX99K,SACX2pL,EAAO9pR,GAAImgG,OAAOmiB,UAAarnB,EAAKkF,OAAOmiB,WAI5CwnK,EAAOjpS,KAAM,uEAAuEhN,MAAO,MAC1F,SAAUkiH,EAAIniH,GACbqtE,EAAY,WAAartE,EAAO,KAAQA,EAAKy1B,iBA0B/C,IAAImV,EAAMy8E,EAAIz8E,IAGVoN,EAAOqvE,EAAIrvE,KAGXj2C,EAASslH,EAAItlH,OAGb61hB,EAAa,sBAGbC,EAAW,IAAIr8e,OAClB,uEACA,KAOD06P,EAAO3kS,SAAW,SAAU0mC,EAAGC,GAC9B,IAAI4/e,EAAM5/e,GAAKA,EAAEt7B,WAEjB,OAAOq7B,IAAM6/e,MAAWA,GAAwB,IAAjBA,EAAItqd,YAIlCv1B,EAAE1mC,SACD0mC,EAAE1mC,SAAUumhB,GACZ7/e,EAAEggP,yBAA8D,GAAnChgP,EAAEggP,wBAAyB6/P,MAS3D,IAAIC,EAAa,+CAEjB,SAASC,EAAYttc,EAAIutc,GACxB,OAAKA,EAGQ,OAAPvtc,EACG,SAIDA,EAAGzyF,MAAO,GAAI,GAAM,KAAOyyF,EAAG9mC,WAAY8mC,EAAG53F,OAAS,GAAImO,SAAU,IAAO,IAI5E,KAAOypF,EAGfwrN,EAAOgiP,eAAiB,SAAU54W,GACjC,OAASA,EAAM,IAAKpkI,QAAS68e,EAAYC,IAM1C,IAAIG,EAAenjiB,EAClBojiB,EAAahliB,GAEd,WAEA,IAAImL,EACH85hB,EACAC,EACAC,EACAC,EAIAxjiB,EACAimC,EACAw9f,EACAC,EACAntc,EAPAn4F,EAAOgliB,EAUPf,EAAUnhP,EAAOmhP,QACjBsB,EAAU,EACV/sgB,EAAO,EACPgtgB,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAyBH,KACzBI,EAAY,SAAUhhf,EAAGC,GAIxB,OAHKD,IAAMC,IACVsgf,GAAe,GAET,GAGRU,EAAW,6HAMXlxP,EAAa,oFAIbnsK,EAAa,2BAA4BmsK,EAAa,OAAS4vP,EAG9D,gBAAkBA,EAGlB,2DAA6D5vP,EAAa,OAC1E4vP,EAAa,OAEduB,EAAU,KAAOnxP,EAAP,wFAOoBnsK,EAPpB,eAcVu9Z,EAAc,IAAI59e,OAAQo8e,EAAa,IAAK,KAE5CyB,EAAS,IAAI79e,OAAQ,8CACrB89e,EAAqB,IAAI99e,OAAQ,wEAEjC+9e,EAAW,IAAI/9e,OAAQo8e,EAAa,MAEpC4B,EAAU,IAAIh+e,OAAQ29e,GACtBM,EAAc,IAAIj+e,OAAQ,IAAMwsP,EAAa,KAE7C0xP,EAAY,CACXC,GAAI,IAAIn+e,OAAQ,MAAQwsP,EAAa,KACrC4xP,MAAO,IAAIp+e,OAAQ,QAAUwsP,EAAa,KAC1C6xP,IAAK,IAAIr+e,OAAQ,KAAOwsP,EAAa,SACrC8xP,KAAM,IAAIt+e,OAAQ,IAAMqgF,GACxBk+Z,OAAQ,IAAIv+e,OAAQ,IAAM29e,GAC1Ba,MAAO,IAAIx+e,OACV,4LAEoD,KACrDwlD,KAAM,IAAIxlD,OAAQ,OAAS09e,EAAW,KAAM,KAI5Ce,aAAc,IAAIz+e,OAAQ,6IAE6B,MAGxD0+e,EAAU,sCACVC,EAAU,SAGVC,EAAa,mCAEbC,EAAW,OAIXC,EAAY,IAAI9+e,OAAQ,8DACC,KACzB++e,EAAY,SAAUj8Z,EAAQk8Z,GAC7B,IAAIC,EAAO,KAAOn8Z,EAAOrmI,MAAO,GAAM,MAEtC,OAAKuiiB,IAUEC,EAAO,EACbpie,OAAOsmE,aAAc87Z,EAAO,OAC5Bpie,OAAOsmE,aAAc87Z,GAAQ,GAAK,MAAe,KAAPA,EAAe,SAO3DC,EAAgB,WACfj9X,MAGDk9X,EAAqBC,IACpB,SAAUx7Z,GACT,OAAyB,IAAlBA,EAAKxhI,UAAqByrP,EAAUjqH,EAAM,cAElD,CAAE6gB,IAAK,aAAcnvG,KAAM,WAa7B,IACC19C,EAAKolB,MACF6uG,EAAMpvH,EAAMhF,KAAMkliB,EAAa/ib,YACjC+ib,EAAa/ib,YAMdiS,EAAK8wa,EAAa/ib,WAAWtiH,QAAS06E,SACrC,MAAQx6E,IACTI,EAAO,CACNolB,MAAO,SAAUpf,EAAQu5H,GACxByla,EAAW5/gB,MAAOpf,EAAQnB,EAAMhF,KAAM0/H,KAEvC1/H,KAAM,SAAUmG,GACfg/hB,EAAW5/gB,MAAOpf,EAAQnB,EAAMhF,KAAMsH,UAAW,MAKpD,SAASsU,EAAMkN,EAAU5O,EAASrM,EAASq6Q,GAC1C,IAAIlxN,EAAG1rD,EAAG6gI,EAAMy7Z,EAAK1mhB,EAAOsK,EAAQq8gB,EACnC9nE,EAAa7ld,GAAWA,EAAQgmH,cAGhC3lD,EAAWrgE,EAAUA,EAAQqgE,SAAW,EAKzC,GAHA1sE,EAAUA,GAAW,GAGI,kBAAbib,IAA0BA,GACxB,IAAbyxD,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,OAAO1sE,EAIR,IAAMq6Q,IACL19G,GAAatwJ,GACbA,EAAUA,GAAWnY,EAEhByjiB,GAAiB,CAIrB,GAAkB,KAAbjrd,IAAqBr5D,EAAQimhB,EAAWr5hB,KAAMgb,IAGlD,GAAOkuC,EAAI91C,EAAO,IAGjB,GAAkB,IAAbq5D,EAAiB,CACrB,KAAO4xD,EAAOjyH,EAAQlY,eAAgBg1D,IASrC,OAAOnpD,EALP,GAAKs+H,EAAK3iI,KAAOwtD,EAEhB,OADA72D,EAAKH,KAAM6N,EAASs+H,GACbt+H,OAWT,GAAKkyd,IAAgB5zV,EAAO4zV,EAAW/9d,eAAgBg1D,KACtDp7C,EAAK0C,SAAUpE,EAASiyH,IACxBA,EAAK3iI,KAAOwtD,EAGZ,OADA72D,EAAKH,KAAM6N,EAASs+H,GACbt+H,MAKH,IAAKqT,EAAO,GAElB,OADA/gB,EAAKolB,MAAO1X,EAASqM,EAAQ2nB,qBAAsB/Y,IAC5Cjb,EAGD,IAAOmpD,EAAI91C,EAAO,KAAShH,EAAQmwC,uBAEzC,OADAlqD,EAAKolB,MAAO1X,EAASqM,EAAQmwC,uBAAwB2M,IAC9CnpD,EAKT,IAAMk4hB,EAAwBj9gB,EAAW,QACrC28gB,IAAcA,EAAUhjgB,KAAM3Z,IAAe,CAYhD,GAVA++gB,EAAc/+gB,EACdi3c,EAAa7ld,EASK,IAAbqgE,IACF+rd,EAAS7jgB,KAAM3Z,IAAcu9gB,EAAmB5jgB,KAAM3Z,IAAe,CAyBvE,KAtBAi3c,EAAaqnE,EAAS3kgB,KAAM3Z,IAAcg/gB,GAAa5thB,EAAQyP,aAC9DzP,IAQkBA,GAAYk9R,EAAQ/xI,SAG/BuiY,EAAM1thB,EAAQ3Q,aAAc,OAClCq+hB,EAAM3kP,EAAOgiP,eAAgB2C,GAE7B1thB,EAAQ7Z,aAAc,KAAQuniB,EAAMxD,IAMtC94hB,GADAkgB,EAASu8gB,GAAUj/gB,IACRjpB,OACHyL,KACPkgB,EAAQlgB,IAAQs8hB,EAAM,IAAMA,EAAM,UAAa,IAC9CI,GAAYx8gB,EAAQlgB,IAEtBu8hB,EAAcr8gB,EAAOhb,KAAM,KAG5B,IAIC,OAHArQ,EAAKolB,MAAO1X,EACXkyd,EAAW96d,iBAAkB4iiB,IAEvBh6hB,EACN,MAAQo6hB,GACTlC,EAAwBj9gB,GAAU,GANnC,QAQM8+gB,IAAQxD,GACZlqhB,EAAQqpG,gBAAiB,QAQ9B,OAAOl2G,GAAQyb,EAASm/B,QAAS28e,EAAU,MAAQ1qhB,EAASrM,EAASq6Q,GAStE,SAAS09Q,KACR,IAAIt/hB,EAAO,GAaX,OAXA,SAAS44C,EAAO34C,EAAKpF,GASpB,OALKmF,EAAKnG,KAAMoG,EAAM,KAAQ6+hB,EAAK8C,oBAG3Bhpf,EAAO54C,EAAKi/D,SAEXrmB,EAAO34C,EAAM,KAAQpF,GAShC,SAASgniB,GAAchvgB,GAEtB,OADAA,EAAIirgB,IAAY,EACTjrgB,EAOR,SAAS+oO,GAAQ/oO,GAChB,IAAIpxB,EAAKhG,EAAS4gC,cAAe,YAEjC,IACC,QAASxJ,EAAIpxB,GACZ,MAAQhI,IACT,OAAO,EAHR,QAOMgI,EAAG4hB,YACP5hB,EAAG4hB,WAAW+iC,YAAa3kD,GAI5BA,EAAK,MAQP,SAASqgiB,GAAmBllhB,GAC3B,OAAO,SAAUipH,GAChB,OAAOiqH,EAAUjqH,EAAM,UAAaA,EAAKjpH,OAASA,GAQpD,SAASmlhB,GAAoBnlhB,GAC5B,OAAO,SAAUipH,GAChB,OAASiqH,EAAUjqH,EAAM,UAAaiqH,EAAUjqH,EAAM,YACrDA,EAAKjpH,OAASA,GAQjB,SAASolhB,GAAsB39hB,GAG9B,OAAO,SAAUwhI,GAKhB,MAAK,SAAUA,EASTA,EAAKxiH,aAAgC,IAAlBwiH,EAAKxhI,SAGvB,UAAWwhI,EACV,UAAWA,EAAKxiH,WACbwiH,EAAKxiH,WAAWhf,WAAaA,EAE7BwhI,EAAKxhI,WAAaA,EAMpBwhI,EAAKgsN,aAAextV,GAG1BwhI,EAAKgsN,cAAgBxtV,GACpB+8hB,EAAoBv7Z,KAAWxhI,EAG3BwhI,EAAKxhI,WAAaA,EAKd,UAAWwhI,GACfA,EAAKxhI,WAAaA,GAY5B,SAAS49hB,GAAwBpvgB,GAChC,OAAOgvgB,IAAc,SAAUnwT,GAE9B,OADAA,GAAYA,EACLmwT,IAAc,SAAUjgR,EAAM5vL,GAMpC,IALA,IAAIxO,EACH0+c,EAAervgB,EAAI,GAAI+uP,EAAKroR,OAAQm4O,GACpC1sO,EAAIk9hB,EAAa3oiB,OAGVyL,KACF48Q,EAAQp+L,EAAI0+c,EAAcl9hB,MAC9B48Q,EAAMp+L,KAASwO,EAASxO,GAAMo+L,EAAMp+L,WAYzC,SAASg+c,GAAa5thB,GACrB,OAAOA,GAAmD,qBAAjCA,EAAQ2nB,sBAAwC3nB,EAQ1E,SAASswJ,GAAah1F,GACrB,IAAIizd,EACH/xd,EAAMlB,EAAOA,EAAK0qD,eAAiB1qD,EAAO0vd,EAO3C,OAAKxud,GAAO30E,GAA6B,IAAjB20E,EAAI6D,UAAmB7D,EAAI1uC,iBAMnDA,GADAjmC,EAAW20E,GACgB1uC,gBAC3Bw9f,GAAkBviP,EAAOuhP,SAAUziiB,GAInCu2F,EAAUtwD,EAAgBswD,SACzBtwD,EAAgB03M,uBAChB13M,EAAgBw3M,kBAQZ0lT,GAAgBnjiB,IAClB0miB,EAAY1miB,EAAS6uM,cAAiB63V,EAAUpwhB,MAAQowhB,GAG1DA,EAAUxoiB,iBAAkB,SAAUwniB,GAOvCrwP,EAAQsxP,QAAUxmS,IAAQ,SAAUn6P,GAEnC,OADAigC,EAAgB+uC,YAAahvE,GAAKyB,GAAKy5S,EAAOmhP,SACtCriiB,EAAS4miB,oBACf5miB,EAAS4miB,kBAAmB1lP,EAAOmhP,SAAUvkiB,UAMhDu3S,EAAQwxP,kBAAoB1mS,IAAQ,SAAUn6P,GAC7C,OAAOuwF,EAAQt4F,KAAM+H,EAAI,QAK1BqvS,EAAQ/xI,MAAQ68F,IAAQ,WACvB,OAAOngQ,EAASkD,iBAAkB,aAYnCmyS,EAAQyxP,OAAS3mS,IAAQ,WACxB,IAEC,OADAngQ,EAASo3E,cAAe,oBACjB,EACN,MAAQp5E,IACT,OAAO,MAKJq3S,EAAQsxP,SACZtD,EAAKjgiB,OAAOuhiB,GAAK,SAAUl9hB,GAC1B,IAAIs/hB,EAASt/hB,EAAGy+C,QAASo/e,EAAWC,GACpC,OAAO,SAAUn7Z,GAChB,OAAOA,EAAK5iI,aAAc,QAAWu/hB,IAGvC1D,EAAKxphB,KAAK8qhB,GAAK,SAAUl9hB,EAAI0Q,GAC5B,GAAuC,qBAA3BA,EAAQlY,gBAAkCwjiB,EAAiB,CACtE,IAAIr5Z,EAAOjyH,EAAQlY,eAAgBwH,GACnC,OAAO2iI,EAAO,CAAEA,GAAS,OAI3Bi5Z,EAAKjgiB,OAAOuhiB,GAAM,SAAUl9hB,GAC3B,IAAIs/hB,EAASt/hB,EAAGy+C,QAASo/e,EAAWC,GACpC,OAAO,SAAUn7Z,GAChB,IAAI32D,EAAwC,qBAA1B22D,EAAK48Z,kBACtB58Z,EAAK48Z,iBAAkB,MACxB,OAAOvzd,GAAQA,EAAKr0E,QAAU2niB,IAMhC1D,EAAKxphB,KAAK8qhB,GAAK,SAAUl9hB,EAAI0Q,GAC5B,GAAuC,qBAA3BA,EAAQlY,gBAAkCwjiB,EAAiB,CACtE,IAAIhwd,EAAMlqE,EAAGy4hB,EACZ53Z,EAAOjyH,EAAQlY,eAAgBwH,GAEhC,GAAK2iI,EAAO,CAIX,IADA32D,EAAO22D,EAAK48Z,iBAAkB,QACjBvzd,EAAKr0E,QAAUqI,EAC3B,MAAO,CAAE2iI,GAMV,IAFA43Z,EAAQ7phB,EAAQyuhB,kBAAmBn/hB,GACnC8B,EAAI,EACM6gI,EAAO43Z,EAAOz4hB,MAEvB,IADAkqE,EAAO22D,EAAK48Z,iBAAkB,QACjBvzd,EAAKr0E,QAAUqI,EAC3B,MAAO,CAAE2iI,GAKZ,MAAO,MAMVi5Z,EAAKxphB,KAAKgrhB,IAAM,SAAU7ma,EAAK7lH,GAC9B,MAA6C,qBAAjCA,EAAQ2nB,qBACZ3nB,EAAQ2nB,qBAAsBk+F,GAI9B7lH,EAAQjV,iBAAkB86H,IAKnCqla,EAAKxphB,KAAK+qhB,MAAQ,SAAU/4hB,EAAWsM,GACtC,GAA+C,qBAAnCA,EAAQmwC,wBAA0Cm7e,EAC7D,OAAOtrhB,EAAQmwC,uBAAwBz8C,IASzC63hB,EAAY,GAIZvjS,IAAQ,SAAUn6P,GAEjB,IAAIgwB,EAEJiQ,EAAgB+uC,YAAahvE,GAAK+3D,UACjC,UAAYske,EAAZ,iDACiBA,EADjB,oEAMKr8hB,EAAG9C,iBAAkB,cAAepF,QACzC4liB,EAAUtliB,KAAM,mCAAoC8liB,EAAW,KAI1Dl+hB,EAAG9C,iBAAkB,QAAUm/hB,EAAU,MAAOvkiB,QACrD4liB,EAAUtliB,KAAM,MAMX4H,EAAG9C,iBAAkB,KAAOm/hB,EAAU,MAAOvkiB,QAClD4liB,EAAUtliB,KAAM,YAOX4H,EAAG9C,iBAAkB,YAAapF,QACvC4liB,EAAUtliB,KAAM,aAKjB43B,EAAQh2B,EAAS4gC,cAAe,UAC1BtiC,aAAc,OAAQ,UAC5B0H,EAAGgvE,YAAah/C,GAAQ13B,aAAc,OAAQ,KAQ9C2nC,EAAgB+uC,YAAahvE,GAAK4C,UAAW,EACM,IAA9C5C,EAAG9C,iBAAkB,aAAcpF,QACvC4liB,EAAUtliB,KAAM,WAAY,cAQ7B43B,EAAQh2B,EAAS4gC,cAAe,UAC1BtiC,aAAc,OAAQ,IAC5B0H,EAAGgvE,YAAah/C,GACVhwB,EAAG9C,iBAAkB,aAAcpF,QACxC4liB,EAAUtliB,KAAM,sFAKZi3S,EAAQyxP,QAQbpD,EAAUtliB,KAAM,QAGjBsliB,EAAYA,EAAU5liB,QAAU,IAAI0oD,OAAQk9e,EAAUj1hB,KAAM,MAM5Dw1hB,EAAY,SAAUhhf,EAAGC,GAGxB,GAAKD,IAAMC,EAEV,OADAsgf,GAAe,EACR,EAIR,IAAIxue,GAAW/R,EAAEggP,yBAA2B//O,EAAE+/O,wBAC9C,OAAKjuO,IAgBU,GAPfA,GAAY/R,EAAEk7E,eAAiBl7E,KAASC,EAAEi7E,eAAiBj7E,GAC1DD,EAAEggP,wBAAyB//O,GAG3B,KAIGmyP,EAAQ4xP,cAAgB/jf,EAAE+/O,wBAAyBhgP,KAAQ+R,EAOzD/R,IAAMjjD,GAAYijD,EAAEk7E,eAAiBgla,GACzCtphB,EAAK0C,SAAU4mhB,EAAclgf,IACrB,EAOJC,IAAMljD,GAAYkjD,EAAEi7E,eAAiBgla,GACzCtphB,EAAK0C,SAAU4mhB,EAAcjgf,GACtB,EAIDqgf,EACJ5/hB,EAAQ1F,KAAMsliB,EAAWtgf,GAAMt/C,EAAQ1F,KAAMsliB,EAAWrgf,GAC1D,EAGe,EAAV8R,GAAe,EAAI,IAGpBh1D,GAlSCA,EAu7BT,IAAMuJ,KAlpBNsQ,EAAK08E,QAAU,SAAUhD,EAAMlrC,GAC9B,OAAOxuC,EAAM05E,EAAM,KAAM,KAAMlrC,IAGhCxuC,EAAK0jO,gBAAkB,SAAUnzG,EAAM72C,GAGtC,GAFAk1E,GAAar+B,GAERq5Z,IACHO,EAAwBzwc,EAAO,QAC7Bmwc,IAAcA,EAAUhjgB,KAAM6yD,IAEjC,IACC,IAAIy1C,EAAMzyC,EAAQt4F,KAAMmsI,EAAM72C,GAG9B,GAAKy1C,GAAOqsK,EAAQwxP,mBAIlBz8Z,EAAKpqI,UAAuC,KAA3BoqI,EAAKpqI,SAASw4E,SAChC,OAAOwwD,EAEP,MAAQhrI,IACTgmiB,EAAwBzwc,GAAM,GAIhC,OAAO15E,EAAM05E,EAAMvzF,EAAU,KAAM,CAAEoqI,IAAStsI,OAAS,GAGxD+b,EAAK0C,SAAW,SAAUpE,EAASiyH,GAUlC,OAHOjyH,EAAQgmH,eAAiBhmH,IAAanY,GAC5CyoK,GAAatwJ,GAEP+oS,EAAO3kS,SAAUpE,EAASiyH,IAIlCvwH,EAAKuD,KAAO,SAAUgtH,EAAMp/H,IAOpBo/H,EAAKjM,eAAiBiM,IAAUpqI,GACtCyoK,GAAar+B,GAGd,IAAIhzG,EAAKisgB,EAAK6D,WAAYl8hB,EAAKy1B,eAG9Blf,EAAM6V,GAAMkhD,EAAOr6E,KAAMoliB,EAAK6D,WAAYl8hB,EAAKy1B,eAC9CrJ,EAAIgzG,EAAMp/H,GAAOy4hB,QACjB7thB,EAEF,YAAaA,IAAR2L,EACGA,EAGD6oH,EAAK5iI,aAAcwD,IAG3B6O,EAAKqjC,MAAQ,SAAUsf,GACtB,MAAM,IAAI3pB,MAAO,0CAA4C2pB,IAO9D0kP,EAAOimP,WAAa,SAAUr7hB,GAC7B,IAAIs+H,EACHg9Z,EAAa,GACbr/c,EAAI,EACJx+E,EAAI,EAWL,GAJAi6hB,GAAgBnuP,EAAQgyP,WACxB9D,GAAaluP,EAAQgyP,YAAcpkiB,EAAMhF,KAAM6N,EAAS,GACxDk3C,EAAK/kD,KAAM6N,EAASm4hB,GAEfT,EAAe,CACnB,KAAUp5Z,EAAOt+H,EAASvC,MACpB6gI,IAASt+H,EAASvC,KACtBw+E,EAAIq/c,EAAWhpiB,KAAMmL,IAGvB,KAAQw+E,KACPh7E,EAAO9O,KAAM6N,EAASs7hB,EAAYr/c,GAAK,GAQzC,OAFAw7c,EAAY,KAELz3hB,GAGRo1S,EAAO9pR,GAAG+vgB,WAAa,WACtB,OAAO3piB,KAAKukiB,UAAW7gP,EAAOimP,WAAYlkiB,EAAMugB,MAAOhmB,SAGxD6liB,EAAOniP,EAAO3tN,KAAO,CAGpB4yc,YAAa,GAEbmB,aAAclB,GAEdjnhB,MAAOulhB,EAEPwC,WAAY,GAEZrthB,KAAM,GAEN0thB,SAAU,CACT,IAAK,CAAEt8Y,IAAK,aAAczjF,OAAO,GACjC,IAAK,CAAEyjF,IAAK,cACZ,IAAK,CAAEA,IAAK,kBAAmBzjF,OAAO,GACtC,IAAK,CAAEyjF,IAAK,oBAGbu8Y,UAAW,CACV1C,KAAM,SAAU3lhB,GAWf,OAVAA,EAAO,GAAMA,EAAO,GAAI+mC,QAASo/e,EAAWC,GAG5CpmhB,EAAO,IAAQA,EAAO,IAAOA,EAAO,IAAOA,EAAO,IAAO,IACvD+mC,QAASo/e,EAAWC,GAEF,OAAfpmhB,EAAO,KACXA,EAAO,GAAM,IAAMA,EAAO,GAAM,KAG1BA,EAAMlc,MAAO,EAAG,IAGxB+hiB,MAAO,SAAU7lhB,GAkChB,OAtBAA,EAAO,GAAMA,EAAO,GAAIshB,cAEU,QAA7BthB,EAAO,GAAIlc,MAAO,EAAG,IAGnBkc,EAAO,IACZtF,EAAKqjC,MAAO/9B,EAAO,IAKpBA,EAAO,KAASA,EAAO,GACtBA,EAAO,IAAQA,EAAO,IAAO,GAC7B,GAAqB,SAAfA,EAAO,IAAiC,QAAfA,EAAO,KAEvCA,EAAO,KAAWA,EAAO,GAAMA,EAAO,IAAwB,QAAfA,EAAO,KAG3CA,EAAO,IAClBtF,EAAKqjC,MAAO/9B,EAAO,IAGbA,GAGR4lhB,OAAQ,SAAU5lhB,GACjB,IAAIsohB,EACHC,GAAYvohB,EAAO,IAAOA,EAAO,GAElC,OAAKulhB,EAAUM,MAAMtkgB,KAAMvhB,EAAO,IAC1B,MAIHA,EAAO,GACXA,EAAO,GAAMA,EAAO,IAAOA,EAAO,IAAO,GAG9BuohB,GAAYlD,EAAQ9jgB,KAAMgngB,KAGnCD,EAASzB,GAAU0B,GAAU,MAG7BD,EAASC,EAAS/jiB,QAAS,IAAK+jiB,EAAS5piB,OAAS2piB,GAAWC,EAAS5piB,UAGxEqhB,EAAO,GAAMA,EAAO,GAAIlc,MAAO,EAAGwkiB,GAClCtohB,EAAO,GAAMuohB,EAASzkiB,MAAO,EAAGwkiB,IAI1BtohB,EAAMlc,MAAO,EAAG,MAIzBG,OAAQ,CAEPyhiB,IAAK,SAAU8C,GACd,IAAIC,EAAmBD,EAAiBzhf,QAASo/e,EAAWC,GAAY9kgB,cACxE,MAA4B,MAArBkngB,EACN,WACC,OAAO,GAER,SAAUv9Z,GACT,OAAOiqH,EAAUjqH,EAAMw9Z,KAI1BhD,MAAO,SAAU/4hB,GAChB,IAAI2mG,EAAUoxb,EAAY/3hB,EAAY,KAEtC,OAAO2mG,IACJA,EAAU,IAAIhsD,OAAQ,0BAA2B36C,EAClD,IAAM+2hB,EAAa,SACpBgB,EAAY/3hB,GAAW,SAAUu+H,GAChC,OAAO53B,EAAQ9xE,KACY,kBAAnB0pG,EAAKv+H,WAA0Bu+H,EAAKv+H,WACb,qBAAtBu+H,EAAK5iI,cACX4iI,EAAK5iI,aAAc,UACpB,QAKLs9hB,KAAM,SAAU95hB,EAAM02E,EAAU0sN,GAC/B,OAAO,SAAUhkK,GAChB,IAAI/9H,EAASwN,EAAKuD,KAAMgtH,EAAMp/H,GAE9B,OAAe,MAAVqB,EACgB,OAAbq1E,GAEFA,IAINr1E,GAAU,GAEQ,MAAbq1E,EACGr1E,IAAW+hS,EAED,OAAb1sN,EACGr1E,IAAW+hS,EAED,OAAb1sN,EACG0sN,GAAqC,IAA5B/hS,EAAO1I,QAASyqS,GAEf,OAAb1sN,EACG0sN,GAAS/hS,EAAO1I,QAASyqS,IAAW,EAE1B,OAAb1sN,EACG0sN,GAAS/hS,EAAOpJ,OAAQmrS,EAAMtwS,UAAaswS,EAEjC,OAAb1sN,GACK,IAAMr1E,EAAO65C,QAASk+e,EAAa,KAAQ,KAClDzgiB,QAASyqS,IAAW,EAEL,OAAb1sN,IACGr1E,IAAW+hS,GAAS/hS,EAAOpJ,MAAO,EAAGmrS,EAAMtwS,OAAS,KAAQswS,EAAQ,QAO9E42P,MAAO,SAAU7jhB,EAAMokN,EAAMsiU,EAAWrge,EAAOsyD,GAC9C,IAAI7L,EAAgC,QAAvB9sG,EAAKle,MAAO,EAAG,GAC3B2vf,EAA+B,SAArBzxe,EAAKle,OAAQ,GACvB6kiB,EAAkB,YAATviU,EAEV,OAAiB,IAAV/9J,GAAwB,IAATsyD,EAGrB,SAAUsQ,GACT,QAASA,EAAKxiH,YAGf,SAAUwiH,EAAM35F,EAAUunN,GACzB,IAAI76M,EAAO4qf,EAAYt0d,EAAMi8Z,EAAWr2d,EACvC4xI,EAAMh9B,IAAW2kY,EAAU,cAAgB,kBAC3C3pf,EAASmhI,EAAKxiH,WACd5c,EAAO88hB,GAAU19Z,EAAKiqH,SAAS5zN,cAC/BungB,GAAYhwS,IAAQ8vS,EACpBzkf,GAAO,EAER,GAAKp6C,EAAS,CAGb,GAAKglH,EAAS,CACb,KAAQg9B,GAAM,CAEb,IADAx3E,EAAO22D,EACG32D,EAAOA,EAAMw3E,IACtB,GAAK68Y,EACJzzS,EAAU5gL,EAAMzoE,GACE,IAAlByoE,EAAK+E,SAEL,OAAO,EAKTn/D,EAAQ4xI,EAAe,SAAT9pI,IAAoB9H,GAAS,cAE5C,OAAO,EAMR,GAHAA,EAAQ,CAAEu5e,EAAU3pf,EAAOs3G,WAAat3G,EAAO+3L,WAG1C4xT,GAAWo1C,GASf,IAHA3kf,GADAqsb,GADAvyb,GADA4qf,EAAa9+hB,EAAQo5hB,KAAep5hB,EAAQo5hB,GAAY,KACpClhhB,IAAU,IACX,KAAQwihB,GAAWxmf,EAAO,KACzBA,EAAO,GAC3Bs2B,EAAOi8Z,GAAazme,EAAOm3G,WAAYsvX,GAE7Bj8Z,IAASi8Z,GAAaj8Z,GAAQA,EAAMw3E,KAG3C5nG,EAAOqsb,EAAY,IAAOr2d,EAAMu8B,OAGlC,GAAuB,IAAlB69B,EAAK+E,YAAoBn1B,GAAQowB,IAAS22D,EAAO,CACrD29Z,EAAY5mhB,GAAS,CAAEwihB,EAASj0D,EAAWrsb,GAC3C,YAgBF,GATK2kf,IAIJ3kf,EADAqsb,GADAvyb,GADA4qf,EAAa39Z,EAAMi4Z,KAAej4Z,EAAMi4Z,GAAY,KAChClhhB,IAAU,IACX,KAAQwihB,GAAWxmf,EAAO,KAMhC,IAATkG,EAGJ,MAAUowB,IAASi8Z,GAAaj8Z,GAAQA,EAAMw3E,KAC3C5nG,EAAOqsb,EAAY,IAAOr2d,EAAMu8B,WAE3Bkyf,EACNzzS,EAAU5gL,EAAMzoE,GACE,IAAlByoE,EAAK+E,cACHn1B,IAGG2kf,KACJD,EAAat0d,EAAM4ud,KAChB5ud,EAAM4ud,GAAY,KACTlhhB,GAAS,CAAEwihB,EAAStgf,IAG5BowB,IAAS22D,MAUlB,OADA/mF,GAAQy2E,KACQtyD,GAAWnkB,EAAOmkB,IAAU,GAAKnkB,EAAOmkB,GAAS,KAKrEu9d,OAAQ,SAAUkD,EAAQhyT,GAMzB,IAAIjyN,EACHoT,EAAKisgB,EAAKc,QAAS8D,IAAY5E,EAAK6E,WAAYD,EAAOxngB,gBACtD5mB,EAAKqjC,MAAO,uBAAyB+qf,GAKvC,OAAK7wgB,EAAIirgB,GACDjrgB,EAAI6+M,GAIP7+M,EAAGt5B,OAAS,GAChBkmB,EAAO,CAAEikhB,EAAQA,EAAQ,GAAIhyT,GACtBotT,EAAK6E,WAAW5zd,eAAgB2zd,EAAOxngB,eAC7C2lgB,IAAc,SAAUjgR,EAAM5vL,GAI7B,IAHA,IAAIg0E,EACH/0E,EAAUp+D,EAAI+uP,EAAMlwC,GACpB1sO,EAAIisF,EAAQ13F,OACLyL,KAEP48Q,EADA57G,EAAM5mK,EAAQ1F,KAAMkoR,EAAM3wL,EAASjsF,OAClBgtF,EAASg0E,GAAQ/0E,EAASjsF,OAG7C,SAAU6gI,GACT,OAAOhzG,EAAIgzG,EAAM,EAAGpmH,KAIhBoT,IAIT+sgB,QAAS,CAGRvwS,IAAKwyS,IAAc,SAAUr/gB,GAK5B,IAAIiP,EAAQ,GACXlqB,EAAU,GACVqlH,EAAU2tJ,GAAS/3P,EAASm/B,QAAS28e,EAAU,OAEhD,OAAO1xa,EAASkxa,GACf+D,IAAc,SAAUjgR,EAAM5vL,EAAS9lD,EAAUunN,GAMhD,IALA,IAAI5tH,EACH+9Z,EAAYh3a,EAASg1J,EAAM,KAAMnuB,EAAK,IACtCzuP,EAAI48Q,EAAKroR,OAGFyL,MACA6gI,EAAO+9Z,EAAW5+hB,MACxB48Q,EAAM58Q,KAASgtF,EAAShtF,GAAM6gI,OAIjC,SAAUA,EAAM35F,EAAUunN,GAOzB,OANAhiO,EAAO,GAAMo0G,EACbjZ,EAASn7F,EAAO,KAAMgiO,EAAKlsP,GAI3BkqB,EAAO,GAAM,MACLlqB,EAAQ8pC,UAInBve,IAAK+ugB,IAAc,SAAUr/gB,GAC5B,OAAO,SAAUqjH,GAChB,OAAOvwH,EAAMkN,EAAUqjH,GAAOtsI,OAAS,MAIzCye,SAAU6phB,IAAc,SAAUjmiB,GAEjC,OADAA,EAAOA,EAAK+lD,QAASo/e,EAAWC,GACzB,SAAUn7Z,GAChB,OAASA,EAAK9pI,aAAe4gT,EAAO/gT,KAAMiqI,IAASzmI,QAASxD,IAAU,MAWxEkkI,KAAM+ha,IAAc,SAAU/ha,GAO7B,OAJMoga,EAAY/jgB,KAAM2jG,GAAQ,KAC/BxqH,EAAKqjC,MAAO,qBAAuBmnF,GAEpCA,EAAOA,EAAKn+E,QAASo/e,EAAWC,GAAY9kgB,cACrC,SAAU2pG,GAChB,IAAIg+Z,EACJ,GACC,GAAOA,EAAW3E,EACjBr5Z,EAAK/F,KACL+F,EAAK5iI,aAAc,aAAgB4iI,EAAK5iI,aAAc,QAGtD,OADA4giB,EAAWA,EAAS3ngB,iBACA4jG,GAA2C,IAAnC+ja,EAASzkiB,QAAS0gI,EAAO,YAE3C+F,EAAOA,EAAKxiH,aAAkC,IAAlBwiH,EAAK5xD,UAC7C,OAAO,MAKTp0E,OAAQ,SAAUgmI,GACjB,IAAIvjD,EAAO5jE,EAAOua,UAAYva,EAAOua,SAASqpD,KAC9C,OAAOA,GAAQA,EAAK5jF,MAAO,KAAQmnI,EAAK3iI,IAGzC6G,KAAM,SAAU87H,GACf,OAAOA,IAASnkG,GAGjB1nC,MAAO,SAAU6rI,GAChB,OAAOA,IAvoCV,WACC,IACC,OAAOpqI,EAASkF,cACf,MAAQghI,KAooCQmia,IACfroiB,EAASkwI,eACL9F,EAAKjpH,MAAQipH,EAAK7sE,OAAS6sE,EAAKkS,WAItCx1G,QAASy/f,IAAsB,GAC/B39hB,SAAU29hB,IAAsB,GAEhCjiQ,QAAS,SAAUl6J,GAIlB,OAASiqH,EAAUjqH,EAAM,YAAeA,EAAKk6J,SAC1CjwC,EAAUjqH,EAAM,aAAgBA,EAAK3/G,UAGzCA,SAAU,SAAU2/G,GAWnB,OALKA,EAAKxiH,YAETwiH,EAAKxiH,WAAWqE,eAGQ,IAAlBm+G,EAAK3/G,UAIbw9C,MAAO,SAAUmiE,GAMhB,IAAMA,EAAOA,EAAK7pB,WAAY6pB,EAAMA,EAAOA,EAAKlqB,YAC/C,GAAKkqB,EAAK5xD,SAAW,EACpB,OAAO,EAGT,OAAO,GAGRvvE,OAAQ,SAAUmhI,GACjB,OAAQi5Z,EAAKc,QAAQl8d,MAAOmiE,IAI7B/oG,OAAQ,SAAU+oG,GACjB,OAAO+6Z,EAAQzkgB,KAAM0pG,EAAKiqH,WAG3Br+N,MAAO,SAAUo0G,GAChB,OAAO86Z,EAAQxkgB,KAAM0pG,EAAKiqH,WAG3B10P,OAAQ,SAAUyqI,GACjB,OAAOiqH,EAAUjqH,EAAM,UAA2B,WAAdA,EAAKjpH,MACxCkzO,EAAUjqH,EAAM,WAGlBjqI,KAAM,SAAUiqI,GACf,IAAIhtH,EACJ,OAAOi3O,EAAUjqH,EAAM,UAA2B,SAAdA,EAAKjpH,OAKI,OAAxC/D,EAAOgtH,EAAK5iI,aAAc,UACN,SAAvB4V,EAAKqjB,gBAIR+mC,MAAOg/d,IAAwB,WAC9B,MAAO,CAAE,MAGV1sa,KAAM0sa,IAAwB,SAAU8B,EAAexqiB,GACtD,MAAO,CAAEA,EAAS,MAGnBsnD,GAAIohf,IAAwB,SAAU8B,EAAexqiB,EAAQm4O,GAC5D,MAAO,CAAEA,EAAW,EAAIA,EAAWn4O,EAASm4O,MAG7CisT,KAAMsE,IAAwB,SAAUC,EAAc3oiB,GAErD,IADA,IAAIyL,EAAI,EACAA,EAAIzL,EAAQyL,GAAK,EACxBk9hB,EAAaroiB,KAAMmL,GAEpB,OAAOk9hB,KAGRrE,IAAKoE,IAAwB,SAAUC,EAAc3oiB,GAEpD,IADA,IAAIyL,EAAI,EACAA,EAAIzL,EAAQyL,GAAK,EACxBk9hB,EAAaroiB,KAAMmL,GAEpB,OAAOk9hB,KAGRp/O,GAAIm/O,IAAwB,SAAUC,EAAc3oiB,EAAQm4O,GAC3D,IAAI1sO,EAUJ,IAPCA,EADI0sO,EAAW,EACXA,EAAWn4O,EACJm4O,EAAWn4O,EAClBA,EAEAm4O,IAGK1sO,GAAK,GACdk9hB,EAAaroiB,KAAMmL,GAEpB,OAAOk9hB,KAGR8B,GAAI/B,IAAwB,SAAUC,EAAc3oiB,EAAQm4O,GAE3D,IADA,IAAI1sO,EAAI0sO,EAAW,EAAIA,EAAWn4O,EAASm4O,IACjC1sO,EAAIzL,GACb2oiB,EAAaroiB,KAAMmL,GAEpB,OAAOk9hB,OAKVpD,EAAKc,QAAQqE,IAAMnF,EAAKc,QAAQ/+e,GAGrB,CAAEqjf,OAAO,EAAMC,UAAU,EAAMrzd,MAAM,EAAM+rI,UAAU,EAAMp7G,OAAO,GAC5Eq9b,EAAKc,QAAS56hB,GAAM88hB,GAAmB98hB,GAExC,IAAMA,IAAK,CAAEo/hB,QAAQ,EAAM5vgB,OAAO,GACjCsqgB,EAAKc,QAAS56hB,GAAM+8hB,GAAoB/8hB,GAIzC,SAAS2+hB,MAIT,SAASlC,GAAUj/gB,EAAU6hhB,GAC5B,IAAIpzc,EAASr2E,EAAOgoE,EAAQhmE,EAC3B0nhB,EAAOp/gB,EAAQq/gB,EACfC,EAASjF,EAAY/8gB,EAAW,KAEjC,GAAKgihB,EACJ,OAAOH,EAAY,EAAIG,EAAO9liB,MAAO,GAOtC,IAJA4liB,EAAQ9hhB,EACR0C,EAAS,GACTq/gB,EAAazF,EAAKmE,UAEVqB,GAAQ,CA2Bf,IAAM1nhB,KAxBAq0E,KAAar2E,EAAQklhB,EAAOt4hB,KAAM88hB,MAClC1phB,IAGJ0phB,EAAQA,EAAM5liB,MAAOkc,EAAO,GAAIrhB,SAAY+qiB,GAE7Cp/gB,EAAOrrB,KAAQ+oF,EAAS,KAGzBqO,GAAU,GAGHr2E,EAAQmlhB,EAAmBv4hB,KAAM88hB,MACvCrzc,EAAUr2E,EAAMqkD,QAChB2jB,EAAO/oF,KAAM,CACZgB,MAAOo2F,EAGPr0E,KAAMhC,EAAO,GAAI+mC,QAAS28e,EAAU,OAErCgG,EAAQA,EAAM5liB,MAAOuyF,EAAQ13F,SAIhBuliB,EAAKjgiB,SACX+b,EAAQulhB,EAAWvjhB,GAAOpV,KAAM88hB,KAAgBC,EAAY3nhB,MAChEhC,EAAQ2phB,EAAY3nhB,GAAQhC,MAC9Bq2E,EAAUr2E,EAAMqkD,QAChB2jB,EAAO/oF,KAAM,CACZgB,MAAOo2F,EACPr0E,KAAMA,EACNo1E,QAASp3E,IAEV0phB,EAAQA,EAAM5liB,MAAOuyF,EAAQ13F,SAI/B,IAAM03F,EACL,MAOF,OAAKozc,EACGC,EAAM/qiB,OAGP+qiB,EACNhvhB,EAAKqjC,MAAOn2B,GAGZ+8gB,EAAY/8gB,EAAU0C,GAASxmB,MAAO,GAGxC,SAASgjiB,GAAY9+c,GAIpB,IAHA,IAAI59E,EAAI,EACPyrC,EAAMmyC,EAAOrpF,OACbipB,EAAW,GACJxd,EAAIyrC,EAAKzrC,IAChBwd,GAAYogE,EAAQ59E,GAAInK,MAEzB,OAAO2nB,EAGR,SAAS6+gB,GAAez0a,EAAS63a,EAAY9ja,GAC5C,IAAI+lB,EAAM+9Y,EAAW/9Y,IACpBznG,EAAOwlf,EAAWltf,KAClBt3C,EAAMg/C,GAAQynG,EACdg+Y,EAAmB/ja,GAAgB,eAAR1gI,EAC3B0kiB,EAAWtygB,IAEZ,OAAOoygB,EAAWxhe,MAGjB,SAAU4iE,EAAMjyH,EAAS6/O,GACxB,KAAU5tH,EAAOA,EAAM6gB,IACtB,GAAuB,IAAlB7gB,EAAK5xD,UAAkBywd,EAC3B,OAAO93a,EAASiZ,EAAMjyH,EAAS6/O,GAGjC,OAAO,GAIR,SAAU5tH,EAAMjyH,EAAS6/O,GACxB,IAAImxS,EAAUpB,EACbqB,EAAW,CAAEzF,EAASuF,GAGvB,GAAKlxS,GACJ,KAAU5tH,EAAOA,EAAM6gB,IACtB,IAAuB,IAAlB7gB,EAAK5xD,UAAkBywd,IACtB93a,EAASiZ,EAAMjyH,EAAS6/O,GAC5B,OAAO,OAKV,KAAU5tH,EAAOA,EAAM6gB,IACtB,GAAuB,IAAlB7gB,EAAK5xD,UAAkBywd,EAG3B,GAFAlB,EAAa39Z,EAAMi4Z,KAAej4Z,EAAMi4Z,GAAY,IAE/C7+e,GAAQ6wM,EAAUjqH,EAAM5mF,GAC5B4mF,EAAOA,EAAM6gB,IAAS7gB,MAChB,KAAO++Z,EAAWpB,EAAYvjiB,KACpC2kiB,EAAU,KAAQxF,GAAWwF,EAAU,KAAQD,EAG/C,OAASE,EAAU,GAAMD,EAAU,GAOnC,GAHApB,EAAYvjiB,GAAQ4kiB,EAGbA,EAAU,GAAMj4a,EAASiZ,EAAMjyH,EAAS6/O,GAC9C,OAAO,EAMZ,OAAO,GAIV,SAASqxS,GAAgBC,GACxB,OAAOA,EAASxriB,OAAS,EACxB,SAAUssI,EAAMjyH,EAAS6/O,GAExB,IADA,IAAIzuP,EAAI+/hB,EAASxriB,OACTyL,KACP,IAAM+/hB,EAAU//hB,GAAK6gI,EAAMjyH,EAAS6/O,GACnC,OAAO,EAGT,OAAO,GAERsxS,EAAU,GAYZ,SAASC,GAAUpB,EAAWzkiB,EAAKN,EAAQ+U,EAAS6/O,GAOnD,IANA,IAAI5tH,EACHo/Z,EAAe,GACfjgiB,EAAI,EACJyrC,EAAMmzf,EAAUrqiB,OAChB2riB,EAAgB,MAAP/liB,EAEF6F,EAAIyrC,EAAKzrC,KACT6gI,EAAO+9Z,EAAW5+hB,MAClBnG,IAAUA,EAAQgnI,EAAMjyH,EAAS6/O,KACtCwxS,EAAapriB,KAAMgsI,GACdq/Z,GACJ/liB,EAAItF,KAAMmL,KAMd,OAAOigiB,EAGR,SAASE,GAAYlC,EAAWzghB,EAAUoqG,EAASw4a,EAAYC,EAAYC,GAO1E,OANKF,IAAeA,EAAYtH,KAC/BsH,EAAaD,GAAYC,IAErBC,IAAeA,EAAYvH,KAC/BuH,EAAaF,GAAYE,EAAYC,IAE/BzD,IAAc,SAAUjgR,EAAMr6Q,EAASqM,EAAS6/O,GACtD,IAAIp5L,EAAMr1D,EAAG6gI,EAAM0/Z,EAClBC,EAAS,GACTC,EAAU,GACVC,EAAcn+hB,EAAQhO,OAGtBkkiB,EAAQ77Q,GA5CX,SAA2Bp/P,EAAUolP,EAAUrgQ,GAG9C,IAFA,IAAIvC,EAAI,EACPyrC,EAAMm3N,EAASruQ,OACRyL,EAAIyrC,EAAKzrC,IAChBsQ,EAAMkN,EAAUolP,EAAU5iQ,GAAKuC,GAEhC,OAAOA,EAuCJo+hB,CAAkBnjhB,GAAY,IAC7B5O,EAAQqgE,SAAW,CAAErgE,GAAYA,EAAS,IAG5CgyhB,GAAY3C,IAAerhR,GAASp/P,EAEnCi7gB,EADAuH,GAAUvH,EAAO+H,EAAQvC,EAAWrvhB,EAAS6/O,GAsB/C,GAnBK7mI,EAaJA,EAASg5a,EATTL,EAAaF,IAAgBzjR,EAAOqhR,EAAYyC,GAAeN,GAG9D,GAGA79hB,EAG+BqM,EAAS6/O,GAEzC8xS,EAAaK,EAITR,EAMJ,IALA/qe,EAAO2qe,GAAUO,EAAYE,GAC7BL,EAAY/qe,EAAM,GAAIzmD,EAAS6/O,GAG/BzuP,EAAIq1D,EAAK9gE,OACDyL,MACA6gI,EAAOxrE,EAAMr1D,MACnBugiB,EAAYE,EAASzgiB,MAAW4giB,EAAWH,EAASzgiB,IAAQ6gI,IAK/D,GAAK+7I,GACJ,GAAKyjR,GAAcpC,EAAY,CAC9B,GAAKoC,EAAa,CAKjB,IAFAhre,EAAO,GACPr1D,EAAIugiB,EAAWhsiB,OACPyL,MACA6gI,EAAO0/Z,EAAYvgiB,KAGzBq1D,EAAKxgE,KAAQ+riB,EAAW5giB,GAAM6gI,GAGhCw/Z,EAAY,KAAQE,EAAa,GAAMlre,EAAMo5L,GAK9C,IADAzuP,EAAIugiB,EAAWhsiB,OACPyL,MACA6gI,EAAO0/Z,EAAYvgiB,MACvBq1D,EAAOgre,EAAajmiB,EAAQ1F,KAAMkoR,EAAM/7I,GAAS2/Z,EAAQxgiB,KAAS,IAEpE48Q,EAAMvnN,KAAY9yD,EAAS8yD,GAASwrE,UAOvC0/Z,EAAaP,GACZO,IAAeh+hB,EACdg+hB,EAAW/8hB,OAAQk9hB,EAAaH,EAAWhsiB,QAC3CgsiB,GAEGF,EACJA,EAAY,KAAM99hB,EAASg+hB,EAAY9xS,GAEvC55P,EAAKolB,MAAO1X,EAASg+hB,MAMzB,SAASM,GAAmBjjd,GA+B3B,IA9BA,IAAIkjd,EAAcl5a,EAASppC,EAC1B/yC,EAAMmyC,EAAOrpF,OACbwsiB,EAAkBjH,EAAKkE,SAAUpgd,EAAQ,GAAIhmE,MAC7CophB,EAAmBD,GAAmBjH,EAAKkE,SAAU,KACrDh+hB,EAAI+giB,EAAkB,EAAI,EAG1BE,EAAe5E,IAAe,SAAUx7Z,GACvC,OAAOA,IAASiga,IACdE,GAAkB,GACrBE,EAAkB7E,IAAe,SAAUx7Z,GAC1C,OAAOzmI,EAAQ1F,KAAMosiB,EAAcjga,IAAU,IAC3Cmga,GAAkB,GACrBjB,EAAW,CAAE,SAAUl/Z,EAAMjyH,EAAS6/O,GAMrC,IAAIhvH,GAASsha,IAAqBtyS,GAAO7/O,GAAWmrhB,MACjD+G,EAAelyhB,GAAUqgE,SAC1Bgyd,EAAcpga,EAAMjyH,EAAS6/O,GAC7ByyS,EAAiBrga,EAAMjyH,EAAS6/O,IAKlC,OADAqyS,EAAe,KACRrha,IAGDz/H,EAAIyrC,EAAKzrC,IAChB,GAAO4nH,EAAUkya,EAAKkE,SAAUpgd,EAAQ59E,GAAI4X,MAC3CmohB,EAAW,CAAE1D,GAAeyD,GAAgBC,GAAYn4a,QAClD,CAIN,IAHAA,EAAUkya,EAAKjgiB,OAAQ+jF,EAAQ59E,GAAI4X,MAAOqC,MAAO,KAAM2jE,EAAQ59E,GAAIgtF,UAGrD8rc,GAAY,CAIzB,IADAt6c,IAAMx+E,EACEw+E,EAAI/yC,IACNquf,EAAKkE,SAAUpgd,EAAQY,GAAI5mE,MADhB4mE,KAKjB,OAAO2hd,GACNngiB,EAAI,GAAK8/hB,GAAgBC,GACzB//hB,EAAI,GAAK08hB,GAGR9+c,EAAOlkF,MAAO,EAAGsG,EAAI,GACnB6vB,OAAQ,CAAEh6B,MAAgC,MAAzB+nF,EAAQ59E,EAAI,GAAI4X,KAAe,IAAM,MACvD+kC,QAAS28e,EAAU,MACrB1xa,EACA5nH,EAAIw+E,GAAKqid,GAAmBjjd,EAAOlkF,MAAOsG,EAAGw+E,IAC7CA,EAAI/yC,GAAOo1f,GAAqBjjd,EAASA,EAAOlkF,MAAO8kF,IACvDA,EAAI/yC,GAAOixf,GAAY9+c,IAGzBmid,EAASlriB,KAAM+yH,GAIjB,OAAOk4a,GAAgBC,GAiIxB,SAASxqR,GAAS/3P,EAAU5H,GAC3B,IAAI5V,EACHmhiB,EAAc,GACdC,EAAkB,GAClB5B,EAAShF,EAAeh9gB,EAAW,KAEpC,IAAMgihB,EAAS,CAOd,IAJM5phB,IACLA,EAAQ6mhB,GAAUj/gB,IAEnBxd,EAAI4V,EAAMrhB,OACFyL,MACPw/hB,EAASqB,GAAmBjrhB,EAAO5V,KACtB84hB,GACZqI,EAAYtsiB,KAAM2qiB,GAElB4B,EAAgBvsiB,KAAM2qiB,GAKxBA,EAAShF,EAAeh9gB,EArJ1B,SAAmC4jhB,EAAiBD,GACnD,IAAIE,EAAQF,EAAY5siB,OAAS,EAChC+siB,EAAYF,EAAgB7siB,OAAS,EACrCgtiB,EAAe,SAAU3kR,EAAMhuQ,EAAS6/O,EAAKlsP,EAASi/hB,GACrD,IAAI3ga,EAAMriD,EAAGopC,EACZ65a,EAAe,EACfzhiB,EAAI,IACJ4+hB,EAAYhiR,GAAQ,GACpB8kR,EAAa,GACbC,EAAgB5H,EAGhBtB,EAAQ77Q,GAAQ0kR,GAAaxH,EAAKxphB,KAAKgrhB,IAAK,IAAKkG,GAGjDI,EAAkBxH,GAA4B,MAAjBuH,EAAwB,EAAI/nhB,KAAK+5D,UAAY,GAC1EloC,EAAMgtf,EAAMlkiB,OAeb,IAbKitiB,IAMJzH,EAAmBnrhB,GAAWnY,GAAYmY,GAAW4yhB,GAO9CxhiB,IAAMyrC,GAAgC,OAAvBo1F,EAAO43Z,EAAOz4hB,IAAeA,IAAM,CACzD,GAAKshiB,GAAazga,EAAO,CAWxB,IAVAriD,EAAI,EAME5vE,GAAWiyH,EAAKjM,eAAiBn+H,IACtCyoK,GAAar+B,GACb4tH,GAAOyrS,GAEEtya,EAAUw5a,EAAiB5id,MACpC,GAAKopC,EAASiZ,EAAMjyH,GAAWnY,EAAUg4P,GAAQ,CAChD55P,EAAKH,KAAM6N,EAASs+H,GACpB,MAGG2ga,IACJpH,EAAUwH,GAKPP,KAGGxga,GAAQjZ,GAAWiZ,IACzB4ga,IAII7kR,GACJgiR,EAAU/piB,KAAMgsI,IAgBnB,GATA4ga,GAAgBzhiB,EASXqhiB,GAASrhiB,IAAMyhiB,EAAe,CAElC,IADAjjd,EAAI,EACMopC,EAAUu5a,EAAa3id,MAChCopC,EAASg3a,EAAW8C,EAAY9yhB,EAAS6/O,GAG1C,GAAKmuB,EAAO,CAGX,GAAK6kR,EAAe,EACnB,KAAQzhiB,KACC4+hB,EAAW5+hB,IAAO0hiB,EAAY1hiB,KACrC0hiB,EAAY1hiB,GAAMqsC,EAAI33C,KAAM6N,IAM/Bm/hB,EAAa1B,GAAU0B,GAIxB7siB,EAAKolB,MAAO1X,EAASm/hB,GAGhBF,IAAc5kR,GAAQ8kR,EAAWntiB,OAAS,GAC5CktiB,EAAeN,EAAY5siB,OAAW,GAExCojT,EAAOimP,WAAYr7hB,GAUrB,OALKi/hB,IACJpH,EAAUwH,EACV7H,EAAmB4H,GAGb/C,GAGT,OAAOyC,EACNxE,GAAc0E,GACdA,EA2BCM,CAA0BT,EAAiBD,IAG5C3B,EAAOhihB,SAAWA,EAEnB,OAAOgihB,EAYR,SAASz9hB,GAAQyb,EAAU5O,EAASrM,EAASq6Q,GAC5C,IAAI58Q,EAAG49E,EAAQtD,EAAO1iE,EAAMtH,EAC3BwxhB,EAA+B,oBAAbtkhB,GAA2BA,EAC7C5H,GAASgnQ,GAAQ6/Q,GAAYj/gB,EAAWskhB,EAAStkhB,UAAYA,GAM9D,GAJAjb,EAAUA,GAAW,GAIC,IAAjBqT,EAAMrhB,OAAe,CAIzB,IADAqpF,EAAShoE,EAAO,GAAMA,EAAO,GAAIlc,MAAO,IAC5BnF,OAAS,GAAsC,QAA/B+lF,EAAQsD,EAAQ,IAAMhmE,MAC3B,IAArBhJ,EAAQqgE,UAAkBird,GAAkBJ,EAAKkE,SAAUpgd,EAAQ,GAAIhmE,MAAS,CAMjF,KAJAhJ,GAAYkrhB,EAAKxphB,KAAK8qhB,GACrB9gd,EAAM0S,QAAS,GAAIrwC,QAASo/e,EAAWC,GACvCpthB,IACI,IAAM,IAEV,OAAOrM,EAGIu/hB,IACXlzhB,EAAUA,EAAQyP,YAGnBb,EAAWA,EAAS9jB,MAAOkkF,EAAO3jB,QAAQpkE,MAAMtB,QAKjD,IADAyL,EAAIm7hB,EAAUO,aAAavkgB,KAAM3Z,GAAa,EAAIogE,EAAOrpF,OACjDyL,MACPs6E,EAAQsD,EAAQ59E,IAGX85hB,EAAKkE,SAAYpmhB,EAAO0iE,EAAM1iE,QAGnC,IAAOtH,EAAOwphB,EAAKxphB,KAAMsH,MAGjBglQ,EAAOtsQ,EACbgqE,EAAM0S,QAAS,GAAIrwC,QAASo/e,EAAWC,GACvCF,EAAS3kgB,KAAMymD,EAAQ,GAAIhmE,OAC1B4khB,GAAa5thB,EAAQyP,aAAgBzP,IACjC,CAKL,GAFAgvE,EAAOp6E,OAAQxD,EAAG,KAClBwd,EAAWo/P,EAAKroR,QAAUmoiB,GAAY9+c,IAGrC,OADA/oF,EAAKolB,MAAO1X,EAASq6Q,GACdr6Q,EAGR,OAeJ,OAPEu/hB,GAAYvsR,GAAS/3P,EAAU5H,IAChCgnQ,EACAhuQ,GACCsrhB,EACD33hB,GACCqM,GAAWkthB,EAAS3kgB,KAAM3Z,IAAcg/gB,GAAa5thB,EAAQyP,aAAgBzP,GAExErM,EArlBRo8hB,GAAWlliB,UAAYqgiB,EAAK3xF,QAAU2xF,EAAKc,QAC3Cd,EAAK6E,WAAa,IAAIA,GA2lBtB7yP,EAAQgyP,WAAahF,EAAQp3hB,MAAO,IAAK+3C,KAAMihf,GAAYx1hB,KAAM,MAAS4zhB,EAG1E55X,KAIA4sI,EAAQ4xP,aAAe9mS,IAAQ,SAAUn6P,GAGxC,OAA4E,EAArEA,EAAGi9R,wBAAyBjjS,EAAS4gC,cAAe,gBAG5DsgR,EAAOrnS,KAAOA,EAGdqnS,EAAO3tN,KAAM,KAAQ2tN,EAAO3tN,KAAK4wc,QACjCjjP,EAAOtkD,OAASskD,EAAOimP,WAKvBtthB,EAAKilQ,QAAUA,GACfjlQ,EAAKvO,OAASA,GACduO,EAAK4uJ,YAAcA,GAEnB5uJ,EAAKyvH,OAAS43K,EAAOgiP,eACrBrphB,EAAKy/K,QAAU4nH,EAAO/gT,KACtB0Z,EAAKyxhB,MAAQpqP,EAAOuhP,SACpB5ohB,EAAK0xhB,UAAYrqP,EAAO3tN,KACxB15E,EAAKw7R,QAAU6L,EAAO7L,QACtBx7R,EAAKsthB,WAAajmP,EAAOimP,WA9hEzB,GAqiEA,IAAIl8Y,EAAM,SAAU7gB,EAAM6gB,EAAKugZ,GAI9B,IAHA,IAAIh2c,EAAU,GACbi2c,OAAqB71hB,IAAV41hB,GAEFpha,EAAOA,EAAM6gB,KAA6B,IAAlB7gB,EAAK5xD,UACtC,GAAuB,IAAlB4xD,EAAK5xD,SAAiB,CAC1B,GAAKizd,GAAYvqP,EAAQ92K,GAAO9yG,GAAIk0gB,GACnC,MAEDh2c,EAAQp3F,KAAMgsI,GAGhB,OAAO50C,GAIJl9D,EAAW,SAAU48B,EAAGk1E,GAG3B,IAFA,IAAI50C,EAAU,GAENtgC,EAAGA,EAAIA,EAAEgrD,YACI,IAAfhrD,EAAEsjB,UAAkBtjB,IAAMk1E,GAC9B50C,EAAQp3F,KAAM82D,GAIhB,OAAOsgC,GAIJk2c,EAAgBxqP,EAAO3tN,KAAKp0E,MAAM8lhB,aAElC0G,EAAe,kEAKnB,SAASC,EAAQvjf,EAAUwjf,EAAWj4S,GACrC,OAAKl7K,EAAYmzd,GACT3qP,EAAO33D,KAAMlhM,GAAU,SAAU+hF,EAAM7gI,GAC7C,QAASsiiB,EAAU5tiB,KAAMmsI,EAAM7gI,EAAG6gI,KAAWwpH,KAK1Ci4S,EAAUrzd,SACP0oO,EAAO33D,KAAMlhM,GAAU,SAAU+hF,GACvC,OAASA,IAASyha,IAAgBj4S,KAKV,kBAAdi4S,EACJ3qP,EAAO33D,KAAMlhM,GAAU,SAAU+hF,GACvC,OAASzmI,EAAQ1F,KAAM4tiB,EAAWzha,IAAU,IAAQwpH,KAK/CstD,EAAO99S,OAAQyoiB,EAAWxjf,EAAUurM,GAG5CstD,EAAO99S,OAAS,SAAUmwF,EAAMyuc,EAAOpuS,GACtC,IAAIxpH,EAAO43Z,EAAO,GAMlB,OAJKpuS,IACJrgK,EAAO,QAAUA,EAAO,KAGH,IAAjByuc,EAAMlkiB,QAAkC,IAAlBssI,EAAK5xD,SACxB0oO,EAAOrnS,KAAK0jO,gBAAiBnzG,EAAM72C,GAAS,CAAE62C,GAAS,GAGxD82K,EAAOrnS,KAAK08E,QAAShD,EAAM2tN,EAAO33D,KAAMy4S,GAAO,SAAU53Z,GAC/D,OAAyB,IAAlBA,EAAK5xD,cAId0oO,EAAO9pR,GAAG9wB,OAAQ,CACjBuT,KAAM,SAAUkN,GACf,IAAIxd,EAAGy/H,EACNh0F,EAAMx3C,KAAKM,OACXsmB,EAAO5mB,KAER,GAAyB,kBAAbupB,EACX,OAAOvpB,KAAKukiB,UAAW7gP,EAAQn6R,GAAW3jB,QAAQ,WACjD,IAAMmG,EAAI,EAAGA,EAAIyrC,EAAKzrC,IACrB,GAAK23S,EAAO3kS,SAAU6H,EAAM7a,GAAK/L,MAChC,OAAO,MAQX,IAFAwrI,EAAMxrI,KAAKukiB,UAAW,IAEhBx4hB,EAAI,EAAGA,EAAIyrC,EAAKzrC,IACrB23S,EAAOrnS,KAAMkN,EAAU3C,EAAM7a,GAAKy/H,GAGnC,OAAOh0F,EAAM,EAAIksQ,EAAOimP,WAAYn+Z,GAAQA,GAE7C5lI,OAAQ,SAAU2jB,GACjB,OAAOvpB,KAAKukiB,UAAW6J,EAAQpuiB,KAAMupB,GAAY,IAAI,KAEtD6sO,IAAK,SAAU7sO,GACd,OAAOvpB,KAAKukiB,UAAW6J,EAAQpuiB,KAAMupB,GAAY,IAAI,KAEtDuQ,GAAI,SAAUvQ,GACb,QAAS6khB,EACRpuiB,KAIoB,kBAAbupB,GAAyB2khB,EAAchrgB,KAAM3Z,GACnDm6R,EAAQn6R,GACRA,GAAY,IACb,GACCjpB,UASJ,IAAIguiB,EAMH1G,EAAa,uCAENlkP,EAAO9pR,GAAGrgB,KAAO,SAAUgQ,EAAU5O,EAAS7J,GACpD,IAAI6Q,EAAOirH,EAGX,IAAMrjH,EACL,OAAOvpB,KAQR,GAHA8Q,EAAOA,GAAQw9hB,EAGU,kBAAb/khB,EAAwB,CAanC,KAPC5H,EALsB,MAAlB4H,EAAU,IACsB,MAApCA,EAAUA,EAASjpB,OAAS,IAC5BipB,EAASjpB,QAAU,EAGX,CAAE,KAAMipB,EAAU,MAGlBq+gB,EAAWr5hB,KAAMgb,MAIV5H,EAAO,IAAQhH,EA6CxB,OAAMA,GAAWA,EAAQwnB,QACtBxnB,GAAW7J,GAAOuL,KAAMkN,GAK1BvpB,KAAKwO,YAAamM,GAAU0B,KAAMkN,GAhDzC,GAAK5H,EAAO,GAAM,CAYjB,GAXAhH,EAAUA,aAAmB+oS,EAAS/oS,EAAS,GAAMA,EAIrD+oS,EAAOzmJ,MAAOj9J,KAAM0jT,EAAOpuD,UAC1B3zO,EAAO,GACPhH,GAAWA,EAAQqgE,SAAWrgE,EAAQgmH,eAAiBhmH,EAAUnY,GACjE,IAII2riB,EAAWjrgB,KAAMvhB,EAAO,KAAS+hS,EAAO3oO,cAAepgE,GAC3D,IAAMgH,KAAShH,EAGTugE,EAAYl7E,KAAM2hB,IACtB3hB,KAAM2hB,GAAShH,EAASgH,IAIxB3hB,KAAK4f,KAAM+B,EAAOhH,EAASgH,IAK9B,OAAO3hB,KAYP,OARA4sI,EAAOpqI,EAASC,eAAgBkf,EAAO,OAKtC3hB,KAAM,GAAM4sI,EACZ5sI,KAAKM,OAAS,GAERN,KAcH,OAAKupB,EAASyxD,UACpBh7E,KAAM,GAAMupB,EACZvpB,KAAKM,OAAS,EACPN,MAIIk7E,EAAY3xD,QACDnR,IAAftH,EAAK+xQ,MACX/xQ,EAAK+xQ,MAAOt5P,GAGZA,EAAUm6R,GAGLA,EAAOqhP,UAAWx7gB,EAAUvpB,QAIhCwF,UAAYk+S,EAAO9pR,GAGxB00gB,EAAa5qP,EAAQlhT,GAGrB,IAAI+riB,EAAe,iCAGlBC,EAAmB,CAClBzjiB,UAAU,EACVu9O,UAAU,EACVhqM,MAAM,EACN7X,MAAM,GAoFR,SAASgogB,EAAShlS,EAAKh8G,GACtB,MAAUg8G,EAAMA,EAAKh8G,KAA4B,IAAjBg8G,EAAIzuL,WACpC,OAAOyuL,EAnFRi6C,EAAO9pR,GAAG9wB,OAAQ,CACjB+wB,IAAK,SAAUjzB,GACd,IAAI2vP,EAAUmtD,EAAQ98S,EAAQ5G,MAC7BkwF,EAAIqmK,EAAQj2P,OAEb,OAAON,KAAK4F,QAAQ,WAEnB,IADA,IAAImG,EAAI,EACAA,EAAImkF,EAAGnkF,IACd,GAAK23S,EAAO3kS,SAAU/e,KAAMu2P,EAASxqP,IACpC,OAAO,MAMXhC,QAAS,SAAUgkiB,EAAWpzhB,GAC7B,IAAI8uP,EACH19P,EAAI,EACJmkF,EAAIlwF,KAAKM,OACT03F,EAAU,GACVu+J,EAA+B,kBAAdw3S,GAA0BrqP,EAAQqqP,GAGpD,IAAMG,EAAchrgB,KAAM6qgB,GACzB,KAAQhiiB,EAAImkF,EAAGnkF,IACd,IAAM09P,EAAMzpQ,KAAM+L,GAAK09P,GAAOA,IAAQ9uP,EAAS8uP,EAAMA,EAAIr/O,WAGxD,GAAKq/O,EAAIzuL,SAAW,KAAQu7K,EAC3BA,EAAQ11P,MAAO4oQ,IAAS,EAGP,IAAjBA,EAAIzuL,UACH0oO,EAAOrnS,KAAK0jO,gBAAiB0pB,EAAKskS,IAAgB,CAEnD/1c,EAAQp3F,KAAM6oQ,GACd,MAMJ,OAAOzpQ,KAAKukiB,UAAWvsc,EAAQ13F,OAAS,EAAIojT,EAAOimP,WAAY3xc,GAAYA,IAI5En3F,MAAO,SAAU+rI,GAGhB,OAAMA,EAKe,kBAATA,EACJzmI,EAAQ1F,KAAMijT,EAAQ92K,GAAQ5sI,KAAM,IAIrCmG,EAAQ1F,KAAMT,KAGpB4sI,EAAKzqG,OAASyqG,EAAM,GAAMA,GAZjB5sI,KAAM,IAAOA,KAAM,GAAIoqB,WAAepqB,KAAKgqE,QAAQ0ke,UAAUpuiB,QAAU,GAgBlFgB,IAAK,SAAUioB,EAAU5O,GACxB,OAAO3a,KAAKukiB,UACX7gP,EAAOimP,WACNjmP,EAAOzmJ,MAAOj9J,KAAK6f,MAAO6jS,EAAQn6R,EAAU5O,OAK/Cg0hB,QAAS,SAAUplhB,GAClB,OAAOvpB,KAAKsB,IAAiB,MAAZioB,EAChBvpB,KAAKykiB,WAAazkiB,KAAKykiB,WAAW7+hB,OAAQ2jB,OAU7Cm6R,EAAOjpS,KAAM,CACZhP,OAAQ,SAAUmhI,GACjB,IAAInhI,EAASmhI,EAAKxiH,WAClB,OAAO3e,GAA8B,KAApBA,EAAOuvE,SAAkBvvE,EAAS,MAEpDqZ,QAAS,SAAU8nH,GAClB,OAAO6gB,EAAK7gB,EAAM,eAEnBgia,aAAc,SAAUhia,EAAMjd,EAAIq+a,GACjC,OAAOvgZ,EAAK7gB,EAAM,aAAcoha,IAEjC1vf,KAAM,SAAUsuF,GACf,OAAO6ha,EAAS7ha,EAAM,gBAEvBnmG,KAAM,SAAUmmG,GACf,OAAO6ha,EAAS7ha,EAAM,oBAEvBiia,QAAS,SAAUjia,GAClB,OAAO6gB,EAAK7gB,EAAM,gBAEnB8ha,QAAS,SAAU9ha,GAClB,OAAO6gB,EAAK7gB,EAAM,oBAEnBkia,UAAW,SAAUlia,EAAMjd,EAAIq+a,GAC9B,OAAOvgZ,EAAK7gB,EAAM,cAAeoha,IAElCe,UAAW,SAAUnia,EAAMjd,EAAIq+a,GAC9B,OAAOvgZ,EAAK7gB,EAAM,kBAAmBoha,IAEtClzgB,SAAU,SAAU8xG,GACnB,OAAO9xG,GAAY8xG,EAAKxiH,YAAc,IAAK24F,WAAY6pB,IAExD7hI,SAAU,SAAU6hI,GACnB,OAAO9xG,EAAU8xG,EAAK7pB,aAEvBulI,SAAU,SAAU17G,GACnB,OAA6B,MAAxBA,EAAKoia,iBAKTpL,EAAUh3Z,EAAKoia,iBAERpia,EAAKoia,iBAMRn4S,EAAUjqH,EAAM,cACpBA,EAAOA,EAAK9rH,SAAW8rH,GAGjB82K,EAAOzmJ,MAAO,GAAIrwB,EAAKhqB,gBAE7B,SAAUp1G,EAAMosB,GAClB8pR,EAAO9pR,GAAIpsB,GAAS,SAAUwgiB,EAAOzkhB,GACpC,IAAIyuE,EAAU0rN,EAAOx9S,IAAKlG,KAAM45B,EAAIo0gB,GAuBpC,MArB0B,UAArBxgiB,EAAK/H,OAAQ,KACjB8jB,EAAWykhB,GAGPzkhB,GAAgC,kBAAbA,IACvByuE,EAAU0rN,EAAO99S,OAAQ2jB,EAAUyuE,IAG/Bh4F,KAAKM,OAAS,IAGZkuiB,EAAkBhhiB,IACvBk2S,EAAOimP,WAAY3xc,GAIfu2c,EAAarrgB,KAAM11B,IACvBwqF,EAAQjkE,WAIH/zB,KAAKukiB,UAAWvsc,OAGzB,IAAIi3c,EAAkB,oBAsOtB,SAASC,EAAUrof,GAClB,OAAOA,EAER,SAASsof,EAASj5d,GACjB,MAAMA,EAGP,SAASk5d,EAAYxtiB,EAAOwO,EAASs7B,EAAQ2jgB,GAC5C,IAAIrmiB,EAEJ,IAGMpH,GAASs5E,EAAclyE,EAASpH,EAAM4O,SAC1CxH,EAAOvI,KAAMmB,GAAQw3B,KAAMhpB,GAAU0wB,KAAM4K,GAGhC9pC,GAASs5E,EAAclyE,EAASpH,EAAM48C,MACjDx1C,EAAOvI,KAAMmB,EAAOwO,EAASs7B,GAQ7Bt7B,EAAQ4V,WAAO5N,EAAW,CAAExW,GAAQ6D,MAAO4piB,IAM3C,MAAQztiB,GAIT8pC,EAAO1lB,WAAO5N,EAAW,CAAExW,KAvO7B8hT,EAAOjmE,UAAY,SAAUrjO,GAI5BA,EAA6B,kBAAZA,EAlClB,SAAwBA,GACvB,IAAIgJ,EAAS,GAIb,OAHAsgS,EAAOjpS,KAAML,EAAQuH,MAAOsthB,IAAmB,IAAI,SAAUv0hB,EAAG4gJ,GAC/Dl4I,EAAQk4I,IAAS,KAEXl4I,EA8BNkshB,CAAel1hB,GACfspS,EAAO56S,OAAQ,GAAIsR,GAEpB,IACCm1hB,EAGAj+S,EAGAgO,EAGAlgP,EAGA8hD,EAAO,GAGPm+L,EAAQ,GAGRmwS,GAAe,EAGfzxT,EAAO,WAQN,IALA3+N,EAASA,GAAUhF,EAAQuqH,KAI3B26H,EAAQiwS,GAAS,EACTlwS,EAAM/+P,OAAQkviB,GAAe,EAEpC,IADAl+S,EAAS+N,EAAMr5L,UACLwpe,EAActue,EAAK5gE,SAGmC,IAA1D4gE,EAAMsue,GAAcxphB,MAAOsrO,EAAQ,GAAKA,EAAQ,KACpDl3O,EAAQ+kP,cAGRqwS,EAActue,EAAK5gE,OACnBgxP,GAAS,GAMNl3O,EAAQk3O,SACbA,GAAS,GAGVi+S,GAAS,EAGJnwhB,IAIH8hD,EADIowL,EACG,GAIA,KAMV1qO,EAAO,CAGNtlB,IAAK,WA2BJ,OA1BK4/D,IAGCowL,IAAWi+S,IACfC,EAActue,EAAK5gE,OAAS,EAC5B++P,EAAMz+P,KAAM0wP,IAGb,SAAWhwP,EAAKklB,GACfk9R,EAAOjpS,KAAM+L,GAAM,SAAU9L,EAAGqU,GAC1BmsD,EAAYnsD,GACV3U,EAAQglP,QAAWx4O,EAAKiT,IAAK9K,IAClCmyC,EAAKtgE,KAAMmuB,GAEDA,GAAOA,EAAIzuB,QAA4B,WAAlB8jiB,EAAQr1gB,IAGxCztB,EAAKytB,MATR,CAYKhnB,WAEAupP,IAAWi+S,GACfxxT,KAGK/9O,MAIRwB,OAAQ,WAYP,OAXAkiT,EAAOjpS,KAAM1S,WAAW,SAAU2S,EAAGqU,GAEpC,IADA,IAAIluB,GACMA,EAAQ6iT,EAAOshP,QAASj2gB,EAAKmyC,EAAMrgE,KAAa,GACzDqgE,EAAK3xD,OAAQ1O,EAAO,GAGfA,GAAS2uiB,GACbA,OAIIxviB,MAKR65B,IAAK,SAAUD,GACd,OAAOA,EACN8pR,EAAOshP,QAASprgB,EAAIsnC,IAAU,EAC9BA,EAAK5gE,OAAS,GAIhBmqE,MAAO,WAIN,OAHKvJ,IACJA,EAAO,IAEDlhE,MAMRyviB,QAAS,WAGR,OAFArwhB,EAASigP,EAAQ,GACjBn+L,EAAOowL,EAAS,GACTtxP,MAERoL,SAAU,WACT,OAAQ81D,GAMT09C,KAAM,WAKL,OAJAx/F,EAASigP,EAAQ,GACX/N,GAAWi+S,IAChBrue,EAAOowL,EAAS,IAEVtxP,MAERof,OAAQ,WACP,QAASA,GAIVmlO,SAAU,SAAU5pO,EAAS6L,GAS5B,OARMpH,IAELoH,EAAO,CAAE7L,GADT6L,EAAOA,GAAQ,IACQ/gB,MAAQ+gB,EAAK/gB,QAAU+gB,GAC9C64O,EAAMz+P,KAAM4lB,GACN+ohB,GACLxxT,KAGK/9O,MAIR+9O,KAAM,WAEL,OADAn3N,EAAK29N,SAAUvkP,KAAM+H,WACd/H,MAIRs/P,MAAO,WACN,QAASA,IAIZ,OAAO14O,GA4CR88R,EAAO56S,OAAQ,CAEd0pN,SAAU,SAAUrwK,GACnB,IAAIutf,EAAS,CAIX,CAAE,SAAU,WAAYhsP,EAAOjmE,UAAW,UACzCimE,EAAOjmE,UAAW,UAAY,GAC/B,CAAE,UAAW,OAAQimE,EAAOjmE,UAAW,eACtCimE,EAAOjmE,UAAW,eAAiB,EAAG,YACvC,CAAE,SAAU,OAAQimE,EAAOjmE,UAAW,eACrCimE,EAAOjmE,UAAW,eAAiB,EAAG,aAExCtmJ,EAAQ,UACR3mF,EAAU,CACT2mF,MAAO,WACN,OAAOA,GAER/4B,OAAQ,WAEP,OADApzB,EAAS5R,KAAMrxB,WAAY+4B,KAAM/4B,WAC1B/H,MAER,MAAS,SAAU45B,GAClB,OAAOppB,EAAQguC,KAAM,KAAM5kB,IAI5BgzL,KAAM,WACL,IAAItD,EAAMvhN,UAEV,OAAO27S,EAAOlxF,UAAU,SAAUm9U,GACjCjsP,EAAOjpS,KAAMi1hB,GAAQ,SAAU//a,EAAIigb,GAGlC,IAAIh2gB,EAAKshD,EAAYouI,EAAKsmV,EAAO,MAAWtmV,EAAKsmV,EAAO,IAKxD5kgB,EAAU4kgB,EAAO,KAAO,WACvB,IAAIC,EAAWj2gB,GAAMA,EAAG5T,MAAOhmB,KAAM+H,WAChC8niB,GAAY30d,EAAY20d,EAASr/hB,SACrCq/hB,EAASr/hB,UACP0xf,SAAUytC,EAASpwe,QACnBnmC,KAAMu2gB,EAASv/hB,SACf0wB,KAAM6ugB,EAASjkgB,QAEjBikgB,EAAUC,EAAO,GAAM,QACtB5viB,KACA45B,EAAK,CAAEi2gB,GAAa9niB,iBAKxBuhN,EAAM,QACH94M,WAELguC,KAAM,SAAUmpK,EAAaC,EAAYkoV,GACxC,IAAI3tS,EAAW,EACf,SAAS/xP,EAAS2gK,EAAO/lI,EAAUzqC,EAASwjS,GAC3C,OAAO,WACN,IAAInuG,EAAO51L,KACVwmB,EAAOze,UACPgoiB,EAAa,WACZ,IAAIF,EAAUrxf,EAKd,KAAKuyH,EAAQoxF,GAAb,CAQA,IAJA0tS,EAAWtviB,EAAQylB,MAAO4vK,EAAMpvK,MAIdwkB,EAASx6B,UAC1B,MAAM,IAAIu1G,UAAW,4BAOtBvnE,EAAOqxf,IAKgB,kBAAbA,GACY,oBAAbA,IACRA,EAASrxf,KAGL08B,EAAY18B,GAGXulP,EACJvlP,EAAK/9C,KACJoviB,EACAz/hB,EAAS+xP,EAAUn3N,EAAUkkgB,EAAUnrQ,GACvC3zR,EAAS+xP,EAAUn3N,EAAUmkgB,EAASprQ,KAOvC5hC,IAEA3jN,EAAK/9C,KACJoviB,EACAz/hB,EAAS+xP,EAAUn3N,EAAUkkgB,EAAUnrQ,GACvC3zR,EAAS+xP,EAAUn3N,EAAUmkgB,EAASprQ,GACtC3zR,EAAS+xP,EAAUn3N,EAAUkkgB,EAC5BlkgB,EAASglgB,eASPzviB,IAAY2uiB,IAChBt5W,OAAOx9K,EACPoO,EAAO,CAAEqphB,KAKR9rQ,GAAW/4P,EAASq0L,aAAezpC,EAAMpvK,MAK7C6tE,EAAU0vM,EACTgsQ,EACA,WACC,IACCA,IACC,MAAQvviB,GAEJkjT,EAAOlxF,SAASy9U,eACpBvsP,EAAOlxF,SAASy9U,cAAezviB,EAC9B6zF,EAAQ30C,OAMLqxH,EAAQ,GAAKoxF,IAIZ5hQ,IAAY4uiB,IAChBv5W,OAAOx9K,EACPoO,EAAO,CAAEhmB,IAGVwqC,EAASu0L,WAAY3pC,EAAMpvK,MAS3BuqJ,EACJ18E,KAKKqvN,EAAOlxF,SAAS09U,aACpB77c,EAAQ30C,MAAQgkQ,EAAOlxF,SAAS09U,eAMrBxsP,EAAOlxF,SAAS29U,eAC3B97c,EAAQ30C,MAAQgkQ,EAAOlxF,SAAS29U,gBAEjC1qhB,EAAO5iB,WAAYwxF,KAKtB,OAAOqvN,EAAOlxF,UAAU,SAAUm9U,GAGjCD,EAAQ,GAAK,GAAIpuiB,IAChB8O,EACC,EACAu/hB,EACAz0d,EAAY40d,GACXA,EACAZ,EACDS,EAASK,aAKXN,EAAQ,GAAK,GAAIpuiB,IAChB8O,EACC,EACAu/hB,EACAz0d,EAAYysI,GACXA,EACAunV,IAKHQ,EAAQ,GAAK,GAAIpuiB,IAChB8O,EACC,EACAu/hB,EACAz0d,EAAY0sI,GACXA,EACAunV,OAGA3+hB,WAKLA,QAAS,SAAUk9D,GAClB,OAAc,MAAPA,EAAcg2O,EAAO56S,OAAQ4kE,EAAKl9D,GAAYA,IAGvDw6B,EAAW,GAkEZ,OA/DA04Q,EAAOjpS,KAAMi1hB,GAAQ,SAAU3jiB,EAAG6jiB,GACjC,IAAI1ue,EAAO0ue,EAAO,GACjBQ,EAAcR,EAAO,GAKtBp/hB,EAASo/hB,EAAO,IAAQ1ue,EAAK5/D,IAGxB8uiB,GACJlve,EAAK5/D,KACJ,WAIC61F,EAAQi5c,IAKTV,EAAQ,EAAI3jiB,GAAK,GAAI0jiB,QAIrBC,EAAQ,EAAI3jiB,GAAK,GAAI0jiB,QAGrBC,EAAQ,GAAK,GAAI9wb,KAGjB8wb,EAAQ,GAAK,GAAI9wb,MAOnB19C,EAAK5/D,IAAKsuiB,EAAO,GAAI7xT,MAKrB/yM,EAAU4kgB,EAAO,IAAQ,WAExB,OADA5kgB,EAAU4kgB,EAAO,GAAM,QAAU5viB,OAASgrC,OAAW5yB,EAAYpY,KAAM+H,WAChE/H,MAMRgrC,EAAU4kgB,EAAO,GAAM,QAAW1ue,EAAKqjL,YAIxC/zO,EAAQA,QAASw6B,GAGZmX,GACJA,EAAK1hD,KAAMuqC,EAAUA,GAIfA,GAIRyvL,KAAM,SAAU41U,GACf,IAGCC,EAAYvoiB,UAAUzH,OAGtByL,EAAIukiB,EAGJC,EAAkBhriB,MAAOwG,GACzBykiB,EAAgB/qiB,EAAMhF,KAAMsH,WAG5B0rf,EAAU/vM,EAAOlxF,WAGjBi+U,EAAa,SAAU1kiB,GACtB,OAAO,SAAUnK,GAChB2uiB,EAAiBxkiB,GAAM/L,KACvBwwiB,EAAezkiB,GAAMhE,UAAUzH,OAAS,EAAImF,EAAMhF,KAAMsH,WAAcnG,IAC5D0uiB,GACT78C,EAAQp0R,YAAakxU,EAAiBC,KAM1C,GAAKF,GAAa,IACjBlB,EAAYiB,EAAa58C,EAAQr6d,KAAMq3gB,EAAY1kiB,IAAMqE,QAASqjf,EAAQ/nd,QACxE4kgB,GAGuB,YAApB78C,EAAQt8Z,SACZjc,EAAYs1d,EAAezkiB,IAAOykiB,EAAezkiB,GAAIyyC,OAErD,OAAOi1c,EAAQj1c,OAKjB,KAAQzyC,KACPqjiB,EAAYoB,EAAezkiB,GAAK0kiB,EAAY1kiB,GAAK0nf,EAAQ/nd,QAG1D,OAAO+nd,EAAQjjf,aAOjB,IAAIkgiB,EAAc,yDAKlBhtP,EAAOlxF,SAASy9U,cAAgB,SAAUvwf,EAAOixf,GAI3ClrhB,EAAO2kB,SAAW3kB,EAAO2kB,QAAQC,MAAQqV,GAASgxf,EAAYxtgB,KAAMwc,EAAMlyC,OAC9EiY,EAAO2kB,QAAQC,KAAM,8BAAgCqV,EAAMjU,QAC1DiU,EAAM42C,MAAOq6c,IAOhBjtP,EAAOktP,eAAiB,SAAUlxf,GACjCj6B,EAAO5iB,YAAY,WAClB,MAAM68C,MAQR,IAAImxf,EAAYntP,EAAOlxF,WAkDvB,SAASs+U,IACRtuiB,EAASrC,oBAAqB,mBAAoB2wiB,GAClDrrhB,EAAOtlB,oBAAqB,OAAQ2wiB,GACpCptP,EAAO7gC,QAnDR6gC,EAAO9pR,GAAGipP,MAAQ,SAAUjpP,GAY3B,OAVAi3gB,EACEryf,KAAM5kB,GAKN6lB,OAAO,SAAUC,GACjBgkQ,EAAOktP,eAAgBlxf,MAGlB1/C,MAGR0jT,EAAO56S,OAAQ,CAGd0gf,SAAS,EAITunD,UAAW,EAGXluR,MAAO,SAAUmuR,KAGF,IAATA,IAAkBttP,EAAOqtP,UAAYrtP,EAAO8lM,WAKjD9lM,EAAO8lM,SAAU,GAGH,IAATwnD,KAAmBttP,EAAOqtP,UAAY,GAK3CF,EAAUxxU,YAAa78N,EAAU,CAAEkhT,QAIrCA,EAAO7gC,MAAMrkO,KAAOqyf,EAAUryf,KAaD,aAAxBh8C,EAAS6gI,YACa,YAAxB7gI,EAAS6gI,aAA6B7gI,EAASimC,gBAAgBwogB,SAGjExrhB,EAAO5iB,WAAY6gT,EAAO7gC,QAK1BrgR,EAAS9B,iBAAkB,mBAAoBowiB,GAG/CrrhB,EAAO/kB,iBAAkB,OAAQowiB,IAQlC,IAAII,GAAS,SAATA,EAAmB1M,EAAO5qgB,EAAI5yB,EAAKpF,EAAOuviB,EAAWC,EAAU9qU,GAClE,IAAIv6N,EAAI,EACPyrC,EAAMgtf,EAAMlkiB,OACZ+wiB,EAAc,MAAPrqiB,EAGR,GAAuB,WAAlBo9hB,EAAQp9hB,GAEZ,IAAM+E,KADNoliB,GAAY,EACDnqiB,EACVkqiB,EAAQ1M,EAAO5qgB,EAAI7tB,EAAG/E,EAAK+E,IAAK,EAAMqliB,EAAU9qU,QAI3C,QAAeluN,IAAVxW,IACXuviB,GAAY,EAENj2d,EAAYt5E,KACjB0kO,GAAM,GAGF+qU,IAGC/qU,GACJ1sM,EAAGn5B,KAAM+jiB,EAAO5iiB,GAChBg4B,EAAK,OAILy3gB,EAAOz3gB,EACPA,EAAK,SAAUgzG,EAAMorG,EAAMp2O,GAC1B,OAAOyviB,EAAK5wiB,KAAMijT,EAAQ92K,GAAQhrI,MAKhCg4B,GACJ,KAAQ7tB,EAAIyrC,EAAKzrC,IAChB6tB,EACC4qgB,EAAOz4hB,GAAK/E,EAAKs/N,EAChB1kO,EACAA,EAAMnB,KAAM+jiB,EAAOz4hB,GAAKA,EAAG6tB,EAAI4qgB,EAAOz4hB,GAAK/E,KAMhD,OAAKmqiB,EACG3M,EAIH6M,EACGz3gB,EAAGn5B,KAAM+jiB,GAGVhtf,EAAM5d,EAAI4qgB,EAAO,GAAKx9hB,GAAQoqiB,GAKlCE,GAAY,QACfC,GAAa,YAGd,SAASC,GAAYC,EAAM1of,GAC1B,OAAOA,EAAO28D,cAMf,SAASgsb,GAAWrjc,GACnB,OAAOA,EAAO3lD,QAAS4of,GAAW,OAAQ5of,QAAS6of,GAAYC,IAEhE,IAAIG,GAAa,SAAUr5f,GAQ1B,OAA0B,IAAnBA,EAAM0iC,UAAqC,IAAnB1iC,EAAM0iC,YAAsB1iC,EAAM0iC,UAMlE,SAAS42d,KACR5xiB,KAAK6kiB,QAAUnhP,EAAOmhP,QAAU+M,GAAKC,MAGtCD,GAAKC,IAAM,EAEXD,GAAKpsiB,UAAY,CAEhBm6C,MAAO,SAAUrH,GAGhB,IAAI12C,EAAQ02C,EAAOt4C,KAAK6kiB,SA4BxB,OAzBMjjiB,IACLA,EAAQ,GAKH+viB,GAAYr5f,KAIXA,EAAM0iC,SACV1iC,EAAOt4C,KAAK6kiB,SAAYjjiB,EAMxBkF,OAAOi+D,eAAgBzsB,EAAOt4C,KAAK6kiB,QAAS,CAC3CjjiB,MAAOA,EACPsjE,cAAc,MAMXtjE,GAERojE,IAAK,SAAU1sB,EAAOzqC,EAAMjM,GAC3B,IAAI6kH,EACH9mE,EAAQ3/C,KAAK2/C,MAAOrH,GAIrB,GAAqB,kBAATzqC,EACX8xC,EAAO+xf,GAAW7jiB,IAAWjM,OAM7B,IAAM6kH,KAAQ54G,EACb8xC,EAAO+xf,GAAWjrb,IAAW54G,EAAM44G,GAGrC,OAAO9mE,GAER9/B,IAAK,SAAUy4B,EAAOtxC,GACrB,YAAeoR,IAARpR,EACNhH,KAAK2/C,MAAOrH,GAGZA,EAAOt4C,KAAK6kiB,UAAavsf,EAAOt4C,KAAK6kiB,SAAW6M,GAAW1qiB,KAE7DkqiB,OAAQ,SAAU54f,EAAOtxC,EAAKpF,GAa7B,YAAawW,IAARpR,GACCA,GAAsB,kBAARA,QAAgCoR,IAAVxW,EAElC5B,KAAK6f,IAAKy4B,EAAOtxC,IASzBhH,KAAKglE,IAAK1sB,EAAOtxC,EAAKpF,QAILwW,IAAVxW,EAAsBA,EAAQoF,IAEtCxF,OAAQ,SAAU82C,EAAOtxC,GACxB,IAAI+E,EACH4zC,EAAQrH,EAAOt4C,KAAK6kiB,SAErB,QAAezshB,IAAVunC,EAAL,CAIA,QAAavnC,IAARpR,EAAoB,CAkBxB+E,GAXC/E,EAJIzB,MAAMi2E,QAASx0E,GAIbA,EAAId,IAAKwriB,KAEf1qiB,EAAM0qiB,GAAW1qiB,MAIJ24C,EACZ,CAAE34C,GACAA,EAAI2a,MAAOsthB,IAAmB,IAG1B3uiB,OAER,KAAQyL,YACA4zC,EAAO34C,EAAK+E,UAKRqM,IAARpR,GAAqB08S,EAAO93P,cAAejM,MAM1CrH,EAAM0iC,SACV1iC,EAAOt4C,KAAK6kiB,cAAYzshB,SAEjBkgC,EAAOt4C,KAAK6kiB,YAItBiN,QAAS,SAAUx5f,GAClB,IAAIqH,EAAQrH,EAAOt4C,KAAK6kiB,SACxB,YAAiBzshB,IAAVunC,IAAwB+jQ,EAAO93P,cAAejM,KAGvD,IAAIoyf,GAAW,IAAIH,GAEfI,GAAW,IAAIJ,GAcfK,GAAS,gCACZC,GAAa,SA2Bd,SAASC,GAAUvla,EAAM5lI,EAAK6G,GAC7B,IAAIL,EAIJ,QAAc4K,IAATvK,GAAwC,IAAlB++H,EAAK5xD,SAI/B,GAHAxtE,EAAO,QAAUxG,EAAI0hD,QAASwpf,GAAY,OAAQjvgB,cAG7B,kBAFrBp1B,EAAO++H,EAAK5iI,aAAcwD,IAEM,CAC/B,IACCK,EApCJ,SAAkBA,GACjB,MAAc,SAATA,GAIS,UAATA,IAIS,SAATA,EACG,KAIHA,KAAUA,EAAO,IACbA,EAGJokiB,GAAO/ugB,KAAMr1B,GACVyN,KAAK+6E,MAAOxoF,GAGbA,GAcGyqG,CAASzqG,GACf,MAAQrN,IAGVwxiB,GAAShte,IAAK4nE,EAAM5lI,EAAK6G,QAEzBA,OAAOuK,EAGT,OAAOvK,EAGR61S,EAAO56S,OAAQ,CACdgpiB,QAAS,SAAUlla,GAClB,OAAOola,GAASF,QAASlla,IAAUmla,GAASD,QAASlla,IAGtD/+H,KAAM,SAAU++H,EAAMp/H,EAAMK,GAC3B,OAAOmkiB,GAASd,OAAQtka,EAAMp/H,EAAMK,IAGrC22N,WAAY,SAAU53F,EAAMp/H,GAC3BwkiB,GAASxwiB,OAAQorI,EAAMp/H,IAKxBkpE,MAAO,SAAUk2D,EAAMp/H,EAAMK,GAC5B,OAAOkkiB,GAASb,OAAQtka,EAAMp/H,EAAMK,IAGrCukiB,YAAa,SAAUxla,EAAMp/H,GAC5BukiB,GAASvwiB,OAAQorI,EAAMp/H,MAIzBk2S,EAAO9pR,GAAG9wB,OAAQ,CACjB+E,KAAM,SAAU7G,EAAKpF,GACpB,IAAImK,EAAGyB,EAAMK,EACZ++H,EAAO5sI,KAAM,GACbssP,EAAQ1/G,GAAQA,EAAKvD,WAGtB,QAAajxH,IAARpR,EAAoB,CACxB,GAAKhH,KAAKM,SACTuN,EAAOmkiB,GAASnyhB,IAAK+sH,GAEE,IAAlBA,EAAK5xD,WAAmB+2d,GAASlyhB,IAAK+sH,EAAM,iBAAmB,CAEnE,IADA7gI,EAAIugP,EAAMhsP,OACFyL,KAIFugP,EAAOvgP,IAEsB,KADjCyB,EAAO8+O,EAAOvgP,GAAIyB,MACRrH,QAAS,WAClBqH,EAAOkkiB,GAAWlkiB,EAAK/H,MAAO,IAC9B0siB,GAAUvla,EAAMp/H,EAAMK,EAAML,KAI/BukiB,GAAS/se,IAAK4nE,EAAM,gBAAgB,GAItC,OAAO/+H,EAIR,MAAoB,kBAAR7G,EACJhH,KAAKya,MAAM,WACjBu3hB,GAAShte,IAAKhlE,KAAMgH,MAIfkqiB,GAAQlxiB,MAAM,SAAU4B,GAC9B,IAAIiM,EAOJ,GAAK++H,QAAkBx0H,IAAVxW,EAKZ,YAAcwW,KADdvK,EAAOmkiB,GAASnyhB,IAAK+sH,EAAM5lI,UAQboR,KADdvK,EAAOskiB,GAAUvla,EAAM5lI,IALf6G,OAWR,EAID7N,KAAKya,MAAM,WAGVu3hB,GAAShte,IAAKhlE,KAAMgH,EAAKpF,QAExB,KAAMA,EAAOmG,UAAUzH,OAAS,EAAG,MAAM,IAG7CkkO,WAAY,SAAUx9N,GACrB,OAAOhH,KAAKya,MAAM,WACjBu3hB,GAASxwiB,OAAQxB,KAAMgH,SAM1B08S,EAAO56S,OAAQ,CACdu2P,MAAO,SAAUzyH,EAAMjpH,EAAM9V,GAC5B,IAAIwxP,EAEJ,GAAKzyH,EAYJ,OAXAjpH,GAASA,GAAQ,MAAS,QAC1B07O,EAAQ0yS,GAASlyhB,IAAK+sH,EAAMjpH,GAGvB9V,KACEwxP,GAAS95P,MAAMi2E,QAAS3tE,GAC7BwxP,EAAQ0yS,GAASb,OAAQtka,EAAMjpH,EAAM+/R,EAAOqhP,UAAWl3hB,IAEvDwxP,EAAMz+P,KAAMiN,IAGPwxP,GAAS,IAIlBgzS,QAAS,SAAUzla,EAAMjpH,GAGxB,IAAI07O,EAAQqkD,EAAOrkD,MAAOzyH,EAF1BjpH,EAAOA,GAAQ,MAGd2uhB,EAAcjzS,EAAM/+P,OACpBs5B,EAAKylO,EAAMr5L,QACXuse,EAAQ7uP,EAAO8uP,YAAa5la,EAAMjpH,GAMvB,eAAPiW,IACJA,EAAKylO,EAAMr5L,QACXsse,KAGI14gB,IAIU,OAATjW,GACJ07O,EAAMniG,QAAS,qBAITq1Y,EAAMh4hB,KACbqf,EAAGn5B,KAAMmsI,GApBF,WACN82K,EAAO2uP,QAASzla,EAAMjpH,KAmBF4uhB,KAGhBD,GAAeC,GACpBA,EAAM9ne,MAAMszK,QAKdy0T,YAAa,SAAU5la,EAAMjpH,GAC5B,IAAI3c,EAAM2c,EAAO,aACjB,OAAOouhB,GAASlyhB,IAAK+sH,EAAM5lI,IAAS+qiB,GAASb,OAAQtka,EAAM5lI,EAAK,CAC/DyjE,MAAOi5O,EAAOjmE,UAAW,eAAgBn8O,KAAK,WAC7CywiB,GAASvwiB,OAAQorI,EAAM,CAAEjpH,EAAO,QAAS3c,YAM7C08S,EAAO9pR,GAAG9wB,OAAQ,CACjBu2P,MAAO,SAAU17O,EAAM9V,GACtB,IAAI24W,EAAS,EAQb,MANqB,kBAAT7iW,IACX9V,EAAO8V,EACPA,EAAO,KACP6iW,KAGIz+W,UAAUzH,OAASkmX,EAChB9iE,EAAOrkD,MAAOr/P,KAAM,GAAK2jB,QAGjBvL,IAATvK,EACN7N,KACAA,KAAKya,MAAM,WACV,IAAI4kP,EAAQqkD,EAAOrkD,MAAOr/P,KAAM2jB,EAAM9V,GAGtC61S,EAAO8uP,YAAaxyiB,KAAM2jB,GAEZ,OAATA,GAAgC,eAAf07O,EAAO,IAC5BqkD,EAAO2uP,QAASryiB,KAAM2jB,OAI1B0uhB,QAAS,SAAU1uhB,GAClB,OAAO3jB,KAAKya,MAAM,WACjBipS,EAAO2uP,QAASryiB,KAAM2jB,OAGxB8uhB,WAAY,SAAU9uhB,GACrB,OAAO3jB,KAAKq/P,MAAO17O,GAAQ,KAAM,KAKlCnT,QAAS,SAAUmT,EAAM+pD,GACxB,IAAIghF,EACHx1E,EAAQ,EACRw5d,EAAQhvP,EAAOlxF,WACf3nK,EAAW7qD,KACX+L,EAAI/L,KAAKM,OACT8P,EAAU,aACC8oE,GACTw5d,EAAMrzU,YAAax0K,EAAU,CAAEA,KAUlC,IANqB,kBAATlnC,IACX+pD,EAAM/pD,EACNA,OAAOvL,GAERuL,EAAOA,GAAQ,KAEP5X,MACP2iJ,EAAMqjZ,GAASlyhB,IAAKgrC,EAAU9+C,GAAK4X,EAAO,gBAC9B+qI,EAAIjkF,QACfyO,IACAw1E,EAAIjkF,MAAMnpE,IAAK8O,IAIjB,OADAA,IACOsiiB,EAAMliiB,QAASk9D,MAGxB,IAAIile,GAAS,sCAAwChlb,OAEjDilb,GAAU,IAAI5pf,OAAQ,iBAAmB2pf,GAAO,cAAe,KAG/DE,GAAY,CAAE,MAAO,QAAS,SAAU,QAExCpqgB,GAAkBjmC,EAASimC,gBAI1BqqgB,GAAa,SAAUlma,GACzB,OAAO82K,EAAO3kS,SAAU6tH,EAAKjM,cAAeiM,IAE7Cmma,GAAW,CAAEA,UAAU,GAOnBtqgB,GAAgBk5F,cACpBmxa,GAAa,SAAUlma,GACtB,OAAO82K,EAAO3kS,SAAU6tH,EAAKjM,cAAeiM,IAC3CA,EAAKjL,YAAaoxa,MAAenma,EAAKjM,gBAG1C,IAAIqya,GAAqB,SAAUpma,EAAMpkI,GAOvC,MAA8B,UAH9BokI,EAAOpkI,GAAMokI,GAGD3uH,MAAMoB,SACM,KAAvButH,EAAK3uH,MAAMoB,SAMXyzhB,GAAYlma,IAEsB,SAAlC82K,EAAOroS,IAAKuxH,EAAM,YAKrB,SAASqma,GAAWrma,EAAMnmB,EAAM00M,EAAY+3O,GAC3C,IAAIC,EAAU7xU,EACb8xU,EAAgB,GAChB14d,EAAew4d,EACd,WACC,OAAOA,EAAMzpS,OAEd,WACC,OAAOi6C,EAAOroS,IAAKuxH,EAAMnmB,EAAM,KAEjCk/H,EAAUjrK,IACVlpE,EAAO2pT,GAAcA,EAAY,KAASzX,EAAO2vP,UAAW5sb,GAAS,GAAK,MAG1E6sb,EAAgB1ma,EAAK5xD,WAClB0oO,EAAO2vP,UAAW5sb,IAAmB,OAATj1G,IAAkBm0O,IAChDitT,GAAQrkiB,KAAMm1S,EAAOroS,IAAKuxH,EAAMnmB,IAElC,GAAK6sb,GAAiBA,EAAe,KAAQ9hiB,EAAO,CAYnD,IARAm0O,GAAoB,EAGpBn0O,EAAOA,GAAQ8hiB,EAAe,GAG9BA,GAAiB3tT,GAAW,EAEpBytT,KAIP1vP,EAAOzlS,MAAO2uH,EAAMnmB,EAAM6sb,EAAgB9hiB,IACnC,EAAI8vN,IAAY,GAAMA,EAAQ5mJ,IAAiBirK,GAAW,MAAW,IAC3EytT,EAAgB,GAEjBE,GAAgChyU,EAKjCoiF,EAAOzlS,MAAO2uH,EAAMnmB,GADpB6sb,GAAgC,GACU9hiB,GAG1C2pT,EAAaA,GAAc,GAgB5B,OAbKA,IACJm4O,GAAiBA,IAAkB3tT,GAAW,EAG9CwtT,EAAWh4O,EAAY,GACtBm4O,GAAkBn4O,EAAY,GAAM,GAAMA,EAAY,IACrDA,EAAY,GACT+3O,IACJA,EAAM1hiB,KAAOA,EACb0hiB,EAAMr3hB,MAAQy3hB,EACdJ,EAAM9/gB,IAAM+/gB,IAGPA,EAIR,IAAII,GAAoB,GAExB,SAASC,GAAmB5ma,GAC3B,IAAIxrE,EACH+V,EAAMy1D,EAAKjM,cACXk2H,EAAWjqH,EAAKiqH,SAChBx3O,EAAUk0hB,GAAmB18S,GAE9B,OAAKx3O,IAIL+hD,EAAO+V,EAAI5uC,KAAKivC,YAAaL,EAAI/zC,cAAeyzN,IAChDx3O,EAAUqkS,EAAOroS,IAAK+lD,EAAM,WAE5BA,EAAKh3C,WAAW+iC,YAAaiU,GAEZ,SAAZ/hD,IACJA,EAAU,SAEXk0hB,GAAmB18S,GAAax3O,EAEzBA,GAGR,SAASo0hB,GAAU5of,EAAUrJ,GAO5B,IANA,IAAIniC,EAASutH,EACZhzH,EAAS,GACT/Y,EAAQ,EACRP,EAASuqD,EAASvqD,OAGXO,EAAQP,EAAQO,KACvB+rI,EAAO/hF,EAAUhqD,IACNod,QAIXoB,EAAUutH,EAAK3uH,MAAMoB,QAChBmiC,GAKa,SAAZniC,IACJzF,EAAQ/Y,GAAUkxiB,GAASlyhB,IAAK+sH,EAAM,YAAe,KAC/ChzH,EAAQ/Y,KACb+rI,EAAK3uH,MAAMoB,QAAU,KAGK,KAAvButH,EAAK3uH,MAAMoB,SAAkB2zhB,GAAoBpma,KACrDhzH,EAAQ/Y,GAAU2yiB,GAAmB5ma,KAGrB,SAAZvtH,IACJzF,EAAQ/Y,GAAU,OAGlBkxiB,GAAS/se,IAAK4nE,EAAM,UAAWvtH,KAMlC,IAAMxe,EAAQ,EAAGA,EAAQP,EAAQO,IACR,MAAnB+Y,EAAQ/Y,KACZgqD,EAAUhqD,GAAQod,MAAMoB,QAAUzF,EAAQ/Y,IAI5C,OAAOgqD,EAGR64P,EAAO9pR,GAAG9wB,OAAQ,CACjB04C,KAAM,WACL,OAAOiyf,GAAUzziB,MAAM,IAExBkqE,KAAM,WACL,OAAOupe,GAAUzziB,OAElBo1P,OAAQ,SAAUj+J,GACjB,MAAsB,mBAAVA,EACJA,EAAQn3F,KAAKwhD,OAASxhD,KAAKkqE,OAG5BlqE,KAAKya,MAAM,WACZu4hB,GAAoBhziB,MACxB0jT,EAAQ1jT,MAAOwhD,OAEfkiQ,EAAQ1jT,MAAOkqE,aAKnB,IAAIwpe,GAAmB,wBAEnBC,GAAa,iCAEbC,GAAgB,sCAIpB,WACC,IACCzwgB,EADc3gC,EAASq+H,yBACRrpD,YAAah1E,EAAS4gC,cAAe,QACpD5K,EAAQh2B,EAAS4gC,cAAe,SAMjC5K,EAAM13B,aAAc,OAAQ,SAC5B03B,EAAM13B,aAAc,UAAW,WAC/B03B,EAAM13B,aAAc,OAAQ,KAE5BqiC,EAAIq0C,YAAah/C,GAIjBq/Q,EAAQg8P,WAAa1wgB,EAAIujK,WAAW,GAAOA,WAAW,GAAOlD,UAAUsjG,QAIvE3jQ,EAAIo9B,UAAY,yBAChBs3O,EAAQi8P,iBAAmB3wgB,EAAIujK,WAAW,GAAOlD,UAAUjvJ,aAK3DpR,EAAIo9B,UAAY,oBAChBs3O,EAAQhzR,SAAWse,EAAIqgK,UA5BxB,GAiCA,IAAIuwW,GAAU,CAKbriS,MAAO,CAAE,EAAG,UAAW,YACvB97K,IAAK,CAAE,EAAG,oBAAqB,uBAC/Bg8K,GAAI,CAAE,EAAG,iBAAkB,oBAC3BD,GAAI,CAAE,EAAG,qBAAsB,yBAE/B5e,SAAU,CAAE,EAAG,GAAI,KAYpB,SAASihT,GAAQr5hB,EAAS6lH,GAIzB,IAAIgL,EAYJ,OATCA,EAD4C,qBAAjC7wH,EAAQ2nB,qBACb3nB,EAAQ2nB,qBAAsBk+F,GAAO,KAEI,qBAA7B7lH,EAAQjV,iBACpBiV,EAAQjV,iBAAkB86H,GAAO,KAGjC,QAGMpoH,IAARooH,GAAqBA,GAAOq2H,EAAUl8O,EAAS6lH,GAC5CkjL,EAAOzmJ,MAAO,CAAEtiJ,GAAW6wH,GAG5BA,EAKR,SAASyoa,GAAezP,EAAO0P,GAI9B,IAHA,IAAInoiB,EAAI,EACPmkF,EAAIs0c,EAAMlkiB,OAEHyL,EAAImkF,EAAGnkF,IACdgmiB,GAAS/se,IACRw/d,EAAOz4hB,GACP,cACCmoiB,GAAenC,GAASlyhB,IAAKq0hB,EAAanoiB,GAAK,eA1CnDgoiB,GAAQliS,MAAQkiS,GAAQhiS,MAAQgiS,GAAQjiS,SAAWiiS,GAAQltd,QAAUktd,GAAQriS,MAC7EqiS,GAAQ/hS,GAAK+hS,GAAQpiS,GAGfkmC,EAAQhzR,SACbkvhB,GAAQI,SAAWJ,GAAQlvhB,OAAS,CAAE,EAAG,+BAAgC,cA2C1E,IAAIuvhB,GAAQ,YAEZ,SAASC,GAAe7P,EAAO7phB,EAASyuH,EAAS3gH,EAAW6rhB,GAO3D,IANA,IAAI1na,EAAM8hB,EAAKluB,EAAKo/C,EAAM20X,EAAUhqd,EACnC81G,EAAW1lL,EAAQkmH,yBACnB2sH,EAAQ,GACRzhP,EAAI,EACJmkF,EAAIs0c,EAAMlkiB,OAEHyL,EAAImkF,EAAGnkF,IAGd,IAFA6gI,EAAO43Z,EAAOz4hB,KAEQ,IAAT6gI,EAGZ,GAAwB,WAAnBw3Z,EAAQx3Z,GAIZ82K,EAAOzmJ,MAAOuwF,EAAO5gH,EAAK5xD,SAAW,CAAE4xD,GAASA,QAG1C,GAAMwna,GAAMlxgB,KAAM0pG,GAIlB,CAUN,IATA8hB,EAAMA,GAAO2xC,EAAS7oH,YAAa78D,EAAQyoB,cAAe,QAG1Do9F,GAAQmza,GAASpliB,KAAMq+H,IAAU,CAAE,GAAI,KAAQ,GAAI3pG,cACnD28I,EAAOm0X,GAASvza,IAASuza,GAAQhhT,SACjCrkG,EAAInuF,UAAYq/G,EAAM,GAAM8jI,EAAO8wP,cAAe5na,GAASgzC,EAAM,GAGjEr1F,EAAIq1F,EAAM,GACFr1F,KACPmkE,EAAMA,EAAI80C,UAKXkgH,EAAOzmJ,MAAOuwF,EAAO9+F,EAAI9rC,aAGzB8rC,EAAM2xC,EAASt9E,YAGXjgH,YAAc,QAzBlB0qP,EAAM5sP,KAAM+Z,EAAQgoG,eAAgBiqB,IAkCvC,IAHAyzD,EAASv9L,YAAc,GAEvBiJ,EAAI,EACM6gI,EAAO4gH,EAAOzhP,MAGvB,GAAK0c,GAAai7R,EAAOshP,QAASp4Z,EAAMnkH,IAAe,EACjD6rhB,GACJA,EAAQ1ziB,KAAMgsI,QAgBhB,GAXA2na,EAAWzB,GAAYlma,GAGvB8hB,EAAMslZ,GAAQ3zW,EAAS7oH,YAAao1D,GAAQ,UAGvC2na,GACJN,GAAevlZ,GAIXtlB,EAEJ,IADA7+C,EAAI,EACMqiD,EAAO8hB,EAAKnkE,MAChBqpd,GAAY1wgB,KAAM0pG,EAAKjpH,MAAQ,KACnCylH,EAAQxoI,KAAMgsI,GAMlB,OAAOyzD,EAIR,IAAIo0W,GAAiB,sBAErB,SAASC,KACR,OAAO,EAGR,SAASC,KACR,OAAO,EAGR,SAASr8gB,GAAIs0G,EAAMj3G,EAAOpM,EAAU1b,EAAM+rB,EAAI4qQ,GAC7C,IAAIowQ,EAAQjxhB,EAGZ,GAAsB,kBAAVgS,EAAqB,CAShC,IAAMhS,IANmB,kBAAb4F,IAGX1b,EAAOA,GAAQ0b,EACfA,OAAWnR,GAEEud,EACb2C,GAAIs0G,EAAMjpH,EAAM4F,EAAU1b,EAAM8nB,EAAOhS,GAAQ6gR,GAEhD,OAAO53J,EAsBR,GAnBa,MAAR/+H,GAAsB,MAAN+rB,GAGpBA,EAAKrQ,EACL1b,EAAO0b,OAAWnR,GACD,MAANwhB,IACc,kBAAbrQ,GAGXqQ,EAAK/rB,EACLA,OAAOuK,IAIPwhB,EAAK/rB,EACLA,EAAO0b,EACPA,OAAWnR,KAGD,IAAPwhB,EACJA,EAAK+6gB,QACC,IAAM/6gB,EACZ,OAAOgzG,EAeR,OAZa,IAAR43J,IACJowQ,EAASh7gB,EACTA,EAAK,SAAUpf,GAId,OADAkpS,IAASrrR,IAAK7d,GACPo6hB,EAAO5uhB,MAAOhmB,KAAM+H,YAI5B6xB,EAAGqK,KAAO2wgB,EAAO3wgB,OAAU2wgB,EAAO3wgB,KAAOy/Q,EAAOz/Q,SAE1C2oG,EAAKnyH,MAAM,WACjBipS,EAAOlpS,MAAMlZ,IAAKtB,KAAM21B,EAAOiE,EAAI/rB,EAAM0b,MA+a3C,SAASsrhB,GAAgBrsiB,EAAImb,EAAMmxhB,GAG5BA,GAQN/C,GAAS/se,IAAKx8D,EAAImb,GAAM,GACxB+/R,EAAOlpS,MAAMlZ,IAAKkH,EAAImb,EAAM,CAC3Bo2N,WAAW,EACXx5O,QAAS,SAAUia,GAClB,IAAI3L,EACHkmiB,EAAQhD,GAASlyhB,IAAK7f,KAAM2jB,GAE7B,GAAyB,EAAlBnJ,EAAMw6hB,WAAmBh1iB,KAAM2jB,IAGrC,GAAMoxhB,GA4BQrxP,EAAOlpS,MAAMupR,QAASpgR,IAAU,IAAKu/Q,cAClD1oR,EAAMpT,uBAhBN,GARA2tiB,EAAQtviB,EAAMhF,KAAMsH,WACpBgqiB,GAAS/se,IAAKhlE,KAAM2jB,EAAMoxhB,GAG1B/0iB,KAAM2jB,KACN9U,EAASkjiB,GAASlyhB,IAAK7f,KAAM2jB,GAC7BouhB,GAAS/se,IAAKhlE,KAAM2jB,GAAM,GAErBoxhB,IAAUlmiB,EAMd,OAHA2L,EAAMitR,2BACNjtR,EAAMnT,iBAECwH,OAeEkmiB,IAGXhD,GAAS/se,IAAKhlE,KAAM2jB,EAAM+/R,EAAOlpS,MAAM5Q,QACtCmriB,EAAO,GACPA,EAAMtviB,MAAO,GACbzF,OAWDwa,EAAMpT,kBACNoT,EAAMqsR,8BAAgC6tQ,aArENt8hB,IAA7B25hB,GAASlyhB,IAAKrX,EAAImb,IACtB+/R,EAAOlpS,MAAMlZ,IAAKkH,EAAImb,EAAM+whB,IA5a/BhxP,EAAOlpS,MAAQ,CAEd8/G,OAAQ,GAERh5H,IAAK,SAAUsrI,EAAMj3G,EAAOp1B,EAASsN,EAAM0b,GAE1C,IAAI0rhB,EAAaC,EAAaxmZ,EAC7B5jH,EAAQorB,EAAG4sO,EACXiB,EAAS1kQ,EAAU1b,EAAMiiR,EAAYuvQ,EACrCC,EAAWrD,GAASlyhB,IAAK+sH,GAG1B,GAAM+ka,GAAY/ka,GAuClB,IAlCKrsI,EAAQA,UAEZA,GADA00iB,EAAc10iB,GACQA,QACtBgpB,EAAW0rhB,EAAY1rhB,UAKnBA,GACJm6R,EAAOrnS,KAAK0jO,gBAAiBt3M,GAAiBlf,GAIzChpB,EAAQ0jC,OACb1jC,EAAQ0jC,KAAOy/Q,EAAOz/Q,SAIf6G,EAASsqgB,EAAStqgB,UACzBA,EAASsqgB,EAAStqgB,OAAShkC,OAAOw4B,OAAQ,QAEnC41gB,EAAcE,EAASj2hB,UAC9B+1hB,EAAcE,EAASj2hB,OAAS,SAAU3e,GAIzC,OAAwCkjT,EAAOlpS,MAAM66hB,YAAc70iB,EAAEmjB,KACpE+/R,EAAOlpS,MAAM86hB,SAAStvhB,MAAO4mH,EAAM7kI,gBAAcqQ,IAMpD89C,GADAvgC,GAAUA,GAAS,IAAKhU,MAAOsthB,IAAmB,CAAE,KAC1C3uiB,OACF41D,KAEPvyC,EAAOwxhB,GADPzmZ,EAAM+lZ,GAAelmiB,KAAMonB,EAAOugC,KAAS,IACpB,GACvB0vO,GAAel3I,EAAK,IAAO,IAAKjhJ,MAAO,KAAM+3C,OAGvC7hC,IAKNogR,EAAU2f,EAAOlpS,MAAMupR,QAASpgR,IAAU,GAG1CA,GAAS4F,EAAWw6Q,EAAQb,aAAea,EAAQd,WAAct/Q,EAGjEogR,EAAU2f,EAAOlpS,MAAMupR,QAASpgR,IAAU,GAG1Cm/Q,EAAY4gB,EAAO56S,OAAQ,CAC1B6a,KAAMA,EACNwxhB,SAAUA,EACVtniB,KAAMA,EACNtN,QAASA,EACT0jC,KAAM1jC,EAAQ0jC,KACd1a,SAAUA,EACVk+gB,aAAcl+gB,GAAYm6R,EAAO3tN,KAAKp0E,MAAM8lhB,aAAavkgB,KAAM3Z,GAC/DwwN,UAAW6rD,EAAW30R,KAAM,MAC1BgkiB,IAGK51gB,EAAWyL,EAAQnnB,OAC1B0b,EAAWyL,EAAQnnB,GAAS,IACnB4xhB,cAAgB,EAGnBxxQ,EAAQ1oF,QACiD,IAA9D0oF,EAAQ1oF,MAAM56M,KAAMmsI,EAAM/+H,EAAM+3R,EAAYsvQ,IAEvCtoa,EAAKlsI,kBACTksI,EAAKlsI,iBAAkBijB,EAAMuxhB,IAK3BnxQ,EAAQziS,MACZyiS,EAAQziS,IAAIb,KAAMmsI,EAAMk2J,GAElBA,EAAUviS,QAAQ0jC,OACvB6+P,EAAUviS,QAAQ0jC,KAAO1jC,EAAQ0jC,OAK9B1a,EACJ8V,EAAS9vB,OAAQ8vB,EAASk2gB,gBAAiB,EAAGzyQ,GAE9CzjQ,EAASz+B,KAAMkiS,GAIhB4gB,EAAOlpS,MAAM8/G,OAAQ32G,IAAS,IAMhCniB,OAAQ,SAAUorI,EAAMj3G,EAAOp1B,EAASgpB,EAAUishB,GAEjD,IAAIjrd,EAAGkrd,EAAW/mZ,EACjB5jH,EAAQorB,EAAG4sO,EACXiB,EAAS1kQ,EAAU1b,EAAMiiR,EAAYuvQ,EACrCC,EAAWrD,GAASD,QAASlla,IAAUmla,GAASlyhB,IAAK+sH,GAEtD,GAAMwoa,IAAetqgB,EAASsqgB,EAAStqgB,QAAvC,CAOA,IADAorB,GADAvgC,GAAUA,GAAS,IAAKhU,MAAOsthB,IAAmB,CAAE,KAC1C3uiB,OACF41D,KAMP,GAJAvyC,EAAOwxhB,GADPzmZ,EAAM+lZ,GAAelmiB,KAAMonB,EAAOugC,KAAS,IACpB,GACvB0vO,GAAel3I,EAAK,IAAO,IAAKjhJ,MAAO,KAAM+3C,OAGvC7hC,EAAN,CAeA,IARAogR,EAAU2f,EAAOlpS,MAAMupR,QAASpgR,IAAU,GAE1C0b,EAAWyL,EADXnnB,GAAS4F,EAAWw6Q,EAAQb,aAAea,EAAQd,WAAct/Q,IACpC,GAC7B+qI,EAAMA,EAAK,IACV,IAAI1lG,OAAQ,UAAY48O,EAAW30R,KAAM,iBAAoB,WAG9DwkiB,EAAYlrd,EAAIlrD,EAAS/+B,OACjBiqF,KACPu4M,EAAYzjQ,EAAUkrD,IAEfird,GAAeL,IAAaryQ,EAAUqyQ,UACzC50iB,GAAWA,EAAQ0jC,OAAS6+P,EAAU7+P,MACtCyqH,IAAOA,EAAIxrH,KAAM4/P,EAAU/oD,YAC3BxwN,GAAYA,IAAau5Q,EAAUv5Q,WACxB,OAAbA,IAAqBu5Q,EAAUv5Q,YAChC8V,EAAS9vB,OAAQg7E,EAAG,GAEfu4M,EAAUv5Q,UACd8V,EAASk2gB,gBAELxxQ,EAAQviS,QACZuiS,EAAQviS,OAAOf,KAAMmsI,EAAMk2J,IAOzB2yQ,IAAcp2gB,EAAS/+B,SACrByjS,EAAQxG,WACkD,IAA/DwG,EAAQxG,SAAS98R,KAAMmsI,EAAMg5J,EAAYwvQ,EAASj2hB,SAElDukS,EAAOllF,YAAa5xF,EAAMjpH,EAAMyxhB,EAASj2hB,eAGnC2rB,EAAQnnB,SA1Cf,IAAMA,KAAQmnB,EACb44Q,EAAOlpS,MAAMhZ,OAAQorI,EAAMjpH,EAAOgS,EAAOugC,GAAK31D,EAASgpB,GAAU,GA8C/Dm6R,EAAO93P,cAAe9gB,IAC1BingB,GAASvwiB,OAAQorI,EAAM,mBAIzB0oa,SAAU,SAAUI,GAEnB,IAAI3piB,EAAGw+E,EAAGihD,EAAKxzC,EAAS8qM,EAAW6yQ,EAClCnvhB,EAAO,IAAIjhB,MAAOwC,UAAUzH,QAG5Bka,EAAQkpS,EAAOlpS,MAAMo7hB,IAAKF,GAE1Br2gB,GACC0ygB,GAASlyhB,IAAK7f,KAAM,WAAc8G,OAAOw4B,OAAQ,OAC/C9kB,EAAMmJ,OAAU,GACnBogR,EAAU2f,EAAOlpS,MAAMupR,QAASvpR,EAAMmJ,OAAU,GAKjD,IAFA6C,EAAM,GAAMhM,EAENzO,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAClCya,EAAMza,GAAMhE,UAAWgE,GAMxB,GAHAyO,EAAMshR,eAAiB97R,MAGlB+jS,EAAQ8xQ,cAA2D,IAA5C9xQ,EAAQ8xQ,YAAYp1iB,KAAMT,KAAMwa,GAA5D,CASA,IAJAm7hB,EAAejyP,EAAOlpS,MAAM6kB,SAAS5+B,KAAMT,KAAMwa,EAAO6kB,GAGxDtzB,EAAI,GACMisF,EAAU29c,EAAc5piB,QAAYyO,EAAMsqR,wBAInD,IAHAtqR,EAAM9L,cAAgBspF,EAAQ40C,KAE9BriD,EAAI,GACMu4M,EAAY9qM,EAAQ34D,SAAUkrD,QACtC/vE,EAAMqsR,iCAIDrsR,EAAMs7hB,aAAsC,IAAxBhzQ,EAAU/oD,YACnCv/N,EAAMs7hB,WAAW5ygB,KAAM4/P,EAAU/oD,aAEjCv/N,EAAMsoR,UAAYA,EAClBtoR,EAAM3M,KAAOi1R,EAAUj1R,UAKVuK,KAHbozH,IAAUk4K,EAAOlpS,MAAMupR,QAASjB,EAAUqyQ,WAAc,IAAKh2hB,QAC5D2jR,EAAUviS,SAAUylB,MAAOgyE,EAAQ40C,KAAMpmH,MAGT,KAAzBhM,EAAM3L,OAAS28H,KACrBhxH,EAAMnT,iBACNmT,EAAMpT,oBAYX,OAJK28R,EAAQgyQ,cACZhyQ,EAAQgyQ,aAAat1iB,KAAMT,KAAMwa,GAG3BA,EAAM3L,SAGdwwB,SAAU,SAAU7kB,EAAO6kB,GAC1B,IAAItzB,EAAG+2R,EAAWh2G,EAAKkpX,EAAiBC,EACvCN,EAAe,GACfJ,EAAgBl2gB,EAASk2gB,cACzB9rS,EAAMjvP,EAAM5T,OAGb,GAAK2uiB,GAIJ9rS,EAAIzuL,YAOc,UAAfxgE,EAAMmJ,MAAoBnJ,EAAMrY,QAAU,GAE7C,KAAQsnQ,IAAQzpQ,KAAMypQ,EAAMA,EAAIr/O,YAAcpqB,KAI7C,GAAsB,IAAjBypQ,EAAIzuL,WAAoC,UAAfxgE,EAAMmJ,OAAqC,IAAjB8lP,EAAIr+P,UAAsB,CAGjF,IAFA4qiB,EAAkB,GAClBC,EAAmB,GACblqiB,EAAI,EAAGA,EAAIwpiB,EAAexpiB,SAMEqM,IAA5B69hB,EAFLnpX,GAHAg2G,EAAYzjQ,EAAUtzB,IAGNwd,SAAW,OAG1B0shB,EAAkBnpX,GAAQg2G,EAAU2kQ,aACnC/jP,EAAQ52H,EAAK9sL,MAAOa,MAAO4oQ,IAAS,EACpCi6C,EAAOrnS,KAAMywK,EAAK9sL,KAAM,KAAM,CAAEypQ,IAAQnpQ,QAErC21iB,EAAkBnpX,IACtBkpX,EAAgBp1iB,KAAMkiS,GAGnBkzQ,EAAgB11iB,QACpBq1iB,EAAa/0iB,KAAM,CAAEgsI,KAAM68H,EAAKpqO,SAAU22gB,IAY9C,OALAvsS,EAAMzpQ,KACDu1iB,EAAgBl2gB,EAAS/+B,QAC7Bq1iB,EAAa/0iB,KAAM,CAAEgsI,KAAM68H,EAAKpqO,SAAUA,EAAS55B,MAAO8viB,KAGpDI,GAGRO,QAAS,SAAU1oiB,EAAM45R,GACxBtgS,OAAOi+D,eAAgB2+O,EAAOhhR,MAAMl9B,UAAWgI,EAAM,CACpDy3D,YAAY,EACZC,cAAc,EAEdrlD,IAAKq7D,EAAYksN,GAChB,WACC,GAAKpnS,KAAKo4G,cACT,OAAOgvL,EAAMpnS,KAAKo4G,gBAGpB,WACC,GAAKp4G,KAAKo4G,cACT,OAAOp4G,KAAKo4G,cAAe5qG,IAI9Bw3D,IAAK,SAAUpjE,GACdkF,OAAOi+D,eAAgB/kE,KAAMwN,EAAM,CAClCy3D,YAAY,EACZC,cAAc,EACdmwD,UAAU,EACVzzH,MAAOA,QAMXg0iB,IAAK,SAAUx9b,GACd,OAAOA,EAAesrM,EAAOmhP,SAC5Bzsb,EACA,IAAIsrM,EAAOhhR,MAAO01E,IAGpB2rL,QAAS,CACRn3R,KAAM,CAGLi2R,UAAU,GAEXxxQ,MAAO,CAGNgqL,MAAO,SAAUxtM,GAIhB,IAAIrF,EAAKxI,MAAQ6N,EAWjB,OARK6liB,GAAexwgB,KAAM16B,EAAGmb,OAC5Bnb,EAAG6oB,OAASwlO,EAAUruP,EAAI,UAG1BqsiB,GAAgBrsiB,EAAI,SAAS,IAIvB,GAERoB,QAAS,SAAUiE,GAIlB,IAAIrF,EAAKxI,MAAQ6N,EAUjB,OAPK6liB,GAAexwgB,KAAM16B,EAAGmb,OAC5Bnb,EAAG6oB,OAASwlO,EAAUruP,EAAI,UAE1BqsiB,GAAgBrsiB,EAAI,UAId,GAKRuqP,SAAU,SAAUv4O,GACnB,IAAI5T,EAAS4T,EAAM5T,OACnB,OAAO8siB,GAAexwgB,KAAMt8B,EAAO+c,OAClC/c,EAAOyqB,OAASwlO,EAAUjwP,EAAQ,UAClCmriB,GAASlyhB,IAAKjZ,EAAQ,UACtBiwP,EAAUjwP,EAAQ,OAIrBuviB,aAAc,CACbJ,aAAc,SAAUv7hB,QAIDpC,IAAjBoC,EAAM3L,QAAwB2L,EAAM49F,gBACxC59F,EAAM49F,cAAcirE,YAAc7oK,EAAM3L,YA0F7C60S,EAAOllF,YAAc,SAAU5xF,EAAMjpH,EAAMxE,GAGrCytH,EAAKzsI,qBACTysI,EAAKzsI,oBAAqBwjB,EAAMxE,KAIlCukS,EAAOhhR,MAAQ,SAAUk/B,EAAK49C,GAG7B,KAAQx/G,gBAAgB0jT,EAAOhhR,OAC9B,OAAO,IAAIghR,EAAOhhR,MAAOk/B,EAAK49C,GAI1B59C,GAAOA,EAAIj+C,MACf3jB,KAAKo4G,cAAgBx2C,EACrB5hE,KAAK2jB,KAAOi+C,EAAIj+C,KAIhB3jB,KAAKy8R,mBAAqB76N,EAAIuiE,uBACH/rH,IAAzBwpD,EAAIuiE,mBAGgB,IAApBviE,EAAIyhH,YACLqxX,GACAC,GAKD30iB,KAAK4G,OAAWg7D,EAAIh7D,QAAkC,IAAxBg7D,EAAIh7D,OAAOo0E,SACxCpZ,EAAIh7D,OAAOwjB,WACXw3C,EAAIh7D,OAEL5G,KAAK0O,cAAgBkzD,EAAIlzD,cACzB1O,KAAKqsC,cAAgBu1B,EAAIv1B,eAIzBrsC,KAAK2jB,KAAOi+C,EAIR49C,GACJkkM,EAAO56S,OAAQ9I,KAAMw/G,GAItBx/G,KAAKgvI,UAAYptE,GAAOA,EAAIotE,WAAa1gE,KAAKskC,MAG9C5yG,KAAM0jT,EAAOmhP,UAAY,IAKbr/hB,UAAY,CACxBgJ,YAAak1S,EAAOhhR,MACpB+5P,mBAAoBk4Q,GACpB7vQ,qBAAsB6vQ,GACtB9tQ,8BAA+B8tQ,GAC/ByB,aAAa,EAEb/uiB,eAAgB,WACf,IAAI7G,EAAIR,KAAKo4G,cAEbp4G,KAAKy8R,mBAAqBi4Q,GAErBl0iB,IAAMR,KAAKo2iB,aACf51iB,EAAE6G,kBAGJD,gBAAiB,WAChB,IAAI5G,EAAIR,KAAKo4G,cAEbp4G,KAAK8kS,qBAAuB4vQ,GAEvBl0iB,IAAMR,KAAKo2iB,aACf51iB,EAAE4G,mBAGJqgS,yBAA0B,WACzB,IAAIjnS,EAAIR,KAAKo4G,cAEbp4G,KAAK6mS,8BAAgC6tQ,GAEhCl0iB,IAAMR,KAAKo2iB,aACf51iB,EAAEinS,2BAGHznS,KAAKoH,oBAKPs8S,EAAOjpS,KAAM,CACZ4C,QAAQ,EACRg5hB,SAAS,EACT97P,YAAY,EACZ1S,gBAAgB,EAChB7hQ,SAAS,EACTqoG,QAAQ,EACRioa,YAAY,EACZ3pf,SAAS,EACT/kB,OAAO,EACPE,OAAO,EACP3kC,UAAU,EACVypQ,MAAM,EACN,MAAQ,EACRrpG,MAAM,EACN69F,UAAU,EACVp6P,KAAK,EACLspD,SAAS,EACTnuD,QAAQ,EACRqkY,SAAS,EACTj4P,SAAS,EACTC,SAAS,EACT9/F,SAAS,EACTC,SAAS,EACT4mQ,WAAW,EACXzL,aAAa,EACb8U,SAAS,EACT23P,SAAS,EACTC,eAAe,EACfC,WAAW,EACXltZ,SAAS,EACTrsG,OAAO,GACLwmQ,EAAOlpS,MAAM07hB,SAEhBxyP,EAAOjpS,KAAM,CAAE1Z,MAAO,UAAW0nD,KAAM,aAAc,SAAU9kC,EAAMu/Q,GAEpE,SAASwzQ,EAAoBhB,GAC5B,GAAKlziB,EAASm0iB,aAAe,CAS5B,IAAIx3hB,EAAS4yhB,GAASlyhB,IAAK7f,KAAM,UAChCwa,EAAQkpS,EAAOlpS,MAAMo7hB,IAAKF,GAC3Bl7hB,EAAMmJ,KAA4B,YAArB+xhB,EAAY/xhB,KAAqB,QAAU,OACxDnJ,EAAM47hB,aAAc,EAGpBj3hB,EAAQu2hB,GAMHl7hB,EAAM5T,SAAW4T,EAAM9L,eAK3ByQ,EAAQ3E,QAMTkpS,EAAOlpS,MAAMo8hB,SAAU1zQ,EAAcwyQ,EAAY9uiB,OAChD88S,EAAOlpS,MAAMo7hB,IAAKF,IAIrBhyP,EAAOlpS,MAAMupR,QAASpgR,GAAS,CAG9B03L,MAAO,WAEN,IAAIw7V,EAOJ,GAFAhC,GAAgB70iB,KAAM2jB,GAAM,IAEvBnhB,EAASm0iB,aAcb,OAAO,GARPE,EAAW9E,GAASlyhB,IAAK7f,KAAMkjS,KAE9BljS,KAAKU,iBAAkBwiS,EAAcwzQ,GAEtC3E,GAAS/se,IAAKhlE,KAAMkjS,GAAgB2zQ,GAAY,GAAM,IAOxDjtiB,QAAS,WAMR,OAHAiriB,GAAgB70iB,KAAM2jB,IAGf,GAGR45Q,SAAU,WACT,IAAIs5Q,EAEJ,IAAKr0iB,EAASm0iB,aAWb,OAAO,GAVPE,EAAW9E,GAASlyhB,IAAK7f,KAAMkjS,GAAiB,GAK/C6uQ,GAAS/se,IAAKhlE,KAAMkjS,EAAc2zQ,IAHlC72iB,KAAKG,oBAAqB+iS,EAAcwzQ,GACxC3E,GAASvwiB,OAAQxB,KAAMkjS,KAa1BnwC,SAAU,SAAUv4O,GACnB,OAAOu3hB,GAASlyhB,IAAKrF,EAAM5T,OAAQ+c,IAGpCu/Q,aAAcA,GAefwgB,EAAOlpS,MAAMupR,QAASb,GAAiB,CACtC7nF,MAAO,WAIN,IAAIlkI,EAAMn3E,KAAK2gI,eAAiB3gI,KAAKwC,UAAYxC,KAChD82iB,EAAat0iB,EAASm0iB,aAAe32iB,KAAOm3E,EAC5C0/d,EAAW9E,GAASlyhB,IAAKi3hB,EAAY5zQ,GAMhC2zQ,IACAr0iB,EAASm0iB,aACb32iB,KAAKU,iBAAkBwiS,EAAcwzQ,GAErCv/d,EAAIz2E,iBAAkBijB,EAAM+yhB,GAAoB,IAGlD3E,GAAS/se,IAAK8xe,EAAY5zQ,GAAgB2zQ,GAAY,GAAM,IAE7Dt5Q,SAAU,WACT,IAAIpmN,EAAMn3E,KAAK2gI,eAAiB3gI,KAAKwC,UAAYxC,KAChD82iB,EAAat0iB,EAASm0iB,aAAe32iB,KAAOm3E,EAC5C0/d,EAAW9E,GAASlyhB,IAAKi3hB,EAAY5zQ,GAAiB,EAEjD2zQ,EAQL9E,GAAS/se,IAAK8xe,EAAY5zQ,EAAc2zQ,IAPnCr0iB,EAASm0iB,aACb32iB,KAAKG,oBAAqB+iS,EAAcwzQ,GAExCv/d,EAAIh3E,oBAAqBwjB,EAAM+yhB,GAAoB,GAEpD3E,GAASvwiB,OAAQs1iB,EAAY5zQ,SAgBjCwgB,EAAOjpS,KAAM,CACZ0b,WAAY,YACZC,WAAY,WACZktQ,aAAc,cACdC,aAAc,eACZ,SAAUwzQ,EAAMnB,GAClBlyP,EAAOlpS,MAAMupR,QAASgzQ,GAAS,CAC9B7zQ,aAAc0yQ,EACd3yQ,SAAU2yQ,EAEVz2hB,OAAQ,SAAU3E,GACjB,IAAIgxH,EACH5kI,EAAS5G,KACTg3iB,EAAUx8hB,EAAM6xB,cAChBy2P,EAAYtoR,EAAMsoR,UASnB,OALMk0Q,IAAaA,IAAYpwiB,GAAW88S,EAAO3kS,SAAUnY,EAAQowiB,MAClEx8hB,EAAMmJ,KAAOm/Q,EAAUqyQ,SACvB3pa,EAAMs3J,EAAUviS,QAAQylB,MAAOhmB,KAAM+H,WACrCyS,EAAMmJ,KAAOiyhB,GAEPpqa,OAKVk4K,EAAO9pR,GAAG9wB,OAAQ,CAEjBwvB,GAAI,SAAU3C,EAAOpM,EAAU1b,EAAM+rB,GACpC,OAAOtB,GAAIt4B,KAAM21B,EAAOpM,EAAU1b,EAAM+rB,IAEzC4qQ,IAAK,SAAU7uQ,EAAOpM,EAAU1b,EAAM+rB,GACrC,OAAOtB,GAAIt4B,KAAM21B,EAAOpM,EAAU1b,EAAM+rB,EAAI,IAE7CvB,IAAK,SAAU1C,EAAOpM,EAAUqQ,GAC/B,IAAIkpQ,EAAWn/Q,EACf,GAAKgS,GAASA,EAAMtuB,gBAAkBsuB,EAAMmtQ,UAW3C,OARAA,EAAYntQ,EAAMmtQ,UAClB4gB,EAAQ/tR,EAAMmmQ,gBAAiBzjQ,IAC9ByqQ,EAAU/oD,UACT+oD,EAAUqyQ,SAAW,IAAMryQ,EAAU/oD,UACrC+oD,EAAUqyQ,SACXryQ,EAAUv5Q,SACVu5Q,EAAUviS,SAEJP,KAER,GAAsB,kBAAV21B,EAAqB,CAGhC,IAAMhS,KAAQgS,EACb31B,KAAKq4B,IAAK1U,EAAM4F,EAAUoM,EAAOhS,IAElC,OAAO3jB,KAWR,OATkB,IAAbupB,GAA0C,oBAAbA,IAGjCqQ,EAAKrQ,EACLA,OAAWnR,IAEA,IAAPwhB,IACJA,EAAK+6gB,IAEC30iB,KAAKya,MAAM,WACjBipS,EAAOlpS,MAAMhZ,OAAQxB,KAAM21B,EAAOiE,EAAIrQ,SAMzC,IAKC0thB,GAAe,wBAGfC,GAAW,oCAEXC,GAAe,6BAGhB,SAASC,GAAoBxqa,EAAM9rH,GAClC,OAAK+1O,EAAUjqH,EAAM,UACpBiqH,EAA+B,KAArB/1O,EAAQk6D,SAAkBl6D,EAAUA,EAAQiiG,WAAY,OAE3D2gM,EAAQ92K,GAAO7hI,SAAU,SAAW,IAGrC6hI,EAIR,SAASyqa,GAAezqa,GAEvB,OADAA,EAAKjpH,MAAyC,OAAhCipH,EAAK5iI,aAAc,SAAsB,IAAM4iI,EAAKjpH,KAC3DipH,EAER,SAAS0qa,GAAe1qa,GAOvB,MAN2C,WAApCA,EAAKjpH,MAAQ,IAAKle,MAAO,EAAG,GAClCmnI,EAAKjpH,KAAOipH,EAAKjpH,KAAKle,MAAO,GAE7BmnI,EAAK5oB,gBAAiB,QAGhB4oB,EAGR,SAAS2qa,GAAgB31e,EAAK41e,GAC7B,IAAIzriB,EAAGmkF,EAAGvsE,EAAgB8zhB,EAAUC,EAAU5sgB,EAE9C,GAAuB,IAAlB0sgB,EAAKx8d,SAAV,CAKA,GAAK+2d,GAASD,QAASlwe,KAEtB92B,EADWingB,GAASlyhB,IAAK+hD,GACP92B,QAKjB,IAAMnnB,KAFNouhB,GAASvwiB,OAAQg2iB,EAAM,iBAET1sgB,EACb,IAAM/+B,EAAI,EAAGmkF,EAAIplD,EAAQnnB,GAAOrjB,OAAQyL,EAAImkF,EAAGnkF,IAC9C23S,EAAOlpS,MAAMlZ,IAAKk2iB,EAAM7zhB,EAAMmnB,EAAQnnB,GAAQ5X,IAO7CimiB,GAASF,QAASlwe,KACtB61e,EAAWzF,GAASd,OAAQtve,GAC5B81e,EAAWh0P,EAAO56S,OAAQ,GAAI2uiB,GAE9BzF,GAAShte,IAAKwye,EAAME,KAKtB,SAASC,GAAU/1e,EAAK41e,GACvB,IAAI3gT,EAAW2gT,EAAK3gT,SAAS5zN,cAGX,UAAb4zN,GAAwB68S,GAAexwgB,KAAM0+B,EAAIj+C,MACrD6zhB,EAAK1wQ,QAAUllO,EAAIklO,QAGK,UAAbjwC,GAAqC,aAAbA,IACnC2gT,EAAKjjgB,aAAeqtB,EAAIrtB,cAI1B,SAASqjgB,GAAU7mgB,EAAYvqB,EAAMgoC,EAAU8lf,GAG9C9thB,EAAOq9gB,EAAMr9gB,GAEb,IAAI65K,EAAUr2H,EAAOo/D,EAASyua,EAAY5he,EAAMkB,EAC/CprE,EAAI,EACJmkF,EAAIn/C,EAAWzwC,OACfw3iB,EAAW5nd,EAAI,EACftuF,EAAQ4kB,EAAM,GACduxhB,EAAkB78d,EAAYt5E,GAG/B,GAAKm2iB,GACD7nd,EAAI,GAAsB,kBAAVtuF,IAChBi2S,EAAQg8P,YAAcqD,GAASh0gB,KAAMthC,GACxC,OAAOmvC,EAAWt2B,MAAM,SAAU5Z,GACjC,IAAI+lB,EAAOmqB,EAAW6W,GAAI/mD,GACrBk3iB,IACJvxhB,EAAM,GAAM5kB,EAAMnB,KAAMT,KAAMa,EAAO+lB,EAAK4gC,SAE3Cowf,GAAUhxhB,EAAMJ,EAAMgoC,EAAU8lf,MAIlC,GAAKpkd,IAEJlmB,GADAq2H,EAAWg0W,GAAe7thB,EAAMuqB,EAAY,GAAI4vF,eAAe,EAAO5vF,EAAYujgB,IACjEvxb,WAEmB,IAA/Bs9E,EAASz9E,WAAWtiH,SACxB+/L,EAAWr2H,GAIPA,GAASsqe,GAAU,CAOvB,IALAuD,GADAzua,EAAUs6K,EAAOx9S,IAAK8tiB,GAAQ3zW,EAAU,UAAYg3W,KAC/B/2iB,OAKbyL,EAAImkF,EAAGnkF,IACdkqE,EAAOoqH,EAEFt0L,IAAM+riB,IACV7he,EAAOytO,EAAOpoO,MAAOrF,GAAM,GAAM,GAG5B4he,GAIJn0P,EAAOzmJ,MAAO7zB,EAAS4qa,GAAQ/9d,EAAM,YAIvCznB,EAAS/tD,KAAMswC,EAAYhlC,GAAKkqE,EAAMlqE,GAGvC,GAAK8riB,EAOJ,IANA1ge,EAAMiyD,EAASA,EAAQ9oI,OAAS,GAAIqgI,cAGpC+iL,EAAOx9S,IAAKkjI,EAASkua,IAGfvriB,EAAI,EAAGA,EAAI8riB,EAAY9riB,IAC5BkqE,EAAOmzD,EAASr9H,GACX6niB,GAAY1wgB,KAAM+yC,EAAKtyD,MAAQ,MAClCouhB,GAASb,OAAQj7d,EAAM,eACxBytO,EAAO3kS,SAAUo4D,EAAKlB,KAEjBA,EAAKrU,KAA8C,YAArCqU,EAAKtyD,MAAQ,IAAKsf,cAG/BygR,EAAOs0P,WAAa/he,EAAKiud,UAC7BxgP,EAAOs0P,SAAU/he,EAAKrU,IAAK,CAC1Bqie,MAAOhud,EAAKgud,OAAShud,EAAKjsE,aAAc,UACtCmtE,GASJgtd,EAASlud,EAAKnzE,YAAY4lD,QAASyuf,GAAc,IAAMlhe,EAAMkB,IAQnE,OAAOpmC,EAGR,SAASvvC,GAAQorI,EAAMrjH,EAAUy6R,GAKhC,IAJA,IAAI/tO,EACHu3K,EAAQjkO,EAAWm6R,EAAO99S,OAAQ2jB,EAAUqjH,GAASA,EACrD7gI,EAAI,EAE4B,OAAvBkqE,EAAOu3K,EAAOzhP,IAAeA,IAChCi4S,GAA8B,IAAlB/tO,EAAK+E,UACtB0oO,EAAOn2D,UAAWymT,GAAQ/9d,IAGtBA,EAAK7rD,aACJ45R,GAAY8uP,GAAY78d,IAC5Bg+d,GAAeD,GAAQ/9d,EAAM,WAE9BA,EAAK7rD,WAAW+iC,YAAa8oB,IAI/B,OAAO22D,EAGR82K,EAAO56S,OAAQ,CACd0riB,cAAe,SAAUhtf,GACxB,OAAOA,GAGR8zB,MAAO,SAAUsxD,EAAMqra,EAAeC,GACrC,IAAInsiB,EAAGmkF,EAAGiod,EAAaC,EACtB98d,EAAQsxD,EAAK85D,WAAW,GACxB2xW,EAASvF,GAAYlma,GAGtB,IAAMirK,EAAQi8P,iBAAsC,IAAlBlna,EAAK5xD,UAAoC,KAAlB4xD,EAAK5xD,YAC3D0oO,EAAOuhP,SAAUr4Z,GAOnB,IAHAwra,EAAepE,GAAQ14d,GAGjBvvE,EAAI,EAAGmkF,GAFbiod,EAAcnE,GAAQpna,IAEOtsI,OAAQyL,EAAImkF,EAAGnkF,IAC3C4riB,GAAUQ,EAAapsiB,GAAKqsiB,EAAcrsiB,IAK5C,GAAKksiB,EACJ,GAAKC,EAIJ,IAHAC,EAAcA,GAAenE,GAAQpna,GACrCwra,EAAeA,GAAgBpE,GAAQ14d,GAEjCvvE,EAAI,EAAGmkF,EAAIiod,EAAY73iB,OAAQyL,EAAImkF,EAAGnkF,IAC3CwriB,GAAgBY,EAAapsiB,GAAKqsiB,EAAcrsiB,SAGjDwriB,GAAgB3qa,EAAMtxD,GAWxB,OANA88d,EAAepE,GAAQ14d,EAAO,WACZh7E,OAAS,GAC1B2ziB,GAAemE,GAAeC,GAAUrE,GAAQpna,EAAM,WAIhDtxD,GAGRiyK,UAAW,SAAUi3S,GAKpB,IAJA,IAAI32hB,EAAM++H,EAAMjpH,EACfogR,EAAU2f,EAAOlpS,MAAMupR,QACvBh4R,EAAI,OAE6BqM,KAAxBw0H,EAAO43Z,EAAOz4hB,IAAqBA,IAC5C,GAAK4liB,GAAY/ka,GAAS,CACzB,GAAO/+H,EAAO++H,EAAMmla,GAASlN,SAAc,CAC1C,GAAKh3hB,EAAKi9B,OACT,IAAMnnB,KAAQ9V,EAAKi9B,OACbi5P,EAASpgR,GACb+/R,EAAOlpS,MAAMhZ,OAAQorI,EAAMjpH,GAI3B+/R,EAAOllF,YAAa5xF,EAAMjpH,EAAM9V,EAAKsR,QAOxCytH,EAAMmla,GAASlN,cAAYzshB,EAEvBw0H,EAAMola,GAASnN,WAInBj4Z,EAAMola,GAASnN,cAAYzshB,OAOhCsrS,EAAO9pR,GAAG9wB,OAAQ,CACjBqkJ,OAAQ,SAAU5jI,GACjB,OAAO/nB,GAAQxB,KAAMupB,GAAU,IAGhC/nB,OAAQ,SAAU+nB,GACjB,OAAO/nB,GAAQxB,KAAMupB,IAGtB5mB,KAAM,SAAUf,GACf,OAAOsviB,GAAQlxiB,MAAM,SAAU4B,GAC9B,YAAiBwW,IAAVxW,EACN8hT,EAAO/gT,KAAM3C,MACbA,KAAKyqE,QAAQhwD,MAAM,WACK,IAAlBza,KAAKg7E,UAAoC,KAAlBh7E,KAAKg7E,UAAqC,IAAlBh7E,KAAKg7E,WACxDh7E,KAAK8C,YAAclB,QAGpB,KAAMA,EAAOmG,UAAUzH,SAG3Byf,OAAQ,WACP,OAAO63hB,GAAU53iB,KAAM+H,WAAW,SAAU6kI,GACpB,IAAlB5sI,KAAKg7E,UAAoC,KAAlBh7E,KAAKg7E,UAAqC,IAAlBh7E,KAAKg7E,UAC3Co8d,GAAoBp3iB,KAAM4sI,GAChCp1D,YAAao1D,OAKvBgpH,QAAS,WACR,OAAOgiT,GAAU53iB,KAAM+H,WAAW,SAAU6kI,GAC3C,GAAuB,IAAlB5sI,KAAKg7E,UAAoC,KAAlBh7E,KAAKg7E,UAAqC,IAAlBh7E,KAAKg7E,SAAiB,CACzE,IAAIp0E,EAASwwiB,GAAoBp3iB,KAAM4sI,GACvChmI,EAAOg7H,aAAcgL,EAAMhmI,EAAOm8G,iBAKrC6hD,OAAQ,WACP,OAAOgzY,GAAU53iB,KAAM+H,WAAW,SAAU6kI,GACtC5sI,KAAKoqB,YACTpqB,KAAKoqB,WAAWw3G,aAAcgL,EAAM5sI,UAKvC6kK,MAAO,WACN,OAAO+yY,GAAU53iB,KAAM+H,WAAW,SAAU6kI,GACtC5sI,KAAKoqB,YACTpqB,KAAKoqB,WAAWw3G,aAAcgL,EAAM5sI,KAAK0iH,iBAK5Cj4C,MAAO,WAIN,IAHA,IAAImiE,EACH7gI,EAAI,EAE2B,OAAtB6gI,EAAO5sI,KAAM+L,IAAeA,IACd,IAAlB6gI,EAAK5xD,WAGT0oO,EAAOn2D,UAAWymT,GAAQpna,GAAM,IAGhCA,EAAK9pI,YAAc,IAIrB,OAAO9C,MAGRs7E,MAAO,SAAU28d,EAAeC,GAI/B,OAHAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDl4iB,KAAKkG,KAAK,WAChB,OAAOw9S,EAAOpoO,MAAOt7E,KAAMi4iB,EAAeC,OAI5C1wf,KAAM,SAAU5lD,GACf,OAAOsviB,GAAQlxiB,MAAM,SAAU4B,GAC9B,IAAIgrI,EAAO5sI,KAAM,IAAO,GACvB+L,EAAI,EACJmkF,EAAIlwF,KAAKM,OAEV,QAAe8X,IAAVxW,GAAyC,IAAlBgrI,EAAK5xD,SAChC,OAAO4xD,EAAKrsE,UAIb,GAAsB,kBAAV3+D,IAAuBq1iB,GAAa/zgB,KAAMthC,KACpDmyiB,IAAWJ,GAASpliB,KAAM3M,IAAW,CAAE,GAAI,KAAQ,GAAIqhC,eAAkB,CAE1ErhC,EAAQ8hT,EAAO8wP,cAAe5yiB,GAE9B,IACC,KAAQmK,EAAImkF,EAAGnkF,IAIS,KAHvB6gI,EAAO5sI,KAAM+L,IAAO,IAGVivE,WACT0oO,EAAOn2D,UAAWymT,GAAQpna,GAAM,IAChCA,EAAKrsE,UAAY3+D,GAInBgrI,EAAO,EAGN,MAAQpsI,KAGNosI,GACJ5sI,KAAKyqE,QAAQ1qD,OAAQne,KAEpB,KAAMA,EAAOmG,UAAUzH,SAG3By1P,YAAa,WACZ,IAAIu+S,EAAU,GAGd,OAAOsD,GAAU53iB,KAAM+H,WAAW,SAAU6kI,GAC3C,IAAInhI,EAASzL,KAAKoqB,WAEbs5R,EAAOshP,QAAShliB,KAAMs0iB,GAAY,IACtC5wP,EAAOn2D,UAAWymT,GAAQh0iB,OACrByL,GACJA,EAAO03G,aAAcypB,EAAM5sI,SAK3Bs0iB,MAIL5wP,EAAOjpS,KAAM,CACZwd,SAAU,SACV+P,UAAW,UACX45F,aAAc,SACdi0H,YAAa,QACbx9D,WAAY,gBACV,SAAU7qL,EAAMqtH,GAClB6oL,EAAO9pR,GAAIpsB,GAAS,SAAU+b,GAO7B,IANA,IAAIi7gB,EACHh5Z,EAAM,GACN9kD,EAASg9N,EAAQn6R,GACjB+yG,EAAO51C,EAAOpmF,OAAS,EACvByL,EAAI,EAEGA,GAAKuwH,EAAMvwH,IAClBy4hB,EAAQz4hB,IAAMuwH,EAAOt8H,KAAOA,KAAKs7E,OAAO,GACxCooO,EAAQh9N,EAAQ36E,IAAO8uH,GAAY2pa,GAInC5jiB,EAAKolB,MAAOwlH,EAAKg5Z,EAAM3khB,OAGxB,OAAO7f,KAAKukiB,UAAW/4Z,OAGzB,IAAI8sa,GAAY,IAAItvf,OAAQ,KAAO2pf,GAAO,kBAAmB,KAEzD4F,GAAc,MAGdx5R,GAAY,SAAUnyI,GAKxB,IAAIggI,EAAOhgI,EAAKjM,cAAc0wE,YAM9B,OAJMu7D,GAASA,EAAK4rS,SACnB5rS,EAAOnnP,GAGDmnP,EAAKrqI,iBAAkBqK,IAG5B+nD,GAAO,SAAU/nD,EAAMxyH,EAASo0C,GACnC,IAAIg9E,EAAKh+H,EACRu3H,EAAM,GAGP,IAAMv3H,KAAQ4M,EACb2qH,EAAKv3H,GAASo/H,EAAK3uH,MAAOzQ,GAC1Bo/H,EAAK3uH,MAAOzQ,GAAS4M,EAAS5M,GAM/B,IAAMA,KAHNg+H,EAAMh9E,EAAS/tD,KAAMmsI,GAGPxyH,EACbwyH,EAAK3uH,MAAOzQ,GAASu3H,EAAKv3H,GAG3B,OAAOg+H,GAIJita,GAAY,IAAIzvf,OAAQ6pf,GAAU5hiB,KAAM,KAAO,KAiJnD,SAASyniB,GAAQ9ra,EAAMp/H,EAAMmriB,GAC5B,IAAIrniB,EAAOmN,EAAUO,EAAUwsH,EAC9Bota,EAAeL,GAAYr1gB,KAAM11B,GAMjCyQ,EAAQ2uH,EAAK3uH,MAoEd,OAlEA06hB,EAAWA,GAAY55R,GAAWnyI,MAgBjCpB,EAAMmta,EAASrtO,iBAAkB99T,IAAUmriB,EAAUnriB,GAEhDoriB,GAAgBpta,IAkBpBA,EAAMA,EAAI9iF,QAAS28e,EAAU,YAAUjthB,GAG3B,KAARozH,GAAesna,GAAYlma,KAC/BpB,EAAMk4K,EAAOzlS,MAAO2uH,EAAMp/H,KAQrBqqS,EAAQghQ,kBAAoBP,GAAUp1gB,KAAMsoG,IAASita,GAAUv1gB,KAAM11B,KAG1E8D,EAAQ2M,EAAM3M,MACdmN,EAAWR,EAAMQ,SACjBO,EAAWf,EAAMe,SAGjBf,EAAMQ,SAAWR,EAAMe,SAAWf,EAAM3M,MAAQk6H,EAChDA,EAAMmta,EAASrniB,MAGf2M,EAAM3M,MAAQA,EACd2M,EAAMQ,SAAWA,EACjBR,EAAMe,SAAWA,SAIJ5G,IAARozH,EAINA,EAAM,GACNA,EAIF,SAASsta,GAAcC,EAAaC,GAGnC,MAAO,CACNn5hB,IAAK,WACJ,IAAKk5hB,IASL,OAAS/4iB,KAAK6f,IAAMm5hB,GAAShzhB,MAAOhmB,KAAM+H,kBALlC/H,KAAK6f,OA3OhB,WAIC,SAASo5hB,IAGR,GAAM91gB,EAAN,CAIArjB,EAAU7B,MAAMoiH,QAAU,+EAE1Bl9F,EAAIllB,MAAMoiH,QACT,4HAGD53F,GAAgB+uC,YAAa13D,GAAY03D,YAAar0C,GAEtD,IAAI+1gB,EAAWzzhB,EAAO88G,iBAAkBp/F,GACxCg2gB,EAAoC,OAAjBD,EAASpgiB,IAG5BsgiB,EAAsE,KAA9CC,EAAoBH,EAAStiT,YAIrDzzN,EAAIllB,MAAMF,MAAQ,MAClBu7hB,EAA6D,KAAzCD,EAAoBH,EAASn7hB,OAIjDw7hB,EAAgE,KAAzCF,EAAoBH,EAAS5niB,OAMpD6xB,EAAIllB,MAAMkI,SAAW,WACrBqzhB,EAAiE,KAA9CH,EAAoBl2gB,EAAIrmB,YAAc,GAEzD2rB,GAAgB0kB,YAAartC,GAI7BqjB,EAAM,MAGP,SAASk2gB,EAAoB50W,GAC5B,OAAO9+K,KAAK6H,MAAOmoB,WAAY8uJ,IAGhC,IAAI00W,EAAkBI,EAAsBC,EAAkBF,EAC7DG,EAAyBL,EACzBt5hB,EAAYtd,EAAS4gC,cAAe,OACpCD,EAAM3gC,EAAS4gC,cAAe,OAGzBD,EAAIllB,QAMVklB,EAAIllB,MAAMy7hB,eAAiB,cAC3Bv2gB,EAAIujK,WAAW,GAAOzoL,MAAMy7hB,eAAiB,GAC7C7hQ,EAAQ8hQ,gBAA+C,gBAA7Bx2gB,EAAIllB,MAAMy7hB,eAEpCh2P,EAAO56S,OAAQ+uS,EAAS,CACvB+hQ,kBAAmB,WAElB,OADAX,IACOM,GAERV,eAAgB,WAEf,OADAI,IACOK,GAERO,cAAe,WAEd,OADAZ,IACOE,GAERW,mBAAoB,WAEnB,OADAb,IACOG,GAERW,cAAe,WAEd,OADAd,IACOO,GAYRQ,qBAAsB,WACrB,IAAI/jd,EAAO27K,EAAIqoS,EAASC,EAmCxB,OAlCgC,MAA3BT,IACJxjd,EAAQzzF,EAAS4gC,cAAe,SAChCwuO,EAAKpvQ,EAAS4gC,cAAe,MAC7B62gB,EAAUz3iB,EAAS4gC,cAAe,OAElC6yD,EAAMh4E,MAAMoiH,QAAU,2DACtBuxI,EAAG3zP,MAAMoiH,QAAU,mBAKnBuxI,EAAG3zP,MAAM1M,OAAS,MAClB0oiB,EAAQh8hB,MAAM1M,OAAS,MAQvB0oiB,EAAQh8hB,MAAMoB,QAAU,QAExBopB,GACE+uC,YAAaye,GACbze,YAAao6L,GACbp6L,YAAayie,GAEfC,EAAUz0hB,EAAO88G,iBAAkBqvI,GACnC6nS,EAA4BxjgB,SAAUikgB,EAAQ3oiB,OAAQ,IACrD0kC,SAAUikgB,EAAQjja,eAAgB,IAClChhG,SAAUikgB,EAAQC,kBAAmB,MAAWvoS,EAAG70P,aAEpD0rB,GAAgB0kB,YAAa8oC,IAEvBwjd,MAvIV,GAsPA,IAAI76R,GAAc,CAAE,SAAU,MAAO,MACpCw7R,GAAa53iB,EAAS4gC,cAAe,OAAQnlB,MAC7Co8hB,GAAc,GAkBf,SAASC,GAAe9siB,GACvB,IAAI6uH,EAAQqnL,EAAO62P,SAAU/siB,IAAU6siB,GAAa7siB,GAEpD,OAAK6uH,IAGA7uH,KAAQ4siB,GACL5siB,EAED6siB,GAAa7siB,GAxBrB,SAAyBA,GAMxB,IAHA,IAAIgtiB,EAAUhtiB,EAAM,GAAIk4G,cAAgBl4G,EAAK/H,MAAO,GACnDsG,EAAI6yQ,GAAYt+Q,OAETyL,KAEP,IADAyB,EAAOoxQ,GAAa7yQ,GAAMyuiB,KACbJ,GACZ,OAAO5siB,EAeoBitiB,CAAgBjtiB,IAAUA,GAIxD,IAKCktiB,GAAe,4BACfC,GAAU,CAAEx0hB,SAAU,WAAYovC,WAAY,SAAUl2C,QAAS,SACjEu7hB,GAAqB,CACpBvqS,cAAe,IACfljE,WAAY,OAGd,SAAS0tW,GAAmBlW,EAAO/iiB,EAAOk5iB,GAIzC,IAAI/hd,EAAU65c,GAAQrkiB,KAAM3M,GAC5B,OAAOm3F,EAGNpzE,KAAKC,IAAK,EAAGmzE,EAAS,IAAQ+hd,GAAY,KAAU/hd,EAAS,IAAO,MACpEn3F,EAGF,SAASm5iB,GAAoBnua,EAAM10H,EAAWgjQ,EAAK8C,EAAap8O,EAAQo5gB,GACvE,IAAIjviB,EAAkB,UAAdmM,EAAwB,EAAI,EACnCk2Q,EAAQ,EACRpxQ,EAAQ,EACRi+hB,EAAc,EAGf,GAAK//R,KAAU8C,EAAc,SAAW,WACvC,OAAO,EAGR,KAAQjyQ,EAAI,EAAGA,GAAK,EAKN,WAARmvQ,IACJ+/R,GAAev3P,EAAOroS,IAAKuxH,EAAMsuI,EAAM23R,GAAW9miB,IAAK,EAAM61B,IAIxDo8O,GAmBQ,YAAR9C,IACJl+P,GAAS0mS,EAAOroS,IAAKuxH,EAAM,UAAYima,GAAW9miB,IAAK,EAAM61B,IAIjD,WAARs5O,IACJl+P,GAAS0mS,EAAOroS,IAAKuxH,EAAM,SAAWima,GAAW9miB,GAAM,SAAS,EAAM61B,MAtBvE5kB,GAAS0mS,EAAOroS,IAAKuxH,EAAM,UAAYima,GAAW9miB,IAAK,EAAM61B,GAGhD,YAARs5O,EACJl+P,GAAS0mS,EAAOroS,IAAKuxH,EAAM,SAAWima,GAAW9miB,GAAM,SAAS,EAAM61B,GAItEwsP,GAASs1B,EAAOroS,IAAKuxH,EAAM,SAAWima,GAAW9miB,GAAM,SAAS,EAAM61B,IAoCzE,OAhBMo8O,GAAeg9R,GAAe,IAInCh+hB,GAAS2I,KAAKC,IAAK,EAAGD,KAAK+iK,KAC1B97C,EAAM,SAAW10H,EAAW,GAAIwtG,cAAgBxtG,EAAUzS,MAAO,IACjEu1iB,EACAh+hB,EACAoxQ,EACA,MAIM,GAGDpxQ,EAAQi+hB,EAGhB,SAASC,GAAkBtua,EAAM10H,EAAWk2Q,GAG3C,IAAIxsP,EAASm9O,GAAWnyI,GAKvBoxI,IADmB65B,EAAQ+hQ,qBAAuBxrR,IAEE,eAAnDs1B,EAAOroS,IAAKuxH,EAAM,aAAa,EAAOhrG,GACvCu5gB,EAAmBn9R,EAEnBj6P,EAAM20hB,GAAQ9ra,EAAM10H,EAAW0pB,GAC/Bk1N,EAAa,SAAW5+O,EAAW,GAAIwtG,cAAgBxtG,EAAUzS,MAAO,GAIzE,GAAK6yiB,GAAUp1gB,KAAMnf,GAAQ,CAC5B,IAAMqqQ,EACL,OAAOrqQ,EAERA,EAAM,OAyCP,QAlCQ8zR,EAAQ+hQ,qBAAuB57R,IAMrC65B,EAAQmiQ,wBAA0BnjT,EAAUjqH,EAAM,OAI3C,SAAR7oH,IAIC4xB,WAAY5xB,IAA0D,WAAjD2/R,EAAOroS,IAAKuxH,EAAM,WAAW,EAAOhrG,KAG1DgrG,EAAKupH,iBAAiB71P,SAEtB09Q,EAAiE,eAAnD0lC,EAAOroS,IAAKuxH,EAAM,aAAa,EAAOhrG,IAKpDu5gB,EAAmBrkT,KAAclqH,KAEhC7oH,EAAM6oH,EAAMkqH,MAKd/yO,EAAM4xB,WAAY5xB,IAAS,GAI1Bg3hB,GACCnua,EACA10H,EACAk2Q,IAAWpQ,EAAc,SAAW,WACpCm9R,EACAv5gB,EAGA7d,GAEE,KAwTL,SAASq3hB,GAAOxua,EAAMxyH,EAASqsG,EAAMrzF,EAAKkqM,GACzC,OAAO,IAAI89U,GAAM51iB,UAAU+T,KAAMqzH,EAAMxyH,EAASqsG,EAAMrzF,EAAKkqM,GAtT5DomF,EAAO56S,OAAQ,CAIduyiB,SAAU,CACTnqa,QAAS,CACRrxH,IAAK,SAAU+sH,EAAM+ra,GACpB,GAAKA,EAAW,CAGf,IAAInta,EAAMkta,GAAQ9ra,EAAM,WACxB,MAAe,KAARpB,EAAa,IAAMA,MAO9B6na,UAAW,CACViI,yBAAyB,EACzBC,aAAa,EACbC,kBAAkB,EAClBz6B,aAAa,EACb06B,UAAU,EACVC,YAAY,EACZvuW,YAAY,EACZwuW,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,iBAAiB,EACjBC,SAAS,EACTC,YAAY,EACZC,cAAc,EACdrogB,YAAY,EACZs9F,SAAS,EACTypX,OAAO,EACPyJ,SAAS,EACT9iS,OAAO,EACP+iS,QAAQ,EACRlhd,QAAQ,EACR51B,MAAM,EAGN2uhB,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,kBAAkB,EAClBhqC,eAAe,GAKhBkoC,SAAU,GAGVt8hB,MAAO,SAAU2uH,EAAMp/H,EAAM5L,EAAOwsR,GAGnC,GAAMxhJ,GAA0B,IAAlBA,EAAK5xD,UAAoC,IAAlB4xD,EAAK5xD,UAAmB4xD,EAAK3uH,MAAlE,CAKA,IAAIutH,EAAK7nH,EAAM4uhB,EACd+J,EAAW5K,GAAWlkiB,GACtBoriB,EAAeL,GAAYr1gB,KAAM11B,GACjCyQ,EAAQ2uH,EAAK3uH,MAad,GARM26hB,IACLpriB,EAAO8siB,GAAegC,IAIvB/J,EAAQ7uP,EAAO23P,SAAU7tiB,IAAUk2S,EAAO23P,SAAUiB,QAGrClkiB,IAAVxW,EA0CJ,OAAK2wiB,GAAS,QAASA,QACwBn6hB,KAA5CozH,EAAM+ma,EAAM1yhB,IAAK+sH,GAAM,EAAOwhJ,IAEzB5iJ,EAIDvtH,EAAOzQ,GA7CA,YAHdmW,SAAc/hB,KAGc4pI,EAAMona,GAAQrkiB,KAAM3M,KAAa4pI,EAAK,KACjE5pI,EAAQqxiB,GAAWrma,EAAMp/H,EAAMg+H,GAG/B7nH,EAAO,UAIM,MAAT/hB,GAAiBA,IAAUA,IAOlB,WAAT+hB,GAAsBi1hB,IAC1Bh3iB,GAAS4pI,GAAOA,EAAK,KAASk4K,EAAO2vP,UAAWiJ,GAAa,GAAK,OAI7DzkQ,EAAQ8hQ,iBAA6B,KAAV/3iB,GAAiD,IAAjC4L,EAAKrH,QAAS,gBAC9D8X,EAAOzQ,GAAS,WAIX+kiB,GAAY,QAASA,QACsBn6hB,KAA9CxW,EAAQ2wiB,EAAMvte,IAAK4nE,EAAMhrI,EAAOwsR,MAE7BwqR,EACJ36hB,EAAM8iO,YAAavzO,EAAM5L,GAEzBqc,EAAOzQ,GAAS5L,MAkBpByZ,IAAK,SAAUuxH,EAAMp/H,EAAM4gR,EAAOxsP,GACjC,IAAI7d,EAAK6iC,EAAK2rf,EACb+J,EAAW5K,GAAWlkiB,GA6BvB,OA5BgB+qiB,GAAYr1gB,KAAM11B,KAMjCA,EAAO8siB,GAAegC,KAIvB/J,EAAQ7uP,EAAO23P,SAAU7tiB,IAAUk2S,EAAO23P,SAAUiB,KAGtC,QAAS/J,IACtBxuhB,EAAMwuhB,EAAM1yhB,IAAK+sH,GAAM,EAAMwhJ,SAIjBh2Q,IAAR2L,IACJA,EAAM20hB,GAAQ9ra,EAAMp/H,EAAMo0B,IAId,WAAR7d,GAAoBvW,KAAQotiB,KAChC72hB,EAAM62hB,GAAoBptiB,IAIZ,KAAV4gR,GAAgBA,GACpBxnO,EAAMjR,WAAY5xB,IACD,IAAVqqQ,GAAkBjoK,SAAUv/D,GAAQA,GAAO,EAAI7iC,GAGhDA,KAIT2/R,EAAOjpS,KAAM,CAAE,SAAU,UAAW,SAAUk1G,EAAIz3G,GACjDwrS,EAAO23P,SAAUnjiB,GAAc,CAC9B2H,IAAK,SAAU+sH,EAAM+ra,EAAUvqR,GAC9B,GAAKuqR,EAIJ,OAAO+B,GAAax3gB,KAAMwgR,EAAOroS,IAAKuxH,EAAM,aAQxCA,EAAKupH,iBAAiB71P,QAAWssI,EAAK3wH,wBAAwB3K,MAIjE4piB,GAAkBtua,EAAM10H,EAAWk2Q,GAHnCz5F,GAAM/nD,EAAM+ta,IAAS,WACpB,OAAOO,GAAkBtua,EAAM10H,EAAWk2Q,OAM9CppN,IAAK,SAAU4nE,EAAMhrI,EAAOwsR,GAC3B,IAAIr1L,EACHn3D,EAASm9O,GAAWnyI,GAIpB2va,GAAsB1kQ,EAAQkiQ,iBACT,aAApBn4gB,EAAOzb,SAIR63P,GADkBu+R,GAAsBnuR,IAEY,eAAnDs1B,EAAOroS,IAAKuxH,EAAM,aAAa,EAAOhrG,GACvCk5gB,EAAW1sR,EACV2sR,GACCnua,EACA10H,EACAk2Q,EACApQ,EACAp8O,GAED,EAqBF,OAjBKo8O,GAAeu+R,IACnBzB,GAAYn1hB,KAAK+iK,KAChB97C,EAAM,SAAW10H,EAAW,GAAIwtG,cAAgBxtG,EAAUzS,MAAO,IACjEkwC,WAAY/T,EAAQ1pB,IACpB6iiB,GAAoBnua,EAAM10H,EAAW,UAAU,EAAO0pB,GACtD,KAKGk5gB,IAAc/hd,EAAU65c,GAAQrkiB,KAAM3M,KACb,QAA3Bm3F,EAAS,IAAO,QAElB6zC,EAAK3uH,MAAO/F,GAActW,EAC1BA,EAAQ8hT,EAAOroS,IAAKuxH,EAAM10H,IAGpB2iiB,GAAmBjua,EAAMhrI,EAAOk5iB,QAK1Cp3P,EAAO23P,SAASzkT,WAAakiT,GAAcjhQ,EAAQiiQ,oBAClD,SAAUlta,EAAM+ra,GACf,GAAKA,EACJ,OAAShjgB,WAAY+igB,GAAQ9ra,EAAM,gBAClCA,EAAK3wH,wBAAwBvD,KAC5Bi8K,GAAM/nD,EAAM,CAAEgqH,WAAY,IAAK,WAC9B,OAAOhqH,EAAK3wH,wBAAwBvD,SAEnC,QAMPgrS,EAAOjpS,KAAM,CACZ6pL,OAAQ,GACRn2K,QAAS,GACTktB,OAAQ,UACN,SAAUxQ,EAAQs8F,GACpBu8K,EAAO23P,SAAUxwgB,EAASs8F,GAAW,CACpCwwD,OAAQ,SAAU/1L,GAOjB,IANA,IAAImK,EAAI,EACPq+X,EAAW,GAGXphX,EAAyB,kBAAVpnB,EAAqBA,EAAM6L,MAAO,KAAQ,CAAE7L,GAEpDmK,EAAI,EAAGA,IACdq+X,EAAUv/V,EAASgogB,GAAW9miB,GAAMo7H,GACnCn+G,EAAOjd,IAAOid,EAAOjd,EAAI,IAAOid,EAAO,GAGzC,OAAOohX,IAIO,WAAXv/V,IACJ64Q,EAAO23P,SAAUxwgB,EAASs8F,GAASniE,IAAM61e,OAI3Cn3P,EAAO9pR,GAAG9wB,OAAQ,CACjBuS,IAAK,SAAU7N,EAAM5L,GACpB,OAAOsviB,GAAQlxiB,MAAM,SAAU4sI,EAAMp/H,EAAM5L,GAC1C,IAAIggC,EAAQ4V,EACXtxC,EAAM,GACN6F,EAAI,EAEL,GAAKxG,MAAMi2E,QAAShuE,GAAS,CAI5B,IAHAo0B,EAASm9O,GAAWnyI,GACpBp1F,EAAMhqC,EAAKlN,OAEHyL,EAAIyrC,EAAKzrC,IAChB7F,EAAKsH,EAAMzB,IAAQ23S,EAAOroS,IAAKuxH,EAAMp/H,EAAMzB,IAAK,EAAO61B,GAGxD,OAAO17B,EAGR,YAAiBkS,IAAVxW,EACN8hT,EAAOzlS,MAAO2uH,EAAMp/H,EAAM5L,GAC1B8hT,EAAOroS,IAAKuxH,EAAMp/H,KACjBA,EAAM5L,EAAOmG,UAAUzH,OAAS,MAQrCojT,EAAO03P,MAAQA,GAEfA,GAAM51iB,UAAY,CACjBgJ,YAAa4siB,GACb7hiB,KAAM,SAAUqzH,EAAMxyH,EAASqsG,EAAMrzF,EAAKkqM,EAAQ9rN,GACjDxR,KAAK4sI,KAAOA,EACZ5sI,KAAKymH,KAAOA,EACZzmH,KAAKs9N,OAASA,GAAUomF,EAAOpmF,OAAOy1B,SACtC/yP,KAAKoa,QAAUA,EACfpa,KAAK6b,MAAQ7b,KAAK4yG,IAAM5yG,KAAKypQ,MAC7BzpQ,KAAKozB,IAAMA,EACXpzB,KAAKwR,KAAOA,IAAUkyS,EAAO2vP,UAAW5sb,GAAS,GAAK,OAEvDgjJ,IAAK,WACJ,IAAI8oS,EAAQ6I,GAAMoB,UAAWx8iB,KAAKymH,MAElC,OAAO8rb,GAASA,EAAM1yhB,IACrB0yhB,EAAM1yhB,IAAK7f,MACXo7iB,GAAMoB,UAAUzpT,SAASlzO,IAAK7f,OAEhCy8iB,IAAK,SAAUxtb,GACd,IAAIytb,EACHnK,EAAQ6I,GAAMoB,UAAWx8iB,KAAKymH,MAoB/B,OAlBKzmH,KAAKoa,QAAQolN,SACjBx/N,KAAKs5E,IAAMoje,EAAQh5P,EAAOpmF,OAAQt9N,KAAKs9N,QACtCruG,EAASjvH,KAAKoa,QAAQolN,SAAWvwG,EAAS,EAAG,EAAGjvH,KAAKoa,QAAQolN,UAG9Dx/N,KAAKs5E,IAAMoje,EAAQztb,EAEpBjvH,KAAK4yG,KAAQ5yG,KAAKozB,IAAMpzB,KAAK6b,OAAU6giB,EAAQ18iB,KAAK6b,MAE/C7b,KAAKoa,QAAQikC,MACjBr+C,KAAKoa,QAAQikC,KAAK59C,KAAMT,KAAK4sI,KAAM5sI,KAAK4yG,IAAK5yG,MAGzCuyiB,GAASA,EAAMvte,IACnBute,EAAMvte,IAAKhlE,MAEXo7iB,GAAMoB,UAAUzpT,SAAS/tL,IAAKhlE,MAExBA,OAITo7iB,GAAM51iB,UAAU+T,KAAK/T,UAAY41iB,GAAM51iB,UAEvC41iB,GAAMoB,UAAY,CACjBzpT,SAAU,CACTlzO,IAAK,SAAUqzhB,GACd,IAAIrkiB,EAIJ,OAA6B,IAAxBqkiB,EAAMtma,KAAK5xD,UACa,MAA5Bk4d,EAAMtma,KAAMsma,EAAMzsb,OAAoD,MAAlCysb,EAAMtma,KAAK3uH,MAAOi1hB,EAAMzsb,MACrDysb,EAAMtma,KAAMsma,EAAMzsb,OAO1B53G,EAAS60S,EAAOroS,IAAK63hB,EAAMtma,KAAMsma,EAAMzsb,KAAM,MAGhB,SAAX53G,EAAwBA,EAAJ,GAEvCm2D,IAAK,SAAUkue,GAKTxvP,EAAOzjF,GAAG5hL,KAAM60f,EAAMzsb,MAC1Bi9L,EAAOzjF,GAAG5hL,KAAM60f,EAAMzsb,MAAQysb,GACK,IAAxBA,EAAMtma,KAAK5xD,WACtB0oO,EAAO23P,SAAUnI,EAAMzsb,OAC6B,MAAnDysb,EAAMtma,KAAK3uH,MAAOq8hB,GAAepH,EAAMzsb,OAGxCysb,EAAMtma,KAAMsma,EAAMzsb,MAASysb,EAAMtgc,IAFjC8wM,EAAOzlS,MAAOi1hB,EAAMtma,KAAMsma,EAAMzsb,KAAMysb,EAAMtgc,IAAMsgc,EAAM1hiB,SAU5D4piB,GAAMoB,UAAUv1gB,UAAYm0gB,GAAMoB,UAAUx1gB,WAAa,CACxDg+B,IAAK,SAAUkue,GACTA,EAAMtma,KAAK5xD,UAAYk4d,EAAMtma,KAAKxiH,aACtC8ohB,EAAMtma,KAAMsma,EAAMzsb,MAASysb,EAAMtgc,OAKpC8wM,EAAOpmF,OAAS,CACfH,OAAQ,SAAU/lI,GACjB,OAAOA,GAERgmI,MAAO,SAAUhmI,GAChB,MAAO,GAAMzxE,KAAKivP,IAAKx9K,EAAIzxE,KAAKgvP,IAAO,GAExC5hB,SAAU,UAGX2wD,EAAOzjF,GAAKm7U,GAAM51iB,UAAU+T,MAGlB8kC,KAAO,GAKjB,IACCs+f,GAAOhoV,GACPioV,GAAW,yBACXC,GAAO,cAER,SAASn/a,KACHi3F,MACqB,IAApBnyN,EAASmyB,QAAoBlP,EAAOwqH,sBACxCxqH,EAAOwqH,sBAAuBvS,IAE9Bj4G,EAAO5iB,WAAY66H,GAAUgmL,EAAOzjF,GAAGumC,UAGxCk9C,EAAOzjF,GAAGgjS,QAKZ,SAAS65C,KAIR,OAHAr3hB,EAAO5iB,YAAY,WAClB85iB,QAAQvkiB,KAEAukiB,GAAQrue,KAAKskC,MAIvB,SAASmqc,GAAOp5hB,EAAMq5hB,GACrB,IAAI9/f,EACHnxC,EAAI,EACJugP,EAAQ,CAAE/6O,OAAQoS,GAKnB,IADAq5hB,EAAeA,EAAe,EAAI,EAC1BjxiB,EAAI,EAAGA,GAAK,EAAIixiB,EAEvB1wT,EAAO,UADPpvM,EAAQ21f,GAAW9miB,KACSugP,EAAO,UAAYpvM,GAAUv5B,EAO1D,OAJKq5hB,IACJ1wT,EAAMp7G,QAAUo7G,EAAMh7O,MAAQqS,GAGxB2oO,EAGR,SAAS2wT,GAAar7iB,EAAO6kH,EAAM69G,GAKlC,IAJA,IAAI4uU,EACHnigB,GAAemyd,GAAUg6C,SAAUz2b,IAAU,IAAK7qF,OAAQsne,GAAUg6C,SAAU,MAC9Er8iB,EAAQ,EACRP,EAASywC,EAAWzwC,OACbO,EAAQP,EAAQO,IACvB,GAAOqyiB,EAAQnigB,EAAYlwC,GAAQJ,KAAM6jO,EAAW79G,EAAM7kH,GAGzD,OAAOsxiB,EAsNV,SAAShwC,GAAWt2X,EAAM3yE,EAAY7/C,GACrC,IAAIvL,EACH4M,EACA5a,EAAQ,EACRP,EAAS4igB,GAAUi6C,WAAW78iB,OAC9B0qC,EAAW04Q,EAAOlxF,WAAWp0J,QAAQ,kBAG7B6kc,EAAKr2X,QAEbq2X,EAAO,WACN,GAAKxnf,EACJ,OAAO,EAYR,IAVA,IAAI2hiB,EAAcT,IAASG,KAC1BxM,EAAY3qhB,KAAKC,IAAK,EAAG0+M,EAAU3E,UAAY2E,EAAU9E,SAAW49U,GAKpEnub,EAAU,GADHqhb,EAAYhsU,EAAU9E,UAAY,GAEzC3+N,EAAQ,EACRP,EAASgkO,EAAU+4U,OAAO/8iB,OAEnBO,EAAQP,EAAQO,IACvByjO,EAAU+4U,OAAQx8iB,GAAQ47iB,IAAKxtb,GAMhC,OAHAjkF,EAASglgB,WAAYpja,EAAM,CAAE03F,EAAWr1G,EAASqhb,IAG5Crhb,EAAU,GAAK3uH,EACZgwiB,GAIFhwiB,GACL0qC,EAASglgB,WAAYpja,EAAM,CAAE03F,EAAW,EAAG,IAI5Ct5L,EAASq0L,YAAazyF,EAAM,CAAE03F,KACvB,IAERA,EAAYt5L,EAASx6B,QAAS,CAC7Bo8H,KAAMA,EACNptB,MAAOkkM,EAAO56S,OAAQ,GAAImxD,GAC1B+uD,KAAM06L,EAAO56S,QAAQ,EAAM,CAC1Bw0iB,cAAe,GACfhgV,OAAQomF,EAAOpmF,OAAOy1B,UACpB34O,GACHmjiB,mBAAoBtjf,EACpBujf,gBAAiBpjiB,EACjBulN,UAAWg9U,IAASG,KACpBt9U,SAAUplN,EAAQolN,SAClB69U,OAAQ,GACRJ,YAAa,SAAUx2b,EAAMrzF,GAC5B,IAAI8/gB,EAAQxvP,EAAO03P,MAAOxua,EAAM03F,EAAUt7G,KAAMvC,EAAMrzF,EACrDkxM,EAAUt7G,KAAKs0b,cAAe72b,IAAU69G,EAAUt7G,KAAKs0G,QAExD,OADAgH,EAAU+4U,OAAOz8iB,KAAMsyiB,GAChBA,GAER34hB,KAAM,SAAUkjiB,GACf,IAAI58iB,EAAQ,EAIXP,EAASm9iB,EAAUn5U,EAAU+4U,OAAO/8iB,OAAS,EAC9C,GAAKmb,EACJ,OAAOzb,KAGR,IADAyb,GAAU,EACF5a,EAAQP,EAAQO,IACvByjO,EAAU+4U,OAAQx8iB,GAAQ47iB,IAAK,GAUhC,OANKgB,GACJzygB,EAASglgB,WAAYpja,EAAM,CAAE03F,EAAW,EAAG,IAC3Ct5L,EAASq0L,YAAazyF,EAAM,CAAE03F,EAAWm5U,KAEzCzygB,EAASu0L,WAAY3yF,EAAM,CAAE03F,EAAWm5U,IAElCz9iB,QAGTw/G,EAAQ8kH,EAAU9kH,MAInB,KA/HD,SAAqBA,EAAO89b,GAC3B,IAAIz8iB,EAAO2M,EAAM8vN,EAAQ17N,EAAO2wiB,EAGhC,IAAM1xiB,KAAS2+G,EAed,GAbA89G,EAASggV,EADT9viB,EAAOkkiB,GAAW7wiB,IAElBe,EAAQ49G,EAAO3+G,GACV0E,MAAMi2E,QAAS55E,KACnB07N,EAAS17N,EAAO,GAChBA,EAAQ49G,EAAO3+G,GAAUe,EAAO,IAG5Bf,IAAU2M,IACdgyG,EAAOhyG,GAAS5L,SACT49G,EAAO3+G,KAGf0xiB,EAAQ7uP,EAAO23P,SAAU7tiB,KACX,WAAY+kiB,EAMzB,IAAM1xiB,KALNe,EAAQ2wiB,EAAM56W,OAAQ/1L,UACf49G,EAAOhyG,GAIC5L,EACNf,KAAS2+G,IAChBA,EAAO3+G,GAAUe,EAAOf,GACxBy8iB,EAAez8iB,GAAUy8N,QAI3BggV,EAAe9viB,GAAS8vN,EA6F1BogV,CAAYl+b,EAAO8kH,EAAUt7G,KAAKs0b,eAE1Bz8iB,EAAQP,EAAQO,IAEvB,GADAgO,EAASq0f,GAAUi6C,WAAYt8iB,GAAQJ,KAAM6jO,EAAW13F,EAAMptB,EAAO8kH,EAAUt7G,MAM9E,OAJK9tC,EAAYrsE,EAAO0L,QACvBmpS,EAAO8uP,YAAaluU,EAAU13F,KAAM03F,EAAUt7G,KAAKq2I,OAAQ9kP,KAC1D1L,EAAO0L,KAAK9P,KAAMoE,IAEbA,EAyBT,OArBA60S,EAAOx9S,IAAKs5G,EAAOy9b,GAAa34U,GAE3BppJ,EAAYopJ,EAAUt7G,KAAKntG,QAC/ByoN,EAAUt7G,KAAKntG,MAAMpb,KAAMmsI,EAAM03F,GAIlCA,EACE49R,SAAU59R,EAAUt7G,KAAKk5Y,UACzB9oe,KAAMkrM,EAAUt7G,KAAK5vF,KAAMkrM,EAAUt7G,KAAKi7G,UAC1CnjM,KAAMwjM,EAAUt7G,KAAKloF,MACrBs9B,OAAQkmK,EAAUt7G,KAAK5qD,QAEzBslP,EAAOzjF,GAAGxiG,MACTimL,EAAO56S,OAAQm6f,EAAM,CACpBr2X,KAAMA,EACNizE,KAAMykB,EACN+6B,MAAO/6B,EAAUt7G,KAAKq2I,SAIjB/6B,EAGRo/E,EAAOw/M,UAAYx/M,EAAO56S,OAAQo6f,GAAW,CAE5Cg6C,SAAU,CACT,IAAK,CAAE,SAAUz2b,EAAM7kH,GACtB,IAAIsxiB,EAAQlziB,KAAKi9iB,YAAax2b,EAAM7kH,GAEpC,OADAqxiB,GAAWC,EAAMtma,KAAMnmB,EAAMmsb,GAAQrkiB,KAAM3M,GAASsxiB,GAC7CA,KAITyK,QAAS,SAAUn+b,EAAOhxD,GACpB0sB,EAAYskC,IAChBhxD,EAAWgxD,EACXA,EAAQ,CAAE,MAEVA,EAAQA,EAAM79F,MAAOsthB,GAOtB,IAJA,IAAIxob,EACH5lH,EAAQ,EACRP,EAASk/G,EAAMl/G,OAERO,EAAQP,EAAQO,IACvB4lH,EAAOjH,EAAO3+G,GACdqigB,GAAUg6C,SAAUz2b,GAASy8Y,GAAUg6C,SAAUz2b,IAAU,GAC3Dy8Y,GAAUg6C,SAAUz2b,GAAOy2C,QAAS1uG,IAItC2uf,WAAY,CA3Wb,SAA2Bvwa,EAAMptB,EAAOwJ,GACvC,IAAIvC,EAAM7kH,EAAOwzP,EAAQm9S,EAAOqL,EAASC,EAAWC,EAAgBz+hB,EACnE0+hB,EAAQ,UAAWv+b,GAAS,WAAYA,EACxCqgG,EAAO7/M,KACP+2iB,EAAO,GACP94hB,EAAQ2uH,EAAK3uH,MACb0W,EAASi4G,EAAK5xD,UAAYg4d,GAAoBpma,GAC9Coxa,EAAWjM,GAASlyhB,IAAK+sH,EAAM,UA6BhC,IAAMnmB,KA1BAuC,EAAKq2I,QAEa,OADvBkzS,EAAQ7uP,EAAO8uP,YAAa5la,EAAM,OACvBqxa,WACV1L,EAAM0L,SAAW,EACjBL,EAAUrL,EAAM9ne,MAAMszK,KACtBw0T,EAAM9ne,MAAMszK,KAAO,WACZw0T,EAAM0L,UACXL,MAIHrL,EAAM0L,WAENp+V,EAAKzhJ,QAAQ,WAGZyhJ,EAAKzhJ,QAAQ,WACZm0e,EAAM0L,WACAv6P,EAAOrkD,MAAOzyH,EAAM,MAAOtsI,QAChCiyiB,EAAM9ne,MAAMszK,cAOFv+H,EAEb,GADA59G,EAAQ49G,EAAOiH,GACVm2b,GAAS15gB,KAAMthC,GAAU,CAG7B,UAFO49G,EAAOiH,GACd2uI,EAASA,GAAoB,WAAVxzP,EACdA,KAAY+yB,EAAS,OAAS,QAAW,CAI7C,GAAe,SAAV/yB,IAAoBo8iB,QAAiC5liB,IAArB4liB,EAAUv3b,GAK9C,SAJA9xF,GAAS,EAOXoihB,EAAMtwb,GAASu3b,GAAYA,EAAUv3b,IAAUi9L,EAAOzlS,MAAO2uH,EAAMnmB,GAMrE,IADAo3b,GAAan6P,EAAO93P,cAAe4zD,MAChBkkM,EAAO93P,cAAemrf,GA8DzC,IAAMtwb,KAzDDs3b,GAA2B,IAAlBnxa,EAAK5xD,WAMlBguC,EAAKmZ,SAAW,CAAElkH,EAAMkkH,SAAUlkH,EAAMoma,UAAWpma,EAAMqma,WAIlC,OADvBw5H,EAAiBE,GAAYA,EAAS3+hB,WAErCy+hB,EAAiB/L,GAASlyhB,IAAK+sH,EAAM,YAGrB,UADjBvtH,EAAUqkS,EAAOroS,IAAKuxH,EAAM,cAEtBkxa,EACJz+hB,EAAUy+hB,GAIVrK,GAAU,CAAE7ma,IAAQ,GACpBkxa,EAAiBlxa,EAAK3uH,MAAMoB,SAAWy+hB,EACvCz+hB,EAAUqkS,EAAOroS,IAAKuxH,EAAM,WAC5B6ma,GAAU,CAAE7ma,OAKG,WAAZvtH,GAAoC,iBAAZA,GAAgD,MAAlBy+hB,IACrB,SAAhCp6P,EAAOroS,IAAKuxH,EAAM,WAGhBixa,IACLh+V,EAAKzmL,MAAM,WACVnb,EAAMoB,QAAUy+hB,KAEM,MAAlBA,IACJz+hB,EAAUpB,EAAMoB,QAChBy+hB,EAA6B,SAAZz+hB,EAAqB,GAAKA,IAG7CpB,EAAMoB,QAAU,iBAKd2pG,EAAKmZ,WACTlkH,EAAMkkH,SAAW,SACjB09E,EAAKzhJ,QAAQ,WACZngD,EAAMkkH,SAAWnZ,EAAKmZ,SAAU,GAChClkH,EAAMoma,UAAYr7T,EAAKmZ,SAAU,GACjClkH,EAAMqma,UAAYt7T,EAAKmZ,SAAU,OAKnC07a,GAAY,EACE9G,EAGP8G,IACAG,EACC,WAAYA,IAChBrphB,EAASqphB,EAASrphB,QAGnBqphB,EAAWjM,GAASb,OAAQtka,EAAM,SAAU,CAAEvtH,QAASy+hB,IAInD1oT,IACJ4oT,EAASrphB,QAAUA,GAIfA,GACJ8+gB,GAAU,CAAE7ma,IAAQ,GAKrBizE,EAAKzmL,MAAM,WASV,IAAMqtF,KAJA9xF,GACL8+gB,GAAU,CAAE7ma,IAEbmla,GAASvwiB,OAAQorI,EAAM,UACTmqa,EACbrzP,EAAOzlS,MAAO2uH,EAAMnmB,EAAMswb,EAAMtwb,QAMnCo3b,EAAYZ,GAAatohB,EAASqphB,EAAUv3b,GAAS,EAAGA,EAAMo5F,GACtDp5F,KAAQu3b,IACfA,EAAUv3b,GAASo3b,EAAUhiiB,MACxB8Y,IACJkphB,EAAUzqhB,IAAMyqhB,EAAUhiiB,MAC1BgiiB,EAAUhiiB,MAAQ,MAuMrBqiiB,UAAW,SAAU1vf,EAAUonM,GACzBA,EACJstQ,GAAUi6C,WAAWjgZ,QAAS1uG,GAE9B00c,GAAUi6C,WAAWv8iB,KAAM4tD,MAK9Bk1P,EAAOloK,MAAQ,SAAUA,EAAO8hF,EAAQ1jM,GACvC,IAAI85F,EAAM8nB,GAA0B,kBAAVA,EAAqBkoK,EAAO56S,OAAQ,GAAI0yI,GAAU,CAC3EyoF,SAAUrqM,IAAOA,GAAM0jM,GACtBpiJ,EAAYsgE,IAAWA,EACxBgkF,SAAUhkF,EACV8hF,OAAQ1jM,GAAM0jM,GAAUA,IAAWpiJ,EAAYoiJ,IAAYA,GAoC5D,OAhCKomF,EAAOzjF,GAAG5nM,IACdq7F,EAAI8rG,SAAW,EAGc,kBAAjB9rG,EAAI8rG,WACV9rG,EAAI8rG,YAAYkkF,EAAOzjF,GAAGk+U,OAC9Bzqb,EAAI8rG,SAAWkkF,EAAOzjF,GAAGk+U,OAAQzqb,EAAI8rG,UAGrC9rG,EAAI8rG,SAAWkkF,EAAOzjF,GAAGk+U,OAAOprT,UAMjB,MAAbr/H,EAAI2rI,QAA+B,IAAd3rI,EAAI2rI,QAC7B3rI,EAAI2rI,MAAQ,MAIb3rI,EAAIqR,IAAMrR,EAAIuwG,SAEdvwG,EAAIuwG,SAAW,WACT/oJ,EAAYw4C,EAAIqR,MACpBrR,EAAIqR,IAAItkI,KAAMT,MAGV0zH,EAAI2rI,OACRqkD,EAAO2uP,QAASryiB,KAAM0zH,EAAI2rI,QAIrB3rI,GAGRgwL,EAAO9pR,GAAG9wB,OAAQ,CACjBs1iB,OAAQ,SAAU5ia,EAAOx6E,EAAIs8J,EAAQ9uK,GAGpC,OAAOxuD,KAAK4F,OAAQotiB,IAAqB33hB,IAAK,UAAW,GAAImmC,OAG3DpuB,MAAMokK,QAAS,CAAEtmD,QAASlwE,GAAMw6E,EAAO8hF,EAAQ9uK,IAElDgpI,QAAS,SAAU/wE,EAAM+0B,EAAO8hF,EAAQ9uK,GACvC,IAAIic,EAAQi5O,EAAO93P,cAAe66D,GACjC43b,EAAS36P,EAAOloK,MAAOA,EAAO8hF,EAAQ9uK,GACtC8vf,EAAc,WAGb,IAAIz+V,EAAOqjT,GAAWljgB,KAAM0jT,EAAO56S,OAAQ,GAAI29G,GAAQ43b,IAGlD5ze,GAASsne,GAASlyhB,IAAK7f,KAAM,YACjC6/M,EAAKtlM,MAAM,IAMd,OAFA+jiB,EAAYp/U,OAASo/U,EAEd7ze,IAA0B,IAAjB4ze,EAAOh/S,MACtBr/P,KAAKya,KAAM6jiB,GACXt+iB,KAAKq/P,MAAOg/S,EAAOh/S,MAAOi/S,IAE5B/jiB,KAAM,SAAUoJ,EAAM8uhB,EAAYgL,GACjC,IAAIc,EAAY,SAAUhM,GACzB,IAAIh4hB,EAAOg4hB,EAAMh4hB,YACVg4hB,EAAMh4hB,KACbA,EAAMkjiB,IAYP,MATqB,kBAAT95hB,IACX85hB,EAAUhL,EACVA,EAAa9uhB,EACbA,OAAOvL,GAEHq6hB,GACJzyiB,KAAKq/P,MAAO17O,GAAQ,KAAM,IAGpB3jB,KAAKya,MAAM,WACjB,IAAI43hB,GAAU,EACbxxiB,EAAgB,MAAR8iB,GAAgBA,EAAO,aAC/B66hB,EAAS96P,EAAO86P,OAChB3wiB,EAAOkkiB,GAASlyhB,IAAK7f,MAEtB,GAAKa,EACCgN,EAAMhN,IAAWgN,EAAMhN,GAAQ0Z,MACnCgkiB,EAAW1wiB,EAAMhN,SAGlB,IAAMA,KAASgN,EACTA,EAAMhN,IAAWgN,EAAMhN,GAAQ0Z,MAAQsiiB,GAAK35gB,KAAMriC,IACtD09iB,EAAW1wiB,EAAMhN,IAKpB,IAAMA,EAAQ29iB,EAAOl+iB,OAAQO,KACvB29iB,EAAQ39iB,GAAQ+rI,OAAS5sI,MACnB,MAAR2jB,GAAgB66hB,EAAQ39iB,GAAQw+P,QAAU17O,IAE5C66hB,EAAQ39iB,GAAQg/M,KAAKtlM,KAAMkjiB,GAC3BpL,GAAU,EACVmM,EAAOjviB,OAAQ1O,EAAO,KAOnBwxiB,GAAYoL,GAChB/5P,EAAO2uP,QAASryiB,KAAM2jB,OAIzBu7M,OAAQ,SAAUv7M,GAIjB,OAHc,IAATA,IACJA,EAAOA,GAAQ,MAET3jB,KAAKya,MAAM,WACjB,IAAI5Z,EACHgN,EAAOkkiB,GAASlyhB,IAAK7f,MACrBq/P,EAAQxxP,EAAM8V,EAAO,SACrB4uhB,EAAQ1kiB,EAAM8V,EAAO,cACrB66hB,EAAS96P,EAAO86P,OAChBl+iB,EAAS++P,EAAQA,EAAM/+P,OAAS,EAajC,IAVAuN,EAAKqxN,QAAS,EAGdwkF,EAAOrkD,MAAOr/P,KAAM2jB,EAAM,IAErB4uhB,GAASA,EAAMh4hB,MACnBg4hB,EAAMh4hB,KAAK9Z,KAAMT,MAAM,GAIlBa,EAAQ29iB,EAAOl+iB,OAAQO,KACvB29iB,EAAQ39iB,GAAQ+rI,OAAS5sI,MAAQw+iB,EAAQ39iB,GAAQw+P,QAAU17O,IAC/D66hB,EAAQ39iB,GAAQg/M,KAAKtlM,MAAM,GAC3BikiB,EAAOjviB,OAAQ1O,EAAO,IAKxB,IAAMA,EAAQ,EAAGA,EAAQP,EAAQO,IAC3Bw+P,EAAOx+P,IAAWw+P,EAAOx+P,GAAQq+N,QACrCmgC,EAAOx+P,GAAQq+N,OAAOz+N,KAAMT,aAKvB6N,EAAKqxN,aAKfwkF,EAAOjpS,KAAM,CAAE,SAAU,OAAQ,SAAU,SAAUk1G,EAAIniH,GACxD,IAAIixiB,EAAQ/6P,EAAO9pR,GAAIpsB,GACvBk2S,EAAO9pR,GAAIpsB,GAAS,SAAUguI,EAAO8hF,EAAQ9uK,GAC5C,OAAgB,MAATgtF,GAAkC,mBAAVA,EAC9Bija,EAAMz4hB,MAAOhmB,KAAM+H,WACnB/H,KAAKw3L,QAASulX,GAAOvviB,GAAM,GAAQguI,EAAO8hF,EAAQ9uK,OAKrDk1P,EAAOjpS,KAAM,CACZkwD,UAAWoye,GAAO,QAClBrye,QAASqye,GAAO,QAChB5ye,YAAa4ye,GAAO,UACpBt5U,OAAQ,CAAEvyF,QAAS,QACnBwyF,QAAS,CAAExyF,QAAS,QACpBwta,WAAY,CAAExta,QAAS,YACrB,SAAU1jI,EAAMgyG,GAClBkkM,EAAO9pR,GAAIpsB,GAAS,SAAUguI,EAAO8hF,EAAQ9uK,GAC5C,OAAOxuD,KAAKw3L,QAASh4E,EAAOg8B,EAAO8hF,EAAQ9uK,OAI7Ck1P,EAAO86P,OAAS,GAChB96P,EAAOzjF,GAAGgjS,KAAO,WAChB,IAAIxlY,EACH1xH,EAAI,EACJyyiB,EAAS96P,EAAO86P,OAIjB,IAFA7B,GAAQrue,KAAKskC,MAEL7mG,EAAIyyiB,EAAOl+iB,OAAQyL,KAC1B0xH,EAAQ+gb,EAAQzyiB,OAGCyyiB,EAAQzyiB,KAAQ0xH,GAChC+gb,EAAOjviB,OAAQxD,IAAK,GAIhByyiB,EAAOl+iB,QACZojT,EAAOzjF,GAAG1lN,OAEXoiiB,QAAQvkiB,GAGTsrS,EAAOzjF,GAAGxiG,MAAQ,SAAUA,GAC3BimL,EAAO86P,OAAO59iB,KAAM68H,GACpBimL,EAAOzjF,GAAGpkN,SAGX6nS,EAAOzjF,GAAGumC,SAAW,GACrBk9C,EAAOzjF,GAAGpkN,MAAQ,WACZ84M,KAILA,IAAa,EACbj3F,OAGDgmL,EAAOzjF,GAAG1lN,KAAO,WAChBo6M,GAAa,MAGd+uF,EAAOzjF,GAAGk+U,OAAS,CAClBQ,KAAM,IACNC,KAAM,IAGN7rT,SAAU,KAKX2wD,EAAO9pR,GAAGkkG,MAAQ,SAAUjxD,EAAMlpD,GAIjC,OAHAkpD,EAAO62O,EAAOzjF,IAAKyjF,EAAOzjF,GAAGk+U,OAAQtxe,IAAiBA,EACtDlpD,EAAOA,GAAQ,KAER3jB,KAAKq/P,MAAO17O,GAAM,SAAU26B,EAAMi0f,GACxC,IAAI3viB,EAAU6iB,EAAO5iB,WAAYy7C,EAAMuuB,GACvC0le,EAAMh4hB,KAAO,WACZkL,EAAOyY,aAAct7B,QAMxB,WACC,IAAI41B,EAAQh2B,EAAS4gC,cAAe,SAEnCswF,EADSlxH,EAAS4gC,cAAe,UACpBo0C,YAAah1E,EAAS4gC,cAAe,WAEnD5K,EAAM7U,KAAO,WAIbk0R,EAAQgnQ,QAA0B,KAAhBrmhB,EAAM52B,MAIxBi2S,EAAQinQ,YAAcprb,EAAIzmG,UAI1BuL,EAAQh2B,EAAS4gC,cAAe,UAC1BxhC,MAAQ,IACd42B,EAAM7U,KAAO,QACbk0R,EAAQknQ,WAA6B,MAAhBvmhB,EAAM52B,MApB5B,GAwBA,IAAIo9iB,GACHtV,GAAahmP,EAAO3tN,KAAK2zc,WAE1BhmP,EAAO9pR,GAAG9wB,OAAQ,CACjB8W,KAAM,SAAUpS,EAAM5L,GACrB,OAAOsviB,GAAQlxiB,KAAM0jT,EAAO9jS,KAAMpS,EAAM5L,EAAOmG,UAAUzH,OAAS,IAGnEs3B,WAAY,SAAUpqB,GACrB,OAAOxN,KAAKya,MAAM,WACjBipS,EAAO9rR,WAAY53B,KAAMwN,SAK5Bk2S,EAAO56S,OAAQ,CACd8W,KAAM,SAAUgtH,EAAMp/H,EAAM5L,GAC3B,IAAI4pI,EAAK+ma,EACRxjZ,EAAQniB,EAAK5xD,SAGd,GAAe,IAAV+zE,GAAyB,IAAVA,GAAyB,IAAVA,EAKnC,MAAkC,qBAAtBniB,EAAK5iI,aACT05S,EAAOj9L,KAAMmmB,EAAMp/H,EAAM5L,IAKlB,IAAVmtJ,GAAgB20J,EAAOuhP,SAAUr4Z,KACrC2la,EAAQ7uP,EAAOu7P,UAAWzxiB,EAAKy1B,iBAC5BygR,EAAO3tN,KAAKp0E,MAAM6sF,KAAKtrE,KAAM11B,GAASwxiB,QAAW5miB,SAGtCA,IAAVxW,EACW,OAAVA,OACJ8hT,EAAO9rR,WAAYg1G,EAAMp/H,GAIrB+kiB,GAAS,QAASA,QACuBn6hB,KAA3CozH,EAAM+ma,EAAMvte,IAAK4nE,EAAMhrI,EAAO4L,IACzBg+H,GAGRoB,EAAK9rI,aAAc0M,EAAM5L,EAAQ,IAC1BA,GAGH2wiB,GAAS,QAASA,GAA+C,QAApC/ma,EAAM+ma,EAAM1yhB,IAAK+sH,EAAMp/H,IACjDg+H,EAMM,OAHdA,EAAMk4K,EAAOrnS,KAAKuD,KAAMgtH,EAAMp/H,SAGT4K,EAAYozH,IAGlCyza,UAAW,CACVt7hB,KAAM,CACLqhD,IAAK,SAAU4nE,EAAMhrI,GACpB,IAAMi2S,EAAQknQ,YAAwB,UAAVn9iB,GAC3Bi1P,EAAUjqH,EAAM,SAAY,CAC5B,IAAI7oH,EAAM6oH,EAAKhrI,MAKf,OAJAgrI,EAAK9rI,aAAc,OAAQc,GACtBmiB,IACJ6oH,EAAKhrI,MAAQmiB,GAEPniB,MAMXg2B,WAAY,SAAUg1G,EAAMhrI,GAC3B,IAAI4L,EACHzB,EAAI,EAIJmziB,EAAYt9iB,GAASA,EAAM+f,MAAOsthB,GAEnC,GAAKiQ,GAA+B,IAAlBtya,EAAK5xD,SACtB,KAAUxtE,EAAO0xiB,EAAWnziB,MAC3B6gI,EAAK5oB,gBAAiBx2G,MAO1BwxiB,GAAW,CACVh6e,IAAK,SAAU4nE,EAAMhrI,EAAO4L,GAQ3B,OAPe,IAAV5L,EAGJ8hT,EAAO9rR,WAAYg1G,EAAMp/H,GAEzBo/H,EAAK9rI,aAAc0M,EAAMA,GAEnBA,IAITk2S,EAAOjpS,KAAMipS,EAAO3tN,KAAKp0E,MAAM6sF,KAAKmf,OAAOhsG,MAAO,SAAU,SAAUguG,EAAIniH,GACzE,IAAIi2P,EAASimS,GAAYl8hB,IAAUk2S,EAAOrnS,KAAKuD,KAE/C8phB,GAAYl8hB,GAAS,SAAUo/H,EAAMp/H,EAAMsgiB,GAC1C,IAAItia,EAAKrsH,EACRggiB,EAAgB3xiB,EAAKy1B,cAYtB,OAVM6qgB,IAGL3uhB,EAASuqhB,GAAYyV,GACrBzV,GAAYyV,GAAkB3za,EAC9BA,EAAqC,MAA/Bi4H,EAAQ72H,EAAMp/H,EAAMsgiB,GACzBqR,EACA,KACDzV,GAAYyV,GAAkBhgiB,GAExBqsH,MAOT,IAAI4za,GAAa,sCAChBC,GAAa,gBAwIb,SAASC,GAAkB19iB,GAE1B,OADaA,EAAM+f,MAAOsthB,IAAmB,IAC/Bh+hB,KAAM,KAItB,SAASsuiB,GAAU3ya,GAClB,OAAOA,EAAK5iI,cAAgB4iI,EAAK5iI,aAAc,UAAa,GAG7D,SAASw1iB,GAAgB59iB,GACxB,OAAK2D,MAAMi2E,QAAS55E,GACZA,EAEc,kBAAVA,GACJA,EAAM+f,MAAOsthB,IAEd,GAvJRvrP,EAAO9pR,GAAG9wB,OAAQ,CACjB29G,KAAM,SAAUj5G,EAAM5L,GACrB,OAAOsviB,GAAQlxiB,KAAM0jT,EAAOj9L,KAAMj5G,EAAM5L,EAAOmG,UAAUzH,OAAS,IAGnEm/iB,WAAY,SAAUjyiB,GACrB,OAAOxN,KAAKya,MAAM,kBACVza,KAAM0jT,EAAOg8P,QAASlyiB,IAAUA,SAK1Ck2S,EAAO56S,OAAQ,CACd29G,KAAM,SAAUmmB,EAAMp/H,EAAM5L,GAC3B,IAAI4pI,EAAK+ma,EACRxjZ,EAAQniB,EAAK5xD,SAGd,GAAe,IAAV+zE,GAAyB,IAAVA,GAAyB,IAAVA,EAWnC,OAPe,IAAVA,GAAgB20J,EAAOuhP,SAAUr4Z,KAGrCp/H,EAAOk2S,EAAOg8P,QAASlyiB,IAAUA,EACjC+kiB,EAAQ7uP,EAAO84P,UAAWhviB,SAGZ4K,IAAVxW,EACC2wiB,GAAS,QAASA,QACuBn6hB,KAA3CozH,EAAM+ma,EAAMvte,IAAK4nE,EAAMhrI,EAAO4L,IACzBg+H,EAGCoB,EAAMp/H,GAAS5L,EAGpB2wiB,GAAS,QAASA,GAA+C,QAApC/ma,EAAM+ma,EAAM1yhB,IAAK+sH,EAAMp/H,IACjDg+H,EAGDoB,EAAMp/H,IAGdgviB,UAAW,CACV19Z,SAAU,CACTj/H,IAAK,SAAU+sH,GAMd,IAAI+ya,EAAWj8P,EAAOrnS,KAAKuD,KAAMgtH,EAAM,YAEvC,OAAK+ya,EACG1pgB,SAAU0pgB,EAAU,IAI3BP,GAAWl8gB,KAAM0pG,EAAKiqH,WACtBwoT,GAAWn8gB,KAAM0pG,EAAKiqH,WACtBjqH,EAAK7sE,KAEE,GAGA,KAKX2/e,QAAS,CACR,IAAO,UACP,MAAS,eAYL7nQ,EAAQinQ,cACbp7P,EAAO84P,UAAUvvhB,SAAW,CAC3BpN,IAAK,SAAU+sH,GAId,IAAInhI,EAASmhI,EAAKxiH,WAIlB,OAHK3e,GAAUA,EAAO2e,YACrB3e,EAAO2e,WAAWqE,cAEZ,MAERu2C,IAAK,SAAU4nE,GAId,IAAInhI,EAASmhI,EAAKxiH,WACb3e,IACJA,EAAOgjB,cAEFhjB,EAAO2e,YACX3e,EAAO2e,WAAWqE,kBAOvBi1R,EAAOjpS,KAAM,CACZ,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,oBACE,WACFipS,EAAOg8P,QAAS1/iB,KAAKijC,eAAkBjjC,QA4BxC0jT,EAAO9pR,GAAG9wB,OAAQ,CACjB2W,SAAU,SAAU7d,GACnB,IAAIorN,EAAYy8C,EAAKm2S,EAAUvxiB,EAAWtC,EAAG8ziB,EAE7C,OAAK3ke,EAAYt5E,GACT5B,KAAKya,MAAM,SAAU8vE,GAC3Bm5N,EAAQ1jT,MAAOyf,SAAU7d,EAAMnB,KAAMT,KAAMuqF,EAAGg1d,GAAUv/iB,YAI1DgtN,EAAawyV,GAAgB59iB,IAEbtB,OACRN,KAAKya,MAAM,WAIjB,GAHAmliB,EAAWL,GAAUv/iB,MACrBypQ,EAAwB,IAAlBzpQ,KAAKg7E,UAAoB,IAAMske,GAAkBM,GAAa,IAEzD,CACV,IAAM7ziB,EAAI,EAAGA,EAAIihN,EAAW1sN,OAAQyL,IACnCsC,EAAY2+M,EAAYjhN,GACnB09P,EAAItjQ,QAAS,IAAMkI,EAAY,KAAQ,IAC3Co7P,GAAOp7P,EAAY,KAKrBwxiB,EAAaP,GAAkB71S,GAC1Bm2S,IAAaC,GACjB7/iB,KAAKc,aAAc,QAAS++iB,OAMzB7/iB,MAGR63B,YAAa,SAAUj2B,GACtB,IAAIorN,EAAYy8C,EAAKm2S,EAAUvxiB,EAAWtC,EAAG8ziB,EAE7C,OAAK3ke,EAAYt5E,GACT5B,KAAKya,MAAM,SAAU8vE,GAC3Bm5N,EAAQ1jT,MAAO63B,YAAaj2B,EAAMnB,KAAMT,KAAMuqF,EAAGg1d,GAAUv/iB,WAIvD+H,UAAUzH,QAIhB0sN,EAAawyV,GAAgB59iB,IAEbtB,OACRN,KAAKya,MAAM,WAMjB,GALAmliB,EAAWL,GAAUv/iB,MAGrBypQ,EAAwB,IAAlBzpQ,KAAKg7E,UAAoB,IAAMske,GAAkBM,GAAa,IAEzD,CACV,IAAM7ziB,EAAI,EAAGA,EAAIihN,EAAW1sN,OAAQyL,IAInC,IAHAsC,EAAY2+M,EAAYjhN,GAGhB09P,EAAItjQ,QAAS,IAAMkI,EAAY,MAAS,GAC/Co7P,EAAMA,EAAI/gN,QAAS,IAAMr6C,EAAY,IAAK,KAK5CwxiB,EAAaP,GAAkB71S,GAC1Bm2S,IAAaC,GACjB7/iB,KAAKc,aAAc,QAAS++iB,OAMzB7/iB,KA/BCA,KAAK4f,KAAM,QAAS,KAkC7B42M,YAAa,SAAU50N,EAAOk+iB,GAC7B,IAAI9yV,EAAY3+M,EAAWtC,EAAG6a,EAC7BjD,SAAc/hB,EACdm+iB,EAAwB,WAATp8hB,GAAqBpe,MAAMi2E,QAAS55E,GAEpD,OAAKs5E,EAAYt5E,GACT5B,KAAKya,MAAM,SAAU1O,GAC3B23S,EAAQ1jT,MAAOw2N,YACd50N,EAAMnB,KAAMT,KAAM+L,EAAGwziB,GAAUv/iB,MAAQ8/iB,GACvCA,MAKsB,mBAAbA,GAA0BC,EAC9BD,EAAW9/iB,KAAKyf,SAAU7d,GAAU5B,KAAK63B,YAAaj2B,IAG9DorN,EAAawyV,GAAgB59iB,GAEtB5B,KAAKya,MAAM,WACjB,GAAKsliB,EAKJ,IAFAn5hB,EAAO88R,EAAQ1jT,MAET+L,EAAI,EAAGA,EAAIihN,EAAW1sN,OAAQyL,IACnCsC,EAAY2+M,EAAYjhN,GAGnB6a,EAAKmpM,SAAU1hN,GACnBuY,EAAKiR,YAAaxpB,GAElBuY,EAAKnH,SAAUpR,aAKI+J,IAAVxW,GAAgC,YAAT+hB,KAClCtV,EAAYkxiB,GAAUv/iB,QAIrB+xiB,GAAS/se,IAAKhlE,KAAM,gBAAiBqO,GAOjCrO,KAAKc,cACTd,KAAKc,aAAc,QAClBuN,IAAuB,IAAVzM,EACZ,GACAmwiB,GAASlyhB,IAAK7f,KAAM,kBAAqB,UAO/C+vN,SAAU,SAAUxmM,GACnB,IAAIlb,EAAWu+H,EACd7gI,EAAI,EAGL,IADAsC,EAAY,IAAMkb,EAAW,IACnBqjH,EAAO5sI,KAAM+L,MACtB,GAAuB,IAAlB6gI,EAAK5xD,WACP,IAAMske,GAAkBC,GAAU3ya,IAAW,KAAMzmI,QAASkI,IAAe,EAC7E,OAAO,EAIT,OAAO,KAOT,IAAI2xiB,GAAU,MAEdt8P,EAAO9pR,GAAG9wB,OAAQ,CACjBib,IAAK,SAAUniB,GACd,IAAI2wiB,EAAO/ma,EAAKusa,EACfnra,EAAO5sI,KAAM,GAEd,OAAM+H,UAAUzH,QA0BhBy3iB,EAAkB78d,EAAYt5E,GAEvB5B,KAAKya,MAAM,SAAU1O,GAC3B,IAAIgY,EAEmB,IAAlB/jB,KAAKg7E,WAWE,OANXj3D,EADIg0hB,EACEn2iB,EAAMnB,KAAMT,KAAM+L,EAAG23S,EAAQ1jT,MAAO+jB,OAEpCniB,GAKNmiB,EAAM,GAEoB,kBAARA,EAClBA,GAAO,GAEIxe,MAAMi2E,QAASz3D,KAC1BA,EAAM2/R,EAAOx9S,IAAK6d,GAAK,SAAUniB,GAChC,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,QAItC2wiB,EAAQ7uP,EAAOu8P,SAAUjgjB,KAAK2jB,OAAU+/R,EAAOu8P,SAAUjgjB,KAAK62P,SAAS5zN,iBAGrD,QAASsvgB,QAA+Cn6hB,IAApCm6hB,EAAMvte,IAAKhlE,KAAM+jB,EAAK,WAC3D/jB,KAAK4B,MAAQmiB,QAzDT6oH,GACJ2la,EAAQ7uP,EAAOu8P,SAAUrza,EAAKjpH,OAC7B+/R,EAAOu8P,SAAUrza,EAAKiqH,SAAS5zN,iBAG/B,QAASsvgB,QACgCn6hB,KAAvCozH,EAAM+ma,EAAM1yhB,IAAK+sH,EAAM,UAElBpB,EAMY,kBAHpBA,EAAMoB,EAAKhrI,OAIH4pI,EAAI9iF,QAASs3f,GAAS,IAIhB,MAAPx0a,EAAc,GAAKA,OAG3B,KAyCHk4K,EAAO56S,OAAQ,CACdm3iB,SAAU,CACTp7hB,OAAQ,CACPhF,IAAK,SAAU+sH,GAEd,IAAI7oH,EAAM2/R,EAAOrnS,KAAKuD,KAAMgtH,EAAM,SAClC,OAAc,MAAP7oH,EACNA,EAMAu7hB,GAAkB57P,EAAO/gT,KAAMiqI,MAGlC9+H,OAAQ,CACP+R,IAAK,SAAU+sH,GACd,IAAIhrI,EAAOijB,EAAQ9Y,EAClBqO,EAAUwyH,EAAKxyH,QACfvZ,EAAQ+rI,EAAKn+G,cACb+1Q,EAAoB,eAAd53J,EAAKjpH,KACX/J,EAAS4qR,EAAM,KAAO,GACtB5+Q,EAAM4+Q,EAAM3jS,EAAQ,EAAIuZ,EAAQ9Z,OAUjC,IAPCyL,EADIlL,EAAQ,EACR+kB,EAGA4+Q,EAAM3jS,EAAQ,EAIXkL,EAAI6Z,EAAK7Z,IAKhB,KAJA8Y,EAASzK,EAASrO,IAIJkhB,UAAYlhB,IAAMlL,KAG7BgkB,EAAOzZ,YACLyZ,EAAOuF,WAAWhf,WACnByrP,EAAUhyO,EAAOuF,WAAY,aAAiB,CAMjD,GAHAxoB,EAAQ8hT,EAAQ7+R,GAASd,MAGpBygR,EACJ,OAAO5iS,EAIRgY,EAAOhZ,KAAMgB,GAIf,OAAOgY,GAGRorD,IAAK,SAAU4nE,EAAMhrI,GAMpB,IALA,IAAIs+iB,EAAWr7hB,EACdzK,EAAUwyH,EAAKxyH,QACfR,EAAS8pS,EAAOqhP,UAAWnjiB,GAC3BmK,EAAIqO,EAAQ9Z,OAELyL,OACP8Y,EAASzK,EAASrO,IAINkhB,SACXy2R,EAAOshP,QAASthP,EAAOu8P,SAASp7hB,OAAOhF,IAAKgF,GAAUjL,IAAY,KAElEsmiB,GAAY,GAUd,OAHMA,IACLtza,EAAKn+G,eAAiB,GAEhB7U,OAOX8pS,EAAOjpS,KAAM,CAAE,QAAS,aAAc,WACrCipS,EAAOu8P,SAAUjgjB,MAAS,CACzBglE,IAAK,SAAU4nE,EAAMhrI,GACpB,GAAK2D,MAAMi2E,QAAS55E,GACnB,OAASgrI,EAAKk6J,QAAU4c,EAAOshP,QAASthP,EAAQ92K,GAAO7oH,MAAOniB,IAAW,IAItEi2S,EAAQgnQ,UACbn7P,EAAOu8P,SAAUjgjB,MAAO6f,IAAM,SAAU+sH,GACvC,OAAwC,OAAjCA,EAAK5iI,aAAc,SAAqB,KAAO4iI,EAAKhrI,WAS9D,IAAIo+B,GAAWva,EAAOua,SAElBikgB,GAAQ,CAAEhggB,KAAMqqC,KAAKskC,OAErButc,GAAW,KAKfz8P,EAAO08P,SAAW,SAAUvyiB,GAC3B,IAAI2sP,EAAK6lT,EACT,IAAMxyiB,GAAwB,kBAATA,EACpB,OAAO,KAKR,IACC2sP,GAAQ,IAAI/0O,EAAOu7P,WAAcC,gBAAiBpzQ,EAAM,YACvD,MAAQrN,IAYV,OAVA6/iB,EAAkB7lT,GAAOA,EAAIl4N,qBAAsB,eAAiB,GAC9Dk4N,IAAO6lT,GACZ38P,EAAOhkQ,MAAO,iBACb2ggB,EACC38P,EAAOx9S,IAAKm6iB,EAAgBz9b,YAAY,SAAUp6G,GACjD,OAAOA,EAAG1F,eACPmO,KAAM,MACVpD,IAGI2sP,GAIR,IAAI8lT,GAAc,kCACjBC,GAA0B,SAAU//iB,GACnCA,EAAE4G,mBAGJs8S,EAAO56S,OAAQ46S,EAAOlpS,MAAO,CAE5B5Q,QAAS,SAAU4Q,EAAO3M,EAAM++H,EAAM4za,GAErC,IAAIz0iB,EAAG09P,EAAK/6G,EAAK+xZ,EAAYC,EAAQvhiB,EAAQ4kR,EAAS48Q,EACrDC,EAAY,CAAEh0a,GAAQpqI,GACtBmhB,EAAOm3D,EAAOr6E,KAAM+Z,EAAO,QAAWA,EAAMmJ,KAAOnJ,EACnDorR,EAAa9qN,EAAOr6E,KAAM+Z,EAAO,aAAgBA,EAAMu/N,UAAUtsO,MAAO,KAAQ,GAKjF,GAHAg8P,EAAMk3S,EAAcjyZ,EAAM9hB,EAAOA,GAAQpqI,EAGlB,IAAlBoqI,EAAK5xD,UAAoC,IAAlB4xD,EAAK5xD,WAK5Bsle,GAAYp9gB,KAAMvf,EAAO+/R,EAAOlpS,MAAM66hB,aAItC1xhB,EAAKxd,QAAS,MAAS,IAG3By/R,EAAajiR,EAAKlW,MAAO,KACzBkW,EAAOiiR,EAAW5/N,QAClB4/N,EAAWpgP,QAEZk7f,EAAS/8hB,EAAKxd,QAAS,KAAQ,GAAK,KAAOwd,GAG3CnJ,EAAQA,EAAOkpS,EAAOmhP,SACrBrqhB,EACA,IAAIkpS,EAAOhhR,MAAO/e,EAAuB,kBAAVnJ,GAAsBA,IAGhDw6hB,UAAYwL,EAAe,EAAI,EACrChmiB,EAAMu/N,UAAY6rD,EAAW30R,KAAM,KACnCuJ,EAAMs7hB,WAAat7hB,EAAMu/N,UACxB,IAAI/wL,OAAQ,UAAY48O,EAAW30R,KAAM,iBAAoB,WAC7D,KAGDuJ,EAAM3L,YAASuJ,EACToC,EAAM5T,SACX4T,EAAM5T,OAASgmI,GAIhB/+H,EAAe,MAARA,EACN,CAAE2M,GACFkpS,EAAOqhP,UAAWl3hB,EAAM,CAAE2M,IAG3BupR,EAAU2f,EAAOlpS,MAAMupR,QAASpgR,IAAU,GACpC68hB,IAAgBz8Q,EAAQn6R,UAAmD,IAAxCm6R,EAAQn6R,QAAQoc,MAAO4mH,EAAM/+H,IAAtE,CAMA,IAAM2yiB,IAAiBz8Q,EAAQlB,WAAa5nN,EAAU2xD,GAAS,CAM9D,IAJA6za,EAAa18Q,EAAQb,cAAgBv/Q,EAC/B28hB,GAAYp9gB,KAAMu9gB,EAAa98hB,KACpC8lP,EAAMA,EAAIr/O,YAEHq/O,EAAKA,EAAMA,EAAIr/O,WACtBw2hB,EAAUhgjB,KAAM6oQ,GAChB/6G,EAAM+6G,EAIF/6G,KAAU9hB,EAAKjM,eAAiBn+H,IACpCo+iB,EAAUhgjB,KAAM8tJ,EAAI2iD,aAAe3iD,EAAImyZ,cAAgBp7hB,GAMzD,IADA1Z,EAAI,GACM09P,EAAMm3S,EAAW70iB,QAAYyO,EAAMsqR,wBAC5C67Q,EAAcl3S,EACdjvP,EAAMmJ,KAAO5X,EAAI,EAChB00iB,EACA18Q,EAAQd,UAAYt/Q,GAGrBxE,GAAW4yhB,GAASlyhB,IAAK4pP,EAAK,WAAc3iQ,OAAOw4B,OAAQ,OAAU9kB,EAAMmJ,OAC1EouhB,GAASlyhB,IAAK4pP,EAAK,YAEnBtqP,EAAO6G,MAAOyjP,EAAK57P,IAIpBsR,EAASuhiB,GAAUj3S,EAAKi3S,KACTvhiB,EAAO6G,OAAS2rhB,GAAYloS,KAC1CjvP,EAAM3L,OAASsQ,EAAO6G,MAAOyjP,EAAK57P,IACZ,IAAjB2M,EAAM3L,QACV2L,EAAMnT,kBA8CT,OA1CAmT,EAAMmJ,KAAOA,EAGP68hB,GAAiBhmiB,EAAMiiR,sBAEpBsH,EAAQhxC,WACqC,IAApDgxC,EAAQhxC,SAAS/sO,MAAO46hB,EAAUxogB,MAAOvqC,KACzC8jiB,GAAY/ka,IAIP8za,GAAUxle,EAAY0xD,EAAMjpH,MAAas3D,EAAU2xD,MAGvD8hB,EAAM9hB,EAAM8za,MAGX9za,EAAM8za,GAAW,MAIlBh9P,EAAOlpS,MAAM66hB,UAAY1xhB,EAEpBnJ,EAAMsqR,wBACV67Q,EAAYjgjB,iBAAkBijB,EAAM48hB,IAGrC3za,EAAMjpH,KAEDnJ,EAAMsqR,wBACV67Q,EAAYxgjB,oBAAqBwjB,EAAM48hB,IAGxC78P,EAAOlpS,MAAM66hB,eAAYj9hB,EAEpBs2I,IACJ9hB,EAAM8za,GAAWhyZ,IAMdl0I,EAAM3L,SAKd+niB,SAAU,SAAUjzhB,EAAMipH,EAAMpyH,GAC/B,IAAIha,EAAIkjT,EAAO56S,OACd,IAAI46S,EAAOhhR,MACXloB,EACA,CACCmJ,KAAMA,EACNyyhB,aAAa,IAIf1yP,EAAOlpS,MAAM5Q,QAASpJ,EAAG,KAAMosI,MAKjC82K,EAAO9pR,GAAG9wB,OAAQ,CAEjBc,QAAS,SAAU+Z,EAAM9V,GACxB,OAAO7N,KAAKya,MAAM,WACjBipS,EAAOlpS,MAAM5Q,QAAS+Z,EAAM9V,EAAM7N,UAGpColS,eAAgB,SAAUzhR,EAAM9V,GAC/B,IAAI++H,EAAO5sI,KAAM,GACjB,GAAK4sI,EACJ,OAAO82K,EAAOlpS,MAAM5Q,QAAS+Z,EAAM9V,EAAM++H,GAAM,MAMlD,IACCk0a,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCAEhB,SAASC,GAAar2gB,EAAQ6iC,EAAKyze,EAAa7/iB,GAC/C,IAAIkM,EAEJ,GAAKjI,MAAMi2E,QAAS9N,GAGnBg2O,EAAOjpS,KAAMizD,GAAK,SAAU3hE,EAAG86C,GACzBs6f,GAAeL,GAAS59gB,KAAM2H,GAGlCvpC,EAAKupC,EAAQgc,GAKbq6f,GACCr2gB,EAAS,KAAqB,kBAANgc,GAAuB,MAALA,EAAY96C,EAAI,IAAO,IACjE86C,EACAs6f,EACA7/iB,WAKG,GAAM6/iB,GAAiC,WAAlB/c,EAAQ12d,GAUnCpsE,EAAKupC,EAAQ6iC,QAPb,IAAMlgE,KAAQkgE,EACbwze,GAAar2gB,EAAS,IAAMr9B,EAAO,IAAKkgE,EAAKlgE,GAAQ2ziB,EAAa7/iB,GAYrEoiT,EAAOv9I,MAAQ,SAAU1gH,EAAG07f,GAC3B,IAAIt2gB,EACHhe,EAAI,GACJvrB,EAAM,SAAU0F,EAAKo6iB,GAGpB,IAAIx/iB,EAAQs5E,EAAYkme,GACvBA,IACAA,EAEDv0hB,EAAGA,EAAEvsB,QAAWwjN,mBAAoB98M,GAAQ,IAC3C88M,mBAA6B,MAATliN,EAAgB,GAAKA,IAG5C,GAAU,MAAL6jD,EACJ,MAAO,GAIR,GAAKlgD,MAAMi2E,QAAS/1B,IAASA,EAAEtjB,SAAWuhR,EAAO3oO,cAAet1B,GAG/Di+P,EAAOjpS,KAAMgrC,GAAG,WACfnkD,EAAKtB,KAAKwN,KAAMxN,KAAK4B,eAOtB,IAAMipC,KAAU4a,EACfy7f,GAAar2gB,EAAQ4a,EAAG5a,GAAUs2gB,EAAa7/iB,GAKjD,OAAOurB,EAAE5b,KAAM,MAGhByyS,EAAO9pR,GAAG9wB,OAAQ,CACjB21B,UAAW,WACV,OAAOilR,EAAOv9I,MAAOnmK,KAAKqhjB,mBAE3BA,eAAgB,WACf,OAAOrhjB,KAAKkG,KAAK,WAGhB,IAAI2kD,EAAW64P,EAAOj9L,KAAMzmH,KAAM,YAClC,OAAO6qD,EAAW64P,EAAOqhP,UAAWl6e,GAAa7qD,QAC9C4F,QAAQ,WACX,IAAI+d,EAAO3jB,KAAK2jB,KAGhB,OAAO3jB,KAAKwN,OAASk2S,EAAQ1jT,MAAO85B,GAAI,cACvCmnhB,GAAa/9gB,KAAMljC,KAAK62P,YAAemqT,GAAgB99gB,KAAMvf,KAC3D3jB,KAAK8mS,UAAY4sQ,GAAexwgB,KAAMvf,OACtCzd,KAAK,SAAUypH,EAAIid,GACtB,IAAI7oH,EAAM2/R,EAAQ1jT,MAAO+jB,MAEzB,OAAY,MAAPA,EACG,KAGHxe,MAAMi2E,QAASz3D,GACZ2/R,EAAOx9S,IAAK6d,GAAK,SAAUA,GACjC,MAAO,CAAEvW,KAAMo/H,EAAKp/H,KAAM5L,MAAOmiB,EAAI2kC,QAASq4f,GAAO,YAIhD,CAAEvziB,KAAMo/H,EAAKp/H,KAAM5L,MAAOmiB,EAAI2kC,QAASq4f,GAAO,YAClDlhiB,SAKN,IACCyhiB,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAIXC,GAAa,iBACbC,GAAY,QAWZxE,GAAa,GAObyE,GAAa,GAGbC,GAAW,KAAKjmhB,OAAQ,KAGxBm/N,GAAev4P,EAAS4gC,cAAe,KAKxC,SAAS0+gB,GAA6BC,GAGrC,OAAO,SAAUC,EAAoB7/f,GAED,kBAAvB6/f,IACX7/f,EAAO6/f,EACPA,EAAqB,KAGtB,IAAIvxc,EACH1kG,EAAI,EACJk2iB,EAAYD,EAAmB/+gB,cAActhB,MAAOsthB,IAAmB,GAExE,GAAK/zd,EAAY/4B,GAGhB,KAAUsuD,EAAWwxc,EAAWl2iB,MAGR,MAAlB0kG,EAAU,IACdA,EAAWA,EAAShrG,MAAO,IAAO,KAChCs8iB,EAAWtxc,GAAasxc,EAAWtxc,IAAc,IAAKysD,QAAS/6G,KAI/D4/f,EAAWtxc,GAAasxc,EAAWtxc,IAAc,IAAK7vG,KAAMuhD,IAQnE,SAAS+/f,GAA+BH,EAAW3niB,EAASojiB,EAAiBnygB,GAE5E,IAAI82gB,EAAY,GACfC,EAAqBL,IAAcH,GAEpC,SAASS,EAAS5xc,GACjB,IAAIxjF,EAcJ,OAbAk1hB,EAAW1xc,IAAa,EACxBizM,EAAOjpS,KAAMsniB,EAAWtxc,IAAc,IAAI,SAAU/1F,EAAG4niB,GACtD,IAAIC,EAAsBD,EAAoBloiB,EAASojiB,EAAiBnygB,GACxE,MAAoC,kBAAxBk3gB,GACVH,GAAqBD,EAAWI,GAKtBH,IACDn1hB,EAAWs1hB,QADf,GAHNnoiB,EAAQ6niB,UAAU/kZ,QAASqlZ,GAC3BF,EAASE,IACF,MAKFt1hB,EAGR,OAAOo1hB,EAASjoiB,EAAQ6niB,UAAW,MAAUE,EAAW,MAASE,EAAS,KAM3E,SAASG,GAAY57iB,EAAQg7D,GAC5B,IAAI56D,EAAKu0E,EACRkne,EAAc/+P,EAAOr6P,aAAao5f,aAAe,GAElD,IAAMz7iB,KAAO46D,OACQxpD,IAAfwpD,EAAK56D,MACPy7iB,EAAaz7iB,GAAQJ,EAAW20E,IAAUA,EAAO,KAAUv0E,GAAQ46D,EAAK56D,IAO5E,OAJKu0E,GACJmoO,EAAO56S,QAAQ,EAAMlC,EAAQ20E,GAGvB30E,EA/ERm0P,GAAah7L,KAAO//B,GAAS+/B,KAgP7B2jP,EAAO56S,OAAQ,CAGdqiB,OAAQ,EAGRu3hB,aAAc,GACdC,KAAM,GAENt5f,aAAc,CACbzK,IAAK5e,GAAS+/B,KACdp8C,KAAM,MACNi/hB,QAxRgB,4DAwRQ1/gB,KAAMlD,GAAS4rL,UACvCtxF,QAAQ,EACRuob,aAAa,EACb/nT,OAAO,EACP77M,YAAa,mDAcbs7M,QAAS,CACR,IAAKsnT,GACLl/iB,KAAM,aACN6kD,KAAM,YACNgzM,IAAK,4BACLp7M,KAAM,qCAGPkpM,SAAU,CACTkS,IAAK,UACLhzM,KAAM,SACNpI,KAAM,YAGP0jgB,eAAgB,CACftoT,IAAK,cACL73P,KAAM,eACNy8C,KAAM,gBAKP2jgB,WAAY,CAGX,SAAUl9e,OAGV,aAAa,EAGb,YAAavqD,KAAK+6E,MAGlB,WAAYqtN,EAAO08P,UAOpBqC,YAAa,CACZ7jgB,KAAK,EACLjkC,SAAS,IAOXyuC,UAAW,SAAUxiD,EAAQ4F,GAC5B,OAAOA,EAGNg2iB,GAAYA,GAAY57iB,EAAQ88S,EAAOr6P,cAAgB78C,GAGvDg2iB,GAAY9+P,EAAOr6P,aAAcziD,IAGnCo8iB,cAAelB,GAA6B3E,IAC5C8F,cAAenB,GAA6BF,IAG5C7+e,KAAM,SAAUnkB,EAAKxkC,GAGA,kBAARwkC,IACXxkC,EAAUwkC,EACVA,OAAMxmC,GAMP,IAAI8qiB,EAGHC,EAGAC,EACAj/V,EAGAk/V,EAGAroT,EAGA81S,EAGAwS,EAGAv3iB,EAGAw3iB,EAGA12hB,EAAI62R,EAAOt6P,UAAW,GA9BvBhvC,EAAUA,GAAW,IAiCpBopiB,EAAkB32hB,EAAElS,SAAWkS,EAG/B42hB,EAAqB52hB,EAAElS,UACpB6oiB,EAAgBxoe,UAAYwoe,EAAgBrhhB,QAC9CuhR,EAAQ8/P,GACR9/P,EAAOlpS,MAGRwwB,EAAW04Q,EAAOlxF,WAClBkxV,EAAmBhgQ,EAAOjmE,UAAW,eAGrCkmU,EAAa92hB,EAAE82hB,YAAc,GAG7BtgW,EAAiB,GACjBugW,EAAsB,GAGtBC,EAAW,WAGXx4gB,EAAQ,CACPg4F,WAAY,EAGZ4oJ,kBAAmB,SAAUjlR,GAC5B,IAAI2a,EACJ,GAAKmvhB,EAAY,CAChB,IAAM3sV,EAEL,IADAA,EAAkB,GACRxiM,EAAQ8/hB,GAASlziB,KAAM60iB,IAChCj/V,EAAiBxiM,EAAO,GAAIshB,cAAgB,MACzCkhL,EAAiBxiM,EAAO,GAAIshB,cAAgB,MAAS,IACrDrH,OAAQja,EAAO,IAGpBA,EAAQwiM,EAAiBn9M,EAAIi8B,cAAgB,KAE9C,OAAgB,MAATthB,EAAgB,KAAOA,EAAM1Q,KAAM,OAI3CmzM,sBAAuB,WACtB,OAAO0sV,EAAYsS,EAAwB,MAI5Cn+V,iBAAkB,SAAUz3M,EAAM5L,GAMjC,OALkB,MAAbkviB,IACJtjiB,EAAOo2iB,EAAqBp2iB,EAAKy1B,eAChC2ghB,EAAqBp2iB,EAAKy1B,gBAAmBz1B,EAC9C61M,EAAgB71M,GAAS5L,GAEnB5B,MAIR8jjB,iBAAkB,SAAUngiB,GAI3B,OAHkB,MAAbmthB,IACJjkhB,EAAEk3hB,SAAWpgiB,GAEP3jB,MAIR2jjB,WAAY,SAAUz9iB,GACrB,IAAIq9J,EACJ,GAAKr9J,EACJ,GAAK4qiB,EAGJzlgB,EAAM+yB,OAAQl4D,EAAKmlC,EAAMqM,cAIzB,IAAM6rH,KAAQr9J,EACby9iB,EAAYpgZ,GAAS,CAAEogZ,EAAYpgZ,GAAQr9J,EAAKq9J,IAInD,OAAOvjK,MAIRslN,MAAO,SAAUnmK,GAChB,IAAI6kgB,EAAY7kgB,GAAc0kgB,EAK9B,OAJKX,GACJA,EAAU59V,MAAO0+V,GAElB5qhB,EAAM,EAAG4qhB,GACFhkjB,OAoBV,GAfAgrC,EAASx6B,QAAS66B,GAKlBxe,EAAE+xB,MAAUA,GAAO/xB,EAAE+xB,KAAO5e,GAAS+/B,MAAS,IAC5CrX,QAASi5f,GAAW3hhB,GAAS4rL,SAAW,MAG1C/+L,EAAElJ,KAAOvJ,EAAQpR,QAAUoR,EAAQuJ,MAAQkJ,EAAE7jB,QAAU6jB,EAAElJ,KAGzDkJ,EAAEo1hB,WAAcp1hB,EAAE4jF,UAAY,KAAMxtE,cAActhB,MAAOsthB,IAAmB,CAAE,IAGxD,MAAjBpihB,EAAE+tO,YAAsB,CAC5BI,EAAYx4P,EAAS4gC,cAAe,KAKpC,IACC43N,EAAUj7L,KAAOlzC,EAAE+xB,IAInBo8M,EAAUj7L,KAAOi7L,EAAUj7L,KAC3BlzC,EAAE+tO,YAAcG,GAAanvC,SAAW,KAAOmvC,GAAatwN,OAC3DuwN,EAAUpvC,SAAW,KAAOovC,EAAUvwN,KACtC,MAAQjqC,GAITqsB,EAAE+tO,aAAc,GAalB,GARK/tO,EAAEhf,MAAQgf,EAAEg2hB,aAAiC,kBAAXh2hB,EAAEhf,OACxCgf,EAAEhf,KAAO61S,EAAOv9I,MAAOt5I,EAAEhf,KAAMgf,EAAEs0hB,cAIlCe,GAA+B/E,GAAYtwhB,EAAGzS,EAASixB,GAGlDylgB,EACJ,OAAOzlgB,EA8ER,IAAMt/B,KAzENu3iB,EAAc5/P,EAAOlpS,OAASqS,EAAEytG,SAGQ,IAApBopL,EAAOv4R,UAC1Bu4R,EAAOlpS,MAAM5Q,QAAS,aAIvBijB,EAAElJ,KAAOkJ,EAAElJ,KAAK+hG,cAGhB74F,EAAEiJ,YAAc4rhB,GAAWx+gB,KAAMrW,EAAElJ,MAKnCw/hB,EAAWt2hB,EAAE+xB,IAAI8J,QAAS64f,GAAO,IAG3B10hB,EAAEiJ,WAwBIjJ,EAAEhf,MAAQgf,EAAEg2hB,aACoD,KAAzEh2hB,EAAEoyB,aAAe,IAAK94C,QAAS,uCACjC0mB,EAAEhf,KAAOgf,EAAEhf,KAAK66C,QAAS44f,GAAK,OAvB9BiC,EAAW12hB,EAAE+xB,IAAIn5C,MAAO09iB,EAAS7ijB,QAG5BusB,EAAEhf,OAAUgf,EAAEg2hB,aAAiC,kBAAXh2hB,EAAEhf,QAC1Cs1iB,IAAchD,GAAOj9gB,KAAMighB,GAAa,IAAM,KAAQt2hB,EAAEhf,YAGjDgf,EAAEhf,OAIO,IAAZgf,EAAE8yB,QACNwjgB,EAAWA,EAASz6f,QAAS84f,GAAY,MACzC+B,GAAapD,GAAOj9gB,KAAMighB,GAAa,IAAM,KAAQ,KAASlf,GAAMhggB,OACnEs/gB,GAIF12hB,EAAE+xB,IAAMukgB,EAAWI,GASf12hB,EAAEo3hB,aACDvgQ,EAAOg/P,aAAcS,IACzB93gB,EAAM45K,iBAAkB,oBAAqBy+F,EAAOg/P,aAAcS,IAE9Dz/P,EAAOi/P,KAAMQ,IACjB93gB,EAAM45K,iBAAkB,gBAAiBy+F,EAAOi/P,KAAMQ,MAKnDt2hB,EAAEhf,MAAQgf,EAAEiJ,aAAgC,IAAlBjJ,EAAEoyB,aAAyB7kC,EAAQ6kC,cACjE5T,EAAM45K,iBAAkB,eAAgBp4L,EAAEoyB,aAI3C5T,EAAM45K,iBACL,SACAp4L,EAAEo1hB,UAAW,IAAOp1hB,EAAE0tO,QAAS1tO,EAAEo1hB,UAAW,IAC3Cp1hB,EAAE0tO,QAAS1tO,EAAEo1hB,UAAW,KACA,MAArBp1hB,EAAEo1hB,UAAW,GAAc,KAAOJ,GAAW,WAAa,IAC7Dh1hB,EAAE0tO,QAAS,MAIF1tO,EAAEqyB,QACZ7T,EAAM45K,iBAAkBl5M,EAAG8gB,EAAEqyB,QAASnzC,IAIvC,GAAK8gB,EAAEkzB,cAC+C,IAAnDlzB,EAAEkzB,WAAWt/C,KAAM+ijB,EAAiBn4gB,EAAOxe,IAAiBikhB,GAG9D,OAAOzlgB,EAAMi6K,QAed,GAXAu+V,EAAW,QAGXH,EAAiBpijB,IAAKurB,EAAEo3M,UACxB54L,EAAMjS,KAAMvM,EAAE2yB,SACdnU,EAAMvK,KAAMjU,EAAE6yB,OAGdwjgB,EAAYhB,GAA+BN,GAAY/0hB,EAAGzS,EAASixB,GAK5D,CASN,GARAA,EAAMg4F,WAAa,EAGdigb,GACJG,EAAmB75iB,QAAS,WAAY,CAAEyhC,EAAOxe,IAI7CikhB,EACJ,OAAOzlgB,EAIHxe,EAAEiuO,OAASjuO,EAAEjqB,QAAU,IAC3BygjB,EAAe59hB,EAAO5iB,YAAY,WACjCwoC,EAAMi6K,MAAO,aACXz4L,EAAEjqB,UAGN,IACCkuiB,GAAY,EACZoS,EAAU3/a,KAAM8/E,EAAgBjqL,GAC/B,MAAQ54B,GAGT,GAAKswiB,EACJ,MAAMtwiB,EAIP44B,GAAO,EAAG54B,SAhCX44B,GAAO,EAAG,gBAqCX,SAASA,EAAMse,EAAQwsgB,EAAkB5/d,EAAWplC,GACnD,IAAIilgB,EAAW3kgB,EAASE,EAAOX,EAAUqlgB,EACxCjlgB,EAAa+kgB,EAGTpT,IAILA,GAAY,EAGPuS,GACJ59hB,EAAOyY,aAAcmlhB,GAKtBH,OAAY9qiB,EAGZgriB,EAAwBlkgB,GAAW,GAGnC7T,EAAMg4F,WAAa3rF,EAAS,EAAI,EAAI,EAGpCysgB,EAAYzsgB,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAGxC4sC,IACJvlC,EA7lBJ,SAA8BlyB,EAAGwe,EAAOi5C,GAOvC,IALA,IAAI+/d,EAAI1giB,EAAM2giB,EAAeC,EAC5Bj8T,EAAWz7N,EAAEy7N,SACb25T,EAAYp1hB,EAAEo1hB,UAGY,MAAnBA,EAAW,IAClBA,EAAUj8e,aACE5tD,IAAPisiB,IACJA,EAAKx3hB,EAAEk3hB,UAAY14gB,EAAM4gP,kBAAmB,iBAK9C,GAAKo4R,EACJ,IAAM1giB,KAAQ2kO,EACb,GAAKA,EAAU3kO,IAAU2kO,EAAU3kO,GAAOuf,KAAMmhhB,GAAO,CACtDpC,EAAU/kZ,QAASv5I,GACnB,MAMH,GAAKs+hB,EAAW,KAAO39d,EACtBgge,EAAgBrC,EAAW,OACrB,CAGN,IAAMt+hB,KAAQ2gE,EAAY,CACzB,IAAM29d,EAAW,IAAOp1hB,EAAEk2hB,WAAYp/hB,EAAO,IAAMs+hB,EAAW,IAAQ,CACrEqC,EAAgB3giB,EAChB,MAEK4giB,IACLA,EAAgB5giB,GAKlB2giB,EAAgBA,GAAiBC,EAMlC,GAAKD,EAIJ,OAHKA,IAAkBrC,EAAW,IACjCA,EAAU/kZ,QAASonZ,GAEbhge,EAAWgge,GA0iBLE,CAAqB33hB,EAAGwe,EAAOi5C,KAIrC6/d,GACLzgQ,EAAOshP,QAAS,SAAUn4gB,EAAEo1hB,YAAe,GAC3Cv+P,EAAOshP,QAAS,OAAQn4gB,EAAEo1hB,WAAc,IACxCp1hB,EAAEk2hB,WAAY,eAAkB,cAIjChkgB,EA9iBH,SAAsBlyB,EAAGkyB,EAAU1T,EAAO84gB,GACzC,IAAIM,EAAOnmU,EAASomU,EAAMh2Z,EAAKjoH,EAC9Bs8gB,EAAa,GAGbd,EAAYp1hB,EAAEo1hB,UAAUx8iB,QAGzB,GAAKw8iB,EAAW,GACf,IAAMyC,KAAQ73hB,EAAEk2hB,WACfA,EAAY2B,EAAKzhhB,eAAkBpW,EAAEk2hB,WAAY2B,GAOnD,IAHApmU,EAAU2jU,EAAUj8e,QAGZs4K,GAcP,GAZKzxN,EAAEi2hB,eAAgBxkU,KACtBjzM,EAAOxe,EAAEi2hB,eAAgBxkU,IAAcv/L,IAIlCtY,GAAQ09gB,GAAat3hB,EAAE4lb,aAC5B1zZ,EAAWlyB,EAAE4lb,WAAY1zZ,EAAUlyB,EAAE4jF,WAGtChqE,EAAO63M,EACPA,EAAU2jU,EAAUj8e,QAKnB,GAAiB,MAAZs4K,EAEJA,EAAU73M,OAGJ,GAAc,MAATA,GAAgBA,IAAS63M,EAAU,CAM9C,KAHAomU,EAAO3B,EAAYt8gB,EAAO,IAAM63M,IAAaykU,EAAY,KAAOzkU,IAI/D,IAAMmmU,KAAS1B,EAId,IADAr0Z,EAAM+1Z,EAAMh3iB,MAAO,MACT,KAAQ6wO,IAGjBomU,EAAO3B,EAAYt8gB,EAAO,IAAMioH,EAAK,KACpCq0Z,EAAY,KAAOr0Z,EAAK,KACb,EAGG,IAATg2Z,EACJA,EAAO3B,EAAY0B,IAGgB,IAAxB1B,EAAY0B,KACvBnmU,EAAU5vF,EAAK,GACfuzZ,EAAU/kZ,QAASxO,EAAK,KAEzB,MAOJ,IAAc,IAATg2Z,EAGJ,GAAKA,GAAQ73hB,EAAE83hB,OACd5lgB,EAAW2lgB,EAAM3lgB,QAEjB,IACCA,EAAW2lgB,EAAM3lgB,GAChB,MAAQv+C,GACT,MAAO,CACN22F,MAAO,cACPz3C,MAAOglgB,EAAOlkjB,EAAI,sBAAwBimC,EAAO,OAAS63M,IASjE,MAAO,CAAEnnJ,MAAO,UAAWtpF,KAAMkxC,GAidpB6lgB,CAAa/3hB,EAAGkyB,EAAU1T,EAAO84gB,GAGvCA,GAGCt3hB,EAAEo3hB,cACNG,EAAW/4gB,EAAM4gP,kBAAmB,oBAEnCy3B,EAAOg/P,aAAcS,GAAaiB,IAEnCA,EAAW/4gB,EAAM4gP,kBAAmB,WAEnCy3B,EAAOi/P,KAAMQ,GAAaiB,IAKZ,MAAX1sgB,GAA6B,SAAX7qB,EAAElJ,KACxBw7B,EAAa,YAGS,MAAXzH,EACXyH,EAAa,eAIbA,EAAaJ,EAASo4C,MACtB33C,EAAUT,EAASlxC,KAEnBs2iB,IADAzkgB,EAAQX,EAASW,UAMlBA,EAAQP,GACHzH,GAAWyH,IACfA,EAAa,QACRzH,EAAS,IACbA,EAAS,KAMZrM,EAAMqM,OAASA,EACfrM,EAAM8T,YAAe+kgB,GAAoB/kgB,GAAe,GAGnDglgB,EACJn5gB,EAASq0L,YAAamkV,EAAiB,CAAEhkgB,EAASL,EAAY9T,IAE9DL,EAASu0L,WAAYikV,EAAiB,CAAEn4gB,EAAO8T,EAAYO,IAI5DrU,EAAMs4gB,WAAYA,GAClBA,OAAavriB,EAERkriB,GACJG,EAAmB75iB,QAASu6iB,EAAY,cAAgB,YACvD,CAAE94gB,EAAOxe,EAAGs3hB,EAAY3kgB,EAAUE,IAIpCgkgB,EAAiBn/T,SAAUi/T,EAAiB,CAAEn4gB,EAAO8T,IAEhDmkgB,IACJG,EAAmB75iB,QAAS,eAAgB,CAAEyhC,EAAOxe,MAG3C62R,EAAOv4R,QAChBu4R,EAAOlpS,MAAM5Q,QAAS,cAKzB,OAAOyhC,GAGRw5gB,QAAS,SAAUjmgB,EAAK/wC,EAAM2gD,GAC7B,OAAOk1P,EAAO7jS,IAAK++B,EAAK/wC,EAAM2gD,EAAU,SAGzCs2f,UAAW,SAAUlmgB,EAAK4P,GACzB,OAAOk1P,EAAO7jS,IAAK++B,OAAKxmC,EAAWo2C,EAAU,aAI/Ck1P,EAAOjpS,KAAM,CAAE,MAAO,SAAU,SAAUk1G,EAAI3mH,GAC7C06S,EAAQ16S,GAAW,SAAU41C,EAAK/wC,EAAM2gD,EAAU7qC,GAUjD,OAPKu3D,EAAYrtE,KAChB8V,EAAOA,GAAQ6qC,EACfA,EAAW3gD,EACXA,OAAOuK,GAIDsrS,EAAO3gP,KAAM2gP,EAAO56S,OAAQ,CAClC81C,IAAKA,EACLj7B,KAAM3a,EACNynG,SAAU9sF,EACV9V,KAAMA,EACN2xC,QAASgP,GACPk1P,EAAO3oO,cAAen8B,IAASA,QAIpC8kQ,EAAOs/P,eAAe,SAAUn2hB,GAC/B,IAAI9gB,EACJ,IAAMA,KAAK8gB,EAAEqyB,QACa,iBAApBnzC,EAAEk3B,gBACNpW,EAAEoyB,YAAcpyB,EAAEqyB,QAASnzC,IAAO,OAMrC23S,EAAOs0P,SAAW,SAAUp5f,EAAKxkC,EAAS+8D,GACzC,OAAOusO,EAAO3gP,KAAM,CACnBnkB,IAAKA,EAGLj7B,KAAM,MACN8sF,SAAU,SACV9wD,OAAO,EACPm7M,OAAO,EACPxgI,QAAQ,EAKRyob,WAAY,CACX,cAAe,cAEhBtwG,WAAY,SAAU1zZ,GACrB2kQ,EAAOohP,WAAY/lf,EAAU3kC,EAAS+8D,OAMzCusO,EAAO9pR,GAAG9wB,OAAQ,CACjBi8iB,QAAS,SAAUv9f,GAClB,IAAIo4H,EAyBJ,OAvBK5/K,KAAM,KACLk7E,EAAY1zB,KAChBA,EAAOA,EAAK/mD,KAAMT,KAAM,KAIzB4/K,EAAO8jI,EAAQl8P,EAAMxnD,KAAM,GAAI2gI,eAAgB/4E,GAAI,GAAI0zB,OAAO,GAEzDt7E,KAAM,GAAIoqB,YACdw1J,EAAKh+C,aAAc5hI,KAAM,IAG1B4/K,EAAK15K,KAAK,WAGT,IAFA,IAAI0mI,EAAO5sI,KAEH4sI,EAAKo4a,mBACZp4a,EAAOA,EAAKo4a,kBAGb,OAAOp4a,KACJ7sH,OAAQ/f,OAGNA,MAGR81P,UAAW,SAAUtuM,GACpB,OAAK0zB,EAAY1zB,GACTxnD,KAAKya,MAAM,SAAU1O,GAC3B23S,EAAQ1jT,MAAO81P,UAAWtuM,EAAK/mD,KAAMT,KAAM+L,OAItC/L,KAAKya,MAAM,WACjB,IAAImM,EAAO88R,EAAQ1jT,MAClBsoP,EAAW1hO,EAAK0hO,WAEZA,EAAShoP,OACbgoP,EAASy8T,QAASv9f,GAGlB5gC,EAAK7G,OAAQynC,OAKhBo4H,KAAM,SAAUp4H,GACf,IAAIy9f,EAAiB/pe,EAAY1zB,GAEjC,OAAOxnD,KAAKya,MAAM,SAAU1O,GAC3B23S,EAAQ1jT,MAAO+kjB,QAASE,EAAiBz9f,EAAK/mD,KAAMT,KAAM+L,GAAMy7C,OAIlEr+B,OAAQ,SAAUI,GAIjB,OAHAvpB,KAAKyL,OAAQ8d,GAAW6sO,IAAK,QAAS37O,MAAM,WAC3CipS,EAAQ1jT,MAAO+1P,YAAa/1P,KAAK4iH,eAE3B5iH,QAKT0jT,EAAO3tN,KAAK4wc,QAAQhygB,OAAS,SAAUi4G,GACtC,OAAQ82K,EAAO3tN,KAAK4wc,QAAQ99hB,QAAS+jI,IAEtC82K,EAAO3tN,KAAK4wc,QAAQ99hB,QAAU,SAAU+jI,GACvC,SAAWA,EAAK9vH,aAAe8vH,EAAK7vH,cAAgB6vH,EAAKupH,iBAAiB71P,SAM3EojT,EAAOr6P,aAAa45E,IAAM,WACzB,IACC,OAAO,IAAIx9G,EAAOy9G,eACjB,MAAQ1iI,MAGX,IAAI0kjB,GAAmB,CAGrB,EAAG,IAIH,KAAM,KAEPC,GAAezhQ,EAAOr6P,aAAa45E,MAEpC40K,EAAQutQ,OAASD,IAAkB,oBAAqBA,GACxDttQ,EAAQ90O,KAAOoif,KAAiBA,GAEhCzhQ,EAAOu/P,eAAe,SAAU7oiB,GAC/B,IAAIo0C,EAAU62f,EAGd,GAAKxtQ,EAAQutQ,MAAQD,KAAiB/qiB,EAAQwgP,YAC7C,MAAO,CACNr3H,KAAM,SAAUrkF,EAAS+kL,GACxB,IAAIl4N,EACHk3H,EAAM7oH,EAAQ6oH,MAWf,GATAA,EAAIE,KACH/oH,EAAQuJ,KACRvJ,EAAQwkC,IACRxkC,EAAQ0gP,MACR1gP,EAAQupM,SACRvpM,EAAQwpM,UAIJxpM,EAAQ0hP,UACZ,IAAM/vP,KAAKqO,EAAQ0hP,UAClB74H,EAAKl3H,GAAMqO,EAAQ0hP,UAAW/vP,GAmBhC,IAAMA,KAdDqO,EAAQ2piB,UAAY9gb,EAAI6gb,kBAC5B7gb,EAAI6gb,iBAAkB1piB,EAAQ2piB,UAQzB3piB,EAAQwgP,aAAgB17M,EAAS,sBACtCA,EAAS,oBAAuB,kBAItBA,EACV+jF,EAAIgiF,iBAAkBl5M,EAAGmzC,EAASnzC,IAInCyiD,EAAW,SAAU7qC,GACpB,OAAO,WACD6qC,IACJA,EAAW62f,EAAgBpib,EAAIjrD,OAC9BirD,EAAI42E,QAAU52E,EAAIshF,QAAUthF,EAAIuhF,UAC/BvhF,EAAIG,mBAAqB,KAEb,UAATz/G,EACJs/G,EAAIqiF,QACgB,UAAT3hM,EAKgB,kBAAfs/G,EAAIvrF,OACfusL,EAAU,EAAG,SAEbA,EAGChhG,EAAIvrF,OACJurF,EAAI9jF,YAIN8kL,EACCihV,GAAkBjib,EAAIvrF,SAAYurF,EAAIvrF,OACtCurF,EAAI9jF,WAK+B,UAAjC8jF,EAAIqgF,cAAgB,SACM,kBAArBrgF,EAAIK,aACV,CAAEr0B,OAAQg0B,EAAIlkF,UACd,CAAEp8C,KAAMsgI,EAAIK,cACbL,EAAImhF,4BAQTnhF,EAAIjrD,OAASxpB,IACb62f,EAAgBpib,EAAI42E,QAAU52E,EAAIuhF,UAAYh2J,EAAU,cAKnCp2C,IAAhB6qH,EAAIshF,QACRthF,EAAIshF,QAAU8gW,EAEdpib,EAAIG,mBAAqB,WAGA,IAAnBH,EAAII,YAMR59G,EAAO5iB,YAAY,WACb2rD,GACJ62f,QAQL72f,EAAWA,EAAU,SAErB,IAGCy0E,EAAIM,KAAMnpH,EAAQ0b,YAAc1b,EAAQvM,MAAQ,MAC/C,MAAQrN,GAGT,GAAKguD,EACJ,MAAMhuD,IAKT8kN,MAAO,WACD92J,GACJA,SAWLk1P,EAAOs/P,eAAe,SAAUn2hB,GAC1BA,EAAE+tO,cACN/tO,EAAEy7N,SAAS3mL,QAAS,MAKtB+hP,EAAOt6P,UAAW,CACjBmxM,QAAS,CACR54L,OAAQ,6FAGT2mL,SAAU,CACT3mL,OAAQ,2BAETohf,WAAY,CACX,cAAe,SAAUpgjB,GAExB,OADA+gT,EAAOohP,WAAYniiB,GACZA,MAMV+gT,EAAOs/P,cAAe,UAAU,SAAUn2hB,QACxBzU,IAAZyU,EAAE8yB,QACN9yB,EAAE8yB,OAAQ,GAEN9yB,EAAE+tO,cACN/tO,EAAElJ,KAAO,UAKX+/R,EAAOu/P,cAAe,UAAU,SAAUp2hB,GAIxC,IAAI80C,EAAQnT,EADb,GAAK3hC,EAAE+tO,aAAe/tO,EAAEy4hB,YAEvB,MAAO,CACN/hb,KAAM,SAAU7oH,EAAGupN,GAClBtiK,EAAS+hP,EAAQ,YACf9jS,KAAMiN,EAAEy4hB,aAAe,IACvB7+b,KAAM,CAAE8+b,QAAS14hB,EAAE24hB,cAAe5jf,IAAK/0C,EAAE+xB,MACzCtmB,GAAI,aAAck2B,EAAW,SAAUi3f,GACvC9jf,EAAOngE,SACPgtD,EAAW,KACNi3f,GACJxhV,EAAuB,UAAbwhV,EAAI9hiB,KAAmB,IAAM,IAAK8hiB,EAAI9hiB,QAKnDnhB,EAAS+9H,KAAK/oD,YAAa7V,EAAQ,KAEpC2jJ,MAAO,WACD92J,GACJA,SAUL,IAAIk3f,GAAe,GAClBC,GAAS,oBAGVjiQ,EAAOt6P,UAAW,CACjBqxM,MAAO,WACPU,cAAe,WACd,IAAI3sM,EAAWk3f,GAAattgB,OAAWsrQ,EAAOmhP,QAAU,IAAQZ,GAAMhggB,OAEtE,OADAjkC,KAAMwuD,IAAa,EACZA,KAKTk1P,EAAOs/P,cAAe,cAAc,SAAUn2hB,EAAG+4hB,EAAkBv6gB,GAElE,IAAId,EAAcs7gB,EAAaC,EAC9BC,GAAuB,IAAZl5hB,EAAE4tO,QAAqBkrT,GAAOzihB,KAAMrW,EAAE+xB,KAChD,MACkB,kBAAX/xB,EAAEhf,MAE6C,KADnDgf,EAAEoyB,aAAe,IACjB94C,QAAS,sCACXw/iB,GAAOzihB,KAAMrW,EAAEhf,OAAU,QAI5B,GAAKk4iB,GAAiC,UAArBl5hB,EAAEo1hB,UAAW,GA8D7B,OA3DA13gB,EAAe1d,EAAEsuO,cAAgBjgL,EAAYruD,EAAEsuO,eAC9CtuO,EAAEsuO,gBACFtuO,EAAEsuO,cAGE4qT,EACJl5hB,EAAGk5hB,GAAal5hB,EAAGk5hB,GAAWr9f,QAASi9f,GAAQ,KAAOp7gB,IAC/B,IAAZ1d,EAAE4tO,QACb5tO,EAAE+xB,MAASuhgB,GAAOj9gB,KAAMrW,EAAE+xB,KAAQ,IAAM,KAAQ/xB,EAAE4tO,MAAQ,IAAMlwN,GAIjE1d,EAAEk2hB,WAAY,eAAkB,WAI/B,OAHM+C,GACLpiQ,EAAOhkQ,MAAOnV,EAAe,mBAEvBu7gB,EAAmB,IAI3Bj5hB,EAAEo1hB,UAAW,GAAM,OAGnB4D,EAAcpgiB,EAAQ8kB,GACtB9kB,EAAQ8kB,GAAiB,WACxBu7gB,EAAoB/9iB,WAIrBsjC,EAAM+yB,QAAQ,gBAGQhmD,IAAhBytiB,EACJniQ,EAAQj+R,GAASg6hB,WAAYl1gB,GAI7B9kB,EAAQ8kB,GAAiBs7gB,EAIrBh5hB,EAAG0d,KAGP1d,EAAEsuO,cAAgByqT,EAAiBzqT,cAGnCuqT,GAAa9kjB,KAAM2pC,IAIfu7gB,GAAqB5qe,EAAY2qe,IACrCA,EAAaC,EAAmB,IAGjCA,EAAoBD,OAAcztiB,KAI5B,YAYTy/R,EAAQmuQ,mBAAuB,WAC9B,IAAIz9gB,EAAO/lC,EAASyjjB,eAAeD,mBAAoB,IAAKz9gB,KAE5D,OADAA,EAAKg4B,UAAY,6BACiB,IAA3Bh4B,EAAKq6E,WAAWtiH,OAHO,GAW/BojT,EAAOpuD,UAAY,SAAUznP,EAAM8M,EAASuriB,GAC3C,MAAqB,kBAATr4iB,EACJ,IAEgB,mBAAZ8M,IACXuriB,EAAcvriB,EACdA,GAAU,GAKLA,IAIAk9R,EAAQmuQ,qBAMZt+a,GALA/sH,EAAUnY,EAASyjjB,eAAeD,mBAAoB,KAKvC5ihB,cAAe,SACzB28B,KAAOv9D,EAASw9B,SAAS+/B,KAC9BplD,EAAQ4lH,KAAK/oD,YAAakwD,IAE1B/sH,EAAUnY,GAKZ4mI,GAAW88a,GAAe,IAD1Bj6V,EAASkiV,EAAW5/hB,KAAMV,IAKlB,CAAE8M,EAAQyoB,cAAe6oL,EAAQ,MAGzCA,EAASooV,GAAe,CAAExmiB,GAAQ8M,EAASyuH,GAEtCA,GAAWA,EAAQ9oI,QACvBojT,EAAQt6K,GAAU5nI,SAGZkiT,EAAOzmJ,MAAO,GAAIgvD,EAAOrpG,cAlChC,IAAI8kB,EAAMukF,EAAQ7iF,GAyCnBs6K,EAAO9pR,GAAGhtB,KAAO,SAAUgyC,EAAK7c,EAAQysB,GACvC,IAAIjlC,EAAU5F,EAAMo7B,EACnBn4B,EAAO5mB,KACPq4B,EAAMumB,EAAIz4C,QAAS,KAsDpB,OApDKkyB,GAAO,IACX9O,EAAW+1hB,GAAkB1ggB,EAAIn5C,MAAO4yB,IACxCumB,EAAMA,EAAIn5C,MAAO,EAAG4yB,IAIhB6iD,EAAYn5C,IAGhBysB,EAAWzsB,EACXA,OAAS3pB,GAGE2pB,GAA4B,kBAAXA,IAC5Bpe,EAAO,QAIHiD,EAAKtmB,OAAS,GAClBojT,EAAO3gP,KAAM,CACZnkB,IAAKA,EAKLj7B,KAAMA,GAAQ,MACd8sF,SAAU,OACV5iG,KAAMk0B,IACH3I,MAAM,SAAUkqG,GAGnBvkF,EAAWh3C,UAEX6e,EAAK4gC,KAAMj+B,EAIVm6R,EAAQ,SAAU3jS,OAAQ2jS,EAAOpuD,UAAWhyH,IAAiBjnH,KAAMkN,GAGnE+5G,MAKEllE,OAAQ5P,GAAY,SAAUnjB,EAAOqM,GACxC9wB,EAAKnM,MAAM,WACV+zC,EAASxoC,MAAOhmB,KAAM++C,GAAY,CAAE1T,EAAMi4F,aAAc5rF,EAAQrM,SAK5DrrC,MAMR0jT,EAAO3tN,KAAK4wc,QAAQwf,SAAW,SAAUv5a,GACxC,OAAO82K,EAAO33D,KAAM23D,EAAO86P,QAAQ,SAAU5khB,GAC5C,OAAOgzG,IAAShzG,EAAGgzG,QAChBtsI,QAMLojT,EAAOn4S,OAAS,CACf66iB,UAAW,SAAUx5a,EAAMxyH,EAASrO,GACnC,IAAIs6iB,EAAaC,EAASC,EAAWC,EAAQC,EAAWC,EACvDvgiB,EAAWu9R,EAAOroS,IAAKuxH,EAAM,YAC7B+5a,EAAUjjQ,EAAQ92K,GAClBptB,EAAQ,GAGS,WAAbr5F,IACJymH,EAAK3uH,MAAMkI,SAAW,YAGvBsgiB,EAAYE,EAAQp7iB,SACpBg7iB,EAAY7iQ,EAAOroS,IAAKuxH,EAAM,OAC9B85a,EAAahjQ,EAAOroS,IAAKuxH,EAAM,SACI,aAAbzmH,GAAwC,UAAbA,KAC9CogiB,EAAYG,GAAavgjB,QAAS,SAAY,GAMhDqgjB,GADAH,EAAcM,EAAQxgiB,YACDrN,IACrBwtiB,EAAUD,EAAY3tiB,OAGtB8tiB,EAAS7wgB,WAAY4wgB,IAAe,EACpCD,EAAU3wgB,WAAY+wgB,IAAgB,GAGlCxre,EAAY9gE,KAGhBA,EAAUA,EAAQ3Z,KAAMmsI,EAAM7gI,EAAG23S,EAAO56S,OAAQ,GAAI29iB,KAGjC,MAAfrsiB,EAAQtB,MACZ0mG,EAAM1mG,IAAQsB,EAAQtB,IAAM2tiB,EAAU3tiB,IAAQ0tiB,GAE1B,MAAhBpsiB,EAAQ1B,OACZ8mG,EAAM9mG,KAAS0B,EAAQ1B,KAAO+tiB,EAAU/tiB,KAAS4tiB,GAG7C,UAAWlsiB,EACfA,EAAQwsiB,MAAMnmjB,KAAMmsI,EAAMptB,GAG1Bmnc,EAAQtriB,IAAKmkG,KAKhBkkM,EAAO9pR,GAAG9wB,OAAQ,CAGjByC,OAAQ,SAAU6O,GAGjB,GAAKrS,UAAUzH,OACd,YAAmB8X,IAAZgC,EACNpa,KACAA,KAAKya,MAAM,SAAU1O,GACpB23S,EAAOn4S,OAAO66iB,UAAWpmjB,KAAMoa,EAASrO,MAI3C,IAAIkP,EAAMy0H,EACT9C,EAAO5sI,KAAM,GAEd,OAAM4sI,EAQAA,EAAKupH,iBAAiB71P,QAK5B2a,EAAO2xH,EAAK3wH,wBACZyzH,EAAM9C,EAAKjM,cAAc0wE,YAClB,CACNv4L,IAAKmC,EAAKnC,IAAM42H,EAAI1mG,YACpBtwB,KAAMuC,EAAKvC,KAAOg3H,EAAIzmG,cARf,CAAEnwB,IAAK,EAAGJ,KAAM,QATxB,GAuBDyN,SAAU,WACT,GAAMnmB,KAAM,GAAZ,CAIA,IAAI02P,EAAcnrP,EAAQ4rE,EACzBy1D,EAAO5sI,KAAM,GACbwnC,EAAe,CAAE1uB,IAAK,EAAGJ,KAAM,GAGhC,GAAwC,UAAnCgrS,EAAOroS,IAAKuxH,EAAM,YAGtBrhI,EAASqhI,EAAK3wH,4BAER,CAON,IANA1Q,EAASvL,KAAKuL,SAId4rE,EAAMy1D,EAAKjM,cACX+1H,EAAe9pH,EAAK8pH,cAAgBv/K,EAAI1uC,gBAChCiuN,IACLA,IAAiBv/K,EAAI5uC,MAAQmuN,IAAiBv/K,EAAI1uC,kBACT,WAA3Ci7Q,EAAOroS,IAAKq7O,EAAc,aAE1BA,EAAeA,EAAatsO,WAExBssO,GAAgBA,IAAiB9pH,GAAkC,IAA1B8pH,EAAa17K,YAG1DxzC,EAAek8Q,EAAQhtD,GAAenrP,UACzBuN,KAAO4qS,EAAOroS,IAAKq7O,EAAc,kBAAkB,GAChElvN,EAAa9uB,MAAQgrS,EAAOroS,IAAKq7O,EAAc,mBAAmB,IAKpE,MAAO,CACN59O,IAAKvN,EAAOuN,IAAM0uB,EAAa1uB,IAAM4qS,EAAOroS,IAAKuxH,EAAM,aAAa,GACpEl0H,KAAMnN,EAAOmN,KAAO8uB,EAAa9uB,KAAOgrS,EAAOroS,IAAKuxH,EAAM,cAAc,MAc1E8pH,aAAc,WACb,OAAO12P,KAAKkG,KAAK,WAGhB,IAFA,IAAIwwP,EAAe12P,KAAK02P,aAEhBA,GAA2D,WAA3CgtD,EAAOroS,IAAKq7O,EAAc,aACjDA,EAAeA,EAAaA,aAG7B,OAAOA,GAAgBjuN,SAM1Bi7Q,EAAOjpS,KAAM,CAAEusB,WAAY,cAAeC,UAAW,gBAAiB,SAAUj+B,EAAQy9G,GACvF,IAAI3tG,EAAM,gBAAkB2tG,EAE5Bi9L,EAAO9pR,GAAI5wB,GAAW,SAAU+a,GAC/B,OAAOmthB,GAAQlxiB,MAAM,SAAU4sI,EAAM5jI,EAAQ+a,GAG5C,IAAI2rH,EAOJ,GANKz0D,EAAU2xD,GACd8C,EAAM9C,EACuB,IAAlBA,EAAK5xD,WAChB00D,EAAM9C,EAAKykE,kBAGCj5L,IAAR2L,EACJ,OAAO2rH,EAAMA,EAAKjpB,GAASmmB,EAAM5jI,GAG7B0mI,EACJA,EAAI7qF,SACF/rC,EAAY42H,EAAIzmG,YAAVllB,EACPjL,EAAMiL,EAAM2rH,EAAI1mG,aAIjB4jG,EAAM5jI,GAAW+a,IAEhB/a,EAAQ+a,EAAKhc,UAAUzH,YAU5BojT,EAAOjpS,KAAM,CAAE,MAAO,SAAU,SAAUk1G,EAAIlJ,GAC7Ci9L,EAAO23P,SAAU50b,GAASqyb,GAAcjhQ,EAAQgiQ,eAC/C,SAAUjta,EAAM+ra,GACf,GAAKA,EAIJ,OAHAA,EAAWD,GAAQ9ra,EAAMnmB,GAGlB6xb,GAAUp1gB,KAAMy1gB,GACtBj1P,EAAQ92K,GAAOzmH,WAAYsgG,GAAS,KACpCkyb,QAQLj1P,EAAOjpS,KAAM,CAAEosiB,OAAQ,SAAUC,MAAO,UAAW,SAAUt5iB,EAAMmW,GAClE+/R,EAAOjpS,KAAM,CACZ0T,QAAS,QAAU3gB,EACnBsT,QAAS6C,EACT,GAAI,QAAUnW,IACZ,SAAUu5iB,EAAcC,GAG1BtjQ,EAAO9pR,GAAIothB,GAAa,SAAU1iX,EAAQ1iM,GACzC,IAAIuviB,EAAYppiB,UAAUzH,SAAYymjB,GAAkC,mBAAXziX,GAC5D8pF,EAAQ24R,KAA6B,IAAXziX,IAA6B,IAAV1iM,EAAiB,SAAW,UAE1E,OAAOsviB,GAAQlxiB,MAAM,SAAU4sI,EAAMjpH,EAAM/hB,GAC1C,IAAIu1E,EAEJ,OAAK8D,EAAU2xD,GAGyB,IAAhCo6a,EAAS7gjB,QAAS,SACxBymI,EAAM,QAAUp/H,GAChBo/H,EAAKpqI,SAASimC,gBAAiB,SAAWj7B,GAIrB,IAAlBo/H,EAAK5xD,UACT7D,EAAMy1D,EAAKnkG,gBAIJ9iB,KAAKC,IACXgnH,EAAKrkG,KAAM,SAAW/6B,GAAQ2pE,EAAK,SAAW3pE,GAC9Co/H,EAAKrkG,KAAM,SAAW/6B,GAAQ2pE,EAAK,SAAW3pE,GAC9C2pE,EAAK,SAAW3pE,UAID4K,IAAVxW,EAGN8hT,EAAOroS,IAAKuxH,EAAMjpH,EAAMyqQ,GAGxBs1B,EAAOzlS,MAAO2uH,EAAMjpH,EAAM/hB,EAAOwsR,KAChCzqQ,EAAMwthB,EAAY7sW,OAASlsL,EAAW+4hB,UAM5CztP,EAAOjpS,KAAM,CACZ,YACA,WACA,eACA,YACA,cACA,aACE,SAAUk1G,EAAIhsG,GAChB+/R,EAAO9pR,GAAIjW,GAAS,SAAUiW,GAC7B,OAAO55B,KAAKs4B,GAAI3U,EAAMiW,OAOxB8pR,EAAO9pR,GAAG9wB,OAAQ,CAEjB2B,KAAM,SAAUkrB,EAAO9nB,EAAM+rB,GAC5B,OAAO55B,KAAKs4B,GAAI3C,EAAO,KAAM9nB,EAAM+rB,IAEpCqthB,OAAQ,SAAUtxhB,EAAOiE,GACxB,OAAO55B,KAAKq4B,IAAK1C,EAAO,KAAMiE,IAG/BsthB,SAAU,SAAU39hB,EAAUoM,EAAO9nB,EAAM+rB,GAC1C,OAAO55B,KAAKs4B,GAAI3C,EAAOpM,EAAU1b,EAAM+rB,IAExCuthB,WAAY,SAAU59hB,EAAUoM,EAAOiE,GAGtC,OAA4B,IAArB7xB,UAAUzH,OAChBN,KAAKq4B,IAAK9O,EAAU,MACpBvpB,KAAKq4B,IAAK1C,EAAOpM,GAAY,KAAMqQ,IAGrC4+Q,MAAO,SAAU4uQ,EAAQC,GACxB,OAAOrnjB,KAAKm2B,WAAYixhB,GAAShxhB,WAAYixhB,GAASD,MAIxD1jQ,EAAOjpS,KACN,wLAE4DhN,MAAO,MACnE,SAAUkiH,EAAIniH,GAGbk2S,EAAO9pR,GAAIpsB,GAAS,SAAUK,EAAM+rB,GACnC,OAAO7xB,UAAUzH,OAAS,EACzBN,KAAKs4B,GAAI9qB,EAAM,KAAMK,EAAM+rB,GAC3B55B,KAAK4J,QAAS4D,OAYlB,IAAI85iB,GAAQ,sDAMZ5jQ,EAAO6jQ,MAAQ,SAAU3thB,EAAIjf,GAC5B,IAAI+zI,EAAKloI,EAAM+giB,EAUf,GARwB,kBAAZ5siB,IACX+zI,EAAM90H,EAAIjf,GACVA,EAAUif,EACVA,EAAK80H,GAKAxzE,EAAYthD,GAalB,OARApT,EAAO/gB,EAAMhF,KAAMsH,UAAW,GAC9Bw/iB,EAAQ,WACP,OAAO3thB,EAAG5T,MAAOrL,GAAW3a,KAAMwmB,EAAKoV,OAAQn2B,EAAMhF,KAAMsH,cAI5Dw/iB,EAAMtjhB,KAAOrK,EAAGqK,KAAOrK,EAAGqK,MAAQy/Q,EAAOz/Q,OAElCsjhB,GAGR7jQ,EAAO8jQ,UAAY,SAAUC,GACvBA,EACJ/jQ,EAAOqtP,YAEPrtP,EAAO7gC,OAAO,IAGhB6gC,EAAOloO,QAAUj2E,MAAMi2E,QACvBkoO,EAAOgkQ,UAAYpsiB,KAAK+6E,MACxBqtN,EAAO7sD,SAAWA,EAClB6sD,EAAOxoO,WAAaA,EACpBwoO,EAAOzoO,SAAWA,EAClByoO,EAAOguP,UAAYA,GACnBhuP,EAAO//R,KAAOyghB,EAEd1gP,EAAO9wM,IAAMtkC,KAAKskC,IAElB8wM,EAAO3+L,UAAY,SAAUr3C,GAK5B,IAAI/pD,EAAO+/R,EAAO//R,KAAM+pD,GACxB,OAAkB,WAAT/pD,GAA8B,WAATA,KAK5B6lB,MAAOkkC,EAAM/3B,WAAY+3B,KAG5Bg2O,EAAO9iR,KAAO,SAAUj+B,GACvB,OAAe,MAARA,EACN,IACEA,EAAO,IAAK+lD,QAAS4+f,GAAO,YAmBzB,kBACL,OAAO5jQ,GADF,QAAY,OAAZ,aAQP,IAGCikQ,GAAUliiB,EAAOi+R,OAGjBvvN,GAAK1uE,EAAO/X,EAwBb,OAtBAg2S,EAAOkkQ,WAAa,SAAUrse,GAS7B,OARK91D,EAAO/X,IAAMg2S,IACjBj+R,EAAO/X,EAAIymF,IAGP5Y,GAAQ91D,EAAOi+R,SAAWA,IAC9Bj+R,EAAOi+R,OAASikQ,IAGVjkQ,GAMiB,qBAAbigP,IACXl+gB,EAAOi+R,OAASj+R,EAAO/X,EAAIg2S,GAMrBA,4BC98UP,WAMa,SAAUhsP,GAAG,IAAIwja,EAAEl7d,OAAM,EAAG6njB,MAAM,QAAQp+Z,EAAEyxU,EAAE14d,SAAS6sJ,EAAE6rU,EAAEz8V,UAAU53E,EAAEq0a,EAAEx3K,OAAO1uE,EAAEkmP,EAAE5/c,KAAKurC,GAAG,qBAAqB68P,SAAS78P,EAAE68P,QAAQ,SAAUhsP,GAA0C6iE,EAAO,CAAC,EAAU,QAAZ,+DAA1D,EAAgL,SAAS06G,EAAE6yU,GAAG,SAASC,EAAEtigB,EAAEjqC,GAAG,OAAO,OAAOiqC,UAAUA,KAAKuigB,IAAEvigB,IAAIjqC,EAAK,SAAS06S,EAAExwQ,EAAElqC,GAAG,IAAIshG,EAAE,OAAO,WAAWA,IAAIA,EAAEr3D,EAAEA,EAAE5iD,YAAW,WAAWi6G,EAAEplD,EAAEhS,MAAKlqC,KAAK,SAASysiB,EAAEvigB,EAAElqC,GAAG,IAAIshG,EAAE,OAAO,WAAW5+E,aAAa4+E,GAClhBA,EAAEr3D,EAAEA,EAAE5iD,WAAW6iD,EAAElqC,IAAI,SAAS26S,EAAE1wQ,EAAEjqC,GAAGA,GAAG,WAAWA,EAAE,iBAAiBA,EAAExb,KAAK2+f,GAAGl5c,GAAGzlD,KAAKkojB,GAAGzigB,EAAEjqC,GAAGxb,KAAKmojB,GAAG1igB,GAAG,SAAS2igB,EAAG3igB,EAAEjqC,GAAG,OAAOA,GAAGA,EAAEqR,GAAGrR,EAAEqR,IAAI,SAASw7hB,EAAG5igB,EAAEjqC,GAAG,IAAIshG,EAAE98G,KAAKsojB,GAAG9njB,EAAEs8G,EAAEv2C,GAAG/lE,EAAE+njB,KAAKvojB,KAAKwojB,IAAIxojB,KAAKyojB,GAAGjtiB,IAAIshG,EAAEqyC,GAAG3zI,EAAEiqC,EAAEzlD,KAAKyojB,GAAGjtiB,IAAIxb,KAAKyojB,GAAGjtiB,GAAG,OAAOxb,KAAKwojB,IAAIhojB,EAAEkojB,EAAEltiB,IAAIshG,EAAEqyC,GAAG3zI,EAAEiqC,EAAEjlD,EAAEmojB,EAAE,CAACliQ,GAAGhhQ,GAAGq3D,EAAE8rc,GAAGnjgB,IAAIA,EAAEojgB,IAAIpjgB,EAAEmiQ,MAAM,IAAIniQ,EAAE,qBAAqBwvL,EAAEA,EAAE,GAAGxvL,EAAEC,EAAE,SAASA,EAAElqC,GAAG,IAAI,IAAIshG,EAAEp3D,EAAEj4C,MAAM,KAAKjN,EAAEilD,EAAE8mE,EAAE,EAAEA,EAAEzP,EAAEx8G,OAAO,EAAEisH,IAAI/rH,EAAEA,EAAEs8G,EAAEyP,IAAI/rH,EAAEs8G,EAAEA,EAAEx8G,OAAO,IAAIkb,GAAGiqC,EAAE2pG,EAAE,SAAS3pG,EAAEjqC,EAAEshG,GAAGr3D,EAAEjqC,GAAGshG,GAAGr3D,EAAEqjF,QAAQ,QAAQrjF,EAAEC,EAAE,UAC5eD,EAAEqjF,SAASrjF,EAAErrC,QAAQ,CAAC0uiB,cAAa,EAAGC,qBAAoB,EAAGC,uBAAsB,GAAIvjgB,EAAEA,EAAE,WAAW,SAASC,EAAED,EAAEC,GAAG,IAAI,IAAIlqC,KAAKiqC,EAAE8mE,EAAE9rH,KAAKglD,EAAEjqC,IAAIkqC,EAAElqC,EAAEiqC,EAAEjqC,IAAI,SAASA,EAAEiqC,EAAEC,GAAG,GAAGA,EAAE,IAAI,IAAIlqC,KAAKkqC,EAAE6mE,EAAE9rH,KAAKilD,EAAElqC,KAAKiqC,EAAEjqC,GAAGkqC,EAAElqC,IAAI,OAAOiqC,EAAE,SAASq3D,EAAEr3D,EAAEC,GAAiB,OAAdD,EAAEs2F,UAAUr2F,EAASD,EAAE,SAASjlD,EAAEklD,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI0vF,EAAExqC,EAAElqC,GAAGmG,MAAMu4L,IAAI,GAAGz0J,EAAEA,EAAEwjgB,EAAEnsc,EAAEn7F,MAAMu4L,IAAG,SAASx0J,GAAGD,EAAEA,EAAEyjgB,GAAGh5d,EAAExqC,EAAEllD,MAAKklD,EAAElqC,GAAG00E,EAAEj/E,KAAK,KAAK,IAAIs7G,EAAEzlH,OAAOtB,UAAUsxE,eAAetQ,EAAE,CAACu1E,UAAU,cAAcx2I,MAAMikJ,EAAE,oBAAoBzvB,OAAOtiE,EAAE,GAAGE,EAAE,GAAGF,EAAE43F,GAAG,cAAcnsH,KAAKmsH,EAAExwB,WAC3f,gBAAgB,YAAY,CAAC,QAAQ,UAAU,YAAYpnE,EAAE0xf,YAAY,sFAAsF17iB,MAAM,KAAKi4C,EAAE+R,GAAE,SAAShS,EAAEC,GAAG,GAAGA,EAAEplD,OAAO,IAAI,IAAIkb,EAAE,EAAEshG,EAAEp3D,EAAEplD,OAAOkb,EAAEshG,EAAEthG,IAAIm8C,EAAEjS,EAAElqC,IAAIiqC,KAAI,IAA+MyQ,EAA3Mg6B,EAAE,CAACk5d,gBAAe,GAAIhyd,EAAEqyD,GAAG,WAAW,IAAI,IAAIhkG,EAAE,EAAEC,EAAE+jG,EAAErmH,cAAc,OAAO5nB,EAAEkqC,EAAEpjB,qBAAqB,KAAKojB,EAAE6a,UAAU,uBAAuB9a,EAAE,2BAA2BjqC,EAAE,KAAK,OAAO,EAAEiqC,EAAEA,EAAEiS,EAAlK,GAAuKwiJ,EAAE,OAAS,MAAM,CAACmvW,GAAG,CAAC,qBAAqB,sCACpeJ,EAAE,SAASxjgB,EAAEC,EAAElqC,GAAG,IAAI,IAAIshG,EAAE,EAAEt8G,EAAEilD,EAAEnlD,OAAOw8G,EAAEt8G,EAAEs8G,IAAIp3D,EAAEjlD,KAAK+a,EAAEiqC,EAAEq3D,GAAGA,EAAEr3D,IAAIy1a,EAAE,mBAAmB31d,MAAMC,UAAUW,QAAQ,SAASs/C,EAAEC,GAAG,OAAOngD,MAAMC,UAAUW,QAAQ1F,KAAKglD,EAAEC,IAAI,SAASD,EAAEC,GAAG,IAAI,IAAIlqC,EAAE,EAAEshG,EAAEr3D,EAAEnlD,OAAOkb,EAAEshG,EAAEthG,IAAI,GAAGiqC,EAAEjqC,KAAKkqC,EAAE,OAAOlqC,EAAE,OAAO,GAAG8tiB,GAAG,SAAS7jgB,EAAEC,EAAElqC,GAAG,IAAI,IAAIshG,EAAE,EAAEt8G,EAAEilD,EAAEnlD,OAAOw8G,EAAEt8G,EAAEs8G,IAAI,GAAGp3D,EAAEjlD,KAAK+a,EAAEiqC,EAAEq3D,GAAGA,EAAEr3D,GAAG,OAAOA,EAAEq3D,GAAG,OAAOplD,GAAG6xf,GAAG,SAAS7jgB,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAEy1a,EAAEx1a,EAAElqC,GAAG,EAAEshG,EAAEp3D,EAAEn2C,OAAOutG,EAAE,GAAG,IAAIA,GAAGp3D,EAAEsgB,SAASwjf,GAAG,SAAS9jgB,GAAG,IAAIlqC,EAAE,GAAoD,OAAjDkqC,GAAGD,EAAEA,EAAEwjgB,EAAEvjgB,GAAE,SAASA,GAAG,EAAED,EAAEA,EAAEy1a,EAAE1/c,EAAEkqC,IAAIlqC,EAAE5a,KAAK8kD,MAAYlqC,GAAGiuiB,GAAG,SAAShkgB,EACzfC,EAAElqC,GAAG,IAAIshG,EAAE,GAAG,GAAGr3D,EAAE,IAAI,IAAIjlD,EAAE,EAAE0vF,EAAEzqC,EAAEnlD,OAAOE,EAAE0vF,EAAE1vF,IAAIs8G,EAAEl8G,KAAK8kD,EAAEjlD,KAAK+a,EAAEiqC,EAAEjlD,GAAGA,IAAI,OAAOs8G,GAAG4sc,GAAG,SAASjkgB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE,GAAG,GAAGr3D,EAAE,IAAI,IAAIjlD,EAAE,EAAE0vF,EAAEzqC,EAAEnlD,OAAOE,EAAE0vF,EAAE1vF,IAAIklD,EAAEjlD,KAAK+a,EAAEiqC,EAAEjlD,GAAGA,IAAIs8G,EAAEl8G,KAAK6kD,EAAEjlD,IAAI,OAAOs8G,GAAG6sc,GAAG,SAASlkgB,EAAEC,GAAG,GAAGA,aAAangD,MAAMkgD,EAAE7kD,KAAKolB,MAAMy/B,EAAEC,QAAQ,IAAI,IAAIlqC,EAAE,EAAEshG,EAAEp3D,EAAEplD,OAAOkb,EAAEshG,EAAEthG,IAAIiqC,EAAE7kD,KAAK8kD,EAAElqC,IAAI,OAAOiqC,GAAGyjgB,GAAG,SAASxjgB,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAEA,EAAEy1a,EAAEz1a,EAAEA,EAAEmkgB,GAAGlkgB,GAAGlqC,GAAG,EAAEhb,EAAEs8G,GAAGp3D,EAAE9kD,KAAK4a,GAAGshG,GAAGp3D,EAAEn2C,OAAO/O,EAAE,IAAIqpjB,GAAGrjf,EAAE19D,OAAO0S,EAAEsgI,eAAeh/B,EAAEgtc,GAAGtjf,EAAEs2C,EAAEthG,EAAEyiC,EAAEyH,EAAEqkgB,GAAG,SAAStkgB,EAAEC,EAAElqC,GAAG,IAAIiqC,EAAE,OAAOA,EAAE,IAASjlD,EAALs8G,EAAE,GAAK,IAAIt8G,KAAKilD,EAAE8mE,EAAE9rH,KAAKglD,EAAEjlD,KAAKs8G,EAAEt8G,GACrfklD,EAAEjlD,KAAK+a,EAAEiqC,EAAEjlD,GAAGA,EAAEilD,IAAI,OAAOq3D,GAAGktc,GAAG,SAAStkgB,GAAG,KAAKA,EAAEq9D,YAAYt9D,EAAEu9B,WAAWt9B,EAAEq9D,aAAaknc,GAAG,SAASvkgB,GAAe,IAAI,IAAIlqC,IAApBkqC,EAAED,EAAEA,EAAEykgB,GAAGxkgB,IAAgB,IAAIA,EAAE,GAAGi7E,eAAe8oB,GAAGrmH,cAAc,OAAO05E,EAAE,EAAEt8G,EAAEklD,EAAEplD,OAAOw8G,EAAEt8G,EAAEs8G,IAAIthG,EAAEg8D,YAAY/xB,EAAE0kgB,GAAGzkgB,EAAEo3D,KAAK,OAAOthG,GAAG4uiB,GAAG,SAAS1kgB,EAAElqC,GAAG,IAAI,IAAIshG,EAAE,EAAEt8G,EAAEklD,EAAEplD,OAAO4vF,EAAE,GAAG4sB,EAAEt8G,EAAEs8G,IAAI,CAAC,IAAInlD,EAAEjS,EAAEo3D,GAAG4pF,WAAU,GAAIx2G,EAAEtvF,KAAK4a,EAAEiqC,EAAE0kgB,GAAGxyf,GAAGA,GAAG,OAAOu4B,GAAGm6d,GAAG,SAAS3kgB,EAAElqC,GAAa,GAAViqC,EAAEA,EAAEukgB,GAAGtkgB,GAAMlqC,EAAE,IAAI,IAAIshG,EAAE,EAAEt8G,EAAEgb,EAAElb,OAAOw8G,EAAEt8G,EAAEs8G,IAAIp3D,EAAE8xB,YAAYh8D,EAAEshG,KAAKwtc,GAAG,SAAS5kgB,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEs1B,SAAS,CAACt1B,GAAGA,EAAE,GAAG,EAAEo3D,EAAEx8G,OAAO,CAAC,IAAI,IAAIE,EAAEs8G,EAAE,GACnf5sB,EAAE1vF,EAAE4pB,WAAWutC,EAAE,EAAE40D,EAAE/wG,EAAElb,OAAOq3D,EAAE40D,EAAE50D,IAAIu4B,EAAE0xC,aAAapmH,EAAEm8C,GAAGn3D,GAAO,IAAJm3D,EAAE,EAAM40D,EAAEzP,EAAEx8G,OAAOq3D,EAAE40D,EAAE50D,IAAIlS,EAAEu9B,WAAW85B,EAAEnlD,MAAM4yf,GAAG,SAAS9kgB,EAAEC,GAAG,GAAGD,EAAEnlD,OAAO,CAAC,IAAIolD,EAAE,IAAIA,EAAEs1B,UAAUt1B,EAAEt7B,YAAYs7B,EAAED,EAAEnlD,QAAQmlD,EAAE,GAAGr7B,aAAas7B,GAAGD,EAAEl2C,OAAO,EAAE,GAAG,KAAK,EAAEk2C,EAAEnlD,QAAQmlD,EAAEA,EAAEnlD,OAAO,GAAG8pB,aAAas7B,GAAGD,EAAEnlD,SAAS,GAAG,EAAEmlD,EAAEnlD,OAAO,CAAC,IAAIkb,EAAEiqC,EAAE,GAAGq3D,EAAEr3D,EAAEA,EAAEnlD,OAAO,GAAG,IAAImlD,EAAEnlD,OAAO,EAAEkb,IAAIshG,GAAGr3D,EAAE7kD,KAAK4a,GAAGA,EAAEA,EAAEknG,YAAYj9D,EAAE7kD,KAAKk8G,IAAI,OAAOr3D,GAAG+kgB,GAAG,SAAS/kgB,EAAEC,GAAG,EAAE0xC,EAAE3xC,EAAE3kD,aAAa,WAAW4kD,GAAGD,EAAEx4B,SAASy4B,GAAG+kgB,GAAG,SAAShlgB,GAAG,OAAO,OAAOA,GAAGA,IAAIiS,EAAE,GAAGjS,EAAE7kB,KAClf6kB,EAAE7kB,OAAO6kB,EAAEh3C,WAAWi6C,QAAQ,yBAAyB,KAAKgigB,GAAG,SAASjlgB,EAAEC,GAAW,OAARD,EAAEA,GAAG,KAAUC,EAAEplD,OAAOmlD,EAAEnlD,SAAUmlD,EAAEzZ,UAAU,EAAE0Z,EAAEplD,UAAUolD,GAAGilgB,GAAG,SAASllgB,EAAEC,GAAG,GAAGD,IAAIC,EAAE,OAAM,EAAG,GAAG,KAAKD,EAAEu1B,SAAS,OAAM,EAAG,GAAGt1B,EAAE3mC,SAAS,OAAO2mC,EAAE3mC,SAAS,IAAI0mC,EAAEu1B,SAASv1B,EAAEr7B,WAAWq7B,GAAG,GAAGC,EAAE+/O,wBAAwB,OAAO,KAAkC,GAA7B//O,EAAE+/O,wBAAwBhgP,IAAO,KAAKA,GAAGA,GAAGC,GAAGD,EAAEA,EAAEr7B,WAAW,QAAQq7B,GAAGmlgB,GAAG,SAASllgB,GAAG,OAAOD,EAAEA,EAAEklgB,GAAGjlgB,EAAEA,EAAEi7E,cAAcl4F,kBAAkBoihB,GAAG,SAASnlgB,GAAG,QAAQD,EAAEA,EAAE6jgB,GAAG5jgB,EAAED,EAAEA,EAAEmlgB,KAAKv7Z,EAAE,SAAS5pG,GAAG,OAAOA,GAC7fA,EAAE88J,SAAS98J,EAAE88J,QAAQt/K,eAAe6nhB,GAAG,SAASplgB,GAAG,OAAOD,EAAEslgB,QAAQ,WAAW,IAAI,OAAOrlgB,EAAE1/B,MAAMhmB,KAAK+H,WAAW,MAAMyT,GAAG,MAAMiqC,EAAEslgB,SAAStlgB,EAAEslgB,QAAQvviB,GAAGA,IAAKkqC,GAAG7iD,WAAU,iHAAC,SAAS6iD,EAAElqC,GAAG,OAAO3Y,WAAW4iD,EAAEA,EAAEqlgB,GAAGplgB,GAAGlqC,MAAIwviB,GAAG,SAAStlgB,GAAG7iD,YAAW,WAAmC,MAAxB4iD,EAAEslgB,SAAStlgB,EAAEslgB,QAAQrlgB,GAASA,IAAI,IAAIgqG,EAAE,SAAShqG,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAEA,EAAEqlgB,GAAGhuc,GAAU,GAAPA,EAAE5sB,EAAE10E,GAAMiqC,EAAErrC,QAAQ2uiB,qBAAqBjsc,IAAIj2D,EAAE,GAAGi2D,GAAG,mBAAmBp3D,EAAEhlD,iBAA3B,CAA4C,GAAG,oBAAoBglD,EAAEyyX,YACxY,MAAM9iY,MAAM,2DADyY,IAAIsiB,EAAE,SAASlS,GAAGjlD,EAAEC,KAAKilD,EAAED,IAAI8mE,EAAE,KAAK/wG,EAAEkqC,EAAEyyX,YAAY5rT,EAC9f50D,GAAGlS,EAAEA,EAAEsigB,EAAEkD,GAAGvlgB,GAAE,WAAWA,EAAEizX,YAAYpsT,EAAE50D,WAAsFjS,EAAEhlD,iBAAiB8a,EAAEhb,GAAE,QAAS01D,IAAIA,EAAE,mBAAmBrP,EAAEnB,GAAGptB,GAAG,KAAK,QAAQuuB,EAAEnB,GAAGwQ,GAAG16C,EAAEhb,IAAI0qjB,GAAG,SAASxlgB,EAAElqC,GAAG,IAAIkqC,IAAIA,EAAEs1B,SAAS,MAAM3lC,MAAM,wDAAwD,IAAIynE,EAAmG,GAAlCA,IAA/D,UAAUr3D,EAAEA,EAAE4pG,EAAE3pG,KAAIA,EAAE/hC,MAAM,SAASnI,EAAEynB,iBAA0B,aAAX65E,EAAEp3D,EAAE/hC,OAAsB,SAASm5F,GAAWr3D,EAAErrC,QAAQ2uiB,sBAAsBligB,GAAGi2D,EAAE,GAAG,mBAAmB2sC,EAAE+kJ,YAAxB,CAAoC,GAAG,mBAClf9oP,EAAEjjB,cAA2H,MAAM4S,MAAM,uDAAzHynE,EAAE2sC,EAAE+kJ,YAAY72O,EAAEn8C,IAAI,eAAgByrR,UAAUzrR,GAAE,GAAG,EAAG0/c,EAAE,EAAE,EAAE,EAAE,EAAE,GAAE,GAAG,GAAG,GAAG,EAAG,EAAEx1a,GAAGA,EAAEjjB,cAAcq6E,QAA+E,GAAGA,GAAGp3D,EAAEr0B,MAAMq0B,EAAEr0B,YAAa,IAAG,oBAAoBq0B,EAAE25L,UAAmC,MAAMhqM,MAAM,6CAArCqQ,EAAE25L,UAAU,KAAK7jO,QAAsEqrC,EAAEnB,GAAG97C,QAAQ4R,IAAI+wG,EAAE,SAAS7mE,GAAG,OAAOD,EAAE0iE,EAAEziE,GAAGA,IAAIA,GAAGkkgB,GAAG,SAASlkgB,GAAG,OAAOD,EAAE0iE,EAAEziE,GAAGA,EAAEmB,IAAInB,GAAGylgB,GAAG,SAASzlgB,EAAElqC,EAAEshG,GAAG,IAAI5sB,EAAE10E,IAAI,kBAAkBkqC,EAAErkD,WAC5e6uF,EAAExqC,EAAErkD,UAAUy7G,EAAE,MAAM,UAAUr3D,EAAEA,EAAEwjgB,EAAEztiB,EAAEmG,MAAMu4L,IAAG,SAASz0J,GAAGyqC,EAAEzvF,KAAKilD,EAAErkD,UAAUokD,OAAM,kBAAkBC,EAAEr3C,UAAU+8iB,QAAQ5qjB,EAAEklD,EAAEr3C,UAAU,UAAUmN,EAAEshG,GAAGt8G,EAAEklD,EAAE,YAAYlqC,EAAEshG,KAAKuuc,GAAG,SAAS3lgB,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,GAAM,OAAOshG,GAAGA,IAAIplD,IAAEolD,EAAE,IAAG,IAAIt8G,EAAEilD,EAAE+jG,EAAEzmC,WAAWr9D,IAAIllD,GAAG,GAAGA,EAAEw6E,UAAUv1B,EAAE+jG,EAAE9mC,YAAYliH,GAAGilD,EAAE+jG,EAAE6ga,GAAG3kgB,EAAE,CAACA,EAAEi7E,cAAche,eAAe7F,KAAKt8G,EAAEqN,KAAKivG,EAAEr3D,EAAEA,EAAE6lgB,GAAG5lgB,IAAI6lgB,GAAG,SAAS9lgB,EAAEC,GAAY,GAATD,EAAEj4C,KAAKk4C,EAAK,GAAG0xC,EAAE,IAAI,IAAI57E,EAAEiqC,EAAEj4C,KAAKk7C,QAAQ,YAAW,SAASjD,GAAG,MAAM,KAAKA,EAAE2L,WAAW,GAAG,OAAM3L,EAAE+lgB,gBAAgB/ha,EAAErmH,cAAc,gBAC9f5nB,EAAE,QAAO,GAAI,MAAMshG,MAAMwuc,GAAG,SAAS7lgB,GAAG,GAAG2xC,IAAI3xC,EAAE,GAAGA,EAAEu1B,SAASv1B,EAAEA,EAAEr7B,YAAanM,QAAQwnC,EAAExnC,MAAMsP,KAAKk4B,EAAExnC,MAAMsP,OAAQk+hB,GAAG,SAAShmgB,GAAG,GAAG2xC,EAAE,CAAC,IAAI1xC,EAAED,EAAExnC,MAAM3M,MAAMm0C,EAAExnC,MAAM3M,MAAM,EAAEm0C,EAAExnC,MAAM3M,MAAMo0C,IAAIgmgB,GAAG,SAAShmgB,EAAElqC,GAAGkqC,EAAED,EAAEA,EAAE8mE,EAAE7mE,GAAGlqC,EAAEiqC,EAAEA,EAAE8mE,EAAE/wG,GAAG,IAAI,IAAIshG,EAAE,GAAGt8G,EAAEklD,EAAEllD,GAAGgb,EAAEhb,IAAIs8G,EAAEl8G,KAAKJ,GAAG,OAAOs8G,GAAGotc,GAAG,SAASzkgB,GAAG,IAAI,IAAIC,EAAE,GAAGlqC,EAAE,EAAEshG,EAAEr3D,EAAEnlD,OAAOkb,EAAEshG,EAAEthG,IAAIkqC,EAAE9kD,KAAK6kD,EAAEjqC,IAAI,OAAOkqC,GAAGimgB,GAAG,SAASlmgB,GAAG,OAAO+jG,EAAEzvB,OAAOt0E,GAAGA,GAAGmmgB,GAAG,IAAIx0d,EAAEy0d,GAAG,IAAIz0d,EAAE4wd,EAAE5wd,EAAE00d,GAAG,SAASpmgB,EAAElqC,GAAG,IAAI,IAAIshG,EAAEr3D,EAAEA,EAAEykgB,GAAGxkgB,EAAEpjB,qBAAqB,UAAU1G,OAAO6pB,EAAEA,EAAEykgB,GAAGxkgB,EAAEpjB,qBAAqB,cAClgB9hC,EAAE,iBAAiBgb,EAAE,SAASiqC,GAAG,OAAOA,EAAEj4C,OAAOgO,GAAG,SAASiqC,GAAG,OAAOjqC,EAAE0nB,KAAKuiB,EAAEj4C,OAAO0iF,EAAE,GAAGv4B,EAAEmlD,EAAEx8G,OAAO,EAAE,GAAGq3D,EAAEA,IAAIn3D,EAAEs8G,EAAEnlD,KAAKu4B,EAAEtvF,KAAKk8G,EAAEnlD,IAAI,OAAOu4B,GAAG67d,GAAG,SAASrmgB,GAAG,MAAM,iBAAiBA,IAAIA,EAAED,EAAEA,EAAEglgB,GAAG/kgB,IAAIsvL,GAAGA,EAAE3+I,MAAM2+I,EAAE3+I,MAAM3wC,GAAI,IAAIsmgB,SAAS,UAAUtmgB,EAAvB,GAA6B,MAAMumgB,GAAG,SAASvmgB,EAAElqC,EAAEshG,GAAG,IAAIk4H,IAAIA,EAAEz5N,UAAU,MAAM85B,MAAM,4MACtT,OAAO2/L,EAAEz5N,UAAUkqC,EAAEA,EAAE8mE,EAAE7mE,GAAGlqC,EAAEshG,IAAIovc,GAAG,SAAS1wiB,EAAEshG,EAAEt8G,GAAW,IAAI0vF,GAAZ1vF,EAAEA,GAAG,IAAWuhC,QAAQ,GAAG41B,EAAEn3D,EAAE2rjB,eAAensjB,KAAKqpjB,GAAG98b,EAAE/wG,EAAE,GAAG,iBAAiBA,GAAG,SAASiqC,EAAEA,EAAE4pG,EAAE7zI,GAAO,CAAI+wG,EAAE/wG,EAAEiF,OAAZ,IAAI,IAAe+oI,EAAE7xF,EAAEr3D,OAAO,EAAE,GAAGkpJ,EAAEA,IAAI,IAAI,IAAIhjF,EAAE/gB,EAAEA,EAAEqmgB,GAAGtwiB,EAAEm8C,EAAE6xF,IAAI/xF,EAAE+O,EAAElmE,OAAO,EAAE,GAAGm3D,EAAEA,IAAIy4B,EAAE1pB,EAAE/O,GAAGjqD,MAAMg5D,EAAE/O,GAAG71D,MAAMk7G,EAAEr3D,EAAEA,EAAE8mE,EAAEzP,GAAG,IAAI1lB,EAAEqyD,EAAErmH,cAAc,QAA0D,IAAI,IAAI82K,KAA1D9iH,EAAEn5E,MAAMoB,QAAQ,OAAO+3E,EAAE32E,OAAO8rG,EAAEn1B,EAAEpuF,OAAO,OAAoB8zG,GAAEthG,EAAEiuI,EAAErmH,cAAc,UAAWzf,KAAK,SAASnI,EAAEhO,KAAK0sM,EAAE1+L,EAAE5Z,MAAM6jD,EAAEA,EAAEwmgB,GAAGxmgB,EAAEA,EAAE8mE,EAAEzP,EAAEo9F,KAAK9iH,EAAE5f,YAAYh8D,GAAGkqC,EAAEwqC,GAAE,SAASzqC,EAAEC,GAAG,IAAIlqC,EAAEiuI,EAAErmH,cAAc,SAC3f5nB,EAAEmI,KAAK,SAASnI,EAAEhO,KAAKi4C,EAAEjqC,EAAE5Z,MAAM8jD,EAAE0xC,EAAE5f,YAAYh8D,MAAKiuI,EAAElhH,KAAKivC,YAAY4f,GAAG52F,EAAE4rjB,UAAU5rjB,EAAE4rjB,UAAUh1d,GAAGA,EAAE+zc,SAAStoiB,YAAW,WAAWu0F,EAAEhtE,WAAW+iC,YAAYiqC,KAAI,KAd1E,GAckF3xC,EAAEC,EAAE,QAAQD,EAAEA,GAAGA,EAAEC,EAAE,qBAAqBD,EAAEA,EAAEwjgB,GAAGxjgB,EAAEC,EAAE,mBAAmBD,EAAEA,EAAE6jgB,IAAI7jgB,EAAEC,EAAE,oBAAoBD,EAAEA,EAAEikgB,IAAIjkgB,EAAEC,EAAE,+BAA+BD,EAAEA,EAAE+jgB,IAAI/jgB,EAAEC,EAAE,qBAAqBD,EAAEA,EAAEy1a,GAAGz1a,EAAEC,EAAE,iBAAiBD,EAAEA,EAAEgkgB,IAAIhkgB,EAAEC,EAAE,qBAAqBD,EAAEA,EAAEkkgB,IAAIlkgB,EAAEC,EAAE,wBAAwBD,EAAEA,EAAE8jgB,IAAI9jgB,EAAEC,EAAE,mBAAmBD,EAAEA,EAAE2kgB,IAAI3kgB,EAAEC,EAAE,6BAC7eD,EAAEA,EAAEkmgB,IAAIlmgB,EAAEC,EAAE,eAAeD,EAAEA,EAAE38C,QAAQ28C,EAAEC,EAAE,mCAAmCD,EAAEA,EAAE4jgB,IAAI5jgB,EAAEC,EAAE,sBAAsBD,EAAEA,EAAEqmgB,IAAIrmgB,EAAEC,EAAE,kBAAkBD,EAAEA,EAAEskgB,IAAItkgB,EAAEC,EAAE,uBAAuBD,EAAEA,EAAEmkgB,IAAInkgB,EAAEC,EAAE,iBAAiBD,EAAEA,EAAEymgB,IAAIzmgB,EAAEC,EAAE,kBAAkBD,EAAEA,EAAEsmgB,IAAItmgB,EAAEC,EAAE,6BAA6BD,EAAEA,EAAEiqG,GAAGjqG,EAAEC,EAAE,sBAAsBD,EAAEA,EAAEwmgB,IAAIxmgB,EAAEC,EAAE,cAAcD,EAAEA,EAAEimgB,IAAIjmgB,EAAEC,EAAE,8BAA8BD,EAAEA,EAAE0lgB,IAAI1lgB,EAAEC,EAAE,qBAAqBD,EAAEA,EAAEylgB,IAAIzlgB,EAAEC,EAAE,yBAAyBD,EAAEA,EAAE8mE,GAAG9mE,EAAEC,EAAE,sBAAsBD,EAAEA,EAAExH,GAAGwH,EAAEC,EAAE,wBAC5eD,EAAEA,EAAEyjgB,IAAIzjgB,EAAEC,EAAE,uBAAuBD,EAAEA,EAAE4lgB,IAAI5lgB,EAAEC,EAAE,SAASD,EAAEA,EAAE8mE,GAAGy/b,SAASxmjB,UAAUiF,OAAOuhjB,SAASxmjB,UAAUiF,KAAK,SAASg7C,GAAG,IAAIjqC,EAAExb,KAAK,GAAG,IAAI+H,UAAUzH,OAAO,OAAO,WAAW,OAAOkb,EAAEwK,MAAMy/B,EAAE19C,YAAY,IAAI+0G,EAAEv3G,MAAMC,UAAUC,MAAMhF,KAAKsH,UAAU,GAAG,OAAO,WAAW,IAAIvH,EAAEs8G,EAAEr3G,MAAM,GAA6B,OAA1BjF,EAAEI,KAAKolB,MAAMxlB,EAAEuH,WAAkByT,EAAEwK,MAAMy/B,EAAEjlD,MAAMilD,EAAEA,EAAE+gB,EAAE,IAAI,WAAW,IAA6ChmE,EAAE+rH,EAA3C7mE,EAAE,EAAElqC,EAAE,UAAU,IAAI8yD,MAAM21L,UAAUnnJ,EAAE,GACrN,OAD4Nr3D,EAAEA,EAAEuigB,GAAGxnjB,EAAE,SAASilD,EAAEjlD,GAAG,IAAI+rH,EAAE9mE,EAAEjqC,GAAG,IAAI+wG,GAAG,SAASA,IAAIzP,EAAEyP,GAAG,CAAC,IAAI/rH,EAAE,OAAOk3D,EAAE60D,EAAE9mE,EAAEjqC,GAAG,KAAKkqC,IAAIo3D,EAAEyP,GACpf,GAAG,OAAOzP,EAAEyP,IAAIA,EAAE,SAAS9mE,GAAG,IAAIC,EAAED,EAAEjqC,GAAG,QAAOkqC,WAAUo3D,EAAEp3D,GAAGD,EAAEjqC,GAAG,MAAK,MAAUhb,EAAE,SAASilD,EAAEC,GAAG,IAAIo3D,EAAEr3D,EAAEjqC,GAAsB,OAAlBshG,GAAGp3D,IAAIo3D,EAAEr3D,EAAEjqC,GAAG,IAAWshG,GAAGyP,EAAE,SAAS9mE,GAAG,QAAOA,EAAEjqC,YAAWiqC,EAAEjqC,IAAG,KAAe,CAACqE,IAAI,SAAS4lC,EAAEC,GAAG,IAAIlqC,EAAEhb,EAAEilD,GAAE,GAAI,OAAOjqC,GAAGA,EAAEkqC,IAAIsf,IAAI,SAASvf,EAAEC,EAAElqC,IAAIiqC,EAAEjlD,EAAEilD,EAAEjqC,IAAIk8C,MAAMjS,EAAEC,GAAGlqC,IAAI6wiB,GAAG,SAAS5mgB,EAAEC,EAAElqC,GAAa,OAAViqC,EAAEjlD,EAAEilD,GAAE,IAAaC,KAAKD,EAAEC,GAAGlqC,IAAIyiG,MAAMsO,EAAE4pM,EAAE,WAAW,OAAOzwQ,IAAKlqC,KAAKiqC,EAAEC,EAAE,gBAAgBD,EAAEA,EAAE+gB,GAAG/gB,EAAEC,EAAE,sBAAsBD,EAAEA,EAAE+gB,EAAEy3C,OAAOx4D,EAAEA,EAAEsigB,EAAE,IAAI,WAAW,SAASrigB,EAAEA,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAEllD,GACjd,OAAlCs8G,IAAIplD,GAAGl8C,IAAIshG,EAAE,GAAGr3D,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAEllD,EAAEs8G,IAAWA,EAAE,SAASthG,EAAEA,GAAiB,GAAVhb,EAAEklD,EAAElqC,GAAE,GAAS,IAAI,IAAIhb,EAAEA,EAAEiF,MAAM,GAAGkyD,EAAE,EAAEA,EAAEn3D,EAAEF,OAAOq3D,IAAIn3D,EAAEm3D,GAAGn8C,GAAGiqC,EAAEA,EAAE+gB,EAAEy3C,MAAMziG,GAAGiqC,EAAEA,EAAEsigB,EAAEuE,kBAAkB9wiB,GAAGgrD,EAAEhrD,EAAEw/D,WAAW8hC,EAAEthG,EAAEonG,YAAW,GAAI,SAAS9F,EAAEp3D,EAAEo3D,GAAG,IAAI,IAAS5sB,EAAL1vF,EAAE,GAAK+rH,EAAE,EAAEA,EAAE7mE,EAAEplD,OAAOisH,IAAI,KAAIzP,GAAG,IAAIp3D,EAAE6mE,GAAGvxC,YAAYx/D,EAAEhb,EAAEA,EAAEF,QAAQ4vF,EAAExqC,EAAE6mE,IAAI7mE,EAAE6mE,KAAKr8B,GAAE,KAAKq8B,MAAM,GAAG9mE,EAAEA,EAAEy1a,EAAE16d,EAAEklD,EAAE6mE,OAAO,IAAI/rH,EAAEilD,EAAEA,EAAE+gB,EAAE2vP,IAAI5pM,EAAE,CAAC,GAAE,EAAG,GAAE,EAAG,GAAE,GAAI/lD,EAAE,CAAC,GAAE,EAAG,GAAE,GAAI,MAAM,CAACykf,GAAG,SAASxlgB,EAAEjqC,GAAG,GAAG,mBAAmBA,EAAE,MAAM65B,MAAM,+BAA+BqQ,EAAED,GAAE,GAAI7kD,KAAK4a,IAAI+wiB,GAAG,SAAS/wiB,EAC7fshG,GAAG,IAAIyP,EAAE7mE,EAAElqC,GAAE,GAAI+wG,IAAI9mE,EAAEA,EAAE8jgB,GAAGh9b,EAAEzP,GAAG,GAAGyP,EAAEjsH,QAAQmlD,EAAEA,EAAE+gB,EAAExB,IAAIxpD,EAAEhb,EAAEk3D,KAAKyyf,GAAG,SAASzkgB,GAA0F,OAAvFD,EAAE+oJ,EAAEg+W,GAAE,WAAWjgc,EAAE7mE,EAAEs1B,YAAYx/D,EAAEkqC,GAAG8gB,EAAE9gB,EAAEs1B,WAAW8hC,EAAEp3D,EAAEpjB,qBAAqB,UAAgBojB,GAAGs9B,WAAW,SAASt9B,GAAGD,EAAE0kgB,GAAGzkgB,GAAGA,EAAEt7B,YAAYs7B,EAAEt7B,WAAW+iC,YAAYzH,IAAI4mgB,kBAAkB,SAAS7mgB,GAAGoB,GAAG,mBAAmBA,EAAE0mM,WAAW1mM,EAAE0mM,UAAU,CAAC9nM,OAAOA,EAAE0kgB,GAAG1kgB,EAAEA,EAAEsigB,EAAEoC,GAAG1kgB,EAAEu9B,WAAWv9B,EAAEA,EAAEsigB,EAAE/ke,WAAWv9B,EAAEC,EAAE,YAAYD,EAAE0kgB,IAAI1kgB,EAAEC,EAAE,aAAaD,EAAEu9B,YAAYv9B,EAAEC,EAAE,wBAAwBD,EAAEA,EAAEsigB,GAAGtigB,EAAEC,EAAE,2CACxdD,EAAEA,EAAEsigB,EAAEkD,IAAIxlgB,EAAEC,EAAE,8CAA8CD,EAAEA,EAAEsigB,EAAEwE,IAAI,WAAY,IAAI7mgB,EAAE,CAAC,EAAE,GAAG,IAAIlqC,EAAE,CAAC,EAAE,UAAU,YAAYshG,EAAE,CAAC,EAAE,qBAAqB,yBAAyBt8G,EAAE,CAAC,EAAE,+BAA+B,aAAa+rH,EAAE,CAACmlJ,MAAMl2P,EAAEq2P,MAAMr2P,EAAEu2P,MAAMv2P,EAAEo2P,GAAG,CAAC,EAAE,iBAAiB,oBAAoBD,GAAG70J,EAAEk1J,GAAGl1J,EAAEj4F,OAAOrkB,EAAE2ziB,SAAS3ziB,GAAGgmE,EAAE,GAAG/gB,EAAEA,EAAEuigB,EAAEvigB,EAAEA,EAAEm5E,GAAG,SAASpjH,EAAEshG,GAAG,IAAIt8G,EAAE,GAAGqmD,GAAE,GAAGA,EAAEyuM,UAAU90P,EAAEqmD,EAAEyuM,UAAU95O,EAAEshG,IAAI,QAAQ,IAAIt8G,EAAEqmD,EAAE2sa,MAAM,CAACh4c,GAAGshG,KAAKt8G,EAAE,GAAG,CAAC,IAAI,IAAI0vF,EAAE1vF,EAAE,GAAG0vF,EAAE9lE,YAAY,KAAK8lE,EAAE9lE,WAAW4wD,UAAUkV,EAAEA,EAAE9lE,WACtf8lE,EAAE9lE,YAAY8lE,EAAE9lE,WAAW+iC,YAAY+iC,QAAQ,EAAE1vF,EAAEs8G,KAAKt8G,EAAEipJ,GAAOv5D,EAAE1vF,EAAEqgjB,cAAcrgjB,EAAE6wM,aAAa6pR,EAArC,IAA0Fhla,EAAnDkhC,EAAE3xC,EAAEA,EAAEglgB,GAAGjviB,GAAGynB,cAAci3K,EAAE15M,EAAE4iC,cAAc,OAAkQ,IAAzP8yB,GAAGkhC,EAAEA,EAAEz1E,MAAM,+CAA+C4qG,EAAEn1B,EAAE,KAAK1xC,EAAE0xC,EAAElhC,EAAE,GAAGA,EAAE,eAAeA,EAAE,GAAG16C,EAAE06C,EAAE,GAAG,SAAS,mBAAmBg6B,EAAEu8d,UAAUvyW,EAAE1iI,YAAY0Y,EAAEu8d,UAAUv2f,KAAKsQ,GAAGhmE,EAAE+nC,KAAKivC,YAAY0iI,GAAGA,EAAE35I,UAAUrK,EAAEsQ,GAAG0zI,EAAE9vL,WAAW+iC,YAAY+sJ,IAAS9iH,KAAK8iH,EAAEA,EAAE1W,UAAUhjM,EAAEilD,EAAEA,EAAEykgB,GAAGhwW,EAAE1W,UAAU5gF,YAAY,OAAOpiH,GAAGilD,EAAEA,EAAEingB,GAAG,SAAShngB,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAEm5E,GAAGl5E,EACvflqC,GAAG,OAAOshG,EAAEx8G,QAAQw8G,EAAE,GAAG70E,eAAewd,EAAEA,EAAEwkgB,GAAGntc,IAAIr3D,EAAEA,EAAEkngB,GAAG,SAASjngB,EAAElqC,GAAwB,GAArBiqC,EAAEA,EAAEukgB,GAAGtkgB,GAAiB,QAAdlqC,EAAEiqC,EAAEA,EAAE8mE,EAAE/wG,KAAgBA,IAAIk8C,EAAE,GAAG,iBAAiBl8C,IAAIA,EAAEA,EAAE/M,YAAYo4C,EAAEA,EAAEnB,GAAG8B,KAAKhsC,QAAQ,IAAI,IAAIshG,EAAEr3D,EAAEA,EAAEm5E,GAAGpjH,EAAEkqC,EAAEi7E,eAAengI,EAAE,EAAEA,EAAEs8G,EAAEx8G,OAAOE,IAAIklD,EAAE8xB,YAAYslC,EAAEt8G,KAF7K,GAEsLilD,EAAEC,EAAE,0BAA0BD,EAAEA,EAAEm5E,IAAIn5E,EAAEC,EAAE,gBAAgBD,EAAEA,EAAEkngB,IAAIlngB,EAAE2igB,GAAG,WAAW,SAAS1igB,EAAElqC,EAAEhb,GAAG,GAAGgb,EAAE,GAAG,GAAGA,EAAEw/D,SAAqC,OAAvBuxC,EAAE9mE,EAAE2igB,GAAGwE,GAAGpxiB,EAAEqnG,aAAoBriH,EAAEI,KAAK,CAACisjB,GAAGrxiB,EAAEsxiB,GAAGvgc,SAAS,GAAG,GAAG/wG,EAAEw/D,SAAS,IAAI,IAAIuxC,EAAE,EAAE/lD,EAAEhrD,EAAEonG,WAAW4mC,EAAEhjF,EAAElmE,OAAOisH,EAAEi9B,EAAEj9B,IAAI7mE,EAAE8gB,EAAE+lD,GACrf/rH,GAAG,IAAIgb,EAAE,GAAG,MAAM,CAACuxiB,GAAG,SAAStngB,GAAG,GAAG,mBAAmBA,EAAE,MAAMpQ,MAAM,4DAA4D,IAAIqQ,GAAG,YAAY,EAAE//B,KAAK+5D,UAAU,GAAGjxE,SAAS,IAAIu9B,UAAU,IAAI,YAAY,EAAErmB,KAAK+5D,UAAU,GAAGjxE,SAAS,IAAIu9B,UAAU,GAAU,OAAPxwB,EAAEkqC,GAAGD,EAAQ,mBAAmBC,EAAE,WAAWsngB,GAAG,SAASvngB,EAAEC,GAAG,IAAI6mE,EAAE/wG,EAAEiqC,GAAG,GAAG8mE,IAAI70D,EAAE,MAAMriB,MAAM,kCAAkCoQ,EAAE,2CAA2C,IAAI,OAAO8mE,EAAEvmG,MAAM,KAAK0/B,GAAG,KAAI,EAA/B,eAAiDlqC,EAAEiqC,KAAKwngB,GAAG,SAASzxiB,EAAEhb,GAAG,IAAI+rH,EACxf,GAAG7mE,EAAElqC,EAAE+wG,GAAG,IAAI,IAAI/lD,EAAE,EAAEgjF,EAAEj9B,EAAEjsH,OAAOkmE,EAAEgjF,EAAEhjF,IAAI,CAAC,IAAI/O,EAAE80D,EAAE/lD,GAAGqmf,GAAGl1f,EAAE,CAACF,GAAGj3D,GAAGilD,EAAEA,EAAEkkgB,GAAGhyf,EAAEn3D,GAAGilD,EAAE2igB,GAAG4E,GAAGzgc,EAAE/lD,GAAGsmf,GAAGn1f,GAAGF,EAAEorD,UAAU,GAAGprD,EAAErtC,YAAYqtC,EAAErtC,WAAW+iC,YAAYsK,KAAKm1f,GAAG,SAASnngB,GAAG,OAAOA,EAAEA,EAAE9jC,MAAM,yBAAyB8jC,EAAE,GAAG,OAF0G,GAEhGA,EAAEC,EAAE,cAAcD,EAAE2igB,IAAI3igB,EAAEC,EAAE,sBAAsBD,EAAE2igB,GAAG2E,IAAItngB,EAAEC,EAAE,wBAAwBD,EAAE2igB,GAAG4E,IAAIvngB,EAAEC,EAAE,4BAA4BD,EAAE2igB,GAAGwE,IAAInngB,EAAEC,EAAE,6CAA6CD,EAAE2igB,GAAG6E,IAAIxngB,EAAEyngB,GAAG,WAAW,SAASxngB,IAAI,GAAG6mE,EAAE,IAAI,IAAYzP,EAARp3D,EAAE6mE,EAAE/wG,EAAE,EAAIguI,EAAEj9B,GAAG,GAAGzP,EAAEt8G,EAAEgpJ,KAAK,CAAC,GAAGA,EAAE9jG,EAAE,CAAC,GAAG,OACrflqC,EAAE,CAACguI,EAAEj9B,EAAE9mE,EAAEA,EAAEulgB,GAAG31gB,MAAM,yCAAyC75B,EAAE,kBAAkB,MAAMkqC,EAAE6mE,EAAE,IAAIzP,IAAI,MAAM1lB,GAAG3xC,EAAEA,EAAEulgB,GAAG5zd,KAAK,SAAS57E,IAAIkqC,IAAI8jG,EAAEj9B,EAAE/rH,EAAEF,OAAO,EAAE,IAAIw8G,EAAEt8G,EAAE,GAAG+rH,EAAE,EAAE/lD,EAAE,EAAEgjF,EAAE,EACpG,OADyH1sC,EAAnBo+W,EAAE/zJ,iBAAmB,SAAS1hR,GAAG,IAAIC,EAAE+jG,EAAErmH,cAAc,OAA4D,OAApD,IAAI+jS,iBAAiB1hR,GAAI+nJ,QAAQ9nJ,EAAE,CAAC2jF,YAAW,IAAY,WAAW3jF,EAAErkD,UAAU+zP,OAAO,QAAnI,CAA4I55O,GAAKiuI,GAAG,uBAAuBA,EAAErmH,cAAc,UAAU,SAASqiB,GAAG,IAAIC,EAAE+jG,EAAErmH,cAAc,UAAUsiB,EAAE09E,mBAAmB,WAAW19E,EAAE09E,mBAAmB,KAAKqmB,EAAEhhH,gBAAgB0kB,YAAYzH,GAC/gBA,EAAE,KAAKD,KAAKgkG,EAAEhhH,gBAAgB+uC,YAAY9xB,IAAI,SAASD,GAAG5iD,WAAW4iD,EAAE,IAAU,CAAC0ngB,UAAUrwc,EAAEswc,GAAG,SAAS1ngB,GAAiC,OAA9B6mE,GAAG9mE,EAAEyngB,GAAGC,UAAU3xiB,GAAGhb,EAAE+rH,KAAK7mE,EAAS8gB,KAAKzgC,OAAO,SAAS0f,IAAGA,GAAK+gB,EAAE+lD,IAAMi9B,GAAG/jG,EAAE8mE,IAAI/rH,EAAEilD,GAAG,OAAO4ngB,gBAAgB,WAAW,IAAI5ngB,EAAE8mE,EAAEi9B,EAAiB,OAAfA,EAAEj9B,EAAE/rH,EAAEF,OAAO,EAASmlD,GAAG6ngB,GAAG5ngB,GAF8J,GAExJD,EAAEC,EAAE,QAAQD,EAAEyngB,IAAIzngB,EAAEC,EAAE,iBAAiBD,EAAEyngB,GAAGE,IAAI3ngB,EAAEC,EAAE,iBAAiBD,EAAEyngB,GAAGI,IAAI7ngB,EAAE8ngB,GAAG,CAACvxf,SAAS,SAAStW,EAAElqC,GAAGkqC,EAAE8ngB,mBAAmBhyiB,EAAE,IAAIshG,EAAE,KAAK,OAAOr3D,EAAE/3C,EAAE,CAAC+C,KAAKi1C,EAAE90C,MAAM,SAASpQ,GAAG09B,aAAa4+E,GAAGA,EAAEr3D,EAAEA,EAAE5iD,YAAW,WAAW6iD,EAAEllD,KACnfgb,OAAOzS,UAAU,SAAS08C,EAAEjqC,GAAG,IAAIshG,EAAEt8G,EAAE+rH,EAAE,iBAAiB/wG,EAAEshG,EAAEthG,GAAGshG,EAAEthG,EAAE5Y,QAAQpC,EAAEgb,EAAExS,QAAQy8C,EAAEgogB,IAAG,EAAGlhc,EAAE,mBAAmB/rH,EAAEA,EAAE,yBAAyBA,EAAEynjB,EAAE/xP,EAAEzwQ,EAAEiogB,IAAG,SAASjogB,GAAG,OAAO8mE,EAAE9mE,EAAEq3D,EAAEthG,OAAMwvB,SAAS,SAAS0a,EAAElqC,GAAG,IAAG,IAAKA,EAAE,MAAM65B,MAAM,yHAAyHqQ,EAAE+ngB,KAAK/ngB,EAAE+ngB,IAAG,EAAG/ngB,EAAEgogB,IAAG,SAASlyiB,GAAG,IAAIhb,EAAE+rH,GAAE,EAAG,OAAO,WAAW,IAAIA,EAAE,CAAC9mE,EAAEyngB,GAAGnnhB,OAAOvlC,GAAGA,EAAEilD,EAAEyngB,GAAGE,GAAG5xiB,GAAG,IAAI+wG,GAAE,EAAG7mE,EAAEi1B,kBAAkBjjB,EAAE,SAA/B,QAAgD60D,GACnf,UAAUhtD,OAAO,SAAS9Z,EAAEjqC,GAAGiqC,EAAEqiR,iBAAiB,UAAUtsT,EAAE,KAAKusiB,IAAI,IAAIC,EAAE,CAAC5viB,UAAU,EAAE,QAAU,EAAEqhE,OAAO,EAAE40B,OAAO,GAAG5oD,EAAEC,EAAE,YAAYD,EAAE8ngB,IAAI9ngB,EAAEkogB,GAAG,SAASjogB,EAAElqC,EAAEshG,GAAG98G,KAAKymT,GAAG/gQ,EAAE1lD,KAAK4tjB,GAAGpyiB,EAAExb,KAAK6tjB,GAAG/wc,EAAE98G,KAAK8tjB,IAAG,EAAG9tjB,KAAK+tjB,GAAG/tjB,KAAKgujB,GAAG,KAAKvogB,EAAE2pG,EAAEpvJ,KAAK,UAAUA,KAAK6sB,GAAG44B,EAAE2pG,EAAEpvJ,KAAK,2BAA2BA,KAAKkwF,IAAIzqC,EAAEkogB,GAAGnojB,UAAUqnB,EAAE,WAAW7sB,KAAK8tjB,KAAK9tjB,KAAK+tjB,IAAItogB,EAAEA,EAAEsigB,EAAEwE,GAAGvsjB,KAAKgujB,GAAGhujB,KAAK+tjB,IAAI/tjB,KAAK8tjB,IAAG,EAAG9tjB,KAAK6tjB,KAAK7tjB,KAAKymT,GAAGzmT,KAAK4tjB,GAAG5tjB,KAAK6tjB,GAAG7tjB,KAAKgujB,GAAGhujB,KAAK+tjB,GAAG,OAAOtogB,EAAEkogB,GAAGnojB,UAAU0qF,EAAE,SAASxqC,GAAG1lD,KAAKgujB,GAAGtogB,EAAED,EAAEA,EAAEsigB,EAAEkD,GAAGvlgB,EAAE1lD,KAAK+tjB,GAAG/tjB,KAAK6sB,EAAEpiB,KAAKzK,QAC7fylD,EAAEqigB,EAAE,WAAWrigB,EAAEA,EAAEqkgB,GAAG9pjB,KAAKipjB,GAAGA,EAAEgF,GAAGjujB,OAAO,IAAIipjB,EAAE,CAACgF,GAAG,SAASxogB,GAAGA,EAAEyogB,EAAE,CAAC1uhB,OAAO,IAAIimB,EAAE26H,GAAG,GAAGjvK,UAAU,SAASu0C,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAER,KAAK88G,EAAEA,GAAG,SAAS,IAAIyP,EAAE,IAAI9mE,EAAEkogB,GAAGntjB,EAAEgb,EAAEkqC,EAAEj7C,KAAK+Q,GAAGkqC,GAAE,WAAWD,EAAEA,EAAE8jgB,GAAG/ojB,EAAE0tjB,EAAEpxc,GAAGyP,GAAG/rH,EAAE2tjB,IAAI3tjB,EAAE2tjB,GAAGrxc,MAAsD,OAAjDt8G,EAAE4tjB,IAAI5tjB,EAAE4tjB,GAAGtxc,GAAGt8G,EAAE0tjB,EAAEpxc,KAAKt8G,EAAE0tjB,EAAEpxc,GAAG,IAAIt8G,EAAE0tjB,EAAEpxc,GAAGl8G,KAAK2rH,GAAUA,GAAG5xC,kBAAkB,SAASj1B,EAAElqC,GAAyC,GAAxB,YAAdA,EAAEA,GAAG,WAAuBxb,KAAKqujB,KAAQrujB,KAAKsujB,GAAG9yiB,GAAG,CAAC,IAAIshG,EAAE,WAAWthG,GAAGxb,KAAKuujB,IAAIvujB,KAAKkujB,EAAE1yiB,GAAG/V,MAAM,GAAG,IAAIggD,EAAE+oJ,EAAEggX,KAAK,IAAI,IAAQjic,EAAJ/rH,EAAE,EAAI+rH,EAAEzP,EAAEt8G,KAAKA,EAAE+rH,EAAEuhc,IAAIvhc,EAAEqhc,GAAGlogB,GAAjD,QAA4DD,EAAE+oJ,EAAEp7K,SAASq7hB,GAAG,WAAW,OAAOzujB,KAAKogL,IACzfsuY,GAAG,SAASjpgB,GAAG,OAAOzlD,KAAKyujB,OAAOhpgB,GAAG4ogB,GAAG,aAAarujB,KAAKogL,IAAIstY,GAAG,SAAShogB,GAAG,IAAoBllD,EAAE+rH,EAAE/lD,EAAEgjF,EAAE/xF,EAAxBj8C,EAAExb,KAAK88G,EAAEr3D,EAAE0iE,EAAE3sG,GAAaA,EAAE0siB,KAAK1siB,EAAE0siB,GAAG1siB,EAAEm/D,kBAAkBn/D,EAAEm/D,kBAAkBw7O,GAAG,IAAIx+P,EAAEjS,GAAE,WAAWlqC,EAAEqtiB,IAAG,EAAG/rc,GAAG0sC,IAAIhuI,IAAIguI,EAAEhuI,EAAEmziB,GAAGnziB,EAAEmziB,KAAKnziB,KAAK,IAAIiqC,EAAE8mE,GAAG90D,GAAGj8C,EAAEoziB,GAAGpof,EAAEgjF,GAAG/xF,EAAE80D,EAAE/rH,GAAE,EAAGilD,GAAGjqC,EAAE0siB,GAAG1hf,EAAEgjF,MAAKhuI,EAAE2siB,GAAG,SAAS1igB,EAAEC,GAAGA,GAAGlqC,EAAEqtiB,KAAKpxf,GAAG/R,GAAGlqC,EAAE+yiB,GAAG/yiB,EAAE0yiB,EAAE1uhB,OAAO/5B,MAAM,GAAG+V,EAAEqtiB,GAAGrojB,GAAE,EAAGgpJ,EAAE/jG,EAAEkS,KAAKn8C,EAAEmjf,GAAG,SAASl5c,GAAGjlD,IAAIgmE,EAAE/gB,EAAEjqC,EAAE0siB,GAAGzigB,EAAE,kBAAkBjqC,EAAEqziB,GAAG,WAAWp3f,GAAE,GAAIj8C,EAAEosS,GAAG,WAAWpsS,EAAEoziB,GAAGpof,EAAEhrD,EAAEqrC,GAAE,MAAO0lE,GAAE,KAAM+hc,GAAG,SAAS7ogB,GAAG,OAAOzlD,KAAKkujB,EAAEzogB,IAAIzlD,KAAKkujB,EAAEzogB,GAAGnlD,QACrfwujB,GAAG,SAASppgB,GAAG,GAAGA,EAAE,OAAO1lD,KAAKkujB,EAAExogB,IAAI1lD,KAAKkujB,EAAExogB,GAAGplD,QAAQ,EAAE,IAAIkb,EAAE,EAA0D,OAAxDiqC,EAAEA,EAAExH,EAAEj+C,KAAKkujB,GAAE,SAASzogB,EAAEC,GAAG,UAAUD,IAAIjqC,GAAGkqC,EAAEplD,WAAiBkb,GAAGoziB,GAAG,SAASnpgB,EAAEjqC,GAAG,OAAOxb,KAAK8nU,mBAAmB9nU,KAAK8nU,iBAAiBriR,EAAEjqC,IAAI/M,SAAS,WAAW,MAAM,mBAAmB3F,OAAO,SAAS48C,GAAG,IAAIlqC,EAAExb,KAAkF,OAA7E0lD,GAAGD,EAAEA,EAAExH,EAAEyH,GAAE,SAASA,EAAEllD,GAAG,IAAI+rH,EAAE9mE,EAAE8ngB,GAAG7ngB,GAAG,mBAAmB6mE,IAAI/wG,EAAE+wG,EAAE/wG,EAAEhb,IAAIgb,MAAYA,IAAIiqC,EAAE2pG,EAAE65Z,EAAE,OAAOA,EAAEgF,IAAIxogB,EAAE2pG,EAAE65Z,EAAE,YAAYA,EAAE93iB,WAAWs0C,EAAE2pG,EAAE65Z,EAAE,SAASA,EAAEngjB,QAAQ28C,EAAE2pG,EAAE65Z,EAAE,wBAAwBA,EAAE6F,IAAIrpgB,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAEq2F,eAAemta,EAC7f+C,SAASxmjB,WAAWigD,EAAEqigB,EAAEluhB,GAAGqvhB,EAAExjgB,EAAEspgB,GAAG,SAAStpgB,GAAG,OAAO,MAAMA,GAAG,mBAAmBA,EAAEt0C,WAAW,mBAAmBs0C,EAAEk1B,mBAAmBl1B,EAAEC,EAAE,eAAeD,EAAEqigB,GAAGrigB,EAAEC,EAAE,iBAAiBD,EAAEspgB,IAAItpgB,EAAEwvL,EAAExvL,EAAE+oJ,EAAE,WAAW,SAAS9oJ,EAAED,GAAGq3D,EAAEl8G,KAAKJ,GAAGA,EAAEilD,EAAE,SAASjqC,IAAIhb,EAAEs8G,EAAE1kE,MAAM,IAAS53C,EAALs8G,EAAE,GAAKyP,EAAE,EAAE,MAAM,CAACiic,GAAG9ogB,EAAEtyB,IAAI5X,EAAEwziB,GAAG,SAAStpgB,GAAG,GAAGllD,EAAE,CAAC,IAAIilD,EAAEspgB,GAAGrpgB,GAAG,MAAMrQ,MAAM,oDAAoD70C,EAAEyujB,GAAGxujB,KAAKD,EAAE0ujB,GAAGxpgB,EAAEA,EAAEgrH,KAAKhrH,EAAEgrH,KAAKnkD,MAAMigc,EAAE,SAAS/mgB,EAAEq3D,EAAEt8G,GAAG,IAAI,OAAOklD,IAAID,EAAEz/B,MAAM82F,EAAEt8G,GAAG,IAA5B,QAAwCgb,MAAM2ziB,GAAG,WAAW,GAAG3ujB,EAAE,OAAOA,EAAEyvF,EAAEk/d,MACpgBC,GAAG,WAAW,GAAG5ujB,EAAE,OAAOA,EAAEyvF,EAAEm/d,MAAMC,GAAG,WAAW,GAAG7ujB,EAAE,OAAOA,EAAE6ujB,IAAIp/d,EAAE,WAAW,GAAGzvF,EAAE,OAAOA,EAAEyvF,IADkG,GAC3FxqC,EAAEC,EAAE,kBAAkBD,EAAEwvL,GAAGxvL,EAAEC,EAAE,uCAAuCD,EAAEwvL,EAAEk6U,IAAI1pgB,EAAEC,EAAE,kCAAkCD,EAAEwvL,EAAEm6U,IAAI3pgB,EAAEC,EAAE,4BAA4BD,EAAEwvL,EAAEo6U,IAAI5pgB,EAAEC,EAAE,qCAAqCD,EAAEwvL,EAAE+5U,IAAIvpgB,EAAEC,EAAE,qBAAqBD,EAAE6pgB,GAAG7pgB,EAAE+oJ,EAAEg+W,GAAG,IAAI9D,EAAEjjgB,EAAEA,EAAEkmgB,GAAG,gBAAgBlmgB,EAAE67Q,GAAG,SAAS57Q,GAAG,SAASlqC,IAAI,OAAG,EAAEzT,UAAUzH,QAAckb,EAAEoziB,GAAGpziB,EAAEktiB,GAAG3gjB,UAAU,MAAMyT,EAAE+ziB,KAAK/ziB,EAAEktiB,GAAG3gjB,UAAU,GAAGyT,EAAEg0iB,MAAMxvjB,OACnfylD,EAAE+oJ,EAAEwgX,GAAGxziB,GAAUA,EAAEktiB,IAA4G,OAAzGltiB,EAAEktiB,GAAGhjgB,EAAED,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAE38C,OAAO0S,EAAEiqC,EAAEqigB,EAAEluhB,IAAI6rB,EAAEqigB,EAAEluhB,GAAGq0hB,GAAGzyiB,GAAGiqC,EAAEA,EAAEqkgB,GAAGtuiB,EAAEqpf,GAAGp/c,EAAErrC,QAAQ0uiB,cAAcrjgB,EAAE8ngB,GAAGvihB,SAASxvB,GAAE,GAAWA,GAAG,IAAIqpf,EAAE,CAAC/8L,iBAAiBigP,EAAElhgB,EAAE,WAAW,OAAO7mD,KAAK0ojB,IAAI8G,GAAG,WAAWxvjB,KAAK26E,kBAAkB36E,KAAK0ojB,GAAG,YAAY1ojB,KAAK26E,kBAAkB36E,KAAK0ojB,KAAK6G,GAAG,WAAWvvjB,KAAK26E,kBAAkB36E,KAAK0ojB,GAAG,kBAAkBjjgB,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAEq2F,eAAe+oX,EAAEp/c,EAAEqigB,EAAEluhB,IAAI,IAAI4yhB,EAAE/mgB,EAAE67Q,GAAGmuP,GAAG,eAAe5qD,EAAE2nD,GAAG/mgB,EAAE67Q,GAAG77Q,EAAE0iE,EAAE,SAASziE,GAAG,IAAIA,EAAE,mBAAmBA,GAAGA,EAAE8mgB,KAAK9mgB,IAAIm/c,EAAE2nD,IAAI9mgB,IAAID,EAAEwqC,EAAEr2D,GAAG4yhB,GAAG,MAAMn3gB,MAAM,yFAC5f,QAAQqQ,GAAGD,EAAEiqgB,GAAG,SAAShqgB,GAAG,MAAM,mBAAmBA,IAAIA,EAAE8mgB,KAAK3nD,EAAE2nD,IAAI9mgB,EAAE8mgB,KAAK/mgB,EAAEwqC,EAAEr2D,GAAG4yhB,IAAI9mgB,EAAEiqgB,KAAKlqgB,EAAEC,EAAE,aAAaD,EAAE67Q,IAAI77Q,EAAEC,EAAE,eAAeD,EAAE0iE,GAAG1iE,EAAEC,EAAE,wBAAwBD,EAAEiqgB,IAAIjqgB,EAAEC,EAAE,uBAAuBD,EAAEiqgB,IAAIjqgB,EAAEC,EAAE,gBAAgBm/c,GAAGp/c,EAAE2pG,EAAEy1W,EAAE,OAAOA,EAAEh+c,GAAGpB,EAAE2pG,EAAEy1W,EAAE,kBAAkBA,EAAE2qD,IAAI/pgB,EAAE2pG,EAAEy1W,EAAE,kBAAkBA,EAAE0qD,IAAI9pgB,EAAEmqgB,GAAG,SAASlqgB,GAAW,GAAG,iBAAXA,EAAEA,GAAG,OAA4B,WAAWA,GAAG,MAAMrQ,MAAM,sGACzX,OAD+dqQ,EAAED,EAAE67Q,GAAG57Q,GAAGD,EAAEA,EAAEqkgB,GAAGpkgB,EACzfD,EAAEmqgB,GAAGh2hB,IAAW8rB,EAAE58C,OAAO,CAAC+mjB,mBAAkB,KAAMpqgB,EAAEmqgB,GAAGh2hB,GAAG,CAACp4B,OAAO,SAASkkD,GAAG,IAAI,IAAIlqC,EAAExb,KAAK6mD,IAAIi2D,EAAE,GAAGt8G,EAAE,mBAAmBklD,GAAGD,EAAE0iE,EAAEziE,GAAG,SAASD,GAAG,OAAOA,IAAIC,GAAGA,EAAE6mE,EAAE,EAAEA,EAAE/wG,EAAElb,OAAOisH,IAAI,CAAC,IAAI/lD,EAAEhrD,EAAE+wG,GAAG,GAAG/rH,EAAEgmE,GAAG,CAAyB,GAAxB,IAAIs2C,EAAEx8G,QAAQN,KAAKuvjB,KAAQ/ziB,EAAE+wG,KAAK/lD,EAAE,MAAMnxB,MAAM,oDAAoDynE,EAAEl8G,KAAK4lE,GAAGhrD,EAAEjM,OAAOg9G,EAAE,GAAGA,KAAyB,OAApBzP,EAAEx8G,QAAQN,KAAKwvjB,KAAY1yc,GAAG4wD,UAAU,SAAShoH,GAAG,GAAGA,IAAIgS,EAAE,CAAC,IAAIl8C,EAAExb,KAAK6mD,IAAIi2D,EAAEthG,EAAE/V,MAAM,GAA4C,OAAzCzF,KAAKuvjB,KAAK/ziB,EAAEjM,OAAO,EAAEiM,EAAElb,QAAQN,KAAKwvjB,KAAY1yc,EAAE,OAAOp3D,EAAE1lD,KAAKwB,QAAO,SAASga,GAAG,OAAO,GAC9fiqC,EAAEA,EAAEy1a,EAAEx1a,EAAElqC,MAAK,IAAI6lG,QAAQ,SAAS37D,GAAG,IAAIlqC,EAAExb,KAAK6mD,IAAIi2D,EAAE,mBAAmBp3D,GAAGD,EAAE0iE,EAAEziE,GAAG,SAASD,GAAG,OAAOA,IAAIC,GAAGA,EAAE1lD,KAAKuvjB,KAAK,IAAI,IAAI/ujB,EAAEgb,EAAElb,OAAO,EAAE,GAAGE,EAAEA,IAAI,CAAC,IAAI+rH,EAAE/wG,EAAEhb,GAAGs8G,EAAEyP,KAAKA,EAAEujc,UAAS,GAAI9vjB,KAAKwvjB,MAAMO,WAAW,SAASrqgB,GAAG,OAAOA,IAAIgS,EAAE13D,KAAKqhH,SAAQ,WAAW,OAAM,KAAK37D,EAAE1lD,KAAKqhH,SAAQ,SAAS7lG,GAAG,OAAO,GAAGiqC,EAAEA,EAAEy1a,EAAEx1a,EAAElqC,MAAK,IAAIrV,QAAQ,SAASu/C,GAAG,IAAIlqC,EAAExb,OAAO,OAAOylD,EAAEA,EAAEy1a,EAAE1/c,EAAEkqC,IAAIgD,QAAQ,SAASjD,EAAEjqC,GAAG,IAAIshG,EAAE98G,KAAKmG,QAAQs/C,GAAG,GAAGq3D,IAAI98G,KAAKuvjB,KAAKvvjB,KAAK6mD,IAAIi2D,GAAGthG,EAAExb,KAAKwvjB,OAAOQ,OAAO,SAASvqgB,GAAG,IAAIjqC,EAAExb,OAAOyF,MAAM,GAClf,OAAOggD,EAAEjqC,EAAEgqC,KAAKC,GAAGjqC,EAAEgqC,QAAQyqgB,SAAS,WAAW,OAAOjwjB,OAAOyF,MAAM,GAAGsuB,YAAY0xB,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAEq2F,eAAer2F,EAAEmqgB,GAAGh2hB,GAAG6rB,EAAE67Q,GAAG1nS,IAAI6rB,EAAEA,EAAEwjgB,EAAE,6CAA6Cx7iB,MAAM,MAAK,SAASi4C,GAAGD,EAAEmqgB,GAAGh2hB,GAAG8rB,GAAG,WAAW,IAAID,EAAEzlD,KAAK6mD,IAAI7mD,KAAKuvjB,KAAKvvjB,KAAKkwjB,GAAGzqgB,EAAEC,EAAE39C,WAAW,IAAI+0G,EAAEr3D,EAAEC,GAAG1/B,MAAMy/B,EAAE19C,WAAqB,OAAV/H,KAAKwvjB,KAAY1yc,IAAIr3D,EAAEzlD,KAAK88G,MAAKr3D,EAAEA,EAAEwjgB,EAAE,CAAC,UAAS,SAASvjgB,GAAGD,EAAEmqgB,GAAGh2hB,GAAG8rB,GAAG,WAAW,IAAID,EAAEzlD,OAAO,OAAOylD,EAAEC,GAAG1/B,MAAMy/B,EAAE19C,eAAc09C,EAAE0qgB,GAAG,SAASzqgB,GAAG,OAAOD,EAAE0iE,EAAEziE,IAAI,mBAAmBA,EAAElkD,QAAQ,mBACtekkD,EAAE9kD,MAAM6kD,EAAEC,EAAE,kBAAkBD,EAAEmqgB,IAAInqgB,EAAEC,EAAE,oBAAoBD,EAAE0qgB,IAAI1qgB,EAAE8ngB,GAAGsC,kBAAkB,SAASnqgB,EAAElqC,GAAG,SAASshG,IAAI,SAASthG,IAAI,GAAGi8C,EAAE,CAAC,IAA2Bj3D,EAAvBs8G,EAAE,GAAGlhF,OAAO8pB,EAAEmB,KAAK,IAASnB,EAAE4ogB,GAAG,mBAAoB/hc,GAAG,EAAE90D,KAAE80D,EAAE9mE,EAAEA,EAAE2qgB,GAAGz4f,EAAEmlD,EAAEp3D,EAAE2qgB,KAAI7vjB,EAAE+rH,GAAE50D,EAAEmlD,EAAEyP,EAAE,KAAK90D,EAAE,EAAEj3D,GAAGA,EAAEF,QAAQolD,EAAEi1B,kBAAkBn6E,EAAE,gBAAgBA,EAAEgb,KAAKhb,GAAE,EAAGgpJ,EAAE9jG,EAAEv0C,WAAU,aAAasmD,IAAG,KAAK,YAAYE,EAAE,GAAG/7B,OAAO8pB,EAAEmB,KAAK,IAAI0lE,EAAE,KAAK/lD,EAAE9gB,EAAEv0C,UAAUqK,IAAqE,GAAjEkqC,EAAE2qgB,GAAG,GAAG70iB,GAAG,iBAAiBA,GAAGiqC,EAAEA,EAAE38C,OAAO48C,EAAE2qgB,GAAG70iB,GAAGkqC,EAAE2qgB,GAAGC,QAAO,GAAO5qgB,EAAEwqgB,GAAG,CAAC,IAAgB1pf,EAAEgjF,EAC/e7xF,EADien3D,GAAE,EAAG+rH,EAAE,KAAS90D,EAAE,EACjfy4B,EAAExqC,EAAE0ogB,GAAGh3d,EAAE1xC,EAAEyogB,GAAGzogB,EAAE0ogB,GAAG,SAAS3ogB,GAAGyqC,GAAGA,EAAEzvF,KAAKilD,EAAED,GAAG,gBAAgBA,GAAGq3D,KAAKp3D,EAAEyogB,GAAG,SAAS1ogB,GAAG2xC,GAAGA,EAAE32F,KAAKilD,EAAED,GAAG,gBAAgBA,GAAGC,EAAE4ogB,GAAG,iBAAiB9nf,GAAGA,EAAE35C,IAAI28H,GAAGA,EAAE38H,IAAI28H,EAAEhjF,EAAE,KAAKhmE,GAAE,EAAGm3D,EAAED,IAAIhS,EAAEwqgB,GAAG,SAASxqgB,EAAElqC,EAAEshG,GAAG,SAAS5sB,EAAEzqC,EAAEC,EAAElqC,GAAG,OAAOm8C,EAAEA,EAAEr3D,QAAQ,CAACo3C,OAAO+N,EAAE7jD,MAAM8jD,EAAE7kD,MAAM2a,GAAG,GAAGhb,IAAIi3D,EAAE,CAAC,IAAIE,EAAE,GAAGy/B,EAAE1xC,EAAEplD,OAAOkmE,EAAEs2C,EAAEx8G,OAAOkpJ,EAAE,EAAE,OAAOhuI,GAAG,IAAK,OAAOguI,EAAEpyD,EAAE,IAAK,UAAU,IAAI57E,EAAE,EAAEA,EAAEgrD,EAAEhrD,IAAI00E,EAAE,QAAQ4sB,EAAEthG,GAAGguI,EAAEhuI,GAAG,MAAM,IAAK,MAAMguI,EAAEpyD,EAAE,EAAE,IAAK,QAAQA,GAAGlH,EAAE,UAAUxqC,EAAE8jG,GAAGA,GAAG,MAAM,IAAK,SAAShuI,EAAEmK,KAAKG,IAAIH,KAAKC,IAAI,EAAE,EAAEk3F,EAAE,GAAG1lB,EAAE0lB,EAAE,GACtfA,EAAE,IAAI1lB,GAAWA,EAAE,IAAI5wB,EAAE4wB,EAAEzxE,KAAKG,IAAItK,GAAGshG,EAAE,IAAI,GAAG1lB,GAAG5wB,EAAEhrD,EAAEgrD,EAAE,EAAEgjF,EAAE7jI,KAAKC,IAAIwxE,EAAE5wB,GAA/D,IAAI,IAA8D0nf,EAAE,GAAG9+Z,EAAE,GAAG13F,EAAE,EAAEl8C,EAAEguI,IAAIhuI,IAAIk8C,EAAEl8C,EAAE47E,GAAGg4D,EAAExuJ,KAAKsvF,EAAE,UAAUxqC,EAAElqC,GAAGA,IAAIA,EAAEgrD,GAAG0nf,EAAEttjB,KAAKsvF,EAAE,QAAQ4sB,EAAEplD,GAAGl8C,IAAIiqC,EAAEA,EAAE8qgB,GAAGnha,EAAE8+Z,GAAG,MAAM,QAAQ,OAAO3hc,EAAE50D,MAAM,IAAI4O,EAAE9gB,EAAEA,EAAEkmgB,GAAG,UAAUlmgB,EAAEwqC,EAAExqC,EAAE/3C,EAAE,SAASg4C,EAAElqC,EAAEshG,GAAG,SAASt8G,IAAI,GAAG,EAAEuH,UAAUzH,OAAO,CAAC,GAAG,oBAAoBisH,EAA+B,MAAMl3E,MAAM,gJAAgJ,OAAzLk3E,EAAEvmG,MAAMwgD,EAAEi+O,GAAG18S,WAAmL/H,KACpd,OADydwmE,EAAE+hf,IACjgB9igB,EAAE+oJ,EAAEwgX,GAAGxujB,IAAIgmE,EAAEkiP,IAAIliP,EAAEmif,GAAGnojB,EAAEgwjB,OAAOhwjB,EAAEwnT,KAAYxhP,EAAE0vP,EAAkD,GAAhD,kBAAkBxwQ,EAAEo3D,EAAEp3D,GAAGo3D,EAAEA,GAAG,GAAGp3D,IAAIo3D,EAAErsG,KAAKi1C,IAAO,mBAAmBo3D,EAAErsG,KAAK,MAAM4kC,MAAM,6DAA6D,IAAIk3E,EAAEzP,EAAElsG,MAAM41D,EAAE,CAAC0vP,EAAEx+P,EAAEqpQ,IAAG,EAAGrY,IAAG,EAAG+nQ,IAAG,EAAGC,IAAG,EAAGnI,IAAG,EAAGoI,IAAG,EAAGhI,GAAE,EAAGiI,GAAG9zc,EAAErsG,KAAKg0S,GAAGjpS,GAAGshG,EAAExkE,MAAM43C,EAAE4sB,EAAE/7F,0BAA0B+7F,EAAE5sB,GAAG,KAAK2ge,GAAG/zc,EAAEg0c,aAAah0c,EAAE+zc,GAAGE,GAAG,KAAKrI,EAAE,GAAGxzU,EAAE,EAAE87U,GAAG,MACvK,OAD6KxwjB,EAAE+lE,GAAGC,EAAEhmE,EAAEmvjB,GAAG,oBAAoBpjc,EAAE9mE,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAE38C,OAAOtI,EAAEilD,EAAEqigB,EAAEluhB,IAAI6rB,EAAEqigB,EAAEluhB,GAAGq0hB,GAAGztjB,GAAGilD,EAAEA,EAAEqkgB,GAAGtpjB,EAAE0nH,GAAGpL,EAAEm0c,MAAMzqf,EAAEmqf,IAAG,EAAGnqf,EAAEmif,GAAE,EAAGljgB,EAAEA,EAAE38C,OAAOtI,EAAEimT,IAClf3pM,EAAEo0c,iBAAiBzrgB,EAAEA,EAAE38C,OAAOtI,EAAE2wjB,GAAI1rgB,EAAErrC,QAAQ0uiB,cAAcrjgB,EAAE8ngB,GAAGvihB,SAASxqC,GAAE,GAAIgmE,EAAE0pB,IAAI1pB,EAAEkqf,IAAG,EAAGlqf,EAAE0pB,EAAElV,WAAWxU,EAAE0pB,EAAE,OAAO1pB,EAAEmif,GAAG7rc,EAAEo0c,iBAAiB1wjB,EAAEwnT,KAAKxhP,EAAE0pB,GAAG1vF,EAAE2+T,MAAM15Q,EAAEA,EAAEsigB,EAAEkD,GAAGzkf,EAAE0pB,EAAE1pB,EAAEuqf,GAAG,WAAWvwjB,EAAEqsB,MAAarsB,GAAG,IAAI0nH,EAAE,CAAC4/M,iBAAiBigP,EAAEoH,GAAG,WAAW,OAAOnvjB,KAAKumE,GAAG2uK,GAAGk6U,GAAG,WAAW,IAAI1pgB,EAAE,GAAgD,OAA7CD,EAAEA,EAAExH,EAAEj+C,KAAKumE,GAAGmif,GAAE,SAASjjgB,EAAEq3D,GAAGp3D,EAAEo3D,EAAEs0c,IAAIt0c,EAAE2pM,MAAY/gQ,GAAG2rgB,GAAG,SAAS3rgB,GAAG,IAAI1lD,KAAKumE,GAAG2uK,EAAE,OAAM,EAAG,IAAI15N,EAAExb,KAAKovjB,KAAK,OAAO,IAAI3pgB,EAAEA,EAAEy1a,EAAE1/c,EAAEkqC,MAAQD,EAAEA,EAAE6jgB,GAAG9tiB,GAAE,SAASiqC,GAAG,OAAOA,EAAE4rgB,IAAI5rgB,EAAE4rgB,GAAG3rgB,OAAMypG,GAAG,SAAS1pG,EAAEjqC,EAAEshG,GAAG,GAAG98G,KAAKumE,GAAGoqf,IACvfn1iB,IAAIxb,KAAK,MAAMq1C,MAAM,oDAAoDr1C,KAAKumE,GAAGmif,EAAEjjgB,GAAGq3D,EAAEA,EAAEs0c,GAAGpxjB,KAAKumE,GAAG2uK,IAAIp4H,EAAEw0c,GAAG91iB,EAAEiziB,MAAM+B,GAAG,WAAW,IAAI/qgB,EAAEjqC,EAAEshG,EAAE98G,KAAKumE,GAAGmif,EAAE,IAAIjjgB,KAAKq3D,EAAE,GAAGh2G,OAAOtB,UAAUsxE,eAAer2E,KAAKq8G,EAAEr3D,KAAKjqC,EAAEshG,EAAEr3D,GAAGzlD,KAAKuxjB,IAAI/1iB,EAAEirS,GAAGoiQ,IAAIrtiB,EAAEirS,GAAGioQ,GAAGlziB,EAAE81iB,KAAK,OAAM,GAAIE,GAAG,WAAWxxjB,KAAKuxjB,KAAKvxjB,KAAKumE,GAAGkqf,IAAIzwjB,KAAKuxjB,IAAG,IAAKpyP,GAAG,WAAW,IAAI15Q,EAAEzlD,KAAKumE,GAAG,OAAO9gB,EAAEijQ,IAAI,EAAEjjQ,EAAEyvL,GAAGu8U,GAAG,WAAWzxjB,KAAK6ojB,GAAG7ojB,KAAKumE,GAAGmiP,KAAK1oT,KAAKumE,GAAGw6P,IAAG,GAAI/gU,KAAK0xjB,MAAM9I,GAAG,SAASnjgB,GAAG,GAAGA,EAAEgogB,GAAG,CAAC,IAAIjyiB,EAAEiqC,EAAEt0C,UAAUnR,KAAKwxjB,GAAGxxjB,KAAK,SAAS88G,EAAEr3D,EAAEt0C,UAAUnR,KAAKyxjB,GACrfzxjB,MAAM,MAAM,CAACymT,GAAGhhQ,EAAE54B,EAAE,WAAWrR,EAAEqR,IAAIiwF,EAAEjwF,MAAM,OAAO44B,EAAEt0C,UAAUnR,KAAK0xjB,GAAG1xjB,OAAO0xjB,GAAG,WAAW,IAAIhsgB,EAAE1lD,KAAKwb,EAAEkqC,EAAE8ngB,mBAAmBhyiB,GAAG,GAAGA,GAAG0iB,aAAal+B,KAAKumE,GAAGyqf,IAAIhxjB,KAAKumE,GAAGyqf,GAAGvrgB,EAAEA,EAAE5iD,YAAW,WAAW6iD,EAAEsiQ,IAAG,KAAKxsS,IAAIkqC,EAAE6rgB,GAAG7rgB,EAAE6rgB,IAAG,GAAI7rgB,EAAEsiQ,IAAG,IAAKA,GAAG,SAAStiQ,GAAG,IAAIlqC,EAAExb,KAAKumE,GAAGu2C,EAAEthG,EAAEq1iB,GAAGrwjB,GAAE,EAAG,IAAIgb,EAAEi1iB,KAAKj1iB,EAAE+siB,GAAG,CAAC,GAAG/siB,EAAE00E,IAAIzqC,EAAEA,EAAEmlgB,GAAGpviB,EAAE00E,IAAI4sB,GAAGA,KAAK,IAAIthG,EAAEk1iB,GAAa,YAAT1wjB,KAAK6sB,SAAiBrR,EAAEk1iB,IAAG,EAAGl1iB,EAAEi1iB,IAAG,EAAG,IAAIjwjB,EAAER,KAAK2xjB,GAAGjsgB,GAAd,QAAyBlqC,EAAEi1iB,IAAG,EAAG,OAAOjwjB,IAAImxjB,GAAG,SAASjsgB,GAAG,IAAIlqC,EAAExb,KAAKumE,GAAGu2C,GAAE,EAAGt8G,EAAEgb,EAAEm1iB,GAAGj5f,GAAGl8C,EAAE05N,EAAEp4H,EAAE,CAACwrc,GAAGtojB,KAAKyojB,GAAGjtiB,EAAEktiB,EAAEF,GAAGhtiB,EAAE05N,GAAGzvL,EAAE+oJ,EAAEggX,GAAG,CAACU,GAAGpyc,EACrfmyc,GAAG5G,EAAGp4d,EAAEjwF,KAAKqvjB,GAAG7ujB,IAAIgb,EAAEktiB,EAAE,GAAGltiB,EAAE05N,EAAE,EAAE,IAAI3oH,EAAEvsH,KAAK4xjB,GAAGp2iB,EAAEshG,GAAkP,OAA/OthG,EAAE05N,EAAEp4H,EAAE98G,KAAK4ujB,GAAGpziB,EAAE06S,EAAE3pM,IAAIvsH,KAAK6sB,IAAIiwF,GAAE,GAAIA,IAAIthG,EAAEmtiB,EAAE3ojB,KAAKqujB,KAAKrujB,KAAK26E,kBAAkBn/D,EAAE06S,EAAE,gBAAgB16S,EAAE06S,EAAE3pM,EAAEvsH,KAAK26E,kBAAkBn/D,EAAE06S,EAAE,aAAa16S,EAAEmtiB,GAAGjjgB,GAAG1lD,KAAK26E,kBAAkBn/D,EAAE06S,GAAGl2T,KAAK6ujB,IAAI7ujB,KAAK6ujB,MAAMrujB,GAAGR,KAAK26E,kBAAkBn/D,EAAE06S,EAAE,SAAgBp5M,GAAG80c,GAAG,SAASlsgB,EAAElqC,GAAG,IAAI,IAAIshG,EAAEp3D,EAAEkrgB,GAAG,OAAOlrgB,EAAE++P,GAAG3nM,EAAEr8G,KAAKilD,EAAE++P,IAAI3nM,IAAxC,QAAoDr3D,EAAE+oJ,EAAEp7K,MAAM5X,EAAEgtiB,KAAK9igB,EAAEijgB,GAAGljgB,EAAEA,EAAExH,EAAEziC,EAAEitiB,GAAGL,GAAI1igB,EAAEq7Q,GAAGr7Q,EAAEgjQ,IAAG,IAAK7hQ,EAAE,SAASpB,GAAG,IAAIjqC,EAAExb,KAAKumE,GAAgD,OAA5C/qD,EAAEktS,KAAKjjQ,IAAIjqC,EAAE05N,IAAI15N,EAAEmtiB,GAAG3ojB,KAAKwwjB,OAAOxwjB,KAAKgoT,KAAYxsS,EAAE06S,GACxfw3P,GAAG,SAAShogB,GAAGD,EAAEqigB,EAAEluhB,GAAG8zhB,GAAGjtjB,KAAKT,KAAK0lD,GAAG1lD,KAAK2ujB,GAAG,WAA2D,OAAhD3ujB,KAAKumE,GAAGoif,IAAI3ojB,KAAKumE,GAAGw6P,GAAG/gU,KAAKgoT,KAAKhoT,KAAKumE,GAAGmiP,IAAG,GAAW1oT,KAAKumE,GAAG2vP,GAAGl2T,KAAKuxjB,GAAG,SAAS9rgB,GAAGzlD,KAAK2+f,GAAG3+f,KAAKumE,GAAG2vP,GAAGl2T,KAAKumE,GAAGmiP,IAAG,EAAGjjQ,IAAIzlD,KAAKumE,GAAGw6P,IAAG,GAAI/gU,KAAKmojB,GAAGnojB,MAAMylD,KAAK54B,EAAE,WAAW,IAAI64B,EAAE1lD,KAAKumE,IAAI7gB,EAAEijgB,GAAGjjgB,EAAEgjgB,GAAGjjgB,EAAEA,EAAExH,EAAEyH,EAAEgjgB,GAAE,SAASjjgB,EAAEC,GAAGA,EAAE74B,GAAG64B,EAAE74B,OAAM64B,EAAEwqC,GAAGxqC,EAAEqrgB,IAAItrgB,EAAEA,EAAEsigB,EAAEwE,GAAG7mgB,EAAEwqC,EAAExqC,EAAEqrgB,IAAIrrgB,EAAEgjgB,EAAEhxf,EAAEhS,EAAEwvL,EAAE,EAAExvL,EAAE6igB,IAAG,EAAG7igB,EAAEq7Q,IAAG,EAAGr7Q,EAAEgjQ,IAAG,EAAGhjQ,EAAEijgB,GAAE,EAAGjjgB,EAAEwqC,EAAEx4B,EAAEhS,EAAEmrgB,GAAGn5f,EAAEhS,EAAEkrgB,GAAGl5f,EAAE13D,KAAK2vjB,KAAKjqgB,EAAE++P,GAAG/sP,KAAK+uP,EAAG,CAAC2nQ,GAAG,SAAS1ogB,GAAG,IAAIlqC,EAAExb,KAAK88G,EAAEthG,EAAE+qD,GAAG,IAAIu2C,EAAEyrc,IAAIzrc,EAAE6rc,GAAG,UAAUjjgB,EAAE,CAAQ,GAAPo3D,EAAE6rc,GAAE,EAAM7rc,EAAEikN,IAAIvlT,EAAEg1iB,KAAK1zc,EAAE4rc,EAAE,KAAK5rc,EAAEo4H,EACrf,EAAE15N,EAAEwsS,MAAMxsS,EAAE6yiB,SAAS,CAAC,IAAI7tjB,EAAE,GAAGilD,EAAEA,EAAExH,EAAE6+D,EAAE4rc,GAAE,SAASjjgB,EAAEC,GAAGllD,EAAEklD,EAAE0rgB,IAAI3rgB,KAAIA,EAAEA,EAAEwjgB,EAAEzojB,GAAE,SAASilD,EAAEC,GAAG,IAAIllD,EAAEs8G,EAAE4rc,EAAEjjgB,GAAGgS,EAAEj8C,EAAEotiB,GAAGpojB,EAAEimT,IAAIhvP,EAAE25f,GAAG1rgB,EAAE+R,EAAE65f,GAAG9wjB,EAAE8wjB,GAAGx0c,EAAE4rc,EAAEjjgB,GAAGgS,KAAIj8C,EAAEg1iB,MAAMh1iB,EAAEwsS,MAAMxsS,EAAE6yiB,KAAKvxc,EAAEyrc,IAAI/siB,EAAEm/D,kBAAkBmiC,EAAEo5M,EAAE,WAAWi4P,GAAG,SAASzogB,GAAG,IAAIlqC,EAAExb,KAAKumE,GAAG/qD,EAAE+siB,IAAI,UAAU7igB,GAAG1lD,KAAKsujB,GAAG,YAAY7ogB,EAAEA,EAAExH,EAAEziC,EAAEktiB,GAAE,SAASjjgB,EAAEC,GAAGA,EAAE74B,IAAIrR,EAAEktiB,EAAEjjgB,GAAG,CAACghQ,GAAG/gQ,EAAE+gQ,GAAG2qQ,GAAG1rgB,EAAE0rgB,GAAGE,GAAG5rgB,EAAE4rgB,IAAI5rgB,EAAE74B,QAAOrR,EAAEmtiB,GAAE,EAAG3ojB,KAAK26E,kBAAkBjjB,EAAE,YAAY+2f,GAAG,WAAW,IAAI/ogB,EAAE1lD,KAAKumE,GAAqC,OAAlC7gB,EAAEijgB,IAAIjjgB,EAAEq7Q,IAAI/gU,KAAKwwjB,OAAOxwjB,KAAKgoT,KAAYviQ,EAAEqigB,EAAEluhB,GAAG60hB,GAAGhujB,KAAKT,QAAQmxjB,EAAG,CAAC/C,GAAG,SAAS3ogB,GAAG,UACtfA,GAAG,gBAAgBA,GAAGzlD,KAAK6mD,MAAMpB,EAAEA,EAAEokgB,IAAIpkgB,EAAEA,EAAEq2F,eAAe5zB,EAAEziE,EAAEqigB,EAAEluhB,IAAI,IAAIi4hB,EAAEpsgB,EAAE67Q,GAAGmuP,GAAGvnc,EAAE2pc,GAAGpsgB,EAAEwqC,EAAExqC,EAAEqsgB,GAAG,SAASrsgB,GAAG,MAAM,mBAAmBA,GAAGA,EAAEosgB,KAAK3pc,EAAE2pc,IAAIpsgB,EAAEssgB,GAAG,SAASrsgB,GAAG,OAAOD,EAAEqsgB,GAAGpsgB,IAAIA,EAAE6gB,IAAI7gB,EAAE6gB,GAAGoqf,IAAIlrgB,EAAEC,EAAE,WAAWD,EAAEwqC,GAAGxqC,EAAEC,EAAE,sBAAsBD,EAAEwqC,GAAGxqC,EAAEC,EAAE,aAAaD,EAAEqsgB,IAAIrsgB,EAAEC,EAAE,iBAAiBD,EAAEssgB,IAAItsgB,EAAEC,EAAE,cAAcwiE,GAAGziE,EAAE2pG,EAAElnC,EAAE,OAAOA,EAAErhE,GAAGpB,EAAE2pG,EAAElnC,EAAE,UAAUA,EAAEr7F,GAAG44B,EAAE2pG,EAAElnC,EAAE,WAAWA,EAAEi3M,IAAI15Q,EAAE2pG,EAAElnC,EAAE,uBAAuBA,EAAEinc,IAAI1pgB,EAAE2pG,EAAElnC,EAAE,kBAAkBA,EAAEknc,IAAI3pgB,EAAEusgB,GAAG,SAAStsgB,EAAElqC,GAAG,MAAG,oBAAoBkqC,EAASD,EAAEwqC,EAAEvqC,EACvflqC,EAAE,CAACy1iB,MAAK,MAAKvrgB,EAAED,EAAEA,EAAE38C,OAAO,GAAG48C,IAAKurgB,MAAK,EAAUxrgB,EAAEwqC,EAAEvqC,EAAElqC,KAAIiqC,EAAEC,EAAE,eAAeD,EAAEusgB,IAAI,WAAY,SAAStsgB,EAAED,EAAE8mE,EAAE/lD,GAAqB,GAAlBA,EAAEA,GAAG,IAAIs2C,EAAY,iBAAVr3D,EAAE8mE,EAAE9mE,KAA0B,OAAOA,GAAGA,IAAIiS,GAAGjS,aAAauD,QAAQvD,aAAa6oB,MAAM7oB,aAAaogB,QAAQpgB,aAAagK,QAAQhK,aAAam8D,QAAQ,OAAOn8D,EAAE,IAAI+jG,EAAE/jG,aAAalgD,MAAM,GAAG,GACxS,OAD2SihE,EAAEloC,KAAKmnB,EAAE+jG,GAC3S,SAAW/jG,EAAEC,GAAG,GAAGD,aAAalgD,MAAM,CAAC,IAAI,IAAIiW,EAAE,EAAEA,EAAEiqC,EAAEnlD,OAAOkb,IAAIkqC,EAAElqC,GAAG,mBAAmBiqC,EAAE80G,QAAQ70G,EAAE,eAAe,IAAIlqC,KAAKiqC,EAAEC,EAAElqC,GAD4KA,CAAEiqC,GAAE,SAASjqC,GAAG,IAAIshG,EAAEyP,EAAE9mE,EAAEjqC,IAAI,cAAcshG,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,WAAW0sC,EAAEhuI,GAAGshG,EAAE,MAAM,IAAK,SAAS,IAAK,YAAY,IAAI5sB,EAAE1pB,EAAE3mD,IAAIi9F,GAAG0sC,EAAEhuI,GAAG00E,IACjfx4B,EAAEw4B,EAAExqC,EAAEo3D,EAAEyP,EAAE/lD,OAAagjF,EAAuI,SAAS1sC,IAAI98G,KAAK+G,KAAK,GAAG/G,KAAK4Z,OAAO,GAAG6rC,EAAEwsgB,GAAG,SAASz2iB,GAAG,GAAG,GAAGzT,UAAUzH,OAAO,MAAM+0C,MAAM,8DAA8D,OAAOqQ,EAAElqC,GAAE,SAASkqC,GAAG,IAAI,IAAIlqC,EAAE,EAAEiqC,EAAE0iE,EAAEziE,IAAI,GAAGlqC,EAAEA,IAAIkqC,EAAEA,IAAI,OAAOA,MAAKD,EAAE80G,OAAO,SAAS70G,EAAElqC,EAAEshG,GAAa,OAAVp3D,EAAED,EAAEwsgB,GAAGvsgB,GAAUD,EAAEA,EAAEwmgB,GAAGvmgB,EAAElqC,EAAEshG,IAAIA,EAAEt3G,UAAU,CAACgJ,YAAYsuG,EAAEx+E,KAAK,SAASonB,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAEy1a,EAAEl7d,KAAK+G,KACvf2+C,GAAG,GAAGo3D,EAAE98G,KAAK4Z,OAAOkjG,GAAGthG,GAAGxb,KAAK+G,KAAKnG,KAAK8kD,GAAG1lD,KAAK4Z,OAAOhZ,KAAK4a,KAAKqE,IAAI,SAAS6lC,GAAwB,OAAO,IAA5BA,EAAED,EAAEA,EAAEy1a,EAAEl7d,KAAK+G,KAAK2+C,IAAe1lD,KAAK4Z,OAAO8rC,GAAGgS,IAF9C,GAEsDjS,EAAEC,EAAE,OAAOD,EAAEwsgB,IAAIxsgB,EAAEC,EAAE,SAASD,EAAE80G,QAAQ90G,EAAEysgB,GAAG,SAASxsgB,EAAElqC,EAAEshG,GAAG,SAASt8G,EAAEgb,GAAG,IAAIhb,EAAEilD,EAAEusgB,GAAGtsgB,EAAEo3D,GAAGh0G,OAAO,CAACqpjB,GAAG,WAAW3oa,EAAEhpJ,EAAE2Q,WAAU,SAASs0C,GAAGA,IAAI+jG,EAAE38H,IAAIrR,EAAEiqC,OAAiC,OAA3BjlD,EAAEm6E,kBAAkBn6E,EAAEqmD,KAAY2iG,EAAE,MAAM,oBAAoBrrG,SAAS3iC,EAAEhb,EAAEgb,EAAE/Q,KAAKqyG,IAAI,IAAI3+D,QAAQ39C,IAAIilD,EAAEC,EAAE,OAAOD,EAAEysgB,IAAgBzsgB,EAAEgkG,EAAE,CAACgsK,EAAE,SAAS/vQ,GAAG,OAAOD,EAAEA,EAAE4pG,EAAE3pG,IAAI,IAAK,SAAS,OAAM,IAAKA,EAAE0sgB,8BACze3sgB,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAED,EAAEjqC,EAAEpB,QAAQi4iB,IAAI,GAAG5sgB,EAAEA,EAAEuigB,EAAEtigB,EAAE8jf,iBAAiB,UAAU9jf,EAAE8jf,iBAAiB,SAASv+N,UAAUvlR,EAAE9jD,MAAM8jD,EAAE/iD,KAAK+iD,EAAE9jD,MAAM,IAAK,SAAS,OAAO,GAAG8jD,EAAEj3B,cAAcg3B,EAAEgkG,EAAEgsK,EAAE/vQ,EAAEtrC,QAAQsrC,EAAEj3B,gBAAgBipC,EAAE,QAAQ,OAAOhS,EAAE9jD,QAAQomI,GAAG,SAAStiF,EAAElqC,EAAEshG,GAAG,OAAOr3D,EAAEA,EAAE4pG,EAAE3pG,IAAI,IAAK,SAAS,kBAAkBlqC,GAAGiqC,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAED,EAAEjqC,EAAEpB,QAAQi4iB,GAAG36f,GAAG,kCAAkChS,UAAUA,EAAE0sgB,8BAA8B1sgB,EAAE9jD,MAAM4Z,IAAIiqC,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAED,EAAEjqC,EAAEpB,QAAQi4iB,GAAG72iB,GAAGkqC,EAAE0sgB,+BAA8B,EAAG1sgB,EAAE9jD,MAAM,kBACne4Z,EAAEA,EAAE,IAAI,MAAM,IAAK,SAAY,KAAKA,GAAG,OAAOA,IAAEA,EAAEk8C,GAAE,IAAI,IAAgC8xF,EAA5BhpJ,GAAG,EAAE+rH,EAAE,EAAE/lD,EAAE9gB,EAAEtrC,QAAQ9Z,OAASisH,EAAE/lD,IAAI+lD,EAAE,IAAGi9B,EAAE/jG,EAAEgkG,EAAEgsK,EAAE/vQ,EAAEtrC,QAAQmyG,MAAO/wG,GAAG,KAAKguI,GAAGhuI,IAAIk8C,EAAE,CAACl3D,EAAE+rH,EAAE,OAASzP,GAAG,GAAGt8G,GAAGgb,IAAIk8C,GAAG,EAAEhS,EAAEltC,QAAKktC,EAAEj3B,cAAcjuB,EAAE,IAAIilD,EAAEA,EAAEuigB,GAAGvigB,EAAEA,EAAE5iD,YAAW,WAAW6iD,EAAEj3B,cAAcjuB,IAAG,IAAG,MAAM,QAAW,OAAOgb,GAAGA,IAAIk8C,IAAEl8C,EAAE,IAAGkqC,EAAE9jD,MAAM4Z,KAASiqC,EAAEC,EAAE,mBAAmBD,EAAEgkG,GAAGhkG,EAAEC,EAAE,6BAA6BD,EAAEgkG,EAAEgsK,GAAGhwQ,EAAEC,EAAE,8BAA8BD,EAAEgkG,EAAEzhB,IAAIviF,EAAEgS,EAAE,WAAW,SAAS/R,EAAEA,GAAe,OAAZA,EAAED,EAAEA,EAAEglgB,GAAG/kgB,IAAW0L,WAAW,KAAK1L,EAAEA,EAAEjgD,MAAM,GACzf,IAAa,IAAsB2xF,EAAlB57E,EAAE,GAAGshG,GAAlBp3D,GAAG,OAAmB/jC,MAAMnhB,GAAK05M,EAAE,GAAG1wD,EAAE,EAAE,GAAG,EAAE1sC,EAAEx8G,OAAO,CAAC,IAAI,IAAQovJ,EAAJ1+I,EAAE,EAAI0+I,EAAE5yC,EAAE9rG,KAAKA,EAAE,CAAC,IAAIw9L,EAAE9+C,EAAEt+F,WAAW,GAAG,GAAG,KAAKo9I,GAAG,GAAG,GAAGhlD,EAAE,CAAChuI,EAAE5a,KAAKw2F,GAAG8iH,EAAE55M,OAAO,CAAC0G,IAAIowF,EAAEx1F,MAAMs4M,EAAEjpM,KAAK,KAAK,CAACqhjB,QAAQl7d,GAAG8iH,EAAEjpM,KAAK,MAAMmmF,EAAEoyD,EAAE,EAAE0wD,EAAE,GAAG,eAAe,GAAG,KAAK1L,GAAG,IAAIhlD,IAAIpyD,GAAG,IAAI8iH,EAAE55M,OAAO,CAAC82F,EAAE8iH,EAAE9hK,MAAM,cAAe,IAAG,KAAKo2J,GAAG,EAAE9+C,EAAEpvJ,SAAS,KAAKovJ,EAAEt+F,WAAW,IAAI,KAAKs+F,EAAEt+F,WAAW,IAAI,SAAc,KAAKo9I,GAAGx9L,GAAG,EAAE0+I,EAAEpvJ,QAAQkuM,EAAE1xF,EAAE9rG,EAAE,GAAG2Q,MAAM4qG,MAAM/lD,EAAEgoI,EAAE,MAAiC1xF,GAA3Bp3D,EAAEA,EAAE/0C,OAAO+0C,EAAEv/C,QAAQupJ,GAAG,IAAO/tI,MAAMnhB,GAAGwQ,GAAG,EAAE0+I,EAAE,KAAK,KAAK8+C,GAAG,MAAMA,GAAG,KAAKA,IAAIhlD,EACpf,KAAKglD,GAAG,MAAMA,GAAG,KAAKA,IAAIhlD,EAAEpyD,GAAG8iH,EAAE55M,QAAQ,KAAKkuM,GAAG,KAAKA,IAAI9+C,EAAEA,EAAEjqJ,MAAM,GAAG,IAAIy0M,EAAEt5M,KAAK8uJ,GAAG,GAAG,EAAElG,EAAE,MAAMn0G,MAAM,+CAAgD,OAAO75B,EAAE,IAAIA,EAAE,CAAC,OAAO,QAAQ,OAAO,aAAashG,EAAE,uDAAuDt8G,EAAEwoD,OAAO,4KAA4K,KAAKujE,EAAE,uBAAuB/lD,EAAE,CAAC,GAAK,EAAE,OAAS,EAAE,OAAS,GACrfgjF,EAAE,GAAG,MAAM,CAAC+oa,GAAG,GAAGC,GAAGhpa,EAAEipa,GAAG/sgB,EAAEgtgB,GAAG,SAASlyjB,EAAE+rH,GAAG,SAASr8B,EAAExqC,EAAEllD,GAAG,IAAI+rH,EAAE,IAAIv7G,EAAE,CAAC,IAAI2mD,EAAElS,EAAEktgB,kBAAkBjtgB,GAAG,GAAGiS,GAAGA,EAAEi7f,cAAcpyjB,EAAEm3D,EAAEi7f,WAAWpyjB,EAAEklD,EAAEwqC,IAAI,QAAUv4B,EAAE6xF,EAAE9jG,MAAG6mE,EAAE/rH,EAAE,GAAGilD,EAAEA,EAAEy1a,EAAE1/c,EAAE+wG,GAAGA,GAAE,GAAI50D,EAAE40D,EAAE5qG,MAAMm7F,GAAGyP,EAAE,OAAO50D,IAAKA,EAAE,GAAG,UAAUA,EAAE,GAAG,IAAIA,EAAE,GAAG40D,IAAG50D,EAAE40D,GAAE50D,GAAGuiJ,EAAEt5M,KAAK,KAAK,iBAAiB4oJ,EAAE9jG,GAAG8jG,EAAE9jG,GAAGA,GAAG,kBAAkB6mE,EAAE,QAAQ/lD,IAAIhmE,EAAE,qBAAqBA,EAAE,MAAM42F,EAAEx2F,KAAK,IAAI8kD,EAAE,KAAKllD,GAAW,IAAI42F,EAAE,GAAG8iH,EAAE,GAAG1zI,GAAtB+lD,EAAEA,GAAG,IAAqBsmc,eAAe7hjB,EAAEu7G,EAAEumc,cAAcpja,EAAE,kBAAkBlvJ,EAAEklD,EAAEllD,GAAGA,EAC/Y,OADiZilD,EAAEA,EAAEwjgB,EAAEv5Z,GAAE,SAASjqG,GAAGyqC,EAAEzqC,EAAEz+C,KAAKy+C,EAAE6sgB,QACpf7sgB,EAAE7jD,UAASs4M,EAAE55M,QAAQ4vF,EAAE,uBAAuB,IAAIgqH,EAAEjpM,KAAK,KAAK,MAAammF,EAAEnmF,KAAK,MAAM8hjB,GAAG,SAASttgB,EAAEC,GAAG,IAAI,IAAIlqC,EAAE,EAAEA,EAAEiqC,EAAEnlD,OAAOkb,IAAI,GAAGiqC,EAAEjqC,GAAGxU,KAAK0+C,EAAE,OAAM,EAAG,OAAM,GAAIstgB,GAAG,SAASttgB,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAM7mE,GAAGD,EAAE0iE,EAAEziE,IAAID,EAAEiqgB,GAAGhqgB,IAAI6mE,GAAG7mE,EAAEmB,MAAMrmD,GAAGklD,EAAEllD,IAAYklD,EAAElqC,EAAEqE,IAAI,0BAA0B6lC,EAAEo3D,IAAGp3D,EAAEo3D,GAAGt8G,KAJuJ,GAI/IilD,EAAEC,EAAE,sBAAsBD,EAAEgS,GAAGhS,EAAEC,EAAE,+CAA+CD,EAAEgS,EAAE86f,IAAI9sgB,EAAEC,EAAE,yCAAyCD,EAAEgS,EAAEg7f,IAAIhtgB,EAAEC,EAAE,yCAAyCD,EAAEgS,EAAEi7f,IAAIjtgB,EAAEC,EAAE,sCAC5eD,EAAEgS,EAAE+6f,IAAI/sgB,EAAEC,EAAE,0BAA0BD,EAAEgS,GAAGhS,EAAEC,EAAE,0DAA0DD,EAAEgS,EAAEi7f,IAAI,WAAY,SAAShtgB,EAAED,GAAG,OAAO,GAAGA,EAAEu1B,UAAUxU,EAAEtjC,KAAKqpF,EAAE9mE,EAAE9iD,KAAK8iD,EAAEo9D,WAAW,SAASrnG,EAAEiqC,GAAG,OAAO,GAAGA,EAAEu1B,UAAUwuE,EAAEtmH,KAAKqpF,EAAE9mE,EAAE9iD,KAAK8iD,EAAEo9D,WAAW,SAAS/F,EAAEA,EAAEt8G,GAAG,IAAI,IAAI+rH,EAAEzP,EAAE0sC,EAAE,EAAEhjF,EAAE,GAAG+lD,EAAEA,EAAE7J,aAAa,CAAC,GAAGlnG,EAAE+wG,KAAK9mE,EAAEA,EAAE+gB,EAAExB,IAAIunD,EAAE50D,GAAE,GAAQ,MAAJ6xF,GAAW,OAAOhjF,EAAEA,EAAE5lE,KAAK2rH,GAAG7mE,EAAE6mE,IAAIi9B,IAAI,IAAIhpJ,EAAE,MAAM60C,MAAM,6CAA6CynE,EAAE+F,WAAW,OAAO,KAAK,SAASriH,EAAEilD,EAAEC,GAAG,IAAIlqC,EAAEshG,EAAEr3D,EAAEC,GAAG,OAAOlqC,EACtf,EAAEA,EAAElb,OAAOkb,EAAEA,EAAElb,OAAO,GAAGoiH,YAAYj9D,EAAEi9D,YAAY,KAAK,IAAI6J,EAAEk9B,GAAG,sBAAsBA,EAAEjd,cAAc,QAAQ7pI,KAAK6jE,EAAE+lD,EAAE,2CAA2C,8BAA8Bi9B,EAAEj9B,EAAE,4BAA4B,eAAe90D,EAAE,CAACw7f,IAAG,EAAGC,IAAG,GAAIv7f,EAAE,2BAA2BlS,EAAE+jG,EAAE,CAAC2na,GAAG,GAAGvuc,WAAW,SAASn9D,GAAG,OAAOC,EAAED,GAAGq3D,EAAEr3D,GAAGA,EAAEm9D,YAAYuwc,GAAG,SAAS33iB,GAAG,GAAGkqC,EAAElqC,GAAwB,IAAI,IAAIshG,EAAE,EAAEt8G,GAAhCgb,EAAEiqC,EAAE+jG,EAAE5mC,WAAWpnG,IAAmBlb,OAAOw8G,EAAEt8G,EAAEs8G,IAAIr3D,EAAEu9B,WAAWxnE,EAAEshG,SAASr3D,EAAEA,EAAEukgB,GAAGxuiB,IAAI6uiB,GAAG,SAAS7uiB,EAAEshG,GAAG,GAAGp3D,EAAElqC,GAAG,CAACiqC,EAAE+jG,EAAE2pa,GAAG33iB,GAAG,IAAI,IAAIhb,EACxfgb,EAAEknG,YAAY6J,EAAE,EAAE50D,EAAEmlD,EAAEx8G,OAAOisH,EAAE50D,EAAE40D,IAAI/rH,EAAE4pB,WAAWw3G,aAAa9kB,EAAEyP,GAAG/rH,QAAQilD,EAAEA,EAAE4kgB,GAAG7uiB,EAAEshG,IAAIs2c,GAAG,SAAS3tgB,EAAEjqC,GAAG,IAAIshG,EAAEp3D,EAAED,IAAIq3D,EAAEr3D,EAAEi9D,YAAYj9D,EAAEA,EAAEr7B,YAAY0yF,EAAEr3D,EAAEs9D,WAAWjG,EAAEthG,IAAIshG,GAAGr3D,EAAEm8E,aAAapmH,EAAEshG,GAAGr3D,EAAE+xB,YAAYh8D,IAAI63iB,GAAG,SAAS73iB,EAAEshG,EAAEt8G,GAAGA,GAAGA,EAAEA,EAAEkiH,YAAYh9D,EAAElqC,KAAKA,EAAEA,EAAE4O,YAAY5pB,EAAEs8G,IAAIt8G,GAAGgb,EAAEomH,aAAa9kB,EAAEt8G,GAAGgb,EAAEg8D,YAAYslC,IAAIr3D,EAAE+jG,EAAE4pa,GAAG53iB,EAAEshG,IAAIiG,WAAW,SAASt9D,GAAG,GAAGC,EAAED,GAAG,OAAOA,EAAEi9D,aAAalnG,EAAEiqC,EAAEi9D,aAAa,KAAKj9D,EAAEi9D,YAAY,GAAGj9D,EAAEs9D,YAAYvnG,EAAEiqC,EAAEs9D,YAAY,MAAM1tE,MAAM,oDACndoQ,GAAG,OAAOA,EAAEs9D,YAAYL,YAAY,SAAS5F,GAAkB,GAAfp3D,EAAEo3D,KAAKA,EAAEt8G,EAAEs8G,IAAOA,EAAE4F,aAAalnG,EAAEshG,EAAE4F,aAAa,CAAC,IAAI6J,EAAEzP,EAAE4F,YAAY,GAAGlnG,EAAE+wG,KAAK9mE,EAAEA,EAAE+gB,EAAE3mD,IAAI0sG,EAAE50D,GAAG,MAAMtiB,MAAM,qEAAqEynE,GAAG,OAAO,KAAK,OAAOA,EAAE4F,aAAa4wc,GAAG5tgB,EAAE6tgB,GAAG,SAAS9tgB,GAAG,OAAOA,GAAG8mE,EAAE9mE,EAAE9iD,KAAK8iD,EAAEo9D,WAAWlhG,MAAM6kD,IAAI/gB,EAAE,GAAG,MAAM+tgB,GAAG,SAAS12c,GAAG,GAAGrlD,EAAEhS,EAAEA,EAAE4pG,EAAEvyC,IAAI,CAAC,IAAIyP,EAAEzP,EAAEiG,WAAW,GAAGwJ,EAAG,GAAG,GAAG,IAAIA,EAAEvxC,SAAS,CAAC,IAAIrjB,EAAqB6xF,EAAE,KAAK,GAA1B7xF,EAAE40D,EAAExJ,WAA4B,GAAG,GAAGymC,EAAEA,EAAE5oJ,KAAK+2D,QAAQ,GAAGjS,EAAEiS,GAAG,CAAC,IAAI6O,EAAEhmE,EAAEm3D,GAAE,GAAI6O,EAAE7O,EACnf6O,EAAEgjF,EAAE,CAAC7xF,QAAQn8C,EAAEm8C,KAAK6xF,EAAE,CAAC7xF,UAAUA,EAAEA,EAAE+qD,aAAa,GAAG/qD,EAAE6xF,EAAE,IAAIA,EAAEj9B,EAAE7J,YAAYl8C,EAAE,EAAEA,EAAE7O,EAAEr3D,OAAOkmE,IAAIgjF,EAAE1sC,EAAE8kB,aAAajqE,EAAE6O,GAAGgjF,GAAG1sC,EAAEtlC,YAAY7f,EAAE6O,WAAU+lD,EAAEA,EAAE7J,gBAJtC,GAI2Dj9D,EAAEC,EAAE,kBAAkBD,EAAE+jG,GAAG/jG,EAAEC,EAAE,kCAAkCD,EAAE+jG,EAAE2na,IAAI1rgB,EAAEC,EAAE,4BAA4BD,EAAE+jG,EAAE2pa,IAAI1tgB,EAAEC,EAAE,8BAA8BD,EAAE+jG,EAAE6pa,IAAI5tgB,EAAEC,EAAE,0BAA0BD,EAAE+jG,EAAE4pa,IAAI3tgB,EAAEC,EAAE,qCAAqCD,EAAE+jG,EAAE6ga,IAAgB5kgB,EAAEkiQ,GAAG,WAAW3nT,KAAKwgU,GAAG,IAAI/6Q,EAAEA,EAAE38C,OAAO28C,EAAEkiQ,GAAGniT,UAAU,CAACiujB,gBAAgB,SAAS/tgB,GAAG,OAAOA,EAAEs1B,UAAU,KAAK,EAAE,OAAO,MAC9hBt1B,EAAE17C,aAAa,cAAcy7C,EAAE8kC,EAAEmpe,wBAAwBhugB,GAAG,KAAK,EAAE,OAAOD,EAAE+jG,EAAE8pa,GAAG5tgB,GAAG,QAAQ,OAAM,IAAKiugB,YAAY,SAASjugB,EAAElqC,GAAG,IAAkCshG,GAA9BA,EAAE98G,KAAK4zjB,kBAAkBlugB,EAAElqC,IAAOxb,KAAK6zjB,oBAAoB/2c,EAAEthG,EAAEkqC,GAAG,KAAK,OAAOD,EAAE8kC,EAAEupe,GAAGh3c,EAAEp3D,EAAElqC,GAAE,IAAKu4iB,oBAAoB,SAASrugB,EAAElqC,GAAG,IAAkCshG,GAA9BA,EAAE98G,KAAK4zjB,kBAAkBlugB,EAAElqC,IAAOxb,KAAK6zjB,oBAAoB/2c,EAAEthG,EAAEkqC,EAAE,CAACmtgB,gBAAe,IAAK,KAAK,OAAOptgB,EAAE8kC,EAAEupe,GAAGh3c,EAAEp3D,EAAElqC,GAAE,IAAKo4iB,kBAAkB,SAASlugB,GAAG,OAAOA,EAAEs1B,UAAU,KAAK,EAAE,OAAOt1B,EAAE17C,aAAa,aAAa,KAAK,EAAE,OAAOy7C,EAAE+jG,EAAE+pa,GAAG7tgB,GAAG,QAAQ,OAAO,OACjgBmugB,oBAAoB,SAASnugB,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI,IAA4CgpJ,EAAxCj9B,EAAEvsH,KAAKwgU,GAAGh6P,EAAE9gB,GAAGllD,GAAGA,EAAEqyjB,gBAAgB,IAAM,KAAKrpa,EAAEj9B,EAAE/lD,IAAI,CAAC,IAAI/O,EAAEE,EAAE,yCAAyClS,EAAEgS,EAAEi7f,GAAGhtgB,EAAEllD,GAAG,MAAMi3D,EAAE,IAAIu0f,SAAS,WAAW,WAAWr0f,GAAG6xF,EAAEj9B,EAAE/lD,GAAG/O,EAAE,OAAO+xF,EAAEhuI,EAAEshG,GAAG,MAAM5sB,GAAG,MAAMA,EAAEzkD,QAAQ,8CAA8Cia,EAAE,cAAcwqC,EAAEzkD,QAAQykD,MAAOzqC,EAAEkiQ,GAAGv5S,SAAS,IAAIq3C,EAAEkiQ,GAAOliQ,EAAEC,EAAE,kBAAkBD,EAAEkiQ,IAAI,WAAY,SAASjiQ,EAAEA,GAAG,IAAIlqC,GAAGkqC,EAAED,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAEkgE,KAAKlgE,EAAEmsgB,EAAEr2iB,IAAIkqC,EAAEmsgB,EAAE,KAAKr2iB,EAAEw4iB,MAAM,SAASx4iB,EAAEA,EAAEshG,EAAEt8G,GAAGR,KAAKi2E,KAAKz6D,EAAExb,KAAKi0jB,GACvfn3c,EAAE98G,KAAK4sJ,GAAG,GAAG5sJ,KAAKg1O,GAAE,EAAGl4H,EAAE+0c,GAAGpsgB,EAAEA,EAAEsigB,EAAEkD,GAAGzviB,EAAEkqC,GAAGllD,GAAGA,EAAEqxjB,IAAIrxjB,EAAEqxjB,EAAEjla,GAAGhsJ,KAAK4a,GAAGxb,KAAKk0jB,GAAG1zjB,GAAG,SAASs8G,EAAEr3D,GAAG,OAAO,WAAW,OAAOA,GAAG,SAASjlD,EAAEilD,GAAG,OAAOA,IAAI,SAAS8mE,EAAE7mE,GAAG,OAAOD,EAAEA,EAAEskgB,GAAGtkgB,EAAE+oJ,EAAEg+W,EAAE9mgB,IAAG,SAASD,EAAEjqC,GAAG,OAAO,WAAW,OAAOkqC,IAAIlqC,OAAM,SAASgrD,EAAE9gB,EAAElqC,EAAEhb,GAAG,MAAM,oBAAoBklD,EAAE6mE,EAAE7mE,EAAEj7C,KAAK,KAAK+Q,EAAEhb,IAAIilD,EAAEA,EAAEskgB,GAAGrkgB,EAAEo3D,GAAG,SAAS0sC,EAAE/jG,EAAEC,GAAG,OAAO6mE,EAAEvsH,KAAK2zjB,YAAYlpjB,KAAKzK,KAAKylD,EAAEC,IAAI,SAAS+R,EAAE/R,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAE+jG,EAAEzmC,WAAWvnG,GAAG,GAAGshG,EAAE,CAAC,IAAIt8G,EAAE+rH,EAAE9mE,EAAEkiQ,GAAGv5S,SAAS8hF,EAAEq8B,EAAE4nc,eAAe,GAAGjke,EAAE,CAAC,KAAK1vF,EAAEs8G,GAAGA,EAAEr3D,EAAE+jG,EAAE9mC,YAAYliH,GAAG0vF,EAAEzvF,KAAK8rH,EAAE/rH,GACnfs8G,EAAEr3D,EAAE+jG,EAAEzmC,WAAWvnG,GAAG,KAAKhb,EAAEs8G,GAAGA,EAAEr3D,EAAE+jG,EAAE9mC,YAAYliH,GAAGm3D,EAAEjS,EAAEllD,GAAGilD,EAAE15C,EAAEomjB,GAAG32iB,EAAEiqC,EAAE15C,EAAEipO,GAAG,SAASr9K,EAAEjS,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEllD,EAAE,IAAIgb,EAAEw/D,SAASx6E,GAAGilD,EAAE+jG,EAAEgqa,GAAGh4iB,IAAMhb,GAAGilD,EAAEkiQ,GAAGv5S,SAASqljB,gBAAgBj4iB,MAAGshG,EAAE1lB,EAAE57E,EAAE,KAAKkqC,GAAG0ugB,8BAA6Bt3c,IAAI0xF,EAAE/oJ,EAAEA,EAAE4pG,EAAE7zI,KAAKi8C,EAAEqlD,EAAEthG,GACxK,SAAS47E,EAAE1xC,EAAElqC,EAAEshG,GAAG,IAAoKt2C,EAAhK+lD,EAAE9mE,EAAEA,EAAE+gB,EAAE6lf,GAAG3mgB,EAAEkgE,EAAE,IAAIjuD,EAAE40D,EAAE8nc,GAAG,IAAI74iB,EAAE,CAAC,GAAGm8C,EAAE,MAAMtiB,MAAM,iEAAiEk3E,EAAE8nc,IAAG,EAA0C,GAAvC18f,IAAI40D,EAAE5xG,QAAQmiG,GAAGyP,EAAE+nc,KAAK/nc,EAAE+nc,GAAG,IAAa94iB,GAAG,oBAAoBA,EAAEgrD,EAAEhrD,MAAM,CAAC,IAAI47E,EAAE3xC,EAAEkiQ,GAAGv5S,SAAS8rM,EAAE9iH,EAAE28d,qBAAqBvqa,EAAE/xF,EAAEhS,EAAE/3C,GAAE,WAAsE,OAAxD84D,EAAEhrD,EAAEA,EAAEshG,EAAEp3D,GAAGw0J,EAAEz5M,KAAK22F,EAAE1xC,EAAEo3D,MAAOA,EAAE5mD,IAAG4mD,EAAE5mD,KAAQ4mD,EAAE4yC,IAAG5yC,EAAE4yC,MAAYlpF,IAAG,KAAK,CAAC0pB,EAAExqC,IAAI8gB,GAAG/O,EAAE0nQ,OAAO1nQ,EAAE,MAAM,IAAQ+2I,EAAJx9L,EAAE8rG,EAAI,GAAGt2C,EAAE,CAAC,IAAImif,EAAE,WAAW,OAAOljgB,EAAEA,EAAEskgB,GAAGtyf,EAAEA,IAClf+O,EAAEhmE,IAAI+lE,EAAE9O,EAAE,SAAShS,GAAG,OAAO,WAAW,OAAOjlD,EAAEi3D,IAAIhS,MAAM,SAASA,GAAG,OAAO+gB,EAAE/gB,IAAIkjgB,EAAE9oiB,IAAI,SAAS4lC,GAAG,OAAO+gB,EAAE/gB,IAAIjlD,EAAE+lE,EAAE9gB,KAAKkjgB,EAAE9uhB,IAAI,SAAS4rB,GAAG,OAAOA,KAAK+gB,GAAG/gB,EAAE15C,EAAEipO,KAAKxuK,GAAG/gB,EAAE15C,EAAEoF,UAAUu0C,EAAED,EAAE15C,EAAEipO,GAAE,WAAW,IAAIx5N,GAAE,EAAGgrD,EAAE/gB,EAAE15C,EAAEipO,MAAM,GAAGx5N,EAAE,CAAC,IAAIshG,EAAEr3D,EAAE+jG,EAAE5mC,WAAWl9D,GAAGo3D,EAAEx8G,QAAQkb,EAAEshG,EAAEr3D,EAAE8ugB,GAAGz3c,EAAE,SAAQr3D,EAAE15C,EAAE60T,MAAMp6P,IAAIx1D,EAAEy0C,EAAE15C,EAAEyojB,GAAG9ugB,EAAEo3D,GAAGr3D,EAAE15C,EAAEoF,UAAUu0C,EAAED,EAAE15C,EAAE60T,IAAG,WAAW,IAAIplT,GAAE,EAAGgrD,EAAE/gB,EAAE15C,EAAE60T,OAAOplT,GAAGiqC,EAAE+jG,EAAEzmC,WAAWr9D,IAAIlqC,EAAEkqC,OAAM6mE,EAFlK,SAAW7mE,GAAG,IAAIlqC,EAAE,GAAGshG,EAAE,GAAGt8G,EAAE,GAClN,OADqNilD,EAAEA,EAAExH,EAAEyH,GAAE,SAAS0gQ,EAAG75L,GAAG,IAAIzP,EAAEyP,GAAG,CAAC,IAAI50D,EAAElS,EAAEktgB,kBAAkBpmc,GAAG50D,IAAIA,EAAEktG,QAAQrkK,EAAEI,KAAK2rH,GAAG9mE,EAAEA,EAAEwjgB,EAAEtxf,EAAEktG,OAAM,SAASrpJ,GAAG,GAAGkqC,EAAElqC,GAAG,CAAC,IAAI,IAAIiqC,EAAEA,EAAEy1a,EAAE16d,EAAEgb,GAAG,MAAM65B,MAAM,iFAAiF70C,EAAEyQ,KAAK,OAC3fm1S,EAAG5qS,OAAMhb,EAAEF,UAAUkb,EAAE5a,KAAK,CAACoG,IAAIulH,EAAEkoc,GAAG98f,KAAKmlD,EAAEyP,IAAG,MAAa/wG,EACiV00E,CAAE1pB,GAAG/gB,EAAEA,EAAEwjgB,EAAE18b,GAAE,SAAS/wG,GAAG,IAAIshG,EAAEthG,EAAEi5iB,GAAGl7iB,KAAK/Y,EAAEgb,EAAEi5iB,GAAGp2iB,OAAOkuG,EAAE/wG,EAAExU,IAAI,GAAG,IAAI0+C,EAAEs1B,WAAWv1B,EAAE+jG,EAAE2na,GAAG5kc,GAAG,MAAMl3E,MAAM,gBACvfk3E,EAAE,0CAA0C,IAAI,mBAAmBzP,GAAGr3D,EAAE+oJ,EAAEg+W,GAAE,WAAW,IAAI/mgB,EAAEq3D,EAAEp3D,EAAE6gB,EAAEgmD,GAAGo8b,EAAE33iB,EAAE6J,MAAM7J,GAAG,GAAGy0C,GAAGA,EAAEvhC,2BAA2B,CAAC,GAAGsqL,IAAI92I,EAAE,MAAMriB,MAAM,sBAAsBm5J,EAAE,QAAQjiF,EAAE,gIAAgIiiF,EAAEjiF,MAAK,mBAAmB/rH,GAAGilD,EAAE/3C,GAAE,WAAWlN,EAAEklD,EAAE6gB,EAAEgmD,GAAGo8b,EAAE33iB,EAAE6J,MAAM7J,KAAI,KAAK,CAACk/E,EAAExqC,IAAI,MAAMiS,GAAG,MAAMA,EAAElsB,QAAQ,8BAA8B8gF,EAAE,KAAK/lD,EAAE+lD,GAAG,eAAe50D,EAAElsB,QACjfksB,MAAc,MAAM,CAAC+8f,sBAAfnoc,EAAEiiF,IAAI92I,EAAiC08f,6BAA6B7nc,GAAGv7G,GAAG,SAASkpM,EAAEx0J,EAAElqC,GAAG,OAAOkqC,GAAGA,aAAaD,EAAE4hQ,GAAG3hQ,EAAE,IAAID,EAAE4hQ,GAAG3hQ,EAAEgS,EAAEA,EAAEl8C,GAAG,IAAI06C,EAAEzQ,EAAEA,EAAEkmgB,GAAG,iBAAiB36iB,EAAEy0C,EAAEA,EAAEkmgB,GAAG,wBAAwBj8Z,EAAEjqG,EAAEA,EAAEkmgB,GAAG,mBAAmBlmgB,EAAEjqC,EAAE,GAAG,IAAIgzL,EAAE,CAAC7sI,QAAO,EAAGlgB,UAAS,EAAG93B,UAAS,GAAI87B,EAAEktgB,kBAAkB,SAASjtgB,GAAG,OAAOD,EAAEjqC,EAAEkqC,IAAI,IAAIijgB,EAAE,GAAGljgB,EAAE4hQ,GAAG,SAAS3hQ,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,SAAS50D,IAAI,IAAIjS,EAAE0xC,EAAEoyD,IAAIA,EAAEj9B,EAAE9mE,EAAEA,EAAE8mE,EAAE7mE,GAC1T,OAD6TlqC,GAAGiqC,EAAEA,EAAE38C,OAAOonF,EAAE10E,GAAGxK,KAAKwK,IAAI00E,EAAEl/E,GAAGwK,EAAExK,MAAMk/E,EAAE1hE,SAAS,GAAG0hE,EAAEn1E,MAAMwxG,EAAEr8B,EAAExnF,GAAG+8C,GAAGyqC,EAAEh6B,GAAGgkJ,EAAE1zI,EAAE+lD,EAAEr8B,EAAEr1E,OAAOq1E,EAAEyke,SAClfjvgB,EAAEwqC,EAAEr1E,MAAM0xG,GAAGzP,IAAI5sB,EAAE4sB,GAAGyP,GAAG/rH,GAAGA,EAAE0vF,EAAE10E,EAAE+wG,GAAM/wG,GAAGA,EAAE06C,KAAKzQ,EAAEwvL,EAAEhlJ,IAAIohe,GAAG71iB,EAAE06C,KAAI16C,EAAE06C,KAAKuB,IAAIy4B,EAAEw/D,GAAGj4F,GAAUy4B,EAAEr1E,MAAM,IAA2Dq/L,EAAvDhqH,EAAElwF,KAAKwmE,EAAE9gB,IAAIijgB,EAAEn/Z,EAAEhjF,EAAE9O,EAAEhS,EAAE0xC,EAAE,mBAAmBoyD,IAAI/jG,EAAE0iE,EAAEqhC,GAAK/xF,EAAE80D,GAAGA,EAAEqoc,eAAeroc,GAAGA,EAAEsoc,mBAAmBl9f,MAAKuiJ,EAAEz0J,EAAEusgB,GAAGr6f,IAAK9Q,IAAIqzJ,EAAEilH,KAAKjlH,EAAE4tH,iBAAiB,KAAK53O,EAAEh6B,GAAGwB,IAAIjS,EAAE4hQ,GAAG7hT,UAAU0hB,mBAAmB,SAASw+B,EAAElqC,EAAEshG,EAAEt8G,GAAsD,IAAlDA,GAAGgb,GAAG,iBAAiBA,IAAQA,GAAJhb,EAAEgb,GAAM4iT,GAAGthN,EAAEt8G,EAAEsI,QAAW0S,GAAGhb,GAAGA,EAAEs0jB,eAAe,CAAC,IAAIvoc,EAAE,mBAAmB7mE,IAAID,EAAE0iE,EAAEziE,GAAG,OAAO,IAAID,EAAE4hQ,GAAGshQ,EAAE3ojB,KAAK,MAAK,SAASylD,GAAGq3D,GAAGA,EAAEr3D,GAAGA,EAAEjqC,GAAG+wG,EAAE7mE,IAAIA,IAAGllD,GAAG,OAAO,IAAIilD,EAAE4hQ,GAAG3hQ,EACpgB1lD,KAAKwb,GAAE,SAASiqC,EAAEC,GAAGD,EAAEsvgB,eAAervgB,EAAED,EAAE3rC,QAAQ4rC,EAAE7qC,MAAM4qC,EAAEj3B,UAAUk3B,EAAEl3B,UAAU,IAAI/oB,MAAM,GAAGggD,EAAEj3B,SAAS0uI,QAAQz3G,EAAE3rC,SAASgjG,GAAGA,EAAEr3D,KAAIjlD,IAAIilD,EAAE4hQ,GAAG7hT,UAAUsD,OAAO,SAAS48C,EAAElqC,GAAG,OAAO,IAAIiqC,EAAE4hQ,GAAGshQ,EAAE3ojB,KAAK,MAAK,SAASwb,GAAGiqC,EAAEA,EAAE38C,OAAO0S,EAAE,mBAAmBkqC,EAAEA,EAAElqC,GAAGkqC,KAAIlqC,IAAI,IAAIoqG,EAAEngE,EAAEA,EAAE+gB,EAAE2vP,IAAI36S,EAAEhW,UAAUwujB,GAAG,WAAWh0jB,KAAKk0jB,IAAIl0jB,KAAKk0jB,GAAGrC,GAAG7xjB,KAAKk0jB,GAAGrC,EAAE3wP,GAAGlhU,KAAKi2E,OAAOz6D,EAAEhW,UAAU07T,GAAG,SAASx7Q,GAAGD,EAAEA,EAAE8jgB,GAAGvpjB,KAAK4sJ,GAAGlnG,IAAI1lD,KAAK4sJ,GAAGtsJ,QAAQN,KAAKg1O,GAAGh1O,KAAKg1jB,MAAMx5iB,EAAEhW,UAAUwvjB,GAAG,WAAWh1jB,KAAKg1O,GAAE,EAAGh1O,KAAKi0jB,GAAGpC,IAAI7xjB,KAAK4sJ,GAAGtsJ,SAASN,KAAKi0jB,GAAGpC,EACtf,KAAKpsgB,EAAEA,EAAEsigB,EAAEwE,GAAGvsjB,KAAKi2E,KAAKvwB,GAAGD,EAAE15C,EAAEomjB,GAAGnyjB,KAAKi2E,KAAKxwB,EAAE15C,EAAE60T,IAAI5gU,KAAKg0jB,OAAOvugB,EAAE15C,EAAE,CAACipO,EAAE,mBAAmB4rF,GAAG,sBAAsBzvT,UAAU,SAASu0C,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,IAAI50D,EAAElS,EAAEA,EAAE+gB,EAAE6lf,GAAG3mgB,EAAEkgE,EAAE,IAAyE,OAArEjuD,EAAEs9f,KAAKt9f,EAAEs9f,GAAG,IAAIxvgB,EAAEqigB,GAAGv7b,GAAGA,EAAE2oc,mBAAmBv9f,EAAE28f,GAAG94iB,IAAIiqC,EAAE+oJ,EAAEg+W,EAAE1vc,EAAEt8G,EAAE,CAACklD,IAAWiS,EAAEs9f,GAAG9jjB,UAAU2rG,EAAEt8G,EAAEgb,IAAI22iB,GAAG,SAASzsgB,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAEkgE,GAAG,GAAG9I,IAAIA,EAAEw3c,GAAG94iB,IAAG,EAAGshG,EAAEm4c,IAAIn4c,EAAEm4c,GAAGt6e,kBAAkBj1B,EAAElqC,GAAGA,GAAGiqC,EAAE15C,EAAEipO,GAAG,GAAGl4H,EAAE+0c,EAAE/0c,EAAE+0c,EAAEmD,UAAU,GAAGl4c,EAAE+0c,IAAIn6f,GAAGolD,EAAEm4c,IAAIn4c,EAAEm4c,GAAG3G,GAAG7ogB,EAAE15C,EAAE60T,IAAI,MAAMvrR,MAAM,sEAChbm/gB,GAAG,SAAS9ugB,EAAEo3D,GAAG,IAAIt8G,EAAEilD,EAAEA,EAAE+gB,EAAE6lf,GAAG3mgB,EAAEkgE,EAAE,IAA+B,OAA3BplH,EAAEqxjB,IAAIrxjB,EAAEqxjB,EAAE,IAAIr2iB,EAAEkqC,EAAEllD,EAAEs8G,EAAE9rG,KAAY8rG,EAAE9rG,IAAIxQ,EAAEs8G,EAAEA,EAAEh0G,QAAO,SAAS28C,GAAGA,EAAEz0C,GAAGxQ,OAAMilD,EAAE0vgB,GAAG,SAASzvgB,GAAG,OAAOA,EAAED,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAEkgE,KAAKlgE,EAAE/qC,SAAS8qC,EAAE2vgB,GAAG,SAAS1vgB,EAAElqC,EAAEshG,GAA6B,OAA1B,IAAIp3D,EAAEs1B,UAAUv1B,EAAE+jG,EAAEgqa,GAAG9tgB,GAAU0xC,EAAE1xC,EAAElqC,EAAE0+L,EAAEp9F,KAAKr3D,EAAE4vgB,GAAG,SAAS3vgB,EAAElqC,EAAEshG,GAAU,OAAPA,EAAEo9F,EAAEp9F,GAAUr3D,EAAE2vgB,GAAG1vgB,EAAE8gB,EAAEhrD,EAAEshG,EAAEp3D,GAAGo3D,IAAIr3D,EAAE6vgB,GAAG,SAAS7vgB,EAAEC,GAAG,IAAIA,EAAEs1B,UAAU,IAAIt1B,EAAEs1B,UAAUvjB,EAAEyiJ,EAAEz0J,GAAGC,IAAID,EAAE8vgB,GAAG,SAAS9vgB,EAAEC,EAAElqC,GAA8B,IAA1BqrC,GAAGq0a,EAAEx3K,SAAS78P,EAAEq0a,EAAEx3K,QAAW,EAAE37S,UAAUzH,QAAQ,KAAGolD,EAAE+jG,EAAElhH,MAAQ,MAAM8M,MAAM,sFAChc,IAAIqQ,GAAG,IAAIA,EAAEs1B,UAAU,IAAIt1B,EAAEs1B,SAAS,MAAM3lC,MAAM,sGAAsGsiB,EAAEuiJ,EAAEz0J,EAAEjqC,GAAGkqC,IAAID,EAAE+vgB,GAAG,SAAS9vgB,GAAG,OAAOA,GAAG,IAAIA,EAAEs1B,UAAU,IAAIt1B,EAAEs1B,SAAStjB,EAAEjS,EAAE0vgB,GAAGzvgB,IAAID,EAAE8ugB,GAAG,SAAS7ugB,GAAG,OAAOA,EAAED,EAAE+vgB,GAAG9vgB,IAAIA,EAAE7qC,MAAM68C,GAAGjS,EAAEC,EAAE,kBAAkBD,EAAEjqC,GAAGiqC,EAAEC,EAAE,eAAeD,EAAE15C,GAAG05C,EAAEC,EAAE,yBAAyBD,EAAE15C,EAAEoF,WAAWs0C,EAAEC,EAAE,gDAAgDD,EAAE15C,EAAEyojB,IAAI/ugB,EAAEC,EAAE,gBAAgBD,EAAE8vgB,IAAI9vgB,EAAEC,EAAE,6BAA6BD,EAAE6vgB,IACtf7vgB,EAAEC,EAAE,8BAA8BD,EAAE2vgB,IAAI3vgB,EAAEC,EAAE,sBAAsBD,EAAE4vgB,IAAI5vgB,EAAEC,EAAE,aAAaD,EAAE+vgB,IAAI/vgB,EAAEC,EAAE,UAAUD,EAAE8ugB,IAZwR,GAYhR,SAAU7ugB,GAAG,SAASlqC,EAAEA,EAAEhb,GAAG,IAAuD0vF,EAAnDv4B,EAAE7wD,OAAOtB,UAAUsxE,eAAer2E,KAAK8rH,EAAE/wG,GAAG+wG,EAAE/wG,GAAGkqC,EAAIiS,EAAEA,EAAExmD,UAAU3Q,KAAIm3D,EAAE40D,EAAE/wG,GAAG,IAAIiqC,EAAEqigB,GAAI32iB,UAAU3Q,GAAGs8G,EAAEthG,GAAE,SAASkqC,EAAEo3D,GAAG,IAAIt8G,KAAKs8G,IAAIA,EAAE2qG,aAAajhJ,EAAEhrD,GAAG,CAACi6iB,WAAW/vgB,EAAEgwgB,GAAGl1jB,UAAU+rH,EAAE/wG,GAAG00E,GAAG1vF,EAAEm3D,EAAEgjB,kBAAkBj1B,GAAGD,EAAEyngB,GAAGE,IAAG,WAAWz1f,EAAEgjB,kBAAkBj1B,SAAOwqC,GAAE,GAAI,SAAS4sB,EAAEr3D,EAAEC,GAAGllD,EAAE,YAAY,CAACilD,IAAG,SAASjqC,GAAGA,EAAEhb,EAAE,gBAAgB,CAACilD,EAAEjqC,IAAG,SAASiqC,GAAGC,EAAED,EACtfjqC,MAAKkqC,EAAE,KAAK,SAAQ,SAASllD,EAAEgb,EAAEshG,EAAEyP,EAAEr8B,GAAGA,IAAIA,EAAEzqC,EAAE8kC,EAAEore,QAAQlwjB,MAAM,IAAI,IAAI+gE,EAAE0pB,EAAElqB,QAAQ,GAAGQ,EAAE,CAAC,IAAI0zI,EAAE1zI,EAAEhrD,GAAG,GAAG0+L,EAAE,CAAC,IAAIhkJ,GAAE,EAAG,GAAGgkJ,EAAEl0L,MAAMwgD,EAAEs2C,EAAElhF,QAAO,SAAS6pB,GAAGyQ,EAAEq2D,EAAE,MAAM,OAAO9mE,EAAE8mE,EAAE9mE,GAAGjlD,EAAEgb,EAAEshG,EAAEyP,EAAEr8B,SAAQxqC,IAAIwQ,GAAE,GAAIsQ,EAAEovf,0BAA0B,MAAMvghB,MAAM,8GAA+G70C,EAAEgb,EAAEshG,EAAEyP,EAAEr8B,QAAQq8B,EAAE,MAAM,IAAIA,EAAE,GAAG/lD,EAAE,GAAG/gB,EAAE8kC,EAAE,CAAC1qE,IAAI,SAASi9F,EAAEt8G,GAAG,IAAI+rH,EAAEzlH,OAAOtB,UAAUsxE,eAAer2E,KAAK+lE,EAAEs2C,GAAGt2C,EAAEs2C,GAAGp3D,EAAE6mE,EAAEA,EAAEmpc,GAAGjwgB,EAAE+oJ,EAAEg+W,GAAE,WAAWhsjB,EAAE+rH,EAAEkpc,eAC/ehwgB,EAAEyngB,GAAGE,IAAG,WAAW5sjB,EAAE+rH,EAAEkpc,eAAcj6iB,EAAEshG,EAAEt8G,IAAIq1jB,GAAG,SAASpwgB,UAAU+gB,EAAE/gB,IAAIqwgB,GAAGt1jB,GAAGilD,EAAE8kC,EAAEore,QAAQ,GAAGlwgB,EAAEC,EAAE,aAAaD,EAAE8kC,GAAG9kC,EAAEC,EAAE,iBAAiBD,EAAE8kC,EAAE1qE,KAAK4lC,EAAEC,EAAE,mCAAmCD,EAAE8kC,EAAEsre,IAFtE,GAE8E,WAAY,SAASnwgB,EAAEA,EAAElqC,EAAEshG,EAAEt8G,GAAG,SAASgmE,IAAI,MAAMkpF,GAAGlvJ,EAAEgpJ,GAAG,IAAIA,EAAE,GAAGkG,EAAE,EAAE8+C,EAAE1xF,EAAEnzF,SAASmzF,EAAEA,EAAEpjG,UAAU80L,EAAEjiF,EAAE/wG,EAAEgzL,GAAE,SAAShzL,GAAGiqC,EAAE8kC,EAAEure,GAAG,eAAe,CAACpwgB,EAAElqC,IAAG,SAASiqC,GAAG+jG,EAAE7/H,SAAS87B,EAAE+gB,UAAQA,IAAIs2C,EAAEyP,EAAE/wG,EAAEshG,GAAE,SAASthG,GAAGiqC,EAAE8kC,EAAEure,GAAG,gBAAgB,CAACpwgB,EAAElqC,IAAG,SAASiqC,GAAG+jG,EAAE/xF,GAAGhS,EAAE+gB,UAAQA,IAAI,SAAShrD,EAAEiqC,EAAEC,EAAEo3D,GAAG,GAAG,oBAAoBp3D,EAAEo3D,GAAE,SAASr3D,GAAG,OAAO,IAAIC,EAAED,WAC9gB,GAAG,oBAAoBC,EAAE+R,GAAGqlD,EAAEp3D,EAAE+R,SAAS,GAAG,aAAa/R,EAAE,CAAC,IAAIllD,EAAEklD,EAAEt3C,SAAS0uG,GAAE,WAAW,OAAOt8G,SAAQ,cAAcklD,EAAElqC,EAAEiqC,EAAEC,EAAEhsC,UAAUojG,GAAGr3D,EAAE,4BAA4BC,GAAG,SAASo3D,EAAEp3D,GAAG,OAAOD,EAAEA,EAAE4pG,EAAE3pG,IAAI,IAAK,SAAS,OAAOD,EAAEA,EAAEm5E,GAAGl5E,EAAE/iD,MAAM,IAAK,WAAW,OAAO8iD,EAAEA,EAAEm5E,GAAGl5E,EAAE9jD,OAAO,IAAK,WAAW,GAAGpB,EAAEklD,EAAE5kC,SAAS,OAAO2kC,EAAEA,EAAE2kgB,GAAG1kgB,EAAE5kC,QAAQ8hG,YAAY,OAAOn9D,EAAEA,EAAE2kgB,GAAG1kgB,EAAEk9D,YAAY,SAASpiH,EAAEilD,GAAG,OAAOy1a,EAAE66F,iBAAiBtwgB,aAAaswgB,iBAAiBtwgB,GAAG,KAAKA,EAAEu1B,SAAS,SAASuxC,EAAE9mE,EAAEC,EAAElqC,GAAG,kBAAkBkqC,EAAEqqC,QAC3f+3d,GAAG5sF,EAAEnrY,SAAS+3d,GAAG5sF,EAAEnrY,SAAS,CAACrqC,EAAEqqC,UAAS,SAAStqC,GAAGA,GAAG,kBAAkBA,GAAGA,EAAEuwgB,IAAIvwgB,EAAC,UAAcA,EAAEA,EAAC,SAAajqC,EAAEiqC,MAAKA,EAAE,8CAA8CjqC,EAAEkqC,GAAG,SAAS8gB,EAAE/gB,GAAG,OAAO,SAASC,GAAG,MAAMrQ,MAAM,cAAcoQ,EAAE,MAAMC,IAAK,IAAI8jG,EAAE,GAAG/jG,EAAE8kC,EAAEjV,SAAS,SAAS5vB,EAAElqC,GAAG,IAAIA,EAAE,MAAM65B,MAAM,6BAA6BqQ,GAAG,GAAGD,EAAE8kC,EAAE0re,GAAGvwgB,GAAG,MAAMrQ,MAAM,aAAaqQ,EAAE,0BAA0B8jG,EAAE9jG,GAAGlqC,GAAGiqC,EAAE8kC,EAAE0re,GAAG,SAASxwgB,GAAG,OAAO3+C,OAAOtB,UAAUsxE,eAAer2E,KAAK+oJ,EAAE/jG,IAAIA,EAAE8kC,EAAE2re,WAAW,SAASxwgB,UAAU8jG,EAAE9jG,GAC9fD,EAAE8kC,EAAEsre,GAAGnwgB,IAAID,EAAE8kC,EAAE4re,GAAG,CAAC16O,UAAU,SAAS/1R,EAAElqC,GAAGA,EAAEiqC,EAAE8kC,EAAE0re,GAAGvwgB,GAAG8jG,EAAE9jG,GAAG,OAAO0wgB,cAAc,SAAS3wgB,EAAEjqC,EAAEshG,GAAG,IAAIt8G,EAAEgmE,EAAE/gB,GAAG8mE,EAAE/rH,EAAEgb,GAAE,SAASA,GAAGkqC,EAAED,EAAEjlD,EAAEgb,EAAEshG,OAAMu5c,aAAa,SAAS3wgB,EAAElqC,EAAE+wG,GAAU,GAAP7mE,EAAE8gB,EAAE9gB,GAAM,kBAAkBlqC,EAAE+wG,EAAE9mE,EAAEA,EAAEm5E,GAAGpjH,SAAS,GAAGA,aAAajW,MAAMgnH,EAAE/wG,QAAQ,GAAGhb,EAAEgb,GAAG+wG,EAAE9mE,EAAEA,EAAEykgB,GAAG1uiB,EAAEonG,kBAAkB,GAAGpnG,EAAE1b,QAAQ,GAAG0b,EAAEA,EAAE1b,QAAQo7d,EAAEo7F,YAAY96iB,aAAa86iB,YAAY96iB,GAAGA,EAAE+mM,SAAS,IAAI/mM,EAAEw/D,SAASuxC,EAAEzP,EAAEthG,SAAS,GAAG,kBAAkBA,EAAE,CAAC,IAAIguI,EAAEC,EAAEhnJ,eAAe+Y,GAAGguI,EAAEj9B,EAAEzP,EAAE0sC,IAAI9jG,EAAE,+BAA+BlqC,QAAQkqC,EAAE,yBAClflqC,QAAQkqC,EAAE,2BAA2BlqC,IAAI+6iB,cAAc,SAAS9wgB,EAAEC,EAAEo3D,GAAGthG,EAAEgrD,EAAE/gB,GAAGC,EAAEo3D,KAAK,IAAIrlD,EAAE,kBAAkBhS,EAAEC,EAAE,sBAAsBD,EAAE8kC,EAAEjV,UAAU7vB,EAAEC,EAAE,0BAA0BD,EAAE8kC,EAAE0re,IAAIxwgB,EAAEC,EAAE,wBAAwBD,EAAE8kC,EAAE2re,YAAYzwgB,EAAEC,EAAE,2BAA2BD,EAAE8kC,EAAE4re,IAAI1wgB,EAAE8kC,EAAEore,QAAQ/0jB,KAAK6kD,EAAE8kC,EAAE4re,IAAI1wgB,EAAE8kC,EAAEise,GAAGhta,EAJzG,GAI+G,WAAY,SAAS9jG,EAAEA,EAAEllD,GAAkC,GAA3B+rH,EAAE7mE,EAAE17C,aAAa,UAAe,CAAC,IAAIuiH,EAAE/wG,EAAEq4iB,oBAAoBtnc,EAAE/rH,EAAEklD,EAAE,CAACmtgB,gBAAe,EAAGC,eAAc,IAAuDtsf,GAAlD+lD,EAAE9mE,EAAEA,EAAEskgB,GAAGx9b,GAAE,SAAS/wG,GAAG,OAAOiqC,EAAEwqC,EAAEz0E,EAAE,KAAK,CAAC00E,EAAExqC,OAAQD,EAAEA,EAAEskgB,GAAGx9b,GACxf,SAAS/wG,GAAG,IAAIhb,EAAEgb,EAAEqrC,IAAI,OAAOrrC,EAAE2jT,KAAK15Q,EAAEwqC,EAAE,CAACx/E,KAAK,WAAW,OAAOg1C,EAAEA,EAAE8mE,EAAE/wG,MAAM5K,MAAM60C,EAAEiqgB,GAAGlvjB,IAAI,SAASilD,GAAGjqC,GAAAA,CAAIiqC,IAAIyqC,EAAExqC,IAAIllD,MAA+D,OAA3DsG,OAAOtB,UAAUsxE,eAAer2E,KAAK+lE,EAAE,UAAUA,EAAEiwf,KAAKlqc,GAAU/lD,EAAE,MAAM,CAACiwf,KAAK,IAAIhxgB,EAAE8kC,EAAEmpe,wBAAwB,SAAShugB,GAAG,IAAIlqC,EAAEiqC,EAAEA,EAAE4pG,EAAE3pG,GAAG,GAAGD,EAAE8kC,EAAE0re,GAAGz6iB,MAAM,GAAGA,EAAErV,QAAQ,MAAM,+BAA+B,GAAGu/C,GAAG,GAAGD,EAAEA,EAAEuigB,GAAGtigB,EAAE68J,UAAU/mM,GAAG,OAAOA,GAAGiqC,EAAE8kC,EAAEupe,GAAG,SAASt4iB,EAAEhb,EAAE+rH,EAAE/lD,GAAG,GAAG,IAAIhmE,EAAEw6E,SAAS,CAAC,IAAIwuE,EAAE/jG,EAAE8kC,EAAEmpe,wBAAwBlzjB,GAAG,GAAGgpJ,EAAE,CAAS,IAARhuI,EAAEA,GAAG,IAAQ6S,UAAU,MAAMgnB,MAAM,+EAC3e,IAAIoiB,EAAE,CAACjqD,KAAKg8I,EAAEznH,OAAO2jB,EAAEllD,EAAE+rH,IAAI/wG,EAAE6S,UAAUm4C,EAAE,WAAW,OAAO/O,GAAGA,GAAG,OAAOj8C,GAAG,IAAIA,EAAE,IAAIiqC,EAAEkiQ,GAAG,EAAEliQ,EAAEA,EAAEuigB,IAAIvigB,EAAE8kC,EAAEjV,SAAS,SAAS7vB,GAAG,OAAO,SAASC,GAAG,OAAOD,EAAEz/B,MAAMhmB,KAAK+H,YAAnD,CAAgE09C,EAAE8kC,EAAEjV,UAAUm0E,EAAE5oB,uBAAuB,SAASn7E,GAAG,OAAO,WAAW,IAAmB8gB,EAAfhrD,EAAEkqC,IAAI6mE,EAAE9mE,EAAE8kC,EAAEise,GAAK,IAAIhwf,KAAK+lD,GAAG,OAAO/wG,GAAtE,CAA0EiuI,EAAE5oB,yBAFc,GAEe,WAC5T,IAAI/jB,EAAE,EAAEr3D,EAAEjqC,EAAE6S,UAAU,CAAC9U,KAAK,SAAS/Y,EAAE+rH,EAAE/lD,EAAEgjF,EAAE/xF,GAAG,SAASE,IAAI,IAAIlS,EAAEyqC,GAAGA,EAAE9xE,QAAQ,oBAAoBqnC,GAAGA,EAAEhlD,KAAKyvF,GAAGgqH,GAAGA,EAAErtL,IAAIuqE,EAAElH,EAAEgqH,EAAE,KAAK,IAAIhqH,EAAEkH,EAAE8iH,EAAEhkJ,EAAEzQ,EAAEA,EAAEykgB,GAAGzkgB,EAAE+jG,EAAE5mC,WAAWpiH,IAC6B,OADzBilD,EAAE+jG,EAAE2pa,GAAG3yjB,GAAGilD,EAAEA,EAAEsigB,EAAEkD,GAAGzqjB,EAAEm3D,GAAGlS,EAAEwqC,GAAE,WAAW,IAAiBu5D,EAAEglD,EAAfhoI,EAAE/gB,EAAEA,EAAE8mE,EAAEA,KAAqE,GAA5D,kBAAkB/lD,EAAEgjF,EAAEhjF,GAAGgjF,EAAE/jG,EAAEA,EAAE8mE,EAAE/lD,EAAEh5D,MAAMghM,EAAE/oJ,EAAEA,EAAE8mE,EAAE/lD,EAAEzkC,UAAaynH,EAAE,MAAMn0G,MAAM,+BAA+B,IAAIqiB,EAAEjS,EAAE15C,EAAEyojB,GAAGh0jB,EAAEi3D,GAAGmuD,EAAExuB,IAAI0lB,EAAEr3D,EAAE8kC,EAAE1qE,IAAI2pI,GAAE,SAAS1sC,GAAG,GAAG1lB,IAAIwuB,EAAE,CAAK,GAAJjuD,KAAQmlD,EAAE,MAAMznE,MAAM,sBAAsBm0G,EAAE,MADpH,SAAW9jG,EAAElqC,EAAEshG,GAAgB,KAAbthG,EAAEA,EAAEmO,UAAe,MAAM0rB,MAAM,cAAcqQ,EAAE,qBAAqBA,EAAED,EAAEA,EAAE2kgB,GAAG5uiB,GAAGiqC,EAAE+jG,EAAE6ga,GAAGvtc,EAAEp3D,GACcA,CAAE8jG,EAAE1sC,EAAEt8G,GAAG,IAAI+rH,EADxB,SAAW9mE,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAE3jB,gBAAgB,OAAOg7E,EAAEA,EAAEr8G,KAAKglD,EACvfC,EAAElqC,GAAGkqC,EAAkdlqC,CAAEshG,EAAE0xF,EAAE,CAAC1uM,QAAQU,EAAEk2jB,cAAcxggB,IACtf4mD,EAAEplD,EAAExwC,mBAAmBqlG,EAAE,CAACzjH,OAAO,SAAS28C,GAAGA,EAAEkxgB,WAAWpqc,EAAE9mE,EAAEmxgB,wBAAwB1ggB,KAAKq2D,GAAGA,EAAEsqc,wBAAwB38W,EAAEz0J,EAAE15C,EAAEoF,UAAU3Q,EAAEilD,EAAE15C,EAAE60T,GAAGr0M,EAAEsqc,sBAAsBtqc,IAAIr8B,EAAEq8B,EAAE9mE,EAAE6vgB,GAAGx4c,EAAEt8G,SAAO,KAAK,CAAC0vF,EAAE1vF,IAAU,CAAC0jB,4BAA2B,KAAMuhC,EAAE+jG,EAAE2na,GAAG9iiB,WAAU,EAF+D,GAExD,IAAI6mN,EAAE,CAAC,MAAQ,YAAY,IAAM,WAAWzvL,EAAEjqC,EAAEoE,KAAK,CAACvB,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,MAAM,GAAGiqC,EAAEA,EAAExH,EAAE6+D,GAAE,SAASthG,EAAEshG,GAAGA,EAAEr3D,EAAEA,EAAE8mE,EAAEzP,GAAG,IAAIt2C,EAAEhrD,EAAErV,QAAQ,KAA0EqjJ,GAArEhjF,EAAE,uBAAuB9gB,GAAG,EAAE8gB,GAAG9gB,EAAEoxgB,mBAAmBt7iB,EAAE7K,OAAO,EAAE61D,KAAM,IAAKs2C,GAAG,OAChfA,GAAGA,IAAIplD,GAAE8xF,EAAEhjF,EAAE9gB,EAAEqxgB,kBAAkBvwf,EAAEhrD,GAAGkqC,EAAEs+D,gBAAgBxoG,GAAGshG,EAAEA,EAAEruG,WAAW,GAAGg3C,EAAEA,EAAEuigB,GAAGxsiB,KAAK05N,GAAG15N,EAAE05N,EAAE15N,GAAGguI,EAAE9jG,EAAEs+D,gBAAgBxoG,GAAGkqC,EAAElqC,GAAGshG,GAAG0sC,IAAIhjF,EAAE9gB,EAAE+td,eAAejtc,EAAEhrD,EAAEshG,GAAGp3D,EAAE5kD,aAAa0a,EAAEshG,IAAI,SAASthG,GAAGiqC,EAAEA,EAAE8lgB,GAAG7lgB,EAAE8jG,EAAE,GAAG1sC,QAAmBr3D,EAAEjqC,EAAEsrR,QAAQ,CAACjiI,MAAM,CAAC,QAAQ,QAAQtrJ,KAAK,SAASmsC,EAAElqC,EAAEshG,GAAG,SAASt8G,IAAI,IAAIA,EAAEklD,EAAEohP,QAAQv6K,EAAE/lD,IAAI,IAAI/gB,EAAEwvL,EAAEo6U,OAAO7ujB,IAAIi3D,IAAIhS,EAAEwvL,EAAEk6U,MAAM,CAAC,IAAIx3f,EAAElS,EAAE+oJ,EAAEg+W,EAAEhxiB,GAAG,GAAG00E,EAAE,CAAC,IAAIgqH,EAAE9iH,EAAEz/B,EAAE9Q,IAAI8Q,EAAEiuD,EAAE1vD,EAAEA,EAAEq2D,EAAE3G,IAAI2G,EAAE/rH,IAAIilD,EAAEA,EAAEyjgB,GAAGhvW,EAAE3tF,GAAE,GAAI9mE,EAAEA,EAAEyjgB,GAAGhvW,EAAEt0F,GAAE,IAAKngE,EAAEA,EAAEyjgB,GAAGhvW,EAAE3tF,EAAE/rH,GAAG42F,GAAG3xC,EAAEiqgB,GAAG/3f,IAAIA,EAAEuiJ,QAAQ1wD,IAAIj9B,IAAI70D,EAAE60D,EAAE/rH,EAAEA,IAAI+rH,EAAE70D,IAAIjS,EAAEgS,EAAEu7f,GAAGr7f,EACzfmlD,EAAE,UAAUyP,GAAE,IAAwG,IAAI/lD,EAAE/gB,EAAEusgB,IAAG,WAAW,OAAGl1c,EAAEjjF,IAAI,gBAAuB4rB,EAAEA,EAAE8mE,EAAEzP,EAAEj9F,IAAI,iBAAoBq6L,EAASp9F,EAAEjjF,IAAI,SAAS4rB,EAAEA,EAAE8mE,EAAEzP,EAAEj9F,IAAI,UAAU6lC,EAAE9jD,WAAnD,KAA2D4nJ,EAAE,YAAY9jG,EAAE/hC,KAAK8zC,EAAE,SAAS/R,EAAE/hC,KAAK,GAAG6lI,GAAG/xF,EAAE,CAAC,IAAIE,EAAEn8C,IAAI00E,EAAEs5D,GAAG/jG,EAAEA,EAAE8mE,EAAE50D,aAAapyD,MAAM6xF,IAAIlH,GAAGv4B,EAAE/2D,MAAM+2D,EAAEpoD,QAAQ2qM,EAAEziJ,GAAGy4B,EAAEh6B,EAAEg6B,EAAE1pB,IAAI9O,EAAED,IAAI/R,EAAEl4C,MAAMi4C,EAAEjqC,EAAEw7iB,WAAWz9iB,KAAKmsC,GAAE,WAAW,OAAM,KAAKD,EAAEwqC,EAAEzvF,EAAE,KAAK,CAAC0vF,EAAExqC,IAAID,EAAEA,EAAEiqG,EAAEhqG,EAAE,QAAQllD,GAAGilD,EAAEwqC,GAAld,WAAa,IAAI6sB,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAKhb,EAAEgmE,IAAI0pB,GAAGxqC,EAAEohP,QAAQ,GAAGrhP,EAAEA,EAAEy1a,EAAEp+W,EAAEt8G,GAAG01D,EAAE11D,GAAGklD,EAAEohP,QAAQt9I,GAAGhpJ,IAAIk3D,IAAIolD,EAAEt2C,MAAMs2C,IAAqX,KAAK,CAAC5sB,EAAExqC,IACjfiS,EAAED,KAAKjS,EAAEgS,EAAE+6f,GAAG1rR,SAAQ,EAAGrhP,EAAEjqC,EAAEy7iB,aAAa,CAAC54iB,OAAO,SAASqnC,EAAElqC,GAAGkqC,EAAE9jD,MAAM6jD,EAAEA,EAAE8mE,EAAE/wG,OAAWiqC,EAAEjqC,EAAF,MAAa,CAAC6C,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAEglgB,GAAGhlgB,EAAEA,EAAE8mE,EAAE/wG,MAAMiqC,EAAEA,EAAE0lgB,GAAGzlgB,EAAEA,EAAEwxgB,gBAAe,GAAIxxgB,EAAEwxgB,eAAep6c,EAAEr3D,EAAEA,EAAE0lgB,GAAGzlgB,EAAEo3D,GAAE,KAAMr3D,EAAEjqC,EAAEH,IAAI,CAACgD,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAK,OAAOshG,GAAG,iBAAiBA,EAAEr3D,EAAEA,EAAExH,EAAE6+D,GAAE,SAASthG,EAAEshG,GAAGA,EAAEr3D,EAAEA,EAAE8mE,EAAEzP,GAAGr3D,EAAEA,EAAE0lgB,GAAGzlgB,EAAElqC,EAAEshG,MAAKr3D,EAAEjqC,EAAF,MAAa6C,OAAOqnC,EAAElqC,KAAKiqC,EAAEjqC,EAAE++J,OAAO,CAACl8J,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAKshG,GAAGp3D,EAAEt6C,SAASs6C,EAAEs+D,gBAAgB,YAAYlH,GAAGp3D,EAAEt6C,WAAWs6C,EAAEt6C,UAAS,KAAMq6C,EAAEjqC,EAAEi0hB,QAClf,CAACpxhB,OAAO,SAASqnC,EAAElqC,GAAGiqC,EAAEjqC,EAAE++J,OAAOl8J,OAAOqnC,GAAE,WAAW,OAAOD,EAAEA,EAAE8mE,EAAE/wG,UAASiqC,EAAEjqC,EAAEhB,MAAM,CAACjB,KAAK,SAASmsC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,IAAI/lD,EAAEhrD,KAAK,GAAGiqC,EAAEA,EAAExH,EAAEuoB,GAAE,SAASA,GAAG,iBAAiBA,GAAG/gB,EAAEA,EAAEiqG,EAAEhqG,EAAE8gB,GAAE,SAAS9gB,GAAG,IAAIiS,EAAEu4B,EAAE10E,IAAIgrD,GAAG,GAAG0pB,EAAE,CAAC,IAAI,IAAIkH,EAAE3xC,EAAEA,EAAEykgB,GAAGnijB,WAAWvH,EAAE+rH,EAAE1xG,MAAMu8E,EAAE8lE,QAAQ18J,GAAGm3D,EAAEu4B,EAAElqE,MAAMxlB,EAAE42F,GAA/D,SAA0E,IAAKz/B,IAAIjS,EAAEr+C,eAAeq+C,EAAEr+C,iBAAiBq+C,EAAE29H,aAAY,IAAI,IAAKvmE,EAAEj9F,IAAI2mD,EAAE,YAAY9gB,EAAEwze,cAAa,EAAGxze,EAAEt+C,iBAAiBs+C,EAAEt+C,4BAA0Bq+C,EAAEjqC,EAAE27iB,QAAQ,CAACC,GAAG,SAAS1xgB,GAAG,OAAO,WAAW,IAAIlqC,EAAEkqC,IAAIo3D,EAAEr3D,EAAEA,EAAEmkgB,GAAGpuiB,GACpf,OAAIshG,GAAG,iBAAiBA,EAAEx8G,QAAgDmlD,EAAEA,EAAE8mE,EAAE/wG,GAAS,CAAC27iB,QAAQr6c,EAAEjvG,KAAKuwT,GAAGthN,EAAEshN,GAAG02P,eAAeh4c,EAAEg4c,eAAeuC,iBAAiBv6c,EAAEu6c,iBAAiBC,SAASx6c,EAAEw6c,SAASC,aAAaz6c,EAAEy6c,aAAah3Q,YAAYzjM,EAAEyjM,YAAYi3Q,WAAW16c,EAAE06c,WAAWC,UAAU36c,EAAE26c,UAAUt2S,eAAe17N,EAAE4igB,GAAGoH,KAA1R,CAAC0H,QAAQ37iB,EAAE2lQ,eAAe17N,EAAE4igB,GAAGoH,MAAiQl2iB,KAAK,SAASmsC,EAAElqC,GAAG,OAAOiqC,EAAEjqC,EAAEmO,SAASpQ,KAAKmsC,EAAED,EAAEjqC,EAAE27iB,QAAQC,GAAG57iB,KAAK6C,OAAO,SAASqnC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,OAAO9mE,EAAEjqC,EAAEmO,SAAStL,OAAOqnC,EAAED,EAAEjqC,EAAE27iB,QAAQC,GAAG57iB,GAAGshG,EAAEt8G,EAAE+rH,KAAK9mE,EAAEgS,EAAE86f,GAAG4E,SAAQ,EAAG1xgB,EAAE+jG,EAAE2na,GAAGgG,SACrf,EAAG1xgB,EAAEjqC,EAAEk8iB,SAAS,CAACn+iB,KAAK,SAASmsC,EAAElqC,EAAEshG,GAAG,SAASt8G,EAAEA,GAAGklD,EAAEiygB,uBAAsB,EAAG,IAAIprc,EAAE7mE,EAAEi7E,cAAc,GAAG,kBAAkBpU,EAAE,CAAC,IAAI/lD,EAAE,IAAIA,EAAE+lD,EAAE7kH,cAAc,MAAMwoF,GAAG1pB,EAAE+lD,EAAEhkF,KAAK/nC,EAAEgmE,IAAI9gB,EAAE6mE,EAAE/wG,IAAIiqC,EAAEgS,EAAEu7f,GAAGzmc,EAAEzP,EAAE,WAAWt8G,GAAE,GAAIklD,EAAEkygB,uBAAuBp3jB,EAAEklD,EAAEiygB,uBAAsB,EAAG,IAAIprc,EAAE/rH,EAAEiK,KAAK,MAAK,GAAI+7D,EAAEhmE,EAAEiK,KAAK,MAAK,GAAIg7C,EAAEA,EAAEiqG,EAAEhqG,EAAE,QAAQ6mE,GAAG9mE,EAAEA,EAAEiqG,EAAEhqG,EAAE,UAAU6mE,GAAG9mE,EAAEA,EAAEiqG,EAAEhqG,EAAE,OAAO8gB,GAAG/gB,EAAEA,EAAEiqG,EAAEhqG,EAAE,WAAW8gB,GAAG9gB,EAAEkygB,wBAAuB,GAAIv5iB,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,IAAIr3D,EAAEA,EAAE8mE,EAAE/wG,KAAKkqC,EAAEiygB,uBAAuBjygB,EAAEkygB,yBACne96c,IAAIA,EAAEp3D,EAAE3kD,QAAQ2kD,EAAE+C,QAAQq0D,GAAGp3D,EAAEkygB,wBAAwBlygB,EAAEi7E,cAAcp4F,KAAKxnC,QAAQ0kD,EAAE+oJ,EAAEg+W,EAAE/mgB,EAAEA,EAAEylgB,GAAG,KAAK,CAACxlgB,EAAEo3D,EAAE,UAAU,gBAAgBr3D,EAAEgS,EAAE+6f,GAAGkF,UAAS,EAAGjygB,EAAEjqC,EAAEk3H,SAASjtF,EAAEjqC,EAAEk8iB,SAASjygB,EAAEgS,EAAE+6f,GAAG9/a,SAAS,WAAWjtF,EAAEjqC,EAAEgsC,KAAK,CAACjuC,KAAK,WAAW,MAAM,CAAC2K,4BAA2B,IAAK7F,OAAO,SAASqnC,EAAElqC,GAAGiqC,EAAEA,EAAEkngB,GAAGjngB,EAAElqC,OAAO,WAAY,SAASkqC,EAAEA,EAAEo3D,EAAEt8G,GAAGilD,EAAEjqC,EAAEkqC,GAAG,CAACnsC,KAAK,SAASmsC,EAAElqC,EAAEguI,EAAE/xF,EAAEE,GAAG,IAAIu4B,EAAEkH,EAAOlhC,EAAEllD,EAAE0mD,EAATwiJ,EAAE,GAAS,GAAGp9F,EAAE,CAACrlD,EAAE+xF,EAAE3pI,IAAI,MAAM,IAAI2uL,EAAEhlD,EAAE3pI,IAAI,kBAA4Bq6L,EAAE,CAACkkH,GAAG3mQ,EAAEq9f,eAAetmX,EAAEqmX,mBAAnCn9f,IAAID,GAAG+2I,IAClE,OADoHx9L,GAAGklD,EACnf,UAAUszF,EAAE3pI,IAAI,gBAAgB2pI,EAAE3vH,IAAI4rB,EAAE15C,EAAE60T,IAAIn7Q,EAAEwqC,GAAE,WAAW,IAAgC1pB,EAA5BijF,EAAE/jG,EAAEA,EAAE8mE,EAAE/wG,KAAKi8C,GAAGj3D,KAAKgpJ,EAAEglD,GAAGp3G,GAAO1/B,GAAGD,IAAIy4B,KAAGl/E,IAAI2mD,EAAElS,EAAE15C,EAAEyojB,GAAG9ugB,EAAEiS,IAAOF,IAAOqlD,IAAGplD,IAAEwiJ,EAAE06W,eAAenvgB,EAAEwvL,EAAEhlJ,KAAI1pB,EAAEu2C,EAAEnlD,EAAEzwC,mBAAmB,mBAAmBsiI,EAAEA,EAAEhuI,EAAE0+L,GAAGz0J,EAAEwvL,EAAEk6U,KAAKx3f,EAAE7uD,OAAO,KAAKoxM,GAAGviJ,GAAE62I,GAAG/oJ,EAAEwvL,EAAEk6U,OAAO/3d,EAAE3xC,EAAEA,EAAE2kgB,GAAG3kgB,EAAE+jG,EAAE5mC,WAAWl9D,IAAG,IAAK+R,GAAG+2I,GAAG/oJ,EAAE+jG,EAAE6ga,GAAG3kgB,EAAED,EAAEA,EAAE2kgB,GAAGhzd,IAAI3xC,EAAE6vgB,GAAG/uf,EAAE7gB,KAAKD,EAAE+jG,EAAE2pa,GAAGztgB,GAAGwQ,GAAGzQ,EAAE15C,EAAEomjB,GAAGzsgB,EAAED,EAAE15C,EAAEipO,IAAI9kJ,EAAEz4B,KAAI,KAAK,CAACy4B,EAAExqC,IAAU,CAACxhC,4BAA2B,KAAMuhC,EAAEgS,EAAE86f,GAAG7sgB,IAAG,EAAGD,EAAE+jG,EAAE2na,GAAGzrgB,IAAG,EAAGA,EAAE,MAAMA,EAAE,SAAQ,GAAG,GAAIA,EAAE,QAAO,GAD7K,GACqLD,EAAEjqC,EAAEq8iB,IAAI,CAACt+iB,KAAK,SAASmsC,EAC/flqC,EAAEshG,EAAEt8G,EAAE+rH,GAA2B,OAAxB/wG,EAAE+wG,EAAEzjH,OAAO0S,GAAGiqC,EAAE6vgB,GAAG95iB,EAAEkqC,GAAS,CAACxhC,4BAA2B,KAAMuhC,EAAE+jG,EAAE2na,GAAG0G,KAAI,EAAG,IAY8RnygB,EAZ1RgwQ,EAAE,GAAGjwQ,EAAEjqC,EAAEpB,QAAQ,CAACb,KAAK,SAASmsC,GAAG,GAAG,WAAWD,EAAEA,EAAE4pG,EAAE3pG,GAAG,MAAMrQ,MAAM,mDAAmD,KAAK,EAAEqQ,EAAEplD,QAAQolD,EAAElkD,OAAO,GAAG,MAAM,CAAC0iB,4BAA2B,IAAK7F,OAAO,SAASqnC,EAAElqC,EAAEshG,GAAG,SAASt8G,IAAI,OAAOilD,EAAEA,EAAEikgB,GAAGhkgB,EAAEtrC,SAAQ,SAASqrC,GAAG,OAAOA,EAAEx4B,YAAW,SAASs/F,EAAE9mE,EAAEC,EAAElqC,GAAG,IAAIshG,SAASp3D,EAAE,MAAM,YAAYo3D,EAAEp3D,EAAED,GAAG,UAAUq3D,EAAEr3D,EAAEC,GAAGlqC,EAAE,SAASgrD,EAAEhrD,EAAEshG,GAAG,GAAG9rG,GAAGk/E,EAAEzqC,EAAE15C,EAAEomjB,GAAGzsgB,EAAED,EAAE15C,EAAEipO,QAAQ,GAAG9+K,EAAE51D,OAAO,CAAC,IAAIE,EAC/f,GAAGilD,EAAEA,EAAEy1a,EAAEhla,EAAEzQ,EAAEgkG,EAAEgsK,EAAE34M,EAAE,KAAKr3D,EAAEA,EAAE+kgB,GAAG1tc,EAAE,GAAGt8G,GAAGwQ,IAAIxQ,GAAGilD,EAAE+oJ,EAAEg+W,EAAE/mgB,EAAEA,EAAEylgB,GAAG,KAAK,CAACxlgB,EAAE,YAAY,IAAI8jG,EAAE9jG,EAAE2/Z,SAAS5tZ,EAAE,GAAG/R,EAAEplD,QAAQkpJ,EAAE9jG,EAAEze,UAAU,KAAK0wB,EAAElS,EAAEA,EAAE8mE,EAAE/wG,KAAK00E,EAAE4sB,EAAEj9F,IAAI,oBAAoBi9F,EAAEjjF,IAAI,SAASu9D,EAAE0lB,EAAEj9F,IAAI,2BAA2BrE,EAAE,GAAG,IAAI0+L,EAAEhkJ,EAAE,GAAGg6B,IAAIs5D,EAAEtzF,EAAEzQ,EAAEA,EAAEgkgB,GAAGjpjB,IAAIilD,EAAEgkG,EAAEgsK,GAAG,GAAG/vQ,EAAEj3B,eAAeynC,EAAEt1D,KAAK6kD,EAAEgkG,EAAEgsK,EAAE/vQ,EAAEtrC,QAAQsrC,EAAEj3B,kBAAkBkpC,IAAI,oBAAoBA,EAAEr3D,SAASq3D,EAAE,CAACA,IAAIuiJ,EAAEz0J,EAAEA,EAAEikgB,GAAG/xf,GAAE,SAASjS,GAAG,OAAO0xC,GAAG1xC,IAAIgS,GAAG,OAAOhS,IAAID,EAAEA,EAAE8mE,EAAE7mE,EAAEoqgB,aAAYhzc,EAAEjjF,IAAI,mBAAqD,QAAjC89B,EAAElS,EAAEA,EAAE8mE,EAAEzP,EAAEj9F,IAAI,qBAC5d83C,IAAID,GAAGwiJ,EAAEh9C,QAAQw4J,IAAK,IAAI1kT,GAAE,EAAGwK,EAAE+7iB,aAAa,SAAS9xgB,GAAGC,EAAEyH,YAAY1H,IAAIkS,EAAE6O,EAAEs2C,EAAEjjF,IAAI,uBAAuB,mBAAmBijF,EAAEj9F,IAAI,wBAAwB83C,EAAE,SAASjS,EAAElqC,GAAGgrD,EAAE,EAAEhrD,GAAGiqC,EAAE+oJ,EAAEg+W,EAAE1vc,EAAEj9F,IAAI,sBAAsB,KAAK,CAACrE,EAAE,GAAGkqC,IAAIgwQ,EAAEhwQ,EAAEgS,MAAMjS,EAAEA,EAAE66H,GAAG56H,EAAEw0J,GAAE,SAAS1+L,EAAEhb,EAAEgmE,GAC9P,OADiQA,EAAElmE,SAAS41D,GAAGg6B,GAAG1pB,EAAE,GAAGv5C,SAAS,CAACw4B,EAAEgkG,EAAEgsK,EAAEjvP,EAAE,KAAK,GAAGx1D,GAAE,GAAIxQ,EAAEklD,EAAEi7E,cAAcv9F,cAAc,UAAU5nB,IAAIk6S,GAAGjwQ,EAAEA,EAAE4lgB,GAAG7qjB,EAAEs8G,EAAEj9F,IAAI,mBAAmB4lC,EAAEgkG,EAAEzhB,GAAGxnI,EAAEk3D,KAAK8O,EAAE+lD,EAAE/wG,EAAEshG,EAAEj9F,IAAI,gBAAgBrE,GAAGiqC,EAAEgkG,EAAEzhB,GAAGxnI,EAAEilD,EAAEA,EAAE8mE,EAAE/lD,IAAIhrD,EAAE+wG,EAAE/wG,EAAEshG,EAAEj9F,IAAI,eAAe2mD,GAClf/gB,EAAEA,EAAE4lgB,GAAG7qjB,EAAEgb,IAAU,CAAChb,KAAIgb,EAAEm8C,GAAOu4B,IAASs5D,EAAItzF,EAAE51D,QAAQE,IAAIF,OAAO41D,EAAE51D,OAAS41D,EAAE51D,QAAQ,GAAGolD,EAAEj3B,cAAcg3B,EAAEgkG,EAAEgsK,EAAE/vQ,EAAEtrC,QAAQsrC,EAAEj3B,kBAAkBynC,EAAE,GAAGA,EAAE51D,QAAQ,GAAGolD,EAAEj3B,gBAAiBg3B,EAAE+oJ,EAAEg+W,EAAE/mgB,EAAEA,EAAEylgB,GAAG,KAAK,CAACxlgB,EAAE,YAAYwqC,GAAGzqC,EAAEwvL,EAAEo6U,OAAO5pgB,EAAE15C,EAAEomjB,GAAGzsgB,EAAED,EAAE15C,EAAEipO,GAAGvvL,EAAEA,EAAEgmgB,GAAG/lgB,GAAG+R,GAAG,GAAG9xC,KAAK23B,IAAIma,EAAE/R,EAAEze,aAAaye,EAAEze,UAAUwwB,KAAKhS,EAAEjqC,EAAEpB,QAAQi4iB,GAAG5sgB,EAAEA,EAAE+gB,EAAE2vP,IAAI1wQ,EAAEjqC,EAAEs8iB,gBAAgB,CAACv+iB,KAAK,SAASmsC,EAAElqC,EAAEshG,GAAG,SAASt8G,IAAI,IAAIA,EAAEgb,IAAI+wG,EAAE,GAAG9mE,EAAEA,EAAEwjgB,EAAEvjgB,EAAEpjB,qBAAqB,WAAU,SAASojB,GAAGA,EAAEz4B,UAAUs/F,EAAE3rH,KAAK6kD,EAAEgkG,EAAEgsK,EAAE/vQ,OAAMD,EAAEgS,EAAEu7f,GAAGxyjB,EAAEs8G,EAAE,kBAC1eyP,GAAG,SAASA,IAAI,IAAIzP,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAKhb,EAAEklD,EAAEze,UAAU61E,GAAG,iBAAiBA,EAAEx8G,QAAQmlD,EAAEA,EAAEwjgB,EAAEvjgB,EAAEpjB,qBAAqB,WAAU,SAASojB,GAAG,IAAIlqC,EAAE,GAAGiqC,EAAEA,EAAEy1a,EAAEp+W,EAAEr3D,EAAEgkG,EAAEgsK,EAAE/vQ,IAAIA,EAAEz4B,UAAUzR,GAAGiqC,EAAEA,EAAE+kgB,GAAG9kgB,EAAElqC,MAAKkqC,EAAEze,UAAUzmC,EAAE,GAAG,UAAUilD,EAAEA,EAAE4pG,EAAE3pG,GAAG,MAAMrQ,MAAM,2DAA2D,IAAImxB,EAAE/gB,EAAE15C,EAAEoF,UAAUu0C,EAAED,EAAE15C,EAAEipO,GAAE,WAAWxuK,EAAEhmE,KAAKilD,EAAEA,EAAEiqG,EAAEhqG,EAAE,SAASllD,GAAGgmE,EAAE/gB,EAAEwqC,EAAEs8B,EAAE,KAAK,CAACr8B,EAAExqC,OAAM,KAAK,CAACwvgB,mBAAkB,KAAM72iB,OAAO,cAAconC,EAAEgS,EAAE+6f,GAAGsF,iBAAgB,EAAGrygB,EAAEjqC,EAAEyC,MAAM,CAACI,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KACpf,IAAIiqC,EAAEA,EAAExH,EAAE6+D,GAAE,SAASthG,EAAEshG,GAA8C,GAA7B,QAAdA,EAAEr3D,EAAEA,EAAE8mE,EAAEzP,KAAgBA,IAAIplD,IAAG,IAAKolD,IAAEA,EAAE,IAAMj2D,EAAEA,EAAEnB,GAAGrqC,IAAIG,EAAEshG,QAAQ,GAAG,MAAM55E,KAAK1nB,GAAGkqC,EAAEznC,MAAM8iO,YAAYvlO,EAAEshG,OAAO,CAACthG,EAAEA,EAAEktC,QAAQ,UAAS,SAASjD,EAAEC,GAAG,OAAOA,EAAEggE,iBAAgB,IAAIl/C,EAAE9gB,EAAEznC,MAAMzC,GAAGkqC,EAAEznC,MAAMzC,GAAGshG,EAAEA,IAAIt2C,GAAG9gB,EAAEznC,MAAMzC,IAAIgrD,GAAGh9B,MAAMszE,KAAKp3D,EAAEznC,MAAMzC,GAAGshG,EAAE,YAAWr3D,EAAEjqC,EAAE2vhB,OAAO,CAAC5xhB,KAAK,SAASmsC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,GAAG,mBAAmB/wG,IAAI,MAAM65B,MAAM,qDAAqDoQ,EAAEA,EAAEiqG,EAAEhqG,EAAE,UAAS,SAASD,GAAG,IAAIq3D,EAAEt8G,EAAEgb,IAAI,IAAIshG,EAAEt8G,EAAEC,KAAK8rH,EAAE1xG,MAAM6qC,GAArB,SAAgC,IAAKo3D,IAAIr3D,EAAEp+C,eACnfo+C,EAAEp+C,iBAAiBo+C,EAAE49H,aAAY,SAAS59H,EAAEjqC,EAAE7Y,KAAK,CAAC4W,KAAK,WAAW,MAAM,CAAC2K,4BAA2B,IAAK7F,OAAO,SAASqnC,EAAElqC,GAAGiqC,EAAEA,EAAE4lgB,GAAG3lgB,EAAElqC,OAAOiqC,EAAE+jG,EAAE2na,GAAGxujB,MAAK,EAAG,WAAY,GAAGu4d,GAAGA,EAAEz8V,UAAU,CAAC,IAAwE3hB,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAA5E9jG,EAAE,SAASD,GAAG,GAAGA,EAAE,OAAO9P,WAAW8P,EAAE,KAAKjqC,EAAE0/c,EAAEz8V,UAAUI,WAAqB/hB,EAAEo+W,EAAE77V,OAAO67V,EAAE77V,MAAMyJ,SAAS7yF,SAASilb,EAAE77V,MAAMyJ,cAAc0gB,EAAE9jG,EAAElqC,EAAEmG,MAAM,qBAAqB+jC,EAAElqC,EAAEmG,MAAM,sBAAsBnhB,EAAEklD,EAAElqC,EAAEmG,MAAM,+BAA+B4qG,EAAE7mE,EAAElqC,EAAEmG,MAAM,wBAAwB6kD,EAAE/gB,EAAEA,EAAEuigB,GAAGtigB,EAAElqC,EAAEmG,MAAM,oBAC9e6kD,EAAE9gB,EAAElqC,EAAEmG,MAAM,iBAAiB,GAAG,GAAG6kD,GAAG,GAAGA,EAAE,IAAI/O,EAAEhS,EAAEA,EAAE+gB,EAAE2vP,IAAIx+P,EAAElS,EAAEA,EAAE+gB,EAAE2vP,IAAIjmO,EAAE,SAASxqC,GAAG,IAAIlqC,EAAExb,KAAK0H,eAAe8T,EAAEA,GAAGiqC,EAAEA,EAAE+gB,EAAE3mD,IAAIrE,EAAEm8C,KAAKn8C,EAAEkqC,IAAI0xC,EAAE,SAAS1xC,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEi7E,cAAcl7E,EAAEA,EAAE+gB,EAAE3mD,IAAIi9F,EAAErlD,KAAKhS,EAAEA,EAAE+gB,EAAExB,IAAI83C,EAAErlD,GAAE,GAAIhS,EAAEA,EAAEiqG,EAAE5yC,EAAE,kBAAkB5sB,IAAIzqC,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAEiS,EAAEn8C,IAAIiqC,EAAEjqC,EAAE47H,UAAU,CAAC79H,KAAK,SAASmsC,EAAElqC,EAAEm8C,GAAG,SAASu4B,EAAE10E,EAAEshG,GAAGr3D,EAAEA,EAAEiqG,EAAEhqG,EAAElqC,EAAEshG,GAAuI,SAASv2C,IAAIkjF,IAAI2F,EAAE1pG,EAAE9jD,MAAM6nJ,EAAEhkG,EAAEA,EAAE5iD,WAAW+iH,EACtf,IAAI,SAASA,IAAI1nF,aAAaurH,GAAG2F,EAAE3F,EAAE/xF,EAAE,IAAIolD,EAAEp3D,EAAE9jD,MAAMilD,IAAIi2D,IAAIj2D,EAAEi2D,EAAEr3D,EAAEgS,EAAEu7f,GAAGx3iB,IAAIm8C,EAAE,YAAYmlD,IAAI,IAAc2sC,EAAE2F,EAAZvoG,EAAEnB,EAAE9jD,MAAUs5d,EAAE,GAAGz1a,EAAEA,EAAEuigB,EAAEzhf,EAAEq/C,EAAEjoG,GAAE,EAAG6oD,GAAG0pB,EAAE,WAAW01B,GAAG,GAAGp/C,GAAG0pB,EAAE,kBAAiB,SAASzqC,GAAG9nC,GAAG,UAAU8nC,EAAE92C,cAAcusd,EAAEz1a,MAAK,GAAG+gB,IAAI0pB,EAAE,QAAQ01B,GAAG11B,EAAE,UAAU01B,IAAIxuB,IAAIA,EAAE1xC,EAAEw1a,GAAGhrY,EAAE,UAAU3pB,MAAMC,GAAG,GAAGA,IAAI0pB,EAAE,QAAQgrY,GAAG,EAAE16d,GAAG,aAAailD,EAAEA,EAAE4pG,EAAE3pG,IAAIwqC,EAAE,UAAU3pB,GAAG2pB,EAAE,QAAQ3pB,GAAG2pB,EAAE,MAAM3pB,IAAI,GAAGu2C,EAAE5sB,EAAE,UAAU3pB,GAAG,EAAEgmD,GAAGr8B,EAAE,kBAAkB01B,GAAG11B,EAAE,WAAW01B,GAAG11B,EAAE,OAAO01B,IAAI4jC,GAAG,WAAW9jG,EAAE/hC,MAAMusE,EAAE,UAAU3pB,GAAG2pB,EAAE,SAChf01B,GAAG11B,EAAE,OAAO01B,GAAGngE,EAAEwqC,GAFqT,SAASx4B,IAAI,IAAIqlD,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAQ,OAAOshG,GAAGA,IAAIplD,IAAEolD,EAAE,IAAGsyC,IAAI13F,GAAGolD,IAAIsyC,EAAE3pG,EAAEA,EAAE5iD,WAAW40D,EAAE,GAAG/R,EAAE9jD,QAAQk7G,IAAIn/F,GAAE,EAAG+nC,EAAE9jD,MAAMk7G,EAAEn/F,GAAE,EAAGkpC,EAAEnB,EAAE9jD,SAE9a,KAAK,CAACsuF,EAAExqC,MAAMD,EAAEgS,EAAE+6f,GAAGp7a,WAAU,EAAG3xF,EAAEjqC,EAAEu8iB,UAAU,CAACnF,WAAW,SAASntgB,EAAEC,EAAElqC,GAAGA,EAAE,YAAYiqC,KAHgD,GAGvCA,EAAEjqC,EAAEw7iB,WAAW,CAACz9iB,KAAK,SAASmsC,EAAElqC,GAAG,GAAGA,IAAI,CAAC,IAAIshG,EAAE,gBAAgBr3D,EAAEjqC,EAAEw7iB,WAAWgB,GAAGvygB,EAAEA,EAAE8lgB,GAAG7lgB,EAAEo3D,MAAMr3D,EAAEjqC,EAAEw7iB,WAAWgB,GAAG,EAAEvygB,EAAEjqC,EAAEoriB,MAAM,CAACrtiB,KAAK,SAASmsC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,IAAI/lD,EAAiH,OAA/Gs2C,EAAEjjF,IAAI,QAAQ2sC,EAAE,CAAC43P,GAAGthN,EAAEj9F,IAAI,MAAMi1iB,eAAeh4c,EAAEj9F,IAAI,oBAAoBrE,EAAE+wG,EAAErlG,mBAAmB1L,EAAEgrD,GAAG/gB,EAAE6vgB,GAAG95iB,EAAEkqC,GAAS,CAACxhC,4BAA2B,KAAMuhC,EAAE+jG,EAAE2na,GAAGvK,OAAM,EAAGnhgB,EAAEjqC,EAAE5Z,MAAM,CAAC2X,KAAK,SAASmsC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAEA,EAAE4pG,EAAE3pG,GAAG6mE,EAAE,SAChf/rH,EAAE,IAAI+rH,GAAG,YAAY7mE,EAAE/hC,MAAM,SAAS+hC,EAAE/hC,KAAK,CAAC,IAAI6iD,EAAE,GAAGgjF,EAAE1sC,EAAEj9F,IAAI,eAAe43C,GAAE,EAAGE,EAAE,KAAK6xF,IAAuBhjF,EAAnB,iBAAiBgjF,EAAI,CAACA,GAAK/jG,EAAEA,EAAE+jgB,GAAGhga,GAAG/jG,EAAEA,EAAE8jgB,GAAG/if,EAAE,WAAW,IACpE4wB,EAAsT8iH,EAD9OhqH,EAAE,WAAWv4B,EAAE,KAAKF,GAAE,EAAG,IAAIj3D,EAAEgb,IAAI+wG,EAAE9mE,EAAEgkG,EAAEgsK,EAAE/vQ,GAAGD,EAAEgS,EAAEu7f,GAAGxyjB,EAAEs8G,EAAE,QAAQyP,KAAK9mE,EAAEA,EAAEuigB,IAAIz7b,GAAG,QAAQ7mE,EAAE/hC,MAAM,OAAO+hC,EAAE6e,cAAc7e,EAAEuygB,MAAM,OAAOvygB,EAAEuygB,KAAK1zf,eAAe,GAAG9e,EAAEA,EAAEy1a,EAAE10Z,EAAE,oBAAoB/gB,EAAEA,EAAEiqG,EAAEhqG,EAAE,kBAAiB,WAAW+R,GAAE,KAAKhS,EAAEA,EAAEiqG,EAAEhqG,EAAE,SAAQ,WAAW+R,GAAE,KAAKhS,EAAEA,EAAEiqG,EAAEhqG,EAAE,QAAO,WAAW+R,GAAGy4B,QAAOzqC,EAAEA,EAAEwjgB,EAAEzif,GAAE,SAAShrD,GAAG,IAAIshG,EAAE5sB,EAAEzqC,EAAEA,EAAEilgB,GAAGlviB,EAAE,WAC5eshG,EAAE,WAAWnlD,EAAElS,EAAEgkG,EAAEgsK,EAAE/vQ,GAAGD,EAAEA,EAAE5iD,WAAWqtF,EAAE,IAAI10E,EAAEA,EAAEwwB,UAAU,IAAIyZ,EAAEA,EAAEiqG,EAAEhqG,EAAElqC,EAAEshG,MAAW1lB,EAAEm1B,GAAG,QAAQ7mE,EAAE/hC,KAAK,WAAW,IAAIm5F,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAK,OAAOshG,GAAGA,IAAIplD,GAAG,KAAKolD,EAAEp3D,EAAE9jD,MAAM,GAAG6jD,EAAE+oJ,EAAEg+W,EAAEt8d,IAAI,WAAW,IAAIq8B,EAAE9mE,EAAEA,EAAE8mE,EAAE/wG,KAAKgrD,EAAE/gB,EAAEgkG,EAAEgsK,EAAE/vQ,GAAM,OAAOiS,GAAG40D,IAAI50D,EAAElS,EAAEA,EAAE5iD,WAAWu0F,EAAE,GAAWm1B,IAAI/lD,GAAGA,IAAI9O,IAAE,WAAWl3D,GAAGgmE,EAAEs2C,EAAEj9F,IAAI,mBAAmB4lC,EAAEgkG,EAAEzhB,GAAGtiF,EAAE6mE,EAAE/lD,GAAGA,GAAG+lD,IAAI9mE,EAAEgkG,EAAEgsK,EAAE/vQ,IAAID,EAAE+oJ,EAAEg+W,EAAEt8d,IAAIzqC,EAAEgkG,EAAEzhB,GAAGtiF,EAAE6mE,KAAO,WAAW/rH,EAASilD,EAAE15C,EAAEoF,UAAUu0C,EAAED,EAAE15C,EAAEipO,GAAE,WAAW96B,EAAEp9F,EAAEj9F,IAAI,mBAAmBu3E,IAAIlH,KAAKzqC,EAAEA,EAAEiqG,EAAEhqG,EAAE,SAASwqC,GAAGgqH,EAAEz0J,EAAEwqC,EAAEmH,EAAE,KAAK,CAAClH,EAAExqC,OACpf,KAAK,CAACwvgB,mBAAkB,KAAUzvgB,EAAEA,EAAEiqG,EAAEhqG,EAAE,SAASwqC,GAAGzqC,EAAEwqC,EAAEmH,EAAE,KAAK,CAAClH,EAAExqC,UAASD,EAAE2vgB,GAAG1vgB,EAAE,CAACuxgB,aAAaz7iB,KAAK6C,OAAO,cAAconC,EAAEgS,EAAE+6f,GAAG5wjB,OAAM,EAAG6jD,EAAEjqC,EAAE3S,QAAQ,CAACwV,OAAO,SAASqnC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAKhb,EAAE,QAAQklD,EAAEznC,MAAMoB,QAAQy9F,IAAIt8G,EAAEklD,EAAEznC,MAAMoB,QAAQ,IAAIy9F,GAAGt8G,IAAIklD,EAAEznC,MAAMoB,QAAQ,UAAUomC,EAAEjqC,EAAEmZ,OAAO,CAACtW,OAAO,SAASqnC,EAAElqC,GAAGiqC,EAAEjqC,EAAE3S,QAAQwV,OAAOqnC,GAAE,WAAW,OAAOD,EAAEA,EAAE8mE,EAAE/wG,UAAmBkqC,EAAwH,QAArHD,EAAEjqC,EAAEkqC,GAAG,CAACnsC,KAAK,SAASiC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,GAAG,OAAO/gB,EAAEjqC,EAAEhB,MAAMjB,KAAK9Y,KAAKT,KAAKwb,GAAE,WAAW,IAAIiqC,EAAE,GAAY,OAATA,EAAEC,GAAGo3D,IAAWr3D,IAAGjlD,EAAE+rH,EAAE/lD,KACte/gB,EAAE2gQ,GAAG,aAAa3gQ,EAAE2gQ,GAAG5gT,UAAU0yjB,qBAAqB,WAAW,MAAM7ihB,MAAM,kCAAmCoQ,EAAE2gQ,GAAG5gT,UAAU2yjB,+BAA+B,WAAW,MAAM9ihB,MAAM,4CAA6CoQ,EAAE2gQ,GAAG5gT,UAAU0xE,mBAAmB,SAASxxB,EAAElqC,GAAG,GAAG,iBAAiBkqC,EAAE,CAAQ,IAAIo3D,GAAXthG,EAAEA,GAAGiuI,GAAUhnJ,eAAeijD,GAAG,IAAIo3D,EAAE,MAAMznE,MAAM,gCAAgCqQ,GAAG,OAAO,IAAID,EAAEyiE,EAAE28Y,EAAE/nZ,GAAG,GAAG,GAAGp3D,EAAEs1B,UAAU,GAAGt1B,EAAEs1B,SAAS,OAAO,IAAIv1B,EAAEyiE,EAAEmgM,GAAG3iQ,GAAG,MAAMrQ,MAAM,0BAA0BqQ,IAAKD,EAAE2gQ,GAAG5gT,UAAUg/G,eAClgB,SAAS/+D,EAAEjqC,EAAEshG,EAAEt8G,GAAkC,OAA/BilD,EAAEzlD,KAAKk3E,mBAAmBzxB,EAAEjlD,GAAUR,KAAKk4jB,qBAAqBzygB,EAAEjqC,EAAEshG,EAAEt8G,IAAIilD,EAAE2gQ,GAAG5gT,UAAU4yjB,oBAAoB,SAAS3ygB,EAAEjqC,GAAG,OAAM,IAAKxb,KAAKq4jB,wBAA0Br4jB,KAAKk3E,mBAAmBzxB,EAAEjqC,GAAG3N,KAAK,gBAAgB43C,EAAE2gQ,GAAG5gT,UAAU8yjB,gBAAgB,SAAS7ygB,EAAEjqC,EAAEshG,GAAkCthG,EAAEA,GAAjCiqC,EAAEzlD,KAAKk3E,mBAAmBzxB,EAAEq3D,IAASn6G,QAAQ8iD,EAAE9iD,KAAK6Y,GAAGiqC,EAAE53C,KAAK,eAAc,IAAK43C,EAAEC,EAAE,iBAAiBD,EAAE2gQ,IAAI3gQ,EAAE8ygB,GAAG,WAAW,SAAS7ygB,EAAEA,EAAElqC,EAAEshG,EAAE0sC,GAAG9jG,EAAED,EAAEgS,EAAEg7f,GAAG/sgB,GAAG,IAAI,IAAI+R,EAAEhS,EAAEgS,EAAE86f,GAAG56f,EAAE,EAAEA,EAAEjS,EAAEplD,OAAOq3D,IAAI,CAAC,IAAIu4B,EAAExqC,EAAEiS,GAAG3wD,IAAI,GAAGF,OAAOtB,UAAUsxE,eAAer2E,KAAKg3D,EAChhBy4B,GAAG,CAAC,IAAIkH,EAAE3/B,EAAEy4B,GAAG,GAAG,oBAAoBkH,GAAG,GAAGlH,EAAEkH,EAAE1xC,EAAEiS,GAAG/1D,OAAO,MAAMyzC,MAAM66C,QAAS,IAAIkH,EAAE,MAAM/hD,MAAM,8CAA8C66C,EAAE,mCAA8K,OAA1I4sB,EAAE,wEAAwEr3D,EAAEgS,EAAEi7f,GAAGhtgB,EAAE,CAACmtgB,gBAAe,IAAK,aAAa/1c,EAAE75E,cAAc,KAAYumH,EAAE2ua,+BAA+Br7c,GAAGthG,EAAE,IAAIA,EAAE,oIACpXshG,EAAE,wCAAwC,MAAM,CAAC07c,GAAG,SAAS9ygB,EAAElqC,EAAEshG,GAAGthG,EAAE48iB,oBAAoB1ygB,EAAEo3D,IAAIthG,EAAE88iB,gBAAgB5ygB,GAAE,SAASA,GAAG,OAAOD,EAAE8ygB,GAAGE,GAAG/ygB,EAAElqC,KAAIshG,IAAI27c,GAAG,SAAShzgB,EAAE8mE,GAAG,OAAO9mE,EAAEiD,QAAQltC,GAAE,SAASiqC,EAAEjqC,EAAEshG,EAAEt8G,EAAE0vF,GAAG,OAAOxqC,EAAEwqC,EAAE10E,EAAEshG,EAAEyP,MAAK7jE,QAAQo0D,GAAE,SAASr3D,EAAEjqC,GAAG,OAAOkqC,EAAElqC,EAAE,oBAAoB,WAAW+wG,OAAMmsc,GAAG,SAAShzgB,EAAElqC,GAAG,OAAOiqC,EAAE2igB,GAAG2E,IAAG,SAASjwc,EAAE0sC,GAAG,IAAI/xF,EAAEqlD,EAAE4F,YAAYjrD,GAAGA,EAAEo/L,SAAS5zN,gBAAgBznB,GAAGiqC,EAAE2vgB,GAAG39f,EAAE/R,EAAE8jG,QAFhB,GAE0B/jG,EAAEC,EAAE,cAAcD,EAAE8ygB,GAAGG,IAAI,WAAYjzgB,EAAEyiE,EAAE,GAAGziE,EAAEyiE,EAAE28Y,EAAE,SAASn/c,GAAG,GAAG1lD,KAAK6kgB,EAAEn/c,EAAE,CAAC,IAAIlqC,EACpfiqC,EAAEA,EAAE4pG,EAAE3pG,GAAG1lD,KAAK24jB,GAAG,WAAWn9iB,EAAE,EAAE,aAAaA,EAAE,EAAE,YAAYA,GAAGkqC,EAAE5kC,SAAS,KAAK4kC,EAAE5kC,QAAQk6D,SAAS,EAAE,IAAIv1B,EAAEyiE,EAAE28Y,EAAEr/f,UAAU7C,KAAK,WAAW,IAAI+iD,EAAE,IAAI1lD,KAAK24jB,GAAG,OAAO,IAAI34jB,KAAK24jB,GAAG,QAAQ,YAAY,GAAG,GAAG5wjB,UAAUzH,OAAO,OAAON,KAAK6kgB,EAAEn/c,GAAG,IAAIlqC,EAAEzT,UAAU,GAAG,cAAc29C,EAAED,EAAEA,EAAEkngB,GAAG3sjB,KAAK6kgB,EAAErpf,GAAGxb,KAAK6kgB,EAAEn/c,GAAGlqC,GAAG,IAAIkqC,EAAED,EAAEA,EAAE+gB,EAAE2vP,IAAI,IAAI1wQ,EAAEyiE,EAAE28Y,EAAEr/f,UAAUqI,KAAK,SAAS2N,GAAG,GAAG,IAAIzT,UAAUzH,OAAO,OAAOmlD,EAAEA,EAAE+gB,EAAE3mD,IAAI7f,KAAK6kgB,EAAEn/c,EAAElqC,GAAGiqC,EAAEA,EAAE+gB,EAAExB,IAAIhlE,KAAK6kgB,EAAEn/c,EAAElqC,EAAEzT,UAAU,KAAK,IAAIyT,EAAEiqC,EAAEA,EAAE+gB,EAAE2vP,IAAI1wQ,EAAEyiE,EAAE28Y,EAAEr/f,UAAUgoP,MAAM,WAAW,IAAI9nM,EAAE1lD,KAAK6kgB,EACrf,GAAG,GAAG98f,UAAUzH,OAAO,CAAC,IAAIE,EAAEilD,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAElqC,IAAI,GAAG+wG,EAAE/rH,EAAEipT,KAAK,IAAIzpT,KAAK24jB,GAAGjzgB,EAAE5kC,QAAQ,IAAI9gB,KAAK24jB,GAAGjzgB,EAAEgS,GAAG,IAAI60D,GAAG/rH,EAAEo4jB,GAAG,CAAC,IAAIpyf,EAAExmE,KAAK2C,OAAO6jE,GAAGA,IAAIhmE,EAAEq4jB,KAAKtsc,EAAE9mE,EAAEA,EAAEingB,GAAGlmf,EAAE9gB,EAAEi7E,eAAel7E,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAElqC,EAAE,CAACiuS,GAAGl9L,EAAEssc,GAAGryf,EAAEoyf,IAAG,KAAM,OAAOrsc,EAAE/rH,EAAEuH,UAAU,GAAG/H,KAAK24jB,KAAKjhgB,GAAG13D,KAAK2C,KAAK,IAAI8iD,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAElqC,EAAE,CAACiuS,GAAGjpT,KAAKilD,EAAEyiE,EAAEmgM,GAAG,SAAS5iQ,GAAGzlD,KAAK6kgB,EAAEp/c,GAAGA,EAAEyiE,EAAEmgM,GAAG7iT,UAAU,IAAIigD,EAAEyiE,EAAE28Y,EAAEp/c,EAAEyiE,EAAEmgM,GAAG7iT,UAAUgJ,YAAYi3C,EAAEyiE,EAAEmgM,GAAG5iQ,EAAEyiE,EAAEmgM,GAAG7iT,UAAU7C,KAAK,WAAW,GAAG,GAAGoF,UAAUzH,OAAO,CAAC,IAAIolD,EAAED,EAAEA,EAAE+gB,EAAE3mD,IAAI7f,KAAK6kgB,EAAErpf,IAAI,GAAyC,OAAtCkqC,EAAEmzgB,KAAKnhgB,GAAGhS,EAAE+jQ,KAAK/jQ,EAAEmzgB,GAAGnzgB,EAAE+jQ,GAAGlpP,WAAkB7a,EAAEmzgB,GAAGpzgB,EAAEA,EAAE+gB,EAAExB,IAAIhlE,KAAK6kgB,EAC1gBrpf,EAAE,CAACq9iB,GAAG9wjB,UAAU,MAAM09C,EAAEC,EAAE,kBAAkBD,EAAEyiE,GAAGziE,EAAEC,EAAE,6BAA6BD,EAAEyiE,EAAE28Y,GAAGp/c,EAAEC,EAAE,oCAAoCD,EAAEyiE,EAAEmgM,IAHyT,GAGjT,WAAY,SAAS3iQ,EAAEA,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAE,IAAIgb,EAAEiqC,EAAE+jG,EAAE9mC,YAAYlnG,GAAGkqC,IAAIllD,EAAEklD,KAAKlqC,GAAwBshG,EAAEt8G,EAAvBklD,EAAED,EAAE+jG,EAAE9mC,YAAYliH,IAAU,SAASgb,EAAEA,EAAEshG,GAAG,GAAGthG,EAAElb,OAAO,CAAC,IAAIE,EAAEgb,EAAE,GAAG+wG,EAAE/wG,EAAEA,EAAElb,OAAO,GAAGkmE,EAAEhmE,EAAE4pB,WAAWo/H,EAAE/jG,EAAEkiQ,GAAGv5S,SAASqpD,EAAE+xF,EAAE2qa,eAAe,GAAG18f,EAAE,CAA4H,GAA3H/R,EAAEllD,EAAE+rH,GAAE,SAAS9mE,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAE6wM,gBAAgBx5I,EAAErlD,EAAEh3D,KAAK+oJ,EAAE/jG,GAAGq3D,IAAIr3D,IAAIjlD,IAAIA,EAAEs8G,EAAE,IAAIp3D,GAAGD,IAAI8mE,IAAIA,EAAEzP,EAAEA,EAAEx8G,OAAO,IAAIkb,OAAMA,EAAElb,OAAO,GAAME,EAAE,OAAOA,IAAI+rH,EAAE/wG,EAAE5a,KAAKJ,IACxfgb,EAAE5a,KAAKJ,EAAE+rH,GAAG9mE,EAAEA,EAAE8kgB,GAAG/uiB,EAAEgrD,IAAI9gB,EAAEllD,EAAE+rH,GAAE,SAAS7mE,GAAG,IAAIA,EAAEs1B,UAAU,IAAIt1B,EAAEs1B,UAAUv1B,EAAE8vgB,GAAGz4c,EAAEp3D,MAAKA,EAAEllD,EAAE+rH,GAAE,SAAS7mE,GAAG,IAAIA,EAAEs1B,UAAU,IAAIt1B,EAAEs1B,UAAUv1B,EAAE2igB,GAAG6E,GAAGvngB,EAAE,CAACo3D,OAAMr3D,EAAEA,EAAE8kgB,GAAG/uiB,EAAEgrD,IAAI,SAASs2C,EAAEr3D,GAAG,OAAOA,EAAEu1B,SAASv1B,EAAE,EAAEA,EAAEnlD,OAAOmlD,EAAE,GAAG,KAAK,SAASjlD,EAAEklD,EAAEllD,EAAE+rH,EAAEi9B,EAAE/xF,GAAGA,EAAEA,GAAG,GAAG,IAAIC,GAAGhS,GAAGo3D,EAAEp3D,IAAI6mE,GAAG,IAAIoU,cAAc+uB,EAAEj4F,EAAE0pN,gBAAgB36M,EAA6C,GAA3C/gB,EAAE8ygB,GAAGC,GAAGjsc,EAAEmjC,EAAEh4F,GAAkC,iBAA/B60D,EAAEmjC,EAAElrC,eAAe+H,EAAEi9B,EAAE/xF,EAAEC,IAAyBp3D,QAAQ,EAAEisH,EAAEjsH,QAAQ,iBAAiBisH,EAAE,GAAGvxC,SAAS,MAAM3lC,MAAM,qDAA0D,OAALqiB,GAAE,EAAUl3D,GAAG,IAAK,kBAAkBilD,EAAE+jG,EAAE6ga,GAAG3kgB,EAC1hB6mE,GAAG70D,GAAE,EAAG,MAAM,IAAK,cAAcjS,EAAEA,EAAE6kgB,GAAG5kgB,EAAE6mE,GAAG70D,GAAE,EAAG,MAAM,IAAK,mBAAmB,MAAM,QAAQ,MAAMriB,MAAM,uBAAuB70C,GAAoH,OAAhHk3D,IAAIl8C,EAAE+wG,EAAEi9B,GAAG/xF,EAAE8oP,aAAa96P,EAAE+oJ,EAAEg+W,EAAE/0f,EAAE8oP,YAAY,KAAK,CAACh0L,EAAEi9B,EAAE/xF,EAAE2mQ,IAAI,WAAW,mBAAmB59T,GAAGilD,EAAE15C,EAAEomjB,GAAGzsgB,EAAED,EAAE15C,EAAEipO,IAAWzoH,EAAE,SAASA,EAAE7mE,EAAElqC,EAAEshG,GAAG,OAAOr3D,EAAE0iE,EAAEziE,GAAGA,IAAI,oBAAoBA,EAAEA,EAAElqC,EAAEshG,GAAGp3D,EAAE,IAAI8gB,EAAE/gB,EAAEqzgB,GAAG,SAASpzgB,GAAG,GAAGA,GAAGgS,KAAKhS,aAAaD,EAAE2gQ,IAAI,MAAM/wQ,MAAM,sDAAsDmxB,EAAE9gB,GAAGD,EAAEszgB,GAAG,SAASrzgB,EAAElqC,EAAEguI,EAAE/xF,EAAEvB,GAAW,KAARszF,EAAEA,GAAG,IAAS23H,gBAAgB36M,IACpf9O,EAAE,MAAMriB,MAAM,uDAA8E,GAAvB6gB,EAAEA,GAAG,kBAAqBuB,EAAE,CAAC,IAAIzmD,EAAE8rG,EAAErlD,GAAG,OAAOhS,EAAE/3C,GAAE,WAAW,IAAI84D,EAAEhrD,GAAGA,aAAaiqC,EAAE4hQ,GAAG7rS,EAAE,IAAIiqC,EAAE4hQ,GAAG7rS,EAAE,KAAK,KAAK,KAAK,CAACq5iB,oBAAmB,IAAKn9f,EAAE60D,EAAE7mE,EAAE8gB,EAAE3rD,MAAM2rD,GAAGA,EAAEhmE,EAAEi3D,EAAEvB,EAAEwB,EAAE8O,EAAEgjF,GAAG,eAAetzF,IAAQllD,EAAE8rG,EAANrlD,EAAE+O,MAAW,KAAK,CAACqqf,GAAG,WAAW,OAAO7/iB,IAAIy0C,EAAEA,EAAEmlgB,GAAG55iB,IAAIk/E,EAAEl/E,GAAG,eAAeklD,EAAEllD,EAAEoZ,WAAWpZ,IAAI,OAAOy0C,EAAE2igB,GAAG2E,IAAG,SAASjwc,GAAGr3D,EAAEszgB,GAAGrzgB,EAAElqC,EAAEguI,EAAE1sC,EAAE,mBAAkBr3D,EAAEuzgB,GAAG,SAAStzgB,EAAEo3D,EAAEt2C,EAAEgjF,EAAE/xF,GAAG,SAASzmD,EAAE00C,EAAElqC,GAAGiqC,EAAE+oJ,EAAEg+W,EAAE/mgB,EAAEA,EAAE66H,GAAG,KAAK,CAAC92B,EAAE9jG,EAAE8oJ,EAAEhoI,EAAED,EAAE/qD,IAAIiqC,EAAE15C,EAAEomjB,GAAG3oa,EAAE/jG,EAAE15C,EAAEipO,GACrf,SAASzuK,EAAE9gB,EAAEC,GAAGlqC,EAAEkqC,EAAEmB,GAAG2f,EAAE+5O,aAAa/5O,EAAE+5O,YAAY76P,EAAED,GAAGoB,EAAE,KAAK,SAAS2nJ,EAAE/oJ,EAAEjqC,GAAGqrC,EAAE4Q,EAAEvwC,mBAAmBu+B,EAAE,CAAC24Q,GAAGx4M,EAAEkvc,eAAetuf,EAAEsuf,eAAehsjB,OAAO,SAAS28C,GAAGA,EAAEp5B,OAAO7Q,EAAEoqG,IAAIngE,EAAEmgE,EAAE,SAASpqG,MAAM,IAAIshG,EAAEyP,EAAE7mE,EAAED,EAAEoB,GAAG,OAAOrmD,EAAEgpJ,EAAE,mBAAmB1sC,EAAEj2D,EAAE2f,GAAG,IAAI3f,EAAE++D,EAAEp/C,EAAE43P,GAAG30K,GAAE,IAAKjjF,EAAE6wf,kBAAkB5xgB,EAAErrC,QAAQ4uiB,wBAAwBxif,EAAE6wf,iBAAiB,GAAG5ta,GAAGjjF,EAAE+wf,eAAe9xgB,EAAE0qgB,GAAGrzc,GAAG,OAAOr3D,EAAE/3C,GAAE,WAAW,IAAIg4C,EAAED,EAAEA,EAAE8mE,EAAEzP,IAAI,GAAG,oBAAoBp3D,EAAEplD,SAASolD,EAAE,CAACA,IAAI+jG,IAAI/jG,EAAED,EAAEA,EAAEikgB,GAAGhkgB,GAAE,SAASA,GAAG,OAAOA,IAAIgS,GAAG,OAAOhS,IAClfD,EAAEA,EAAE8mE,EAAE7mE,EAAEoqgB,cAAa9+iB,EAAE00C,KAAI,KAAK,CAACwqC,EAAEs5D,IAAIx4I,EAAE8rG,EAAEj2D,KAAK,IAAIq0a,EAAEp+W,EAAE3rG,WAAU,SAASs0C,GAAGz0C,EAAE8rG,IAAIr3D,KAAI,KAAK,eAAsB,OAAPy1a,EAAEhrY,EAAEs5D,GAAU0xU,GAAG,IAAI1xU,EAAE/jG,EAAEA,EAAE+gB,EAAE2vP,IAAI1+P,EAAEhS,EAAEA,EAAE+gB,EAAE2vP,IAAI1wQ,EAAEjqC,EAAEmO,SAAS,CAACpQ,KAAK,SAASmsC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,KAAK,GAAG,iBAAiBshG,GAAG,SAASA,EAAEr3D,EAAE+jG,EAAE2pa,GAAGztgB,QAAQ,GAAG,UAAUo3D,EAAE,CAAe,GAAdA,EAAEA,EAAE0wI,OAAO,GAAM/nM,EAAE0iE,EAAErL,GAAG,MAAMznE,MAAM,6DAA6D,IAAI70C,EAAEs8G,EAAE,IAAIA,EAAE,GAAG1yF,WAAW5pB,GAAGilD,EAAEA,EAAE+gB,EAAE3mD,IAAIrf,EAAEi3D,KAAKj3D,EAAEilD,EAAEA,EAAEwkgB,GAAGntc,GAAGr3D,EAAEA,EAAE+gB,EAAExB,IAAIxkE,EAAEi3D,GAAE,IAAM,IAAIhS,EAAEyiE,EAAEmgM,GAAG3iQ,GAAI8nM,MAAMhtP,OAAQ,MAAuB,GAApBs8G,EAAEr3D,EAAE+jG,EAAE5mC,WAAWl9D,IAAOplD,QAC9c,MAAM+0C,MAAM,oEADyc70C,EAC7filD,EAAEA,EAAEwkgB,GAAGntc,GAAI,IAAIr3D,EAAEyiE,EAAEmgM,GAAG3iQ,GAAI8nM,MAAMhtP,GAAwF,MAAM,CAAC0jB,4BAA2B,IAAK7F,OAAO,SAASqnC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,IAAI/lD,EAAEhrD,IAAeshG,GAAE,EAAGt8G,EAAE,KAAK,iBAAvBgb,EAAEiqC,EAAEA,EAAE8mE,EAAE/lD,IAAkChrD,EAAE,IAAIgrD,EAAE,SAAShrD,EAAEA,EAAEhO,KAAKk4C,EAAE,OAAOlqC,IAAIshG,EAAEr3D,EAAEA,EAAE8mE,EAAE/wG,EAAC,KAASshG,GAAG,UAAUthG,IAAIshG,GAAGr3D,EAAEA,EAAE8mE,EAAE/wG,EAAEy9iB,QAAQn8c,IAAIt2C,IAAIs2C,GAAE,IAAK,YAAYthG,EAAEhb,EAAEilD,EAAEuzgB,GAAGxyf,EAAEs2C,GAAGthG,EAAE27iB,SAAS,GAAG37iB,EAAEkqC,EAAE6mE,GAAGzP,GAAGA,EAAEyP,EAAE,SAAS/wG,IAAIshG,EAAEyP,EAAErlG,mBAAmB1L,EAAE3N,KAAK,CAACuwT,GAAG5iT,EAAE4iT,GAAG02P,eAAet5iB,EAAEs5iB,eAAeD,oBAAmB,KACvfr0jB,EAAEilD,EAAEszgB,GAAGvyf,EAAEs2C,EAAEthG,EAAEkqC,IAAID,EAAE+jG,EAAE2pa,GAAGztgB,GAAG6mE,EAAE/rH,GAAGgb,EAAEiqC,EAAEA,EAAE+gB,EAAE3mD,IAAI6lC,EAAE8jG,KAAK,mBAAmBhuI,EAAEqR,GAAGrR,EAAEqR,IAAI44B,EAAEA,EAAE+gB,EAAExB,IAAItf,EAAE8jG,GAAGj9B,GAAGA,EAAE4yM,KAAK5yM,EAAE4yM,KAAKznQ,EAAE60D,KAAK9mE,EAAEgS,EAAE86f,GAAG5oiB,SAAS,SAAS+7B,GAAe,OAAO,IAAnBA,EAAED,EAAEgS,EAAEg7f,GAAG/sgB,IAAeplD,QAAQolD,EAAE,GAAG4sgB,SAAS7sgB,EAAEgS,EAAEs7f,GAAGrtgB,EAAE,QAAQ,KAAK,yFAAyFD,EAAE+jG,EAAE2na,GAAGxniB,UAAS,EAPpL,GAO2L87B,EAAEC,EAAE,oBAAoBD,EAAEqzgB,IAAIrzgB,EAAEC,EAAE,iBAAiBD,EAAEszgB,IAAItzgB,EAAEA,EAAE8qgB,GAAG,SAAS9qgB,EAAEjqC,EAAEshG,GAA0B,IAAIt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE/xF,EAAnC,GAAGhS,EAAEnlD,QAAQkb,EAAElb,OAAsB,IAAIE,EAAE+rH,EAAE,IAAIzP,GAAGt8G,EAAEs8G,KAAK0sC,EAAE/jG,EAAE8mE,MAAMA,EAAE,CAAC,IAAI/lD,EAAE,EAAE/O,EAAEj8C,EAAEgrD,KAAKA,EAAE,GAAGgjF,EAAE5nJ,QACxf61D,EAAE71D,MAAM,CAAC4nJ,EAAE/wG,MAAMgf,EAAE52D,MAAM42D,EAAEhf,MAAM+wG,EAAE3oJ,MAAM2a,EAAEjM,OAAOi3D,EAAE,GAAGhmE,EAAEgmE,EAAE,EAAE,MAAMhmE,GAAGgmE,IAAK/gB,EAAEA,EAAE2qgB,GAAG,WAAW,SAAS1qgB,EAAEA,EAAEo3D,EAAEt8G,EAAE+rH,EAAE/lD,GAAG,IAA+B0pB,EAAagqH,EAA8B1L,EAAE/kD,EAAE7jC,EAA1E4jC,EAAE7jI,KAAKG,IAAI2xC,EAAE9xC,KAAKC,IAAI+xC,EAAE,GAAKy/B,EAAE1xC,EAAEplD,OAASo3D,EAAEolD,EAAEx8G,OAAOimE,EAAE7O,EAAE0/B,GAAG,EAAEvwC,EAAEuwC,EAAE1/B,EAAE,EAAQ,IAAIw4B,EAAE,EAAEA,GAAGkH,EAAElH,IAAI,IAAIu5D,EAAE+kD,EAAE72I,EAAE/2D,KAAK4tM,EAAE,IAAI5oF,EAAE4jC,EAAE9xF,EAAEw4B,EAAE3pB,GAAG2zI,EAAEziJ,EAAE,EAAEy4B,EAAE,GAAGgqH,GAAGt0F,EAAEs0F,IAAI1L,EAAE0L,GAAGA,EAAEhqH,EAAExqC,EAAEwqC,EAAE,KAAK4sB,EAAEo9F,EAAE,GAAGzwD,EAAEywD,EAAE,GAAG1wD,EAAEC,EAAEywD,IAAIrzJ,EAAE2nJ,EAAE0L,EAAE,IAAIrzJ,GAAG,EAAEqzJ,EAAE,EAAEhqH,EAAE,EAAqB,IAAnBs5D,EAAE,GAAG/xF,EAAE,GAAG8O,EAAE,GAAG2pB,EAAEkH,EAAM8iH,EAAExiJ,EAAEw4B,GAAGgqH,GAAGxiJ,EAAEC,EAAEu4B,GAAGgqH,GAAG,EAAEA,GAAGxiJ,IAAIC,EAAEu4B,GAAGgqH,EAAE,GAAGziJ,EAAE72D,KAAK4oJ,EAAEA,EAAElpJ,QAAQ,CAACo3C,OAAOl3C,EAAEoB,MAAMk7G,IAAIo9F,GAAGr5M,MAAMq5M,IAAIhqH,GAAGx4B,IAAIC,EAAEu4B,EAAE,GAAGgqH,GAAG3zI,EAAE3lE,KAAK4oJ,EAAEA,EAAElpJ,QAAQ,CAACo3C,OAAO60E,EAAE3qH,MAAM8jD,IAAIwqC,GAAGrvF,MAAMqvF,OACvfgqH,IAAIhqH,EAAE1pB,EAAE8pf,QAAQ9ma,EAAE5oJ,KAAK,CAAC82C,OAAO,WAAW91C,MAAMk7G,EAAEo9F,MAA0C,OAApCz0J,EAAEA,EAAE8qgB,GAAGhqf,EAAE9O,GAAG+O,EAAE0yf,gBAAgB,GAAG9he,GAAUoyD,EAAEz1H,UAAU,OAAO,SAAS0xB,EAAEq3D,EAAEt8G,GAAmE,OAAhEA,EAAE,mBAAmBA,EAAE,CAAC04jB,eAAe14jB,GAAGA,GAAG,GAAWs8G,EAAEA,GAAG,IAAbr3D,EAAEA,GAAG,IAAoBnlD,OAAOw8G,EAAEx8G,OAAOolD,EAAED,EAAEq3D,EAAE,QAAQ,UAAUt8G,GAAGklD,EAAEo3D,EAAEr3D,EAAE,UAAU,QAAQjlD,IADnM,GAC0MilD,EAAEC,EAAE,sBAAsBD,EAAEA,EAAE2qgB,IAAI,WAAY,SAAS1qgB,EAAEA,EAAElqC,EAAEshG,EAAE0sC,EAAE/xF,GAAG,IAAIE,EAAE,GAAGu4B,EAAEzqC,EAAE/3C,GAAE,WAAW,IAAIwiF,EAAE10E,EAAEshG,EAAErlD,EAAEhS,EAAEA,EAAE8kgB,GAAG5yf,EAAEjS,KAAK,GAAG,EAAEiS,EAAEr3D,SAASmlD,EAAEA,EAAE6kgB,GAAG3yf,EAAEu4B,GAAGs5D,GAAG/jG,EAAE+oJ,EAAEg+W,EAAEhja,EAAE,KAAK,CAAC1sC,EAAE5sB,EAAEz4B,KAAKE,EAAEr3D,OAAO,EAAEmlD,EAAEA,EAAEkkgB,GAAGhyf,EAAEu4B,KAAI,KAAK,CAACA,EAAExqC,EAAEmrgB,GAAG,WAAW,OAAOprgB,EAAEA,EAAEolgB,GAAGlzf,MACxgB,MAAM,CAACswf,EAAEtwf,EAAEjqD,EAAEwiF,EAAEivO,KAAKjvO,EAAEx4B,GAAG,IAAIl8C,EAAEiqC,EAAEA,EAAE+gB,EAAE2vP,IAAIr5M,EAAEr3D,EAAEA,EAAE+gB,EAAE2vP,IAAI1wQ,EAAEA,EAAE66H,GAAG,SAAS9/K,EAAE+rH,EAAE/lD,EAAEgjF,EAAE/xF,EAAEE,GAAG,SAASu4B,EAAExqC,GAAG/nC,EAAE,CAACw7iB,GAAGzzgB,EAAE0zgB,GAAG3zgB,EAAE67Q,GAAG73K,MAAM5iG,EAAEjmD,KAAK+c,GAAG4oD,GAAGs+b,EAAEjkgB,KAAK+c,GAAG,SAASy5E,EAAE1xC,GAAG/nC,EAAEu4C,EAAExQ,GAAG+jG,IAAI9rI,EAAEy7iB,GAAGvygB,KAAKoigB,EAAErojB,KAAK+c,GAAGA,EAAEy7iB,GAAG3va,KAAKhkG,EAAEA,EAAE8kgB,GAAG5siB,EAAEsqiB,EAAEznjB,GAAGqmD,EAAEjmD,KAAK+c,GAAG,SAASu8L,EAAEx0J,EAAElqC,GAAG,GAAGkqC,EAAE,IAAI,IAAIo3D,EAAE,EAAEt8G,EAAEgb,EAAElb,OAAOw8G,EAAEt8G,EAAEs8G,IAAIr3D,EAAEA,EAAEwjgB,EAAEztiB,EAAEshG,GAAGmrc,GAAE,SAASxigB,GAAGC,EAAED,EAAEq3D,EAAEthG,EAAEshG,GAAGq8c,OAAc,oBAAR5sc,EAAEA,GAAG,IAAyBjsH,SAASisH,EAAE,CAACA,IAAIi9B,EAAEA,GAAG,GAAG,IAAgE7rI,EAE1Y83S,EAAEttM,EAAElqE,EAF0UiY,EAAEzQ,EAAEA,EAAE+gB,EAAE3mD,IAAIrf,EAAEgb,GAAG+qD,GAAGrQ,EAAErP,EAAE,GAAG2nJ,EAAE,EAAE/kD,EAAE,EAAE7jC,EAAE,GAAGs1W,EAAE,GAAGhzW,EAAE,GAAG+gc,EAAE,GAAGpkD,EAAE,GAAK6jD,EAAE,EAAE,GAAGnif,EAAE9gB,EAAEA,EAAEwjgB,EAAE18b,EAAEr8B,OAAO,CAAC,IAAIv4B,GAAGzB,GAAGA,EAAEmjgB,uBAAuB,CAAC,IAAI1jQ,EACnflwQ,EAAEA,EAAEgkgB,GAAGvzf,GAAE,SAASzQ,GAAG,OAAOA,EAAE0zgB,MAAKxhgB,EAAElS,EAAEA,EAAE2qgB,GAAGz6P,EAAEppM,EAAE,CAAC2sc,eAAe1va,EAAE0va,eAAe5I,QAAO,IAAS,IAAQ9D,EAAEx3U,EAAE+yU,EAAhB,IAAQpyP,EAAE,EAAQ62P,EAAE70f,EAAEg+P,GAAGA,IAAI,OAAO3gF,EAAEw3U,EAAE/zgB,MAAMsvgB,EAAEyE,EAAE3rjB,MAAM2rjB,EAAE90gB,QAAQ,IAAK,UAAU,KAAK82J,EAAEu5W,GAAG3wd,EAAEo3G,KAAKwmC,IAAIt9K,KAAI/5C,EAAEu4C,EAAEs4I,IAAK9gM,IAAIiQ,EAAEjQ,EAAEmf,IAAIlP,EAAEjQ,EAAEgqD,GAAGjS,EAAEA,EAAE8kgB,GAAG5siB,EAAEsqiB,EAAEznjB,GAAGF,SAASkpJ,EAAE+ta,eAAe1wgB,EAAEjmD,KAAK+c,GAAG+qiB,IAAI/qiB,EAAEw7iB,KAAKr8c,EAAEn/F,EAAE,KAAKuqG,EAAEtnH,KAAK+c,IAAIA,GAAGioG,EAAEhlH,KAAKolB,MAAM4/F,EAAEjoG,EAAEsqiB,KAAKz5W,IAAI,MAAM,IAAK,QAAQ,KAAK/kD,EAAEs+Z,GAAG3wd,EAAEo3G,KAAKwmC,IAAIt9K,GAAGwja,EAAEt6d,KAAKimD,EAAEvmD,QAAQ82F,EAAE49I,IAAI9kJ,EAAEs8d,EAAE5qjB,OAAO,KAAK6nJ,EAAEl9B,EAAEjsH,QAAQ82F,EAAEo3G,KAAK3nJ,EAAEwygB,uBAAuB3Q,EAAEjjgB,EAAEA,EAAE+gB,EAAExB,IAAIxkE,EAAEgb,EAAEqrC,GAAGqzJ,EAAE1wD,EAAEgua,WAAWvO,GAAGxjgB,EAAEA,EAAEwjgB,EAAErjc,EAC1f4jC,EAAE+ta,aAAa9xgB,EAAE0kgB,GAAG1kgB,EAAEu9B,YAAsB,IAAI/kC,EAAEz9C,EAAEmgI,cAAcj5H,cAAc,MAAMmqjB,IAAI,GAAG32F,EAAE56d,OAAO,MAAMq1T,EAAEulK,EAAEl1Z,UAAUtO,GAAG,CAAQ,IAAP/5C,EAAEkpC,EAAE8uQ,GAAOF,EAAE/9P,EAAEi+P,GAAG,IAAIxtM,EAAEthE,IAAI8uQ,GAAGsyP,IAAI9/b,EAAE7nH,OAAO,CAACm1T,EAAEttM,EAAEA,EAAE7nH,OAAO,GAAG,MAAM,IAAIisH,EAAE,EAAEiiF,EAAE7wL,EAAEsqiB,EAAE17b,GAAGkpM,EAAEjnH,EAAEjiF,IAAI9mE,EAAE+jG,EAAE6pa,GAAG7yjB,EAAEguM,EAAEinH,GAAG,IAAIE,EAAE,EAAEh4S,EAAEkpC,EAAE8uQ,GAAGA,IAAI,CAAuC,IAAtCh4S,EAAEsqiB,GAAGxigB,EAAEA,EAAE38C,OAAO6U,EAAE+nC,EAAEllD,EAAEgmE,EAAE7oD,EAAEw7iB,GAAG1hgB,EAAE95C,EAAEy7iB,KAAS7sc,EAAE,EAAEiiF,EAAE7wL,EAAEsqiB,EAAE17b,GAAGkpM,EAAEjnH,EAAEjiF,IAAI9mE,EAAE+jG,EAAE6pa,GAAG7yjB,EAAEguM,EAAEinH,IAAI93S,EAAE27iB,IAAI7hgB,IAAIA,EAAE95C,EAAEw7iB,GAAGx7iB,EAAEsqiB,EAAEtqiB,EAAEy7iB,IAAIz7iB,EAAE27iB,IAAG,EAAG7jQ,EAAE93S,EAAEsqiB,EAAEtqiB,EAAEsqiB,EAAE3njB,OAAO,IAAuE,IAAnE29C,GAAGz9C,EAAEmgI,cAAcj5H,eAAeu2C,GAAGA,EAAEl9C,QAAQm5M,EAAE1wD,EAAE+ta,aAAarvc,GAAOytM,EAAE,EAAEA,EAAEztM,EAAE5nH,SAASq1T,EAAEztM,EAAEytM,GAAGwjQ,GAAGr8c,EAAEo9F,EAAE1wD,EAAEiua,UAAUxO,GACpf/uW,EAAE1wD,EAAE8ta,SAASzyD,IAJiT,GAIzSp/c,EAAEC,EAAE,2CAA2CD,EAAEA,EAAE66H,IAAI76H,EAAE4igB,GAAG,WAAWrojB,KAAKq4jB,wBAAuB,GAAI5ygB,EAAE4igB,GAAG7ijB,UAAU,IAAIigD,EAAE2gQ,GAAG3gQ,EAAE4igB,GAAG7ijB,UAAUgJ,YAAYi3C,EAAE4igB,GAAG5igB,EAAE4igB,GAAG7ijB,UAAU0yjB,qBAAqB,SAASxygB,EAAElqC,EAAEshG,EAAEt8G,GAAG,OAAGgb,EAAG,EAAEiqC,EAAEA,EAAEuigB,IAAItigB,EAAE8nM,MAAiB,KAAV9nM,EAAE8nM,SAAoB/nM,EAAEA,EAAEykgB,GAAG1uiB,EAAEkrL,WAAU,GAAI9jF,aAAYl9D,EAAEA,EAAE/iD,OAAc8iD,EAAEA,EAAEm5E,GAAGl5E,EAAEllD,KAAIilD,EAAE4igB,GAAGoH,GAAG,IAAIhqgB,EAAE4igB,GAAG5igB,EAAEqzgB,GAAGrzgB,EAAE4igB,GAAGoH,IAAIhqgB,EAAEC,EAAE,uBAAuBD,EAAE4igB,IAAI,WAAY5igB,EAAE8zgB,GAAG,WAAW,IAAI9zgB,EAAEzlD,KAAKw5jB,GAAG,WAAW,IAAI3ygB,IAAIA,EAAEib,KAAK,OAAO,EAAE,IAAI,GAAG,GAAGjb,EAAEib,KAAK0+D,IAAI1+D,KAAKqhE,KAAK10H,WAAWtI,QAAQ,MAAM,OAAO,EAAE,MAAMs/C,IAAI,OAAO,EAArH,GACrczlD,KAAKk4jB,qBAAqB,SAASxygB,EAAEllD,EAAE+rH,EAAE/lD,GAAkB,GAAfA,EAAEA,GAAGijF,EAAEl9B,EAAEA,GAAG,GAAM,EAAE9mE,EAAE,MAAMpQ,MAAM,4FAA4F,IAAIm0G,EAAE9jG,EAAE73C,KAAK,eAAqQ,OAAtP27I,IAAIA,EAAE9jG,EAAE/iD,QAAQ,GAAG6mJ,EAAE3iG,EAAEl9B,SAAS,KAAK,qCAAqC6/H,EAAE,gBAAgB9jG,EAAE73C,KAAK,cAAc27I,IAAI9jG,EAAE,CAACllD,EAAEqa,OAAOra,EAAEqmD,EAAE/9C,OAAO,CAAC2wjB,iBAAiBj5jB,GAAG+rH,EAAE5pF,kBAAiBniC,EAAEqmD,EAAEib,KAAK0nF,EAAE9jG,EAAEllD,IAAKy3B,SAASuuC,EAAEpjC,cAAc,QAAQyjB,EAAE6ygB,UAAU,GAAUl5jB,GAAGR,KAAKm4jB,+BAA+B,SAAS1ygB,GAAG,MAAM,mCAC5fA,EAAE,aAAazlD,KAAK25E,YAAY,SAASl0B,EAAEC,GAAG+jG,EAAE74I,MAAM,gCAAgC60C,EAAE,KAAKC,EAAE,eAAiB,EAAED,IAAIoB,EAAEib,KAAK0+D,IAAIm5b,QAAQ,CAACx2b,KAAK,sBAAsBt8E,EAAEib,KAAK0+D,IAAIo5b,QAAQ,CAACz2b,KAAK,aAAaj8D,MAAM,QAAQzhB,EAAE8zgB,GAAG/zjB,UAAU,IAAIigD,EAAE2gQ,GAAG3gQ,EAAE8zgB,GAAG/zjB,UAAUgJ,YAAYi3C,EAAE8zgB,GAAG,IAAI7zgB,EAAE,IAAID,EAAE8zgB,GAAG,EAAE7zgB,EAAE8zgB,IAAI/zgB,EAAEqzgB,GAAGpzgB,GAAGD,EAAEC,EAAE,2BAA2BD,EAAE8zgB,IAF0E,MAlI9Y,yBCIb,IAGIM,EAAY,kBAGZC,EAAc,4CAGdC,EAAU,8CAIVC,EAAoB,iCAEpBC,EAAiB,kBACjBC,EAAe,4BAKfC,EAAe,4BAEfC,EAAeC,8OAGfC,EAAS,YACTC,EAAW,oBACXC,EAAU,IAAMJ,EAAe,IAC/BK,EAAU,IAAMT,EAAN,mBACVU,EAAW,OACXC,EAAY,oBACZC,EAAU,IAAMV,EAAe,IAC/BW,EAAS,oBAAuBT,EAAeM,EAAWT,EAAiBC,EAAeC,EAAe,IACzGW,EAAS,2BAETC,EAAc,qBACdC,EAAa,kCACbC,EAAa,qCACbC,EAAU,IAAMf,EAAe,IAI/BgB,EAAc,MAAQP,EAAU,IAAMC,EAAS,IAC/CO,EAAc,MAAQF,EAAU,IAAML,EAAS,IAC/CQ,EAAkB,qCAClBC,EAAkB,qCAClBC,EAZa,MAAQd,EAAU,IAAMK,EAAS,IAYtB,IACxBU,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACR,EAAaC,EAAYC,GAAYhqjB,KAAK,KAAO,IAAMuqjB,EAAWD,EAAW,MAElHG,EAAU,MAAQ,CAACf,EAAWK,EAAYC,GAAYhqjB,KAAK,KAAO,IAAMwqjB,EACxEE,EAAW,MAAQ,CAACZ,EAAcN,EAAU,IAAKA,EAASO,EAAYC,EAAYV,GAAUtpjB,KAAK,KAAO,IAGxG2qjB,EAAS5ygB,OAAOsxgB,EAAQ,KAMxBuB,EAAc7ygB,OAAOyxgB,EAAS,KAG9BqB,EAAY9ygB,OAAO8xgB,EAAS,MAAQA,EAAS,KAAOa,EAAWF,EAAO,KAGtEM,EAAgB/ygB,OAAO,CACzBkygB,EAAU,IAAMN,EAAU,IAAMS,EAAkB,MAAQ,CAACb,EAASU,EAAS,KAAKjqjB,KAAK,KAAO,IAC9FmqjB,EAAc,IAAME,EAAkB,MAAQ,CAACd,EAASU,EAAUC,EAAa,KAAKlqjB,KAAK,KAAO,IAChGiqjB,EAAU,IAAMC,EAAc,IAAME,EACpCH,EAAU,IAAMI,EAChBZ,EACAgB,GACAzqjB,KAAK,KAAM,KAGT+qjB,EAAehzgB,OAAO,uFAGtBizgB,EAAmB,sEA6DnBC,EAA8B,iBAAV5hc,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAOxzH,SAAWA,QAAUwzH,EAAAA,EAGhF6hc,EAA0B,iBAARv1iB,MAAoBA,MAAQA,KAAK9f,SAAWA,QAAU8f,KAGxE9V,EAAOorjB,GAAcC,GAAYnQ,SAAS,cAATA,GAsErC,IAdwB5oiB,EAcpBg5iB,GAdoBh5iB,EAxHF,CAEpB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IACnC,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAER,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,MAmEnB,SAASpc,GACd,OAAiB,MAAVoc,OAAiBhL,EAAYgL,EAAOpc,KAqB/C,SAASq1jB,EAAWhud,GAClB,OAAO2td,EAAa94hB,KAAKmrE,GAqB3B,SAASiud,EAAcjud,GACrB,OAAOgud,EAAWhud,GAYpB,SAAwBA,GACtB,OAAOA,EAAO1sF,MAAMm6iB,IAAc,GAZ9BS,CAAelud,GArErB,SAAsBA,GACpB,OAAOA,EAAO5gG,MAAM,IAqEhB+ujB,CAAanud,GA0BnB,IAOIoud,EAPc31jB,OAAOtB,UAOQiJ,SAG7BsrH,EAASjpH,EAAKipH,OAGd2ic,EAAc3ic,EAASA,EAAOv0H,eAAY4S,EAC1CukjB,EAAiBD,EAAcA,EAAYjujB,cAAW2J,EAwC1D,SAASwkjB,EAAah7jB,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GA2GF,SAAkBA,GAChB,MAAuB,iBAATA,GAtBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBtBi7jB,CAAaj7jB,IAAU66jB,EAAeh8jB,KAAKmB,IAAUi4jB,EA7GpDiD,CAASl7jB,GACX,OAAO+6jB,EAAiBA,EAAel8jB,KAAKmB,GAAS,GAEvD,IAAIiN,EAAUjN,EAAQ,GACtB,MAAkB,KAAViN,GAAkB,EAAIjN,IApVjB,SAoVwC,KAAOiN,EAY9D,SAASkujB,EAAU1khB,EAAOx8B,EAAOuX,GAC/B,IAAI9yB,EAAS+3C,EAAM/3C,OAEnB,OADA8yB,OAAchb,IAARgb,EAAoB9yB,EAAS8yB,GAC1BvX,GAASuX,GAAO9yB,EAAU+3C,EArDrC,SAAmBA,EAAOx8B,EAAOuX,GAC/B,IAAIvyB,GAAS,EACTP,EAAS+3C,EAAM/3C,OAEfub,EAAQ,IACVA,GAASA,EAAQvb,EAAS,EAAKA,EAASub,IAE1CuX,EAAMA,EAAM9yB,EAASA,EAAS8yB,GACpB,IACRA,GAAO9yB,GAETA,EAASub,EAAQuX,EAAM,EAAMA,EAAMvX,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIhN,EAAStJ,MAAMjF,KACVO,EAAQP,GACfuO,EAAOhO,GAASw3C,EAAMx3C,EAAQgb,GAEhC,OAAOhN,EAmCoCmujB,CAAU3khB,EAAOx8B,EAAOuX,GAkHrE,SAAS3kB,EAAS7M,GAChB,OAAgB,MAATA,EAAgB,GAAKg7jB,EAAah7jB,GAuB3C,IArG0B4sD,EAqGtBkjf,IArGsBljf,EAqGO,SAAS3/C,EAAQ4vJ,EAAM59J,GAEtD,OADA49J,EAAOA,EAAKx7H,cACLp0B,GAAUhO,EAmBV4xQ,GAAWhkQ,EAnBkBgwJ,GAmBDx7H,eAnBSw7H,IAtGrC,SAASpwD,GACd,OAzOJ,SAAqBh2D,EAAO4khB,EAAUv0S,EAAaw0S,GACjD,IAAIr8jB,GAAS,EACTP,EAAS+3C,EAAQA,EAAM/3C,OAAS,EAKpC,IAHI48jB,GAAa58jB,IACfooR,EAAcrwO,IAAQx3C,MAEfA,EAAQP,GACfooR,EAAcu0S,EAASv0S,EAAarwO,EAAMx3C,GAAQA,EAAOw3C,GAE3D,OAAOqwO,EA+NEy0S,CAwLX,SAAe9ud,EAAQ2G,EAASood,GAI9B,OAHA/ud,EAAS5/F,EAAS4/F,QAGFj2F,KAFhB48F,EAAUood,OAAQhljB,EAAY48F,GAvVhC,SAAwB3G,GACtB,OAAO4td,EAAiB/4hB,KAAKmrE,GAyVpBgvd,CAAehvd,GAvT1B,SAAsBA,GACpB,OAAOA,EAAO1sF,MAAMo6iB,IAAkB,GAsTJuB,CAAajvd,GAvYjD,SAAoBA,GAClB,OAAOA,EAAO1sF,MAAMm4iB,IAAgB,GAsYqByD,CAAWlvd,GAE7DA,EAAO1sF,MAAMqzF,IAAY,GA/LXkrG,CA6IvB,SAAgB7xG,GAEd,OADAA,EAAS5/F,EAAS4/F,KACDA,EAAO3lD,QAAQqxgB,EAASqC,GAAc1zgB,QAAQmzgB,EAAa,IA/IjD2B,CAAOnvd,GAAQ3lD,QAAQkzgB,EAAQ,KAAMptgB,EAAU,MAmK5E,IAhMyBuQ,GAgMrB0zM,IAhMqB1zM,GAgMQ,cA/LxB,SAASsvC,GAGd,IAAIovd,EAAapB,EAFjBhud,EAAS5/F,EAAS4/F,IAGdiud,EAAcjud,QACdj2F,EAEAg6J,EAAMqrZ,EACNA,EAAW,GACXpvd,EAAOnpB,OAAO,GAEdw4e,EAAWD,EACXV,EAAUU,EAAY,GAAGxsjB,KAAK,IAC9Bo9F,EAAO5oG,MAAM,GAEjB,OAAO2sK,EAAIrzG,MAAgB2+f,IA+M/Bljc,EAAO1qC,QAAU4hd,0BCtlBjB,IAIIisB,EAJY5te,EAAQ,MAIT6te,CAHJ7te,EAAQ,OAGY,YAE/ByqC,EAAO1qC,QAAU6te,yBCNjB,IAAIE,EAAY9te,EAAQ,OACpB+te,EAAa/te,EAAQ,OACrBgue,EAAUhue,EAAQ,OAClBiue,EAAUjue,EAAQ,OAClBkue,EAAUlue,EAAQ,OAStB,SAASmue,EAAKp5c,GACZ,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7Bqlc,EAAK14jB,UAAUy4G,MAAQ4/c,EACvBK,EAAK14jB,UAAL,OAA2Bs4jB,EAC3BI,EAAK14jB,UAAUqa,IAAMk+iB,EACrBG,EAAK14jB,UAAUq0B,IAAMmkiB,EACrBE,EAAK14jB,UAAUw/D,IAAMi5f,EAErBzjc,EAAO1qC,QAAUoue,yBC/BjB,IAAIC,EAAiBpue,EAAQ,OACzBque,EAAkBrue,EAAQ,MAC1Bsue,EAAetue,EAAQ,OACvBuue,EAAevue,EAAQ,OACvBwue,EAAexue,EAAQ,OAS3B,SAASyue,EAAU15c,GACjB,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7B2lc,EAAUh5jB,UAAUy4G,MAAQkgd,EAC5BK,EAAUh5jB,UAAV,OAAgC44jB,EAChCI,EAAUh5jB,UAAUqa,IAAMw+iB,EAC1BG,EAAUh5jB,UAAUq0B,IAAMykiB,EAC1BE,EAAUh5jB,UAAUw/D,IAAMu5f,EAE1B/jc,EAAO1qC,QAAU0ue,yBC/BjB,IAIIhnU,EAJYznK,EAAQ,MAId6te,CAHC7te,EAAQ,OAGO,OAE1ByqC,EAAO1qC,QAAU0nK,yBCNjB,IAAIinU,EAAgB1ue,EAAQ,OACxB2ue,EAAiB3ue,EAAQ,MACzB4ue,EAAc5ue,EAAQ,OACtB6ue,EAAc7ue,EAAQ,OACtB8ue,EAAc9ue,EAAQ,OAS1B,SAAS+ue,EAASh6c,GAChB,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7Bimc,EAASt5jB,UAAUy4G,MAAQwgd,EAC3BK,EAASt5jB,UAAT,OAA+Bk5jB,EAC/BI,EAASt5jB,UAAUqa,IAAM8+iB,EACzBG,EAASt5jB,UAAUq0B,IAAM+kiB,EACzBE,EAASt5jB,UAAUw/D,IAAM65f,EAEzBrkc,EAAO1qC,QAAUgve,yBC/BjB,IAII3ghB,EAJY4xC,EAAQ,MAIV6te,CAHH7te,EAAQ,OAGW,WAE9ByqC,EAAO1qC,QAAU3xC,yBCNjB,IAIIwmE,EAJY50B,EAAQ,MAId6te,CAHC7te,EAAQ,OAGO,OAE1ByqC,EAAO1qC,QAAU60B,yBCNjB,IAAIm6c,EAAW/ue,EAAQ,OACnBgve,EAAchve,EAAQ,OACtBive,EAAcjve,EAAQ,OAU1B,SAASkve,EAASrljB,GAChB,IAAI/Y,GAAS,EACTP,EAAmB,MAAVsZ,EAAiB,EAAIA,EAAOtZ,OAGzC,IADAN,KAAKk/jB,SAAW,IAAIJ,IACXj+jB,EAAQP,GACfN,KAAKsB,IAAIsY,EAAO/Y,IAKpBo+jB,EAASz5jB,UAAUlE,IAAM29jB,EAASz5jB,UAAU5E,KAAOm+jB,EACnDE,EAASz5jB,UAAUq0B,IAAMmliB,EAEzBxkc,EAAO1qC,QAAUmve,yBC1BjB,IAAIT,EAAYzue,EAAQ,OACpBove,EAAapve,EAAQ,OACrBqve,EAAcrve,EAAQ,OACtBsve,EAAWtve,EAAQ,OACnBuve,EAAWvve,EAAQ,OACnBwve,EAAWxve,EAAQ,OASvB,SAASyve,EAAM16c,GACb,IAAIj3G,EAAO7N,KAAKk/jB,SAAW,IAAIV,EAAU15c,GACzC9kH,KAAKwY,KAAO3K,EAAK2K,KAInBgnjB,EAAMh6jB,UAAUy4G,MAAQkhd,EACxBK,EAAMh6jB,UAAN,OAA4B45jB,EAC5BI,EAAMh6jB,UAAUqa,IAAMw/iB,EACtBG,EAAMh6jB,UAAUq0B,IAAMyliB,EACtBE,EAAMh6jB,UAAUw/D,IAAMu6f,EAEtB/kc,EAAO1qC,QAAU0ve,yBC1BjB,IAGIzlc,EAHOhqC,EAAQ,OAGDgqC,OAElBS,EAAO1qC,QAAUiqC,yBCLjB,IAGI0lc,EAHO1ve,EAAQ,OAGG0ve,WAEtBjlc,EAAO1qC,QAAU2ve,wBCLjB,IAIIvmc,EAJYnpC,EAAQ,MAIV6te,CAHH7te,EAAQ,OAGW,WAE9ByqC,EAAO1qC,QAAUopC,qBCkBjBsB,EAAO1qC,QAfP,SAAqBz3C,EAAOlzC,GAM1B,IALA,IAAItE,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,OACnCo/jB,EAAW,EACX7wjB,EAAS,KAEJhO,EAAQP,GAAQ,CACvB,IAAIsB,EAAQy2C,EAAMx3C,GACdsE,EAAUvD,EAAOf,EAAOw3C,KAC1BxpC,EAAO6wjB,KAAc99jB,GAGzB,OAAOiN,0BCrBT,IAAI8wjB,EAAY5ve,EAAQ,OACpB6ve,EAAc7ve,EAAQ,OACtBvU,EAAUuU,EAAQ,OAClB65H,EAAW75H,EAAQ,MACnB8ve,EAAU9ve,EAAQ,OAClB+ve,EAAe/ve,EAAQ,OAMvBjZ,EAHchwE,OAAOtB,UAGQsxE,eAqCjC0jD,EAAO1qC,QA3BP,SAAuBluF,EAAOm+jB,GAC5B,IAAIC,EAAQxkf,EAAQ55E,GAChBq+jB,GAASD,GAASJ,EAAYh+jB,GAC9Bs+jB,GAAUF,IAAUC,GAASr2W,EAAShoN,GACtCu+jB,GAAUH,IAAUC,IAAUC,GAAUJ,EAAal+jB,GACrDw+jB,EAAcJ,GAASC,GAASC,GAAUC,EAC1CtxjB,EAASuxjB,EAAcT,EAAU/9jB,EAAMtB,OAAQulE,QAAU,GACzDvlE,EAASuO,EAAOvO,OAEpB,IAAK,IAAI0G,KAAOpF,GACTm+jB,IAAajpf,EAAer2E,KAAKmB,EAAOoF,IACvCo5jB,IAEQ,UAAPp5jB,GAECk5jB,IAAkB,UAAPl5jB,GAA0B,UAAPA,IAE9Bm5jB,IAAkB,UAAPn5jB,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD64jB,EAAQ74jB,EAAK1G,KAElBuO,EAAOjO,KAAKoG,GAGhB,OAAO6H,sBCzBT2rH,EAAO1qC,QAXP,SAAkBz3C,EAAO4khB,GAKvB,IAJA,IAAIp8jB,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,OACnCuO,EAAStJ,MAAMjF,KAEVO,EAAQP,GACfuO,EAAOhO,GAASo8jB,EAAS5khB,EAAMx3C,GAAQA,EAAOw3C,GAEhD,OAAOxpC,sBCET2rH,EAAO1qC,QAXP,SAAmBz3C,EAAOz+B,GAKxB,IAJA,IAAI/Y,GAAS,EACTP,EAASsZ,EAAOtZ,OAChBiL,EAAS8sC,EAAM/3C,SAEVO,EAAQP,GACf+3C,EAAM9sC,EAAS1K,GAAS+Y,EAAO/Y,GAEjC,OAAOw3C,sBCSTmiF,EAAO1qC,QAbP,SAAqBz3C,EAAO4khB,EAAUv0S,EAAaw0S,GACjD,IAAIr8jB,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,OAKvC,IAHI48jB,GAAa58jB,IACfooR,EAAcrwO,IAAQx3C,MAEfA,EAAQP,GACfooR,EAAcu0S,EAASv0S,EAAarwO,EAAMx3C,GAAQA,EAAOw3C,GAE3D,OAAOqwO,sBCATluJ,EAAO1qC,QAZP,SAAmBz3C,EAAOlzC,GAIxB,IAHA,IAAItE,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,SAE9BO,EAAQP,GACf,GAAI6E,EAAUkzC,EAAMx3C,GAAQA,EAAOw3C,GACjC,OAAO,EAGX,OAAO,sBCRTmiF,EAAO1qC,QAJP,SAAsBue,GACpB,OAAOA,EAAO5gG,MAAM,wBCPtB,IAAIqsjB,EAAc,4CAalBt/b,EAAO1qC,QAJP,SAAoBue,GAClB,OAAOA,EAAO1sF,MAAMm4iB,IAAgB,2BCXtC,IAAIlygB,EAAKmoC,EAAQ,OAoBjByqC,EAAO1qC,QAVP,SAAsBz3C,EAAOrxC,GAE3B,IADA,IAAI1G,EAAS+3C,EAAM/3C,OACZA,KACL,GAAIsnD,EAAGvP,EAAM/3C,GAAQ,GAAI0G,GACvB,OAAO1G,EAGX,OAAQ,0BCjBV,IAAIykE,EAAiBgrB,EAAQ,OAwB7ByqC,EAAO1qC,QAbP,SAAyB1sE,EAAQpc,EAAKpF,GACzB,aAAPoF,GAAsB+9D,EACxBA,EAAe3hD,EAAQpc,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASpF,EACT,UAAY,IAGdwhB,EAAOpc,GAAOpF,0BCpBlB,IAaIy+jB,EAbgBtwe,EAAQ,MAaduwe,GAEd9lc,EAAO1qC,QAAUuwe,yBCfjB,IAAIA,EAAUtwe,EAAQ,OAClBhpF,EAAOgpF,EAAQ,OAcnByqC,EAAO1qC,QAJP,SAAoB1sE,EAAQ65iB,GAC1B,OAAO75iB,GAAUi9iB,EAAQj9iB,EAAQ65iB,EAAUl2jB,2BCZ7C,IAAIw5jB,EAAWxwe,EAAQ,OACnBywe,EAAQzwe,EAAQ,OAsBpByqC,EAAO1qC,QAZP,SAAiB1sE,EAAQ9V,GAMvB,IAHA,IAAIzM,EAAQ,EACRP,GAHJgN,EAAOizjB,EAASjzjB,EAAM8V,IAGJ9iB,OAED,MAAV8iB,GAAkBviB,EAAQP,GAC/B8iB,EAASA,EAAOo9iB,EAAMlzjB,EAAKzM,OAE7B,OAAQA,GAASA,GAASP,EAAU8iB,OAAShL,0BCpB/C,IAAIqojB,EAAY1we,EAAQ,OACpBvU,EAAUuU,EAAQ,OAkBtByqC,EAAO1qC,QALP,SAAwB1sE,EAAQs9iB,EAAUC,GACxC,IAAI9xjB,EAAS6xjB,EAASt9iB,GACtB,OAAOo4D,EAAQp4D,GAAUvU,EAAS4xjB,EAAU5xjB,EAAQ8xjB,EAAYv9iB,4BChBlE,IAAI22G,EAAShqC,EAAQ,OACjB6we,EAAY7we,EAAQ,OACpB0se,EAAiB1se,EAAQ,OAOzB8we,EAAiB9mc,EAASA,EAAOC,iBAAc5hH,EAkBnDoiH,EAAO1qC,QATP,SAAoBluF,GAClB,OAAa,MAATA,OACewW,IAAVxW,EAdQ,qBADL,gBAiBJi/jB,GAAkBA,KAAkB/5jB,OAAOlF,GAC/Cg/jB,EAAUh/jB,GACV66jB,EAAe76jB,uBCvBrB,IAGIk1E,EAHchwE,OAAOtB,UAGQsxE,eAcjC0jD,EAAO1qC,QAJP,SAAiB1sE,EAAQpc,GACvB,OAAiB,MAAVoc,GAAkB0zD,EAAer2E,KAAK2iB,EAAQpc,uBCHvDwzH,EAAO1qC,QAJP,SAAmB1sE,EAAQpc,GACzB,OAAiB,MAAVoc,GAAkBpc,KAAOF,OAAOsc,0BCTzC,IAAI09iB,EAAa/we,EAAQ,OACrB8se,EAAe9se,EAAQ,OAgB3ByqC,EAAO1qC,QAJP,SAAyBluF,GACvB,OAAOi7jB,EAAaj7jB,IAVR,sBAUkBk/jB,EAAWl/jB,2BCd3C,IAAIm/jB,EAAkBhxe,EAAQ,OAC1B8se,EAAe9se,EAAQ,OA0B3ByqC,EAAO1qC,QAVP,SAASkxe,EAAYp/jB,EAAOspH,EAAO+1c,EAASC,EAAY5qe,GACtD,OAAI10F,IAAUspH,IAGD,MAATtpH,GAA0B,MAATspH,IAAmB2xc,EAAaj7jB,KAAWi7jB,EAAa3xc,GACpEtpH,IAAUA,GAASspH,IAAUA,EAE/B61c,EAAgBn/jB,EAAOspH,EAAO+1c,EAASC,EAAYF,EAAa1qe,4BCxBzE,IAAIkpe,EAAQzve,EAAQ,OAChBoxe,EAAcpxe,EAAQ,OACtBqxe,EAAarxe,EAAQ,OACrBsxe,EAAetxe,EAAQ,OACvBuxe,EAASvxe,EAAQ,OACjBvU,EAAUuU,EAAQ,OAClB65H,EAAW75H,EAAQ,MACnB+ve,EAAe/ve,EAAQ,OAMvBwxe,EAAU,qBACVC,EAAW,iBACXC,EAAY,kBAMZ3qf,EAHchwE,OAAOtB,UAGQsxE,eA6DjC0jD,EAAO1qC,QA7CP,SAAyB1sE,EAAQ8nG,EAAO+1c,EAASC,EAAYQ,EAAWpre,GACtE,IAAIqre,EAAWnmf,EAAQp4D,GACnBw+iB,EAAWpmf,EAAQ0vC,GACnB22c,EAASF,EAAWH,EAAWF,EAAOl+iB,GACtC0+iB,EAASF,EAAWJ,EAAWF,EAAOp2c,GAKtC62c,GAHJF,EAASA,GAAUN,EAAUE,EAAYI,IAGhBJ,EACrBO,GAHJF,EAASA,GAAUP,EAAUE,EAAYK,IAGhBL,EACrBQ,EAAYJ,GAAUC,EAE1B,GAAIG,GAAar4W,EAASxmM,GAAS,CACjC,IAAKwmM,EAAS1+F,GACZ,OAAO,EAETy2c,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADAzre,IAAUA,EAAQ,IAAIkpe,GACdmC,GAAY7B,EAAa18iB,GAC7B+9iB,EAAY/9iB,EAAQ8nG,EAAO+1c,EAASC,EAAYQ,EAAWpre,GAC3D8qe,EAAWh+iB,EAAQ8nG,EAAO22c,EAAQZ,EAASC,EAAYQ,EAAWpre,GAExE,KArDyB,EAqDnB2qe,GAAiC,CACrC,IAAIiB,EAAeH,GAAYjrf,EAAer2E,KAAK2iB,EAAQ,eACvD++iB,EAAeH,GAAYlrf,EAAer2E,KAAKyqH,EAAO,eAE1D,GAAIg3c,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe9+iB,EAAOxhB,QAAUwhB,EAC/Ci/iB,EAAeF,EAAej3c,EAAMtpH,QAAUspH,EAGlD,OADA50B,IAAUA,EAAQ,IAAIkpe,GACfkC,EAAUU,EAAcC,EAAcpB,EAASC,EAAY5qe,IAGtE,QAAK2re,IAGL3re,IAAUA,EAAQ,IAAIkpe,GACf6B,EAAaj+iB,EAAQ8nG,EAAO+1c,EAASC,EAAYQ,EAAWpre,2BC/ErE,IAAIkpe,EAAQzve,EAAQ,OAChBixe,EAAcjxe,EAAQ,OA4D1ByqC,EAAO1qC,QA5CP,SAAqB1sE,EAAQuqG,EAAQ20c,EAAWpB,GAC9C,IAAIrgkB,EAAQyhkB,EAAUhikB,OAClBA,EAASO,EACT0hkB,GAAgBrB,EAEpB,GAAc,MAAV99iB,EACF,OAAQ9iB,EAGV,IADA8iB,EAAStc,OAAOsc,GACTviB,KAAS,CACd,IAAIgN,EAAOy0jB,EAAUzhkB,GACrB,GAAK0hkB,GAAgB10jB,EAAK,GAClBA,EAAK,KAAOuV,EAAOvV,EAAK,MACtBA,EAAK,KAAMuV,GAEnB,OAAO,EAGX,OAASviB,EAAQP,GAAQ,CAEvB,IAAI0G,GADJ6G,EAAOy0jB,EAAUzhkB,IACF,GACX2hkB,EAAWp/iB,EAAOpc,GAClBy7jB,EAAW50jB,EAAK,GAEpB,GAAI00jB,GAAgB10jB,EAAK,IACvB,QAAiBuK,IAAboqjB,KAA4Bx7jB,KAAOoc,GACrC,OAAO,MAEJ,CACL,IAAIkzE,EAAQ,IAAIkpe,EAChB,GAAI0B,EACF,IAAIryjB,EAASqyjB,EAAWsB,EAAUC,EAAUz7jB,EAAKoc,EAAQuqG,EAAQr3B,GAEnE,UAAiBl+E,IAAXvJ,EACEmyjB,EAAYyB,EAAUD,EAAUE,EAA+CxB,EAAY5qe,GAC3FznF,GAEN,OAAO,GAIb,OAAO,0BC1DT,IAAIqsE,EAAa6U,EAAQ,OACrB4ye,EAAW5ye,EAAQ,KACnBo6H,EAAWp6H,EAAQ,MACnB6ye,EAAW7ye,EAAQ,OASnB8ye,EAAe,8BAGfC,EAAY9W,SAASxmjB,UACrBu9jB,EAAcj8jB,OAAOtB,UAGrBw9jB,EAAeF,EAAUr0jB,SAGzBqoE,EAAiBisf,EAAYjsf,eAG7Bmsf,EAAaj6gB,OAAO,IACtBg6gB,EAAavikB,KAAKq2E,GAAgBpuB,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF8xE,EAAO1qC,QARP,SAAsBluF,GACpB,SAAKuoN,EAASvoN,IAAU+gkB,EAAS/gkB,MAGnBs5E,EAAWt5E,GAASqhkB,EAAaJ,GAChC3/hB,KAAK0/hB,EAAShhkB,4BC3C/B,IAAIk/jB,EAAa/we,EAAQ,OACrBmze,EAAWnze,EAAQ,OACnB8se,EAAe9se,EAAQ,OA8BvBoze,EAAiB,GACrBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7B3oc,EAAO1qC,QALP,SAA0BluF,GACxB,OAAOi7jB,EAAaj7jB,IAClBshkB,EAASthkB,EAAMtB,WAAa6ikB,EAAerC,EAAWl/jB,4BCxD1D,IAAIwhkB,EAAcrze,EAAQ,OACtBsze,EAAsBtze,EAAQ,OAC9Buze,EAAWvze,EAAQ,MACnBvU,EAAUuU,EAAQ,OAClB98D,EAAW88D,EAAQ,OA0BvByqC,EAAO1qC,QAjBP,SAAsBluF,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACK0hkB,EAEW,iBAAT1hkB,EACF45E,EAAQ55E,GACXyhkB,EAAoBzhkB,EAAM,GAAIA,EAAM,IACpCwhkB,EAAYxhkB,GAEXqxB,EAASrxB,2BC3BlB,IAAI2hkB,EAAcxze,EAAQ,OACtByze,EAAazze,EAAQ,OAMrBjZ,EAHchwE,OAAOtB,UAGQsxE,eAsBjC0jD,EAAO1qC,QAbP,SAAkB1sE,GAChB,IAAKmgjB,EAAYngjB,GACf,OAAOogjB,EAAWpgjB,GAEpB,IAAIvU,EAAS,GACb,IAAK,IAAI7H,KAAOF,OAAOsc,GACjB0zD,EAAer2E,KAAK2iB,EAAQpc,IAAe,eAAPA,GACtC6H,EAAOjO,KAAKoG,GAGhB,OAAO6H,0BC1BT,IAAI40jB,EAAc1ze,EAAQ,MACtB2ze,EAAe3ze,EAAQ,OACvB4ze,EAA0B5ze,EAAQ,OAmBtCyqC,EAAO1qC,QAVP,SAAqB69B,GACnB,IAAI20c,EAAYoB,EAAa/1c,GAC7B,OAAwB,GAApB20c,EAAUhikB,QAAegikB,EAAU,GAAG,GACjCqB,EAAwBrB,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASl/iB,GACd,OAAOA,IAAWuqG,GAAU81c,EAAYrgjB,EAAQuqG,EAAQ20c,4BCjB5D,IAAItB,EAAcjxe,EAAQ,OACtBlwE,EAAMkwE,EAAQ,OACd6ze,EAAQ7ze,EAAQ,OAChB8ze,EAAQ9ze,EAAQ,OAChB+ze,EAAqB/ze,EAAQ,OAC7B4ze,EAA0B5ze,EAAQ,OAClCywe,EAAQzwe,EAAQ,OA0BpByqC,EAAO1qC,QAZP,SAA6BxiF,EAAMm1jB,GACjC,OAAIoB,EAAMv2jB,IAASw2jB,EAAmBrB,GAC7BkB,EAAwBnD,EAAMlzjB,GAAOm1jB,GAEvC,SAASr/iB,GACd,IAAIo/iB,EAAW3ijB,EAAIuD,EAAQ9V,GAC3B,YAAqB8K,IAAboqjB,GAA0BA,IAAaC,EAC3CmB,EAAMxgjB,EAAQ9V,GACd0zjB,EAAYyB,EAAUD,EAAUE,uBCfxCloc,EAAO1qC,QANP,SAAsB9oF,GACpB,OAAO,SAASoc,GACd,OAAiB,MAAVA,OAAiBhL,EAAYgL,EAAOpc,2BCT/C,IAAI+8jB,EAAUh0e,EAAQ,OAetByqC,EAAO1qC,QANP,SAA0BxiF,GACxB,OAAO,SAAS8V,GACd,OAAO2gjB,EAAQ3gjB,EAAQ9V,wBCE3BktH,EAAO1qC,QANP,SAAwB1sE,GACtB,OAAO,SAASpc,GACd,OAAiB,MAAVoc,OAAiBhL,EAAYgL,EAAOpc,uBCqB/CwzH,EAAO1qC,QArBP,SAAmBz3C,EAAOx8B,EAAOuX,GAC/B,IAAIvyB,GAAS,EACTP,EAAS+3C,EAAM/3C,OAEfub,EAAQ,IACVA,GAASA,EAAQvb,EAAS,EAAKA,EAASub,IAE1CuX,EAAMA,EAAM9yB,EAASA,EAAS8yB,GACpB,IACRA,GAAO9yB,GAETA,EAASub,EAAQuX,EAAM,EAAMA,EAAMvX,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAIhN,EAAStJ,MAAMjF,KACVO,EAAQP,GACfuO,EAAOhO,GAASw3C,EAAMx3C,EAAQgb,GAEhC,OAAOhN,sBCRT2rH,EAAO1qC,QAVP,SAAmBp4B,EAAGulgB,GAIpB,IAHA,IAAIp8jB,GAAS,EACTgO,EAAStJ,MAAMmyD,KAEV72D,EAAQ62D,GACf7oD,EAAOhO,GAASo8jB,EAASp8jB,GAE3B,OAAOgO,yBChBT,IAAIkrH,EAAShqC,EAAQ,OACjBi0e,EAAWj0e,EAAQ,OACnBvU,EAAUuU,EAAQ,OAClB+se,EAAW/se,EAAQ,OAMnB2se,EAAc3ic,EAASA,EAAOv0H,eAAY4S,EAC1CukjB,EAAiBD,EAAcA,EAAYjujB,cAAW2J,EA0B1DoiH,EAAO1qC,QAhBP,SAAS8se,EAAah7jB,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI45E,EAAQ55E,GAEV,OAAOoikB,EAASpikB,EAAOg7jB,GAAgB,GAEzC,GAAIE,EAASl7jB,GACX,OAAO+6jB,EAAiBA,EAAel8jB,KAAKmB,GAAS,GAEvD,IAAIiN,EAAUjN,EAAQ,GACtB,MAAkB,KAAViN,GAAkB,EAAIjN,IA3BjB,SA2BwC,KAAOiN,sBCpB9D2rH,EAAO1qC,QANP,SAAmB3tC,GACjB,OAAO,SAASvgD,GACd,OAAOugD,EAAKvgD,wBCGhB44H,EAAO1qC,QAJP,SAAkBnwC,EAAO34C,GACvB,OAAO24C,EAAM9lB,IAAI7yB,2BCTnB,IAAIw0E,EAAUuU,EAAQ,OAClB8ze,EAAQ9ze,EAAQ,OAChBk0e,EAAel0e,EAAQ,OACvBthF,EAAWshF,EAAQ,OAiBvByqC,EAAO1qC,QAPP,SAAkBluF,EAAOwhB,GACvB,OAAIo4D,EAAQ55E,GACHA,EAEFiikB,EAAMjikB,EAAOwhB,GAAU,CAACxhB,GAASqikB,EAAax1jB,EAAS7M,4BCjBhE,IAAIo7jB,EAAYjte,EAAQ,MAiBxByqC,EAAO1qC,QANP,SAAmBz3C,EAAOx8B,EAAOuX,GAC/B,IAAI9yB,EAAS+3C,EAAM/3C,OAEnB,OADA8yB,OAAchb,IAARgb,EAAoB9yB,EAAS8yB,GAC1BvX,GAASuX,GAAO9yB,EAAU+3C,EAAQ2khB,EAAU3khB,EAAOx8B,EAAOuX,2BCdrE,IAGI8wiB,EAHOn0e,EAAQ,OAGG,sBAEtByqC,EAAO1qC,QAAUo0e,qBCmBjB1pc,EAAO1qC,QAjBP,SAAuBq0e,GACrB,OAAO,SAAS/gjB,EAAQ65iB,EAAUyD,GAMhC,IALA,IAAI7/jB,GAAS,EACTujkB,EAAWt9jB,OAAOsc,GAClBo8F,EAAQkhd,EAASt9iB,GACjB9iB,EAASk/G,EAAMl/G,OAEZA,KAAU,CACf,IAAI0G,EAAMw4G,EAAM2kd,EAAY7jkB,IAAWO,GACvC,IAA+C,IAA3Co8jB,EAASmH,EAASp9jB,GAAMA,EAAKo9jB,GAC/B,MAGJ,OAAOhhjB,2BCpBX,IAAI25iB,EAAYhte,EAAQ,OACpBsse,EAAatse,EAAQ,OACrBuse,EAAgBvse,EAAQ,OACxBthF,EAAWshF,EAAQ,OA6BvByqC,EAAO1qC,QApBP,SAAyB/wB,GACvB,OAAO,SAASsvC,GACdA,EAAS5/F,EAAS4/F,GAElB,IAAIovd,EAAapB,EAAWhud,GACxBiud,EAAcjud,QACdj2F,EAEAg6J,EAAMqrZ,EACNA,EAAW,GACXpvd,EAAOnpB,OAAO,GAEdw4e,EAAWD,EACXV,EAAUU,EAAY,GAAGxsjB,KAAK,IAC9Bo9F,EAAO5oG,MAAM,GAEjB,OAAO2sK,EAAIrzG,KAAgB2+f,2BC5B/B,IAAIP,EAAcpte,EAAQ,OACtByte,EAASzte,EAAQ,OACjBmwH,EAAQnwH,EAAQ,OAMhB6re,EAAS5ygB,OAHA,YAGe,KAe5BwxE,EAAO1qC,QANP,SAA0BthC,GACxB,OAAO,SAAS6/C,GACd,OAAO8ud,EAAYj9W,EAAMs9W,EAAOnvd,GAAQ3lD,QAAQkzgB,EAAQ,KAAMptgB,EAAU,6BCnB5E,IAoEI4tgB,EApEiBrse,EAAQ,MAoEVs0e,CAjEG,CAEpB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IACnC,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAER,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,KAC1B,SAAU,KAAM,SAAU,MAa5B7pc,EAAO1qC,QAAUsse,yBCtEjB,IAAIwB,EAAY7te,EAAQ,OAEpBhrB,EAAkB,WACpB,IACE,IAAI5iB,EAAOy7gB,EAAU92jB,OAAQ,kBAE7B,OADAq7C,EAAK,GAAI,GAAI,IACNA,EACP,MAAO3hD,KALW,GAQtBg6H,EAAO1qC,QAAU/qB,yBCVjB,IAAIk6f,EAAWlve,EAAQ,OACnBu0e,EAAYv0e,EAAQ,OACpBw0e,EAAWx0e,EAAQ,OAiFvByqC,EAAO1qC,QA9DP,SAAqBz3C,EAAO6yE,EAAO+1c,EAASC,EAAYQ,EAAWpre,GACjE,IAAIkue,EAjBqB,EAiBTvD,EACZwD,EAAYpshB,EAAM/3C,OAClBokkB,EAAYx5c,EAAM5qH,OAEtB,GAAImkkB,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAarue,EAAMz2E,IAAIw4B,GACvBushB,EAAatue,EAAMz2E,IAAIqrG,GAC3B,GAAIy5c,GAAcC,EAChB,OAAOD,GAAcz5c,GAAS05c,GAAcvshB,EAE9C,IAAIx3C,GAAS,EACTgO,GAAS,EACTg2jB,EA/BuB,EA+Bf5D,EAAoC,IAAIhC,OAAW7mjB,EAM/D,IAJAk+E,EAAMtxB,IAAI3sB,EAAO6yE,GACjB50B,EAAMtxB,IAAIkmD,EAAO7yE,KAGRx3C,EAAQ4jkB,GAAW,CAC1B,IAAIK,EAAWzshB,EAAMx3C,GACjBkkkB,EAAW75c,EAAMrqH,GAErB,GAAIqgkB,EACF,IAAI8D,EAAWR,EACXtD,EAAW6D,EAAUD,EAAUjkkB,EAAOqqH,EAAO7yE,EAAOi+C,GACpD4qe,EAAW4D,EAAUC,EAAUlkkB,EAAOw3C,EAAO6yE,EAAO50B,GAE1D,QAAiBl+E,IAAb4sjB,EAAwB,CAC1B,GAAIA,EACF,SAEFn2jB,GAAS,EACT,MAGF,GAAIg2jB,GACF,IAAKP,EAAUp5c,GAAO,SAAS65c,EAAUE,GACnC,IAAKV,EAASM,EAAMI,KACfH,IAAaC,GAAYrD,EAAUoD,EAAUC,EAAU9D,EAASC,EAAY5qe,IAC/E,OAAOuue,EAAKjkkB,KAAKqkkB,MAEjB,CACNp2jB,GAAS,EACT,YAEG,GACDi2jB,IAAaC,IACXrD,EAAUoD,EAAUC,EAAU9D,EAASC,EAAY5qe,GACpD,CACLznF,GAAS,EACT,OAKJ,OAFAynF,EAAK,OAAWj+C,GAChBi+C,EAAK,OAAW40B,GACTr8G,0BChFT,IAAIkrH,EAAShqC,EAAQ,OACjB0ve,EAAa1ve,EAAQ,OACrBnoC,EAAKmoC,EAAQ,OACboxe,EAAcpxe,EAAQ,OACtBm1e,EAAan1e,EAAQ,OACrBo1e,EAAap1e,EAAQ,OAqBrB2se,EAAc3ic,EAASA,EAAOv0H,eAAY4S,EAC1CgtjB,EAAgB1I,EAAcA,EAAY/7V,aAAUvoN,EAoFxDoiH,EAAO1qC,QAjEP,SAAoB1sE,EAAQ8nG,EAAOsV,EAAKygc,EAASC,EAAYQ,EAAWpre,GACtE,OAAQkqC,GACN,IAzBc,oBA0BZ,GAAKp9G,EAAOiijB,YAAcn6c,EAAMm6c,YAC3BjijB,EAAOkijB,YAAcp6c,EAAMo6c,WAC9B,OAAO,EAETlijB,EAASA,EAAO6mM,OAChB/+F,EAAQA,EAAM++F,OAEhB,IAlCiB,uBAmCf,QAAK7mM,EAAOiijB,YAAcn6c,EAAMm6c,aAC3B3D,EAAU,IAAIjC,EAAWr8iB,GAAS,IAAIq8iB,EAAWv0c,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOtjE,GAAIxkC,GAAS8nG,GAEtB,IAxDW,iBAyDT,OAAO9nG,EAAO5V,MAAQ09G,EAAM19G,MAAQ4V,EAAOqoB,SAAWy/E,EAAMz/E,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOroB,GAAW8nG,EAAQ,GAE5B,IAjES,eAkEP,IAAIq6c,EAAUL,EAEhB,IAjES,eAkEP,IAAIV,EA5EiB,EA4ELvD,EAGhB,GAFAsE,IAAYA,EAAUJ,GAElB/hjB,EAAO5K,MAAQ0yG,EAAM1yG,OAASgsjB,EAChC,OAAO,EAGT,IAAIgB,EAAUlve,EAAMz2E,IAAIuD,GACxB,GAAIoijB,EACF,OAAOA,GAAWt6c,EAEpB+1c,GAtFuB,EAyFvB3qe,EAAMtxB,IAAI5hD,EAAQ8nG,GAClB,IAAIr8G,EAASsyjB,EAAYoE,EAAQnijB,GAASmijB,EAAQr6c,GAAQ+1c,EAASC,EAAYQ,EAAWpre,GAE1F,OADAA,EAAK,OAAWlzE,GACTvU,EAET,IAnFY,kBAoFV,GAAIu2jB,EACF,OAAOA,EAAc3kkB,KAAK2iB,IAAWgijB,EAAc3kkB,KAAKyqH,GAG9D,OAAO,0BC5GT,IAAIu6c,EAAa11e,EAAQ,OASrBjZ,EAHchwE,OAAOtB,UAGQsxE,eAgFjC0jD,EAAO1qC,QAjEP,SAAsB1sE,EAAQ8nG,EAAO+1c,EAASC,EAAYQ,EAAWpre,GACnE,IAAIkue,EAtBqB,EAsBTvD,EACZyE,EAAWD,EAAWrijB,GACtBuijB,EAAYD,EAASplkB,OAIzB,GAAIqlkB,GAHWF,EAAWv6c,GACD5qH,SAEMkkkB,EAC7B,OAAO,EAGT,IADA,IAAI3jkB,EAAQ8kkB,EACL9kkB,KAAS,CACd,IAAImG,EAAM0+jB,EAAS7kkB,GACnB,KAAM2jkB,EAAYx9jB,KAAOkkH,EAAQp0C,EAAer2E,KAAKyqH,EAAOlkH,IAC1D,OAAO,EAIX,IAAI4+jB,EAAatve,EAAMz2E,IAAIuD,GACvBwhjB,EAAatue,EAAMz2E,IAAIqrG,GAC3B,GAAI06c,GAAchB,EAChB,OAAOgB,GAAc16c,GAAS05c,GAAcxhjB,EAE9C,IAAIvU,GAAS,EACbynF,EAAMtxB,IAAI5hD,EAAQ8nG,GAClB50B,EAAMtxB,IAAIkmD,EAAO9nG,GAGjB,IADA,IAAIyijB,EAAWrB,IACN3jkB,EAAQ8kkB,GAAW,CAE1B,IAAInD,EAAWp/iB,EADfpc,EAAM0+jB,EAAS7kkB,IAEXkkkB,EAAW75c,EAAMlkH,GAErB,GAAIk6jB,EACF,IAAI8D,EAAWR,EACXtD,EAAW6D,EAAUvC,EAAUx7jB,EAAKkkH,EAAO9nG,EAAQkzE,GACnD4qe,EAAWsB,EAAUuC,EAAU/9jB,EAAKoc,EAAQ8nG,EAAO50B,GAGzD,UAAmBl+E,IAAb4sjB,EACGxC,IAAauC,GAAYrD,EAAUc,EAAUuC,EAAU9D,EAASC,EAAY5qe,GAC7E0ue,GACD,CACLn2jB,GAAS,EACT,MAEFg3jB,IAAaA,EAAkB,eAAP7+jB,GAE1B,GAAI6H,IAAWg3jB,EAAU,CACvB,IAAIC,EAAU1ijB,EAAO5U,YACjBu3jB,EAAU76c,EAAM18G,YAGhBs3jB,GAAWC,KACV,gBAAiB3ijB,MAAU,gBAAiB8nG,IACzB,mBAAX46c,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDl3jB,GAAS,GAKb,OAFAynF,EAAK,OAAWlzE,GAChBkzE,EAAK,OAAW40B,GACTr8G,0BCrFT,IAAIqtjB,EAA8B,iBAAV5hc,EAAAA,GAAsBA,EAAAA,GAAUA,EAAAA,EAAOxzH,SAAWA,QAAUwzH,EAAAA,EAEpFE,EAAO1qC,QAAUose,yBCHjB,IAAI8J,EAAiBj2e,EAAQ,OACzBk2e,EAAal2e,EAAQ,OACrBhpF,EAAOgpF,EAAQ,OAanByqC,EAAO1qC,QAJP,SAAoB1sE,GAClB,OAAO4ijB,EAAe5ijB,EAAQrc,EAAMk/jB,2BCZtC,IAAIC,EAAYn2e,EAAQ,OAiBxByqC,EAAO1qC,QAPP,SAAoB5pF,EAAKc,GACvB,IAAI6G,EAAO3H,EAAIg5jB,SACf,OAAOgH,EAAUl/jB,GACb6G,EAAmB,iBAAP7G,EAAkB,SAAW,QACzC6G,EAAK3H,4BCdX,IAAI49jB,EAAqB/ze,EAAQ,OAC7BhpF,EAAOgpF,EAAQ,OAsBnByqC,EAAO1qC,QAbP,SAAsB1sE,GAIpB,IAHA,IAAIvU,EAAS9H,EAAKqc,GACd9iB,EAASuO,EAAOvO,OAEbA,KAAU,CACf,IAAI0G,EAAM6H,EAAOvO,GACbsB,EAAQwhB,EAAOpc,GAEnB6H,EAAOvO,GAAU,CAAC0G,EAAKpF,EAAOkikB,EAAmBlikB,IAEnD,OAAOiN,0BCpBT,IAAIs3jB,EAAep2e,EAAQ,OACvBnyD,EAAWmyD,EAAQ,OAevByqC,EAAO1qC,QALP,SAAmB1sE,EAAQpc,GACzB,IAAIpF,EAAQg8B,EAASxa,EAAQpc,GAC7B,OAAOm/jB,EAAavkkB,GAASA,OAAQwW,0BCbvC,IAAI2hH,EAAShqC,EAAQ,OAGjBgze,EAAcj8jB,OAAOtB,UAGrBsxE,EAAiBisf,EAAYjsf,eAO7Bsvf,EAAuBrD,EAAYt0jB,SAGnCoyjB,EAAiB9mc,EAASA,EAAOC,iBAAc5hH,EA6BnDoiH,EAAO1qC,QApBP,SAAmBluF,GACjB,IAAIykkB,EAAQvvf,EAAer2E,KAAKmB,EAAOi/jB,GACnCrgc,EAAM5+H,EAAMi/jB,GAEhB,IACEj/jB,EAAMi/jB,QAAkBzojB,EACxB,IAAIkujB,GAAW,EACf,MAAO9lkB,IAET,IAAIqO,EAASu3jB,EAAqB3lkB,KAAKmB,GAQvC,OAPI0kkB,IACED,EACFzkkB,EAAMi/jB,GAAkBrgc,SAEjB5+H,EAAMi/jB,IAGVhyjB,0BC1CT,IAAI03jB,EAAcx2e,EAAQ,OACtBy2e,EAAYz2e,EAAQ,OAMpB02e,EAHc3/jB,OAAOtB,UAGcihkB,qBAGnCC,EAAmB5/jB,OAAOsshB,sBAS1B6yC,EAAcS,EAA+B,SAAStjjB,GACxD,OAAc,MAAVA,EACK,IAETA,EAAStc,OAAOsc,GACTmjjB,EAAYG,EAAiBtjjB,IAAS,SAAS6zE,GACpD,OAAOwve,EAAqBhmkB,KAAK2iB,EAAQ6zE,QANRuve,EAUrChsc,EAAO1qC,QAAUm2e,yBC7BjB,IAAItI,EAAW5te,EAAQ,OACnBynK,EAAMznK,EAAQ,OACd5xC,EAAU4xC,EAAQ,OAClB40B,EAAM50B,EAAQ,OACdmpC,EAAUnpC,EAAQ,MAClB+we,EAAa/we,EAAQ,OACrB6ye,EAAW7ye,EAAQ,OAGnB42e,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBpE,EAASjF,GAC9BsJ,EAAgBrE,EAASprU,GACzB0vU,EAAoBtE,EAASzkhB,GAC7BgphB,EAAgBvE,EAASj+c,GACzByid,EAAoBxE,EAAS1pc,GAS7Booc,EAASR,GAGRnD,GAAY2D,EAAO,IAAI3D,EAAS,IAAIjxW,YAAY,MAAQq6W,GACxDvvU,GAAO8pU,EAAO,IAAI9pU,IAAQmvU,GAC1BxohB,GAAWmjhB,EAAOnjhB,EAAQ/tC,YAAcw2jB,GACxCjid,GAAO28c,EAAO,IAAI38c,IAAQkid,GAC1B3tc,GAAWooc,EAAO,IAAIpoc,IAAY4tc,KACrCxF,EAAS,SAAS1/jB,GAChB,IAAIiN,EAASiyjB,EAAWl/jB,GACpBukY,EA/BQ,mBA+BDt3X,EAAsBjN,EAAM4M,iBAAc4J,EACjDivjB,EAAalhM,EAAOy8L,EAASz8L,GAAQ,GAEzC,GAAIkhM,EACF,OAAQA,GACN,KAAKL,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAOj4jB,IAIX2rH,EAAO1qC,QAAUwxe,qBC7CjB9mc,EAAO1qC,QAJP,SAAkB1sE,EAAQpc,GACxB,OAAiB,MAAVoc,OAAiBhL,EAAYgL,EAAOpc,2BCT7C,IAAIu5jB,EAAWxwe,EAAQ,OACnB6ve,EAAc7ve,EAAQ,OACtBvU,EAAUuU,EAAQ,OAClB8ve,EAAU9ve,EAAQ,OAClBmze,EAAWnze,EAAQ,OACnBywe,EAAQzwe,EAAQ,OAiCpByqC,EAAO1qC,QAtBP,SAAiB1sE,EAAQ9V,EAAMg6jB,GAO7B,IAJA,IAAIzmkB,GAAS,EACTP,GAHJgN,EAAOizjB,EAASjzjB,EAAM8V,IAGJ9iB,OACduO,GAAS,IAEJhO,EAAQP,GAAQ,CACvB,IAAI0G,EAAMw5jB,EAAMlzjB,EAAKzM,IACrB,KAAMgO,EAAmB,MAAVuU,GAAkBkkjB,EAAQlkjB,EAAQpc,IAC/C,MAEFoc,EAASA,EAAOpc,GAElB,OAAI6H,KAAYhO,GAASP,EAChBuO,KAETvO,EAAmB,MAAV8iB,EAAiB,EAAIA,EAAO9iB,SAClB4ikB,EAAS5ikB,IAAWu/jB,EAAQ74jB,EAAK1G,KACjDk7E,EAAQp4D,IAAWw8iB,EAAYx8iB,wBClCpC,IAWI44iB,EAAehzgB,OAAO,uFAa1BwxE,EAAO1qC,QAJP,SAAoBue,GAClB,OAAO2td,EAAa94hB,KAAKmrE,uBCrB3B,IAAI4td,EAAmB,qEAavBzhc,EAAO1qC,QAJP,SAAwBue,GACtB,OAAO4td,EAAiB/4hB,KAAKmrE,2BCX/B,IAAIk5d,EAAex3e,EAAQ,OAc3ByqC,EAAO1qC,QALP,WACE9vF,KAAKk/jB,SAAWqI,EAAeA,EAAa,MAAQ,GACpDvnkB,KAAKwY,KAAO,sBCKdgiH,EAAO1qC,QANP,SAAoB9oF,GAClB,IAAI6H,EAAS7O,KAAK65B,IAAI7yB,WAAehH,KAAKk/jB,SAASl4jB,GAEnD,OADAhH,KAAKwY,MAAQ3J,EAAS,EAAI,EACnBA,0BCbT,IAAI04jB,EAAex3e,EAAQ,OASvBjZ,EAHchwE,OAAOtB,UAGQsxE,eAoBjC0jD,EAAO1qC,QATP,SAAiB9oF,GACf,IAAI6G,EAAO7N,KAAKk/jB,SAChB,GAAIqI,EAAc,CAChB,IAAI14jB,EAAShB,EAAK7G,GAClB,MArBiB,8BAqBV6H,OAA4BuJ,EAAYvJ,EAEjD,OAAOioE,EAAer2E,KAAKoN,EAAM7G,GAAO6G,EAAK7G,QAAOoR,0BC1BtD,IAAImvjB,EAAex3e,EAAQ,OAMvBjZ,EAHchwE,OAAOtB,UAGQsxE,eAgBjC0jD,EAAO1qC,QALP,SAAiB9oF,GACf,IAAI6G,EAAO7N,KAAKk/jB,SAChB,OAAOqI,OAA8BnvjB,IAAdvK,EAAK7G,GAAsB8vE,EAAer2E,KAAKoN,EAAM7G,2BCnB9E,IAAIugkB,EAAex3e,EAAQ,OAsB3ByqC,EAAO1qC,QAPP,SAAiB9oF,EAAKpF,GACpB,IAAIiM,EAAO7N,KAAKk/jB,SAGhB,OAFAl/jB,KAAKwY,MAAQxY,KAAK65B,IAAI7yB,GAAO,EAAI,EACjC6G,EAAK7G,GAAQugkB,QAA0BnvjB,IAAVxW,EAfV,4BAekDA,EAC9D5B,yBClBT,IAGIwnkB,EAAW,mBAoBfhtc,EAAO1qC,QAVP,SAAiBluF,EAAOtB,GACtB,IAAIqjB,SAAc/hB,EAGlB,SAFAtB,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARqjB,GACU,UAARA,GAAoB6jjB,EAAStkiB,KAAKthC,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQtB,0BCrBjD,IAAIk7E,EAAUuU,EAAQ,OAClB+se,EAAW/se,EAAQ,OAGnB03e,EAAe,mDACfC,EAAgB,QAuBpBltc,EAAO1qC,QAbP,SAAeluF,EAAOwhB,GACpB,GAAIo4D,EAAQ55E,GACV,OAAO,EAET,IAAI+hB,SAAc/hB,EAClB,QAAY,UAAR+hB,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT/hB,IAAiBk7jB,EAASl7jB,MAGvB8lkB,EAAcxkiB,KAAKthC,KAAW6lkB,EAAavkiB,KAAKthC,IAC1C,MAAVwhB,GAAkBxhB,KAASkF,OAAOsc,wBCXvCo3G,EAAO1qC,QAPP,SAAmBluF,GACjB,IAAI+hB,SAAc/hB,EAClB,MAAgB,UAAR+hB,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV/hB,EACU,OAAVA,wBCXP,IAAIsikB,EAAan0e,EAAQ,OAGrB43e,EAAc,WAChB,IAAI91B,EAAM,SAAStjiB,KAAK21jB,GAAcA,EAAWn9jB,MAAQm9jB,EAAWn9jB,KAAK6gkB,UAAY,IACrF,OAAO/1B,EAAO,iBAAmBA,EAAO,GAFxB,GAgBlBr3a,EAAO1qC,QAJP,SAAkB3tC,GAChB,QAASwlhB,GAAeA,KAAcxlhB,sBCfxC,IAAI4ghB,EAAcj8jB,OAAOtB,UAgBzBg1H,EAAO1qC,QAPP,SAAqBluF,GACnB,IAAIukY,EAAOvkY,GAASA,EAAM4M,YAG1B,OAAO5M,KAFqB,mBAARukY,GAAsBA,EAAK3gY,WAAcu9jB,2BCZ/D,IAAI54W,EAAWp6H,EAAQ,MAcvByqC,EAAO1qC,QAJP,SAA4BluF,GAC1B,OAAOA,IAAUA,IAAUuoN,EAASvoN,uBCCtC44H,EAAO1qC,QALP,WACE9vF,KAAKk/jB,SAAW,GAChBl/jB,KAAKwY,KAAO,yBCTd,IAAIqvjB,EAAe93e,EAAQ,OAMvBxgF,EAHahK,MAAMC,UAGC+J,OA4BxBirH,EAAO1qC,QAjBP,SAAyB9oF,GACvB,IAAI6G,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,EAAah6jB,EAAM7G,GAE/B,QAAInG,EAAQ,KAIRA,GADYgN,EAAKvN,OAAS,EAE5BuN,EAAKuqC,MAEL7oC,EAAO9O,KAAKoN,EAAMhN,EAAO,KAEzBb,KAAKwY,MACA,2BC/BT,IAAIqvjB,EAAe93e,EAAQ,OAkB3ByqC,EAAO1qC,QAPP,SAAsB9oF,GACpB,IAAI6G,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,EAAah6jB,EAAM7G,GAE/B,OAAOnG,EAAQ,OAAIuX,EAAYvK,EAAKhN,GAAO,2BCf7C,IAAIgnkB,EAAe93e,EAAQ,OAe3ByqC,EAAO1qC,QAJP,SAAsB9oF,GACpB,OAAO6gkB,EAAa7nkB,KAAKk/jB,SAAUl4jB,IAAQ,0BCZ7C,IAAI6gkB,EAAe93e,EAAQ,OAyB3ByqC,EAAO1qC,QAbP,SAAsB9oF,EAAKpF,GACzB,IAAIiM,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,EAAah6jB,EAAM7G,GAQ/B,OANInG,EAAQ,KACRb,KAAKwY,KACP3K,EAAKjN,KAAK,CAACoG,EAAKpF,KAEhBiM,EAAKhN,GAAO,GAAKe,EAEZ5B,6BCtBT,IAAIk+jB,EAAOnue,EAAQ,OACfyue,EAAYzue,EAAQ,OACpBynK,EAAMznK,EAAQ,OAkBlByqC,EAAO1qC,QATP,WACE9vF,KAAKwY,KAAO,EACZxY,KAAKk/jB,SAAW,CACd,KAAQ,IAAIhB,EACZ,IAAO,IAAK1mU,GAAOgnU,GACnB,OAAU,IAAIN,0BChBlB,IAAI4J,EAAa/3e,EAAQ,OAiBzByqC,EAAO1qC,QANP,SAAwB9oF,GACtB,IAAI6H,EAASi5jB,EAAW9nkB,KAAMgH,GAAjB,OAAgCA,GAE7C,OADAhH,KAAKwY,MAAQ3J,EAAS,EAAI,EACnBA,0BCdT,IAAIi5jB,EAAa/3e,EAAQ,OAezByqC,EAAO1qC,QAJP,SAAqB9oF,GACnB,OAAO8gkB,EAAW9nkB,KAAMgH,GAAK6Y,IAAI7Y,2BCZnC,IAAI8gkB,EAAa/3e,EAAQ,OAezByqC,EAAO1qC,QAJP,SAAqB9oF,GACnB,OAAO8gkB,EAAW9nkB,KAAMgH,GAAK6yB,IAAI7yB,2BCZnC,IAAI8gkB,EAAa/3e,EAAQ,OAqBzByqC,EAAO1qC,QATP,SAAqB9oF,EAAKpF,GACxB,IAAIiM,EAAOi6jB,EAAW9nkB,KAAMgH,GACxBwR,EAAO3K,EAAK2K,KAIhB,OAFA3K,EAAKm3D,IAAIh+D,EAAKpF,GACd5B,KAAKwY,MAAQ3K,EAAK2K,MAAQA,EAAO,EAAI,EAC9BxY,yBCDTw6H,EAAO1qC,QAVP,SAAoB5pF,GAClB,IAAIrF,GAAS,EACTgO,EAAStJ,MAAMW,EAAIsS,MAKvB,OAHAtS,EAAIjG,SAAQ,SAAS2B,EAAOoF,GAC1B6H,IAAShO,GAAS,CAACmG,EAAKpF,MAEnBiN,sBCKT2rH,EAAO1qC,QAVP,SAAiC9oF,EAAKy7jB,GACpC,OAAO,SAASr/iB,GACd,OAAc,MAAVA,IAGGA,EAAOpc,KAASy7jB,SACPrqjB,IAAbqqjB,GAA2Bz7jB,KAAOF,OAAOsc,8BCfhD,IAAI2kjB,EAAUh4e,EAAQ,OAyBtByqC,EAAO1qC,QAZP,SAAuB3tC,GACrB,IAAItzC,EAASk5jB,EAAQ5lhB,GAAM,SAASn7C,GAIlC,OAfmB,MAYf24C,EAAMnnC,MACRmnC,EAAMs+D,QAEDj3G,KAGL24C,EAAQ9wC,EAAO8wC,MACnB,OAAO9wC,0BCtBT,IAGI04jB,EAHYx3e,EAAQ,MAGL6te,CAAU92jB,OAAQ,UAErC0zH,EAAO1qC,QAAUy3e,yBCLjB,IAGI/D,EAHUzze,EAAQ,MAGLi4e,CAAQlhkB,OAAOC,KAAMD,QAEtC0zH,EAAO1qC,QAAU0ze,oCCLjB,IAAItH,EAAanse,EAAQ,OAGrBk4e,EAA4Cn4e,IAAYA,EAAQ9U,UAAY8U,EAG5Eo4e,EAAaD,GAA4Cztc,IAAWA,EAAOx/C,UAAYw/C,EAMvF2tc,EAHgBD,GAAcA,EAAWp4e,UAAYm4e,GAGtB/L,EAAW7ne,QAG1C+ze,EAAY,WACd,IAEE,IAAIzyiB,EAAQuyiB,GAAcA,EAAWn4e,SAAWm4e,EAAWn4e,QAAQ,QAAQp6D,MAE3E,OAAIA,GAKGwyiB,GAAeA,EAAY3lZ,SAAW2lZ,EAAY3lZ,QAAQ,QACjE,MAAOhiL,KAXK,GAchBg6H,EAAO1qC,QAAUs4e,qBC5BjB,IAOIhC,EAPct/jB,OAAOtB,UAOciJ,SAavC+rH,EAAO1qC,QAJP,SAAwBluF,GACtB,OAAOwkkB,EAAqB3lkB,KAAKmB,uBCJnC44H,EAAO1qC,QANP,SAAiB3tC,EAAM55B,GACrB,OAAO,SAASwG,GACd,OAAOozB,EAAK55B,EAAUwG,6BCV1B,IAAImtiB,EAAanse,EAAQ,OAGrBose,EAA0B,iBAARv1iB,MAAoBA,MAAQA,KAAK9f,SAAWA,QAAU8f,KAGxE9V,EAAOorjB,GAAcC,GAAYnQ,SAAS,cAATA,GAErCxxb,EAAO1qC,QAAUh/E,qBCUjB0pH,EAAO1qC,QALP,SAAqBluF,GAEnB,OADA5B,KAAKk/jB,SAASl6f,IAAIpjE,EAbC,6BAcZ5B,yBCFTw6H,EAAO1qC,QAJP,SAAqBluF,GACnB,OAAO5B,KAAKk/jB,SAASrliB,IAAIj4B,uBCO3B44H,EAAO1qC,QAVP,SAAoB9qB,GAClB,IAAInkE,GAAS,EACTgO,EAAStJ,MAAMy/D,EAAIxsD,MAKvB,OAHAwsD,EAAI/kE,SAAQ,SAAS2B,GACnBiN,IAAShO,GAASe,KAEbiN,0BCdT,IAAI2vjB,EAAYzue,EAAQ,OAcxByqC,EAAO1qC,QALP,WACE9vF,KAAKk/jB,SAAW,IAAIV,EACpBx+jB,KAAKwY,KAAO,sBCMdgiH,EAAO1qC,QARP,SAAqB9oF,GACnB,IAAI6G,EAAO7N,KAAKk/jB,SACZrwjB,EAAShB,EAAI,OAAW7G,GAG5B,OADAhH,KAAKwY,KAAO3K,EAAK2K,KACV3J,sBCDT2rH,EAAO1qC,QAJP,SAAkB9oF,GAChB,OAAOhH,KAAKk/jB,SAASr/iB,IAAI7Y,uBCG3BwzH,EAAO1qC,QAJP,SAAkB9oF,GAChB,OAAOhH,KAAKk/jB,SAASrliB,IAAI7yB,2BCV3B,IAAIw3jB,EAAYzue,EAAQ,OACpBynK,EAAMznK,EAAQ,OACd+ue,EAAW/ue,EAAQ,OA+BvByqC,EAAO1qC,QAhBP,SAAkB9oF,EAAKpF,GACrB,IAAIiM,EAAO7N,KAAKk/jB,SAChB,GAAIrxjB,aAAgB2wjB,EAAW,CAC7B,IAAI6J,EAAQx6jB,EAAKqxjB,SACjB,IAAK1nU,GAAQ6wU,EAAM/nkB,OAASgokB,IAG1B,OAFAD,EAAMznkB,KAAK,CAACoG,EAAKpF,IACjB5B,KAAKwY,OAAS3K,EAAK2K,KACZxY,KAET6N,EAAO7N,KAAKk/jB,SAAW,IAAIJ,EAASuJ,GAItC,OAFAx6jB,EAAKm3D,IAAIh+D,EAAKpF,GACd5B,KAAKwY,KAAO3K,EAAK2K,KACVxY,6BC9BT,IAAIw8jB,EAAezse,EAAQ,OACvBsse,EAAatse,EAAQ,OACrBwse,EAAiBxse,EAAQ,OAe7ByqC,EAAO1qC,QANP,SAAuBue,GACrB,OAAOgud,EAAWhud,GACdkud,EAAelud,GACfmud,EAAanud,2BCdnB,IAAIk6d,EAAgBx4e,EAAQ,OAGxBy4e,EAAa,mGAGbC,EAAe,WASfxE,EAAesE,GAAc,SAASl6d,GACxC,IAAIx/F,EAAS,GAOb,OAN6B,KAAzBw/F,EAAOj9C,WAAW,IACpBviD,EAAOjO,KAAK,IAEdytG,EAAO3lD,QAAQ8/gB,GAAY,SAAS7mjB,EAAO83D,EAAQ4oF,EAAOtgJ,GACxDlT,EAAOjO,KAAKyhK,EAAQtgJ,EAAU2mC,QAAQ+/gB,EAAc,MAAShvf,GAAU93D,MAElE9S,KAGT2rH,EAAO1qC,QAAUm0e,yBC1BjB,IAAInH,EAAW/se,EAAQ,OAoBvByqC,EAAO1qC,QARP,SAAeluF,GACb,GAAoB,iBAATA,GAAqBk7jB,EAASl7jB,GACvC,OAAOA,EAET,IAAIiN,EAAUjN,EAAQ,GACtB,MAAkB,KAAViN,GAAkB,EAAIjN,IAdjB,SAcwC,KAAOiN,sBChB9D,IAGIm0jB,EAHYhX,SAASxmjB,UAGIiJ,SAqB7B+rH,EAAO1qC,QAZP,SAAkB3tC,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO6ghB,EAAavikB,KAAK0hD,GACzB,MAAO3hD,IACT,IACE,OAAQ2hD,EAAO,GACf,MAAO3hD,KAEX,MAAO,uBCrBT,IAQI+5jB,EAAW,oBACXE,EAAU,kDACVK,EAAS,2BAETC,EAAc,qBACdC,EAAa,kCACbC,EAAa,qCAIbM,EAPa,MAAQd,EAAU,IAAMK,EAAS,IAOtB,IACxBU,EAAW,oBAEXC,EAAQD,EAAWD,GADP,gBAAwB,CAACR,EAAaC,EAAYC,GAAYhqjB,KAAK,KAAO,IAAMuqjB,EAAWD,EAAW,MAElHI,EAAW,MAAQ,CAACZ,EAAcN,EAAU,IAAKA,EAASO,EAAYC,EAAYV,GAAUtpjB,KAAK,KAAO,IAGxG6qjB,EAAY9ygB,OAAO8xgB,EAAS,MAAQA,EAAS,KAAOa,EAAWF,EAAO,KAa1Ejhc,EAAO1qC,QAJP,SAAwBue,GACtB,OAAOA,EAAO1sF,MAAMm6iB,IAAc,uBCnCpC,IAKI7B,EAAiB,kBACjBC,EAAe,4BAKfC,EAAe,4BAEfC,EAAeC,8OAIfG,EAAU,IAAMJ,EAAe,IAE/BM,EAAW,OACXC,EAAY,oBACZC,EAAU,IAAMV,EAAe,IAC/BW,EAAS,oBAAuBT,EAAeM,EAAWT,EAAiBC,EAAeC,EAAe,IAIzGa,EAAa,kCACbC,EAAa,qCACbC,EAAU,IAAMf,EAAe,IAI/BuO,EAAc,MAAQ9N,EAAU,IAAMC,EAAS,IAC/C8N,EAAc,MAAQzN,EAAU,IAAML,EAAS,IAC/C+N,EAAkB,qCAClBC,EAAkB,qCAClBtN,EAAWuN,gFACXtN,EAAW,oBAIXC,EAAQD,EAAWD,GAHP,gBAAwB,CAbtB,qBAaoCP,EAAYC,GAAYhqjB,KAAK,KAAO,IAAMuqjB,EAAWD,EAAW,MAIlHG,EAAU,MAAQ,CAACf,EAAWK,EAAYC,GAAYhqjB,KAAK,KAAO,IAAMwqjB,EAGxEM,EAAgB/ygB,OAAO,CACzBkygB,EAAU,IAAMN,EAAU,IAAMgO,EAAkB,MAAQ,CAACpO,EAASU,EAAS,KAAKjqjB,KAAK,KAAO,IAC9F03jB,EAAc,IAAME,EAAkB,MAAQ,CAACrO,EAASU,EAAUwN,EAAa,KAAKz3jB,KAAK,KAAO,IAChGiqjB,EAAU,IAAMwN,EAAc,IAAME,EACpC1N,EAAU,IAAM2N,EATD,mDADA,mDAafnO,EACAgB,GACAzqjB,KAAK,KAAM,KAabupH,EAAO1qC,QAJP,SAAsBue,GACpB,OAAOA,EAAO1sF,MAAMo6iB,IAAkB,2BCjExC,IAAIgN,EAAah5e,EAAQ,OAuBrB2hd,EAtBmB3hd,EAAQ,MAsBfi5e,EAAiB,SAASn6jB,EAAQ4vJ,EAAM59J,GAEtD,OADA49J,EAAOA,EAAKx7H,cACLp0B,GAAUhO,EAAQkokB,EAAWtqa,GAAQA,MAG9CjkC,EAAO1qC,QAAU4hd,yBC5BjB,IAAIjjiB,EAAWshF,EAAQ,OACnB0iL,EAAa1iL,EAAQ,OAqBzByqC,EAAO1qC,QAJP,SAAoBue,GAClB,OAAOokK,EAAWhkQ,EAAS4/F,GAAQprE,uCCnBrC,IAAIm5hB,EAAerse,EAAQ,OACvBthF,EAAWshF,EAAQ,OAGnBgqe,EAAU,8CAeV8B,EAAc7ygB,OANJ,kDAMoB,KAyBlCwxE,EAAO1qC,QALP,SAAgBue,GAEd,OADAA,EAAS5/F,EAAS4/F,KACDA,EAAO3lD,QAAQqxgB,EAASqC,GAAc1zgB,QAAQmzgB,EAAa,wBCL9Erhc,EAAO1qC,QAJP,SAAYluF,EAAOspH,GACjB,OAAOtpH,IAAUspH,GAAUtpH,IAAUA,GAASspH,IAAUA,0BCjC1D,IAAI64c,EAAUh0e,EAAQ,OAgCtByqC,EAAO1qC,QALP,SAAa1sE,EAAQ9V,EAAMinC,GACzB,IAAI1lC,EAAmB,MAAVuU,OAAiBhL,EAAY2rjB,EAAQ3gjB,EAAQ9V,GAC1D,YAAkB8K,IAAXvJ,EAAuB0lC,EAAe1lC,0BC7B/C,IAAIo6jB,EAAUl5e,EAAQ,OAClBm5e,EAAUn5e,EAAQ,OAiCtByqC,EAAO1qC,QAJP,SAAa1sE,EAAQ9V,GACnB,OAAiB,MAAV8V,GAAkB8ljB,EAAQ9ljB,EAAQ9V,EAAM27jB,2BC/BjD,IAAIE,EAAYp5e,EAAQ,OACpBm5e,EAAUn5e,EAAQ,OAgCtByqC,EAAO1qC,QAJP,SAAe1sE,EAAQ9V,GACrB,OAAiB,MAAV8V,GAAkB8ljB,EAAQ9ljB,EAAQ9V,EAAM67jB,sBCVjD3uc,EAAO1qC,QAJP,SAAkBluF,GAChB,OAAOA,0BCjBT,IAAIwnkB,EAAkBr5e,EAAQ,MAC1B8se,EAAe9se,EAAQ,OAGvBgze,EAAcj8jB,OAAOtB,UAGrBsxE,EAAiBisf,EAAYjsf,eAG7B2vf,EAAuB1D,EAAY0D,qBAoBnC7G,EAAcwJ,EAAgB,WAAa,OAAOrhkB,UAApB,IAAsCqhkB,EAAkB,SAASxnkB,GACjG,OAAOi7jB,EAAaj7jB,IAAUk1E,EAAer2E,KAAKmB,EAAO,YACtD6kkB,EAAqBhmkB,KAAKmB,EAAO,WAGtC44H,EAAO1qC,QAAU8ve,qBCZjB,IAAIpkf,EAAUj2E,MAAMi2E,QAEpBg/C,EAAO1qC,QAAUtU,yBCzBjB,IAAIN,EAAa6U,EAAQ,OACrBmze,EAAWnze,EAAQ,OA+BvByqC,EAAO1qC,QAJP,SAAqBluF,GACnB,OAAgB,MAATA,GAAiBshkB,EAASthkB,EAAMtB,UAAY46E,EAAWt5E,qCC7BhE,IAAIkP,EAAOi/E,EAAQ,OACfs5e,EAAYt5e,EAAQ,OAGpBk4e,EAA4Cn4e,IAAYA,EAAQ9U,UAAY8U,EAG5Eo4e,EAAaD,GAA4Cztc,IAAWA,EAAOx/C,UAAYw/C,EAMvF8uc,EAHgBpB,GAAcA,EAAWp4e,UAAYm4e,EAG5Bn3jB,EAAKw4jB,YAASlxjB,EAsBvCwxM,GAnBiB0/W,EAASA,EAAO1/W,cAAWxxM,IAmBfixjB,EAEjC7uc,EAAO1qC,QAAU85H,yBCrCjB,IAAIk3W,EAAa/we,EAAQ,OACrBo6H,EAAWp6H,EAAQ,MAmCvByqC,EAAO1qC,QAVP,SAAoBluF,GAClB,IAAKuoN,EAASvoN,GACZ,OAAO,EAIT,IAAI4+H,EAAMsgc,EAAWl/jB,GACrB,MA5BY,qBA4BL4+H,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,sBCC/DhG,EAAO1qC,QALP,SAAkBluF,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,oCC6BvB44H,EAAO1qC,QALP,SAAkBluF,GAChB,IAAI+hB,SAAc/hB,EAClB,OAAgB,MAATA,IAA0B,UAAR+hB,GAA4B,YAARA,uBCC/C62G,EAAO1qC,QAJP,SAAsBluF,GACpB,OAAgB,MAATA,GAAiC,iBAATA,0BCzBjC,IAAIk/jB,EAAa/we,EAAQ,OACrB8se,EAAe9se,EAAQ,OA2B3ByqC,EAAO1qC,QALP,SAAkBluF,GAChB,MAAuB,iBAATA,GACXi7jB,EAAaj7jB,IArBF,mBAqBYk/jB,EAAWl/jB,2BCzBvC,IAAI2nkB,EAAmBx5e,EAAQ,OAC3By5e,EAAYz5e,EAAQ,OACpBq4e,EAAWr4e,EAAQ,OAGnB05e,EAAmBrB,GAAYA,EAAStI,aAmBxCA,EAAe2J,EAAmBD,EAAUC,GAAoBF,EAEpE/uc,EAAO1qC,QAAUgwe,yBC1BjB,IAAI4J,EAAgB35e,EAAQ,OACxB45e,EAAW55e,EAAQ,OACnBu0c,EAAcv0c,EAAQ,OAkC1ByqC,EAAO1qC,QAJP,SAAc1sE,GACZ,OAAOkhhB,EAAYlhhB,GAAUsmjB,EAActmjB,GAAUumjB,EAASvmjB,2BCjChE,IAAIwmjB,EAAkB75e,EAAQ,OAC1B85e,EAAa95e,EAAQ,OACrB+5e,EAAe/5e,EAAQ,OAiC3ByqC,EAAO1qC,QAVP,SAAiB1sE,EAAQ65iB,GACvB,IAAIpujB,EAAS,GAMb,OALAoujB,EAAW6M,EAAa7M,EAAU,GAElC4M,EAAWzmjB,GAAQ,SAASxhB,EAAOoF,EAAKoc,GACtCwmjB,EAAgB/6jB,EAAQoujB,EAASr7jB,EAAOoF,EAAKoc,GAASxhB,MAEjDiN,0BChCT,IAAI+6jB,EAAkB75e,EAAQ,OAC1B85e,EAAa95e,EAAQ,OACrB+5e,EAAe/5e,EAAQ,OAwC3ByqC,EAAO1qC,QAVP,SAAmB1sE,EAAQ65iB,GACzB,IAAIpujB,EAAS,GAMb,OALAoujB,EAAW6M,EAAa7M,EAAU,GAElC4M,EAAWzmjB,GAAQ,SAASxhB,EAAOoF,EAAKoc,GACtCwmjB,EAAgB/6jB,EAAQ7H,EAAKi2jB,EAASr7jB,EAAOoF,EAAKoc,OAE7CvU,0BCvCT,IAAIiwjB,EAAW/ue,EAAQ,OAiDvB,SAASg4e,EAAQ5lhB,EAAMhrB,GACrB,GAAmB,mBAARgrB,GAAmC,MAAZhrB,GAAuC,mBAAZA,EAC3D,MAAM,IAAI4uF,UAhDQ,uBAkDpB,IAAIgkd,EAAW,SAAXA,IACF,IAAIvjjB,EAAOze,UACPf,EAAMmwB,EAAWA,EAASnR,MAAMhmB,KAAMwmB,GAAQA,EAAK,GACnDm5B,EAAQoqhB,EAASpqhB,MAErB,GAAIA,EAAM9lB,IAAI7yB,GACZ,OAAO24C,EAAM9/B,IAAI7Y,GAEnB,IAAI6H,EAASszC,EAAKn8B,MAAMhmB,KAAMwmB,GAE9B,OADAujjB,EAASpqhB,MAAQA,EAAMqlB,IAAIh+D,EAAK6H,IAAW8wC,EACpC9wC,GAGT,OADAk7jB,EAASpqhB,MAAQ,IAAKoohB,EAAQiC,OAASlL,GAChCiL,EAIThC,EAAQiC,MAAQlL,EAEhBtkc,EAAO1qC,QAAUi4e,yBCxEjB,IAAIkC,EAAel6e,EAAQ,MACvBm6e,EAAmBn6e,EAAQ,MAC3B8ze,EAAQ9ze,EAAQ,OAChBywe,EAAQzwe,EAAQ,OA4BpByqC,EAAO1qC,QAJP,SAAkBxiF,GAChB,OAAOu2jB,EAAMv2jB,GAAQ28jB,EAAazJ,EAAMlzjB,IAAS48jB,EAAiB58jB,2BC5BpE,IAuBI68jB,EAvBmBp6e,EAAQ,MAuBfi5e,EAAiB,SAASn6jB,EAAQ4vJ,EAAM59J,GACtD,OAAOgO,GAAUhO,EAAQ,IAAM,IAAM49J,EAAKx7H,iBAG5Cu3F,EAAO1qC,QAAUq6e,qBCLjB3vc,EAAO1qC,QAJP,WACE,MAAO,uBCFT0qC,EAAO1qC,QAJP,WACE,OAAO,0BCdT,IAAI8se,EAAe7se,EAAQ,MA2B3ByqC,EAAO1qC,QAJP,SAAkBluF,GAChB,OAAgB,MAATA,EAAgB,GAAKg7jB,EAAah7jB,2BCxB3C,IAmBI6wQ,EAnBkB1iL,EAAQ,MAmBbq6e,CAAgB,eAEjC5vc,EAAO1qC,QAAU2iL,yBCrBjB,IAAI8qT,EAAaxte,EAAQ,OACrBste,EAAiBtte,EAAQ,OACzBthF,EAAWshF,EAAQ,OACnBute,EAAevte,EAAQ,OA+B3ByqC,EAAO1qC,QAVP,SAAeue,EAAQ2G,EAASood,GAI9B,OAHA/ud,EAAS5/F,EAAS4/F,QAGFj2F,KAFhB48F,EAAUood,OAAQhljB,EAAY48F,GAGrBqod,EAAehvd,GAAUivd,EAAajvd,GAAUkvd,EAAWlvd,GAE7DA,EAAO1sF,MAAMqzF,IAAY,oCC1BlC,SAASg1d,EAAM/xP,GACbj4U,KAAKqqkB,SAAWpyP,EAChBj4U,KAAKi+G,QAEP+rd,EAAMxkkB,UAAUy4G,MAAQ,WACtBj+G,KAAKksC,MAAQ,EACblsC,KAAKsyE,QAAUxrE,OAAOw4B,OAAO,OAE/B0qiB,EAAMxkkB,UAAUqa,IAAM,SAAU7Y,GAC9B,OAAOhH,KAAKsyE,QAAQtrE,IAEtBgjkB,EAAMxkkB,UAAUw/D,IAAM,SAAUh+D,EAAKpF,GAInC,OAHA5B,KAAKksC,OAASlsC,KAAKqqkB,UAAYrqkB,KAAKi+G,QAC9Bj3G,KAAOhH,KAAKsyE,SAAUtyE,KAAKksC,QAEzBlsC,KAAKsyE,QAAQtrE,GAAOpF,GAG9B,IAAI0okB,EAAc,4BAChBC,EAAc,QACdC,EAAmB,MACnBC,EAAkB,yCAClBC,EAAqB,2BAGnBC,EAAY,IAAIX,EAFD,KAGjBY,EAAW,IAAIZ,EAHE,KAIjBa,EAAW,IAAIb,EAJE,KA0EnB,SAASvwX,EAAcnsM,GACrB,OACEq9jB,EAAU9qjB,IAAIvS,IACdq9jB,EAAU3lgB,IACR13D,EACAG,EAAMH,GAAMpH,KAAI,SAAU2pH,GACxB,OAAOA,EAAKnnE,QAAQgihB,EAAoB,UAMhD,SAASj9jB,EAAMH,GACb,OAAOA,EAAKqU,MAAM2ojB,IAAgB,CAAC,IA0BrC,SAASQ,EAAStsf,GAChB,MACiB,kBAARA,GAAoBA,IAA8C,IAAvC,CAAC,IAAK,KAAKr4E,QAAQq4E,EAAI0G,OAAO,IAYpE,SAAS6lf,EAAel7c,GACtB,OAAQi7c,EAASj7c,KATnB,SAA0BA,GACxB,OAAOA,EAAKluG,MAAM6ojB,KAAsB36c,EAAKluG,MAAM4ojB,GAQxBS,CAAiBn7c,IAL9C,SAAyBA,GACvB,OAAO46c,EAAgBvniB,KAAK2sF,GAIyBo7c,CAAgBp7c,IAxHvE2K,EAAO1qC,QAAU,CACfk6e,MAAOA,EAEPv8jB,MAAOA,EAEPgsM,cAAeA,EAEf+sK,OAAQ,SAAUl5W,GAChB,IAAI0b,EAAQywL,EAAcnsM,GAE1B,OACEs9jB,EAAS/qjB,IAAIvS,IACbs9jB,EAAS5lgB,IAAI13D,GAAM,SAAgBogE,EAAK9rE,GAKtC,IAJA,IAAIf,EAAQ,EACR22C,EAAMxuB,EAAM1oB,OACZuN,EAAO6/D,EAEJ7sE,EAAQ22C,EAAM,GAAG,CACtB,IAAIq4E,EAAO7mG,EAAMnoB,GACjB,GACW,cAATgvH,GACS,gBAATA,GACS,cAATA,EAEA,OAAOniD,EAGT7/D,EAAOA,EAAKmb,EAAMnoB,MAEpBgN,EAAKmb,EAAMnoB,IAAUe,MAK3B6hQ,OAAQ,SAAUn2P,EAAM49jB,GACtB,IAAIlijB,EAAQywL,EAAcnsM,GAC1B,OACEu9jB,EAAShrjB,IAAIvS,IACbu9jB,EAAS7lgB,IAAI13D,GAAM,SAAgBO,GAGjC,IAFA,IAAIhN,EAAQ,EACV22C,EAAMxuB,EAAM1oB,OACPO,EAAQ22C,GAAK,CAClB,GAAY,MAAR3pC,GAAiBq9jB,EAChB,OADsBr9jB,EAAOA,EAAKmb,EAAMnoB,MAG/C,OAAOgN,MAKboD,KAAM,SAAUgxf,GACd,OAAOA,EAASv4f,QAAO,SAAU4D,EAAMuiH,GACrC,OACEviH,GACCw9jB,EAASj7c,IAAS06c,EAAYrniB,KAAK2sF,GAChC,IAAMA,EAAO,KACZviH,EAAO,IAAM,IAAMuiH,KAEzB,KAGL5vH,QAAS,SAAUqN,EAAM06H,EAAIjqF,IAqB/B,SAAiB/0B,EAAOi8I,EAAMlnH,GAC5B,IACE8xE,EACAk9C,EACAvxF,EACA2vf,EAJE3zhB,EAAMxuB,EAAM1oB,OAMhB,IAAKysK,EAAM,EAAGA,EAAMv1H,EAAKu1H,KACvBl9C,EAAO7mG,EAAM+jJ,MAGPg+Z,EAAel7c,KACjBA,EAAO,IAAMA,EAAO,KAItBr0C,IADA2vf,EAAYL,EAASj7c,KACG,QAAQ3sF,KAAK2sF,GAErCo1C,EAAKxkK,KAAKs9C,EAAS8xE,EAAMs7c,EAAW3vf,EAASuxF,EAAK/jJ,IAtCpD/oB,CAAQsF,MAAMi2E,QAAQluE,GAAQA,EAAOG,EAAMH,GAAO06H,EAAIjqF,yCCtF7C,IAAIqqgB,EAAGr4d,EAAQ,OAASs4d,EAAGt4d,EAAQ,OAAa,SAASqH,EAAE3xC,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEjqC,EAAE,EAAEA,EAAEzT,UAAUzH,OAAOkb,IAAIkqC,GAAG,WAAWo+J,mBAAmB/7M,UAAUyT,IAAI,MAAM,yBAAyBiqC,EAAE,WAAWC,EAAE,iHAAiH,IAAI0gQ,EAAG,IAAIzhM,IAAI8hM,EAAG,GAAG,SAAS0qQ,EAAG1rgB,EAAEC,GAAG2hQ,EAAG5hQ,EAAEC,GAAG2hQ,EAAG5hQ,EAAE,UAAUC,GACtb,SAAS2hQ,EAAG5hQ,EAAEC,GAAW,IAAR+gQ,EAAGhhQ,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAEplD,OAAOmlD,IAAI2gQ,EAAG9kT,IAAIokD,EAAED,IACzD,IAAIuiQ,IAAK,qBAAqBviS,QAAQ,qBAAqBA,OAAOjjB,UAAU,qBAAqBijB,OAAOjjB,SAAS4gC,eAAeilR,EAAGvhT,OAAOtB,UAAUsxE,eAAeqoP,EAAG,8VAA8VzW,EACpgB,GAAGwhQ,EAAG,GACkN,SAAShwW,EAAEz0J,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,GAAGxmE,KAAKorkB,gBAAgB,IAAI1lhB,GAAG,IAAIA,GAAG,IAAIA,EAAE1lD,KAAKuigB,cAAczlZ,EAAE98G,KAAKqrkB,mBAAmB7qkB,EAAER,KAAKsrkB,gBAAgB9vjB,EAAExb,KAAK2O,aAAa82C,EAAEzlD,KAAK2jB,KAAK+hC,EAAE1lD,KAAKurkB,YAAYh/c,EAAEvsH,KAAKwrkB,kBAAkBhlgB,EAAE,IAAIo/C,EAAE,GACnb,uIAAuIn4G,MAAM,KAAKxN,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAexlD,SAAQ,SAASwlD,GAAG,IAAIC,EAAED,EAAE,GAAGmgE,EAAElgE,GAAG,IAAIw0J,EAAEx0J,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAASxlD,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAExiB,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiBhjC,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8Oh4C,MAAM,KAAKxN,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAExiB,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAYhjC,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAYxlD,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQxlD,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAASxlD,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAExiB,cAAc,MAAK,GAAG,MAAM,IAAI29R,EAAG,gBAAgB,SAASuuP,EAAG1pgB,GAAG,OAAOA,EAAE,GAAGigE,cAI3Y,SAAS6ic,EAAG9igB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEolH,EAAE9uC,eAAepxB,GAAGkgE,EAAElgE,GAAG,MAAQ,OAAOllD,EAAE,IAAIA,EAAEmjB,KAAKm5F,KAAK,EAAEp3D,EAAEplD,SAAS,MAAMolD,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,MAP9I,SAAYD,EAAEC,EAAElqC,EAAEshG,GAAG,GAAG,OAAOp3D,GAAG,qBAAqBA,GADqE,SAAYD,EAAEC,EAAElqC,EAAEshG,GAAG,GAAG,OAAOthG,GAAG,IAAIA,EAAEmI,KAAK,OAAM,EAAG,cAAc+hC,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGo3D,IAAc,OAAOthG,GAASA,EAAE4vjB,gBAAmD,WAAnC3lhB,EAAEA,EAAExiB,cAAcx9B,MAAM,EAAE,KAAsB,UAAUggD,GAAE,QAAQ,OAAM,GAC5TyngB,CAAGzngB,EAAEC,EAAElqC,EAAEshG,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOthG,EAAE,OAAOA,EAAEmI,MAAM,KAAK,EAAE,OAAO+hC,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOlc,MAAMkc,GAAG,KAAK,EAAE,OAAOlc,MAAMkc,IAAI,EAAEA,EAAE,OAAM,EAOpEykgB,CAAGzkgB,EAAElqC,EAAEhb,EAAEs8G,KAAKthG,EAAE,MAAMshG,GAAG,OAAOt8G,EARxK,SAAYilD,GAAG,QAAG4iQ,EAAG5nT,KAAKypjB,EAAGzkgB,KAAe4iQ,EAAG5nT,KAAKioT,EAAGjjQ,KAAe05Q,EAAGj8R,KAAKuiB,GAAUykgB,EAAGzkgB,IAAG,GAAGijQ,EAAGjjQ,IAAG,GAAS,IAQ0D0sgB,CAAGzsgB,KAAK,OAAOlqC,EAAEiqC,EAAEu+D,gBAAgBt+D,GAAGD,EAAE3kD,aAAa4kD,EAAE,GAAGlqC,IAAIhb,EAAE8qkB,gBAAgB7lhB,EAAEjlD,EAAEmO,cAAc,OAAO6M,EAAE,IAAIhb,EAAEmjB,MAAQ,GAAGnI,GAAGkqC,EAAEllD,EAAE+hgB,cAAczlZ,EAAEt8G,EAAE6qkB,mBAAmB,OAAO7vjB,EAAEiqC,EAAEu+D,gBAAgBt+D,IAAalqC,EAAE,KAAXhb,EAAEA,EAAEmjB,OAAc,IAAInjB,IAAG,IAAKgb,EAAE,GAAG,GAAGA,EAAEshG,EAAEr3D,EAAEgud,eAAe32Z,EAAEp3D,EAAElqC,GAAGiqC,EAAE3kD,aAAa4kD,EAAElqC,MAH7c,0jCAA0jC/N,MAAM,KAAKxN,SAAQ,SAASwlD,GAAG,IAAIC,EAAED,EAAEiD,QAAQk4Q,EACzmCuuP,GAAIvpc,EAAElgE,GAAG,IAAIw0J,EAAEx0J,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,MAAM,2EAA2Eh4C,MAAM,KAAKxN,SAAQ,SAASwlD,GAAG,IAAIC,EAAED,EAAEiD,QAAQk4Q,EAAGuuP,GAAIvpc,EAAElgE,GAAG,IAAIw0J,EAAEx0J,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAaxlD,SAAQ,SAASwlD,GAAG,IAAIC,EAAED,EAAEiD,QAAQk4Q,EAAGuuP,GAAIvpc,EAAElgE,GAAG,IAAIw0J,EAAEx0J,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAexlD,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAExiB,cAAc,MAAK,GAAG,MAC/c2iF,EAAE6ld,UAAU,IAAIvxX,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcj6M,SAAQ,SAASwlD,GAAGmgE,EAAEngE,GAAG,IAAIy0J,EAAEz0J,EAAE,GAAE,EAAGA,EAAExiB,cAAc,MAAK,GAAG,MAEzL,IAAI89R,EAAGqnP,EAAGsjB,mDAAmDpqQ,EAAGvnM,OAAO4xc,IAAI,iBAAiB/sc,EAAG7E,OAAO4xc,IAAI,gBAAgBthB,EAAGtwb,OAAO4xc,IAAI,kBAAkBnZ,EAAGz4b,OAAO4xc,IAAI,qBAAqBnc,EAAGz1b,OAAO4xc,IAAI,kBAAkBpc,EAAGx1b,OAAO4xc,IAAI,kBAAkBxS,EAAGp/b,OAAO4xc,IAAI,iBAAiB9hB,EAAG9vb,OAAO4xc,IAAI,qBAAqBvhB,EAAGrwb,OAAO4xc,IAAI,kBAAkBhgB,EAAG5xb,OAAO4xc,IAAI,uBAAuBxY,EAAGp5b,OAAO4xc,IAAI,cAAc1W,EAAGl7b,OAAO4xc,IAAI,cAAc5xc,OAAO4xc,IAAI,eAAe5xc,OAAO4xc,IAAI,0BACje,IAAI5hB,EAAGhwb,OAAO4xc,IAAI,mBAAmB5xc,OAAO4xc,IAAI,uBAAuB5xc,OAAO4xc,IAAI,eAAe5xc,OAAO4xc,IAAI,wBAAwB,IAAI/b,EAAG71b,OAAOmiB,SAAS,SAASq1a,EAAG9rgB,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEmqgB,GAAInqgB,EAAEmqgB,IAAKnqgB,EAAE,eAA0CA,EAAE,KAAK,IAAoBojgB,EAAhB3tF,EAAEp0d,OAAOw4C,OAAU,SAAS8xgB,EAAG3rgB,GAAG,QAAG,IAASojgB,EAAG,IAAI,MAAMxzgB,QAAS,MAAM75B,GAAG,IAAIkqC,EAAElqC,EAAE86E,MAAM11D,OAAOjf,MAAM,gBAAgBkniB,EAAGnjgB,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAKmjgB,EAAGpjgB,EAAE,IAAI6rgB,GAAG,EACzb,SAAS7B,EAAGhqgB,EAAEC,GAAG,IAAID,GAAG6rgB,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI91iB,EAAE65B,MAAMu2hB,kBAAkBv2hB,MAAMu2hB,uBAAkB,EAAO,IAAI,GAAGlmhB,EAAE,GAAGA,EAAE,WAAW,MAAMrQ,SAAUvuC,OAAOi+D,eAAerf,EAAElgD,UAAU,QAAQ,CAACw/D,IAAI,WAAW,MAAM3vB,WAAY,kBAAkBw2hB,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUpmhB,EAAE,IAAI,MAAMwqC,GAAG,IAAI4sB,EAAE5sB,EAAE27e,QAAQC,UAAUrmhB,EAAE,GAAGC,OAAO,CAAC,IAAIA,EAAEjlD,OAAO,MAAMyvF,GAAG4sB,EAAE5sB,EAAEzqC,EAAEhlD,KAAKilD,EAAElgD,eAAe,CAAC,IAAI,MAAM6vC,QAAS,MAAM66C,GAAG4sB,EAAE5sB,EAAEzqC,KAAK,MAAMyqC,GAAG,GAAGA,GAAG4sB,GAAG,kBAAkB5sB,EAAEoG,MAAM,CAAC,IAAI,IAAI91F,EAAE0vF,EAAEoG,MAAM7oF,MAAM,MACnf8+G,EAAEzP,EAAExmB,MAAM7oF,MAAM,MAAM+4D,EAAEhmE,EAAEF,OAAO,EAAEkpJ,EAAEj9B,EAAEjsH,OAAO,EAAE,GAAGkmE,GAAG,GAAGgjF,GAAGhpJ,EAAEgmE,KAAK+lD,EAAEi9B,IAAIA,IAAI,KAAK,GAAGhjF,GAAG,GAAGgjF,EAAEhjF,IAAIgjF,IAAI,GAAGhpJ,EAAEgmE,KAAK+lD,EAAEi9B,GAAG,CAAC,GAAG,IAAIhjF,GAAG,IAAIgjF,EAAG,GAAG,GAAGhjF,IAAQ,IAAJgjF,GAAShpJ,EAAEgmE,KAAK+lD,EAAEi9B,GAAG,CAAC,IAAI7xF,EAAE,KAAKn3D,EAAEgmE,GAAG9d,QAAQ,WAAW,QAA6F,OAArFjD,EAAEv2C,aAAayoD,EAAEmkE,SAAS,iBAAiBnkE,EAAEA,EAAEjP,QAAQ,cAAcjD,EAAEv2C,cAAqByoD,SAAQ,GAAG6O,GAAG,GAAGgjF,GAAG,QAD1N,QAC0O8na,GAAG,EAAGj8gB,MAAMu2hB,kBAAkBpwjB,EAAE,OAAOiqC,EAAEA,EAAEA,EAAEv2C,aAAau2C,EAAEj4C,KAAK,IAAI4jjB,EAAG3rgB,GAAG,GAC5Z,SAASyjgB,EAAGzjgB,GAAG,OAAOA,EAAE+6E,KAAK,KAAK,EAAE,OAAO4wb,EAAG3rgB,EAAE9hC,MAAM,KAAK,GAAG,OAAOytiB,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO3rgB,EAAEgqgB,EAAGhqgB,EAAE9hC,MAAK,GAAM,KAAK,GAAG,OAAO8hC,EAAEgqgB,EAAGhqgB,EAAE9hC,KAAKpE,QAAO,GAAM,KAAK,EAAE,OAAOkmC,EAAEgqgB,EAAGhqgB,EAAE9hC,MAAK,GAAM,QAAQ,MAAM,IACrR,SAAS2xiB,EAAG7vgB,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEv2C,aAAau2C,EAAEj4C,MAAM,KAAK,GAAG,kBAAkBi4C,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK4kgB,EAAG,MAAM,WAAW,KAAKzrb,EAAG,MAAM,SAAS,KAAK4wb,EAAG,MAAM,WAAW,KAAKgD,EAAG,MAAM,aAAa,KAAKpI,EAAG,MAAM,WAAW,KAAKuB,EAAG,MAAM,eAAe,GAAG,kBAAkBlmgB,EAAE,OAAOA,EAAEsmhB,UAAU,KAAK5S,EAAG,OAAO1zgB,EAAEv2C,aAAa,WAAW,YAAY,KAAKqgjB,EAAG,OAAO9pgB,EAAExS,SAAS/jC,aAAa,WAAW,YAAY,KAAK26iB,EAAG,IAAInkgB,EAAED,EAAElmC,OAC7Z,OADoakmC,EAAEA,EAAEv2C,eACndu2C,EAAE,MADieA,EAAEC,EAAEx2C,aAClfw2C,EAAEl4C,MAAM,IAAY,cAAci4C,EAAE,IAAI,cAAqBA,EAAE,KAAK0tgB,EAAG,OAA6B,QAAtBztgB,EAAED,EAAEv2C,aAAa,MAAcw2C,EAAE4vgB,EAAG7vgB,EAAE9hC,OAAO,OAAO,KAAKsxiB,EAAGvvgB,EAAED,EAAEumhB,SAASvmhB,EAAEA,EAAE+sB,MAAM,IAAI,OAAO8if,EAAG7vgB,EAAEC,IAAI,MAAMlqC,KAAK,OAAO,KACvM,SAAS+tiB,EAAG9jgB,GAAG,IAAIC,EAAED,EAAE9hC,KAAK,OAAO8hC,EAAE+6E,KAAK,KAAK,GAAG,MAAM,QAAQ,KAAK,EAAE,OAAO96E,EAAEx2C,aAAa,WAAW,YAAY,KAAK,GAAG,OAAOw2C,EAAEzS,SAAS/jC,aAAa,WAAW,YAAY,KAAK,GAAG,MAAM,qBAAqB,KAAK,GAAG,OAAkBu2C,GAAXA,EAAEC,EAAEnmC,QAAWrQ,aAAau2C,EAAEj4C,MAAM,GAAGk4C,EAAEx2C,cAAc,KAAKu2C,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK,EAAE,MAAM,WAAW,KAAK,EAAE,OAAOC,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,OAAO,KAAK,GAAG,OAAO4vgB,EAAG5vgB,GAAG,KAAK,EAAE,OAAOA,IAAI8sgB,EAAG,aAAa,OAAO,KAAK,GAAG,MAAM,YACtf,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,eAAe,KAAK,GAAG,MAAM,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,GAAG,oBAAoB9sgB,EAAE,OAAOA,EAAEx2C,aAAaw2C,EAAEl4C,MAAM,KAAK,GAAG,kBAAkBk4C,EAAE,OAAOA,EAAE,OAAO,KAAK,SAAS0ogB,EAAG3ogB,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAqB,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,IACla,SAAS8sgB,EAAG9sgB,GAAG,IAAIC,EAAED,EAAE9hC,KAAK,OAAO8hC,EAAEA,EAAEoxM,WAAW,UAAUpxM,EAAExiB,gBAAgB,aAAayiB,GAAG,UAAUA,GAEpF,SAAS6ngB,EAAG9ngB,GAAGA,EAAEwmhB,gBAAgBxmhB,EAAEwmhB,cADvD,SAAYxmhB,GAAG,IAAIC,EAAE6sgB,EAAG9sgB,GAAG,UAAU,QAAQjqC,EAAE1U,OAAOy2E,yBAAyB93B,EAAEj3C,YAAYhJ,UAAUkgD,GAAGo3D,EAAE,GAAGr3D,EAAEC,GAAG,IAAID,EAAEqxB,eAAepxB,IAAI,qBAAqBlqC,GAAG,oBAAoBA,EAAEqE,KAAK,oBAAoBrE,EAAEwpD,IAAI,CAAC,IAAIxkE,EAAEgb,EAAEqE,IAAI0sG,EAAE/wG,EAAEwpD,IAAiL,OAA7Kl+D,OAAOi+D,eAAetf,EAAEC,EAAE,CAACwf,cAAa,EAAGrlD,IAAI,WAAW,OAAOrf,EAAEC,KAAKT,OAAOglE,IAAI,SAASvf,GAAGq3D,EAAE,GAAGr3D,EAAE8mE,EAAE9rH,KAAKT,KAAKylD,MAAM3+C,OAAOi+D,eAAetf,EAAEC,EAAE,CAACuf,WAAWzpD,EAAEypD,aAAmB,CAACrnC,SAAS,WAAW,OAAOk/E,GAAGv1F,SAAS,SAASk+B,GAAGq3D,EAAE,GAAGr3D,GAAGymhB,aAAa,WAAWzmhB,EAAEwmhB,cACxf,YAAYxmhB,EAAEC,MAAuDmrgB,CAAGprgB,IAAI,SAAS8kgB,EAAG9kgB,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEwmhB,cAAc,IAAIvmhB,EAAE,OAAM,EAAG,IAAIlqC,EAAEkqC,EAAE9nB,WAAek/E,EAAE,GAAqD,OAAlDr3D,IAAIq3D,EAAEy1c,EAAG9sgB,GAAGA,EAAEqhP,QAAQ,OAAO,QAAQrhP,EAAE7jD,QAAO6jD,EAAEq3D,KAAathG,IAAGkqC,EAAEn+B,SAASk+B,IAAG,GAAO,SAAS2pgB,EAAG3pgB,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBjjD,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOijD,EAAE/9C,eAAe+9C,EAAEld,KAAK,MAAMmd,GAAG,OAAOD,EAAEld,MAC/Z,SAAS+lhB,EAAG7ogB,EAAEC,GAAG,IAAIlqC,EAAEkqC,EAAEohP,QAAQ,OAAOo0L,EAAE,GAAGx1a,EAAE,CAACymhB,oBAAe,EAAO53hB,kBAAa,EAAO3yC,WAAM,EAAOklS,QAAQ,MAAMtrR,EAAEA,EAAEiqC,EAAE2mhB,cAAcC,iBAAiB,SAAS7b,EAAG/qgB,EAAEC,GAAG,IAAIlqC,EAAE,MAAMkqC,EAAEnR,aAAa,GAAGmR,EAAEnR,aAAauoE,EAAE,MAAMp3D,EAAEohP,QAAQphP,EAAEohP,QAAQphP,EAAEymhB,eAAe3wjB,EAAE4yiB,EAAG,MAAM1ogB,EAAE9jD,MAAM8jD,EAAE9jD,MAAM4Z,GAAGiqC,EAAE2mhB,cAAc,CAACC,eAAevvd,EAAEmpB,aAAazqH,EAAE8wjB,WAAW,aAAa5mhB,EAAE/hC,MAAM,UAAU+hC,EAAE/hC,KAAK,MAAM+hC,EAAEohP,QAAQ,MAAMphP,EAAE9jD,OAAO,SAASytjB,EAAG5pgB,EAAEC,GAAe,OAAZA,EAAEA,EAAEohP,UAAiByhR,EAAG9igB,EAAE,UAAUC,GAAE,GAC3d,SAASgqgB,EAAGjqgB,EAAEC,GAAG2pgB,EAAG5pgB,EAAEC,GAAG,IAAIlqC,EAAE4yiB,EAAG1ogB,EAAE9jD,OAAOk7G,EAAEp3D,EAAE/hC,KAAK,GAAG,MAAMnI,EAAK,WAAWshG,GAAM,IAAIthG,GAAG,KAAKiqC,EAAE7jD,OAAO6jD,EAAE7jD,OAAO4Z,KAAEiqC,EAAE7jD,MAAM,GAAG4Z,GAAOiqC,EAAE7jD,QAAQ,GAAG4Z,IAAIiqC,EAAE7jD,MAAM,GAAG4Z,QAAQ,GAAG,WAAWshG,GAAG,UAAUA,EAA8B,YAA3Br3D,EAAEu+D,gBAAgB,SAAgBt+D,EAAEoxB,eAAe,SAASyif,GAAG9zgB,EAAEC,EAAE/hC,KAAKnI,GAAGkqC,EAAEoxB,eAAe,iBAAiByif,GAAG9zgB,EAAEC,EAAE/hC,KAAKyqiB,EAAG1ogB,EAAEnR,eAAe,MAAMmR,EAAEohP,SAAS,MAAMphP,EAAEymhB,iBAAiB1mhB,EAAE0mhB,iBAAiBzmhB,EAAEymhB,gBACnZ,SAASxT,EAAGlzgB,EAAEC,EAAElqC,GAAG,GAAGkqC,EAAEoxB,eAAe,UAAUpxB,EAAEoxB,eAAe,gBAAgB,CAAC,IAAIgmC,EAAEp3D,EAAE/hC,KAAK,KAAK,WAAWm5F,GAAG,UAAUA,QAAG,IAASp3D,EAAE9jD,OAAO,OAAO8jD,EAAE9jD,OAAO,OAAO8jD,EAAE,GAAGD,EAAE2mhB,cAAcnmc,aAAazqH,GAAGkqC,IAAID,EAAE7jD,QAAQ6jD,EAAE7jD,MAAM8jD,GAAGD,EAAElR,aAAamR,EAAW,MAATlqC,EAAEiqC,EAAEj4C,QAAci4C,EAAEj4C,KAAK,IAAIi4C,EAAE0mhB,iBAAiB1mhB,EAAE2mhB,cAAcC,eAAe,KAAK7wjB,IAAIiqC,EAAEj4C,KAAKgO,GACvV,SAAS+9iB,GAAG9zgB,EAAEC,EAAElqC,GAAM,WAAWkqC,GAAG0pgB,EAAG3pgB,EAAEk7E,iBAAiBl7E,IAAE,MAAMjqC,EAAEiqC,EAAElR,aAAa,GAAGkR,EAAE2mhB,cAAcnmc,aAAaxgF,EAAElR,eAAe,GAAG/4B,IAAIiqC,EAAElR,aAAa,GAAG/4B,IAAG,IAAIq9iB,GAAGtzjB,MAAMi2E,QAC7K,SAASwsD,GAAGviF,EAAEC,EAAElqC,EAAEshG,GAAe,GAAZr3D,EAAEA,EAAErrC,QAAWsrC,EAAE,CAACA,EAAE,GAAG,IAAI,IAAIllD,EAAE,EAAEA,EAAEgb,EAAElb,OAAOE,IAAIklD,EAAE,IAAIlqC,EAAEhb,KAAI,EAAG,IAAIgb,EAAE,EAAEA,EAAEiqC,EAAEnlD,OAAOkb,IAAIhb,EAAEklD,EAAEoxB,eAAe,IAAIrxB,EAAEjqC,GAAG5Z,OAAO6jD,EAAEjqC,GAAGyR,WAAWzsB,IAAIilD,EAAEjqC,GAAGyR,SAASzsB,GAAGA,GAAGs8G,IAAIr3D,EAAEjqC,GAAG+wjB,iBAAgB,OAAQ,CAAmB,IAAlB/wjB,EAAE,GAAG4yiB,EAAG5yiB,GAAGkqC,EAAE,KAASllD,EAAE,EAAEA,EAAEilD,EAAEnlD,OAAOE,IAAI,CAAC,GAAGilD,EAAEjlD,GAAGoB,QAAQ4Z,EAAiD,OAA9CiqC,EAAEjlD,GAAGysB,UAAS,OAAG6vF,IAAIr3D,EAAEjlD,GAAG+rkB,iBAAgB,IAAW,OAAO7mhB,GAAGD,EAAEjlD,GAAG4K,WAAWs6C,EAAED,EAAEjlD,IAAI,OAAOklD,IAAIA,EAAEz4B,UAAS,IACpY,SAASu/iB,GAAG/mhB,EAAEC,GAAG,GAAG,MAAMA,EAAEm8D,wBAAwB,MAAMxsE,MAAM+hD,EAAE,KAAK,OAAO8jY,EAAE,GAAGx1a,EAAE,CAAC9jD,WAAM,EAAO2yC,kBAAa,EAAOxpC,SAAS,GAAG06C,EAAE2mhB,cAAcnmc,eAAe,SAAS+sb,GAAGvtgB,EAAEC,GAAG,IAAIlqC,EAAEkqC,EAAE9jD,MAAM,GAAG,MAAM4Z,EAAE,CAA+B,GAA9BA,EAAEkqC,EAAE36C,SAAS26C,EAAEA,EAAEnR,aAAgB,MAAM/4B,EAAE,CAAC,GAAG,MAAMkqC,EAAE,MAAMrQ,MAAM+hD,EAAE,KAAK,GAAGyhe,GAAGr9iB,GAAG,CAAC,GAAG,EAAEA,EAAElb,OAAO,MAAM+0C,MAAM+hD,EAAE,KAAK57E,EAAEA,EAAE,GAAGkqC,EAAElqC,EAAE,MAAMkqC,IAAIA,EAAE,IAAIlqC,EAAEkqC,EAAED,EAAE2mhB,cAAc,CAACnmc,aAAamob,EAAG5yiB,IAChY,SAASuyiB,GAAGtogB,EAAEC,GAAG,IAAIlqC,EAAE4yiB,EAAG1ogB,EAAE9jD,OAAOk7G,EAAEsxc,EAAG1ogB,EAAEnR,cAAc,MAAM/4B,KAAIA,EAAE,GAAGA,KAAMiqC,EAAE7jD,QAAQ6jD,EAAE7jD,MAAM4Z,GAAG,MAAMkqC,EAAEnR,cAAckR,EAAElR,eAAe/4B,IAAIiqC,EAAElR,aAAa/4B,IAAI,MAAMshG,IAAIr3D,EAAElR,aAAa,GAAGuoE,GAAG,SAASorc,GAAGzigB,GAAG,IAAIC,EAAED,EAAE3iD,YAAY4iD,IAAID,EAAE2mhB,cAAcnmc,cAAc,KAAKvgF,GAAG,OAAOA,IAAID,EAAE7jD,MAAM8jD,GAAG,SAASyogB,GAAG1ogB,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAC9a,SAAS2vgB,GAAG3vgB,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE0ogB,GAAGzogB,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC/J,IAAIikgB,GAAejkgB,GAAZmnG,IAAYnnG,GAAsJ,SAASA,EAAEC,GAAG,GAAG,+BAA+BD,EAAEy/e,cAAc,cAAcz/e,EAAEA,EAAE8a,UAAU7a,MAAM,CAA2F,KAA1FgkgB,GAAGA,IAAIlnjB,SAAS4gC,cAAc,QAAUm9B,UAAU,QAAQ7a,EAAEi7K,UAAUlyN,WAAW,SAAai3C,EAAEgkgB,GAAG3mc,WAAWt9D,EAAEs9D,YAAYt9D,EAAE0H,YAAY1H,EAAEs9D,YAAY,KAAKr9D,EAAEq9D,YAAYt9D,EAAE+xB,YAAY9xB,EAAEq9D,cAA3a,qBAAqB0pd,OAAOA,MAAMC,wBAAwB,SAAShnhB,EAAElqC,EAAEshG,EAAEt8G,GAAGiskB,MAAMC,yBAAwB,WAAW,OAAOjnhB,GAAEC,EAAElqC,OAAUiqC,IACtK,SAASgkQ,GAAGhkQ,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIlqC,EAAEiqC,EAAEs9D,WAAW,GAAGvnG,GAAGA,IAAIiqC,EAAE+9I,WAAW,IAAIhoL,EAAEw/D,SAAwB,YAAdx/D,EAAEqnG,UAAUn9D,GAAUD,EAAE3iD,YAAY4iD,EACrH,IAAI+igB,GAAG,CAACnN,yBAAwB,EAAGC,aAAY,EAAGoxB,mBAAkB,EAAGnxB,kBAAiB,EAAGoxB,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGhsD,aAAY,EAAGisD,SAAQ,EAAG7ze,MAAK,EAAGsid,UAAS,EAAGwxB,cAAa,EAAGvxB,YAAW,EAAGwxB,cAAa,EAAGC,WAAU,EAAGxxB,UAAS,EAAGI,SAAQ,EAAGC,YAAW,EAAGoxB,aAAY,EAAGnxB,cAAa,EAAGL,YAAW,EAAGC,eAAc,EAAGwxB,gBAAe,EAAGvxB,iBAAgB,EAAG3uW,YAAW,EAAGmgY,WAAU,EAAG15hB,YAAW,EAAGs9F,SAAQ,EAAGypX,OAAM,EAAGyJ,SAAQ,EAAG9rW,SAAQ,EAAG+rW,QAAO,EAAGlhd,QAAO,EAClf51B,MAAK,EAAG2uhB,aAAY,EAAGC,cAAa,EAAGC,aAAY,EAAGmxB,iBAAgB,EAAGC,kBAAiB,EAAGnxB,kBAAiB,EAAGhqC,eAAc,EAAGp4d,aAAY,GAAIwqQ,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASgqQ,GAAGhpgB,EAAEC,EAAElqC,GAAG,OAAO,MAAMkqC,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGlqC,GAAG,kBAAkBkqC,GAAG,IAAIA,GAAG+igB,GAAG3xe,eAAerxB,IAAIgjgB,GAAGhjgB,IAAI,GAAGC,GAAG9kB,OAAO8kB,EAAE,KACrb,SAAS0zgB,GAAG3zgB,EAAEC,GAAa,IAAI,IAAIlqC,KAAlBiqC,EAAEA,EAAExnC,MAAmBynC,EAAE,GAAGA,EAAEoxB,eAAet7D,GAAG,CAAC,IAAIshG,EAAE,IAAIthG,EAAErV,QAAQ,MAAM3F,EAAEiujB,GAAGjziB,EAAEkqC,EAAElqC,GAAGshG,GAAG,UAAUthG,IAAIA,EAAE,YAAYshG,EAAEr3D,EAAEs7L,YAAYvlO,EAAEhb,GAAGilD,EAAEjqC,GAAGhb,GADcsG,OAAOC,KAAK0hjB,IAAIxojB,SAAQ,SAASwlD,GAAGg/P,GAAGxkT,SAAQ,SAASylD,GAAGA,EAAEA,EAAED,EAAEy/B,OAAO,GAAGwgC,cAAcjgE,EAAEzZ,UAAU,GAAGy8gB,GAAG/igB,GAAG+igB,GAAGhjgB,SAC5H,IAAIwogB,GAAG/yF,EAAE,CAACuyG,UAAS,GAAI,CAACz/hB,MAAK,EAAG05F,MAAK,EAAGw+K,IAAG,EAAGtwN,KAAI,EAAG83e,OAAM,EAAGzlR,IAAG,EAAG0lR,KAAI,EAAGn1iB,OAAM,EAAGo1iB,QAAO,EAAG3tgB,MAAK,EAAG8mB,MAAK,EAAGo/E,OAAM,EAAGx4C,QAAO,EAAGkgd,OAAM,EAAGC,KAAI,IAClT,SAASrd,GAAGhrgB,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAGuogB,GAAGxogB,KAAK,MAAMC,EAAE36C,UAAU,MAAM26C,EAAEm8D,yBAAyB,MAAMxsE,MAAM+hD,EAAE,IAAI3xC,IAAI,GAAG,MAAMC,EAAEm8D,wBAAwB,CAAC,GAAG,MAAMn8D,EAAE36C,SAAS,MAAMsqC,MAAM+hD,EAAE,KAAK,GAAG,kBAAkB1xC,EAAEm8D,2BAA2B,WAAWn8D,EAAEm8D,yBAAyB,MAAMxsE,MAAM+hD,EAAE,KAAM,GAAG,MAAM1xC,EAAEznC,OAAO,kBAAkBynC,EAAEznC,MAAM,MAAMo3B,MAAM+hD,EAAE,MAC5V,SAASw3d,GAAGnpgB,EAAEC,GAAG,IAAI,IAAID,EAAEt/C,QAAQ,KAAK,MAAM,kBAAkBu/C,EAAE5rB,GAAG,OAAO2rB,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,IAAIwwgB,GAAG,KAAK,SAASvI,GAAGjogB,GAA6F,OAA1FA,EAAEA,EAAE7+C,QAAQ6+C,EAAEu7F,YAAYv7H,QAASsojB,0BAA0BtohB,EAAEA,EAAEsohB,yBAAgC,IAAItohB,EAAEu1B,SAASv1B,EAAEr7B,WAAWq7B,EAAE,IAAIitgB,GAAG,KAAK/B,GAAG,KAAKqB,GAAG,KACpc,SAASzF,GAAG9mgB,GAAG,GAAGA,EAAE2ngB,GAAG3ngB,GAAG,CAAC,GAAG,oBAAoBitgB,GAAG,MAAMr9gB,MAAM+hD,EAAE,MAAM,IAAI1xC,EAAED,EAAEuohB,UAAUtohB,IAAIA,EAAEokgB,GAAGpkgB,GAAGgtgB,GAAGjtgB,EAAEuohB,UAAUvohB,EAAE9hC,KAAK+hC,KAAK,SAAS2lgB,GAAG5lgB,GAAGkrgB,GAAGqB,GAAGA,GAAGpxjB,KAAK6kD,GAAGusgB,GAAG,CAACvsgB,GAAGkrgB,GAAGlrgB,EAAE,SAAS+ugB,KAAK,GAAG7D,GAAG,CAAC,IAAIlrgB,EAAEkrgB,GAAGjrgB,EAAEssgB,GAAoB,GAAjBA,GAAGrB,GAAG,KAAKpE,GAAG9mgB,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAEplD,OAAOmlD,IAAI8mgB,GAAG7mgB,EAAED,KAAK,SAASglgB,GAAGhlgB,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAASylgB,MAAM,IAAID,IAAG,EAAG,SAASmD,GAAG5ogB,EAAEC,EAAElqC,GAAG,GAAG0viB,GAAG,OAAOzlgB,EAAEC,EAAElqC,GAAG0viB,IAAG,EAAG,IAAI,OAAOT,GAAGhlgB,EAAEC,EAAElqC,GAAlB,QAAgC0viB,IAAG,GAAG,OAAOyF,IAAI,OAAOqB,MAAG7G,KAAKqJ,OAC3a,SAAS/G,GAAGhogB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEuohB,UAAU,GAAG,OAAOxyjB,EAAE,OAAO,KAAK,IAAIshG,EAAEgtc,GAAGtuiB,GAAG,GAAG,OAAOshG,EAAE,OAAO,KAAKthG,EAAEshG,EAAEp3D,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBo3D,GAAGA,EAAE1xG,YAAqB0xG,IAAI,YAAbr3D,EAAEA,EAAE9hC,OAAuB,UAAU8hC,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGq3D,EAAE,MAAMr3D,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGjqC,GAAG,oBACleA,EAAE,MAAM65B,MAAM+hD,EAAE,IAAI1xC,SAASlqC,IAAI,OAAOA,EAAE,IAAIsyiB,IAAG,EAAG,GAAG9lQ,EAAG,IAAI,IAAIgmQ,GAAG,GAAGlnjB,OAAOi+D,eAAeipf,GAAG,UAAU,CAACnuiB,IAAI,WAAWiuiB,IAAG,KAAMroiB,OAAO/kB,iBAAiB,OAAOstjB,GAAGA,IAAIvoiB,OAAOtlB,oBAAoB,OAAO6tjB,GAAGA,IAAI,MAAMvogB,IAAGqogB,IAAG,EAAG,SAASoG,GAAGzugB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,GAAG,IAAIu4B,EAAE3qF,MAAMC,UAAUC,MAAMhF,KAAKsH,UAAU,GAAG,IAAI29C,EAAE1/B,MAAMxK,EAAE00E,GAAG,MAAMz4B,GAAGz3D,KAAK+qjB,QAAQtzf,IAAI,IAAI6xf,IAAG,EAAGG,GAAG,KAAKE,IAAG,EAAG0G,GAAG,KAAKD,GAAG,CAACrF,QAAQ,SAAStlgB,GAAG6jgB,IAAG,EAAGG,GAAGhkgB,IAAI,SAAS+igB,GAAG/igB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,GAAG2xf,IAAG,EAAGG,GAAG,KAAKyK,GAAGluiB,MAAMoqiB,GAAGrojB,WACvV,SAAS6ijB,GAAGnlgB,GAAG,IAAIC,EAAED,EAAEjqC,EAAEiqC,EAAE,GAAGA,EAAEwohB,UAAU,KAAKvohB,EAAEs4F,QAAQt4F,EAAEA,EAAEs4F,WAAW,CAACv4F,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAAS88D,SAAc/mG,EAAEkqC,EAAEs4F,QAAQv4F,EAAEC,EAAEs4F,aAAav4F,GAAG,OAAO,IAAIC,EAAE86E,IAAIhlH,EAAE,KAAK,SAASwuiB,GAAGvkgB,GAAG,GAAG,KAAKA,EAAE+6E,IAAI,CAAC,IAAI96E,EAAED,EAAEyohB,cAAsE,GAAxD,OAAOxohB,IAAkB,QAAdD,EAAEA,EAAEwohB,aAAqBvohB,EAAED,EAAEyohB,gBAAmB,OAAOxohB,EAAE,OAAOA,EAAEyohB,WAAW,OAAO,KAAK,SAAS9hB,GAAG5mgB,GAAG,GAAGmlgB,GAAGnlgB,KAAKA,EAAE,MAAMpQ,MAAM+hD,EAAE,MAEpS,SAASi8d,GAAG5tgB,GAAW,OAAO,QAAfA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEwohB,UAAU,IAAIvohB,EAAE,CAAS,GAAG,QAAXA,EAAEklgB,GAAGnlgB,IAAe,MAAMpQ,MAAM+hD,EAAE,MAAM,OAAO1xC,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAIjqC,EAAEiqC,EAAEq3D,EAAEp3D,IAAI,CAAC,IAAIllD,EAAEgb,EAAEwiI,OAAO,GAAG,OAAOx9I,EAAE,MAAM,IAAI+rH,EAAE/rH,EAAEytkB,UAAU,GAAG,OAAO1hd,EAAE,CAAY,GAAG,QAAdzP,EAAEt8G,EAAEw9I,QAAmB,CAACxiI,EAAEshG,EAAE,SAAS,MAAM,GAAGt8G,EAAEse,QAAQytG,EAAEztG,MAAM,CAAC,IAAIytG,EAAE/rH,EAAEse,MAAMytG,GAAG,CAAC,GAAGA,IAAI/wG,EAAE,OAAO6wiB,GAAG7rjB,GAAGilD,EAAE,GAAG8mE,IAAIzP,EAAE,OAAOuvc,GAAG7rjB,GAAGklD,EAAE6mE,EAAEA,EAAEkib,QAAQ,MAAMp5f,MAAM+hD,EAAE,MAAO,GAAG57E,EAAEwiI,SAASlhC,EAAEkhC,OAAOxiI,EAAEhb,EAAEs8G,EAAEyP,MAAM,CAAC,IAAI,IAAI/lD,GAAE,EAAGgjF,EAAEhpJ,EAAEse,MAAM0qI,GAAG,CAAC,GAAGA,IAAIhuI,EAAE,CAACgrD,GAAE,EAAGhrD,EAAEhb,EAAEs8G,EAAEyP,EAAE,MAAM,GAAGi9B,IAAI1sC,EAAE,CAACt2C,GAAE,EAAGs2C,EAAEt8G,EAAEgb,EAAE+wG,EAAE,MAAMi9B,EAAEA,EAAEilZ,QAAQ,IAAIjoe,EAAE,CAAC,IAAIgjF,EAAEj9B,EAAEztG,MAAM0qI,GAAG,CAAC,GAAGA,IAC5fhuI,EAAE,CAACgrD,GAAE,EAAGhrD,EAAE+wG,EAAEzP,EAAEt8G,EAAE,MAAM,GAAGgpJ,IAAI1sC,EAAE,CAACt2C,GAAE,EAAGs2C,EAAEyP,EAAE/wG,EAAEhb,EAAE,MAAMgpJ,EAAEA,EAAEilZ,QAAQ,IAAIjoe,EAAE,MAAMnxB,MAAM+hD,EAAE,OAAQ,GAAG57E,EAAEyyjB,YAAYnxd,EAAE,MAAMznE,MAAM+hD,EAAE,MAAO,GAAG,IAAI57E,EAAEglH,IAAI,MAAMnrF,MAAM+hD,EAAE,MAAM,OAAO57E,EAAEwyjB,UAAU1vV,UAAU9iO,EAAEiqC,EAAEC,EAAmB2rgB,CAAG5rgB,IAAmBsngB,GAAGtngB,GAAG,KAAK,SAASsngB,GAAGtngB,GAAG,GAAG,IAAIA,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,IAAI,OAAO/6E,EAAE,IAAIA,EAAEA,EAAE3mC,MAAM,OAAO2mC,GAAG,CAAC,IAAIC,EAAEqngB,GAAGtngB,GAAG,GAAG,OAAOC,EAAE,OAAOA,EAAED,EAAEA,EAAEgpf,QAAQ,OAAO,KACtX,IAAIwb,GAAG5B,EAAG+lB,0BAA0B9Z,GAAGjM,EAAGgmB,wBAAwBhc,GAAGhK,EAAGimB,qBAAqB7b,GAAGpK,EAAGkmB,sBAAsBtlB,GAAEZ,EAAGmmB,aAAa5kB,GAAGvB,EAAGomB,iCAAiCzf,GAAG3G,EAAGqmB,2BAA2B3V,GAAG1Q,EAAGsmB,8BAA8BruZ,GAAG+nY,EAAGumB,wBAAwBjiB,GAAGtE,EAAGwmB,qBAAqB/V,GAAGzQ,EAAGymB,sBAAsB7iB,GAAG,KAAK0B,GAAG,KACvV,IAAIC,GAAGjoiB,KAAKopjB,MAAMppjB,KAAKopjB,MAAiC,SAAYtphB,GAAU,OAAO,KAAdA,KAAK,GAAe,GAAG,IAAIoogB,GAAGpogB,GAAGkpgB,GAAG,GAAG,GAA9Ed,GAAGloiB,KAAKw6C,IAAIwuf,GAAGhpiB,KAAKqpjB,IAA4D,IAAIlZ,GAAG,GAAGn3D,GAAG,QAC7H,SAASwpD,GAAG1igB,GAAG,OAAOA,GAAGA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAS,QAAFA,EAAU,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,OAAS,UAAFA,EAAY,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,UAAU,OAAO,UAAU,KAAK,WAAW,OAAO,WACzgB,QAAQ,OAAOA,GAAG,SAASopgB,GAAGppgB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEwphB,aAAa,GAAG,IAAIzzjB,EAAE,OAAO,EAAE,IAAIshG,EAAE,EAAEt8G,EAAEilD,EAAEyphB,eAAe3id,EAAE9mE,EAAE0phB,YAAY3ogB,EAAI,UAAFhrD,EAAY,GAAG,IAAIgrD,EAAE,CAAC,IAAIgjF,EAAEhjF,GAAGhmE,EAAE,IAAIgpJ,EAAE1sC,EAAEqrc,GAAG3+Z,GAAS,KAALj9B,GAAG/lD,KAAUs2C,EAAEqrc,GAAG57b,SAAiB,KAAP/lD,EAAEhrD,GAAGhb,GAAQs8G,EAAEqrc,GAAG3hf,GAAG,IAAI+lD,IAAIzP,EAAEqrc,GAAG57b,IAAI,GAAG,IAAIzP,EAAE,OAAO,EAAE,GAAG,IAAIp3D,GAAGA,IAAIo3D,GAAG,KAAKp3D,EAAEllD,MAAKA,EAAEs8G,GAAGA,KAAEyP,EAAE7mE,GAAGA,IAAQ,KAAKllD,GAAG,KAAO,QAAF+rH,IAAY,OAAO7mE,EAA0C,GAAxC,KAAO,EAAFo3D,KAAOA,GAAK,GAAFthG,GAA4B,KAAtBkqC,EAAED,EAAE2phB,gBAAwB,IAAI3phB,EAAEA,EAAE4phB,cAAc3phB,GAAGo3D,EAAE,EAAEp3D,GAAcllD,EAAE,IAAbgb,EAAE,GAAGoyiB,GAAGlogB,IAAUo3D,GAAGr3D,EAAEjqC,GAAGkqC,IAAIllD,EAAE,OAAOs8G,EACtc,SAASsjE,GAAG36H,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAOC,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAOA,EAAE,IAAuJ,QAAQ,OAAO,GACnN,SAASypG,GAAG1pG,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEwphB,cAAsCxphB,EAAI,WAAFA,EAAa,WAAW,EAAE,SAAS8vgB,GAAG9vgB,GAAG,IAAI,IAAIC,EAAE,GAAGlqC,EAAE,EAAE,GAAGA,EAAEA,IAAIkqC,EAAE9kD,KAAK6kD,GAAG,OAAOC,EAAE,SAAS8jgB,GAAG/jgB,EAAEC,EAAElqC,GAAGiqC,EAAEwphB,cAAcvphB,EAAE,YAAYA,IAAID,EAAEyphB,eAAe,EAAEzphB,EAAE0phB,YAAY,IAAG1phB,EAAEA,EAAE6phB,YAAW5phB,EAAE,GAAGkogB,GAAGlogB,IAAQlqC,EACnN,SAASy4iB,GAAGxugB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAE2phB,gBAAgB1phB,EAAE,IAAID,EAAEA,EAAE4phB,cAAc7zjB,GAAG,CAAC,IAAIshG,EAAE,GAAG8wc,GAAGpyiB,GAAGhb,EAAE,GAAGs8G,EAAEt8G,EAAEklD,EAAED,EAAEq3D,GAAGp3D,IAAID,EAAEq3D,IAAIp3D,GAAGlqC,IAAIhb,GAAG,IAAIm1T,GAAE,EAAE,SAASu6P,GAAGzqgB,GAAS,OAAO,GAAbA,IAAIA,GAAa,EAAEA,EAAE,KAAO,UAAFA,GAAa,GAAG,UAAU,EAAE,EACrd,IAAIqlgB,GAAG+K,GAAGb,GAAGQ,GAAGjB,GAAG4B,IAAG,EAAGnL,GAAG,GAAG0G,GAAG,KAAKV,GAAG,KAAK3H,GAAG,KAAKkH,GAAG,IAAI/4T,IAAIs0T,GAAG,IAAIt0T,IAAIi9T,GAAG,GAAG9E,GAAG,6PAA6PlijB,MAAM,KACzV,SAASqkjB,GAAGrsgB,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWisgB,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYV,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAW3H,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAakH,GAAG3iU,OAAOloM,EAAE6vP,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBu2Q,GAAGl+T,OAAOloM,EAAE6vP,YACxS,SAAS46Q,GAAG1qgB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,OAAG,OAAO9mE,GAAGA,EAAEiwf,cAAcnpb,GAAS9mE,EAAE,CAAC8phB,UAAU7phB,EAAE8phB,aAAah0jB,EAAEi0jB,iBAAiB3yd,EAAE44b,YAAYnpb,EAAEmjd,iBAAiB,CAAClvkB,IAAI,OAAOklD,IAAY,QAARA,EAAE0ngB,GAAG1ngB,KAAamwgB,GAAGnwgB,IAAID,IAAEA,EAAEgqhB,kBAAkB3yd,EAAEp3D,EAAED,EAAEiqhB,iBAAiB,OAAOlvkB,IAAI,IAAIklD,EAAEv/C,QAAQ3F,IAAIklD,EAAE9kD,KAAKJ,GAAUilD,GAEnR,SAAS2xgB,GAAG3xgB,GAAG,IAAIC,EAAE8tgB,GAAG/tgB,EAAE7+C,QAAQ,GAAG,OAAO8+C,EAAE,CAAC,IAAIlqC,EAAEoviB,GAAGllgB,GAAG,GAAG,OAAOlqC,EAAE,GAAW,MAARkqC,EAAElqC,EAAEglH,MAAY,GAAW,QAAR96E,EAAEskgB,GAAGxuiB,IAA4D,OAA/CiqC,EAAE8phB,UAAU7phB,OAAE6ugB,GAAG9ugB,EAAE+3F,UAAS,WAAWw3a,GAAGx5iB,WAAkB,GAAG,IAAIkqC,GAAGlqC,EAAEwyjB,UAAU1vV,QAAQ4vV,cAAcyB,aAAmE,YAArDlqhB,EAAE8phB,UAAU,IAAI/zjB,EAAEglH,IAAIhlH,EAAEwyjB,UAAU4B,cAAc,MAAanqhB,EAAE8phB,UAAU,KAC9S,SAASvb,GAAGvugB,GAAG,GAAG,OAAOA,EAAE8phB,UAAU,OAAM,EAAG,IAAI,IAAI7phB,EAAED,EAAEiqhB,iBAAiB,EAAEhqhB,EAAEplD,QAAQ,CAAC,IAAIkb,EAAEoxiB,GAAGnngB,EAAE+phB,aAAa/phB,EAAEgqhB,iBAAiB/phB,EAAE,GAAGD,EAAEiwf,aAAa,GAAG,OAAOl6hB,EAAiG,OAAe,QAARkqC,EAAE0ngB,GAAG5xiB,KAAaq6iB,GAAGnwgB,GAAGD,EAAE8phB,UAAU/zjB,GAAE,EAA3H,IAAIshG,EAAE,IAAtBthG,EAAEiqC,EAAEiwf,aAAwBlniB,YAAYgN,EAAEmI,KAAKnI,GAAGy6iB,GAAGn5c,EAAEthG,EAAE5U,OAAO67B,cAAcq6E,GAAGm5c,GAAG,KAA0DvwgB,EAAEsgB,QAAQ,OAAM,EAAG,SAASotf,GAAG3tgB,EAAEC,EAAElqC,GAAGw4iB,GAAGvugB,IAAIjqC,EAAEoyO,OAAOloM,GAAG,SAASkrgB,KAAKuF,IAAG,EAAG,OAAOzE,IAAIsC,GAAGtC,MAAMA,GAAG,MAAM,OAAOV,IAAIgD,GAAGhD,MAAMA,GAAG,MAAM,OAAO3H,IAAI2K,GAAG3K,MAAMA,GAAG,MAAMkH,GAAGtwjB,QAAQmzjB,IAAItH,GAAG7rjB,QAAQmzjB,IAChf,SAAS9I,GAAG7kgB,EAAEC,GAAGD,EAAE8phB,YAAY7phB,IAAID,EAAE8phB,UAAU,KAAKpZ,KAAKA,IAAG,EAAG9N,EAAG+lB,0BAA0B/lB,EAAGumB,wBAAwBhe,MACvH,SAASrF,GAAG9lgB,GAAG,SAASC,EAAEA,GAAG,OAAO4kgB,GAAG5kgB,EAAED,GAAG,GAAG,EAAEulgB,GAAG1qjB,OAAO,CAACgqjB,GAAGU,GAAG,GAAGvlgB,GAAG,IAAI,IAAIjqC,EAAE,EAAEA,EAAEwviB,GAAG1qjB,OAAOkb,IAAI,CAAC,IAAIshG,EAAEkuc,GAAGxviB,GAAGshG,EAAEyyd,YAAY9phB,IAAIq3D,EAAEyyd,UAAU,OAA+F,IAAxF,OAAO7d,IAAIpH,GAAGoH,GAAGjsgB,GAAG,OAAOurgB,IAAI1G,GAAG0G,GAAGvrgB,GAAG,OAAO4jgB,IAAIiB,GAAGjB,GAAG5jgB,GAAG8qgB,GAAGtwjB,QAAQylD,GAAGomgB,GAAG7rjB,QAAQylD,GAAOlqC,EAAE,EAAEA,EAAEi5iB,GAAGn0jB,OAAOkb,KAAIshG,EAAE23c,GAAGj5iB,IAAK+zjB,YAAY9phB,IAAIq3D,EAAEyyd,UAAU,MAAM,KAAK,EAAE9a,GAAGn0jB,QAAiB,QAARkb,EAAEi5iB,GAAG,IAAY8a,WAAYnY,GAAG57iB,GAAG,OAAOA,EAAE+zjB,WAAW9a,GAAGzuf,QAAQ,IAAIwkf,GAAGzpP,EAAG8uQ,wBACjZ,SAASjnB,GAAGnjgB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEm1T,GAAEppM,EAAEi+b,GAAGvlV,WAAWulV,GAAGvlV,WAAW,KAAK,IAAI0wF,GAAE,EAAEs8P,GAAGxsgB,EAAEC,EAAElqC,EAAEshG,GAAjB,QAA4B64M,GAAEn1T,EAAEgqjB,GAAGvlV,WAAW14G,GAAG,SAASygc,GAAGvngB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEm1T,GAAEppM,EAAEi+b,GAAGvlV,WAAWulV,GAAGvlV,WAAW,KAAK,IAAI0wF,GAAE,EAAEs8P,GAAGxsgB,EAAEC,EAAElqC,EAAEshG,GAAjB,QAA4B64M,GAAEn1T,EAAEgqjB,GAAGvlV,WAAW14G,GAC/N,SAAS0lc,GAAGxsgB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEosjB,GAAGnngB,EAAEC,EAAElqC,EAAEshG,GAAG,GAAG,OAAOt8G,EAAEysjB,GAAGxngB,EAAEC,EAAEo3D,EAAE05c,GAAGh7iB,GAAGs2iB,GAAGrsgB,EAAEq3D,QAAQ,GAN/E,SAAYr3D,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,OAAOklD,GAAG,IAAK,UAAU,OAAOgsgB,GAAGvB,GAAGuB,GAAGjsgB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,IAAG,EAAG,IAAK,YAAY,OAAOwwjB,GAAGb,GAAGa,GAAGvrgB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,IAAG,EAAG,IAAK,YAAY,OAAO6ojB,GAAG8G,GAAG9G,GAAG5jgB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,IAAG,EAAG,IAAK,cAAc,IAAI+rH,EAAE/rH,EAAE+0S,UAAkD,OAAxCg7Q,GAAGvrf,IAAIunD,EAAE4jc,GAAGI,GAAG1wiB,IAAI0sG,IAAI,KAAK9mE,EAAEC,EAAElqC,EAAEshG,EAAEt8G,KAAU,EAAG,IAAK,oBAAoB,OAAO+rH,EAAE/rH,EAAE+0S,UAAUu2Q,GAAG9mf,IAAIunD,EAAE4jc,GAAGrE,GAAGjsiB,IAAI0sG,IAAI,KAAK9mE,EAAEC,EAAElqC,EAAEshG,EAAEt8G,KAAI,EAAG,OAAM,EAM/QuujB,CAAGvujB,EAAEilD,EAAEC,EAAElqC,EAAEshG,GAAGA,EAAE11G,uBAAuB,GAAG0qjB,GAAGrsgB,EAAEq3D,GAAK,EAAFp3D,IAAM,EAAEiqgB,GAAGxpjB,QAAQs/C,GAAG,CAAC,KAAK,OAAOjlD,GAAG,CAAC,IAAI+rH,EAAE6gc,GAAG5sjB,GAA0D,GAAvD,OAAO+rH,GAAGu+b,GAAGv+b,GAAiB,QAAdA,EAAEqgc,GAAGnngB,EAAEC,EAAElqC,EAAEshG,KAAamwc,GAAGxngB,EAAEC,EAAEo3D,EAAE05c,GAAGh7iB,GAAM+wG,IAAI/rH,EAAE,MAAMA,EAAE+rH,EAAE,OAAO/rH,GAAGs8G,EAAE11G,uBAAuB6ljB,GAAGxngB,EAAEC,EAAEo3D,EAAE,KAAKthG,GAAG,IAAIg7iB,GAAG,KAC5T,SAAS5J,GAAGnngB,EAAEC,EAAElqC,EAAEshG,GAA2B,GAAxB05c,GAAG,KAAwB,QAAX/wgB,EAAE+tgB,GAAV/tgB,EAAEiogB,GAAG5wc,KAAuB,GAAW,QAARp3D,EAAEklgB,GAAGnlgB,IAAYA,EAAE,UAAU,GAAW,MAARjqC,EAAEkqC,EAAE86E,KAAW,CAAS,GAAG,QAAX/6E,EAAEukgB,GAAGtkgB,IAAe,OAAOD,EAAEA,EAAE,UAAU,GAAG,IAAIjqC,EAAE,CAAC,GAAGkqC,EAAEsohB,UAAU1vV,QAAQ4vV,cAAcyB,aAAa,OAAO,IAAIjqhB,EAAE86E,IAAI96E,EAAEsohB,UAAU4B,cAAc,KAAKnqhB,EAAE,UAAUC,IAAID,IAAIA,EAAE,MAAW,OAAL+wgB,GAAG/wgB,EAAS,KACzS,SAAS8ogB,GAAG9ogB,GAAG,OAAOA,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,OAAO,EAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,OAAO,EACpqC,IAAK,UAAU,OAAOmkgB,MAAM,KAAKoF,GAAG,OAAO,EAAE,KAAK+J,GAAG,OAAO,EAAE,KAAKz4Y,GAAG,KAAKqsY,GAAG,OAAO,GAAG,KAAKmM,GAAG,OAAO,UAAU,QAAQ,OAAO,GAAG,QAAQ,OAAO,IAAI,IAAIpoZ,GAAG,KAAKk3I,GAAG,KAAKysQ,GAAG,KAAK,SAASpqjB,KAAK,GAAGoqjB,GAAG,OAAOA,GAAG,IAAI5ugB,EAAkBq3D,EAAhBp3D,EAAEkiQ,GAAGpsS,EAAEkqC,EAAEplD,OAASE,EAAE,UAAUkwK,GAAGA,GAAG9uK,MAAM8uK,GAAG5tK,YAAYypH,EAAE/rH,EAAEF,OAAO,IAAImlD,EAAE,EAAEA,EAAEjqC,GAAGkqC,EAAED,KAAKjlD,EAAEilD,GAAGA,KAAK,IAAI+gB,EAAEhrD,EAAEiqC,EAAE,IAAIq3D,EAAE,EAAEA,GAAGt2C,GAAG9gB,EAAElqC,EAAEshG,KAAKt8G,EAAE+rH,EAAEzP,GAAGA,KAAK,OAAOu3c,GAAG7zjB,EAAEiF,MAAMggD,EAAE,EAAEq3D,EAAE,EAAEA,OAAE,GACjY,SAAS87c,GAAGnzgB,GAAG,IAAIC,EAAED,EAAE6K,QAA+E,MAAvE,aAAa7K,EAAgB,KAAbA,EAAEA,EAAE27M,WAAgB,KAAK17M,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAASolgB,KAAK,OAAM,EAAG,SAASwK,KAAK,OAAM,EAC1K,SAASqD,GAAGjzgB,GAAG,SAASC,EAAEA,EAAEo3D,EAAEt8G,EAAE+rH,EAAE/lD,GAA6G,IAAI,IAAIhrD,KAAlHxb,KAAK8vkB,WAAWpqhB,EAAE1lD,KAAK+vkB,YAAYvvkB,EAAER,KAAK2jB,KAAKm5F,EAAE98G,KAAK01iB,YAAYnpb,EAAEvsH,KAAK4G,OAAO4/D,EAAExmE,KAAK0O,cAAc,KAAkB+2C,EAAEA,EAAEqxB,eAAet7D,KAAKkqC,EAAED,EAAEjqC,GAAGxb,KAAKwb,GAAGkqC,EAAEA,EAAE6mE,GAAGA,EAAE/wG,IAAgI,OAA5Hxb,KAAKy8R,oBAAoB,MAAMlwK,EAAE4X,iBAAiB5X,EAAE4X,kBAAiB,IAAK5X,EAAE82D,aAAawnY,GAAGwK,GAAGr1jB,KAAK8kS,qBAAqBuwR,GAAUr1jB,KAC1E,OAD+Ek7d,EAAEx1a,EAAElgD,UAAU,CAAC6B,eAAe,WAAWrH,KAAKmkI,kBAAiB,EAAG,IAAI1+E,EAAEzlD,KAAK01iB,YAAYjwf,IAAIA,EAAEp+C,eAAeo+C,EAAEp+C,iBAAiB,mBAAmBo+C,EAAE49H,cAC7e59H,EAAE49H,aAAY,GAAIrjL,KAAKy8R,mBAAmBouR,KAAKzjjB,gBAAgB,WAAW,IAAIq+C,EAAEzlD,KAAK01iB,YAAYjwf,IAAIA,EAAEr+C,gBAAgBq+C,EAAEr+C,kBAAkB,mBAAmBq+C,EAAEyze,eAAezze,EAAEyze,cAAa,GAAIl5hB,KAAK8kS,qBAAqB+lR,KAAKmlB,QAAQ,aAAaC,aAAaplB,KAAYnlgB,EAChR,IAAoLsygB,GAAG92P,GAAGvvD,GAAtL6uD,GAAG,CAAC81O,WAAW,EAAED,QAAQ,EAAE97P,WAAW,EAAEvrK,UAAU,SAASvpF,GAAG,OAAOA,EAAEupF,WAAW1gE,KAAKskC,OAAOuxB,iBAAiB,EAAEyjK,UAAU,GAAGqnR,GAAGyJ,GAAGl4P,IAAI0uP,GAAGh0F,EAAE,GAAG16J,GAAG,CAAC5zD,KAAK,EAAEv+H,OAAO,IAAIi6a,GAAGoQ,GAAGxJ,IAAavE,GAAGzvF,EAAE,GAAGg0F,GAAG,CAACtwQ,QAAQ,EAAE23P,QAAQ,EAAEhoa,QAAQ,EAAEC,QAAQ,EAAE5mG,MAAM,EAAEE,MAAM,EAAE9B,QAAQ,EAAE7iC,SAAS,EAAEka,OAAO,EAAEsvC,QAAQ,EAAEkiF,iBAAiBg+a,GAAG1qjB,OAAO,EAAEqkY,QAAQ,EAAEn6V,cAAc,SAASoZ,GAAG,YAAO,IAASA,EAAEpZ,cAAcoZ,EAAEyqhB,cAAczqhB,EAAEu7F,WAAWv7F,EAAEgxf,UAAUhxf,EAAEyqhB,YAAYzqhB,EAAEpZ,eAAe8jiB,UAAU,SAAS1qhB,GAAG,MAAG,cAC3eA,EAASA,EAAE0qhB,WAAU1qhB,IAAIksN,KAAKA,IAAI,cAAclsN,EAAE9hC,MAAMq0iB,GAAGvygB,EAAEm5P,QAAQjtC,GAAGitC,QAAQsiB,GAAGz7Q,EAAE8wf,QAAQ5kS,GAAG4kS,SAASr1O,GAAG82P,GAAG,EAAErmT,GAAGlsN,GAAUuygB,KAAIoY,UAAU,SAAS3qhB,GAAG,MAAM,cAAcA,EAAEA,EAAE2qhB,UAAUlvQ,MAAMuqP,GAAGiN,GAAG/N,IAAiCiH,GAAG8G,GAA7Bx9F,EAAE,GAAGyvF,GAAG,CAAC3ka,aAAa,KAA4Csla,GAAGoN,GAA9Bx9F,EAAE,GAAGg0F,GAAG,CAAC7ihB,cAAc,KAA0EinhB,GAAGoF,GAA5Dx9F,EAAE,GAAG16J,GAAG,CAAC39L,cAAc,EAAEwtc,YAAY,EAAEC,cAAc,KAAc5hB,GAAGxzF,EAAE,GAAG16J,GAAG,CAACroN,cAAc,SAAS1yD,GAAG,MAAM,kBAAkBA,EAAEA,EAAE0yD,cAAc1yF,OAAO0yF,iBAAiBmhd,GAAGZ,GAAGhK,IAAyBgH,GAAGgD,GAArBx9F,EAAE,GAAG16J,GAAG,CAAC3yT,KAAK,KAAc2rjB,GAAG,CAACx2jB,IAAI,SACxfutkB,SAAS,IAAIrskB,KAAK,YAAYJ,GAAG,UAAUM,MAAM,aAAaJ,KAAK,YAAYwskB,IAAI,SAASC,IAAI,KAAKv7K,KAAK,cAAcw7K,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgB7d,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQvB,GAAG,CAACqf,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASlkB,GAAGrngB,GAAG,IAAIC,EAAE1lD,KAAK01iB,YAAY,OAAOhwf,EAAEmpF,iBAAiBnpF,EAAEmpF,iBAAiBppF,MAAIA,EAAE+rgB,GAAG/rgB,OAAMC,EAAED,GAAM,SAASongB,KAAK,OAAOC,GAC9R,IAAI2L,GAAGv9F,EAAE,GAAGg0F,GAAG,CAAClojB,IAAI,SAASy+C,GAAG,GAAGA,EAAEz+C,IAAI,CAAC,IAAI0+C,EAAE8zgB,GAAG/zgB,EAAEz+C,MAAMy+C,EAAEz+C,IAAI,GAAG,iBAAiB0+C,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAE9hC,KAAc,MAAR8hC,EAAEmzgB,GAAGnzgB,IAAU,QAAQogB,OAAOsmE,aAAa1mF,GAAI,YAAYA,EAAE9hC,MAAM,UAAU8hC,EAAE9hC,KAAKoviB,GAAGttgB,EAAE6K,UAAU,eAAe,IAAIizG,KAAK,EAAEvjI,SAAS,EAAEgG,QAAQ,EAAE7iC,SAAS,EAAEka,OAAO,EAAEsvC,QAAQ,EAAE6+D,OAAO,EAAEz+G,OAAO,EAAE8hI,iBAAiBg+a,GAAGzrT,SAAS,SAAS37M,GAAG,MAAM,aAAaA,EAAE9hC,KAAKi1iB,GAAGnzgB,GAAG,GAAG6K,QAAQ,SAAS7K,GAAG,MAAM,YAAYA,EAAE9hC,MAAM,UAAU8hC,EAAE9hC,KAAK8hC,EAAE6K,QAAQ,GAAGpT,MAAM,SAASuI,GAAG,MAAM,aAC7eA,EAAE9hC,KAAKi1iB,GAAGnzgB,GAAG,YAAYA,EAAE9hC,MAAM,UAAU8hC,EAAE9hC,KAAK8hC,EAAE6K,QAAQ,KAAKo8f,GAAGgM,GAAGD,IAAiIvM,GAAGwM,GAA7Hx9F,EAAE,GAAGyvF,GAAG,CAACp1Q,UAAU,EAAEjkS,MAAM,EAAEC,OAAO,EAAE0/jB,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEvnS,YAAY,EAAEwnS,UAAU,KAAmItY,GAAGN,GAArHx9F,EAAE,GAAGg0F,GAAG,CAAC3la,QAAQ,EAAEitZ,cAAc,EAAE3uQ,eAAe,EAAExqR,OAAO,EAAEsvC,QAAQ,EAAE3mB,QAAQ,EAAE7iC,SAAS,EAAE0rI,iBAAiBg+a,MAA0ES,GAAGoL,GAA3Dx9F,EAAE,GAAG16J,GAAG,CAAC7xT,aAAa,EAAE0hkB,YAAY,EAAEC,cAAc,KAAcnb,GAAGj6F,EAAE,GAAGyvF,GAAG,CAACr9a,OAAO,SAAS7nF,GAAG,MAAM,WAAWA,EAAEA,EAAE6nF,OAAO,gBAAgB7nF,GAAGA,EAAE8rhB,YAAY,GAClfhkc,OAAO,SAAS9nF,GAAG,MAAM,WAAWA,EAAEA,EAAE8nF,OAAO,gBAAgB9nF,GAAGA,EAAE+rhB,YAAY,eAAe/rhB,GAAGA,EAAEgshB,WAAW,GAAG7nS,OAAO,EAAEp8J,UAAU,IAAIk9a,GAAGgO,GAAGvD,IAAI5B,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIrB,GAAGlqQ,GAAI,qBAAqBviS,OAAOuwiB,GAAG,KAAKhuQ,GAAI,iBAAiBxlT,WAAWwzjB,GAAGxzjB,SAASm0iB,cAAc,IAAI2Y,GAAGtnQ,GAAI,cAAcviS,SAASuwiB,GAAGpK,GAAG5jQ,KAAMkqQ,IAAI8D,IAAI,EAAEA,IAAI,IAAIA,IAAInK,GAAGhmf,OAAOsmE,aAAa,IAAIulc,IAAG,EAC1W,SAAS7rR,GAAGpgQ,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAI8tgB,GAAGptjB,QAAQu/C,EAAE4K,SAAS,IAAK,UAAU,OAAO,MAAM5K,EAAE4K,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS+1P,GAAG5gQ,GAAc,MAAM,kBAAjBA,EAAEA,EAAE4oF,SAAkC,SAAS5oF,EAAEA,EAAE53C,KAAK,KAAK,IAAI64S,IAAG,EAE9Q,IAAIirR,GAAG,CAACv4hB,OAAM,EAAGlV,MAAK,EAAGojV,UAAS,EAAG,kBAAiB,EAAG8zH,OAAM,EAAGx2O,OAAM,EAAGnrL,QAAO,EAAGmqI,UAAS,EAAG53H,OAAM,EAAGktE,QAAO,EAAG04a,KAAI,EAAGjvkB,MAAK,EAAGkqE,MAAK,EAAGjuB,KAAI,EAAG+lN,MAAK,GAAI,SAASu6D,GAAGz5Q,GAAG,IAAIC,EAAED,GAAGA,EAAEoxM,UAAUpxM,EAAEoxM,SAAS5zN,cAAc,MAAM,UAAUyiB,IAAIishB,GAAGlshB,EAAE9hC,MAAM,aAAa+hC,EAAQ,SAASmshB,GAAGpshB,EAAEC,EAAElqC,EAAEshG,GAAGuuc,GAAGvuc,GAAsB,GAAnBp3D,EAAEoshB,GAAGpshB,EAAE,aAAgBplD,SAASkb,EAAE,IAAIyziB,GAAG,WAAW,SAAS,KAAKzziB,EAAEshG,GAAGr3D,EAAE7kD,KAAK,CAAC4Z,MAAMgB,EAAEgpH,UAAU9+E,KAAK,IAAIqshB,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGxshB,GAAGg7Q,GAAGh7Q,EAAE,GAAG,SAASyshB,GAAGzshB,GAAe,GAAG8kgB,EAAT4nB,GAAG1shB,IAAY,OAAOA,EACne,SAAS2shB,GAAG3shB,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAIiiF,IAAG,EAAG,GAAGqgL,EAAG,CAAC,IAAI0D,GAAG,GAAG1D,EAAG,CAAC,IAAIuZ,GAAG,YAAY/+T,SAAS,IAAI++T,GAAG,CAAC,IAAI8wQ,GAAG7vkB,SAAS4gC,cAAc,OAAOiviB,GAAGvxkB,aAAa,UAAU,WAAWygU,GAAG,oBAAoB8wQ,GAAGC,QAAQ5mR,GAAG6V,QAAQ7V,IAAG,EAAG/jL,GAAG+jL,MAAMlpT,SAASm0iB,cAAc,EAAEn0iB,SAASm0iB,cAAc,SAAS47B,KAAKR,KAAKA,GAAGp5J,YAAY,mBAAmB65J,IAAIR,GAAGD,GAAG,MAAM,SAASS,GAAG/shB,GAAG,GAAG,UAAUA,EAAE92C,cAAcujkB,GAAGF,IAAI,CAAC,IAAItshB,EAAE,GAAGmshB,GAAGnshB,EAAEsshB,GAAGvshB,EAAEiogB,GAAGjogB,IAAI4ogB,GAAG4jB,GAAGvshB,IAC5b,SAAS+shB,GAAGhthB,EAAEC,EAAElqC,GAAG,YAAYiqC,GAAG8shB,KAAUP,GAAGx2jB,GAARu2jB,GAAGrshB,GAAUyyX,YAAY,mBAAmBq6J,KAAK,aAAa/shB,GAAG8shB,KAAK,SAASG,GAAGjthB,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOyshB,GAAGF,IAAI,SAASW,GAAGlthB,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOyshB,GAAGxshB,GAAG,SAASkthB,GAAGnthB,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOyshB,GAAGxshB,GAAmE,IAAImthB,GAAG,oBAAoB/rkB,OAAOgzB,GAAGhzB,OAAOgzB,GAA5G,SAAY2rB,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GACrW,SAASothB,GAAGrthB,EAAEC,GAAG,GAAGmthB,GAAGpthB,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIlqC,EAAE1U,OAAOC,KAAK0+C,GAAGq3D,EAAEh2G,OAAOC,KAAK2+C,GAAG,GAAGlqC,EAAElb,SAASw8G,EAAEx8G,OAAO,OAAM,EAAG,IAAIw8G,EAAE,EAAEA,EAAEthG,EAAElb,OAAOw8G,IAAI,CAAC,IAAIt8G,EAAEgb,EAAEshG,GAAG,IAAIurM,EAAG5nT,KAAKilD,EAAEllD,KAAKqykB,GAAGpthB,EAAEjlD,GAAGklD,EAAEllD,IAAI,OAAM,EAAG,OAAM,EAAG,SAASuykB,GAAGtthB,GAAG,KAAKA,GAAGA,EAAEs9D,YAAYt9D,EAAEA,EAAEs9D,WAAW,OAAOt9D,EACrU,SAASuthB,GAAGvthB,EAAEC,GAAG,IAAwBo3D,EAApBthG,EAAEu3jB,GAAGtthB,GAAO,IAAJA,EAAE,EAAYjqC,GAAG,CAAC,GAAG,IAAIA,EAAEw/D,SAAS,CAA0B,GAAzB8hC,EAAEr3D,EAAEjqC,EAAE1Y,YAAYxC,OAAUmlD,GAAGC,GAAGo3D,GAAGp3D,EAAE,MAAM,CAACuwB,KAAKz6D,EAAEjQ,OAAOm6C,EAAED,GAAGA,EAAEq3D,EAAEr3D,EAAE,CAAC,KAAKjqC,GAAG,CAAC,GAAGA,EAAEknG,YAAY,CAAClnG,EAAEA,EAAEknG,YAAY,MAAMj9D,EAAEjqC,EAAEA,EAAE4O,WAAW5O,OAAE,EAAOA,EAAEu3jB,GAAGv3jB,IAAI,SAASy3jB,GAAGxthB,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAEu1B,YAAYt1B,GAAG,IAAIA,EAAEs1B,SAASi4f,GAAGxthB,EAAEC,EAAEt7B,YAAY,aAAaq7B,EAAEA,EAAE1mC,SAAS2mC,KAAGD,EAAEggP,4BAAwD,GAA7BhgP,EAAEggP,wBAAwB//O,MAClZ,SAASwthB,KAAK,IAAI,IAAIzthB,EAAEhgC,OAAOigC,EAAE0pgB,IAAK1pgB,aAAaD,EAAE0thB,mBAAmB,CAAC,IAAI,IAAI33jB,EAAE,kBAAkBkqC,EAAE0thB,cAAcpziB,SAAS+/B,KAAK,MAAM+8C,GAAGthG,GAAE,EAAG,IAAGA,EAAyB,MAAMkqC,EAAE0pgB,GAA/B3pgB,EAAEC,EAAE0thB,eAAgC5wkB,UAAU,OAAOkjD,EAAE,SAAS2thB,GAAG5thB,GAAG,IAAIC,EAAED,GAAGA,EAAEoxM,UAAUpxM,EAAEoxM,SAAS5zN,cAAc,OAAOyiB,IAAI,UAAUA,IAAI,SAASD,EAAE9hC,MAAM,WAAW8hC,EAAE9hC,MAAM,QAAQ8hC,EAAE9hC,MAAM,QAAQ8hC,EAAE9hC,MAAM,aAAa8hC,EAAE9hC,OAAO,aAAa+hC,GAAG,SAASD,EAAE6thB,iBACxZ,SAASC,GAAG9thB,GAAG,IAAIC,EAAEwthB,KAAK13jB,EAAEiqC,EAAE+thB,YAAY12d,EAAEr3D,EAAEg+F,eAAe,GAAG/9F,IAAIlqC,GAAGA,GAAGA,EAAEmlH,eAAesyc,GAAGz3jB,EAAEmlH,cAAcl4F,gBAAgBjtB,GAAG,CAAC,GAAG,OAAOshG,GAAGu2d,GAAG73jB,GAAG,GAAGkqC,EAAEo3D,EAAEjhG,WAAc,KAAR4pC,EAAEq3D,EAAE1pF,OAAiBqyB,EAAEC,GAAG,mBAAmBlqC,EAAEA,EAAE8hF,eAAe53C,EAAElqC,EAAEw6F,aAAarwF,KAAKG,IAAI2/B,EAAEjqC,EAAE5Z,MAAMtB,aAAa,IAAGmlD,GAAGC,EAAElqC,EAAEmlH,eAAen+H,WAAWkjD,EAAE2rJ,aAAa5rL,QAASmwJ,aAAa,CAACnwH,EAAEA,EAAEmwH,eAAe,IAAIp1K,EAAEgb,EAAE1Y,YAAYxC,OAAOisH,EAAE5mG,KAAKG,IAAIg3F,EAAEjhG,MAAMrb,GAAGs8G,OAAE,IAASA,EAAE1pF,IAAIm5F,EAAE5mG,KAAKG,IAAIg3F,EAAE1pF,IAAI5yB,IAAIilD,EAAE38C,QAAQyjH,EAAEzP,IAAIt8G,EAAEs8G,EAAEA,EAAEyP,EAAEA,EAAE/rH,GAAGA,EAAEwykB,GAAGx3jB,EAAE+wG,GAAG,IAAI/lD,EAAEwsgB,GAAGx3jB,EACvfshG,GAAGt8G,GAAGgmE,IAAI,IAAI/gB,EAAE+0G,YAAY/0G,EAAEguhB,aAAajzkB,EAAEy1E,MAAMxwB,EAAEiuhB,eAAelzkB,EAAE+K,QAAQk6C,EAAEkuhB,YAAYntgB,EAAEyP,MAAMxwB,EAAEmuhB,cAAcptgB,EAAEj7D,WAAUm6C,EAAEA,EAAEuwD,eAAgBg0B,SAASzpI,EAAEy1E,KAAKz1E,EAAE+K,QAAQk6C,EAAEqoK,kBAAkBvhG,EAAEzP,GAAGr3D,EAAEm1G,SAASl1G,GAAGD,EAAE38C,OAAO09D,EAAEyP,KAAKzP,EAAEj7D,UAAUm6C,EAAEwkF,OAAO1jE,EAAEyP,KAAKzP,EAAEj7D,QAAQk6C,EAAEm1G,SAASl1G,KAAU,IAALA,EAAE,GAAOD,EAAEjqC,EAAEiqC,EAAEA,EAAEr7B,YAAY,IAAIq7B,EAAEu1B,UAAUt1B,EAAE9kD,KAAK,CAACd,QAAQ2lD,EAAE/sC,KAAK+sC,EAAEze,WAAWluB,IAAI2sC,EAAExe,YAAmD,IAAvC,oBAAoBzrB,EAAEza,OAAOya,EAAEza,QAAYya,EAAE,EAAEA,EAAEkqC,EAAEplD,OAAOkb,KAAIiqC,EAAEC,EAAElqC,IAAK1b,QAAQknC,WAAWye,EAAE/sC,KAAK+sC,EAAE3lD,QAAQmnC,UAAUwe,EAAE3sC,KACrf,IAAI+6jB,GAAG7rR,GAAI,iBAAiBxlT,UAAU,IAAIA,SAASm0iB,aAAam9B,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGzuhB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEthG,EAAEiK,SAASjK,EAAEA,EAAEhZ,SAAS,IAAIgZ,EAAEw/D,SAASx/D,EAAEA,EAAEmlH,cAAcszc,IAAI,MAAMH,IAAIA,KAAK1kB,EAAGtyc,KAAU,mBAALA,EAAEg3d,KAAyBT,GAAGv2d,GAAGA,EAAE,CAACjhG,MAAMihG,EAAExf,eAAelqE,IAAI0pF,EAAE9G,cAAuF8G,EAAE,CAAC22d,YAA3E32d,GAAGA,EAAE6jB,eAAe7jB,EAAE6jB,cAAc0wE,aAAa5rL,QAAQmwJ,gBAA+B69Z,WAAWC,aAAa52d,EAAE42d,aAAaC,UAAU72d,EAAE62d,UAAUC,YAAY92d,EAAE82d,aAAcI,IAAIlB,GAAGkB,GAAGl3d,KAAKk3d,GAAGl3d,EAAsB,GAApBA,EAAEg1d,GAAGiC,GAAG,aAAgBzzkB,SAASolD,EAAE,IAAIupgB,GAAG,WAAW,SAAS,KAAKvpgB,EAAElqC,GAAGiqC,EAAE7kD,KAAK,CAAC4Z,MAAMkrC,EAAE8+E,UAAU1nB,IAAIp3D,EAAE9+C,OAAOktkB,MACjf,SAASK,GAAG1uhB,EAAEC,GAAG,IAAIlqC,EAAE,GAAkF,OAA/EA,EAAEiqC,EAAExiB,eAAeyiB,EAAEziB,cAAcznB,EAAE,SAASiqC,GAAG,SAASC,EAAElqC,EAAE,MAAMiqC,GAAG,MAAMC,EAASlqC,EAAE,IAAI44jB,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAGlvhB,GAAG,GAAGgvhB,GAAGhvhB,GAAG,OAAOgvhB,GAAGhvhB,GAAG,IAAI2uhB,GAAG3uhB,GAAG,OAAOA,EAAE,IAAYjqC,EAARkqC,EAAE0uhB,GAAG3uhB,GAAK,IAAIjqC,KAAKkqC,EAAE,GAAGA,EAAEoxB,eAAet7D,IAAIA,KAAKk5jB,GAAG,OAAOD,GAAGhvhB,GAAGC,EAAElqC,GAAG,OAAOiqC,EAA9XuiQ,IAAK0sR,GAAGlykB,SAAS4gC,cAAc,OAAOnlB,MAAM,mBAAmBwH,gBAAgB2ujB,GAAGC,aAAa/vW,iBAAiB8vW,GAAGE,mBAAmBhwW,iBAAiB8vW,GAAGG,eAAejwW,WAAW,oBAAoB7+M,eAAe2ujB,GAAGI,cAAcvvW,YAAwJ,IAAI2vW,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,IAAIx9U,IAAIy9U,GAAG,smBAAsmBxnkB,MAAM,KAC/lC,SAASywT,GAAGz4Q,EAAEC,GAAGsvhB,GAAGhwgB,IAAIvf,EAAEC,GAAGyrgB,EAAGzrgB,EAAE,CAACD,IAAI,IAAI,IAAIyvhB,GAAG,EAAEA,GAAGD,GAAG30kB,OAAO40kB,KAAK,CAAC,IAAIC,GAAGF,GAAGC,IAA2Dh3Q,GAApDi3Q,GAAGlyiB,cAAuD,MAAtCkyiB,GAAG,GAAGzvd,cAAcyvd,GAAG1vkB,MAAM,KAAkBy4T,GAAG02Q,GAAG,kBAAkB12Q,GAAG22Q,GAAG,wBAAwB32Q,GAAG42Q,GAAG,oBAAoB52Q,GAAG,WAAW,iBAAiBA,GAAG,UAAU,WAAWA,GAAG,WAAW,UAAUA,GAAG62Q,GAAG,mBAAmB1tR,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAC7cA,EAAG,iBAAiB,CAAC,aAAa,gBAAgB8pQ,EAAG,WAAW,oEAAoE1jjB,MAAM,MAAM0jjB,EAAG,WAAW,uFAAuF1jjB,MAAM,MAAM0jjB,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2D1jjB,MAAM,MAAM0jjB,EAAG,qBAAqB,6DAA6D1jjB,MAAM,MAC/f0jjB,EAAG,sBAAsB,8DAA8D1jjB,MAAM,MAAM,IAAI65S,GAAG,6NAA6N75S,MAAM,KAAK2nkB,GAAG,IAAIzwd,IAAI,0CAA0Cl3G,MAAM,KAAKmuB,OAAO0rR,KACzZ,SAAS+tR,GAAG5vhB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAE9hC,MAAM,gBAAgB8hC,EAAE/2C,cAAc8M,EAlDjE,SAAYiqC,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,GAA4B,GAAzB6wf,GAAGxiiB,MAAMhmB,KAAK+H,WAAcuhjB,GAAG,CAAC,IAAGA,GAAgC,MAAMj0gB,MAAM+hD,EAAE,MAA1C,IAAIlH,EAAEu5d,GAAGH,IAAG,EAAGG,GAAG,KAA8BE,KAAKA,IAAG,EAAG0G,GAAGnge,IAkDjE6ge,CAAGj0c,EAAEp3D,OAAE,EAAOD,GAAGA,EAAE/2C,cAAc,KACpG,SAAS+xT,GAAGh7Q,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIlqC,EAAE,EAAEA,EAAEiqC,EAAEnlD,OAAOkb,IAAI,CAAC,IAAIshG,EAAEr3D,EAAEjqC,GAAGhb,EAAEs8G,EAAEtiG,MAAMsiG,EAAEA,EAAE0nB,UAAU/+E,EAAE,CAAC,IAAI8mE,OAAE,EAAO,GAAG7mE,EAAE,IAAI,IAAI8gB,EAAEs2C,EAAEx8G,OAAO,EAAE,GAAGkmE,EAAEA,IAAI,CAAC,IAAIgjF,EAAE1sC,EAAEt2C,GAAG7O,EAAE6xF,EAAEp7I,SAAS8hF,EAAEs5D,EAAE96I,cAA2B,GAAb86I,EAAEA,EAAEnpJ,SAAYs3D,IAAI40D,GAAG/rH,EAAEskS,uBAAuB,MAAMr/O,EAAE4vhB,GAAG70kB,EAAEgpJ,EAAEt5D,GAAGq8B,EAAE50D,OAAO,IAAI6O,EAAE,EAAEA,EAAEs2C,EAAEx8G,OAAOkmE,IAAI,CAAoD,GAA5C7O,GAAP6xF,EAAE1sC,EAAEt2C,IAAOp4D,SAAS8hF,EAAEs5D,EAAE96I,cAAc86I,EAAEA,EAAEnpJ,SAAYs3D,IAAI40D,GAAG/rH,EAAEskS,uBAAuB,MAAMr/O,EAAE4vhB,GAAG70kB,EAAEgpJ,EAAEt5D,GAAGq8B,EAAE50D,IAAI,GAAGgyf,GAAG,MAAMlkgB,EAAE4qgB,GAAG1G,IAAG,EAAG0G,GAAG,KAAK5qgB,EAC1a,SAASo/c,GAAEp/c,EAAEC,GAAG,IAAIlqC,EAAEkqC,EAAE4vhB,SAAI,IAAS95jB,IAAIA,EAAEkqC,EAAE4vhB,IAAI,IAAI3wd,KAAK,IAAI7H,EAAEr3D,EAAE,WAAWjqC,EAAEqe,IAAIijF,KAAKy4d,GAAG7vhB,EAAED,EAAE,GAAE,GAAIjqC,EAAEla,IAAIw7G,IAAI,SAAS04d,GAAG/vhB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE,EAAEp3D,IAAIo3D,GAAG,GAAGy4d,GAAG/5jB,EAAEiqC,EAAEq3D,EAAEp3D,GAAG,IAAI+vhB,GAAG,kBAAkB9vjB,KAAK+5D,SAASjxE,SAAS,IAAIhJ,MAAM,GAAG,SAAS+sH,GAAG/sE,GAAG,IAAIA,EAAEgwhB,IAAI,CAAChwhB,EAAEgwhB,KAAI,EAAGrvR,EAAGnmT,SAAQ,SAASylD,GAAG,oBAAoBA,IAAI0vhB,GAAGv7iB,IAAI6rB,IAAI8vhB,GAAG9vhB,GAAE,EAAGD,GAAG+vhB,GAAG9vhB,GAAE,EAAGD,OAAM,IAAIC,EAAE,IAAID,EAAEu1B,SAASv1B,EAAEA,EAAEk7E,cAAc,OAAOj7E,GAAGA,EAAE+vhB,MAAM/vhB,EAAE+vhB,KAAI,EAAGD,GAAG,mBAAkB,EAAG9vhB,KAC7a,SAAS6vhB,GAAG9vhB,EAAEC,EAAElqC,EAAEshG,GAAG,OAAOyxc,GAAG7ogB,IAAI,KAAK,EAAE,IAAIllD,EAAEoojB,GAAG,MAAM,KAAK,EAAEpojB,EAAEwsjB,GAAG,MAAM,QAAQxsjB,EAAEyxjB,GAAGz2iB,EAAEhb,EAAEiK,KAAK,KAAKi7C,EAAElqC,EAAEiqC,GAAGjlD,OAAE,GAAQstjB,IAAI,eAAepogB,GAAG,cAAcA,GAAG,UAAUA,IAAIllD,GAAE,GAAIs8G,OAAE,IAASt8G,EAAEilD,EAAE/kD,iBAAiBglD,EAAElqC,EAAE,CAACyxH,SAAQ,EAAGR,QAAQjsI,IAAIilD,EAAE/kD,iBAAiBglD,EAAElqC,GAAE,QAAI,IAAShb,EAAEilD,EAAE/kD,iBAAiBglD,EAAElqC,EAAE,CAACixH,QAAQjsI,IAAIilD,EAAE/kD,iBAAiBglD,EAAElqC,GAAE,GAC/U,SAASyxiB,GAAGxngB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI+rH,EAAEzP,EAAE,GAAG,KAAO,EAAFp3D,IAAM,KAAO,EAAFA,IAAM,OAAOo3D,EAAEr3D,EAAE,OAAO,CAAC,GAAG,OAAOq3D,EAAE,OAAO,IAAIt2C,EAAEs2C,EAAE0jB,IAAI,GAAG,IAAIh6D,GAAG,IAAIA,EAAE,CAAC,IAAIgjF,EAAE1sC,EAAEkxd,UAAU4B,cAAc,GAAGpmb,IAAIhpJ,GAAG,IAAIgpJ,EAAExuE,UAAUwuE,EAAEp/H,aAAa5pB,EAAE,MAAM,GAAG,IAAIgmE,EAAE,IAAIA,EAAEs2C,EAAEkhC,OAAO,OAAOx3E,GAAG,CAAC,IAAI7O,EAAE6O,EAAEg6D,IAAI,IAAG,IAAI7oE,GAAG,IAAIA,MAAKA,EAAE6O,EAAEwngB,UAAU4B,iBAAkBpvkB,GAAG,IAAIm3D,EAAEqjB,UAAUrjB,EAAEvtC,aAAa5pB,GAAE,OAAOgmE,EAAEA,EAAEw3E,OAAO,KAAK,OAAOwL,GAAG,CAAS,GAAG,QAAXhjF,EAAEgtf,GAAGhqa,IAAe,OAAe,GAAG,KAAX7xF,EAAE6O,EAAEg6D,MAAc,IAAI7oE,EAAE,CAACmlD,EAAEyP,EAAE/lD,EAAE,SAAS/gB,EAAE+jG,EAAEA,EAAEp/H,YAAY0yF,EAAEA,EAAEkhC,OAAOqwa,IAAG,WAAW,IAAIvxc,EAAEyP,EAAE/rH,EAAEktjB,GAAGlyiB,GAAGgrD,EAAE,GACpf/gB,EAAE,CAAC,IAAI+jG,EAAEwrb,GAAGn1jB,IAAI4lC,GAAG,QAAG,IAAS+jG,EAAE,CAAC,IAAI7xF,EAAEs3f,GAAGv3f,EAAEjS,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAImzgB,GAAGp9iB,GAAG,MAAMiqC,EAAE,IAAK,UAAU,IAAK,QAAQkS,EAAE+0f,GAAG,MAAM,IAAK,UAAUh1f,EAAE,QAAQC,EAAE2zf,GAAG,MAAM,IAAK,WAAW5zf,EAAE,OAAOC,EAAE2zf,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY3zf,EAAE2zf,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI9viB,EAAErZ,OAAO,MAAMsjD,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAckS,EAAE8zf,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO9zf,EAC1iBi6f,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAaj6f,EAAEqhgB,GAAG,MAAM,KAAK4b,GAAG,KAAKC,GAAG,KAAKC,GAAGn9gB,EAAE27f,GAAG,MAAM,KAAKyhB,GAAGp9gB,EAAE21f,GAAG,MAAM,IAAK,SAAS31f,EAAE2wf,GAAG,MAAM,IAAK,QAAQ3wf,EAAE+yf,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQ/yf,EAAE2hgB,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAY3hgB,EAAEu0f,GAAG,IAAIrlgB,EAAE,KAAO,EAAFnB,GAAKwiE,GAAGrhE,GAAG,WAAWpB,EAAEyQ,EAAErP,EAAE,OAAO2iG,EAAEA,EAAE,UAAU,KAAKA,EAAE3iG,EAAE,GAAG,IAAI,IAAQ71C,EAAJu1D,EAAEu2C,EAAI,OAC/ev2C,GAAG,CAAK,IAAImpF,GAAR1+I,EAAEu1D,GAAUyngB,UAAsF,GAA5E,IAAIh9jB,EAAEwvH,KAAK,OAAOkvB,IAAI1+I,EAAE0+I,EAAE,OAAOx5F,IAAc,OAAVw5F,EAAE+9Z,GAAGlnf,EAAErQ,KAAYrP,EAAEjmD,KAAK6+D,GAAG8G,EAAEmpF,EAAE1+I,MAASk3G,EAAE,MAAM3hD,EAAEA,EAAEy3E,OAAO,EAAEn3F,EAAEvmD,SAASkpJ,EAAE,IAAI7xF,EAAE6xF,EAAE9xF,EAAE,KAAKl8C,EAAEhb,GAAGgmE,EAAE5lE,KAAK,CAAC4Z,MAAMgvI,EAAEhlB,UAAU39E,MAAM,GAAG,KAAO,EAAFnB,GAAK,CAA4E,GAAnCiS,EAAE,aAAalS,GAAG,eAAeA,KAAtE+jG,EAAE,cAAc/jG,GAAG,gBAAgBA,IAA2CjqC,IAAIy6iB,MAAKv+f,EAAEl8C,EAAE6wB,eAAe7wB,EAAE00jB,eAAe1c,GAAG97f,KAAIA,EAAEg+gB,OAAgB/9gB,GAAG6xF,KAAGA,EAAEhpJ,EAAEilB,SAASjlB,EAAEA,GAAGgpJ,EAAEhpJ,EAAEmgI,eAAe6oB,EAAE6nD,aAAa7nD,EAAEq3Z,aAAap7hB,OAAUkyC,GAAqCA,EAAEmlD,EAAiB,QAAfplD,GAAnCA,EAAEl8C,EAAE6wB,eAAe7wB,EAAEi7hB,WAAkB+c,GAAG97f,GAAG,QAC9dA,KAARwwD,EAAE0ic,GAAGlzf,KAAU,IAAIA,EAAE8oE,KAAK,IAAI9oE,EAAE8oE,OAAK9oE,EAAE,QAAUC,EAAE,KAAKD,EAAEolD,GAAKnlD,IAAID,GAAE,CAAgU,GAA/T7Q,EAAE4kgB,GAAG/7Z,EAAE,eAAex5F,EAAE,eAAeqQ,EAAE,QAAW,eAAe9gB,GAAG,gBAAgBA,IAAEoB,EAAEqlgB,GAAGx8Z,EAAE,iBAAiBx5F,EAAE,iBAAiBqQ,EAAE,WAAU2hD,EAAE,MAAMvwD,EAAE6xF,EAAE2ob,GAAGx6gB,GAAG3mD,EAAE,MAAM0mD,EAAE8xF,EAAE2ob,GAAGz6gB,IAAG8xF,EAAE,IAAI3iG,EAAE6oG,EAAEnpF,EAAE,QAAQ5O,EAAEn8C,EAAEhb,IAAKoG,OAAOshH,EAAEshC,EAAEn9G,cAAcr7B,EAAE0+I,EAAE,KAAK8ja,GAAGhzjB,KAAKs8G,KAAIj2D,EAAE,IAAIA,EAAEqP,EAAEqQ,EAAE,QAAQ7O,EAAEl8C,EAAEhb,IAAKoG,OAAOoK,EAAE61C,EAAExa,cAAc67E,EAAEwnC,EAAE7oG,GAAGqhE,EAAEwnC,EAAK/3F,GAAGD,EAAEhS,EAAE,CAAa,IAARwQ,EAAEwB,EAAE6O,EAAE,EAAMv1D,EAAhB61C,EAAE8Q,EAAkB3mD,EAAEA,EAAE2kkB,GAAG3kkB,GAAGu1D,IAAQ,IAAJv1D,EAAE,EAAM0+I,EAAEx5F,EAAEw5F,EAAEA,EAAEimb,GAAGjmb,GAAG1+I,IAAI,KAAK,EAAEu1D,EAAEv1D,GAAG61C,EAAE8uhB,GAAG9uhB,GAAG0f,IAAI,KAAK,EAAEv1D,EAAEu1D,GAAGrQ,EACpfy/gB,GAAGz/gB,GAAGllD,IAAI,KAAKu1D,KAAK,CAAC,GAAG1f,IAAIqP,GAAG,OAAOA,GAAGrP,IAAIqP,EAAE+3gB,UAAU,MAAMvohB,EAAEmB,EAAE8uhB,GAAG9uhB,GAAGqP,EAAEy/gB,GAAGz/gB,GAAGrP,EAAE,UAAUA,EAAE,KAAK,OAAO8Q,GAAGi+gB,GAAGpvgB,EAAEgjF,EAAE7xF,EAAE9Q,GAAE,GAAI,OAAO6Q,GAAG,OAAOwwD,GAAG0td,GAAGpvgB,EAAE0hD,EAAExwD,EAAE7Q,GAAE,GAAiE,GAAG,YAA1C8Q,GAAjB6xF,EAAE1sC,EAAEq1d,GAAGr1d,GAAGr3F,QAAWoxO,UAAUrtG,EAAEqtG,SAAS5zN,gBAA+B,UAAU00B,GAAG,SAAS6xF,EAAE7lI,KAAK,IAAIwkG,EAAEiqd,QAAQ,GAAGlzQ,GAAG11K,GAAG,GAAG7hB,GAAGxf,EAAEyqd,OAAO,CAACzqd,EAAEuqd,GAAG,IAAI5qB,EAAE2qB,QAAQ96gB,EAAE6xF,EAAEqtG,WAAW,UAAUl/L,EAAE10B,gBAAgB,aAAaumH,EAAE7lI,MAAM,UAAU6lI,EAAE7lI,QAAQwkG,EAAEwqd,IAClV,OADyVxqd,IAAIA,EAAEA,EAAE1iE,EAAEq3D,IAAK+0d,GAAGrrgB,EAAE2hD,EAAE3sG,EAAEhb,IAAWsnjB,GAAGA,EAAErigB,EAAE+jG,EAAE1sC,GAAG,aAAar3D,IAAIqigB,EAAEt+Z,EAAE4ib,gBACtetkB,EAAEwkB,YAAY,WAAW9ib,EAAE7lI,MAAM41iB,GAAG/va,EAAE,SAASA,EAAE5nJ,QAAOkmjB,EAAEhrc,EAAEq1d,GAAGr1d,GAAGr3F,OAAcggC,GAAG,IAAK,WAAay5Q,GAAG4oP,IAAI,SAASA,EAAEwrB,mBAAgBQ,GAAGhsB,EAAEisB,GAAGj3d,EAAEk3d,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAG1tgB,EAAEhrD,EAAEhb,GAAG,MAAM,IAAK,kBAAkB,GAAGqzkB,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAG1tgB,EAAEhrD,EAAEhb,GAAG,IAAIyqjB,EAAG,GAAGiH,GAAGxsgB,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI2pG,EAAE,qBAAqB,MAAM1pG,EAAE,IAAK,iBAAiB0pG,EAAE,mBAAmB,MAAM1pG,EACtf,IAAK,oBAAoB0pG,EAAE,sBAAsB,MAAM1pG,EAAE0pG,OAAE,OAAYs3J,GAAGb,GAAGpgQ,EAAEjqC,KAAK4zI,EAAE,oBAAoB,YAAY3pG,GAAG,MAAMjqC,EAAE80C,UAAU8+F,EAAE,sBAAsBA,IAAIw8Z,IAAI,OAAOpwiB,EAAEzO,SAAS25S,IAAI,uBAAuBt3J,EAAE,qBAAqBA,GAAGs3J,KAAKukQ,EAAGhhjB,OAAY29S,GAAG,UAARl3I,GAAGlwK,GAAkBkwK,GAAG9uK,MAAM8uK,GAAG5tK,YAAY4jT,IAAG,IAAe,GAAVohQ,EAAEgqB,GAAGh1d,EAAEsyC,IAAO9uJ,SAAS8uJ,EAAE,IAAIsma,GAAGtma,EAAE3pG,EAAE,KAAKjqC,EAAEhb,GAAGgmE,EAAE5lE,KAAK,CAAC4Z,MAAM40I,EAAE5qB,UAAUsjb,IAAImD,EAAG77Z,EAAEvhJ,KAAKo9iB,EAAa,QAATA,EAAG5kQ,GAAG7qS,MAAe4zI,EAAEvhJ,KAAKo9iB,MAAUA,EAAGqE,GA5BxK,SAAY7pgB,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO4gQ,GAAG3gQ,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAExI,MAAa,MAAKw0hB,IAAG,EAAU7lB,IAAG,IAAK,YAAY,OAAOpmgB,EAAEC,EAAE73C,QAASg+iB,IAAI6lB,GAAG,KAAKjshB,EAAE,QAAQ,OAAO,MA4BjBshQ,CAAGthQ,EAAEjqC,GA3Bjc,SAAYiqC,EAAEC,GAAG,GAAGghQ,GAAG,MAAM,mBAAmBjhQ,IAAIysgB,IAAIrsQ,GAAGpgQ,EAAEC,IAAID,EAAEx7C,KAAKoqjB,GAAGzsQ,GAAGl3I,GAAG,KAAKg2I,IAAG,EAAGjhQ,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAE1f,SAAS0f,EAAEroC,QAAQqoC,EAAEiH,UAAUjH,EAAE1f,SAAS0f,EAAEroC,OAAO,CAAC,GAAGqoC,EAAE21C,MAAM,EAAE31C,EAAE21C,KAAK/6F,OAAO,OAAOolD,EAAE21C,KAAK,GAAG31C,EAAExI,MAAM,OAAO2oB,OAAOsmE,aAAazmF,EAAExI,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAO0ugB,IAAI,OAAOlmgB,EAAE34C,OAAO,KAAK24C,EAAE73C,MA2BsFgokB,CAAGpwhB,EAAEjqC,MAA2B,GAAxBshG,EAAEg1d,GAAGh1d,EAAE,kBAAqBx8G,SAASE,EAAE,IAAIk1jB,GAAG,gBAC1f,cAAc,KAAKl6iB,EAAEhb,GAAGgmE,EAAE5lE,KAAK,CAAC4Z,MAAMha,EAAEgkI,UAAU1nB,IAAIt8G,EAAEqN,KAAKo9iB,IAAIxqP,GAAGj6P,EAAE9gB,MAAK,SAAS+Z,GAAGha,EAAEC,EAAElqC,GAAG,MAAM,CAACpN,SAASq3C,EAAEplD,SAASqlD,EAAEh3C,cAAc8M,GAAG,SAASs2jB,GAAGrshB,EAAEC,GAAG,IAAI,IAAIlqC,EAAEkqC,EAAE,UAAUo3D,EAAE,GAAG,OAAOr3D,GAAG,CAAC,IAAIjlD,EAAEilD,EAAE8mE,EAAE/rH,EAAEwtkB,UAAU,IAAIxtkB,EAAEggI,KAAK,OAAOjU,IAAI/rH,EAAE+rH,EAAY,OAAVA,EAAEkhc,GAAGhogB,EAAEjqC,KAAYshG,EAAEogD,QAAQz9F,GAAGha,EAAE8mE,EAAE/rH,IAAc,OAAV+rH,EAAEkhc,GAAGhogB,EAAEC,KAAYo3D,EAAEl8G,KAAK6+D,GAAGha,EAAE8mE,EAAE/rH,KAAKilD,EAAEA,EAAEu4F,OAAO,OAAOlhC,EAAE,SAAS64d,GAAGlwhB,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEu4F,aAAav4F,GAAG,IAAIA,EAAE+6E,KAAK,OAAO/6E,GAAI,KACza,SAASmwhB,GAAGnwhB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI,IAAI+rH,EAAE7mE,EAAEoqhB,WAAWtpgB,EAAE,GAAG,OAAOhrD,GAAGA,IAAIshG,GAAG,CAAC,IAAI0sC,EAAEhuI,EAAEm8C,EAAE6xF,EAAEykb,UAAU/9e,EAAEs5D,EAAEwkb,UAAU,GAAG,OAAOr2gB,GAAGA,IAAImlD,EAAE,MAAM,IAAI0sC,EAAEhpB,KAAK,OAAOtwC,IAAIs5D,EAAEt5D,EAAE1vF,EAAa,OAAVm3D,EAAE81f,GAAGjyiB,EAAE+wG,KAAY/lD,EAAE02F,QAAQz9F,GAAGjkD,EAAEm8C,EAAE6xF,IAAKhpJ,GAAc,OAAVm3D,EAAE81f,GAAGjyiB,EAAE+wG,KAAY/lD,EAAE5lE,KAAK6+D,GAAGjkD,EAAEm8C,EAAE6xF,KAAMhuI,EAAEA,EAAEwiI,OAAO,IAAIx3E,EAAElmE,QAAQmlD,EAAE7kD,KAAK,CAAC4Z,MAAMkrC,EAAE8+E,UAAUh+D,IAAI,IAAIsvgB,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAGvwhB,GAAG,OAAO,kBAAkBA,EAAEA,EAAE,GAAGA,GAAGiD,QAAQothB,GAAG,MAAMpthB,QAAQqthB,GAAG,IAAI,SAASE,GAAGxwhB,EAAEC,EAAElqC,GAAW,GAARkqC,EAAEswhB,GAAGtwhB,GAAMswhB,GAAGvwhB,KAAKC,GAAGlqC,EAAE,MAAM65B,MAAM+hD,EAAE,MAAO,SAAS8+e,MACze,IAAIC,GAAG,KAAK,SAASC,GAAG3whB,EAAEC,GAAG,MAAM,aAAaD,GAAG,aAAaA,GAAG,kBAAkBC,EAAE36C,UAAU,kBAAkB26C,EAAE36C,UAAU,kBAAkB26C,EAAEm8D,yBAAyB,OAAOn8D,EAAEm8D,yBAAyB,MAAMn8D,EAAEm8D,wBAAwBC,OAC9O,IAAIu0d,GAAG,oBAAoBxzkB,WAAWA,gBAAW,EAAOyzkB,GAAG,oBAAoBp4iB,aAAaA,kBAAa,EAAOq4iB,GAAG,oBAAoBp4hB,QAAQA,aAAQ,EAAOq4hB,GAAG,oBAAoBC,eAAeA,eAAe,qBAAqBF,GAAG,SAAS9whB,GAAG,OAAO8whB,GAAGnmkB,QAAQ,MAAMouC,KAAKiH,GAAGhG,MAAMi3hB,KAAKL,GAAG,SAASK,GAAGjxhB,GAAG5iD,YAAW,WAAW,MAAM4iD,KAChV,SAASkxhB,GAAGlxhB,EAAEC,GAAG,IAAIlqC,EAAEkqC,EAAEo3D,EAAE,EAAE,EAAE,CAAC,IAAIt8G,EAAEgb,EAAEknG,YAA6B,GAAjBj9D,EAAE0H,YAAY3xC,GAAMhb,GAAG,IAAIA,EAAEw6E,SAAS,GAAY,QAATx/D,EAAEhb,EAAEqN,MAAc,CAAC,GAAG,IAAIivG,EAA0B,OAAvBr3D,EAAE0H,YAAY3sD,QAAG+qjB,GAAG7lgB,GAAUo3D,QAAQ,MAAMthG,GAAG,OAAOA,GAAG,OAAOA,GAAGshG,IAAIthG,EAAEhb,QAAQgb,GAAG+viB,GAAG7lgB,GAAG,SAASkxhB,GAAGnxhB,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAEi9D,YAAY,CAAC,IAAIh9D,EAAED,EAAEu1B,SAAS,GAAG,IAAIt1B,GAAG,IAAIA,EAAE,MAAM,GAAG,IAAIA,EAAE,CAAU,GAAG,OAAZA,EAAED,EAAE53C,OAAiB,OAAO63C,GAAG,OAAOA,EAAE,MAAM,GAAG,OAAOA,EAAE,OAAO,MAAM,OAAOD,EAChY,SAASoxhB,GAAGpxhB,GAAGA,EAAEA,EAAE6wM,gBAAgB,IAAI,IAAI5wM,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEu1B,SAAS,CAAC,IAAIx/D,EAAEiqC,EAAE53C,KAAK,GAAG,MAAM2N,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIkqC,EAAE,OAAOD,EAAEC,QAAQ,OAAOlqC,GAAGkqC,IAAID,EAAEA,EAAE6wM,gBAAgB,OAAO,KAAK,IAAIwgV,GAAGnxjB,KAAK+5D,SAASjxE,SAAS,IAAIhJ,MAAM,GAAGsxkB,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGpB,GAAG,oBAAoBoB,GAAGxB,GAAG,iBAAiBwB,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAAStjB,GAAG/tgB,GAAG,IAAIC,EAAED,EAAEsxhB,IAAI,GAAGrxhB,EAAE,OAAOA,EAAE,IAAI,IAAIlqC,EAAEiqC,EAAEr7B,WAAW5O,GAAG,CAAC,GAAGkqC,EAAElqC,EAAEk6jB,KAAKl6jB,EAAEu7jB,IAAI,CAAe,GAAdv7jB,EAAEkqC,EAAEuohB,UAAa,OAAOvohB,EAAE5mC,OAAO,OAAOtD,GAAG,OAAOA,EAAEsD,MAAM,IAAI2mC,EAAEoxhB,GAAGpxhB,GAAG,OAAOA,GAAG,CAAC,GAAGjqC,EAAEiqC,EAAEsxhB,IAAI,OAAOv7jB,EAAEiqC,EAAEoxhB,GAAGpxhB,GAAG,OAAOC,EAAMlqC,GAAJiqC,EAAEjqC,GAAM4O,WAAW,OAAO,KAAK,SAASgjiB,GAAG3ngB,GAAkB,QAAfA,EAAEA,EAAEsxhB,KAAKtxhB,EAAEiwhB,MAAc,IAAIjwhB,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,KAAK,KAAK/6E,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,IAAI,KAAK/6E,EAAE,SAAS0shB,GAAG1shB,GAAG,GAAG,IAAIA,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,IAAI,OAAO/6E,EAAEuohB,UAAU,MAAM34hB,MAAM+hD,EAAE,KAAM,SAAS0yd,GAAGrkgB,GAAG,OAAOA,EAAEuxhB,KAAK,KAAK,IAAIG,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG5xhB,GAAG,MAAM,CAAC64L,QAAQ74L,GACre,SAAS+mgB,GAAE/mgB,GAAG,EAAE2xhB,KAAK3xhB,EAAE64L,QAAQ64V,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAASpiW,GAAEvvL,EAAEC,GAAG0xhB,KAAKD,GAAGC,IAAI3xhB,EAAE64L,QAAQ74L,EAAE64L,QAAQ54L,EAAE,IAAI4xhB,GAAG,GAAG5uB,GAAE2uB,GAAGC,IAAIC,GAAGF,IAAG,GAAIG,GAAGF,GAAG,SAASG,GAAGhyhB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAE9hC,KAAKyugB,aAAa,IAAI52gB,EAAE,OAAO87jB,GAAG,IAAIx6d,EAAEr3D,EAAEuohB,UAAU,GAAGlxd,GAAGA,EAAE46d,8CAA8ChyhB,EAAE,OAAOo3D,EAAE66d,0CAA0C,IAASprd,EAAL/rH,EAAE,GAAK,IAAI+rH,KAAK/wG,EAAEhb,EAAE+rH,GAAG7mE,EAAE6mE,GAAoH,OAAjHzP,KAAIr3D,EAAEA,EAAEuohB,WAAY0J,4CAA4ChyhB,EAAED,EAAEkyhB,0CAA0Cn3kB,GAAUA,EAC7d,SAASo3kB,GAAGnyhB,GAAyB,OAAO,QAA7BA,EAAEA,EAAEyse,yBAAmC,IAASzse,EAAE,SAASoyhB,KAAKrrB,GAAE+qB,IAAI/qB,GAAE9D,IAAG,SAASovB,GAAGryhB,EAAEC,EAAElqC,GAAG,GAAGktiB,GAAEpqU,UAAUg5V,GAAG,MAAMjiiB,MAAM+hD,EAAE,MAAM49I,GAAE0zU,GAAEhjgB,GAAGsvL,GAAEuiW,GAAG/7jB,GAAG,SAASu8jB,GAAGtyhB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEuohB,UAAgC,GAAtBtohB,EAAEA,EAAEwse,kBAAqB,oBAAoBp1a,EAAEigb,gBAAgB,OAAOvhhB,EAAwB,IAAI,IAAIhb,KAA9Bs8G,EAAEA,EAAEigb,kBAAiC,KAAKv8hB,KAAKklD,GAAG,MAAMrQ,MAAM+hD,EAAE,IAAImyd,EAAG9jgB,IAAI,UAAUjlD,IAAI,OAAO06d,EAAE,GAAG1/c,EAAEshG,GACtX,SAASk7d,GAAGvyhB,GAA2G,OAAxGA,GAAGA,EAAEA,EAAEuohB,YAAYvohB,EAAEwyhB,2CAA2CX,GAAGE,GAAG9uB,GAAEpqU,QAAQtJ,GAAE0zU,GAAEjjgB,GAAGuvL,GAAEuiW,GAAGA,GAAGj5V,UAAe,EAAG,SAAS45V,GAAGzyhB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEuohB,UAAU,IAAIlxd,EAAE,MAAMznE,MAAM+hD,EAAE,MAAM57E,GAAGiqC,EAAEsyhB,GAAGtyhB,EAAEC,EAAE8xhB,IAAI16d,EAAEm7d,0CAA0CxyhB,EAAE+mgB,GAAE+qB,IAAI/qB,GAAE9D,IAAG1zU,GAAE0zU,GAAEjjgB,IAAI+mgB,GAAE+qB,IAAIviW,GAAEuiW,GAAG/7jB,GAAG,IAAI28jB,GAAG,KAAKC,IAAG,EAAGC,IAAG,EAAG,SAASryR,GAAGvgQ,GAAG,OAAO0yhB,GAAGA,GAAG,CAAC1yhB,GAAG0yhB,GAAGv3kB,KAAK6kD,GAC9V,SAAS6yhB,KAAK,IAAID,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI5yhB,EAAE,EAAEC,EAAEiwQ,GAAE,IAAI,IAAIn6S,EAAE28jB,GAAG,IAAIxiR,GAAE,EAAElwQ,EAAEjqC,EAAElb,OAAOmlD,IAAI,CAAC,IAAIq3D,EAAEthG,EAAEiqC,GAAG,GAAGq3D,EAAEA,GAAE,SAAU,OAAOA,GAAGq7d,GAAG,KAAKC,IAAG,EAAG,MAAM53kB,GAAG,MAAM,OAAO23kB,KAAKA,GAAGA,GAAG1ykB,MAAMggD,EAAE,IAAIwkgB,GAAG+E,GAAGspB,IAAI93kB,EAAhJ,QAA2Jm1T,GAAEjwQ,EAAE2yhB,IAAG,GAAI,OAAO,KAAK,IAAIE,GAAGx3Q,EAAG8uQ,wBAAwB,SAAS2I,GAAG/yhB,EAAEC,GAAG,GAAGD,GAAGA,EAAEynR,aAAa,CAA4B,IAAI,IAAI1xT,KAAnCkqC,EAAEw1a,EAAE,GAAGx1a,GAAGD,EAAEA,EAAEynR,kBAA4B,IAASxnR,EAAElqC,KAAKkqC,EAAElqC,GAAGiqC,EAAEjqC,IAAI,OAAOkqC,EAAE,OAAOA,EAAE,IAAI+yhB,GAAGpB,GAAG,MAAMqB,GAAG,KAAKpwR,GAAG,KAAKqwR,GAAG,KAAK,SAASC,KAAKD,GAAGrwR,GAAGowR,GAAG,KACpc,SAAShvR,GAAGjkQ,GAAG,IAAIC,EAAE+yhB,GAAGn6V,QAAQkuU,GAAEisB,IAAIhzhB,EAAEozhB,cAAcnzhB,EAAE,SAASukQ,GAAGxkQ,EAAEC,EAAElqC,GAAG,KAAK,OAAOiqC,GAAG,CAAC,IAAIq3D,EAAEr3D,EAAEwohB,UAA+H,IAApHxohB,EAAEqzhB,WAAWpzhB,KAAKA,GAAGD,EAAEqzhB,YAAYpzhB,EAAE,OAAOo3D,IAAIA,EAAEg8d,YAAYpzhB,IAAI,OAAOo3D,IAAIA,EAAEg8d,WAAWpzhB,KAAKA,IAAIo3D,EAAEg8d,YAAYpzhB,GAAMD,IAAIjqC,EAAE,MAAMiqC,EAAEA,EAAEu4F,QAAQ,SAAS+6b,GAAGtzhB,EAAEC,GAAGgzhB,GAAGjzhB,EAAEkzhB,GAAGrwR,GAAG,KAAsB,QAAjB7iQ,EAAEA,EAAEuzhB,eAAuB,OAAOvzhB,EAAEwzhB,eAAe,KAAKxzhB,EAAEyzhB,MAAMxzhB,KAAKyzhB,IAAG,GAAI1zhB,EAAEwzhB,aAAa,MACzX,SAASG,GAAG3zhB,GAAG,IAAIC,EAAED,EAAEozhB,cAAc,GAAGF,KAAKlzhB,EAAE,GAAGA,EAAE,CAAC9qC,QAAQ8qC,EAAE4zhB,cAAc3zhB,EAAEpH,KAAK,MAAM,OAAOgqQ,GAAG,CAAC,GAAG,OAAOowR,GAAG,MAAMrjiB,MAAM+hD,EAAE,MAAMkxN,GAAG7iQ,EAAEizhB,GAAGM,aAAa,CAACE,MAAM,EAAED,aAAaxzhB,QAAQ6iQ,GAAGA,GAAGhqQ,KAAKmH,EAAE,OAAOC,EAAE,IAAI4zhB,GAAG,KAAKC,IAAG,EAAG,SAAS3tR,GAAGnmQ,GAAGA,EAAE+zhB,YAAY,CAACC,UAAUh0hB,EAAEyohB,cAAcwL,gBAAgB,KAAKC,eAAe,KAAKn5D,OAAO,CAACl0U,QAAQ,KAAKstY,YAAY,KAAKV,MAAM,GAAGp6d,QAAQ,MACzX,SAASytM,GAAG9mQ,EAAEC,GAAGD,EAAEA,EAAE+zhB,YAAY9zhB,EAAE8zhB,cAAc/zhB,IAAIC,EAAE8zhB,YAAY,CAACC,UAAUh0hB,EAAEg0hB,UAAUC,gBAAgBj0hB,EAAEi0hB,gBAAgBC,eAAel0hB,EAAEk0hB,eAAen5D,OAAO/6d,EAAE+6d,OAAO1ha,QAAQr5D,EAAEq5D,UAAU,SAAS2iN,GAAGh8Q,EAAEC,GAAG,MAAM,CAACm0hB,UAAUp0hB,EAAEykI,KAAKxkI,EAAE86E,IAAI,EAAE9F,QAAQ,KAAKlsE,SAAS,KAAKlQ,KAAK,MACjR,SAASw7hB,GAAGr0hB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAE+zhB,YAAY,OAAOh+jB,IAAIA,EAAEA,EAAEglgB,OAAO,OAAOmoC,IAAG,KAAY,EAAPljgB,EAAE4e,OAAS,KAAO,EAAF0jf,KAAsB,QAAhBtigB,EAAEjqC,EAAEo+jB,cAAsBl0hB,EAAEpH,KAAKoH,EAAE,OAAO4zhB,GAAGA,GAAG,CAAC99jB,GAAG89jB,GAAG14kB,KAAK4a,KAAKkqC,EAAEpH,KAAKmH,EAAEnH,KAAKmH,EAAEnH,KAAKoH,GAAGlqC,EAAEo+jB,YAAYl0hB,IAAgB,QAAZD,EAAEjqC,EAAE8wL,SAAiB5mJ,EAAEpH,KAAKoH,GAAGA,EAAEpH,KAAKmH,EAAEnH,KAAKmH,EAAEnH,KAAKoH,GAAGlqC,EAAE8wL,QAAQ5mJ,IAAI,SAASq0hB,GAAGt0hB,EAAEC,EAAElqC,GAAmB,GAAG,QAAnBkqC,EAAEA,EAAE8zhB,eAA0B9zhB,EAAEA,EAAE86d,OAAO,KAAO,QAAFhlgB,IAAY,CAAC,IAAIshG,EAAEp3D,EAAEwzhB,MAAwB19jB,GAAlBshG,GAAGr3D,EAAEwphB,aAAkBvphB,EAAEwzhB,MAAM19jB,EAAEy4iB,GAAGxugB,EAAEjqC,IAClZ,SAASw+jB,GAAGv0hB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAE+zhB,YAAY18d,EAAEr3D,EAAEwohB,UAAU,GAAG,OAAOnxd,GAAoBthG,KAAhBshG,EAAEA,EAAE08d,aAAmB,CAAC,IAAIh5kB,EAAE,KAAK+rH,EAAE,KAAyB,GAAG,QAAvB/wG,EAAEA,EAAEk+jB,iBAA4B,CAAC,EAAE,CAAC,IAAIlzgB,EAAE,CAACqzgB,UAAUr+jB,EAAEq+jB,UAAU3vZ,KAAK1uK,EAAE0uK,KAAK1pD,IAAIhlH,EAAEglH,IAAI9F,QAAQl/G,EAAEk/G,QAAQlsE,SAAShzC,EAAEgzC,SAASlQ,KAAK,MAAM,OAAOiuE,EAAE/rH,EAAE+rH,EAAE/lD,EAAE+lD,EAAEA,EAAEjuE,KAAKkoB,EAAEhrD,EAAEA,EAAE8iC,WAAW,OAAO9iC,GAAG,OAAO+wG,EAAE/rH,EAAE+rH,EAAE7mE,EAAE6mE,EAAEA,EAAEjuE,KAAKoH,OAAOllD,EAAE+rH,EAAE7mE,EAAiH,OAA/GlqC,EAAE,CAACi+jB,UAAU38d,EAAE28d,UAAUC,gBAAgBl5kB,EAAEm5kB,eAAeptd,EAAEi0Z,OAAO1ja,EAAE0ja,OAAO1ha,QAAQhC,EAAEgC,cAASr5D,EAAE+zhB,YAAYh+jB,GAA4B,QAAnBiqC,EAAEjqC,EAAEm+jB,gBAAwBn+jB,EAAEk+jB,gBAAgBh0hB,EAAED,EAAEnH,KACnfoH,EAAElqC,EAAEm+jB,eAAej0hB,EACnB,SAASu0hB,GAAGx0hB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAE+zhB,YAAYD,IAAG,EAAG,IAAIhtd,EAAE/rH,EAAEk5kB,gBAAgBlzgB,EAAEhmE,EAAEm5kB,eAAenwb,EAAEhpJ,EAAEgghB,OAAOl0U,QAAQ,GAAG,OAAO9iD,EAAE,CAAChpJ,EAAEgghB,OAAOl0U,QAAQ,KAAK,IAAI30I,EAAE6xF,EAAEt5D,EAAEv4B,EAAErZ,KAAKqZ,EAAErZ,KAAK,KAAK,OAAOkoB,EAAE+lD,EAAEr8B,EAAE1pB,EAAEloB,KAAK4xC,EAAE1pB,EAAE7O,EAAE,IAAIF,EAAEhS,EAAEwohB,UAAU,OAAOx2gB,KAAoB+xF,GAAhB/xF,EAAEA,EAAE+hhB,aAAgBG,kBAAmBnzgB,IAAI,OAAOgjF,EAAE/xF,EAAEiihB,gBAAgBxpf,EAAEs5D,EAAElrG,KAAK4xC,EAAEz4B,EAAEkihB,eAAehihB,IAAI,GAAG,OAAO40D,EAAE,CAAC,IAAIk9B,EAAEjpJ,EAAEi5kB,UAA6B,IAAnBjzgB,EAAE,EAAE/O,EAAEy4B,EAAEv4B,EAAE,KAAK6xF,EAAEj9B,IAAI,CAAC,IAAIiiF,EAAEhlD,EAAE0gC,KAAKvsK,EAAE6rI,EAAEqwb,UAAU,IAAI/8d,EAAE0xF,KAAKA,EAAE,CAAC,OAAO/2I,IAAIA,EAAEA,EAAEnZ,KAAK,CAACu7hB,UAAUl8jB,EAAEusK,KAAK,EAAE1pD,IAAIgpB,EAAEhpB,IAAI9F,QAAQ8uB,EAAE9uB,QAAQlsE,SAASg7F,EAAEh7F,SACvflQ,KAAK,OAAOmH,EAAE,CAAC,IAAIiS,EAAEjS,EAAEoB,EAAE2iG,EAAU,OAARglD,EAAE9oJ,EAAE/nC,EAAEnC,EAASqrC,EAAE25E,KAAK,KAAK,EAAc,GAAG,oBAAf9oE,EAAE7Q,EAAE6zE,SAAiC,CAAC+uB,EAAE/xF,EAAEj3D,KAAKkd,EAAE8rI,EAAE+kD,GAAG,MAAM/oJ,EAAEgkG,EAAE/xF,EAAE,MAAMjS,EAAE,KAAK,EAAEiS,EAAE6qD,OAAe,MAAT7qD,EAAE6qD,MAAa,IAAI,KAAK,EAAsD,GAAG,QAA3CisF,EAAE,oBAAd92I,EAAE7Q,EAAE6zE,SAAgChjE,EAAEj3D,KAAKkd,EAAE8rI,EAAE+kD,GAAG92I,SAAe,IAAS82I,EAAE,MAAM/oJ,EAAEgkG,EAAEyxU,EAAE,GAAGzxU,EAAE+kD,GAAG,MAAM/oJ,EAAE,KAAK,EAAE8zhB,IAAG,GAAI,OAAO/vb,EAAEh7F,UAAU,IAAIg7F,EAAE0gC,OAAOzkI,EAAE88D,OAAO,GAAe,QAAZisF,EAAEhuM,EAAEs+G,SAAiBt+G,EAAEs+G,QAAQ,CAAC0qC,GAAGglD,EAAE5tM,KAAK4oJ,SAAS7rI,EAAE,CAACk8jB,UAAUl8jB,EAAEusK,KAAKskB,EAAEhuE,IAAIgpB,EAAEhpB,IAAI9F,QAAQ8uB,EAAE9uB,QAAQlsE,SAASg7F,EAAEh7F,SAASlQ,KAAK,MAAM,OAAOmZ,GAAGy4B,EAAEz4B,EAAE95C,EAAEg6C,EAAE8xF,GAAGhyF,EAAEA,EAAEnZ,KAAK3gC,EAAE6oD,GAAGgoI,EAC3e,GAAG,QAAZhlD,EAAEA,EAAElrG,MAAiB,IAAsB,QAAnBkrG,EAAEhpJ,EAAEgghB,OAAOl0U,SAAiB,MAAe9iD,GAAJglD,EAAEhlD,GAAMlrG,KAAKkwJ,EAAElwJ,KAAK,KAAK99C,EAAEm5kB,eAAenrY,EAAEhuM,EAAEgghB,OAAOl0U,QAAQ,MAA0G,GAA5F,OAAO70I,IAAIE,EAAE8xF,GAAGjpJ,EAAEi5kB,UAAU9hhB,EAAEn3D,EAAEk5kB,gBAAgBxpf,EAAE1vF,EAAEm5kB,eAAelihB,EAA4B,QAA1B/R,EAAEllD,EAAEgghB,OAAOo5D,aAAwB,CAACp5kB,EAAEklD,EAAE,GAAG8gB,GAAGhmE,EAAE0pL,KAAK1pL,EAAEA,EAAE89C,WAAW99C,IAAIklD,QAAQ,OAAO6mE,IAAI/rH,EAAEgghB,OAAO04D,MAAM,GAAGgB,IAAI1zgB,EAAE/gB,EAAEyzhB,MAAM1ygB,EAAE/gB,EAAEyohB,cAAczkb,GAC5V,SAAS0wb,GAAG10hB,EAAEC,EAAElqC,GAA8B,GAA3BiqC,EAAEC,EAAEo5D,QAAQp5D,EAAEo5D,QAAQ,KAAQ,OAAOr5D,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAEnlD,OAAOolD,IAAI,CAAC,IAAIo3D,EAAEr3D,EAAEC,GAAGllD,EAAEs8G,EAAEtuD,SAAS,GAAG,OAAOhuD,EAAE,CAAqB,GAApBs8G,EAAEtuD,SAAS,KAAKsuD,EAAEthG,EAAK,oBAAoBhb,EAAE,MAAM60C,MAAM+hD,EAAE,IAAI52F,IAAIA,EAAEC,KAAKq8G,KAAK,IAAIs9d,IAAI,IAAIhyB,EAAG3oc,WAAW5iC,KAAK,SAASw9f,GAAG50hB,EAAEC,EAAElqC,EAAEshG,GAA8BthG,EAAE,QAAXA,EAAEA,EAAEshG,EAAtBp3D,EAAED,EAAEyohB,sBAAmC,IAAS1yjB,EAAEkqC,EAAEw1a,EAAE,GAAGx1a,EAAElqC,GAAGiqC,EAAEyohB,cAAc1yjB,EAAE,IAAIiqC,EAAEyzhB,QAAQzzhB,EAAE+zhB,YAAYC,UAAUj+jB,GAChX,IAAI8+jB,GAAG,CAACC,UAAU,SAAS90hB,GAAG,SAAOA,EAAEA,EAAE+0hB,kBAAiB5vB,GAAGnlgB,KAAKA,GAAMg1hB,gBAAgB,SAASh1hB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAE+0hB,gBAAgB,IAAI19d,EAAE24M,KAAIj1T,EAAEk6kB,GAAGj1hB,GAAG8mE,EAAEk1M,GAAG3kN,EAAEt8G,GAAG+rH,EAAEmO,QAAQh1E,OAAE,IAASlqC,GAAG,OAAOA,IAAI+wG,EAAE/9D,SAAShzC,GAAGs+jB,GAAGr0hB,EAAE8mE,GAAe,QAAZ7mE,EAAEi1hB,GAAGl1hB,EAAEjlD,EAAEs8G,KAAai9d,GAAGr0hB,EAAED,EAAEjlD,IAAIo6kB,oBAAoB,SAASn1hB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAE+0hB,gBAAgB,IAAI19d,EAAE24M,KAAIj1T,EAAEk6kB,GAAGj1hB,GAAG8mE,EAAEk1M,GAAG3kN,EAAEt8G,GAAG+rH,EAAEiU,IAAI,EAAEjU,EAAEmO,QAAQh1E,OAAE,IAASlqC,GAAG,OAAOA,IAAI+wG,EAAE/9D,SAAShzC,GAAGs+jB,GAAGr0hB,EAAE8mE,GAAe,QAAZ7mE,EAAEi1hB,GAAGl1hB,EAAEjlD,EAAEs8G,KAAai9d,GAAGr0hB,EAAED,EAAEjlD,IAAIq6kB,mBAAmB,SAASp1hB,EAAEC,GAAGD,EAAEA,EAAE+0hB,gBAAgB,IAAIh/jB,EAAEi6S,KAAI34M,EAAE49d,GAAGj1hB,GAAGjlD,EAAEihU,GAAGjmT,EACpfshG,GAAGt8G,EAAEggI,IAAI,OAAE,IAAS96E,GAAG,OAAOA,IAAIllD,EAAEguD,SAAS9I,GAAGo0hB,GAAGr0hB,EAAEjlD,GAAe,QAAZklD,EAAEi1hB,GAAGl1hB,EAAEq3D,EAAEthG,KAAau+jB,GAAGr0hB,EAAED,EAAEq3D,KAAK,SAASg+d,GAAGr1hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,GAAiB,MAAM,oBAApB/gB,EAAEA,EAAEuohB,WAAsCxrC,sBAAsB/8e,EAAE+8e,sBAAsB1lb,EAAEyP,EAAE/lD,IAAG9gB,EAAElgD,YAAWkgD,EAAElgD,UAAUu1kB,wBAAsBjI,GAAGt3jB,EAAEshG,KAAKg2d,GAAGtykB,EAAE+rH,IAClR,SAASyud,GAAGv1hB,EAAEC,EAAElqC,GAAG,IAAIshG,GAAE,EAAGt8G,EAAE82kB,GAAO/qd,EAAE7mE,EAAEyse,YAA2W,MAA/V,kBAAkB5la,GAAG,OAAOA,EAAEA,EAAE6sd,GAAG7sd,IAAI/rH,EAAEo3kB,GAAGlyhB,GAAG8xhB,GAAG9uB,GAAEpqU,QAAyB/xH,GAAGzP,EAAE,QAAtBA,EAAEp3D,EAAE0se,oBAA4B,IAASt1a,GAAG26d,GAAGhyhB,EAAEjlD,GAAG82kB,IAAI5xhB,EAAE,IAAIA,EAAElqC,EAAE+wG,GAAG9mE,EAAEyohB,cAAc,OAAOxohB,EAAEyxC,YAAO,IAASzxC,EAAEyxC,MAAMzxC,EAAEyxC,MAAM,KAAKzxC,EAAEu1hB,QAAQX,GAAG70hB,EAAEuohB,UAAUtohB,EAAEA,EAAE80hB,gBAAgB/0hB,EAAEq3D,KAAIr3D,EAAEA,EAAEuohB,WAAY0J,4CAA4Cl3kB,EAAEilD,EAAEkyhB,0CAA0Cprd,GAAU7mE,EAC3Z,SAASw1hB,GAAGz1hB,EAAEC,EAAElqC,EAAEshG,GAAGr3D,EAAEC,EAAEyxC,MAAM,oBAAoBzxC,EAAE+5e,2BAA2B/5e,EAAE+5e,0BAA0BjkhB,EAAEshG,GAAG,oBAAoBp3D,EAAEy1hB,kCAAkCz1hB,EAAEy1hB,iCAAiC3/jB,EAAEshG,GAAGp3D,EAAEyxC,QAAQ1xC,GAAG60hB,GAAGM,oBAAoBl1hB,EAAEA,EAAEyxC,MAAM,MAC/P,SAASikf,GAAG31hB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAEuohB,UAAUxtkB,EAAEg/G,MAAMhkG,EAAEhb,EAAE22F,MAAM1xC,EAAEyohB,cAAc1tkB,EAAEq8E,KAAKu9f,GAAGxuR,GAAGnmQ,GAAG,IAAI8mE,EAAE7mE,EAAEyse,YAAY,kBAAkB5la,GAAG,OAAOA,EAAE/rH,EAAEma,QAAQy+jB,GAAG7sd,IAAIA,EAAEqrd,GAAGlyhB,GAAG8xhB,GAAG9uB,GAAEpqU,QAAQ99O,EAAEma,QAAQ88jB,GAAGhyhB,EAAE8mE,IAAI/rH,EAAE22F,MAAM1xC,EAAEyohB,cAA2C,oBAA7B3hd,EAAE7mE,EAAE6se,4BAAiD8nD,GAAG50hB,EAAEC,EAAE6mE,EAAE/wG,GAAGhb,EAAE22F,MAAM1xC,EAAEyohB,eAAe,oBAAoBxohB,EAAE6se,0BAA0B,oBAAoB/xhB,EAAE28hB,yBAAyB,oBAAoB38hB,EAAE66kB,2BAA2B,oBAAoB76kB,EAAE+8hB,qBAAqB73e,EAAEllD,EAAE22F,MACrf,oBAAoB32F,EAAE+8hB,oBAAoB/8hB,EAAE+8hB,qBAAqB,oBAAoB/8hB,EAAE66kB,2BAA2B76kB,EAAE66kB,4BAA4B31hB,IAAIllD,EAAE22F,OAAOmjf,GAAGM,oBAAoBp6kB,EAAEA,EAAE22F,MAAM,MAAM8if,GAAGx0hB,EAAEjqC,EAAEhb,EAAEs8G,GAAGt8G,EAAE22F,MAAM1xC,EAAEyohB,eAAe,oBAAoB1tkB,EAAE+9hB,oBAAoB94e,EAAE88D,OAAO,SAAS,IAAI+4d,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASC,GAAGt2hB,EAAEC,GAAG41hB,GAAGC,MAAME,GAAGH,GAAGC,MAAMC,GAAGA,GAAG/1hB,EAAEg2hB,GAAG/1hB,EAChZ,SAASs2hB,GAAGv2hB,EAAEC,EAAElqC,GAAGkgkB,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGA,GAAGn2hB,EAAE,IAAIq3D,EAAE++d,GAAGp2hB,EAAEq2hB,GAAG,IAAIt7kB,EAAE,GAAGotjB,GAAG9wc,GAAG,EAAEA,KAAK,GAAGt8G,GAAGgb,GAAG,EAAE,IAAI+wG,EAAE,GAAGqhc,GAAGlogB,GAAGllD,EAAE,GAAG,GAAG+rH,EAAE,CAAC,IAAI/lD,EAAEhmE,EAAEA,EAAE,EAAE+rH,GAAGzP,GAAG,GAAGt2C,GAAG,GAAG/3D,SAAS,IAAIquG,IAAIt2C,EAAEhmE,GAAGgmE,EAAEq1gB,GAAG,GAAG,GAAGjuB,GAAGlogB,GAAGllD,EAAEgb,GAAGhb,EAAEs8G,EAAEg/d,GAAGvvd,EAAE9mE,OAAOo2hB,GAAG,GAAGtvd,EAAE/wG,GAAGhb,EAAEs8G,EAAEg/d,GAAGr2hB,EAAE,SAASw2hB,GAAGx2hB,GAAG,OAAOA,EAAEu4F,SAAS+9b,GAAGt2hB,EAAE,GAAGu2hB,GAAGv2hB,EAAE,EAAE,IAAI,SAASy2hB,GAAGz2hB,GAAG,KAAKA,IAAI+1hB,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,KAAK91hB,IAAIm2hB,IAAIA,GAAGF,KAAKC,IAAID,GAAGC,IAAI,KAAKG,GAAGJ,KAAKC,IAAID,GAAGC,IAAI,KAAKE,GAAGH,KAAKC,IAAID,GAAGC,IAAI,KAAK,IAAIQ,GAAG,KAAKC,GAAG,KAAKvqB,IAAE,EAAGwqB,GAAG,KACje,SAASC,GAAG72hB,EAAEC,GAAG,IAAIlqC,EAAE+gkB,GAAG,EAAE,KAAK,KAAK,GAAG/gkB,EAAEghkB,YAAY,UAAUhhkB,EAAEwyjB,UAAUtohB,EAAElqC,EAAEwiI,OAAOv4F,EAAgB,QAAdC,EAAED,EAAEg3hB,YAAoBh3hB,EAAEg3hB,UAAU,CAACjhkB,GAAGiqC,EAAE88D,OAAO,IAAI78D,EAAE9kD,KAAK4a,GACtJ,SAASkhkB,GAAGj3hB,EAAEC,GAAG,OAAOD,EAAE+6E,KAAK,KAAK,EAAE,IAAIhlH,EAAEiqC,EAAE9hC,KAAyE,OAAO,QAA3E+hC,EAAE,IAAIA,EAAEs1B,UAAUx/D,EAAEynB,gBAAgByiB,EAAEmxM,SAAS5zN,cAAc,KAAKyiB,KAAmBD,EAAEuohB,UAAUtohB,EAAEy2hB,GAAG12hB,EAAE22hB,GAAGxF,GAAGlxhB,EAAEq9D,aAAY,GAAO,KAAK,EAAE,OAAoD,QAA7Cr9D,EAAE,KAAKD,EAAEk3hB,cAAc,IAAIj3hB,EAAEs1B,SAAS,KAAKt1B,KAAYD,EAAEuohB,UAAUtohB,EAAEy2hB,GAAG12hB,EAAE22hB,GAAG,MAAK,GAAO,KAAK,GAAG,OAA+B,QAAxB12hB,EAAE,IAAIA,EAAEs1B,SAAS,KAAKt1B,KAAYlqC,EAAE,OAAOogkB,GAAG,CAAC3xkB,GAAG4xkB,GAAG15c,SAAS25c,IAAI,KAAKr2hB,EAAEyohB,cAAc,CAACC,WAAWzohB,EAAEk3hB,YAAYphkB,EAAEqhkB,UAAU,aAAYrhkB,EAAE+gkB,GAAG,GAAG,KAAK,KAAK,IAAKvO,UAAUtohB,EAAElqC,EAAEwiI,OAAOv4F,EAAEA,EAAE3mC,MAAMtD,EAAE2gkB,GAAG12hB,EAAE22hB,GAClf,MAAK,GAAO,QAAQ,OAAM,GAAI,SAASlkf,GAAGzyC,GAAG,OAAO,KAAY,EAAPA,EAAE4e,OAAS,KAAa,IAAR5e,EAAE88D,OAAW,SAAS9lG,GAAGgpC,GAAG,GAAGosgB,GAAE,CAAC,IAAInsgB,EAAE02hB,GAAG,GAAG12hB,EAAE,CAAC,IAAIlqC,EAAEkqC,EAAE,IAAIg3hB,GAAGj3hB,EAAEC,GAAG,CAAC,GAAGwyC,GAAGzyC,GAAG,MAAMpQ,MAAM+hD,EAAE,MAAM1xC,EAAEkxhB,GAAGp7jB,EAAEknG,aAAa,IAAI5F,EAAEq/d,GAAGz2hB,GAAGg3hB,GAAGj3hB,EAAEC,GAAG42hB,GAAGx/d,EAAEthG,IAAIiqC,EAAE88D,OAAe,KAAT98D,EAAE88D,MAAY,EAAEsvc,IAAE,EAAGsqB,GAAG12hB,QAAQ,CAAC,GAAGyyC,GAAGzyC,GAAG,MAAMpQ,MAAM+hD,EAAE,MAAM3xC,EAAE88D,OAAe,KAAT98D,EAAE88D,MAAY,EAAEsvc,IAAE,EAAGsqB,GAAG12hB,IAAI,SAASq3hB,GAAGr3hB,GAAG,IAAIA,EAAEA,EAAEu4F,OAAO,OAAOv4F,GAAG,IAAIA,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,KAAK,KAAK/6E,EAAE+6E,KAAK/6E,EAAEA,EAAEu4F,OAAOm+b,GAAG12hB,EAC/Z,SAASs3hB,GAAGt3hB,GAAG,GAAGA,IAAI02hB,GAAG,OAAM,EAAG,IAAItqB,GAAE,OAAOirB,GAAGr3hB,GAAGosgB,IAAE,GAAG,EAAG,IAAInsgB,EAAkG,IAA/FA,EAAE,IAAID,EAAE+6E,QAAQ96E,EAAE,IAAID,EAAE+6E,OAAgB96E,EAAE,UAAXA,EAAED,EAAE9hC,OAAmB,SAAS+hC,IAAI0whB,GAAG3whB,EAAE9hC,KAAK8hC,EAAEu3hB,gBAAmBt3hB,IAAIA,EAAE02hB,IAAI,CAAC,GAAGlkf,GAAGzyC,GAAG,CAAC,IAAIA,EAAE22hB,GAAG32hB,GAAGA,EAAEmxhB,GAAGnxhB,EAAEi9D,aAAa,MAAMrtE,MAAM+hD,EAAE,MAAO,KAAK1xC,GAAG42hB,GAAG72hB,EAAEC,GAAGA,EAAEkxhB,GAAGlxhB,EAAEg9D,aAAmB,GAANo6d,GAAGr3hB,GAAM,KAAKA,EAAE+6E,IAAI,CAAgD,KAA7B/6E,EAAE,QAApBA,EAAEA,EAAEyohB,eAAyBzohB,EAAE0ohB,WAAW,MAAW,MAAM94hB,MAAM+hD,EAAE,MAAM3xC,EAAE,CAAiB,IAAhBA,EAAEA,EAAEi9D,YAAgBh9D,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEu1B,SAAS,CAAC,IAAIx/D,EAAEiqC,EAAE53C,KAAK,GAAG,OAAO2N,EAAE,CAAC,GAAG,IAAIkqC,EAAE,CAAC02hB,GAAGxF,GAAGnxhB,EAAEi9D,aAAa,MAAMj9D,EAAEC,QAAQ,MAAMlqC,GACnf,OAAOA,GAAG,OAAOA,GAAGkqC,IAAID,EAAEA,EAAEi9D,YAAY05d,GAAG,WAAWA,GAAGD,GAAGvF,GAAGnxhB,EAAEuohB,UAAUtrd,aAAa,KAAK,OAAM,EAAG,SAASu6d,KAAKb,GAAGD,GAAG,KAAKtqB,IAAE,EAAG,SAASqrB,GAAGz3hB,GAAG,OAAO42hB,GAAGA,GAAG,CAAC52hB,GAAG42hB,GAAGz7kB,KAAK6kD,GAC5K,SAAS03hB,GAAG13hB,EAAEC,EAAElqC,GAAW,GAAG,QAAXiqC,EAAEjqC,EAAEyiD,MAAiB,oBAAoBxY,GAAG,kBAAkBA,EAAE,CAAC,GAAGjqC,EAAEw1O,OAAO,CAAY,GAAXx1O,EAAEA,EAAEw1O,OAAY,CAAC,GAAG,IAAIx1O,EAAEglH,IAAI,MAAMnrF,MAAM+hD,EAAE,MAAM,IAAI0lB,EAAEthG,EAAEwyjB,UAAU,IAAIlxd,EAAE,MAAMznE,MAAM+hD,EAAE,IAAI3xC,IAAI,IAAIjlD,EAAEs8G,EAAEyP,EAAE,GAAG9mE,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAEuY,KAAK,oBAAoBvY,EAAEuY,KAAKvY,EAAEuY,IAAIm/gB,aAAa7wd,EAAS7mE,EAAEuY,KAAIvY,EAAE,SAASD,GAAG,IAAIC,EAAEllD,EAAEq8E,KAAKn3B,IAAI00hB,KAAK10hB,EAAEllD,EAAEq8E,KAAK,IAAI,OAAOp3B,SAASC,EAAE6mE,GAAG7mE,EAAE6mE,GAAG9mE,GAAGC,EAAE03hB,WAAW7wd,EAAS7mE,GAAE,GAAG,kBAAkBD,EAAE,MAAMpQ,MAAM+hD,EAAE,MAAM,IAAI57E,EAAEw1O,OAAO,MAAM37M,MAAM+hD,EAAE,IAAI3xC,IAAK,OAAOA,EACpe,SAAS43hB,GAAG53hB,EAAEC,GAAuC,MAApCD,EAAE3+C,OAAOtB,UAAUiJ,SAAShO,KAAKilD,GAASrQ,MAAM+hD,EAAE,GAAG,oBAAoB3xC,EAAE,qBAAqB3+C,OAAOC,KAAK2+C,GAAGz0C,KAAK,MAAM,IAAIw0C,IAAK,SAAS63hB,GAAG73hB,GAAiB,OAAOC,EAAfD,EAAE+sB,OAAe/sB,EAAEumhB,UAC5L,SAASuR,GAAG93hB,GAAG,SAASC,EAAEA,EAAElqC,GAAG,GAAGiqC,EAAE,CAAC,IAAIq3D,EAAEp3D,EAAE+2hB,UAAU,OAAO3/d,GAAGp3D,EAAE+2hB,UAAU,CAACjhkB,GAAGkqC,EAAE68D,OAAO,IAAIzF,EAAEl8G,KAAK4a,IAAI,SAASA,EAAEA,EAAEshG,GAAG,IAAIr3D,EAAE,OAAO,KAAK,KAAK,OAAOq3D,GAAGp3D,EAAElqC,EAAEshG,GAAGA,EAAEA,EAAE2xb,QAAQ,OAAO,KAAK,SAAS3xb,EAAEr3D,EAAEC,GAAG,IAAID,EAAE,IAAI+xM,IAAI,OAAO9xM,GAAG,OAAOA,EAAE1+C,IAAIy+C,EAAEuf,IAAItf,EAAE1+C,IAAI0+C,GAAGD,EAAEuf,IAAItf,EAAE7kD,MAAM6kD,GAAGA,EAAEA,EAAE+of,QAAQ,OAAOhpf,EAAE,SAASjlD,EAAEilD,EAAEC,GAAsC,OAAnCD,EAAE+3hB,GAAG/3hB,EAAEC,IAAK7kD,MAAM,EAAE4kD,EAAEgpf,QAAQ,KAAYhpf,EAAE,SAAS8mE,EAAE7mE,EAAElqC,EAAEshG,GAAa,OAAVp3D,EAAE7kD,MAAMi8G,EAAMr3D,EAA6C,QAAjBq3D,EAAEp3D,EAAEuohB,YAA6Bnxd,EAAEA,EAAEj8G,OAAQ2a,GAAGkqC,EAAE68D,OAAO,EAAE/mG,GAAGshG,GAAEp3D,EAAE68D,OAAO,EAAS/mG,IAArGkqC,EAAE68D,OAAO,QAAQ/mG,GAAsF,SAASgrD,EAAE9gB,GACzd,OAD4dD,GAC7f,OAAOC,EAAEuohB,YAAYvohB,EAAE68D,OAAO,GAAU78D,EAAE,SAAS8jG,EAAE/jG,EAAEC,EAAElqC,EAAEshG,GAAG,OAAG,OAAOp3D,GAAG,IAAIA,EAAE86E,MAAW96E,EAAE+3hB,GAAGjikB,EAAEiqC,EAAE4e,KAAKy4C,IAAKkhC,OAAOv4F,EAAEC,KAAEA,EAAEllD,EAAEklD,EAAElqC,IAAKwiI,OAAOv4F,EAASC,GAAE,SAASiS,EAAElS,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIyP,EAAE/wG,EAAEmI,KAAK,OAAG4oG,IAAI89b,EAAU5yf,EAAEhS,EAAEC,EAAElqC,EAAEgkG,MAAMz0G,SAAS+xG,EAAEthG,EAAExU,KAAQ,OAAO0+C,IAAIA,EAAE82hB,cAAcjwd,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEw/c,WAAW9W,GAAIqoB,GAAG/wd,KAAK7mE,EAAE/hC,QAAam5F,EAAEt8G,EAAEklD,EAAElqC,EAAEgkG,QAASvhD,IAAIk/gB,GAAG13hB,EAAEC,EAAElqC,GAAGshG,EAAEkhC,OAAOv4F,EAAEq3D,KAAEA,EAAE4ge,GAAGlikB,EAAEmI,KAAKnI,EAAExU,IAAIwU,EAAEgkG,MAAM,KAAK/5D,EAAE4e,KAAKy4C,IAAK7+C,IAAIk/gB,GAAG13hB,EAAEC,EAAElqC,GAAGshG,EAAEkhC,OAAOv4F,EAASq3D,GAAE,SAAS5sB,EAAEzqC,EAAEC,EAAElqC,EAAEshG,GAAG,OAAG,OAAOp3D,GAAG,IAAIA,EAAE86E,KACjf96E,EAAEsohB,UAAU4B,gBAAgBp0jB,EAAEo0jB,eAAelqhB,EAAEsohB,UAAU/nB,iBAAiBzqiB,EAAEyqiB,iBAAsBvggB,EAAEi4hB,GAAGnikB,EAAEiqC,EAAE4e,KAAKy4C,IAAKkhC,OAAOv4F,EAAEC,KAAEA,EAAEllD,EAAEklD,EAAElqC,EAAEzQ,UAAU,KAAMizI,OAAOv4F,EAASC,GAAE,SAAS+R,EAAEhS,EAAEC,EAAElqC,EAAEshG,EAAEyP,GAAG,OAAG,OAAO7mE,GAAG,IAAIA,EAAE86E,MAAW96E,EAAEk4hB,GAAGpikB,EAAEiqC,EAAE4e,KAAKy4C,EAAEyP,IAAKyxB,OAAOv4F,EAAEC,KAAEA,EAAEllD,EAAEklD,EAAElqC,IAAKwiI,OAAOv4F,EAASC,GAAE,SAAS+jG,EAAEhkG,EAAEC,EAAElqC,GAAG,GAAG,kBAAkBkqC,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAOA,EAAE+3hB,GAAG,GAAG/3hB,EAAED,EAAE4e,KAAK7oD,IAAKwiI,OAAOv4F,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqmhB,UAAU,KAAKzqQ,EAAG,OAAO9lT,EAAEkikB,GAAGh4hB,EAAE/hC,KAAK+hC,EAAE1+C,IAAI0+C,EAAE85D,MAAM,KAAK/5D,EAAE4e,KAAK7oD,IACjfyiD,IAAIk/gB,GAAG13hB,EAAE,KAAKC,GAAGlqC,EAAEwiI,OAAOv4F,EAAEjqC,EAAE,KAAKojH,EAAG,OAAOl5E,EAAEi4hB,GAAGj4hB,EAAED,EAAE4e,KAAK7oD,IAAKwiI,OAAOv4F,EAAEC,EAAE,KAAKuvgB,EAAiB,OAAOxra,EAAEhkG,GAAEq3D,EAAnBp3D,EAAE8sB,OAAmB9sB,EAAEsmhB,UAAUxwjB,GAAG,GAAGq9iB,GAAGnzgB,IAAI6rgB,EAAG7rgB,GAAG,OAAOA,EAAEk4hB,GAAGl4hB,EAAED,EAAE4e,KAAK7oD,EAAE,OAAQwiI,OAAOv4F,EAAEC,EAAE23hB,GAAG53hB,EAAEC,GAAG,OAAO,KAAK,SAAS8oJ,EAAE/oJ,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAE,OAAOklD,EAAEA,EAAE1+C,IAAI,KAAK,GAAG,kBAAkBwU,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAO,OAAOhb,EAAE,KAAKgpJ,EAAE/jG,EAAEC,EAAE,GAAGlqC,EAAEshG,GAAG,GAAG,kBAAkBthG,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEuwjB,UAAU,KAAKzqQ,EAAG,OAAO9lT,EAAExU,MAAMxG,EAAEm3D,EAAElS,EAAEC,EAAElqC,EAAEshG,GAAG,KAAK,KAAK8hB,EAAG,OAAOpjH,EAAExU,MAAMxG,EAAE0vF,EAAEzqC,EAAEC,EAAElqC,EAAEshG,GAAG,KAAK,KAAKm4c,EAAG,OAAiBzmX,EAAE/oJ,EACpfC,GADwellD,EAAEgb,EAAEg3D,OACxeh3D,EAAEwwjB,UAAUlvd,GAAG,GAAG+7c,GAAGr9iB,IAAI+1iB,EAAG/1iB,GAAG,OAAO,OAAOhb,EAAE,KAAKi3D,EAAEhS,EAAEC,EAAElqC,EAAEshG,EAAE,MAAMuge,GAAG53hB,EAAEjqC,GAAG,OAAO,KAAK,SAASmC,EAAE8nC,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,GAAG,kBAAkBs8G,GAAG,KAAKA,GAAG,kBAAkBA,EAAE,OAAwB0sC,EAAE9jG,EAAnBD,EAAEA,EAAE5lC,IAAIrE,IAAI,KAAW,GAAGshG,EAAEt8G,GAAG,GAAG,kBAAkBs8G,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEivd,UAAU,KAAKzqQ,EAAG,OAA2C3pQ,EAAEjS,EAAtCD,EAAEA,EAAE5lC,IAAI,OAAOi9F,EAAE91G,IAAIwU,EAAEshG,EAAE91G,MAAM,KAAW81G,EAAEt8G,GAAG,KAAKo+H,EAAG,OAA2C1uC,EAAExqC,EAAtCD,EAAEA,EAAE5lC,IAAI,OAAOi9F,EAAE91G,IAAIwU,EAAEshG,EAAE91G,MAAM,KAAW81G,EAAEt8G,GAAG,KAAKy0jB,EAAiB,OAAOt3iB,EAAE8nC,EAAEC,EAAElqC,GAAE+wG,EAAvBzP,EAAEtqC,OAAuBsqC,EAAEkvd,UAAUxrkB,GAAG,GAAGq4jB,GAAG/7c,IAAIy0c,EAAGz0c,GAAG,OAAwBrlD,EAAE/R,EAAnBD,EAAEA,EAAE5lC,IAAIrE,IAAI,KAAWshG,EAAEt8G,EAAE,MAAM68kB,GAAG33hB,EAAEo3D,GAAG,OAAO,KAC1f,SAASplD,EAAEl3D,EAAEgmE,EAAEgjF,EAAE7xF,GAAG,IAAI,IAAIu4B,EAAE,KAAKx4B,EAAE,KAAKD,EAAE+O,EAAED,EAAEC,EAAE,EAAEx1D,EAAE,KAAK,OAAOymD,GAAG8O,EAAEijF,EAAElpJ,OAAOimE,IAAI,CAAC9O,EAAE52D,MAAM0lE,GAAGv1D,EAAEymD,EAAEA,EAAE,MAAMzmD,EAAEymD,EAAEg3e,QAAQ,IAAIv4e,EAAEs4I,EAAEhuM,EAAEi3D,EAAE+xF,EAAEjjF,GAAG5O,GAAG,GAAG,OAAOzB,EAAE,CAAC,OAAOuB,IAAIA,EAAEzmD,GAAG,MAAMy0C,GAAGgS,GAAG,OAAOvB,EAAE+3gB,WAAWvohB,EAAEllD,EAAEi3D,GAAG+O,EAAE+lD,EAAEr2D,EAAEsQ,EAAED,GAAG,OAAO7O,EAAEw4B,EAAEh6B,EAAEwB,EAAE+2e,QAAQv4e,EAAEwB,EAAExB,EAAEuB,EAAEzmD,EAAE,GAAGu1D,IAAIijF,EAAElpJ,OAAO,OAAOkb,EAAEhb,EAAEi3D,GAAGo6f,IAAGkqB,GAAGv7kB,EAAE+lE,GAAG2pB,EAAE,GAAG,OAAOz4B,EAAE,CAAC,KAAK8O,EAAEijF,EAAElpJ,OAAOimE,IAAkB,QAAd9O,EAAEgyF,EAAEjpJ,EAAEgpJ,EAAEjjF,GAAG5O,MAAc6O,EAAE+lD,EAAE90D,EAAE+O,EAAED,GAAG,OAAO7O,EAAEw4B,EAAEz4B,EAAEC,EAAE+2e,QAAQh3e,EAAEC,EAAED,GAAc,OAAXo6f,IAAGkqB,GAAGv7kB,EAAE+lE,GAAU2pB,EAAE,IAAIz4B,EAAEqlD,EAAEt8G,EAAEi3D,GAAG8O,EAAEijF,EAAElpJ,OAAOimE,IAAsB,QAAlBv1D,EAAE2M,EAAE85C,EAAEj3D,EAAE+lE,EAAEijF,EAAEjjF,GAAG5O,MAAclS,GAAG,OAAOz0C,EAAEi9jB,WAAWx2gB,EAAEm2L,OAAO,OACvf58O,EAAEhK,IAAIu/D,EAAEv1D,EAAEhK,KAAKw/D,EAAE+lD,EAAEv7G,EAAEw1D,EAAED,GAAG,OAAO7O,EAAEw4B,EAAEl/E,EAAE0mD,EAAE+2e,QAAQz9hB,EAAE0mD,EAAE1mD,GAAuD,OAApDy0C,GAAGgS,EAAEx3D,SAAQ,SAASwlD,GAAG,OAAOC,EAAEllD,EAAEilD,MAAKosgB,IAAGkqB,GAAGv7kB,EAAE+lE,GAAU2pB,EAAE,SAASrpC,EAAErmD,EAAEgmE,EAAEgjF,EAAE7xF,GAAG,IAAIu4B,EAAEqhe,EAAG/na,GAAG,GAAG,oBAAoBt5D,EAAE,MAAM76C,MAAM+hD,EAAE,MAAkB,GAAG,OAAfoyD,EAAEt5D,EAAEzvF,KAAK+oJ,IAAc,MAAMn0G,MAAM+hD,EAAE,MAAM,IAAI,IAAI3/B,EAAEy4B,EAAE,KAAKx4B,EAAE8O,EAAED,EAAEC,EAAE,EAAEx1D,EAAE,KAAKklD,EAAEszF,EAAElrG,OAAO,OAAOoZ,IAAIxB,EAAE98B,KAAKmtC,IAAIrQ,EAAEszF,EAAElrG,OAAO,CAACoZ,EAAE72D,MAAM0lE,GAAGv1D,EAAE0mD,EAAEA,EAAE,MAAM1mD,EAAE0mD,EAAE+2e,QAAQ,IAAI5nf,EAAE2nJ,EAAEhuM,EAAEk3D,EAAExB,EAAEt0D,MAAM+1D,GAAG,GAAG,OAAO9Q,EAAE,CAAC,OAAO6Q,IAAIA,EAAE1mD,GAAG,MAAMy0C,GAAGiS,GAAG,OAAO7Q,EAAEonhB,WAAWvohB,EAAEllD,EAAEk3D,GAAG8O,EAAE+lD,EAAE1lE,EAAE2f,EAAED,GAAG,OAAO9O,EAAEy4B,EAAErpC,EAAE4Q,EAAEg3e,QAAQ5nf,EAAE4Q,EAAE5Q,EAAE6Q,EAAE1mD,EAAE,GAAGklD,EAAE98B,KAAK,OAAO5d,EAAEhb,EACzfk3D,GAAGm6f,IAAGkqB,GAAGv7kB,EAAE+lE,GAAG2pB,EAAE,GAAG,OAAOx4B,EAAE,CAAC,MAAMxB,EAAE98B,KAAKmtC,IAAIrQ,EAAEszF,EAAElrG,OAAwB,QAAjB4X,EAAEuzF,EAAEjpJ,EAAE01D,EAAEt0D,MAAM+1D,MAAc6O,EAAE+lD,EAAEr2D,EAAEsQ,EAAED,GAAG,OAAO9O,EAAEy4B,EAAEh6B,EAAEuB,EAAEg3e,QAAQv4e,EAAEuB,EAAEvB,GAAc,OAAX27f,IAAGkqB,GAAGv7kB,EAAE+lE,GAAU2pB,EAAE,IAAIx4B,EAAEolD,EAAEt8G,EAAEk3D,IAAIxB,EAAE98B,KAAKmtC,IAAIrQ,EAAEszF,EAAElrG,OAA4B,QAArB4X,EAAEv4C,EAAE+5C,EAAEl3D,EAAE+lE,EAAErQ,EAAEt0D,MAAM+1D,MAAclS,GAAG,OAAOyQ,EAAE+3gB,WAAWv2gB,EAAEk2L,OAAO,OAAO13L,EAAElvD,IAAIu/D,EAAErQ,EAAElvD,KAAKw/D,EAAE+lD,EAAEr2D,EAAEsQ,EAAED,GAAG,OAAO9O,EAAEy4B,EAAEh6B,EAAEuB,EAAEg3e,QAAQv4e,EAAEuB,EAAEvB,GAAuD,OAApDzQ,GAAGiS,EAAEz3D,SAAQ,SAASwlD,GAAG,OAAOC,EAAEllD,EAAEilD,MAAKosgB,IAAGkqB,GAAGv7kB,EAAE+lE,GAAU2pB,EAG1T,OAH4T,SAASg4B,EAAEziE,EAAEq3D,EAAEyP,EAAEi9B,GAAkF,GAA/E,kBAAkBj9B,GAAG,OAAOA,GAAGA,EAAE5oG,OAAO0miB,GAAI,OAAO99b,EAAEvlH,MAAMulH,EAAEA,EAAE/M,MAAMz0G,UAAa,kBAAkBwhH,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEw/c,UAAU,KAAKzqQ,EAAG77Q,EAAE,CAAC,IAAI,IAAIkS,EAC7hB40D,EAAEvlH,IAAIkpF,EAAE4sB,EAAE,OAAO5sB,GAAG,CAAC,GAAGA,EAAElpF,MAAM2wD,EAAE,CAAU,IAATA,EAAE40D,EAAE5oG,QAAY0miB,GAAI,GAAG,IAAIn6d,EAAEswC,IAAI,CAAChlH,EAAEiqC,EAAEyqC,EAAEu+c,UAAS3xb,EAAEt8G,EAAE0vF,EAAEq8B,EAAE/M,MAAMz0G,WAAYizI,OAAOv4F,EAAEA,EAAEq3D,EAAE,MAAMr3D,QAAQ,GAAGyqC,EAAEssf,cAAc7khB,GAAG,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEo0gB,WAAW9W,GAAIqoB,GAAG3lhB,KAAKu4B,EAAEvsE,KAAK,CAACnI,EAAEiqC,EAAEyqC,EAAEu+c,UAAS3xb,EAAEt8G,EAAE0vF,EAAEq8B,EAAE/M,QAASvhD,IAAIk/gB,GAAG13hB,EAAEyqC,EAAEq8B,GAAGzP,EAAEkhC,OAAOv4F,EAAEA,EAAEq3D,EAAE,MAAMr3D,EAAEjqC,EAAEiqC,EAAEyqC,GAAG,MAAWxqC,EAAED,EAAEyqC,GAAGA,EAAEA,EAAEu+c,QAAQlib,EAAE5oG,OAAO0miB,IAAIvtc,EAAE8ge,GAAGrxd,EAAE/M,MAAMz0G,SAAS06C,EAAE4e,KAAKmlF,EAAEj9B,EAAEvlH,MAAOg3I,OAAOv4F,EAAEA,EAAEq3D,KAAI0sC,EAAEk0b,GAAGnxd,EAAE5oG,KAAK4oG,EAAEvlH,IAAIulH,EAAE/M,MAAM,KAAK/5D,EAAE4e,KAAKmlF,IAAKvrF,IAAIk/gB,GAAG13hB,EAAEq3D,EAAEyP,GAAGi9B,EAAExL,OAAOv4F,EAAEA,EAAE+jG,GAAG,OAAOhjF,EAAE/gB,GAAG,KAAKm5E,EAAGn5E,EAAE,CAAC,IAAIyqC,EAAEq8B,EAAEvlH,IAAI,OACzf81G,GAAG,CAAC,GAAGA,EAAE91G,MAAMkpF,EAAX,CAAa,GAAG,IAAI4sB,EAAE0jB,KAAK1jB,EAAEkxd,UAAU4B,gBAAgBrjd,EAAEqjd,eAAe9yd,EAAEkxd,UAAU/nB,iBAAiB15b,EAAE05b,eAAe,CAACzqiB,EAAEiqC,EAAEq3D,EAAE2xb,UAAS3xb,EAAEt8G,EAAEs8G,EAAEyP,EAAExhH,UAAU,KAAMizI,OAAOv4F,EAAEA,EAAEq3D,EAAE,MAAMr3D,EAAOjqC,EAAEiqC,EAAEq3D,GAAG,MAAWp3D,EAAED,EAAEq3D,GAAGA,EAAEA,EAAE2xb,SAAQ3xb,EAAE6ge,GAAGpxd,EAAE9mE,EAAE4e,KAAKmlF,IAAKxL,OAAOv4F,EAAEA,EAAEq3D,EAAE,OAAOt2C,EAAE/gB,GAAG,KAAKwvgB,EAAG,OAAiB/sc,EAAEziE,EAAEq3D,GAAd5sB,EAAEq8B,EAAE/5C,OAAc+5C,EAAEy/c,UAAUxib,GAAG,GAAGqva,GAAGtsc,GAAG,OAAO70D,EAAEjS,EAAEq3D,EAAEyP,EAAEi9B,GAAG,GAAG+na,EAAGhlc,GAAG,OAAO1lE,EAAEpB,EAAEq3D,EAAEyP,EAAEi9B,GAAG6zb,GAAG53hB,EAAE8mE,GAAG,MAAM,kBAAkBA,GAAG,KAAKA,GAAG,kBAAkBA,GAAGA,EAAE,GAAGA,EAAE,OAAOzP,GAAG,IAAIA,EAAE0jB,KAAKhlH,EAAEiqC,EAAEq3D,EAAE2xb,UAAS3xb,EAAEt8G,EAAEs8G,EAAEyP,IAAKyxB,OAAOv4F,EAAEA,EAAEq3D,IACnfthG,EAAEiqC,EAAEq3D,IAAGA,EAAE2ge,GAAGlxd,EAAE9mE,EAAE4e,KAAKmlF,IAAKxL,OAAOv4F,EAAEA,EAAEq3D,GAAGt2C,EAAE/gB,IAAIjqC,EAAEiqC,EAAEq3D,IAAY,IAAI+ge,GAAGN,IAAG,GAAIO,GAAGP,IAAG,GAAIvrU,GAAG,GAAG+rU,GAAG1G,GAAGrlU,IAAIgsU,GAAG3G,GAAGrlU,IAAIisU,GAAG5G,GAAGrlU,IAAI,SAAS4vD,GAAGn8Q,GAAG,GAAGA,IAAIusN,GAAG,MAAM38N,MAAM+hD,EAAE,MAAM,OAAO3xC,EAAE,SAASy4hB,GAAGz4hB,EAAEC,GAAyC,OAAtCsvL,GAAEipW,GAAGv4hB,GAAGsvL,GAAEgpW,GAAGv4hB,GAAGuvL,GAAE+oW,GAAG/rU,IAAIvsN,EAAEC,EAAEs1B,UAAmB,KAAK,EAAE,KAAK,GAAGt1B,GAAGA,EAAEA,EAAEjd,iBAAiBid,EAAEw/e,aAAakwB,GAAG,KAAK,IAAI,MAAM,QAAkE1vgB,EAAE0vgB,GAArC1vgB,GAAvBD,EAAE,IAAIA,EAAEC,EAAEt7B,WAAWs7B,GAAMw/e,cAAc,KAAKz/e,EAAEA,EAAE88J,SAAkBiqW,GAAEuxB,IAAI/oW,GAAE+oW,GAAGr4hB,GAAG,SAASq8Q,KAAKyqP,GAAEuxB,IAAIvxB,GAAEwxB,IAAIxxB,GAAEyxB,IAChb,SAASE,GAAG14hB,GAAGm8Q,GAAGq8Q,GAAG3/V,SAAS,IAAI54L,EAAEk8Q,GAAGm8Q,GAAGz/V,SAAa9iO,EAAE45iB,GAAG1vgB,EAAED,EAAE9hC,MAAM+hC,IAAIlqC,IAAIw5N,GAAEgpW,GAAGv4hB,GAAGuvL,GAAE+oW,GAAGvikB,IAAI,SAAS4ikB,GAAG34hB,GAAGu4hB,GAAG1/V,UAAU74L,IAAI+mgB,GAAEuxB,IAAIvxB,GAAEwxB,KAAK,IAAI//hB,GAAEo5hB,GAAG,GACrJ,SAASgH,GAAG54hB,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAE86E,IAAI,CAAC,IAAIhlH,EAAEkqC,EAAEwohB,cAAc,GAAG,OAAO1yjB,IAAmB,QAAfA,EAAEA,EAAE2yjB,aAAqB,OAAO3yjB,EAAE3N,MAAM,OAAO2N,EAAE3N,MAAM,OAAO63C,OAAO,GAAG,KAAKA,EAAE86E,UAAK,IAAS96E,EAAEs3hB,cAAcsB,aAAa,GAAG,KAAa,IAAR54hB,EAAE68D,OAAW,OAAO78D,OAAO,GAAG,OAAOA,EAAE5mC,MAAM,CAAC4mC,EAAE5mC,MAAMk/H,OAAOt4F,EAAEA,EAAEA,EAAE5mC,MAAM,SAAS,GAAG4mC,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE+of,SAAS,CAAC,GAAG,OAAO/of,EAAEs4F,QAAQt4F,EAAEs4F,SAASv4F,EAAE,OAAO,KAAKC,EAAEA,EAAEs4F,OAAOt4F,EAAE+of,QAAQzwZ,OAAOt4F,EAAEs4F,OAAOt4F,EAAEA,EAAE+of,QAAQ,OAAO,KAAK,IAAI8vC,GAAG,GACrc,SAASC,KAAK,IAAI,IAAI/4hB,EAAE,EAAEA,EAAE84hB,GAAGj+kB,OAAOmlD,IAAI84hB,GAAG94hB,GAAGg5hB,8BAA8B,KAAKF,GAAGj+kB,OAAO,EAAE,IAAIo+kB,GAAG39Q,EAAG49Q,uBAAuBC,GAAG79Q,EAAG8uQ,wBAAwBgP,GAAG,EAAEnpR,GAAE,KAAKrmK,GAAE,KAAK4lF,GAAE,KAAK6pW,IAAG,EAAGC,IAAG,EAAGC,GAAG,EAAEC,GAAG,EAAE,SAAS/wB,KAAI,MAAM74gB,MAAM+hD,EAAE,MAAO,SAAS8nf,GAAGz5hB,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIlqC,EAAE,EAAEA,EAAEkqC,EAAEplD,QAAQkb,EAAEiqC,EAAEnlD,OAAOkb,IAAI,IAAIq3jB,GAAGpthB,EAAEjqC,GAAGkqC,EAAElqC,IAAI,OAAM,EAAG,OAAM,EAC9V,SAAS2jkB,GAAG15hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAyH,GAAtHsyd,GAAGtyd,EAAEmpM,GAAEhwQ,EAAEA,EAAEwohB,cAAc,KAAKxohB,EAAE8zhB,YAAY,KAAK9zhB,EAAEwzhB,MAAM,EAAEwF,GAAGpgW,QAAQ,OAAO74L,GAAG,OAAOA,EAAEyohB,cAAckR,GAAGC,GAAG55hB,EAAEjqC,EAAEshG,EAAEt8G,GAAMu+kB,GAAG,CAACxyd,EAAE,EAAE,EAAE,CAAY,GAAXwyd,IAAG,EAAGC,GAAG,EAAK,IAAIzyd,EAAE,MAAMl3E,MAAM+hD,EAAE,MAAMm1B,GAAG,EAAE0oH,GAAE5lF,GAAE,KAAK3pG,EAAE8zhB,YAAY,KAAKkF,GAAGpgW,QAAQghW,GAAG75hB,EAAEjqC,EAAEshG,EAAEt8G,SAASu+kB,IAAkE,GAA9DL,GAAGpgW,QAAQihW,GAAG75hB,EAAE,OAAO2pG,IAAG,OAAOA,GAAE/wG,KAAKugiB,GAAG,EAAE5pW,GAAE5lF,GAAEqmK,GAAE,KAAKopR,IAAG,EAAMp5hB,EAAE,MAAMrQ,MAAM+hD,EAAE,MAAM,OAAO3xC,EAAE,SAAS+5hB,KAAK,IAAI/5hB,EAAE,IAAIu5hB,GAAQ,OAALA,GAAG,EAASv5hB,EAC9Y,SAASg6hB,KAAK,IAAIh6hB,EAAE,CAACyohB,cAAc,KAAKuL,UAAU,KAAKiG,UAAU,KAAKrgV,MAAM,KAAK/gN,KAAK,MAA8C,OAAxC,OAAO22L,GAAEygF,GAAEw4Q,cAAcj5V,GAAExvL,EAAEwvL,GAAEA,GAAE32L,KAAKmH,EAASwvL,GAAE,SAAS0qW,KAAK,GAAG,OAAOtwb,GAAE,CAAC,IAAI5pG,EAAEiwQ,GAAEu4Q,UAAUxohB,EAAE,OAAOA,EAAEA,EAAEyohB,cAAc,UAAUzohB,EAAE4pG,GAAE/wG,KAAK,IAAIoH,EAAE,OAAOuvL,GAAEygF,GAAEw4Q,cAAcj5V,GAAE32L,KAAK,GAAG,OAAOoH,EAAEuvL,GAAEvvL,EAAE2pG,GAAE5pG,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMpQ,MAAM+hD,EAAE,MAAU3xC,EAAE,CAACyohB,eAAP7+a,GAAE5pG,GAAqByohB,cAAcuL,UAAUpqb,GAAEoqb,UAAUiG,UAAUrwb,GAAEqwb,UAAUrgV,MAAMhwG,GAAEgwG,MAAM/gN,KAAK,MAAM,OAAO22L,GAAEygF,GAAEw4Q,cAAcj5V,GAAExvL,EAAEwvL,GAAEA,GAAE32L,KAAKmH,EAAE,OAAOwvL,GAChe,SAAS2qW,GAAGn6hB,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EAClD,SAASm6hB,GAAGp6hB,GAAG,IAAIC,EAAEi6hB,KAAKnkkB,EAAEkqC,EAAE25M,MAAM,GAAG,OAAO7jP,EAAE,MAAM65B,MAAM+hD,EAAE,MAAM57E,EAAEskkB,oBAAoBr6hB,EAAE,IAAIq3D,EAAEuyC,GAAE7uJ,EAAEs8G,EAAE4ie,UAAUnzd,EAAE/wG,EAAE8wL,QAAQ,GAAG,OAAO//E,EAAE,CAAC,GAAG,OAAO/rH,EAAE,CAAC,IAAIgmE,EAAEhmE,EAAE89C,KAAK99C,EAAE89C,KAAKiuE,EAAEjuE,KAAKiuE,EAAEjuE,KAAKkoB,EAAEs2C,EAAE4ie,UAAUl/kB,EAAE+rH,EAAE/wG,EAAE8wL,QAAQ,KAAK,GAAG,OAAO9rM,EAAE,CAAC+rH,EAAE/rH,EAAE89C,KAAKw+D,EAAEA,EAAE28d,UAAU,IAAIjwb,EAAEhjF,EAAE,KAAK7O,EAAE,KAAKu4B,EAAEq8B,EAAE,EAAE,CAAC,IAAI90D,EAAEy4B,EAAEg6F,KAAK,IAAI20Z,GAAGpnhB,KAAKA,EAAE,OAAOE,IAAIA,EAAEA,EAAErZ,KAAK,CAAC4rI,KAAK,EAAEzpK,OAAOyvE,EAAEzvE,OAAOs/jB,cAAc7vf,EAAE6vf,cAAcC,WAAW9vf,EAAE8vf,WAAW1hiB,KAAK,OAAOw+D,EAAE5sB,EAAE6vf,cAAc7vf,EAAE8vf,WAAWv6hB,EAAEq3D,EAAE5sB,EAAEzvE,YAAY,CAAC,IAAIgpI,EAAE,CAACygC,KAAKzyH,EAAEh3C,OAAOyvE,EAAEzvE,OAAOs/jB,cAAc7vf,EAAE6vf,cACngBC,WAAW9vf,EAAE8vf,WAAW1hiB,KAAK,MAAM,OAAOqZ,GAAG6xF,EAAE7xF,EAAE8xF,EAAEjjF,EAAEs2C,GAAGnlD,EAAEA,EAAErZ,KAAKmrG,EAAEisK,GAAEwjR,OAAOzhhB,EAAEyihB,IAAIzihB,EAAEy4B,EAAEA,EAAE5xC,WAAW,OAAO4xC,GAAGA,IAAIq8B,GAAG,OAAO50D,EAAE6O,EAAEs2C,EAAEnlD,EAAErZ,KAAKkrG,EAAEqpb,GAAG/1d,EAAEp3D,EAAEwohB,iBAAiBiL,IAAG,GAAIzzhB,EAAEwohB,cAAcpxd,EAAEp3D,EAAE+zhB,UAAUjzgB,EAAE9gB,EAAEg6hB,UAAU/nhB,EAAEn8C,EAAEykkB,kBAAkBnje,EAAkB,GAAG,QAAnBr3D,EAAEjqC,EAAEo+jB,aAAwB,CAACp5kB,EAAEilD,EAAE,GAAG8mE,EAAE/rH,EAAE0pL,KAAKwrI,GAAEwjR,OAAO3sd,EAAE2td,IAAI3td,EAAE/rH,EAAEA,EAAE89C,WAAW99C,IAAIilD,QAAQ,OAAOjlD,IAAIgb,EAAE09jB,MAAM,GAAG,MAAM,CAACxzhB,EAAEwohB,cAAc1yjB,EAAE85hB,UACrX,SAAS4qC,GAAGz6hB,GAAG,IAAIC,EAAEi6hB,KAAKnkkB,EAAEkqC,EAAE25M,MAAM,GAAG,OAAO7jP,EAAE,MAAM65B,MAAM+hD,EAAE,MAAM57E,EAAEskkB,oBAAoBr6hB,EAAE,IAAIq3D,EAAEthG,EAAE85hB,SAAS90iB,EAAEgb,EAAE8wL,QAAQ//E,EAAE7mE,EAAEwohB,cAAc,GAAG,OAAO1tkB,EAAE,CAACgb,EAAE8wL,QAAQ,KAAK,IAAI9lI,EAAEhmE,EAAEA,EAAE89C,KAAK,GAAGiuE,EAAE9mE,EAAE8mE,EAAE/lD,EAAE/lD,QAAQ+lD,EAAEA,EAAEloB,WAAWkoB,IAAIhmE,GAAGqykB,GAAGtmd,EAAE7mE,EAAEwohB,iBAAiBiL,IAAG,GAAIzzhB,EAAEwohB,cAAc3hd,EAAE,OAAO7mE,EAAEg6hB,YAAYh6hB,EAAE+zhB,UAAUltd,GAAG/wG,EAAEykkB,kBAAkB1zd,EAAE,MAAM,CAACA,EAAEzP,GAAG,SAASqje,MAC/V,SAASC,GAAG36hB,EAAEC,GAAG,IAAIlqC,EAAEk6S,GAAE54M,EAAE6ie,KAAKn/kB,EAAEklD,IAAI6mE,GAAGsmd,GAAG/1d,EAAEoxd,cAAc1tkB,GAAsE,GAAnE+rH,IAAIzP,EAAEoxd,cAAc1tkB,EAAE24kB,IAAG,GAAIr8d,EAAEA,EAAEuiJ,MAAMghV,GAAGC,GAAG71kB,KAAK,KAAK+Q,EAAEshG,EAAEr3D,GAAG,CAACA,IAAOq3D,EAAEyje,cAAc76hB,GAAG6mE,GAAG,OAAO0oH,IAAuB,EAApBA,GAAEi5V,cAAc1tc,IAAM,CAAuD,GAAtDhlH,EAAE+mG,OAAO,KAAKi+d,GAAG,EAAEC,GAAGh2kB,KAAK,KAAK+Q,EAAEshG,EAAEt8G,EAAEklD,QAAG,EAAO,MAAS,OAAOijgB,GAAE,MAAMtzgB,MAAM+hD,EAAE,MAAM,KAAQ,GAAHynf,KAAQ6B,GAAGllkB,EAAEkqC,EAAEllD,GAAG,OAAOA,EAAE,SAASkglB,GAAGj7hB,EAAEC,EAAElqC,GAAGiqC,EAAE88D,OAAO,MAAM98D,EAAE,CAAC86hB,YAAY76hB,EAAE9jD,MAAM4Z,GAAmB,QAAhBkqC,EAAEgwQ,GAAE8jR,cAAsB9zhB,EAAE,CAACi7hB,WAAW,KAAKC,OAAO,MAAMlrR,GAAE8jR,YAAY9zhB,EAAEA,EAAEk7hB,OAAO,CAACn7hB,IAAgB,QAAXjqC,EAAEkqC,EAAEk7hB,QAAgBl7hB,EAAEk7hB,OAAO,CAACn7hB,GAAGjqC,EAAE5a,KAAK6kD,GAC/e,SAASg7hB,GAAGh7hB,EAAEC,EAAElqC,EAAEshG,GAAGp3D,EAAE9jD,MAAM4Z,EAAEkqC,EAAE66hB,YAAYzje,EAAE+je,GAAGn7hB,IAAIi1hB,GAAGl1hB,EAAE,GAAG,GAAG,SAAS66hB,GAAG76hB,EAAEC,EAAElqC,GAAG,OAAOA,GAAE,WAAWqlkB,GAAGn7hB,IAAIi1hB,GAAGl1hB,EAAE,GAAG,MAAK,SAASo7hB,GAAGp7hB,GAAG,IAAIC,EAAED,EAAE86hB,YAAY96hB,EAAEA,EAAE7jD,MAAM,IAAI,IAAI4Z,EAAEkqC,IAAI,OAAOmthB,GAAGpthB,EAAEjqC,GAAG,MAAMshG,GAAG,OAAM,GAAI,SAASyqM,GAAG9hQ,GAAG,IAAIC,EAAE+5hB,KAA8M,MAAzM,oBAAoBh6hB,IAAIA,EAAEA,KAAKC,EAAEwohB,cAAcxohB,EAAE+zhB,UAAUh0hB,EAAEA,EAAE,CAAC6mJ,QAAQ,KAAKstY,YAAY,KAAKV,MAAM,EAAE5jC,SAAS,KAAKwqC,oBAAoBF,GAAGK,kBAAkBx6hB,GAAGC,EAAE25M,MAAM55M,EAAEA,EAAEA,EAAE6vf,SAASwrC,GAAGr2kB,KAAK,KAAKirT,GAAEjwQ,GAAS,CAACC,EAAEwohB,cAAczohB,GACnd,SAAS+6hB,GAAG/6hB,EAAEC,EAAElqC,EAAEshG,GAA8O,OAA3Or3D,EAAE,CAAC+6E,IAAI/6E,EAAEnmB,OAAOomB,EAAE27D,QAAQ7lG,EAAEi/G,KAAK3d,EAAEx+D,KAAK,MAAsB,QAAhBoH,EAAEgwQ,GAAE8jR,cAAsB9zhB,EAAE,CAACi7hB,WAAW,KAAKC,OAAO,MAAMlrR,GAAE8jR,YAAY9zhB,EAAEA,EAAEi7hB,WAAWl7hB,EAAEnH,KAAKmH,GAAmB,QAAfjqC,EAAEkqC,EAAEi7hB,YAAoBj7hB,EAAEi7hB,WAAWl7hB,EAAEnH,KAAKmH,GAAGq3D,EAAEthG,EAAE8iC,KAAK9iC,EAAE8iC,KAAKmH,EAAEA,EAAEnH,KAAKw+D,EAAEp3D,EAAEi7hB,WAAWl7hB,GAAWA,EAAE,SAASgpG,KAAK,OAAOkxb,KAAKzR,cAAc,SAASv5V,GAAGlvL,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEi/kB,KAAK/pR,GAAEnzM,OAAO98D,EAAEjlD,EAAE0tkB,cAAcsS,GAAG,EAAE96hB,EAAElqC,OAAE,OAAO,IAASshG,EAAE,KAAKA,GAC5Y,SAASike,GAAGt7hB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEm/kB,KAAK7ie,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIyP,OAAE,EAAO,GAAG,OAAO8iC,GAAE,CAAC,IAAI7oF,EAAE6oF,GAAE6+a,cAA0B,GAAZ3hd,EAAE/lD,EAAE66C,QAAW,OAAOvE,GAAGoie,GAAGpie,EAAEt2C,EAAEi0D,MAAmC,YAA5Bj6H,EAAE0tkB,cAAcsS,GAAG96hB,EAAElqC,EAAE+wG,EAAEzP,IAAW44M,GAAEnzM,OAAO98D,EAAEjlD,EAAE0tkB,cAAcsS,GAAG,EAAE96hB,EAAElqC,EAAE+wG,EAAEzP,GAAG,SAASyiN,GAAG95Q,EAAEC,GAAG,OAAOivL,GAAG,QAAQ,EAAElvL,EAAEC,GAAG,SAAS26hB,GAAG56hB,EAAEC,GAAG,OAAOq7hB,GAAG,KAAK,EAAEt7hB,EAAEC,GAAG,SAASs7hB,GAAGv7hB,EAAEC,GAAG,OAAOq7hB,GAAG,EAAE,EAAEt7hB,EAAEC,GAAG,SAASykQ,GAAG1kQ,EAAEC,GAAG,OAAOq7hB,GAAG,EAAE,EAAEt7hB,EAAEC,GAC9W,SAASu7hB,GAAGx7hB,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAE44L,QAAQ74L,EAAE,WAAWC,EAAE44L,QAAQ,YAAtE,EAA4E,SAAS4iW,GAAGz7hB,EAAEC,EAAElqC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEogB,OAAO,CAAC6pB,IAAI,KAAYs7hB,GAAG,EAAE,EAAEE,GAAGx2kB,KAAK,KAAKi7C,EAAED,GAAGjqC,GAAG,SAAS2lkB,MAAM,SAASC,GAAG37hB,EAAEC,GAAG,IAAIlqC,EAAEmkkB,KAAKj6hB,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIo3D,EAAEthG,EAAE0yjB,cAAc,OAAG,OAAOpxd,GAAG,OAAOp3D,GAAGw5hB,GAAGx5hB,EAAEo3D,EAAE,IAAWA,EAAE,IAAGthG,EAAE0yjB,cAAc,CAACzohB,EAAEC,GAAUD,GAC5Z,SAAS47hB,GAAG57hB,EAAEC,GAAG,IAAIlqC,EAAEmkkB,KAAKj6hB,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIo3D,EAAEthG,EAAE0yjB,cAAc,OAAG,OAAOpxd,GAAG,OAAOp3D,GAAGw5hB,GAAGx5hB,EAAEo3D,EAAE,IAAWA,EAAE,IAAGr3D,EAAEA,IAAIjqC,EAAE0yjB,cAAc,CAACzohB,EAAEC,GAAUD,GAAE,SAASqmQ,GAAGrmQ,EAAEC,GAAG,IAAIlqC,EAAEm6S,GAAEA,GAAE,IAAIn6S,GAAG,EAAEA,EAAEA,EAAE,EAAEiqC,GAAE,GAAI,IAAIq3D,EAAE8he,GAAG35W,WAAW25W,GAAG35W,WAAW,GAAG,IAAIx/K,GAAE,GAAIC,IAAV,QAAsBiwQ,GAAEn6S,EAAEojkB,GAAG35W,WAAWnoH,GAAG,SAAS0kN,KAAK,OAAOm+Q,KAAKzR,cAAc,SAASnniB,GAAG0e,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE49d,GAAGj1hB,GAAGjqC,EAAE,CAAC0uK,KAAKptE,EAAEr8F,OAAOjF,EAAEukkB,eAAc,EAAGC,WAAW,KAAK1hiB,KAAK,MAAMyuQ,GAAGtnQ,GAAG67hB,GAAG57hB,EAAElqC,IAAI+lkB,GAAG97hB,EAAEC,EAAElqC,GAAqB,QAAZiqC,EAAEk1hB,GAAGl1hB,EAAEq3D,EAAbthG,EAAEi6S,QAA0BpI,GAAG5nQ,EAAEC,EAAEo3D,IAC3d,SAASgke,GAAGr7hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE49d,GAAGj1hB,GAAGjlD,EAAE,CAAC0pL,KAAKptE,EAAEr8F,OAAOjF,EAAEukkB,eAAc,EAAGC,WAAW,KAAK1hiB,KAAK,MAAM,GAAGyuQ,GAAGtnQ,GAAG67hB,GAAG57hB,EAAEllD,OAAO,CAAC+glB,GAAG97hB,EAAEC,EAAEllD,GAAG,IAAI+rH,EAAE9mE,EAAEwohB,UAAU,GAAG,IAAIxohB,EAAEyzhB,QAAQ,OAAO3sd,GAAG,IAAIA,EAAE2sd,QAAiC,QAAxB3sd,EAAE7mE,EAAEo6hB,qBAA8B,IAAI,IAAIt5gB,EAAE9gB,EAAEu6hB,kBAAkBz2b,EAAEj9B,EAAE/lD,EAAEhrD,GAAqC,GAAlChb,EAAEu/kB,eAAc,EAAGv/kB,EAAEw/kB,WAAWx2b,EAAKqpb,GAAGrpb,EAAEhjF,GAAG,OAAO,MAAM7O,IAA+B,QAAZlS,EAAEk1hB,GAAGl1hB,EAAEq3D,EAAbthG,EAAEi6S,QAA0BpI,GAAG5nQ,EAAEC,EAAEo3D,IAAI,SAASiwM,GAAGtnQ,GAAG,IAAIC,EAAED,EAAEwohB,UAAU,OAAOxohB,IAAIiwQ,IAAG,OAAOhwQ,GAAGA,IAAIgwQ,GAC9a,SAAS4rR,GAAG77hB,EAAEC,GAAGq5hB,GAAGD,IAAG,EAAG,IAAItjkB,EAAEiqC,EAAE6mJ,QAAQ,OAAO9wL,EAAEkqC,EAAEpH,KAAKoH,GAAGA,EAAEpH,KAAK9iC,EAAE8iC,KAAK9iC,EAAE8iC,KAAKoH,GAAGD,EAAE6mJ,QAAQ5mJ,EAAE,SAAS67hB,GAAG97hB,EAAEC,EAAElqC,GAAG,OAAOmtiB,IAAG,KAAY,EAAPljgB,EAAE4e,OAAS,KAAO,EAAF0jf,KAAsB,QAAhBtigB,EAAEC,EAAEk0hB,cAAsBp+jB,EAAE8iC,KAAK9iC,EAAE,OAAO89jB,GAAGA,GAAG,CAAC5zhB,GAAG4zhB,GAAG14kB,KAAK8kD,KAAKlqC,EAAE8iC,KAAKmH,EAAEnH,KAAKmH,EAAEnH,KAAK9iC,GAAGkqC,EAAEk0hB,YAAYp+jB,IAAgB,QAAZiqC,EAAEC,EAAE4mJ,SAAiB9wL,EAAE8iC,KAAK9iC,GAAGA,EAAE8iC,KAAKmH,EAAEnH,KAAKmH,EAAEnH,KAAK9iC,GAAGkqC,EAAE4mJ,QAAQ9wL,GAAG,SAAS6xS,GAAG5nQ,EAAEC,EAAElqC,GAAG,GAAG,KAAO,QAAFA,GAAW,CAAC,IAAIshG,EAAEp3D,EAAEwzhB,MAAwB19jB,GAAlBshG,GAAGr3D,EAAEwphB,aAAkBvphB,EAAEwzhB,MAAM19jB,EAAEy4iB,GAAGxugB,EAAEjqC,IACna,IAAI+jkB,GAAG,CAACiC,YAAYpI,GAAGqI,YAAYvzB,GAAEwzB,WAAWxzB,GAAEyzB,UAAUzzB,GAAE0zB,oBAAoB1zB,GAAE2zB,mBAAmB3zB,GAAE4zB,gBAAgB5zB,GAAE6zB,QAAQ7zB,GAAE8zB,WAAW9zB,GAAE+zB,OAAO/zB,GAAEg0B,SAASh0B,GAAEi0B,cAAcj0B,GAAEk0B,iBAAiBl0B,GAAEm0B,cAAcn0B,GAAEo0B,iBAAiBp0B,GAAEq0B,qBAAqBr0B,GAAEs0B,MAAMt0B,GAAEu0B,0BAAyB,GAAIrD,GAAG,CAACoC,YAAYpI,GAAGqI,YAAY,SAASh8hB,EAAEC,GAA4C,OAAzC+5hB,KAAKvR,cAAc,CAACzohB,OAAE,IAASC,EAAE,KAAKA,GAAUD,GAAGi8hB,WAAWtI,GAAGuI,UAAUpiR,GAAGqiR,oBAAoB,SAASn8hB,EAAEC,EAAElqC,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAEogB,OAAO,CAAC6pB,IAAI,KAAYkvL,GAAG,QAC3f,EAAEssW,GAAGx2kB,KAAK,KAAKi7C,EAAED,GAAGjqC,IAAIsmkB,gBAAgB,SAASr8hB,EAAEC,GAAG,OAAOivL,GAAG,QAAQ,EAAElvL,EAAEC,IAAIm8hB,mBAAmB,SAASp8hB,EAAEC,GAAG,OAAOivL,GAAG,EAAE,EAAElvL,EAAEC,IAAIq8hB,QAAQ,SAASt8hB,EAAEC,GAAG,IAAIlqC,EAAEikkB,KAAqD,OAAhD/5hB,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIjqC,EAAE0yjB,cAAc,CAACzohB,EAAEC,GAAUD,GAAGu8hB,WAAW,SAASv8hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE2ie,KAAkM,OAA7L/5hB,OAAE,IAASlqC,EAAEA,EAAEkqC,GAAGA,EAAEo3D,EAAEoxd,cAAcpxd,EAAE28d,UAAU/zhB,EAAED,EAAE,CAAC6mJ,QAAQ,KAAKstY,YAAY,KAAKV,MAAM,EAAE5jC,SAAS,KAAKwqC,oBAAoBr6hB,EAAEw6hB,kBAAkBv6hB,GAAGo3D,EAAEuiJ,MAAM55M,EAAEA,EAAEA,EAAE6vf,SAASvugB,GAAGt8B,KAAK,KAAKirT,GAAEjwQ,GAAS,CAACq3D,EAAEoxd,cAAczohB,IAAIw8hB,OAAO,SAASx8hB,GAC3d,OAAdA,EAAE,CAAC64L,QAAQ74L,GAAhBg6hB,KAA4BvR,cAAczohB,GAAGy8hB,SAAS36R,GAAG46R,cAAchB,GAAGiB,iBAAiB,SAAS38hB,GAAG,IAAIC,EAAE6hQ,GAAG9hQ,GAAGjqC,EAAEkqC,EAAE,GAAGo3D,EAAEp3D,EAAE,GAA8F,OAA3F65Q,IAAG,WAAW,IAAI75Q,EAAEk5hB,GAAG35W,WAAW25W,GAAG35W,WAAW,GAAG,IAAInoH,EAAEr3D,GAAN,QAAiBm5hB,GAAG35W,WAAWv/K,KAAI,CAACD,IAAWjqC,GAAG6mkB,cAAc,WAAW,IAAI58hB,EAAE8hQ,IAAG,GAAI7hQ,EAAED,EAAE,GAA6C,OAA1CA,EAAEqmQ,GAAGrhT,KAAK,KAAKg7C,EAAE,IAAIg6hB,KAAKvR,cAAczohB,EAAQ,CAACC,EAAED,IAAI68hB,iBAAiB,aAAaC,qBAAqB,SAAS98hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE44M,GAAEl1T,EAAEi/kB,KAAK,GAAG5tB,GAAE,CAAC,QAAG,IAASr2iB,EAAE,MAAM65B,MAAM+hD,EAAE,MAAM57E,EAAEA,QAAQ,CAAO,GAANA,EAAEkqC,IAAO,OAAOijgB,GAAE,MAAMtzgB,MAAM+hD,EAAE,MAC/e,KAAQ,GAAHynf,KAAQ6B,GAAG5je,EAAEp3D,EAAElqC,GAAGhb,EAAE0tkB,cAAc1yjB,EAAE,IAAI+wG,EAAE,CAAC3qH,MAAM4Z,EAAE+kkB,YAAY76hB,GAA+F,OAA5FllD,EAAE6+P,MAAM9yI,EAAEgzM,GAAG+gR,GAAG71kB,KAAK,KAAKqyG,EAAEyP,EAAE9mE,GAAG,CAACA,IAAIq3D,EAAEyF,OAAO,KAAKi+d,GAAG,EAAEC,GAAGh2kB,KAAK,KAAKqyG,EAAEyP,EAAE/wG,EAAEkqC,QAAG,EAAO,MAAalqC,GAAGgnkB,MAAM,WAAW,IAAI/8hB,EAAEg6hB,KAAK/5hB,EAAEijgB,GAAE+5B,iBAAiB,GAAG7wB,GAAE,CAAC,IAAIr2iB,EAAEsgkB,GAAkDp2hB,EAAE,IAAIA,EAAE,KAA9ClqC,GAAHqgkB,KAAU,GAAG,GAAGjuB,GAAhBiuB,IAAsB,IAAIptkB,SAAS,IAAI+M,GAAuB,GAAPA,EAAEwjkB,QAAWt5hB,GAAG,IAAIlqC,EAAE/M,SAAS,KAAKi3C,GAAG,SAAgBA,EAAE,IAAIA,EAAE,KAAflqC,EAAEyjkB,MAAmBxwkB,SAAS,IAAI,IAAI,OAAOg3C,EAAEyohB,cAAcxohB,GAAG+8hB,0BAAyB,GAAIpD,GAAG,CAACmC,YAAYpI,GAAGqI,YAAYL,GAAGM,WAAWtI,GAAGuI,UAAUtB,GAAGuB,oBAAoBV,GACxgBW,mBAAmBb,GAAGc,gBAAgB33R,GAAG43R,QAAQV,GAAGW,WAAWnC,GAAGoC,OAAOxzb,GAAGyzb,SAAS,WAAW,OAAOrC,GAAGD,KAAKuC,cAAchB,GAAGiB,iBAAiB,SAAS38hB,GAAG,IAAIC,EAAEm6hB,GAAGD,IAAIpkkB,EAAEkqC,EAAE,GAAGo3D,EAAEp3D,EAAE,GAA8F,OAA3F26hB,IAAG,WAAW,IAAI36hB,EAAEk5hB,GAAG35W,WAAW25W,GAAG35W,WAAW,GAAG,IAAInoH,EAAEr3D,GAAN,QAAiBm5hB,GAAG35W,WAAWv/K,KAAI,CAACD,IAAWjqC,GAAG6mkB,cAAc,WAAgD,MAAM,CAArCxC,GAAGD,IAAI,GAAKD,KAAKzR,gBAA2BoU,iBAAiBnC,GAAGoC,qBAAqBnC,GAAGoC,MAAMhhR,GAAGihR,0BAAyB,GAAInD,GAAG,CAACkC,YAAYpI,GAAGqI,YAAYL,GAAGM,WAAWtI,GAAGuI,UAAUtB,GACpfuB,oBAAoBV,GAAGW,mBAAmBb,GAAGc,gBAAgB33R,GAAG43R,QAAQV,GAAGW,WAAW9B,GAAG+B,OAAOxzb,GAAGyzb,SAAS,WAAW,OAAOhC,GAAGN,KAAKuC,cAAchB,GAAGiB,iBAAiB,SAAS38hB,GAAG,IAAIC,EAAEw6hB,GAAGN,IAAIpkkB,EAAEkqC,EAAE,GAAGo3D,EAAEp3D,EAAE,GAA8F,OAA3F26hB,IAAG,WAAW,IAAI36hB,EAAEk5hB,GAAG35W,WAAW25W,GAAG35W,WAAW,GAAG,IAAInoH,EAAEr3D,GAAN,QAAiBm5hB,GAAG35W,WAAWv/K,KAAI,CAACD,IAAWjqC,GAAG6mkB,cAAc,WAAgD,MAAM,CAArCnC,GAAGN,IAAI,GAAKD,KAAKzR,gBAA2BoU,iBAAiBnC,GAAGoC,qBAAqBnC,GAAGoC,MAAMhhR,GAAGihR,0BAAyB,GAC7c,SAASE,GAAGl9hB,EAAEC,GAAG,IAAI,IAAIlqC,EAAE,GAAGshG,EAAEp3D,EAAE,GAAGlqC,GAAG0tiB,EAAGpsc,GAAGA,EAAEA,EAAEkhC,aAAalhC,GAAG,IAAIt8G,EAAEgb,EAAE,MAAM+wG,GAAG/rH,EAAE,6BAA6B+rH,EAAE9gF,QAAQ,KAAK8gF,EAAEj2B,MAAM,MAAM,CAAC10F,MAAM6jD,EAAEkoE,OAAOjoE,EAAE4wC,MAAM91F,GAAG,SAASoilB,GAAGn9hB,EAAEC,GAAG,IAAItb,QAAQsV,MAAMgG,EAAE9jD,OAAO,MAAM4Z,GAAG3Y,YAAW,WAAW,MAAM2Y,MAAM,IAGpBqnkB,GAAMC,GAAGC,GAHeC,GAAG,oBAAoB9pd,QAAQA,QAAQs+H,IAAI,SAASyrV,GAAGx9hB,EAAEC,EAAElqC,IAAGA,EAAEimT,IAAI,EAAEjmT,IAAKglH,IAAI,EAAEhlH,EAAEk/G,QAAQ,CAAC56H,QAAQ,MAAM,IAAIg9G,EAAEp3D,EAAE9jD,MAAsD,OAAhD4Z,EAAEgzC,SAAS,WAAW00hB,KAAKA,IAAG,EAAGC,GAAGrme,GAAG8le,GAAGn9hB,EAAEC,IAAWlqC,EACpb,SAAS4nkB,GAAG39hB,EAAEC,EAAElqC,IAAGA,EAAEimT,IAAI,EAAEjmT,IAAKglH,IAAI,EAAE,IAAI1jB,EAAEr3D,EAAE9hC,KAAK2ugB,yBAAyB,GAAG,oBAAoBx1a,EAAE,CAAC,IAAIt8G,EAAEklD,EAAE9jD,MAAM4Z,EAAEk/G,QAAQ,WAAW,OAAO5d,EAAEt8G,IAAIgb,EAAEgzC,SAAS,WAAWo0hB,GAAGn9hB,EAAEC,IAAI,IAAI6mE,EAAE9mE,EAAEuohB,UAA8O,OAApO,OAAOzhd,GAAG,oBAAoBA,EAAE82d,oBAAoB7nkB,EAAEgzC,SAAS,WAAWo0hB,GAAGn9hB,EAAEC,GAAG,oBAAoBo3D,IAAI,OAAOwme,GAAGA,GAAG,IAAI3+d,IAAI,CAAC3kH,OAAOsjlB,GAAGhilB,IAAItB,OAAO,IAAIwb,EAAEkqC,EAAE4wC,MAAMt2F,KAAKqjlB,kBAAkB39hB,EAAE9jD,MAAM,CAAC2hlB,eAAe,OAAO/nkB,EAAEA,EAAE,OAAcA,EAClb,SAASgokB,GAAG/9hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEg+hB,UAAU,GAAG,OAAO3me,EAAE,CAACA,EAAEr3D,EAAEg+hB,UAAU,IAAIT,GAAG,IAAIxilB,EAAE,IAAImkH,IAAI7H,EAAE93C,IAAItf,EAAEllD,aAAmB,KAAXA,EAAEs8G,EAAEj9F,IAAI6lC,MAAgBllD,EAAE,IAAImkH,IAAI7H,EAAE93C,IAAItf,EAAEllD,IAAIA,EAAEq5B,IAAIre,KAAKhb,EAAEc,IAAIka,GAAGiqC,EAAEi+hB,GAAGj5kB,KAAK,KAAKg7C,EAAEC,EAAElqC,GAAGkqC,EAAElH,KAAKiH,EAAEA,IAAI,SAASk+hB,GAAGl+hB,GAAG,EAAE,CAAC,IAAIC,EAA4E,IAAvEA,EAAE,KAAKD,EAAE+6E,OAAsB96E,EAAE,QAApBA,EAAED,EAAEyohB,gBAAyB,OAAOxohB,EAAEyohB,YAAuBzohB,EAAE,OAAOD,EAAEA,EAAEA,EAAEu4F,aAAa,OAAOv4F,GAAG,OAAO,KAC5V,SAASm+hB,GAAGn+hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,OAAG,KAAY,EAAPilD,EAAE4e,OAAe5e,IAAIC,EAAED,EAAE88D,OAAO,OAAO98D,EAAE88D,OAAO,IAAI/mG,EAAE+mG,OAAO,OAAO/mG,EAAE+mG,QAAQ,MAAM,IAAI/mG,EAAEglH,MAAM,OAAOhlH,EAAEyyjB,UAAUzyjB,EAAEglH,IAAI,KAAI96E,EAAE+7Q,IAAI,EAAE,IAAKjhM,IAAI,EAAEs5c,GAAGt+jB,EAAEkqC,KAAKlqC,EAAE09jB,OAAO,GAAGzzhB,IAAEA,EAAE88D,OAAO,MAAM98D,EAAEyzhB,MAAM14kB,EAASilD,GAKvO,SAASo+hB,GAAGp+hB,EAAEC,GAAG,IAAImsgB,GAAE,OAAOpsgB,EAAEq+hB,UAAU,IAAK,SAASp+hB,EAAED,EAAEs+hB,KAAK,IAAI,IAAIvokB,EAAE,KAAK,OAAOkqC,GAAG,OAAOA,EAAEuohB,YAAYzyjB,EAAEkqC,GAAGA,EAAEA,EAAE+of,QAAQ,OAAOjzhB,EAAEiqC,EAAEs+hB,KAAK,KAAKvokB,EAAEizhB,QAAQ,KAAK,MAAM,IAAK,YAAYjzhB,EAAEiqC,EAAEs+hB,KAAK,IAAI,IAAIjne,EAAE,KAAK,OAAOthG,GAAG,OAAOA,EAAEyyjB,YAAYnxd,EAAEthG,GAAGA,EAAEA,EAAEizhB,QAAQ,OAAO3xb,EAAEp3D,GAAG,OAAOD,EAAEs+hB,KAAKt+hB,EAAEs+hB,KAAK,KAAKt+hB,EAAEs+hB,KAAKt1C,QAAQ,KAAK3xb,EAAE2xb,QAAQ,MACvU,SAASv5T,GAAEzvL,GAAG,IAAIC,EAAE,OAAOD,EAAEwohB,WAAWxohB,EAAEwohB,UAAUnvjB,QAAQ2mC,EAAE3mC,MAAMtD,EAAE,EAAEshG,EAAE,EAAE,GAAGp3D,EAAE,IAAI,IAAIllD,EAAEilD,EAAE3mC,MAAM,OAAOte,GAAGgb,GAAGhb,EAAE04kB,MAAM14kB,EAAEs4kB,WAAWh8d,GAAkB,SAAft8G,EAAEwjlB,aAAsBlne,GAAW,SAARt8G,EAAE+hH,MAAe/hH,EAAEw9I,OAAOv4F,EAAEjlD,EAAEA,EAAEiuiB,aAAa,IAAIjuiB,EAAEilD,EAAE3mC,MAAM,OAAOte,GAAGgb,GAAGhb,EAAE04kB,MAAM14kB,EAAEs4kB,WAAWh8d,GAAGt8G,EAAEwjlB,aAAalne,GAAGt8G,EAAE+hH,MAAM/hH,EAAEw9I,OAAOv4F,EAAEjlD,EAAEA,EAAEiuiB,QAAyC,OAAjChpf,EAAEu+hB,cAAclne,EAAEr3D,EAAEqzhB,WAAWt9jB,EAASkqC,EAC5V,SAASu+hB,GAAGx+hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEi3hB,aAAmB,OAANT,GAAGx2hB,GAAUA,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO00G,GAAExvL,GAAG,KAAK,KAAK,EAS4S,KAAK,GAAG,OAAOkyhB,GAAGlyhB,EAAE/hC,OAAOk0jB,KAAK3iW,GAAExvL,GAAG,KAT7S,KAAK,EAA2Q,OAAzQo3D,EAAEp3D,EAAEsohB,UAAUjsQ,KAAKyqP,GAAE+qB,IAAI/qB,GAAE9D,IAAG81B,KAAK1he,EAAEone,iBAAiBpne,EAAEniG,QAAQmiG,EAAEone,eAAepne,EAAEone,eAAe,MAAS,OAAOz+hB,GAAG,OAAOA,EAAE3mC,QAAMi+jB,GAAGr3hB,GAAGA,EAAE68D,OAAO,EAAE,OAAO98D,GAAGA,EAAEyohB,cAAcyB,cAAc,KAAa,IAARjqhB,EAAE68D,SAAa78D,EAAE68D,OAAO,KAAK,OAAO85d,KAAK8H,GAAG9H,IAAIA,GAAG,QAAennW,GAAExvL,GAAU,KAAK,KAAK,EAAE04hB,GAAG14hB,GAAG,IAAIllD,EAAEohU,GAAGq8Q,GAAG3/V,SAC7e,GAAT9iO,EAAEkqC,EAAE/hC,KAAQ,OAAO8hC,GAAG,MAAMC,EAAEsohB,UAAU8U,GAAGr9hB,EAAEC,EAAElqC,EAAEshG,GAAKr3D,EAAEwY,MAAMvY,EAAEuY,MAAMvY,EAAE68D,OAAO,IAAI78D,EAAE68D,OAAO,aAAa,CAAC,IAAIzF,EAAE,CAAC,GAAG,OAAOp3D,EAAEsohB,UAAU,MAAM34hB,MAAM+hD,EAAE,MAAW,OAAL89I,GAAExvL,GAAU,KAAsB,GAAjBD,EAAEm8Q,GAAGm8Q,GAAGz/V,SAAYy+V,GAAGr3hB,GAAG,CAACo3D,EAAEp3D,EAAEsohB,UAAUxyjB,EAAEkqC,EAAE/hC,KAAK,IAAI4oG,EAAE7mE,EAAEs3hB,cAA+C,OAAjClge,EAAEi6d,IAAIrxhB,EAAEo3D,EAAEk6d,IAAIzqd,EAAE9mE,EAAE,KAAY,EAAPC,EAAE2e,MAAe7oD,GAAG,IAAK,SAASqpf,GAAE,SAAS/nZ,GAAG+nZ,GAAE,QAAQ/nZ,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ+nZ,GAAE,OAAO/nZ,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIt8G,EAAE,EAAEA,EAAE8mT,GAAGhnT,OAAOE,IAAIqkgB,GAAEv9M,GAAG9mT,GAAGs8G,GAAG,MAAM,IAAK,SAAS+nZ,GAAE,QAAQ/nZ,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO+nZ,GAAE,QACnhB/nZ,GAAG+nZ,GAAE,OAAO/nZ,GAAG,MAAM,IAAK,UAAU+nZ,GAAE,SAAS/nZ,GAAG,MAAM,IAAK,QAAQ0zc,EAAG1zc,EAAEyP,GAAGs4Y,GAAE,UAAU/nZ,GAAG,MAAM,IAAK,SAASA,EAAEsvd,cAAc,CAACgY,cAAc73d,EAAE84V,UAAUw/C,GAAE,UAAU/nZ,GAAG,MAAM,IAAK,WAAWk2c,GAAGl2c,EAAEyP,GAAGs4Y,GAAE,UAAU/nZ,GAAkB,IAAI,IAAIt2C,KAAvBiqf,GAAGj1iB,EAAE+wG,GAAG/rH,EAAE,KAAkB+rH,EAAE,GAAGA,EAAEz1C,eAAetQ,GAAG,CAAC,IAAIgjF,EAAEj9B,EAAE/lD,GAAG,aAAaA,EAAE,kBAAkBgjF,EAAE1sC,EAAEh6G,cAAc0mJ,IAAIysb,GAAGn5d,EAAEh6G,YAAY0mJ,EAAE/jG,GAAGjlD,EAAE,CAAC,WAAWgpJ,IAAI,kBAAkBA,GAAG1sC,EAAEh6G,cAAc,GAAG0mJ,IAAIysb,GAAGn5d,EAAEh6G,YAAY0mJ,EAAE/jG,GAAGjlD,EAAE,CAAC,WAAW,GAAGgpJ,IAAIi9J,EAAG3vO,eAAetQ,IAAI,MAAMgjF,GAAG,aAC7ehjF,GAAGq+b,GAAE,SAAS/nZ,GAAG,OAAOthG,GAAG,IAAK,QAAQ+xiB,EAAGzwc,GAAG67c,EAAG77c,EAAEyP,GAAE,GAAI,MAAM,IAAK,WAAWghc,EAAGzwc,GAAGorc,GAAGprc,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoByP,EAAEvlD,UAAU81C,EAAEksC,QAAQktb,IAAIp5d,EAAEt8G,EAAEklD,EAAE8zhB,YAAY18d,EAAE,OAAOA,IAAIp3D,EAAE68D,OAAO,OAAO,CAAC/7C,EAAE,IAAIhmE,EAAEw6E,SAASx6E,EAAEA,EAAEmgI,cAAc,iCAAiCl7E,IAAIA,EAAE0ogB,GAAG3yiB,IAAI,iCAAiCiqC,EAAE,WAAWjqC,IAAGiqC,EAAE+gB,EAAEpjC,cAAc,QAASm9B,UAAU,qBAAuB9a,EAAEA,EAAE0H,YAAY1H,EAAEs9D,aAAa,kBAAkBjG,EAAEhjF,GAAG2rB,EAAE+gB,EAAEpjC,cAAc5nB,EAAE,CAACse,GAAGgjF,EAAEhjF,MACtf2rB,EAAE+gB,EAAEpjC,cAAc5nB,GAAG,WAAWA,IAAIgrD,EAAE/gB,EAAEq3D,EAAEuoW,SAAS7+Y,EAAE6+Y,UAAS,EAAGvoW,EAAEtkG,OAAOguD,EAAEhuD,KAAKskG,EAAEtkG,QAAQitC,EAAE+gB,EAAEi6D,gBAAgBh7E,EAAEjqC,GAAGiqC,EAAEsxhB,IAAIrxhB,EAAED,EAAEuxhB,IAAIl6d,EAAE+le,GAAGp9hB,EAAEC,GAASA,EAAEsohB,UAAUvohB,EAAEA,EAAE,CAAW,OAAV+gB,EAAEoof,GAAGpziB,EAAEshG,GAAUthG,GAAG,IAAK,SAASqpf,GAAE,SAASp/c,GAAGo/c,GAAE,QAAQp/c,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ+nZ,GAAE,OAAOp/c,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIt8G,EAAE,EAAEA,EAAE8mT,GAAGhnT,OAAOE,IAAIqkgB,GAAEv9M,GAAG9mT,GAAGilD,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,SAAS+nZ,GAAE,QAAQp/c,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO+nZ,GAAE,QAAQp/c,GAAGo/c,GAAE,OAAOp/c,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,UAAU+nZ,GAAE,SAC9ep/c,GAAGjlD,EAAEs8G,EAAE,MAAM,IAAK,QAAQ0zc,EAAG/qgB,EAAEq3D,GAAGt8G,EAAE8tjB,EAAG7ogB,EAAEq3D,GAAG+nZ,GAAE,UAAUp/c,GAAG,MAAM,IAAK,SAAiL,QAAQjlD,EAAEs8G,QAAxK,IAAK,SAASr3D,EAAE2mhB,cAAc,CAACgY,cAActne,EAAEuoW,UAAU7kd,EAAE06d,EAAE,GAAGp+W,EAAE,CAACl7G,WAAM,IAASijgB,GAAE,UAAUp/c,GAAG,MAAM,IAAK,WAAWutgB,GAAGvtgB,EAAEq3D,GAAGt8G,EAAEgskB,GAAG/mhB,EAAEq3D,GAAG+nZ,GAAE,UAAUp/c,GAAiC,IAAI8mE,KAAhBkkc,GAAGj1iB,EAAEhb,GAAGgpJ,EAAEhpJ,EAAa,GAAGgpJ,EAAE1yE,eAAey1C,GAAG,CAAC,IAAI50D,EAAE6xF,EAAEj9B,GAAG,UAAUA,EAAE6sc,GAAG3zgB,EAAEkS,GAAG,4BAA4B40D,EAAuB,OAApB50D,EAAEA,EAAEA,EAAEmqD,YAAO,IAAgB8qC,GAAGnnG,EAAEkS,GAAI,aAAa40D,EAAE,kBAAkB50D,GAAG,aAAan8C,GAAG,KAAKm8C,IAAI8xP,GAAGhkQ,EAAEkS,GAAG,kBAAkBA,GAAG8xP,GAAGhkQ,EACnf,GAAGkS,GAAG,mCAAmC40D,GAAG,6BAA6BA,GAAG,cAAcA,IAAIk6L,EAAG3vO,eAAey1C,GAAG,MAAM50D,GAAG,aAAa40D,GAAGs4Y,GAAE,SAASp/c,GAAG,MAAMkS,GAAG4wf,EAAG9igB,EAAE8mE,EAAE50D,EAAE6O,IAAI,OAAOhrD,GAAG,IAAK,QAAQ+xiB,EAAG9ngB,GAAGkzgB,EAAGlzgB,EAAEq3D,GAAE,GAAI,MAAM,IAAK,WAAWywc,EAAG9ngB,GAAGyigB,GAAGzigB,GAAG,MAAM,IAAK,SAAS,MAAMq3D,EAAEl7G,OAAO6jD,EAAE3kD,aAAa,QAAQ,GAAGstjB,EAAGtxc,EAAEl7G,QAAQ,MAAM,IAAK,SAAS6jD,EAAE4/Z,WAAWvoW,EAAEuoW,SAAmB,OAAV94V,EAAEzP,EAAEl7G,OAAcomI,GAAGviF,IAAIq3D,EAAEuoW,SAAS94V,GAAE,GAAI,MAAMzP,EAAEvoE,cAAcyzF,GAAGviF,IAAIq3D,EAAEuoW,SAASvoW,EAAEvoE,cAAa,GAAI,MAAM,QAAQ,oBAAoB/zC,EAAEwmE,UACxfvhB,EAAEujG,QAAQktb,IAAI,OAAO16jB,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWshG,IAAIA,EAAEune,UAAU,MAAM5+hB,EAAE,IAAK,MAAMq3D,GAAE,EAAG,MAAMr3D,EAAE,QAAQq3D,GAAE,GAAIA,IAAIp3D,EAAE68D,OAAO,GAAG,OAAO78D,EAAEuY,MAAMvY,EAAE68D,OAAO,IAAI78D,EAAE68D,OAAO,SAAc,OAAL2yH,GAAExvL,GAAU,KAAK,KAAK,EAAE,GAAGD,GAAG,MAAMC,EAAEsohB,UAAU+U,GAAGt9hB,EAAEC,EAAED,EAAEu3hB,cAAclge,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOp3D,EAAEsohB,UAAU,MAAM34hB,MAAM+hD,EAAE,MAAsC,GAAhC57E,EAAEomT,GAAGq8Q,GAAG3/V,SAASsjF,GAAGm8Q,GAAGz/V,SAAYy+V,GAAGr3hB,GAAG,CAAyC,GAAxCo3D,EAAEp3D,EAAEsohB,UAAUxyjB,EAAEkqC,EAAEs3hB,cAAclge,EAAEi6d,IAAIrxhB,GAAK6mE,EAAEzP,EAAE+F,YAAYrnG,IAAU,QAALiqC,EAAE02hB,IAAY,OAAO31gB,EAAE,KAAY,EAAP/gB,EAAE4e,MAAQ5e,EAAE+6E,KAAK,KAAK,EAAEy1c,GAAGn5d,EAAE+F,UAC/frnG,EAAEgrD,GAAG,MAAM,KAAK,GAAE,IAAK/gB,EAAEu3hB,mBAAc,IAAS/G,GAAGn5d,EAAE+F,UAAUrnG,EAAEgrD,GAAG+lD,IAAI7mE,EAAE68D,OAAO,QAAQzF,GAAG,IAAIthG,EAAEw/D,SAASx/D,EAAEA,EAAEmlH,eAAehe,eAAe7F,IAAKi6d,IAAIrxhB,EAAEA,EAAEsohB,UAAUlxd,EAAO,OAALo4H,GAAExvL,GAAU,KAAK,KAAK,GAA0B,GAAvB8mgB,GAAEvugB,IAAG6+D,EAAEp3D,EAAEwohB,cAAiBrc,IAAG,OAAOuqB,IAAI,KAAY,EAAP12hB,EAAE2e,OAAS,KAAa,IAAR3e,EAAE68D,OAAW,CAAC,IAAIzF,EAAEs/d,GAAGt/d,GAAGA,EAAE85d,GAAG95d,EAAE4F,aAAiC,OAApBu6d,KAAKv3hB,EAAE68D,OAAO,MAAa78D,EAAE,GAAG,OAAOo3D,GAAG,OAAOA,EAAEqxd,WAAW,CAAS,GAARrxd,EAAEige,GAAGr3hB,GAAM,OAAOD,EAAE,CAAC,IAAIq3D,EAAE,MAAMznE,MAAM+hD,EAAE,MAAqD,KAA7B0lB,EAAE,QAApBA,EAAEp3D,EAAEwohB,eAAyBpxd,EAAEqxd,WAAW,MAAW,MAAM94hB,MAAM+hD,EAAE,MAAM0lB,EAAEi6d,IAAIrxhB,OAAOu3hB,KAAK,KAC1e,IAARv3hB,EAAE68D,SAAa78D,EAAEwohB,cAAc,MAAMxohB,EAAE68D,OAAO,EAAO,OAAL2yH,GAAExvL,GAAU,KAAiC,OAA5B,OAAO22hB,KAAK8H,GAAG9H,IAAIA,GAAG,MAAS,KAAa,IAAR32hB,EAAE68D,QAAkB78D,EAAEwzhB,MAAM19jB,EAAEkqC,IAAEo3D,EAAE,OAAOA,EAAEthG,GAAE,EAAG,OAAOiqC,EAAEs3hB,GAAGr3hB,GAAGlqC,EAAE,OAAOiqC,EAAEyohB,cAAcpxd,IAAIthG,IAAIkqC,EAAE5mC,MAAMyjG,OAAO,KAAK,KAAY,EAAP78D,EAAE2e,QAAU,OAAO5e,GAAG,KAAe,EAAVxH,GAAEqgM,SAAW,IAAI0pU,KAAIA,GAAE,GAAGs8B,OAAO,OAAO5+hB,EAAE8zhB,cAAc9zhB,EAAE68D,OAAO,GAAG2yH,GAAExvL,GAAU,MAAK,KAAK,EAAE,OAAOq8Q,KAAa,OAAOt8Q,GAAG+sE,GAAG9sE,EAAEsohB,UAAU4B,eAAe16V,GAAExvL,GAAG,KAAK,KAAK,GAAG,OAAOgkQ,GAAGhkQ,EAAE/hC,KAAKsvB,UAAUiiM,GAAExvL,GAAG,KAA+C,KAAK,GACte,GADye8mgB,GAAEvugB,IACxe,QAArBsuE,EAAE7mE,EAAEwohB,eAA0B,OAAOh5V,GAAExvL,GAAG,KAAuC,GAAlCo3D,EAAE,KAAa,IAARp3D,EAAE68D,OAA4B,QAAjB/7C,EAAE+lD,EAAEg4d,WAAsB,GAAGzne,EAAE+me,GAAGt3d,GAAE,OAAQ,CAAC,GAAG,IAAIy7b,IAAG,OAAOvigB,GAAG,KAAa,IAARA,EAAE88D,OAAW,IAAI98D,EAAEC,EAAE5mC,MAAM,OAAO2mC,GAAG,CAAS,GAAG,QAAX+gB,EAAE63gB,GAAG54hB,IAAe,CAAmG,IAAlGC,EAAE68D,OAAO,IAAIshe,GAAGt3d,GAAE,GAAoB,QAAhBzP,EAAEt2C,EAAEgzgB,eAAuB9zhB,EAAE8zhB,YAAY18d,EAAEp3D,EAAE68D,OAAO,GAAG78D,EAAEs+hB,aAAa,EAAElne,EAAEthG,EAAMA,EAAEkqC,EAAE5mC,MAAM,OAAOtD,GAAOiqC,EAAEq3D,GAANyP,EAAE/wG,GAAQ+mG,OAAO,SAAuB,QAAd/7C,EAAE+lD,EAAE0hd,YAAoB1hd,EAAEusd,WAAW,EAAEvsd,EAAE2sd,MAAMzzhB,EAAE8mE,EAAEztG,MAAM,KAAKytG,EAAEy3d,aAAa,EAAEz3d,EAAEywd,cAAc,KAAKzwd,EAAE2hd,cAAc,KAAK3hd,EAAEitd,YAAY,KAAKjtd,EAAEysd,aAAa,KACnfzsd,EAAEyhd,UAAU,OAAOzhd,EAAEusd,WAAWtygB,EAAEsygB,WAAWvsd,EAAE2sd,MAAM1ygB,EAAE0ygB,MAAM3sd,EAAEztG,MAAM0nD,EAAE1nD,MAAMytG,EAAEy3d,aAAa,EAAEz3d,EAAEkwd,UAAU,KAAKlwd,EAAEywd,cAAcx2gB,EAAEw2gB,cAAczwd,EAAE2hd,cAAc1ngB,EAAE0ngB,cAAc3hd,EAAEitd,YAAYhzgB,EAAEgzgB,YAAYjtd,EAAE5oG,KAAK6iD,EAAE7iD,KAAK8hC,EAAE+gB,EAAEwygB,aAAazsd,EAAEysd,aAAa,OAAOvzhB,EAAE,KAAK,CAACyzhB,MAAMzzhB,EAAEyzhB,MAAMD,aAAaxzhB,EAAEwzhB,eAAez9jB,EAAEA,EAAEizhB,QAA2B,OAAnBz5T,GAAE/2L,GAAY,EAAVA,GAAEqgM,QAAU,GAAU54L,EAAE5mC,MAAM2mC,EAAEA,EAAEgpf,QAAQ,OAAOlib,EAAEw3d,MAAM96B,KAAIu7B,KAAK9+hB,EAAE68D,OAAO,IAAIzF,GAAE,EAAG+me,GAAGt3d,GAAE,GAAI7mE,EAAEwzhB,MAAM,aAAa,CAAC,IAAIp8d,EAAE,GAAW,QAARr3D,EAAE44hB,GAAG73gB,KAAa,GAAG9gB,EAAE68D,OAAO,IAAIzF,GAAE,EACpe,QADuethG,EAAEiqC,EAAE+zhB,eAChe9zhB,EAAE8zhB,YAAYh+jB,EAAEkqC,EAAE68D,OAAO,GAAGshe,GAAGt3d,GAAE,GAAI,OAAOA,EAAEw3d,MAAM,WAAWx3d,EAAEu3d,WAAWt9gB,EAAEyngB,YAAYpc,GAAE,OAAO38U,GAAExvL,GAAG,UAAU,EAAEujgB,KAAI18b,EAAEk4d,mBAAmBD,IAAI,aAAahpkB,IAAIkqC,EAAE68D,OAAO,IAAIzF,GAAE,EAAG+me,GAAGt3d,GAAE,GAAI7mE,EAAEwzhB,MAAM,SAAS3sd,EAAEwpC,aAAavvF,EAAEioe,QAAQ/of,EAAE5mC,MAAM4mC,EAAE5mC,MAAM0nD,IAAa,QAAThrD,EAAE+wG,EAAE+P,MAAc9gH,EAAEizhB,QAAQjoe,EAAE9gB,EAAE5mC,MAAM0nD,EAAE+lD,EAAE+P,KAAK91D,GAAG,OAAG,OAAO+lD,EAAEw3d,MAAYr+hB,EAAE6mE,EAAEw3d,KAAKx3d,EAAEg4d,UAAU7+hB,EAAE6mE,EAAEw3d,KAAKr+hB,EAAE+of,QAAQlib,EAAEk4d,mBAAmBx7B,KAAIvjgB,EAAE+of,QAAQ,KAAKjzhB,EAAEyiC,GAAEqgM,QAAQtJ,GAAE/2L,GAAE6+D,EAAI,EAAFthG,EAAI,EAAI,EAAFA,GAAKkqC,IAAEwvL,GAAExvL,GAAU,MAAK,KAAK,GAAG,KAAK,GAAG,OAAOg/hB,KAAK5ne,EAAE,OAC9ep3D,EAAEwohB,cAAc,OAAOzohB,GAAG,OAAOA,EAAEyohB,gBAAgBpxd,IAAIp3D,EAAE68D,OAAO,MAAMzF,GAAG,KAAY,EAAPp3D,EAAE2e,MAAQ,KAAQ,WAAHsghB,MAAiBzvW,GAAExvL,GAAkB,EAAfA,EAAEs+hB,eAAiBt+hB,EAAE68D,OAAO,OAAO2yH,GAAExvL,GAAG,KAAK,KAAK,GAAe,KAAK,GAAG,OAAO,KAAK,MAAMrQ,MAAM+hD,EAAE,IAAI1xC,EAAE86E,MAnB5Nqid,GAAG,SAASp9hB,EAAEC,GAAG,IAAI,IAAIlqC,EAAEkqC,EAAE5mC,MAAM,OAAOtD,GAAG,CAAC,GAAG,IAAIA,EAAEglH,KAAK,IAAIhlH,EAAEglH,IAAI/6E,EAAE+xB,YAAYh8D,EAAEwyjB,gBAAgB,GAAG,IAAIxyjB,EAAEglH,KAAK,OAAOhlH,EAAEsD,MAAM,CAACtD,EAAEsD,MAAMk/H,OAAOxiI,EAAEA,EAAEA,EAAEsD,MAAM,SAAS,GAAGtD,IAAIkqC,EAAE,MAAM,KAAK,OAAOlqC,EAAEizhB,SAAS,CAAC,GAAG,OAAOjzhB,EAAEwiI,QAAQxiI,EAAEwiI,SAASt4F,EAAE,OAAOlqC,EAAEA,EAAEwiI,OAAOxiI,EAAEizhB,QAAQzwZ,OAAOxiI,EAAEwiI,OAAOxiI,EAAEA,EAAEizhB,UAChSq0C,GAAG,SAASr9hB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAEu3hB,cAAc,GAAGx8kB,IAAIs8G,EAAE,CAACr3D,EAAEC,EAAEsohB,UAAUpsQ,GAAGm8Q,GAAGz/V,SAAS,IAA4R93K,EAAxR+lD,EAAE,KAAK,OAAO/wG,GAAG,IAAK,QAAQhb,EAAE8tjB,EAAG7ogB,EAAEjlD,GAAGs8G,EAAEwxc,EAAG7ogB,EAAEq3D,GAAGyP,EAAE,GAAG,MAAM,IAAK,SAAS/rH,EAAE06d,EAAE,GAAG16d,EAAE,CAACoB,WAAM,IAASk7G,EAAEo+W,EAAE,GAAGp+W,EAAE,CAACl7G,WAAM,IAAS2qH,EAAE,GAAG,MAAM,IAAK,WAAW/rH,EAAEgskB,GAAG/mhB,EAAEjlD,GAAGs8G,EAAE0vd,GAAG/mhB,EAAEq3D,GAAGyP,EAAE,GAAG,MAAM,QAAQ,oBAAoB/rH,EAAEwmE,SAAS,oBAAoB81C,EAAE91C,UAAUvhB,EAAEujG,QAAQktb,IAAyB,IAAIhmf,KAAzBuge,GAAGj1iB,EAAEshG,GAASthG,EAAE,KAAchb,EAAE,IAAIs8G,EAAEhmC,eAAeoZ,IAAI1vF,EAAEs2E,eAAeoZ,IAAI,MAAM1vF,EAAE0vF,GAAG,GAAG,UAAUA,EAAE,CAAC,IAAIs5D,EAAEhpJ,EAAE0vF,GAAG,IAAI1pB,KAAKgjF,EAAEA,EAAE1yE,eAAetQ,KACjfhrD,IAAIA,EAAE,IAAIA,EAAEgrD,GAAG,QAAQ,4BAA4B0pB,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIu2N,EAAG3vO,eAAeoZ,GAAGq8B,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI3rH,KAAKsvF,EAAE,OAAO,IAAIA,KAAK4sB,EAAE,CAAC,IAAInlD,EAAEmlD,EAAE5sB,GAAyB,GAAtBs5D,EAAE,MAAMhpJ,EAAEA,EAAE0vF,QAAG,EAAU4sB,EAAEhmC,eAAeoZ,IAAIv4B,IAAI6xF,IAAI,MAAM7xF,GAAG,MAAM6xF,GAAG,GAAG,UAAUt5D,EAAE,GAAGs5D,EAAE,CAAC,IAAIhjF,KAAKgjF,GAAGA,EAAE1yE,eAAetQ,IAAI7O,GAAGA,EAAEmf,eAAetQ,KAAKhrD,IAAIA,EAAE,IAAIA,EAAEgrD,GAAG,IAAI,IAAIA,KAAK7O,EAAEA,EAAEmf,eAAetQ,IAAIgjF,EAAEhjF,KAAK7O,EAAE6O,KAAKhrD,IAAIA,EAAE,IAAIA,EAAEgrD,GAAG7O,EAAE6O,SAAShrD,IAAI+wG,IAAIA,EAAE,IAAIA,EAAE3rH,KAAKsvF,EACpf10E,IAAIA,EAAEm8C,MAAM,4BAA4Bu4B,GAAGv4B,EAAEA,EAAEA,EAAEmqD,YAAO,EAAO0nC,EAAEA,EAAEA,EAAE1nC,YAAO,EAAO,MAAMnqD,GAAG6xF,IAAI7xF,IAAI40D,EAAEA,GAAG,IAAI3rH,KAAKsvF,EAAEv4B,IAAI,aAAau4B,EAAE,kBAAkBv4B,GAAG,kBAAkBA,IAAI40D,EAAEA,GAAG,IAAI3rH,KAAKsvF,EAAE,GAAGv4B,GAAG,mCAAmCu4B,GAAG,6BAA6BA,IAAIu2N,EAAG3vO,eAAeoZ,IAAI,MAAMv4B,GAAG,aAAau4B,GAAG20a,GAAE,SAASp/c,GAAG8mE,GAAGi9B,IAAI7xF,IAAI40D,EAAE,MAAMA,EAAEA,GAAG,IAAI3rH,KAAKsvF,EAAEv4B,IAAIn8C,IAAI+wG,EAAEA,GAAG,IAAI3rH,KAAK,QAAQ4a,GAAG,IAAI00E,EAAEq8B,GAAK7mE,EAAE8zhB,YAAYtpf,KAAExqC,EAAE68D,OAAO,KAAIwge,GAAG,SAASt9hB,EAAEC,EAAElqC,EAAEshG,GAAGthG,IAAIshG,IAAIp3D,EAAE68D,OAAO,IAgB3P,IAAIqie,GAAG7jR,EAAG8jR,kBAAkB1L,IAAG,EAAG,SAAS2L,GAAGr/hB,EAAEC,EAAElqC,EAAEshG,GAAGp3D,EAAE5mC,MAAM,OAAO2mC,EAAEq4hB,GAAGp4hB,EAAE,KAAKlqC,EAAEshG,GAAG+ge,GAAGn4hB,EAAED,EAAE3mC,MAAMtD,EAAEshG,GACzU,SAASioe,GAAGt/hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAGgb,EAAEA,EAAE+D,OAAO,IAAIgtG,EAAE7mE,EAAEuY,IAAqC,OAAjC86gB,GAAGrzhB,EAAEllD,GAAGs8G,EAAEqie,GAAG15hB,EAAEC,EAAElqC,EAAEshG,EAAEyP,EAAE/rH,GAAGgb,EAAEgkkB,KAAQ,OAAO/5hB,GAAI0zhB,IAA2EtnB,IAAGr2iB,GAAGygkB,GAAGv2hB,GAAGA,EAAE68D,OAAO,EAAEuie,GAAGr/hB,EAAEC,EAAEo3D,EAAEt8G,GAAUklD,EAAE5mC,QAA7G4mC,EAAE8zhB,YAAY/zhB,EAAE+zhB,YAAY9zhB,EAAE68D,QAAQ,KAAK98D,EAAEyzhB,QAAQ14kB,EAAEwklB,GAAGv/hB,EAAEC,EAAEllD,IACrK,SAASyklB,GAAGx/hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,GAAG,OAAOilD,EAAE,CAAC,IAAI8mE,EAAE/wG,EAAEmI,KAAK,MAAG,oBAAoB4oG,GAAI24d,GAAG34d,SAAI,IAASA,EAAE2gN,cAAc,OAAO1xT,EAAEg8C,cAAS,IAASh8C,EAAE0xT,eAAoDznR,EAAEi4hB,GAAGlikB,EAAEmI,KAAK,KAAKm5F,EAAEp3D,EAAEA,EAAE2e,KAAK7jE,IAAKy9D,IAAIvY,EAAEuY,IAAIxY,EAAEu4F,OAAOt4F,EAASA,EAAE5mC,MAAM2mC,IAArGC,EAAE86E,IAAI,GAAG96E,EAAE/hC,KAAK4oG,EAAE44d,GAAG1/hB,EAAEC,EAAE6mE,EAAEzP,EAAEt8G,IAAoF,GAAV+rH,EAAE9mE,EAAE3mC,MAAS,KAAK2mC,EAAEyzhB,MAAM14kB,GAAG,CAAC,IAAIgmE,EAAE+lD,EAAEywd,cAA0C,IAAhBxhkB,EAAE,QAAdA,EAAEA,EAAEg8C,SAAmBh8C,EAAEs3jB,IAAQtsgB,EAAEs2C,IAAIr3D,EAAEwY,MAAMvY,EAAEuY,IAAI,OAAO+mhB,GAAGv/hB,EAAEC,EAAEllD,GAA+C,OAA5CklD,EAAE68D,OAAO,GAAE98D,EAAE+3hB,GAAGjxd,EAAEzP,IAAK7+C,IAAIvY,EAAEuY,IAAIxY,EAAEu4F,OAAOt4F,EAASA,EAAE5mC,MAAM2mC,EACzb,SAAS0/hB,GAAG1/hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,GAAG,OAAOilD,GAAGqthB,GAAGrthB,EAAEu3hB,cAAclge,IAAIr3D,EAAEwY,MAAMvY,EAAEuY,IAAI,IAAGk7gB,IAAG,EAAG,KAAK1zhB,EAAEyzhB,MAAM14kB,GAAsC,OAAOklD,EAAEwzhB,MAAMzzhB,EAAEyzhB,MAAM8L,GAAGv/hB,EAAEC,EAAEllD,GAAjE,KAAa,OAARilD,EAAE88D,SAAgB42d,IAAG,GAA0C,OAAOiM,GAAG3/hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GACxL,SAAS6klB,GAAG5/hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEi3hB,aAAan8kB,EAAEs8G,EAAE/xG,SAASwhH,EAAE,OAAO9mE,EAAEA,EAAEyohB,cAAc,KAAK,GAAG,WAAWpxd,EAAEz4C,KAAK,GAAG,KAAY,EAAP3e,EAAE2e,MAAQ3e,EAAEwohB,cAAc,CAACoX,UAAU,EAAEC,UAAU,MAAMvwW,GAAEwwW,GAAGb,IAAIA,IAAInpkB,MAAO,IAAG,KAAO,WAAFA,GAAwG,OAAOiqC,EAAE,OAAO8mE,EAAEA,EAAE+4d,UAAU9pkB,EAAEA,EAAEkqC,EAAEwzhB,MAAMxzhB,EAAEozhB,WAAW,WAAWpzhB,EAAEwohB,cAAc,CAACoX,UAAU7/hB,EAAE8/hB,UAAU,MAAM7/hB,EAAE8zhB,YAAY,KAAKxkW,GAAEwwW,GAAGb,IAAIA,IAAIl/hB,EAAE,KAA3OC,EAAEwohB,cAAc,CAACoX,UAAU,EAAEC,UAAU,MAAMzoe,EAAE,OAAOyP,EAAEA,EAAE+4d,UAAU9pkB,EAAEw5N,GAAEwwW,GAAGb,IAAIA,IAAI7ne,OAAkK,OAAOyP,GAAGzP,EAAEyP,EAAE+4d,UAAU9pkB,EAAEkqC,EAAEwohB,cAAc,MAClfpxd,EAAEthG,EAAEw5N,GAAEwwW,GAAGb,IAAIA,IAAI7ne,EAAc,OAAZgoe,GAAGr/hB,EAAEC,EAAEllD,EAAEgb,GAAUkqC,EAAE5mC,MAAM,SAAS2mkB,GAAGhgiB,EAAEC,GAAG,IAAIlqC,EAAEkqC,EAAEuY,KAAO,OAAOxY,GAAG,OAAOjqC,GAAG,OAAOiqC,GAAGA,EAAEwY,MAAMziD,KAAEkqC,EAAE68D,OAAO,IAAI78D,EAAE68D,OAAO,SAAQ,SAAS6ie,GAAG3/hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI+rH,EAAEqrd,GAAGp8jB,GAAGg8jB,GAAG9uB,GAAEpqU,QAAmD,OAA3C/xH,EAAEkrd,GAAG/xhB,EAAE6mE,GAAGwsd,GAAGrzhB,EAAEllD,GAAGgb,EAAE2jkB,GAAG15hB,EAAEC,EAAElqC,EAAEshG,EAAEyP,EAAE/rH,GAAGs8G,EAAE0ie,KAAQ,OAAO/5hB,GAAI0zhB,IAA2EtnB,IAAG/0c,GAAGm/d,GAAGv2hB,GAAGA,EAAE68D,OAAO,EAAEuie,GAAGr/hB,EAAEC,EAAElqC,EAAEhb,GAAUklD,EAAE5mC,QAA7G4mC,EAAE8zhB,YAAY/zhB,EAAE+zhB,YAAY9zhB,EAAE68D,QAAQ,KAAK98D,EAAEyzhB,QAAQ14kB,EAAEwklB,GAAGv/hB,EAAEC,EAAEllD,IACrU,SAASkllB,GAAGjgiB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,GAAGo3kB,GAAGp8jB,GAAG,CAAC,IAAI+wG,GAAE,EAAGyrd,GAAGtyhB,QAAQ6mE,GAAE,EAAW,GAARwsd,GAAGrzhB,EAAEllD,GAAM,OAAOklD,EAAEsohB,UAAU,OAAOvohB,IAAIA,EAAEwohB,UAAU,KAAKvohB,EAAEuohB,UAAU,KAAKvohB,EAAE68D,OAAO,GAAGy4d,GAAGt1hB,EAAElqC,EAAEshG,GAAGs+d,GAAG11hB,EAAElqC,EAAEshG,EAAEt8G,GAAGs8G,GAAE,OAAQ,GAAG,OAAOr3D,EAAE,CAAC,IAAI+gB,EAAE9gB,EAAEsohB,UAAUxkb,EAAE9jG,EAAEs3hB,cAAcx2gB,EAAEg5C,MAAMgqC,EAAE,IAAI7xF,EAAE6O,EAAE7rD,QAAQu1E,EAAE10E,EAAE22gB,YAAY,kBAAkBjic,GAAG,OAAOA,EAAEA,EAAEkpf,GAAGlpf,GAAyBA,EAAEunf,GAAG/xhB,EAA1BwqC,EAAE0nf,GAAGp8jB,GAAGg8jB,GAAG9uB,GAAEpqU,SAAmB,IAAI7mL,EAAEj8C,EAAE+2gB,yBAAyB9oY,EAAE,oBAAoBhyF,GAAG,oBAAoB+O,EAAE22d,wBAAwB1zY,GAAG,oBAAoBjjF,EAAE20gB,kCACpd,oBAAoB30gB,EAAEi5d,4BAA4Bj2Y,IAAI1sC,GAAGnlD,IAAIu4B,IAAIgrf,GAAGx1hB,EAAE8gB,EAAEs2C,EAAE5sB,GAAGqpf,IAAG,EAAG,IAAI/qY,EAAE9oJ,EAAEwohB,cAAc1ngB,EAAE2wB,MAAMq3G,EAAEyrY,GAAGv0hB,EAAEo3D,EAAEt2C,EAAEhmE,GAAGm3D,EAAEjS,EAAEwohB,cAAc1kb,IAAI1sC,GAAG0xF,IAAI72I,GAAG4/gB,GAAGj5V,SAASi7V,IAAI,oBAAoB9hhB,IAAI4ihB,GAAG30hB,EAAElqC,EAAEi8C,EAAEqlD,GAAGnlD,EAAEjS,EAAEwohB,gBAAgB1kb,EAAE+vb,IAAIuB,GAAGp1hB,EAAElqC,EAAEguI,EAAE1sC,EAAE0xF,EAAE72I,EAAEu4B,KAAKu5D,GAAG,oBAAoBjjF,EAAE60gB,2BAA2B,oBAAoB70gB,EAAE+2d,qBAAqB,oBAAoB/2d,EAAE+2d,oBAAoB/2d,EAAE+2d,qBAAqB,oBAAoB/2d,EAAE60gB,2BAA2B70gB,EAAE60gB,6BAA6B,oBAC1e70gB,EAAE+3d,oBAAoB74e,EAAE68D,OAAO,WAAW,oBAAoB/7C,EAAE+3d,oBAAoB74e,EAAE68D,OAAO,SAAS78D,EAAEs3hB,cAAclge,EAAEp3D,EAAEwohB,cAAcv2gB,GAAG6O,EAAEg5C,MAAM1C,EAAEt2C,EAAE2wB,MAAMx/B,EAAE6O,EAAE7rD,QAAQu1E,EAAE4sB,EAAE0sC,IAAI,oBAAoBhjF,EAAE+3d,oBAAoB74e,EAAE68D,OAAO,SAASzF,GAAE,OAAQ,CAACt2C,EAAE9gB,EAAEsohB,UAAUzhR,GAAG9mQ,EAAEC,GAAG8jG,EAAE9jG,EAAEs3hB,cAAc9sf,EAAExqC,EAAE/hC,OAAO+hC,EAAE82hB,YAAYhzb,EAAEgvb,GAAG9yhB,EAAE/hC,KAAK6lI,GAAGhjF,EAAEg5C,MAAMtvB,EAAEu5D,EAAE/jG,EAAEi3hB,aAAanuY,EAAEhoI,EAAE7rD,QAAwB,kBAAhBg9C,EAAEn8C,EAAE22gB,cAAiC,OAAOx6d,EAAEA,EAAEyhhB,GAAGzhhB,GAAyBA,EAAE8/gB,GAAG/xhB,EAA1BiS,EAAEighB,GAAGp8jB,GAAGg8jB,GAAG9uB,GAAEpqU,SAAmB,IAAI3gO,EAAEnC,EAAE+2gB,0BAA0B96d,EAAE,oBAC1e95C,GAAG,oBAAoB6oD,EAAE22d,0BAA0B,oBAAoB32d,EAAE20gB,kCAAkC,oBAAoB30gB,EAAEi5d,4BAA4Bj2Y,IAAIC,GAAG+kD,IAAI72I,IAAIujhB,GAAGx1hB,EAAE8gB,EAAEs2C,EAAEnlD,GAAG4hhB,IAAG,EAAG/qY,EAAE9oJ,EAAEwohB,cAAc1ngB,EAAE2wB,MAAMq3G,EAAEyrY,GAAGv0hB,EAAEo3D,EAAEt2C,EAAEhmE,GAAG,IAAIk3D,EAAEhS,EAAEwohB,cAAc1kb,IAAIC,GAAG+kD,IAAI92I,GAAG6/gB,GAAGj5V,SAASi7V,IAAI,oBAAoB57jB,IAAI08jB,GAAG30hB,EAAElqC,EAAEmC,EAAEm/F,GAAGplD,EAAEhS,EAAEwohB,gBAAgBh+e,EAAEqpf,IAAIuB,GAAGp1hB,EAAElqC,EAAE00E,EAAE4sB,EAAE0xF,EAAE92I,EAAEC,KAAI,IAAKF,GAAG,oBAAoB+O,EAAEm/gB,4BAA4B,oBAAoBn/gB,EAAEi8d,sBAAsB,oBAAoBj8d,EAAEi8d,qBAC9ej8d,EAAEi8d,oBAAoB3lb,EAAEplD,EAAEC,GAAG,oBAAoB6O,EAAEm/gB,4BAA4Bn/gB,EAAEm/gB,2BAA2B7oe,EAAEplD,EAAEC,IAAI,oBAAoB6O,EAAEm8d,qBAAqBj9e,EAAE68D,OAAO,GAAG,oBAAoB/7C,EAAE22d,0BAA0Bz3e,EAAE68D,OAAO,QAAQ,oBAAoB/7C,EAAEm8d,oBAAoBn5Y,IAAI/jG,EAAEu3hB,eAAexuY,IAAI/oJ,EAAEyohB,gBAAgBxohB,EAAE68D,OAAO,GAAG,oBAAoB/7C,EAAE22d,yBAAyB3zY,IAAI/jG,EAAEu3hB,eAAexuY,IAAI/oJ,EAAEyohB,gBAAgBxohB,EAAE68D,OAAO,MAAM78D,EAAEs3hB,cAAclge,EAAEp3D,EAAEwohB,cAAcx2gB,GAAG8O,EAAEg5C,MAAM1C,EAAEt2C,EAAE2wB,MAAMz/B,EAAE8O,EAAE7rD,QACjfg9C,EAAEmlD,EAAE5sB,IAAI,oBAAoB1pB,EAAEm8d,oBAAoBn5Y,IAAI/jG,EAAEu3hB,eAAexuY,IAAI/oJ,EAAEyohB,gBAAgBxohB,EAAE68D,OAAO,GAAG,oBAAoB/7C,EAAE22d,yBAAyB3zY,IAAI/jG,EAAEu3hB,eAAexuY,IAAI/oJ,EAAEyohB,gBAAgBxohB,EAAE68D,OAAO,MAAMzF,GAAE,GAAI,OAAO8oe,GAAGngiB,EAAEC,EAAElqC,EAAEshG,EAAEyP,EAAE/rH,GAC5O,SAASollB,GAAGngiB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAGk5d,GAAGhgiB,EAAEC,GAAG,IAAI8gB,EAAE,KAAa,IAAR9gB,EAAE68D,OAAW,IAAIzF,IAAIt2C,EAAE,OAAOhmE,GAAG03kB,GAAGxyhB,EAAElqC,GAAE,GAAIwpkB,GAAGv/hB,EAAEC,EAAE6mE,GAAGzP,EAAEp3D,EAAEsohB,UAAU4W,GAAGtmW,QAAQ54L,EAAE,IAAI8jG,EAAEhjF,GAAG,oBAAoBhrD,EAAE82gB,yBAAyB,KAAKx1a,EAAEv9F,SAAwI,OAA/HmmC,EAAE68D,OAAO,EAAE,OAAO98D,GAAG+gB,GAAG9gB,EAAE5mC,MAAM++jB,GAAGn4hB,EAAED,EAAE3mC,MAAM,KAAKytG,GAAG7mE,EAAE5mC,MAAM++jB,GAAGn4hB,EAAE,KAAK8jG,EAAEj9B,IAAIu4d,GAAGr/hB,EAAEC,EAAE8jG,EAAEj9B,GAAG7mE,EAAEwohB,cAAcpxd,EAAE3lB,MAAM32F,GAAG03kB,GAAGxyhB,EAAElqC,GAAE,GAAWkqC,EAAE5mC,MAAM,SAAS+mkB,GAAGpgiB,GAAG,IAAIC,EAAED,EAAEuohB,UAAUtohB,EAAEw+hB,eAAepM,GAAGryhB,EAAEC,EAAEw+hB,eAAex+hB,EAAEw+hB,iBAAiBx+hB,EAAE/qC,SAAS+qC,EAAE/qC,SAASm9jB,GAAGryhB,EAAEC,EAAE/qC,SAAQ,GAAIujkB,GAAGz4hB,EAAEC,EAAEkqhB,eAC9d,SAASjgE,GAAGlqd,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAuC,OAApCy8kB,KAAKC,GAAG18kB,GAAGklD,EAAE68D,OAAO,IAAIuie,GAAGr/hB,EAAEC,EAAElqC,EAAEshG,GAAUp3D,EAAE5mC,MAAM,IAAIgnkB,GAAG,CAAC3X,WAAW,KAAKyO,YAAY,KAAKC,UAAU,GAAG,SAASkJ,GAAGtgiB,GAAG,MAAM,CAAC6/hB,UAAU7/hB,EAAE8/hB,UAAU,MAC5K,SAASS,GAAGvgiB,EAAEC,EAAElqC,GAAG,IAA0DguI,EAAtD1sC,EAAEp3D,EAAEi3hB,aAAan8kB,EAAEy9C,GAAEqgM,QAAQ/xH,GAAE,EAAG/lD,EAAE,KAAa,IAAR9gB,EAAE68D,OAAqJ,IAAvIinC,EAAEhjF,KAAKgjF,GAAE,OAAO/jG,GAAG,OAAOA,EAAEyohB,gBAAiB,KAAO,EAAF1tkB,IAASgpJ,GAAEj9B,GAAE,EAAG7mE,EAAE68D,QAAQ,KAAY,OAAO98D,GAAG,OAAOA,EAAEyohB,gBAAc1tkB,GAAG,GAAEw0O,GAAE/2L,GAAI,EAAFz9C,GAAQ,OAAOilD,EAA2B,OAAxBhpC,GAAGipC,GAAwB,QAArBD,EAAEC,EAAEwohB,gBAA2C,QAAfzohB,EAAEA,EAAE0ohB,aAA4B,KAAY,EAAPzohB,EAAE2e,MAAQ3e,EAAEwzhB,MAAM,EAAE,OAAOzzhB,EAAE53C,KAAK63C,EAAEwzhB,MAAM,EAAExzhB,EAAEwzhB,MAAM,WAAW,OAAK14kB,EAAEs8G,EAAE/xG,SAAS06C,EAAEq3D,EAAE4L,SAAgB6D,GAAGzP,EAAEp3D,EAAE2e,KAAKkoD,EAAE7mE,EAAE5mC,MAAMte,EAAE,CAAC6jE,KAAK,SAASt5D,SAASvK,GAAG,KAAO,EAAFs8G,IAAM,OAAOyP,GAAGA,EAAEusd,WAAW,EAAEvsd,EAAEowd,aAC7en8kB,GAAG+rH,EAAE05d,GAAGzllB,EAAEs8G,EAAE,EAAE,MAAMr3D,EAAEm4hB,GAAGn4hB,EAAEq3D,EAAEthG,EAAE,MAAM+wG,EAAEyxB,OAAOt4F,EAAED,EAAEu4F,OAAOt4F,EAAE6mE,EAAEkib,QAAQhpf,EAAEC,EAAE5mC,MAAMytG,EAAE7mE,EAAE5mC,MAAMovjB,cAAc6X,GAAGvqkB,GAAGkqC,EAAEwohB,cAAc4X,GAAGrgiB,GAAGygiB,GAAGxgiB,EAAEllD,IAAqB,GAAG,QAArBA,EAAEilD,EAAEyohB,eAA0B,CAAgB,GAAG,QAAlB1kb,EAAEhpJ,EAAE2tkB,YAAuB,CAAC,GAAG3ngB,EAAG,OAAW,IAAR9gB,EAAE68D,OAAiB78D,EAAE68D,QAAQ,IAAI4je,GAAG1giB,EAAEC,EAAElqC,EAAE65B,MAAM+hD,EAAE,QAAU,OAAO1xC,EAAEwohB,eAAqBxohB,EAAE5mC,MAAM2mC,EAAE3mC,MAAM4mC,EAAE68D,OAAO,IAAI,OAAKgK,EAAEzP,EAAE4L,SAASloH,EAAEklD,EAAE2e,KAAKy4C,EAAEmpe,GAAG,CAAC5hhB,KAAK,UAAUt5D,SAAS+xG,EAAE/xG,UAAUvK,EAAE,EAAE,OAAM+rH,EAAEqxd,GAAGrxd,EAAE/rH,EAAEgb,EAAE,OAAQ+mG,OAAO,EAAEzF,EAAEkhC,OAAOt4F,EAAE6mE,EAAEyxB,OAAOt4F,EAAEo3D,EAAE2xb,QAAQlib,EAAE7mE,EAAE5mC,MAAMg+F,EAAE,KAAY,EAAPp3D,EAAE2e,OAASw5gB,GAAGn4hB,EAAED,EAAE3mC,MACpf,KAAKtD,GAAGkqC,EAAE5mC,MAAMovjB,cAAc6X,GAAGvqkB,GAAGkqC,EAAEwohB,cAAc4X,GAAUv5d,GAAE,GAAG,KAAY,EAAP7mE,EAAE2e,MAAQ3e,EAAEygiB,GAAG1giB,EAAEC,EAAElqC,EAAE,WAAW,GAAG,OAAOguI,EAAE37I,KAAK63C,EAAEygiB,GAAG1giB,EAAEC,EAAElqC,EAAE65B,MAAM+hD,EAAE,YAAY,GAAG0lB,EAAE,KAAKthG,EAAEiqC,EAAEqzhB,YAAYK,IAAIr8d,EAAE,CAAK,GAAG,QAAPA,EAAE6rc,IAAc,CAAC,OAAOntiB,GAAGA,GAAG,KAAK,EAAE+wG,EAAE,EAAE,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,KAAK,SAAS,KAAK,SAASA,EAAE,GAAG,MAAM,KAAK,UAAUA,EAClgB,UAAU,MAAM,QAAQA,EAAE,EAAqC,KAAnCzP,EAAE,KAAKyP,GAAGzP,EAAEoyd,eAAe1zjB,IAAI,EAAE+wG,IAASzP,IAAIt8G,EAAEq8kB,YAAYr8kB,EAAEq8kB,UAAU//d,EAAE69d,GAAGl1hB,EAAEq3D,GAAG,IAAIwne,KAAK5+hB,EAAEygiB,GAAG1giB,EAAEC,EAAElqC,EAAE65B,MAAM+hD,EAAE,WAAW,OAAOoyD,EAAE37I,MAAM63C,EAAE68D,OAAO,IAAI78D,EAAE5mC,MAAM2mC,EAAE3mC,MAAM4mC,EAAE0giB,GAAG37kB,KAAK,KAAKg7C,GAAG+jG,EAAE68b,YAAY3giB,EAAEA,EAAE,OAAOlqC,EAAEhb,EAAEo8kB,YAAYR,GAAGxF,GAAGptb,EAAE9mC,aAAay5d,GAAGz2hB,EAAEmsgB,IAAE,EAAGwqB,GAAG,KAAK,OAAO7gkB,IAAIkgkB,GAAGC,MAAME,GAAGH,GAAGC,MAAMG,GAAGJ,GAAGC,MAAMC,GAAGC,GAAGrgkB,EAAEvR,GAAG6xkB,GAAGtgkB,EAAE2mH,SAASy5c,GAAGl2hB,IAAGA,EAAEwgiB,GAAGxgiB,EAAEA,EAAEi3hB,aAAa5xkB,WAAYw3G,OAAO,MAAM,OAAO78D,EAAE,OAAG6mE,GAASzP,EAAEwpe,GAAG7giB,EAAEC,EAAEo3D,EAAE/xG,SAAS+xG,EAAE4L,SAASltG,GAAG+wG,EAAE7mE,EAAE5mC,MAAMte,EAAEilD,EAAE3mC,MAAMovjB,cACxe3hd,EAAE2hd,cAAc,OAAO1tkB,EAAEullB,GAAGvqkB,GAAG,CAAC8pkB,UAAU9klB,EAAE8klB,UAAU9pkB,EAAE+pkB,UAAU,MAAMh5d,EAAEusd,WAAWrzhB,EAAEqzhB,YAAYt9jB,EAAEkqC,EAAEwohB,cAAc4X,GAAGhpe,IAAEthG,EAAE+qkB,GAAG9giB,EAAEC,EAAEo3D,EAAE/xG,SAASyQ,GAAGkqC,EAAEwohB,cAAc,KAAY1yjB,GAAE,OAAG+wG,GAASzP,EAAEwpe,GAAG7giB,EAAEC,EAAEo3D,EAAE/xG,SAAS+xG,EAAE4L,SAASltG,GAAG+wG,EAAE7mE,EAAE5mC,MAAMte,EAAEilD,EAAE3mC,MAAMovjB,cAAc3hd,EAAE2hd,cAAc,OAAO1tkB,EAAEullB,GAAGvqkB,GAAG,CAAC8pkB,UAAU9klB,EAAE8klB,UAAU9pkB,EAAE+pkB,UAAU,MAAMh5d,EAAEusd,WAAWrzhB,EAAEqzhB,YAAYt9jB,EAAEkqC,EAAEwohB,cAAc4X,GAAGhpe,IAAEthG,EAAE+qkB,GAAG9giB,EAAEC,EAAEo3D,EAAE/xG,SAASyQ,GAAGkqC,EAAEwohB,cAAc,KAAY1yjB,GAC5a,SAAS0qkB,GAAGzgiB,EAAEC,GAA8D,OAA3DA,EAAEugiB,GAAG,CAAC5hhB,KAAK,UAAUt5D,SAAS26C,GAAGD,EAAE4e,KAAK,EAAE,OAAQ25E,OAAOv4F,EAASA,EAAE3mC,MAAM4mC,EAAE,SAAS6giB,GAAG9giB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEilD,EAAE3mC,MAAuL,OAAjL2mC,EAAEjlD,EAAEiuiB,QAAQjzhB,EAAEgikB,GAAGh9kB,EAAE,CAAC6jE,KAAK,UAAUt5D,SAASyQ,IAAI,KAAY,EAAPkqC,EAAE2e,QAAU7oD,EAAE09jB,MAAMp8d,GAAGthG,EAAEwiI,OAAOt4F,EAAElqC,EAAEizhB,QAAQ,KAAK,OAAOhpf,IAAkB,QAAdq3D,EAAEp3D,EAAE+2hB,YAAoB/2hB,EAAE+2hB,UAAU,CAACh3hB,GAAGC,EAAE68D,OAAO,IAAIzF,EAAEl8G,KAAK6kD,IAAWC,EAAE5mC,MAAMtD,EAChU,SAAS8qkB,GAAG7giB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI+rH,EAAE7mE,EAAE2e,KAAmBmC,GAAd/gB,EAAEA,EAAE3mC,OAAc2vhB,QAAQjlZ,EAAE,CAACnlF,KAAK,SAASt5D,SAASyQ,GAAuO,OAApO,KAAO,EAAF+wG,IAAM7mE,EAAE5mC,QAAQ2mC,IAAGjqC,EAAEkqC,EAAE5mC,OAAQg6jB,WAAW,EAAEt9jB,EAAEmhkB,aAAanzb,EAAE9jG,EAAE+2hB,UAAU,OAAOjhkB,EAAEgikB,GAAG/3hB,EAAE+jG,IAAKw6b,aAA4B,SAAfv+hB,EAAEu+hB,aAAuB,OAAOx9gB,EAAEs2C,EAAE0ge,GAAGh3gB,EAAEs2C,IAAIA,EAAE8ge,GAAG9ge,EAAEyP,EAAE/rH,EAAE,OAAQ+hH,OAAO,EAAGzF,EAAEkhC,OAAOt4F,EAAElqC,EAAEwiI,OAAOt4F,EAAElqC,EAAEizhB,QAAQ3xb,EAAEp3D,EAAE5mC,MAAMtD,EAASshG,EAAE,SAASqpe,GAAG1giB,EAAEC,EAAElqC,EAAEshG,GAAwG,OAArG,OAAOA,GAAGoge,GAAGpge,GAAG+ge,GAAGn4hB,EAAED,EAAE3mC,MAAM,KAAKtD,IAAGiqC,EAAEygiB,GAAGxgiB,EAAEA,EAAEi3hB,aAAa5xkB,WAAYw3G,OAAO,EAAE78D,EAAEwohB,cAAc,KAAYzohB,EACzc,SAAS+giB,GAAG/giB,EAAEC,EAAElqC,GAAGiqC,EAAEyzhB,OAAOxzhB,EAAE,IAAIo3D,EAAEr3D,EAAEwohB,UAAU,OAAOnxd,IAAIA,EAAEo8d,OAAOxzhB,GAAGukQ,GAAGxkQ,EAAEu4F,OAAOt4F,EAAElqC,GAAG,SAASirkB,GAAGhhiB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI+rH,EAAE9mE,EAAEyohB,cAAc,OAAO3hd,EAAE9mE,EAAEyohB,cAAc,CAACn4a,YAAYrwG,EAAE6+hB,UAAU,KAAKE,mBAAmB,EAAEnod,KAAKxf,EAAEine,KAAKvokB,EAAEsokB,SAAStjlB,IAAI+rH,EAAEwpC,YAAYrwG,EAAE6mE,EAAEg4d,UAAU,KAAKh4d,EAAEk4d,mBAAmB,EAAEl4d,EAAE+P,KAAKxf,EAAEyP,EAAEw3d,KAAKvokB,EAAE+wG,EAAEu3d,SAAStjlB,GACjU,SAASkmlB,GAAGjhiB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAEi3hB,aAAan8kB,EAAEs8G,EAAEwhe,YAAY/xd,EAAEzP,EAAEine,KAAsC,GAAjCe,GAAGr/hB,EAAEC,EAAEo3D,EAAE/xG,SAASyQ,GAAkB,KAAO,GAAtBshG,EAAE7+D,GAAEqgM,UAAqBxhI,EAAI,EAAFA,EAAI,EAAEp3D,EAAE68D,OAAO,QAAQ,CAAC,GAAG,OAAO98D,GAAG,KAAa,IAARA,EAAE88D,OAAW98D,EAAE,IAAIA,EAAEC,EAAE5mC,MAAM,OAAO2mC,GAAG,CAAC,GAAG,KAAKA,EAAE+6E,IAAI,OAAO/6E,EAAEyohB,eAAesY,GAAG/giB,EAAEjqC,EAAEkqC,QAAQ,GAAG,KAAKD,EAAE+6E,IAAIgmd,GAAG/giB,EAAEjqC,EAAEkqC,QAAQ,GAAG,OAAOD,EAAE3mC,MAAM,CAAC2mC,EAAE3mC,MAAMk/H,OAAOv4F,EAAEA,EAAEA,EAAE3mC,MAAM,SAAS,GAAG2mC,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAEgpf,SAAS,CAAC,GAAG,OAAOhpf,EAAEu4F,QAAQv4F,EAAEu4F,SAASt4F,EAAE,MAAMD,EAAEA,EAAEA,EAAEu4F,OAAOv4F,EAAEgpf,QAAQzwZ,OAAOv4F,EAAEu4F,OAAOv4F,EAAEA,EAAEgpf,QAAQ3xb,GAAG,EAAS,GAAPk4H,GAAE/2L,GAAE6+D,GAAM,KAAY,EAAPp3D,EAAE2e,MAAQ3e,EAAEwohB,cAC/e,UAAU,OAAO1tkB,GAAG,IAAK,WAAqB,IAAVgb,EAAEkqC,EAAE5mC,MAAUte,EAAE,KAAK,OAAOgb,GAAiB,QAAdiqC,EAAEjqC,EAAEyyjB,YAAoB,OAAOoQ,GAAG54hB,KAAKjlD,EAAEgb,GAAGA,EAAEA,EAAEizhB,QAAY,QAAJjzhB,EAAEhb,IAAYA,EAAEklD,EAAE5mC,MAAM4mC,EAAE5mC,MAAM,OAAOte,EAAEgb,EAAEizhB,QAAQjzhB,EAAEizhB,QAAQ,MAAMg4C,GAAG/giB,GAAE,EAAGllD,EAAEgb,EAAE+wG,GAAG,MAAM,IAAK,YAA6B,IAAjB/wG,EAAE,KAAKhb,EAAEklD,EAAE5mC,MAAU4mC,EAAE5mC,MAAM,KAAK,OAAOte,GAAG,CAAe,GAAG,QAAjBilD,EAAEjlD,EAAEytkB,YAAuB,OAAOoQ,GAAG54hB,GAAG,CAACC,EAAE5mC,MAAMte,EAAE,MAAMilD,EAAEjlD,EAAEiuiB,QAAQjuiB,EAAEiuiB,QAAQjzhB,EAAEA,EAAEhb,EAAEA,EAAEilD,EAAEghiB,GAAG/giB,GAAE,EAAGlqC,EAAE,KAAK+wG,GAAG,MAAM,IAAK,WAAWk6d,GAAG/giB,GAAE,EAAG,KAAK,UAAK,GAAQ,MAAM,QAAQA,EAAEwohB,cAAc,KAAK,OAAOxohB,EAAE5mC,MACxd,SAASkmkB,GAAGv/hB,EAAEC,EAAElqC,GAAyD,GAAtD,OAAOiqC,IAAIC,EAAEszhB,aAAavzhB,EAAEuzhB,cAAckB,IAAIx0hB,EAAEwzhB,MAAS,KAAK19jB,EAAEkqC,EAAEozhB,YAAY,OAAO,KAAK,GAAG,OAAOrzhB,GAAGC,EAAE5mC,QAAQ2mC,EAAE3mC,MAAM,MAAMu2B,MAAM+hD,EAAE,MAAM,GAAG,OAAO1xC,EAAE5mC,MAAM,CAA4C,IAAjCtD,EAAEgikB,GAAZ/3hB,EAAEC,EAAE5mC,MAAa2mC,EAAEk3hB,cAAcj3hB,EAAE5mC,MAAMtD,EAAMA,EAAEwiI,OAAOt4F,EAAE,OAAOD,EAAEgpf,SAAShpf,EAAEA,EAAEgpf,SAAQjzhB,EAAEA,EAAEizhB,QAAQ+uC,GAAG/3hB,EAAEA,EAAEk3hB,eAAgB3+b,OAAOt4F,EAAElqC,EAAEizhB,QAAQ,KAAK,OAAO/of,EAAE5mC,MAG/U,SAAS6nkB,GAAGlhiB,EAAEC,GAAS,OAANw2hB,GAAGx2hB,GAAUA,EAAE86E,KAAK,KAAK,EAAE,OAAOo3c,GAAGlyhB,EAAE/hC,OAAOk0jB,KAAiB,OAAZpyhB,EAAEC,EAAE68D,QAAe78D,EAAE68D,OAAS,MAAH98D,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAOq8Q,KAAKyqP,GAAE+qB,IAAI/qB,GAAE9D,IAAG81B,KAAe,KAAO,OAAjB/4hB,EAAEC,EAAE68D,SAAqB,KAAO,IAAF98D,IAAQC,EAAE68D,OAAS,MAAH98D,EAAS,IAAIC,GAAG,KAAK,KAAK,EAAE,OAAO04hB,GAAG14hB,GAAG,KAAK,KAAK,GAA0B,GAAvB8mgB,GAAEvugB,IAAwB,QAArBwH,EAAEC,EAAEwohB,gBAA2B,OAAOzohB,EAAE0ohB,WAAW,CAAC,GAAG,OAAOzohB,EAAEuohB,UAAU,MAAM54hB,MAAM+hD,EAAE,MAAM6lf,KAAe,OAAS,OAAnBx3hB,EAAEC,EAAE68D,QAAsB78D,EAAE68D,OAAS,MAAH98D,EAAS,IAAIC,GAAG,KAAK,KAAK,GAAG,OAAO8mgB,GAAEvugB,IAAG,KAAK,KAAK,EAAE,OAAO8jR,KAAK,KAAK,KAAK,GAAG,OAAOrY,GAAGhkQ,EAAE/hC,KAAKsvB,UAAU,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOyxiB,KAC1gB,KAAyB,QAAQ,OAAO,MAAM,IAAIkC,IAAG,EAAGC,IAAG,EAAGC,GAAG,oBAAoBC,QAAQA,QAAQpie,IAAIuxM,GAAE,KAAK,SAAS8wR,GAAGvhiB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEwY,IAAI,GAAG,OAAOziD,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMshG,GAAGmqe,GAAGxhiB,EAAEC,EAAEo3D,QAAQthG,EAAE8iO,QAAQ,KAAK,SAAS4oW,GAAGzhiB,EAAEC,EAAElqC,GAAG,IAAIA,IAAI,MAAMshG,GAAGmqe,GAAGxhiB,EAAEC,EAAEo3D,IAAI,IAAIqqe,IAAG,EAI3R,SAASC,GAAG3hiB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEp3D,EAAE8zhB,YAAyC,GAAG,QAAhC18d,EAAE,OAAOA,EAAEA,EAAE6je,WAAW,MAAiB,CAAC,IAAInglB,EAAEs8G,EAAEA,EAAEx+D,KAAK,EAAE,CAAC,IAAI99C,EAAEggI,IAAI/6E,KAAKA,EAAE,CAAC,IAAI8mE,EAAE/rH,EAAE6gH,QAAQ7gH,EAAE6gH,aAAQ,OAAO,IAASkL,GAAG26d,GAAGxhiB,EAAElqC,EAAE+wG,GAAG/rH,EAAEA,EAAE89C,WAAW99C,IAAIs8G,IAAI,SAASuqe,GAAG5hiB,EAAEC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAE8zhB,aAAuB9zhB,EAAEi7hB,WAAW,MAAiB,CAAC,IAAInlkB,EAAEkqC,EAAEA,EAAEpH,KAAK,EAAE,CAAC,IAAI9iC,EAAEglH,IAAI/6E,KAAKA,EAAE,CAAC,IAAIq3D,EAAEthG,EAAE8jB,OAAO9jB,EAAE6lG,QAAQvE,IAAIthG,EAAEA,EAAE8iC,WAAW9iC,IAAIkqC,IAAI,SAAS4hiB,GAAG7hiB,GAAG,IAAIC,EAAED,EAAEwY,IAAI,GAAG,OAAOvY,EAAE,CAAC,IAAIlqC,EAAEiqC,EAAEuohB,UAAiBvohB,EAAE+6E,IAA8B/6E,EAAEjqC,EAAE,oBAAoBkqC,EAAEA,EAAED,GAAGC,EAAE44L,QAAQ74L,GAChf,SAAS8hiB,GAAG9hiB,EAAEC,EAAElqC,GAAG,GAAGmyiB,IAAI,oBAAoBA,GAAG65B,qBAAqB,IAAI75B,GAAG65B,qBAAqBv7B,GAAGvmgB,GAAG,MAAM8gB,IAAI,OAAO9gB,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnB/6E,EAAEC,EAAE8zhB,cAAyC,QAAf/zhB,EAAEA,EAAEk7hB,YAAqB,CAAC,IAAI7je,EAAEr3D,EAAEA,EAAEnH,KAAK,EAAE,CAAC,IAAI99C,EAAEs8G,EAAEyP,EAAE/rH,EAAE6gH,QAAQ7gH,EAAEA,EAAEggI,SAAI,IAASjU,IAAI,KAAO,EAAF/rH,IAAe,KAAO,EAAFA,KAAf0mlB,GAAGxhiB,EAAElqC,EAAE+wG,GAAyBzP,EAAEA,EAAEx+D,WAAWw+D,IAAIr3D,GAAG,MAAM,KAAK,EAAwB,GAAtBuhiB,GAAGthiB,EAAElqC,GAAoB,oBAAjBiqC,EAAEC,EAAEsohB,WAAmCxyC,qBAAqB,IAAI/1e,EAAE+5D,MAAM95D,EAAEs3hB,cAAcv3hB,EAAE0xC,MAAMzxC,EAAEwohB,cAAczohB,EAAE+1e,uBAAuB,MAAMh1d,GAAGyghB,GAAGvhiB,EAC5flqC,EAAEgrD,GAAG,MAAM,KAAK,EAAEwghB,GAAGthiB,EAAElqC,GAAG,MAAM,KAAK,EAAEiskB,GAAGhiiB,EAAEC,EAAElqC,IAAI,SAASkskB,GAAGjiiB,GAAG,IAAIC,EAAED,EAAEwohB,UAAU,OAAOvohB,IAAID,EAAEwohB,UAAU,KAAKyZ,GAAGhiiB,IAAID,EAAE3mC,MAAM,KAAK2mC,EAAEg3hB,UAAU,KAAKh3hB,EAAEgpf,QAAQ,KAAK,IAAIhpf,EAAE+6E,MAAoB,QAAd96E,EAAED,EAAEuohB,oBAA4BtohB,EAAEqxhB,WAAWrxhB,EAAEsxhB,WAAWtxhB,EAAE4vhB,WAAW5vhB,EAAEuxhB,WAAWvxhB,EAAEwxhB,MAAMzxhB,EAAEuohB,UAAU,KAAKvohB,EAAEu4F,OAAO,KAAKv4F,EAAEuzhB,aAAa,KAAKvzhB,EAAEu3hB,cAAc,KAAKv3hB,EAAEyohB,cAAc,KAAKzohB,EAAEk3hB,aAAa,KAAKl3hB,EAAEuohB,UAAU,KAAKvohB,EAAE+zhB,YAAY,KAAK,SAASmO,GAAGliiB,GAAG,OAAO,IAAIA,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,IACld,SAASond,GAAGniiB,GAAGA,EAAE,OAAO,CAAC,KAAK,OAAOA,EAAEgpf,SAAS,CAAC,GAAG,OAAOhpf,EAAEu4F,QAAQ2pc,GAAGliiB,EAAEu4F,QAAQ,OAAO,KAAKv4F,EAAEA,EAAEu4F,OAAiC,IAA1Bv4F,EAAEgpf,QAAQzwZ,OAAOv4F,EAAEu4F,OAAWv4F,EAAEA,EAAEgpf,QAAQ,IAAIhpf,EAAE+6E,KAAK,IAAI/6E,EAAE+6E,KAAK,KAAK/6E,EAAE+6E,KAAK,CAAC,GAAW,EAAR/6E,EAAE88D,MAAQ,SAAS98D,EAAE,GAAG,OAAOA,EAAE3mC,OAAO,IAAI2mC,EAAE+6E,IAAI,SAAS/6E,EAAOA,EAAE3mC,MAAMk/H,OAAOv4F,EAAEA,EAAEA,EAAE3mC,MAAM,KAAa,EAAR2mC,EAAE88D,OAAS,OAAO98D,EAAEuohB,WAC/S,SAAS6Z,GAAGpiiB,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAEu4F,OAAO,OAAOt4F,GAAG,CAAC,GAAGiiiB,GAAGjiiB,GAAG,MAAMD,EAAEC,EAAEA,EAAEs4F,OAAO,MAAM3oG,MAAM+hD,EAAE,MAAO,IAAI57E,EAAEkqC,EAAE,OAAOlqC,EAAEglH,KAAK,KAAK,EAAE96E,EAAElqC,EAAEwyjB,UAAkB,GAARxyjB,EAAE+mG,QAAWknM,GAAG/jQ,EAAE,IAAIlqC,EAAE+mG,QAAQ,IAAYule,GAAGriiB,EAAXjqC,EAAEoskB,GAAGniiB,GAAUC,GAAG,MAAM,KAAK,EAAE,KAAK,EAAEA,EAAElqC,EAAEwyjB,UAAU4B,cAAsBmY,GAAGtiiB,EAAXjqC,EAAEoskB,GAAGniiB,GAAUC,GAAG,MAAM,QAAQ,MAAMrQ,MAAM+hD,EAAE,OAChS,SAAS2wf,GAAGtiiB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAE+6E,IAAI,GAAG,IAAI1jB,GAAG,IAAIA,EAAEr3D,EAAEA,EAAEuohB,UAAUtohB,EAAE,IAAIlqC,EAAEw/D,SAASx/D,EAAE4O,WAAWw3G,aAAan8E,EAAEC,GAAGlqC,EAAEomH,aAAan8E,EAAEC,IAAI,IAAIlqC,EAAEw/D,UAAUt1B,EAAElqC,EAAE4O,YAAaw3G,aAAan8E,EAAEjqC,IAAKkqC,EAAElqC,GAAIg8D,YAAY/xB,GAA4B,QAAxBjqC,EAAEA,EAAEwskB,2BAA8B,IAASxskB,GAAG,OAAOkqC,EAAEsjG,UAAUtjG,EAAEsjG,QAAQktb,UAAU,GAAG,IAAIp5d,GAAc,QAAVr3D,EAAEA,EAAE3mC,OAAgB,IAAIipkB,GAAGtiiB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAEgpf,QAAQ,OAAOhpf,GAAGsiiB,GAAGtiiB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAEgpf,QACnX,SAASq5C,GAAGriiB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAE+6E,IAAI,GAAG,IAAI1jB,GAAG,IAAIA,EAAEr3D,EAAEA,EAAEuohB,UAAUtohB,EAAElqC,EAAEomH,aAAan8E,EAAEC,GAAGlqC,EAAEg8D,YAAY/xB,QAAQ,GAAG,IAAIq3D,GAAc,QAAVr3D,EAAEA,EAAE3mC,OAAgB,IAAIgpkB,GAAGriiB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAEgpf,QAAQ,OAAOhpf,GAAGqiiB,GAAGriiB,EAAEC,EAAElqC,GAAGiqC,EAAEA,EAAEgpf,QAC1L,SAASg5C,GAAGhiiB,EAAEC,EAAElqC,GAAG,IAAI,IAAa+wG,EAAE/lD,EAAXs2C,EAAEp3D,EAAEllD,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEs8G,EAAEkhC,OAAOv4F,EAAE,OAAO,CAAC,GAAG,OAAOjlD,EAAE,MAAM60C,MAAM+hD,EAAE,MAAoB,OAAdm1B,EAAE/rH,EAAEwtkB,UAAiBxtkB,EAAEggI,KAAK,KAAK,EAAEh6D,GAAE,EAAG,MAAM/gB,EAAE,KAAK,EAAiC,KAAK,EAAE8mE,EAAEA,EAAEqjd,cAAcppgB,GAAE,EAAG,MAAM/gB,EAAEjlD,EAAEA,EAAEw9I,OAAOx9I,GAAE,EAAG,GAAG,IAAIs8G,EAAE0jB,KAAK,IAAI1jB,EAAE0jB,IAAI,CAAC/6E,EAAE,IAAI,IAAI+jG,EAAE/jG,EAAEkS,EAAEmlD,EAAE5sB,EAAE10E,EAAEi8C,EAAEE,IAAI,GAAG4vhB,GAAG/9b,EAAE/xF,EAAEy4B,GAAG,OAAOz4B,EAAE34C,OAAO,IAAI24C,EAAE+oE,IAAI/oE,EAAE34C,MAAMk/H,OAAOvmF,EAAEA,EAAEA,EAAE34C,UAAU,CAAC,GAAG24C,IAAIE,EAAE,MAAMlS,EAAE,KAAK,OAAOgS,EAAEg3e,SAAS,CAAC,GAAG,OAAOh3e,EAAEumF,QAAQvmF,EAAEumF,SAASrmF,EAAE,MAAMlS,EAAEgS,EAAEA,EAAEumF,OAAOvmF,EAAEg3e,QAAQzwZ,OAAOvmF,EAAEumF,OAAOvmF,EAAEA,EAAEg3e,QAAQjoe,GAAGgjF,EACrfj9B,EAAE50D,EAAEmlD,EAAEkxd,UAAU,IAAIxkb,EAAExuE,SAASwuE,EAAEp/H,WAAW+iC,YAAYwK,GAAG6xF,EAAEr8F,YAAYwK,IAAI40D,EAAEp/D,YAAY2vD,EAAEkxd,gBAAgB,GAAG,KAAKlxd,EAAE0jB,IAAIh6D,GAAGgjF,EAAEj9B,EAAE50D,EAAEmlD,EAAEkxd,UAAU,IAAIxkb,EAAExuE,SAAS27f,GAAGntb,EAAEp/H,WAAWutC,GAAG,IAAI6xF,EAAExuE,UAAU27f,GAAGntb,EAAE7xF,GAAG4zf,GAAG/ha,IAAImtb,GAAGpqd,EAAEzP,EAAEkxd,gBAAgB,GAAG,IAAIlxd,EAAE0jB,KAAK,GAAG,OAAO1jB,EAAEh+F,MAAM,CAACytG,EAAEzP,EAAEkxd,UAAU4B,cAAcppgB,GAAE,EAAGs2C,EAAEh+F,MAAMk/H,OAAOlhC,EAAEA,EAAEA,EAAEh+F,MAAM,eAAe,GAAGyokB,GAAG9hiB,EAAEq3D,EAAEthG,GAAG,OAAOshG,EAAEh+F,MAAM,CAACg+F,EAAEh+F,MAAMk/H,OAAOlhC,EAAEA,EAAEA,EAAEh+F,MAAM,SAAS,GAAGg+F,IAAIp3D,EAAE,MAAM,KAAK,OAAOo3D,EAAE2xb,SAAS,CAAC,GAAG,OAAO3xb,EAAEkhC,QAAQlhC,EAAEkhC,SAASt4F,EAAE,OAAkB,KAAXo3D,EAAEA,EAAEkhC,QAAaxd,MACpfhgI,GAAE,GAAIs8G,EAAE2xb,QAAQzwZ,OAAOlhC,EAAEkhC,OAAOlhC,EAAEA,EAAE2xb,SACrC,SAASw5C,GAAGxiiB,EAAEC,GAAG,OAAOA,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA6C,OAA1C4md,GAAG,EAAE1hiB,EAAEA,EAAEs4F,QAAQqpc,GAAG,EAAE3hiB,QAAG0hiB,GAAG,EAAE1hiB,EAAEA,EAAEs4F,QAAe,KAAK,EACyW,KAAK,GACtc,KAAK,GAAG,OAFyF,KAAK,EAAE,IAAIxiI,EAAEkqC,EAAEsohB,UAAU,GAAG,MAAMxyjB,EAAE,CAAC,IAAIshG,EAAEp3D,EAAEs3hB,cAAcx8kB,EAAE,OAAOilD,EAAEA,EAAEu3hB,cAAclge,EAAEr3D,EAAEC,EAAE/hC,KAAK,IAAI4oG,EAAE7mE,EAAE8zhB,YAA+B,GAAnB9zhB,EAAE8zhB,YAAY,KAAQ,OAAOjtd,EAAE,CAAwE,IAAvE,UAAU9mE,GAAG,UAAUq3D,EAAEn5F,MAAM,MAAMm5F,EAAEtvG,MAAM6hjB,EAAG7ziB,EAAEshG,GAAG8xc,GAAGnpgB,EAAEjlD,GAAGklD,EAAEkpgB,GAAGnpgB,EAAEq3D,GAAOt8G,EAAE,EAAEA,EAAE+rH,EAAEjsH,OAAOE,GAAG,EAAE,CAAC,IAAIgmE,EAAE+lD,EAAE/rH,GAAGgpJ,EAAEj9B,EAAE/rH,EAAE,GAAG,UAAUgmE,EAAE4yf,GAAG59iB,EAAEguI,GAAG,4BAA4BhjF,EAAEomF,GAAGpxI,EAAEguI,GAAG,aAAahjF,EAAEijP,GAAGjuS,EAAEguI,GAAG++Z,EAAG/siB,EAAEgrD,EAAEgjF,EAAE9jG,GAAG,OAAOD,GAAG,IAAK,QAAQiqgB,EAAGl0iB,EAC7fshG,GAAG,MAAM,IAAK,WAAWixc,GAAGvyiB,EAAEshG,GAAG,MAAM,IAAK,SAASr3D,EAAEjqC,EAAE4wjB,cAAcgY,YAAY5okB,EAAE4wjB,cAAcgY,cAActne,EAAEuoW,SAAmB,OAAV94V,EAAEzP,EAAEl7G,OAAcomI,GAAGxsH,IAAIshG,EAAEuoW,SAAS94V,GAAE,GAAI9mE,MAAMq3D,EAAEuoW,WAAW,MAAMvoW,EAAEvoE,aAAayzF,GAAGxsH,IAAIshG,EAAEuoW,SAASvoW,EAAEvoE,cAAa,GAAIyzF,GAAGxsH,IAAIshG,EAAEuoW,SAASvoW,EAAEuoW,SAAS,GAAG,IAAG,IAAK7pc,EAAEw7jB,IAAIl6d,GAAG,OAAO,KAAK,EAAE,GAAG,OAAOp3D,EAAEsohB,UAAU,MAAM34hB,MAAM+hD,EAAE,MAA4C,YAAtC1xC,EAAEsohB,UAAUnrd,UAAUn9D,EAAEs3hB,eAAqB,KAAK,EAAwE,YAAtE,OAAOv3hB,GAAGA,EAAEyohB,cAAcyB,cAAcpkB,GAAG7lgB,EAAEsohB,UAAU4B,gBAAqC,KAAK,GAC1e,KAAK,GAAS,YAANsY,GAAGxiiB,GAAyB,MAAMrQ,MAAM+hD,EAAE,MAAO,SAAS8wf,GAAGziiB,GAAG,IAAIC,EAAED,EAAE+zhB,YAAY,GAAG,OAAO9zhB,EAAE,CAACD,EAAE+zhB,YAAY,KAAK,IAAIh+jB,EAAEiqC,EAAEuohB,UAAU,OAAOxyjB,IAAIA,EAAEiqC,EAAEuohB,UAAU,IAAI8Y,IAAIphiB,EAAEzlD,SAAQ,SAASylD,GAAG,IAAIo3D,EAAEqre,GAAG19kB,KAAK,KAAKg7C,EAAEC,GAAGlqC,EAAEqe,IAAI6rB,KAAKlqC,EAAEla,IAAIokD,GAAGA,EAAElH,KAAKs+D,EAAEA,QAKrI,SAASsre,GAAG3iiB,EAAEC,EAAElqC,GAAG06S,GAAEzwQ,EAAE4iiB,GAAG5iiB,EAAEC,EAAElqC,GAC1J,SAAS6skB,GAAG5iiB,EAAEC,EAAElqC,GAAG,IAAI,IAAIshG,EAAE,KAAY,EAAPr3D,EAAE4e,MAAQ,OAAO6xP,IAAG,CAAC,IAAI11T,EAAE01T,GAAE3pM,EAAE/rH,EAAEse,MAAM,GAAG,KAAKte,EAAEggI,KAAK1jB,EAAE,CAAC,IAAIt2C,EAAE,OAAOhmE,EAAE0tkB,eAAe0Y,GAAG,IAAIpghB,EAAE,CAAC,IAAIgjF,EAAEhpJ,EAAEytkB,UAAUt2gB,EAAE,OAAO6xF,GAAG,OAAOA,EAAE0kb,eAAe2Y,GAAGr9b,EAAEo9b,GAAG,IAAI12f,EAAE22f,GAAQ,GAALD,GAAGpghB,GAAMqghB,GAAGlvhB,KAAKu4B,EAAE,IAAIgmO,GAAE11T,EAAE,OAAO01T,IAAOv+P,GAAJ6O,EAAE0vP,IAAMp3S,MAAM,KAAK0nD,EAAEg6D,KAAK,OAAOh6D,EAAE0ngB,cAAcoa,GAAG9nlB,GAAG,OAAOm3D,GAAGA,EAAEqmF,OAAOx3E,EAAE0vP,GAAEv+P,GAAG2whB,GAAG9nlB,GAAG,KAAK,OAAO+rH,GAAG2pM,GAAE3pM,EAAE87d,GAAG97d,EAAE7mE,EAAElqC,GAAG+wG,EAAEA,EAAEkib,QAAQv4O,GAAE11T,EAAEomlB,GAAGp9b,EAAEq9b,GAAG32f,EAAEs1N,GAAG//P,QAAY,KAAoB,KAAfjlD,EAAEwjlB,eAAoB,OAAOz3d,GAAGA,EAAEyxB,OAAOx9I,EAAE01T,GAAE3pM,GAAGi5L,GAAG//P,IACpc,SAAS+/P,GAAG//P,GAAG,KAAK,OAAOywQ,IAAG,CAAC,IAAIxwQ,EAAEwwQ,GAAE,GAAG,KAAa,KAARxwQ,EAAE68D,OAAY,CAAC,IAAI/mG,EAAEkqC,EAAEuohB,UAAU,IAAI,GAAG,KAAa,KAARvohB,EAAE68D,OAAY,OAAO78D,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAGqmd,IAAIQ,GAAG,EAAE3hiB,GAAG,MAAM,KAAK,EAAE,IAAIo3D,EAAEp3D,EAAEsohB,UAAU,GAAW,EAARtohB,EAAE68D,QAAUske,GAAG,GAAG,OAAOrrkB,EAAEshG,EAAEyhb,wBAAwB,CAAC,IAAI/9hB,EAAEklD,EAAE82hB,cAAc92hB,EAAE/hC,KAAKnI,EAAEwhkB,cAAcxE,GAAG9yhB,EAAE/hC,KAAKnI,EAAEwhkB,eAAelge,EAAE6lb,mBAAmBniiB,EAAEgb,EAAE0yjB,cAAcpxd,EAAEyre,qCAAqC,IAAIh8d,EAAE7mE,EAAE8zhB,YAAY,OAAOjtd,GAAG4td,GAAGz0hB,EAAE6mE,EAAEzP,GAAG,MAAM,KAAK,EAAE,IAAIt2C,EAAE9gB,EAAE8zhB,YAAY,GAAG,OAAOhzgB,EAAE,CAAQ,GAAPhrD,EAAE,KAAQ,OAAOkqC,EAAE5mC,MAAM,OAAO4mC,EAAE5mC,MAAM0hH,KAAK,KAAK,EACzf,KAAK,EAAEhlH,EAAEkqC,EAAE5mC,MAAMkvjB,UAAUmM,GAAGz0hB,EAAE8gB,EAAEhrD,GAAG,MAAM,KAAK,EAAE,IAAIguI,EAAE9jG,EAAEsohB,UAAU,GAAG,OAAOxyjB,GAAW,EAARkqC,EAAE68D,MAAQ,CAAC/mG,EAAEguI,EAAE,IAAI7xF,EAAEjS,EAAEs3hB,cAAc,OAAOt3hB,EAAE/hC,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWg0C,EAAE0shB,WAAW7okB,EAAEza,QAAQ,MAAM,IAAK,MAAM42D,EAAEiK,MAAMpmD,EAAEomD,IAAIjK,EAAEiK,MAAM,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAyJ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAxL,KAAK,GAAG,GAAG,OAAOlc,EAAEwohB,cAAc,CAAC,IAAIh+e,EAAExqC,EAAEuohB,UAAU,GAAG,OAAO/9e,EAAE,CAAC,IAAIz4B,EAAEy4B,EAAEg+e,cAAc,GAAG,OAAOz2gB,EAAE,CAAC,IAAIgyF,EAAEhyF,EAAE02gB,WAAW,OAAO1kb,GAAG8ha,GAAG9ha,KAAK,MAC5c,QAAQ,MAAMp0G,MAAM+hD,EAAE,MAAOyvf,IAAY,IAARnhiB,EAAE68D,OAAW+ke,GAAG5hiB,GAAG,MAAM8oJ,GAAGy4Y,GAAGvhiB,EAAEA,EAAEs4F,OAAOwwD,IAAI,GAAG9oJ,IAAID,EAAE,CAACywQ,GAAE,KAAK,MAAkB,GAAG,QAAf16S,EAAEkqC,EAAE+of,SAAoB,CAACjzhB,EAAEwiI,OAAOt4F,EAAEs4F,OAAOk4K,GAAE16S,EAAE,MAAM06S,GAAExwQ,EAAEs4F,QAAQ,SAASwqc,GAAG/iiB,GAAG,KAAK,OAAOywQ,IAAG,CAAC,IAAIxwQ,EAAEwwQ,GAAE,GAAGxwQ,IAAID,EAAE,CAACywQ,GAAE,KAAK,MAAM,IAAI16S,EAAEkqC,EAAE+of,QAAQ,GAAG,OAAOjzhB,EAAE,CAACA,EAAEwiI,OAAOt4F,EAAEs4F,OAAOk4K,GAAE16S,EAAE,MAAM06S,GAAExwQ,EAAEs4F,QAClS,SAASsqc,GAAG7iiB,GAAG,KAAK,OAAOywQ,IAAG,CAAC,IAAIxwQ,EAAEwwQ,GAAE,IAAI,OAAOxwQ,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAIhlH,EAAEkqC,EAAEs4F,OAAO,IAAIqpc,GAAG,EAAE3hiB,GAAG,MAAMiS,GAAGsvhB,GAAGvhiB,EAAElqC,EAAEm8C,GAAG,MAAM,KAAK,EAAE,IAAImlD,EAAEp3D,EAAEsohB,UAAU,GAAG,oBAAoBlxd,EAAEyhb,kBAAkB,CAAC,IAAI/9hB,EAAEklD,EAAEs4F,OAAO,IAAIlhC,EAAEyhb,oBAAoB,MAAM5me,GAAGsvhB,GAAGvhiB,EAAEllD,EAAEm3D,IAAI,IAAI40D,EAAE7mE,EAAEs4F,OAAO,IAAIspc,GAAG5hiB,GAAG,MAAMiS,GAAGsvhB,GAAGvhiB,EAAE6mE,EAAE50D,GAAG,MAAM,KAAK,EAAE,IAAI6O,EAAE9gB,EAAEs4F,OAAO,IAAIspc,GAAG5hiB,GAAG,MAAMiS,GAAGsvhB,GAAGvhiB,EAAE8gB,EAAE7O,KAAK,MAAMA,GAAGsvhB,GAAGvhiB,EAAEA,EAAEs4F,OAAOrmF,GAAG,GAAGjS,IAAID,EAAE,CAACywQ,GAAE,KAAK,MAAM,IAAI1sK,EAAE9jG,EAAE+of,QAAQ,GAAG,OAAOjlZ,EAAE,CAACA,EAAExL,OAAOt4F,EAAEs4F,OAAOk4K,GAAE1sK,EAAE,MAAM0sK,GAAExwQ,EAAEs4F,QAC3d,IAwBkNyqc,GAxB9MC,GAAG/ikB,KAAK+iK,KAAKiga,GAAG5nR,EAAG49Q,uBAAuBiK,GAAG7nR,EAAG8jR,kBAAkBgE,GAAG9nR,EAAG8uQ,wBAAwB9nB,GAAE,EAAEY,GAAE,KAAKV,GAAE,KAAK9xP,GAAE,EAAEwuR,GAAG,EAAEa,GAAGnO,GAAG,GAAGrvB,GAAE,EAAE8gC,GAAG,KAAK5O,GAAG,EAAE6O,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,KAAKC,GAAG,EAAE3E,GAAGt9e,EAAAA,EAASg8e,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKv6R,IAAG,EAAGqgS,GAAG,KAAKh/R,GAAG,EAAEi/R,GAAG,EAAEhqiB,GAAG,KAAKiqiB,IAAI,EAAEC,GAAG,EAAE,SAAS9zR,KAAI,OAAO,KAAO,EAAFsyP,IAAKkB,MAAK,IAAIqgC,GAAGA,GAAGA,GAAGrgC,KACrT,SAASyxB,GAAGj1hB,GAAG,OAAG,KAAY,EAAPA,EAAE4e,MAAe,EAAK,KAAO,EAAF0jf,KAAM,IAAI5xP,GAASA,IAAGA,GAAK,OAAOoiR,GAAGtzW,YAAkB,IAAIskX,KAAK9jiB,EAAEqwgB,GAAU,KAAQ,SAAfA,KAAK,MAAqBA,GAAG,IAAIyzB,GAAG9jiB,GAAG8jiB,IAAU,KAAP9jiB,EAAEkwQ,IAAkBlwQ,EAAiBA,OAAE,KAAjBA,EAAEhgC,OAAOjL,OAAmB,GAAG+ziB,GAAG9ogB,EAAE9hC,MAAe,SAASg3jB,GAAGl1hB,EAAEC,EAAElqC,GAAG,GAAG,GAAG6tkB,GAAG,MAAMA,GAAG,EAAEhqiB,GAAG,KAAKhK,MAAM+hD,EAAE,MAAM,IAAI0lB,EAAE0se,GAAG/jiB,EAAEC,GAAG,OAAG,OAAOo3D,EAAS,MAAK0sc,GAAG1sc,EAAEp3D,EAAElqC,GAAM,KAAO,EAAFusiB,KAAMjrc,IAAI6rc,KAAE7rc,IAAI6rc,KAAI,KAAO,EAAFZ,MAAOghC,IAAIrjiB,GAAG,IAAIsigB,IAAGj8P,GAAGjvM,EAAEq5M,KAAI3J,GAAG1vM,EAAEthG,GAAG,IAAIkqC,GAAG,IAAIqigB,IAAG,KAAY,EAAPtigB,EAAE4e,QAAUmghB,GAAGv7B,KAAI,IAAImvB,IAAIE,OAAax7d,GACzd,SAAS0se,GAAG/jiB,EAAEC,GAAGD,EAAEyzhB,OAAOxzhB,EAAE,IAAIlqC,EAAEiqC,EAAEwohB,UAAqC,IAA3B,OAAOzyjB,IAAIA,EAAE09jB,OAAOxzhB,GAAGlqC,EAAEiqC,EAAMA,EAAEA,EAAEu4F,OAAO,OAAOv4F,GAAGA,EAAEqzhB,YAAYpzhB,EAAgB,QAAdlqC,EAAEiqC,EAAEwohB,aAAqBzyjB,EAAEs9jB,YAAYpzhB,GAAGlqC,EAAEiqC,EAAEA,EAAEA,EAAEu4F,OAAO,OAAO,IAAIxiI,EAAEglH,IAAIhlH,EAAEwyjB,UAAU,KACxM,SAASxhR,GAAG/mQ,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEgkiB,cA5MzB,SAAYhkiB,EAAEC,GAAG,IAAI,IAAIlqC,EAAEiqC,EAAEyphB,eAAepyd,EAAEr3D,EAAE0phB,YAAY3ukB,EAAEilD,EAAEikiB,gBAAgBn9d,EAAE9mE,EAAEwphB,aAAa,EAAE1id,GAAG,CAAC,IAAI/lD,EAAE,GAAGonf,GAAGrhc,GAAGi9B,EAAE,GAAGhjF,EAAE7O,EAAEn3D,EAAEgmE,IAAO,IAAI7O,EAAM,KAAK6xF,EAAEhuI,IAAI,KAAKguI,EAAE1sC,KAAGt8G,EAAEgmE,GAAG45G,GAAG52B,EAAE9jG,IAAQiS,GAAGjS,IAAID,EAAEkkiB,cAAcngc,GAAGj9B,IAAIi9B,GA4MjLsqa,CAAGrugB,EAAEC,GAAG,IAAIo3D,EAAE+xc,GAAGppgB,EAAEA,IAAIkjgB,GAAExyP,GAAE,GAAG,GAAG,IAAIr5M,EAAE,OAAOthG,GAAG84iB,GAAG94iB,GAAGiqC,EAAEgkiB,aAAa,KAAKhkiB,EAAEmkiB,iBAAiB,OAAO,GAAGlkiB,EAAEo3D,GAAGA,EAAEr3D,EAAEmkiB,mBAAmBlkiB,EAAE,CAAgB,GAAf,MAAMlqC,GAAG84iB,GAAG94iB,GAAM,IAAIkqC,EAAE,IAAID,EAAE+6E,IA7IsJ,SAAY/6E,GAAG2yhB,IAAG,EAAGpyR,GAAGvgQ,GA6I1KokiB,CAAGj9R,GAAGniT,KAAK,KAAKg7C,IAAIugQ,GAAG4G,GAAGniT,KAAK,KAAKg7C,IAAI+whB,IAAG,WAAW,IAAIzuB,IAAGuwB,QAAO98jB,EAAE,SAAS,CAAC,OAAO00iB,GAAGpzc,IAAI,KAAK,EAAEthG,EAAEwziB,GAAG,MAAM,KAAK,EAAExziB,EAAEu9iB,GAAG,MAAM,KAAK,GAAwC,QAAQv9iB,EAAE8kK,SAApC,KAAK,UAAU9kK,EAAEs9iB,GAAsBt9iB,EAAEsukB,GAAGtukB,EAAEuukB,GAAGt/kB,KAAK,KAAKg7C,IAAIA,EAAEmkiB,iBAAiBlkiB,EAAED,EAAEgkiB,aAAajukB,GACvc,SAASuukB,GAAGtkiB,EAAEC,GAAc,GAAX4jiB,IAAI,EAAEC,GAAG,EAAK,KAAO,EAAFxhC,IAAK,MAAM1ygB,MAAM+hD,EAAE,MAAM,IAAI57E,EAAEiqC,EAAEgkiB,aAAa,GAAGO,MAAMvkiB,EAAEgkiB,eAAejukB,EAAE,OAAO,KAAK,IAAIshG,EAAE+xc,GAAGppgB,EAAEA,IAAIkjgB,GAAExyP,GAAE,GAAG,GAAG,IAAIr5M,EAAE,OAAO,KAAK,GAAG,KAAO,GAAFA,IAAO,KAAKA,EAAEr3D,EAAEkkiB,eAAejkiB,EAAEA,EAAEukiB,GAAGxkiB,EAAEq3D,OAAO,CAACp3D,EAAEo3D,EAAE,IAAIt8G,EAAEunjB,GAAEA,IAAG,EAAE,IAAIx7b,EAAE29d,KAAwC,IAAhCvhC,KAAIljgB,GAAG0wQ,KAAIzwQ,IAAE8+hB,GAAGv7B,KAAI,IAAIkhC,GAAG1kiB,EAAEC,MAAM,IAAI0kiB,KAAK,MAAM,MAAM5gc,GAAG6gc,GAAG5kiB,EAAE+jG,GAAYovb,KAAK+P,GAAGrqW,QAAQ/xH,EAAEw7b,GAAEvnjB,EAAE,OAAOynjB,GAAEvigB,EAAE,GAAGijgB,GAAE,KAAKxyP,GAAE,EAAEzwQ,EAAEsigB,IAAG,GAAG,IAAItigB,EAAE,CAAyC,GAAxC,IAAIA,IAAY,KAARllD,EAAE2uJ,GAAG1pG,MAAWq3D,EAAEt8G,EAAEklD,EAAE4kiB,GAAG7kiB,EAAEjlD,KAAQ,IAAIklD,EAAE,MAAMlqC,EAAEstkB,GAAGqB,GAAG1kiB,EAAE,GAAGsmQ,GAAGtmQ,EAAEq3D,GAAG0vM,GAAG/mQ,EAAEwjgB,MAAKztiB,EAAE,GAAG,IAAIkqC,EAAEqmQ,GAAGtmQ,EAAEq3D,OAAO,CAC/d,GADget8G,EACpfilD,EAAE64L,QAAQ2vV,UAAa,KAAO,GAAFnxd,KAEsB,SAAYr3D,GAAG,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAW,MAARC,EAAE68D,MAAY,CAAC,IAAI/mG,EAAEkqC,EAAE8zhB,YAAY,GAAG,OAAOh+jB,GAAe,QAAXA,EAAEA,EAAEolkB,QAAiB,IAAI,IAAI9je,EAAE,EAAEA,EAAEthG,EAAElb,OAAOw8G,IAAI,CAAC,IAAIt8G,EAAEgb,EAAEshG,GAAGyP,EAAE/rH,EAAE+/kB,YAAY//kB,EAAEA,EAAEoB,MAAM,IAAI,IAAIixkB,GAAGtmd,IAAI/rH,GAAG,OAAM,EAAG,MAAMgmE,GAAG,OAAM,IAAe,GAAVhrD,EAAEkqC,EAAE5mC,MAAwB,MAAf4mC,EAAEs+hB,cAAoB,OAAOxokB,EAAEA,EAAEwiI,OAAOt4F,EAAEA,EAAElqC,MAAM,CAAC,GAAGkqC,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE+of,SAAS,CAAC,GAAG,OAAO/of,EAAEs4F,QAAQt4F,EAAEs4F,SAASv4F,EAAE,OAAM,EAAGC,EAAEA,EAAEs4F,OAAOt4F,EAAE+of,QAAQzwZ,OAAOt4F,EAAEs4F,OAAOt4F,EAAEA,EAAE+of,SAAS,OAAM,EAF9a87C,CAAG/plB,KAAe,KAAVklD,EAAEukiB,GAAGxkiB,EAAEq3D,MAAmB,KAARyP,EAAE4iC,GAAG1pG,MAAWq3D,EAAEyP,EAAE7mE,EAAE4kiB,GAAG7kiB,EAAE8mE,KAAK,IAAI7mE,GAAG,MAAMlqC,EAAEstkB,GAAGqB,GAAG1kiB,EAAE,GAAGsmQ,GAAGtmQ,EAAEq3D,GAAG0vM,GAAG/mQ,EAAEwjgB,MAAKztiB,EAAqC,OAAnCiqC,EAAE+kiB,aAAahqlB,EAAEilD,EAAEgliB,cAAc3te,EAASp3D,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMrQ,MAAM+hD,EAAE,MAAM,KAAK,EACqB,KAAK,EAAEszf,GAAGjliB,EAAEyjiB,IAAI,MADpB,KAAK,EAAU,GAARn9R,GAAGtmQ,EAAEq3D,IAAS,UAAFA,KAAeA,GAAiB,IAAbp3D,EAAEyjiB,GAAG,IAAIlgC,MAAU,CAAC,GAAG,IAAI4F,GAAGppgB,EAAE,GAAG,MAAyB,KAAnBjlD,EAAEilD,EAAEyphB,gBAAqBpyd,KAAKA,EAAE,CAAC24M,KAAIhwQ,EAAE0phB,aAAa1phB,EAAEyphB,eAAe1ukB,EAAE,MAAMilD,EAAEkliB,cAActU,GAAGqU,GAAGjglB,KAAK,KAAKg7C,EAAEyjiB,IAAIxjiB,GAAG,MAAMgliB,GAAGjliB,EAAEyjiB,IAAI,MAAM,KAAK,EAAU,GAARn9R,GAAGtmQ,EAAEq3D,IAAS,QAAFA,KAAaA,EAAE,MAChe,IADsep3D,EACnfD,EAAE6phB,WAAe9ukB,GAAG,EAAE,EAAEs8G,GAAG,CAAC,IAAIt2C,EAAE,GAAGonf,GAAG9wc,GAAGyP,EAAE,GAAG/lD,GAAEA,EAAE9gB,EAAE8gB,IAAKhmE,IAAIA,EAAEgmE,GAAGs2C,IAAIyP,EAAsG,GAApGzP,EAAEt8G,EAAqG,IAA3Fs8G,GAAG,KAAXA,EAAEmsc,KAAInsc,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAK4re,GAAG5re,EAAE,OAAOA,GAAU,CAACr3D,EAAEkliB,cAActU,GAAGqU,GAAGjglB,KAAK,KAAKg7C,EAAEyjiB,IAAIpse,GAAG,MAAM4te,GAAGjliB,EAAEyjiB,IAAI,MAA4B,QAAQ,MAAM7ziB,MAAM+hD,EAAE,QAAmB,OAAVo1N,GAAG/mQ,EAAEwjgB,MAAYxjgB,EAAEgkiB,eAAejukB,EAAEuukB,GAAGt/kB,KAAK,KAAKg7C,GAAG,KAAK,SAAS6kiB,GAAG7kiB,EAAEC,GAAG,IAAIlqC,EAAEytkB,GAA2G,OAAxGxjiB,EAAE64L,QAAQ4vV,cAAcyB,eAAewa,GAAG1kiB,EAAEC,GAAG68D,OAAO,KAAe,KAAV98D,EAAEwkiB,GAAGxkiB,EAAEC,MAAWA,EAAEwjiB,GAAGA,GAAG1tkB,EAAE,OAAOkqC,GAAGy+hB,GAAGz+hB,IAAWD,EAC5e,SAAS0+hB,GAAG1+hB,GAAG,OAAOyjiB,GAAGA,GAAGzjiB,EAAEyjiB,GAAGtolB,KAAKolB,MAAMkjkB,GAAGzjiB,GAC/C,SAASsmQ,GAAGtmQ,EAAEC,GAAuD,IAApDA,IAAIsjiB,GAAGtjiB,IAAIqjiB,GAAGtjiB,EAAEyphB,gBAAgBxphB,EAAED,EAAE0phB,cAAczphB,EAAMD,EAAEA,EAAEikiB,gBAAgB,EAAEhkiB,GAAG,CAAC,IAAIlqC,EAAE,GAAGoyiB,GAAGlogB,GAAGo3D,EAAE,GAAGthG,EAAEiqC,EAAEjqC,IAAI,EAAEkqC,IAAIo3D,GAAG,SAAS8vM,GAAGnnQ,GAAG,GAAG,KAAO,EAAFsigB,IAAK,MAAM1ygB,MAAM+hD,EAAE,MAAM4yf,KAAK,IAAItkiB,EAAEmpgB,GAAGppgB,EAAE,GAAG,GAAG,KAAO,EAAFC,GAAK,OAAO8mQ,GAAG/mQ,EAAEwjgB,MAAK,KAAK,IAAIztiB,EAAEyukB,GAAGxkiB,EAAEC,GAAG,GAAG,IAAID,EAAE+6E,KAAK,IAAIhlH,EAAE,CAAC,IAAIshG,EAAEqyC,GAAG1pG,GAAG,IAAIq3D,IAAIp3D,EAAEo3D,EAAEthG,EAAE8ukB,GAAG7kiB,EAAEq3D,IAAI,GAAG,IAAIthG,EAAE,MAAMA,EAAEstkB,GAAGqB,GAAG1kiB,EAAE,GAAGsmQ,GAAGtmQ,EAAEC,GAAG8mQ,GAAG/mQ,EAAEwjgB,MAAKztiB,EAAE,GAAG,IAAIA,EAAE,MAAM65B,MAAM+hD,EAAE,MAA8E,OAAxE3xC,EAAE+kiB,aAAa/kiB,EAAE64L,QAAQ2vV,UAAUxohB,EAAEgliB,cAAc/kiB,EAAEgliB,GAAGjliB,EAAEyjiB,IAAI18R,GAAG/mQ,EAAEwjgB,MAAY,KAChd,SAAS2hC,GAAGnliB,EAAEC,GAAG,IAAIlqC,EAAEusiB,GAAEA,IAAG,EAAE,IAAI,OAAOtigB,EAAEC,GAAb,QAA4B,KAAJqigB,GAAEvsiB,KAAUgpkB,GAAGv7B,KAAI,IAAImvB,IAAIE,OAAO,SAASuS,GAAGpliB,GAAG,OAAO2jiB,IAAI,IAAIA,GAAG5od,KAAK,KAAO,EAAFunb,KAAMiiC,KAAK,IAAItkiB,EAAEqigB,GAAEA,IAAG,EAAE,IAAIvsiB,EAAEqtkB,GAAG5jX,WAAWnoH,EAAE64M,GAAE,IAAI,GAAGkzR,GAAG5jX,WAAW,KAAK0wF,GAAE,EAAElwQ,EAAE,OAAOA,IAAvC,QAAmDkwQ,GAAE74M,EAAE+re,GAAG5jX,WAAWzpN,EAAM,KAAO,GAAXusiB,GAAErigB,KAAa4yhB,MAAM,SAASoM,KAAKC,GAAGa,GAAGlnW,QAAQkuU,GAAEg5B,IAC7S,SAAS2E,GAAG1kiB,EAAEC,GAAGD,EAAE+kiB,aAAa,KAAK/kiB,EAAEgliB,cAAc,EAAE,IAAIjvkB,EAAEiqC,EAAEkliB,cAAiD,IAAlC,IAAInvkB,IAAIiqC,EAAEkliB,eAAe,EAAErU,GAAG96jB,IAAO,OAAOysiB,GAAE,IAAIzsiB,EAAEysiB,GAAEjqa,OAAO,OAAOxiI,GAAG,CAAC,IAAIshG,EAAEthG,EAAQ,OAAN0gkB,GAAGp/d,GAAUA,EAAE0jB,KAAK,KAAK,EAA6B,QAA3B1jB,EAAEA,EAAEn5F,KAAKuugB,yBAA4B,IAASp1a,GAAG+6d,KAAK,MAAM,KAAK,EAAE91Q,KAAKyqP,GAAE+qB,IAAI/qB,GAAE9D,IAAG81B,KAAK,MAAM,KAAK,EAAEJ,GAAGthe,GAAG,MAAM,KAAK,EAAEilN,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGyqP,GAAEvugB,IAAG,MAAM,KAAK,GAAGyrQ,GAAG5sM,EAAEn5F,KAAKsvB,UAAU,MAAM,KAAK,GAAG,KAAK,GAAGyxiB,KAAKlpkB,EAAEA,EAAEwiI,OAA2E,GAApE2qa,GAAEljgB,EAAEwigB,GAAExigB,EAAE+3hB,GAAG/3hB,EAAE64L,QAAQ,MAAM63E,GAAEwuR,GAAGj/hB,EAAEsigB,GAAE,EAAE8gC,GAAG,KAAKE,GAAGD,GAAG7O,GAAG,EAAEgP,GAAGD,GAAG,KAAQ,OAAO3P,GAAG,CAAC,IAAI5zhB,EAC1f,EAAEA,EAAE4zhB,GAAGh5kB,OAAOolD,IAAI,GAA2B,QAAhBo3D,GAARthG,EAAE89jB,GAAG5zhB,IAAOk0hB,aAAqB,CAACp+jB,EAAEo+jB,YAAY,KAAK,IAAIp5kB,EAAEs8G,EAAEx+D,KAAKiuE,EAAE/wG,EAAE8wL,QAAQ,GAAG,OAAO//E,EAAE,CAAC,IAAI/lD,EAAE+lD,EAAEjuE,KAAKiuE,EAAEjuE,KAAK99C,EAAEs8G,EAAEx+D,KAAKkoB,EAAEhrD,EAAE8wL,QAAQxvF,EAAEw8d,GAAG,KAAK,OAAO7zhB,EAC1K,SAAS4kiB,GAAG5kiB,EAAEC,GAAG,OAAE,CAAC,IAAIlqC,EAAEysiB,GAAE,IAAuB,GAAnB2wB,KAAK8F,GAAGpgW,QAAQihW,GAAMT,GAAG,CAAC,IAAI,IAAIhie,EAAE44M,GAAEw4Q,cAAc,OAAOpxd,GAAG,CAAC,IAAIt8G,EAAEs8G,EAAEuiJ,MAAM,OAAO7+P,IAAIA,EAAE8rM,QAAQ,MAAMxvF,EAAEA,EAAEx+D,KAAKwgiB,IAAG,EAA8C,GAA3CD,GAAG,EAAE5pW,GAAE5lF,GAAEqmK,GAAE,KAAKqpR,IAAG,EAAGC,GAAG,EAAE4J,GAAGtqW,QAAQ,KAAQ,OAAO9iO,GAAG,OAAOA,EAAEwiI,OAAO,CAACgqa,GAAE,EAAE8gC,GAAGpjiB,EAAEuigB,GAAE,KAAK,MAAMxigB,EAAE,CAAC,IAAI8mE,EAAE9mE,EAAE+gB,EAAEhrD,EAAEwiI,OAAOwL,EAAEhuI,EAAEm8C,EAAEjS,EAAqB,GAAnBA,EAAEywQ,GAAE3sK,EAAEjnC,OAAO,MAAS,OAAO5qD,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEnZ,KAAK,CAAC,IAAI0xC,EAAEv4B,EAAEF,EAAE+xF,EAAEC,EAAEhyF,EAAE+oE,IAAI,GAAG,KAAY,EAAP/oE,EAAE4M,QAAU,IAAIolF,GAAG,KAAKA,GAAG,KAAKA,GAAG,CAAC,IAAI+kD,EAAE/2I,EAAEw2gB,UAAUz/X,GAAG/2I,EAAE+hhB,YAAYhrY,EAAEgrY,YAAY/hhB,EAAEy2gB,cAAc1/X,EAAE0/X,cACxez2gB,EAAEyhhB,MAAM1qY,EAAE0qY,QAAQzhhB,EAAE+hhB,YAAY,KAAK/hhB,EAAEy2gB,cAAc,MAAM,IAAIvwjB,EAAEgmkB,GAAGn9gB,GAAG,GAAG,OAAO7oD,EAAE,CAACA,EAAE4kG,QAAQ,IAAIqhe,GAAGjmkB,EAAE6oD,EAAEgjF,EAAEj9B,EAAE7mE,GAAU,EAAP/nC,EAAE0mD,MAAQm/gB,GAAGj3d,EAAEr8B,EAAExqC,GAAOiS,EAAEu4B,EAAE,IAAIx4B,GAAZhS,EAAE/nC,GAAc67jB,YAAY,GAAG,OAAO9hhB,EAAE,CAAC,IAAI7Q,EAAE,IAAI89D,IAAI99D,EAAEvlD,IAAIq2D,GAAGjS,EAAE8zhB,YAAY3yhB,OAAO6Q,EAAEp2D,IAAIq2D,GAAG,MAAMlS,EAAO,GAAG,KAAO,EAAFC,GAAK,CAAC89hB,GAAGj3d,EAAEr8B,EAAExqC,GAAG4+hB,KAAK,MAAM7+hB,EAAEkS,EAAEtiB,MAAM+hD,EAAE,WAAY,GAAGy6d,IAAU,EAAProa,EAAEnlF,KAAO,CAAC,IAAI6jD,EAAEy7d,GAAGn9gB,GAAG,GAAG,OAAO0hD,EAAE,CAAC,KAAa,MAARA,EAAE3F,SAAe2F,EAAE3F,OAAO,KAAKqhe,GAAG17d,EAAE1hD,EAAEgjF,EAAEj9B,EAAE7mE,GAAGw3hB,GAAGvlhB,GAAG,MAAMlS,GAAG8mE,EAAE50D,EAAE,IAAIqwf,KAAIA,GAAE,GAAG,OAAOihC,GAAGA,GAAG,CAAC18d,GAAG08d,GAAGrolB,KAAK2rH,GAAG50D,EAAEgrhB,GAAGhrhB,EAAE6xF,GAAGA,EAAEhjF,EAAE,EAAE,CAAC,OAAOgjF,EAAEhpB,KAAK,KAAK,EAAEgpB,EAAEjnC,OAAO,MAChf78D,IAAIA,EAAE8jG,EAAE0vb,OAAOxzhB,EAAkBs0hB,GAAGxwb,EAAby5b,GAAGz5b,EAAE7xF,EAAEjS,IAAW,MAAMD,EAAE,KAAK,EAAE8mE,EAAE50D,EAAE,IAAI4O,EAAEijF,EAAE7lI,KAAK3S,EAAEw4I,EAAEwkb,UAAU,GAAG,KAAa,IAARxkb,EAAEjnC,SAAa,oBAAoBh8C,EAAE+rd,0BAA0B,OAAOthhB,GAAG,oBAAoBA,EAAEqykB,oBAAoB,OAAOC,KAAKA,GAAGzpjB,IAAI7oB,KAAK,CAACw4I,EAAEjnC,OAAO,MAAM78D,IAAIA,EAAE8jG,EAAE0vb,OAAOxzhB,EAAkBs0hB,GAAGxwb,EAAb45b,GAAG55b,EAAEj9B,EAAE7mE,IAAW,MAAMD,GAAG+jG,EAAEA,EAAExL,aAAa,OAAOwL,GAAGshc,GAAGtvkB,GAAG,MAAM2sG,GAAGziE,EAAEyiE,EAAE8/b,KAAIzsiB,GAAG,OAAOA,IAAIysiB,GAAEzsiB,EAAEA,EAAEwiI,QAAQ,SAAS,OAAe,SAASksc,KAAK,IAAIzkiB,EAAEkjiB,GAAGrqW,QAAsB,OAAdqqW,GAAGrqW,QAAQihW,GAAU,OAAO95hB,EAAE85hB,GAAG95hB,EACld,SAAS6+hB,KAAQ,IAAIt8B,IAAG,IAAIA,IAAG,IAAIA,KAAEA,GAAE,GAAE,OAAOW,IAAG,KAAQ,UAAHuxB,KAAe,KAAQ,UAAH6O,KAAeh9R,GAAG48P,GAAExyP,IAAG,SAAS8zR,GAAGxkiB,EAAEC,GAAG,IAAIlqC,EAAEusiB,GAAEA,IAAG,EAAE,IAAIjrc,EAAEote,KAA2B,IAAtBvhC,KAAIljgB,GAAG0wQ,KAAIzwQ,GAAGykiB,GAAG1kiB,EAAEC,KAAM,IAAIqliB,KAAK,MAAM,MAAMvqlB,GAAG6plB,GAAG5kiB,EAAEjlD,GAAkC,GAAtBo4kB,KAAK7wB,GAAEvsiB,EAAEmtkB,GAAGrqW,QAAQxhI,EAAK,OAAOmrc,GAAE,MAAM5ygB,MAAM+hD,EAAE,MAAiB,OAAXuxd,GAAE,KAAKxyP,GAAE,EAAS6xP,GAAE,SAAS+iC,KAAK,KAAK,OAAO9iC,IAAG+iC,GAAG/iC,IAAG,SAASmiC,KAAK,KAAK,OAAOniC,KAAIoK,MAAM24B,GAAG/iC,IAAG,SAAS+iC,GAAGvliB,GAAG,IAAIC,EAAE+iiB,GAAGhjiB,EAAEwohB,UAAUxohB,EAAEk/hB,IAAIl/hB,EAAEu3hB,cAAcv3hB,EAAEk3hB,aAAa,OAAOj3hB,EAAEoliB,GAAGrliB,GAAGwigB,GAAEvigB,EAAEkjiB,GAAGtqW,QAAQ,KAC5c,SAASwsW,GAAGrliB,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAIjqC,EAAEkqC,EAAEuohB,UAAqB,GAAXxohB,EAAEC,EAAEs4F,OAAU,KAAa,MAARt4F,EAAE68D,QAAc,GAAgB,QAAb/mG,EAAEyokB,GAAGzokB,EAAEkqC,EAAEi/hB,KAAkB,YAAJ18B,GAAEzsiB,OAAc,CAAW,GAAG,QAAbA,EAAEmrkB,GAAGnrkB,EAAEkqC,IAAmC,OAAnBlqC,EAAE+mG,OAAO,WAAM0lc,GAAEzsiB,GAAS,GAAG,OAAOiqC,EAAmE,OAAXuigB,GAAE,OAAEC,GAAE,MAA5DxigB,EAAE88D,OAAO,MAAM98D,EAAEu+hB,aAAa,EAAEv+hB,EAAEg3hB,UAAU,KAAyC,GAAG,QAAf/2hB,EAAEA,EAAE+of,SAAyB,YAAJwZ,GAAEvigB,GAASuigB,GAAEvigB,EAAED,QAAQ,OAAOC,GAAG,IAAIsigB,KAAIA,GAAE,GAAG,SAAS0iC,GAAGjliB,EAAEC,GAAG,IAAIlqC,EAAEm6S,GAAE74M,EAAE+re,GAAG5jX,WAAW,IAAI4jX,GAAG5jX,WAAW,KAAK0wF,GAAE,EACzY,SAAYlwQ,EAAEC,EAAElqC,GAAG,GAAGwukB,WAAW,OAAOZ,IAAI,GAAG,KAAO,EAAFrhC,IAAK,MAAM1ygB,MAAM+hD,EAAE,MAAM,IAAI0lB,EAAEr3D,EAAE+kiB,aAAahqlB,EAAEilD,EAAEgliB,cAAc,GAAG,OAAO3te,EAAE,OAAO,KAA2C,GAAtCr3D,EAAE+kiB,aAAa,KAAK/kiB,EAAEgliB,cAAc,EAAK3te,IAAIr3D,EAAE64L,QAAQ,MAAMjpM,MAAM+hD,EAAE,MAAM3xC,EAAEgkiB,aAAa,KAAKhkiB,EAAEmkiB,iBAAiB,EAAE,IAAIr9d,EAAEzP,EAAEo8d,MAAMp8d,EAAEg8d,WAA8J,GAzN9a,SAAYrzhB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEwphB,cAAcvphB,EAAED,EAAEwphB,aAAavphB,EAAED,EAAEyphB,eAAe,EAAEzphB,EAAE0phB,YAAY,EAAE1phB,EAAEkkiB,cAAcjkiB,EAAED,EAAEwliB,kBAAkBvliB,EAAED,EAAE2phB,gBAAgB1phB,EAAEA,EAAED,EAAE4phB,cAAc,IAAIvyd,EAAEr3D,EAAE6phB,WAAW,IAAI7phB,EAAEA,EAAEikiB,gBAAgB,EAAElukB,GAAG,CAAC,IAAIhb,EAAE,GAAGotjB,GAAGpyiB,GAAG+wG,EAAE,GAAG/rH,EAAEklD,EAAEllD,GAAG,EAAEs8G,EAAEt8G,IAAI,EAAEilD,EAAEjlD,IAAI,EAAEgb,IAAI+wG,GAyNciic,CAAG/ogB,EAAE8mE,GAAG9mE,IAAIkjgB,KAAIV,GAAEU,GAAE,KAAKxyP,GAAE,GAAG,KAAoB,KAAfr5M,EAAEkne,eAAoB,KAAa,KAARlne,EAAEyF,QAAawmM,KAAKA,IAAG,EAAG+gS,GAAGxpa,IAAG,WAAgB,OAAL0pa,KAAY,SAAQz9d,EAAE,KAAa,MAARzP,EAAEyF,OAAgB,KAAoB,MAAfzF,EAAEkne,eAAqBz3d,EAAE,CAACA,EAAEs8d,GAAG5jX,WAAW4jX,GAAG5jX,WAAW,KAAK,IAAIz+J,EACvfmvP,GAAEA,GAAE,EAAE,IAAInsK,EAAEu+Z,GAAEA,IAAG,EAAE6gC,GAAGtqW,QAAQ,KA5C9B,SAAY74L,EAAEC,GAAU,GAAG2thB,GAAV5thB,EAAEythB,MAAc,CAAC,GAAG,mBAAmBzthB,EAAE,IAAIjqC,EAAE,CAACK,MAAM4pC,EAAE63C,eAAelqE,IAAIqyB,EAAEuwD,mBAAmBvwD,EAAE,CAA8C,IAAIq3D,GAAjDthG,GAAGA,EAAEiqC,EAAEk7E,gBAAgBnlH,EAAE61L,aAAa5rL,QAAemwJ,cAAcp6J,EAAEo6J,eAAe,GAAG94D,GAAG,IAAIA,EAAE09C,WAAW,CAACh/I,EAAEshG,EAAE22d,WAAW,IAAIjzkB,EAAEs8G,EAAE42d,aAAannd,EAAEzP,EAAE62d,UAAU72d,EAAEA,EAAE82d,YAAY,IAAIp4jB,EAAEw/D,SAASuxC,EAAEvxC,SAAS,MAAMmtC,GAAG3sG,EAAE,KAAK,MAAMiqC,EAAE,IAAI+gB,EAAE,EAAEgjF,GAAG,EAAE7xF,GAAG,EAAEu4B,EAAE,EAAEz4B,EAAE,EAAEgyF,EAAEhkG,EAAE+oJ,EAAE,KAAK9oJ,EAAE,OAAO,CAAC,IAAI,IAAI/nC,EAAK8rI,IAAIjuI,GAAG,IAAIhb,GAAG,IAAIipJ,EAAEzuE,WAAWwuE,EAAEhjF,EAAEhmE,GAAGipJ,IAAIl9B,GAAG,IAAIzP,GAAG,IAAI2sC,EAAEzuE,WAAWrjB,EAAE6O,EAAEs2C,GAAG,IAAI2sC,EAAEzuE,WAAWxU,GAAGijF,EAAE5mC,UAAUviH,QACzf,QAAQqd,EAAE8rI,EAAE1mC,aAAkByrF,EAAE/kD,EAAEA,EAAE9rI,EAAE,OAAO,CAAC,GAAG8rI,IAAIhkG,EAAE,MAAMC,EAA8C,GAA5C8oJ,IAAIhzL,KAAK00E,IAAI1vF,IAAIgpJ,EAAEhjF,GAAGgoI,IAAIjiF,KAAK90D,IAAIqlD,IAAInlD,EAAE6O,GAAM,QAAQ7oD,EAAE8rI,EAAE/mC,aAAa,MAAU8rF,GAAJ/kD,EAAE+kD,GAAMpkL,WAAWq/H,EAAE9rI,EAAEnC,GAAG,IAAIguI,IAAI,IAAI7xF,EAAE,KAAK,CAAC97C,MAAM2tI,EAAEp2H,IAAIukC,QAAQn8C,EAAE,KAAKA,EAAEA,GAAG,CAACK,MAAM,EAAEuX,IAAI,QAAQ5X,EAAE,KAAyC,IAApC26jB,GAAG,CAAC3C,YAAY/thB,EAAEg+F,eAAejoI,GAAO06S,GAAExwQ,EAAE,OAAOwwQ,IAAG,GAAOzwQ,GAAJC,EAAEwwQ,IAAMp3S,MAAM,KAAoB,KAAf4mC,EAAEs+hB,eAAoB,OAAOv+hB,EAAEA,EAAEu4F,OAAOt4F,EAAEwwQ,GAAEzwQ,OAAO,KAAK,OAAOywQ,IAAG,CAACxwQ,EAAEwwQ,GAAE,IAAI,IAAIx+P,EAAEhS,EAAEuohB,UAAU,GAAG,KAAa,KAARvohB,EAAE68D,OAAY,OAAO78D,EAAE86E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAC9J,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAD0I,KAAK,EAAE,GAAG,OAC9e9oE,EAAE,CAAC,IAAI7Q,EAAE6Q,EAAEslhB,cAAc90d,EAAExwD,EAAEw2gB,cAAch4gB,EAAExQ,EAAEsohB,UAAUzngB,EAAErQ,EAAEine,wBAAwBz3e,EAAE82hB,cAAc92hB,EAAE/hC,KAAKkjC,EAAE2xhB,GAAG9yhB,EAAE/hC,KAAKkjC,GAAGqhE,GAAGhyD,EAAEqyhB,oCAAoChihB,EAAE,MAAM,KAAK,EAAE,IAAIv1D,EAAE00C,EAAEsohB,UAAU4B,cAAc,GAAG,IAAI5+jB,EAAEgqE,SAAShqE,EAAElO,YAAY,QAAQ,GAAG,IAAIkO,EAAEgqE,SAAS,CAAC,IAAI00E,EAAE1+I,EAAEu3B,KAAK,MAAMmnH,IAAIA,EAAE5sJ,YAAY,IAAI,MAAyC,QAAQ,MAAMuyC,MAAM+hD,EAAE,OAAQ,MAAM+wB,GAAG8+d,GAAGvhiB,EAAEA,EAAEs4F,OAAO71B,GAAe,GAAG,QAAf1iE,EAAEC,EAAE+of,SAAoB,CAAChpf,EAAEu4F,OAAOt4F,EAAEs4F,OAAOk4K,GAAEzwQ,EAAE,MAAMywQ,GAAExwQ,EAAEs4F,OAAOtmF,EAAEyvhB,GAAGA,IAAG,EA0C7b+D,CAAGzliB,EAAEq3D,GA5BxC,SAAYr3D,EAAEC,GAAG,IAAIwwQ,GAAExwQ,EAAE,OAAOwwQ,IAAG,CAAK,IAAI16S,GAARkqC,EAAEwwQ,IAAUumR,UAAU,GAAG,OAAOjhkB,EAAE,IAAI,IAAIshG,EAAE,EAAEA,EAAEthG,EAAElb,OAAOw8G,IAAI,CAAC,IAAIt8G,EAAEgb,EAAEshG,GAAG,IAAI2qe,GAAGhiiB,EAAEjlD,EAAEklD,GAAG,IAAI6mE,EAAE/rH,EAAEytkB,UAAU,OAAO1hd,IAAIA,EAAEyxB,OAAO,MAAMx9I,EAAEw9I,OAAO,KAAK,MAAMoR,GAAG63b,GAAGzmlB,EAAEklD,EAAE0pG,IAAc,GAAV5zI,EAAEkqC,EAAE5mC,MAAS,KAAoB,MAAf4mC,EAAEs+hB,eAAqB,OAAOxokB,EAAEA,EAAEwiI,OAAOt4F,EAAEwwQ,GAAE16S,OAAO,KAAK,OAAO06S,IAAG,CAACxwQ,EAAEwwQ,GAAE,IAAI,IAAI1vP,EAAE9gB,EAAE68D,MAA+B,GAAvB,GAAF/7C,GAAMijP,GAAG/jQ,EAAEsohB,UAAU,IAAS,IAAFxngB,EAAM,CAAC,IAAIgjF,EAAE9jG,EAAEuohB,UAAU,GAAG,OAAOzkb,EAAE,CAAC,IAAI7xF,EAAE6xF,EAAEvrF,IAAI,OAAOtG,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAE2mL,QAAQ,OAAO,GAAK,KAAF93K,EAAO,OAAO9gB,EAAE86E,KAAK,KAAK,GAAG,GAAG,OAAO96E,EAAEwohB,cAAc,CAAC,IAAIh+e,EAC5fxqC,EAAEuohB,UAAa,OAAO/9e,GAAG,OAAOA,EAAEg+e,gBAAcib,GAAGlgC,MAAI,MAAM,KAAK,GAAG,IAAIxxf,EAAE,OAAO/R,EAAEwohB,cAAczkb,EAAE/jG,EAAEuohB,UAAUz/X,EAAE,OAAO/kD,GAAG,OAAOA,EAAEykb,cAAkBzohB,EAAE,CAAKjlD,EAAEi3D,EAAE,IAAI,IAAI95C,EAAE,KAAK+5C,EAAvBolD,EAAPthG,EAAEkqC,IAAkC,CAAC,GAAG,IAAIgS,EAAE8oE,KAAK,GAAG,OAAO7iH,EAAE,CAACA,EAAE+5C,EAAE,IAAI7Q,EAAE6Q,EAAEs2gB,UAAU,GAAGxtkB,EAAE,CAAC,IAAI0nH,EAAErhE,EAAE5oC,MAAM,oBAAoBiqG,EAAE64H,YAAY74H,EAAE64H,YAAY,UAAU,OAAO,aAAa74H,EAAE7oG,QAAQ,WAAW,CAAC,IAAI62C,EAAEwB,EAAEs2gB,UAAUzngB,EAAE7O,EAAEslhB,cAAc/+jB,MAAMjN,OAAE,IAASu1D,GAAG,OAAOA,GAAGA,EAAEuQ,eAAe,WAAWvQ,EAAElnD,QAAQ,KAAK62C,EAAEj4C,MAAMoB,QAAQoviB,GAAG,UAAUz9iB,UAAU,GAAG,IACxf0mD,EAAE8oE,IAAI,OAAO7iH,IAAI+5C,EAAEs2gB,UAAUnrd,UAAUriH,EAAE,GAAGk3D,EAAEslhB,oBAAoB,IAAI,KAAKtlhB,EAAE8oE,KAAK,KAAK9oE,EAAE8oE,KAAK,OAAO9oE,EAAEw2gB,eAAex2gB,IAAIolD,IAAI,OAAOplD,EAAE54C,MAAM,CAAC44C,EAAE54C,MAAMk/H,OAAOtmF,EAAEA,EAAEA,EAAE54C,MAAM,SAAS,GAAG44C,IAAIolD,EAAE,MAAM,KAAK,OAAOplD,EAAE+2e,SAAS,CAAC,GAAG,OAAO/2e,EAAEsmF,QAAQtmF,EAAEsmF,SAASlhC,EAAE,MAAMr3D,EAAE9nC,IAAI+5C,IAAI/5C,EAAE,MAAM+5C,EAAEA,EAAEsmF,OAAOrgI,IAAI+5C,IAAI/5C,EAAE,MAAM+5C,EAAE+2e,QAAQzwZ,OAAOtmF,EAAEsmF,OAAOtmF,EAAEA,EAAE+2e,SAAS,GAAGh3e,IAAI+2I,GAAG,KAAY,EAAPhzL,EAAE6oD,MAAQ,CAAC6xP,GAAE16S,EAAE,IAAI,IAAIk0I,EAAEl0I,EAAEsD,MAAM,OAAO4wI,GAAG,CAAC,IAAIl0I,EAAE06S,GAAExmK,EAAE,OAAOwmK,IAAG,CAAK,IAAI/tM,GAARrL,EAAEo5M,IAAUp3S,MAAM,OAAOg+F,EAAE0jB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG4md,GAAG,EAAEtqe,EAAEA,EAAEkhC,QAAQ,MACpf,KAAK,EAAEgpc,GAAGlqe,EAAEA,EAAEkhC,QAAQ,IAAI8pa,EAAEhrc,EAAEkxd,UAAU,GAAG,oBAAoBlmB,EAAEtsB,qBAAqB,CAAC,IAAIyvB,EAAGnuc,EAAEkhC,OAAO,IAAI8pa,EAAEtoc,MAAM1C,EAAEkge,cAAcl1B,EAAE3wd,MAAM2lB,EAAEoxd,cAAcpmB,EAAEtsB,uBAAuB,MAAMpsY,GAAG63b,GAAGnqe,EAAEmuc,EAAG77Z,IAAI,MAAM,KAAK,EAAE43b,GAAGlqe,EAAEA,EAAEkhC,QAAQ,MAAM,KAAK,GAAG,GAAG,OAAOlhC,EAAEoxd,cAAc,CAACsa,GAAGhtkB,GAAG,UAAU,OAAO2sG,GAAGA,EAAE61B,OAAOlhC,EAAEo5M,GAAE/tM,GAAGqge,GAAGhtkB,GAAGk0I,EAAEA,EAAE++Y,UAAU,OAAS,KAAFjoe,GAAQ,KAAK,EAAEqhhB,GAAGniiB,GAAGA,EAAE68D,QAAQ,EAAE,MAAM,KAAK,EAAEsle,GAAGniiB,GAAGA,EAAE68D,QAAQ,EAAE0le,GAAGviiB,EAAEuohB,UAAUvohB,GAAG,MAAM,KAAK,KAAKA,EAAE68D,QAAQ,KAAK,MAAM,KAAK,KAAK78D,EAAE68D,QAAQ,KAAK0le,GAAGviiB,EAAEuohB,UAAUvohB,GAClf,MAAM,KAAK,EAAEuiiB,GAAGviiB,EAAEuohB,UAAUvohB,IAAI,MAAM0pG,GAAG63b,GAAGvhiB,EAAEA,EAAEs4F,OAAOoR,GAAe,GAAG,QAAf5zI,EAAEkqC,EAAE+of,SAAoB,CAACjzhB,EAAEwiI,OAAOt4F,EAAEs4F,OAAOk4K,GAAE16S,EAAE,MAAM06S,GAAExwQ,EAAEs4F,SAwBxEmtc,CAAG1liB,EAAEq3D,GAAKy2d,GAAG4C,IAAIA,GAAG,KAAK1whB,EAAE64L,QAAQxhI,EAAEsre,GAAGtre,EAAEr3D,EAAEjlD,GAAGiyjB,KAAK1K,GAAEv+Z,EAAEmsK,GAAEnvP,EAAEqihB,GAAG5jX,WAAW14G,OAAO9mE,EAAE64L,QAAQxhI,EAAsF,GAApFisM,KAAKA,IAAG,EAAGqgS,GAAG3jiB,EAAE2kQ,GAAG5pT,GAAoB,KAAjB+rH,EAAE9mE,EAAEwphB,gBAAqBqU,GAAG,MAhOkK,SAAY79hB,GAAG,GAAGkogB,IAAI,oBAAoBA,GAAGy9B,kBAAkB,IAAIz9B,GAAGy9B,kBAAkBn/B,GAAGxmgB,OAAE,EAAO,OAAuB,IAAhBA,EAAE64L,QAAQ/7H,QAAY,MAAM78D,KAgOnSgrgB,CAAG5zc,EAAEkxd,WAAaxhR,GAAG/mQ,EAAEwjgB,MAAQ,OAAOvjgB,EAAE,IAAIlqC,EAAEiqC,EAAE4liB,mBAAmBvue,EAAE,EAAEA,EAAEp3D,EAAEplD,OAAOw8G,IAAIthG,EAAEkqC,EAAEo3D,IAAI,GAAGome,GAAG,MAAMA,IAAG,EAAGz9hB,EAAE09hB,GAAGA,GAAG,KAAK19hB,EAAE,KAAQ,EAAH2kQ,KAAO,IAAI3kQ,EAAE+6E,KAAKwpd,KAAsB,KAAO,GAAxBz9d,EAAE9mE,EAAEwphB,eAAuBxphB,IAAIpG,GAAGgqiB,MAAMA,GAAG,EAAEhqiB,GAAGoG,GAAG4jiB,GAAG,EAAE/Q,KAFRgT,CAAG7liB,EAAEC,EAAElqC,GAAlC,QAA6CqtkB,GAAG5jX,WAAWnoH,EAAE64M,GAAEn6S,EAAE,OAAO,KAGxb,SAASwukB,KAAK,GAAG,OAAOZ,GAAG,CAAC,IAAI3jiB,EAAEyqgB,GAAG9lQ,IAAI1kQ,EAAEmjiB,GAAG5jX,WAAWzpN,EAAEm6S,GAAE,IAAmC,GAA/BkzR,GAAG5jX,WAAW,KAAK0wF,GAAE,GAAGlwQ,EAAE,GAAGA,EAAK,OAAO2jiB,GAAG,IAAItse,GAAE,MAAO,CAAmB,GAAlBr3D,EAAE2jiB,GAAGA,GAAG,KAAKh/R,GAAG,EAAK,KAAO,EAAF29P,IAAK,MAAM1ygB,MAAM+hD,EAAE,MAAM,IAAI52F,EAAEunjB,GAAO,IAALA,IAAG,EAAM7xP,GAAEzwQ,EAAE64L,QAAQ,OAAO43E,IAAG,CAAC,IAAI3pM,EAAE2pM,GAAE1vP,EAAE+lD,EAAEztG,MAAM,GAAG,KAAa,GAARo3S,GAAE3zM,OAAU,CAAC,IAAIinC,EAAEj9B,EAAEkwd,UAAU,GAAG,OAAOjzb,EAAE,CAAC,IAAI,IAAI7xF,EAAE,EAAEA,EAAE6xF,EAAElpJ,OAAOq3D,IAAI,CAAC,IAAIu4B,EAAEs5D,EAAE7xF,GAAG,IAAIu+P,GAAEhmO,EAAE,OAAOgmO,IAAG,CAAC,IAAIz+P,EAAEy+P,GAAE,OAAOz+P,EAAE+oE,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG4md,GAAG,EAAE3vhB,EAAE80D,GAAG,IAAIk9B,EAAEhyF,EAAE34C,MAAM,GAAG,OAAO2qI,EAAEA,EAAEzL,OAAOvmF,EAAEy+P,GAAEzsK,OAAO,KAAK,OAAOysK,IAAG,CAAK,IAAI1nH,GAAR/2I,EAAEy+P,IAAUu4O,QAAQ9whB,EAAE85C,EAAEumF,OAAa,GAAN0pc,GAAGjwhB,GAAMA,IACnfy4B,EAAE,CAACgmO,GAAE,KAAK,MAAM,GAAG,OAAO1nH,EAAE,CAACA,EAAExwD,OAAOrgI,EAAEu4S,GAAE1nH,EAAE,MAAM0nH,GAAEv4S,IAAI,IAAI+5C,EAAE60D,EAAE0hd,UAAU,GAAG,OAAOv2gB,EAAE,CAAC,IAAI7Q,EAAE6Q,EAAE54C,MAAM,GAAG,OAAO+nC,EAAE,CAAC6Q,EAAE54C,MAAM,KAAK,EAAE,CAAC,IAAIopG,EAAErhE,EAAE4nf,QAAQ5nf,EAAE4nf,QAAQ,KAAK5nf,EAAEqhE,QAAQ,OAAOrhE,IAAIqvQ,GAAE3pM,GAAG,GAAG,KAAoB,KAAfA,EAAEy3d,eAAoB,OAAOx9gB,EAAEA,EAAEw3E,OAAOzxB,EAAE2pM,GAAE1vP,OAAO9gB,EAAE,KAAK,OAAOwwQ,IAAG,CAAK,GAAG,KAAa,MAApB3pM,EAAE2pM,IAAY3zM,OAAY,OAAOgK,EAAEiU,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG4md,GAAG,EAAE76d,EAAEA,EAAEyxB,QAAQ,IAAI9nF,EAAEq2D,EAAEkib,QAAQ,GAAG,OAAOv4e,EAAE,CAACA,EAAE8nF,OAAOzxB,EAAEyxB,OAAOk4K,GAAEhgQ,EAAE,MAAMxQ,EAAEwwQ,GAAE3pM,EAAEyxB,QAAQ,IAAIz3E,EAAE9gB,EAAE64L,QAAQ,IAAI43E,GAAE3vP,EAAE,OAAO2vP,IAAG,CAAK,IAAIllT,GAARw1D,EAAE0vP,IAAUp3S,MAAM,GAAG,KAAoB,KAAf0nD,EAAEw9gB,eAAoB,OAClfhzkB,EAAEA,EAAEgtI,OAAOx3E,EAAE0vP,GAAEllT,OAAO00C,EAAE,IAAI8gB,EAAED,EAAE,OAAO2vP,IAAG,CAAK,GAAG,KAAa,MAApB1sK,EAAE0sK,IAAY3zM,OAAY,IAAI,OAAOinC,EAAEhpB,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG6md,GAAG,EAAE79b,IAAI,MAAMrhC,GAAG8+d,GAAGz9b,EAAEA,EAAExL,OAAO71B,GAAG,GAAGqhC,IAAIhjF,EAAE,CAAC0vP,GAAE,KAAK,MAAMxwQ,EAAE,IAAIgqG,EAAElG,EAAEilZ,QAAQ,GAAG,OAAO/+Y,EAAE,CAACA,EAAE1R,OAAOwL,EAAExL,OAAOk4K,GAAExmK,EAAE,MAAMhqG,EAAEwwQ,GAAE1sK,EAAExL,QAAiB,GAAT+pa,GAAEvnjB,EAAE83kB,KAAQ3qB,IAAI,oBAAoBA,GAAG49B,sBAAsB,IAAI59B,GAAG49B,sBAAsBt/B,GAAGxmgB,GAAG,MAAM0iE,IAAIrL,GAAE,EAAG,OAAOA,EAF1S,QAEoT64M,GAAEn6S,EAAEqtkB,GAAG5jX,WAAWv/K,GAAG,OAAM,EAAG,SAAS8liB,GAAG/liB,EAAEC,EAAElqC,GAAyBs+jB,GAAGr0hB,EAAfC,EAAEu9hB,GAAGx9hB,EAAfC,EAAEi9hB,GAAGnnkB,EAAEkqC,GAAY,IAAWA,EAAE+vQ,KAAc,QAAVhwQ,EAAE+jiB,GAAG/jiB,EAAE,MAAc+jgB,GAAG/jgB,EAAE,EAAEC,GAAG8mQ,GAAG/mQ,EAAEC,IAC1e,SAASuhiB,GAAGxhiB,EAAEC,EAAElqC,GAAG,GAAG,IAAIiqC,EAAE+6E,IAAIgrd,GAAG/liB,EAAEA,EAAEjqC,QAAQ,KAAK,OAAOkqC,GAAG,CAAC,GAAG,IAAIA,EAAE86E,IAAI,CAACgrd,GAAG9liB,EAAED,EAAEjqC,GAAG,MAAW,GAAG,IAAIkqC,EAAE86E,IAAI,CAAC,IAAI1jB,EAAEp3D,EAAEsohB,UAAU,GAAG,oBAAoBtohB,EAAE/hC,KAAK2ugB,0BAA0B,oBAAoBx1a,EAAEume,oBAAoB,OAAOC,KAAKA,GAAGzpjB,IAAIijF,IAAI,CAAuBg9d,GAAGp0hB,EAAfD,EAAE29hB,GAAG19hB,EAAfD,EAAEk9hB,GAAGnnkB,EAAEiqC,GAAY,IAAWA,EAAEgwQ,KAAc,QAAV/vQ,EAAE8jiB,GAAG9jiB,EAAE,MAAc8jgB,GAAG9jgB,EAAE,EAAED,GAAG+mQ,GAAG9mQ,EAAED,IAAI,OAAOC,EAAEA,EAAEs4F,QACnV,SAAS0lc,GAAGj+hB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEr3D,EAAEg+hB,UAAU,OAAO3me,GAAGA,EAAE8wI,OAAOloM,GAAGA,EAAE+vQ,KAAIhwQ,EAAE0phB,aAAa1phB,EAAEyphB,eAAe1zjB,EAAEmtiB,KAAIljgB,IAAI0wQ,GAAE36S,KAAKA,IAAI,IAAIwsiB,IAAG,IAAIA,KAAM,UAAF7xP,MAAeA,IAAG,IAAI8yP,KAAIkgC,GAAGgB,GAAG1kiB,EAAE,GAAGujiB,IAAIxtkB,GAAGgxS,GAAG/mQ,EAAEC,GAAG,SAAS+liB,GAAGhmiB,EAAEC,GAAG,IAAIA,IAAI,KAAY,EAAPD,EAAE4e,MAAQ3e,EAAE,GAAGA,EAAEi5c,GAAU,KAAQ,WAAfA,KAAK,MAAuBA,GAAG,WAAW,IAAInjf,EAAEi6S,KAAc,QAAVhwQ,EAAE+jiB,GAAG/jiB,EAAEC,MAAc8jgB,GAAG/jgB,EAAEC,EAAElqC,GAAGgxS,GAAG/mQ,EAAEjqC,IAAI,SAAS4qkB,GAAG3giB,GAAG,IAAIC,EAAED,EAAEyohB,cAAc1yjB,EAAE,EAAE,OAAOkqC,IAAIlqC,EAAEkqC,EAAEm3hB,WAAW4O,GAAGhmiB,EAAEjqC,GAC/Y,SAAS2skB,GAAG1iiB,EAAEC,GAAG,IAAIlqC,EAAE,EAAE,OAAOiqC,EAAE+6E,KAAK,KAAK,GAAG,IAAI1jB,EAAEr3D,EAAEuohB,UAAcxtkB,EAAEilD,EAAEyohB,cAAc,OAAO1tkB,IAAIgb,EAAEhb,EAAEq8kB,WAAW,MAAM,KAAK,GAAG//d,EAAEr3D,EAAEuohB,UAAU,MAAM,QAAQ,MAAM34hB,MAAM+hD,EAAE,MAAO,OAAO0lB,GAAGA,EAAE8wI,OAAOloM,GAAG+liB,GAAGhmiB,EAAEjqC,GAQsQ,SAASsukB,GAAGrkiB,EAAEC,GAAG,OAAOukgB,GAAGxkgB,EAAEC,GAC9e,SAASgmiB,GAAGjmiB,EAAEC,EAAElqC,EAAEshG,GAAG98G,KAAKwgI,IAAI/6E,EAAEzlD,KAAKgH,IAAIwU,EAAExb,KAAKyuiB,QAAQzuiB,KAAK8e,MAAM9e,KAAKg+I,OAAOh+I,KAAKgukB,UAAUhukB,KAAK2jB,KAAK3jB,KAAKw8kB,YAAY,KAAKx8kB,KAAKa,MAAM,EAAEb,KAAKi+D,IAAI,KAAKj+D,KAAK28kB,aAAaj3hB,EAAE1lD,KAAKg5kB,aAAah5kB,KAAKkukB,cAAclukB,KAAKw5kB,YAAYx5kB,KAAKg9kB,cAAc,KAAKh9kB,KAAKqkE,KAAKy4C,EAAE98G,KAAKgklB,aAAahklB,KAAKuiH,MAAM,EAAEviH,KAAKy8kB,UAAU,KAAKz8kB,KAAK84kB,WAAW94kB,KAAKk5kB,MAAM,EAAEl5kB,KAAKiukB,UAAU,KAAK,SAASsO,GAAG92hB,EAAEC,EAAElqC,EAAEshG,GAAG,OAAO,IAAI4ue,GAAGjmiB,EAAEC,EAAElqC,EAAEshG,GAAG,SAASooe,GAAGz/hB,GAAiB,UAAdA,EAAEA,EAAEjgD,aAAuBigD,EAAEkmiB,kBAEnc,SAASnO,GAAG/3hB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEwohB,UACuB,OADb,OAAOzyjB,IAAGA,EAAE+gkB,GAAG92hB,EAAE+6E,IAAI96E,EAAED,EAAEz+C,IAAIy+C,EAAE4e,OAAQm4gB,YAAY/2hB,EAAE+2hB,YAAYhhkB,EAAEmI,KAAK8hC,EAAE9hC,KAAKnI,EAAEwyjB,UAAUvohB,EAAEuohB,UAAUxyjB,EAAEyyjB,UAAUxohB,EAAEA,EAAEwohB,UAAUzyjB,IAAIA,EAAEmhkB,aAAaj3hB,EAAElqC,EAAEmI,KAAK8hC,EAAE9hC,KAAKnI,EAAE+mG,MAAM,EAAE/mG,EAAEwokB,aAAa,EAAExokB,EAAEihkB,UAAU,MAAMjhkB,EAAE+mG,MAAc,SAAR98D,EAAE88D,MAAe/mG,EAAEs9jB,WAAWrzhB,EAAEqzhB,WAAWt9jB,EAAE09jB,MAAMzzhB,EAAEyzhB,MAAM19jB,EAAEsD,MAAM2mC,EAAE3mC,MAAMtD,EAAEwhkB,cAAcv3hB,EAAEu3hB,cAAcxhkB,EAAE0yjB,cAAczohB,EAAEyohB,cAAc1yjB,EAAEg+jB,YAAY/zhB,EAAE+zhB,YAAY9zhB,EAAED,EAAEuzhB,aAAax9jB,EAAEw9jB,aAAa,OAAOtzhB,EAAE,KAAK,CAACwzhB,MAAMxzhB,EAAEwzhB,MAAMD,aAAavzhB,EAAEuzhB,cAC/ez9jB,EAAEizhB,QAAQhpf,EAAEgpf,QAAQjzhB,EAAE3a,MAAM4kD,EAAE5kD,MAAM2a,EAAEyiD,IAAIxY,EAAEwY,IAAWziD,EACvD,SAASkikB,GAAGj4hB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,GAAG,IAAI/lD,EAAE,EAAM,GAAJs2C,EAAEr3D,EAAK,oBAAoBA,EAAEy/hB,GAAGz/hB,KAAK+gB,EAAE,QAAQ,GAAG,kBAAkB/gB,EAAE+gB,EAAE,OAAO/gB,EAAE,OAAOA,GAAG,KAAK4kgB,EAAG,OAAOuzB,GAAGpikB,EAAEzQ,SAASvK,EAAE+rH,EAAE7mE,GAAG,KAAK8sgB,EAAGhsf,EAAE,EAAEhmE,GAAG,EAAE,MAAM,KAAKgvjB,EAAG,OAAO/pgB,EAAE82hB,GAAG,GAAG/gkB,EAAEkqC,EAAI,EAAFllD,IAAOg8kB,YAAYhtB,EAAG/pgB,EAAEyzhB,MAAM3sd,EAAE9mE,EAAE,KAAK2kgB,EAAG,OAAO3kgB,EAAE82hB,GAAG,GAAG/gkB,EAAEkqC,EAAEllD,IAAKg8kB,YAAYpyB,EAAG3kgB,EAAEyzhB,MAAM3sd,EAAE9mE,EAAE,KAAKkmgB,EAAG,OAAOlmgB,EAAE82hB,GAAG,GAAG/gkB,EAAEkqC,EAAEllD,IAAKg8kB,YAAY7wB,EAAGlmgB,EAAEyzhB,MAAM3sd,EAAE9mE,EAAE,KAAKskgB,EAAG,OAAOk8B,GAAGzqkB,EAAEhb,EAAE+rH,EAAE7mE,GAAG,QAAQ,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,OAAOA,EAAEsmhB,UAAU,KAAKxc,EAAG/of,EAAE,GAAG,MAAM/gB,EAAE,KAAK0zgB,EAAG3yf,EAAE,EAAE,MAAM/gB,EAAE,KAAKokgB,EAAGrjf,EAAE,GACpf,MAAM/gB,EAAE,KAAK0tgB,EAAG3sf,EAAE,GAAG,MAAM/gB,EAAE,KAAKwvgB,EAAGzuf,EAAE,GAAGs2C,EAAE,KAAK,MAAMr3D,EAAE,MAAMpQ,MAAM+hD,EAAE,IAAI,MAAM3xC,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAE62hB,GAAG/1gB,EAAEhrD,EAAEkqC,EAAEllD,IAAKg8kB,YAAY/2hB,EAAEC,EAAE/hC,KAAKm5F,EAAEp3D,EAAEwzhB,MAAM3sd,EAAS7mE,EAAE,SAASk4hB,GAAGn4hB,EAAEC,EAAElqC,EAAEshG,GAA2B,OAAxBr3D,EAAE82hB,GAAG,EAAE92hB,EAAEq3D,EAAEp3D,IAAKwzhB,MAAM19jB,EAASiqC,EAAE,SAASwgiB,GAAGxgiB,EAAEC,EAAElqC,EAAEshG,GAA4D,OAAzDr3D,EAAE82hB,GAAG,GAAG92hB,EAAEq3D,EAAEp3D,IAAK82hB,YAAYzyB,EAAGtkgB,EAAEyzhB,MAAM19jB,EAAEiqC,EAAEuohB,UAAU,GAAUvohB,EAAE,SAASg4hB,GAAGh4hB,EAAEC,EAAElqC,GAA8B,OAA3BiqC,EAAE82hB,GAAG,EAAE92hB,EAAE,KAAKC,IAAKwzhB,MAAM19jB,EAASiqC,EAChW,SAASk4hB,GAAGl4hB,EAAEC,EAAElqC,GAA8J,OAA3JkqC,EAAE62hB,GAAG,EAAE,OAAO92hB,EAAE16C,SAAS06C,EAAE16C,SAAS,GAAG06C,EAAEz+C,IAAI0+C,IAAKwzhB,MAAM19jB,EAAEkqC,EAAEsohB,UAAU,CAAC4B,cAAcnqhB,EAAEmqhB,cAAcgc,gBAAgB,KAAK3lC,eAAexggB,EAAEwggB,gBAAuBvggB,EACrL,SAASmmiB,GAAGpmiB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAGR,KAAKwgI,IAAI96E,EAAE1lD,KAAK4vkB,cAAcnqhB,EAAEzlD,KAAKwqlB,aAAaxqlB,KAAKyjlB,UAAUzjlB,KAAKs+O,QAAQt+O,KAAK4rlB,gBAAgB,KAAK5rlB,KAAK2qlB,eAAe,EAAE3qlB,KAAKyplB,aAAazplB,KAAKkklB,eAAelklB,KAAK2a,QAAQ,KAAK3a,KAAK4plB,iBAAiB,EAAE5plB,KAAKsvkB,WAAW/Z,GAAG,GAAGv1jB,KAAK0plB,gBAAgBn0B,IAAI,GAAGv1jB,KAAKovkB,eAAepvkB,KAAKyqlB,cAAczqlB,KAAKirlB,iBAAiBjrlB,KAAK2plB,aAAa3plB,KAAKmvkB,YAAYnvkB,KAAKkvkB,eAAelvkB,KAAKivkB,aAAa,EAAEjvkB,KAAKqvkB,cAAc9Z,GAAG,GAAGv1jB,KAAK0ilB,iBAAiB5le,EAAE98G,KAAKqrlB,mBAAmB7qlB,EAAER,KAAK8rlB,gCAC/e,KAAK,SAASC,GAAGtmiB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,GAAiL,OAA9KlS,EAAE,IAAIomiB,GAAGpmiB,EAAEC,EAAElqC,EAAEguI,EAAE7xF,GAAG,IAAIjS,GAAGA,EAAE,GAAE,IAAK6mE,IAAI7mE,GAAG,IAAIA,EAAE,EAAE6mE,EAAEgwd,GAAG,EAAE,KAAK,KAAK72hB,GAAGD,EAAE64L,QAAQ/xH,EAAEA,EAAEyhd,UAAUvohB,EAAE8mE,EAAE2hd,cAAc,CAACpukB,QAAQg9G,EAAE6yd,aAAan0jB,EAAEmkC,MAAM,KAAKqsiB,YAAY,MAAMpgS,GAAGr/L,GAAU9mE,EAAE,SAASwmiB,GAAGxmiB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAE,EAAE/0G,UAAUzH,aAAQ,IAASyH,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACgkkB,SAASntc,EAAG53H,IAAI,MAAM81G,EAAE,KAAK,GAAGA,EAAE/xG,SAAS06C,EAAEmqhB,cAAclqhB,EAAEuggB,eAAezqiB,GACnY,SAAS0wkB,GAAGzmiB,GAAG,IAAIA,EAAE,OAAO6xhB,GAAuB7xhB,EAAE,CAAC,GAAGmlgB,GAA1BnlgB,EAAEA,EAAE+0hB,mBAA8B/0hB,GAAG,IAAIA,EAAE+6E,IAAI,MAAMnrF,MAAM+hD,EAAE,MAAM,IAAI1xC,EAAED,EAAE,EAAE,CAAC,OAAOC,EAAE86E,KAAK,KAAK,EAAE96E,EAAEA,EAAEsohB,UAAUrzjB,QAAQ,MAAM8qC,EAAE,KAAK,EAAE,GAAGmyhB,GAAGlyhB,EAAE/hC,MAAM,CAAC+hC,EAAEA,EAAEsohB,UAAUiK,0CAA0C,MAAMxyhB,GAAGC,EAAEA,EAAEs4F,aAAa,OAAOt4F,GAAG,MAAMrQ,MAAM+hD,EAAE,MAAO,GAAG,IAAI3xC,EAAE+6E,IAAI,CAAC,IAAIhlH,EAAEiqC,EAAE9hC,KAAK,GAAGi0jB,GAAGp8jB,GAAG,OAAOu8jB,GAAGtyhB,EAAEjqC,EAAEkqC,GAAG,OAAOA,EACnW,SAASymiB,GAAG1miB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,GAAsK,OAAnKlS,EAAEsmiB,GAAGvwkB,EAAEshG,GAAE,EAAGr3D,EAAEjlD,EAAE+rH,EAAE/lD,EAAEgjF,EAAE7xF,IAAKh9C,QAAQuxkB,GAAG,MAAM1wkB,EAAEiqC,EAAE64L,SAAsB/xH,EAAEk1M,GAAhB3kN,EAAE24M,KAAIj1T,EAAEk6kB,GAAGl/jB,KAAegzC,cAAS,IAAS9I,GAAG,OAAOA,EAAEA,EAAE,KAAKo0hB,GAAGt+jB,EAAE+wG,GAAG9mE,EAAE64L,QAAQ46V,MAAM14kB,EAAEgpjB,GAAG/jgB,EAAEjlD,EAAEs8G,GAAG0vM,GAAG/mQ,EAAEq3D,GAAUr3D,EAAE,SAAS2miB,GAAG3miB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt8G,EAAEklD,EAAE44L,QAAQ/xH,EAAEkpM,KAAIjvP,EAAEk0gB,GAAGl6kB,GAAgL,OAA7Kgb,EAAE0wkB,GAAG1wkB,GAAG,OAAOkqC,EAAE/qC,QAAQ+qC,EAAE/qC,QAAQa,EAAEkqC,EAAEw+hB,eAAe1okB,GAAEkqC,EAAE+7Q,GAAGl1M,EAAE/lD,IAAKk0D,QAAQ,CAAC56H,QAAQ2lD,GAAuB,QAApBq3D,OAAE,IAASA,EAAE,KAAKA,KAAap3D,EAAE8I,SAASsuD,GAAGg9d,GAAGt5kB,EAAEklD,GAAe,QAAZD,EAAEk1hB,GAAGn6kB,EAAEgmE,EAAE+lD,KAAawtd,GAAGt0hB,EAAEjlD,EAAEgmE,GAAUA,EAClb,SAAS6lhB,GAAG5miB,GAAe,OAAZA,EAAEA,EAAE64L,SAAcx/N,OAAyB2mC,EAAE3mC,MAAM0hH,IAAoD/6E,EAAE3mC,MAAMkvjB,WAAhF,KAA2F,SAASse,GAAG7miB,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAEyohB,gBAA2B,OAAOzohB,EAAE0ohB,WAAW,CAAC,IAAI3yjB,EAAEiqC,EAAEo3hB,UAAUp3hB,EAAEo3hB,UAAU,IAAIrhkB,GAAGA,EAAEkqC,EAAElqC,EAAEkqC,GAAG,SAAS6miB,GAAG9miB,EAAEC,GAAG4miB,GAAG7miB,EAAEC,IAAID,EAAEA,EAAEwohB,YAAYqe,GAAG7miB,EAAEC,GAnB3S+iiB,GAAG,SAAShjiB,EAAEC,EAAElqC,GAAG,GAAG,OAAOiqC,EAAE,GAAGA,EAAEu3hB,gBAAgBt3hB,EAAEi3hB,cAAcpF,GAAGj5V,QAAQ66V,IAAG,MAAO,CAAC,GAAG,KAAK1zhB,EAAEyzhB,MAAM19jB,IAAI,KAAa,IAARkqC,EAAE68D,OAAW,OAAO42d,IAAG,EAvD1I,SAAY1zhB,EAAEC,EAAElqC,GAAG,OAAOkqC,EAAE86E,KAAK,KAAK,EAAEqld,GAAGngiB,GAAGu3hB,KAAK,MAAM,KAAK,EAAEkB,GAAGz4hB,GAAG,MAAM,KAAK,EAAEkyhB,GAAGlyhB,EAAE/hC,OAAOq0jB,GAAGtyhB,GAAG,MAAM,KAAK,EAAEw4hB,GAAGx4hB,EAAEA,EAAEsohB,UAAU4B,eAAe,MAAM,KAAK,GAAG,IAAI9yd,EAAEp3D,EAAE/hC,KAAKsvB,SAASzyC,EAAEklD,EAAEs3hB,cAAcp7kB,MAAMozO,GAAEyjW,GAAG37d,EAAE+7d,eAAe/7d,EAAE+7d,cAAcr4kB,EAAE,MAAM,KAAK,GAAqB,GAAG,QAArBs8G,EAAEp3D,EAAEwohB,eAA2B,OAAG,OAAOpxd,EAAEqxd,YAAkBn5V,GAAE/2L,GAAY,EAAVA,GAAEqgM,SAAW54L,EAAE68D,OAAO,IAAI,MAAQ,KAAK/mG,EAAEkqC,EAAE5mC,MAAMg6jB,YAAmBkN,GAAGvgiB,EAAEC,EAAElqC,IAAGw5N,GAAE/2L,GAAY,EAAVA,GAAEqgM,SAA8B,QAAnB74L,EAAEu/hB,GAAGv/hB,EAAEC,EAAElqC,IAAmBiqC,EAAEgpf,QAAQ,MAAKz5T,GAAE/2L,GAAY,EAAVA,GAAEqgM,SAAW,MAAM,KAAK,GAC7d,GADgexhI,EAAE,KAAKthG,EACrfkqC,EAAEozhB,YAAe,KAAa,IAARrzhB,EAAE88D,OAAW,CAAC,GAAGzF,EAAE,OAAO4pe,GAAGjhiB,EAAEC,EAAElqC,GAAGkqC,EAAE68D,OAAO,IAAgG,GAA1E,QAAlB/hH,EAAEklD,EAAEwohB,iBAAyB1tkB,EAAE+jlB,UAAU,KAAK/jlB,EAAEujlB,KAAK,KAAKvjlB,EAAEmglB,WAAW,MAAM3rW,GAAE/2L,GAAEA,GAAEqgM,SAAYxhI,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOp3D,EAAEwzhB,MAAM,EAAEmM,GAAG5/hB,EAAEC,EAAElqC,GAAG,OAAOwpkB,GAAGv/hB,EAAEC,EAAElqC,GAsD3GgxkB,CAAG/miB,EAAEC,EAAElqC,GAAG29jB,GAAG,KAAa,OAAR1zhB,EAAE88D,YAAyB42d,IAAG,EAAGtnB,IAAG,KAAa,QAARnsgB,EAAE68D,QAAgBy5d,GAAGt2hB,EAAE+1hB,GAAG/1hB,EAAE7kD,OAAiB,OAAV6kD,EAAEwzhB,MAAM,EAASxzhB,EAAE86E,KAAK,KAAK,EAAE,IAAI1jB,EAAEp3D,EAAE/hC,KAAK,OAAO8hC,IAAIA,EAAEwohB,UAAU,KAAKvohB,EAAEuohB,UAAU,KAAKvohB,EAAE68D,OAAO,GAAG98D,EAAEC,EAAEi3hB,aAAa,IAAIn8kB,EAAEi3kB,GAAG/xhB,EAAEgjgB,GAAEpqU,SAASy6V,GAAGrzhB,EAAElqC,GAAGhb,EAAE2+kB,GAAG,KAAKz5hB,EAAEo3D,EAAEr3D,EAAEjlD,EAAEgb,GAAG,IAAI+wG,EAAEizd,KAC5I,OADiJ95hB,EAAE68D,OAAO,EAAE,kBAAkB/hH,GAAG,OAAOA,GAAG,oBAAoBA,EAAE+e,aAAQ,IAAS/e,EAAEurkB,UACjfrmhB,EAAE86E,IAAI,EAAE96E,EAAEwohB,cAAc,KAAKxohB,EAAE8zhB,YAAY,KAAK5B,GAAG96d,IAAIyP,GAAE,EAAGyrd,GAAGtyhB,IAAI6mE,GAAE,EAAG7mE,EAAEwohB,cAAc,OAAO1tkB,EAAE22F,YAAO,IAAS32F,EAAE22F,MAAM32F,EAAE22F,MAAM,KAAKy0N,GAAGlmQ,GAAGllD,EAAEy6kB,QAAQX,GAAG50hB,EAAEsohB,UAAUxtkB,EAAEA,EAAEg6kB,gBAAgB90hB,EAAE01hB,GAAG11hB,EAAEo3D,EAAEr3D,EAAEjqC,GAAGkqC,EAAEkgiB,GAAG,KAAKlgiB,EAAEo3D,GAAE,EAAGyP,EAAE/wG,KAAKkqC,EAAE86E,IAAI,EAAEqxb,IAAGtlc,GAAG0vd,GAAGv2hB,GAAGo/hB,GAAG,KAAKp/hB,EAAEllD,EAAEgb,GAAGkqC,EAAEA,EAAE5mC,OAAc4mC,EAAE,KAAK,GAAGo3D,EAAEp3D,EAAE82hB,YAAY/2hB,EAAE,CAAsI,OAArI,OAAOA,IAAIA,EAAEwohB,UAAU,KAAKvohB,EAAEuohB,UAAU,KAAKvohB,EAAE68D,OAAO,GAAG98D,EAAEC,EAAEi3hB,aAAuB7/d,GAAVt8G,EAAEs8G,EAAEtqC,OAAUsqC,EAAEkvd,UAAUtmhB,EAAE/hC,KAAKm5F,EAAEt8G,EAAEklD,EAAE86E,IAQna,SAAY/6E,GAAG,GAAG,oBAAoBA,EAAE,OAAOy/hB,GAAGz/hB,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEsmhB,YAAgBliB,EAAG,OAAO,GAAG,GAAGpkgB,IAAI0tgB,EAAG,OAAO,GAAG,OAAO,EARyRs5B,CAAG3ve,GAAGr3D,EAAE+yhB,GAAG17d,EAAEr3D,GAAUjlD,GAAG,KAAK,EAAEklD,EAAE0/hB,GAAG,KAAK1/hB,EAAEo3D,EAAEr3D,EAAEjqC,GAAG,MAAMiqC,EAAE,KAAK,EAAEC,EAAEggiB,GAAG,KAAKhgiB,EACpfo3D,EAAEr3D,EAAEjqC,GAAG,MAAMiqC,EAAE,KAAK,GAAGC,EAAEq/hB,GAAG,KAAKr/hB,EAAEo3D,EAAEr3D,EAAEjqC,GAAG,MAAMiqC,EAAE,KAAK,GAAGC,EAAEu/hB,GAAG,KAAKv/hB,EAAEo3D,EAAE07d,GAAG17d,EAAEn5F,KAAK8hC,GAAGjqC,GAAG,MAAMiqC,EAAE,MAAMpQ,MAAM+hD,EAAE,IAAI0lB,EAAE,KAAM,OAAOp3D,EAAE,KAAK,EAAE,OAAOo3D,EAAEp3D,EAAE/hC,KAAKnjB,EAAEklD,EAAEi3hB,aAA2CyI,GAAG3/hB,EAAEC,EAAEo3D,EAArCt8G,EAAEklD,EAAE82hB,cAAc1/d,EAAEt8G,EAAEg4kB,GAAG17d,EAAEt8G,GAAcgb,GAAG,KAAK,EAAE,OAAOshG,EAAEp3D,EAAE/hC,KAAKnjB,EAAEklD,EAAEi3hB,aAA2C+I,GAAGjgiB,EAAEC,EAAEo3D,EAArCt8G,EAAEklD,EAAE82hB,cAAc1/d,EAAEt8G,EAAEg4kB,GAAG17d,EAAEt8G,GAAcgb,GAAG,KAAK,EAAEiqC,EAAE,CAAO,GAANogiB,GAAGngiB,GAAM,OAAOD,EAAE,MAAMpQ,MAAM+hD,EAAE,MAAM0lB,EAAEp3D,EAAEi3hB,aAA+Bn8kB,GAAlB+rH,EAAE7mE,EAAEwohB,eAAkBpukB,QAAQysT,GAAG9mQ,EAAEC,GAAGu0hB,GAAGv0hB,EAAEo3D,EAAE,KAAKthG,GAAG,IAAIgrD,EAAE9gB,EAAEwohB,cAA0B,GAAZpxd,EAAEt2C,EAAE1mE,QAAWysH,EAAEojd,aAAL,CAAkB,GAAGpjd,EAAE,CAACzsH,QAAQg9G,EAAE6yd,cAAa,EAClfhwhB,MAAM6mB,EAAE7mB,MAAMqsiB,YAAYxlhB,EAAEwlhB,aAAatmiB,EAAE8zhB,YAAYC,UAAUltd,EAAE7mE,EAAEwohB,cAAc3hd,EAAU,IAAR7mE,EAAE68D,MAAU,CAAiB78D,EAAEiqd,GAAGlqd,EAAEC,EAAEo3D,EAAEthG,EAA3Bhb,EAAE60C,MAAM+hD,EAAE,OAAsB,MAAM3xC,EAAO,GAAGq3D,IAAIt8G,EAAE,CAAiBklD,EAAEiqd,GAAGlqd,EAAEC,EAAEo3D,EAAEthG,EAA3Bhb,EAAE60C,MAAM+hD,EAAE,OAAsB,MAAM3xC,EAAO,IAAI22hB,GAAGxF,GAAGlxhB,EAAEsohB,UAAU4B,cAAc7sd,YAAYo5d,GAAGz2hB,EAAEmsgB,IAAE,EAAGwqB,GAAG,KAAK7gkB,EAAEsikB,GAAGp4hB,EAAE,KAAKo3D,EAAEthG,GAAGkqC,EAAE5mC,MAAMtD,EAAEA,GAAGA,EAAE+mG,OAAe,EAAT/mG,EAAE+mG,MAAS,KAAK/mG,EAAEA,EAAEizhB,YAAY,CAAM,GAALwuC,KAAQnge,IAAIt8G,EAAE,CAACklD,EAAEs/hB,GAAGv/hB,EAAEC,EAAElqC,GAAG,MAAMiqC,EAAEq/hB,GAAGr/hB,EAAEC,EAAEo3D,EAAEthG,GAAGkqC,EAAEA,EAAE5mC,MAAM,OAAO4mC,EAAE,KAAK,EAAE,OAAOy4hB,GAAGz4hB,GAAG,OAAOD,GAAGhpC,GAAGipC,GAAGo3D,EAAEp3D,EAAE/hC,KAAKnjB,EAAEklD,EAAEi3hB,aAAapwd,EAAE,OAAO9mE,EAAEA,EAAEu3hB,cAAc,KAAKx2gB,EAAEhmE,EAAEuK,SACnfqrkB,GAAGt5d,EAAEt8G,GAAGgmE,EAAE,KAAK,OAAO+lD,GAAG6pd,GAAGt5d,EAAEyP,KAAK7mE,EAAE68D,OAAO,IAAIkje,GAAGhgiB,EAAEC,GAAGo/hB,GAAGr/hB,EAAEC,EAAE8gB,EAAEhrD,GAAGkqC,EAAE5mC,MAAM,KAAK,EAAE,OAAO,OAAO2mC,GAAGhpC,GAAGipC,GAAG,KAAK,KAAK,GAAG,OAAOsgiB,GAAGvgiB,EAAEC,EAAElqC,GAAG,KAAK,EAAE,OAAO0ikB,GAAGx4hB,EAAEA,EAAEsohB,UAAU4B,eAAe9yd,EAAEp3D,EAAEi3hB,aAAa,OAAOl3hB,EAAEC,EAAE5mC,MAAM++jB,GAAGn4hB,EAAE,KAAKo3D,EAAEthG,GAAGspkB,GAAGr/hB,EAAEC,EAAEo3D,EAAEthG,GAAGkqC,EAAE5mC,MAAM,KAAK,GAAG,OAAOg+F,EAAEp3D,EAAE/hC,KAAKnjB,EAAEklD,EAAEi3hB,aAA2CoI,GAAGt/hB,EAAEC,EAAEo3D,EAArCt8G,EAAEklD,EAAE82hB,cAAc1/d,EAAEt8G,EAAEg4kB,GAAG17d,EAAEt8G,GAAcgb,GAAG,KAAK,EAAE,OAAOspkB,GAAGr/hB,EAAEC,EAAEA,EAAEi3hB,aAAanhkB,GAAGkqC,EAAE5mC,MAAM,KAAK,EAAmD,KAAK,GAAG,OAAOgmkB,GAAGr/hB,EAAEC,EAAEA,EAAEi3hB,aAAa5xkB,SAASyQ,GAAGkqC,EAAE5mC,MAAM,KAAK,GAAG2mC,EAAE,CACrZ,GADsZq3D,EAC3fp3D,EAAE/hC,KAAKsvB,SAASzyC,EAAEklD,EAAEi3hB,aAAapwd,EAAE7mE,EAAEs3hB,cAAcx2gB,EAAEhmE,EAAEoB,MAAMozO,GAAEyjW,GAAG37d,EAAE+7d,eAAe/7d,EAAE+7d,cAAcrygB,EAAK,OAAO+lD,EAAE,GAAGsmd,GAAGtmd,EAAE3qH,MAAM4kE,IAAI,GAAG+lD,EAAExhH,WAAWvK,EAAEuK,WAAWwskB,GAAGj5V,QAAQ,CAAC54L,EAAEs/hB,GAAGv/hB,EAAEC,EAAElqC,GAAG,MAAMiqC,QAAQ,IAAc,QAAV8mE,EAAE7mE,EAAE5mC,SAAiBytG,EAAEyxB,OAAOt4F,GAAG,OAAO6mE,GAAG,CAAC,IAAIi9B,EAAEj9B,EAAEysd,aAAa,GAAG,OAAOxvb,EAAE,CAAChjF,EAAE+lD,EAAEztG,MAAM,IAAI,IAAI64C,EAAE6xF,EAAEyvb,aAAa,OAAOthhB,GAAG,CAAC,GAAGA,EAAEh9C,UAAUmiG,EAAE,CAAC,GAAG,IAAIyP,EAAEiU,IAAI,EAAC7oE,EAAE8pQ,IAAI,EAAEjmT,GAAGA,IAAKglH,IAAI,EAAE,IAAItwC,EAAEq8B,EAAEitd,YAAY,GAAG,OAAOtpf,EAAE,CAAY,IAAIz4B,GAAfy4B,EAAEA,EAAEswb,QAAel0U,QAAQ,OAAO70I,EAAEE,EAAErZ,KAAKqZ,GAAGA,EAAErZ,KAAKmZ,EAAEnZ,KAAKmZ,EAAEnZ,KAAKqZ,GAAGu4B,EAAEo8G,QAAQ30I,GAAG40D,EAAE2sd,OAClf19jB,EAAgB,QAAdm8C,EAAE40D,EAAE0hd,aAAqBt2gB,EAAEuhhB,OAAO19jB,GAAGyuS,GAAG19L,EAAEyxB,OAAOxiI,EAAEkqC,GAAG8jG,EAAE0vb,OAAO19jB,EAAE,MAAMm8C,EAAEA,EAAErZ,WAAW,GAAG,KAAKiuE,EAAEiU,IAAIh6D,EAAE+lD,EAAE5oG,OAAO+hC,EAAE/hC,KAAK,KAAK4oG,EAAEztG,WAAW,GAAG,KAAKytG,EAAEiU,IAAI,CAAY,GAAG,QAAdh6D,EAAE+lD,EAAEyxB,QAAmB,MAAM3oG,MAAM+hD,EAAE,MAAM5wB,EAAE0ygB,OAAO19jB,EAAgB,QAAdguI,EAAEhjF,EAAEyngB,aAAqBzkb,EAAE0vb,OAAO19jB,GAAGyuS,GAAGzjP,EAAEhrD,EAAEkqC,GAAG8gB,EAAE+lD,EAAEkib,aAAajoe,EAAE+lD,EAAEztG,MAAM,GAAG,OAAO0nD,EAAEA,EAAEw3E,OAAOzxB,OAAO,IAAI/lD,EAAE+lD,EAAE,OAAO/lD,GAAG,CAAC,GAAGA,IAAI9gB,EAAE,CAAC8gB,EAAE,KAAK,MAAkB,GAAG,QAAf+lD,EAAE/lD,EAAEioe,SAAoB,CAAClib,EAAEyxB,OAAOx3E,EAAEw3E,OAAOx3E,EAAE+lD,EAAE,MAAM/lD,EAAEA,EAAEw3E,OAAOzxB,EAAE/lD,EAAEs+gB,GAAGr/hB,EAAEC,EAAEllD,EAAEuK,SAASyQ,GAAGkqC,EAAEA,EAAE5mC,MAAM,OAAO4mC,EAAE,KAAK,EAAE,OAAOllD,EAAEklD,EAAE/hC,KAAKm5F,EAAEp3D,EAAEi3hB,aAAa5xkB,SACnfgukB,GAAGrzhB,EAAElqC,GAAWshG,EAAEA,EAAVt8G,EAAE44kB,GAAG54kB,IAAUklD,EAAE68D,OAAO,EAAEuie,GAAGr/hB,EAAEC,EAAEo3D,EAAEthG,GAAGkqC,EAAE5mC,MAAM,KAAK,GAAG,OAAgBte,EAAEg4kB,GAAX17d,EAAEp3D,EAAE/hC,KAAY+hC,EAAEi3hB,cAA6BsI,GAAGx/hB,EAAEC,EAAEo3D,EAAtBt8G,EAAEg4kB,GAAG17d,EAAEn5F,KAAKnjB,GAAcgb,GAAG,KAAK,GAAG,OAAO2pkB,GAAG1/hB,EAAEC,EAAEA,EAAE/hC,KAAK+hC,EAAEi3hB,aAAanhkB,GAAG,KAAK,GAAG,OAAOshG,EAAEp3D,EAAE/hC,KAAKnjB,EAAEklD,EAAEi3hB,aAAan8kB,EAAEklD,EAAE82hB,cAAc1/d,EAAEt8G,EAAEg4kB,GAAG17d,EAAEt8G,GAAG,OAAOilD,IAAIA,EAAEwohB,UAAU,KAAKvohB,EAAEuohB,UAAU,KAAKvohB,EAAE68D,OAAO,GAAG78D,EAAE86E,IAAI,EAAEo3c,GAAG96d,IAAIr3D,GAAE,EAAGuyhB,GAAGtyhB,IAAID,GAAE,EAAGszhB,GAAGrzhB,EAAElqC,GAAGw/jB,GAAGt1hB,EAAEo3D,EAAEt8G,GAAG46kB,GAAG11hB,EAAEo3D,EAAEt8G,EAAEgb,GAAGoqkB,GAAG,KAAKlgiB,EAAEo3D,GAAE,EAAGr3D,EAAEjqC,GAAG,KAAK,GAAG,OAAOkrkB,GAAGjhiB,EAAEC,EAAElqC,GAAG,KAAK,GAAG,OAAO6pkB,GAAG5/hB,EAAEC,EAAElqC,GAAG,MAAM65B,MAAM+hD,EAAE,IAAI1xC,EAAE86E,OAYjI,IAAIksd,GAAG,oBAAoBjmd,YAAYA,YAAY,SAAShhF,GAAGrb,QAAQsV,MAAM+F,IAAI,SAASkniB,GAAGlniB,GAAGzlD,KAAK4slB,cAAcnniB,EAChI,SAASoniB,GAAGpniB,GAAGzlD,KAAK4slB,cAAcnniB,EAC3J,SAASqniB,GAAGrniB,GAAG,SAASA,GAAG,IAAIA,EAAEu1B,UAAU,IAAIv1B,EAAEu1B,UAAU,KAAKv1B,EAAEu1B,UAAU,SAASxyE,GAAGi9C,GAAG,SAASA,GAAG,IAAIA,EAAEu1B,UAAU,IAAIv1B,EAAEu1B,UAAU,KAAKv1B,EAAEu1B,WAAW,IAAIv1B,EAAEu1B,UAAU,iCAAiCv1B,EAAEo9D,YAAY,SAASkqe,MAEna,SAASC,GAAGvniB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,IAAI+rH,EAAE/wG,EAAEwskB,oBAAoB,GAAGz7d,EAAE,CAAC,IAAI/lD,EAAE+lD,EAAE,GAAG,oBAAoB/rH,EAAE,CAAC,IAAIgpJ,EAAEhpJ,EAAEA,EAAE,WAAW,IAAIilD,EAAE4miB,GAAG7lhB,GAAGgjF,EAAE/oJ,KAAKglD,IAAI2miB,GAAG1miB,EAAE8gB,EAAE/gB,EAAEjlD,QAAQgmE,EADxJ,SAAY/gB,EAAEC,EAAElqC,EAAEshG,EAAEt8G,GAAG,GAAGA,EAAE,CAAC,GAAG,oBAAoBs8G,EAAE,CAAC,IAAIyP,EAAEzP,EAAEA,EAAE,WAAW,IAAIr3D,EAAE4miB,GAAG7lhB,GAAG+lD,EAAE9rH,KAAKglD,IAAI,IAAI+gB,EAAE2lhB,GAAGzmiB,EAAEo3D,EAAEr3D,EAAE,EAAE,MAAK,EAAG,EAAG,GAAGsniB,IAAmF,OAA/EtniB,EAAEuiiB,oBAAoBxhhB,EAAE/gB,EAAEiwhB,IAAIlvgB,EAAE83K,QAAQ9rH,GAAG,IAAI/sE,EAAEu1B,SAASv1B,EAAEr7B,WAAWq7B,GAAGoliB,KAAYrkhB,EAAE,KAAKhmE,EAAEilD,EAAE+9I,WAAW/9I,EAAE0H,YAAY3sD,GAAG,GAAG,oBAAoBs8G,EAAE,CAAC,IAAI0sC,EAAE1sC,EAAEA,EAAE,WAAW,IAAIr3D,EAAE4miB,GAAG10hB,GAAG6xF,EAAE/oJ,KAAKglD,IAAI,IAAIkS,EAAEo0hB,GAAGtmiB,EAAE,GAAE,EAAG,KAAK,GAAK,EAAG,EAAG,GAAGsniB,IAA0G,OAAtGtniB,EAAEuiiB,oBAAoBrwhB,EAAElS,EAAEiwhB,IAAI/9gB,EAAE2mL,QAAQ9rH,GAAG,IAAI/sE,EAAEu1B,SAASv1B,EAAEr7B,WAAWq7B,GAAGoliB,IAAG,WAAWuB,GAAG1miB,EAAEiS,EAAEn8C,EAAEshG,MAAYnlD,EACnUkwP,CAAGrsS,EAAEkqC,EAAED,EAAEjlD,EAAEs8G,GAAG,OAAOuve,GAAG7lhB,GAHlLqmhB,GAAGrnlB,UAAU+Z,OAAOotkB,GAAGnnlB,UAAU+Z,OAAO,SAASkmC,GAAG,IAAIC,EAAE1lD,KAAK4slB,cAAc,GAAG,OAAOlniB,EAAE,MAAMrQ,MAAM+hD,EAAE,MAAMg1f,GAAG3miB,EAAEC,EAAE,KAAK,OAAOmniB,GAAGrnlB,UAAU81hB,QAAQqxD,GAAGnnlB,UAAU81hB,QAAQ,WAAW,IAAI71e,EAAEzlD,KAAK4slB,cAAc,GAAG,OAAOnniB,EAAE,CAACzlD,KAAK4slB,cAAc,KAAK,IAAIlniB,EAAED,EAAEmqhB,cAAcib,IAAG,WAAWuB,GAAG,KAAK3miB,EAAE,KAAK,SAAQC,EAAEgwhB,IAAI,OACpTmX,GAAGrnlB,UAAUynlB,2BAA2B,SAASxniB,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAE8vgB,KAAK/vgB,EAAE,CAAC8phB,UAAU,KAAK3okB,OAAO6+C,EAAE+3F,SAAS93F,GAAG,IAAI,IAAIlqC,EAAE,EAAEA,EAAEi5iB,GAAGn0jB,QAAQ,IAAIolD,GAAGA,EAAE+ugB,GAAGj5iB,GAAGgiI,SAAShiI,KAAKi5iB,GAAGlljB,OAAOiM,EAAE,EAAEiqC,GAAG,IAAIjqC,GAAG47iB,GAAG3xgB,KAERqlgB,GAAG,SAASrlgB,GAAG,OAAOA,EAAE+6E,KAAK,KAAK,EAAE,IAAI96E,EAAED,EAAEuohB,UAAU,GAAGtohB,EAAE44L,QAAQ4vV,cAAcyB,aAAa,CAAC,IAAIn0jB,EAAE2siB,GAAGzigB,EAAEuphB,cAAc,IAAIzzjB,IAAIy4iB,GAAGvugB,EAAI,EAAFlqC,GAAKgxS,GAAG9mQ,EAAEujgB,MAAK,KAAO,EAAFlB,MAAOy8B,GAAGv7B,KAAI,IAAIqvB,OAAO,MAAM,KAAK,GAAG,IAAIx7d,EAAE24M,KAAIo1R,IAAG,WAAW,OAAOlQ,GAAGl1hB,EAAE,EAAEq3D,MAAKyve,GAAG9miB,EAAE,KAAKowgB,GAAG,SAASpwgB,GAAM,KAAKA,EAAE+6E,MAAem6c,GAAGl1hB,EAAE,UAATgwQ,MAAsB82R,GAAG9miB,EAAE,aACzeuvgB,GAAG,SAASvvgB,GAAG,GAAG,KAAKA,EAAE+6E,IAAI,CAAC,IAAI96E,EAAE+vQ,KAAIj6S,EAAEk/jB,GAAGj1hB,GAAGk1hB,GAAGl1hB,EAAEjqC,EAAEkqC,GAAG6miB,GAAG9miB,EAAEjqC,KAAKg6iB,GAAG,WAAW,OAAO7/P,IAAG4+P,GAAG,SAAS9ugB,EAAEC,GAAG,IAAIlqC,EAAEm6S,GAAE,IAAI,OAAOA,GAAElwQ,EAAEC,IAAf,QAA2BiwQ,GAAEn6S,IAClJk3iB,GAAG,SAASjtgB,EAAEC,EAAElqC,GAAG,OAAOkqC,GAAG,IAAK,QAAyB,GAAjBgqgB,EAAGjqgB,EAAEjqC,GAAGkqC,EAAElqC,EAAEhO,KAAQ,UAAUgO,EAAEmI,MAAM,MAAM+hC,EAAE,CAAC,IAAIlqC,EAAEiqC,EAAEjqC,EAAE4O,YAAY5O,EAAEA,EAAE4O,WAAsF,IAA3E5O,EAAEA,EAAE9V,iBAAiB,cAAc4V,KAAKC,UAAU,GAAGmqC,GAAG,mBAAuBA,EAAE,EAAEA,EAAElqC,EAAElb,OAAOolD,IAAI,CAAC,IAAIo3D,EAAEthG,EAAEkqC,GAAG,GAAGo3D,IAAIr3D,GAAGq3D,EAAEm7c,OAAOxygB,EAAEwygB,KAAK,CAAC,IAAIz3jB,EAAEspjB,GAAGhtc,GAAG,IAAIt8G,EAAE,MAAM60C,MAAM+hD,EAAE,KAAKmzd,EAAGztc,GAAG4yc,EAAG5yc,EAAEt8G,KAAK,MAAM,IAAK,WAAWutjB,GAAGtogB,EAAEjqC,GAAG,MAAM,IAAK,SAAmB,OAAVkqC,EAAElqC,EAAE5Z,QAAeomI,GAAGviF,IAAIjqC,EAAE6pc,SAAS3/Z,GAAE,KAAM+kgB,GAAGmgC,GAAGz/B,GAAG0/B,GACpa,IAAIqC,GAAG,CAACC,uBAAsB,EAAGC,OAAO,CAAChgC,GAAG+kB,GAAGroB,GAAGuB,GAAGmJ,GAAGo2B,KAAKyC,GAAG,CAACC,wBAAwB95B,GAAG+5B,WAAW,EAAEzkd,QAAQ,4BAA4B0kd,oBAAoB,aAC7JvkS,GAAG,CAACskS,WAAWF,GAAGE,WAAWzkd,QAAQukd,GAAGvkd,QAAQ0kd,oBAAoBH,GAAGG,oBAAoBC,eAAeJ,GAAGI,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,gBAAgB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBptR,EAAG49Q,uBAAuByP,wBAAwB,SAAS3oiB,GAAW,OAAO,QAAfA,EAAE4tgB,GAAG5tgB,IAAmB,KAAKA,EAAEuohB,WAAWsf,wBAAwBD,GAAGC,yBARjN,WAAc,OAAO,MAShUe,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,KAAKC,kBAAkB,6BAA6B,GAAG,qBAAqBC,+BAA+B,CAAC,IAAIC,GAAGD,+BAA+B,IAAIC,GAAGh2P,YAAYg2P,GAAGC,cAAc,IAAI5iC,GAAG2iC,GAAGz/U,OAAO85C,IAAI0kQ,GAAGihC,GAAG,MAAMnpiB,MAAKqqC,EAAQ47e,mDAAmDwhB,GACzYp9f,EAAQg/f,aAAa,SAASrpiB,EAAEC,GAAG,IAAIlqC,EAAE,EAAEzT,UAAUzH,aAAQ,IAASyH,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAI+klB,GAAGpniB,GAAG,MAAMrQ,MAAM+hD,EAAE,MAAM,OAAO60f,GAAGxmiB,EAAEC,EAAE,KAAKlqC,IAAIs0E,EAAQi/f,WAAW,SAAStpiB,EAAEC,GAAG,IAAIoniB,GAAGrniB,GAAG,MAAMpQ,MAAM+hD,EAAE,MAAM,IAAI57E,GAAE,EAAGshG,EAAE,GAAGt8G,EAAEkslB,GAA4P,OAAzP,OAAOhniB,QAAG,IAASA,KAAI,IAAKA,EAAEspiB,sBAAsBxzkB,GAAE,QAAI,IAASkqC,EAAEg9hB,mBAAmB5le,EAAEp3D,EAAEg9hB,uBAAkB,IAASh9hB,EAAE2liB,qBAAqB7qlB,EAAEklD,EAAE2liB,qBAAqB3liB,EAAEqmiB,GAAGtmiB,EAAE,GAAE,EAAG,KAAK,EAAKjqC,EAAE,EAAGshG,EAAEt8G,GAAGilD,EAAEiwhB,IAAIhwhB,EAAE44L,QAAQ9rH,GAAG,IAAI/sE,EAAEu1B,SAASv1B,EAAEr7B,WAAWq7B,GAAU,IAAIkniB,GAAGjniB,IACnfoqC,EAAQm/f,YAAY,SAASxpiB,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEu1B,SAAS,OAAOv1B,EAAE,IAAIC,EAAED,EAAE+0hB,gBAAgB,QAAG,IAAS90hB,EAAE,CAAC,GAAG,oBAAoBD,EAAElmC,OAAO,MAAM81B,MAAM+hD,EAAE,MAAiC,MAA3B3xC,EAAE3+C,OAAOC,KAAK0+C,GAAGx0C,KAAK,KAAWokC,MAAM+hD,EAAE,IAAI3xC,IAAyC,OAA5BA,EAAE,QAAVA,EAAE4tgB,GAAG3tgB,IAAc,KAAKD,EAAEuohB,WAAoBl+e,EAAQo/f,UAAU,SAASzpiB,GAAG,OAAOoliB,GAAGpliB,IAAIqqC,EAAQw0B,QAAQ,SAAS7+D,EAAEC,EAAElqC,GAAG,IAAIhT,GAAGk9C,GAAG,MAAMrQ,MAAM+hD,EAAE,MAAM,OAAO41f,GAAG,KAAKvniB,EAAEC,GAAE,EAAGlqC,IAC7Ys0E,EAAQq/f,YAAY,SAAS1piB,EAAEC,EAAElqC,GAAG,IAAIsxkB,GAAGrniB,GAAG,MAAMpQ,MAAM+hD,EAAE,MAAM,IAAI0lB,EAAE,MAAMthG,GAAGA,EAAE4zkB,iBAAiB,KAAK5ulB,GAAE,EAAG+rH,EAAE,GAAG/lD,EAAEkmhB,GAAyO,GAAtO,OAAOlxkB,QAAG,IAASA,KAAI,IAAKA,EAAEwzkB,sBAAsBxulB,GAAE,QAAI,IAASgb,EAAEknkB,mBAAmBn2d,EAAE/wG,EAAEknkB,uBAAkB,IAASlnkB,EAAE6vkB,qBAAqB7khB,EAAEhrD,EAAE6vkB,qBAAqB3liB,EAAEymiB,GAAGzmiB,EAAE,KAAKD,EAAE,EAAE,MAAMjqC,EAAEA,EAAE,KAAKhb,EAAE,EAAG+rH,EAAE/lD,GAAG/gB,EAAEiwhB,IAAIhwhB,EAAE44L,QAAQ9rH,GAAG/sE,GAAMq3D,EAAE,IAAIr3D,EAAE,EAAEA,EAAEq3D,EAAEx8G,OAAOmlD,IAA2BjlD,GAAhBA,GAAPgb,EAAEshG,EAAEr3D,IAAO4piB,aAAgB7zkB,EAAE8zkB,SAAS,MAAM5piB,EAAEomiB,gCAAgCpmiB,EAAEomiB,gCAAgC,CAACtwkB,EAAEhb,GAAGklD,EAAEomiB,gCAAgClrlB,KAAK4a,EACvhBhb,GAAG,OAAO,IAAIqslB,GAAGnniB,IAAIoqC,EAAQvwE,OAAO,SAASkmC,EAAEC,EAAElqC,GAAG,IAAIhT,GAAGk9C,GAAG,MAAMrQ,MAAM+hD,EAAE,MAAM,OAAO41f,GAAG,KAAKvniB,EAAEC,GAAE,EAAGlqC,IAAIs0E,EAAQy/f,uBAAuB,SAAS9piB,GAAG,IAAIj9C,GAAGi9C,GAAG,MAAMpQ,MAAM+hD,EAAE,KAAK,QAAO3xC,EAAEuiiB,sBAAqB6C,IAAG,WAAWmC,GAAG,KAAK,KAAKvniB,GAAE,GAAG,WAAWA,EAAEuiiB,oBAAoB,KAAKviiB,EAAEiwhB,IAAI,YAAS,IAAQ5lf,EAAQ0/f,wBAAwB5E,GAC/U96f,EAAQ2/f,oCAAoC,SAAShqiB,EAAEC,EAAElqC,EAAEshG,GAAG,IAAIt0G,GAAGgT,GAAG,MAAM65B,MAAM+hD,EAAE,MAAM,GAAG,MAAM3xC,QAAG,IAASA,EAAE+0hB,gBAAgB,MAAMnliB,MAAM+hD,EAAE,KAAK,OAAO41f,GAAGvniB,EAAEC,EAAElqC,GAAE,EAAGshG,IAAIhtB,EAAQg5C,QAAQ,mEC/TzLrxE,EAAIs4B,EAAQ,OAEdD,EAAQ,EAAar4B,EAAEs3hB,WACDt3hB,EAAE03hB,iDCH1B,SAASO,IAEP,GAC4C,qBAAnCf,gCAC4C,oBAA5CA,+BAA+Be,SAcxC,IAEEf,+BAA+Be,SAASA,GACxC,MAAOhnd,GAGPt+F,QAAQsV,MAAMgpF,IAOhBgnd,GACAl1d,EAAO1qC,QAAU,EAAjB0qC,uCChCF,IAAIh/C,EAAUj2E,MAAMi2E,QAChBqnG,EAAU/7K,OAAOC,KACjB4olB,EAAU7olB,OAAOtB,UAAUsxE,eAC3B84gB,EAAoC,qBAAZtvhB,QAE5B,SAASuvhB,EAAMpqiB,EAAGC,GAEhB,GAAID,IAAMC,EAAG,OAAO,EAEpB,GAAID,GAAKC,GAAiB,iBAALD,GAA6B,iBAALC,EAAe,CAC1D,IAEI35C,EACAzL,EACA0G,EAJA8olB,EAAOt0gB,EAAQ/1B,GACfsqiB,EAAOv0gB,EAAQ91B,GAKnB,GAAIoqiB,GAAQC,EAAM,CAEhB,IADAzvlB,EAASmlD,EAAEnlD,SACGolD,EAAEplD,OAAQ,OAAO,EAC/B,IAAKyL,EAAIzL,EAAgB,IAARyL,KACf,IAAK8jlB,EAAMpqiB,EAAE15C,GAAI25C,EAAE35C,IAAK,OAAO,EACjC,OAAO,EAGT,GAAI+jlB,GAAQC,EAAM,OAAO,EAEzB,IAAIC,EAAQvqiB,aAAa6oB,KACrB2hhB,EAAQvqiB,aAAa4oB,KACzB,GAAI0hhB,GAASC,EAAO,OAAO,EAC3B,GAAID,GAASC,EAAO,OAAOxqiB,EAAEw+M,WAAav+M,EAAEu+M,UAE5C,IAAIisV,EAAUzqiB,aAAauD,OACvBmniB,EAAUzqiB,aAAasD,OAC3B,GAAIkniB,GAAWC,EAAS,OAAO,EAC/B,GAAID,GAAWC,EAAS,OAAO1qiB,EAAEh3C,YAAci3C,EAAEj3C,WAEjD,IAAI1H,EAAO87K,EAAQp9H,GAGnB,IAFAnlD,EAASyG,EAAKzG,UAECuiL,EAAQn9H,GAAGplD,OACxB,OAAO,EAET,IAAKyL,EAAIzL,EAAgB,IAARyL,KACf,IAAK4jlB,EAAQlvlB,KAAKilD,EAAG3+C,EAAKgF,IAAK,OAAO,EAKxC,GAAI6jlB,GAAkBnqiB,aAAa6a,SAAW5a,aAAa4a,QACzD,OAAO7a,IAAMC,EAGf,IAAK35C,EAAIzL,EAAgB,IAARyL,KAEf,IAAY,YADZ/E,EAAMD,EAAKgF,MACa05C,EAAEsmhB,YAQnB8jB,EAAMpqiB,EAAEz+C,GAAM0+C,EAAE1+C,IAAO,OAAO,EAMvC,OAAO,EAGT,OAAOy+C,IAAMA,GAAKC,IAAMA,EAI1B80E,EAAO1qC,QAAU,SAAuBrqC,EAAGC,GACzC,IACE,OAAOmqiB,EAAMpqiB,EAAGC,GAChB,MAAOhG,GACP,GAAKA,EAAMjU,SAAWiU,EAAMjU,QAAQ9pB,MAAM,sBAA2C,aAAlB+9B,EAAM+5B,OAOvE,OADArvC,QAAQC,KAAK,mEAAoEqV,EAAMlyC,KAAMkyC,EAAMjU,UAC5F,EAGT,MAAMiU,sCClFG,IAAIgG,EAAE,oBAAoBq0E,QAAQA,OAAO4xc,IAAInwjB,EAAEkqC,EAAEq0E,OAAO4xc,IAAI,iBAAiB,MAAM7ud,EAAEp3D,EAAEq0E,OAAO4xc,IAAI,gBAAgB,MAAMnrkB,EAAEklD,EAAEq0E,OAAO4xc,IAAI,kBAAkB,MAAMp/c,EAAE7mE,EAAEq0E,OAAO4xc,IAAI,qBAAqB,MAAMnlgB,EAAE9gB,EAAEq0E,OAAO4xc,IAAI,kBAAkB,MAAMnib,EAAE9jG,EAAEq0E,OAAO4xc,IAAI,kBAAkB,MAAMh0gB,EAAEjS,EAAEq0E,OAAO4xc,IAAI,iBAAiB,MAAMz7e,EAAExqC,EAAEq0E,OAAO4xc,IAAI,oBAAoB,MAAMl0gB,EAAE/R,EAAEq0E,OAAO4xc,IAAI,yBAAyB,MAAMj0gB,EAAEhS,EAAEq0E,OAAO4xc,IAAI,qBAAqB,MAAMv0e,EAAE1xC,EAAEq0E,OAAO4xc,IAAI,kBAAkB,MAAMzxX,EAAEx0J,EACpfq0E,OAAO4xc,IAAI,uBAAuB,MAAMplgB,EAAE7gB,EAAEq0E,OAAO4xc,IAAI,cAAc,MAAMz1gB,EAAExQ,EAAEq0E,OAAO4xc,IAAI,cAAc,MAAM9khB,EAAEnB,EAAEq0E,OAAO4xc,IAAI,eAAe,MAAMlib,EAAE/jG,EAAEq0E,OAAO4xc,IAAI,qBAAqB,MAAM36jB,EAAE00C,EAAEq0E,OAAO4xc,IAAI,mBAAmB,MAAMhujB,EAAE+nC,EAAEq0E,OAAO4xc,IAAI,eAAe,MAClQ,SAAS/ld,EAAEngE,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAI+oJ,EAAE/oJ,EAAEsmhB,SAAS,OAAOv9X,GAAG,KAAKhzL,EAAE,OAAOiqC,EAAEA,EAAE9hC,MAAQ,KAAKusE,EAAE,KAAKz4B,EAAE,KAAKj3D,EAAE,KAAKgmE,EAAE,KAAK+lD,EAAE,KAAKn1B,EAAE,OAAO3xC,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEsmhB,UAAY,KAAKp0gB,EAAE,KAAKD,EAAE,KAAKxB,EAAE,KAAKqQ,EAAE,KAAKijF,EAAE,OAAO/jG,EAAE,QAAQ,OAAO+oJ,GAAG,KAAK1xF,EAAE,OAAO0xF,IAAI,SAAS0sR,EAAEz1a,GAAG,OAAOmgE,EAAEngE,KAAKgS,EAAEq4B,EAAQsggB,UAAUlggB,EAAEJ,EAAQuggB,eAAe54hB,EAAEq4B,EAAQwggB,gBAAgB34hB,EAAEm4B,EAAQyggB,gBAAgB/mc,EAAE15D,EAAQxvB,QAAQ9kD,EAAEs0E,EAAQojc,WAAWx7d,EAAEo4B,EAAQ0ggB,SAAShwlB,EAAEsvF,EAAQ2ggB,KAAKv6hB,EAAE45B,EAAQqjc,KAAK5sd,EAAEupB,EAAQ4ggB,OAAO5ze,EAChfhtB,EAAQ6ggB,SAASnqhB,EAAEspB,EAAQ8ggB,WAAWrke,EAAEz8B,EAAQ+ggB,SAASz5f,EAAEtH,EAAQghgB,YAAY,SAASrriB,GAAG,OAAOy1a,EAAEz1a,IAAImgE,EAAEngE,KAAKyqC,GAAGJ,EAAQihgB,iBAAiB71H,EAAEprY,EAAQkhgB,kBAAkB,SAASvriB,GAAG,OAAOmgE,EAAEngE,KAAKkS,GAAGm4B,EAAQmhgB,kBAAkB,SAASxriB,GAAG,OAAOmgE,EAAEngE,KAAK+jG,GAAG15D,EAAQohgB,UAAU,SAASzriB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEsmhB,WAAWvwjB,GAAGs0E,EAAQqhgB,aAAa,SAAS1riB,GAAG,OAAOmgE,EAAEngE,KAAKiS,GAAGo4B,EAAQshgB,WAAW,SAAS3riB,GAAG,OAAOmgE,EAAEngE,KAAKjlD,GAAGsvF,EAAQuhgB,OAAO,SAAS5riB,GAAG,OAAOmgE,EAAEngE,KAAKyQ,GACzd45B,EAAQmjc,OAAO,SAASxte,GAAG,OAAOmgE,EAAEngE,KAAK8gB,GAAGupB,EAAQwhgB,SAAS,SAAS7riB,GAAG,OAAOmgE,EAAEngE,KAAKq3D,GAAGhtB,EAAQyhgB,WAAW,SAAS9riB,GAAG,OAAOmgE,EAAEngE,KAAK+gB,GAAGspB,EAAQ0hgB,aAAa,SAAS/riB,GAAG,OAAOmgE,EAAEngE,KAAK8mE,GAAGz8B,EAAQ2hgB,WAAW,SAAShsiB,GAAG,OAAOmgE,EAAEngE,KAAK2xC,GACzOtH,EAAQ4hgB,mBAAmB,SAASjsiB,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIjlD,GAAGilD,IAAIgS,GAAGhS,IAAI+gB,GAAG/gB,IAAI8mE,GAAG9mE,IAAI2xC,GAAG3xC,IAAIy0J,GAAG,kBAAkBz0J,GAAG,OAAOA,IAAIA,EAAEsmhB,WAAW71gB,GAAGzQ,EAAEsmhB,WAAWxlgB,GAAG9gB,EAAEsmhB,WAAWvib,GAAG/jG,EAAEsmhB,WAAWp0gB,GAAGlS,EAAEsmhB,WAAWr0gB,GAAGjS,EAAEsmhB,WAAWtib,GAAGhkG,EAAEsmhB,WAAW/6jB,GAAGy0C,EAAEsmhB,WAAWpujB,GAAG8nC,EAAEsmhB,WAAWllhB,IAAIipC,EAAQ6hgB,OAAO/re,sCCXjU4U,EAAO1qC,QAAU,EAAjB0qC,0BCFAA,EAAO1qC,QAAU,CACf8hgB,mBAAoB,WAClB,OAAO,MAETC,wBAAyB,WACvB,OAAO,8SCJb,IAAInvV,EAASt4N,QACN,SAAS0njB,IACd,OAAOpvV,EAEF,SAASqvV,EAAUC,GACxBtvV,EAASsvV,sFCJAC,EAA6B,WACtC,SAASA,IACPjylB,KAAKq/P,MAAQ,GACbr/P,KAAKkylB,aAAe,EAEpBlylB,KAAKmylB,SAAW,SAAU3jiB,GACxBA,KAGFxuD,KAAKoylB,cAAgB,SAAU5jiB,GAC7BA,KAIJ,IAAI6jiB,EAASJ,EAAczslB,UAoF3B,OAlFA6slB,EAAOC,MAAQ,SAAe9jiB,GAC5B,IAAI3/C,EACJ7O,KAAKkylB,eAEL,IACErjlB,EAAS2/C,IADX,QAGExuD,KAAKkylB,eAEAlylB,KAAKkylB,cACRlylB,KAAKuylB,QAIT,OAAO1jlB,GAGTwjlB,EAAO30d,SAAW,SAAkBlvE,GAClC,IAAIimB,EAAQz0E,KAERA,KAAKkylB,aACPlylB,KAAKq/P,MAAMz+P,KAAK4tD,IAEhBgkiB,EAAAA,EAAAA,KAAkB,WAChB/9gB,EAAM09gB,SAAS3jiB,OASrB6jiB,EAAOI,WAAa,SAAoBjkiB,GACtC,IAAI8gX,EAAStva,KAEb,OAAO,WACL,IAAK,IAAI+3O,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAGzBs3L,EAAO5xS,UAAS,WACdlvE,EAASxoC,WAAM,EAAQQ,QAK7B6rkB,EAAOE,MAAQ,WACb,IAAItiL,EAASjwa,KAETq/P,EAAQr/P,KAAKq/P,MACjBr/P,KAAKq/P,MAAQ,GAETA,EAAM/+P,SACRkylB,EAAAA,EAAAA,KAAkB,WAChBviL,EAAOmiL,eAAc,WACnB/yV,EAAMp/P,SAAQ,SAAUuuD,GACtByhX,EAAOkiL,SAAS3jiB,aAY1B6jiB,EAAOK,kBAAoB,SAA2B94jB,GACpD55B,KAAKmylB,SAAWv4jB,GAQlBy4jB,EAAOM,uBAAyB,SAAgC/4jB,GAC9D55B,KAAKoylB,cAAgBx4jB,GAGhBq4jB,EAlG+B,GAqG7BW,EAAgB,IAAIX,2GCvGhB,SAASY,EAAeC,EAAUC,GAC/CD,EAASttlB,UAAYsB,OAAOw4B,OAAOyzjB,EAAWvtlB,WAC9CstlB,EAASttlB,UAAUgJ,YAAcsklB,GACjC,EAAAh3c,EAAA,GAAeg3c,EAAUC,2BCJhBC,EAA4B,WACrC,SAASA,IACPhzlB,KAAKwkI,UAAY,GAGnB,IAAI6td,EAASW,EAAaxtlB,UA8B1B,OA5BA6slB,EAAOlhlB,UAAY,SAAmB9Q,GACpC,IAAIo0E,EAAQz0E,KAERwuD,EAAWnuD,GAAY,aAM3B,OAFAL,KAAKwkI,UAAU5jI,KAAK4tD,GACpBxuD,KAAKizlB,cACE,WACLx+gB,EAAM+vD,UAAY/vD,EAAM+vD,UAAU5+H,QAAO,SAAUoL,GACjD,OAAOA,IAAMw9C,KAGfimB,EAAMy+gB,kBAIVb,EAAOc,aAAe,WACpB,OAAOnzlB,KAAKwkI,UAAUlkI,OAAS,GAGjC+xlB,EAAOY,YAAc,aAGrBZ,EAAOa,cAAgB,aAGhBF,EAnC8B,GC8F5BI,EAAe,IA3Fa,SAAUC,GAG/C,SAASC,IACP,IAAI7+gB,EAuBJ,OArBAA,EAAQ4+gB,EAAc5ylB,KAAKT,OAASA,MAE9Bq7M,MAAQ,SAAUv9K,GACtB,IAAIm/M,EAEJ,IAAKs2W,EAAAA,KAAmC,OAArBt2W,EAAUx3N,aAAkB,EAASw3N,EAAQv8O,kBAAmB,CACjF,IAAIL,EAAW,WACb,OAAOy9B,KAMT,OAFArY,OAAO/kB,iBAAiB,mBAAoBL,GAAU,GACtDolB,OAAO/kB,iBAAiB,QAASL,GAAU,GACpC,WAELolB,OAAOtlB,oBAAoB,mBAAoBE,GAC/ColB,OAAOtlB,oBAAoB,QAASE,MAKnCo0E,EA1BTo+gB,EAAeS,EAAcD,GA6B7B,IAAIhB,EAASiB,EAAa9tlB,UA2D1B,OAzDA6slB,EAAOY,YAAc,WACdjzlB,KAAKqrK,SACRrrK,KAAKwzlB,iBAAiBxzlB,KAAKq7M,QAI/Bg3Y,EAAOa,cAAgB,WAEnB,IAAIO,EADDzzlB,KAAKmzlB,iBAG0B,OAAjCM,EAAgBzzlB,KAAKqrK,UAA4Boob,EAAchzlB,KAAKT,MACrEA,KAAKqrK,aAAUjzJ,IAInBi6kB,EAAOmB,iBAAmB,SAA0Bn4Y,GAClD,IAAIq4Y,EACApkL,EAAStva,KAEbA,KAAKq7M,MAAQA,EACsB,OAAlCq4Y,EAAiB1zlB,KAAKqrK,UAA4Bqob,EAAejzlB,KAAKT,MACvEA,KAAKqrK,QAAUgwC,GAAM,SAAU9sK,GACN,mBAAZA,EACT+gY,EAAOqkL,WAAWpljB,GAElB+gY,EAAOxxY,cAKbu0jB,EAAOsB,WAAa,SAAoBpljB,GACtCvuC,KAAKuuC,QAAUA,EAEXA,GACFvuC,KAAK89B,WAITu0jB,EAAOv0jB,QAAU,WACf99B,KAAKwkI,UAAUvkI,SAAQ,SAAUI,GAC/BA,QAIJgylB,EAAOlgd,UAAY,WACjB,MAA4B,mBAAjBnyI,KAAKuuC,QACPvuC,KAAKuuC,QAIU,qBAAb/rC,UAIJ,MAAC4V,EAAW,UAAW,aAAa0jH,SAASt5H,SAASoxlB,kBAGxDN,EAzF8B,CA0FrCN,ICASa,EAAgB,IA1Fa,SAAUR,GAGhD,SAASS,IACP,IAAIr/gB,EAuBJ,OArBAA,EAAQ4+gB,EAAc5ylB,KAAKT,OAASA,MAE9Bq7M,MAAQ,SAAU04Y,GACtB,IAAI92W,EAEJ,IAAKs2W,EAAAA,KAAmC,OAArBt2W,EAAUx3N,aAAkB,EAASw3N,EAAQv8O,kBAAmB,CACjF,IAAIL,EAAW,WACb,OAAO0zlB,KAMT,OAFAtukB,OAAO/kB,iBAAiB,SAAUL,GAAU,GAC5ColB,OAAO/kB,iBAAiB,UAAWL,GAAU,GACtC,WAELolB,OAAOtlB,oBAAoB,SAAUE,GACrColB,OAAOtlB,oBAAoB,UAAWE,MAKrCo0E,EA1BTo+gB,EAAeiB,EAAeT,GA6B9B,IAAIhB,EAASyB,EAActulB,UA0D3B,OAxDA6slB,EAAOY,YAAc,WACdjzlB,KAAKqrK,SACRrrK,KAAKwzlB,iBAAiBxzlB,KAAKq7M,QAI/Bg3Y,EAAOa,cAAgB,WAEnB,IAAIO,EADDzzlB,KAAKmzlB,iBAG0B,OAAjCM,EAAgBzzlB,KAAKqrK,UAA4Boob,EAAchzlB,KAAKT,MACrEA,KAAKqrK,aAAUjzJ,IAInBi6kB,EAAOmB,iBAAmB,SAA0Bn4Y,GAClD,IAAIq4Y,EACApkL,EAAStva,KAEbA,KAAKq7M,MAAQA,EACsB,OAAlCq4Y,EAAiB1zlB,KAAKqrK,UAA4Bqob,EAAejzlB,KAAKT,MACvEA,KAAKqrK,QAAUgwC,GAAM,SAAU24Y,GACP,mBAAXA,EACT1kL,EAAO2kL,UAAUD,GAEjB1kL,EAAOykL,eAKb1B,EAAO4B,UAAY,SAAmBD,GACpCh0lB,KAAKg0lB,OAASA,EAEVA,GACFh0lB,KAAK+zlB,YAIT1B,EAAO0B,SAAW,WAChB/zlB,KAAKwkI,UAAUvkI,SAAQ,SAAUI,GAC/BA,QAIJgylB,EAAO6B,SAAW,WAChB,MAA2B,mBAAhBl0lB,KAAKg0lB,OACPh0lB,KAAKg0lB,OAGW,qBAAdv1d,WAAyD,qBAArBA,UAAU01d,QAIlD11d,UAAU01d,QAGZL,EAxF+B,CAyFtCd,ICxFF,SAASoB,EAAkBC,GACzB,OAAO1ukB,KAAKG,IAAI,IAAOH,KAAKg7C,IAAI,EAAG0zhB,GAAe,KAG7C,SAASC,EAAa1ylB,GAC3B,MAA0D,oBAAlC,MAATA,OAAgB,EAASA,EAAMmkC,QAEzC,IAAIwujB,EAAiB,SAAwBn6kB,GAClDpa,KAAKw0lB,OAAoB,MAAXp6kB,OAAkB,EAASA,EAAQo6kB,OACjDx0lB,KAAKwmP,OAAoB,MAAXpsO,OAAkB,EAASA,EAAQosO,QAE5C,SAASiuW,EAAiB7ylB,GAC/B,OAAOA,aAAiB2ylB,EAGnB,IAAIG,EAAU,SAAiBplhB,GACpC,IAGIqlhB,EACAC,EACAC,EACAC,EANArghB,EAAQz0E,KAER+0lB,GAAc,EAKlB/0lB,KAAKslN,MAAQh2I,EAAOg2I,MAEpBtlN,KAAK+lC,OAAS,SAAUivjB,GACtB,OAAmB,MAAZL,OAAmB,EAASA,EAASK,IAG9Ch1lB,KAAK+0lB,YAAc,WACjBA,GAAc,GAGhB/0lB,KAAKi1lB,cAAgB,WACnBF,GAAc,GAGhB/0lB,KAAKk1lB,SAAW,WACd,OAAqB,MAAdN,OAAqB,EAASA,KAGvC50lB,KAAKq0lB,aAAe,EACpBr0lB,KAAKm1lB,UAAW,EAChBn1lB,KAAKupE,YAAa,EAClBvpE,KAAKo1lB,uBAAwB,EAC7Bp1lB,KAAKwQ,QAAU,IAAI2tC,SAAQ,SAAUk3iB,EAAcC,GACjDT,EAAiBQ,EACjBP,EAAgBQ,KAGlB,IAAIlllB,EAAU,SAAiBxO,GACxB6yE,EAAMlL,aACTkL,EAAMlL,YAAa,EACC,MAApB+F,EAAOimhB,WAA6BjmhB,EAAOimhB,UAAU3zlB,GACvC,MAAdgzlB,GAA8BA,IAC9BC,EAAejzlB,KAIf8pC,EAAS,SAAgB9pC,GACtB6yE,EAAMlL,aACTkL,EAAMlL,YAAa,EACD,MAAlB+F,EAAOy7e,SAA2Bz7e,EAAOy7e,QAAQnpjB,GACnC,MAAdgzlB,GAA8BA,IAC9BE,EAAclzlB,MAiBR,SAAS66iB,IAEjB,IAAIhoe,EAAMlL,WAAV,CAIA,IAAIishB,EAEJ,IACEA,EAAiBlmhB,EAAO11C,KACxB,MAAO8lB,GACP81iB,EAAiBr3iB,QAAQzS,OAAOgU,GAIlCi1iB,EAAW,SAAkBK,GAC3B,IAAKvghB,EAAMlL,aACT79B,EAAO,IAAI6ojB,EAAeS,IACX,MAAfvghB,EAAM6wI,OAAyB7wI,EAAM6wI,QAEjCgvY,EAAakB,IACf,IACEA,EAAezvjB,SACf,MAAO0vjB,MAMfhhhB,EAAM2ghB,sBAAwBd,EAAakB,GAC3Cr3iB,QAAQ/tC,QAAQollB,GAAgBh3iB,KAAKpuC,GAASqvC,OAAM,SAAUC,GAC5D,IAAIg2iB,EAAeC,EAGnB,IAAIlhhB,EAAMlL,WAAV,CAKA,IAAIqshB,EAA0C,OAAjCF,EAAgBpmhB,EAAOsmhB,OAAiBF,EAAgB,EACjEG,EAAyD,OAA3CF,EAAqBrmhB,EAAOumhB,YAAsBF,EAAqBvB,EACrFt2d,EAA8B,oBAAf+3d,EAA4BA,EAAWphhB,EAAM4/gB,aAAc30iB,GAASm2iB,EACnFC,GAAwB,IAAVF,GAAmC,kBAAVA,GAAsBnhhB,EAAM4/gB,aAAeuB,GAA0B,oBAAVA,GAAwBA,EAAMnhhB,EAAM4/gB,aAAc30iB,IAEpJq1iB,GAAgBe,GAMpBrhhB,EAAM4/gB,eAEW,MAAjB/khB,EAAOymhB,QAA0BzmhB,EAAOymhB,OAAOthhB,EAAM4/gB,aAAc30iB,IAEnEs2iB,EAAAA,EAAAA,IAAMl4d,GACLt/E,MAAK,WACJ,IAAK40iB,EAAajhd,cAAgB0hd,EAAcK,WAC9C,OArEC,IAAI/1iB,SAAQ,SAAU83iB,GAC3BrB,EAAaqB,EACbxhhB,EAAM0ghB,UAAW,EACC,MAAlB7lhB,EAAO4mhB,SAA2B5mhB,EAAO4mhB,aACxC13iB,MAAK,WACNo2iB,OAAax8kB,EACbq8D,EAAM0ghB,UAAW,EACI,MAArB7lhB,EAAO6mhB,YAA8B7mhB,EAAO6mhB,mBAgEzC33iB,MAAK,WACFu2iB,EACFrpjB,EAAOgU,GAEP+8f,QAjBF/wgB,EAAOgU,QAwBb+8f,ICpJSpzR,EAAqB,WAC9B,SAASA,EAAM/5M,GACbtvE,KAAKo2lB,qBAAsB,EAC3Bp2lB,KAAKq2lB,cAAe,EACpBr2lB,KAAKgtP,eAAiB19K,EAAO09K,eAC7BhtP,KAAKslI,WAAWh2D,EAAOl1D,SACvBpa,KAAKs2lB,UAAY,GACjBt2lB,KAAK2/C,MAAQ2vB,EAAO3vB,MACpB3/C,KAAKu2lB,SAAWjnhB,EAAOinhB,SACvBv2lB,KAAKw2lB,UAAYlnhB,EAAOknhB,UACxBx2lB,KAAKy2lB,aAAennhB,EAAO6nB,OAASn3F,KAAK02lB,gBAAgB12lB,KAAKoa,SAC9Dpa,KAAKm3F,MAAQn3F,KAAKy2lB,aAClBz2lB,KAAK+mF,KAAOzX,EAAOyX,KACnB/mF,KAAK22lB,aAGP,IAAItE,EAAShpU,EAAM7jR,UAydnB,OAvdA6slB,EAAO/sd,WAAa,SAAoBlrH,GACtC,IAAIw8kB,EAEJ52lB,KAAKoa,SAAU69M,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKgtP,eAAgB5yO,GACjDpa,KAAK+mF,KAAkB,MAAX3sE,OAAkB,EAASA,EAAQ2sE,KAE/C/mF,KAAK62lB,UAAYlxkB,KAAKC,IAAI5lB,KAAK62lB,WAAa,EAAuD,OAAnDD,EAAwB52lB,KAAKoa,QAAQy8kB,WAAqBD,EAAwB,MAGpIvE,EAAOyE,kBAAoB,SAA2B18kB,GACpDpa,KAAKgtP,eAAiB5yO,GAGxBi4kB,EAAOsE,WAAa,WAClB,IAAIlihB,EAAQz0E,KAEZA,KAAK+2lB,kBAEDC,EAAAA,EAAAA,IAAeh3lB,KAAK62lB,aACtB72lB,KAAKi3lB,UAAYp0lB,YAAW,WAC1B4xE,EAAMyihB,mBACLl3lB,KAAK62lB,aAIZxE,EAAO0E,eAAiB,WACtB74jB,aAAal+B,KAAKi3lB,WAClBj3lB,KAAKi3lB,eAAY7+kB,GAGnBi6kB,EAAO6E,eAAiB,WACjBl3lB,KAAKs2lB,UAAUh2lB,SACdN,KAAKm3F,MAAMgggB,WACTn3lB,KAAKq2lB,cACPr2lB,KAAK22lB,aAGP32lB,KAAK2/C,MAAMn+C,OAAOxB,QAKxBqylB,EAAOt9c,QAAU,SAAiBkmc,EAAS7gkB,GACzC,IAAIg9kB,EAAuBh+I,EAEvBi+I,EAAWr3lB,KAAKm3F,MAAMtpF,KAEtBA,GAAOyplB,EAAAA,EAAAA,IAAiBrc,EAASoc,GAerC,OAb4E,OAAvED,GAAyBh+I,EAAgBp5c,KAAKoa,SAASm9kB,kBAAuB,EAASH,EAAsB32lB,KAAK24c,EAAei+I,EAAUxplB,IAC9IA,EAAOwplB,GACqC,IAAnCr3lB,KAAKoa,QAAQo9kB,oBAEtB3plB,GAAO4plB,EAAAA,EAAAA,IAAiBJ,EAAUxplB,IAIpC7N,KAAKs1iB,SAAS,CACZzniB,KAAMA,EACN8V,KAAM,UACN+zkB,cAA0B,MAAXt9kB,OAAkB,EAASA,EAAQu9kB,YAE7C9plB,GAGTwklB,EAAO94c,SAAW,SAAkBpiD,EAAOyggB,GACzC53lB,KAAKs1iB,SAAS,CACZ3xhB,KAAM,WACNwzE,MAAOA,EACPyggB,gBAAiBA,KAIrBvF,EAAOtsjB,OAAS,SAAgB3rB,GAC9B,IAAIy9kB,EAEArnlB,EAAUxQ,KAAKwQ,QAEnB,OADkC,OAAjCqnlB,EAAgB73lB,KAAK83lB,UAA4BD,EAAc9xjB,OAAO3rB,GAChE5J,EAAUA,EAAQguC,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,IAAQ7zK,QAAQ/tC,WAG5DiilB,EAAOhxe,QAAU,WACfrhH,KAAK+2lB,iBACL/2lB,KAAK+lC,OAAO,CACVygN,QAAQ,KAIZ6rW,EAAO92jB,MAAQ,WACbv7B,KAAKqhH,UACLrhH,KAAKu5I,SAASv5I,KAAKy2lB,eAGrBpE,EAAO9vT,SAAW,WAChB,OAAOviS,KAAKs2lB,UAAU/zkB,MAAK,SAAU+zR,GACnC,OAAoC,IAA7BA,EAASl8R,QAAQkvB,YAI5B+ojB,EAAO8E,WAAa,WAClB,OAAOn3lB,KAAKm3F,MAAMgggB,YAGpB9E,EAAO0F,QAAU,WACf,OAAO/3lB,KAAKm3F,MAAM6ggB,gBAAkBh4lB,KAAKm3F,MAAMuggB,eAAiB13lB,KAAKs2lB,UAAU/zkB,MAAK,SAAU+zR,GAC5F,OAAOA,EAAS2hT,mBAAmBF,YAIvC1F,EAAO6F,cAAgB,SAAuBC,GAK5C,YAJkB,IAAdA,IACFA,EAAY,GAGPn4lB,KAAKm3F,MAAM6ggB,gBAAkBh4lB,KAAKm3F,MAAMuggB,iBAAkBU,EAAAA,EAAAA,IAAep4lB,KAAKm3F,MAAMuggB,cAAeS,IAG5G9F,EAAOv0jB,QAAU,WACf,IAAIu6jB,EAEA/hT,EAAWt2S,KAAKs2lB,UAAUj6kB,MAAK,SAAUrL,GAC3C,OAAOA,EAAEsnlB,8BAGPhiT,GACFA,EAASiiT,UAIwB,OAAlCF,EAAiBr4lB,KAAK83lB,UAA4BO,EAAenD,YAGpE7C,EAAO0B,SAAW,WAChB,IAAIyE,EAEAliT,EAAWt2S,KAAKs2lB,UAAUj6kB,MAAK,SAAUrL,GAC3C,OAAOA,EAAEynlB,4BAGPniT,GACFA,EAASiiT,UAIwB,OAAlCC,EAAiBx4lB,KAAK83lB,UAA4BU,EAAetD,YAGpE7C,EAAOqG,YAAc,SAAqBpiT,IACE,IAAtCt2S,KAAKs2lB,UAAUnwlB,QAAQmwS,KACzBt2S,KAAKs2lB,UAAU11lB,KAAK01S,GACpBt2S,KAAKq2lB,cAAe,EAEpBr2lB,KAAK+2lB,iBACL/2lB,KAAK2/C,MAAM4f,OAAO,CAChB57C,KAAM,gBACNq0Q,MAAOh4R,KACPs2S,SAAUA,MAKhB+7S,EAAOsG,eAAiB,SAAwBriT,IACJ,IAAtCt2S,KAAKs2lB,UAAUnwlB,QAAQmwS,KACzBt2S,KAAKs2lB,UAAYt2lB,KAAKs2lB,UAAU1wlB,QAAO,SAAUoL,GAC/C,OAAOA,IAAMslS,KAGVt2S,KAAKs2lB,UAAUh2lB,SAGdN,KAAK83lB,UACH93lB,KAAK83lB,QAAQ1C,uBAAyBp1lB,KAAKo2lB,oBAC7Cp2lB,KAAK83lB,QAAQ/xjB,OAAO,CAClByujB,QAAQ,IAGVx0lB,KAAK83lB,QAAQ/C,eAIb/0lB,KAAK62lB,UACP72lB,KAAK22lB,aAEL32lB,KAAK2/C,MAAMn+C,OAAOxB,OAItBA,KAAK2/C,MAAM4f,OAAO,CAChB57C,KAAM,kBACNq0Q,MAAOh4R,KACPs2S,SAAUA,MAKhB+7S,EAAOuG,kBAAoB,WACzB,OAAO54lB,KAAKs2lB,UAAUh2lB,QAGxB+xlB,EAAOwG,WAAa,WACb74lB,KAAKm3F,MAAM6ggB,eACdh4lB,KAAKs1iB,SAAS,CACZ3xhB,KAAM,gBAKZ0ukB,EAAOryiB,MAAQ,SAAe5lC,EAAS0+kB,GACrC,IACIC,EACAC,EACAC,EAHA3pL,EAAStva,KAKb,GAAIA,KAAKm3F,MAAMgggB,WACb,GAAIn3lB,KAAKm3F,MAAMuggB,gBAAkC,MAAhBoB,OAAuB,EAASA,EAAaI,eAE5El5lB,KAAK+lC,OAAO,CACVygN,QAAQ,SAEL,GAAIxmP,KAAKwQ,QAAS,CACvB,IAAI2olB,EAKJ,OAFmC,OAAlCA,EAAiBn5lB,KAAK83lB,UAA4BqB,EAAelE,gBAE3Dj1lB,KAAKwQ,QAWhB,GANI4J,GACFpa,KAAKslI,WAAWlrH,IAKbpa,KAAKoa,QAAQg/kB,QAAS,CACzB,IAAI9iT,EAAWt2S,KAAKs2lB,UAAUj6kB,MAAK,SAAUrL,GAC3C,OAAOA,EAAEoJ,QAAQg/kB,WAGf9iT,GACFt2S,KAAKslI,WAAWgxK,EAASl8R,SAI7B,IAAIm8kB,GAAW8C,EAAAA,EAAAA,IAAoBr5lB,KAAKu2lB,UACpCp2iB,GAAkBm5iB,EAAAA,EAAAA,MAElBC,EAAiB,CACnBhD,SAAUA,EACViD,eAAWphlB,EACX2uE,KAAM/mF,KAAK+mF,MAEbjgF,OAAOi+D,eAAew0hB,EAAgB,SAAU,CAC9Ct0hB,YAAY,EACZplD,IAAK,WACH,GAAIsgC,EAEF,OADAmvX,EAAO8mL,qBAAsB,EACtBj2iB,EAAgBP,UAO7B,IAoBM65iB,EASAC,EAnBF/+kB,EAAU,CACZm+kB,aAAcA,EACd1+kB,QAASpa,KAAKoa,QACdm8kB,SAAUA,EACVp/f,MAAOn3F,KAAKm3F,MACZwigB,QAfY,WACZ,OAAKrqL,EAAOl1Z,QAAQg/kB,SAIpB9pL,EAAO8mL,qBAAsB,EACtB9mL,EAAOl1Z,QAAQg/kB,QAAQG,IAJrBp7iB,QAAQzS,OAAO,oBAcxBq7C,KAAM/mF,KAAK+mF,OAG0C,OAAlDgygB,EAAwB/4lB,KAAKoa,QAAQ4vgB,eAAoB,EAAS+uE,EAAsBa,WAGvC,OAAnDH,EAAyBz5lB,KAAKoa,QAAQ4vgB,WAA6ByvE,EAAuBG,QAAQj/kB,KAIrG3a,KAAK65lB,YAAc75lB,KAAKm3F,MAEnBn3F,KAAKm3F,MAAMgggB,YAAcn3lB,KAAKm3F,MAAM2igB,aAAiE,OAAjDd,EAAwBr+kB,EAAQm+kB,mBAAwB,EAASE,EAAsBjygB,QAG9I/mF,KAAKs1iB,SAAS,CACZ3xhB,KAAM,QACNojE,KAAyD,OAAlD2ygB,EAAyB/+kB,EAAQm+kB,mBAAwB,EAASY,EAAuB3ygB,OA0DpG,OArDA/mF,KAAK83lB,QAAU,IAAIpD,EAAQ,CACzB96jB,GAAIjf,EAAQg/kB,QACZr0Y,MAA0B,MAAnBnlK,GAAsF,OAAlD84iB,EAAwB94iB,EAAgBmlK,YAAlD,EAA4E2zY,EAAsBxulB,KAAK01C,GACxIo1iB,UAAW,SAAmB1nlB,GAC5Byha,EAAOv6R,QAAQlnI,GAGkB,MAAjCyha,EAAO3vX,MAAM2vB,OAAOimhB,WAA6BjmL,EAAO3vX,MAAM2vB,OAAOimhB,UAAU1nlB,EAAMyha,GAE5D,IAArBA,EAAOunL,WACTvnL,EAAO4nL,kBAGXnsC,QAAS,SAAiBrrgB,GAElB+0iB,EAAiB/0iB,IAAUA,EAAM8mM,QACrC8oL,EAAOgmI,SAAS,CACd3xhB,KAAM,QACN+7B,MAAOA,IAIN+0iB,EAAiB/0iB,KAEW,MAA/B4vX,EAAO3vX,MAAM2vB,OAAOy7e,SAA2Bz7I,EAAO3vX,MAAM2vB,OAAOy7e,QAAQrrgB,EAAO4vX,IAElFwiL,EAAAA,EAAAA,KAAYpyiB,MAAMA,IAIK,IAArB4vX,EAAOunL,WACTvnL,EAAO4nL,kBAGXnB,OAAQ,WACNzmL,EAAOgmI,SAAS,CACd3xhB,KAAM,YAGVuykB,QAAS,WACP5mL,EAAOgmI,SAAS,CACd3xhB,KAAM,WAGVwykB,WAAY,WACV7mL,EAAOgmI,SAAS,CACd3xhB,KAAM,cAGViykB,MAAOj7kB,EAAQP,QAAQw7kB,MACvBC,WAAYl7kB,EAAQP,QAAQy7kB,aAE9B71lB,KAAKwQ,QAAUxQ,KAAK83lB,QAAQtnlB,QACrBxQ,KAAKwQ,SAGd6hlB,EAAO/8C,SAAW,SAAkB70hB,GAClC,IAAIwvZ,EAASjwa,KAEbA,KAAKm3F,MAAQn3F,KAAK+5lB,QAAQ/5lB,KAAKm3F,MAAO12E,GACtCmykB,EAAAA,EAAAA,OAAoB,WAClB3iL,EAAOqmL,UAAUr2lB,SAAQ,SAAUq2S,GACjCA,EAAS0jT,cAAcv5kB,MAGzBwvZ,EAAOtwX,MAAM4f,OAAO,CAClBy4N,MAAOi4I,EACPtsZ,KAAM,eACNlD,OAAQA,QAKd4xkB,EAAOqE,gBAAkB,SAAyBt8kB,GAChD,IAAIvM,EAAsC,oBAAxBuM,EAAQ6/kB,YAA6B7/kB,EAAQ6/kB,cAAgB7/kB,EAAQ6/kB,YAEnFC,EADgD,qBAAxB9/kB,EAAQ6/kB,YACgD,oBAAjC7/kB,EAAQ8/kB,qBAAsC9/kB,EAAQ8/kB,uBAAyB9/kB,EAAQ8/kB,qBAAuB,EAC7JpoD,EAA0B,qBAATjkiB,EACrB,MAAO,CACLA,KAAMA,EACNsslB,gBAAiB,EACjBzC,cAAe5lD,EAAkC,MAAxBooD,EAA+BA,EAAuB5rhB,KAAKskC,MAAQ,EAC5FlzD,MAAO,KACP06iB,iBAAkB,EAClBC,eAAgB,EAChBC,kBAAmB,EACnBR,UAAW,KACX3C,YAAY,EACZa,eAAe,EACf7C,UAAU,EACVz9iB,OAAQo6f,EAAU,UAAY,SAIlCugD,EAAO0H,QAAU,SAAiB5igB,EAAO12E,GACvC,IAAI85kB,EAAcC,EAElB,OAAQ/5kB,EAAOkD,MACb,IAAK,SACH,OAAOs0M,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBmjgB,kBAAmBnjgB,EAAMmjgB,kBAAoB,IAGjD,IAAK,QACH,OAAOriY,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBg+f,UAAU,IAGd,IAAK,WACH,OAAOl9X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBg+f,UAAU,IAGd,IAAK,QACH,OAAOl9X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBmjgB,kBAAmB,EACnBR,UAA2C,OAA/BS,EAAe95kB,EAAOsmE,MAAgBwzgB,EAAe,KACjEpD,YAAY,EACZhC,UAAU,IACRh+f,EAAMuggB,eAAiB,CACzBh4iB,MAAO,KACPhI,OAAQ,YAGZ,IAAK,UACH,OAAOugL,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBtpF,KAAM4S,EAAO5S,KACbsslB,gBAAiBhjgB,EAAMgjgB,gBAAkB,EACzCzC,cAAiE,OAAjD8C,EAAwB/5kB,EAAOi3kB,eAAyB8C,EAAwBlshB,KAAKskC,MACrGlzD,MAAO,KACP46iB,kBAAmB,EACnBnD,YAAY,EACZa,eAAe,EACf7C,UAAU,EACVz9iB,OAAQ,YAGZ,IAAK,QACH,IAAIgI,EAAQj/B,EAAOi/B,MAEnB,OAAI+0iB,EAAiB/0iB,IAAUA,EAAM80iB,QAAUx0lB,KAAK65lB,aAC3C5hY,EAAAA,EAAAA,GAAS,GAAIj4N,KAAK65lB,cAGpB5hY,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBz3C,MAAOA,EACP06iB,iBAAkBjjgB,EAAMijgB,iBAAmB,EAC3CC,eAAgB/rhB,KAAKskC,MACrB0nf,kBAAmBnjgB,EAAMmjgB,kBAAoB,EAC7CnD,YAAY,EACZhC,UAAU,EACVz9iB,OAAQ,UAGZ,IAAK,aACH,OAAOugL,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzB6ggB,eAAe,IAGnB,IAAK,WACH,OAAO//X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO12E,EAAO02E,OAEpC,QACE,OAAOA,IAINkyL,EAzeuB,GCDrBoxU,EAA0B,SAAUpH,GAG7C,SAASoH,EAAWnrhB,GAClB,IAAImF,EAMJ,OAJAA,EAAQ4+gB,EAAc5ylB,KAAKT,OAASA,MAC9BsvE,OAASA,GAAU,GACzBmF,EAAMimhB,QAAU,GAChBjmhB,EAAMkmhB,WAAa,GACZlmhB,EATTo+gB,EAAe4H,EAAYpH,GAY3B,IAAIhB,EAASoI,EAAWj1lB,UA8HxB,OA5HA6slB,EAAOuI,MAAQ,SAAeC,EAAQzglB,EAAS+8E,GAC7C,IAAI2jgB,EAEAvE,EAAWn8kB,EAAQm8kB,SACnBC,EAAwD,OAA3CsE,EAAqB1glB,EAAQo8kB,WAAqBsE,GAAqBC,EAAAA,EAAAA,IAAsBxE,EAAUn8kB,GACpH49Q,EAAQh4R,KAAK6f,IAAI22kB,GAerB,OAbKx+T,IACHA,EAAQ,IAAI3O,EAAM,CAChB1pO,MAAO3/C,KACPu2lB,SAAUA,EACVC,UAAWA,EACXp8kB,QAASyglB,EAAOG,oBAAoB5glB,GACpC+8E,MAAOA,EACP61J,eAAgB6tW,EAAOI,iBAAiB1E,GACxCxvgB,KAAM3sE,EAAQ2sE,OAEhB/mF,KAAKsB,IAAI02R,IAGJA,GAGTq6T,EAAO/wlB,IAAM,SAAa02R,GACnBh4R,KAAK26lB,WAAW3iU,EAAMw+T,aACzBx2lB,KAAK26lB,WAAW3iU,EAAMw+T,WAAax+T,EACnCh4R,KAAK06lB,QAAQ95lB,KAAKo3R,GAClBh4R,KAAKu/D,OAAO,CACV57C,KAAM,aACNq0Q,MAAOA,MAKbq6T,EAAO7wlB,OAAS,SAAgBw2R,GAC9B,IAAIkjU,EAAal7lB,KAAK26lB,WAAW3iU,EAAMw+T,WAEnC0E,IACFljU,EAAM32K,UACNrhH,KAAK06lB,QAAU16lB,KAAK06lB,QAAQ90lB,QAAO,SAAUoL,GAC3C,OAAOA,IAAMgnR,KAGXkjU,IAAeljU,UACVh4R,KAAK26lB,WAAW3iU,EAAMw+T,WAG/Bx2lB,KAAKu/D,OAAO,CACV57C,KAAM,eACNq0Q,MAAOA,MAKbq6T,EAAOp0e,MAAQ,WACb,IAAIqxT,EAAStva,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClBtjL,EAAOorL,QAAQz6lB,SAAQ,SAAU+3R,GAC/Bs3I,EAAO9ta,OAAOw2R,UAKpBq6T,EAAOxykB,IAAM,SAAa22kB,GACxB,OAAOx2lB,KAAK26lB,WAAWnE,IAGzBnE,EAAOr+C,OAAS,WACd,OAAOh0iB,KAAK06lB,SAGdrI,EAAOh2kB,KAAO,SAAc45gB,EAAMklE,GAChC,IACIjnJ,GADmBknJ,EAAAA,EAAAA,IAAgBnlE,EAAMklE,GACd,GAM/B,MAJ6B,qBAAlBjnJ,EAAQmnJ,QACjBnnJ,EAAQmnJ,OAAQ,GAGXr7lB,KAAK06lB,QAAQr+kB,MAAK,SAAU27Q,GACjC,OAAOsjU,EAAAA,EAAAA,IAAWpnJ,EAASl8K,OAI/Bq6T,EAAO7xa,QAAU,SAAiBy1W,EAAMklE,GACtC,IACIjnJ,GADoBknJ,EAAAA,EAAAA,IAAgBnlE,EAAMklE,GACd,GAEhC,OAAOr0lB,OAAOC,KAAKmtc,GAAS5zc,OAAS,EAAIN,KAAK06lB,QAAQ90lB,QAAO,SAAUoyR,GACrE,OAAOsjU,EAAAA,EAAAA,IAAWpnJ,EAASl8K,MACxBh4R,KAAK06lB,SAGZrI,EAAO9yhB,OAAS,SAAgB/kD,GAC9B,IAAIy1Z,EAASjwa,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClB3iL,EAAOzrS,UAAUvkI,SAAQ,SAAUI,GACjCA,EAASma,UAKf63kB,EAAOv0jB,QAAU,WACf,IAAIg0Y,EAAS9xa,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClB9gL,EAAO4oL,QAAQz6lB,SAAQ,SAAU+3R,GAC/BA,EAAMl6P,iBAKZu0jB,EAAO0B,SAAW,WAChB,IAAI9gL,EAASjza,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClB3/K,EAAOynL,QAAQz6lB,SAAQ,SAAU+3R,GAC/BA,EAAM+7T,kBAKL0G,EA3I4B,CA4InCzH,GC3ISuI,EAAwB,WACjC,SAASA,EAASjshB,GAChBtvE,KAAKoa,SAAU69M,EAAAA,EAAAA,GAAS,GAAI3oJ,EAAO09K,eAAgB19K,EAAOl1D,SAC1Dpa,KAAKw7lB,WAAalshB,EAAOkshB,WACzBx7lB,KAAKy7lB,cAAgBnshB,EAAOmshB,cAC5Bz7lB,KAAKs2lB,UAAY,GACjBt2lB,KAAKm3F,MAAQ7nB,EAAO6nB,OA6Jf,CACLx8E,aAASvC,EACTvK,UAAMuK,EACNsnC,MAAO,KACP20iB,aAAc,EACdc,UAAU,EACVz9iB,OAAQ,OACRgkjB,eAAWtjlB,GAnKXpY,KAAK+mF,KAAOzX,EAAOyX,KAGrB,IAAIsrgB,EAASkJ,EAAS/1lB,UAsJtB,OApJA6slB,EAAO94c,SAAW,SAAkBpiD,GAClCn3F,KAAKs1iB,SAAS,CACZ3xhB,KAAM,WACNwzE,MAAOA,KAIXk7f,EAAOqG,YAAc,SAAqBpiT,IACE,IAAtCt2S,KAAKs2lB,UAAUnwlB,QAAQmwS,IACzBt2S,KAAKs2lB,UAAU11lB,KAAK01S,IAIxB+7S,EAAOsG,eAAiB,SAAwBriT,GAC9Ct2S,KAAKs2lB,UAAYt2lB,KAAKs2lB,UAAU1wlB,QAAO,SAAUoL,GAC/C,OAAOA,IAAMslS,MAIjB+7S,EAAOtsjB,OAAS,WACd,OAAI/lC,KAAK83lB,SACP93lB,KAAK83lB,QAAQ/xjB,SACN/lC,KAAK83lB,QAAQtnlB,QAAQguC,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,KAGxC7zK,QAAQ/tC,WAGjBiilB,EAAO6C,SAAW,WAChB,OAAIl1lB,KAAK83lB,SACP93lB,KAAK83lB,QAAQ5C,WACNl1lB,KAAK83lB,QAAQtnlB,SAGfxQ,KAAK8pE,WAGduohB,EAAOvohB,QAAU,WACf,IAEIj8D,EAFA4mE,EAAQz0E,KAGR27lB,EAAiC,YAAtB37lB,KAAKm3F,MAAMz/C,OACtBlnC,EAAU2tC,QAAQ/tC,UAuBtB,OArBKurlB,IACH37lB,KAAKs1iB,SAAS,CACZ3xhB,KAAM,UACN+3kB,UAAW17lB,KAAKoa,QAAQshlB,YAE1BlrlB,EAAUA,EAAQguC,MAAK,WAEkB,MAAvCi2B,EAAMgnhB,cAAcnshB,OAAOsshB,UAA4BnnhB,EAAMgnhB,cAAcnshB,OAAOsshB,SAASnnhB,EAAM0iB,MAAMukgB,UAAWjnhB,MACjHj2B,MAAK,WACN,OAAiC,MAA1Bi2B,EAAMr6D,QAAQwhlB,cAAmB,EAASnnhB,EAAMr6D,QAAQwhlB,SAASnnhB,EAAM0iB,MAAMukgB,cACnFl9iB,MAAK,SAAU7jC,GACZA,IAAY85D,EAAM0iB,MAAMx8E,SAC1B85D,EAAM6ge,SAAS,CACb3xhB,KAAM,UACNhJ,QAASA,EACT+glB,UAAWjnhB,EAAM0iB,MAAMukgB,gBAMxBlrlB,EAAQguC,MAAK,WAClB,OAAOi2B,EAAMonhB,qBACZr9iB,MAAK,SAAU3vC,GAChBhB,EAAOgB,EAEiC,MAAxC4lE,EAAMgnhB,cAAcnshB,OAAOimhB,WAA6B9ghB,EAAMgnhB,cAAcnshB,OAAOimhB,UAAU1nlB,EAAM4mE,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,QAAS85D,MAC9Ij2B,MAAK,WACN,OAAkC,MAA3Bi2B,EAAMr6D,QAAQm7kB,eAAoB,EAAS9ghB,EAAMr6D,QAAQm7kB,UAAU1nlB,EAAM4mE,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,YAClH6jC,MAAK,WACN,OAAkC,MAA3Bi2B,EAAMr6D,QAAQ0hlB,eAAoB,EAASrnhB,EAAMr6D,QAAQ0hlB,UAAUjulB,EAAM,KAAM4mE,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,YACxH6jC,MAAK,WAMN,OALAi2B,EAAM6ge,SAAS,CACb3xhB,KAAM,UACN9V,KAAMA,IAGDA,KACN4xC,OAAM,SAAUC,GAKjB,OAHsC,MAAtC+0B,EAAMgnhB,cAAcnshB,OAAOy7e,SAA2Bt2e,EAAMgnhB,cAAcnshB,OAAOy7e,QAAQrrgB,EAAO+0B,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,QAAS85D,IAE5Iq9gB,EAAAA,EAAAA,KAAYpyiB,MAAMA,GACXvB,QAAQ/tC,UAAUouC,MAAK,WAC5B,OAAgC,MAAzBi2B,EAAMr6D,QAAQ2wiB,aAAkB,EAASt2e,EAAMr6D,QAAQ2wiB,QAAQrrgB,EAAO+0B,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,YAC/G6jC,MAAK,WACN,OAAkC,MAA3Bi2B,EAAMr6D,QAAQ0hlB,eAAoB,EAASrnhB,EAAMr6D,QAAQ0hlB,eAAU1jlB,EAAWsnC,EAAO+0B,EAAM0iB,MAAMukgB,UAAWjnhB,EAAM0iB,MAAMx8E,YAC9H6jC,MAAK,WAMN,MALAi2B,EAAM6ge,SAAS,CACb3xhB,KAAM,QACN+7B,MAAOA,IAGHA,SAKZ2yiB,EAAOwJ,gBAAkB,WACvB,IACIE,EADAzsL,EAAStva,KA6Bb,OA1BAA,KAAK83lB,QAAU,IAAIpD,EAAQ,CACzB96jB,GAAI,WACF,OAAK01Y,EAAOl1Z,QAAQ4hlB,WAIb1sL,EAAOl1Z,QAAQ4hlB,WAAW1sL,EAAOn4U,MAAMukgB,WAHrCv9iB,QAAQzS,OAAO,wBAK1BqqjB,OAAQ,WACNzmL,EAAOgmI,SAAS,CACd3xhB,KAAM,YAGVuykB,QAAS,WACP5mL,EAAOgmI,SAAS,CACd3xhB,KAAM,WAGVwykB,WAAY,WACV7mL,EAAOgmI,SAAS,CACd3xhB,KAAM,cAGViykB,MAAqD,OAA7CmG,EAAsB/7lB,KAAKoa,QAAQw7kB,OAAiBmG,EAAsB,EAClFlG,WAAY71lB,KAAKoa,QAAQy7kB,aAEpB71lB,KAAK83lB,QAAQtnlB,SAGtB6hlB,EAAO/8C,SAAW,SAAkB70hB,GAClC,IAAIwvZ,EAASjwa,KAEbA,KAAKm3F,MAwBT,SAAiBA,EAAO12E,GACtB,OAAQA,EAAOkD,MACb,IAAK,SACH,OAAOs0M,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBk9f,aAAcl9f,EAAMk9f,aAAe,IAGvC,IAAK,QACH,OAAOp8X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBg+f,UAAU,IAGd,IAAK,WACH,OAAOl9X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBg+f,UAAU,IAGd,IAAK,UACH,OAAOl9X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBx8E,QAAS8F,EAAO9F,QAChB9M,UAAMuK,EACNsnC,MAAO,KACPy1iB,UAAU,EACVz9iB,OAAQ,UACRgkjB,UAAWj7kB,EAAOi7kB,YAGtB,IAAK,UACH,OAAOzjY,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBtpF,KAAM4S,EAAO5S,KACb6xC,MAAO,KACPhI,OAAQ,UACRy9iB,UAAU,IAGd,IAAK,QACH,OAAOl9X,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO,CACzBtpF,UAAMuK,EACNsnC,MAAOj/B,EAAOi/B,MACd20iB,aAAcl9f,EAAMk9f,aAAe,EACnCc,UAAU,EACVz9iB,OAAQ,UAGZ,IAAK,WACH,OAAOugL,EAAAA,EAAAA,GAAS,GAAI9gI,EAAO12E,EAAO02E,OAEpC,QACE,OAAOA,GAxEI4igB,CAAQ/5lB,KAAKm3F,MAAO12E,GACjCmykB,EAAAA,EAAAA,OAAoB,WAClB3iL,EAAOqmL,UAAUr2lB,SAAQ,SAAUq2S,GACjCA,EAAS2lT,iBAAiBx7kB,MAG5BwvZ,EAAOwrL,cAAcl8hB,OAAO0wW,OAIzBsrL,EAhK0B,GCA5B,IAAIW,EAA6B,SAAU7I,GAGhD,SAAS6I,EAAc5shB,GACrB,IAAImF,EAMJ,OAJAA,EAAQ4+gB,EAAc5ylB,KAAKT,OAASA,MAC9BsvE,OAASA,GAAU,GACzBmF,EAAM6yP,UAAY,GAClB7yP,EAAM+mhB,WAAa,EACZ/mhB,EATTo+gB,EAAeqJ,EAAe7I,GAY9B,IAAIhB,EAAS6J,EAAc12lB,UAyF3B,OAvFA6slB,EAAOuI,MAAQ,SAAeC,EAAQzglB,EAAS+8E,GAC7C,IAAIglgB,EAAW,IAAIZ,EAAS,CAC1BE,cAAez7lB,KACfw7lB,aAAcx7lB,KAAKw7lB,WACnBphlB,QAASyglB,EAAOuB,uBAAuBhilB,GACvC+8E,MAAOA,EACP61J,eAAgB5yO,EAAQiilB,YAAcxB,EAAOyB,oBAAoBlilB,EAAQiilB,kBAAejklB,EACxF2uE,KAAM3sE,EAAQ2sE,OAGhB,OADA/mF,KAAKsB,IAAI66lB,GACFA,GAGT9J,EAAO/wlB,IAAM,SAAa66lB,GACxBn8lB,KAAKsnU,UAAU1mU,KAAKu7lB,GACpBn8lB,KAAKu/D,OAAO48hB,IAGd9J,EAAO7wlB,OAAS,SAAgB26lB,GAC9Bn8lB,KAAKsnU,UAAYtnU,KAAKsnU,UAAU1hU,QAAO,SAAUoL,GAC/C,OAAOA,IAAMmrlB,KAEfA,EAASp2jB,SACT/lC,KAAKu/D,OAAO48hB,IAGd9J,EAAOp0e,MAAQ,WACb,IAAIqxT,EAAStva,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClBtjL,EAAOhoG,UAAUrnU,SAAQ,SAAUk8lB,GACjC7sL,EAAO9ta,OAAO26lB,UAKpB9J,EAAOr+C,OAAS,WACd,OAAOh0iB,KAAKsnU,WAGd+qR,EAAOh2kB,KAAO,SAAc63b,GAK1B,MAJ6B,qBAAlBA,EAAQmnJ,QACjBnnJ,EAAQmnJ,OAAQ,GAGXr7lB,KAAKsnU,UAAUjrT,MAAK,SAAU8/kB,GACnC,OAAOI,EAAAA,EAAAA,IAAcroJ,EAASioJ,OAIlC9J,EAAO7xa,QAAU,SAAiB0zR,GAChC,OAAOl0c,KAAKsnU,UAAU1hU,QAAO,SAAUu2lB,GACrC,OAAOI,EAAAA,EAAAA,IAAcroJ,EAASioJ,OAIlC9J,EAAO9yhB,OAAS,SAAgB48hB,GAC9B,IAAIlsL,EAASjwa,KAEb4ylB,EAAAA,EAAAA,OAAoB,WAClB3iL,EAAOzrS,UAAUvkI,SAAQ,SAAUI,GACjCA,EAAS87lB,UAKf9J,EAAOv0jB,QAAU,WACf99B,KAAKw8lB,yBAGPnK,EAAO0B,SAAW,WAChB/zlB,KAAKw8lB,yBAGPnK,EAAOmK,sBAAwB,WAC7B,IAAIC,EAAkBz8lB,KAAKsnU,UAAU1hU,QAAO,SAAUoL,GACpD,OAAOA,EAAEmmF,MAAMg+f,YAEjB,OAAOvC,EAAAA,EAAAA,OAAoB,WACzB,OAAO6J,EAAgB/ylB,QAAO,SAAU8G,EAAS2rlB,GAC/C,OAAO3rlB,EAAQguC,MAAK,WAClB,OAAO29iB,EAASjH,WAAWz1iB,MAAMuyK,EAAAA,SAElC7zK,QAAQ/tC,eAIR8rlB,EAtG+B,CAuGtClJ,GCeK,SAAS0J,EAAiBtilB,EAASuilB,GACxC,OAAmC,MAA5BvilB,EAAQsilB,sBAA2B,EAAStilB,EAAQsilB,iBAAiBC,EAAMA,EAAMr8lB,OAAS,GAAIq8lB,GAEhG,SAASC,EAAqBxilB,EAASuilB,GAC5C,OAAuC,MAAhCvilB,EAAQwilB,0BAA+B,EAASxilB,EAAQwilB,qBAAqBD,EAAM,GAAIA,GCxHzF,IAAIE,EAA2B,WACpC,SAASA,EAAYvthB,QACJ,IAAXA,IACFA,EAAS,IAGXtvE,KAAK88lB,WAAaxthB,EAAOwthB,YAAc,IAAIrC,EAC3Cz6lB,KAAKy7lB,cAAgBnshB,EAAOmshB,eAAiB,IAAIS,EACjDl8lB,KAAKgtP,eAAiB19K,EAAO09K,gBAAkB,GAC/ChtP,KAAK+8lB,cAAgB,GACrB/8lB,KAAKg9lB,iBAAmB,GAG1B,IAAI3K,EAASwK,EAAYr3lB,UAsUzB,OApUA6slB,EAAO30D,MAAQ,WACb,IAAIjpd,EAAQz0E,KAEZA,KAAKi9lB,iBAAmB7J,EAAajilB,WAAU,WACzCiilB,EAAajhd,aAAe0hd,EAAcK,aAC5Cz/gB,EAAMgnhB,cAAc39jB,UAEpB22C,EAAMqohB,WAAWh/jB,cAGrB99B,KAAKk9lB,kBAAoBrJ,EAAc1ilB,WAAU,WAC3CiilB,EAAajhd,aAAe0hd,EAAcK,aAC5Cz/gB,EAAMgnhB,cAAc1H,WAEpBt/gB,EAAMqohB,WAAW/I,gBAKvB1B,EAAO/2D,QAAU,WACf,IAAI6hE,EAAuBC,EAEwB,OAAlDD,EAAwBn9lB,KAAKi9lB,mBAAqCE,EAAsB18lB,KAAKT,MAC1C,OAAnDo9lB,EAAwBp9lB,KAAKk9lB,oBAAsCE,EAAsB38lB,KAAKT,OAGjGqylB,EAAO8E,WAAa,SAAoBlhE,EAAMklE,GAC5C,IACIjnJ,GADmBknJ,EAAAA,EAAAA,IAAgBnlE,EAAMklE,GACd,GAG/B,OADAjnJ,EAAQmpJ,UAAW,EACZr9lB,KAAK88lB,WAAWt8a,QAAQ0zR,GAAS5zc,QAG1C+xlB,EAAOiL,WAAa,SAAoBppJ,GACtC,OAAOl0c,KAAKy7lB,cAAcj7a,SAAQy3C,EAAAA,EAAAA,GAAS,GAAIi8O,EAAS,CACtDmpJ,UAAU,KACR/8lB,QAGN+xlB,EAAOkL,aAAe,SAAsBhH,EAAUriJ,GACpD,IAAIspJ,EAEJ,OAA4E,OAApEA,EAAwBx9lB,KAAK88lB,WAAWzglB,KAAKk6kB,EAAUriJ,SAAoB,EAASspJ,EAAsBrmgB,MAAMtpF,MAG1HwklB,EAAOoL,eAAiB,SAAwBC,GAC9C,OAAO19lB,KAAK29lB,gBAAgBn9a,QAAQk9a,GAAmBx3lB,KAAI,SAAU8gP,GAInE,MAAO,CAHQA,EAAKuvW,SACRvvW,EAAK7vJ,MACAtpF,UAKrBwklB,EAAOuL,aAAe,SAAsBrH,EAAUtb,EAAS7gkB,GAC7D,IAAIyjlB,GAAgBC,EAAAA,EAAAA,IAAevH,GAC/BwH,EAAmB/9lB,KAAKg7lB,oBAAoB6C,GAChD,OAAO79lB,KAAK88lB,WAAWlC,MAAM56lB,KAAM+9lB,GAAkBhpd,QAAQkmc,EAAS7gkB,IAGxEi4kB,EAAO2L,eAAiB,SAAwBN,EAAmBziB,EAAS7gkB,GAC1E,IAAIk1Z,EAAStva,KAEb,OAAO4ylB,EAAAA,EAAAA,OAAoB,WACzB,OAAOtjL,EAAOquL,gBAAgBn9a,QAAQk9a,GAAmBx3lB,KAAI,SAAUiiP,GACrE,IAAIouW,EAAWpuW,EAAMouW,SACrB,MAAO,CAACA,EAAUjnL,EAAOsuL,aAAarH,EAAUtb,EAAS7gkB,WAK/Di4kB,EAAO4L,cAAgB,SAAuB1H,EAAUriJ,GACtD,IAAIgqJ,EAEJ,OAA6E,OAArEA,EAAyBl+lB,KAAK88lB,WAAWzglB,KAAKk6kB,EAAUriJ,SAAoB,EAASgqJ,EAAuB/mgB,OAGtHk7f,EAAO8L,cAAgB,SAAuBloE,EAAMklE,GAClD,IACIjnJ,GADoBknJ,EAAAA,EAAAA,IAAgBnlE,EAAMklE,GACd,GAE5B2B,EAAa98lB,KAAK88lB,WACtBlK,EAAAA,EAAAA,OAAoB,WAClBkK,EAAWt8a,QAAQ0zR,GAASj0c,SAAQ,SAAU+3R,GAC5C8kU,EAAWt7lB,OAAOw2R,UAKxBq6T,EAAO+L,aAAe,SAAsBnoE,EAAMklE,EAAMkD,GACtD,IAAIpuL,EAASjwa,KAETs+lB,GAAoBlD,EAAAA,EAAAA,IAAgBnlE,EAAMklE,EAAMkD,GAChDnqJ,EAAUoqJ,EAAkB,GAC5BlklB,EAAUkklB,EAAkB,GAE5BxB,EAAa98lB,KAAK88lB,WAElByB,GAAiBtmY,EAAAA,EAAAA,GAAS,GAAIi8O,EAAS,CACzC/ob,QAAQ,IAGV,OAAOynkB,EAAAA,EAAAA,OAAoB,WAIzB,OAHAkK,EAAWt8a,QAAQ0zR,GAASj0c,SAAQ,SAAU+3R,GAC5CA,EAAMz8P,WAED00Y,EAAOuuL,eAAeD,EAAgBnklB,OAIjDi4kB,EAAOoM,cAAgB,SAAuBxoE,EAAMklE,EAAMkD,GACxD,IAAIvsL,EAAS9xa,KAET0+lB,GAAoBtD,EAAAA,EAAAA,IAAgBnlE,EAAMklE,EAAMkD,GAChDnqJ,EAAUwqJ,EAAkB,GAC5BC,EAAqBD,EAAkB,GACvC1J,OAAuC,IAAvB2J,EAAgC,GAAKA,EAErB,qBAAzB3J,EAAcR,SACvBQ,EAAcR,QAAS,GAGzB,IAAI9yhB,EAAWkxhB,EAAAA,EAAAA,OAAoB,WACjC,OAAO9gL,EAAOgrL,WAAWt8a,QAAQ0zR,GAAShuc,KAAI,SAAU8xR,GACtD,OAAOA,EAAMjyP,OAAOivjB,SAGxB,OAAO72iB,QAAQpI,IAAI2rB,GAAUljB,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,KAGhDqgY,EAAOuM,kBAAoB,SAA2B3oE,EAAMklE,EAAMkD,GAChE,IAAIz1W,EACAi2W,EACAC,EACA7rL,EAASjza,KAET++lB,GAAoB3D,EAAAA,EAAAA,IAAgBnlE,EAAMklE,EAAMkD,GAChDnqJ,EAAU6qJ,EAAkB,GAC5B3klB,EAAU2klB,EAAkB,GAE5BR,GAAiBtmY,EAAAA,EAAAA,GAAS,GAAIi8O,EAAS,CAGzC/ob,OAAsH,OAA7Gy9N,EAA2D,OAAlDi2W,EAAwB3qJ,EAAQ8qJ,eAAyBH,EAAwB3qJ,EAAQ/ob,SAAkBy9N,EAC7HyvD,SAA+D,OAApDymT,EAAwB5qJ,EAAQ+qJ,kBAA2BH,IAGxE,OAAOlM,EAAAA,EAAAA,OAAoB,WAKzB,OAJA3/K,EAAO6pL,WAAWt8a,QAAQ0zR,GAASj0c,SAAQ,SAAU+3R,GACnDA,EAAM6gU,gBAGD5lL,EAAOurL,eAAeD,EAAgBnklB,OAIjDi4kB,EAAOmM,eAAiB,SAAwBvoE,EAAMklE,EAAMkD,GAC1D,IAAIa,EAASl/lB,KAETm/lB,GAAoB/D,EAAAA,EAAAA,IAAgBnlE,EAAMklE,EAAMkD,GAChDnqJ,EAAUirJ,EAAkB,GAC5B/klB,EAAU+klB,EAAkB,GAE5Bz9hB,EAAWkxhB,EAAAA,EAAAA,OAAoB,WACjC,OAAOsM,EAAOpC,WAAWt8a,QAAQ0zR,GAAShuc,KAAI,SAAU8xR,GACtD,OAAOA,EAAMh4O,WAAM5nC,GAAW6/M,EAAAA,EAAAA,GAAS,GAAI79M,EAAS,CAClD2sE,KAAM,CACJq4gB,YAAwB,MAAXlrJ,OAAkB,EAASA,EAAQkrJ,sBAKpD5ulB,EAAU2tC,QAAQpI,IAAI2rB,GAAUljB,KAAKwzK,EAAAA,IAMzC,OAJiB,MAAX53M,OAAkB,EAASA,EAAQillB,gBACvC7ulB,EAAUA,EAAQivC,MAAMuyK,EAAAA,KAGnBxhN,GAGT6hlB,EAAOiN,WAAa,SAAoBrpE,EAAMklE,EAAMkD,GAClD,IAAIR,GAAgBC,EAAAA,EAAAA,IAAe7nE,EAAMklE,EAAMkD,GAC3CN,EAAmB/9lB,KAAKg7lB,oBAAoB6C,GAEV,qBAA3BE,EAAiBnI,QAC1BmI,EAAiBnI,OAAQ,GAG3B,IAAI59T,EAAQh4R,KAAK88lB,WAAWlC,MAAM56lB,KAAM+9lB,GACxC,OAAO/lU,EAAMkgU,cAAc6F,EAAiB5F,WAAangU,EAAMh4O,MAAM+9iB,GAAoB5/iB,QAAQ/tC,QAAQ4nR,EAAM7gM,MAAMtpF,OAGvHwklB,EAAOkN,cAAgB,SAAuBtpE,EAAMklE,EAAMkD,GACxD,OAAOr+lB,KAAKs/lB,WAAWrpE,EAAMklE,EAAMkD,GAAM7/iB,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,KAG5DqgY,EAAOmN,mBAAqB,SAA4BvpE,EAAMklE,EAAMkD,GAClE,IAAIR,GAAgBC,EAAAA,EAAAA,IAAe7nE,EAAMklE,EAAMkD,GAE/C,OADAR,EAAc7zE,SD7NT,CACL4vE,QAAS,SAAiBj/kB,GACxBA,EAAQg/kB,QAAU,WAChB,IAAIX,EAAuBU,EAAwB+F,EAAwBC,EAAwBC,EAAqBC,EAoDpHpvlB,EAlDA4ulB,EAAgE,OAAjDpG,EAAwBr+kB,EAAQm+kB,eAA0F,OAAxDY,EAAyBV,EAAsBjygB,WAAzD,EAAkF2ygB,EAAuB0F,YAChLS,EAA+D,OAAlDJ,EAAyB9klB,EAAQm+kB,eAA2F,OAAzD4G,EAAyBD,EAAuB14gB,WAA1D,EAAmF24gB,EAAuBG,UAChLrG,EAAyB,MAAbqG,OAAoB,EAASA,EAAUrG,UACnDsG,EAA4E,aAAzC,MAAbD,OAAoB,EAASA,EAAUxkd,WAC7D0kd,EAAgF,cAAzC,MAAbF,OAAoB,EAASA,EAAUxkd,WACjE2kd,GAA0D,OAA7CL,EAAsBhllB,EAAQw8E,MAAMtpF,WAAgB,EAAS8xlB,EAAoBhD,QAAU,GACxGsD,GAAgE,OAA9CL,EAAuBjllB,EAAQw8E,MAAMtpF,WAAgB,EAAS+xlB,EAAqBM,aAAe,GACpH//iB,GAAkBm5iB,EAAAA,EAAAA,MAClB6G,EAAiC,MAAnBhgjB,OAA0B,EAASA,EAAgBP,OACjEwgjB,EAAgBH,EAChBI,GAAY,EAEZjH,EAAUz+kB,EAAQP,QAAQg/kB,SAAW,WACvC,OAAOj7iB,QAAQzS,OAAO,oBAGpB40jB,EAAgB,SAAuB3D,EAAOx2b,EAAO91H,EAAMiwE,GAE7D,OADA8/e,EAAgB9/e,EAAW,CAAC6lD,GAAOvqI,OAAOwkkB,GAAiB,GAAGxkkB,OAAOwkkB,EAAe,CAACj6b,IAC9E7lD,EAAW,CAACjwE,GAAMzU,OAAO+gkB,GAAS,GAAG/gkB,OAAO+gkB,EAAO,CAACtsjB,KAIzDkwjB,EAAY,SAAmB5D,EAAO6D,EAAQr6b,EAAO7lD,GACvD,GAAI+/e,EACF,OAAOlijB,QAAQzS,OAAO,aAGxB,GAAqB,qBAAVy6H,IAA0Bq6b,GAAU7D,EAAMr8lB,OACnD,OAAO69C,QAAQ/tC,QAAQuslB,GAGzB,IAAIpD,EAAiB,CACnBhD,SAAU57kB,EAAQ47kB,SAClB32iB,OAAQugjB,EACR3G,UAAWrzb,EACXp/E,KAAMpsE,EAAQosE,MAEZ05gB,EAAgBrH,EAAQG,GACxB/olB,EAAU2tC,QAAQ/tC,QAAQqwlB,GAAejijB,MAAK,SAAUnO,GAC1D,OAAOiwjB,EAAc3D,EAAOx2b,EAAO91H,EAAMiwE,MAQ3C,OALIg0e,EAAamM,KACIjwlB,EACNu1B,OAAS06jB,EAAc16jB,QAG/Bv1B,GAKT,GAAKwvlB,EAAS1/lB,OAGT,GAAIw/lB,EAAoB,CACzB,IAAIU,EAA8B,qBAAdhH,EAChBrzb,EAAQq6b,EAAShH,EAAYkD,EAAiB/hlB,EAAQP,QAAS4llB,GACnExvlB,EAAU+vlB,EAAUP,EAAUQ,EAAQr6b,QAEnC,GAAI45b,EAAwB,CAC7B,IAAIW,EAA+B,qBAAdlH,EAEjBmH,EAASD,EAAUlH,EAAYoD,EAAqBjilB,EAAQP,QAAS4llB,GAEzExvlB,EAAU+vlB,EAAUP,EAAUU,EAASC,GAAQ,QAG7C,WACEP,EAAgB,GAChB,IAAII,EAAqD,qBAArC7llB,EAAQP,QAAQsilB,iBAChCkE,GAAuBxB,IAAeY,EAAS,IAAKZ,EAAYY,EAAS,GAAI,EAAGA,GAEpFxvlB,EAAUowlB,EAAuBL,EAAU,GAAIC,EAAQP,EAAc,IAAM9hjB,QAAQ/tC,QAAQkwlB,EAAc,GAAIL,EAAc,GAAID,EAAS,KAgBxI,IAdA,IAAI35O,EAAQ,SAAet6W,GACzByE,EAAUA,EAAQguC,MAAK,SAAUm+iB,GAG/B,IAF0ByC,IAAeY,EAASj0lB,IAAKqzlB,EAAYY,EAASj0lB,GAAIA,EAAGi0lB,GAE1D,CACvB,IAAIa,EAAUL,EAASP,EAAcl0lB,GAAK2wlB,EAAiB/hlB,EAAQP,QAASuilB,GAE5E,OAAO4D,EAAU5D,EAAO6D,EAAQK,GAGlC,OAAO1ijB,QAAQ/tC,QAAQkwlB,EAAc3D,EAAOsD,EAAcl0lB,GAAIi0lB,EAASj0lB,SAIlEA,EAAI,EAAGA,EAAIi0lB,EAAS1/lB,OAAQyL,IACnCs6W,EAAMt6W,GAtBV,QAfNyE,EAAU+vlB,EAAU,IA0CtB,IAAIO,EAAetwlB,EAAQguC,MAAK,SAAUm+iB,GACxC,MAAO,CACLA,MAAOA,EACPuD,WAAYE,MAchB,OAXwBU,EAEN/6jB,OAAS,WACzBs6jB,GAAY,EACO,MAAnBlgjB,GAAmCA,EAAgBmlK,QAE/CgvY,EAAa9jlB,IACfA,EAAQu1B,UAIL+6jB,KCyGJ9gmB,KAAKs/lB,WAAWzB,IAGzBxL,EAAO0O,sBAAwB,SAA+B9qE,EAAMklE,EAAMkD,GACxE,OAAOr+lB,KAAKw/lB,mBAAmBvpE,EAAMklE,EAAMkD,GAAM7/iB,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,KAGpEqgY,EAAO2O,gBAAkB,WACvB,IAAIC,EAASjhmB,KAET0hE,EAAWkxhB,EAAAA,EAAAA,OAAoB,WACjC,OAAOqO,EAAOxF,cAAcznD,SAAS9tiB,KAAI,SAAUi2lB,GACjD,OAAOA,EAASp2jB,eAGpB,OAAOoY,QAAQpI,IAAI2rB,GAAUljB,KAAKwzK,EAAAA,IAAMvyK,MAAMuyK,EAAAA,KAGhDqgY,EAAOmK,sBAAwB,WAC7B,OAAOx8lB,KAAKkhmB,mBAAmB1E,yBAGjCnK,EAAOwJ,gBAAkB,SAAyBzhlB,GAChD,OAAOpa,KAAKy7lB,cAAcb,MAAM56lB,KAAMoa,GAAS0vD,WAGjDuohB,EAAOsL,cAAgB,WACrB,OAAO39lB,KAAK88lB,YAGdzK,EAAO6O,iBAAmB,WACxB,OAAOlhmB,KAAKy7lB,eAGdpJ,EAAOlpO,kBAAoB,WACzB,OAAOnpX,KAAKgtP,gBAGdqlW,EAAOyE,kBAAoB,SAA2B18kB,GACpDpa,KAAKgtP,eAAiB5yO,GAGxBi4kB,EAAO8O,iBAAmB,SAA0B5K,EAAUn8kB,GAC5D,IAAIvL,EAAS7O,KAAK+8lB,cAAc1glB,MAAK,SAAUrL,GAC7C,OAAOowlB,EAAAA,EAAAA,IAAa7K,MAAc6K,EAAAA,EAAAA,IAAapwlB,EAAEullB,aAG/C1nlB,EACFA,EAAOm+O,eAAiB5yO,EAExBpa,KAAK+8lB,cAAcn8lB,KAAK,CACtB21lB,SAAUA,EACVvpW,eAAgB5yO,KAKtBi4kB,EAAO4I,iBAAmB,SAA0B1E,GAClD,IAAI8K,EAEJ,OAAO9K,EAEA,OAFY8K,EAAwBrhmB,KAAK+8lB,cAAc1glB,MAAK,SAAUrL,GAC3E,OAAOswlB,EAAAA,EAAAA,IAAgB/K,EAAUvllB,EAAEullB,mBACvB,EAAS8K,EAAsBr0W,oBAAiB50O,GAGhEi6kB,EAAOkP,oBAAsB,SAA6BlF,EAAajilB,GACrE,IAAIvL,EAAS7O,KAAKg9lB,iBAAiB3glB,MAAK,SAAUrL,GAChD,OAAOowlB,EAAAA,EAAAA,IAAa/E,MAAiB+E,EAAAA,EAAAA,IAAapwlB,EAAEqrlB,gBAGlDxtlB,EACFA,EAAOm+O,eAAiB5yO,EAExBpa,KAAKg9lB,iBAAiBp8lB,KAAK,CACzBy7lB,YAAaA,EACbrvW,eAAgB5yO,KAKtBi4kB,EAAOiK,oBAAsB,SAA6BD,GACxD,IAAImF,EAEJ,OAAOnF,EAEA,OAFemF,EAAwBxhmB,KAAKg9lB,iBAAiB3glB,MAAK,SAAUrL,GACjF,OAAOswlB,EAAAA,EAAAA,IAAgBjF,EAAarrlB,EAAEqrlB,sBAC1B,EAASmF,EAAsBx0W,oBAAiB50O,GAGhEi6kB,EAAO2I,oBAAsB,SAA6B5glB,GACxD,GAAe,MAAXA,OAAkB,EAASA,EAAQqnlB,WACrC,OAAOrnlB,EAGT,IAAI2jlB,GAAmB9lY,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKgtP,eAAe0tW,QAAS16lB,KAAKi7lB,iBAA4B,MAAX7glB,OAAkB,EAASA,EAAQm8kB,UAAWn8kB,EAAS,CAC5IqnlB,YAAY,IAOd,OAJK1D,EAAiBvH,WAAauH,EAAiBxH,WAClDwH,EAAiBvH,WAAYuE,EAAAA,EAAAA,IAAsBgD,EAAiBxH,SAAUwH,IAGzEA,GAGT1L,EAAOqP,4BAA8B,SAAqCtnlB,GACxE,OAAOpa,KAAKg7lB,oBAAoB5glB,IAGlCi4kB,EAAO+J,uBAAyB,SAAgChilB,GAC9D,OAAe,MAAXA,OAAkB,EAASA,EAAQqnlB,YAC9BrnlB,GAGF69M,EAAAA,EAAAA,GAAS,GAAIj4N,KAAKgtP,eAAes6E,UAAWtnU,KAAKs8lB,oBAA+B,MAAXlilB,OAAkB,EAASA,EAAQiilB,aAAcjilB,EAAS,CACpIqnlB,YAAY,KAIhBpP,EAAOp0e,MAAQ,WACbj+G,KAAK88lB,WAAW7+e,QAChBj+G,KAAKy7lB,cAAcx9e,SAGd4+e,EAnV6B,0eCN3BtJ,EAA6B,qBAAX9tkB,OACtB,SAASusM,KAGT,SAASslY,EAAiBrc,EAASzijB,GACxC,MAA0B,oBAAZyijB,EAAyBA,EAAQzijB,GAASyijB,EAEnD,SAAS+b,EAAep1lB,GAC7B,MAAwB,kBAAVA,GAAsBA,GAAS,GAAKA,IAAUslG,EAAAA,EAEvD,SAASmyf,EAAoBz3lB,GAClC,OAAO2D,MAAMi2E,QAAQ55E,GAASA,EAAQ,CAACA,GAYlC,SAASw2lB,EAAeT,EAAWQ,GACxC,OAAOxykB,KAAKC,IAAI+xkB,GAAaQ,GAAa,GAAK7phB,KAAKskC,MAAO,GAEtD,SAASkrf,EAAe7nE,EAAMklE,EAAMkD,GACzC,OAAKsD,EAAW1rE,GAII,oBAATklE,GACFljY,EAAAA,EAAAA,GAAS,GAAIomY,EAAM,CACxB9H,SAAUtgE,EACVmjE,QAAS+B,KAINljY,EAAAA,EAAAA,GAAS,GAAIkjY,EAAM,CACxB5E,SAAUtgE,IAXHA,EAoCJ,SAASmlE,EAAgBnlE,EAAMklE,EAAMkD,GAC1C,OAAOsD,EAAW1rE,GAAQ,EAACh+T,EAAAA,EAAAA,GAAS,GAAIkjY,EAAM,CAC5C5E,SAAUtgE,IACRooE,GAAQ,CAACpoE,GAAQ,GAAIklE,GAmBpB,SAASG,EAAWpnJ,EAASl8K,GAClC,IAAI7sQ,EAAS+ob,EAAQ/ob,OACjBkwkB,EAAQnnJ,EAAQmnJ,MAChBgC,EAAWnpJ,EAAQmpJ,SACnBhlT,EAAW67J,EAAQ77J,SACnBlzS,EAAY+uc,EAAQ/uc,UACpBoxlB,EAAWriJ,EAAQqiJ,SACnBqL,EAAQ1tJ,EAAQ0tJ,MAEpB,GAAID,EAAWpL,GACb,GAAI8E,GACF,GAAIrjU,EAAMw+T,YAAcuE,EAAsBxE,EAAUv+T,EAAM59Q,SAC5D,OAAO,OAEJ,IAAKknlB,EAAgBtpU,EAAMu+T,SAAUA,GAC1C,OAAO,EAIX,IAAIsL,EA/BC,SAA8B12kB,EAAQktR,GAC3C,OAAe,IAAXltR,IAAgC,IAAbktR,GAA+B,MAAVltR,GAA8B,MAAZktR,EACrD,OACa,IAAXltR,IAAiC,IAAbktR,EACtB,QAIkB,MAAVltR,EAAiBA,GAAUktR,GACxB,SAAW,WAsBPypT,CAAqB32kB,EAAQktR,GAErD,GAA0B,SAAtBwpT,EACF,OAAO,EACF,GAA0B,QAAtBA,EAA6B,CACtC,IAAIt/T,EAAWvK,EAAMuK,WAErB,GAA0B,WAAtBs/T,IAAmCt/T,EACrC,OAAO,EAGT,GAA0B,aAAtBs/T,GAAoCt/T,EACtC,OAAO,EAIX,OAAqB,mBAAVq/T,GAAuB5pU,EAAM+/T,YAAc6J,MAI9B,mBAAbvE,GAA0BrlU,EAAMm/T,eAAiBkG,MAIxDl4lB,IAAcA,EAAU6yR,KAMvB,SAASukU,EAAcroJ,EAASioJ,GACrC,IAAId,EAAQnnJ,EAAQmnJ,MAChBgC,EAAWnpJ,EAAQmpJ,SACnBl4lB,EAAY+uc,EAAQ/uc,UACpBk3lB,EAAcnoJ,EAAQmoJ,YAE1B,GAAIsF,EAAWtF,GAAc,CAC3B,IAAKF,EAAS/hlB,QAAQiilB,YACpB,OAAO,EAGT,GAAIhB,GACF,GAAI+F,EAAajF,EAAS/hlB,QAAQiilB,eAAiB+E,EAAa/E,GAC9D,OAAO,OAEJ,IAAKiF,EAAgBnF,EAAS/hlB,QAAQiilB,YAAaA,GACxD,OAAO,EAIX,OAAwB,mBAAbgB,GAAoD,YAA1BlB,EAAShlgB,MAAMz/C,SAAyB2ljB,MAIzEl4lB,IAAcA,EAAUg3lB,IAMvB,SAASpB,EAAsBxE,EAAUn8kB,GAE9C,QADyB,MAAXA,OAAkB,EAASA,EAAQ2nlB,iBAAmBX,GACtD7K,GAMT,SAAS6K,EAAa7K,GAC3B,IAO8B30lB,EAP1BogmB,EAAU3I,EAAoB9C,GAClC,OAM8B30lB,EANPogmB,EAOhB1mlB,KAAKC,UAAU3Z,GAAO,SAAU8Y,EAAGqJ,GACxC,OAAOg3D,EAAch3D,GAAOjd,OAAOC,KAAKgd,GAAKyhC,OAAO97C,QAAO,SAAUmF,EAAQ7H,GAE3E,OADA6H,EAAO7H,GAAO+c,EAAI/c,GACX6H,IACN,IAAMkV,KAON,SAASu9kB,EAAgB77iB,EAAGC,GACjC,OAAOu8iB,EAAiB5I,EAAoB5ziB,GAAI4ziB,EAAoB3ziB,IAM/D,SAASu8iB,EAAiBx8iB,EAAGC,GAClC,OAAID,IAAMC,UAICD,WAAaC,OAIpBD,IAAKC,GAAkB,kBAAND,GAA+B,kBAANC,KACpC5+C,OAAOC,KAAK2+C,GAAGnjC,MAAK,SAAUvb,GACpC,OAAQi7lB,EAAiBx8iB,EAAEz+C,GAAM0+C,EAAE1+C,QAYlC,SAASywlB,EAAiBhyiB,EAAGC,GAClC,GAAID,IAAMC,EACR,OAAOD,EAGT,IAAIpN,EAAQ9yC,MAAMi2E,QAAQ/1B,IAAMlgD,MAAMi2E,QAAQ91B,GAE9C,GAAIrN,GAAS0iC,EAAct1B,IAAMs1B,EAAcr1B,GAAI,CAOjD,IANA,IAAIw8iB,EAAQ7pjB,EAAQoN,EAAEnlD,OAASwG,OAAOC,KAAK0+C,GAAGnlD,OAC1C6hmB,EAAS9pjB,EAAQqN,EAAI5+C,OAAOC,KAAK2+C,GACjC08iB,EAAQD,EAAO7hmB,OACf+wD,EAAOhZ,EAAQ,GAAK,GACpBgqjB,EAAa,EAERt2lB,EAAI,EAAGA,EAAIq2lB,EAAOr2lB,IAAK,CAC9B,IAAI/E,EAAMqxC,EAAQtsC,EAAIo2lB,EAAOp2lB,GAC7BslD,EAAKrqD,GAAOywlB,EAAiBhyiB,EAAEz+C,GAAM0+C,EAAE1+C,IAEnCqqD,EAAKrqD,KAASy+C,EAAEz+C,IAClBq7lB,IAIJ,OAAOH,IAAUE,GAASC,IAAeH,EAAQz8iB,EAAI4L,EAGvD,OAAO3L,EAoBF,SAASq1B,EAAckV,GAC5B,IAAKqygB,EAAmBrygB,GACtB,OAAO,EAIT,IAAI2zC,EAAO3zC,EAAEzhF,YAEb,GAAoB,qBAATo1H,EACT,OAAO,EAIT,IAAI2+d,EAAO3+d,EAAKp+H,UAEhB,QAAK88lB,EAAmBC,MAKnBA,EAAKzrhB,eAAe,iBAQ3B,SAASwrhB,EAAmBrygB,GAC1B,MAA6C,oBAAtCnpF,OAAOtB,UAAUiJ,SAAShO,KAAKwvF,GAGjC,SAAS0xgB,EAAW//lB,GACzB,MAAwB,kBAAVA,GAAsB2D,MAAMi2E,QAAQ55E,GAK7C,SAASo0lB,EAAMpzlB,GACpB,OAAO,IAAIu7C,SAAQ,SAAU/tC,GAC3BvN,WAAWuN,EAASxN,MAQjB,SAAS4vlB,EAAkBhkiB,GAChCrQ,QAAQ/tC,UAAUouC,KAAKgQ,GAAU/O,OAAM,SAAUC,GAC/C,OAAO78C,YAAW,WAChB,MAAM68C,QAIL,SAAS45iB,IACd,GAA+B,oBAApBkJ,gBACT,OAAO,IAAIA,+YCxUJhT,WAA0BiT,wBCCrC7P,EAAAA,EAAAA,uBAAqCpD,gBCF1B9sV,EAASt4N,SCEpB2njB,EAAAA,EAAAA,GAAUrvV,kBCDNggW,EAA8BC,EAAAA,mBAAoBvqlB,GAClDwqlB,EAAyCD,EAAAA,eAAoB,GAOjE,SAASE,EAAsBC,GAC7B,OAAIA,GAAoC,qBAAXr9kB,QACtBA,OAAOs9kB,0BACVt9kB,OAAOs9kB,wBAA0BL,GAG5Bj9kB,OAAOs9kB,yBAGTL,EAGF,IASIM,EAAsB,SAA6Bh8W,GAC5D,IAAI6zW,EAAS7zW,EAAK6zW,OACdoI,EAAsBj8W,EAAK87W,eAC3BA,OAAyC,IAAxBG,GAAyCA,EAC1Dl4lB,EAAWi8O,EAAKj8O,SACpB43lB,EAAAA,WAAgB,WAEd,OADA9H,EAAOn9D,QACA,WACLm9D,EAAOv/D,aAER,CAACu/D,IACJ,IAAIqI,EAAUL,EAAsBC,GACpC,OAAoBH,EAAAA,cAAoBC,EAA0B3hf,SAAU,CAC1Er/G,MAAOkhmB,GACOH,EAAAA,cAAoBO,EAAQjif,SAAU,CACpDr/G,MAAOi5lB,GACN9vlB,4BC5CL,IAAI43lB,EAAQ5ygB,EAAQ,OAGhBozgB,EACgB,qBAAX19kB,OACH,CACE+7B,KAAM,aACN0oB,KAAM,aACNoF,OAAQ,cAEVygB,EAAQ,OAEVqzgB,EAAyB,EAQzBC,EAAY,SAAS7jf,GACvB,OAAOA,EAAM2jf,QAAUA,GAGzB,SAASG,EAAO9jf,GAed,OAdAmjf,EAAMhhB,WAAU,WAMd,OALkB,IAAdyhB,GACFC,EAAU7jf,GAAOh+D,OAEnB4hjB,IAEO,WAEa,MADlBA,GAEEC,EAAU7jf,GAAOt1C,UAGpB,IAEI,KAGTo5hB,EAAOh0hB,OAAS6zhB,EAAO7zhB,OAEvBkrD,EAAO1qC,QAAUwzgB,sCCrCJ,IAAI/2e,EAAEx8B,EAAQ,OAASp4B,EAAEoiE,OAAO4xc,IAAI,iBAAiBz7e,EAAE6pC,OAAO4xc,IAAI,kBAAkBl0gB,EAAE3wD,OAAOtB,UAAUsxE,eAAepf,EAAE60D,EAAEm/c,mDAAmDmZ,kBAAkBztf,EAAE,CAACpwF,KAAI,EAAGi3D,KAAI,EAAGsliB,QAAO,EAAGC,UAAS,GAChP,SAAStpZ,EAAE1+L,EAAEiqC,EAAE+gB,GAAG,IAAI9gB,EAAEo3D,EAAE,GAAGt8G,EAAE,KAAKgpJ,EAAE,KAAiF,IAAI9jG,UAAhF,IAAS8gB,IAAIhmE,EAAE,GAAGgmE,QAAG,IAAS/gB,EAAEz+C,MAAMxG,EAAE,GAAGilD,EAAEz+C,UAAK,IAASy+C,EAAEwY,MAAMurF,EAAE/jG,EAAEwY,KAAcxY,EAAEgS,EAAEh3D,KAAKglD,EAAEC,KAAK0xC,EAAEtgB,eAAepxB,KAAKo3D,EAAEp3D,GAAGD,EAAEC,IAAI,GAAGlqC,GAAGA,EAAE0xT,aAAa,IAAIxnR,KAAKD,EAAEjqC,EAAE0xT,kBAAe,IAASpwN,EAAEp3D,KAAKo3D,EAAEp3D,GAAGD,EAAEC,IAAI,MAAM,CAACqmhB,SAASp0gB,EAAEh0C,KAAKnI,EAAExU,IAAIxG,EAAEy9D,IAAIurF,EAAEhqC,MAAM1C,EAAEk0I,OAAOt5L,EAAE4mL,SAASxuJ,EAAQ0ggB,SAAStggB,EAAEJ,EAAQ2zgB,IAAIvpZ,EAAEpqH,EAAQ4zgB,KAAKxpZ,oCCD7V,IAAIhqH,EAAE6pC,OAAO4xc,IAAI,iBAAiBj0gB,EAAEqiE,OAAO4xc,IAAI,gBAAgBv0e,EAAE2iC,OAAO4xc,IAAI,kBAAkBzxX,EAAEngF,OAAO4xc,IAAI,qBAAqBplgB,EAAEwzD,OAAO4xc,IAAI,kBAAkBz1gB,EAAE6jE,OAAO4xc,IAAI,kBAAkBn9X,EAAEz0E,OAAO4xc,IAAI,iBAAiB9khB,EAAEkzE,OAAO4xc,IAAI,qBAAqBlib,EAAE1vB,OAAO4xc,IAAI,kBAAkB36jB,EAAE+oH,OAAO4xc,IAAI,cAAchujB,EAAEo8G,OAAO4xc,IAAI,cAAc/ld,EAAEmU,OAAOmiB,SACzW,IAAIwT,EAAE,CAAC6qb,UAAU,WAAW,OAAM,GAAIM,mBAAmB,aAAaD,oBAAoB,aAAaH,gBAAgB,cAAcvyd,EAAEphH,OAAOw4C,OAAO2pgB,EAAE,GAAG,SAAStzP,EAAElwQ,EAAEC,EAAEllD,GAAGR,KAAKw/G,MAAM/5D,EAAEzlD,KAAK2a,QAAQ+qC,EAAE1lD,KAAK68E,KAAKose,EAAEjpjB,KAAKi7kB,QAAQz6kB,GAAGkvJ,EACyI,SAASm1W,KAA6B,SAAS2nD,EAAE/mgB,EAAEC,EAAEllD,GAAGR,KAAKw/G,MAAM/5D,EAAEzlD,KAAK2a,QAAQ+qC,EAAE1lD,KAAK68E,KAAKose,EAAEjpjB,KAAKi7kB,QAAQz6kB,GAAGkvJ,EADvPimK,EAAEnwT,UAAUmmlB,iBAAiB,GACnQh2R,EAAEnwT,UAAU+zI,SAAS,SAAS9zF,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMpQ,MAAM,yHAAyHr1C,KAAKi7kB,QAAQR,gBAAgBz6kB,KAAKylD,EAAEC,EAAE,aAAaiwQ,EAAEnwT,UAAUm6c,YAAY,SAASl6Z,GAAGzlD,KAAKi7kB,QAAQJ,mBAAmB76kB,KAAKylD,EAAE,gBAA8Bo/c,EAAEr/f,UAAUmwT,EAAEnwT,UAAsF,IAAIwvO,EAAEw3U,EAAEhnjB,UAAU,IAAIq/f,EACrf7vR,EAAExmO,YAAYg+iB,EAAEtkc,EAAE8sH,EAAE2gF,EAAEnwT,WAAWwvO,EAAE+lW,sBAAqB,EAAG,IAAIryB,EAAEnjjB,MAAMi2E,QAAQmte,EAAE7hjB,OAAOtB,UAAUsxE,eAAeixe,EAAE,CAACzpU,QAAQ,MAAMlvF,EAAE,CAACpoJ,KAAI,EAAGi3D,KAAI,EAAGsliB,QAAO,EAAGC,UAAS,GACtK,SAAS/tS,EAAEhwQ,EAAEC,EAAEllD,GAAG,IAAIs8G,EAAEthG,EAAE,GAAGm8C,EAAE,KAAK6xF,EAAE,KAAK,GAAG,MAAM9jG,EAAE,IAAIo3D,UAAK,IAASp3D,EAAEuY,MAAMurF,EAAE9jG,EAAEuY,UAAK,IAASvY,EAAE1+C,MAAM2wD,EAAE,GAAGjS,EAAE1+C,KAAK0+C,EAAEijgB,EAAElojB,KAAKilD,EAAEo3D,KAAKsyC,EAAEt4E,eAAegmC,KAAKthG,EAAEshG,GAAGp3D,EAAEo3D,IAAI,IAAIt2C,EAAEz+D,UAAUzH,OAAO,EAAE,GAAG,IAAIkmE,EAAEhrD,EAAEzQ,SAASvK,OAAO,GAAG,EAAEgmE,EAAE,CAAC,IAAI,IAAI+lD,EAAEhnH,MAAMihE,GAAG/O,EAAE,EAAEA,EAAE+O,EAAE/O,IAAI80D,EAAE90D,GAAG1vD,UAAU0vD,EAAE,GAAGj8C,EAAEzQ,SAASwhH,EAAE,GAAG9mE,GAAGA,EAAEynR,aAAa,IAAIpwN,KAAKt2C,EAAE/gB,EAAEynR,kBAAe,IAAS1xT,EAAEshG,KAAKthG,EAAEshG,GAAGt2C,EAAEs2C,IAAI,MAAM,CAACivd,SAAS77e,EAAEvsE,KAAK8hC,EAAEz+C,IAAI2wD,EAAEsG,IAAIurF,EAAEhqC,MAAMhkG,EAAEw1O,OAAO+2T,EAAEzpU,SACxU,SAASn2H,EAAE1iE,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEsmhB,WAAW77e,EAAqG,IAAIjyC,EAAE,OAAO,SAASy3Q,EAAEjwQ,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEz+C,IAA7K,SAAgBy+C,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAEiD,QAAQ,SAAQ,SAASjD,GAAG,OAAOC,EAAED,MAAmFqmF,CAAO,GAAGrmF,EAAEz+C,KAAK0+C,EAAEj3C,SAAS,IAC5W,SAAS4gJ,EAAE5pG,EAAEC,EAAEllD,EAAEs8G,EAAEthG,GAAG,IAAIm8C,SAASlS,EAAK,cAAckS,GAAG,YAAYA,IAAElS,EAAE,MAAK,IAAI+jG,GAAE,EAAG,GAAG,OAAO/jG,EAAE+jG,GAAE,OAAQ,OAAO7xF,GAAG,IAAK,SAAS,IAAK,SAAS6xF,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO/jG,EAAEsmhB,UAAU,KAAK77e,EAAE,KAAKx4B,EAAE8xF,GAAE,GAAI,GAAGA,EAAE,OAAWhuI,EAAEA,EAANguI,EAAE/jG,GAASA,EAAE,KAAKq3D,EAAE,IAAI44M,EAAElsK,EAAE,GAAG1sC,EAAE4rc,EAAEltiB,IAAIhb,EAAE,GAAG,MAAMilD,IAAIjlD,EAAEilD,EAAEiD,QAAQzK,EAAE,OAAO,KAAKoxG,EAAE7zI,EAAEkqC,EAAEllD,EAAE,IAAG,SAASilD,GAAG,OAAOA,MAAK,MAAMjqC,IAAI2sG,EAAE3sG,KAAKA,EADnW,SAAWiqC,EAAEC,GAAG,MAAM,CAACqmhB,SAAS77e,EAAEvsE,KAAK8hC,EAAE9hC,KAAK3c,IAAI0+C,EAAEuY,IAAIxY,EAAEwY,IAAIuhD,MAAM/5D,EAAE+5D,MAAMwxI,OAAOvrM,EAAEurM,QACgR6gU,CAAEr2iB,EAAEhb,IAAIgb,EAAExU,KAAKwiJ,GAAGA,EAAExiJ,MAAMwU,EAAExU,IAAI,IAAI,GAAGwU,EAAExU,KAAK0hD,QAAQzK,EAAE,OAAO,KAAKwH,IAAIC,EAAE9kD,KAAK4a,IAAI,EAAyB,GAAvBguI,EAAE,EAAE1sC,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAO4rc,EAAEjjgB,GAAG,IAAI,IAAI+gB,EAAE,EAAEA,EAAE/gB,EAAEnlD,OAAOkmE,IAAI,CAC/e,IAAI+lD,EAAEzP,EAAE44M,EADwe/9P,EACrflS,EAAE+gB,GAAeA,GAAGgjF,GAAG6F,EAAE13F,EAAEjS,EAAEllD,EAAE+rH,EAAE/wG,QAAQ,GAAG+wG,EAPsU,SAAW9mE,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEmgE,GAAGngE,EAAEmgE,IAAIngE,EAAE,eAA0CA,EAAE,KAOxby1a,CAAEz1a,GAAG,oBAAoB8mE,EAAE,IAAI9mE,EAAE8mE,EAAE9rH,KAAKglD,GAAG+gB,EAAE,IAAI7O,EAAElS,EAAEnH,QAAQllB,MAA6BowH,GAAG6F,EAA1B13F,EAAEA,EAAE/1D,MAA0B8jD,EAAEllD,EAAtB+rH,EAAEzP,EAAE44M,EAAE/9P,EAAE6O,KAAkBhrD,QAAQ,GAAG,WAAWm8C,EAAE,MAAMjS,EAAEmgB,OAAOpgB,GAAGpQ,MAAM,mDAAmD,oBAAoBqQ,EAAE,qBAAqB5+C,OAAOC,KAAK0+C,GAAGx0C,KAAK,MAAM,IAAIy0C,GAAG,6EAA6E,OAAO8jG,EACxZ,SAASyrF,EAAExvL,EAAEC,EAAEllD,GAAG,GAAG,MAAMilD,EAAE,OAAOA,EAAE,IAAIq3D,EAAE,GAAGthG,EAAE,EAAmD,OAAjD6zI,EAAE5pG,EAAEq3D,EAAE,GAAG,IAAG,SAASr3D,GAAG,OAAOC,EAAEjlD,KAAKD,EAAEilD,EAAEjqC,QAAcshG,EAAE,SAASgrc,EAAErigB,GAAG,IAAI,IAAIA,EAAEk+iB,QAAQ,CAAC,IAAIj+iB,EAAED,EAAEm+iB,SAAQl+iB,EAAEA,KAAMlH,MAAK,SAASkH,GAAM,IAAID,EAAEk+iB,UAAU,IAAIl+iB,EAAEk+iB,UAAQl+iB,EAAEk+iB,QAAQ,EAAEl+iB,EAAEm+iB,QAAQl+iB,MAAG,SAASA,GAAM,IAAID,EAAEk+iB,UAAU,IAAIl+iB,EAAEk+iB,UAAQl+iB,EAAEk+iB,QAAQ,EAAEl+iB,EAAEm+iB,QAAQl+iB,OAAK,IAAID,EAAEk+iB,UAAUl+iB,EAAEk+iB,QAAQ,EAAEl+iB,EAAEm+iB,QAAQl+iB,GAAG,GAAG,IAAID,EAAEk+iB,QAAQ,OAAOl+iB,EAAEm+iB,QAAQr0f,QAAQ,MAAM9pD,EAAEm+iB,QACpZ,IAAI11C,EAAE,CAAC5vU,QAAQ,MAAMpJ,EAAE,CAACjQ,WAAW,MAAM+iV,EAAE,CAAC22B,uBAAuBzwB,EAAE2hB,wBAAwB36V,EAAE2vW,kBAAkB98B,GAAGj4d,EAAQ+zgB,SAAS,CAAC39lB,IAAI+uO,EAAEh1O,QAAQ,SAASwlD,EAAEC,EAAEllD,GAAGy0O,EAAExvL,GAAE,WAAWC,EAAE1/B,MAAMhmB,KAAK+H,aAAYvH,IAAI04E,MAAM,SAASzzB,GAAG,IAAIC,EAAE,EAAuB,OAArBuvL,EAAExvL,GAAE,WAAWC,OAAaA,GAAGo0K,QAAQ,SAASr0K,GAAG,OAAOwvL,EAAExvL,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAIq+iB,KAAK,SAASr+iB,GAAG,IAAI0iE,EAAE1iE,GAAG,MAAMpQ,MAAM,yEAAyE,OAAOoQ,IAAIqqC,EAAQ2vB,UAAUk2M,EAAE7lO,EAAQ0ggB,SAASp5f,EACnetH,EAAQ6ggB,SAASpqhB,EAAEupB,EAAQi0gB,cAAcv3C,EAAE18d,EAAQ8ggB,WAAW12Y,EAAEpqH,EAAQ+ggB,SAASpnc,EAAE35D,EAAQ47e,mDAAmD1jB,EAC9Il4d,EAAQk0gB,aAAa,SAASv+iB,EAAEC,EAAEllD,GAAG,GAAG,OAAOilD,QAAG,IAASA,EAAE,MAAMpQ,MAAM,iFAAiFoQ,EAAE,KAAK,IAAIq3D,EAAEoL,EAAE,GAAGziE,EAAE+5D,OAAOhkG,EAAEiqC,EAAEz+C,IAAI2wD,EAAElS,EAAEwY,IAAIurF,EAAE/jG,EAAEurM,OAAO,GAAG,MAAMtrM,EAAE,CAAoE,QAAnE,IAASA,EAAEuY,MAAMtG,EAAEjS,EAAEuY,IAAIurF,EAAEu+Z,EAAEzpU,cAAS,IAAS54L,EAAE1+C,MAAMwU,EAAE,GAAGkqC,EAAE1+C,KAAQy+C,EAAE9hC,MAAM8hC,EAAE9hC,KAAKupT,aAAa,IAAI1mQ,EAAE/gB,EAAE9hC,KAAKupT,aAAa,IAAI3gN,KAAK7mE,EAAEijgB,EAAElojB,KAAKilD,EAAE6mE,KAAK6iC,EAAEt4E,eAAey1C,KAAKzP,EAAEyP,QAAG,IAAS7mE,EAAE6mE,SAAI,IAAS/lD,EAAEA,EAAE+lD,GAAG7mE,EAAE6mE,IAAI,IAAIA,EAAExkH,UAAUzH,OAAO,EAAE,GAAG,IAAIisH,EAAEzP,EAAE/xG,SAASvK,OAAO,GAAG,EAAE+rH,EAAE,CAAC/lD,EAAEjhE,MAAMgnH,GACrf,IAAI,IAAI90D,EAAE,EAAEA,EAAE80D,EAAE90D,IAAI+O,EAAE/O,GAAG1vD,UAAU0vD,EAAE,GAAGqlD,EAAE/xG,SAASy7D,EAAE,MAAM,CAACulgB,SAAS77e,EAAEvsE,KAAK8hC,EAAE9hC,KAAK3c,IAAIwU,EAAEyiD,IAAItG,EAAE6nD,MAAM1C,EAAEk0I,OAAOxnG,IAAI15D,EAAQkxB,cAAc,SAASv7D,GAAqK,OAAlKA,EAAE,CAACsmhB,SAASv9X,EAAEqqY,cAAcpzhB,EAAEw+iB,eAAex+iB,EAAEy+iB,aAAa,EAAEjjf,SAAS,KAAKkjf,SAAS,KAAK5xf,cAAc,KAAK6xf,YAAY,OAAQnjf,SAAS,CAAC8qd,SAAS71gB,EAAEjjB,SAASwS,GAAUA,EAAE0+iB,SAAS1+iB,GAAGqqC,EAAQ1sD,cAAcqyR,EAAE3lO,EAAQu0gB,cAAc,SAAS5+iB,GAAG,IAAIC,EAAE+vQ,EAAEhrT,KAAK,KAAKg7C,GAAY,OAATC,EAAE/hC,KAAK8hC,EAASC,GAAGoqC,EAAQw6O,UAAU,WAAW,MAAM,CAAChsF,QAAQ,OACzdxuJ,EAAQw0gB,WAAW,SAAS7+iB,GAAG,MAAM,CAACsmhB,SAASllhB,EAAEtnC,OAAOkmC,IAAIqqC,EAAQy0gB,eAAep8e,EAAEr4B,EAAQ00gB,KAAK,SAAS/+iB,GAAG,MAAM,CAACsmhB,SAASpujB,EAAEqujB,SAAS,CAAC23B,SAAS,EAAEC,QAAQn+iB,GAAG+sB,MAAMs1e,IAAIh4d,EAAQ20gB,KAAK,SAASh/iB,EAAEC,GAAG,MAAM,CAACqmhB,SAAS/6jB,EAAE2S,KAAK8hC,EAAE+R,aAAQ,IAAS9R,EAAE,KAAKA,IAAIoqC,EAAQ40gB,gBAAgB,SAASj/iB,GAAG,IAAIC,EAAEwvL,EAAEjQ,WAAWiQ,EAAEjQ,WAAW,GAAG,IAAIx/K,IAAJ,QAAgByvL,EAAEjQ,WAAWv/K,IAAIoqC,EAAQ60gB,aAAa,WAAW,MAAMtvjB,MAAM,6DAC9Yy6C,EAAQ2xf,YAAY,SAASh8hB,EAAEC,GAAG,OAAOwogB,EAAE5vU,QAAQmjW,YAAYh8hB,EAAEC,IAAIoqC,EAAQ4xf,WAAW,SAASj8hB,GAAG,OAAOyogB,EAAE5vU,QAAQojW,WAAWj8hB,IAAIqqC,EAAQqyf,cAAc,aAAaryf,EAAQsyf,iBAAiB,SAAS38hB,GAAG,OAAOyogB,EAAE5vU,QAAQ8jW,iBAAiB38hB,IAAIqqC,EAAQ6xf,UAAU,SAASl8hB,EAAEC,GAAG,OAAOwogB,EAAE5vU,QAAQqjW,UAAUl8hB,EAAEC,IAAIoqC,EAAQ0yf,MAAM,WAAW,OAAOt0B,EAAE5vU,QAAQkkW,SAAS1yf,EAAQ8xf,oBAAoB,SAASn8hB,EAAEC,EAAEllD,GAAG,OAAO0tjB,EAAE5vU,QAAQsjW,oBAAoBn8hB,EAAEC,EAAEllD,IAC3bsvF,EAAQ+xf,mBAAmB,SAASp8hB,EAAEC,GAAG,OAAOwogB,EAAE5vU,QAAQujW,mBAAmBp8hB,EAAEC,IAAIoqC,EAAQgyf,gBAAgB,SAASr8hB,EAAEC,GAAG,OAAOwogB,EAAE5vU,QAAQwjW,gBAAgBr8hB,EAAEC,IAAIoqC,EAAQiyf,QAAQ,SAASt8hB,EAAEC,GAAG,OAAOwogB,EAAE5vU,QAAQyjW,QAAQt8hB,EAAEC,IAAIoqC,EAAQkyf,WAAW,SAASv8hB,EAAEC,EAAEllD,GAAG,OAAO0tjB,EAAE5vU,QAAQ0jW,WAAWv8hB,EAAEC,EAAEllD,IAAIsvF,EAAQmyf,OAAO,SAASx8hB,GAAG,OAAOyogB,EAAE5vU,QAAQ2jW,OAAOx8hB,IAAIqqC,EAAQoyf,SAAS,SAASz8hB,GAAG,OAAOyogB,EAAE5vU,QAAQ4jW,SAASz8hB,IAAIqqC,EAAQyyf,qBAAqB,SAAS98hB,EAAEC,EAAEllD,GAAG,OAAO0tjB,EAAE5vU,QAAQikW,qBAAqB98hB,EAAEC,EAAEllD,IAC7esvF,EAAQuyf,cAAc,WAAW,OAAOn0B,EAAE5vU,QAAQ+jW,iBAAiBvyf,EAAQg5C,QAAQ,gECtBjFtO,EAAO1qC,QAAU,EAAjB0qC,2CCAAA,EAAO1qC,QAAU,EAAjB0qC,yCCMW,SAASjO,EAAE9mE,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEnlD,OAAOmlD,EAAE7kD,KAAK8kD,GAAGD,EAAE,KAAK,EAAEjqC,GAAG,CAAC,IAAIshG,EAAEthG,EAAE,IAAI,EAAEhb,EAAEilD,EAAEq3D,GAAG,KAAG,EAAEt2C,EAAEhmE,EAAEklD,IAA0B,MAAMD,EAA7BA,EAAEq3D,GAAGp3D,EAAED,EAAEjqC,GAAGhb,EAAEgb,EAAEshG,GAAgB,SAAS0sC,EAAE/jG,GAAG,OAAO,IAAIA,EAAEnlD,OAAO,KAAKmlD,EAAE,GAAG,SAASkS,EAAElS,GAAG,GAAG,IAAIA,EAAEnlD,OAAO,OAAO,KAAK,IAAIolD,EAAED,EAAE,GAAGjqC,EAAEiqC,EAAErN,MAAM,GAAG58B,IAAIkqC,EAAE,CAACD,EAAE,GAAGjqC,EAAEiqC,EAAE,IAAI,IAAIq3D,EAAE,EAAEt8G,EAAEilD,EAAEnlD,OAAOmpJ,EAAEjpJ,IAAI,EAAEs8G,EAAE2sC,GAAG,CAAC,IAAIhyF,EAAE,GAAGqlD,EAAE,GAAG,EAAEoL,EAAEziE,EAAEgS,GAAGC,EAAED,EAAE,EAAEzmD,EAAEy0C,EAAEiS,GAAG,GAAG,EAAE8O,EAAE0hD,EAAE1sG,GAAGk8C,EAAEl3D,GAAG,EAAEgmE,EAAEx1D,EAAEk3G,IAAIziE,EAAEq3D,GAAG9rG,EAAEy0C,EAAEiS,GAAGl8C,EAAEshG,EAAEplD,IAAIjS,EAAEq3D,GAAGoL,EAAEziE,EAAEgS,GAAGj8C,EAAEshG,EAAErlD,OAAQ,MAAGC,EAAEl3D,GAAG,EAAEgmE,EAAEx1D,EAAEwK,IAA0B,MAAMiqC,EAA7BA,EAAEq3D,GAAG9rG,EAAEy0C,EAAEiS,GAAGl8C,EAAEshG,EAAEplD,IAAgB,OAAOhS,EAC1c,SAAS8gB,EAAE/gB,EAAEC,GAAG,IAAIlqC,EAAEiqC,EAAEm/iB,UAAUl/iB,EAAEk/iB,UAAU,OAAO,IAAIpplB,EAAEA,EAAEiqC,EAAEx7C,GAAGy7C,EAAEz7C,GAAG,GAAG,kBAAkB46lB,aAAa,oBAAoBA,YAAYjyf,IAAI,CAAC,IAAI1iB,EAAE20gB,YAAY/0gB,EAAQ0+e,aAAa,WAAW,OAAOt+e,EAAE0iB,WAAW,CAAC,IAAIxb,EAAE9oB,KAAK4rI,EAAE9iH,EAAEwb,MAAM9iB,EAAQ0+e,aAAa,WAAW,OAAOp3e,EAAEwb,MAAMsnG,GAAG,IAAI3zI,EAAE,GAAGrQ,EAAE,GAAGs4I,EAAE,EAAE3nJ,EAAE,KAAKlpC,EAAE,EAAEioG,GAAE,EAAGs1W,GAAE,EAAGxrU,GAAE,EAAGu5Z,EAAE,oBAAoBpmjB,WAAWA,WAAW,KAAK8yT,EAAE,oBAAoBz3R,aAAaA,aAAa,KAAK2me,EAAE,qBAAqBigG,aAAaA,aAAa,KACnT,SAASt4C,EAAE/mgB,GAAG,IAAI,IAAIC,EAAE8jG,EAAEtzF,GAAG,OAAOxQ,GAAG,CAAC,GAAG,OAAOA,EAAE8I,SAASmJ,EAAEzB,OAAQ,MAAGxQ,EAAEi6K,WAAWl6K,GAAgD,MAA9CkS,EAAEzB,GAAGxQ,EAAEk/iB,UAAUl/iB,EAAEq/iB,eAAex4e,EAAEhmD,EAAE7gB,GAAcA,EAAE8jG,EAAEtzF,IAAI,SAAS8+K,EAAEvvL,GAAa,GAAViqG,GAAE,EAAG88Z,EAAE/mgB,IAAOy1a,EAAE,GAAG,OAAO1xU,EAAEjjF,GAAG20Z,GAAE,EAAGwtF,EAAEC,OAAO,CAAC,IAAIjjgB,EAAE8jG,EAAEtzF,GAAG,OAAOxQ,GAAGqigB,EAAE/yU,EAAEtvL,EAAEi6K,UAAUl6K,IACla,SAASkjgB,EAAEljgB,EAAEC,GAAGw1a,GAAE,EAAGxrU,IAAIA,GAAE,EAAGimK,EAAEvmK,GAAGA,GAAG,GAAGxpC,GAAE,EAAG,IAAIpqG,EAAEmC,EAAE,IAAS,IAAL6uiB,EAAE9mgB,GAAOmB,EAAE2iG,EAAEjjF,GAAG,OAAO1f,MAAMA,EAAEk+iB,eAAer/iB,IAAID,IAAIgwQ,MAAM,CAAC,IAAI34M,EAAEj2D,EAAE2H,SAAS,GAAG,oBAAoBsuD,EAAE,CAACj2D,EAAE2H,SAAS,KAAK7wC,EAAEkpC,EAAEm+iB,cAAc,IAAIxkmB,EAAEs8G,EAAEj2D,EAAEk+iB,gBAAgBr/iB,GAAGA,EAAEoqC,EAAQ0+e,eAAe,oBAAoBhukB,EAAEqmD,EAAE2H,SAAShuD,EAAEqmD,IAAI2iG,EAAEjjF,IAAI5O,EAAE4O,GAAGimf,EAAE9mgB,QAAQiS,EAAE4O,GAAG1f,EAAE2iG,EAAEjjF,GAAG,GAAG,OAAO1f,EAAE,IAAI4iG,GAAE,MAAO,CAAC,IAAIhyF,EAAE+xF,EAAEtzF,GAAG,OAAOuB,GAAGswf,EAAE/yU,EAAEv9K,EAAEkoK,UAAUj6K,GAAG+jG,GAAE,EAAG,OAAOA,EAA1V,QAAoW5iG,EAAE,KAAKlpC,EAAEnC,EAAEoqG,GAAE,GADva,qBAAqB6Y,gBAAW,IAASA,UAAUwme,iBAAY,IAASxme,UAAUwme,WAAWC,gBAAgBzme,UAAUwme,WAAWC,eAAez6lB,KAAKg0H,UAAUwme,YAC2Q,IACzPhwX,EAD6P48U,GAAE,EAAG1pc,EAAE,KAAKinC,GAAG,EAAEnxG,EAAE,EAAEy3Q,GAAG,EACvc,SAASD,IAAI,QAAO3lO,EAAQ0+e,eAAe94Q,EAAEz3Q,GAAQ,SAASoxG,IAAI,GAAG,OAAOlnC,EAAE,CAAC,IAAI1iE,EAAEqqC,EAAQ0+e,eAAe94Q,EAAEjwQ,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAEyiE,GAAE,EAAG1iE,GAAX,QAAsBC,EAAEuvL,KAAK48U,GAAE,EAAG1pc,EAAE,YAAY0pc,GAAE,EAAS,GAAG,oBAAoBhtD,EAAE5vR,EAAE,WAAW4vR,EAAEx1W,SAAS,GAAG,qBAAqB81c,eAAe,CAAC,IAAIr9C,EAAE,IAAIq9C,eAAej3C,EAAEpG,EAAEs9C,MAAMt9C,EAAEu9C,MAAMlsZ,UAAU9pD,EAAE4lF,EAAE,WAAWi5U,EAAE3+a,YAAY,YAAY0lG,EAAE,WAAWg0U,EAAE55Z,EAAE,IAAI,SAASq5Z,EAAEjjgB,GAAG0iE,EAAE1iE,EAAEosgB,IAAIA,GAAE,EAAG58U,KAAK,SAAS8yU,EAAEtigB,EAAEC,GAAG0pG,EAAE65Z,GAAE,WAAWxjgB,EAAEqqC,EAAQ0+e,kBAAiB9ohB,GAC1doqC,EAAQg/e,sBAAsB,EAAEh/e,EAAQ4+e,2BAA2B,EAAE5+e,EAAQ++e,qBAAqB,EAAE/+e,EAAQ8+e,wBAAwB,EAAE9+e,EAAQw1gB,mBAAmB,KAAKx1gB,EAAQ6+e,8BAA8B,EAAE7+e,EAAQu+e,wBAAwB,SAAS5ohB,GAAGA,EAAE+I,SAAS,MAAMshC,EAAQy1gB,2BAA2B,WAAWrqI,GAAGt1W,IAAIs1W,GAAE,EAAGwtF,EAAEC,KACvU74d,EAAQ01gB,wBAAwB,SAAS//iB,GAAG,EAAEA,GAAG,IAAIA,EAAErb,QAAQsV,MAAM,mHAAmHzB,EAAE,EAAEwH,EAAE9/B,KAAKo1B,MAAM,IAAI0K,GAAG,GAAGqqC,EAAQ2+e,iCAAiC,WAAW,OAAO9wjB,GAAGmyE,EAAQ21gB,8BAA8B,WAAW,OAAOj8c,EAAEjjF,IAAIupB,EAAQ41gB,cAAc,SAASjgjB,GAAG,OAAO9nC,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI+nC,EAAE,EAAE,MAAM,QAAQA,EAAE/nC,EAAE,IAAInC,EAAEmC,EAAEA,EAAE+nC,EAAE,IAAI,OAAOD,IAAX,QAAuB9nC,EAAEnC,IAAIs0E,EAAQ61gB,wBAAwB,aACnf71gB,EAAQy+e,sBAAsB,aAAaz+e,EAAQ81gB,yBAAyB,SAASngjB,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIjqC,EAAEmC,EAAEA,EAAE8nC,EAAE,IAAI,OAAOC,IAAX,QAAuB/nC,EAAEnC,IAC9Ls0E,EAAQs+e,0BAA0B,SAAS3ohB,EAAEC,EAAElqC,GAAG,IAAIshG,EAAEhtB,EAAQ0+e,eAA8F,OAA/E,kBAAkBhzjB,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEsiH,QAA6B,EAAEtiH,EAAEshG,EAAEthG,EAAEshG,EAAGthG,EAAEshG,EAASr3D,GAAG,KAAK,EAAE,IAAIjlD,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzMilD,EAAE,CAACx7C,GAAGukM,IAAIhgJ,SAAS9I,EAAEs/iB,cAAcv/iB,EAAEk6K,UAAUnkN,EAAEuplB,eAAvDvkmB,EAAEgb,EAAEhb,EAAoEokmB,WAAW,GAAGpplB,EAAEshG,GAAGr3D,EAAEm/iB,UAAUpplB,EAAE+wG,EAAEr2D,EAAEzQ,GAAG,OAAO+jG,EAAEjjF,IAAI9gB,IAAI+jG,EAAEtzF,KAAKw5F,GAAGimK,EAAEvmK,GAAGA,GAAG,GAAGM,GAAE,EAAGq4Z,EAAE/yU,EAAEx5N,EAAEshG,MAAMr3D,EAAEm/iB,UAAUpkmB,EAAE+rH,EAAEhmD,EAAE9gB,GAAGy1a,GAAGt1W,IAAIs1W,GAAE,EAAGwtF,EAAEC,KAAYljgB,GACleqqC,EAAQw+e,qBAAqB74Q,EAAE3lO,EAAQ+1gB,sBAAsB,SAASpgjB,GAAG,IAAIC,EAAE/nC,EAAE,OAAO,WAAW,IAAInC,EAAEmC,EAAEA,EAAE+nC,EAAE,IAAI,OAAOD,EAAEz/B,MAAMhmB,KAAK+H,WAAxB,QAA2C4V,EAAEnC,yCCf1Jg/G,EAAO1qC,QAAU,EAAjB0qC,0BCFFA,EAAO1qC,QAAU,WACf,IAAIrnE,EAAYjmB,SAASozK,eACzB,IAAKntJ,EAAU+xI,WACb,OAAO,aAKT,IAHA,IAAIrvI,EAAS3oB,SAASkF,cAElBokF,EAAS,GACJ//E,EAAI,EAAGA,EAAI0c,EAAU+xI,WAAYzuJ,IACxC+/E,EAAOlrF,KAAK6nB,EAAUq9kB,WAAW/5lB,IAGnC,OAAQof,EAAOo3L,QAAQ78F,eACrB,IAAK,QACL,IAAK,WACHv6F,EAAOs9B,OACP,MAEF,QACEt9B,EAAS,KAKb,OADA1C,EAAUqlM,kBACH,WACc,UAAnBrlM,EAAU9E,MACV8E,EAAUqlM,kBAELrlM,EAAU+xI,YACb1uE,EAAO7rF,SAAQ,SAAS+rF,GACtBvjE,EAAUmyI,SAAS5uE,MAIvB7gE,GACAA,EAAOpqB,iCCpCX,OAIC,SAAU0kB,EAAQjjB,GACf,cAGE,WAGE,IAFA,IAAIujmB,EAAW,EACXC,EAAU,CAAC,KAAM,MAAO,SAAU,KAC9Bh1lB,EAAI,EAAGA,EAAIg1lB,EAAQ1lmB,SAAWmlB,EAAOwqH,wBAAyBj/H,EAClEyU,EAAOwqH,sBAAwBxqH,EAAOuglB,EAAQh1lB,GAAG,yBACjDyU,EAAOm3M,qBAAuBn3M,EAAOuglB,EAAQh1lB,GAAG,yBACzCyU,EAAOuglB,EAAQh1lB,GAAG,+BAExByU,EAAOwqH,wBACRxqH,EAAOwqH,sBAAwB,SAASzhF,EAAU1uD,GAC9C,IAAImmmB,GAAW,IAAI33hB,MAAO21L,UACtBiiW,EAAavglB,KAAKC,IAAI,EAAG,IAAMqglB,EAAWF,IAC1C97lB,EAAKwb,EAAO5iB,YAAW,WAAa2rD,EAASy3iB,EAAWC,KACxDA,GAEJ,OADAH,EAAWE,EAAWC,EACfj8lB,IAEVwb,EAAOm3M,uBACRn3M,EAAOm3M,qBAAuB,SAAS3yN,GACnCi0B,aAAaj0B,KAnBvB,GAuBF,IAAIykM,EAAQy3Z,EAAiBC,EAAaC,EAAiBvmP,EAMvD1lW,EAAU,CACNkslB,SAAe,EACfC,aAAe,EACfC,UAAe,CACX,EAAW,0BACX,MAAW,0BACX,MAAW,0BACX,MAAW,0BACX,MAAW,2BAEfC,WAAe,GACfrmF,YAAe,0BACf/xgB,UAAe,MAEnBiX,EAAU,WACNopL,EAAOp9L,MAAQmU,EAAOo8H,WACtB6sD,EAAOn9L,OAAgC,EAAvB6I,EAAQmslB,aAExB,IAAIn3Z,EAAMV,EAAO/yI,WAAW,MAC5ByzI,EAAIq3Z,WAAarslB,EAAQqslB,WACzBr3Z,EAAIgxU,YAAchmgB,EAAQgmgB,YAE1B,IAAIsmF,EAAet3Z,EAAIu3Z,qBAAqB,EAAG,EAAGj4Z,EAAOp9L,MAAO,GAChE,IAAK,IAAIiJ,KAAQH,EAAQoslB,UACrBE,EAAaE,aAAarslB,EAAMH,EAAQoslB,UAAUjslB,IACtD60L,EAAIoyU,UAAYpngB,EAAQmslB,aACxBn3Z,EAAIy3Z,YACJz3Z,EAAI14C,OAAO,EAAGt8I,EAAQmslB,aAAa,GACnCn3Z,EAAI03Z,OAAOnhlB,KAAK+iK,KAAK29a,EAAkB33Z,EAAOp9L,OAAQ8I,EAAQmslB,aAAa,GAC3En3Z,EAAI23Z,YAAcL,EAClBt3Z,EAAIp1J,UAcRmpjB,EAAS,CACL7zhB,OAAQ,SAAS05C,GACb,IAAK,IAAIhiH,KAAOgiH,EACR5uG,EAAQ08D,eAAe9vE,KACvBoT,EAAQpT,GAAOgiH,EAAKhiH,KAEhCw6C,KAAM,WACEs+T,IACJA,GAAU,EACU,OAAhBsmP,GACA3glB,EAAOm3M,qBAAqBwpY,GAC3B13Z,GAvBE,WAEX,IAvCgB9hE,EAAMjpH,EAAMpjB,EAuCxB0d,GADJywL,EAASlsM,EAAS4gC,cAAc,WACbnlB,MACnBA,EAAMkI,SAAW,QACjBlI,EAAMnF,IAAMmF,EAAMvF,KAAOuF,EAAMF,MAAQE,EAAMqmL,OAASrmL,EAAMkQ,QAAU,EACtElQ,EAAMklC,OAAS,OACfllC,EAAMoB,QAAU,OACZjF,EAAQ/L,WACRqgM,EAAOrtM,UAAUC,IAAI8Y,EAAQ/L,WACjC7L,EAAS+lC,KAAKivC,YAAYk3H,GA9CJ/qL,EA+CL,SA/CWpjB,EA+CD+kB,GA/CXsnH,EA+CPnnH,GA9CA/kB,iBAAkBksI,EAAKlsI,iBAAiBijB,EAAMpjB,GAAS,GACvDqsI,EAAKurS,YAAavrS,EAAKurS,YAAY,KAAOx0Z,EAAMpjB,GAC9BqsI,EAAK,KAAOjpH,GAAQpjB,EAyD9BymmB,GACbt4Z,EAAOzwL,MAAMizH,QAAU,EACvBw9D,EAAOzwL,MAAMoB,QAAU,QACvB8jlB,EAAOjhG,SAAS,GACZ9nf,EAAQkslB,SACR,SAAU/pQ,IACN4pQ,EAAkB1glB,EAAOwqH,sBAAsBssN,GAC/C4mQ,EAAOjhG,SAAS,IAAO,IAAMv8e,KAAKg7C,IAAI,EAAEh7C,KAAK+0H,KAAK2rd,GAAkB,IAFxE,KAMRnkG,SAAU,SAASlhc,GACf,MAAkB,qBAAPA,IAEO,kBAAPA,IACPA,GAAMA,EAAG76D,QAAQ,MAAQ,GAAK66D,EAAG76D,QAAQ,MAAQ,EAAIkgmB,EAAkB,GAAK1wjB,WAAWqrB,IAE3FqliB,EAAkBrliB,EAAK,EAAI,EAAIA,EAC/B17C,KALW+glB,GAQfn8hB,KAAM,WACG41S,IACLA,GAAU,EACa,MAAnBqmP,IACA1glB,EAAOm3M,qBAAqBupY,GAC5BA,EAAkB,MAEtB,SAAU5pQ,IACN,GAAI4mQ,EAAOjhG,SAAS,QAAU,IAC1BxzT,EAAOzwL,MAAMizH,SAAW,IACpBw9D,EAAOzwL,MAAMizH,SAAW,KAGxB,OAFAw9D,EAAOzwL,MAAMoB,QAAU,YACvB+mlB,EAAc,MAItBA,EAAc3glB,EAAOwqH,sBAAsBssN,GAT/C,MAcgD,kBAAnB/hO,EAAO1qC,QAC5C0qC,EAAO1qC,QAAUqzgB,OAEX,KAAN5oe,EAAAA,WAAoB,OAAO4oe,GAArB,gCAIX1imB,KAAKT,KAAMylB,OAAQjjB,6BC/HtB,SAASykmB,EAASz5W,EAAO05W,GACvB,IAAIh5jB,EAASs/M,EAAMltP,OACf0vjB,EAAS,IAAIzqjB,MAAM2oC,GACnBu2B,EAAU,GACV14D,EAAImiC,EAEJi5jB,EA4DN,SAA2Btye,GAEzB,IADA,IAAIqye,EAAQ,IAAI1vW,IACPzrP,EAAI,EAAGyrC,EAAMq9E,EAAIv0H,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAC9C,IAAIq7lB,EAAOvye,EAAI9oH,GACVm7lB,EAAMrtkB,IAAIutkB,EAAK,KAAKF,EAAMliiB,IAAIoiiB,EAAK,GAAI,IAAIzif,KAC3Cuif,EAAMrtkB,IAAIutkB,EAAK,KAAKF,EAAMliiB,IAAIoiiB,EAAK,GAAI,IAAIzif,KAChDuif,EAAMrnlB,IAAIunlB,EAAK,IAAI9lmB,IAAI8lmB,EAAK,IAE9B,OAAOF,EApEaG,CAAkBH,GAClCI,EAsEN,SAAuBzye,GAErB,IADA,IAAIxzD,EAAM,IAAIm2L,IACLzrP,EAAI,EAAGyrC,EAAMq9E,EAAIv0H,OAAQyL,EAAIyrC,EAAKzrC,IACzCs1D,EAAI2D,IAAI6vD,EAAI9oH,GAAIA,GAElB,OAAOs1D,EA3ESkmiB,CAAc/5W,GAS9B,IANA05W,EAAMjnmB,SAAQ,SAASmnmB,GACrB,IAAKE,EAAUztkB,IAAIutkB,EAAK,MAAQE,EAAUztkB,IAAIutkB,EAAK,IACjD,MAAM,IAAI/xjB,MAAM,oEAIbtpC,KACA04D,EAAQ14D,IAAIy7lB,EAAMh6W,EAAMzhP,GAAIA,EAAG,IAAI44G,KAG1C,OAAOqrc,EAEP,SAASw3C,EAAMvxhB,EAAMlqE,EAAG07lB,GACtB,GAAGA,EAAa5tkB,IAAIo8C,GAAO,CACzB,IAAIyxhB,EACJ,IACEA,EAAU,cAAgBpslB,KAAKC,UAAU06D,GACzC,MAAMz1E,GACNknmB,EAAU,GAEZ,MAAM,IAAIryjB,MAAM,oBAAsBqyjB,GAGxC,IAAKJ,EAAUztkB,IAAIo8C,GACjB,MAAM,IAAI5gC,MAAM,+EAA+E/5B,KAAKC,UAAU06D,IAGhH,IAAIxR,EAAQ14D,GAAZ,CACA04D,EAAQ14D,IAAK,EAEb,IAAI47lB,EAAWR,EAActnlB,IAAIo2D,IAAS,IAAI0uC,IAG9C,GAAI54G,GAFJ47lB,EAAWpimB,MAAM4D,KAAKw+lB,IAELrnmB,OAAQ,CACvBmnmB,EAAanmmB,IAAI20E,GACjB,EAAG,CACD,IAAIn3D,EAAQ6olB,IAAW57lB,GACvBy7lB,EAAM1olB,EAAOwolB,EAAUznlB,IAAIf,GAAQ2olB,SAC5B17lB,GACT07lB,EAAa75W,OAAO33K,GAGtB+5e,IAAS9hhB,GAAU+nC,IA1DvBukD,EAAO1qC,QAAU,SAASo3gB,GACxB,OAAOD,EA6DT,SAAqBpye,GAEnB,IADA,IAAIxzD,EAAM,IAAIsjD,IACL54G,EAAI,EAAGyrC,EAAMq9E,EAAIv0H,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAC9C,IAAIq7lB,EAAOvye,EAAI9oH,GACfs1D,EAAI//D,IAAI8lmB,EAAK,IACb/liB,EAAI//D,IAAI8lmB,EAAK,IAEf,OAAO7hmB,MAAM4D,KAAKk4D,GApEFumiB,CAAYV,GAAQA,IAGtC1se,EAAO1qC,QAAQz3C,MAAQ4ujB,k5BCIvB,IAAIprd,EAAgB,SAAS/+B,EAAGp3D,GAI5B,OAHAm2F,EAAgB/0I,OAAOg1I,gBAClB,CAAEC,UAAW,cAAgBx2I,OAAS,SAAUu3G,EAAGp3D,GAAKo3D,EAAEi/B,UAAYr2F,IACvE,SAAUo3D,EAAGp3D,GAAK,IAAK,IAAI0xC,KAAK1xC,EAAO5+C,OAAOtB,UAAUsxE,eAAer2E,KAAKilD,EAAG0xC,KAAI0lB,EAAE1lB,GAAK1xC,EAAE0xC,KACzFykD,EAAc/+B,EAAGp3D,IAGrB,SAAS+uE,EAAU3X,EAAGp3D,GACzB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIqgE,UAAU,uBAAyBlgD,OAAOngB,GAAK,iCAE7D,SAASs2F,IAAOh8I,KAAKwO,YAAcsuG,EADnC++B,EAAc/+B,EAAGp3D,GAEjBo3D,EAAEt3G,UAAkB,OAANkgD,EAAa5+C,OAAOw4B,OAAOomB,IAAMs2F,EAAGx2I,UAAYkgD,EAAElgD,UAAW,IAAIw2I,GAG5E,IAAI6rd,EAAW,WAQlB,OAPAA,EAAW/gmB,OAAOw4C,QAAU,SAAkB4W,GAC1C,IAAK,IAAIrpC,EAAG9gB,EAAI,EAAG2rD,EAAI3vD,UAAUzH,OAAQyL,EAAI2rD,EAAG3rD,IAE5C,IAAK,IAAIqrF,KADTvqE,EAAI9kB,UAAUgE,GACOjF,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,KAAIlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAE9E,OAAOlhC,GAEJ2xiB,EAAS7hlB,MAAMhmB,KAAM+H,YAGzB,SAAS+/lB,EAAOj7kB,EAAGrsB,GACtB,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAC9ElhC,EAAEkhC,GAAKvqE,EAAEuqE,IACb,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBACtB,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAC3DvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MACvEmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAE1B,OAAOmqD,EAGJ,SAAS6xiB,EAAW34M,EAAYxoZ,EAAQI,EAAKulN,GAChD,IAA2HzvG,EAAvHthG,EAAIzT,UAAUzH,OAAQimE,EAAI/qD,EAAI,EAAI5U,EAAkB,OAAT2lN,EAAgBA,EAAOzlN,OAAOy2E,yBAAyB32E,EAAQI,GAAOulN,EACrH,GAAuB,kBAAZs/W,SAAoD,oBAArBA,QAAQm8B,SAAyBzhiB,EAAIslgB,QAAQm8B,SAAS54M,EAAYxoZ,EAAQI,EAAKulN,QACpH,IAAK,IAAIxgN,EAAIqjZ,EAAW9uZ,OAAS,EAAGyL,GAAK,EAAGA,KAAS+wG,EAAIsyS,EAAWrjZ,MAAIw6D,GAAK/qD,EAAI,EAAIshG,EAAEv2C,GAAK/qD,EAAI,EAAIshG,EAAEl2G,EAAQI,EAAKu/D,GAAKu2C,EAAEl2G,EAAQI,KAASu/D,GAChJ,OAAO/qD,EAAI,GAAK+qD,GAAKz/D,OAAOi+D,eAAen+D,EAAQI,EAAKu/D,GAAIA,EAGzD,SAAS0hiB,EAAQC,EAAY/5M,GAChC,OAAO,SAAUvnZ,EAAQI,GAAOmnZ,EAAUvnZ,EAAQI,EAAKkhmB,IAGpD,SAASC,EAAWC,EAAaC,GACpC,GAAuB,kBAAZx8B,SAAoD,oBAArBA,QAAQhngB,SAAyB,OAAOgngB,QAAQhngB,SAASujiB,EAAaC,GAG7G,SAASvqjB,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAU/tC,EAASs7B,GAC/C,SAAS0S,EAAUx8C,GAAS,IAAMy8C,EAAKH,EAAUI,KAAK18C,IAAW,MAAOpB,GAAKkrC,EAAOlrC,IACpF,SAAS+9C,EAAS38C,GAAS,IAAMy8C,EAAKH,EAAS,MAAUt8C,IAAW,MAAOpB,GAAKkrC,EAAOlrC,IACvF,SAAS69C,EAAKxvC,GAJlB,IAAejN,EAIaiN,EAAOuqB,KAAOhpB,EAAQvB,EAAOjN,QAJ1CA,EAIyDiN,EAAOjN,MAJhDA,aAAiBq8C,EAAIr8C,EAAQ,IAAIq8C,GAAE,SAAU7tC,GAAWA,EAAQxO,OAIT48C,KAAKJ,EAAWG,GAClGF,GAAMH,EAAYA,EAAUl4B,MAAM+3B,EAASC,GAAc,KAAKM,WAI/D,SAASgqjB,EAAYvqjB,EAASxV,GACjC,IAAsGgkF,EAAG5uG,EAAGu4C,EAAGsQ,EAA3G9rD,EAAI,CAAE2oI,MAAO,EAAGkld,KAAM,WAAa,GAAW,EAAPryiB,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOsyiB,KAAM,GAAIlhV,IAAK,IAChG,OAAO9gN,EAAI,CAAEloB,KAAMmqjB,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAX1ue,SAA0BvzD,EAAEuzD,OAAOmiB,UAAY,WAAa,OAAOl8I,OAAUwmE,EACvJ,SAASiiiB,EAAK/wiB,GAAK,OAAO,SAAU7Q,GAAK,OACzC,SAAc4nC,GACV,GAAI89B,EAAG,MAAM,IAAIxG,UAAU,mCAC3B,KAAOrrG,GAAG,IACN,GAAI6xG,EAAI,EAAG5uG,IAAMu4C,EAAY,EAARu4B,EAAG,GAAS9wE,EAAC,OAAa8wE,EAAG,GAAK9wE,EAAC,SAAeu4C,EAAIv4C,EAAC,SAAeu4C,EAAEz1D,KAAKkd,GAAI,GAAKA,EAAE2gC,SAAW4X,EAAIA,EAAEz1D,KAAKkd,EAAG8wE,EAAG,KAAKr1D,KAAM,OAAO88B,EAE3J,OADIv4C,EAAI,EAAGu4C,IAAGu4B,EAAK,CAAS,EAARA,EAAG,GAAQv4B,EAAEt0D,QACzB6sF,EAAG,IACP,KAAK,EAAG,KAAK,EAAGv4B,EAAIu4B,EAAI,MACxB,KAAK,EAAc,OAAX/zE,EAAE2oI,QAAgB,CAAEzhJ,MAAO6sF,EAAG,GAAIr1D,MAAM,GAChD,KAAK,EAAG1e,EAAE2oI,QAAS1lI,EAAI8wE,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAK/zE,EAAE4sQ,IAAIlvO,MAAO19B,EAAE8tlB,KAAKpwjB,MAAO,SACxC,QACI,KAAkB8d,GAAZA,EAAIx7C,EAAE8tlB,MAAYlomB,OAAS,GAAK41D,EAAEA,EAAE51D,OAAS,MAAkB,IAAVmuF,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAE/zE,EAAI,EAAG,SACjG,GAAc,IAAV+zE,EAAG,MAAcv4B,GAAMu4B,EAAG,GAAKv4B,EAAE,IAAMu4B,EAAG,GAAKv4B,EAAE,IAAM,CAAEx7C,EAAE2oI,MAAQ50D,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAY/zE,EAAE2oI,MAAQntF,EAAE,GAAI,CAAEx7C,EAAE2oI,MAAQntF,EAAE,GAAIA,EAAIu4B,EAAI,MAC7D,GAAIv4B,GAAKx7C,EAAE2oI,MAAQntF,EAAE,GAAI,CAAEx7C,EAAE2oI,MAAQntF,EAAE,GAAIx7C,EAAE4sQ,IAAI1mR,KAAK6tF,GAAK,MACvDv4B,EAAE,IAAIx7C,EAAE4sQ,IAAIlvO,MAChB19B,EAAE8tlB,KAAKpwjB,MAAO,SAEtBq2C,EAAKlmD,EAAK9nC,KAAKs9C,EAASrjC,GAC1B,MAAOla,GAAKiuF,EAAK,CAAC,EAAGjuF,GAAImd,EAAI,EAjBrB,QAiBoC4uG,EAAIr2D,EAAI,EACtD,GAAY,EAARu4B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE7sF,MAAO6sF,EAAG,GAAKA,EAAG,QAAK,EAAQr1D,MAAM,GArB9BilB,CAAK,CAACqZ,EAAG7Q,MAyBtD,IAAI6hjB,EAAkB5hmB,OAAOw4B,OAAU,SAAS2wD,EAAGx4B,EAAGE,EAAGgxiB,QACjDvwlB,IAAPuwlB,IAAkBA,EAAKhxiB,GAC3B,IAAI40J,EAAOzlN,OAAOy2E,yBAAyB9lB,EAAGE,GACzC40J,KAAS,QAASA,GAAQ90J,EAAEmxiB,WAAar8Y,EAAKl3F,UAAYk3F,EAAKrnJ,gBAChEqnJ,EAAO,CAAEtnJ,YAAY,EAAMplD,IAAK,WAAa,OAAO43C,EAAEE,MAE1D7wD,OAAOi+D,eAAekrB,EAAG04gB,EAAIp8Y,IAC3B,SAASt8H,EAAGx4B,EAAGE,EAAGgxiB,QACTvwlB,IAAPuwlB,IAAkBA,EAAKhxiB,GAC3Bs4B,EAAE04gB,GAAMlxiB,EAAEE,IAGP,SAASkxiB,EAAapxiB,EAAGw4B,GAC5B,IAAK,IAAImH,KAAK3/B,EAAa,YAAN2/B,GAAoBtwF,OAAOtB,UAAUsxE,eAAer2E,KAAKwvF,EAAGmH,IAAIsxgB,EAAgBz4gB,EAAGx4B,EAAG2/B,GAGxG,SAAS6kD,EAAShsD,GACrB,IAAIpjE,EAAsB,oBAAXktG,QAAyBA,OAAOmiB,SAAUzkF,EAAI5qC,GAAKojE,EAAEpjE,GAAI9gB,EAAI,EAC5E,GAAI0rD,EAAG,OAAOA,EAAEh3D,KAAKwvF,GACrB,GAAIA,GAAyB,kBAAbA,EAAE3vF,OAAqB,MAAO,CAC1Cg+C,KAAM,WAEF,OADI2xC,GAAKlkF,GAAKkkF,EAAE3vF,SAAQ2vF,OAAI,GACrB,CAAEruF,MAAOquF,GAAKA,EAAElkF,KAAMqtB,MAAO62D,KAG5C,MAAM,IAAI81B,UAAUl5F,EAAI,0BAA4B,mCAGjD,SAASi8kB,EAAO74gB,EAAGv4B,GACtB,IAAID,EAAsB,oBAAXsiE,QAAyB9pC,EAAE8pC,OAAOmiB,UACjD,IAAKzkF,EAAG,OAAOw4B,EACf,IAAmB1pB,EAAY/lE,EAA3BuL,EAAI0rD,EAAEh3D,KAAKwvF,GAAO14B,EAAK,GAC3B,IACI,WAAc,IAANG,GAAgBA,KAAM,MAAQ6O,EAAIx6D,EAAEuyC,QAAQllB,MAAMm+B,EAAG32D,KAAK2lE,EAAE3kE,OAExE,MAAO89C,GAASl/C,EAAI,CAAEk/C,MAAOA,GAH7B,QAKI,IACQ6mB,IAAMA,EAAEntC,OAASq+B,EAAI1rD,EAAC,SAAa0rD,EAAEh3D,KAAKsL,GADlD,QAGU,GAAIvL,EAAG,MAAMA,EAAEk/C,OAE7B,OAAO6X,EAIJ,SAASwxiB,IACZ,IAAK,IAAIxxiB,EAAK,GAAIxrD,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAC3CwrD,EAAKA,EAAG37B,OAAOktkB,EAAO/gmB,UAAUgE,KACpC,OAAOwrD,EAIJ,SAASyxiB,IACZ,IAAK,IAAIn8kB,EAAI,EAAG9gB,EAAI,EAAGmhlB,EAAKnllB,UAAUzH,OAAQyL,EAAImhlB,EAAInhlB,IAAK8gB,GAAK9kB,UAAUgE,GAAGzL,OACxE,IAAIimE,EAAIhhE,MAAMsnB,GAAI8qC,EAAI,EAA3B,IAA8B5rD,EAAI,EAAGA,EAAImhlB,EAAInhlB,IACzC,IAAK,IAAI05C,EAAI19C,UAAUgE,GAAIw+E,EAAI,EAAG8igB,EAAK5niB,EAAEnlD,OAAQiqF,EAAI8igB,EAAI9igB,IAAK5yB,IAC1D4O,EAAE5O,GAAKlS,EAAE8kC,GACjB,OAAOhkB,EAGJ,SAAS0iiB,EAAcjoiB,EAAI73D,EAAM+/lB,GACpC,GAAIA,GAA6B,IAArBnhmB,UAAUzH,OAAc,IAAK,IAA4Bi3D,EAAxBxrD,EAAI,EAAGmkF,EAAI/mF,EAAK7I,OAAYyL,EAAImkF,EAAGnkF,KACxEwrD,GAAQxrD,KAAK5C,IACRouD,IAAIA,EAAKhyD,MAAMC,UAAUC,MAAMhF,KAAK0I,EAAM,EAAG4C,IAClDwrD,EAAGxrD,GAAK5C,EAAK4C,IAGrB,OAAOi1D,EAAGplC,OAAO27B,GAAMhyD,MAAMC,UAAUC,MAAMhF,KAAK0I,IAG/C,SAASggmB,EAAQtijB,GACpB,OAAO7mD,gBAAgBmpmB,GAAWnpmB,KAAK6mD,EAAIA,EAAG7mD,MAAQ,IAAImpmB,EAAQtijB,GAG/D,SAASuijB,EAAiBrrjB,EAASC,EAAYE,GAClD,IAAK67E,OAAOsve,cAAe,MAAM,IAAItjf,UAAU,wCAC/C,IAAoDh6G,EAAhDy6D,EAAItoB,EAAUl4B,MAAM+3B,EAASC,GAAc,IAAQk8J,EAAI,GAC3D,OAAOnuM,EAAI,GAAI08lB,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW18lB,EAAEguH,OAAOsve,eAAiB,WAAc,OAAOrpmB,MAAS+L,EACpH,SAAS08lB,EAAK/wiB,GAAS8O,EAAE9O,KAAI3rD,EAAE2rD,GAAK,SAAU7Q,GAAK,OAAO,IAAI1I,SAAQ,SAAUsH,EAAGC,GAAKw0J,EAAEt5M,KAAK,CAAC82D,EAAG7Q,EAAGpB,EAAGC,IAAM,GAAK4jjB,EAAO5xiB,EAAG7Q,QAC9H,SAASyijB,EAAO5xiB,EAAG7Q,GAAK,KACV0f,EADqBC,EAAE9O,GAAG7Q,IACnBjlD,iBAAiBunmB,EAAUhrjB,QAAQ/tC,QAAQm2D,EAAE3kE,MAAMilD,GAAGrI,KAAK+qjB,EAAS79jB,GAAUi3K,EAAOzI,EAAE,GAAG,GAAI3zI,GADpE,MAAO/lE,GAAKmiN,EAAOzI,EAAE,GAAG,GAAI15M,GAC3E,IAAc+lE,EACd,SAASgjiB,EAAQ3nmB,GAAS0nmB,EAAO,OAAQ1nmB,GACzC,SAAS8pC,EAAO9pC,GAAS0nmB,EAAO,QAAS1nmB,GACzC,SAAS+gN,EAAOp2F,EAAG1lE,GAAS0lE,EAAE1lE,GAAIqzJ,EAAEl0I,QAASk0I,EAAE55M,QAAQgpmB,EAAOpvZ,EAAE,GAAG,GAAIA,EAAE,GAAG,KAGzE,SAASsvZ,EAAiBv5gB,GAC7B,IAAIlkF,EAAGqrF,EACP,OAAOrrF,EAAI,GAAI08lB,EAAK,QAASA,EAAK,SAAS,SAAUjomB,GAAK,MAAMA,KAAOiomB,EAAK,UAAW18lB,EAAEguH,OAAOmiB,UAAY,WAAc,OAAOl8I,MAAS+L,EAC1I,SAAS08lB,EAAK/wiB,EAAG60D,GAAKxgH,EAAE2rD,GAAKu4B,EAAEv4B,GAAK,SAAU7Q,GAAK,OAAQuwC,GAAKA,GAAK,CAAEx1F,MAAOunmB,EAAQl5gB,EAAEv4B,GAAG7Q,IAAKztB,KAAY,WAANs+B,GAAmB60D,EAAIA,EAAE1lE,GAAKA,GAAO0lE,GAGxI,SAASk9e,EAAcx5gB,GAC1B,IAAK8pC,OAAOsve,cAAe,MAAM,IAAItjf,UAAU,wCAC/C,IAAiCh6G,EAA7B0rD,EAAIw4B,EAAE8pC,OAAOsve,eACjB,OAAO5xiB,EAAIA,EAAEh3D,KAAKwvF,IAAMA,EAAqCgsD,EAAShsD,GAA2BlkF,EAAI,GAAI08lB,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW18lB,EAAEguH,OAAOsve,eAAiB,WAAc,OAAOrpmB,MAAS+L,GAC9M,SAAS08lB,EAAK/wiB,GAAK3rD,EAAE2rD,GAAKu4B,EAAEv4B,IAAM,SAAU7Q,GAAK,OAAO,IAAI1I,SAAQ,SAAU/tC,EAASs7B,IACvF,SAAgBt7B,EAASs7B,EAAQoxE,EAAGj2D,GAAK1I,QAAQ/tC,QAAQy2C,GAAGrI,MAAK,SAASqI,GAAKz2C,EAAQ,CAAExO,MAAOilD,EAAGztB,KAAM0jF,MAASpxE,IADJi3K,CAAOvyM,EAASs7B,GAA7Bmb,EAAIopC,EAAEv4B,GAAG7Q,IAA8BztB,KAAMytB,EAAEjlD,YAI7I,SAAS8nmB,EAAqBC,EAAQrjY,GAEzC,OADIx/N,OAAOi+D,eAAkBj+D,OAAOi+D,eAAe4kiB,EAAQ,MAAO,CAAE/nmB,MAAO0kO,IAAiBqjY,EAAOrjY,IAAMA,EAClGqjY,EAGX,IAAIC,EAAqB9imB,OAAOw4B,OAAU,SAAS2wD,EAAGppC,GAClD//C,OAAOi+D,eAAekrB,EAAG,UAAW,CAAEhrB,YAAY,EAAMrjE,MAAOilD,KAC9D,SAASopC,EAAGppC,GACbopC,EAAC,QAAcppC,GAGZ,SAASgjjB,EAAajjf,GACzB,GAAIA,GAAOA,EAAIgif,WAAY,OAAOhif,EAClC,IAAI/3G,EAAS,GACb,GAAW,MAAP+3G,EAAa,IAAK,IAAIjvD,KAAKivD,EAAe,YAANjvD,GAAmB7wD,OAAOtB,UAAUsxE,eAAer2E,KAAKmmH,EAAKjvD,IAAI+wiB,EAAgB75lB,EAAQ+3G,EAAKjvD,GAEtI,OADAiyiB,EAAmB/6lB,EAAQ+3G,GACpB/3G,EAGJ,SAAS0qH,EAAgB3S,GAC5B,OAAQA,GAAOA,EAAIgif,WAAchif,EAAM,CAAErX,QAASqX,GAG/C,SAASkjf,EAAuBC,EAAU5ygB,EAAO5+E,EAAMg0G,GAC1D,GAAa,MAATh0G,IAAiBg0G,EAAG,MAAM,IAAIxG,UAAU,iDAC5C,GAAqB,oBAAV5uB,EAAuB4ygB,IAAa5ygB,IAAUo1B,GAAKp1B,EAAMt9D,IAAIkwkB,GAAW,MAAM,IAAIhkf,UAAU,4EACvG,MAAgB,MAATxtG,EAAeg0G,EAAa,MAATh0G,EAAeg0G,EAAE9rH,KAAKspmB,GAAYx9e,EAAIA,EAAE3qH,MAAQu1F,EAAMt3E,IAAIkqlB,GAGjF,SAASC,EAAuBD,EAAU5ygB,EAAOv1F,EAAO2W,EAAMg0G,GACjE,GAAa,MAATh0G,EAAc,MAAM,IAAIwtG,UAAU,kCACtC,GAAa,MAATxtG,IAAiBg0G,EAAG,MAAM,IAAIxG,UAAU,iDAC5C,GAAqB,oBAAV5uB,EAAuB4ygB,IAAa5ygB,IAAUo1B,GAAKp1B,EAAMt9D,IAAIkwkB,GAAW,MAAM,IAAIhkf,UAAU,2EACvG,MAAiB,MAATxtG,EAAeg0G,EAAE9rH,KAAKspmB,EAAUnomB,GAAS2qH,EAAIA,EAAE3qH,MAAQA,EAAQu1F,EAAMnyB,IAAI+kiB,EAAUnomB,GAASA,EAGjG,SAASqomB,EAAsB9ygB,EAAO4ygB,GACzC,GAAiB,OAAbA,GAA0C,kBAAbA,GAA6C,oBAAbA,EAA0B,MAAM,IAAIhkf,UAAU,0CAC/G,MAAwB,oBAAV5uB,EAAuB4ygB,IAAa5ygB,EAAQA,EAAMt9D,IAAIkwkB,2BCtPxE,IAAIG,EAAU,iBACd,SAASC,IACP,aACA3ve,EAAO1qC,QAAUq6gB,EAAsB,WACrC,OAAOr6gB,GACN0qC,EAAO1qC,QAAQ84gB,YAAa,EAAMpue,EAAO1qC,QAAiB,QAAI0qC,EAAO1qC,QACxE,IAAIA,EAAU,GACZs6gB,EAAKtjmB,OAAOtB,UACZs1E,EAASsvhB,EAAGtzhB,eACZ/R,EAAiBj+D,OAAOi+D,gBAAkB,SAAU2I,EAAK1mE,EAAKulN,GAC5D7+I,EAAI1mE,GAAOulN,EAAK3qN,OAElByomB,EAAU,mBAAqBtwe,OAASA,OAAS,GACjDuwe,EAAiBD,EAAQnud,UAAY,aACrCqud,EAAsBF,EAAQhB,eAAiB,kBAC/CmB,EAAoBH,EAAQrwe,aAAe,gBAC7C,SAASO,EAAO7sD,EAAK1mE,EAAKpF,GACxB,OAAOkF,OAAOi+D,eAAe2I,EAAK1mE,EAAK,CACrCpF,MAAOA,EACPqjE,YAAY,EACZC,cAAc,EACdmwD,UAAU,IACR3nD,EAAI1mE,GAEV,IACEuzH,EAAO,GAAI,IACX,MAAOmO,GACPnO,EAAS,SAAgB7sD,EAAK1mE,EAAKpF,GACjC,OAAO8rE,EAAI1mE,GAAOpF,GAGtB,SAASg+K,EAAK6qb,EAASC,EAAS9jlB,EAAM+jlB,GACpC,IAAIC,EAAiBF,GAAWA,EAAQllmB,qBAAqBqlmB,EAAYH,EAAUG,EACjF3sjB,EAAYp3C,OAAOw4B,OAAOsrkB,EAAeplmB,WACzCmV,EAAU,IAAIuolB,EAAQyH,GAAe,IACvC,OAAO5liB,EAAe7mB,EAAW,UAAW,CAC1Ct8C,MAAOkpmB,EAAiBL,EAAS7jlB,EAAMjM,KACrCujC,EAEN,SAAS6sjB,EAASnxkB,EAAI8zC,EAAK3+C,GACzB,IACE,MAAO,CACLpL,KAAM,SACNoL,IAAK6K,EAAGn5B,KAAKitE,EAAK3+C,IAEpB,MAAO25G,GACP,MAAO,CACL/kH,KAAM,QACNoL,IAAK25G,IAIX54C,EAAQ8vF,KAAOA,EACf,IAAIorb,EAAmB,GACvB,SAASH,KACT,SAASI,KACT,SAASC,KACT,IAAIC,EAAoB,GACxB5we,EAAO4we,EAAmBb,GAAgB,WACxC,OAAOtqmB,QAET,IAAI4jiB,EAAW98hB,OAAO60E,eACpByvhB,EAA0BxnE,GAAYA,EAASA,EAAShqhB,EAAO,MACjEwxlB,GAA2BA,IAA4BhB,GAAMtvhB,EAAOr6E,KAAK2qmB,EAAyBd,KAAoBa,EAAoBC,GAC1I,IAAIC,EAAKH,EAA2B1lmB,UAAYqlmB,EAAUrlmB,UAAYsB,OAAOw4B,OAAO6rkB,GACpF,SAASG,EAAsB9lmB,GAC7B,CAAC,OAAQ,QAAS,UAAUvF,SAAQ,SAAU+I,GAC5CuxH,EAAO/0H,EAAWwD,GAAQ,SAAU+lB,GAClC,OAAO/uB,KAAKurmB,QAAQvimB,EAAQ+lB,SAIlC,SAASy8kB,EAActtjB,EAAWutjB,GAChC,SAASC,EAAO1imB,EAAQ+lB,EAAK3e,EAASs7B,GACpC,IAAI41C,EAASyphB,EAAS7sjB,EAAUl1C,GAASk1C,EAAWnvB,GACpD,GAAI,UAAYuyD,EAAO39D,KAAM,CAC3B,IAAI9U,EAASyyE,EAAOvyD,IAClBntB,EAAQiN,EAAOjN,MACjB,OAAOA,GAAS,UAAYsomB,EAAQtomB,IAAUk5E,EAAOr6E,KAAKmB,EAAO,WAAa6pmB,EAAYr7lB,QAAQxO,EAAMunmB,SAAS3qjB,MAAK,SAAU58C,GAC9H8pmB,EAAO,OAAQ9pmB,EAAOwO,EAASs7B,MAC9B,SAAUg9F,GACXgje,EAAO,QAAShje,EAAKt4H,EAASs7B,MAC3B+/jB,EAAYr7lB,QAAQxO,GAAO48C,MAAK,SAAUmtjB,GAC7C98lB,EAAOjN,MAAQ+pmB,EAAWv7lB,EAAQvB,MACjC,SAAU6wC,GACX,OAAOgsjB,EAAO,QAAShsjB,EAAOtvC,EAASs7B,MAG3CA,EAAO41C,EAAOvyD,KAEhB,IAAI68kB,EACJ7miB,EAAe/kE,KAAM,UAAW,CAC9B4B,MAAO,SAAeoH,EAAQ+lB,GAC5B,SAAS88kB,IACP,OAAO,IAAIJ,GAAY,SAAUr7lB,EAASs7B,GACxCggkB,EAAO1imB,EAAQ+lB,EAAK3e,EAASs7B,MAGjC,OAAOkgkB,EAAkBA,EAAkBA,EAAgBptjB,KAAKqtjB,EAA4BA,GAA8BA,OAIhI,SAASf,EAAiBL,EAAS7jlB,EAAMjM,GACvC,IAAIw8E,EAAQ,iBACZ,OAAO,SAAUnuF,EAAQ+lB,GACvB,GAAI,cAAgBooE,EAAO,MAAM,IAAI9hD,MAAM,gCAC3C,GAAI,cAAgB8hD,EAAO,CACzB,GAAI,UAAYnuF,EAAQ,MAAM+lB,EAC9B,MAAO,CACLntB,WAAO,EACPw3B,MAAM,GAGV,IAAKze,EAAQ3R,OAASA,EAAQ2R,EAAQoU,IAAMA,IAAO,CACjD,IAAIm4hB,EAAWvsiB,EAAQusiB,SACvB,GAAIA,EAAU,CACZ,IAAI4kD,EAAiBC,EAAoB7kD,EAAUvsiB,GACnD,GAAImxlB,EAAgB,CAClB,GAAIA,IAAmBd,EAAkB,SACzC,OAAOc,GAGX,GAAI,SAAWnxlB,EAAQ3R,OAAQ2R,EAAQ4tlB,KAAO5tlB,EAAQqxlB,MAAQrxlB,EAAQoU,SAAS,GAAI,UAAYpU,EAAQ3R,OAAQ,CAC7G,GAAI,mBAAqBmuF,EAAO,MAAMA,EAAQ,YAAax8E,EAAQoU,IACnEpU,EAAQsxlB,kBAAkBtxlB,EAAQoU,SAC7B,WAAapU,EAAQ3R,QAAU2R,EAAQuxlB,OAAO,SAAUvxlB,EAAQoU,KACvEooE,EAAQ,YACR,IAAI7V,EAASyphB,EAASN,EAAS7jlB,EAAMjM,GACrC,GAAI,WAAa2mE,EAAO39D,KAAM,CAC5B,GAAIwzE,EAAQx8E,EAAQye,KAAO,YAAc,iBAAkBkoD,EAAOvyD,MAAQi8kB,EAAkB,SAC5F,MAAO,CACLppmB,MAAO0/E,EAAOvyD,IACdqK,KAAMze,EAAQye,MAGlB,UAAYkoD,EAAO39D,OAASwzE,EAAQ,YAAax8E,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAMuyD,EAAOvyD,OAItG,SAASg9kB,EAAoB7kD,EAAUvsiB,GACrC,IAAIokD,EAAapkD,EAAQ3R,OACvBA,EAASk+iB,EAAShra,SAASn9E,GAC7B,QAAI3mD,IAAcpP,EAAQ,OAAO2R,EAAQusiB,SAAW,KAAM,UAAYnof,GAAcmof,EAAShra,SAAiB,SAAMvhI,EAAQ3R,OAAS,SAAU2R,EAAQoU,SAAM3W,EAAW2zlB,EAAoB7kD,EAAUvsiB,GAAU,UAAYA,EAAQ3R,SAAW,WAAa+1D,IAAepkD,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAM,IAAIg3F,UAAU,oCAAsChnD,EAAa,aAAcisiB,EAClY,IAAI1phB,EAASyphB,EAAS/hmB,EAAQk+iB,EAAShra,SAAUvhI,EAAQoU,KACzD,GAAI,UAAYuyD,EAAO39D,KAAM,OAAOhJ,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAMuyD,EAAOvyD,IAAKpU,EAAQusiB,SAAW,KAAM8jD,EACjH,IAAIp8kB,EAAO0yD,EAAOvyD,IAClB,OAAOH,EAAOA,EAAKwK,MAAQze,EAAQusiB,EAASilD,YAAcv9kB,EAAKhtB,MAAO+Y,EAAQ2jC,KAAO4ogB,EAASklD,QAAS,WAAazxlB,EAAQ3R,SAAW2R,EAAQ3R,OAAS,OAAQ2R,EAAQoU,SAAM3W,GAAYuC,EAAQusiB,SAAW,KAAM8jD,GAAoBp8kB,GAAQjU,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAM,IAAIg3F,UAAU,oCAAqCprG,EAAQusiB,SAAW,KAAM8jD,GAErW,SAASqB,EAAaC,GACpB,IAAIzze,EAAQ,CACV0ze,OAAQD,EAAK,IAEf,KAAKA,IAASzze,EAAM2ze,SAAWF,EAAK,IAAK,KAAKA,IAASzze,EAAM4ze,WAAaH,EAAK,GAAIzze,EAAM6ze,SAAWJ,EAAK,IAAKtsmB,KAAK2smB,WAAW/rmB,KAAKi4H,GAErI,SAAS+ze,EAAc/ze,GACrB,IAAIv3C,EAASu3C,EAAMg0e,YAAc,GACjCvrhB,EAAO39D,KAAO,gBAAiB29D,EAAOvyD,IAAK8pG,EAAMg0e,WAAavrhB,EAEhE,SAAS4hhB,EAAQyH,GACf3qmB,KAAK2smB,WAAa,CAAC,CACjBJ,OAAQ,SACN5B,EAAY1qmB,QAAQosmB,EAAcrsmB,MAAOA,KAAKu7B,OAAM,GAE1D,SAAS3hB,EAAOwqjB,GACd,GAAIA,GAAY,KAAOA,EAAU,CAC/B,IAAI0oC,EAAiB1oC,EAASkmC,GAC9B,GAAIwC,EAAgB,OAAOA,EAAersmB,KAAK2jkB,GAC/C,GAAI,mBAAqBA,EAAS9lhB,KAAM,OAAO8lhB,EAC/C,IAAK56hB,MAAM46hB,EAAS9jkB,QAAS,CAC3B,IAAIyL,GAAK,EACPuyC,EAAO,SAASA,IACd,OAASvyC,EAAIq4jB,EAAS9jkB,QAAS,GAAIw6E,EAAOr6E,KAAK2jkB,EAAUr4jB,GAAI,OAAOuyC,EAAK18C,MAAQwikB,EAASr4jB,GAAIuyC,EAAKllB,MAAO,EAAIklB,EAC9G,OAAOA,EAAK18C,WAAQwW,EAAWkmC,EAAKllB,MAAO,EAAIklB,GAEnD,OAAOA,EAAKA,KAAOA,GAGvB,MAAM,IAAIynE,UAAUmkf,EAAQ9lC,GAAY,oBAE1C,OAAO6mC,EAAkBzlmB,UAAY0lmB,EAA4BnmiB,EAAesmiB,EAAI,cAAe,CACjGzpmB,MAAOspmB,EACPhmiB,cAAc,IACZH,EAAemmiB,EAA4B,cAAe,CAC5DtpmB,MAAOqpmB,EACP/liB,cAAc,IACZ+liB,EAAkB/7lB,YAAcqrH,EAAO2we,EAA4BV,EAAmB,qBAAsB16gB,EAAQi9gB,oBAAsB,SAAUC,GACtJ,IAAIppe,EAAO,mBAAqBope,GAAUA,EAAOx+lB,YACjD,QAASo1H,IAASA,IAASqne,GAAqB,uBAAyBrne,EAAK10H,aAAe00H,EAAKp2H,QACjGsiF,EAAQiuG,KAAO,SAAUiva,GAC1B,OAAOlmmB,OAAOg1I,eAAiBh1I,OAAOg1I,eAAekxd,EAAQ9B,IAA+B8B,EAAOjxd,UAAYmvd,EAA4B3we,EAAOyye,EAAQxC,EAAmB,sBAAuBwC,EAAOxnmB,UAAYsB,OAAOw4B,OAAO+rkB,GAAK2B,GACzOl9gB,EAAQm9gB,MAAQ,SAAUl+kB,GAC3B,MAAO,CACLo6kB,QAASp6kB,IAEVu8kB,EAAsBE,EAAchmmB,WAAY+0H,EAAOixe,EAAchmmB,UAAW+kmB,GAAqB,WACtG,OAAOvqmB,QACL8vF,EAAQ07gB,cAAgBA,EAAe17gB,EAAQgrK,MAAQ,SAAU2vW,EAASC,EAAS9jlB,EAAM+jlB,EAAac,QACxG,IAAWA,IAAgBA,EAActtjB,SACzC,IAAI8mH,EAAO,IAAIumc,EAAc5rb,EAAK6qb,EAASC,EAAS9jlB,EAAM+jlB,GAAcc,GACxE,OAAO37gB,EAAQi9gB,oBAAoBrC,GAAWzlc,EAAOA,EAAK3mH,OAAOE,MAAK,SAAU3vC,GAC9E,OAAOA,EAAOuqB,KAAOvqB,EAAOjN,MAAQqjK,EAAK3mH,WAE1CgtjB,EAAsBD,GAAK9we,EAAO8we,EAAIb,EAAmB,aAAcjwe,EAAO8we,EAAIf,GAAgB,WACnG,OAAOtqmB,QACLu6H,EAAO8we,EAAI,YAAY,WACzB,MAAO,wBACLv7gB,EAAQ/oF,KAAO,SAAUgd,GAC3B,IAAIX,EAAStc,OAAOid,GAClBhd,EAAO,GACT,IAAK,IAAIC,KAAOoc,EAAQrc,EAAKnG,KAAKoG,GAClC,OAAOD,EAAKgtB,UAAW,SAASuqB,IAC9B,KAAOv3C,EAAKzG,QAAS,CACnB,IAAI0G,EAAMD,EAAKqxC,MACf,GAAIpxC,KAAOoc,EAAQ,OAAOk7B,EAAK18C,MAAQoF,EAAKs3C,EAAKllB,MAAO,EAAIklB,EAE9D,OAAOA,EAAKllB,MAAO,EAAIklB,IAExBwxC,EAAQl2E,OAASA,EAAQsplB,EAAQ19lB,UAAY,CAC9CgJ,YAAa00lB,EACb3nkB,MAAO,SAAe2xkB,GACpB,GAAIltmB,KAAKymC,KAAO,EAAGzmC,KAAKs+C,KAAO,EAAGt+C,KAAKuomB,KAAOvomB,KAAKgsmB,WAAQ5zlB,EAAWpY,KAAKo5B,MAAO,EAAIp5B,KAAKknjB,SAAW,KAAMlnjB,KAAKgJ,OAAS,OAAQhJ,KAAK+uB,SAAM3W,EAAWpY,KAAK2smB,WAAW1smB,QAAQ2smB,IAAiBM,EAAe,IAAK,IAAI1/lB,KAAQxN,KAAM,MAAQwN,EAAK03E,OAAO,IAAMpK,EAAOr6E,KAAKT,KAAMwN,KAAUg8B,OAAOh8B,EAAK/H,MAAM,MAAQzF,KAAKwN,QAAQ4K,IAEtUmC,KAAM,WACJva,KAAKo5B,MAAO,EACZ,IAAI+zkB,EAAantmB,KAAK2smB,WAAW,GAAGE,WACpC,GAAI,UAAYM,EAAWxplB,KAAM,MAAMwplB,EAAWp+kB,IAClD,OAAO/uB,KAAKotmB,MAEdnB,kBAAmB,SAA2B7ihB,GAC5C,GAAIppF,KAAKo5B,KAAM,MAAMgwD,EACrB,IAAIzuE,EAAU3a,KACd,SAASmf,EAAOw4E,EAAK01gB,GACnB,OAAO/rhB,EAAO39D,KAAO,QAAS29D,EAAOvyD,IAAMq6D,EAAWzuE,EAAQ2jC,KAAOq5C,EAAK01gB,IAAW1ylB,EAAQ3R,OAAS,OAAQ2R,EAAQoU,SAAM3W,KAAci1lB,EAE5I,IAAK,IAAIthmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC1Bu1E,EAASu3C,EAAMg0e,WACjB,GAAI,SAAWh0e,EAAM0ze,OAAQ,OAAOptlB,EAAO,OAC3C,GAAI05G,EAAM0ze,QAAUvsmB,KAAKymC,KAAM,CAC7B,IAAI6mkB,EAAWxyhB,EAAOr6E,KAAKo4H,EAAO,YAChC00e,EAAazyhB,EAAOr6E,KAAKo4H,EAAO,cAClC,GAAIy0e,GAAYC,EAAY,CAC1B,GAAIvtmB,KAAKymC,KAAOoyF,EAAM2ze,SAAU,OAAOrtlB,EAAO05G,EAAM2ze,UAAU,GAC9D,GAAIxsmB,KAAKymC,KAAOoyF,EAAM4ze,WAAY,OAAOttlB,EAAO05G,EAAM4ze,iBACjD,GAAIa,GACT,GAAIttmB,KAAKymC,KAAOoyF,EAAM2ze,SAAU,OAAOrtlB,EAAO05G,EAAM2ze,UAAU,OACzD,CACL,IAAKe,EAAY,MAAM,IAAIl4jB,MAAM,0CACjC,GAAIr1C,KAAKymC,KAAOoyF,EAAM4ze,WAAY,OAAOttlB,EAAO05G,EAAM4ze,gBAK9DP,OAAQ,SAAgBvolB,EAAMoL,GAC5B,IAAK,IAAIhjB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM0ze,QAAUvsmB,KAAKymC,MAAQq0C,EAAOr6E,KAAKo4H,EAAO,eAAiB74H,KAAKymC,KAAOoyF,EAAM4ze,WAAY,CACjG,IAAIe,EAAe30e,EACnB,OAGJ20e,IAAiB,UAAY7plB,GAAQ,aAAeA,IAAS6plB,EAAajB,QAAUx9kB,GAAOA,GAAOy+kB,EAAaf,aAAee,EAAe,MAC7I,IAAIlshB,EAASkshB,EAAeA,EAAaX,WAAa,GACtD,OAAOvrhB,EAAO39D,KAAOA,EAAM29D,EAAOvyD,IAAMA,EAAKy+kB,GAAgBxtmB,KAAKgJ,OAAS,OAAQhJ,KAAKs+C,KAAOkvjB,EAAaf,WAAYzB,GAAoBhrmB,KAAKikO,SAAS3iJ,IAE5J2iJ,SAAU,SAAkB3iJ,EAAQorhB,GAClC,GAAI,UAAYprhB,EAAO39D,KAAM,MAAM29D,EAAOvyD,IAC1C,MAAO,UAAYuyD,EAAO39D,MAAQ,aAAe29D,EAAO39D,KAAO3jB,KAAKs+C,KAAOgjC,EAAOvyD,IAAM,WAAauyD,EAAO39D,MAAQ3jB,KAAKotmB,KAAOptmB,KAAK+uB,IAAMuyD,EAAOvyD,IAAK/uB,KAAKgJ,OAAS,SAAUhJ,KAAKs+C,KAAO,OAAS,WAAagjC,EAAO39D,MAAQ+olB,IAAa1smB,KAAKs+C,KAAOoujB,GAAW1B,GAEtQ9rY,OAAQ,SAAgButY,GACtB,IAAK,IAAI1gmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM4ze,aAAeA,EAAY,OAAOzsmB,KAAKikO,SAASprG,EAAMg0e,WAAYh0e,EAAM6ze,UAAWE,EAAc/ze,GAAQmye,IAGvH,MAAS,SAAgBuB,GACvB,IAAK,IAAIxgmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM0ze,SAAWA,EAAQ,CAC3B,IAAIjrhB,EAASu3C,EAAMg0e,WACnB,GAAI,UAAYvrhB,EAAO39D,KAAM,CAC3B,IAAI8plB,EAASnshB,EAAOvyD,IACpB69kB,EAAc/ze,GAEhB,OAAO40e,GAGX,MAAM,IAAIp4jB,MAAM,0BAElBq4jB,cAAe,SAAuBtpC,EAAU+nC,EAAYC,GAC1D,OAAOpsmB,KAAKknjB,SAAW,CACrBhra,SAAUtiI,EAAOwqjB,GACjB+nC,WAAYA,EACZC,QAASA,GACR,SAAWpsmB,KAAKgJ,SAAWhJ,KAAK+uB,SAAM3W,GAAY4ylB,IAEtDl7gB,EAEL0qC,EAAO1qC,QAAUq6gB,EAAqB3ve,EAAO1qC,QAAQ84gB,YAAa,EAAMpue,EAAO1qC,QAAiB,QAAI0qC,EAAO1qC,2BC1S3G,SAASo6gB,EAAQx8hB,GAGf,OAAQ8sD,EAAO1qC,QAAUo6gB,EAAU,mBAAqBnwe,QAAU,iBAAmBA,OAAOmiB,SAAW,SAAUxuE,GAC/G,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBqsD,QAAUrsD,EAAIl/D,cAAgBurH,QAAUrsD,IAAQqsD,OAAOv0H,UAAY,gBAAkBkoE,GACvH8sD,EAAO1qC,QAAQ84gB,YAAa,EAAMpue,EAAO1qC,QAAiB,QAAI0qC,EAAO1qC,QAAUo6gB,EAAQx8hB,GAE5F8sD,EAAO1qC,QAAUo6gB,EAAS1ve,EAAO1qC,QAAQ84gB,YAAa,EAAMpue,EAAO1qC,QAAiB,QAAI0qC,EAAO1qC,+BCP/F,IAAI69gB,EAAU,EAAQ,MAAR,GACdnze,EAAO1qC,QAAU69gB,EAGjB,IACEC,mBAAqBD,EACrB,MAAOE,GACmB,kBAAfC,WACTA,WAAWF,mBAAqBD,EAEhC3hD,SAAS,IAAK,yBAAdA,CAAwC2hD,wCCZ7B,SAASI,EAAkBl5e,EAAKr9E,IAClC,MAAPA,GAAeA,EAAMq9E,EAAIv0H,UAAQk3C,EAAMq9E,EAAIv0H,QAC/C,IAAK,IAAIyL,EAAI,EAAGiimB,EAAO,IAAIzomB,MAAMiyC,GAAMzrC,EAAIyrC,EAAKzrC,IAAKiimB,EAAKjimB,GAAK8oH,EAAI9oH,GACnE,OAAOiimB,sECHM,SAASC,EAAgBp5e,GACtC,GAAItvH,MAAMi2E,QAAQq5C,GAAM,OAAOA,sECDlB,SAASq5e,EAAuBtnlB,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIunlB,eAAe,6DAE3B,OAAOvnlB,sECJM,SAASwnlB,EAAgBhgmB,EAAUigmB,GAChD,KAAMjgmB,aAAoBigmB,GACxB,MAAM,IAAItof,UAAU,kKCAT,SAASuof,EAAWC,EAAQ/nlB,EAAM67N,GAa/C,OAXEisX,GADE,SACWziC,QAAQC,UAAUrhkB,OAElB,SAAoB8jmB,EAAQ/nlB,EAAM67N,GAC7C,IAAI58L,EAAI,CAAC,MACTA,EAAE7kD,KAAKolB,MAAMy/B,EAAGj/B,GAChB,IACIpY,EAAW,IADG49iB,SAASvhjB,KAAKub,MAAMuolB,EAAQ9ojB,IAG9C,OADI48L,IAAO,OAAej0O,EAAUi0O,EAAM78O,WACnC4I,GAGJkgmB,EAAWtolB,MAAM,KAAMje,+FCdhC,SAASymmB,EAAkB5nmB,EAAQ44G,GACjC,IAAK,IAAIzzG,EAAI,EAAGA,EAAIyzG,EAAMl/G,OAAQyL,IAAK,CACrC,IAAIuxE,EAAakiC,EAAMzzG,GACvBuxE,EAAWrY,WAAaqY,EAAWrY,aAAc,EACjDqY,EAAWpY,cAAe,EACtB,UAAWoY,IAAYA,EAAW+3C,UAAW,GACjDvuH,OAAOi+D,eAAen+D,GAAQ,OAAc02E,EAAWt2E,KAAMs2E,IAGlD,SAASmxhB,EAAaJ,EAAaK,EAAYC,GAM5D,OALID,GAAYF,EAAkBH,EAAY7omB,UAAWkpmB,GACrDC,GAAaH,EAAkBH,EAAaM,GAChD7nmB,OAAOi+D,eAAespiB,EAAa,YAAa,CAC9Ch5e,UAAU,IAELg5e,sFCfM,SAASO,EAA2B3+gB,EAAG4+gB,GACpD,IAAItmT,EAAuB,qBAAXxuL,QAA0B9pC,EAAE8pC,OAAOmiB,WAAajsD,EAAE,cAClE,IAAKs4N,EAAI,CACP,GAAIhjT,MAAMi2E,QAAQyU,KAAOs4N,GAAK,OAA2Bt4N,KAAO4+gB,GAAkB5+gB,GAAyB,kBAAbA,EAAE3vF,OAAqB,CAC/GioT,IAAIt4N,EAAIs4N,GACZ,IAAIx8S,EAAI,EACJ84f,EAAI,aACR,MAAO,CACLh4e,EAAGg4e,EACHntc,EAAG,WACD,OAAI3rD,GAAKkkF,EAAE3vF,OAAe,CACxB84B,MAAM,GAED,CACLA,MAAM,EACNx3B,MAAOquF,EAAElkF,OAGbvL,EAAG,SAAW8oB,GACZ,MAAMA,GAERijG,EAAGs4Y,GAGP,MAAM,IAAI9+Y,UAAU,yIAEtB,IAEE2iB,EAFEome,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACLlilB,EAAG,WACD07R,EAAKA,EAAG9nT,KAAKwvF,IAEfv4B,EAAG,WACD,IAAIrZ,EAAOkqQ,EAAGjqQ,OAEd,OADAwwjB,EAAmBzwjB,EAAKjlB,KACjBilB,GAET79C,EAAG,SAAWwumB,GACZD,GAAS,EACTrme,EAAMsme,GAERzif,EAAG,WACD,IACOuif,GAAoC,MAAhBvmT,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIwmT,EAAQ,MAAMrme,0HC7CX,SAASume,EAA2BrolB,EAAMnmB,GACvD,GAAIA,IAA2B,YAAlB,OAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIslH,UAAU,4DAEtB,OAAO,EAAAmpf,EAAA,GAAsBtolB,GCLhB,SAASuolB,EAAaC,GACnC,IAAIC,GAA4B,EAAAC,EAAA,KAChC,OAAO,WACL,IACEzgmB,EADE0gmB,GAAQ,EAAA5zhB,EAAA,GAAeyzhB,GAE3B,GAAIC,EAA2B,CAC7B,IAAIG,GAAY,EAAA7zhB,EAAA,GAAe37E,MAAMwO,YACrCK,EAASg9jB,QAAQC,UAAUyjC,EAAOxnmB,UAAWynmB,QAE7C3gmB,EAAS0gmB,EAAMvplB,MAAMhmB,KAAM+H,WAE7B,OAAO,EAA0B/H,KAAM6O,uFCb5B,SAASgrE,EAAgBnM,EAAK1mE,EAAKpF,GAYhD,OAXAoF,GAAM,OAAcA,MACT0mE,EACT5mE,OAAOi+D,eAAe2I,EAAK1mE,EAAK,CAC9BpF,MAAOA,EACPqjE,YAAY,EACZC,cAAc,EACdmwD,UAAU,IAGZ3nD,EAAI1mE,GAAOpF,EAEN8rE,uCCbM,SAASuqJ,IAYtB,OAXAA,EAAWnxN,OAAOw4C,OAASx4C,OAAOw4C,OAAO70C,OAAS,SAAU7D,GAC1D,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CACzC,IAAI4hH,EAAS5lH,UAAUgE,GACvB,IAAK,IAAI/E,KAAO2mH,EACV7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAC/CJ,EAAOI,GAAO2mH,EAAO3mH,IAI3B,OAAOJ,GAEFqxN,EAASjyM,MAAMhmB,KAAM+H,8HCXf,SAAS0nmB,EAAerslB,EAAQ6P,GAC7C,MAAQnsB,OAAOtB,UAAUsxE,eAAer2E,KAAK2iB,EAAQ6P,IAEpC,QADf7P,GAAS,EAAAu4D,EAAA,GAAev4D,MAG1B,OAAOA,ECLM,SAASsslB,IActB,OAZEA,EADqB,qBAAZ7jC,SAA2BA,QAAQhsjB,IACrCgsjB,QAAQhsjB,IAAIpV,OAEZ,SAAc7D,EAAQqsB,EAAU82kB,GACrC,IAAIrie,EAAO,EAAc9gI,EAAQqsB,GACjC,GAAKy0G,EAAL,CACA,IAAI6kF,EAAOzlN,OAAOy2E,yBAAyBmqD,EAAMz0G,GACjD,OAAIs5L,EAAK1sM,IACA0sM,EAAK1sM,IAAIpf,KAAKsH,UAAUzH,OAAS,EAAIsG,EAASmjmB,GAEhDx9Y,EAAK3qN,QAGT8tmB,EAAK1plB,MAAMhmB,KAAM+H,gDCfX,SAAS4nmB,EAAgB1/gB,GAItC,OAHA0/gB,EAAkB7omB,OAAOg1I,eAAiBh1I,OAAO60E,eAAelxE,OAAS,SAAyBwlF,GAChG,OAAOA,EAAE8rD,WAAaj1I,OAAO60E,eAAesU,IAEvC0/gB,EAAgB1/gB,sHCHV,SAAS2/gB,EAAU9c,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIhte,UAAU,sDAEtB+se,EAASttlB,UAAYsB,OAAOw4B,OAAOyzjB,GAAcA,EAAWvtlB,UAAW,CACrEgJ,YAAa,CACX5M,MAAOkxlB,EACPz9d,UAAU,EACVnwD,cAAc,KAGlBp+D,OAAOi+D,eAAe+thB,EAAU,YAAa,CAC3Cz9d,UAAU,IAER09d,IAAY,OAAeD,EAAUC,wCCf5B,SAAS8c,IACtB,GAAuB,qBAAZhkC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUgkC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAnuf,QAAQp8G,UAAUm7N,QAAQlgO,KAAKorkB,QAAQC,UAAUlqd,QAAS,IAAI,iBACvD,EACP,MAAOphH,GACP,OAAO,uECRI,SAASwvmB,EAAiB/qc,GACvC,GAAsB,qBAAXlrC,QAAmD,MAAzBkrC,EAAKlrC,OAAOmiB,WAA2C,MAAtB+oB,EAAK,cAAuB,OAAO1/J,MAAM4D,KAAK87J,uECDvG,SAASgrc,IACtB,MAAM,IAAIlqf,UAAU,iNCDP,SAAS2uK,EAA8B/mK,EAAQuif,GAC5D,GAAc,MAAVvif,EAAgB,MAAO,GAC3B,IAEI3mH,EAAK+E,EAFLnF,EAAS,GACTupmB,EAAarpmB,OAAOC,KAAK4mH,GAE7B,IAAK5hH,EAAI,EAAGA,EAAIokmB,EAAW7vmB,OAAQyL,IACjC/E,EAAMmpmB,EAAWpkmB,GACbmkmB,EAAS/pmB,QAAQa,IAAQ,IAC7BJ,EAAOI,GAAO2mH,EAAO3mH,IAEvB,OAAOJ,sECVM,SAASwpmB,EAAgBnghB,EAAGmH,GAKzC,OAJAg5gB,EAAkBtpmB,OAAOg1I,eAAiBh1I,OAAOg1I,eAAerxI,OAAS,SAAyBwlF,EAAGmH,GAEnG,OADAnH,EAAE8rD,UAAY3kD,EACPnH,GAEFmghB,EAAgBnghB,EAAGmH,gJCDb,SAASi5gB,EAAex7e,EAAK9oH,GAC1C,OAAO,EAAAukmB,EAAA,GAAez7e,ICLT,SAA+BA,EAAK9oH,GACjD,IAAI4jH,EAAK,MAAQkF,EAAM,KAAO,oBAAsBkF,QAAUlF,EAAIkF,OAAOmiB,WAAarnB,EAAI,cAC1F,GAAI,MAAQlF,EAAI,CACd,IAAI4gf,EACFjnlB,EACA8pB,EACAo9jB,EACAC,EAAO,GACPC,GAAK,EACLt/e,GAAK,EACP,IACE,GAAIh+E,GAAMu8E,EAAKA,EAAGlvH,KAAKo0H,IAAMv2E,KAAM,IAAMvyC,EAAG,CAC1C,GAAIjF,OAAO6oH,KAAQA,EAAI,OACvB+gf,GAAK,OACA,OAASA,GAAMH,EAAKn9jB,EAAG3yC,KAAKkvH,IAAKv2F,QAAUq3kB,EAAK7vmB,KAAK2vmB,EAAG3umB,OAAQ6umB,EAAKnwmB,SAAWyL,GAAI2kmB,GAAK,IAChG,MAAOhoe,GACPtX,GAAK,EAAI9nG,EAAKo/G,EACd,QACA,IACE,IAAKgoe,GAAM,MAAQ/gf,EAAW,SAAM6gf,EAAK7gf,EAAW,SAAK7oH,OAAO0pmB,KAAQA,GAAK,OAC7E,QACA,GAAIp/e,EAAI,MAAM9nG,GAGlB,OAAOmnlB,GDnBqB,CAAqB57e,EAAK9oH,KAAM,EAAA4kmB,EAAA,GAA2B97e,EAAK9oH,KAAM,EAAA6kmB,EAAA,mHEDvF,SAASC,EAAmBh8e,GACzC,OCJa,SAA4BA,GACzC,GAAItvH,MAAMi2E,QAAQq5C,GAAM,OAAO,EAAAi8e,EAAA,GAAiBj8e,GDGzC,CAAkBA,KAAQ,EAAAk8e,EAAA,GAAgBl8e,KAAQ,EAAA87e,EAAA,GAA2B97e,IELvE,WACb,MAAM,IAAI9O,UAAU,wIFIwE,uFGH/E,SAASirf,EAAejilB,GACrC,IAAI/nB,ECFS,SAAsBwxB,EAAO5K,GAC1C,GAAuB,YAAnB,OAAQ4K,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIy4kB,EAAOz4kB,EAAMuhG,OAAOm3e,aACxB,QAAa94lB,IAAT64lB,EAAoB,CACtB,IAAI5viB,EAAM4viB,EAAKxwmB,KAAK+3B,EAAO5K,GAAQ,WACnC,GAAqB,YAAjB,OAAQyzC,GAAmB,OAAOA,EACtC,MAAM,IAAI0kD,UAAU,gDAEtB,OAAiB,WAATn4F,EAAoBi4C,OAASpW,QAAQj3B,GDNnC,CAAYzJ,EAAK,UAC3B,MAAwB,YAAjB,OAAQ/nB,GAAoBA,EAAM6+D,OAAO7+D,wCEJnC,SAASkjmB,EAAQx8hB,GAG9B,OAAOw8hB,EAAU,mBAAqBnwe,QAAU,iBAAmBA,OAAOmiB,SAAW,SAAUxuE,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBqsD,QAAUrsD,EAAIl/D,cAAgBurH,QAAUrsD,IAAQqsD,OAAOv0H,UAAY,gBAAkBkoE,GACvHw8hB,EAAQx8hB,sHCNE,SAASyjiB,EAA4BlhhB,EAAGmhhB,GACrD,GAAKnhhB,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,OAAiBA,EAAGmhhB,GACtD,IAAI15iB,EAAI5wD,OAAOtB,UAAUiJ,SAAShO,KAAKwvF,GAAGxqF,MAAM,GAAI,GAEpD,MADU,WAANiyD,GAAkBu4B,EAAEzhF,cAAakpD,EAAIu4B,EAAEzhF,YAAYhB,MAC7C,QAANkqD,GAAqB,QAANA,EAAoBnyD,MAAM4D,KAAK8mF,GACxC,cAANv4B,GAAqB,2CAA2Cx0B,KAAKw0B,IAAW,OAAiBu4B,EAAGmhhB,QAAxG,MCNEC,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBn5lB,IAAjBo5lB,EACH,OAAOA,EAAa1hhB,QAGrB,IAAI0qC,EAAS62e,EAAyBE,GAAY,CACjDtnmB,GAAIsnmB,EACJE,QAAQ,EACR3hhB,QAAS,IAUV,OANA4hhB,EAAoBH,GAAU9wmB,KAAK+5H,EAAO1qC,QAAS0qC,EAAQA,EAAO1qC,QAASwhhB,GAG3E92e,EAAOi3e,QAAS,EAGTj3e,EAAO1qC,QAIfwhhB,EAAoB75iB,EAAIi6iB,EC5BxBJ,EAAoBK,KAAO,WAC1B,MAAM,IAAIt8jB,MAAM,mCCAjBi8jB,EAAoB55iB,EAAI,SAAS8iE,GAChC,IAAIipI,EAASjpI,GAAUA,EAAOoue,WAC7B,WAAa,OAAOpue,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADA82e,EAAoBx0f,EAAE2mJ,EAAQ,CAAEh+M,EAAGg+M,IAC5BA,cCNR,IACImuW,EADAhuE,EAAW98hB,OAAO60E,eAAiB,SAASjO,GAAO,OAAO5mE,OAAO60E,eAAejO,IAAU,SAASA,GAAO,OAAOA,EAAIquE,WAQzHu1d,EAAoBp7iB,EAAI,SAASt0D,EAAOyiE,GAEvC,GADU,EAAPA,IAAUziE,EAAQ5B,KAAK4B,IAChB,EAAPyiE,EAAU,OAAOziE,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPyiE,GAAaziE,EAAMgnmB,WAAY,OAAOhnmB,EAC1C,GAAW,GAAPyiE,GAAoC,oBAAfziE,EAAM48C,KAAqB,OAAO58C,EAE5D,IAAI25H,EAAKz0H,OAAOw4B,OAAO,MACvBgykB,EAAoB/qiB,EAAEg1D,GACtB,IAAIpvC,EAAM,GACVylhB,EAAiBA,GAAkB,CAAC,KAAMhuE,EAAS,IAAKA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAItlT,EAAiB,EAAPj6K,GAAYziE,EAAyB,iBAAX08O,KAAyBszX,EAAezrmB,QAAQm4O,GAAUA,EAAUslT,EAAStlT,GACxHx3O,OAAOy6D,oBAAoB+8K,GAASr+O,SAAQ,SAAS+G,GAAOmlF,EAAInlF,GAAO,WAAa,OAAOpF,EAAMoF,OAIlG,OAFAmlF,EAAa,QAAI,WAAa,OAAOvqF,GACrC0vmB,EAAoBx0f,EAAEye,EAAIpvC,GACnBovC,MCvBR+1e,EAAoBx0f,EAAI,SAAShtB,EAAS2le,GACzC,IAAI,IAAIzujB,KAAOyujB,EACX67C,EAAoBrhhB,EAAEwle,EAAYzujB,KAASsqmB,EAAoBrhhB,EAAEH,EAAS9oF,IAC5EF,OAAOi+D,eAAe+qB,EAAS9oF,EAAK,CAAEi+D,YAAY,EAAMplD,IAAK41iB,EAAWzujB,MCJ3EsqmB,EAAoB/kf,EAAI,GAGxB+kf,EAAoB9wmB,EAAI,SAASqxmB,GAChC,OAAO1zjB,QAAQpI,IAAIjvC,OAAOC,KAAKuqmB,EAAoB/kf,GAAG7iH,QAAO,SAASg4D,EAAU16D,GAE/E,OADAsqmB,EAAoB/kf,EAAEvlH,GAAK6qmB,EAASnwiB,GAC7BA,IACL,MCNJ4viB,EAAoB9ia,EAAI,SAASqja,GAEhC,MAAO,aAAeA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,YAAYA,GAAW,aCFtFP,EAAoBQ,SAAW,SAASD,KCDxCP,EAAoB9qiB,EAAI,WACvB,GAA0B,kBAAfsniB,WAAyB,OAAOA,WAC3C,IACC,OAAO9tmB,MAAQ,IAAIgsjB,SAAS,cAAb,GACd,MAAOxrjB,GACR,GAAsB,kBAAXilB,OAAqB,OAAOA,QALjB,GCAxB6rlB,EAAoBrhhB,EAAI,SAASviB,EAAK+4C,GAAQ,OAAO3/G,OAAOtB,UAAUsxE,eAAer2E,KAAKitE,EAAK+4C,eCA/F,IAAIkuG,EAAa,GACbo9Y,EAAoB,sBAExBT,EAAoBphhB,EAAI,SAAStxC,EAAKxlB,EAAMpyB,EAAK6qmB,GAChD,GAAGl9Y,EAAW/1K,GAAQ+1K,EAAW/1K,GAAKh+C,KAAKw4B,OAA3C,CACA,IAAIuoC,EAAQqwiB,EACZ,QAAW55lB,IAARpR,EAEF,IADA,IAAIoiI,EAAU5mI,SAAS8/B,qBAAqB,UACpCv2B,EAAI,EAAGA,EAAIq9H,EAAQ9oI,OAAQyL,IAAK,CACvC,IAAI8gB,EAAIu8G,EAAQr9H,GAChB,GAAG8gB,EAAE7iB,aAAa,QAAU40C,GAAO/xB,EAAE7iB,aAAa,iBAAmB+nmB,EAAoB/qmB,EAAK,CAAE26D,EAAS90C,EAAG,OAG1G80C,IACHqwiB,GAAa,GACbrwiB,EAASn/D,SAAS4gC,cAAc,WAEzBmihB,QAAU,QACjB5jf,EAAO/+D,QAAU,IACb0umB,EAAoB3iD,IACvBhtf,EAAO7gE,aAAa,QAASwwmB,EAAoB3iD,IAElDhtf,EAAO7gE,aAAa,eAAgBixmB,EAAoB/qmB,GACxD26D,EAAOC,IAAMhjB,GAEd+1K,EAAW/1K,GAAO,CAACxlB,GACnB,IAAI64kB,EAAmB,SAASxrkB,EAAMjsB,GAErCmnD,EAAOk4I,QAAUl4I,EAAOqW,OAAS,KACjC95C,aAAat7B,GACb,IAAIsvmB,EAAUv9Y,EAAW/1K,GAIzB,UAHO+1K,EAAW/1K,GAClB+iB,EAAOv3C,YAAcu3C,EAAOv3C,WAAW+iC,YAAYwU,GACnDuwiB,GAAWA,EAAQjymB,SAAQ,SAAS25B,GAAM,OAAOA,EAAGpf,MACjDisB,EAAM,OAAOA,EAAKjsB,IAGlB5X,EAAUC,WAAWovmB,EAAiBxnmB,KAAK,UAAM2N,EAAW,CAAEuL,KAAM,UAAW/c,OAAQ+6D,IAAW,MACtGA,EAAOk4I,QAAUo4Z,EAAiBxnmB,KAAK,KAAMk3D,EAAOk4I,SACpDl4I,EAAOqW,OAASi6hB,EAAiBxnmB,KAAK,KAAMk3D,EAAOqW,QACnDg6hB,GAAcxvmB,SAAS+9H,KAAK/oD,YAAY7V,QCvCzC2viB,EAAoB/qiB,EAAI,SAASupB,GACX,qBAAXiqC,QAA0BA,OAAOC,aAC1ClzH,OAAOi+D,eAAe+qB,EAASiqC,OAAOC,YAAa,CAAEp4H,MAAO,WAE7DkF,OAAOi+D,eAAe+qB,EAAS,aAAc,CAAEluF,OAAO,KCLvD0vmB,EAAoBa,IAAM,SAAS33e,GAGlC,OAFAA,EAAO43e,MAAQ,GACV53e,EAAOzvH,WAAUyvH,EAAOzvH,SAAW,IACjCyvH,GCHR82e,EAAoBl6gB,EAAI,kCCKxB,IAAIi7gB,EAAkB,CACrB,IAAK,GAGNf,EAAoB/kf,EAAEhiC,EAAI,SAASsnhB,EAASnwiB,GAE1C,IAAI4wiB,EAAqBhB,EAAoBrhhB,EAAEoihB,EAAiBR,GAAWQ,EAAgBR,QAAWz5lB,EACtG,GAA0B,IAAvBk6lB,EAGF,GAAGA,EACF5wiB,EAAS9gE,KAAK0xmB,EAAmB,QAC3B,CAGL,IAAI9hmB,EAAU,IAAI2tC,SAAQ,SAAS/tC,EAASs7B,GAAU4mkB,EAAqBD,EAAgBR,GAAW,CAACzhmB,EAASs7B,MAChHg2B,EAAS9gE,KAAK0xmB,EAAmB,GAAK9hmB,GAGtC,IAAIouC,EAAM0yjB,EAAoBl6gB,EAAIk6gB,EAAoB9ia,EAAEqja,GAEpDnyjB,EAAQ,IAAIrK,MAgBhBi8jB,EAAoBphhB,EAAEtxC,GAfH,SAASpkC,GAC3B,GAAG82lB,EAAoBrhhB,EAAEoihB,EAAiBR,KAEf,KAD1BS,EAAqBD,EAAgBR,MACRQ,EAAgBR,QAAWz5lB,GACrDk6lB,GAAoB,CACtB,IAAIC,EAAY/3lB,IAAyB,SAAfA,EAAMmJ,KAAkB,UAAYnJ,EAAMmJ,MAChE6ulB,EAAUh4lB,GAASA,EAAM5T,QAAU4T,EAAM5T,OAAOg7D,IACpDliB,EAAMjU,QAAU,iBAAmBomkB,EAAU,cAAgBU,EAAY,KAAOC,EAAU,IAC1F9yjB,EAAMlyC,KAAO,iBACbkyC,EAAM/7B,KAAO4ulB,EACb7yjB,EAAM2e,QAAUm0iB,EAChBF,EAAmB,GAAG5yjB,MAIgB,SAAWmyjB,EAASA,KAiBlE,IAAIY,EAAuB,SAASC,EAA4B7kmB,GAC/D,IAKI0jmB,EAAUM,EALVc,EAAW9kmB,EAAK,GAChB+kmB,EAAc/kmB,EAAK,GACnB8/lB,EAAU9/lB,EAAK,GAGI9B,EAAI,EAC3B,GAAG4mmB,EAASpwlB,MAAK,SAAStY,GAAM,OAA+B,IAAxBoomB,EAAgBpomB,MAAe,CACrE,IAAIsnmB,KAAYqB,EACZtB,EAAoBrhhB,EAAE2ihB,EAAarB,KACrCD,EAAoB75iB,EAAE85iB,GAAYqB,EAAYrB,IAGhD,GAAG5D,EAAsBA,EAAQ2D,GAGlC,IADGoB,GAA4BA,EAA2B7kmB,GACrD9B,EAAI4mmB,EAASrymB,OAAQyL,IACzB8lmB,EAAUc,EAAS5mmB,GAChBulmB,EAAoBrhhB,EAAEoihB,EAAiBR,IAAYQ,EAAgBR,IACrEQ,EAAgBR,GAAS,KAE1BQ,EAAgBR,GAAW,GAKzBgB,EAAqBjslB,KAAqC,+BAAIA,KAAqC,gCAAK,GAC5GislB,EAAmB5ymB,QAAQwymB,EAAqBhomB,KAAK,KAAM,IAC3DoomB,EAAmBjymB,KAAO6xmB,EAAqBhomB,KAAK,KAAMoomB,EAAmBjymB,KAAK6J,KAAKoomB,sFCtFvF,SAASC,EAAQ1vlB,EAAQ2vlB,GACvB,IAAIhsmB,EAAOD,OAAOC,KAAKqc,GACvB,GAAItc,OAAOsshB,sBAAuB,CAChC,IAAI1ja,EAAU5oH,OAAOsshB,sBAAsBhwgB,GAC3C2vlB,IAAmBrjf,EAAUA,EAAQ9pH,QAAO,SAAUotmB,GACpD,OAAOlsmB,OAAOy2E,yBAAyBn6D,EAAQ4vlB,GAAK/tiB,eACjDl+D,EAAKnG,KAAKolB,MAAMjf,EAAM2oH,GAE7B,OAAO3oH,EAEM,SAASksmB,EAAersmB,GACrC,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CACzC,IAAI4hH,EAAS,MAAQ5lH,UAAUgE,GAAKhE,UAAUgE,GAAK,GACnDA,EAAI,EAAI+mmB,EAAQhsmB,OAAO6mH,IAAS,GAAI1tH,SAAQ,SAAU+G,IACpD,EAAA+9D,EAAA,GAAen+D,EAAQI,EAAK2mH,EAAO3mH,OAChCF,OAAOqpU,0BAA4BrpU,OAAOosmB,iBAAiBtsmB,EAAQE,OAAOqpU,0BAA0BxiN,IAAWmlf,EAAQhsmB,OAAO6mH,IAAS1tH,SAAQ,SAAU+G,GAC5JF,OAAOi+D,eAAen+D,EAAQI,EAAKF,OAAOy2E,yBAAyBowC,EAAQ3mH,OAG/E,OAAOJ,yGCXT,IAAMusmB,EACkB,qBAAX1tlB,OACF,SAAS+oC,GACd,OAAOA,KAGJ/oC,OAAOwqH,sBAEhB,SAASmpJ,EAAUx/P,EAAImkB,EAASq1jB,GAC9B,IAAMC,EAAaD,GAAa,SAAC5slB,GAAD,OAAUjhB,MAAMC,UAAUC,MAAMhF,KAAK+lB,IACjE8slB,GAAU,EACV9slB,EAAO,GACX,OAAO,WAAkB,2BAANswc,EAAM,yBAANA,EAAM,gBACvBtwc,EAAO6slB,EAAWv8I,GACbw8I,IACHA,GAAU,EACVH,EAAiB1ymB,KAAKglB,QAAQ,WAC5B6tlB,GAAU,EACV15kB,EAAG5T,MAAM+3B,EAASv3B,QAiB1B,IAAM+slB,EAAqB,SAAC15jB,GAAD,MAAqB,UAAVA,EAAoB,OAAmB,QAAVA,EAAkB,QAAU,UACzF25jB,EAAiB,SAAC35jB,EAAOh+B,EAAOuX,GAAf,MAAiC,UAAVymB,EAAoBh+B,EAAkB,QAAVg+B,EAAkBzmB,GAAOvX,EAAQuX,GAAO,GAMlH,SAAS4+L,KACT,IAAM6/U,EAAO,WACX,IAAI5niB,EAAK,EACT,OAAO,WACL,OAAOA,KAHE,GAMb,SAAS4phB,EAAcjyhB,GACrB,OAAiB,OAAVA,GAAmC,qBAAVA,EAElC,SAAS45E,EAAQ55E,GACf,GAAI2D,MAAMi2E,SAAWj2E,MAAMi2E,QAAQ55E,GACjC,OAAO,EAET,IAAM+hB,EAAO7c,OAAOtB,UAAUiJ,SAAShO,KAAKmB,GAC5C,MAA0B,YAAtB+hB,EAAKhT,OAAO,EAAG,IAAwC,WAApBgT,EAAKhT,QAAQ,GAKtD,SAASw5M,EAASvoN,GAChB,OAAiB,OAAVA,GAA4D,oBAA1CkF,OAAOtB,UAAUiJ,SAAShO,KAAKmB,GAE1D,IAAM6xmB,EAAiB,SAAC7xmB,GAAD,OAA6B,kBAAVA,GAAsBA,aAAiB6tD,SAAW02D,UAAUvkH,IACtG,SAAS8xmB,EAAgB9xmB,EAAO2yC,GAC9B,OAAOk/jB,EAAe7xmB,GAASA,EAAQ2yC,EAEzC,SAASo/jB,EAAe/xmB,EAAO2yC,GAC7B,MAAwB,qBAAV3yC,EAAwB2yC,EAAe3yC,EAEvD,IAIMgymB,EAAc,SAAChymB,EAAOsW,GAAR,MACD,kBAAVtW,GAAsBA,EAAM+5H,SAAS,KAC1ChmF,WAAW/zC,GAAS,IAAMsW,GACvBtW,GACP,SAAS4sD,EAAS50B,EAAIpT,EAAMu3B,GAC1B,GAAInkB,GAAyB,oBAAZA,EAAGn5B,KAClB,OAAOm5B,EAAG5T,MAAM+3B,EAASv3B,GAG7B,SAAS/L,EAAKo5lB,EAAUj6kB,EAAImkB,EAAShqB,GACnC,IAAIhoB,EAAGyrC,EAAKzwC,EACZ,GAAIy0E,EAAQq4hB,GAEV,GADAr8jB,EAAMq8jB,EAASvzmB,OACXyzB,EACF,IAAKhoB,EAAIyrC,EAAM,EAAGzrC,GAAK,EAAGA,IACxB6tB,EAAGn5B,KAAKs9C,EAAS81jB,EAAS9nmB,GAAIA,QAGhC,IAAKA,EAAI,EAAGA,EAAIyrC,EAAKzrC,IACnB6tB,EAAGn5B,KAAKs9C,EAAS81jB,EAAS9nmB,GAAIA,QAG7B,GAAIo+M,EAAS0pZ,GAGlB,IADAr8jB,GADAzwC,EAAOD,OAAOC,KAAK8smB,IACRvzmB,OACNyL,EAAI,EAAGA,EAAIyrC,EAAKzrC,IACnB6tB,EAAGn5B,KAAKs9C,EAAS81jB,EAAS9smB,EAAKgF,IAAKhF,EAAKgF,IAI/C,SAAS+nmB,EAAeC,EAAIC,GAC1B,IAAIjomB,EAAGkomB,EAAMC,EAAIC,EACjB,IAAKJ,IAAOC,GAAMD,EAAGzzmB,SAAW0zmB,EAAG1zmB,OACjC,OAAO,EAET,IAAKyL,EAAI,EAAGkomB,EAAOF,EAAGzzmB,OAAQyL,EAAIkomB,IAAQlomB,EAGxC,GAFAmomB,EAAKH,EAAGhomB,GACRoomB,EAAKH,EAAGjomB,GACJmomB,EAAGE,eAAiBD,EAAGC,cAAgBF,EAAGrzmB,QAAUszmB,EAAGtzmB,MACzD,OAAO,EAGX,OAAO,EAET,SAASwzmB,EAAQ1mf,GACf,GAAInyC,EAAQmyC,GACV,OAAOA,EAAOznH,IAAImumB,GAEpB,GAAIlqZ,EAASx8F,GAAS,CAKpB,IAJA,IAAM/mH,EAASE,OAAOw4B,OAAO,MACvBv4B,EAAOD,OAAOC,KAAK4mH,GACnB2mf,EAAOvtmB,EAAKzG,OACdq3D,EAAI,EACDA,EAAI28iB,IAAQ38iB,EACjB/wD,EAAOG,EAAK4wD,IAAM08iB,EAAQ1mf,EAAO5mH,EAAK4wD,KAExC,OAAO/wD,EAET,OAAO+mH,EAET,SAAS4mf,EAAWvtmB,GAClB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAeb,QAAQa,GAE3D,SAASwtmB,EAAQxtmB,EAAKJ,EAAQ+mH,EAAQvzG,GACpC,GAAKm6lB,EAAWvtmB,GAAhB,CAGA,IAAMytmB,EAAO7tmB,EAAOI,GACd0tmB,EAAO/mf,EAAO3mH,GAChBmjN,EAASsqZ,IAAStqZ,EAASuqZ,GAC7Bz3c,EAAMw3c,EAAMC,EAAMt6lB,GAElBxT,EAAOI,GAAOqtmB,EAAQK,IAG1B,SAASz3c,EAAMr2J,EAAQ+mH,EAAQvzG,GAC7B,IAAMonhB,EAAUhmd,EAAQmyC,GAAUA,EAAS,CAACA,GACtCsmf,EAAOzyE,EAAQlhiB,OACrB,IAAK6pN,EAASvjN,GACZ,OAAOA,EAIT,IADA,IAAM+tmB,GADNv6lB,EAAUA,GAAW,IACEu6lB,QAAUH,EACxBzomB,EAAI,EAAGA,EAAIkomB,IAAQlomB,EAE1B,GAAKo+M,EADLx8F,EAAS6za,EAAQz1hB,IAKjB,IADA,IAAMhF,EAAOD,OAAOC,KAAK4mH,GAChBh2D,EAAI,EAAG28iB,EAAOvtmB,EAAKzG,OAAQq3D,EAAI28iB,IAAQ38iB,EAC9Cg9iB,EAAO5tmB,EAAK4wD,GAAI/wD,EAAQ+mH,EAAQvzG,GAGpC,OAAOxT,EAET,SAASgumB,EAAQhumB,EAAQ+mH,GACvB,OAAOsvC,EAAMr2J,EAAQ+mH,EAAQ,CAACgnf,OAAQE,IAExC,SAASA,EAAU7tmB,EAAKJ,EAAQ+mH,GAC9B,GAAK4mf,EAAWvtmB,GAAhB,CAGA,IAAMytmB,EAAO7tmB,EAAOI,GACd0tmB,EAAO/mf,EAAO3mH,GAChBmjN,EAASsqZ,IAAStqZ,EAASuqZ,GAC7BE,EAAQH,EAAMC,GACJ5tmB,OAAOtB,UAAUsxE,eAAer2E,KAAKmG,EAAQI,KACvDJ,EAAOI,GAAOqtmB,EAAQK,KAW1B,SAASI,EAAmB9tmB,EAAK6U,GAC/B,IAAMkxJ,EAAM/lK,EAAIb,QAFN,IAEmB0V,GAC7B,OAAgB,IAATkxJ,EAAa/lK,EAAI1G,OAASysK,EAEnC,SAASgoc,EAAiBrniB,EAAK1mE,GAC7B,GAPkB,KAOdA,EACF,OAAO0mE,EAIT,IAFA,IAAI4L,EAAM,EACNyzF,EAAM+nc,EAAmB9tmB,EAAKsyE,GAC3B5L,GAAOq/F,EAAMzzF,GAClB5L,EAAMA,EAAI1mE,EAAI2J,OAAO2oE,EAAKyzF,EAAMzzF,IAEhCyzF,EAAM+nc,EAAmB9tmB,EADzBsyE,EAAMyzF,EAAM,GAGd,OAAOr/F,EAET,SAASsniB,EAAYx2hB,GACnB,OAAOA,EAAI0G,OAAO,GAAGwgC,cAAgBlnC,EAAI/4E,MAAM,GAEjD,IAAMwvmB,EAAU,SAACrzmB,GAAD,MAA4B,qBAAVA,GAC5Bs5E,EAAa,SAACt5E,GAAD,MAA4B,oBAAVA,GAC/BszmB,EAAY,SAACzvjB,EAAGC,GACpB,GAAID,EAAEjtC,OAASktC,EAAEltC,KACf,OAAO,EAFiB,gBAIPitC,GAJO,IAI1B,2BAAsB,KAAXvlD,EAAW,QACpB,IAAKwlD,EAAE7rB,IAAI35B,GACT,OAAO,GANe,8BAS1B,OAAO,GAMT,IAAMy0Q,EAAKhvP,KAAKgvP,GACVwgW,EAAM,EAAIxgW,EACVygW,EAAQD,EAAMxgW,EACd0gW,EAAW5ljB,OAAO6ljB,kBAClBC,EAAc5gW,EAAK,IACnB6gW,EAAU7gW,EAAK,EACf8gW,EAAa9gW,EAAK,EAClB+gW,EAAqB,EAAL/gW,EAAS,EACzBghW,EAAQhwlB,KAAKgwlB,MACbnijB,GAAO7tC,KAAK6tC,KAClB,SAASoijB,GAAQ5phB,GACf,IAAM6phB,EAAelwlB,KAAK6H,MAAMw+D,GAChCA,EAAQ8phB,GAAa9phB,EAAO6phB,EAAc7phB,EAAQ,KAAQ6phB,EAAe7phB,EACzE,IAAM+phB,EAAYpwlB,KAAKg7C,IAAI,GAAIh7C,KAAKo1B,MAAM46jB,EAAM3phB,KAC1CwlC,EAAWxlC,EAAQ+phB,EAEzB,OADqBvkf,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAI,IAC3Dukf,EAkBxB,SAAS1qZ,GAAS3zJ,GAChB,OAAQluB,MAAMmM,WAAW+hB,KAAOyuD,SAASzuD,GAE3C,SAASo+iB,GAAa9kmB,EAAG2M,EAAGq4lB,GAC1B,OAAOrwlB,KAAK23B,IAAItsC,EAAI2M,GAAKq4lB,EAM3B,SAASC,GAAmB59jB,EAAOzxC,EAAQqsB,GACzC,IAAIlnB,EAAGkomB,EAAMrymB,EACb,IAAKmK,EAAI,EAAGkomB,EAAO57jB,EAAM/3C,OAAQyL,EAAIkomB,EAAMlomB,IACzCnK,EAAQy2C,EAAMtsC,GAAGknB,GACZuW,MAAM5nC,KACTgF,EAAOkf,IAAMH,KAAKG,IAAIlf,EAAOkf,IAAKlkB,GAClCgF,EAAOgf,IAAMD,KAAKC,IAAIhf,EAAOgf,IAAKhkB,IAIxC,SAASs0mB,GAAUC,GACjB,OAAOA,GAAWxhW,EAAK,KAEzB,SAASyhW,GAAUC,GACjB,OAAOA,GAAW,IAAM1hW,GAE1B,SAAS2hW,GAAetlmB,GACtB,GAAKyimB,EAAezimB,GAApB,CAKA,IAFA,IAAIxQ,EAAI,EACJ42F,EAAI,EACDzxE,KAAK6H,MAAMxc,EAAIxQ,GAAKA,IAAMwQ,GAC/BxQ,GAAK,GACL42F,IAEF,OAAOA,GAET,SAASm/gB,GAAkBC,EAAaC,GACtC,IAAMC,EAAsBD,EAAWzlmB,EAAIwlmB,EAAYxlmB,EACjD2lmB,EAAsBF,EAAW94lB,EAAI64lB,EAAY74lB,EACjDi5lB,EAA2BjxlB,KAAK+0H,KAAKg8d,EAAsBA,EAAsBC,EAAsBA,GACzGnlkB,EAAQ7rB,KAAK8wf,MAAMkgG,EAAqBD,GAI5C,OAHIllkB,GAAU,GAAMmjO,IAClBnjO,GAAS2jkB,GAEJ,CACL3jkB,MAAAA,EACA7L,SAAUixkB,GAGd,SAASC,GAAsBC,EAAKC,GAClC,OAAOpxlB,KAAK+0H,KAAK/0H,KAAKg7C,IAAIo2iB,EAAI/lmB,EAAI8lmB,EAAI9lmB,EAAG,GAAK2U,KAAKg7C,IAAIo2iB,EAAIp5lB,EAAIm5lB,EAAIn5lB,EAAG,IAExE,SAASq5lB,GAAWvxjB,EAAGC,GACrB,OAAQD,EAAIC,EAAI0vjB,GAASD,EAAMxgW,EAEjC,SAASsiW,GAAgBxxjB,GACvB,OAAQA,EAAI0vjB,EAAMA,GAAOA,EAE3B,SAAS+B,GAAc1lkB,EAAO31B,EAAOuX,EAAK+jlB,GACxC,IAAM1xjB,EAAIwxjB,GAAgBzlkB,GACpB3kB,EAAIoqlB,GAAgBp7lB,GACpBrb,EAAIy2mB,GAAgB7jlB,GACpBgklB,EAAeH,GAAgBpqlB,EAAI44B,GACnC4xjB,EAAaJ,GAAgBz2mB,EAAIilD,GACjC6xjB,EAAeL,GAAgBxxjB,EAAI54B,GACnC0qlB,EAAaN,GAAgBxxjB,EAAIjlD,GACvC,OAAOilD,IAAM54B,GAAK44B,IAAMjlD,GAAM22mB,GAAyBtqlB,IAAMrsB,GACvD42mB,EAAeC,GAAcC,EAAeC,EAEpD,SAASC,GAAY51mB,EAAOkkB,EAAKF,GAC/B,OAAOD,KAAKC,IAAIE,EAAKH,KAAKG,IAAIF,EAAKhkB,IAKrC,SAAS61mB,GAAW71mB,EAAOia,EAAOuX,GAAqB,IAAhB4ilB,EAAgB,uDAAN,KAC/C,OAAOp0mB,GAAS+jB,KAAKG,IAAIjK,EAAOuX,GAAO4ilB,GAAWp0mB,GAAS+jB,KAAKC,IAAI/J,EAAOuX,GAAO4ilB,EAGpF,IAAM0B,GAAS,SAACxhjB,GAAD,OAAa,IAANA,GAAiB,IAANA,GAC3ByhjB,GAAY,SAACzhjB,EAAGrpC,EAAGuqE,GAAP,OAAezxE,KAAKg7C,IAAI,EAAG,IAAMzK,GAAK,IAAMvwC,KAAKixf,KAAK1gd,EAAIrpC,GAAKsolB,EAAM/9gB,IACjFwghB,GAAa,SAAC1hjB,EAAGrpC,EAAGuqE,GAAP,OAAazxE,KAAKg7C,IAAI,GAAI,GAAKzK,GAAKvwC,KAAKixf,KAAK1gd,EAAIrpC,GAAKsolB,EAAM/9gB,GAAK,GAC/E0nB,GAAU,CACdq+G,OAAQ,SAAAjnK,GAAC,OAAIA,GACb2hjB,WAAY,SAAA3hjB,GAAC,OAAIA,EAAIA,GACrB4hjB,YAAa,SAAA5hjB,GAAC,OAAKA,GAAKA,EAAI,IAC5B6hjB,cAAe,SAAA7hjB,GAAC,OAAMA,GAAK,IAAO,EAC9B,GAAMA,EAAIA,GACT,MAAUA,GAAMA,EAAI,GAAK,IAC9B8hjB,YAAa,SAAA9hjB,GAAC,OAAIA,EAAIA,EAAIA,GAC1B6rc,aAAc,SAAA7rc,GAAC,OAAKA,GAAK,GAAKA,EAAIA,EAAI,GACtC+hjB,eAAgB,SAAA/hjB,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EACd,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAC9BgijB,YAAa,SAAAhijB,GAAC,OAAIA,EAAIA,EAAIA,EAAIA,GAC9BiijB,aAAc,SAAAjijB,GAAC,SAAOA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAC5CkijB,eAAgB,SAAAlijB,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EAAIA,GACjB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IACnCmijB,YAAa,SAAAnijB,GAAC,OAAIA,EAAIA,EAAIA,EAAIA,EAAIA,GAClCoijB,aAAc,SAAApijB,GAAC,OAAKA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAC9CqijB,eAAgB,SAAArijB,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EACtB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IACtCsijB,WAAY,SAAAtijB,GAAC,OAA6B,EAAxBvwC,KAAKivP,IAAI1+M,EAAIs/iB,IAC/BiD,YAAa,SAAAvijB,GAAC,OAAIvwC,KAAKixf,IAAI1gd,EAAIs/iB,IAC/BkD,cAAe,SAAAxijB,GAAC,OAAK,IAAOvwC,KAAKivP,IAAID,EAAKz+M,GAAK,IAC/CyijB,WAAY,SAAAzijB,GAAC,OAAW,IAANA,EAAW,EAAIvwC,KAAKg7C,IAAI,EAAG,IAAMzK,EAAI,KACvD0ijB,YAAa,SAAA1ijB,GAAC,OAAW,IAANA,EAAW,EAA4B,EAAvBvwC,KAAKg7C,IAAI,GAAI,GAAKzK,IACrD2ijB,cAAe,SAAA3ijB,GAAC,OAAIwhjB,GAAOxhjB,GAAKA,EAAIA,EAAI,GACpC,GAAMvwC,KAAKg7C,IAAI,EAAG,IAAU,EAAJzK,EAAQ,IAChC,IAAyC,EAAjCvwC,KAAKg7C,IAAI,GAAI,IAAU,EAAJzK,EAAQ,MACvC4ijB,WAAY,SAAA5ijB,GAAC,OAAKA,GAAK,EAAKA,IAAMvwC,KAAK+0H,KAAK,EAAIxkF,EAAIA,GAAK,IACzD6ijB,YAAa,SAAA7ijB,GAAC,OAAIvwC,KAAK+0H,KAAK,GAAKxkF,GAAK,GAAKA,IAC3C8ijB,cAAe,SAAA9ijB,GAAC,OAAMA,GAAK,IAAO,GAC7B,IAAOvwC,KAAK+0H,KAAK,EAAIxkF,EAAIA,GAAK,GAC/B,IAAOvwC,KAAK+0H,KAAK,GAAKxkF,GAAK,GAAKA,GAAK,IACzC+ijB,cAAe,SAAA/ijB,GAAC,OAAIwhjB,GAAOxhjB,GAAKA,EAAIyhjB,GAAUzhjB,EAAG,KAAO,KACxDgjjB,eAAgB,SAAAhjjB,GAAC,OAAIwhjB,GAAOxhjB,GAAKA,EAAI0hjB,GAAW1hjB,EAAG,KAAO,KAC1DijjB,iBArCc,SAqCGjjjB,GACf,IAAMrpC,EAAI,MAEV,OAAO6qlB,GAAOxhjB,GAAKA,EACjBA,EAAI,GACA,GAAMyhjB,GAAc,EAAJzhjB,EAAOrpC,EAHnB,KAIJ,GAAM,GAAM+qlB,GAAe,EAAJ1hjB,EAAQ,EAAGrpC,EAJ9B,MAMZuslB,WA7Cc,SA6CHljjB,GACT,IAAMrpC,EAAI,QACV,OAAOqpC,EAAIA,IAAMrpC,EAAI,GAAKqpC,EAAIrpC,IAEhCwslB,YAjDc,SAiDFnjjB,GACV,IAAMrpC,EAAI,QACV,OAAQqpC,GAAK,GAAKA,IAAMrpC,EAAI,GAAKqpC,EAAIrpC,GAAK,GAE5CyslB,cArDc,SAqDApjjB,GACZ,IAAIrpC,EAAI,QACR,OAAKqpC,GAAK,IAAO,EACDA,EAAIA,IAAuB,GAAhBrpC,GAAM,QAAeqpC,EAAIrpC,GAA3C,GAEF,KAAQqpC,GAAK,GAAKA,IAAuB,GAAhBrpC,GAAM,QAAeqpC,EAAIrpC,GAAK,IAEhE0slB,aAAc,SAAArjjB,GAAC,OAAI,EAAI4oD,GAAQ06f,cAAc,EAAItjjB,IACjDsjjB,cA7Dc,SA6DAtjjB,GACZ,IAAMuB,EAAI,OACJqlD,EAAI,KACV,OAAI5mD,EAAK,EAAI4mD,EACJrlD,EAAIvB,EAAIA,EAEbA,EAAK,EAAI4mD,EACJrlD,GAAKvB,GAAM,IAAM4mD,GAAM5mD,EAAI,IAEhCA,EAAK,IAAM4mD,EACNrlD,GAAKvB,GAAM,KAAO4mD,GAAM5mD,EAAI,MAE9BuB,GAAKvB,GAAM,MAAQ4mD,GAAM5mD,EAAI,SAEtCujjB,gBAAiB,SAAAvjjB,GAAC,OAAKA,EAAI,GACO,GAA9B4oD,GAAQy6f,aAAiB,EAAJrjjB,GACc,GAAnC4oD,GAAQ06f,cAAkB,EAAJtjjB,EAAQ,GAAW,KASzChwD,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGg1d,EAAG,GAAIxrU,EAAG,GAAIxnC,EAAG,GAAI+gc,EAAG,GAAItzP,EAAG,GAAIkvM,EAAG,GAAIp/c,EAAG,GAAIC,EAAG,GAAIlqC,EAAG,GAAIshG,EAAG,GAAIt8G,EAAG,GAAI+rH,EAAG,IACnJmqH,GAAM,mBACNgjY,GAAK,SAACh0jB,GAAD,OAAOgxL,GAAQ,GAAJhxL,IAChBqzd,GAAK,SAACrzd,GAAD,OAAOgxL,IAAS,IAAJhxL,IAAa,GAAKgxL,GAAQ,GAAJhxL,IACvCkC,GAAK,SAAClC,GAAD,OAAc,IAAJA,IAAa,KAAY,GAAJA,IA0B1C,SAASi0jB,GAAU9yjB,GAClB,IAAI0lE,EA1BL,SAAiB1lE,GAChB,OAAOe,GAAGf,EAAE0f,IAAM3e,GAAGf,EAAE2f,IAAM5e,GAAGf,EAAEnB,IAAMkC,GAAGf,EAAEpB,GAyBrCm0jB,CAAQ/yjB,GAAK6yjB,GAAK3gG,GAC1B,OAAOlyd,EACJ,IAAM0lE,EAAE1lE,EAAE0f,GAAKgmD,EAAE1lE,EAAE2f,GAAK+lD,EAAE1lE,EAAEnB,IAAMmB,EAAEpB,EAAI,IAAM8mE,EAAE1lE,EAAEpB,GAAK,IACvDoB,EAEJ,SAASr5B,GAAMq5B,GACd,OAAOA,EAAI,GAAM,EAElB,IAAMgzjB,GAAM,SAAChzjB,EAAGqpC,EAAGs5D,GAAP,OAAa7jI,KAAKC,IAAID,KAAKG,IAAI+gC,EAAG2iG,GAAIt5D,IAClD,SAAS4phB,GAAIjzjB,GACZ,OAAOgzjB,GAAIrslB,GAAU,KAAJq5B,GAAW,EAAG,KAEhC,SAASkzjB,GAAIlzjB,GACZ,OAAOgzjB,GAAIrslB,GAAU,IAAJq5B,GAAU,EAAG,KAE/B,SAASmzjB,GAAInzjB,GACZ,OAAOgzjB,GAAIrslB,GAAMq5B,EAAI,MAAQ,IAAK,EAAG,GAEtC,SAASozjB,GAAIpzjB,GACZ,OAAOgzjB,GAAIrslB,GAAU,IAAJq5B,GAAU,EAAG,KAE/B,IAAMqzjB,GAAS,uGAgCf,IAAMC,GAAS,+GACf,SAASC,GAAS5wd,EAAG38H,EAAGqjE,GACvB,IAAMzqC,EAAI54B,EAAIlH,KAAKG,IAAIoqE,EAAG,EAAIA,GACxBq8B,EAAI,SAAC70D,GAAD,IAAIC,EAAJ,wDAASD,EAAI8xF,EAAI,IAAM,GAAvB,OAA8Bt5D,EAAIzqC,EAAI9/B,KAAKC,IAAID,KAAKG,IAAI6xC,EAAI,EAAG,EAAIA,EAAG,IAAK,IACrF,MAAO,CAAC40D,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEvB,SAAS8tf,GAAS7wd,EAAG38H,EAAGg6B,GACvB,IAAM0lE,EAAI,SAAC70D,GAAD,IAAIC,EAAJ,wDAASD,EAAI8xF,EAAI,IAAM,EAAvB,OAA6B3iG,EAAIA,EAAIh6B,EAAIlH,KAAKC,IAAID,KAAKG,IAAI6xC,EAAG,EAAIA,EAAG,GAAI,IACnF,MAAO,CAAC40D,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEvB,SAAS+tf,GAAS9wd,EAAGC,EAAG/jG,GACvB,IACI35C,EADEsoO,EAAM+lY,GAAS5wd,EAAG,EAAG,IAO3B,IALIC,EAAI/jG,EAAI,IAEX+jG,GADA19I,EAAI,GAAK09I,EAAI/jG,GAEbA,GAAK35C,GAEDA,EAAI,EAAGA,EAAI,EAAGA,IAClBsoO,EAAItoO,IAAM,EAAI09I,EAAI/jG,EAClB2uL,EAAItoO,IAAM09I,EAEX,OAAO4qF,EAER,SAASkmY,GAAQ1zjB,GAChB,IAOI2iG,EAAG38H,EAAGiwF,EANJv2C,EAAI1f,EAAE0f,EADE,IAERC,EAAI3f,EAAE2f,EAFE,IAGR9gB,EAAImB,EAAEnB,EAHE,IAIR9/B,EAAMD,KAAKC,IAAI2gD,EAAGC,EAAG9gB,GACrB5/B,EAAMH,KAAKG,IAAIygD,EAAGC,EAAG9gB,GACrBwqC,GAAKtqE,EAAME,GAAO,EAYxB,OAVIF,IAAQE,IACXg3F,EAAIl3F,EAAME,EACV+G,EAAIqjE,EAAI,GAAM4sB,GAAK,EAAIl3F,EAAME,GAAOg3F,GAAKl3F,EAAME,GAM/C0jI,EAAQ,IALRA,EAAI5jI,IAAQ2gD,GACPC,EAAI9gB,GAAKo3D,GAAMt2C,EAAI9gB,EAAI,EAAI,GAC7B9/B,IAAQ4gD,GACN9gB,EAAI6gB,GAAKu2C,EAAI,GACbv2C,EAAIC,GAAKs2C,EAAI,GACL,IAEP,CAAK,EAAJ0sC,EAAO38H,GAAK,EAAGqjE,GAExB,SAASsqhB,GAAMjuf,EAAG9mE,EAAGC,EAAGlqC,GACvB,OACCjW,MAAMi2E,QAAQ/1B,GACX8mE,EAAE9mE,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAChB8mE,EAAE9mE,EAAGC,EAAGlqC,IACVtV,IAAI6zmB,IAEP,SAASU,GAAQjxd,EAAG38H,EAAGqjE,GACtB,OAAOsqhB,GAAMJ,GAAU5wd,EAAG38H,EAAGqjE,GAQ9B,SAASmlR,GAAI7rN,GACZ,OAAQA,EAAI,IAAM,KAAO,IAE1B,SAASkxd,GAASl8hB,GACjB,IAEI33B,EAFE4Q,EAAI0ijB,GAAO5rmB,KAAKiwE,GAClB/4B,EAAI,IAER,GAAKgS,EAAL,CAGIA,EAAE,KAAO5Q,IACZpB,EAAIgS,EAAE,GAAKqijB,IAAKrijB,EAAE,IAAMsijB,IAAKtijB,EAAE,KAEhC,IAAM+xF,EAAI6rN,IAAK59S,EAAE,IACX4zE,GAAM5zE,EAAE,GAAK,IACb6zE,GAAM7zE,EAAE,GAAK,IAQnB,MAAO,CACN8O,GAPA1f,EADY,QAAT4Q,EAAE,GAtBP,SAAiB+xF,EAAGC,EAAG/jG,GACtB,OAAO80jB,GAAMF,GAAU9wd,EAAGC,EAAG/jG,GAsBxBi1jB,CAAQnxd,EAAGne,EAAIC,GACA,QAAT7zE,EAAE,GArBd,SAAiB+xF,EAAG38H,EAAGg6B,GACtB,OAAO2zjB,GAAMH,GAAU7wd,EAAG38H,EAAGg6B,GAqBxB+zjB,CAAQpxd,EAAGne,EAAIC,GAEfmve,GAAQjxd,EAAGne,EAAIC,IAGd,GACL9kE,EAAG3f,EAAE,GACLnB,EAAGmB,EAAE,GACLpB,EAAGA,IAuBL,IAmMIo1jB,GAnMEC,GAAQ,CACb9pmB,EAAG,OACHmlT,EAAG,QACH8xP,EAAG,KACH/xP,EAAG,MACH8xP,EAAG,KACH9yU,EAAG,SACHg5U,EAAG,QACHhzF,EAAG,KACH4sF,EAAG,KACH7yU,EAAG,KACHvlF,EAAG,KACHxnC,EAAG,QACH+gc,EAAG,QACH55Z,EAAG,KACHqmK,EAAG,WACHC,EAAG,KACH13Q,EAAG,KACHkqE,EAAG,KACH0pc,EAAG,KACHp8P,EAAG,KACHrmK,EAAG,QACHy1W,EAAG,KACHkjD,EAAG,KACHyE,EAAG,OACHx3U,EAAG,KACH0zU,EAAG,QACHC,EAAG,MAEE/wgB,GAAQ,CACbmjkB,OAAQ,SACRC,YAAa,SACblwY,KAAM,OACNmwY,UAAW,SACXC,KAAM,SACNjwY,MAAO,SACPC,OAAQ,SACRC,MAAO,IACPgwY,aAAc,SACdrmC,GAAI,KACJsmC,QAAS,SACTC,KAAM,SACN7vY,UAAW,SACX8vY,OAAQ,SACRC,SAAU,SACVC,QAAS,SACTC,IAAK,SACLC,YAAa,SACbC,QAAS,SACT5vY,QAAS,SACTC,KAAM,OACN4vY,IAAK,KACLC,MAAO,OACPC,QAAS,SACTC,KAAM,SACNC,KAAM,OACNC,KAAM,SACNC,OAAQ,SACRC,QAAS,SACTC,SAAU,SACVC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,MAAO,SACPC,MAAO,SACPC,IAAK,OACLC,OAAQ,SACRC,OAAQ,SACRC,SAAU,OACVC,OAAQ,SACRC,OAAQ,SACRC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,IAAK,SACLC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,IAAK,SACLC,QAAS,SACTC,OAAQ,SACRC,QAAS,SACTC,MAAO,SACPC,KAAM,SACNzvY,MAAO,SACP0vY,OAAQ,SACRC,UAAW,SACXC,QAAS,SACTC,WAAY,SACZC,IAAK,SACLC,KAAM,SACNC,MAAO,SACPC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,QAAS,SACTC,IAAK,SACLvvY,KAAM,OACNwvY,QAAS,SACTC,IAAK,SACLC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,IAAK,KACLC,MAAO,SACPC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,UAAW,OACXC,IAAK,SACLC,SAAU,SACVC,WAAY,SACZC,QAAS,SACTC,SAAU,SACVC,QAAS,SACTC,WAAY,SACZtvY,KAAM,KACNuvY,OAAQ,SACRC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,UAAW,SACXC,QAAS,SACTrvY,KAAM,SACNsvY,IAAK,SACLpvY,KAAM,SACNqvY,QAAS,SACTC,MAAO,SACPC,YAAa,SACbnyD,GAAI,SACJoyD,SAAU,SACVC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,MAAO,SACPlvY,OAAQ,SACRmvY,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,KAAM,SACNjvY,KAAM,SACNkvY,SAAU,OACVC,OAAQ,SACRhvY,IAAK,SACLivY,IAAK,OACLC,MAAO,SACP/uY,OAAQ,SACRygW,GAAI,SACJuuC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,UAAW,SACXC,GAAI,SACJC,MAAO,UAmBR,SAASC,GAAUxkiB,GACbq8hB,KACJA,GAnBF,WACC,IAGI9umB,EAAGw+E,EAAG5yB,EAAGtY,EAAIgqiB,EAHX45B,EAAW,GACXl8mB,EAAOD,OAAOC,KAAK6wC,IACnBsrkB,EAAQp8mB,OAAOC,KAAK+zmB,IAE1B,IAAK/umB,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAAK,CAEjC,IADAszC,EAAKgqiB,EAAKtilB,EAAKgF,GACVw+E,EAAI,EAAGA,EAAI24hB,EAAM5inB,OAAQiqF,IAC7B5yB,EAAIurjB,EAAM34hB,GACV8+f,EAAKA,EAAG3giB,QAAQiP,EAAGmjjB,GAAMnjjB,IAE1BA,EAAI1hB,SAAS2B,GAAMyH,GAAK,IACxB4jkB,EAAS55B,GAAM,CAAC1xhB,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,GAEhD,OAAOsrjB,EAKIE,GACVtI,GAAQuI,YAAc,CAAC,EAAG,EAAG,EAAG,IAEjC,IAAM39jB,EAAIo1jB,GAAQr8hB,EAAIv7C,eACtB,OAAOwiB,GAAK,CACX8gB,EAAG9gB,EAAE,GACL+gB,EAAG/gB,EAAE,GACLC,EAAGD,EAAE,GACLA,EAAgB,IAAbA,EAAEnlD,OAAemlD,EAAE,GAAK,KAG7B,SAAS49jB,GAAOx8jB,EAAG96C,EAAGqsU,GACrB,GAAIvxR,EAAG,CACN,IAAI6nG,EAAM6rd,GAAQ1zjB,GAClB6nG,EAAI3iJ,GAAK4Z,KAAKC,IAAI,EAAGD,KAAKG,IAAI4oI,EAAI3iJ,GAAK2iJ,EAAI3iJ,GAAKqsU,EAAa,IAANrsU,EAAU,IAAM,IACvE2iJ,EAAM+rd,GAAQ/rd,GACd7nG,EAAE0f,EAAImoF,EAAI,GACV7nG,EAAE2f,EAAIkoF,EAAI,GACV7nG,EAAEnB,EAAIgpG,EAAI,IAGZ,SAASpzE,GAAMz0B,EAAGu2B,GACjB,OAAOv2B,EAAI//C,OAAOw4C,OAAO89B,GAAS,GAAIv2B,GAAKA,EAE5C,SAASy8jB,GAAW9qlB,GACnB,IAAIquB,EAAI,CAAC0f,EAAG,EAAGC,EAAG,EAAG9gB,EAAG,EAAGD,EAAG,KAY9B,OAXIlgD,MAAMi2E,QAAQhjD,GACbA,EAAMl4B,QAAU,IACnBumD,EAAI,CAAC0f,EAAG/tC,EAAM,GAAIguC,EAAGhuC,EAAM,GAAIktB,EAAGltB,EAAM,GAAIitB,EAAG,KAC3CjtB,EAAMl4B,OAAS,IAClBumD,EAAEpB,EAAIs0jB,GAAIvhlB,EAAM,OAIlBquB,EAAIy0B,GAAM9iD,EAAO,CAAC+tC,EAAG,EAAGC,EAAG,EAAG9gB,EAAG,EAAGD,EAAG,KACrCA,EAAIs0jB,GAAIlzjB,EAAEpB,GAENoB,EAER,SAAS08jB,GAAc/kiB,GACtB,MAAsB,MAAlBA,EAAI0G,OAAO,GA5XhB,SAAkB1G,GACjB,IAEIjY,EAAGC,EAAG9gB,EAFJ+R,EAAIyijB,GAAO3rmB,KAAKiwE,GAClB/4B,EAAI,IAER,GAAKgS,EAAL,CAGA,GAAIA,EAAE,KAAO8O,EAAG,CACf,IAAM1f,GAAK4Q,EAAE,GACbhS,EAAI,KAAOgS,EAAE,GAAKqijB,GAAIjzjB,GAAS,IAAJA,GAQ5B,OANA0f,GAAK9O,EAAE,GACP+O,GAAK/O,EAAE,GACP/R,GAAK+R,EAAE,GAIA,CACN8O,EAJDA,EAAI,KAAO9O,EAAE,GAAKqijB,GAAIvziB,GAAKA,GAK1BC,EAJDA,EAAI,KAAO/O,EAAE,GAAKqijB,GAAItziB,GAAKA,GAK1B9gB,EAJDA,EAAI,KAAO+R,EAAE,GAAKqijB,GAAIp0jB,GAAKA,GAK1BD,EAAGA,IAwWI+9jB,CAAShliB,GAEVk8hB,GAASl8hB,OAEXi2J,GAAAA,WACL,WAAYj8M,GACX,IADkB,eACdA,aAAiBi8M,EACpB,OAAOj8M,EAER,IACIquB,EADEljC,SAAc6U,EAEP,WAAT7U,EACHkjC,EAAIy8jB,GAAW9qlB,GACI,WAAT7U,IACVkjC,EAxbH,SAAkB23B,GACjB,IACIgtD,EADAh0F,EAAMgnC,EAAIl+E,OAmBd,MAjBe,MAAXk+E,EAAI,KACK,IAARhnC,GAAqB,IAARA,EAChBg0F,EAAM,CACLjlE,EAAG,IAAoB,GAAdrgE,GAAIs4E,EAAI,IACjBhY,EAAG,IAAoB,GAAdtgE,GAAIs4E,EAAI,IACjB94B,EAAG,IAAoB,GAAdx/C,GAAIs4E,EAAI,IACjB/4B,EAAW,IAARjO,EAA0B,GAAdtxC,GAAIs4E,EAAI,IAAW,KAEjB,IAARhnC,GAAqB,IAARA,IACvBg0F,EAAM,CACLjlE,EAAGrgE,GAAIs4E,EAAI,KAAO,EAAIt4E,GAAIs4E,EAAI,IAC9BhY,EAAGtgE,GAAIs4E,EAAI,KAAO,EAAIt4E,GAAIs4E,EAAI,IAC9B94B,EAAGx/C,GAAIs4E,EAAI,KAAO,EAAIt4E,GAAIs4E,EAAI,IAC9B/4B,EAAW,IAARjO,EAAatxC,GAAIs4E,EAAI,KAAO,EAAIt4E,GAAIs4E,EAAI,IAAO,OAI9CgtD,EAoaDi4e,CAASjrlB,IAAUwqlB,GAAUxqlB,IAAU+qlB,GAAc/qlB,IAE1Dx4B,KAAK0jnB,KAAO78jB,EACZ7mD,KAAK2jnB,SAAW98jB,oCAEjB,WACC,OAAO7mD,KAAK2jnB,wBAEb,WACC,IAAI98jB,EAAIy0B,GAAMt7E,KAAK0jnB,MAInB,OAHI78jB,IACHA,EAAEpB,EAAIu0jB,GAAInzjB,EAAEpB,IAENoB,OAER,SAAQ6mB,GACP1tE,KAAK0jnB,KAAOJ,GAAW51iB,4BAExB,WACC,OAAO1tE,KAAK2jnB,QAtYK98jB,EAsYc7mD,KAAK0jnB,QApYpC78jB,EAAEpB,EAAI,IAAN,eACWoB,EAAE0f,EADb,aACmB1f,EAAE2f,EADrB,aAC2B3f,EAAEnB,EAD7B,aACmCs0jB,GAAInzjB,EAAEpB,GADzC,mBAEUoB,EAAE0f,EAFZ,aAEkB1f,EAAE2f,EAFpB,aAE0B3f,EAAEnB,EAF5B,MAoY4C1lD,KAAK0jnB,KAtYnD,IAAmB78jB,2BAwYlB,WACC,OAAO7mD,KAAK2jnB,OAAShK,GAAU35mB,KAAK0jnB,MAAQ1jnB,KAAK0jnB,8BAElD,WACC,OAAO1jnB,KAAK2jnB,OAlSd,SAAmB98jB,GAClB,GAAKA,EAAL,CAGA,IAAMpB,EAAI80jB,GAAQ1zjB,GACZ2iG,EAAI/jG,EAAE,GACN54B,EAAIotlB,GAAIx0jB,EAAE,IACVyqC,EAAI+phB,GAAIx0jB,EAAE,IAChB,OAAOoB,EAAEpB,EAAI,IAAN,eACI+jG,EADJ,aACU38H,EADV,cACiBqjE,EADjB,cACwB8phB,GAAInzjB,EAAEpB,GAD9B,mBAEG+jG,EAFH,aAES38H,EAFT,cAEgBqjE,EAFhB,OA0Re0zhB,CAAU5jnB,KAAK0jnB,MAAQ1jnB,KAAK0jnB,wBAElD,SAAItqkB,EAAO9E,GACV,IAAM29hB,EAAKjykB,KACX,GAAIo5C,EAAO,CACV,IAEI0/d,EAFE95U,EAAKizY,EAAG59V,IACRw6Q,EAAKz1c,EAAMi7L,IAEXj9I,EAAI9iD,IAAWwke,EAAK,GAAMxke,EAC1Bm1G,EAAI,EAAIryD,EAAI,EACZ3xC,EAAIu5I,EAAGv5I,EAAIopc,EAAGppc,EACd4iI,IAAO5+B,EAAIhkG,KAAO,EAAIgkG,GAAKA,EAAIhkG,IAAM,EAAIgkG,EAAIhkG,IAAM,GAAK,EAC9Dqzd,EAAK,EAAIzwV,EACT2W,EAAGz4H,EAAI,IAAO8hH,EAAK2W,EAAGz4H,EAAIuyc,EAAKjqB,EAAGtob,EAAI,GACtCy4H,EAAGx4H,EAAI,IAAO6hH,EAAK2W,EAAGx4H,EAAIsyc,EAAKjqB,EAAGrob,EAAI,GACtCw4H,EAAGt5I,EAAI,IAAO2iI,EAAK2W,EAAGt5I,EAAIozd,EAAKjqB,EAAGnpc,EAAI,GACtCs5I,EAAGv5I,EAAI2xC,EAAI4nG,EAAGv5I,GAAK,EAAI2xC,GAAKy3Z,EAAGppc,EAC/BwshB,EAAG59V,IAAMr1C,EAEV,OAAOizY,uBAER,WACC,OAAO,IAAIx9V,EAAMz0O,KAAKq0O,0BAEvB,SAAM5uL,GAEL,OADAzlD,KAAK0jnB,KAAKj+jB,EAAIs0jB,GAAIt0jB,GACXzlD,4BAER,SAAQo4U,GAGP,OAFYp4U,KAAK0jnB,KACbj+jB,GAAK,EAAI2yR,EACNp4U,8BAER,WACC,IAAMq0O,EAAMr0O,KAAK0jnB,KACX3/lB,EAAMyJ,GAAc,GAAR6mN,EAAI9tK,EAAkB,IAAR8tK,EAAI7tK,EAAmB,IAAR6tK,EAAI3uL,GAEnD,OADA2uL,EAAI9tK,EAAI8tK,EAAI7tK,EAAI6tK,EAAI3uL,EAAI3hC,EACjB/jB,4BAER,SAAQo4U,GAGP,OAFYp4U,KAAK0jnB,KACbj+jB,GAAK,EAAI2yR,EACNp4U,2BAER,WACC,IAAM6mD,EAAI7mD,KAAK0jnB,KAIf,OAHA78jB,EAAE0f,EAAI,IAAM1f,EAAE0f,EACd1f,EAAE2f,EAAI,IAAM3f,EAAE2f,EACd3f,EAAEnB,EAAI,IAAMmB,EAAEnB,EACP1lD,4BAER,SAAQo4U,GAEP,OADAirS,GAAOrjnB,KAAK0jnB,KAAM,EAAGtrS,GACdp4U,2BAER,SAAOo4U,GAEN,OADAirS,GAAOrjnB,KAAK0jnB,KAAM,GAAItrS,GACfp4U,6BAER,SAASo4U,GAER,OADAirS,GAAOrjnB,KAAK0jnB,KAAM,EAAGtrS,GACdp4U,+BAER,SAAWo4U,GAEV,OADAirS,GAAOrjnB,KAAK0jnB,KAAM,GAAItrS,GACfp4U,2BAER,SAAO6jnB,GAEN,OA/WF,SAAgBh9jB,EAAGg9jB,GAClB,IAAIr6d,EAAI+wd,GAAQ1zjB,GAChB2iG,EAAE,GAAK6rN,GAAI7rN,EAAE,GAAKq6d,GAClBr6d,EAAIixd,GAAQjxd,GACZ3iG,EAAE0f,EAAIijF,EAAE,GACR3iG,EAAE2f,EAAIgjF,EAAE,GACR3iG,EAAEnB,EAAI8jG,EAAE,GAwWPg0J,CAAOx9S,KAAK0jnB,KAAMG,GACX7jnB,WAxGHy0O,GA2GN,SAASqvY,GAAUtrlB,GAClB,OAAO,IAAIi8M,GAAMj8M,GAGlB,IAAMurlB,GAAsB,SAACninB,GAAD,OAAWA,aAAiBoinB,gBAAkBpinB,aAAiBqinB,eAC3F,SAAS7qkB,GAAMx3C,GACb,OAAOminB,GAAoBninB,GAASA,EAAQkinB,GAAUlinB,GAExD,SAASsinB,GAActinB,GACrB,OAAOminB,GAAoBninB,GACvBA,EACAkinB,GAAUlinB,GAAOuinB,SAAS,IAAK9tY,OAAO,IAAKsjY,YAGjD,IAAMyK,GAAYt9mB,OAAOw4B,OAAO,MAC1B+klB,GAAcv9mB,OAAOw4B,OAAO,MAClC,SAASgllB,GAAWruiB,EAAMjvE,GACxB,IAAKA,EACH,OAAOivE,EAGT,IADA,IAAMlvE,EAAOC,EAAIyG,MAAM,KACd1B,EAAI,EAAG2rD,EAAI3wD,EAAKzG,OAAQyL,EAAI2rD,IAAK3rD,EAAG,CAC3C,IAAM4rD,EAAI5wD,EAAKgF,GACfkqE,EAAOA,EAAKte,KAAOse,EAAKte,GAAK7wD,OAAOw4B,OAAO,OAE7C,OAAO22C,EAET,SAASjR,GAAIl0D,EAAMg1J,EAAOlsJ,GACxB,MAAqB,kBAAVksJ,EACF7I,EAAMqnd,GAAWxzmB,EAAMg1J,GAAQlsJ,GAEjCqjJ,EAAMqnd,GAAWxzmB,EAAM,IAAKg1J,OAE/By+c,GAAAA,WACJ,WAAYC,IAAc,eACxBxknB,KAAKskO,eAAYlsN,EACjBpY,KAAKqjC,gBAAkB,kBACvBrjC,KAAKi5C,YAAc,kBACnBj5C,KAAKo5C,MAAQ,OACbp5C,KAAKyknB,SAAW,GAChBzknB,KAAK4iI,iBAAmB,SAACjoH,GAAD,OAAaA,EAAQ6ogB,MAAM7kZ,SAAS+lf,uBAC5D1knB,KAAK6qD,SAAW,GAChB7qD,KAAK8qC,OAAS,CACZ,YACA,WACA,QACA,aACA,aAEF9qC,KAAKitM,KAAO,CACVz3H,OAAQ,qDACRh9D,KAAM,GACNyF,MAAO,SACP21B,WAAY,IACZU,OAAQ,MAEVt0C,KAAKw4S,MAAQ,GACbx4S,KAAK2knB,qBAAuB,SAACv1a,EAAKh1L,GAAN,OAAkB8pmB,GAAc9pmB,EAAQipB,kBACpErjC,KAAK4knB,iBAAmB,SAACx1a,EAAKh1L,GAAN,OAAkB8pmB,GAAc9pmB,EAAQ6+B,cAChEj5C,KAAK6knB,WAAa,SAACz1a,EAAKh1L,GAAN,OAAkB8pmB,GAAc9pmB,EAAQg/B,QAC1Dp5C,KAAK8knB,UAAY,IACjB9knB,KAAK+knB,YAAc,CACjB1gjB,KAAM,UACN2gjB,WAAW,GAEbhlnB,KAAKilnB,qBAAsB,EAC3BjlnB,KAAKklnB,QAAU,KACfllnB,KAAKgnE,QAAU,KACfhnE,KAAKmlnB,SAAU,EACfnlnB,KAAKqhgB,QAAU,GACfrhgB,KAAKolnB,YAAa,EAClBplnB,KAAKshO,WAAQlpN,EACbpY,KAAKqlnB,OAAS,GACdrlnB,KAAKslnB,UAAW,EAChBtlnB,KAAKulnB,yBAA0B,EAC/BvlnB,KAAKwlnB,SAAShB,qCAEhB,SAAI1+c,EAAOlsJ,GACT,OAAOorD,GAAIhlE,KAAM8lK,EAAOlsJ,sBAE1B,SAAIksJ,GACF,OAAOw+c,GAAWtknB,KAAM8lK,2BAE1B,SAASA,EAAOlsJ,GACd,OAAOorD,GAAIq/iB,GAAav+c,EAAOlsJ,2BAEjC,SAASksJ,EAAOlsJ,GACd,OAAOorD,GAAIo/iB,GAAWt+c,EAAOlsJ,wBAE/B,SAAMksJ,EAAOt4J,EAAMi4mB,EAAaC,GAAY,MACpCC,EAAcrB,GAAWtknB,KAAM8lK,GAC/B8/c,EAAoBtB,GAAWtknB,KAAMylnB,GACrCt7kB,EAAc,IAAM38B,EAC1B1G,OAAOosmB,iBAAiByS,GAAxB,eACGx7kB,EAAc,CACbvoC,MAAO+jnB,EAAYn4mB,GACnB6nH,UAAU,KAHd,SAKG7nH,EAAO,CACNy3D,YAAY,EACZplD,IAFM,WAGJ,IAAMgmmB,EAAQ7lnB,KAAKmqC,GACbvjC,EAASg/mB,EAAkBF,GACjC,OAAIv7Z,EAAS07Z,GACJ/+mB,OAAOw4C,OAAO,GAAI14C,EAAQi/mB,GAE5BlS,EAAekS,EAAOj/mB,IAE/Bo+D,IAVM,SAUFpjE,GACF5B,KAAKmqC,GAAevoC,KAhB1B,UA5DE2inB,GAkFFz9Z,GAAW,IAAIy9Z,GAAS,CAC1BuB,YAAa,SAACt4mB,GAAD,OAAWA,EAAKkuH,WAAW,OACxCqqf,WAAY,SAACv4mB,GAAD,MAAmB,WAATA,GACtBgrS,MAAO,CACLwtU,UAAW,eAEbjB,YAAa,CACXe,aAAa,EACbC,YAAY,KAahB,SAASE,GAAa72a,EAAKvhM,EAAMirjB,EAAIotD,EAAS73gB,GAC5C,IAAIsja,EAAY9jgB,EAAKwgG,GAQrB,OAPKsja,IACHA,EAAY9jgB,EAAKwgG,GAAU+gG,EAAI+2a,YAAY93gB,GAAQ/8F,MACnDwnjB,EAAGl4jB,KAAKytG,IAENsja,EAAYu0G,IACdA,EAAUv0G,GAELu0G,EAET,SAASE,GAAah3a,EAAKnC,EAAMo5a,EAAe1mkB,GAE9C,IAAI9xC,GADJ8xC,EAAQA,GAAS,IACA9xC,KAAO8xC,EAAM9xC,MAAQ,GAClCirjB,EAAKn5gB,EAAM2mkB,eAAiB3mkB,EAAM2mkB,gBAAkB,GACpD3mkB,EAAMstJ,OAASA,IACjBp/L,EAAO8xC,EAAM9xC,KAAO,GACpBirjB,EAAKn5gB,EAAM2mkB,eAAiB,GAC5B3mkB,EAAMstJ,KAAOA,GAEfmC,EAAI9wK,OACJ8wK,EAAInC,KAAOA,EACX,IAEIlhM,EAAGw+E,EAAGg8hB,EAAMn6Z,EAAOo6Z,EAFnBN,EAAU,EACRjS,EAAOoS,EAAc/lnB,OAE3B,IAAKyL,EAAI,EAAGA,EAAIkomB,EAAMlomB,IAEpB,QAAcqM,KADdg0M,EAAQi6Z,EAAct6mB,KACe,OAAVqgN,IAAqC,IAAnB5wI,EAAQ4wI,GACnD85Z,EAAUD,GAAa72a,EAAKvhM,EAAMirjB,EAAIotD,EAAS95Z,QAC1C,GAAI5wI,EAAQ4wI,GACjB,IAAK7hI,EAAI,EAAGg8hB,EAAOn6Z,EAAM9rN,OAAQiqF,EAAIg8hB,EAAMh8hB,SAErBnyE,KADpBoumB,EAAcp6Z,EAAM7hI,KAC6B,OAAhBi8hB,GAAyBhriB,EAAQgriB,KAChEN,EAAUD,GAAa72a,EAAKvhM,EAAMirjB,EAAIotD,EAASM,IAKvDp3a,EAAIq3a,UACJ,IAAMC,EAAQ5tD,EAAGx4jB,OAAS,EAC1B,GAAIomnB,EAAQL,EAAc/lnB,OAAQ,CAChC,IAAKyL,EAAI,EAAGA,EAAI26mB,EAAO36mB,WACd8B,EAAKirjB,EAAG/sjB,IAEjB+sjB,EAAGvpjB,OAAO,EAAGm3mB,GAEf,OAAOR,EAET,SAASS,GAAYnjG,EAAOojG,EAAOt1mB,GACjC,IAAMsxH,EAAmB4gZ,EAAMqjG,wBACzBC,EAAsB,IAAVx1mB,EAAcqU,KAAKC,IAAItU,EAAQ,EAAG,IAAO,EAC3D,OAAOqU,KAAK6H,OAAOo5lB,EAAQE,GAAalkf,GAAoBA,EAAmBkkf,EAEjF,SAASC,GAAYr4a,EAAQU,IAC3BA,EAAMA,GAAOV,EAAO/yI,WAAW,OAC3Br9B,OACJ8wK,EAAI43a,iBACJ53a,EAAIC,UAAU,EAAG,EAAGX,EAAOp9L,MAAOo9L,EAAOn9L,QACzC69L,EAAIq3a,UAEN,SAASQ,GAAU73a,EAAKh1L,EAASpJ,EAAG2M,GAClC,IAAIgG,EAAMujmB,EAASC,EAAS3umB,EAAMsogB,EAC5B7igB,EAAQ7D,EAAQgtmB,WAChBhsU,EAAWhhS,EAAQghS,SACnBu5N,EAASv6f,EAAQu6f,OACnB0yG,GAAOjsU,GAAY,GAAKm6T,EAC5B,GAAIt3lB,GAA0B,kBAAVA,IAEL,+BADb0F,EAAO1F,EAAMxP,aACwC,+BAATkV,GAM1C,OALAyrL,EAAI9wK,OACJ8wK,EAAItsE,UAAU9xH,EAAG2M,GACjByxL,EAAIouG,OAAO6pU,GACXj4a,EAAIk4a,UAAUrpmB,GAAQA,EAAM3M,MAAQ,GAAI2M,EAAM1M,OAAS,EAAG0M,EAAM3M,MAAO2M,EAAM1M,aAC7E69L,EAAIq3a,UAIR,KAAIj9kB,MAAMmre,IAAWA,GAAU,GAA/B,CAIA,OADAvlU,EAAIy3Z,YACI5olB,GACR,QACEmxL,EAAIkzT,IAAItxf,EAAG2M,EAAGg3f,EAAQ,EAAGwgG,GACzB/la,EAAIm4a,YACJ,MACF,IAAK,WACHn4a,EAAI14C,OAAO1lJ,EAAI2U,KAAKixf,IAAIywG,GAAO1yG,EAAQh3f,EAAIgI,KAAKivP,IAAIyyW,GAAO1yG,GAC3D0yG,GAAO3R,EACPtma,EAAI03Z,OAAO91lB,EAAI2U,KAAKixf,IAAIywG,GAAO1yG,EAAQh3f,EAAIgI,KAAKivP,IAAIyyW,GAAO1yG,GAC3D0yG,GAAO3R,EACPtma,EAAI03Z,OAAO91lB,EAAI2U,KAAKixf,IAAIywG,GAAO1yG,EAAQh3f,EAAIgI,KAAKivP,IAAIyyW,GAAO1yG,GAC3DvlU,EAAIm4a,YACJ,MACF,IAAK,cAEH/umB,EAAOm8f,GADPmM,EAAwB,KAATnM,GAEfuyG,EAAUvhmB,KAAKivP,IAAIyyW,EAAM5R,GAAcj9lB,EACvC2umB,EAAUxhmB,KAAKixf,IAAIywG,EAAM5R,GAAcj9lB,EACvC42L,EAAIkzT,IAAItxf,EAAIk2mB,EAASvpmB,EAAIwpmB,EAASrmG,EAAcumG,EAAM1yW,EAAI0yW,EAAM7R,GAChEpma,EAAIkzT,IAAItxf,EAAIm2mB,EAASxpmB,EAAIupmB,EAASpmG,EAAcumG,EAAM7R,EAAS6R,GAC/Dj4a,EAAIkzT,IAAItxf,EAAIk2mB,EAASvpmB,EAAIwpmB,EAASrmG,EAAcumG,EAAKA,EAAM7R,GAC3Dpma,EAAIkzT,IAAItxf,EAAIm2mB,EAASxpmB,EAAIupmB,EAASpmG,EAAcumG,EAAM7R,EAAS6R,EAAM1yW,GACrEvlE,EAAIm4a,YACJ,MACF,IAAK,OACH,IAAKnsU,EAAU,CACb5iS,EAAOmN,KAAK6hmB,QAAU7yG,EACtBvlU,EAAIn0L,KAAKjK,EAAIwH,EAAMmF,EAAInF,EAAM,EAAIA,EAAM,EAAIA,GAC3C,MAEF6umB,GAAO5R,EACT,IAAK,UACHyR,EAAUvhmB,KAAKivP,IAAIyyW,GAAO1yG,EAC1BwyG,EAAUxhmB,KAAKixf,IAAIywG,GAAO1yG,EAC1BvlU,EAAI14C,OAAO1lJ,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B93a,EAAI03Z,OAAO91lB,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B93a,EAAIm4a,YACJ,MACF,IAAK,WACHF,GAAO5R,EACT,IAAK,QACHyR,EAAUvhmB,KAAKivP,IAAIyyW,GAAO1yG,EAC1BwyG,EAAUxhmB,KAAKixf,IAAIywG,GAAO1yG,EAC1BvlU,EAAI14C,OAAO1lJ,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI14C,OAAO1lJ,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B93a,EAAI03Z,OAAO91lB,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B,MACF,IAAK,OACHA,EAAUvhmB,KAAKivP,IAAIyyW,GAAO1yG,EAC1BwyG,EAAUxhmB,KAAKixf,IAAIywG,GAAO1yG,EAC1BvlU,EAAI14C,OAAO1lJ,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI14C,OAAO1lJ,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B93a,EAAI03Z,OAAO91lB,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5BG,GAAO5R,EACPyR,EAAUvhmB,KAAKivP,IAAIyyW,GAAO1yG,EAC1BwyG,EAAUxhmB,KAAKixf,IAAIywG,GAAO1yG,EAC1BvlU,EAAI14C,OAAO1lJ,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI14C,OAAO1lJ,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B93a,EAAI03Z,OAAO91lB,EAAIm2mB,EAASxpmB,EAAIupmB,GAC5B,MACF,IAAK,OACHA,EAAUvhmB,KAAKivP,IAAIyyW,GAAO1yG,EAC1BwyG,EAAUxhmB,KAAKixf,IAAIywG,GAAO1yG,EAC1BvlU,EAAI14C,OAAO1lJ,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B/3a,EAAI03Z,OAAO91lB,EAAIk2mB,EAASvpmB,EAAIwpmB,GAC5B,MACF,IAAK,OACH/3a,EAAI14C,OAAO1lJ,EAAG2M,GACdyxL,EAAI03Z,OAAO91lB,EAAI2U,KAAKivP,IAAIyyW,GAAO1yG,EAAQh3f,EAAIgI,KAAKixf,IAAIywG,GAAO1yG,GAG7DvlU,EAAIlzE,OACA9hH,EAAQ0+B,YAAc,GACxBs2J,EAAIp1J,UAGR,SAASytkB,GAAezgd,EAAOh5H,EAAMs2J,GAEnC,OADAA,EAASA,GAAU,IACXt2J,GAASg5H,GAASA,EAAMh2J,EAAIg9B,EAAKt1B,KAAO4rL,GAAUt9B,EAAMh2J,EAAIg9B,EAAKjwB,MAAQumL,GACjFt9B,EAAMrpJ,EAAIqwB,EAAKl1B,IAAMwrL,GAAUt9B,EAAMrpJ,EAAIqwB,EAAKhwB,OAASsmL,EAEzD,SAASojb,GAASt4a,EAAKphK,GACrBohK,EAAI9wK,OACJ8wK,EAAIy3Z,YACJz3Z,EAAIn0L,KAAK+yB,EAAKt1B,KAAMs1B,EAAKl1B,IAAKk1B,EAAKjwB,MAAQiwB,EAAKt1B,KAAMs1B,EAAKhwB,OAASgwB,EAAKl1B,KACzEs2L,EAAIke,OAEN,SAASq6Z,GAAWv4a,GAClBA,EAAIq3a,UAEN,SAASmB,GAAex4a,EAAK9uF,EAAU15G,EAAQ2gO,EAAMljK,GACnD,IAAKi8C,EACH,OAAO8uF,EAAI03Z,OAAOlgmB,EAAOoK,EAAGpK,EAAO+W,GAErC,GAAa,WAAT0mD,EAAmB,CACrB,IAAMwjjB,GAAYvngB,EAAStvG,EAAIpK,EAAOoK,GAAK,EAC3Co+L,EAAI03Z,OAAO+gB,EAAUvngB,EAAS3iG,GAC9ByxL,EAAI03Z,OAAO+gB,EAAUjhnB,EAAO+W,OACV,UAAT0mD,MAAuBkjK,EAChCn4B,EAAI03Z,OAAOxmf,EAAStvG,EAAGpK,EAAO+W,GAE9ByxL,EAAI03Z,OAAOlgmB,EAAOoK,EAAGsvG,EAAS3iG,GAEhCyxL,EAAI03Z,OAAOlgmB,EAAOoK,EAAGpK,EAAO+W,GAE9B,SAASmqmB,GAAe14a,EAAK9uF,EAAU15G,EAAQ2gO,GAC7C,IAAKjnH,EACH,OAAO8uF,EAAI03Z,OAAOlgmB,EAAOoK,EAAGpK,EAAO+W,GAErCyxL,EAAI24a,cACFxgZ,EAAOjnH,EAAS0ngB,KAAO1ngB,EAAS2ngB,KAChC1gZ,EAAOjnH,EAAS4ngB,KAAO5ngB,EAAS6ngB,KAChC5gZ,EAAO3gO,EAAOqhnB,KAAOrhnB,EAAOohnB,KAC5BzgZ,EAAO3gO,EAAOuhnB,KAAOvhnB,EAAOshnB,KAC5BthnB,EAAOoK,EACPpK,EAAO+W,GAEX,SAASs/T,GAAW7tI,EAAKzsM,EAAMqO,EAAG2M,EAAGsvL,GAAiB,IAGhDlhM,EAAGmvC,EAHkC8tE,EAAW,uDAAJ,GAC1C/4D,EAAQurB,EAAQ74E,GAAQA,EAAO,CAACA,GAChCq3C,EAASgvE,EAAK/uE,YAAc,GAA0B,KAArB+uE,EAAKo/f,YAK5C,IAHAh5a,EAAI9wK,OACJ8wK,EAAInC,KAAOA,EAAK5+F,OAChBg6gB,GAAcj5a,EAAKpmF,GACdj9G,EAAI,EAAGA,EAAIkkD,EAAM3vD,SAAUyL,EAC9BmvC,EAAO+U,EAAMlkD,GACTiuC,IACEgvE,EAAKo/f,cACPh5a,EAAI23Z,YAAc/9e,EAAKo/f,aAEpBv0F,EAAc7qa,EAAK/uE,eACtBm1J,EAAIoyU,UAAYx4Z,EAAK/uE,aAEvBm1J,EAAIk5a,WAAWptkB,EAAMlqC,EAAG2M,EAAGqrG,EAAKhqG,WAElCowL,EAAIm5a,SAASrtkB,EAAMlqC,EAAG2M,EAAGqrG,EAAKhqG,UAC9BwpmB,GAAap5a,EAAKp+L,EAAG2M,EAAGu9B,EAAM8tE,GAC9BrrG,GAAKsvL,EAAKr5J,WAEZw7J,EAAIq3a,UAEN,SAAS4B,GAAcj5a,EAAKpmF,GACtBA,EAAKsyL,aACPlsG,EAAItsE,UAAU9Z,EAAKsyL,YAAY,GAAItyL,EAAKsyL,YAAY,IAEjDu4O,EAAc7qa,EAAKoyL,WACtBhsG,EAAIouG,OAAOx0L,EAAKoyL,UAEdpyL,EAAK5vE,QACPg2J,EAAIS,UAAY7mF,EAAK5vE,OAEnB4vE,EAAKy/f,YACPr5a,EAAIq5a,UAAYz/f,EAAKy/f,WAEnBz/f,EAAK0/f,eACPt5a,EAAIs5a,aAAe1/f,EAAK0/f,cAG5B,SAASF,GAAap5a,EAAKp+L,EAAG2M,EAAGu9B,EAAM8tE,GACrC,GAAIA,EAAK2/f,eAAiB3/f,EAAKv5F,UAAW,CACxC,IAAMm5lB,EAAUx5a,EAAI+2a,YAAYjrkB,GAC1BxiC,EAAO1H,EAAI43mB,EAAQC,sBACnB9qmB,EAAQ/M,EAAI43mB,EAAQE,uBACpBhwmB,EAAM6E,EAAIirmB,EAAQG,wBAClB/qmB,EAASL,EAAIirmB,EAAQI,yBACrBC,EAAcjggB,EAAK2/f,eAAiB7vmB,EAAMkF,GAAU,EAAIA,EAC9DoxL,EAAI23Z,YAAc33Z,EAAIS,UACtBT,EAAIy3Z,YACJz3Z,EAAIoyU,UAAYx4Z,EAAKkggB,iBAAmB,EACxC95a,EAAI14C,OAAOh+I,EAAMuwmB,GACjB75a,EAAI03Z,OAAO/olB,EAAOkrmB,GAClB75a,EAAIp1J,UAGR,SAASmvkB,GAAmB/5a,EAAKn0L,GAC/B,IAAOjK,EAAsBiK,EAAtBjK,EAAG2M,EAAmB1C,EAAnB0C,EAAG8rI,EAAgBxuI,EAAhBwuI,EAAGD,EAAavuI,EAAbuuI,EAAGmrX,EAAU15f,EAAV05f,OACnBvlU,EAAIkzT,IAAItxf,EAAI2jgB,EAAOy0G,QAASzrmB,EAAIg3f,EAAOy0G,QAASz0G,EAAOy0G,SAAU5T,EAAS7gW,GAAI,GAC9EvlE,EAAI03Z,OAAO91lB,EAAG2M,EAAI6rI,EAAImrX,EAAO00G,YAC7Bj6a,EAAIkzT,IAAItxf,EAAI2jgB,EAAO00G,WAAY1rmB,EAAI6rI,EAAImrX,EAAO00G,WAAY10G,EAAO00G,WAAY10W,EAAI6gW,GAAS,GAC1Fpma,EAAI03Z,OAAO91lB,EAAIy4I,EAAIkrX,EAAO20G,YAAa3rmB,EAAI6rI,GAC3C4lD,EAAIkzT,IAAItxf,EAAIy4I,EAAIkrX,EAAO20G,YAAa3rmB,EAAI6rI,EAAImrX,EAAO20G,YAAa30G,EAAO20G,YAAa9T,EAAS,GAAG,GAChGpma,EAAI03Z,OAAO91lB,EAAIy4I,EAAG9rI,EAAIg3f,EAAO40G,UAC7Bn6a,EAAIkzT,IAAItxf,EAAIy4I,EAAIkrX,EAAO40G,SAAU5rmB,EAAIg3f,EAAO40G,SAAU50G,EAAO40G,SAAU,GAAI/T,GAAS,GACpFpma,EAAI03Z,OAAO91lB,EAAI2jgB,EAAOy0G,QAASzrmB,GAGjC,IAAM6rmB,GAAc,IAAIxgkB,OAAO,wCACzBygkB,GAAa,IAAIzgkB,OAAO,yEAC9B,SAAS0gkB,GAAa9nnB,EAAO4W,GAC3B,IAAMugF,GAAW,GAAKn3F,GAAO+f,MAAM6nmB,IACnC,IAAKzwhB,GAA0B,WAAfA,EAAQ,GACtB,OAAc,IAAPvgF,EAGT,OADA5W,GAASm3F,EAAQ,GACTA,EAAQ,IAChB,IAAK,KACH,OAAOn3F,EACT,IAAK,IACHA,GAAS,IAGX,OAAO4W,EAAO5W,EAGhB,SAAS+nnB,GAAkB/nnB,EAAO49G,GAChC,IADuC,EACjCgsB,EAAM,GACNk6b,EAAWv7W,EAAS3qG,GACpBz4G,EAAO2+jB,EAAW5+jB,OAAOC,KAAKy4G,GAASA,EACvC/uG,EAAO05M,EAASvoN,GAClB8jkB,EACE,SAAAj/c,GAAI,OAAIktf,EAAe/xmB,EAAM6kH,GAAO7kH,EAAM49G,EAAMiH,MAChD,SAAAA,GAAI,OAAI7kH,EAAM6kH,IAChB,kBAAM7kH,GAR6B,UASpBmF,GAToB,IASvC,2BAAyB,KAAd0/G,EAAc,QACvB+kB,EAAI/kB,IAAqBh2G,EAAKg2G,IAXF,GACS,8BAYvC,OAAO+kB,EAET,SAASo+e,GAAOhonB,GACd,OAAO+nnB,GAAkB/nnB,EAAO,CAACkX,IAAK,IAAKiF,MAAO,IAAKC,OAAQ,IAAKtF,KAAM,MAE5E,SAASmxmB,GAAcjonB,GACrB,OAAO+nnB,GAAkB/nnB,EAAO,CAAC,UAAW,WAAY,aAAc,gBAExE,SAASkonB,GAAUlonB,GACjB,IAAM8rE,EAAMk8iB,GAAOhonB,GAGnB,OAFA8rE,EAAIp8D,MAAQo8D,EAAIh1D,KAAOg1D,EAAI3vD,MAC3B2vD,EAAIn8D,OAASm8D,EAAI50D,IAAM40D,EAAI1vD,OACpB0vD,EAET,SAASq8iB,GAAO3vmB,EAASsuG,GACvBtuG,EAAUA,GAAW,GACrBsuG,EAAWA,GAAYo+F,GAAS7Z,KAChC,IAAIz0L,EAAOm7lB,EAAev5lB,EAAQ5B,KAAMkwG,EAASlwG,MAC7B,kBAATA,IACTA,EAAOy9B,SAASz9B,EAAM,KAExB,IAAIyF,EAAQ01lB,EAAev5lB,EAAQ6D,MAAOyqG,EAASzqG,OAC/CA,KAAW,GAAKA,GAAO0D,MAAM8nmB,MAC/Br/kB,QAAQC,KAAK,kCAAoCpsB,EAAQ,KACzDA,EAAQ,IAEV,IAAMgvL,EAAO,CACXz3H,OAAQm+hB,EAAev5lB,EAAQo7D,OAAQkzC,EAASlzC,QAChD5hC,WAAY81kB,GAAa/V,EAAev5lB,EAAQw5B,WAAY80E,EAAS90E,YAAap7B,GAClFA,KAAAA,EACAyF,MAAAA,EACAq2B,OAAQq/jB,EAAev5lB,EAAQk6B,OAAQo0E,EAASp0E,QAChD+5D,OAAQ,IAGV,OADA4+F,EAAK5+F,OAzVP,SAAsB4+F,GACpB,OAAKA,GAAQ4mV,EAAc5mV,EAAKz0L,OAASq7gB,EAAc5mV,EAAKz3H,QACnD,MAEDy3H,EAAKhvL,MAAQgvL,EAAKhvL,MAAQ,IAAM,KACrCgvL,EAAK34J,OAAS24J,EAAK34J,OAAS,IAAM,IACnC24J,EAAKz0L,KAAO,MACZy0L,EAAKz3H,OAkVOw0iB,CAAa/8a,GACpBA,EAET,SAAS78L,GAAQ65mB,EAAQtvmB,EAAS9Z,EAAO+tB,GACvC,IACI7iB,EAAGkomB,EAAMrymB,EADTsonB,GAAY,EAEhB,IAAKn+mB,EAAI,EAAGkomB,EAAOgW,EAAO3pnB,OAAQyL,EAAIkomB,IAAQlomB,EAE5C,QAAcqM,KADdxW,EAAQqonB,EAAOl+mB,WAICqM,IAAZuC,GAA0C,oBAAV/Y,IAClCA,EAAQA,EAAM+Y,GACduvmB,GAAY,QAEA9xmB,IAAVvX,GAAuB26E,EAAQ55E,KACjCA,EAAQA,EAAMf,EAAQe,EAAMtB,QAC5B4pnB,GAAY,QAEA9xmB,IAAVxW,GAIF,OAHIgtB,IAASs7lB,IACXt7lB,EAAKs7lB,WAAY,GAEZtonB,EAab,SAASo/G,GAAco/L,EAAezlS,GACpC,OAAO7T,OAAOw4C,OAAOx4C,OAAOw4B,OAAO8gR,GAAgBzlS,GAGrD,SAASwvmB,GAAQl0hB,EAAOr0F,EAAOg2D,GAC7BA,EAAMA,GAAQ,SAAC/2D,GAAD,OAAWo1F,EAAMp1F,GAASe,GAIxC,IAHA,IAEIuzK,EAFA1mB,EAAKx4D,EAAM31F,OAAS,EACpBkuJ,EAAK,EAEFC,EAAKD,EAAK,GAEX52F,EADJu9G,EAAO3mB,EAAKC,GAAO,GAEjBD,EAAK2mB,EAEL1mB,EAAK0mB,EAGT,MAAO,CAAC3mB,GAAAA,EAAIC,GAAAA,GAEd,IAAM27d,GAAe,SAACn0hB,EAAOjvF,EAAKpF,GAAb,OACnBuonB,GAAQl0hB,EAAOr0F,GAAO,SAAAf,GAAK,OAAIo1F,EAAMp1F,GAAOmG,GAAOpF,MAC/CyonB,GAAgB,SAACp0hB,EAAOjvF,EAAKpF,GAAb,OACpBuonB,GAAQl0hB,EAAOr0F,GAAO,SAAAf,GAAK,OAAIo1F,EAAMp1F,GAAOmG,IAAQpF,MActD,IAAM0onB,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WA+BvD,SAASC,GAAoBlykB,EAAOh4C,GAClC,IAAMoma,EAAOpuX,EAAMmykB,SACnB,GAAK/jN,EAAL,CAGA,IAAMjiS,EAAYiiS,EAAKjiS,UACjB3jI,EAAQ2jI,EAAUr+H,QAAQ9F,IACjB,IAAXQ,GACF2jI,EAAUj1H,OAAO1O,EAAO,GAEtB2jI,EAAUlkI,OAAS,IAGvBgqnB,GAAYrqnB,SAAQ,SAAC+G,UACZqxC,EAAMrxC,aAERqxC,EAAMmykB,WAEf,SAASC,GAAa/+mB,GACpB,IACIK,EAAGkomB,EADDjviB,EAAM,IAAI2/C,IAEhB,IAAK54G,EAAI,EAAGkomB,EAAOvomB,EAAMpL,OAAQyL,EAAIkomB,IAAQlomB,EAC3Ci5D,EAAI1jE,IAAIoK,EAAMK,IAEhB,OAAIi5D,EAAIxsD,OAASy7lB,EACRvomB,EAEFnG,MAAM4D,KAAK67D,GAGpB,SAAS0ljB,GAAgBC,GAAqF,MAA7EC,EAA6E,uDAAlE,CAAC,IAAKC,EAA4D,uDAA/CF,EAAQjigB,EAAuC,uCAA7Bt4E,EAA6B,uDAAjB,kBAAMu6kB,EAAO,IACnG1V,EAAQvsf,KACXA,EAAW89F,GAAS,YAAamka,IAEnC,IAAMhrkB,GAAK,eACRo6E,OAAOC,YAAc,WADb,uBAEG,IAFH,mBAGA2wf,IAHA,uBAIIE,IAJJ,qBAKEnigB,IALF,sBAMGt4E,IANH,qBAOC,SAAC01H,GAAD,OAAW4kd,GAAgB,CAAC5kd,GAAF,eAAY6kd,IAASC,EAAUC,EAAYnigB,MAPtE,GASX,OAAO,IAAIqnf,MAAMpwjB,EAAO,CACtBmrkB,eADsB,SACPlknB,EAAQ6/G,GAIrB,cAHO7/G,EAAO6/G,UACP7/G,EAAOqyc,aACP0xK,EAAO,GAAGlkgB,IACV,GAET5mG,IAPsB,SAOlBjZ,EAAQ6/G,GACV,OAAOskgB,GAAQnknB,EAAQ6/G,GACrB,kBAAMukgB,GAAqBvkgB,EAAMmkgB,EAAUD,EAAQ/jnB,OAEvD22E,yBAXsB,SAWG32E,EAAQ6/G,GAC/B,OAAOold,QAAQtuf,yBAAyB32E,EAAOqknB,QAAQ,GAAIxkgB,IAE7D9qC,eAdsB,WAepB,OAAOkwf,QAAQlwf,eAAegviB,EAAO,KAEvC9wlB,IAjBsB,SAiBlBjzB,EAAQ6/G,GACV,OAAOykgB,GAAqBtknB,GAAQk1H,SAASrV,IAE/Cqsf,QApBsB,SAoBdlsmB,GACN,OAAOsknB,GAAqBtknB,IAE9Bo+D,IAvBsB,SAuBlBp+D,EAAQ6/G,EAAM7kH,GAChB,IAAMg0gB,EAAUhvgB,EAAOuknB,WAAavknB,EAAOuknB,SAAW/6kB,KAGtD,OAFAxpC,EAAO6/G,GAAQmvZ,EAAQnvZ,GAAQ7kH,SACxBgF,EAAOqyc,OACP,KAIb,SAASmyK,GAAe7jE,EAAO5siB,EAAS0wmB,EAAUC,GAChD,IAAM3rkB,EAAQ,CACZ4rkB,YAAY,EACZC,OAAQjkE,EACRt0gB,SAAUt4B,EACV8wmB,UAAWJ,EACXK,OAAQ,IAAI/mgB,IACZ6/f,aAAcA,GAAaj9D,EAAO+jE,GAClCK,WAAY,SAACv8a,GAAD,OAASg8a,GAAe7jE,EAAOn4W,EAAKi8a,EAAUC,IAC1DM,SAAU,SAAC9ld,GAAD,OAAWsld,GAAe7jE,EAAMqkE,SAAS9ld,GAAQnrJ,EAAS0wmB,EAAUC,KAEhF,OAAO,IAAIvb,MAAMpwjB,EAAO,CACtBmrkB,eADsB,SACPlknB,EAAQ6/G,GAGrB,cAFO7/G,EAAO6/G,UACP8gc,EAAM9gc,IACN,GAET5mG,IANsB,SAMlBjZ,EAAQ6/G,EAAMsjf,GAChB,OAAOghB,GAAQnknB,EAAQ6/G,GACrB,kBA4CR,SAA6B7/G,EAAQ6/G,EAAMsjf,GACzC,IAAOyhB,EAA0D5knB,EAA1D4knB,OAAQv4kB,EAAkDrsC,EAAlDqsC,SAAUw4kB,EAAwC7knB,EAAxC6knB,UAAyBpH,EAAez9mB,EAA7B49mB,aAChC5inB,EAAQ4pnB,EAAO/kgB,GACfvrC,EAAWt5E,IAAUyinB,EAAYwH,aAAaplgB,KAChD7kH,EAUJ,SAA4B6kH,EAAM7kH,EAAOgF,EAAQmjmB,GAC/C,IAAOyhB,EAAuC5knB,EAAvC4knB,OAAQv4kB,EAA+BrsC,EAA/BqsC,SAAUw4kB,EAAqB7knB,EAArB6knB,UAAWC,EAAU9knB,EAAV8knB,OACpC,GAAIA,EAAO7xlB,IAAI4sF,GACb,MAAM,IAAIpxE,MAAM,uBAAyB9vC,MAAM4D,KAAKuinB,GAAQz6mB,KAAK,MAAQ,KAAOw1G,GAElFilgB,EAAOpqnB,IAAImlH,GACX7kH,EAAQA,EAAMqxC,EAAUw4kB,GAAa1hB,GACrC2hB,EAAO99X,OAAOnnI,GACVqlgB,GAAiBrlgB,EAAM7kH,KACzBA,EAAQmqnB,GAAkBP,EAAOP,QAASO,EAAQ/kgB,EAAM7kH,IAE1D,OAAOA,EArBGoqnB,CAAmBvlgB,EAAM7kH,EAAOgF,EAAQmjmB,IAE9CvuhB,EAAQ55E,IAAUA,EAAMtB,SAC1BsB,EAoBJ,SAAuB6kH,EAAM7kH,EAAOgF,EAAQqlnB,GAC1C,IAAOT,EAA0D5knB,EAA1D4knB,OAAQv4kB,EAAkDrsC,EAAlDqsC,SAAUw4kB,EAAwC7knB,EAAxC6knB,UAAyBpH,EAAez9mB,EAA7B49mB,aACpC,GAAIvP,EAAQhikB,EAASpyC,QAAUornB,EAAYxlgB,GACzC7kH,EAAQA,EAAMqxC,EAASpyC,MAAQe,EAAMtB,aAChC,GAAI6pN,EAASvoN,EAAM,IAAK,CAC7B,IAAMizH,EAAMjzH,EACN+onB,EAASa,EAAOP,QAAQrlnB,QAAO,SAAAinB,GAAC,OAAIA,IAAMgoG,KAChDjzH,EAAQ,GAHqB,gBAIVizH,GAJU,IAI7B,2BAAwB,KAChB19F,EAAW40lB,GAAkBpB,EAAQa,EAAQ/kgB,EAD7B,SAEtB7kH,EAAMhB,KAAKwqnB,GAAej0lB,EAAU8b,EAAUw4kB,GAAaA,EAAUhlgB,GAAO49f,KANjD,+BAS/B,OAAOzinB,EAjCGsqnB,CAAczlgB,EAAM7kH,EAAOgF,EAAQy9mB,EAAY4H,cAErDH,GAAiBrlgB,EAAM7kH,KACzBA,EAAQwpnB,GAAexpnB,EAAOqxC,EAAUw4kB,GAAaA,EAAUhlgB,GAAO49f,IAExE,OAAOzinB,EAxDKuqnB,CAAoBvlnB,EAAQ6/G,EAAMsjf,OAE5CxshB,yBAVsB,SAUG32E,EAAQ6/G,GAC/B,OAAO7/G,EAAO49mB,aAAa4H,QACvBvgD,QAAQhyiB,IAAI0thB,EAAO9gc,GAAQ,CAACxhD,YAAY,EAAMC,cAAc,QAAQ9sD,EACpEyzjB,QAAQtuf,yBAAyBgqe,EAAO9gc,IAE9C9qC,eAfsB,WAgBpB,OAAOkwf,QAAQlwf,eAAe4re,IAEhC1thB,IAlBsB,SAkBlBjzB,EAAQ6/G,GACV,OAAOold,QAAQhyiB,IAAI0thB,EAAO9gc,IAE5Bqsf,QArBsB,WAsBpB,OAAOjnC,QAAQinC,QAAQvrD,IAEzBvif,IAxBsB,SAwBlBp+D,EAAQ6/G,EAAM7kH,GAGhB,OAFA2ljB,EAAM9gc,GAAQ7kH,SACPgF,EAAO6/G,IACP,KAIb,SAAS+9f,GAAaj9D,GAAuD,IAAhDzgW,EAAgD,uDAArC,CAACula,YAAY,EAAMC,WAAW,GACpE,EAA0G/kE,EAAnGu+D,YAAAA,OAAP,MAAqBh/Z,EAASula,WAA9B,IAA0G9kE,EAAhEw+D,WAAAA,OAA1C,MAAuDj/Z,EAASwla,UAAhE,IAA0G/kE,EAA/BglE,SAAAA,OAA3E,MAAsFzla,EAASsla,QAA/F,EACA,MAAO,CACLA,QAASG,EACTF,WAAYvG,EACZwG,UAAWvG,EACX8F,aAAc3wiB,EAAW4qiB,GAAeA,EAAc,kBAAMA,GAC5DmG,YAAa/wiB,EAAW6qiB,GAAcA,EAAa,kBAAMA,IAG7D,IAAMyG,GAAU,SAAC3hlB,EAAQr9B,GAAT,OAAkBq9B,EAASA,EAASmqkB,EAAYxnmB,GAAQA,GAClEs+mB,GAAmB,SAACrlgB,EAAM7kH,GAAP,OAAiBuoN,EAASvoN,IAAmB,aAAT6kH,IACzB,OAAjC3/G,OAAO60E,eAAe/5E,IAAmBA,EAAM4M,cAAgB1H,SAClE,SAASiknB,GAAQnknB,EAAQ6/G,EAAMr2G,GAC7B,GAAItJ,OAAOtB,UAAUsxE,eAAer2E,KAAKmG,EAAQ6/G,GAC/C,OAAO7/G,EAAO6/G,GAEhB,IAAM7kH,EAAQwO,IAEd,OADAxJ,EAAO6/G,GAAQ7kH,EACRA,EA4CT,SAAS6qnB,GAAgB/jgB,EAAUjC,EAAM7kH,GACvC,OAAOs5E,EAAWwtC,GAAYA,EAASjC,EAAM7kH,GAAS8mH,EAExD,IAAMgkgB,GAAW,SAAC1lnB,EAAKyE,GAAN,OAAyB,IAARzE,EAAeyE,EAC9B,kBAARzE,EAAmB+tmB,EAAiBtpmB,EAAQzE,QAAOoR,GAC9D,SAASu0mB,GAAU3njB,EAAK4njB,EAAc5lnB,EAAK6lnB,EAAgBjrnB,GAAO,gBAC3CgrnB,GAD2C,IAChE,2BAAmC,KAAxBnhnB,EAAwB,QAC3Bq6J,EAAQ4md,GAAS1lnB,EAAKyE,GAC5B,GAAIq6J,EAAO,CACT9gG,EAAI1jE,IAAIwkK,GACR,IAAMp9C,EAAW+jgB,GAAgB3md,EAAMkgd,UAAWh/mB,EAAKpF,GACvD,GAAIqzmB,EAAQvsf,IAAaA,IAAa1hH,GAAO0hH,IAAamkgB,EACxD,OAAOnkgB,OAEJ,IAAc,IAAVo9C,GAAmBmvc,EAAQ4X,IAAmB7lnB,IAAQ6lnB,EAC/D,OAAO,MAVqD,8BAahE,OAAO,EAET,SAASd,GAAkBa,EAAcz1lB,EAAUsvF,EAAM7kH,GACvD,IAAMipnB,EAAa1zlB,EAAS21lB,YACtBpkgB,EAAW+jgB,GAAgBt1lB,EAAS6ulB,UAAWv/f,EAAM7kH,GACrDmrnB,EAAY,GAAH,eAAOH,IAAP,OAAwB/B,IACjC7ljB,EAAM,IAAI2/C,IAChB3/C,EAAI1jE,IAAIM,GACR,IAAIoF,EAAMgmnB,GAAiBhojB,EAAK+njB,EAAWtmgB,EAAMiC,GAAYjC,EAAM7kH,GACnE,OAAY,OAARoF,MAGAiumB,EAAQvsf,IAAaA,IAAajC,GAExB,QADZz/G,EAAMgmnB,GAAiBhojB,EAAK+njB,EAAWrkgB,EAAU1hH,EAAKpF,MAKjD8onB,GAAgBnlnB,MAAM4D,KAAK67D,GAAM,CAAC,IAAK6ljB,EAAYnigB,GACxD,kBAQJ,SAAsBvxF,EAAUsvF,EAAM7kH,GACpC,IAAM6J,EAAS0rB,EAASwkV,aAClBl1P,KAAQh7G,IACZA,EAAOg7G,GAAQ,IAEjB,IAAM7/G,EAAS6E,EAAOg7G,GACtB,GAAIjrC,EAAQ50E,IAAWujN,EAASvoN,GAC9B,OAAOA,EAET,OAAOgF,EAjBCqmnB,CAAa91lB,EAAUsvF,EAAM7kH,OAEvC,SAASornB,GAAiBhojB,EAAK+njB,EAAW/lnB,EAAK0hH,EAAUxoH,GACvD,KAAO8G,GACLA,EAAM2lnB,GAAU3njB,EAAK+njB,EAAW/lnB,EAAK0hH,EAAUxoH,GAEjD,OAAO8G,EAaT,SAASgknB,GAAqBvkgB,EAAMmkgB,EAAUD,EAAQpjE,GACpD,IAAI3ljB,EADuD,YAEtCgpnB,GAFsC,IAE3D,2BAA+B,KAApB//kB,EAAoB,QAE7B,GADAjpC,EAAQ4kN,GAASgma,GAAQ3hlB,EAAQ47E,GAAOkkgB,GACpC1V,EAAQrzmB,GACV,OAAOkqnB,GAAiBrlgB,EAAM7kH,GAC1BmqnB,GAAkBpB,EAAQpjE,EAAO9gc,EAAM7kH,GACvCA,GAPmD,+BAW7D,SAAS4kN,GAASx/M,EAAK2jnB,GAAQ,gBACTA,GADS,IAC7B,2BAA4B,KAAjB7kd,EAAiB,QAC1B,GAAKA,EAAL,CAGA,IAAMlkK,EAAQkkK,EAAM9+J,GACpB,GAAIiumB,EAAQrzmB,GACV,OAAOA,IAPkB,+BAW/B,SAASspnB,GAAqBtknB,GAC5B,IAAIG,EAAOH,EAAOqyc,MAIlB,OAHKlyc,IACHA,EAAOH,EAAOqyc,MAIlB,SAAkC0xK,GAChC,IADwC,EAClC3ljB,EAAM,IAAI2/C,IADwB,UAEpBgmgB,GAFoB,IAExC,2BAA4B,OAAjB7kd,EAAiB,kBACRh/J,OAAOC,KAAK++J,GAAOlgK,QAAO,SAAA+xD,GAAC,OAAKA,EAAE+jE,WAAW,SADrC,IAC1B,2BAAsE,KAA3D10H,EAA2D,QACpEg+D,EAAI1jE,IAAI0F,IAFgB,gCAFY,8BAOxC,OAAOzB,MAAM4D,KAAK67D,GAXMkojB,CAAyBtmnB,EAAOqknB,UAEjDlknB,EAYT,IAAMomnB,GAAU19jB,OAAO09jB,SAAW,MAC5BC,GAAW,SAAC1tK,EAAQ3zc,GAAT,OAAeA,EAAI2zc,EAAOp/c,SAAWo/c,EAAO3zc,GAAGi6C,MAAQ05Z,EAAO3zc,IACzEshnB,GAAe,SAACvI,GAAD,MAA6B,MAAdA,EAAoB,IAAM,KAC9D,SAASwI,GAAYC,EAAYC,EAAaC,EAAYv3jB,GACxD,IAAMoqD,EAAWitgB,EAAWvnkB,KAAOwnkB,EAAcD,EAC3CjvY,EAAUkvY,EACVlvkB,EAAOmvkB,EAAWznkB,KAAOwnkB,EAAcC,EACvCC,EAAM7W,GAAsBv4X,EAASh+H,GACrCqtgB,EAAM9W,GAAsBv4jB,EAAMggM,GACpCsvY,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAGjBtmU,EAAKnxP,GAFX03jB,EAAMpklB,MAAMoklB,GAAO,EAAIA,GAGjB7/D,EAAK73f,GAFX23jB,EAAMrklB,MAAMqklB,GAAO,EAAIA,GAGvB,MAAO,CACLvtgB,SAAU,CACRtvG,EAAGstO,EAAQttO,EAAIq2S,GAAM/oQ,EAAKttC,EAAIsvG,EAAStvG,GACvC2M,EAAG2gO,EAAQ3gO,EAAI0pS,GAAM/oQ,EAAK3gC,EAAI2iG,EAAS3iG,IAEzC2gC,KAAM,CACJttC,EAAGstO,EAAQttO,EAAI+8iB,GAAMzvgB,EAAKttC,EAAIsvG,EAAStvG,GACvC2M,EAAG2gO,EAAQ3gO,EAAIowiB,GAAMzvgB,EAAK3gC,EAAI2iG,EAAS3iG,KAI7C,SAASmwmB,GAAepuK,EAAQquK,EAAQC,GAItC,IAHA,IACIC,EAAQC,EAAOC,EAAMC,EAAkBC,EADrCC,EAAY5uK,EAAOp/c,OAErBiunB,EAAanB,GAAS1tK,EAAQ,GACzB3zc,EAAI,EAAGA,EAAIuinB,EAAY,IAAKvinB,EACnCsinB,EAAeE,EACfA,EAAanB,GAAS1tK,EAAQ3zc,EAAI,GAC7BsinB,GAAiBE,IAGlBzY,GAAaiY,EAAOhinB,GAAI,EAAGohnB,IAC7Ba,EAAGjinB,GAAKiinB,EAAGjinB,EAAI,GAAK,GAGtBkinB,EAASD,EAAGjinB,GAAKginB,EAAOhinB,GACxBminB,EAAQF,EAAGjinB,EAAI,GAAKginB,EAAOhinB,IAC3BqinB,EAAmBzomB,KAAKg7C,IAAIstjB,EAAQ,GAAKtomB,KAAKg7C,IAAIutjB,EAAO,KACjC,IAGxBC,EAAO,EAAIxomB,KAAK+0H,KAAK0ze,GACrBJ,EAAGjinB,GAAKkinB,EAASE,EAAOJ,EAAOhinB,GAC/BiinB,EAAGjinB,EAAI,GAAKminB,EAAQC,EAAOJ,EAAOhinB,MAGtC,SAASyinB,GAAgB9uK,EAAQsuK,GAK/B,IALoD,IAGhDhxmB,EAAOyxmB,EAAaJ,EAHWvJ,EAAiB,uDAAL,IACzC5+F,EAAYmnG,GAAavI,GACzBwJ,EAAY5uK,EAAOp/c,OAErBiunB,EAAanB,GAAS1tK,EAAQ,GACzB3zc,EAAI,EAAGA,EAAIuinB,IAAavinB,EAI/B,GAHA0inB,EAAcJ,EACdA,EAAeE,EACfA,EAAanB,GAAS1tK,EAAQ3zc,EAAI,GAC7BsinB,EAAL,CAGA,IAAMK,EAASL,EAAavJ,GACtB6J,EAASN,EAAanoG,GACxBuoG,IACFzxmB,GAAS0xmB,EAASD,EAAY3J,IAAc,EAC5CuJ,EAAa,MAAD,OAAOvJ,IAAe4J,EAAS1xmB,EAC3CqxmB,EAAa,MAAD,OAAOnoG,IAAeyoG,EAAS3xmB,EAAQgxmB,EAAGjinB,IAEpDwinB,IACFvxmB,GAASuxmB,EAAWzJ,GAAa4J,GAAU,EAC3CL,EAAa,MAAD,OAAOvJ,IAAe4J,EAAS1xmB,EAC3CqxmB,EAAa,MAAD,OAAOnoG,IAAeyoG,EAAS3xmB,EAAQgxmB,EAAGjinB,KA8B5D,SAAS6inB,GAAgB/tT,EAAI/6S,EAAKF,GAChC,OAAOD,KAAKC,IAAID,KAAKG,IAAI+6S,EAAIj7S,GAAME,GAuBrC,SAAS+omB,GAA2BnvK,EAAQtlc,EAAS4zB,EAAMuuT,EAAMuoR,GAC/D,IAAI/4mB,EAAGkomB,EAAMjtc,EAAO8nd,EAIpB,GAHI10mB,EAAQ20mB,WACVrvK,EAASA,EAAO95c,QAAO,SAACi7T,GAAD,OAASA,EAAG76Q,SAEE,aAAnC5rC,EAAQ40mB,wBAvDd,SAA6BtvK,GAAyB,IAKhD3zc,EAAG0inB,EAAaJ,EALevJ,EAAiB,uDAAL,IACzC5+F,EAAYmnG,GAAavI,GACzBwJ,EAAY5uK,EAAOp/c,OACnBytnB,EAASxonB,MAAM+onB,GAAWpyf,KAAK,GAC/B8xf,EAAKzonB,MAAM+onB,GAEbC,EAAanB,GAAS1tK,EAAQ,GAClC,IAAK3zc,EAAI,EAAGA,EAAIuinB,IAAavinB,EAI3B,GAHA0inB,EAAcJ,EACdA,EAAeE,EACfA,EAAanB,GAAS1tK,EAAQ3zc,EAAI,GAC7BsinB,EAAL,CAGA,GAAIE,EAAY,CACd,IAAMU,EAAaV,EAAWzJ,GAAauJ,EAAavJ,GACxDiJ,EAAOhinB,GAAoB,IAAfkjnB,GAAoBV,EAAWroG,GAAamoG,EAAanoG,IAAc+oG,EAAa,EAElGjB,EAAGjinB,GAAM0inB,EACJF,EACA/6jB,GAAKu6jB,EAAOhinB,EAAI,MAAQynD,GAAKu6jB,EAAOhinB,IAAO,GAC3CginB,EAAOhinB,EAAI,GAAKginB,EAAOhinB,IAAM,EAFhBginB,EAAOhinB,EAAI,GADNginB,EAAOhinB,GAKhC+hnB,GAAepuK,EAAQquK,EAAQC,GAC/BQ,GAAgB9uK,EAAQsuK,EAAIlJ,GAgC1BoK,CAAoBxvK,EAAQolK,OACvB,CACL,IAAIr+kB,EAAO81T,EAAOmjH,EAAOA,EAAOp/c,OAAS,GAAKo/c,EAAO,GACrD,IAAK3zc,EAAI,EAAGkomB,EAAOv0J,EAAOp/c,OAAQyL,EAAIkomB,IAAQlomB,EAE5C+inB,EAAgBxB,GACd7mlB,EAFFugI,EAAQ04S,EAAO3zc,GAIb2zc,EAAO/5b,KAAKG,IAAI/Z,EAAI,EAAGkomB,GAAQ13Q,EAAO,EAAI,IAAM03Q,GAChD75lB,EAAQ+0mB,SAEVnod,EAAMghd,KAAO8G,EAAcxugB,SAAStvG,EACpCg2J,EAAMkhd,KAAO4G,EAAcxugB,SAAS3iG,EACpCqpJ,EAAMihd,KAAO6G,EAAcxwkB,KAAKttC,EAChCg2J,EAAMmhd,KAAO2G,EAAcxwkB,KAAK3gC,EAChC8oB,EAAOugI,EAGP5sJ,EAAQg1mB,iBA7Cd,SAAyB1vK,EAAQ1xa,GAC/B,IAAIjiC,EAAGkomB,EAAMjtc,EAAOqod,EAAQC,EACxBC,EAAa9H,GAAe/nK,EAAO,GAAI1xa,GAC3C,IAAKjiC,EAAI,EAAGkomB,EAAOv0J,EAAOp/c,OAAQyL,EAAIkomB,IAAQlomB,EAC5CujnB,EAAaD,EACbA,EAASE,EACTA,EAAaxjnB,EAAIkomB,EAAO,GAAKwT,GAAe/nK,EAAO3zc,EAAI,GAAIiiC,GACtDqhlB,IAGLrod,EAAQ04S,EAAO3zc,GACXujnB,IACFtod,EAAMghd,KAAO4G,GAAgB5nd,EAAMghd,KAAMh6kB,EAAKt1B,KAAMs1B,EAAKjwB,OACzDipJ,EAAMkhd,KAAO0G,GAAgB5nd,EAAMkhd,KAAMl6kB,EAAKl1B,IAAKk1B,EAAKhwB,SAEtDuxmB,IACFvod,EAAMihd,KAAO2G,GAAgB5nd,EAAMihd,KAAMj6kB,EAAKt1B,KAAMs1B,EAAKjwB,OACzDipJ,EAAMmhd,KAAOyG,GAAgB5nd,EAAMmhd,KAAMn6kB,EAAKl1B,IAAKk1B,EAAKhwB,UA6B1DoxmB,CAAgB1vK,EAAQ1xa,GAI5B,SAASwhlB,KACP,MAAyB,qBAAX/pmB,QAA8C,qBAAbjjB,SAEjD,SAASitnB,GAAe/ve,GACtB,IAAIj0I,EAASi0I,EAAQt1H,WAIrB,OAHI3e,GAAgC,wBAAtBA,EAAOgD,aACnBhD,EAASA,EAAOg/B,MAEXh/B,EAET,SAASiknB,GAAcxkjB,EAAY+K,EAAM05iB,GACvC,IAAIC,EASJ,MAR0B,kBAAf1kjB,GACT0kjB,EAAgB35kB,SAASi1B,EAAY,KACJ,IAA7BA,EAAW/kE,QAAQ,OACrBypnB,EAAgBA,EAAgB,IAAM35iB,EAAK7rD,WAAWulmB,KAGxDC,EAAgB1kjB,EAEX0kjB,EAET,IAAMrtf,GAAmB,SAACziI,GAAD,OAAa2lB,OAAO88G,iBAAiBziI,EAAS,OAIvE,IAAMm7C,GAAY,CAAC,MAAO,QAAS,SAAU,QAC7C,SAAS40kB,GAAmBjulB,EAAQ3jB,EAAOkpH,GACzC,IAAMt4H,EAAS,GACfs4H,EAASA,EAAS,IAAMA,EAAS,GACjC,IAAK,IAAIp7H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMutE,EAAMr+B,GAAUlvC,GACtB8C,EAAOyqE,GAAO3jC,WAAW/T,EAAO3jB,EAAQ,IAAMq7D,EAAM6tD,KAAY,EAIlE,OAFAt4H,EAAOyC,MAAQzC,EAAO6J,KAAO7J,EAAOkP,MACpClP,EAAO0C,OAAS1C,EAAOiK,IAAMjK,EAAOmP,OAC7BnP,EAqBT,SAASihnB,GAAoBrqE,EAAKjiC,GAChC,IAAO90U,EAAmC80U,EAAnC90U,OAAQm4a,EAA2BrjG,EAA3BqjG,wBACT5omB,EAAQskH,GAAiBmsE,GACzBqhb,EAAgC,eAApB9xmB,EAAMggQ,UAClBliO,EAAW8zkB,GAAmB5xmB,EAAO,WACrCmmB,EAAUyrlB,GAAmB5xmB,EAAO,SAAU,SACpD,EAxBF,SAA2BwniB,EAAK/2W,GAC9B,IAKI19L,EAAG2M,EALDnd,EAAIiljB,EAAI1tL,QAAU0tL,EAClBl8Z,EAAU/oJ,EAAE+oJ,QACZ57B,EAAS47B,GAAWA,EAAQjpJ,OAASipJ,EAAQ,GAAK/oJ,EACjDkuC,EAAoBi/E,EAApBj/E,QAASC,EAAWg/E,EAAXh/E,QACZusO,GAAM,EAEV,GARmB,SAAClqQ,EAAG2M,EAAG/W,GAAP,OAAmBoK,EAAI,GAAK2M,EAAI,MAAQ/W,IAAWA,EAAOmuS,YAQzEi7U,CAAathlB,EAASC,EAASnuC,EAAEoG,QACnCoK,EAAI09B,EACJ/wB,EAAIgxB,MACC,CACL,IAAM1zB,EAAOyzL,EAAOzyL,wBACpBjL,EAAI28G,EAAO4gB,QAAUtzH,EAAKvC,KAC1BiF,EAAIgwG,EAAO6gB,QAAUvzH,EAAKnC,IAC1BoiQ,GAAM,EAER,MAAO,CAAClqQ,EAAAA,EAAG2M,EAAAA,EAAGu9P,IAAAA,GAQM+0W,CAAkBxqE,EAAK/2W,GAApC19L,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EAAGu9P,EAAb,EAAaA,IACPgsW,EAAUnrkB,EAASrjC,MAAQwiQ,GAAO92O,EAAQ1rB,MAC1CyumB,EAAUprkB,EAASjjC,KAAOoiQ,GAAO92O,EAAQtrB,KAC1CxH,EAAiBkygB,EAAjBlygB,MAAOC,EAAUiygB,EAAVjygB,OAKZ,OAJIw+mB,IACFz+mB,GAASyqC,EAASzqC,MAAQ8yB,EAAQ9yB,MAClCC,GAAUwqC,EAASxqC,OAAS6yB,EAAQ7yB,QAE/B,CACLP,EAAG2U,KAAK6H,OAAOxc,EAAIk2mB,GAAW51mB,EAAQo9L,EAAOp9L,MAAQu1mB,GACrDlpmB,EAAGgI,KAAK6H,OAAO7P,EAAIwpmB,GAAW51mB,EAASm9L,EAAOn9L,OAASs1mB,IA4B3D,IAAMqJ,GAAS,SAAArpkB,GAAC,OAAIlhC,KAAK6H,MAAU,GAAJq5B,GAAU,IACzC,SAASspkB,GAAezhb,EAAQ0hb,EAASC,EAAU90E,GACjD,IAAMt9hB,EAAQskH,GAAiBmsE,GACzBxnJ,EAAU2okB,GAAmB5xmB,EAAO,UACpCe,EAAW0wmB,GAAczxmB,EAAMe,SAAU0vL,EAAQ,gBAAkB2ma,EACnE3vlB,EAAYgqmB,GAAczxmB,EAAMyH,UAAWgpL,EAAQ,iBAAmB2ma,EACtE5iL,EA/BR,SAA0B/jP,EAAQp9L,EAAOC,GACvC,IAAIyN,EAAU0G,EACd,QAActN,IAAV9G,QAAkC8G,IAAX7G,EAAsB,CAC/C,IAAMuO,EAAY2vmB,GAAe/gb,GACjC,GAAK5uL,EAGE,CACL,IAAM7E,EAAO6E,EAAU7D,wBACjBq0mB,EAAiB/tf,GAAiBziH,GAClCywmB,EAAkBV,GAAmBS,EAAgB,SAAU,SAC/DE,EAAmBX,GAAmBS,EAAgB,WAC5Dh/mB,EAAQ2J,EAAK3J,MAAQk/mB,EAAiBl/mB,MAAQi/mB,EAAgBj/mB,MAC9DC,EAAS0J,EAAK1J,OAASi/mB,EAAiBj/mB,OAASg/mB,EAAgBh/mB,OACjEyN,EAAW0wmB,GAAcY,EAAetxmB,SAAUc,EAAW,eAC7D4F,EAAYgqmB,GAAcY,EAAe5qmB,UAAW5F,EAAW,qBAV/DxO,EAAQo9L,EAAOlvI,YACfjuD,EAASm9L,EAAOrnJ,aAYpB,MAAO,CACL/1C,MAAAA,EACAC,OAAAA,EACAyN,SAAUA,GAAYq2lB,EACtB3vlB,UAAWA,GAAa2vlB,GASJob,CAAiB/hb,EAAQ0hb,EAASC,GACnD/+mB,EAAiBmhb,EAAjBnhb,MAAOC,EAAUkhb,EAAVlhb,OACZ,GAAwB,gBAApB0M,EAAMggQ,UAA6B,CACrC,IAAM75O,EAAUyrlB,GAAmB5xmB,EAAO,SAAU,SAC9C89B,EAAW8zkB,GAAmB5xmB,EAAO,WAC3C3M,GAASyqC,EAASzqC,MAAQ8yB,EAAQ9yB,MAClCC,GAAUwqC,EAASxqC,OAAS6yB,EAAQ7yB,OAStC,OAPAD,EAAQqU,KAAKC,IAAI,EAAGtU,EAAQ41C,EAAQ51C,OACpCC,EAASoU,KAAKC,IAAI,EAAG21hB,EAAc51hB,KAAKo1B,MAAMzpC,EAAQiqiB,GAAehqiB,EAAS21C,EAAQ31C,QACtFD,EAAQ4+mB,GAAOvqmB,KAAKG,IAAIxU,EAAO0N,EAAUyza,EAAczza,WACvDzN,EAAS2+mB,GAAOvqmB,KAAKG,IAAIvU,EAAQmU,EAAW+sa,EAAc/sa,YACtDpU,IAAUC,IACZA,EAAS2+mB,GAAO5+mB,EAAQ,IAEnB,CACLA,MAAAA,EACAC,OAAAA,GAGJ,SAASm/mB,GAAYltG,EAAOmtG,EAAYC,GACtC,IAAMjib,EAAagib,GAAc,EAC3BE,EAAelrmB,KAAKo1B,MAAMyoe,EAAMjygB,OAASo9L,GACzCmib,EAAcnrmB,KAAKo1B,MAAMyoe,EAAMlygB,MAAQq9L,GAC7C60U,EAAMjygB,OAASs/mB,EAAelib,EAC9B60U,EAAMlygB,MAAQw/mB,EAAcnib,EAC5B,IAAMD,EAAS80U,EAAM90U,OAKrB,OAJIA,EAAOzwL,QAAU2ymB,IAAgBlib,EAAOzwL,MAAM1M,SAAWm9L,EAAOzwL,MAAM3M,SACxEo9L,EAAOzwL,MAAM1M,OAAb,UAAyBiygB,EAAMjygB,OAA/B,MACAm9L,EAAOzwL,MAAM3M,MAAb,UAAwBkygB,EAAMlygB,MAA9B,QAEEkygB,EAAMqjG,0BAA4Bl4a,GAC/BD,EAAOn9L,SAAWs/mB,GAClBnib,EAAOp9L,QAAUw/mB,KACtBttG,EAAMqjG,wBAA0Bl4a,EAChCD,EAAOn9L,OAASs/mB,EAChBnib,EAAOp9L,MAAQw/mB,EACfttG,EAAMp0U,IAAI2hb,aAAapib,EAAY,EAAG,EAAGA,EAAY,EAAG,IACjD,GAIX,IAAMqib,GAAgC,WACpC,IAAIC,GAAmB,EACvB,IACE,IAAM72mB,EAAU,CACVqyH,cAEF,OADAwkf,GAAmB,GACZ,IAGXxrmB,OAAO/kB,iBAAiB,OAAQ,KAAM0Z,GACtCqL,OAAOtlB,oBAAoB,OAAQ,KAAMia,GACzC,MAAO5Z,IAET,OAAOywnB,EAb6B,GAetC,SAASC,GAAapxnB,EAASmzB,GAC7B,IAAMrxB,EA9IR,SAAkB4G,EAAIyqB,GACpB,OAAOsvG,GAAiB/5H,GAAI8iU,iBAAiBr4S,GA6I/Bk+lB,CAASrxnB,EAASmzB,GAC1B8lE,EAAUn3F,GAASA,EAAM+f,MAAM,qBACrC,OAAOo3E,GAAWA,EAAQ,QAAK3gF,EAGjC,SAASg5mB,GAAa/lf,EAAIC,EAAIp1E,EAAGmO,GAC/B,MAAO,CACLrzD,EAAGq6H,EAAGr6H,EAAIklD,GAAKo1E,EAAGt6H,EAAIq6H,EAAGr6H,GACzB2M,EAAG0tH,EAAG1tH,EAAIu4C,GAAKo1E,EAAG3tH,EAAI0tH,EAAG1tH,IAG7B,SAAS0zmB,GAAsBhmf,EAAIC,EAAIp1E,EAAGmO,GACxC,MAAO,CACLrzD,EAAGq6H,EAAGr6H,EAAIklD,GAAKo1E,EAAGt6H,EAAIq6H,EAAGr6H,GACzB2M,EAAY,WAAT0mD,EAAoBnO,EAAI,GAAMm1E,EAAG1tH,EAAI2tH,EAAG3tH,EAChC,UAAT0mD,EAAmBnO,EAAI,EAAIm1E,EAAG1tH,EAAI2tH,EAAG3tH,EACrCu4C,EAAI,EAAIo1E,EAAG3tH,EAAI0tH,EAAG1tH,GAGxB,SAAS2zmB,GAAqBjmf,EAAIC,EAAIp1E,EAAGmO,GACvC,IAAMktjB,EAAM,CAACvgnB,EAAGq6H,EAAG48e,KAAMtqmB,EAAG0tH,EAAG88e,MACzBqJ,EAAM,CAACxgnB,EAAGs6H,EAAG08e,KAAMrqmB,EAAG2tH,EAAG48e,MACzBzikB,EAAI2rkB,GAAa/lf,EAAIkmf,EAAKr7jB,GAC1BxQ,EAAI0rkB,GAAaG,EAAKC,EAAKt7jB,GAC3B16C,EAAI41mB,GAAaI,EAAKlmf,EAAIp1E,GAC1B4mD,EAAIs0gB,GAAa3rkB,EAAGC,EAAGwQ,GACvB11D,EAAI4wnB,GAAa1rkB,EAAGlqC,EAAG06C,GAC7B,OAAOk7jB,GAAat0gB,EAAGt8G,EAAG01D,GAG5B,IAAMu7jB,GAAY,IAAIj6X,IAWtB,SAAS8sD,GAAa19P,EAAK75C,EAAQqN,GACjC,OAXF,SAAyBrN,EAAQqN,GAC/BA,EAAUA,GAAW,GACrB,IAAMs3mB,EAAW3knB,EAASuO,KAAKC,UAAUnB,GACrCm2S,EAAYkhU,GAAU5xmB,IAAI6xmB,GAK9B,OAJKnhU,IACHA,EAAY,IAAIprM,KAAKgT,aAAaprH,EAAQqN,GAC1Cq3mB,GAAUzsjB,IAAI0sjB,EAAUnhU,IAEnBA,EAGAohU,CAAgB5knB,EAAQqN,GAAS0e,OAAO8tB,GA2CjD,SAASgrkB,GAAc9omB,EAAK+omB,EAAOvgnB,GACjC,OAAOwX,EAzCqB,SAAS+omB,EAAOvgnB,GAC5C,MAAO,CACLN,EADK,SACHA,GACA,OAAO6gnB,EAAQA,EAAQvgnB,EAAQN,GAEjC25L,SAJK,SAIIlhD,GACPn4I,EAAQm4I,GAEVg/d,UAPK,SAOK5ukB,GACR,MAAc,WAAVA,EACKA,EAEQ,UAAVA,EAAoB,OAAS,SAEtCi4kB,MAbK,SAaC9gnB,EAAGpP,GACP,OAAOoP,EAAIpP,GAEbmwnB,WAhBK,SAgBM/gnB,EAAGouc,GACZ,OAAOpuc,EAAIouc,IAuBF4yK,CAAsBH,EAAOvgnB,GAlBnC,CACLN,EADK,SACHA,GACA,OAAOA,GAET25L,SAJK,SAIIlhD,KAETg/d,UANK,SAMK5ukB,GACR,OAAOA,GAETi4kB,MATK,SASC9gnB,EAAGpP,GACP,OAAOoP,EAAIpP,GAEbmwnB,WAZK,SAYM/gnB,EAAGihnB,GACZ,OAAOjhnB,IAOb,SAASkhnB,GAAsB9ib,EAAK/zD,GAClC,IAAIp9H,EAAO48G,EACO,QAAdwgB,GAAqC,QAAdA,IAEzBxgB,EAAW,EADX58G,EAAQmxL,EAAIV,OAAOzwL,OAEXqtT,iBAAiB,aACvBrtT,EAAMk0mB,oBAAoB,cAE5Bl0mB,EAAM8iO,YAAY,YAAa1lG,EAAW,aAC1C+zD,EAAIgjb,kBAAoBv3f,GAG5B,SAASw3f,GAAqBjjb,EAAKv0E,QAChBziH,IAAbyiH,WACKu0E,EAAIgjb,kBACXhjb,EAAIV,OAAOzwL,MAAM8iO,YAAY,YAAalmH,EAAS,GAAIA,EAAS,KAIpE,SAASy3f,GAAWr/lB,GAClB,MAAiB,UAAbA,EACK,CACL87E,QAASmogB,GACT1/iB,QAASw/iB,GACTliY,UAAWmiY,IAGR,CACLlogB,QAAS0ogB,GACTjgjB,QAAS,SAAC/R,EAAGC,GAAJ,OAAUD,EAAIC,GACvBovL,UAAW,SAAA9jO,GAAC,OAAIA,IAGpB,SAASuhnB,GAAT,GAA4D,IAAjC12mB,EAAiC,EAAjCA,MAAOuX,EAA0B,EAA1BA,IAAK8lD,EAAqB,EAArBA,MACrC,MAAO,CACLr9D,MAAOA,EAAQq9D,EACf9lD,IAAKA,EAAM8lD,EACXqjR,KAJwD,EAAdA,OAI3BnpU,EAAMvX,EAAQ,GAAKq9D,IAAU,EAC5Cj7D,MALwD,EAARA,OAgCpD,SAASu0mB,GAAc9iH,EAAShwD,EAAQ1jc,GACtC,IAAKA,EACH,MAAO,CAAC0zf,GAcV,IAZA,IAOI9tgB,EAAOolK,EAAO6uG,EAPX5iP,EAA8CjX,EAA9CiX,SAAiBw/lB,EAA6Bz2mB,EAApCH,MAAwB62mB,EAAY12mB,EAAjBoX,IAC9B8lD,EAAQwmY,EAAOp/c,OACrB,EAAsCgynB,GAAWr/lB,GAA1CukC,EAAP,EAAOA,QAASu3C,EAAhB,EAAgBA,QAAS+lI,EAAzB,EAAyBA,UACzB,EA/BF,SAAoB46R,EAAShwD,EAAQ1jc,GACnC,IAIIjQ,EAAGkomB,EAJAhhlB,EAA8CjX,EAA9CiX,SAAiBw/lB,EAA6Bz2mB,EAApCH,MAAwB62mB,EAAY12mB,EAAjBoX,IACpC,EAA6Bk/lB,GAAWr/lB,GAAjC87E,EAAP,EAAOA,QAAS+lI,EAAhB,EAAgBA,UACV57J,EAAQwmY,EAAOp/c,OAChBub,EAAoB6zf,EAApB7zf,MAAOuX,EAAas8e,EAAbt8e,IAAKmpU,EAAQmzK,EAARnzK,KAEjB,GAAIA,EAAM,CAGR,IAFA1gV,GAASq9D,EACT9lD,GAAO8lD,EACFntE,EAAI,EAAGkomB,EAAO/6hB,EAAOntE,EAAIkomB,GACvBllgB,EAAQ+lI,EAAU4qO,EAAO7jc,EAAQq9D,GAAOjmD,IAAYw/lB,EAAYC,KADjC3mnB,EAIpC8P,IACAuX,IAEFvX,GAASq9D,EACT9lD,GAAO8lD,EAKT,OAHI9lD,EAAMvX,IACRuX,GAAO8lD,GAEF,CAACr9D,MAAAA,EAAOuX,IAAAA,EAAKmpU,KAAAA,EAAMt+U,MAAOyxf,EAAQzxf,OASP00mB,CAAWjjH,EAAShwD,EAAQ1jc,GAAvDH,EAAP,EAAOA,MAAOuX,EAAd,EAAcA,IAAKmpU,EAAnB,EAAmBA,KAAMt+U,EAAzB,EAAyBA,MACnBpP,EAAS,GACXs7H,GAAS,EACTyof,EAAW,KAITC,EAAc,kBAAM1of,GAFEp7B,EAAQ0jhB,EAAY58W,EAAWj0Q,IAA6C,IAAnC41D,EAAQi7jB,EAAY58W,IAGnFi9W,EAAa,kBAAO3of,GAF6B,IAA7B3yE,EAAQk7jB,EAAU9wnB,IAAgBmtG,EAAQ2jhB,EAAU78W,EAAWj0Q,IAGhFmK,EAAI8P,EAAO4qB,EAAO5qB,EAAO9P,GAAKqnB,IAAOrnB,GAC5Ci7J,EAAQ04S,EAAO3zc,EAAImtE,IACTlzB,OAGVpkD,EAAQkzO,EAAU9tE,EAAM/zI,OACV4iP,IAGd1rI,EAASp7B,EAAQntG,EAAO6wnB,EAAYC,GACnB,OAAbE,GAAqBC,MACvBD,EAA0C,IAA/Bp7jB,EAAQ51D,EAAO6wnB,GAAoB1mnB,EAAI06B,GAEnC,OAAbmslB,GAAqBE,MACvBjknB,EAAOjO,KAAK2xnB,GAAiB,CAAC12mB,MAAO+2mB,EAAUx/lB,IAAKrnB,EAAGwwV,KAAAA,EAAMrjR,MAAAA,EAAOj7D,MAAAA,KACpE20mB,EAAW,MAEbnslB,EAAO16B,EACP8pQ,EAAYj0Q,GAKd,OAHiB,OAAbgxnB,GACF/jnB,EAAOjO,KAAK2xnB,GAAiB,CAAC12mB,MAAO+2mB,EAAUx/lB,IAAAA,EAAKmpU,KAAAA,EAAMrjR,MAAAA,EAAOj7D,MAAAA,KAE5DpP,EAET,SAASkknB,GAAe73kB,EAAMl/B,GAG5B,IAFA,IAAMnN,EAAS,GACTozf,EAAW/md,EAAK+md,SACbl2f,EAAI,EAAGA,EAAIk2f,EAAS3hgB,OAAQyL,IAAK,CACxC,IAAMsiM,EAAMmkb,GAAcvwH,EAASl2f,GAAImvC,EAAKwka,OAAQ1jc,GAChDqyL,EAAI/tM,QACNuO,EAAOjO,KAAP,MAAAiO,GAAM,OAASw/L,IAGnB,OAAOx/L,EAkET,SAASmknB,GAAc93kB,EAAM+md,EAAUviD,EAAQuzK,GAC7C,OAAKA,GAAmBA,EAAetH,YAAejsK,EAKxD,SAAyBxka,EAAM+md,EAAUviD,EAAQuzK,GAC/C,IAAMC,EAAeh4kB,EAAKi4kB,OAAOx3jB,aAC3By3jB,EAAYC,GAAUn4kB,EAAK9gC,SACXg6lB,EAAqCl5jB,EAApDo4kB,cAAuCvE,EAAa7zkB,EAAvB9gC,QAAU20mB,SACxC71iB,EAAQwmY,EAAOp/c,OACfuO,EAAS,GACX0knB,EAAYH,EACZv3mB,EAAQomf,EAAS,GAAGpmf,MACpB9P,EAAI8P,EACR,SAAS23mB,EAAS3mmB,EAAGrsB,EAAG0vF,EAAGqkH,GACzB,IAAM9mD,EAAMshe,GAAY,EAAI,EAC5B,GAAIlimB,IAAMrsB,EAAV,CAIA,IADAqsB,GAAKqsD,EACEwmY,EAAO7yb,EAAIqsD,GAAOlzB,MACvBn5B,GAAK4gI,EAEP,KAAOiyT,EAAOl/c,EAAI04E,GAAOlzB,MACvBxlD,GAAKitJ,EAEH5gI,EAAIqsD,IAAU14E,EAAI04E,IACpBrqE,EAAOjO,KAAK,CAACib,MAAOgR,EAAIqsD,EAAO9lD,IAAK5yB,EAAI04E,EAAOqjR,KAAMrsQ,EAAGjyE,MAAOs2L,IAC/Dg/a,EAAYh/a,EACZ14L,EAAQrb,EAAI04E,IAxB+C,gBA2BzC+ob,GA3ByC,IA2B/D,2BAAgC,KAArByN,EAAqB,QAC9B7zf,EAAQkzmB,EAAWlzmB,EAAQ6zf,EAAQ7zf,MACnC,IAAI4qB,EAAOi5a,EAAO7jc,EAAQq9D,GACtBj7D,OAAK,EACT,IAAKlS,EAAI8P,EAAQ,EAAG9P,GAAK2jgB,EAAQt8e,IAAKrnB,IAAK,CACzC,IAAM80T,EAAK6+I,EAAO3zc,EAAImtE,GASlBu6iB,GARJx1mB,EAAQo1mB,GAAUJ,EAAetH,WAAW3qgB,GAAckygB,EAAc,CACtEvvmB,KAAM,UACN+vmB,GAAIjtlB,EACJ4kG,GAAIw1L,EACJ8yT,aAAc5nnB,EAAI,GAAKmtE,EACvB06iB,YAAa7nnB,EAAImtE,EACjBk7hB,aAAAA,MAEsBmf,IACtBC,EAAS33mB,EAAO9P,EAAI,EAAG2jgB,EAAQnzK,KAAMg3R,GAEvC9slB,EAAOo6R,EACP0yT,EAAYt1mB,EAEVpC,EAAQ9P,EAAI,GACdynnB,EAAS33mB,EAAO9P,EAAI,EAAG2jgB,EAAQnzK,KAAMg3R,IAhDsB,8BAmD/D,OAAO1knB,EArDAglnB,CAAgB34kB,EAAM+md,EAAUviD,EAAQuzK,GAFtChxH,EAyDX,SAASoxH,GAAUj5mB,GACjB,MAAO,CACLipB,gBAAiBjpB,EAAQipB,gBACzBywlB,eAAgB15mB,EAAQ05mB,eACxBC,WAAY35mB,EAAQ25mB,WACpBC,iBAAkB55mB,EAAQ45mB,iBAC1BC,gBAAiB75mB,EAAQ65mB,gBACzBn7kB,YAAa1+B,EAAQ0+B,YACrBG,YAAa7+B,EAAQ6+B,aAGzB,SAASw6kB,GAAax1mB,EAAOs1mB,GAC3B,OAAOA,GAAaj4mB,KAAKC,UAAU0C,KAAW3C,KAAKC,UAAUg4mB,OC17EzDlia,GAAAA,WACJ,cAAc,eACZrxN,KAAKk0nB,SAAW,KAChBl0nB,KAAKm0nB,QAAU,IAAI38X,IACnBx3P,KAAKo0nB,UAAW,EAChBp0nB,KAAKq0nB,eAAYj8mB,wCAEnB,SAAQorgB,EAAO8wG,EAAOpwlB,EAAMvgB,GAC1B,IAAM+M,EAAY4jmB,EAAM9vf,UAAU7gH,GAC5B4wmB,EAAWD,EAAM90Z,SACvB9uM,EAAUzwB,SAAQ,SAAA25B,GAAE,OAAIA,EAAG,CACzB4pf,MAAAA,EACA79R,QAAS2uY,EAAM3uY,QACf4uY,SAAAA,EACAC,YAAa7umB,KAAKG,IAAIoe,EAAOowlB,EAAMz4mB,MAAO04mB,gCAG9C,WAAW,WACLv0nB,KAAKk0nB,WAGTl0nB,KAAKo0nB,UAAW,EAChBp0nB,KAAKk0nB,SAAW/gB,EAAiB1ymB,KAAKglB,QAAQ,WAC5C,EAAKpE,UACL,EAAK6ymB,SAAW,KACZ,EAAKE,UACP,EAAKxoY,sCAIX,WAA2B,WAAnB1nN,EAAmB,uDAAZoqC,KAAKskC,MACd09b,EAAY,EAChBtwiB,KAAKm0nB,QAAQl0nB,SAAQ,SAACq0nB,EAAO9wG,GAC3B,GAAK8wG,EAAM9pd,SAAY8pd,EAAM5onB,MAAMpL,OAAnC,CAOA,IAJA,IAGIJ,EAHEwL,EAAQ4onB,EAAM5onB,MAChBK,EAAIL,EAAMpL,OAAS,EACnBsgO,GAAO,EAEJ70N,GAAK,IAAKA,GACf7L,EAAOwL,EAAMK,IACJkyR,SACH/9R,EAAKu0nB,OAASH,EAAM90Z,WACtB80Z,EAAM90Z,SAAWt/N,EAAKu0nB,QAExBv0nB,EAAK+igB,KAAK/+d,GACV08L,GAAO,IAEPl1N,EAAMK,GAAKL,EAAMA,EAAMpL,OAAS,GAChCoL,EAAM0sC,OAGNwoL,IACF4iT,EAAM5iT,OACN,EAAKm5R,QAAQypB,EAAO8wG,EAAOpwlB,EAAM,aAE9Bx4B,EAAMpL,SACTg0nB,EAAM9pd,SAAU,EAChB,EAAKuvV,QAAQypB,EAAO8wG,EAAOpwlB,EAAM,YACjCowlB,EAAM3uY,SAAU,GAElB2qT,GAAa5kiB,EAAMpL,WAErBN,KAAKq0nB,UAAYnwlB,EACC,IAAdosgB,IACFtwiB,KAAKo0nB,UAAW,4BAGpB,SAAU5wG,GACR,IAAMkxG,EAAS10nB,KAAKm0nB,QAChBG,EAAQI,EAAO70mB,IAAI2jgB,GAavB,OAZK8wG,IACHA,EAAQ,CACN9pd,SAAS,EACTm7E,SAAS,EACTj6O,MAAO,GACP84H,UAAW,CACTy/F,SAAU,GACVi+R,SAAU,KAGdwyH,EAAO1vjB,IAAIw+c,EAAO8wG,IAEbA,wBAET,SAAO9wG,EAAOhpgB,EAAOwtH,GACnBhoI,KAAK20nB,UAAUnxG,GAAOh/Y,UAAUhqH,GAAO5Z,KAAKonI,sBAE9C,SAAIw7Y,EAAO93gB,GAAO,MACXA,GAAUA,EAAMpL,SAGrB,EAAAN,KAAK20nB,UAAUnxG,GAAO93gB,OAAM9K,KAA5B,gBAAoC8K,uBAEtC,SAAI83gB,GACF,OAAOxjhB,KAAK20nB,UAAUnxG,GAAO93gB,MAAMpL,OAAS,uBAE9C,SAAMkjhB,GACJ,IAAM8wG,EAAQt0nB,KAAKm0nB,QAAQt0mB,IAAI2jgB,GAC1B8wG,IAGLA,EAAM9pd,SAAU,EAChB8pd,EAAMz4mB,MAAQyyD,KAAKskC,MACnB0hhB,EAAM90Z,SAAW80Z,EAAM5onB,MAAMhC,QAAO,SAACC,EAAK8/P,GAAN,OAAc9jP,KAAKC,IAAIjc,EAAK8/P,EAAImrX,aAAY,GAChF50nB,KAAK4rP,mCAEP,SAAQ43R,GACN,IAAKxjhB,KAAKo0nB,SACR,OAAO,EAET,IAAME,EAAQt0nB,KAAKm0nB,QAAQt0mB,IAAI2jgB,GAC/B,SAAK8wG,GAAUA,EAAM9pd,SAAY8pd,EAAM5onB,MAAMpL,4BAK/C,SAAKkjhB,GACH,IAAM8wG,EAAQt0nB,KAAKm0nB,QAAQt0mB,IAAI2jgB,GAC/B,GAAK8wG,GAAUA,EAAM5onB,MAAMpL,OAA3B,CAKA,IAFA,IAAMoL,EAAQ4onB,EAAM5onB,MAChBK,EAAIL,EAAMpL,OAAS,EAChByL,GAAK,IAAKA,EACfL,EAAMK,GAAGg6B,SAEXuulB,EAAM5onB,MAAQ,GACd1L,KAAK+5f,QAAQypB,EAAO8wG,EAAOhmjB,KAAKskC,MAAO,mCAEzC,SAAO4wa,GACL,OAAOxjhB,KAAKm0nB,QAAQvmY,OAAO41R,SApIzBnyT,GAuIFwja,GAAW,IAAIxja,GAEb+xZ,GAAc,cACd0R,GAAgB,CACpB3ta,QADoB,SACZh+M,EAAM63D,EAAI+zjB,GAChB,OAAOA,EAAS,GAAM/zjB,EAAK73D,GAE7BiwC,MAJoB,SAIdjwC,EAAM63D,EAAI+zjB,GACd,IAAMC,EAAK57kB,GAAMjwC,GAAQi6mB,IACnBpkb,EAAKg2b,EAAGjhK,OAAS36a,GAAM4nB,GAAMoijB,IACnC,OAAOpkb,GAAMA,EAAG+0R,MACZ/0R,EAAGi2b,IAAID,EAAID,GAAQpb,YACnB34iB,GAENyY,OAXoB,SAWbtwE,EAAM63D,EAAI+zjB,GACf,OAAO5rnB,GAAQ63D,EAAK73D,GAAQ4rnB,IAG1B7xH,GAAAA,WACJ,WAAYgyH,EAAKtunB,EAAQ6/G,EAAMzlD,IAAI,eACjC,IAAM0Z,EAAe9zE,EAAO6/G,GAC5BzlD,EAAK5wD,GAAQ,CAAC8knB,EAAIl0jB,GAAIA,EAAI0Z,EAAcw6iB,EAAI/rnB,OAC5C,IAAMA,EAAOiH,GAAQ,CAAC8knB,EAAI/rnB,KAAMuxE,EAAc1Z,IAC9ChhE,KAAKi+R,SAAU,EACfj+R,KAAKm1nB,IAAMD,EAAIt7lB,IAAMk7lB,GAAcI,EAAIvxmB,aAAexa,GACtDnJ,KAAK6igB,QAAU/jZ,GAAQo2gB,EAAI53Z,SAAWx+G,GAAQq+G,OAC9Cn9N,KAAKyrS,OAAS9lR,KAAKo1B,MAAMuzB,KAAKskC,OAASsihB,EAAIp3f,OAAS,IACpD99H,KAAK40nB,UAAY50nB,KAAKy0nB,OAAS9umB,KAAKo1B,MAAMm6kB,EAAI11Z,UAC9Cx/N,KAAKqmX,QAAU6uQ,EAAI34R,KACnBv8V,KAAKw6B,QAAU5zB,EACf5G,KAAK+9b,MAAQt3U,EACbzmH,KAAKo1nB,MAAQjsnB,EACbnJ,KAAKq1nB,IAAMr0jB,EACXhhE,KAAKs1nB,eAAYl9mB,uCAEnB,WACE,OAAOpY,KAAKi+R,8BAEd,SAAOi3V,EAAKl0jB,EAAI98B,GACd,GAAIlkC,KAAKi+R,QAAS,CAChBj+R,KAAK+5f,SAAQ,GACb,IAAMr/a,EAAe16E,KAAKw6B,QAAQx6B,KAAK+9b,OACjCw3L,EAAUrxlB,EAAOlkC,KAAKyrS,OACtB+pV,EAASx1nB,KAAK40nB,UAAYW,EAChCv1nB,KAAKyrS,OAASvnQ,EACdlkC,KAAK40nB,UAAYjvmB,KAAKo1B,MAAMp1B,KAAKC,IAAI4vmB,EAAQN,EAAI11Z,WACjDx/N,KAAKy0nB,QAAUc,EACfv1nB,KAAKqmX,QAAU6uQ,EAAI34R,KACnBv8V,KAAKq1nB,IAAMjlnB,GAAQ,CAAC8knB,EAAIl0jB,GAAIA,EAAI0Z,EAAcw6iB,EAAI/rnB,OAClDnJ,KAAKo1nB,MAAQhlnB,GAAQ,CAAC8knB,EAAI/rnB,KAAMuxE,EAAc1Z,2BAGlD,WACMhhE,KAAKi+R,UACPj+R,KAAKijgB,KAAK30b,KAAKskC,OACf5yG,KAAKi+R,SAAU,EACfj+R,KAAK+5f,SAAQ,wBAGjB,SAAK71d,GACH,IAMI6wlB,EANEQ,EAAUrxlB,EAAOlkC,KAAKyrS,OACtBjsE,EAAWx/N,KAAK40nB,UAChBnugB,EAAOzmH,KAAK+9b,MACZ50b,EAAOnJ,KAAKo1nB,MACZ74R,EAAOv8V,KAAKqmX,MACZrlT,EAAKhhE,KAAKq1nB,IAGhB,GADAr1nB,KAAKi+R,QAAU90R,IAAS63D,IAAOu7R,GAASg5R,EAAU/1Z,IAC7Cx/N,KAAKi+R,QAGR,OAFAj+R,KAAKw6B,QAAQisF,GAAQzlD,OACrBhhE,KAAK+5f,SAAQ,GAGXw7H,EAAU,EACZv1nB,KAAKw6B,QAAQisF,GAAQt9G,GAGvB4rnB,EAAUQ,EAAU/1Z,EAAY,EAChCu1Z,EAASx4R,GAAQw4R,EAAS,EAAI,EAAIA,EAASA,EAC3CA,EAAS/0nB,KAAK6igB,QAAQl9e,KAAKG,IAAI,EAAGH,KAAKC,IAAI,EAAGmvmB,KAC9C/0nB,KAAKw6B,QAAQisF,GAAQzmH,KAAKm1nB,IAAIhsnB,EAAM63D,EAAI+zjB,wBAE1C,WACE,IAAMrzjB,EAAW1hE,KAAKs1nB,YAAct1nB,KAAKs1nB,UAAY,IACrD,OAAO,IAAIn3kB,SAAQ,SAACkjB,EAAKo0jB,GACvB/zjB,EAAS9gE,KAAK,CAACygE,IAAAA,EAAKo0jB,IAAAA,8BAGxB,SAAQC,GAGN,IAFA,IAAM1snB,EAAS0snB,EAAW,MAAQ,MAC5Bh0jB,EAAW1hE,KAAKs1nB,WAAa,GAC1BvpnB,EAAI,EAAGA,EAAI21D,EAASphE,OAAQyL,IACnC21D,EAAS31D,GAAG/C,WA1EZk6f,GAiFNp8S,GAAS9hJ,IAAI,YAAa,CACxB84D,WAAO1lH,EACPonN,SAAU,IACVlC,OAAQ,eACR1jM,QAAIxhB,EACJjP,UAAMiP,EACNmkV,UAAMnkV,EACN4oD,QAAI5oD,EACJuL,UAAMvL,IAER,IAAMu9mB,GAAmB7unB,OAAOC,KAAK+/M,GAASwd,WAC9Cxd,GAAS0+Z,SAAS,YAAa,CAC7BQ,WAAW,EACXD,YAAY,EACZD,YAAa,SAACt4mB,GAAD,MAAmB,eAATA,GAAkC,eAATA,GAAkC,OAATA,KAE3Es5M,GAAS9hJ,IAAI,aAAc,CACzBgqI,OAAQ,CACNrrL,KAAM,QACNs2C,WApBW,CAAC,QAAS,cAAe,oBAsBtC2wD,QAAS,CACPjnG,KAAM,SACNs2C,WAzBY,CAAC,IAAK,IAAK,cAAe,SAAU,cA4BpD6sJ,GAAS0+Z,SAAS,aAAc,CAC9BQ,UAAW,cAEbl/Z,GAAS9hJ,IAAI,cAAe,CAC1B75C,OAAQ,CACNm5M,UAAW,CACT9E,SAAU,MAGdjjN,OAAQ,CACN+nN,UAAW,CACT9E,SAAU,IAGdh+K,KAAM,CACJkid,WAAY,CACV10T,OAAQ,CACN7lM,KAAM,eAERN,QAAS,CACP8a,KAAM,UACN67M,SAAU,KAIhBt1J,KAAM,CACJw5b,WAAY,CACV10T,OAAQ,CACNhuI,GAAI,eAENn4D,QAAS,CACP8a,KAAM,UACN25M,OAAQ,SACR1jM,GAAI,SAAAitB,GAAC,OAAQ,EAAJA,YAKX+ukB,GAAAA,WACJ,WAAYpyG,EAAOl0c,IAAQ,eACzBtvE,KAAKmznB,OAAS3vG,EACdxjhB,KAAK61nB,YAAc,IAAIr+X,IACvBx3P,KAAKm+R,UAAU7uN,2CAEjB,SAAUA,GACR,GAAK66I,EAAS76I,GAAd,CAGA,IAAMwmjB,EAAgB91nB,KAAK61nB,YAC3B/unB,OAAOy6D,oBAAoB+N,GAAQrvE,SAAQ,SAAA+G,GACzC,IAAMkunB,EAAM5ljB,EAAOtoE,GACnB,GAAKmjN,EAAS+qa,GAAd,CAGA,IALgD,EAK1CQ,EAAW,GAL+B,UAM3BC,IAN2B,IAMhD,2BAAuC,KAA5B9wmB,EAA4B,QACrC6wmB,EAAS7wmB,GAAUqwmB,EAAIrwmB,IAPuB,+BAS/C22D,EAAQ05iB,EAAIj7jB,aAAei7jB,EAAIj7jB,YAAc,CAACjzD,IAAM/G,SAAQ,SAACwmH,GACxDA,IAASz/G,GAAQ8unB,EAAcj8lB,IAAI4sF,IACrCqvgB,EAAc9wjB,IAAIyhD,EAAMivgB,0CAKhC,SAAgB9unB,EAAQgT,GACtB,IAAM6iF,EAAa7iF,EAAOQ,QACpBA,EAwEV,SAA8BxT,EAAQ61F,GACpC,IAAKA,EACH,OAEF,IAAIriF,EAAUxT,EAAOwT,QACrB,IAAKA,EAEH,YADAxT,EAAOwT,QAAUqiF,GAGfriF,EAAQ27mB,UACVnvnB,EAAOwT,QAAUA,EAAUtT,OAAOw4C,OAAO,GAAIllC,EAAS,CAAC27mB,SAAS,EAAOC,YAAa,MAEtF,OAAO57mB,EApFW67mB,CAAqBrvnB,EAAQ61F,GAC7C,IAAKriF,EACH,MAAO,GAET,IAAMspf,EAAa1jgB,KAAKk2nB,kBAAkB97mB,EAASqiF,GAOnD,OANIA,EAAWs5hB,SAwDnB,SAAkBryH,EAAYzpc,GAG5B,IAFA,IAAMuwG,EAAU,GACVzjK,EAAOD,OAAOC,KAAKkzD,GAChBluD,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAAK,CACpC,IAAM8zM,EAAO6jT,EAAW38f,EAAKgF,IACzB8zM,GAAQA,EAAK10L,UACfq/I,EAAQ5pK,KAAKi/M,EAAKmxV,QAGtB,OAAO7yf,QAAQpI,IAAIy0H,GAhEf2rd,CAASvvnB,EAAOwT,QAAQ47mB,YAAav5hB,GAAYj+C,MAAK,WACpD53C,EAAOwT,QAAUqiF,KAChB,eAGEina,mCAET,SAAkB98f,EAAQgT,GACxB,IAKI7N,EALE+pnB,EAAgB91nB,KAAK61nB,YACrBnyH,EAAa,GACbl5V,EAAU5jK,EAAOovnB,cAAgBpvnB,EAAOovnB,YAAc,IACtDx2gB,EAAQ14G,OAAOC,KAAK6S,GACpBsqB,EAAOoqC,KAAKskC,MAElB,IAAK7mG,EAAIyzG,EAAMl/G,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACtC,IAAM06G,EAAOjH,EAAMzzG,GACnB,GAAuB,MAAnB06G,EAAKvhC,OAAO,GAGhB,GAAa,YAATuhC,EAAJ,CAIA,IAAM7kH,EAAQgY,EAAO6sG,GACjB69G,EAAY95D,EAAQ/jD,GAClByugB,EAAMY,EAAcj2mB,IAAI4mG,GAC9B,GAAI69G,EAAW,CACb,GAAI4wZ,GAAO5wZ,EAAUn5M,SAAU,CAC7Bm5M,EAAUjmN,OAAO62mB,EAAKtznB,EAAOsiC,GAC7B,SAEAogM,EAAUv+L,SAGTmvlB,GAAQA,EAAI11Z,UAIjBh1D,EAAQ/jD,GAAQ69G,EAAY,IAAI4+R,GAAUgyH,EAAKtunB,EAAQ6/G,EAAM7kH,GAC7D8hgB,EAAW9igB,KAAK0jO,IAJd19N,EAAO6/G,GAAQ7kH,OAff8hgB,EAAW9igB,KAAX,MAAA8igB,GAAU,OAAS1jgB,KAAKo2nB,gBAAgBxvnB,EAAQgT,KAqBpD,OAAO8pf,wBAET,SAAO98f,EAAQgT,GACb,GAA8B,IAA1B5Z,KAAK61nB,YAAYr9mB,KAArB,CAIA,IAAMkrf,EAAa1jgB,KAAKk2nB,kBAAkBtvnB,EAAQgT,GAClD,OAAI8pf,EAAWpjgB,QACbu0nB,GAASvznB,IAAItB,KAAKmznB,OAAQzvH,IACnB,QAFT,EAJE58f,OAAOw4C,OAAO14C,EAAQgT,SAhFtBg8mB,GAoHN,SAASS,GAAU/0Z,EAAOg1Z,GACxB,IAAMttgB,EAAOs4G,GAASA,EAAMlnN,SAAW,GACjC2Z,EAAUi1F,EAAKj1F,QACfjO,OAAmB1N,IAAb4wG,EAAKljG,IAAoBwwmB,EAAkB,EACjD1wmB,OAAmBxN,IAAb4wG,EAAKpjG,IAAoB0wmB,EAAkB,EACvD,MAAO,CACLz6mB,MAAOkY,EAAUnO,EAAME,EACvBsN,IAAKW,EAAUjO,EAAMF,GAkCzB,SAAS2wmB,GAAwB/yG,EAAOgzG,GACtC,IAEIzqnB,EAAGkomB,EAFDltmB,EAAO,GACP0vnB,EAAWjzG,EAAMkzG,uBAAuBF,GAE9C,IAAKzqnB,EAAI,EAAGkomB,EAAOwiB,EAASn2nB,OAAQyL,EAAIkomB,IAAQlomB,EAC9ChF,EAAKnG,KAAK61nB,EAAS1qnB,GAAGlL,OAExB,OAAOkG,EAET,SAAS4vnB,GAAWrgiB,EAAO10F,EAAOg1nB,GAAuB,IAGnD7qnB,EAAGkomB,EAAMG,EAAcr5H,EAHc3ge,EAAc,uDAAJ,GAC7CrT,EAAOuvF,EAAMvvF,KACb8vnB,EAA8B,WAAjBz8mB,EAAQiqD,KAE3B,GAAc,OAAVziE,EAAJ,CAGA,IAAKmK,EAAI,EAAGkomB,EAAOltmB,EAAKzG,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAE7C,IADAqomB,GAAgBrtmB,EAAKgF,MACA6qnB,EAAS,CAC5B,GAAIx8mB,EAAQ27B,IACV,SAEF,MAEFglc,EAAazkZ,EAAM18E,OAAOw6lB,GACtBX,EAAe14H,KAAgB87I,GAAyB,IAAVj1nB,GAAe4xD,GAAK5xD,KAAW4xD,GAAKunb,MACpFn5e,GAASm5e,GAGb,OAAOn5e,GAeT,SAASk1nB,GAAUx1Z,EAAOv6I,GACxB,IAAMy+e,EAAUlkW,GAASA,EAAMlnN,QAAQorjB,QACvC,OAAOA,QAAwBptjB,IAAZotjB,QAAwCptjB,IAAf2uE,EAAKuP,MAYnD,SAASygiB,GAAiBC,EAAQC,EAAUC,GAC1C,IAAMC,EAAWH,EAAOC,KAAcD,EAAOC,GAAY,IACzD,OAAOE,EAASD,KAAgBC,EAASD,GAAc,IAEzD,SAASE,GAAoB9giB,EAAO+giB,EAAQC,EAAU3zmB,GAAM,gBACvC0zmB,EAAOE,wBAAwB5zmB,GAAMoQ,WADE,IAC1D,2BAAmE,KAAxDgzD,EAAwD,QAC3DnlF,EAAQ00F,EAAMvP,EAAKlmF,OACzB,GAAKy2nB,GAAY11nB,EAAQ,IAAQ01nB,GAAY11nB,EAAQ,EACnD,OAAOmlF,EAAKlmF,OAJ0C,8BAO1D,OAAO,KAET,SAAS22nB,GAAat9gB,EAAY+xG,GAShC,IARA,IAOI31H,EAPGktb,EAA4Btpa,EAA5Bspa,MAAoBz8b,EAAQmzB,EAArBu9gB,YACRT,EAASxzG,EAAMk0G,UAAYl0G,EAAMk0G,QAAU,IAC1CC,EAAuC5wiB,EAAvC4wiB,OAAQN,EAA+BtwiB,EAA/BswiB,OAAejjB,EAAgBrthB,EAAvBlmF,MACjB+2nB,EAAQD,EAAO5jkB,KACf8jkB,EAAQR,EAAOtjkB,KACf/sD,EA7BR,SAAqB8wnB,EAAYC,EAAYhxiB,GAC3C,gBAAU+wiB,EAAW7tnB,GAArB,YAA2B8tnB,EAAW9tnB,GAAtC,YAA4C88E,EAAKuP,OAASvP,EAAKpjE,MA4BnDq0mB,CAAYL,EAAQN,EAAQtwiB,GAClCkthB,EAAOhoZ,EAAO3rN,OAEXyL,EAAI,EAAGA,EAAIkomB,IAAQlomB,EAAG,CAC7B,IAAM7L,EAAO+rN,EAAOlgN,GACJlL,EAAyBX,EAAjC03nB,GAAwBh2nB,EAAS1B,EAAjB23nB,IAExBvhiB,GADmBp2F,EAAKw3nB,UAAYx3nB,EAAKw3nB,QAAU,KAChCG,GAASd,GAAiBC,EAAQhwnB,EAAKnG,IACpDuzmB,GAAgBxymB,EACtB00F,EAAM2hiB,KAAOb,GAAoB9giB,EAAO+giB,GAAQ,EAAMtwiB,EAAKpjE,MAC3D2yE,EAAM4hiB,QAAUd,GAAoB9giB,EAAO+giB,GAAQ,EAAOtwiB,EAAKpjE,OAGnE,SAASw0mB,GAAgB30G,EAAOzvd,GAC9B,IAAMsxjB,EAAS7hG,EAAM6hG,OACrB,OAAOv+mB,OAAOC,KAAKs+mB,GAAQz/mB,QAAO,SAAAoB,GAAG,OAAIq+mB,EAAOr+mB,GAAK+sD,OAASA,KAAMiS,QA0BtE,SAASoyjB,GAAYrxiB,EAAMr7E,GACzB,IAAM0omB,EAAerthB,EAAKmzB,WAAWr5G,MAC/BkzD,EAAOgzB,EAAKswiB,QAAUtwiB,EAAKswiB,OAAOtjkB,KACxC,GAAKA,EAAL,CAGAroD,EAAQA,GAASq7E,EAAKsxiB,QANU,gBAOX3snB,GAPW,IAOhC,2BAA4B,KACpBsrnB,EADoB,QACJU,QACtB,IAAKV,QAA2B5+mB,IAAjB4+mB,EAAOjjkB,SAAsD37C,IAA/B4+mB,EAAOjjkB,GAAMqgjB,GACxD,cAEK4iB,EAAOjjkB,GAAMqgjB,IAZU,gCAelC,IAAMkkB,GAAqB,SAACj0jB,GAAD,MAAmB,UAATA,GAA6B,SAATA,GACnDk0jB,GAAmB,SAAChtF,EAAQ/qB,GAAT,OAAoBA,EAAS+qB,EAASzkiB,OAAOw4C,OAAO,GAAIisf,IAG3EitF,GAAAA,WACJ,WAAYh1G,EAAO4wF,IAAc,eAC/Bp0mB,KAAKwjhB,MAAQA,EACbxjhB,KAAKy4nB,KAAOj1G,EAAMp0U,IAClBpvM,KAAKa,MAAQuzmB,EACbp0mB,KAAK04nB,gBAAkB,GACvB14nB,KAAKy3nB,YAAcz3nB,KAAK24nB,UACxB34nB,KAAKm6F,MAAQn6F,KAAKy3nB,YAAY9zmB,KAC9B3jB,KAAKoa,aAAUhC,EACfpY,KAAK44nB,UAAW,EAChB54nB,KAAK02E,WAAQt+D,EACbpY,KAAK64nB,iBAAczgnB,EACnBpY,KAAK84nB,oBAAiB1gnB,EACtBpY,KAAK+4nB,gBAAa3gnB,EAClBpY,KAAKg5nB,gBAAa5gnB,EAClBpY,KAAKi5nB,qBAAsB,EAC3Bj5nB,KAAKonB,cAAWhP,EAChBpY,KAAKk5nB,UAAY,GACjBl5nB,KAAK0G,sDAEP,WACE,IAAMqgF,EAAO/mF,KAAKy3nB,YAClBz3nB,KAAKm+R,YACLn+R,KAAKm5nB,aACLpyiB,EAAKqyiB,SAAWtC,GAAU/viB,EAAKswiB,OAAQtwiB,GACvC/mF,KAAKq5nB,yCAEP,SAAYjlB,GACNp0mB,KAAKa,QAAUuzmB,GACjBgkB,GAAYp4nB,KAAKy3nB,aAEnBz3nB,KAAKa,MAAQuzmB,4BAEf,WACE,IAAM5wF,EAAQxjhB,KAAKwjhB,MACbz8b,EAAO/mF,KAAKy3nB,YACZ7+mB,EAAU5Y,KAAKs5nB,aACfC,EAAW,SAACxlkB,EAAM/iD,EAAG2M,EAAG4oD,GAAb,MAA4B,MAATxS,EAAe/iD,EAAa,MAAT+iD,EAAewS,EAAI5oD,GACpE67mB,EAAMzyiB,EAAK0yiB,QAAU9lB,EAAe/6lB,EAAQ6gnB,QAAStB,GAAgB30G,EAAO,MAC5Ek2G,EAAM3yiB,EAAK4yiB,QAAUhmB,EAAe/6lB,EAAQ+gnB,QAASxB,GAAgB30G,EAAO,MAC5Eo2G,EAAM7yiB,EAAK8yiB,QAAUlmB,EAAe/6lB,EAAQihnB,QAAS1B,GAAgB30G,EAAO,MAC5EshG,EAAY/9hB,EAAK+9hB,UACjBgV,EAAM/yiB,EAAKgziB,QAAUR,EAASzU,EAAW0U,EAAKE,EAAKE,GACnDI,EAAMjziB,EAAKkziB,QAAUV,EAASzU,EAAW4U,EAAKF,EAAKI,GACzD7yiB,EAAKmziB,OAASl6nB,KAAKm6nB,cAAcX,GACjCzyiB,EAAKqziB,OAASp6nB,KAAKm6nB,cAAcT,GACjC3yiB,EAAKsziB,OAASr6nB,KAAKm6nB,cAAcP,GACjC7yiB,EAAK4wiB,OAAS33nB,KAAKm6nB,cAAcL,GACjC/yiB,EAAKswiB,OAASr3nB,KAAKm6nB,cAAcH,6BAEnC,WACE,OAAOh6nB,KAAKwjhB,MAAM31gB,KAAK42mB,SAASzknB,KAAKa,8BAEvC,WACE,OAAOb,KAAKwjhB,MAAM82G,eAAet6nB,KAAKa,oCAExC,SAAc05nB,GACZ,OAAOv6nB,KAAKwjhB,MAAM6hG,OAAOkV,iCAE3B,SAAej5Z,GACb,IAAMv6I,EAAO/mF,KAAKy3nB,YAClB,OAAOn2Z,IAAUv6I,EAAK4wiB,OAClB5wiB,EAAKswiB,OACLtwiB,EAAK4wiB,4BAEX,WACE33nB,KAAKqhB,QAAQ,iCAEf,WACE,IAAM0lE,EAAO/mF,KAAKy3nB,YACdz3nB,KAAK02E,OACP6ziB,GAAoBvqnB,KAAK02E,MAAO12E,MAE9B+mF,EAAKqyiB,UACPhB,GAAYrxiB,6BAGhB,WACE,IAAMnuE,EAAU5Y,KAAKs5nB,aACfzrnB,EAAO+K,EAAQ/K,OAAS+K,EAAQ/K,KAAO,IACvC6oE,EAAQ12E,KAAK02E,MACnB,GAAIyzI,EAASt8M,GACX7N,KAAK02E,MA5LX,SAAkC7oE,GAChC,IAEI9B,EAAGkomB,EAAMjtmB,EAFPD,EAAOD,OAAOC,KAAK8G,GACnB2snB,EAAQ,IAAIj1nB,MAAMwB,EAAKzG,QAE7B,IAAKyL,EAAI,EAAGkomB,EAAOltmB,EAAKzG,OAAQyL,EAAIkomB,IAAQlomB,EAC1C/E,EAAMD,EAAKgF,GACXyunB,EAAMzunB,GAAK,CACTiF,EAAGhK,EACH2W,EAAG9P,EAAK7G,IAGZ,OAAOwznB,EAiLUC,CAAyB5snB,QACjC,GAAI6oE,IAAU7oE,EAAM,CACzB,GAAI6oE,EAAO,CACT6ziB,GAAoB7ziB,EAAO12E,MAC3B,IAAM+mF,EAAO/mF,KAAKy3nB,YAClBW,GAAYrxiB,GACZA,EAAKsxiB,QAAU,GAEbxqnB,GAAQ/G,OAAO4znB,aAAa7snB,ID20BtC,SAA2BwqC,EAAOh4C,GAC5Bg4C,EAAMmykB,SACRnykB,EAAMmykB,SAAShmf,UAAU5jI,KAAKP,IAGhCyG,OAAOi+D,eAAe1sB,EAAO,WAAY,CACvC6sB,cAAc,EACdD,YAAY,EACZrjE,MAAO,CACL4iI,UAAW,CAACnkI,MAGhBiqnB,GAAYrqnB,SAAQ,SAAC+G,GACnB,IAAMgC,EAAS,UAAYgsmB,EAAYhumB,GACjC0gI,EAAOrvF,EAAMrxC,GACnBF,OAAOi+D,eAAe1sB,EAAOrxC,EAAK,CAChCk+D,cAAc,EACdD,YAAY,EACZrjE,MAHgC,WAGjB,2BAAN4kB,EAAM,yBAANA,EAAM,gBACb,IAAM66C,EAAMqmE,EAAK1hH,MAAMhmB,KAAMwmB,GAM7B,OALA6xB,EAAMmykB,SAAShmf,UAAUvkI,SAAQ,SAACmjB,GACF,oBAAnBA,EAAOpa,IAChBoa,EAAOpa,GAAP,MAAAoa,EAAkBoD,MAGf66C,SCn2BPs5jB,CAAkB9snB,EAAM7N,MAE1BA,KAAKk5nB,UAAY,GACjBl5nB,KAAK02E,MAAQ7oE,8BAGjB,WACE,IAAMk5E,EAAO/mF,KAAKy3nB,YAClBz3nB,KAAK46nB,aACD56nB,KAAK66nB,qBACP9ziB,EAAKnuE,QAAU,IAAI5Y,KAAK66nB,yDAG5B,SAAsBC,GACpB,IAAM/ziB,EAAO/mF,KAAKy3nB,YACZ7+mB,EAAU5Y,KAAKs5nB,aACjByB,GAAe,EACnB/6nB,KAAK46nB,aACL,IAAMI,EAAaj0iB,EAAKqyiB,SACxBryiB,EAAKqyiB,SAAWtC,GAAU/viB,EAAKswiB,OAAQtwiB,GACnCA,EAAKuP,QAAU19E,EAAQ09E,QACzBykiB,GAAe,EACf3C,GAAYrxiB,GACZA,EAAKuP,MAAQ19E,EAAQ09E,OAEvBt2F,KAAKi7nB,gBAAgBH,IACjBC,GAAgBC,IAAej0iB,EAAKqyiB,WACtC5B,GAAax3nB,KAAM+mF,EAAKsxiB,kCAG5B,WACE,IAAM/ojB,EAAStvE,KAAKwjhB,MAAMl0c,OACpB4rjB,EAAY5rjB,EAAO6rjB,iBAAiBn7nB,KAAKm6F,OACzCwwhB,EAASr7iB,EAAO8rjB,gBAAgBp7nB,KAAKs5nB,aAAc4B,GAAW,GACpEl7nB,KAAKoa,QAAUk1D,EAAO+rjB,eAAe1Q,EAAQ3qnB,KAAK27D,cAClD37D,KAAK44nB,SAAW54nB,KAAKoa,QAAQ+qmB,QAC7BnlnB,KAAK04nB,gBAAkB,wBAEzB,SAAM78mB,EAAOq9D,GACX,IAKIntE,EAAG09P,EAAKx9C,EALQllI,EAAqB/mF,KAAlCy3nB,YAA0B5pnB,EAAQ7N,KAAf02E,MACnBihjB,EAAoB5wiB,EAApB4wiB,OAAQyB,EAAYryiB,EAAZqyiB,SACTxB,EAAQD,EAAO5jkB,KACjBi8f,EAAmB,IAAVn0iB,GAAeq9D,IAAUrrE,EAAKvN,QAAgBymF,EAAKu0iB,QAC5D70lB,EAAO5qB,EAAQ,GAAKkrE,EAAKsxiB,QAAQx8mB,EAAQ,GAE7C,IAAsB,IAAlB7b,KAAK44nB,SACP7xiB,EAAKsxiB,QAAUxqnB,EACfk5E,EAAKu0iB,SAAU,EACfrva,EAASp+M,MACJ,CAEHo+M,EADEzwI,EAAQ3tE,EAAKgO,IACN7b,KAAKu7nB,eAAex0iB,EAAMl5E,EAAMgO,EAAOq9D,GACvCixI,EAASt8M,EAAKgO,IACd7b,KAAKw7nB,gBAAgBz0iB,EAAMl5E,EAAMgO,EAAOq9D,GAExCl5E,KAAKy7nB,mBAAmB10iB,EAAMl5E,EAAMgO,EAAOq9D,GAGtD,IAAKntE,EAAI,EAAGA,EAAImtE,IAASntE,EACvBg7E,EAAKsxiB,QAAQtsnB,EAAI8P,GAAS4tP,EAAMx9C,EAAOlgN,GACnCikjB,KAHkD,OAAfvmT,EAAImuX,IAAoBnxlB,GAAQgjO,EAAImuX,GAASnxlB,EAAKmxlB,MAKrF5nE,GAAS,GAEXvphB,EAAOgjO,GAGX1iL,EAAKu0iB,QAAUtrE,EAEbopE,GACF5B,GAAax3nB,KAAMisN,qCAGvB,SAAmBllI,EAAMl5E,EAAMgO,EAAOq9D,GACpC,IAMIntE,EAAGkomB,EAAMpzmB,EANN82nB,EAAkB5wiB,EAAlB4wiB,OAAQN,EAAUtwiB,EAAVswiB,OACTO,EAAQD,EAAO5jkB,KACf8jkB,EAAQR,EAAOtjkB,KACf1xB,EAASs1lB,EAAO+D,YAChBC,EAAchE,IAAWN,EACzBpra,EAAS,IAAI1mN,MAAM2zE,GAEzB,IAAKntE,EAAI,EAAGkomB,EAAO/6hB,EAAOntE,EAAIkomB,IAAQlomB,EAAG,OACvClL,EAAQkL,EAAI8P,EACZowM,EAAOlgN,IAAP,eACG6rnB,EAAQ+D,GAAehE,EAAOthiB,MAAMh0D,EAAOxhC,GAAQA,KADtD,SAEGg3nB,EAAQR,EAAOhhiB,MAAMxoF,EAAKhN,GAAQA,IAFrC,GAKF,OAAOorN,gCAET,SAAellI,EAAMl5E,EAAMgO,EAAOq9D,GAChC,IAEIntE,EAAGkomB,EAAMpzmB,EAAOX,EAFbg6nB,EAAkBnziB,EAAlBmziB,OAAQE,EAAUrziB,EAAVqziB,OACTnua,EAAS,IAAI1mN,MAAM2zE,GAEzB,IAAKntE,EAAI,EAAGkomB,EAAO/6hB,EAAOntE,EAAIkomB,IAAQlomB,EAEpC7L,EAAO2N,EADPhN,EAAQkL,EAAI8P,GAEZowM,EAAOlgN,GAAK,CACViF,EAAGkpnB,EAAO7jiB,MAAMn2F,EAAK,GAAIW,GACzB8c,EAAGy8mB,EAAO/jiB,MAAMn2F,EAAK,GAAIW,IAG7B,OAAOorN,iCAET,SAAgBllI,EAAMl5E,EAAMgO,EAAOq9D,GACjC,IAGIntE,EAAGkomB,EAAMpzmB,EAAOX,EAHbg6nB,EAAkBnziB,EAAlBmziB,OAAQE,EAAUrziB,EAAVqziB,OACf,EAAyCp6nB,KAAK44nB,SAA9C,IAAOgD,SAAAA,OAAP,MAAkB,IAAlB,MAAuBC,SAAAA,OAAvB,MAAkC,IAAlC,EACM5va,EAAS,IAAI1mN,MAAM2zE,GAEzB,IAAKntE,EAAI,EAAGkomB,EAAO/6hB,EAAOntE,EAAIkomB,IAAQlomB,EAEpC7L,EAAO2N,EADPhN,EAAQkL,EAAI8P,GAEZowM,EAAOlgN,GAAK,CACViF,EAAGkpnB,EAAO7jiB,MAAM0+gB,EAAiB70mB,EAAM07nB,GAAW/6nB,GAClD8c,EAAGy8mB,EAAO/jiB,MAAM0+gB,EAAiB70mB,EAAM27nB,GAAWh7nB,IAGtD,OAAOorN,2BAET,SAAUprN,GACR,OAAOb,KAAKy3nB,YAAYY,QAAQx3nB,iCAElC,SAAeA,GACb,OAAOb,KAAKy3nB,YAAY5pnB,KAAKhN,6BAE/B,SAAWygO,EAAOrV,EAAQ5nJ,GACxB,IAAMm/c,EAAQxjhB,KAAKwjhB,MACbz8b,EAAO/mF,KAAKy3nB,YACZ71nB,EAAQqqN,EAAOqV,EAAMvtK,MAK3B,OAAO4ikB,GAJO,CACZ5vnB,KAAMwvnB,GAAwB/yG,GAAO,GACrC5pgB,OAAQqyM,EAAOyra,QAAQp2Z,EAAMvtK,OAENnyD,EAAOmlF,EAAKlmF,MAAO,CAACwjE,KAAAA,yCAE/C,SAAsB2nB,EAAOs1I,EAAOrV,EAAQ31H,GAC1C,IAAMu3K,EAAc5hD,EAAOqV,EAAMvtK,MAC7BnyD,EAAwB,OAAhBisQ,EAAuB5nJ,IAAM4nJ,EACnCj0P,EAAS08E,GAAS21H,EAAOyra,QAAQp2Z,EAAMvtK,MACzCuiC,GAAS18E,IACX08E,EAAM18E,OAASA,EACfhY,EAAQ+0nB,GAAWrgiB,EAAOu3K,EAAa7tQ,KAAKy3nB,YAAY52nB,QAE1DmrF,EAAMlmE,IAAMH,KAAKG,IAAIkmE,EAAMlmE,IAAKlkB,GAChCoqF,EAAMpmE,IAAMD,KAAKC,IAAIomE,EAAMpmE,IAAKhkB,4BAElC,SAAU0/N,EAAOw6Z,GACf,IAQI/vnB,EAAGkgN,EARDllI,EAAO/mF,KAAKy3nB,YACZY,EAAUtxiB,EAAKsxiB,QACfroE,EAASjpe,EAAKu0iB,SAAWh6Z,IAAUv6I,EAAK4wiB,OACxC1jB,EAAOokB,EAAQ/3nB,OACfy7nB,EAAa/7nB,KAAKg8nB,eAAe16Z,GACjChrI,EArPU,SAACwliB,EAAU/0iB,EAAMy8b,GAAjB,OAA2Bs4G,IAAa/0iB,EAAKpyD,QAAUoyD,EAAKqyiB,UAC3E,CAACrynB,KAAMwvnB,GAAwB/yG,GAAO,GAAO5pgB,OAAQ,MAoPxCqinB,CAAYH,EAAU/0iB,EAAM/mF,KAAKwjhB,OACzCx3b,EAAQ,CAAClmE,IAAK2pC,OAAO6ljB,kBAAmB1vlB,IAAK6pC,OAAOyskB,mBAC1D,EA3UJ,SAAuB56Z,GACrB,MAA2CA,EAAM66Z,gBAA1Cr2mB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IAAKo4f,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,WAC7B,MAAO,CACLn4f,IAAKk4f,EAAal4f,EAAM2pC,OAAOyskB,kBAC/Bt2mB,IAAKq4f,EAAar4f,EAAM6pC,OAAO6ljB,mBAuUQ6mB,CAAcJ,GAAzCK,EAAZ,EAAOt2mB,IAAoBu2mB,EAA3B,EAAsBz2mB,IAEtB,SAAS02mB,IAEP,IAAMvhJ,GADN9uR,EAASosa,EAAQtsnB,IACSgwnB,EAAWhokB,MACrC,OAAQ0/iB,EAAexnZ,EAAOqV,EAAMvtK,QAAUqokB,EAAWrhJ,GAAcshJ,EAAWthJ,EAEpF,IAAKhve,EAAI,EAAGA,EAAIkomB,IACVqoB,MAGJt8nB,KAAKu8nB,sBAAsBvwiB,EAAOs1I,EAAOrV,EAAQ31H,IAC7C05d,MALkBjkjB,GASxB,GAAIikjB,EACF,IAAKjkjB,EAAIkomB,EAAO,EAAGlomB,GAAK,IAAKA,EAC3B,IAAIuwnB,IAAJ,CAGAt8nB,KAAKu8nB,sBAAsBvwiB,EAAOs1I,EAAOrV,EAAQ31H,GACjD,MAGJ,OAAOtK,oCAET,SAAmBs1I,GACjB,IAEIv1N,EAAGkomB,EAAMrymB,EAFPqqN,EAASjsN,KAAKy3nB,YAAYY,QAC1Bz+mB,EAAS,GAEf,IAAK7N,EAAI,EAAGkomB,EAAOhoZ,EAAO3rN,OAAQyL,EAAIkomB,IAAQlomB,EAC5CnK,EAAQqqN,EAAOlgN,GAAGu1N,EAAMvtK,MACpB0/iB,EAAe7xmB,IACjBgY,EAAOhZ,KAAKgB,GAGhB,OAAOgY,gCAET,WACE,OAAO,kCAET,SAAiB/Y,GACf,IAAMkmF,EAAO/mF,KAAKy3nB,YACZE,EAAS5wiB,EAAK4wiB,OACdN,EAAStwiB,EAAKswiB,OACdpra,EAASjsN,KAAKw8nB,UAAU37nB,GAC9B,MAAO,CACLwiJ,MAAOs0e,EAAS,GAAKA,EAAO8E,iBAAiBxwa,EAAO0ra,EAAO5jkB,OAAS,GACpEnyD,MAAOy1nB,EAAS,GAAKA,EAAOoF,iBAAiBxwa,EAAOora,EAAOtjkB,OAAS,2BAGxE,SAAQsQ,GACN,IAAM0iB,EAAO/mF,KAAKy3nB,YAClBz3nB,KAAKqe,OAAOgmD,GAAQ,WACpB0iB,EAAK21iB,MAvcT,SAAgB96nB,GACd,IAAIs0D,EAAGqQ,EAAG7gB,EAAGwqC,EASb,OARIi6H,EAASvoN,IACXs0D,EAAIt0D,EAAMkX,IACVytD,EAAI3kE,EAAMmc,MACV2nC,EAAI9jD,EAAMoc,OACVkyE,EAAItuF,EAAM8W,MAEVw9C,EAAIqQ,EAAI7gB,EAAIwqC,EAAItuF,EAEX,CACLkX,IAAKo9C,EACLn4C,MAAOwoD,EACPvoD,OAAQ0nC,EACRhtC,KAAMw3E,EACN9kF,UAAoB,IAAVxJ,GAwbG+6nB,CAAOhpB,EAAe3zmB,KAAKoa,QAAQkzM,KApdpD,SAAqB4sa,EAAQE,EAAQ9D,GACnC,IAAwB,IAApBA,EACF,OAAO,EAET,IAAMtlnB,EAAIqlnB,GAAU6D,EAAQ5D,GACtB34mB,EAAI04mB,GAAU+D,EAAQ9D,GAC5B,MAAO,CACLx9mB,IAAK6E,EAAEyV,IACPrV,MAAO/M,EAAEoiB,IACTpV,OAAQL,EAAE9B,MACVnD,KAAM1H,EAAE6K,OA0c8C+gnB,CAAY71iB,EAAKmziB,OAAQnziB,EAAKqziB,OAAQp6nB,KAAK68nB,0CAEnG,SAAOx4jB,wBACP,WACE,IASIt4D,EATEqjM,EAAMpvM,KAAKy4nB,KACXj1G,EAAQxjhB,KAAKwjhB,MACbz8b,EAAO/mF,KAAKy3nB,YACZ5skB,EAAWk8B,EAAKl5E,MAAQ,GACxBmgC,EAAOw1e,EAAMs5G,UACb3xmB,EAAS,GACTtP,EAAQ7b,KAAK+4nB,YAAc,EAC3B7/iB,EAAQl5E,KAAKg5nB,YAAenukB,EAASvqD,OAASub,EAC9C0pmB,EAA0BvlnB,KAAKoa,QAAQmrmB,wBAK7C,IAHIx+hB,EAAKnuE,SACPmuE,EAAKnuE,QAAQgoN,KAAKxxB,EAAKphK,EAAMnyB,EAAOq9D,GAEjCntE,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,IAASntE,EAAG,CACtC,IAAMjM,EAAU+qD,EAAS9+C,GACrBjM,EAAQ60B,SAGR70B,EAAQqrB,QAAUo6lB,EACpBp6lB,EAAOvqB,KAAKd,GAEZA,EAAQ8gO,KAAKxxB,EAAKphK,IAGtB,IAAKjiC,EAAI,EAAGA,EAAIof,EAAO7qB,SAAUyL,EAC/Bof,EAAOpf,GAAG60N,KAAKxxB,EAAKphK,2BAGxB,SAASntC,EAAOsqB,GACd,IAAMk5C,EAAOl5C,EAAS,SAAW,UACjC,YAAiB/S,IAAVvX,GAAuBb,KAAKy3nB,YAAY7+mB,QAC3C5Y,KAAK+8nB,6BAA6B14jB,GAClCrkE,KAAKg9nB,0BAA0Bn8nB,GAAS,EAAGwjE,6BAEjD,SAAWxjE,EAAOsqB,EAAQk5C,GACxB,IACI1pD,EADE/B,EAAU5Y,KAAKs5nB,aAErB,GAAIz4nB,GAAS,GAAKA,EAAQb,KAAKy3nB,YAAY5pnB,KAAKvN,OAAQ,CACtD,IAAMR,EAAUE,KAAKy3nB,YAAY5pnB,KAAKhN,GACtC8Z,EAAU7a,EAAQsnB,WACftnB,EAAQsnB,SAvXjB,SAA2B3b,EAAQ5K,EAAOf,GACxC,OAAOkhH,GAAcv1G,EAAQ,CAC3B0f,QAAQ,EACR8xmB,UAAWp8nB,EACXorN,YAAQ7zM,EACRkuN,SAAKluN,EACLtY,QAAAA,EACAe,MAAAA,EACAwjE,KAAM,UACN1gD,KAAM,SA8WkBu5mB,CAAkBl9nB,KAAK27D,aAAc96D,EAAOf,IAClE6a,EAAQsxM,OAASjsN,KAAKw8nB,UAAU37nB,GAChC8Z,EAAQ2rN,IAAM1tN,EAAQ/K,KAAKhN,GAC3B8Z,EAAQ9Z,MAAQ8Z,EAAQsinB,UAAYp8nB,OAEpC8Z,EAAU3a,KAAKonB,WACZpnB,KAAKonB,SAzYd,SAA8B3b,EAAQ5K,GACpC,OAAOmgH,GAAcv1G,EACnB,CACE0f,QAAQ,EACRvS,aAASR,EACTg8lB,aAAcvzmB,EACdA,MAAAA,EACAwjE,KAAM,UACN1gD,KAAM,YAiYaw5mB,CAAqBn9nB,KAAKwjhB,MAAM7nd,aAAc37D,KAAKa,QACtE8Z,EAAQ/B,QAAUA,EAClB+B,EAAQ9Z,MAAQ8Z,EAAQy5lB,aAAep0mB,KAAKa,MAI9C,OAFA8Z,EAAQwQ,SAAWA,EACnBxQ,EAAQ0pD,KAAOA,EACR1pD,8CAET,SAA6B0pD,GAC3B,OAAOrkE,KAAKo9nB,uBAAuBp9nB,KAAK66nB,mBAAmB5wnB,GAAIo6D,4CAEjE,SAA0BxjE,EAAOwjE,GAC/B,OAAOrkE,KAAKo9nB,uBAAuBp9nB,KAAKq9nB,gBAAgBpznB,GAAIo6D,EAAMxjE,yCAEpE,SAAuB27kB,GAAsC,WAAzBn4gB,EAAyB,uDAAlB,UAAWxjE,EAAO,uCACrDsqB,EAAkB,WAATk5C,EACT1kB,EAAQ3/C,KAAK04nB,gBACbhH,EAAWl1C,EAAc,IAAMn4gB,EAC/Bkne,EAAS5rf,EAAM+xkB,GACf4L,EAAUt9nB,KAAKi5nB,qBAAuBhkB,EAAQp0mB,GACpD,GAAI0qiB,EACF,OAAOgtF,GAAiBhtF,EAAQ+xF,GAElC,IAAMhujB,EAAStvE,KAAKwjhB,MAAMl0c,OACpB4rjB,EAAY5rjB,EAAOiujB,wBAAwBv9nB,KAAKm6F,MAAOqif,GACvDouC,EAAWz/lB,EAAS,CAAC,GAAD,OAAIqxjB,EAAJ,SAAwB,QAASA,EAAa,IAAM,CAACA,EAAa,IACtFmuC,EAASr7iB,EAAO8rjB,gBAAgBp7nB,KAAKs5nB,aAAc4B,GACnDtjlB,EAAQ9wC,OAAOC,KAAK+/M,GAASj8J,SAAS2xhB,IACtC7hkB,EAAU,kBAAM,EAAKghD,WAAW96D,EAAOsqB,IACvCvR,EAAS01D,EAAOkujB,oBAAoB7S,EAAQ/ykB,EAAOj9B,EAASiwmB,GAKlE,OAJIhxmB,EAAOm8mB,UACTn8mB,EAAOm8mB,QAAUuH,EACjB39kB,EAAM+xkB,GAAY5qnB,OAAOqtM,OAAOokb,GAAiB3+mB,EAAQ0jnB,KAEpD1jnB,oCAET,SAAmB/Y,EAAOokO,EAAY95M,GACpC,IAOI/Q,EAPEopgB,EAAQxjhB,KAAKwjhB,MACb7je,EAAQ3/C,KAAK04nB,gBACbhH,EAAW,aAAH,OAAgBzsZ,GACxBsmU,EAAS5rf,EAAM+xkB,GACrB,GAAInmF,EACF,OAAOA,EAGT,IAAgC,IAA5B/nB,EAAMppgB,QAAQkqN,UAAqB,CACrC,IAAMh1J,EAAStvE,KAAKwjhB,MAAMl0c,OACpB4rjB,EAAY5rjB,EAAOmujB,0BAA0Bz9nB,KAAKm6F,MAAO8qI,GACzD0lZ,EAASr7iB,EAAO8rjB,gBAAgBp7nB,KAAKs5nB,aAAc4B,GACzD9gnB,EAAUk1D,EAAO+rjB,eAAe1Q,EAAQ3qnB,KAAK27D,WAAW96D,EAAOsqB,EAAQ85M,IAEzE,IAAMy+R,EAAa,IAAIkyH,GAAWpyG,EAAOppgB,GAAWA,EAAQspf,YAI5D,OAHItpf,GAAWA,EAAQmxmB,aACrB5rkB,EAAM+xkB,GAAY5qnB,OAAOqtM,OAAOuvT,IAE3BA,kCAET,SAAiBtpf,GACf,GAAKA,EAAQ27mB,QAGb,OAAO/1nB,KAAK84nB,iBAAmB94nB,KAAK84nB,eAAiBhynB,OAAOw4C,OAAO,GAAIllC,kCAEzE,SAAeiqD,EAAMq5jB,GACnB,OAAQA,GAAiBpF,GAAmBj0jB,IAASrkE,KAAKwjhB,MAAMm6G,iDAElE,SAAc79nB,EAASe,EAAOo5D,EAAYoK,GACpCi0jB,GAAmBj0jB,GACrBv9D,OAAOw4C,OAAOx/C,EAASm6D,GAEvBj6D,KAAK49nB,mBAAmB/8nB,EAAOwjE,GAAMhmD,OAAOve,EAASm6D,sCAGzD,SAAoByjkB,EAAer5jB,EAAMo4B,GACnCihiB,IAAkBpF,GAAmBj0jB,IACvCrkE,KAAK49nB,wBAAmBxlnB,EAAWisD,GAAMhmD,OAAOq/mB,EAAejhiB,4BAGnE,SAAU38F,EAASe,EAAOwjE,EAAMl5C,GAC9BrrB,EAAQqrB,OAASA,EACjB,IAAM/Q,EAAUpa,KAAKmxnB,SAAStwnB,EAAOsqB,GACrCnrB,KAAK49nB,mBAAmB/8nB,EAAOwjE,EAAMl5C,GAAQ9M,OAAOve,EAAS,CAC3Dsa,SAAW+Q,GAAUnrB,KAAK69nB,iBAAiBzjnB,IAAaA,oCAG5D,SAAiBta,EAASs0mB,EAAcvzmB,GACtCb,KAAK89nB,UAAUh+nB,EAASe,EAAO,UAAU,gCAE3C,SAAcf,EAASs0mB,EAAcvzmB,GACnCb,KAAK89nB,UAAUh+nB,EAASe,EAAO,UAAU,2CAE3C,WACE,IAAMf,EAAUE,KAAKy3nB,YAAY7+mB,QAC7B9Y,GACFE,KAAK89nB,UAAUh+nB,OAASsY,EAAW,UAAU,wCAGjD,WACE,IAAMtY,EAAUE,KAAKy3nB,YAAY7+mB,QAC7B9Y,GACFE,KAAK89nB,UAAUh+nB,OAASsY,EAAW,UAAU,kCAGjD,SAAgB0inB,GACd,IADgC,EAC1BjtnB,EAAO7N,KAAK02E,MACZ7rB,EAAW7qD,KAAKy3nB,YAAY5pnB,KAFF,UAGG7N,KAAKk5nB,WAHR,IAGhC,2BAAmD,0BAAvClwnB,EAAuC,KAA/BithB,EAA+B,KAAzBklE,EAAyB,KACjDn7lB,KAAKgJ,GAAQithB,EAAMklE,IAJW,8BAMhCn7lB,KAAKk5nB,UAAY,GACjB,IAAM6E,EAAUlzkB,EAASvqD,OACnB09nB,EAAUnwnB,EAAKvN,OACf44E,EAAQvzD,KAAKG,IAAIk4mB,EAASD,GAC5B7kjB,GACFl5E,KAAKq2F,MAAM,EAAGnd,GAEZ8kjB,EAAUD,EACZ/9nB,KAAKi+nB,gBAAgBF,EAASC,EAAUD,EAASjD,GACxCkD,EAAUD,GACnB/9nB,KAAKk+nB,gBAAgBF,EAASD,EAAUC,kCAG5C,SAAgBninB,EAAOq9D,GAAgC,IAIjDntE,EAJwB+unB,IAAyB,yDAC/C/ziB,EAAO/mF,KAAKy3nB,YACZ5pnB,EAAOk5E,EAAKl5E,KACZulB,EAAMvX,EAAQq9D,EAEdj9B,EAAO,SAAC44E,GAEZ,IADAA,EAAIv0H,QAAU44E,EACTntE,EAAI8oH,EAAIv0H,OAAS,EAAGyL,GAAKqnB,EAAKrnB,IACjC8oH,EAAI9oH,GAAK8oH,EAAI9oH,EAAImtE,IAIrB,IADAj9B,EAAKpuC,GACA9B,EAAI8P,EAAO9P,EAAIqnB,IAAOrnB,EACzB8B,EAAK9B,GAAK,IAAI/L,KAAKq9nB,gBAEjBr9nB,KAAK44nB,UACP38kB,EAAK8qC,EAAKsxiB,SAEZr4nB,KAAKq2F,MAAMx6E,EAAOq9D,GACd4hjB,GACF96nB,KAAKm+nB,eAAetwnB,EAAMgO,EAAOq9D,EAAO,uCAG5C,SAAep5E,EAAS+b,EAAOq9D,EAAO7U,mCACtC,SAAgBxoD,EAAOq9D,GACrB,IAAM6N,EAAO/mF,KAAKy3nB,YAClB,GAAIz3nB,KAAK44nB,SAAU,CACjB,IAAMn4gB,EAAU15B,EAAKsxiB,QAAQ9onB,OAAOsM,EAAOq9D,GACvC6N,EAAKqyiB,UACPhB,GAAYrxiB,EAAM05B,GAGtB15B,EAAKl5E,KAAK0B,OAAOsM,EAAOq9D,wBAE1B,SAAM1yD,GACJ,GAAIxmB,KAAK44nB,SACP54nB,KAAKk5nB,UAAUt4nB,KAAK4lB,OACf,CACL,cAA6BA,EAA7B,GAAOxd,EAAP,KAAeithB,EAAf,KAAqBklE,EAArB,KACAn7lB,KAAKgJ,GAAQithB,EAAMklE,GAErBn7lB,KAAKwjhB,MAAM46G,aAAax9nB,KAAxB,CAA8BZ,KAAKa,OAAnC,eAA6C2lB,gCAE/C,WACE,IAAM0yD,EAAQnxE,UAAUzH,OACxBN,KAAKq+nB,MAAM,CAAC,kBAAmBr+nB,KAAKs5nB,aAAazrnB,KAAKvN,OAAS44E,EAAOA,8BAExE,WACEl5E,KAAKq+nB,MAAM,CAAC,kBAAmBr+nB,KAAKy3nB,YAAY5pnB,KAAKvN,OAAS,EAAG,gCAEnE,WACEN,KAAKq+nB,MAAM,CAAC,kBAAmB,EAAG,iCAEpC,SAAcxinB,EAAOq9D,GACfA,GACFl5E,KAAKq+nB,MAAM,CAAC,kBAAmBxinB,EAAOq9D,IAExC,IAAMoljB,EAAWv2nB,UAAUzH,OAAS,EAChCg+nB,GACFt+nB,KAAKq+nB,MAAM,CAAC,kBAAmBxinB,EAAOyinB,kCAG1C,WACEt+nB,KAAKq+nB,MAAM,CAAC,kBAAmB,EAAGt2nB,UAAUzH,eAvhB1Ck4nB,GAyiBN,SAAS+F,GAAqBx3iB,GAC5B,IAGIh7E,EAAGkomB,EAAMtwa,EAAMl9J,EAHb66L,EAAQv6I,EAAK4wiB,OACb/9mB,EAbR,SAA2B0nN,EAAO39M,GAChC,IAAK29M,EAAMqpI,OAAO6zR,KAAM,CAGtB,IAFA,IAAMC,EAAen9Z,EAAMi2Z,wBAAwB5zmB,GAC/C/J,EAAS,GACJ7N,EAAI,EAAGkomB,EAAOwqB,EAAan+nB,OAAQyL,EAAIkomB,EAAMlomB,IACpD6N,EAASA,EAAOgiB,OAAO6imB,EAAa1ynB,GAAGmuG,WAAWwkhB,mBAAmBp9Z,IAEvEA,EAAMqpI,OAAO6zR,KAAO/T,GAAa7wmB,EAAO4rC,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,MAE7D,OAAO47K,EAAMqpI,OAAO6zR,KAILG,CAAkBr9Z,EAAOv6I,EAAKpjE,MACzCmC,EAAMw7M,EAAMs9Z,QAEVC,EAAmB,WACV,QAATl7b,IAA4B,QAAVA,IAGlBsxa,EAAQxukB,KACV3gB,EAAMH,KAAKG,IAAIA,EAAKH,KAAK23B,IAAIqmJ,EAAOl9J,IAAS3gB,IAE/C2gB,EAAOk9J,IAET,IAAK53L,EAAI,EAAGkomB,EAAOr6lB,EAAOtZ,OAAQyL,EAAIkomB,IAAQlomB,EAC5C43L,EAAO29B,EAAMw9Z,iBAAiBllnB,EAAO7N,IACrC8ynB,IAGF,IADAp4lB,OAAOruB,EACFrM,EAAI,EAAGkomB,EAAO3yY,EAAMy9Z,MAAMz+nB,OAAQyL,EAAIkomB,IAAQlomB,EACjD43L,EAAO29B,EAAM09Z,gBAAgBjznB,GAC7B8ynB,IAEF,OAAO/4mB,EA2DT,SAAS41S,GAAW7iM,EAAO34H,EAAMm3nB,EAAQtrnB,GAMvC,OALIyvE,EAAQq9C,GAtBd,SAAuBA,EAAO34H,EAAMm3nB,EAAQtrnB,GAC1C,IAAMy8W,EAAa6uQ,EAAOhhiB,MAAMwiC,EAAM,GAAI9sH,GACpC08W,EAAW4uQ,EAAOhhiB,MAAMwiC,EAAM,GAAI9sH,GAClC+Z,EAAMH,KAAKG,IAAI0iW,EAAYC,GAC3B7iW,EAAMD,KAAKC,IAAI4iW,EAAYC,GAC7Bw2Q,EAAWn5mB,EACXo5mB,EAASt5mB,EACTD,KAAK23B,IAAIx3B,GAAOH,KAAK23B,IAAI13B,KAC3Bq5mB,EAAWr5mB,EACXs5mB,EAASp5mB,GAEX5lB,EAAKm3nB,EAAOtjkB,MAAQmrkB,EACpBh/nB,EAAKi/nB,QAAU,CACbF,SAAAA,EACAC,OAAAA,EACArjnB,MAAO2sW,EACPp1V,IAAKq1V,EACL3iW,IAAAA,EACAF,IAAAA,GAKAw5mB,CAAcvmgB,EAAO34H,EAAMm3nB,EAAQtrnB,GAEnC7L,EAAKm3nB,EAAOtjkB,MAAQsjkB,EAAOhhiB,MAAMwiC,EAAO9sH,GAEnC7L,EAET,SAASm/nB,GAAsBt4iB,EAAMl5E,EAAMgO,EAAOq9D,GAChD,IAKIntE,EAAGkomB,EAAM/zmB,EAAM24H,EALb8+f,EAAS5wiB,EAAK4wiB,OACdN,EAAStwiB,EAAKswiB,OACdh1lB,EAASs1lB,EAAO+D,YAChBC,EAAchE,IAAWN,EACzBpra,EAAS,GAEf,IAAKlgN,EAAI8P,EAAOo4lB,EAAOp4lB,EAAQq9D,EAAOntE,EAAIkomB,IAAQlomB,EAChD8sH,EAAQhrH,EAAK9B,IACb7L,EAAO,IACFy3nB,EAAO5jkB,MAAQ4nkB,GAAehE,EAAOthiB,MAAMh0D,EAAOt2B,GAAIA,GAC3DkgN,EAAOrrN,KAAK86T,GAAW7iM,EAAO34H,EAAMm3nB,EAAQtrnB,IAE9C,OAAOkgN,EAET,SAASqza,GAAWv7lB,GAClB,OAAOA,QAA8B3rB,IAApB2rB,EAAOk7lB,eAA4C7mnB,IAAlB2rB,EAAOm7lB,OA4B3D,SAASK,GAAiBtlkB,EAAY7/C,EAASk8E,EAAOz1F,GACpD,IAAIummB,EAAOhtlB,EAAQolnB,cACbn+jB,EAAM,GACZ,GAAK+liB,EAAL,CAIA,MA3BF,SAAqBntiB,GACnB,IAAIlmC,EAASlY,EAAOuX,EAAKta,EAAKkF,EAiB9B,OAhBIi8C,EAAWpL,YACb96B,EAAUkmC,EAAWytE,KAAOztE,EAAWjpD,EACvC6K,EAAQ,OACRuX,EAAM,UAENW,EAAUkmC,EAAWytE,KAAOztE,EAAWt8C,EACvC9B,EAAQ,SACRuX,EAAM,OAEJW,GACFjb,EAAM,MACNkF,EAAS,UAETlF,EAAM,QACNkF,EAAS,OAEJ,CAACnC,MAAAA,EAAOuX,IAAAA,EAAKW,QAAAA,EAASjb,IAAAA,EAAKkF,OAAAA,GASSyhnB,CAAYxlkB,GAAhDp+C,EAAP,EAAOA,MAAOuX,EAAd,EAAcA,IAAKW,EAAnB,EAAmBA,QAASjb,EAA5B,EAA4BA,IAAKkF,EAAjC,EAAiCA,OACpB,WAAToplB,GAAqB9wgB,IACvBr8B,EAAWylkB,oBAAqB,GAC3BppiB,EAAM2hiB,MAAQ,KAAOp3nB,EACxBummB,EAAOtulB,GACGw9E,EAAM4hiB,SAAW,KAAOr3nB,EAClCummB,EAAOpplB,GAEPqjD,EAAIs+jB,GAAU3hnB,EAAQnC,EAAOuX,EAAKW,KAAY,EAC9CqzkB,EAAOtulB,IAGXuoD,EAAIs+jB,GAAUv4B,EAAMvrlB,EAAOuX,EAAKW,KAAY,EAC5CkmC,EAAWulkB,cAAgBn+jB,OAhBzBpH,EAAWulkB,cAAgBn+jB,EAkB/B,SAASs+jB,GAAUv4B,EAAM3hjB,EAAGC,EAAG3xB,GAS/B,IAAcgjhB,EAAMo9D,EAAIyrB,EAFtB,OANI7rmB,GAQkB6rmB,EAPCl6kB,EACrB0hjB,EAAOy4B,GADPz4B,GAOUrwD,EAPEqwD,MAOI+M,EAPE1ujB,GAQCm6kB,EAAK7oF,IAAS6oF,EAAKzrB,EAAKp9D,EAPrBrxf,EAAGD,IAEzB2hjB,EAAOy4B,GAASz4B,EAAM3hjB,EAAGC,GAEpB0hjB,EAKT,SAASy4B,GAASh5kB,EAAGhrC,EAAOuX,GAC1B,MAAa,UAANyzB,EAAgBhrC,EAAc,QAANgrC,EAAczzB,EAAMyzB,EAErD,SAASi5kB,GAAiB7lkB,EAA1B,EAAuDm+Q,GAAO,IAAvB2nT,EAAuB,EAAvBA,cACrC9lkB,EAAW8lkB,cAAkC,SAAlBA,EACb,IAAV3nT,EAAc,IAAO,EACrB2nT,EA7LNvH,GAAkB1xa,SAAW,GAC7B0xa,GAAkBhznB,UAAUq1nB,mBAAqB,KACjDrC,GAAkBhznB,UAAU63nB,gBAAkB,SA6LxC2C,GAAAA,SAAAA,6IACJ,SAAmBj5iB,EAAMl5E,EAAMgO,EAAOq9D,GACpC,OAAOmmjB,GAAsBt4iB,EAAMl5E,EAAMgO,EAAOq9D,iCAElD,SAAe6N,EAAMl5E,EAAMgO,EAAOq9D,GAChC,OAAOmmjB,GAAsBt4iB,EAAMl5E,EAAMgO,EAAOq9D,kCAElD,SAAgB6N,EAAMl5E,EAAMgO,EAAOq9D,GACjC,IAKIntE,EAAGkomB,EAAM/zmB,EAAMwtE,EALZiqjB,EAAkB5wiB,EAAlB4wiB,OAAQN,EAAUtwiB,EAAVswiB,OACf,EAAyCr3nB,KAAK44nB,SAA9C,IAAOgD,SAAAA,OAAP,MAAkB,IAAlB,MAAuBC,SAAAA,OAAvB,MAAkC,IAAlC,EACMoE,EAA2B,MAAhBtI,EAAO5jkB,KAAe6nkB,EAAWC,EAC5CqE,EAA2B,MAAhB7I,EAAOtjkB,KAAe6nkB,EAAWC,EAC5C5va,EAAS,GAEf,IAAKlgN,EAAI8P,EAAOo4lB,EAAOp4lB,EAAQq9D,EAAOntE,EAAIkomB,IAAQlomB,EAChD2hE,EAAM7/D,EAAK9B,IACX7L,EAAO,IACFy3nB,EAAO5jkB,MAAQ4jkB,EAAOthiB,MAAM0+gB,EAAiBrniB,EAAKuyjB,GAAWl0nB,GAClEkgN,EAAOrrN,KAAK86T,GAAWq5S,EAAiBrniB,EAAKwyjB,GAAWhgoB,EAAMm3nB,EAAQtrnB,IAExE,OAAOkgN,uCAET,SAAsBjgI,EAAOs1I,EAAOrV,EAAQ31H,IAC1C,oEAA4BtK,EAAOs1I,EAAOrV,EAAQ31H,GAClD,IAAMvyD,EAASkoL,EAAOkza,QAClBp7lB,GAAUu9L,IAAUthO,KAAKy3nB,YAAYJ,SACvCrriB,EAAMlmE,IAAMH,KAAKG,IAAIkmE,EAAMlmE,IAAKie,EAAOje,KACvCkmE,EAAMpmE,IAAMD,KAAKC,IAAIomE,EAAMpmE,IAAKme,EAAOne,oCAG3C,WACE,OAAO,kCAET,SAAiB/kB,GACf,IAAMkmF,EAAO/mF,KAAKy3nB,YACXE,EAAkB5wiB,EAAlB4wiB,OAAQN,EAAUtwiB,EAAVswiB,OACTpra,EAASjsN,KAAKw8nB,UAAU37nB,GACxBkjC,EAASkoL,EAAOkza,QAChBv9nB,EAAQ09nB,GAAWv7lB,GACrB,IAAMA,EAAOloB,MAAQ,KAAOkoB,EAAO3Q,IAAM,IACzC,GAAKikmB,EAAOoF,iBAAiBxwa,EAAOora,EAAOtjkB,OAC/C,MAAO,CACLsvF,MAAO,GAAKs0e,EAAO8E,iBAAiBxwa,EAAO0ra,EAAO5jkB,OAClDnyD,MAAAA,6BAGJ,WACE5B,KAAKi5nB,qBAAsB,GAC3B,0DACaj5nB,KAAKy3nB,YACbnhiB,MAAQt2F,KAAKs5nB,aAAahjiB,4BAEjC,SAAOjyB,GACL,IAAM0iB,EAAO/mF,KAAKy3nB,YAClBz3nB,KAAKm+nB,eAAep3iB,EAAKl5E,KAAM,EAAGk5E,EAAKl5E,KAAKvN,OAAQ+jE,iCAEtD,SAAe87jB,EAAMtknB,EAAOq9D,EAAO7U,GACjC,IAAM9oC,EAAiB,UAAT8oC,EACPxjE,EAAgCb,KAAhCa,MAAqBw2nB,EAAWr3nB,KAAzBy3nB,YAAcJ,OACtB3vf,EAAO2vf,EAAO+I,eACdvxkB,EAAawokB,EAAOjqQ,eACpBizQ,EAAQrgoB,KAAKsgoB,YACbC,EAAYvgoB,KAAKg9nB,0BAA0BnhnB,EAAOwoD,GAClDq5jB,EAAgB19nB,KAAK69nB,iBAAiB0C,GACtCC,EAAiBxgoB,KAAKwgoB,eAAen8jB,EAAMq5jB,GACjD19nB,KAAKygoB,oBAAoB/C,EAAer5jB,EAAMk8jB,GAC9C,IAAK,IAAIx0nB,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,EAAOntE,IAAK,CAC1C,IAAMkgN,EAASjsN,KAAKw8nB,UAAUzwnB,GACxB20nB,EAAUnlmB,GAASs4f,EAAc5nU,EAAOora,EAAOtjkB,OAAS,CAAC2zE,KAAAA,EAAMnH,KAAMmH,GAAQ1nI,KAAK2goB,yBAAyB50nB,GAC3G60nB,EAAU5goB,KAAK6goB,yBAAyB90nB,EAAGs0nB,GAC3C/piB,GAAS21H,EAAOyra,SAAW,IAAIL,EAAOtjkB,MACtCkG,EAAa,CACjBpL,WAAAA,EACA64E,KAAMg5f,EAAQh5f,KACdg4f,oBAAqBppiB,GAASgpiB,GAAWrza,EAAOkza,UAAat+nB,IAAUy1F,EAAM2hiB,MAAQp3nB,IAAUy1F,EAAM4hiB,QACrGlnnB,EAAG69C,EAAa6xkB,EAAQnggB,KAAOqggB,EAAQt9mB,OACvC3F,EAAGkxC,EAAa+xkB,EAAQt9mB,OAASo9mB,EAAQnggB,KACzChvH,OAAQs9C,EAAa+xkB,EAAQponB,KAAOmN,KAAK23B,IAAIojlB,EAAQlonB,MACrDlH,MAAOu9C,EAAalpC,KAAK23B,IAAIojlB,EAAQlonB,MAAQoonB,EAAQponB,MAEnDgonB,IACFvmkB,EAAW7/C,QAAUsjnB,GAAiB19nB,KAAKg9nB,0BAA0BjxnB,EAAGo0nB,EAAKp0nB,GAAGof,OAAS,SAAWk5C,IAEtG,IAAMjqD,EAAU6/C,EAAW7/C,SAAW+lnB,EAAKp0nB,GAAGqO,QAC9CmlnB,GAAiBtlkB,EAAY7/C,EAASk8E,EAAOz1F,GAC7Ci/nB,GAAiB7lkB,EAAY7/C,EAASimnB,EAAMjoT,OAC5Cp4U,KAAK8goB,cAAcX,EAAKp0nB,GAAIA,EAAGkuD,EAAYoK,8BAG/C,SAAWi4D,EAAM2ggB,GACf,IAMIlxnB,EAAG7L,EALDy3nB,EADO33nB,KAAKy3nB,YACEE,OACdlB,EAAWkB,EAAOJ,wBAAwBv3nB,KAAKm6F,OAC/Cqre,EAAUmyD,EAAOv9mB,QAAQorjB,QACzByuC,EAAOwiB,EAASn2nB,OAChB02nB,EAAS,GAEf,IAAKjrnB,EAAI,EAAGA,EAAIkomB,IAAQlomB,EAEtB,IADA7L,EAAOu2nB,EAAS1qnB,IACNmuG,WAAW9/F,QAAQirY,QAA7B,CAGA,GAAyB,qBAAd43O,EAA2B,CACpC,IAAMl5mB,EAAM7jB,EAAKg6G,WAAWsihB,UAAUS,GACpC/8nB,EAAKg6G,WAAWu9gB,YAAYJ,OAAOtjkB,MAErC,GAAI8/d,EAAc9vgB,IAAQylB,MAAMzlB,GAC9B,SAOJ,KAJgB,IAAZyhjB,IAAqD,IAAhCwxD,EAAO7wnB,QAAQjG,EAAKo2F,aAClCl+E,IAAZotjB,QAAwCptjB,IAAflY,EAAKo2F,QAC3B0giB,EAAOp2nB,KAAKV,EAAKo2F,OAEfp2F,EAAKW,QAAUy7H,EACjB,MAMJ,OAHK06f,EAAO12nB,QACV02nB,EAAOp2nB,UAAKwX,GAEP4+mB,gCAET,SAAen2nB,GACb,OAAOb,KAAK+goB,gBAAW3onB,EAAWvX,GAAOP,qCAE3C,SAAe8zmB,EAAc5mmB,EAAMyvnB,GACjC,IAAMjG,EAASh3nB,KAAK+goB,WAAW3sB,EAAc6oB,GACvCp8nB,OAAkBuX,IAAT5K,EACXwpnB,EAAO7wnB,QAAQqH,IACd,EACL,OAAmB,IAAX3M,EACJm2nB,EAAO12nB,OAAS,EAChBO,2BAEN,WACE,IAIIkL,EAAGkomB,EAJDjrf,EAAOhpH,KAAKoa,QACZ2sE,EAAO/mF,KAAKy3nB,YACZE,EAAS5wiB,EAAK4wiB,OACdqJ,EAAS,GAEf,IAAKj1nB,EAAI,EAAGkomB,EAAOlthB,EAAKl5E,KAAKvN,OAAQyL,EAAIkomB,IAAQlomB,EAC/Ci1nB,EAAOpgoB,KAAK+2nB,EAAOmH,iBAAiB9+nB,KAAKw8nB,UAAUzwnB,GAAG4rnB,EAAO5jkB,MAAOhoD,IAEtE,IAAMw6lB,EAAev9e,EAAKu9e,aAE1B,MAAO,CACLzglB,IAFUyglB,GAAgBg4B,GAAqBx3iB,GAG/Ci6iB,OAAAA,EACAnlnB,MAAO87mB,EAAOsJ,YACd7tmB,IAAKukmB,EAAOuJ,UACZC,WAAYnhoB,KAAKohoB,iBACjB9/Z,MAAOq2Z,EACPtyO,QAASr8R,EAAKq8R,QACdjtE,MAAOmuR,EAAe,EAAIv9e,EAAKq4gB,mBAAqBr4gB,EAAKs4gB,uDAG7D,SAAyBzgoB,GACvB,IAQI0/H,EAAM/nH,EARV,EAAoFxY,KAA7Ey3nB,YAAcJ,EAArB,EAAqBA,OAAQ+B,EAA7B,EAA6BA,SAA7B,EAAoFp5nB,KAA5Coa,QAAgBmnnB,EAAxD,EAAkD75f,KAAiB85f,EAAnE,EAAmEA,aAC7DC,EAAaF,GAAa,EAC1Bt1a,EAASjsN,KAAKw8nB,UAAU37nB,GACxBkjC,EAASkoL,EAAOkza,QAChBuC,EAAWpC,GAAWv7lB,GACxBniC,EAAQqqN,EAAOora,EAAOtjkB,MACtBl4C,EAAQ,EACRvb,EAAS84nB,EAAWp5nB,KAAK22nB,WAAWU,EAAQpra,EAAQmta,GAAYx3nB,EAEhEtB,IAAWsB,IACbia,EAAQvb,EAASsB,EACjBtB,EAASsB,GAEP8/nB,IACF9/nB,EAAQmiC,EAAOk7lB,SACf3+nB,EAASyjC,EAAOm7lB,OAASn7lB,EAAOk7lB,SAClB,IAAVr9nB,GAAe4xD,GAAK5xD,KAAW4xD,GAAKzvB,EAAOm7lB,UAC7CrjnB,EAAQ,GAEVA,GAASja,GAEX,IAAM4mX,EAAcqrK,EAAc0tG,IAAeG,EAAuB7lnB,EAAZ0lnB,EACxD75f,EAAO2vf,EAAOyH,iBAAiBt2Q,GAcnC,GARAhwW,GAJE+nH,EADEvgI,KAAKwjhB,MAAMm+G,kBAAkB9goB,GACxBw2nB,EAAOyH,iBAAiBjjnB,EAAQvb,GAEhConI,GAEKA,EACV/hH,KAAK23B,IAAI9kC,GAAQgpnB,IACnBhpnB,EAhQN,SAAiBA,EAAM6+mB,EAAQoK,GAC7B,OAAa,IAATjpnB,EACKg7C,GAAKh7C,IAEN6+mB,EAAOjqQ,eAAiB,GAAK,IAAMiqQ,EAAOvxmB,KAAO27mB,EAAa,GAAK,GA4PhEG,CAAQppnB,EAAM6+mB,EAAQoK,GAAcD,EACvC5/nB,IAAU6/nB,IACZ/5f,GAAQlvH,EAAO,GAEjB+nH,EAAOmH,EAAOlvH,GAEZkvH,IAAS2vf,EAAOyH,iBAAiB2C,GAAa,CAChD,IAAMI,EAAWrukB,GAAKh7C,GAAQ6+mB,EAAOyK,qBAAqBL,GAAc,EACxE/5f,GAAQm6f,EACRrpnB,GAAQqpnB,EAEV,MAAO,CACLrpnB,KAAAA,EACAkvH,KAAAA,EACAnH,KAAAA,EACAj9G,OAAQi9G,EAAO/nH,EAAO,2CAG1B,SAAyB3X,EAAOw/nB,GAC9B,IAII/8mB,EAAQ9K,EAJN8oN,EAAQ++Z,EAAM/+Z,MACdlnN,EAAUpa,KAAKoa,QACf2nnB,EAAW3nnB,EAAQ2nnB,SACnBC,EAAkBruB,EAAev5lB,EAAQ4nnB,gBAAiB96hB,EAAAA,GAEhE,GAAIm5hB,EAAMh7O,QAAS,CACjB,IAAM87O,EAAaY,EAAW/hoB,KAAKohoB,eAAevgoB,GAASw/nB,EAAMc,WAC3Dn1iB,EAAiC,SAAzB5xE,EAAQmslB,aA7V5B,SAAmC1lmB,EAAOw/nB,EAAOjmnB,EAAS+mnB,GACxD,IAAMH,EAASX,EAAMW,OACfr9b,EAAOq9b,EAAOngoB,GAChB4lC,EAAO5lC,EAAQ,EAAImgoB,EAAOngoB,EAAQ,GAAK,KACvCy9C,EAAOz9C,EAAQmgoB,EAAO1goB,OAAS,EAAI0goB,EAAOngoB,EAAQ,GAAK,KACrDouH,EAAU70G,EAAQinnB,mBACX,OAAT56lB,IACFA,EAAOk9J,GAAiB,OAATrlJ,EAAgB+hlB,EAAMjtmB,IAAMitmB,EAAMxknB,MAAQyiC,EAAOqlJ,IAErD,OAATrlJ,IACFA,EAAOqlJ,EAAOA,EAAOl9J,GAEvB,IAAM5qB,EAAQ8nL,GAAQA,EAAOh+K,KAAKG,IAAI2gB,EAAM6X,IAAS,EAAI2wE,EAEzD,MAAO,CACLi7C,MAFWvkJ,KAAK23B,IAAIgB,EAAO7X,GAAQ,EAAIwoF,EAEzBkygB,EACd/oT,MAAOh+T,EAAQknnB,cACfzlnB,MAAAA,GA6UMomnB,CAA0BphoB,EAAOw/nB,EAAOjmnB,EAAS+mnB,GA9W3D,SAAkCtgoB,EAAOw/nB,EAAOjmnB,EAAS+mnB,GACvD,IACI3onB,EAAM4/T,EADJ8pT,EAAY9nnB,EAAQmslB,aAS1B,OAPI1yE,EAAcquG,IAChB1pnB,EAAO6nnB,EAAMv6mB,IAAM1L,EAAQinnB,mBAC3BjpT,EAAQh+T,EAAQknnB,gBAEhB9onB,EAAO0pnB,EAAYf,EACnB/oT,EAAQ,GAEH,CACLluK,MAAO1xJ,EAAO2onB,EACd/oT,MAAAA,EACAv8T,MAAOwknB,EAAMW,OAAOngoB,GAAU2X,EAAO,GAkW/B2pnB,CAAyBthoB,EAAOw/nB,EAAOjmnB,EAAS+mnB,GAC9CiB,EAAapioB,KAAKqioB,eAAerioB,KAAKa,MAAOb,KAAKy3nB,YAAYnhiB,MAAOyriB,EAAWlhoB,OAAQuX,GAC9FkL,EAAS0oE,EAAMnwE,MAASmwE,EAAMk+E,MAAQk4d,EAAep2iB,EAAMk+E,MAAQ,EACnE1xJ,EAAOmN,KAAKG,IAAIk8mB,EAAiBh2iB,EAAMk+E,MAAQl+E,EAAMosP,YAErD90T,EAASg+M,EAAMw9Z,iBAAiB9+nB,KAAKw8nB,UAAU37nB,GAAOygO,EAAMvtK,MAAOlzD,GACnE2X,EAAOmN,KAAKG,IAAIk8mB,EAAiB3B,EAAMv6mB,IAAMu6mB,EAAMjoT,OAErD,MAAO,CACL1wM,KAAMpkH,EAAS9K,EAAO,EACtB+nH,KAAMj9G,EAAS9K,EAAO,EACtB8K,OAAAA,EACA9K,KAAAA,uBAGJ,WAME,IALA,IAAMuuE,EAAO/mF,KAAKy3nB,YACZJ,EAAStwiB,EAAKswiB,OACdiL,EAAQv7iB,EAAKl5E,KACbommB,EAAOquB,EAAMhioB,OACfyL,EAAI,EACDA,EAAIkomB,IAAQlomB,EACsB,OAAnC/L,KAAKw8nB,UAAUzwnB,GAAGsrnB,EAAOtjkB,OAC3BuukB,EAAMv2nB,GAAG60N,KAAK5gO,KAAKy4nB,YA/OrBuH,CAAsBxH,IAoP5BwH,GAAc/1nB,GAAK,MACnB+1nB,GAAcl5a,SAAW,CACvB+za,oBAAoB,EACpBwC,gBAAiB,MACjBgE,mBAAoB,GACpBC,cAAe,GACfj8O,SAAS,EACTq+G,WAAY,CACV94Y,QAAS,CACPjnG,KAAM,SACNs2C,WAAY,CAAC,IAAK,IAAK,OAAQ,QAAS,aAI9C+lkB,GAAc5b,UAAY,CACxBiB,OAAQ,CACNkd,QAAS,CACP5+mB,KAAM,WACNpY,QAAQ,EACR03gB,KAAM,CACJ13gB,QAAQ,IAGZi3nB,QAAS,CACP7+mB,KAAM,SACN8+mB,aAAa,SAKbC,GAAAA,SAAAA,qIACJ,WACE1ioB,KAAKi5nB,qBAAsB,GAC3B,4FAEF,SAAmBlyiB,EAAMl5E,EAAMgO,EAAOq9D,GAEpC,IADA,IAAM+yI,GAAS,iEAAyBllI,EAAMl5E,EAAMgO,EAAOq9D,GAClDntE,EAAI,EAAGA,EAAIkgN,EAAO3rN,OAAQyL,IACjCkgN,EAAOlgN,GAAGoznB,QAAUn/nB,KAAKg9nB,0BAA0BjxnB,EAAI8P,GAAO84f,OAEhE,OAAO1oT,gCAET,SAAellI,EAAMl5E,EAAMgO,EAAOq9D,GAEhC,IADA,IAAM+yI,GAAS,6DAAqBllI,EAAMl5E,EAAMgO,EAAOq9D,GAC9CntE,EAAI,EAAGA,EAAIkgN,EAAO3rN,OAAQyL,IAAK,CACtC,IAAM7L,EAAO2N,EAAKgO,EAAQ9P,GAC1BkgN,EAAOlgN,GAAGoznB,QAAUxrB,EAAezzmB,EAAK,GAAIF,KAAKg9nB,0BAA0BjxnB,EAAI8P,GAAO84f,QAExF,OAAO1oT,iCAET,SAAgBllI,EAAMl5E,EAAMgO,EAAOq9D,GAEjC,IADA,IAAM+yI,GAAS,8DAAsBllI,EAAMl5E,EAAMgO,EAAOq9D,GAC/CntE,EAAI,EAAGA,EAAIkgN,EAAO3rN,OAAQyL,IAAK,CACtC,IAAM7L,EAAO2N,EAAKgO,EAAQ9P,GAC1BkgN,EAAOlgN,GAAGoznB,QAAUxrB,EAAezzmB,GAAQA,EAAKqmE,IAAMrmE,EAAKqmE,EAAGvmE,KAAKg9nB,0BAA0BjxnB,EAAI8P,GAAO84f,QAE1G,OAAO1oT,gCAET,WAGE,IAFA,IAAMp+M,EAAO7N,KAAKy3nB,YAAY5pnB,KAC1B+X,EAAM,EACD7Z,EAAI8B,EAAKvN,OAAS,EAAGyL,GAAK,IAAKA,EACtC6Z,EAAMD,KAAKC,IAAIA,EAAK/X,EAAK9B,GAAGyM,KAAKxY,KAAKg9nB,0BAA0BjxnB,IAAM,GAExE,OAAO6Z,EAAM,GAAKA,kCAEpB,SAAiB/kB,GACf,IAAMkmF,EAAO/mF,KAAKy3nB,YACXyC,EAAkBnziB,EAAlBmziB,OAAQE,EAAUrziB,EAAVqziB,OACTnua,EAASjsN,KAAKw8nB,UAAU37nB,GACxBmQ,EAAIkpnB,EAAOuC,iBAAiBxwa,EAAOj7M,GACnC2M,EAAIy8mB,EAAOqC,iBAAiBxwa,EAAOtuM,GACnC4oD,EAAI0lJ,EAAOkza,QACjB,MAAO,CACL97e,MAAOt8D,EAAKs8D,MACZzhJ,MAAO,IAAMoP,EAAI,KAAO2M,GAAK4oD,EAAI,KAAOA,EAAI,IAAM,2BAGtD,SAAOlC,GACL,IAAMq7Y,EAAS1/c,KAAKy3nB,YAAY5pnB,KAChC7N,KAAKm+nB,eAAez+K,EAAQ,EAAGA,EAAOp/c,OAAQ+jE,iCAEhD,SAAeq7Y,EAAQ7jc,EAAOq9D,EAAO7U,GAQnC,IAPA,IAAM9oC,EAAiB,UAAT8oC,EACd,EAAyBrkE,KAAKy3nB,YAAvBE,EAAP,EAAOA,OAAQN,EAAf,EAAeA,OACTkJ,EAAYvgoB,KAAKg9nB,0BAA0BnhnB,EAAOwoD,GAClDq5jB,EAAgB19nB,KAAK69nB,iBAAiB0C,GACtCC,EAAiBxgoB,KAAKwgoB,eAAen8jB,EAAMq5jB,GAC3C9F,EAAQD,EAAO5jkB,KACf8jkB,EAAQR,EAAOtjkB,KACZhoD,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,EAAOntE,IAAK,CAC1C,IAAMi7J,EAAQ04S,EAAO3zc,GACfkgN,GAAU1wL,GAASv7B,KAAKw8nB,UAAUzwnB,GAClCkuD,EAAa,GACby0jB,EAASz0jB,EAAW29jB,GAASr8lB,EAAQo8lB,EAAOgL,mBAAmB,IAAOhL,EAAOmH,iBAAiB7ya,EAAO2ra,IACrGjJ,EAAS10jB,EAAW49jB,GAASt8lB,EAAQ87lB,EAAO+I,eAAiB/I,EAAOyH,iBAAiB7ya,EAAO4ra,IAClG59jB,EAAWjU,KAAOxc,MAAMkllB,IAAWlllB,MAAMmllB,GACrC6R,IACFvmkB,EAAW7/C,QAAUpa,KAAKg9nB,0BAA0BjxnB,EAAGi7J,EAAM77I,OAAS,SAAWk5C,GAC7E9oC,IACF0+B,EAAW7/C,QAAQu6f,OAAS,IAGhC30gB,KAAK8goB,cAAc95d,EAAOj7J,EAAGkuD,EAAYoK,GAE3CrkE,KAAKygoB,oBAAoB/C,EAAer5jB,EAAMk8jB,4CAEhD,SAA0B1/nB,EAAOwjE,GAC/B,IAAM4nJ,EAASjsN,KAAKw8nB,UAAU37nB,GAC1B+Y,GAAS,wEAAgC/Y,EAAOwjE,GAChDzqD,EAAOm8mB,UACTn8mB,EAAS9S,OAAOw4C,OAAO,GAAI1lC,EAAQ,CAACm8mB,SAAS,KAE/C,IAAMphH,EAAS/6f,EAAO+6f,OAKtB,MAJa,WAATtwc,IACFzqD,EAAO+6f,OAAS,GAElB/6f,EAAO+6f,QAAUg/F,EAAe1nZ,GAAUA,EAAOkza,QAASxqH,GACnD/6f,QAxFL8onB,CAAyBlK,IA2F/BkK,GAAiBz4nB,GAAK,SACtBy4nB,GAAiB57a,SAAW,CAC1B+za,oBAAoB,EACpBwC,gBAAiB,QACjB35H,WAAY,CACV94Y,QAAS,CACPjnG,KAAM,SACNs2C,WAAY,CAAC,IAAK,IAAK,cAAe,aAI5CyokB,GAAiBte,UAAY,CAC3BiB,OAAQ,CACNr0mB,EAAG,CACD2S,KAAM,UAERhG,EAAG,CACDgG,KAAM,WAGV09e,QAAS,CACP71a,QAAS,CACP96D,UAAW,CACT9E,MADS,WAEP,MAAO,YAgCXg3mB,GAAAA,SAAAA,iCACJ,WAAYp/G,EAAO4wF,GAAc,6BAC/B,cAAM5wF,EAAO4wF,IACR6kB,qBAAsB,EAC3B,EAAK1oH,iBAAcn4f,EACnB,EAAKo4f,iBAAcp4f,EACnB,EAAKs2B,aAAUt2B,EACf,EAAKu2B,aAAUv2B,EANgB,2CAQjC,iCACA,SAAMyD,EAAOq9D,GACX,IAAMrrE,EAAO7N,KAAKs5nB,aAAazrnB,KACzBk5E,EAAO/mF,KAAKy3nB,YAClB,IAAsB,IAAlBz3nB,KAAK44nB,SACP7xiB,EAAKsxiB,QAAUxqnB,MACV,CACL,IAKI9B,EAAGkomB,EALHxwW,EAAS,SAAC13P,GAAD,OAAQ8B,EAAK9B,IAC1B,GAAIo+M,EAASt8M,EAAKgO,IAAS,CACzB,MAAwB7b,KAAK44nB,SAAtB5xnB,IAAAA,OAAP,MAAa,QAAb,EACAy8P,EAAS,SAAC13P,GAAD,OAAQgpmB,EAAiBlnmB,EAAK9B,GAAI/E,IAG7C,IAAK+E,EAAI8P,EAAOo4lB,EAAOp4lB,EAAQq9D,EAAOntE,EAAIkomB,IAAQlomB,EAChDg7E,EAAKsxiB,QAAQtsnB,GAAK03P,EAAO13P,gCAI/B,WACE,OAAOmqmB,GAAUl2mB,KAAKoa,QAAQghS,SAAW,qCAE3C,WACE,OAAO86T,GAAUl2mB,KAAKoa,QAAQyonB,kDAEhC,WAGE,IAFA,IAAI/8mB,EAAMqvlB,EACNvvlB,GAAOuvlB,EACFppmB,EAAI,EAAGA,EAAI/L,KAAKwjhB,MAAM31gB,KAAK42mB,SAASnknB,SAAUyL,EACrD,GAAI/L,KAAKwjhB,MAAMs/G,iBAAiB/2nB,GAAI,CAClC,IAAMmuG,EAAal6G,KAAKwjhB,MAAM82G,eAAevunB,GAAGmuG,WAC1CkhM,EAAWlhM,EAAW6ohB,eACtBF,EAAgB3ohB,EAAW8ohB,oBACjCl9mB,EAAMH,KAAKG,IAAIA,EAAKs1R,GACpBx1R,EAAMD,KAAKC,IAAIA,EAAKw1R,EAAWynV,GAGnC,MAAO,CACLznV,SAAUt1R,EACV+8mB,cAAej9mB,EAAME,yBAGzB,SAAOu+C,GACL,IDzrDkBziE,EAAOsW,EC0rDlB4knB,EADO98nB,KAAKwjhB,MACZs5G,UACD/1iB,EAAO/mF,KAAKy3nB,YACZwL,EAAOl8iB,EAAKl5E,KACZq1nB,EAAUljoB,KAAKmjoB,oBAAsBnjoB,KAAKojoB,aAAaH,GAAQjjoB,KAAKoa,QAAQ8onB,QAC5EjrT,EAAUtyT,KAAKC,KAAKD,KAAKG,IAAIg3mB,EAAUxrnB,MAAOwrnB,EAAUvrnB,QAAU2xnB,GAAW,EAAG,GAChFG,EAAS19mB,KAAKG,KD/rDFlkB,EC+rDmB5B,KAAKoa,QAAQipnB,OD/rDzBnrnB,EC+rDiC+/T,ED9rD3C,kBAAVr2U,GAAsBA,EAAM+5H,SAAS,KAC1ChmF,WAAW/zC,GAAS,IAClBA,EAAQsW,GC4rD0D,GAC9DornB,EAActjoB,KAAKujoB,eAAevjoB,KAAKa,OAC7C,EAAkCb,KAAKwjoB,sBAAhCX,EAAP,EAAOA,cACP,EArFJ,SAA2BznV,EAAUynV,EAAeQ,GAClD,IAAII,EAAS,EACTC,EAAS,EACTh1lB,EAAU,EACVC,EAAU,EACd,GAAIk0lB,EAAgB1tB,EAAK,CACvB,IAAM1kG,EAAar1N,EACbs1N,EAAWD,EAAaoyH,EACxB70f,EAASroH,KAAKivP,IAAI67P,GAClBxiY,EAAStoH,KAAKixf,IAAInG,GAClBkzH,EAAOh+mB,KAAKivP,IAAI87P,GAChBkzH,EAAOj+mB,KAAKixf,IAAIlG,GAChBmzH,EAAU,SAACrylB,EAAOiU,EAAGC,GAAX,OAAiBwxjB,GAAc1lkB,EAAOi/d,EAAYC,GAAU,GAAQ,EAAI/qf,KAAKC,IAAI6/B,EAAGA,EAAI49kB,EAAQ39kB,EAAGA,EAAI29kB,IACjHS,EAAU,SAACtylB,EAAOiU,EAAGC,GAAX,OAAiBwxjB,GAAc1lkB,EAAOi/d,EAAYC,GAAU,IAAS,EAAI/qf,KAAKG,IAAI2/B,EAAGA,EAAI49kB,EAAQ39kB,EAAGA,EAAI29kB,IAClHU,EAAOF,EAAQ,EAAG71f,EAAQ21f,GAC1BK,EAAOH,EAAQruB,EAASvne,EAAQ21f,GAChCK,EAAOH,EAAQnvX,EAAI3mI,EAAQ21f,GAC3BO,EAAOJ,EAAQnvX,EAAK6gW,EAASvne,EAAQ21f,GAC3CH,GAAUM,EAAOE,GAAQ,EACzBP,GAAUM,EAAOE,GAAQ,EACzBx1lB,IAAYq1lB,EAAOE,GAAQ,EAC3Bt1lB,IAAYq1lB,EAAOE,GAAQ,EAE7B,MAAO,CAACT,OAAAA,EAAQC,OAAAA,EAAQh1lB,QAAAA,EAASC,QAAAA,GA8DYw1lB,CAD3C,EAAsB/oV,SACiDynV,EAAeQ,GAA/EI,EAAP,EAAOA,OAAQC,EAAf,EAAeA,OAAQh1lB,EAAvB,EAAuBA,QAASC,EAAhC,EAAgCA,QAC1B3vB,GAAY89mB,EAAUxrnB,MAAQ4xnB,GAAWO,EACzC/9mB,GAAao3mB,EAAUvrnB,OAAS2xnB,GAAWQ,EAC3CU,EAAYz+mB,KAAKC,IAAID,KAAKG,IAAI9G,EAAU0G,GAAa,EAAG,GACxD8qf,EAAcojG,EAAY5zmB,KAAKoa,QAAQu6f,OAAQyvH,GAE/CC,GAAgB7zH,EADF7qf,KAAKC,IAAI4qf,EAAc6yH,EAAQ,IACArjoB,KAAKskoB,gCACxDtkoB,KAAK0uC,QAAUA,EAAU8he,EACzBxwgB,KAAK2uC,QAAUA,EAAU6he,EACzBzpb,EAAKw9iB,MAAQvkoB,KAAKwkoB,iBAClBxkoB,KAAKwwgB,YAAcA,EAAc6zH,EAAerkoB,KAAKykoB,qBAAqBzkoB,KAAKa,OAC/Eb,KAAKuwgB,YAAc5qf,KAAKC,IAAI5lB,KAAKwwgB,YAAc6zH,EAAef,EAAa,GAC3EtjoB,KAAKm+nB,eAAe8E,EAAM,EAAGA,EAAK3ioB,OAAQ+jE,iCAE5C,SAAet4D,EAAGwvB,GAChB,IAAMytF,EAAOhpH,KAAKoa,QACZ2sE,EAAO/mF,KAAKy3nB,YACZoL,EAAgB7ioB,KAAKgjoB,oBAC3B,OAAKznmB,GAASytF,EAAKs7G,UAAUoga,gBAAmB1koB,KAAKwjhB,MAAMm+G,kBAAkB51nB,IAA0B,OAApBg7E,EAAKsxiB,QAAQtsnB,IAAeg7E,EAAKl5E,KAAK9B,GAAG4oB,OACnH,EAEF30B,KAAK2koB,uBAAuB59iB,EAAKsxiB,QAAQtsnB,GAAK82nB,EAAgB1tB,iCAEvE,SAAe8tB,EAAMpnnB,EAAOq9D,EAAO7U,GACjC,IAcIt4D,EAdEwvB,EAAiB,UAAT8oC,EACRm/c,EAAQxjhB,KAAKwjhB,MACbs5G,EAAYt5G,EAAMs5G,UAElB8H,EADOphH,EAAMppgB,QACQkqN,UACrBm3E,GAAWqhV,EAAUpknB,KAAOoknB,EAAU/+mB,OAAS,EAC/C29R,GAAWohV,EAAUhknB,IAAMgknB,EAAU9+mB,QAAU,EAC/C6mnB,EAAetpmB,GAASqpmB,EAAcC,aACtCt0H,EAAcs0H,EAAe,EAAI7koB,KAAKuwgB,YACtCC,EAAcq0H,EAAe,EAAI7koB,KAAKwwgB,YACtC+vH,EAAYvgoB,KAAKg9nB,0BAA0BnhnB,EAAOwoD,GAClDq5jB,EAAgB19nB,KAAK69nB,iBAAiB0C,GACtCC,EAAiBxgoB,KAAKwgoB,eAAen8jB,EAAMq5jB,GAC7CjtH,EAAazwgB,KAAK+ioB,eAEtB,IAAKh3nB,EAAI,EAAGA,EAAI8P,IAAS9P,EACvB0kgB,GAAczwgB,KAAK8koB,eAAe/4nB,EAAGwvB,GAEvC,IAAKxvB,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,IAASntE,EAAG,CACtC,IAAM82nB,EAAgB7ioB,KAAK8koB,eAAe/4nB,EAAGwvB,GACvC+me,EAAM2gI,EAAKl3nB,GACXkuD,EAAa,CACjBjpD,EAAGyqS,EAAUz7S,KAAK0uC,QAClB/wB,EAAG+9R,EAAU17S,KAAK2uC,QAClB8he,WAAAA,EACAC,SAAUD,EAAaoyH,EACvBA,cAAAA,EACAryH,YAAAA,EACAD,YAAAA,GAEEiwH,IACFvmkB,EAAW7/C,QAAUsjnB,GAAiB19nB,KAAKg9nB,0BAA0BjxnB,EAAGu2f,EAAIn3e,OAAS,SAAWk5C,IAElGosc,GAAcoyH,EACd7ioB,KAAK8goB,cAAcx+H,EAAKv2f,EAAGkuD,EAAYoK,GAEzCrkE,KAAKygoB,oBAAoB/C,EAAer5jB,EAAMk8jB,iCAEhD,WACE,IAGIx0nB,EAHEg7E,EAAO/mF,KAAKy3nB,YACZtqlB,EAAW45C,EAAKl5E,KAClB02nB,EAAQ,EAEZ,IAAKx4nB,EAAI,EAAGA,EAAIohC,EAAS7sC,OAAQyL,IAAK,CACpC,IAAMnK,EAAQmlF,EAAKsxiB,QAAQtsnB,GACb,OAAVnK,GAAmB4nC,MAAM5nC,KAAU5B,KAAKwjhB,MAAMm+G,kBAAkB51nB,IAAOohC,EAASphC,GAAG4oB,SACrF4vmB,GAAS5+mB,KAAK23B,IAAI17C,IAGtB,OAAO2ioB,wCAET,SAAuB3ioB,GACrB,IAAM2ioB,EAAQvkoB,KAAKy3nB,YAAY8M,MAC/B,OAAIA,EAAQ,IAAM/6lB,MAAM5nC,GACfuzmB,GAAOxvlB,KAAK23B,IAAI17C,GAAS2ioB,GAE3B,kCAET,SAAiB1joB,GACf,IAAMkmF,EAAO/mF,KAAKy3nB,YACZj0G,EAAQxjhB,KAAKwjhB,MACbnhf,EAASmhf,EAAM31gB,KAAKw0B,QAAU,GAC9BzgC,EAAQ0iT,GAAav9N,EAAKsxiB,QAAQx3nB,GAAQ2ihB,EAAMppgB,QAAQrN,QAC9D,MAAO,CACLs2I,MAAOhhH,EAAOxhC,IAAU,GACxBe,MAAAA,oCAGJ,SAAkBqhoB,GAChB,IAEIl3nB,EAAGkomB,EAAMlthB,EAAMmzB,EAAY9/F,EAF3BwL,EAAM,EACJ49f,EAAQxjhB,KAAKwjhB,MAEnB,IAAKy/G,EACH,IAAKl3nB,EAAI,EAAGkomB,EAAOzwF,EAAM31gB,KAAK42mB,SAASnknB,OAAQyL,EAAIkomB,IAAQlomB,EACzD,GAAIy3gB,EAAMs/G,iBAAiB/2nB,GAAI,CAE7Bk3nB,GADAl8iB,EAAOy8b,EAAM82G,eAAevunB,IAChB8B,KACZqsG,EAAanzB,EAAKmzB,WAClB,MAIN,IAAK+ohB,EACH,OAAO,EAET,IAAKl3nB,EAAI,EAAGkomB,EAAOgvB,EAAK3ioB,OAAQyL,EAAIkomB,IAAQlomB,EAEd,WAD5BqO,EAAU8/F,EAAW8ihB,0BAA0BjxnB,IACnCg5nB,cACVn/mB,EAAMD,KAAKC,IAAIA,EAAKxL,EAAQ0+B,aAAe,EAAG1+B,EAAQ4qnB,kBAAoB,IAG9E,OAAOp/mB,8BAET,SAAaq9mB,GAEX,IADA,IAAIr9mB,EAAM,EACD7Z,EAAI,EAAGkomB,EAAOgvB,EAAK3ioB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CACjD,IAAMqO,EAAUpa,KAAKg9nB,0BAA0BjxnB,GAC/C6Z,EAAMD,KAAKC,IAAIA,EAAKxL,EAAQ7O,QAAU,EAAG6O,EAAQ6qnB,aAAe,GAElE,OAAOr/mB,sCAET,SAAqBwulB,GAEnB,IADA,IAAI8wB,EAAmB,EACdn5nB,EAAI,EAAGA,EAAIqomB,IAAgBromB,EAC9B/L,KAAKwjhB,MAAMs/G,iBAAiB/2nB,KAC9Bm5nB,GAAoBlloB,KAAKujoB,eAAex3nB,IAG5C,OAAOm5nB,gCAET,SAAe9wB,GACb,OAAOzulB,KAAKC,IAAI+tlB,EAAe3zmB,KAAKwjhB,MAAM31gB,KAAK42mB,SAASrQ,GAAc9/jB,OAAQ,GAAI,gDAEpF,WACE,OAAOt0C,KAAKykoB,qBAAqBzkoB,KAAKwjhB,MAAM31gB,KAAK42mB,SAASnknB,SAAW,QAtMnEsioB,CAA2BpK,IAyMjCoK,GAAmB34nB,GAAK,WACxB24nB,GAAmB97a,SAAW,CAC5B+za,oBAAoB,EACpBwC,gBAAiB,MACjB/4Z,UAAW,CACToga,eAAe,EACfG,cAAc,GAEhBnhI,WAAY,CACV94Y,QAAS,CACPjnG,KAAM,SACNs2C,WAAY,CAAC,gBAAiB,WAAY,cAAe,cAAe,aAAc,IAAK,IAAK,SAAU,cAAe,aAG7HopkB,OAAQ,MACRjoV,SAAU,EACVynV,cAAe,IACfluH,OAAQ,OACRuuH,QAAS,EACTpe,UAAW,KAEb8d,GAAmBve,YAAc,CAC/ByB,YAAa,SAACt4mB,GAAD,MAAmB,YAATA,GACvBu4mB,WAAY,SAACv4mB,GAAD,MAAmB,YAATA,IAExBo1nB,GAAmBxe,UAAY,CAC7B7oE,YAAa,EACbl6C,QAAS,CACPsf,OAAQ,CACNt+e,OAAQ,CACN8imB,eADM,SACS3hH,GACb,IAAM31gB,EAAO21gB,EAAM31gB,KACnB,GAAIA,EAAKw0B,OAAO/hC,QAAUuN,EAAK42mB,SAASnknB,OAAQ,CAC9C,IAAgB8mnB,EAAe5jG,EAAM7C,OAAOvmgB,QAArCioB,OAAS+klB,WAChB,OAAOv5mB,EAAKw0B,OAAOn8B,KAAI,SAACm9I,EAAOt3I,GAC7B,IACMkS,EADOulgB,EAAM82G,eAAe,GACfpghB,WAAWi3gB,SAASplnB,GACvC,MAAO,CACLpJ,KAAM0gJ,EACNwsD,UAAW5xL,EAAMolB,gBACjB0jkB,YAAa9olB,EAAMg7B,YACnBuoe,UAAWvjgB,EAAM66B,YACjBsukB,WAAYA,EACZzylB,QAAS6uf,EAAMm+G,kBAAkB51nB,GACjClL,MAAOkL,MAIb,MAAO,KAGXi7D,QAvBM,SAuBExmE,EAAG4koB,EAAYzkH,GACrBA,EAAO6C,MAAM6hH,qBAAqBD,EAAWvkoB,OAC7C8/gB,EAAO6C,MAAMnlgB,WAGjBmtE,QAAS,CACP96D,UAAW,CACT9E,MADS,WAEP,MAAO,IAETy3H,MAJS,SAIHiif,GACJ,IAAIC,EAAYD,EAAYjif,MACtBzhJ,EAAQ,KAAO0joB,EAAY3kO,eAOjC,OANInlV,EAAQ+pjB,IACVA,EAAYA,EAAU9/nB,SACZ,IAAM7D,EAEhB2joB,GAAa3joB,EAER2joB,WAOXC,GAAAA,SAAAA,qIACJ,WACExloB,KAAKi5nB,qBAAsB,GAC3B,gFAEF,SAAO50jB,GACL,IAAM0iB,EAAO/mF,KAAKy3nB,YACFv8kB,EAAqC6rC,EAA9CnuE,QAAP,EAAqDmuE,EAA/Bl5E,KAAM6xc,OAA5B,MAAqC,GAArC,EAAyC+lL,EAAY1+iB,EAAZ0+iB,SACnCC,EAAqB1loB,KAAKwjhB,MAAMm6G,oBACtC,EA4FJ,SAAyC52iB,EAAM24X,EAAQgmL,GACrD,IAAMC,EAAajmL,EAAOp/c,OACtBub,EAAQ,EACRq9D,EAAQysjB,EACZ,GAAI5+iB,EAAKu0iB,QAAS,CAChB,IAAO3D,EAAmB5wiB,EAAnB4wiB,OAAQU,EAAWtxiB,EAAXsxiB,QACTtkkB,EAAO4jkB,EAAO5jkB,KACpB,EAA2C4jkB,EAAOwE,gBAA3Cr2mB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IAAKo4f,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,WACzBD,IACFnigB,EAAQ27lB,GAAY7xlB,KAAKG,IACvBskmB,GAAaiO,EAASV,EAAO5jkB,KAAMjuC,GAAK0oI,GACxCk3e,EAAqBC,EAAavb,GAAa1qK,EAAQ3rZ,EAAM4jkB,EAAOmH,iBAAiBh5mB,IAAM0oI,IAC7F,EAAGm3e,EAAa,IAGhBzsjB,EADE+kc,EACMu5F,GAAY7xlB,KAAKC,IACvBwkmB,GAAaiO,EAASV,EAAO5jkB,KAAMnuC,GAAK6oI,GAAK,EAC7Ci3e,EAAqB,EAAItb,GAAa1qK,EAAQ3rZ,EAAM4jkB,EAAOmH,iBAAiBl5mB,IAAM6oI,GAAK,GACzF5yI,EAAO8pnB,GAAc9pnB,EAEb8pnB,EAAa9pnB,EAGzB,MAAO,CAACA,MAAAA,EAAOq9D,MAAAA,GAnHQ0sjB,CAAgC7+iB,EAAM24X,EAAQgmL,GAA9D7pnB,EAAL,EAAKA,MAAOq9D,EAAZ,EAAYA,MACZl5E,KAAK+4nB,WAAal9mB,EAClB7b,KAAKg5nB,WAAa9/iB,EAmHtB,SAA4B6N,GAC1B,IAAOmziB,EAAgCnziB,EAAhCmziB,OAAQE,EAAwBrziB,EAAxBqziB,OAAQyL,EAAgB9+iB,EAAhB8+iB,aACjB7+c,EAAY,CAChB8+c,KAAM5L,EAAOp0mB,IACbignB,KAAM7L,EAAOt0mB,IACbognB,KAAM5L,EAAOt0mB,IACbmgnB,KAAM7L,EAAOx0mB,KAEf,IAAKignB,EAEH,OADA9+iB,EAAK8+iB,aAAe7+c,GACb,EAET,IAAMw2D,EAAUqoZ,EAAaC,OAAS5L,EAAOp0mB,KAC1C+/mB,EAAaE,OAAS7L,EAAOt0mB,KAC7BignB,EAAaG,OAAS5L,EAAOt0mB,KAC7B+/mB,EAAaI,OAAS7L,EAAOx0mB,IAEhC,OADA9e,OAAOw4C,OAAOumlB,EAAc7+c,GACrBw2D,EAnID0oZ,CAAmBn/iB,KACrBlrE,EAAQ,EACRq9D,EAAQwmY,EAAOp/c,QAEjB46C,EAAKi4kB,OAASnznB,KAAKwjhB,MACnBtoe,EAAKo4kB,cAAgBtznB,KAAKa,MAC1Bq6C,EAAKirlB,aAAeV,EAASU,WAC7BjrlB,EAAKwka,OAASA,EACd,IAAMtlc,EAAUpa,KAAK+8nB,6BAA6B14jB,GAC7CrkE,KAAKoa,QAAQkrmB,WAChBlrmB,EAAQ0+B,YAAc,GAExB1+B,EAAQs1f,QAAU1vgB,KAAKoa,QAAQs1f,QAC/B1vgB,KAAK8goB,cAAc5llB,OAAM9iC,EAAW,CAClC+tiB,UAAWu/E,EACXtrnB,QAAAA,GACCiqD,GACHrkE,KAAKm+nB,eAAez+K,EAAQ7jc,EAAOq9D,EAAO7U,iCAE5C,SAAeq7Y,EAAQ7jc,EAAOq9D,EAAO7U,GAYnC,IAXA,IAAM9oC,EAAiB,UAAT8oC,EACd,EAA6CrkE,KAAKy3nB,YAA3CE,EAAP,EAAOA,OAAQN,EAAf,EAAeA,OAAQ+B,EAAvB,EAAuBA,SAAUqM,EAAjC,EAAiCA,SAC3BlF,EAAYvgoB,KAAKg9nB,0BAA0BnhnB,EAAOwoD,GAClDq5jB,EAAgB19nB,KAAK69nB,iBAAiB0C,GACtCC,EAAiBxgoB,KAAKwgoB,eAAen8jB,EAAMq5jB,GAC3C9F,EAAQD,EAAO5jkB,KACf8jkB,EAAQR,EAAOtjkB,KACrB,EAA4B/zD,KAAKoa,QAA1B20mB,EAAP,EAAOA,SAAUr/G,EAAjB,EAAiBA,QACX02H,EAAe/6a,GAAS0ja,GAAYA,EAAWt/jB,OAAO6ljB,kBACtD+wB,EAAermoB,KAAKwjhB,MAAMm6G,qBAAuBpimB,GAAkB,SAAT8oC,EAC5DiikB,EAAazqnB,EAAQ,GAAK7b,KAAKw8nB,UAAU3gnB,EAAQ,GAC5C9P,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,IAASntE,EAAG,CAC1C,IAAMi7J,EAAQ04S,EAAO3zc,GACfkgN,EAASjsN,KAAKw8nB,UAAUzwnB,GACxBkuD,EAAaoskB,EAAer/d,EAAQ,GACpCu/d,EAAW1yG,EAAc5nU,EAAO4ra,IAChCnJ,EAASz0jB,EAAW29jB,GAASD,EAAOmH,iBAAiB7ya,EAAO2ra,GAAQ7rnB,GACpE4inB,EAAS10jB,EAAW49jB,GAASt8lB,GAASgrmB,EAAWlP,EAAO+I,eAAiB/I,EAAOyH,iBAAiB1F,EAAWp5nB,KAAK22nB,WAAWU,EAAQpra,EAAQmta,GAAYnta,EAAO4ra,GAAQ9rnB,GAC7KkuD,EAAWjU,KAAOxc,MAAMkllB,IAAWlllB,MAAMmllB,IAAW4X,EACpDtskB,EAAW1/C,KAAOxO,EAAI,GAAMkgN,EAAO2ra,GAAS0O,EAAW1O,GAAUwO,EAC7D12H,IACFz1c,EAAWgyJ,OAASA,EACpBhyJ,EAAWqsK,IAAMm/Z,EAAS53nB,KAAK9B,IAE7By0nB,IACFvmkB,EAAW7/C,QAAUsjnB,GAAiB19nB,KAAKg9nB,0BAA0BjxnB,EAAGi7J,EAAM77I,OAAS,SAAWk5C,IAE/FgikB,GACHrmoB,KAAK8goB,cAAc95d,EAAOj7J,EAAGkuD,EAAYoK,GAE3CiikB,EAAar6a,EAEfjsN,KAAKygoB,oBAAoB/C,EAAer5jB,EAAMk8jB,iCAEhD,WACE,IAAMx5iB,EAAO/mF,KAAKy3nB,YACZ7+mB,EAAUmuE,EAAKnuE,QACfyiC,EAASziC,EAAQwB,SAAWxB,EAAQwB,QAAQ0+B,aAAe,EAC3DjrC,EAAOk5E,EAAKl5E,MAAQ,GAC1B,IAAKA,EAAKvN,OACR,OAAO+6C,EAET,IAAMkykB,EAAa1/mB,EAAK,GAAG2K,KAAKxY,KAAKg9nB,0BAA0B,IACzDwJ,EAAY34nB,EAAKA,EAAKvN,OAAS,GAAGkY,KAAKxY,KAAKg9nB,0BAA0BnvnB,EAAKvN,OAAS,IAC1F,OAAOqlB,KAAKC,IAAIy1B,EAAQkykB,EAAYiZ,GAAa,sBAEnD,WACE,IAAMz/iB,EAAO/mF,KAAKy3nB,YAClB1wiB,EAAKnuE,QAAQ6tnB,oBAAoBzmoB,KAAKwjhB,MAAMs5G,UAAW/1iB,EAAK4wiB,OAAO5jkB,OACnE,0DAjFEyxkB,CAAuBhN,IAoF7BgN,GAAev7nB,GAAK,OACpBu7nB,GAAe1+a,SAAW,CACxB+za,mBAAoB,OACpBwC,gBAAiB,QACjB/X,UAAU,EACVyJ,UAAU,GAEZyW,GAAephB,UAAY,CACzBiB,OAAQ,CACNkd,QAAS,CACP5+mB,KAAM,YAER6+mB,QAAS,CACP7+mB,KAAM,gBAiDN+inB,GAAAA,SAAAA,iCACJ,WAAYljH,EAAO4wF,GAAc,6BAC/B,cAAM5wF,EAAO4wF,IACR7jG,iBAAcn4f,EACnB,EAAKo4f,iBAAcp4f,EAHY,iDAKjC,SAAiBvX,GACf,IAAMkmF,EAAO/mF,KAAKy3nB,YACZj0G,EAAQxjhB,KAAKwjhB,MACbnhf,EAASmhf,EAAM31gB,KAAKw0B,QAAU,GAC9BzgC,EAAQ0iT,GAAav9N,EAAKsxiB,QAAQx3nB,GAAO0lE,EAAGi9c,EAAMppgB,QAAQrN,QAChE,MAAO,CACLs2I,MAAOhhH,EAAOxhC,IAAU,GACxBe,MAAAA,yBAGJ,SAAOyiE,GACL,IAAM4+jB,EAAOjjoB,KAAKy3nB,YAAY5pnB,KAC9B7N,KAAK2moB,gBACL3moB,KAAKm+nB,eAAe8E,EAAM,EAAGA,EAAK3ioB,OAAQ+jE,gCAE5C,WACE,IAAMm/c,EAAQxjhB,KAAKwjhB,MACbs5G,EAAYt5G,EAAMs5G,UAClB9zgB,EAAOw6Z,EAAMppgB,QACb89T,EAAUvyT,KAAKG,IAAIg3mB,EAAU/+mB,MAAQ++mB,EAAUpknB,KAAMoknB,EAAU9+mB,OAAS8+mB,EAAUhknB,KAClF03f,EAAc7qf,KAAKC,IAAIsyT,EAAU,EAAG,GAEpCmsT,GAAgB7zH,EADF7qf,KAAKC,IAAIojG,EAAK49gB,iBAAoBp2H,EAAc,IAAQxnZ,EAAK49gB,iBAAoB,EAAG,IACrDpjH,EAAMqjH,yBACzD7moB,KAAKwwgB,YAAcA,EAAe6zH,EAAerkoB,KAAKa,MACtDb,KAAKuwgB,YAAcvwgB,KAAKwwgB,YAAc6zH,gCAExC,SAAepB,EAAMpnnB,EAAOq9D,EAAO7U,GACjC,IAUIt4D,EAVEwvB,EAAiB,UAAT8oC,EACRm/c,EAAQxjhB,KAAKwjhB,MACb5qgB,EAAU5Y,KAAKs5nB,aAEfsL,EADOphH,EAAMppgB,QACQkqN,UACrBhD,EAAQthO,KAAKy3nB,YAAY4C,OACzB5+U,EAAUn6E,EAAMwla,QAChBprV,EAAUp6E,EAAM1xB,QAChBm3b,EAAoBzla,EAAM0la,cAAc,GAAK,GAAMryX,EACrDnjO,EAAQu1lB,EAENE,EAAe,IAAMjnoB,KAAKknoB,uBAChC,IAAKn7nB,EAAI,EAAGA,EAAI8P,IAAS9P,EACvBylC,GAASxxC,KAAKmnoB,cAAcp7nB,EAAGs4D,EAAM4ikB,GAEvC,IAAKl7nB,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,EAAOntE,IAAK,CACtC,IAAMu2f,EAAM2gI,EAAKl3nB,GACb0kgB,EAAaj/d,EACbk/d,EAAWl/d,EAAQxxC,KAAKmnoB,cAAcp7nB,EAAGs4D,EAAM4ikB,GAC/Cz2H,EAAcgT,EAAMm+G,kBAAkB51nB,GAAKu1N,EAAM8la,8BAA8BxunB,EAAQ/K,KAAK9B,IAAM,EACtGylC,EAAQk/d,EACJn1e,IACEqpmB,EAAcC,eAChBr0H,EAAc,GAEZo0H,EAAcF,gBAChBj0H,EAAaC,EAAWq2H,IAG5B,IAAM9skB,EAAa,CACjBjpD,EAAGyqS,EACH99R,EAAG+9R,EACH60N,YAAa,EACbC,YAAAA,EACAC,WAAAA,EACAC,SAAAA,EACAt2f,QAASpa,KAAKg9nB,0BAA0BjxnB,EAAGu2f,EAAIn3e,OAAS,SAAWk5C,IAErErkE,KAAK8goB,cAAcx+H,EAAKv2f,EAAGkuD,EAAYoK,wCAG3C,WAAuB,WACfzrD,EAAU5Y,KAAKs5nB,aACfvyiB,EAAO/mF,KAAKy3nB,YACdv+iB,EAAQ,EAMZ,OALA6N,EAAKl5E,KAAK5N,SAAQ,SAACH,EAASe,IACrB2oC,MAAM5wB,EAAQ/K,KAAKhN,KAAW,EAAK2ihB,MAAMm+G,kBAAkB9goB,IAC9Dq4E,OAGGA,+BAET,SAAcr4E,EAAOwjE,EAAM4ikB,GACzB,OAAOjnoB,KAAKwjhB,MAAMm+G,kBAAkB9goB,GAChCq1mB,GAAUl2mB,KAAKg9nB,0BAA0Bn8nB,EAAOwjE,GAAM7yB,OAASy1lB,GAC/D,QAxFFP,CAA4BlO,IA2FlCkO,GAAoBz8nB,GAAK,YACzBy8nB,GAAoB5/a,SAAW,CAC7Bu2a,gBAAiB,MACjB/4Z,UAAW,CACToga,eAAe,EACfG,cAAc,GAEhBnhI,WAAY,CACV94Y,QAAS,CACPjnG,KAAM,SACNs2C,WAAY,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,iBAGpE6qjB,UAAW,IACXr0G,WAAY,GAEdi2H,GAAoBtiB,UAAY,CAC9B7oE,YAAa,EACbl6C,QAAS,CACPsf,OAAQ,CACNt+e,OAAQ,CACN8imB,eADM,SACS3hH,GACb,IAAM31gB,EAAO21gB,EAAM31gB,KACnB,GAAIA,EAAKw0B,OAAO/hC,QAAUuN,EAAK42mB,SAASnknB,OAAQ,CAC9C,IAAgB8mnB,EAAe5jG,EAAM7C,OAAOvmgB,QAArCioB,OAAS+klB,WAChB,OAAOv5mB,EAAKw0B,OAAOn8B,KAAI,SAACm9I,EAAOt3I,GAC7B,IACMkS,EADOulgB,EAAM82G,eAAe,GACfpghB,WAAWi3gB,SAASplnB,GACvC,MAAO,CACLpJ,KAAM0gJ,EACNwsD,UAAW5xL,EAAMolB,gBACjB0jkB,YAAa9olB,EAAMg7B,YACnBuoe,UAAWvjgB,EAAM66B,YACjBsukB,WAAYA,EACZzylB,QAAS6uf,EAAMm+G,kBAAkB51nB,GACjClL,MAAOkL,MAIb,MAAO,KAGXi7D,QAvBM,SAuBExmE,EAAG4koB,EAAYzkH,GACrBA,EAAO6C,MAAM6hH,qBAAqBD,EAAWvkoB,OAC7C8/gB,EAAO6C,MAAMnlgB,WAGjBmtE,QAAS,CACP96D,UAAW,CACT9E,MADS,WAEP,MAAO,IAETy3H,MAJS,SAIH1oI,GACJ,OAAOA,EAAQ6ogB,MAAM31gB,KAAKw0B,OAAO1nB,EAAQsinB,WAAa,KAAOtinB,EAAQgmZ,mBAK7E0kN,OAAQ,CACN9+iB,EAAG,CACD5iD,KAAM,eACN0jnB,WAAY,CACVhonB,SAAS,GAEXojnB,aAAa,EACbx/G,KAAM,CACJqkH,UAAU,GAEZC,YAAa,CACXlonB,SAAS,GAEXoxf,WAAY,SAKZ+2H,GAAAA,SAAAA,6GAAAA,CAAsB5E,IAE5B4E,GAAcv9nB,GAAK,MACnBu9nB,GAAc1gb,SAAW,CACvBu8a,OAAQ,EACRjoV,SAAU,EACVynV,cAAe,IACfluH,OAAQ,YAGJ8yH,GAAAA,SAAAA,2IACJ,SAAiB5moB,GACf,IAAMw2nB,EAASr3nB,KAAKy3nB,YAAYJ,OAC1Bpra,EAASjsN,KAAKw8nB,UAAU37nB,GAC9B,MAAO,CACLwiJ,MAAOg0e,EAAOqE,YAAY76nB,GAC1Be,MAAO,GAAKy1nB,EAAOoF,iBAAiBxwa,EAAOora,EAAOtjkB,8BAGtD,SAAOsQ,GACL,IAAM0iB,EAAO/mF,KAAKy3nB,YACZv8kB,EAAO6rC,EAAKnuE,QACZ8mc,EAAS34X,EAAKl5E,MAAQ,GACtBw0B,EAAS0kD,EAAK4wiB,OAAO+D,YAE3B,GADAxglB,EAAKwka,OAASA,EACD,WAATr7Y,EAAmB,CACrB,IAAMjqD,EAAUpa,KAAK+8nB,6BAA6B14jB,GAC7CrkE,KAAKoa,QAAQkrmB,WAChBlrmB,EAAQ0+B,YAAc,GAExB,IAAMmhB,EAAa,CACjBosT,OAAO,EACPqhR,UAAWrlmB,EAAO/hC,SAAWo/c,EAAOp/c,OACpC8Z,QAAAA,GAEFpa,KAAK8goB,cAAc5llB,OAAM9iC,EAAW6hD,EAAYoK,GAElDrkE,KAAKm+nB,eAAez+K,EAAQ,EAAGA,EAAOp/c,OAAQ+jE,iCAEhD,SAAeq7Y,EAAQ7jc,EAAOq9D,EAAO7U,GAInC,IAHA,IAAMzrD,EAAU5Y,KAAKs5nB,aACfh4Z,EAAQthO,KAAKy3nB,YAAY4C,OACzB9+lB,EAAiB,UAAT8oC,EACLt4D,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,EAAOntE,IAAK,CAC1C,IAAMi7J,EAAQ04S,EAAO3zc,GACfqO,EAAUpa,KAAKg9nB,0BAA0BjxnB,EAAGi7J,EAAM77I,OAAS,SAAWk5C,GACtEwjW,EAAgBvmM,EAAMqma,yBAAyB57nB,EAAG6M,EAAQ/K,KAAK9B,IAC/DiF,EAAIuqB,EAAQ+lM,EAAMwla,QAAUj/N,EAAc72Z,EAC1C2M,EAAI4d,EAAQ+lM,EAAM1xB,QAAUi4N,EAAclqZ,EAC1Cs8C,EAAa,CACjBjpD,EAAAA,EACA2M,EAAAA,EACA6zB,MAAOq2X,EAAcr2X,MACrBwU,KAAMxc,MAAMx4B,IAAMw4B,MAAM7rB,GACxBvD,QAAAA,GAEFpa,KAAK8goB,cAAc95d,EAAOj7J,EAAGkuD,EAAYoK,UA9CzCojkB,CAAwBjP,IAkD9BiP,GAAgBx9nB,GAAK,QACrBw9nB,GAAgB3gb,SAAW,CACzB+za,mBAAoB,OACpBwC,gBAAiB,QACjBvY,UAAW,IACXQ,UAAU,EACVz6jB,SAAU,CACR3P,KAAM,CACJghF,KAAM,WAIZurgB,GAAgBrjB,UAAY,CAC1B7oE,YAAa,EACb8pE,OAAQ,CACN9+iB,EAAG,CACD5iD,KAAM,sBAKNiknB,GAAAA,SAAAA,6GAAAA,CAA0BpC,IAEhCoC,GAAkB39nB,GAAK,UACvB29nB,GAAkB9gb,SAAW,CAC3Bw+Z,UAAU,EACVppf,MAAM,GAER0rgB,GAAkBxjB,UAAY,CAC5BW,YAAa,CACX1gjB,KAAM,SAERg9b,QAAS,CACP71a,QAAS,CACP96D,UAAW,CACT9E,MADS,WAEP,MAAO,IAETy3H,MAJS,SAIHnjJ,GACJ,MAAO,IAAMA,EAAKmjJ,MAAQ,KAAOnjJ,EAAKyga,eAAiB,QAK/D0kN,OAAQ,CACNr0mB,EAAG,CACD2S,KAAM,UAERhG,EAAG,CACDgG,KAAM,YAKZ,IAAIy1F,GAA2BtyG,OAAOqtM,OAAO,CAC7Cp4D,UAAW,KACXikf,cAAeA,GACf0C,iBAAkBA,GAClBE,mBAAoBA,GACpB4C,eAAgBA,GAChBkB,oBAAqBA,GACrBc,cAAeA,GACfC,gBAAiBA,GACjBG,kBAAmBA,KAGnB,SAASzuZ,KACP,MAAM,IAAI9jM,MAAM,uFAEZwylB,GAAAA,WACJ,WAAYztnB,IAAS,eACnBpa,KAAKoa,QAAUA,GAAW,yCAE5B,WACE,OAAO++N,0BAET,SAAMv3O,EAAOk3B,GACX,OAAOqgN,2BAET,SAAO2uZ,EAAWhvmB,GAChB,OAAOqgN,wBAET,SAAI2uZ,EAAW9yc,EAAQxjL,GACrB,OAAO2nO,yBAET,SAAK1zL,EAAGC,EAAGl0C,GACT,OAAO2nO,4BAET,SAAQ2uZ,EAAWt2nB,EAAMs9S,GACvB,OAAO31E,0BAET,SAAM2uZ,EAAWt2nB,GACf,OAAO2nO,WAvBL0uZ,GA0BNA,GAAYjc,SAAW,SAAStzY,GAC9BxxO,OAAOw4C,OAAOuolB,GAAYrioB,UAAW8yO,IAEvC,IAAIyvZ,GAAW,CACbr5S,MAAOm5S,IAGT,SAAS/X,GAAoBtvnB,EAAGgjhB,GAC9B,MAAI,WAAYhjhB,EACP,CACLwQ,EAAGxQ,EAAEwQ,EACL2M,EAAGnd,EAAEmd,GAGFqqnB,GAAsBxnoB,EAAGgjhB,GAelC,SAASzhU,GAAakmb,EAASl0kB,EAAMnyD,EAAOojnB,GAC1C,IAAO9qgB,EAA6B+thB,EAA7B/thB,WAAYrsG,EAAiBo6nB,EAAjBp6nB,KAAMytnB,EAAW2M,EAAX3M,QACnB3D,EAASz9gB,EAAWu9gB,YAAYE,OACtC,GAAIA,GAAU5jkB,IAAS4jkB,EAAO5jkB,MAAiB,MAATA,GAAgBunkB,GAAWztnB,EAAKvN,OAAQ,CAC5E,IAAM4noB,EAAevQ,EAAOwQ,eAAiB9d,GAAgBD,GAC7D,IAAKpF,EACH,OAAOkjB,EAAar6nB,EAAMkmD,EAAMnyD,GAC3B,GAAIs4G,EAAW4+gB,eAAgB,CACpC,IAAMtwnB,EAAKqF,EAAK,GACVm+E,EAA+B,oBAAhBxjF,EAAGkrI,UAA2BlrI,EAAGkrI,SAAS3/E,GAC/D,GAAIi4B,EAAO,CACT,IAAMnwE,EAAQqsnB,EAAar6nB,EAAMkmD,EAAMnyD,EAAQoqF,GACzC54D,EAAM80mB,EAAar6nB,EAAMkmD,EAAMnyD,EAAQoqF,GAC7C,MAAO,CAACwiE,GAAI3yI,EAAM2yI,GAAIC,GAAIr7H,EAAIq7H,MAIpC,MAAO,CAACD,GAAI,EAAGC,GAAI5gJ,EAAKvN,OAAS,GAEnC,SAAS8noB,GAAuB5kH,EAAOzvd,EAAM5tC,EAAU5lB,EAASyknB,GAG9D,IAFA,IAAMyR,EAAWjzG,EAAM6kH,+BACjBzmoB,EAAQukB,EAAS4tC,GACdhoD,EAAI,EAAGkomB,EAAOwiB,EAASn2nB,OAAQyL,EAAIkomB,IAAQlomB,EAGlD,IAFA,MAAsB0qnB,EAAS1qnB,GAAxBlL,EAAP,EAAOA,MAAOgN,EAAd,EAAcA,KACd,EAAiBk0M,GAAa00a,EAAS1qnB,GAAIgoD,EAAMnyD,EAAOojnB,GAAjDx2d,EAAP,EAAOA,GAAIC,EAAX,EAAWA,GACFlkE,EAAIikE,EAAIjkE,GAAKkkE,IAAMlkE,EAAG,CAC7B,IAAMzqF,EAAU+N,EAAK08E,GAChBzqF,EAAQkmD,MACXzlD,EAAQT,EAASe,EAAO0pF,IAchC,SAAS+9iB,GAAkB9kH,EAAOr9f,EAAU4tC,EAAMw0kB,GAChD,IAAM78nB,EAAQ,GACd,IAAK+7mB,GAAethmB,EAAUq9f,EAAMs5G,UAAWt5G,EAAMglH,aACnD,OAAO98nB,EAQT,OADA08nB,GAAuB5kH,EAAOzvd,EAAM5tC,GALb,SAASrmB,EAASs0mB,EAAcvzmB,GACjDf,EAAQuzQ,QAAQltP,EAASnV,EAAGmV,EAASxI,EAAG4qnB,IAC1C78nB,EAAM9K,KAAK,CAACd,QAAAA,EAASs0mB,aAAAA,EAAcvzmB,MAAAA,OAGuB,GACvD6K,EAcT,SAAS+8nB,GAAyBjlH,EAAOr9f,EAAU4tC,EAAMixjB,EAAWujB,GAClE,IAAI78nB,EAAQ,GACNg9nB,EApCR,SAAkC30kB,GAChC,IAAM40kB,GAA8B,IAAvB50kB,EAAK5tD,QAAQ,KACpByioB,GAA8B,IAAvB70kB,EAAK5tD,QAAQ,KAC1B,OAAO,SAAS2wmB,EAAKC,GACnB,IAAMzpe,EAASq7f,EAAOhjnB,KAAK23B,IAAIw5jB,EAAI9lmB,EAAI+lmB,EAAI/lmB,GAAK,EAC1Cu8H,EAASq7f,EAAOjjnB,KAAK23B,IAAIw5jB,EAAIn5lB,EAAIo5lB,EAAIp5lB,GAAK,EAChD,OAAOgI,KAAK+0H,KAAK/0H,KAAKg7C,IAAI2sE,EAAQ,GAAK3nH,KAAKg7C,IAAI4sE,EAAQ,KA8BnCs7f,CAAyB90kB,GAC5C+0kB,EAAcr5kB,OAAO6ljB,kBAoBzB,OADA8yB,GAAuB5kH,EAAOzvd,EAAM5tC,GAlBpC,SAAwBrmB,EAASs0mB,EAAcvzmB,GAC7C,IAAMwyQ,EAAUvzQ,EAAQuzQ,QAAQltP,EAASnV,EAAGmV,EAASxI,EAAG4qnB,GACxD,IAAIvjB,GAAc3xW,EAAlB,CAGA,IAAM/vP,EAASxjB,EAAQipoB,eAAeR,GAEtC,GADoB9gB,GAAenkmB,EAAQkggB,EAAMs5G,UAAWt5G,EAAMglH,cAC7Cn1X,EAArB,CAGA,IAAM1tO,EAAW+imB,EAAevinB,EAAU7C,GACtCqiB,EAAWmjmB,GACbp9nB,EAAQ,CAAC,CAAC5L,QAAAA,EAASs0mB,aAAAA,EAAcvzmB,MAAAA,IACjCiooB,EAAcnjmB,GACLA,IAAamjmB,GACtBp9nB,EAAM9K,KAAK,CAACd,QAAAA,EAASs0mB,aAAAA,EAAcvzmB,MAAAA,SAIhC6K,EAET,SAASs9nB,GAAgBxlH,EAAOr9f,EAAU4tC,EAAMixjB,EAAWujB,GACzD,OAAK9gB,GAAethmB,EAAUq9f,EAAMs5G,UAAWt5G,EAAMglH,aAGrC,MAATz0kB,GAAiBixjB,EAEpByjB,GAAyBjlH,EAAOr9f,EAAU4tC,EAAMixjB,EAAWujB,GA3CjE,SAA+B/kH,EAAOr9f,EAAU4tC,EAAMw0kB,GACpD,IAAI78nB,EAAQ,GASZ,OADA08nB,GAAuB5kH,EAAOzvd,EAAM5tC,GAPpC,SAAwBrmB,EAASs0mB,EAAcvzmB,GAC7C,MAA+Bf,EAAQ2qU,SAAS,CAAC,aAAc,YAAa89T,GAArE93H,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,SAEfwmG,GADYX,GAAkBz2mB,EAAS,CAACkR,EAAGmV,EAASnV,EAAG2M,EAAGwI,EAASxI,IAAhE6zB,MACkBi/d,EAAYC,IACnChlgB,EAAM9K,KAAK,CAACd,QAAAA,EAASs0mB,aAAAA,EAAcvzmB,MAAAA,OAIhC6K,EAgCHu9nB,CAAsBzlH,EAAOr9f,EAAU4tC,EAAMw0kB,GAHxC,GAMX,SAASW,GAAa1lH,EAAOhjhB,EAAG4Z,EAASmunB,GACvC,IAAMpinB,EAAW2pmB,GAAoBtvnB,EAAGgjhB,GAClC93gB,EAAQ,GACRqoD,EAAO35C,EAAQ25C,KACfo1kB,EAAuB,MAATp1kB,EAAe,WAAa,WAC5Cq1kB,GAAiB,EASrB,OA/HF,SAAiC5lH,EAAOjjhB,GAGtC,IAFA,IACIM,EAAOgN,EAAM/N,EADX22nB,EAAWjzG,EAAM6kH,+BAEdt8nB,EAAI,EAAGkomB,EAAOwiB,EAASn2nB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,OACpC0qnB,EAAS1qnB,GAAxBlL,EADmD,EACnDA,MACF,IAAK,IAAI0pF,EAAI,EAAGg8hB,GADP14mB,EAD4C,EAC5CA,MACmBvN,OAAQiqF,EAAIg8hB,IAAQh8hB,GAC9CzqF,EAAU+N,EAAK08E,IACFvkC,MACXzlD,EAAQT,EAASe,EAAO0pF,IA+G9B8+iB,CAAwB7lH,GAAO,SAAC1jhB,EAASs0mB,EAAcvzmB,GACjDf,EAAQqpoB,GAAahjnB,EAAS4tC,GAAOw0kB,IACvC78nB,EAAM9K,KAAK,CAACd,QAAAA,EAASs0mB,aAAAA,EAAcvzmB,MAAAA,IAEjCf,EAAQuzQ,QAAQltP,EAASnV,EAAGmV,EAASxI,EAAG4qnB,KAC1Ca,GAAiB,MAGjBhvnB,EAAQ4qmB,YAAcokB,EACjB,GAEF19nB,EAET,IAAI49nB,GAAc,CAChBC,MAAO,CACL1ooB,MADK,SACC2ihB,EAAOhjhB,EAAG4Z,EAASmunB,GACvB,IAAMpinB,EAAW2pmB,GAAoBtvnB,EAAGgjhB,GAClCzvd,EAAO35C,EAAQ25C,MAAQ,IACvBroD,EAAQ0O,EAAQ4qmB,UAClBsjB,GAAkB9kH,EAAOr9f,EAAU4tC,EAAMw0kB,GACzCS,GAAgBxlH,EAAOr9f,EAAU4tC,GAAM,EAAOw0kB,GAC5C19kB,EAAW,GACjB,OAAKn/C,EAAMpL,QAGXkjhB,EAAM6kH,+BAA+BpooB,SAAQ,SAAC8mF,GAC5C,IAAMlmF,EAAQ6K,EAAM,GAAG7K,MACjBf,EAAUinF,EAAKl5E,KAAKhN,GACtBf,IAAYA,EAAQkmD,MACtB6E,EAASjqD,KAAK,CAACd,QAAAA,EAASs0mB,aAAcrthB,EAAKlmF,MAAOA,MAAAA,OAG/CgqD,GATE,IAWXjyC,QApBK,SAoBG4qgB,EAAOhjhB,EAAG4Z,EAASmunB,GACzB,IAAMpinB,EAAW2pmB,GAAoBtvnB,EAAGgjhB,GAClCzvd,EAAO35C,EAAQ25C,MAAQ,KACzBroD,EAAQ0O,EAAQ4qmB,UAChBsjB,GAAkB9kH,EAAOr9f,EAAU4tC,EAAMw0kB,GAC3CS,GAAgBxlH,EAAOr9f,EAAU4tC,GAAM,EAAOw0kB,GAChD,GAAI78nB,EAAMpL,OAAS,EAAG,CACpB,IAAM8zmB,EAAe1omB,EAAM,GAAG0omB,aACxBvmmB,EAAO21gB,EAAM82G,eAAelmB,GAAcvmmB,KAChDnC,EAAQ,GACR,IAAK,IAAIK,EAAI,EAAGA,EAAI8B,EAAKvN,SAAUyL,EACjCL,EAAM9K,KAAK,CAACd,QAAS+N,EAAK9B,GAAIqomB,aAAAA,EAAcvzmB,MAAOkL,IAGvD,OAAOL,GAETs7J,MApCK,SAoCCw8W,EAAOhjhB,EAAG4Z,EAASmunB,GAGvB,OAAOD,GAAkB9kH,EAFRssG,GAAoBtvnB,EAAGgjhB,GAC3BppgB,EAAQ25C,MAAQ,KACmBw0kB,IAElDiB,QAzCK,SAyCGhmH,EAAOhjhB,EAAG4Z,EAASmunB,GAGzB,OAAOS,GAAgBxlH,EAFNssG,GAAoBtvnB,EAAGgjhB,GAC3BppgB,EAAQ25C,MAAQ,KACiB35C,EAAQ4qmB,UAAWujB,IAEnEv3nB,EA9CK,SA8CHwygB,EAAOhjhB,EAAG4Z,EAASmunB,GACnB,OAAOW,GAAa1lH,EAAOhjhB,EAAG,CAACuzD,KAAM,IAAKixjB,UAAW5qmB,EAAQ4qmB,WAAYujB,IAE3E5qnB,EAjDK,SAiDH6lgB,EAAOhjhB,EAAG4Z,EAASmunB,GACnB,OAAOW,GAAa1lH,EAAOhjhB,EAAG,CAACuzD,KAAM,IAAKixjB,UAAW5qmB,EAAQ4qmB,WAAYujB,MAKzEkB,GAAmB,CAAC,OAAQ,MAAO,QAAS,UAClD,SAASC,GAAiBrxlB,EAAOlyB,GAC/B,OAAOkyB,EAAMzyC,QAAO,SAAAihD,GAAC,OAAIA,EAAEyyB,MAAQnzD,KAErC,SAASwjnB,GAA4BtxlB,EAAO0b,GAC1C,OAAO1b,EAAMzyC,QAAO,SAAAihD,GAAC,OAAyC,IAArC4ilB,GAAiBtjoB,QAAQ0gD,EAAEyyB,MAAezyB,EAAEq0N,IAAInnN,OAASA,KAEpF,SAAS61kB,GAAavxlB,EAAOtkB,GAC3B,OAAOskB,EAAMmN,MAAK,SAACC,EAAGC,GACpB,IAAMwujB,EAAKnglB,EAAU2xB,EAAID,EACnB0ujB,EAAKpglB,EAAU0xB,EAAIC,EACzB,OAAOwujB,EAAG5/jB,SAAW6/jB,EAAG7/jB,OACtB4/jB,EAAGrzmB,MAAQszmB,EAAGtzmB,MACdqzmB,EAAG5/jB,OAAS6/jB,EAAG7/jB,UAkCrB,SAASu1lB,GAAcC,EAAS/nmB,GAC9B,IAEIh2B,EAAGkomB,EAAM3mL,EAFP0pM,EAdR,SAAqB8S,GACnB,IAD4B,EACtB9S,EAAS,GADa,UAET8S,GAFS,IAE5B,2BAA4B,KAAjBlqd,EAAiB,QACnBtpF,EAA2BspF,EAA3BtpF,MAAOhd,EAAoBsmG,EAApBtmG,IAAKywjB,EAAenqd,EAAfmqd,YACnB,GAAKzziB,GAAUmziB,GAAiB3tgB,SAASxiD,GAAzC,CAGA,IAAMoyiB,EAASsL,EAAO1giB,KAAW0giB,EAAO1giB,GAAS,CAACpd,MAAO,EAAG8wjB,OAAQ,EAAG11lB,OAAQ,EAAG97B,KAAM,IACxFkzmB,EAAOxyiB,QACPwyiB,EAAOp3kB,QAAUy1lB,IATS,8BAW5B,OAAO/S,EAGQiT,CAAYH,GACpBI,EAA+BnomB,EAA/BmomB,aAAcC,EAAiBpomB,EAAjBoomB,cAErB,IAAKp+nB,EAAI,EAAGkomB,EAAO61B,EAAQxpoB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAEhD,IAAOq+nB,GADP98M,EAASw8M,EAAQ/9nB,IACSmvQ,IAAnBkvX,SACD9ziB,EAAQ0giB,EAAO1pM,EAAOh3V,OACtBy+hB,EAASz+hB,GAASg3V,EAAOy8M,YAAczziB,EAAMhiD,OAC/Cg5Y,EAAOz+X,YACTy+X,EAAOh8a,MAAQyjnB,EAASA,EAASmV,EAAeE,GAAYromB,EAAO8wK,eACnEy6O,EAAO/7a,OAAS44nB,IAEhB78M,EAAOh8a,MAAQ44nB,EACf58M,EAAO/7a,OAASwjnB,EAASA,EAASoV,EAAgBC,GAAYromB,EAAOsomB,iBAGzE,OAAOrT,EAoBT,SAASsT,GAAeC,EAAYzN,EAAWr3kB,EAAGC,GAChD,OAAO//B,KAAKC,IAAI2knB,EAAW9klB,GAAIq3kB,EAAUr3kB,IAAM9/B,KAAKC,IAAI2knB,EAAW7klB,GAAIo3kB,EAAUp3kB,IAEnF,SAAS8klB,GAAiBD,EAAYE,GACpCF,EAAWzxnB,IAAM6M,KAAKC,IAAI2knB,EAAWzxnB,IAAK2xnB,EAAW3xnB,KACrDyxnB,EAAW7xnB,KAAOiN,KAAKC,IAAI2knB,EAAW7xnB,KAAM+xnB,EAAW/xnB,MACvD6xnB,EAAWvsnB,OAAS2H,KAAKC,IAAI2knB,EAAWvsnB,OAAQysnB,EAAWzsnB,QAC3DusnB,EAAWxsnB,MAAQ4H,KAAKC,IAAI2knB,EAAWxsnB,MAAO0snB,EAAW1snB,OAE3D,SAAS2snB,GAAW5N,EAAW/6lB,EAAQurZ,EAAQ0pM,GAC7C,IAAO19iB,EAAYg0W,EAAZh0W,IAAK4hM,EAAOoyK,EAAPpyK,IACNqvX,EAAazN,EAAUyN,WAC7B,IAAKpgb,EAAS7wI,GAAM,CACdg0W,EAAO90a,OACTsknB,EAAUxjjB,IAAQg0W,EAAO90a,MAE3B,IAAM89E,EAAQ0giB,EAAO1pM,EAAOh3V,QAAU,CAAC99E,KAAM,EAAG0gE,MAAO,GACvDod,EAAM99E,KAAOmN,KAAKC,IAAI0wE,EAAM99E,KAAM80a,EAAOz+X,WAAaqsN,EAAI3pQ,OAAS2pQ,EAAI5pQ,OACvEg8a,EAAO90a,KAAO89E,EAAM99E,KAAO89E,EAAMpd,MACjC4jjB,EAAUxjjB,IAAQg0W,EAAO90a,KAEvB0iQ,EAAIyvX,YACNH,GAAiBD,EAAYrvX,EAAIyvX,cAEnC,IAAMrtnB,EAAWqI,KAAKC,IAAI,EAAGmc,EAAO+lB,WAAawilB,GAAeC,EAAYzN,EAAW,OAAQ,UACzFv/mB,EAAYoI,KAAKC,IAAI,EAAGmc,EAAOlc,YAAcyknB,GAAeC,EAAYzN,EAAW,MAAO,WAC1F8N,EAAettnB,IAAaw/mB,EAAUrze,EACtCq8C,EAAgBvoL,IAAcu/mB,EAAUtze,EAG9C,OAFAsze,EAAUrze,EAAInsI,EACdw/mB,EAAUtze,EAAIjsI,EACP+va,EAAOz+X,WACV,CAACg8kB,KAAMD,EAAc1/gB,MAAO46E,GAC5B,CAAC+kc,KAAM/kc,EAAe56E,MAAO0/gB,GAcnC,SAASE,GAAWj8kB,EAAYiukB,GAC9B,IAAMyN,EAAazN,EAAUyN,WAC7B,SAASQ,EAAmB9vlB,GAC1B,IAAMqpJ,EAAS,CAAC5rL,KAAM,EAAGI,IAAK,EAAGiF,MAAO,EAAGC,OAAQ,GAInD,OAHAi9B,EAAUh7C,SAAQ,SAACq5E,GACjBgrH,EAAOhrH,GAAO3zD,KAAKC,IAAIk3mB,EAAUxjjB,GAAMixjB,EAAWjxjB,OAE7CgrH,EAET,OACIymc,EADGl8kB,EACgB,CAAC,OAAQ,SACT,CAAC,MAAO,WAEjC,SAASm8kB,GAASC,EAAOnO,EAAW/6lB,EAAQi1lB,GAC1C,IACIjrnB,EAAGkomB,EAAM3mL,EAAQpyK,EAAKgwX,EAAO1tZ,EAD3B2tZ,EAAa,GAEnB,IAAKp/nB,EAAI,EAAGkomB,EAAOg3B,EAAM3qoB,OAAQ4qoB,EAAQ,EAAGn/nB,EAAIkomB,IAAQlomB,EAAG,EAEzDmvQ,GADAoyK,EAAS29M,EAAMl/nB,IACFmvQ,KACT78P,OACFiva,EAAOh8a,OAASwrnB,EAAUrze,EAC1B6jS,EAAO/7a,QAAUurnB,EAAUtze,EAC3Bshf,GAAWx9M,EAAOz+X,WAAYiukB,IAEhC,MAAsB4N,GAAW5N,EAAW/6lB,EAAQurZ,EAAQ0pM,GAArD6T,EAAP,EAAOA,KAAM3/gB,EAAb,EAAaA,MACbgghB,GAASL,GAAQM,EAAW7qoB,OAC5Bk9O,EAAUA,GAAWtyH,EAChBgwJ,EAAIkvX,UACPe,EAAWvqoB,KAAK0sb,GAGpB,OAAO49M,GAASF,GAASG,EAAYrO,EAAW/6lB,EAAQi1lB,IAAWx5Y,EAErE,SAAS4tZ,GAAWlwX,EAAKxiQ,EAAMI,EAAKxH,EAAOC,GACzC2pQ,EAAIpiQ,IAAMA,EACVoiQ,EAAIxiQ,KAAOA,EACXwiQ,EAAIn9P,MAAQrF,EAAOpH,EACnB4pQ,EAAIl9P,OAASlF,EAAMvH,EACnB2pQ,EAAI5pQ,MAAQA,EACZ4pQ,EAAI3pQ,OAASA,EAEf,SAAS85nB,GAAWJ,EAAOnO,EAAW/6lB,EAAQi1lB,GAC5C,IADoD,EAC9CsU,EAAcvpmB,EAAO5T,QACtBnd,EAAQ8rnB,EAAR9rnB,EAAG2M,EAAKm/mB,EAALn/mB,EAF4C,UAG/BstnB,GAH+B,IAGpD,2BAA4B,KAAjB39M,EAAiB,QACpBpyK,EAAMoyK,EAAOpyK,IACb5kL,EAAQ0giB,EAAO1pM,EAAOh3V,QAAU,CAACpd,MAAO,EAAG8wjB,OAAQ,EAAG11lB,OAAQ,GAC9DA,EAAUg5Y,EAAOy8M,YAAczziB,EAAMhiD,QAAW,EACtD,GAAIg5Y,EAAOz+X,WAAY,CACrB,IAAMv9C,EAAQwrnB,EAAUrze,EAAIn1G,EACtB/iC,EAAS+kF,EAAM99E,MAAQ0iQ,EAAI3pQ,OAC7B0jmB,EAAQ3+gB,EAAMz6E,SAChB8B,EAAI24E,EAAMz6E,OAERq/P,EAAIkvX,SACNgB,GAAWlwX,EAAKowX,EAAY5ynB,KAAMiF,EAAGokB,EAAO+lB,WAAawjlB,EAAYvtnB,MAAQutnB,EAAY5ynB,KAAMnH,GAE/F65nB,GAAWlwX,EAAK4hX,EAAUpknB,KAAO49E,EAAM0ziB,OAAQrsnB,EAAGrM,EAAOC,GAE3D+kF,EAAMz6E,MAAQ8B,EACd24E,EAAM0ziB,QAAU14nB,EAChBqM,EAAIu9P,EAAIl9P,WACH,CACL,IAAMzM,EAASurnB,EAAUtze,EAAIl1G,EACvBhjC,EAAQglF,EAAM99E,MAAQ0iQ,EAAI5pQ,MAC5B2jmB,EAAQ3+gB,EAAMz6E,SAChB7K,EAAIslF,EAAMz6E,OAERq/P,EAAIkvX,SACNgB,GAAWlwX,EAAKlqQ,EAAGs6nB,EAAYxynB,IAAKxH,EAAOywB,EAAOlc,YAAcylnB,EAAYttnB,OAASstnB,EAAYxynB,KAEjGsynB,GAAWlwX,EAAKlqQ,EAAG8rnB,EAAUhknB,IAAMw9E,EAAM0ziB,OAAQ14nB,EAAOC,GAE1D+kF,EAAMz6E,MAAQ7K,EACdslF,EAAM0ziB,QAAUz4nB,EAChBP,EAAIkqQ,EAAIn9P,QAlCwC,8BAqCpD++mB,EAAU9rnB,EAAIA,EACd8rnB,EAAUn/mB,EAAIA,EAEhBmpM,GAAS9hJ,IAAI,SAAU,CACrBumkB,aAAa,EACbp9mB,QAAS,CACPrV,IAAK,EACLiF,MAAO,EACPC,OAAQ,EACRtF,KAAM,KAGV,IAAIoxnB,GAAU,SACLtmH,EAAOtjhB,GACPsjhB,EAAMynH,QACTznH,EAAMynH,MAAQ,IAEhB/qoB,EAAKkqoB,SAAWlqoB,EAAKkqoB,WAAY,EACjClqoB,EAAKimB,SAAWjmB,EAAKimB,UAAY,MACjCjmB,EAAKo0C,OAASp0C,EAAKo0C,QAAU,EAC7Bp0C,EAAKsroB,QAAUtroB,EAAKsroB,SAAW,WAC7B,MAAO,CAAC,CACN5lhB,EAAG,EACHg7G,KAFM,SAEDk8Z,GACH58nB,EAAK0gO,KAAKk8Z,OAIhBt5G,EAAMynH,MAAMrqoB,KAAKV,IAhBjB4poB,GAAU,SAkBFtmH,EAAOioH,GACf,IAAM5qoB,EAAQ2ihB,EAAMynH,MAAQznH,EAAMynH,MAAM9koB,QAAQsloB,IAAe,GAChD,IAAX5qoB,GACF2ihB,EAAMynH,MAAM17nB,OAAO1O,EAAO,IArB5BipoB,GAAU,SAwBFtmH,EAAOtjhB,EAAMka,GACrBla,EAAKkqoB,SAAWhwnB,EAAQgwnB,SACxBlqoB,EAAKimB,SAAW/L,EAAQ+L,SACxBjmB,EAAKo0C,OAASl6B,EAAQk6B,QA3BtBw1lB,GAAU,SA6BLtmH,EAAOlygB,EAAOC,EAAQm6nB,GAC3B,GAAKloH,EAAL,CAGA,IAAMr1f,EAAU27lB,GAAUtmG,EAAMppgB,QAAQkza,OAAOn/Z,SACzC0kL,EAAiBltL,KAAKC,IAAItU,EAAQ6c,EAAQ7c,MAAO,GACjD+4nB,EAAkB1knB,KAAKC,IAAIrU,EAAS4c,EAAQ5c,OAAQ,GACpD05nB,EA9LV,SAA0BA,GACxB,IAAMU,EAnDR,SAAmBV,GACjB,IACIl/nB,EAAGkomB,EAAM/4V,EAAK5hM,EAAKgd,EAAOyziB,EADxB4B,EAAc,GAEpB,IAAK5/nB,EAAI,EAAGkomB,GAAQg3B,GAAS,IAAI3qoB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,OACtDmvQ,EAAM+vX,EAAMl/nB,GACAutE,EAF0C,EAEpDnzD,SAFoD,QAErC/L,QAAUk8E,EAF2B,EAE3BA,MAF2B,QAEpByziB,YAAAA,OAFoB,MAEN,EAFM,EAGtD4B,EAAY/qoB,KAAK,CACfC,MAAOkL,EACPmvQ,IAAAA,EACA5hM,IAAAA,EACAzqB,WAAYqsN,EAAIkyG,eAChB94U,OAAQ4mO,EAAI5mO,OACZgiD,MAAOA,GAAUhd,EAAMgd,EACvByziB,YAAAA,IAGJ,OAAO4B,EAmCaC,CAAUX,GACxBb,EAAWR,GAAa+B,EAAY/loB,QAAO,SAAAg6K,GAAI,OAAIA,EAAKs7F,IAAIkvX,aAAW,GACvE1xnB,EAAOkxnB,GAAaF,GAAiBiC,EAAa,SAAS,GAC3D5tnB,EAAQ6rnB,GAAaF,GAAiBiC,EAAa,UACnD7ynB,EAAM8wnB,GAAaF,GAAiBiC,EAAa,QAAQ,GACzD3tnB,EAAS4rnB,GAAaF,GAAiBiC,EAAa,WACpDE,EAAmBlC,GAA4BgC,EAAa,KAC5DG,EAAiBnC,GAA4BgC,EAAa,KAChE,MAAO,CACLvB,SAAAA,EACA2B,WAAYrznB,EAAKkjB,OAAO9iB,GACxBkznB,eAAgBjunB,EAAM6d,OAAOkwmB,GAAgBlwmB,OAAO5d,GAAQ4d,OAAOiwmB,GACnE/O,UAAW4M,GAAiBiC,EAAa,aACzC/8kB,SAAUl2C,EAAKkjB,OAAO7d,GAAO6d,OAAOkwmB,GACpCj9kB,WAAY/1C,EAAI8iB,OAAO5d,GAAQ4d,OAAOiwmB,IA+KxBI,CAAiBzoH,EAAMynH,OAC/BiB,EAAgBjB,EAAMr8kB,SACtBu9kB,EAAkBlB,EAAMp8kB,WAC9Bp0C,EAAK+ogB,EAAMynH,OAAO,SAAA/vX,GACgB,oBAArBA,EAAIkxX,cACblxX,EAAIkxX,kBAGR,IAAMC,EAA0BH,EAAcxioB,QAAO,SAAC66nB,EAAO3kd,GAAR,OACnDA,EAAKs7F,IAAI9gQ,UAAwC,IAA7BwlK,EAAKs7F,IAAI9gQ,QAAQiF,QAAoBklnB,EAAQA,EAAQ,IAAG,IAAM,EAC9EximB,EAASj7B,OAAOqtM,OAAO,CAC3BrsJ,WAAYx2C,EACZuU,YAAatU,EACb4c,QAAAA,EACA0kL,eAAAA,EACAw3b,gBAAAA,EACAH,aAAcr3b,EAAiB,EAAIw5b,EACnClC,cAAeE,EAAkB,IAE7BE,EAAazjoB,OAAOw4C,OAAO,GAAInxB,GACrCq8mB,GAAiBD,EAAYzgB,GAAU4hB,IACvC,IAAM5O,EAAYh2nB,OAAOw4C,OAAO,CAC9BirlB,WAAAA,EACA9gf,EAAGopD,EACHrpD,EAAG6gf,EACHr5nB,EAAGmd,EAAQzV,KACXiF,EAAGwQ,EAAQrV,KACVqV,GACG6omB,EAAS6S,GAAcqC,EAActwmB,OAAOuwmB,GAAkBpqmB,GACpEipmB,GAASC,EAAMb,SAAUtN,EAAW/6lB,EAAQi1lB,GAC5CgU,GAASkB,EAAepP,EAAW/6lB,EAAQi1lB,GACvCgU,GAASmB,EAAiBrP,EAAW/6lB,EAAQi1lB,IAC/CgU,GAASkB,EAAepP,EAAW/6lB,EAAQi1lB,GA1KjD,SAA0B8F,GACxB,IAAMyN,EAAazN,EAAUyN,WAC7B,SAAS+B,EAAUhzjB,GACjB,IAAM95C,EAAS7Z,KAAKC,IAAI2knB,EAAWjxjB,GAAOwjjB,EAAUxjjB,GAAM,GAE1D,OADAwjjB,EAAUxjjB,IAAQ95C,EACXA,EAETs9lB,EAAUn/mB,GAAK2unB,EAAU,OACzBxP,EAAU9rnB,GAAKs7nB,EAAU,QACzBA,EAAU,SACVA,EAAU,UAkKRC,CAAiBzP,GACjBuO,GAAWJ,EAAMc,WAAYjP,EAAW/6lB,EAAQi1lB,GAChD8F,EAAU9rnB,GAAK8rnB,EAAUrze,EACzBqze,EAAUn/mB,GAAKm/mB,EAAUtze,EACzB6hf,GAAWJ,EAAMe,eAAgBlP,EAAW/6lB,EAAQi1lB,GACpDxzG,EAAMs5G,UAAY,CAChBpknB,KAAMoknB,EAAUpknB,KAChBI,IAAKgknB,EAAUhknB,IACfiF,MAAO++mB,EAAUpknB,KAAOoknB,EAAUrze,EAClCzrI,OAAQ8+mB,EAAUhknB,IAAMgknB,EAAUtze,EAClCj4I,OAAQurnB,EAAUtze,EAClBl4I,MAAOwrnB,EAAUrze,GAEnBhvI,EAAKwwnB,EAAMnO,WAAW,SAACxvM,GACrB,IAAMpyK,EAAMoyK,EAAOpyK,IACnBp0Q,OAAOw4C,OAAO47N,EAAKsoQ,EAAMs5G,WACzB5hX,EAAI78P,OAAOy+mB,EAAUrze,EAAGqze,EAAUtze,EAAG,CAAC9wI,KAAM,EAAGI,IAAK,EAAGiF,MAAO,EAAGC,OAAQ,SAKzEwunB,GAAAA,qFACJ,SAAe99b,EAAQ6sW,kCACvB,SAAe5giB,GACb,OAAO,kCAET,SAAiB6ogB,EAAO7/f,EAAMtjB,uCAC9B,SAAoBmjhB,EAAO7/f,EAAMtjB,uCACjC,WACE,OAAO,gCAET,SAAeP,EAASwR,EAAOC,EAAQgqiB,GAGrC,OAFAjqiB,EAAQqU,KAAKC,IAAI,EAAGtU,GAASxR,EAAQwR,OACrCC,EAASA,GAAUzR,EAAQyR,OACpB,CACLD,MAAAA,EACAC,OAAQoU,KAAKC,IAAI,EAAG21hB,EAAc51hB,KAAKo1B,MAAMzpC,EAAQiqiB,GAAehqiB,8BAGxE,SAAWm9L,GACT,OAAO,8BAET,SAAap/H,UArBTk9jB,GAyBAC,GAAAA,SAAAA,yIACJ,SAAevsoB,GACb,OAAOA,GAAQA,EAAKy7D,YAAcz7D,EAAKy7D,WAAW,OAAS,iCAE7D,SAAa2T,GACXA,EAAOl1D,QAAQkqN,WAAY,QALzBmoa,CAAsBD,IAUtBE,GAAc,CAClBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVvpW,aAAc,aACdwpW,YAAa,YACbC,YAAa,YACbC,UAAW,UACXzpW,aAAc,WACd0pW,WAAY,YAERC,GAAgB,SAAAtroB,GAAK,OAAc,OAAVA,GAA4B,KAAVA,GAoCjD,IAAMuroB,KAAuBnc,IAA+B,CAACvkf,SAAS,GAItE,SAASvH,GAAes+Y,EAAO7/f,EAAMtjB,GACnCmjhB,EAAM90U,OAAOvuM,oBAAoBwjB,EAAMtjB,EAAU8soB,IAanD,SAASC,GAAiBC,EAAU3+b,GAAQ,gBACvB2+b,GADuB,IAC1C,2BAA6B,KAAlBp3jB,EAAkB,QAC3B,GAAIA,IAASy4H,GAAUz4H,EAAKl3D,SAAS2vL,GACnC,OAAO,GAH+B,+BAO5C,SAAS4+b,GAAqB9pH,EAAO7/f,EAAMtjB,GACzC,IAAMquM,EAAS80U,EAAM90U,OACf4nG,EAAW,IAAI6wB,kBAAiB,SAAAriN,GACpC,IAD+C,EAC3Cl7G,GAAU,EADiC,UAE3Bk7G,GAF2B,IAE/C,2BAA6B,KAAlB+T,EAAkB,QAE3BjvH,GADAA,EAAUA,GAAWwjoB,GAAiBv0gB,EAAMmuM,WAAYt4H,MAClC0+b,GAAiBv0gB,EAAM00gB,aAAc7+b,IAJd,8BAM3C9kM,GACFvJ,OAIJ,OADAi2S,EAAS9oG,QAAQhrM,SAAU,CAAC4kU,WAAW,EAAMC,SAAS,IAC/C/wB,EAET,SAASk3V,GAAqBhqH,EAAO7/f,EAAMtjB,GACzC,IAAMquM,EAAS80U,EAAM90U,OACf4nG,EAAW,IAAI6wB,kBAAiB,SAAAriN,GACpC,IAD+C,EAC3Cl7G,GAAU,EADiC,UAE3Bk7G,GAF2B,IAE/C,2BAA6B,KAAlB+T,EAAkB,QAE3BjvH,GADAA,EAAUA,GAAWwjoB,GAAiBv0gB,EAAM00gB,aAAc7+b,MACpC0+b,GAAiBv0gB,EAAMmuM,WAAYt4H,IAJZ,8BAM3C9kM,GACFvJ,OAIJ,OADAi2S,EAAS9oG,QAAQhrM,SAAU,CAAC4kU,WAAW,EAAMC,SAAS,IAC/C/wB,EAET,IAAMm3V,GAAqB,IAAIj2Y,IAC3Bk2Y,GAAsB,EAC1B,SAASC,KACP,IAAMC,EAAMnonB,OAAOm9G,iBACfgrgB,IAAQF,KAGZA,GAAsBE,EACtBH,GAAmBxtoB,SAAQ,SAACsc,EAAQingB,GAC9BA,EAAMqjG,0BAA4B+mB,GACpCrxnB,QAgBN,SAASsxnB,GAAqBrqH,EAAO7/f,EAAMtjB,GACzC,IAAMquM,EAAS80U,EAAM90U,OACf5uL,EAAY4uL,GAAU+gb,GAAe/gb,GAC3C,GAAK5uL,EAAL,CAGA,IAAMvD,EAAS68Q,GAAU,SAAC9nR,EAAOC,GAC/B,IAAMk4I,EAAI3pI,EAAU0/C,YACpBn/D,EAASiR,EAAOC,GACZk4I,EAAI3pI,EAAU0/C,aAChBn/D,MAEDolB,QACG6wR,EAAW,IAAI3pG,gBAAe,SAAA7nF,GAClC,IAAM+T,EAAQ/T,EAAQ,GAChBxzG,EAAQunH,EAAMg/E,YAAYvmM,MAC1BC,EAASsnH,EAAMg/E,YAAYtmM,OACnB,IAAVD,GAA0B,IAAXC,GAGnBgL,EAAOjL,EAAOC,MAIhB,OAFA+kS,EAAS9oG,QAAQ1tL,GAlCnB,SAAuC0jgB,EAAOjngB,GACvCkxnB,GAAmBj1nB,MACtBiN,OAAO/kB,iBAAiB,SAAUitoB,IAEpCF,GAAmBzokB,IAAIw+c,EAAOjngB,GA+B9BuxnB,CAA8BtqH,EAAOjngB,GAC9B+5R,GAET,SAASy3V,GAAgBvqH,EAAO7/f,EAAM2yR,GAChCA,GACFA,EAAS5oG,aAEE,WAAT/pL,GApCN,SAAyC6/f,GACvCiqH,GAAmB7/Y,OAAO41R,GACrBiqH,GAAmBj1nB,MACtBiN,OAAOtlB,oBAAoB,SAAUwtoB,IAkCrCK,CAAgCxqH,GAGpC,SAASyqH,GAAqBzqH,EAAO7/f,EAAMtjB,GACzC,IAAMquM,EAAS80U,EAAM90U,OACf64W,EAAQnuR,GAAU,SAAC5+Q,GACL,OAAdgpgB,EAAMp0U,KACR/uM,EAhHN,SAAyBma,EAAOgpgB,GAC9B,IAAM7/f,EAAO+onB,GAAYlynB,EAAMmJ,OAASnJ,EAAMmJ,KAC9C,EAAeqknB,GAAsBxtnB,EAAOgpgB,GAArCxygB,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EACV,MAAO,CACLgG,KAAAA,EACA6/f,MAAAA,EACAzrJ,OAAQv9W,EACRxJ,OAASoH,IAANpH,EAAkBA,EAAI,KACzB2M,OAASvF,IAANuF,EAAkBA,EAAI,MAwGduwnB,CAAgB1znB,EAAOgpgB,MAEjCA,GAAO,SAACh9f,GACT,IAAMhM,EAAQgM,EAAK,GACnB,MAAO,CAAChM,EAAOA,EAAMk0B,QAASl0B,EAAMm0B,YAGtC,OA7HF,SAAqBsnC,EAAMtyD,EAAMtjB,GAC/B41E,EAAKv1E,iBAAiBijB,EAAMtjB,EAAU8soB,IA2HtCpnoB,CAAY2oM,EAAQ/qL,EAAM4jiB,GACnBA,MAEH4mF,GAAAA,SAAAA,yIACJ,SAAez/b,EAAQ6sW,GACrB,IAAM5giB,EAAU+zL,GAAUA,EAAO/yI,YAAc+yI,EAAO/yI,WAAW,MACjE,OAAIhhD,GAAWA,EAAQ+zL,SAAWA,GAtKtC,SAAoBA,EAAQ6sW,GAC1B,IAAMt9hB,EAAQywL,EAAOzwL,MACfmwnB,EAAe1/b,EAAO1kM,aAAa,UACnCqkoB,EAAc3/b,EAAO1kM,aAAa,SAcxC,GAbA0kM,EAAM,SAAgB,CACpBi3C,QAAS,CACPp0O,OAAQ68nB,EACR98nB,MAAO+8nB,EACPpwnB,MAAO,CACLoB,QAASpB,EAAMoB,QACf9N,OAAQ0M,EAAM1M,OACdD,MAAO2M,EAAM3M,SAInB2M,EAAMoB,QAAUpB,EAAMoB,SAAW,QACjCpB,EAAMggQ,UAAYhgQ,EAAMggQ,WAAa,aACjCivX,GAAcmB,GAAc,CAC9B,IAAMC,EAAepd,GAAaxib,EAAQ,cACrBt2L,IAAjBk2nB,IACF5/b,EAAOp9L,MAAQg9nB,GAGnB,GAAIpB,GAAckB,GAChB,GAA4B,KAAxB1/b,EAAOzwL,MAAM1M,OACfm9L,EAAOn9L,OAASm9L,EAAOp9L,OAASiqiB,GAAe,OAC1C,CACL,IAAMgzF,EAAgBrd,GAAaxib,EAAQ,eACrBt2L,IAAlBm2nB,IACF7/b,EAAOn9L,OAASg9nB,IA0IlBC,CAAW9/b,EAAQ6sW,GACZ5giB,GAEF,mCAET,SAAeA,GACb,IAAM+zL,EAAS/zL,EAAQ+zL,OACvB,IAAKA,EAAM,SACT,OAAO,EAET,IAAMi3C,EAAUj3C,EAAM,SAAci3C,QACpC,CAAC,SAAU,SAAS1lP,SAAQ,SAACwmH,GAC3B,IAAM7kH,EAAQ+jP,EAAQl/H,GAClBota,EAAcjyhB,GAChB8sM,EAAO1qF,gBAAgByC,GAEvBioF,EAAO5tM,aAAa2lH,EAAM7kH,MAG9B,IAAMqc,EAAQ0nO,EAAQ1nO,OAAS,GAM/B,OALAnX,OAAOC,KAAKkX,GAAOhe,SAAQ,SAAC+G,GAC1B0nM,EAAOzwL,MAAMjX,GAAOiX,EAAMjX,MAE5B0nM,EAAOp9L,MAAQo9L,EAAOp9L,aACfo9L,EAAM,UACN,kCAET,SAAiB80U,EAAO7/f,EAAMtjB,GAC5BL,KAAKG,oBAAoBqjhB,EAAO7/f,GAChC,IAAM8qnB,EAAUjrH,EAAMkrH,WAAalrH,EAAMkrH,SAAW,IAM9CnuoB,EALW,CACf2sJ,OAAQogf,GACRngf,OAAQqgf,GACRjxnB,OAAQsxnB,IAEelqnB,IAASsqnB,GAClCQ,EAAQ9qnB,GAAQpjB,EAAQijhB,EAAO7/f,EAAMtjB,sCAEvC,SAAoBmjhB,EAAO7/f,GACzB,IAAM8qnB,EAAUjrH,EAAMkrH,WAAalrH,EAAMkrH,SAAW,IAC9CnnF,EAAQknF,EAAQ9qnB,GACjB4jiB,KAGY,CACfr6Z,OAAQ6gf,GACR5gf,OAAQ4gf,GACRxxnB,OAAQwxnB,IAEepqnB,IAASuhH,IAC1Bs+Y,EAAO7/f,EAAM4jiB,GACrBknF,EAAQ9qnB,QAAQvL,sCAElB,WACE,OAAOqN,OAAOm9G,+CAEhB,SAAe8rE,EAAQp9L,EAAOC,EAAQgqiB,GACpC,OAAO40E,GAAezhb,EAAQp9L,EAAOC,EAAQgqiB,6BAE/C,SAAW7sW,GACT,IAAM5uL,EAAY2vmB,GAAe/gb,GACjC,SAAU5uL,IAAaA,EAAU6unB,mBAjE/BR,CAAoB3B,QA4EpBlskB,GAAAA,WACJ,cAAc,eACZtgE,KAAKgR,OAAIoH,EACTpY,KAAK2d,OAAIvF,EACTpY,KAAKmrB,QAAS,EACdnrB,KAAKoa,aAAUhC,EACfpY,KAAKg2nB,iBAAc59mB,gDAErB,SAAgBmwnB,GACd,MAAevooB,KAAKyqU,SAAS,CAAC,IAAK,KAAM89T,GACzC,MAAO,CAACv3nB,EADR,EAAOA,EACI2M,EADX,EAAUA,2BAGZ,WACE,OAAO0tM,GAASrrN,KAAKgR,IAAMq6M,GAASrrN,KAAK2d,2BAE3C,SAAS6hG,EAAO6c,GAAO,WACfi4f,EAAQt0nB,KAAKg2nB,YACnB,IAAK35f,IAAUi4f,EACb,OAAOt0nB,KAET,IAAMwrI,EAAM,GAIZ,OAHAhsB,EAAMv/G,SAAQ,SAAAwmH,GACZ+kB,EAAI/kB,GAAQ6tgB,EAAM7tgB,IAAS6tgB,EAAM7tgB,GAAMt7F,SAAWmpmB,EAAM7tgB,GAAM4ugB,IAAM,EAAK5ugB,MAEpE+kB,QAxBLlrE,GA2BNA,GAAQwmJ,SAAW,GACnBxmJ,GAAQsukB,mBAAgBx2nB,EAExB,IAAMy2nB,GAAa,CACjBj1nB,OADiB,SACVhY,GACL,OAAO45E,EAAQ55E,GAASA,EAAQ,GAAKA,GAEvCs2H,QAJiB,SAIT42gB,EAAWjuoB,EAAOk+nB,GACxB,GAAkB,IAAd+P,EACF,MAAO,IAET,IACIxkhB,EADEv9G,EAAS/M,KAAKwjhB,MAAMppgB,QAAQrN,OAE9BiQ,EAAQ8xnB,EACZ,GAAI/P,EAAMz+nB,OAAS,EAAG,CACpB,IAAMyuoB,EAAUppnB,KAAKC,IAAID,KAAK23B,IAAIyhlB,EAAM,GAAGn9nB,OAAQ+jB,KAAK23B,IAAIyhlB,EAAMA,EAAMz+nB,OAAS,GAAGsB,SAChFmtoB,EAAU,MAAQA,EAAU,QAC9BzkhB,EAAW,cAEbttG,EAmBN,SAAwB8xnB,EAAW/P,GACjC,IAAI/hnB,EAAQ+hnB,EAAMz+nB,OAAS,EAAIy+nB,EAAM,GAAGn9nB,MAAQm9nB,EAAM,GAAGn9nB,MAAQm9nB,EAAM,GAAGn9nB,MAAQm9nB,EAAM,GAAGn9nB,MACvF+jB,KAAK23B,IAAItgC,IAAU,GAAK8xnB,IAAcnpnB,KAAKo1B,MAAM+zlB,KACnD9xnB,EAAQ8xnB,EAAYnpnB,KAAKo1B,MAAM+zlB,IAEjC,OAAO9xnB,EAxBKi1C,CAAe68kB,EAAW/P,GAEpC,IAAMiQ,EAAWr5B,EAAMhwlB,KAAK23B,IAAItgC,IAC1BiynB,EAAatpnB,KAAKC,IAAID,KAAKG,KAAK,EAAIH,KAAKo1B,MAAMi0lB,GAAW,IAAK,GAC/D50nB,EAAU,CAACkwG,SAAAA,EAAU0C,sBAAuBiihB,EAAYhihB,sBAAuBgihB,GAErF,OADAnooB,OAAOw4C,OAAOllC,EAASpa,KAAKoa,QAAQ2knB,MAAMjmmB,QACnCwrR,GAAawqV,EAAW/hoB,EAAQqN,IAEzC80nB,YAxBiB,SAwBLJ,EAAWjuoB,EAAOk+nB,GAC5B,GAAkB,IAAd+P,EACF,MAAO,IAET,IAAMtZ,EAASsZ,EAAanpnB,KAAKg7C,IAAI,GAAIh7C,KAAKo1B,MAAM46jB,EAAMm5B,KAC1D,OAAe,IAAXtZ,GAA2B,IAAXA,GAA2B,IAAXA,EAC3BqZ,GAAW32gB,QAAQz3H,KAAKT,KAAM8uoB,EAAWjuoB,EAAOk+nB,GAElD,KAUX,IAAIoQ,GAAQ,CAACN,WAAAA,IAqEb,SAASO,GAAS9ta,EAAOy9Z,GACvB,IAAMsQ,EAAW/ta,EAAMlnN,QAAQ2knB,MACzBuQ,EAAaD,EAASE,eAwB9B,SAA2Bjua,GACzB,IAAM/1N,EAAS+1N,EAAMlnN,QAAQ7O,OACvBikoB,EAAalua,EAAMmua,YACnBC,EAAWpua,EAAMs9Z,QAAU4Q,GAAcjkoB,EAAS,EAAI,GACtDokoB,EAAWrua,EAAMsua,WAAaJ,EACpC,OAAO7pnB,KAAKo1B,MAAMp1B,KAAKG,IAAI4pnB,EAAUC,IA7BQE,CAAkBvua,GACzDwua,EAAeT,EAASU,MAAMzmmB,QA6CtC,SAAyBy1lB,GACvB,IACIhznB,EAAGkomB,EADDplmB,EAAS,GAEf,IAAK9C,EAAI,EAAGkomB,EAAO8qB,EAAMz+nB,OAAQyL,EAAIkomB,EAAMlomB,IACrCgznB,EAAMhznB,GAAGgkoB,OACXlhoB,EAAOjO,KAAKmL,GAGhB,OAAO8C,EArDuCmhoB,CAAgBjR,GAAS,GACjEkR,EAAkBH,EAAaxvoB,OAC/B0pE,EAAQ8lkB,EAAa,GACrBxzgB,EAAOwzgB,EAAaG,EAAkB,GACtCC,EAAW,GACjB,GAAID,EAAkBX,EAEpB,OAgDJ,SAAoBvQ,EAAOmR,EAAUJ,EAAc5M,GACjD,IAEIn3nB,EAFAmtE,EAAQ,EACR56B,EAAOwxlB,EAAa,GAGxB,IADA5M,EAAUv9mB,KAAK+iK,KAAKw6c,GACfn3nB,EAAI,EAAGA,EAAIgznB,EAAMz+nB,OAAQyL,IACxBA,IAAMuyC,IACR4xlB,EAAStvoB,KAAKm+nB,EAAMhznB,IAEpBuyC,EAAOwxlB,IADP52jB,EAC4BgqjB,IA1D9BiN,CAAWpR,EAAOmR,EAAUJ,EAAcG,EAAkBX,GACrDY,EAET,IAAMhN,EAqBR,SAA0B4M,EAAc/Q,EAAOuQ,GAC7C,IAAMc,EA4DR,SAAwBv7gB,GACtB,IACI9oH,EAAG85C,EADDrO,EAAMq9E,EAAIv0H,OAEhB,GAAIk3C,EAAM,EACR,OAAO,EAET,IAAKqO,EAAOgvE,EAAI,GAAI9oH,EAAI,EAAGA,EAAIyrC,IAAOzrC,EACpC,GAAI8oH,EAAI9oH,GAAK8oH,EAAI9oH,EAAI,KAAO85C,EAC1B,OAAO,EAGX,OAAOA,EAvEkBwqlB,CAAeP,GAClC5M,EAAUnE,EAAMz+nB,OAASgvoB,EAC/B,IAAKc,EACH,OAAOzqnB,KAAKC,IAAIs9mB,EAAS,GAG3B,IADA,IAAMoN,EDppGR,SAAoB1uoB,GAClB,IAEImK,EAFE8C,EAAS,GACT6rI,EAAO/0H,KAAK+0H,KAAK94I,GAEvB,IAAKmK,EAAI,EAAGA,EAAI2uI,EAAM3uI,IAChBnK,EAAQmK,IAAM,IAChB8C,EAAOjO,KAAKmL,GACZ8C,EAAOjO,KAAKgB,EAAQmK,IAOxB,OAJI2uI,KAAiB,EAAPA,IACZ7rI,EAAOjO,KAAK85I,GAEd7rI,EAAO22C,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,KAAGtN,MACtBvpC,ECsoGS0hoB,CAAWH,GAClBrkoB,EAAI,EAAGkomB,EAAOq8B,EAAQhwoB,OAAS,EAAGyL,EAAIkomB,EAAMlomB,IAAK,CACxD,IAAMgpnB,EAASub,EAAQvkoB,GACvB,GAAIgpnB,EAASmO,EACX,OAAOnO,EAGX,OAAOpvmB,KAAKC,IAAIs9mB,EAAS,GAlCTsN,CAAiBV,EAAc/Q,EAAOuQ,GACtD,GAAIW,EAAkB,EAAG,CACvB,IAAIlkoB,EAAGkomB,EACDw8B,EAAkBR,EAAkB,EAAItqnB,KAAK6H,OAAO8uG,EAAOtyD,IAAUimkB,EAAkB,IAAM,KAEnG,IADAjqlB,GAAK+4kB,EAAOmR,EAAUhN,EAASrvG,EAAc48G,GAAmB,EAAIzmkB,EAAQymkB,EAAiBzmkB,GACxFj+D,EAAI,EAAGkomB,EAAOg8B,EAAkB,EAAGlkoB,EAAIkomB,EAAMlomB,IAChDi6C,GAAK+4kB,EAAOmR,EAAUhN,EAAS4M,EAAa/joB,GAAI+joB,EAAa/joB,EAAI,IAGnE,OADAi6C,GAAK+4kB,EAAOmR,EAAUhN,EAAS5mgB,EAAMu3Z,EAAc48G,GAAmB1R,EAAMz+nB,OAASg8H,EAAOm0gB,GACrFP,EAGT,OADAlqlB,GAAK+4kB,EAAOmR,EAAUhN,GACfgN,EA+CT,SAASlqlB,GAAK+4kB,EAAOmR,EAAUhN,EAASwN,EAAYC,GAClD,IAGIrwoB,EAAQyL,EAAGuyC,EAHTziC,EAAQ83lB,EAAe+8B,EAAY,GACnCt9mB,EAAMzN,KAAKG,IAAI6tlB,EAAeg9B,EAAU5R,EAAMz+nB,QAASy+nB,EAAMz+nB,QAC/D44E,EAAQ,EAQZ,IANAgqjB,EAAUv9mB,KAAK+iK,KAAKw6c,GAChByN,IAEFzN,GADA5ioB,EAASqwoB,EAAWD,GACD/qnB,KAAKo1B,MAAMz6C,EAAS4ioB,IAEzC5klB,EAAOziC,EACAyiC,EAAO,GACZ46B,IACA56B,EAAO34B,KAAK6H,MAAM3R,EAAQq9D,EAAQgqjB,GAEpC,IAAKn3nB,EAAI4Z,KAAKC,IAAI/J,EAAO,GAAI9P,EAAIqnB,EAAKrnB,IAChCA,IAAMuyC,IACR4xlB,EAAStvoB,KAAKm+nB,EAAMhznB,IACpBmtE,IACA56B,EAAO34B,KAAK6H,MAAM3R,EAAQq9D,EAAQgqjB,IA7JxCp8a,GAAS9hJ,IAAI,QAAS,CACpB3lD,SAAS,EACT9T,QAAQ,EACRwoB,SAAS,EACT0umB,aAAa,EACbzmnB,OAAQ,QACR40nB,MAAO,EACP3tH,KAAM,CACJ5jgB,SAAS,EACTmigB,UAAW,EACXqvH,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACXvB,WAAY,EACZwB,UAAW,SAACvY,EAAMr+mB,GAAP,OAAmBA,EAAQongB,WACtCyvH,UAAW,SAACxY,EAAMr+mB,GAAP,OAAmBA,EAAQg/B,OACtC7tC,QAAQ,EACRwonB,WAAY,GACZC,iBAAkB,EAClBl7kB,YAAa,GAEfltB,MAAO,CACLvM,SAAS,EACT1c,KAAM,GACNwrB,QAAS,CACPrV,IAAK,EACLkF,OAAQ,IAGZ+gnB,MAAO,CACLmS,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRC,gBAAiB,EACjBC,gBAAiB,GACjBnjnB,QAAS,EACT9O,SAAS,EACT+vnB,UAAU,EACVmC,gBAAiB,EACjBnnK,YAAa,EACb57a,SAAU2glB,GAAMN,WAAWj1nB,OAC3B43nB,MAAO,GACPzB,MAAO,GACPl2lB,MAAO,SACPi+R,WAAY,OACZ25T,mBAAmB,EACnBC,cAAe,4BACfC,gBAAiB,KAGrB7qb,GAAS8qb,MAAM,cAAe,QAAS,GAAI,SAC3C9qb,GAAS8qb,MAAM,aAAc,QAAS,GAAI,eAC1C9qb,GAAS8qb,MAAM,aAAc,cAAe,GAAI,eAChD9qb,GAAS8qb,MAAM,cAAe,QAAS,GAAI,SAC3C9qb,GAAS0+Z,SAAS,QAAS,CACzBQ,WAAW,EACXF,YAAa,SAACt4mB,GAAD,OAAWA,EAAKkuH,WAAW,YAAcluH,EAAKkuH,WAAW,UAAqB,aAATluH,GAAgC,WAATA,GACzGu4mB,WAAY,SAACv4mB,GAAD,MAAmB,eAATA,GAAkC,mBAATA,KAEjDs5M,GAAS0+Z,SAAS,SAAU,CAC1BQ,UAAW,UAEbl/Z,GAAS0+Z,SAAS,cAAe,CAC/BM,YAAa,SAACt4mB,GAAD,MAAmB,oBAATA,GAAuC,aAATA,GACrDu4mB,WAAY,SAACv4mB,GAAD,MAAmB,oBAATA,KA+GxB,IACMqkoB,GAAiB,SAACvwa,EAAO8lY,EAAM77lB,GAAd,MAAkC,QAAT67lB,GAA2B,SAATA,EAAkB9lY,EAAM8lY,GAAQ77lB,EAAS+1N,EAAM8lY,GAAQ77lB,GACzH,SAASumoB,GAAOj9gB,EAAKk9gB,GAKnB,IAJA,IAAMljoB,EAAS,GACTyjR,EAAYz9J,EAAIv0H,OAASyxoB,EACzBv6lB,EAAMq9E,EAAIv0H,OACZyL,EAAI,EACDA,EAAIyrC,EAAKzrC,GAAKumR,EACnBzjR,EAAOjO,KAAKi0H,EAAIlvG,KAAKo1B,MAAMhvC,KAE7B,OAAO8C,EAET,SAASmjoB,GAAoB1wa,EAAOzgO,EAAOoxoB,GACzC,IAMI1moB,EANEjL,EAASghO,EAAMy9Z,MAAMz+nB,OACrB4xoB,EAAavsnB,KAAKG,IAAIjlB,EAAOP,EAAS,GACtCub,EAAQylN,EAAM2/Z,YACd7tmB,EAAMkuM,EAAM4/Z,UACZlrB,EAAU,KACZm8B,EAAY7wa,EAAM09Z,gBAAgBkT,GAEtC,KAAID,IAEA1moB,EADa,IAAXjL,EACOqlB,KAAKC,IAAIusnB,EAAYt2nB,EAAOuX,EAAM++mB,GACxB,IAAVtxoB,GACCygO,EAAM09Z,gBAAgB,GAAKmT,GAAa,GAExCA,EAAY7wa,EAAM09Z,gBAAgBkT,EAAa,IAAM,GAEjEC,GAAaD,EAAarxoB,EAAQ0K,GAAUA,GAC5BsQ,EAAQm6lB,GAAWm8B,EAAY/+mB,EAAM4ilB,IAIvD,OAAOm8B,EAeT,SAASC,GAAkBh4nB,GACzB,OAAOA,EAAQ22nB,UAAY32nB,EAAQo1nB,WAAa,EAElD,SAAS6C,GAAej4nB,EAASsuG,GAC/B,IAAKtuG,EAAQiF,QACX,OAAO,EAET,IAAM4tL,EAAO88a,GAAO3vmB,EAAQ6yL,KAAMvkF,GAC5Bv6F,EAAU27lB,GAAU1vmB,EAAQ+T,SAElC,OADcqtD,EAAQphE,EAAQzX,MAAQyX,EAAQzX,KAAKrC,OAAS,GAC5C2sM,EAAKr5J,WAAczlB,EAAQ5c,OAe7C,SAAS+goB,GAAWz4lB,EAAO1zB,EAAU4N,GACnC,IAAIy3G,EAAM+ne,EAAmB15jB,GAI7B,OAHK9lB,GAAwB,UAAb5N,IAA2B4N,GAAwB,UAAb5N,KACpDqlH,EA5EiB,SAAC3xF,GAAD,MAAqB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,OAASA,EA4EhF04lB,CAAa/mgB,IAEdA,MAoCHgngB,GAAAA,SAAAA,iCACJ,WAAYtd,GAAK,6BACf,gBACKjrnB,GAAKirnB,EAAIjrnB,GACd,EAAK0Z,KAAOuxmB,EAAIvxmB,KAChB,EAAKvJ,aAAUhC,EACf,EAAKg3L,IAAM8lb,EAAI9lb,IACf,EAAKo0U,MAAQ0xG,EAAI1xG,MACjB,EAAK1qgB,SAAMV,EACX,EAAK4F,YAAS5F,EACd,EAAKM,UAAON,EACZ,EAAK2F,WAAQ3F,EACb,EAAK9G,WAAQ8G,EACb,EAAK7G,YAAS6G,EACd,EAAKq6nB,SAAW,CACd/5nB,KAAM,EACNqF,MAAO,EACPjF,IAAK,EACLkF,OAAQ,GAEV,EAAKgB,cAAW5G,EAChB,EAAKsN,eAAYtN,EACjB,EAAKshC,gBAAathC,EAClB,EAAKwhC,mBAAgBxhC,EACrB,EAAKohC,iBAAcphC,EACnB,EAAKuhC,kBAAevhC,EACpB,EAAK27C,UAAO37C,EACZ,EAAKs6nB,mBAAgBt6nB,EACrB,EAAK0N,SAAM1N,EACX,EAAKwN,SAAMxN,EACX,EAAKu6nB,YAASv6nB,EACd,EAAK2mnB,MAAQ,GACb,EAAK6T,eAAiB,KACtB,EAAKC,YAAc,KACnB,EAAKC,YAAc,KACnB,EAAKlU,QAAU,EACf,EAAKgR,WAAa,EAClB,EAAKmD,kBAAoB,GACzB,EAAK9R,iBAAc7onB,EACnB,EAAK8onB,eAAY9onB,EACjB,EAAK+vnB,gBAAiB,EACtB,EAAK6K,cAAW56nB,EAChB,EAAK66nB,cAAW76nB,EAChB,EAAK86nB,mBAAgB96nB,EACrB,EAAK+6nB,mBAAgB/6nB,EACrB,EAAKg7nB,aAAe,EACpB,EAAKC,aAAe,EACpB,EAAK1oS,OAAS,GACd,EAAK2oS,mBAAoB,EACzB,EAAKlsnB,cAAWhP,EAhDD,qCAkDjB,SAAKgC,GACHpa,KAAKoa,QAAUA,EAAQuxmB,WAAW3rnB,KAAK27D,cACvC37D,KAAK+zD,KAAO35C,EAAQ25C,KACpB/zD,KAAKizoB,SAAWjzoB,KAAKq2F,MAAMj8E,EAAQ0L,KACnC9lB,KAAKgzoB,SAAWhzoB,KAAKq2F,MAAMj8E,EAAQwL,KACnC5lB,KAAKmzoB,cAAgBnzoB,KAAKq2F,MAAMj8E,EAAQm5nB,cACxCvzoB,KAAKkzoB,cAAgBlzoB,KAAKq2F,MAAMj8E,EAAQo5nB,mCAE1C,SAAMlta,EAAKzlO,GACT,OAAOylO,+BAET,WACE,IAAK2sa,EAAoDjzoB,KAApDizoB,SAAUD,EAA0ChzoB,KAA1CgzoB,SAAUG,EAAgCnzoB,KAAhCmzoB,cAAeD,EAAiBlzoB,KAAjBkzoB,cAKxC,OAJAD,EAAWv/B,EAAgBu/B,EAAUxjlB,OAAO6ljB,mBAC5C09B,EAAWt/B,EAAgBs/B,EAAUvjlB,OAAOyskB,mBAC5CiX,EAAgBz/B,EAAgBy/B,EAAe1jlB,OAAO6ljB,mBACtD49B,EAAgBx/B,EAAgBw/B,EAAezjlB,OAAOyskB,mBAC/C,CACLp2mB,IAAK4tlB,EAAgBu/B,EAAUE,GAC/BvtnB,IAAK8tlB,EAAgBs/B,EAAUE,GAC/Bl1H,WAAYy1F,EAAew/B,GAC3Bh1H,WAAYw1F,EAAeu/B,6BAG/B,SAAUlX,GACR,IACI9viB,EADJ,EAAyChsF,KAAKm8nB,gBAAzCr2mB,EAAL,EAAKA,IAAKF,EAAV,EAAUA,IAAKo4f,EAAf,EAAeA,WAAYC,EAA3B,EAA2BA,WAE3B,GAAID,GAAcC,EAChB,MAAO,CAACn4f,IAAAA,EAAKF,IAAAA,GAGf,IADA,IAAM6tnB,EAAQzzoB,KAAKu3nB,0BACVxrnB,EAAI,EAAGkomB,EAAOw/B,EAAMnzoB,OAAQyL,EAAIkomB,IAAQlomB,EAC/CigF,EAAQynjB,EAAM1noB,GAAGmuG,WAAWw5hB,UAAU1zoB,KAAM87nB,GACvC99G,IACHl4f,EAAMH,KAAKG,IAAIA,EAAKkmE,EAAMlmE,MAEvBm4f,IACHr4f,EAAMD,KAAKC,IAAIA,EAAKomE,EAAMpmE,MAK9B,MAAO,CACLE,IAAK4tlB,EAHP5tlB,EAAMm4f,GAAcn4f,EAAMF,EAAMA,EAAME,EAGV4tlB,EAF5B9tlB,EAAMo4f,GAAcl4f,EAAMF,EAAME,EAAMF,EAEWE,IAC/CF,IAAK8tlB,EAAgB9tlB,EAAK8tlB,EAAgB5tlB,EAAKF,+BAGnD,WACE,MAAO,CACLlN,KAAM1Y,KAAKw5C,aAAe,EAC1B1gC,IAAK9Y,KAAK05C,YAAc,EACxB37B,MAAO/d,KAAK25C,cAAgB,EAC5B37B,OAAQhe,KAAK45C,eAAiB,2BAGlC,WACE,OAAO55C,KAAK++nB,+BAEd,WACE,IAAMlxnB,EAAO7N,KAAKwjhB,MAAM31gB,KACxB,OAAO7N,KAAKoa,QAAQioB,SAAWriC,KAAKotX,eAAiBv/W,EAAK8loB,QAAU9loB,EAAK+loB,UAAY/loB,EAAKw0B,QAAU,+BAEtG,WACEriC,KAAK2qW,OAAS,GACd3qW,KAAKszoB,mBAAoB,8BAE3B,WACE9klB,EAASxuD,KAAKoa,QAAQy5nB,aAAc,CAAC7zoB,6BAEvC,SAAOgf,EAAU0G,EAAWwhC,GAC1B,MAA8ClnD,KAAKoa,QAA5CqonB,EAAP,EAAOA,YAAamO,EAApB,EAAoBA,MAAcvB,EAAlC,EAA2BtQ,MACrB+U,EAAazE,EAASyE,WAC5B9zoB,KAAK6zoB,eACL7zoB,KAAKgf,SAAWA,EAChBhf,KAAK0lB,UAAYA,EACjB1lB,KAAKyyoB,SAAWvrlB,EAAUpgD,OAAOw4C,OAAO,CACtC5mC,KAAM,EACNqF,MAAO,EACPjF,IAAK,EACLkF,OAAQ,GACPkpC,GACHlnD,KAAK++nB,MAAQ,KACb/+nB,KAAK8yoB,YAAc,KACnB9yoB,KAAK4yoB,eAAiB,KACtB5yoB,KAAK6yoB,YAAc,KACnB7yoB,KAAK+zoB,sBACL/zoB,KAAKg0oB,gBACLh0oB,KAAKi0oB,qBACLj0oB,KAAK4voB,WAAa5voB,KAAKotX,eACnBptX,KAAKsR,MAAQ41C,EAAQxuC,KAAOwuC,EAAQnpC,MACpC/d,KAAKuR,OAAS21C,EAAQpuC,IAAMouC,EAAQlpC,OACnChe,KAAKszoB,oBACRtzoB,KAAKk0oB,mBACLl0oB,KAAKm0oB,sBACLn0oB,KAAKo0oB,kBACLp0oB,KAAK2yoB,OD/wEX,SAAmB0B,EAAQzD,EAAOnO,GAChC,IAAO38mB,EAAYuunB,EAAZvunB,IAAKF,EAAOyunB,EAAPzunB,IACN4Z,EAASo0kB,EAAYg9B,GAAQhrnB,EAAME,GAAO,GAC1CwunB,EAAW,SAAC1yoB,EAAON,GAAR,OAAgBmhoB,GAAyB,IAAV7goB,EAAc,EAAIA,EAAQN,GAC1E,MAAO,CACLwkB,IAAKwunB,EAASxunB,GAAMH,KAAK23B,IAAI9d,IAC7B5Z,IAAK0unB,EAAS1unB,EAAK4Z,ICywEH+0mB,CAAUv0oB,KAAM4woB,EAAOnO,GACrCzioB,KAAKszoB,mBAAoB,GAE3BtzoB,KAAKw0oB,mBACLx0oB,KAAK++nB,MAAQ/+nB,KAAKy0oB,cAAgB,GAClCz0oB,KAAK00oB,kBACL,IAAMC,EAAkBb,EAAa9zoB,KAAK++nB,MAAMz+nB,OAChDN,KAAK40oB,sBAAsBD,EAAkB7C,GAAO9xoB,KAAK++nB,MAAO+U,GAAc9zoB,KAAK++nB,OACnF/+nB,KAAKm+R,YACLn+R,KAAK60oB,+BACL70oB,KAAK80oB,yBACL90oB,KAAK+0oB,8BACD1F,EAAShwnB,UAAYgwnB,EAASD,UAAgC,SAApBC,EAAS1hhB,UACrD3tH,KAAK++nB,MAAQqQ,GAASpvoB,KAAMA,KAAK++nB,OACjC/+nB,KAAK8yoB,YAAc,MAEjB6B,GACF30oB,KAAK40oB,sBAAsB50oB,KAAK++nB,OAElC/+nB,KAAKg1oB,YACLh1oB,KAAKsnO,MACLtnO,KAAKi1oB,WACLj1oB,KAAKk1oB,uCAEP,WACE,IACIC,EAAYC,EADZC,EAAgBr1oB,KAAKoa,QAAQ2Z,QAE7B/zB,KAAKotX,gBACP+nR,EAAan1oB,KAAK0Y,KAClB08nB,EAAWp1oB,KAAK+d,QAEhBo3nB,EAAan1oB,KAAK8Y,IAClBs8nB,EAAWp1oB,KAAKge,OAChBq3nB,GAAiBA,GAEnBr1oB,KAAKihoB,YAAckU,EACnBn1oB,KAAKkhoB,UAAYkU,EACjBp1oB,KAAKmooB,eAAiBkN,EACtBr1oB,KAAK4+nB,QAAUwW,EAAWD,EAC1Bn1oB,KAAKs1oB,eAAiBt1oB,KAAKoa,QAAQm7nB,yCAErC,WACE/mlB,EAASxuD,KAAKoa,QAAQ86nB,YAAa,CAACl1oB,0CAEtC,WACEwuD,EAASxuD,KAAKoa,QAAQ25nB,oBAAqB,CAAC/zoB,oCAE9C,WACMA,KAAKotX,gBACPptX,KAAKsR,MAAQtR,KAAKgf,SAClBhf,KAAK0Y,KAAO,EACZ1Y,KAAK+d,MAAQ/d,KAAKsR,QAElBtR,KAAKuR,OAASvR,KAAK0lB,UACnB1lB,KAAK8Y,IAAM,EACX9Y,KAAKge,OAAShe,KAAKuR,QAErBvR,KAAKw5C,YAAc,EACnBx5C,KAAK05C,WAAa,EAClB15C,KAAK25C,aAAe,EACpB35C,KAAK45C,cAAgB,oCAEvB,WACE4U,EAASxuD,KAAKoa,QAAQ65nB,mBAAoB,CAACj0oB,iCAE7C,SAAWwN,GACTxN,KAAKwjhB,MAAMgyH,cAAchooB,EAAMxN,KAAK27D,cACpCnN,EAASxuD,KAAKoa,QAAQ5M,GAAO,CAACxN,uCAEhC,WACEA,KAAKy1oB,WAAW,uDAElB,2CACA,WACEz1oB,KAAKy1oB,WAAW,mDAElB,WACEz1oB,KAAKy1oB,WAAW,8CAElB,WACE,MAAO,kCAET,WACEz1oB,KAAKy1oB,WAAW,8DAElB,WACEjnlB,EAASxuD,KAAKoa,QAAQs7nB,4BAA6B,CAAC11oB,yCAEtD,SAAmB++nB,GACjB,IACIhznB,EAAGkomB,EAAMhxG,EADPosI,EAAWrvoB,KAAKoa,QAAQ2knB,MAE9B,IAAKhznB,EAAI,EAAGkomB,EAAO8qB,EAAMz+nB,OAAQyL,EAAIkomB,EAAMlomB,KACzCk3f,EAAO87H,EAAMhznB,IACRs3I,MAAQ70F,EAAS6glB,EAAS7glB,SAAU,CAACy0c,EAAKrhgB,MAAOmK,EAAGgznB,GAAQ/+nB,gDAGrE,WACEwuD,EAASxuD,KAAKoa,QAAQu7nB,2BAA4B,CAAC31oB,mDAErD,WACEwuD,EAASxuD,KAAKoa,QAAQy6nB,6BAA8B,CAAC70oB,6CAEvD,WACE,IAMIgxoB,EAAWtrnB,EAAWkwnB,EANpBx7nB,EAAUpa,KAAKoa,QACfi1nB,EAAWj1nB,EAAQ2knB,MACnB8W,EAAW71oB,KAAK++nB,MAAMz+nB,OACtB4woB,EAAc7B,EAAS6B,aAAe,EACtCC,EAAc9B,EAAS8B,YACzBuB,EAAgBxB,EAEpB,IAAKlxoB,KAAK06G,eAAiB20hB,EAAShwnB,SAAW6xnB,GAAeC,GAAe0E,GAAY,IAAM71oB,KAAKotX,eAClGptX,KAAK0yoB,cAAgBxB,MADvB,CAIA,IAAM4E,EAAa91oB,KAAK+1oB,iBAClBC,EAAgBF,EAAWG,OAAO3koB,MAClC4koB,EAAiBJ,EAAWK,QAAQ5koB,OACpCyN,EAAWw4lB,GAAYx3mB,KAAKwjhB,MAAMlygB,MAAQ0koB,EAAe,EAAGh2oB,KAAKgf,UAEnEg3nB,EAAgB,GADpBhF,EAAY52nB,EAAQ7O,OAASvL,KAAKgf,SAAW62nB,EAAW72nB,GAAY62nB,EAAW,MAE7E7E,EAAYhynB,GAAY62nB,GAAYz7nB,EAAQ7O,OAAS,GAAM,IAC3Dma,EAAY1lB,KAAK0lB,UAAY0snB,GAAkBh4nB,EAAQ6ogB,MACvDosH,EAASlhnB,QAAUkknB,GAAej4nB,EAAQwR,MAAO5rB,KAAKwjhB,MAAMppgB,QAAQ6yL,MACpE2oc,EAAmBjwnB,KAAK+0H,KAAKs7f,EAAgBA,EAAgBE,EAAiBA,GAC9ExD,EAAgBt8B,GAAUzwlB,KAAKG,IAC7BH,KAAKywnB,KAAK5+B,IAAas+B,EAAWK,QAAQ5koB,OAAS,GAAKy/nB,GAAY,EAAG,IACvErrnB,KAAKywnB,KAAK5+B,GAAY9xlB,EAAYkwnB,GAAmB,EAAG,IAAMjwnB,KAAKywnB,KAAK5+B,GAAY0+B,EAAiBN,GAAmB,EAAG,MAE7HlD,EAAgB/snB,KAAKC,IAAIsrnB,EAAavrnB,KAAKG,IAAIqrnB,EAAauB,KAE9D1yoB,KAAK0yoB,cAAgBA,8CAEvB,WACElklB,EAASxuD,KAAKoa,QAAQ26nB,4BAA6B,CAAC/0oB,gCAEtD,WACEwuD,EAASxuD,KAAKoa,QAAQ46nB,UAAW,CAACh1oB,0BAEpC,WACE,IAAMk4U,EAAU,CACd5mU,MAAO,EACPC,OAAQ,GAEHiygB,EAAuExjhB,KAAvEwjhB,MAAP,EAA8ExjhB,KAAhEoa,QAAiBi1nB,EAA/B,EAAwBtQ,MAAwBsX,EAAhD,EAAyCzqnB,MAAwB0qnB,EAAjE,EAA2DrzH,KACrD5jgB,EAAUrf,KAAK06G,aACf0yQ,EAAeptX,KAAKotX,eAC1B,GAAI/tW,EAAS,CACX,IAAMk3nB,EAAclE,GAAegE,EAAW7yH,EAAMppgB,QAAQ6yL,MAQ5D,GAPImgL,GACFl1C,EAAQ5mU,MAAQtR,KAAKgf,SACrBk5T,EAAQ3mU,OAAS6goB,GAAkBkE,GAAYC,IAE/Cr+T,EAAQ3mU,OAASvR,KAAK0lB,UACtBwyT,EAAQ5mU,MAAQ8goB,GAAkBkE,GAAYC,GAE5ClH,EAAShwnB,SAAWrf,KAAK++nB,MAAMz+nB,OAAQ,CACzC,MAAuCN,KAAK+1oB,iBAArC/rkB,EAAP,EAAOA,MAAOsyD,EAAd,EAAcA,KAAM25gB,EAApB,EAAoBA,OAAQE,EAA5B,EAA4BA,QACtBK,EAAiC,EAAnBnH,EAASlhnB,QACvBsonB,EAAevgC,GAAUl2mB,KAAK0yoB,eAC9B99X,EAAMjvP,KAAKivP,IAAI6hY,GACf7/H,EAAMjxf,KAAKixf,IAAI6/H,GACrB,GAAIrpR,EAAc,CAChB,IAAMptO,EAAcqvf,EAAS+B,OAAS,EAAIx6H,EAAMq/H,EAAO3koB,MAAQsjQ,EAAMuhY,EAAQ5koB,OAC7E2mU,EAAQ3mU,OAASoU,KAAKG,IAAI9lB,KAAK0lB,UAAWwyT,EAAQ3mU,OAASyuI,EAAcw2f,OACpE,CACL,IAAME,EAAarH,EAAS+B,OAAS,EAAIx8X,EAAMqhY,EAAO3koB,MAAQslgB,EAAMu/H,EAAQ5koB,OAC5E2mU,EAAQ5mU,MAAQqU,KAAKG,IAAI9lB,KAAKgf,SAAUk5T,EAAQ5mU,MAAQoloB,EAAaF,GAEvEx2oB,KAAK22oB,kBAAkB3skB,EAAOsyD,EAAMs6Y,EAAKhiQ,IAG7C50Q,KAAK42oB,iBACDxpR,GACFptX,KAAKsR,MAAQtR,KAAK4+nB,QAAUp7G,EAAMlygB,MAAQtR,KAAKyyoB,SAAS/5nB,KAAO1Y,KAAKyyoB,SAAS10nB,MAC7E/d,KAAKuR,OAAS2mU,EAAQ3mU,SAEtBvR,KAAKsR,MAAQ4mU,EAAQ5mU,MACrBtR,KAAKuR,OAASvR,KAAK4+nB,QAAUp7G,EAAMjygB,OAASvR,KAAKyyoB,SAAS35nB,IAAM9Y,KAAKyyoB,SAASz0nB,yCAGlF,SAAkBgsD,EAAOsyD,EAAMs6Y,EAAKhiQ,GAClC,MAA4C50Q,KAAKoa,QAAjD,IAAO2knB,MAAQlllB,EAAf,EAAeA,MAAO1rB,EAAtB,EAAsBA,QAAUhI,EAAhC,EAAgCA,SAC1B0wnB,EAAmC,IAAvB72oB,KAAK0yoB,cACjBoE,EAAgC,QAAb3wnB,GAAoC,MAAdnmB,KAAK+zD,KACpD,GAAI/zD,KAAKotX,eAAgB,CACvB,IAAMrjO,EAAa/pJ,KAAKg/nB,gBAAgB,GAAKh/nB,KAAK0Y,KAC5Cq+nB,EAAc/2oB,KAAK+d,MAAQ/d,KAAKg/nB,gBAAgBh/nB,KAAK++nB,MAAMz+nB,OAAS,GACtEk5C,EAAc,EACdG,EAAe,EACfk9lB,EACEC,GACFt9lB,EAAco7N,EAAM5qM,EAAM14D,MAC1BqoC,EAAei9d,EAAMt6Y,EAAK/qH,SAE1BioC,EAAco9d,EAAM5sc,EAAMz4D,OAC1BooC,EAAei7N,EAAMt4I,EAAKhrH,OAET,UAAVuoC,EACTF,EAAe2iF,EAAKhrH,MACD,QAAVuoC,EACTL,EAAcwwB,EAAM14D,OAEpBkoC,EAAcwwB,EAAM14D,MAAQ,EAC5BqoC,EAAe2iF,EAAKhrH,MAAQ,GAE9BtR,KAAKw5C,YAAc7zB,KAAKC,KAAK4zB,EAAcuwG,EAAa57H,GAAWnuB,KAAKsR,OAAStR,KAAKsR,MAAQy4I,GAAa,GAC3G/pJ,KAAK25C,aAAeh0B,KAAKC,KAAK+zB,EAAeo9lB,EAAc5onB,GAAWnuB,KAAKsR,OAAStR,KAAKsR,MAAQyloB,GAAc,OAC1G,CACL,IAAIr9lB,EAAa4iF,EAAK/qH,OAAS,EAC3BqoC,EAAgBowB,EAAMz4D,OAAS,EACrB,UAAVsoC,GACFH,EAAa,EACbE,EAAgBowB,EAAMz4D,QACH,QAAVsoC,IACTH,EAAa4iF,EAAK/qH,OAClBqoC,EAAgB,GAElB55C,KAAK05C,WAAaA,EAAavrB,EAC/BnuB,KAAK45C,cAAgBA,EAAgBzrB,iCAGzC,WACMnuB,KAAKyyoB,WACPzyoB,KAAKyyoB,SAAS/5nB,KAAOiN,KAAKC,IAAI5lB,KAAKw5C,YAAax5C,KAAKyyoB,SAAS/5nB,MAC9D1Y,KAAKyyoB,SAAS35nB,IAAM6M,KAAKC,IAAI5lB,KAAK05C,WAAY15C,KAAKyyoB,SAAS35nB,KAC5D9Y,KAAKyyoB,SAAS10nB,MAAQ4H,KAAKC,IAAI5lB,KAAK25C,aAAc35C,KAAKyyoB,SAAS10nB,OAChE/d,KAAKyyoB,SAASz0nB,OAAS2H,KAAKC,IAAI5lB,KAAK45C,cAAe55C,KAAKyyoB,SAASz0nB,iCAGtE,WACEwwC,EAASxuD,KAAKoa,QAAQ66nB,SAAU,CAACj1oB,mCAEnC,WACE,MAAyBA,KAAKoa,QAAvB25C,EAAP,EAAOA,KAAM5tC,EAAb,EAAaA,SACb,MAAoB,QAAbA,GAAmC,WAAbA,GAAkC,MAAT4tC,4BAExD,WACE,OAAO/zD,KAAKoa,QAAQgwnB,8CAEtB,SAAsBrL,GAGpB,IAAIhznB,EAAGkomB,EACP,IAHAj0mB,KAAK01oB,8BACL11oB,KAAKg3oB,mBAAmBjY,GAEnBhznB,EAAI,EAAGkomB,EAAO8qB,EAAMz+nB,OAAQyL,EAAIkomB,EAAMlomB,IACrC8nhB,EAAckrG,EAAMhznB,GAAGs3I,SACzB07e,EAAMxvnB,OAAOxD,EAAG,GAChBkomB,IACAlomB,KAGJ/L,KAAK21oB,2DAEP,WACE,IAAIG,EAAa91oB,KAAK8yoB,YACtB,IAAKgD,EAAY,CACf,IAAMhC,EAAa9zoB,KAAKoa,QAAQ2knB,MAAM+U,WAClC/U,EAAQ/+nB,KAAK++nB,MACb+U,EAAa/U,EAAMz+nB,SACrBy+nB,EAAQ+S,GAAO/S,EAAO+U,IAExB9zoB,KAAK8yoB,YAAcgD,EAAa91oB,KAAKi3oB,mBAAmBlY,EAAOA,EAAMz+nB,QAEvE,OAAOw1oB,oCAET,SAAmB/W,EAAOz+nB,GACxB,IAKIyL,EAAGw+E,EAAGg8hB,EAAMlje,EAAO6zf,EAAUz7lB,EAAYkE,EAAO/L,EAAYtiC,EAAOC,EAAQ4loB,EALxE/nc,EAAkCpvM,KAAlCovM,IAAwBgoc,EAAUp3oB,KAA7B+yoB,kBACNsE,EAAS,GACTC,EAAU,GACZC,EAAkB,EAClBC,EAAmB,EAEvB,IAAKzroB,EAAI,EAAGA,EAAIzL,IAAUyL,EAAG,CAO3B,GANAs3I,EAAQ07e,EAAMhznB,GAAGs3I,MACjB6zf,EAAWl3oB,KAAKy3oB,wBAAwB1roB,GACxCqjM,EAAInC,KAAOxxJ,EAAay7lB,EAAS7oiB,OACjC1uD,EAAQy3lB,EAAO37lB,GAAc27lB,EAAO37lB,IAAe,CAAC5tC,KAAM,GAAIirjB,GAAI,IAClEllhB,EAAasjmB,EAAStjmB,WACtBtiC,EAAQC,EAAS,EACZsihB,EAAcxwY,IAAW7nE,EAAQ6nE,IAG/B,GAAI7nE,EAAQ6nE,GACjB,IAAK94D,EAAI,EAAGg8hB,EAAOlje,EAAM/iJ,OAAQiqF,EAAIg8hB,IAAQh8hB,EAEtCspc,EADLsjH,EAAc9zf,EAAM94D,KACgB/O,EAAQ27jB,KAC1C7loB,EAAQ20mB,GAAa72a,EAAKzvJ,EAAM9xC,KAAM8xC,EAAMm5gB,GAAIxnjB,EAAO6loB,GACvD5loB,GAAUqiC,QAPdtiC,EAAQ20mB,GAAa72a,EAAKzvJ,EAAM9xC,KAAM8xC,EAAMm5gB,GAAIxnjB,EAAO+xI,GACvD9xI,EAASqiC,EAUXyjmB,EAAOz2oB,KAAK0Q,GACZgmoB,EAAQ12oB,KAAK2Q,GACbgmoB,EAAkB5xnB,KAAKC,IAAItU,EAAOimoB,GAClCC,EAAmB7xnB,KAAKC,IAAIrU,EAAQimoB,IAtgB1C,SAAwBJ,EAAQ92oB,GAC9Bma,EAAK28nB,GAAQ,SAACz3lB,GACZ,IAEI5zC,EAFE+sjB,EAAKn5gB,EAAMm5gB,GACX4tD,EAAQ5tD,EAAGx4jB,OAAS,EAE1B,GAAIomnB,EAAQpmnB,EAAQ,CAClB,IAAKyL,EAAI,EAAGA,EAAI26mB,IAAS36mB,SAChB4zC,EAAM9xC,KAAKirjB,EAAG/sjB,IAEvB+sjB,EAAGvpjB,OAAO,EAAGm3mB,OA+ffJ,CAAe8wB,EAAQ92oB,GACvB,IAAM21oB,EAASoB,EAAOlxoB,QAAQoxoB,GACxBpB,EAAUmB,EAAQnxoB,QAAQqxoB,GAC1BE,EAAU,SAAC3qe,GAAD,MAAU,CAACz7J,MAAO+loB,EAAOtqe,IAAQ,EAAGx7J,OAAQ+loB,EAAQvqe,IAAQ,IAC5E,MAAO,CACL/iG,MAAO0tkB,EAAQ,GACfp7gB,KAAMo7gB,EAAQp3oB,EAAS,GACvB21oB,OAAQyB,EAAQzB,GAChBE,QAASuB,EAAQvB,GACjBkB,OAAAA,EACAC,QAAAA,mCAGJ,SAAiB11oB,GACf,OAAOA,kCAET,SAAiBA,EAAOf,GACtB,OAAOolH,oCAET,SAAiB2ggB,mCACjB,SAAgB/lnB,GACd,IAAMk+nB,EAAQ/+nB,KAAK++nB,MACnB,OAAIl+nB,EAAQ,GAAKA,EAAQk+nB,EAAMz+nB,OAAS,EAC/B,KAEFN,KAAK8+nB,iBAAiBC,EAAMl+nB,GAAOe,yCAE5C,SAAmBmjC,GACb/kC,KAAKmooB,iBACPpjmB,EAAU,EAAIA,GAEhB,IAAM6hlB,EAAQ5mnB,KAAKihoB,YAAcl8lB,EAAU/kC,KAAK4+nB,QAChD,ODzsHKpnB,GCysHcx3mB,KAAKs1oB,eAAiB3uB,GAAY3mnB,KAAKwjhB,MAAOojG,EAAO,GAAKA,GDzsHpD,MAAO,yCC2sHlC,SAAmBA,GACjB,IAAM7hlB,GAAW6hlB,EAAQ5mnB,KAAKihoB,aAAejhoB,KAAK4+nB,QAClD,OAAO5+nB,KAAKmooB,eAAiB,EAAIpjmB,EAAUA,8BAE7C,WACE,OAAO/kC,KAAK8+nB,iBAAiB9+nB,KAAK23oB,4CAEpC,WACE,IAAO7xnB,EAAY9lB,KAAZ8lB,IAAKF,EAAO5lB,KAAP4lB,IACZ,OAAOE,EAAM,GAAKF,EAAM,EAAIA,EAC1BE,EAAM,GAAKF,EAAM,EAAIE,EACrB,4BAEJ,SAAWjlB,GACT,IAAMk+nB,EAAQ/+nB,KAAK++nB,OAAS,GAC5B,GAAIl+nB,GAAS,GAAKA,EAAQk+nB,EAAMz+nB,OAAQ,CACtC,IAAM2igB,EAAO87H,EAAMl+nB,GACnB,OAAOoigB,EAAK77e,WACb67e,EAAK77e,SA7hBV,SAA2B3b,EAAQ5K,EAAOoigB,GACxC,OAAOjiZ,GAAcv1G,EAAQ,CAC3Bw3f,KAAAA,EACApigB,MAAAA,EACA8iB,KAAM,SAyhBWi0nB,CAAkB53oB,KAAK27D,aAAc96D,EAAOoigB,IAE7D,OAAOjjgB,KAAKonB,WACZpnB,KAAKonB,SAriBA45F,GAqiB8BhhH,KAAKwjhB,MAAM7nd,aAriBnB,CAC3B2lK,MAoiB4DthO,KAniB5D2jB,KAAM,oCAqiBR,WACE,IAAMk0nB,EAAc73oB,KAAKoa,QAAQ2knB,MAC3B+Y,EAAM5hC,GAAUl2mB,KAAK0yoB,eACrB99X,EAAMjvP,KAAK23B,IAAI33B,KAAKivP,IAAIkjY,IACxBlhI,EAAMjxf,KAAK23B,IAAI33B,KAAKixf,IAAIkhI,IACxBhC,EAAa91oB,KAAK+1oB,iBAClB5nnB,EAAU0pnB,EAAYtG,iBAAmB,EACzC9nf,EAAIqsf,EAAaA,EAAWG,OAAO3koB,MAAQ6c,EAAU,EACrDq7H,EAAIssf,EAAaA,EAAWK,QAAQ5koB,OAAS4c,EAAU,EAC7D,OAAOnuB,KAAKotX,eACR5jO,EAAIorH,EAAMnrH,EAAImtX,EAAMntX,EAAImrH,EAAMprH,EAAIotX,EAClCptX,EAAIotX,EAAMntX,EAAImrH,EAAMprH,EAAIorH,EAAMnrH,EAAImtX,4BAExC,WACE,IAAMv3f,EAAUrf,KAAKoa,QAAQiF,QAC7B,MAAgB,SAAZA,IACOA,EAEJrf,KAAKu3nB,0BAA0Bj3nB,OAAS,uCAEjD,SAAsBw8nB,GACpB,IAgBIib,EAAahsoB,EAAGomoB,EAAW6F,EAC3BC,EAAKC,EAAKC,EAAKC,EAAKx6a,EAAIluB,EAAImuB,EAAIluB,EAjB9B57I,EAAO/zD,KAAK+zD,KACZyvd,EAAQxjhB,KAAKwjhB,MACbppgB,EAAUpa,KAAKoa,QACd6ogB,EAAkB7ogB,EAAlB6ogB,KAAM98f,EAAY/L,EAAZ+L,SACP5a,EAAS03gB,EAAK13gB,OACd6hX,EAAeptX,KAAKotX,eAEpBirR,EADQr4oB,KAAK++nB,MACOz+nB,QAAUiL,EAAS,EAAI,GAC3CutH,EAAKs5gB,GAAkBnvH,GACvBv3gB,EAAQ,GACR4soB,EAAar1H,EAAK0oG,WAAW3rnB,KAAK27D,cAClC48kB,EAAYD,EAAWzH,WAAayH,EAAWx/lB,YAAc,EAC7D0/lB,EAAgBD,EAAY,EAC5BE,EAAmB,SAAS7xB,GAChC,OAAOD,GAAYnjG,EAAOojG,EAAO2xB,IAInC,GAAiB,QAAbpynB,EACF4xnB,EAAcU,EAAiBz4oB,KAAKge,QACpCk6nB,EAAMl4oB,KAAKge,OAAS86G,EACpBs/gB,EAAML,EAAcS,EACpB9oc,EAAK+oc,EAAiB3b,EAAUhknB,KAAO0/nB,EACvC7oc,EAAKmtb,EAAU9+mB,YACV,GAAiB,WAAbmI,EACT4xnB,EAAcU,EAAiBz4oB,KAAK8Y,KACpC42L,EAAKotb,EAAUhknB,IACf62L,EAAK8oc,EAAiB3b,EAAU9+mB,QAAUw6nB,EAC1CN,EAAMH,EAAcS,EACpBJ,EAAMp4oB,KAAK8Y,IAAMggH,OACZ,GAAiB,SAAb3yG,EACT4xnB,EAAcU,EAAiBz4oB,KAAK+d,OACpCk6nB,EAAMj4oB,KAAK+d,MAAQ+6G,EACnBq/gB,EAAMJ,EAAcS,EACpB56a,EAAK66a,EAAiB3b,EAAUpknB,MAAQ8/nB,EACxC36a,EAAKi/Z,EAAU/+mB,WACV,GAAiB,UAAboI,EACT4xnB,EAAcU,EAAiBz4oB,KAAK0Y,MACpCklN,EAAKk/Z,EAAUpknB,KACfmlN,EAAK46a,EAAiB3b,EAAU/+mB,OAASy6nB,EACzCP,EAAMF,EAAcS,EACpBL,EAAMn4oB,KAAK0Y,KAAOogH,OACb,GAAa,MAAT/kE,EAAc,CACvB,GAAiB,WAAb5tC,EACF4xnB,EAAcU,GAAkB3b,EAAUhknB,IAAMgknB,EAAU9+mB,QAAU,EAAI,SACnE,GAAImsM,EAAShkM,GAAW,CAC7B,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvBX,EAAcU,EAAiBz4oB,KAAKwjhB,MAAM6hG,OAAOqzB,GAAgB5Z,iBAAiBl9nB,IAEpF8tM,EAAKotb,EAAUhknB,IACf62L,EAAKmtb,EAAU9+mB,OAEfo6nB,GADAF,EAAMH,EAAcS,GACR1/gB,OACP,GAAa,MAAT/kE,EAAc,CACvB,GAAiB,WAAb5tC,EACF4xnB,EAAcU,GAAkB3b,EAAUpknB,KAAOoknB,EAAU/+mB,OAAS,QAC/D,GAAIosM,EAAShkM,GAAW,CAC7B,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvBX,EAAcU,EAAiBz4oB,KAAKwjhB,MAAM6hG,OAAOqzB,GAAgB5Z,iBAAiBl9nB,IAGpFu2oB,GADAF,EAAMF,EAAcS,GACR1/gB,EACZ8kG,EAAKk/Z,EAAUpknB,KACfmlN,EAAKi/Z,EAAU/+mB,MAEjB,IAAMu+J,EAAQq3b,EAAev5lB,EAAQ2knB,MAAMwQ,cAAe8I,GACpDh6lB,EAAO14B,KAAKC,IAAI,EAAGD,KAAK+iK,KAAK2vd,EAAc/7d,IACjD,IAAKvwK,EAAI,EAAGA,EAAIssoB,EAAatsoB,GAAKsyC,EAAM,CACtC,IAAMs6lB,EAAc11H,EAAK0oG,WAAW3rnB,KAAK27D,WAAW5vD,IAC9Cy1gB,EAAYm3H,EAAYn3H,UACxB+J,EAAYotH,EAAYv/lB,MACxB26kB,EAAa9wG,EAAK8wG,YAAc,GAChCC,EAAmB2kB,EAAY3kB,iBAC/Bgd,EAAY2H,EAAY3H,UACxBC,EAAY0H,EAAY1H,UACxB2H,EAAiBD,EAAYC,gBAAkB,GAC/CC,EAAuBF,EAAYE,0BAEvBzgoB,KADlB+5nB,EAAYH,GAAoBhyoB,KAAM+L,EAAGR,MAIzCysoB,EAAmBrxB,GAAYnjG,EAAO2uH,EAAW3wH,GAC7Cp0J,EACF6qR,EAAME,EAAMv6a,EAAKC,EAAKm6a,EAEtBE,EAAME,EAAM1oc,EAAKC,EAAKqoc,EAExBtsoB,EAAM9K,KAAK,CACTq3oB,IAAAA,EACAC,IAAAA,EACAC,IAAAA,EACAC,IAAAA,EACAx6a,GAAAA,EACAluB,GAAAA,EACAmuB,GAAAA,EACAluB,GAAAA,EACAr+L,MAAOkwgB,EACPpoe,MAAOmye,EACPwoG,WAAAA,EACAC,iBAAAA,EACAgd,UAAAA,EACAC,UAAAA,EACA2H,eAAAA,EACAC,qBAAAA,KAKJ,OAFA74oB,KAAKozoB,aAAeiF,EACpBr4oB,KAAKqzoB,aAAe0E,EACbrsoB,oCAET,SAAmBoxnB,GACjB,IAWI/wnB,EAAGkomB,EAAY5wd,EAAOryI,EAAG2M,EAAG8qmB,EAAW7B,EAAO35a,EAAMr5J,EAAY6hK,EAAWqjc,EAXzE/klB,EAAO/zD,KAAK+zD,KACZ35C,EAAUpa,KAAKoa,QACd+L,EAAgC/L,EAAhC+L,SAAiB0xnB,EAAez9nB,EAAtB2knB,MACX3xQ,EAAeptX,KAAKotX,eACpB2xQ,EAAQ/+nB,KAAK++nB,MACZlllB,EAAsCg+lB,EAAtCh+lB,MAAOi+R,EAA+B+/T,EAA/B//T,WAAY3pT,EAAmB0pnB,EAAnB1pnB,QAASijnB,EAAUyG,EAAVzG,OAC7Bt4gB,EAAKs5gB,GAAkBh4nB,EAAQ6ogB,MAC/B81H,EAAiBjghB,EAAK3qG,EACtB6qnB,EAAkB5H,GAAUjjnB,EAAU4qnB,EACtC39V,GAAY86T,GAAUl2mB,KAAK0yoB,eAC3BhnoB,EAAQ,GAEVg9mB,EAAe,SACnB,GAAiB,QAAbvimB,EACFxI,EAAI3d,KAAKge,OAASg7nB,EAClBvwB,EAAYzonB,KAAKi5oB,+BACZ,GAAiB,WAAb9ynB,EACTxI,EAAI3d,KAAK8Y,IAAMkgoB,EACfvwB,EAAYzonB,KAAKi5oB,+BACZ,GAAiB,SAAb9ynB,EAAqB,CAC9B,IAAMqlH,EAAMxrI,KAAKk5oB,wBAAwBpghB,GACzC2vf,EAAYj9e,EAAIi9e,UAChBz3mB,EAAIw6H,EAAIx6H,OACH,GAAiB,UAAbmV,EAAsB,CAC/B,IAAMqlH,EAAMxrI,KAAKk5oB,wBAAwBpghB,GACzC2vf,EAAYj9e,EAAIi9e,UAChBz3mB,EAAIw6H,EAAIx6H,OACH,GAAa,MAAT+iD,EAAc,CACvB,GAAiB,WAAb5tC,EACFxI,GAAMm/mB,EAAUhknB,IAAMgknB,EAAU9+mB,QAAU,EAAK+6nB,OAC1C,GAAI5ub,EAAShkM,GAAW,CAC7B,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvB/6nB,EAAI3d,KAAKwjhB,MAAM6hG,OAAOqzB,GAAgB5Z,iBAAiBl9nB,GAASm3oB,EAElEtwB,EAAYzonB,KAAKi5oB,+BACZ,GAAa,MAATlllB,EAAc,CACvB,GAAiB,WAAb5tC,EACFnV,GAAM8rnB,EAAUpknB,KAAOoknB,EAAU/+mB,OAAS,EAAKg7nB,OAC1C,GAAI5ub,EAAShkM,GAAW,CAC7B,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvB1noB,EAAIhR,KAAKwjhB,MAAM6hG,OAAOqzB,GAAgB5Z,iBAAiBl9nB,GAEzD6mnB,EAAYzonB,KAAKk5oB,wBAAwBpghB,GAAI2vf,UAElC,MAAT10jB,IACY,UAAVla,EACF6ukB,EAAe,MACI,QAAV7ukB,IACT6ukB,EAAe,WAGnB,IAAMotB,EAAa91oB,KAAK+1oB,iBACxB,IAAKhqoB,EAAI,EAAGkomB,EAAO8qB,EAAMz+nB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAE9Cs3I,EADO07e,EAAMhznB,GACAs3I,MACb,IAAMs1f,EAAcd,EAAYlsB,WAAW3rnB,KAAK27D,WAAW5vD,IAC3D66mB,EAAQ5mnB,KAAKg/nB,gBAAgBjznB,GAAK8roB,EAAYztK,YAE9Cx2b,GADAq5J,EAAOjtM,KAAKy3oB,wBAAwB1roB,IAClB6nC,WAElB,IAAMulmB,GADN1jc,EAAYj6H,EAAQ6nE,GAASA,EAAM/iJ,OAAS,GACd,EACxB84C,EAAQu/lB,EAAYv/lB,MACpBgvkB,EAAcuwB,EAAYrH,gBAC1Br3lB,EAAc0+lB,EAAYtH,gBAC5BjkR,GACFp8W,EAAI41mB,EAGAkyB,EAFa,QAAb3ynB,EACiB,SAAf2xT,GAAsC,IAAb18B,GACb3lG,EAAY7hK,EAAaA,EAAa,EAC5B,WAAfkkS,GACKg+T,EAAWK,QAAQ5koB,OAAS,EAAI4noB,EAAYvlmB,EAAaA,GAEzDkimB,EAAWK,QAAQ5koB,OAASqiC,EAAa,EAGtC,SAAfkkS,GAAsC,IAAb18B,EACdxnQ,EAAa,EACF,WAAfkkS,EACIg+T,EAAWK,QAAQ5koB,OAAS,EAAI4noB,EAAYvlmB,EAE5CkimB,EAAWK,QAAQ5koB,OAASkkM,EAAY7hK,EAGrDw9lB,IACF0H,IAAe,KAGjBn7nB,EAAIipmB,EACJkyB,GAAc,EAAIrjc,GAAa7hK,EAAa,GAE9C,IAAIwlmB,OAAQ,EACZ,GAAIT,EAAYlH,kBAAmB,CACjC,IAAM4H,EAAevvB,GAAU6uB,EAAYhH,iBACrCpgoB,EAASukoB,EAAWwB,QAAQvroB,GAC5BuF,EAAQwkoB,EAAWuB,OAAOtroB,GAC5B+M,EAAM6E,EAAIm7nB,EAAaO,EAAavgoB,IACpCJ,EAAO1H,EAAIqooB,EAAa3goB,KAC5B,OAAQgwmB,GACR,IAAK,SACH5vmB,GAAOvH,EAAS,EAChB,MACF,IAAK,SACHuH,GAAOvH,EAGT,OAAQk3mB,GACR,IAAK,SACH/vmB,GAAQpH,EAAQ,EAChB,MACF,IAAK,QACHoH,GAAQpH,EAGV8noB,EAAW,CACT1goB,KAAAA,EACAI,IAAAA,EACAxH,MAAOA,EAAQ+noB,EAAa/noB,MAC5BC,OAAQA,EAAS8noB,EAAa9noB,OAC9B6nC,MAAOu/lB,EAAYjH,eAGvBhmoB,EAAM9K,KAAK,CACTw6S,SAAAA,EACA/3J,MAAAA,EACA4pD,KAAAA,EACA7zJ,MAAAA,EACAgvkB,YAAAA,EACAnukB,YAAAA,EACA6+lB,WAAAA,EACArwB,UAAAA,EACAC,aAAAA,EACAptU,YAAa,CAACtqS,EAAG2M,GACjBy7nB,SAAAA,IAGJ,OAAO1toB,yCAET,WACE,MAA0B1L,KAAKoa,QAAxB+L,EAAP,EAAOA,SAAU44mB,EAAjB,EAAiBA,MAEjB,IADkB7oB,GAAUl2mB,KAAK0yoB,eAE/B,MAAoB,QAAbvsnB,EAAqB,OAAS,QAEvC,IAAI0zB,EAAQ,SAMZ,MALoB,UAAhBkllB,EAAMlllB,MACRA,EAAQ,OACiB,QAAhBkllB,EAAMlllB,QACfA,EAAQ,SAEHA,yCAET,SAAwBi/E,GACtB,IAII2vf,EACAz3mB,EALJ,EAAyDhR,KAAKoa,QAAvD+L,EAAP,EAAOA,SAAP,IAAiB44mB,MAAQjnT,EAAzB,EAAyBA,WAAYs5T,EAArC,EAAqCA,OAAQjjnB,EAA7C,EAA6CA,QAEvC4qnB,EAAiBjghB,EAAK3qG,EACtB8nnB,EAFaj2oB,KAAK+1oB,iBAEEE,OAAO3koB,MAsDjC,MAnDiB,SAAb6U,EACEirnB,GACFpgoB,EAAIhR,KAAK+d,MAAQoQ,EACE,SAAf2pT,EACF2wS,EAAY,OACY,WAAf3wS,GACT2wS,EAAY,SACZz3mB,GAAMiloB,EAAS,IAEfxtB,EAAY,QACZz3mB,GAAKiloB,KAGPjloB,EAAIhR,KAAK+d,MAAQg7nB,EACE,SAAfjhU,EACF2wS,EAAY,QACY,WAAf3wS,GACT2wS,EAAY,SACZz3mB,GAAMiloB,EAAS,IAEfxtB,EAAY,OACZz3mB,EAAIhR,KAAK0Y,OAGS,UAAbyN,EACLirnB,GACFpgoB,EAAIhR,KAAK0Y,KAAOyV,EACG,SAAf2pT,EACF2wS,EAAY,QACY,WAAf3wS,GACT2wS,EAAY,SACZz3mB,GAAMiloB,EAAS,IAEfxtB,EAAY,OACZz3mB,GAAKiloB,KAGPjloB,EAAIhR,KAAK0Y,KAAOqgoB,EACG,SAAfjhU,EACF2wS,EAAY,OACY,WAAf3wS,GACT2wS,EAAY,SACZz3mB,GAAKiloB,EAAS,IAEdxtB,EAAY,QACZz3mB,EAAIhR,KAAK+d,QAIb0qmB,EAAY,QAEP,CAACA,UAAAA,EAAWz3mB,EAAAA,oCAErB,WACE,IAAIhR,KAAKoa,QAAQ2knB,MAAMqS,OAAvB,CAGA,IAAM5tH,EAAQxjhB,KAAKwjhB,MACbr9f,EAAWnmB,KAAKoa,QAAQ+L,SAC9B,MAAiB,SAAbA,GAAoC,UAAbA,EAClB,CAACrN,IAAK,EAAGJ,KAAM1Y,KAAK0Y,KAAMsF,OAAQwlgB,EAAMjygB,OAAQwM,MAAO/d,KAAK+d,OAClD,QAAboI,GAAmC,WAAbA,EACnB,CAACrN,IAAK9Y,KAAK8Y,IAAKJ,KAAM,EAAGsF,OAAQhe,KAAKge,OAAQD,MAAOylgB,EAAMlygB,YADlE,iCAIJ,WACE,IAAO89L,EAA6DpvM,KAA7DovM,IAAe/rK,EAA8CrjC,KAAxDoa,QAAUipB,gBAAkB3qB,EAA4B1Y,KAA5B0Y,KAAMI,EAAsB9Y,KAAtB8Y,IAAKxH,EAAiBtR,KAAjBsR,MAAOC,EAAUvR,KAAVuR,OACtD8xB,IACF+rK,EAAI9wK,OACJ8wK,EAAIS,UAAYxsK,EAChB+rK,EAAIU,SAASp3L,EAAMI,EAAKxH,EAAOC,GAC/B69L,EAAIq3a,+CAGR,SAAqB7knB,GACnB,IAAMqhhB,EAAOjjhB,KAAKoa,QAAQ6ogB,KAC1B,IAAKjjhB,KAAK06G,eAAiBuoa,EAAK5jgB,QAC9B,OAAO,EAET,IACMxe,EADQb,KAAK++nB,MACC9igB,WAAU,SAAA/lE,GAAC,OAAIA,EAAEt0D,QAAUA,KAC/C,OAAIf,GAAS,EACEoihB,EAAK0oG,WAAW3rnB,KAAK27D,WAAW96D,IACjC2ghB,UAEP,0BAET,SAASs7G,GACP,IAGI/wnB,EAAGkomB,EAHDhxF,EAAOjjhB,KAAKoa,QAAQ6ogB,KACpB7zU,EAAMpvM,KAAKovM,IACX1jM,EAAQ1L,KAAK4yoB,iBAAmB5yoB,KAAK4yoB,eAAiB5yoB,KAAKs5oB,sBAAsBxc,IAEjFyc,EAAW,SAAClugB,EAAIC,EAAIrtH,GACnBA,EAAM3M,OAAU2M,EAAMm7B,QAG3Bg2J,EAAI9wK,OACJ8wK,EAAIoyU,UAAYvjgB,EAAM3M,MACtB89L,EAAI23Z,YAAc9olB,EAAMm7B,MACxBg2J,EAAIoqc,YAAYv7nB,EAAM81mB,YAAc,IACpC3kb,EAAIqqc,eAAiBx7nB,EAAM+1mB,iBAC3B5kb,EAAIy3Z,YACJz3Z,EAAI14C,OAAOrrB,EAAGr6H,EAAGq6H,EAAG1tH,GACpByxL,EAAI03Z,OAAOx7d,EAAGt6H,EAAGs6H,EAAG3tH,GACpByxL,EAAIp1J,SACJo1J,EAAIq3a,YAEN,GAAIxjG,EAAK5jgB,QACP,IAAKtT,EAAI,EAAGkomB,EAAOvomB,EAAMpL,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAC9C,IAAM7L,EAAOwL,EAAMK,GACfk3gB,EAAK6tH,iBACPyI,EACE,CAACvooB,EAAG9Q,EAAK09N,GAAIjgN,EAAGzd,EAAKwvM,IACrB,CAAC1+L,EAAG9Q,EAAK29N,GAAIlgN,EAAGzd,EAAKyvM,IACrBzvM,GAGA+ihB,EAAK8tH,WACPwI,EACE,CAACvooB,EAAG9Q,EAAK+3oB,IAAKt6nB,EAAGzd,EAAKg4oB,KACtB,CAAClnoB,EAAG9Q,EAAKi4oB,IAAKx6nB,EAAGzd,EAAKk4oB,KACtB,CACEh/lB,MAAOl5C,EAAK+woB,UACZ3/nB,MAAOpR,EAAK8woB,UACZjd,WAAY7znB,EAAK04oB,eACjB5kB,iBAAkB9znB,EAAK24oB,kDAOnC,WACE,IAAOr1H,EAA+BxjhB,KAA/BwjhB,MAAOp0U,EAAwBpvM,KAAxBovM,IAAe6zU,EAASjjhB,KAAnBoa,QAAU6ogB,KACvBq1H,EAAar1H,EAAK0oG,WAAW3rnB,KAAK27D,cAClC48kB,EAAYt1H,EAAK4tH,WAAayH,EAAWx/lB,YAAc,EAC7D,GAAKy/lB,EAAL,CAGA,IAEI36a,EAAIC,EAAInuB,EAAIC,EAFV+pc,EAAgBz2H,EAAK0oG,WAAW3rnB,KAAK27D,WAAW,IAAI6ld,UACpDu2H,EAAc/3oB,KAAKqzoB,aAErBrzoB,KAAKotX,gBACPxvJ,EAAK+oZ,GAAYnjG,EAAOxjhB,KAAK0Y,KAAM6/nB,GAAaA,EAAY,EAC5D16a,EAAK8oZ,GAAYnjG,EAAOxjhB,KAAK+d,MAAO27nB,GAAiBA,EAAgB,EACrEhqc,EAAKC,EAAKooc,IAEVroc,EAAKi3a,GAAYnjG,EAAOxjhB,KAAK8Y,IAAKy/nB,GAAaA,EAAY,EAC3D5oc,EAAKg3a,GAAYnjG,EAAOxjhB,KAAKge,OAAQ07nB,GAAiBA,EAAgB,EACtE97a,EAAKC,EAAKk6a,GAEZ3oc,EAAI9wK,OACJ8wK,EAAIoyU,UAAY82H,EAAWx/lB,YAC3Bs2J,EAAI23Z,YAAcuxC,EAAWr/lB,YAC7Bm2J,EAAIy3Z,YACJz3Z,EAAI14C,OAAOknE,EAAIluB,GACfN,EAAI03Z,OAAOjpY,EAAIluB,GACfP,EAAIp1J,SACJo1J,EAAIq3a,qCAEN,SAAWqW,GAET,GADoB98nB,KAAKoa,QAAQ2knB,MAChB1/mB,QAAjB,CAGA,IAAM+vL,EAAMpvM,KAAKovM,IACXphK,EAAOhuC,KAAK25oB,oBACd3rmB,GACF05kB,GAASt4a,EAAKphK,GAEhB,IACIjiC,EAAGkomB,EADDvomB,EAAQ1L,KAAK6yoB,cAAgB7yoB,KAAK6yoB,YAAc7yoB,KAAK45oB,mBAAmB9c,IAE9E,IAAK/wnB,EAAI,EAAGkomB,EAAOvomB,EAAMpL,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAC9C,IAAM7L,EAAOwL,EAAMK,GACbmroB,EAAWh3oB,EAAK+sM,KAChB5pD,EAAQnjJ,EAAKmjJ,MACfnjJ,EAAKk5oB,WACPhqc,EAAIS,UAAY3vM,EAAKk5oB,SAAShgmB,MAC9Bg2J,EAAIU,SAAS5vM,EAAKk5oB,SAAS1goB,KAAMxY,EAAKk5oB,SAAStgoB,IAAK5Y,EAAKk5oB,SAAS9noB,MAAOpR,EAAKk5oB,SAAS7noB,SAGzF0rU,GAAW7tI,EAAK/rD,EAAO,EADfnjJ,EAAK44oB,WACgB5B,EAAUh3oB,GAErC8tC,GACF25kB,GAAWv4a,6BAGf,WACE,IAAOA,EAA4CpvM,KAA5CovM,IAAP,EAAmDpvM,KAAvCoa,QAAU+L,EAAtB,EAAsBA,SAAUyF,EAAhC,EAAgCA,MAAOmI,EAAvC,EAAuCA,QACvC,GAAKnI,EAAMvM,QAAX,CAGA,IAAM4tL,EAAO88a,GAAOn+lB,EAAMqhL,MACpB9+K,EAAU27lB,GAAUl+lB,EAAMuC,SAC1B0rB,EAAQjuB,EAAMiuB,MAChBtuC,EAAS0hM,EAAKr5J,WAAa,EACd,WAAbztB,GAAsC,WAAbA,GAAyBgkM,EAAShkM,IAC7D5a,GAAU4iB,EAAQnQ,OACdw9D,EAAQ5vD,EAAMjpB,QAChB4I,GAAU0hM,EAAKr5J,YAAchoB,EAAMjpB,KAAKrC,OAAS,KAGnDiL,GAAU4iB,EAAQrV,IAEpB,MAtgCJ,SAAmBwoN,EAAO/1N,EAAQ4a,EAAU0zB,GAC1C,IAGI76B,EAAU66nB,EAAQC,EAHfhhoB,EAAmCwoN,EAAnCxoN,IAAKJ,EAA8B4oN,EAA9B5oN,KAAMsF,EAAwBsjN,EAAxBtjN,OAAQD,EAAgBujN,EAAhBvjN,MAAOylgB,EAASliT,EAATkiT,MAC1Bs5G,EAAqBt5G,EAArBs5G,UAAWzX,EAAU7hG,EAAV6hG,OACdjqU,EAAW,EAET7pS,EAASyM,EAASlF,EAClBxH,EAAQyM,EAAQrF,EACtB,GAAI4oN,EAAM8rJ,eAAgB,CAExB,GADAysR,EAASrmC,EAAe35jB,EAAOnhC,EAAMqF,GACjCosM,EAAShkM,GAAW,CACtB,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvBoB,EAASz0B,EAAOqzB,GAAgB5Z,iBAAiBl9nB,GAAS2P,EAAShG,OAEnEuuoB,EADsB,WAAb3znB,GACC22mB,EAAU9+mB,OAAS8+mB,EAAUhknB,KAAO,EAAIvH,EAAShG,EAElDsmoB,GAAevwa,EAAOn7M,EAAU5a,GAE3CyT,EAAWjB,EAAQrF,MACd,CACL,GAAIyxM,EAAShkM,GAAW,CACtB,IAAMuynB,EAAiB5xoB,OAAOC,KAAKof,GAAU,GACvCvkB,EAAQukB,EAASuynB,GACvBmB,EAASx0B,EAAOqzB,GAAgB5Z,iBAAiBl9nB,GAAS0P,EAAQ/F,OAElEsuoB,EADsB,WAAb1znB,GACC22mB,EAAUpknB,KAAOoknB,EAAU/+mB,OAAS,EAAIzM,EAAQ/F,EAEjDsmoB,GAAevwa,EAAOn7M,EAAU5a,GAE3CuuoB,EAAStmC,EAAe35jB,EAAO77B,EAAQlF,GACvCsiS,EAAwB,SAAbj1R,GAAuBqvlB,EAAUA,EAE9C,MAAO,CAACqkC,OAAAA,EAAQC,OAAAA,EAAQ96nB,SAAAA,EAAUo8R,SAAAA,GAs+Ba2+V,CAAU/5oB,KAAMuL,EAAQ4a,EAAU0zB,GAAxEggmB,EAAP,EAAOA,OAAQC,EAAf,EAAeA,OAAQ96nB,EAAvB,EAAuBA,SAAUo8R,EAAjC,EAAiCA,SACjC6hC,GAAW7tI,EAAKxjL,EAAMjpB,KAAM,EAAG,EAAGsqM,EAAM,CACtC7zJ,MAAOxtB,EAAMwtB,MACbp6B,SAAAA,EACAo8R,SAAAA,EACAqtU,UAAW6pB,GAAWz4lB,EAAO1zB,EAAU4N,GACvC20lB,aAAc,SACdptU,YAAa,CAACu+V,EAAQC,0BAG1B,SAAKhd,GACE98nB,KAAK06G,eAGV16G,KAAKg6oB,iBACLh6oB,KAAKi6oB,SAASnd,GACd98nB,KAAK6woB,aACL7woB,KAAKk6oB,YACLl6oB,KAAKm6oB,WAAWrd,2BAElB,WAAU,WACF9zgB,EAAOhpH,KAAKoa,QACZkrG,EAAK0D,EAAK+1gB,OAAS/1gB,EAAK+1gB,MAAMn5gB,GAAK,EACnCw0hB,EAAKzmC,EAAe3qf,EAAKi6Z,MAAQj6Z,EAAKi6Z,KAAKr9Z,GAAI,GACrD,OAAK5lH,KAAK06G,cAAgB16G,KAAK4gO,OAAS4xa,EAAMhtoB,UAAUo7N,KAQjD,CAAC,CACNh7G,EAAGw0hB,EACHx5a,KAAM,SAACk8Z,GACL,EAAKkd,iBACL,EAAKC,SAASnd,GACd,EAAKod,cAEN,CACDt0hB,EAAGw0hB,EAAK,EACRx5a,KAAM,WACJ,EAAKiwa,eAEN,CACDjrhB,EAAGN,EACHs7G,KAAM,SAACk8Z,GACL,EAAKqd,WAAWrd,MAtBX,CAAC,CACNl3gB,EAAGN,EACHs7G,KAAM,SAACk8Z,GACL,EAAKl8Z,KAAKk8Z,6CAuBlB,SAAwBn5mB,GACtB,IAGI5X,EAAGkomB,EAHDw/B,EAAQzzoB,KAAKwjhB,MAAM6kH,+BACnBgS,EAASr6oB,KAAK+zD,KAAO,SACrBllD,EAAS,GAEf,IAAK9C,EAAI,EAAGkomB,EAAOw/B,EAAMnzoB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAC9C,IAAMg7E,EAAO0sjB,EAAM1noB,GACfg7E,EAAKszjB,KAAYr6oB,KAAKiK,IAAQ0Z,GAAQojE,EAAKpjE,OAASA,GACtD9U,EAAOjO,KAAKmmF,GAGhB,OAAOl4E,yCAET,SAAwBhO,GAEtB,OAAOkpnB,GADM/pnB,KAAKoa,QAAQ2knB,MAAMpT,WAAW3rnB,KAAK27D,WAAW96D,IACxCosM,gCAErB,WACE,IAAMryJ,EAAW56C,KAAKy3oB,wBAAwB,GAAG7jmB,WACjD,OAAQ5zC,KAAKotX,eAAiBptX,KAAKsR,MAAQtR,KAAKuR,QAAUqpC,QA1iCxD43lB,CAAclykB,IA8iCdg6kB,GAAAA,WACJ,WAAY32nB,EAAMmiJ,EAAO8ld,IAAU,eACjC5rnB,KAAK2jB,KAAOA,EACZ3jB,KAAK8lK,MAAQA,EACb9lK,KAAK4rnB,SAAWA,EAChB5rnB,KAAK0L,MAAQ5E,OAAOw4B,OAAO,8CAE7B,SAAU3b,GACR,OAAO7c,OAAOtB,UAAU8iH,cAAc7nH,KAAKT,KAAK2jB,KAAKne,UAAWme,EAAKne,mCAEvE,SAAStF,GACP,IACIq6oB,EADEn9jB,EAAQt2E,OAAO60E,eAAez7E,IAgExC,SAA2Bk9E,GACzB,MAAO,OAAQA,GAAS,aAAcA,GA/DhCo9jB,CAAkBp9jB,KACpBm9jB,EAAcv6oB,KAAKs1E,SAAS8H,IAE9B,IAAM1xE,EAAQ1L,KAAK0L,MACbzB,EAAK/J,EAAK+J,GACV67J,EAAQ9lK,KAAK8lK,MAAQ,IAAM77J,EACjC,IAAKA,EACH,MAAM,IAAIorC,MAAM,2BAA6Bn1C,GAE/C,OAAI+J,KAAMyB,IAGVA,EAAMzB,GAAM/J,EAyBhB,SAA0BA,EAAM4lK,EAAOy0e,GACrC,IAAME,EAAex9e,EAAMn2J,OAAOw4B,OAAO,MAAO,CAC9Ci7mB,EAAczzb,GAASjnM,IAAI06nB,GAAe,GAC1Czzb,GAASjnM,IAAIimJ,GACb5lK,EAAK4mN,WAEPA,GAAS9hJ,IAAI8gG,EAAO20e,GAChBv6oB,EAAK0uoB,eAOX,SAAuB9oe,EAAO40e,GAC5B5zoB,OAAOC,KAAK2zoB,GAAQz6oB,SAAQ,SAAAgzB,GAC1B,IAAM0nnB,EAAgB1nnB,EAASxlB,MAAM,KAC/BmtoB,EAAaD,EAAcvimB,MAC3ByimB,EAAc,CAAC/0e,GAAOlqI,OAAO++mB,GAAe1poB,KAAK,KACjD+X,EAAQ0xnB,EAAOznnB,GAAUxlB,MAAM,KAC/Bi4mB,EAAa18lB,EAAMovB,MACnBqtkB,EAAcz8lB,EAAM/X,KAAK,KAC/B61M,GAAS8qb,MAAMiJ,EAAaD,EAAYn1B,EAAaC,MAdrDo1B,CAAch1e,EAAO5lK,EAAK0uoB,eAExB1uoB,EAAKmknB,aACPv9Z,GAAS0+Z,SAAS1/c,EAAO5lK,EAAKmknB,aAnC9B02B,CAAiB76oB,EAAM4lK,EAAOy0e,GAC1Bv6oB,KAAK4rnB,UACP9ka,GAAS8ka,SAAS1rnB,EAAK+J,GAAI/J,EAAKkknB,YALzBt+c,qBASX,SAAI77J,GACF,OAAOjK,KAAK0L,MAAMzB,6BAEpB,SAAW/J,GACT,IAAMwL,EAAQ1L,KAAK0L,MACbzB,EAAK/J,EAAK+J,GACV67J,EAAQ9lK,KAAK8lK,MACf77J,KAAMyB,UACDA,EAAMzB,GAEX67J,GAAS77J,KAAM68M,GAAShhD,YACnBghD,GAAShhD,GAAO77J,GACnBjK,KAAK4rnB,iBACAxH,GAAUn6mB,UA7CnBqwoB,OA+EAU,GAAAA,WACJ,cAAc,eACZh7oB,KAAKo5G,YAAc,IAAIkhiB,GAAc9hB,GAAmB,YAAY,GACpEx4nB,KAAK6qD,SAAW,IAAIyvlB,GAAch6kB,GAAS,YAC3CtgE,KAAKqhgB,QAAU,IAAIi5I,GAAcxzoB,OAAQ,WACzC9G,KAAKqlnB,OAAS,IAAIi1B,GAAc9H,GAAO,UACvCxyoB,KAAKi7oB,iBAAmB,CAACj7oB,KAAKo5G,YAAap5G,KAAKqlnB,OAAQrlnB,KAAK6qD,4CAE/D,WAAa,2BAANrkC,EAAM,yBAANA,EAAM,gBACXxmB,KAAK+vf,MAAM,WAAYvpe,yBAEzB,WAAgB,2BAANA,EAAM,yBAANA,EAAM,gBACdxmB,KAAK+vf,MAAM,aAAcvpe,iCAE3B,WAAwB,2BAANA,EAAM,yBAANA,EAAM,gBACtBxmB,KAAK+vf,MAAM,WAAYvpe,EAAMxmB,KAAKo5G,wCAEpC,WAAqB,2BAAN5yF,EAAM,yBAANA,EAAM,gBACnBxmB,KAAK+vf,MAAM,WAAYvpe,EAAMxmB,KAAK6qD,oCAEpC,WAAoB,2BAANrkC,EAAM,yBAANA,EAAM,gBAClBxmB,KAAK+vf,MAAM,WAAYvpe,EAAMxmB,KAAKqhgB,kCAEpC,WAAmB,2BAAN76e,EAAM,yBAANA,EAAM,gBACjBxmB,KAAK+vf,MAAM,WAAYvpe,EAAMxmB,KAAKqlnB,qCAEpC,SAAcp7mB,GACZ,OAAOjK,KAAK0vmB,KAAKzlmB,EAAIjK,KAAKo5G,YAAa,wCAEzC,SAAWnvG,GACT,OAAOjK,KAAK0vmB,KAAKzlmB,EAAIjK,KAAK6qD,SAAU,oCAEtC,SAAU5gD,GACR,OAAOjK,KAAK0vmB,KAAKzlmB,EAAIjK,KAAKqhgB,QAAS,kCAErC,SAASp3f,GACP,OAAOjK,KAAK0vmB,KAAKzlmB,EAAIjK,KAAKqlnB,OAAQ,0CAEpC,WAA2B,2BAAN7+lB,EAAM,yBAANA,EAAM,gBACzBxmB,KAAK+vf,MAAM,aAAcvpe,EAAMxmB,KAAKo5G,2CAEtC,WAAwB,2BAAN5yF,EAAM,yBAANA,EAAM,gBACtBxmB,KAAK+vf,MAAM,aAAcvpe,EAAMxmB,KAAK6qD,uCAEtC,WAAuB,2BAANrkC,EAAM,yBAANA,EAAM,gBACrBxmB,KAAK+vf,MAAM,aAAcvpe,EAAMxmB,KAAKqhgB,qCAEtC,WAAsB,2BAAN76e,EAAM,yBAANA,EAAM,gBACpBxmB,KAAK+vf,MAAM,aAAcvpe,EAAMxmB,KAAKqlnB,6BAEtC,SAAMr8mB,EAAQwd,EAAM00nB,GAAe,YACjC,OAAI10nB,GAAMvmB,SAAQ,SAAA8uB,GAChB,IAAM8mK,EAAMqld,GAAiB,EAAKC,oBAAoBpsnB,GAClDmsnB,GAAiBrld,EAAIuld,UAAUrsnB,IAAS8mK,IAAQ,EAAKwrU,SAAWtye,EAAI9kB,GACtE,EAAKoxoB,MAAMryoB,EAAQ6sL,EAAK9mK,GAExBtU,EAAKsU,GAAK,SAAA7uB,GACR,IAAMo7oB,EAAUJ,GAAiB,EAAKC,oBAAoBj7oB,GAC1D,EAAKm7oB,MAAMryoB,EAAQsyoB,EAASp7oB,8BAKpC,SAAM8I,EAAQqjZ,EAAUh+X,GACtB,IAAMktnB,EAAcvmC,EAAYhsmB,GAChCwlD,EAASngC,EAAU,SAAWktnB,GAAc,GAAIltnB,GAChDg+X,EAASrjZ,GAAQqlB,GACjBmgC,EAASngC,EAAU,QAAUktnB,GAAc,GAAIltnB,sCAEjD,SAAoB1K,GAClB,IAAK,IAAI5X,EAAI,EAAGA,EAAI/L,KAAKi7oB,iBAAiB36oB,OAAQyL,IAAK,CACrD,IAAM8pL,EAAM71L,KAAKi7oB,iBAAiBlvoB,GAClC,GAAI8pL,EAAIuld,UAAUz3nB,GAChB,OAAOkyK,EAGX,OAAO71L,KAAKqhgB,4BAEd,SAAKp3f,EAAIixoB,EAAev3nB,GACtB,IAAMzjB,EAAOg7oB,EAAcr7nB,IAAI5V,GAC/B,QAAamO,IAATlY,EACF,MAAM,IAAIm1C,MAAM,IAAMprC,EAAK,yBAA2B0Z,EAAO,KAE/D,OAAOzjB,QAnFL86oB,GAsFF3uP,GAAW,IAAI2uP,GAEbQ,GAAAA,WACJ,cAAc,eACZx7oB,KAAKwyE,MAAQ,wCAEf,SAAOgxc,EAAOp8O,EAAM5gR,EAAM5gB,GACX,eAATwhS,IACFpnS,KAAKwyE,MAAQxyE,KAAKy7oB,mBAAmBj4H,GAAO,GAC5CxjhB,KAAK+5f,QAAQ/5f,KAAKwyE,MAAOgxc,EAAO,YAElC,IAAM6gG,EAAcz+mB,EAAS5F,KAAKwknB,aAAahhG,GAAO59gB,OAAOA,GAAU5F,KAAKwknB,aAAahhG,GACnF30gB,EAAS7O,KAAK+5f,QAAQsqH,EAAa7gG,EAAOp8O,EAAM5gR,GAKtD,MAJa,iBAAT4gR,IACFpnS,KAAK+5f,QAAQsqH,EAAa7gG,EAAO,QACjCxjhB,KAAK+5f,QAAQ/5f,KAAKwyE,MAAOgxc,EAAO,cAE3B30gB,yBAET,SAAQw1mB,EAAa7gG,EAAOp8O,EAAM5gR,GAChCA,EAAOA,GAAQ,GADuB,gBAEb69lB,GAFa,IAEtC,2BAAsC,KAA3B/miB,EAA2B,QAC9B67a,EAAS77a,EAAW67a,OAG1B,IAAyC,IAArC3qc,EAFW2qc,EAAO/xN,GACP,CAACo8O,EAAOh9f,EAAM82D,EAAWljE,SACX++e,IAAqB3ye,EAAK+zR,WACrD,OAAO,GAP2B,8BAUtC,OAAO,4BAET,WACOs5O,EAAc7zhB,KAAK2qW,UACtB3qW,KAAK07oB,UAAY17oB,KAAK2qW,OACtB3qW,KAAK2qW,YAASvyV,+BAGlB,SAAaorgB,GACX,GAAIxjhB,KAAK2qW,OACP,OAAO3qW,KAAK2qW,OAEd,IAAM05Q,EAAcrknB,KAAK2qW,OAAS3qW,KAAKy7oB,mBAAmBj4H,GAE1D,OADAxjhB,KAAK27oB,oBAAoBn4H,GAClB6gG,oCAET,SAAmB7gG,EAAOzte,GACxB,IAAMu5B,EAASk0c,GAASA,EAAMl0c,OACxBl1D,EAAUu5lB,EAAerkiB,EAAOl1D,SAAWk1D,EAAOl1D,QAAQinf,QAAS,IACnEA,EAWV,SAAoB/xb,GAGlB,IAFA,IAAM+xb,EAAU,GACVt6f,EAAOD,OAAOC,KAAKslZ,GAASg1G,QAAQ31f,OACjCK,EAAI,EAAGA,EAAIhF,EAAKzG,OAAQyL,IAC/Bs1f,EAAQzggB,KAAKyrZ,GAASuvP,UAAU70oB,EAAKgF,KAGvC,IADA,IAAM85mB,EAAQv2iB,EAAO+xb,SAAW,GACvBt1f,EAAI,EAAGA,EAAI85mB,EAAMvlnB,OAAQyL,IAAK,CACrC,IAAMotf,EAAS0sH,EAAM95mB,IACY,IAA7Bs1f,EAAQl7f,QAAQgzf,IAClBkI,EAAQzggB,KAAKu4f,GAGjB,OAAOkI,EAxBWw6I,CAAWvskB,GAC3B,OAAmB,IAAZl1D,GAAsB27B,EAkCjC,SAA2Byte,EAAOniB,EAASjnf,EAAS27B,GAGlD,IAFA,IAAMlnC,EAAS,GACT8L,EAAU6ogB,EAAM7nd,aACb5vD,EAAI,EAAGA,EAAIs1f,EAAQ/ggB,OAAQyL,IAAK,CACvC,IAAMotf,EAASkI,EAAQt1f,GAEjBi9G,EAAO8yhB,GAAQ1hoB,EADV++e,EAAOlvf,IACgB8rC,GACrB,OAATizE,GAGJn6G,EAAOjO,KAAK,CACVu4f,OAAAA,EACA/+e,QAAS2hoB,GAAWv4H,EAAMl0c,OAAQ6pb,EAAQnwY,EAAMruG,KAGpD,OAAO9L,EAjDmCmtoB,CAAkBx4H,EAAOniB,EAASjnf,EAAS27B,GAAhD,sCAErC,SAAoByte,GAClB,IAAMy4H,EAAsBj8oB,KAAK07oB,WAAa,GACxCr3B,EAAcrknB,KAAK2qW,OACnB9kT,EAAO,SAACJ,EAAGC,GAAJ,OAAUD,EAAE7/C,QAAO,SAAAoL,GAAC,OAAK00C,EAAEnjC,MAAK,SAAA5E,GAAC,OAAI3M,EAAEmof,OAAOlvf,KAAO0T,EAAEw7e,OAAOlvf,UAC3EjK,KAAK+5f,QAAQl0c,EAAKo2lB,EAAqB53B,GAAc7gG,EAAO,QAC5DxjhB,KAAK+5f,QAAQl0c,EAAKw+jB,EAAa43B,GAAsBz4H,EAAO,eAtD1Dg4H,GAwEN,SAASM,GAAQ1hoB,EAAS27B,GACxB,OAAKA,IAAmB,IAAZ37B,GAGI,IAAZA,EACK,GAEFA,EALE,KAwBX,SAAS2hoB,GAAWzskB,EAAQ6pb,EAAQnwY,EAAMruG,GACxC,IAAM5T,EAAOuoE,EAAO4skB,gBAAgB/iJ,GAC9BwxH,EAASr7iB,EAAO8rjB,gBAAgBpygB,EAAMjiH,GAC5C,OAAOuoE,EAAO+rjB,eAAe1Q,EAAQhwmB,EAAS,CAAC,IAAK,CAAC0xmB,YAAY,EAAOC,WAAW,EAAOF,SAAS,IAGrG,SAAS+vB,GAAax4nB,EAAMvJ,GAC1B,IAAMgioB,EAAkBt1b,GAAS29Z,SAAS9gmB,IAAS,GAEnD,QADwBvJ,EAAQqqmB,UAAY,IAAI9gmB,IAAS,IACnCmhmB,WAAa1qmB,EAAQ0qmB,WAAas3B,EAAgBt3B,WAAa,IAsBvF,SAASu3B,GAAcpyoB,EAAIqyoB,GACzB,MAAW,MAAPryoB,GAAqB,MAAPA,EACTA,EAEFqyoB,EAAavolB,MAZtB,SAA0B5tC,GACxB,MAAiB,QAAbA,GAAmC,WAAbA,EACjB,IAEQ,SAAbA,GAAoC,UAAbA,EAClB,SADT,EAQ4Bo2nB,CAAiBD,EAAan2nB,WAAalc,EAAGi7E,OAAO,GAAGjiD,cAwCtF,SAASu5mB,GAAYltkB,GACnB,IAAMl1D,EAAUk1D,EAAOl1D,UAAYk1D,EAAOl1D,QAAU,IACpDA,EAAQinf,QAAUsyG,EAAev5lB,EAAQinf,QAAS,IAClDjnf,EAAQirmB,OAzCV,SAA0B/1iB,EAAQl1D,GAChC,IAAMqioB,EAAgBr4B,GAAU90iB,EAAO3rD,OAAS,CAAC0hmB,OAAQ,IACnDq3B,EAAetioB,EAAQirmB,QAAU,GACjCs3B,EAAiBR,GAAa7skB,EAAO3rD,KAAMvJ,GAC3CwioB,EAAW91oB,OAAOw4B,OAAO,MACzB+llB,EAASv+mB,OAAOw4B,OAAO,MA+B7B,OA9BAx4B,OAAOC,KAAK21oB,GAAcz8oB,SAAQ,SAAAgK,GAChC,IAAM4yoB,EAAYH,EAAazyoB,GAC/B,IAAKkgN,EAAS0yb,GACZ,OAAOzymB,QAAQsV,MAAR,iDAAwDz1C,IAEjE,GAAI4yoB,EAAUrxB,OACZ,OAAOphlB,QAAQC,KAAR,yDAA+DpgC,IAExE,IAAM8pD,EAAOsolB,GAAcpyoB,EAAI4yoB,GACzBC,EAhCV,SAAmC/olB,EAAM+wjB,GACvC,OAAO/wjB,IAAS+wjB,EAAY,UAAY,UA+BpBi4B,CAA0BhplB,EAAM4olB,GAC5CK,EAAsBP,EAAcp3B,QAAU,GACpDu3B,EAAS7olB,GAAQ6olB,EAAS7olB,IAAS9pD,EACnCo7mB,EAAOp7mB,GAAM2qmB,EAAQ9tmB,OAAOw4B,OAAO,MAAO,CAAC,CAACy0B,KAAAA,GAAO8olB,EAAWG,EAAoBjplB,GAAOiplB,EAAoBF,QAE/GxtkB,EAAOzhE,KAAK42mB,SAASxknB,SAAQ,SAAA2Y,GAC3B,IAAM+K,EAAO/K,EAAQ+K,MAAQ2rD,EAAO3rD,KAC9BmhmB,EAAYlsmB,EAAQksmB,WAAaq3B,GAAax4nB,EAAMvJ,GAEpD4ioB,GADkB54B,GAAUzgmB,IAAS,IACC0hmB,QAAU,GACtDv+mB,OAAOC,KAAKi2oB,GAAqB/8oB,SAAQ,SAAAg9oB,GACvC,IAAMlplB,EApDZ,SAAmC9pD,EAAI66mB,GACrC,IAAI/wjB,EAAO9pD,EAMX,MALW,YAAPA,EACF8pD,EAAO+wjB,EACS,YAAP76mB,IACT8pD,EAAqB,MAAd+wjB,EAAoB,IAAM,KAE5B/wjB,EA6CUmplB,CAA0BD,EAAWn4B,GAC5C76mB,EAAK2O,EAAQm7C,EAAO,WAAa6olB,EAAS7olB,IAASA,EACzDsxjB,EAAOp7mB,GAAMo7mB,EAAOp7mB,IAAOnD,OAAOw4B,OAAO,MACzCs1kB,EAAQyQ,EAAOp7mB,GAAK,CAAC,CAAC8pD,KAAAA,GAAO2olB,EAAazyoB,GAAK+yoB,EAAoBC,WAGvEn2oB,OAAOC,KAAKs+mB,GAAQplnB,SAAQ,SAAA+G,GAC1B,IAAMs6N,EAAQ+jZ,EAAOr+mB,GACrB4tmB,EAAQtzY,EAAO,CAACxa,GAASu+Z,OAAO/jZ,EAAM39M,MAAOmjM,GAASwa,WAEjD+jZ,EAKU83B,CAAiB7tkB,EAAQl1D,GAE5C,SAASgjoB,GAASvvoB,GAIhB,OAHAA,EAAOA,GAAQ,IACV42mB,SAAW52mB,EAAK42mB,UAAY,GACjC52mB,EAAKw0B,OAASx0B,EAAKw0B,QAAU,GACtBx0B,EAQT,IAAMwvoB,GAAW,IAAI7lZ,IACf8lZ,GAAa,IAAI34hB,IACvB,SAAS44hB,GAAW7rB,EAAU53jB,GAC5B,IAAI/yD,EAAOs2oB,GAASx9nB,IAAI6xmB,GAMxB,OALK3qnB,IACHA,EAAO+yD,IACPujlB,GAASr4kB,IAAI0sjB,EAAU3qnB,GACvBu2oB,GAAWh8oB,IAAIyF,IAEVA,EAET,IAAMy2oB,GAAa,SAACx4kB,EAAK0I,EAAK1mE,GAC5B,IAAMgiH,EAAO+rf,EAAiBrniB,EAAK1mE,QACtBoR,IAAT4wG,GACFhkD,EAAI1jE,IAAI0nH,IAGNw1H,GAAAA,WACJ,WAAYlvK,IAAQ,eAClBtvE,KAAKy9oB,QAzBT,SAAoBnukB,GAIlB,OAHAA,EAASA,GAAU,IACZzhE,KAAOuvoB,GAAS9tkB,EAAOzhE,MAC9B2uoB,GAAYltkB,GACLA,EAqBUosQ,CAAWpsQ,GAC1BtvE,KAAK09oB,YAAc,IAAIlmZ,IACvBx3P,KAAK29oB,eAAiB,IAAInmZ,yCAE5B,WACE,OAAOx3P,KAAKy9oB,QAAQ9+gB,2BAEtB,WACE,OAAO3+H,KAAKy9oB,QAAQ95nB,UAEtB,SAASA,GACP3jB,KAAKy9oB,QAAQ95nB,KAAOA,oBAEtB,WACE,OAAO3jB,KAAKy9oB,QAAQ5voB,UAEtB,SAASA,GACP7N,KAAKy9oB,QAAQ5voB,KAAOuvoB,GAASvvoB,wBAE/B,WACE,OAAO7N,KAAKy9oB,QAAQrjoB,aAEtB,SAAYA,GACVpa,KAAKy9oB,QAAQrjoB,QAAUA,uBAEzB,WACE,OAAOpa,KAAKy9oB,QAAQp8I,8BAEtB,WACE,IAAM/xb,EAAStvE,KAAKy9oB,QACpBz9oB,KAAKyiO,aACL+5a,GAAYltkB,6BAEd,WACEtvE,KAAK09oB,YAAYz/hB,QACjBj+G,KAAK29oB,eAAe1/hB,wCAEtB,SAAiB2/hB,GACf,OAAOL,GAAWK,GAChB,iBAAM,CAAC,CAAC,YAAD,OACOA,GACZ,iDAGN,SAA0BA,EAAa34a,GACrC,OAAOs4a,GAAW,GAAD,OAAIK,EAAJ,uBAA8B34a,IAC7C,iBAAM,CACJ,CAAC,YAAD,OACc24a,EADd,wBACyC34a,GADzC,sBAEiBA,IAEjB,CAAC,YAAD,OACc24a,GACZ,+CAIR,SAAwBA,EAAaphE,GACnC,OAAO+gE,GAAW,GAAD,OAAIK,EAAJ,YAAmBphE,IAClC,iBAAM,CAAC,CAAC,YAAD,OACOohE,EADP,qBAC+BphE,GAD/B,mBAEOohE,GAFP,mBAGOphE,GACZ,uCAGN,SAAgBrjF,GACd,IAAMlvf,EAAKkvf,EAAOlvf,GACZ0Z,EAAO3jB,KAAK2jB,KAClB,OAAO45nB,GAAW,GAAD,OAAI55nB,EAAJ,mBAAmB1Z,IAClC,iBAAM,CAAC,CAAC,WAAF,OACOA,IADP,eAEDkvf,EAAO0kJ,wBAA0B,sCAG1C,SAAcC,EAAWC,GACvB,IAAML,EAAc19oB,KAAK09oB,YACrB/9lB,EAAQ+9lB,EAAY79nB,IAAIi+nB,GAK5B,OAJKn+lB,IAASo+lB,IACZp+lB,EAAQ,IAAI63M,IACZkmZ,EAAY14kB,IAAI84kB,EAAWn+lB,IAEtBA,iCAET,SAAgBm+lB,EAAWE,EAAUD,GACnC,IAAO3joB,EAAiBpa,KAAjBoa,QAASuJ,EAAQ3jB,KAAR2jB,KACVg8B,EAAQ3/C,KAAKi+oB,cAAcH,EAAWC,GACtCxyG,EAAS5rf,EAAM9/B,IAAIm+nB,GACzB,GAAIzyG,EACF,OAAOA,EAET,IAAMo/E,EAAS,IAAIhmgB,IACnBq5hB,EAAS/9oB,SAAQ,SAAA8G,GACX+2oB,IACFnzB,EAAOrpnB,IAAIw8oB,GACX/2oB,EAAK9G,SAAQ,SAAA+G,GAAG,OAAIw2oB,GAAW7yB,EAAQmzB,EAAW92oB,OAEpDD,EAAK9G,SAAQ,SAAA+G,GAAG,OAAIw2oB,GAAW7yB,EAAQvwmB,EAASpT,MAChDD,EAAK9G,SAAQ,SAAA+G,GAAG,OAAIw2oB,GAAW7yB,EAAQvG,GAAUzgmB,IAAS,GAAI3c,MAC9DD,EAAK9G,SAAQ,SAAA+G,GAAG,OAAIw2oB,GAAW7yB,EAAQ7ja,GAAU9/M,MACjDD,EAAK9G,SAAQ,SAAA+G,GAAG,OAAIw2oB,GAAW7yB,EAAQtG,GAAar9mB,SAEtD,IAAMqxC,EAAQ9yC,MAAM4D,KAAKwhnB,GAOzB,OANqB,IAAjBtykB,EAAM/3C,QACR+3C,EAAMz3C,KAAKkG,OAAOw4B,OAAO,OAEvBg+mB,GAAWzjnB,IAAImknB,IACjBr+lB,EAAMqlB,IAAIg5kB,EAAU3lmB,GAEfA,mCAET,WACE,IAAOj+B,EAAiBpa,KAAjBoa,QAASuJ,EAAQ3jB,KAAR2jB,KAChB,MAAO,CACLvJ,EACAgqmB,GAAUzgmB,IAAS,GACnBmjM,GAAS29Z,SAAS9gmB,IAAS,GAC3B,CAACA,KAAAA,GACDmjM,GACAu9Z,uCAGJ,SAAoBsG,EAAQ/ykB,EAAOj9B,GAA0B,IAAjBiwmB,EAAiB,uDAAN,CAAC,IAChD/7mB,EAAS,CAACknnB,SAAS,GACzB,EAAgCmoB,GAAYl+oB,KAAK29oB,eAAgBhzB,EAAQC,GAAlEzzlB,EAAP,EAAOA,SAAUgnnB,EAAjB,EAAiBA,YACb/joB,EAAU+c,EACd,GAAIinnB,GAAYjnnB,EAAUygB,GAAQ,CAChC/oC,EAAOknnB,SAAU,EACjBp7mB,EAAUugE,EAAWvgE,GAAWA,IAAYA,EAC5C,IAAM0joB,EAAcr+oB,KAAKq7nB,eAAe1Q,EAAQhwmB,EAASwjoB,GACzD/joB,EAAUgxmB,GAAej0lB,EAAUxc,EAAS0joB,GARa,gBAUxCzmmB,GAVwC,IAU3D,2BAA0B,KAAf6uE,EAAe,QACxB53G,EAAO43G,GAAQrsG,EAAQqsG,IAXkC,8BAa3D,OAAO53G,gCAET,SAAe87mB,EAAQhwmB,GAA8C,IAArCiwmB,EAAqC,uDAA1B,CAAC,IAAKU,EAAoB,uCACnE,EAAmB4yB,GAAYl+oB,KAAK29oB,eAAgBhzB,EAAQC,GAArDzzlB,EAAP,EAAOA,SACP,OAAOgzL,EAASxvM,GACZywmB,GAAej0lB,EAAUxc,OAASvC,EAAWkzmB,GAC7Cn0lB,QA/IFqnN,GAkJN,SAAS0/Z,GAAYI,EAAe3zB,EAAQC,GAC1C,IAAIjrkB,EAAQ2+lB,EAAcz+nB,IAAI8qmB,GACzBhrkB,IACHA,EAAQ,IAAI63M,IACZ8mZ,EAAct5kB,IAAI2ljB,EAAQhrkB,IAE5B,IAAM+xkB,EAAW9G,EAAS35mB,OACtBs6hB,EAAS5rf,EAAM9/B,IAAI6xmB,GAClBnmF,IAEHA,EAAS,CACPp0gB,SAFeuzlB,GAAgBC,EAAQC,GAGvCuzB,YAAavzB,EAAShlnB,QAAO,SAAAwxF,GAAC,OAAKA,EAAEn0D,cAAc64F,SAAS,aAE9Dn8E,EAAMqlB,IAAI0sjB,EAAUnmF,IAEtB,OAAOA,EAET,IAAMgzG,GAAc,SAAA38oB,GAAK,OAAIuoN,EAASvoN,IACjCkF,OAAOy6D,oBAAoB3/D,GAAO8H,QAAO,SAACC,EAAK3C,GAAN,OAAc2C,GAAOuxE,EAAWt5E,EAAMoF,OAAO,IAC3F,SAASo3oB,GAAY72F,EAAO3vgB,GAC1B,IADiC,EACjC,EAAoC4skB,GAAaj9D,GAA1CskE,EAAP,EAAOA,aAAcI,EAArB,EAAqBA,YADY,UAEdr0kB,GAFc,IAEjC,2BAA0B,KAAf6uE,EAAe,QAClB4lgB,EAAaR,EAAaplgB,GAC1B6lgB,EAAYL,EAAYxlgB,GACxB7kH,GAAS0qnB,GAAaD,IAAe9kE,EAAM9gc,GACjD,GAAK4lgB,IAAenxiB,EAAWt5E,IAAU28oB,GAAY38oB,KAC/C0qnB,GAAa9wiB,EAAQ55E,GACzB,OAAO,GARsB,8BAWjC,OAAO,EAGT,IAEM48oB,GAAkB,CAAC,MAAO,SAAU,OAAQ,QAAS,aAC3D,SAASC,GAAqBt4nB,EAAU4tC,GACtC,MAAoB,QAAb5tC,GAAmC,WAAbA,IAAiE,IAAvCq4nB,GAAgBr4oB,QAAQggB,IAA6B,MAAT4tC,EAErG,SAAS2qlB,GAAcxwc,EAAIC,GACzB,OAAO,SAAS1oJ,EAAGC,GACjB,OAAOD,EAAEyoJ,KAAQxoJ,EAAEwoJ,GACfzoJ,EAAE0oJ,GAAMzoJ,EAAEyoJ,GACV1oJ,EAAEyoJ,GAAMxoJ,EAAEwoJ,IAGlB,SAASywc,GAAqBhkoB,GAC5B,IAAM6ogB,EAAQ7ogB,EAAQ6ogB,MAChBmyG,EAAmBnyG,EAAMppgB,QAAQkqN,UACvCk/S,EAAMgyH,cAAc,eACpBhnlB,EAASmnkB,GAAoBA,EAAiBipB,WAAY,CAACjkoB,GAAU6ogB,GAEvE,SAASq7H,GAAoBlkoB,GAC3B,IAAM6ogB,EAAQ7ogB,EAAQ6ogB,MAChBmyG,EAAmBnyG,EAAMppgB,QAAQkqN,UACvC91K,EAASmnkB,GAAoBA,EAAiB7lF,WAAY,CAACn1hB,GAAU6ogB,GAEvE,SAASs7H,GAAU5+oB,GASjB,OARIsvnB,MAAqC,kBAATtvnB,EAC9BA,EAAOsC,SAASC,eAAevC,GACtBA,GAAQA,EAAKI,SACtBJ,EAAOA,EAAK,IAEVA,GAAQA,EAAKwuM,SACfxuM,EAAOA,EAAKwuM,QAEPxuM,EAET,IAAM6+oB,GAAY,GACZC,GAAW,SAACh4oB,GAChB,IAAM0nM,EAASowc,GAAU93oB,GACzB,OAAOF,OAAO8S,OAAOmloB,IAAWn5oB,QAAO,SAAC4V,GAAD,OAAOA,EAAEkzL,SAAWA,KAAQt2J,OAErE,SAAS6mmB,GAAgBvxkB,EAAK7xD,EAAOogC,GAEnC,IADA,IACA,MADan1C,OAAOC,KAAK2mE,GACzB,eAAwB,CAAnB,IAAM1mE,EAAG,KACNk4oB,GAAUl4oB,EAChB,GAAIk4oB,GAAUrjoB,EAAO,CACnB,IAAMja,EAAQ8rE,EAAI1mE,UACX0mE,EAAI1mE,IACPi1C,EAAO,GAAKijmB,EAASrjoB,KACvB6xD,EAAIwxkB,EAASjjmB,GAAQr6C,SAcvBu9oB,GAAAA,WACJ,WAAYj/oB,EAAMk/oB,GAAY,2BAC5B,IAAM9vkB,EAAStvE,KAAKsvE,OAAS,IAAIkvK,GAAO4ga,GAClCC,EAAgBP,GAAU5+oB,GAC1Bo/oB,EAAgBN,GAASK,GAC/B,GAAIC,EACF,MAAM,IAAIjqmB,MACR,4CAA+CiqmB,EAAcr1oB,GAA7D,wDAIJ,IAAMmQ,EAAUk1D,EAAO+rjB,eAAe/rjB,EAAOiwkB,oBAAqBv/oB,KAAK27D,cACvE37D,KAAK2+H,SAAW,IAAKrvD,EAAOqvD,UAphEhC,SAAyB+vE,GACvB,OAAK8gb,MAAiD,qBAApBgwB,iBAAmC9wc,aAAkB8wc,gBAC9E/S,GAEF0B,GAghEmCsR,CAAgBJ,IACxDr/oB,KAAK2+H,SAAS+ghB,aAAapwkB,GAC3B,IAAM30D,EAAU3a,KAAK2+H,SAASghhB,eAAeN,EAAejloB,EAAQmhiB,aAC9D7sW,EAAS/zL,GAAWA,EAAQ+zL,OAC5Bn9L,EAASm9L,GAAUA,EAAOn9L,OAC1BD,EAAQo9L,GAAUA,EAAOp9L,MAC/BtR,KAAKiK,GAAK4niB,IACV7xiB,KAAKovM,IAAMz0L,EACX3a,KAAK0uM,OAASA,EACd1uM,KAAKsR,MAAQA,EACbtR,KAAKuR,OAASA,EACdvR,KAAKmhB,SAAW/G,EAChBpa,KAAK4/oB,aAAe5/oB,KAAKu7iB,YACzBv7iB,KAAKwroB,QAAU,GACfxroB,KAAK6/oB,UAAY,GACjB7/oB,KAAK03nB,aAAUt/mB,EACfpY,KAAKiroB,MAAQ,GACbjroB,KAAK6mnB,6BAA0BzumB,EAC/BpY,KAAK88nB,eAAY1knB,EACjBpY,KAAKi+R,QAAU,GACfj+R,KAAK8/oB,gBAAa1noB,EAClBpY,KAAKsmN,WAAa,GAClBtmN,KAAK+/oB,0BAAuB3noB,EAC5BpY,KAAKggpB,gBAAkB,GACvBhgpB,KAAKqlnB,OAAS,GACdrlnB,KAAKk5f,SAAW,IAAIsiJ,GACpBx7oB,KAAK0uoB,SAAW,GAChB1uoB,KAAKigpB,eAAiB,GACtBjgpB,KAAKu0iB,UAAW,EAChBv0iB,KAAK29nB,yBAAsBvlnB,EAC3BpY,KAAKonB,cAAWhP,EAChBpY,KAAKkgpB,UD9uKT,SAAkBtmnB,EAAIkkG,GACpB,IAAIl7H,EACJ,OAAO,WAAkB,2BAAN4jB,EAAM,yBAANA,EAAM,gBAOvB,OANIs3G,GACF5/F,aAAat7B,GACbA,EAAUC,WAAW+2B,EAAIkkG,EAAOt3G,IAEhCoT,EAAG5T,MAAMhmB,KAAMwmB,GAEVs3G,GCquKUqihB,EAAS,SAAA97kB,GAAI,OAAI,EAAKhmD,OAAOgmD,KAAOjqD,EAAQgmoB,aAAe,GAC5EpgpB,KAAKo+nB,aAAe,GACpB2gB,GAAU/+oB,KAAKiK,IAAMjK,KAChB2a,GAAY+zL,GAIjBmmb,GAASnzY,OAAO1hP,KAAM,WAAY2+oB,IAClC9pB,GAASnzY,OAAO1hP,KAAM,WAAY6+oB,IAClC7+oB,KAAKiqD,cACDjqD,KAAKu0iB,UACPv0iB,KAAKqe,UAPL+rB,QAAQsV,MAAM,6GAUlB,WACE,MAAmF1/C,KAA5Eoa,QAAUmhiB,EAAjB,EAAiBA,YAAa0pE,EAA9B,EAA8BA,oBAAsB3zmB,EAA+BtR,KAA/BsR,MAAOC,EAAwBvR,KAAxBuR,OAAQquoB,EAAgB5/oB,KAAhB4/oB,aACnE,OAAK/rH,EAAc0nB,GAGf0pE,GAAuB26B,EAClBA,EAEFruoB,EAASD,EAAQC,EAAS,KALxBgqiB,oBAOX,WACE,OAAOv7iB,KAAKsvE,OAAOzhE,UAErB,SAASA,GACP7N,KAAKsvE,OAAOzhE,KAAOA,uBAErB,WACE,OAAO7N,KAAKmhB,cAEd,SAAY/G,GACVpa,KAAKsvE,OAAOl1D,QAAUA,6BAExB,WASE,OARApa,KAAKw1oB,cAAc,cACfx1oB,KAAKoa,QAAQgrmB,WACfplnB,KAAKuc,SAELm0mB,GAAY1wnB,KAAMA,KAAKoa,QAAQwoH,kBAEjC5iI,KAAKqgpB,aACLrgpB,KAAKw1oB,cAAc,aACZx1oB,0BAET,WAEE,OADA+mnB,GAAY/mnB,KAAK0uM,OAAQ1uM,KAAKovM,KACvBpvM,yBAET,WAEE,OADA60nB,GAASt6mB,KAAKva,MACPA,2BAET,SAAOsR,EAAOC,GACPsjnB,GAASrqd,QAAQxqK,MAGpBA,KAAKsgpB,kBAAoB,CAAChvoB,MAAAA,EAAOC,OAAAA,GAFjCvR,KAAKw1G,QAAQlkG,EAAOC,0BAKxB,SAAQD,EAAOC,GACb,IAAM6I,EAAUpa,KAAKoa,QACfs0L,EAAS1uM,KAAK0uM,OACd6sW,EAAcnhiB,EAAQ6qmB,qBAAuBjlnB,KAAKu7iB,YAClDglG,EAAUvgpB,KAAK2+H,SAASwxf,eAAezhb,EAAQp9L,EAAOC,EAAQgqiB,GAC9DilG,EAAWpmoB,EAAQwoH,kBAAoB5iI,KAAK2+H,SAAS+lf,sBACrDrgjB,EAAOrkE,KAAKsR,MAAQ,SAAW,SACrCtR,KAAKsR,MAAQivoB,EAAQjvoB,MACrBtR,KAAKuR,OAASgvoB,EAAQhvoB,OACtBvR,KAAK4/oB,aAAe5/oB,KAAKu7iB,YACpBm1E,GAAY1wnB,KAAMwgpB,GAAU,KAGjCxgpB,KAAKw1oB,cAAc,SAAU,CAACh9nB,KAAM+noB,IACpC/xlB,EAASp0C,EAAQilF,SAAU,CAACr/F,KAAMugpB,GAAUvgpB,MACxCA,KAAKu0iB,UACHv0iB,KAAKkgpB,UAAU77kB,IACjBrkE,KAAKuf,6CAIX,WAGE9E,EAFgBza,KAAKoa,QACSirmB,QAAU,IACpB,SAACo7B,EAAapG,GAChCoG,EAAYx2oB,GAAKowoB,wCAGrB,WAAsB,WACdjgoB,EAAUpa,KAAKoa,QACfsmoB,EAAYtmoB,EAAQirmB,OACpBA,EAASrlnB,KAAKqlnB,OACds7B,EAAU75oB,OAAOC,KAAKs+mB,GAAQ37mB,QAAO,SAACgkE,EAAKzjE,GAE/C,OADAyjE,EAAIzjE,IAAM,EACHyjE,IACN,IACChiE,EAAQ,GACRg1oB,IACFh1oB,EAAQA,EAAMkwB,OACZ90B,OAAOC,KAAK25oB,GAAWx6oB,KAAI,SAAC+D,GAC1B,IAAMqyoB,EAAeoE,EAAUz2oB,GACzB8pD,EAAOsolB,GAAcpyoB,EAAIqyoB,GACzBsE,EAAoB,MAAT7slB,EACXq5T,EAAwB,MAATr5T,EACrB,MAAO,CACL35C,QAASkioB,EACTuE,UAAWD,EAAW,YAAcxzR,EAAe,SAAW,OAC9D0zR,MAAOF,EAAW,eAAiBxzR,EAAe,WAAa,eAKvE3yW,EAAK/O,GAAO,SAACxL,GACX,IAAMo8oB,EAAep8oB,EAAKka,QACpBnQ,EAAKqyoB,EAAaryoB,GAClB8pD,EAAOsolB,GAAcpyoB,EAAIqyoB,GACzByE,EAAYptC,EAAe2oC,EAAa34nB,KAAMzjB,EAAK4gpB,YAC3B1ooB,IAA1BkkoB,EAAan2nB,UAA0Bs4nB,GAAqBnC,EAAan2nB,SAAU4tC,KAAU0qlB,GAAqBv+oB,EAAK2gpB,aACzHvE,EAAan2nB,SAAWjmB,EAAK2gpB,WAE/BF,EAAQ12oB,IAAM,EACd,IAAIq3N,EAAQ,KACRr3N,KAAMo7mB,GAAUA,EAAOp7mB,GAAI0Z,OAASo9nB,EACtCz/a,EAAQ+jZ,EAAOp7mB,IAGfq3N,EAAQ,IADW+qL,GAASxwG,SAASklW,GAC7B,CAAe,CACrB92oB,GAAAA,EACA0Z,KAAMo9nB,EACN3xc,IAAK,EAAKA,IACVo0U,MAAO,IAET6hG,EAAO/jZ,EAAMr3N,IAAMq3N,GAErBA,EAAM/nN,KAAK+ioB,EAAclioB,MAE3BK,EAAKkmoB,GAAS,SAACK,EAAY/2oB,GACpB+2oB,UACI37B,EAAOp7mB,MAGlBwQ,EAAK4qmB,GAAQ,SAAC/jZ,GACZwoa,GAAkB,EAAMxoa,EAAOA,EAAMlnN,SACrC0vnB,GAAe,EAAMxoa,qCAGzB,WACE,IAAMm1Z,EAAWz2nB,KAAK6/oB,UAChB7hB,EAAUh+nB,KAAK6N,KAAK42mB,SAASnknB,OAC7By9nB,EAAUtH,EAASn2nB,OAEzB,GADAm2nB,EAASjxkB,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAE5kD,MAAQ6kD,EAAE7kD,SAChCk9nB,EAAUC,EAAS,CACrB,IAAK,IAAIjynB,EAAIiynB,EAASjynB,EAAIgynB,IAAWhynB,EACnC/L,KAAKihpB,oBAAoBl1oB,GAE3B0qnB,EAASlnnB,OAAOyunB,EAASD,EAAUC,GAErCh+nB,KAAKggpB,gBAAkBvpB,EAAShxnB,MAAM,GAAG+/C,KAAKk5lB,GAAc,QAAS,qDAEvE,WAA8B,WACVjoB,EAA8Bz2nB,KAAzC6/oB,UAA4Bp7B,EAAazknB,KAApB6N,KAAO42mB,SAC/BgS,EAASn2nB,OAASmknB,EAASnknB,eACtBN,KAAK03nB,QAEdjB,EAASx2nB,SAAQ,SAAC8mF,EAAMlmF,GACmC,IAArD4jnB,EAAS7+mB,QAAO,SAAAoL,GAAC,OAAIA,IAAM+1E,EAAK0+iB,YAAUnloB,QAC5C,EAAK2gpB,oBAAoBpgpB,8CAI/B,WACE,IAEIkL,EAAGkomB,EAFDitC,EAAiB,GACjBz8B,EAAWzknB,KAAK6N,KAAK42mB,SAG3B,IADAzknB,KAAKmhpB,8BACAp1oB,EAAI,EAAGkomB,EAAOwQ,EAASnknB,OAAQyL,EAAIkomB,EAAMlomB,IAAK,CACjD,IAAM6M,EAAU6rmB,EAAS14mB,GACrBg7E,EAAO/mF,KAAKs6nB,eAAevunB,GACzB4X,EAAO/K,EAAQ+K,MAAQ3jB,KAAKsvE,OAAO3rD,KAWzC,GAVIojE,EAAKpjE,MAAQojE,EAAKpjE,OAASA,IAC7B3jB,KAAKihpB,oBAAoBl1oB,GACzBg7E,EAAO/mF,KAAKs6nB,eAAevunB,IAE7Bg7E,EAAKpjE,KAAOA,EACZojE,EAAK+9hB,UAAYlsmB,EAAQksmB,WAAaq3B,GAAax4nB,EAAM3jB,KAAKoa,SAC9D2sE,EAAK4za,MAAQ/hf,EAAQ+hf,OAAS,EAC9B5za,EAAKlmF,MAAQkL,EACbg7E,EAAKs8D,MAAQ,GAAKzqI,EAAQyqI,MAC1Bt8D,EAAKl+E,QAAU7I,KAAK8ioB,iBAAiB/2nB,GACjCg7E,EAAKmzB,WACPnzB,EAAKmzB,WAAWkniB,YAAYr1oB,GAC5Bg7E,EAAKmzB,WAAWi/gB,iBACX,CACL,IAAMkoB,EAAkBh1P,GAASi1P,cAAc39nB,GAC/C,EAA8CmjM,GAAS29Z,SAAS9gmB,GAAzDk3mB,EAAP,EAAOA,mBAAoBwC,EAA3B,EAA2BA,gBAC3Bv2nB,OAAOw4C,OAAO+hmB,EAAgB77oB,UAAW,CACvC63nB,gBAAiBhxO,GAAS91Q,WAAW8mf,GACrCxC,mBAAoBA,GAAsBxuO,GAAS91Q,WAAWskf,KAEhE9ziB,EAAKmzB,WAAa,IAAImniB,EAAgBrhpB,KAAM+L,GAC5Cm1oB,EAAetgpB,KAAKmmF,EAAKmzB,aAI7B,OADAl6G,KAAKuhpB,kBACEL,gCAET,WAAiB,WACfzmoB,EAAKza,KAAK6N,KAAK42mB,UAAU,SAAC7rmB,EAASw7lB,GACjC,EAAKkmB,eAAelmB,GAAcl6f,WAAW3+E,UAC5Cv7B,2BAEL,WACEA,KAAKwhpB,iBACLxhpB,KAAKw1oB,cAAc,+BAErB,SAAOnxkB,GACL,IAAMiL,EAAStvE,KAAKsvE,OACpBA,EAAOjxD,SACP,IAAMjE,EAAUpa,KAAKmhB,SAAWmuD,EAAO+rjB,eAAe/rjB,EAAOiwkB,oBAAqBv/oB,KAAK27D,cACjF8llB,EAAgBzhpB,KAAK29nB,qBAAuBvjnB,EAAQkqN,UAK1D,GAJAtkO,KAAK0hpB,gBACL1hpB,KAAK2hpB,sBACL3hpB,KAAK4hpB,uBACL5hpB,KAAKk5f,SAAS2/F,cACuD,IAAjE74lB,KAAKw1oB,cAAc,eAAgB,CAACnxkB,KAAAA,EAAMk2O,YAAY,IAA1D,CAGA,IAAM2mW,EAAiBlhpB,KAAK6hpB,2BAC5B7hpB,KAAKw1oB,cAAc,wBAEnB,IADA,IAAI9J,EAAa,EACR3/nB,EAAI,EAAGkomB,EAAOj0mB,KAAK6N,KAAK42mB,SAASnknB,OAAQyL,EAAIkomB,EAAMlomB,IAAK,CAC/D,IAAOmuG,EAAcl6G,KAAKs6nB,eAAevunB,GAAlCmuG,WACD3+E,GAASkmnB,IAAyD,IAAxCP,EAAe/6oB,QAAQ+zG,GACvDA,EAAW4niB,sBAAsBvmnB,GACjCmwmB,EAAa/lnB,KAAKC,KAAKs0F,EAAW2ihB,iBAAkB6O,GAEtDA,EAAa1roB,KAAKwooB,YAAcpunB,EAAQkza,OAAOi+M,YAAcG,EAAa,EAC1E1roB,KAAK+hpB,cAAcrW,GACd+V,GACHhnoB,EAAKymoB,GAAgB,SAAChniB,GACpBA,EAAW3+E,WAGfv7B,KAAKgipB,gBAAgB39kB,GACrBrkE,KAAKw1oB,cAAc,cAAe,CAACnxkB,KAAAA,IACnCrkE,KAAKwroB,QAAQhmlB,KAAKk5lB,GAAc,IAAK,SACrC,IAAOzgX,EAAuBj+R,KAAvBi+R,QAAS6hX,EAAc9/oB,KAAd8/oB,WACZA,EACF9/oB,KAAKqvZ,cAAcywP,GAAY,GACtB7hX,EAAQ39R,QACjBN,KAAKiipB,mBAAmBhkX,EAASA,GAAS,GAE5Cj+R,KAAKuf,uCAEP,WAAgB,WACd9E,EAAKza,KAAKqlnB,QAAQ,SAAC/jZ,GACjBwoa,GAAkB,EAAMxoa,MAE1BthO,KAAKkipB,sBACLlipB,KAAKmipB,yDAEP,WACE,IAAM/noB,EAAUpa,KAAKoa,QACfgooB,EAAiB,IAAIz9hB,IAAI79G,OAAOC,KAAK/G,KAAKsmN,aAC1C+7b,EAAY,IAAI19hB,IAAIvqG,EAAQ0wB,QAC7BoqkB,EAAUktC,EAAgBC,MAAgBripB,KAAK+/oB,uBAAyB3loB,EAAQgrmB,aACnFplnB,KAAKsipB,eACLtipB,KAAKqgpB,kDAGT,WACE,IADqB,EACdJ,EAAkBjgpB,KAAlBigpB,eACDrgkB,EAAU5/E,KAAKuipB,0BAA4B,GAF5B,UAGgB3ikB,GAHhB,IAGrB,2BAA8C,eAAlC52E,EAAkC,EAAlCA,OAAQ6S,EAA0B,EAA1BA,MAAOq9D,EAAmB,EAAnBA,MAEzB+lkB,GAAgBgB,EAAgBpkoB,EADR,oBAAX7S,GAAgCkwE,EAAQA,IAJlC,qEAQvB,WACE,IAAMkljB,EAAep+nB,KAAKo+nB,aAC1B,GAAKA,GAAiBA,EAAa99nB,OAAnC,CAGAN,KAAKo+nB,aAAe,GAQpB,IAPA,IAAMokB,EAAexipB,KAAK6N,KAAK42mB,SAASnknB,OAClCmipB,EAAU,SAAC11e,GAAD,OAAS,IAAIpoD,IAC3By5gB,EACGx4nB,QAAO,SAAA4V,GAAC,OAAIA,EAAE,KAAOuxJ,KACrB7mK,KAAI,SAACsV,EAAGzP,GAAJ,OAAUA,EAAI,IAAMyP,EAAEjM,OAAO,GAAG0B,KAAK,UAExCunC,EAAYiqmB,EAAQ,GACjB12oB,EAAI,EAAGA,EAAIy2oB,EAAcz2oB,IAChC,IAAKmpmB,EAAU18jB,EAAWiqmB,EAAQ12oB,IAChC,OAGJ,OAAOxG,MAAM4D,KAAKqvC,GACftyC,KAAI,SAAAsV,GAAC,OAAIA,EAAE/N,MAAM,QACjBvH,KAAI,SAAAu/C,GAAC,MAAK,CAACz8C,OAAQy8C,EAAE,GAAI5pC,OAAQ4pC,EAAE,GAAIyzB,OAAQzzB,EAAE,qCAEtD,SAAcimlB,GAAY,WACxB,IAA+D,IAA3D1roB,KAAKw1oB,cAAc,eAAgB,CAACj7V,YAAY,IAApD,CAGAuvV,GAAe9poB,KAAMA,KAAKsR,MAAOtR,KAAKuR,OAAQm6nB,GAC9C,IAAM19lB,EAAOhuC,KAAK88nB,UACZ4lB,EAAS10mB,EAAK18B,OAAS,GAAK08B,EAAKz8B,QAAU,EACjDvR,KAAKwroB,QAAU,GACf/wnB,EAAKza,KAAKiroB,OAAO,SAAC/vX,GAAQ,MACpBwnY,GAA2B,cAAjBxnY,EAAI/0P,WAGd+0P,EAAIijB,WACNjjB,EAAIijB,aAEN,IAAKqtW,SAAQ5qoB,KAAb,gBAAqBs6Q,EAAIswX,eACxBxroB,MACHA,KAAKwroB,QAAQvroB,SAAQ,SAACC,EAAMW,GAC1BX,EAAKyipB,KAAO9hpB,KAEdb,KAAKw1oB,cAAc,+CAErB,SAAgBnxkB,GACd,IAA6E,IAAzErkE,KAAKw1oB,cAAc,uBAAwB,CAACnxkB,KAAAA,EAAMk2O,YAAY,IAAlE,CAGA,IAAK,IAAIxuS,EAAI,EAAGkomB,EAAOj0mB,KAAK6N,KAAK42mB,SAASnknB,OAAQyL,EAAIkomB,IAAQlomB,EAC5D/L,KAAKs6nB,eAAevunB,GAAGmuG,WAAWikL,YAEpC,IAAK,IAAIpyR,EAAI,EAAGkomB,EAAOj0mB,KAAK6N,KAAK42mB,SAASnknB,OAAQyL,EAAIkomB,IAAQlomB,EAC5D/L,KAAK4ipB,eAAe72oB,EAAGmvE,EAAW7W,GAAQA,EAAK,CAAC+viB,aAAcromB,IAAMs4D,GAEtErkE,KAAKw1oB,cAAc,sBAAuB,CAACnxkB,KAAAA,mCAE7C,SAAexjE,EAAOwjE,GACpB,IAAM0iB,EAAO/mF,KAAKs6nB,eAAez5nB,GAC3B2lB,EAAO,CAACugE,KAAAA,EAAMlmF,MAAAA,EAAOwjE,KAAAA,EAAMk2O,YAAY,IACW,IAApDv6S,KAAKw1oB,cAAc,sBAAuBhvnB,KAG9CugE,EAAKmzB,WAAW74F,QAAQgjD,GACxB79C,EAAK+zR,YAAa,EAClBv6S,KAAKw1oB,cAAc,qBAAsBhvnB,0BAE3C,YACiE,IAA3DxmB,KAAKw1oB,cAAc,eAAgB,CAACj7V,YAAY,MAGhDs6U,GAASh7lB,IAAI75B,MACXA,KAAKu0iB,WAAasgF,GAASrqd,QAAQxqK,OACrC60nB,GAASh5mB,MAAM7b,OAGjBA,KAAK4gO,OACL+9a,GAAqB,CAACn7H,MAAOxjhB,6BAGjC,WACE,IAAI+L,EACJ,GAAI/L,KAAKsgpB,kBAAmB,CAC1B,MAAwBtgpB,KAAKsgpB,kBAAtBhvoB,EAAP,EAAOA,MAAOC,EAAd,EAAcA,OACdvR,KAAKw1G,QAAQlkG,EAAOC,GACpBvR,KAAKsgpB,kBAAoB,KAG3B,GADAtgpB,KAAKi+G,UACDj+G,KAAKsR,OAAS,GAAKtR,KAAKuR,QAAU,KAGuB,IAAzDvR,KAAKw1oB,cAAc,aAAc,CAACj7V,YAAY,IAAlD,CAGA,IAAMsoW,EAAS7ipB,KAAKwroB,QACpB,IAAKz/nB,EAAI,EAAGA,EAAI82oB,EAAOvipB,QAAUuipB,EAAO92oB,GAAG65G,GAAK,IAAK75G,EACnD82oB,EAAO92oB,GAAG60N,KAAK5gO,KAAK88nB,WAGtB,IADA98nB,KAAK8ipB,gBACE/2oB,EAAI82oB,EAAOvipB,SAAUyL,EAC1B82oB,EAAO92oB,GAAG60N,KAAK5gO,KAAK88nB,WAEtB98nB,KAAKw1oB,cAAc,oDAErB,SAAuBhf,GACrB,IAEIzqnB,EAAGkomB,EAFDwiB,EAAWz2nB,KAAKggpB,gBAChBnxoB,EAAS,GAEf,IAAK9C,EAAI,EAAGkomB,EAAOwiB,EAASn2nB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CACjD,IAAMg7E,EAAO0viB,EAAS1qnB,GACjByqnB,IAAiBzviB,EAAKl+E,SACzBgG,EAAOjO,KAAKmmF,GAGhB,OAAOl4E,8CAET,WACE,OAAO7O,KAAK02nB,wBAAuB,gCAErC,WACE,IAAqE,IAAjE12nB,KAAKw1oB,cAAc,qBAAsB,CAACj7V,YAAY,IAA1D,CAIA,IADA,IAAMk8U,EAAWz2nB,KAAKqooB,+BACbt8nB,EAAI0qnB,EAASn2nB,OAAS,EAAGyL,GAAK,IAAKA,EAC1C/L,KAAK+ipB,aAAatsB,EAAS1qnB,IAE7B/L,KAAKw1oB,cAAc,kDAErB,SAAazujB,GACX,IAAMqoH,EAAMpvM,KAAKovM,IACXke,EAAOvmI,EAAK21iB,MACZsmB,GAAW11b,EAAKliN,SAChB4iC,EAAOhuC,KAAK88nB,UACZt2mB,EAAO,CACXugE,KAAAA,EACAlmF,MAAOkmF,EAAKlmF,MACZ05S,YAAY,IAEwC,IAAlDv6S,KAAKw1oB,cAAc,oBAAqBhvnB,KAGxCw8nB,GACFt7B,GAASt4a,EAAK,CACZ12L,MAAoB,IAAd40M,EAAK50M,KAAiB,EAAIs1B,EAAKt1B,KAAO40M,EAAK50M,KACjDqF,OAAsB,IAAfuvM,EAAKvvM,MAAkB/d,KAAKsR,MAAQ08B,EAAKjwB,MAAQuvM,EAAKvvM,MAC7DjF,KAAkB,IAAbw0M,EAAKx0M,IAAgB,EAAIk1B,EAAKl1B,IAAMw0M,EAAKx0M,IAC9CkF,QAAwB,IAAhBsvM,EAAKtvM,OAAmBhe,KAAKuR,OAASy8B,EAAKhwB,OAASsvM,EAAKtvM,SAGrE+oE,EAAKmzB,WAAW0mH,OACZoib,GACFr7B,GAAWv4a,GAEb5oL,EAAK+zR,YAAa,EAClBv6S,KAAKw1oB,cAAc,mBAAoBhvnB,6CAEzC,SAA0BhmB,EAAG6jE,EAAMjqD,EAASmunB,GAC1C,IAAMv/nB,EAASsgoB,GAAYC,MAAMllkB,GACjC,MAAsB,oBAAXr7D,EACFA,EAAOhJ,KAAMQ,EAAG4Z,EAASmunB,GAE3B,iCAET,SAAen0B,GACb,IAAMx7lB,EAAU5Y,KAAK6N,KAAK42mB,SAASrQ,GAC7BqiB,EAAWz2nB,KAAK6/oB,UAClB94jB,EAAO0viB,EAAS7wnB,QAAO,SAAAoL,GAAC,OAAIA,GAAKA,EAAEy0nB,WAAa7snB,KAASw/B,MAkB7D,OAjBK2uC,IACHA,EAAO,CACLpjE,KAAM,KACN9V,KAAM,GACN+K,QAAS,KACTshG,WAAY,KACZvlF,OAAQ,KACR8kmB,QAAS,KACTE,QAAS,KACTh/H,MAAO/hf,GAAWA,EAAQ+hf,OAAS,EACnC95f,MAAOuzmB,EACPqxB,SAAU7snB,EACVy/mB,QAAS,GACTiD,SAAS,GAEX7E,EAAS71nB,KAAKmmF,IAETA,4BAET,WACE,OAAO/mF,KAAKonB,WAAapnB,KAAKonB,SAAW45F,GAAc,KAAM,CAACwia,MAAOxjhB,KAAM2jB,KAAM,iDAEnF,WACE,OAAO3jB,KAAKqooB,+BAA+B/noB,uCAE7C,SAAiB8zmB,GACf,IAAMx7lB,EAAU5Y,KAAK6N,KAAK42mB,SAASrQ,GACnC,IAAKx7lB,EACH,OAAO,EAET,IAAMmuE,EAAO/mF,KAAKs6nB,eAAelmB,GACjC,MAA8B,mBAAhBrthB,EAAKpyD,QAAwBoyD,EAAKpyD,QAAU/b,EAAQ+b,2CAEpE,SAAqBy/kB,EAAcvrmB,GACpB7I,KAAKs6nB,eAAelmB,GAC5Bz/kB,QAAU9rB,sCAEjB,SAAqBhI,GACnBb,KAAKigpB,eAAep/oB,IAAUb,KAAKigpB,eAAep/oB,oCAEpD,SAAkBA,GAChB,OAAQb,KAAKigpB,eAAep/oB,oCAE9B,SAAkBuzmB,EAAc6oB,EAAWp0nB,GACzC,IAAMw7D,EAAOx7D,EAAU,OAAS,OAC1Bk+E,EAAO/mF,KAAKs6nB,eAAelmB,GAC3BkgB,EAAQvtiB,EAAKmzB,WAAW0jhB,wBAAmBxlnB,EAAWisD,GACxD4wiB,EAAQgoB,IACVl2iB,EAAKl5E,KAAKovnB,GAAWtomB,QAAU9rB,EAC/B7I,KAAKqe,WAELre,KAAKijpB,qBAAqB7uC,EAAcvrmB,GACxCyrnB,EAAMj2mB,OAAO0oE,EAAM,CAACl+E,QAAAA,IACpB7I,KAAKqe,QAAO,SAAC+wL,GAAD,OAASA,EAAIgla,eAAiBA,EAAe/viB,OAAOjsD,0BAGpE,SAAKg8lB,EAAc6oB,GACjBj9nB,KAAKkjpB,kBAAkB9uC,EAAc6oB,GAAW,uBAElD,SAAK7oB,EAAc6oB,GACjBj9nB,KAAKkjpB,kBAAkB9uC,EAAc6oB,GAAW,sCAElD,SAAoB7oB,GAClB,IAAMrthB,EAAO/mF,KAAK6/oB,UAAUzrC,GACxBrthB,GAAQA,EAAKmzB,YACfnzB,EAAKmzB,WAAW41c,kBAEX9vjB,KAAK6/oB,UAAUzrC,wBAExB,WACE,IAAIromB,EAAGkomB,EAGP,IAFAj0mB,KAAKua,OACLs6mB,GAASrznB,OAAOxB,MACX+L,EAAI,EAAGkomB,EAAOj0mB,KAAK6N,KAAK42mB,SAASnknB,OAAQyL,EAAIkomB,IAAQlomB,EACxD/L,KAAKihpB,oBAAoBl1oB,0BAG7B,WACE/L,KAAKw1oB,cAAc,iBACnB,IAAO9mc,EAAe1uM,KAAf0uM,OAAQU,EAAOpvM,KAAPovM,IACfpvM,KAAK8vS,QACL9vS,KAAKsvE,OAAOmzJ,aACR/zB,IACF1uM,KAAKsipB,eACLv7B,GAAYr4a,EAAQU,GACpBpvM,KAAK2+H,SAASwkhB,eAAe/zc,GAC7BpvM,KAAK0uM,OAAS,KACd1uM,KAAKovM,IAAM,MAEbpvM,KAAKw1oB,cAAc,kBACZuJ,GAAU/+oB,KAAKiK,IACtBjK,KAAKw1oB,cAAc,6CAErB,WAAuB,MACrB,OAAO,EAAAx1oB,KAAK0uM,QAAO00c,UAAZ,6CAET,WACEpjpB,KAAKqjpB,iBACDrjpB,KAAKoa,QAAQgrmB,WACfplnB,KAAKsjpB,uBAELtjpB,KAAKu0iB,UAAW,gCAGpB,WAAiB,WACT/va,EAAYxkI,KAAKsmN,WACjB3nF,EAAW3+H,KAAK2+H,SAKhBt+H,EAAW,SAACG,EAAGwQ,EAAG2M,GACtBnd,EAAEkuC,QAAU19B,EACZxQ,EAAEmuC,QAAUhxB,EACZ,EAAK0xY,cAAc7uZ,IAErBia,EAAKza,KAAKoa,QAAQ0wB,QAAQ,SAACnnB,GAAD,OATb,SAACA,EAAMtjB,GAClBs+H,EAASj+H,iBAAiB,EAAMijB,EAAMtjB,GACtCmkI,EAAU7gH,GAAQtjB,EAOgBkjpB,CAAK5/nB,EAAMtjB,0CAEjD,WAAuB,WAChBL,KAAK+/oB,uBACR//oB,KAAK+/oB,qBAAuB,IAE9B,IAiBIyD,EAjBEh/gB,EAAYxkI,KAAK+/oB,qBACjBphhB,EAAW3+H,KAAK2+H,SAChB4khB,EAAO,SAAC5/nB,EAAMtjB,GAClBs+H,EAASj+H,iBAAiB,EAAMijB,EAAMtjB,GACtCmkI,EAAU7gH,GAAQtjB,GAEdojpB,EAAU,SAAC9/nB,EAAMtjB,GACjBmkI,EAAU7gH,KACZg7G,EAASx+H,oBAAoB,EAAMwjB,EAAMtjB,UAClCmkI,EAAU7gH,KAGftjB,EAAW,SAACiR,EAAOC,GACnB,EAAKm9L,QACP,EAAKnyL,OAAOjL,EAAOC,IAIjBgjiB,EAAW,SAAXA,IACJkvG,EAAQ,SAAUlvG,GAClB,EAAKA,UAAW,EAChB,EAAKh4hB,SACLgnoB,EAAK,SAAUljpB,GACfkjpB,EAAK,SAAUC,IAEjBA,EAAW,WACT,EAAKjvG,UAAW,EAChBkvG,EAAQ,SAAUpjpB,GAClB,EAAKyvS,QACL,EAAKt6L,QAAQ,EAAG,GAChB+tiB,EAAK,SAAUhvG,IAEb51a,EAASm0a,WAAW9yiB,KAAK0uM,QAC3B6lW,IAEAivG,gCAGJ,WAAe,WACb/ooB,EAAKza,KAAKsmN,YAAY,SAACjmN,EAAUsjB,GAC/B,EAAKg7G,SAASx+H,oBAAoB,EAAMwjB,EAAMtjB,MAEhDL,KAAKsmN,WAAa,GAClB7rM,EAAKza,KAAK+/oB,sBAAsB,SAAC1/oB,EAAUsjB,GACzC,EAAKg7G,SAASx+H,oBAAoB,EAAMwjB,EAAMtjB,MAEhDL,KAAK+/oB,0BAAuB3noB,kCAE9B,SAAiB1M,EAAO24D,EAAM/6B,GAC5B,IACUppC,EAAM6L,EAAGkomB,EADbppkB,EAASvB,EAAU,MAAQ,SAMjC,IAJa,YAAT+6B,GACKrkE,KAAKs6nB,eAAe5unB,EAAM,GAAG0omB,cAC/Bl6f,WAAW,IAAMrvE,EAAS,uBAE5B9+B,EAAI,EAAGkomB,EAAOvomB,EAAMpL,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAE9C,IAAMmuG,GADNh6G,EAAOwL,EAAMK,KACc/L,KAAKs6nB,eAAep6nB,EAAKk0mB,cAAcl6f,WAC9DA,GACFA,EAAWrvE,EAAS,cAAc3qC,EAAKJ,QAASI,EAAKk0mB,aAAcl0mB,EAAKW,yCAI9E,WACE,OAAOb,KAAKi+R,SAAW,oCAEzB,SAAkB49D,GAAgB,WAC1B6nT,EAAa1jpB,KAAKi+R,SAAW,GAC7B9yQ,EAAS0wU,EAAe31V,KAAI,YAA2B,IAAzBkumB,EAAyB,EAAzBA,aAAcvzmB,EAAW,EAAXA,MAC1CkmF,EAAO,EAAKuziB,eAAelmB,GACjC,IAAKrthB,EACH,MAAM,IAAI1xC,MAAM,6BAA+B++jB,GAEjD,MAAO,CACLA,aAAAA,EACAt0mB,QAASinF,EAAKl5E,KAAKhN,GACnBA,MAAAA,OAGaizmB,EAAe3olB,EAAQu4nB,KAEtC1jpB,KAAKi+R,QAAU9yQ,EACfnrB,KAAK8/oB,WAAa,KAClB9/oB,KAAKiipB,mBAAmB92nB,EAAQu4nB,iCAGpC,SAAct8W,EAAM5gR,EAAM5gB,GACxB,OAAO5F,KAAKk5f,SAAS35b,OAAOv/D,KAAMonS,EAAM5gR,EAAM5gB,qCAEhD,SAAmBulB,EAAQu4nB,EAAY9/d,GACrC,IAAM+/d,EAAe3jpB,KAAKoa,QAAQo+R,MAC5B3yP,EAAO,SAACJ,EAAGC,GAAJ,OAAUD,EAAE7/C,QAAO,SAAAoL,GAAC,OAAK00C,EAAEnjC,MAAK,SAAA5E,GAAC,OAAI3M,EAAEojmB,eAAiBz2lB,EAAEy2lB,cAAgBpjmB,EAAEnQ,QAAU8c,EAAE9c,aAC/F+ipB,EAAc/9lB,EAAK69lB,EAAYv4nB,GAC/B4rR,EAAYnzH,EAASz4J,EAAS06B,EAAK16B,EAAQu4nB,GAC7CE,EAAYtjpB,QACdN,KAAK6jpB,iBAAiBD,EAAaD,EAAat/kB,MAAM,GAEpD0yO,EAAUz2S,QAAUqjpB,EAAat/kB,MACnCrkE,KAAK6jpB,iBAAiB9sW,EAAW4sW,EAAat/kB,MAAM,gCAGxD,SAAc7jE,EAAGojL,GAAQ,WACjBp9J,EAAO,CACXhM,MAAOha,EACPojL,OAAAA,EACA22H,YAAY,EACZupW,YAAar8B,GAAejnnB,EAAGR,KAAK88nB,UAAW98nB,KAAKwooB,cAEhDub,EAAc,SAAC5qJ,GAAD,OAAaA,EAAO/+e,QAAQ0wB,QAAU,EAAK1wB,QAAQ0wB,QAAQgxF,SAASt7H,EAAEu3X,OAAOp0W,OACjG,IAA6D,IAAzD3jB,KAAKw1oB,cAAc,cAAehvnB,EAAMu9nB,GAA5C,CAGA,IAAMvma,EAAUx9O,KAAKgkpB,aAAaxjpB,EAAGojL,EAAQp9J,EAAKs9nB,aAMlD,OALAt9nB,EAAK+zR,YAAa,EAClBv6S,KAAKw1oB,cAAc,aAAchvnB,EAAMu9nB,IACnCvma,GAAWh3N,EAAKg3N,UAClBx9O,KAAKuf,SAEAvf,kCAET,SAAaQ,EAAGojL,EAAQkge,GACtB,MAA4C9jpB,KAArCi+R,QAASylX,OAAhB,MAA6B,GAA7B,EAAiCtpoB,EAAWpa,KAAXoa,QAC3BmunB,EAAmB3kd,EACnBz4J,EAASnrB,KAAKikpB,mBAAmBzjpB,EAAGkjpB,EAAYI,EAAavb,GAC7DxvG,EDvtLV,SAAuBv4hB,GACrB,MAAkB,YAAXA,EAAEmjB,MAAiC,UAAXnjB,EAAEmjB,MAA+B,gBAAXnjB,EAAEmjB,KCstLrCugoB,CAAc1jpB,GACxBi+I,EA1uBV,SAA4Bj+I,EAAGi+I,EAAWqlgB,EAAa/qH,GACrD,OAAK+qH,GAA0B,aAAXtjpB,EAAEmjB,KAGlBo1gB,EACKt6Y,EAEFj+I,EALE,KAwuBW2jpB,CAAmB3jpB,EAAGR,KAAK8/oB,WAAYgE,EAAa/qH,GAClE+qH,IACF9jpB,KAAK8/oB,WAAa,KAClBtxlB,EAASp0C,EAAQ8qmB,QAAS,CAAC1knB,EAAG2qB,EAAQnrB,MAAOA,MACzC+4hB,GACFvqe,EAASp0C,EAAQ4sD,QAAS,CAACxmE,EAAG2qB,EAAQnrB,MAAOA,OAGjD,IAAMw9O,GAAWs2X,EAAe3olB,EAAQu4nB,GAMxC,OALIlma,GAAW55D,KACb5jL,KAAKi+R,QAAU9yQ,EACfnrB,KAAKiipB,mBAAmB92nB,EAAQu4nB,EAAY9/d,IAE9C5jL,KAAK8/oB,WAAarhgB,EACX++F,oCAET,SAAmBh9O,EAAGkjpB,EAAYI,EAAavb,GAC7C,GAAe,aAAX/noB,EAAEmjB,KACJ,MAAO,GAET,IAAKmgoB,EACH,OAAOJ,EAET,IAAMC,EAAe3jpB,KAAKoa,QAAQo+R,MAClC,OAAOx4S,KAAKokpB,0BAA0B5jpB,EAAGmjpB,EAAat/kB,KAAMs/kB,EAAcpb,SAzvBxE4W,GA4vBAkF,GAAoB,kBAAM5poB,EAAK0koB,GAAMJ,WAAW,SAACv7H,GAAD,OAAWA,EAAMtqB,SAAS2/F,iBAC1E5zhB,IAAa,EA0CnB,SAASq/kB,GAAQl1c,EAAKtvM,EAAS4wgB,GAC7B,IAAOD,EAA2D3wgB,EAA3D2wgB,WAAY8zI,EAA+CzkpB,EAA/CykpB,YAAavzoB,EAAkClR,EAAlCkR,EAAG2M,EAA+B7d,EAA/B6d,EAAG6yf,EAA4B1wgB,EAA5B0wgB,YAAaD,EAAezwgB,EAAfywgB,YAC/Ci0I,EAAcD,EAAc/zI,EAChCphU,EAAIy3Z,YACJz3Z,EAAIkzT,IAAItxf,EAAG2M,EAAG6yf,EAAaC,EAAa+zI,EAAa9zI,EAAW8zI,GAC5Dj0I,EAAcg0I,GAChBC,EAAcD,EAAch0I,EAC5BnhU,EAAIkzT,IAAItxf,EAAG2M,EAAG4yf,EAAaG,EAAW8zI,EAAa/zI,EAAa+zI,GAAa,IAE7Ep1c,EAAIkzT,IAAItxf,EAAG2M,EAAG4moB,EAAa7zI,EAAW8kG,EAAS/kG,EAAa+kG,GAE9Dpma,EAAIm4a,YACJn4a,EAAIke,OAKN,SAASm3b,GAAoBniJ,EAAKiO,EAAaC,EAAak0I,GAC1D,IAAMz0jB,EAHC05hB,GAGmBrnH,EAAIlof,QAAQuqoB,aAHN,CAAC,aAAc,WAAY,aAAc,aAInEC,GAAiBp0I,EAAcD,GAAe,EAC9Cs0I,EAAal/nB,KAAKG,IAAI8+nB,EAAeF,EAAan0I,EAAc,GAChEu0I,EAAoB,SAAC/goB,GACzB,IAAMghoB,GAAiBv0I,EAAc7qf,KAAKG,IAAI8+nB,EAAe7goB,IAAQ2goB,EAAa,EAClF,OAAOltC,GAAYzzlB,EAAK,EAAG4B,KAAKG,IAAI8+nB,EAAeG,KAErD,MAAO,CACLC,WAAYF,EAAkB70jB,EAAE+0jB,YAChCC,SAAUH,EAAkB70jB,EAAEg1jB,UAC9BC,WAAY1tC,GAAYvnhB,EAAEi1jB,WAAY,EAAGL,GACzCM,SAAU3tC,GAAYvnhB,EAAEk1jB,SAAU,EAAGN,IAGzC,SAASO,GAAW7+kB,EAAG8+kB,EAAOr0oB,EAAG2M,GAC/B,MAAO,CACL3M,EAAGA,EAAIu1D,EAAI5gD,KAAKivP,IAAIywY,GACpB1noB,EAAGA,EAAI4oD,EAAI5gD,KAAKixf,IAAIyuI,IAGxB,SAASC,GAAQl2c,EAAKtvM,EAASyL,EAAQ23nB,EAAS9vmB,GAC9C,IAAOpiB,EAA6DlR,EAA7DkR,EAAG2M,EAA0D7d,EAA1D6d,EAAe9B,EAA2C/b,EAAvD2wgB,WAAmB8zI,EAAoCzkpB,EAApCykpB,YAA0Bn+I,EAAUtmgB,EAAvBywgB,YACvCC,EAAc7qf,KAAKC,IAAI9lB,EAAQ0wgB,YAAc0yH,EAAU33nB,EAASg5oB,EAAa,GAC7Eh0I,EAAcnK,EAAS,EAAIA,EAAS88H,EAAU33nB,EAASg5oB,EAAc,EACvEgB,EAAgB,EACdx/kB,EAAQ3yC,EAAMvX,EACpB,GAAIqnnB,EAAS,CACX,IAEMsiB,IAFuBp/I,EAAS,EAAIA,EAAS88H,EAAU,IAChC1yH,EAAc,EAAIA,EAAc0yH,EAAU,IACI,EAE3EqiB,GAAiBx/kB,GAD4B,IAAvBy/kB,EAA4Bz/kB,EAAQy/kB,GAAuBA,EAAqBtiB,GAAWn9jB,IACvE,EAE5C,IACM0/kB,GAAe1/kB,EADRpgD,KAAKC,IAAI,KAAOmgD,EAAQyqc,EAAcjlgB,EAASopQ,GAAM67P,GAC7B,EAC/BC,EAAa50f,EAAQ4poB,EAAcF,EACnC70I,EAAWt9e,EAAMqynB,EAAcF,EACrC,EAAqDd,GAAoB3kpB,EAASywgB,EAAaC,EAAaE,EAAWD,GAAhHu0I,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,SAAUC,EAA7B,EAA6BA,WAAYC,EAAzC,EAAyCA,SACnCO,EAA2Bl1I,EAAcw0I,EACzCW,EAAyBn1I,EAAcy0I,EACvCW,EAA0Bn1I,EAAau0I,EAAaU,EACpDG,EAAwBn1I,EAAWu0I,EAAWU,EAC9CG,EAA2Bv1I,EAAc20I,EACzCa,EAAyBx1I,EAAc40I,EACvCa,EAA0Bv1I,EAAay0I,EAAaY,EACpDG,EAAwBv1I,EAAWy0I,EAAWY,EAGpD,GAFA32c,EAAIy3Z,YACJz3Z,EAAIkzT,IAAItxf,EAAG2M,EAAG6yf,EAAao1I,EAAyBC,GAChDZ,EAAW,EAAG,CAChB,IAAMiB,EAAUd,GAAWO,EAAwBE,EAAuB70oB,EAAG2M,GAC7EyxL,EAAIkzT,IAAI4jJ,EAAQl1oB,EAAGk1oB,EAAQvooB,EAAGsnoB,EAAUY,EAAuBn1I,EAAW8kG,GAE5E,IAAM2wC,EAAKf,GAAWW,EAAwBr1I,EAAU1/f,EAAG2M,GAE3D,GADAyxL,EAAI03Z,OAAOq/C,EAAGn1oB,EAAGm1oB,EAAGxooB,GAChBwnoB,EAAW,EAAG,CAChB,IAAMe,EAAUd,GAAWW,EAAwBE,EAAuBj1oB,EAAG2M,GAC7EyxL,EAAIkzT,IAAI4jJ,EAAQl1oB,EAAGk1oB,EAAQvooB,EAAGwnoB,EAAUz0I,EAAW8kG,EAASywC,EAAwBtgoB,KAAKgvP,IAG3F,GADAvlE,EAAIkzT,IAAItxf,EAAG2M,EAAG4yf,EAAaG,EAAYy0I,EAAW50I,EAAcE,EAAcy0I,EAAa30I,GAAc,GACrG20I,EAAa,EAAG,CAClB,IAAMgB,EAAUd,GAAWU,EAA0BE,EAAyBh1oB,EAAG2M,GACjFyxL,EAAIkzT,IAAI4jJ,EAAQl1oB,EAAGk1oB,EAAQvooB,EAAGunoB,EAAYc,EAA0BrgoB,KAAKgvP,GAAI87P,EAAa+kG,GAE5F,IAAM4wC,EAAKhB,GAAWM,EAA0Bj1I,EAAYz/f,EAAG2M,GAE/D,GADAyxL,EAAI03Z,OAAOs/C,EAAGp1oB,EAAGo1oB,EAAGzooB,GAChBqnoB,EAAa,EAAG,CAClB,IAAMkB,EAAUd,GAAWM,EAA0BE,EAAyB50oB,EAAG2M,GACjFyxL,EAAIkzT,IAAI4jJ,EAAQl1oB,EAAGk1oB,EAAQvooB,EAAGqnoB,EAAYv0I,EAAa+kG,EAASowC,GAElEx2c,EAAIm4a,YAwCN,SAASspB,GAAWzhc,EAAKtvM,EAASyL,EAAQ23nB,EAASxyH,GACjD,IAAOt2f,EAAWta,EAAXsa,QACA0+B,EAAgC1+B,EAAhC0+B,YAAam7kB,EAAmB75mB,EAAnB65mB,gBACdhyf,EAAgC,UAAxB7nH,EAAQ2qnB,YACjBjslB,IAGDmpF,GACFmtE,EAAIoyU,UAA0B,EAAd1oe,EAChBs2J,EAAIi3c,SAAWpyB,GAAmB,UAElC7kb,EAAIoyU,UAAY1oe,EAChBs2J,EAAIi3c,SAAWpyB,GAAmB,SAEhCn0nB,EAAQwmpB,aAjCd,SAA+Bl3c,EAAKtvM,EAASmiI,GAC3C,IAGIl2H,EAHGiF,EAA8ClR,EAA9CkR,EAAG2M,EAA2C7d,EAA3C6d,EAAG8yf,EAAwC3wgB,EAAxC2wgB,WAAY8zI,EAA4BzkpB,EAA5BykpB,YAAa+B,EAAexmpB,EAAfwmpB,YAChC91I,EAAc7qf,KAAKC,IAAI9lB,EAAQ0wgB,YAAc+zI,EAAa,GAC1Dh0I,EAAczwgB,EAAQywgB,YAAcg0I,EAO1C,IALItihB,GACFqihB,GAAQl1c,EAAKtvM,EAAS2wgB,EAAa0kG,GAErC/la,EAAIy3Z,YACJz3Z,EAAIkzT,IAAItxf,EAAG2M,EAAG4yf,EAAaE,EAAa0kG,EAAK1kG,GAAY,GACpD1kgB,EAAI,EAAGA,EAAIu6oB,IAAev6oB,EAC7BqjM,EAAIp1J,SAIN,IAFAo1J,EAAIy3Z,YACJz3Z,EAAIkzT,IAAItxf,EAAG2M,EAAG6yf,EAAaC,EAAYA,EAAa0kG,GAC/CppmB,EAAI,EAAGA,EAAIu6oB,IAAev6oB,EAC7BqjM,EAAIp1J,SAkBJusmB,CAAsBn3c,EAAKtvM,EAASmiI,GAElCA,GACFqihB,GAAQl1c,EAAKtvM,EAAS4wgB,GAExB40I,GAAQl2c,EAAKtvM,EAASyL,EAAQ23nB,EAASxyH,GACvCthU,EAAIp1J,UA7LNlzC,OAAOosmB,iBAAiBisC,GAAO,CAC7Br4b,SAAU,CACR7hJ,WAAAA,GACArjE,MAAOklN,IAETi4b,UAAW,CACT95kB,WAAAA,GACArjE,MAAOm9oB,IAET36B,UAAW,CACTn/iB,WAAAA,GACArjE,MAAOwinB,IAET/3N,SAAU,CACRpnV,WAAAA,GACArjE,MAAOyqZ,IAETvjR,QAAS,CACP7jE,WAAAA,GACArjE,MA/0BU,SAi1BZo9oB,SAAU,CACR/5kB,WAAAA,GACArjE,MAAOo9oB,IAET1pkB,SAAU,CACRrQ,WAAAA,GACArjE,MAAO,WACLyqZ,GAAS/qZ,IAAT,MAAA+qZ,GAAQ,WACRg4P,OAGJnuF,WAAY,CACVjxf,WAAAA,GACArjE,MAAO,WACLyqZ,GAAS7qZ,OAAT,MAAA6qZ,GAAQ,WACRg4P,aA2JAmC,GAAAA,SAAAA,iCACJ,WAAYtxB,GAAK,6BACf,gBACK96mB,aAAUhC,EACf,EAAKyqnB,mBAAgBzqnB,EACrB,EAAKq4f,gBAAar4f,EAClB,EAAKs4f,cAAWt4f,EAChB,EAAKm4f,iBAAcn4f,EACnB,EAAKo4f,iBAAcp4f,EACnB,EAAKmsoB,YAAc,EACnB,EAAK+B,YAAc,EACfpxB,GACFpunB,OAAOw4C,QAAP,UAAoB41kB,GAXP,wCAcjB,SAAQuxB,EAAQC,EAAQne,GACtB,IACA,EAA0BhyB,GADZv2mB,KAAKyqU,SAAS,CAAC,IAAK,KAAM89T,GACW,CAACv3nB,EAAGy1oB,EAAQ9ooB,EAAG+ooB,IAA3Dl1mB,EAAP,EAAOA,MAAO7L,EAAd,EAAcA,SACd,EAAwE3lC,KAAKyqU,SAAS,CACpF,aACA,WACA,cACA,cACA,iBACC89T,GANI93H,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,SAAUH,EAA7B,EAA6BA,YAAaC,EAA1C,EAA0CA,YAAaqyH,EAAvD,EAAuDA,cAOjD8jB,EAAU3mpB,KAAKoa,QAAQ8onB,QAAU,EAEjC0jB,EADiBjzC,EAAekvB,EAAenyH,EAAWD,IACxB0kG,GAAO+B,GAAc1lkB,EAAOi/d,EAAYC,GAC1Em2I,EAAepvC,GAAW9xkB,EAAU4qe,EAAco2I,EAASn2I,EAAcm2I,GAC/E,OAAQC,GAAiBC,gCAE3B,SAAete,GACb,MAA+DvooB,KAAKyqU,SAAS,CAC3E,IACA,IACA,aACA,WACA,cACA,cACA,iBACC89T,GARIv3nB,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EAAG8yf,EAAb,EAAaA,WAAYC,EAAzB,EAAyBA,SAAUH,EAAnC,EAAmCA,YAAaC,EAAhD,EAAgDA,YAShD,EAA0BxwgB,KAAKoa,QAAxB7O,EAAP,EAAOA,OACDu7oB,GAAar2I,EAAaC,GAAY,EACtCq2I,GAAcx2I,EAAcC,EAFlC,EAAe0yH,QAE2C33nB,GAAU,EACpE,MAAO,CACLyF,EAAGA,EAAI2U,KAAKivP,IAAIkyY,GAAaC,EAC7BppoB,EAAGA,EAAIgI,KAAKixf,IAAIkwI,GAAaC,kCAGjC,SAAgBxe,GACd,OAAOvooB,KAAK+ooB,eAAeR,uBAE7B,SAAKn5b,GACH,IAAOh1L,EAA0Bpa,KAA1Boa,QAASyonB,EAAiB7ioB,KAAjB6ioB,cACVt3nB,GAAU6O,EAAQ7O,QAAU,GAAK,EACjC23nB,GAAW9onB,EAAQ8onB,SAAW,GAAK,EAGzC,GAFAljoB,KAAKukpB,YAAuC,UAAxBnqoB,EAAQ2qnB,YAA2B,IAAO,EAC9D/koB,KAAKsmpB,YAAczjB,EAAgB1tB,EAAMxvlB,KAAKo1B,MAAM8nlB,EAAgB1tB,GAAO,IACrD,IAAlB0tB,GAAuB7ioB,KAAKuwgB,YAAc,GAAKvwgB,KAAKwwgB,YAAc,GAAtE,CAGAphU,EAAI9wK,OACJ,IAAI0onB,EAAe,EACnB,GAAIz7oB,EAAQ,CACVy7oB,EAAez7oB,EAAS,EACxB,IAAMu7oB,GAAa9mpB,KAAKywgB,WAAazwgB,KAAK0wgB,UAAY,EACtDthU,EAAItsE,UAAUn9G,KAAKivP,IAAIkyY,GAAaE,EAAcrhoB,KAAKixf,IAAIkwI,GAAaE,GACpEhnpB,KAAK6ioB,eAAiBluX,IACxBqyY,EAAez7oB,GAGnB6jM,EAAIS,UAAYz1L,EAAQipB,gBACxB+rK,EAAI23Z,YAAc3slB,EAAQ6+B,YAC1B,IAAMy3d,EAtIV,SAAiBthU,EAAKtvM,EAASyL,EAAQ23nB,GACrC,IAAOojB,EAA0CxmpB,EAA1CwmpB,YAAa71I,EAA6B3wgB,EAA7B2wgB,WAAYoyH,EAAiB/ioB,EAAjB+ioB,cAC5BnyH,EAAW5wgB,EAAQ4wgB,SACvB,GAAI41I,EAAa,CACfhB,GAAQl2c,EAAKtvM,EAASyL,EAAQ23nB,EAASzyH,EAAa0kG,GACpD,IAAK,IAAIppmB,EAAI,EAAGA,EAAIu6oB,IAAev6oB,EACjCqjM,EAAIlzE,OAED1yF,MAAMq5lB,KACTnyH,EAAWD,EAAaoyH,EAAgB1tB,EACpC0tB,EAAgB1tB,IAAQ,IAC1BzkG,GAAYykG,IAMlB,OAFAmwC,GAAQl2c,EAAKtvM,EAASyL,EAAQ23nB,EAASxyH,GACvCthU,EAAIlzE,OACGw0Y,EAqHYu2I,CAAQ73c,EAAKpvM,KAAMgnpB,EAAc9jB,GAClD2N,GAAWzhc,EAAKpvM,KAAMgnpB,EAAc9jB,EAASxyH,GAC7CthU,EAAIq3a,iBA3EF+/B,CAAmBlmlB,IA6FzB,SAASkiE,GAAS4sE,EAAKh1L,GAA0B,IAAjB6D,EAAiB,uDAAT7D,EACtCg1L,EAAI83c,QAAUvzC,EAAe11lB,EAAM61mB,eAAgB15mB,EAAQ05mB,gBAC3D1kb,EAAIoqc,YAAY7lC,EAAe11lB,EAAM81mB,WAAY35mB,EAAQ25mB,aACzD3kb,EAAIqqc,eAAiB9lC,EAAe11lB,EAAM+1mB,iBAAkB55mB,EAAQ45mB,kBACpE5kb,EAAIi3c,SAAW1yC,EAAe11lB,EAAMg2mB,gBAAiB75mB,EAAQ65mB,iBAC7D7kb,EAAIoyU,UAAYmyF,EAAe11lB,EAAM66B,YAAa1+B,EAAQ0+B,aAC1Ds2J,EAAI23Z,YAAc4M,EAAe11lB,EAAMg7B,YAAa7+B,EAAQ6+B,aAE9D,SAAS6tjB,GAAO13Z,EAAK9uF,EAAU15G,GAC7BwoM,EAAI03Z,OAAOlgmB,EAAOoK,EAAGpK,EAAO+W,GAW9B,SAASwpoB,GAASznM,EAAQgwD,GAAsB,IAAb3te,EAAa,uDAAJ,GACpCm3C,EAAQwmY,EAAOp/c,OACrB,EAA6DyhC,EAAtDlmB,MAAOuroB,OAAd,MAA4B,EAA5B,IAA6DrlnB,EAA9B3O,IAAKi0nB,OAApC,MAAgDnukB,EAAQ,EAAxD,EACcoukB,EAAiC53I,EAAxC7zf,MAA0B0roB,EAAc73I,EAAnBt8e,IACtBvX,EAAQ8J,KAAKC,IAAIwhoB,EAAaE,GAC9Bl0nB,EAAMzN,KAAKG,IAAIuhoB,EAAWE,GAC1BC,EAAUJ,EAAcE,GAAgBD,EAAYC,GAAgBF,EAAcG,GAAcF,EAAYE,EAClH,MAAO,CACLrukB,MAAAA,EACAr9D,MAAAA,EACA0gV,KAAMmzK,EAAQnzK,KACd03Q,KAAM7glB,EAAMvX,IAAU2roB,EAAUtukB,EAAQ9lD,EAAMvX,EAAQuX,EAAMvX,GAGhE,SAAS4roB,GAAYr4c,EAAKl0J,EAAMw0d,EAAS3te,GACvC,IAIIh2B,EAAGi7J,EAAOvgI,EAJPi5a,EAAmBxka,EAAnBwka,OAAQtlc,EAAW8gC,EAAX9gC,QACf,EAAmC+soB,GAASznM,EAAQgwD,EAAS3te,GAAtDm3C,EAAP,EAAOA,MAAOr9D,EAAd,EAAcA,MAAO0gV,EAArB,EAAqBA,KAAM03Q,EAA3B,EAA2BA,KACrByzC,EA1BR,SAAuBttoB,GACrB,OAAIA,EAAQutoB,QACH//B,GAELxtmB,EAAQ+0mB,SAA8C,aAAnC/0mB,EAAQ40mB,uBACtBlH,GAEFhhB,GAmBY8gD,CAAcxtoB,GACjC,EAA6B2nB,GAAU,GAAvC,IAAKka,KAAAA,OAAL,SAAkBloB,EAAlB,EAAkBA,QAElB,IAAKhoB,EAAI,EAAGA,GAAKkomB,IAAQlomB,GACvBi7J,EAAQ04S,GAAQ7jc,GAASkY,EAAUkglB,EAAOlomB,EAAIA,IAAMmtE,IAC1ClzB,OAEC/J,GACTmzJ,EAAI14C,OAAOsQ,EAAMh2J,EAAGg2J,EAAMrpJ,GAC1Bs+B,GAAO,GAEPyrmB,EAAWt4c,EAAK3oK,EAAMugI,EAAOjzI,EAAS3Z,EAAQutoB,SAEhDlhnB,EAAOugI,GAMT,OAJIu1L,GAEFmrT,EAAWt4c,EAAK3oK,EADhBugI,EAAQ04S,GAAQ7jc,GAASkY,EAAUkglB,EAAO,IAAM/6hB,GACnBnlD,EAAS3Z,EAAQutoB,WAEvCprT,EAEX,SAASsrT,GAAgBz4c,EAAKl0J,EAAMw0d,EAAS3te,GAC3C,IAKIh2B,EAAGi7J,EAAO8gf,EAAO5jB,EAAMF,EAAM+jB,EAL3BroM,EAASxka,EAAKwka,OACpB,EAA6BynM,GAASznM,EAAQgwD,EAAS3te,GAAhDm3C,EAAP,EAAOA,MAAOr9D,EAAd,EAAcA,MAAOo4lB,EAArB,EAAqBA,KACrB,EAA+BlykB,GAAU,GAAzC,IAAOka,KAAAA,OAAP,SAAoBloB,EAApB,EAAoBA,QAChBi0nB,EAAO,EACPC,EAAS,EAEP96e,EAAa,SAACtsK,GAAD,OAAYgb,GAASkY,EAAUkglB,EAAOpzmB,EAAQA,IAAUq4E,GACrEgvkB,EAAQ,WACRhkB,IAASF,IACX50b,EAAI03Z,OAAOkhD,EAAMhkB,GACjB50b,EAAI03Z,OAAOkhD,EAAM9jB,GACjB90b,EAAI03Z,OAAOkhD,EAAMD,KAOrB,IAJI9rmB,IACF+qH,EAAQ04S,EAAOvyS,EAAW,IAC1BiiC,EAAI14C,OAAOsQ,EAAMh2J,EAAGg2J,EAAMrpJ,IAEvB5R,EAAI,EAAGA,GAAKkomB,IAAQlomB,EAEvB,KADAi7J,EAAQ04S,EAAOvyS,EAAWphK,KAChBi6C,KAAV,CAGA,IAAMh1C,EAAIg2J,EAAMh2J,EACV2M,EAAIqpJ,EAAMrpJ,EACVwqoB,EAAa,EAAJn3oB,EACXm3oB,IAAWL,GACTnqoB,EAAIumnB,EACNA,EAAOvmnB,EACEA,EAAIqmnB,IACbA,EAAOrmnB,GAETqqoB,GAAQC,EAASD,EAAOh3oB,KAAOi3oB,IAE/BC,IACA94c,EAAI03Z,OAAO91lB,EAAG2M,GACdmqoB,EAAQK,EACRF,EAAS,EACT/jB,EAAOF,EAAOrmnB,GAEhBoqoB,EAAQpqoB,EAEVuqoB,IAEF,SAASE,GAAkBltmB,GACzB,IAAM8tE,EAAO9tE,EAAK9gC,QACZ25mB,EAAa/qgB,EAAK+qgB,YAAc/qgB,EAAK+qgB,WAAWzznB,OAEtD,OADqB46C,EAAKirlB,aAAejrlB,EAAKmrU,QAAUr9P,EAAKmmgB,SAA2C,aAAhCnmgB,EAAKgmgB,yBAA0ChmgB,EAAK2+hB,UAAY5zB,EACnH8zB,GAAkBJ,GA1HzCjB,GAAWv8oB,GAAK,MAChBu8oB,GAAW1/b,SAAW,CACpBi+a,YAAa,SACb9rlB,YAAa,OACbg7kB,qBAAiB77mB,EACjBusoB,aAAc,EACd7rmB,YAAa,EACbvtC,OAAQ,EACR23nB,QAAS,EACT1xlB,WAAOp5B,GAETouoB,GAAW5X,cAAgB,CACzBvrmB,gBAAiB,mBAgJnB,IAAMglnB,GAA8B,oBAAXC,OACzB,SAAS1nb,GAAKxxB,EAAKl0J,EAAMr/B,EAAOq9D,GAC1BmvkB,KAAcntmB,EAAK9gC,QAAQs1f,QAzBjC,SAA6BtgU,EAAKl0J,EAAMr/B,EAAOq9D,GAC7C,IAAI5rE,EAAO4tC,EAAK52B,MACXhX,IACHA,EAAO4tC,EAAK52B,MAAQ,IAAIgkoB,OACpBptmB,EAAK5tC,KAAKA,EAAMuO,EAAOq9D,IACzB5rE,EAAKi6mB,aAGT/kf,GAAS4sE,EAAKl0J,EAAK9gC,SACnBg1L,EAAIp1J,OAAO1sC,GAiBTi7oB,CAAoBn5c,EAAKl0J,EAAMr/B,EAAOq9D,GAf1C,SAA0Bk2H,EAAKl0J,EAAMr/B,EAAOq9D,GAC1C,IADiD,EAC1C+ob,EAAqB/md,EAArB+md,SAAU7nf,EAAW8gC,EAAX9gC,QACXouoB,EAAgBJ,GAAkBltmB,GAFS,UAG3B+md,GAH2B,IAGjD,2BAAgC,KAArByN,EAAqB,QAC9BltY,GAAS4sE,EAAKh1L,EAASs1f,EAAQzxf,OAC/BmxL,EAAIy3Z,YACA2hD,EAAcp5c,EAAKl0J,EAAMw0d,EAAS,CAAC7zf,MAAAA,EAAOuX,IAAKvX,EAAQq9D,EAAQ,KACjEk2H,EAAIm4a,YAENn4a,EAAIp1J,UAT2C,+BAiB/CyumB,CAAiBr5c,EAAKl0J,EAAMr/B,EAAOq9D,OAGjCwvkB,GAAAA,SAAAA,iCACJ,WAAYxzB,GAAK,6BACf,gBACK/uE,UAAW,EAChB,EAAK/riB,aAAUhC,EACf,EAAK+6mB,YAAS/6mB,EACd,EAAKiuW,WAAQjuW,EACb,EAAKsvnB,eAAYtvnB,EACjB,EAAKkM,WAAQlM,EACb,EAAKuwoB,aAAUvwoB,EACf,EAAKwwoB,eAAYxwoB,EACjB,EAAK+tnB,YAAa,EAClB,EAAK0iB,gBAAiB,EACtB,EAAKv1B,mBAAgBl7mB,EACjB88mB,GACFpunB,OAAOw4C,QAAP,UAAoB41kB,GAdP,oDAiBjB,SAAoB4H,EAAWhY,GAC7B,IAAM1qmB,EAAUpa,KAAKoa,QACrB,IAAKA,EAAQ+0mB,SAA8C,aAAnC/0mB,EAAQ40mB,0BAA2C50mB,EAAQutoB,UAAY3npB,KAAK6opB,eAAgB,CAClH,IAAMtsT,EAAOniV,EAAQ20mB,SAAW/unB,KAAKqmX,MAAQrmX,KAAK0noB,UAClD7Y,GAA2B7unB,KAAK2opB,QAASvuoB,EAAS0inB,EAAWvgS,EAAMuoR,GACnE9knB,KAAK6opB,gBAAiB,uBAS1B,WACE,OAAO7opB,KAAK2opB,aAPd,SAAWjpM,GACT1/c,KAAK2opB,QAAUjpM,SACR1/c,KAAK4opB,iBACL5opB,KAAKskB,MACZtkB,KAAK6opB,gBAAiB,wBAKxB,WACE,OAAO7opB,KAAK4opB,YAAc5opB,KAAK4opB,UD1kInC,SAA0B1tmB,EAAM+3kB,GAC9B,IAAMvzK,EAASxka,EAAKwka,OACdqvK,EAAW7zkB,EAAK9gC,QAAQ20mB,SACxB71iB,EAAQwmY,EAAOp/c,OACrB,IAAK44E,EACH,MAAO,GAET,IAAMqjR,IAASrhT,EAAKmrU,MACpB,EAxDF,SAAyBq5F,EAAQxmY,EAAOqjR,EAAMwyR,GAC5C,IAAIlzmB,EAAQ,EACRuX,EAAM8lD,EAAQ,EAClB,GAAIqjR,IAASwyR,EACX,KAAOlzmB,EAAQq9D,IAAUwmY,EAAO7jc,GAAOmqC,MACrCnqC,IAGJ,KAAOA,EAAQq9D,GAASwmY,EAAO7jc,GAAOmqC,MACpCnqC,IAMF,IAJAA,GAASq9D,EACLqjR,IACFnpU,GAAOvX,GAEFuX,EAAMvX,GAAS6jc,EAAOtsb,EAAM8lD,GAAOlzB,MACxC5yB,IAGF,MAAO,CAACvX,MAAAA,EAAOuX,IADfA,GAAO8lD,GAsCc4vkB,CAAgBppM,EAAQxmY,EAAOqjR,EAAMwyR,GAAnDlzmB,EAAP,EAAOA,MAAOuX,EAAd,EAAcA,IACd,OACS4/lB,GAAc93kB,GADN,IAAb6zkB,EACyB,CAAC,CAAClzmB,MAAAA,EAAOuX,IAAAA,EAAKmpU,KAAAA,IArC7C,SAAuBmjH,EAAQ7jc,EAAO+J,EAAK22U,GACzC,IAIInpU,EAJE8lD,EAAQwmY,EAAOp/c,OACfuO,EAAS,GACXytH,EAAOzgH,EACP4qB,EAAOi5a,EAAO7jc,GAElB,IAAKuX,EAAMvX,EAAQ,EAAGuX,GAAOxN,IAAOwN,EAAK,CACvC,IAAMq2O,EAAMi2M,EAAOtsb,EAAM8lD,GACrBuwL,EAAIzjN,MAAQyjN,EAAIlvP,KACbksB,EAAKuf,OACRu2S,GAAO,EACP1tV,EAAOjO,KAAK,CAACib,MAAOA,EAAQq9D,EAAO9lD,KAAMA,EAAM,GAAK8lD,EAAOqjR,KAAAA,IAC3D1gV,EAAQygH,EAAOmtI,EAAIlvP,KAAO6Y,EAAM,OAGlCkpG,EAAOlpG,EACHqT,EAAKuf,OACPnqC,EAAQuX,IAGZqT,EAAOgjO,EAKT,OAHa,OAATntI,GACFztH,EAAOjO,KAAK,CAACib,MAAOA,EAAQq9D,EAAO9lD,IAAKkpG,EAAOpjD,EAAOqjR,KAAAA,IAEjD1tV,EAgBoBk6oB,CAAcrpM,EAAQ7jc,EAFrCuX,EAAMvX,EAAQuX,EAAM8lD,EAAQ9lD,IACjB8nB,EAAKwslB,WAAuB,IAAV7rnB,GAAeuX,IAAQ8lD,EAAQ,GAHrBwmY,EAAQuzK,GCgkId+1B,CAAiBhppB,KAAMA,KAAKoa,QAAQs1f,+BAEjF,WACE,IAAMzN,EAAWjigB,KAAKiigB,SAChBviD,EAAS1/c,KAAK0/c,OACpB,OAAOuiD,EAAS3hgB,QAAUo/c,EAAOuiD,EAAS,GAAGpmf,2BAE/C,WACE,IAAMomf,EAAWjigB,KAAKiigB,SAChBviD,EAAS1/c,KAAK0/c,OACdxmY,EAAQ+ob,EAAS3hgB,OACvB,OAAO44E,GAASwmY,EAAOuiD,EAAS/ob,EAAQ,GAAG9lD,gCAE7C,SAAY4zI,EAAO/zI,GACjB,IAAM7Y,EAAUpa,KAAKoa,QACfxY,EAAQolK,EAAM/zI,GACdysb,EAAS1/c,KAAK0/c,OACduiD,EAAW8wH,GAAe/ynB,KAAM,CAACizB,SAAAA,EAAUpX,MAAOja,EAAOwxB,IAAKxxB,IACpE,GAAKqggB,EAAS3hgB,OAAd,CAGA,IAEIyL,EAAGkomB,EAFDplmB,EAAS,GACTo6oB,EAlGV,SAAiC7uoB,GAC/B,OAAIA,EAAQutoB,QACHt2B,GAELj3mB,EAAQ+0mB,SAA8C,aAAnC/0mB,EAAQ40mB,uBACtBsC,GAEFF,GA2FgB83B,CAAwB9uoB,GAE7C,IAAKrO,EAAI,EAAGkomB,EAAOhyG,EAAS3hgB,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CACjD,MAAqBk2f,EAASl2f,GAAvB8P,EAAP,EAAOA,MAAOuX,EAAd,EAAcA,IACRi4G,EAAKq0U,EAAO7jc,GACZyvH,EAAKo0U,EAAOtsb,GAClB,GAAIi4G,IAAOC,EAAX,CAIA,IACM69gB,EAAeF,EAAa59gB,EAAIC,EAD5B3lH,KAAK23B,KAAK17C,EAAQypI,EAAGp4G,KAAcq4G,EAAGr4G,GAAYo4G,EAAGp4G,KAClB7Y,EAAQutoB,SACrDwB,EAAal2nB,GAAY+zI,EAAM/zI,GAC/BpkB,EAAOjO,KAAKuopB,QANVt6oB,EAAOjO,KAAKyqI,GAQhB,OAAyB,IAAlBx8H,EAAOvO,OAAeuO,EAAO,GAAKA,8BAE3C,SAAYugM,EAAKsgU,EAAS3te,GAExB,OADsBqmnB,GAAkBpopB,KACjCwopB,CAAcp5c,EAAKpvM,KAAM0vgB,EAAS3te,uBAE3C,SAAKqtK,EAAKvzL,EAAOq9D,GACf,IAAM+ob,EAAWjigB,KAAKiigB,SAChBumJ,EAAgBJ,GAAkBpopB,MACpCu8V,EAAOv8V,KAAKqmX,MAChBxqW,EAAQA,GAAS,EACjBq9D,EAAQA,GAAUl5E,KAAK0/c,OAAOp/c,OAASub,EALjB,gBAMAomf,GANA,IAMtB,2BAAgC,CAC9B1lK,GAAQisT,EAAcp5c,EAAKpvM,KADG,QACY,CAAC6b,MAAAA,EAAOuX,IAAKvX,EAAQq9D,EAAQ,KAPnD,8BAStB,QAASqjR,sBAEX,SAAKntJ,EAAK0tb,EAAWjhnB,EAAOq9D,GAC1B,IAAM9+D,EAAUpa,KAAKoa,SAAW,IACjBpa,KAAK0/c,QAAU,IACnBp/c,QAAU8Z,EAAQ0+B,cAC3Bs2J,EAAI9wK,OACJsiM,GAAKxxB,EAAKpvM,KAAM6b,EAAOq9D,GACvBk2H,EAAIq3a,WAEFzmnB,KAAKmmjB,WACPnmjB,KAAK6opB,gBAAiB,EACtB7opB,KAAKskB,WAAQlM,SApGbswoB,CAAoBpolB,IA+H1B,SAAS8olB,GAAU5gpB,EAAI8wE,EAAKvlB,EAAMw0kB,GAChC,IAAMnunB,EAAU5R,EAAG4R,QACJxY,EAAS4G,EAAGiiU,SAAS,CAAC12Q,GAAOw0kB,GAApCx0kB,GACR,OAAQpuC,KAAK23B,IAAIg8B,EAAM13E,GAASwY,EAAQu6f,OAASv6f,EAAQivoB,UA1B3DX,GAAYz+oB,GAAK,OACjBy+oB,GAAY5hc,SAAW,CACrBgta,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBn7kB,YAAa,EACbs2kB,iBAAiB,EACjBJ,uBAAwB,UACxB9yf,MAAM,EACN6yf,UAAU,EACV44B,SAAS,EACTx4B,QAAS,GAEXu5B,GAAY9Z,cAAgB,CAC1BvrmB,gBAAiB,kBACjB4V,YAAa,eAEfyvmB,GAAYrkC,YAAc,CACxByB,aAAa,EACbC,WAAY,SAACv4mB,GAAD,MAAmB,eAATA,GAAkC,SAATA,QAQ3C87oB,GAAAA,SAAAA,iCACJ,WAAYp0B,GAAK,6BACf,gBACK96mB,aAAUhC,EACf,EAAK6zM,YAAS7zM,EACd,EAAK4tC,UAAO5tC,EACZ,EAAKmC,UAAOnC,EACR88mB,GACFpunB,OAAOw4C,QAAP,UAAoB41kB,GAPP,wCAUjB,SAAQ14a,EAAQC,EAAQ8rb,GACtB,IAAMnunB,EAAUpa,KAAKoa,QACrB,EAAepa,KAAKyqU,SAAS,CAAC,IAAK,KAAM89T,GAAlCv3nB,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EACV,OAASgI,KAAKg7C,IAAI67I,EAASxrM,EAAG,GAAK2U,KAAKg7C,IAAI87I,EAAS9+L,EAAG,GAAMgI,KAAKg7C,IAAIvmD,EAAQivoB,UAAYjvoB,EAAQu6f,OAAQ,2BAE7G,SAASn4T,EAAQ+rb,GACf,OAAO6gB,GAAUpppB,KAAMw8M,EAAQ,IAAK+rb,2BAEtC,SAAS9rb,EAAQ8rb,GACf,OAAO6gB,GAAUpppB,KAAMy8M,EAAQ,IAAK8rb,iCAEtC,SAAeA,GACb,MAAevooB,KAAKyqU,SAAS,CAAC,IAAK,KAAM89T,GACzC,MAAO,CAACv3nB,EADR,EAAOA,EACI2M,EADX,EAAUA,uBAGZ,SAAKvD,GAEH,IAAIu6f,GADJv6f,EAAUA,GAAWpa,KAAKoa,SAAW,IAChBu6f,QAAU,EAG/B,OAAgC,IAFhCA,EAAShvf,KAAKC,IAAI+uf,EAAQA,GAAUv6f,EAAQmvoB,aAAe,KACvC50I,GAAUv6f,EAAQ0+B,aAAe,wBAGvD,SAAKs2J,EAAKphK,GACR,IAAM5zB,EAAUpa,KAAKoa,QACjBpa,KAAKgmD,MAAQ5rC,EAAQu6f,OAAS,KAAQ8yG,GAAeznnB,KAAMguC,EAAMhuC,KAAKwY,KAAK4B,GAAW,KAG1Fg1L,EAAI23Z,YAAc3slB,EAAQ6+B,YAC1Bm2J,EAAIoyU,UAAYpngB,EAAQ0+B,YACxBs2J,EAAIS,UAAYz1L,EAAQipB,gBACxB4jlB,GAAU73a,EAAKh1L,EAASpa,KAAKgR,EAAGhR,KAAK2d,4BAEvC,WACE,IAAMvD,EAAUpa,KAAKoa,SAAW,GAChC,OAAOA,EAAQu6f,OAASv6f,EAAQivoB,gBA7C9BC,CAAqBhplB,IA+D3B,SAASkplB,GAAajlI,EAAKgkH,GACzB,IACI7vnB,EAAMqF,EAAOjF,EAAKkF,EAAQyroB,EAD9B,EAAoCllI,EAAI95M,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,UAAW89T,GAAjFv3nB,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EAAG+pH,EAAb,EAAaA,KAAMp2H,EAAnB,EAAmBA,MAAOC,EAA1B,EAA0BA,OAe1B,OAbIgzgB,EAAI11d,YACN46lB,EAAOl4oB,EAAS,EAChBmH,EAAOiN,KAAKG,IAAI9U,EAAG02H,GACnB3pH,EAAQ4H,KAAKC,IAAI5U,EAAG02H,GACpB5uH,EAAM6E,EAAI8roB,EACVzroB,EAASL,EAAI8roB,IAGb/woB,EAAO1H,GADPy4oB,EAAOn4oB,EAAQ,GAEfyM,EAAQ/M,EAAIy4oB,EACZ3woB,EAAM6M,KAAKG,IAAInI,EAAG+pH,GAClB1pH,EAAS2H,KAAKC,IAAIjI,EAAG+pH,IAEhB,CAAChvH,KAAAA,EAAMI,IAAAA,EAAKiF,MAAAA,EAAOC,OAAAA,GAE5B,SAAS0roB,GAAY1jmB,EAAMpkD,EAAOkkB,EAAKF,GACrC,OAAOogC,EAAO,EAAIwxjB,GAAY51mB,EAAOkkB,EAAKF,GA2B5C,SAAS+joB,GAAcplI,GACrB,IAAMvogB,EAASwtoB,GAAajlI,GACtBjzgB,EAAQ0K,EAAO+B,MAAQ/B,EAAOtD,KAC9BnH,EAASyK,EAAOgC,OAAShC,EAAOlD,IAChCuiC,EA7BR,SAA0Bkpe,EAAKqlI,EAAMC,GACnC,IAAMjopB,EAAQ2ihB,EAAInqgB,QAAQ0+B,YACpBkN,EAAOu+d,EAAIi7G,cACXvviB,EAAI25hB,GAAOhonB,GACjB,MAAO,CACLs0D,EAAGwzlB,GAAY1jmB,EAAKltC,IAAKm3E,EAAEn3E,IAAK,EAAG+woB,GACnCtjlB,EAAGmjlB,GAAY1jmB,EAAKjoC,MAAOkyE,EAAElyE,MAAO,EAAG6roB,GACvClkmB,EAAGgkmB,GAAY1jmB,EAAKhoC,OAAQiyE,EAAEjyE,OAAQ,EAAG6roB,GACzC35jB,EAAGw5jB,GAAY1jmB,EAAKttC,KAAMu3E,EAAEv3E,KAAM,EAAGkxoB,IAqBxBE,CAAiBvlI,EAAKjzgB,EAAQ,EAAGC,EAAS,GACnDojgB,EAnBR,SAA2B4P,EAAKqlI,EAAMC,GACpC,IAAOnqB,EAAsBn7G,EAAI95M,SAAS,CAAC,uBAApCi1T,mBACD99nB,EAAQ2ihB,EAAInqgB,QAAQuqoB,aACpB10jB,EAAI45hB,GAAcjonB,GAClBmopB,EAAOpkoB,KAAKG,IAAI8joB,EAAMC,GACtB7jmB,EAAOu+d,EAAIi7G,cACXwqB,EAAetqB,GAAsBv1a,EAASvoN,GACpD,MAAO,CACLwnnB,QAASsgC,IAAaM,GAAgBhkmB,EAAKltC,KAAOktC,EAAKttC,KAAMu3E,EAAEm5hB,QAAS,EAAG2gC,GAC3ExgC,SAAUmgC,IAAaM,GAAgBhkmB,EAAKltC,KAAOktC,EAAKjoC,MAAOkyE,EAAEs5hB,SAAU,EAAGwgC,GAC9E1gC,WAAYqgC,IAAaM,GAAgBhkmB,EAAKhoC,QAAUgoC,EAAKttC,KAAMu3E,EAAEo5hB,WAAY,EAAG0gC,GACpFzgC,YAAaogC,IAAaM,GAAgBhkmB,EAAKhoC,QAAUgoC,EAAKjoC,MAAOkyE,EAAEq5hB,YAAa,EAAGygC,IAQ1EE,CAAkB1lI,EAAKjzgB,EAAQ,EAAGC,EAAS,GAC1D,MAAO,CACL2wH,MAAO,CACLlxH,EAAGgL,EAAOtD,KACViF,EAAG3B,EAAOlD,IACV2wI,EAAGn4I,EACHk4I,EAAGj4I,EACHojgB,OAAAA,GAEF1yY,MAAO,CACLjxH,EAAGgL,EAAOtD,KAAO2iC,EAAO60C,EACxBvyE,EAAG3B,EAAOlD,IAAMuiC,EAAO6a,EACvBuzF,EAAGn4I,EAAQ+pC,EAAO60C,EAAI70C,EAAOkrB,EAC7BijF,EAAGj4I,EAAS8pC,EAAO6a,EAAI7a,EAAOqK,EAC9Bivd,OAAQ,CACNy0G,QAASzjmB,KAAKC,IAAI,EAAG+uf,EAAOy0G,QAAUzjmB,KAAKC,IAAIy1B,EAAO6a,EAAG7a,EAAO60C,IAChEq5hB,SAAU5jmB,KAAKC,IAAI,EAAG+uf,EAAO40G,SAAW5jmB,KAAKC,IAAIy1B,EAAO6a,EAAG7a,EAAOkrB,IAClE8ijB,WAAY1jmB,KAAKC,IAAI,EAAG+uf,EAAO00G,WAAa1jmB,KAAKC,IAAIy1B,EAAOqK,EAAGrK,EAAO60C,IACtEo5hB,YAAa3jmB,KAAKC,IAAI,EAAG+uf,EAAO20G,YAAc3jmB,KAAKC,IAAIy1B,EAAOqK,EAAGrK,EAAOkrB,OAKhF,SAAS8sM,GAAQkxQ,EAAKvzgB,EAAG2M,EAAG4qnB,GAC1B,IAAM2hB,EAAc,OAANl5oB,EACRm5oB,EAAc,OAANxsoB,EAER3B,EAASuogB,KADE2lI,GAASC,IACSX,GAAajlI,EAAKgkH,GACrD,OAAOvsnB,IACHkuoB,GAASzyC,GAAWzmmB,EAAGgL,EAAOtD,KAAMsD,EAAO+B,UAC3CosoB,GAAS1yC,GAAW95lB,EAAG3B,EAAOlD,IAAKkD,EAAOgC,SAKhD,SAASosoB,GAAkBh7c,EAAKn0L,GAC9Bm0L,EAAIn0L,KAAKA,EAAKjK,EAAGiK,EAAK0C,EAAG1C,EAAKwuI,EAAGxuI,EAAKuuI,GAExC,SAAS6ggB,GAAYpvoB,EAAM+5K,GAAsB,IAAds1d,EAAc,uDAAJ,GACrCt5oB,EAAIiK,EAAKjK,IAAMs5oB,EAAQt5oB,GAAKgkL,EAAS,EACrCr3K,EAAI1C,EAAK0C,IAAM2soB,EAAQ3soB,GAAKq3K,EAAS,EACrCvrC,GAAKxuI,EAAKjK,EAAIiK,EAAKwuI,IAAM6ggB,EAAQt5oB,EAAIs5oB,EAAQ7ggB,EAAIurC,EAAS,GAAKhkL,EAC/Dw4I,GAAKvuI,EAAK0C,EAAI1C,EAAKuuI,IAAM8ggB,EAAQ3soB,EAAI2soB,EAAQ9ggB,EAAIwrC,EAAS,GAAKr3K,EACrE,MAAO,CACL3M,EAAGiK,EAAKjK,EAAIA,EACZ2M,EAAG1C,EAAK0C,EAAIA,EACZ8rI,EAAGxuI,EAAKwuI,EAAIA,EACZD,EAAGvuI,EAAKuuI,EAAIA,EACZmrX,OAAQ15f,EAAK05f,QAlHjB20I,GAAar/oB,GAAK,QAClBq/oB,GAAaxic,SAAW,CACtBhuK,YAAa,EACbuwmB,UAAW,EACXrkB,iBAAkB,EAClBukB,YAAa,EACbniC,WAAY,SACZzyG,OAAQ,EACRv5N,SAAU,GAEZkuW,GAAa1a,cAAgB,CAC3BvrmB,gBAAiB,kBACjB4V,YAAa,mBAyGTsxmB,GAAAA,SAAAA,iCACJ,WAAYr1B,GAAK,6BACf,gBACK96mB,aAAUhC,EACf,EAAKy2C,gBAAaz2C,EAClB,EAAKsvH,UAAOtvH,EACZ,EAAK9G,WAAQ8G,EACb,EAAK7G,YAAS6G,EACd,EAAK2nnB,mBAAgB3nnB,EACjB88mB,GACFpunB,OAAOw4C,QAAP,UAAoB41kB,GATP,qCAYjB,SAAK9lb,GACH,IAjCeulU,EAiCRorH,EAA0D//nB,KAA1D+/nB,cAAP,EAAiE//nB,KAA3Coa,QAAU6+B,EAAhC,EAAgCA,YAAa5V,EAA7C,EAA6CA,gBAC7C,EAAuBsmnB,GAAc3ppB,MAA9BiiI,EAAP,EAAOA,MAAOC,EAAd,EAAcA,MACRsohB,GAnCS71I,EAmCezyY,EAAMyyY,QAlCxBy0G,SAAWz0G,EAAO40G,UAAY50G,EAAO00G,YAAc10G,EAAO20G,YAkCxBH,GAAqBihC,GACnEh7c,EAAI9wK,OACA4jG,EAAMunB,IAAMxnB,EAAMwnB,GAAKvnB,EAAMsnB,IAAMvnB,EAAMunB,IAC3C4lD,EAAIy3Z,YACJ2jD,EAAYp7c,EAAKi7c,GAAYnohB,EAAO69f,EAAe99f,IACnDmtE,EAAIke,OACJk9b,EAAYp7c,EAAKi7c,GAAYpohB,GAAQ89f,EAAe79f,IACpDktE,EAAIS,UAAY52J,EAChBm2J,EAAIlzE,KAAK,YAEXkzE,EAAIy3Z,YACJ2jD,EAAYp7c,EAAKi7c,GAAYpohB,EAAO89f,IACpC3wb,EAAIS,UAAYxsK,EAChB+rK,EAAIlzE,OACJkzE,EAAIq3a,iCAEN,SAAQjqa,EAAQC,EAAQ8rb,GACtB,OAAOl1X,GAAQrzQ,KAAMw8M,EAAQC,EAAQ8rb,2BAEvC,SAAS/rb,EAAQ+rb,GACf,OAAOl1X,GAAQrzQ,KAAMw8M,EAAQ,KAAM+rb,2BAErC,SAAS9rb,EAAQ8rb,GACf,OAAOl1X,GAAQrzQ,KAAM,KAAMy8M,EAAQ8rb,iCAErC,SAAeA,GACb,MAAiCvooB,KAAKyqU,SAAS,CAAC,IAAK,IAAK,OAAQ,cAAe89T,GAA1Ev3nB,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EAAG+pH,EAAb,EAAaA,KAAM74E,EAAnB,EAAmBA,WACnB,MAAO,CACL79C,EAAG69C,GAAc79C,EAAI02H,GAAQ,EAAI12H,EACjC2M,EAAGkxC,EAAalxC,GAAKA,EAAI+pH,GAAQ,2BAGrC,SAAS3zE,GACP,MAAgB,MAATA,EAAe/zD,KAAKsR,MAAQ,EAAItR,KAAKuR,OAAS,QAjDnDg5oB,CAAmBjqlB,IAoDzBiqlB,GAAWtgpB,GAAK,MAChBsgpB,GAAWzjc,SAAW,CACpB04a,cAAe,QACf1mlB,YAAa,EACb6rmB,aAAc,EACd5kB,cAAe,OACf3Y,gBAAYhvmB,GAEdmyoB,GAAW3b,cAAgB,CACzBvrmB,gBAAiB,kBACjB4V,YAAa,eAGf,IAAI4R,GAAwB/jD,OAAOqtM,OAAO,CAC1Cp4D,UAAW,KACXyqgB,WAAYA,GACZkC,YAAaA,GACbY,aAAcA,GACdiB,WAAYA,KAsGZ,SAASE,GAAsB7xoB,GAC7B,GAAIA,EAAQutnB,WAAY,CACtB,IAAMt4nB,EAAO+K,EAAQ89D,aACd99D,EAAQutnB,kBACRvtnB,EAAQ89D,MACf5vE,OAAOi+D,eAAensD,EAAS,OAAQ,CAAChX,MAAOiM,KAGnD,SAAS68oB,GAAmBlnI,GAC1BA,EAAM31gB,KAAK42mB,SAASxknB,SAAQ,SAAC2Y,GAC3B6xoB,GAAsB7xoB,MAmB1B,IAAI+xoB,GAAoB,CACtB1gpB,GAAI,aACJ68M,SAAU,CACRnvF,UAAW,UACXruF,SAAS,GAEXshnB,qBAAsB,SAACpnI,EAAOh9f,EAAMpM,GAClC,GAAKA,EAAQkvB,QAAb,CAIA,IAAMupK,EAAiB2wU,EAAMlygB,MAC7BkygB,EAAM31gB,KAAK42mB,SAASxknB,SAAQ,SAAC2Y,EAASw7lB,GACpC,IAAO19hB,EAAoB99D,EAApB89D,MAAOouiB,EAAalsmB,EAAbksmB,UACR/9hB,EAAOy8b,EAAM82G,eAAelmB,GAC5BvmmB,EAAO6oE,GAAS99D,EAAQ/K,KAC9B,GAAsD,MAAlDuC,GAAQ,CAAC00mB,EAAWthG,EAAMppgB,QAAQ0qmB,aAGpB,SAAd/9hB,EAAKpjE,KAAT,CAGA,IAAMknoB,EAAQrnI,EAAM6hG,OAAOt+hB,EAAK0yiB,SAChC,IAAmB,WAAfoxB,EAAMlnoB,MAAoC,SAAfknoB,EAAMlnoB,QAGjC6/f,EAAMppgB,QAAQ+qmB,QAAlB,CAGA,MA7CN,SAAmDp+hB,EAAM24X,GACvD,IAAMimL,EAAajmL,EAAOp/c,OACtBub,EAAQ,EAEL87mB,EAAU5wiB,EAAV4wiB,OACP,EAA2CA,EAAOwE,gBAA3Cr2mB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IAAKo4f,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,WAS7B,OARID,IACFnigB,EAAQ27lB,GAAY4S,GAAa1qK,EAAQi4K,EAAO5jkB,KAAMjuC,GAAK0oI,GAAI,EAAGm3e,EAAa,IAO1E,CAAC9pnB,MAAAA,EAAOq9D,MALX+kc,EACMu5F,GAAY4S,GAAa1qK,EAAQi4K,EAAO5jkB,KAAMnuC,GAAK6oI,GAAK,EAAG5yI,EAAO8pnB,GAAc9pnB,EAEhF8pnB,EAAa9pnB,GAiCEivoB,CAA0C/jkB,EAAMl5E,GAAhEgO,EAAL,EAAKA,MAAOq9D,EAAZ,EAAYA,MAEZ,GAAIA,IADc9+D,EAAQ2woB,WAAa,EAAIl4c,GAEzC43c,GAAsB7xoB,OADxB,CAkBA,IAAIoyoB,EACJ,OAfIn3H,EAAcn9c,KAChB99D,EAAQ89D,MAAQ7oE,SACT+K,EAAQ/K,KACf/G,OAAOi+D,eAAensD,EAAS,OAAQ,CACrCssD,cAAc,EACdD,YAAY,EACZplD,IAAK,WACH,OAAO7f,KAAKmmoB,YAEdnhkB,IAAK,SAAS83C,GACZ98G,KAAK02E,MAAQomC,MAKX1iG,EAAQu9G,WAChB,IAAK,OACHqzhB,EApLR,SAAwBn9oB,EAAMgO,EAAOq9D,EAAO25H,EAAgBz4L,GAC1D,IAAM6woB,EAAU7woB,EAAQ6woB,SAAWp4c,EACnC,GAAIo4c,GAAW/xkB,EACb,OAAOrrE,EAAKpI,MAAMoW,EAAOA,EAAQq9D,GAEnC,IAKIntE,EAAGm/oB,EAAcC,EAASn9mB,EAAMo9mB,EAL9BJ,EAAY,GACZK,GAAenykB,EAAQ,IAAM+xkB,EAAU,GACzCK,EAAe,EACbn3hB,EAAWt4G,EAAQq9D,EAAQ,EAC7BzzB,EAAI5pC,EAGR,IADAmvoB,EAAUM,KAAkBz9oB,EAAK43C,GAC5B15C,EAAI,EAAGA,EAAIk/oB,EAAU,EAAGl/oB,IAAK,CAChC,IAAIi8oB,EAAO,EACPuD,EAAO,EACPhhkB,OAAC,EACCihkB,EAAgB7loB,KAAKo1B,OAAOhvC,EAAI,GAAKs/oB,GAAe,EAAIxvoB,EACxD4voB,EAAc9loB,KAAKG,IAAIH,KAAKo1B,OAAOhvC,EAAI,GAAKs/oB,GAAe,EAAGnykB,GAASr9D,EACvE6voB,EAAiBD,EAAcD,EACrC,IAAKjhkB,EAAIihkB,EAAejhkB,EAAIkhkB,EAAalhkB,IACvCy9jB,GAAQn6oB,EAAK08E,GAAGv5E,EAChBu6oB,GAAQ19oB,EAAK08E,GAAG5sE,EAElBqqoB,GAAQ0D,EACRH,GAAQG,EACR,IAAMC,EAAYhmoB,KAAKo1B,MAAMhvC,EAAIs/oB,GAAe,EAAIxvoB,EAC9C+voB,EAAUjmoB,KAAKG,IAAIH,KAAKo1B,OAAOhvC,EAAI,GAAKs/oB,GAAe,EAAGnykB,GAASr9D,EACzE,EAAiChO,EAAK43C,GAA5BommB,EAAV,EAAO76oB,EAAe86oB,EAAtB,EAAmBnuoB,EAEnB,IADAwtoB,EAAUn9mB,GAAQ,EACbu8C,EAAIohkB,EAAWphkB,EAAIqhkB,EAASrhkB,KAC/Bv8C,EAAO,GAAMroB,KAAK23B,KACfuumB,EAAU7D,IAASn6oB,EAAK08E,GAAG5sE,EAAImuoB,IAC/BD,EAAUh+oB,EAAK08E,GAAGv5E,IAAMu6oB,EAAOO,KAEvBX,IACTA,EAAUn9mB,EACVk9mB,EAAer9oB,EAAK08E,GACpB6gkB,EAAQ7gkB,GAGZygkB,EAAUM,KAAkBJ,EAC5BzlmB,EAAI2lmB,EAGN,OADAJ,EAAUM,KAAkBz9oB,EAAKsmH,GAC1B62hB,EAwIWe,CAAel+oB,EAAMgO,EAAOq9D,EAAO25H,EAAgBz4L,GAC/D,MACF,IAAK,UACH4woB,EAzIR,SAA0Bn9oB,EAAMgO,EAAOq9D,EAAO25H,GAC5C,IAEI9mM,EAAGi7J,EAAOh2J,EAAG2M,EAAGmqoB,EAAOkE,EAAUC,EAAUtkpB,EAAYu8nB,EAAMF,EAF7DgkB,EAAO,EACPC,EAAS,EAEP+C,EAAY,GACZ72hB,EAAWt4G,EAAQq9D,EAAQ,EAC3BgzkB,EAAOr+oB,EAAKgO,GAAO7K,EAEnB0L,EADO7O,EAAKsmH,GAAUnjH,EACVk7oB,EAClB,IAAKngpB,EAAI8P,EAAO9P,EAAI8P,EAAQq9D,IAASntE,EAAG,CAEtCiF,IADAg2J,EAAQn5J,EAAK9B,IACFiF,EAAIk7oB,GAAQxvoB,EAAKm2L,EAC5Bl1L,EAAIqpJ,EAAMrpJ,EACV,IAAMwqoB,EAAa,EAAJn3oB,EACf,GAAIm3oB,IAAWL,EACTnqoB,EAAIumnB,GACNA,EAAOvmnB,EACPquoB,EAAWjgpB,GACF4R,EAAIqmnB,IACbA,EAAOrmnB,EACPsuoB,EAAWlgpB,GAEbi8oB,GAAQC,EAASD,EAAOhhf,EAAMh2J,KAAOi3oB,MAChC,CACL,IAAMpshB,EAAY9vH,EAAI,EACtB,IAAK8nhB,EAAcm4H,KAAcn4H,EAAco4H,GAAW,CACxD,IAAME,EAAqBxmoB,KAAKG,IAAIkmoB,EAAUC,GACxCG,EAAqBzmoB,KAAKC,IAAIomoB,EAAUC,GAC1CE,IAAuBxkpB,GAAcwkpB,IAAuBtwhB,GAC9DmvhB,EAAUpqpB,KAAV,OACKiN,EAAKs+oB,IADV,IAEEn7oB,EAAGg3oB,KAGHoE,IAAuBzkpB,GAAcykpB,IAAuBvwhB,GAC9DmvhB,EAAUpqpB,KAAV,OACKiN,EAAKu+oB,IADV,IAEEp7oB,EAAGg3oB,KAILj8oB,EAAI,GAAK8vH,IAAcl0H,GACzBqjpB,EAAUpqpB,KAAKiN,EAAKguH,IAEtBmvhB,EAAUpqpB,KAAKomK,GACf8gf,EAAQK,EACRF,EAAS,EACT/jB,EAAOF,EAAOrmnB,EACdquoB,EAAWC,EAAWtkpB,EAAaoE,GAGvC,OAAOi/oB,EAsFWqB,CAAiBx+oB,EAAMgO,EAAOq9D,EAAO25H,GACjD,MACF,QACE,MAAM,IAAIx9J,MAAJ,4CAA+Cj7B,EAAQu9G,UAAvD,MAER/+G,EAAQutnB,WAAa6kB,aApDrBN,GAAmBlnI,IAuDvBnia,QA/DsB,SA+Ddmia,GACNknI,GAAmBlnI,KAwBvB,SAAS8oI,GAAWpxmB,EAAMr6C,EAAOq4E,GAC/B,IAAMgjD,EAhBR,SAAyBhhF,GACvB,IAAM9gC,EAAU8gC,EAAK9gC,QACfmyoB,EAAanyoB,EAAQ8hH,KACvBA,EAAOy3e,EAAe44C,GAAcA,EAAW3lpB,OAAQ2lpB,GAI3D,YAHan0oB,IAAT8jH,IACFA,IAAS9hH,EAAQipB,kBAEN,IAAT64F,GAA2B,OAATA,KAGT,IAATA,EACK,SAEFA,GAGMswhB,CAAgBtxmB,GAC7B,GAAIivK,EAASjuF,GACX,OAAO1yF,MAAM0yF,EAAKt6H,QAAiBs6H,EAErC,IAAIt1H,EAAS+uC,WAAWumF,GACxB,OAAIu3e,EAAe7smB,IAAW+e,KAAKo1B,MAAMn0C,KAAYA,GACnC,MAAZs1H,EAAK,IAA0B,MAAZA,EAAK,KAC1Bt1H,EAAS/F,EAAQ+F,KAEfA,IAAW/F,GAAS+F,EAAS,GAAKA,GAAUsyE,IAGzCtyE,GAEF,CAAC,SAAU,QAAS,MAAO,QAAS,SAAST,QAAQ+1H,IAAS,GAAKA,MAwBtEuwhB,GAAAA,WACJ,WAAYzjiB,IAAM,eAChBhpH,KAAKgR,EAAIg4G,EAAKh4G,EACdhR,KAAK2d,EAAIqrG,EAAKrrG,EACd3d,KAAK20gB,OAAS3rZ,EAAK2rZ,iDAErB,SAAYvlU,EAAKpzL,EAAQgtG,GACvB,IAAOh4G,EAAgBhR,KAAhBgR,EAAG2M,EAAa3d,KAAb2d,EAAGg3f,EAAU30gB,KAAV20gB,OAGb,OAFA34f,EAASA,GAAU,CAACH,MAAO,EAAGuX,IAAK+hlB,GACnC/la,EAAIkzT,IAAItxf,EAAG2M,EAAGg3f,EAAQ34f,EAAOoX,IAAKpX,EAAOH,OAAO,IACxCmtG,EAAKhtG,kCAEf,SAAYgrJ,GACV,IAAOh2J,EAAgBhR,KAAhBgR,EAAG2M,EAAa3d,KAAb2d,EAAGg3f,EAAU30gB,KAAV20gB,OACPnje,EAAQw1H,EAAMx1H,MACpB,MAAO,CACLxgC,EAAGA,EAAI2U,KAAKivP,IAAIpjO,GAASmje,EACzBh3f,EAAGA,EAAIgI,KAAKixf,IAAIple,GAASmje,EACzBnje,MAAAA,SAlBAi7mB,GAoDN,SAASC,GAAgB/+hB,GAEvB,OADcA,EAAO2zG,OAAS,IACpBqma,yBAhCZ,SAAiCh6gB,GAC/B,IAMI5hH,EAAGuX,EAAQ1hB,EANR0/N,EAAe3zG,EAAf2zG,MAAOplG,EAAQvO,EAARuO,KACR9hH,EAAUknN,EAAMlnN,QAChB9Z,EAASghO,EAAMo6Z,YAAYp7nB,OAC3BsG,EAAS,GACTiV,EAAQzB,EAAQ2Z,QAAUutM,EAAM17M,IAAM07M,EAAMx7M,IAC5CsN,EAAMhZ,EAAQ2Z,QAAUutM,EAAMx7M,IAAMw7M,EAAM17M,IAWhD,GAREhkB,EADW,UAATs6H,EACMrgH,EACU,QAATqgH,EACD9oG,EACC+2L,EAASjuF,GACVA,EAAKt6H,MAEL0/N,EAAMq2a,eAEZv9nB,EAAQ6ogB,KAAKqkH,SAEf,OADAhknB,EAASg+M,EAAMqma,yBAAyB,EAAG9rnB,GACpC,IAAI4woB,GAAU,CACnBz7oB,EAAGsS,EAAOtS,EACV2M,EAAG2F,EAAO3F,EACVg3f,OAAQrzS,EAAM8la,8BAA8BxloB,KAGhD,IAAKmK,EAAI,EAAGA,EAAIzL,IAAUyL,EACxBnF,EAAOhG,KAAK0gO,EAAMqma,yBAAyB57nB,EAAGnK,IAEhD,OAAOgF,EAKE+lpB,CAAwBh/hB,GA7EnC,SAA+BA,GAC7B,IAEI9+D,EAFJ,EAA2B8+D,EAApB2zG,MAAAA,OAAP,MAAe,GAAf,EAAmBplG,EAAQvO,EAARuO,KACft1H,EAAS,KAWb,MATa,UAATs1H,EACFt1H,EAAS06N,EAAMtjN,OACG,QAATk+G,EACTt1H,EAAS06N,EAAMxoN,IACNqxM,EAASjuF,GAClBt1H,EAAS06N,EAAMw9Z,iBAAiB5igB,EAAKt6H,OAC5B0/N,EAAM8+Z,eACfx5nB,EAAS06N,EAAM8+Z,gBAEb3sB,EAAe7smB,GAEV,CACLoK,GAFF69C,EAAayyK,EAAM8rJ,gBAEDxmX,EAAS,KACzB+W,EAAGkxC,EAAa,KAAOjoD,GAGpB,KA2DAgmpB,CAAsBj/hB,GAE/B,SAASk/hB,GAAehxoB,EAAOuX,EAAKssb,GAClC,KAAMtsb,EAAMvX,EAAOuX,IAAO,CACxB,IAAM4zI,EAAQ04S,EAAOtsb,GACrB,IAAKoW,MAAMw9H,EAAMh2J,KAAOw4B,MAAMw9H,EAAMrpJ,GAClC,MAGJ,OAAOyV,EAiDT,SAAS05nB,GAAeptM,EAAQqtM,EAAaC,GAE3C,IADA,IAAMC,EAAY,GACT1ikB,EAAI,EAAGA,EAAIyikB,EAAW1spB,OAAQiqF,IAAK,CAC1C,IACA,EAA6B2ikB,GADhBF,EAAWzikB,GACqBwikB,EAAa,KAAnD/ilB,EAAP,EAAOA,MAAOsyD,EAAd,EAAcA,KAAM0qC,EAApB,EAAoBA,MACpB,MAAKA,GAAUh9F,GAASsyD,GAGxB,GAAItyD,EACFijlB,EAAU/vf,QAAQ8J,QAGlB,GADA04S,EAAO9+c,KAAKomK,IACP1qC,EACH,MAINojV,EAAO9+c,KAAP,MAAA8+c,EAAeutM,GAEjB,SAASC,GAAUhymB,EAAM6xmB,EAAa95nB,GACpC,IAAM+zI,EAAQ9rH,EAAKiymB,YAAYJ,EAAa95nB,GAC5C,IAAK+zI,EACH,MAAO,GAOT,IALA,IAAMomf,EAAapmf,EAAM/zI,GACnBgve,EAAW/md,EAAK+md,SAChBorJ,EAAanymB,EAAKwka,OACpB11Y,GAAQ,EACRsyD,GAAO,EACFvwH,EAAI,EAAGA,EAAIk2f,EAAS3hgB,OAAQyL,IAAK,CACxC,IAAM2jgB,EAAUzN,EAASl2f,GACnBuhpB,EAAaD,EAAW39I,EAAQ7zf,OAAOoX,GACvCy+G,EAAY27gB,EAAW39I,EAAQt8e,KAAKH,GAC1C,GAAIwklB,GAAW21C,EAAYE,EAAY57gB,GAAY,CACjD1nE,EAAQojlB,IAAeE,EACvBhxhB,EAAO8whB,IAAe17gB,EACtB,OAGJ,MAAO,CAAC1nE,MAAAA,EAAOsyD,KAAAA,EAAM0qC,MAAAA,GAEvB,SAAS52H,GAAUu9E,GACjB,IAAO61Z,EAAqB71Z,EAArB61Z,MAAOtnZ,EAAcvO,EAAduO,KAAMhhF,EAAQyyE,EAARzyE,KACpB,GAAIu4jB,EAAev3e,GACjB,OA1NJ,SAAwBsnZ,EAAO3ihB,GAC7B,IAAMkmF,EAAOy8b,EAAM82G,eAAez5nB,GAElC,OADgBkmF,GAAQy8b,EAAMs/G,iBAAiBjioB,GAC9BkmF,EAAKnuE,QAAU,KAuNvB20oB,CAAe/pI,EAAOtnZ,GAE/B,GAAa,UAATA,EACF,OA5EJ,SAAwBvO,GACtB,IAAO2zG,EAAsB3zG,EAAtB2zG,MAAOzgO,EAAe8sH,EAAf9sH,MAAOq6C,EAAQyyE,EAARzyE,KACfwka,EAAS,GACTuiD,EAAW/md,EAAK+md,SAChBurJ,EAAetymB,EAAKwka,OACpBstM,EAUR,SAAuB1rb,EAAOzgO,GAG5B,IAFA,IAAM4spB,EAAQ,GACRha,EAAQnya,EAAMi2Z,wBAAwB,QACnCxrnB,EAAI,EAAGA,EAAI0noB,EAAMnzoB,OAAQyL,IAAK,CACrC,IAAMg7E,EAAO0sjB,EAAM1noB,GACnB,GAAIg7E,EAAKlmF,QAAUA,EACjB,MAEGkmF,EAAKpyD,QACR84nB,EAAMvwf,QAAQn2E,EAAKnuE,SAGvB,OAAO60oB,EAtBYC,CAAcpsb,EAAOzgO,GACxCmspB,EAAWpspB,KAAK+spB,GAAmB,CAAC38oB,EAAG,KAAM2M,EAAG2jN,EAAMtjN,QAASk9B,IAC/D,IAAK,IAAInvC,EAAI,EAAGA,EAAIk2f,EAAS3hgB,OAAQyL,IAEnC,IADA,IAAM2jgB,EAAUzN,EAASl2f,GAChBw+E,EAAImlb,EAAQ7zf,MAAO0uE,GAAKmlb,EAAQt8e,IAAKm3D,IAC5CuikB,GAAeptM,EAAQ8tM,EAAajjkB,GAAIyikB,GAG5C,OAAO,IAAItE,GAAY,CAAChpM,OAAAA,EAAQtlc,QAAS,KA+DhCwzoB,CAAejgiB,GAExB,GAAa,UAATuO,EACF,OAAO,EAET,IAAMh3G,EAAWwnoB,GAAgB/+hB,GACjC,OAAIzoG,aAAoBunoB,GACfvnoB,EAEFyooB,GAAmBzooB,EAAUg2B,GAEtC,SAASyymB,GAAmBzooB,EAAUg2B,GACpC,IAAIwka,EAAS,GACTr5F,GAAQ,EAOZ,OANI7qS,EAAQt2D,IACVmhW,GAAQ,EACRq5F,EAASx6b,GAETw6b,EAhHJ,SAA4Bx6b,EAAUg2B,GACpC,MAA6Bh2B,GAAY,GAAzC,IAAOlU,EAAAA,OAAP,MAAW,KAAX,MAAiB2M,EAAAA,OAAjB,MAAqB,KAArB,EACM0voB,EAAanymB,EAAKwka,OAClBA,EAAS,GAaf,OAZAxka,EAAK+md,SAAShigB,SAAQ,YAAkB,IAAhB4b,EAAgB,EAAhBA,MAAOuX,EAAS,EAATA,IAC7BA,EAAMy5nB,GAAehxoB,EAAOuX,EAAKi6nB,GACjC,IAAMrjlB,EAAQqjlB,EAAWxxoB,GACnBygH,EAAO+whB,EAAWj6nB,GACd,OAANzV,GACF+hc,EAAO9+c,KAAK,CAACoQ,EAAGg5D,EAAMh5D,EAAG2M,EAAAA,IACzB+hc,EAAO9+c,KAAK,CAACoQ,EAAGsrH,EAAKtrH,EAAG2M,EAAAA,KACT,OAAN3M,IACT0uc,EAAO9+c,KAAK,CAACoQ,EAAAA,EAAG2M,EAAGqsD,EAAMrsD,IACzB+hc,EAAO9+c,KAAK,CAACoQ,EAAAA,EAAG2M,EAAG2+G,EAAK3+G,QAGrB+hc,EAgGImuM,CAAmB3ooB,EAAUg2B,GAEjCwka,EAAOp/c,OAAS,IAAIoopB,GAAY,CACrChpM,OAAAA,EACAtlc,QAAS,CAAC+0mB,QAAS,GACnB9oQ,MAAAA,EACAqhR,UAAWrhR,IACR,KAEP,SAASynS,GAActsH,EAAS3giB,EAAOktpB,GACrC,IAGInnpB,EAFAs1H,EADWsla,EAAQ3giB,GACLq7H,KACZz3D,EAAU,CAAC5jE,GAEjB,IAAKktpB,EACH,OAAO7xhB,EAET,MAAgB,IAATA,IAA6C,IAA3Bz3D,EAAQt+D,QAAQ+1H,IAAc,CACrD,IAAKu3e,EAAev3e,GAClB,OAAOA,EAGT,KADAt1H,EAAS46hB,EAAQtla,IAEf,OAAO,EAET,GAAIt1H,EAAOiC,QACT,OAAOqzH,EAETz3D,EAAQ7jE,KAAKs7H,GACbA,EAAOt1H,EAAOs1H,KAEhB,OAAO,EAET,SAASwggB,GAAMttb,EAAKxoM,EAAQonpB,GAC1B,IAAO/rJ,EAAoBr7f,EAApBq7f,SAAUviD,EAAU94c,EAAV84c,OACb11Y,GAAQ,EACRiklB,GAAW,EACf7+c,EAAIy3Z,YAJ6B,gBAKX5kG,GALW,IAKjC,2BAAgC,KAArByN,EAAqB,QACvB7zf,EAAc6zf,EAAd7zf,MAAOuX,EAAOs8e,EAAPt8e,IACRm6lB,EAAa7tK,EAAO7jc,GACpB2qnB,EAAY9mL,EAAOmtM,GAAehxoB,EAAOuX,EAAKssb,IAChD11Y,GACFolI,EAAI14C,OAAO62d,EAAWv8mB,EAAGu8mB,EAAW5vmB,GACpCqsD,GAAQ,IAERolI,EAAI03Z,OAAOymB,EAAWv8mB,EAAGg9oB,GACzB5+c,EAAI03Z,OAAOymB,EAAWv8mB,EAAGu8mB,EAAW5vmB,KAEtCswoB,IAAarnpB,EAAO6gpB,YAAYr4c,EAAKsgU,EAAS,CAACzzd,KAAMgymB,KAEnD7+c,EAAIm4a,YAEJn4a,EAAI03Z,OAAO0/B,EAAUx1nB,EAAGg9oB,IApBK,8BAuBjC5+c,EAAI03Z,OAAOlgmB,EAAOojE,QAAQh5D,EAAGg9oB,GAC7B5+c,EAAIm4a,YACJn4a,EAAIke,OAEN,SAASqsF,GAAU1mR,EAAU+2C,EAAOsyD,EAAMigO,GACxC,IAAIA,EAAJ,CAGA,IAAI1gV,EAAQmuD,EAAM/2C,GACdG,EAAMkpG,EAAKrpG,GAKf,MAJiB,UAAbA,IACFpX,EAAQo7lB,GAAgBp7lB,GACxBuX,EAAM6jlB,GAAgB7jlB,IAEjB,CAACH,SAAAA,EAAUpX,MAAAA,EAAOuX,IAAAA,IAE3B,SAAS86nB,GAASzomB,EAAGC,EAAG+gE,EAAM7sF,GAC5B,OAAI6rB,GAAKC,EACA9rB,EAAG6rB,EAAEghE,GAAO/gE,EAAE+gE,IAEhBhhE,EAAIA,EAAEghE,GAAQ/gE,EAAIA,EAAE+gE,GAAQ,EAwCrC,SAAS0niB,GAAW/+c,EAAKkyB,EAAOtlN,GAC9B,MAAsBslN,EAAMkiT,MAAMs5G,UAA3BhknB,EAAP,EAAOA,IAAKkF,EAAZ,EAAYA,OACZ,EAA+BhC,GAAU,GAAlCiX,EAAP,EAAOA,SAAUpX,EAAjB,EAAiBA,MAAOuX,EAAxB,EAAwBA,IACP,MAAbH,IACFm8K,EAAIy3Z,YACJz3Z,EAAIn0L,KAAKY,EAAO/C,EAAKsa,EAAMvX,EAAOmC,EAASlF,GAC3Cs2L,EAAIke,QAGR,SAAS8gc,GAAmBh/c,EAAKxoM,EAAQogK,EAAO/zI,GAC9C,IAAMo7nB,EAAoBznpB,EAAOumpB,YAAYnmf,EAAO/zI,GAChDo7nB,GACFj/c,EAAI03Z,OAAOunD,EAAkBr9oB,EAAGq9oB,EAAkB1woB,GAGtD,SAAS2woB,GAAMl/c,EAAK8lb,GAClB,IADuB,EAChBh6kB,EAAwCg6kB,EAAxCh6kB,KAAMt0C,EAAkCsunB,EAAlCtunB,OAAQqsB,EAA0BiimB,EAA1BjimB,SAAUmmB,EAAgB87kB,EAAhB97kB,MAAOkoL,EAAS4zZ,EAAT5zZ,MAChC2gS,EAvDR,SAAmB/md,EAAMt0C,EAAQqsB,GAC/B,IADyC,EACnCgve,EAAW/md,EAAK+md,SAChBviD,EAASxka,EAAKwka,OACd6uM,EAAU3npB,EAAO84c,OACjB12b,EAAQ,GAJ2B,UAKnBi5e,GALmB,IAKzC,2BAAgC,KAArByN,EAAqB,QACzB7zf,EAAc6zf,EAAd7zf,MAAOuX,EAAOs8e,EAAPt8e,IACZA,EAAMy5nB,GAAehxoB,EAAOuX,EAAKssb,GACjC,IAAM1jc,EAAS29R,GAAU1mR,EAAUysb,EAAO7jc,GAAQ6jc,EAAOtsb,GAAMs8e,EAAQnzK,MACvE,GAAK31V,EAAOq7f,SAAZ,CASA,IAb8B,EAaxBusJ,EAAiBz7B,GAAensnB,EAAQoV,GAbhB,UAcZwyoB,GAdY,IAc9B,2BAAkC,OAAvBC,EAAuB,QAC1BC,EAAY/0W,GAAU1mR,EAAUs7nB,EAAQE,EAAI5yoB,OAAQ0yoB,EAAQE,EAAIr7nB,KAAMq7nB,EAAIlyT,MAC1EoyT,EAAcn8B,GAAc9iH,EAAShwD,EAAQgvM,GAFnB,UAGPC,GAHO,IAGhC,2BAAsC,KAA3BC,EAA2B,QACpC5loB,EAAMpoB,KAAK,CACT+sH,OAAQihiB,EACRhopB,OAAQ6npB,EACR5yoB,OAAO,UACJoX,EAAWi7nB,GAASlyoB,EAAQ0yoB,EAAW,QAAS/ooB,KAAKC,MAExDwN,KAAK,UACFH,EAAWi7nB,GAASlyoB,EAAQ0yoB,EAAW,MAAO/ooB,KAAKG,SAX1B,gCAdJ,oCAK5BkD,EAAMpoB,KAAK,CACT+sH,OAAQ+hZ,EACR9ogB,OAAQoV,EACRH,MAAO6jc,EAAO7jc,GACduX,IAAKssb,EAAOtsb,MAduB,8BAoCzC,OAAOpK,EAmBU4/nB,CAAU1tmB,EAAMt0C,EAAQqsB,GAFlB,UAG8Bgve,GAH9B,IAGvB,2BAA+D,eAA3Crgc,EAA2C,EAAnD+rD,OAAqB8giB,EAA8B,EAAtC7npB,OAAaiV,EAAyB,EAAzBA,MAAOuX,EAAkB,EAAlBA,IAC3C,EAAgDwuC,EAAzC3jD,MAAP,gBAA0C,GAA1C,GAAeolB,gBAAAA,OAAf,MAAiC+V,EAAjC,EACMy1mB,GAAsB,IAAXjopB,EACjBwoM,EAAI9wK,OACJ8wK,EAAIS,UAAYxsK,EAChB8qnB,GAAW/+c,EAAKkyB,EAAOutb,GAAYl1W,GAAU1mR,EAAUpX,EAAOuX,IAC9Dg8K,EAAIy3Z,YACJ,IAAMonD,IAAa/ymB,EAAKusmB,YAAYr4c,EAAKxtI,GACrC26R,OAAI,EACR,GAAIsyT,EAAU,CACRZ,EACF7+c,EAAIm4a,YAEJ6mC,GAAmBh/c,EAAKxoM,EAAQwsB,EAAKH,GAEvC,IAAM67nB,IAAelopB,EAAO6gpB,YAAYr4c,EAAKq/c,EAAK,CAACxymB,KAAMgymB,EAAUl6nB,SAAS,KAC5EwoU,EAAO0xT,GAAYa,IAEjBV,GAAmBh/c,EAAKxoM,EAAQiV,EAAOoX,GAG3Cm8K,EAAIm4a,YACJn4a,EAAIlzE,KAAKqgO,EAAO,UAAY,WAC5BntJ,EAAIq3a,WA1BiB,+BA2CzB,SAASsoC,GAAS3/c,EAAKzhF,EAAQ3/E,GAC7B,IAAMpnC,EAASwpC,GAAUu9E,GAClBzyE,EAAqByyE,EAArBzyE,KAAMomL,EAAe3zG,EAAf2zG,MAAOvtK,EAAQ45D,EAAR55D,KACdi7lB,EAAW9zmB,EAAK9gC,QAChBmyoB,EAAayC,EAAS9yhB,KACtB9iF,EAAQ41mB,EAAS3rnB,gBACvB,EAAuCkpnB,GAAc,GAArD,IAAO0C,MAAAA,OAAP,MAAe71mB,EAAf,MAAsBq0mB,MAAAA,OAAtB,MAA8Br0mB,EAA9B,EACIxyC,GAAUs0C,EAAKwka,OAAOp/c,SACxBonnB,GAASt4a,EAAKphK,GAtBlB,SAAgBohK,EAAK8lb,GACnB,IAAOh6kB,EAA2Cg6kB,EAA3Ch6kB,KAAMt0C,EAAqCsunB,EAArCtunB,OAAQqopB,EAA6B/5B,EAA7B+5B,MAAOxB,EAAsBv4B,EAAtBu4B,MAAOz/mB,EAAeknlB,EAAflnlB,KAAMszL,EAAS4zZ,EAAT5zZ,MACnCruM,EAAWioB,EAAKmrU,MAAQ,QAAU6uQ,EAAInhkB,KAC5Cq7I,EAAI9wK,OACa,MAAbrL,GAAoBw6nB,IAAUwB,IAChCvyB,GAAMttb,EAAKxoM,EAAQonC,EAAKl1B,KACxBw1oB,GAAMl/c,EAAK,CAACl0J,KAAAA,EAAMt0C,OAAAA,EAAQwyC,MAAO61mB,EAAO3tb,MAAAA,EAAOruM,SAAAA,IAC/Cm8K,EAAIq3a,UACJr3a,EAAI9wK,OACJo+lB,GAAMttb,EAAKxoM,EAAQonC,EAAKhwB,SAE1BswoB,GAAMl/c,EAAK,CAACl0J,KAAAA,EAAMt0C,OAAAA,EAAQwyC,MAAOq0mB,EAAOnsb,MAAAA,EAAOruM,SAAAA,IAC/Cm8K,EAAIq3a,UAWFyoC,CAAO9/c,EAAK,CAACl0J,KAAAA,EAAMt0C,OAAAA,EAAQqopB,MAAAA,EAAOxB,MAAAA,EAAOz/mB,KAAAA,EAAMszL,MAAAA,EAAOvtK,KAAAA,IACtD4zjB,GAAWv4a,IAGf,IAAI+/c,GAAgB,CAClBllpB,GAAI,SACJmlpB,oBAFkB,SAEE5rI,EAAO6rI,EAAOj1oB,GAChC,IAEI2sE,EAAMh7E,EAAGmvC,EAAMyyE,EAFbz0C,GAASsqc,EAAM31gB,KAAK42mB,UAAY,IAAInknB,OACpCkhiB,EAAU,GAEhB,IAAKz1hB,EAAI,EAAGA,EAAImtE,IAASntE,EAGvB4hH,EAAS,MADTzyE,GADA6rC,EAAOy8b,EAAM82G,eAAevunB,IAChB6M,UAEAsiC,EAAK9gC,SAAW8gC,aAAgBwtmB,KAC1C/6hB,EAAS,CACP9kH,QAAS26gB,EAAMs/G,iBAAiB/2nB,GAChClL,MAAOkL,EACPmwH,KAAMowhB,GAAWpxmB,EAAMnvC,EAAGmtE,GAC1Bsqc,MAAAA,EACAzvd,KAAMgzB,EAAKmzB,WAAW9/F,QAAQ0qmB,UAC9BxjZ,MAAOv6I,EAAKswiB,OACZn8kB,KAAAA,IAGJ6rC,EAAKuokB,QAAU3hiB,EACf6za,EAAQ5giB,KAAK+sH,GAEf,IAAK5hH,EAAI,EAAGA,EAAImtE,IAASntE,GACvB4hH,EAAS6za,EAAQz1hB,MACc,IAAhB4hH,EAAOuO,OAGtBvO,EAAOuO,KAAO4xhB,GAActsH,EAASz1hB,EAAGqO,EAAQ2zoB,aAGpDwB,WAhCkB,SAgCP/rI,EAAO6rI,EAAOj1oB,GAIvB,IAHA,IAAMwmN,EAA4B,eAArBxmN,EAAQo1oB,SACf/4B,EAAWjzG,EAAM6kH,+BACjBr6lB,EAAOw1e,EAAMs5G,UACV/wnB,EAAI0qnB,EAASn2nB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CAC7C,IAAM4hH,EAAS8ogB,EAAS1qnB,GAAGujpB,QACtB3hiB,IAGLA,EAAOzyE,KAAKurlB,oBAAoBz4lB,EAAM2/E,EAAO55D,MACzC6sK,GACFmub,GAASvrI,EAAMp0U,IAAKzhF,EAAQ3/E,MAIlCyhnB,mBA/CkB,SA+CCjsI,EAAO6rI,EAAOj1oB,GAC/B,GAAyB,uBAArBA,EAAQo1oB,SAIZ,IADA,IAAM/4B,EAAWjzG,EAAM6kH,+BACdt8nB,EAAI0qnB,EAASn2nB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CAC7C,IAAM4hH,EAAS8ogB,EAAS1qnB,GAAGujpB,QACvB3hiB,GACFohiB,GAASvrI,EAAMp0U,IAAKzhF,EAAQ61Z,EAAMs5G,aAIxC4yB,kBA3DkB,SA2DAlsI,EAAOh9f,EAAMpM,GAC7B,IAAMuzG,EAASnnG,EAAKugE,KAAKuokB,QACpB3hiB,IAA0B,IAAhBA,EAAOuO,MAAuC,sBAArB9hH,EAAQo1oB,UAGhDT,GAASvrI,EAAMp0U,IAAKzhF,EAAQ61Z,EAAMs5G,YAEpCh2a,SAAU,CACRinc,WAAW,EACXyB,SAAU,sBAIRG,GAAa,SAACC,EAAWh1mB,GAC7B,MAAkDg1mB,EAA7CC,UAAAA,OAAL,MAAiBj1mB,EAAjB,IAAkDg1mB,EAAvBE,SAAAA,OAA3B,MAAsCl1mB,EAAtC,EAKA,OAJIg1mB,EAAUG,gBACZF,EAAYlqoB,KAAKG,IAAI+poB,EAAWj1mB,GAChCk1mB,EAAWnqoB,KAAKG,IAAIgqoB,EAAUl1mB,IAEzB,CACLk1mB,SAAAA,EACAD,UAAAA,EACAG,WAAYrqoB,KAAKC,IAAIg1B,EAAUi1mB,KAI7BI,GAAAA,SAAAA,iCACJ,WAAY3glB,GAAQ,6BAClB,gBACK4glB,QAAS,EACd,EAAKC,eAAiB,GACtB,EAAKC,aAAe,KACpB,EAAKC,cAAe,EACpB,EAAK7sI,MAAQl0c,EAAOk0c,MACpB,EAAKppgB,QAAUk1D,EAAOl1D,QACtB,EAAKg1L,IAAM9/H,EAAO8/H,IAClB,EAAKkhd,iBAAcl4oB,EACnB,EAAKm4oB,iBAAcn4oB,EACnB,EAAKo4oB,gBAAap4oB,EAClB,EAAKsN,eAAYtN,EACjB,EAAK4G,cAAW5G,EAChB,EAAKU,SAAMV,EACX,EAAK4F,YAAS5F,EACd,EAAKM,UAAON,EACZ,EAAK2F,WAAQ3F,EACb,EAAK7G,YAAS6G,EACd,EAAK9G,WAAQ8G,EACb,EAAKq6nB,cAAWr6nB,EAChB,EAAK+N,cAAW/N,EAChB,EAAKk8B,YAASl8B,EACd,EAAKgynB,cAAWhynB,EAvBE,uCAyBpB,SAAO4G,EAAU0G,EAAWwhC,GAC1BlnD,KAAKgf,SAAWA,EAChBhf,KAAK0lB,UAAYA,EACjB1lB,KAAKyyoB,SAAWvrlB,EAChBlnD,KAAKg0oB,gBACLh0oB,KAAKywpB,cACLzwpB,KAAKsnO,mCAEP,WACMtnO,KAAKotX,gBACPptX,KAAKsR,MAAQtR,KAAKgf,SAClBhf,KAAK0Y,KAAO1Y,KAAKyyoB,SAAS/5nB,KAC1B1Y,KAAK+d,MAAQ/d,KAAKsR,QAElBtR,KAAKuR,OAASvR,KAAK0lB,UACnB1lB,KAAK8Y,IAAM9Y,KAAKyyoB,SAAS35nB,IACzB9Y,KAAKge,OAAShe,KAAKuR,mCAGvB,WAAc,WACNq+oB,EAAY5vpB,KAAKoa,QAAQioB,QAAU,GACrCiunB,EAAc9hmB,EAASohmB,EAAUzqB,eAAgB,CAACnloB,KAAKwjhB,OAAQxjhB,OAAS,GACxE4vpB,EAAUhqpB,SACZ0qpB,EAAcA,EAAY1qpB,QAAO,SAAC1F,GAAD,OAAU0vpB,EAAUhqpB,OAAO1F,EAAM,EAAKsjhB,MAAM31gB,UAE3E+hpB,EAAUpqmB,OACZ8qmB,EAAcA,EAAY9qmB,MAAK,SAACC,EAAGC,GAAJ,OAAUkqmB,EAAUpqmB,KAAKC,EAAGC,EAAG,EAAK89d,MAAM31gB,UAEvE7N,KAAKoa,QAAQ2Z,SACfu8nB,EAAYv8nB,UAEd/zB,KAAKswpB,YAAcA,qBAErB,WACE,IAAOl2oB,EAAgBpa,KAAhBoa,QAASg1L,EAAOpvM,KAAPovM,IAChB,GAAKh1L,EAAQiF,QAAb,CAIA,IAKI/N,EAAOC,EALLq+oB,EAAYx1oB,EAAQioB,OACpBqunB,EAAY3mC,GAAO6lC,EAAU3id,MAC7BryJ,EAAW81mB,EAAUl4oB,KACrB+9nB,EAAcv2oB,KAAK2wpB,sBACzB,EAA+BhB,GAAWC,EAAWh1mB,GAA9Ck1mB,EAAP,EAAOA,SAAUE,EAAjB,EAAiBA,WAEjB5gd,EAAInC,KAAOyjd,EAAUrijB,OACjBruG,KAAKotX,gBACP97W,EAAQtR,KAAKgf,SACbzN,EAASvR,KAAK4wpB,SAASra,EAAa37lB,EAAUk1mB,EAAUE,GAAc,KAEtEz+oB,EAASvR,KAAK0lB,UACdpU,EAAQtR,KAAK6wpB,SAASta,EAAa37lB,EAAUk1mB,EAAUE,GAAc,IAEvEhwpB,KAAKsR,MAAQqU,KAAKG,IAAIxU,EAAO8I,EAAQ4E,UAAYhf,KAAKgf,UACtDhf,KAAKuR,OAASoU,KAAKG,IAAIvU,EAAQ6I,EAAQsL,WAAa1lB,KAAK0lB,gBAlBvD1lB,KAAKsR,MAAQtR,KAAKuR,OAAS,0BAoB/B,SAASgloB,EAAa37lB,EAAUk1mB,EAAUE,GACxC,IAAO5gd,EAA+CpvM,KAA/CovM,IAAKpwL,EAA0Chf,KAA1Cgf,SAA6BmP,EAAanuB,KAAhCoa,QAAUioB,OAASlU,QACnC2ioB,EAAW9wpB,KAAKmwpB,eAAiB,GACjCK,EAAaxwpB,KAAKwwpB,WAAa,CAAC,GAChC58mB,EAAao8mB,EAAa7hoB,EAC5B4ioB,EAAcxa,EAClBnnc,EAAIq5a,UAAY,OAChBr5a,EAAIs5a,aAAe,SACnB,IAAItjiB,GAAO,EACPtsE,GAAO86B,EAYX,OAXA5zC,KAAKswpB,YAAYrwpB,SAAQ,SAACmloB,EAAYr5nB,GACpC,IAAMqzc,EAAY0wM,EAAYl1mB,EAAW,EAAKw0J,EAAI+2a,YAAYif,EAAWzioB,MAAM2O,OACrE,IAANvF,GAAWykpB,EAAWA,EAAWlwpB,OAAS,GAAK8+c,EAAY,EAAIjxb,EAAUnP,KAC3E+xoB,GAAen9mB,EACf48mB,EAAWA,EAAWlwpB,QAAUyL,EAAI,EAAI,EAAI,IAAM,EAClD+M,GAAO86B,EACPwxC,KAEF0rkB,EAAS/kpB,GAAK,CAAC2M,KAAM,EAAGI,IAAAA,EAAKssE,IAAAA,EAAK9zE,MAAO8tc,EAAW7tc,OAAQy+oB,GAC5DQ,EAAWA,EAAWlwpB,OAAS,IAAM8+c,EAAYjxb,KAE5C4ioB,0BAET,SAASxa,EAAa37lB,EAAUk1mB,EAAUE,GACxC,IAAO5gd,EAAgDpvM,KAAhDovM,IAAK1pL,EAA2C1lB,KAA3C0lB,UAA8ByI,EAAanuB,KAAhCoa,QAAUioB,OAASlU,QACpC2ioB,EAAW9wpB,KAAKmwpB,eAAiB,GACjCI,EAAcvwpB,KAAKuwpB,YAAc,GACjCS,EAActroB,EAAY6wnB,EAC5B0a,EAAa9ioB,EACb+ioB,EAAkB,EAClBC,EAAmB,EACnBz4oB,EAAO,EACPk9E,EAAM,EAgBV,OAfA51F,KAAKswpB,YAAYrwpB,SAAQ,SAACmloB,EAAYr5nB,GACpC,IAAMqzc,EAAY0wM,EAAYl1mB,EAAW,EAAKw0J,EAAI+2a,YAAYif,EAAWzioB,MAAM2O,MAC3EvF,EAAI,GAAKolpB,EAAmBnB,EAAa,EAAI7hoB,EAAU6ioB,IACzDC,GAAcC,EAAkB/ioB,EAChCoioB,EAAY3vpB,KAAK,CAAC0Q,MAAO4/oB,EAAiB3/oB,OAAQ4/oB,IAClDz4oB,GAAQw4oB,EAAkB/ioB,EAC1BynE,IACAs7jB,EAAkBC,EAAmB,GAEvCL,EAAS/kpB,GAAK,CAAC2M,KAAAA,EAAMI,IAAKq4oB,EAAkBv7jB,IAAAA,EAAKtkF,MAAO8tc,EAAW7tc,OAAQy+oB,GAC3EkB,EAAkBvroB,KAAKC,IAAIsroB,EAAiB9xM,GAC5C+xM,GAAoBnB,EAAa7hoB,KAEnC8ioB,GAAcC,EACdX,EAAY3vpB,KAAK,CAAC0Q,MAAO4/oB,EAAiB3/oB,OAAQ4/oB,IAC3CF,gCAET,WACE,GAAKjxpB,KAAKoa,QAAQiF,QAAlB,CAGA,IAAMk3nB,EAAcv2oB,KAAK2wpB,sBACFG,EAAsD9wpB,KAAtEmwpB,eAAP,EAA6EnwpB,KAA5Coa,QAAUy/B,EAA3C,EAA2CA,MAAgB1rB,EAA3D,EAAkDkU,OAASlU,QACrDijoB,EAAYx/B,GADlB,EAAqE9omB,IAChC9oB,KAAK0Y,KAAM1Y,KAAKsR,OACrD,GAAItR,KAAKotX,eAAgB,CACvB,IADuB,EACnBhoS,EAAM,EACN1sE,EAAO86lB,EAAe35jB,EAAO75C,KAAK0Y,KAAOyV,EAASnuB,KAAK+d,MAAQ/d,KAAKwwpB,WAAWprkB,IAF5D,UAGF0rkB,GAHE,IAGvB,2BAA+B,KAApBO,EAAoB,QACzBjskB,IAAQiskB,EAAOjskB,MACjBA,EAAMiskB,EAAOjskB,IACb1sE,EAAO86lB,EAAe35jB,EAAO75C,KAAK0Y,KAAOyV,EAASnuB,KAAK+d,MAAQ/d,KAAKwwpB,WAAWprkB,KAEjFiskB,EAAOv4oB,KAAO9Y,KAAK8Y,IAAMy9nB,EAAcponB,EACvCkjoB,EAAO34oB,KAAO04oB,EAAUr/B,WAAWq/B,EAAUpgpB,EAAE0H,GAAO24oB,EAAO//oB,OAC7DoH,GAAQ24oB,EAAO//oB,MAAQ6c,GAVF,mCAYlB,CACL,IADK,EACDynE,EAAM,EACN98E,EAAM06lB,EAAe35jB,EAAO75C,KAAK8Y,IAAMy9nB,EAAcponB,EAASnuB,KAAKge,OAAShe,KAAKuwpB,YAAY36jB,GAAKrkF,QAFjG,UAGgBu/oB,GAHhB,IAGL,2BAA+B,KAApBO,EAAoB,QACzBA,EAAOz7jB,MAAQA,IACjBA,EAAMy7jB,EAAOz7jB,IACb98E,EAAM06lB,EAAe35jB,EAAO75C,KAAK8Y,IAAMy9nB,EAAcponB,EAASnuB,KAAKge,OAAShe,KAAKuwpB,YAAY36jB,GAAKrkF,SAEpG8/oB,EAAOv4oB,IAAMA,EACbu4oB,EAAO34oB,MAAQ1Y,KAAK0Y,KAAOyV,EAC3BkjoB,EAAO34oB,KAAO04oB,EAAUr/B,WAAWq/B,EAAUpgpB,EAAEqgpB,EAAO34oB,MAAO24oB,EAAO//oB,OACpEwH,GAAOu4oB,EAAO9/oB,OAAS4c,GAXpB,6DAeT,WACE,MAAiC,QAA1BnuB,KAAKoa,QAAQ+L,UAAgD,WAA1BnmB,KAAKoa,QAAQ+L,6BAEzD,WACE,GAAInmB,KAAKoa,QAAQiF,QAAS,CACxB,IAAM+vL,EAAMpvM,KAAKovM,IACjBs4a,GAASt4a,EAAKpvM,MACdA,KAAKsxpB,QACL3pC,GAAWv4a,yBAGf,WAAQ,IASFlhK,EATE,OACU86E,EAAsChpH,KAA/Coa,QAAem2oB,EAAgCvwpB,KAAhCuwpB,YAAaC,EAAmBxwpB,KAAnBwwpB,WAAYphd,EAAOpvM,KAAPovM,IACxCv1J,EAA4BmvE,EAA5BnvE,MAAe+1mB,EAAa5miB,EAArB3mF,OACR+Y,EAAe0rK,GAAS1tK,MACxBg4mB,EAAYx/B,GAAc5ogB,EAAKlgG,IAAK9oB,KAAK0Y,KAAM1Y,KAAKsR,OACpDo/oB,EAAY3mC,GAAO6lC,EAAU3id,MACrBskd,EAAsB3B,EAA7Bx2mB,MAAkBjrB,EAAWyhoB,EAAXzhoB,QACnBysB,EAAW81mB,EAAUl4oB,KACrBg5oB,EAAe52mB,EAAW,EAEhC56C,KAAKk6oB,YACL9qc,EAAIq5a,UAAY2oC,EAAU3oC,UAAU,QACpCr5a,EAAIs5a,aAAe,SACnBt5a,EAAIoyU,UAAY,GAChBpyU,EAAInC,KAAOyjd,EAAUrijB,OACrB,MAA0CshjB,GAAWC,EAAWh1mB,GAAzDk1mB,EAAP,EAAOA,SAAUD,EAAjB,EAAiBA,UAAWG,EAA5B,EAA4BA,WAqDtB5iS,EAAeptX,KAAKotX,eACpBmpR,EAAcv2oB,KAAK2wpB,sBAEvBzinB,EADEk/U,EACO,CACPp8W,EAAGwimB,EAAe35jB,EAAO75C,KAAK0Y,KAAOyV,EAASnuB,KAAK+d,MAAQyyoB,EAAW,IACtE7yoB,EAAG3d,KAAK8Y,IAAMqV,EAAUoonB,EACxBr7lB,KAAM,GAGC,CACPlqC,EAAGhR,KAAK0Y,KAAOyV,EACfxQ,EAAG61lB,EAAe35jB,EAAO75C,KAAK8Y,IAAMy9nB,EAAcponB,EAASnuB,KAAKge,OAASuyoB,EAAY,GAAGh/oB,QACxF2pC,KAAM,GAGVg3kB,GAAsBlynB,KAAKovM,IAAKpmF,EAAKyoiB,eACrC,IAAM79mB,EAAao8mB,EAAa7hoB,EAChCnuB,KAAKswpB,YAAYrwpB,SAAQ,SAACmloB,EAAYr5nB,GACpCqjM,EAAI23Z,YAAcq+B,EAAWmsB,WAAaA,EAC1Cnid,EAAIS,UAAYu1b,EAAWmsB,WAAaA,EACxC,IAAM5/I,EAAYviU,EAAI+2a,YAAYif,EAAWzioB,MAAM2O,MAC7Cm3mB,EAAY2oC,EAAU3oC,UAAU2c,EAAW3c,YAAc2c,EAAW3c,UAAYmnC,EAAUnnC,YAC1Fn3mB,EAAQw+oB,EAAW0B,EAAe7/I,EACpC3ggB,EAAIk9B,EAAOl9B,EACX2M,EAAIuwB,EAAOvwB,EACfyzoB,EAAUzmd,SAAS,EAAKr5L,OACpB87W,EACErhX,EAAI,GAAKiF,EAAIM,EAAQ6c,EAAU,EAAKpQ,QACtCJ,EAAIuwB,EAAOvwB,GAAKi2B,EAChB1F,EAAOgN,OACPlqC,EAAIk9B,EAAOl9B,EAAIwimB,EAAe35jB,EAAO,EAAKnhC,KAAOyV,EAAS,EAAKpQ,MAAQyyoB,EAAWtinB,EAAOgN,QAElFnvC,EAAI,GAAK4R,EAAIi2B,EAAa,EAAK51B,SACxChN,EAAIk9B,EAAOl9B,EAAIA,EAAIu/oB,EAAYrinB,EAAOgN,MAAM5pC,MAAQ6c,EACpD+f,EAAOgN,OACPv9B,EAAIuwB,EAAOvwB,EAAI61lB,EAAe35jB,EAAO,EAAK/gC,IAAMy9nB,EAAcponB,EAAS,EAAKnQ,OAASuyoB,EAAYrinB,EAAOgN,MAAM3pC,SAvF5F,SAASP,EAAG2M,EAAGynnB,GACnC,KAAI57lB,MAAMsmnB,IAAaA,GAAY,GAAKtmnB,MAAMqmnB,IAAcA,EAAY,GAAxE,CAGAzgd,EAAI9wK,OACJ,IAAMkjf,EAAYmyF,EAAeyxB,EAAW5jH,UAAW,GAQvD,GAPApyU,EAAIS,UAAY8ja,EAAeyxB,EAAWv1b,UAAWz0J,GACrDg0J,EAAI83c,QAAUvzC,EAAeyxB,EAAW8hB,QAAS,QACjD93c,EAAIqqc,eAAiB9lC,EAAeyxB,EAAWqU,eAAgB,GAC/Drqc,EAAIi3c,SAAW1yC,EAAeyxB,EAAWihB,SAAU,SACnDj3c,EAAIoyU,UAAYA,EAChBpyU,EAAI23Z,YAAc4M,EAAeyxB,EAAWr+B,YAAa3rjB,GACzDg0J,EAAIoqc,YAAY7lC,EAAeyxB,EAAWssB,SAAU,KAChD9B,EAAUG,cAAe,CAC3B,IAAM4B,EAAc,CAClBh9I,OAAQm7I,EAAWnqoB,KAAKisoB,MAAQ,EAChCxqC,WAAYge,EAAWhe,WACvBhsU,SAAUgqV,EAAWhqV,SACrBtiQ,YAAa0oe,GAET/lO,EAAU21W,EAAUt/B,MAAM9gnB,EAAG8+oB,EAAW,GAE9C7oC,GAAU73a,EAAKuid,EAAal2W,EADZ99R,EAAI6zoB,OAEf,CACL,IAAMK,EAAUl0oB,EAAIgI,KAAKC,KAAKg1B,EAAWi1mB,GAAa,EAAG,GACnDiC,EAAWV,EAAUr/B,WAAW/gnB,EAAG8+oB,GACnCnL,EAAe96B,GAAcub,EAAWuf,cAC9Cv1c,EAAIy3Z,YACA//lB,OAAO8S,OAAO+qoB,GAAcpioB,MAAK,SAAAskC,GAAC,OAAU,IAANA,KACxCsikB,GAAmB/5a,EAAK,CACtBp+L,EAAG8gpB,EACHn0oB,EAAGk0oB,EACHpogB,EAAGqmgB,EACHtmgB,EAAGqmgB,EACHl7I,OAAQgwI,IAGVv1c,EAAIn0L,KAAK62oB,EAAUD,EAAS/B,EAAUD,GAExCzgd,EAAIlzE,OACc,IAAdslZ,GACFpyU,EAAIp1J,SAGRo1J,EAAIq3a,WA8CJsrC,CADcX,EAAUpgpB,EAAEA,GACL2M,EAAGynnB,GACxBp0nB,EDrrPS,SAAC6oC,EAAOnhC,EAAMqF,EAAO+K,GAElC,OAAO+wB,KADO/wB,EAAM,OAAS,SACJ/K,EAAkB,WAAV87B,GAAsBnhC,EAAOqF,GAAS,EAAIrF,ECmrPnEs5oB,CAAOvpC,EAAWz3mB,EAAI8+oB,EAAW0B,EAAcpkS,EAAep8W,EAAIM,EAAQ,EAAKyM,MAAOirG,EAAKlgG,KA7ChF,SAAS9X,EAAG2M,EAAGynnB,GAC9BnoT,GAAW7tI,EAAKg2b,EAAWzioB,KAAMqO,EAAG2M,EAAKqyoB,EAAa,EAAIU,EAAW,CACnE/nC,cAAeyc,EAAWzwmB,OAC1B8zlB,UAAW2oC,EAAU3oC,UAAU2c,EAAW3c,aA2C5CF,CAAS6oC,EAAUpgpB,EAAEA,GAAI2M,EAAGynnB,GACxBh4Q,EACFl/U,EAAOl9B,GAAKM,EAAQ6c,EAEpB+f,EAAOvwB,GAAKi2B,KAGhBy+kB,GAAqBrynB,KAAKovM,IAAKpmF,EAAKyoiB,wCAEtC,WACE,IAAMzoiB,EAAOhpH,KAAKoa,QACZi8nB,EAAYrthB,EAAKp9F,MACjBqmoB,EAAYloC,GAAOssB,EAAUppc,MAC7Bild,EAAepoC,GAAUusB,EAAUlonB,SACzC,GAAKkonB,EAAUh3nB,QAAf,CAGA,IAKI1B,EALEyzoB,EAAYx/B,GAAc5ogB,EAAKlgG,IAAK9oB,KAAK0Y,KAAM1Y,KAAKsR,OACpD89L,EAAMpvM,KAAKovM,IACXjpL,EAAWkwnB,EAAUlwnB,SACrBqroB,EAAeS,EAAUz5oB,KAAO,EAChC25oB,EAA6BD,EAAap5oB,IAAM04oB,EAElD94oB,EAAO1Y,KAAK0Y,KACZsG,EAAWhf,KAAKsR,MACpB,GAAItR,KAAKotX,eACPpuW,EAAW2G,KAAKC,IAAL,MAAAD,MAAI,OAAQ3lB,KAAKwwpB,aAC5B7yoB,EAAI3d,KAAK8Y,IAAMq5oB,EACfz5oB,EAAO86lB,EAAexqf,EAAKnvE,MAAOnhC,EAAM1Y,KAAK+d,MAAQiB,OAChD,CACL,IAAM0G,EAAY1lB,KAAKuwpB,YAAY7mpB,QAAO,SAACC,EAAK6O,GAAN,OAAemN,KAAKC,IAAIjc,EAAK6O,EAAKjH,UAAS,GACrFoM,EAAIw0oB,EAA6B3+C,EAAexqf,EAAKnvE,MAAO75C,KAAK8Y,IAAK9Y,KAAKge,OAAS0H,EAAYsjG,EAAK3mF,OAAOlU,QAAUnuB,KAAK2wpB,uBAE7H,IAAM3/oB,EAAIwimB,EAAertlB,EAAUzN,EAAMA,EAAOsG,GAChDowL,EAAIq5a,UAAY2oC,EAAU3oC,UAAUlV,EAAmBptlB,IACvDipL,EAAIs5a,aAAe,SACnBt5a,EAAI23Z,YAAcsvC,EAAUj9lB,MAC5Bg2J,EAAIS,UAAYwmc,EAAUj9lB,MAC1Bg2J,EAAInC,KAAOgld,EAAU5jjB,OACrB4uO,GAAW7tI,EAAKinc,EAAU1zoB,KAAMqO,EAAG2M,EAAGs0oB,uCAExC,WACE,IAAM5b,EAAYr2oB,KAAKoa,QAAQwR,MACzBqmoB,EAAYloC,GAAOssB,EAAUppc,MAC7Bild,EAAepoC,GAAUusB,EAAUlonB,SACzC,OAAOkonB,EAAUh3nB,QAAU4yoB,EAAUr+mB,WAAas+mB,EAAa3gpB,OAAS,kCAE1E,SAAiBP,EAAG2M,GAClB,IAAI5R,EAAGqmpB,EAAQ70E,EACf,GAAIk6B,GAAWzmmB,EAAGhR,KAAK0Y,KAAM1Y,KAAK+d,QAC7B05lB,GAAW95lB,EAAG3d,KAAK8Y,IAAK9Y,KAAKge,QAEhC,IADAu/jB,EAAKv9kB,KAAKmwpB,eACLpkpB,EAAI,EAAGA,EAAIwxkB,EAAGj9kB,SAAUyL,EAE3B,GAAI0rmB,GAAWzmmB,GADfohpB,EAAS70E,EAAGxxkB,IACa2M,KAAM05oB,EAAO15oB,KAAO05oB,EAAO9gpB,QAC/CmmmB,GAAW95lB,EAAGy0oB,EAAOt5oB,IAAKs5oB,EAAOt5oB,IAAMs5oB,EAAO7gpB,QACjD,OAAOvR,KAAKswpB,YAAYvkpB,GAI9B,OAAO,gCAET,SAAYvL,GACV,IAAMwoH,EAAOhpH,KAAKoa,QAClB,GAmBJ,SAAoBuJ,EAAMqlG,GACxB,GAAa,cAATrlG,IAAyBqlG,EAAKk8f,SAAWl8f,EAAKqpiB,SAChD,OAAO,EAET,GAAIrpiB,EAAKhiD,UAAqB,UAATrjD,GAA6B,YAATA,GACvC,OAAO,EAET,OAAO,EA1BA2uoB,CAAW9xpB,EAAEmjB,KAAMqlG,GAAxB,CAGA,IAjWgBvjE,EAAGC,EAiWb6smB,EAAcvypB,KAAKwypB,iBAAiBhypB,EAAEwQ,EAAGxQ,EAAEmd,GACjD,GAAe,cAAXnd,EAAEmjB,KAAsB,CAC1B,IAAM28F,EAAWtgH,KAAKowpB,aAChBqC,GApWW/smB,EAoWqB6smB,EApWT,QAAf9smB,EAoWc66D,IApWe,OAAN56D,GAAcD,EAAE2ujB,eAAiB1ujB,EAAE0ujB,cAAgB3ujB,EAAE5kD,QAAU6kD,EAAE7kD,OAqWlGy/G,IAAamyiB,GACfjkmB,EAASw6D,EAAKqpiB,QAAS,CAAC7xpB,EAAG8/G,EAAUtgH,MAAOA,MAE9CA,KAAKowpB,aAAemC,EAChBA,IAAgBE,GAClBjkmB,EAASw6D,EAAKk8f,QAAS,CAAC1knB,EAAG+xpB,EAAavypB,MAAOA,WAExCuypB,GACT/jmB,EAASw6D,EAAKhiD,QAAS,CAACxmE,EAAG+xpB,EAAavypB,MAAOA,aA5W/CiwpB,CAAe3vlB,IAyXrB,IAAIoylB,GAAgB,CAClBzopB,GAAI,SACJ4hC,SAAUoknB,GACVp0oB,MAHkB,SAGZ2ngB,EAAO6rI,EAAOj1oB,GAClB,IAAMumgB,EAAS6C,EAAM7C,OAAS,IAAIsvI,GAAO,CAAC7gd,IAAKo0U,EAAMp0U,IAAKh1L,QAAAA,EAASopgB,MAAAA,IACnEsmH,GAAkBtmH,EAAO7C,EAAQvmgB,GACjC0vnB,GAAetmH,EAAO7C,IAExBpmgB,KARkB,SAQbipgB,GACHsmH,GAAkBtmH,EAAOA,EAAM7C,eACxB6C,EAAM7C,QAEfkzH,aAZkB,SAYLrwH,EAAO6rI,EAAOj1oB,GACzB,IAAMumgB,EAAS6C,EAAM7C,OACrBmpH,GAAkBtmH,EAAO7C,EAAQvmgB,GACjCumgB,EAAOvmgB,QAAUA,GAEnB86nB,YAjBkB,SAiBN1xH,GACV,IAAM7C,EAAS6C,EAAM7C,OACrBA,EAAO8vI,cACP9vI,EAAOgyI,kBAETC,WAtBkB,SAsBPpvI,EAAOh9f,GACXA,EAAKo9J,QACR4/V,EAAM7C,OAAOkyI,YAAYrsoB,EAAKhM,QAGlCssM,SAAU,CACRznM,SAAS,EACT8G,SAAU,MACV0zB,MAAO,SACPuwlB,UAAU,EACVr2mB,SAAS,EACTugB,OAAQ,IACR0yB,QAPQ,SAOAxmE,EAAG4koB,EAAYzkH,GACrB,IAAM9/gB,EAAQukoB,EAAWhxB,aACnB3zB,EAAK9/D,EAAO6C,MACdi9D,EAAGqiD,iBAAiBjioB,IACtB4/kB,EAAGv2gB,KAAKrpE,GACRukoB,EAAWzwmB,QAAS,IAEpB8rjB,EAAGj/hB,KAAK3gD,GACRukoB,EAAWzwmB,QAAS,IAGxBuwlB,QAAS,KACTmtC,QAAS,KACThwnB,OAAQ,CACN+W,MAAO,SAACg2J,GAAD,OAASA,EAAIo0U,MAAMppgB,QAAQg/B,OAClC02mB,SAAU,GACV3hoB,QAAS,GACTg3mB,eAJM,SAIS3hH,GACb,IAAMihG,EAAWjhG,EAAM31gB,KAAK42mB,SAC5B,EAAgEjhG,EAAM7C,OAAOvmgB,QAAtEioB,OAAS0tnB,EAAhB,EAAgBA,cAAe3oC,EAA/B,EAA+BA,WAAYqB,EAA3C,EAA2CA,UAAWrvkB,EAAtD,EAAsDA,MACtD,OAAOoqe,EAAMkzG,yBAAyBxwnB,KAAI,SAAC6gF,GACzC,IAAM9oE,EAAQ8oE,EAAKmzB,WAAWi3gB,SAAS4+B,EAAgB,OAAI33oB,GACrD0gC,EAAcgxkB,GAAU7rmB,EAAM66B,aACpC,MAAO,CACLn2C,KAAM8hnB,EAAS19hB,EAAKlmF,OAAOwiJ,MAC3BwsD,UAAW5xL,EAAMolB,gBACjBkunB,UAAWn4mB,EACXzkB,QAASoyD,EAAKl+E,QACdq+oB,QAASjpoB,EAAM61mB,eACf49B,SAAUzzoB,EAAM81mB,WAChB0lB,eAAgBx7nB,EAAM+1mB,iBACtBqyB,SAAUpooB,EAAMg2mB,gBAChBzyG,WAAY1oe,EAAYxnC,MAAQwnC,EAAYvnC,QAAU,EACtDw1lB,YAAa9olB,EAAMg7B,YACnBmukB,WAAYA,GAAcnpmB,EAAMmpmB,WAChChsU,SAAUn9R,EAAMm9R,SAChBqtU,UAAWA,GAAaxqmB,EAAMwqmB,UAC9Bk8B,aAAc,EACdvwC,aAAcrthB,EAAKlmF,SAEpBb,QAGP4rB,MAAO,CACLwtB,MAAO,SAACg2J,GAAD,OAASA,EAAIo0U,MAAMppgB,QAAQg/B,OAClC/5B,SAAS,EACT8G,SAAU,SACVxjB,KAAM,KAGV0hnB,YAAa,CACXyB,YAAa,SAACt4mB,GAAD,OAAWA,EAAKkuH,WAAW,OACxCr5F,OAAQ,CACNyjlB,YAAa,SAACt4mB,GAAD,OAAW,CAAC,iBAAkB,SAAU,QAAQsuH,SAAStuH,OAKtEslpB,GAAAA,SAAAA,iCACJ,WAAYxjlB,GAAQ,6BAClB,gBACKk0c,MAAQl0c,EAAOk0c,MACpB,EAAKppgB,QAAUk1D,EAAOl1D,QACtB,EAAKg1L,IAAM9/H,EAAO8/H,IAClB,EAAK2jd,cAAW36oB,EAChB,EAAKU,SAAMV,EACX,EAAK4F,YAAS5F,EACd,EAAKM,UAAON,EACZ,EAAK2F,WAAQ3F,EACb,EAAK9G,WAAQ8G,EACb,EAAK7G,YAAS6G,EACd,EAAK+N,cAAW/N,EAChB,EAAKk8B,YAASl8B,EACd,EAAKgynB,cAAWhynB,EAdE,uCAgBpB,SAAO4G,EAAU0G,GACf,IAAMsjG,EAAOhpH,KAAKoa,QAGlB,GAFApa,KAAK0Y,KAAO,EACZ1Y,KAAK8Y,IAAM,EACNkwG,EAAK3pG,QAAV,CAIArf,KAAKsR,MAAQtR,KAAK+d,MAAQiB,EAC1Bhf,KAAKuR,OAASvR,KAAKge,OAAS0H,EAC5B,IAAM+vL,EAAYj6H,EAAQwtC,EAAKrmH,MAAQqmH,EAAKrmH,KAAKrC,OAAS,EAC1DN,KAAK+ypB,SAAWjpC,GAAU9ggB,EAAK76F,SAC/B,IAAM6koB,EAAWv9c,EAAYs0a,GAAO/ggB,EAAKikF,MAAMr5J,WAAa5zC,KAAK+ypB,SAASxhpB,OACtEvR,KAAKotX,eACPptX,KAAKuR,OAASyhpB,EAEdhzpB,KAAKsR,MAAQ0hpB,OAXbhzpB,KAAKsR,MAAQtR,KAAKuR,OAASvR,KAAK+d,MAAQ/d,KAAKge,OAAS,8BAc1D,WACE,IAAMs7D,EAAMt5E,KAAKoa,QAAQ+L,SACzB,MAAe,QAARmzD,GAAyB,WAARA,2BAE1B,SAAU/tE,GACR,IAGIyT,EAAU66nB,EAAQC,EAHfhhoB,EAAqC9Y,KAArC8Y,IAAKJ,EAAgC1Y,KAAhC0Y,KAAMsF,EAA0Bhe,KAA1Bge,OAAQD,EAAkB/d,KAAlB+d,MAAO3D,EAAWpa,KAAXoa,QAC3By/B,EAAQz/B,EAAQy/B,MAClBuhQ,EAAW,EAkBf,OAhBIp7S,KAAKotX,gBACPysR,EAASrmC,EAAe35jB,EAAOnhC,EAAMqF,GACrC+7nB,EAAShhoB,EAAMvN,EACfyT,EAAWjB,EAAQrF,IAEM,SAArB0B,EAAQ+L,UACV0znB,EAASnhoB,EAAOnN,EAChBuuoB,EAAStmC,EAAe35jB,EAAO77B,EAAQlF,GACvCsiS,GAAiB,GAANzmC,IAEXklY,EAAS97nB,EAAQxS,EACjBuuoB,EAAStmC,EAAe35jB,EAAO/gC,EAAKkF,GACpCo9R,EAAgB,GAALzmC,GAEb31P,EAAWhB,EAASlF,GAEf,CAAC+goB,OAAAA,EAAQC,OAAAA,EAAQ96nB,SAAAA,EAAUo8R,SAAAA,uBAEpC,WACE,IAAMhsG,EAAMpvM,KAAKovM,IACXpmF,EAAOhpH,KAAKoa,QAClB,GAAK4uG,EAAK3pG,QAAV,CAGA,IAAM4zoB,EAAWlpC,GAAO/ggB,EAAKikF,MAEvB1hM,EADa0npB,EAASr/mB,WACA,EAAI5zC,KAAK+ypB,SAASj6oB,IAC9C,EAA6C9Y,KAAKkzpB,UAAU3npB,GAArDsuoB,EAAP,EAAOA,OAAQC,EAAf,EAAeA,OAAQ96nB,EAAvB,EAAuBA,SAAUo8R,EAAjC,EAAiCA,SACjC6hC,GAAW7tI,EAAKpmF,EAAKrmH,KAAM,EAAG,EAAGswpB,EAAU,CACzC75mB,MAAO4vE,EAAK5vE,MACZp6B,SAAAA,EACAo8R,SAAAA,EACAqtU,UAAWlV,EAAmBvqf,EAAKnvE,OACnC6ukB,aAAc,SACdptU,YAAa,CAACu+V,EAAQC,YA/EtBgZ,CAAcxylB,IA6FpB,IAAI6ylB,GAAe,CACjBlppB,GAAI,QACJ4hC,SAAUinnB,GACVj3oB,MAHiB,SAGX2ngB,EAAO6rI,EAAOj1oB,IAbtB,SAAqBopgB,EAAO6yH,GAC1B,IAAMzqnB,EAAQ,IAAIknoB,GAAM,CACtB1jd,IAAKo0U,EAAMp0U,IACXh1L,QAASi8nB,EACT7yH,MAAAA,IAEFsmH,GAAkBtmH,EAAO53f,EAAOyqnB,GAChCvM,GAAetmH,EAAO53f,GACtB43f,EAAM4vI,WAAaxnoB,EAMjBynoB,CAAY7vI,EAAOppgB,IAErBG,KANiB,SAMZipgB,GACH,IAAM4vI,EAAa5vI,EAAM4vI,WACzBtpB,GAAkBtmH,EAAO4vI,UAClB5vI,EAAM4vI,YAEfvf,aAXiB,SAWJrwH,EAAO6rI,EAAOj1oB,GACzB,IAAMwR,EAAQ43f,EAAM4vI,WACpBtpB,GAAkBtmH,EAAO53f,EAAOxR,GAChCwR,EAAMxR,QAAUA,GAElB0sM,SAAU,CACRjtK,MAAO,SACPx6B,SAAS,EACT4tL,KAAM,CACJ34J,OAAQ,QAEV81lB,UAAU,EACVj8mB,QAAS,GACThI,SAAU,MACVxjB,KAAM,GACN2xC,OAAQ,KAEVs6lB,cAAe,CACbx1lB,MAAO,SAETirkB,YAAa,CACXyB,aAAa,EACbC,YAAY,IAIV7/mB,GAAM,IAAIgzH,QACZo6hB,GAAkB,CACpBrppB,GAAI,WACJ4R,MAFoB,SAEd2ngB,EAAO6rI,EAAOj1oB,GAClB,IAAMwR,EAAQ,IAAIknoB,GAAM,CACtB1jd,IAAKo0U,EAAMp0U,IACXh1L,QAAAA,EACAopgB,MAAAA,IAEFsmH,GAAkBtmH,EAAO53f,EAAOxR,GAChC0vnB,GAAetmH,EAAO53f,GACtB1lB,GAAI8+D,IAAIw+c,EAAO53f,IAEjBrR,KAZoB,SAYfipgB,GACHsmH,GAAkBtmH,EAAOt9gB,GAAI2Z,IAAI2jgB,IACjCt9gB,GAAI0nP,OAAO41R,IAEbqwH,aAhBoB,SAgBPrwH,EAAO6rI,EAAOj1oB,GACzB,IAAMwR,EAAQ1lB,GAAI2Z,IAAI2jgB,GACtBsmH,GAAkBtmH,EAAO53f,EAAOxR,GAChCwR,EAAMxR,QAAUA,GAElB0sM,SAAU,CACRjtK,MAAO,SACPx6B,SAAS,EACT4tL,KAAM,CACJ34J,OAAQ,UAEV81lB,UAAU,EACVj8mB,QAAS,EACThI,SAAU,MACVxjB,KAAM,GACN2xC,OAAQ,MAEVs6lB,cAAe,CACbx1lB,MAAO,SAETirkB,YAAa,CACXyB,aAAa,EACbC,YAAY,IAIVwtC,GAAc,CAClBC,QADkB,SACV9npB,GACN,IAAKA,EAAMpL,OACT,OAAO,EAET,IAAIyL,EAAGyrC,EACHxmC,EAAI,EACJ2M,EAAI,EACJu7D,EAAQ,EACZ,IAAKntE,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,IAAOzrC,EAAG,CAC5C,IAAMvD,EAAKkD,EAAMK,GAAGjM,QACpB,GAAI0I,GAAMA,EAAG4xL,WAAY,CACvB,IAAM9gH,EAAM9wE,EAAGirpB,kBACfzipB,GAAKsoE,EAAItoE,EACT2M,GAAK27D,EAAI37D,IACPu7D,GAGN,MAAO,CACLloE,EAAGA,EAAIkoE,EACPv7D,EAAGA,EAAIu7D,IAGXswjB,QAvBkB,SAuBV99nB,EAAOgopB,GACb,IAAKhopB,EAAMpL,OACT,OAAO,EAET,IAGIyL,EAAGyrC,EAAKm8mB,EAHR3ipB,EAAI0ipB,EAAc1ipB,EAClB2M,EAAI+1oB,EAAc/1oB,EAClBmrnB,EAAcr5kB,OAAO6ljB,kBAEzB,IAAKvpmB,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,IAAOzrC,EAAG,CAC5C,IAAMvD,EAAKkD,EAAMK,GAAGjM,QACpB,GAAI0I,GAAMA,EAAG4xL,WAAY,CACvB,IACMt9E,EAAI+5f,GAAsB68C,EADjBlrpB,EAAGugoB,kBAEdjshB,EAAIgshB,IACNA,EAAchshB,EACd62iB,EAAiBnrpB,IAIvB,GAAImrpB,EAAgB,CAClB,IAAMC,EAAKD,EAAeF,kBAC1BzipB,EAAI4ipB,EAAG5ipB,EACP2M,EAAIi2oB,EAAGj2oB,EAET,MAAO,CACL3M,EAAAA,EACA2M,EAAAA,KAIN,SAASk2oB,GAAanshB,EAAMoshB,GAQ1B,OAPIA,IACEt4kB,EAAQs4kB,GACVvupB,MAAMC,UAAU5E,KAAKolB,MAAM0hH,EAAMoshB,GAEjCpshB,EAAK9mI,KAAKkzpB,IAGPpshB,EAET,SAASqshB,GAAcv1kB,GACrB,OAAoB,kBAARA,GAAoBA,aAAe3Y,SAAW2Y,EAAIr4E,QAAQ,OAAS,EACtEq4E,EAAI/wE,MAAM,MAEZ+wE,EAET,SAASw1kB,GAAkBxwI,EAAOtjhB,GAChC,IAAOJ,EAAgCI,EAAhCJ,QAASs0mB,EAAuBl0mB,EAAvBk0mB,aAAcvzmB,EAASX,EAATW,MACxBq5G,EAAaspa,EAAM82G,eAAelmB,GAAcl6f,WACtD,EAAuBA,EAAW+5iB,iBAAiBpzpB,GAA5CwiJ,EAAP,EAAOA,MAAOzhJ,EAAd,EAAcA,MACd,MAAO,CACL4hhB,MAAAA,EACAngY,MAAAA,EACA4oE,OAAQ/xG,EAAWsihB,UAAU37nB,GAC7BylO,IAAKk9S,EAAM31gB,KAAK42mB,SAASrQ,GAAcvmmB,KAAKhN,GAC5C8/Z,eAAgB/+Z,EAChBgX,QAASshG,EAAWo/gB,aACpB2D,UAAWp8nB,EACXuzmB,aAAAA,EACAt0mB,QAAAA,GAGJ,SAASo0pB,GAAe1okB,EAASpxE,GAC/B,IAAMg1L,EAAM5jH,EAAQg4b,MAAMp0U,IACnB7mK,EAAuBijD,EAAvBjjD,KAAM8jZ,EAAiB7gW,EAAjB6gW,OAAQzga,EAAS4/D,EAAT5/D,MACdkkoB,EAAuB11oB,EAAvB01oB,SAAUD,EAAaz1oB,EAAby1oB,UACXsE,EAAWpqC,GAAO3vmB,EAAQ+5oB,UAC1BlC,EAAYloC,GAAO3vmB,EAAQ63oB,WAC3BmC,EAAarqC,GAAO3vmB,EAAQg6oB,YAC5BC,EAAiBzooB,EAAMtrB,OACvBg0pB,EAAkBjoO,EAAO/rb,OACzBi0pB,EAAoBhsnB,EAAKjoC,OACzB6tB,EAAU27lB,GAAU1vmB,EAAQ+T,SAC9B5c,EAAS4c,EAAQ5c,OACjBD,EAAQ,EACRkjpB,EAAqBjsnB,EAAK7+B,QAAO,SAACwvE,EAAOu7kB,GAAR,OAAqBv7kB,EAAQu7kB,EAAS7vf,OAAOtkK,OAASm0pB,EAASxkmB,MAAM3vD,OAASm0pB,EAAS5vf,MAAMvkK,SAAQ,IAC1Ik0pB,GAAsBhpkB,EAAQkpkB,WAAWp0pB,OAASkrF,EAAQmpkB,UAAUr0pB,OAChE+zpB,IACF9ipB,GAAU8ipB,EAAiBpC,EAAUr+mB,YACnCygnB,EAAiB,GAAKj6oB,EAAQw6oB,aAC/Bx6oB,EAAQy6oB,mBAEPL,KAEFjjpB,GAAUgjpB,GADan6oB,EAAQ06oB,cAAgBnvoB,KAAKC,IAAIiqoB,EAAWsE,EAASvgnB,YAAcugnB,EAASvgnB,aAEjG4gnB,EAAqBD,GAAqBJ,EAASvgnB,YACnD4gnB,EAAqB,GAAKp6oB,EAAQ26oB,aAElCT,IACF/ipB,GAAU6I,EAAQ46oB,gBACjBV,EAAkBF,EAAWxgnB,YAC5B0gnB,EAAkB,GAAKl6oB,EAAQ66oB,eAEnC,IAAIC,EAAe,EACbC,EAAe,SAASj6mB,GAC5B5pC,EAAQqU,KAAKC,IAAItU,EAAO89L,EAAI+2a,YAAYjrkB,GAAM5pC,MAAQ4jpB,IAkBxD,OAhBA9ld,EAAI9wK,OACJ8wK,EAAInC,KAAOgld,EAAU5jjB,OACrB5zF,EAAK+wE,EAAQ5/D,MAAOupoB,GACpB/ld,EAAInC,KAAOknd,EAAS9ljB,OACpB5zF,EAAK+wE,EAAQkpkB,WAAW94nB,OAAO4vD,EAAQmpkB,WAAYQ,GACnDD,EAAe96oB,EAAQ06oB,cAAiBhF,EAAW,EAAI11oB,EAAQqwnB,WAAc,EAC7EhwnB,EAAK8tB,GAAM,SAACksnB,GACVh6oB,EAAKg6oB,EAAS7vf,OAAQuwf,GACtB16oB,EAAKg6oB,EAASxkmB,MAAOklmB,GACrB16oB,EAAKg6oB,EAAS5vf,MAAOswf,MAEvBD,EAAe,EACf9ld,EAAInC,KAAOmnd,EAAW/ljB,OACtB5zF,EAAK+wE,EAAQ6gW,OAAQ8oO,GACrB/ld,EAAIq3a,UAEG,CAACn1mB,MADRA,GAAS6c,EAAQ7c,MACFC,OAAAA,GAqBjB,SAAS6jpB,GAAgB5xI,EAAOppgB,EAAS5B,EAAM68oB,GAC7C,IAAOrkpB,EAAYwH,EAAZxH,EAAGM,EAASkH,EAATlH,MACIgkpB,EAAwC9xI,EAA/ClygB,MAAP,EAAsDkygB,EAA5Bs5G,UAAYpknB,EAAtC,EAAsCA,KAAMqF,EAA5C,EAA4CA,MACxCw3oB,EAAS,SAWb,MAVe,WAAXF,EACFE,EAASvkpB,IAAM0H,EAAOqF,GAAS,EAAI,OAAS,QACnC/M,GAAKM,EAAQ,EACtBikpB,EAAS,OACAvkpB,GAAKskpB,EAAahkpB,EAAQ,IACnCikpB,EAAS,SAnBb,SAA6BA,EAAQ/xI,EAAOppgB,EAAS5B,GACnD,IAAOxH,EAAYwH,EAAZxH,EAAGM,EAASkH,EAATlH,MACJi1W,EAAQnsW,EAAQo7oB,UAAYp7oB,EAAQq7oB,aAC1C,MAAe,SAAXF,GAAqBvkpB,EAAIM,EAAQi1W,EAAQi9J,EAAMlygB,OAGpC,UAAXikpB,GAAsBvkpB,EAAIM,EAAQi1W,EAAQ,QAA9C,EAeImvS,CAAoBH,EAAQ/xI,EAAOppgB,EAAS5B,KAC9C+8oB,EAAS,UAEJA,EAET,SAASI,GAAmBnyI,EAAOppgB,EAAS5B,GAC1C,IAAM68oB,EAAS78oB,EAAK68oB,QAAUj7oB,EAAQi7oB,QApCxC,SAAyB7xI,EAAOhrgB,GAC9B,IAAOmF,EAAanF,EAAbmF,EAAGpM,EAAUiH,EAAVjH,OACV,OAAIoM,EAAIpM,EAAS,EACR,MACEoM,EAAK6lgB,EAAMjygB,OAASA,EAAS,EAC/B,SAEF,SA6ByCqkpB,CAAgBpyI,EAAOhrgB,GACvE,MAAO,CACL+8oB,OAAQ/8oB,EAAK+8oB,QAAUn7oB,EAAQm7oB,QAAUH,GAAgB5xI,EAAOppgB,EAAS5B,EAAM68oB,GAC/EA,OAAAA,GAuBJ,SAASQ,GAAmBz7oB,EAAS5B,EAAMkjC,EAAW8ne,GACpD,IAAOgyI,EAAyCp7oB,EAAzCo7oB,UAAWC,EAA8Br7oB,EAA9Bq7oB,aAAc30I,EAAgB1mgB,EAAhB0mgB,aACzBy0I,EAAkB75mB,EAAlB65mB,OAAQF,EAAU35mB,EAAV25mB,OACTS,EAAiBN,EAAYC,EACnC,EAAqD5rC,GAAc/oG,GAA5DsoG,EAAP,EAAOA,QAASG,EAAhB,EAAgBA,SAAUF,EAA1B,EAA0BA,WAAYC,EAAtC,EAAsCA,YAClCt4mB,EAzBN,SAAgBwH,EAAM+8oB,GACpB,IAAKvkpB,EAAYwH,EAAZxH,EAAGM,EAASkH,EAATlH,MAMR,MALe,UAAXikpB,EACFvkpB,GAAKM,EACe,WAAXikpB,IACTvkpB,GAAMM,EAAQ,GAETN,EAkBC+kpB,CAAOv9oB,EAAM+8oB,GACf53oB,EAjBR,SAAgBnF,EAAM68oB,EAAQS,GAC5B,IAAKn4oB,EAAanF,EAAbmF,EAAGpM,EAAUiH,EAAVjH,OAQR,MAPe,QAAX8jpB,EACF13oB,GAAKm4oB,EAELn4oB,GADoB,WAAX03oB,EACJ9jpB,EAASukpB,EAERvkpB,EAAS,EAEVoM,EAQGq4oB,CAAOx9oB,EAAM68oB,EAAQS,GAY/B,MAXe,WAAXT,EACa,SAAXE,EACFvkpB,GAAK8kpB,EACe,UAAXP,IACTvkpB,GAAK8kpB,GAEa,SAAXP,EACTvkpB,GAAK2U,KAAKC,IAAIwjmB,EAASC,GAAcmsC,EACjB,UAAXD,IACTvkpB,GAAK2U,KAAKC,IAAI2jmB,EAAUD,GAAeksC,GAElC,CACLxkpB,EAAGwmmB,GAAYxmmB,EAAG,EAAGwygB,EAAMlygB,MAAQkH,EAAKlH,OACxCqM,EAAG65lB,GAAY75lB,EAAG,EAAG6lgB,EAAMjygB,OAASiH,EAAKjH,SAG7C,SAAS0kpB,GAAYzqkB,EAAS3xC,EAAOz/B,GACnC,IAAM+T,EAAU27lB,GAAU1vmB,EAAQ+T,SAClC,MAAiB,WAAV0rB,EACH2xC,EAAQx6E,EAAIw6E,EAAQl6E,MAAQ,EAClB,UAAVuoC,EACE2xC,EAAQx6E,EAAIw6E,EAAQl6E,MAAQ6c,EAAQpQ,MACpCytE,EAAQx6E,EAAImd,EAAQzV,KAE5B,SAASw9oB,GAAwB1nmB,GAC/B,OAAOqlmB,GAAa,GAAIE,GAAcvlmB,IASxC,SAAS2nmB,GAAkBzloB,EAAW/V,GACpC,IAAMixmB,EAAWjxmB,GAAWA,EAAQ/B,SAAW+B,EAAQ/B,QAAQ4yE,SAAW7wE,EAAQ/B,QAAQ4yE,QAAQ96D,UAClG,OAAOk7lB,EAAWl7lB,EAAUk7lB,SAASA,GAAYl7lB,MAE7C0rH,GAAAA,SAAAA,iCACJ,WAAY9sE,GAAQ,6BAClB,gBACK4hE,QAAU,EACf,EAAK+sJ,QAAU,GACf,EAAKm4X,oBAAiBh+oB,EACtB,EAAK8zB,WAAQ9zB,EACb,EAAKi+oB,uBAAoBj+oB,EACzB,EAAKk+oB,cAAgB,GACrB,EAAKtgC,iBAAc59mB,EACnB,EAAKgP,cAAWhP,EAChB,EAAKorgB,MAAQl0c,EAAOk0c,OAASl0c,EAAO6jjB,OACpC,EAAKA,OAAS,EAAK3vG,MACnB,EAAKppgB,QAAUk1D,EAAOl1D,QACtB,EAAKm8oB,gBAAan+oB,EAClB,EAAKwT,WAAQxT,EACb,EAAKs8oB,gBAAat8oB,EAClB,EAAKmwB,UAAOnwB,EACZ,EAAKu8oB,eAAYv8oB,EACjB,EAAKi0a,YAASj0a,EACd,EAAKm9oB,YAASn9oB,EACd,EAAKi9oB,YAASj9oB,EACd,EAAKpH,OAAIoH,EACT,EAAKuF,OAAIvF,EACT,EAAK7G,YAAS6G,EACd,EAAK9G,WAAQ8G,EACb,EAAKo+oB,YAASp+oB,EACd,EAAKq+oB,YAASr+oB,EACd,EAAKs+oB,iBAAct+oB,EACnB,EAAKu+oB,sBAAmBv+oB,EACxB,EAAKw+oB,qBAAkBx+oB,EA7BL,2CA+BpB,SAAWgC,GACTpa,KAAKoa,QAAUA,EACfpa,KAAKq2pB,uBAAoBj+oB,EACzBpY,KAAKonB,cAAWhP,oCAElB,WACE,IAAMmzhB,EAASvriB,KAAKq2pB,kBACpB,GAAI9qH,EACF,OAAOA,EAET,IAAM/nB,EAAQxjhB,KAAKwjhB,MACbppgB,EAAUpa,KAAKoa,QAAQuxmB,WAAW3rnB,KAAK27D,cACvCqtD,EAAO5uG,EAAQkvB,SAAWk6e,EAAMppgB,QAAQkqN,WAAalqN,EAAQspf,WAC7DA,EAAa,IAAIkyH,GAAW51nB,KAAKwjhB,MAAOx6Z,GAI9C,OAHIA,EAAKuigB,aACPvrnB,KAAKq2pB,kBAAoBvvpB,OAAOqtM,OAAOuvT,IAElCA,4BAET,WACE,OAAO1jgB,KAAKonB,WACZpnB,KAAKonB,SAhET,SAA8B3b,EAAQ+/E,EAASqrkB,GAC7C,OAAO71iB,GAAcv1G,EAAQ,CAC3B+/E,QAAAA,EACAqrkB,aAAAA,EACAlzoB,KAAM,YA4DUmzoB,CAAqB92pB,KAAKwjhB,MAAM7nd,aAAc37D,KAAMA,KAAKs2pB,wCAE3E,SAAS37oB,EAASP,GAChB,IAAOsW,EAAatW,EAAbsW,UACDqmoB,EAAcrmoB,EAAUqmoB,YAAY/woB,MAAMhmB,KAAM,CAAC2a,IACjDiR,EAAQ8E,EAAU9E,MAAM5F,MAAMhmB,KAAM,CAAC2a,IACrCq8oB,EAAatmoB,EAAUsmoB,WAAWhxoB,MAAMhmB,KAAM,CAAC2a,IACjDs1C,EAAQ,GAIZ,OAHAA,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAcgD,IAC1C9mmB,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAcnooB,IAC1CqkC,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAciD,iCAG5C,SAAcH,EAAcz8oB,GAC1B,OAAO87oB,GAAwB97oB,EAAQsW,UAAUgkoB,WAAW1uoB,MAAMhmB,KAAM,CAAC62pB,4BAE3E,SAAQA,EAAcz8oB,GAAS,WACtBsW,EAAatW,EAAbsW,UACDumoB,EAAY,GAalB,OAZAx8oB,EAAKo8oB,GAAc,SAACl8oB,GAClB,IAAM85oB,EAAW,CACf7vf,OAAQ,GACR30G,MAAO,GACP40G,MAAO,IAEHqyf,EAASf,GAAkBzloB,EAAW/V,GAC5Ck5oB,GAAaY,EAAS7vf,OAAQmvf,GAAcmD,EAAOC,YAAY12pB,KAAK,EAAMka,KAC1Ek5oB,GAAaY,EAASxkmB,MAAOinmB,EAAO7zgB,MAAM5iJ,KAAK,EAAMka,IACrDk5oB,GAAaY,EAAS5vf,MAAOkvf,GAAcmD,EAAOE,WAAW32pB,KAAK,EAAMka,KACxEs8oB,EAAUr2pB,KAAK6zpB,MAEVwC,8BAET,SAAaJ,EAAcz8oB,GACzB,OAAO87oB,GAAwB97oB,EAAQsW,UAAUikoB,UAAU3uoB,MAAMhmB,KAAM,CAAC62pB,8BAE1E,SAAUA,EAAcz8oB,GACtB,IAAOsW,EAAatW,EAAbsW,UACD2moB,EAAe3moB,EAAU2moB,aAAarxoB,MAAMhmB,KAAM,CAAC62pB,IACnDxqO,EAAS37Z,EAAU27Z,OAAOrma,MAAMhmB,KAAM,CAAC62pB,IACvCS,EAAc5moB,EAAU4moB,YAAYtxoB,MAAMhmB,KAAM,CAAC62pB,IACnD5mmB,EAAQ,GAIZ,OAHAA,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAcsD,IAC1CpnmB,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAc1nO,IAC1Cp8X,EAAQ4jmB,GAAa5jmB,EAAO8jmB,GAAcuD,gCAG5C,SAAal9oB,GAAS,IAOhBrO,EAAGyrC,EAPa,OACdrsB,EAASnrB,KAAKi+R,QACdpwR,EAAO7N,KAAKwjhB,MAAM31gB,KAClB6opB,EAAc,GACdC,EAAmB,GACnBC,EAAkB,GACpBC,EAAe,GAEnB,IAAK9qpB,EAAI,EAAGyrC,EAAMrsB,EAAO7qB,OAAQyL,EAAIyrC,IAAOzrC,EAC1C8qpB,EAAaj2pB,KAAKozpB,GAAkBh0pB,KAAKwjhB,MAAOr4f,EAAOpf,KAkBzD,OAhBIqO,EAAQxU,SACVixpB,EAAeA,EAAajxpB,QAAO,SAAC9F,EAASe,EAAOw3C,GAAjB,OAA2Bj+B,EAAQxU,OAAO9F,EAASe,EAAOw3C,EAAOxqC,OAElGuM,EAAQm9oB,WACVV,EAAeA,EAAarxmB,MAAK,SAACC,EAAGC,GAAJ,OAAUtrC,EAAQm9oB,SAAS9xmB,EAAGC,EAAG73C,OAEpE4M,EAAKo8oB,GAAc,SAACl8oB,GAClB,IAAMu8oB,EAASf,GAAkB/7oB,EAAQsW,UAAW/V,GACpD+7oB,EAAY91pB,KAAKs2pB,EAAOM,WAAW/2pB,KAAK,EAAMka,IAC9Cg8oB,EAAiB/1pB,KAAKs2pB,EAAOO,gBAAgBh3pB,KAAK,EAAMka,IACxDi8oB,EAAgBh2pB,KAAKs2pB,EAAOQ,eAAej3pB,KAAK,EAAMka,OAExD3a,KAAK02pB,YAAcA,EACnB12pB,KAAK22pB,iBAAmBA,EACxB32pB,KAAK42pB,gBAAkBA,EACvB52pB,KAAKu2pB,WAAaM,EACXA,wBAET,SAAOr5a,EAAS55D,GACd,IAEI3pH,EAFE7/C,EAAUpa,KAAKoa,QAAQuxmB,WAAW3rnB,KAAK27D,cACvCxwC,EAASnrB,KAAKi+R,QAEhB44X,EAAe,GACnB,GAAK1roB,EAAO7qB,OAML,CACL,IAAM6lB,EAAWotoB,GAAYn5oB,EAAQ+L,UAAU1lB,KAAKT,KAAMmrB,EAAQnrB,KAAKo2pB,gBACvES,EAAe72pB,KAAK23pB,aAAav9oB,GACjCpa,KAAK4rB,MAAQ5rB,KAAK43pB,SAASf,EAAcz8oB,GACzCpa,KAAK00pB,WAAa10pB,KAAK63pB,cAAchB,EAAcz8oB,GACnDpa,KAAKuoC,KAAOvoC,KAAKqhP,QAAQw1a,EAAcz8oB,GACvCpa,KAAK20pB,UAAY30pB,KAAK83pB,aAAajB,EAAcz8oB,GACjDpa,KAAKqsb,OAASrsb,KAAK+3pB,UAAUlB,EAAcz8oB,GAC3C,IAAM5B,EAAOxY,KAAKksC,MAAQgonB,GAAel0pB,KAAMoa,GACzC49oB,EAAkBlxpB,OAAOw4C,OAAO,GAAIn5B,EAAU3N,GAC9CkjC,EAAYi6mB,GAAmB31pB,KAAKwjhB,MAAOppgB,EAAS49oB,GACpDC,EAAkBpC,GAAmBz7oB,EAAS49oB,EAAiBt8mB,EAAW17C,KAAKwjhB,OACrFxjhB,KAAKu1pB,OAAS75mB,EAAU65mB,OACxBv1pB,KAAKq1pB,OAAS35mB,EAAU25mB,OACxBp7lB,EAAa,CACXi3E,QAAS,EACTlgI,EAAGinpB,EAAgBjnpB,EACnB2M,EAAGs6oB,EAAgBt6oB,EACnBrM,MAAOkH,EAAKlH,MACZC,OAAQiH,EAAKjH,OACbilpB,OAAQrwoB,EAASnV,EACjBylpB,OAAQtwoB,EAASxI,QA1BE,IAAjB3d,KAAKkxI,UACPj3E,EAAa,CACXi3E,QAAS,IA2BflxI,KAAKs2pB,cAAgBO,EACrB72pB,KAAKonB,cAAWhP,EACZ6hD,GACFj6D,KAAK49nB,qBAAqBv/mB,OAAOre,KAAMi6D,GAErCujL,GAAWpjO,EAAQ89oB,UACrB99oB,EAAQ89oB,SAASz3pB,KAAKT,KAAM,CAACwjhB,MAAOxjhB,KAAKwjhB,MAAOh4b,QAASxrF,KAAM4jL,OAAAA,6BAGnE,SAAUu0e,EAAc/od,EAAK52L,EAAM4B,GACjC,IAAM49F,EAAgBh4G,KAAKo4pB,iBAAiBD,EAAc3/oB,EAAM4B,GAChEg1L,EAAI03Z,OAAO9uf,EAAc4lH,GAAI5lH,EAAc03F,IAC3CN,EAAI03Z,OAAO9uf,EAAc6lH,GAAI7lH,EAAc23F,IAC3CP,EAAI03Z,OAAO9uf,EAAcqgjB,GAAIrgjB,EAAcsgjB,oCAE7C,SAAiBH,EAAc3/oB,EAAM4B,GACnC,IAKIwjN,EAAIC,EAAIw6b,EAAI3od,EAAIC,EAAI2od,EALjB/C,EAAkBv1pB,KAAlBu1pB,OAAQF,EAAUr1pB,KAAVq1pB,OACRG,EAA2Bp7oB,EAA3Bo7oB,UACP,EAAqD3rC,GADnBzvmB,EAAhB0mgB,cACXsoG,EAAP,EAAOA,QAASG,EAAhB,EAAgBA,SAAUF,EAA1B,EAA0BA,WAAYC,EAAtC,EAAsCA,YAC5BivC,EAAeJ,EAAlBnnpB,EAAWwnpB,EAAOL,EAAVx6oB,EACRrM,EAAiBkH,EAAjBlH,MAAOC,EAAUiH,EAAVjH,OAqCd,MAnCe,WAAX8jpB,GACF1ld,EAAK6od,EAAOjnpB,EAAS,EACN,SAAXgkpB,GAEF13b,GADAD,EAAK26b,GACK/C,EACV9ld,EAAKC,EAAK6ld,EACV8C,EAAK3od,EAAK6ld,IAGV33b,GADAD,EAAK26b,EAAMjnpB,GACDkkpB,EACV9ld,EAAKC,EAAK6ld,EACV8C,EAAK3od,EAAK6ld,GAEZ6C,EAAKz6b,IAGHC,EADa,SAAX03b,EACGgD,EAAM5yoB,KAAKC,IAAIwjmB,EAASC,GAAemsC,EACxB,UAAXD,EACJgD,EAAMjnpB,EAAQqU,KAAKC,IAAI2jmB,EAAUD,GAAeksC,EAEhDx1pB,KAAKw2pB,OAEG,QAAXnB,GAEF1ld,GADAD,EAAK8od,GACKhD,EACV53b,EAAKC,EAAK23b,EACV6C,EAAKx6b,EAAK23b,IAGV7ld,GADAD,EAAK8od,EAAMjnpB,GACDikpB,EACV53b,EAAKC,EAAK23b,EACV6C,EAAKx6b,EAAK23b,GAEZ8C,EAAK5od,GAEA,CAACkuB,GAAAA,EAAIC,GAAAA,EAAIw6b,GAAAA,EAAI3od,GAAAA,EAAIC,GAAAA,EAAI2od,GAAAA,4BAE9B,SAAUz3V,EAAIzxH,EAAKh1L,GACjB,IAEI63oB,EAAW2C,EAAc7opB,EAFvB6f,EAAQ5rB,KAAK4rB,MACbtrB,EAASsrB,EAAMtrB,OAErB,GAAIA,EAAQ,CACV,IAAM8wpB,EAAYx/B,GAAcx3mB,EAAQ0O,IAAK9oB,KAAKgR,EAAGhR,KAAKsR,OAQ1D,IAPAuvT,EAAG7vT,EAAIilpB,GAAYj2pB,KAAMoa,EAAQk4nB,WAAYl4nB,GAC7Cg1L,EAAIq5a,UAAY2oC,EAAU3oC,UAAUrumB,EAAQk4nB,YAC5Cljc,EAAIs5a,aAAe,SACnBupC,EAAYloC,GAAO3vmB,EAAQ63oB,WAC3B2C,EAAex6oB,EAAQw6oB,aACvBxld,EAAIS,UAAYz1L,EAAQq+oB,WACxBrpd,EAAInC,KAAOgld,EAAU5jjB,OAChBtiG,EAAI,EAAGA,EAAIzL,IAAUyL,EACxBqjM,EAAIm5a,SAAS38lB,EAAM7f,GAAIqlpB,EAAUpgpB,EAAE6vT,EAAG7vT,GAAI6vT,EAAGljT,EAAIs0oB,EAAUr+mB,WAAa,GACxEitR,EAAGljT,GAAKs0oB,EAAUr+mB,WAAaghnB,EAC3B7opB,EAAI,IAAMzL,IACZugU,EAAGljT,GAAKvD,EAAQy6oB,kBAAoBD,iCAK5C,SAAcxld,EAAKyxH,EAAI90T,EAAGqlpB,EAAWh3oB,GACnC,IAAMs8oB,EAAc12pB,KAAK02pB,YAAY3qpB,GAC/B0rpB,EAAkBz3pB,KAAK22pB,iBAAiB5qpB,GACvC8jpB,EAAmCz1oB,EAAnCy1oB,UAAWC,EAAwB11oB,EAAxB01oB,SAAUrlB,EAAcrwnB,EAAdqwnB,WACtB0pB,EAAWpqC,GAAO3vmB,EAAQ+5oB,UAC1BuE,EAASzC,GAAYj2pB,KAAM,OAAQoa,GACnCu+oB,EAAYvH,EAAUpgpB,EAAE0npB,GACxBE,EAAU/I,EAAYsE,EAASvgnB,YAAcugnB,EAASvgnB,WAAai8mB,GAAa,EAAI,EACpFgJ,EAASh4V,EAAGljT,EAAIi7oB,EACtB,GAAIx+oB,EAAQ21oB,cAAe,CACzB,IAAM4B,EAAc,CAClBh9I,OAAQhvf,KAAKG,IAAIgqoB,EAAUD,GAAa,EACxCzoC,WAAYqwC,EAAgBrwC,WAC5BhsU,SAAUq8W,EAAgBr8W,SAC1BtiQ,YAAa,GAET2iQ,EAAU21W,EAAUr/B,WAAW4mC,EAAW7I,GAAYA,EAAW,EACjEp0W,EAAUm9W,EAAShJ,EAAY,EACrCzgd,EAAI23Z,YAAc3slB,EAAQ0+oB,mBAC1B1pd,EAAIS,UAAYz1L,EAAQ0+oB,mBACxB7xC,GAAU73a,EAAKuid,EAAal2W,EAASC,GACrCtsG,EAAI23Z,YAAc2vD,EAAYz9mB,YAC9Bm2J,EAAIS,UAAY6md,EAAYrznB,gBAC5B4jlB,GAAU73a,EAAKuid,EAAal2W,EAASC,OAChC,CACLtsG,EAAIoyU,UAAYk1I,EAAY59mB,aAAe,EAC3Cs2J,EAAI23Z,YAAc2vD,EAAYz9mB,YAC9Bm2J,EAAIoqc,YAAYkd,EAAY3iC,YAAc,IAC1C3kb,EAAIqqc,eAAiBid,EAAY1iC,kBAAoB,EACrD,IAAM+kC,EAAS3H,EAAUr/B,WAAW4mC,EAAW7I,EAAWrlB,GACpDuuB,EAAS5H,EAAUr/B,WAAWq/B,EAAUt/B,MAAM6mC,EAAW,GAAI7I,EAAWrlB,EAAa,GACrFka,EAAe96B,GAAc6sC,EAAY/R,cAC3C79oB,OAAO8S,OAAO+qoB,GAAcpioB,MAAK,SAAAskC,GAAC,OAAU,IAANA,MACxCuoJ,EAAIy3Z,YACJz3Z,EAAIS,UAAYz1L,EAAQ0+oB,mBACxB3vC,GAAmB/5a,EAAK,CACtBp+L,EAAG+npB,EACHp7oB,EAAGk7oB,EACHpvgB,EAAGqmgB,EACHtmgB,EAAGqmgB,EACHl7I,OAAQgwI,IAEVv1c,EAAIlzE,OACJkzE,EAAIp1J,SACJo1J,EAAIS,UAAY6md,EAAYrznB,gBAC5B+rK,EAAIy3Z,YACJsiB,GAAmB/5a,EAAK,CACtBp+L,EAAGgopB,EACHr7oB,EAAGk7oB,EAAS,EACZpvgB,EAAGqmgB,EAAW,EACdtmgB,EAAGqmgB,EAAY,EACfl7I,OAAQgwI,IAEVv1c,EAAIlzE,SAEJkzE,EAAIS,UAAYz1L,EAAQ0+oB,mBACxB1pd,EAAIU,SAASipd,EAAQF,EAAQ/I,EAAUD,GACvCzgd,EAAI6pd,WAAWF,EAAQF,EAAQ/I,EAAUD,GACzCzgd,EAAIS,UAAY6md,EAAYrznB,gBAC5B+rK,EAAIU,SAASkpd,EAAQH,EAAS,EAAG/I,EAAW,EAAGD,EAAY,IAG/Dzgd,EAAIS,UAAY7vM,KAAK42pB,gBAAgB7qpB,2BAEvC,SAAS80T,EAAIzxH,EAAKh1L,GAChB,IAWIq6oB,EAAUyE,EAAWjpmB,EAAOlkD,EAAGw+E,EAAG0phB,EAAMsS,EAXrCh+kB,EAAQvoC,KAARuoC,KACAwsnB,EAA0E36oB,EAA1E26oB,YAAaoE,EAA6D/+oB,EAA7D++oB,UAAWrE,EAAkD16oB,EAAlD06oB,cAAejF,EAAmCz1oB,EAAnCy1oB,UAAWC,EAAwB11oB,EAAxB01oB,SAAUrlB,EAAcrwnB,EAAdqwnB,WAC7D0pB,EAAWpqC,GAAO3vmB,EAAQ+5oB,UAC5BiF,EAAiBjF,EAASvgnB,WAC1BylnB,EAAe,EACbjI,EAAYx/B,GAAcx3mB,EAAQ0O,IAAK9oB,KAAKgR,EAAGhR,KAAKsR,OACpDgopB,EAAiB,SAASp+mB,GAC9Bk0J,EAAIm5a,SAASrtkB,EAAMk2mB,EAAUpgpB,EAAE6vT,EAAG7vT,EAAIqopB,GAAex4V,EAAGljT,EAAIy7oB,EAAiB,GAC7Ev4V,EAAGljT,GAAKy7oB,EAAiBrE,GAErBwE,EAA0BnI,EAAU3oC,UAAU0wC,GAWpD,IATA/pd,EAAIq5a,UAAY0wC,EAChB/pd,EAAIs5a,aAAe,SACnBt5a,EAAInC,KAAOknd,EAAS9ljB,OACpBwyN,EAAG7vT,EAAIilpB,GAAYj2pB,KAAMu5pB,EAAyBn/oB,GAClDg1L,EAAIS,UAAYz1L,EAAQo/oB,UACxB/+oB,EAAKza,KAAK00pB,WAAY4E,GACtBD,EAAevE,GAA6C,UAA5ByE,EACd,WAAdJ,EAA0BrJ,EAAW,EAAIrlB,EAAeqlB,EAAW,EAAIrlB,EACvE,EACC1+nB,EAAI,EAAGkomB,EAAO1rkB,EAAKjoC,OAAQyL,EAAIkomB,IAAQlomB,EAAG,CAU7C,IATA0opB,EAAWlsnB,EAAKx8B,GAChBmtpB,EAAYl5pB,KAAK42pB,gBAAgB7qpB,GACjCqjM,EAAIS,UAAYqpd,EAChBz+oB,EAAKg6oB,EAAS7vf,OAAQ00f,GACtBrpmB,EAAQwkmB,EAASxkmB,MACb6kmB,GAAiB7kmB,EAAM3vD,SACzBN,KAAKy5pB,cAAcrqd,EAAKyxH,EAAI90T,EAAGqlpB,EAAWh3oB,GAC1Cg/oB,EAAiBzzoB,KAAKC,IAAIuuoB,EAASvgnB,WAAYi8mB,IAE5CtlkB,EAAI,EAAGg8hB,EAAOt2jB,EAAM3vD,OAAQiqF,EAAIg8hB,IAAQh8hB,EAC3C+ukB,EAAerpmB,EAAMs6B,IACrB6ukB,EAAiBjF,EAASvgnB,WAE5Bn5B,EAAKg6oB,EAAS5vf,MAAOy0f,GAEvBD,EAAe,EACfD,EAAiBjF,EAASvgnB,WAC1Bn5B,EAAKza,KAAK20pB,UAAW2E,GACrBz4V,EAAGljT,GAAKo3oB,4BAEV,SAAWl0V,EAAIzxH,EAAKh1L,GAClB,IAEIg6oB,EAAYropB,EAFVsgb,EAASrsb,KAAKqsb,OACd/rb,EAAS+rb,EAAO/rb,OAEtB,GAAIA,EAAQ,CACV,IAAM8wpB,EAAYx/B,GAAcx3mB,EAAQ0O,IAAK9oB,KAAKgR,EAAGhR,KAAKsR,OAQ1D,IAPAuvT,EAAG7vT,EAAIilpB,GAAYj2pB,KAAMoa,EAAQs/oB,YAAat/oB,GAC9CymT,EAAGljT,GAAKvD,EAAQ46oB,gBAChB5ld,EAAIq5a,UAAY2oC,EAAU3oC,UAAUrumB,EAAQs/oB,aAC5Ctqd,EAAIs5a,aAAe,SACnB0rC,EAAarqC,GAAO3vmB,EAAQg6oB,YAC5Bhld,EAAIS,UAAYz1L,EAAQu/oB,YACxBvqd,EAAInC,KAAOmnd,EAAW/ljB,OACjBtiG,EAAI,EAAGA,EAAIzL,IAAUyL,EACxBqjM,EAAIm5a,SAASl8L,EAAOtgb,GAAIqlpB,EAAUpgpB,EAAE6vT,EAAG7vT,GAAI6vT,EAAGljT,EAAIy2oB,EAAWxgnB,WAAa,GAC1EitR,EAAGljT,GAAKy2oB,EAAWxgnB,WAAax5B,EAAQ66oB,6CAI9C,SAAep0V,EAAIzxH,EAAKwqd,EAAax/oB,GACnC,IAAOm7oB,EAAkBv1pB,KAAlBu1pB,OAAQF,EAAUr1pB,KAAVq1pB,OACRrkpB,EAAQ6vT,EAAR7vT,EAAG2M,EAAKkjT,EAALljT,EACHrM,EAAiBsopB,EAAjBtopB,MAAOC,EAAUqopB,EAAVropB,OACd,EAAqDs4mB,GAAczvmB,EAAQ0mgB,cAApEsoG,EAAP,EAAOA,QAASG,EAAhB,EAAgBA,SAAUF,EAA1B,EAA0BA,WAAYC,EAAtC,EAAsCA,YACtCl6a,EAAIS,UAAYz1L,EAAQipB,gBACxB+rK,EAAI23Z,YAAc3slB,EAAQ6+B,YAC1Bm2J,EAAIoyU,UAAYpngB,EAAQ0+B,YACxBs2J,EAAIy3Z,YACJz3Z,EAAI14C,OAAO1lJ,EAAIo4mB,EAASzrmB,GACT,QAAX03oB,GACFr1pB,KAAK65pB,UAAUh5V,EAAIzxH,EAAKwqd,EAAax/oB,GAEvCg1L,EAAI03Z,OAAO91lB,EAAIM,EAAQi4mB,EAAU5rmB,GACjCyxL,EAAI0qd,iBAAiB9opB,EAAIM,EAAOqM,EAAG3M,EAAIM,EAAOqM,EAAI4rmB,GACnC,WAAX8rC,GAAkC,UAAXE,GACzBv1pB,KAAK65pB,UAAUh5V,EAAIzxH,EAAKwqd,EAAax/oB,GAEvCg1L,EAAI03Z,OAAO91lB,EAAIM,EAAOqM,EAAIpM,EAAS+3mB,GACnCl6a,EAAI0qd,iBAAiB9opB,EAAIM,EAAOqM,EAAIpM,EAAQP,EAAIM,EAAQg4mB,EAAa3rmB,EAAIpM,GAC1D,WAAX8jpB,GACFr1pB,KAAK65pB,UAAUh5V,EAAIzxH,EAAKwqd,EAAax/oB,GAEvCg1L,EAAI03Z,OAAO91lB,EAAIq4mB,EAAY1rmB,EAAIpM,GAC/B69L,EAAI0qd,iBAAiB9opB,EAAG2M,EAAIpM,EAAQP,EAAG2M,EAAIpM,EAAS83mB,GACrC,WAAXgsC,GAAkC,SAAXE,GACzBv1pB,KAAK65pB,UAAUh5V,EAAIzxH,EAAKwqd,EAAax/oB,GAEvCg1L,EAAI03Z,OAAO91lB,EAAG2M,EAAIyrmB,GAClBh6a,EAAI0qd,iBAAiB9opB,EAAG2M,EAAG3M,EAAIo4mB,EAASzrmB,GACxCyxL,EAAIm4a,YACJn4a,EAAIlzE,OACA9hH,EAAQ0+B,YAAc,GACxBs2J,EAAIp1J,+CAGR,SAAuB5/B,GACrB,IAAMopgB,EAAQxjhB,KAAKwjhB,MACb8wG,EAAQt0nB,KAAKg2nB,YACb+jC,EAAQzlC,GAASA,EAAMtjnB,EACvBgppB,EAAQ1lC,GAASA,EAAM32mB,EAC7B,GAAIo8oB,GAASC,EAAO,CAClB,IAAM7zoB,EAAWotoB,GAAYn5oB,EAAQ+L,UAAU1lB,KAAKT,KAAMA,KAAKi+R,QAASj+R,KAAKo2pB,gBAC7E,IAAKjwoB,EACH,OAEF,IAAM3N,EAAOxY,KAAKksC,MAAQgonB,GAAel0pB,KAAMoa,GACzC49oB,EAAkBlxpB,OAAOw4C,OAAO,GAAIn5B,EAAUnmB,KAAKksC,OACnDwP,EAAYi6mB,GAAmBnyI,EAAOppgB,EAAS49oB,GAC/Chxf,EAAQ6uf,GAAmBz7oB,EAAS49oB,EAAiBt8mB,EAAW8ne,GAClEu2I,EAAM1kC,MAAQrud,EAAMh2J,GAAKgppB,EAAM3kC,MAAQrud,EAAMrpJ,IAC/C3d,KAAKu1pB,OAAS75mB,EAAU65mB,OACxBv1pB,KAAKq1pB,OAAS35mB,EAAU25mB,OACxBr1pB,KAAKsR,MAAQkH,EAAKlH,MAClBtR,KAAKuR,OAASiH,EAAKjH,OACnBvR,KAAKw2pB,OAASrwoB,EAASnV,EACvBhR,KAAKy2pB,OAAStwoB,EAASxI,EACvB3d,KAAK49nB,qBAAqBv/mB,OAAOre,KAAMgnK,yBAI7C,SAAKooC,GACH,IAAMh1L,EAAUpa,KAAKoa,QAAQuxmB,WAAW3rnB,KAAK27D,cACzCu1E,EAAUlxI,KAAKkxI,QACnB,GAAKA,EAAL,CAGAlxI,KAAKi6pB,uBAAuB7/oB,GAC5B,IAAMw/oB,EAAc,CAClBtopB,MAAOtR,KAAKsR,MACZC,OAAQvR,KAAKuR,QAETsvT,EAAK,CACT7vT,EAAGhR,KAAKgR,EACR2M,EAAG3d,KAAK2d,GAEVuzH,EAAUvrH,KAAK23B,IAAI4zF,GAAW,KAAO,EAAIA,EACzC,IAAM/iH,EAAU27lB,GAAU1vmB,EAAQ+T,SAC5B+roB,EAAoBl6pB,KAAK4rB,MAAMtrB,QAAUN,KAAK00pB,WAAWp0pB,QAAUN,KAAKuoC,KAAKjoC,QAAUN,KAAK20pB,UAAUr0pB,QAAUN,KAAKqsb,OAAO/rb,OAC9H8Z,EAAQkvB,SAAW4wnB,IACrB9qd,EAAI9wK,OACJ8wK,EAAI+qd,YAAcjphB,EAClBlxI,KAAKg6oB,eAAen5U,EAAIzxH,EAAKwqd,EAAax/oB,GAC1C83mB,GAAsB9ib,EAAKh1L,EAAQq3oB,eACnC5wV,EAAGljT,GAAKwQ,EAAQrV,IAChB9Y,KAAKk6oB,UAAUr5U,EAAIzxH,EAAKh1L,GACxBpa,KAAKo6pB,SAASv5V,EAAIzxH,EAAKh1L,GACvBpa,KAAKq6pB,WAAWx5V,EAAIzxH,EAAKh1L,GACzBi4mB,GAAqBjjb,EAAKh1L,EAAQq3oB,eAClCrid,EAAIq3a,6CAGR,WACE,OAAOzmnB,KAAKi+R,SAAW,oCAEzB,SAAkB49D,EAAgB63T,GAAe,WACzChQ,EAAa1jpB,KAAKi+R,QAClB9yQ,EAAS0wU,EAAe31V,KAAI,YAA2B,IAAzBkumB,EAAyB,EAAzBA,aAAcvzmB,EAAW,EAAXA,MAC1CkmF,EAAO,EAAKy8b,MAAM82G,eAAelmB,GACvC,IAAKrthB,EACH,MAAM,IAAI1xC,MAAM,kCAAoC++jB,GAEtD,MAAO,CACLA,aAAAA,EACAt0mB,QAASinF,EAAKl5E,KAAKhN,GACnBA,MAAAA,MAGE28O,GAAWs2X,EAAe4vC,EAAYv4nB,GACtCmvoB,EAAkBt6pB,KAAKu6pB,iBAAiBpvoB,EAAQuooB,IAClDl2a,GAAW88a,KACbt6pB,KAAKi+R,QAAU9yQ,EACfnrB,KAAKo2pB,eAAiB1C,EACtB1zpB,KAAKw6pB,qBAAsB,EAC3Bx6pB,KAAKqe,QAAO,+BAGhB,SAAY7d,EAAGojL,GAA4B,IAApBkge,IAAoB,yDACzC,GAAIlge,GAAU5jL,KAAKw6pB,oBACjB,OAAO,EAETx6pB,KAAKw6pB,qBAAsB,EAC3B,IAAMpgpB,EAAUpa,KAAKoa,QACfspoB,EAAa1jpB,KAAKi+R,SAAW,GAC7B9yQ,EAASnrB,KAAKikpB,mBAAmBzjpB,EAAGkjpB,EAAY9/d,EAAQkge,GACxDwW,EAAkBt6pB,KAAKu6pB,iBAAiBpvoB,EAAQ3qB,GAChDg9O,EAAU55D,IAAWkwb,EAAe3olB,EAAQu4nB,IAAe4W,EAWjE,OAVI98a,IACFx9O,KAAKi+R,QAAU9yQ,GACX/Q,EAAQkvB,SAAWlvB,EAAQ89oB,YAC7Bl4pB,KAAKo2pB,eAAiB,CACpBplpB,EAAGxQ,EAAEwQ,EACL2M,EAAGnd,EAAEmd,GAEP3d,KAAKqe,QAAO,EAAMulK,KAGf45D,oCAET,SAAmBh9O,EAAGkjpB,EAAY9/d,EAAQkge,GACxC,IAAM1poB,EAAUpa,KAAKoa,QACrB,GAAe,aAAX5Z,EAAEmjB,KACJ,MAAO,GAET,IAAKmgoB,EACH,OAAOJ,EAET,IAAMv4nB,EAASnrB,KAAKwjhB,MAAM4gI,0BAA0B5jpB,EAAG4Z,EAAQiqD,KAAMjqD,EAASwpK,GAI9E,OAHIxpK,EAAQ2Z,SACV5I,EAAO4I,UAEF5I,kCAET,SAAiBA,EAAQ3qB,GACvB,IAAOg2pB,EAA2Bx2pB,KAA3Bw2pB,OAAQC,EAAmBz2pB,KAAnBy2pB,OAAQr8oB,EAAWpa,KAAXoa,QACjB+L,EAAWotoB,GAAYn5oB,EAAQ+L,UAAU1lB,KAAKT,KAAMmrB,EAAQ3qB,GAClE,OAAoB,IAAb2lB,IAAuBqwoB,IAAWrwoB,EAASnV,GAAKylpB,IAAWtwoB,EAASxI,SA/gBzEy+H,CAAgB97E,IAkhBtB87E,GAAQm3gB,YAAcA,GACtB,IAAIkH,GAAiB,CACnBxwpB,GAAI,UACJ4hC,SAAUuwG,GACVm3gB,YAAAA,GACAmH,UAJmB,SAITl3I,EAAO6rI,EAAOj1oB,GAClBA,IACFopgB,EAAMh4b,QAAU,IAAI4wD,GAAQ,CAAConY,MAAAA,EAAOppgB,QAAAA,MAGxCy5nB,aATmB,SASNrwH,EAAO6rI,EAAOj1oB,GACrBopgB,EAAMh4b,SACRg4b,EAAMh4b,QAAQ9kF,WAAW0T,IAG7BmhB,MAdmB,SAcbiof,EAAO6rI,EAAOj1oB,GACdopgB,EAAMh4b,SACRg4b,EAAMh4b,QAAQ9kF,WAAW0T,IAG7BugpB,UAnBmB,SAmBTn3I,GACR,IAAMh4b,EAAUg4b,EAAMh4b,QAChBhlE,EAAO,CACXglE,QAAAA,IAEqD,IAAnDg4b,EAAMgyH,cAAc,oBAAqBhvnB,KAGzCglE,GACFA,EAAQo1I,KAAK4iT,EAAMp0U,KAErBo0U,EAAMgyH,cAAc,mBAAoBhvnB,KAE1CosoB,WAhCmB,SAgCRpvI,EAAOh9f,GAChB,GAAIg9f,EAAMh4b,QAAS,CACjB,IAAM+8iB,EAAmB/hnB,EAAKo9J,OAC1B4/V,EAAMh4b,QAAQqnkB,YAAYrsoB,EAAKhM,MAAO+tnB,EAAkB/hnB,EAAKs9nB,eAC/Dt9nB,EAAKg3N,SAAU,KAIrB12B,SAAU,CACRx9K,SAAS,EACT4unB,SAAU,KACV/xoB,SAAU,UACVkd,gBAAiB,kBACjBo1nB,WAAY,OACZxG,UAAW,CACT39mB,OAAQ,QAEVsgnB,aAAc,EACdC,kBAAmB,EACnBviB,WAAY,OACZknB,UAAW,OACXzE,YAAa,EACbZ,SAAU,GAEVgF,UAAW,OACXQ,YAAa,OACb1E,cAAe,EACfD,gBAAiB,EACjBZ,WAAY,CACV9/mB,OAAQ,QAEVolnB,YAAa,OACbvroB,QAAS,EACTsnoB,aAAc,EACdD,UAAW,EACX10I,aAAc,EACd+uI,UAAW,SAACzgd,EAAKpmF,GAAN,OAAeA,EAAKmriB,SAAS37oB,MACxCs3oB,SAAU,SAAC1gd,EAAKpmF,GAAN,OAAeA,EAAKmriB,SAAS37oB,MACvCsgpB,mBAAoB,OACpBhE,eAAe,EACfrqB,WAAY,EACZxxlB,YAAa,gBACbH,YAAa,EACbwrL,UAAW,CACT9E,SAAU,IACVlC,OAAQ,gBAEVomS,WAAY,CACV94Y,QAAS,CACPjnG,KAAM,SACNs2C,WAAY,CAAC,IAAK,IAAK,QAAS,SAAU,SAAU,WAEtDi3E,QAAS,CACPosF,OAAQ,SACRkC,SAAU,MAGd9uM,UAAW,CACTqmoB,YAAa/kc,EACbpmM,MAFS,SAEHiroB,GACJ,GAAIA,EAAav2pB,OAAS,EAAG,CAC3B,IAAMJ,EAAO22pB,EAAa,GACpBx0nB,EAASniC,EAAKsjhB,MAAM31gB,KAAKw0B,OACzBu4nB,EAAav4nB,EAASA,EAAO/hC,OAAS,EAC5C,GAAIN,MAAQA,KAAKoa,SAAiC,YAAtBpa,KAAKoa,QAAQiqD,KACvC,OAAOnkE,EAAK0Y,QAAQyqI,OAAS,GACxB,GAAInjJ,EAAKmjJ,MACd,OAAOnjJ,EAAKmjJ,MACP,GAAIu3gB,EAAa,GAAK16pB,EAAK+8nB,UAAY29B,EAC5C,OAAOv4nB,EAAOniC,EAAK+8nB,WAGvB,MAAO,IAET+5B,WAAYhlc,EACZ0ic,WAAY1ic,EACZmlc,YAAanlc,EACb3uE,MApBS,SAoBHiif,GACJ,GAAItloB,MAAQA,KAAKoa,SAAiC,YAAtBpa,KAAKoa,QAAQiqD,KACvC,OAAOihkB,EAAYjif,MAAQ,KAAOiif,EAAY3kO,gBAAkB2kO,EAAY3kO,eAE9E,IAAIt9Q,EAAQiif,EAAY1snB,QAAQyqI,OAAS,GACrCA,IACFA,GAAS,MAEX,IAAMzhJ,EAAQ0joB,EAAY3kO,eAI1B,OAHKkzH,EAAcjyhB,KACjByhJ,GAASzhJ,GAEJyhJ,GAETm0gB,WAlCS,SAkCElyB,GACT,IACMlrnB,EADOkrnB,EAAY9hH,MAAM82G,eAAegL,EAAYlxB,cACrCl6f,WAAWi3gB,SAASmU,EAAYrI,WACrD,MAAO,CACLhklB,YAAa7+B,EAAQ6+B,YACrB5V,gBAAiBjpB,EAAQipB,gBACzByV,YAAa1+B,EAAQ0+B,YACrBi7kB,WAAY35mB,EAAQ25mB,WACpBC,iBAAkB55mB,EAAQ45mB,iBAC1B2wB,aAAc,IAGlB+S,eA9CS,WA+CP,OAAO13pB,KAAKoa,QAAQo/oB,WAEtB/B,gBAjDS,SAiDOnyB,GACd,IACMlrnB,EADOkrnB,EAAY9hH,MAAM82G,eAAegL,EAAYlxB,cACrCl6f,WAAWi3gB,SAASmU,EAAYrI,WACrD,MAAO,CACL7V,WAAYhtmB,EAAQgtmB,WACpBhsU,SAAUhhS,EAAQghS,WAGtBg8W,WAAYplc,EACZ2ic,UAAW3ic,EACXqlc,aAAcrlc,EACdq6N,OAAQr6N,EACRslc,YAAatlc,IAGjB48a,cAAe,CACbulB,SAAU,OACVC,WAAY,OACZnC,UAAW,QAEb5tC,YAAa,CACXyB,YAAa,SAACt4mB,GAAD,MAAmB,WAATA,GAA8B,aAATA,GAAgC,aAATA,GACnEu4mB,YAAY,EACZr1lB,UAAW,CACTo1lB,aAAa,EACbC,YAAY,GAEdzhZ,UAAW,CACT0hZ,WAAW,GAEbtiH,WAAY,CACVsiH,UAAW,cAGf63B,uBAAwB,CAAC,gBAGvBx8I,GAAuBv6f,OAAOqtM,OAAO,CACzCp4D,UAAW,KACX8+gB,WAAYlQ,GACZmQ,OAAQ3L,GACRc,OAAQyC,GACRqI,SAAUzH,GACVR,MAAOK,GACP/2gB,QAASq+gB,KAYT,SAASO,GAAe34nB,EAAQikM,EAAKzlO,EAAOo6pB,GAC1C,IAAMjxlB,EAAQ3nC,EAAOl8B,QAAQmgO,GAC7B,OAAe,IAAXt8J,EAXc,SAAC3nC,EAAQikM,EAAKzlO,EAAOo6pB,GAOvC,MANmB,kBAAR30b,GACTzlO,EAAQwhC,EAAOzhC,KAAK0lO,GAAO,EAC3B20b,EAAY/9f,QAAQ,CAACr8J,MAAAA,EAAOwiJ,MAAOijF,KAC1B98L,MAAM88L,KACfzlO,EAAQ,MAEHA,EAKEq6pB,CAAY74nB,EAAQikM,EAAKzlO,EAAOo6pB,GAGlCjxlB,IADM3nC,EAAO4iD,YAAYqhJ,GACRzlO,EAAQmpE,EAElC,IACMmxlB,GAAAA,SAAAA,iCACJ,WAAYjmC,GAAK,6BACf,cAAMA,IACDkmC,iBAAchjpB,EACnB,EAAKijpB,YAAc,EACnB,EAAKC,aAAe,GAJL,qCAMjB,SAAKhf,GACH,IAAMrlmB,EAAQj3C,KAAKs7pB,aACnB,GAAIrknB,EAAM32C,OAAQ,CAChB,IADgB,EACV+hC,EAASriC,KAAK07nB,YADJ,UAEazklB,GAFb,IAEhB,2BAAoC,eAAxBp2C,EAAwB,EAAxBA,MAAOwiJ,EAAiB,EAAjBA,MACbhhH,EAAOxhC,KAAWwiJ,GACpBhhH,EAAO9yB,OAAO1O,EAAO,IAJT,8BAOhBb,KAAKs7pB,aAAe,IAEtB,mDAAWhf,wBAEb,SAAMh2a,EAAKzlO,GACT,GAAIgzhB,EAAcvtT,GAChB,OAAO,KAET,IAAMjkM,EAASriC,KAAK07nB,YAGpB,OA5Be,SAAC76nB,EAAO+kB,GAAR,OAA0B,OAAV/kB,EAAiB,KAAO22mB,GAAY7xlB,KAAK6H,MAAM3sB,GAAQ,EAAG+kB,GA4BlFssnB,CAFPrxoB,EAAQslH,SAAStlH,IAAUwhC,EAAOxhC,KAAWylO,EAAMzlO,EAC/Cm6pB,GAAe34nB,EAAQikM,EAAKqtY,EAAe9ymB,EAAOylO,GAAMtmO,KAAKs7pB,cACxCj5nB,EAAO/hC,OAAS,sCAE3C,WACE,MAAiCN,KAAKm8nB,gBAA/Bn+G,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,WACnB,EAAiBj+gB,KAAK0zoB,WAAU,GAA3B5tnB,EAAL,EAAKA,IAAKF,EAAV,EAAUA,IACkB,UAAxB5lB,KAAKoa,QAAQ4B,SACVgigB,IACHl4f,EAAM,GAEHm4f,IACHr4f,EAAM5lB,KAAK07nB,YAAYp7nB,OAAS,IAGpCN,KAAK8lB,IAAMA,EACX9lB,KAAK4lB,IAAMA,4BAEb,WACE,IAAME,EAAM9lB,KAAK8lB,IACXF,EAAM5lB,KAAK4lB,IACXra,EAASvL,KAAKoa,QAAQ7O,OACtBwznB,EAAQ,GACV18lB,EAASriC,KAAK07nB,YAClBr5lB,EAAkB,IAARvc,GAAaF,IAAQyc,EAAO/hC,OAAS,EAAK+hC,EAASA,EAAO58B,MAAMqgB,EAAKF,EAAM,GACrF5lB,KAAKq7pB,YAAc11oB,KAAKC,IAAIyc,EAAO/hC,QAAUiL,EAAS,EAAI,GAAI,GAC9DvL,KAAKo7pB,YAAcp7pB,KAAK8lB,KAAOva,EAAS,GAAM,GAC9C,IAAK,IAAI3J,EAAQkkB,EAAKlkB,GAASgkB,EAAKhkB,IAClCm9nB,EAAMn+nB,KAAK,CAACgB,MAAAA,IAEd,OAAOm9nB,kCAET,SAAiBn9nB,GACf,IAAMygC,EAASriC,KAAK07nB,YACpB,OAAI95nB,GAAS,GAAKA,EAAQygC,EAAO/hC,OACxB+hC,EAAOzgC,GAETA,2BAET,YACE,yDACK5B,KAAKotX,iBACRptX,KAAKmooB,gBAAkBnooB,KAAKmooB,gDAGhC,SAAiBvmoB,GAIf,MAHqB,kBAAVA,IACTA,EAAQ5B,KAAKq2F,MAAMz0F,IAEJ,OAAVA,EAAiBqkH,IAAMjmH,KAAK2ioB,oBAAoB/goB,EAAQ5B,KAAKo7pB,aAAep7pB,KAAKq7pB,4CAE1F,SAAgBx6pB,GACd,IAAMk+nB,EAAQ/+nB,KAAK++nB,MACnB,OAAIl+nB,EAAQ,GAAKA,EAAQk+nB,EAAMz+nB,OAAS,EAC/B,KAEFN,KAAK8+nB,iBAAiBC,EAAMl+nB,GAAOe,uCAE5C,SAAiBglnB,GACf,OAAOjhmB,KAAK6H,MAAMxtB,KAAKo7pB,YAAcp7pB,KAAKu7pB,mBAAmB30C,GAAS5mnB,KAAKq7pB,yCAE7E,WACE,OAAOr7pB,KAAKge,aAvFVm9oB,CAAsB3oB,IAiG5B,SAASgpB,GAAgBC,EAAmB19I,GAC1C,IAWIg3G,EAAQ2mC,EAASC,EAASC,EAXxB78B,EAAQ,GAEP/inB,EAAgFy/oB,EAAhFz/oB,OAAQqiC,EAAwEo9mB,EAAxEp9mB,KAAMv4B,EAAkE21oB,EAAlE31oB,IAAKF,EAA6D61oB,EAA7D71oB,IAAKzN,EAAwDsjpB,EAAxDtjpB,UAAW+gE,EAA6CuilB,EAA7CvilB,MAAO2ilB,EAAsCJ,EAAtCI,SAAUC,EAA4BL,EAA5BK,UAAWC,EAAiBN,EAAjBM,cAChEvqpB,EAAO6sC,GAAQ,EACf29mB,EAAYH,EAAW,EACjBI,EAAmBl+I,EAAxBj4f,IAAgBo2oB,EAAQn+I,EAAbn4f,IACZo4f,GAAc6V,EAAc/tgB,GAC5Bm4f,GAAc4V,EAAcjugB,GAC5Bu2oB,GAAgBtoI,EAAc36c,GAC9BkjlB,GAAcF,EAAOD,IAASH,EAAY,GAC5C54B,EAAUttB,IAASsmD,EAAOD,GAAQD,EAAYxqpB,GAAQA,EAE1D,GAAI0xnB,EAXgB,QAWUllH,IAAeC,EAC3C,MAAO,CAAC,CAACr8gB,MAAOq6pB,GAAO,CAACr6pB,MAAOs6pB,KAEjCN,EAAYj2oB,KAAK+iK,KAAKwze,EAAOh5B,GAAWv9mB,KAAKo1B,MAAMkhnB,EAAO/4B,IAC1C84B,IACd94B,EAAUttB,GAAQgmD,EAAY14B,EAAU84B,EAAYxqpB,GAAQA,GAEzDqihB,EAAc17gB,KACjB48mB,EAASpvmB,KAAKg7C,IAAI,GAAIxoD,GACtB+qnB,EAAUv9mB,KAAK+iK,KAAKw6c,EAAUnO,GAAUA,GAE3B,UAAX/4mB,GACF0/oB,EAAU/1oB,KAAKo1B,MAAMkhnB,EAAO/4B,GAAWA,EACvCy4B,EAAUh2oB,KAAK+iK,KAAKwze,EAAOh5B,GAAWA,IAEtCw4B,EAAUO,EACVN,EAAUO,GAERl+I,GAAcC,GAAc5/d,GDp4RlC,SAAqBrtC,EAAGglmB,GACtB,IAAMqmD,EAAU12oB,KAAK6H,MAAMxc,GAC3B,OAASqrpB,EAAUrmD,GAAYhlmB,GAAQqrpB,EAAUrmD,GAAYhlmB,ECk4RrBsrpB,EAAa12oB,EAAME,GAAOu4B,EAAM6klB,EAAU,MAEhFA,GAAWt9mB,EAAME,IADjB81oB,EAAYj2oB,KAAK6H,MAAM7H,KAAKG,KAAKF,EAAME,GAAOo9mB,EAAS24B,KAEvDH,EAAU51oB,EACV61oB,EAAU/1oB,GACDu2oB,EAITj5B,IAFAy4B,EAAU19I,EAAar4f,EAAM+1oB,IAD7BD,EAAU19I,EAAal4f,EAAM41oB,KAE7BE,EAAY1ilB,EAAQ,GAKlB0ilB,EADE9lD,GADJ8lD,GAAaD,EAAUD,GAAWx4B,EACNv9mB,KAAK6H,MAAMouoB,GAAY14B,EAAU,KAC/Cv9mB,KAAK6H,MAAMouoB,GAEXj2oB,KAAK+iK,KAAKkze,GAG1B,IAAMW,EAAgB52oB,KAAKC,IACzB0wlB,GAAe4sB,GACf5sB,GAAeolD,IAEjB3mC,EAASpvmB,KAAKg7C,IAAI,GAAIkzd,EAAc17gB,GAAaokpB,EAAgBpkpB,GACjEujpB,EAAU/1oB,KAAK6H,MAAMkuoB,EAAU3mC,GAAUA,EACzC4mC,EAAUh2oB,KAAK6H,MAAMmuoB,EAAU5mC,GAAUA,EACzC,IAAIxqiB,EAAI,EAcR,IAbIyzb,IACE+9I,GAAiBL,IAAY51oB,GAC/Bi5mB,EAAMn+nB,KAAK,CAACgB,MAAOkkB,IACf41oB,EAAU51oB,GACZykE,IAEEurhB,GAAanwlB,KAAK6H,OAAOkuoB,EAAUnxkB,EAAI24iB,GAAWnO,GAAUA,EAAQjvmB,EAAK02oB,GAAkB12oB,EAAKs2oB,EAAYX,KAC9GlxkB,KAEOmxkB,EAAU51oB,GACnBykE,KAGGA,EAAIqxkB,IAAarxkB,EACtBw0iB,EAAMn+nB,KAAK,CAACgB,MAAO+jB,KAAK6H,OAAOkuoB,EAAUnxkB,EAAI24iB,GAAWnO,GAAUA,IAWpE,OATI92G,GAAc89I,GAAiBJ,IAAY/1oB,EACzCm5mB,EAAMz+nB,QAAUw1mB,GAAaipB,EAAMA,EAAMz+nB,OAAS,GAAGsB,MAAOgkB,EAAK42oB,GAAkB52oB,EAAKw2oB,EAAYX,IACtG18B,EAAMA,EAAMz+nB,OAAS,GAAGsB,MAAQgkB,EAEhCm5mB,EAAMn+nB,KAAK,CAACgB,MAAOgkB,IAEXq4f,GAAc09I,IAAY/1oB,GACpCm5mB,EAAMn+nB,KAAK,CAACgB,MAAO+5pB,IAEd58B,EAET,SAASy9B,GAAkB56pB,EAAOw6pB,EAAlC,GAAyE,IAA1BvtmB,EAA0B,EAA1BA,WACvCw4jB,EAAMnR,GAD2D,EAAdg7B,aAEnD94T,GAASvpR,EAAalpC,KAAKixf,IAAIywG,GAAO1hmB,KAAKivP,IAAIyyW,KAAS,KACxD/mnB,EAAS,IAAO87pB,GAAc,GAAKx6pB,GAAOtB,OAChD,OAAOqlB,KAAKG,IAAIs2oB,EAAahkV,EAAO93U,GA/FtC66pB,GAAclxpB,GAAK,WACnBkxpB,GAAcr0c,SAAW,CACvBi4a,MAAO,CACLvwkB,SAAU2smB,GAAc31pB,UAAUi3nB,uBA8FhCggC,GAAAA,SAAAA,iCACJ,WAAYvnC,GAAK,6BACf,cAAMA,IACDr5mB,WAAQzD,EACb,EAAKgb,SAAMhb,EACX,EAAKgjpB,iBAAchjpB,EACnB,EAAKskpB,eAAYtkpB,EACjB,EAAKijpB,YAAc,EANJ,sCAQjB,SAAM/0b,EAAKzlO,GACT,OAAIgzhB,EAAcvtT,KAGE,kBAARA,GAAoBA,aAAe72K,UAAY02D,UAAUmgH,GAF5D,MAKDA,wCAEV,WACE,IAAOm8Z,EAAezioB,KAAKoa,QAApBqonB,YACP,EAAiCzioB,KAAKm8nB,gBAA/Bn+G,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,WACdn4f,EAAY9lB,KAAZ8lB,IAAKF,EAAO5lB,KAAP4lB,IACJ+2oB,EAAS,SAAA91mB,GAAC,OAAK/gC,EAAMk4f,EAAal4f,EAAM+gC,GACxC+1mB,EAAS,SAAA/1mB,GAAC,OAAKjhC,EAAMq4f,EAAar4f,EAAMihC,GAC9C,GAAI47kB,EAAa,CACf,IAAMo6B,EAAUrpmB,GAAK1tC,GACfg3oB,EAAUtpmB,GAAK5tC,GACjBi3oB,EAAU,GAAKC,EAAU,EAC3BF,EAAO,GACEC,EAAU,GAAKC,EAAU,GAClCH,EAAO,GAGX,GAAI72oB,IAAQF,EAAK,CACf,IAAIra,EAAS,GACTqa,GAAO6pC,OAAOsiF,kBAAoBjsH,GAAO2pC,OAAOwiF,oBAClD1mI,EAASoa,KAAK23B,IAAU,IAAN13B,IAEpBg3oB,EAAOh3oB,EAAMra,GACRk3nB,GACHk6B,EAAO72oB,EAAMva,GAGjBvL,KAAK8lB,IAAMA,EACX9lB,KAAK4lB,IAAMA,8BAEb,WACE,IAEIi2oB,EAFExsB,EAAWrvoB,KAAKoa,QAAQ2knB,MACzBwQ,EAA2BF,EAA3BE,cAAewtB,EAAY1tB,EAAZ0tB,SAepB,OAbIA,GACFlB,EAAWl2oB,KAAK+iK,KAAK1oL,KAAK4lB,IAAMm3oB,GAAYp3oB,KAAKo1B,MAAM/6C,KAAK8lB,IAAMi3oB,GAAY,GAC/D,MACb3ynB,QAAQC,KAAR,iBAAuBrqC,KAAKiK,GAA5B,4BAAkD8ypB,EAAlD,0CAA4FlB,EAA5F,8BACAA,EAAW,MAGbA,EAAW77pB,KAAKg9pB,mBAChBztB,EAAgBA,GAAiB,IAE/BA,IACFssB,EAAWl2oB,KAAKG,IAAIypnB,EAAessB,IAE9BA,kCAET,WACE,OAAOpsmB,OAAO6ljB,4CAEhB,WACE,IAAMtsf,EAAOhpH,KAAKoa,QACZi1nB,EAAWrmhB,EAAK+1gB,MAClB88B,EAAW77pB,KAAKi9pB,eAgBdl+B,EAAQy8B,GAdkB,CAC9BK,SAFFA,EAAWl2oB,KAAKC,IAAI,EAAGi2oB,GAGrB7/oB,OAAQgtG,EAAKhtG,OACb8J,IAAKkjG,EAAKljG,IACVF,IAAKojG,EAAKpjG,IACVzN,UAAWk3nB,EAASl3nB,UACpBkmC,KAAMgxlB,EAAS0tB,SACf7jlB,MAAOm2jB,EAASn2jB,MAChB4ilB,UAAW97pB,KAAKk9pB,aAChBrumB,WAAY7uD,KAAKotX,eACjB8jR,YAAa7B,EAAS6B,aAAe,EACrC6qB,eAA0C,IAA3B1sB,EAAS0sB,eAER/7pB,KAAK2yoB,QAAU3yoB,MAajC,MAXoB,UAAhBgpH,EAAKhtG,QACPi6lB,GAAmB8oB,EAAO/+nB,KAAM,SAE9BgpH,EAAKj1F,SACPgrmB,EAAMhrmB,UACN/zB,KAAK6b,MAAQ7b,KAAK4lB,IAClB5lB,KAAKozB,IAAMpzB,KAAK8lB,MAEhB9lB,KAAK6b,MAAQ7b,KAAK8lB,IAClB9lB,KAAKozB,IAAMpzB,KAAK4lB,KAEXm5mB,2BAET,WACE,IAAMA,EAAQ/+nB,KAAK++nB,MACfljnB,EAAQ7b,KAAK8lB,IACbsN,EAAMpzB,KAAK4lB,IAEf,IADA,yDACI5lB,KAAKoa,QAAQ7O,QAAUwznB,EAAMz+nB,OAAQ,CACvC,IAAMiL,GAAU6nB,EAAMvX,GAAS8J,KAAKC,IAAIm5mB,EAAMz+nB,OAAS,EAAG,GAAK,EAC/Dub,GAAStQ,EACT6nB,GAAO7nB,EAETvL,KAAKo7pB,YAAcv/oB,EACnB7b,KAAK08pB,UAAYtpoB,EACjBpzB,KAAKq7pB,YAAcjooB,EAAMvX,kCAE3B,SAAiBja,GACf,OAAO0iT,GAAa1iT,EAAO5B,KAAKwjhB,MAAMppgB,QAAQrN,OAAQ/M,KAAKoa,QAAQ2knB,MAAMjmmB,cApHvE2joB,CAAwBjqB,IAwHxB2qB,GAAAA,SAAAA,8IACJ,WACE,MAAmBn9pB,KAAK0zoB,WAAU,GAA3B5tnB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IACZ5lB,KAAK8lB,IAAM2tlB,EAAe3tlB,GAAOA,EAAM,EACvC9lB,KAAK4lB,IAAM6tlB,EAAe7tlB,GAAOA,EAAM,EACvC5lB,KAAKo9pB,yDAEP,WACE,IAAMvumB,EAAa7uD,KAAKotX,eAClB9sX,EAASuuD,EAAa7uD,KAAKsR,MAAQtR,KAAKuR,OACxC2/nB,EAAch7B,GAAUl2mB,KAAKoa,QAAQ2knB,MAAMmS,aAC3C94T,GAASvpR,EAAalpC,KAAKixf,IAAIs6H,GAAevrnB,KAAKivP,IAAIs8X,KAAiB,KACxEgG,EAAWl3oB,KAAKy3oB,wBAAwB,GAC9C,OAAO9xnB,KAAK+iK,KAAKpoL,EAASqlB,KAAKG,IAAI,GAAIoxnB,EAAStjmB,WAAawkS,oCAE/D,SAAiBx2U,GACf,OAAiB,OAAVA,EAAiBqkH,IAAMjmH,KAAK2ioB,oBAAoB/goB,EAAQ5B,KAAKo7pB,aAAep7pB,KAAKq7pB,6CAE1F,SAAiBz0C,GACf,OAAO5mnB,KAAKo7pB,YAAcp7pB,KAAKu7pB,mBAAmB30C,GAAS5mnB,KAAKq7pB,kBAnB9D8B,CAAoBV,IA6B1B,SAASY,GAAQC,GAEf,OAAkB,IADHA,EAAW33oB,KAAKg7C,IAAI,GAAIh7C,KAAKo1B,MAAM46jB,EAAM2nD,KAR1DH,GAAYlzpB,GAAK,SACjBkzpB,GAAYr2c,SAAW,CACrBi4a,MAAO,CACLvwkB,SAAU2glB,GAAMN,WAAW32gB,cA8BzBqliB,GAAAA,SAAAA,iCACJ,WAAYroC,GAAK,6BACf,cAAMA,IACDr5mB,WAAQzD,EACb,EAAKgb,SAAMhb,EACX,EAAKgjpB,iBAAchjpB,EACnB,EAAKijpB,YAAc,EALJ,sCAOjB,SAAM/0b,EAAKzlO,GACT,IAAMe,EAAQ66pB,GAAgBj3pB,UAAU6wF,MAAMrwE,MAAMhmB,KAAM,CAACsmO,EAAKzlO,IAChE,GAAc,IAAVe,EAIJ,OAAO6xmB,EAAe7xmB,IAAUA,EAAQ,EAAIA,EAAQ,KAHlD5B,KAAKw9pB,OAAQ,qCAKjB,WACE,MAAmBx9pB,KAAK0zoB,WAAU,GAA3B5tnB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IACZ5lB,KAAK8lB,IAAM2tlB,EAAe3tlB,GAAOH,KAAKC,IAAI,EAAGE,GAAO,KACpD9lB,KAAK4lB,IAAM6tlB,EAAe7tlB,GAAOD,KAAKC,IAAI,EAAGA,GAAO,KAChD5lB,KAAKoa,QAAQqonB,cACfzioB,KAAKw9pB,OAAQ,GAEfx9pB,KAAKo9pB,+DAEP,WACE,MAAiCp9pB,KAAKm8nB,gBAA/Bn+G,EAAP,EAAOA,WAAYC,EAAnB,EAAmBA,WACfn4f,EAAM9lB,KAAK8lB,IACXF,EAAM5lB,KAAK4lB,IACT+2oB,EAAS,SAAA91mB,GAAC,OAAK/gC,EAAMk4f,EAAal4f,EAAM+gC,GACxC+1mB,EAAS,SAAA/1mB,GAAC,OAAKjhC,EAAMq4f,EAAar4f,EAAMihC,GACxC42mB,EAAM,SAAC52mB,EAAG4Q,GAAJ,OAAU9xC,KAAKg7C,IAAI,GAAIh7C,KAAKo1B,MAAM46jB,EAAM9ujB,IAAM4Q,IACtD3xC,IAAQF,IACNE,GAAO,GACT62oB,EAAO,GACPC,EAAO,MAEPD,EAAOc,EAAI33oB,GAAM,IACjB82oB,EAAOa,EAAI73oB,EAAK,MAGhBE,GAAO,GACT62oB,EAAOc,EAAI73oB,GAAM,IAEfA,GAAO,GACTg3oB,EAAOa,EAAI33oB,EAAK,IAEd9lB,KAAKw9pB,OAASx9pB,KAAK8lB,MAAQ9lB,KAAKmzoB,eAAiBrtnB,IAAQ23oB,EAAIz9pB,KAAK8lB,IAAK,IACzE62oB,EAAOc,EAAI33oB,GAAM,IAEnB9lB,KAAK8lB,IAAMA,EACX9lB,KAAK4lB,IAAMA,4BAEb,WACE,IAAMojG,EAAOhpH,KAAKoa,QAKZ2knB,EAjFV,SAAuB08B,EAAmB19I,GACxC,IAAM2/I,EAAS/3oB,KAAKo1B,MAAM46jB,EAAM53F,EAAUn4f,MACpC+3oB,EAAiBh4oB,KAAK+iK,KAAKq1V,EAAUn4f,IAAMD,KAAKg7C,IAAI,GAAI+8lB,IACxD3+B,EAAQ,GACVu+B,EAAU5pD,EAAgB+nD,EAAkB31oB,IAAKH,KAAKg7C,IAAI,GAAIh7C,KAAKo1B,MAAM46jB,EAAM53F,EAAUj4f,QACzF23oB,EAAM93oB,KAAKo1B,MAAM46jB,EAAM2nD,IACvBM,EAAcj4oB,KAAKo1B,MAAMuinB,EAAU33oB,KAAKg7C,IAAI,GAAI88lB,IAChDtlpB,EAAYslpB,EAAM,EAAI93oB,KAAKg7C,IAAI,GAAIh7C,KAAK23B,IAAImgnB,IAAQ,EACxD,GACE1+B,EAAMn+nB,KAAK,CAACgB,MAAO07pB,EAASvtB,MAAOstB,GAAQC,KAEvB,OADlBM,IAEAA,EAAc,EAEdzlpB,IADEslpB,GACiB,EAAI,EAAItlpB,GAE7BmlpB,EAAU33oB,KAAK6H,MAAMowoB,EAAcj4oB,KAAKg7C,IAAI,GAAI88lB,GAAOtlpB,GAAaA,QAC7DslpB,EAAMC,GAAWD,IAAQC,GAAUE,EAAcD,GAC1D,IAAME,EAAWnqD,EAAgB+nD,EAAkB71oB,IAAK03oB,GAExD,OADAv+B,EAAMn+nB,KAAK,CAACgB,MAAOi8pB,EAAU9tB,MAAOstB,GAAQC,KACrCv+B,EA6DS++B,CAJY,CACxBh4oB,IAAK9lB,KAAKizoB,SACVrtnB,IAAK5lB,KAAKgzoB,UAEmChzoB,MAY/C,MAXoB,UAAhBgpH,EAAKhtG,QACPi6lB,GAAmB8oB,EAAO/+nB,KAAM,SAE9BgpH,EAAKj1F,SACPgrmB,EAAMhrmB,UACN/zB,KAAK6b,MAAQ7b,KAAK4lB,IAClB5lB,KAAKozB,IAAMpzB,KAAK8lB,MAEhB9lB,KAAK6b,MAAQ7b,KAAK8lB,IAClB9lB,KAAKozB,IAAMpzB,KAAK4lB,KAEXm5mB,kCAET,SAAiBn9nB,GACf,YAAiBwW,IAAVxW,EACH,IACA0iT,GAAa1iT,EAAO5B,KAAKwjhB,MAAMppgB,QAAQrN,OAAQ/M,KAAKoa,QAAQ2knB,MAAMjmmB,iCAExE,WACE,IAAMjd,EAAQ7b,KAAK8lB,KACnB,yDACA9lB,KAAKo7pB,YAAczlD,EAAM95lB,GACzB7b,KAAKq7pB,YAAc1lD,EAAM31mB,KAAK4lB,KAAO+vlB,EAAM95lB,mCAE7C,SAAiBja,GAIf,YAHcwW,IAAVxW,GAAiC,IAAVA,IACzBA,EAAQ5B,KAAK8lB,KAED,OAAVlkB,GAAkB4nC,MAAM5nC,GACnBqkH,IAEFjmH,KAAK2ioB,mBAAmB/goB,IAAU5B,KAAK8lB,IAC1C,GACC6vlB,EAAM/zmB,GAAS5B,KAAKo7pB,aAAep7pB,KAAKq7pB,6CAE/C,SAAiBz0C,GACf,IAAM7hlB,EAAU/kC,KAAKu7pB,mBAAmB30C,GACxC,OAAOjhmB,KAAKg7C,IAAI,GAAI3gE,KAAKo7pB,YAAcr2nB,EAAU/kC,KAAKq7pB,mBAjGpDkC,CAAyB/qB,IA8G/B,SAASurB,GAAsB/0iB,GAC7B,IAAMqmhB,EAAWrmhB,EAAK+1gB,MACtB,GAAIsQ,EAAShwnB,SAAW2pG,EAAK3pG,QAAS,CACpC,IAAM8O,EAAU27lB,GAAUulB,EAASsC,iBACnC,OAAOh+B,EAAe07B,EAASpic,MAAQoic,EAASpic,KAAKz0L,KAAMsuM,GAAS7Z,KAAKz0L,MAAQ2V,EAAQ5c,OAE3F,OAAO,EAST,SAASyspB,GAAgBxsnB,EAAO8nC,EAAK9gE,EAAMsN,EAAKF,GAC9C,OAAI4rB,IAAU1rB,GAAO0rB,IAAU5rB,EACtB,CACL/J,MAAOy9D,EAAO9gE,EAAO,EACrB4a,IAAKkmD,EAAO9gE,EAAO,GAEZg5B,EAAQ1rB,GAAO0rB,EAAQ5rB,EACzB,CACL/J,MAAOy9D,EAAM9gE,EACb4a,IAAKkmD,GAGF,CACLz9D,MAAOy9D,EACPlmD,IAAKkmD,EAAM9gE,GAGf,SAASylpB,GAAmB38b,GAa1B,IAZA,IAzBwBlyB,EAAKnC,EAAM5pD,EAyB7B0zZ,EAAO,CACX7md,EAAGoxI,EAAM5oN,KAAO4oN,EAAMyxb,SAASr6oB,KAC/B6tD,EAAG+6J,EAAMvjN,MAAQujN,EAAMyxb,SAASh1oB,MAChCm4C,EAAGorK,EAAMxoN,IAAMwoN,EAAMyxb,SAASj6oB,IAC9B4sC,EAAG47K,EAAMtjN,OAASsjN,EAAMyxb,SAAS/0oB,QAE7Bi+J,EAASn1K,OAAOw4C,OAAO,GAAIy3f,GAC3B++F,EAAa,GACb3nnB,EAAU,GACV+voB,EAAa58b,EAAM68b,aAAa79pB,OAChC89pB,EAAiB98b,EAAMlnN,QAAQmtnB,YAC/B82B,EAAkBD,EAAeE,kBAAoB3pZ,EAAKupZ,EAAa,EACpEnypB,EAAI,EAAGA,EAAImypB,EAAYnypB,IAAK,CACnC,IAAMi9G,EAAOo1iB,EAAezyC,WAAWrqZ,EAAMi9b,qBAAqBxypB,IAClEoiB,EAAQpiB,GAAKi9G,EAAK76F,QAClB,IAAM05Y,EAAgBvmM,EAAMk9b,iBAAiBzypB,EAAGu1N,EAAMm9b,YAActwoB,EAAQpiB,GAAIsypB,GAC1EK,EAAS30C,GAAO/ggB,EAAKikF,MACrB+ld,GA1CgB5jd,EA0CYkyB,EAAMlyB,IA1CbnC,EA0CkByxd,EAzC/Cr7gB,EAAQ7nE,EAD2B6nE,EA0CoBi+E,EAAM68b,aAAapypB,IAzCjDs3I,EAAQ,CAACA,GAC3B,CACLoG,EAAG28d,GAAah3a,EAAKnC,EAAK5+F,OAAQg1C,GAClCmG,EAAGnG,EAAM/iJ,OAAS2sM,EAAKr5J,aAuCvBkimB,EAAW/poB,GAAKinpB,EAChB,IAAMvc,EAAex/B,GAAgB31Y,EAAM0la,cAAcj7nB,GAAKsypB,GACxD7snB,EAAQ7rB,KAAK6H,MAAM4olB,GAAUqgC,IAGnCkoB,GAAa1if,EAAQ86X,EAAM0/F,EAFXunB,GAAgBxsnB,EAAOq2X,EAAc72Z,EAAGgipB,EAASvpgB,EAAG,EAAG,KACvDu0gB,GAAgBxsnB,EAAOq2X,EAAclqZ,EAAGq1oB,EAASxpgB,EAAG,GAAI,MAG1E83E,EAAMs9b,eACJ7nH,EAAK7md,EAAI+rF,EAAO/rF,EAChB+rF,EAAO11G,EAAIwwe,EAAKxwe,EAChBwwe,EAAK7gf,EAAI+lH,EAAO/lH,EAChB+lH,EAAOv2H,EAAIqxf,EAAKrxf,GAElB47K,EAAMu9b,iBAsBR,SAA8Bv9b,EAAOw0a,EAAY3nnB,GAO/C,IANA,IAAMziB,EAAQ,GACRwypB,EAAa58b,EAAM68b,aAAa79pB,OAChC0oH,EAAOs4G,EAAMlnN,QACbg0Q,EAAQ2vY,GAAsB/0iB,GAAQ,EACtC81iB,EAAgBx9b,EAAMm9b,YACtBJ,EAAkBr1iB,EAAKu+gB,YAAY+2B,kBAAoB3pZ,EAAKupZ,EAAa,EACtEnypB,EAAI,EAAGA,EAAImypB,EAAYnypB,IAAK,CACnC,IAAMgzpB,EAAqBz9b,EAAMk9b,iBAAiBzypB,EAAG+ypB,EAAgB1wY,EAAQjgQ,EAAQpiB,GAAIsypB,GACnF7snB,EAAQ7rB,KAAK6H,MAAM4olB,GAAUa,GAAgB8nD,EAAmBvtnB,MAAQgkkB,KACxEh9lB,EAAOs9nB,EAAW/poB,GAClB4R,EAAIqhpB,GAAUD,EAAmBphpB,EAAGnF,EAAKgxI,EAAGh4G,GAC5Ci3kB,EAAYw2C,GAAqBztnB,GACjC94B,EAAOwmpB,GAAiBH,EAAmB/tpB,EAAGwH,EAAKixI,EAAGg/d,GAC5D/8mB,EAAM9K,KAAK,CACToQ,EAAG+tpB,EAAmB/tpB,EACtB2M,EAAAA,EACA8qmB,UAAAA,EACA/vmB,KAAAA,EACAI,IAAK6E,EACLI,MAAOrF,EAAOF,EAAKixI,EACnBzrI,OAAQL,EAAInF,EAAKgxI,IAGrB,OAAO99I,EA9CkByzpB,CAAqB79b,EAAOw0a,EAAY3nnB,GAEnE,SAASwwoB,GAAa1if,EAAQ86X,EAAMvlgB,EAAO4tnB,EAASC,GAClD,IAAMzoJ,EAAMjxf,KAAK23B,IAAI33B,KAAKixf,IAAIple,IACxBojO,EAAMjvP,KAAK23B,IAAI33B,KAAKivP,IAAIpjO,IAC1BxgC,EAAI,EACJ2M,EAAI,EACJyhpB,EAAQvjpB,MAAQk7hB,EAAK7md,GACvBl/E,GAAK+liB,EAAK7md,EAAIkvkB,EAAQvjpB,OAAS+6f,EAC/B36V,EAAO/rF,EAAIvqE,KAAKG,IAAIm2J,EAAO/rF,EAAG6md,EAAK7md,EAAIl/E,IAC9BoupB,EAAQhsoB,IAAM2jhB,EAAKxwe,IAC5Bv1D,GAAKoupB,EAAQhsoB,IAAM2jhB,EAAKxwe,GAAKqwc,EAC7B36V,EAAO11G,EAAI5gD,KAAKC,IAAIq2J,EAAO11G,EAAGwwe,EAAKxwe,EAAIv1D,IAErCqupB,EAAQxjpB,MAAQk7hB,EAAK7gf,GACvBv4C,GAAKo5hB,EAAK7gf,EAAImpmB,EAAQxjpB,OAAS+4P,EAC/B34F,EAAO/lH,EAAIvwC,KAAKG,IAAIm2J,EAAO/lH,EAAG6gf,EAAK7gf,EAAIv4C,IAC9B0hpB,EAAQjsoB,IAAM2jhB,EAAKrxf,IAC5B/nC,GAAK0hpB,EAAQjsoB,IAAM2jhB,EAAKrxf,GAAKkvN,EAC7B34F,EAAOv2H,EAAI//B,KAAKC,IAAIq2J,EAAOv2H,EAAGqxf,EAAKrxf,EAAI/nC,IA6B3C,SAASshpB,GAAqBztnB,GAC5B,OAAc,IAAVA,GAAyB,MAAVA,EACV,SACEA,EAAQ,IACV,OAEF,QAET,SAAS0tnB,GAAiBlupB,EAAGy4I,EAAG5vG,GAM9B,MALc,UAAVA,EACF7oC,GAAKy4I,EACc,WAAV5vG,IACT7oC,GAAMy4I,EAAI,GAELz4I,EAET,SAASgupB,GAAUrhpB,EAAG6rI,EAAGh4G,GAMvB,OALc,KAAVA,GAA0B,MAAVA,EAClB7zB,GAAM6rI,EAAI,GACDh4G,EAAQ,KAAOA,EAAQ,MAChC7zB,GAAK6rI,GAEA7rI,EA4BT,SAAS2hpB,GAAeh+b,EAAOqzS,EAAQ2yH,EAAUszB,GAC/C,IAAOxrd,EAAOkyB,EAAPlyB,IACP,GAAIk4b,EACFl4b,EAAIkzT,IAAIhhS,EAAMwla,QAASxla,EAAM1xB,QAAS+kU,EAAQ,EAAGwgG,OAC5C,CACL,IAAIttM,EAAgBvmM,EAAMk9b,iBAAiB,EAAG7pJ,GAC9CvlU,EAAI14C,OAAOmxQ,EAAc72Z,EAAG62Z,EAAclqZ,GAC1C,IAAK,IAAI5R,EAAI,EAAGA,EAAI6upB,EAAY7upB,IAC9B87Z,EAAgBvmM,EAAMk9b,iBAAiBzypB,EAAG4ogB,GAC1CvlU,EAAI03Z,OAAOj/L,EAAc72Z,EAAG62Z,EAAclqZ,IArLhD4/oB,GAAiBtzpB,GAAK,cACtBszpB,GAAiBz2c,SAAW,CAC1Bi4a,MAAO,CACLvwkB,SAAU2glB,GAAMN,WAAWK,YAC3Ba,MAAO,CACLzmmB,SAAS,SA6MTi2nB,GAAAA,SAAAA,iCACJ,WAAYrqC,GAAK,6BACf,cAAMA,IACD4R,aAAU1unB,EACf,EAAKw3L,aAAUx3L,EACf,EAAKqmpB,iBAAcrmpB,EACnB,EAAK+lpB,aAAe,GACpB,EAAKU,iBAAmB,GANT,8CAQjB,WACE,IAAM1woB,EAAUnuB,KAAK+ypB,SAAWjpC,GAAUi0C,GAAsB/9pB,KAAKoa,SAAW,GAC1EqvI,EAAIzpJ,KAAKsR,MAAQtR,KAAKgf,SAAWmP,EAAQ7c,MACzCk4I,EAAIxpJ,KAAKuR,OAASvR,KAAK0lB,UAAYyI,EAAQ5c,OACjDvR,KAAK8moB,QAAUnhnB,KAAKo1B,MAAM/6C,KAAK0Y,KAAO+wI,EAAI,EAAIt7H,EAAQzV,MACtD1Y,KAAK4vM,QAAUjqL,KAAKo1B,MAAM/6C,KAAK8Y,IAAM0wI,EAAI,EAAIr7H,EAAQrV,KACrD9Y,KAAKy+pB,YAAc94oB,KAAKo1B,MAAMp1B,KAAKG,IAAI2jI,EAAGD,GAAK,sCAEjD,WACE,MAAmBxpJ,KAAK0zoB,WAAU,GAA3B5tnB,EAAP,EAAOA,IAAKF,EAAZ,EAAYA,IACZ5lB,KAAK8lB,IAAM2tlB,EAAe3tlB,KAAS0jB,MAAM1jB,GAAOA,EAAM,EACtD9lB,KAAK4lB,IAAM6tlB,EAAe7tlB,KAAS4jB,MAAM5jB,GAAOA,EAAM,EACtD5lB,KAAKo9pB,yDAEP,WACE,OAAOz3oB,KAAK+iK,KAAK1oL,KAAKy+pB,YAAcV,GAAsB/9pB,KAAKoa,4CAEjE,SAAmB2knB,GAAO,WACxB09B,GAAgBj3pB,UAAUwxoB,mBAAmBv2oB,KAAKT,KAAM++nB,GACxD/+nB,KAAKm+pB,aAAen+pB,KAAK07nB,YACtBx1nB,KAAI,SAACtE,EAAOf,GACX,IAAMwiJ,EAAQ70F,EAAS,EAAKp0C,QAAQmtnB,YAAY/4kB,SAAU,CAAC5sD,EAAOf,GAAQ,GAC1E,OAAOwiJ,GAAmB,IAAVA,EAAcA,EAAQ,MAEvCz9I,QAAO,SAACihD,EAAG96C,GAAJ,OAAU,EAAKy3gB,MAAMm+G,kBAAkB51nB,yBAEnD,WACE,IAAMi9G,EAAOhpH,KAAKoa,QACd4uG,EAAK3pG,SAAW2pG,EAAKu+gB,YAAYlonB,QACnC4+oB,GAAmBj+pB,MAEnBA,KAAK4+pB,eAAe,EAAG,EAAG,EAAG,iCAGjC,SAAeY,EAAcC,EAAeC,EAAaC,GACvD3/pB,KAAK8moB,SAAWnhnB,KAAKo1B,OAAOyknB,EAAeC,GAAiB,GAC5Dz/pB,KAAK4vM,SAAWjqL,KAAKo1B,OAAO2knB,EAAcC,GAAkB,GAC5D3/pB,KAAKy+pB,aAAe94oB,KAAKG,IAAI9lB,KAAKy+pB,YAAc,EAAG94oB,KAAKC,IAAI45oB,EAAcC,EAAeC,EAAaC,iCAExG,SAAc9+pB,GAGZ,OAAOo2mB,GAAgBp2mB,GAFCs0mB,GAAOn1mB,KAAKm+pB,aAAa79pB,QAAU,IAEV41mB,GAD9Bl2mB,KAAKoa,QAAQq2f,YAAc,iDAGhD,SAA8B7ugB,GAC5B,GAAIiyhB,EAAcjyhB,GAChB,OAAOqkH,IAET,IAAM25iB,EAAgB5/pB,KAAKy+pB,aAAez+pB,KAAK4lB,IAAM5lB,KAAK8lB,KAC1D,OAAI9lB,KAAKoa,QAAQ2Z,SACP/zB,KAAK4lB,IAAMhkB,GAASg+pB,GAEtBh+pB,EAAQ5B,KAAK8lB,KAAO85oB,+CAE9B,SAA8Bj6nB,GAC5B,GAAIkuf,EAAcluf,GAChB,OAAOsgF,IAET,IAAM45iB,EAAiBl6nB,GAAY3lC,KAAKy+pB,aAAez+pB,KAAK4lB,IAAM5lB,KAAK8lB,MACvE,OAAO9lB,KAAKoa,QAAQ2Z,QAAU/zB,KAAK4lB,IAAMi6oB,EAAiB7/pB,KAAK8lB,IAAM+5oB,sCAEvE,SAAqBh/pB,GACnB,IAAM0moB,EAAcvnoB,KAAKm+pB,cAAgB,GACzC,GAAIt9pB,GAAS,GAAKA,EAAQ0moB,EAAYjnoB,OAAQ,CAC5C,IAAMw/pB,EAAav4B,EAAY1moB,GAC/B,OAjFN,SAAiC4K,EAAQ5K,EAAOwiJ,GAC9C,OAAOriC,GAAcv1G,EAAQ,CAC3B43I,MAAAA,EACAxiJ,MAAAA,EACA8iB,KAAM,eA6EGo8oB,CAAwB//pB,KAAK27D,aAAc96D,EAAOi/pB,oCAG7D,SAAiBj/pB,EAAOm/pB,GAAyC,IAArB3B,EAAqB,uDAAH,EACtD7snB,EAAQxxC,KAAKgnoB,cAAcnmoB,GAAS20mB,EAAU6oD,EACpD,MAAO,CACLrtpB,EAAG2U,KAAKivP,IAAIpjO,GAASwunB,EAAqBhgqB,KAAK8moB,QAC/CnpnB,EAAGgI,KAAKixf,IAAIple,GAASwunB,EAAqBhgqB,KAAK4vM,QAC/Cp+J,MAAAA,2CAGJ,SAAyB3wC,EAAOe,GAC9B,OAAO5B,KAAKw+pB,iBAAiB39pB,EAAOb,KAAKonoB,8BAA8BxloB,mCAEzE,SAAgBf,GACd,OAAOb,KAAK2noB,yBAAyB9moB,GAAS,EAAGb,KAAK23oB,qDAExD,SAAsB92oB,GACpB,MAAmCb,KAAK6+pB,iBAAiBh+pB,GACzD,MAAO,CACL6X,KAFF,EAAOA,KAGLI,IAHF,EAAaA,IAIXiF,MAJF,EAAkBA,MAKhBC,OALF,EAAyBA,sCAQ3B,WACE,MAA4Che,KAAKoa,QAA1CipB,EAAP,EAAOA,gBAAwBikmB,EAA/B,EAAwBrkH,KAAOqkH,SAC/B,GAAIjkmB,EAAiB,CACnB,IAAM+rK,EAAMpvM,KAAKovM,IACjBA,EAAI9wK,OACJ8wK,EAAIy3Z,YACJy4D,GAAet/pB,KAAMA,KAAKonoB,8BAA8BpnoB,KAAK08pB,WAAYp1B,EAAUtnoB,KAAKm+pB,aAAa79pB,QACrG8uM,EAAIm4a,YACJn4a,EAAIS,UAAYxsK,EAChB+rK,EAAIlzE,OACJkzE,EAAIq3a,mCAGR,WAAW,IAKL16mB,EAAGR,EAAQ4a,EALN,OACHipL,EAAMpvM,KAAKovM,IACXpmF,EAAOhpH,KAAKoa,QACXitnB,EAAoBr+gB,EAApBq+gB,WAAYpkH,EAAQj6Z,EAARi6Z,KACb23I,EAAa56pB,KAAKm+pB,aAAa79pB,OAcrC,GAZI0oH,EAAKu+gB,YAAYlonB,SAvLzB,SAAyBiiN,EAAOs5b,GAE9B,IADA,IAAOxrd,EAA+BkyB,EAA/BlyB,IAAem4b,EAAgBjma,EAA1BlnN,QAAUmtnB,YACbx7nB,EAAI6upB,EAAa,EAAG7upB,GAAK,EAAGA,IAAK,CACxC,IAAM4soB,EAAcpR,EAAY5b,WAAWrqZ,EAAMi9b,qBAAqBxypB,IAChE2ypB,EAAS30C,GAAO4uB,EAAY1rc,MAClC,EAAoDq0B,EAAMu9b,iBAAiB9ypB,GAApEiF,EAAP,EAAOA,EAAG2M,EAAV,EAAUA,EAAG8qmB,EAAb,EAAaA,UAAW/vmB,EAAxB,EAAwBA,KAAMI,EAA9B,EAA8BA,IAAKiF,EAAnC,EAAmCA,MAAOC,EAA1C,EAA0CA,OACnC0znB,EAAiBiH,EAAjBjH,cACP,IAAK79G,EAAc69G,GAAgB,CACjC,IAAMvjnB,EAAU27lB,GAAU6uB,EAAYhH,iBACtCvic,EAAIS,UAAY6hc,EAChBtic,EAAIU,SAASp3L,EAAOyV,EAAQzV,KAAMI,EAAMqV,EAAQrV,IAAKiF,EAAQrF,EAAOyV,EAAQ7c,MAAO0M,EAASlF,EAAMqV,EAAQ5c,QAE5G0rU,GACE7tI,EACAkyB,EAAM68b,aAAapypB,GACnBiF,EACA2M,EAAK+gpB,EAAO9qnB,WAAa,EACzB8qnB,EACA,CACEtlnB,MAAOu/lB,EAAYv/lB,MACnBqvkB,UAAWA,EACXC,aAAc,YAmKhBu3C,CAAgBjgqB,KAAM46pB,GAEpB33I,EAAK5jgB,SACPrf,KAAK++nB,MAAM9+nB,SAAQ,SAACgjgB,EAAMpigB,GACxB,GAAc,IAAVA,EAAa,CACf0K,EAAS,EAAK67nB,8BAA8BnkI,EAAKrhgB,OACjD,IAAM+2oB,EAAc11H,EAAK0oG,WAAW,EAAKhwjB,WAAW96D,EAAQ,KAvJtE,SAAwBygO,EAAO4+b,EAAcvrJ,EAAQimJ,GACnD,IAAMxrd,EAAMkyB,EAAMlyB,IACZk4b,EAAW44B,EAAa54B,SACvBlulB,EAAoB8mnB,EAApB9mnB,MAAOooe,EAAa0+I,EAAb1+I,WACR8lH,IAAaszB,IAAgBxhnB,IAAUooe,GAAa7M,EAAS,IAGnEvlU,EAAI9wK,OACJ8wK,EAAI23Z,YAAc3tjB,EAClBg2J,EAAIoyU,UAAYA,EAChBpyU,EAAIoqc,YAAY0mB,EAAansC,YAC7B3kb,EAAIqqc,eAAiBymB,EAAalsC,iBAClC5kb,EAAIy3Z,YACJy4D,GAAeh+b,EAAOqzS,EAAQ2yH,EAAUszB,GACxCxrd,EAAIm4a,YACJn4a,EAAIp1J,SACJo1J,EAAIq3a,WAwII05C,CAAe,EAAMxnB,EAAaptoB,EAAQqvpB,OAI5CvzB,EAAWhonB,QAAS,CAEtB,IADA+vL,EAAI9wK,OACCvyB,EAAI6upB,EAAa,EAAG7upB,GAAK,EAAGA,IAAK,CACpC,IAAM4soB,EAActR,EAAW1b,WAAW3rnB,KAAKu+pB,qBAAqBxypB,IAC7DqtC,EAAoBu/lB,EAApBv/lB,MAAOooe,EAAam3H,EAAbn3H,UACTA,GAAcpoe,IAGnBg2J,EAAIoyU,UAAYA,EAChBpyU,EAAI23Z,YAAc3tjB,EAClBg2J,EAAIoqc,YAAYb,EAAY5kB,YAC5B3kb,EAAIqqc,eAAiBd,EAAY3kB,iBACjCzonB,EAASvL,KAAKonoB,8BAA8Bp+gB,EAAK+1gB,MAAMhrmB,QAAU/zB,KAAK8lB,IAAM9lB,KAAK4lB,KACjFO,EAAWnmB,KAAKw+pB,iBAAiBzypB,EAAGR,GACpC6jM,EAAIy3Z,YACJz3Z,EAAI14C,OAAO12J,KAAK8moB,QAAS9moB,KAAK4vM,SAC9BR,EAAI03Z,OAAO3glB,EAASnV,EAAGmV,EAASxI,GAChCyxL,EAAIp1J,UAENo1J,EAAIq3a,qCAGR,sCACA,WAAa,WACLr3a,EAAMpvM,KAAKovM,IACXpmF,EAAOhpH,KAAKoa,QACZi1nB,EAAWrmhB,EAAK+1gB,MACtB,GAAKsQ,EAAShwnB,QAAd,CAGA,IACI9T,EAAQ+F,EADNm/f,EAAazwgB,KAAKgnoB,cAAc,GAEtC53b,EAAI9wK,OACJ8wK,EAAItsE,UAAU9iI,KAAK8moB,QAAS9moB,KAAK4vM,SACjCR,EAAIouG,OAAOizN,GACXrhU,EAAIq5a,UAAY,SAChBr5a,EAAIs5a,aAAe,SACnB1onB,KAAK++nB,MAAM9+nB,SAAQ,SAACgjgB,EAAMpigB,GACxB,GAAc,IAAVA,GAAgBmoH,EAAKj1F,QAAzB,CAGA,IAAM4knB,EAActJ,EAAS1jB,WAAW,EAAKhwjB,WAAW96D,IAClDq2oB,EAAWntB,GAAO4uB,EAAY1rc,MAEpC,GADA1hM,EAAS,EAAK67nB,8BAA8B,EAAKrI,MAAMl+nB,GAAOe,OAC1D+2oB,EAAYlH,kBAAmB,CACjCric,EAAInC,KAAOiqc,EAAS7oiB,OACpB/8F,EAAQ89L,EAAI+2a,YAAYljH,EAAK5/W,OAAO/xI,MACpC89L,EAAIS,UAAY8oc,EAAYjH,cAC5B,IAAMvjnB,EAAU27lB,GAAU6uB,EAAYhH,iBACtCvic,EAAIU,UACDx+L,EAAQ,EAAI6c,EAAQzV,MACpBnN,EAAS2roB,EAAS1+nB,KAAO,EAAI2V,EAAQrV,IACtCxH,EAAQ6c,EAAQ7c,MAChB4loB,EAAS1+nB,KAAO2V,EAAQ5c,QAG5B0rU,GAAW7tI,EAAK6zT,EAAK5/W,MAAO,GAAI93I,EAAQ2roB,EAAU,CAChD99lB,MAAOu/lB,EAAYv/lB,YAGvBg2J,EAAIq3a,oCAEN,kBAjMI84C,CAA0B9C,IAmMhC8C,GAAkBt1pB,GAAK,eACvBs1pB,GAAkBz4c,SAAW,CAC3BznM,SAAS,EACTm4K,SAAS,EACTrxK,SAAU,YACVkhnB,WAAY,CACVhonB,SAAS,EACTmigB,UAAW,EACXuyG,WAAY,GACZC,iBAAkB,GAEpB/wG,KAAM,CACJqkH,UAAU,GAEZ72H,WAAY,EACZsuH,MAAO,CACL0S,mBAAmB,EACnBjjlB,SAAU2glB,GAAMN,WAAW32gB,SAE7BqvgB,YAAa,CACXmK,mBAAet5nB,EACfu5nB,gBAAiB,EACjBtynB,SAAS,EACT4tL,KAAM,CACJz0L,KAAM,IAERg2C,SAPW,SAOF60F,GACP,OAAOA,GAETl1H,QAAS,EACTmwoB,mBAAmB,IAGvBiB,GAAkB3wB,cAAgB,CAChC,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,SAEjB2wB,GAAkBl7C,YAAc,CAC9BgjB,WAAY,CACVrhB,UAAW,SAIf,IAAMo6C,GAAY,CAChB97Z,YAAa,CAAC/7C,QAAQ,EAAM/vM,KAAM,EAAGi+L,MAAO,KAC5C8tD,OAAQ,CAACh8C,QAAQ,EAAM/vM,KAAM,IAAMi+L,MAAO,IAC1C+tD,OAAQ,CAACj8C,QAAQ,EAAM/vM,KAAM,IAAOi+L,MAAO,IAC3CguD,KAAM,CAACl8C,QAAQ,EAAM/vM,KAAM,KAASi+L,MAAO,IAC3CiuD,IAAK,CAACn8C,QAAQ,EAAM/vM,KAAM,MAAUi+L,MAAO,IAC3CkuD,KAAM,CAACp8C,QAAQ,EAAO/vM,KAAM,OAAWi+L,MAAO,GAC9CmuD,MAAO,CAACr8C,QAAQ,EAAM/vM,KAAM,OAASi+L,MAAO,IAC5CouD,QAAS,CAACt8C,QAAQ,EAAO/vM,KAAM,OAASi+L,MAAO,GAC/CquD,KAAM,CAACv8C,QAAQ,EAAM/vM,KAAM,SAEvB6npB,GAASv5pB,OAAOC,KAAKq5pB,IAC3B,SAASE,GAAO76mB,EAAGC,GACjB,OAAOD,EAAIC,EAEb,SAAS2wC,GAAMirI,EAAO9oM,GACpB,GAAIq7f,EAAcr7f,GAChB,OAAO,KAET,IAAMgwL,EAAU8Y,EAAMg2D,SACtB,EAAoCh2D,EAAMi/b,WAAnChtkB,EAAP,EAAOA,OAAQ/lE,EAAf,EAAeA,MAAOgzoB,EAAtB,EAAsBA,WAClB5+pB,EAAQ42B,EASZ,MARsB,oBAAX+6D,IACT3xF,EAAQ2xF,EAAO3xF,IAEZ6xmB,EAAe7xmB,KAClBA,EAA0B,kBAAX2xF,EACXi1H,EAAQnyH,MAAMz0F,EAAO2xF,GACrBi1H,EAAQnyH,MAAMz0F,IAEN,OAAVA,EACK,MAEL4rB,IACF5rB,EAAkB,SAAV4rB,IAAqB69L,GAASm1c,KAA8B,IAAfA,EAEjDh4c,EAAQi4c,QAAQ7+pB,EAAO4rB,GADvBg7L,EAAQi4c,QAAQ7+pB,EAAO,UAAW4+pB,KAGhC5+pB,GAEV,SAAS8+pB,GAA0BC,EAAS76oB,EAAKF,EAAKg7oB,GAEpD,IADA,IAAM3sD,EAAOosD,GAAM//pB,OACVyL,EAAIs0pB,GAAMl6pB,QAAQw6pB,GAAU50pB,EAAIkomB,EAAO,IAAKlomB,EAAG,CACtD,IAAMy6P,EAAW45Z,GAAUC,GAAMt0pB,IAC3BgpnB,EAASvuX,EAAS/vD,MAAQ+vD,EAAS/vD,MAAQhnJ,OAAOsiF,iBACxD,GAAIy0H,EAASj+C,QAAU5iM,KAAK+iK,MAAM9iK,EAAME,IAAQivmB,EAASvuX,EAAShuP,QAAUoopB,EAC1E,OAAOP,GAAMt0pB,GAGjB,OAAOs0pB,GAAMpsD,EAAO,GAkBtB,SAAS4sD,GAAQ9hC,EAAOlyjB,EAAMi0lB,GAC5B,GAAKA,GAEE,GAAIA,EAAWxgqB,OAAQ,CAC5B,MAAiB6pnB,GAAQ22C,EAAYj0lB,GAA9B2hF,EAAP,EAAOA,GAAIC,EAAX,EAAWA,GAEXswe,EADkB+hC,EAAWtygB,IAAO3hF,EAAOi0lB,EAAWtygB,GAAMsygB,EAAWrygB,KACpD,QAJnBswe,EAAMlyjB,IAAQ,EAoBlB,SAASk0lB,GAAoBz/b,EAAO1nN,EAAQonpB,GAC1C,IAGIj1pB,EAAGnK,EAHDm9nB,EAAQ,GACR74nB,EAAM,GACN+tmB,EAAOr6lB,EAAOtZ,OAEpB,IAAKyL,EAAI,EAAGA,EAAIkomB,IAAQlomB,EAEtB7F,EADAtE,EAAQgY,EAAO7N,IACFA,EACbgznB,EAAMn+nB,KAAK,CACTgB,MAAAA,EACAmuoB,OAAO,IAGX,OAAiB,IAAT97B,GAAe+sD,EA1BzB,SAAuB1/b,EAAOy9Z,EAAO74nB,EAAK86pB,GACxC,IAGIjxB,EAAOlvoB,EAHL2nN,EAAU8Y,EAAMg2D,SAChBttN,GAASw+I,EAAQi4c,QAAQ1hC,EAAM,GAAGn9nB,MAAOo/pB,GACzC1kiB,EAAOyigB,EAAMA,EAAMz+nB,OAAS,GAAGsB,MAErC,IAAKmuoB,EAAQ/lkB,EAAO+lkB,GAASzzgB,EAAMyzgB,GAASvnb,EAAQlnN,IAAIyuoB,EAAO,EAAGixB,IAChEngqB,EAAQqF,EAAI6poB,KACC,IACXhR,EAAMl+nB,GAAOkvoB,OAAQ,GAGzB,OAAOhR,EAeqCkiC,CAAc3/b,EAAOy9Z,EAAO74nB,EAAK86pB,GAAzCjiC,MAEhCmiC,GAAAA,SAAAA,iCACJ,WAAY1hjB,GAAO,6BACjB,cAAMA,IACDmrP,OAAS,CACZ98V,KAAM,GACNw0B,OAAQ,GACR0T,IAAK,IAEP,EAAKornB,MAAQ,MACb,EAAKC,gBAAahppB,EAClB,EAAKippB,SAAW,GAChB,EAAKC,aAAc,EACnB,EAAKf,gBAAanopB,EAXD,qCAanB,SAAKsooB,EAAW13hB,GACd,IAAMn8C,EAAO6zkB,EAAU7zkB,OAAS6zkB,EAAU7zkB,KAAO,IAC3C27I,EAAUxoN,KAAKs3R,SAAW,IAAIywW,GAASr5S,MAAMgyT,EAAU3Y,SAAS7jmB,MACtE0wkB,EAAQ/niB,EAAK00lB,eAAgB/4c,EAAQg5c,WACrCxhqB,KAAKugqB,WAAa,CAChBhtkB,OAAQ1mB,EAAK0mB,OACb/lE,MAAOq/C,EAAKr/C,MACZgzoB,WAAY3zlB,EAAK2zlB,aAEnB,mDAAW9f,GACX1gpB,KAAKshqB,YAAct4iB,EAAKy4iB,gCAE1B,SAAMn7b,EAAKzlO,GACT,YAAYuX,IAARkuN,EACK,KAEFjwI,GAAMr2F,KAAMsmO,+BAErB,YACE,4DACAtmO,KAAK2qW,OAAS,CACZ98V,KAAM,GACNw0B,OAAQ,GACR0T,IAAK,uCAGT,WACE,IAAM37B,EAAUpa,KAAKoa,QACfouM,EAAUxoN,KAAKs3R,SACf9lR,EAAO4I,EAAQyyD,KAAKr7D,MAAQ,MAClC,EAAyCxR,KAAKm8nB,gBAAzCr2mB,EAAL,EAAKA,IAAKF,EAAV,EAAUA,IAAKo4f,EAAf,EAAeA,WAAYC,EAA3B,EAA2BA,WAC3B,SAASyjJ,EAAa1lpB,GACfgigB,GAAex0e,MAAMxtB,EAAO8J,OAC/BA,EAAMH,KAAKG,IAAIA,EAAK9J,EAAO8J,MAExBm4f,GAAez0e,MAAMxtB,EAAO4J,OAC/BA,EAAMD,KAAKC,IAAIA,EAAK5J,EAAO4J,MAG1Bo4f,GAAeC,IAClByjJ,EAAa1hqB,KAAK2hqB,mBACK,UAAnBvnpB,EAAQ4B,QAA+C,WAAzB5B,EAAQ2knB,MAAMpxgB,QAC9C+ziB,EAAa1hqB,KAAK0zoB,WAAU,KAGhC5tnB,EAAM2tlB,EAAe3tlB,KAAS0jB,MAAM1jB,GAAOA,GAAO0iM,EAAQi4c,QAAQnylB,KAAKskC,MAAOphG,GAC9EoU,EAAM6tlB,EAAe7tlB,KAAS4jB,MAAM5jB,GAAOA,GAAO4iM,EAAQo5c,MAAMtzlB,KAAKskC,MAAOphG,GAAQ,EACpFxR,KAAK8lB,IAAMH,KAAKG,IAAIA,EAAKF,EAAM,GAC/B5lB,KAAK4lB,IAAMD,KAAKC,IAAIE,EAAM,EAAGF,kCAE/B,WACE,IAAMivG,EAAM70H,KAAK6hqB,qBACb/7oB,EAAM2pC,OAAO6ljB,kBACb1vlB,EAAM6pC,OAAOyskB,kBAKjB,OAJIrngB,EAAIv0H,SACNwlB,EAAM+uG,EAAI,GACVjvG,EAAMivG,EAAIA,EAAIv0H,OAAS,IAElB,CAACwlB,IAAAA,EAAKF,IAAAA,6BAEf,WACE,IAAMxL,EAAUpa,KAAKoa,QACf0npB,EAAW1npB,EAAQyyD,KACnBwikB,EAAWj1nB,EAAQ2knB,MACnB+hC,EAAiC,WAApBzxB,EAAS1hhB,OAAsB3tH,KAAK6hqB,qBAAuB7hqB,KAAKqxP,YAC5D,UAAnBj3O,EAAQ4B,QAAsB8kpB,EAAWxgqB,SAC3CN,KAAK8lB,IAAM9lB,KAAKizoB,UAAY6tB,EAAW,GACvC9gqB,KAAK4lB,IAAM5lB,KAAKgzoB,UAAY8tB,EAAWA,EAAWxgqB,OAAS,IAE7D,IAAMwlB,EAAM9lB,KAAK8lB,IAEXi5mB,EDxnRV,SAAwBnlnB,EAAQkM,EAAKF,GAGnC,IAFA,IAAI/J,EAAQ,EACRuX,EAAMxZ,EAAOtZ,OACVub,EAAQuX,GAAOxZ,EAAOiC,GAASiK,GACpCjK,IAEF,KAAOuX,EAAMvX,GAASjC,EAAOwZ,EAAM,GAAKxN,GACtCwN,IAEF,OAAOvX,EAAQ,GAAKuX,EAAMxZ,EAAOtZ,OAC7BsZ,EAAOnU,MAAMoW,EAAOuX,GACpBxZ,EC6mRYmopB,CAAejB,EAAYh7oB,EAD7B9lB,KAAK4lB,KAWjB,OATA5lB,KAAKmhqB,MAAQW,EAAStwpB,OAAS69nB,EAASD,SACpCsxB,GAA0BoB,EAASnB,QAAS3gqB,KAAK8lB,IAAK9lB,KAAK4lB,IAAK5lB,KAAKgiqB,kBAAkBl8oB,IA5I/F,SAAoCw7M,EAAOu0a,EAAU8qB,EAAS76oB,EAAKF,GACjE,IAAK,IAAI7Z,EAAIs0pB,GAAM//pB,OAAS,EAAGyL,GAAKs0pB,GAAMl6pB,QAAQw6pB,GAAU50pB,IAAK,CAC/D,IAAMyF,EAAO6upB,GAAMt0pB,GACnB,GAAIq0pB,GAAU5upB,GAAM+2M,QAAU+Y,EAAMg2D,SAASzxO,KAAKjgC,EAAKE,EAAKtU,IAASqkoB,EAAW,EAC9E,OAAOrkoB,EAGX,OAAO6upB,GAAMM,EAAUN,GAAMl6pB,QAAQw6pB,GAAW,GAsI1CsB,CAA2BjiqB,KAAM++nB,EAAMz+nB,OAAQwhqB,EAASnB,QAAS3gqB,KAAK8lB,IAAK9lB,KAAK4lB,MACpF5lB,KAAKohqB,WAAc/xB,EAASU,MAAMzmmB,SAA0B,SAAftpC,KAAKmhqB,MArItD,SAA4B3vpB,GAC1B,IAAK,IAAIzF,EAAIs0pB,GAAMl6pB,QAAQqL,GAAQ,EAAGyimB,EAAOosD,GAAM//pB,OAAQyL,EAAIkomB,IAAQlomB,EACrE,GAAIq0pB,GAAUC,GAAMt0pB,IAAIw8M,OACtB,OAAO83c,GAAMt0pB,GAmIXm2pB,CAAmBliqB,KAAKmhqB,YADyC/opB,EAErEpY,KAAKmiqB,YAAYrB,GACb1mpB,EAAQ2Z,SACVgrmB,EAAMhrmB,UAEDgtoB,GAAoB/gqB,KAAM++nB,EAAO/+nB,KAAKohqB,uCAE/C,SAAYN,GACV,IAEI92lB,EAAOsyD,EAFPzgH,EAAQ,EACRuX,EAAM,EAENpzB,KAAKoa,QAAQ7O,QAAUu1pB,EAAWxgqB,SACpC0pE,EAAQhqE,KAAKoiqB,mBAAmBtB,EAAW,IAEzCjlpB,EADwB,IAAtBilpB,EAAWxgqB,OACL,EAAI0pE,GAEHhqE,KAAKoiqB,mBAAmBtB,EAAW,IAAM92lB,GAAS,EAE7DsyD,EAAOt8H,KAAKoiqB,mBAAmBtB,EAAWA,EAAWxgqB,OAAS,IAE5D8yB,EADwB,IAAtB0toB,EAAWxgqB,OACPg8H,GAECA,EAAOt8H,KAAKoiqB,mBAAmBtB,EAAWA,EAAWxgqB,OAAS,KAAO,GAGhF,IAAMg8K,EAAQwkf,EAAWxgqB,OAAS,EAAI,GAAM,IAC5Cub,EAAQ27lB,GAAY37lB,EAAO,EAAGygK,GAC9BlpJ,EAAMoklB,GAAYpklB,EAAK,EAAGkpJ,GAC1Bt8K,KAAKqhqB,SAAW,CAACxlpB,MAAAA,EAAOuX,IAAAA,EAAK2hmB,OAAQ,GAAKl5mB,EAAQ,EAAIuX,6BAExD,WACE,IAWIy5C,EAAMqM,EAXJsvI,EAAUxoN,KAAKs3R,SACfxxQ,EAAM9lB,KAAK8lB,IACXF,EAAM5lB,KAAK4lB,IACXxL,EAAUpa,KAAKoa,QACf0npB,EAAW1npB,EAAQyyD,KACnB2kkB,EAAQswB,EAAStwpB,MAAQkvpB,GAA0BoB,EAASnB,QAAS76oB,EAAKF,EAAK5lB,KAAKgiqB,kBAAkBl8oB,IACtGi3oB,EAAWppD,EAAemuD,EAAS/E,SAAU,GAC7CjuW,EAAoB,SAAV0iV,GAAmBswB,EAAStB,WACtC6B,EAAah3c,GAASyjG,KAAwB,IAAZA,EAClCiwU,EAAQ,GACV/0jB,EAAQlkD,EAMZ,GAJIu8oB,IACFr4lB,GAASw+I,EAAQi4c,QAAQz2lB,EAAO,UAAW8kP,IAE7C9kP,GAASw+I,EAAQi4c,QAAQz2lB,EAAOq4lB,EAAa,MAAQ7wB,GACjDhpb,EAAQ3iK,KAAKjgC,EAAKE,EAAK0rnB,GAAS,IAASurB,EAC3C,MAAM,IAAI1nnB,MAAMvvB,EAAM,QAAUF,EAAM,uCAAyCm3oB,EAAW,IAAMvrB,GAElG,IAAMsvB,EAAsC,SAAzB1mpB,EAAQ2knB,MAAMpxgB,QAAqB3tH,KAAKsiqB,oBAC3D,IAAKz1lB,EAAO7C,EAAOkP,EAAQ,EAAGrM,EAAOjnD,EAAKinD,GAAQ27I,EAAQlnN,IAAIurE,EAAMkwlB,EAAUvrB,GAAQt4jB,IACpF2nlB,GAAQ9hC,EAAOlyjB,EAAMi0lB,GAKvB,OAHIj0lB,IAASjnD,GAA0B,UAAnBxL,EAAQ4B,QAAgC,IAAVk9D,GAChD2nlB,GAAQ9hC,EAAOlyjB,EAAMi0lB,GAEhBh6pB,OAAOC,KAAKg4nB,GAAOv5kB,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,KAAGx/C,KAAI,SAAA8K,GAAC,OAAKA,qCAE5D,SAAiBpP,GACf,IAAM4mN,EAAUxoN,KAAKs3R,SACfwqY,EAAW9hqB,KAAKoa,QAAQyyD,KAC9B,OAAIi1lB,EAASS,cACJ/5c,EAAQ1vL,OAAOl3B,EAAOkgqB,EAASS,eAEjC/5c,EAAQ1vL,OAAOl3B,EAAOkgqB,EAASP,eAAej6S,6CAEvD,SAAoBz6S,EAAMhsE,EAAOk+nB,EAAOjmmB,GACtC,IAAM1e,EAAUpa,KAAKoa,QACfonpB,EAAUpnpB,EAAQyyD,KAAK00lB,eACvB/vpB,EAAOxR,KAAKmhqB,MACZH,EAAYhhqB,KAAKohqB,WACjBoB,EAAchxpB,GAAQgwpB,EAAQhwpB,GAC9BixpB,EAAczB,GAAaQ,EAAQR,GACnC/9J,EAAO87H,EAAMl+nB,GACbkvoB,EAAQixB,GAAayB,GAAex/J,GAAQA,EAAK8sI,MACjD1sf,EAAQrjJ,KAAKs3R,SAASx+P,OAAO+zC,EAAM/zC,IAAWi3mB,EAAQ0yB,EAAcD,IACpEjyW,EAAYn2S,EAAQ2knB,MAAMvwkB,SAChC,OAAO+hQ,EAAY/hQ,EAAS+hQ,EAAW,CAACltK,EAAOxiJ,EAAOk+nB,GAAQ/+nB,MAAQqjJ,oCAExE,SAAmB07e,GACjB,IAAIhznB,EAAGkomB,EAAMhxG,EACb,IAAKl3f,EAAI,EAAGkomB,EAAO8qB,EAAMz+nB,OAAQyL,EAAIkomB,IAAQlomB,GAC3Ck3f,EAAO87H,EAAMhznB,IACRs3I,MAAQrjJ,KAAK0iqB,oBAAoBz/J,EAAKrhgB,MAAOmK,EAAGgznB,qCAGzD,SAAmBn9nB,GACjB,OAAiB,OAAVA,EAAiBqkH,KAAOrkH,EAAQ5B,KAAK8lB,MAAQ9lB,KAAK4lB,IAAM5lB,KAAK8lB,qCAEtE,SAAiBlkB,GACf,IAAMkjJ,EAAU9kJ,KAAKqhqB,SACf/nlB,EAAMt5E,KAAKoiqB,mBAAmBxgqB,GACpC,OAAO5B,KAAK2ioB,oBAAoB79e,EAAQjpI,MAAQy9D,GAAOwrE,EAAQiwe,wCAEjE,SAAiBnO,GACf,IAAM9he,EAAU9kJ,KAAKqhqB,SACf/nlB,EAAMt5E,KAAKu7pB,mBAAmB30C,GAAS9he,EAAQiwe,OAASjwe,EAAQ1xH,IACtE,OAAOpzB,KAAK8lB,IAAMwzD,GAAOt5E,KAAK4lB,IAAM5lB,KAAK8lB,kCAE3C,SAAcu9H,GACZ,IAAMs/gB,EAAY3iqB,KAAKoa,QAAQ2knB,MACzB6jC,EAAiB5iqB,KAAKovM,IAAI+2a,YAAY9ie,GAAO/xI,MAC7CkgC,EAAQ0kkB,GAAUl2mB,KAAKotX,eAAiBu1S,EAAUxxB,YAAcwxB,EAAUzxB,aAC1E2xB,EAAcl9oB,KAAKivP,IAAIpjO,GACvBsxnB,EAAcn9oB,KAAKixf,IAAIple,GACvBuxnB,EAAe/iqB,KAAKy3oB,wBAAwB,GAAGj/nB,KACrD,MAAO,CACLixI,EAAIm5gB,EAAiBC,EAAgBE,EAAeD,EACpDt5gB,EAAIo5gB,EAAiBE,EAAgBC,EAAeF,oCAGxD,SAAkBG,GAChB,IAAMlB,EAAW9hqB,KAAKoa,QAAQyyD,KACxB00lB,EAAiBO,EAASP,eAC1BzooB,EAASyooB,EAAeO,EAAStwpB,OAAS+vpB,EAAej9Z,YACzD2+Z,EAAejjqB,KAAK0iqB,oBAAoBM,EAAa,EAAGjC,GAAoB/gqB,KAAM,CAACgjqB,GAAchjqB,KAAKohqB,YAAatooB,GACnHtgB,EAAOxY,KAAKkjqB,cAAcD,GAC1BrC,EAAWj7oB,KAAKo1B,MAAM/6C,KAAKotX,eAAiBptX,KAAKsR,MAAQkH,EAAKixI,EAAIzpJ,KAAKuR,OAASiH,EAAKgxI,GAAK,EAChG,OAAOo3gB,EAAW,EAAIA,EAAW,mCAEnC,WACE,IACI70pB,EAAGkomB,EADH6sD,EAAa9gqB,KAAK2qW,OAAO98V,MAAQ,GAErC,GAAIizpB,EAAWxgqB,OACb,OAAOwgqB,EAET,IAAMrtB,EAAQzzoB,KAAKu3nB,0BACnB,GAAIv3nB,KAAKshqB,aAAe7tB,EAAMnzoB,OAC5B,OAAQN,KAAK2qW,OAAO98V,KAAO4loB,EAAM,GAAGv5hB,WAAWwkhB,mBAAmB1+nB,MAEpE,IAAK+L,EAAI,EAAGkomB,EAAOw/B,EAAMnzoB,OAAQyL,EAAIkomB,IAAQlomB,EAC3C+0pB,EAAaA,EAAWlloB,OAAO63mB,EAAM1noB,GAAGmuG,WAAWwkhB,mBAAmB1+nB,OAExE,OAAQA,KAAK2qW,OAAO98V,KAAO7N,KAAK80O,UAAUgsb,qCAE5C,WACE,IACI/0pB,EAAGkomB,EADD6sD,EAAa9gqB,KAAK2qW,OAAOtoU,QAAU,GAEzC,GAAIy+nB,EAAWxgqB,OACb,OAAOwgqB,EAET,IAAMz+nB,EAASriC,KAAK07nB,YACpB,IAAK3vnB,EAAI,EAAGkomB,EAAO5xkB,EAAO/hC,OAAQyL,EAAIkomB,IAAQlomB,EAC5C+0pB,EAAWlgqB,KAAKy1F,GAAMr2F,KAAMqiC,EAAOt2B,KAErC,OAAQ/L,KAAK2qW,OAAOtoU,OAASriC,KAAKshqB,YAAcR,EAAa9gqB,KAAK80O,UAAUgsb,4BAE9E,SAAUlnpB,GACR,OAAO6wmB,GAAa7wmB,EAAO4rC,KAAK86mB,WA/O9BY,CAAkB1uB,IAsQxB,SAAS2a,GAAYl3jB,EAAOlyE,EAAKgQ,GAC/B,IAEIovoB,EAAYC,EAAYC,EAAYC,EAFpC90gB,EAAK,EACLC,EAAKx4D,EAAM31F,OAAS,EAExB,GAAIyzB,EAAS,CACX,GAAIhQ,GAAOkyE,EAAMu4D,GAAIl1E,KAAOv1D,GAAOkyE,EAAMw4D,GAAIn1E,IAAK,OACpC8wiB,GAAan0hB,EAAO,MAAOlyE,GAArCyqI,EAD8C,EAC9CA,GAAIC,EAD0C,EAC1CA,GAFG,MAI4Bx4D,EAAMu4D,GAAtC20gB,EAJI,EAIT7plB,IAAuB+plB,EAJd,EAIQx2lB,KAJR,MAK4BopB,EAAMw4D,GAAtC20gB,EALI,EAKT9plB,IAAuBgqlB,EALd,EAKQz2lB,SACd,CACL,GAAI9oD,GAAOkyE,EAAMu4D,GAAI3hF,MAAQ9oD,GAAOkyE,EAAMw4D,GAAI5hF,KAAM,OACtCu9iB,GAAan0hB,EAAO,OAAQlyE,GAAtCyqI,EADgD,EAChDA,GAAIC,EAD4C,EAC5CA,GAFH,MAIkCx4D,EAAMu4D,GAArC20gB,EAJH,EAIHt2lB,KAAuBw2lB,EAJpB,EAIe/plB,IAJf,MAKkC2c,EAAMw4D,GAArC20gB,EALH,EAKHv2lB,KAAuBy2lB,EALpB,EAKehqlB,IAEtB,IAAM8rH,EAAOg+d,EAAaD,EAC1B,OAAO/9d,EAAOi+d,GAAcC,EAAaD,IAAet/oB,EAAMo/oB,GAAc/9d,EAAOi+d,EAtCrFnC,GAAUj3pB,GAAK,OACfi3pB,GAAUp6c,SAAW,CACnB9qM,OAAQ,OACR+rnB,SAAU,GACVl7jB,KAAM,CACJ0mB,QAAQ,EACR/hF,MAAM,EACNgc,OAAO,EACPgzoB,YAAY,EACZG,QAAS,cACTY,eAAgB,IAElBxiC,MAAO,CACLpxgB,OAAQ,OACRoihB,MAAO,CACLzmmB,SAAS,SAyBTi6nB,GAAAA,SAAAA,iCACJ,WAAY/jjB,GAAO,6BACjB,cAAMA,IACDgkjB,OAAS,GACd,EAAKC,aAAUrrpB,EACf,EAAKsrpB,iBAActrpB,EAJF,4CAMnB,WACE,IAAM0opB,EAAa9gqB,KAAK2jqB,yBAClB1tkB,EAAQj2F,KAAKwjqB,OAASxjqB,KAAK4jqB,iBAAiB9C,GAClD9gqB,KAAKyjqB,QAAUtW,GAAYl3jB,EAAOj2F,KAAK8lB,KACvC9lB,KAAK0jqB,YAAcvW,GAAYl3jB,EAAOj2F,KAAK4lB,KAAO5lB,KAAKyjqB,SACvD,0DAAkB3C,mCAEpB,SAAiBA,GACf,IAGI/0pB,EAAGkomB,EAAMxtkB,EAAMk9J,EAAMrlJ,EAHlBx4B,EAAY9lB,KAAZ8lB,IAAKF,EAAO5lB,KAAP4lB,IACNla,EAAQ,GACRuqF,EAAQ,GAEd,IAAKlqF,EAAI,EAAGkomB,EAAO6sD,EAAWxgqB,OAAQyL,EAAIkomB,IAAQlomB,GAChD43L,EAAOm9d,EAAW/0pB,KACN+Z,GAAO69K,GAAQ/9K,GACzBla,EAAM9K,KAAK+iM,GAGf,GAAIj4L,EAAMpL,OAAS,EACjB,MAAO,CACL,CAACusE,KAAM/mD,EAAKwzD,IAAK,GACjB,CAACzM,KAAMjnD,EAAK0zD,IAAK,IAGrB,IAAKvtE,EAAI,EAAGkomB,EAAOvomB,EAAMpL,OAAQyL,EAAIkomB,IAAQlomB,EAC3CuyC,EAAO5yC,EAAMK,EAAI,GACjB06B,EAAO/6B,EAAMK,EAAI,GACjB43L,EAAOj4L,EAAMK,GACT4Z,KAAK6H,OAAO8wB,EAAO7X,GAAQ,KAAOk9J,GACpC1tG,EAAMr1F,KAAK,CAACisE,KAAM82H,EAAMrqH,IAAKvtE,GAAKkomB,EAAO,KAG7C,OAAOh+gB,wCAET,WACE,IAAI6qkB,EAAa9gqB,KAAK2qW,OAAO50T,KAAO,GACpC,GAAI+qnB,EAAWxgqB,OACb,OAAOwgqB,EAET,IAAMjzpB,EAAO7N,KAAKsiqB,oBACZj/gB,EAAQrjJ,KAAK6hqB,qBAOnB,OALEf,EADEjzpB,EAAKvN,QAAU+iJ,EAAM/iJ,OACVN,KAAK80O,UAAUjnO,EAAK+tB,OAAOynH,IAE3Bx1I,EAAKvN,OAASuN,EAAOw1I,EAEpCy9gB,EAAa9gqB,KAAK2qW,OAAO50T,IAAM+qnB,oCAGjC,SAAmBl/pB,GACjB,OAAQurpB,GAAYntpB,KAAKwjqB,OAAQ5hqB,GAAS5B,KAAKyjqB,SAAWzjqB,KAAK0jqB,4CAEjE,SAAiB98C,GACf,IAAM9he,EAAU9kJ,KAAKqhqB,SACft8nB,EAAU/kC,KAAKu7pB,mBAAmB30C,GAAS9he,EAAQiwe,OAASjwe,EAAQ1xH,IAC1E,OAAO+5nB,GAAYntpB,KAAKwjqB,OAAQz+nB,EAAU/kC,KAAK0jqB,YAAc1jqB,KAAKyjqB,SAAS,SA9DzEF,CAAwBrC,IAiE9BqC,GAAgBt5pB,GAAK,aACrBs5pB,GAAgBz8c,SAAWo6c,GAAUp6c,SAErC,IAUM+8c,GAAgB,CACpBzqjB,GACAvuD,GACAw2c,GAbwBv6f,OAAOqtM,OAAO,CACxCp4D,UAAW,KACXo/gB,cAAeA,GACfgC,YAAaA,GACbI,iBAAkBA,GAClBgC,kBAAmBA,GACnB2B,UAAWA,GACXqC,gBAAiBA,mECr3UXO,GAAkBzvkB,CAAAA,SAAAA,aAAAA,WAAAA,sBAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,EAAAA,kBAAAA,uDAAAA,iCAAAA,4BAAAA,8BAAAA,oCAAAA,2BAAAA,sDAAAA,4BAAAA,iDAAAA,sBAAAA,wDAAAA,uBAAAA,oFAAAA,oBAAAA,4CAAAA,8BAAAA,4DAAAA,wBAAAA,+CAAAA,qBAAAA,QAAAA,qBAAAA,WAAAA,kBAAAA,UAAY0vkB,2BAA6B,aAK3DttE,GAAsB,CAC1ButE,aAAc,MAqBhB,IAAMC,IAAcjjjB,EAAAA,GAAAA,eAAqBy1e,IAMnCytE,GAAyC,SAAC,GAAgB,IAAfn5pB,EAAc,EAAdA,SACzC87H,EAzBR,WACE,IAAMs9hB,EAAKC,aAAallb,QAAQ4kb,IAChC,GAAIK,EACF,IACE,OAAO7opB,KAAK+6E,MAAM8tkB,GAClB,MAAO9jf,GACPj2I,QAAQsV,MAAM2gI,GAGlB,OAAOo2a,GAgBMh7Q,GACb,OAAO,UAACwoV,GAAYhjjB,SAAb,CAAsBr/G,MAAOilI,EAA7B,SAAoC97H,KCpCzCs5pB,IAAmB,EAmBhB,SAAS1+c,GAAe2+c,EAAevioB,GAC1C,IAAIwioB,EAAaxioB,EAEjB,OADAwioB,EAAWrngB,aAAQ9kJ,GACZ,IAAK4ziB,SAASxmjB,UAAUiF,KAAKub,MAAMs+oB,EAAeC,IAStD,SAASz/D,GAAavkmB,GACzB,IAAI0mjB,EAEArggB,EAAM,IAAI49mB,YAAY,IACV/+oB,OAAOg/oB,UAAYh/oB,OAAOi/oB,QAChCC,gBAAgB/9mB,GAC1B,IAAIg+mB,EAAS,MA2cjB,SAAsBh+mB,GAElB,IADA,IAAI4kF,EAAM,GACDz/H,EAAI,EAAGA,EAAI,EAAGA,IACnBy/H,IAAQz/H,EAAI,IAAM,IAAM66C,EAAI3Q,SAASlqC,EAAE0C,WAAY,KAEvD,OAAO+8H,EAhdcq5hB,CAAaj+mB,GAE9Bk+mB,EAAiB,SAAUtqpB,GACvBA,EAAMmzG,SAAWloG,QAAgC,kBAAfjL,EAAM3M,MAAqB2M,EAAM3M,KAAKvN,QAAU,IAAMka,EAAM3M,OAAS+2pB,IACvGrkqB,IACA0mjB,MAKR,OAFAxhiB,OAAO/kB,iBAAiB,UAAWokqB,GAAgB,GACnDr/oB,OAAO8pH,YAAYq1hB,EAAQ,KACpB39G,EAAS,WACZxhiB,OAAOtlB,oBAAoB,UAAW2kqB,GACtCvkqB,EAAUukqB,EAAiBF,OAASxspB,GAYrC,SAASwlB,GAASmnoB,EAAWr3lB,GAIhC,IAFA,IAAI9rE,EAAQ8rE,EACRklF,EAASmygB,EAAUr8mB,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAIj7C,MAAM,KAC3D1B,EAAI,EAAGA,EAAI6mJ,EAAOtyJ,SAAW4kN,GAAYtjN,GAAQmK,IACtDnK,EAAQA,EAAMgxJ,EAAO38G,SAASlqC,EAAE0C,WAAY,MAEhD,OAAO7M,EAYJ,SAAS2lB,GAASw9oB,EAAWnjqB,EAAO8rE,GACvC,IAKI3hE,EAEA/E,EAPAD,EAAOg+pB,EAAUr8mB,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAIj7C,MAAM,KAE9DoO,EAAQ6xD,GAAO,GAEfs3lB,EAAUnppB,EAEVvb,EAASyG,EAAKzG,OAElB,IAAKyL,EAAI,EAAGA,EAAIzL,EAAQyL,IACpB/E,EAAMD,EAAKkvC,SAASlqC,EAAE0C,WAAY,KAC9B1C,EAAI,IAAMzL,EACV0kqB,EAAQ,GAAKh+pB,QAAiBoR,IAAVxW,EAAsB,GAAKA,EAE1CqjqB,GAAkBD,EAAQ,GAAKh+pB,MACpCg+pB,EAAQ,GAAKh+pB,GAAO,IAExBg+pB,EAAUA,EAAQ,GAAKh+pB,GAE3B,OAAO6U,EAkBJ,IAAIqppB,GAAoC,qBAAXz/oB,OAAyBA,OAAS,GAS/D,SAAS0kM,GAASz8I,GAErB,OAASu3lB,GAAkBv3lB,IAAQA,EAAIl/D,cAD1B,GACiDA,YAuB3D,SAASyuJ,GAAMtvC,EAAQ0rH,GAC1B,IAAK4rb,GAAkB5rb,GAKnB,IAJA,IAAI8rb,EAAUx3iB,EACVy3iB,EAAW/rb,EAGN1pH,EAAK,EAAG01iB,EAFNv+pB,OAAOC,KAAKsyO,GAES1pH,EAAK01iB,EAAO/kqB,OAAQqvH,IAAM,CACtD,IAAI3oH,EAAMq+pB,EAAO11iB,GACZs1iB,GAAkBE,EAAO,aAAgE,IAA1CA,EAAO,UAAiBh/pB,QAAQa,KAC/EmjN,GAASi7c,EAAS,GAAKp+pB,MAASzB,MAAMi2E,QAAQ4plB,EAAS,GAAKp+pB,IAI7Dm+pB,EAAQ,GAAKn+pB,GAAOo+pB,EAAS,GAAKp+pB,GAHlC8B,GAAOq8pB,EAAQ,GAAKn+pB,GAAMm+pB,EAAQ,GAAKn+pB,GAAMo+pB,EAAS,GAAKp+pB,IAAM,IAkB1E,SAAS8B,GAAOqoI,EAAQnnE,EAAOu6L,EAAQhpL,GAC1C,IAAI1sE,EAASsiI,GAA4B,kBAAXA,EAAsBA,EAAS,GACzD7wI,EAASyH,UAAUzH,OACnBi7E,IACAj7E,GAAkB,GAwCtB,IAtCA,IAAIglqB,EAAU,SAAUv5pB,GAEpB,IAAKw5pB,EAAYx5pB,GACb,MAAO,WAGX,IAAIiwG,EAAOupjB,EAAYx5pB,GACvBjF,OAAOC,KAAKi1G,GAAM/7G,SAAQ,SAAU+G,GAChC,IAEIs0E,EAFA1Z,EAAM/yD,EAAO,GAAK7H,GAClBqqD,EAAO2qD,EAAK,GAAKh1G,GAEjBw+pB,EAAiBjgqB,MAAMi2E,QAAQnqB,IAAS9rD,MAAMi2E,QAAQ5Z,IAASvQ,EAAK/wD,SAAWshE,EAAIthE,OAEnFmlqB,GAAoBC,QAAgB9jmB,aAAel/B,SAAW8ioB,EAC9DjqlB,GAAQkqlB,IAAsBt7c,GAAS94J,IAAS9rD,MAAMi2E,QAAQnqB,IAC1D84J,GAAS94J,IACTiqB,EAAQ1Z,GAAY,GAEhBr8D,MAAMi2E,QAAQF,IAAUA,EAAMxE,eAAe,kBAC7ChuE,GAAOwyE,EAAO,GAAIjqB,EAAMkqB,GAGxB1sE,EAAO,GAAK7H,GAAO8B,GAAOwyE,EAAO,GAAIjqB,EAAMkqB,KAK/CD,EAAQoqlB,KAAa9jmB,GAAO96D,OAAOC,KAAKsqD,GAAM/wD,OAASshE,GAAY,GAEnE/yD,EAAO,GAAK7H,GAAO8B,GAAO,GAAIwyE,EAAOjqB,EAAOiqB,GAASA,EAAMh7E,QAAY+wD,GAAQA,EAAK/wD,SAIxFuO,EAAO,GAAK7H,GAAOqqD,MAI3Bk0mB,EAAcx9pB,UACTgE,EAAI,EAAGA,EAAIzL,EAAQyL,IACxBu5pB,EAAQv5pB,GAEZ,OAAO8C,EASJ,SAASo2pB,GAAkBrjqB,GAC9B,YAAiBwW,IAAVxW,GAAiC,OAAVA,EAS3B,SAASsjN,GAAYtjN,GACxB,MAAQ,qBAAuBA,EA4E5B,SAAS+jqB,GAAqB7mpB,EAAOrT,GAExC,OADWqT,IACErT,KADFqT,IAIOtc,WAJPsc,IAQA6mpB,GARA7mpB,EAQ0BsL,WAAY3e,GAU9C,SAAS44G,GAAW54E,GACvB,IACI,MAAM,IAAI4J,MAAM5J,GAEpB,MAAOjrC,GAEH,MAAMA,EAAEirC,QAAU,KAAOjrC,EAAE81F,OAuE5B,SAASovkB,KACZ,OAAOrB,GClaX,ICCWuB,GDDPz3iB,GAAyB,CACzB,KAAQ,CACJ,QAAW,aACX,MAAS,YAIb03iB,GAAuB,CACvB,QAAW,IACX,MAAS,IACT,YAAe,IACf,SAAY,IACZ,UAAa,IACb,SAAY,SACZ,IAAO,MACP,YAAe,KAEfC,GAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAM/CC,GAA4B,WAC5B,SAASA,KA4KT,OAnKAA,EAAWC,cAAgB,SAAUt4lB,EAAKu4lB,GAEtC,OAAOrooB,GADK8noB,KAAaO,EAAQ,QAAUA,EACpBv4lB,IAQ3Bq4lB,EAAWG,mBAAqB,SAAUx4lB,GACtC,OAAO9vC,GAAS,gCAAiC8vC,IAAQ1tE,KAAKmmqB,kBASlEJ,EAAWK,cAAgB,SAAU3/iB,EAAM1/G,GAGvC,IAFA,IACIs6D,EAAM,GACDsuD,EAAK,EAAG02iB,EAFFt/pB,GAAQD,OAAOC,KAAK0/G,GAEKkJ,EAAK02iB,EAAW/lqB,OAAQqvH,IAAM,CAClE,IAAI3oH,EAAMq/pB,EAAW12iB,GAEhBtuD,EAAIyV,eAAe2vC,EAAKz/G,MAEzBq6D,EAAIolD,EAAKz/G,IAAQA,GAGzB,OAAOq6D,GAQX0kmB,EAAWO,eAAiB,SAAU9mjB,GAClC,IAAI+mjB,EAAW/mjB,EAAMt5G,KAAI,SAAUs4E,GAC/B,OAAOA,EAAI91B,QAAQ,4BAA6B,WACjDz3C,KAAK,KACR,OAAO,IAAI+3C,OAAOu9mB,EAAU,MAOhCR,EAAWS,eAAiB,SAAU//iB,GAGlC,IAFA,IACI+kB,EAAM,GACD7b,EAAK,EAAG82iB,EAFD3/pB,OAAOC,KAAK8+pB,IAEcl2iB,EAAK82iB,EAAYnmqB,OAAQqvH,IAAM,CACrE,IAAI3oH,EAAMy/pB,EAAY92iB,GAEtB6b,EAAI/kB,EAAKz/G,IAAQ6+pB,GAAqB7+pB,GAE1C,OAAOwkI,GAQXu6hB,EAAWW,eAAiB,SAAU3ipB,GAGlC,IAFA,IAAIyzB,EAAMzzB,EAAIzjB,OACVkrI,EAAM,GACDz/H,EAAI,EAAGA,EAAIyrC,EAAKzrC,IAEjBy/H,GADAz/H,IAAMyrC,EAAM,EACLzzB,EAAIkyB,SAASlqC,EAAE0C,WAAY,KAAO,IAGlCsV,EAAIkyB,SAASlqC,EAAE0C,WAAY,KAG1C,OAAO+8H,GAUXu6hB,EAAWY,kBAAoB,SAAU/kqB,EAAO85J,EAAOhuF,GACnD,OAAO9rE,EAAM8mD,QAAQgzG,GAAO,SAAUl9E,GAElC,OAAO9Q,EAAI8Q,OASnBunlB,EAAWa,0BAA4B,SAAUl5lB,GAC7C,IAAI89D,EAAM,GAGV,OAFAA,EAAI99D,IAAM9vC,GAAS,UAAW8vC,GAC9B89D,EAAIq7hB,QAAUjpoB,GAAS,yBAA0B4tG,EAAI99D,KAC9C89D,GAWXu6hB,EAAWe,yBAA2B,SAAUC,EAAQC,EAAcC,EAAaC,GAC/E,IAAI17hB,EAAM,GACNi+H,EAAMzpQ,KAAK4mqB,0BAA0BG,GACzC,IAAK7hd,GAAYukD,EAAIo9Z,UAAYK,EAAY,CACzC,IAAI9hW,EAAS8hW,EAAatpoB,GAAS,mBAAoB6rO,GAAO7rO,GAAS6rO,EAAIo9Z,QAAU,WAAYG,GAC5F9hd,GAAYkgH,KACb55L,EAAI27hB,YAAcnnqB,KAAKomqB,cAAchhW,EAAQ0gW,IAC7Ct6hB,EAAI47hB,iBAAmB,IAAIp+mB,OAAOhpD,KAAK0mqB,eAAethW,GAAS,KAC/D55L,EAAI67hB,aAAe,IAAMjiW,EAAO,GAAK,IAAMA,EAAO,GAAK,IACnD6hW,IACAz7hB,EAAI67hB,aAAejiW,EAAO,GAAK,IAAMA,EAAO,GAC5C55L,EAAI87hB,mBAAqB1poB,GAASspoB,EAAa,gBAAkB,wBAA0Bz9Z,EAAIo9Z,QAASp9Z,EAAI/7L,KAC5G89D,EAAI+7hB,YAAcvnqB,KAAKwmqB,eAAeh7hB,EAAI87hB,oBAC1C97hB,EAAIw7hB,aAAev9Z,EAAIo9Z,UAInC,OAAOr7hB,GAWXu6hB,EAAWyB,gBAAkB,SAAUT,EAAQC,EAAc37c,GACzD,IAAI7/E,EAAM,CAAErrG,OAAQ,IAChBspO,EAAMzpQ,KAAK4mqB,0BAA0BG,GACzC,IAAK7hd,GAAYukD,EAAIo9Z,SAAU,CAC3Br7hB,EAAIw7hB,aAAev9Z,EAAIo9Z,QACvBr7hB,EAAIi8hB,cAAgB7poB,GAAS,wBAA0B6rO,EAAIo9Z,QAASp9Z,EAAI/7L,KACxE89D,EAAIkrL,cAAgB94R,GAAS,gBAAiB4tG,EAAIi8hB,eAClD,IAAIriW,EAASxnS,GAAS6rO,EAAIo9Z,QAAU,WAAYG,GAChD,IAAK9hd,GAAYkgH,GACb,IAAK,IAAIz1M,EAAK,EAAG+3iB,EAAqB5B,GAAkBn2iB,EAAK+3iB,EAAmBpnqB,OAAQqvH,IAAM,CAC1F,IAAI5jH,EAAI27pB,EAAmB/3iB,GAE3B6b,EAAIrrG,OAAOp0B,GAAKq5T,EAAOr5T,IAInC,OAAOy/H,GAEXu6hB,EAAW4B,MAAQ,cACnB5B,EAAW6B,OAAS,eACpB7B,EAAWI,iBAAmBh4iB,GACvB43iB,EA7KqB,GAmL5B8B,GAAqB,CACrB,IAAO,MACP,IAAO,MACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,WACP,IAAO,MACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,SACP,IAAO,uBACP,IAAO,uBACP,IAAO,KACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,iBACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,iBACP,IAAO,IACP,IAAO,OACP,IAAO,uBACP,IAAO,uBACP,IAAO,uBACP,IAAO,IACP,IAAO,SACP,IAAO,MACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,KACP,IAAO,IACP,IAAO,gBACP,IAAO,SACP,IAAO,MACP,IAAO,SACP,IAAO,OACP,IAAO,eACP,IAAO,MACP,IAAO,IACP,IAAO,UACP,IAAO,OACP,IAAO,MACP,IAAO,MACP,IAAO,MACP,IAAO,UACP,IAAO,MACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,MACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,OACP,IAAO,OACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,SACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,OACP,IAAO,IACP,IAAO,KACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,IACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,SACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,MACP,IAAO,KACP,IAAO,SACP,IAAO,IACP,IAAO,OACP,IAAO,2BACP,IAAO,KACP,IAAO,KACP,IAAO,IACP,IAAO,OACP,IAAO,KACP,IAAO,KACP,IAAO,SACP,IAAO,KACP,IAAO,OACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,SACP,IAAO,qBACP,IAAO,KACP,IAAO,SACP,IAAO,MACP,IAAO,qBACP,IAAO,SACP,IAAO,IACP,IAAO,IACP,IAAO,KACP,IAAO,eACP,IAAO,OACP,IAAO,IACP,IAAO,UACP,IAAO,SACP,IAAO,KACP,IAAO,IACP,IAAO,MACP,IAAO,SACP,IAAO,gBACP,IAAO,UACP,IAAO,sBACP,IAAO,qBACP,IAAO,SACP,IAAO,KACP,IAAO,SACP,IAAO,qBACP,IAAO,SACP,IAAO,QClWX,SAAWjC,GACP,IAAIkC,EAAiB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAC7G,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAA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jF,EAAO/+H,KAAKs7C,KAAiC,IAAvBz3E,EAAKZ,QAAQq4E,GAAcq7mB,EAAc9yrB,EAAM0gF,ICnGjF,IAVC,WACxB,SAASsymB,KAOT,OAJAA,EAAOv0rB,UAAU87Q,QAAU,SAAU04a,EAAgBxnqB,EAAQi1D,GAEzD,YADe,IAAXj1D,IAAqBA,EAAS,IAC3BjT,GAAOy6qB,EAAgBxnqB,IAE3BunqB,EARiB,KAUYz4a,QAVxC,IC1IIytU,GCNAkrG,GAAa,CACb,SACA,QACA,cACA,4BACA,kCACA,wCACA,oCACA,uBACA,0BACA,0BACA,2CAEAC,GAAc,CACd,CAAExjX,UAAW,OAAQntT,SAAU,yBAC/B,CAAEmtT,UAAW,aAAcntT,SAAU,+BACrC,CAAEmtT,UAAW,QAASntT,SAAU,0BAChC,CAAEmtT,UAAW,QAASntT,SAAU,0BAChC,CAAEmtT,UAAW,OAAQntT,SAAU,qCAE/B4wqB,GAAW,CAAC,WACZ,UACA,cACA,aACA,YACA,SACA,UACA,SACA,UACA,eACA,iBACA,UACA,WACA,eACA,iBACA,gBACA,SACA,YACA,mBACA,WACA,UACA,gBACA,aACA,SACA,YACA,cACA,cACA,aACA,cACA,SACA,mBACA,YACA,UACA,UACA,UACA,UACA,eACA,cACA,cACA,UACA,YACA,YACA,aACA,UACA,SACA,eACA,mBACA,cACA,YACA,cACA,cACA,aACA,cACA,YACA,eACA,YACA,SACA,WACA,aACA,aACA,UACA,SACA,YACA,aACA,aACA,eACA,qBACA,SACA,WACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,eACA,SACA,WACA,iBACA,YACA,eACA,eACA,eACA,UACA,wBAEoC,WACpC,SAASC,KAETA,EAAmBC,eAAiB,WAChC,MAAO,CACHtsJ,UAAW,CACP97R,KAAMgob,GACN5wjB,WAAY6wjB,MAIxBE,EAAmBE,SAAW,SAAU14rB,GACpC,IAAI1B,EAAOF,KAAKq6rB,iBAEhB,OADar6rB,KAAKu6rB,eAAer6rB,EAAM0B,IAG3Cw4rB,EAAmBG,eAAiB,SAAUr6rB,EAAM0B,GAChD5B,KAAKk6rB,YAAch6rB,EAAK6tiB,UAAU1ka,WAClCrpI,KAAKi6rB,WAAa/5rB,EAAK6tiB,UAAU97R,KACjCjyQ,KAAKw6rB,YAAch4rB,SAAS4gC,cAAc,OAC1CpjC,KAAKw6rB,YAAYj6nB,UAAY3+D,EAC7B5B,KAAKy6rB,gBACLz6rB,KAAK06rB,iBACL16rB,KAAK26rB,iBACL,IAAIC,EAAe56rB,KAAKw6rB,YAAYj6nB,UAEpC,OADAvgE,KAAK2gP,gBACEi6c,EAAalyoB,QAAQ,QAAS,MAEzC0xoB,EAAmBz5c,cAAgB,WAG/B,IADA,IAAI6M,EAAQxtP,KAAKw6rB,YAAYzvrB,SACpBw/E,EAAI,EAAGA,EAAIijK,EAAMltP,OAAQiqF,IAE9B,IADA,IAAImsP,EAAYlpF,EAAMv3M,SAASs0C,EAAE97E,WAAY,KAAK46H,WACzCt9H,EAAI,EAAGA,EAAI2qU,EAAUp2U,OAAQyL,IAClC/L,KAAKw6rB,YAAYzvrB,SAASkrC,SAASs0C,EAAE97E,WAAY,KAAKu1G,gBAAgB0yN,EAAUzgS,SAASlqC,EAAE0C,WAAY,KAAKy2R,YAIxHk1Z,EAAmBK,cAAgB,WAC/B,IAAI5voB,EAAW7qD,KAAKw6rB,YAAY90rB,iBAAiB1F,KAAKi6rB,WAAWhprB,KAAK,MAClE45C,EAASvqD,OAAS,GAClBuqD,EAAS5qD,SAAQ,SAAUH,GACvBqtJ,GAAOrtJ,OAOnBs6rB,EAAmBM,eAAiB,WAChC,IAAI7voB,EAAW7qD,KAAKw6rB,YAAY90rB,iBAAiB,IAAMy0rB,GAASlprB,KAAK,OAAS,KAC1E45C,EAASvqD,OAAS,GAClBuqD,EAAS5qD,SAAQ,SAAUH,GACvBq6rB,GAASl6rB,SAAQ,SAAU2f,GACnB9f,EAAQm/S,aAAar/R,IACrB9f,EAAQkkH,gBAAgBpkG,UAS5Cw6qB,EAAmBO,eAAiB,WAChC,IAAIlmnB,EAAQz0E,KAEZA,KAAKk6rB,YAAYj6rB,SAAQ,SAAUC,EAAMW,GACrC,IAAIgqD,EAAW4pB,EAAM+lnB,YAAY90rB,iBAAiBxF,EAAKqpB,UACnDshC,EAASvqD,OAAS,GAClBuqD,EAAS5qD,SAAQ,SAAUH,GACvBA,EAAQkkH,gBAAgB9jH,EAAKw2U,kBAvET,yBD1GpCmkX,GAAYC,EAAc,cAC1BhyjB,GAAU+xjB,GAAU/xjB,QACtBiyjB,GAAcF,GAAUt7qB,OACCs7qB,GAAUtrG,uBAErC,IACoB9/hB,QAAQq5E,IAAW,IAAIr7H,MAAM,KAAK,KACjC,KACjBshlB,GAAa8rG,GAAU9rG,YAEzB,MAAOvulB,KAGT,SAASw6rB,GAAch1oB,GACrB,IAAI0lhB,EAAqDmvH,GAAUnvH,mDAC/DA,GAAsH,YAAhEw+B,EAAAA,GAAAA,GAAQx+B,KAChEA,EAAmDyhB,sBAAwBnniB,GAG/E,IAAIi1oB,GAAO,oBAqBJ,SAAS17qB,GAAO02D,EAAMn2D,GACvBivkB,GAlBN,SAAsB94gB,EAAMn2D,GAC1Bk7qB,IAAc,GACd,IAAIlqrB,EAAOgP,EAAUm7qB,KAASlsG,GAAWjvkB,GACzCk7qB,IAAc,GACdlqrB,EAAKyO,OAAO02D,GACZn2D,EAAUm7qB,IAAQnqrB,EAchBoqrB,CAAajlnB,EAAMn2D,GAZvB,SAAsBm2D,EAAMn2D,GAC1Bi7qB,GAAY9knB,EAAMn2D,GAclBq7qB,CAAallnB,EAAMn2D,GEGrB,OAnDA,SAAiB0+D,GAYf,IANA,IAEI7mB,EAFA6xF,EAAI,EAGJz9I,EAAI,EACJyrC,EAAMgnC,EAAIl+E,OAEPk3C,GAAO,IAAKzrC,EAAGyrC,GAAO,EAE3BmgB,EAEe,YAAV,OAHLA,EAAwB,IAApB6mB,EAAIptB,WAAWrlD,IAAmC,IAAtByyE,EAAIptB,aAAarlD,KAAc,GAA2B,IAAtByyE,EAAIptB,aAAarlD,KAAc,IAA4B,IAAtByyE,EAAIptB,aAAarlD,KAAc,MAG9F,OAAZ4rD,IAAM,KAAgB,IAIpD6xF,EAEe,YAAV,OALL7xF,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJ6xF,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQhyG,GACN,KAAK,EACHgyG,IAA8B,IAAxBhrE,EAAIptB,WAAWrlD,EAAI,KAAc,GAEzC,KAAK,EACHy9I,IAA8B,IAAxBhrE,EAAIptB,WAAWrlD,EAAI,KAAc,EAEzC,KAAK,EAEHy9I,EAEe,YAAV,OAHLA,GAAyB,IAApBhrE,EAAIptB,WAAWrlD,MAGsB,OAAZy9I,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAG/6I,SAAS,KClD1B,SAASszkB,GAAQnkjB,EAAUld,EAAWmgG,GACnD,IAAIu6kB,EAAWz4F,GAAAA,OAAa,IAK5B,MAJM,UAAWy4F,EAAS98c,UAAYz9H,EAAau6kB,EAAS98c,QAAQ59N,UAAWA,KAC7E06qB,EAAS98c,QAAQ18O,MAAQg8B,IACzBw9pB,EAAS98c,QAAQ59N,UAAYA,GAExB06qB,EAAS98c,QAAQ18O,MCN1B,IAAIy5rB,GAAS,GACTC,GAAgB,GASb,SAAS18nB,GAAQm1Z,EAAOtob,IAWxB,SAAS8vpB,GAAKxnO,EAAOtob,IAcrB,SAAShrC,GAAKuI,EAAQ+qd,EAAOtob,GAC7Bsob,GAAUsnO,GAAO5vpB,KACpBziC,GAAO,EAAOyiC,GACd4vpB,GAAO5vpB,IAAW,GAGf,SAAS+vpB,GAAYznO,EAAOtob,GACjChrC,GAAKm+D,GAASm1Z,EAAOtob,GAKvB+vpB,GAAYC,WAxCY,SAAoB7hqB,GAC1C0hqB,GAAc16rB,KAAKg5B,IAwCrB4hqB,GAAYE,YAhBL,WACLL,GAAS,IAgBXG,GAAYG,SALL,SAAkB5nO,EAAOtob,GAC9BhrC,GAAK86rB,GAAMxnO,EAAOtob,IAKpB,UCGA,OA5CA,SAAiBuwE,EAAMC,GACrB,IAAI2/kB,EAAU7zrB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAEzE8zrB,EAAS,IAAIl3kB,IACjB,SAASm3kB,EAAUr2oB,EAAGC,GACpB,IAAIt9B,EAAQrgB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAC5Eu/nB,EAAWu0D,EAAOhiqB,IAAI4rB,GAE1B,GADAmZ,IAAS0okB,EAAU,6CACfA,EACF,OAAO,EAET,GAAI7hlB,IAAMC,EACR,OAAO,EAET,GAAIk2oB,GAAWxzqB,EAAQ,EACrB,OAAO,EAETyzqB,EAAOv6rB,IAAImkD,GACX,IAAI6qG,EAAWloI,EAAQ,EACvB,GAAI7iB,MAAMi2E,QAAQ/1B,GAAI,CACpB,IAAKlgD,MAAMi2E,QAAQ91B,IAAMD,EAAEnlD,SAAWolD,EAAEplD,OACtC,OAAO,EAET,IAAK,IAAIyL,EAAI,EAAGA,EAAI05C,EAAEnlD,OAAQyL,IAC5B,IAAK+vrB,EAAUr2oB,EAAE15C,GAAI25C,EAAE35C,GAAIukJ,GACzB,OAAO,EAGX,OAAO,EAET,GAAI7qG,GAAKC,GAAoB,YAAfwkjB,EAAAA,GAAAA,GAAQzkjB,IAAkC,YAAfykjB,EAAAA,GAAAA,GAAQxkjB,GAAiB,CAChE,IAAI3+C,EAAOD,OAAOC,KAAK0+C,GACvB,OAAI1+C,EAAKzG,SAAWwG,OAAOC,KAAK2+C,GAAGplD,QAG5ByG,EAAKivC,OAAM,SAAUhvC,GAC1B,OAAO80rB,EAAUr2oB,EAAEz+C,GAAM0+C,EAAE1+C,GAAMspJ,MAIrC,OAAO,EAET,OAAOwriB,EAAU9/kB,EAAMC,IC9CrB8/kB,GAAsB,WACxB,SAASA,EAAOC,IACd5tF,EAAAA,EAAAA,GAAgBpumB,KAAM+7rB,IACtBlinB,EAAAA,EAAAA,GAAgB75E,KAAM,kBAAc,IAEpC65E,EAAAA,EAAAA,GAAgB75E,KAAM,QAAS,IAAIw3P,KACnCx3P,KAAKg8rB,WAAaA,EAoBpB,OAlBAvtF,EAAAA,EAAAA,GAAastF,EAAQ,CAAC,CACpB/0rB,IAAK,MACLpF,MAAO,SAAamF,GAClB,OAAO/G,KAAK2/C,MAAM9/B,IAAI9Y,EAAKkK,KAZrB,OAYqC,OAE5C,CACDjK,IAAK,SACLpF,MAAO,SAAgBmF,EAAMk1rB,GAC3B,IAAI3urB,EAAOvG,EAAKkK,KAjBV,KAmBF6khB,EAAYmmK,EADAj8rB,KAAK2/C,MAAM9/B,IAAIvS,IAEb,OAAdwohB,EACF91hB,KAAK2/C,MAAMiuM,OAAOtgP,GAElBtN,KAAK2/C,MAAMqlB,IAAI13D,EAAMwohB,OAIpBimK,EA1BiB,GA4B1B,MC3BWG,GAAa,kBACbC,GAAY,gBAIZC,GAAqB,uBACzB,SAAS/1J,KACd,IAAIg2J,EAAoB12qB,KAAK+5D,SAASjxE,SAAS,IAAIhJ,MAAM,GAIzD,GAAwB,qBAAbjD,UAA4BA,SAAS+9H,MAAQ/9H,SAAS+lC,KAAM,CACrE,IAAI3G,EAASp/B,SAAS+lC,KAAK7iC,iBAAiB,SAASk2B,OAAOugqB,GAAW,OAAS,GAC5Ep5kB,EAAavgH,SAAS+9H,KAAKxd,WAC/Bx9G,MAAM4D,KAAKy4B,GAAQ3hC,SAAQ,SAAUge,GACnCA,EAAMm+qB,IAAsBn+qB,EAAMm+qB,KAAuBC,EAGrDp+qB,EAAMm+qB,MAAwBC,GAChC75rB,SAAS+9H,KAAKqB,aAAa3jH,EAAO8kG,MAKtC,IAAIu5kB,EAAY,GAChB/2rB,MAAM4D,KAAK3G,SAASkD,iBAAiB,SAASk2B,OAAOugqB,GAAW,OAAOl8rB,SAAQ,SAAUge,GACvF,IAGQs+qB,EAHJlzmB,EAAOprE,EAAMjU,aAAamyrB,IAC1BG,EAAUjzmB,GACRprE,EAAMm+qB,MAAwBC,IAEW,QAA1CE,EAAoBt+qB,EAAMmM,kBAA8C,IAAtBmyqB,GAAwCA,EAAkBpvoB,YAAYlvC,IAG3Hq+qB,EAAUjzmB,IAAQ,KAIxB,OAAO,IAAImzmB,GAAYH,GAEzB,IAAII,GAA4B95F,GAAAA,cAAoB,CAClD+5F,aAAc,MACd/8oB,MAAO0mf,KACPs2J,cAAc,IAyBhB,MC1Ee,SAASC,KACtB,QAA4B,qBAAXn3qB,SAA0BA,OAAOjjB,WAAYijB,OAAOjjB,SAAS4gC,eCChF,IAAIy5pB,GAAe,gBACfC,GAAkB,mBAClBC,GAAW,cACXC,GAAiB,IAAIxlc,IACzB,SAASylc,KACP,IAAIj2c,EAAOj/O,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7Eg2L,EAAOipD,EAAKjpD,KACd,OAAIA,EACKA,EAAKriE,WAAW,SAAWqiE,EAAO,QAAQniK,OAAOmiK,GAEnDg/f,GAET,SAAS50rB,GAAa0c,GACpB,OAAIA,EAAOq4qB,SACFr4qB,EAAOq4qB,SAEL16rB,SAASo3E,cAAc,SACnBp3E,SAAS+lC,KAE1B,SAAS40pB,GAASvnc,GAChB,MAAgB,UAAZA,EACK,eAEFA,EAAU,UAAY,SAM/B,SAASwnc,GAAWt9qB,GAClB,OAAOva,MAAM4D,MAAM6zrB,GAAen9qB,IAAIC,IAAcA,GAAW/U,UAAUnF,QAAO,SAAUqwE,GACxF,MAAwB,UAAjBA,EAAKssI,WAGT,SAAS86e,GAAUhirB,GACxB,IAAIwJ,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACjF,IAAK60rB,KACH,OAAO,KAET,IAAIU,EAAMz4qB,EAAOy4qB,IACf1nc,EAAU/wO,EAAO+wO,QACjB2nc,EAAmB14qB,EAAO24H,SAC1BA,OAAgC,IAArB+/iB,EAA8B,EAAIA,EAC3CC,EAAcL,GAASvnc,GACvB6nc,EAAiC,iBAAhBD,EACjBE,EAAYl7rB,SAAS4gC,cAAc,SACvCs6pB,EAAU58rB,aAAa+7rB,GAAcW,GACjCC,GAAkBjgjB,GACpBkgjB,EAAU58rB,aAAag8rB,GAAiB,GAAGlhqB,OAAO4hH,IAExC,OAAR8/iB,QAAwB,IAARA,GAAkBA,EAAIr5J,QACxCy5J,EAAUz5J,MAAgB,OAARq5J,QAAwB,IAARA,OAAiB,EAASA,EAAIr5J,OAElEy5J,EAAUn9nB,UAAYllD,EACtB,IAAIyE,EAAY3X,GAAa0c,GACzBk+F,EAAajjG,EAAUijG,WAC3B,GAAI6yI,EAAS,CAEX,GAAI6nc,EAAgB,CAClB,IAAIE,EAAaP,GAAWt9qB,GAAWla,QAAO,SAAUqwE,GAEtD,IAAK,CAAC,UAAW,gBAAgB6lD,SAAS7lD,EAAKjsE,aAAa6yrB,KAC1D,OAAO,EAIT,IAAIe,EAAenuoB,OAAOwmB,EAAKjsE,aAAa8yrB,KAAoB,GAChE,OAAOt/iB,GAAYogjB,KAErB,GAAID,EAAWr9rB,OAEb,OADAwf,EAAU8hH,aAAa87jB,EAAWC,EAAWA,EAAWr9rB,OAAS,GAAGoiH,aAC7Dg7kB,EAKX59qB,EAAU8hH,aAAa87jB,EAAW36kB,QAElCjjG,EAAU03D,YAAYkmnB,GAExB,OAAOA,EAET,SAASG,GAAc72rB,GACrB,IAAI6d,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7E+X,EAAY3X,GAAa0c,GAC7B,OAAOu4qB,GAAWt9qB,GAAWzD,MAAK,SAAU45D,GAC1C,OAAOA,EAAKjsE,aAAaizrB,GAAQp4qB,MAAa7d,KAG3C,SAAS82rB,GAAU92rB,GACxB,IAAI6d,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7Eg2rB,EAAYF,GAAc72rB,EAAK6d,GACnC,GAAIk5qB,EAAW,CACb,IAAIj+qB,EAAY3X,GAAa0c,GAC7B/E,EAAUqtC,YAAY4woB,IAO1B,SAASC,GAAkBl+qB,EAAW+E,GACpC,IAAIo5qB,EAAsBjB,GAAen9qB,IAAIC,GAG7C,IAAKm+qB,IC3GQ,SAAkBntrB,EAAM4mD,GACrC,IAAK5mD,EACH,OAAO,EAIT,GAAIA,EAAKiO,SACP,OAAOjO,EAAKiO,SAAS24C,GAKvB,IADA,IAAIue,EAAOve,EACJue,GAAM,CACX,GAAIA,IAASnlE,EACX,OAAO,EAETmlE,EAAOA,EAAK7rD,WAEd,OAAO,EDyFsBrL,CAASvc,SAAUy7rB,GAAsB,CACpE,IAAIC,EAAmBb,GAAU,GAAIx4qB,GACjCuF,EAAa8zqB,EAAiB9zqB,WAClC4yqB,GAAeh4nB,IAAIllD,EAAWsK,GAC9BtK,EAAUqtC,YAAY+woB,IAUnB,SAASC,GAAU9irB,EAAKrU,GAC7B,IAAI6d,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7E+X,EAAY3X,GAAa0c,GAG7Bm5qB,GAAkBl+qB,EAAW+E,GAC7B,IAAIk5qB,EAAYF,GAAc72rB,EAAK6d,GACnC,GAAIk5qB,EAAW,CACb,IAAIK,EAAaC,EAEXC,EADN,GAAmC,QAA9BF,EAAcv5qB,EAAOy4qB,WAAiC,IAAhBc,GAA0BA,EAAYn6J,OAAS85J,EAAU95J,SAA2C,QAA/Bo6J,EAAex5qB,EAAOy4qB,WAAkC,IAAjBe,OAA0B,EAASA,EAAap6J,OAErM85J,EAAU95J,MAAwC,QAA/Bq6J,EAAez5qB,EAAOy4qB,WAAkC,IAAjBgB,OAA0B,EAASA,EAAar6J,MAK5G,OAHI85J,EAAUx9nB,YAAcllD,IAC1B0irB,EAAUx9nB,UAAYllD,GAEjB0irB,EAET,IAAI9oK,EAAUooK,GAAUhirB,EAAKwJ,GAE7B,OADAowgB,EAAQn0hB,aAAam8rB,GAAQp4qB,GAAS7d,GAC/BiuhB,EE5HT,IAAIspK,GAA0B,WAC5B,SAASA,KACPnwF,EAAAA,EAAAA,GAAgBpumB,KAAMu+rB,IACtB1knB,EAAAA,EAAAA,GAAgB75E,KAAM,aAAS,IAC/B65E,EAAAA,EAAAA,GAAgB75E,KAAM,YAAQ,IAC9B65E,EAAAA,EAAAA,GAAgB75E,KAAM,sBAAkB,GACxCA,KAAK2/C,MAAQ,IAAI63M,IACjBx3P,KAAK+G,KAAO,GACZ/G,KAAKw+rB,eAAiB,EAiHxB,OA/GA/vF,EAAAA,EAAAA,GAAa8vF,EAAY,CAAC,CACxBv3rB,IAAK,OACLpF,MAAO,WACL,OAAO5B,KAAK+G,KAAKzG,SAElB,CACD0G,IAAK,cACLpF,MAAO,SAAqB68rB,GAC1B,IAAIC,EAASC,EACTC,EAAkB72rB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GACjF43C,EAAQ,CACVz5C,IAAKlG,KAAK2/C,OAaZ,OAXA8+oB,EAAiBx+rB,SAAQ,SAAU4+rB,GAI/B,IAAIl0V,EAAQm0V,EAHTn/oB,EAIHA,EAA6B,QAApBgrT,EAAShrT,SAA8B,IAAXgrT,GAA2D,QAA7Bm0V,EAAan0V,EAAOzkW,WAAgC,IAAf44rB,OAA/C,EAAgFA,EAAWj/qB,IAAIg/qB,GAHxJl/oB,OAAQvnC,KAMc,QAArBsmrB,EAAU/+oB,SAA+B,IAAZ++oB,GAAsBA,EAAQ98rB,OAASg9rB,IACvEj/oB,EAAM/9C,MAAM,GAAK5B,KAAKw+rB,kBAEK,QAArBG,EAAUh/oB,SAA+B,IAAZg/oB,OAAqB,EAASA,EAAQ/8rB,QAE5E,CACDoF,IAAK,MACLpF,MAAO,SAAa68rB,GAClB,IAAIM,EACJ,OAA0E,QAAlEA,EAAoB/+rB,KAAKg/rB,YAAYP,GAAkB,UAAyC,IAAtBM,OAA+B,EAASA,EAAkB,KAE7I,CACD/3rB,IAAK,MACLpF,MAAO,SAAa68rB,GAClB,QAASz+rB,KAAKg/rB,YAAYP,KAE3B,CACDz3rB,IAAK,MACLpF,MAAO,SAAa68rB,EAAkB78rB,GACpC,IAAI6yE,EAAQz0E,KAEZ,IAAKA,KAAK65B,IAAI4kqB,GAAmB,CAC/B,GAAIz+rB,KAAKwY,OAAS,EAAI+lrB,EAAWU,eAAiBV,EAAWW,iBAAkB,CAC7E,IAAIC,EAAoBn/rB,KAAK+G,KAAK2C,QAAO,SAAUmF,EAAQ7H,GACvD,IACEo4rB,GADY/uF,EAAAA,EAAAA,GAAexhmB,EAAQ,GACf,GACtB,OAAI4lE,EAAMuqnB,YAAYh4rB,GAAK,GAAKo4rB,EACvB,CAACp4rB,EAAKytE,EAAMuqnB,YAAYh4rB,GAAK,IAE/B6H,IACN,CAAC7O,KAAK+G,KAAK,GAAI/G,KAAKw+rB,iBAEvBa,GADqBhvF,EAAAA,EAAAA,GAAe8uF,EAAmB,GACxB,GACjCn/rB,KAAK4tP,OAAOyxc,GAEdr/rB,KAAK+G,KAAKnG,KAAK69rB,GAEjB,IAAI9+oB,EAAQ3/C,KAAK2/C,MACjB8+oB,EAAiBx+rB,SAAQ,SAAU4+rB,EAAYh+rB,GAC7C,GAAIA,IAAU49rB,EAAiBn+rB,OAAS,EACtCq/C,EAAMqlB,IAAI65nB,EAAY,CACpBj9rB,MAAO,CAACA,EAAO6yE,EAAM+pnB,wBAElB,CACL,IAAIc,EAAa3/oB,EAAM9/B,IAAIg/qB,GACtBS,EAIOA,EAAWp5rB,MACrBo5rB,EAAWp5rB,IAAM,IAAIsxP,KAJrB73M,EAAMqlB,IAAI65nB,EAAY,CACpB34rB,IAAK,IAAIsxP,MAKb73M,EAAQA,EAAM9/B,IAAIg/qB,GAAY34rB,UAInC,CACDc,IAAK,eACLpF,MAAO,SAAsB29rB,EAAcC,GACzC,IAEMC,EAFF9/oB,EAAQ4/oB,EAAa1/qB,IAAI2/qB,EAAY,IACzC,GAA2B,IAAvBA,EAAYl/rB,OASd,OAPKq/C,EAAMz5C,IAGTq5rB,EAAav6nB,IAAIw6nB,EAAY,GAAI,CAC/Bt5rB,IAAKy5C,EAAMz5C,MAHbq5rB,EAAa3xc,OAAO4xc,EAAY,IAMM,QAAhCC,EAAe9/oB,EAAM/9C,aAAoC,IAAjB69rB,OAA0B,EAASA,EAAa,GAElG,IAAI5wrB,EAAS7O,KAAK0/rB,aAAa//oB,EAAMz5C,IAAKs5rB,EAAY/5rB,MAAM,IAI5D,OAHMk6C,EAAMz5C,KAA0B,IAAnBy5C,EAAMz5C,IAAIsS,MAAgBmnC,EAAM/9C,OACjD29rB,EAAa3xc,OAAO4xc,EAAY,IAE3B3wrB,IAER,CACD7H,IAAK,SACLpF,MAAO,SAAiB68rB,GAEtB,GAAIz+rB,KAAK65B,IAAI4kqB,GAIX,OAHAz+rB,KAAK+G,KAAO/G,KAAK+G,KAAKnB,QAAO,SAAU1F,GACrC,OA7HH,SAA8BwY,EAAMqF,GACzC,GAAIrF,EAAKpY,SAAWyd,EAAMzd,OACxB,OAAO,EAET,IAAK,IAAIyL,EAAI,EAAGA,EAAI2M,EAAKpY,OAAQyL,IAC/B,GAAI2M,EAAK3M,KAAOgS,EAAMhS,GACpB,OAAO,EAGX,OAAO,EAoHS4zrB,CAAqBz/rB,EAAMu+rB,MAE9Bz+rB,KAAK0/rB,aAAa1/rB,KAAK2/C,MAAO8+oB,OAKpCF,EAzHqB,IA2H9B1knB,EAAAA,EAAAA,GAAgB0knB,GAAY,iBAAkB,KAC9C1knB,EAAAA,EAAAA,GAAgB0knB,GAAY,mBAAoB,GCzIhD,IAAIqB,GAAO,EAMPC,GAAqB,WACvB,SAASA,EAAML,IACbpxF,EAAAA,EAAAA,GAAgBpumB,KAAM6/rB,IACtBhmnB,EAAAA,EAAAA,GAAgB75E,KAAM,mBAAe,IACrC65E,EAAAA,EAAAA,GAAgB75E,KAAM,UAAM,GAC5BA,KAAKw/rB,YAAcj6rB,MAAMi2E,QAAQgknB,GAAeA,EAAc,CAACA,GAC/Dx/rB,KAAKiK,GAAK21rB,GACiB,IAAvBJ,EAAYl/rB,QACNk/rB,EAAYl/rB,OAEtBs/rB,IAAQ,EAUV,OARAnxF,EAAAA,EAAAA,GAAaoxF,EAAO,CAAC,CACnB74rB,IAAK,qBACLpF,MAAO,SAA4BykF,GACjC,OAAOrmF,KAAKw/rB,YAAY91rB,QAAO,SAAUmF,EAAQgwrB,GAC/C,OAAOA,EAAWx4mB,EAAOx3E,UACxBuJ,OAGAynrB,EApBgB,GCRrBC,GAAc,IAAIvB,GAKP,SAASwB,GAAYP,GAClC,IAAIQ,EAAgBz6rB,MAAMi2E,QAAQgknB,GAAeA,EAAc,CAACA,GAOhE,OALKM,GAAYjmqB,IAAImmqB,IACnBF,GAAY96nB,IAAIg7nB,EAAe,IAAIH,GAAMG,IAIpCF,GAAYjgrB,IAAImgrB,GCVlB,SAASC,GAAa55mB,GAC3B,IAAI7H,EAAM,GAYV,OAXA13E,OAAOC,KAAKs/E,GAAOpmF,SAAQ,SAAU+G,GACnC,IAAIpF,EAAQykF,EAAMr/E,GAClBw3E,GAAOx3E,EACHpF,aAAiBi+rB,GACnBrhnB,GAAO58E,EAAMqI,GACJrI,GAA4B,YAAnBsomB,EAAAA,GAAAA,GAAQtomB,GAC1B48E,GAAOyhnB,GAAar+rB,GAEpB48E,GAAO58E,KAGJ48E,EAMF,SAAS0hnB,GAAU75mB,EAAO85mB,GAC/B,OAAO92mB,GAAK,GAAGztD,OAAOukqB,EAAM,KAAKvkqB,OAAOqkqB,GAAa55mB,KAEvD,IAAI+5mB,GAAoB,UAAUxkqB,OAAO0yC,KAAKskC,MAAO,KAAKh3E,OAAOjW,KAAK+5D,UAAUh3B,QAAQ,MAAO,IAG3F23oB,GAAe,WACnB,SAASC,GAAgBC,EAAU7hR,EAAe8hR,GAChD,GAAI5D,KAAa,CACf,IAAI6D,EAAuBC,EAC3BvC,GAAUoC,EAAUH,IACpB,IAAIO,EAAOn+rB,SAAS4gC,cAAc,OAClCu9pB,EAAK1irB,MAAMkI,SAAW,QACtBw6qB,EAAK1irB,MAAMvF,KAAO,IAClBiorB,EAAK1irB,MAAMnF,IAAM,IACC,OAAlB4la,QAA4C,IAAlBA,GAAoCA,EAAciiR,GAC5En+rB,SAAS+lC,KAAKivC,YAAYmpnB,GAK1B,IAAI9oZ,EAAU2oZ,EAAeA,EAAaG,GAAqE,QAA5DF,EAAwBl+jB,iBAAiBo+jB,GAAM7/qB,eAA+C,IAA1B2/qB,OAAmC,EAASA,EAAsB3kkB,SAASukkB,IAGlM,OAFwC,QAAvCK,EAAkBC,EAAKv2qB,kBAA4C,IAApBs2qB,GAAsCA,EAAgBvzoB,YAAYwzoB,GAClH7C,GAAUsC,IACHvoZ,EAET,OAAO,EAET,IAAI+oZ,QAAWxorB,EACR,SAASyorB,KAMd,YALiBzorB,IAAbworB,KACFA,GAAWN,GAAgB,UAAU1kqB,OAAOwkqB,GAAmB,QAAQxkqB,OAAOwkqB,GAAmB,iBAAkBxkqB,OAAOykqB,GAAc,qBAAsB,SAAUhjB,GACtKA,EAAIhvqB,UAAY+xrB,OAGbQ,GCrDT,IAAIE,GAA6DlE,KAAcj6F,GAAAA,gBAAwBA,GAAAA,UACnG7gB,GAAkB,SAAyBtzhB,EAAUisE,GACvD,IAAIsmkB,EAAgBp+F,GAAAA,QAAa,GACjCm+F,IAAwB,WACtB,OAAOtyoB,EAASuyoB,EAAczid,WAC7B7jH,GAGHqmkB,IAAwB,WAEtB,OADAC,EAAczid,SAAU,EACjB,WACLyid,EAAczid,SAAU,KAEzB,KAEM0id,GAAwB,SAA+BxyoB,EAAUisE,GAC1Eqnd,IAAgB,SAAUm/G,GACxB,IAAKA,EACH,OAAOzyoB,MAERisE,IAEL,MCpBIond,GADYi5G,EAAc,GAAIn4F,IACC9gB,mBAmB/Bq/G,GAA+Br/G,GAAqB,SAAUs/G,EAAchglB,EAAQsZ,GACtF,OAAOond,IAAmB,WAExB,OADAs/G,IACOhglB,MACNsZ,IAhB4B,SAAoC0mkB,EAAchglB,EAAQsZ,GACzFkoe,GAAAA,QAAcw+F,EAAc1mkB,GAC5Bqnd,IAAgB,WACd,OAAO3ge,GAAO,KACbsZ,IAcL,MCQA,GAD6D,qBArC7CqgkB,EAAc,GAAIn4F,IACC9gB,mBAGV,SAA4Bpnd,GACnD,IAAI2mkB,EAAiB,GACjBC,GAAc,EAsBlB,OAZA1+F,GAAAA,WAAgB,WAGd,OADA0+F,GAAc,EACP,WACLA,GAAc,EACVD,EAAe9gsB,QACjB8gsB,EAAenhsB,SAAQ,SAAU25B,GAC/B,OAAOA,UAIZ6gG,GApBH,SAAkB7gG,GACZynqB,GAMJD,EAAexgsB,KAAKg5B,KAgBX,WACX,OAAO,SAAUA,GACfA,MC5BJ,OAPA,WACE,OAAO,GCMM,SAAS0nqB,GAAez2pB,EAAQ02pB,EAASC,EAASC,EAEjEC,GACE,IACEC,EADsBh/F,GAAAA,WAAiB85F,IACP98oB,MAC9BxvC,EAAW,CAAC06B,GAAQjP,QAAOi1kB,EAAAA,EAAAA,GAAmB0wF,IAC9C9mkB,EAAOtqH,EAASc,KAAK,KACrBqkE,EAAWssnB,GAAyB,CAACnnkB,IAErConkB,GADYC,KACC,SAAoB7mH,GACnC0mH,EAAYtjrB,OAAOlO,GAAU,SAAU4xrB,GACrC,IAAI/6c,EAAO+6c,GAAa,GACtB55c,GAAQkoX,EAAAA,EAAAA,GAAerpX,EAAM,GAC7Bg7c,EAAS75c,EAAM,GAUjB,IACIt6O,EAAO,MAVU,IAAXm0rB,EAAoB,EAAIA,EACxB75c,EAAM,IAQcq5c,KAI9B,OAAOvmH,EAAUA,EAAQptkB,GAAQA,OAKrC80lB,GAAAA,SAAc,WACZk/F,MAEF,CAACpnkB,IAYD,IAAIwnkB,EATcN,EAAY9hrB,IAAI1P,GASH,GAqC/B,OAlCA+wrB,IAA6B,WACT,OAAlBQ,QAA4C,IAAlBA,GAAoCA,EAAcO,MAC3E,SAAUC,GAaX,OATAL,GAAW,SAAUj5c,GACnB,IAAI+vD,GAAQ03T,EAAAA,EAAAA,GAAeznX,EAAO,GAChCh0H,EAAQ+jL,EAAM,GACdh5P,EAAQg5P,EAAM,GAIhB,OAHIupZ,GAAsB,IAAVttkB,IACI,OAAlB8skB,QAA4C,IAAlBA,GAAoCA,EAAcO,IAEvE,CAACrtkB,EAAQ,EAAGj1E,MAEd,WACLgipB,EAAYtjrB,OAAOlO,GAAU,SAAU4xrB,GACrC,IAAInpZ,EAAQmpZ,GAAa,GACvBhpZ,GAAQs3T,EAAAA,EAAAA,GAAez3T,EAAO,GAC9BupZ,EAASppZ,EAAM,GACfnkL,OAAmB,IAAXutkB,EAAoB,EAAIA,EAChCxipB,EAAQo5P,EAAM,GAEhB,OAAkB,IADFnkL,EAAQ,GAGtBt/C,GAAS,WACP,OAAyB,OAAlBmsnB,QAA4C,IAAlBA,OAA2B,EAASA,EAAc9hpB,GAAO,MAErF,MAEF,CAACi1E,EAAQ,EAAGj1E,SAGtB,CAAC86E,IACGwnkB,ECnFT,IAAIG,GAAiB,GAKjBC,GAAY,IAAI7qc,IACpB,SAAS8qc,GAAiBC,GACxBF,GAAUr9nB,IAAIu9nB,GAAWF,GAAUxirB,IAAI0irB,IAAa,GAAK,GAgB3D,SAASC,GAAgBD,EAAUvG,GACjCqG,GAAUr9nB,IAAIu9nB,GAAWF,GAAUxirB,IAAI0irB,IAAa,GAAK,GACzD,IAAIE,EAAel9rB,MAAM4D,KAAKk5rB,GAAUt7rB,QACpC27rB,EAAmBD,EAAa78rB,QAAO,SAAUoB,GAEnD,OADYq7rB,GAAUxirB,IAAI7Y,IAAQ,IAClB,KAIdy7rB,EAAanisB,OAASoisB,EAAiBpisB,OAZvB,GAalBoisB,EAAiBzisB,SAAQ,SAAU+G,IAxBvC,SAAyBA,EAAKg1rB,GACJ,qBAAbx5rB,UACIA,SAASkD,iBAAiB,SAASk2B,OAAOsgqB,GAAY,MAAOtgqB,OAAO50B,EAAK,OAC/E/G,SAAQ,SAAUge,GAErB,IAAIs+qB,EADFt+qB,EAAMm+qB,MAAwBJ,IAEW,QAA1CO,EAAoBt+qB,EAAMmM,kBAA8C,IAAtBmyqB,GAAwCA,EAAkBpvoB,YAAYlvC,OAmB3H0krB,CAAgB37rB,EAAKg1rB,GACrBqG,GAAUz0c,OAAO5mP,MAIhB,IAAI47rB,GAAmB,SAA0BC,EAAaC,EAAevyqB,EAAOuI,GACzF,IAGIiqqB,EAAwBjI,EAAcA,EAAc,GAHlCvqqB,EAAMyyqB,mBAAmBH,IAG+BC,GAM9E,OAHIhqqB,IACFiqqB,EAAwBjqqB,EAAOiqqB,IAE1BA,mBCRT,GAjDmB,CACjBznJ,wBAAyB,EACzBqxB,kBAAmB,EACnBnxB,iBAAkB,EAClBoxB,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBhsD,YAAa,EACbisD,QAAS,EACT7ze,KAAM,EACNsid,SAAU,EACVwxB,aAAc,EACdvxB,WAAY,EACZwxB,aAAc,EACdC,UAAW,EACXpxB,QAAS,EACTC,WAAY,EACZoxB,YAAa,EACbnxB,aAAc,EACdL,WAAY,EACZC,cAAe,EACfwxB,eAAgB,EAChBvxB,gBAAiB,EACjBmnJ,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBj2f,WAAY,EACZv5J,WAAY,EACZs9F,QAAS,EACTypX,MAAO,EACPyJ,QAAS,EACT9rW,QAAS,EACT+rW,OAAQ,EACRlhd,OAAQ,EACR51B,KAAM,EACN81qB,gBAAiB,EAEjBnnJ,YAAa,EACbC,aAAc,EACdC,YAAa,EACbmxB,gBAAiB,EACjBC,iBAAkB,EAClBnxB,iBAAkB,EAClBhqC,cAAe,EACfp4d,YAAa,GC1CJqppB,GAAU,OACVC,GAAU,OACVC,GAAc,OCFdlmpB,GAAM33B,KAAK23B,IAMXn0C,GAAO08D,OAAOsmE,aAMLrlI,OAAOw4C,OAepB,SAAS1e,GAAMh/B,GACrB,OAAOA,EAAMg/B,OAkBP,SAAS8nB,GAAS9mD,EAAOozG,EAAS6rE,GACxC,OAAOj/K,EAAM8mD,QAAQssD,EAAS6rE,GAQxB,SAAS4ihB,GAAS7hsB,EAAOs3J,GAC/B,OAAOt3J,EAAMuE,QAAQ+yJ,GAQf,SAASwqiB,GAAQ9hsB,EAAOf,GAC9B,OAAiC,EAA1Be,EAAMwvD,WAAWvwD,GASlB,SAAS8P,GAAQ/O,EAAOuxB,EAAOC,GACrC,OAAOxxB,EAAM6D,MAAM0tB,EAAOC,GAOpB,SAASuwqB,GAAQ/hsB,GACvB,OAAOA,EAAMtB,OAgBP,SAASyf,GAAQne,EAAOy2C,GAC9B,OAAOA,EAAMz3C,KAAKgB,GAAQA,EChGpB,SAAS68B,GAAW1zB,EAAUyjD,GAGpC,IAFA,IAAIutE,EAAS,GAEJhwH,EAAI,EAAGA,EAAIhB,EAASzK,OAAQyL,IACpCgwH,GAAUvtE,EAASzjD,EAASgB,GAAIA,EAAGhB,EAAUyjD,IAAa,GAE3D,OAAOutE,EAUD,SAASxgH,GAAWzb,EAASe,EAAOkK,EAAUyjD,GACpD,OAAQ1uD,EAAQ6jB,MACf,IFNiB,SEML,GAAI7jB,EAAQiL,SAASzK,OAAQ,MACzC,IFjBkB,UEiBL,KAAKkjsB,GAAa,OAAO1jsB,EAAQk+I,OAASl+I,EAAQk+I,QAAUl+I,EAAQ8B,MACjF,KAAK0hsB,GAAS,MAAO,GACrB,IFbqB,aEaL,OAAOxjsB,EAAQk+I,OAASl+I,EAAQ8B,MAAQ,IAAM68B,GAAU3+B,EAAQiL,SAAUyjD,GAAY,IACtG,KAAK+0oB,GAAS,IAAKI,GAAO7jsB,EAAQ8B,MAAQ9B,EAAQ0/G,MAAMvuG,KAAK,MAAO,MAAO,GAG5E,OAAO0yrB,GAAO54rB,EAAW0zB,GAAU3+B,EAAQiL,SAAUyjD,IAAa1uD,EAAQk+I,OAASl+I,EAAQ8B,MAAQ,IAAMmJ,EAAW,IAAM,GC/BpH,IAAImwC,GAAO,EACPmqC,GAAS,EACT/kF,GAAS,EACT6lB,GAAW,EACX0kI,GAAY,EACZ+4iB,GAAa,GAYjB,SAAS3tnB,GAAMr0E,EAAOkP,EAAMrF,EAAQkY,EAAM67F,EAAOz0G,EAAUzK,EAAQw6B,GACzE,MAAO,CAACl5B,MAAOA,EAAOkP,KAAMA,EAAMrF,OAAQA,EAAQkY,KAAMA,EAAM67F,MAAOA,EAAOz0G,SAAUA,EAAUmwC,KAAMA,GAAMmqC,OAAQA,GAAQ/kF,OAAQA,EAAQ09I,OAAQ,GAAIljH,SAAUA,GAgC5J,SAAS2L,KAMf,OALAokH,GAAY1kI,GAAW,EAAIu9qB,GAAOE,KAAcz9qB,IAAY,EAExDk/D,KAAwB,KAAdwlE,KACbxlE,GAAS,EAAGnqC,MAEN2vG,GAMD,SAASvsG,KAMf,OALAusG,GAAY1kI,GAAW7lB,GAASojsB,GAAOE,GAAYz9qB,MAAc,EAE7Dk/D,KAAwB,KAAdwlE,KACbxlE,GAAS,EAAGnqC,MAEN2vG,GAMD,SAASn6I,KACf,OAAOgzrB,GAAOE,GAAYz9qB,IAMpB,SAASogW,KACf,OAAOpgW,GAQD,SAAS1gB,GAAO0tB,EAAOC,GAC7B,OAAOziB,GAAOizrB,GAAYzwqB,EAAOC,GAO3B,SAASizD,GAAO1iE,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,EAOD,SAASkgrB,GAAOjisB,GACtB,OAAOs5C,GAAOmqC,GAAS,EAAG/kF,GAASqjsB,GAAOC,GAAahisB,GAAQukB,GAAW,EAAG,GAOvE,SAAS29qB,GAASlisB,GACxB,OAAOgisB,GAAa,GAAIhisB,EAOlB,SAASmisB,GAASpgrB,GACxB,OAAOid,GAAKn7B,GAAM0gB,GAAW,EAAGo4D,GAAmB,KAAT56D,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,KAetF,SAASyhhB,GAAYzhhB,GAC3B,MAAOknI,GAAYn6I,OACdm6I,GAAY,IACfvsG,KAIF,OAAO+nC,GAAM1iE,GAAQ,GAAK0iE,GAAMwkE,IAAa,EAAI,GAAK,IAyBhD,SAASm5iB,GAAUnjsB,EAAOq4E,GAChC,OAASA,GAAS56B,QAEbusG,GAAY,IAAMA,GAAY,KAAQA,GAAY,IAAMA,GAAY,IAAQA,GAAY,IAAMA,GAAY,MAG/G,OAAOplJ,GAAM5E,EAAO0lX,MAAWrtS,EAAQ,GAAe,IAAVxoE,MAA0B,IAAV4tC,OAOtD,SAASigC,GAAW56D,GAC1B,KAAO26B,MACN,OAAQusG,IAEP,KAAKlnI,EACJ,OAAOwC,GAER,KAAK,GAAI,KAAK,GACA,KAATxC,GAAwB,KAATA,GAClB46D,GAAUssE,IACX,MAED,KAAK,GACS,KAATlnI,GACH46D,GAAU56D,GACX,MAED,KAAK,GACJ26B,KAIH,OAAOn4B,GAQD,SAAS89qB,GAAWtgrB,EAAM9iB,GAChC,KAAOy9C,MAEF36B,EAAOknI,KAAc,KAGhBlnI,EAAOknI,KAAc,IAAsB,KAAXn6I,QAG1C,MAAO,KAAOjL,GAAM5E,EAAOslB,GAAW,GAAK,IAAMhd,GAAc,KAATwa,EAAcA,EAAO26B,MAOrE,SAASk3P,GAAY30S,GAC3B,MAAQwlF,GAAM31E,OACb4tC,KAED,OAAO74C,GAAM5E,EAAOslB,ICvPd,SAASm7P,GAAS1/Q,GACxB,OAAOkisB,GAAQztmB,GAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAKz0F,EAAQiisB,GAAMjisB,GAAQ,EAAG,CAAC,GAAIA,IAezE,SAASy0F,GAAOz0F,EAAOkP,EAAMrF,EAAQgoE,EAAMwlB,EAAOirmB,EAAUz5J,EAAQ/qF,EAAQykP,GAiBlF,IAhBA,IAAItjsB,EAAQ,EACR0K,EAAS,EACTjL,EAASmqiB,EACT25J,EAAS,EACTnxqB,EAAW,EACXqtF,EAAW,EACX+iM,EAAW,EACXghZ,EAAW,EACXC,EAAY,EACZz5iB,EAAY,EACZlnI,EAAO,GACP67F,EAAQvmB,EACRluF,EAAWm5rB,EACXK,EAAY9wnB,EACZmwnB,EAAajgrB,EAEV0grB,GACN,OAAQ/jlB,EAAWuqC,EAAWA,EAAYvsG,MAEzC,KAAK,GACJ,GAAgB,KAAZgiE,GAAqD,IAAlCojlB,GAAOE,EAAYtjsB,EAAS,GAAU,EACkB,GAA1EmjsB,GAAQG,GAAcl7oB,GAAQq7oB,GAAQl5iB,GAAY,IAAK,OAAQ,SAClEy5iB,GAAa,GACd,MAGF,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBV,GAAcG,GAAQl5iB,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9B+4iB,GAAcx+J,GAAW9kb,GACzB,MAED,KAAK,GACJsjlB,GAAcI,GAASz9U,KAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQ71W,MACP,KAAK,GAAI,KAAK,GACbqP,GAAO0kJ,GAAQw/hB,GAAU3lpB,KAAQioU,MAAUz1W,EAAMrF,EAAQ04rB,GAAeA,GACxE,MACD,QACCP,GAAc,IAEhB,MAED,KAAK,IAAMvgZ,EACVq8J,EAAO7+c,KAAW8isB,GAAOC,GAAcU,EAExC,KAAK,IAAMjhZ,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQx4J,GAEP,KAAK,EAAG,KAAK,IAAKw5iB,EAAW,EAE7B,KAAK,GAAK94rB,GAA0B,GAAd+4rB,IAAiBV,EAAal7oB,GAAQk7oB,EAAY,MAAO,KAC1E3wqB,EAAW,GAAM0wqB,GAAOC,GAActjsB,GACzCyf,GAAOkT,EAAW,GAAKuxqB,GAAYZ,EAAa,IAAKnwnB,EAAMhoE,EAAQnL,EAAS,EAAG6jsB,GAAgBK,GAAY97oB,GAAQk7oB,EAAY,IAAK,IAAM,IAAKnwnB,EAAMhoE,EAAQnL,EAAS,EAAG6jsB,GAAeA,GACzL,MAED,KAAK,GAAIP,GAAc,IAEvB,QAGC,GAFA7jrB,GAAOwkrB,EAAYE,GAAQb,EAAY9yrB,EAAMrF,EAAQ5K,EAAO0K,EAAQ0tF,EAAOymX,EAAQ/7b,EAAM67F,EAAQ,GAAIz0G,EAAW,GAAIzK,EAAQ4jsB,GAAWA,GAErH,MAAdr5iB,EACH,GAAe,IAAXt/I,EACH8qF,GAAMutmB,EAAY9yrB,EAAMyzrB,EAAWA,EAAW/klB,EAAO0klB,EAAU5jsB,EAAQo/c,EAAQ30c,QAE/E,OAAmB,KAAXq5rB,GAA2C,MAA1BV,GAAOE,EAAY,GAAa,IAAMQ,GAE9D,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAClC/tmB,GAAMz0F,EAAO2isB,EAAWA,EAAW9wnB,GAAQ1zD,GAAO0krB,GAAQ7isB,EAAO2isB,EAAWA,EAAW,EAAG,EAAGtrmB,EAAOymX,EAAQ/7b,EAAMs1E,EAAOumB,EAAQ,GAAIl/G,EAAQyK,GAAWA,GAAWkuF,EAAOluF,EAAUzK,EAAQo/c,EAAQjsY,EAAO+rC,EAAQz0G,GACnN,MACD,QACCsrF,GAAMutmB,EAAYW,EAAWA,EAAWA,EAAW,CAAC,IAAKx5rB,EAAU,EAAG20c,EAAQ30c,IAIpFlK,EAAQ0K,EAAS0nB,EAAW,EAAGowR,EAAWihZ,EAAY,EAAG3grB,EAAOigrB,EAAa,GAAItjsB,EAASmqiB,EAC1F,MAED,KAAK,GACJnqiB,EAAS,EAAIqjsB,GAAOC,GAAa3wqB,EAAWqtF,EAC7C,QACC,GAAI+iM,EAAW,EACd,GAAiB,KAAbx4J,IACDw4J,OACE,GAAiB,KAAbx4J,GAAkC,GAAdw4J,KAA6B,KAAV58Q,KAC/C,SAEF,OAAQm9pB,GAAcz6rB,GAAK0hJ,GAAYA,EAAYw4J,GAElD,KAAK,GACJihZ,EAAY/4rB,EAAS,EAAI,GAAKq4rB,GAAc,MAAO,GACnD,MAED,KAAK,GACJlkP,EAAO7+c,MAAY8isB,GAAOC,GAAc,GAAKU,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAX5zrB,OACHkzrB,GAAcG,GAAQzlpB,OAEvB8lpB,EAAS1zrB,KAAQnF,EAASjL,EAASqjsB,GAAOhgrB,EAAOigrB,GAAcpuZ,GAAW+wE,OAAW17N,IACrF,MAED,KAAK,GACa,KAAbvqC,GAAyC,GAAtBqjlB,GAAOC,KAC7BvgZ,EAAW,IAIjB,OAAO6gZ,EAkBD,SAASO,GAAS7isB,EAAOkP,EAAMrF,EAAQ5K,EAAO0K,EAAQ0tF,EAAOymX,EAAQ/7b,EAAM67F,EAAOz0G,EAAUzK,EAAQw6B,GAK1G,IAJA,IAAI4pqB,EAAOn5rB,EAAS,EAChBkoE,EAAkB,IAAXloE,EAAe0tF,EAAQ,CAAC,IAC/BzgF,EHpEE,SAAiB5W,GACvB,OAAOA,EAAMtB,OGmEFqksB,CAAOlxnB,GAET1nE,EAAI,EAAGw+E,EAAI,EAAG5yB,EAAI,EAAG5rD,EAAIlL,IAASkL,EAC1C,IAAK,IAAIiF,EAAI,EAAG2M,EAAIhN,GAAO/O,EAAO8isB,EAAO,EAAGA,EAAOpnpB,GAAIitC,EAAIm1X,EAAO3zc,KAAM65G,EAAIhkH,EAAOoP,EAAIwH,IAAQxH,GAC1F40G,EAAIhlF,GAAK2pD,EAAI,EAAI9W,EAAKziE,GAAK,IAAM2M,EAAI+qC,GAAQ/qC,EAAG,OAAQ81D,EAAKziE,QAChEwuG,EAAM7nD,KAAOiuD,GAEhB,OAAO3vC,GAAKr0E,EAAOkP,EAAMrF,EAAmB,IAAXF,EAAeg4rB,GAAU5/qB,EAAM67F,EAAOz0G,EAAUzK,EAAQw6B,GAUnF,SAAS2pI,GAAS7iK,EAAOkP,EAAMrF,EAAQqvB,GAC7C,OAAOm7C,GAAKr0E,EAAOkP,EAAMrF,EAAQ63rB,GAASn6rB,GDtInC0hJ,ICsIiDl6I,GAAO/O,EAAO,GAAI,GAAI,EAAGk5B,GAW3E,SAAS0pqB,GAAa5isB,EAAOkP,EAAMrF,EAAQnL,EAAQw6B,GACzD,OAAOm7C,GAAKr0E,EAAOkP,EAAMrF,EAAQ+3rB,GAAa7yrB,GAAO/O,EAAO,EAAGtB,GAASqQ,GAAO/O,EAAOtB,EAAS,GAAI,GAAIA,EAAQw6B,GC5KhH,ICJI8pqB,GAbOC,GAAiB,8BAMjBC,GAAiB,gBAQ5B,IAAIC,IAAc,EA2CX,SAASC,GAAU13rB,GAExB,OAnCK,WACL,IAAKs3rB,KACHA,GAAe,GACXhI,MAAa,CACf,IAAIz5pB,EAAM3gC,SAAS4gC,cAAc,OACjCD,EAAI90B,UAAYw2rB,GAChB1hqB,EAAIllB,MAAMkI,SAAW,QACrBgd,EAAIllB,MAAMs3C,WAAa,SACvBpyB,EAAIllB,MAAMnF,IAAM,UAChBtW,SAAS+lC,KAAKivC,YAAYr0C,GAC1B,IAAIriB,EAAUyhH,iBAAiBp/F,GAAKriB,SAAW,IAC/CA,EAAUA,EAAQ4nC,QAAQ,KAAM,IAAIA,QAAQ,KAAM,KAG1Cj7C,MAAM,KAAKxN,SAAQ,SAAUC,GACnC,IAAI+ksB,EAAc/ksB,EAAKuN,MAAM,KAC3By3rB,GAAe70F,EAAAA,EAAAA,GAAe40F,EAAa,GAC3C33rB,EAAO43rB,EAAa,GACpB77mB,EAAO67mB,EAAa,GACtBN,GAAat3rB,GAAQ+7E,KAIvB,IAEM87mB,EAFFC,EAAiB5isB,SAASo3E,cAAc,SAASh+C,OAAOipqB,GAAgB,MACxEO,IAEFL,IAAc,EAC0C,QAAvDI,EAAwBC,EAAeh7qB,kBAAkD,IAA1B+6qB,GAA4CA,EAAsBh4oB,YAAYi4oB,IAEhJ5isB,SAAS+lC,KAAK4kB,YAAYhqB,IAK9BkiqB,KACST,GAAat3rB,GC5CxB,IAAIg4rB,GAAe1I,KAEf2I,GAAc,gBAKX,SAASC,GAAejF,GAE7B,OADiB9hqB,GAAU6iP,GAAQi/a,GAAWhlrB,IAC5BmtC,QAAQ,iBAAkB,KAE9C,SAAS+8oB,GAAsB7jsB,GAC7B,MAA0B,YAAnBsomB,EAAAA,GAAAA,GAAQtomB,IAAuBA,IAXvB,iBAW+CA,GAAS2jsB,MAAe3jsB,GAIxF,SAAS8jsB,GAAmB1+rB,EAAK4nI,EAAQ8tjB,GACvC,IAAK9tjB,EACH,OAAO5nI,EAET,IAAI2+rB,EAAgB,IAAI/pqB,OAAOgzG,GAC3Bg3jB,EAAgC,QAAjBlJ,EAAyB,UAAU9gqB,OAAO+pqB,EAAe,KAAOA,EAanF,OAVW3+rB,EAAIyG,MAAM,KAAKvH,KAAI,SAAUyxD,GACtC,IAAIkuoB,EACA11rB,EAAWwnD,EAAE/2B,OAAOnzB,MAAM,OAG1Bq4rB,EAAY31rB,EAAS,IAAM,GAC3BlK,GAAgE,QAAhD4/rB,EAAmBC,EAAUnkrB,MAAM,eAA0C,IAArBkkrB,OAA8B,EAASA,EAAiB,KAAO,GAE3I,MAAO,CADPC,EAAY,GAAGlqqB,OAAO31B,GAAa21B,OAAOgqqB,GAAchqqB,OAAOkqqB,EAAUrgsB,MAAMQ,EAAY3F,UACxEs7B,QAAOi1kB,EAAAA,EAAAA,GAAmB1gmB,EAAS1K,MAAM,KAAKwL,KAAK,QAE5DA,KAAK,KAGZ,IAAI80rB,GAAa,SAASA,EAAWC,GAC1C,IAAI12nB,EAASvnE,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7Ei/O,EAAOj/O,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,CAC3E+I,MAAM,EACNm1rB,gBAAiB,IAEnBn1rB,EAAOk2O,EAAKl2O,KACZo1rB,EAAal/c,EAAKk/c,WAClBD,EAAkBj/c,EAAKi/c,gBACrBr3jB,EAASt/D,EAAOs/D,OAClB27Y,EAAQj7c,EAAOi7c,MAEfmyK,GADOptnB,EAAOhiE,KACCgiE,EAAOotnB,cACtByJ,EAAuB72nB,EAAO82nB,aAC9BA,OAAwC,IAAzBD,EAAkC,GAAKA,EAGpD5F,GAFgBjxnB,EAAO+2nB,QAEZ,IACXC,EAAc,GAClB,SAASC,EAAeC,GACtB,IAAI3jkB,EAAgB2jkB,EAAUtwb,QAAQtnI,GACtC,IAAK03jB,EAAYzjkB,GAAgB,CAC/B,IAAI4jkB,EAAcV,EAAWS,EAAUvorB,MAAOqxD,EAAQ,CAClDx+D,MAAM,EACNm1rB,gBAAiBA,IAGnBS,GADer2F,EAAAA,EAAAA,GAAeo2F,EAAa,GACjB,GAC5BH,EAAYzjkB,GAAiB,cAAcjnG,OAAO4qqB,EAAUtwb,QAAQtnI,IAAShzG,OAAO8qqB,IAGxF,SAASC,EAAYzloB,GACnB,IAAI0loB,EAAW7+rB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAQnF,OAPAm5D,EAAKjhE,SAAQ,SAAUC,GACjBqF,MAAMi2E,QAAQt7E,GAChBymsB,EAAYzmsB,EAAM0msB,GACT1msB,GACT0msB,EAAShmsB,KAAKV,MAGX0msB,EAET,IAAIC,EAAmBF,EAAYphsB,MAAMi2E,QAAQwqnB,GAAiBA,EAAgB,CAACA,IAiGnF,GAhGAa,EAAiB5msB,SAAQ,SAAU6msB,GAEjC,IAAI7orB,EAA+B,kBAAhB6orB,GAA6Bh2rB,EAAYg2rB,EAAL,GACvD,GAAqB,kBAAV7orB,EACTsirB,GAAY,GAAG3kqB,OAAO3d,EAAO,WACxB,GAAIA,EAAM8orB,UAEfR,EAAetorB,OACV,CACL,IAAI+orB,EAAcZ,EAAa18rB,QAAO,SAAU+8B,EAAMwgqB,GACpD,IAAIC,EACJ,OAAkB,OAAVD,QAA4B,IAAVA,GAA6D,QAAhCC,EAAeD,EAAMz/F,aAAoC,IAAjB0/F,OAAlD,EAAqFA,EAAazmsB,KAAKwmsB,EAAOxgqB,KAAUA,IACpKxoB,GAGHnX,OAAOC,KAAKigsB,GAAa/msB,SAAQ,SAAU+G,GACzC,IAAIpF,EAAQolsB,EAAYhgsB,GACxB,GAAuB,YAAnBkjmB,EAAAA,GAAAA,GAAQtomB,KAAuBA,GAAkB,kBAARoF,GAA4BpF,EAAMmlsB,WAAetB,GAAsB7jsB,GAoC7G,KACD2iB,EACK4irB,EAAT,SAAqBC,EAAQC,GAY3B,IAAIp8nB,EAAYm8nB,EAAO1+oB,QAAQ,UAAU,SAAU/mC,GACjD,MAAO,IAAIia,OAAOja,EAAMshB,kBAItBixR,EAAcmzY,EACbC,GAASF,IAAkC,kBAAhBlzY,GAA4C,IAAhBA,IAC1DA,EAAc,GAAGt4R,OAAOs4R,EAAa,OAIxB,kBAAXkzY,GAA2C,OAAbC,QAAkC,IAAbA,GAAuBA,EAASN,YACrFR,EAAec,GACfnzY,EAAcmzY,EAASnxb,QAAQtnI,IAEjC2xjB,GAAY,GAAG3kqB,OAAOqvC,EAAW,KAAKrvC,OAAOs4R,EAAa,MAExDqzY,EAAuF,QAAxEhjrB,EAAmB,OAAV3iB,QAA4B,IAAVA,OAAmB,EAASA,EAAMA,aAA8B,IAAX2iB,EAAoBA,EAAS3iB,EACzG,YAAnBsomB,EAAAA,GAAAA,GAAQtomB,IAAiC,OAAVA,QAA4B,IAAVA,GAAoBA,EAAM2jsB,KAAgBhgsB,MAAMi2E,QAAQ+rnB,GAC3GA,EAAYtnsB,SAAQ,SAAUC,GAC5BinsB,EAAYngsB,EAAK9G,MAGnBinsB,EAAYngsB,EAAKugsB,OAzEuG,CAC1H,IAAIC,GAAgB,EAGhBC,EAAYzgsB,EAAI45B,OAEhB8mqB,GAAW,GAGV52rB,GAAQo1rB,IAAet3jB,EACtB64jB,EAAU/rkB,WAAW,KAEvB8rkB,GAAgB,EAGhBC,EAAY/B,GAAmB1+rB,EAAK4nI,EAAQ8tjB,IAErC5rrB,GAAS89H,GAAyB,MAAd64jB,GAAmC,KAAdA,IAMlDA,EAAY,GACZC,GAAW,GAEb,IAAIC,EAAe5B,EAAWnksB,EAAO0tE,EAAQ,CACzCx+D,KAAM42rB,EACNxB,WAAYsB,EACZvB,gBAAiB,GAAGrqqB,QAAOi1kB,EAAAA,EAAAA,GAAmBo1F,GAAkB,CAACwB,MAEnEG,GAAev3F,EAAAA,EAAAA,GAAes3F,EAAc,GAC5CE,EAAcD,EAAa,GAC3BE,EAAmBF,EAAa,GAClCtB,EAAcxL,EAAcA,EAAc,GAAIwL,GAAcwB,GAC5DvH,GAAY,GAAG3kqB,OAAO6rqB,GAAW7rqB,OAAOisqB,WA4C3C/2rB,GAEE,GAAIy5gB,GAASs2K,KAAgB,CAClC,IAAIkH,EAAax9K,EAAM98gB,MAAM,KACzBu6rB,EAAYD,EAAWA,EAAWznsB,OAAS,GAAGsgC,OAClD2/pB,EAAW,UAAU3kqB,OAAOosqB,EAAW,MAAMpsqB,OAAO2kqB,EAAU,KAG1DwH,EAAWznsB,OAAS,IAEtBigsB,EAAW,UAAU3kqB,OAAO2uf,EAAO,WAAW3uf,OAAO2kqB,UATvDA,EAAW,IAAI3kqB,OAAO2kqB,EAAU,KAYlC,MAAO,CAACA,EAAU+F,IASpB,SAAS2B,KACP,OAAO,KAMM,SAASC,GAAiBt5qB,EAAMu5qB,GAC7C,IAAI9hnB,EAAQz3D,EAAKy3D,MACf/4E,EAAOshB,EAAKthB,KACZshI,EAAShgH,EAAKggH,OACd27Y,EAAQ37f,EAAK27f,MACb0Z,EAAQr1gB,EAAKq1gB,MACbmkK,EAAax5qB,EAAKw5qB,WAClBC,EAAcz5qB,EAAK+re,MACnBA,OAAwB,IAAhB0tM,EAAyB,EAAIA,EACnCC,EAAoB3lG,GAAAA,WAAiB85F,IACvC8L,EAAYD,EAAkBC,UAE9B5L,GADO2L,EAAkBE,KACVF,EAAkB3L,cACjCD,EAAe4L,EAAkB5L,aACjC58qB,EAAYworB,EAAkBxorB,UAC9B2orB,EAAYH,EAAkBG,UAC9BrC,EAAekC,EAAkBlC,aACjCC,EAAUiC,EAAkBjC,QAC5B1mpB,EAAQ2opB,EAAkB3opB,MACxB4ipB,EAAWl8mB,EAAMqinB,UACjBv4rB,EAAW,CAACoyrB,GAAU3mqB,QAAOi1kB,EAAAA,EAAAA,GAAmBvjmB,IAGhDq7rB,EAAqBrD,GAIzB,IAAIsD,EAAkBtH,GAAe,QAASnxrB,GAE5C,WACE,IAAI04rB,EAAY14rB,EAASc,KAAK,KAG9B,GAAI+zrB,GAAU6D,GAAY,CACxB,IAAIC,EDjML,SAAyBx7rB,GAC9B,IAAI+7E,EAAOu7mB,GAAat3rB,GACpBizrB,EAAW,KACf,GAAIl3mB,GAAQuzmB,KACV,GAAImI,GACFxE,EAAWuE,OACN,CACL,IAAIiE,EAASvmsB,SAASo3E,cAAc,SAASh+C,OAAOugqB,GAAW,MAAOvgqB,OAAOgpqB,GAAat3rB,GAAO,OAC7Fy7rB,EACFxI,EAAWwI,EAAOxooB,iBAGXqkoB,GAAat3rB,GAI1B,MAAO,CAACizrB,EAAUl3mB,GCiLW2/mB,CAAgBH,GACrCI,GAAoB54F,EAAAA,EAAAA,GAAey4F,EAAkB,GACrDI,EAAsBD,EAAkB,GACxC3M,EAAY2M,EAAkB,GAChC,GAAIC,EACF,MAAO,CAACA,EAAqB3G,EAAUjG,EAAW,GAAI8L,EAAYztM,GAKtE,IAAIwuM,EAAWhB,IACXiB,EAAerD,GAAWoD,EAAU,CACpCv6jB,OAAQA,EACR8tjB,aAAcA,EACdnyK,MAAOA,EACPj9gB,KAAMA,EAAK2D,KAAK,KAChBm1rB,aAAcA,EACdC,QAASA,IAEXgD,GAAeh5F,EAAAA,EAAAA,GAAe+4F,EAAc,GAC5CE,EAAcD,EAAa,GAC3B/C,EAAc+C,EAAa,GACzB9I,EAAWiF,GAAe8D,GAC1BC,EAnEV,SAAoBj8rB,EAAMizrB,GACxB,OAAOl3mB,GAAK,GAAGztD,OAAOtuB,EAAK2D,KAAK,MAAM2qB,OAAO2kqB,IAkE3BiJ,CAAWr5rB,EAAUowrB,GACnC,MAAO,CAACA,EAAUgC,EAAUgH,EAASjD,EAAa8B,EAAYztM,MAGhE,SAAUxyQ,EAAOshd,GACf,IACEF,GADUl5F,EAAAA,EAAAA,GAAeloX,EAAO,GAChB,IACbshd,GAAWlB,IAAcjD,IAC5BxH,GAAUyL,EAAS,CACjBxrgB,KAAMo+f,QAKZ,SAAUxjZ,GACR,IAAIC,GAAQy3T,EAAAA,EAAAA,GAAe13T,EAAO,GAChC4nZ,EAAW3nZ,EAAM,GAEjB2wZ,GADI3wZ,EAAM,GACAA,EAAM,IAChB0tZ,EAAc1tZ,EAAM,GACtB,GAAI+vZ,GAAsBpI,IAAauE,GAAgB,CACrD,IAAI4E,EAAkB,CACpB3rgB,KAAMo+f,GACNvmc,QAAS,QACTsnc,SAAUp9qB,EACV09H,SAAUm9W,GAERgvM,EAA4B,oBAAV1lK,EAAuBA,IAAUA,EACnD0lK,IACFD,EAAgBpM,IAAM,CACpBr5J,MAAO0lK,IAGX,IAAIZ,EAAS5K,GAAUoC,EAAUgJ,EAASG,GAC1CX,EAAO3M,IAAsBz8oB,EAAMq8oB,WAGnC+M,EAAOjosB,aAAao7rB,GAAYqG,GAQhCz7rB,OAAOC,KAAKu/rB,GAAarmsB,SAAQ,SAAU2psB,GACzCzL,GAAUqH,GAAec,EAAYsD,IAAa,WAAWhuqB,OAAOguqB,GAAYF,UAItFG,GAAmBx5F,EAAAA,EAAAA,GAAeu4F,EAAiB,GACnDkB,EAAiBD,EAAiB,GAClCE,EAAiBF,EAAiB,GAClCG,EAAgBH,EAAiB,GACnC,OAAO,SAAU5znB,GACf,IAAIynnB,EAIE3kZ,EAHD0vZ,IAAaE,GAAuBhM,EAIvCe,EAAyB/6F,GAAAA,cAAoB,SAAS1qY,EAAAA,GAAAA,GAAS,IAAK8gF,EAAQ,IAAIl/N,EAAAA,EAAAA,GAAgBk/N,EAAOmjZ,GAAY6N,IAAiBlwnB,EAAAA,EAAAA,GAAgBk/N,EAAOojZ,GAAW6N,GAAgBjxZ,GAAQ,CAC5Ll3L,wBAAyB,CACvBC,OAAQgolB,MALZpM,EAAyB/6F,GAAAA,cAAoBslG,GAAO,MAStD,OAAoBtlG,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM+6F,EAAWznnB,ICvV7E,IAAIg0nB,GAAwB,WAC1B,SAASA,EAASz8rB,EAAMyQ,IACtBmwlB,EAAAA,EAAAA,GAAgBpumB,KAAMiqsB,IACtBpwnB,EAAAA,EAAAA,GAAgB75E,KAAM,YAAQ,IAC9B65E,EAAAA,EAAAA,GAAgB75E,KAAM,aAAS,IAC/B65E,EAAAA,EAAAA,GAAgB75E,KAAM,aAAa,GACnCA,KAAKwN,KAAOA,EACZxN,KAAKie,MAAQA,EASf,OAPAwwlB,EAAAA,EAAAA,GAAaw7F,EAAU,CAAC,CACtBjjsB,IAAK,UACLpF,MAAO,WACL,IAAIgtI,EAAS7mI,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAO6mI,EAAS,GAAGhzG,OAAOgzG,EAAQ,KAAKhzG,OAAO57B,KAAKwN,MAAQxN,KAAKwN,SAG7Dy8rB,EAhBmB,GAkB5B,MCUA,SAASC,GAAQhpoB,GAEf,OADAA,EAAKipoB,UAAW,EACTjpoB,EA0BMgpoB,GAAQ,CAAC,YAAa,iBACjBA,GAAQ,CAAC,cACXA,GAAQ,CAAC,iBACXA,GAAQ,CAAC,aAAc,gBAClBA,GAAQ,CAAC,eACXA,GAAQ,CAAC,gBCpD5B,ICVA,IAD+BlplB,EAAAA,GAAAA,eAAc,oDCD9B,SAASnhG,GAAIyrD,EAAQh+D,GAElC,IADA,IAAIgxO,EAAUhzK,EACLv/D,EAAI,EAAGA,EAAIuB,EAAKhN,OAAQyL,GAAK,EAAG,CACvC,GAAgB,OAAZuyO,QAAgClmO,IAAZkmO,EACtB,OAEFA,EAAUA,EAAQhxO,EAAKvB,IAEzB,OAAOuyO,ECHT,SAAS8rd,GAAY9+nB,EAAQ8miB,EAAOxwmB,EAAOyosB,GACzC,IAAKj4F,EAAM9xmB,OACT,OAAOsB,EAET,ICL+BizH,EDQ3Bv5C,EAHAgvnB,GCL2Bz1kB,EDKTu9e,GCJf,EAAA9B,GAAA,GAAez7e,KAAQ,EAAAk8e,GAAA,GAAgBl8e,KAAQ,EAAA87e,GAAA,GAA2B97e,KAAQ,EAAA+7e,GAAA,MDKvFtjmB,EAAOg9rB,EAAO,GACdC,EAAWD,EAAO7ksB,MAAM,GAgB1B,OAXE61E,EAHGhQ,GAA0B,kBAATh+D,EAEX/H,MAAMi2E,QAAQlQ,IACfuliB,EAAAA,EAAAA,GAAmBvliB,GAEnBwvnB,EAAc,GAAIxvnB,GAJlB,GAQN++nB,QAA+BjyrB,IAAVxW,GAA2C,IAApB2osB,EAASjqsB,cAChDg7E,EAAMhuE,GAAMi9rB,EAAS,IAE5BjvnB,EAAMhuE,GAAQ88rB,GAAY9unB,EAAMhuE,GAAOi9rB,EAAU3osB,EAAOyosB,GAEnD/unB,EAEM,SAAStW,GAAIsG,EAAQ8miB,EAAOxwmB,GACzC,IAAIyosB,EAAoBtisB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAEvF,OAAIqqmB,EAAM9xmB,QAAU+psB,QAA+BjyrB,IAAVxW,IAAwBie,GAAIyrD,EAAQ8miB,EAAM3smB,MAAM,GAAI,IACpF6lE,EAEF8+nB,GAAY9+nB,EAAQ8miB,EAAOxwmB,EAAOyosB,GAE3C,SAASlgf,GAASz8I,GAChB,MAAwB,YAAjBw8hB,EAAAA,GAAAA,GAAQx8hB,IAA6B,OAARA,GAAgB5mE,OAAO60E,eAAejO,KAAS5mE,OAAOtB,UAE5F,SAASglsB,GAAY78kB,GACnB,OAAOpoH,MAAMi2E,QAAQmyC,GAAU,GAAK,GAEtC,IAAI5mH,GAA0B,qBAAZ8kkB,QAA0B/kkB,OAAOC,KAAO8kkB,QAAQinC,QAK3D,SAAS71c,KACd,IAAK,IAAI86E,EAAOhwO,UAAUzH,OAAQkhiB,EAAU,IAAIj8hB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFwpT,EAAQxpT,GAAQjwO,UAAUiwO,GAE5B,IAAI18J,EAAQkvnB,GAAYhpK,EAAQ,IA4BhC,OA3BAA,EAAQvhiB,SAAQ,SAAU2hE,IACxB,SAAS6ooB,EAAcn9rB,EAAMo9rB,GAC3B,IAAIC,EAAU,IAAIhmlB,IAAI+llB,GAClB9osB,EAAQie,GAAI+hD,EAAKt0D,GACjB0yjB,EAAQz6jB,MAAMi2E,QAAQ55E,GAC1B,GAAIo+jB,GAAS71W,GAASvoN,IAEpB,IAAK+osB,EAAQ9wqB,IAAIj4B,GAAQ,CACvB+osB,EAAQrpsB,IAAIM,GACZ,IAAIgpsB,EAAc/qrB,GAAIy7D,EAAOhuE,GACzB0yjB,EAEF1kf,EAAQtW,GAAIsW,EAAOhuE,EAAM,IACfs9rB,GAAwC,YAAzB1gG,EAAAA,GAAAA,GAAQ0gG,KAEjCtvnB,EAAQtW,GAAIsW,EAAOhuE,EAAMk9rB,GAAY5osB,KAEvCmF,GAAKnF,GAAO3B,SAAQ,SAAU+G,GAC5ByjsB,EAAc,GAAG7uqB,QAAOi1kB,EAAAA,EAAAA,GAAmBvjmB,GAAO,CAACtG,IAAO2jsB,YAI9DrvnB,EAAQtW,GAAIsW,EAAOhuE,EAAM1L,GAG7B6osB,CAAc,OAETnvnB,EE5ET,QAA4B0lC,EAAAA,GAAAA,oBAAc5oG,GCyB1C,GA7Ba,CACXrL,OAAQ,QACR+4U,MAAO,QACPlzO,IAAK,MACLi4lB,YAAa,gBACbxrpB,GAAI,KACJ4+D,MAAO,QACP2mJ,MAAO,QACPE,KAAM,OACNgmc,WAAY,cACZC,WAAY,cACZC,WAAY,gBACZC,YAAa,iBACbC,WAAY,gBACZC,aAAc,kBACdC,WAAY,OACZzhC,WAAY,WACZ0hC,UAAW,IACXC,eAAgB,oBAChBC,iBAAiB,EACjBC,cAAe,0BACfC,UAAW,wBACXC,aAAc,6BACdC,SAAU,8BACVC,eAAgB,cAChBC,WAAY,cACZC,gBAAiB,eACjBC,YAAa,gBCvBf,GAJe,CACbnzqB,YAAa,cACbozqB,iBAAkB,CAAC,aAAc,aCC7Bj/rB,GAAS,CACb85H,KAAM//H,OAAOw4C,OAAO,CAClB1mB,YAAa,cACbqzqB,gBAAiB,cACjBC,mBAAoB,iBACpBC,iBAAkB,eAClBC,gBAAiB,cACjBJ,iBAAkB,CAAC,aAAc,YACjCK,qBAAsB,CAAC,aAAc,YACrCC,wBAAyB,CAAC,gBAAiB,eAC3CC,sBAAuB,CAAC,cAAe,aACvCC,qBAAsB,CAAC,aAAc,aACpCC,IACHC,iBAAkB5lsB,OAAOw4C,OAAO,GAAIqtpB,KCXhCC,GAAe,kCA0IrB,GAzIqB,CACnB7/rB,OAAQ,KACR8/rB,WCRF,CAEEC,eAAgB,SAChBC,QAAS,QACTC,gBAAiB,UACjB38pB,KAAM,OAEN48pB,UAAW,gBACXC,UAAW,YACXC,OAAQ,mBACRC,OAAQ,eACRC,OAAQ,mBACRC,OAAQ,eACRC,UAAW,aDJXC,WDWF,GCVEC,WAAAA,GACA7jX,SDSF,GCREtvN,OAAQ,CACN1hG,YAAa,iBAEf80qB,MAAO,CACLC,YAAa,cACbC,cAAe,KACfC,YAAa,QACbC,gBAAiB,aACjBC,eAAgB,mBAChBC,wBAAyB,oBACzBC,UAAW,UACX14jB,UAAW,sBACX24jB,aAAc,sBACdC,WAAY,iBACZC,aAAc,kBACdC,UAAW,OACX12gB,OAAQ,aACRthF,SAAU,eACVi4lB,YAAa,2BACbC,WAAY,0BACZC,WAAY,2BAEdC,KAAM,CACJC,KAAM,OACNC,SAAU,WACVC,OAAQ,UAEVC,MAAO,CACLC,OAAQ,KACRjzT,WAAY,SACZkzT,WAAY,MAEdC,WAAY,CACVF,OAAQ,KACRjzT,WAAY,UAEdozT,SAAU,CACRC,OAAQ,CAAC,GAAI,IACbjkrB,kBAAmB,cACnBkkrB,SAAU,OACVC,UAAW,QACX5tsB,OAAQ,SACR6tsB,cAAe,sBACfC,cAAe,sBACf/5jB,UAAW,kBACXm4B,UAAW,kBACXwgiB,aAAc,uBAEhBqB,OAAQ,CACNC,UAAW,eACXC,WAAY,cACZC,YAAa,eACbC,YAAa,eACbC,aAAc,iBAEhB3H,MAAO,CACLt8mB,YAAa,WAEfqvP,KAAM,CACJr7T,KAAM,QAERskL,KAAM,CACJme,KAAM,OACN/wJ,KAAM,OACN8/E,OAAQ,SACRwmD,OAAQ,UAEVk4gB,WAAY,CACVC,KAAM,QAERC,KAAM,CACJ//B,SAAU,aACVggC,wBAAyB,CACvBzgmB,QAAS,sCACTsqY,SAAU,wBACVo2N,KAAM,oCACN7qK,WAAY,uCACZlhgB,KAAM,CACJpL,OAAQ,kCACRu9D,MAAO,yCACP8+O,QAAS,+BAEXx/S,MAAO,CACL04E,OAAQu+lB,GACR5jsB,OAAQ4jsB,GACRv0pB,MAAOu0pB,GACPxprB,OAAQwprB,GACRnznB,OAAQmznB,GACR1oqB,KAAM0oqB,GACNzlf,QAASylf,GACTt+lB,QAASs+lB,GACTr+lB,MAAOq+lB,GACP/0Y,OAAQ+0Y,GACRxxN,MAAOwxN,GACPhupB,IAAKgupB,GACLl2d,IAAKk2d,IAEPv+lB,OAAQ,CACN72D,IAAK,qCACL1xB,IAAK,8CACLF,IAAK,2CACLomE,MAAO,qDAETvS,OAAQ,CACNjiC,IAAK,mCACL1xB,IAAK,kCACLF,IAAK,kCACLomE,MAAO,0CAET3zC,MAAO,CACLb,IAAK,0BACL1xB,IAAK,2BACLF,IAAK,0BACLomE,MAAO,wDAETgpB,QAAS,CACP8rJ,SAAU,oDAIhBovc,MAAO,CACLC,QAAS,WAEXC,OAAQ,CACNC,QAAS,kBACTt9a,QAAS,WAEXu9a,YAAa,CACXC,YAAa,UE1IbC,IADgB1psB,OAAOw4C,OAAO,GAAIo4E,GAAAA,OACrB,IACX+4kB,GAAiB,kBAAMD,GAAW9msB,QAAO,SAACgnsB,EAAQ3jsB,GAAT,OAAoBjG,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIoxpB,GAAS3jsB,KAAS2qH,GAAAA,QCFrH,IACA,IADmC1W,EAAAA,GAAAA,oBAAc5oG,GC8BjD,OAvBuB,SAAAonG,GACrB,MAIIA,EAHFzyG,OAAAA,OADF,MACW,GADX,EAEEhC,EAEEy0G,EAFFz0G,SAEEy0G,EADFmxlB,YAKFhuG,GAAAA,WAAgB,WACd,IAAMiuG,EFdH,SAA6BC,GAClC,GAAIA,EAAW,CACb,IAAMC,EAAchqsB,OAAOw4C,OAAO,GAAIuxpB,GAGtC,OAFAL,GAAW5vsB,KAAKkwsB,GACAL,KACT,WACLD,GAAaA,GAAW5qsB,QAAO,SAAAmH,GAAM,OAAIA,IAAW+jsB,KACpCL,MAGJ3psB,OAAOw4C,OAAO,GAAIo4E,GAAAA,OEIZq5kB,CAAoBhksB,GAAUA,EAAO8hsB,OACzD,OAAO+B,IACN,CAAC7jsB,IACJ,IAAMiksB,EAA0BruG,GAAAA,SAAc,kBAAM77lB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIvyC,GAAS,CAC3FkksB,OAAO,MACL,CAAClksB,IACL,OAAoB41lB,GAAAA,cAAoBuuG,GAAAA,SAAwB,CAC9DtvsB,MAAOovsB,GACNjmsB,ICtBE,SAASomsB,GAAQz5oB,EAAG9xC,IAwCpB,SAAwB8xC,GAC3B,MAAoB,kBAANA,IAAsC,IAApBA,EAAEvxD,QAAQ,MAAiC,IAAlBwvC,WAAW+hB,IAxChE05oB,CAAe15oB,KACfA,EAAI,QAER,IAAIikQ,EA2CD,SAAsBjkQ,GACzB,MAAoB,kBAANA,IAAsC,IAApBA,EAAEvxD,QAAQ,KA5C1BkrsB,CAAa35oB,GAO7B,OANAA,EAAY,MAAR9xC,EAAc8xC,EAAI/xC,KAAKG,IAAIF,EAAKD,KAAKC,IAAI,EAAG+vB,WAAW+hB,KAEvDikQ,IACAjkQ,EAAIzhB,SAAS4vB,OAAOnO,EAAI9xC,GAAM,IAAM,KAGpCD,KAAK23B,IAAIoa,EAAI9xC,GAAO,KACb,EAOP8xC,EAJQ,MAAR9xC,GAIK8xC,EAAI,EAAKA,EAAI9xC,EAAOA,EAAM8xC,EAAI9xC,GAAO+vB,WAAWkwB,OAAOjgD,IAKvD8xC,EAAI9xC,EAAO+vB,WAAWkwB,OAAOjgD,IAQnC,SAAS0rrB,GAAQvtrB,GACpB,OAAO4B,KAAKG,IAAI,EAAGH,KAAKC,IAAI,EAAG7B,IAqB5B,SAASwtrB,GAAW9rpB,GAKvB,OAJAA,EAAI9P,WAAW8P,IACXjc,MAAMic,IAAMA,EAAI,GAAKA,EAAI,KACzBA,EAAI,GAEDA,EAMJ,SAAS+rpB,GAAoB95oB,GAChC,OAAIA,GAAK,EACE,GAAG97B,OAAmB,IAAZ6zB,OAAOiI,GAAU,KAE/BA,EAMJ,SAAS+5oB,GAAKj2rB,GACjB,OAAoB,IAAbA,EAAElb,OAAe,IAAMkb,EAAIqqD,OAAOrqD,GC3DtC,SAASk2rB,GAASnroB,EAAGC,EAAG9gB,GAC3B6gB,EAAI4qoB,GAAQ5qoB,EAAG,KACfC,EAAI2qoB,GAAQ3qoB,EAAG,KACf9gB,EAAIyrpB,GAAQzrpB,EAAG,KACf,IAAI9/B,EAAMD,KAAKC,IAAI2gD,EAAGC,EAAG9gB,GACrB5/B,EAAMH,KAAKG,IAAIygD,EAAGC,EAAG9gB,GACrB8jG,EAAI,EACJ38H,EAAI,EACJqjE,GAAKtqE,EAAME,GAAO,EACtB,GAAIF,IAAQE,EACR+G,EAAI,EACJ28H,EAAI,MAEH,CACD,IAAI1sC,EAAIl3F,EAAME,EAEd,OADA+G,EAAIqjE,EAAI,GAAM4sB,GAAK,EAAIl3F,EAAME,GAAOg3F,GAAKl3F,EAAME,GACvCF,GACJ,KAAK2gD,EACDijF,GAAKhjF,EAAI9gB,GAAKo3D,GAAKt2C,EAAI9gB,EAAI,EAAI,GAC/B,MACJ,KAAK8gB,EACDgjF,GAAK9jG,EAAI6gB,GAAKu2C,EAAI,EAClB,MACJ,KAAKp3D,EACD8jG,GAAKjjF,EAAIC,GAAKs2C,EAAI,EAK1B0sC,GAAK,EAET,MAAO,CAAEA,EAAGA,EAAG38H,EAAGA,EAAGqjE,EAAGA,GAE5B,SAASyhnB,GAAQv6mB,EAAG8iH,EAAGhkJ,GAOnB,OANIA,EAAI,IACJA,GAAK,GAELA,EAAI,IACJA,GAAK,GAELA,EAAI,EAAI,EACDkhC,EAAe,EAAIlhC,GAAdgkJ,EAAI9iH,GAEhBlhC,EAAI,GACGgkJ,EAEPhkJ,EAAI,EAAI,EACDkhC,GAAK8iH,EAAI9iH,IAAM,EAAI,EAAIlhC,GAAK,EAEhCkhC,EAoCJ,SAASw6mB,GAASrroB,EAAGC,EAAG9gB,GAC3B6gB,EAAI4qoB,GAAQ5qoB,EAAG,KACfC,EAAI2qoB,GAAQ3qoB,EAAG,KACf9gB,EAAIyrpB,GAAQzrpB,EAAG,KACf,IAAI9/B,EAAMD,KAAKC,IAAI2gD,EAAGC,EAAG9gB,GACrB5/B,EAAMH,KAAKG,IAAIygD,EAAGC,EAAG9gB,GACrB8jG,EAAI,EACJ3iG,EAAIjhC,EACJk3F,EAAIl3F,EAAME,EACV+G,EAAY,IAARjH,EAAY,EAAIk3F,EAAIl3F,EAC5B,GAAIA,IAAQE,EACR0jI,EAAI,MAEH,CACD,OAAQ5jI,GACJ,KAAK2gD,EACDijF,GAAKhjF,EAAI9gB,GAAKo3D,GAAKt2C,EAAI9gB,EAAI,EAAI,GAC/B,MACJ,KAAK8gB,EACDgjF,GAAK9jG,EAAI6gB,GAAKu2C,EAAI,EAClB,MACJ,KAAKp3D,EACD8jG,GAAKjjF,EAAIC,GAAKs2C,EAAI,EAK1B0sC,GAAK,EAET,MAAO,CAAEA,EAAGA,EAAG38H,EAAGA,EAAGg6B,EAAGA,GA6BrB,SAASgrpB,GAAStroB,EAAGC,EAAG9gB,EAAGospB,GAC9B,IAAIp7d,EAAM,CACN+6d,GAAK9rrB,KAAK6H,MAAM+4C,GAAG93D,SAAS,KAC5BgjsB,GAAK9rrB,KAAK6H,MAAMg5C,GAAG/3D,SAAS,KAC5BgjsB,GAAK9rrB,KAAK6H,MAAMk4B,GAAGj3C,SAAS,MAGhC,OAAIqjsB,GACAp7d,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,KAChCwxJ,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,KAChCwxJ,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,IACzBwxJ,EAAI,GAAGxxJ,OAAO,GAAKwxJ,EAAI,GAAGxxJ,OAAO,GAAKwxJ,EAAI,GAAGxxJ,OAAO,GAExDwxJ,EAAIzlO,KAAK,IAwCb,SAAS8gsB,GAAoBj1lB,GAChC,OAAOn3F,KAAK6H,MAAsB,IAAhBmoB,WAAWmnE,IAAUruG,SAAS,IAG7C,SAASujsB,GAAoBxojB,GAChC,OAAOyojB,GAAgBzojB,GAAK,IAGzB,SAASyojB,GAAgBlurB,GAC5B,OAAOkyB,SAASlyB,EAAK,IC9NlB,IAAI6zB,GAAQ,CACfgzL,UAAW,UACXC,aAAc,UACdC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,MAAO,UACPC,eAAgB,UAChBC,KAAM,UACNC,WAAY,UACZC,MAAO,UACPC,UAAW,UACXC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,MAAO,UACPC,eAAgB,UAChBC,SAAU,UACVC,QAAS,UACTC,KAAM,UACNC,SAAU,UACVC,SAAU,UACVC,cAAe,UACfC,SAAU,UACVC,UAAW,UACXC,SAAU,UACVC,UAAW,UACXC,YAAa,UACbC,eAAgB,UAChBC,WAAY,UACZC,WAAY,UACZC,QAAS,UACTC,WAAY,UACZC,aAAc,UACdC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,SAAU,UACVC,YAAa,UACbC,QAAS,UACTC,QAAS,UACTC,WAAY,UACZE,UAAW,UACXC,YAAa,UACbC,YAAa,UACbC,QAAS,UACTC,UAAW,UACXC,WAAY,UACZE,UAAW,UACXD,KAAM,UACNE,KAAM,UACNC,MAAO,UACPC,YAAa,UACbC,KAAM,UACNC,SAAU,UACVC,QAAS,UACTC,UAAW,UACXC,OAAQ,UACRC,MAAO,UACPC,MAAO,UACPE,cAAe,UACfD,SAAU,UACVE,UAAW,UACXC,aAAc,UACdC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,qBAAsB,UACtBC,UAAW,UACXC,WAAY,UACZC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,cAAe,UACfC,aAAc,UACdE,eAAgB,UAChBC,eAAgB,UAChBC,eAAgB,UAChBC,YAAa,UACbC,KAAM,UACNC,UAAW,UACXC,MAAO,UACPC,QAAS,UACTC,OAAQ,UACRC,iBAAkB,UAClBC,WAAY,UACZC,aAAc,UACdC,aAAc,UACdC,eAAgB,UAChBC,gBAAiB,UACjBC,kBAAmB,UACnBC,gBAAiB,UACjBC,gBAAiB,UACjBC,aAAc,UACdC,UAAW,UACXC,UAAW,UACXC,SAAU,UACVC,YAAa,UACbC,KAAM,UACNC,QAAS,UACTC,MAAO,UACPC,UAAW,UACXC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRC,cAAe,UACfC,UAAW,UACXC,cAAe,UACfC,cAAe,UACfC,WAAY,UACZC,UAAW,UACXC,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,WAAY,UACZC,OAAQ,UACRC,cAAe,UACfC,IAAK,UACLC,UAAW,UACXC,UAAW,UACXC,YAAa,UACbC,OAAQ,UACRC,WAAY,UACZC,SAAU,UACVC,SAAU,UACVC,OAAQ,UACRC,OAAQ,UACRC,QAAS,UACTC,UAAW,UACXC,UAAW,UACXC,UAAW,UACXC,KAAM,UACNC,YAAa,UACbC,UAAW,UACXC,IAAK,UACLC,KAAM,UACNC,QAAS,UACTC,OAAQ,UACRC,UAAW,UACXC,OAAQ,UACRE,MAAO,UACPC,MAAO,UACPC,WAAY,UACZC,OAAQ,UACRC,YAAa,WClIV,SAASg+d,GAAW94pB,GACvB,IFdqBmtB,EAAGC,EAAG9gB,EEcvB2uL,EAAM,CAAE9tK,EAAG,EAAGC,EAAG,EAAG9gB,EAAG,GACvBD,EAAI,EACJ54B,EAAI,KACJg6B,EAAI,KACJqpC,EAAI,KACJ7wC,GAAK,EACLvmB,GAAS,EA6Bb,MA5BqB,kBAAVsgB,IACPA,EAgED,SAA6BA,GAEhC,GAAqB,KADrBA,EAAQA,EAAMxY,OAAOqC,eACX3iC,OACN,OAAO,EAEX,IAAI6xsB,GAAQ,EACZ,GAAIv6pB,GAAMwB,GACNA,EAAQxB,GAAMwB,GACd+4pB,GAAQ,OAEP,GAAc,gBAAV/4pB,EACL,MAAO,CAAEmtB,EAAG,EAAGC,EAAG,EAAG9gB,EAAG,EAAGD,EAAG,EAAG3sB,OAAQ,QAM7C,IAAInX,EAAQmqhB,GAASz3T,IAAI9lO,KAAK6qC,GAC9B,GAAIz3B,EACA,MAAO,CAAE4kD,EAAG5kD,EAAM,GAAI6kD,EAAG7kD,EAAM,GAAI+jC,EAAG/jC,EAAM,IAGhD,GADAA,EAAQmqhB,GAASjzL,KAAKtqW,KAAK6qC,GAEvB,MAAO,CAAEmtB,EAAG5kD,EAAM,GAAI6kD,EAAG7kD,EAAM,GAAI+jC,EAAG/jC,EAAM,GAAI8jC,EAAG9jC,EAAM,IAG7D,GADAA,EAAQmqhB,GAAS12T,IAAI7mO,KAAK6qC,GAEtB,MAAO,CAAEowG,EAAG7nI,EAAM,GAAIkL,EAAGlL,EAAM,GAAIuuE,EAAGvuE,EAAM,IAGhD,GADAA,EAAQmqhB,GAASsmK,KAAK7jsB,KAAK6qC,GAEvB,MAAO,CAAEowG,EAAG7nI,EAAM,GAAIkL,EAAGlL,EAAM,GAAIuuE,EAAGvuE,EAAM,GAAI8jC,EAAG9jC,EAAM,IAG7D,GADAA,EAAQmqhB,GAAS/2T,IAAIxmO,KAAK6qC,GAEtB,MAAO,CAAEowG,EAAG7nI,EAAM,GAAIkL,EAAGlL,EAAM,GAAIklC,EAAGllC,EAAM,IAGhD,GADAA,EAAQmqhB,GAASumK,KAAK9jsB,KAAK6qC,GAEvB,MAAO,CAAEowG,EAAG7nI,EAAM,GAAIkL,EAAGlL,EAAM,GAAIklC,EAAGllC,EAAM,GAAI8jC,EAAG9jC,EAAM,IAG7D,GADAA,EAAQmqhB,GAASwmK,KAAK/jsB,KAAK6qC,GAEvB,MAAO,CACHmtB,EAAG0roB,GAAgBtwrB,EAAM,IACzB6kD,EAAGyroB,GAAgBtwrB,EAAM,IACzB+jC,EAAGuspB,GAAgBtwrB,EAAM,IACzB8jC,EAAGuspB,GAAoBrwrB,EAAM,IAC7BmX,OAAQq5qB,EAAQ,OAAS,QAIjC,GADAxwrB,EAAQmqhB,GAASymK,KAAKhksB,KAAK6qC,GAEvB,MAAO,CACHmtB,EAAG0roB,GAAgBtwrB,EAAM,IACzB6kD,EAAGyroB,GAAgBtwrB,EAAM,IACzB+jC,EAAGuspB,GAAgBtwrB,EAAM,IACzBmX,OAAQq5qB,EAAQ,OAAS,OAIjC,GADAxwrB,EAAQmqhB,GAAS0mK,KAAKjksB,KAAK6qC,GAEvB,MAAO,CACHmtB,EAAG0roB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpC6kD,EAAGyroB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpC+jC,EAAGuspB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpC8jC,EAAGuspB,GAAoBrwrB,EAAM,GAAKA,EAAM,IACxCmX,OAAQq5qB,EAAQ,OAAS,QAIjC,GADAxwrB,EAAQmqhB,GAAS2mK,KAAKlksB,KAAK6qC,GAEvB,MAAO,CACHmtB,EAAG0roB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpC6kD,EAAGyroB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpC+jC,EAAGuspB,GAAgBtwrB,EAAM,GAAKA,EAAM,IACpCmX,OAAQq5qB,EAAQ,OAAS,OAGjC,OAAO,EA/IKO,CAAoBt5pB,IAEX,kBAAVA,IACHu5pB,GAAev5pB,EAAMmtB,IAAMosoB,GAAev5pB,EAAMotB,IAAMmsoB,GAAev5pB,EAAMsM,IFzB9D6gB,EE0BEntB,EAAMmtB,EF1BLC,EE0BQptB,EAAMotB,EF1BX9gB,EE0BctM,EAAMsM,EAAvC2uL,EFzBD,CACH9tK,EAAqB,IAAlB4qoB,GAAQ5qoB,EAAG,KACdC,EAAqB,IAAlB2qoB,GAAQ3qoB,EAAG,KACd9gB,EAAqB,IAAlByrpB,GAAQzrpB,EAAG,MEuBVrG,GAAK,EACLvmB,EAAwC,MAA/B+sC,OAAOzsB,EAAMmtB,GAAG51D,QAAQ,GAAa,OAAS,OAElDgisB,GAAev5pB,EAAMowG,IAAMmpjB,GAAev5pB,EAAMvsB,IAAM8lrB,GAAev5pB,EAAMyN,IAChFh6B,EAAI2krB,GAAoBp4pB,EAAMvsB,GAC9Bg6B,EAAI2qpB,GAAoBp4pB,EAAMyN,GAC9BwtL,EFqGL,SAAkB7qF,EAAG38H,EAAGg6B,GAC3B2iG,EAAsB,EAAlB2njB,GAAQ3njB,EAAG,KACf38H,EAAIskrB,GAAQtkrB,EAAG,KACfg6B,EAAIsqpB,GAAQtqpB,EAAG,KACf,IAAI96C,EAAI4Z,KAAKo1B,MAAMyuG,GACfj9B,EAAIi9B,EAAIz9I,EACRqrF,EAAIvwC,GAAK,EAAIh6B,GACbqtL,EAAIrzJ,GAAK,EAAI0lE,EAAI1/F,GACjBqpC,EAAIrP,GAAK,GAAK,EAAI0lE,GAAK1/F,GACvB+5F,EAAM76G,EAAI,EAId,MAAO,CAAEw6D,EAAO,IAHR,CAAC1f,EAAGqzJ,EAAG9iH,EAAGA,EAAGlhC,EAAGrP,GAAG+/D,GAGNpgD,EAAO,IAFpB,CAACtQ,EAAGrP,EAAGA,EAAGqzJ,EAAG9iH,EAAGA,GAAGwvB,GAEMlhE,EAAO,IADhC,CAAC0xC,EAAGA,EAAGlhC,EAAGrP,EAAGA,EAAGqzJ,GAAGtzF,IEjHb0tH,CAASl7L,EAAMowG,EAAG38H,EAAGg6B,GAC3BxH,GAAK,EACLvmB,EAAS,OAEJ65qB,GAAev5pB,EAAMowG,IAAMmpjB,GAAev5pB,EAAMvsB,IAAM8lrB,GAAev5pB,EAAM82C,KAChFrjE,EAAI2krB,GAAoBp4pB,EAAMvsB,GAC9BqjE,EAAIshnB,GAAoBp4pB,EAAM82C,GAC9BmkJ,EF6BL,SAAkB7qF,EAAG38H,EAAGqjE,GAC3B,IAAI3pB,EACAC,EACA9gB,EAIJ,GAHA8jG,EAAI2njB,GAAQ3njB,EAAG,KACf38H,EAAIskrB,GAAQtkrB,EAAG,KACfqjE,EAAIihnB,GAAQjhnB,EAAG,KACL,IAANrjE,EAEA25C,EAAI0pB,EACJxqC,EAAIwqC,EACJ3pB,EAAI2pB,MAEH,CACD,IAAIgqH,EAAIhqH,EAAI,GAAMA,GAAK,EAAIrjE,GAAKqjE,EAAIrjE,EAAIqjE,EAAIrjE,EACxCuqE,EAAI,EAAIlH,EAAIgqH,EAChB3zI,EAAIoroB,GAAQv6mB,EAAG8iH,EAAG1wD,EAAI,EAAI,GAC1BhjF,EAAImroB,GAAQv6mB,EAAG8iH,EAAG1wD,GAClB9jG,EAAIispB,GAAQv6mB,EAAG8iH,EAAG1wD,EAAI,EAAI,GAE9B,MAAO,CAAEjjF,EAAO,IAAJA,EAASC,EAAO,IAAJA,EAAS9gB,EAAO,IAAJA,GEjDtB6uL,CAASn7L,EAAMowG,EAAG38H,EAAGqjE,GAC3B7wC,GAAK,EACLvmB,EAAS,OAEThyB,OAAOtB,UAAUsxE,eAAer2E,KAAK24C,EAAO,OAC5CqM,EAAIrM,EAAMqM,IAGlBA,EAAI8rpB,GAAW9rpB,GACR,CACHpG,GAAIA,EACJvmB,OAAQsgB,EAAMtgB,QAAUA,EACxBytC,EAAG5gD,KAAKG,IAAI,IAAKH,KAAKC,IAAIyuN,EAAI9tK,EAAG,IACjCC,EAAG7gD,KAAKG,IAAI,IAAKH,KAAKC,IAAIyuN,EAAI7tK,EAAG,IACjC9gB,EAAG//B,KAAKG,IAAI,IAAKH,KAAKC,IAAIyuN,EAAI3uL,EAAG,IACjCD,EAAGA,GAIX,IAIImtpB,GAAW,MAAMh3qB,OAFJ,uBAEuB,SAASA,OAJ/B,gBAImD,KAIjEi3qB,GAAoB,cAAcj3qB,OAAOg3qB,GAAU,cAAch3qB,OAAOg3qB,GAAU,cAAch3qB,OAAOg3qB,GAAU,aACjHE,GAAoB,cAAcl3qB,OAAOg3qB,GAAU,cAAch3qB,OAAOg3qB,GAAU,cAAch3qB,OAAOg3qB,GAAU,cAAch3qB,OAAOg3qB,GAAU,aAChJ9mK,GAAW,CACX8mK,SAAU,IAAI5ppB,OAAO4ppB,IACrBv+d,IAAK,IAAIrrL,OAAO,MAAQ6ppB,IACxBh6V,KAAM,IAAI7vT,OAAO,OAAS8ppB,IAC1B19d,IAAK,IAAIpsL,OAAO,MAAQ6ppB,IACxBT,KAAM,IAAIpppB,OAAO,OAAS8ppB,IAC1B/9d,IAAK,IAAI/rL,OAAO,MAAQ6ppB,IACxBR,KAAM,IAAIrppB,OAAO,OAAS8ppB,IAC1BL,KAAM,uDACNF,KAAM,uDACNC,KAAM,uEACNF,KAAM,wEA2FH,SAASK,GAAev5pB,GAC3B,OAAOwoE,QAAQkqb,GAAS8mK,SAASrksB,KAAKs3D,OAAOzsB,KCpLjD,IAeI25pB,GAAe,CAAC,CAClBlysB,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,IACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,IACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,KACR,CACDrwI,MAAO,EACPqwI,QAAS,MAKX,SAAS8hkB,GAAMhsd,GACb,IAGIjS,EAAM68d,GAHF5qd,EAAKzgL,EACLygL,EAAKxgL,EACLwgL,EAAKthM,GAEb,MAAO,CACL8jG,EAAW,IAARurF,EAAIvrF,EACP38H,EAAGkoN,EAAIloN,EACPg6B,EAAGkuL,EAAIluL,GAMX,SAASuvL,GAAM+R,GACb,IAAI5hL,EAAI4hL,EAAM5hL,EACVC,EAAI2hL,EAAM3hL,EACV9gB,EAAIyiM,EAAMziM,EACd,MAAO,IAAI9pB,OAAOi2qB,GAAStroB,EAAGC,EAAG9gB,GAAG,IAMtC,SAASuvkB,GAAIg+E,EAAMC,EAAMl+gB,GACvB,IAAI59F,EAAI49F,EAAS,IAMjB,MALU,CACRzuH,GAAI2soB,EAAK3soB,EAAI0soB,EAAK1soB,GAAK6wB,EAAI67mB,EAAK1soB,EAChCC,GAAI0soB,EAAK1soB,EAAIysoB,EAAKzsoB,GAAK4wB,EAAI67mB,EAAKzsoB,EAChC9gB,GAAIwtpB,EAAKxtpB,EAAIutpB,EAAKvtpB,GAAK0xC,EAAI67mB,EAAKvtpB,GAKpC,SAASytpB,GAAOp+d,EAAKhpO,EAAGmjM,GACtB,IAAImmK,EAcJ,OAXEA,EADE1vV,KAAK6H,MAAMunN,EAAIvrF,IAAM,IAAM7jI,KAAK6H,MAAMunN,EAAIvrF,IAAM,IAC5C0lD,EAAQvpL,KAAK6H,MAAMunN,EAAIvrF,GAvFnB,EAuFkCz9I,EAAI4Z,KAAK6H,MAAMunN,EAAIvrF,GAvFrD,EAuFoEz9I,EAExEmjM,EAAQvpL,KAAK6H,MAAMunN,EAAIvrF,GAzFnB,EAyFkCz9I,EAAI4Z,KAAK6H,MAAMunN,EAAIvrF,GAzFrD,EAyFoEz9I,GAGtE,EACRspW,GAAO,IACEA,GAAO,MAChBA,GAAO,KAGFA,EAGT,SAAS+9V,GAAcr+d,EAAKhpO,EAAGmjM,GAE7B,OAAc,IAAV6lC,EAAIvrF,GAAqB,IAAVurF,EAAIloN,EACdkoN,EAAIloN,IAMXuoV,EADElmK,EACW6lC,EAAIloN,EA5GA,IA4GqB9gB,EAlGrB,IAmGRA,EACIgpO,EAAIloN,EA9GA,IAgHJkoN,EAAIloN,EA9GC,IA8GqB9gB,GAIxB,IACfqpW,EAAa,GAIXlmK,GAjHgB,IAiHPnjM,GAAyBqpW,EAAa,KACjDA,EAAa,IAGXA,EAAa,MACfA,EAAa,KAGR3lT,OAAO2lT,EAAWnhT,QAAQ,KAxBjC,IAAImhT,EA2BN,SAASx3U,GAASm3M,EAAKhpO,EAAGmjM,GACxB,IAAIttM,EAYJ,OATEA,EADEstM,EACM6lC,EAAIluL,EApIM,IAoIgB96C,EAE1BgpO,EAAIluL,EApIM,IAoIgB96C,GAGxB,IACVnK,EAAQ,GAGH6tD,OAAO7tD,EAAMqyD,QAAQ,IAGf,SAAS6F,GAAS1gB,GAK/B,IAJA,IAAI4vE,EAAOjhH,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC3E8qG,EAAW,GACXwgmB,EAASnB,GAAW94pB,GAEfrtC,EAjJW,EAiJUA,EAAI,EAAGA,GAAK,EAAG,CAC3C,IAAIgpO,EAAMi+d,GAAMK,GACZj/d,EAAcgC,GAAM87d,GAAW,CACjC1ojB,EAAG2pjB,GAAOp+d,EAAKhpO,GAAG,GAClB8gB,EAAGumrB,GAAcr+d,EAAKhpO,GAAG,GACzB86C,EAAGjpB,GAASm3M,EAAKhpO,GAAG,MAEtB8mG,EAASjyG,KAAKwzO,GAGhBvhI,EAASjyG,KAAKw1O,GAAMi9d,IAEpB,IAAK,IAAI1jlB,EAAK,EAAGA,GA3JE,EA2JoBA,GAAM,EAAG,CAC9C,IAAI2jlB,EAAON,GAAMK,GAEbE,EAAen9d,GAAM87d,GAAW,CAClC1ojB,EAAG2pjB,GAAOG,EAAM3jlB,GAChB9iG,EAAGumrB,GAAcE,EAAM3jlB,GACvB9oE,EAAGjpB,GAAS01qB,EAAM3jlB,MAGpB9c,EAASjyG,KAAK2ysB,GAIhB,MAAmB,SAAfvqlB,EAAKz4F,MACAwirB,GAAa7ssB,KAAI,SAAU0iP,GAChC,IAAI/nP,EAAQ+nP,EAAM/nP,MACdqwI,EAAU03G,EAAM13G,QAEpB,OADsBklG,GAAM6+Y,GAAIi9E,GAAWlplB,EAAK3lF,iBAAmB,WAAY6uqB,GAAWr/lB,EAAShyG,IAAmB,IAAVqwI,OAKzGr+B,EC7LT,IAAI2gmB,GAAsB,CACxBlhe,IAAK,UACLmhe,QAAS,UACTlie,OAAQ,UACRvD,KAAM,UACNiG,OAAQ,UACRjE,KAAM,UACN7B,MAAO,UACPnC,KAAM,UACNX,KAAM,UACNqoe,SAAU,UACVthe,OAAQ,UACRjC,QAAS,UACT9B,KAAM,WAEJsle,GAAiB,GACjBC,GAAqB,GACzB9ssB,OAAOC,KAAKyssB,IAAqBvzsB,SAAQ,SAAU+G,GACjD2ssB,GAAe3ssB,GAAO8yD,GAAS05oB,GAAoBxssB,IACnD2ssB,GAAe3ssB,GAAKysf,QAAUkgN,GAAe3ssB,GAAK,GAElD4ssB,GAAmB5ssB,GAAO8yD,GAAS05oB,GAAoBxssB,GAAM,CAC3DupB,MAAO,OACP8S,gBAAiB,YAEnBuwqB,GAAmB5ssB,GAAKysf,QAAUmgN,GAAmB5ssB,GAAK,MAElD2ssB,GAAerhe,IACXqhe,GAAeF,QAD7B,IAEIzle,GAAO2le,GAAe3le,KAMtB3C,IALSsoe,GAAepie,OACfoie,GAAe1/d,OACjB0/d,GAAe3je,KACd2je,GAAexle,MAChBwle,GAAe3ne,KACf2ne,GAAetoe,MC1B1B,ID2Besoe,GAAeD,SACjBC,GAAevhe,OACduhe,GAAexje,QAClBwje,GAAetle,KACfsle,GAAetle,KCzCD,SAAAhoJ,GACvB,IACEwtnB,EACExtnB,EADFwtnB,cAEF,MAAO,CACLC,gBAAiC,IAAhBD,EACjBE,gBAAiC,GAAhBF,EACjBG,gBAAiC,KAAhBH,KCPd,IAAMI,GAAsB,CACjC5oe,KAAM,UACN+G,OAAQ,UACRpG,KAAM,UACNmC,MAAO,UACPgC,QAAS,UACT8B,KAAM,UACNK,IAAK,UACLf,OAAQ,UACR0C,OAAQ,UACRw/d,QAAS,UACTC,SAAU,UACV1le,KAAM,UACNgC,KAAM,WAkDR,GAhDkBlpO,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI20pB,IAAsB,CAEtEC,aAAc,UACdC,aAAc,UACdC,aAAc,UACdC,WAAY,UACZC,UAAW,UACXC,UAAW,GACXC,cAAe,GACfC,YAAa,GAEbr5gB,WAAY,0LAGZs5gB,eAAgB,2EAChB95pB,SAAU,GAEV4me,UAAW,EACXmzL,SAAU,QAEVC,WAAY,GACZC,WAAY,EACZC,kBAAmB,oCACnBC,oBAAqB,uCACrBC,cAAe,sCACfC,gBAAiB,uCACjBC,kBAAmB,sCACnBC,iBAAkB,uCAClBC,kBAAmB,yCACnBC,mBAAoB,iCAEpB1wD,aAAc,EAEd2wD,SAAU,EACVC,SAAU,EACVC,eAAgB,GAEhB3B,cAAe,GAEf4B,WAAY,EACZC,gBAAiB,IAEjBC,aAAc,EAEdC,WAAW,EAEXC,QAAQ,ICzDNC,GAA2B,WAC3B,SAASA,EAAU18pB,EAAO4vE,GAGtB,IAAIn/G,EAEJ,QAJc,IAAVuvC,IAAoBA,EAAQ,SACnB,IAAT4vE,IAAmBA,EAAO,IAG1B5vE,aAAiB08pB,EAEjB,OAAO18pB,EAEU,kBAAVA,IACPA,EPqNL,SAA6BA,GAChC,MAAO,CACHmtB,EAAGntB,GAAS,GACZotB,GAAY,MAARptB,IAAmB,EACvBsM,EAAW,IAARtM,GOzNS28pB,CAAoB38pB,IAEhCp5C,KAAKg2sB,cAAgB58pB,EACrB,IAAIi7L,EAAM69d,GAAW94pB,GACrBp5C,KAAKg2sB,cAAgB58pB,EACrBp5C,KAAKumE,EAAI8tK,EAAI9tK,EACbvmE,KAAKwmE,EAAI6tK,EAAI7tK,EACbxmE,KAAK0lD,EAAI2uL,EAAI3uL,EACb1lD,KAAKylD,EAAI4uL,EAAI5uL,EACbzlD,KAAKi2sB,OAAStwrB,KAAK6H,MAAM,IAAMxtB,KAAKylD,GAAK,IACzCzlD,KAAK84B,OAAgC,QAAtBjvB,EAAKm/G,EAAKlwF,cAA2B,IAAPjvB,EAAgBA,EAAKwqO,EAAIv7M,OACtE94B,KAAKk2sB,aAAeltlB,EAAKktlB,aAKrBl2sB,KAAKumE,EAAI,IACTvmE,KAAKumE,EAAI5gD,KAAK6H,MAAMxtB,KAAKumE,IAEzBvmE,KAAKwmE,EAAI,IACTxmE,KAAKwmE,EAAI7gD,KAAK6H,MAAMxtB,KAAKwmE,IAEzBxmE,KAAK0lD,EAAI,IACT1lD,KAAK0lD,EAAI//B,KAAK6H,MAAMxtB,KAAK0lD,IAE7B1lD,KAAKkwB,QAAUmkN,EAAIh1L,GA2cvB,OAzcAy2pB,EAAUtwsB,UAAUkhI,OAAS,WACzB,OAAO1mI,KAAKm2sB,gBAAkB,KAElCL,EAAUtwsB,UAAU4wsB,QAAU,WAC1B,OAAQp2sB,KAAK0mI,UAKjBovkB,EAAUtwsB,UAAU2wsB,cAAgB,WAEhC,IAAI9he,EAAMr0O,KAAKq2sB,QACf,OAAgB,IAARhie,EAAI9tK,EAAkB,IAAR8tK,EAAI7tK,EAAkB,IAAR6tK,EAAI3uL,GAAW,KAKvDowpB,EAAUtwsB,UAAU8wsB,aAAe,WAE/B,IAAIjie,EAAMr0O,KAAKq2sB,QAIXE,EAAQlie,EAAI9tK,EAAI,IAChBiwoB,EAAQnie,EAAI7tK,EAAI,IAChBiwoB,EAAQpie,EAAI3uL,EAAI,IAsBpB,MAAO,OArBH6wpB,GAAS,OACLA,EAAQ,MAIR5wrB,KAAKg7C,KAAK41oB,EAAQ,MAAS,MAAO,MAgBtB,OAdhBC,GAAS,OACLA,EAAQ,MAIR7wrB,KAAKg7C,KAAK61oB,EAAQ,MAAS,MAAO,MAST,OAP7BC,GAAS,OACLA,EAAQ,MAIR9wrB,KAAKg7C,KAAK81oB,EAAQ,MAAS,MAAO,OAO9CX,EAAUtwsB,UAAUkxsB,SAAW,WAC3B,OAAO12sB,KAAKylD,GAOhBqwpB,EAAUtwsB,UAAUmxsB,SAAW,SAAU5woB,GAGrC,OAFA/lE,KAAKylD,EAAI8rpB,GAAWxroB,GACpB/lE,KAAKi2sB,OAAStwrB,KAAK6H,MAAM,IAAMxtB,KAAKylD,GAAK,IAClCzlD,MAKX81sB,EAAUtwsB,UAAUoxsB,aAAe,WAE/B,OAAa,IADL52sB,KAAK62sB,QAAQhqrB,GAMzBiprB,EAAUtwsB,UAAUwtsB,MAAQ,WACxB,IAAIj+d,EAAM68d,GAAS5xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,GACxC,MAAO,CAAE8jG,EAAW,IAARurF,EAAIvrF,EAAS38H,EAAGkoN,EAAIloN,EAAGg6B,EAAGkuL,EAAIluL,EAAGpB,EAAGzlD,KAAKylD,IAMzDqwpB,EAAUtwsB,UAAUsxsB,YAAc,WAC9B,IAAI/he,EAAM68d,GAAS5xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,GACpC8jG,EAAI7jI,KAAK6H,MAAc,IAARunN,EAAIvrF,GACnB38H,EAAIlH,KAAK6H,MAAc,IAARunN,EAAIloN,GACnBg6B,EAAIlhC,KAAK6H,MAAc,IAARunN,EAAIluL,GACvB,OAAkB,IAAX7mD,KAAKylD,EAAU,OAAO7pB,OAAO4tH,EAAG,MAAM5tH,OAAO/O,EAAG,OAAO+O,OAAOirB,EAAG,MAAQ,QAAQjrB,OAAO4tH,EAAG,MAAM5tH,OAAO/O,EAAG,OAAO+O,OAAOirB,EAAG,OAAOjrB,OAAO57B,KAAKi2sB,OAAQ,MAKlKH,EAAUtwsB,UAAUqxsB,MAAQ,WACxB,IAAIzhe,EAAMs8d,GAAS1xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,GACxC,MAAO,CAAE8jG,EAAW,IAAR4rF,EAAI5rF,EAAS38H,EAAGuoN,EAAIvoN,EAAGqjE,EAAGklJ,EAAIllJ,EAAGzqC,EAAGzlD,KAAKylD,IAMzDqwpB,EAAUtwsB,UAAUuxsB,YAAc,WAC9B,IAAI3he,EAAMs8d,GAAS1xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,GACpC8jG,EAAI7jI,KAAK6H,MAAc,IAAR4nN,EAAI5rF,GACnB38H,EAAIlH,KAAK6H,MAAc,IAAR4nN,EAAIvoN,GACnBqjE,EAAIvqE,KAAK6H,MAAc,IAAR4nN,EAAIllJ,GACvB,OAAkB,IAAXlwF,KAAKylD,EAAU,OAAO7pB,OAAO4tH,EAAG,MAAM5tH,OAAO/O,EAAG,OAAO+O,OAAOs0D,EAAG,MAAQ,QAAQt0D,OAAO4tH,EAAG,MAAM5tH,OAAO/O,EAAG,OAAO+O,OAAOs0D,EAAG,OAAOt0D,OAAO57B,KAAKi2sB,OAAQ,MAMlKH,EAAUtwsB,UAAU4wO,MAAQ,SAAU07d,GAElC,YADmB,IAAfA,IAAyBA,GAAa,GACnCD,GAAS7xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,EAAGospB,IAM5CgE,EAAUtwsB,UAAUwxsB,YAAc,SAAUlF,GAExC,YADmB,IAAfA,IAAyBA,GAAa,GACnC,IAAM9xsB,KAAKo2O,MAAM07d,IAM5BgE,EAAUtwsB,UAAUyxsB,OAAS,SAAUC,GAEnC,YADmB,IAAfA,IAAyBA,GAAa,GPe3C,SAAmB3woB,EAAGC,EAAG9gB,EAAGD,EAAGyxpB,GAClC,IAAIxge,EAAM,CACN+6d,GAAK9rrB,KAAK6H,MAAM+4C,GAAG93D,SAAS,KAC5BgjsB,GAAK9rrB,KAAK6H,MAAMg5C,GAAG/3D,SAAS,KAC5BgjsB,GAAK9rrB,KAAK6H,MAAMk4B,GAAGj3C,SAAS,KAC5BgjsB,GAAKM,GAAoBtspB,KAG7B,OAAIyxpB,GACAxge,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,KAChCwxJ,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,KAChCwxJ,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,KAChCwxJ,EAAI,GAAGh7G,WAAWg7G,EAAI,GAAGxxJ,OAAO,IACzBwxJ,EAAI,GAAGxxJ,OAAO,GAAKwxJ,EAAI,GAAGxxJ,OAAO,GAAKwxJ,EAAI,GAAGxxJ,OAAO,GAAKwxJ,EAAI,GAAGxxJ,OAAO,GAE3EwxJ,EAAIzlO,KAAK,IO7BLkmsB,CAAUn3sB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,EAAG1lD,KAAKylD,EAAGyxpB,IAMrDpB,EAAUtwsB,UAAU4xsB,aAAe,SAAUF,GAEzC,YADmB,IAAfA,IAAyBA,GAAa,GACnC,IAAMl3sB,KAAKi3sB,OAAOC,IAM7BpB,EAAUtwsB,UAAU6xsB,iBAAmB,SAAUC,GAE7C,YADuB,IAAnBA,IAA6BA,GAAiB,GAChC,IAAXt3sB,KAAKylD,EAAUzlD,KAAKg3sB,YAAYM,GAAkBt3sB,KAAKo3sB,aAAaE,IAK/ExB,EAAUtwsB,UAAU6wsB,MAAQ,WACxB,MAAO,CACH9voB,EAAG5gD,KAAK6H,MAAMxtB,KAAKumE,GACnBC,EAAG7gD,KAAK6H,MAAMxtB,KAAKwmE,GACnB9gB,EAAG//B,KAAK6H,MAAMxtB,KAAK0lD,GACnBD,EAAGzlD,KAAKylD,IAOhBqwpB,EAAUtwsB,UAAU+xsB,YAAc,WAC9B,IAAIhxoB,EAAI5gD,KAAK6H,MAAMxtB,KAAKumE,GACpBC,EAAI7gD,KAAK6H,MAAMxtB,KAAKwmE,GACpB9gB,EAAI//B,KAAK6H,MAAMxtB,KAAK0lD,GACxB,OAAkB,IAAX1lD,KAAKylD,EAAU,OAAO7pB,OAAO2qC,EAAG,MAAM3qC,OAAO4qC,EAAG,MAAM5qC,OAAO8pB,EAAG,KAAO,QAAQ9pB,OAAO2qC,EAAG,MAAM3qC,OAAO4qC,EAAG,MAAM5qC,OAAO8pB,EAAG,MAAM9pB,OAAO57B,KAAKi2sB,OAAQ,MAK9JH,EAAUtwsB,UAAUgysB,gBAAkB,WAClC,IAAIC,EAAM,SAAUzmsB,GAAK,MAAO,GAAG4qB,OAAOjW,KAAK6H,MAAwB,IAAlB2jrB,GAAQngsB,EAAG,MAAa,MAC7E,MAAO,CACHu1D,EAAGkxoB,EAAIz3sB,KAAKumE,GACZC,EAAGixoB,EAAIz3sB,KAAKwmE,GACZ9gB,EAAG+xpB,EAAIz3sB,KAAK0lD,GACZD,EAAGzlD,KAAKylD,IAMhBqwpB,EAAUtwsB,UAAUkysB,sBAAwB,WACxC,IAAIC,EAAM,SAAU3msB,GAAK,OAAO2U,KAAK6H,MAAwB,IAAlB2jrB,GAAQngsB,EAAG,OACtD,OAAkB,IAAXhR,KAAKylD,EACN,OAAO7pB,OAAO+7qB,EAAI33sB,KAAKumE,GAAI,OAAO3qC,OAAO+7qB,EAAI33sB,KAAKwmE,GAAI,OAAO5qC,OAAO+7qB,EAAI33sB,KAAK0lD,GAAI,MACjF,QAAQ9pB,OAAO+7qB,EAAI33sB,KAAKumE,GAAI,OAAO3qC,OAAO+7qB,EAAI33sB,KAAKwmE,GAAI,OAAO5qC,OAAO+7qB,EAAI33sB,KAAK0lD,GAAI,OAAO9pB,OAAO57B,KAAKi2sB,OAAQ,MAKvHH,EAAUtwsB,UAAUoysB,OAAS,WACzB,GAAe,IAAX53sB,KAAKylD,EACL,MAAO,cAEX,GAAIzlD,KAAKylD,EAAI,EACT,OAAO,EAGX,IADA,IAAIixL,EAAM,IAAMm7d,GAAS7xsB,KAAKumE,EAAGvmE,KAAKwmE,EAAGxmE,KAAK0lD,GAAG,GACxCiqE,EAAK,EAAG9lH,EAAK/C,OAAOg+G,QAAQltE,IAAQ+3E,EAAK9lH,EAAGvJ,OAAQqvH,IAAM,CAC/D,IAAIvrG,EAAKva,EAAG8lH,GAAK3oH,EAAMod,EAAG,GAC1B,GAAIsyN,IADkCtyN,EAAG,GAErC,OAAOpd,EAGf,OAAO,GAEX8usB,EAAUtwsB,UAAUiJ,SAAW,SAAUqqB,GACrC,IAAI++qB,EAAYj2lB,QAAQ9oF,GACxBA,EAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAAS94B,KAAK84B,OAC9D,IAAImzF,GAAkB,EAClB3lD,EAAWtmE,KAAKylD,EAAI,GAAKzlD,KAAKylD,GAAK,EAEvC,OADwBoypB,IAAavxoB,IAAaxtC,EAAO4iG,WAAW,QAAqB,SAAX5iG,GAS/D,QAAXA,IACAmzF,EAAkBjsH,KAAKu3sB,eAEZ,SAAXz+qB,IACAmzF,EAAkBjsH,KAAK03sB,yBAEZ,QAAX5+qB,GAA+B,SAAXA,IACpBmzF,EAAkBjsH,KAAKg3sB,eAEZ,SAAXl+qB,IACAmzF,EAAkBjsH,KAAKg3sB,aAAY,IAExB,SAAXl+qB,IACAmzF,EAAkBjsH,KAAKo3sB,cAAa,IAEzB,SAAXt+qB,IACAmzF,EAAkBjsH,KAAKo3sB,gBAEZ,SAAXt+qB,IACAmzF,EAAkBjsH,KAAK43sB,UAEZ,QAAX9+qB,IACAmzF,EAAkBjsH,KAAK+2sB,eAEZ,QAAXj+qB,IACAmzF,EAAkBjsH,KAAK82sB,eAEpB7qlB,GAAmBjsH,KAAKg3sB,eAhCZ,SAAXl+qB,GAAgC,IAAX94B,KAAKylD,EACnBzlD,KAAK43sB,SAET53sB,KAAKu3sB,eA+BpBzB,EAAUtwsB,UAAUixU,SAAW,WAC3B,OAAQ9wT,KAAK6H,MAAMxtB,KAAKumE,IAAM,KAAO5gD,KAAK6H,MAAMxtB,KAAKwmE,IAAM,GAAK7gD,KAAK6H,MAAMxtB,KAAK0lD,IAEpFowpB,EAAUtwsB,UAAU81E,MAAQ,WACxB,OAAO,IAAIw6nB,EAAU91sB,KAAKyO,aAM9BqnsB,EAAUtwsB,UAAUsysB,QAAU,SAAU9ihB,QACrB,IAAXA,IAAqBA,EAAS,IAClC,IAAIogD,EAAMp1O,KAAK62sB,QAGf,OAFAzhe,EAAIllJ,GAAK8kG,EAAS,IAClBogD,EAAIllJ,EAAIohnB,GAAQl8d,EAAIllJ,GACb,IAAI4lnB,EAAU1ge,IAMzB0ge,EAAUtwsB,UAAUuysB,SAAW,SAAU/ihB,QACtB,IAAXA,IAAqBA,EAAS,IAClC,IAAIq/C,EAAMr0O,KAAKq2sB,QAIf,OAHAhie,EAAI9tK,EAAI5gD,KAAKC,IAAI,EAAGD,KAAKG,IAAI,IAAKuuN,EAAI9tK,EAAI5gD,KAAK6H,OAAcwnK,EAAS,IAAjB,OACrDq/C,EAAI7tK,EAAI7gD,KAAKC,IAAI,EAAGD,KAAKG,IAAI,IAAKuuN,EAAI7tK,EAAI7gD,KAAK6H,OAAcwnK,EAAS,IAAjB,OACrDq/C,EAAI3uL,EAAI//B,KAAKC,IAAI,EAAGD,KAAKG,IAAI,IAAKuuN,EAAI3uL,EAAI//B,KAAK6H,OAAcwnK,EAAS,IAAjB,OAC9C,IAAI8ghB,EAAUzhe,IAOzByhe,EAAUtwsB,UAAU6wO,OAAS,SAAUrhD,QACpB,IAAXA,IAAqBA,EAAS,IAClC,IAAIogD,EAAMp1O,KAAK62sB,QAGf,OAFAzhe,EAAIllJ,GAAK8kG,EAAS,IAClBogD,EAAIllJ,EAAIohnB,GAAQl8d,EAAIllJ,GACb,IAAI4lnB,EAAU1ge,IAOzB0ge,EAAUtwsB,UAAUwysB,KAAO,SAAUhjhB,GAEjC,YADe,IAAXA,IAAqBA,EAAS,IAC3Bh1L,KAAKi1nB,IAAI,QAASjgc,IAO7B8ghB,EAAUtwsB,UAAUyysB,MAAQ,SAAUjjhB,GAElC,YADe,IAAXA,IAAqBA,EAAS,IAC3Bh1L,KAAKi1nB,IAAI,QAASjgc,IAO7B8ghB,EAAUtwsB,UAAU0ysB,WAAa,SAAUljhB,QACxB,IAAXA,IAAqBA,EAAS,IAClC,IAAIogD,EAAMp1O,KAAK62sB,QAGf,OAFAzhe,EAAIvoN,GAAKmoK,EAAS,IAClBogD,EAAIvoN,EAAIykrB,GAAQl8d,EAAIvoN,GACb,IAAIiprB,EAAU1ge,IAMzB0ge,EAAUtwsB,UAAU2+mB,SAAW,SAAUnvb,QACtB,IAAXA,IAAqBA,EAAS,IAClC,IAAIogD,EAAMp1O,KAAK62sB,QAGf,OAFAzhe,EAAIvoN,GAAKmoK,EAAS,IAClBogD,EAAIvoN,EAAIykrB,GAAQl8d,EAAIvoN,GACb,IAAIiprB,EAAU1ge,IAMzB0ge,EAAUtwsB,UAAU2ysB,UAAY,WAC5B,OAAOn4sB,KAAKk4sB,WAAW,MAM3BpC,EAAUtwsB,UAAU4ysB,KAAO,SAAUpjhB,GACjC,IAAIogD,EAAMp1O,KAAK62sB,QACXxhW,GAAOjgI,EAAI5rF,EAAIwrC,GAAU,IAE7B,OADAogD,EAAI5rF,EAAI6rN,EAAM,EAAI,IAAMA,EAAMA,EACvB,IAAIygW,EAAU1ge,IAMzB0ge,EAAUtwsB,UAAUyvnB,IAAM,SAAU77kB,EAAO47I,QACxB,IAAXA,IAAqBA,EAAS,IAClC,IAAIi+gB,EAAOjzsB,KAAKq2sB,QACZnD,EAAO,IAAI4C,EAAU18pB,GAAOi9pB,QAC5Bj/mB,EAAI49F,EAAS,IAOjB,OAAO,IAAI8ghB,EANA,CACPvvoB,GAAI2soB,EAAK3soB,EAAI0soB,EAAK1soB,GAAK6wB,EAAI67mB,EAAK1soB,EAChCC,GAAI0soB,EAAK1soB,EAAIysoB,EAAKzsoB,GAAK4wB,EAAI67mB,EAAKzsoB,EAChC9gB,GAAIwtpB,EAAKxtpB,EAAIutpB,EAAKvtpB,GAAK0xC,EAAI67mB,EAAKvtpB,EAChCD,GAAIytpB,EAAKztpB,EAAIwtpB,EAAKxtpB,GAAK2xC,EAAI67mB,EAAKxtpB,KAIxCqwpB,EAAUtwsB,UAAU6ysB,UAAY,SAAU/psB,EAASgqsB,QAC/B,IAAZhqsB,IAAsBA,EAAU,QACrB,IAAXgqsB,IAAqBA,EAAS,IAClC,IAAIlje,EAAMp1O,KAAK62sB,QACXhnlB,EAAO,IAAMyolB,EACb9skB,EAAM,CAACxrI,MACX,IAAKo1O,EAAI5rF,GAAK4rF,EAAI5rF,GAAM35B,EAAOvhH,GAAY,GAAK,KAAO,MAAOA,GAC1D8mO,EAAI5rF,GAAK4rF,EAAI5rF,EAAI35B,GAAQ,IACzB2b,EAAI5qI,KAAK,IAAIk1sB,EAAU1ge,IAE3B,OAAO5pG,GAKXsqkB,EAAUtwsB,UAAU+ysB,WAAa,WAC7B,IAAInje,EAAMp1O,KAAK62sB,QAEf,OADAzhe,EAAI5rF,GAAK4rF,EAAI5rF,EAAI,KAAO,IACjB,IAAIssjB,EAAU1ge,IAEzB0ge,EAAUtwsB,UAAUgzsB,cAAgB,SAAUlqsB,QAC1B,IAAZA,IAAsBA,EAAU,GAOpC,IANA,IAAIymO,EAAM/0O,KAAKgzsB,QACXxpjB,EAAIurF,EAAIvrF,EACR38H,EAAIkoN,EAAIloN,EACRg6B,EAAIkuL,EAAIluL,EACRwa,EAAM,GACNo3oB,EAAe,EAAInqsB,EAChBA,KACH+yD,EAAIzgE,KAAK,IAAIk1sB,EAAU,CAAEtsjB,EAAGA,EAAG38H,EAAGA,EAAGg6B,EAAGA,KACxCA,GAAKA,EAAI4xpB,GAAgB,EAE7B,OAAOp3oB,GAEXy0oB,EAAUtwsB,UAAUkzsB,gBAAkB,WAClC,IAAItje,EAAMp1O,KAAK62sB,QACXrtjB,EAAI4rF,EAAI5rF,EACZ,MAAO,CACHxpJ,KACA,IAAI81sB,EAAU,CAAEtsjB,GAAIA,EAAI,IAAM,IAAK38H,EAAGuoN,EAAIvoN,EAAGqjE,EAAGklJ,EAAIllJ,IACpD,IAAI4lnB,EAAU,CAAEtsjB,GAAIA,EAAI,KAAO,IAAK38H,EAAGuoN,EAAIvoN,EAAGqjE,EAAGklJ,EAAIllJ,MAM7D4lnB,EAAUtwsB,UAAUmzsB,aAAe,SAAU5uL,GACzC,IAAIyuD,EAAKx4kB,KAAKq2sB,QACVrwZ,EAAK,IAAI8vZ,EAAU/rL,GAAYssL,QAC/BtwoB,EAAQyygB,EAAG/yhB,EAAIugQ,EAAGvgQ,GAAK,EAAI+yhB,EAAG/yhB,GAClC,OAAO,IAAIqwpB,EAAU,CACjBvvoB,GAAIiygB,EAAGjygB,EAAIiygB,EAAG/yhB,EAAIugQ,EAAGz/O,EAAIy/O,EAAGvgQ,GAAK,EAAI+yhB,EAAG/yhB,IAAMsgB,EAC9CS,GAAIgygB,EAAGhygB,EAAIgygB,EAAG/yhB,EAAIugQ,EAAGx/O,EAAIw/O,EAAGvgQ,GAAK,EAAI+yhB,EAAG/yhB,IAAMsgB,EAC9CrgB,GAAI8yhB,EAAG9yhB,EAAI8yhB,EAAG/yhB,EAAIugQ,EAAGtgQ,EAAIsgQ,EAAGvgQ,GAAK,EAAI+yhB,EAAG/yhB,IAAMsgB,EAC9CtgB,EAAGsgB,KAMX+voB,EAAUtwsB,UAAUozsB,MAAQ,WACxB,OAAO54sB,KAAK64sB,OAAO,IAKvB/C,EAAUtwsB,UAAUszsB,OAAS,WACzB,OAAO94sB,KAAK64sB,OAAO,IAMvB/C,EAAUtwsB,UAAUqzsB,OAAS,SAAUnhpB,GAKnC,IAJA,IAAI09K,EAAMp1O,KAAK62sB,QACXrtjB,EAAI4rF,EAAI5rF,EACR36I,EAAS,CAAC7O,MACVsyR,EAAY,IAAM56N,EACb3rD,EAAI,EAAGA,EAAI2rD,EAAG3rD,IACnB8C,EAAOjO,KAAK,IAAIk1sB,EAAU,CAAEtsjB,GAAIA,EAAIz9I,EAAIumR,GAAa,IAAKzlQ,EAAGuoN,EAAIvoN,EAAGqjE,EAAGklJ,EAAIllJ,KAE/E,OAAOrhF,GAKXinsB,EAAUtwsB,UAAUuzsB,OAAS,SAAU3/pB,GACnC,OAAOp5C,KAAKu3sB,gBAAkB,IAAIzB,EAAU18pB,GAAOm+pB,eAEhDzB,EA/eoB,GCHhB,SAASkD,GAAiBrwb,EAAM3hC,GAC7C,IACEiyd,EAEEjyd,EAFFiyd,sBACAC,EACElyd,EADFkyd,6BAGcC,EAOZxwb,EAPFwrb,aACciF,EAMZzwb,EANFyrb,aACYiF,EAKV1wb,EALF0rb,WACWiF,EAIT3wb,EAJF2rb,UACciF,EAGZ5wb,EAHFurb,aACAO,EAEE9rb,EAFF8rb,YACAD,EACE7rb,EADF6rb,cAEIgF,EAAgBP,EAAsBM,GACtCE,EAAgBR,EAAsBE,GACtCO,EAAgBT,EAAsBG,GACtCO,EAAcV,EAAsBI,GACpCO,EAAaX,EAAsBK,GACnCO,EAAgBX,EAA6BzE,EAAaD,GAG1DsF,EAAab,EADDtwb,EAAK4rb,WAAa5rb,EAAK2rb,WAEzC,OAAOxtsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIu6pB,GAAgB,CACrDE,eAAgBP,EAAc,GAC9BQ,oBAAqBR,EAAc,GACnCS,mBAAoBT,EAAc,GAClCU,wBAAyBV,EAAc,GACvCW,kBAAmBX,EAAc,GACjCtF,aAAcsF,EAAc,GAC5BY,mBAAoBZ,EAAc,GAClCa,sBAAuBb,EAAc,GACrCc,iBAAkBd,EAAc,GAChCe,uBAAwBf,EAAc,IACtCgB,eAAgBf,EAAc,GAC9BgB,oBAAqBhB,EAAc,GACnCiB,mBAAoBjB,EAAc,GAClCkB,wBAAyBlB,EAAc,GACvCmB,kBAAmBnB,EAAc,GACjCtF,aAAcsF,EAAc,GAC5BoB,mBAAoBpB,EAAc,GAClCqB,sBAAuBrB,EAAc,GACrCsB,iBAAkBtB,EAAc,GAChCuB,uBAAwBvB,EAAc,IACtCwB,aAActB,EAAY,GAC1BuB,kBAAmBvB,EAAY,GAC/BwB,iBAAkBxB,EAAY,GAC9ByB,sBAAuBzB,EAAY,GACnC0B,gBAAiB1B,EAAY,GAC7BtF,WAAYsF,EAAY,GACxB2B,iBAAkB3B,EAAY,GAC9B4B,oBAAqB5B,EAAY,GACjC6B,eAAgB7B,EAAY,GAC5B8B,qBAAsB9B,EAAY,IAClC+B,eAAgBhC,EAAc,GAC9BiC,oBAAqBjC,EAAc,GACnCkC,mBAAoBlC,EAAc,GAClCmC,wBAAyBnC,EAAc,GACvCoC,kBAAmBpC,EAAc,GACjCtF,aAAcsF,EAAc,GAC5BqC,mBAAoBrC,EAAc,GAClCsC,sBAAuBtC,EAAc,GACrCuC,iBAAkBvC,EAAc,GAChCwC,uBAAwBxC,EAAc,IACtCyC,YAAavC,EAAW,GACxBwC,iBAAkBxC,EAAW,GAC7ByC,gBAAiBzC,EAAW,GAC5B0C,qBAAsB1C,EAAW,GACjC2C,eAAgB3C,EAAW,GAC3BtF,UAAWsF,EAAW,GACtB4C,gBAAiB5C,EAAW,GAC5B6C,mBAAoB7C,EAAW,GAC/B8C,cAAe9C,EAAW,GAC1B+C,oBAAqB/C,EAAW,IAChCgD,eAAgB9C,EAAW,GAC3BvF,UAAWuF,EAAW,GACtB+C,gBAAiB/C,EAAW,GAC5BgD,YAAa,IAAIhH,GAAU,QAAQa,SAAS,KAAMY,cAClDwF,WAAY,SC/EhB,IA6CA,GA7CkB,SAAAC,GAChB,IAAIC,EAAWD,EACXE,EAAWF,EACXG,EAAWH,EACXI,EAAcJ,EAiClB,OA/BIA,EAAa,GAAKA,GAAc,EAClCC,EAAWD,EAAa,EACfA,EAAa,IAAMA,GAAc,EAC1CC,EAAWD,EAAa,EACfA,GAAc,KACvBC,EAAW,IAGTD,EAAa,GAAKA,GAAc,EAClCE,EAAW,EACFF,EAAa,GAAKA,GAAc,EACzCE,EAAW,EACFF,EAAa,IAAMA,GAAc,EAC1CE,EAAW,EACFF,EAAa,IAAMA,GAAc,GAC1CE,EAAW,EACFF,GAAc,KACvBE,EAAW,GAGTF,EAAa,GAAKA,GAAc,EAClCG,EAAW,EACFH,GAAc,IACvBG,EAAW,GAGTH,EAAa,GAAKA,EAAa,EACjCI,EAAc,EACLJ,GAAc,IACvBI,EAAc,GAET,CACLz4D,aAAcq4D,EAAa,GAAK,GAAKA,EACrCK,eAAgBF,EAChBG,eAAgBJ,EAChBK,eAAgBN,EAChBO,kBAAmBJ,ICzChB,IAAMK,GAAgB,SAAC/oe,EAAW3uK,GAAZ,OAAsB,IAAI+voB,GAAUphe,GAAWiie,SAAS5woB,GAAOwxoB,eAC/EmG,GAAgB,SAAChpe,EAAWipe,GAEvC,OADiB,IAAI7H,GAAUphe,GACf2B,OAAOsne,GAAY3G,eCFxBiC,GAAwB,SAAAvke,GACnC,IAAM1lC,EAASl1I,GAAS46K,GACxB,MAAO,CACL,EAAG1lC,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,GAAIA,EAAO,KAOFkqgB,GAA+B,SAAC0E,EAAaC,GACxD,IAAMpJ,EAAcmJ,GAAe,OAC7BpJ,EAAgBqJ,GAAiB,OACvC,MAAO,CACLpJ,YAAAA,EACAD,cAAAA,EACAsJ,UAAWL,GAAcjJ,EAAe,KACxCuJ,mBAAoBN,GAAcjJ,EAAe,KACjDwJ,kBAAmBP,GAAcjJ,EAAe,KAChDyJ,oBAAqBR,GAAcjJ,EAAe,KAClD0J,UAAWT,GAAcjJ,EAAe,KACxC2J,mBAAoBV,GAAcjJ,EAAe,KACjD4J,kBAAmBX,GAAcjJ,EAAe,KAChD6J,oBAAqBZ,GAAcjJ,EAAe,KAClD8J,cAAeZ,GAAcjJ,EAAa,GAC1C8J,iBAAkBb,GAAcjJ,EAAa,GAC7C+J,gBAAiBd,GAAcjJ,EAAa,GAC5CgK,iBAAkBhB,GAAcjJ,EAAe,KAC/CkK,YAAahB,GAAcjJ,EAAa,IACxCkK,qBAAsBjB,GAAcjJ,EAAa,KCvCrD,IAwBA,GAxBwB,SAAA75pB,GACtB,IAAMgkqB,ECDO,SAAsBl3kB,GACnC,IAAMm3kB,EAAY,IAAIt5sB,MAAM,IAAI22H,KAAK,MAAMh2H,KAAI,SAACwU,EAAG7Z,GACjD,IAAMkL,EAAIlL,EAAQ,EACZs3U,EAAWzwM,EAAO/hH,KAAKg7C,IAAI,QAAS50D,EAAI,GACxC+ysB,EAAUj+sB,EAAQ,EAAI8kB,KAAKo1B,MAAMo9R,GAAYxyT,KAAK+iK,KAAKyvJ,GAE7D,OAAiC,EAA1BxyT,KAAKo1B,MAAM+jqB,EAAU,MAG9B,OADAD,EAAU,GAAKn3kB,EACRm3kB,EAAU34sB,KAAI,SAAAsS,GAEnB,MAAO,CACLA,KAAAA,EACAo7B,YAHap7B,EAAO,GAGCA,MDZHumsB,CAAankqB,GAC7BikqB,EAAYD,EAAc14sB,KAAI,SAAAu8J,GAAI,OAAIA,EAAKjqJ,QAC3CwmsB,EAAcJ,EAAc14sB,KAAI,SAAAu8J,GAAI,OAAIA,EAAK7uH,cACnD,MAAO,CACLqrqB,WAAYJ,EAAU,GACtBjkqB,SAAUikqB,EAAU,GACpBK,WAAYL,EAAU,GACtBM,WAAYN,EAAU,GACtBO,iBAAkBP,EAAU,GAC5BQ,iBAAkBR,EAAU,GAC5BS,iBAAkBT,EAAU,GAC5BU,iBAAkBV,EAAU,GAC5BW,iBAAkBX,EAAU,GAC5BjrqB,WAAYorqB,EAAY,GACxBS,aAAcT,EAAY,GAC1BU,aAAcV,EAAY,GAC1BW,mBAAoBX,EAAY,GAChCY,mBAAoBZ,EAAY,GAChCa,mBAAoBb,EAAY,GAChCc,mBAAoBd,EAAY,GAChCe,mBAAoBf,EAAY,KEdrB,SAASngB,GAAWx4mB,GACjC,IAAM25nB,EAAgBl5sB,OAAOC,KAAKktsB,IAAqB/tsB,KAAI,SAAA+5sB,GACzD,IAAMjxgB,EAASl1I,GAASusB,EAAM45nB,IAC9B,OAAO,IAAI16sB,MAAM,IAAI22H,KAAK,GAAGxyH,QAAO,SAAC+8B,EAAM/rB,EAAG3O,GAG5C,OAFA06B,EAAK,GAAD,OAAIw5qB,EAAJ,YAAgBl0sB,EAAI,IAAOijM,EAAOjjM,GACtC06B,EAAK,GAAD,OAAIw5qB,GAAJ,OAAel0sB,EAAI,IAAOijM,EAAOjjM,GAC9B06B,IACN,OACF/8B,QAAO,SAAC+8B,EAAMgjO,GAEf,OADAhjO,EAAO3/B,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI7Y,GAAOgjO,KAE7C,IACH,OAAO3iQ,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI+mC,GAAQ25nB,GAAgBhH,GAAiB3ynB,EAAO,CAC3J4ynB,sBAAAA,GACAC,6BAAAA,MACGgH,GAAgB75nB,EAAMzrC,WCvBd,SAAyByrC,GACtC,IACEivnB,EAEEjvnB,EAFFivnB,SACAC,EACElvnB,EADFkvnB,SAEF,MAAO,CACL4K,QAAS7K,GAAYC,EAAW,GAChC6K,OAAQ9K,GAAYC,EAAW,GAC/B8K,OAAQ/K,GAAYC,EAAW,GAC/B+K,OAAQhL,GAAYC,EAAW,GAC/BgL,OAAQjL,EAAWC,EACnB/8rB,KAAM88rB,EAAWC,EACjBiL,OAAQlL,GAAYC,EAAW,GAC/BkL,OAAQnL,GAAYC,EAAW,GAC/BmL,QAASpL,GAAYC,EAAW,IDSKoL,CAAgBt6nB,IAASu6nB,GAAiBv6nB,IEtBpE,SAA2BA,GACxC,IACEuunB,EAIEvunB,EAJFuunB,WACAC,EAGExunB,EAHFwunB,WACAlwD,EAEEt+jB,EAFFs+jB,aACAnjI,EACEn7b,EADFm7b,UAEF,OAAO16gB,OAAOw4C,OAAO,CAEnBuhqB,mBAAoB,GAAF,QAAMhM,EAAaD,GAAY3gpB,QAAQ,GAAvC,KAClB6spB,kBAAmB,GAAF,QAAMjM,EAA0B,EAAbD,GAAgB3gpB,QAAQ,GAA3C,KACjB8spB,mBAAoB,GAAF,QAAMlM,EAA0B,EAAbD,GAAgB3gpB,QAAQ,GAA3C,KAElB+spB,cAAex/L,EAAY,GAC1By/L,GAAUt8D,IFQ6Eu8D,CAAkB76nB,IGnBvG,IAAMqpc,GAAeqwK,GAAYohB,IAG3Bv7f,GAAgB,CAC3Bv/H,MAAO+6nB,GACPC,QAAQ,GAEGC,GAAkC3+G,GAAAA,cAAoB/8Y,ICVtD27f,GAAuB,UAQvB76Y,GAA6Bi8R,GAAAA,cAAoB,CAE5D6+G,aAT0B,SAACC,EAAWC,GACtC,OAAIA,IAGGD,EAAY,OAAH,OAAUA,GAAc,QAMxCE,cAAeJ,KCNXK,IDUFl7Y,GADFy9R,SCTuB,QAAH,OAAW71hB,KAAKskC,MAAhB,YAAyBjtF,KAAK+5D,WA8D7C,SAAS0wc,GAAcyxL,EAAiBtxrB,GAC7C,IAAMtS,EA9DD,SAAkB4jsB,EAAiBtxrB,GACxC,IAAMmrkB,EAAY,GACZomH,EAAc,SAAC1oqB,EAAO6hiB,GAC1B,IAAI3/f,EAAQliC,EAAMkiC,QAElB,OADAA,GAAqB,OAAZ2/f,QAAgC,IAAZA,OAAqB,EAASA,EAAQ3/f,KAAWA,GACjEi8nB,eAETwK,EAAY,SAACC,EAAUr+rB,GAC3B,IAAM+wN,EAAY,IAAIohe,GAAUkM,GAC1BhC,EAAgBlmpB,GAAS46K,EAAU6ie,eACzC77G,EAAU,GAAD,OAAI/3kB,EAAJ,WAAoBm+rB,EAAYpte,GACzCgnX,EAAU,GAAD,OAAI/3kB,EAAJ,oBAA6Bq8rB,EAAc,GACpDtkH,EAAU,GAAD,OAAI/3kB,EAAJ,iBAA0Bq8rB,EAAc,GACjDtkH,EAAU,GAAD,OAAI/3kB,EAAJ,kBAA2Bq8rB,EAAc,GAClDtkH,EAAU,GAAD,OAAI/3kB,EAAJ,mBAA4B+wN,EAAUp5J,QAAQq7nB,SAAS,IAAKY,cACrE77G,EAAU,GAAD,OAAI/3kB,EAAJ,yBAAkCq8rB,EAAc,GACzDtkH,EAAU,GAAD,OAAI/3kB,EAAJ,6BAAsCq8rB,EAAc,IAG/D,GAAIzvrB,EAAM0xrB,aAAc,CACtBF,EAAUxxrB,EAAM0xrB,aAAc,WAC9B,IAAMA,EAAe,IAAInM,GAAUvlrB,EAAM0xrB,cACnCzI,EAAgB1/oB,GAASmopB,EAAa1K,eAE5CiC,EAAcv5sB,SAAQ,SAACm5C,EAAOv4C,GAC5B66lB,EAAU,WAAD,OAAY76lB,EAAQ,IAAOu4C,KAGtCsijB,EAAU,iCAAmComH,EAAYG,GAAc,SAAAzmsB,GAAC,OAAIA,EAAEs8rB,QAAQ,OACtFp8G,EAAU,iCAAmComH,EAAYG,GAAc,SAAAzmsB,GAAC,OAAIA,EAAEs8rB,QAAQ,OACtFp8G,EAAU,iCAAmComH,EAAYG,GAAc,SAAAzmsB,GAAC,OAAIA,EAAEw8rB,KAAK,OACnFt8G,EAAU,iCAAmComH,EAAYG,GAAc,SAAAzmsB,GAAC,OAAIA,EAAEw8rB,KAAK,OACnFt8G,EAAU,iCAAmComH,EAAYG,GAAc,SAAAzmsB,GAAC,OAAIA,EAAEm7rB,SAAwB,IAAfn7rB,EAAEk7rB,eACzF,IAAMwL,EAAqB,IAAIpM,GAAU0D,EAAc,IACvD99G,EAAU,wCAA0ComH,EAAYI,GAAoB,SAAA1msB,GAAC,OAAIA,EAAEm7rB,SAAwB,GAAfn7rB,EAAEk7rB,eACtGh7G,EAAU,wCAA0ComH,EAAYI,GAAoB,SAAA1msB,GAAC,OAAIA,EAAE66N,OAAO,MAGhG9lN,EAAM4xrB,cACRJ,EAAUxxrB,EAAM4xrB,aAAc,WAG5B5xrB,EAAM6xrB,cACRL,EAAUxxrB,EAAM6xrB,aAAc,WAG5B7xrB,EAAM8xrB,YACRN,EAAUxxrB,EAAM8xrB,WAAY,SAG1B9xrB,EAAM+xrB,WACRP,EAAUxxrB,EAAM+xrB,UAAW,QAG7B,IAAMC,EAAUz7sB,OAAOC,KAAK20lB,GAAWx1lB,KAAI,SAAAc,GAAG,kBAAS66sB,EAAT,YAA4B76sB,EAA5B,aAAoC00lB,EAAU10lB,GAA9C,QAC9C,MAAO,2BAEHu7sB,EAAQtxsB,KAAK,MAFV,aAIL2vB,OAGYuwlB,CAAS0wF,EAAiBtxrB,GACpCqsqB,MACFuB,GAAUlgrB,EAAD,UAAW2jsB,GAAX,mBCtEb,IAAMY,GAA+B7/G,GAAAA,eAAoB,GAC5C8/G,GAA0B,SAAAz7d,GACrC,IACEj8O,EAEEi8O,EAFFj8O,SACAK,EACE47O,EADF57O,SAEIs3sB,EAAiB//G,GAAAA,WAAiB6/G,IACxC,OAAoB7/G,GAAAA,cAAoB6/G,GAAgBvhmB,SAAU,CAChEr/G,MAAoB,OAAbwJ,QAAkC,IAAbA,EAAsBA,EAAWs3sB,GAC5D33sB,IAEL,MCXM43sB,GAA2BhgH,GAAAA,mBAAoBvqlB,GACxCwqsB,GAAsB,SAAA57d,GACjC,IACEj8O,EAEEi8O,EAFFj8O,SACAyN,EACEwuO,EADFxuO,KAEIqqsB,EAAalgH,GAAAA,WAAiBggH,IACpC,OAAoBhgH,GAAAA,cAAoBggH,GAAY1hmB,SAAU,CAC5Dr/G,MAAO4W,GAAQqqsB,GACd93sB,IAEL,MCDA,OARA,WAGE,MAAO,CACL+3sB,mBAHwBphI,EAAAA,GAAAA,YAAW8gI,IAInCO,eAHoBrhI,EAAAA,GAAAA,YAAWihI,iCCH5B,SAASK,GAAM/soB,GAGpB,OAAOA,aAAgBqgf,aAAergf,aAAgBgtoB,WAMzC,SAASh0H,GAAYh5gB,GAClC,OAAI+soB,GAAM/soB,GACDA,EAELA,aAAgB0shB,GAAAA,UACXF,GAAAA,YAAqBxshB,GAEvB,qBCZF,SAASitoB,GAAQjlpB,EAAKgY,GACR,oBAARhY,EACTA,EAAIgY,GACsB,YAAjBi0hB,EAAAA,GAAAA,GAAQjsiB,IAAqBA,GAAO,YAAaA,IAC1DA,EAAIqgL,QAAUroK,GAOX,SAASktoB,KACd,IAAK,IAAIpre,EAAOhwO,UAAUzH,OAAQu8E,EAAO,IAAIt3E,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/En7J,EAAKm7J,GAAQjwO,UAAUiwO,GAEzB,IAAIore,EAAUvmoB,EAAKj3E,QAAO,SAAUq4D,GAClC,OAAOA,KAET,OAAImlpB,EAAQ9itB,QAAU,EACb8itB,EAAQ,GAEV,SAAUntoB,GACf4G,EAAK58E,SAAQ,SAAUg+D,GACrBilpB,GAAQjlpB,EAAKgY,OAIZ,SAASotoB,KACd,IAAK,IAAIl9d,EAAQp+O,UAAUzH,OAAQu8E,EAAO,IAAIt3E,MAAM4gP,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvpK,EAAKupK,GAASr+O,UAAUq+O,GAE1B,OAAO27V,IAAQ,WACb,OAAOohI,GAAWn9rB,WAAM,EAAQ62D,KAC/BA,GAAM,SAAUp2C,EAAM6X,GACvB,OAAO7X,EAAKnmC,SAAWg+C,EAAKh+C,QAAUmmC,EAAKuP,OAAM,SAAUioB,EAAKlyD,GAC9D,OAAOkyD,IAAQ3f,EAAKvyC,SAInB,SAASu3sB,GAAWC,GACzB,IAAIC,EAAiBC,EACjB9/rB,GAAOsvgB,EAAAA,GAAAA,QAAOswL,GAAmBA,EAAgB5/rB,KAAKA,KAAO4/rB,EAAgB5/rB,KAGjF,SAAoB,oBAATA,GAAgE,QAAtC6/rB,EAAkB7/rB,EAAKne,iBAA2C,IAApBg+sB,GAA8BA,EAAgBjksB,YAKlG,oBAApBgksB,GAA4F,QAAvDE,EAAwBF,EAAgB/9sB,iBAAiD,IAA1Bi+sB,GAAoCA,EAAsBlksB,wBCtD5J,SAAS,GAAyBouG,EAAQuif,GACvD,GAAc,MAAVvif,EAAgB,MAAO,GAC3B,IACI3mH,EAAK+E,EADLnF,GAAS,EAAA88sB,GAAA,GAA6B/1lB,EAAQuif,GAElD,GAAIppmB,OAAOsshB,sBAAuB,CAChC,IAAIuwL,EAAmB78sB,OAAOsshB,sBAAsBzla,GACpD,IAAK5hH,EAAI,EAAGA,EAAI43sB,EAAiBrjtB,OAAQyL,IACvC/E,EAAM28sB,EAAiB53sB,GACnBmkmB,EAAS/pmB,QAAQa,IAAQ,GACxBF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKktH,EAAQ3mH,KACxDJ,EAAOI,GAAO2mH,EAAO3mH,IAGzB,OAAOJ,ECbT,IAAI0tR,GAAY,CAAC,YAEN4uU,GAAuBP,GAAAA,cAAoB,IACvC,SAASihH,GAAe58d,GACrC,IAAIj8O,EAAWi8O,EAAKj8O,SAClBy0G,EAAQqkmB,GAAyB78d,EAAMstC,IACzC,OAAoBquU,GAAAA,cAAoBO,GAAQjif,SAAU,CACxDr/G,MAAO49G,GACNz0G,GCJL,IAAI+4sB,GAA0B,SAAUC,IACtCn0G,EAAAA,EAAAA,GAAUk0G,EAAYC,GACtB,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAa20G,GAC1B,SAASA,IAEP,OADA11G,EAAAA,EAAAA,GAAgBpumB,KAAM8jtB,GACfvvlB,EAAOvuG,MAAMhmB,KAAM+H,WAQ5B,OANA0mmB,EAAAA,EAAAA,GAAaq1G,EAAY,CAAC,CACxB98sB,IAAK,SACLpF,MAAO,WACL,OAAO5B,KAAKw/G,MAAMz0G,aAGf+4sB,EAbqB,CAc5BnhH,GAAAA,WACF,MCbe,SAASqhH,GAAazvqB,GACnC,IAAI0vqB,EAAathH,GAAAA,QAAa,GAC1BuhH,EAAkBvhH,GAAAA,SAAepujB,GACnC4vqB,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDtitB,EAAQuitB,EAAiB,GACzB58rB,EAAW48rB,EAAiB,GAa9B,OAZAxhH,GAAAA,WAAgB,WAEd,OADAshH,EAAW3le,SAAU,EACd,WACL2le,EAAW3le,SAAU,KAEtB,IAOI,CAAC18O,EANR,SAAsBq5kB,EAASmpI,GACzBA,GAAiBH,EAAW3le,SAGhC/2N,EAAS0zjB,KCvBN,IAAIopI,GAAc,OACdC,GAAgB,SAChBC,GAAe,QACfC,GAAe,QACfC,GAAY,OACZC,GAAe,UACfC,GAAa,QACbC,GAAc,SACdC,GAAiB,MAKjBC,GAAgB,WCT3B,SAASC,GAAcrvd,EAAWzrN,GAChC,IAAI2glB,EAAW,GAMf,OALAA,EAASl1X,EAAUzyN,eAAiBgH,EAAUhH,cAC9C2nlB,EAAS,SAAShvlB,OAAO85N,IAAc,SAAS95N,OAAOqO,GACvD2glB,EAAS,MAAMhvlB,OAAO85N,IAAc,MAAM95N,OAAOqO,GACjD2glB,EAAS,KAAKhvlB,OAAO85N,IAAc,KAAK95N,OAAOqO,GAC/C2glB,EAAS,IAAIhvlB,OAAO85N,IAAc,IAAI95N,OAAOqO,EAAUhH,eAChD2nlB,EAiBT,IAAIo6F,GAfG,SAA2BC,EAAYv1kB,GAC5C,IAAIk7e,EAAW,CACbv2C,aAAc0wI,GAAc,YAAa,gBACzCvwI,cAAeuwI,GAAc,aAAc,kBAU7C,OARIE,IACI,mBAAoBv1kB,UACjBk7e,EAASv2C,aAAa/vW,UAEzB,oBAAqB50F,UAClBk7e,EAASp2C,cAAcvvW,YAG3B2lZ,EAEYs6F,CAAkBvzL,KAA+B,qBAAXlsgB,OAAyBA,OAAS,IACzFxH,GAAQ,GACZ,GAAI0zgB,KAAa,CACf,IAAIwzL,GAAwB3itB,SAAS4gC,cAAc,OACnDnlB,GAAQknsB,GAAsBlnsB,MAEhC,IAAImnsB,GAAqB,GAClB,SAASC,GAA2Bp7qB,GACzC,GAAIm7qB,GAAmBn7qB,GACrB,OAAOm7qB,GAAmBn7qB,GAE5B,IAAIq7qB,EAAYN,GAAe/6qB,GAC/B,GAAIq7qB,EAGF,IAFA,IAAIC,EAAgBz+sB,OAAOC,KAAKu+sB,GAC5B9tqB,EAAM+tqB,EAAcjltB,OACfyL,EAAI,EAAGA,EAAIyrC,EAAKzrC,GAAK,EAAG,CAC/B,IAAI2pP,EAAY6vd,EAAcx5sB,GAC9B,GAAIjF,OAAOtB,UAAUsxE,eAAer2E,KAAK6ktB,EAAW5vd,IAAcA,KAAaz3O,GAE7E,OADAmnsB,GAAmBn7qB,GAAaq7qB,EAAU5vd,GACnC0vd,GAAmBn7qB,GAIhC,MAAO,GAET,IAAIu7qB,GAA2BH,GAA2B,gBACtDI,GAA4BJ,GAA2B,iBAChDK,MAAuBF,KAA4BC,IACnDE,GAAmBH,IAA4B,eAC/CI,GAAoBH,IAA6B,gBACrD,SAASI,GAAkBC,EAAgBC,GAChD,IAAKD,EAAgB,OAAO,KAC5B,GAAgC,YAA5B57G,EAAAA,GAAAA,GAAQ47G,GAA8B,CACxC,IAAInisB,EAAOoisB,EAAer9pB,QAAQ,QAAQ,SAAU/mC,GAClD,OAAOA,EAAM,GAAG+jG,iBAElB,OAAOogmB,EAAenisB,GAExB,MAAO,GAAGiY,OAAOkqrB,EAAgB,KAAKlqrB,OAAOmqrB,GC/D/C,ICEA,GADgCnpB,KAAc96G,GAAAA,gBAAkBH,GAAAA,UCJ5DqkI,GAAM,SAAax3pB,GACrB,OAAQ3rD,WAAW2rD,EAAU,KAE3By3pB,GAAM,SAAar/pB,GACrB,OAAO1oB,aAAa0oB,IAEA,qBAAXnhC,QAA0B,0BAA2BA,SAC9DugsB,GAAM,SAAax3pB,GACjB,OAAO/oC,OAAOwqH,sBAAsBzhF,IAEtCy3pB,GAAM,SAAa9msB,GACjB,OAAOsG,OAAOm3M,qBAAqBz9M,KAGvC,IAAI+msB,GAAU,EACVC,GAAS,IAAI3ud,IACjB,SAASnsF,GAAQphK,GACfk8sB,GAAOv4d,OAAO3jP,GAEhB,IAAIm8sB,GAAa,SAAoB53pB,GACnC,IAAIomE,EAAQ7sH,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAE5EkC,EADJi8sB,IAAW,EAEX,SAASG,EAAQC,GACf,GAAkB,IAAdA,EAEFj7iB,GAAQphK,GAGRukD,QACK,CAEL,IAAI+3pB,EAASP,IAAI,WACfK,EAAQC,EAAY,MAItBH,GAAOnhpB,IAAI/6D,EAAIs8sB,IAInB,OADAF,EAAQzxlB,GACD3qH,GAETm8sB,GAAWrgrB,OAAS,SAAU97B,GAC5B,IAAIs8sB,EAASJ,GAAOtmsB,IAAI5V,GAExB,OADAohK,GAAQk7iB,GACDN,GAAIM,IAEb,UC1CIC,GAAkB,CAAC9B,GAAcC,GAAYC,GAAaC,IAC1D4B,GAAoB,CAAC/B,GAAcI,IAMhC,SAASvib,GAASlkP,GACvB,OAAOA,IAASumqB,IAAevmqB,IAASwmqB,GAE1C,gBAA0BntqB,EAAQgvqB,EAAal4pB,GAC7C,IAAIm4pB,EAAYzkI,GAASuiI,IACvBmC,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCtoqB,EAAOuoqB,EAAW,GAClBC,EAAUD,EAAW,GACnBE,ECnBN,WACE,IAAIC,EAAepkH,GAAAA,OAAa,MAChC,SAASqkH,IACPhB,GAAAA,OAAWe,EAAazoe,SAuB1B,OALAqkX,GAAAA,WAAgB,WACd,OAAO,WACLqkH,OAED,IACI,CArBP,SAASh3kB,EAAUxhF,GACjB,IAAIsvE,EAAQ/1H,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAChFi/sB,IACA,IAAIC,EAAcjB,IAAI,WAChBlolB,GAAS,EACXtvE,EAAS,CACP04pB,WAAY,WACV,OAAOD,IAAgBF,EAAazoe,WAIxCtuG,EAAUxhF,EAAUsvE,EAAQ,MAGhCiplB,EAAazoe,QAAU2oe,GAOND,GDPCG,GAClBC,GAAiB/2G,EAAAA,EAAAA,GAAey2G,EAAe,GAC/C92kB,EAAYo3kB,EAAe,GAC3BJ,EAAkBI,EAAe,GAInC,IAAIC,EAAaX,EAAcD,GAAoBD,GAgCnD,OA/BAc,IAA0B,WACxB,GAAIjpqB,IAASomqB,IAAapmqB,IAASwmqB,GAAgB,CACjD,IAAIhktB,EAAQwmtB,EAAWlhtB,QAAQk4C,GAC3BkpqB,EAAWF,EAAWxmtB,EAAQ,GAC9BgO,EAAS2/C,EAASnQ,GAvBN,QAwBZxvC,EAEFg4sB,EAAQU,GAAU,GACTA,GAETv3kB,GAAU,SAAUphH,GAClB,SAASq+C,IAEHr+C,EAAKs4rB,cACTL,EAAQU,GAAU,IAEL,IAAX14sB,EACFo+D,IAGA9uB,QAAQ/tC,QAAQvB,GAAQ2vC,KAAKyuB,SAKpC,CAACv1B,EAAQ2G,IACZskjB,GAAAA,WAAgB,WACd,OAAO,WACLqkH,OAED,IACI,CAnCP,WACEH,EAAQnC,IAAc,IAkCJrmqB,IElDP,SAASmpqB,GAAUC,EAAe5+sB,EAAS0tI,EAAYywG,GACpE,IAAI0ge,EAAmB1ge,EAAK2ge,YAC1BA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAoB5ge,EAAK6ge,aACzBA,OAAqC,IAAtBD,GAAsCA,EACrDE,EAAmB9ge,EAAK+ge,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAiBhhe,EAAKghe,eACtBC,EAAyBjhe,EAAKihe,uBAC9BC,EAAkBlhe,EAAKkhe,gBACvBC,EAAiBnhe,EAAKmhe,eACtBC,EAAiBphe,EAAKohe,eACtBC,EAAgBrhe,EAAKqhe,cACrBC,EAAethe,EAAKshe,aACpBC,EAAevhe,EAAKuhe,aACpBC,EAAiBxhe,EAAKwhe,eACtBC,EAAgBzhe,EAAKyhe,cACrBC,EAAgB1he,EAAK0he,cACrBC,EAAc3he,EAAK2he,YACnBC,EAAa5he,EAAK4he,WAClBC,EAAa7he,EAAK6he,WAClBC,EAAmB9he,EAAK8he,iBAEtBnC,EAAYzkI,KACd0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCoC,EAAenC,EAAW,GAC1BoC,EAAkBpC,EAAW,GAC3BqC,EAAa/mI,GAASmiI,IACxB6E,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxCvxqB,EAASwxqB,EAAW,GACpBC,EAAYD,EAAW,GACrBE,EAAalnI,GAAS,MACxBmnI,GAAah5G,EAAAA,EAAAA,GAAe+4G,EAAY,GACxCnrsB,EAAQorsB,EAAW,GACnB7mlB,EAAW6mlB,EAAW,GACpBC,GAAarnI,EAAAA,GAAAA,SAAO,GACpBsnI,GAActnI,EAAAA,GAAAA,QAAO,MAGzB,SAASunI,IACP,OAAOjzkB,IAIT,IAAIkzkB,GAAYxnI,EAAAA,GAAAA,SAAO,GAKvB,SAASynI,IACPP,EAAU9E,IAAa,GACvB7hlB,EAAS,MAAM,GAEjB,SAASmnlB,EAAoBnvsB,GAC3B,IAAI1a,EAAU0ptB,IACd,IAAIhvsB,GAAUA,EAAMovsB,UAAYpvsB,EAAM5T,SAAW9G,EAAjD,CAMA,IACI+ptB,EADAC,EAAgBL,EAAUnre,QAE1B5mM,IAAW4sqB,IAAiBwF,EAC9BD,EAAyB,OAAhBlB,QAAwC,IAAhBA,OAAyB,EAASA,EAAY7otB,EAAS0a,GAC/Ek9B,IAAW6sqB,IAAgBuF,EACpCD,EAAwB,OAAfjB,QAAsC,IAAfA,OAAwB,EAASA,EAAW9otB,EAAS0a,GAC5Ek9B,IAAW8sqB,IAAgBsF,IACpCD,EAAwB,OAAfhB,QAAsC,IAAfA,OAAwB,EAASA,EAAW/otB,EAAS0a,IAInFk9B,IAAW2sqB,IAAeyF,IAA4B,IAAXD,GAC7CH,KAGJ,IAAIK,ELnFN,SAA0Bv7pB,GACxB,IAAIw7pB,GAAkB/nI,EAAAA,GAAAA,UAGlBgoI,GAAchoI,EAAAA,GAAAA,QAAOzzhB,GACzBy7pB,EAAY3re,QAAU9vL,EAGtB,IAAIm7pB,EAAsBhnH,GAAAA,aAAkB,SAAUnolB,GACpDyvsB,EAAY3re,QAAQ9jO,KACnB,IAGH,SAAS0vsB,EAAmBpqtB,GACtBA,IACFA,EAAQK,oBAAoByltB,GAAmB+D,GAC/C7ptB,EAAQK,oBAAoBwltB,GAAkBgE,IAwBlD,OALAhnH,GAAAA,WAAgB,WACd,OAAO,WACLunH,EAAmBF,EAAgB1re,YAEpC,IACI,CAnBP,SAA2Bx+O,GACrBkqtB,EAAgB1re,SAAW0re,EAAgB1re,UAAYx+O,GACzDoqtB,EAAmBF,EAAgB1re,SAEjCx+O,GAAWA,IAAYkqtB,EAAgB1re,UACzCx+O,EAAQY,iBAAiBkltB,GAAmB+D,GAC5C7ptB,EAAQY,iBAAiBiltB,GAAkBgE,GAG3CK,EAAgB1re,QAAUx+O,IAUHoqtB,GK2CDC,CAAmBR,GAE3CS,GADuB/5G,EAAAA,EAAAA,GAAe05G,EAAqB,GAClB,GAGvCM,EAAmB,SAA0BC,GAC/C,IAAInie,EAAOS,EAAO+vD,EAClB,OAAQ2xa,GACN,KAAKhG,GACH,OAAOn8d,EAAQ,IAAItuK,EAAAA,EAAAA,GAAgBsuK,EAAOu8d,GAAcwD,IAAkBruoB,EAAAA,EAAAA,GAAgBsuK,EAAOw8d,GAAY0D,IAAgBxuoB,EAAAA,EAAAA,GAAgBsuK,EAAOy8d,GAAa4D,GAAiBrge,EACpL,KAAKo8d,GACH,OAAO37d,EAAQ,IAAI/uK,EAAAA,EAAAA,GAAgB+uK,EAAO87d,GAAcyD,IAAiBtuoB,EAAAA,EAAAA,GAAgB+uK,EAAO+7d,GAAY2D,IAAezuoB,EAAAA,EAAAA,GAAgB+uK,EAAOg8d,GAAa6D,GAAgB7/d,EACjL,KAAK47d,GACH,OAAO7ra,EAAQ,IAAI9+N,EAAAA,EAAAA,GAAgB8+N,EAAO+ra,GAAc0D,IAAiBvuoB,EAAAA,EAAAA,GAAgB8+N,EAAOgsa,GAAY4D,IAAe1uoB,EAAAA,EAAAA,GAAgB8+N,EAAOisa,GAAa8D,GAAgB/va,EACjL,QACE,MAAO,KAGT4xa,EAAgB5nH,GAAAA,SAAc,WAChC,OAAO0nH,EAAiB3yqB,KACvB,CAACA,IACA8yqB,EAAgBC,GAAa/yqB,GAAS+vqB,GAAe,SAAUiD,GAE/D,GAAIA,IAAYhG,GAAc,CAC5B,IAAIiG,EAAYJ,EAAa,QAC7B,QAAKI,GAGEA,EAAUnB,KAKjB,IAAIoB,EADFvsqB,KAAQksqB,GAEV/nlB,GAA0D,QAA/CoolB,EAAsBL,EAAclsqB,UAA2C,IAAxBusqB,OAAiC,EAASA,EAAoBnqtB,KAAK8ptB,EAAef,IAAiB,QAAU,MAiBjL,OAfInrqB,IAASumqB,KAEXwF,EAAkBZ,KACdxB,EAAiB,IACnB9prB,aAAaqrrB,EAAYjre,SACzBire,EAAYjre,QAAUz7O,YAAW,WAC/B8mtB,EAAoB,CAClBC,UAAU,MAEX5B,KAGH3pqB,IAASymqB,IACX4E,IF3HY,QE+HhBmB,GAAiBx6G,EAAAA,EAAAA,GAAem6G,EAAe,GAC/CM,EAAYD,EAAe,GAC3BxsqB,EAAOwsqB,EAAe,GACpB1/rB,GAASo3Q,GAASlkP,GACtBorqB,EAAUnre,QAAUnzN,GAIpBm8rB,IAA0B,WACxB0B,EAAgBngtB,GAChB,IAOIkitB,EAPAxwI,EAAY+uI,EAAWhre,QAC3Bgre,EAAWhre,SAAU,GAShBi8V,GAAa1xkB,GAAWg/sB,IAC3BkD,EAAazG,IAIX/pI,GAAa1xkB,GAAW8+sB,IAC1BoD,EAAaxG,KAIXhqI,IAAc1xkB,GAAWk/sB,IAAgBxtI,GAAa0tI,IAA2Bp/sB,GAAWk/sB,KAC9FgD,EAAavG,IAEf,IAAIwG,EAAoBX,EAAiBU,GAGrCA,IAAetD,GAAiBuD,EAAiB,UACnD7B,EAAU4B,GACVD,KAGA3B,EAAU9E,MAEX,CAACx7sB,KAIJ84kB,EAAAA,GAAAA,YAAU,YAGRjqiB,IAAW4sqB,KAAkBuD,GAE7BnwqB,IAAW6sqB,KAAiBoD,GAE5BjwqB,IAAW8sqB,KAAiBuD,IAC1BoB,EAAU9E,MAEX,CAACwD,EAAcF,EAAaI,KAC/BpmI,EAAAA,GAAAA,YAAU,WACR,OAAO,WACL2nI,EAAWhre,SAAU,EACrBpgN,aAAaqrrB,EAAYjre,YAE1B,IAGH,IAAI2se,GAAsBtoH,GAAAA,QAAa,IACvChhB,EAAAA,GAAAA,YAAU,WAEJonI,IACFkC,GAAoB3se,SAAU,QAEXlmO,IAAjB2wsB,GAA8BrxqB,IAAW2sqB,MAEvC4G,GAAoB3se,SAAWyqe,KACZ,OAArBD,QAAkD,IAArBA,GAAuCA,EAAiBC,IAEvFkC,GAAoB3se,SAAU,KAE/B,CAACyqe,EAAcrxqB,IAGlB,IAAIsvpB,GAAc/orB,EAMlB,OALIsssB,EAAa,SAAkBlsqB,IAASsmqB,KAC1C3d,GAAclM,EAAc,CAC1B71d,WAAY,QACX+he,KAEE,CAACtvpB,EAAQ2G,EAAM2opB,GAA8B,OAAjB+hB,QAA0C,IAAjBA,EAA0BA,EAAelgtB,GCzFvG,OAtHO,SAAsBymE,GAC3B,IAAI47oB,EAAoB57oB,EACA,YAApB46hB,EAAAA,GAAAA,GAAQ56hB,KACV47oB,EAAoB57oB,EAAO47oB,mBAK7B,IAAIC,EAAyBxoH,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GAC7D,IAAImtpB,EAAiB5rmB,EAAM32G,QACzBA,OAA6B,IAAnBuitB,GAAmCA,EAC7CC,EAAuB7rmB,EAAM8rmB,cAC7BA,OAAyC,IAAzBD,GAAyCA,EACzDE,EAAc/rmB,EAAM+rmB,YACpBxgtB,EAAWy0G,EAAMz0G,SACjBygtB,EAAahsmB,EAAMgsmB,WACnBC,EAAkBjsmB,EAAMismB,gBACxBC,EAAalsmB,EAAMksmB,WAGjBjE,EAfN,SAA6BjomB,EAAOmsmB,GAClC,SAAUnsmB,EAAMgsmB,aAAcN,IAAuC,IAAlBS,GAc/BC,CAAoBpsmB,EAFhBmjf,GAAAA,WAAiBO,IACL2yG,QAIhCgW,GAAU5pI,EAAAA,GAAAA,UAEV6pI,GAAiB7pI,EAAAA,GAAAA,UAarB,IAAI8pI,EAAavE,GAAUC,EAAe5+sB,GAZ1C,WACE,IAKE,OAAOgjtB,EAAQvte,mBAAmBg4U,YAAcu1J,EAAQvte,QAAU2wW,GAAY68H,EAAexte,SAC7F,MAAO99O,IAEP,OAAO,QAGuDg/G,GAChEwsmB,GAAc37G,EAAAA,EAAAA,GAAe07G,EAAY,GACzCr0qB,EAASs0qB,EAAY,GACrBC,EAAaD,EAAY,GACzBE,EAAcF,EAAY,GAC1BG,EAAgBH,EAAY,GAI1BI,EAAczpH,GAAAA,OAAawpH,GAC3BA,IACFC,EAAY9te,SAAU,GAIxB,IAMI+te,EANAC,EAAa3pH,GAAAA,aAAkB,SAAU1shB,GAC3C41oB,EAAQvte,QAAUroK,EAClBitoB,GAAQjlpB,EAAKgY,KACZ,CAAChY,IAIAsupB,EAAczxB,EAAcA,EAAc,GAAI4wB,GAAa,GAAI,CACjE7itB,QAASA,IAEX,GAAKkC,EAGE,GAAI2sC,IAAW2sqB,GAGlBgI,EADEF,EACephtB,EAAS+vrB,EAAc,GAAIyxB,GAAcD,IAChDhB,GAAiBc,EAAY9te,SAAWmte,EACjC1gtB,EAAS+vrB,EAAcA,EAAc,GAAIyxB,GAAc,GAAI,CAC1El+sB,UAAWo9sB,IACTa,GACKf,IAAgBD,IAAkBG,EAC1B1gtB,EAAS+vrB,EAAcA,EAAc,GAAIyxB,GAAc,GAAI,CAC1EtusB,MAAO,CACLoB,QAAS,UAETitsB,GAEa,SAEd,CACL,IAAIE,EAEAC,EACAR,IAAevH,GACjB+H,EAAe,UACNlqb,GAAS0pb,GAClBQ,EAAe,SACNR,IAAetH,KACxB8H,EAAe,SAEjB,IAAIC,EAAY7G,GAAkB2F,EAAY,GAAG5vrB,OAAO8b,EAAQ,KAAK9b,OAAO6wrB,IAC5EJ,EAAiBthtB,EAAS+vrB,EAAcA,EAAc,GAAIyxB,GAAc,GAAI,CAC1El+sB,UAAW2+M,IAAAA,CAAW64f,GAAkB2F,EAAY9zqB,IAAU80qB,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAaE,EAAWA,GAAaD,IAAe5yoB,EAAAA,EAAAA,GAAgB2yoB,EAAahB,EAAkC,kBAAfA,GAA0BgB,IAC9NvusB,MAAOiusB,IACLI,QAjCJD,EAAiB,KAqCD1pH,GAAAA,eAAqB0pH,IAAmB/I,GAAW+I,KACxDA,EACYpupB,MAErBoupB,EAA8B1pH,GAAAA,aAAmB0pH,EAAgB,CAC/DpupB,IAAKqupB,MAIX,OAAoB3pH,GAAAA,cAAoBmhH,GAAY,CAClD7lpB,IAAK6tpB,GACJO,MAGL,OADAlB,EAAUj8sB,YAAc,YACjBi8sB,EAET,CAA4BzF,ICxIjBiH,GAAa,MACbC,GAAc,OACdC,GAAgB,SAChBC,GAAiB,UACrB,SAASC,GAAgB/ltB,GAC9B,IAAIgmtB,EAQJ,OAAOlyB,EAAcA,EAAc,GANjCkyB,EADEhmtB,GAAwB,YAAjBkjmB,EAAAA,GAAAA,GAAQljmB,IAAqB,QAASA,EACtCA,EAEA,CACPA,IAAKA,IAGuC,GAAI,CAClDA,IAAK6+D,OAAOmnpB,EAAOhmtB,OAGhB,SAASy7K,KACd,IAAI17K,EAAOgB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC/E,OAAOhB,EAAKb,IAAI6mtB,IAEX,SAASE,KACd,IAAIC,EAAWnltB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC/Eivc,EAAcjvc,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAClFm5D,EAAO,GACP15D,EAAe,EACf2ltB,EAAan2Q,EAAY12c,OACzB8stB,EAAiB3qiB,GAAUyqiB,GAC3BG,EAAoB5qiB,GAAUu0R,GAGlCo2Q,EAAenttB,SAAQ,SAAU+stB,GAE/B,IADA,IAAIM,GAAM,EACDvhtB,EAAIvE,EAAcuE,EAAIohtB,EAAYphtB,GAAK,EAAG,CACjD,IAAIwhtB,EAAgBF,EAAkBthtB,GACtC,GAAIwhtB,EAAcvmtB,MAAQgmtB,EAAOhmtB,IAAK,CAEhCQ,EAAeuE,IACjBm1D,EAAOA,EAAKtlC,OAAOyxrB,EAAkB5ntB,MAAM+B,EAAcuE,GAAG7F,KAAI,SAAUwnE,GACxE,OAAOotnB,EAAcA,EAAc,GAAIptnB,GAAM,GAAI,CAC/Ch2B,OAAQi1qB,SAGZnltB,EAAeuE,GAEjBm1D,EAAKtgE,KAAKk6rB,EAAcA,EAAc,GAAIyyB,GAAgB,GAAI,CAC5D71qB,OAAQk1qB,MAEVpltB,GAAgB,EAChB8ltB,GAAM,EACN,OAKCA,GACHpspB,EAAKtgE,KAAKk6rB,EAAcA,EAAc,GAAIkyB,GAAS,GAAI,CACrDt1qB,OAAQm1qB,SAMVrltB,EAAe2ltB,IACjBjspB,EAAOA,EAAKtlC,OAAOyxrB,EAAkB5ntB,MAAM+B,GAActB,KAAI,SAAUwnE,GACrE,OAAOotnB,EAAcA,EAAc,GAAIptnB,GAAM,GAAI,CAC/Ch2B,OAAQi1qB,UASd,IAAI5ltB,EAAO,GACXm6D,EAAKjhE,SAAQ,SAAU+mP,GACrB,IAAIhgP,EAAMggP,EAAKhgP,IACfD,EAAKC,IAAQD,EAAKC,IAAQ,GAAK,KAEjC,IAAIwmtB,EAAiB1mtB,OAAOC,KAAKA,GAAMnB,QAAO,SAAUoB,GACtD,OAAOD,EAAKC,GAAO,KAkBrB,OAhBAwmtB,EAAevttB,SAAQ,SAAUwttB,IAE/BvspB,EAAOA,EAAKt7D,QAAO,SAAUuiP,GAC3B,IAAInhP,EAAMmhP,EAAMnhP,IACd0wC,EAASywM,EAAMzwM,OACjB,OAAO1wC,IAAQymtB,GAAY/1qB,IAAWm1qB,OAInC5stB,SAAQ,SAAUg2E,GACjBA,EAAKjvE,MAAQymtB,IAEfx3oB,EAAKv+B,OAASk1qB,UAIb1rpB,EC5FT,IAAIozN,GAAY,CAAC,YAAa,WAAY,mBAAoB,gBAC5Dm6C,GAAa,CAAC,UAMZi/Y,GAAoB,CAAC,aAAc,UAAW,WAAY,aAAc,eAAgB,cAAe,cAAe,yBAA0B,iBAAkB,gBAAiB,kBAAmB,gBAAiB,iBAAkB,cAAe,eAAgB,gBAAiB,aAAc,eAAgB,gBAAiB,cA+G5U,OAzGO,SAA0BxC,GAC/B,IAAIC,EAAYpjtB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK4ltB,GAChFC,EAA6B,SAAU7J,IACzCn0G,EAAAA,EAAAA,GAAUg+G,EAAe7J,GACzB,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAay+G,GAC1B,SAASA,IACP,IAAIn5oB,GACJ25hB,EAAAA,EAAAA,GAAgBpumB,KAAM4ttB,GACtB,IAAK,IAAI71e,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAsBzB,OApBAvjK,EAAQ8/C,EAAO9zH,KAAKulB,MAAMuuG,EAAQ,CAACv0H,MAAM47B,OAAOpV,KAChDqzD,EAAAA,EAAAA,IAAgBq0hB,EAAAA,EAAAA,GAAuBz5hB,GAAQ,QAAS,CACtDo5oB,YAAa,MAEfh0oB,EAAAA,EAAAA,IAAgBq0hB,EAAAA,EAAAA,GAAuBz5hB,GAAQ,aAAa,SAAUq5oB,GACpE,IACIC,EADct5oB,EAAM0iB,MAAM02nB,YACI3ntB,KAAI,SAAUolE,GAC9C,OAAIA,EAAOtkE,MAAQ8mtB,EAAkBxipB,EAC9BwvnB,EAAcA,EAAc,GAAIxvnB,GAAS,GAAI,CAClD5zB,OAAQo1qB,QAMZ,OAHAr4oB,EAAM8kE,SAAS,CACbs0kB,YAAaE,IAERA,EAAgBnotB,QAAO,SAAUohP,GAEtC,OADaA,EAAKtvM,SACAo1qB,MACjBxstB,UAEEm0E,EAmET,OAjEAg6hB,EAAAA,EAAAA,GAAam/G,EAAe,CAAC,CAC3B5mtB,IAAK,SACLpF,MAAO,WACL,IAAI0ta,EAAStva,KACT6ttB,EAAc7ttB,KAAKm3F,MAAM02nB,YACzBj+Y,EAAc5vU,KAAKw/G,MACrBnxF,EAAYuhT,EAAYvhT,UACxBtjB,EAAW6kU,EAAY7kU,SACvBijtB,EAAoBp+Y,EAAYk5Y,iBAChCmF,EAAer+Y,EAAYq+Y,aAC3Bv+Y,EAAYm0Y,GAAyBj0Y,EAAat7C,IAChD70K,EAAYpxF,GAAas0kB,GAAAA,SACzBurH,EAAc,GAMlB,OALAR,GAAkBzttB,SAAQ,SAAUwmH,GAClCynmB,EAAYznmB,GAAQipN,EAAUjpN,UACvBipN,EAAUjpN,aAEZipN,EAAU3oU,KACG47lB,GAAAA,cAAoBljf,EAAWiwN,EAAWm+Y,EAAY3ntB,KAAI,SAAUiiP,GACtF,IAAIzwM,EAASywM,EAAMzwM,OACjBg0qB,EAAa7H,GAAyB17d,EAAOsmF,IAC3C5lU,EAAU6uC,IAAWi1qB,IAAcj1qB,IAAWk1qB,GAClD,OAAoBjqH,GAAAA,cAAoBwoH,GAAWlzf,EAAAA,GAAAA,GAAS,GAAIi2f,EAAa,CAC3ElntB,IAAK0ktB,EAAW1ktB,IAChB6B,QAASA,EACT6itB,WAAYA,EACZ5C,iBAAkB,SAA0BqF,IACpB,OAAtBH,QAAoD,IAAtBA,GAAwCA,EAAkBG,EAAgB,CACtGnntB,IAAK0ktB,EAAW1ktB,MAEbmntB,IAEmB,IADF7+S,EAAOw+S,UAAUpC,EAAW1ktB,MACrBintB,GACzBA,OAIJljtB,UAGN,CAAC,CACH/D,IAAK,2BACLpF,MAAO,SAAkCgnP,EAAO+vD,GAC9C,IAAI5xS,EAAO6hP,EAAM7hP,KACb8mtB,EAAcl1a,EAAMk1a,YACpBO,EAAmB3riB,GAAU17K,GAEjC,MAAO,CACL8mtB,YAFqBZ,GAASY,EAAaO,GAEbxotB,QAAO,SAAU0lE,GAC7C,IAAI+ipB,EAAaR,EAAYxxsB,MAAK,SAAUu8R,GAC1C,IAAI5xS,EAAM4xS,EAAM5xS,IAChB,OAAOskE,EAAOtkE,MAAQA,KAIxB,OAAIqntB,GAAcA,EAAW32qB,SAAWo1qB,IAAkBxhpB,EAAO5zB,SAAWm1qB,WAU7Ee,EAhGwB,CAiG/BjrH,GAAAA,WAIF,OAHA9ohB,EAAAA,EAAAA,GAAgB+zoB,EAAe,eAAgB,CAC7Cv/rB,UAAW,QAENu/rB,EAET,CAAgClI,IC3HhC,MCHA,SAAS4I,GAAcl1qB,GACrB,OAAOA,GAAS,GAAKA,GAAS,IAuChC,OArCA,SAAuBm1qB,EAAYlrrB,GACjC,MAKI,IAAIyyqB,GAAUyY,GAAYlY,QAJzBmY,EADL,EACEjopB,EACGkopB,EAFL,EAEEjopB,EACGkopB,EAHL,EAGEhpqB,EAGF,GANA,EAIED,EAEgB,EAChB,OAAO8oqB,EAOT,IALA,MAII,IAAIzY,GAAUzyqB,GAAiBgzqB,QAH9BsY,EADL,EACEpopB,EACGqopB,EAFL,EAEEpopB,EACGqopB,EAHL,EAGEnpqB,EAEOopqB,EAAK,IAAMA,GAAM,EAAGA,GAAM,IAAM,CACvC,IAAMvopB,EAAI5gD,KAAK6H,OAAOghsB,EAAKG,GAAM,EAAIG,IAAOA,GACtCtopB,EAAI7gD,KAAK6H,OAAOihsB,EAAKG,GAAM,EAAIE,IAAOA,GACtCppqB,EAAI//B,KAAK6H,OAAOkhsB,EAAKG,GAAM,EAAIC,IAAOA,GAC5C,GAAIR,GAAc/npB,IAAM+npB,GAAc9npB,IAAM8npB,GAAc5oqB,GACxD,OAAO,IAAIowpB,GAAU,CACnBvvoB,EAAAA,EACAC,EAAAA,EACA9gB,EAAAA,EACAD,EAAG9/B,KAAK6H,MAAW,IAALshsB,GAAY,MACzBvX,cAKP,OAAO,IAAIzB,GAAU,CACnBvvoB,EAAGiopB,EACHhopB,EAAGiopB,EACH/oqB,EAAGgpqB,EACHjpqB,EAAG,IACF8xpB,eCvCDzvG,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAUM,SAAS64pB,GAAYC,GAC5B,IACFpjG,EACEojG,EADFpjG,SAEFqjG,EAAYnnH,GAAOknH,EAAiB,CAAC,aACjCE,EAAiBpotB,OAAOw4C,OAAO,GAAIsskB,GACzC9knB,OAAOC,KAAKootB,IAAWlvtB,SAAQ,SAAAomF,UACtB6ooB,EAAe7ooB,MAExB,IAAM+ooB,EAActotB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI2vqB,GAAYC,GAK1DG,EAAW,KACXC,EAAY,KAElB,IAA2B,IAAvBF,EAAYvZ,OAAkB,CAChC,IAAM0Z,EAAe,KACrBH,EAAYvO,mBAAqB0O,EACjCH,EAAYtO,kBAAoByO,EAChCH,EAAYrO,mBAAqBwO,EAyInC,OAtImBzotB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8vqB,GAAc,CAE7EI,iBAAkBJ,EAAYjR,mBAC9BsR,sBAAuBL,EAAYlR,UACnCwR,eAAgBN,EAAY/Q,oBAC5BsR,yBAA0BP,EAAYhR,kBAEtCwR,cAAeR,EAAY7Q,iBAC3BsR,WAAYpS,GAAc2R,EAAYzQ,qBAAsByQ,EAAY7Q,kBAExEuR,qBAAsBV,EAAYnR,oBAClC8R,kBAAmBX,EAAYnR,oBAC/B+R,iBAAkBZ,EAAYtR,UAC9BmS,eAAgBb,EAAYrR,mBAC5BmS,qBAAsBd,EAAYpR,kBAClCmS,oBAAqBf,EAAYrS,WACjCqT,eAAgBhB,EAAY/a,WAC5Bgc,iBAAkBjB,EAAYjR,mBAC9BmS,kBAAmBlB,EAAYlR,UAC/BqS,UAAWnB,EAAYpR,kBACvBwS,eAAgBpB,EAAYtR,UAC5B2S,kBAAmBhT,GAAc2R,EAAYnU,aAAcmU,EAAY7Q,kBACvEmS,oBAAqBjT,GAAc2R,EAAY1T,eAAgB0T,EAAY7Q,kBAE3EoS,aAAcvB,EAAYnQ,WAE1B2R,eAAwC,EAAxBxB,EAAY5tM,UAE5BA,UAAW4tM,EAAY5tM,UACvBqvM,oBAA6C,EAAxBzB,EAAY5tM,UAEjCsvM,uBAAwB1B,EAAYvb,cAAgB,EACpDkd,mBAAoB3B,EAAYhR,kBAChC4S,oBAAqB5B,EAAYrV,eACjCkX,yBAA0B7B,EAAYpV,oBACtCkX,4BAA6B9B,EAAYlR,UACzCiT,kBAAmB/B,EAAY/Q,oBAC/B+S,eAAgB3T,GAAc2R,EAAYrV,eAAgBqV,EAAY7Q,kBACtE5J,SAAUya,EAAYza,SACtBhwD,aAAcyqE,EAAYzqE,aAC1B04D,eAAgB+R,EAAY/R,eAC5BC,eAAgB8R,EAAY9R,eAC5BC,eAAgB6R,EAAY7R,eAC5B8T,iBAAkB,IAClBC,eAAgB,IAChBC,eAAgB,OAChBC,oBAAqB,OACrBC,oBAAqB,OACrBC,yBAA0B,GAC1BC,2BAA4B,EAC5BC,WAAYxC,EAAY1O,QACxBmR,UAAWzC,EAAY3O,OACvBqR,UAAW1C,EAAY5O,OACvBryrB,QAASihsB,EAAY52sB,KACrBu5sB,UAAW3C,EAAY9O,OACvB0R,UAAW5C,EAAY/O,OACvB4R,UAAW7C,EAAYhP,OACvB8R,2BAA4B9C,EAAY/O,OACxC8R,yBAA0B/C,EAAY7O,OACtC6R,yBAA0BhD,EAAY7O,OACtC8R,uBAAwBjD,EAAY5O,OACpC8R,2BAA4BlD,EAAY52sB,KACxC+5sB,yBAA0BnD,EAAY3O,OACtC+R,UAAWpD,EAAY1O,QACvB+R,SAAUrD,EAAY3O,OACtBiS,SAAUtD,EAAY5O,OACtBl8gB,OAAQ8qhB,EAAY52sB,KACpBm6sB,SAAUvD,EAAY9O,OACtBsS,SAAUxD,EAAY/O,OACtBwS,SAAUzD,EAAYhP,OACtB0S,UAAW1D,EAAYjP,QACvB4S,UAAW,uIAKXC,mBAAoB,uIAKpBC,kBAAmB,mIAKnBC,SApGe,IAqGfC,YArGe,IAsGfC,YAAaC,IACbA,SAtGe,IAuGfC,YAvGe,IAwGfC,YAAaC,IACbA,SAxGe,IAyGfC,YAzGe,IA0GfC,YAAaC,IACbA,SA1Ge,IA2GfC,YA3Ge,IA4GfC,YAAaxE,KACbA,SAAAA,EACAyE,YAAazE,EACb0E,YAAazE,KACbA,UAAAA,EACA0E,aAAc1E,EACd2E,sBAAuB,kCACvBC,cAAe,0BAAF,OACM,IAAIpe,GAAU,uBAAuByB,cAD3C,gCAEG,IAAIzB,GAAU,uBAAuByB,cAFxC,mCAGM,IAAIzB,GAAU,uBAAuByB,cAH3C,UAKb4c,qBAAsB,0IAKtBC,oBAAqB,uIAKrBC,kBAAmB,uIAKnBC,oBAAqB,0IAKrBC,0BAA2B,4CAC3BC,2BAA4B,6CAC5BC,yBAA0B,4CAC1BC,4BAA6B,+CAC3BxF,GC7KN,IAAIpnH,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAQI0soB,GAAmB,SAAnBA,EAAoBC,EAAaC,EAAevyqB,GAC3D,IAAMy+rB,EAAkBz+rB,EAAMyyqB,mBAAmBH,GAE7Cj3E,EACEk3E,EADFl3E,SAEFl2kB,EAAaoyjB,GAAOg7F,EAAe,CAAC,aAElCC,EAAwBj8rB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI0vqB,GAAkB,CAC5EpjG,SAAAA,IAoBF,OAjBAm3E,EAAwBgsB,GAAYhsB,GAChCrtpB,GACF5uC,OAAOg+G,QAAQpvE,GAAYz1C,SAAQ,SAAA+mP,GACjC,cAAmBA,EAAnB,GAAKhgP,EAAL,KAAUpF,EAAV,KAEW+ytB,EACL/ytB,EADF2uB,MAEFqksB,EAAkB9sH,GAAOlmmB,EAAO,CAAC,UAC/BiztB,EAAuBD,EACvBD,IACFE,EAAuBjyB,EAAiB97rB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIyjpB,GAAwB6xB,GAAkB,CAChHhpG,SAAUgpG,GACTD,IAEL5xB,EAAsB/7rB,GAAO6ttB,KAG1B9xB,GAGM,SAAS+xB,KACtB,MAKInyH,GAAAA,WAAiB2+G,IAJZyT,EADT,EACE1uoB,MACAg7nB,EAFF,EAEEA,OACA9wrB,EAHF,EAGEA,MACAmlB,EAJF,EAIEA,WAEIyqpB,EAAO,GAAH,OCpDZ,QDoDY,YAAiBkhB,GAAU,IAC/B2T,EAAczksB,GAASm/f,GAC7B,EtEaa,SAAuBn/f,EAAOo5D,GAC3C,IAAI9kE,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAE/Ei0rB,GADgBt6G,EAAAA,GAAAA,YAAW+6G,IACF98oB,MAAMq8oB,WAC7Bi5B,EAAepwsB,EAAOs7qB,KACxBA,OAAwB,IAAjB80B,EAA0B,GAAKA,EACtCC,EAAmBrwsB,EAAO+mmB,SAC1BA,OAAgC,IAArBspG,EAA8B9yB,GAAiB8yB,EAC1DnG,EAAclqsB,EAAOkqsB,YACrBoG,EAAUtwsB,EAAO+9qB,iBAGfwsB,EAAczsH,GAAAA,SAAc,WAC9B,OAAO77lB,OAAOw4C,OAAOt5B,MAAMlf,OAAQ,CAAC,IAAI80B,QAAOi1kB,EAAAA,EAAAA,GAAmBlnhB,OACjE,CAACA,IACAyroB,EAAWzyH,GAAAA,SAAc,WAC3B,OAAOs9F,GAAamvB,KACnB,CAACA,IACAiG,EAAmB1yH,GAAAA,SAAc,WACnC,OAAOs9F,GAAar0E,KACnB,CAACA,IACA0pG,EAAch0B,GAAe,QAAS,CAACnB,EAAM5vqB,EAAMtmB,GAAImrtB,EAAUC,IAAmB,WACtF,IAAItyB,EAAwBoyB,EAAUA,EAAQ/F,EAAaxjG,EAAUr7lB,GAASqyqB,GAAiBwsB,EAAaxjG,EAAUr7lB,EAAOw+rB,GAGzHxsB,EAAWrC,GAAU6C,EAAuB5C,GAChD4C,EAAsB2F,UAAYnG,EAClCD,GAAiBC,GACjB,IAAI3zjB,EAAS,GAAGhzG,OAnFsE,MAmFnD,KAAKA,OAAOytD,GAAKk5mB,IAGpD,OAFAQ,EAAsBwyB,QAAU3mlB,EAEzB,CAACm0jB,EAAuBn0jB,MAC9B,SAAUjvF,GAEX6ipB,GAAgB7ipB,EAAM,GAAG+opB,UAAW1M,MAEtC,OAAOs5B,EsEjDiBE,CAAcR,EAAa,CAAC5T,GAAkB2T,GAAkB,CACtF50B,KAAAA,EACAv0E,SAAU9knB,OAAOw4C,OAAO,CACtBsskB,SAAUmpG,GACTr/qB,GACHktpB,iBAAAA,GAGAmsB,YAAAA,KARF,eAAO1ooB,EAAP,KAAcuoD,EAAd,KAUA,MAAO,CAAComlB,EAAa3uoB,EAAOg7nB,EAASzykB,EAAS,IE7DjC,SAAS6mlB,GAAcj2mB,GACpC,IACEz0G,EACEy0G,EADFz0G,SAEF,EAAkB+ptB,KAEhBjf,GAFF,eAEEA,OAEI6f,EAA4B/yH,GAAAA,QAAa,GAE/C,OADA+yH,EAA0Bp3e,QAAUo3e,EAA0Bp3e,UAAsB,IAAXu3d,EACrE6f,EAA0Bp3e,QACRqkX,GAAAA,cAAoBihH,GAAgB,CACtD/N,OAAQA,GACP9qsB,GAEEA,ECdF,ICyCH82sB,GACA8T,GACAC,GD3CSC,GAAe,CAC1B1zlB,SAAU,SACV0c,WAAY,SACZmsX,aAAc,YAEH8qN,GAAiB,SAAAzvoB,GAAK,MAAK,CACtC43L,UAAW,aACX35E,OAAQ,EACRn2K,QAAS,EACTirB,MAAOitC,EAAMy3nB,UACbljqB,SAAUyrC,EAAMzrC,SAEhBhH,WAAYyyC,EAAMzyC,WAClBmirB,UAAW,OAEX36hB,WAAY/0G,EAAM+0G,aAmCP46hB,GAAe,SAAA3voB,GAAK,YAAK,CACpC5gC,GAAC,GACCrM,MAAOitC,EAAMkunB,UACbvrM,eAAgB3ib,EAAMkroB,eACtBlurB,gBAAiB,cACjB4yrB,QAAS,OACT/nrB,OAAQ,UACR+2L,WAAY,SAAF,OAAW5+I,EAAM06nB,oBAC3B,+BAAgC,UAChC,UAAW,CACT3nqB,MAAOitC,EAAMu2nB,gBAEf,WAAY,CACVxjqB,MAAOitC,EAAMw2nB,mBAZhB,gCAeU,CACP7zM,eAAgB3ib,EAAMmroB,oBACtByE,QAAS,KAjBZ,SAoBC,UAAW,CACTjtN,eAAgB3ib,EAAMoroB,oBACtBwE,QAAS,KAtBZ,SAwBC,cAAe,CACb78qB,MAAOitC,EAAM0poB,kBACb7hrB,OAAQ,gBA1BX,KA8BUgorB,GAAiB,SAAC7voB,EAAO8voB,GACpC,IACE/6hB,EAEE/0G,EAFF+0G,WACAxgJ,EACEyrC,EADFzrC,SAEIw7qB,EAAqB,YAAH,OAAeD,EAAf,yBAAkDA,EAAlD,MACxB,iBACGC,GADH,QAEIh7hB,WAAAA,EACAxgJ,SAAAA,EACAqjO,UAAW,aACX,sBAAuB,CACrBA,UAAW,eAEZm4c,EAAqB,CACpBn4c,UAAW,aACX,sBAAuB,CACrBA,UAAW,kBAMRo4c,GAAkB,SAAAhwoB,GAAK,MAAK,CACvC4voB,QAAS,GAAF,OAAK5voB,EAAMuqoB,eAAX,oBAAqCvqoB,EAAM4znB,oBAClDqc,cAAe,EACfrxf,WAAY,kCAEDsxf,GAAgB,SAAAlwoB,GAAK,MAAK,CACrC,kBAAmBv/E,OAAOw4C,OAAO,GAAI+2qB,GAAgBhwoB,ME9FvD,GAjBiB,SAACs7nB,EAAerkB,GAC/B,MAAuBw3B,KAAvB,eAEA,OAAO5sB,GAAiB,CACtB33qB,MAHF,KAIE81D,MAJF,KAKEuoD,OAAQ,GACRthI,KAAM,CAAC,mBAAoBq0sB,GAC3B19K,MAAO,kBAAc,OAARq5J,QAAwB,IAARA,OAAiB,EAASA,EAAIr5J,SAC1D,iBAAM,EAAC,qBACH09K,GAAkB76sB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GFQvB,CAC9BjgC,QAAS,cACTu4T,WAAY,SACZx+R,MAAO,UACP+2N,UAAW,SACXv8N,WAAY,EACZ60kB,UAAW,SACX+tG,cAAe,OAEfC,cAAe,WACfC,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACL9irB,WAAY,GAEd0rd,IAAK,CACHjgf,QAAS,mBEzBc,qBAChBsisB,EADgB,aACEA,EADF,SACyB,CAC5CtisB,QAAS,iBDbbyolB,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAmCHygqB,GAAe,CAAC,qBAAsB,oBAAqB,cAAe,aAAc,QAAS,aAAc,OAAQ,SAAU,UAKvI,SAASC,KACP,OAAO/U,IALuB,MAOhC,SAASgV,KACP,OAAOlB,IAAuBpU,GAKhC,IAqBahuY,GAAe,iBAAO,CACjCiuY,aAAc,SAACC,EAAWC,GACxB,OAAIA,IAGGD,EAAY,GAAH,OAAMmV,KAAN,YAA8BnV,GAAcmV,OAE9DE,iBAAkBD,GAClBE,iBAAkB,WAEhB,OAAIlV,IAIG+U,MAETvniB,SAAU,kBAAMumiB,MAEZoB,GAAmB,SAAAx3mB,GACvB,IACEz0G,EAiEEy0G,EAjEFz0G,SACKkstB,EAgEHz3mB,EAhEF89kB,IACA45B,EA+DE13mB,EA/DF03mB,wBACAC,EA8DE33mB,EA9DF23mB,MACAv9kB,EA6DEp6B,EA7DFo6B,OACAq+a,EA4DEz4c,EA5DFy4c,KACAlrjB,EA2DEyyG,EA3DFzyG,OACAg2sB,EA0DEvjmB,EA1DFujmB,cACA1nkB,EAyDE77B,EAzDF67B,UACAs+M,EAwDEn6O,EAxDFm6O,MACAmzK,EAuDEttZ,EAvDFstZ,QACAsqN,EAsDE53mB,EAtDF43mB,yBACAC,EAqDE73mB,EArDF63mB,sBACAC,EAoDE93mB,EApDF83mB,cACAC,EAmDE/3mB,EAnDF+3mB,aACAn3a,EAkDE5gM,EAlDF4gM,cACeo3a,EAiDbh4mB,EAjDFmimB,cACApxrB,EAgDEivF,EAhDFjvF,MACAuyrB,EA+CEtjmB,EA/CFsjmB,kBACA2U,EA8CEj4mB,EA9CFi4mB,UACAC,EA6CEl4mB,EA7CFk4mB,UACAtf,EA4CE54lB,EA5CF44lB,KACAvxX,EA2CErnO,EA3CFqnO,SACA8wY,EA0CEn4mB,EA1CFm4mB,SACAC,EAyCEp4mB,EAzCFo4mB,SACAvhnB,EAwCEmJ,EAxCFnJ,SACAwhnB,EAuCEr4mB,EAvCFq4mB,WACA3sL,EAsCE1rb,EAtCF0rb,SACA4sL,EAqCEt4mB,EArCFs4mB,aACA9id,EAoCEx1J,EApCFw1J,QACA+id,EAmCEv4mB,EAnCFu4mB,OACA1tD,EAkCE7qjB,EAlCF6qjB,SACA5zd,EAiCEj3F,EAjCFi3F,MACAjuG,EAgCEgX,EAhCFhX,MACA8kV,EA+BE9tU,EA/BF8tU,OACApsX,EA8BEs+C,EA9BFt+C,KACA82pB,EA6BEx4mB,EA7BFw4mB,SACAC,EA4BEz4mB,EA5BFy4mB,MACA/1N,EA2BE1iZ,EA3BF0iZ,SACArzf,EA0BE2wG,EA1BF3wG,OACAqptB,EAyBE14mB,EAzBF04mB,OACAC,EAwBE34mB,EAxBF24mB,WACAC,EAuBE54mB,EAvBF44mB,KACAC,EAsBE74mB,EAtBF64mB,WACA7/rB,EAqBEgnF,EArBFhnF,MACAiyC,EAoBE+0C,EApBF/0C,MACAw4U,EAmBEzjS,EAnBFyjS,MACAgoJ,EAkBEzrb,EAlBFyrb,MACAqtL,EAiBE94mB,EAjBF84mB,KACQC,EAgBN/4mB,EAhBFg5mB,OACAC,EAeEj5mB,EAfFi5mB,SACAC,EAcEl5mB,EAdFk5mB,OACAjtrB,GAaE+zE,EAbF/zE,QACA+0F,GAYEhhB,EAZFghB,IACAvqC,GAWEupB,EAXFvpB,MACA0ioB,GAUEn5mB,EAVFm5mB,KACAhwtB,GASE62G,EATF72G,KACAiwtB,GAQEp5mB,EARFo5mB,SACAC,GAOEr5mB,EAPFq5mB,WACAxzgB,GAME7lG,EANF6lG,OACAyzgB,GAKEt5mB,EALFs5mB,aACAC,GAIEv5mB,EAJFu5mB,KACAC,GAGEx5mB,EAHFw5mB,YACAC,GAEEz5mB,EAFFy5mB,WACA5uO,GACE7qY,EADF6qY,KAOF,IAAMm3N,GAAe7+G,GAAAA,aAAkB,SAAC8+G,EAAWC,GACjD,IACEwX,EACE15mB,EADF05mB,UAEF,GAAIxX,EACF,OAAOA,EAET,IAAMyX,EAAkBD,GAAa94a,EAAcoha,aAAa,IAChE,OAAOC,EAAY,GAAH,OAAM0X,EAAN,YAAyB1X,GAAc0X,IACtD,CAAC/4a,EAAcoha,aAAchimB,EAAM05mB,YAChCvX,GAAgB6V,GAAuBp3a,EAAcuha,eAAiBJ,GACtE6X,GAAgBzX,KAAkBvha,EAAcuha,cAChDrkB,GAAM25B,GAAa72a,EAAck9Y,IACjC+7B,GAAUC,GAAS3X,GAAerkB,IAClC03B,GEpLO,SAAkBzksB,EAAOgpsB,GACtC,IAAMC,EAAcjpsB,GAAS,GACvBkpsB,GAA4C,IAAxBD,EAAYx6jB,SAAsBu6jB,EAA8BA,EAAhB3zgB,GAC1E,OAAOm8X,IAAQ,WACb,IAAKxxjB,EACH,OAAOgpsB,EAGT,IAAMG,EAAmB5ytB,OAAOw4C,OAAO,GAAIm6qB,EAAkB/jrB,YAK7D,OAJA5uC,OAAOC,KAAKwpB,EAAMmlB,YAAc,IAAIz1C,SAAQ,SAAA60N,GAC1C4kgB,EAAiB5kgB,GAAiBhuN,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIo6qB,EAAiB5kgB,IAAiBvkM,EAAMmlB,WAAWo/K,OAGhHhuN,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIm6qB,GAAoBD,GAAc,CACrFnzoB,MAAOv/E,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIm6qB,EAAkBpzoB,OAAQmzoB,EAAYnzoB,OAC7E3wC,WAAYgkrB,MAEb,CAACF,EAAaC,IAAoB,SAAChzrB,EAAM6X,GAAP,OAAgB7X,EAAKlkB,MAAK,SAACo3sB,EAAW94tB,GACzE,IAAM+4tB,EAAYt7qB,EAAKz9C,GACvB,OAAQ6oI,GAAQiwlB,EAAWC,GAAW,SFiKpBC,CAAStpsB,EAAO6vR,EAAc7vR,OAIlD,IAAMupsB,GAAa,CACjBx8B,IAAAA,GACA45B,wBAAAA,EACAC,MAAAA,EACAv9kB,OAAAA,EACA7sI,OAAQA,GAAUwqtB,EAClBl8kB,UAAAA,EACAs+M,MAAAA,EACAmzK,QAAAA,EACAuqN,sBAAiD,OAA1BA,QAA4D,IAA1BA,EAAmCA,EAAwBD,EACpHE,cAAAA,EACA9V,aAAAA,GACAG,cAAAA,GACApxrB,MAAOyksB,GACPyC,UAAAA,EACAC,UAAAA,EACAtf,KAAAA,EACAvxX,SAAAA,EACA8wY,SAAAA,EACAC,SAAAA,EACAvhnB,SAAAA,EACAwhnB,WAAAA,EACA3sL,SAAAA,EACA4sL,aAAAA,EACA9id,QAAAA,EACA+id,OAAAA,EACA1tD,SAAAA,EACA5zd,MAAAA,EACAjuG,MAAAA,EACAhwE,MAAAA,EACA80Z,OAAAA,EACApsX,KAAAA,EACA82pB,SAAAA,EACAC,MAAAA,EACA/1N,SAAAA,EACArzf,OAAAA,EACAqptB,OAAAA,EACAC,WAAAA,EACAC,KAAAA,EACAC,WAAAA,EACA5tpB,MAAAA,EACAw4U,MAAAA,EACAgoJ,MAAAA,EACAqtL,KAAAA,EACAE,OAAQD,EACRE,SAAAA,EACAC,OAAAA,EACAjtrB,QAAAA,GACA+0F,IAAAA,GACAvqC,MAAAA,GACA0ioB,KAAAA,GACAhwtB,KAAAA,GACAiwtB,SAAAA,GACAC,WAAAA,GACAxzgB,OAAAA,GACAyzgB,aAAAA,GACAC,KAAAA,GACAC,YAAAA,GACAC,WAAAA,GACA5uO,KAAAA,IAEI/6a,GAASxoE,OAAOw4C,OAAO,GAAI8gQ,GACjCt5S,OAAOC,KAAK+ytB,IAAY75tB,SAAQ,SAAA+G,QACNoR,IAApB0htB,GAAW9ytB,KACbsoE,GAAOtoE,GAAO8ytB,GAAW9ytB,OAK7B2vtB,GAAa12tB,SAAQ,SAAA+8E,GACnB,IAAMimL,EAAYzjJ,EAAMxiC,GACpBimL,IACF3zL,GAAO0N,GAAYimL,MAIvB,IAAM82d,GAAeh4I,IAAQ,kBAAMzygB,KAAQA,IAAQ,SAAC0qpB,EAAYC,GAC9D,IAAM/M,EAAWpmtB,OAAOC,KAAKiztB,GACvBhjR,EAAclwc,OAAOC,KAAKkztB,GAChC,OAAO/M,EAAS5stB,SAAW02c,EAAY12c,QAAU4stB,EAAS3qsB,MAAK,SAAAvb,GAAG,OAAIgztB,EAAWhztB,KAASiztB,EAAcjztB,SAEpGkztB,GAAuBv3H,GAAAA,SAAc,iBAAO,CAChDu2H,UAAWvX,GACXrkB,IAAAA,MACE,CAACqkB,GAAerkB,KAChBpjb,GAAYk/c,GAAgBC,GAAQtutB,GAAYA,EAC9CovtB,GAAmBx3H,GAAAA,SAAc,WACrC,IAAI94lB,EAAIua,EAAI+sG,EAAIC,EAChB,OAAO6rC,IAAqC,QAA7BpzJ,EAAK6tH,GAAAA,YAAuC,IAAP7tH,OAAgB,EAASA,EAAGmmsB,0BAA4B,IAAwF,QAAlF7+kB,EAAoC,QAA9B/sG,EAAK21sB,GAAahttB,cAA2B,IAAPqX,OAAgB,EAASA,EAAG2rrB,YAAyB,IAAP5+kB,OAAgB,EAASA,EAAG6+kB,0BAA4B,IAAkC,QAA5B5+kB,EAAK2omB,GAAa9hK,YAAyB,IAAP7mc,OAAgB,EAASA,EAAG+omB,mBAAqB,IAAc,OAATliK,QAA0B,IAATA,OAAkB,EAASA,EAAKkiK,mBAAqB,MACza,CAACJ,GAAuB,OAAT9hK,QAA0B,IAATA,OAAkB,EAASA,EAAKkiK,mBAC/DrztB,OAAOC,KAAKoztB,IAAkB75tB,OAAS,IACzC45Q,GAAyByoV,GAAAA,cAAoBy3H,GAAAA,SAAkC,CAC7Ex4tB,MAAOu4tB,IACNpvtB,IAEDgC,IACFmtQ,GAAyByoV,GAAAA,cAAoB03H,GAAgB,CAC3DtttB,OAAQA,EACR4jsB,YjDtRkB,gBiDuRjBz2b,MAEDync,IAAiBrkB,MACnBpjb,GAAyByoV,GAAAA,cAAoB23H,GAAAA,SAAsB,CACjE14tB,MAAOs4tB,IACNhgd,KAED6oc,IACF7oc,GAAyByoV,GAAAA,cAAoBigH,GAAqB,CAChEpqsB,KAAMuqsB,GACL7oc,KAGLA,GAAyByoV,GAAAA,cAAoB8yH,GAAe,KAAMv7c,IAElE,IAAMqgd,GAAY53H,GAAAA,SAAc,WACxB,IAAA94lB,EAAKmrtB,IAAe,GAEtBr9lB,EAGE9tH,EAHF8tH,UACAtxC,EAEEx8E,EAFFw8E,MACA3wC,EACE7rC,EADF6rC,WAEFohb,EAAOgxI,GAAOj+lB,EAAI,CAAC,YAAa,QAAS,eACrC2wtB,EAAW7imB,KAAepyH,MAAMi2E,QAAQm8C,IAAcA,EAAUr3H,OAAS,GAAKy/rB,GAAYpokB,GAAa+3Z,GACvG+qM,EAAmB,GAczB,OAbA3ztB,OAAOg+G,QAAQpvE,GAAc,IAAIz1C,SAAQ,SAAAkoP,GACvC,cAAsCA,EAAtC,GAAKrzB,EAAL,KAAoB4lgB,EAApB,KACMC,EAAc7ztB,OAAOw4C,OAAO,GAAIo7qB,GAClC,cAAeC,KACa,IAA1BA,EAAYhjmB,UACdgjmB,EAAYpqsB,MAAQiqsB,GACXj1tB,MAAMi2E,QAAQm/oB,EAAYhjmB,YAA+C,oBAA1BgjmB,EAAYhjmB,aACpEgjmB,EAAYpqsB,MAAQwvqB,GAAY46B,EAAYhjmB,mBAEvCgjmB,EAAYhjmB,WAErB8imB,EAAiB3lgB,GAAiB6lgB,KAE7B7ztB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw3a,GAAO,CAC5Cvmc,MAAOiqsB,EACPn0oB,MAAOv/E,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8hqB,IAAmB/6nB,GAC1D3wC,WAAY+krB,MAEb,CAACzF,KAYJ,OAXIzksB,IACF2pP,GAAyByoV,GAAAA,cAAoB2+G,GAAmBrgmB,SAAU,CACxEr/G,MAAO24tB,IACNrgd,UAGqB9hQ,IAAtB0qsB,IACF5oc,GAAyByoV,GAAAA,cAAoB8/G,GAAyB,CACpEr3sB,SAAU03sB,GACT5oc,KAEeyoV,GAAAA,cAAoBj8R,GAAAA,SAAwB,CAC9D9kU,MAAOm4tB,IACN7/c,KAEC81D,GAAiB,SAAAxwN,GACrB,IAAM7kG,EAAUgolB,GAAAA,WAAiBj8R,IAC3Bk0Z,EAAYj4H,GAAAA,WAAiBuuG,IACnC,OAAoBvuG,GAAAA,cAAoBq0H,GAAkBlwtB,OAAOw4C,OAAO,CACtE8gQ,cAAezlS,EACf48sB,aAAcqD,GACbp7mB,KAELwwN,GAAetJ,cAAgBA,GAC/BsJ,GAAe2yY,YAAcA,GAC7B3yY,GAAe1gQ,OA1SS,SAAA03K,GACtB,IACEkye,EAGElye,EAHFkye,UACAvX,EAEE36d,EAFF26d,cACApxrB,EACEy2N,EADFz2N,WAEgBnY,IAAd8gtB,IACFrX,GAAkBqX,QAEE9gtB,IAAlBupsB,IACFgU,GAAsBhU,GAEpBpxrB,KAfN,SAAuBA,GACrB,OAAOzpB,OAAOC,KAAKwpB,GAAOhO,MAAK,SAAAvb,GAAG,OAAIA,EAAI20H,SAAS,YAe7Ck/lB,CAActqsB,GAIhBqlsB,GAAcrlsB,EAFd6/f,GAAcwmM,KAAsBrmsB,KA4R1Cy/S,GAAe8qZ,UAAYA,GAC3Bh0tB,OAAOi+D,eAAeirQ,GAAgB,cAAe,CACnDnwT,IAAK,WAEH,OAAO8isB,MAMX,UG5WA,GADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wRAA4R,KAAQ,eAAgB,MAAS,gCCD5d,SAAStuc,GAAQgpa,GACf,IAAI09C,EACJ,OAAe,OAAR19C,QAAwB,IAARA,GAAmE,QAAxC09C,EAAmB19C,EAAI17iB,mBAA8C,IAArBo5lB,OAA1D,EAAiGA,EAAiBt6tB,KAAK48qB,GAa1J,SAAS29C,GAAc39C,GAC5B,OARK,SAAkBA,GACvB,OAAOhpa,GAAQgpa,aAAgB49C,WAOxBC,CAAS79C,GAAOhpa,GAAQgpa,GAAO,KCJjC,SAAS89C,GAAiBv0tB,GAC/B,MAA2B,YAApBsjmB,EAAAA,GAAAA,GAAQtjmB,IAA+C,kBAAhBA,EAAO4G,MAA6C,kBAAjB5G,EAAO2pB,QAAgD,YAAzB25kB,EAAAA,GAAAA,GAAQtjmB,EAAO+Y,OAA6C,oBAAhB/Y,EAAO+Y,MAE7J,SAASy7sB,KACd,IAAI9ue,EAAQvkP,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAChF,OAAOjB,OAAOC,KAAKulP,GAAO5iP,QAAO,SAAUC,EAAK3C,GAC9C,IAAI+c,EAAMuoO,EAAMtlP,GAChB,GACO,UADCA,EAEJ2C,EAAI0E,UAAY0V,SACTpa,EAAIgoB,kBAGJhoB,EAAI3C,GACX2C,EAAI+niB,IAAAA,CAAU1qiB,IAAQ+c,EAE1B,OAAOpa,IACN,IAEE,SAASmwD,GAASmc,EAAMjvE,EAAKq0tB,GAClC,OAAKA,EAOe14H,GAAAA,cAAoB1shB,EAAKuqD,IAAKs6jB,EAAcA,EAAc,CAC5E9zrB,IAAKA,GACJo0tB,GAAenlpB,EAAKq2K,QAAS+ue,IAAaplpB,EAAKlrE,UAAY,IAAI7E,KAAI,SAAU4Y,EAAOje,GACrF,OAAOi5D,GAASh7C,EAAO,GAAG8c,OAAO50B,EAAK,KAAK40B,OAAOq6C,EAAKuqD,IAAK,KAAK5kG,OAAO/6B,QATpD8hmB,GAAAA,cAAoB1shB,EAAKuqD,IAAKs6jB,EAAc,CAC9D9zrB,IAAKA,GACJo0tB,GAAenlpB,EAAKq2K,SAAUr2K,EAAKlrE,UAAY,IAAI7E,KAAI,SAAU4Y,EAAOje,GACzE,OAAOi5D,GAASh7C,EAAO,GAAG8c,OAAO50B,EAAK,KAAK40B,OAAOq6C,EAAKuqD,IAAK,KAAK5kG,OAAO/6B,QASvE,SAASy6tB,GAAkBrZ,GAEhC,OAAOsZ,GAActZ,GAAc,GAE9B,SAASuZ,GAAuBC,GACrC,OAAKA,EAGEl2tB,MAAMi2E,QAAQigpB,GAAgBA,EAAe,CAACA,GAF5C,GAOJ,ICxDHnnc,GAAY,CAAC,OAAQ,YAAa,UAAW,QAAS,eAAgB,kBAGtEonc,GAAsB,CACxBzZ,aAAc,OACd0Z,eAAgB,UAChBC,YAAY,GAYd,IAAIC,GAAW,SAAkBr8mB,GAC/B,IAAI7/F,EAAO6/F,EAAM7/F,KACftR,EAAYmxG,EAAMnxG,UAClB24D,EAAUw4C,EAAMx4C,QAChB/oD,EAAQuhG,EAAMvhG,MACdgksB,EAAezimB,EAAMyimB,aACrB0Z,EAAiBn8mB,EAAMm8mB,eACvBjsZ,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1Cwnc,EAASn5H,GAAAA,SACT3zZ,EAAS0shB,GASb,GARIzZ,IACFjzgB,EAAS,CACPizgB,aAAcA,EACd0Z,eAAgBA,GAAkBL,GAAkBrZ,KDiC7B,SAAyB8Z,GACpD,IAAIC,GAAct6I,EAAAA,GAAAA,YAAW44I,IAC3Bh9B,EAAM0+B,EAAY1+B,IAClB47B,EAAY8C,EAAY9C,UACtB+C,EALkB,y7BAMlB/C,IACF+C,EAAiBA,EAAevzqB,QAAQ,WAAYwwqB,KAEtDv3I,EAAAA,GAAAA,YAAU,WACR,IACI5sS,EAAaimb,GADPe,EAAOz9e,SAEjB6/c,GAAU89B,EAAgB,oBAAqB,CAC7Crme,SAAS,EACT0nc,IAAKA,EACLJ,SAAUnoZ,MAEX,IC9CHmnb,CAAgBJ,GD3BX,SAAiB/nQ,EAAOtob,GAC7BpB,GAAK0pb,EAAO,uBAAuBn4b,OAAO6P,IC2B1CmzB,CAAQu8pB,GAAiBx7sB,GAAO,0CAA0Cic,OAAOjc,KAC5Ew7sB,GAAiBx7sB,GACpB,OAAO,KAET,IAAI/Y,EAAS+Y,EAMb,OALI/Y,GAAiC,oBAAhBA,EAAO+Y,OAC1B/Y,EAASk0rB,EAAcA,EAAc,GAAIl0rB,GAAS,GAAI,CACpD+Y,KAAM/Y,EAAO+Y,KAAKqvL,EAAOizgB,aAAcjzgB,EAAO2shB,mBAG3C7hqB,GAASlzD,EAAO+Y,KAAM,OAAOic,OAAOh1B,EAAO4G,MAAOstrB,EAAcA,EAAc,CACnFzsrB,UAAWA,EACX24D,QAASA,EACT/oD,MAAOA,EACP,YAAarX,EAAO4G,KACpB8D,MAAO,MACPC,OAAQ,MACR2qH,KAAM,eACN,cAAe,QACdwzM,GAAY,GAAI,CACjBzxQ,IAAK69pB,MAGTD,GAAS3stB,YAAc,YACvB2stB,GAASM,iBA5CT,WACE,OAAOrhC,EAAc,GAAI4gC,KA4C3BG,GAASO,iBApDT,SAA0Bp1e,GACxB,IAAIi7d,EAAej7d,EAAKi7d,aACtB0Z,EAAiB30e,EAAK20e,eACxBD,GAAoBzZ,aAAeA,EACnCyZ,GAAoBC,eAAiBA,GAAkBL,GAAkBrZ,GACzEyZ,GAAoBE,aAAeD,GAgDrC,UC5DO,SAASU,GAAgBZ,GAC9B,IAAIa,EAAwBd,GAAuBC,GACjDc,GAAyBlsH,EAAAA,EAAAA,GAAeisH,EAAuB,GAC/Dra,EAAesa,EAAuB,GACtCZ,EAAiBY,EAAuB,GAC1C,OAAOC,GAAAA,iBAA2B,CAChCva,aAAcA,EACd0Z,eAAgBA,ICJpB,IAAIrnc,GAAY,CAAC,YAAa,OAAQ,OAAQ,SAAU,WAAY,UAAW,gBAU/E+nc,GAAgBhxf,GAAKooR,SAIrB,IAAIz4K,GAAoB2nR,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACxD,IAAIuupB,EACAn+sB,EAAYmxG,EAAMnxG,UACpBsR,EAAO6/F,EAAM7/F,KACby4rB,EAAO54lB,EAAM44lB,KACb56Z,EAASh+L,EAAMg+L,OACf1+J,EAAWt/B,EAAMs/B,SACjB93E,EAAUw4C,EAAMx4C,QAChBy0pB,EAAej8mB,EAAMi8mB,aACrB/rZ,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1Cg0a,EAAoB3lG,GAAAA,WAAiBO,IACvCu5H,EAAwBn0B,EAAkB4wB,UAC1CA,OAAsC,IAA1BuD,EAAmC,UAAYA,EAC3DC,EAAgBp0B,EAAkBo0B,cAChCC,EAAc3vgB,IAAAA,CAAW0vgB,EAAexD,GAAY1M,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,KAAKt9rB,OAAOjc,EAAKnS,QAASmS,EAAKnS,OAAOqsE,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,WAAY9gB,GAAsB,YAAdz4rB,EAAKnS,MAAqBg/sB,GAAcn+sB,GAC5QuutB,EAAe99kB,OACE1mI,IAAjBwktB,GAA8B51pB,IAChC41pB,GAAgB,GAElB,IAAIC,EAAWr/a,EAAS,CACtBs/a,YAAa,UAAUlhsB,OAAO4hR,EAAQ,QACtCj1R,UAAW,UAAUqT,OAAO4hR,EAAQ,cAClCplS,EACAkktB,EAAwBd,GAAuBC,GACjDc,GAAyBlsH,EAAAA,EAAAA,GAAeisH,EAAuB,GAC/Dra,EAAesa,EAAuB,GACtCZ,EAAiBY,EAAuB,GAC1C,OAAoB55H,GAAAA,cAAoB,QAAQ1qY,EAAAA,GAAAA,GAAS,CACvDzlF,KAAM,MACN,aAAc7yH,EAAKnS,MAClBkiU,EAAW,CACZzxQ,IAAKA,EACL6gF,SAAU89kB,EACV51pB,QAASA,EACT34D,UAAWsutB,IACIh6H,GAAAA,cAAoB65H,GAAW,CAC9C78sB,KAAMA,EACNsisB,aAAcA,EACd0Z,eAAgBA,EAChB19sB,MAAO4+sB,QAGX7hZ,GAAK9rU,YAAc,WACnB8rU,GAAK+hZ,gBDlDE,WACL,IAAI/thB,EAASwthB,GAAAA,mBACb,OAAKxthB,EAAO4shB,WAGL,CAAC5shB,EAAOizgB,aAAcjzgB,EAAO2shB,gBAF3B3shB,EAAOizgB,cCgDlBjnY,GAAKqhZ,gBAAkBA,GACvB,UC1DIW,GAAoB,SAA2Bx9mB,EAAOvhD,GACxD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAMu9sB,OAMV,OAA4Bv6H,GAAAA,WAAiBq6H,ICd7C,GADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qsBAAysB,KAAQ,eAAgB,MAAS,UCM75BG,GAAoB,SAA2B39mB,EAAOvhD,GACxD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAMy9sB,OAMV,OAA4Bz6H,GAAAA,WAAiBw6H,ICd7C,GAD8B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uOAA2O,KAAQ,qBAAsB,MAAS,UCMnbE,GAA0B,SAAiC79mB,EAAOvhD,GACpE,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM29sB,OAMV,OAA4B36H,GAAAA,WAAiB06H,ICd7C,GADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uOAA2O,KAAQ,cAAe,MAAS,UCMraE,GAAmB,SAA0B/9mB,EAAOvhD,GACtD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM69sB,OAMV,OAA4B76H,GAAAA,WAAiB46H,ICd7C,GADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kUAAsU,KAAQ,UAAW,MAAS,YCM3fE,GAAkB,SAAyBj+mB,EAAOvhD,GACpD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM+9sB,OAMV,OAA4B/6H,GAAAA,WAAiB86H,ICVzCE,GAAU,CAIZC,UAAW,EAIXC,UAAW,EAIXngjB,IAAK,EAILogjB,WAAY,GAKZC,MAAO,GAIPC,MAAO,GAIPC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,UAAW,GAIXC,IAAK,GAIL5gjB,MAAO,GAIP6gjB,QAAS,GAKTC,UAAW,GAKXC,IAAK,GAKLC,KAAM,GAKNh/M,KAAM,GAKNi/M,GAAI,GAKJn/M,MAAO,GAKPo/M,KAAM,GAKNC,aAAc,GAIdpzc,OAAQ,GAKRqzc,OAAQ,GAKRC,KAAM,GAINC,IAAK,GAILC,IAAK,GAILC,MAAO,GAIPC,KAAM,GAINC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,MAAO,GAIPC,KAAM,GAINC,cAAe,GAKftkQ,EAAG,GAIHxrU,EAAG,GAIHxnC,EAAG,GAIH+gc,EAAG,GAIHtzP,EAAG,GAIHkvM,EAAG,GAIH2nD,EAAG,GAIHx3U,EAAG,GAIH0zU,EAAG,GAIHC,EAAG,GAIHZ,EAAG,GAIH34Z,EAAG,GAIHqmK,EAAG,GAIHo8P,EAAG,GAIH1pc,EAAG,GAIHlqE,EAAG,GAIHy3Q,EAAG,GAIHrmK,EAAG,GAIH4lF,EAAG,GAIH6yU,EAAG,GAIHoG,EAAG,GAIHh5U,EAAG,GAIH8yU,EAAG,GAIH9xP,EAAG,GAIH+xP,EAAG,GAIH9xP,EAAG,GAIHspa,KAAM,GAKNC,cAAe,GAIfC,aAAc,GAIdC,SAAU,GAIVC,QAAS,GAITC,QAAS,GAITC,UAAW,GAIXC,SAAU,IAIVC,SAAU,IAIVC,QAAS,IAITC,UAAW,IAIXC,UAAW,IAIXC,SAAU,IAIVC,aAAc,IAIdC,SAAU,IAIVC,UAAW,IAIXC,WAAY,IAIZC,aAAc,IAIdC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,IAAK,IAILC,IAAK,IAILC,IAAK,IAILC,QAAS,IAITC,UAAW,IAKXC,KAAM,IAKNC,OAAQ,IAKRC,MAAO,IAKPC,OAAQ,IAKRC,MAAO,IAKPC,WAAY,IAKZC,aAAc,IAKdC,oBAAqB,IAKrBC,UAAW,IAKXC,qBAAsB,IAKtBC,QAAS,IAITC,YAAa,IAKbC,QAAS,IAKTC,wBAAyB,SAAiC9huB,GACxD,IAAI8vD,EAAU9vD,EAAE8vD,QAChB,GAAI9vD,EAAE6c,SAAW7c,EAAEwlC,SAAWxlC,EAAEmsD,SAEhC2D,GAAWqtqB,GAAQgD,IAAMrwqB,GAAWqtqB,GAAQ2D,IAC1C,OAAO,EAKT,OAAQhxqB,GACN,KAAKqtqB,GAAQO,IACb,KAAKP,GAAQS,UACb,KAAKT,GAAQgC,aACb,KAAKhC,GAAQM,KACb,KAAKN,GAAQgB,KACb,KAAKhB,GAAQa,IACb,KAAKb,GAAQU,IACb,KAAKV,GAAQc,KACb,KAAKd,GAAQnyc,OACb,KAAKmyc,GAAQl+M,KACb,KAAKk+M,GAAQyE,YACb,KAAKzE,GAAQ8B,KACb,KAAK9B,GAAQ4D,QACb,KAAK5D,GAAQG,WACb,KAAKH,GAAQY,UACb,KAAKZ,GAAQW,QACb,KAAKX,GAAQQ,MACb,KAAKR,GAAQiB,aACb,KAAKjB,GAAQp+M,MACb,KAAKo+M,GAAQK,MACb,KAAKL,GAAQe,GACb,KAAKf,GAAQwE,QACb,KAAKxE,GAAQ+B,cACX,OAAO,EACT,QACE,OAAO,IAMb6C,eAAgB,SAAwBjyqB,GACtC,GAAIA,GAAWqtqB,GAAQmB,MAAQxuqB,GAAWqtqB,GAAQ4B,KAChD,OAAO,EAET,GAAIjvqB,GAAWqtqB,GAAQiC,UAAYtvqB,GAAWqtqB,GAAQ2C,aACpD,OAAO,EAET,GAAIhwqB,GAAWqtqB,GAAQziQ,GAAK5qa,GAAWqtqB,GAAQxna,EAC7C,OAAO,EAIT,IAAsD,IAAlD1wS,OAAOg5G,UAAUI,UAAU14H,QAAQ,WAAgC,IAAZmqD,EACzD,OAAO,EAET,OAAQA,GACN,KAAKqtqB,GAAQlgjB,MACb,KAAKkgjB,GAAQ6B,cACb,KAAK7B,GAAQ4C,SACb,KAAK5C,GAAQ6C,UACb,KAAK7C,GAAQ8C,WACb,KAAK9C,GAAQ+C,aACb,KAAK/C,GAAQ6D,UACb,KAAK7D,GAAQ8D,KACb,KAAK9D,GAAQ+D,OACb,KAAK/D,GAAQgE,MACb,KAAKhE,GAAQiE,OACb,KAAKjE,GAAQkE,MACb,KAAKlE,GAAQmE,WACb,KAAKnE,GAAQoE,aACb,KAAKpE,GAAQqE,oBACb,KAAKrE,GAAQsE,UACb,KAAKtE,GAAQuE,qBACX,OAAO,EACT,QACE,OAAO,KAIf,MCnhBIM,GAAsB7/H,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GAC1D,IAAIi7pB,EAAY15mB,EAAM05mB,UACpBj7sB,EAAQuhG,EAAMvhG,MACd5P,EAAYmxG,EAAMnxG,UAClBo0tB,EAAkBjjnB,EAAMggH,SACxBA,OAA+B,IAApBijgB,EAA6B,IAAMA,EAC9CC,EAAWljnB,EAAMkjnB,SACjB5htB,EAAU0+F,EAAM1+F,QAChB6htB,EAAWnjnB,EAAMmjnB,SACjBC,EAAmBpjnB,EAAMu7H,UACzBA,OAAiC,IAArB6nf,EAA8B,IAAMA,EAChDC,EAAWrjnB,EAAMA,MACjBx4C,EAAUw4C,EAAMx4C,QAChB87pB,EAAgBtjnB,EAAMsjnB,cACtBlumB,EAAQpV,EAAMoV,MACZsvlB,EAAkBvhH,GAAAA,UAAe,GACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD6e,EAAW5e,EAAiB,GAC5B6e,EAAc7e,EAAiB,GAE7B8e,EAAkB,WACpBH,EAAcJ,IAQhB//H,GAAAA,WAAgB,WACd,IAAKogI,GAAYvjgB,EAAW,EAAG,CAC7B,IAAI58N,EAAUC,YAAW,WACvBoguB,MACY,IAAXzjgB,GACH,OAAO,WACLthM,aAAat7B,OAIhB,CAAC48N,EAAUujgB,EAAUnumB,IAExB,IAAIsumB,EAAkB,GAAGtnsB,OAAOs9rB,EAAW,WAC3C,OAAoBv2H,GAAAA,cAAoB,OAAO1qY,EAAAA,GAAAA,GAAS,GAAI4qgB,EAAU,CACpE5kqB,IAAKA,EACL5vD,UAAW2+M,IAAAA,CAAWk2gB,EAAiB70tB,GAAWwrE,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOsnsB,EAAiB,aAAcP,IAC/G1ktB,MAAOA,EACPkltB,aAAc,WACZH,GAAY,IAEdI,aAAc,WACZJ,GAAY,IAEdh8pB,QAASA,IACM27hB,GAAAA,cAAoB,MAAO,CAC1Ct0lB,UAAW,GAAGutB,OAAOsnsB,EAAiB,aACrCpitB,GAAU6htB,GAAyBhgI,GAAAA,cAAoB,IAAK,CAC7D7jd,SAAU,EACVzwI,UAAW,GAAGutB,OAAOsnsB,EAAiB,UACtCrrnB,UAnCmB,SAAwBr3G,GAC7B,UAAVA,EAAEwG,KAA8B,UAAXxG,EAAE+iK,MAAoB/iK,EAAE8vD,UAAYqtqB,GAAAA,OAC3DsF,KAkCFj8pB,QAAS,SAAiBxmE,GACxBA,EAAE6G,iBACF7G,EAAE4G,kBACF67tB,MAEDlof,OAEL,MC9DIsof,GAA6B1gI,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACjE,IAAIqlqB,EAAmB9jnB,EAAM05mB,UAC3BA,OAAiC,IAArBoK,EAA8B,kBAAoBA,EAC9DxjtB,EAAY0/F,EAAM1/F,UAClB+1rB,EAASr2lB,EAAMq2lB,OACf0tB,EAAW/jnB,EAAM+jnB,SACjBl1tB,EAAYmxG,EAAMnxG,UAClB4P,EAAQuhG,EAAMvhG,MACdgwsB,EAAezumB,EAAMyumB,aACnB/J,EAAkBvhH,GAAAA,SAAe,IACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDsf,EAAarf,EAAiB,GAC9Bsf,EAAgBtf,EAAiB,GAE/B2e,EAAgB,SAAuB97tB,GACzC,IAAI08tB,EAEAp0pB,EAASk0pB,EAAWnntB,MAAK,SAAUnc,GACrC,OAAOA,EAAK8G,MAAQA,KAEX,OAAXsoE,QAA8B,IAAXA,GAAoE,QAAtCo0pB,EAAkBp0pB,EAAOq0pB,eAAyC,IAApBD,GAAsCA,EAAgBjjuB,KAAK6uE,GAC1Jm0pB,GAAc,SAAUviqB,GACtB,OAAOA,EAAKt7D,QAAO,SAAU1F,GAC3B,OAAOA,EAAK8G,MAAQA,SAK1B27lB,GAAAA,oBAA0B1kiB,GAAK,WAC7B,MAAO,CACLklE,KAAM,SAAc7zD,GAClBm0pB,GAAc,SAAUviqB,GACtB,IAOM0iqB,EAPFtopB,GAAQu1hB,EAAAA,EAAAA,GAAmB3viB,GAE3BrgE,EAAQy6E,EAAM2gD,WAAU,SAAU/7H,GACpC,OAAOA,EAAK8G,MAAQsoE,EAAOtoE,OAEzB68tB,EAAc/oC,EAAc,GAAIxrnB,GAChCzuE,GAAS,GAEXgjuB,EAAYjvmB,QAA0C,QAA/BgvmB,EAAc1iqB,EAAKrgE,UAAoC,IAAhB+iuB,OAAyB,EAASA,EAAYhvmB,QAAU,GAAK,EAC3Ht5C,EAAMz6E,GAASgjuB,IAEfA,EAAYjvmB,MAAQ,EACpBt5C,EAAM16E,KAAKijuB,IAKb,OAHIN,EAAW,GAAKjopB,EAAMh7E,OAASijuB,IACjCjopB,EAAQA,EAAM71E,OAAO89tB,IAEhBjopB,MAGXpU,MAAO,SAAelgE,GACpB87tB,EAAc97tB,IAEhBq6G,QAAS,WACPoinB,EAAc,SAKpB,IAAIK,EAAmBnhI,GAAAA,SAAe,IACpCohI,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDE,EAAaD,EAAiB,GAC9BE,EAAgBF,EAAiB,GACnCphI,GAAAA,WAAgB,WACd,IAAIuhI,EAAiB,GACrBV,EAAWvjuB,SAAQ,SAAUqvE,GAC3B,IAAI60pB,EAAoB70pB,EAAO80pB,UAC7BA,OAAkC,IAAtBD,EAA+B,WAAaA,EACtDC,IACFF,EAAeE,GAAaF,EAAeE,IAAc,GACzDF,EAAeE,GAAWxjuB,KAAK0uE,OAInCxoE,OAAOC,KAAKi9tB,GAAY/juB,SAAQ,SAAUmkuB,GACxCF,EAAeE,GAAaF,EAAeE,IAAc,MAE3DH,EAAcC,KACb,CAACV,IAEJ,IAWIa,EAAW1hI,GAAAA,QAAa,GAW5B,GAVAA,GAAAA,WAAgB,WACV77lB,OAAOC,KAAKi9tB,GAAY1juB,OAAS,EACnC+juB,EAAS/lf,SAAU,EACV+lf,EAAS/lf,UAED,OAAjB2ve,QAA0C,IAAjBA,GAAmCA,IAC5DoW,EAAS/lf,SAAU,KAEpB,CAAC0lf,KAEClktB,EACH,OAAO,KAET,IAAIwktB,EAAgBx9tB,OAAOC,KAAKi9tB,GAChC,OAAoBl1I,EAAAA,GAAAA,cAA2B6T,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM2hI,EAAcp+tB,KAAI,SAAUk+tB,GACnH,IACIr9tB,EADsBi9tB,EAAWI,GACNl+tB,KAAI,SAAUopE,GAC3C,MAAO,CACLA,OAAQA,EACRtoE,IAAKsoE,EAAOtoE,QAGZu9tB,EAAoC,oBAAX1uB,EAAwBA,EAAOuuB,GAAavuB,EACzE,OAAoBlzG,GAAAA,cAAoBirH,IAAe31f,EAAAA,GAAAA,GAAS,CAC9DjxN,IAAKo9tB,EACL/1tB,UAAW2+M,IAAAA,CAAWksgB,EAAW,GAAGt9rB,OAAOs9rB,EAAW,KAAKt9rB,OAAOwosB,GAA0B,OAAd/1tB,QAAoC,IAAdA,OAAuB,EAASA,EAAU+1tB,IAC9InmtB,MAAiB,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAMmmtB,GAC3Dr9tB,KAAMA,EACN8gtB,cAAc,GACb0c,EAAiB,CAClBtW,aAAc,YA1CO,SAA4BmW,GACnDH,GAAc,SAAUO,GACtB,IAAIlppB,EAAQw/mB,EAAc,GAAI0pC,GAK9B,OAJWlppB,EAAM8opB,IAAc,IACrB9juB,eACDg7E,EAAM8opB,GAER9opB,KAoCLmppB,CAAmBL,OAEnB,SAAUp9e,EAAM6ke,GAClB,IAAIv8oB,EAAS03K,EAAK13K,OAChBo1pB,EAAkB19e,EAAK34O,UACvBs2tB,EAAc39e,EAAK/oO,MACjBjX,EAAMsoE,EAAOtoE,IACf4tH,EAAQtlD,EAAOslD,MACbgwmB,EAAkBt1pB,EAAOjhE,UAC3Bw2tB,EAAcv1pB,EAAOrxD,MACvB,OAAoB0klB,GAAAA,cAAoBmiI,IAAQ7sgB,EAAAA,GAAAA,GAAS,GAAI3oJ,EAAQ,CACnErR,IAAK4tpB,EACLqN,UAAWA,EACX7qtB,UAAW2+M,IAAAA,CAAW03gB,EAAiBE,GACvC3mtB,MAAO68qB,EAAcA,EAAc,GAAI6pC,GAAcE,GACrDjwmB,MAAOA,EACP5tH,IAAKA,EACL07tB,SAAU17tB,EACV87tB,cAAeA,YAGhBhjtB,MAKP,UC9JIw0Q,GAAY,CAAC,eAAgB,SAAU,YAAa,WAAY,YAAa,QAAS,gBAGtFywc,GAAsB,WACxB,OAAOviuB,SAAS+lC,MAEdy8rB,GAAY,EAChB,SAASv/gB,KAEP,IADA,IAAInqI,EAAQ,GACHy8J,EAAOhwO,UAAUzH,OAAQ2kuB,EAAU,IAAI1/tB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFitf,EAAQjtf,GAAQjwO,UAAUiwO,GAY5B,OAVAitf,EAAQhluB,SAAQ,SAAUytE,GACpBA,GACF5mE,OAAOC,KAAK2mE,GAAKztE,SAAQ,SAAU+G,GACjC,IAAI+c,EAAM2pD,EAAI1mE,QACFoR,IAAR2L,IACFu3D,EAAMt0E,GAAO+c,SAKdu3D,ECxBM,SAAS4ppB,GAAS12qB,GAC/B,IAAI22qB,EAAQxiI,GAAAA,SACZwiI,EAAM7mf,QAAU9vL,EAChB,IAAI42qB,EAASziI,GAAAA,aAAkB,WAE7B,IADA,IAAI0iI,EACKttf,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAEzB,OAA4C,QAApCqtf,EAAiBF,EAAM7mf,eAAwC,IAAnB+mf,OAA4B,EAASA,EAAe5kuB,KAAKulB,MAAMq/sB,EAAgB,CAACF,GAAOvpsB,OAAOpV,MACjJ,IACH,OAAO4+sB,ECNT,SAAShriB,GAASx4L,GAChB,YAAiBwW,IAAVxW,EAOM,SAAS0juB,GAAeC,EAAmB1gtB,GACxD,IAAImiO,EAAOniO,GAAU,GACnB0vB,EAAeyyM,EAAKzyM,aACpB3yC,EAAQolP,EAAKplP,MACb67B,EAAWupN,EAAKvpN,SAChB+nsB,EAAYx+e,EAAKw+e,UAGf7e,EAAYzkI,IAAS,WACrB,OAAI9nZ,GAASx4L,GACJA,EACEw4L,GAAS7lJ,GACa,oBAAjBA,EAA8BA,IAAiBA,EAEzB,oBAAtBgxrB,EAAmCA,IAAsBA,KAG3E3e,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvC8e,EAAa7e,EAAW,GACxB8e,EAAgB9e,EAAW,GACzB+e,OAAwBvttB,IAAVxW,EAAsBA,EAAQ6juB,EAC5CG,EAAkBJ,EAAYA,EAAUG,GAAeA,EAGvDE,EAAaX,GAASznsB,GACtBwrrB,EAAa/mI,GAAS,CAACyjJ,IACzBzc,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxCpzc,EAAYqzc,EAAW,GACvB4c,EAAe5c,EAAW,GAoB5B,OAnBAloB,IAAsB,WACpB,IAAIv6pB,EAAOovO,EAAU,GACjB4vd,IAAeh/rB,GACjBo/rB,EAAWJ,EAAYh/rB,KAExB,CAACovO,IAGJmrb,IAAsB,WACf5mgB,GAASx4L,IACZ8juB,EAAc9juB,KAEf,CAACA,IAOG,CAACgkuB,EAJYV,IAAS,SAAUjqJ,EAASmpI,GAC9CshB,EAAczqJ,EAASmpI,GACvB0hB,EAAa,CAACH,GAAcvhB,OC3DhC,IAAM2hB,GAAwF,qBAAtBC,kBACpExijB,IAAY,EAKT,SAASvmB,KACd,IAAK,IAAI86E,EAAOhwO,UAAUzH,OAAQ6yqB,EAAO,IAAI5tqB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/Em7b,EAAKn7b,GAAQjwO,UAAUiwO,GAGzB,IAAK+tf,GACH,OAAOj/tB,OAAOw4C,OAAOt5B,MAAMlf,OAAQ,CAAC,IAAI80B,OAAOu3oB,IAEjD3vf,IAAY,EACZ,IAAMh4C,EAAM,GAYZ,OAXA2niB,EAAKlzqB,SAAQ,SAAAytE,GACE5mE,OAAOC,KAAK2mE,GACpBztE,SAAQ,SAAA+G,GACXF,OAAOi+D,eAAeymE,EAAKxkI,EAAK,CAC9Bk+D,cAAc,EACdD,YAAY,EACZplD,IAAK,kBAAM6tD,EAAI1mE,YAIrBw8K,IAAY,EACLh4C,EAGF,IAAMkslB,GAAY,GAKzB,SAAS1lgB,MC5BM,SAASi0gB,GAAsB53sB,EAAW85qB,EAAS+9B,EAAiB9rtB,GACjF,OAAO,SAAA8+sB,GACL,MAA+BpE,KAA/B,eAAOvksB,EAAP,KAAc81D,EAAd,KAAqBuoD,EAArB,KACA,GAII8yc,EAAAA,GAAAA,YAAWh7Q,IAHb86Y,EADF,EACEA,aACAG,EAFF,EAEEA,cACArkB,EAHF,EAGEA,IAEI6oC,EAAgB3kB,IAEhB4kB,EAAe,CACnB71sB,MAAAA,EACA81D,MAAAA,EACAuoD,OAAAA,EACAq1Z,MAAO,kBAAc,OAARq5J,QAAwB,IAARA,OAAiB,EAASA,EAAIr5J,OAC3DmkK,WAAwB,OAAZhurB,QAAgC,IAAZA,OAAqB,EAASA,EAAQgurB,WAEtEztM,OAAQ,KAUV,OAPAutM,GAAiBphsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8mrB,GAAe,CAC9Dh+B,YAAY,EACZ96rB,KAAM,CAAC,SAAU64tB,MACf,iBAAM,CAAC,CAET,IAAKnQ,GAAa3voB,QAEb,CAAC6hnB,GAAiBphsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8mrB,GAAe,CACtE94tB,KAAM,CAAC+gB,EAAW6qsB,EAAWvX,MAC3B,WACF,MDAS,SAAwBt7nB,GACrC,IAAIg8mB,EACA96I,EAAQlhe,EACRksgB,EAAQvgY,GAkBZ,OAjBI+zgB,KACF1jC,EAAY,IAAI19kB,IAChB4ic,EAAQ,IAAIwoD,MAAM1phB,EAAO,CACvBxmE,IADuB,SACnB6tD,EAAK+4C,GAIP,OAHI+8D,IACF6+gB,EAAU/gsB,IAAImlH,GAET/4C,EAAI+4C,MAGf8re,EAAQ,SAACz9X,EAAe4lgB,GACtBhD,GAAU5igB,GAAiB,CACzBx6F,OAAQ/0H,MAAM4D,KAAKk5rB,GACnBh0qB,UAAWqssB,KAIV,CACLr0oB,MAAOkhe,EACPxgjB,KAAMs7rB,EACN9vG,MAAAA,GCrBM8zI,CAAehgpB,GAFVigpB,EADT,EACEjgpB,MACAksgB,EAFF,EAEEA,MAEIg0I,EAAuBz/tB,OAAOw4C,OAAO,GAAI+mC,EAAMh4D,KACrC,OAAZjU,QAAgC,IAAZA,OAAqB,EAASA,EAAQostB,mBAGxDpstB,EADFostB,iBAEevmuB,SAAQ,SAAA+mP,GACvB,IACIn9O,EADJ,UAAiCm9O,EAAjC,GAAKy/e,EAAL,KAAkBC,EAAlB,OAM8B,OAAzBH,QAA0D,IAAzBA,OAAkC,EAASA,EAAqBE,MAA2C,OAAzBF,QAA0D,IAAzBA,OAAkC,EAASA,EAAqBG,OAC1K,QAA5C78tB,EAAK08tB,EAAqBG,UAAiC,IAAP78tB,IAAqB08tB,EAAqBG,GAAwC,OAAzBH,QAA0D,IAAzBA,OAAkC,EAASA,EAAqBE,QAIrN,IAAME,EAAmD,oBAApBT,EAAiCA,EAAgBU,GAAWN,EAAqC,OAAzBC,QAA0D,IAAzBA,EAAkCA,EAAuB,KAAOL,EACxMrR,EAAuB/ttB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIqnrB,GAAwBJ,GAE/EnX,EAAcwX,GAAWN,EAAY,CACzCO,aAFmB,IAAH,OAAO3N,GAGvBA,UAAAA,EACA4N,QAAS,IAAF,OAAMnlB,GACbolB,OAAQ,IAAF,OAAMZ,IACXtR,GACGmS,EAAqB7+B,EAAQinB,EAAa,CAC9CxglB,OAAAA,EACAsqlB,UAAAA,EACAiN,cAAAA,EACAxkB,cAAAA,EACAslB,uBAAwBV,IAG1B,OADAh0I,EAAMlkkB,EAAWwmsB,GACV,EAA4E,KAA9D,OAAZz6sB,QAAgC,IAAZA,OAAqB,EAASA,EAAQqlQ,YAAwB,KAAOy2c,GAAe7voB,EAAO6yoB,GAAY8N,MAClIp4lB,ICzER,IAAMs4lB,GAAkB,SAAA7gpB,GAAS,QAE7BwgpB,EAkBExgpB,EAlBFwgpB,aACAC,EAiBEzgpB,EAjBFygpB,QACA/T,EAgBE1soB,EAhBF0soB,UACAjV,EAeEz3nB,EAfFy3nB,UACA3J,EAcE9tnB,EAdF8tnB,aACAE,EAaEhunB,EAbFgunB,WACAD,EAYE/tnB,EAZF+tnB,aACAE,EAWEjunB,EAXFiunB,UACA4K,EAUE74nB,EAVF64nB,WACAnK,EASE1unB,EATF0unB,oBACAgM,EAQE16nB,EARF06nB,mBACA0R,EAOEpsoB,EAPFosoB,SACAZ,EAMExroB,EANFwroB,UACAtU,EAKEl3nB,EALFk3nB,eACA4pB,EAIE9gpB,EAJF8gpB,YAEAC,EAEE/gpB,EAFF+gpB,eACAC,EACEhhpB,EADFghpB,UAEIC,EAAY,GAAH,OAAMT,EAAN,WACTU,EAAgB,IAAIC,GAAU,gBAAiB,CACnD,KAAM,CACJr5sB,QAAS,EACT5F,UAAW,oBACX2oH,QAAS,GAEX,OAAQ,CACN/iH,QAAS0jsB,EACTtpsB,UAAW,gBACX2oH,QAAS,KAGPu2lB,EAAiB,IAAID,GAAU,iBAAkB,CACrD,KAAM,CACJ9htB,UAAW2gE,EAAM90E,OACjB4c,QAAS0jsB,EACT3glB,QAAS,GAEX,OAAQ,CACNxrH,UAAW,EACXyI,QAAS,EACT+iH,QAAS,KAGPw2lB,GAAW,GACfv5sB,QAAS0jsB,EACTppG,UAAW,WAFI,mBAGXo+G,EAHW,6BAGsBC,GAAY,CAC/CrQ,cAAe,cACfkR,gBAAiBlV,EACjB73qB,SAAUskqB,KANG,mBAQXooB,EARW,YAQW,CACxBjotB,QAAS,eACT8O,QAASi5sB,EACTr9M,WAAYs9M,EACZ1iF,aAAc44D,EACdwV,UAAAA,EACAlxrB,cAAe,SAdF,mBAgBXglsB,EAhBW,sBAgBeC,GAAY,CACxC1trB,MAAO+6pB,KAjBM,mBAmBX0yB,EAnBW,oBAmBaC,GAAY,CACtC1trB,MAAOi7pB,KApBM,mBAsBXwyB,EAtBW,sBAsBeC,GAAY,CACxC1trB,MAAOg7pB,KAvBM,mBAyBXyyB,EAzBW,mBAyBYC,EAzBZ,oBA0BXD,EA1BW,sBA0BeC,GAAY,CACxC1trB,MAAOk7pB,IA3BM,GA8BjB,MAAO,YAGJuyB,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,KAA/C,GACdjtC,MAAO0kqB,EACP33rB,SAAU,QACVrN,IAAK25sB,EACLnhtB,MAAO,OACPuwB,cAAe,OACfshB,OAAQgkrB,IANM,mBAOVN,EAPU,YAOe,CAC3Be,kBAAmB,cARP,6BAWVf,EAXU,qCAYVA,EAZU,0BAaV,CACFhkmB,cAAe0kmB,EACf3+hB,kBAAmBm4gB,EACnB8mB,mBAAoB,SACpBC,wBAAyB/yB,KAjBb,6BAoBV8xB,EApBU,0BAoBoBA,EApBpB,4CAqBVA,EArBU,yBAqBmBA,EArBnB,iCAsBV,CACFgB,mBAAoB,aAvBR,mBAyBVhB,EAzBU,kBAyBqB,CACjChkmB,cAAe4kmB,EACf7+hB,kBAAmBm4gB,EACnB8mB,mBAAoB,SACpBC,wBAAyB/yB,KA7Bb,mBA+BV8xB,EA/BU,yBA+BmBA,EA/BnB,yBA+ByD,CACrEgB,mBAAoB,aAhCR,SAkCd,QAAS,CACPxslB,UAAW,MACX+pD,KAAM,CACJ/pD,UAAW,SArCD,MAHX,UA+CJwrlB,GA/CI,UAgDFS,EAAYxguB,OAAOw4C,OAAO,GAAIoorB,MAhD5B,oBAqDDb,EArDC,sBAqDkC//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIoorB,GAAc,CACnFv5sB,QAAS,EACTs6lB,UAAW,aAKjB,GAAew9G,GAAsB,WAAW,SAAA5/oB,GAE9C,IAAM0hpB,EAAgBnB,GAAWvgpB,EAAO,CACtC90E,OAAQ,MAEV,MAAO,CAAC21tB,GAAgBa,OACvB,SAAA1hpB,GAAK,MAAK,CACX8gpB,YAAa9gpB,EAAMqvnB,gBAAkB,GACrC2xB,UAAWhhpB,EAAMm4nB,gBACjB4oB,eAAgB,GAAF,QAAM/gpB,EAAM2tnB,gBAAkB3tnB,EAAMzrC,SAAWyrC,EAAMzyC,YAAc,EAAnE,cAA0EyyC,EAAMyroB,UAAhF,SACZ,CACF1pB,YAAY,ICtJVtgG,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAYI8xqB,GAAW,CACtBp5sB,KAAmB+zkB,GAAAA,cAAoB46H,GAAkB,MACzD/9qB,QAAsBmjjB,GAAAA,cAAoBq6H,GAAmB,MAC7Dt9qB,MAAoBijjB,GAAAA,cAAoBw6H,GAAmB,MAC3Dv+pB,QAAsB+jiB,GAAAA,cAAoB06H,GAAyB,MACnE4K,QAAsBtlI,GAAAA,cAAoB86H,GAAiB,OAEhDyK,GAAc,SAAAlhf,GACzB,IACEkye,EAIElye,EAJFkye,UACAv1sB,EAGEqjO,EAHFrjO,KACAhE,EAEEqnO,EAFFrnO,KACA5U,EACEi8O,EADFj8O,SAEF,OAAoB43lB,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW2+M,IAAAA,CAAW,GAAD,OAAIksgB,EAAJ,6BAAmCA,EAAnC,YAAgDv1sB,KACpEhE,GAAQqotB,GAASrktB,GAAoBg/kB,GAAAA,cAAoB,OAAQ,KAAM53lB,KA6B5E,GA1BkB,SAAAy0G,GAChB,IACe2onB,EAKT3onB,EALF05mB,UACA7qtB,EAIEmxG,EAJFnxG,UACAsV,EAGE67F,EAHF77F,KACAhE,EAEE6/F,EAFF7/F,KACAmB,EACE0+F,EADF1+F,QAEF4uT,EAAYo4R,GAAOtof,EAAO,CAAC,YAAa,YAAa,OAAQ,OAAQ,YAErEgimB,EACE7+G,GAAAA,WAAiBj8R,IADnB86Y,aAEI0X,EAAYiP,GAAmB3mB,EAAa,WAClD,EAAmB8X,GAASJ,GAAnBtqlB,GAAT,eACA,OAAoB+zd,GAAAA,cAAoBmiI,GAAQh+tB,OAAOw4C,OAAO,GAAIowR,EAAW,CAC3EwpZ,UAAWA,EACX7qtB,UAAW2+M,IAAAA,CAAW3+M,EAAWugI,EAAZ,UAAuBsqlB,EAAvB,uBACrBwJ,SAAU,OACVljgB,SAAU,KACV1+M,QAAsB6hlB,GAAAA,cAAoBulI,GAAa,CACrDhP,UAAWA,EACXv1sB,KAAMA,EACNhE,KAAMA,GACLmB,OC1DP,GADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,goBAAooB,KAAQ,QAAS,MAAS,YCM70BsntB,GAAgB,SAAuB5onB,EAAOvhD,GAChD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM0otB,OAMV,OAA4B1lI,GAAAA,WAAiBylI,ICVtC,SAASE,GAAcC,GAC5B,IAAIC,EACEC,EAAe,IAAItqrB,SAAQ,SAAA/tC,GAC/Bo4tB,EAAUD,GAAO,WACfn4tB,GAAQ,SAGNvB,EAAS,WACD,OAAZ25tB,QAAgC,IAAZA,GAA8BA,KAIpD,OAFA35tB,EAAO2vC,KAAO,SAACkqrB,EAAQnqrB,GAAT,OAAsBkqrB,EAAajqrB,KAAKkqrB,EAAQnqrB,IAC9D1vC,EAAO2B,QAAUi4tB,EACV55tB,EClBT,IAAIi5lB,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAaHyyqB,GAAsBhmI,GAAAA,YAAiB,SAACnjf,EAAOvhD,GACnD,IACEnlD,EAQE0mG,EARF1mG,IACWqvtB,EAOT3onB,EAPF05mB,UACc0P,EAMZppnB,EANFr3G,aACAo7tB,EAKE/jnB,EALF+jnB,SAJF,EASI/jnB,EAJFggH,SAAAA,OALF,MAFuB,EAEvB,EAME12M,EAGE02F,EAHF12F,IACAg9rB,EAEEtmmB,EAFFsmmB,eACAmI,EACEzumB,EADFyumB,aAEF,EAIItrH,GAAAA,WAAiBj8R,IAHnB86Y,EADF,EACEA,aACAh6rB,EAFF,EAEEA,kBACAikB,EAHF,EAGEA,QAEIytrB,EAAYiP,GAAmB3mB,EAAa,WAClD,EAAmB8X,GAASJ,GAAnBtqlB,GAAT,eAaMi6lB,EAA+BlmI,GAAAA,cAAoB,OAAQ,CAC/Dt0lB,UAAW,GAAF,OAAK6qtB,EAAL,aACKv2H,GAAAA,cAAoBylI,GAAe,CACjD/5tB,UAAW,GAAF,OAAK6qtB,EAAL,kBAGX,EV5Ba,WACb,IAAI4P,EAAa/guB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACjFghuB,EAAwBD,EAAW3guB,aACrCA,OAAyC,IAA1B4guB,EAAmChE,GAAsBgE,EACxElzB,EAASizB,EAAWjzB,OACpBqjB,EAAY4P,EAAW5P,UACvBqK,EAAWuF,EAAWvF,SACtBl1tB,EAAYy6tB,EAAWz6tB,UACvB4P,EAAQ6qtB,EAAW7qtB,MACnBgwsB,EAAe6a,EAAW7a,aAC1B+a,EAAcnlB,GAAyBilB,EAAYx0c,IACjD4vb,EAAkBvhH,GAAAA,WACpBwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDpksB,EAAYqksB,EAAiB,GAC7B8kB,EAAe9kB,EAAiB,GAC9B+kB,EAAmBvmI,GAAAA,SACnBwmI,EAA6BxmI,GAAAA,cAAoB0gI,GAAe,CAClEvjtB,UAAWA,EACXm+C,IAAKirqB,EACLhQ,UAAWA,EACXrjB,OAAQA,EACR0tB,SAAUA,EACVl1tB,UAAWA,EACX4P,MAAOA,EACPgwsB,aAAcA,IAEZ6V,EAAmBnhI,GAAAA,SAAe,IACpCohI,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDsF,EAAYrF,EAAiB,GAC7BsF,EAAetF,EAAiB,GAE9BuF,EAAM3mI,GAAAA,SAAc,WACtB,MAAO,CACLx/d,KAAM,SAAc7zD,GAClB,IAAIi6pB,EAAe9jhB,GAAYujhB,EAAa15pB,GACnB,OAArBi6pB,EAAaviuB,UAAqCoR,IAArBmxtB,EAAaviuB,MAC5CuiuB,EAAaviuB,IAAM,mBAAmB40B,OAAOopsB,IAC7CA,IAAa,GAEfqE,GAAa,SAAUhqe,GACrB,MAAO,GAAGzjO,QAAOi1kB,EAAAA,EAAAA,GAAmBxxW,GAAQ,CAAC,CAC3C17O,KAAM,OACN2rD,OAAQi6pB,SAIdriqB,MAAO,SAAelgE,GACpBqiuB,GAAa,SAAUhqe,GACrB,MAAO,GAAGzjO,QAAOi1kB,EAAAA,EAAAA,GAAmBxxW,GAAQ,CAAC,CAC3C17O,KAAM,QACN3c,IAAKA,SAIXq6G,QAAS,WACPgonB,GAAa,SAAUhqe,GACrB,MAAO,GAAGzjO,QAAOi1kB,EAAAA,EAAAA,GAAmBxxW,GAAQ,CAAC,CAC3C17O,KAAM,oBAKb,IAqCH,OAjCAg/kB,GAAAA,WAAgB,WACdsmI,EAAa9guB,QAGfw6lB,GAAAA,WAAgB,WAEVumI,EAAiB5qf,SAAW8qf,EAAU9ouB,SACxC8ouB,EAAUnpuB,SAAQ,SAAU0/P,GAC1B,OAAQA,EAAKh8O,MACX,IAAK,OACHultB,EAAiB5qf,QAAQn7G,KAAKw8H,EAAKrwL,QACnC,MACF,IAAK,QACH45pB,EAAiB5qf,QAAQp3K,MAAMy4L,EAAK34P,KACpC,MACF,IAAK,UACHkiuB,EAAiB5qf,QAAQj9H,cAS/BgonB,GAAa,SAAUG,GACrB,OAAOA,EAAS5juB,QAAO,SAAU+5P,GAC/B,OAAQype,EAAUttmB,SAAS6jI,YAIhC,CAACype,IAEG,CAACE,EAAKH,GUvESM,CAAkB,CACtCvQ,UAAAA,EACAj7sB,MAnBe,iBAAO,CACtBvF,KAAM,MACN6P,UAAW,mBACXzP,IAAa,OAARA,QAAwB,IAARA,EAAiBA,EAxBnB,IAyCnBzK,UAfmB,kBAAM2+M,IAAAA,CAAWp+E,GAAD,oBAC/BsqlB,EAD+B,QACbpwsB,KAetB+srB,OAZ4B,kBD/CzB,SAAmBqjB,EAAWpT,GACnC,MAAO,CACL0F,WAA+B,OAAnB1F,QAA8C,IAAnBA,EAA4BA,EAAvD,UAA2EoT,EAA3E,aC6CsBwQ,CAAUxQ,EAAWpT,IAavD6c,UAAU,EACV5nf,UAAW8tf,EACXrpgB,SAAAA,EACAr3N,aAAc,kBAA8B,OAAvByguB,QAAsD,IAAvBA,OAAgC,EAASA,OAAgD,OAAtBphtB,QAAoD,IAAtBA,OAA+B,EAASA,MAAwBhlB,SAAS+lC,MAC9Ng7rB,SAAAA,EACAtV,aAAAA,IAVF,eAAOqb,EAAP,KAAYK,EAAZ,KAkBA,OALAhnI,GAAAA,oBAA0B1kiB,GAAK,kBAAMn3D,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIgqrB,GAAM,CACzEpQ,UAAAA,EACAtqlB,OAAAA,EACAnjG,QAAAA,OAEKk+rB,KAKLh0R,GAAW,EACR,SAASi0R,GAAmBC,GACjC,IAAMC,EAAYnnI,GAAAA,OAAa,MAEzBonI,EAAUpnI,GAAAA,SAAc,WAG5B,IAAMz7hB,EAAQ,SAAAlgE,GACZ,IAAI6C,EACyB,QAA5BA,EAAKiguB,EAAUxrf,eAA4B,IAAPz0O,GAAyBA,EAAGq9D,MAAMlgE,IAGnEm8H,EAAO,SAAA7zD,GACX,IAAKw6pB,EAAUxrf,QAAS,CAEtB,IAAM0rf,EAAa,aAEnB,OADAA,EAAWxrrB,KAAO,aACXwrrB,EAET,MAKIF,EAAUxrf,QAJN2rf,EADR,EACE9mmB,KACA+1lB,EAFF,EAEEA,UACAtqlB,EAHF,EAGEA,OACAnjG,EAJF,EAIEA,QAEIy3rB,EAAkB,GAAH,OAAMhK,EAAN,WAEjBp4sB,EAOEwuD,EAPFxuD,QACAnB,EAME2vD,EANF3vD,KACAgE,EAKE2rD,EALF3rD,KACA3c,EAIEsoE,EAJFtoE,IACAqH,EAGEihE,EAHFjhE,UACA4P,EAEEqxD,EAFFrxD,MACA0ltB,EACEr0pB,EADFq0pB,QAEFuG,EAAapiI,GAAOx4hB,EAAQ,CAAC,UAAW,OAAQ,OAAQ,MAAO,YAAa,QAAS,YACnFm4nB,EAAYzgsB,EAKhB,YAJkBoR,IAAdqvrB,GAAyC,OAAdA,IAE7BA,EAAY,gBAAH,OADT9xP,IAAY,IAGP2yR,IAAc,SAAAl4tB,GAiBnB,OAhBA65tB,EAAWnjuB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI4qrB,GAAa,CACtDljuB,IAAKygsB,EACL3mrB,QAAsB6hlB,GAAAA,cAAoBulI,GAAa,CACrDhP,UAAWA,EACXv1sB,KAAMA,EACNhE,KAAMA,GACLmB,GACHsjtB,UAAW,MACX/1tB,UAAW2+M,IAAAA,CAAWrpM,GAAQ,GAAJ,OAAOu/sB,EAAP,YAA0Bv/sB,GAAQirH,EAAQvgI,EAAuB,OAAZo9B,QAAgC,IAAZA,OAAqB,EAASA,EAAQp9B,WACzI4P,MAAOnX,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAgB,OAAZ7T,QAAgC,IAAZA,OAAqB,EAASA,EAAQxtB,OAAQA,GACzG0ltB,QAAS,WACK,OAAZA,QAAgC,IAAZA,GAA8BA,IAClDvztB,QAIG,WACL82D,EAAMugoB,QAaNnsnB,EAAQ,CACZ6nD,KAAAA,EACA9hB,QAVc,SAAAr6G,GACd,IAAI6C,OACQuO,IAARpR,EACFkgE,EAAMlgE,GAEuB,QAA5B6C,EAAKiguB,EAAUxrf,eAA4B,IAAPz0O,GAAyBA,EAAGw3G,YAqCrE,MA9Ba,CAAC,OAAQ,UAAW,UAAW,QAAS,WAChDphH,SAAQ,SAAA0jB,GA2BX23D,EAAM33D,GA1BW,SAACwmtB,EAAc3qgB,EAAUmkgB,GACxC,IAAIr0pB,EASA86pB,EACAC,EARF/6pB,EADE66pB,GAAwC,kBAAjBA,GAA6B,YAAaA,EAC1DA,EAEA,CACPrptB,QAASqptB,GAMW,oBAAb3qgB,EACT6qgB,EAAgB7qgB,GAEhB4qgB,EAAiB5qgB,EACjB6qgB,EAAgB1G,GAElB,IAAM4F,EAAeziuB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CAC/CqkrB,QAAS0G,EACT7qgB,SAAU4qgB,GACT96pB,GAAS,CACV3rD,KAAAA,IAEF,OAAOw/G,EAAKommB,OAITjupB,IACN,IAEH,MAAO,CAACyupB,EAAsBpnI,GAAAA,cAAoBgmI,GAAQ7huB,OAAOw4C,OAAO,CACtEt4C,IAAK,kBACJ6iuB,EAAe,CAChB5rqB,IAAK6rqB,MCrLT,IAAIr+rB,GAAU,KACV6+rB,GAAM,SAAA97qB,GAAQ,OAAIA,KAClB46qB,GAAY,GACZmB,GAAsB,GAqB1B,IAAMC,GAA4B7nI,GAAAA,YAAiB,SAACjolB,EAAGujD,GACrD,IAAMwsqB,EAA0B,WAC9B,MAtBJ,WACE,MAOIF,GANS1oB,EADb,EACEqX,UACcwR,EAFhB,EAEEviuB,aACAq3N,EAHF,EAGEA,SACA12M,EAJF,EAIEA,IACAy6sB,EALF,EAKEA,SACAzqtB,EANF,EAMEA,IAIF,MAAO,CACLogtB,UAH0C,OAApBrX,QAAgD,IAApBA,EAA6BA,EAAkBtuY,KAAeiuY,aAAa,WAI7H1hsB,WAH8C,OAAvB4qtB,QAAsD,IAAvBA,OAAgC,EAASA,MAAyBlouB,SAAS+lC,KAIjIi3L,SAAAA,EACA12M,IAAAA,EACAy6sB,SAAAA,EACAzqtB,IAAAA,GAYI6xtB,GANFzR,EADF,EACEA,UACAp5sB,EAFF,EAEEA,UAMF,MAAO,CACLo5sB,UAAAA,EACA/wtB,aAAc,kBAAM2X,GACpByjtB,SAXF,EAGEA,SASA/jgB,SAZF,EAIEA,SASA12M,IAbF,EAKEA,IASAhQ,IAdF,EAMEA,MAWJ,EAA0C6plB,GAAAA,SAAe8nI,GAAzD,eAAOZ,EAAP,KAAsBe,EAAtB,KACA,EAAsBhB,GAAmBC,GAAzC,eAAOP,EAAP,KAAYK,EAAZ,KACMrvmB,EAASi5M,KACT4yZ,EAAgB7rmB,EAAOy8lB,mBACvB8T,EAAoBvwmB,EAAOw8lB,mBAC3BvmsB,EAAQ+pG,EAAO+0D,WACfy7iB,EAAO,WACXF,EAAiBH,IAgBnB,OAdA9nI,GAAAA,UAAgBmoI,EAAM,IACtBnoI,GAAAA,oBAA0B1kiB,GAAK,WAC7B,IAAM7vD,EAAWtH,OAAOw4C,OAAO,GAAIgqrB,GAOnC,OANAxiuB,OAAOC,KAAKqH,GAAUnO,SAAQ,SAAA+I,GAC5BoF,EAASpF,GAAU,WAEjB,OADA8huB,IACOxB,EAAItguB,GAAQgd,MAAMsjtB,EAAKvhuB,eAG3B,CACLqG,SAAAA,EACA08tB,KAAAA,MAGgBnoI,GAAAA,cAAoB3yR,GAAgB,CACtDkpZ,UAAWiN,EACXxkB,cAAekpB,EACft6sB,MAAOA,GACNo5sB,MAEL,SAASoB,KACP,IAAKt/rB,GAAS,CACZ,IAAMu/rB,EAAiBxouB,SAASq+H,yBAC1BoqmB,EAAa,CACjB5qiB,SAAU2qiB,GAsBZ,OApBAv/rB,GAAUw/rB,OAEVX,IAAI,WACF/qtB,GAAqBojlB,GAAAA,cAAoB6nI,GAAc,CACrDvsqB,IAAK,SAAAgY,GACH,MAGIA,GAAQ,GAFV7nE,EADF,EACEA,SACA08tB,EAFF,EAEEA,KAGF3srB,QAAQ/tC,UAAUouC,MAAK,YAChBysrB,EAAW78tB,UAAYA,IAC1B68tB,EAAW78tB,SAAWA,EACtB68tB,EAAWH,KAAOA,EAClBC,YAIJC,MAKHv/rB,GAAQr9B,WAIbg7tB,GAAUnpuB,SAAQ,SAAA0/P,GAChB,IACEh8O,EAEEg8O,EAFFh8O,KAKF,IAHIg8O,EADF5iG,QAKA,OAAQp5I,GACN,IAAK,OAED2mtB,IAAI,WACF,IAAM9B,EAAU/8rB,GAAQr9B,SAAS+0H,KAAKr8H,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIirrB,IAAsB5qe,EAAKrwL,SACrF,OAAZk5pB,QAAgC,IAAZA,GAA8BA,EAAQhqrB,KAAKmhN,EAAKvvP,SACpEuvP,EAAKure,WAAW1C,MAElB,MAEJ,IAAK,UACH8B,IAAI,WACU,OAAZ7+rB,SAAgC,IAAZA,IAA8BA,GAAQr9B,SAASizG,QAAQs+I,EAAK34P,QAElF,MAEF,QAEIsjuB,IAAI,WACF,IAAIa,EACE3C,GAAW2C,EAAoB1/rB,GAAQr9B,UAAUuV,GAAMqC,MAAMmltB,GAAmBt6H,EAAAA,EAAAA,GAAmBlxW,EAAKn5O,OAClG,OAAZgitB,QAAgC,IAAZA,GAA8BA,EAAQhqrB,KAAKmhN,EAAKvvP,SACpEuvP,EAAKure,WAAW1C,UAO5BY,GAAY,IAsCd,SAASgC,GAASzntB,EAAM6C,GAKtB,IAAM3X,EAASy5tB,IAAc,SAAAl4tB,GAC3B,IAAIo4tB,EACE7oe,EAAO,CACXh8O,KAAAA,EACA6C,KAAAA,EACApW,QAAAA,EACA86tB,WAAY,SAAAtxsB,GACV4usB,EAAU5usB,IAId,OADAwvsB,GAAUxouB,KAAK++P,GACR,WACD6oe,EACF8B,IAAI,WACF9B,OAGF7oe,EAAK5iG,SAAU,MAKrB,OADAgukB,KACOl8tB,EAST,IACMw8tB,GAAoB,CACxBlomB,KA/DF,SAAc7zD,GACZ,IAAMzgE,EAASy5tB,IAAc,SAAAl4tB,GAC3B,IAAIo4tB,EACE7oe,EAAO,CACXh8O,KAAM,OACN2rD,OAAAA,EACAl/D,QAAAA,EACA86tB,WAAY,SAAAtxsB,GACV4usB,EAAU5usB,IAId,OADAwvsB,GAAUxouB,KAAK++P,GACR,WACD6oe,EACF8B,IAAI,WACF9B,OAGF7oe,EAAK5iG,SAAU,MAKrB,OADAgukB,KACOl8tB,GAyCPwyG,QAVF,SAAiBr6G,GACfoiuB,GAAUxouB,KAAK,CACb+iB,KAAM,UACN3c,IAAAA,IAEF+juB,MAMAz7pB,OAzEF,SAAgCA,GAC9Bi7pB,GAAsBzjuB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIirrB,IAAsBj7pB,GAE5Eg7pB,IAAI,WACF,IAAIzguB,EACsE,QAAzEA,EAAiB,OAAZ4hC,SAAgC,IAAZA,QAAqB,EAASA,GAAQq/rB,YAAyB,IAAPjhuB,GAAyBA,EAAGpJ,KAAKgrC,QAqErH6/rB,WDrCa,SAAoBzB,GACjC,OAAOD,GAAmBC,ICqC1B0B,uCAAwCC,IAEpCC,GAAgBJ,GARN,CAAC,UAAW,OAAQ,UAAW,QAAS,WAShDpruB,SAAQ,SAAA0jB,GACd8ntB,GAAc9ntB,GAAQ,WACpB,IAAK,IAAIo0N,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAEzB,OAAOozf,GAASzntB,EAAM6C,OAuB1B,aCxPMkltB,GAAc9pnB,QACW,cAA7Bn8F,OAAOua,SAAS6rL,UAEe,UAA7BpmM,OAAOua,SAAS6rL,UAEhBpmM,OAAOua,SAAS6rL,SAASlqM,MAAM,2DAqCnC,SAASgqtB,GAAgBC,EAAOt8pB,GAC9BmvD,UAAUotmB,cACPv2pB,SAASs2pB,GACTptrB,MAAK,SAACstrB,GACLA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACd,MAApBD,IAGJA,EAAiBE,cAAgB,WACA,cAA3BF,EAAiB70oB,QACfsnC,UAAUotmB,cAAc3xnB,YAI1B9vE,QAAQ+1B,IACN,iHAGF10B,GAAAA,QACE,oFAIE6jC,GAAUA,EAAO0rI,UACnB1rI,EAAO0rI,SAAS8whB,KAMlB1hsB,QAAQ+1B,IAAI,sCACZ10B,GAAAA,QAAgB,sCAEZ6jC,GAAUA,EAAOimhB,WACnBjmhB,EAAOimhB,UAAUu2I,WAO5BrsrB,OAAM,SAACC,GACNtV,QAAQsV,MAAM,4CAA6CA,GAC3DjU,GAAAA,MAAc,g4BC7EP0gsB,IAAoBxpI,EAAAA,GAAAA,eAC/B,UAYWypI,IAAkBzpI,EAAAA,GAAAA,eAC7B,UAYW0pI,IAAe1pI,EAAAA,GAAAA,eAAwC,CAClE2pI,OAAQ,KACRvzoB,QAAS,KChDJ,SAASg7B,GAAUw4mB,EAAW9gsB,GACnC,IAAK8gsB,EAAM,MAAM,IAAIl3rB,MAAM5J,GAwI7B,SAAgB+gsB,GACd9xF,EACA+xF,EACAC,QACqB,IADrBA,IAAAA,EAAW,KAEX,IAGI3ghB,EAAW4ghB,IAFU,kBAAhBF,EAA2BG,GAAUH,GAAeA,GAEvB1ghB,UAAY,IAAK2ghB,GAEvD,GAAgB,MAAZ3ghB,EACF,OAAO,KAGT,IAAI8ghB,EAAWC,GAAcpyF,IA6E/B,SAA2BmyF,GACzBA,EAASrnrB,MAAK,SAACC,EAAGC,GAAJ,OACZD,EAAEuhC,QAAUthC,EAAEshC,MACVthC,EAAEshC,MAAQvhC,EAAEuhC,MAyCpB,SAAwBvhC,EAAaC,GACnC,IAAI5qB,EACF2qB,EAAEnlD,SAAWolD,EAAEplD,QAAUmlD,EAAEhgD,MAAM,GAAI,GAAGuwC,OAAM,SAAC0hB,EAAG3rD,GAAJ,OAAU2rD,IAAMhS,EAAE35C,MAElE,OAAO+uB,EAKH2qB,EAAEA,EAAEnlD,OAAS,GAAKolD,EAAEA,EAAEplD,OAAS,GAG/B,EApDEysuB,CACEtnrB,EAAEunrB,WAAW9muB,KAAK6gF,SAAAA,GAAD,OAAUA,EAAKkmpB,iBAChCvnrB,EAAEsnrB,WAAW9muB,KAAK6gF,SAAAA,GAAD,OAAUA,EAAKkmpB,qBAlFxCC,CAAkBL,GAGlB,IADA,IAAI9zoB,EAAU,KACLhtF,EAAI,EAAc,MAAXgtF,GAAmBhtF,EAAI8guB,EAASvsuB,SAAUyL,EACxDgtF,EAAUo0oB,GAAiBN,EAAS9guB,GAAIggN,GAG1C,OAAOhzH,EAgBT,SAAS+zoB,GACPpyF,EACAmyF,EACAO,EACAC,GA8CA,YA7Ce,IAHfR,IAAAA,EAA0B,SAGX,IAFfO,IAAAA,EAA2B,SAEZ,IADfC,IAAAA,EAAa,IAEb3yF,EAAOz6oB,SAAQ,SAAC2xoB,EAAO/woB,GACrB,IAAIkmF,EAAkB,CACpBumpB,aAAc17F,EAAMtkoB,MAAQ,GAC5ByrE,eAAuC,IAAxB64jB,EAAM74jB,cACrBk0pB,cAAepsuB,EACf+woB,MAAAA,GAGE7qjB,EAAKumpB,aAAa5xmB,WAAW,OAE7B30C,EAAKumpB,aAAa5xmB,WAAW2xmB,IAD/B,IAAU,GAOVtmpB,EAAKumpB,aAAevmpB,EAAKumpB,aAAa7nuB,MAAM4nuB,EAAW/suB,SAGzD,IAAIgN,EAAOiguB,GAAU,CAACF,EAAYtmpB,EAAKumpB,eACnCN,EAAaI,EAAYxxsB,OAAOmrD,GAKhC6qjB,EAAM7moB,UAAY6moB,EAAM7moB,SAASzK,OAAS,KAE1B,IAAhBsxoB,EAAM/woB,OADR,IAAU,GAMVisuB,GAAcl7F,EAAM7moB,SAAU8huB,EAAUG,EAAY1/tB,KAKpC,MAAdskoB,EAAMtkoB,MAAiBskoB,EAAM/woB,QAIjCgsuB,EAASjsuB,KAAK,CAAE0M,KAAAA,EAAM05E,MAAOwmpB,GAAalguB,EAAMskoB,EAAM/woB,OAAQmsuB,WAAAA,OAGzDH,EAcT,IAAMY,GAAU,SAMVC,GAAW7gtB,SAAAA,GAAD,MAAqB,MAANA,GAE/B,SAAS2gtB,GAAalguB,EAAczM,GAClC,IAAIohgB,EAAW30f,EAAKG,MAAM,KACtBkguB,EAAe1rO,EAAS3hgB,OAS5B,OARI2hgB,EAAS1/e,KAAKmrtB,MAChBC,IAPiB,GAUf9suB,IACF8suB,GAdoB,GAiBf1rO,EACJr8f,QAAQinB,SAAAA,GAAD,OAAQ6gtB,GAAQ7gtB,MACvBnjB,QACC,SAACs9E,EAAO0ob,GAAR,OACE1ob,GACCympB,GAAQvqsB,KAAKwse,GAvBM,EAyBJ,KAAZA,EAvBc,EACC,MAyBrBi+N,GAmBN,SAASR,GACPS,EACA7hhB,GAOA,IALA,IAAMihhB,EAAeY,EAAfZ,WAEFa,EAAgB,GAChBC,EAAkB,IAClB/0oB,EAAwB,GACnBhtF,EAAI,EAAGA,EAAIihuB,EAAW1suB,SAAUyL,EAAG,CAC1C,IAAIg7E,EAAOimpB,EAAWjhuB,GAClBqnB,EAAMrnB,IAAMihuB,EAAW1suB,OAAS,EAChCytuB,EACkB,MAApBD,EACI/hhB,EACAA,EAAStmN,MAAMqouB,EAAgBxtuB,SAAW,IAC5CqhB,EAAQqstB,GACV,CAAE1guB,KAAMy5E,EAAKumpB,aAAcv0pB,cAAegO,EAAKhO,cAAe3lD,IAAAA,GAC9D26sB,GAGF,IAAKpstB,EAAO,OAAO,KAEnB7a,OAAOw4C,OAAOuurB,EAAelstB,EAAMogB,QAEnC,IAAI6vmB,EAAQ7qjB,EAAK6qjB,MAEjB74iB,EAAQn4F,KAAK,CACXmhC,OAAQ8rsB,EACR9hhB,SAAUwhhB,GAAU,CAACO,EAAiBnstB,EAAMoqM,WAC5CkihB,aAAcC,GACZX,GAAU,CAACO,EAAiBnstB,EAAMsstB,gBAEpCr8F,MAAAA,IAGyB,MAAvBjwnB,EAAMsstB,eACRH,EAAkBP,GAAU,CAACO,EAAiBnstB,EAAMsstB,gBAIxD,OAAOl1oB,EAwDT,SAAgBi1oB,GAIdh5nB,EACA+2G,GAEuB,kBAAZ/2G,IACTA,EAAU,CAAE1nG,KAAM0nG,EAASj8B,eAAe,EAAO3lD,KAAK,IAGxD,MAwCF,SACE9lB,EACAyrE,EACA3lD,QACoB,IAFpB2lD,IAAAA,GAAgB,QAEI,IADpB3lD,IAAAA,GAAM,GAUN,IAAI+6sB,EAAuB,GACvBC,EACF,IACA9guB,EACGo7C,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,sBAAuB,QAC/BA,QAAQ,WAAW,SAAChuC,EAAWkmP,GAE9B,OADAute,EAAWvtuB,KAAKggQ,GACT,eAGTtzP,EAAKquH,SAAS,MAChBwymB,EAAWvtuB,KAAK,KAChBwtuB,GACW,MAAT9guB,GAAyB,OAATA,EACZ,QACA,qBAEN8guB,GAAgBh7sB,EACZ,QAOA,uCAKN,MAAO,CAFO,IAAI41B,OAAOolrB,EAAcr1pB,OAAgB3gE,EAAY,KAElD+1tB,GArFWE,CAC1Br5nB,EAAQ1nG,KACR0nG,EAAQj8B,cACRi8B,EAAQ5hF,KAHV,eAAKugG,EAAL,KAAcw6mB,EAAd,KAMIxstB,EAAQoqM,EAASpqM,MAAMgyG,GAC3B,IAAKhyG,EAAO,OAAO,KAEnB,IAAImstB,EAAkBnstB,EAAM,GACxBsstB,EAAeH,EAAgBplrB,QAAQ,UAAW,MAClD4lrB,EAAgB3stB,EAAMlc,MAAM,GAC5Bs8B,EAAiBossB,EAAWzkuB,QAC9B,SAAC+6lB,EAAM7jW,EAAW//P,GAGhB,GAAkB,MAAd+/P,EAAmB,CACrB,IAAI2te,EAAaD,EAAcztuB,IAAU,GACzCotuB,EAAeH,EACZrouB,MAAM,EAAGqouB,EAAgBxtuB,OAASiuuB,EAAWjuuB,QAC7CooD,QAAQ,UAAW,MAOxB,OAJA+7iB,EAAK7jW,GAiEX,SAAkCh/P,EAAeg/P,GAC/C,IACE,OAAOr1C,mBAAmB3pN,GAC1B,MAAO89C,GAQP,OAAO99C,GA5Ea4suB,CAChBF,EAAcztuB,IAAU,IAGnB4jmB,IAET,IAGF,MAAO,CACL1ikB,OAAAA,EACAgqL,SAAU+hhB,EACVG,aAAAA,EACAj5nB,QAAAA,GA4GJ,SAAgBy5nB,GACdC,EACAC,EACAC,GAEA,IAUIzluB,EAVA63D,EAAsB,kBAAV0tqB,EAAqB9B,GAAU8B,GAASA,EACpDG,EAAuB,KAAVH,GAAgC,KAAhB1tqB,EAAG+qJ,SAAkB,IAAM/qJ,EAAG+qJ,SAU/D,GAAkB,MAAd8ihB,EACF1luB,EAAOyluB,MACF,CACL,IAAIE,EAAqBH,EAAeruuB,OAAS,EAEjD,GAAIuuuB,EAAWnzmB,WAAW,MAAO,CAM/B,IALA,IAAIqzmB,EAAaF,EAAWphuB,MAAM,KAKT,OAAlBshuB,EAAW,IAChBA,EAAW/oqB,QACX8oqB,GAAsB,EAGxB9tqB,EAAG+qJ,SAAWgjhB,EAAW99tB,KAAK,KAKhC9H,EAAO2luB,GAAsB,EAAIH,EAAeG,GAAsB,IAGxE,IAAIxhuB,EA5EN,SAA4B0zD,EAAQguqB,QAA0B,IAA1BA,IAAAA,EAAe,KACjD,MAIkB,kBAAPhuqB,EAAkB4rqB,GAAU5rqB,GAAMA,EAHjC6tqB,EADZ,EACE9ihB,SADF,IAEE7yD,OAAAA,OAFF,MAEW,GAFX,MAGE7vE,KAAAA,OAHF,MAGS,GAHT,EAMI0iI,EAAW8ihB,EACXA,EAAWnzmB,WAAW,KACpBmzmB,EAWR,SAAyBvB,EAAsB0B,GAC7C,IAAI/sO,EAAW+sO,EAAatmrB,QAAQ,OAAQ,IAAIj7C,MAAM,KAYtD,OAXuB6/tB,EAAa7/tB,MAAM,KAEzBxN,SAASyvgB,SAAAA,GACR,OAAZA,EAEEzN,EAAS3hgB,OAAS,GAAG2hgB,EAAS7pd,MACb,MAAZs3d,GACTzN,EAASrhgB,KAAK8ugB,MAIXzN,EAAS3hgB,OAAS,EAAI2hgB,EAAShxf,KAAK,KAAO,IAvB5Cg+tB,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACLjjhB,SAAAA,EACA7yD,OAAQg2kB,GAAgBh2kB,GACxB7vE,KAAM8lpB,GAAc9lpB,IA4DX+lpB,CAAYpuqB,EAAI73D,GAY3B,OARE0luB,GACe,MAAfA,GACAA,EAAWlzmB,SAAS,OACnBruH,EAAKy+M,SAASpwF,SAAS,OAExBruH,EAAKy+M,UAAY,KAGZz+M,EAYT,SAAgBq/tB,GACd5ghB,EACA2ghB,GAEA,GAAiB,MAAbA,EAAkB,OAAO3ghB,EAE7B,IAAKA,EAAS9oL,cAAcy4F,WAAWgxmB,EAASzpsB,eAC9C,OAAO,KAGT,IAAI6wR,EAAW/nG,EAAS7mI,OAAOwnpB,EAASpsuB,QACxC,OAAIwzT,GAAyB,MAAbA,EAEP,KAGF/nG,EAAStmN,MAAMinuB,EAASpsuB,SAAW,IAG5C,IAAaituB,GAAan7H,SAAAA,GAAD,OACvBA,EAAMnhmB,KAAK,KAAKy3C,QAAQ,SAAU,MAEvBwlrB,GAAqBnihB,SAAAA,GAAD,OAC/BA,EAASrjK,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,MAEzCwmrB,GAAmBh2kB,SAAAA,GAAD,OACrBA,GAAqB,MAAXA,EAEPA,EAAOx9B,WAAW,KAClBw9B,EACA,IAAMA,EAHN,IAKAi2kB,GAAiB9lpB,SAAAA,GAAD,OACnBA,GAAiB,MAATA,EAAoBA,EAAKqyC,WAAW,KAAOryC,EAAO,IAAMA,EAAzC,ICjmB1B,SAAgBgmpB,GAAQruqB,GAEpBsuqB,MADF,IAAU,GAOV,OAA8B3sI,EAAAA,GAAAA,YAAiBwpI,IAAzCO,EAAN,EAAMA,SAAUjumB,EAAhB,EAAgBA,UAChB,EAAiC8wmB,GAAgBvuqB,GAA3CqoB,EAAN,EAAMA,KAAM0iI,EAAZ,EAAYA,SAAU7yD,EAAtB,EAAsBA,OAElBs2kB,EAAiBzjhB,EACrB,GAAiB,MAAb2ghB,EAAkB,CACpB,IAAImC,ED0iBR,SAA8B7tqB,GAE5B,MAAc,KAAPA,GAAuC,KAAzBA,EAAY+qJ,SAC7B,IACc,kBAAP/qJ,EACP4rqB,GAAU5rqB,GAAI+qJ,SACd/qJ,EAAG+qJ,SChjBY0jhB,CAAczuqB,GAC3B0uqB,EAA8B,MAAdb,GAAsBA,EAAWlzmB,SAAS,KAC9D6zmB,EACe,MAAbzjhB,EACI2ghB,GAAYgD,EAAgB,IAAM,IAClCnC,GAAU,CAACb,EAAU3ghB,IAG7B,OAAOttF,EAAUkxmB,WAAW,CAAE5jhB,SAAUyjhB,EAAgBt2kB,OAAAA,EAAQ7vE,KAAAA,IAQlE,SAAgBimpB,KACd,OAA4C,OAArC3sI,EAAAA,GAAAA,YAAiBypI,IAa1B,SAAgBwD,KAQd,OANEN,MADF,IAAU,IAOH3sI,EAAAA,GAAAA,YAAiBypI,IAAiBpssB,SAyD3C,SAAgB6vsB,KAEZP,MADF,IAAU,GAOV,OAA8B3sI,EAAAA,GAAAA,YAAiBwpI,IAAzCO,EAAN,EAAMA,SAAUjumB,EAAhB,EAAgBA,UACV1lC,GAAY4pgB,EAAAA,GAAAA,YAAiB0pI,IAA7BtzoB,QACU61oB,EAAqBgB,KAA/B7jhB,SAEF+jhB,EAAqBx0tB,KAAKC,UAC5Bw9E,EAAQ7yF,KAAKyb,SAAAA,GAAD,OAAWA,EAAMsstB,iBAG3BxkB,GAAY9mH,EAAAA,GAAAA,SAAa,GAsC7B,OArCAA,EAAAA,GAAAA,YAAgB,WACd8mH,EAAUnre,SAAU,MAGWqkX,EAAAA,GAAAA,cAC/B,SAAC3hiB,EAAiB5mD,GAOhB,QAPkD,IAAlCA,IAAAA,EAA2B,IAOtCqvsB,EAAUnre,QAEf,GAAkB,kBAAPt9K,EAAX,CAKA,IAAI1zD,EAAOmhuB,GACTztqB,EACA1lD,KAAK+6E,MAAMy5oB,GACXlB,GAGe,MAAblC,IACFp/tB,EAAKy+M,SAAWwhhB,GAAU,CAACb,EAAUp/tB,EAAKy+M,aAGzC3xM,EAAQsuC,QAAU+1E,EAAU/1E,QAAU+1E,EAAU79H,MACjD0M,EACA8M,EAAQ+8E,YAhBRsnC,EAAUsxmB,GAAG/uqB,KAmBjB,CAAC0rqB,EAAUjumB,EAAWqxmB,EAAoBlB,IAM9C,IAAMoB,IAAgBrtI,EAAAA,GAAAA,eAA6B,MAgDnD,SAAgB4sI,GAAgBvuqB,GAC9B,IAAM+3B,GAAY4pgB,EAAAA,GAAAA,YAAiB0pI,IAA7BtzoB,QACU61oB,EAAqBgB,KAA/B7jhB,SAEF+jhB,EAAqBx0tB,KAAKC,UAC5Bw9E,EAAQ7yF,KAAKyb,SAAAA,GAAD,OAAWA,EAAMsstB,iBAG/B,OAAOtrI,EAAAA,GAAAA,UACL,kBAAM8rI,GAAUztqB,EAAI1lD,KAAK+6E,MAAMy5oB,GAAqBlB,KACpD,CAAC5tqB,EAAI8uqB,EAAoBlB,IA2H7B,SAAgBqB,GACdl3oB,EACAm3oB,GAEA,YAD2B,IAD3BA,IAAAA,EAA8B,IAEf,MAAXn3oB,EAAwB,KAErBA,EAAQo3oB,aAAY,SAAC7D,EAAQ3qtB,EAAO9gB,GACzC,OACEuvuB,EAAAA,GAAAA,eAAC/D,GAAaprnB,SAAdmvnB,CACErluB,cAC0BqN,IAAxBuJ,EAAMiwnB,MAAM9xoB,QAAwB6hB,EAAMiwnB,MAAM9xoB,QAAUwsuB,EAE5D1quB,MAAO,CACL0quB,OAAAA,EACAvzoB,QAASm3oB,EAAct0sB,OAAOm9D,EAAQtzF,MAAM,EAAG5E,EAAQ,SAI5D,MC9TL,SAAgBwvuB,GAATlof,GAA+D,IAA3CnnL,EAA2C,EAA3CA,GAAItY,EAAuC,EAAvCA,QAASyuC,EAA8B,EAA9BA,MAEpCm4oB,MADF,IAAU,GAcV,IAAIgB,EAAWT,KAKf,OAJAltI,EAAAA,GAAAA,YAAgB,WACd2tI,EAAStvqB,EAAI,CAAEtY,QAAAA,EAASyuC,MAAAA,OAGnB,KAYT,SAAgBo5oB,GAAO/wnB,GACrB,ODuGF,SAA0B7kG,GACxB,IAAI2xtB,GAAS3pI,EAAAA,GAAAA,YAAiB0pI,IAAcC,OAC5C,OAAIA,GAEA8D,EAAAA,GAAAA,eAACJ,GAAc/unB,SAAfmvnB,CAAwBxuuB,MAAO+Y,GAAU2xtB,GAGtCA,EC9GAkE,CAAUhxnB,EAAM7kG,SAkCzB,SAAgB81tB,GACdzma,GAEA,IAAU,GAyBZ,SAAgB0ma,GAAT9nf,GAOoC,QANzC8jf,SAAUiE,OAM+B,MANhB,IAMgB,MALzC5luB,SAAAA,OAKyC,MAL9B,KAK8B,EAJ/B6luB,EAI+B,EAJzC5wsB,SAIyC,IAHzC6wsB,eAAAA,OAGyC,MAHxBC,GAAAA,IAGwB,EAFzCrymB,EAEyC,EAFzCA,UAEyC,IADzC0mT,OAAQ4rT,OACiC,SAEtCzB,MADH,IAAU,GAMV,IAAI5C,EAAWwB,GAAkByC,GAC7BK,GAAoBruI,EAAAA,GAAAA,UACtB,iBAAO,CAAE+pI,SAAAA,EAAUjumB,UAAAA,EAAW0mT,OAAQ4rT,KACtC,CAACrE,EAAUjumB,EAAWsymB,IAGI,kBAAjBH,IACTA,EAAehE,GAAUgE,IAG3B,MAMIA,EANJ,IACE7khB,SAAAA,OADF,MACa,IADb,MAEE7yD,OAAAA,OAFF,MAEW,GAFX,MAGE7vE,KAAAA,OAHF,MAGS,GAHT,MAIE8N,MAAAA,OAJF,MAIU,KAJV,MAKEnwF,IAAAA,OALF,MAKQ,UALR,EAQIg5B,GAAW2ikB,EAAAA,GAAAA,UAAc,WAC3B,IAAIsuI,EAAmBtE,GAAc5ghB,EAAU2ghB,GAE/C,OAAwB,MAApBuE,EACK,KAGF,CACLllhB,SAAUklhB,EACV/3kB,OAAAA,EACA7vE,KAAAA,EACA8N,MAAAA,EACAnwF,IAAAA,KAED,CAAC0luB,EAAU3ghB,EAAU7yD,EAAQ7vE,EAAM8N,EAAOnwF,IAS7C,OAAgB,MAAZg5B,EACK,MAIPowsB,EAAAA,GAAAA,eAACjE,GAAkBlrnB,SAAnBmvnB,CAA4BxuuB,MAAOovuB,IACjCZ,EAAAA,GAAAA,eAAChE,GAAgBnrnB,SAAjBmvnB,CACErluB,SAAUA,EACVnJ,MAAO,CAAEo+B,SAAAA,EAAU6wsB,eAAAA,MAiB3B,SAAgBK,GAATv4b,GAGoC,IAFzC5tS,EAEyC,EAFzCA,SACAi1B,EACyC,EADzCA,SAEA,ODUF,SACE06mB,EACA+xF,GAGE6C,MADF,IAAU,GAOV,IA4CItvsB,EA5CWkwsB,GAAkBvtI,EAAAA,GAAAA,YAAiB0pI,IAA5CtzoB,QACFo4oB,EAAajB,EAAcA,EAAc5vuB,OAAS,GAClD8wuB,EAAeD,EAAaA,EAAWpvsB,OAAS,GAEhDsvsB,GADiBF,GAAaA,EAAWplhB,SACpBolhB,EAAaA,EAAWlD,aAAe,KAsC5DqD,GArCcH,GAAcA,EAAWv/F,MAqCjBg+F,MAG1B,GAAInD,EAAa,OACX8E,EACqB,kBAAhB9E,EAA2BG,GAAUH,GAAeA,EAGpC,MAAvB4E,IAAA,OAAAA,EACEE,EAAkBxlhB,eADpB,EACEylhB,EAA4B91mB,WAAW21mB,KAF3C,IAAU,GASVrxsB,EAAWuxsB,OAEXvxsB,EAAWsxsB,EAGb,IAAIvlhB,EAAW/rL,EAAS+rL,UAAY,IAKhChzH,EAAUyzoB,GAAY9xF,EAAQ,CAAE3ub,SAHX,MAAvBslhB,EACItlhB,EACAA,EAAStmN,MAAM4ruB,EAAmB/wuB,SAAW,MAiBnD,OAAO2vuB,GACLl3oB,GACEA,EAAQ7yF,KAAKyb,SAAAA,GAAD,OACV7a,OAAOw4C,OAAO,GAAI39B,EAAO,CACvBogB,OAAQj7B,OAAOw4C,OAAO,GAAI8xrB,EAAczvtB,EAAMogB,QAC9CgqL,SAAUwhhB,GAAU,CAAC8D,EAAoB1vtB,EAAMoqM,WAC/CkihB,aACyB,MAAvBtstB,EAAMsstB,aACFoD,EACA9D,GAAU,CAAC8D,EAAoB1vtB,EAAMsstB,oBAGjDiC,GCrHKuB,CAAUC,GAAyB3muB,GAAWi1B,GAcvD,SAAgB0xsB,GACd3muB,GAEA,IAAI2voB,EAAwB,GAuC5B,OArCA/3C,GAAAA,SAAAA,QAAuB53lB,GAAWjL,SAAAA,GAChC,IAAK6imB,EAAAA,GAAAA,gBAAqB7imB,GAM1B,GAAIA,EAAQ6jB,OAASg/kB,GAAAA,SAArB,CAUE7imB,EAAQ6jB,OAAS8stB,IADnB,IAAU,GAOV,IAAI7+F,EAAqB,CACvB74jB,cAAej5E,EAAQ0/G,MAAMzmC,cAC7Bj5E,QAASA,EAAQ0/G,MAAM1/G,QACvBe,MAAOf,EAAQ0/G,MAAM3+G,MACrByM,KAAMxN,EAAQ0/G,MAAMlyG,MAGlBxN,EAAQ0/G,MAAMz0G,WAChB6moB,EAAM7moB,SAAW2muB,GAAyB5xuB,EAAQ0/G,MAAMz0G,WAG1D2voB,EAAO95oB,KAAKgxoB,QAzBV8I,EAAO95oB,KAAKolB,MACV00nB,EACAg3F,GAAyB5xuB,EAAQ0/G,MAAMz0G,cA0BtC2voB,gaCtKF,SAASi3F,GAAT,GAIgB,IAHrBjF,EAGqB,EAHrBA,SACA3huB,EAEqB,EAFrBA,SACA0a,EACqB,EADrBA,OAEImstB,GAAajvI,EAAAA,GAAAA,UACS,MAAtBivI,EAAWtzf,UACbszf,EAAWtzf,wlDAAUuzf,CAAqB,CAAEpstB,OAAAA,KAG9C,IAAIokqB,EAAU+nD,EAAWtzf,QACzB,GAAwBqkX,EAAAA,GAAAA,UAAe,CACrClilB,OAAQopqB,EAAQppqB,OAChBuf,SAAU6ppB,EAAQ7ppB,WAFpB,eAAKm3D,EAAL,KAAYoiD,EAAZ,KAOA,OAFAopd,EAAAA,GAAAA,kBAAsB,kBAAMknF,EAAQnoc,OAAOnoG,KAAW,CAACswiB,KAGrDumD,EAAAA,GAAAA,eAACM,GAADN,CACE1D,SAAUA,EACV3huB,SAAUA,EACVi1B,SAAUm3D,EAAMn3D,SAChB6wsB,eAAgB15oB,EAAM12E,OACtBg+G,UAAWorjB,QA4FJioD,IAAOnvI,EAAAA,GAAAA,aAClB,WAEE1kiB,GACA,IAFE+I,EAEF,EAFEA,QAAS+qqB,EAEX,EAFWA,eAEX,IAF2BrprB,QAAAA,OAE3B,SAF4CyuC,EAE5C,EAF4CA,MAAOvwF,EAEnD,EAFmDA,OAAQo6D,EAE3D,EAF2DA,GAAO81Z,EAElE,SACI/2Z,EAAOsvqB,GAAQruqB,GACfgxqB,EAwHD,SACLhxqB,EADK,GAW6C,iBAD9C,GAC8C,EARhDp6D,EAQgD,EARhDA,OACSqruB,EAOuC,EAPhDvprB,QACAyuC,EAMgD,EANhDA,MAOEm5oB,EAAWT,KACX7vsB,EAAW4vsB,KACXtiuB,EAAOiiuB,GAAgBvuqB,GAE3B,OAAO2hiB,EAAAA,GAAAA,cACJnolB,SAAAA,GACC,GACmB,IAAjBA,EAAMrY,UACJyE,GAAqB,UAAXA,KAjKpB,SAAyB4T,GACvB,SAAUA,EAAMmyC,SAAWnyC,EAAM6C,QAAU7C,EAAMwrB,SAAWxrB,EAAMrX,UAiK3D+uuB,CAAgB13tB,GACjB,CACAA,EAAMnT,iBAIN,IAAIqhD,IACAuprB,GAAeE,GAAWnysB,KAAcmysB,GAAW7kuB,GAEvDgjuB,EAAStvqB,EAAI,CAAEtY,QAAAA,EAASyuC,MAAAA,OAG5B,CAACn3D,EAAUswsB,EAAUhjuB,EAAM2kuB,EAAa96oB,EAAOvwF,EAAQo6D,IAzJjCoxqB,CAAoBpxqB,EAAI,CAAEtY,QAAAA,EAASyuC,MAAAA,EAAOvwF,OAAAA,IAUhE,OAEEw8B,EAAAA,GAAAA,eAAAA,IAAAA,GAAAA,GACM0zb,EADN,CAEE/2Z,KAAMA,EACNiH,QAdJ,SACExsD,GAEIwsD,GAASA,EAAQxsD,GAChBA,EAAM2pH,kBAAqB4tmB,GAC9BC,EAAgBx3tB,IAUhByjD,IAAKA,EACLr3D,OAAQA,QC3RhB,IACA,GADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+QAAmR,KAAQ,UAAW,MAAS,UCMtcyruB,GAAgB,SAAuB7ynB,EAAOvhD,GAChD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM2ytB,OAMV,OAA4B3vI,GAAAA,WAAiB0vI,IC0N7C,GAzOgB,kBAAmB1vI,GAAAA,cAAoB,MAAO,CAC5DrxlB,MAAO,MACPC,OAAQ,OACMoxlB,GAAAA,cAAoB,OAAQ,KAAmBA,GAAAA,cAAoB,OAAQ,CACzF7lf,EAAG,gCACa6lf,GAAAA,cAAoB,IAAK,CACzCzme,KAAM,OACNq2mB,SAAU,WACI5vI,GAAAA,cAAoB,IAAK,CACvCp6kB,UAAW,qBACGo6kB,GAAAA,cAAoB,OAAQ,CAC1Czme,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wLACHof,KAAM,UACNm/V,KAAM,aACUsnI,GAAAA,cAAoB,OAAQ,CAC5C7lf,EAAG,6EACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6DACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0VACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2QACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4DACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sJACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gaACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C3ojB,OAAQ,OACRC,YAAa,IACb6iE,EAAG,sKACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uJACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sxBACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qOACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,8nBACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0MACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kFACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+LACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,siBACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0FACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wCACH9iE,OAAQ,UACRw4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2hBACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+HACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sMACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4LACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qQACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yTACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mOACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gXACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+PACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C3ojB,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,QAChB31nB,EAAG,+CACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gGACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gHACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0EACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oEACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6GACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3Czme,KAAM,UACNpf,EAAG,6DACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mIACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3Czme,KAAM,UACNpf,EAAG,sHACY6lf,GAAAA,cAAoB,OAAQ,CAC3Czme,KAAM,UACNpf,EAAG,mPACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wGACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qEACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mLACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,aC0ClB,GAjRoB,kBAAmB9vI,GAAAA,cAAoB,MAAO,CAChErxlB,MAAO,MACPC,OAAQ,OACMoxlB,GAAAA,cAAoB,OAAQ,KAAmBA,GAAAA,cAAoB,OAAQ,CACzF7lf,EAAG,6BACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+BACa6lf,GAAAA,cAAoB,IAAK,CACzCzme,KAAM,OACNq2mB,SAAU,WACI5vI,GAAAA,cAAoB,IAAK,CACvCp6kB,UAAW,qBACGo6kB,GAAAA,cAAoB,OAAQ,CAC1Czme,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+KACHof,KAAM,UACNm/V,KAAM,aACUsnI,GAAAA,cAAoB,OAAQ,CAC5C7lf,EAAG,+EACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2DACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sVACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kQACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6TACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gNACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2MACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uFACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wOACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4WACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C3ojB,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,QAChB31nB,EAAG,0CACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yEACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oGACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6EACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2VACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uMACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iMACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,8EACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oLACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oSACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qNACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4QACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iFACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6LACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+iBACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yFACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wmBACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iPACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sMACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sMACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kQACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sJACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4ZACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qMACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qDACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,8TACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4YACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,gOACH9iE,OAAQ,UACRC,YAAa,IACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3Czme,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3Czme,KAAM,UACNm/V,KAAM,UACNv+W,EAAG,6CACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uUACHof,KAAM,UACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0VACHof,KAAM,OACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uKACHof,KAAM,UACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qIACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,QAChBp3Q,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,orBACHof,KAAM,OACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uKACHof,KAAM,UACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,8CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,QAChBp3Q,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uHACHof,KAAM,UACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qHACHof,KAAM,UACNm/V,KAAM,YACSsnI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oKACHof,KAAM,UACNm/V,KAAM,eChDR,GA/NqB,kBAAmBsnI,GAAAA,cAAoB,MAAO,CACjErxlB,MAAO,MACPC,OAAQ,OACMoxlB,GAAAA,cAAoB,IAAK,CACvCzme,KAAM,OACNq2mB,SAAU,WACI5vI,GAAAA,cAAoB,OAAQ,CAC1C7lf,EAAG,4LACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2EACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yDACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wVACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0QACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4DACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,6JACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iYACH9iE,OAAQ,OACRC,YAAa,MACE0ojB,GAAAA,cAAoB,OAAQ,CAC3C3ojB,OAAQ,OACRC,YAAa,IACb6iE,EAAG,qKACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yLACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,ubACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,sHACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,oVACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wLACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kTACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+UACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wEACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0MACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0IACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2QACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C3ojB,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,QAChB31nB,EAAG,qDACY6lf,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4FACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wEACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wGACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0DACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yCACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,yCACH9iE,OAAQ,UACRC,YAAa,OACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uMACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,2CACH9iE,OAAQ,UACRC,YAAa,MACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mNACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qQACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,8EACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,qJACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,4LACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,wKACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,+hBACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0FACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,0CACH9iE,OAAQ,UACRw4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,ujBACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,UACD9vI,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,kIACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,mMACHof,KAAM,SACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,iMACHof,KAAM,YACSyme,GAAAA,cAAoB,OAAQ,CAC3C7lf,EAAG,uQACH9iE,OAAQ,UACRC,YAAa,QACbu4rB,cAAe,QACfC,eAAgB,aC5NZC,GAAe,SAAArspB,GAAS,MAE1BwgpB,EASExgpB,EATFwgpB,aACAhnB,EAQEx5nB,EARFw5nB,mBACAinB,EAOEzgpB,EAPFygpB,QACA34sB,EAMEk4D,EANFl4D,QACA8jsB,EAKE5roB,EALF4roB,UACAJ,EAIExroB,EAJFwroB,UACAG,EAGE3roB,EAHF2roB,UACAS,EAEEpsoB,EAFFosoB,SACA7+qB,EACEyyC,EADFzyC,WAEF,sBAEGizrB,EAAe,CACd14sB,QAAS,GAAF,OAAiB,EAAZ6jsB,EAAL,cAAwBC,EAAxB,MAEP,QAAS,CACP52kB,UAAW,UANjB,mBAUMwrlB,EAVN,YAUsBA,EAVtB,UAU6C,CACzCv1tB,MAAO+0E,EAAMsspB,WACbphuB,OAAQ80E,EAAMuspB,YACdtuiB,OAAQ,UAbZ,mBAeMuiiB,EAfN,YAesBA,EAftB,kBAgBIlpR,aAAcq0Q,EACdvpG,UAAW,UAjBf,cAkBYq+G,GAAY,CAClBlsrB,SAAUyrC,EAAMwspB,iBAnBtB,mBAsBMhM,EAtBN,YAsBsBA,EAtBtB,UAsB6C,CACzCztrB,MAAOitC,EAAM2poB,iBACbp1qB,SAAUyrC,EAAMyspB,cAChBl/rB,WAAYisqB,EACZkzB,YAAatgB,EACbhqG,UAAW,YA3Bf,mBA6BMo+G,EA7BN,YA6BsBA,EA7BtB,aA6BgD,CAC5CztrB,MAAOitC,EAAM6poB,qBACbt1qB,SAAUyrC,EAAM2spB,iBAChBp/rB,WAAAA,EACA60kB,UAAW,YAjCf,mBAmCMo+G,EAnCN,YAmCsBA,EAnCtB,YAmC+C,CAC3Clwe,UAAWq7d,EACX7jsB,QAAS,GAAF,OAAK6jsB,EAAL,cAA8B,IAAV7jsB,EAApB,MACPkV,gBAAiBgjD,EAAMqpoB,kBAtC3B,mBAwCMmX,EAxCN,YAwCsBA,EAxCtB,UAwC6C,CACzCviiB,OAAQj+G,EAAM4spB,YACdxqH,UAAW,SACX,QAAS,CACPk/G,gBAAiB9V,EACjB,eAAgB,CACd8V,gBAAiB,MA9CzB,GAoDIuL,GAAqB,SAAA7spB,GAAS,MAEhCwgpB,EAEExgpB,EAFFwgpB,aACAC,EACEzgpB,EADFygpB,QAEF,gCACMD,EADN,oBAC8BA,EAD9B,mBACqDC,GAAY,CAC7D1trB,MAAOitC,EAAM8spB,0BAFjB,mBAIMtM,EAJN,kBAI4BA,EAJ5B,mBAImDC,GAAY,CAC3D1trB,MAAOitC,EAAM+spB,wBALjB,mBAOMvM,EAPN,iBAO2BA,EAP3B,mBAOkDC,GAAY,CAC1D1trB,MAAOitC,EAAMgtpB,uBARjB,mBAUMxM,EAVN,oBAU8BA,EAV9B,mBAUqDC,GAAY,CAC7D1trB,MAAOitC,EAAMitpB,yBAXjB,GAiBIniH,GAAW,SAAA9qiB,GAAK,OAFC,SAAAA,GAAK,MAAI,CAACqspB,GAAarspB,GAAQ6spB,GAAmB7spB,IAE/CktpB,CAAeltpB,IACzC,GAAe4/oB,GAAsB,UAAU,SAAA5/oB,GAC7C,IAIMmtpB,EAAc5M,GAAWvgpB,EAAO,CACpCgtpB,oBAL0BhtpB,EAAMiunB,UAMhC8+B,qBAL2B/spB,EAAMgunB,WAMjC8+B,uBAL6B9spB,EAAM8tnB,aAMnCm/B,uBAL6BjtpB,EAAM+tnB,aAMnCu+B,WAAY,IACZC,YAAa,MAEf,MAAO,CAACzhH,GAASqiH,OAChB,SAAAntpB,GAAK,MAAK,CACXyspB,cAAezspB,EAAMi5nB,iBACrB0zB,iBAAkB3spB,EAAMzrC,SACxBi4rB,aAAuC,EAAzBxspB,EAAMi5nB,iBACpB2zB,YAAa,GAAF,OAAK5spB,EAAM2roB,UAAX,gBC7FAyhB,GAAU,CACrBj0rB,QAASw9qB,GACTt9qB,MAAOy9qB,GACPvusB,KAAMyusB,GACNz+pB,QAASyzqB,IAEEqB,GAAe,CAC1B,IAAOC,GACP,IAAOC,GACP,IAAOC,IAGHC,GAAkBhtuB,OAAOC,KAAK2suB,IAC9B14Z,GAAO,SAAAh0F,GACX,IACEkye,EAGElye,EAHFkye,UACAv5sB,EAEEqnO,EAFFrnO,KACA+3B,EACEsvM,EADFtvM,OAEIrpC,EAAY2+M,IAAAA,CAAW,GAAD,OAAIksgB,EAAJ,UAE5B,GAAI4a,GAAgBh4mB,SAAhB,UAA4BpkF,IAAW,CACzC,IAAMq8rB,EAAeL,GAAah8rB,GAClC,OAAoBirjB,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW,GAAF,OAAKA,EAAL,YAAkB6qtB,EAAlB,WACKv2H,GAAAA,cAAoBoxI,EAAc,OAEpD,IAAMC,EAAwBrxI,GAAAA,cAAoB8wI,GAAQ/7rB,IAC1D,OAAa,OAAT/3B,IAA0B,IAATA,EACZ,KAEWgjlB,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAWA,GACVsR,GAAQq0tB,IAEPC,GAAQ,SAAA9rf,GACZ,IACE+we,EAEE/we,EAFF+we,UACA9qc,EACEjmC,EADFimC,MAEF,OAAKA,EAGeu0U,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW,GAAF,OAAK6qtB,EAAL,WACR9qc,GAJM,MAMLx5K,GAAS,SAAAg0I,GACb,IACa84d,EAUT94d,EAVFswe,UACWgb,EASTtrf,EATFv6O,UACAqutB,EAQE9ze,EARF8ze,cACAyX,EAOEvrf,EAPFurf,SACAvotB,EAMEg9N,EANFh9N,MACA3N,EAKE2qO,EALF3qO,MACAlT,EAIE69O,EAJF79O,SAPF,EAWI69O,EAHFlxM,OAAAA,OARF,MAQW,OARX,EASE/3B,EAEEipO,EAFFjpO,KACAyuQ,EACExlC,EADFwlC,MAEF,EAIIu0U,GAAAA,WAAiBj8R,IAHnB86Y,EADF,EACEA,aACAnmkB,EAFF,EAEEA,UACAxsI,EAHF,EAGEA,OAEIqqtB,EAAY1X,EAAa,SAAUE,GAEzC,EAA0B4X,GAASJ,GAAnC,eAAOG,EAAP,KAAgBzqlB,EAAhB,KACMvgI,EAAY2+M,IAAAA,CAAWksgB,EAAD,UAAeA,EAAf,YAA4BxhrB,GAAUw8rB,EAA+B,OAAXrluB,QAA8B,IAAXA,OAAoB,EAASA,EAAOR,UAAWqutB,GAA5H,oBACtBxD,EADsB,QACU,QAAd79kB,GACrBzM,GACGo4jB,EAAclgsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAe,OAAXzwC,QAA8B,IAAXA,OAAoB,EAASA,EAAOoP,OAAQA,GACnH,OAAOo7sB,EAAsB12H,GAAAA,cAAoB,MAAO,CACtDt0lB,UAAWA,EACX4P,MAAO+orB,GACOrkG,GAAAA,cAAoB3nR,GAAM,CACxCk+Y,UAAWA,EACXxhrB,OAAQA,EACR/3B,KAAMA,IACSgjlB,GAAAA,cAAoB,MAAO,CAC1Ct0lB,UAAW,GAAF,OAAK6qtB,EAAL,WACRttsB,GAAQuotB,GAAyBxxI,GAAAA,cAAoB,MAAO,CAC7Dt0lB,UAAW,GAAF,OAAK6qtB,EAAL,cACRib,GAAwBxxI,GAAAA,cAAoBsxI,GAAO,CACpD/a,UAAWA,EACX9qc,MAAOA,IACLrjR,GAAyB43lB,GAAAA,cAAoB,MAAO,CACtDt0lB,UAAW,GAAF,OAAK6qtB,EAAL,aACRnutB,MAEL6pG,GAAOw/nB,oBAAsBV,GAAa,KAC1C9+nB,GAAOy/nB,oBAAsBX,GAAa,KAC1C9+nB,GAAO0/nB,oBAAsBZ,GAAa,KAI1C,UCnGIa,GAA6B,SAAUxwB,IACzCn0G,EAAAA,EAAAA,GAAU2kI,EAAexwB,GACzB,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAaolI,GAC1B,SAASA,IACP,IAAI9/pB,GACJ25hB,EAAAA,EAAAA,GAAgBpumB,KAAMu0uB,GACtB,IAAK,IAAIx8f,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAOzB,OALAvjK,EAAQ8/C,EAAO9zH,KAAKulB,MAAMuuG,EAAQ,CAACv0H,MAAM47B,OAAOpV,KAChDqzD,EAAAA,EAAAA,IAAgBq0hB,EAAAA,EAAAA,GAAuBz5hB,GAAQ,QAAS,CACtD+/pB,UAAU,EACVC,UAAW,KAENhgqB,EA+BT,OA7BAg6hB,EAAAA,EAAAA,GAAa8lI,EAAe,CAAC,CAC3BvtuB,IAAK,oBACLpF,MAAO,SAA2B89C,EAAO+0rB,GAGvCrqsB,QAAQ+1B,IAAIzgB,EAAO+0rB,KAEpB,CACDztuB,IAAK,SACLpF,MAAO,WACL,OAAI5B,KAAKm3F,MAAMq9oB,UAEOE,EAAAA,GAAAA,KAAK9/nB,GAAQ,CAC/Bl9D,OAAQ,QACR9rB,MAAO,wBACPwiQ,MAAOpuR,KAAKm3F,MAAMs9oB,YAGfz0uB,KAAKw/G,MAAMz0G,YAElB,CAAC,CACH/D,IAAK,2BACLpF,MAAO,SAAkC89C,GACvC,MAAO,CACL80rB,UAAU,EACVC,UAAW/0rB,EAAMjU,aAIhB8osB,EA7CwB,CA8C/B5xI,GAAAA,WCzDF,SAASgyI,GAAM1/G,GACd,IAAIt9jB,EAAGh6C,EAAG6gE,EAAI,GAEd,GAAmB,kBAARy2iB,GAAmC,kBAARA,EACrCz2iB,GAAOy2iB,OACD,GAAmB,kBAARA,EACjB,GAAI1vnB,MAAMi2E,QAAQy5iB,GACjB,IAAKt9jB,EAAE,EAAGA,EAAIs9jB,EAAI30nB,OAAQq3D,IACrBs9jB,EAAIt9jB,KACHh6C,EAAIg3tB,GAAM1/G,EAAIt9jB,OACjB6mB,IAAQA,GAAO,KACfA,GAAO7gE,QAKV,IAAKg6C,KAAKs9jB,EACLA,EAAIt9jB,KACP6mB,IAAQA,GAAO,KACfA,GAAO7mB,GAMX,OAAO6mB,EAGO,SAAS,KAEvB,IADA,IAASkwE,EAAK19I,EAAVjF,EAAE,EAAWyyE,EAAI,GACdzyE,EAAIhE,UAAUzH,SAChBouJ,EAAM3mJ,UAAUgE,QACfiF,EAAI2juB,GAAMjmlB,MACblwE,IAAQA,GAAO,KACfA,GAAOxtE,GAIV,OAAOwtE,ECtCD,IAAMo2pB,GAAgB,SAAC7ohB,GAAD,MAAsB13H,sBAAyB03H,GCIrE,SAAS8ohB,GAAc9ohB,EAAkBntK,GAC9C,IAAM0/L,EALD,SAAuBvyB,GAC5B,OAAOA,EAASt+M,MAAM,QAAQ,GAIdqnuB,CAAc/ohB,GAC9B,SAAKuyB,IAAY1/L,KAIb0/L,IAAY1/L,GAIZ0/L,EAAQn4O,QAAQy4C,IAAQ,mSCcvB,IAAMm2rB,GAAmB,CAC9B,KACA,MACA,WACA,KACA,KACA,SACA,MACA,QACA,OACA,WACA,OACA,KACA,QACA,SACA,QACA,QACA,QACA,QACA,KACA,KACA,OAYWC,GAA6C,CAExD,iBAAkB,gBAClBC,cAAe,gBACfC,UAAW,YACXC,gBAAiB,kBACjBC,eAAgB,iBAChB7wqB,aAAc,eACd8wqB,YAAa,cACbn5M,UAAW,YACXo5M,SAAU,WACVC,SAAU,WACVC,YAAa,cACbC,YAAa,cACblwL,QAAS,UACT5zhB,MAAO,YACP+jtB,QAAS,UACTr8hB,UAAW,YACXs8hB,QAAS,UACTC,gBAAiB,kBACjBC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,wBAAyB,0BACzB1uX,SAAU,WACV2uX,eAAgB,iBAChBC,aAAc,eACdC,QAAS,UACTxqK,IAAK,UACLyqK,WAAY,aACZC,WAAY,aACZC,YAAa,cACbC,eAAgB,iBAChBC,WAAY,aACZC,YAAa,cACbC,SAAU,WACVC,QAAS,UACTC,UAAW,YACX,aAAc,YACdj3tB,KAAM,OACNk3tB,UAAW,YACXz2U,UAAW,YACX02U,OAAQ,SACRC,SAAU,WACVC,QAAS,UACTC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,QAAS,UACTC,YAAa,cACbC,aAAc,eACdC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZ3ia,SAAU,WACV4ia,eAAgB,iBAChBC,QAAS,UACTxrR,WAAY,aACZyrR,OAAQ,SACRC,QAAS,UACTC,OAAQ,SACRv4L,SAAU,WACVw4L,cAAe,gBACfC,OAAQ,SAGRC,aAAc,eACd,gBAAiB,eACjBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,aAAc,eACdC,WAAY,aACZ,cAAe,aACfC,cAAe,gBACfC,cAAe,gBACfC,YAAa,cACbC,cAAe,gBACfC,cAAe,gBACf,iBAAkB,gBAClBC,YAAa,cACbC,SAAU,WACVC,UAAW,YACX,aAAc,YACdC,SAAU,WACV,YAAa,WACbC,cAAe,gBACfC,SAAU,WACV,YAAa,WACbC,mBAAoB,qBACpB,sBAAuB,qBACvBC,0BAA2B,4BAC3B,8BAA+B,4BAC/BC,aAAc,eACd,gBAAiB,eACjBC,eAAgB,iBAChB,kBAAmB,iBACnBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,SAAU,WACVC,iBAAkB,mBAClB,oBAAqB,mBACrBC,0BAA2B,4BAC3BC,YAAa,cACb,eAAgB,cAChBC,SAAU,WACV,YAAa,WACbC,UAAW,YACXC,YAAa,cACbC,aAAc,eACd,gBAAiB,eACjBC,WAAY,aACZ,cAAe,aACfC,WAAY,aACZ,cAAe,aACfC,SAAU,WACV,YAAa,WACbC,eAAgB,iBAChB,mBAAoB,iBACpBC,YAAa,cACb,eAAgB,cAChBC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,WAAY,aACZ,cAAe,aACfC,UAAW,YACX,aAAc,YACdC,2BAA4B,6BAC5B,+BAAgC,6BAChCC,yBAA0B,2BAC1B,6BAA8B,2BAC9BC,SAAU,WACVC,kBAAmB,oBACnBC,cAAe,gBACfC,UAAW,YACX,cAAe,YACfC,aAAc,eACd,iBAAkB,eAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,aAAc,eACdC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,SAAU,WACVC,aAAc,eACdC,cAAe,gBACf,iBAAkB,gBAClBC,cAAe,gBACf,iBAAkB,gBAClBC,kBAAmB,oBACnBC,UAAW,YACX,aAAc,YACdC,aAAc,eACdC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,YAAa,cACbC,YAAa,cACbC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,iBAAkB,mBAClB,oBAAqB,mBACrBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,WAAY,aACZ,cAAe,aACf,WAAY,UACZC,WAAY,aACZC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,aAAc,eACdC,cAAe,gBACf,iBAAkB,gBAClBC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,gBACfC,oBAAqB,sBACrBC,eAAgB,iBAChBC,KAAM,OACNC,KAAM,OACNC,gBAAiB,kBACjB,mBAAoB,kBACpBC,YAAa,cACbC,UAAW,YACXC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,sBAAuB,wBACvB,yBAA0B,wBAC1BC,uBAAwB,yBACxB,0BAA2B,yBAC3BC,gBAAiB,kBACjB,mBAAoB,kBACpBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,cAAe,gBACf,iBAAkB,gBAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,YAAa,cACb,eAAgB,cAChBC,cAAe,gBACf,iBAAkB,gBAClBC,+BAAgC,iCAChCC,yBAA0B,2BAC1BC,aAAc,eACdC,eAAgB,iBAChBC,YAAa,cACbC,QAAS,UACTC,QAAS,UACTC,WAAY,aACZ,cAAe,aACfC,eAAgB,iBAChB,kBAAmB,iBACnBC,WAAY,aACZC,cAAe,gBACf,iBAAkB,gBAClBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,mBAAoB,qBACpB,sBAAuB,qBACvBC,YAAa,cACb,eAAgB,cAChBC,aAAc,eACd,gBAAiB,eACjBC,WAAY,aACZ,eAAgB,aAChBj4lB,aAAc,eACdk4lB,YAAa,cACb,eAAgB,cAChBC,aAAc,eACd,gBAAiB,eACjBC,SAAU,WACV,aAAc,WACdC,YAAa,cACb,gBAAiB,cACjBC,YAAa,cACb,gBAAiB,cACjBC,SAAU,WACV,YAAa,WACbC,aAAc,eACd,gBAAiB,eACjBC,QAAS,UACTC,WAAY,aACZC,cAAe,gBACf,iBAAkB,gBAClBC,YAAa,cACb,eAAgB,cAChBC,YAAa,cACb,eAAgB,cAChBC,iBAAkB,mBAClBC,QAAS,UACT,WAAY,UACZC,aAAc,eACd,gBAAiB,eACjBC,aAAc,eACd,gBAAiB,eACjBC,UAAW,YACX,aAAc,YACdC,UAAW,YACX,aAAc,YACdC,UAAW,YACX,aAAc,YACdC,WAAY,aACZ,cAAe,aACfC,UAAW,YACX,aAAc,YACdC,QAAS,UACT,WAAY,UACZC,QAAS,UACT,WAAY,UACZ,YAAa,WACbC,WAAY,aACZ,cAAe,aACfC,SAAU,WACVC,iBAAkB,mBAClBC,WAAY,aAGZC,OAAQ,SACR/pqB,SAAU,WACVsxE,QAAS,UACT04lB,cAAe,gBACfC,cAAe,gBACfC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRtoiB,QAAS,UACTuoiB,QAAS,UACT9vK,QAAS,UACT+vK,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,QAAS,UACTxqqB,OAAQ,SACRkqI,YAAa,cACbugiB,aAAc,eACdC,aAAc,eACdC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXC,SAAU,WACVC,SAAU,WACVC,cAAe,gBACfl6lB,WAAY,aACZm6lB,YAAa,cACbp6lB,aAAc,eACdq6lB,QAAS,6rBC7WX,SAASC,GAAgBntqB,EAAYotqB,GACnC,IAAMh6mB,EAAyB,CAC7BriI,IAAKq8uB,GAIP,GAAIptqB,aAAgB3V,QAAS,CAC3B,IAAMgjrB,EAAiBrtqB,EAAKjsE,aAAa,SAErCs5uB,IACFj6mB,EAAWh7H,UAAYi1uB,GAGzBr6I,GAAAA,GAAAA,GAAIhzhB,EAAKozD,aAAU,GAAEppI,SAAQ,SAAA68G,GAC3B,OAAQA,EAAEtvG,MAER,IAAK,QACH,MACF,IAAK,QACH67H,EAAWvsB,EAAEtvG,MAAsBsvG,EAAEl7G,MDpDpB6L,MAAM,SAEb/D,QAAO,SAACC,EAA0BmzG,GAC5C,SAAeA,EAAErvG,MAAM,SAAQ,GAA9BzG,EAAG,KAAEpF,EAAK,KAQjB,OANIoF,GAAOpF,IACT+H,EAAI3C,EAAI0hD,QAAQ,UAAU,SAAC66rB,EAAKC,GAAO,OAAAA,EAAG99nB,kBAAkBj2D,OAAOjmB,MAAMimB,OAAO7tD,IAC5EA,EACA6tD,OAAO7tD,IAGN+H,IACN,ICyCK,MACF,IAAK,kBACL,IAAK,sBACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,iBACL,IAAK,SACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,gBACH0/H,EAAW2rmB,GAAsBl4nB,EAAEtvG,OAASsvG,EAAEtvG,OAAQ,EACtD,MACF,QACE67H,EAAW2rmB,GAAsBl4nB,EAAEtvG,OAASsvG,EAAEtvG,MAAQsvG,EAAEl7G,UAKhE,OAAOynI,EA6BH,SAAUo6mB,GAAgBjrtB,EAAape,SAC3C,QAD2C,IAAAA,IAAAA,EAAAA,KACtCoe,KAAWA,aAAiB2hP,MAC/B,OAAO,KAGD,IAbStjB,EAaT,EAAkDz8O,EAAO,QAAzDoG,OAAO,IAAG,KAAE4D,EAAE+sG,EAAoC/2G,EAAO,MAA3CvZ,OAAK,IAAG,IAACswH,EAAEC,EAAyBh3G,EAAO,MAAhCgO,OAAK,IAAG,IAACgpG,EAAEsynB,EAActpuB,EAAO,UAE7D67D,EAAOz9C,EACPxxB,EAAM,UAAGohB,EAAK,KAAAwT,OAAI/6B,GAChBgO,EAA4B,GAiClC,GA/BI60uB,GAAuB,IAAVt7tB,IACfphB,EAAM,UDhHJ,SAAuB1G,QAAA,IAAAA,IAAAA,EAAAA,GAI3B,IAHA,IAAMsjsB,EAAa,iEACf/0rB,EAAS,GAEJhO,EAAQP,EAAQO,EAAQ,IAAKA,EACpCgO,GAAU+0rB,EAAWj+qB,KAAK6H,MAAM7H,KAAK+5D,UAAYkknB,EAAWtjsB,OAAS,KAGvE,OAAOuO,ECwGI80uB,GAAc,KAAA/ntB,OAAI50B,IAIzBzB,MAAMi2E,QAAQh7D,IAChBA,EAAQvgB,SAAQ,SAACwgB,GACXA,EAAOC,UAAUu1D,EAAMjvE,EAAKohB,KACJ,oBAAf3H,EAAOk4E,OAChB1iB,EAAOx1D,EAAOk4E,IAAI1iB,EAAMjvE,EAAKohB,cAEP+xP,OACpBlkM,EAAOz9C,IAYgB,oBAAhB/X,EAAOikrB,MAChB71rB,EAAOjO,KAAK6f,EAAOikrB,KAAKzunB,EAAMjvE,EAAKohB,QAMvCvZ,EAAOvO,OACT,OAAOuO,EAGT,OAAQonE,EAAK+E,UACX,KAAK,EAEH,OAAO2nhB,GAAAA,eAzDM9rW,EA0DD5gL,EAAK4gL,SAzDjB,qBAAqB3zN,KAAK2zN,GACrBA,EAGFA,EAAS5zN,eAsDVmgtB,GAAgBntqB,EAAMjvE,GA7E9B,SAAuB48uB,EAAyBx7tB,EAAehO,GAC7D,IAAMrP,EAA8Bk+lB,GAAAA,GAAAA,GAAI26I,IAAa,GAClD19uB,KAAI,SAAC+vE,EAAMp1E,GACV,OAAA4ivB,GAAgBxtqB,EAAI4xhB,GAAAA,GAAAA,GACfztlB,GAAO,CACVvZ,MAAK,EACLunB,MAAOA,EAAQ,QAGlBxiB,OAAOg8G,SAEV,OAAK72G,EAASzK,OAIPyK,EAHE,KAkEH84uB,CAAc5tqB,EAAK2sC,WAAYx6F,EAAOhO,IAG1C,KAAK,EAEH,IAAM0puB,GAAyB,QAAd,EAAA7tqB,EAAK4sC,iBAASh5G,IAAAA,OAAA,EAAAA,EAAE4E,aAAc,GAG/C,GAAI,QAAQy0B,KAAK4gtB,KAAc,iBAAiB5gtB,KAAK4gtB,GACnD,OAAO,KAIT,IAAK7tqB,EAAK7rD,WACR,OAAO05tB,EAGT,IAAMC,EAAiB9tqB,EAAK7rD,WAAWysO,SAAS5zN,cAEhD,OAAI8xsB,GAAiBj5mB,SAASionB,IAExB,KAAK7gtB,KAAK4gtB,IAEZ15sB,QAAQC,KACN,4CAAqC05sB,EAAc,mBAAAnotB,OAAiBkotB,EAAQ,sBAIzE,MAGFA,EAOT,QACE,OAAO,MAqCC,SAAUv+K,GACtB/siB,EACApe,GAEA,YAFA,IAAAA,IAAAA,EAAAA,IAEqB,kBAAVoe,EApCP,SAA4BA,EAAepe,GAC/C,QAD+C,IAAAA,IAAAA,EAAAA,KAC1Coe,GAA0B,kBAAVA,EACnB,OAAO,KAGD,MAAgEpe,EAAO,SAAvE4puB,OAAQ,IAAG,GAAKn6uB,EAAEua,EAA8ChK,EAAO,SAArDmP,OAAQ,IAAG,aAAUnF,EAAE+sG,EAAuB/2G,EAAO,KAA9BuJ,OAAI,IAAG,cAAWwtG,EAEnE,IACE,IAEMl7C,GAFS,IAAI+qM,WACKC,gBAAgBzoP,EAAO7U,GACzBi2D,cAAcrwD,GAEpC,KAAM0sD,aAAgBkkM,MACpB,MAAM,IAAIp0J,UAAU,uBAGtB,OAAIi+nB,EACK/tqB,EAGFwtqB,GAAgBxtqB,EAAM77D,GAC7B,MAAOslC,IAQT,OAAO,KAQEuksB,CAAkBzrtB,EAAOpe,GAG9Boe,aAAiB2hP,KACZspe,GAAgBjrtB,EAAOpe,GAGzB,qBC7PIs/d,GAAS,CACpBwqQ,OAAQ,SACRC,OAAQ,SACRC,QAAS,UACTC,QAAS,UACTC,MAAO,QACPC,YAAa,eAGT,SAAU5yN,KACd,OAAO6yN,GAAAA,UAGH,SAAUC,KACd,OAGI,WAEJ,IAAKjivB,SACH,OAAO,EAGT,IAAM2gC,EAAM3gC,SAAS4gC,cAAc,OAEnCD,EAAIo9B,UAAY,UAChB,IAAM++b,EAAMn8d,EAAI4/E,WAEhB,QAASu8Y,GAA4B,+BAArBA,EAAI4lC,aAdbw/M,IAAyC,qBAAXj/tB,QAAqC,OAAXA,OAiBjE,SAASk/tB,GAAgB95lB,GACvB,OAAOA,EAAUllI,KAAKo1B,MAAMp1B,KAAK+5D,SAAWmrE,EAAUvqJ,2pCC9B3CskvB,GAA6C99uB,OAAOw4B,OAAO,MAExE,eASE,WAAYkgF,GAAZ,MACE+U,EAAAA,KAAAA,KAAM/U,IAAM,YATN/qC,EAAAA,UAAW,EAgJXA,EAAAA,WAAa,SAAC3zD,GAEhB2zD,EAAK8tN,UACP9tN,EAAK8kE,SACH,CACEz4H,QAAO,EACP42B,OAAQgic,GAAOyqQ,QAEjB1vqB,EAAK8hE,aAKH9hE,EAAAA,YAAc,SAAC/0B,GACb,IAAAqrgB,EAAYt2e,EAAK+qC,MAAKurc,QACxBrzgB,EACc,iCAAlBgI,EAAMjU,QAA6Ciuc,GAAO6qQ,YAAc7qQ,GAAOwqQ,OAG7EzvqB,EAAK8tN,UACP9tN,EAAK8kE,SAAS,CAAE7hG,OAAM,IAAI,WAED,oBAAZqzgB,GACTA,EAAQrrgB,OAMR+0B,EAAAA,QAAU,WACV,MAAuCA,EAAK+qC,MAA1CqloB,EAAa,gBAAE/rJ,EAAY,eAAEl3hB,EAAG,MAExC,IAKE,OAJIijrB,IACFD,GAAWhjrB,GAAO,CAAE9gD,QAAS,GAAI42B,OAAQgic,GAAO0qQ,UAG3CpksB,MAAM4hB,EAAKk3hB,GACft6iB,MAAK,SAAAO,GACJ,IAAME,EAAcF,EAASG,QAAQr/B,IAAI,gBAClCiluB,EAAD,IAAc7lsB,GAAe,IAAIxxC,MAAM,SAAQ,GAAtC,GAEf,GAAIsxC,EAASrH,OAAS,IACpB,MAAM,IAAIrC,MAAM,aAGlB,IAAK,CAAC,gBAAiB,cAAc9yB,MAAK,SAAAu6F,GAAK,OAAAgooB,EAAShpnB,SAAShf,MAC/D,MAAM,IAAIznE,MAAM,oCAA6ByvsB,IAG/C,OAAO/lsB,EAASp8C,UAEjB67C,MAAK,SAAA19B,GACI,IAAKikuB,EAAetwqB,EAAK+qC,MAAK59C,IAGtC,GAAIA,IAAQmjrB,GAWZ,GAHAtwqB,EAAKuwqB,WAAWlkuB,GAGZ+juB,EAAe,CACjB,IAAMllsB,EAAQilsB,GAAWhjrB,GAGrBjiB,IACFA,EAAM7+B,QAAUA,EAChB6+B,EAAMjI,OAASgic,GAAOyqQ,cAhBpBS,GAAWhjrB,GAAKlqB,SAAWgic,GAAO0qQ,gBAC7BQ,GAAWhjrB,MAmBvBniB,OAAM,SAAAC,IACL+0B,EAAK6wM,YAAY5lO,GAGbmlsB,KACYD,GAAWhjrB,WAIhBgjrB,GAAWhjrB,OAI1B,MAAOliB,GACP,OAAO+0B,EAAK6wM,YAAY,IAAIjwO,MAAMqK,EAAMjU,YAhO1CgpC,EAAK0iB,MAAQ,CACXr2E,QAAS,GACThhB,QAAS,KACTmlvB,WAAYzloB,EAAMqloB,iBAAmBD,GAAWploB,EAAM59C,KACtDlqB,OAAQgic,GAAO2qQ,SAGjB5vqB,EAAK4U,KAAOm2B,EAAMgqlB,YDYhB,SAAuBlpsB,GAO3B,IANA,IAAM4kvB,EAAU,6BAEV3/L,EAAU,UAAG2/L,GAAOtptB,OAAGsptB,EAAQx/nB,eAAa9pF,OADlC,cAGZyzH,EAAI,GAECxuJ,EAAQ,EAAGA,EAAQP,EAAQO,IAClCwuJ,GAAKs1lB,GAAgBp/L,GAGvB,OAAOl2Z,ECvB2Bs0lB,CAAa,KA8VjD,OAjXuClvnB,GAAAA,EAAAA,GAsB9B0wnB,EAAAA,UAAAA,kBAAP,WAGE,GAFAnlvB,KAAKuiS,UAAW,EAEXovP,KAAL,CAIQ,IAAAj6e,EAAW13C,KAAKm3F,MAAKz/C,OACrBkqB,EAAQ5hE,KAAKw/G,MAAK59C,IAE1B,IAEE,GAAIlqB,IAAWgic,GAAO2qQ,QAAS,CAE7B,IAAKI,KACH,MAAM,IAAIpvsB,MAAM,gCAIlB,IAAKusB,EACH,MAAM,IAAIvsB,MAAM,eAGlBr1C,KAAK4M,QAEP,MAAO8yC,GACP1/C,KAAKslR,YAAY5lO,MAIdylsB,EAAAA,UAAAA,mBAAP,SAA0BC,EAAsBC,GAC9C,GAAK1zN,KAAL,CAIM,MAAuB3xhB,KAAKm3F,MAA1B8tpB,EAAQ,WAAEvtsB,EAAM,SAClB,EAAkB13C,KAAKw/G,MAArB6oB,EAAM,SAAEzmE,EAAG,MASnB,GAPIyjrB,EAAc3tsB,SAAWgic,GAAO4qQ,OAAS5ssB,IAAWgic,GAAO4qQ,OAEzDj8mB,GACFA,EAAOzmE,EAAKqjrB,GAIZG,EAAcxjrB,MAAQA,EAAK,CAC7B,IAAKA,EAGH,YAFA5hE,KAAKslR,YAAY,IAAIjwO,MAAM,gBAK7Br1C,KAAK4M,UAIFu4uB,EAAAA,UAAAA,qBAAP,WACEnlvB,KAAKuiS,UAAW,GAGV4id,EAAAA,UAAAA,QAAR,WACQ,MAAyBnlvB,KAAKw/G,MAA5B7zB,EAAW,cAAE//D,EAAK,QAE1B,IACE,IACMqqD,EAAOsvf,GADGvlkB,KAAKslvB,aACS,CAAEtB,UAAU,IAE1C,IAAK/tqB,KAAUA,aAAgBsvqB,eAC7B,MAAM,IAAIlwsB,MAAM,2CAGlB,IAAMiqd,EAAMt/f,KAAKwlvB,oBAAoBvvqB,GAErC,GAAI0V,EAAa,CACf,IAAM85pB,EAAenmP,EAAI1lb,cAAc,QAEnC6rqB,GAAgBA,EAAar7tB,YAC/Bq7tB,EAAar7tB,WAAW+iC,YAAYs4rB,GAGtC,IAAMC,EAAcljvB,SAAS4gC,cAAc,QAE3CsitB,EAAYnlrB,UAAYorB,EACxB2za,EAAI1pQ,QAAQ8vf,GAGd,GAAI95tB,EAAO,CACT,IAAM+5tB,EAAgBrmP,EAAI1lb,cAAc,SAEpC+rqB,GAAiBA,EAAcv7tB,YACjCu7tB,EAAcv7tB,WAAW+iC,YAAYw4rB,GAGvC,IAAMt8T,EAAe7mb,SAAS4gC,cAAc,SAE5CimZ,EAAa9oX,UAAY30C,EACzB0ze,EAAI1pQ,QAAQyzL,GAGd,OAAOi2E,EACP,MAAO5/c,GACP,OAAO1/C,KAAKslR,YAAY5lO,KAIpBylsB,EAAAA,UAAAA,WAAR,WACE,IACE,IACMrlvB,EAAUylkB,GADHvlkB,KAAK4lvB,WAGlB,IAAK9lvB,IAAY6imB,GAAAA,eAAqB7imB,GACpC,MAAM,IAAIu1C,MAAM,gDAGlBr1C,KAAKu5I,SAAS,CACZz5I,QAAO,EACP43C,OAAQgic,GAAO4qQ,QAEjB,MAAO5ksB,GACP1/C,KAAKslR,YAAY,IAAIjwO,MAAMqK,EAAMjU,YAmG7B05sB,EAAAA,UAAAA,KAAR,sBAEMnlvB,KAAKuiS,UACPviS,KAAKu5I,SACH,CACEz4H,QAAS,GACThhB,QAAS,KACT43C,OAAQgic,GAAO0qQ,UAEjB,WACQ,MAAyB3vqB,EAAK+qC,MAA5BqloB,EAAa,gBAAEjjrB,EAAG,MACpBjiB,EAAQklsB,GAAiBD,GAAWhjrB,GAE1C,GAAIjiB,GAASA,EAAMjI,SAAWgic,GAAOyqQ,OACnC1vqB,EAAKuwqB,WAAWrlsB,EAAM7+B,aADxB,CAMA,IACI+kuB,EADEC,EAAUlkrB,EAAIjgD,MAAM,wCAGtBmkuB,EACFD,EAAYC,EAAQ,GAAKrguB,OAAOqgqB,KAAKggE,EAAQ,IAAMv6hB,mBAAmBu6hB,EAAQ,IACrElkrB,EAAIk6D,SAAS,UACtB+pnB,EAAYjkrB,GAGVikrB,EACFpxqB,EAAKuwqB,WAAWa,GAKlBpxqB,EAAKpW,eAML8mrB,EAAAA,UAAAA,oBAAR,SAA4BlvqB,GAA5B,WACQ,EAAgCj2E,KAAKw/G,MAAnCp7F,EAAAA,EAAAA,QAAA6/L,OAAO,IAAG,KAAE7/L,EAAE2huB,EAAW,cAC3BC,EAAwB,CAAC,KAAM,OAAQ,aAAc,aAAc,iBACnEjkY,EAAiB,CAAC,OAAQ,cAIhC,OAAKgkY,GAIL98I,GAAAA,GAAAA,GAAIhzhB,EAAKlrE,WAAQ,GAAE7E,KAAI,SAAA42G,GACrB,GAAIA,EAAEusB,YAAcvsB,EAAEusB,WAAW/oI,OAAQ,CACvC,IAAM2lvB,EAAan/uB,OAAO8S,OAAOkjG,EAAEusB,YAAYnjI,KAAI,SAAAu/C,GACjD,IAAMixR,EAAYjxR,EACZ9jC,EAAQ8jC,EAAE7jD,MAAM+f,MAAM,gBAM5B,OAJIA,GAASA,EAAM,KACjB+0T,EAAU90U,MAAQ6jD,EAAE7jD,MAAM8mD,QAAQ/mC,EAAM,GAAI,cAAOsiM,GAAOroL,OAAGja,EAAM,GAAE,MAAAia,OAAK64C,EAAK4U,KAAI,OAG9EqtP,KAGTsva,EAAsB/lvB,SAAQ,SAAAsmE,GAC5B,IArBe/4D,EAAc5L,EAqBvB80U,EAAYuva,EAAW5puB,MAAK,SAAAopC,GAAK,OAAAA,EAAEj4C,OAAS+4D,KAE9CmwQ,IAvBWlpU,EAuBe+4D,EAvBD3kE,EAuBI80U,EAAU90U,OAtB/CmgX,EAAejmP,SAAStuH,KAAU5L,GAASA,EAAMk6H,SAAS,QAuBpD46M,EAAU90U,MAAQ,UAAG80U,EAAU90U,MAAK,MAAAg6B,OAAK64C,EAAK4U,UAKpD,OAAIyzB,EAAE/xG,SAASzK,OACNm0E,EAAK+wqB,oBAAoB1ooB,GAG3BA,KAGF7mC,GAhCEA,GAmCHkvqB,EAAAA,UAAAA,WAAR,WACU,IAAArkuB,EAAY9gB,KAAKm3F,MAAKr2E,QACtBoluB,EAAiBlmvB,KAAKw/G,MAAK0moB,aAEnC,OAAIA,EACKA,EAAapluB,GAGfA,GAGFqkuB,EAAAA,UAAAA,OAAP,WACQ,MAAsBnlvB,KAAKm3F,MAAzBr3F,EAAO,UAAE43C,EAAM,SACjB,EAA+C13C,KAAKw/G,MAAlD2R,EAAAA,EAAAA,SAAApmH,OAAQ,IAAG,OAAIomH,EAAEg1nB,EAAQ,WAAE/0nB,EAAAA,EAAAA,OAAAqX,OAAM,IAAG,OAAIrX,EAC1Cg1nB,EDjSJ,SACJ5ttB,OACA,oCAAA5yB,EAAAA,EAAAA,GAAAA,UAAAA,GAEA,IAAMm2H,EAAc,GAEpB,IAAK,IAAM/0H,KAAOwxB,GAEZ,IAAGs+C,eAAer2E,KAAK+3B,EAAOxxB,KAC3BpB,EAAOk2H,SAAS90H,KACnB+0H,EAAO/0H,GAAOwxB,EAAMxxB,KAK1B,OAAO+0H,ECkRgBsqnB,CACnBrmvB,KAAKw/G,MACL,UACA,gBACA,WACA,cACA,eACA,WACA,SACA,UACA,SACA,eACA,MACA,QACA,aACA,eAGF,OAAKmya,KAID7xhB,EACK6imB,GAAAA,aAAmB7imB,EAA6B+nmB,GAAAA,CAAI5piB,IAAKkorB,GAAaC,IAG3E,CAAC1sQ,GAAO6qQ,YAAa7qQ,GAAOwqQ,QAAQponB,SAASpkF,GACxC3sC,EAGF09H,EAXEA,GAhWG08mB,EAAAA,aAAe,CAC3BN,eAAe,EACfkB,aAAa,GA2WjB,EAjXA,CAAuCpjJ,GAAAA,qBCCjC2jJ,GAAyB,SAAC,GAAsD,IAAD,IAApDj4uB,UAAAA,OAAoD,MAAxC,GAAwC,EAApCf,EAAoC,EAApCA,KAAoC,IAA9Bi5uB,aAAAA,OAA8B,MAAf,UAAe,EACnF,OACE,kBAAMl4uB,UAAS,mBAAcA,GAA7B,UACE,UAAC,GAAD,CAAKuzD,IAAKgzqB,GAActnuB,GAAOe,UAAWk4uB,OCVnCC,GAA+B,CAC1CpsiB,KAAM,CACJz2L,KAAM,UACNs+rB,aAAc,UACdwkC,iBAAiB,GAEnBh+mB,OAAQ,CACNppH,SAAS,EACTsE,KAAM,WAER+iuB,UAAW,CACTrnuB,SAAS,GAEXwkB,OAAQ,CACNxkB,SAAS,EACT/N,MAAO,QACPoH,KAAM,OACNiuuB,MAAO,CACLxqgB,SAAS,EACTyqgB,iBAAiB,GAEnBC,SAAU,OAEZC,SAAU,CACRznuB,SAAS,GAEX0nuB,MAAO,CACL1nuB,SAAS,EACTkR,MAAO,OACP6nsB,KAAM,OACNuuB,OAAO,EACPK,WAAW,EACXtwnB,UAAU,EACVuwnB,WAAW,EACXJ,SAAU,OAEZ/luB,QAAS,CACPxP,MAAO,QACPg8a,OAAQ,WAEVvtZ,QAAS,CACP1gB,SAAS,EACT/N,MAAO,QACPq1uB,MAAO,CACLxqgB,SAAS,EACT+qgB,qBAAqB,GAEvB55T,OAAQ,WACRw8M,QAAS,CACPq9G,SAAU,CACR51uB,OAAQ,OACR61uB,0BAA2B,QAE7BC,SAAU,CACR91uB,OAAQ,OACR61uB,0BAA2B,QAE7BE,SAAU,CACR/1uB,OAAQ,OACR61uB,0BAA2B,QAE7BG,SAAU,CACRh2uB,OAAQ,OACR61uB,0BAA2B,QAE7BI,SAAU,CACRj2uB,OAAQ,OACR61uB,0BAA2B,UAIjC/6T,OAAQ,CACN/6a,MAAO,SAETm2uB,UAAW,CACTpouB,SAAS,EACTqouB,aAAa,EACb/7pB,aAAa,EACb2hW,OAAQ,UACRjyS,UAAW,MACX+pe,YAAY,EACZuiI,qBAAsB,KACtBC,iBAAkB,0BCtEhBC,GAAoBxzpB,4BAyCnB,SAASyzpB,KACd,MAAO,CACLC,UAAW,IAAIvwf,IACfwwf,aAAc,IAAIxwf,IAClBywf,WAAY,IAAIzwf,IAChB0wf,gBAAiB,IAAI1wf,IACrBiwf,UAAW,IAAIjwf,KAIZ,SAAS2wf,KACd,MAAO,CACL5/sB,KAAM,IAAIivN,KAIP,IAAM4wf,GAAb,0FAOE,WACEA,EAAYnnnB,QA1CP,CACLp9F,OAAQ,GACRqktB,gBAAiB,GACjBF,aAAc,GACdC,WAAY,GACZlB,MAAO,GACPgB,UAAW,GACXM,YAAa,GACbtotB,QAAS,GACTuotB,iBAAkB,GAClBxnuB,QAAS,GACTynuB,iBAAkB,GAClBC,gBAAiB,GACjBC,QAAS,GACThB,UAAW,MAoBf,gCAWE,WACEW,EAAY/+mB,WAAaviI,OAAOw4C,OAAO,GAAIwosB,QAZ/C,8BAeE,WACEM,EAAYM,aAAeP,OAhB/B,wBAmBE,SAA0B74qB,GAAwB,IAAD,QAC/C/pE,MAAM4D,KAAK3G,SAAS+lC,KAAK8gG,YAAYppI,SAAQ,SAAC2f,GAC5Cpd,SAAS+lC,KAAKy7E,gBAAgBpkG,EAAKpS,SAErChL,SAAS+lC,KAAKznC,aAAa,QAAS,IACpC0B,SAAS+lC,KAAKznC,aAAa,KAAM,WACjC,UAAIwuE,EAAO8qI,YAAX,iBAAI,EAAa7xK,YAAjB,OAAI,EAAmB0vU,kBACrBz1W,SAAS+lC,KAAKtqB,MAAMg6V,gBAApB,eAA8C3oS,EAAO8qI,KAAK7xK,KAAK0vU,gBAA/D,OAGF,UAAI3oS,EAAO8qI,YAAX,iBAAI,EAAa7xK,YAAjB,OAAI,EAAmB5W,OACrBnvB,SAAS+lC,KAAKlnC,UAAUC,IAAIguE,EAAO8qI,KAAK7xK,KAAK5W,SA9BnD,wBAuCE,SAA0B29C,GACxB84qB,EAAYnnnB,QAAQinnB,gBAAgBtnvB,KACjB,UAAjB0uE,EAAOh+D,MAAoB,kBAAoB,aAG7Cg+D,EAAOq3qB,MAAMxqgB,SACf35O,SAAS+lC,KAAKlnC,UAAUC,IAAI,gBAG1BguE,EAAOq3qB,MAAMC,iBACfpkvB,SAAS+lC,KAAKlnC,UAAUC,IAAI,oCAjDlC,yBAqDE,SAA2BguE,GACzB,GAAKA,EAAOjwD,QAAZ,CAIA7c,SAAS+lC,KAAKlnC,UAAUC,IAAI,mBAC5B8mvB,EAAYnnnB,QAAQqnnB,iBAAiB1nvB,KAClB,UAAjB0uE,EAAOh+D,MAAoB,kBAAoB,aAG7Cg+D,EAAOq3qB,MAAMxqgB,SACf35O,SAAS+lC,KAAKlnC,UAAUC,IAAI,iBAG1BguE,EAAOq3qB,MAAMO,qBACf1kvB,SAAS+lC,KAAKlnC,UAAUC,IAAI,mCAI9B,IAAMqiB,EAAO2rD,EAAOg+W,OACdq7T,EAAcr5qB,EAAOw6jB,QAAQnmnB,GACnC,GAAIgluB,EAAa,CACf,IAAIC,EAAqB,GACrBD,EAAYp3uB,SACdq3uB,GAAU,gCAA6BD,EAAYp3uB,OAAzC,MAGRo3uB,EAAYvB,4BACdwB,GAAU,kDAA+CD,EAAYvB,0BAA3D,MAEZ5kvB,SAAS+lC,KAAKznC,aAAa,QAAS8nvB,OAnF1C,2BAuFE,SAA6Bt5qB,GACtBA,EAAOjwD,UAIa,WAArBiwD,EAAO+rE,WACTr7I,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,eAC5BZ,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,uBAE5BZ,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,sBAC5BZ,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,cAE9BZ,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,QAExB0uE,EAAO81iB,aACTplnB,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,QAC5BZ,KAAKihI,QAAQwmnB,UAAU7mvB,KAAK,WAE5BwnvB,EAAY/+mB,WAAWo+mB,UAAUzirB,IAAI,mBAAmB,GACxDojrB,EAAY/+mB,WAAWo+mB,UAAUzirB,IAAI,uBAAwB,WAC7DojrB,EAAY/+mB,WAAWo+mB,UAAUzirB,IAC/B,yBADF,+CAE0CsK,EAAOq4qB,qBAFjD,eAE4Er4qB,EAAOs4qB,iBAFnF,WA3GN,yBAkHE,SAA2Bt4qB,GACzB84qB,EAAYnnnB,QAAQsnnB,iBAAiB3nvB,KAClB,UAAjB0uE,EAAOh+D,MAAoB,kBAAoB,eApHrD,uBA2HE,SAAyBg+D,GAElBA,EAAOjwD,UAKZ7c,SAAS+lC,KAAKlnC,UAAUC,IAAI,iBAC5B8mvB,EAAYnnnB,QAAQ8lnB,MAAMnmvB,KAA1B,gBAAwC0uE,EAAO/+C,QAG3C++C,EAAOq3qB,OACTnkvB,SAAS+lC,KAAKlnC,UAAUC,IAAI,eAI1BguE,EAAO03qB,WACTxkvB,SAAS+lC,KAAKznC,aAAa,yBAA0B,MAInDwuE,EAAO23qB,WACTmB,EAAYnnnB,QAAQ8lnB,MAAMnmvB,KAAK,sBAjJrC,2BAqJE,SAA6B0uE,MArJ/B,wBAkLE,SAA0BA,GACxB84qB,EAAYnnnB,QAAQunnB,gBAAgB5nvB,KAApC,mBAAsE,UAAjB0uE,EAAOh+D,MAAoB,SAAW,OAnL/F,wBAsLE,SAA0Bg+D,GAAwB,IAAD,IAC/C,UAAIA,EAAO8qI,YAAX,OAAI,EAAaqsiB,iBACfjkvB,SAAS+lC,KAAKlnC,UAAUC,IAAI,aAI9B8mvB,EAAYS,WAAWv5qB,GACG,aAAtB,UAAAA,EAAO8qI,YAAP,eAAaz2L,QAIjBykuB,EAAYU,WAAWx5qB,EAAOzrC,QAC9BuktB,EAAYW,cAAcz5qB,EAAOm4qB,WACjCW,EAAYY,YAAY15qB,EAAOvvC,SAC/BqotB,EAAYa,YAAY35qB,EAAOxuD,SAC/BsnuB,EAAYc,UAAU55qB,EAAOy3qB,OAC7BqB,EAAYe,WAAW75qB,EAAO+8W,QAC9B+7T,EAAYgB,cAAc95qB,EAAOy3qB,UAvMrC,iCA0ME,SAAkCsC,GAChC,IACMC,EAAa,OADJlB,EAAY94qB,QACU+5qB,GAQrC,OAPAjB,EAAYmB,iBACZnB,EAAYoB,mBACZpB,EAAYqB,qBACZrB,EAAYl2d,UAAW,EACvBk2d,EAAY94qB,OAASg6qB,EACrBlB,EAAY1sa,WAAW50U,OAAOw4C,OAAO,GAAIgqsB,IACzClB,EAAYl2d,UAAW,EAChBo3d,IApNX,uBAuNE,SAAwBh6qB,IAlQ1B,SAAmBA,GACjB,IACE80lB,aAAaklB,QAAQu+D,GAAmBvsuB,KAAKC,UAAU+zD,IACvD,MAAO+wG,GACPj2I,QAAQsV,MAAM2gI,IA+PdqpkB,CAAUp6qB,OAxNd,KAAa84qB,GACGl2d,UAAoB,EADvBk2d,GAEG94qB,OAzDT,WACL,IAAM60lB,EAAKC,aAAallb,QAAQ2ogB,IAChC,GAAI1jF,EACF,IACE,OAAO7opB,KAAK+6E,MAAM8tkB,GAClB,MAAO9jf,GACPj2I,QAAQsV,MAAM2gI,GAGlB,OAAOmmkB,GAgDyBmD,GAFrBvB,GAGGnnnB,QArCP,CACLp9F,OAAQ,GACRqktB,gBAAiB,GACjBF,aAAc,GACdC,WAAY,GACZlB,MAAO,GACPgB,UAAW,GACXM,YAAa,GACbtotB,QAAS,GACTuotB,iBAAkB,GAClBxnuB,QAAS,GACTynuB,iBAAkB,GAClBC,gBAAiB,GACjBC,QAAS,GACThB,UAAW,IAoBFW,GAIG/+mB,WAAoCy+mB,KAJvCM,GAKGM,aAAoCP,KALvCC,GA2NGwB,eACZxB,GAAYyB,oBAAoBzB,GAAY94qB,QC3QhD,IAAMw6qB,IAAgB9ooB,EAAAA,GAAAA,eAAkC,CACtD1xC,OAAQk3qB,GACRvlnB,QDWO,CACLp9F,OAAQ,GACRqktB,gBAAiB,GACjBF,aAAc,GACdC,WAAY,GACZlB,MAAO,GACPgB,UAAW,GACXM,YAAa,GACbtotB,QAAS,GACTuotB,iBAAkB,GAClBxnuB,QAAS,GACTynuB,iBAAkB,GAClBC,gBAAiB,GACjBC,QAAS,GACThB,UAAW,ICxBbp+mB,WAAYy+mB,KACZY,aAAcP,KACduB,UAAW,SAACp6qB,OAURy6qB,GAAsB,WAC1B,IAAMC,EAAexnvB,SAASC,eAAe,iBACzCunvB,GACFA,EAAa/ruB,MAAM8iO,YAAY,UAAW,SAIxCkpgB,GAAmC,SAAC,GAAgB,IAAfl/uB,EAAc,EAAdA,SACzC,GAA4Bm3kB,EAAAA,GAAAA,UAASkmK,GAAY94qB,QAAjD,eAAOA,EAAP,KAAe46qB,EAAf,KACA,GAA8BhoK,EAAAA,GAAAA,UAASkmK,GAAYnnnB,SAAnD,eAAOA,EAAP,KAAgBkpnB,EAAhB,KACA,GAAoCjoK,EAAAA,GAAAA,UAASkmK,GAAY/+mB,YAAzD,eAAOA,EAAP,KAAmB+gnB,EAAnB,KACA,GAAwCloK,EAAAA,GAAAA,UAASkmK,GAAYM,cAA7D,eAAOA,EAAP,KAAqB2B,EAArB,KAcMzovB,EAA4B,CAChC0tE,OAAAA,EACA2xD,QAAAA,EACAoI,WAAAA,EACAq/mB,aAAAA,EACAgB,UAlBgB,SAACY,IAnBM,WACzB,IAAMN,EAAexnvB,SAASC,eAAe,iBACzCunvB,GACFA,EAAa/ruB,MAAM8iO,YAAY,UAAW,QAiB1CwpgB,GACoBhlvB,MAAM4D,KAAK3G,SAAS+lC,KAAKlnC,WACjCpB,SAAQ,SAAC4slB,GAAD,OAAQrqlB,SAAS+lC,KAAKlnC,UAAUG,OAAOqrlB,MAC3Du7J,GAAYyB,oBAAoBS,GAChCJ,EAAUpjvB,OAAOw4C,OAAO,GAAI8osB,GAAY94qB,SACxC66qB,EAAW/B,GAAYnnnB,SACvBmpnB,EAAchC,GAAY/+mB,YAC1BghnB,EAAgBjC,GAAYM,cAC5B7lvB,YAAW,WACTknvB,OACC,OAcL,OAJApoK,EAAAA,GAAAA,YAAU,WACRooK,OACC,KAEI,UAACD,GAAc7ooB,SAAf,CAAwBr/G,MAAOA,EAA/B,SAAuCmJ,KAKzC,SAASy/uB,KACd,OAAO9oK,EAAAA,GAAAA,YAAWooK,IC9DpB,IAAMW,IAAkBzpoB,EAAAA,GAAAA,eAAoC,CAC1D0poB,aAAc,SAACpgpB,KACfqgpB,mBAAoB,SAACC,KACrBC,mBAAoB,SAACC,OAGjBC,GAAqC,SAAC,GAAgB,IAAfhgvB,EAAc,EAAdA,SAC3C,GAAkCm3kB,EAAAA,GAAAA,UAAiB,IAAnD,eAAOulK,EAAP,KAAkBiD,EAAlB,KACA,GAA8CxoK,EAAAA,GAAAA,UAAiB,IAA/D,eAAO8oK,EAAP,KAAwBH,EAAxB,KACA,GAA8C3oK,EAAAA,GAAAA,UAA0B,IAAxE,eACMtglB,EAA8B,CAClC6lvB,UAAAA,EACAiD,aAAAA,EACAM,gBAAAA,EACAH,mBAAAA,EACAI,gBANF,KAOEN,mBAPF,MASA,OAAO,UAACF,GAAgBxpoB,SAAjB,CAA0Br/G,MAAOA,EAAjC,SAAyCmJ,KAGlD,SAASmgvB,KACP,OAAOxpK,EAAAA,GAAAA,YAAW+oK,IAQpB,IAAMU,GAAsC,SAAC,GAA0C,IAAzCpgvB,EAAwC,EAAxCA,SAAU4gF,EAA8B,EAA9BA,YAAay/pB,EAAiB,EAAjBA,YACnE,EAA+DF,KAAxDR,EAAP,EAAOA,aAAcG,EAArB,EAAqBA,mBAAoBF,EAAzC,EAAyCA,mBA4BzC,OA3BAhpK,EAAAA,GAAAA,YAAU,WAIR,OAHI52kB,GACF2/uB,EAAa3/uB,EAAS0D,YAEjB,WACLi8uB,EAAa,OAEd,CAAC3/uB,KAEJ42kB,EAAAA,GAAAA,YAAU,WAIR,OAHIh2f,GACFk/pB,EAAmBl/pB,GAEd,WACLk/pB,EAAmB,OAEpB,CAACl/pB,KAEJg2f,EAAAA,GAAAA,YAAU,WAIR,OAHIypK,GACFT,EAAmBS,GAEd,WACLT,EAAmB,OAEpB,CAACS,KAEG,2BCpEHC,IAA8BrqoB,EAAAA,GAAAA,oBAClC5oG,GAuCIkzuB,GAA8C,SAAC,GAAsB,IAAD,IAApBzivB,QAAAA,OAAoB,SAElE0ivB,GAAW7pK,EAAAA,GAAAA,YAAW2pK,IAsB5B,OApBA1pK,EAAAA,GAAAA,YAAU,WACR,GAAK94kB,EAUL,OANI0ivB,GACFA,GAAS,SAAC9ktB,GACR,OAAOA,EAAO,KAIX,WACD8ktB,GACFA,GAAS,SAAC9ktB,GACR,OAAOA,EAAO,QAInB,CAAC8ktB,EAAU1ivB,IAEP,MCrEF,SAAS2ivB,KAEd,OACE,0BCNJ,IAAMC,GAAa,WACjB,OACE,iBACEp9uB,UAAU,kCACV,iBAAe,OACf,sBAAoB,cACpB,0BAAwB,6BACxB,yBAAuB,OACvB,uBAAqB,sCACrB,2BAAyB,MACzB,wBAAsB,gCACtB,kBAAgB,OAChB,uBAAqB,UACrB,yBAAuB,8CAXzB,UAaE,iBACEA,UAAU,yNACVpE,GAAG,kBACH,eAAa,OAHf,UAKE,UAACuhvB,GAAD,SCjBFE,GAAmB,WACvB,MAAsDR,KAA/CzD,EAAP,EAAOA,UAAWuD,EAAlB,EAAkBA,gBAAiBC,EAAnC,EAAmCA,gBACnC,EAA0BT,KAAnBl7qB,EAAP,EAAOA,OAAQ2xD,EAAf,EAAeA,QACf,OACE,kBACEh3H,GAAG,gBACH,kBAAgB,OAChB,uBAAqB,UACrB,yBAAuB,oEACvBoE,UAAWs9uB,GAAK,oBAAqB1qnB,EAAQwmnB,UAAUx2uB,KAAK,MAL9D,UAQGw2uB,IACC,iBAAIp5uB,UAAU,0DAAd,UACGo5uB,EACAuD,GAAmB17qB,EAAOm4qB,WAAan4qB,EAAOm4qB,UAAU97pB,cACvD,mCACE,kBAAMt9E,UAAU,mDAChB,mBAAOA,UAAU,oCAAjB,SAAsD28uB,UAO7DC,GACCA,EAAgB3qvB,OAAS,GACzBgvE,EAAOm4qB,WACPn4qB,EAAOm4qB,UAAUC,cACf,kCACkC,QAA/Bp4qB,EAAOm4qB,UAAUpsmB,YAChB,kBAAMhtI,UAAU,8CAElB,iBAAIA,UAAU,wDAAd,UACG9I,MAAM4D,KAAK8hvB,GAAiB/kvB,KAAI,SAAChG,EAAMW,GAAP,OAC/B,gBACEwN,UAAWs9uB,GAAK,kBAAmB,CACjC,aAAczrvB,EAAK0rvB,aAAe1rvB,EAAKqiS,SACvC,cAAeriS,EAAK0rvB,cAAgB1rvB,EAAKqiS,WAH7C,SAOIriS,EAAK0rvB,aAKL,kBAAMv9uB,UAAU,oCAJhB,UAACyjuB,GAAD,CAAMzjuB,UAAU,gCAAgC2yD,GAAI9gE,EAAKoN,KAAzD,SACGpN,EAAK0rB,SATZ,UAKU1rB,EAAKoN,MALf,OAKsBzM,QAWxB,gBAAIwN,UAAU,4BAAd,SAA2Co5uB,cCzDzD,SAASoE,GAAmBC,EAAK17uB,EAASs7B,EAAQuqb,EAAO81R,EAAQ/kvB,EAAK+nB,GACpE,IACE,IAAIH,EAAOk9tB,EAAI9kvB,GAAK+nB,GAChBntB,EAAQgtB,EAAKhtB,MACjB,MAAO89C,GAEP,YADAhU,EAAOgU,GAGL9wB,EAAKwK,KACPhpB,EAAQxO,GAERu8C,QAAQ/tC,QAAQxO,GAAO48C,KAAKy3a,EAAO81R,GAGxB,SAAS,GAAkBnytB,GACxC,OAAO,WACL,IAAIhT,EAAO5mB,KACTwmB,EAAOze,UACT,OAAO,IAAIo2C,SAAQ,SAAU/tC,EAASs7B,GACpC,IAAIogtB,EAAMlytB,EAAG5T,MAAMY,EAAMJ,GACzB,SAASyvc,EAAMr0d,GACbiqvB,GAAmBC,EAAK17uB,EAASs7B,EAAQuqb,EAAO81R,EAAQ,OAAQnqvB,GAElE,SAASmqvB,EAAOrjnB,GACdmjnB,GAAmBC,EAAK17uB,EAASs7B,EAAQuqb,EAAO81R,EAAQ,QAASrjnB,GAEnEutV,OAAM79c,kCCxBN4zuB,GAAyB,kBACzBC,GAAU,WACd,GAAK7nF,aAAL,CAIA,IAAM8nF,EAAyB9nF,aAAallb,QAAQ8sgB,IACpD,GAAKE,EAIL,IACE,IAAMxoiB,EAAkBpoM,KAAK+6E,MAAM61pB,GACnC,GAAIxoiB,EAEF,OAAOA,EAET,MAAOhkK,GACPtV,QAAQsV,MAAM,iCAAkCA,sBChB9CyssB,GAAUvsvB,GAAAA,GAGHwsvB,IAD2B,UAAMD,GAAN,iBAClB,UAAMA,GAAN,WACTE,GAAY,UAAMF,GAAN,aACZG,GAAoB,UAAMH,GAAN,oBAkC1B,SAASI,GAAelmqB,GAC7B,GAAKA,EAAL,CAIA,IAAMr9D,EAAe,OAAGq9D,QAAH,IAAGA,OAAH,EAAGA,EAAO54E,MAAM,KACrC,GAAqB,IAAjBub,EAAM1oB,OACR,MAAM,IAAI+0C,MAAM,yBAElB,OAAO/5B,KAAK+6E,MAAM5wE,OAAOqgqB,KAAK98pB,EAAM,MC5BtC,IAAMwjuB,GAA4B,CAChC9oiB,KAAM+oiB,KACNC,SAAU,aACVC,iBAAav0uB,EACbw0uB,eAAgB,aAChBC,OAAQ,cAGJC,IAAc9roB,EAAAA,GAAAA,eAAgCwroB,IAE9CO,GAAU,WACd,OAAOrrK,EAAAA,GAAAA,YAAWorK,KAGdE,GAAiC,SAAC,GAAgB,IAAfjivB,EAAc,EAAdA,SACvC,GAAwBm3kB,EAAAA,GAAAA,UAAgCuqK,MAAxD,eAAO/oiB,EAAP,KAAaupiB,EAAb,KACA,GAAsC/qK,EAAAA,GAAAA,YAAtC,eAAOyqK,EAAP,KAAoBC,EAApB,KACMF,EAAW,SAAChpiB,GAChBupiB,EAAQvpiB,GACJA,EFnBQ,SAACA,GACf,GAAK0gd,aAIL,IACE,IAAM8nF,EAAU5wuB,KAAKC,UAAUmoM,GAC/B0gd,aAAaklB,QAAQ0iE,GAAwBE,GAC7C,MAAOxssB,GACPtV,QAAQsV,MAAM,gCAAiCA,IEW7C+ssB,CAAmB/oiB,GFPN,WACjB,GAAK0gd,aAIL,IACEA,aAAavvoB,WAAWm3tB,IACxB,MAAOtssB,GACPtV,QAAQsV,MAAM,kCAAmCA,IEC/C+ssB,IASJ,OACE,UAACK,GAAY7roB,SAAb,CAAsBr/G,MAAO,CAAC8hN,KAAAA,EAAMgpiB,SAAAA,EAAUC,YAAAA,EAAaC,eAAAA,EAAgBC,OAN9D,WACbH,OAASt0uB,GACTw0uB,OAAex0uB,KAIf,SACGrN,KAKDmivB,GAA6B,SAAC,GAAgB,IAAfnivB,EAAc,EAAdA,SACnC,EAAuCgivB,KAAhCrpiB,EAAP,EAAOA,KAAMmpiB,EAAb,EAAaA,OAAQD,EAArB,EAAqBA,eACfO,GAAalrK,EAAAA,GAAAA,SAAO,GAC1B,GAAgDC,EAAAA,GAAAA,WAAS,GAAzD,eAAOkrK,EAAP,KAAyBC,EAAzB,KAiCA,OA/BA1rK,EAAAA,GAAAA,YAAU,WACR,IAAM2rK,EAAW,+BAAG,WAAOC,GAAP,oFAEXJ,EAAW7ugB,QAFA,gCAGUiugB,GAAegB,GAHzB,QAGR1/uB,EAHQ,SAMZ++uB,EAAe/+uB,GANH,uDAUhBu8B,QAAQsV,MAAR,MACKytsB,EAAW7ugB,SACduugB,IAZc,yBAehBQ,GAAoB,GAfJ,+CAkBX,kBAAOF,EAAW7ugB,SAAU,KAlBjB,+DAAH,sDAqBb56B,GAAQA,EAAK8piB,SACfF,EAAY5piB,EAAK8piB,WAEjBX,IACAQ,GAAoB,MAGrB,IAEID,GAAmB,UAAC9B,GAAD,KAAyB,gCAAGvgvB,4BClGpD0ivB,GAAoB,SAA2B7rvB,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,EALlB8rvB,CAAgB9rvB,KAQxB,SAAmBA,GAClB,IAAIwhF,EAAct8E,OAAOtB,UAAUiJ,SAAShO,KAAKmB,GAEjD,MAAuB,oBAAhBwhF,GACa,kBAAhBA,GAQL,SAAwBxhF,GACvB,OAAOA,EAAMmqkB,WAAa4hL,GARtBC,CAAehsvB,GAZdisvB,CAAUjsvB,IAgBhB,IACI+rvB,GADiC,oBAAX5znB,QAAyBA,OAAO4xc,IAClB5xc,OAAO4xc,IAAI,iBAAmB,MAUtE,SAASmiL,GAA8BlsvB,EAAOwY,GAC7C,OAA0B,IAAlBA,EAAQkhE,OAAmBlhE,EAAQqzuB,kBAAkB7rvB,GAC1DmsvB,IANiBhquB,EAMKniB,EALlB2D,MAAMi2E,QAAQz3D,GAAO,GAAK,IAKAniB,EAAOwY,GACrCxY,EAPJ,IAAqBmiB,EAUrB,SAASiquB,GAAkBpnvB,EAAQ+mH,EAAQvzG,GAC1C,OAAOxT,EAAOg1B,OAAO+xF,GAAQznH,KAAI,SAASpG,GACzC,OAAOguvB,GAA8BhuvB,EAASsa,MAqBhD,SAAS2zuB,GAAUnnvB,EAAQ+mH,EAAQvzG,IAClCA,EAAUA,GAAW,IACb6zuB,WAAa7zuB,EAAQ6zuB,YAAcD,GAC3C5zuB,EAAQqzuB,kBAAoBrzuB,EAAQqzuB,mBAAqBA,GAEzD,IAAIS,EAAgB3ovB,MAAMi2E,QAAQmyC,GAIlC,OAFgCugoB,IADZ3ovB,MAAMi2E,QAAQ50E,GAKvBsnvB,EACH9zuB,EAAQ6zuB,WAAWrnvB,EAAQ+mH,EAAQvzG,GA7B5C,SAAqBxT,EAAQ+mH,EAAQvzG,GACpC,IAAIi/N,EAAc,GAalB,OAZIj/N,EAAQqzuB,kBAAkB7mvB,IAC7BE,OAAOC,KAAKH,GAAQ3G,SAAQ,SAAS+G,GACpCqyO,EAAYryO,GAAO8mvB,GAA8BlnvB,EAAOI,GAAMoT,MAGhEtT,OAAOC,KAAK4mH,GAAQ1tH,SAAQ,SAAS+G,GAC/BoT,EAAQqzuB,kBAAkB9/nB,EAAO3mH,KAAUJ,EAAOI,GAGtDqyO,EAAYryO,GAAO+mvB,GAAUnnvB,EAAOI,GAAM2mH,EAAO3mH,GAAMoT,GAFvDi/N,EAAYryO,GAAO8mvB,GAA8BngoB,EAAO3mH,GAAMoT,MAKzDi/N,EAiBCs3S,CAAY/phB,EAAQ+mH,EAAQvzG,GAJ5B0zuB,GAA8BngoB,EAAQvzG,GAQ/C2zuB,GAAUh4sB,IAAM,SAAsBsC,EAAOj+B,GAC5C,IAAK7U,MAAMi2E,QAAQnjC,GAClB,MAAM,IAAIhD,MAAM,qCAGjB,OAAOgD,EAAM3uC,QAAO,SAAS+8B,EAAM6X,GAClC,OAAOyvsB,GAAUtntB,EAAM6X,EAAMlkC,KAC3B,KAGJ,IAEA,GAFkB2zuB,GCnFlB,GAFkC,iBAAVzznB,QAAsBA,QAAUA,OAAOxzH,SAAWA,QAAUwzH,OCEhF6hc,GAA0B,iBAARv1iB,MAAoBA,MAAQA,KAAK9f,SAAWA,QAAU8f,KAK5E,GAFWs1iB,IAAcC,IAAYnQ,SAAS,cAATA,GCDrC,GAFal7iB,GAAAA,OCATiyjB,GAAcj8jB,OAAOtB,UAGrBsxE,GAAiBisf,GAAYjsf,eAO7Bsvf,GAAuBrD,GAAYt0jB,SAGnCoyjB,GAAiB9mc,GAASA,GAAAA,iBAAqB3hH,EA6BnD,OApBA,SAAmBxW,GACjB,IAAIykkB,EAAQvvf,GAAer2E,KAAKmB,EAAOi/jB,IACnCrgc,EAAM5+H,EAAMi/jB,IAEhB,IACEj/jB,EAAMi/jB,SAAkBzojB,EACxB,IAAIkujB,GAAW,EACf,MAAO9lkB,KAET,IAAIqO,EAASu3jB,GAAqB3lkB,KAAKmB,GAQvC,OAPI0kkB,IACED,EACFzkkB,EAAMi/jB,IAAkBrgc,SAEjB5+H,EAAMi/jB,KAGVhyjB,GClCLu3jB,GAPct/jB,OAAOtB,UAOciJ,SAavC,OAJA,SAAwB7M,GACtB,OAAOwkkB,GAAqB3lkB,KAAKmB,ICT/Bi/jB,GAAiB9mc,GAASA,GAAAA,iBAAqB3hH,EAkBnD,OATA,SAAoBxW,GAClB,OAAa,MAATA,OACewW,IAAVxW,EAdQ,qBADL,gBAiBJi/jB,IAAkBA,MAAkB/5jB,OAAOlF,GAC/Cg/jB,GAAUh/jB,GACV66jB,GAAe76jB,ICVrB,OANA,SAAiBugD,EAAM55B,GACrB,OAAO,SAASwG,GACd,OAAOozB,EAAK55B,EAAUwG,MCL1B,GAFmBi5iB,GAAQlhkB,OAAO60E,eAAgB70E,QCyBlD,OAJA,SAAsBlF,GACpB,OAAgB,MAATA,GAAiC,iBAATA,GCjB7BkhkB,GAAY9W,SAASxmjB,UACrBu9jB,GAAcj8jB,OAAOtB,UAGrBw9jB,GAAeF,GAAUr0jB,SAGzBqoE,GAAiBisf,GAAYjsf,eAG7Bq3qB,GAAmBnrL,GAAavikB,KAAKqG,QA2CzC,OAbA,SAAuBlF,GACrB,IAAKi7jB,GAAaj7jB,IA5CJ,mBA4Cck/jB,GAAWl/jB,GACrC,OAAO,EAET,IAAIw7E,EAAQgxqB,GAAaxsvB,GACzB,GAAc,OAAVw7E,EACF,OAAO,EAET,IAAI+oT,EAAOrvT,GAAer2E,KAAK28E,EAAO,gBAAkBA,EAAM5uE,YAC9D,MAAsB,mBAAR23X,GAAsBA,aAAgBA,GAClD68L,GAAavikB,KAAK0lY,IAASgoX,IC9C/B,OALA,WACEnuvB,KAAKk/jB,SAAW,GAChBl/jB,KAAKwY,KAAO,GC2Bd,OAJA,SAAY5W,EAAOspH,GACjB,OAAOtpH,IAAUspH,GAAUtpH,IAAUA,GAASspH,IAAUA,GCb1D,OAVA,SAAsB7yE,EAAOrxC,GAE3B,IADA,IAAI1G,EAAS+3C,EAAM/3C,OACZA,KACL,GAAIsnD,GAAGvP,EAAM/3C,GAAQ,GAAI0G,GACvB,OAAO1G,EAGX,OAAQ,GCXNiP,GAHahK,MAAMC,UAGC+J,OA4BxB,OAjBA,SAAyBvI,GACvB,IAAI6G,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,GAAah6jB,EAAM7G,GAE/B,QAAInG,EAAQ,KAIRA,GADYgN,EAAKvN,OAAS,EAE5BuN,EAAKuqC,MAEL7oC,GAAO9O,KAAKoN,EAAMhN,EAAO,KAEzBb,KAAKwY,MACA,ICbT,OAPA,SAAsBxR,GACpB,IAAI6G,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,GAAah6jB,EAAM7G,GAE/B,OAAOnG,EAAQ,OAAIuX,EAAYvK,EAAKhN,GAAO,ICA7C,OAJA,SAAsBmG,GACpB,OAAO6gkB,GAAa7nkB,KAAKk/jB,SAAUl4jB,IAAQ,GCa7C,OAbA,SAAsBA,EAAKpF,GACzB,IAAIiM,EAAO7N,KAAKk/jB,SACZr+jB,EAAQgnkB,GAAah6jB,EAAM7G,GAQ/B,OANInG,EAAQ,KACRb,KAAKwY,KACP3K,EAAKjN,KAAK,CAACoG,EAAKpF,KAEhBiM,EAAKhN,GAAO,GAAKe,EAEZ5B,MCTT,SAASw+jB,GAAU15c,GACjB,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7B2lc,GAAUh5jB,UAAUy4G,MAAQkgd,GAC5BK,GAAUh5jB,UAAV,OAAgC44jB,GAChCI,GAAUh5jB,UAAUqa,IAAMw+iB,GAC1BG,GAAUh5jB,UAAUq0B,IAAMykiB,GAC1BE,GAAUh5jB,UAAUw/D,IAAMu5f,GAE1B,UCjBA,OALA,WACEv+jB,KAAKk/jB,SAAW,IAAIV,GACpBx+jB,KAAKwY,KAAO,GCMd,OARA,SAAqBxR,GACnB,IAAI6G,EAAO7N,KAAKk/jB,SACZrwjB,EAAShB,EAAI,OAAW7G,GAG5B,OADAhH,KAAKwY,KAAO3K,EAAK2K,KACV3J,GCDT,OAJA,SAAkB7H,GAChB,OAAOhH,KAAKk/jB,SAASr/iB,IAAI7Y,ICG3B,OAJA,SAAkBA,GAChB,OAAOhH,KAAKk/jB,SAASrliB,IAAI7yB,ICoB3B,OALA,SAAkBpF,GAChB,IAAI+hB,SAAc/hB,EAClB,OAAgB,MAATA,IAA0B,UAAR+hB,GAA4B,YAARA,ICS/C,OAVA,SAAoB/hB,GAClB,IAAKuoN,GAASvoN,GACZ,OAAO,EAIT,IAAI4+H,EAAMsgc,GAAWl/jB,GACrB,MA5BY,qBA4BL4+H,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,GC5B/D,GAFiB1vH,GAAAA,sBCAb62jB,GAAc,WAChB,IAAI91B,EAAM,SAAStjiB,KAAK21jB,IAAcA,GAAAA,MAAmBA,GAAAA,KAAAA,UAA4B,IACrF,OAAOryB,EAAO,iBAAmBA,EAAO,GAFxB,GAgBlB,OAJA,SAAkB1vf,GAChB,QAASwlhB,IAAeA,MAAcxlhB,GCZpC6ghB,GAHYhX,SAASxmjB,UAGIiJ,SAqB7B,OAZA,SAAkB0zC,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO6ghB,GAAavikB,KAAK0hD,GACzB,MAAO3hD,KACT,IACE,OAAQ2hD,EAAO,GACf,MAAO3hD,MAEX,MAAO,ICVLqikB,GAAe,8BAGfC,GAAY9W,SAASxmjB,UACrBu9jB,GAAcj8jB,OAAOtB,UAGrBw9jB,GAAeF,GAAUr0jB,SAGzBqoE,GAAiBisf,GAAYjsf,eAG7Bmsf,GAAaj6gB,OAAO,IACtBg6gB,GAAavikB,KAAKq2E,IAAgBpuB,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,OARA,SAAsB9mD,GACpB,SAAKuoN,GAASvoN,IAAU+gkB,GAAS/gkB,MAGnBs5E,GAAWt5E,GAASqhkB,GAAaJ,IAChC3/hB,KAAK0/hB,GAAShhkB,KC/B/B,OAJA,SAAkBwhB,EAAQpc,GACxB,OAAiB,MAAVoc,OAAiBhL,EAAYgL,EAAOpc,ICO7C,OALA,SAAmBoc,EAAQpc,GACzB,IAAIpF,EAAQg8B,GAASxa,EAAQpc,GAC7B,OAAOm/jB,GAAavkkB,GAASA,OAAQwW,GCPvC,GAFUwljB,GAAU9sjB,GAAM,OCC1B,GAFmB8sjB,GAAU92jB,OAAQ,UCWrC,OALA,WACE9G,KAAKk/jB,SAAWqI,GAAeA,GAAa,MAAQ,GACpDvnkB,KAAKwY,KAAO,GCKd,OANA,SAAoBxR,GAClB,IAAI6H,EAAS7O,KAAK65B,IAAI7yB,WAAehH,KAAKk/jB,SAASl4jB,GAEnD,OADAhH,KAAKwY,MAAQ3J,EAAS,EAAI,EACnBA,GCJLioE,GAHchwE,OAAOtB,UAGQsxE,eAoBjC,OATA,SAAiB9vE,GACf,IAAI6G,EAAO7N,KAAKk/jB,SAChB,GAAIqI,GAAc,CAChB,IAAI14jB,EAAShB,EAAK7G,GAClB,MArBiB,8BAqBV6H,OAA4BuJ,EAAYvJ,EAEjD,OAAOioE,GAAer2E,KAAKoN,EAAM7G,GAAO6G,EAAK7G,QAAOoR,GCpBlD0+D,GAHchwE,OAAOtB,UAGQsxE,eAgBjC,OALA,SAAiB9vE,GACf,IAAI6G,EAAO7N,KAAKk/jB,SAChB,OAAOqI,QAA8BnvjB,IAAdvK,EAAK7G,GAAsB8vE,GAAer2E,KAAKoN,EAAM7G,ICG9E,OAPA,SAAiBA,EAAKpF,GACpB,IAAIiM,EAAO7N,KAAKk/jB,SAGhB,OAFAl/jB,KAAKwY,MAAQxY,KAAK65B,IAAI7yB,GAAO,EAAI,EACjC6G,EAAK7G,GAAQugkB,SAA0BnvjB,IAAVxW,EAfV,4BAekDA,EAC9D5B,MCNT,SAASk+jB,GAAKp5c,GACZ,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7Bqlc,GAAK14jB,UAAUy4G,MAAQ4/c,GACvBK,GAAK14jB,UAAL,OAA2Bs4jB,GAC3BI,GAAK14jB,UAAUqa,IAAMk+iB,GACrBG,GAAK14jB,UAAUq0B,IAAMmkiB,GACrBE,GAAK14jB,UAAUw/D,IAAMi5f,GAErB,UCXA,OATA,WACEj+jB,KAAKwY,KAAO,EACZxY,KAAKk/jB,SAAW,CACd,KAAQ,IAAIhB,GACZ,IAAO,IAAK1mU,IAAOgnU,IACnB,OAAU,IAAIN,KCFlB,OAPA,SAAmBt8jB,GACjB,IAAI+hB,SAAc/hB,EAClB,MAAgB,UAAR+hB,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV/hB,EACU,OAAVA,GCMP,OAPA,SAAoBsE,EAAKc,GACvB,IAAI6G,EAAO3H,EAAIg5jB,SACf,OAAOgH,GAAUl/jB,GACb6G,EAAmB,iBAAP7G,EAAkB,SAAW,QACzC6G,EAAK3H,KCGX,OANA,SAAwBc,GACtB,IAAI6H,EAASi5jB,GAAW9nkB,KAAMgH,GAAjB,OAAgCA,GAE7C,OADAhH,KAAKwY,MAAQ3J,EAAS,EAAI,EACnBA,GCCT,OAJA,SAAqB7H,GACnB,OAAO8gkB,GAAW9nkB,KAAMgH,GAAK6Y,IAAI7Y,ICGnC,OAJA,SAAqBA,GACnB,OAAO8gkB,GAAW9nkB,KAAMgH,GAAK6yB,IAAI7yB,ICSnC,OATA,SAAqBA,EAAKpF,GACxB,IAAIiM,EAAOi6jB,GAAW9nkB,KAAMgH,GACxBwR,EAAO3K,EAAK2K,KAIhB,OAFA3K,EAAKm3D,IAAIh+D,EAAKpF,GACd5B,KAAKwY,MAAQ3K,EAAK2K,MAAQA,EAAO,EAAI,EAC9BxY,MCLT,SAAS8+jB,GAASh6c,GAChB,IAAIjkH,GAAS,EACTP,EAAoB,MAAXwkH,EAAkB,EAAIA,EAAQxkH,OAG3C,IADAN,KAAKi+G,UACIp9G,EAAQP,GAAQ,CACvB,IAAIu4H,EAAQ/T,EAAQjkH,GACpBb,KAAKglE,IAAI6zD,EAAM,GAAIA,EAAM,KAK7Bimc,GAASt5jB,UAAUy4G,MAAQwgd,GAC3BK,GAASt5jB,UAAT,OAA+Bk5jB,GAC/BI,GAASt5jB,UAAUqa,IAAM8+iB,GACzBG,GAASt5jB,UAAUq0B,IAAM+kiB,GACzBE,GAASt5jB,UAAUw/D,IAAM65f,GAEzB,UCEA,OAhBA,SAAkB73jB,EAAKpF,GACrB,IAAIiM,EAAO7N,KAAKk/jB,SAChB,GAAIrxjB,aAAgB2wjB,GAAW,CAC7B,IAAI6J,EAAQx6jB,EAAKqxjB,SACjB,IAAK1nU,IAAQ6wU,EAAM/nkB,OAASgokB,IAG1B,OAFAD,EAAMznkB,KAAK,CAACoG,EAAKpF,IACjB5B,KAAKwY,OAAS3K,EAAK2K,KACZxY,KAET6N,EAAO7N,KAAKk/jB,SAAW,IAAIJ,GAASuJ,GAItC,OAFAx6jB,EAAKm3D,IAAIh+D,EAAKpF,GACd5B,KAAKwY,KAAO3K,EAAK2K,KACVxY,MChBT,SAASw/jB,GAAM16c,GACb,IAAIj3G,EAAO7N,KAAKk/jB,SAAW,IAAIV,GAAU15c,GACzC9kH,KAAKwY,KAAO3K,EAAK2K,KAInBgnjB,GAAMh6jB,UAAUy4G,MAAQkhd,GACxBK,GAAMh6jB,UAAN,OAA4B45jB,GAC5BI,GAAMh6jB,UAAUqa,IAAMw/iB,GACtBG,GAAMh6jB,UAAUq0B,IAAMyliB,GACtBE,GAAMh6jB,UAAUw/D,IAAMu6f,GAEtB,UCLA,OAZA,SAAmBlnhB,EAAO4khB,GAIxB,IAHA,IAAIp8jB,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,SAE9BO,EAAQP,IAC8B,IAAzC28jB,EAAS5khB,EAAMx3C,GAAQA,EAAOw3C,KAIpC,OAAOA,GCRT,GARsB,WACpB,IACE,IAAI8J,EAAOy7gB,GAAU92jB,OAAQ,kBAE7B,OADAq7C,EAAK,GAAI,GAAI,IACNA,EACP,MAAO3hD,MALW,GCsBtB,OAbA,SAAyB4iB,EAAQpc,EAAKpF,GACzB,aAAPoF,GAAsB+9D,GACxBA,GAAe3hD,EAAQpc,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASpF,EACT,UAAY,IAGdwhB,EAAOpc,GAAOpF,GCbdk1E,GAHchwE,OAAOtB,UAGQsxE,eAoBjC,OARA,SAAqB1zD,EAAQpc,EAAKpF,GAChC,IAAI4gkB,EAAWp/iB,EAAOpc,GAChB8vE,GAAer2E,KAAK2iB,EAAQpc,IAAQ4gD,GAAG46gB,EAAU5gkB,UACxCwW,IAAVxW,GAAyBoF,KAAOoc,IACnCwmjB,GAAgBxmjB,EAAQpc,EAAKpF,ICgBjC,OA1BA,SAAoB+rH,EAAQnO,EAAOp8F,EAAQ89iB,GACzC,IAAI98f,GAAShhD,EACbA,IAAWA,EAAS,IAKpB,IAHA,IAAIviB,GAAS,EACTP,EAASk/G,EAAMl/G,SAEVO,EAAQP,GAAQ,CACvB,IAAI0G,EAAMw4G,EAAM3+G,GAEZ0lB,EAAW26iB,EACXA,EAAW99iB,EAAOpc,GAAM2mH,EAAO3mH,GAAMA,EAAKoc,EAAQuqG,QAClDv1G,OAEaA,IAAbmO,IACFA,EAAWonG,EAAO3mH,IAEhBo9D,EACFwlgB,GAAgBxmjB,EAAQpc,EAAKuf,GAE7BumM,GAAY1pM,EAAQpc,EAAKuf,GAG7B,OAAOnD,GCjBT,OAVA,SAAmBs0C,EAAGulgB,GAIpB,IAHA,IAAIp8jB,GAAS,EACTgO,EAAStJ,MAAMmyD,KAEV72D,EAAQ62D,GACf7oD,EAAOhO,GAASo8jB,EAASp8jB,GAE3B,OAAOgO,GCCT,OAJA,SAAyBjN,GACvB,OAAOi7jB,GAAaj7jB,IAVR,sBAUkBk/jB,GAAWl/jB,ICVvCmhkB,GAAcj8jB,OAAOtB,UAGrBsxE,GAAiBisf,GAAYjsf,eAG7B2vf,GAAuB1D,GAAY0D,qBAoBnC7G,GAAcwJ,GAAgB,WAAa,OAAOrhkB,UAApB,IAAsCqhkB,GAAkB,SAASxnkB,GACjG,OAAOi7jB,GAAaj7jB,IAAUk1E,GAAer2E,KAAKmB,EAAO,YACtD6kkB,GAAqBhmkB,KAAKmB,EAAO,WAGtC,MCVA,GAFc2D,MAAMi2E,QCNpB,OAJA,WACE,OAAO,GCVLysf,GAAgC,iBAAXn4e,SAAuBA,UAAYA,QAAQ9U,UAAY8U,QAG5Eo4e,GAAaD,IAAgC,iBAAVztc,QAAsBA,SAAWA,OAAOx/C,UAAYw/C,OAMvF8uc,GAHgBpB,IAAcA,GAAWp4e,UAAYm4e,GAG5Bn3jB,GAAAA,YAAcsH,EAwB3C,IArBqBkxjB,GAASA,GAAO1/W,cAAWxxM,IAmBfixjB,GC/B7B7B,GAAW,mBAoBf,OAVA,SAAiB5lkB,EAAOtB,GACtB,IAAIqjB,SAAc/hB,EAGlB,SAFAtB,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARqjB,GACU,UAARA,GAAoB6jjB,GAAStkiB,KAAKthC,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQtB,GCajD,OALA,SAAkBsB,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,kBC+BnBuhkB,GAAiB,GACrBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,EAc7B,OALA,SAA0BvhkB,GACxB,OAAOi7jB,GAAaj7jB,IAClBshkB,GAASthkB,EAAMtB,WAAa6ikB,GAAerC,GAAWl/jB,KC3C1D,OANA,SAAmBugD,GACjB,OAAO,SAASvgD,GACd,OAAOugD,EAAKvgD,KCNZqmkB,GAAgC,iBAAXn4e,SAAuBA,UAAYA,QAAQ9U,UAAY8U,QAG5Eo4e,GAAaD,IAAgC,iBAAVztc,QAAsBA,SAAWA,OAAOx/C,UAAYw/C,OAMvF2tc,GAHgBD,IAAcA,GAAWp4e,UAAYm4e,IAGtB/L,GAAAA,QAG/BkM,GAAY,WACd,IAEE,IAAIzyiB,EAAQuyiB,IAAcA,GAAWn4e,SAAWm4e,GAAWn4e,QAAQ,QAAQp6D,MAE3E,OAAIA,GAKGwyiB,IAAeA,GAAY3lZ,SAAW2lZ,GAAY3lZ,QAAQ,QACjE,MAAOhiL,MAXK,GAchB,MCxBIipkB,GAAmBrB,IAAYA,GAAAA,aAqBnC,GAFmBqB,GAAmBD,GAAUC,IAAoBF,GCbhEzyf,GAHchwE,OAAOtB,UAGQsxE,eAqCjC,OA3BA,SAAuBl1E,EAAOm+jB,GAC5B,IAAIC,EAAQxkf,GAAQ55E,GAChBq+jB,GAASD,GAASJ,GAAYh+jB,GAC9Bs+jB,GAAUF,IAAUC,GAASr2W,GAAShoN,GACtCu+jB,GAAUH,IAAUC,IAAUC,GAAUJ,GAAal+jB,GACrDw+jB,EAAcJ,GAASC,GAASC,GAAUC,EAC1CtxjB,EAASuxjB,EAAcT,GAAU/9jB,EAAMtB,OAAQulE,QAAU,GACzDvlE,EAASuO,EAAOvO,OAEpB,IAAK,IAAI0G,KAAOpF,GACTm+jB,IAAajpf,GAAer2E,KAAKmB,EAAOoF,IACvCo5jB,IAEQ,UAAPp5jB,GAECk5jB,IAAkB,UAAPl5jB,GAA0B,UAAPA,IAE9Bm5jB,IAAkB,UAAPn5jB,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD64jB,GAAQ74jB,EAAK1G,KAElBuO,EAAOjO,KAAKoG,GAGhB,OAAO6H,GC5CLk0jB,GAAcj8jB,OAAOtB,UAgBzB,OAPA,SAAqB5D,GACnB,IAAIukY,EAAOvkY,GAASA,EAAM4M,YAG1B,OAAO5M,KAFqB,mBAARukY,GAAsBA,EAAK3gY,WAAcu9jB,KCP/D,GAFiBiF,GAAQlhkB,OAAOC,KAAMD,QCIlCgwE,GAHchwE,OAAOtB,UAGQsxE,eAsBjC,OAbA,SAAkB1zD,GAChB,IAAKmgjB,GAAYngjB,GACf,OAAOogjB,GAAWpgjB,GAEpB,IAAIvU,EAAS,GACb,IAAK,IAAI7H,KAAOF,OAAOsc,GACjB0zD,GAAer2E,KAAK2iB,EAAQpc,IAAe,eAAPA,GACtC6H,EAAOjO,KAAKoG,GAGhB,OAAO6H,GCMT,OAJA,SAAqBjN,GACnB,OAAgB,MAATA,GAAiBshkB,GAASthkB,EAAMtB,UAAY46E,GAAWt5E,ICOhE,OAJA,SAAcwhB,GACZ,OAAOkhhB,GAAYlhhB,GAAUsmjB,GAActmjB,GAAUumjB,GAASvmjB,ICjBhE,OAJA,SAAoBA,EAAQuqG,GAC1B,OAAOvqG,GAAUy5G,GAAWlP,EAAQ5mH,GAAK4mH,GAASvqG,ICMpD,OAVA,SAAsBA,GACpB,IAAIvU,EAAS,GACb,GAAc,MAAVuU,EACF,IAAK,IAAIpc,KAAOF,OAAOsc,GACrBvU,EAAOjO,KAAKoG,GAGhB,OAAO6H,GCRLioE,GAHchwE,OAAOtB,UAGQsxE,eAwBjC,OAfA,SAAoB1zD,GAClB,IAAK+mM,GAAS/mM,GACZ,OAAOiruB,GAAajruB,GAEtB,IAAIkruB,EAAU/qL,GAAYngjB,GACtBvU,EAAS,GAEb,IAAK,IAAI7H,KAAOoc,GACD,eAAPpc,IAAyBsnvB,GAAYx3qB,GAAer2E,KAAK2iB,EAAQpc,KACrE6H,EAAOjO,KAAKoG,GAGhB,OAAO6H,GCET,OAJA,SAAgBuU,GACd,OAAOkhhB,GAAYlhhB,GAAUsmjB,GAActmjB,GAAQ,GAAQmruB,GAAWnruB,ICZxE,OAJA,SAAsBA,EAAQuqG,GAC5B,OAAOvqG,GAAUy5G,GAAWlP,EAAQ6goB,GAAO7goB,GAASvqG,ICVlD6kjB,GAAgC,iBAAXn4e,SAAuBA,UAAYA,QAAQ9U,UAAY8U,QAG5Eo4e,GAAaD,IAAgC,iBAAVztc,QAAsBA,SAAWA,OAAOx/C,UAAYw/C,OAMvF8uc,GAHgBpB,IAAcA,GAAWp4e,UAAYm4e,GAG5Bn3jB,GAAAA,YAAcsH,EACvCq2uB,GAAcnlL,GAASA,GAAOmlL,iBAAcr2uB,EAqBhD,OAXA,SAAqB6xM,EAAQykiB,GAC3B,GAAIA,EACF,OAAOzkiB,EAAOxkN,QAEhB,IAAInF,EAAS2pN,EAAO3pN,OAChBuO,EAAS4/uB,GAAcA,GAAYnuvB,GAAU,IAAI2pN,EAAOz7M,YAAYlO,GAGxE,OADA2pN,EAAO54J,KAAKxiD,GACLA,GCZT,OAXA,SAAmB8+G,EAAQt1E,GACzB,IAAIx3C,GAAS,EACTP,EAASqtH,EAAOrtH,OAGpB,IADA+3C,IAAUA,EAAQ9yC,MAAMjF,MACfO,EAAQP,GACf+3C,EAAMx3C,GAAS8sH,EAAO9sH,GAExB,OAAOw3C,GCQT,OAfA,SAAqBA,EAAOlzC,GAM1B,IALA,IAAItE,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,OACnCo/jB,EAAW,EACX7wjB,EAAS,KAEJhO,EAAQP,GAAQ,CACvB,IAAIsB,EAAQy2C,EAAMx3C,GACdsE,EAAUvD,EAAOf,EAAOw3C,KAC1BxpC,EAAO6wjB,KAAc99jB,GAGzB,OAAOiN,GCCT,OAJA,WACE,MAAO,ICZL43jB,GAHc3/jB,OAAOtB,UAGcihkB,qBAGnCC,GAAmB5/jB,OAAOsshB,sBAS1B6yC,GAAcS,GAA+B,SAAStjjB,GACxD,OAAc,MAAVA,EACK,IAETA,EAAStc,OAAOsc,GACTmjjB,GAAYG,GAAiBtjjB,IAAS,SAAS6zE,GACpD,OAAOwve,GAAqBhmkB,KAAK2iB,EAAQ6zE,QANRuve,GAUrC,MCdA,OAJA,SAAqB74c,EAAQvqG,GAC3B,OAAOy5G,GAAWlP,EAAQs4c,GAAWt4c,GAASvqG,ICOhD,OAXA,SAAmBi1B,EAAOz+B,GAKxB,IAJA,IAAI/Y,GAAS,EACTP,EAASsZ,EAAOtZ,OAChBiL,EAAS8sC,EAAM/3C,SAEVO,EAAQP,GACf+3C,EAAM9sC,EAAS1K,GAAS+Y,EAAO/Y,GAEjC,OAAOw3C,GCDLs2sB,GATmB7nvB,OAAOsshB,sBASqB,SAAShwgB,GAE1D,IADA,IAAIvU,EAAS,GACNuU,GACLq9iB,GAAU5xjB,EAAQo3jB,GAAW7ijB,IAC7BA,EAASgruB,GAAahruB,GAExB,OAAOvU,GAN8B23jB,GASvC,MCTA,OAJA,SAAuB74c,EAAQvqG,GAC7B,OAAOy5G,GAAWlP,EAAQghoB,GAAahhoB,GAASvqG,ICOlD,OALA,SAAwBA,EAAQs9iB,EAAUC,GACxC,IAAI9xjB,EAAS6xjB,EAASt9iB,GACtB,OAAOo4D,GAAQp4D,GAAUvU,EAAS4xjB,GAAU5xjB,EAAQ8xjB,EAAYv9iB,KCDlE,OAJA,SAAoBA,GAClB,OAAO4ijB,GAAe5ijB,EAAQrc,GAAMk/jB,KCItC,OAJA,SAAsB7ijB,GACpB,OAAO4ijB,GAAe5ijB,EAAQoruB,GAAQG,KCPxC,GAFe/wL,GAAU9sjB,GAAM,YCE/B,GAFc8sjB,GAAU9sjB,GAAM,WCE9B,GAFU8sjB,GAAU9sjB,GAAM,OCE1B,GAFc8sjB,GAAU9sjB,GAAM,WCK1B61jB,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBpE,GAASjF,IAC9BsJ,GAAgBrE,GAASprU,IACzB0vU,GAAoBtE,GAASzkhB,IAC7BgphB,GAAgBvE,GAASj+c,IACzByid,GAAoBxE,GAAS1pc,IAS7Booc,GAASR,IAGRnD,IAAY2D,GAAO,IAAI3D,GAAS,IAAIjxW,YAAY,MAAQq6W,IACxDvvU,IAAO8pU,GAAO,IAAI9pU,KAAQmvU,IAC1BxohB,IAAWmjhB,GAAOnjhB,GAAAA,YAAsByohB,IACxCjid,IAAO28c,GAAO,IAAI38c,KAAQkid,IAC1B3tc,IAAWooc,GAAO,IAAIpoc,KAAY4tc,MACrCxF,GAAS,SAAS1/jB,GAChB,IAAIiN,EAASiyjB,GAAWl/jB,GACpBukY,EA/BQ,mBA+BDt3X,EAAsBjN,EAAM4M,iBAAc4J,EACjDivjB,EAAalhM,EAAOy8L,GAASz8L,GAAQ,GAEzC,GAAIkhM,EACF,OAAQA,GACN,KAAKL,GAAoB,OAAOD,GAChC,KAAKE,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAC/B,KAAKO,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAGnC,OAAOj4jB,IAIX,UCrDIioE,GAHchwE,OAAOtB,UAGQsxE,eAqBjC,OAZA,SAAwBz+B,GACtB,IAAI/3C,EAAS+3C,EAAM/3C,OACfuO,EAAS,IAAIwpC,EAAM7pC,YAAYlO,GAOnC,OAJIA,GAA6B,iBAAZ+3C,EAAM,IAAkBy+B,GAAer2E,KAAK43C,EAAO,WACtExpC,EAAOhO,MAAQw3C,EAAMx3C,MACrBgO,EAAO2pB,MAAQ6f,EAAM7f,OAEhB3pB,GCjBT,GAFiBiC,GAAAA,WCYjB,OANA,SAA0B89uB,GACxB,IAAI//uB,EAAS,IAAI+/uB,EAAYpgvB,YAAYogvB,EAAYvpL,YAErD,OADA,IAAI5F,GAAW5wjB,GAAQm2D,IAAI,IAAIy6f,GAAWmvL,IACnC//uB,GCGT,OALA,SAAuBggvB,EAAUH,GAC/B,IAAIzkiB,EAASykiB,EAASI,GAAiBD,EAAS5kiB,QAAU4kiB,EAAS5kiB,OACnE,OAAO,IAAI4kiB,EAASrgvB,YAAYy7M,EAAQ4kiB,EAASvpL,WAAYupL,EAASxpL,aCXpE0pL,GAAU,OAed,OANA,SAAqBl3b,GACnB,IAAIhpT,EAAS,IAAIgpT,EAAOrpT,YAAYqpT,EAAOlqM,OAAQohoB,GAAQxgvB,KAAKspT,IAEhE,OADAhpT,EAAOgtH,UAAYg8L,EAAOh8L,UACnBhtH,GCVL6tjB,GAAc3ic,GAASA,GAAAA,eAAmB3hH,EAC1CgtjB,GAAgB1I,GAAcA,GAAY/7V,aAAUvoN,EAaxD,OAJA,SAAqB6+E,GACnB,OAAOmue,GAAgBt+jB,OAAOs+jB,GAAc3kkB,KAAKw2F,IAAW,ICC9D,OALA,SAAyB+3pB,EAAYN,GACnC,IAAIzkiB,EAASykiB,EAASI,GAAiBE,EAAW/kiB,QAAU+kiB,EAAW/kiB,OACvE,OAAO,IAAI+kiB,EAAWxgvB,YAAYy7M,EAAQ+kiB,EAAW1pL,WAAY0pL,EAAW1uvB,SCgE9E,OApCA,SAAwB8iB,EAAQo9G,EAAKkunB,GACnC,IAAIvoX,EAAO/iX,EAAO5U,YAClB,OAAQgyH,GACN,IA3BiB,uBA4Bf,OAAOsunB,GAAiB1ruB,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAI+iX,GAAM/iX,GAEnB,IAjCc,oBAkCZ,OAAO6ruB,GAAc7ruB,EAAQsruB,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOQ,GAAgB9ruB,EAAQsruB,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAIvoX,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAK/iX,GAElB,IAtDY,kBAuDV,OAAO+ruB,GAAY/ruB,GAKrB,IAzDY,kBA0DV,OAAOgsuB,GAAYhsuB,KCrErBwhf,GAAe99f,OAAOw4B,OAUtB+vtB,GAAc,WAChB,SAASjsuB,KACT,OAAO,SAASg6D,GACd,IAAK+sI,GAAS/sI,GACZ,MAAO,GAET,GAAIwnb,GACF,OAAOA,GAAaxnb,GAEtBh6D,EAAO5d,UAAY43E,EACnB,IAAIvuE,EAAS,IAAIuU,EAEjB,OADAA,EAAO5d,eAAY4S,EACZvJ,GAZO,GAgBlB,MCZA,OANA,SAAyBuU,GACvB,MAAqC,mBAAtBA,EAAO5U,aAA8B+0jB,GAAYngjB,GAE5D,GADAisuB,GAAWjB,GAAahruB,KCI9B,OAJA,SAAmBxhB,GACjB,OAAOi7jB,GAAaj7jB,IAVT,gBAUmB0/jB,GAAO1/jB,ICTnC0tvB,GAAYlnL,IAAYA,GAAAA,MAqB5B,GAFYknL,GAAY9lL,GAAU8lL,IAAaC,GCP/C,OAJA,SAAmB3tvB,GACjB,OAAOi7jB,GAAaj7jB,IAVT,gBAUmB0/jB,GAAO1/jB,ICTnC4tvB,GAAYpnL,IAAYA,GAAAA,MAqB5B,GAFYonL,GAAYhmL,GAAUgmL,IAAaC,GCK3CluL,GAAU,qBAKVmuL,GAAU,oBAIVjuL,GAAY,kBAoBZkuL,GAAgB,GACpBA,GAAcpuL,IAAWouL,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAcluL,mBACzCkuL,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAcD,IACxCC,GA5BiB,qBA4BW,EA8F5B,OA5EA,SAASC,EAAUhuvB,EAAOq/jB,EAASC,EAAYl6jB,EAAKoc,EAAQkzE,GAC1D,IAAIznF,EACA6/uB,EAnEgB,EAmEPztL,EACT4uL,EAnEgB,EAmEP5uL,EACT6uL,EAnEmB,EAmEV7uL,EAKb,GAHIC,IACFryjB,EAASuU,EAAS89iB,EAAWt/jB,EAAOoF,EAAKoc,EAAQkzE,GAAS4qe,EAAWt/jB,SAExDwW,IAAXvJ,EACF,OAAOA,EAET,IAAKs7M,GAASvoN,GACZ,OAAOA,EAET,IAAIo+jB,EAAQxkf,GAAQ55E,GACpB,GAAIo+jB,GAEF,GADAnxjB,EAASkhvB,GAAenuvB,IACnB8svB,EACH,OAAO5xnB,GAAUl7H,EAAOiN,OAErB,CACL,IAAI2xH,EAAM8gc,GAAO1/jB,GACbouvB,EAASxvnB,GAAOkvnB,IA7EX,8BA6EsBlvnB,EAE/B,GAAIopF,GAAShoN,GACX,OAAOquvB,GAAYruvB,EAAO8svB,GAE5B,GAAIlunB,GAAOihc,IAAajhc,GAAO+gc,IAAYyuL,IAAW5suB,GAEpD,GADAvU,EAAUghvB,GAAUG,EAAU,GAAKE,GAAgBtuvB,IAC9C8svB,EACH,OAAOmB,EACHM,GAAcvuvB,EAAOwuvB,GAAavhvB,EAAQjN,IAC1CyuvB,GAAYzuvB,EAAO0uvB,GAAWzhvB,EAAQjN,QAEvC,CACL,IAAK+tvB,GAAcnvnB,GACjB,OAAOp9G,EAASxhB,EAAQ,GAE1BiN,EAAS0hvB,GAAe3uvB,EAAO4+H,EAAKkunB,IAIxCp4pB,IAAUA,EAAQ,IAAIkpe,IACtB,IAAIgG,EAAUlve,EAAMz2E,IAAIje,GACxB,GAAI4jkB,EACF,OAAOA,EAETlve,EAAMtxB,IAAIpjE,EAAOiN,GAEb2hvB,GAAM5uvB,GACRA,EAAM3B,SAAQ,SAASwwvB,GACrB5hvB,EAAOvN,IAAIsuvB,EAAUa,EAAUxvL,EAASC,EAAYuvL,EAAU7uvB,EAAO00F,OAE9Do6pB,GAAM9uvB,IACfA,EAAM3B,SAAQ,SAASwwvB,EAAUzpvB,GAC/B6H,EAAOm2D,IAAIh+D,EAAK4ovB,EAAUa,EAAUxvL,EAASC,EAAYl6jB,EAAKpF,EAAO00F,OAIzE,IAIIkpB,EAAQwgd,OAAQ5njB,GAJL03uB,EACVD,EAASc,GAAelrL,GACxBoqL,EAASrB,GAASznvB,IAEkBnF,GASzC,OARAgvvB,GAAUpxoB,GAAS59G,GAAO,SAAS6uvB,EAAUzpvB,GACvCw4G,IAEFixoB,EAAW7uvB,EADXoF,EAAMypvB,IAIR3jiB,GAAYj+M,EAAQ7H,EAAK4ovB,EAAUa,EAAUxvL,EAASC,EAAYl6jB,EAAKpF,EAAO00F,OAEzEznF,GC/HT,OAJA,SAAejN,GACb,OAAOguvB,GAAUhuvB,EA7BM,ICiBzB,OAXA,SAAkBy2C,EAAO4khB,GAKvB,IAJA,IAAIp8jB,GAAS,EACTP,EAAkB,MAAT+3C,EAAgB,EAAIA,EAAM/3C,OACnCuO,EAAStJ,MAAMjF,KAEVO,EAAQP,GACfuO,EAAOhO,GAASo8jB,EAAS5khB,EAAMx3C,GAAQA,EAAOw3C,GAEhD,OAAOxpC,GCWT,OALA,SAAkBjN,GAChB,MAAuB,iBAATA,GACXi7jB,GAAaj7jB,IArBF,mBAqBYk/jB,GAAWl/jB,ICwBvC,SAASmmkB,GAAQ5lhB,EAAMhrB,GACrB,GAAmB,mBAARgrB,GAAmC,MAAZhrB,GAAuC,mBAAZA,EAC3D,MAAM,IAAI4uF,UAhDQ,uBAkDpB,IAAIgkd,EAAW,SAAXA,IACF,IAAIvjjB,EAAOze,UACPf,EAAMmwB,EAAWA,EAASnR,MAAMhmB,KAAMwmB,GAAQA,EAAK,GACnDm5B,EAAQoqhB,EAASpqhB,MAErB,GAAIA,EAAM9lB,IAAI7yB,GACZ,OAAO24C,EAAM9/B,IAAI7Y,GAEnB,IAAI6H,EAASszC,EAAKn8B,MAAMhmB,KAAMwmB,GAE9B,OADAujjB,EAASpqhB,MAAQA,EAAMqlB,IAAIh+D,EAAK6H,IAAW8wC,EACpC9wC,GAGT,OADAk7jB,EAASpqhB,MAAQ,IAAKoohB,GAAQiC,OAASlL,IAChCiL,EAIThC,GAAQiC,MAAQlL,GAEhB,UC/CA,OAZA,SAAuB38gB,GACrB,IAAItzC,EAASk5jB,GAAQ5lhB,GAAM,SAASn7C,GAIlC,OAfmB,MAYf24C,EAAMnnC,MACRmnC,EAAMs+D,QAEDj3G,KAGL24C,EAAQ9wC,EAAO8wC,MACnB,OAAO9wC,GCnBL25jB,GAAa,mGAGbC,GAAe,WASfxE,GAAesE,IAAc,SAASl6d,GACxC,IAAIx/F,EAAS,GAOb,OAN6B,KAAzBw/F,EAAOj9C,WAAW,IACpBviD,EAAOjO,KAAK,IAEdytG,EAAO3lD,QAAQ8/gB,IAAY,SAAS7mjB,EAAO83D,EAAQ4oF,EAAOtgJ,GACxDlT,EAAOjO,KAAKyhK,EAAQtgJ,EAAU2mC,QAAQ+/gB,GAAc,MAAShvf,GAAU93D,MAElE9S,KAGT,MCNA,OARA,SAAejN,GACb,GAAoB,iBAATA,GAAqBk7jB,GAASl7jB,GACvC,OAAOA,EAET,IAAIiN,EAAUjN,EAAQ,GACtB,MAAkB,KAAViN,GAAkB,EAAIjN,IAdjB,SAcwC,KAAOiN,GCR1D6tjB,GAAc3ic,GAASA,GAAAA,eAAmB3hH,EAC1CukjB,GAAiBD,GAAcA,GAAYjujB,cAAW2J,EA0B1D,OAhBA,SAASwkjB,EAAah7jB,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI45E,GAAQ55E,GAEV,OAAOoikB,GAASpikB,EAAOg7jB,GAAgB,GAEzC,GAAIE,GAASl7jB,GACX,OAAO+6jB,GAAiBA,GAAel8jB,KAAKmB,GAAS,GAEvD,IAAIiN,EAAUjN,EAAQ,GACtB,MAAkB,KAAViN,GAAkB,EAAIjN,IA3BjB,SA2BwC,KAAOiN,GCN9D,OAJA,SAAkBjN,GAChB,OAAgB,MAATA,EAAgB,GAAKg7jB,GAAah7jB,ICQ3C,OAPA,SAAgBA,GACd,OAAI45E,GAAQ55E,GACHoikB,GAASpikB,EAAO4+jB,IAElB1D,GAASl7jB,GAAS,CAACA,GAASk7H,GAAUmnc,GAAax1jB,GAAS7M,MCVrE,OAlBA,SAAiB8e,EAAW+qB,cC2B5B,OAJA,SAAmB7pC,GACjB,OAAOguvB,GAAUhuvB,EAAOivvB,8jBClBb79d,GAAe,SAACpxR,GAAD,OAC1B2D,MAAMi2E,QAAQ55E,IAA2B,IAAjBA,EAAMtB,QAGnB46E,GAAa,SAACxN,GAAD,MACT,oBAARA,GAGIy8I,GAAW,SAACz8I,GAAD,OACd,OAARA,GAA+B,kBAARA,GAGZojrB,GAAY,SAACpjrB,GAAD,OACvB7H,OAAOlgD,KAAKo1B,MAAM0U,OAAOie,OAAWA,GAGzB48I,GAAW,SAAC58I,GAAD,MACkB,oBAAxC5mE,OAAOtB,UAAUiJ,SAAShO,KAAKitE,IAOpBqjrB,GAAkB,SAAChmvB,GAAD,OACM,IAAnC43lB,GAAAA,SAAAA,MAAqB53lB,IAGV0jQ,GAAY,SAAC7sQ,GAAD,OACvBuoN,GAASvoN,IAAUs5E,GAAWt5E,EAAM48C,gBAgCtBwysB,GACdtjrB,EACA1mE,EACAmlF,EACAiL,QAAAA,IAAAA,IAAAA,EAAY,GAGZ,IADA,IAAM9pF,EAAO2jvB,GAAOjqvB,GACb0mE,GAAO0pB,EAAI9pF,EAAKhN,QACrBotE,EAAMA,EAAIpgE,EAAK8pF,MAEjB,YAAeh/E,IAARs1D,EAAoBye,EAAMze,WA2BnBwjrB,GAAMxjrB,EAAUpgE,EAAc1L,GAM5C,IALA,IAAIy/D,EAAWia,GAAM5N,GACjByjrB,EAAc9vrB,EACdt1D,EAAI,EACJw7E,EAAY0pqB,GAAO3jvB,GAEhBvB,EAAIw7E,EAAUjnF,OAAS,EAAGyL,IAAK,CACpC,IAAMu/C,EAAsBi8B,EAAUx7E,GAClCqlvB,EAAkBJ,GAAMtjrB,EAAK6Z,EAAU9hF,MAAM,EAAGsG,EAAI,IAExD,GAAIqlvB,IAAejniB,GAASiniB,IAAe7rvB,MAAMi2E,QAAQ41qB,IACvDD,EAASA,EAAO7lsB,GAAegwB,GAAM81qB,OAChC,CACL,IAAMnlrB,EAAmBsb,EAAUx7E,EAAI,GACvColvB,EAASA,EAAO7lsB,GACdwlsB,GAAU7krB,IAAaxc,OAAOwc,IAAa,EAAI,GAAK,IAK1D,OAAW,IAANlgE,EAAU2hE,EAAMyjrB,GAAQ5pqB,EAAUx7E,MAAQnK,EACtC8rE,QAGKt1D,IAAVxW,SACKuvvB,EAAO5pqB,EAAUx7E,IAExBolvB,EAAO5pqB,EAAUx7E,IAAMnK,EAKf,IAANmK,QAAqBqM,IAAVxW,UACNy/D,EAAIkmB,EAAUx7E,IAGhBs1D,YAUOgwrB,GACdjuuB,EACAxhB,EACA6iE,EACA1lB,QADA0lB,IAAAA,IAAAA,EAAe,IAAIy0D,cACnBn6E,IAAAA,IAAAA,EAAgB,IAEhB,cAAcj4C,OAAOC,KAAKqc,GAA1B,eAAmC,CAA9B,IAAIu0C,EAAC,KACF5zC,EAAMX,EAAOu0C,GACfwyJ,GAASpmM,GACN0gD,EAAQ5kD,IAAIkE,KACf0gD,EAAQO,IAAIjhD,GAAK,GAIjBg7B,EAAS4Y,GAAKpyD,MAAMi2E,QAAQz3D,GAAO,GAAK,GACxCstuB,GAAsBttuB,EAAKniB,EAAO6iE,EAAS1lB,EAAS4Y,KAGtD5Y,EAAS4Y,GAAK/1D,EAIlB,OAAOm9C,MCzKIuysB,IAAgB3uJ,EAAAA,GAAAA,oBAC3BvqlB,GAEFk5uB,GAAcpivB,YAAc,gBAEEoivB,GAAcrwoB,SACdqwoB,GAAcntJ,SAE5C,SAAgBotJ,KACd,IAAMC,GAAS7uJ,EAAAA,GAAAA,YAA4C2uJ,IAO3D,OAJIE,GADJ,IAAU,GAKHA,ECkCT,SAASC,GACPt6pB,EACAn4B,GAEA,OAAQA,EAAIr7C,MACV,IAAK,aACH,aAAYwzE,EAAZ,CAAmBv9E,OAAQolD,EAAI07D,UACjC,IAAK,cACH,aAAYvjC,EAAZ,CAAmBu6pB,QAAS1yrB,EAAI07D,UAClC,IAAK,aACH,OAAIgP,IAAAA,CAAQvyC,EAAM8qI,OAAQjjK,EAAI07D,SACrBvjC,EAGT,MAAYA,EAAZ,CAAmB8qI,OAAQjjK,EAAI07D,UACjC,IAAK,aACH,aAAYvjC,EAAZ,CAAmBz/C,OAAQsnB,EAAI07D,UACjC,IAAK,mBACH,aAAYvjC,EAAZ,CAAmBw6pB,aAAc3yrB,EAAI07D,UACvC,IAAK,mBACH,aAAYvjC,EAAZ,CAAmBy6pB,aAAc5yrB,EAAI07D,UACvC,IAAK,kBACH,aACKvjC,EADL,CAEEv9E,OAAQs3uB,GAAM/5pB,EAAMv9E,OAAQolD,EAAI07D,QAAQn2F,MAAOy6B,EAAI07D,QAAQ94H,SAE/D,IAAK,oBACH,aACKu1F,EADL,CAEEu6pB,QAASR,GAAM/5pB,EAAMu6pB,QAAS1yrB,EAAI07D,QAAQn2F,MAAOy6B,EAAI07D,QAAQ94H,SAEjE,IAAK,kBACH,aACKu1F,EADL,CAEE8qI,OAAQivhB,GAAM/5pB,EAAM8qI,OAAQjjK,EAAI07D,QAAQn2F,MAAOy6B,EAAI07D,QAAQ94H,SAE/D,IAAK,aACH,aAAYu1F,EAAUn4B,EAAI07D,SAC5B,IAAK,mBACH,OAAO17D,EAAI07D,QAAQvjC,GACrB,IAAK,iBACH,aACKA,EADL,CAEEu6pB,QAASL,GACPl6pB,EAAMv9E,QACN,GAEF+3uB,cAAc,EACdE,YAAa16pB,EAAM06pB,YAAc,IAErC,IAAK,iBAKL,IAAK,iBACH,aACK16pB,EADL,CAEEw6pB,cAAc,IAElB,QACE,OAAOx6pB,GAKb,IAAM26pB,GAAqC,GACrCC,GAAuC,GAU7C,SAAgBC,GAAAA,WACdC,iBAAAA,OAAAA,IAAmB,GAAAC,MACnBC,eAAAA,OAAAA,IAAiB,GAAAC,MACjBC,gBAAAA,OAAAA,IAAkB,GAAAC,EAClBC,EAAAA,EAAAA,mBACAC,mBAAAA,OAAAA,IAAqB,GAAAC,EACrBj2a,EAAAA,EAAAA,SACGs6I,EAAAA,GAAAA,EAAAA,CAAAA,mBAAAA,iBAAAA,kBAAAA,iBAAAA,qBAAAA,aAEGt3W,EAAQ,IACZyyoB,iBAAAA,EACAE,eAAAA,EACAE,gBAAAA,EACA71a,SAAAA,GACGs6I,GAEC47R,GAAgB/vJ,EAAAA,GAAAA,QAAanjf,EAAMkzoB,eACnCC,GAAgBhwJ,EAAAA,GAAAA,QAAanjf,EAAMmzoB,eAAiBb,IACpDc,GAAiBjwJ,EAAAA,GAAAA,QAAanjf,EAAMozoB,gBAAkBb,IACtDc,GAAgBlwJ,EAAAA,GAAAA,QAAanjf,EAAMqzoB,eACnCt4K,GAAYooB,EAAAA,GAAAA,SAAsB,GAClCmwJ,GAAgBnwJ,EAAAA,GAAAA,QAA4B,KAYlDA,EAAAA,GAAAA,YAAgB,WAGd,OAFApoB,EAAUj8V,SAAU,EAEb,WACLi8V,EAAUj8V,SAAU,KAErB,WAEuBqkX,EAAAA,GAAAA,YAExB8uJ,GAAe,CACf73uB,OAAQ4lG,EAAMkzoB,cACdzwhB,OAAQziH,EAAMmzoB,eAAiBb,GAC/BJ,QAASlyoB,EAAMozoB,gBAAkBb,GACjCr6sB,OAAQ8nE,EAAMqzoB,cACdlB,cAAc,EACdC,cAAc,EACdC,YAAa,IATR16pB,EAAAA,EAAAA,GAAOm+c,EAAAA,EAAAA,GAYRy9M,GAAqBpwJ,EAAAA,GAAAA,cACzB,SAAC/olB,EAAgB2qB,GACf,OAAO,IAAI4Z,SAAQ,SAAC/tC,EAASs7B,GAC3B,IAAMsntB,EAAuBxzoB,EAAM7rC,SAAiB/5D,EAAQ2qB,GACjC,MAAvByutB,EAEF5ivB,EAAQ0hvB,IACCrjf,GAAUukf,GAClBA,EAAqCx0sB,MACpC,SAAAyjL,GACE7xN,EAAQ6xN,GAAU6vhB,OAEpB,SAAAmB,GAQEvntB,EAAOuntB,MAIX7ivB,EAAQ4ivB,QAId,CAACxzoB,EAAM7rC,WAMHu/qB,GAAsBvwJ,EAAAA,GAAAA,cAC1B,SAAC/olB,EAAgB2qB,GACf,IAAM4utB,EAAmB3zoB,EAAM2zoB,iBACzB3miB,EAAStxI,GAAWi4qB,GACtBA,EAAiB5utB,GACjB4utB,EACE3ivB,EACJ+zB,GAASioL,EAAO4miB,WACZ5miB,EAAO4miB,WAAW7utB,EAAO3qB,GAs0BrC,SACEA,EACA4yM,EACAs+gB,EACAnwtB,QADAmwtB,IAAAA,IAAAA,GAAgB,QAChBnwtB,IAAAA,IAAAA,EAAe,IAEf,IAAM04uB,EAA6BC,GAAyB15uB,GAC5D,OAAO4yM,EAAOs+gB,EAAO,eAAiB,YAAYuoB,EAAc,CAC9DE,YAAY,EACZ54uB,QAASA,IA90BD64uB,CAAkB55uB,EAAQ4yM,GAChC,OAAO,IAAIruK,SAAQ,SAAC/tC,EAASs7B,GAC3Bl7B,EAAQguC,MACN,WACEpuC,EAAQ0hvB,OAEV,SAACppnB,GAKkB,oBAAbA,EAAIl7H,KACN4C,EAuyBd,SAAwCqjvB,GACtC,IAAIxxhB,EAA+B,GACnC,GAAIwxhB,EAASxxnB,MAAO,CAClB,GAA8B,IAA1BwxnB,EAASxxnB,MAAM3hI,OACjB,OAAO4wvB,GAAMjvhB,EAAQwxhB,EAASnmvB,KAAMmmvB,EAAShotB,SAE/C,MAAgBgotB,EAASxxnB,MAAzB,wDAAgC,kCAAA22K,EAAAA,EAAAA,SAAA,KAAAjpL,EAAAA,EAAAA,QAAA,WAAAipL,EAAAA,EAAAA,MAAA,IAAvBlwK,EAAuB,EACzBsonB,GAAM/uhB,EAAQv5F,EAAIp7H,QACrB20N,EAASivhB,GAAMjvhB,EAAQv5F,EAAIp7H,KAAMo7H,EAAIj9F,WAI3C,OAAOw2L,EAnzBayxhB,CAAgBhrnB,IAUxBh9F,EAAOg9F,WAMjB,CAAClpB,EAAM2zoB,mBAGHQ,GAAgChxJ,EAAAA,GAAAA,cACpC,SAACp+jB,EAAe3iC,GACd,OAAO,IAAIu8C,SAAQ,SAAA/tC,GAAO,OACxBA,EAAQ0ivB,EAAcx0gB,QAAQ/5M,GAAOovC,SAAS/xE,SAGlD,IAGIgyvB,GAA2BjxJ,EAAAA,GAAAA,cAC/B,SAAC/olB,GACC,IAAMi6uB,EAAoC/svB,OAAOC,KAC/C+rvB,EAAcx0gB,SACd14O,QAAO,SAAA2mH,GAAC,OAAIrxC,GAAW43qB,EAAcx0gB,QAAQ/xH,GAAG54C,aAG5CmgrB,EACJD,EAAwBvzvB,OAAS,EAC7BuzvB,EAAwB3tvB,KAAI,SAAAqmH,GAAC,OAC3BonoB,EAA8BpnoB,EAAGykoB,GAAMp3uB,EAAQ2yG,OAEjD,CAACpuE,QAAQ/tC,QAAQ,oCAEvB,OAAO+tC,QAAQpI,IAAI+9sB,GAAkBt1sB,MAAK,SAACu1sB,GAAD,OACxCA,EAAgBrqvB,QAAO,SAAC+8B,EAAMk9J,EAAM9iM,GAClC,MAAa,oCAAT8iM,GAGAA,IACFl9J,EAAOyqtB,GAAMzqtB,EAAMottB,EAAwBhzvB,GAAQ8iM,IAH5Cl9J,IAMR,SAGP,CAACkttB,IAIGK,GAAoBrxJ,EAAAA,GAAAA,cACxB,SAAC/olB,GACC,OAAOukC,QAAQpI,IAAI,CACjB69sB,EAAyBh6uB,GACzB4lG,EAAM2zoB,iBAAmBD,EAAoBt5uB,GAAU,GACvD4lG,EAAM7rC,SAAWo/qB,EAAmBn5uB,GAAU,KAC7C4kC,MAAK,gBAAEy1sB,EAAAA,EAAAA,GAAaC,EAAAA,EAAAA,GAAcC,EAAAA,EAAAA,GAKnC,OAJuBpG,GAAAA,IACrB,CAACkG,EAAaC,EAAcC,GAC5B,CAAElG,WAAAA,UAKR,CACEzuoB,EAAM7rC,SACN6rC,EAAM2zoB,iBACNS,EACAb,EACAG,IAKEkB,EAA+BC,IACnC,SAACz6uB,GAEC,YAFDA,IAAAA,IAAAA,EAAiBu9E,EAAMv9E,QACtB07hB,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,IACvCs5nB,EAAkBp6uB,GAAQ4kC,MAAK,SAAA81sB,GAKpC,OAJM/5K,EAAUj8V,UACdg3T,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,IAC9C46a,EAAS,CAAE3xhB,KAAM,aAAc+2G,QAAS45nB,KAEnCA,SAKb3xJ,EAAAA,GAAAA,YAAgB,WAEZ0vJ,IACsB,IAAtB93K,EAAUj8V,SACV50G,IAAAA,CAAQgpnB,EAAcp0gB,QAAS9+H,EAAMkzoB,gBAErC0B,EAA6B1B,EAAcp0gB,WAE5C,CAAC+zgB,EAAiB+B,IAErB,IAAMG,GAAY5xJ,EAAAA,GAAAA,cAChB,SAACpjf,GACC,IAAM3lG,EACJ2lG,GAAaA,EAAU3lG,OACnB2lG,EAAU3lG,OACV84uB,EAAcp0gB,QACdrc,EACJ1iH,GAAaA,EAAU0iH,OACnB1iH,EAAU0iH,OACV0whB,EAAcr0gB,QACdq0gB,EAAcr0gB,QACd9+H,EAAMmzoB,eAAiB,GACvBjB,EACJnyoB,GAAaA,EAAUmyoB,QACnBnyoB,EAAUmyoB,QACVkB,EAAet0gB,QACfs0gB,EAAet0gB,QACf9+H,EAAMozoB,gBAAkB,GACxBl7sB,EACJ6nE,GAAaA,EAAU7nE,OACnB6nE,EAAU7nE,OACVm7sB,EAAcv0gB,QACdu0gB,EAAcv0gB,QACd9+H,EAAMqzoB,cACZH,EAAcp0gB,QAAU1kO,EACxB+4uB,EAAcr0gB,QAAUrc,EACxB2whB,EAAet0gB,QAAUozgB,EACzBmB,EAAcv0gB,QAAU5mM,EAExB,IAAM88sB,EAAa,WACjBl/M,EAAS,CACP3xhB,KAAM,aACN+2G,QAAS,CACPi3nB,eAAgBpyoB,KAAeA,EAAUoyoB,aACzC1vhB,OAAAA,EACAyvhB,QAAAA,EACAh6sB,OAAAA,EACA99B,OAAAA,EACAg4uB,eAAgBryoB,KAAeA,EAAUqyoB,aACzCC,YACItyoB,GACAA,EAAUsyoB,aACqB,kBAA1BtyoB,EAAUsyoB,YACbtyoB,EAAUsyoB,YACV,MAKZ,GAAIryoB,EAAMi1oB,QAAS,CACjB,IAAMC,EAAwBl1oB,EAAMi1oB,QAClCt9pB,EAAMv9E,OACN+6uB,GAGElmf,GAAUimf,GACXA,EAAsCl2sB,KAAKg2sB,GAE5CA,SAGFA,MAGJ,CAACh1oB,EAAMmzoB,cAAenzoB,EAAMqzoB,cAAerzoB,EAAMozoB,kBAGnDjwJ,EAAAA,GAAAA,YAAgB,YAEU,IAAtBpoB,EAAUj8V,SACT50G,IAAAA,CAAQgpnB,EAAcp0gB,QAAS9+H,EAAMkzoB,iBAElCF,IACFE,EAAcp0gB,QAAU9+H,EAAMkzoB,cAC9B6B,KAGElC,GACF+B,EAA6B1B,EAAcp0gB,YAG9C,CACDk0gB,EACAhzoB,EAAMkzoB,cACN6B,EACAlC,EACA+B,KAGFzxJ,EAAAA,GAAAA,YAAgB,WAEZ6vJ,IACsB,IAAtBj4K,EAAUj8V,UACT50G,IAAAA,CAAQipnB,EAAcr0gB,QAAS9+H,EAAMmzoB,iBAEtCA,EAAcr0gB,QAAU9+H,EAAMmzoB,eAAiBb,GAC/Cx8M,EAAS,CACP3xhB,KAAM,aACN+2G,QAASlb,EAAMmzoB,eAAiBb,QAGnC,CAACU,EAAoBhzoB,EAAMmzoB,iBAE9BhwJ,EAAAA,GAAAA,YAAgB,WAEZ6vJ,IACsB,IAAtBj4K,EAAUj8V,UACT50G,IAAAA,CAAQkpnB,EAAet0gB,QAAS9+H,EAAMozoB,kBAEvCA,EAAet0gB,QAAU9+H,EAAMozoB,gBAAkBb,GACjDz8M,EAAS,CACP3xhB,KAAM,cACN+2G,QAASlb,EAAMozoB,gBAAkBb,QAGpC,CAACS,EAAoBhzoB,EAAMozoB,kBAE9BjwJ,EAAAA,GAAAA,YAAgB,WAEZ6vJ,IACsB,IAAtBj4K,EAAUj8V,UACT50G,IAAAA,CAAQmpnB,EAAcv0gB,QAAS9+H,EAAMqzoB,iBAEtCA,EAAcv0gB,QAAU9+H,EAAMqzoB,cAC9Bv9M,EAAS,CACP3xhB,KAAM,aACN+2G,QAASlb,EAAMqzoB,mBAGlB,CAACL,EAAoBhzoB,EAAMqzoB,cAAerzoB,EAAMozoB,iBAEnD,IAAMgC,EAAgBP,IAAiB,SAAC7mvB,GAKtC,GACEslvB,EAAcx0gB,QAAQ9wO,IACtB0tE,GAAW43qB,EAAcx0gB,QAAQ9wO,GAAMmmE,UACvC,CACA,IAAM/xE,EAAQovvB,GAAM75pB,EAAMv9E,OAAQpM,GAC5BqnvB,EAAe/B,EAAcx0gB,QAAQ9wO,GAAMmmE,SAAS/xE,GAC1D,OAAI6sQ,GAAUomf,IAEZv/M,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,IACvCm6nB,EACJr2sB,MAAK,SAACxtC,GAAD,OAAYA,KACjBwtC,MAAK,SAACkB,GACL41f,EAAS,CACP3xhB,KAAM,kBACN+2G,QAAS,CAAEn2F,MAAO/2B,EAAM5L,MAAO89C,KAEjC41f,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,SAGlD46a,EAAS,CACP3xhB,KAAM,kBACN+2G,QAAS,CACPn2F,MAAO/2B,EACP5L,MAAOizvB,KAGJ12sB,QAAQ/tC,QAAQykvB,IAEpB,OAAIr1oB,EAAM2zoB,kBACf79M,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,IACvCw4nB,EAAoB/7pB,EAAMv9E,OAAQpM,GACtCgxC,MAAK,SAACxtC,GAAD,OAAYA,KACjBwtC,MAAK,SAACkB,GACL41f,EAAS,CACP3xhB,KAAM,kBACN+2G,QAAS,CAAEn2F,MAAO/2B,EAAM5L,MAAO89C,EAAMlyC,MAEvC8niB,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,SAAS,QAI7Cv8E,QAAQ/tC,aAGX0kvB,GAAgBnyJ,EAAAA,GAAAA,cAAkB,SAACn1lB,EAAD,OAAiBmmE,EAAAA,EAAAA,SACvDm/qB,EAAcx0gB,QAAQ9wO,GAAQ,CAC5BmmE,SAAAA,KAED,IAEGohrB,GAAkBpyJ,EAAAA,GAAAA,cAAkB,SAACn1lB,UAClCslvB,EAAcx0gB,QAAQ9wO,KAC5B,IAEGwnvB,EAAaX,IACjB,SAAC3C,EAAgCuD,GAI/B,OAHA3/M,EAAS,CAAE3xhB,KAAM,cAAe+2G,QAASg3nB,UAEpBt5uB,IAAnB68uB,EAA+B9C,EAAiB8C,GAE9Cb,EAA6Bj9pB,EAAMv9E,QACnCukC,QAAQ/tC,aAIV8kvB,GAAYvyJ,EAAAA,GAAAA,cAAkB,SAAC1gY,GACnCqzU,EAAS,CAAE3xhB,KAAM,aAAc+2G,QAASunG,MACvC,IAEGkzhB,EAAYd,IAChB,SAACz6uB,EAAsCq7uB,GACrC,IAAMG,EAAiBl6qB,GAAWthE,GAAUA,EAAOu9E,EAAMv9E,QAAUA,EAKnE,OAHA07hB,EAAS,CAAE3xhB,KAAM,aAAc+2G,QAAS06nB,UAEnBh9uB,IAAnB68uB,EAA+BhD,EAAmBgD,GAEhDb,EAA6BgB,GAC7Bj3sB,QAAQ/tC,aAIVilvB,GAAgB1yJ,EAAAA,GAAAA,cACpB,SAACp+jB,EAAe3iC,GACd0ziB,EAAS,CACP3xhB,KAAM,kBACN+2G,QAAS,CAAEn2F,MAAAA,EAAO3iC,MAAAA,OAGtB,IAGI0zvB,EAAgBjB,IACpB,SAAC9vtB,EAAe3iC,EAAYqzvB,GAU1B,OATA3/M,EAAS,CACP3xhB,KAAM,kBACN+2G,QAAS,CACPn2F,MAAAA,EACA3iC,MAAAA,WAIiBwW,IAAnB68uB,EAA+BhD,EAAmBgD,GAEhDb,EAA6BlD,GAAM/5pB,EAAMv9E,OAAQ2qB,EAAO3iC,IACxDu8C,QAAQ/tC,aAIVmlvB,GAAgB5yJ,EAAAA,GAAAA,cACpB,SAAC6yJ,EAAmDC,GAIlD,IAEIxpiB,EAFA1nL,EAAQkxtB,EACR1xuB,EAAMyxuB,EAIV,IAAKlriB,GAASkriB,GAAmB,CAG1BA,EAAyBxlL,SAC3BwlL,EAA4CxlL,UAE/C,IAAMppkB,EAAS4uvB,EAAiB5uvB,OAC3B4uvB,EAA4C5uvB,OAC5C4uvB,EAA4C9mvB,cAG/CiV,EAQE/c,EARF+c,KACAnW,EAOE5G,EAPF4G,KACAvD,EAMErD,EANFqD,GACArI,EAKEgF,EALFhF,MACAklS,EAIElgS,EAJFkgS,QAEA1sR,GAEExT,EAHFsb,UAGEtb,EAFFwT,SACAirc,EACEz+c,EADFy+c,SAGF9gb,EAAQkxtB,IAAwBjovB,GAAcvD,GAQ9C8Z,EAAM,eAAemf,KAAKvf,IACpBsoM,EAASt2K,WAAW/zC,GAAS4nC,MAAMyiL,GAAU,GAAKA,GACpD,WAAW/oL,KAAKvf,GA0f5B,SACE+2D,EACAosN,EACA4ud,GAGA,GAA4B,mBAAjBh7qB,EACT,OAAOknC,QAAQklL,GAIjB,IAAI6ud,EAAuB,GACvBC,GAAiB,EACjB/0vB,GAAS,EAEb,GAAK0E,MAAMi2E,QAAQd,GAOjBi7qB,EAAuBj7qB,EAEvBk7qB,GADA/0vB,EAAQ65E,EAAav0E,QAAQuvvB,KACH,OAP1B,IAAKA,GAA0B,QAAbA,GAAoC,SAAbA,EACvC,OAAO9zoB,QAAQklL,GAUnB,GAAIA,GAAW4ud,IAAcE,EAC3B,OAAOD,EAAqB/5tB,OAAO85tB,GAIrC,IAAKE,EACH,OAAOD,EAIT,OAAOA,EACJlwvB,MAAM,EAAG5E,GACT+6B,OAAO+5tB,EAAqBlwvB,MAAM5E,EAAQ,IAjiBnCg1vB,CAAoB7E,GAAM75pB,EAAMv9E,OAAQ2qB,GAASuiQ,EAASllS,GAC1DwY,GAAWirc,EAifvB,SAA2Bjrc,GACzB,OAAO7U,MAAM4D,KAAKiR,GACfxU,QAAO,SAAA4C,GAAE,OAAIA,EAAGykB,YAChB/mB,KAAI,SAAAsC,GAAE,OAAIA,EAAG5G,SAnfNk0vB,CAAkB17uB,GAClBxY,EAGF2iC,GAEF+wtB,EAAc/wtB,EAAOxgB,KAGzB,CAACuxuB,EAAen+pB,EAAMv9E,SAGlBm8uB,EAAe1B,IACnB,SACE2B,GAEA,GAAI1riB,GAAS0riB,GACX,OAAO,SAAAx7uB,GAAK,OAAI+6uB,EAAc/6uB,EAAOw7uB,IAErCT,EAAcS,MAKdC,EAAkB5B,IACtB,SAAC9vtB,EAAemttB,EAAyBuD,GAUvC,YAVcvD,IAAAA,IAAAA,GAAmB,GACjCp8M,EAAS,CACP3xhB,KAAM,oBACN+2G,QAAS,CACPn2F,MAAAA,EACA3iC,MAAO8vvB,WAIUt5uB,IAAnB68uB,EAA+B9C,EAAiB8C,GAE9Cb,EAA6Bj9pB,EAAMv9E,QACnCukC,QAAQ/tC,aAIV8lvB,GAAcvzJ,EAAAA,GAAAA,cAClB,SAACnimB,EAAQ8M,GACH9M,EAAEwvkB,SACJxvkB,EAAEwvkB,gBAE4BxvkB,EAAEoG,OAA1B4G,EAAAA,EAAAA,KAAMvD,EAAAA,EAAAA,GACRs6B,GADYriB,EAAAA,UACJ5U,IAAcE,GAAcvD,IAU1CgsvB,EAAgB1xtB,GAAO,KAEzB,CAAC0xtB,IAGGE,EAAa9B,IACjB,SAAC+B,GACC,GAAI9riB,GAAS8riB,GACX,OAAO,SAAA57uB,GAAK,OAAI07uB,EAAY17uB,EAAO47uB,IAEnCF,EAAYE,MAKZC,GAAiB1zJ,EAAAA,GAAAA,cACrB,SACE2zJ,GAIIp7qB,GAAWo7qB,GACbhhN,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,QAAS47nB,IAE9ChhN,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,QAAS,kBAAM47nB,OAGxD,IAGIntC,GAAYxmH,EAAAA,GAAAA,cAAkB,SAACjrjB,GACnC49f,EAAS,CAAE3xhB,KAAM,aAAc+2G,QAAShjF,MACvC,IAEG6+sB,GAAgB5zJ,EAAAA,GAAAA,cAAkB,SAACgvJ,GACvCr8M,EAAS,CAAE3xhB,KAAM,mBAAoB+2G,QAASi3nB,MAC7C,IAEG6E,EAAanC,IAAiB,WAElC,OADA/+M,EAAS,CAAE3xhB,KAAM,mBACVywuB,IAA+B51sB,MACpC,SAAC81sB,GAQC,IAAMmC,EAAoBnC,aAA0Bj/sB,MAGpD,IADGohtB,GAA4D,IAAvC3vvB,OAAOC,KAAKutvB,GAAgBh0vB,OAC/B,CAWnB,IAAIo2vB,EACJ,IAIE,QAA2Bt+uB,KAH3Bs+uB,EAAqBC,KAInB,OAEF,MAAOj3sB,GACP,MAAMA,EAGR,OAAOvB,QAAQ/tC,QAAQsmvB,GACpBl4sB,MAAK,SAAA3vC,GAIJ,OAHM0rkB,EAAUj8V,SACdg3T,EAAS,CAAE3xhB,KAAM,mBAEZ9U,KALJ,OAOE,SAAA+nvB,GACL,GAAMr8K,EAAUj8V,QAId,MAHAg3T,EAAS,CAAE3xhB,KAAM,mBAGXizuB,KAGP,GAAMr8K,EAAUj8V,UAErBg3T,EAAS,CAAE3xhB,KAAM,mBAEb8yuB,GACF,MAAMnC,QAQVuC,EAAexC,IACnB,SAAC7zvB,GACKA,GAAKA,EAAE6G,gBAAkB6zE,GAAW16E,EAAE6G,iBACxC7G,EAAE6G,iBAGA7G,GAAKA,EAAE4G,iBAAmB8zE,GAAW16E,EAAE4G,kBACzC5G,EAAE4G,kBAsBJovvB,IAAU,OAAS,SAAA/viB,GACjBr8K,QAAQC,KAARD,2DAEEq8K,SAMFkuiB,EAA2C,CAC/CJ,UAAAA,EACAuC,aAAc1C,EACdQ,cAAAA,EACAM,UAAAA,EACAG,cAAAA,EACAY,gBAAAA,EACAX,cAAAA,EACAnsC,UAAAA,EACAotC,cAAAA,EACAvB,WAAAA,EACAG,UAAAA,EACAkB,eAAAA,EACAG,WAAAA,GAGIG,EAAgBtC,IAAiB,WACrC,OAAO73a,EAASrlP,EAAMv9E,OAAQ+6uB,MAG1BoC,EAAc1C,IAAiB,SAAA7zvB,GAC/BA,GAAKA,EAAE6G,gBAAkB6zE,GAAW16E,EAAE6G,iBACxC7G,EAAE6G,iBAGA7G,GAAKA,EAAE4G,iBAAmB8zE,GAAW16E,EAAE4G,kBACzC5G,EAAE4G,kBAGJmtvB,OAGIyC,GAAer0J,EAAAA,GAAAA,cACnB,SAACn1lB,GACC,MAAO,CACL5L,MAAOovvB,GAAM75pB,EAAMv9E,OAAQpM,GAC3BkyC,MAAOsxsB,GAAM75pB,EAAM8qI,OAAQz0N,GAC3BkkvB,UAAWV,GAAM75pB,EAAMu6pB,QAASlkvB,GAChCy4H,aAAc+qnB,GAAM0B,EAAcp0gB,QAAS9wO,GAC3ColvB,iBAAkB5B,GAAM4B,EAAet0gB,QAAS9wO,GAChDypvB,aAAcjG,GAAM2B,EAAcr0gB,QAAS9wO,MAG/C,CAAC2pF,EAAM8qI,OAAQ9qI,EAAMu6pB,QAASv6pB,EAAMv9E,SAGhCs9uB,GAAkBv0J,EAAAA,GAAAA,cACtB,SAACn1lB,GACC,MAAO,CACL+Z,SAAU,SAAC3lB,EAAYqzvB,GAAb,OACRK,EAAc9nvB,EAAM5L,EAAOqzvB,IAC7BD,WAAY,SAACpzvB,EAAgBqzvB,GAAjB,OACVgB,EAAgBzovB,EAAM5L,EAAOqzvB,IAC/BkC,SAAU,SAACv1vB,GAAD,OAAgByzvB,EAAc7nvB,EAAM5L,OAGlD,CAAC0zvB,EAAeW,EAAiBZ,IAG7B+B,GAAgBz0J,EAAAA,GAAAA,cACpB,SAAC00J,GACC,IAAMC,EAAantiB,GAASktiB,GACtB7pvB,EAAO8pvB,EAAaD,EAAc7pvB,KAAO6pvB,EACzCE,EAAavG,GAAM75pB,EAAMv9E,OAAQpM,GAEjC+2B,EAA8B,CAClC/2B,KAAAA,EACA5L,MAAO21vB,EACP95tB,SAAUs4tB,EACVh4tB,OAAQo4tB,GAEV,GAAImB,EAAY,KAEZ3zuB,EAIE0zuB,EAJF1zuB,KACO+xuB,EAGL2B,EAHFz1vB,MACIk4B,EAEFu9tB,EAFFj5b,GACAinJ,EACEgyS,EADFhyS,SAGW,aAAT1hc,OACgBvL,IAAds9uB,EACFnxtB,EAAMuiQ,UAAYywd,GAElBhztB,EAAMuiQ,WACJvhS,MAAMi2E,QAAQ+7qB,MAAgBA,EAAWpxvB,QAAQuvvB,IAEnDnxtB,EAAM3iC,MAAQ8zvB,GAEE,UAAT/xuB,GACT4gB,EAAMuiQ,QAAUywd,IAAe7B,EAC/BnxtB,EAAM3iC,MAAQ8zvB,GACE,WAAP57tB,GAAmBurb,IAC5B9gb,EAAM3iC,MAAQ2iC,EAAM3iC,OAAS,GAC7B2iC,EAAM8gb,UAAW,GAGrB,OAAO9gb,IAET,CAAC4xtB,EAAYJ,EAAc5+pB,EAAMv9E,SAG7B49uB,GAAQ70J,EAAAA,GAAAA,UACZ,kBAAOj5d,IAAAA,CAAQgpnB,EAAcp0gB,QAASnnJ,EAAMv9E,UAC5C,CAAC84uB,EAAcp0gB,QAASnnJ,EAAMv9E,SAG1BsW,IAAUyykB,EAAAA,GAAAA,UACd,iBAC4B,qBAAnB4vJ,EACHiF,EACErgqB,EAAM8qI,QAA+C,IAArCn7N,OAAOC,KAAKowF,EAAM8qI,QAAQ3hO,QACvB,IAAnBiyvB,GAA4Br3qB,GAAWq3qB,GACtCA,EAA4D/yoB,GAC5D+yoB,EACHp7pB,EAAM8qI,QAA+C,IAArCn7N,OAAOC,KAAKowF,EAAM8qI,QAAQ3hO,SAChD,CAACiyvB,EAAgBiF,EAAOrgqB,EAAM8qI,OAAQziH,IAsCxC,OAnCY,MACProB,EADI,CAEPu7pB,cAAeA,EAAcp0gB,QAC7Bq0gB,cAAeA,EAAcr0gB,QAC7Bs0gB,eAAgBA,EAAet0gB,QAC/Bu0gB,cAAeA,EAAcv0gB,QAC7B63gB,WAAAA,EACAJ,aAAAA,EACAgB,YAAAA,EACAF,aAAAA,EACAtC,UAAAA,EACAW,UAAAA,EACAmB,eAAAA,EACAJ,gBAAAA,EACAX,cAAAA,EACAD,cAAAA,EACAlsC,UAAAA,EACAotC,cAAAA,EACAvB,WAAAA,EACAG,UAAAA,EACAqB,WAAAA,EACAM,aAAc1C,EACdQ,cAAAA,EACA1kuB,QAAAA,GACAsnuB,MAAAA,EACAzC,gBAAAA,EACAD,cAAAA,EACAsC,cAAAA,EACAJ,aAAAA,EACAE,gBAAAA,EACA/E,eAAAA,EACAF,iBAAAA,EACAI,gBAAAA,IAmGJ,SAAgBiB,GACd15uB,GAEA,IAAI/L,EAAqBtI,MAAMi2E,QAAQ5hE,GAAU,GAAK,GACtD,IAAK,IAAI+9C,KAAK/9C,EACZ,GAAI9S,OAAOtB,UAAUsxE,eAAer2E,KAAKmZ,EAAQ+9C,GAAI,CACnD,IAAM3wD,EAAM6+D,OAAOlO,IACgB,IAA/BpyD,MAAMi2E,QAAQ5hE,EAAO5S,IACvB6G,EAAK7G,GAAO4S,EAAO5S,GAAKd,KAAI,SAACtE,GAC3B,OAA6B,IAAzB2D,MAAMi2E,QAAQ55E,IAAmBm5E,GAAcn5E,GAC1C0xvB,GAAyB1xvB,GAEf,KAAVA,EAAeA,OAAQwW,KAGzB2iE,GAAcnhE,EAAO5S,IAC9B6G,EAAK7G,GAAOssvB,GAAyB15uB,EAAO5S,IAE5C6G,EAAK7G,GAAuB,KAAhB4S,EAAO5S,GAAc4S,EAAO5S,QAAOoR,EAIrD,OAAOvK,EAOT,SAASogvB,GAAWrnvB,EAAe+mH,EAAevzG,GAChD,IAAMi/N,EAAczyO,EAAOnB,QAe3B,OAbAkoH,EAAO1tH,SAAQ,SAAeO,EAAQuL,GACpC,GAA8B,qBAAnBstO,EAAYttO,GAAoB,CACzC,IACM0rvB,GADmC,IAAlBr9uB,EAAQkhE,OACOlhE,EAAQqzuB,kBAAkBjtvB,GAChE64O,EAAYttO,GAAK0rvB,EACb1J,GAAUxovB,MAAMi2E,QAAQh7E,GAAK,GAAK,GAAIA,EAAG4Z,GACzC5Z,OACK4Z,EAAQqzuB,kBAAkBjtvB,GACnC64O,EAAYttO,GAAKgivB,GAAUnnvB,EAAOmF,GAAIvL,EAAG4Z,IACT,IAAvBxT,EAAOT,QAAQ3F,IACxB64O,EAAYz4O,KAAKJ,MAGd64O,EA0DT,IAAMiue,GACc,qBAAX7hsB,QACoB,qBAApBA,OAAOjjB,UAC2B,qBAAlCijB,OAAOjjB,SAAS4gC,cACnBu/jB,GAAAA,gBACAA,GAAAA,UAEN,SAAS0xJ,GAAoDz6tB,GAC3D,IAAMqkC,GAAW0kiB,EAAAA,GAAAA,QAAa/okB,GAO9B,OAJA0trB,IAA0B,WACxBrppB,EAAIqgL,QAAU1kN,MAGT+okB,EAAAA,GAAAA,cACL,sCAAIn8kB,EAAJ,yBAAIA,EAAJ,GAAAze,UAAAA,GAAA,OAAoBk2D,EAAIqgL,QAAQt4N,WAAM,EAAQQ,KAC9C,KClqCgBm8kB,EAAAA,GAAAA,aAClB,SAACnjf,EAAwBvhD,OAGfx9C,EAAoB++F,EAApB/+F,OAAWq2c,EAAAA,GAASt3W,EAAAA,CAAAA,WACtB3U,EAAO,MAAGpqF,EAAAA,EAAU,MACY8wuB,KAA9BwF,EAAAA,EAAAA,YAAaF,EAAAA,EAAAA,aACrB,OACEl0J,EAAAA,GAAAA,eAAAA,OAAAA,OAAAA,OAAAA,CACEnmR,SAAUq6a,EACV54rB,IAAKA,EACLw2rB,QAASsC,EACTt2uB,OAAQoqF,GACJisX,OAMP5nd,YAAc,OCkCnB,IAoBaw3E,GAAS,SACpBgxqB,EACA72vB,EACAe,GAEA,IAAMyvD,EAAOsmsB,GAAcD,GAE3B,OADArmsB,EAAK9hD,OAAO1O,EAAO,EAAGe,GACfyvD,GAaHsmsB,GAAgB,SAACD,GACrB,GAAKA,EAEE,IAAInyvB,MAAMi2E,QAAQk8qB,GACvB,gBAAWA,GAEX,IAAMzrG,EAAWnlpB,OAAOC,KAAK2wvB,GAC1BxxvB,KAAI,SAAAc,GAAG,OAAIivC,SAASjvC,MACpB0C,QAAO,SAACkc,EAAKpd,GAAN,OAAcA,EAAKod,EAAMpd,EAAKod,IAAM,GAC9C,OAAOrgB,MAAM4D,KAAN5D,GAAAA,GAAgBmyvB,EAAhB,CAA2Bp3vB,OAAQ2rpB,EAAW,KAPrD,MAAO,IAWL2rG,GAAAA,SAAAA,GAQJ,WAAYp4oB,gBACV/qC,EAAAA,EAAAA,KAAAA,KAAM+qC,IAAN,MAsBF/qC,iBAAmB,SACjB76C,EACAi+tB,EACAC,SAMIrjrB,EAAK+qC,MAHPhyG,EAAAA,EAAAA,MAIF6ovB,EAFYA,EAAV7E,OAAU6E,iBAEG,SAACjmmB,GACd,IAAI2nmB,EAAsC,oBAAhBD,EAA6BA,EAAcl+tB,EACjEo+tB,EACsB,oBAAjBH,EAA8BA,EAAej+tB,EAIlDhgB,EAASs3uB,GACX9gmB,EAAUx2I,OACVpM,EACAosB,EAAGo3tB,GAAM5gmB,EAAUx2I,OAAQpM,KAGzByqvB,EAAaH,EACbC,EAAa/G,GAAM5gmB,EAAU6xE,OAAQz0N,SACrC4K,EACA8/uB,EAAeL,EACfG,EAAchH,GAAM5gmB,EAAUshmB,QAASlkvB,SACvC4K,EASJ,OAPI46Q,GAAaile,KACfA,OAAa7/uB,GAEX46Q,GAAakle,KACfA,OAAe9/uB,GAGjB,MACKg4I,EADL,CAEEx2I,OAAAA,EACAqoN,OAAQ61hB,EACJ5G,GAAM9gmB,EAAU6xE,OAAQz0N,EAAMyqvB,GAC9B7nmB,EAAU6xE,OACdyvhB,QAASmG,EACL3G,GAAM9gmB,EAAUshmB,QAASlkvB,EAAM0qvB,GAC/B9nmB,EAAUshmB,cAKpBj9qB,EAAAA,KAAO,SAAC7yE,GAAD,OACL6yE,EAAK0jrB,kBACH,SAACT,GAAD,gBACKC,GAAcD,GADnB,CAEEU,GAAUx2vB,QAEZ,GACA,IAGJ6yE,EAAAA,WAAa,SAAC7yE,GAAD,OAAgB,kBAAM6yE,EAAK7zE,KAAKgB,KAE7C6yE,EAAAA,KAAO,SAAC4jrB,EAAgBC,GAAjB,OACL7jrB,EAAK0jrB,kBACH,SAAC9/sB,GAAD,OA5Ic,SAClBq/sB,EACAW,EACAC,GAEA,IAAMjnsB,EAAOsmsB,GAAcD,GACrBjysB,EAAI4L,EAAKgnsB,GAGf,OAFAhnsB,EAAKgnsB,GAAUhnsB,EAAKinsB,GACpBjnsB,EAAKinsB,GAAU7ysB,EACR4L,EAmIesjI,CAAKt8I,EAAOggtB,EAAQC,MACtC,GACA,IAGJ7jrB,EAAAA,WAAa,SAAC4jrB,EAAgBC,GAAjB,OAAoC,kBAC/C7jrB,EAAKkgH,KAAK0jkB,EAAQC,KAEpB7jrB,EAAAA,KAAO,SAACtrE,EAAc63D,GAAf,OACLyT,EAAK0jrB,kBAAiB,SAAC9/sB,GAAD,OA7JN,SAACA,EAAclvC,EAAc63D,GAC/C,IAAM3P,EAAOsmsB,GAAct/sB,GACrBz2C,EAAQyvD,EAAKloD,GAGnB,OAFAkoD,EAAK9hD,OAAOpG,EAAM,GAClBkoD,EAAK9hD,OAAOyxD,EAAI,EAAGp/D,GACZyvD,EAwJmCpV,CAAK5D,EAAOlvC,EAAM63D,MAAK,GAAM,IAEvEyT,EAAAA,WAAa,SAACtrE,EAAc63D,GAAf,OAA8B,kBAAMyT,EAAKx4B,KAAK9yC,EAAM63D,KAEjEyT,EAAAA,OAAS,SAAC5zE,EAAee,GAAhB,OACP6yE,EAAK0jrB,kBACH,SAAC9/sB,GAAD,OAAkBquC,GAAOruC,EAAOx3C,EAAOe,MACvC,SAACy2C,GAAD,OAAkBquC,GAAOruC,EAAOx3C,EAAO,SACvC,SAACw3C,GAAD,OAAkBquC,GAAOruC,EAAOx3C,EAAO,UAG3C4zE,EAAAA,aAAe,SAAC5zE,EAAee,GAAhB,OAA+B,kBAAM6yE,EAAKiS,OAAO7lF,EAAOe,KAEvE6yE,EAAAA,QAAU,SAAC5zE,EAAee,GAAhB,OACR6yE,EAAK0jrB,kBACH,SAAC9/sB,GAAD,OA9IiB,SACrBq/sB,EACA72vB,EACAe,GAEA,IAAMyvD,EAAOsmsB,GAAcD,GAE3B,OADArmsB,EAAKxwD,GAASe,EACPyvD,EAuIe3I,CAAQrQ,EAAOx3C,EAAOe,MACxC,GACA,IAGJ6yE,EAAAA,cAAgB,SAAC5zE,EAAee,GAAhB,OAA+B,kBAC7C6yE,EAAK/rB,QAAQ7nD,EAAOe,KAEtB6yE,EAAAA,QAAU,SAAC7yE,GACT,IAAItB,GAAU,EAwBd,OAvBAm0E,EAAK0jrB,kBACH,SAAC9/sB,GACC,IAAMw8E,EAAMx8E,EAAQ,CAACz2C,GAAJ,OAAcy2C,GAAS,CAACz2C,GAIzC,OAHItB,EAAS,IACXA,EAASu0H,EAAIv0H,QAERu0H,KAET,SAACx8E,GACC,IAAMw8E,EAAMx8E,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHI/3C,EAAS,IACXA,EAASu0H,EAAIv0H,QAERu0H,KAET,SAACx8E,GACC,IAAMw8E,EAAMx8E,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHI/3C,EAAS,IACXA,EAASu0H,EAAIv0H,QAERu0H,KAGJv0H,GAGTm0E,EAAAA,cAAgB,SAAC7yE,GAAD,OAAgB,kBAAM6yE,EAAKyoF,QAAQt7J,KAwBnD6yE,EAAAA,aAAe,SAAC5zE,GAAD,OAAmB,kBAAM4zE,EAAKjzE,OAAYX,KAqBzD4zE,EAAAA,UAAY,kBAAM,kBAAMA,EAAKr8B,QA5L3Bq8B,EAAKjzE,OAASizE,EAAKjzE,OAAOiJ,KAAZ,OACdgqE,EAAKr8B,IAAMq8B,EAAKr8B,IAAI3tC,KAAT,4CAGbk4hB,mBAAAA,SACErzN,GAGEtvU,KAAKw/G,MAAMyyoB,kBACXjyvB,KAAKw/G,MAAMgyoB,OAAOS,mBACjBvonB,IAAAA,CACCsnnB,GAAM1hb,EAAUkib,OAAO53uB,OAAQ01T,EAAU9hU,MACzCwjvB,GAAMhxvB,KAAKw/G,MAAMgyoB,OAAO53uB,OAAQ5Z,KAAKw/G,MAAMhyG,QAG7CxN,KAAKw/G,MAAMgyoB,OAAOsF,aAAa92vB,KAAKw/G,MAAMgyoB,OAAO53uB,WAkIrDpY,OAAAA,SAAUX,GAER,IAAIgO,EAiBJ,OAhBA7O,KAAKm4vB,kBAEH,SAAC9/sB,GACC,IAAMgZ,EAAOhZ,EAAQs/sB,GAAct/sB,GAAS,GAO5C,OANKxpC,IACHA,EAASwiD,EAAKxwD,IAEZq6E,GAAW7pB,EAAK9hD,SAClB8hD,EAAK9hD,OAAO1O,EAAO,GAEdwwD,KAET,GACA,GAGKxiD,KAKTupC,IAAAA,WAEE,IAAIvpC,EAcJ,OAbA7O,KAAKm4vB,kBAEH,SAAC9/sB,GACC,IAAMq2G,EAAMr2G,EAIZ,OAHKxpC,IACHA,EAAS6/I,GAAOA,EAAIt2G,KAAOs2G,EAAIt2G,OAE1Bs2G,KAET,GACA,GAGK7/I,KAKT0Q,OAAAA,WACE,IAAMg5uB,EAA6B,CACjC33vB,KAAMZ,KAAKY,KACXw3C,IAAKp4C,KAAKo4C,IACVu8I,KAAM30L,KAAK20L,KACX14I,KAAMj8C,KAAKi8C,KACXyqC,OAAQ1mF,KAAK0mF,OACbh+B,QAAS1oD,KAAK0oD,QACdw0G,QAASl9J,KAAKk9J,QACd17J,OAAQxB,KAAKwB,OACbg3vB,WAAYx4vB,KAAKw4vB,WACjBC,UAAWz4vB,KAAKy4vB,UAChBC,WAAY14vB,KAAK04vB,WACjBhrY,WAAY1tX,KAAK0tX,WACjBirY,aAAc34vB,KAAK24vB,aACnBC,cAAe54vB,KAAK44vB,cACpBC,cAAe74vB,KAAK64vB,cACpBC,aAAc94vB,KAAK84vB,gBAajB94vB,KAAKw/G,MATPnxF,EAAAA,EAAAA,UACA9O,EAAAA,EAAAA,OACAxU,EAAAA,EAAAA,SACAyC,EAAAA,EAAAA,KAQIgyG,EAAK,MACN+4oB,EADM,CAETtgM,KANK8gM,KAHLvH,OAGKuH,CAAAA,WAAAA,qBAOLvrvB,KAAAA,IAGF,OAAO6gB,GACHs0kB,EAAAA,GAAAA,eAAoBt0kB,EAAkBmxF,GACtCjgG,EACCA,EAAeigG,GAChBz0G,EACoB,oBAAbA,EACJA,EAAiBy0G,GACjBuxoB,GAAgBhmvB,GAEjB,KADA43lB,GAAAA,SAAAA,KAAoB53lB,GAEtB,QA1PF6svB,CAAqCj1J,GAAAA,WAIlCi1J,GAAAA,aAAe,CACpB3F,kBAAkB,GAyPtB,ICrXI/rvB,GAIA8+D,GCQ2B29hB,GAAAA,UC6BuBA,GAAAA,UFxCtD,IACEz8lB,GAAMsxP,IACN,MAAO98O,KAIT,IACEsqD,GAAM2/C,IACN,MAAOjqG,KAET,SAASk1uB,GAAWhurB,EAAKo3rB,EAAWC,GAElC,IAAKr3rB,GAAsB,kBAARA,GAAmC,oBAARA,EAC5C,OAAOA,EAIT,GAAIA,EAAIoZ,UAAY,cAAepZ,EACjC,OAAOA,EAAI8kI,WAAU,GAIvB,GAAI9kI,aAAe0M,KACjB,OAAO,IAAIA,KAAK1M,EAAIqiM,WAItB,GAAIriM,aAAe5Y,OACjB,OAAO,IAAIA,OAAO4Y,GAIpB,GAAIr8D,MAAMi2E,QAAQ5Z,GAChB,OAAOA,EAAI17D,IAAIo1E,IAIjB,GAAIp1E,IAAO07D,aAAe17D,GACxB,OAAO,IAAIsxP,IAAIjyP,MAAM4D,KAAKy4D,EAAIkjD,YAIhC,GAAI9/C,IAAOpD,aAAeoD,GACxB,OAAO,IAAI2/C,IAAIp/G,MAAM4D,KAAKy4D,EAAIhoD,WAIhC,GAAIgoD,aAAe96D,OAAQ,CACzBkyvB,EAAUp4vB,KAAKghE,GACf,IAAI8L,EAAM5mE,OAAOw4B,OAAOsiC,GAExB,IAAK,IAAI56D,KADTiyvB,EAAOr4vB,KAAK8sE,GACI9L,EAAK,CACnB,IAAImrG,EAAMislB,EAAU/8nB,WAAU,SAAUlwH,GACtC,OAAOA,IAAM61D,EAAI56D,MAEnB0mE,EAAI1mE,GAAO+lK,GAAO,EAAIkslB,EAAOlslB,GAAO6ilB,GAAUhurB,EAAI56D,GAAMgyvB,EAAWC,GAErE,OAAOvrrB,EAIT,OAAO9L,EAGM,SAAS0Z,GAAO1Z,GAC7B,OAAOgurB,GAAUhurB,EAAK,GAAI,IGnE5B,IAAMnzD,GAAW3H,OAAOtB,UAAUiJ,SAC5ByqvB,GAAgB7jtB,MAAM7vC,UAAUiJ,SAChC0qvB,GAAiBnwsB,OAAOxjD,UAAUiJ,SAClCkujB,GAAmC,qBAAX5ic,OAAyBA,OAAOv0H,UAAUiJ,SAAW,iBAAM,IACnF2qvB,GAAgB,uBAEtB,SAASC,GAAYt1uB,GACnB,OAAIA,IAAQA,EAAY,MACO,IAARA,GAAa,EAAIA,EAAM,EACtB,KAAO,GAAKA,EAGtC,SAASu1uB,GAAiBv1uB,GAA2B,IAAtBw1uB,EAAsB,wDACnD,GAAW,MAAPx1uB,IAAuB,IAARA,IAAwB,IAARA,EAAe,MAAO,GAAKA,EAC9D,IAAM4tkB,SAAgB5tkB,EACtB,GAAe,WAAX4tkB,EAAqB,OAAO0nK,GAAYt1uB,GAC5C,GAAe,WAAX4tkB,EAAqB,OAAO4nK,EAAe,IAAH,OAAOx1uB,EAAP,KAAgBA,EAC5D,GAAe,aAAX4tkB,EAAuB,MAAO,cAAgB5tkB,EAAIvW,MAAQ,aAAe,IAC7E,GAAe,WAAXmklB,EAAqB,OAAOh1B,GAAel8jB,KAAKsjB,GAAK2kC,QAAQ0wsB,GAAe,cAChF,IAAM54nB,EAAM/xH,GAAShO,KAAKsjB,GAAKte,MAAM,GAAI,GACzC,MAAY,SAAR+6H,EAAuBh3F,MAAMzlB,EAAIkgP,WAAa,GAAKlgP,EAAMA,EAAI+mM,YAAY/mM,GACjE,UAARy8G,GAAmBz8G,aAAesxB,MAAc,IAAM6jtB,GAAcz4vB,KAAKsjB,GAAO,IACxE,WAARy8G,EAAyB24nB,GAAe14vB,KAAKsjB,GAC1C,KAGM,SAASy1uB,GAAW53vB,EAAO23vB,GACxC,IAAI1qvB,EAASyqvB,GAAiB13vB,EAAO23vB,GACrC,OAAe,OAAX1qvB,EAAwBA,EACrByM,KAAKC,UAAU3Z,GAAO,SAAUoF,EAAKpF,GAC1C,IAAIiN,EAASyqvB,GAAiBt5vB,KAAKgH,GAAMuyvB,GACzC,OAAe,OAAX1qvB,EAAwBA,EACrBjN,IACN,GChCE,IAAI63vB,GAAQ,CACjBlqpB,QAAS,qBACTsqY,SAAU,8BACV6/Q,MAAO,yDACPC,SAAU,6DACVC,QAAS,YAKH,IAJJtsvB,EAII,EAJJA,KACAqW,EAGI,EAHJA,KACA/hB,EAEI,EAFJA,MACA68X,EACI,EADJA,cAEIo7X,EAA0B,MAAjBp7X,GAAyBA,IAAkB78X,EACpDo9D,EAAM,UAAG1xD,EAAH,uBAAuBqW,EAAvB,gDAAuE61uB,GAAW53vB,GAAO,GAAzF,MAAsGi4vB,EAAS,0BAAH,OAA8BL,GAAW/6X,GAAe,GAAxD,OAAsE,KAM5L,OAJc,OAAV78X,IACFo9D,GAAO,0FAGFA,GAETi2iB,QAAS,2BAEA5mgB,GAAS,CAClB/tG,OAAQ,+CACRwlB,IAAK,6CACLF,IAAK,4CACLmzE,QAAS,+CACTqiZ,MAAO,gCACPx8b,IAAK,8BACLghpB,KAAM,+BACNh/pB,KAAM,mCACNk5tB,UAAW,qCACXC,UAAW,uCAEFtgrB,GAAS,CAClB3zD,IAAK,kDACLF,IAAK,+CACLo0uB,SAAU,oCACVC,SAAU,uCACV3iI,SAAU,oCACV3ghB,SAAU,oCACVrI,QAAS,8BAEApqE,GAAO,CAChBpe,IAAK,0CACLF,IAAK,gDAEIuhM,GAAU,CACnB+yiB,QAAS,kCAEA92uB,GAAS,CAClB+2uB,UAAW,kDAEF9htB,GAAQ,CACjBvyB,IAAK,gDACLF,IAAK,6DACLtlB,OAAQ,yCAEKwG,OAAOw4C,OAAOx4C,OAAOw4B,OAAO,MAAO,CAChDm6tB,MAAAA,GACAprpB,OAAAA,GACA50B,OAAAA,GACAv1C,KAAAA,GACA9gB,OAAAA,GACAi1B,MAAAA,GACA8uK,QAAAA,0BChEF,GAFiB,SAAAz5I,GAAG,OAAIA,GAAOA,EAAI0srB,iBCG7BC,GAAAA,WACJ,WAAYx9qB,EAAMziE,GAKhB,IALyB,eACzBpa,KAAK45B,QAAK,EACV55B,KAAK68E,KAAOA,EACZ78E,KAAK68E,KAAOA,EAEW,oBAAZziE,EAAX,CAKA,IAAKyf,IAAAA,CAAIzf,EAAS,MAAO,MAAM,IAAI2rG,UAAU,6CAC7C,IAAK3rG,EAAQokC,OAASpkC,EAAQkgvB,UAAW,MAAM,IAAIv0oB,UAAU,sEAC7D,IACEjsF,EAGE1f,EAHF0f,GACA0kB,EAEEpkC,EAFFokC,KACA87sB,EACElgvB,EADFkgvB,UAEE1pd,EAAsB,oBAAP92Q,EAAoBA,EAAK,sCAAIlgB,EAAJ,yBAAIA,EAAJ,uBAAeA,EAAOo8B,OAAM,SAAAp0C,GAAK,OAAIA,IAAUk4B,MAE3F95B,KAAK45B,GAAK,WAAmB,2BAANpT,EAAM,yBAANA,EAAM,gBAC3B,IAAIpM,EAAUoM,EAAK4xB,MACfo0K,EAAShmM,EAAK4xB,MACdw1rB,EAASh9b,EAAK,WAAL,EAASpqR,GAAQg4B,EAAO87sB,EACrC,GAAK1sB,EACL,MAAsB,oBAAXA,EAA8BA,EAAOphhB,GACzCA,EAAO5wL,OAAOgysB,EAAOx9tB,QAAQgK,UAnBpCpa,KAAK45B,GAAKxf,wCAuBd,SAAQstH,EAAMttH,GACZ,IAAIR,EAAS5Z,KAAK68E,KAAK32E,KAAI,SAAA+3D,GAAG,OAAIA,EAAIrgC,SAAoB,MAAXxjB,OAAkB,EAASA,EAAQxY,MAAkB,MAAXwY,OAAkB,EAASA,EAAQ3O,OAAmB,MAAX2O,OAAkB,EAASA,EAAQO,YACnK6xM,EAASxsN,KAAK45B,GAAG5T,MAAM0hH,EAAM9tH,EAAOgiB,OAAO8rG,EAAMttH,IACrD,QAAehC,IAAXo0M,GAAwBA,IAAW9kF,EAAM,OAAOA,EACpD,IAAK6ynB,GAAS/tiB,GAAS,MAAM,IAAIzmG,UAAU,0CAC3C,OAAOymG,EAAOp8M,QAAQgK,SAnCpBigvB,GAwCN,iCCvCe,SAASG,GAAiBn4gB,GACvC,IAAIsoH,EAAwB,oBAARnzG,IAAqB,IAAIA,SAAQp/O,EAuBrD,OAtBAoivB,GAAmB,SAA0Bn4gB,GAC3C,GAAc,OAAVA,ICPkCzoN,EDOEyoN,GCNsB,IAAzD2pU,SAASv9iB,SAAShO,KAAKm5B,GAAIzzB,QAAQ,kBDMQ,OAAOk8O,ECP5C,IAA2BzoN,EDQtC,GAAqB,oBAAVyoN,EACT,MAAM,IAAIt8H,UAAU,sDAEtB,GAAsB,qBAAX4kP,EAAwB,CACjC,GAAIA,EAAO9wU,IAAIwoN,GAAQ,OAAOsoH,EAAO9qV,IAAIwiO,GACzCsoH,EAAO3lS,IAAIq9K,EAAOo4gB,GAEpB,SAASA,IACP,OAAO,EAAA3uL,GAAA,GAAUzpV,EAAOt6O,WAAW,EAAA4zE,EAAA,GAAe37E,MAAMwO,aAU1D,OARAisvB,EAAQj1vB,UAAYsB,OAAOw4B,OAAO+iN,EAAM78O,UAAW,CACjDgJ,YAAa,CACX5M,MAAO64vB,EACPx1rB,YAAY,EACZowD,UAAU,EACVnwD,cAAc,MAGX,EAAA42E,GAAA,GAAe2+mB,EAASp4gB,IAE1Bm4gB,GAAiBn4gB,GE5BX,SAASvoB,GAAQl4N,GAC9B,OAAgB,MAATA,EAAgB,GAAK,GAAGg6B,OAAOh6B,GCDxC,SAASq2N,KAA2Q,OAA9PA,GAAWnxN,OAAOw4C,QAAU,SAAU14C,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,WAIhT,IAAI2yvB,GAAS,qBACQC,GAAAA,SAAAA,iCAenB,WAAYC,EAAeh5vB,EAAO2iC,EAAO5gB,GAAM,6BAC7C,gBACK/hB,WAAQ,EACb,EAAK0L,UAAO,EACZ,EAAKqW,UAAO,EACZ,EAAKs+M,YAAS,EACd,EAAKlgM,YAAS,EACd,EAAKkgG,WAAQ,EACb,EAAKz0H,KAAO,kBACZ,EAAK5L,MAAQA,EACb,EAAK0L,KAAOi3B,EACZ,EAAK5gB,KAAOA,EACZ,EAAKs+M,OAAS,GACd,EAAKhgG,MAAQ,GACb63F,GAAQ8giB,GAAe36vB,SAAQ,SAAAyoI,GACK,MAA9BiynB,EAAgBj4rB,QAAQgmE,KAC1B,IAAKu5F,QAAOrhO,KAAZ,gBAAoB8nI,EAAIu5F,SACxB,EAAKhgG,MAAQ,EAAKA,MAAMrmG,OAAO8sG,EAAIzG,MAAM3hI,OAASooI,EAAIzG,MAAQyG,IAE9D,EAAKu5F,OAAOrhO,KAAK8nI,MAGrB,EAAKj9F,QAAU,EAAKw2L,OAAO3hO,OAAS,EAArB,UAA4B,EAAK2hO,OAAO3hO,OAAxC,oBAAmE,EAAK2hO,OAAO,GAC1F5sL,MAAMwltB,mBAAmBxltB,MAAMwltB,mBAAN,UAA8BF,GAvBd,iDAd/C,SAAmBlvtB,EAAS1J,GAC1B,IAAMz0B,EAAOy0B,EAAOshH,OAASthH,EAAOz0B,MAAQ,OAI5C,OAHIA,IAASy0B,EAAOz0B,OAAMy0B,EAASk2L,GAAS,GAAIl2L,EAAQ,CACtDz0B,KAAAA,KAEqB,kBAAZm+B,EAA6BA,EAAQid,QAAQgysB,IAAQ,SAAChgvB,EAAG1T,GAAJ,OAAYwyvB,GAAWz3tB,EAAO/6B,OACvE,oBAAZykC,EAA+BA,EAAQ1J,GAC3C0J,yBAGT,SAAei9F,GACb,OAAOA,GAAoB,oBAAbA,EAAIl7H,WAZDmtvB,IAAwBtltB,QCM9B,SAASyltB,GAAS1gvB,EAAS4tH,GACxC,IACE+ynB,EAOE3gvB,EAPF2gvB,SACAC,EAME5gvB,EANF4gvB,MACAx0uB,EAKEpM,EALFoM,KACA5kB,EAIEwY,EAJFxY,MACAqgO,EAGE7nN,EAHF6nN,OACAz8K,EAEEprC,EAFForC,KACAl4C,EACE8M,EADF9M,KAEEkhD,EAnBO,SAAAw5E,GACX,IAAIs3H,GAAQ,EACZ,OAAO,WACDA,IACJA,GAAQ,EACRt3H,EAAE,WAAF,eAcarD,CAAKqD,GAChB9uD,EAAQ8hrB,EAAM16vB,OACZ26vB,EAAe,GAErB,GADAh5hB,EAASA,GAAkB,IACtB/oJ,EAAO,OAAO+oJ,EAAO3hO,OAASkuD,EAAS,IAAImssB,GAAgB14hB,EAAQrgO,EAAO0L,IAASkhD,EAAS,KAAM5sD,GAEvG,IAAK,IAAImK,EAAI,EAAGA,EAAIivvB,EAAM16vB,OAAQyL,IAAK,EAErCm3B,EADa83tB,EAAMjvvB,IACdya,GAAM,SAAuBkiH,GAChC,GAAIA,EAAK,CAEP,IAAKiynB,GAAgBj4rB,QAAQgmE,GAC3B,OAAOl6E,EAASk6E,EAAK9mI,GAGvB,GAAIm5vB,EAEF,OADArynB,EAAI9mI,MAAQA,EACL4sD,EAASk6E,EAAK9mI,GAGvBq5vB,EAAar6vB,KAAK8nI,GAGpB,KAAMxvD,GAAS,EAAG,CAQhB,GAPI+hrB,EAAa36vB,SACXklD,GAAMy1sB,EAAaz1sB,KAAKA,GAExBy8K,EAAO3hO,QAAQ26vB,EAAar6vB,KAAb,MAAAq6vB,GAAY,OAASh5hB,IACxCA,EAASg5hB,GAGPh5hB,EAAO3hO,OAET,YADAkuD,EAAS,IAAImssB,GAAgB14hB,EAAQrgO,EAAO0L,GAAO1L,GAIrD4sD,EAAS,KAAM5sD,+CCxDjBgpnB,GACK,IADLA,GAEG,QAKYswI,GAAAA,WACnB,WAAYl0vB,GAAmB,IAAdoT,EAAc,uDAAJ,GAQzB,IAR6B,eAC7Bpa,KAAKgH,SAAM,EACXhH,KAAKm7vB,eAAY,EACjBn7vB,KAAKk6vB,aAAU,EACfl6vB,KAAKo7vB,eAAY,EACjBp7vB,KAAKsN,UAAO,EACZtN,KAAKyjQ,YAAS,EACdzjQ,KAAKkG,SAAM,EACQ,kBAARc,EAAkB,MAAM,IAAI++G,UAAU,8BAAgC/+G,GAEjF,GADAhH,KAAKgH,IAAMA,EAAI45B,OACH,KAAR55B,EAAY,MAAM,IAAI++G,UAAU,kCACpC/lH,KAAKm7vB,UAAYn7vB,KAAKgH,IAAI,KAAO4jnB,GACjC5qnB,KAAKk6vB,QAAUl6vB,KAAKgH,IAAI,KAAO4jnB,GAC/B5qnB,KAAKo7vB,WAAap7vB,KAAKm7vB,YAAcn7vB,KAAKk6vB,QAC1C,IAAIrvtB,EAAS7qC,KAAKm7vB,UAAYvwI,GAAmB5qnB,KAAKk6vB,QAAUtvI,GAAiB,GACjF5qnB,KAAKsN,KAAOtN,KAAKgH,IAAIvB,MAAMolC,EAAOvqC,QAClCN,KAAKyjQ,OAASzjQ,KAAKsN,OAAQm2P,EAAAA,GAAAA,QAAOzjQ,KAAKsN,MAAM,GAC7CtN,KAAKkG,IAAMkU,EAAQlU,2CAGrB,SAAStE,EAAO6J,EAAQkP,GACtB,IAAI9L,EAAS7O,KAAKm7vB,UAAYxgvB,EAAU3a,KAAKk6vB,QAAUt4vB,EAAQ6J,EAG/D,OAFIzL,KAAKyjQ,SAAQ50P,EAAS7O,KAAKyjQ,OAAO50P,GAAU,KAC5C7O,KAAKkG,MAAK2I,EAAS7O,KAAKkG,IAAI2I,IACzBA,sBAWT,SAAKjN,EAAOwY,GACV,OAAOpa,KAAK49B,SAASh8B,EAAkB,MAAXwY,OAAkB,EAASA,EAAQ3O,OAAmB,MAAX2O,OAAkB,EAASA,EAAQO,gCAG5G,WACE,OAAO3a,6BAGT,WACE,MAAO,CACL2jB,KAAM,MACN3c,IAAKhH,KAAKgH,6BAId,WACE,oBAAchH,KAAKgH,IAAnB,4BAGF,SAAapF,GACX,OAAOA,GAASA,EAAMy5vB,iBAxDLH,GCRrB,SAASjjiB,KAA2Q,OAA9PA,GAAWnxN,OAAOw4C,QAAU,SAAU14C,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,WAOjS,SAASuzvB,GAAiBhsrB,GACvC,SAASqE,EAASqzK,EAAMh/G,GACtB,IACEpmI,EAMEolP,EANFplP,MADF,EAOIolP,EALF15O,KAAAA,OAFF,MAES,GAFT,EAGE+1I,EAIE2jG,EAJF3jG,MACAjpI,EAGE4sO,EAHF5sO,QACAqkX,EAEEz3I,EAFFy3I,cACAqsW,EACE9jf,EADF8jf,KAEEh0Q,EAfR,SAAuCnpW,EAAQuif,GAAY,GAAc,MAAVvif,EAAgB,MAAO,GAAI,IAA2D3mH,EAAK+E,EAA5DnF,EAAS,GAAQupmB,EAAarpmB,OAAOC,KAAK4mH,GAAqB,IAAK5hH,EAAI,EAAGA,EAAIokmB,EAAW7vmB,OAAQyL,IAAO/E,EAAMmpmB,EAAWpkmB,GAAQmkmB,EAAS/pmB,QAAQa,IAAQ,IAAaJ,EAAOI,GAAO2mH,EAAO3mH,IAAQ,OAAOJ,EAe3R8tR,CAA8B1tC,EAAM,CAAC,QAAS,OAAQ,QAAS,UAAW,gBAAiB,SAGpGx5O,EAIE8hE,EAJF9hE,KACA01B,EAGEosC,EAHFpsC,KACAnB,EAEEutC,EAFFvtC,OACA0J,EACE6jC,EADF7jC,QAGAhgC,EAEE2O,EAFF3O,OACAkP,EACEP,EADFO,QAGF,SAASvK,EAAQlQ,GACf,OAAOq7vB,GAAAA,MAAUr7vB,GAAQA,EAAK09B,SAASh8B,EAAO6J,EAAQkP,GAAWza,EAGnE,SAAS+iN,IAA4B,IAAhBmha,EAAgB,uDAAJ,GACzBo3I,EAAaC,IAAAA,CAAUxjiB,GAAS,CACpCr2N,MAAAA,EACA68X,cAAAA,EACAp7O,MAAAA,EACA/1I,KAAM82mB,EAAU92mB,MAAQA,GACvBy0B,EAAQqilB,EAAUrilB,QAAS3xB,GACxBsvC,EAAQ,IAAIi7sB,GAAgBA,GAAgBe,YAAYt3I,EAAU34kB,SAAWA,EAAS+vtB,GAAa55vB,EAAO45vB,EAAWluvB,KAAM82mB,EAAUzgmB,MAAQnW,GAEnJ,OADAkyC,EAAM3d,OAASy5tB,EACR97sB,EAGT,IAAI0vJ,EAAM6oB,GAAS,CACjB3qN,KAAAA,EACA7B,OAAAA,EACAkY,KAAMnW,EACNy1M,YAAAA,EACA7yM,QAAAA,EACAgK,QAAAA,EACAqkX,cAAAA,GACCq4F,GAEH,GAAKg0Q,EAAL,CAYA,IAAIj8tB,EAEJ,IACE,IAAIs5O,EAIJ,GAAgE,oBAAhC,OAAnBA,EAFbt5O,EAASq0B,EAAKziC,KAAK2uM,EAAKxtM,EAAOwtM,SAEQ,EAAS+4C,EAAM3pM,MACpD,MAAM,IAAInJ,MAAM,oCAA6B+5J,EAAIzrL,KAAjC,sHAElB,MAAO+kH,GAEP,YADAV,EAAGU,GAIDiynB,GAAgBj4rB,QAAQ7zD,GAASm5H,EAAGn5H,GAAkBA,EAA+Bm5H,EAAG,KAAMn5H,GAAhCm5H,EAAGi7E,UA1BnE,IACE9kK,QAAQ/tC,QAAQ8yB,EAAKziC,KAAK2uM,EAAKxtM,EAAOwtM,IAAM5wJ,MAAK,SAAAm9sB,GAC3ChB,GAAgBj4rB,QAAQi5rB,GAAe3znB,EAAG2znB,GAAwBA,EAAqC3znB,EAAG,KAAM2znB,GAAhC3znB,EAAGi7E,QACtFxjK,MAAMuoF,GACT,MAAOU,GACPV,EAAGU,IAyBT,OADA/0D,EAASiorB,QAAUtsrB,EACZqE,EDlBTunrB,GAAU11vB,UAAU61vB,YAAa,EEnEjC,IAAIz6tB,GAAO,SAAAivF,GAAI,OAAIA,EAAKl/G,OAAO,EAAGk/G,EAAKvvH,OAAS,GAAGqQ,OAAO,IAEnD,SAASqgvB,GAAMxkiB,EAAQl/M,EAAM1L,GAAwB,IACtD6J,EAAQowvB,EAAUC,EADmBnhvB,EAAiB,uDAAP/Y,EAGnD,OAAK0L,IAKLrN,EAAAA,GAAAA,SAAQqN,GAAM,SAACyuvB,EAAO5wL,EAAW3vf,GAC/B,IAAIq0C,EAAOs7c,EAAYvqiB,GAAKm7tB,GAASA,EAOrC,IANAvviB,EAASA,EAAOp8M,QAAQ,CACtBuK,QAAAA,EACAlP,OAAAA,EACA7J,MAAAA,KAGSo6vB,UAAW,CACpB,IAAIjvlB,EAAMvxF,EAAUvlC,SAAS45E,EAAM,IAAM,EAEzC,GAAIjuH,GAASmrK,GAAOnrK,EAAMtB,OACxB,MAAM,IAAI+0C,MAAM,2DAAoD0mtB,EAApD,0BAA2EzuvB,EAA3E,mDAGlB7B,EAAS7J,EACTA,EAAQA,GAASA,EAAMmrK,GACvBy/C,EAASA,EAAOwviB,UAOlB,IAAKxgrB,EAAS,CACZ,IAAKgxI,EAAO/6L,SAAW+6L,EAAO/6L,OAAOo+F,GAAO,MAAM,IAAIx6E,MAAM,gDAAyC/nC,EAAzC,4BAAmEwuvB,EAAnE,8BAAsGtviB,EAAOryH,MAA7G,OAC5D1uF,EAAS7J,EACTA,EAAQA,GAASA,EAAMiuH,GACvB28F,EAASA,EAAO/6L,OAAOo+F,GAGzBgsoB,EAAWhsoB,EACXisoB,EAAgB3wL,EAAY,IAAM4wL,EAAQ,IAAM,IAAMA,KAEjD,CACLvviB,OAAAA,EACA/gN,OAAAA,EACA4huB,WAAYwuB,IA1CI,CAChBpwvB,OAAAA,EACA4huB,WAAY//tB,EACZk/M,OAAAA,GA2CJ,ICpDqByviB,GAAAA,WACnB,cAAc,eACZj8vB,KAAKkhE,UAAO,EACZlhE,KAAK68E,UAAO,EACZ78E,KAAKkhE,KAAO,IAAIyjD,IAChB3kH,KAAK68E,KAAO,IAAI26K,qCAGlB,WACE,OAAOx3P,KAAKkhE,KAAK1oD,KAAOxY,KAAK68E,KAAKrkE,6BAGpC,WACE,IADS,EACHmzE,EAAc,GADX,UAGU3rF,KAAKkhE,MAHf,IAGT,gCAAWhhE,EAAX,QAA8ByrF,EAAY/qF,KAAKV,IAHtC,8CAKaF,KAAK68E,MALlB,IAKT,gCAAc5e,GAAd,qBAAiC0tB,EAAY/qF,KAAKq9D,EAAIunjB,aAL7C,8BAOT,OAAO75hB,yBAGT,WACE,OAAOpmF,MAAM4D,KAAKnJ,KAAKkhE,MAAMtlC,OAAOr2B,MAAM4D,KAAKnJ,KAAK68E,KAAKjjE,qCAG3D,SAAWxJ,GACT,OAAOpQ,KAAK85N,UAAUpwN,QAAO,SAACC,EAAKnJ,GAAN,OAAYmJ,EAAIiyB,OAAOs/tB,GAAUgB,MAAM17vB,GAAK4P,EAAQ5P,GAAKA,KAAI,uBAG5F,SAAIoB,GACFs5vB,GAAUgB,MAAMt6vB,GAAS5B,KAAK68E,KAAK7X,IAAIpjE,EAAMoF,IAAKpF,GAAS5B,KAAKkhE,KAAK5/D,IAAIM,yBAG3E,SAAOA,GACLs5vB,GAAUgB,MAAMt6vB,GAAS5B,KAAK68E,KAAK+wK,OAAOhsP,EAAMoF,KAAOhH,KAAKkhE,KAAK0sL,OAAOhsP,wBAG1E,WACE,IAAM08C,EAAO,IAAI29sB,EAGjB,OAFA39sB,EAAK4iB,KAAO,IAAIyjD,IAAI3kH,KAAKkhE,MACzB5iB,EAAKu+B,KAAO,IAAI26K,IAAIx3P,KAAK68E,MAClBv+B,uBAGT,SAAMg/M,EAAU6+f,GACd,IAAM79sB,EAAOt+C,KAAKs7E,QAKlB,OAJAgiL,EAASp8L,KAAKjhE,SAAQ,SAAA2B,GAAK,OAAI08C,EAAKh9C,IAAIM,MACxC07P,EAASzgL,KAAK58E,SAAQ,SAAA2B,GAAK,OAAI08C,EAAKh9C,IAAIM,MACxCu6vB,EAAYj7rB,KAAKjhE,SAAQ,SAAA2B,GAAK,OAAI08C,EAAKsvM,OAAOhsP,MAC9Cu6vB,EAAYt/qB,KAAK58E,SAAQ,SAAA2B,GAAK,OAAI08C,EAAKsvM,OAAOhsP,MACvC08C,QAnDU29sB,GCDrB,SAAShkiB,KAA2Q,OAA9PA,GAAWnxN,OAAOw4C,QAAU,SAAU14C,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,eAe3Rq0vB,GAAAA,WACnB,WAAYhivB,GAAS,2BACnBpa,KAAKy6H,KAAO,GACZz6H,KAAKg7vB,WAAQ,EACbh7vB,KAAKq8vB,gBAAa,EAClBr8vB,KAAKq5F,WAAa,GAClBr5F,KAAKs8vB,aAAU,EACft8vB,KAAKu8vB,gBAAa,EAClBv8vB,KAAKw8vB,WAAa,IAAIP,GACtBj8vB,KAAKy8vB,WAAa,IAAIR,GACtBj8vB,KAAK08vB,eAAiB51vB,OAAOw4B,OAAO,MACpCt/B,KAAK28vB,UAAO,EACZ38vB,KAAKg7vB,MAAQ,GACbh7vB,KAAKq8vB,WAAa,GAClBr8vB,KAAK48vB,cAAa,WAChB,EAAKC,UAAU9vvB,GAAAA,YAEjB/M,KAAK2jB,MAAmB,MAAXvJ,OAAkB,EAASA,EAAQuJ,OAAS,QACzD3jB,KAAK28vB,KAAO1kiB,GAAS,CACnB6kiB,OAAO,EACP5/qB,QAAQ,EACRq2qB,YAAY,EACZl/W,WAAW,EACX0oX,UAAU,EACVC,SAAU,YACE,MAAX5ivB,OAAkB,EAASA,EAAQuivB,wCAIxC,WACE,OAAO38vB,KAAK2jB,+BAGd,SAAWY,GACT,OAAO,uBAGT,SAAMo4uB,GACJ,GAAI38vB,KAAKs8vB,QAEP,OADIK,GAAM71vB,OAAOw4C,OAAOt/C,KAAK28vB,KAAMA,GAC5B38vB,KAKT,IAAMs+C,EAAOx3C,OAAOw4B,OAAOx4B,OAAO60E,eAAe37E,OAejD,OAbAs+C,EAAK36B,KAAO3jB,KAAK2jB,KACjB26B,EAAKi+sB,WAAav8vB,KAAKu8vB,WACvBj+sB,EAAK2+sB,gBAAkBj9vB,KAAKi9vB,gBAC5B3+sB,EAAK4+sB,gBAAkBl9vB,KAAKk9vB,gBAC5B5+sB,EAAKk+sB,WAAax8vB,KAAKw8vB,WAAWlhrB,QAClCh9B,EAAKm+sB,WAAaz8vB,KAAKy8vB,WAAWnhrB,QAClCh9B,EAAKo+sB,eAAiBzkiB,GAAS,GAAIj4N,KAAK08vB,gBAExCp+sB,EAAKm8E,MAAL,OAAgBz6H,KAAKy6H,MACrBn8E,EAAK+6C,YAAL,OAAsBr5F,KAAKq5F,YAC3B/6C,EAAK08sB,OAAL,OAAiBh7vB,KAAKg7vB,OACtB18sB,EAAK+9sB,YAAL,OAAsBr8vB,KAAKq8vB,YAC3B/9sB,EAAKq+sB,KAAOvE,GAAUngiB,GAAS,GAAIj4N,KAAK28vB,KAAMA,IACvCr+sB,uBAGT,SAAM+kG,GACJ,IAAI/kG,EAAOt+C,KAAKs7E,QAEhB,OADAh9B,EAAKq+sB,KAAKt5mB,MAAQA,EACX/kG,sBAGT,WACE,GAAoB,IAAhB,UAAKh+C,OAAc,OAAON,KAAK28vB,KAAK51qB,KACxC,IAAIzoC,EAAOt+C,KAAKs7E,QAEhB,OADAh9B,EAAKq+sB,KAAK51qB,KAAOjgF,OAAOw4C,OAAOhB,EAAKq+sB,KAAK51qB,MAAQ,GAAhC,yCACVzoC,8BAUT,SAAa1kB,GACX,IAAIgrI,EAAS5kK,KAAKs8vB,QAClBt8vB,KAAKs8vB,SAAU,EACf,IAAIztvB,EAAS+qB,EAAG55B,MAEhB,OADAA,KAAKs8vB,QAAU13lB,EACR/1J,wBAGT,SAAO29M,GACL,IAAKA,GAAUA,IAAWxsN,KAAM,OAAOA,KACvC,GAAIwsN,EAAO7oM,OAAS3jB,KAAK2jB,MAAsB,UAAd3jB,KAAK2jB,KAAkB,MAAM,IAAIoiG,UAAJ,6DAAsE/lH,KAAK2jB,KAA3E,gBAAuF6oM,EAAO7oM,OAC5J,IAAI+jH,EAAO1nI,KACPm9vB,EAAW3wiB,EAAOlxI,QAEhB8hrB,EAAanliB,GAAS,GAAIvwF,EAAKi1nB,KAAMQ,EAASR,MAyBpD,OAnBAQ,EAASR,KAAOS,EAChBD,EAASZ,aAAeY,EAASZ,WAAa70nB,EAAK60nB,YACnDY,EAASF,kBAAoBE,EAASF,gBAAkBv1nB,EAAKu1nB,iBAC7DE,EAASD,kBAAoBC,EAASD,gBAAkBx1nB,EAAKw1nB,iBAG7DC,EAASX,WAAa90nB,EAAK80nB,WAAWv/lB,MAAMuvD,EAAOgwiB,WAAYhwiB,EAAOiwiB,YACtEU,EAASV,WAAa/0nB,EAAK+0nB,WAAWx/lB,MAAMuvD,EAAOiwiB,WAAYjwiB,EAAOgwiB,YAEtEW,EAASnC,MAAQtznB,EAAKsznB,MACtBmC,EAAST,eAAiBh1nB,EAAKg1nB,eAG/BS,EAASP,cAAa,SAAAt+sB,GACpBkuK,EAAOwuiB,MAAM/6vB,SAAQ,SAAA25B,GACnB0kB,EAAKpb,KAAKtJ,EAAGgiuB,eAGjBuB,EAASd,WAAT,kBAA0B30nB,EAAK20nB,aAA/B,OAA8Cc,EAASd,aAChDc,wBAGT,SAAOt2sB,GACL,SAAI7mD,KAAK28vB,KAAKI,UAAkB,OAANl2sB,IACnB7mD,KAAKq9vB,WAAWx2sB,0BAGzB,SAAQzsC,GACN,IAAIoyM,EAASxsN,KAEb,GAAIwsN,EAAOnzH,WAAW/4F,OAAQ,CAC5B,IAAI+4F,EAAamzH,EAAOnzH,YACxBmzH,EAASA,EAAOlxI,SACT+d,WAAa,GAEpBmzH,GADAA,EAASnzH,EAAW3vF,QAAO,SAAC8iN,EAAQ9rM,GAAT,OAAuBA,EAAUtQ,QAAQo8M,EAAQpyM,KAAUoyM,IACtEp8M,QAAQgK,GAG1B,OAAOoyM,sBAWT,SAAK5qN,GAAqB,IAAdwY,EAAc,uDAAJ,GAChBkjvB,EAAiBt9vB,KAAKoQ,QAAQ6nN,GAAS,CACzCr2N,MAAAA,GACCwY,IAECvL,EAASyuvB,EAAeC,MAAM37vB,EAAOwY,GAEzC,QAAchC,IAAVxW,IAA0C,IAAnBwY,EAAQuoP,SAAsD,IAAlC26f,EAAen9L,OAAOtxjB,GAAkB,CAC7F,IAAI8xZ,EAAiB64V,GAAW53vB,GAC5B47vB,EAAkBhE,GAAW3qvB,GACjC,MAAM,IAAIk3G,UAAU,uBAAgB3rG,EAAQ9M,MAAQ,QAAhC,6EAA8GgwvB,EAAenjqB,MAA7H,sCAAkKwmU,EAAlK,QAAyL68V,IAAoB78V,EAApB,0BAAwD68V,GAAoB,KAG3R,OAAO3uvB,uBAGT,SAAMu7M,EAAUjpM,GAAU,WACpBvf,OAAqBwW,IAAbgyM,EAAyBA,EAAWpqN,KAAKq8vB,WAAW3yvB,QAAO,SAAC9H,EAAOg4B,GAAR,OAAeA,EAAGn5B,KAAK,EAAMmB,EAAOwoN,EAAU,KAAOA,GAM5H,YAJchyM,IAAVxW,IACFA,EAAQ5B,KAAKy9vB,cAGR77vB,2BAGT,SAAU2iB,GAA0B,WAAlBnK,EAAkB,uDAAR,GAAI4tH,EAAI,uCAEhC8imB,EAME1wtB,EANF0wtB,KACAx9tB,EAKE8M,EALF9M,KAFF,EAOI8M,EAJFjR,KAAAA,OAHF,MAGS,GAHT,IAOIiR,EAHFqkX,cAAAA,OAJF,MAIkBl6W,EAJlB,IAOInK,EAFF8iE,OAAAA,OALF,MAKWl9E,KAAK28vB,KAAKz/qB,OALrB,IAOI9iE,EADFm5uB,WAAAA,OANF,MAMevzvB,KAAK28vB,KAAKpJ,WANzB,EAQI3xvB,EAAQ2iB,EAEP24D,IAEHt7E,EAAQ5B,KAAKu9vB,MAAM37vB,EAAOq2N,GAAS,CACjC0qC,QAAQ,GACPvoP,KAIL,IAAIoM,EAAO,CACT5kB,MAAAA,EACA0L,KAAAA,EACA8M,QAAAA,EACAqkX,cAAAA,EACAjyK,OAAQxsN,KACRqjJ,MAAOrjJ,KAAK28vB,KAAKt5mB,MACjBynlB,KAAAA,EACA3huB,KAAAA,GAEEu0vB,EAAe,GACf19vB,KAAKu8vB,YAAYmB,EAAa98vB,KAAKZ,KAAKu8vB,YAC5C,IAAIoB,EAAa,GACb39vB,KAAKi9vB,iBAAiBU,EAAW/8vB,KAAKZ,KAAKi9vB,iBAC3Cj9vB,KAAKk9vB,iBAAiBS,EAAW/8vB,KAAKZ,KAAKk9vB,iBAC/CpC,GAAS,CACPt0uB,KAAAA,EACA5kB,MAAAA,EACA0L,KAAAA,EACAw9tB,KAAAA,EACAkwB,MAAO0C,EACP3C,SAAUxH,IACT,SAAA7qnB,GACGA,EAAiBV,EAAGU,EAAK9mI,GAC7Bk5vB,GAAS,CACPE,MAAO,EAAKA,MAAMp/tB,OAAO+huB,GACzBn3uB,KAAAA,EACAlZ,KAAAA,EACAw9tB,KAAAA,EACAlpuB,MAAAA,EACAm5vB,SAAUxH,GACTvrnB,8BAIP,SAASpmI,EAAOwY,EAASwjvB,GACvB,IAAIpxiB,EAASxsN,KAAKoQ,QAAQ6nN,GAAS,GAAI79M,EAAS,CAC9CxY,MAAAA,KAGF,MAA0B,oBAAZg8vB,EAAyBpxiB,EAAO90G,UAAU91G,EAAOwY,EAASwjvB,GAAW,IAAIz/sB,SAAQ,SAAC/tC,EAASs7B,GAAV,OAAqB8gL,EAAO90G,UAAU91G,EAAOwY,GAAS,SAACsuH,EAAK9mI,GACrJ8mI,EAAKh9F,EAAOg9F,GAAUt4H,EAAQxO,qCAItC,SAAaA,EAAOwY,GAClB,IAGIvL,EASJ,OAZa7O,KAAKoQ,QAAQ6nN,GAAS,GAAI79M,EAAS,CAC9CxY,MAAAA,KAIK81G,UAAU91G,EAAOq2N,GAAS,GAAI79M,EAAS,CAC5C0wtB,MAAM,KACJ,SAACpimB,EAAK9mI,GACR,GAAI8mI,EAAK,MAAMA,EACf75H,EAASjN,KAGJiN,yBAGT,SAAQjN,EAAOwY,GACb,OAAOpa,KAAK2zE,SAAS/xE,EAAOwY,GAASokC,MAAK,kBAAM,KAAM,SAAAkqF,GACpD,GAAIiynB,GAAgBj4rB,QAAQgmE,GAAM,OAAO,EACzC,MAAMA,gCAIV,SAAY9mI,EAAOwY,GACjB,IAEE,OADApa,KAAK69vB,aAAaj8vB,EAAOwY,IAClB,EACP,MAAOsuH,GACP,GAAIiynB,GAAgBj4rB,QAAQgmE,GAAM,OAAO,EACzC,MAAMA,8BAIV,WACE,IAAIn0F,EAAev0C,KAAK28vB,KAAKptpB,QAE7B,OAAoB,MAAhBh7D,EACKA,EAGsB,oBAAjBA,EAA8BA,EAAa9zC,KAAKT,MAAQo4vB,GAAU7jtB,6BAGlF,SAAWn6B,GAET,OADapa,KAAKoQ,QAAQgK,GAAW,IACvB0jvB,qCAGhB,SAAQ3xqB,GACN,GAAyB,IAArBpkF,UAAUzH,OACZ,OAAON,KAAK89vB,cAGd,IAAIx/sB,EAAOt+C,KAAKs7E,MAAM,CACpBi0B,QAASpjB,IAEX,OAAO7tC,wBAGT,WAAwB,IAAjBy/sB,IAAiB,yDAClBz/sB,EAAOt+C,KAAKs7E,QAEhB,OADAh9B,EAAKq+sB,KAAKz/qB,OAAS6grB,EACZz/sB,4BAGT,SAAW18C,GACT,OAAgB,MAATA,yBAGT,WAAkC,IAA1B6pC,EAA0B,uDAAhB1+B,GAAAA,QAChB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,UACNwwvB,WAAW,EAEX96tB,KALe,SAKVthC,GACH,YAAiBwW,IAAVxW,6BAMb,WAAoC,IAA3B6pC,EAA2B,uDAAjB1+B,GAAAA,SACjB,OAAO/M,KAAKs7E,MAAM,CAChB0hrB,SAAU,aACTJ,cAAa,SAAA/vuB,GAAC,OAAIA,EAAEqW,KAAK,CAC1BuI,QAAAA,EACAj+B,KAAM,WACNwwvB,WAAW,EAEX96tB,KAL0B,SAKrBthC,GACH,OAAO5B,KAAKwsN,OAAOyxiB,WAAWr8vB,oCAMpC,WACE,IAAI08C,EAAOt+C,KAAKs7E,MAAM,CACpB0hrB,SAAU,aAGZ,OADA1+sB,EAAK08sB,MAAQ18sB,EAAK08sB,MAAMp1vB,QAAO,SAAAs9B,GAAI,MAA0B,aAAtBA,EAAK04tB,QAAQpuvB,QAC7C8wC,0BAGT,WAA4B,IAAnBviB,IAAmB,yDACtBuiB,EAAOt+C,KAAKs7E,MAAM,CACpByhrB,UAAyB,IAAfhhuB,IAEZ,OAAOuiB,2BAGT,SAAU1kB,GACR,IAAI0kB,EAAOt+C,KAAKs7E,QAEhB,OADAh9B,EAAK+9sB,WAAWz7vB,KAAKg5B,GACd0kB,sBAiBT,WACE,IAAI0qE,EAwBJ,QADqB5wG,KAnBjB4wG,EAFgB,IAAhB,UAAK1oH,OACgB,oBAAnB,yCACK,CACL4iC,KAAM,UAAF,+BAGC,UAAH,8BAEmB,IAAhB,UAAK5iC,OACP,CACLkN,KAAM,UAAF,8BACJ01B,KAAM,UAAF,+BAGC,CACL11B,KAAM,UAAF,8BACJi+B,QAAS,UAAF,8BACPvI,KAAM,UAAF,gCAICuI,UAAuBu9E,EAAKv9E,QAAU1+B,GAAAA,SACtB,oBAAdi8G,EAAK9lF,KAAqB,MAAM,IAAI6iF,UAAU,mCACzD,IAAIznE,EAAOt+C,KAAKs7E,QACZ3H,EAAW2nrB,GAAiBtyoB,GAC5Bk1oB,EAAcl1oB,EAAKg1oB,WAAah1oB,EAAKx7G,OAA2C,IAAnC8wC,EAAKo+sB,eAAe1zoB,EAAKx7G,MAE1E,GAAIw7G,EAAKg1oB,YACFh1oB,EAAKx7G,KAAM,MAAM,IAAIu4G,UAAU,qEAatC,OAVIiD,EAAKx7G,OAAM8wC,EAAKo+sB,eAAe1zoB,EAAKx7G,QAAUw7G,EAAKg1oB,WACvD1/sB,EAAK08sB,MAAQ18sB,EAAK08sB,MAAMp1vB,QAAO,SAAAg0B,GAC7B,GAAIA,EAAGgiuB,QAAQpuvB,OAASw7G,EAAKx7G,KAAM,CACjC,GAAI0wvB,EAAa,OAAO,EACxB,GAAItkuB,EAAGgiuB,QAAQ14tB,OAASywC,EAASiorB,QAAQ14tB,KAAM,OAAO,EAGxD,OAAO,KAETob,EAAK08sB,MAAMp6vB,KAAK+yE,GACTr1B,sBAGT,SAAKv3C,EAAMqT,GACJ7U,MAAMi2E,QAAQz0E,IAAyB,kBAATA,IACjCqT,EAAUrT,EACVA,EAAO,KAGT,IAAIu3C,EAAOt+C,KAAKs7E,QACZm/C,EAAOq/F,GAAQ/yN,GAAMb,KAAI,SAAAc,GAAG,OAAI,IAAIu0vB,GAAIv0vB,MAM5C,OALAyzH,EAAKx6H,SAAQ,SAAAg7H,GAEPA,EAAImgoB,WAAW98sB,EAAKm8E,KAAK75H,KAAKq6H,EAAIj0H,QAExCs3C,EAAK+6C,WAAWz4F,KAAK,IAAIy5vB,GAAU5/nB,EAAMrgH,IAClCkkC,2BAGT,SAAU7S,GACR,IAAI6S,EAAOt+C,KAAKs7E,QAehB,OAdAh9B,EAAKi+sB,WAAajB,GAAiB,CACjC7vtB,QAAAA,EACAj+B,KAAM,YAEN01B,KAJiC,SAI5BthC,GACH,aAAcwW,IAAVxW,IAAwB5B,KAAKwsN,OAAO2zW,OAAOv+jB,KAAe5B,KAAKijN,YAAY,CAC7ElhL,OAAQ,CACNpe,KAAM3jB,KAAKwsN,OAAOryH,YAOnB77C,uBAGT,SAAM6/sB,GAA+B,IAAxB1ytB,EAAwB,uDAAd1+B,GAAAA,MACjBuxC,EAAOt+C,KAAKs7E,QAuBhB,OAtBA6irB,EAAMl+vB,SAAQ,SAAA8jB,GACZu6B,EAAKk+sB,WAAWl7vB,IAAIyiB,GAEpBu6B,EAAKm+sB,WAAW7ugB,OAAO7pO,MAEzBu6B,EAAK2+sB,gBAAkB3B,GAAiB,CACtC7vtB,QAAAA,EACAj+B,KAAM,QAEN01B,KAJsC,SAIjCthC,GACH,QAAcwW,IAAVxW,EAAqB,OAAO,EAChC,IAAIw8vB,EAASp+vB,KAAKwsN,OAAOgwiB,WACrB9mI,EAAW0oI,EAAOC,WAAWr+vB,KAAKoQ,SACtC,QAAOslnB,EAAS55f,SAASl6H,IAAgB5B,KAAKijN,YAAY,CACxDlhL,OAAQ,CACNnoB,OAAQwkvB,EAAOtkiB,UAAU7oN,KAAK,MAC9ByknB,SAAAA,QAMDp3kB,0BAGT,SAAS6/sB,GAAkC,IAA3B1ytB,EAA2B,uDAAjB1+B,GAAAA,SACpBuxC,EAAOt+C,KAAKs7E,QAuBhB,OAtBA6irB,EAAMl+vB,SAAQ,SAAA8jB,GACZu6B,EAAKm+sB,WAAWn7vB,IAAIyiB,GAEpBu6B,EAAKk+sB,WAAW5ugB,OAAO7pO,MAEzBu6B,EAAK4+sB,gBAAkB5B,GAAiB,CACtC7vtB,QAAAA,EACAj+B,KAAM,WAEN01B,KAJsC,SAIjCthC,GACH,IAAI08vB,EAAWt+vB,KAAKwsN,OAAOiwiB,WACvB/mI,EAAW4oI,EAASD,WAAWr+vB,KAAKoQ,SACxC,OAAIslnB,EAAS55f,SAASl6H,IAAe5B,KAAKijN,YAAY,CACpDlhL,OAAQ,CACNnoB,OAAQ0kvB,EAASxkiB,UAAU7oN,KAAK,MAChCyknB,SAAAA,QAODp3kB,uBAGT,WAAoB,IAAdw+sB,IAAc,yDACdx+sB,EAAOt+C,KAAKs7E,QAEhB,OADAh9B,EAAKq+sB,KAAKG,MAAQA,EACXx+sB,0BAGT,WACE,IAAMA,EAAOt+C,KAAKs7E,QAClB,EAGIh9B,EAAKq+sB,KAFPt5mB,EADF,EACEA,MAGI13D,EAAc,CAClB5E,KALF,EAEEA,KAIAs8D,MAAAA,EACA1/H,KAAM26B,EAAK36B,KACX+1uB,MAAOp7sB,EAAKk+sB,WAAWh3I,WACvBm0I,SAAUr7sB,EAAKm+sB,WAAWj3I,WAC1Bw1I,MAAO18sB,EAAK08sB,MAAM90vB,KAAI,SAAA0zB,GAAE,MAAK,CAC3BpsB,KAAMosB,EAAGgiuB,QAAQpuvB,KACjBu0B,OAAQnI,EAAGgiuB,QAAQ75tB,WACjBn8B,QAAO,SAAC8xD,EAAGq1G,EAAK7rG,GAAT,OAAkBA,EAAK+6D,WAAU,SAAAzgH,GAAC,OAAIA,EAAEhO,OAASkqD,EAAElqD,UAAUu/J,MAE1E,OAAOphF,QArhBUywqB,GA2hBrBA,GAAW52vB,UAAU40vB,iBAAkB,EAEvC,sBAAK,IAAMpxvB,EAAM,OAAkCozvB,GAAW52vB,UAAX,UAAwBwD,EAAxB,OAAsC,SAAUsE,EAAM1L,GAAqB,IAAdwY,EAAc,uDAAJ,GACxH,EAII42uB,GAAMhxvB,KAAMsN,EAAM1L,EAAOwY,EAAQO,SAHnClP,EADF,EACEA,OACA4huB,EAFF,EAEEA,WACA7ghB,EAHF,EAGEA,OAEF,OAAOA,EAAOxjN,GAAQyC,GAAUA,EAAO4huB,GAAap1gB,GAAS,GAAI79M,EAAS,CACxE3O,OAAAA,EACA6B,KAAAA,OARJ,QAAqB,CAAC,WAAY,gBAAlC,uBAYA,IAAK,IAAL,QAAoB,CAAC,SAAU,MAA/B,mBAAK,IAAMi0C,GAAK,OAAsB66sB,GAAW52vB,UAAU+7C,IAAS66sB,GAAW52vB,UAAUk0vB,MAEzF,IAAK,IAAL,QAAoB,CAAC,MAAO,QAA5B,mBAAK,IAAMn4sB,GAAK,OAAqB66sB,GAAW52vB,UAAU+7C,IAAS66sB,GAAW52vB,UAAUm0vB,SAExFyC,GAAW52vB,UAAUwqqB,SAAWosF,GAAW52vB,UAAU+4vB,YC3jBrD,IAAMC,GAAQpC,GAMKoC,GAAMh5vB,UCPzB,IAEA,GAFiB,SAAA5D,GAAK,OAAa,MAATA,GCGnB,SAAS09B,KACd,OAAO,IAAIm/tB,OAEQA,GAAAA,SAAAA,iCACnB,aAAc,6BACZ,cAAM,CACJ96uB,KAAM,aAEHi5uB,cAAa,WAChB,EAAKr0uB,WAAU,SAAU3mB,GACvB,IAAK5B,KAAKmgkB,OAAOv+jB,GAAQ,CACvB,GAAI,cAAcshC,KAAK2iC,OAAOjkE,IAAS,OAAO,EAC9C,GAAI,eAAeshC,KAAK2iC,OAAOjkE,IAAS,OAAO,EAGjD,OAAOA,QAXC,2CAgBd,SAAWilD,GAET,OADIA,aAAa+6D,UAAS/6D,EAAIA,EAAE85K,WACZ,mBAAN95K,wBAGhB,WAAiC,IAA1Bpb,EAA0B,uDAAhB1+B,GAAAA,QACf,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,WACNwwvB,WAAW,EACXj8tB,OAAQ,CACNngC,MAAO,QAGTshC,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,KAAoB,IAAVA,4BAMhC,WAAkC,IAA1B6pC,EAA0B,uDAAhB1+B,GAAAA,QAChB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,WACNwwvB,WAAW,EACXj8tB,OAAQ,CACNngC,MAAO,SAGTshC,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,KAAoB,IAAVA,WAhDb68vB,CAAsBrC,IAuD3C98tB,GAAO95B,UAAYi5vB,GAAcj5vB,UCzDjC,IAAIm5vB,GAAS,04BAETC,GAAO,yqCAEPC,GAAQ,sHAERC,GAAY,SAAAl9vB,GAAK,OAAI88vB,GAAS98vB,IAAUA,IAAUA,EAAMg/B,QAExDm+tB,GAAe,GAAGtwvB,WACf,SAAS6wB,KACd,OAAO,IAAI0/tB,OAEQA,GAAAA,SAAAA,iCACnB,aAAc,6BACZ,cAAM,CACJr7uB,KAAM,YAEHi5uB,cAAa,WAChB,EAAKr0uB,WAAU,SAAU3mB,GACvB,GAAI5B,KAAKmgkB,OAAOv+jB,GAAQ,OAAOA,EAC/B,GAAI2D,MAAMi2E,QAAQ55E,GAAQ,OAAOA,EACjC,IAAM+ka,EAAoB,MAAT/ka,GAAiBA,EAAM6M,SAAW7M,EAAM6M,WAAa7M,EACtE,OAAI+ka,IAAao4V,GAAqBn9vB,EAC/B+ka,QAVC,2CAed,SAAW/ka,GAET,OADIA,aAAiBikE,SAAQjkE,EAAQA,EAAM++N,WACnB,kBAAV/+N,4BAGhB,SAAWA,GACT,OAAO,yDAAiBA,MAAYA,EAAMtB,6BAG5C,SAAOA,GAAiC,IAAzBmrC,EAAyB,uDAAf1+B,GAAAA,OACvB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,SACNwwvB,WAAW,EACXj8tB,OAAQ,CACNzhC,OAAAA,GAGF4iC,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,SAAWN,KAAKoQ,QAAQ9P,yBAM9D,SAAIwlB,GAA2B,IAAtB2lB,EAAsB,uDAAZ1+B,GAAAA,IACjB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNjc,IAAAA,GAGFod,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,QAAUN,KAAKoQ,QAAQ0V,yBAM7D,SAAIF,GAA2B,IAAtB6lB,EAAsB,uDAAZ1+B,GAAAA,IACjB,OAAO/M,KAAKkjC,KAAK,CACf11B,KAAM,MACNwwvB,WAAW,EACXvytB,QAAAA,EACA1J,OAAQ,CACNnc,IAAAA,GAGFsd,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,QAAUN,KAAKoQ,QAAQwV,6BAM7D,SAAQ81I,EAAOthJ,GACb,IACIqxB,EACAj+B,EAFAyxvB,GAAqB,EAIzB,GAAI7kvB,EACF,GAAuB,kBAAZA,EAAsB,OAK3BA,EAHF6kvB,mBAAAA,OAF6B,SAG7BxztB,EAEErxB,EAFFqxB,QACAj+B,EACE4M,EADF5M,UAGFi+B,EAAUrxB,EAId,OAAOpa,KAAKkjC,KAAK,CACf11B,KAAMA,GAAQ,UACdi+B,QAASA,GAAW1+B,GAAAA,QACpBg1B,OAAQ,CACN25H,MAAAA,GAEFx4H,KAAM,SAAAthC,GAAK,OAAI88vB,GAAS98vB,IAAoB,KAAVA,GAAgBq9vB,IAA+C,IAAzBr9vB,EAAMs3J,OAAOwC,2BAIzF,WAA8B,IAAxBjwH,EAAwB,uDAAd1+B,GAAAA,MACd,OAAO/M,KAAK+4F,QAAQ4lqB,GAAQ,CAC1BnxvB,KAAM,QACNi+B,QAAAA,EACAwztB,oBAAoB,uBAIxB,WAA0B,IAAtBxztB,EAAsB,uDAAZ1+B,GAAAA,IACZ,OAAO/M,KAAK+4F,QAAQ6lqB,GAAM,CACxBpxvB,KAAM,MACNi+B,QAAAA,EACAwztB,oBAAoB,wBAIxB,WAA4B,IAAvBxztB,EAAuB,uDAAb1+B,GAAAA,KACb,OAAO/M,KAAK+4F,QAAQ8lqB,GAAO,CACzBrxvB,KAAM,OACNi+B,QAAAA,EACAwztB,oBAAoB,0BAKxB,WACE,OAAOj/vB,KAAKuvG,QAAQ,IAAIhnF,WAAU,SAAAxE,GAAG,OAAY,OAARA,EAAe,GAAKA,yBAG/D,WAA4B,IAAvB0nB,EAAuB,uDAAb1+B,GAAAA,KACb,OAAO/M,KAAKuoB,WAAU,SAAAxE,GAAG,OAAW,MAAPA,EAAcA,EAAI6c,OAAS7c,KAAKmf,KAAK,CAChEuI,QAAAA,EACAj+B,KAAM,OACN01B,KAAM47tB,8BAIV,WAAsC,IAA5BrztB,EAA4B,uDAAlB1+B,GAAAA,UAClB,OAAO/M,KAAKuoB,WAAU,SAAA3mB,GAAK,OAAK88vB,GAAS98vB,GAA+BA,EAAtBA,EAAMqhC,iBAAuBC,KAAK,CAClFuI,QAAAA,EACAj+B,KAAM,cACNwwvB,WAAW,EACX96tB,KAAM,SAAAthC,GAAK,OAAI88vB,GAAS98vB,IAAUA,IAAUA,EAAMqhC,0CAItD,WAAsC,IAA5BwI,EAA4B,uDAAlB1+B,GAAAA,UAClB,OAAO/M,KAAKuoB,WAAU,SAAA3mB,GAAK,OAAK88vB,GAAS98vB,GAA+BA,EAAtBA,EAAM8jH,iBAAuBxiF,KAAK,CAClFuI,QAAAA,EACAj+B,KAAM,cACNwwvB,WAAW,EACX96tB,KAAM,SAAAthC,GAAK,OAAI88vB,GAAS98vB,IAAUA,IAAUA,EAAM8jH,uBAvJnCs5oB,CAAqB5C,IA4J1C98tB,GAAO95B,UAAYw5vB,GAAax5vB,cCnKX05vB,GAAAA,SAAAA,iCACnB,aAAc,6BACZ,cAAM,CACJv7uB,KAAM,YAEHi5uB,cAAa,WAChB,EAAKr0uB,WAAU,SAAU3mB,GACvB,IAAIqqN,EAASrqN,EAEb,GAAsB,kBAAXqqN,EAAqB,CAE9B,GAAe,MADfA,EAASA,EAAOvjK,QAAQ,MAAO,KACZ,OAAOu9D,IAE1BgmG,GAAUA,EAGZ,OAAIjsN,KAAKmgkB,OAAOl0W,GAAgBA,EACzBt2K,WAAWs2K,SAhBV,2CAqBd,SAAWrqN,GAET,OADIA,aAAiB6tD,SAAQ7tD,EAAQA,EAAM++N,WACnB,kBAAV/+N,IA7BN,SAAAA,GAAK,OAAIA,IAAUA,EA6BU4nC,CAAM5nC,sBAG7C,SAAIkkB,GAA2B,IAAtB2lB,EAAsB,uDAAZ1+B,GAAAA,IACjB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNjc,IAAAA,GAGFod,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,GAAS5B,KAAKoQ,QAAQ0V,yBAMtD,SAAIF,GAA2B,IAAtB6lB,EAAsB,uDAAZ1+B,GAAAA,IACjB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNnc,IAAAA,GAGFsd,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,GAAS5B,KAAKoQ,QAAQwV,8BAMtD,SAAS2yE,GAAiC,IAA3B9sD,EAA2B,uDAAjB1+B,GAAAA,SACvB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNw2D,KAAAA,GAGFr1D,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAQ5B,KAAKoQ,QAAQmoF,8BAMrD,SAASF,GAAiC,IAA3B5sD,EAA2B,uDAAjB1+B,GAAAA,SACvB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNs2D,KAAAA,GAGFn1D,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAQ5B,KAAKoQ,QAAQioF,8BAMrD,WAAgC,IAAvBr5B,EAAuB,uDAAjBjyD,GAAAA,SACb,OAAO/M,KAAKi6vB,SAAS,EAAGj7rB,2BAG1B,WAAgC,IAAvBA,EAAuB,uDAAjBjyD,GAAAA,SACb,OAAO/M,KAAKg6vB,SAAS,EAAGh7rB,0BAG1B,WAAkC,IAA1BvzB,EAA0B,uDAAhB1+B,GAAAA,QAChB,OAAO/M,KAAKkjC,KAAK,CACf11B,KAAM,UACNi+B,QAAAA,EACAvI,KAAM,SAAAnf,GAAG,OAAI26uB,GAAS36uB,IAAQ0rC,OAAOqhsB,UAAU/suB,8BAInD,WACE,OAAO/jB,KAAKuoB,WAAU,SAAA3mB,GAAK,OAAK88vB,GAAS98vB,GAAqBA,EAAJ,EAARA,0BAGpD,SAAMoH,GACJ,IAAIm2vB,EAEAC,EAAQ,CAAC,OAAQ,QAAS,QAAS,SAGvC,GAAe,WAFfp2vB,GAAgC,OAArBm2vB,EAAUn2vB,QAAkB,EAASm2vB,EAAQl8tB,gBAAkB,SAElD,OAAOjjC,KAAKiuiB,WACpC,IAA6C,IAAzCmxN,EAAMj5vB,QAAQ6C,EAAOi6B,eAAuB,MAAM,IAAI8iF,UAAU,uCAAyCq5oB,EAAMnuvB,KAAK,OACxH,OAAOjR,KAAKuoB,WAAU,SAAA3mB,GAAK,OAAK88vB,GAAS98vB,GAA+BA,EAAtB+jB,KAAK3c,GAAQpH,YAvH9Cs9vB,CAAqB9C,IA2HvB8C,GAAa15vB,UC1HhC,IAAI65vB,GAAS,kJCJb,IAAIC,GAAc,IAAIhxrB,KAAK,IAIpB,SAAShvC,KACd,OAAO,IAAIiguB,OAEQA,GAAAA,SAAAA,iCACnB,aAAc,6BACZ,cAAM,CACJ57uB,KAAM,UAEHi5uB,cAAa,WAChB,EAAKr0uB,WAAU,SAAU3mB,GACvB,OAAI5B,KAAKmgkB,OAAOv+jB,GAAeA,GAC/BA,EDVO,SAAsBsiC,GACnC,IAEI4jmB,EACA03H,EAHAC,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAClCC,EAAgB,EAIpB,GAAIF,EAASH,GAAO9wvB,KAAK21B,GAAO,CAE9B,IAAK,IAAWyzB,EAAP5rD,EAAI,EAAM4rD,EAAI8nsB,EAAY1zvB,KAAMA,EAAGyzvB,EAAO7nsB,IAAM6nsB,EAAO7nsB,IAAM,EAGtE6nsB,EAAO,KAAOA,EAAO,IAAM,GAAK,EAChCA,EAAO,IAAMA,EAAO,IAAM,EAE1BA,EAAO,GAAKA,EAAO,GAAK35rB,OAAO25rB,EAAO,IAAI7uvB,OAAO,EAAG,GAAK,OAEtCyH,IAAdonvB,EAAO,IAAkC,KAAdA,EAAO,SAA6BpnvB,IAAdonvB,EAAO,IAAkC,KAAdA,EAAO,IACpE,MAAdA,EAAO,SAA4BpnvB,IAAdonvB,EAAO,KAC9BE,EAA6B,GAAbF,EAAO,IAAWA,EAAO,IACvB,MAAdA,EAAO,KAAYE,EAAgB,EAAIA,IAG7C53H,EAAYx5jB,KAAK04C,IAAIw4oB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAKE,EAAeF,EAAO,GAAIA,EAAO,KANZ13H,GAAa,IAAIx5jB,KAAKkxrB,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,SAQ9L13H,EAAYx5jB,KAAK+nB,MAAQ/nB,KAAK+nB,MAAMnyD,GAAQ+hF,IAEnD,OAAO6hhB,EChBO63H,CAAS/9vB,GAET4nC,MAAM5nC,GAA2B09vB,GAAlB,IAAIhxrB,KAAK1sE,UATxB,2CAcd,SAAWilD,GACT,OArBS6mB,EAqBK7mB,EArB0C,kBAAxC//C,OAAOtB,UAAUiJ,SAAShO,KAAKitE,KAqB1BlkC,MAAMqd,EAAEo9M,WArBpB,IAAAv2L,8BAwBX,SAAazP,EAAKzwD,GAChB,IAAI24J,EAEJ,GAAKo1lB,GAAAA,MAAUt9rB,GAKbkoG,EAAQloG,MALW,CACnB,IAAI2hsB,EAAO5/vB,KAAK4/vB,KAAK3hsB,GACrB,IAAKj+D,KAAKq9vB,WAAWuC,GAAO,MAAM,IAAI75oB,UAAJ,WAAmBv4G,EAAnB,+DAClC24J,EAAQy5lB,EAKV,OAAOz5lB,qBAGT,SAAIrgJ,GAA2B,IAAtB2lB,EAAsB,uDAAZ1+B,GAAAA,IACbuvK,EAAQt8K,KAAK6/vB,aAAa/5uB,EAAK,OACnC,OAAO9lB,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNjc,IAAAA,GAGFod,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,GAAS5B,KAAKoQ,QAAQksK,yBAMtD,SAAI12J,GAA2B,IAAtB6lB,EAAsB,uDAAZ1+B,GAAAA,IACbuvK,EAAQt8K,KAAK6/vB,aAAaj6uB,EAAK,OACnC,OAAO5lB,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNnc,IAAAA,GAGFsd,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,GAAS5B,KAAKoQ,QAAQksK,YA7DnCijlB,CAAmBnD,IAoExCmD,GAAWO,aAAeR,GAC1BhguB,GAAO95B,UAAY+5vB,GAAW/5vB,UAC9B85B,GAAOwguB,aAAeR,mGC7EP,SAASS,GAAWtuuB,GAA4B,IAApBuuuB,EAAoB,uDAAJ,GACrD94J,EAAQ,GACR15W,EAAQ,IAAI7oI,IACZs7oB,EAAW,IAAIt7oB,IAAIq7oB,EAAc95vB,KAAI,+BAAEu/C,EAAF,KAAKC,EAAL,qBAAeD,EAAf,YAAoBC,OAE7D,SAASw6sB,EAAQC,EAASn5vB,GACxB,IAAIivE,GAAOxoE,EAAAA,GAAAA,OAAM0yvB,GAAS,GAC1B3ygB,EAAMlsP,IAAI20E,GACLgqrB,EAASpmuB,IAAT,UAAgB7yB,EAAhB,YAAuBivE,KAASixhB,EAAMtmmB,KAAK,CAACoG,EAAKivE,IARK,eAWlDjvE,GAAe,GAAI6yB,IAAAA,CAAIpI,EAAQzqB,GAAM,CAC9C,IAAIpF,EAAQ6vB,EAAOzqB,GACnBwmP,EAAMlsP,IAAI0F,GACNu0vB,GAAAA,MAAU35vB,IAAUA,EAAMw5vB,UAAW8E,EAAQt+vB,EAAM0L,KAAMtG,GAAcuzvB,GAAS34vB,IAAU,SAAUA,GAAOA,EAAM64H,KAAKx6H,SAAQ,SAAAqN,GAAI,OAAI4yvB,EAAQ5yvB,EAAMtG,QAH1J,IAAK,IAAMA,KAAOyqB,EAAlB,EAAWzqB,GAMX,OAAOigmB,KAAAA,MAAe1hmB,MAAM4D,KAAKqkP,GAAQ05W,GAAOnzkB,UCvBlD,SAASkoG,GAAUpH,EAAK6T,GACtB,IAAIqkC,EAAM7lE,EAAAA,EASV,OARA2tB,EAAItyG,MAAK,SAACvb,EAAK2tO,GACb,IAAIyrhB,EAEJ,IAA4E,KAA7C,OAAzBA,EAAY13nB,EAAIp7H,WAAgB,EAAS8yvB,EAAUj6vB,QAAQa,IAE/D,OADA+lK,EAAM4nE,GACC,KAGJ5nE,EAGM,SAASszlB,GAAet5vB,GACrC,OAAO,SAAC0+C,EAAGC,GACT,OAAOu2E,GAAUl1H,EAAM0+C,GAAKw2E,GAAUl1H,EAAM2+C,ICfhD,SAASuyK,KAA2Q,OAA9PA,GAAWnxN,OAAOw4C,QAAU,SAAU14C,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,WAehT,IAAIoiN,GAAW,SAAAz8I,GAAG,MAA4C,oBAAxC5mE,OAAOtB,UAAUiJ,SAAShO,KAAKitE,IAErD,SAAS4kf,GAAQljX,EAAKxtM,GACpB,IAAI0+vB,EAAQx5vB,OAAOC,KAAKqoM,EAAI39K,QAC5B,OAAO3qB,OAAOC,KAAKnF,GAAOgE,QAAO,SAAAoB,GAAG,OAA4B,IAAxBs5vB,EAAMn6vB,QAAQa,MAGxD,IAAMu5vB,GAAcF,GAAe,IACdG,GAAAA,SAAAA,iCACnB,WAAY7D,GAAM,6BAChB,cAAM,CACJh5uB,KAAM,YAEH8N,OAAS3qB,OAAOw4B,OAAO,MAC5B,EAAKmhuB,YAAcF,GACnB,EAAKG,OAAS,GACd,EAAKC,eAAiB,GACtB,EAAK/D,cAAa,WAChB,EAAKr0uB,WAAU,SAAgB3mB,GAC7B,GAAqB,kBAAVA,EACT,IACEA,EAAQ0Z,KAAK+6E,MAAMz0F,GACnB,MAAO8mI,GACP9mI,EAAQ,KAIZ,OAAI5B,KAAKmgkB,OAAOv+jB,GAAeA,EACxB,QAGL+6vB,GACF,EAAKnoP,MAAMmoP,MAvBC,2CA4BlB,SAAW/6vB,GACT,OAAOuoN,GAASvoN,IAA2B,oBAAVA,uBAGnC,SAAM2iB,GAAsB,IACtBq8uB,EADsB,OAAdxmvB,EAAc,uDAAJ,GAGlBxY,GAAQ,oDAAY2iB,EAAQnK,GAGhC,QAAchC,IAAVxW,EAAqB,OAAO5B,KAAKy9vB,aACrC,IAAKz9vB,KAAKq9vB,WAAWz7vB,GAAQ,OAAOA,EACpC,IAR0B,EAQtB6vB,EAASzxB,KAAKyxB,OACdqruB,EAA0D,OAAjD8D,EAAwBxmvB,EAAQymvB,cAAwBD,EAAwB5gwB,KAAK28vB,KAAKxC,UAEnG36oB,EAAQx/G,KAAK0gwB,OAAO9kuB,OAAO90B,OAAOC,KAAKnF,GAAOgE,QAAO,SAAAihD,GAAC,OAAgC,IAA5B,EAAK65sB,OAAOv6vB,QAAQ0gD,OAE9Ei6sB,EAAoB,GAEpBC,EAAe9oiB,GAAS,GAAI79M,EAAS,CACvC3O,OAAQq1vB,EACRE,aAAc5mvB,EAAQ4mvB,eAAgB,IAGpCC,GAAY,EApBU,UAsBPzhpB,GAtBO,IAsB1B,2BAA0B,KAAfiH,EAAe,QACpBliF,EAAQ9S,EAAOg1F,GACfy6oB,EAASrnuB,IAAAA,CAAIj4B,EAAO6kH,GAExB,GAAIliF,EAAO,CACT,IAAI48tB,OAAU,EACV5gW,EAAa3+Z,EAAM6kH,GAEvBs6oB,EAAazzvB,MAAQ8M,EAAQ9M,KAAR,UAAkB8M,EAAQ9M,KAA1B,KAAoC,IAAMm5G,EAO/D,IAAI26oB,EAAY,SALhB78tB,EAAQA,EAAMn0B,QAAQ,CACpBxO,MAAO2+Z,EACP5lZ,QAASP,EAAQO,QACjBlP,OAAQq1vB,KAEwBv8tB,EAAMo4tB,UAAOvkvB,EAC3C8kE,EAAsB,MAAbkkrB,OAAoB,EAASA,EAAUlkrB,OAEpD,GAAiB,MAAbkkrB,OAAoB,EAASA,EAAUtE,MAAO,CAChDmE,EAAYA,GAAax6oB,KAAQ7kH,EACjC,cAMiBwW,KAHnB+ovB,EAAc/mvB,EAAQ4mvB,cAAiB9jrB,EACCt7E,EAAM6kH,GAA9CliF,EAAMq7tB,KAAKh+vB,EAAM6kH,GAAOs6oB,MAGtBD,EAAkBr6oB,GAAQ06oB,QAEnBD,IAAWpE,IACpBgE,EAAkBr6oB,GAAQ7kH,EAAM6kH,IAG9Bq6oB,EAAkBr6oB,KAAU7kH,EAAM6kH,KACpCw6oB,GAAY,IAxDU,8BA4D1B,OAAOA,EAAYH,EAAoBl/vB,2BAGzC,SAAU2iB,GAA6B,WAArBykG,EAAqB,uDAAd,GAAIx6D,EAAU,uCACjCyzK,EAAS,GAEX6ogB,EAKE9hnB,EALF8hnB,KADF,EAMI9hnB,EAJF7/G,KAAAA,OAFF,MAES,GAFT,IAMI6/G,EAHFy1Q,cAAAA,OAHF,MAGkBl6W,EAHlB,IAMIykG,EAFFuqoB,WAAAA,OAJF,MAIevzvB,KAAK28vB,KAAKpJ,WAJzB,IAMIvqoB,EADFqrR,UAAAA,OALF,MAKcr0Y,KAAK28vB,KAAKtoX,UALxB,EAOAlrY,EAAO,CAAC,CACNqjN,OAAQxsN,KACR4B,MAAO68X,IAFL,eAGEt1X,IAGN6/G,EAAKg4oB,cAAe,EACpBh4oB,EAAKy1Q,cAAgBA,EACrBz1Q,EAAK7/G,KAAOA,GAEZ,wDAAgBob,EAAQykG,GAAM,SAAC0f,EAAK9mI,GAClC,GAAI8mI,EAAK,CACP,IAAKiynB,GAAgBj4rB,QAAQgmE,IAAQ6qnB,EACnC,YAAY/ksB,EAASk6E,EAAK9mI,GAG5BqgO,EAAOrhO,KAAK8nI,GAGd,GAAK2rQ,GAAclqL,GAASvoN,GAA5B,CAKA68X,EAAgBA,GAAiB78X,EAEjC,IAAIo5vB,EAAQ,EAAK0F,OAAOx6vB,KAAI,SAAAc,GAAG,OAAI,SAAC0T,EAAGstH,GACrC,IAAI16H,GAA6B,IAAtBtG,EAAIb,QAAQ,MAAe6iH,EAAK17G,KAAL,UAAe07G,EAAK17G,KAApB,KAA8B,IAAMtG,EAA/D,UAAwEgiH,EAAK17G,MAAQ,GAArF,aAA4FtG,EAA5F,MACPu9B,EAAQ,EAAK9S,OAAOzqB,GAEpBu9B,GAAS,aAAcA,EACzBA,EAAMovC,SAAS/xE,EAAMoF,GAAMixN,GAAS,GAAIjvG,EAAM,CAE5C17G,KAAAA,EACAnE,KAAAA,EAIA+zE,QAAQ,EACRzxE,OAAQ7J,EACR68X,cAAeA,EAAcz3X,KAC3BghI,GAINA,EAAG,UAGL8ynB,GAAS,CACPhwB,KAAAA,EACAkwB,MAAAA,EACAp5vB,MAAAA,EACAqgO,OAAAA,EACA84hB,SAAUxH,EACV/tsB,KAAM,EAAKi7sB,YACXnzvB,KAAM07G,EAAK17G,MACVkhD,QApCDA,EAASyzK,EAAO,IAAM,KAAMrgO,2BAwClC,SAAM+6vB,GACJ,IAAMr+sB,GAAO,oDAAYq+sB,GAKzB,OAJAr+sB,EAAK7sB,OAASwmM,GAAS,GAAIj4N,KAAKyxB,QAChC6sB,EAAKoitB,OAAS1gwB,KAAK0gwB,OACnBpitB,EAAKqitB,eAAiB3gwB,KAAK2gwB,eAC3BritB,EAAKmitB,YAAczgwB,KAAKygwB,YACjBnitB,wBAGT,SAAOkuK,GAIL,IAJa,WACTluK,GAAO,qDAAakuK,GACpB60iB,EAAa/itB,EAAK7sB,OAEtB,MAAiC3qB,OAAOg+G,QAAQ9kH,KAAKyxB,QAArD,eAA8D,CAAzD,sBAAK8S,EAAL,KAAY+8tB,EAAZ,KACG16vB,EAASy6vB,EAAW98tB,QAEXnsB,IAAXxR,EACFy6vB,EAAW98tB,GAAS+8tB,EACX16vB,aAAkBw1vB,IAAckF,aAAuBlF,KAChEiF,EAAW98tB,GAAS+8tB,EAAY1luB,OAAOh1B,IAI3C,OAAO03C,EAAKs+sB,cAAa,kBAAMt+sB,EAAKk2d,MAAM6sP,EAAY,EAAKV,sDAG7D,WAAsB,WAChBY,EAAM,GAOV,OALAvhwB,KAAK0gwB,OAAOzgwB,SAAQ,SAAA+G,GAClB,IAAMu9B,EAAQ,EAAK9S,OAAOzqB,GAC1Bu6vB,EAAIv6vB,GAAO,YAAau9B,EAAQA,EAAMk5tB,kBAAerlvB,KAGhDmpvB,6BAGT,WACE,MAAI,YAAavhwB,KAAK28vB,MACpB,2DAIG38vB,KAAK0gwB,OAAOpgwB,OAIVN,KAAKwhwB,2BAJZ,uBAOF,SAAMC,GAA0B,IAAfxB,EAAe,uDAAJ,GACtB3htB,EAAOt+C,KAAKs7E,QACZ7pD,EAAS3qB,OAAOw4C,OAAOhB,EAAK7sB,OAAQgwuB,GAWxC,OAVAnjtB,EAAK7sB,OAASA,EACd6sB,EAAKmitB,YAAcJ,GAAev5vB,OAAOC,KAAK0qB,IAE1CwuuB,EAAS3/vB,SAENiF,MAAMi2E,QAAQykrB,EAAS,MAAKA,EAAW,CAACA,IAC7C3htB,EAAKqitB,eAAL,kBAA0BritB,EAAKqitB,iBAA/B,OAAkDV,KAGpD3htB,EAAKoitB,OAASX,GAAWtuuB,EAAQ6sB,EAAKqitB,gBAC/BritB,sBAGT,SAAKv3C,GACH,IADS,EACH26vB,EAAS,GADN,UAGS36vB,GAHT,IAGT,2BAAwB,KAAbC,EAAa,QAClBhH,KAAKyxB,OAAOzqB,KAAM06vB,EAAO16vB,GAAOhH,KAAKyxB,OAAOzqB,KAJzC,8BAOT,OAAOhH,KAAKs7E,QAAQshrB,cAAa,SAAAt+sB,GAE/B,OADAA,EAAK7sB,OAAS,GACP6sB,EAAKk2d,MAAMktP,0BAItB,SAAK36vB,GACH,IAAMu3C,EAAOt+C,KAAKs7E,QACZ7pD,EAAS6sB,EAAK7sB,OACpB6sB,EAAK7sB,OAAS,GAHL,gBAKS1qB,GALT,IAKT,2BAAwB,KAAbC,EAAa,eACfyqB,EAAOzqB,IANP,8BAST,OAAOs3C,EAAKs+sB,cAAa,kBAAMt+sB,EAAKk2d,MAAM/if,0BAG5C,SAAKtoB,EAAM63D,EAAIzf,GACb,IAAIogtB,GAAal+f,EAAAA,GAAAA,QAAOt6P,GAAM,GAC9B,OAAOnJ,KAAKuoB,WAAU,SAAAmlD,GACpB,GAAW,MAAPA,EAAa,OAAOA,EACxB,IAAI08mB,EAAS18mB,EAQb,OANI7zC,IAAAA,CAAI6zC,EAAKvkE,KACXihrB,EAASnyd,GAAS,GAAIvqJ,GACjBnsB,UAAc6ooB,EAAOjhrB,GAC1BihrB,EAAOppnB,GAAM2gsB,EAAWj0rB,IAGnB08mB,8BAIX,WAAsD,IAA5Cw3E,IAA4C,yDAA5Bn2tB,EAA4B,uDAAlB1+B,GAAAA,UACX,kBAAZ60vB,IACTn2tB,EAAUm2tB,EACVA,GAAU,GAGZ,IAAItjtB,EAAOt+C,KAAKkjC,KAAK,CACnB11B,KAAM,YACNwwvB,WAAW,EACXvytB,QAASA,EAETvI,KALmB,SAKdthC,GACH,GAAa,MAATA,EAAe,OAAO,EAC1B,IAAMigwB,EAAcvvM,GAAQtyjB,KAAKwsN,OAAQ5qN,GACzC,OAAQggwB,GAAkC,IAAvBC,EAAYvhwB,QAAgBN,KAAKijN,YAAY,CAC9DlhL,OAAQ,CACNuwhB,QAASuvM,EAAY5wvB,KAAK,YAOlC,OADAqtC,EAAKq+sB,KAAKxC,UAAYyH,EACftjtB,yBAGT,WAAkD,IAA1CwjtB,IAA0C,yDAA5Br2tB,EAA4B,uDAAlB1+B,GAAAA,UAC9B,OAAO/M,KAAKm6vB,WAAW2H,EAAOr2tB,gCAGhC,SAAc7R,GACZ,OAAO55B,KAAKuoB,WAAU,SAAAmlD,GAAG,OAAIA,GAAOq0rB,IAAAA,CAAQr0rB,GAAK,SAAChzD,EAAG1T,GAAJ,OAAY4yB,EAAG5yB,kCAGlE,WACE,OAAOhH,KAAKgiwB,cAActwN,+BAG5B,WACE,OAAO1xiB,KAAKgiwB,cAAc73L,kCAG5B,WACE,OAAOnqkB,KAAKgiwB,eAAc,SAAAh7vB,GAAG,OAAImjkB,IAAAA,CAAUnjkB,GAAK0+G,yCAGlD,WACE,IAAIgiB,GAAO,wDAEX,OADAA,EAAKj2G,OAASgquB,IAAAA,CAAUz7vB,KAAKyxB,QAAQ,SAAA7vB,GAAK,OAAIA,EAAM4jnB,cAC7C99e,QAjUU84nB,CAAqBpE,IAqUnC,SAAS98tB,GAAOq9tB,GACrB,OAAO,IAAI6D,GAAa7D,GC7V1B,SAAS1kiB,KAA2Q,OAA9PA,GAAWnxN,OAAOw4C,QAAU,SAAU14C,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,WD+VhTu3B,GAAO95B,UAAYg7vB,GAAah7vB,cCnVXy8vB,GAAAA,SAAAA,iCACnB,WAAYt+uB,GAAM,6BAChB,cAAM,CACJA,KAAM,WAIHq4uB,eAAY,EACjB,EAAKA,UAAYr4uB,EACjB,EAAKi5uB,cAAa,WAChB,EAAKr0uB,WAAU,SAAU3O,GACvB,GAAsB,kBAAXA,EAAqB,IAC9BA,EAAS0B,KAAK+6E,MAAMz8E,GACpB,MAAO8uH,GACP9uH,EAAS,KAEX,OAAO5Z,KAAKmgkB,OAAOvmjB,GAAUA,EAAS,WAf1B,2CAoBlB,SAAWitC,GACT,OAAOthD,MAAMi2E,QAAQ30B,yBAGvB,WACE,OAAO7mD,KAAKg8vB,+BAGd,SAAMz3uB,EAAQ29uB,GAAO,WACbtgwB,GAAQ,oDAAY2iB,EAAQ29uB,GAGlC,IAAKliwB,KAAKq9vB,WAAWz7vB,KAAW5B,KAAKg8vB,UAAW,OAAOp6vB,EACvD,IAAIq/vB,GAAY,EACVkB,EAAYvgwB,EAAMsE,KAAI,SAAC2gD,EAAGkmH,GAC9B,IAAMq1lB,EAAc,EAAKpG,UAAU4D,KAAK/4sB,EAAGoxK,GAAS,GAAIiqiB,EAAO,CAC7D50vB,KAAM,GAAF,OAAK40vB,EAAM50vB,MAAQ,GAAnB,YAAyBy/J,EAAzB,QAON,OAJIq1lB,IAAgBv7sB,IAClBo6sB,GAAY,GAGPmB,KAET,OAAOnB,EAAYkB,EAAYvgwB,2BAGjC,SAAU2iB,GAAgC,IACpC89uB,EAAqBC,EADe,OAAxBlovB,EAAwB,uDAAd,GAAIo0C,EAAU,uCAGpCyzK,EAAS,GACT6ogB,EAAO1wtB,EAAQ0wtB,KACfx9tB,EAAO8M,EAAQ9M,KACf0uvB,EAAYh8vB,KAAKg8vB,UACjBjB,EAAyD,OAA7CsH,EAAsBjovB,EAAQm5uB,YAAsB8O,EAAsBriwB,KAAK28vB,KAAKpJ,WAChGl/W,EAAwD,OAA3CiuX,EAAqBlovB,EAAQi6X,WAAqBiuX,EAAqBtiwB,KAAK28vB,KAAKtoX,UAC9F5V,EAAyC,MAAzBrkX,EAAQqkX,cAAwBrkX,EAAQqkX,cAAgBl6W,GAE5E,wDAAgBA,EAAQnK,GAAS,SAACsuH,EAAK9mI,GACrC,GAAI8mI,EAAK,CACP,IAAKiynB,GAAgBj4rB,QAAQgmE,IAAQqynB,EACnC,YAAYvssB,EAASk6E,EAAK9mI,GAG5BqgO,EAAOrhO,KAAK8nI,GAGd,GAAK2rQ,GAAc2nX,GAAc,EAAKqB,WAAWz7vB,GAAjD,CAKA68X,EAAgBA,GAAiB78X,EAIjC,IAFA,IAAIo5vB,EAAQ,IAAIz1vB,MAAM3D,EAAMtB,QAhBmB,WAkBtCysK,GACP,IAAI7sK,EAAO0B,EAAMmrK,GACbz/J,EAAO,GAAH,OAAM8M,EAAQ9M,MAAQ,GAAtB,YAA4By/J,EAA5B,KAEJg0lB,EAAe9oiB,GAAS,GAAI79M,EAAS,CACvC9M,KAAAA,EACA4vE,QAAQ,EACRzxE,OAAQ7J,EACRf,MAAOksK,EACP0xN,cAAeA,EAAc1xN,KAG/BiulB,EAAMjulB,GAAO,SAACryJ,EAAGstH,GAAJ,OAAWg0nB,EAAUrorB,SAASzzE,EAAM6gwB,EAAc/4nB,KAZxD+kC,EAAM,EAAGA,EAAMnrK,EAAMtB,OAAQysK,IAAO,EAApCA,GAeT+tlB,GAAS,CACPhwB,KAAAA,EACAx9tB,KAAAA,EACA1L,MAAAA,EACAqgO,OAAAA,EACA84hB,SAAAA,EACAC,MAAAA,GACCxssB,QA9BDA,EAASyzK,EAAO,IAAM,KAAMrgO,2BAkClC,SAAM+6vB,GACJ,IAAMr+sB,GAAO,oDAAYq+sB,GAEzB,OADAr+sB,EAAK09sB,UAAYh8vB,KAAKg8vB,UACf19sB,wBAGT,SAAOkuK,GACL,IAAIluK,GAAO,qDAAakuK,GAIxB,OAHAluK,EAAK09sB,UAAYh8vB,KAAKg8vB,UAClBxviB,EAAOwviB,YAAW19sB,EAAK09sB,UAAY19sB,EAAK09sB,UAC5C19sB,EAAK09sB,UAAUpguB,OAAO4wL,EAAOwviB,WAAaxviB,EAAOwviB,WAC1C19sB,oBAGT,SAAGkuK,GAED,IAAIluK,EAAOt+C,KAAKs7E,QAChB,IAAKi/qB,GAAS/tiB,GAAS,MAAM,IAAIzmG,UAAU,2DAA6DyzoB,GAAWhtiB,IAGnH,OADAluK,EAAK09sB,UAAYxviB,EACVluK,wBAGT,SAAOh+C,GAAiC,IAAzBmrC,EAAyB,uDAAf1+B,GAAAA,OACvB,OAAO/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,SACNwwvB,WAAW,EACXj8tB,OAAQ,CACNzhC,OAAAA,GAGF4iC,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,SAAWN,KAAKoQ,QAAQ9P,yBAM9D,SAAIwlB,EAAK2lB,GAEP,OADAA,EAAUA,GAAW1+B,GAAAA,IACd/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNjc,IAAAA,GAIFod,KATe,SASVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,QAAUN,KAAKoQ,QAAQ0V,yBAM7D,SAAIF,EAAK6lB,GAEP,OADAA,EAAUA,GAAW1+B,GAAAA,IACd/M,KAAKkjC,KAAK,CACfuI,QAAAA,EACAj+B,KAAM,MACNwwvB,WAAW,EACXj8tB,OAAQ,CACNnc,IAAAA,GAGFsd,KARe,SAQVthC,GACH,OAAO88vB,GAAS98vB,IAAUA,EAAMtB,QAAUN,KAAKoQ,QAAQwV,4BAM7D,WAAS,WACP,OAAO5lB,KAAKuvG,SAAQ,iBAAM,MAAIhnF,WAAU,SAACxE,EAAK82G,GAE5C,OAAI,EAAKwioB,WAAWt5uB,GAAaA,EACd,MAAZ82G,EAAmB,GAAK,GAAGj/F,OAAOi/F,6BAI7C,SAAQ0noB,GACN,IAAI72tB,EAAU62tB,EAAsB,SAAC17sB,EAAG96C,EAAG05C,GAAP,OAAc88sB,EAAS17sB,EAAG96C,EAAG05C,IAAxC,SAAAoB,GAAC,QAAMA,GAChC,OAAO7mD,KAAKuoB,WAAU,SAAA3O,GAAM,OAAc,MAAVA,EAAiBA,EAAOhU,OAAO8lC,GAAU9xB,6BAG3E,WACE,IAAI8tH,GAAO,wDAEX,OADI1nI,KAAKg8vB,YAAWt0nB,EAAKs0nB,UAAYh8vB,KAAKg8vB,UAAUx2I,YAC7C99e,0BAGT,WAA4B,IAAnB3rG,IAAmB,yDAC1B,8DAAsBA,0BAGxB,WACE,sFAGF,SAASijC,GACP,8DAAsBA,SA9MLijsB,CAAoB7F,IAkNtB6F,GAAYz8vB,UC9NxB,IAAMg9vB,GAAb,+EACE,SAAkB1iwB,EAAsBmzB,EAAkBrxB,EAAa6gwB,GACjEA,EACF3iwB,EAAQme,MAAM8iO,YAAY9tN,EAAUrxB,EAAO,aAE3C9B,EAAQme,MAAM8iO,YAAY9tN,EAAUrxB,KAL1C,iBASE,SAAkB9B,EAAsByigB,GACtC,OAAOzigB,EAAQme,MAAMqtT,iBAAiBi3L,KAV1C,oBAaE,SAAqBzigB,EAAsB4iwB,GACzC5iwB,EAAQme,MAAM0hQ,eAAe+if,OAdjC,KCAaC,GAAb,+EAGE,SAAkBv0vB,EAAmCpH,EAAa6G,GAChE,GAAKO,EAAL,CAIA,IAAMw0vB,EAAeD,EAASn8sB,MAAM3mC,IAAIzR,GACxC,GAAKw0vB,EAMLA,EAAa59rB,IAAIh+D,EAAK6G,OANtB,CACE,IAAMg1vB,GAAS,IAAIrrgB,KAAMxyL,IAAIh+D,EAAK6G,GAClC80vB,EAASn8sB,MAAMwe,IAAI52D,EAAUy0vB,OAXnC,iBAkBE,SAAkBz0vB,EAAuBpH,GACvC,IAAM47vB,EAAeD,EAASn8sB,MAAM3mC,IAAIzR,GACxC,GAAKw0vB,EAIL,OAAOA,EAAa/ivB,IAAI7Y,KAxB5B,oBA2BE,SAAqBoH,EAAuBpH,GAC1C,IAAM47vB,EAAeD,EAASn8sB,MAAM3mC,IAAIzR,GACnCw0vB,GAILA,EAAah1gB,OAAO5mP,KAjCxB,uBAoCE,SAAwBoH,EAAuBpH,EAAa87vB,GAC1D,IAAMF,EAAeD,EAASn8sB,MAAM3mC,IAAIzR,GACxC,GAAKw0vB,EAAL,CAIA,IAAMG,EAAYH,EAAa/ivB,IAAI7Y,GACnC,GAAK+7vB,EAAL,CAIA,IAAMC,EAAmBD,EAAuBn9vB,QAAO,SAAC2mH,GAAD,OAAOA,IAAMu2oB,KACpEH,EAAS39rB,IAAI52D,EAAUpH,EAAKg8vB,OAhDhC,iBAmDE,SAAkB50vB,EAAuBpH,GACvC,IAAM47vB,EAAeD,EAASn8sB,MAAM3mC,IAAIzR,GACxC,QAAIw0vB,GACKA,EAAa/ouB,IAAI7yB,KAtD9B,kCA4DE,SAAmCA,GACjC,IAAM6H,EAAgB,GAQtB,OAPA8zvB,EAASn8sB,MAAMvmD,SAAQ,SAAC8jB,GACtBA,EAAI9jB,SAAQ,SAAC4mD,EAAG8Q,GACVA,IAAM3wD,GACR6H,EAAOjO,KAAKimD,SAIXh4C,MArEX,KCAA,SAASo0vB,GAA4Bv1rB,EAAU1mE,GAC7C,IAAMd,EAAM,IAAIsxP,IAAI1wP,OAAOg+G,QAAQp3C,IACnC,GAAIA,EAAIoJ,eAAe9vE,IAAQd,EAC7B,OAAOA,EAAI2Z,IAAI7Y,GASnB,SAASk8vB,GAAsBr4tB,GAC7B,IAAMh8B,EAAS8W,KAAKo1B,MAAMp1B,KAAK+5D,UAAW,IAAIpR,MAAO21L,WAAWx1P,WAChE,OAAKo8B,EAIC,GAAN,OAAUA,GAAV,OAAmBh8B,GAHVA,EAOX,SAASs0vB,GAAmB3krB,GAC1B,OAAOA,EAAI91B,QAAQ,WAAW,SAAU+O,GACtC,OAAOA,EAAE,GAAGiuD,iBDxBHi9oB,GACJn8sB,MAAgD,IAAIgxM,IECtD,IAAM4rgB,GAAb,8EAGE,SACEtjwB,EACAypB,EACA0gB,EACAyoN,GAEA,IAAMowgB,EAAUI,GAAsB,YAmBtC,OAlBAE,EAAoB58sB,MAAMwe,IAAI89rB,GAAS,SAACtiwB,GAGtC,IAFA,IAAM+1P,EAAUz2P,EAAQ4F,iBAAiB6jB,GACrC3iB,EAA6BpG,EAAEoG,OAC5BA,GAAUA,IAAW9G,GAAS,CACnC,IAAK,IAAIiM,EAAI,EAAGA,EAAIwqP,EAAQj2P,OAAQyL,IAC9BnF,IAAW2vP,EAAQxqP,IACrB2mP,EAASjyP,KAAKmG,EAAQpG,GAKxBoG,EADEA,EAAOqhC,cACArhC,EAAOqhC,cAEP,SAIfnoC,EAAQY,iBAAiBupC,EAAWm5tB,EAAoB58sB,MAAM3mC,IAAIijvB,IAC3DA,IA5BX,iBA+BE,SAAkBhjwB,EAAsBmqC,EAAmB64tB,GACzD,IAAMO,EAAgBD,EAAoB58sB,MAAM3mC,IAAIijvB,GAC/CO,IAILvjwB,EAAQK,oBAAoB8pC,EAAWo5tB,GACvCD,EAAoB58sB,MAAMonM,OAAOk1gB,MAtCrC,iBAyCE,SAAkBhjwB,EAAsBmqC,EAAmByoN,GACzD5yP,EAAQY,iBAAiBupC,GAAW,SAASq5tB,EAAM9iwB,GAYjD,OAVIA,EAAEoG,QAAUpG,EAAEoG,OAAOzG,qBACvBK,EAAEoG,OAAOzG,oBAAoBK,EAAEmjB,KAAM2/uB,GAGnCxjwB,GAAWU,GAAKA,EAAEkO,eAEpBlO,EAAEkO,cAAcvO,oBAAoBK,EAAEmjB,KAAM2/uB,GAIvC5wgB,EAASlyP,UAtDtB,KAAa4iwB,GACG58sB,MAAQ,IAAIgxM,ICCrB,IAAM+rgB,GAAb,mFACE,SACEp6vB,EACA63D,EACAw+J,EACAnhN,EACA4lN,GAMA,IAAMu/hB,EACI,SAAUttsB,EAAWxQ,EAAWlqC,EAAWshG,GACjD,OAAQthG,EAAI06C,EAAK4mD,EAAIp3D,GAKpBu+K,IACHA,EAAW,cAKb,IAAMzkM,EAASwhC,EAAK73D,EAkBpBkV,EAAOlV,GAGP,IAAM0S,EACJ4J,OAAOo/kB,aAAep/kB,OAAOo/kB,YAAYjyf,IAAMntF,OAAOo/kB,YAAYjyf,OAAS,IAAItkC,KAEjF7oD,OAAOwqH,uBAtBP,SAASssN,EAAKurS,GACZ,IAAIj7jB,GAAQi7jB,IAAc,IAAIx5jB,MAAUzyD,EAEpCgxD,GAAQ,GACVxuD,EAAOmlvB,EAAe32rB,EAAM1jE,EAAMq2B,EAAQggM,IAExC3yJ,GAAQ,GAAKA,GAAQ2yJ,GACvBnhN,EAAO2iD,GACHijK,GACFA,KAGFx+M,OAAOwqH,sBAAsBssN,QAvCrC,0BAoDE,SACEz8V,EACA+iI,EACA6vH,GAEA,IAAM+wgB,EAAiB5goB,EAAcp1H,MAAM,KAC3Cg2vB,EAAexjwB,SAAQ,SAAC0mI,GAAD,OAAc7mI,EAAQuB,UAAUC,IAAIqlI,MAC3Dy8nB,GAAoB5+d,IAAI1kS,EAAS,gBAAgB,WAC/C2jwB,EAAexjwB,SAAQ,SAAC0mI,GAAD,OAAc7mI,EAAQuB,UAAUG,OAAOmlI,SAG5D+rH,GACF0wgB,GAAoB5+d,IAAI1kS,EAAS,eAAgB4yP,KAhEvD,2BAoEE,SAA4B5yP,EAAsB4yP,GAChD0wgB,GAAoB5+d,IAAI1kS,EAAS,gBAAiB4yP,KArEtD,0BAwEE,SAA2B5yP,EAAsB4yP,GAC/C0wgB,GAAoB5+d,IAAI1kS,EAAS,eAAgB4yP,KAzErD,4BA4EE,SAA6B5yP,EAAsB8B,GACjD4gwB,GAAAA,IAAqB1iwB,EAAS,kBAAmB8B,KA7ErD,+BAgFE,SAAgC9B,EAAsB8B,GACpD4gwB,GAAAA,IAAqB1iwB,EAAS,qBAAsB8B,KAjFxD,sBAoFE,SAAuB9B,EAA6ByL,GAAyC,IAAzBi0N,EAAwB,uDAAL,IACjFkkiB,EAAY5jwB,EAAU6jwB,GAAiB7jwB,GAASgZ,IAAM,EACtD8qvB,EACFn+uB,OAAOujB,aAAexmC,SAASimC,gBAAgBxB,WAAazkC,SAAS+lC,KAAKtB,WAAa,EAErF17B,IACFq4vB,GAAar4vB,EACbm4vB,GAAwBn4vB,GAG1B,IAAMpC,EAAOy6vB,EACP5isB,EAAK0isB,EAEXH,EAAmB/rkB,QAAQruL,EAAM63D,EAAIw+J,GAAU,SAAU59N,GACvDY,SAASimC,gBAAgBxB,UAAYrlC,EAErCY,SAAS+lC,KAAKtB,UAAYrlC,OApGhC,uBAuGE,SAAwB2J,EAAgBi0N,GACtC+jiB,EAAmB1+sB,SAAS,KAAMt5C,EAAQi0N,OAxG9C,KCGA,SAASqkiB,GAAOr7vB,EAAiBktP,GAC/B,IAAMrkD,GAAe7oM,EAAGm4H,eAAiBn+H,UAAU6uM,YAEnD,OAAKA,GAMLqkD,EAAYA,EAAUhtM,QAAQ,WAAY,OAAOzlB,cAE1CouK,EAAY9uE,iBAAiB/5H,EAAI,MAAM8iU,iBAAiB51E,IAPtD,GAmBX,SAASougB,GAAoBt7vB,EAAiBi+G,EAAW9mE,GACvD,IAGM/9C,EAHFyZ,EAAM,GAEV,IAAK7S,EAAGwB,aAAa,aAAey8G,KAAmB,IAAV9mE,EAiB3C,OAZAtkC,EAAM7S,EAAGyV,MAAMoiH,QACf73H,EAAGyV,MAAMoiH,QAAU,0DAEN,UAAT5Z,EACF7kH,EAAQ4G,EAAGsU,YACO,WAAT2pG,IACT7kH,EAAQ4G,EAAGuU,cAGbvU,EAAGyV,MAAMoiH,QAAUhlH,OAGLjD,IAAVxW,GACF4G,EAAG1H,aAAa,aAAe2lH,EAAM7kH,EAAM6M,YACpCknC,WAAW/zC,EAAM6M,aAEnB,EAGP,IAAMs1vB,EAAiBv7vB,EAAGwB,aAAa,aAAey8G,GACtD,OAAIs9oB,GAAqC,MAAnBA,EACbputB,WAAWoutB,QADpB,EAcJ,SAASC,GAAgBlkwB,GACvB,GAAIA,EAAQsqB,WAEV,IADA,IAAM5O,EAAI1b,EAAQsqB,WAAWrf,SACpBgB,EAAI,EAAGA,EAAIyP,EAAElb,OAAQyL,IAC5B,GAAIyP,EAAEzP,KAAOjM,EAAS,OAAOiM,EAGjC,OAAQ,EAIV,SAASk4vB,GAAkBnkwB,EAAsBypB,GAC/C,IAAM6tE,EAAI92B,QAAQ96D,UACZ+mH,EAAIn1B,EAAE2B,SAAW3B,EAAE+oJ,sBAEzB,SAAIrgP,IAAWA,EAAQyiN,UACdh2F,EAAE9rH,KAAKX,EAASypB,GAM3B,SAASo6uB,GAAiBn7vB,GAKxB,IAAKA,EAAG2tP,iBAAiB71P,OACvB,MAAO,CAACwY,IAAK,EAAGJ,KAAM,GAIxB,IAAMuC,EAAOzS,EAAGyT,wBACVyzH,EAAMlnI,EAAGm4H,cAAc0wE,YAC7B,OAAI3hE,EACK,CACL52H,IAAKmC,EAAKnC,IAAM42H,EAAI1mG,YACpBtwB,KAAMuC,EAAKvC,KAAOg3H,EAAIzmG,aAInBhuB,EA2DT,SAASmvI,KACP,OAAQ5nJ,SAAS8trB,kBAAoB9trB,SAASimC,iBAAiBxB,UAIjE,SAASi9tB,KACP,MAAO,CACL5yvB,MAAOmU,OAAOo8H,WACdtwI,OAAQkU,OAAOq8H,aAmBnB,SAASqinB,GAAiBrkwB,GACxB,QAAiC,IAAxBA,EAAQgd,aAA8C,IAAzBhd,EAAQid,cAIhD,SAASi/C,GAASyhE,EAA2Bt7E,EAAgB27E,GAEvDL,IAKJA,EAAQh4G,OAAO5iB,YAAW,WACxBs/C,IAIAs7E,OAAQrlH,IACP0lH,IAoBL,SAASsmoB,GAAgBtkwB,EAAsBypB,GAC7C,IAAMxe,EAlBR,SAA4BjL,EAAsBypB,GAChD,IAAKzpB,IAAYA,EAAQ8iH,WACvB,OAAO,KAIT,IADA,IAAM/zG,EAA6B,GAC1B9C,EAAI,EAAGA,EAAIjM,EAAQ8iH,WAAWtiH,OAAQyL,IAAK,CAClD,IAAM+S,EAAQhf,EAAQ8iH,WAAW72G,GAEV,IAAnB+S,EAAMk8D,UAAkBiprB,GAAkBnlvB,EAAsByK,IAClE1a,EAAOjO,KAAKke,GAIhB,OAAOjQ,EAIUw1vB,CAAmBvkwB,EAASypB,GAC7C,OAAOxe,EAAWA,EAAS,GAAK,KAclC,SAASu4N,GAAM96N,EAAiBilJ,EAAajS,EAAehtF,GAC1D,MACGhmD,GACQ,OAARilJ,IAAyC,IAAzB02mB,GAAiB37vB,IACzB,SAARilJ,IAA2C,IAAzB02mB,GAAiB37vB,IAHtC,CAQAgzI,EAAQA,GAAgB,IACxB,IAAI8onB,EAvMN,SAAgC97vB,GAC9B,OAAOs7vB,GAAoBt7vB,EAAI,UAAU,GAsMxB+7vB,CAAuB/7vB,GACpCg8vB,EAAyB,EACzBC,EAA4B,EAahC,GAXIjC,GAAAA,IAAqBh6vB,EAAI,iBAA4D,IAA1Cm6vB,GAAAA,IAAan6vB,EAAI,sBAC9Dm6vB,GAAAA,IAAan6vB,EAAI,oBAAqBg6vB,GAAAA,IAAqBh6vB,EAAI,gBAI/Dg6vB,GAAAA,IAAqBh6vB,EAAI,oBACoB,IAA7Cm6vB,GAAAA,IAAan6vB,EAAI,yBAEjBm6vB,GAAAA,IAAan6vB,EAAI,uBAAwBg6vB,GAAAA,IAAqBh6vB,EAAI,mBAGhEm6vB,GAAAA,IAAan6vB,EAAI,qBAAsB,CACzC,IAAMqF,EAAO80vB,GAAAA,IAAan6vB,EAAI,qBAC9Bg8vB,EAAiBvutB,SAASpoC,GAG5B,GAAI80vB,GAAAA,IAAan6vB,EAAI,wBAAyB,CAC5C,IAAMqF,EAAO80vB,GAAAA,IAAan6vB,EAAI,wBAC9Bi8vB,EAAoBxutB,SAASpoC,GAGnB,OAAR4/I,GAEFjlJ,EAAGyV,MAAMoiH,QAAU,oCAEfmkoB,GACFjB,GAAmB/rkB,QAAQ,EAAGgtkB,EAAgBhpnB,GAAO,SAAU55I,GAC7D4G,EAAGyV,MAAMy7B,WAAa8qtB,EAAiB5iwB,EAAQ,QAI/C6iwB,GACFlB,GAAmB/rkB,QAAQ,EAAGitkB,EAAmBjpnB,GAAO,SAAU55I,GAChE4G,EAAGyV,MAAM27B,cAAgB6qtB,EAAoB7iwB,EAAQ,QAIzD2hwB,GAAmB/rkB,QACjB,EACA8skB,GAAc,EACd9onB,GACA,SAAU55I,GACR4G,EAAGyV,MAAM1M,QAAU+yvB,GAAc,GAAK1iwB,EAAQ,QAEhD,WACE4G,EAAGyV,MAAM1M,OAAS,GAClB/I,EAAGyV,MAAMoB,QAAU,OAEK,oBAAbmvC,GACTA,QAIW,SAARi/F,IAETjlJ,EAAGyV,MAAMoiH,QAAU,oCAEfmkoB,GACFjB,GAAmB/rkB,QACjB,EACAgtkB,EACAhpnB,GACA,SAAU55I,GAER4G,EAAGyV,MAAMy7B,WAAa93C,EAAQ,QAEhC,WACE4G,EAAGyV,MAAMy7B,WAAa,MAKxB+qtB,GACFlB,GAAmB/rkB,QACjB,EACAitkB,EACAjpnB,GACA,SAAU55I,GACR4G,EAAGyV,MAAM27B,cAAgBh4C,EAAQ,QAEnC,WACE4G,EAAGyV,MAAM27B,cAAgB,MAK/B2ptB,GAAmB/rkB,QACjB,EACA8skB,GAAc,EACd9onB,GACA,SAAU55I,GACR4G,EAAGyV,MAAM1M,OAAS3P,EAAQ,QAE5B,WACE4G,EAAGyV,MAAM1M,OAAS,GAClB/I,EAAGyV,MAAMoB,QAAU,GACnB7W,EAAGyV,MAAMkkH,SAAW,GAEI,oBAAb3zE,GACTA,SAeV,SAASk2sB,GAAcC,GACrB,IAAI/iwB,EAzWN,SAA6BgjwB,GAC3B,IAAIluhB,EAAMn0G,iBAAiB//H,SAASimC,iBAAiB6iS,iBAAiBs5b,GAKtE,OAJIluhB,GAAOA,EAAIp2O,OAAS,IACtBo2O,EAAMA,EAAI91M,QAGL81M,EAmWsBmuhB,CAAoB,QAAUF,GAK3D,OAJI/iwB,IACFA,EAAQq0C,SAASr0C,EAAMg/B,SAGlBh/B,EAGT,SAASkjwB,GAA8BC,GACrC,IAAInjwB,EH3WN,SAAgBA,GACd,GAAqB,kBAAVA,EACT,OAAOA,EAGT,GAAKA,EAAL,CAKA,IAKIojwB,EALWpjwB,EACZ6M,WACAhB,MAAM,IACNvH,KAAI,SAACsC,GAAD,MAAgB,MAAPA,EAAaA,EAAK,OAC/ByI,KAAK,IACay3C,QAAQ,mBAAmB,SAAUsvC,GACxD,MAAO,IAAMA,EAAQhsD,UAAU,EAAGgsD,EAAQ13F,OAAS,GAAK,QAE1D,IACE,OAAOgb,KAAK+6E,MAAM2uqB,GAClB,SACA,SGsVUzqmB,CAAOwqmB,GACnB,GAAqB,kBAAVnjwB,EACT,OAAOmjwB,EAGT,IACIE,EAEAN,EAHErzvB,EAAQ4yvB,KAAc5yvB,MAExB4zvB,GAAoB,EAGxB,IAAK,IAAIl+vB,KAAOpF,GAEZ+iwB,EADU,YAAR39vB,EACW,EAEA09vB,GAAc19vB,IAAQ09vB,GAAc19vB,GAAOivC,SAASjvC,KAGjDsK,GAASqzvB,EAAaO,IACtCD,EAAYj+vB,EACZk+vB,EAAmBP,GAIvB,OAAOM,EAAYhC,GAA4BrhwB,EAAOqjwB,GAAarjwB,ECpZ9D,IAAMujwB,GAAb,+FAOE,SACE33vB,EACA6xB,GAIA8luB,EAAiB3+sB,MAAMh5C,GAAQ6xB,IAbnC,gCAgBE,SAAkC7xB,GAKhC,OAAO23vB,EAAiB3+sB,MAAMh5C,KArBlC,4CAwBE,SACEA,EACA43vB,EACAr+qB,GAEIo+qB,EAAiB3+sB,MAAMh5C,KAI3B23vB,EAAiB3+sB,MAAMh5C,GAAQ,IAH7B23vB,EAAiB3+sB,MAAMh5C,GAAM43vB,GAAar+qB,IA9BhD,qCAqCE,SAAuCv5E,EAAc43vB,GACnD,IAAMC,EAAcF,EAAiB3+sB,MAAMh5C,GAC3C,GAAK63vB,EAGL,OAAOA,EAAYD,KA1CvB,wCA6CE,SAA0C53vB,EAAc83vB,EAAkBhmgB,GACxE,IAAMv4K,EAAOo+qB,EAAiBI,wBAAwB/3vB,EAAM83vB,GACvDv+qB,IAILA,EAAKu4K,MAAQA,EACb6lgB,EAAiBK,+BAA+Bh4vB,EAAM83vB,EAAUv+qB,MApDpE,sBAuDE,SACEjnF,EACA0N,EACAghD,GAES,IADTg2O,EACQ,wDACF4ge,EAAYlC,GAAsB,SAClCr1vB,EAAO80vB,GAAAA,IAAa7iwB,EAAS0N,GAC7B63vB,EAAcx3vB,GAA4B,GAChDw3vB,EAAYzkwB,KAAKwkwB,GAEjBzC,GAAAA,IAAa7iwB,EAAS0N,EAAM63vB,GAE5B,IAAMt+qB,EAAkB,CACtBv5E,KAAMA,EACNghD,SAAUA,EACVg2O,IAAKA,EACLllC,OAAO,GAIT,OADA6lgB,EAAiBK,+BAA+Bh4vB,EAAM43vB,EAAWr+qB,GAC1Dq+qB,IA5EX,yBA+EE,SAA2BtlwB,EAAsB0N,EAAc83vB,GAC7D3C,GAAAA,UAAmB7iwB,EAAS0N,EAAM83vB,GACdH,EAAiB3+sB,MAAMh5C,WAKpC23vB,EAAiB3+sB,MAAMh5C,GAAM83vB,KAtFxC,qBAyFE,SAAsBxlwB,EAAsB0N,EAAc5G,EAAcpG,GACtE,IAKIilwB,EACAL,EANA/hlB,GAAc,EAClB,IAAKs/kB,GAAAA,IAAa7iwB,EAAS0N,GACzB,OAAO61K,EAOT,IAFA,IAAMx1K,EAAO80vB,GAAAA,IAAa7iwB,EAAS0N,GAC7B63vB,EAAcx3vB,GAA4B,GACvC9B,EAAI,EAAGA,EAAIs5vB,EAAY/kwB,OAAQyL,IAEtC,GADAq5vB,EAAYC,EAAYt5vB,GACpBo5vB,EAAiB3+sB,MAAMh5C,IAAS23vB,EAAiB3+sB,MAAMh5C,GAAM43vB,GAAY,CAC3E,IAAM7kwB,EAAU4kwB,EAAiB3+sB,MAAMh5C,GAAM43vB,GACzC7kwB,EAAQiN,OAASA,IACfjN,EAAQikS,IACNjkS,EAAQ++P,QACV6lgB,EAAiB3+sB,MAAMh5C,GAAM43vB,GAAW9lgB,OAAQ,EAChDmmgB,EAAallwB,EAAQiuD,SAAS/tD,KAAKT,KAAM4G,IAG3C6+vB,EAAallwB,EAAQiuD,SAAS/tD,KAAKT,KAAM4G,IAGxB,IAAf6+vB,IACFpilB,GAAc,IAKtB,OAAOA,IAvHX,iBA8HE,SAAkBvjL,EAAsB0N,EAAcklP,GACpDyygB,EAAiBO,SAAS5lwB,EAAS0N,EAAMklP,GAAU,KA/HvD,iBAkIE,SAAkB5yP,EAAsB0N,EAAc83vB,GACpDH,EAAiB3miB,YAAY1+N,EAAS0N,EAAM83vB,OAnIhD,KAAaH,GACJ3+sB,MAIH,GALO2+sB,GA0HG7suB,GAAK,SAAUx4B,EAAsB0N,EAAcklP,GAC/DyygB,GAAiBO,SAAS5lwB,EAAS0N,EAAMklP,GAAU,ICzHhD,IAAMizgB,GAAb,+EAGE,SAAkB3pE,EAAoB4pE,GAChCD,EAAY9ruB,IAAImiqB,IAIpB2pE,EAAYn/sB,MAAMwe,IAAIg3nB,EAAY4pE,KARtC,iBAWE,SAAkB5pE,GAChB,GAAK2pE,EAAY9ruB,IAAImiqB,GAGrB,OAAO2pE,EAAYn/sB,MAAM3mC,IAAIm8qB,KAfjC,oBAkBE,SAAqBA,GACd2pE,EAAY9ruB,IAAImiqB,IAIrB2pE,EAAYn/sB,MAAMonM,OAAOouc,KAvB7B,iBA0BE,SAAkBA,GAChB,OAAO2pE,EAAYn/sB,MAAM3sB,IAAImiqB,KA3BjC,6BA8BE,WACE,OAAO2pE,EAAYn/sB,UA/BvB,KAAam/sB,GACJn/sB,MAAsC,IAAIgxM,IAyCnD,IAAMqugB,GAAsC,CAC1CC,SAAS,EACT5shB,UAAW,SACX6shB,aAAc,iBACd1qnB,UAAW,OAGP2qnB,GAAAA,WAWJ,WAAYn6tB,EAAuBzxB,GAAyB,IAAD,4BAV3Dta,aAU2D,OAT3DmmwB,eAAqC,KASsB,KAR3DC,cAAoC,KAQuB,KAP3D9rvB,aAO2D,OAN3D+rvB,iBAM2D,OAL3D34vB,KAAe,GAK4C,KAJ3DirS,OAAiB,EAI0C,KAH3D2td,UAAoB,EAGuC,KAF3DC,aAAmC,KAEwB,KAgBnDxvtB,UAAY,WAClB,IAAMyvtB,EAAW,EAAKxoQ,WAAW,UAC3ByoQ,EAAU,EAAKzoQ,WAAW,SAEf,OAAbwoQ,GAAqBA,EAAShmwB,OAAS,GACzC8iwB,GAAoB9quB,GAAG91B,SAAS+lC,KAAM+9tB,EAAU,SAAS,SAAC9lwB,GACxDA,EAAE6G,iBACF,EAAK6+vB,cAAgB1jwB,SAASC,eAAe6jwB,GAC7C,EAAKE,aAIO,OAAZD,GAAoBA,EAAQjmwB,OAAS,GACvC8iwB,GAAoB9quB,GAAG91B,SAAS+lC,KAAMg+tB,EAAS,SAAS,SAAC/lwB,GACvDA,EAAE6G,iBACF,EAAKg/vB,aAAe7jwB,SAASC,eAAe8jwB,GAE5C,EAAKxmZ,YAjCgD,KAsCnD1+V,QAAU,WAChB,IAAM/P,EAAQu0D,OAAO,EAAKi4b,WAAW,UAC/BziX,EAAYx1E,OAAO,EAAKi4b,WAAW,cAGnC2oQ,EAAe,EAAK3mwB,QAAQuB,UAAU0d,SAAvB,UAAmC,EAAK3E,QAAQ8+N,UAAhD,QACfwthB,EAAiB7gsB,OAAOrjE,SAAS+lC,KAAKv+B,aAAd,yBAA6C,EAAKwD,KAAlD,OAG5B,EAAKirS,OADc,IAAjBgud,GAA4C,OAAnBC,GAOO,IAAhC,EAAK5oQ,WAAW,aAClB,EAAKh+f,QAAQuB,UAAUC,IAAI,EAAK8Y,QAAQ8+N,WACxC,EAAKp5O,QAAQuB,UAAUC,IAAvB,UAA8B,EAAK8Y,QAAQ8+N,UAA3C,YAAwD79F,IACxDmnnB,GAAAA,IAAqB,EAAK1iwB,QAAS,QAASwR,GAAO,GAEnD,EAAK80vB,UAAYnwtB,SAAS3kC,KAE1BkxvB,GAAAA,IAAqB,EAAK1iwB,QAAS,QAAS,IAC5C,EAAKA,QAAQuB,UAAUG,OAAO,EAAK4Y,QAAQ8+N,WAC3C,EAAKp5O,QAAQuB,UAAUG,OAAvB,UAAiC,EAAK4Y,QAAQ8+N,UAA9C,YAA2D79F,IAC3D,EAAK0kO,UA/DkD,KAmEnD+9I,WAAa,SAACtwf,GACpB,IAAMoS,EAAO,EAAK9f,QAAQkK,aAAb,yBAA4CwD,IACzD,GAAIoS,EAAM,CACR,IAAIhe,EAAQkjwB,GAA8BllvB,GAC1C,OAAc,OAAVhe,GAAoC,SAAlBikE,OAAOjkE,KAGb,OAAVA,GAAoC,UAAlBikE,OAAOjkE,KAKxBA,EAEP,IAAMokP,EAAam9gB,GAAmB31vB,GAChCqX,EAASo+uB,GAA4B,EAAK7ovB,QAAS4rO,GACzD,OAAInhO,EACKigvB,GAA8BjgvB,GAE9B,MAtF8C,KA2FnD2hvB,QAAU,YACmD,IAA/DrB,GAAAA,QAAyB,EAAKrlwB,QAAS,sBAIvC,EAAK24S,MACP,EAAKsnE,QAEL,EAAKtD,QAGP0oZ,GAAAA,QAAyB,EAAKrlwB,QAAS,uBAtGkB,KAyGnDigX,MAAQ,YACmD,IAA7DolZ,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAI3C,EAAK24S,OAAQ,EACb,EAAKkud,iBACLnkwB,SAAS+lC,KAAKy7E,gBAAd,yBAAgD,EAAKx2G,OACrDhL,SAAS+lC,KAAKy7E,gBAAd,kBACA,EAAKlkH,QAAQuB,UAAUG,OAAvB,UAAiC,EAAK4Y,QAAQ8+N,UAA9C,QAC0B,MAAtB,EAAKgthB,eACP,EAAKA,cAAc7kwB,UAAUG,OAAO,UAGtC2jwB,GAAAA,QAAyB,EAAKrlwB,QAAS,4BAvHkB,KA0HnD28W,MAAQ,YACmD,IAA7D0oZ,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAI3C,EAAK24S,OAAQ,EACb,EAAKmud,iBACLpkwB,SAAS+lC,KAAKznC,aAAd,yBAA6C,EAAK0M,MAAQ,MAC1DhL,SAAS+lC,KAAKznC,aAAa,iBAAkB,MAC7C,EAAKhB,QAAQuB,UAAUC,IAAvB,UAA8B,EAAK8Y,QAAQ8+N,UAA3C,QAC2B,OAAvB,EAAKgthB,eACP,EAAKA,cAAc7kwB,UAAUC,IAAI,UAGnC6jwB,GAAAA,QAAyB,EAAKrlwB,QAAS,qBAxIkB,KA2InD8mwB,eAAiB,WACvB,IAAmC,IAA/B,EAAK9oQ,WAAW,WAAqB,CACvC,EAAKmoQ,eAAiBzjwB,SAAS4gC,cAAc,OAC7C,IAAMyjuB,EAAgBhD,GAAO,EAAK/jwB,QAAS,WAC3C,GAAI+mwB,EAAe,CACjB,IAAMC,EAAgB7wtB,SAAS4wtB,GAAiB,EAChDrE,GAAAA,IAAqB,EAAKyD,eAAgB,UAAWa,GAEvDtkwB,SAAS+lC,KAAKxoB,OAAO,EAAKkmvB,gBAC1B,IAAMc,EAAqB,EAAKjpQ,WAAW,iBACvCipQ,GACF,EAAKd,eAAe5kwB,UAAUC,IAAIylwB,EAAmBt4vB,YAEvD,EAAKw3vB,eAAevlwB,iBAAiB,SAAS,SAACF,GAC7CA,EAAE6G,iBACF,EAAK04W,aA1JgD,KA+JnD4mZ,eAAiB,WACK,OAAxB,EAAKV,gBAA2B,EAAKA,eAAe77uB,YACtD,EAAK67uB,eAAe77uB,WAAW+iC,YAAY,EAAK84sB,iBAjKO,KAqKnDe,cAAgB,WACtB,MAAgD,SAAzCnhsB,OAAO,EAAKi4b,WAAW,cAA2B,OAAS,SAtKT,KAyKnDmpQ,UAAY,WAClB,IAAI31vB,EAAQ,EAAKwsf,WAAW,SAK5B,OAJIxsf,GAAmB,SAAVA,IACXA,EAAQuyvB,GAAO,EAAK/jwB,QAAS,UAGxBwR,GA/KkD,KAqLpD8jP,OAAS,WACd,EAAKoxgB,WAtLoD,KAyLpDhltB,KAAO,WACZ,EAAKi7T,SA1LoD,KA6LpDvyS,KAAO,WACZ,EAAK61S,SA9LoD,KAiMpDmnZ,QAAU,WACf,OAAO,EAAKzud,OAlM6C,KAqMpDp6R,OAAS,WACd,EAAKgD,WAtMoD,KAyMpD8lvB,UAAY,WACjB,OAAO,EAAKrnwB,SA1M6C,KA8MpDw4B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IA/MU,KAkNpDikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAnNS,KAsNpD83B,IAAM,SAAC7qB,EAAc83vB,GAC1B,OAAOH,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM83vB,IAvNS,KA0NpD17vB,QAAU,SAAC4D,EAAcgN,GAC9B,OAAO2qvB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,EAAMgN,IA1NpDxa,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAOumtB,GAAsBzrvB,GACnDpa,KAAKmmwB,YAAcjD,GAAsB,UACzCljwB,KAAKimwB,eAAiB,KACtBjmwB,KAAKwN,KAAOxN,KAAKF,QAAQkK,aAAa,wBAA0B,GAChEhK,KAAKy4S,OAAQ,EACbz4S,KAAKkmwB,cAAgB,KAErBlmwB,KAAK62C,YAEL72C,KAAKqhB,UAELskvB,GAAY3gsB,IAAIhlE,KAAKF,QAAQmK,GAAIjK,MA2RlC,OA1RA,4CAwOD,SAA8BupB,GACX/mB,SAAS+lC,KAAK7iC,iBAAiB6jB,GACvCtpB,SAAQ,SAACH,GAChB,IAAMI,EAAOJ,EACTi4tB,EAASiuC,EAAgBj8sB,YAAY7pD,EAAK+J,IACzC8ttB,IACHA,EAAS,IAAIiuC,EAAgB9lwB,EAAM2lwB,KAErC9tC,EAAOj4tB,QAAUI,EACjB63tB,EAAO7tpB,4CAoBX,WAEEzkD,OAAO/kB,iBAAiB,UAAU,WAEhCs7D,GADIyhE,WAGF,WAEmBj7H,SAAS+lC,KAAK7iC,iBAAiB,2BACvCzF,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACP4F,EAAW43vB,EAAgBj8sB,YAAY7pD,EAAK+J,IAC9CmE,IACFA,EAAStO,QAAUI,EACnBkO,EAASiQ,eAIf,YAGL,EAnTG2nvB,GAAAA,GA0OUoB,WAAa,SAACpxgB,GAC1B,OAAO2vgB,GAAY9ruB,IAAIm8N,IA3OrBgwgB,GA8OUj8sB,YAAc,SAACisM,GAC3B,OAAO2vgB,GAAY9lvB,IAAIm2O,IA/OrBgwgB,GAkPUqB,QAAU,WACD1B,GAAY2B,kBACpBrnwB,SAAQ,SAACsnwB,GACpBA,EAAGr9rB,WArPH87rB,GAyPUwB,UAAY,WACH7B,GAAY2B,kBACpBrnwB,SAAQ,SAACsnwB,GACpBA,EAAGlpvB,aA5PH2nvB,GA+QUyB,cAAgB,WAE5BrE,GAAoB9quB,GAAG91B,SAAS+lC,KAAM,kCAAmC,SAAS,WAEhF,IAAMzoC,EAnRNkmwB,GAmRqBj8vB,QAAQ,2BAC7B,GAAIjK,EAAS,CACX,IAAMi4tB,EAASiuC,GAAgBj8sB,YAAYjqD,GACvCi4tB,GAAUA,EAAOmvC,WACnBnvC,EAAO7tpB,YAvRX87rB,GAqTUpc,UAAY,WACxBoc,GAAgB0B,gBAAgB,2BAChC1B,GAAgB2B,qBAChB3B,GAAgByB,iBAxTdzB,GA2TU4B,iBAAmB,WAC/B5B,GAAgB0B,gBAAgB,2BAChC1B,GAAgBqB,UAChBrB,GAAgBwB,YAChBxB,GAAgByB,iBC7WpB,ICDMI,GAA2B,GAE3BC,GAA+C,CACnDhziB,cAAe,cACfiziB,cAAe,wBACfC,WAAY,qBACZC,aAAc,uBACdC,YAAa,wCACbC,YAAa,wCACbC,YAAa,wBAGTC,GAAAA,WAaJ,WAAYx8tB,EAAuB1qB,EAA8BmnvB,GAA+B,IAAD,4BAZ/FxowB,aAY+F,OAX/F45X,kBAW+F,OAV/FmvT,oBAU+F,OAT/F0/E,mBAS+F,OAR/F5nhB,mBAQ+F,OAP/F6nhB,mBAO+F,OAN/F5msB,IAAc,GAMiF,KAL/FxnD,aAK+F,OAJ/FsglB,aAI+F,OAH/F7oD,SAG+F,OAF/FjwiB,MAAgB,GAE+E,KAmCvFm3f,QAAU,SAACv4f,GAGjB,GAFAA,EAAE6G,iBAEwB,OAAtB,EAAKqyX,cAAyB,EAAKA,aAAa9hT,OAAS,EAAK8hT,aAAa9hT,MAAM,GAAI,CAEvF,IAA0E,IAAtEutrB,GAAAA,QAAyB,EAAKrlwB,QAAS,uBAAwBU,GACjE,OAGF,IAAMiowB,EAAS,IAAI1wrB,WAEnB0wrB,EAAOzwrB,OAAS,SAACx3E,GACX,EAAKqorB,gBAAkBrorB,EAAEoG,QAC3B,EAAKiirB,eAAe5qqB,MAAM8iO,YAAY,mBAAtC,eAAkEvgP,EAAEoG,OAAOiI,OAA3E,QAIJ45vB,EAAOvwrB,cAAc,EAAKwhT,aAAa9hT,MAAM,IAC7C,EAAK93E,QAAQuB,UAAUC,IAAI,uBAC3B,EAAKxB,QAAQuB,UAAUG,OAAO,qBAG9B2jwB,GAAAA,QAAyB,EAAKrlwB,QAAS,wBAAyBU,KAzD2B,KA6DvFg+R,QAAU,SAACh+R,GACjBA,EAAE6G,kBAGwE,IAAtE89vB,GAAAA,QAAyB,EAAKrlwB,QAAS,uBAAwBU,KAInE,EAAKV,QAAQuB,UAAUG,OAAO,uBAC9B,EAAK1B,QAAQuB,UAAUG,OAAO,qBAC9B,EAAK1B,QAAQme,MAAM8iO,YAAY,mBAAoB,EAAKn/K,KACpD,EAAK83T,eACP,EAAKA,aAAa93X,MAAQ,IAGD,OAAvB,EAAK4mwB,gBACP,EAAKA,cAAc5mwB,MAAQ,KAI7BujwB,GAAAA,QAAyB,EAAKrlwB,QAAS,yBAA0BU,KAjF4B,KAoFvFijpB,QAAU,SAACjjpB,GACjBA,EAAE6G,kBAGwE,IAAtE89vB,GAAAA,QAAyB,EAAKrlwB,QAAS,uBAAwBU,KAInE,EAAKV,QAAQuB,UAAUG,OAAO,uBAC9B,EAAK1B,QAAQuB,UAAUC,IAAI,qBACvB,EAAKunrB,gBACP,EAAKA,eAAe5qqB,MAAM8iO,YAAY,mBAAoB,QAGxD,EAAK24I,eACP,EAAKA,aAAa93X,MAAQ,IAGD,OAAvB,EAAK4mwB,gBACP,EAAKA,cAAc5mwB,MAAQ,KAI7BujwB,GAAAA,QAAyB,EAAKrlwB,QAAS,wBAAyBU,KA3G6B,KA0HxF83B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IA3H8C,KA8HxFikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IA/H6C,KAkIxF83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IAnI6C,KAsIxFx7vB,QAAU,SAAC4D,EAAcgN,GAC9B,OAAO2qvB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,EAAMgN,IArIpDxa,KAAKoa,QAAUtT,OAAOw4C,OAAOuotB,GAA0B1mvB,GACvDnhB,KAAK06lB,QAAU4tK,EACftowB,KAAK6xiB,IAAMqxN,GAAsBljwB,KAAK06lB,QAAQ5lY,eAG9C90N,KAAKF,QAAU+rC,EACf7rC,KAAK05X,aAAe15X,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQstK,YAC5DhowB,KAAK6orB,eAAiB7orB,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQutK,cAC9DjowB,KAAKuowB,cAAgBvowB,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQwtK,aAC7DlowB,KAAK2gP,cAAgB3gP,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQytK,aAC7DnowB,KAAKwowB,cAAgBxowB,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQ0tK,aACzDpowB,KAAK6orB,iBACP7orB,KAAK4hE,IAAMiisB,GAAO7jwB,KAAK6orB,eAAgB,oBAIzC7orB,KAAKq/B,WAELsjuB,GAAAA,IAAa3iwB,KAAKF,QAASE,KAAK06lB,QAAQ5lY,cAAe90N,aACxD,gCAED,WACEA,KAAKF,QAAQY,iBAAiB,SAAUV,KAAK+4f,SACzC/4f,KAAKuowB,eACPvowB,KAAKuowB,cAAc7nwB,iBAAiB,QAASV,KAAKw+R,SAGhDx+R,KAAK2gP,eACP3gP,KAAK2gP,cAAcjgP,iBAAiB,QAASV,KAAKw+R,wCAmFtD,WACE,OAAOx+R,KAAK05X,eACb,wBAED,WACE,OAAO15X,KAAKF,cAnIVuowB,GAAAA,GAwJUt+sB,YAAc,SAC1BvhD,GAEqC,IADrCssN,EACoC,uDADZgziB,GAAyBhziB,cAE3C4ziB,EAAa/F,GAAAA,IAAan6vB,EAAIssN,GACpC,GAAI4ziB,EACF,OAAOA,GA9JPL,GAkKUX,gBAAkB,WAI1B,IAHJn+uB,EAGG,uDAHgBu+uB,GAAyBC,cAC5C3tvB,EAEG,uDAF2BytvB,GAC9BntK,EACG,uDAD2BotK,GAExBj9sB,EAAWroD,SAAS+lC,KAAK7iC,iBAAiB6jB,GAChDshC,EAAS5qD,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACTkgwB,EAAaL,GAAoBt+sB,YAAY7pD,GAC5CwowB,IACHA,EAAa,IAAIL,GAAoBnowB,EAAMka,EAASsglB,QA5KtD2tK,GAiLUM,cAAgB,WAIS,IAHrCp/uB,EAGoC,uDAHjBu+uB,GAAyBC,cAC5C3tvB,EAEoC,uDAFNytvB,GAC9BntK,EACoC,uDADNotK,GAExBhowB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACT4owB,EAAaL,GAAoBt+sB,YAAY7pD,GAIjD,OAHKwowB,IACHA,EAAa,IAAIL,GAAoBnowB,EAAMka,EAASsglB,IAE/CguK,IA/LLL,GAkMUze,UAAY,WAAgE,IAA/DrguB,EAA8D,uDAA3Cu+uB,GAAyBC,cACrEM,GAAoBX,gBAAgBn+uB,IAnMlC8+uB,GAsMUT,iBAAmB,WAAgE,IAA/Dr+uB,EAA8D,uDAA3Cu+uB,GAAyBC,cAC5EM,GAAoBX,gBAAgBn+uB,IC/NjC,IAAMq/uB,GAAb,+EAOE,SAAkBp7vB,GAChB,IAAIurF,EAAUv2F,SAAS4oN,OAAOzpM,MAC5B,IAAIqnC,OAAO,WAAax7C,EAAKk7C,QAAQ,+BAAgC,QAAU,aAEjF,OAAOqwC,EAAUwyH,mBAAmBxyH,EAAQ,SAAM3gF,IAXtD,iBAuBE,SAAkB5K,EAAc5L,EAAkCinwB,GAChE,IAAMzuvB,EAAO,GACX9M,KAAM,KAEHu7vB,GAGDzuvB,EAAQ6wM,mBAAmB38I,OAC7Bl0D,EAAQ6wM,QAAU7wM,EAAQ6wM,QAAQ69iB,eAGpC,IAAIC,EAAgBjljB,mBAAmBt2M,GAAQ,IAAMs2M,mBAAmBliN,GAExE,IAAK,IAAIitY,KAAaz0X,EAAS,CAC7B2uvB,GAAiB,KAAOl6X,EACxB,IAAIntF,EAActnS,EAAQy0X,IACN,IAAhBntF,IACFqnd,GAAiB,IAAMrnd,GAI3Bl/S,SAAS4oN,OAAS29iB,IA5CtB,oBAoDE,SAAqBv7vB,GACnBo7vB,EAAgB5jsB,IAAIx3D,EAAM,GAAI,CAC5B,WAAY,QAtDlB,KCeMw7vB,GAAsC,CAC1CC,WAAW,GAGPC,GAAAA,WAKJ,WAAYr9tB,EAAuBzxB,GAAyB,IAAD,4BAJ3Dta,aAI2D,OAH3Dsa,aAG2D,OAF3DnQ,QAE2D,OASnD07H,UAAY,SAACn4H,GACnB,IAA4D,IAAxD,EAAK1N,QAAQm/S,aAAa,kBAAoBzxS,GAAgB,CAChE,IACI5L,EAAiCkjwB,GADxB,EAAKhlwB,QAAQkK,aAAa,kBAAoBwD,IAAS,IAQpE,OANc,OAAV5L,GAAoC,SAAlBikE,OAAOjkE,GAC3BA,GAAQ,EACW,OAAVA,GAAoC,UAAlBikE,OAAOjkE,KAClCA,GAAQ,GAGHA,EAEP,IAAMokP,EAAam9gB,GAAmB31vB,GAChCqX,EAASo+uB,GAA4B,EAAK7ovB,QAAS4rO,GACzD,OAAInhO,EACKigvB,GAA8BjgvB,GAE9B,MA1B8C,KA+BnDskvB,cAAgB,WACtB,OAAI,EAAKxjoB,UAAU,UACV,SAEL,EAAKA,UAAU,cACV,aAEL,EAAKA,UAAU,cACV,kBADT,GAtCyD,KA2CnDyjoB,cAAgB,WACtB,IAAI73vB,EAA0B2yvB,KAAc3yvB,OACtCynkB,EAAe,EAAKrzc,UAAU,gBAC9B0joB,EAAW,EAAK1joB,UAAU,YAC1Bp6H,EAAS,EAAKo6H,UAAU,UAG9B,GAAqB,OAAjBqzc,EAAuB,CACzB,IAAMnuhB,EAAWroD,SAASkD,iBAAiBszkB,GAC3C,GAAInuhB,GAAYA,EAASvqD,OAAS,EAChC,IAAK,IAAIyL,EAAI,EAAGyrC,EAAMqT,EAASvqD,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CACnD,IAAMjM,EAAU+qD,EAAS9+C,GACzB,IAAkC,IAA9Bo4vB,GAAiBrkwB,GAArB,CAIAyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,WAC3CyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,eAC3CyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,kBAE3C,IAAMwpwB,EAAYzF,GAAO/jwB,EAAS,cAC9BwpwB,IACF/3vB,GAAkB0kC,SAASqztB,IAG7B,IAAMC,EAAe1F,GAAO/jwB,EAAS,iBACjCypwB,IACFh4vB,GAAkB0kC,SAASsztB,MAOnC,GAAiB,OAAbF,EAAmB,CACrB,IAAIx+sB,EAAWroD,SAASkD,iBAAiB2jwB,GACzC,GAAIx+sB,GAAYA,EAASvqD,OAAS,EAChC,IAAK,IAAIyL,EAAI,EAAGyrC,EAAMqT,EAASvqD,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CACnD,IAAMjM,EAAU+qD,EAAS9+C,GAEzB,GAAKo4vB,GAAiBrkwB,GAAtB,CAIAyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,eAC3CyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,kBAC3CyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,gBAC3CyR,GAAkB0kC,SAAS4ttB,GAAO/jwB,EAAS,mBAE3C,IAAMwpwB,EAAYzF,GAAO/jwB,EAAS,cAC9BwpwB,IACF/3vB,GAAkB0kC,SAASqztB,IAG7B,IAAMC,EAAe1F,GAAO/jwB,EAAS,iBACjCypwB,IACFh4vB,GAAkB0kC,SAASsztB,MAOpB,OAAXh+vB,IACFgG,GAAkB0kC,SAAS1qC,IAG7BgG,GAAkB0kC,SAAS4ttB,GAAO,EAAK/jwB,QAAS,eAChDyR,GAAkB0kC,SAAS4ttB,GAAO,EAAK/jwB,QAAS,kBAEhD,IAAMwpwB,EAAYzF,GAAO,EAAK/jwB,QAAS,cACnCwpwB,IACF/3vB,GAAkB0kC,SAASqztB,IAG7B,IAAMC,EAAe1F,GAAO,EAAK/jwB,QAAS,iBAO1C,OANIypwB,IACFh4vB,GAAkB0kC,SAASsztB,IAG7Bh4vB,EAASs0D,OAAOt0D,GAAU,MA3H+B,KAgInDi4vB,YAAc,WACpB,IAAIj4vB,EAAS,EAAKsrI,YACd4snB,EAAa,EAAKN,gBAGP,OAAX53vB,GAAmBA,EAAOjR,OAAS,EACrCkiwB,GAAAA,IAAqB,EAAK1iwB,QAAS2pwB,EAAYl4vB,GAE/CixvB,GAAAA,IAAqB,EAAK1iwB,QAAS2pwB,EAAY,KAxIQ,KA4InDC,WAAa,WACnB,IAAqC,IAAjC,EAAK/joB,UAAU,eAA0B,EAAK17H,GAAI,CACpD,IAAMmhN,EAASw9iB,GAAgB/ovB,IAAI,EAAK5V,GAAK,MAC7C,GAAImhN,EAAQ,CACV,IAAI9xI,EAAMrjC,SAASm1K,GAEf9xI,EAAM,IACR,EAAKx5E,QAAQmnC,UAAYqyC,MAnJ0B,KAyJnDqwrB,mBAAqB,YACU,IAAjC,EAAKhkoB,UAAU,eAA0B,EAAK17H,GAChD,EAAKnK,QAAQY,iBAAiB,SAAU,EAAKkpwB,eAE7C,EAAK9pwB,QAAQK,oBAAoB,SAAU,EAAKypwB,gBA7JO,KAiKnDA,cAAgB,WACtB,IAAMC,EAAW,EAAK5/vB,GAAK,KAC3B2+vB,GAAgB5jsB,IAAI6ksB,EAAU,EAAK/pwB,QAAQmnC,UAAW,KAnKG,KAsKnD6iuB,qBAAuB,WAC7B,EAAKhqwB,QAAQK,oBAAoB,SAAU,EAAKypwB,gBAvKS,KA0KnDG,YAAc,WACpB,IAAMC,EAAY,EAAKb,gBACnBa,GACFxH,GAAAA,IAAqB,EAAK1iwB,QAASkqwB,EAAW,KA7KS,KAoLpD3rvB,OAAS,YAGmB,IAA/B,EAAKsnH,UAAU,aACd,EAAK7lI,QAAQm/S,aAAa,4BAM3B,EAAK8qd,cACL,EAAKD,yBALL,EAAKN,cACL,EAAKG,qBACL,EAAKD,eA5LkD,KAmMpD7snB,UAAY,WACjB,IAAM4snB,EAAa,EAAKN,gBAClB53vB,EAAS,EAAKo0H,UAAU8joB,GAAc,IAC5C,OAAIl4vB,aAAkBy6iB,SACbz6iB,EAAO9Q,KAAK8Q,GACC,OAAXA,GAAqC,kBAAXA,GAAgD,SAAzBA,EAAO0xB,cAC1D,EAAKmmuB,gBAEL73vB,GA3MgD,KA+MpDglI,WAAa,WAClB,OAAO,EAAKz2I,SA/MZE,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAO0ptB,GAAsB5uvB,GACnDpa,KAAKiK,GAAKjK,KAAKF,QAAQkK,aAAa,OAAS,GAC7ChK,KAAKqe,SAELskvB,GAAAA,IAAa3iwB,KAAKF,QAAS,SAAUE,MAoRtC,OAnRA,uCA6MD,SAAyBF,GACvB,OAAO6iwB,GAAAA,IAAa7iwB,EAAS,YAC9B,yBAED,SAA0BA,GACxB,GAAgB,OAAZA,GAAoBopwB,EAAgB9B,WAAWtnwB,GAAU,CAC3D,IAAM+N,EAAO80vB,GAAAA,IAAa7iwB,EAAS,UACnC,GAAI+N,EACF,OAAOA,kCAMb,SAA8B0b,GACX/mB,SAAS+lC,KAAK7iC,iBAAiB6jB,GACvCtpB,SAAQ,SAACH,GAChB,IAAMI,EAAOJ,EACT4mB,EAASwivB,EAAgBn/sB,YAAY7pD,GACpCwmB,IACHA,EAAS,IAAIwivB,EAAgBhpwB,EAAM8owB,UAGxC,wBAED,cAAqE,uBAErE,WAAmE,IAA3CppvB,EAA0C,uDAA3B,0BACrCspvB,EAAgBxB,gBAAgB9nvB,GAChCspvB,EAAgB3svB,WACjB,8BAaD,WAA0E,IAA3CqD,EAA0C,uDAA3B,0BAC5CspvB,EAAgBxB,gBAAgB9nvB,KACjC,uBAED,WACmBpd,SAAS+lC,KAAK7iC,iBAAiB,2BACvCzF,SAAQ,SAACH,GAChB,IAAMsO,EAAW86vB,EAAgBn/sB,YAAYjqD,GACzCsO,GACFA,EAASiQ,cAGd,oBAED,WAEEoH,OAAO/kB,iBAAiB,UAAU,WAEhCs7D,GADIyhE,WAGF,WAEEyroB,EAAgB1B,cAElB,YAGL,EA/RG0B,GAAAA,GAyPUvjjB,eAAiB,SAC7B7lN,GAEiC,IADjCsa,EACgC,uDADP4uvB,GAErBtivB,EAASwivB,GAAgBn/sB,YAAYjqD,GAIzC,OAHK4mB,IACHA,EAAS,IAAIwivB,GAAgBppwB,EAASsa,IAEjCsM,GCtQX,IAAMujvB,GAA6C,CACjD1+vB,OAAQ,IACRiwI,MAAO,KAGH0unB,IAAAA,EAAAA,EAAAA,IAKJ,WAAYr+tB,EAAuBzxB,GAA6B,IAAD,4BAJ/Dta,aAI+D,OAH/Dsa,aAG+D,OAF/D+rvB,iBAE+D,OAYvDtvtB,UAAY,WAElBpxB,OAAO/kB,iBAAiB,UAAU,WAChCs7D,GAFEyhE,WAEc,WACd,EAAKj5E,gBAIT,EAAK1kD,QAAQY,iBAAiB,SAAS,SAACF,GACtCA,EAAE6G,iBACF,EAAK8iwB,UAtBsD,KA0BvD3ltB,QAAU,WAChB,IAAMj5C,EAAS0qC,SAAS,EAAK6nd,WAAW,WAC5B1zW,KACF7+I,EACH/I,SAAS+lC,KAAK02Q,aAAa,sBAC9Bz8S,SAAS+lC,KAAKznC,aAAa,oBAAqB,MAG9C0B,SAAS+lC,KAAK02Q,aAAa,sBAC7Bz8S,SAAS+lC,KAAKy7E,gBAAgB,sBAnC2B,KAwCvDmmpB,IAAM,WACZ,IAAM3unB,EAAQvlG,SAAS,EAAK6nd,WAAW,UACvCylQ,GAAmBt8tB,UAAU,EAAGu0G,IA1C6B,KA6CvDsiX,WAAa,SAACtwf,GACpB,IAAMoS,EAAO,EAAK9f,QAAQkK,aAAb,4BAA+CwD,IAC5D,GAAIoS,EAAM,CACR,IAAMhe,EAAQkjwB,GAA8BllvB,GAC5C,OAAiB,OAAVhe,GAAoC,SAAlBikE,OAAOjkE,GAGlC,IAAMokP,EAAam9gB,GAAmB31vB,GAChCqX,EAASo+uB,GAA4B,EAAK7ovB,QAAS4rO,GACzD,OAAInhO,EACKigvB,GAA8BjgvB,GAGhC,MA1DsD,KAkExDkrtB,GAAK,WACV,OAAO,EAAKo6B,OAnEiD,KAsExD5znB,WAAa,WAClB,OAAO,EAAKz2I,SAtEZE,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAO2qtB,GAAyB7vvB,GACtDpa,KAAKmmwB,YAAcjD,GAAsB,aAGzCljwB,KAAK62C,YAGL8rtB,GAAAA,IAAa3iwB,KAAKF,QAAS,YAAaE,SAdtCkqwB,GAgFUngtB,YAAc,SAACvhD,GAC3B,IAAMy+B,EAAY07tB,GAAAA,IAAan6vB,EAAI,aACnC,GAAIy+B,EACF,OAAOA,GAnFPijuB,GAuFUxC,gBAAkB,SAACn+uB,GACd/mB,SAAS+lC,KAAK7iC,iBAAiB6jB,GACvCtpB,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACTy+B,EAAYijuB,GAAmBngtB,YAAY7pD,GAC1C+mC,IACHA,EAAY,IAAIijuB,GAAmBhqwB,EAAM+pwB,SA7F3CC,GAkGUvB,cAAgB,SAC5Bp/uB,GAEoC,IADpCnP,EACmC,uDADN6vvB,GAEvBnqwB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACTmnC,EAAYijuB,GAAmBngtB,YAAY7pD,GAI/C,OAHK+mC,IACHA,EAAY,IAAIijuB,GAAmBhqwB,EAAMka,IAEpC6sB,IA/GLijuB,GAkHUtgB,UAAY,WACxBsgB,GAAmBxC,gBAAgB,+BAnHjCwC,GAsHUtC,iBAAmB,WAC/BsC,GAAmBxC,gBAAgB,+BAvHjCwC,GA0HUE,MAAQ,WACpB7G,GAAmBt8tB,UAAU,EAAGgjuB,GAAwBzunB,QC9H5D,IAAM6unB,GAAyC,CAC7C1iwB,WAAY,EACZ28N,WAAW,EACXgmiB,eAAgB,OAChBC,mBAAoB,wDACpBC,uBAAwB,wDAGpBC,GAAAA,WAYJ,WAAY5+tB,EAAuBzxB,GAA2B,IAAD,8BAX7Dta,aAW6D,OAV7Dsa,aAU6D,OAT7D+rvB,iBAS6D,OAR7D1vjB,WAQ6D,OAP7Di0jB,aAO6D,OAN7DC,aAM6D,OAL7DC,eAK6D,OAJ7DC,iBAA2B,EAIkC,KAH7DC,gBAA0B,EAGmC,KAF7DC,iBAA2B,EAEkC,KA4BrDC,MAAQ,SAACnqwB,GACfskwB,GAAAA,QAAyB,EAAKrlwB,QAAS,qBAEnCe,IAAU,EAAKkqwB,kBAAoBlqwB,EAAQ,EAAKgqwB,kBAAoBhqwB,EAAQ,IAKhFA,EAAQo1C,SAASp1C,EAAM4N,YAEvB,EAAKq8vB,gBAAkB,EAAKC,iBAC5B,EAAKA,iBAAmBlqwB,EAGxB,EAAKoqwB,YAEL9F,GAAAA,QAAyB,EAAKrlwB,QAAS,wBA5CoB,KA+CrDorwB,aAAe,WAAO,IAAD,IAC3B,YAAKR,eAAL,SAAchqwB,iBAAiB,SAAS,SAACF,GACvCA,EAAE6G,iBAEF89vB,GAAAA,QAAyB,EAAKrlwB,QAAS,kBAAmBU,MAG5D,YAAKmqwB,eAAL,SAAcjqwB,iBAAiB,SAAS,SAACF,GACvCA,EAAE6G,iBAEF89vB,GAAAA,QAAyB,EAAKrlwB,QAAS,sBAAuBU,MAGhE4iwB,GAAoB9quB,GAAG,EAAKx4B,QAAS,kCAAmC,SAAS,SAACU,GAGhF,GAFAA,EAAE6G,iBAEE,EAAKovM,OAAS,EAAKA,MAAMn2M,OAAS,EACpC,IAAK,IAAIyL,EAAI,EAAGA,EAAI,EAAK0qM,MAAMn2M,OAAQyL,IACrC,GAAK,EAAK0qM,MAAM1qM,KAAuB,EAAKjM,QAAS,CACnD,IAAIe,EAAQkL,EAAI,EAEVo/vB,EAAgB,EAAKC,kBAAkBvqwB,GAE7C,YADAskwB,GAAAA,QAAyB,EAAKrlwB,QAA9B,kBAAkDqrwB,GAAiB3qwB,QArEhB,KA6ErD4qwB,kBAAoB,SAACvqwB,GAC3B,OAAOA,EAAQ,EAAKkqwB,iBAAmB,OAAS,YA9EW,KAiFrDM,eAAiB,SAACxqwB,GACxB,IAAMigB,EAAU,EAAKhhB,QAAQ4F,iBAAiB,uCAC9C,QAAKob,MAIDA,EAAQjgB,EAAQ,IACXigB,EAAQjgB,EAAQ,KAxFkC,KA8FrDyqwB,iBAAmB,WACzB,OAAO,EAAKT,kBA/F+C,KAkGrDU,oBAAsB,WAC5B,OAAO,EAAKV,kBAnG+C,KAsGrDI,UAAY,WAClB,IAAI9zqB,EAAQ,GAGVA,EADE,EAAKq0qB,aACC,OACC,EAAKC,cACN,QAEA,UAIV,EAAK3rwB,QAAQuB,UAAUG,OAAO,QAC9B,EAAK1B,QAAQuB,UAAUG,OAAO,SAC9B,EAAK1B,QAAQuB,UAAUG,OAAO,WAE9B,EAAK1B,QAAQuB,UAAUC,IAAI61F,GAG3B,IAAMtsC,EAAW,EAAK/qD,QAAQ4F,iBAC5B,0GAGF,GAAKmlD,KAAYA,EAASvqD,QAAU,GAIpC,IAAK,IAAIyL,EAAI,EAAGyrC,EAAMqT,EAASvqD,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CACnD,IAAIjM,EAAU+qD,EAAS9+C,GACnBlL,EAAQmjwB,GAAgBlkwB,GAAW,EAMvC,GAJAA,EAAQuB,UAAUG,OAAO,WACzB1B,EAAQuB,UAAUG,OAAO,aACzB1B,EAAQuB,UAAUG,OAAO,WAErBX,IAAU,EAAKkqwB,kBAGjB,GAFAjrwB,EAAQuB,UAAUC,IAAI,YAGO,IAA3B,EAAK8Y,QAAQkqN,WACuC,YAApDxkO,EAAQkK,aAAa,2BACrB,CACAw4vB,GAAAA,IAAqB1iwB,EAAS,oBAAqB,EAAKsa,QAAQkwvB,gBAEhE,IAAMhmiB,EAC6C,aAAjD,EAAK8miB,kBAAkB,EAAKN,iBACxB,EAAK1wvB,QAAQowvB,uBACb,EAAKpwvB,QAAQmwvB,mBACnBhH,GAAmBmI,aAAa5rwB,EAASwkO,SAGvCzjO,EAAQ,EAAKkqwB,iBACfjrwB,EAAQuB,UAAUC,IAAI,aAEtBxB,EAAQuB,UAAUC,IAAI,aA5J+B,KAkKrDkqwB,WAAa,WACnB,OAAO,EAAKT,mBAAqB,EAAKF,kBAnKqB,KAsKrDY,YAAc,WACpB,OAAiC,IAA1B,EAAKV,kBAvK+C,KA0KrDY,cAAgB,WACtB,OAA6B,IAAtB,EAAKH,eAAiD,IAAvB,EAAKC,eA3KgB,KAmLtDG,KAAO,SAAC/qwB,GACb,OAAO,EAAKmqwB,MAAMnqwB,IApLyC,KAuLtDgrwB,OAAS,WACd,OAAO,EAAKD,KAAK,EAAKE,qBAxLqC,KA2LtDC,OAAS,WACd,OAAO,EAAKH,KAAK,EAAKI,qBA5LqC,KA+LtDC,QAAU,WACf,OAAO,EAAKL,KAAK,IAhM0C,KAmMtDM,OAAS,WACd,OAAO,EAAKN,KAAK,EAAKN,qBApMqC,KAuMtDa,oBAAsB,WAC3B,OAAO,EAAKpB,kBAxM+C,KA2MtDe,iBAAmB,WACxB,OAAI,EAAKjB,kBAAoB,EAAKE,iBAAmB,EAC5C,EAAKA,iBAAmB,EAExB,EAAKF,kBA/M6C,KAmNtDuB,mBAAqB,WAC1B,OAAO,EAAKtB,iBApN+C,KAuNtDkB,iBAAmB,WACxB,OAAI,EAAKjB,iBAAmB,EAAI,EACvB,EAAKA,iBAAmB,EAExB,GA3NkD,KA+NtDx0nB,WAAa,SAAC11I,GACnB,OAAO,EAAKf,SAhO+C,KAoOtDw4B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IArOY,KAwOtDikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAzOW,KA4OtD83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IA7OW,KAgPtD/jpB,QAAU,WACfj3E,QAAQ+1B,IAAI,oBAjP+C,KAoPtDv2D,QAAU,SAAC4D,EAAcgN,GAC9B,OAAO2qvB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,EAAMgN,IApPpDxa,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAO+qtB,GAAuBjwvB,GACpDpa,KAAKmmwB,YAAcjD,GAAsB,WAGzCljwB,KAAKy2M,MAAQz2M,KAAKF,QAAQ4F,iBAAiB,mCAC3C1F,KAAK0qwB,QAAU1qwB,KAAKF,QAAQ85E,cAAc,mCAC1C55E,KAAK2qwB,QAAU3qwB,KAAKF,QAAQ85E,cAAc,uCAC1C55E,KAAK4qwB,UAAY5qwB,KAAKF,QAAQ85E,cAAc,qCAG5C55E,KAAK6qwB,iBAAwC,GAArB,UAAA7qwB,KAAKy2M,aAAL,eAAYn2M,QACpCN,KAAK8qwB,gBAAkB,EACvB9qwB,KAAK+qwB,iBAAmB,EAGpB/qwB,KAAKoa,QAAQzS,WAAa,GAC5B3H,KAAKgrwB,MAAMhrwB,KAAKoa,QAAQzS,YAI1B3H,KAAKkrwB,eAGLvI,GAAAA,IAAa3iwB,KAAKF,QAAS,UAAWE,MAyQvC,OAxQA,uCA+ND,SAAyBF,GACvB,OAAO6iwB,GAAAA,IAAa7iwB,EAAS,aAC9B,yBAED,SAA0BA,GACxB,GAAgB,OAAZA,GAAoB2qwB,EAAiBrD,WAAWtnwB,GAAU,CAC5D,IAAM+N,EAAO80vB,GAAAA,IAAa7iwB,EAAS,WACnC,GAAI+N,EACF,OAAOA,kCAMb,SAA8B0b,GACX/mB,SAAS+lC,KAAK7iC,iBAAiB6jB,GACvCtpB,SAAQ,SAACH,GAChB,IAAMI,EAAOJ,EACTuswB,EAAU5B,EAAiB1gtB,YAAY7pD,GACtCmswB,IACHA,EAAU,IAAI5B,EAAiBvqwB,EAAMmqwB,UAG1C,uBAgBD,WAA6D,IAArCzqvB,EAAoC,uDAArB,oBACrC6qvB,EAAiB/C,gBAAgB9nvB,OAClC,EA9SG6qvB,GAAAA,GA8RU9B,cAAgB,SAC5B7owB,GAE6B,IAD7Bsa,EAC4B,uDADDiwvB,GAE3B,IAAKvqwB,EACH,OAAO,KAET,IAAIuswB,EAAU5B,GAAiB1gtB,YAAYjqD,GAI3C,OAHKuswB,IACHA,EAAU,IAAI5B,GAAiB3qwB,EAASsa,IAEnCiyvB,GC7SX,IAAMC,GAAsC,CAC1C/gwB,OAAQ,IACRwoB,SAAS,EACTuwM,WAAW,EACXgmiB,eAAgB,OAChBiC,eAAgB,2BAGZC,GAAAA,WASJ,WAAY3guB,EAAuBzxB,GAAyB,IAAD,4BAR3Dta,aAQ2D,OAP3Dsa,aAO2D,OAN3D+rvB,iBAM2D,OAL3DsG,aAA8B,GAK6B,KAJ3DlqQ,mBAI2D,OAH3DmqQ,uBAG2D,OAF3DC,mBAE2D,OAkBnDjmvB,OAAS,WACf,IAAInb,EAAS,EAAKo6H,UAAU,UACxB5xG,EAAU,EAAK4xG,UAAU,WAG7B,IAAe,IAAXp6H,EAAJ,CAIA,IAAIqhwB,EAAY,EACM,kBAAXrhwB,IACTqhwB,EAAY32tB,SAAS1qC,IAGvB,IAAMgpM,EAAKnqD,KAGX,IAAgB,IAAZr2H,EA8BF,OA5BIwgL,EAAKq4jB,GAAa,EAAKD,cAAgBp4jB,IACc,IAAnD/xM,SAAS+lC,KAAK02Q,aAAa,EAAKsjN,iBAClC,EAAKhoV,SACL/3K,SAAS+lC,KAAKznC,aAAa,EAAKyhgB,cAAe,QAGlB,IAA3B,EAAKmqQ,oBACPvH,GAAAA,QAAyB,EAAKrlwB,QAAS,gBACvCqlwB,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAEvC,EAAK4swB,mBAAoB,KAIvBlqwB,SAAS+lC,KAAK02Q,aAAa,EAAKsjN,iBAClC,EAAKktC,UACLjtiB,SAAS+lC,KAAKy7E,gBAAgB,EAAKu+Y,iBAGN,IAA3B,EAAKmqQ,oBACPvH,GAAAA,QAAyB,EAAKrlwB,QAAS,iBACvCqlwB,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAEvC,EAAK4swB,mBAAoB,SAI7B,EAAKC,cAAgBp4jB,GAKnBA,EAAKq4jB,IACgD,IAAnDpqwB,SAAS+lC,KAAK02Q,aAAa,EAAKsjN,iBAClC,EAAKhoV,SACL/3K,SAAS+lC,KAAKznC,aAAa,EAAKyhgB,cAAe,QAGlB,IAA3B,EAAKmqQ,oBACPvH,GAAAA,QAAyB,EAAKrlwB,QAAS,gBACvCqlwB,GAAAA,QAAyB,EAAKrlwB,QAAS,oBACvC,EAAK4swB,mBAAoB,MAI4B,IAAnDlqwB,SAAS+lC,KAAK02Q,aAAa,EAAKsjN,iBAClC,EAAKktC,UACLjtiB,SAAS+lC,KAAKy7E,gBAAgB,EAAKu+Y,iBAGN,IAA3B,EAAKmqQ,oBACPvH,GAAAA,QAAyB,EAAKrlwB,QAAS,iBACvCqlwB,GAAAA,QAAyB,EAAKrlwB,QAAS,oBACvC,EAAK4swB,mBAAoB,MA1F4B,KA+FnD/moB,UAAY,SAACn4H,GACnB,IAAMq/vB,EAAiB,kBAAoBr/vB,EAC3C,IAAkD,IAA9C,EAAK1N,QAAQm/S,aAAa4td,GAA0B,CACtD,IACMC,EAAYhI,GADK,EAAKhlwB,QAAQkK,aAAa6iwB,IACiB,IAClE,OAAkB,OAAdC,GAA4C,SAAtBjnsB,OAAOinsB,KAER,OAAdA,GAA4C,UAAtBjnsB,OAAOinsB,KAIjCA,EAEP,IAAM9mhB,EAAam9gB,GAAmB31vB,GAChCqX,EAASo+uB,GAA4B,EAAK7ovB,QAAS4rO,GACzD,GAAInhO,EACF,OAAOigvB,GAA8BjgvB,IA/GgB,KAoHnD4qhB,QAAU,WAChB+yN,GAAAA,OAAwB,EAAK1iwB,QAAS,OACtC0iwB,GAAAA,OAAwB,EAAK1iwB,QAAS,SACtC0iwB,GAAAA,OAAwB,EAAK1iwB,QAAS,QACtC0iwB,GAAAA,OAAwB,EAAK1iwB,QAAS,SACtC0iwB,GAAAA,OAAwB,EAAK1iwB,QAAS,WACtC0iwB,GAAAA,OAAwB,EAAK1iwB,QAAS,aA1HmB,KA6HnDy6K,OAAS,WAA8B,IAA7Bl8J,EAA4B,wDACtCvF,EAAM,EAAK6sH,UAAU,OACrBjtH,EAAO,EAAKitH,UAAU,QAExBr0H,EAAQ,EAAKq0H,UAAU,SACrBonoB,EAAS,EAAKpnoB,UAAU,UAgB9B,IAde,IAAXtnH,IAAmD,IAAhC,EAAKsnH,UAAU,eACpC68nB,GAAAA,IAAqB,EAAK1iwB,QAAS,oBAAqB,EAAK6lI,UAAU,mBACvE49nB,GAAmBmI,aAAa,EAAK5rwB,QAAS,aAAe,EAAK6lI,UAAU,oBAG/D,OAAXonoB,IACFvK,GAAAA,IAAqB,EAAK1iwB,QAAS,UAAWitwB,GAC9CvK,GAAAA,IAAqB,EAAK1iwB,QAAS,WAAY,UAGrC,OAARgZ,GACF0pvB,GAAAA,IAAqB,EAAK1iwB,QAAS,MAAOgZ,GAG9B,OAAVxH,QAA4B8G,IAAV9G,EAAqB,CACzC,IAAM07vB,EAAc/J,GAA4B3xvB,EAAO,UACvD,GAAI07vB,EAAa,CACf,IAAM34sB,EAAgB7xD,SAASo3E,cAAcozrB,GACzC34sB,IACF/iD,EAAQuyvB,GAAOxvsB,EAAe,UAGlCmusB,GAAAA,IAAqB,EAAK1iwB,QAAS,QAASwR,GAG9C,GAAa,OAAToH,GACiC,SAA/BmtD,OAAOntD,GAAMuqB,cAA0B,CACzC,IAAI8mH,EAAa45mB,GAAiB,EAAK7jwB,SAAS4Y,KAE5CqxI,EAAa,GACfy4mB,GAAAA,IAAqB,EAAK1iwB,QAAS,OAAQ+lE,OAAOkkF,GAAc,QAlKb,KAwKpD1rI,OAAS,YACyC,IAAnD7b,SAAS+lC,KAAK02Q,aAAa,EAAKsjN,iBAClC,EAAKktC,UACLjtiB,SAAS+lC,KAAKy7E,gBAAgB,EAAKu+Y,eACnC,EAAKhoV,QAAO,GACZ/3K,SAAS+lC,KAAKznC,aAAa,EAAKyhgB,cAAe,QA7KQ,KAkLpDjqe,GAAK,SAAC9qB,EAAcklP,GACzB,OAAOyygB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMklP,IAnLU,KAsLpD8xC,IAAM,SAACh3R,EAAcghD,GAC1B,OAAO22sB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMghD,IAvLS,KA0LpDn2B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IA3LS,KA8LpDx7vB,QAAU,SAAC4D,GAChB,OAAO23vB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,IA9L9CxN,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAOgttB,GAAsBlyvB,GACnDpa,KAAKmmwB,YAAcjD,GAAsB,UACzCljwB,KAAKyswB,aAAezswB,KAAKF,QAAQkK,aAAa,uBAC9ChK,KAAKuigB,cAAgB,kBAAoBvigB,KAAKyswB,aAC9CzswB,KAAK0swB,mBAAoB,EACzB1swB,KAAK2swB,cAAgB,EAGrBlnvB,OAAO/kB,iBAAiB,SAAUV,KAAK0mB,QAGvC1mB,KAAK0mB,SAELi8uB,GAAAA,IAAa3iwB,KAAKF,QAAS,SAAUE,MAmOtC,OAlOA,uCAmLD,SAAyBF,GACvB,OAAO6iwB,GAAAA,IAAa7iwB,EAAS,YAC9B,yBAED,SAA0BA,GACxB,GAAgB,OAAZA,GAAoB0swB,EAAgBpF,WAAWtnwB,GAAU,CAC3D,IAAM+N,EAAO80vB,GAAAA,IAAa7iwB,EAAS,UACnC,GAAI+N,EACF,OAAOA,kCAMb,SAA8B0b,GACX/mB,SAAS+lC,KAAK7iC,iBAAiB6jB,GACvCtpB,SAAQ,SAACH,GAChB,IAAMI,EAAOJ,EACTmtwB,EAAST,EAAgBzitB,YAAY7pD,GACpC+swB,IACHA,EAAS,IAAIT,EAAgBtswB,EAAMoswB,UAGxC,uBAkBD,WAAmE,IAA3C1svB,EAA0C,uDAA3B,0BACrC4svB,EAAgB9E,gBAAgB9nvB,KACjC,8BAED,WAA0E,IAA3CA,EAA0C,uDAA3B,0BAC5C4svB,EAAgB9E,gBAAgB9nvB,OACjC,EA3PG4svB,GAAAA,GAqOU7D,cAAgB,SAC5Bp/uB,GAEiC,IADjCnP,EACgC,uDADPkyvB,GAEnBxswB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACTmtwB,EAAST,GAAgBzitB,YAAY7pD,GAIzC,OAHK+swB,IACHA,EAAS,IAAIT,GAAgBtswB,EAAMka,IAE9B6yvB,ICrQX,IAAMC,GAAsC,CAC1CjE,WAAW,GAGPkE,IAAAA,EAAAA,EAAAA,IASJ,WAAYthuB,EAAuBzxB,GAAyB,IAAD,4BAR3Dta,aAQ2D,OAP3DqmwB,iBAO2D,OAN3D/rvB,aAM2D,OAL3D+8E,MAAgB,GAK2C,KAJ3D9yB,KAAe,GAI4C,KAH3Dz9D,OAA6B,KAG8B,KAF3D8vU,UAAoB,GAEuC,KAuBnD7/R,UAAY,WAClB,EAAK/2C,QAAQY,iBAAiB,SAAS,SAACF,GACtCA,EAAE6G,iBAEgB,KAAd,EAAKg9D,OAKS,QAAd,EAAKA,MAAmB,EAAK+osB,cAER,OAAd,EAAK/osB,MAAiB,EAAK+osB,cACpC,EAAK5G,UAPL,EAAKA,cA5BgD,KAyCnDA,QAAU,WAYhB,OAVArB,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAEnC,EAAKstwB,aACP,EAAKC,WAEL,EAAKC,UAIPnI,GAAAA,QAAyB,EAAKrlwB,QAAS,qBAChC,GArDkD,KAwDnDwtwB,QAAU,WAAO,IAAD,EACtB,IAAI,EAAKF,aAeT,OAXAjI,GAAAA,QAAyB,EAAKrlwB,QAAS,oBACvC,YAAK8G,cAAL,SAAa9F,aAAa,EAAK41U,UAAW,MACtC,EAAKv/O,MAAM72F,OAAS,GACtB,EAAKR,QAAQuB,UAAUC,IAAI,EAAK61F,OAG9B,EAAK/8E,QAAQ6uvB,WACfL,GAAgB5jsB,IAAI,EAAK0xQ,UAAW,KAAM,IAG5Cyub,GAAAA,QAAyB,EAAKrlwB,QAAS,qBAChC,GAxEkD,KA2EnDutwB,SAAW,WAAO,IAAD,EACvB,QAAK,EAAKD,eAIVjI,GAAAA,QAAyB,EAAKrlwB,QAAS,qBACvC,YAAK8G,cAAL,SAAao9G,gBAAgB,EAAK0yN,WAE9B,EAAKv/O,MAAM72F,OAAS,GACtB,EAAKR,QAAQuB,UAAUG,OAAO,EAAK21F,OAGjC,EAAK/8E,QAAQ6uvB,WACfL,GAAAA,OAAuB,EAAKlyb,WAG9Byub,GAAAA,QAAyB,EAAKrlwB,QAAS,sBAChC,IA5FkD,KA+FnDstwB,WAAa,WACnB,QAAK,EAAKxmwB,QAIgE,OAAnEi/D,OAAO,EAAKj/D,OAAOoD,aAAa,EAAK0sU,YAAYzzS,eApGC,KA6GpDmyN,OAAS,WACd,OAAO,EAAKoxgB,WA9G6C,KAiHpDjslB,OAAS,WACd,OAAO,EAAK+ylB,WAlH6C,KAqHpD79N,QAAU,WACf,OAAO,EAAK49N,YAtH6C,KAyHpDE,UAAY,WACjB,OAAO,EAAKH,cA1H6C,KA6HpDjG,UAAY,WACjB,OAAO,EAAKrnwB,SA9H6C,KAkIpDw4B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IAnIU,KAsIpDikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAvIS,KA0IpD83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IA3IS,KA8IpDx7vB,QAAU,SAAC4D,EAAcgN,GAC9B,OAAO2qvB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,EAAMgN,IA9IpDxa,KAAKoa,QAAUtT,OAAOw4C,OAAO4ttB,GAAsB9yvB,GACnDpa,KAAKmmwB,YAAcjD,GAAsB,UACzCljwB,KAAKF,QAAU+rC,EAEf,IAAM2huB,EAAoBxtwB,KAAKF,QAAQkK,aAAa,yBAChDwjwB,IACFxtwB,KAAK4G,OAASpE,SAASo3E,cAAc4zrB,IAEvC,IAAMC,EAAoBztwB,KAAKF,QAAQkK,aAAa,wBACpDhK,KAAKm3F,MAAQs2qB,GAAqB,GAClC,IAAMC,EAAkB1twB,KAAKF,QAAQkK,aAAa,uBAClDhK,KAAKqkE,KAAOqpsB,GAAmB,GAC/B1twB,KAAK02U,UAAY,WAAa12U,KAAKF,QAAQkK,aAAa,uBAGxDhK,KAAK62C,YAIL8rtB,GAAAA,IAAa3iwB,KAAKF,QAAS,SAAUE,SA7BnCmtwB,GA4JUpjtB,YAAc,SAACvhD,GAC3B,IAAM09vB,EAAgBvD,GAAAA,IAAan6vB,EAAI,UACvC,OAAI09vB,GAIG,MAlKLiH,GAqKUzF,gBAAkB,SAACn+uB,GACd/mB,SAAS+lC,KAAK7iC,iBAA8B6jB,GACpDtpB,SAAQ,SAACuI,GAChB,IAAI4sP,EAAS+3gB,GAAgBpjtB,YAAYvhD,GACpC4sP,IACHA,EAAS,IAAI+3gB,GAAgB3kwB,EAAI0kwB,SA1KnCC,GA+KUvF,iBAAmB,WAC/BuF,GAAgBzF,gBAAgB,qBAhL9ByF,GAmLUvjB,UAAY,WACxBujB,GAAgBzF,gBAAgB,qBC9KpC,IAAMiG,GAA8B,CAClCC,UAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBp6c,YAAY,EACZq6c,WAAW,EACXC,oBAAqB,UAGjBC,GAAqD,CACzDn5iB,cAAe,iBACfiziB,cAAe,2BACfC,WAAY,cACZkG,gBAAiB,gDACjBC,eAAgB,gDAGZC,GAAAA,WAUJ,WACEviuB,EACA1qB,EACAmnvB,GACC,IAAD,4BAbFxowB,aAaE,OAZF45X,kBAYE,OAXF20Y,uBAWE,OAVFC,sBAUE,OATFl0vB,aASE,OARFsglB,aAQE,OAPF1zgB,WAOE,OANFunrB,gBAME,OAmIKhzuB,MAAQ,WACb,EAAKyrD,MAAQ,EACb,EAAKywF,aApILz3K,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAOqutB,GAA6BxsvB,GAC1DnhB,KAAK06lB,QAAU4tK,EACftowB,KAAKgnF,MAAQ,EACbhnF,KAAKuuwB,WAAa,EAGlBvuwB,KAAK05X,aAAe15X,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQstK,YAC5DhowB,KAAKquwB,kBAAoBruwB,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQwzK,iBACjEluwB,KAAKsuwB,iBAAmBtuwB,KAAKF,QAAQ85E,cAAc55E,KAAK06lB,QAAQyzK,gBAGhEnuwB,KAAKq/B,WAELsjuB,GAAAA,IAAa3iwB,KAAKF,QAASE,KAAK06lB,QAAQ5lY,cAAe90N,aACxD,gCAED,WAA0B,IAAD,OACnBA,KAAK05X,cACP15X,KAAK05X,aAAah5X,iBAAiB,SAAS,WAC1C,EAAKkwS,WAIL5wS,KAAKquwB,mBACPruwB,KAAKquwB,kBAAkB3twB,iBAAiB,SAAS,WAC/C,EAAK8twB,mBAGV,yBAED,WACE,GAAIxuwB,KAAKquwB,mBAAqBruwB,KAAK05X,aAAc,CAC/C,IAAM+0Y,EAAczuwB,KAAKquwB,kBAAkBz0rB,cACzC,0CAGI80rB,EAAa1uwB,KAAKquwB,kBAAkBz0rB,cAAc,8BAIvC,cAFA55E,KAAK05X,aAAa1vX,aAAa,SAAW,IAGzDhK,KAAK05X,aAAa54X,aAAa,OAAQ,QAEvCd,KAAK05X,aAAa54X,aAAa,OAAQ,YAG9B,OAAX2twB,QAAW,IAAXA,GAAAA,EAAaptwB,UAAUC,IAAI,UACjB,OAAVotwB,QAAU,IAAVA,GAAAA,EAAYrtwB,UAAUG,OAAO,UAE7BxB,KAAK05X,aAAa34X,WAErB,wBAED,WACE,OAAO,IACR,yBAED,WACE,QAAIf,KAAK05X,cACA15X,KAAK05X,aAAa93X,MAAMtB,QAAUN,KAAKoa,QAAQwzvB,YAIzD,4BAED,WACE,IAAM7pvB,EAAM/jB,KAAK05X,aAAe15X,KAAK05X,aAAa93X,MAAQ,GAC1D,MAAO,QAAQshC,KAAKnf,KACrB,4BAED,WACE,IAAMA,EAAM/jB,KAAK05X,aAAe15X,KAAK05X,aAAa93X,MAAQ,GAC1D,MAAO,QAAQshC,KAAKnf,KACrB,wBAED,WACE,IAAMA,EAAM/jB,KAAK05X,aAAe15X,KAAK05X,aAAa93X,MAAQ,GAC1D,MAAO,QAAQshC,KAAKnf,KACrB,uBAED,WACE,IAAMA,EAAM/jB,KAAK05X,aAAe15X,KAAK05X,aAAa93X,MAAQ,GAC1D,MAAO,yCAAyCshC,KAAKnf,KACtD,2BAED,WACE,IAAIm1D,EAAQ,EAkBZ,OAjBIl5E,KAAKoa,QAAQyzvB,gBACf30rB,IAGEl5E,KAAKoa,QAAQ0zvB,gBACf50rB,IAGEl5E,KAAKoa,QAAQs5S,YACfx6O,IAGEl5E,KAAKoa,QAAQ2zvB,WACf70rB,IAGFl5E,KAAKuuwB,WAAar1rB,EACX,IAAMl5E,KAAKuuwB,aACnB,uBAED,WAAqB,IAAD,OACZ7iwB,EAAQ1L,KAAKsuwB,iBACf,GAAG7owB,MAAMhF,KAAKT,KAAKsuwB,iBAAiB5owB,iBAAiB,QACrD,GACE6+nB,EAAQ74nB,EAAMpL,OAChBO,EAAQ,EACN8twB,EAAa3uwB,KAAK4uwB,gBAClB5nrB,EAAQhnF,KAAK6uwB,WAEnBnjwB,EAAMxF,KAAI,SAAChG,GACTW,IACI8twB,EAAa9twB,GAAS,EAAK0twB,WAAahqI,IAAUv9iB,EACpD9mF,EAAKmB,UAAUC,IAAI,UAEnBpB,EAAKmB,UAAUG,OAAO,qCAa5B,WACE,OAAOxB,KAAKgnF,QACb,mBAED,WACE,IAAIA,EAAQ,EACN2nrB,EAAa3uwB,KAAK4uwB,gBACpB5uwB,KAAK8uwB,gBACP9nrB,GAAgB2nrB,GAGd3uwB,KAAKoa,QAAQyzvB,gBAAkB7twB,KAAK+uwB,mBACtC/nrB,GAAgB2nrB,GAGd3uwB,KAAKoa,QAAQ0zvB,gBAAkB9twB,KAAK6twB,mBACtC7mrB,GAAgB2nrB,GAGd3uwB,KAAKoa,QAAQs5S,YAAc1zT,KAAK0zT,eAClC1sO,GAAgB2nrB,GAGd3uwB,KAAKoa,QAAQ2zvB,WAAa/twB,KAAK+twB,cACjC/mrB,GAAgB2nrB,GAGlB3uwB,KAAKgnF,MAAQA,EACbhnF,KAAKy3K,kBAlLH22lB,GAAAA,GAsLUrktB,YAAc,SAC1BvhD,GAEyC,IADzCssN,EACwC,uDADhBm5iB,GAA4Bn5iB,cAE9Ck6iB,EAAgBrM,GAAAA,IAAan6vB,EAAIssN,GACvC,GAAIk6iB,EACF,OAAOA,GA5LPZ,GAgMU1G,gBAAkB,WAI1B,IAHJn+uB,EAGG,uDAHgB0kvB,GAA4BlG,cAC/C3tvB,EAEG,uDAF8BuzvB,GACjCjzK,EACG,uDAD8BuzK,GAE3BpjtB,EAAWroD,SAAS+lC,KAAK7iC,iBAAiB6jB,GAChDshC,EAAS5qD,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACTwmwB,EAAgBZ,GAAuBrktB,YAAY7pD,GAClD8uwB,IACHA,EAAgB,IAAIZ,GAAuBluwB,EAAMka,EAASsglB,QA1M5D0zK,GA+MUzF,cAAgB,WAIY,IAHxCp/uB,EAGuC,uDAHpB0kvB,GAA4BlG,cAC/C3tvB,EAEuC,uDAFNuzvB,GACjCjzK,EACuC,uDADNuzK,GAE3BnuwB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACTkvwB,EAAgBZ,GAAuBrktB,YAAY7pD,GAIvD,OAHK8uwB,IACHA,EAAgB,IAAIZ,GAAuBluwB,EAAMka,EAASsglB,IAErDs0K,IA7NLZ,GAgOUxkB,UAAY,WAAmE,IAAlErguB,EAAiE,uDAA9C0kvB,GAA4BlG,cACxEqG,GAAuB1G,gBAAgBn+uB,IAjOrC6kvB,GAoOUxG,iBAAmB,WAE3B,IADJr+uB,EACG,uDADgB0kvB,GAA4BlG,cAE/CqG,GAAuB1G,gBAAgBn+uB,ICrQpC,IAAM0lvB,GAAb,+EAGE,SAAkBjzE,EAAoB4pE,GAChCqJ,EAAap1uB,IAAImiqB,IAIrBizE,EAAazotB,MAAMwe,IAAIg3nB,EAAY4pE,KARvC,iBAWE,SAAkB5pE,GAChB,GAAKizE,EAAap1uB,IAAImiqB,GAGtB,OAAOizE,EAAazotB,MAAM3mC,IAAIm8qB,KAflC,oBAkBE,SAAqBA,GACdizE,EAAap1uB,IAAImiqB,IAItBizE,EAAazotB,MAAMonM,OAAOouc,KAvB9B,iBA0BE,SAAkBA,GAChB,OAAOizE,EAAazotB,MAAM3sB,IAAImiqB,KA3BlC,6BA8BE,WACE,OAAOizE,EAAazotB,UA/BxB,KAAayotB,GACJzotB,MAAuC,IAAIgxM,IA4CpD,IAAM03gB,GAAyC,CAC7C7qsB,KAAM,UAGF8qsB,GAAyC,CAC7Cr6iB,cAAe,UACfiziB,cAAe,2BACfqH,UAAW,oBAGPC,GAAAA,WAKJ,WAAYxjuB,EAAuB1qB,EAA2BmnvB,GAA4B,IAAD,4BAJzFxowB,aAIyF,OAHzFsa,aAGyF,OAFzFsglB,aAEyF,OAmClFr8kB,OAAS,WAAO,IAAD,EACdixvB,EAAc,UAAG,EAAK3poB,UAAU,iBAAlB,aAAG,EAA0Bl3H,WAC3C41D,EAAO,EAAKshE,UAAU,QACtB19F,EAAgBqnuB,EAAiB9swB,SAASo3E,cAAc01rB,GAAkB,KAE5ErnuB,GAAiB,EAAKnoC,QAAQsqB,aAAe6d,IAClC,YAATo8B,EACFp8B,EAAc2tN,QAAQ,EAAK91P,SACT,WAATukE,GACTp8B,EAAcloB,OAAO,EAAKjgB,WA5CyD,KAkDlFw4B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IAnDwC,KAsDlFikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAvDuC,KA0DlF83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IA3DuC,KA8DlFx7vB,QAAU,SAAC4D,EAAcgN,GAC9B,OAAO2qvB,GAAAA,QAAyB,EAAKrlwB,QAAS0N,EAAMgN,IA9DpDxa,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAO4vtB,GAAuB/tvB,GACpDnhB,KAAK06lB,QAAU4tK,EAGftowB,KAAKqe,SAEL4wvB,GAAajqsB,IAAIhlE,KAAKF,QAAQmK,GAAIjK,aACnC,iCAED,SAAkBwN,GAChB,IAAMoS,EAAO5f,KAAKF,QAAQkK,aAAb,UAA6BhK,KAAK06lB,QAAQ00K,WAA1C,OAAsD5hwB,IACnE,GAAIoS,EAAM,CACR,IAAIhe,EAAQkjwB,GAA8BllvB,GAC1C,OAAY,MAARA,GAAkC,SAAlBimD,OAAOjkE,KAEN,OAAVA,GAAoC,UAAlBikE,OAAOjkE,KAG7BA,EAEP,IAAMokP,EAAam9gB,GAAmB31vB,GAChCqX,EAASo+uB,GAA4BjjwB,KAAKoa,QAAS4rO,GACzD,OAAInhO,EACKigvB,GAA8BjgvB,GAE9B,WAhCTwqvB,GC/DS,SAASphjB,GAAUh4I,GAChC,GAAY,MAARA,EACF,OAAOxwD,OAGT,GAAwB,oBAApBwwD,EAAKxnE,WAAkC,CACzC,IAAIkyH,EAAgB1qD,EAAK0qD,cACzB,OAAOA,GAAgBA,EAAc0wE,aAAwB5rL,OAG/D,OAAOwwD,ECRT,SAASi7gB,GAAUj7gB,GAEjB,OAAOA,aADUg4I,GAAUh4I,GAAM3V,SACI2V,aAAgB3V,QAGvD,SAASivsB,GAAct5rB,GAErB,OAAOA,aADUg4I,GAAUh4I,GAAMqgf,aACIrgf,aAAgBqgf,YAGvD,SAASk5M,GAAav5rB,GAEpB,MAA0B,qBAAfglpB,aAKJhlpB,aADUg4I,GAAUh4I,GAAMglpB,YACIhlpB,aAAgBglpB,YF4CjDo0C,GAwEUtltB,YAAc,SAC1BvhD,GAE6B,IACvBinwB,EAAQR,GAAapvvB,IAAIrX,EAAGyB,IAClC,OAAIwlwB,GAIG,MAjFLJ,GAoFU3H,gBAAkB,WAI1B,IAHJn+uB,EAGG,uDAHgB4lvB,GAAsBpH,cACzC3tvB,EAEG,uDAFwB80vB,GAC3Bx0K,EACG,uDADwBy0K,GAErBtktB,EAAWroD,SAAS+lC,KAAK7iC,iBAAiB6jB,GAChDshC,EAAS5qD,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACTinwB,EAAQJ,GAAiBtltB,YAAY7pD,GACpCuvwB,IACHA,EAAQ,IAAIJ,GAAiBnvwB,EAAMka,EAASsglB,QA9F9C20K,GAmGU1G,cAAgB,WAIM,IAHlCp/uB,EAGiC,uDAHd4lvB,GAAsBpH,cACzC3tvB,EAEiC,uDAFN80vB,GAC3Bx0K,EACiC,uDADNy0K,GAErBrvwB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACT2vwB,EAAQJ,GAAiBtltB,YAAY7pD,GAIzC,OAHKuvwB,IACHA,EAAQ,IAAIJ,GAAiBnvwB,EAAMka,EAASsglB,IAEvC+0K,IAjHLJ,GAoHUzlB,UAAY,WAA6D,IAA5DrguB,EAA2D,uDAAxC4lvB,GAAsBpH,cAClEsH,GAAiB3H,gBAAgBn+uB,IArH/B8lvB,GAwHUzH,iBAAmB,WAA6D,IAA5Dr+uB,EAA2D,uDAAxC4lvB,GAAsBpH,cACzEsH,GAAiB3H,gBAAgBn+uB,IAKrC9D,OAAO/kB,iBAAiB,UAAU,WAEhCs7D,GADIyhE,WAGF,WAEmBj7H,SAASkD,iBAAiBypwB,GAAsBpH,eACxD9nwB,SAAQ,SAACuI,GAChB,IAAMinwB,EAAQJ,GAAiBtltB,YAAYvhD,GACvCinwB,GACFA,EAAMpxvB,cAIZ,QG3MG,IAAIuH,GAAMD,KAAKC,IACXE,GAAMH,KAAKG,IACX0H,GAAQ7H,KAAK6H,MCAT,SAASvR,GAAsBnc,EAAS4vwB,QAChC,IAAjBA,IACFA,GAAe,GAGjB,IAAIz0vB,EAAOnb,EAAQmc,wBACf8of,EAAS,EACTv+d,EAAS,EAEb,GAAI+ouB,GAAczvwB,IAAY4vwB,EAAc,CAC1C,IAAI3yvB,EAAejd,EAAQid,aACvBD,EAAchd,EAAQgd,YAGtBA,EAAc,IAChBiof,EAASv3e,GAAMvS,EAAK3J,OAASwL,GAAe,GAG1CC,EAAe,IACjBypB,EAAShZ,GAAMvS,EAAK1J,QAAUwL,GAAgB,GAIlD,MAAO,CACLzL,MAAO2J,EAAK3J,MAAQyzf,EACpBxzf,OAAQ0J,EAAK1J,OAASi1B,EACtB1tB,IAAKmC,EAAKnC,IAAM0tB,EAChBzoB,MAAO9C,EAAK8C,MAAQgnf,EACpB/mf,OAAQ/C,EAAK+C,OAASwoB,EACtB9tB,KAAMuC,EAAKvC,KAAOqsf,EAClB/zf,EAAGiK,EAAKvC,KAAOqsf,EACfpnf,EAAG1C,EAAKnC,IAAM0tB,GChCH,SAASmpuB,GAAgB15rB,GACtC,IAAIy5D,EAAMu+E,GAAUh4I,GAGpB,MAAO,CACLjvC,WAHe0oG,EAAIzmG,YAInBhC,UAHcyoG,EAAI1mG,aCJP,SAAS4muB,GAAY9vwB,GAClC,OAAOA,GAAWA,EAAQ+2P,UAAY,IAAI5zN,cAAgB,KCA7C,SAASq+M,GAAmBxhP,GAEzC,QAASoxlB,GAAUpxlB,GAAWA,EAAQ6gI,cACtC7gI,EAAQ0C,WAAaijB,OAAOjjB,UAAUimC,gBCDzB,SAASonuB,GAAoB/vwB,GAQ1C,OAAOmc,GAAsBqlO,GAAmBxhP,IAAU4Y,KAAOi3vB,GAAgB7vwB,GAASknC,WCV7E,SAASu7F,GAAiBziI,GACvC,OAAOmuN,GAAUnuN,GAASyiI,iBAAiBziI,GCD9B,SAASgwwB,GAAehwwB,GAErC,IAAIiwwB,EAAoBxtoB,GAAiBziI,GACrCqiI,EAAW4toB,EAAkB5toB,SAC7BkiT,EAAY0rV,EAAkB1rV,UAC9BC,EAAYyrV,EAAkBzrV,UAElC,MAAO,6BAA6BphZ,KAAKi/F,EAAWmiT,EAAYD,GCUnD,SAAS2rV,GAAiBC,EAAyBv5gB,EAAcw5gB,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAIC,EAA0BZ,GAAc74gB,GACxC05gB,EAAuBb,GAAc74gB,IAf3C,SAAyB52P,GACvB,IAAImb,EAAOnb,EAAQmc,wBACf8of,EAASv3e,GAAMvS,EAAK3J,OAASxR,EAAQgd,aAAe,EACpD0pB,EAAShZ,GAAMvS,EAAK1J,QAAUzR,EAAQid,cAAgB,EAC1D,OAAkB,IAAXgof,GAA2B,IAAXv+d,EAWmC6puB,CAAgB35gB,GACtEjuN,EAAkB64M,GAAmBoV,GACrCz7O,EAAOgB,GAAsBg0vB,EAAyBG,GACtD1pvB,EAAS,CACXsgB,WAAY,EACZC,UAAW,GAET69G,EAAU,CACZ9zI,EAAG,EACH2M,EAAG,GAkBL,OAfIwyvB,IAA4BA,IAA4BD,MACxB,SAA9BN,GAAYl5gB,IAChBo5gB,GAAernuB,MACb/hB,ECnCS,SAAuBuvD,GACpC,OAAIA,IAASg4I,GAAUh4I,IAAUs5rB,GAAct5rB,GCJxC,CACLjvC,YAFyClnC,EDQbm2E,GCNRjvC,WACpBC,UAAWnnC,EAAQmnC,WDGZ0ouB,GAAgB15rB,GCNZ,IAA8Bn2E,EFuC9BwwwB,CAAc55gB,IAGrB64gB,GAAc74gB,KAChB5xG,EAAU7oI,GAAsBy6O,GAAc,IACtC1lP,GAAK0lP,EAAavtN,WAC1B27G,EAAQnnI,GAAK+4O,EAAaxtN,WACjBT,IACTq8G,EAAQ9zI,EAAI6+vB,GAAoBpnuB,KAI7B,CACLz3B,EAAGiK,EAAKvC,KAAOgO,EAAOsgB,WAAa89G,EAAQ9zI,EAC3C2M,EAAG1C,EAAKnC,IAAM4N,EAAOugB,UAAY69G,EAAQnnI,EACzCrM,MAAO2J,EAAK3J,MACZC,OAAQ0J,EAAK1J,QGpDF,SAASg/vB,GAAczwwB,GACpC,IAAIuhd,EAAaplc,GAAsBnc,GAGnCwR,EAAQxR,EAAQgd,YAChBvL,EAASzR,EAAQid,aAUrB,OARI4I,KAAK23B,IAAI+ja,EAAW/vc,MAAQA,IAAU,IACxCA,EAAQ+vc,EAAW/vc,OAGjBqU,KAAK23B,IAAI+ja,EAAW9vc,OAASA,IAAW,IAC1CA,EAAS8vc,EAAW9vc,QAGf,CACLP,EAAGlR,EAAQiqJ,WACXpsI,EAAG7d,EAAQwnD,UACXh2C,MAAOA,EACPC,OAAQA,GCnBG,SAASkgY,GAAc3xY,GACpC,MAA6B,SAAzB8vwB,GAAY9vwB,GACPA,EAMPA,EAAQ0wwB,cACR1wwB,EAAQsqB,aACRolvB,GAAa1vwB,GAAWA,EAAQ2qC,KAAO,OAEvC62M,GAAmBxhP,GCXR,SAASowrB,GAAgBj6mB,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAa9vE,QAAQypwB,GAAY35rB,KAAU,EAEvDA,EAAK0qD,cAAcp4F,KAGxBgnuB,GAAct5rB,IAAS65rB,GAAe75rB,GACjCA,EAGFi6mB,GAAgBz+S,GAAcx7T,ICHxB,SAASw6rB,GAAkB3wwB,EAASohE,GACjD,IAAIy5M,OAES,IAATz5M,IACFA,EAAO,IAGT,IAAI+unB,EAAeC,GAAgBpwrB,GAC/B4wwB,EAASzgF,KAAqE,OAAlDt1a,EAAwB76Q,EAAQ6gI,oBAAyB,EAASg6I,EAAsBpyO,MACpHmnG,EAAMu+E,GAAUgie,GAChBrprB,EAAS8pwB,EAAS,CAAChhoB,GAAK9zG,OAAO8zG,EAAI24F,gBAAkB,GAAIyniB,GAAe7/E,GAAgBA,EAAe,IAAMA,EAC7G0gF,EAAczvsB,EAAKtlC,OAAOh1B,GAC9B,OAAO8pwB,EAASC,EAChBA,EAAY/0uB,OAAO60uB,GAAkBh/X,GAAc7qY,KCvBtC,SAASgqwB,GAAe9wwB,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMqG,QAAQypwB,GAAY9vwB,KAAa,ECKhE,SAAS+wwB,GAAoB/wwB,GAC3B,OAAKyvwB,GAAczvwB,IACoB,UAAvCyiI,GAAiBziI,GAASqmB,SAInBrmB,EAAQ42P,aAHN,KA4CI,SAASo6gB,GAAgBhxwB,GAItC,IAHA,IAAI2lB,EAASwoM,GAAUnuN,GACnB42P,EAAem6gB,GAAoB/wwB,GAEhC42P,GAAgBk6gB,GAAel6gB,IAA6D,WAA5Cn0H,GAAiBm0H,GAAcvwO,UACpFuwO,EAAem6gB,GAAoBn6gB,GAGrC,OAAIA,IAA+C,SAA9Bk5gB,GAAYl5gB,IAA0D,SAA9Bk5gB,GAAYl5gB,IAAwE,WAA5Cn0H,GAAiBm0H,GAAcvwO,UAC3HV,EAGFixO,GAhDT,SAA4B52P,GAC1B,IAAIixwB,GAAsE,IAA1DtyoB,UAAUI,UAAU57F,cAAc98B,QAAQ,WAG1D,IAFuD,IAA5Cs4H,UAAUI,UAAU14H,QAAQ,YAE3BopwB,GAAczvwB,IAII,UAFXyiI,GAAiBziI,GAEnBqmB,SACb,OAAO,KAIX,IAAIg8F,EAAcsvR,GAAc3xY,GAMhC,IAJI0vwB,GAAartpB,KACfA,EAAcA,EAAY13E,MAGrB8kuB,GAAcptpB,IAAgB,CAAC,OAAQ,QAAQh8G,QAAQypwB,GAAYztpB,IAAgB,GAAG,CAC3F,IAAI9mG,EAAMknH,GAAiBpgB,GAI3B,GAAsB,SAAlB9mG,EAAIkN,WAA4C,SAApBlN,EAAI21vB,aAA0C,UAAhB31vB,EAAI41vB,UAAiF,IAA1D,CAAC,YAAa,eAAe9qwB,QAAQkV,EAAI61vB,aAAsBH,GAAgC,WAAnB11vB,EAAI61vB,YAA2BH,GAAa11vB,EAAIzV,QAAyB,SAAfyV,EAAIzV,OACjO,OAAOu8G,EAEPA,EAAcA,EAAY/3F,WAI9B,OAAO,KAiBgB+mvB,CAAmBrxwB,IAAY2lB,EClEjD,IAAI3M,GAAM,MACNkF,GAAS,SACTD,GAAQ,QACRrF,GAAO,OACP04vB,GAAO,OACPC,GAAiB,CAACv4vB,GAAKkF,GAAQD,GAAOrF,IACtCmD,GAAQ,QACRuX,GAAM,MAENuvd,GAAW,WACX2uR,GAAS,SAETC,GAAmCF,GAAe3nwB,QAAO,SAAUC,EAAKy6tB,GACjF,OAAOz6tB,EAAIiyB,OAAO,CAACwosB,EAAY,IAAMvotB,GAAOuotB,EAAY,IAAMhxsB,OAC7D,IACQ4wsB,GAA0B,GAAGposB,OAAOy1uB,GAAgB,CAACD,KAAO1nwB,QAAO,SAAUC,EAAKy6tB,GAC3F,OAAOz6tB,EAAIiyB,OAAO,CAACwosB,EAAWA,EAAY,IAAMvotB,GAAOuotB,EAAY,IAAMhxsB,OACxE,IAaQo+uB,GAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAAS72Q,GAAM82Q,GACb,IAAIvrwB,EAAM,IAAIsxP,IACV/yL,EAAU,IAAIkgD,IACd91G,EAAS,GAKb,SAAS22C,EAAKmyF,GACZlzE,EAAQnjE,IAAIq2I,EAASnqI,MACN,GAAGouB,OAAO+7G,EAAS+5nB,UAAY,GAAI/5nB,EAASg6nB,kBAAoB,IACtE1xwB,SAAQ,SAAUg7H,GACzB,IAAKx2D,EAAQ5qC,IAAIohG,GAAM,CACrB,IAAI22oB,EAAc1rwB,EAAI2Z,IAAIo7G,GAEtB22oB,GACFpstB,EAAKostB,OAIX/iwB,EAAOjO,KAAK+2I,GASd,OAzBA85nB,EAAUxxwB,SAAQ,SAAU03I,GAC1BzxI,EAAI8+D,IAAI2yE,EAASnqI,KAAMmqI,MAkBzB85nB,EAAUxxwB,SAAQ,SAAU03I,GACrBlzE,EAAQ5qC,IAAI89G,EAASnqI,OAExBg4C,EAAKmyF,MAGF9oI,EC/BM,SAASsxoB,GAASvmnB,GAC/B,IAAI0yK,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAInuJ,SAAQ,SAAU/tC,GAC9B+tC,QAAQ/tC,UAAUouC,MAAK,WACrB8tJ,OAAUl0L,EACVhI,EAAQwpB,YAKP0yK,GCEX,IAEIulkB,GAAkB,CACpBztC,UAAW,SACXqtC,UAAW,GACXngjB,SAAU,YAGZ,SAASwgjB,KACP,IAAK,IAAI/5hB,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAGzB,OAAQxxN,EAAKjE,MAAK,SAAUziB,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQmc,0BAIhC,SAAS81vB,GAAgBC,QACL,IAArBA,IACFA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBjlhB,eAC3CA,OAA4C,IAA3BolhB,EAAoCP,GAAkBO,EAC3E,OAAO,SAAsB7tE,EAAW+sE,EAAQl3vB,QAC9B,IAAZA,IACFA,EAAU4yO,GAGZ,IAAI71J,EAAQ,CACVitoB,UAAW,SACXiuC,iBAAkB,GAClBj4vB,QAAStT,OAAOw4C,OAAO,GAAIuytB,GAAiB7khB,GAC5CslhB,cAAe,GACfzntB,SAAU,CACR05oB,UAAWA,EACX+sE,OAAQA,GAEVjooB,WAAY,GACZznG,OAAQ,IAEN2wuB,EAAmB,GACnBrzF,GAAc,EACd9wqB,EAAW,CACb+oF,MAAOA,EACPmuC,WAAY,SAAoBktoB,GAC9B,IAAIp4vB,EAAsC,oBAArBo4vB,EAAkCA,EAAiBr7qB,EAAM/8E,SAAWo4vB,EACzFC,IACAt7qB,EAAM/8E,QAAUtT,OAAOw4C,OAAO,GAAI0tM,EAAgB71J,EAAM/8E,QAASA,GACjE+8E,EAAMu7qB,cAAgB,CACpBnuE,UAAWrzG,GAAUqzG,GAAaksE,GAAkBlsE,GAAaA,EAAUouE,eAAiBlC,GAAkBlsE,EAAUouE,gBAAkB,GAC1IrB,OAAQb,GAAkBa,IAI5B,IAAIe,EFvCG,SAAwBZ,GAErC,IAAIY,EAAmB13Q,GAAM82Q,GAE7B,OAAOD,GAAe9nwB,QAAO,SAAUC,EAAKipwB,GAC1C,OAAOjpwB,EAAIiyB,OAAOy2uB,EAAiBzswB,QAAO,SAAU+xI,GAClD,OAAOA,EAASi7nB,QAAUA,QAE3B,IE+B0BC,CCzEhB,SAAqBpB,GAClC,IAAI/gE,EAAS+gE,EAAU/nwB,QAAO,SAAUgnsB,EAAQpyd,GAC9C,IAAIw0hB,EAAWpiE,EAAOpyd,EAAQ9wO,MAK9B,OAJAkjsB,EAAOpyd,EAAQ9wO,MAAQslwB,EAAWhswB,OAAOw4C,OAAO,GAAIwztB,EAAUx0hB,EAAS,CACrElkO,QAAStT,OAAOw4C,OAAO,GAAIwztB,EAAS14vB,QAASkkO,EAAQlkO,SACrDvM,KAAM/G,OAAOw4C,OAAO,GAAIwztB,EAASjlwB,KAAMywO,EAAQzwO,QAC5CywO,EACEoyd,IACN,IAEH,OAAO5psB,OAAOC,KAAK2psB,GAAQxqsB,KAAI,SAAUc,GACvC,OAAO0psB,EAAO1psB,MD8D4B+rwB,CAAY,GAAGn3uB,OAAOu2uB,EAAkBh7qB,EAAM/8E,QAAQq3vB,aAyC5F,OAvCAt6qB,EAAMk7qB,iBAAmBA,EAAiBzswB,QAAO,SAAU6xD,GACzD,OAAOA,EAAEnuB,WAqJb6tD,EAAMk7qB,iBAAiBpywB,SAAQ,SAAU2oP,GACvC,IAAIp7O,EAAOo7O,EAAMp7O,KACbwlwB,EAAgBpqhB,EAAMxuO,QACtBA,OAA4B,IAAlB44vB,EAA2B,GAAKA,EAC1C7xpB,EAASynI,EAAMznI,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAI8xpB,EAAY9xpB,EAAO,CACrBhqB,MAAOA,EACP3pF,KAAMA,EACNY,SAAUA,EACVgM,QAASA,IAGP84vB,EAAS,aAEbX,EAAiB3xwB,KAAKqywB,GAAaC,OA/H9B9kwB,EAASiQ,UAOlBshc,YAAa,WACX,IAAIu/N,EAAJ,CAIA,IAAIi0F,EAAkBh8qB,EAAMtsC,SACxB05oB,EAAY4uE,EAAgB5uE,UAC5B+sE,EAAS6B,EAAgB7B,OAG7B,GAAKQ,GAAiBvtE,EAAW+sE,GAAjC,CASAn6qB,EAAMmriB,MAAQ,CACZiiE,UAAWyrE,GAAiBzrE,EAAWusE,GAAgBQ,GAAoC,UAA3Bn6qB,EAAM/8E,QAAQk3M,UAC9EggjB,OAAQf,GAAce,IAOxBn6qB,EAAM57D,OAAQ,EACd47D,EAAMitoB,UAAYjtoB,EAAM/8E,QAAQgqtB,UAKhCjtoB,EAAMk7qB,iBAAiBpywB,SAAQ,SAAU03I,GACvC,OAAOxgD,EAAMm7qB,cAAc36nB,EAASnqI,MAAQ1G,OAAOw4C,OAAO,GAAIq4F,EAAS9pI,SAIzE,IAFA,IAEShN,EAAQ,EAAGA,EAAQs2F,EAAMk7qB,iBAAiB/xwB,OAAQO,IAUzD,IAAoB,IAAhBs2F,EAAM57D,MAAV,CAMA,IAAI63uB,EAAwBj8qB,EAAMk7qB,iBAAiBxxwB,GAC/C+4B,EAAKw5uB,EAAsBx5uB,GAC3By5uB,EAAyBD,EAAsBh5vB,QAC/C+G,OAAsC,IAA3BkyvB,EAAoC,GAAKA,EACpD7lwB,EAAO4lwB,EAAsB5lwB,KAEf,oBAAPosB,IACTu9D,EAAQv9D,EAAG,CACTu9D,MAAOA,EACP/8E,QAAS+G,EACT3T,KAAMA,EACNY,SAAUA,KACN+oF,QAjBNA,EAAM57D,OAAQ,EACd16B,GAAS,KAsBfwd,OAAQ8hoB,IAAS,WACf,OAAO,IAAIhimB,SAAQ,SAAU/tC,GAC3BhC,EAASuxc,cACTvvc,EAAQ+mF,SAGZkqB,QAAS,WACPoxpB,IACAvzF,GAAc,IAIlB,IAAK4yF,GAAiBvtE,EAAW+sE,GAK/B,OAAOljwB,EAmCT,SAASqkwB,IACPF,EAAiBtywB,SAAQ,SAAU25B,GACjC,OAAOA,OAET24uB,EAAmB,GAGrB,OAvCAnkwB,EAASk3H,WAAWlrH,GAASokC,MAAK,SAAU24C,IACrC+nlB,GAAe9kqB,EAAQk5vB,eAC1Bl5vB,EAAQk5vB,cAAcn8qB,MAqCnB/oF,GAGJ,IE9PHq+H,GAAU,CACZA,SAAS,GAsCX,QACEj/H,KAAM,iBACN87B,SAAS,EACTspuB,MAAO,QACPh5uB,GAAI,aACJunF,OAxCF,SAAgB6lI,GACd,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACb/oF,EAAW44O,EAAK54O,SAChBgM,EAAU4sO,EAAK5sO,QACfm5vB,EAAkBn5vB,EAAQsM,OAC1BA,OAA6B,IAApB6svB,GAAoCA,EAC7CC,EAAkBp5vB,EAAQmC,OAC1BA,OAA6B,IAApBi3vB,GAAoCA,EAC7C/tvB,EAASwoM,GAAU92H,EAAMtsC,SAASymtB,QAClCoB,EAAgB,GAAG92uB,OAAOu7D,EAAMu7qB,cAAcnuE,UAAWptmB,EAAMu7qB,cAAcpB,QAYjF,OAVI5qvB,GACFgsvB,EAAczywB,SAAQ,SAAUgwrB,GAC9BA,EAAavvrB,iBAAiB,SAAU0N,EAASiQ,OAAQouH,OAIzDlwH,GACFkJ,EAAO/kB,iBAAiB,SAAU0N,EAASiQ,OAAQouH,IAG9C,WACD/lH,GACFgsvB,EAAczywB,SAAQ,SAAUgwrB,GAC9BA,EAAa9vrB,oBAAoB,SAAUiO,EAASiQ,OAAQouH,OAI5DlwH,GACFkJ,EAAOtlB,oBAAoB,SAAUiO,EAASiQ,OAAQouH,MAY1D5+H,KAAM,IC9CO,SAAS4lwB,GAAiBrvC,GACvC,OAAOA,EAAU32tB,MAAM,KAAK,GCFf,SAASimwB,GAAatvC,GACnC,OAAOA,EAAU32tB,MAAM,KAAK,GCDf,SAASkmwB,GAAyBvvC,GAC/C,MAAO,CAAC,MAAO,UAAUj+tB,QAAQi+tB,IAAc,EAAI,IAAM,ICG5C,SAASwvC,GAAe5shB,GACrC,IAOIliG,EAPAy/iB,EAAYv9c,EAAKu9c,UACjBzksB,EAAUknP,EAAKlnP,QACfskuB,EAAYp9e,EAAKo9e,UACjByvC,EAAgBzvC,EAAYqvC,GAAiBrvC,GAAa,KAC1D0vC,EAAY1vC,EAAYsvC,GAAatvC,GAAa,KAClD2vC,EAAUxvE,EAAUvzrB,EAAIuzrB,EAAUjzrB,MAAQ,EAAIxR,EAAQwR,MAAQ,EAC9D0iwB,EAAUzvE,EAAU5mrB,EAAI4mrB,EAAUhzrB,OAAS,EAAIzR,EAAQyR,OAAS,EAGpE,OAAQsiwB,GACN,KAAK/6vB,GACHgsI,EAAU,CACR9zI,EAAG+iwB,EACHp2vB,EAAG4mrB,EAAU5mrB,EAAI7d,EAAQyR,QAE3B,MAEF,KAAKyM,GACH8mI,EAAU,CACR9zI,EAAG+iwB,EACHp2vB,EAAG4mrB,EAAU5mrB,EAAI4mrB,EAAUhzrB,QAE7B,MAEF,KAAKwM,GACH+mI,EAAU,CACR9zI,EAAGuzrB,EAAUvzrB,EAAIuzrB,EAAUjzrB,MAC3BqM,EAAGq2vB,GAEL,MAEF,KAAKt7vB,GACHosI,EAAU,CACR9zI,EAAGuzrB,EAAUvzrB,EAAIlR,EAAQwR,MACzBqM,EAAGq2vB,GAEL,MAEF,QACElvnB,EAAU,CACR9zI,EAAGuzrB,EAAUvzrB,EACb2M,EAAG4mrB,EAAU5mrB,GAInB,IAAI6xR,EAAWqke,EAAgBF,GAAyBE,GAAiB,KAEzE,GAAgB,MAAZrke,EAAkB,CACpB,IAAIh4P,EAAmB,MAAbg4P,EAAmB,SAAW,QAExC,OAAQske,GACN,KAAKj4vB,GACHipI,EAAQ0qJ,GAAY1qJ,EAAQ0qJ,IAAa+0Z,EAAU/spB,GAAO,EAAI13C,EAAQ03C,GAAO,GAC7E,MAEF,KAAKpkB,GACH0xH,EAAQ0qJ,GAAY1qJ,EAAQ0qJ,IAAa+0Z,EAAU/spB,GAAO,EAAI13C,EAAQ03C,GAAO,IAOnF,OAAOstG,EClDT,ICTImvnB,GAAa,CACfn7vB,IAAK,OACLiF,MAAO,OACPC,OAAQ,OACRtF,KAAM,QAgBD,SAASw7vB,GAAY/rhB,GAC1B,IAAIgshB,EAEA7C,EAASnphB,EAAMmphB,OACf8C,EAAajshB,EAAMishB,WACnBhwC,EAAYj8e,EAAMi8e,UAClB0vC,EAAY3rhB,EAAM2rhB,UAClBhvnB,EAAUqjG,EAAMrjG,QAChB3+H,EAAWgiO,EAAMhiO,SACjBkuvB,EAAkBlshB,EAAMkshB,gBACxBC,EAAWnshB,EAAMmshB,SACjBC,EAAepshB,EAAMoshB,aACrBrE,EAAU/nhB,EAAM+nhB,QAChBsE,EAAa1vnB,EAAQ9zI,EACrBA,OAAmB,IAAfwjwB,EAAwB,EAAIA,EAChCC,EAAa3vnB,EAAQnnI,EACrBA,OAAmB,IAAf82vB,EAAwB,EAAIA,EAEhC7rhB,EAAgC,oBAAjB2rhB,EAA8BA,EAAa,CAC5DvjwB,EAAGA,EACH2M,EAAGA,IACA,CACH3M,EAAGA,EACH2M,EAAGA,GAGL3M,EAAI43O,EAAM53O,EACV2M,EAAIirO,EAAMjrO,EACV,IAAI+2vB,EAAO5vnB,EAAQhuE,eAAe,KAC9B69rB,EAAO7vnB,EAAQhuE,eAAe,KAC9B89rB,EAAQl8vB,GACRm8vB,EAAQ/7vB,GACR42H,EAAMjqH,OAEV,GAAI6uvB,EAAU,CACZ,IAAI59gB,EAAeo6gB,GAAgBQ,GAC/BwD,EAAa,eACbC,EAAY,cAchB,GAZIr+gB,IAAiBzoC,GAAUqjjB,IAGmB,WAA5C/uoB,GAFJm0H,EAAepV,GAAmBgwhB,IAECnrvB,UAAsC,aAAbA,IAC1D2uvB,EAAa,eACbC,EAAY,eAKhBr+gB,EAAeA,EAEX0te,IAActrtB,KAAQsrtB,IAAc1rtB,IAAQ0rtB,IAAcrmtB,KAAU+1vB,IAAc1gvB,GACpFyhvB,EAAQ72vB,GAGRL,IAFcuyvB,GAAWx5gB,IAAiBhnH,GAAOA,EAAI24F,eAAiB34F,EAAI24F,eAAe92N,OACzFmlP,EAAao+gB,IACEV,EAAW7iwB,OAC1BoM,GAAK02vB,EAAkB,GAAK,EAG9B,GAAIjwC,IAAc1rtB,KAAS0rtB,IAActrtB,IAAOsrtB,IAAcpmtB,KAAW81vB,IAAc1gvB,GACrFwhvB,EAAQ72vB,GAGR/M,IAFck/vB,GAAWx5gB,IAAiBhnH,GAAOA,EAAI24F,eAAiB34F,EAAI24F,eAAe/2N,MACzFolP,EAAaq+gB,IACEX,EAAW9iwB,MAC1BN,GAAKqjwB,EAAkB,GAAK,EAIhC,IAgBMW,EAhBFC,EAAenuwB,OAAOw4C,OAAO,CAC/Bn5B,SAAUA,GACTmuvB,GAAYL,IAEXt7d,GAAyB,IAAjB47d,EAnFd,SAA2BvthB,GACzB,IAAIh2O,EAAIg2O,EAAKh2O,EACT2M,EAAIqpO,EAAKrpO,EAETiwnB,EADMnonB,OACIm9G,kBAAoB,EAClC,MAAO,CACL5xH,EAAGwc,GAAMxc,EAAI48nB,GAAOA,GAAO,EAC3BjwnB,EAAG6P,GAAM7P,EAAIiwnB,GAAOA,GAAO,GA4EOsnI,CAAkB,CACpDlkwB,EAAGA,EACH2M,EAAGA,IACA,CACH3M,EAAGA,EACH2M,EAAGA,GAML,OAHA3M,EAAI2nS,EAAM3nS,EACV2M,EAAIg7R,EAAMh7R,EAEN02vB,EAGKvtwB,OAAOw4C,OAAO,GAAI21tB,IAAeD,EAAiB,IAAmBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASF,EAAO,IAAM,GAAIM,EAAezsvB,WAAamnH,EAAI9M,kBAAoB,IAAM,EAAI,aAAe5xH,EAAI,OAAS2M,EAAI,MAAQ,eAAiB3M,EAAI,OAAS2M,EAAI,SAAUq3vB,IAG5RluwB,OAAOw4C,OAAO,GAAI21tB,IAAed,EAAkB,IAAoBU,GAASF,EAAOh3vB,EAAI,KAAO,GAAIw2vB,EAAgBS,GAASF,EAAO1jwB,EAAI,KAAO,GAAImjwB,EAAgB5rvB,UAAY,GAAI4rvB,IAwD9L,QACE3mwB,KAAM,gBACN87B,SAAS,EACTspuB,MAAO,cACPh5uB,GAzDF,SAAuBg/Q,GACrB,IAAIzhN,EAAQyhN,EAAMzhN,MACd/8E,EAAUw+R,EAAMx+R,QAChB+6vB,EAAwB/6vB,EAAQi6vB,gBAChCA,OAA4C,IAA1Bc,GAA0CA,EAC5DC,EAAoBh7vB,EAAQk6vB,SAC5BA,OAAiC,IAAtBc,GAAsCA,EACjDC,EAAwBj7vB,EAAQm6vB,aAChCA,OAAyC,IAA1Bc,GAA0CA,EAYzDJ,EAAe,CACjB7wC,UAAWqvC,GAAiBt8qB,EAAMitoB,WAClC0vC,UAAWJ,GAAav8qB,EAAMitoB,WAC9BktC,OAAQn6qB,EAAMtsC,SAASymtB,OACvB8C,WAAYj9qB,EAAMmriB,MAAMgvI,OACxB+C,gBAAiBA,EACjBnE,QAAoC,UAA3B/4qB,EAAM/8E,QAAQk3M,UAGgB,MAArCn6H,EAAMm7qB,cAAcgD,gBACtBn+qB,EAAMv1D,OAAO0vuB,OAASxqwB,OAAOw4C,OAAO,GAAI63C,EAAMv1D,OAAO0vuB,OAAQ4C,GAAYptwB,OAAOw4C,OAAO,GAAI21tB,EAAc,CACvGnwnB,QAAS3tD,EAAMm7qB,cAAcgD,cAC7BnvvB,SAAUgxE,EAAM/8E,QAAQk3M,SACxBgjjB,SAAUA,EACVC,aAAcA,OAIe,MAA7Bp9qB,EAAMm7qB,cAAcrwjB,QACtB9qH,EAAMv1D,OAAOqgL,MAAQn7M,OAAOw4C,OAAO,GAAI63C,EAAMv1D,OAAOqgL,MAAOiyjB,GAAYptwB,OAAOw4C,OAAO,GAAI21tB,EAAc,CACrGnwnB,QAAS3tD,EAAMm7qB,cAAcrwjB,MAC7B97L,SAAU,WACVmuvB,UAAU,EACVC,aAAcA,OAIlBp9qB,EAAMkyC,WAAWiooB,OAASxqwB,OAAOw4C,OAAO,GAAI63C,EAAMkyC,WAAWiooB,OAAQ,CACnE,wBAAyBn6qB,EAAMitoB,aAUjCv2tB,KAAM,ICvGR,QACEL,KAAM,cACN87B,SAAS,EACTspuB,MAAO,QACPh5uB,GA5EF,SAAqBotN,GACnB,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACjBrwF,OAAOC,KAAKowF,EAAMtsC,UAAU5qD,SAAQ,SAAUuN,GAC5C,IAAIyQ,EAAQk5E,EAAMv1D,OAAOp0B,IAAS,GAC9B67H,EAAalyC,EAAMkyC,WAAW77H,IAAS,GACvC1N,EAAUq3F,EAAMtsC,SAASr9C,GAExB+hwB,GAAczvwB,IAAa8vwB,GAAY9vwB,KAO5CgH,OAAOw4C,OAAOx/C,EAAQme,MAAOA,GAC7BnX,OAAOC,KAAKsiI,GAAYppI,SAAQ,SAAUuN,GACxC,IAAI5L,EAAQynI,EAAW77H,IAET,IAAV5L,EACF9B,EAAQkkH,gBAAgBx2G,GAExB1N,EAAQgB,aAAa0M,GAAgB,IAAV5L,EAAiB,GAAKA,WAwDvDu/G,OAlDF,SAAgBgnI,GACd,IAAIhxJ,EAAQgxJ,EAAMhxJ,MACdo+qB,EAAgB,CAClBjE,OAAQ,CACNnrvB,SAAUgxE,EAAM/8E,QAAQk3M,SACxB54M,KAAM,IACNI,IAAK,IACLwrL,OAAQ,KAEV2d,MAAO,CACL97L,SAAU,YAEZo+qB,UAAW,IASb,OAPAz9rB,OAAOw4C,OAAO63C,EAAMtsC,SAASymtB,OAAOrzvB,MAAOs3vB,EAAcjE,QACzDn6qB,EAAMv1D,OAAS2zuB,EAEXp+qB,EAAMtsC,SAASo3J,OACjBn7M,OAAOw4C,OAAO63C,EAAMtsC,SAASo3J,MAAMhkM,MAAOs3vB,EAActzjB,OAGnD,WACLn7M,OAAOC,KAAKowF,EAAMtsC,UAAU5qD,SAAQ,SAAUuN,GAC5C,IAAI1N,EAAUq3F,EAAMtsC,SAASr9C,GACzB67H,EAAalyC,EAAMkyC,WAAW77H,IAAS,GAGvCyQ,EAFkBnX,OAAOC,KAAKowF,EAAMv1D,OAAOk1C,eAAetpE,GAAQ2pF,EAAMv1D,OAAOp0B,GAAQ+nwB,EAAc/nwB,IAE7E9D,QAAO,SAAUuU,EAAOgV,GAElD,OADAhV,EAAMgV,GAAY,GACXhV,IACN,IAEEsxvB,GAAczvwB,IAAa8vwB,GAAY9vwB,KAI5CgH,OAAOw4C,OAAOx/C,EAAQme,MAAOA,GAC7BnX,OAAOC,KAAKsiI,GAAYppI,SAAQ,SAAUy2U,GACxC52U,EAAQkkH,gBAAgB0yN,YAa9Bg7b,SAAU,CAAC,kBCnCb,QACElkwB,KAAM,SACN87B,SAAS,EACTspuB,MAAO,OACPlB,SAAU,CAAC,iBACX93uB,GA5BF,SAAgBuuN,GACd,IAAIhxJ,EAAQgxJ,EAAMhxJ,MACd/8E,EAAU+tO,EAAM/tO,QAChB5M,EAAO26O,EAAM36O,KACbgowB,EAAkBp7vB,EAAQ7O,OAC1BA,OAA6B,IAApBiqwB,EAA6B,CAAC,EAAG,GAAKA,EAC/C3nwB,EAAOm2tB,GAAAA,QAAkB,SAAUr6tB,EAAKy6tB,GAE1C,OADAz6tB,EAAIy6tB,GA5BD,SAAiCA,EAAW9hG,EAAO/2nB,GACxD,IAAIsowB,EAAgBJ,GAAiBrvC,GACjCqxC,EAAiB,CAAC/8vB,GAAMI,IAAK3S,QAAQ0twB,IAAkB,GAAK,EAAI,EAEhE7shB,EAAyB,oBAAXz7O,EAAwBA,EAAOzE,OAAOw4C,OAAO,GAAIgjlB,EAAO,CACxE8hG,UAAWA,KACP74tB,EACFmqwB,EAAW1uhB,EAAK,GAChBrhN,EAAWqhN,EAAK,GAIpB,OAFA0uhB,EAAWA,GAAY,EACvB/vuB,GAAYA,GAAY,GAAK8vuB,EACtB,CAAC/8vB,GAAMqF,IAAO5X,QAAQ0twB,IAAkB,EAAI,CACjD7iwB,EAAG20B,EACHhoB,EAAG+3vB,GACD,CACF1kwB,EAAG0kwB,EACH/3vB,EAAGgoB,GAWcgwuB,CAAwBvxC,EAAWjtoB,EAAMmriB,MAAO/2nB,GAC1D5B,IACN,IACCiswB,EAAwB/nwB,EAAKspF,EAAMitoB,WACnCpztB,EAAI4kwB,EAAsB5kwB,EAC1B2M,EAAIi4vB,EAAsBj4vB,EAEW,MAArCw5E,EAAMm7qB,cAAcgD,gBACtBn+qB,EAAMm7qB,cAAcgD,cAActkwB,GAAKA,EACvCmmF,EAAMm7qB,cAAcgD,cAAc33vB,GAAKA,GAGzCw5E,EAAMm7qB,cAAc9kwB,GAAQK,IC3C1Bw7E,GAAO,CACT3wE,KAAM,QACNqF,MAAO,OACPC,OAAQ,MACRlF,IAAK,UAEQ,SAAS+8vB,GAAqBzxC,GAC3C,OAAOA,EAAU17qB,QAAQ,0BAA0B,SAAUsvC,GAC3D,OAAO3O,GAAK2O,MCRhB,IAAI3O,GAAO,CACTxtE,MAAO,MACPuX,IAAK,SAEQ,SAAS0ivB,GAA8B1xC,GACpD,OAAOA,EAAU17qB,QAAQ,cAAc,SAAUsvC,GAC/C,OAAO3O,GAAK2O,MCLD,SAASj5E,GAAStT,EAAQqT,GACvC,IAAI45P,EAAW55P,EAAM6iH,aAAe7iH,EAAM6iH,cAE1C,GAAIl2H,EAAOsT,SAASD,GAClB,OAAO,EAEJ,GAAI45P,GAAY82f,GAAa92f,GAAW,CACzC,IAAIp6N,EAAOx/B,EAEX,EAAG,CACD,GAAIw/B,GAAQ7yC,EAAOsqwB,WAAWz3tB,GAC5B,OAAO,EAITA,EAAOA,EAAKl0B,YAAck0B,EAAK7T,WACxB6T,GAIb,OAAO,ECrBM,SAAS03tB,GAAiB/6vB,GACvC,OAAOnU,OAAOw4C,OAAO,GAAIrkC,EAAM,CAC7BvC,KAAMuC,EAAKjK,EACX8H,IAAKmC,EAAK0C,EACVI,MAAO9C,EAAKjK,EAAIiK,EAAK3J,MACrB0M,OAAQ/C,EAAK0C,EAAI1C,EAAK1J,SCuB1B,SAAS0kwB,GAA2Bn2wB,EAASo2wB,GAC3C,OAAOA,IAAmBvzR,GAAWqzR,GC1BxB,SAAyBl2wB,GACtC,IAAI4vI,EAAMu+E,GAAUnuN,GAChB0nD,EAAO85L,GAAmBxhP,GAC1BuoO,EAAiB34F,EAAI24F,eACrB/2N,EAAQk2C,EAAKgY,YACbjuD,EAASi2C,EAAKH,aACdr2C,EAAI,EACJ2M,EAAI,EAuBR,OAjBI0qN,IACF/2N,EAAQ+2N,EAAe/2N,MACvBC,EAAS82N,EAAe92N,OASnB,iCAAiC2xB,KAAKu7F,UAAUI,aACnD7tH,EAAIq3N,EAAet+E,WACnBpsI,EAAI0qN,EAAe/gL,YAIhB,CACLh2C,MAAOA,EACPC,OAAQA,EACRP,EAAGA,EAAI6+vB,GAAoB/vwB,GAC3B6d,EAAGA,GDRiDw4vB,CAAgBr2wB,IAAYoxlB,GAAUglL,GAd9F,SAAoCp2wB,GAClC,IAAImb,EAAOgB,GAAsBnc,GASjC,OARAmb,EAAKnC,IAAMmC,EAAKnC,IAAMhZ,EAAQopC,UAC9BjuB,EAAKvC,KAAOuC,EAAKvC,KAAO5Y,EAAQqpC,WAChCluB,EAAK+C,OAAS/C,EAAKnC,IAAMhZ,EAAQunD,aACjCpsC,EAAK8C,MAAQ9C,EAAKvC,KAAO5Y,EAAQ0/D,YACjCvkD,EAAK3J,MAAQxR,EAAQ0/D,YACrBvkD,EAAK1J,OAASzR,EAAQunD,aACtBpsC,EAAKjK,EAAIiK,EAAKvC,KACduC,EAAK0C,EAAI1C,EAAKnC,IACPmC,EAIuGm7vB,CAA2BF,GAAkBF,GEtB9I,SAAyBl2wB,GACtC,IAAI66Q,EAEAnzN,EAAO85L,GAAmBxhP,GAC1Bu2wB,EAAY1G,GAAgB7vwB,GAC5ByoC,EAA0D,OAAlDoyO,EAAwB76Q,EAAQ6gI,oBAAyB,EAASg6I,EAAsBpyO,KAChGj3B,EAAQsU,GAAI4hC,EAAKokJ,YAAapkJ,EAAKgY,YAAaj3B,EAAOA,EAAKqjK,YAAc,EAAGrjK,EAAOA,EAAKi3B,YAAc,GACvGjuD,EAASqU,GAAI4hC,EAAKJ,aAAcI,EAAKH,aAAc9e,EAAOA,EAAK6e,aAAe,EAAG7e,EAAOA,EAAK8e,aAAe,GAC5Gr2C,GAAKqlwB,EAAUrvuB,WAAa6ouB,GAAoB/vwB,GAChD6d,GAAK04vB,EAAUpvuB,UAMnB,MAJiD,QAA7Cs7F,GAAiBh6F,GAAQif,GAAM6zF,YACjCrqI,GAAK4U,GAAI4hC,EAAKgY,YAAaj3B,EAAOA,EAAKi3B,YAAc,GAAKluD,GAGrD,CACLA,MAAOA,EACPC,OAAQA,EACRP,EAAGA,EACH2M,EAAGA,GFGuK24vB,CAAgBh1hB,GAAmBxhP,KAuBlM,SAASy2wB,GAAgBz2wB,EAASolB,EAAUsxvB,GACzD,IAAIC,EAAmC,oBAAbvxvB,EAlB5B,SAA4BplB,GAC1B,IAAI42wB,EAAkBjG,GAAkBh/X,GAAc3xY,IAElD62wB,EADoB,CAAC,WAAY,SAASxwwB,QAAQo8H,GAAiBziI,GAASqmB,WAAa,GACnDopvB,GAAczvwB,GAAWgxwB,GAAgBhxwB,GAAWA,EAE9F,OAAKoxlB,GAAUylL,GAKRD,EAAgB9wwB,QAAO,SAAUswwB,GACtC,OAAOhlL,GAAUglL,IAAmBn3vB,GAASm3vB,EAAgBS,IAAmD,SAAhC/G,GAAYsG,MALrF,GAYkDU,CAAmB92wB,GAAW,GAAG87B,OAAO1W,GAC/FwxvB,EAAkB,GAAG96uB,OAAO66uB,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgBhtwB,QAAO,SAAUqtwB,EAASb,GAC3D,IAAIj7vB,EAAOg7vB,GAA2Bn2wB,EAASo2wB,GAK/C,OAJAa,EAAQj+vB,IAAM8M,GAAI3K,EAAKnC,IAAKi+vB,EAAQj+vB,KACpCi+vB,EAAQh5vB,MAAQ+H,GAAI7K,EAAK8C,MAAOg5vB,EAAQh5vB,OACxCg5vB,EAAQ/4vB,OAAS8H,GAAI7K,EAAK+C,OAAQ+4vB,EAAQ/4vB,QAC1C+4vB,EAAQr+vB,KAAOkN,GAAI3K,EAAKvC,KAAMq+vB,EAAQr+vB,MAC/Bq+vB,IACNd,GAA2Bn2wB,EAAS+2wB,IAKvC,OAJAC,EAAaxlwB,MAAQwlwB,EAAa/4vB,MAAQ+4vB,EAAap+vB,KACvDo+vB,EAAavlwB,OAASulwB,EAAa94vB,OAAS84vB,EAAah+vB,IACzDg+vB,EAAa9lwB,EAAI8lwB,EAAap+vB,KAC9Bo+vB,EAAan5vB,EAAIm5vB,EAAah+vB,IACvBg+vB,EGnEM,SAASE,GAAmBC,GACzC,OAAOnwwB,OAAOw4C,OAAO,GCDd,CACLxmC,IAAK,EACLiF,MAAO,EACPC,OAAQ,EACRtF,KAAM,GDHuCu+vB,GEFlC,SAASC,GAAgBt1wB,EAAOmF,GAC7C,OAAOA,EAAK2C,QAAO,SAAUytwB,EAASnwwB,GAEpC,OADAmwwB,EAAQnwwB,GAAOpF,EACRu1wB,IACN,ICMU,SAASC,GAAejgrB,EAAO/8E,QAC5B,IAAZA,IACFA,EAAU,IAGZ,IAAI+G,EAAW/G,EACXi9vB,EAAqBl2vB,EAASijtB,UAC9BA,OAAmC,IAAvBizC,EAAgClgrB,EAAMitoB,UAAYizC,EAC9DC,EAAoBn2vB,EAAS+D,SAC7BA,OAAiC,IAAtBoyvB,ExBXY,kBwBWqCA,EAC5DC,EAAwBp2vB,EAASq1vB,aACjCA,OAAyC,IAA1Be,EAAmC50R,GAAW40R,EAC7DC,EAAwBr2vB,EAASs2vB,eACjCA,OAA2C,IAA1BD,EAAmClG,GAASkG,EAC7DE,EAAuBv2vB,EAASw2vB,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmBz2vB,EAASgN,QAC5BA,OAA+B,IAArBypvB,EAA8B,EAAIA,EAC5CX,EAAgBD,GAAsC,kBAAZ7ovB,EAAuBA,EAAU+ovB,GAAgB/ovB,EAASkjvB,KACpGwG,EAAaJ,IAAmBnG,GxBlBf,YwBkBoCA,GACrD8C,EAAaj9qB,EAAMmriB,MAAMgvI,OACzBxxwB,EAAUq3F,EAAMtsC,SAAS8stB,EAAcE,EAAaJ,GACpDK,EAAqBvB,GAAgBrlL,GAAUpxlB,GAAWA,EAAUA,EAAQ6ywB,gBAAkBrxhB,GAAmBnqJ,EAAMtsC,SAASymtB,QAASpsvB,EAAUsxvB,GACnJuB,EAAsB97vB,GAAsBk7E,EAAMtsC,SAAS05oB,WAC3D+wE,EAAgB1B,GAAe,CACjCrvE,UAAWwzE,EACXj4wB,QAASs0wB,EACT9ijB,SAAU,WACV8ygB,UAAWA,IAET4zC,EAAmBhC,GAAiBlvwB,OAAOw4C,OAAO,GAAI80tB,EAAYkB,IAClE2C,EAAoBR,IAAmBnG,GAAS0G,EAAmBD,EAGnEG,EAAkB,CACpBp/vB,IAAKg/vB,EAAmBh/vB,IAAMm/vB,EAAkBn/vB,IAAMm+vB,EAAcn+vB,IACpEkF,OAAQi6vB,EAAkBj6vB,OAAS85vB,EAAmB95vB,OAASi5vB,EAAcj5vB,OAC7EtF,KAAMo/vB,EAAmBp/vB,KAAOu/vB,EAAkBv/vB,KAAOu+vB,EAAcv+vB,KACvEqF,MAAOk6vB,EAAkBl6vB,MAAQ+5vB,EAAmB/5vB,MAAQk5vB,EAAcl5vB,OAExEo6vB,EAAahhrB,EAAMm7qB,cAAc/mwB,OAErC,GAAIkswB,IAAmBnG,IAAU6G,EAAY,CAC3C,IAAI5swB,EAAS4swB,EAAW/zC,GACxBt9tB,OAAOC,KAAKmxwB,GAAiBj4wB,SAAQ,SAAU+G,GAC7C,IAAIoxwB,EAAW,CAACr6vB,GAAOC,IAAQ7X,QAAQa,IAAQ,EAAI,GAAK,EACpD+sD,EAAO,CAACj7C,GAAKkF,IAAQ7X,QAAQa,IAAQ,EAAI,IAAM,IACnDkxwB,EAAgBlxwB,IAAQuE,EAAOwoD,GAAQqktB,KAI3C,OAAOF,EC4ET,QACE1qwB,KAAM,OACN87B,SAAS,EACTspuB,MAAO,OACPh5uB,GA5HF,SAAcotN,GACZ,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACb/8E,EAAU4sO,EAAK5sO,QACf5M,EAAOw5O,EAAKx5O,KAEhB,IAAI2pF,EAAMm7qB,cAAc9kwB,GAAM8unB,MAA9B,CAoCA,IAhCA,IAAI+7I,EAAoBj+vB,EAAQo1R,SAC5B8oe,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBn+vB,EAAQo+vB,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8Bt+vB,EAAQu+vB,mBACtCxqvB,EAAU/T,EAAQ+T,QAClBjJ,EAAW9K,EAAQ8K,SACnBsxvB,EAAep8vB,EAAQo8vB,aACvBmB,EAAcv9vB,EAAQu9vB,YACtBiB,EAAwBx+vB,EAAQy+vB,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwB1+vB,EAAQ0+vB,sBAChCC,EAAqB5hrB,EAAM/8E,QAAQgqtB,UACnCyvC,EAAgBJ,GAAiBsF,GAEjCJ,EAAqBD,IADH7E,IAAkBkF,IACqCF,EAAiB,CAAChD,GAAqBkD,IAjCtH,SAAuC30C,GACrC,GAAIqvC,GAAiBrvC,KAAegtC,GAClC,MAAO,GAGT,IAAI4H,EAAoBnD,GAAqBzxC,GAC7C,MAAO,CAAC0xC,GAA8B1xC,GAAY40C,EAAmBlD,GAA8BkD,IA2BwCC,CAA8BF,IACrK/0C,EAAa,CAAC+0C,GAAoBn9uB,OAAO+8uB,GAAoBjvwB,QAAO,SAAUC,EAAKy6tB,GACrF,OAAOz6tB,EAAIiyB,OAAO63uB,GAAiBrvC,KAAegtC,GCvCvC,SAA8Bj6qB,EAAO/8E,QAClC,IAAZA,IACFA,EAAU,IAGZ,IAAI+G,EAAW/G,EACXgqtB,EAAYjjtB,EAASijtB,UACrBl/sB,EAAW/D,EAAS+D,SACpBsxvB,EAAer1vB,EAASq1vB,aACxBrovB,EAAUhN,EAASgN,QACnB0qvB,EAAiB13vB,EAAS03vB,eAC1BK,EAAwB/3vB,EAAS23vB,sBACjCA,OAAkD,IAA1BI,EAAmCC,GAAgBD,EAC3EpF,EAAYJ,GAAatvC,GACzBJ,EAAa8vC,EAAY+E,EAAiBtH,GAAsBA,GAAoB3rwB,QAAO,SAAUw+tB,GACvG,OAAOsvC,GAAatvC,KAAe0vC,KAChCzC,GACD+H,EAAoBp1C,EAAWp+tB,QAAO,SAAUw+tB,GAClD,OAAO00C,EAAsB3ywB,QAAQi+tB,IAAc,KAGpB,IAA7Bg1C,EAAkB94wB,SACpB84wB,EAAoBp1C,GAQtB,IAAIq1C,EAAYD,EAAkB1vwB,QAAO,SAAUC,EAAKy6tB,GAOtD,OANAz6tB,EAAIy6tB,GAAagzC,GAAejgrB,EAAO,CACrCitoB,UAAWA,EACXl/sB,SAAUA,EACVsxvB,aAAcA,EACdrovB,QAASA,IACRslvB,GAAiBrvC,IACbz6tB,IACN,IACH,OAAO7C,OAAOC,KAAKsywB,GAAW7ztB,MAAK,SAAUC,EAAGC,GAC9C,OAAO2ztB,EAAU5ztB,GAAK4ztB,EAAU3ztB,MDDyB4ztB,CAAqBnirB,EAAO,CACnFitoB,UAAWA,EACXl/sB,SAAUA,EACVsxvB,aAAcA,EACdrovB,QAASA,EACT0qvB,eAAgBA,EAChBC,sBAAuBA,IACpB10C,KACJ,IACCm1C,EAAgBpirB,EAAMmriB,MAAMiiE,UAC5B6vE,EAAaj9qB,EAAMmriB,MAAMgvI,OACzBkI,EAAY,IAAIhihB,IAChBiihB,GAAqB,EACrBC,EAAwB11C,EAAW,GAE9Bj4tB,EAAI,EAAGA,EAAIi4tB,EAAW1juB,OAAQyL,IAAK,CAC1C,IAAIq4tB,EAAYJ,EAAWj4tB,GAEvB4twB,EAAiBlG,GAAiBrvC,GAElCw1C,EAAmBlG,GAAatvC,KAAevotB,GAC/CwxW,EAAa,CAACv0W,GAAKkF,IAAQ7X,QAAQwzwB,IAAmB,EACtDniuB,EAAM61U,EAAa,QAAU,SAC7BlrP,EAAWi1oB,GAAejgrB,EAAO,CACnCitoB,UAAWA,EACXl/sB,SAAUA,EACVsxvB,aAAcA,EACdmB,YAAaA,EACbxpvB,QAASA,IAEP0rvB,EAAoBxsZ,EAAausZ,EAAmB77vB,GAAQrF,GAAOkhwB,EAAmB57vB,GAASlF,GAE/FygwB,EAAc/huB,GAAO48tB,EAAW58tB,KAClCqiuB,EAAoBhE,GAAqBgE,IAG3C,IAAIC,EAAmBjE,GAAqBgE,GACxCE,EAAS,GAUb,GARIzB,GACFyB,EAAOn5wB,KAAKuhI,EAASw3oB,IAAmB,GAGtClB,GACFsB,EAAOn5wB,KAAKuhI,EAAS03oB,IAAsB,EAAG13oB,EAAS23oB,IAAqB,GAG1EC,EAAO/juB,OAAM,SAAU46P,GACzB,OAAOA,KACL,CACF8oe,EAAwBt1C,EACxBq1C,GAAqB,EACrB,MAGFD,EAAUx0sB,IAAIo/pB,EAAW21C,GAG3B,GAAIN,EAqBF,IAnBA,IAEIpzZ,EAAQ,SAAe12P,GACzB,IAAIqqpB,EAAmBh2C,EAAW3ntB,MAAK,SAAU+ntB,GAC/C,IAAI21C,EAASP,EAAU35vB,IAAIuktB,GAE3B,GAAI21C,EACF,OAAOA,EAAOt0wB,MAAM,EAAGkqH,GAAI35E,OAAM,SAAU46P,GACzC,OAAOA,QAKb,GAAIope,EAEF,OADAN,EAAwBM,EACjB,SAIFrqpB,EAnBYkppB,EAAiB,EAAI,EAmBZlppB,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFF02P,EAAM12P,GAEK,MAItBx4B,EAAMitoB,YAAcs1C,IACtBvirB,EAAMm7qB,cAAc9kwB,GAAM8unB,OAAQ,EAClCnliB,EAAMitoB,UAAYs1C,EAClBvirB,EAAM57D,OAAQ,KAUhBo2uB,iBAAkB,CAAC,UACnB9jwB,KAAM,CACJyunB,OAAO,IE/IJ,SAAS29I,GAAOn0vB,EAAKlkB,EAAOgkB,GACjC,OAAOs0vB,GAAQp0vB,EAAKq0vB,GAAQv4wB,EAAOgkB,ICqIrC,QACEpY,KAAM,kBACN87B,SAAS,EACTspuB,MAAO,OACPh5uB,GA/HF,SAAyBotN,GACvB,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACb/8E,EAAU4sO,EAAK5sO,QACf5M,EAAOw5O,EAAKx5O,KACZ6qwB,EAAoBj+vB,EAAQo1R,SAC5B8oe,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBn+vB,EAAQo+vB,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDrzvB,EAAW9K,EAAQ8K,SACnBsxvB,EAAep8vB,EAAQo8vB,aACvBmB,EAAcv9vB,EAAQu9vB,YACtBxpvB,EAAU/T,EAAQ+T,QAClBisvB,EAAkBhgwB,EAAQigwB,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBlgwB,EAAQmgwB,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDn4oB,EAAWi1oB,GAAejgrB,EAAO,CACnCjyE,SAAUA,EACVsxvB,aAAcA,EACdrovB,QAASA,EACTwpvB,YAAaA,IAEX9D,EAAgBJ,GAAiBt8qB,EAAMitoB,WACvC0vC,EAAYJ,GAAav8qB,EAAMitoB,WAC/Bo2C,GAAmB1G,EACnBtke,EAAWmke,GAAyBE,GACpC2E,ECrCY,MDqCShpe,ECrCH,IAAM,IDsCxB8le,EAAgBn+qB,EAAMm7qB,cAAcgD,cACpCiE,EAAgBpirB,EAAMmriB,MAAMiiE,UAC5B6vE,EAAaj9qB,EAAMmriB,MAAMgvI,OACzBmJ,EAA4C,oBAAjBF,EAA8BA,EAAazzwB,OAAOw4C,OAAO,GAAI63C,EAAMmriB,MAAO,CACvG8hG,UAAWjtoB,EAAMitoB,aACbm2C,EACFG,EAA2D,kBAAtBD,EAAiC,CACxEjre,SAAUire,EACVjC,QAASiC,GACP3zwB,OAAOw4C,OAAO,CAChBkwP,SAAU,EACVgpe,QAAS,GACRiC,GACCE,EAAsBxjrB,EAAMm7qB,cAAc/mwB,OAAS4rF,EAAMm7qB,cAAc/mwB,OAAO4rF,EAAMitoB,WAAa,KACjGv2tB,EAAO,CACTmD,EAAG,EACH2M,EAAG,GAGL,GAAK23vB,EAAL,CAIA,GAAIgD,EAAe,CACjB,IAAIsC,EAEAC,EAAwB,MAAbrre,EAAmB12R,GAAMJ,GACpCoiwB,EAAuB,MAAbtre,EAAmBxxR,GAASD,GACtCy5B,EAAmB,MAAbg4P,EAAmB,SAAW,QACpCjkS,EAAS+pwB,EAAc9le,GACvB1pR,EAAMva,EAAS42H,EAAS04oB,GACxBj1vB,EAAMra,EAAS42H,EAAS24oB,GACxB/6jB,EAAWs6jB,GAAUjG,EAAW58tB,GAAO,EAAI,EAC3C45jB,EAAS0iK,IAAcj4vB,GAAQ09vB,EAAc/huB,GAAO48tB,EAAW58tB,GAC/Dsqf,EAASgyO,IAAcj4vB,IAASu4vB,EAAW58tB,IAAQ+huB,EAAc/huB,GAGjEujuB,EAAe5jrB,EAAMtsC,SAASo3J,MAC9Bw4N,EAAY4/V,GAAUU,EAAexK,GAAcwK,GAAgB,CACrEzpwB,MAAO,EACPC,OAAQ,GAENypwB,EAAqB7jrB,EAAMm7qB,cAAc,oBAAsBn7qB,EAAMm7qB,cAAc,oBAAoBnkvB,QNhFtG,CACLrV,IAAK,EACLiF,MAAO,EACPC,OAAQ,EACRtF,KAAM,GM6EFuiwB,EAAkBD,EAAmBH,GACrCK,EAAkBF,EAAmBF,GAMrCK,EAAWlB,GAAO,EAAGV,EAAc/huB,GAAMijY,EAAUjjY,IACnDk1P,EAAY8te,EAAkBjB,EAAc/huB,GAAO,EAAIuoK,EAAWo7jB,EAAWF,EAAkBP,EAA4Blre,SAAW4hU,EAAS+pK,EAAWF,EAAkBP,EAA4Blre,SACxM7C,EAAY6te,GAAmBjB,EAAc/huB,GAAO,EAAIuoK,EAAWo7jB,EAAWD,EAAkBR,EAA4Blre,SAAWsyP,EAASq5O,EAAWD,EAAkBR,EAA4Blre,SACzM4re,EAAoBjkrB,EAAMtsC,SAASo3J,OAAS6ujB,GAAgB35qB,EAAMtsC,SAASo3J,OAC3Eo5jB,EAAeD,EAAiC,MAAb5re,EAAmB4re,EAAkBlyuB,WAAa,EAAIkyuB,EAAkBjyuB,YAAc,EAAI,EAC7HmyuB,EAAwH,OAAjGV,EAA+C,MAAvBD,OAA8B,EAASA,EAAoBnre,IAAqBore,EAAwB,EAEvJW,EAAYhwwB,EAASohS,EAAY2ue,EACjCE,EAAkBvB,GAAOI,EAASF,GAAQr0vB,EAF9Bva,EAASmhS,EAAY4ue,EAAsBD,GAEKv1vB,EAAKva,EAAQ8uwB,EAASH,GAAQt0vB,EAAK21vB,GAAa31vB,GAChH0vvB,EAAc9le,GAAYgse,EAC1B3twB,EAAK2hS,GAAYgse,EAAkBjwwB,EAGrC,GAAIktwB,EAAc,CAChB,IAAIgD,EAEAC,EAAyB,MAAblse,EAAmB12R,GAAMJ,GAErCijwB,GAAwB,MAAbnse,EAAmBxxR,GAASD,GAEvClS,GAAUypwB,EAAckD,GAExBzgiB,GAAmB,MAAZygiB,EAAkB,SAAW,QAEpCxlR,GAAOnnf,GAAUs2H,EAASu5oB,GAE1BzoR,GAAOpnf,GAAUs2H,EAASw5oB,IAE1BC,IAAuD,IAAxC,CAAC9iwB,GAAKJ,IAAMvS,QAAQ0twB,GAEnCgI,GAAyH,OAAjGJ,EAAgD,MAAvBd,OAA8B,EAASA,EAAoBnC,IAAoBiD,EAAyB,EAEzJK,GAAaF,GAAe5oR,GAAOnnf,GAAU0twB,EAAcxhiB,IAAQq8hB,EAAWr8hB,IAAQ8jiB,GAAuBnB,EAA4BlC,QAEzIuD,GAAaH,GAAe/vwB,GAAU0twB,EAAcxhiB,IAAQq8hB,EAAWr8hB,IAAQ8jiB,GAAuBnB,EAA4BlC,QAAUvlR,GAE5I+oR,GAAmB3B,GAAUuB,GDzH9B,SAAwB91vB,EAAKlkB,EAAOgkB,GACzC,IAAIihC,EAAIoztB,GAAOn0vB,EAAKlkB,EAAOgkB,GAC3B,OAAOihC,EAAIjhC,EAAMA,EAAMihC,ECuH2Bo1tB,CAAeH,GAAYjwwB,GAASkwwB,IAAc9B,GAAOI,EAASyB,GAAa9oR,GAAMnnf,GAASwuwB,EAAS0B,GAAa9oR,IAEpKqiR,EAAckD,GAAWwD,GACzBnuwB,EAAK2qwB,GAAWwD,GAAmBnwwB,GAGrCsrF,EAAMm7qB,cAAc9kwB,GAAQK,IAS5B8jwB,iBAAkB,CAAC,WEhDrB,QACEnkwB,KAAM,QACN87B,SAAS,EACTspuB,MAAO,OACPh5uB,GA9EF,SAAeotN,GACb,IAAIk1hB,EAEA/krB,EAAQ6vJ,EAAK7vJ,MACb3pF,EAAOw5O,EAAKx5O,KACZ4M,EAAU4sO,EAAK5sO,QACf2gwB,EAAe5jrB,EAAMtsC,SAASo3J,MAC9BqzjB,EAAgBn+qB,EAAMm7qB,cAAcgD,cACpCzB,EAAgBJ,GAAiBt8qB,EAAMitoB,WACvCrwqB,EAAO4/sB,GAAyBE,GAEhCr8tB,EADa,CAAC9+B,GAAMqF,IAAO5X,QAAQ0twB,IAAkB,EAClC,SAAW,QAElC,GAAKkH,GAAiBzF,EAAtB,CAIA,IAAI2B,EAxBgB,SAAyB9ovB,EAASgpE,GAItD,OAAO6/qB,GAAsC,kBAH7C7ovB,EAA6B,oBAAZA,EAAyBA,EAAQrnB,OAAOw4C,OAAO,GAAI63C,EAAMmriB,MAAO,CAC/E8hG,UAAWjtoB,EAAMitoB,aACbj2sB,GACkDA,EAAU+ovB,GAAgB/ovB,EAASkjvB,KAoBvE8K,CAAgB/hwB,EAAQ+T,QAASgpE,GACjDsjV,EAAY81V,GAAcwK,GAC1BqB,EAAmB,MAATrotB,EAAej7C,GAAMJ,GAC/B2jwB,EAAmB,MAATtotB,EAAe/1C,GAASD,GAClCu+vB,EAAUnlrB,EAAMmriB,MAAMiiE,UAAU/spB,GAAO2/C,EAAMmriB,MAAMiiE,UAAUxwoB,GAAQuhtB,EAAcvhtB,GAAQojC,EAAMmriB,MAAMgvI,OAAO95tB,GAC9G+kuB,EAAYjH,EAAcvhtB,GAAQojC,EAAMmriB,MAAMiiE,UAAUxwoB,GACxDqntB,EAAoBtK,GAAgBiK,GACpCyB,EAAapB,EAA6B,MAATrntB,EAAeqntB,EAAkB/ztB,cAAgB,EAAI+ztB,EAAkB57sB,aAAe,EAAI,EAC3Hi9sB,EAAoBH,EAAU,EAAIC,EAAY,EAG9Cz2vB,EAAMmxvB,EAAcmF,GACpBx2vB,EAAM42vB,EAAa/hW,EAAUjjY,GAAOy/tB,EAAcoF,GAClD/4vB,EAASk5vB,EAAa,EAAI/hW,EAAUjjY,GAAO,EAAIiluB,EAC/ClxwB,EAAS0uwB,GAAOn0vB,EAAKxC,EAAQsC,GAE7B82vB,EAAW3otB,EACfojC,EAAMm7qB,cAAc9kwB,KAAS0uwB,EAAwB,IAA0BQ,GAAYnxwB,EAAQ2wwB,EAAsBS,aAAepxwB,EAAS+X,EAAQ44vB,KA6CzJ/6pB,OA1CF,SAAgBgnI,GACd,IAAIhxJ,EAAQgxJ,EAAMhxJ,MAEdylrB,EADUz0hB,EAAM/tO,QACWta,QAC3Bi7wB,OAAoC,IAArB6B,EAA8B,sBAAwBA,EAErD,MAAhB7B,IAKwB,kBAAjBA,IACTA,EAAe5jrB,EAAMtsC,SAASymtB,OAAO13rB,cAAcmhsB,MAahDh8vB,GAASo4E,EAAMtsC,SAASymtB,OAAQyJ,KAQrC5jrB,EAAMtsC,SAASo3J,MAAQ84jB,IAUvBrJ,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBChGrB,SAASkL,GAAe16oB,EAAUlnH,EAAM6hwB,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjB9rwB,EAAG,EACH2M,EAAG,IAIA,CACL7E,IAAKqpH,EAASrpH,IAAMmC,EAAK1J,OAASurwB,EAAiBn/vB,EACnDI,MAAOokH,EAASpkH,MAAQ9C,EAAK3J,MAAQwrwB,EAAiB9rwB,EACtDgN,OAAQmkH,EAASnkH,OAAS/C,EAAK1J,OAASurwB,EAAiBn/vB,EACzDjF,KAAMypH,EAASzpH,KAAOuC,EAAK3J,MAAQwrwB,EAAiB9rwB,GAIxD,SAAS+rwB,GAAsB56oB,GAC7B,MAAO,CAACrpH,GAAKiF,GAAOC,GAAQtF,IAAM6J,MAAK,SAAUyxC,GAC/C,OAAOmuE,EAASnuE,IAAS,KAiC7B,IC3CIgptB,GAA4BjL,GAAgB,CAC9CI,iBAFqB,CAAC8K,GtBQxB,CACEzvwB,KAAM,gBACN87B,SAAS,EACTspuB,MAAO,OACPh5uB,GApBF,SAAuBotN,GACrB,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACb3pF,EAAOw5O,EAAKx5O,KAKhB2pF,EAAMm7qB,cAAc9kwB,GAAQomwB,GAAe,CACzCrvE,UAAWptmB,EAAMmriB,MAAMiiE,UACvBzksB,QAASq3F,EAAMmriB,MAAMgvI,OACrBhgjB,SAAU,WACV8ygB,UAAWjtoB,EAAMitoB,aAUnBv2tB,KAAM,IsBb+CqvwB,GAAeC,GAAa5xwB,GAAQg8N,GAAM61iB,GAAiBn7jB,GD4ClH,CACEz0M,KAAM,OACN87B,SAAS,EACTspuB,MAAO,OACPjB,iBAAkB,CAAC,mBACnB/3uB,GAlCF,SAAcotN,GACZ,IAAI7vJ,EAAQ6vJ,EAAK7vJ,MACb3pF,EAAOw5O,EAAKx5O,KACZ+rwB,EAAgBpirB,EAAMmriB,MAAMiiE,UAC5B6vE,EAAaj9qB,EAAMmriB,MAAMgvI,OACzBwL,EAAmB3lrB,EAAMm7qB,cAAc8K,gBACvCC,EAAoBjG,GAAejgrB,EAAO,CAC5CsgrB,eAAgB,cAEd6F,EAAoBlG,GAAejgrB,EAAO,CAC5CwgrB,aAAa,IAEX4F,EAA2BV,GAAeQ,EAAmB9D,GAC7DiE,EAAsBX,GAAeS,EAAmBlJ,EAAY0I,GACpEW,EAAoBV,GAAsBQ,GAC1CG,EAAmBX,GAAsBS,GAC7CrmrB,EAAMm7qB,cAAc9kwB,GAAQ,CAC1B+vwB,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpBvmrB,EAAMkyC,WAAWiooB,OAASxqwB,OAAOw4C,OAAO,GAAI63C,EAAMkyC,WAAWiooB,OAAQ,CACnE,+BAAgCmM,EAChC,sBAAuBC,SErBrBC,GAAkC,CACtCC,SAAU,CACRC,aAAc,IACd9Q,OAAQ,KAEV+Q,UAAW,CACTC,WAAY,IACZpmlB,QAAQ,IAsBNqmlB,IAAAA,EAAAA,EAAAA,IAMJ,WAAYnyuB,EAAuBzxB,GAAuB,IAAD,OAQvD,OARuD,oBALzDta,aAKyD,OAJzDsa,aAIyD,OAHzD+rvB,iBAGyD,OAFzD8X,eAAqC,KAEoB,KAYjDC,mBAAqB,WAC3B,IAAMt3wB,EAASpE,SAASo3E,cAAT,iCACa,EAAK95E,QAAQkK,aAAa,MADvC,MAIf,GAAIpD,EACF,EAAKq3wB,eAAiBr3wB,OACjB,GAAI,EAAK9G,QAAQiK,QAAQ,0BAC9B,EAAKk0wB,eAAiB,EAAKn+wB,QAAQiK,QAAQ,+BACtC,GACL,EAAKjK,QAAQsqB,YACbg6uB,GAAgB,EAAKtkwB,QAAQsqB,WAA2B,0BACxD,CACA,IAAMtL,EAAQslvB,GACZ,EAAKtkwB,QAAQsqB,WACb,0BAEEtL,IACF,EAAKm/vB,eAAiBn/vB,GAItB,EAAKm/vB,gBACPtb,GAAAA,IAAa,EAAKsb,eAAgB,OAAQ,IAnCW,KAwCjDE,kBAAoB,SAACj+wB,GAC3B,OAAO,EAAK+9wB,iBAAmB/9wB,GAzCwB,KA6CjDk+wB,eAAiB,SAACl+wB,EAAmBsN,GAC3C,IAAI5L,EAAwC,KACxC1B,GAAQA,EAAK++S,aAAa,gBAAkBzxS,KAGhC,QADd5L,EAAQkjwB,GADK5kwB,EAAK8J,aAAa,gBAAkBwD,IAAS,MAElB,SAAlBq4D,OAAOjkE,GAC3BA,GAAQ,EACW,OAAVA,GAAoC,UAAlBikE,OAAOjkE,KAClCA,GAAQ,IAGZ,OAAOA,GAxDgD,KA4DjDy8wB,gBAAkB,SAACxyuB,GAEzB,GAAI,EAAKsyuB,kBAAkBtyuB,GACzB,OAAOA,EAIT,GAAIA,EAASozQ,aAAa,wBACxB,OAAOpzQ,EAIT,IAAMi/B,EAAc63rB,GAAAA,IAAa92tB,EAAU,QAC3C,GAAIi/B,EACF,OAAOA,EAIT,IAAM5qE,EAAO2rC,EAAS9hC,QAAqB,oCAC3C,GAAI7J,EACF,OAAOA,EAIT,IAAMmuM,EAAMxiK,EAAS9hC,QAAQ,aAC7B,GAAIskM,EAAK,CACP,IAAMiwkB,EAAU3b,GAAAA,IAAat0jB,EAAoB,QACjD,GAAIiwkB,EACF,OAAOA,IAxF4C,KA8FjDC,sBAAwB,SAACr+wB,GAC/B,IAAMmuM,EAAMnuM,EAAK6J,QAAqB,aACtC,IAAKskM,EACH,OAAO,KAGT,IAAMiwkB,EAAU3b,GAAAA,IAAat0jB,EAAK,QAClC,GAAIiwkB,EACF,OAAOA,EAGT,IAAME,EAAanwkB,EAAItkM,QAAqB,oCAC5C,OAAIskM,GAAOmwkB,EACFA,EAGF,MA9GgD,KAkHjDC,uBAAyB,SAACv+wB,GAChC,IACIuL,EADEqZ,EAA8B,GAEhC/Y,EAAI,EACJk+M,EAAsB/pN,EAE1B,IACEuL,EAAS,EAAK8ywB,sBAAsBt0jB,MAElCnlM,EAAQlkB,KAAK6K,GACbw+M,EAASx+M,GAGXM,UACkB,OAAXN,GAAmBM,EAAI,IAMhC,OAJI,EAAKkywB,gBACPn5vB,EAAQo4I,QAAQ,EAAK+gnB,gBAGhBn5vB,GAtIgD,KA0IjD45vB,yBAA2B,SAACx+wB,GAElC,IAAMy+wB,EAAkB,EAAKP,eAAel+wB,EAAM,aAC9CkkuB,EAA6B,QAC7Bu6C,IACFv6C,EAAYu6C,GAQd,IAAMC,EAAc,EAAKR,eAAel+wB,EAAM,UACxCqL,EAASqzwB,EAAcA,EAAYnwwB,WAAWhB,MAAM,KAAO,GAMjE,MAAO,CACL22tB,UAAWA,EACX9ygB,UAJ0C,IAA1C,EAAK8sjB,eAAel+wB,EAAM,YAAuB,WAAa,QAK9DuxwB,UAAW,CACT,CACEjkwB,KAAM,SACN4M,QAAS,CACP7O,OAAQA,IAGZ,CACEiC,KAAM,mBAER,CACEA,KAAM,OACN4M,QAAS,CAGPy+vB,gBAAgB,OAhL+B,KAwLjDgG,qBAAuB,SAAC3+wB,GAC9B,IAAIqpB,EAAWrpB,EAETo+wB,EAAU3b,GAAAA,IAAaziwB,EAAM,OAKnC,GAJIo+wB,IACF/0vB,EAAW+0vB,GAGT/0vB,EAAU,CAEZ,IAAMzpB,EAAUypB,EAASqwD,cAA2B,oCACpD,GAAI95E,EACF,OAAOA,EAGX,OAAO,MAvMgD,KA2MjDg/wB,sBAAwB,SAAC5+wB,GAC/B,IACI4e,EADE/T,EAA+B,GAEjCgB,EAAI,EACJk+M,EAAS/pN,EACb,IACE4e,EAAQ,EAAK+/vB,qBAAqB50jB,MAEhCl/M,EAASnK,KAAKke,GACdmrM,EAASnrM,GAGX/S,UACiB,OAAV+S,GAAkB/S,EAAI,IAE/B,OAAOhB,GA1NgD,KA8NjDg0wB,mBAAqB,SAAC7+wB,GAC5B,IAAKA,EACH,OAAO,KAGT,GAAI,EAAKi+wB,kBAAkBj+wB,GACzB,OAAO,EAAKJ,QAGd,GAAII,EAAKmB,UAAU0d,SAAS,YAC1B,OAAO7e,EACF,GAAIyiwB,GAAAA,IAAaziwB,EAAM,OAAQ,CACpC,IAAM8+wB,EAAUrc,GAAAA,IAAaziwB,EAAM,OACnC,OAAO8+wB,GAAqC,KAE5C,OAAO5a,GAAgBlkwB,EAAM,cA7OwB,KAiPjD++wB,QAAU,SAACz2wB,EAAiBktP,GAClC,IAAMrkD,GAAe7oM,EAAGm4H,eAAiBn+H,UAAU6uM,YACnD,OAAKA,GAMLqkD,EAAYA,EAAUhtM,QAAQ,WAAY,OAAOzlB,cAE1CouK,EAAY9uE,iBAAiB/5H,EAAI,MAAM8iU,iBAAiB51E,IAPtD,IApP8C,KA+PjDwphB,gBAAkB,SAACp/wB,GACzB,IAAMuuM,EAAM,EAAK0wkB,mBAAmBj/wB,GACpC,OAAIuuM,GAAOp4J,SAAS,EAAKgpuB,QAAQ5wkB,EAAoB,YAAc,EAC1D,WAEA,aApQ8C,KAyQjD8wkB,gBAAkB,SAACj/wB,GACzB,IAAImuM,EAAM,EAAK0wkB,mBAAmB7+wB,GAClC,GAAImuM,EAAK,CACP,GAAmC,aAA/B,EAAK6wkB,gBAAgBh/wB,GAAsB,CAC7C,IAAMk/wB,EAAiB/wkB,EACvB,OACE+wkB,EAAe/9wB,UAAU0d,SAAS,SAClCqgwB,EAAenge,aAAa,yBAG9B,OAAO/+S,EAAKmB,UAAU0d,SAAS,QAInC,OAAO,GAvRgD,KA2RjDsgwB,yBAA2B,SAACn/wB,GAClC,OAAkD,IAA3C,EAAKk+wB,eAAel+wB,EAAM,cA5RsB,KAgSjDo/wB,mBAAqB,SAACp/wB,GAC5B,OjE5OJ,SAA2BJ,EAAkBypB,GAEtC+2C,QAAQ96D,UAAUuzF,UACrBz4B,QAAQ96D,UAAUuzF,QAAU,SAAUlsE,GAGpC,IAFA,IAAMksE,GAAWv2F,UAAYxC,KAAK2gI,eAAej7H,iBAAiBmnB,GAC9D9gB,EAAIgtF,EAAQz4F,SACPyL,GAAK,GAAKgtF,EAAQ74F,KAAK6L,KAAO/L,OACvC,OAAO+L,GAAK,IAUhB,IALA,IAAM+Y,EAA0B,GAE5Btc,EAAqB1I,EAGlB0I,GAAMA,IAAOhG,SAAS+lC,KAAM//B,EAAKA,EAAGy/B,cACrC1e,EACE/gB,EAAGuwF,QAAQxvE,IACbzE,EAAQlkB,KAAK4H,GAIjBsc,EAAQlkB,KAAK4H,GAIf,OAAOsc,EiEgNEy6vB,CAAkBr/wB,EAAM,mBAAmBI,OAAS,GAjSJ,KAqSjDk/wB,kBAAoB,SAACt/wB,GAC3B,OAAOA,EAAKmB,UAAU0d,SAAS,aAtSwB,KA0SjD0gwB,YAAc,SAACv/wB,GACrB,OAAOA,EAAKmB,UAAU0d,SAAS,cAAgB7e,EAAK++S,aAAa,yBA3SV,KA+SjDyge,oBAAsB,SAACx/wB,GAC7B,OAAOkkwB,GAAgBlkwB,EAAM,eAhT0B,KAoTjDy/wB,sBAAwB,SAACz/wB,GAC/B,OAAI,EAAK+9wB,eACA,EAAKA,eAGP,EAAKyB,oBAAoBx/wB,IAzTuB,KA6TjD0/wB,cAAgB,SAAC1/wB,GACvB,IAAwE,IAApEilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,yBAA3C,CAKAk+wB,EAAc6B,cAAc3/wB,GAG5B,IAAMmuM,EAAM,EAAK0wkB,mBAAmB7+wB,GAC9BoR,EAAQ,EAAK8swB,eAAel+wB,EAAM,SAClCqR,EAAS,EAAK6swB,eAAel+wB,EAAM,UAErC6swB,EAAS,EAAK3yvB,QAAQwjwB,SAAS7Q,OAC7B+S,EjEvPV,SAA0Bt3wB,GAGxB,IAFA,IAAIu3wB,EAA0Bv3wB,EAC1ByhN,EAASzhN,EACNu3wB,GAAcA,IAAev9wB,UAAU,CAI5C,IAAM2jB,EAAW8jM,EAAOhsM,MAAMqtT,iBAAiB,YAC/C,GAAiB,aAAbnlT,GAAwC,aAAbA,GAAwC,UAAbA,EAAsB,CAK9E,IAAMvkB,EAAQq0C,SAASg0K,EAAOhsM,MAAMqtT,iBAAiB,YACrD,IAAK9hS,MAAM5nC,IAAoB,IAAVA,EACnB,OAAOA,EAKXqoN,EADA81jB,EAAaA,EAAW31vB,WAG1B,OAAO,KiEiOgB41vB,CAAiB9/wB,GAEjB,OAAjB4/wB,GAAyBA,GAAgB/S,IAC3CA,EAAS+S,EAAe,GAGtB/S,GAAU1+jB,GACZm0jB,GAAAA,IAAqBn0jB,EAAK,UAAW0+jB,GAGnCz7vB,GAAS+8L,GACXm0jB,GAAAA,IAAqBn0jB,EAAK,QAAS/8L,GAGjCC,GAAU88L,GACZm0jB,GAAAA,IAAqBn0jB,EAAK,SAAU98L,GAGtC,EAAK0uwB,mBAAmB//wB,EAAMmuM,GAE9BnuM,EAAKmB,UAAUC,IAAI,QACnBpB,EAAKmB,UAAUC,IAAI,iBAChB,OAAH+sM,QAAG,IAAHA,GAAAA,EAAKhtM,UAAUC,IAAI,SAG2B,IAA1C,EAAK88wB,eAAel+wB,EAAM,YACxBmuM,IACF7rM,SAAS+lC,KAAKivC,YAAY62H,GAC1Bs0jB,GAAAA,IAAaziwB,EAAM,MAAOmuM,GAC1Bs0jB,GAAAA,IAAat0jB,EAAK,OAAQnuM,GAC1ByiwB,GAAAA,IAAat0jB,EAAK,OAAQ,IAGxBA,GACFs0jB,GAAAA,IAAat0jB,EAAK,OAAQnuM,GAI9BilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,4BAjXgB,KAqXjDmgxB,mBAAqB,SAAC//wB,EAAmBmuM,GAE/C,IAAIk2f,EACEr3iB,EAAS,EAAKkxnB,eAAel+wB,EAAM,UAYzC,GARIqksB,EAFAr3iB,EACa,WAAXA,EACUhtJ,EAAKkqB,WAEL5nB,SAASo3E,cAAcszE,GAGzBhtJ,EAGC,CACb,IAAMoxwB,EAAS0L,GACbz4E,EACAl2f,EACA,EAAKqwkB,yBAAyBx+wB,IAEhCyiwB,GAAAA,IAAaziwB,EAAM,SAAUoxwB,KA1YwB,KA+YjD4O,cAAgB,SAAChgxB,GACvB,IAAwE,IAApEilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,yBAA3C,CAIA,IAAMuuM,EAAM,EAAK0wkB,mBAAmB7+wB,GAChCmuM,IACFm0jB,GAAAA,IAAqBn0jB,EAAK,UAAW,IACrCm0jB,GAAAA,IAAqBn0jB,EAAK,QAAS,IACnCm0jB,GAAAA,IAAqBn0jB,EAAK,SAAU,KAGtCnuM,EAAKmB,UAAUG,OAAO,QACtBtB,EAAKmB,UAAUG,OAAO,iBAClB6sM,GACFA,EAAIhtM,UAAUG,OAAO,SAIuB,IAA1C,EAAK48wB,eAAel+wB,EAAM,cACxBA,EAAKmB,UAAU0d,SAAS,aACtBsvL,GACFnuM,EAAKs3E,YAAY62H,GjE5S3B,SAA4B7lM,EAAiB23wB,GAA6B,IAAD,EACvE,UAAOA,EAAc/1vB,kBAArB,OAAO,EAA0Bw3G,aAAap5H,EAAI23wB,EAAcz9pB,aiE8S1D09pB,CAAmB,EAAKtgxB,QAASI,GAG/BmuM,IACFs0jB,GAAAA,OAAgBziwB,EAAM,OACtByiwB,GAAAA,OAAgBt0jB,EAAK,QACrBs0jB,GAAAA,OAAgBt0jB,EAAK,WAIY,IAAjCs0jB,GAAAA,IAAaziwB,EAAM,YAErByiwB,GAAAA,IAAaziwB,EAAM,UAAUmhH,UAC7BshpB,GAAAA,OAAgBziwB,EAAM,WAIxB,EAAKmgxB,sBAAsBngxB,GAC3BilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,6BA1bgB,KA8bjDugxB,sBAAwB,SAACngxB,IACM,IAAjCyiwB,GAAAA,IAAaziwB,EAAM,YAErByiwB,GAAAA,IAAaziwB,EAAM,UAAUmhH,UAC7BshpB,GAAAA,OAAgBziwB,EAAM,WAGxBilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,4BArcgB,KAwcjDwgxB,eAAiB,SAACpgxB,GACxB,IAAyE,IAArEilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,0BAA3C,EAIsC,IAAlC,EAAKsa,QAAQ0jwB,UAAUnmlB,QACzB,EAAK4olB,gBAAgBrgxB,IAGc,IAAjCyiwB,GAAAA,IAAaziwB,EAAM,WACrB,EAAKggxB,cAAchgxB,GAGrBA,EAAKmB,UAAUC,IAAI,SACnBpB,EAAKmB,UAAUC,IAAI,WAEnB,IAAMk/wB,EAAa,EAAKzB,mBAAmB7+wB,GAC3C,GAAIsgxB,EAAY,CACd,IAAMnykB,EAAMmykB,GjEhKlB,SAAmBh4wB,EAAiBgzI,EAAehtF,GACjD80K,GAAM96N,EAAI,OAAQgzI,EAAOhtF,GiEgKrBmc,CAAU0jI,EAAK,EAAKj0L,QAAQ0jwB,UAAUC,YAAY,WAChD79wB,EAAKmB,UAAUG,OAAO,WACtBtB,EAAKmB,UAAUC,IAAI,QACnB+sM,EAAIhtM,UAAUC,IAAI,QAClB6jwB,GAAAA,QAAyB,EAAKrlwB,QAAS,iCA/dY,KAoejD2gxB,eAAiB,SAACvgxB,GACxB,IAAyE,IAArEilwB,GAAAA,QAAyB,EAAKrlwB,QAAS,0BAA3C,CAIA,IAAMuuM,EAAM,EAAK0wkB,mBAAmB7+wB,GACpCA,EAAKmB,UAAUC,IAAI,UAEf+sM,GjEtLR,SAAiB7lM,EAAiBgzI,EAAehtF,GAC/C80K,GAAM96N,EAAI,KAAMgzI,EAAOhtF,GiEsLnBkc,CAAQ2jI,EAAK,EAAKj0L,QAAQ0jwB,UAAUC,YAAY,WAC9C79wB,EAAKmB,UAAUG,OAAO,UACtBtB,EAAKmB,UAAUG,OAAO,QACtB6sM,EAAIhtM,UAAUG,OAAO,QACrBtB,EAAKmB,UAAUG,OAAO,SACtB2jwB,GAAAA,QAAyB,EAAKrlwB,QAAS,iCAlfY,KAwfjDygxB,gBAAkB,SAACrgxB,GACzB,IAAMwgxB,EAAc,EAAK5gxB,QAAQ4F,iBAAiB,+BAClD,GAAIg7wB,GAAeA,EAAYpgxB,OAAS,EACtC,IAAK,IAAIyL,EAAI,EAAGyrC,EAAMkpuB,EAAYpgxB,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CACtD,IAAM40wB,EAAaD,EAAY30wB,GAGQ,cAArC,EAAKmzwB,gBAAgByB,IACrBA,IAAezgxB,IACe,IAA9BA,EAAK6e,SAAS4hwB,KACgB,IAA9BA,EAAW5hwB,SAAS7e,IAEpB,EAAKugxB,eAAeE,KApgB6B,KA4gBjDp0R,OAAS,SAACrsf,GAChB,IAA+B,IAA3B,EAAKu/wB,YAAYv/wB,GAArB,CAIA,IAAMmuM,EAAM,EAAK0wkB,mBAAmB7+wB,GAGhCyiwB,GAAAA,IAAaziwB,EAAM,SAAWyiwB,GAAAA,IAAaziwB,EAAM,UAAY,EAAKg/wB,gBAAgBh/wB,KAEpFA,EAAKmB,UAAUG,OAAO,SACtBtB,EAAKmB,UAAUG,OAAO,QACtBtB,EAAKmB,UAAUG,OAAO,QAClB6sM,GACFA,EAAIhtM,UAAUG,OAAO,WA1hB8B,KAgiBjDsujB,SAAW,aAhiBsC,KAmiBjDzuiB,QAAU,WACF,EAAKvhB,QAAQ4F,iBAAiB,oCACtCzF,SAAQ,SAACuI,GAAD,OAAQ,EAAK+jf,OAAO/jf,OAriBqB,KAyiBjDu3W,MAAQ,SAAC7/W,GACVA,IAI8B,IAA/B,EAAKi/wB,gBAAgBj/wB,KAIU,aAA/B,EAAKg/wB,gBAAgBh/wB,GACvB,EAAKggxB,cAAchgxB,GACqB,cAA/B,EAAKg/wB,gBAAgBh/wB,IAC9B,EAAKugxB,eAAevgxB,KArjBiC,KA0jBjDu8W,MAAQ,SAACv8W,GACVA,IAI8B,IAA/B,EAAKi/wB,gBAAgBj/wB,KAIU,aAA/B,EAAKg/wB,gBAAgBh/wB,GACvB,EAAK0/wB,cAAc1/wB,GACqB,cAA/B,EAAKg/wB,gBAAgBh/wB,IAC9B,EAAKogxB,eAAepgxB,GAKtByiwB,GAAAA,IAAaziwB,EAAM,OAAQ,EAAKg/wB,gBAAgBh/wB,MA3kBO,KA+kBjDsmwB,QAAU,SAACtmwB,GACZA,KAI8B,IAA/B,EAAKi/wB,gBAAgBj/wB,GACvB,EAAK6/W,MAAM7/W,GAEX,EAAKu8W,MAAMv8W,KAvlB0C,KA4lBjD0gxB,UAAY,SAAC9gxB,EAAsBU,GACzC,IAAMN,EAAO,EAAKm+wB,gBAAgBv+wB,GAClC,GAAKI,GAIwC,UAAzC,EAAKk+wB,eAAel+wB,EAAM,WAA9B,CAIA,IAAM0C,EAAUC,YAAW,WACW,MAAhC8/vB,GAAAA,IAAaziwB,EAAM,UACrB,EAAK6/W,MAAM7/W,KAEZ,EAAKka,QAAQwjwB,SAASC,cAEzBlb,GAAAA,IAAaziwB,EAAM,QAAS,KAC5ByiwB,GAAAA,IAAaziwB,EAAM,UAAW0C,KA7mByB,KAinBjDi+wB,WAAa,SAAC/gxB,EAAsBU,GAC1C,IAAMN,EAAO,EAAKm+wB,gBAAgBv+wB,GAClC,GAAKI,GAIwC,UAAzC,EAAKk+wB,eAAel+wB,EAAM,WAA9B,CAIA,GAAoC,MAAhCyiwB,GAAAA,IAAaziwB,EAAM,SAAkB,CACvC,IAAM0C,EAAU+/vB,GAAAA,IAAaziwB,EAAM,WAC/B0C,GACFs7B,aAAat7B,GAEf+/vB,GAAAA,OAAgBziwB,EAAM,SACtByiwB,GAAAA,OAAgBziwB,EAAM,WAGxB,EAAKu8W,MAAMv8W,KApoB4C,KAwoBjD4gxB,SAAW,SAAChhxB,EAAsBU,GACxC,IAAMN,EAAO,EAAKm+wB,gBAAgBv+wB,GAClC,GAAKI,EAAL,CAGA,IAAMwL,EAAQ,EAAKozwB,sBAAsB5+wB,GAEnC6gxB,EAAc,EAAK7B,gBAAgBh/wB,GACzC,GAAa,OAATA,GAAiC,aAAhB6gxB,IACnB,EAAKhha,MAAM7/W,GAGPwL,EAAMpL,OAAS,GACjB,IAAK,IAAIyL,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,EAAKzrC,IAE1B,OAAbL,EAAMK,IAAiE,aAAlD,EAAKmzwB,gBAAgBxzwB,EAAMK,KAClD,EAAKg0W,MAAMr0W,EAAMK,MAxpB8B,KAgqBjDyhgB,MAAQ,SAAC1tgB,EAAsBU,IACgC,IAAjE2kwB,GAAAA,QAAyB,EAAKrlwB,QAAS,wBAK3Ck+wB,EAAc6B,mBAAcznwB,GAC5B+svB,GAAAA,QAAyB,EAAKrlwB,QAAS,0BAvqBgB,KA0qBjDkhxB,OAAS,SAAClhxB,EAAsBU,GACtCA,EAAE6G,iBACF,IAAMnH,EAAO,EAAKm+wB,gBAAgBv+wB,GAClC,GAAII,EAAM,CACR,GAA6C,UAAzC,EAAKk+wB,eAAel+wB,EAAM,WAC5B,QAG0C,IAAxC,EAAKk+wB,eAAel+wB,EAAM,UAC5B,EAAKu8W,MAAMv8W,GAEX,EAAKsmwB,QAAQtmwB,KArrBsC,KA6rBlDmxB,MAAQ,SAACvxB,EAAsBU,GACpC,OAAO,EAAKwgxB,OAAOlhxB,EAASU,IA9rB2B,KAisBlDy/D,KAAO,SAACngE,EAAsBU,GACnC,OAAO,EAAKgtgB,MAAM1tgB,EAASU,IAlsB4B,KAqsBlDygxB,QAAU,SAACnhxB,EAAsBU,GACtC,OAAO,EAAKsgxB,SAAShhxB,EAASU,IAtsByB,KAysBlD0gxB,UAAY,SAACphxB,EAAsBU,GACxC,OAAO,EAAKqgxB,WAAW/gxB,EAASU,IA1sBuB,KA6sBlD2gxB,SAAW,SAACrhxB,EAAsBU,GACvC,OAAO,EAAKogxB,UAAU9gxB,EAASU,IA9sBwB,KAktBlD4gxB,mBAAqB,SAAClhxB,GAC3B,OAAO,EAAKk+wB,eAAel+wB,EAAM,YAntBsB,KAstBlDmhxB,eAAiB,SAACvhxB,GACvB,OAAO,EAAKo/wB,gBAAgBp/wB,IAvtB2B,KA0tBlD0hD,KAAO,SAACthD,GACb,OAAO,EAAKu8W,MAAMv8W,IA3tBqC,KA8tBlDgqE,KAAO,SAAChqE,GACb,OAAO,EAAK6/W,MAAM7/W,IA/tBqC,KAkuBlDq7B,MAAQ,SAACr7B,GACd,OAAO,EAAKqsf,OAAOrsf,IAnuBoC,KAsuBlDme,OAAS,WACd,OAAO,EAAKgD,WAvuB2C,KA0uBlDk1H,WAAa,WAClB,OAAO,EAAKz2I,SA3uB2C,KA8uBlDwhxB,mBAAqB,SAACphxB,GAC3B,OAAO,EAAKw/wB,oBAAoBx/wB,IA/uBuB,KAkvBlDqhxB,qBAAuB,SAACrhxB,GAC7B,OAAO,EAAKy/wB,sBAAsBz/wB,IAnvBqB,KAsvBlDshxB,kBAAoB,SAACthxB,GAC1B,OAAO,EAAK6+wB,mBAAmB7+wB,IAvvBwB,KA0vBlDuhxB,sBAAwB,SAACvhxB,GAC9B,OAAO,EAAKu+wB,uBAAuBv+wB,IA3vBoB,KA8vBlDwhxB,eAAiB,SAACxhxB,GACvB,OAAO,EAAKi/wB,gBAAgBj/wB,IA/vB2B,KAkwBlDyhxB,kBAAoB,SAACzhxB,GAC1B,OAAO,EAAKo/wB,mBAAmBp/wB,IAnwBwB,KAswBlD0hxB,kBAAoB,WACzB,OAAO,EAAK3D,gBAvwB2C,KA0wBlD4D,wBAA0B,SAAC3hxB,GAChC,OAAO,EAAKm/wB,yBAAyBn/wB,IA3wBkB,KA+wBlD4hxB,eAAiB,SAAC5hxB,GACvB,OAAO,EAAKqgxB,gBAAgBrgxB,IAhxB2B,KAoxBlDo4B,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IArxBQ,KAwxBlDikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAzxBO,KA4xBlD83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IA5xBhDplwB,KAAKF,QAAU+rC,EACf7rC,KAAKoa,QAAUtT,OAAOw4C,OAAOq+tB,GAAoBvjwB,GACjDpa,KAAKmmwB,YAAcjD,GAAsB,QAEzCljwB,KAAKk+wB,qBACLl+wB,KAAKqhB,UACLshvB,GAAAA,IAAa3iwB,KAAKF,QAAS,OAAQE,MAC5BA,QAdLg+wB,GAwyBUj0tB,YAAc,SAACjqD,GAE3B,IAAMiixB,EAAcpf,GAAAA,IAAa7iwB,EAAS,QAC1C,GAAIiixB,EACF,OAAOA,EAIT,IAAM3pD,EAAOt4tB,EAAQiK,QAAQ,SAC7B,GAAIqutB,EAAM,CACR,IAAM4pD,EAAWrf,GAAAA,IAAavqC,EAAqB,QACnD,GAAI4pD,EACF,OAAOA,EAKX,GAAIlixB,EAAQuB,UAAU0d,SAAS,aAAc,CAC3C,IAAMsvL,EAAMvuM,EAAQiK,QAAQ,aAC5B,GAAIskM,EAAK,CACP,IAAMgqN,EAAUsqW,GAAAA,IAAat0jB,EAAoB,QACjD,GAAIgqN,EACF,OAAOA,GAKb,OAAO,MAn0BL2lX,GAu0BU6B,cAAgB,SAAC75tB,GAC7B,IAAMt6C,EAAQlJ,SAASkD,iBACrB,6CAGF,GAAIgG,GAASA,EAAMpL,OAAS,EAC1B,IAAK,IAAIyL,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAChD,IAAM7L,EAAOwL,EAAMK,GACbqstB,EAAO4lD,GAAcj0tB,YAAY7pD,GAEnCk4tB,GAAsC,aAA9BA,EAAKipD,eAAenhxB,KAC1B8lD,GAGgD,IAAhDoyqB,EAAKopD,kBAAkBthxB,GAAM6e,SAASinC,KACd,IAAxB9lD,EAAK6e,SAASinC,IACd9lD,IAAS8lD,GAEToyqB,EAAKlupB,KAAKhqE,GAGZk4tB,EAAKlupB,KAAKhqE,MA51BhB89wB,GAm2BUiE,gBAAkB,WAC9B,IAAMv2wB,EAAQlJ,SAASkD,iBAAiB,6CACxC,GAAIgG,GAASA,EAAMpL,OAAS,EAC1B,IAAK,IAAIyL,EAAI,EAAGyrC,EAAM9rC,EAAMpL,OAAQyL,EAAIyrC,EAAKzrC,IAAK,CAChD,IAAI7L,EAAOwL,EAAMK,GAEb42vB,GAAAA,IAAaziwB,EAAqB,WAEpCyiwB,GAAAA,IAAaziwB,EAAqB,UAAUy/c,gBA32BhDq+T,GAk3BUtW,gBAAkB,SAACn+uB,GAE/B/mB,SAASkD,iBAAiB6jB,GAAUtpB,SAAQ,SAACuI,GAC3C,IAAM80Y,EAAW90Y,EACb05wB,EAAelE,GAAcj0tB,YAAYuzV,GACxC4kY,IACHA,EAAe,IAAIlE,GAAcx1wB,EAAmBm1wB,SAx3BtDK,GA63BUrW,mBAAqB,WAEjCnlwB,SAAS9B,iBAAiB,SAAS,SAACF,GAClC,IAAM+pB,EAAY/nB,SAASkD,iBAAiB,6CAC5C,GAAI6kB,GAAaA,EAAUjqB,OAAS,EAClC,IAAK,IAAIyL,EAAI,EAAGA,EAAIwe,EAAUjqB,OAAQyL,IAAK,CACzC,IAAM7L,EAAOqqB,EAAUxe,GACjBo2wB,EAAUnE,GAAcj0tB,YAAY7pD,GAC1C,GAAIiixB,GAA4C,aAAjCA,EAAQd,eAAenhxB,GAAsB,CAE7CiixB,EAAQ5roB,aAArB,IACM83D,EAAM8zkB,EAAQX,kBAAkBthxB,GACtC,GAAIA,IAASM,EAAEoG,QAAU1G,EAAK6e,SAASve,EAAEoG,QACvC,SAGF,GAAIynM,IAAQA,IAAQ7tM,EAAEoG,QAAUynM,EAAItvL,SAASve,EAAEoG,SAC7C,SAEFu7wB,EAAQj4sB,KAAKhqE,QAOrBkjwB,GAAoB9quB,GAClB91B,SAAS+lC,KACT,2HACA,SACA,SAA6B/nC,GAC3B,IAAM43tB,EAAO4lD,GAAcj0tB,YAAY/pD,MACvC,GAAIo4tB,EACF,OAAOA,EAAK/msB,MAAMrxB,KAAMQ,MAM9B4iwB,GAAoB9quB,GAClB91B,SAAS+lC,KACT,sDACA,SACA,SAA6B/nC,GAC3BA,EAAE4G,kBACF,IAAMgxtB,EAAO4lD,GAAcj0tB,YAAY/pD,MACvC,GAAIo4tB,GAAQA,EAAKn4pB,KACf,OAAOm4pB,EAAKn4pB,KAAKjgE,KAAMQ,MAM7B4iwB,GAAoB9quB,GAClB91B,SAAS+lC,KACT,gCACA,SACA,SAA6B/nC,GAC3B,IAAM43tB,EAAO4lD,GAAcj0tB,YAAY/pD,MACvC,GAAIo4tB,EACF,OAAOA,EAAK6oD,QAAQjhxB,KAAMQ,MAMhC4iwB,GAAoB9quB,GAClB91B,SAAS+lC,KACT,oCACA,aACA,SAA6B/nC,GAC3B,IAAM43tB,EAAO4lD,GAAcj0tB,YAAY/pD,MACvC,GAAIo4tB,GAAsC,aAA9BA,EAAKipD,eAAerhxB,MAC9B,OAAOo4tB,EAAK8oD,UAAUlhxB,KAAMQ,MAMlC4iwB,GAAoB9quB,GAClB91B,SAAS+lC,KACT,oCACA,YACA,SAA6B/nC,GAC3B,IAAM43tB,EAAO4lD,GAAcj0tB,YAAY/pD,MACvC,GAAIo4tB,GAAsC,aAA9BA,EAAKipD,eAAerhxB,MAC9B,OAAOo4tB,EAAK+oD,SAASnhxB,KAAMQ,MAMjCilB,OAAO/kB,iBAAiB,UAAU,WAEhCs7D,GADIyhE,WAGF,WAEmBj7H,SAASkD,iBAAiB,yBAClCzF,SAAQ,SAACuI,GAChB,IAAM4vtB,EAAO4lD,GAAcj0tB,YAAYvhD,GACnC4vtB,GACFA,EAAK/5sB,cAIX,SAv+BF2/vB,GA4+BUp0B,UAAY,WACxBo0B,GAAcrW,qBACdqW,GAActW,gBAAgB,0BA9+B5BsW,GAi/BUpW,iBAAmB,WAC/BoW,GAActW,gBAAgB,0BAl/B5BsW,GAq/BUrV,cAAgB,SAC5Bp/uB,GAE+B,IAD/BnP,EAC8B,uDADPujwB,GAEjB79wB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACTs4tB,EAAO4lD,GAAcj0tB,YAAY7pD,GAIrC,OAHKk4tB,IACHA,EAAO,IAAI4lD,GAAc99wB,EAAMka,IAE1Bg+sB,IC9hCX,IAAMgqD,GAAuC,CAC3CxU,UAAW,EACXyU,UAAU,EACVx2oB,OAAO,EACPyhT,OAAQ,OACRg1V,aAAa,GAGTC,GAAuC,CAC3CztjB,cAAe,SACfiziB,cAAe,mBACfqH,UAAW,mBAGPoT,GAAAA,WAqBJ,WAAY32uB,EAAuB1qB,EAA0BmnvB,GAA2B,IAAD,4BApBvFxowB,aAoBuF,OAnBvF0nb,oBAmBuF,OAlBvFi7V,iBAkBuF,OAjBvF/oZ,kBAiBuF,OAhBvFgpZ,oBAgBuF,OAfvFC,kBAeuF,OAdvFzc,mBAcuF,OAbvF0c,mBAauF,OAZvFC,oBAYuF,OAXvFC,oBAWuF,OAVvFC,uBAUuF,OATvFC,kBASuF,OARvF11V,YAQuF,OANvFlza,aAMuF,OALvFsglB,aAKuF,OAHvFuoL,YAAsB,EAGiE,KAFvFC,gBAEuF,OAmC/EC,YAAc,SAAC31wB,GACrB,OAAO,EAAK1N,QAAQ85E,cAAc,4BAA8BpsE,EAAO,OApCc,KAwC/Em4H,UAAY,SAACn4H,GACnB,IAAMoS,EAAO,EAAK9f,QAAQkK,aAAb,UAA6B,EAAK0wlB,QAAQ00K,WAA1C,OAAsD5hwB,IACnE,GAAIoS,EAAM,CACR,IAAIhe,EAAQkjwB,GAA8BllvB,GAE1C,OAAc,OAAVhe,GAAoC,SAAlBikE,OAAOjkE,KAER,OAAVA,GAAoC,UAAlBikE,OAAOjkE,KAI7BA,EAEP,IAAMokP,EAAam9gB,GAAmB31vB,GAEhCqX,EAASo+uB,GAA4B,EAAK7ovB,QAAS4rO,GACzD,OAAInhO,EACKigvB,GAA8BjgvB,GAE9B,MA3D0E,KAiE/Eu+vB,sBAAwB,WAC9B,IAAMh+J,EAAa,EAAKz/e,UAAU,cAC5Br0H,EAAQ4yvB,KAAc5yvB,MAE5B,IAAK8zmB,EACH,OAAO,KAGT,IAAMu/I,EAAaD,GAAct/I,GAQjC,OAAI9zmB,GANCqzvB,GAGcA,EAFD1utB,SAASmvkB,IAMlB,KAEA,OApF4E,KAyF/ErknB,MAAQ,WACd,EAAKjB,QAAQuB,UAAUC,IAAI,WAGW,IAApC,EAAKqkI,UAAU,kBACf,EAAK+zP,aAAa93X,MAAMtB,QAAU,EAAK8Z,QAAQwzvB,YAE/C,EAAKpstB,QAhG8E,KAqG/EiH,KAAO,WACb,EAAK3oD,QAAQuB,UAAUG,OAAO,UAtGuD,KA0G/EqqI,MAAQ,SAACrrI,GAGH,MAFAA,EAAE4gQ,UAAY5gQ,EAAE8vD,SAAW,KAGrC9vD,EAAE6G,iBAEF,EAAK6xJ,WAhH8E,KAqH/E1gI,MAAQ,WACd,GAAI,EAAKmtG,UAAU,cAAe,CAChC,IAAMiooB,EAAY33tB,SAAS,EAAK0vF,UAAU,eAEtC,EAAK+zP,aAAa93X,MAAMtB,QAAUstwB,EACpC,EAAK10mB,SACuC,IAAnC,EAAKwgO,aAAa93X,MAAMtB,QACjC,EAAK29G,UA5H4E,KAiNhF5/F,OAAS,WAEd,GAAoB,SAAhB,EAAKiva,OAAmB,CAC1B,IAAI+1V,EAAqB,EAAKD,wBAEH,OAAvBC,GAAgC,EAAK77V,eAAezoa,SAAS,EAAK0jwB,aAGpC,QAAvBY,GAAgC,EAAK77V,eAAezoa,SAAS,EAAK0jwB,eAC3E,EAAK3ixB,QAAQ81P,QAAQ,EAAK6shB,aAC1B,EAAKA,YAAYphxB,UAAUC,IAAI,YAJ/B,EAAKkmb,eAAe5xL,QAAQ,EAAK6shB,aACjC,EAAKA,YAAYphxB,UAAUG,OAAO,aAxN+C,KAiOhFggD,KAAO,WACR,EAAK0huB,aACP,EAAK7kwB,SAEL,EAAK6kwB,WAAW1huB,KAAK,EAAK1hD,WArOyD,KA0OhFoqE,KAAO,WACR,EAAKg5sB,aACP,EAAK7kwB,SAEL,EAAK6kwB,WAAWh5sB,KAAK,EAAKpqE,WA9OyD,KAmPhFo5J,OAAS,WACT,EAAK+pnB,aAEJ,EAAKP,gBACP,EAAKA,eAAerhxB,UAAUG,OAAO,UAInC,EAAKmhxB,cACP,EAAKA,aAAathxB,UAAUC,IAAI,UAI9B,EAAKuhxB,gBACP,EAAKA,eAAexhxB,UAAUC,IAAI,UAIpC,EAAKo4X,aAAa34X,QAElB,EAAKkixB,YAAa,EAClB9d,GAAAA,QAAyB,EAAKrlwB,QAAS,oBAAqB,KAxQuB,KA6QhFmkO,SAAW,WACZ,EAAKy+iB,gBACP,EAAKA,eAAerhxB,UAAUC,IAAI,UAIhC,EAAKqhxB,cACP,EAAKA,aAAathxB,UAAUG,OAAO,UAGE,IAAnC,EAAKk4X,aAAa93X,MAAMtB,QAC1B,EAAK29G,QAIP,EAAKy7Q,aAAa34X,QAElB,EAAKygD,OAEL,EAAKyhuB,YAAa,GAhSmE,KAoShFhlqB,MAAQ,YACqD,IAA9DknpB,GAAAA,QAAyB,EAAKrlwB,QAAS,qBAK3C,EAAK45X,aAAa93X,MAAQ,GAC1B,EAAK83X,aAAa34X,QAGd,EAAK4hxB,cACP,EAAKA,aAAathxB,UAAUC,IAAI,UAI9B,EAAKuhxB,gBACP,EAAKA,eAAexhxB,UAAUG,OAAO,WAIC,IAApC,EAAKmkI,UAAU,kBACjB,EAAKz7D,OAGPi7rB,GAAAA,QAAyB,EAAKrlwB,QAAS,uBA5T8C,KA+ThFwjxB,aAAe,WACpB,OAAO,EAAKL,YAhUyE,KAmUhFM,SAAW,WAChB,OAAO,EAAK7pZ,aAAa93X,OApU4D,KAuUhF4hxB,QAAU,WACf,OAAO,EAAKN,YAxUyE,KA2UhFO,eAAiB,WACtB,OAAO,EAAKhB,aA5UyE,KA4VhFnqvB,GAAK,SAAC9qB,EAAcjN,GACzB,OAAO4kwB,GAAAA,GAAoB,EAAKrlwB,QAAS0N,EAAMjN,IA7VsC,KAgWhFikS,IAAM,SAACh3R,EAAcjN,GAC1B,OAAO4kwB,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAMjN,IAjWqC,KAoWhF83B,IAAM,SAAC7qB,EAAc43vB,GAC1B,OAAOD,GAAAA,IAAqB,EAAKrlwB,QAAS0N,EAAM43vB,IAnWhDplwB,KAAKoa,QAAUtT,OAAOw4C,OAAO8iuB,GAAsBjhwB,GACnDnhB,KAAK06lB,QAAU4tK,EAGftowB,KAAKF,QAAU+rC,EACf7rC,KAAKwnb,eAAiBxnb,KAAKmjxB,YAAY,WACvCnjxB,KAAKyixB,YAAczixB,KAAKmjxB,YAAY,QACpCnjxB,KAAK05X,aAAe15X,KAAKmjxB,YAAY,SACrCnjxB,KAAK0ixB,eAAiB1ixB,KAAKmjxB,YAAY,WACvCnjxB,KAAK2ixB,aAAe3ixB,KAAKmjxB,YAAY,SACrCnjxB,KAAKkmwB,cAAgBlmwB,KAAKmjxB,YAAY,UACtCnjxB,KAAK4ixB,cAAgB5ixB,KAAKmjxB,YAAY,UACtCnjxB,KAAK6ixB,eAAiB7ixB,KAAKmjxB,YAAY,WAEvCnjxB,KAAK8ixB,eAAiB9ixB,KAAKmjxB,YAAY,WACvCnjxB,KAAK+ixB,kBAAoB/ixB,KAAKmjxB,YAAY,cAC1CnjxB,KAAKgjxB,aAAehjxB,KAAKmjxB,YAAY,SAGrCnjxB,KAAKstb,OAASttb,KAAK2lI,UAAU,UACT,SAAhB3lI,KAAKstb,SACPttb,KAAKkjxB,WAAa,IAAIlF,GAAch+wB,KAAKwnb,eAAgBm2V,KAI3D39wB,KAAKqe,SAGLre,KAAKq/B,WAELsjuB,GAAAA,IAAa3iwB,KAAKF,QAASE,KAAK06lB,QAAQ5lY,cAAe90N,aACxD,gCAgGD,WAA0B,IAAD,OACjB2a,EAAU3a,KAGhBA,KAAK05X,aAAah5X,iBAAiB,QAASV,KAAKe,OAGjDf,KAAK05X,aAAah5X,iBAAiB,OAAQV,KAAKyoD,OAGb,IAA/BzoD,KAAK2lI,UAAU,aACjB3lI,KAAK05X,aAAah5X,iBAAiB,QAASV,KAAKw4B,OAI/Cx4B,KAAK4ixB,eACP5ixB,KAAK4ixB,cAAclixB,iBAAiB,QAASV,KAAKk5J,SAIpB,IAA5Bl5J,KAAK2lI,UAAU,UACjB3lI,KAAK05X,aAAah5X,iBAAiB,WAAYV,KAAK6rI,OAIlD7rI,KAAK2ixB,cACP3ixB,KAAK2ixB,aAAajixB,iBAAiB,QAASV,KAAKi+G,OAI/Cj+G,KAAKkjxB,aAEHljxB,KAAKkmwB,gBACPlmwB,KAAKkmwB,cAAcxlwB,iBAAiB,QAASV,KAAKwhD,MAElDxhD,KAAKkjxB,WAAW5qvB,GAAG,yBAAyB,WAEtC6ruB,GAAiBxpvB,EAAQurvB,iBAE3BvrvB,EAAQurvB,cAAc7kwB,UAAUC,IAAI,UAEpCqZ,EAAQurvB,cAAc7kwB,UAAUC,IAAI,YAIxCtB,KAAKkjxB,WAAW5qvB,GAAG,yBAAyB,WAEtC6ruB,GAAiBxpvB,EAAQurvB,iBAE3BvrvB,EAAQurvB,cAAc7kwB,UAAUG,OAAO,UAEvCmZ,EAAQurvB,cAAc7kwB,UAAUG,OAAO,aAK7CxB,KAAKkjxB,WAAW5qvB,GAAG,0BAA0B,WAE3C3d,EAAQ++W,aAAa34X,YAKzB0kB,OAAO/kB,iBAAiB,UAAU,WAGhCs7D,GAFIyhE,WAIF,WACE,EAAKp/G,WAEP,uCAuIN,WACE,OAAOre,KAAK05X,eACb,+BAED,WACE,OAAO15X,KAAKwnb,iBACb,wBAED,WACE,OAAOxnb,KAAKF,cA7WV0ixB,GAAAA,GA8XUz4tB,YAAc,SAC1BvhD,GAEI,IADJssN,EACG,uDADqBytjB,GAAqBztjB,cAEvC70C,EAAS0ilB,GAAAA,IAAan6vB,EAAIssN,GAChC,OAAI70C,GAIG,MAvYLuimB,GA0YU9a,gBAAkB,WAI1B,IAHJn+uB,EAGG,uDAHgBg5vB,GAAqBxa,cACxC3tvB,EAEG,uDAFuBgowB,GAC1B1nL,EACG,uDADuB6nL,GAEpB13tB,EAAWroD,SAAS+lC,KAAK7iC,iBAAiB6jB,GAChDshC,EAAS5qD,SAAQ,SAACuI,GAChB,IAAMtI,EAAOsI,EACTy3K,EAASuimB,GAAgBz4tB,YAAY7pD,GACpC+/K,IACHA,EAAS,IAAIuimB,GAAgBtixB,EAAMka,EAASsglB,QApZ9C8nL,GAyZU7Z,cAAgB,WAIK,IAHjCp/uB,EAGgC,uDAHbg5vB,GAAqBxa,cACxC3tvB,EAEgC,uDAFNgowB,GAC1B1nL,EACgC,uDADN6nL,GAEpBzixB,EAAU0C,SAAS+lC,KAAKqxC,cAAcrwD,GAC5C,GAAKzpB,EAAL,CAGA,IAAMI,EAAOJ,EACTmgL,EAASuimB,GAAgBz4tB,YAAY7pD,GAIzC,OAHK+/K,IACHA,EAAS,IAAIuimB,GAAgBtixB,EAAMka,EAASsglB,IAEvCz6a,IAvaLuimB,GA0aU54B,UAAY,WAA4D,IAA3DrguB,EAA0D,uDAAvCg5vB,GAAqBxa,cACjEya,GAAgB9a,gBAAgBn+uB,IA3a9Bi5vB,GA8aU5a,iBAAmB,WAA4D,IAA3Dr+uB,EAA0D,uDAAvCg5vB,GAAqBxa,cACxEya,GAAgB9a,gBAAgBn+uB,IC/cpC,IxFNuBviB,GAAKoT,GwFMtBs4uB,GAAgB,CACpBgxB,UAAW,GACXC,SAAU,GACVvoS,MAAO,GACPx3R,SAAU,GACVggkB,eAAgB,GAChBC,aAAa,GAGTC,GAAqBC,KAAavvQ,MAAM,CAC5CkvQ,UAAWK,KACRj+vB,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,0BACZuB,MAAO2oS,KACJ3oS,MAAM,sBACNt1d,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,qBACZ8pS,SAAUI,KACPj+vB,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,yBACZj2R,SAAUmgkB,KACPj+vB,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,wBACZ+pS,eAAgBG,KACblqS,SAAS,qCACTp/Q,KAAK,WAAY,CAChB3gM,GAAI,SAAC/V,GAAD,SAAkBA,GAAOA,EAAIzjB,OAAS,IAC1Ck+C,KAAMuluB,KAAarqB,MAAM,ExFrCR1yvB,GwFqCiB,WxFpC/B,IAAIk0vB,GAAUl0vB,GAAKoT,MwFoC0B,gDAEpDypwB,YAAaE,KAAWlqS,SAAS,8CAG5B,SAASmqS,KACd,OAA8B9hM,EAAAA,GAAAA,WAAS,GAAvC,eAAO+lJ,EAAP,KAAgBg8C,EAAhB,KACA,EAAmCl3B,KAA5BL,EAAP,EAAOA,SAAUE,EAAjB,EAAiBA,eACX4E,EAASQ,GAAU,CACvBU,cAAAA,GACAS,iBAAkB2wB,GAClBtnc,SAAS,WAAD,oBAAE,WAAO5iU,EAAP,4FAAgBuvsB,EAAhB,EAAgBA,UAAWotC,EAA3B,EAA2BA,cACnC0tB,GAAW,GADH,kBpOhCZ7oS,EoOoCQxhe,EAAOwhe,MpOnCfsoS,EoOoCQ9pwB,EAAO8pwB,UpOnCfC,EoOoCQ/pwB,EAAO+pwB,SpOnCf//jB,EoOoCQhqM,EAAOgqM,SpOnCfsgkB,EoOoCQtqwB,EAAOgqwB,epOlCRl+jB,IAAAA,KAAW2miB,GAAc,CAC9BjxQ,MAAAA,EACA+oS,WAAYT,EACZU,UAAWT,EACX//jB,SAAAA,EACAsgkB,sBAAAA,IoOqBU,uBAGOxgkB,EAHP,EAGC71M,KAOP6+uB,EAAShpiB,GAVH,UAWqB6oiB,GAAe7oiB,EAAK8piB,UAXzC,iBAWO62B,EAXP,EAWCx2wB,KACP++uB,EAAey3B,GAZT,kDAcNj6uB,QAAQsV,MAAR,MACAgtsB,OAASt0uB,GACT+wsB,EAAU,yCACVotC,GAAc,GACd0tB,GAAW,GAlBL,kCpOjCP,IACL7oS,EACAsoS,EACAC,EACA//jB,EACAsgkB,IoO4BY,qBAAF,qDAAC,KA2BX,OAJAviM,EAAAA,GAAAA,YAAU,WACRysL,GAAuBxkB,cACtB,KAGD,mBACEv7uB,UAAU,wDACVi2wB,YAAU,EACVr6wB,GAAG,uBACHuyU,SAAUg1a,EAAOqF,aAJnB,WAOE,kBAAKxovB,UAAU,oBAAf,WAEE,gBAAIA,UAAU,iBAAd,gCAIA,kBAAKA,UAAU,6BAAf,sCAEE,UAACyjuB,GAAD,CAAM9wqB,GAAG,cAAc3yD,UAAU,yBAAyB4P,MAAO,CAAC24O,WAAY,OAA9E,sCASJ,qBAAQjzO,KAAK,SAAStV,UAAU,8CAAhC,WACE,iBACE8tM,IAAI,OACJv6I,IAAKgzqB,GAAc,0CACnBvmuB,UAAU,gBAJd,0BAUA,kBAAKA,UAAU,kCAAf,WACE,iBAAKA,UAAU,+CACf,kBAAMA,UAAU,kCAAhB,iBACA,iBAAKA,UAAU,iDAGhBmjvB,EAAO95sB,SACN,iBAAKrpC,UAAU,8BAAf,UACE,iBAAKA,UAAU,8BAAf,SAA8CmjvB,EAAO95sB,YAKzD,kBAAKrpC,UAAU,kBAAf,WACE,kBAAKA,UAAU,WAAf,WACE,mBAAOA,UAAU,6CAAjB,yBACA,uBACEuqB,YAAY,aACZjV,KAAK,OACL4gwB,aAAa,OACT/yB,EAAO4F,cAAc,cAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CACE,aAAc6F,EAAOE,QAAQgyB,WAAalyB,EAAOvvhB,OAAOyhjB,WAE1D,CACE,WAAYlyB,EAAOE,QAAQgyB,YAAclyB,EAAOvvhB,OAAOyhjB,eAI5DlyB,EAAOE,QAAQgyB,WAAalyB,EAAOvvhB,OAAOyhjB,YACzC,iBAAKr1wB,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOyhjB,oBAK1C,iBAAKr1wB,UAAU,WAAf,UAEE,kBAAKA,UAAU,cAAf,WACE,mBAAOA,UAAU,sCAAjB,wBACA,uBACEuqB,YAAY,YACZjV,KAAK,OACL4gwB,aAAa,OACT/yB,EAAO4F,cAAc,aAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CACE,aAAc6F,EAAOE,QAAQiyB,UAAYnyB,EAAOvvhB,OAAO0hjB,UAEzD,CACE,WAAYnyB,EAAOE,QAAQiyB,WAAanyB,EAAOvvhB,OAAO0hjB,cAI3DnyB,EAAOE,QAAQiyB,UAAYnyB,EAAOvvhB,OAAO0hjB,WACxC,iBAAKt1wB,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAO0hjB,wBAW9C,kBAAKt1wB,UAAU,cAAf,WACE,mBAAOA,UAAU,sCAAjB,oBACA,uBACEuqB,YAAY,QACZjV,KAAK,QACL4gwB,aAAa,OACT/yB,EAAO4F,cAAc,UAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CAAC,aAAc6F,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,OACrD,CACE,WAAYo2Q,EAAOE,QAAQt2Q,QAAUo2Q,EAAOvvhB,OAAOm5Q,WAIxDo2Q,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,QACrC,iBAAK/se,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOm5Q,gBAQ1C,kBAAK/se,UAAU,eAAe,yBAAuB,OAArD,WACE,kBAAKA,UAAU,OAAf,WACE,mBAAOA,UAAU,sCAAjB,uBACA,kBAAKA,UAAU,yBAAf,WACE,uBACEsV,KAAK,WACLiV,YAAY,WACZ2rvB,aAAa,OACT/yB,EAAO4F,cAAc,aAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CACE,aAAc6F,EAAOE,QAAQ9tiB,UAAY4tiB,EAAOvvhB,OAAOre,UAEzD,CACE,WAAY4tiB,EAAOE,QAAQ9tiB,WAAa4tiB,EAAOvvhB,OAAOre,cAI3D4tiB,EAAOE,QAAQ9tiB,UAAY4tiB,EAAOvvhB,OAAOre,WACxC,iBAAKv1M,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOre,mBAM1C,kBACEv1M,UAAU,iCACV,iCAA+B,YAFjC,WAIE,iBAAKA,UAAU,mEACf,iBAAKA,UAAU,mEACf,iBAAKA,UAAU,mEACf,iBAAKA,UAAU,oEAInB,iBAAKA,UAAU,aAAf,oFAOF,kBAAKA,UAAU,cAAf,WACE,mBAAOA,UAAU,sCAAjB,+BACA,uBACEsV,KAAK,WACLiV,YAAY,wBACZ2rvB,aAAa,OACT/yB,EAAO4F,cAAc,mBAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CACE,aAAc6F,EAAOE,QAAQkyB,gBAAkBpyB,EAAOvvhB,OAAO2hjB,gBAE/D,CACE,WAAYpyB,EAAOE,QAAQkyB,iBAAmBpyB,EAAOvvhB,OAAO2hjB,oBAIjEpyB,EAAOE,QAAQkyB,gBAAkBpyB,EAAOvvhB,OAAO2hjB,iBAC9C,iBAAKv1wB,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAO2hjB,yBAQ1C,iBAAKv1wB,UAAU,eAAf,UACE,kBAAKA,UAAU,gDAAf,WACE,qBACEA,UAAU,mBACVsV,KAAK,WACL1Z,GAAG,sBACCunvB,EAAO4F,cAAc,kBAE3B,oBACE/ovB,UAAU,8CACVm2wB,QAAQ,qBAFV,wBAIc,KACZ,UAAC1yC,GAAD,CAAM9wqB,GAAG,cAAc3yD,UAAU,oBAAjC,kCALF,OAUCmjvB,EAAOE,QAAQmyB,aAAeryB,EAAOvvhB,OAAO4hjB,cAC3C,iBAAKx1wB,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAO4hjB,wBAS5C,kBAAKx1wB,UAAU,cAAf,WACE,qBACEsV,KAAK,SACL1Z,GAAG,oBACHoE,UAAU,oCACVjD,SAAUomvB,EAAOG,eAAiBH,EAAOthuB,UAAYshuB,EAAO53uB,OAAOiqwB,YAJrE,WAMI57C,IAAW,kBAAM55tB,UAAU,kBAAhB,oBACZ45tB,IACC,mBAAM55tB,UAAU,qBAAqB4P,MAAO,CAACoB,QAAS,SAAtD,2BACiB,KACf,kBAAMhR,UAAU,8DAItB,UAACyjuB,GAAD,CAAM9wqB,GAAG,cAAT,UACE,oBACEr9C,KAAK,SACL1Z,GAAG,qCACHoE,UAAU,0CAHZ,4BCtUV,IAAMqkvB,GAAgB,CACpBt3Q,MAAO,kBAGHqpS,GAAuBV,KAAavvQ,MAAM,CAC9Cp5B,MAAO2oS,KACJ3oS,MAAM,sBACNt1d,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,uBAGP,SAAS6qS,KACd,OAA8BxiM,EAAAA,GAAAA,WAAS,GAAvC,eAAO+lJ,EAAP,KAAgBg8C,EAAhB,KACA,GAAkC/hM,EAAAA,GAAAA,eAA8B9pkB,GAAhE,eAAOuswB,EAAP,KAAkBC,EAAlB,KACMpzB,EAASQ,GAAU,CACvBU,cAAAA,GACAS,iBAAkBsxB,GAClBjoc,SAAU,SAAC5iU,EAAD,GAAyC,IAA/BuvsB,EAA8B,EAA9BA,UAAWotC,EAAmB,EAAnBA,cAC7B0tB,GAAW,GACXW,OAAaxswB,GACbvV,YAAW,WrOSV,IAAyBu4e,GAAAA,EqORRxhe,EAAOwhe,MrOStB11R,IAAAA,KAA8B4miB,GAAsB,CACzDlxQ,MAAAA,KqOTO58b,MAAK,YAAsB,EAApB3wC,KAAOgB,OACb+1wB,GAAa,GACbX,GAAW,MAEZxkuB,OAAM,WACLmluB,GAAa,GACbX,GAAW,GACX1tB,GAAc,GACdptC,EAAU,sCAEb,QAIP,OACE,iCACE,mBACE96sB,UAAU,wDACVi2wB,YAAU,EACVr6wB,GAAG,+BACHuyU,SAAUg1a,EAAOqF,aAJnB,WAME,kBAAKxovB,UAAU,oBAAf,WAEE,gBAAIA,UAAU,iBAAd,gCAIA,iBAAKA,UAAU,6BAAf,0DAKa,IAAds2wB,IACC,iBAAKt2wB,UAAU,8BAAf,UACE,iBAAKA,UAAU,8BAAf,oFAMW,IAAds2wB,IACC,iBAAKt2wB,UAAU,kCAAf,UACE,iBAAKA,UAAU,YAAf,6DAMJ,kBAAKA,UAAU,eAAf,WACE,mBAAOA,UAAU,0CAAjB,oBACA,uBACEsV,KAAK,QACLiV,YAAY,GACZ2rvB,aAAa,OACT/yB,EAAO4F,cAAc,UAJ3B,IAKE/ovB,UAAWs9uB,GACT,kDACA,CAAC,aAAc6F,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,OACrD,CACE,WAAYo2Q,EAAOE,QAAQt2Q,QAAUo2Q,EAAOvvhB,OAAOm5Q,WAIxDo2Q,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,QACrC,iBAAK/se,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOm5Q,gBAQ1C,kBAAK/se,UAAU,kDAAf,WACE,qBACEsV,KAAK,SACL1Z,GAAG,2BACHoE,UAAU,wCAHZ,WAKE,kBAAMA,UAAU,kBAAhB,oBACC45tB,IACC,mBAAM55tB,UAAU,qBAAhB,4BAEE,kBAAMA,UAAU,8DAItB,UAACyjuB,GAAD,CAAM9wqB,GAAG,cAAT,UACE,oBACEr9C,KAAK,SACL1Z,GAAG,6CACHoE,UAAU,yCACVjD,SAAUomvB,EAAOG,eAAiBH,EAAOthuB,QAJ3C,sBAQM,YCxHlB,IAAM20vB,GAAcd,KAAavvQ,MAAM,CACrCp5B,MAAO2oS,KACJj+vB,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,wBACZj2R,SAAUmgkB,KACPj+vB,IAAI,EAAG,qBACPF,IAAI,GAAI,sBACRi0d,SAAS,0BAIR64Q,GAAgB,CACpBt3Q,MAAO,GACPx3R,SAAU,IASL,SAASkhkB,KACd,OAA8B5iM,EAAAA,GAAAA,WAAS,GAAvC,eAAO+lJ,EAAP,KAAgBg8C,EAAhB,KACA,EAAmCl3B,KAA5BL,EAAP,EAAOA,SAAUE,EAAjB,EAAiBA,eAEX4E,EAASQ,GAAU,CACvBU,cAAAA,GACAS,iBAAkB0xB,GAClBroc,SAAS,WAAD,oBAAE,WAAO5iU,EAAP,0FAAgBuvsB,EAAhB,EAAgBA,UAAWotC,EAA3B,EAA2BA,cACnC0tB,GAAW,GADH,kBtO1BQtgkB,EsO6BmB/pM,EAAOwhe,MtO7BRx3R,EsO6BehqM,EAAOgqM,StO5BrD8B,IAAAA,KAAsB0miB,GAAW,CACtCzoiB,SAAAA,EACAC,SAAAA,IsOuBU,uBAGOF,EAHP,EAGC71M,KACP6+uB,EAAShpiB,GAJH,UAKkB6oiB,GAAe7oiB,EAAK8piB,UALtC,QAKA62B,EALA,OAMNz3B,EAAey3B,GANT,kDAQNj6uB,QAAQsV,MAAR,MACAtV,QAAQ+1B,IAAI,QAAZ,MACAusrB,OAASt0uB,GACT+wsB,EAAU,iCACVotC,GAAc,GACd0tB,GAAW,GAbL,kCtO1BP,IAAetgkB,EAAkBC,IsO0B1B,qBAAF,qDAAC,KAkBX,OACE,mBACEv1M,UAAU,aACVmuU,SAAUg1a,EAAOqF,aACjBytB,YAAU,EACVr6wB,GAAG,uBAJL,UAkBGunvB,EAAO95sB,QACN,iBAAKrpC,UAAU,8BAAf,UACE,iBAAKA,UAAU,8BAAf,SAA8CmjvB,EAAO95sB,WAErD,MAGJ,kBAAKrpC,UAAU,eAAf,WACE,mBAAOA,UAAU,sCAAjB,sBACA,uBACEuqB,YAAY,WACR44tB,EAAO4F,cAAc,UAF3B,IAGE/ovB,UAAWs9uB,GACT,kDACA,CAAC,aAAc6F,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,OACrD,CACE,WAAYo2Q,EAAOE,QAAQt2Q,QAAUo2Q,EAAOvvhB,OAAOm5Q,QAGvDz3d,KAAK,OACLnW,KAAK,QACL+2wB,aAAa,SAEd/yB,EAAOE,QAAQt2Q,OAASo2Q,EAAOvvhB,OAAOm5Q,QACrC,iBAAK/se,UAAU,+BAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOm5Q,cAOxC,kBAAK/se,UAAU,eAAf,WACE,iBAAKA,UAAU,uCAAf,UACE,iBAAKA,UAAU,yBAAf,UAEE,mBAAOA,UAAU,2CAAjB,2BAaJ,uBACEsV,KAAK,WACL4gwB,aAAa,OACT/yB,EAAO4F,cAAc,aAH3B,IAIE/ovB,UAAWs9uB,GACT,kDACA,CACE,aAAc6F,EAAOE,QAAQ9tiB,UAAY4tiB,EAAOvvhB,OAAOre,UAEzD,CACE,WAAY4tiB,EAAOE,QAAQ9tiB,WAAa4tiB,EAAOvvhB,OAAOre,cAI3D4tiB,EAAOE,QAAQ9tiB,UAAY4tiB,EAAOvvhB,OAAOre,WACxC,iBAAKv1M,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,kBAAMmkI,KAAK,QAAX,SAAoBg/mB,EAAOvvhB,OAAOre,mBAgC1C,iBAAKv1M,UAAU,cAAf,UACE,qBACEsV,KAAK,SACL1Z,GAAG,oBACHoE,UAAU,oCACVjD,SAAUomvB,EAAOG,eAAiBH,EAAOthuB,QAJ3C,WAMI+3sB,IAAW,kBAAM55tB,UAAU,kBAAhB,sBACZ45tB,IACC,mBAAM55tB,UAAU,qBAAqB4P,MAAO,CAACoB,QAAS,SAAtD,4BAEE,kBAAMhR,UAAU,kEChL9B,IAAM02wB,GAAa,WAQjB,OAPApjM,EAAAA,GAAAA,YAAU,WAER,OADAn/kB,SAAS+lC,KAAKlnC,UAAUC,IAAI,WACrB,WACLkB,SAAS+lC,KAAKlnC,UAAUG,OAAO,cAEhC,KAGD,iBACE6M,UAAU,mIADZ,UAOE,kBAAKA,UAAU,iEAAf,WAEE,eAAG0xD,KAAK,IAAI1xD,UAAU,QAAtB,UACE,iBAAK8tM,IAAI,OAAOv6I,IAAKgzqB,GAAc,iCAAkCvmuB,UAAU,cAEjF,gBAAIA,UAAU,QAAd,8CAGA,iBAAKA,UAAU,4DAAf,UACE,UAACkiuB,GAAD,YA0BJy0C,GAAW,kBACf,UAAC9zC,GAAD,WACE,WAACT,GAAD,CAAO3wuB,SAAS,UAACilxB,GAAD,IAAhB,WACE,UAACt0C,GAAD,CAAOnjuB,KAAK,QAAQxN,SAAS,UAACglxB,GAAD,OAC7B,UAACr0C,GAAD,CAAOnjuB,KAAK,eAAexN,SAAS,UAACkkxB,GAAD,OACpC,UAACvzC,GAAD,CAAOnjuB,KAAK,kBAAkBxN,SAAS,UAAC4kxB,GAAD,OACvC,UAACj0C,GAAD,CAAO5vuB,OAAK,EAACf,SAAS,UAACglxB,GAAD,YC7DrB,SAASG,KACd,IAAOp4B,EAAUE,KAAVF,OAMP,OALAlrK,EAAAA,GAAAA,YAAU,WACRkrK,IACArqvB,SAASw9B,SAAS2zP,WACjB,CAACk5d,KAGF,UAAC3b,GAAD,WACE,UAACb,GAAD,CAAUrvqB,GAAG,kBCTnB,IAAMkktB,GAAqB,WACzB,MAA8Bn4B,KAAvBJ,EAAP,EAAOA,YAAaE,EAApB,EAAoBA,OACpB,OACE,kBACEx+uB,UAAU,oIACV,eAAa,OAFf,WAIE,iBAAKA,UAAU,iBAAf,UACE,kBAAKA,UAAU,8CAAf,WACE,iBAAKA,UAAU,0BAAf,UACE,iBAAK8tM,IAAI,OAAOv6I,IAAKgzqB,GAAc,uCAGrC,kBAAKvmuB,UAAU,qBAAf,WACE,kBAAKA,UAAU,2CAAf,iBACGs+uB,QADH,IACGA,OADH,EACGA,EAAaw4B,UADhB,WAC4Bx4B,QAD5B,IAC4BA,OAD5B,EAC4BA,EAAay4B,YAGzC,eAAGrltB,KAAK,IAAI1xD,UAAU,6CAAtB,gBACGs+uB,QADH,IACGA,OADH,EACGA,EAAavxQ,iBAMtB,iBAAK/se,UAAU,oBA6Ff,iBAAKA,UAAU,iBAAf,UACE,eAAG24D,QAAS6lrB,EAAQx+uB,UAAU,iBAA9B,4BChHFg3wB,GAAa,WACjB,IAAO/1sB,EAAUk7qB,KAAVl7qB,OAEP,OACE,kBAAKjhE,UAAU,2CAAf,WAgGE,kBACEA,UAAWs9uB,GAAK,4BA1GS,gBA2GzB1hvB,GAAG,6BAFL,WAKE,iBACEoE,UAAWs9uB,GAAK,wBA7GO,8BA8GvB,uBAAqB,QACrB,sBAAoB,SACpB,yBAAuB,aACvB,oBAAkB,SALpB,UAOE,iBAAK/prB,IAAKgzqB,GAAc,kCAAmCz4hB,IAAI,gBAEjE,UAAC+okB,GAAD,OAMsB,SAAvB51sB,EAAOzrC,OAAOnrB,OACb,iBAAKrK,UAAU,iDAAiDud,MAAM,mBAAtE,UACE,iBACEvd,UAAU,0EACVpE,GAAG,+BAFL,UAIE,UAACq8uB,GAAD,CAAOh5uB,KAAK,uCAAuCe,UAAU,uBCzHnEi3wB,GAA2B,SAAC,GAQ3B,IAPLtktB,EAOI,EAPJA,GACAp1C,EAMI,EANJA,MACAjM,EAKI,EALJA,KACA4lwB,EAII,EAJJA,SAII,IAHJC,SAAAA,OAGI,aAFJC,UAAAA,OAEI,SADJz+sB,EACI,EADJA,QAEO+kJ,EAAY6jhB,KAAZ7jhB,SAMP,OACE,iBAAK19M,UAAU,oBAAf,UACE,WAACyjuB,GAAD,CACEzjuB,UAAWs9uB,GAAK,iBAAkB,CAChCxguB,OAAQ0ptB,GAAc9ohB,EAAU/qJ,KAElCA,GAAIA,EACJgG,QAZS,WACTA,GACFA,KAKA,UAOGy+sB,IACC,kBAAMp3wB,UAAU,cAAhB,UACE,kBAAMA,UAAU,wBAInBsR,IACC,kBAAMtR,UAAU,YAAhB,UACE,UAACi4uB,GAAD,CAAOh5uB,KAAMqS,EAAMtR,UAAU,iBAIhCk3wB,IACC,kBAAMl3wB,UAAU,YAAhB,UACE,eAAGA,UAAWs9uB,GAAK,UAAW45B,QAIlC,kBAAMl3wB,UAAU,aAAhB,SAA8Bud,IAE7B45vB,IAAY,kBAAMn3wB,UAAU,qBC1DrC,GADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+LAAmM,KAAQ,QAAS,MAAS,YCMpXq3wB,GAAgB,SAAuBlmqB,EAAOvhD,GAChD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAMgmwB,OAMV,OAA4BhjL,GAAAA,WAAiB+iL,ICd7C,GADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8XAAkY,KAAQ,OAAQ,MAAS,YCMjjBE,GAAe,SAAsBpmqB,EAAOvhD,GAC9C,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAMkmwB,OAMV,OAA4BljL,GAAAA,WAAiBijL,ICd7C,GADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uZAA2Z,KAAQ,OAAQ,MAAS,YCM1kBE,GAAe,SAAsBtmqB,EAAOvhD,GAC9C,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAMomwB,OAMV,OAA4BpjL,GAAAA,WAAiBmjL,2BCd9B,SAAShsjB,GAAQ/uN,GAC9B,IAAI8Z,EAAS9c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAC7EyjI,EAAM,GAaV,OAZAm3d,GAAAA,SAAAA,QAAuB53lB,GAAU,SAAU+T,SAC1B1G,IAAV0G,GAAiC,OAAVA,GAAoB+F,EAAOmhwB,aAGnDzgxB,MAAMi2E,QAAQ18D,GAChB0sH,EAAMA,EAAI5vG,OAAOk+L,GAAQh7M,KAChBsykB,EAAAA,GAAAA,YAAWtykB,IAAUA,EAAM0gG,MACpCgsB,EAAMA,EAAI5vG,OAAOk+L,GAAQh7M,EAAM0gG,MAAMz0G,SAAU8Z,IAE/C2mH,EAAI5qI,KAAKke,OAGN0sH,ECVT,IAAIy6oB,GAAW,WACX,GAAmB,qBAARzuhB,IACP,OAAOA,IASX,SAAS4yG,EAASv1O,EAAK7tH,GACnB,IAAI6H,GAAU,EAQd,OAPAgmH,EAAItyG,MAAK,SAAUs2G,EAAOh4H,GACtB,OAAIg4H,EAAM,KAAO7xH,IACb6H,EAAShO,GACF,MAIRgO,EAEX,OAAsB,WAClB,SAASq3wB,IACLlmxB,KAAKmmxB,YAAc,GAuEvB,OArEAr/wB,OAAOi+D,eAAemhtB,EAAQ1gxB,UAAW,OAAQ,CAI7Cqa,IAAK,WACD,OAAO7f,KAAKmmxB,YAAY7lxB,QAE5B2kE,YAAY,EACZC,cAAc,IAMlBghtB,EAAQ1gxB,UAAUqa,IAAM,SAAU7Y,GAC9B,IAAInG,EAAQupW,EAASpqW,KAAKmmxB,YAAan/wB,GACnC6xH,EAAQ74H,KAAKmmxB,YAAYtlxB,GAC7B,OAAOg4H,GAASA,EAAM,IAO1BqtpB,EAAQ1gxB,UAAUw/D,IAAM,SAAUh+D,EAAKpF,GACnC,IAAIf,EAAQupW,EAASpqW,KAAKmmxB,YAAan/wB,IAClCnG,EACDb,KAAKmmxB,YAAYtlxB,GAAO,GAAKe,EAG7B5B,KAAKmmxB,YAAYvlxB,KAAK,CAACoG,EAAKpF,KAOpCskxB,EAAQ1gxB,UAAUooP,OAAS,SAAU5mP,GACjC,IAAI89G,EAAU9kH,KAAKmmxB,YACftlxB,EAAQupW,EAAStlP,EAAS99G,IACzBnG,GACDikH,EAAQv1G,OAAO1O,EAAO,IAO9BqlxB,EAAQ1gxB,UAAUq0B,IAAM,SAAU7yB,GAC9B,SAAUojW,EAASpqW,KAAKmmxB,YAAan/wB,IAKzCk/wB,EAAQ1gxB,UAAUy4G,MAAQ,WACtBj+G,KAAKmmxB,YAAY52wB,OAAO,IAO5B22wB,EAAQ1gxB,UAAUvF,QAAU,SAAUuuD,EAAU4gJ,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAIz/E,EAAK,EAAG9lH,EAAK7J,KAAKmmxB,YAAax2pB,EAAK9lH,EAAGvJ,OAAQqvH,IAAM,CAC1D,IAAIkJ,EAAQhvH,EAAG8lH,GACfnhE,EAAS/tD,KAAK2uM,EAAKv2E,EAAM,GAAIA,EAAM,MAGpCqtpB,EAzEX,GAtBW,GAsGXE,GAA8B,qBAAX3gwB,QAA8C,qBAAbjjB,UAA4BijB,OAAOjjB,WAAaA,SAGpG6jxB,GACsB,qBAAX/rpB,EAAAA,GAA0BA,EAAAA,EAAO30G,OAASA,KAC1C20G,EAAAA,EAES,qBAAT1zG,MAAwBA,KAAKjB,OAASA,KACtCiB,KAEW,qBAAXnB,QAA0BA,OAAOE,OAASA,KAC1CF,OAGJumiB,SAAS,cAATA,GASPs6N,GACqC,oBAA1Br2oB,sBAIAA,sBAAsBxlI,KAAK47wB,IAE/B,SAAU73tB,GAAY,OAAO3rD,YAAW,WAAc,OAAO2rD,EAAS8f,KAAKskC,SAAW,IAAO,KAqExG,IAGI2zqB,GAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,GAAwD,qBAArBr/c,iBAInCs/c,GAA0C,WAM1C,SAASA,IAMLzmxB,KAAK0mxB,YAAa,EAMlB1mxB,KAAK2mxB,sBAAuB,EAM5B3mxB,KAAK4mxB,mBAAqB,KAM1B5mxB,KAAK6mxB,WAAa,GAClB7mxB,KAAK8mxB,iBAAmB9mxB,KAAK8mxB,iBAAiBr8wB,KAAKzK,MACnDA,KAAK+yR,QAjGb,SAAmBvkO,EAAUsvE,GACzB,IAAIippB,GAAc,EAAOC,GAAe,EAAOC,EAAe,EAO9D,SAASC,IACDH,IACAA,GAAc,EACdv4tB,KAEAw4tB,GACAz/N,IAUR,SAAS4/N,IACLb,GAAwBY,GAO5B,SAAS3/N,IACL,IAAIv4a,EAAY1gE,KAAKskC,MACrB,GAAIm0qB,EAAa,CAEb,GAAI/3oB,EAAYi4oB,EA7CN,EA8CN,OAMJD,GAAe,OAGfD,GAAc,EACdC,GAAe,EACfnkxB,WAAWskxB,EAAiBrppB,GAEhCmppB,EAAej4oB,EAEnB,OAAOu4a,EA6CYvrf,CAASh8D,KAAK+yR,QAAQtoR,KAAKzK,MAzC9B,IAyMhB,OAxJAymxB,EAAyBjhxB,UAAUkzlB,YAAc,SAAUpiT,IACjDt2S,KAAK6mxB,WAAW1gxB,QAAQmwS,IAC1Bt2S,KAAK6mxB,WAAWjmxB,KAAK01S,GAGpBt2S,KAAK0mxB,YACN1mxB,KAAKonxB,YASbX,EAAyBjhxB,UAAUmzlB,eAAiB,SAAUriT,GAC1D,IAAIggT,EAAYt2lB,KAAK6mxB,WACjBhmxB,EAAQy1lB,EAAUnwlB,QAAQmwS,IAEzBz1S,GACDy1lB,EAAU/mlB,OAAO1O,EAAO,IAGvBy1lB,EAAUh2lB,QAAUN,KAAK0mxB,YAC1B1mxB,KAAKqnxB,eASbZ,EAAyBjhxB,UAAUutR,QAAU,WACnB/yR,KAAKsnxB,oBAIvBtnxB,KAAK+yR,WAWb0zf,EAAyBjhxB,UAAU8hxB,iBAAmB,WAElD,IAAIC,EAAkBvnxB,KAAK6mxB,WAAWjhxB,QAAO,SAAU0wS,GACnD,OAAOA,EAASkxe,eAAgBlxe,EAASmxe,eAQ7C,OADAF,EAAgBtnxB,SAAQ,SAAUq2S,GAAY,OAAOA,EAASoxe,qBACvDH,EAAgBjnxB,OAAS,GAQpCmmxB,EAAyBjhxB,UAAU4hxB,SAAW,WAGrChB,KAAapmxB,KAAK0mxB,aAMvBlkxB,SAAS9B,iBAAiB,gBAAiBV,KAAK8mxB,kBAChDrhwB,OAAO/kB,iBAAiB,SAAUV,KAAK+yR,SACnCyzf,IACAxmxB,KAAK4mxB,mBAAqB,IAAIz/c,iBAAiBnnU,KAAK+yR,SACpD/yR,KAAK4mxB,mBAAmBp5kB,QAAQhrM,SAAU,CACtC6mI,YAAY,EACZ+9L,WAAW,EACXugd,eAAe,EACftgd,SAAS,MAIb7kU,SAAS9B,iBAAiB,qBAAsBV,KAAK+yR,SACrD/yR,KAAK2mxB,sBAAuB,GAEhC3mxB,KAAK0mxB,YAAa,IAQtBD,EAAyBjhxB,UAAU6hxB,YAAc,WAGxCjB,IAAcpmxB,KAAK0mxB,aAGxBlkxB,SAASrC,oBAAoB,gBAAiBH,KAAK8mxB,kBACnDrhwB,OAAOtlB,oBAAoB,SAAUH,KAAK+yR,SACtC/yR,KAAK4mxB,oBACL5mxB,KAAK4mxB,mBAAmBl5kB,aAExB1tM,KAAK2mxB,sBACLnkxB,SAASrC,oBAAoB,qBAAsBH,KAAK+yR,SAE5D/yR,KAAK4mxB,mBAAqB,KAC1B5mxB,KAAK2mxB,sBAAuB,EAC5B3mxB,KAAK0mxB,YAAa,IAStBD,EAAyBjhxB,UAAUshxB,iBAAmB,SAAUj9wB,GAC5D,IAAIua,EAAKva,EAAG8E,aAAcA,OAAsB,IAAPyV,EAAgB,GAAKA,EAE1DwjwB,EAAmBrB,GAAehkwB,MAAK,SAAUvb,GACjD,SAAU2H,EAAaxI,QAAQa,MAE/B4gxB,GACA5nxB,KAAK+yR,WAQb0zf,EAAyB18tB,YAAc,WAInC,OAHK/pD,KAAK6nxB,YACN7nxB,KAAK6nxB,UAAY,IAAIpB,GAElBzmxB,KAAK6nxB,WAOhBpB,EAAyBoB,UAAY,KAC9BpB,EAhMmC,GA0M1CqB,GAAsB,SAAUlhxB,EAAQ44G,GACxC,IAAK,IAAImQ,EAAK,EAAG9lH,EAAK/C,OAAOC,KAAKy4G,GAAQmQ,EAAK9lH,EAAGvJ,OAAQqvH,IAAM,CAC5D,IAAI3oH,EAAM6C,EAAG8lH,GACb7oH,OAAOi+D,eAAen+D,EAAQI,EAAK,CAC/BpF,MAAO49G,EAAMx4G,GACbi+D,YAAY,EACZowD,UAAU,EACVnwD,cAAc,IAGtB,OAAOt+D,GASPmhxB,GAAe,SAAUnhxB,GAOzB,OAHkBA,GAAUA,EAAO+5H,eAAiB/5H,EAAO+5H,cAAc0wE,aAGnDg1kB,IAItB2B,GAAYC,GAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,GAAQtmxB,GACb,OAAO+zC,WAAW/zC,IAAU,EAShC,SAASumxB,GAAevmvB,GAEpB,IADA,IAAIqZ,EAAY,GACP00E,EAAK,EAAGA,EAAK5nH,UAAUzH,OAAQqvH,IACpC10E,EAAU00E,EAAK,GAAK5nH,UAAU4nH,GAElC,OAAO10E,EAAUvxC,QAAO,SAAU8O,EAAM2N,GAEpC,OAAO3N,EAAO0vwB,GADFtmvB,EAAO,UAAYzb,EAAW,aAE3C,GAmCP,SAASiiwB,GAA0BxhxB,GAG/B,IAAI44D,EAAc54D,EAAO44D,YAAanY,EAAezgD,EAAOygD,aAS5D,IAAKmY,IAAgBnY,EACjB,OAAO2guB,GAEX,IAAIpmvB,EAASmmvB,GAAYnhxB,GAAQ27H,iBAAiB37H,GAC9Cm1C,EA3CR,SAAqBna,GAGjB,IAFA,IACIma,EAAW,GACN4zE,EAAK,EAAG04pB,EAFD,CAAC,MAAO,QAAS,SAAU,QAED14pB,EAAK04pB,EAAY/nxB,OAAQqvH,IAAM,CACrE,IAAIxpG,EAAWkiwB,EAAY14pB,GACvB/tH,EAAQggC,EAAO,WAAazb,GAChC41B,EAAS51B,GAAY+hwB,GAAQtmxB,GAEjC,OAAOm6C,EAmCQusuB,CAAY1mvB,GACvB2mvB,EAAWxsuB,EAASrjC,KAAOqjC,EAASh+B,MACpCyqwB,EAAUzsuB,EAASjjC,IAAMijC,EAAS/9B,OAKlC1M,EAAQ42wB,GAAQtmvB,EAAOtwB,OAAQC,EAAS22wB,GAAQtmvB,EAAOrwB,QAqB3D,GAlByB,eAArBqwB,EAAOq8O,YAOHt4P,KAAK6H,MAAMlc,EAAQi3wB,KAAc/otB,IACjCluD,GAAS62wB,GAAevmvB,EAAQ,OAAQ,SAAW2mvB,GAEnD5iwB,KAAK6H,MAAMjc,EAASi3wB,KAAanhuB,IACjC91C,GAAU42wB,GAAevmvB,EAAQ,MAAO,UAAY4mvB,KAoDhE,SAA2B5hxB,GACvB,OAAOA,IAAWmhxB,GAAYnhxB,GAAQpE,SAASimC,gBA9C1CggvB,CAAkB7hxB,GAAS,CAK5B,IAAI8hxB,EAAgB/iwB,KAAK6H,MAAMlc,EAAQi3wB,GAAY/otB,EAC/CmptB,EAAiBhjwB,KAAK6H,MAAMjc,EAASi3wB,GAAWnhuB,EAMpB,IAA5B1hC,KAAK23B,IAAIoruB,KACTp3wB,GAASo3wB,GAEoB,IAA7B/iwB,KAAK23B,IAAIqruB,KACTp3wB,GAAUo3wB,GAGlB,OAAOV,GAAelsuB,EAASrjC,KAAMqjC,EAASjjC,IAAKxH,EAAOC,GAQ9D,IAAIq3wB,GAGkC,qBAAvBC,mBACA,SAAUjixB,GAAU,OAAOA,aAAkBmhxB,GAAYnhxB,GAAQiixB,oBAKrE,SAAUjixB,GAAU,OAAQA,aAAkBmhxB,GAAYnhxB,GAAQq8sB,YAC3C,oBAAnBr8sB,EAAOqogB,SAiBtB,SAAS65Q,GAAelixB,GACpB,OAAKw/wB,GAGDwC,GAAqBhixB,GAhH7B,SAA2BA,GACvB,IAAImixB,EAAOnixB,EAAOqogB,UAClB,OAAOg5Q,GAAe,EAAG,EAAGc,EAAKz3wB,MAAOy3wB,EAAKx3wB,QA+GlCy3wB,CAAkBpixB,GAEtBwhxB,GAA0BxhxB,GALtBohxB,GAuCf,SAASC,GAAej3wB,EAAG2M,EAAGrM,EAAOC,GACjC,MAAO,CAAEP,EAAGA,EAAG2M,EAAGA,EAAGrM,MAAOA,EAAOC,OAAQA,GAO/C,IAAI03wB,GAAmC,WAMnC,SAASA,EAAkBrixB,GAMvB5G,KAAKkpxB,eAAiB,EAMtBlpxB,KAAKmpxB,gBAAkB,EAMvBnpxB,KAAKopxB,aAAenB,GAAe,EAAG,EAAG,EAAG,GAC5CjoxB,KAAK4G,OAASA,EA0BlB,OAlBAqixB,EAAkBzjxB,UAAU+8R,SAAW,WACnC,IAAItnR,EAAO6twB,GAAe9oxB,KAAK4G,QAE/B,OADA5G,KAAKopxB,aAAenuwB,EACZA,EAAK3J,QAAUtR,KAAKkpxB,gBACxBjuwB,EAAK1J,SAAWvR,KAAKmpxB,iBAQ7BF,EAAkBzjxB,UAAU6jxB,cAAgB,WACxC,IAAIpuwB,EAAOjb,KAAKopxB,aAGhB,OAFAppxB,KAAKkpxB,eAAiBjuwB,EAAK3J,MAC3BtR,KAAKmpxB,gBAAkBluwB,EAAK1J,OACrB0J,GAEJguwB,EAnD4B,GAsDnCK,GAOA,SAA6B1ixB,EAAQ2ixB,GACjC,IAAI1xkB,EA/FZ,SAA4BhuM,GACxB,IAAImH,EAAInH,EAAGmH,EAAG2M,EAAI9T,EAAG8T,EAAGrM,EAAQzH,EAAGyH,MAAOC,EAAS1H,EAAG0H,OAElDi4wB,EAAoC,qBAApBC,gBAAkCA,gBAAkB3ixB,OACpEmU,EAAOnU,OAAOw4B,OAAOkqvB,EAAOhkxB,WAShC,OAPAsixB,GAAmB7swB,EAAM,CACrBjK,EAAGA,EAAG2M,EAAGA,EAAGrM,MAAOA,EAAOC,OAAQA,EAClCuH,IAAK6E,EACLI,MAAO/M,EAAIM,EACX0M,OAAQzM,EAASoM,EACjBjF,KAAM1H,IAEHiK,EAkFeyuwB,CAAmBH,GAOrCzB,GAAmB9nxB,KAAM,CAAE4G,OAAQA,EAAQixM,YAAaA,KAK5D8xkB,GAAmC,WAWnC,SAASA,EAAkBn7tB,EAAU0rD,EAAY0vqB,GAc7C,GAPA5pxB,KAAK6pxB,oBAAsB,GAM3B7pxB,KAAK8pxB,cAAgB,IAAI7D,GACD,oBAAbz3tB,EACP,MAAM,IAAIu3D,UAAU,2DAExB/lH,KAAK+pxB,UAAYv7tB,EACjBxuD,KAAKgqxB,YAAc9vqB,EACnBl6G,KAAKiqxB,aAAeL,EAoHxB,OA5GAD,EAAkBnkxB,UAAUgoM,QAAU,SAAU5mM,GAC5C,IAAKmB,UAAUzH,OACX,MAAM,IAAIylH,UAAU,4CAGxB,GAAuB,qBAAZzlD,SAA6BA,mBAAmBx5D,OAA3D,CAGA,KAAMF,aAAkBmhxB,GAAYnhxB,GAAQ05D,SACxC,MAAM,IAAIylD,UAAU,yCAExB,IAAImkqB,EAAelqxB,KAAK8pxB,cAEpBI,EAAarwvB,IAAIjzB,KAGrBsjxB,EAAalltB,IAAIp+D,EAAQ,IAAIqixB,GAAkBrixB,IAC/C5G,KAAKgqxB,YAAYtxL,YAAY14lB,MAE7BA,KAAKgqxB,YAAYj3f,aAQrB42f,EAAkBnkxB,UAAU4xP,UAAY,SAAUxwP,GAC9C,IAAKmB,UAAUzH,OACX,MAAM,IAAIylH,UAAU,4CAGxB,GAAuB,qBAAZzlD,SAA6BA,mBAAmBx5D,OAA3D,CAGA,KAAMF,aAAkBmhxB,GAAYnhxB,GAAQ05D,SACxC,MAAM,IAAIylD,UAAU,yCAExB,IAAImkqB,EAAelqxB,KAAK8pxB,cAEnBI,EAAarwvB,IAAIjzB,KAGtBsjxB,EAAat8hB,OAAOhnP,GACfsjxB,EAAa1xwB,MACdxY,KAAKgqxB,YAAYrxL,eAAe34lB,SAQxC2pxB,EAAkBnkxB,UAAUkoM,WAAa,WACrC1tM,KAAKmqxB,cACLnqxB,KAAK8pxB,cAAc7rqB,QACnBj+G,KAAKgqxB,YAAYrxL,eAAe34lB,OAQpC2pxB,EAAkBnkxB,UAAUgixB,aAAe,WACvC,IAAI/ysB,EAAQz0E,KACZA,KAAKmqxB,cACLnqxB,KAAK8pxB,cAAc7pxB,SAAQ,SAAUmqxB,GAC7BA,EAAY7nf,YACZ9tN,EAAMo1sB,oBAAoBjpxB,KAAKwpxB,OAU3CT,EAAkBnkxB,UAAUkixB,gBAAkB,WAE1C,GAAK1nxB,KAAKynxB,YAAV,CAGA,IAAIr4kB,EAAMpvM,KAAKiqxB,aAEXnlqB,EAAU9kH,KAAK6pxB,oBAAoB3jxB,KAAI,SAAUkkxB,GACjD,OAAO,IAAId,GAAoBc,EAAYxjxB,OAAQwjxB,EAAYf,oBAEnErpxB,KAAK+pxB,UAAUtpxB,KAAK2uM,EAAKtqF,EAASsqF,GAClCpvM,KAAKmqxB,gBAOTR,EAAkBnkxB,UAAU2kxB,YAAc,WACtCnqxB,KAAK6pxB,oBAAoBt6wB,OAAO,IAOpCo6wB,EAAkBnkxB,UAAUiixB,UAAY,WACpC,OAAOznxB,KAAK6pxB,oBAAoBvpxB,OAAS,GAEtCqpxB,EAlJ4B,GAwJnCrzL,GAA+B,qBAAZp9d,QAA0B,IAAIA,QAAY,IAAI+spB,GAKjEt5kB,GAOA,SAASA,EAAen+I,GACpB,KAAMxuD,gBAAgB2sM,GAClB,MAAM,IAAI5mF,UAAU,sCAExB,IAAKh+G,UAAUzH,OACX,MAAM,IAAIylH,UAAU,4CAExB,IAAI7L,EAAausqB,GAAyB18tB,cACtCusP,EAAW,IAAIqze,GAAkBn7tB,EAAU0rD,EAAYl6G,MAC3Ds2lB,GAAUtxhB,IAAIhlE,KAAMs2S,IAK5B,CACI,UACA,YACA,cACFr2S,SAAQ,SAAU+I,GAChB2jM,GAAennM,UAAUwD,GAAU,WAC/B,IAAIa,EACJ,OAAQA,EAAKyslB,GAAUz2kB,IAAI7f,OAAOgJ,GAAQgd,MAAMnc,EAAI9B,eAI5D,IAQA,GAN2C,qBAA5Bs+wB,GAAS15kB,eACT05kB,GAAS15kB,eAEbA,GC15BP09kB,GAAmB,IAAI7yhB,IAW3B,IAAI8yhB,GAAiB,IAAI39kB,IAVzB,SAAkB49kB,GAChBA,EAAStqxB,SAAQ,SAAUqrE,GACzB,IAAIk/sB,EACA5jxB,EAAS0kE,EAAO1kE,OACuC,QAA1D4jxB,EAAwBH,GAAiBxqwB,IAAIjZ,UAA+C,IAA1B4jxB,GAA4CA,EAAsBvqxB,SAAQ,SAAUI,GACrJ,OAAOA,EAASuG,YCAtB,IAAIk9sB,GAA0B,SAAUC,IACtCn0G,EAAAA,EAAAA,GAAUk0G,EAAYC,GACtB,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAa20G,GAC1B,SAASA,IAEP,OADA11G,EAAAA,EAAAA,GAAgBpumB,KAAM8jtB,GACfvvlB,EAAOvuG,MAAMhmB,KAAM+H,WAQ5B,OANA0mmB,EAAAA,EAAAA,GAAaq1G,EAAY,CAAC,CACxB98sB,IAAK,SACLpF,MAAO,WACL,OAAO5B,KAAKw/G,MAAMz0G,aAGf+4sB,EAbqB,CAc5BnhH,GAAAA,WCrBS8nL,GAAiC9nL,GAAAA,cAAoB,MCMhE,SAAS+nL,GAAelrqB,EAAOvhD,GAC7B,IAAIlzD,EAAWy0G,EAAMz0G,SACnBK,EAAWo0G,EAAMp0G,SACf2rV,EAAa4rQ,GAAAA,OAAa,MAC1BgoL,EAAahoL,GAAAA,OAAa,MAC1BioL,EAAqBjoL,GAAAA,WAAiB8nL,IAEtCI,EAAoC,oBAAb9/wB,EACvB+/wB,EAAiBD,EAAgB9/wB,EAASgsV,GAAchsV,EAExDggxB,EAAUpoL,GAAAA,OAAa,CACzBrxlB,OAAQ,EACRC,QAAS,EACTuL,aAAc,EACdC,cAAe,IAGbiuwB,GAAUH,GAA8BloL,GAAAA,eAAqBmoL,IAAmBxnE,GAAWwnE,GAC3FG,EAAYD,EAASF,EAAe7stB,IAAM,KAC1CittB,EAAYvoL,GAAAA,SAAc,WAC5B,OAAOwgH,GAAW8nE,EAAWl0b,KAC5B,CAACk0b,EAAWl0b,IACXo0b,EAAS,WACX,OAAOl8L,GAAYl4P,EAAWz4G,UAAY2wW,GAAY07L,EAAWrsiB,UAEnEqkX,GAAAA,oBAA0B1kiB,GAAK,WAC7B,OAAOkttB,OAGT,IAAIC,EAAWzoL,GAAAA,OAAanjf,GAC5B4rqB,EAAS9siB,QAAU9+H,EAEnB,IAAI6rqB,EAAmB1oL,GAAAA,aAAkB,SAAU/7lB,GACjD,IAAI0kxB,EAAoBF,EAAS9siB,QAC/Bj/I,EAAWisrB,EAAkBjsrB,SAC7BxxF,EAAOy9wB,EAAkBz9wB,KACvB09wB,EAAwB3kxB,EAAOqV,wBACjC3K,EAAQi6wB,EAAsBj6wB,MAC9BC,EAASg6wB,EAAsBh6wB,OAC7BuL,EAAclW,EAAOkW,YACvBC,EAAenW,EAAOmW,aAMpB0rK,EAAa9iK,KAAKo1B,MAAMzpC,GACxBk6wB,EAAc7lwB,KAAKo1B,MAAMxpC,GAC7B,GAAIw5wB,EAAQzsiB,QAAQhtO,QAAUm3K,GAAcsimB,EAAQzsiB,QAAQ/sO,SAAWi6wB,GAAeT,EAAQzsiB,QAAQxhO,cAAgBA,GAAeiuwB,EAAQzsiB,QAAQvhO,eAAiBA,EAAc,CAClL,IAAIvE,EAAO,CACTlH,MAAOm3K,EACPl3K,OAAQi6wB,EACR1uwB,YAAaA,EACbC,aAAcA,GAEhBguwB,EAAQzsiB,QAAU9lO,EAElB,IAAIizwB,EAAoB3uwB,IAAgB6I,KAAK6H,MAAMlc,GAASA,EAAQwL,EAChE4uwB,EAAqB3uwB,IAAiB4I,KAAK6H,MAAMjc,GAAUA,EAASwL,EACpE4uwB,EAAW7wF,EAAcA,EAAc,GAAItirB,GAAO,GAAI,CACxDsE,YAAa2uwB,EACb1uwB,aAAc2uwB,IAGO,OAAvBd,QAAsD,IAAvBA,GAAyCA,EAAmBe,EAAU/kxB,EAAQiH,GACzGwxF,GAEFlhD,QAAQ/tC,UAAUouC,MAAK,WACrB6gD,EAASssrB,EAAU/kxB,SAIxB,IAYH,OAVA+7lB,GAAAA,WAAgB,WACd,IAAIh5X,EAAiBwhjB,IAIrB,OAHIxhjB,IAAmBv+N,GHjEpB,SAAiBtL,EAAS0uD,GAC1B67tB,GAAiBxwvB,IAAI/5B,KACxBuqxB,GAAiBrltB,IAAIllE,EAAS,IAAI6kH,KAClC2lqB,GAAe98kB,QAAQ1tM,IAEzBuqxB,GAAiBxqwB,IAAI/f,GAASwB,IAAIktD,GG6D9Bg/I,CAAQm8B,EAAgB0hjB,GAEnB,WACL,OH9DC,SAAmBvrxB,EAAS0uD,GAC7B67tB,GAAiBxwvB,IAAI/5B,KACvBuqxB,GAAiBxqwB,IAAI/f,GAAS8tP,OAAOp/L,GAChC67tB,GAAiBxqwB,IAAI/f,GAAS0Y,OACjC8xwB,GAAelzhB,UAAUt3P,GACzBuqxB,GAAiBz8hB,OAAO9tP,KGyDjBs3P,CAAUztB,EAAgB0hjB,MAElC,CAACt0b,EAAWz4G,QAASlzO,IAEJu3lB,GAAAA,cAAoBmhH,GAAY,CAClD7lpB,IAAK0stB,GACJK,EAAsBroL,GAAAA,aAAmBmoL,EAAgB,CAC1D7stB,IAAKittB,IACFJ,GAMP,OAJqCnoL,GAAAA,WAAiB+nL,ICvFtD,SAAS/9kB,GAAentF,EAAOvhD,GAC7B,IAAIlzD,EAAWy0G,EAAMz0G,SASrB,OARqC,oBAAbA,EAA0B,CAACA,GAAY+uN,GAAQ/uN,IAQrD7E,KAAI,SAAU4Y,EAAOje,GACrC,IAAImG,GAAiB,OAAV8X,QAA4B,IAAVA,OAAmB,EAASA,EAAM9X,MAAQ,GAAG40B,OAfpD,kBAegF,KAAKA,OAAO/6B,GAClH,OAAoB8hmB,GAAAA,cAAoB+nL,IAAgBzyjB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CAC1Ex4G,IAAKA,EACLi3D,IAAe,IAAVp9D,EAAco9D,OAAM7lD,IACvB0G,MAGR,IAAI8swB,GAAiCjpL,GAAAA,WAAiBh2Z,IAItDi/kB,GAAkBC,WF3BX,SAAoB7kiB,GACzB,IAAIj8O,EAAWi8O,EAAKj8O,SAClB+gxB,EAAgB9kiB,EAAK8kiB,cACnBC,EAAcppL,GAAAA,OAAa,GAC3BqpL,EAAiBrpL,GAAAA,OAAa,IAC9BioL,EAAqBjoL,GAAAA,WAAiB8nL,IACtCprrB,EAAWsjgB,GAAAA,aAAkB,SAAUnqlB,EAAM1Y,EAAS+N,GACxDk+wB,EAAYztiB,SAAW,EACvB,IAAI2tiB,EAAYF,EAAYztiB,QAC5B0tiB,EAAe1tiB,QAAQ19O,KAAK,CAC1B4X,KAAMA,EACN1Y,QAASA,EACT+N,KAAMA,IAERswC,QAAQ/tC,UAAUouC,MAAK,WACjBytuB,IAAcF,EAAYztiB,UACV,OAAlBwtiB,QAA4C,IAAlBA,GAAoCA,EAAcE,EAAe1tiB,SAC3F0tiB,EAAe1tiB,QAAU,OAIN,OAAvBssiB,QAAsD,IAAvBA,GAAyCA,EAAmBpywB,EAAM1Y,EAAS+N,KACzG,CAACi+wB,EAAelB,IACnB,OAAoBjoL,GAAAA,cAAoB8nL,GAAkBxpqB,SAAU,CAClEr/G,MAAOy9F,GACNt0F,IEGL,UChCe,SAASs7uB,GAAK34qB,EAAKj8C,GAChC,IAAI6pD,EAAQw/mB,EAAc,GAAIptnB,GAM9B,OALInoE,MAAMi2E,QAAQ/pD,IAChBA,EAAOxxB,SAAQ,SAAU+G,UAChBs0E,EAAMt0E,MAGVs0E,ECPT,IAAI4wsB,GAAqB,SAA4BjhtB,GACnD,GAAI2xnB,MAAen3qB,OAAOjjB,SAASimC,gBAAiB,CAClD,IAAI0jvB,EAAgB5mxB,MAAMi2E,QAAQvQ,GAAaA,EAAY,CAACA,GACxDxiC,EAAkBhjB,OAAOjjB,SAASimC,gBACtC,OAAO0jvB,EAAc5pwB,MAAK,SAAU/U,GAClC,OAAOA,KAAQi7B,EAAgBxqB,SAGnC,OAAO,GAWF,SAASmuwB,GAAenhtB,EAAWC,GACxC,OAAK3lE,MAAMi2E,QAAQvQ,SAA6B7yD,IAAf8yD,EAG1BghtB,GAAmBjhtB,GAbF,SAA6BA,EAAWrpE,GAChE,IAAKsqxB,GAAmBjhtB,GACtB,OAAO,EAET,IAAIoymB,EAAM76qB,SAAS4gC,cAAc,OAC7BipvB,EAAShvG,EAAIp/pB,MAAMgtD,GAEvB,OADAoymB,EAAIp/pB,MAAMgtD,GAAarpE,EAChBy7qB,EAAIp/pB,MAAMgtD,KAAeohtB,EAIvBC,CAAoBrhtB,EAAWC,GCtB1C,ICEIqge,GDFAu8D,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GASHq2tB,GAAc,CAClBlxuB,OAAQ,EACR0ue,WAAY,cACZ57f,QAAS,EACTylB,WAAY,UACZv0B,QAAS,gBAELmtwB,GAA2B7pL,GAAAA,YAAiB,SAACnjf,EAAOvhD,GACxD,IAoBIhgD,EAGEuhG,EAHFvhG,MACAwuwB,EAEEjtqB,EAFFitqB,QACArhxB,EACEo0G,EADFp0G,SAEFskU,EAAYo4R,GAAOtof,EAAO,CAAC,QAAS,UAAW,aAC7CwnlB,EAAc,GAQlB,OAPKylF,IACHzlF,EAAclgsB,OAAOw4C,OAAO,GAAIituB,KAE9BnhxB,IACF47rB,EAAYnlqB,cAAgB,QAE9BmlqB,EAAclgsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI0npB,GAAc/orB,GACxC0klB,GAAAA,cAAoB,MAAO77lB,OAAOw4C,OAAO,CAC3DkzF,KAAM,SACNsM,SAAU,EACV7gF,IAAKA,GACJyxQ,EAAW,CACZ73N,UAtCgB,SAAAr9F,GAGZA,EADF81C,UAEcqtqB,GAAAA,OACdnjtB,EAAMnT,kBAkCRkrd,QA/Bc,SAAA/3c,GACd,IACE81C,EACE91C,EADF81C,QAGA0W,EACEw4C,EADFx4C,QAEE1W,IAAYqtqB,GAAAA,OAAiB32pB,GAC/BA,KAwBF/oD,MAAO+orB,QAGX,ME7CA,GAlBkB,SAAClye,EAAep9F,GAChC,IAAMg1pB,EAAa/pL,GAAAA,WAAiBuuG,IAC9By7E,EAAYhqL,GAAAA,SAAc,WAC9B,IAAI94lB,EACEkD,EAAS2qH,GAAiBk1pB,GAAkB93jB,GAC5C+3jB,EAAiH,QAA5FhjxB,EAAoB,OAAf6ixB,QAAsC,IAAfA,OAAwB,EAASA,EAAW53jB,UAAmC,IAAPjrN,EAAgBA,EAAK,GACpJ,OAAO/C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAsB,oBAAXvyC,EAAwBA,IAAWA,GAAS8/wB,GAAqB,MAC9G,CAAC/3jB,EAAep9F,EAAeg1pB,IASlC,MAAO,CAACC,EARchqL,GAAAA,SAAc,WAClC,IAAMmqL,EAA4B,OAAfJ,QAAsC,IAAfA,OAAwB,EAASA,EAAW3/wB,OAEtF,OAAoB,OAAf2/wB,QAAsC,IAAfA,OAAwB,EAASA,EAAWz7E,SAAW67E,EAC1EF,GAAAA,OAEFE,IACN,CAACJ,MChBN,GADgC/pL,GAAAA,cAAoB,MCKhDoqL,GAAa,GH4BjB,SAASC,GAAWxusB,GAClB,IAAI78D,EAAQ68D,EAAI78D,MAAM,YAClB/f,EAAQ6tD,OAAiB,OAAV9tC,QAA4B,IAAVA,OAAmB,EAASA,EAAM,IACvE,OAAO8tC,OAAOjmB,MAAM5nC,GAlCP,SAA0BqrxB,GACvC,GAAwB,qBAAbzqxB,SACT,OAAO,EAET,GAAIyqxB,QAAoB70wB,IAAXmzhB,GAAsB,CACjC,IAAItpa,EAAQz/H,SAAS4gC,cAAc,OACnC6+F,EAAMhkH,MAAM3M,MAAQ,OACpB2wH,EAAMhkH,MAAM1M,OAAS,QACrB,IAAI2wH,EAAQ1/H,SAAS4gC,cAAc,OAC/B8pvB,EAAahrpB,EAAMjkH,MACvBivwB,EAAW/mwB,SAAW,WACtB+mwB,EAAWp0wB,IAAM,IACjBo0wB,EAAWx0wB,KAAO,IAClBw0wB,EAAWrrvB,cAAgB,OAC3BqrvB,EAAW33tB,WAAa,SACxB23tB,EAAW57wB,MAAQ,QACnB47wB,EAAW37wB,OAAS,QACpB27wB,EAAW/qpB,SAAW,SACtBD,EAAM1qD,YAAYyqD,GAClBz/H,SAAS+lC,KAAKivC,YAAY0qD,GAC1B,IAAIirpB,EAAiBlrpB,EAAMnlH,YAC3BolH,EAAMjkH,MAAMkkH,SAAW,SACvB,IAAIirpB,EAAcnrpB,EAAMnlH,YACpBqwwB,IAAmBC,IACrBA,EAAclrpB,EAAM1iE,aAEtBh9D,SAAS+lC,KAAK4kB,YAAY+0E,GAC1Bqpa,GAAS4hP,EAAiBC,EAE5B,OAAO7hP,GAKsB8hP,GAAqBzrxB,EI/BpD,IAAI0rxB,GAAY,kBAAkB1xvB,OAAO0yC,KAAKskC,OAC1CgtlB,GAAO,EACI,SAAS2tF,GAAgB3uqB,GACtC,IAAI4uqB,IAAe5uqB,EACfslmB,EAAkBvhH,GAAAA,UAAe,WAEjC,OADAi9F,IAAQ,EACD,GAAGhkqB,OAAO0xvB,GAAW,KAAK1xvB,OAAOgkqB,OAG1C31rB,GADmBommB,EAAAA,EAAAA,GAAe6zG,EAAiB,GAC7B,GACxBpiI,IAAgB,WACd,GAAI0rM,EAAY,CACd,IAAIC,EJqBH,SAAgC7mxB,GACrC,GAAwB,qBAAbpE,WAA6BoE,KAAYA,aAAkB05D,SACpE,MAAO,CACLhvD,MAAO,EACPC,OAAQ,GAGZ,IAAIw+vB,EAAoBxtoB,iBAAiB37H,EAAQ,uBAC/C0K,EAAQy+vB,EAAkBz+vB,MAC1BC,EAASw+vB,EAAkBx+vB,OAC7B,MAAO,CACLD,MAAO07wB,GAAW17wB,GAClBC,OAAQy7wB,GAAWz7wB,IIjCGm8wB,CAAuBlrxB,SAAS+lC,MAAMj3B,MACtDq8wB,ECfDnrxB,SAAS+lC,KAAK6e,cAAgB3hC,OAAOq8H,aAAet/I,SAASimC,gBAAgB4e,eAAiB5hC,OAAOo8H,WAAar/I,SAAS+lC,KAAKzrB,YDgBnIqhrB,GAAU,2CAA2CviqB,OAAO+xvB,EAAa,sBAAsB/xvB,OAAO6xvB,EAAe,QAAU,GAAI,OAAQxjxB,QAE3I6zrB,GAAU7zrB,GAEZ,OAAO,WACL6zrB,GAAU7zrB,MAEX,CAACujxB,EAAYvjxB,IE3BX,IAAIsoI,IAAS,ECUpB,IAAIq7oB,GAAqB,SAA4BzlxB,GACnD,OAAqB,IAAjBA,IAGCy0rB,MAAgBz0rB,EAGO,kBAAjBA,EACF3F,SAASo3E,cAAczxE,GAEJ,oBAAjBA,EACFA,IAEFA,EARE,OAUPuolB,GAAsBiS,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GAC1D,IAAIklE,EAAO3jB,EAAM2jB,KACf0qpB,EAAWruqB,EAAMquqB,SACjB1lxB,EAAeq3G,EAAMr3G,aAErB2lxB,GADQtuqB,EAAM4tG,MACO5tG,EAAMuuqB,aAC3BA,OAAqC,IAAvBD,GAAuCA,EACrD/ixB,EAAWy0G,EAAMz0G,SACfm5sB,EAAkBvhH,GAAAA,SAAex/d,GACnCghlB,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD8pE,EAAe7pE,EAAiB,GAChC8pE,EAAkB9pE,EAAiB,GACjC+pE,EAAeF,GAAgB7qpB,EAQnCw/d,GAAAA,WAAgB,YACVorL,GAAe5qpB,IACjB8qpB,EAAgB9qpB,KAEjB,CAACA,EAAM4qpB,IAGV,IAAIjqD,EAAmBnhI,GAAAA,UAAe,WAClC,OAAOirL,GAAmBzlxB,MAE5B47tB,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDqqD,EAAiBpqD,EAAiB,GAClCqqD,EAAoBrqD,EAAiB,GACvCphI,GAAAA,WAAgB,WACd,IAAI0rL,EAAqBT,GAAmBzlxB,GAG5CimxB,EAAyC,OAAvBC,QAAsD,IAAvBA,EAAgCA,EAAqB,SAExG,IAAIC,EJpDS,SAAgB/uwB,EAAQ6tM,GACrC,IAAI82f,EAAkBvhH,GAAAA,UAAe,WACjC,OAAKi6F,KAGYp6rB,SAAS4gC,cAAc,OAF/B,QASXi6oB,GADmBhtE,EAAAA,EAAAA,GAAe6zG,EAAiB,GAC5B,GAGrBqqE,EAAc5rL,GAAAA,QAAa,GAC3B6rL,EAAc7rL,GAAAA,WAAiB8rL,IAC/B3qD,EAAmBnhI,GAAAA,SAAeoqL,IACpChpD,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDzke,EAAQ0ke,EAAiB,GACzB2qD,EAAW3qD,EAAiB,GAC1B4qD,EAAoBH,IAAgBD,EAAYjwiB,aAAUlmO,EAAY,SAAUw2wB,GAClFF,GAAS,SAAUrC,GAEjB,MADe,CAACuC,GAAUhzvB,QAAOi1kB,EAAAA,EAAAA,GAAmBw7K,SAMxD,SAAStswB,IACFs9pB,EAAIp1oB,eACPzlC,SAAS+lC,KAAKivC,YAAY6lmB,GAE5BkxG,EAAYjwiB,SAAU,EAExB,SAASjzE,IACP,IAAIwjnB,EACyC,QAA5CA,EAAqBxxG,EAAIp1oB,qBAAkD,IAAvB4mvB,GAAyCA,EAAmB1huB,YAAYkwnB,GAC7HkxG,EAAYjwiB,SAAU,EAsBxB,OApBAwjW,IAAgB,WAUd,OATIvikB,EACEivwB,EACFA,EAAYzuwB,GAEZA,IAGFsrJ,IAEKA,IACN,CAAC9rJ,IACJuikB,IAAgB,WACVziV,EAAM/+P,SACR++P,EAAMp/P,SAAQ,SAAU2uxB,GACtB,OAAOA,OAETF,EAAS3B,OAEV,CAAC1thB,IACG,CAACg+a,EAAKsxG,GIRCG,CAAOZ,IAAiBC,GACpCY,GAAW1+K,EAAAA,EAAAA,GAAei+K,EAAS,GACnCU,EAAmBD,EAAS,GAC5BP,EAAcO,EAAS,GACrBE,EAAqC,OAAnBd,QAA8C,IAAnBA,EAA4BA,EAAiBa,EAG9FzB,GAAgBM,GAAY1qpB,GAAQy5jB,OAAgBqyF,IAAoBD,GAAoBC,IAAoBzsxB,SAAS+lC,OAGzH,IAAI2mvB,EAAW,KACXnkxB,GAAYu4sB,GAAWv4sB,IAAakzD,IAEtCixtB,EADWnkxB,EACKkzD,KAElB,IAAIittB,EAAY7nE,GAAc6rE,EAAUjxtB,GAKxC,IAAKiwtB,IAAiBtxF,WAAkCxkrB,IAAnB+1wB,EACnC,OAAO,KAIT,IDxFyBgB,ECwFrBC,GAAmC,IAApBH,IDvFO,mBAAfE,IACT58oB,GAAS48oB,GAEJ58oB,ICqFH88oB,EAAiBtkxB,EAMrB,OALIkzD,IACFoxtB,EAA8B1sL,GAAAA,aAAmB53lB,EAAU,CACzDkzD,IAAKittB,KAGWvoL,GAAAA,cAAoB8rL,GAAAA,SAAuB,CAC7D7sxB,MAAO4sxB,GACNY,EAAeC,GAA8BvgM,EAAAA,GAAAA,cAAaugM,EAAgBJ,OAK/E,ICpGA,GDoGA,GE/FA,IAAIrvF,GAAO,EAQI,SAASp9G,GAAMv4kB,GAE5B,IAAIi6sB,EAAkBvhH,GAAAA,SAAe,UACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDorE,EAAUnrE,EAAiB,GAC3BorE,EAAaprE,EAAiB,GAC5BqrE,EAjBY10F,EAAc,GAAIn4F,IACjBngB,MAiBbitM,EAAgC,OAAhBD,QAAwC,IAAhBA,OAAyB,EAASA,IAU9E,OATA7sL,GAAAA,WAAgB,WACd,IAAK6sL,EAAa,CAChB,IAAIv5Q,EAAS2pL,GACbA,IAAQ,EACR2vF,EAAW,aAAa3zvB,OAAOq6e,OAEhC,IAGChsgB,IAUGwlxB,GAAiBH,GC3C1B,kBACE,GAAyB,qBAAd7wpB,WAA+C,qBAAXh5G,OAC7C,OAAO,EAET,IAAIiqwB,EAAQjxpB,UAAUI,WAAaJ,UAAUkxpB,QAAUlqwB,OAAO45G,MAC9D,MAAO,sVAAsVn8F,KAAKwsvB,IAAU,4hDAA4hDxsvB,KAAe,OAAVwsvB,QAA4B,IAAVA,OAAmB,EAASA,EAAM/+wB,OAAO,EAAG,KCH78D,GADkCgylB,GAAAA,cAAoB,MCAtD,SAAS7oY,GAAQ/1M,GACf,OAAOA,EAAMxe,MAAMi2E,QAAQz3D,GAAOA,EAAM,CAACA,GAAO,GAEnC,SAAS6rwB,GAAUC,EAAQpvwB,EAAQqvwB,EAAYC,GAC5D,OAAOptL,GAAAA,SAAc,WACnB,IAAIqtL,EAAmBl2jB,GAAuB,OAAfg2jB,QAAsC,IAAfA,EAAwBA,EAAarvwB,GACvFwvwB,EAAmBn2jB,GAAuB,OAAfi2jB,QAAsC,IAAfA,EAAwBA,EAAatvwB,GACvFyvwB,EAAgB,IAAIvrqB,IAAIqrqB,GACxBG,EAAgB,IAAIxrqB,IAAIsrqB,GAW5B,OAVIJ,IACEK,EAAcr2vB,IAAI,WACpBq2vB,EAActiiB,OAAO,SACrBsiiB,EAAc5uxB,IAAI,UAEhB6uxB,EAAct2vB,IAAI,WACpBs2vB,EAAcviiB,OAAO,SACrBuiiB,EAAc7uxB,IAAI,WAGf,CAAC4uxB,EAAeC,KACtB,CAACN,EAAQpvwB,EAAQqvwB,EAAYC,ICrBlC,gBAA0BjwxB,GACxB,IAAKA,EACH,OAAO,EAET,GAAIA,aAAmBwgE,QAAS,CAC9B,GAAIxgE,EAAQ42P,aACV,OAAO,EAET,GAAI52P,EAAQmvgB,QAAS,CACnB,IAAImhR,EAAWtwxB,EAAQmvgB,UACrB39f,EAAQ8+wB,EAAS9+wB,MACjBC,EAAS6+wB,EAAS7+wB,OACpB,GAAID,GAASC,EACX,OAAO,EAGX,GAAIzR,EAAQmc,sBAAuB,CACjC,IAAIo0wB,EAAwBvwxB,EAAQmc,wBAClCq3B,EAAS+8uB,EAAsB/+wB,MAC/BiiC,EAAU88uB,EAAsB9+wB,OAClC,GAAI+hC,GAAUC,EACZ,OAAO,GAIb,OAAO,GCxBT,SAAS+8uB,KACP,IAAIt8K,EAAKjsmB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACzEwoxB,EAAKxoxB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACzEyoxB,EAAezoxB,UAAUzH,OAAS,EAAIyH,UAAU,QAAKqQ,EACzD,OAAIo4wB,EACKx8K,EAAG,KAAOu8K,EAAG,GAEfv8K,EAAG,KAAOu8K,EAAG,IAAMv8K,EAAG,KAAOu8K,EAAG,GAElC,SAASE,GAAuBC,EAAmBx3D,EAAWr/qB,EAAO22uB,GAG1E,IAFA,IAAI9wU,EAAS7la,EAAM6la,OACfskR,EAAal9tB,OAAOC,KAAK2pxB,GACpB3kxB,EAAI,EAAGA,EAAIi4tB,EAAW1juB,OAAQyL,GAAK,EAAG,CAC7C,IAAI4kxB,EACAvsD,EAAYJ,EAAWj4tB,GAC3B,GAAIukxB,GAAsE,QAA1DK,EAAwBD,EAAkBtsD,UAAkD,IAA1BusD,OAAmC,EAASA,EAAsBjxU,OAAQA,EAAQ8wU,GAClK,MAAO,GAAG50vB,OAAOs9rB,EAAW,eAAet9rB,OAAOwosB,GAGtD,MAAO,GAIF,SAASsF,GAAUxQ,EAAWrjB,EAAQvxe,EAAWwhf,GACtD,OAAIjQ,IAGAvxe,EACK,CACLknf,WAAY,GAAG5vrB,OAAOs9rB,EAAW,KAAKt9rB,OAAO0oM,IAG7Cwhf,EACK,CACL0F,WAAY1F,GAGT,MAEF,SAAS8qE,GAAOvzG,GACrB,OAAOA,EAAI18iB,cAAc0wE,YAQpB,SAASw/kB,GAAgBxzG,GAI9B,IAHA,IAAIyzG,EAAe,GACfxyiB,EAAkB,OAAR++b,QAAwB,IAARA,OAAiB,EAASA,EAAIp1oB,cACxD8ovB,EAAc,CAAC,SAAU,SAAU,OAAQ,QACxCzyiB,GAAS,CACd,IAAI0yiB,EAAwBJ,GAAOtyiB,GAAS/7G,iBAAiB+7G,GAIzD,CAHU0yiB,EAAsB3sW,UACtB2sW,EAAsB1sW,UACvB0sW,EAAsB7upB,UACE5/G,MAAK,SAAU0tE,GAClD,OAAO8gsB,EAAYj1pB,SAAS7rC,OAE5B6gsB,EAAalwxB,KAAK09O,GAEpBA,EAAUA,EAAQr2M,cAEpB,OAAO6ovB,EAEF,SAASG,GAAMrquB,GACpB,IAAIrS,EAAexsC,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EACvF,OAAO0nD,OAAOjmB,MAAMod,GAAOrS,EAAeqS,EAE5C,SAASsquB,GAAWntwB,GAClB,OAAOktwB,GAAMt7uB,WAAW5xB,GAAM,GAwBzB,SAASotwB,GAAeC,EAAUN,GACvC,IAAIO,EAAcv2F,EAAc,GAAIs2F,GAuDpC,OAtDCN,GAAgB,IAAI7wxB,SAAQ,SAAUo9qB,GACrC,KAAIA,aAAei0G,iBAAmBj0G,aAAek0G,iBAArD,CAKA,IAAIC,EAAyBZ,GAAOvzG,GAAK96iB,iBAAiB86iB,GACxDl7iB,EAAWqvpB,EAAuBrvpB,SAClCsvpB,EAAqBD,EAAuBC,mBAC5Cx6oB,EAAiBu6oB,EAAuBv6oB,eACxCkja,EAAoBq3O,EAAuBr3O,kBAC3Cjja,EAAkBs6oB,EAAuBt6oB,gBACzC2rD,EAAmB2ulB,EAAuB3ulB,iBACxC6ulB,EAAUr0G,EAAIphqB,wBACd01wB,EAAet0G,EAAItgqB,aACrB60wB,EAAiBv0G,EAAIh2nB,aACrBwquB,EAAcx0G,EAAIvgqB,YAClBg1wB,EAAgBz0G,EAAI79mB,YAClBuytB,EAAeb,GAAWj6oB,GAC1B+6oB,EAAkBd,GAAW/2O,GAC7B83O,EAAgBf,GAAWh6oB,GAC3Bg7oB,EAAiBhB,GAAWrulB,GAC5BkiU,EAASksR,GAAMtrwB,KAAK6H,MAAMkkwB,EAAQpgxB,MAAQugxB,EAAc,KAAQ,KAChErrvB,EAASyqvB,GAAMtrwB,KAAK6H,MAAMkkwB,EAAQngxB,OAASogxB,EAAe,KAAQ,KAGlEQ,GAAkBN,EAAcC,EAAgBG,EAAgBC,GAAkBntR,EAClFqtR,GAAmBT,EAAeC,EAAiBG,EAAeC,GAAmBxrvB,EAGrF6rvB,EAAuBN,EAAevrvB,EACtC8rvB,EAA0BN,EAAkBxrvB,EAC5C+rvB,EAAwBN,EAAgBltR,EACxCytR,EAAyBN,EAAiBntR,EAG1C0tR,EAAkB,EAClBC,EAAmB,EACvB,GAAiB,SAAbvwpB,EAAqB,CACvB,IAAIwwpB,EAAUzB,GAAWO,GACzBgB,EAAkBE,EAAU5tR,EAC5B2tR,EAAmBC,EAAUnsvB,EAI/B,IAAIosvB,EAAUlB,EAAQ1gxB,EAAIuhxB,EAAwBE,EAC9CznG,EAAS0mG,EAAQ/zwB,EAAI00wB,EAAuBK,EAC5CG,EAAWD,EAAUlB,EAAQpgxB,MAAQ,EAAImhxB,EAAkBF,EAAwBC,EAAyBL,EAC5GW,EAAY9nG,EAAS0mG,EAAQngxB,OAAS,EAAImhxB,EAAmBL,EAAuBC,EAA0BF,EAClHf,EAAY34wB,KAAOiN,KAAKC,IAAIyrwB,EAAY34wB,KAAMk6wB,GAC9CvB,EAAYv4wB,IAAM6M,KAAKC,IAAIyrwB,EAAYv4wB,IAAKkyqB,GAC5CqmG,EAAYtzwB,MAAQ4H,KAAKG,IAAIurwB,EAAYtzwB,MAAO80wB,GAChDxB,EAAYrzwB,OAAS2H,KAAKG,IAAIurwB,EAAYrzwB,OAAQ80wB,OAE7CzB,EChJT,SAAS0B,GAAcv6wB,GACrB,IAAIjN,EAASxD,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAC7EirxB,EAAY,GAAGp3vB,OAAOrwB,GACtBg/K,EAAQyomB,EAAUrxwB,MAAM,YAC5B,OAAI4oK,EACK/xK,GAAQm9B,WAAW40I,EAAM,IAAM,KAEjC50I,WAAWq9uB,GAEpB,SAASC,GAAgBh4wB,EAAM1P,GAC7B,IAAIy7O,EAAOz7O,GAAU,GACnB48O,GAAQkoX,EAAAA,EAAAA,GAAerpX,EAAM,GAC7Bt4M,EAAUy5M,EAAM,GAChBx5M,EAAUw5M,EAAM,GAClB,MAAO,CAAC4qiB,GAAc93wB,EAAK3J,MAAOo9B,GAAUqkvB,GAAc93wB,EAAK1J,OAAQo9B,IAEzE,SAASukvB,KACP,IAAIxzU,EAAS33c,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAO,CAAC23c,EAAO,GAAIA,EAAO,IAE5B,SAASyzU,GAAcl4wB,EAAMykc,GAC3B,IAGI/hc,EAHAy1wB,EAAY1zU,EAAO,GACnB2zU,EAAY3zU,EAAO,GAqBvB,OAfE/hc,EADgB,MAAdy1wB,EACEn4wB,EAAK0C,EACc,MAAdy1wB,EACLn4wB,EAAK0C,EAAI1C,EAAK1J,OAEd0J,EAAK0C,EAAI1C,EAAK1J,OAAS,EAWtB,CACLP,EARgB,MAAdqixB,EACEp4wB,EAAKjK,EACc,MAAdqixB,EACLp4wB,EAAKjK,EAAIiK,EAAK3J,MAEd2J,EAAKjK,EAAIiK,EAAK3J,MAAQ,EAI1BqM,EAAGA,GAGP,SAAS21wB,GAAc5zU,EAAQ7+c,GAC7B,IAAI0yxB,EAAa,CACfr9tB,EAAG,IACHxQ,EAAG,IACHwqC,EAAG,IACH3pB,EAAG,KAEL,OAAOm5Y,EAAOx5c,KAAI,SAAU8gK,EAAOj7J,GACjC,OAAIA,IAAMlL,EACD0yxB,EAAWvsnB,IAAU,IAEvBA,KACN/1J,KAAK,IAEK,SAASuixB,GAASrwpB,EAAMswpB,EAAU7sxB,EAAQw9tB,EAAWssD,EAAmBgD,EAAYC,GACjG,IAAIzvE,EAAkBvhH,GAAAA,SAAe,CACjC9/U,OAAO,EACPn0O,QAAS,EACTC,QAAS,EACTilvB,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRhvR,OAAQ,EACRv+d,OAAQ,EACRqT,MAAO62uB,EAAkBtsD,IAAc,KAEzCjgB,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD8vE,EAAa7vE,EAAiB,GAC9B8vE,EAAgB9vE,EAAiB,GAC/B+vE,EAAgBvxL,GAAAA,OAAa,GAC7BmuL,EAAenuL,GAAAA,SAAc,WAC/B,OAAK8wL,EAGE5C,GAAgB4C,GAFd,KAGR,CAACA,IAKAU,EAAcxxL,GAAAA,OAAa,IAI1Bx/d,IAFHgxpB,EAAY71iB,QAAU,IAOxB,IAAI81iB,EAAUlvD,IAAS,WACrB,GAAIuuD,GAAY7sxB,GAAUu8H,EAAM,KAC1BkxpB,EAAuBC,EAgCvB//R,EAkHKggS,EAAT,SAAoC7lvB,EAASC,GAC3C,IAAIX,EAAOjmC,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAKspxB,EAC3EnhsB,EAAIsksB,EAAUxjxB,EAAI09B,EAClBwnB,EAAIs+tB,EAAU72wB,EAAIgxB,EAClB43B,EAAI2pB,EAAIuksB,EACR/uuB,EAAIwQ,EAAIshU,EACRk9Z,EAAW/uwB,KAAKC,IAAIsqE,EAAGliD,EAAKt1B,MAC5Bi8wB,EAAWhvwB,KAAKC,IAAIswC,EAAGloB,EAAKl1B,KAC5B87wB,EAAWjvwB,KAAKG,IAAIygD,EAAGv4B,EAAKjwB,OAC5B82wB,EAAWlvwB,KAAKG,IAAI4/B,EAAG1X,EAAKhwB,QAChC,OAAO2H,KAAKC,IAAI,GAAIgvwB,EAAWF,IAAaG,EAAWF,KA6BhDG,EAAT,WACEC,GAAaP,EAAU72wB,EAAIq3wB,GAC3BC,GAAkBF,GAAav9Z,EAC/B09Z,GAAaV,EAAUxjxB,EAAImkxB,GAC3BC,GAAiBF,GAAaT,GA5L5BY,EAAe5B,EACft8sB,EAAMk+sB,EAAa10pB,cAEnB20pB,EADM1E,GAAOyE,GACe9ypB,iBAAiB8ypB,GAC/C/jxB,EAAQgkxB,EAAsBhkxB,MAC9BC,EAAS+jxB,EAAsB/jxB,OAC/B0T,EAAgBqwwB,EAAsBnvwB,SACpCovwB,EAAaF,EAAap3wB,MAAMvF,KAChC88wB,EAAYH,EAAap3wB,MAAMnF,IAC/B28wB,EAAcJ,EAAap3wB,MAAMF,MACjC23wB,EAAeL,EAAap3wB,MAAMD,OAGlC23wB,EAAgB76F,EAAcA,EAAc,GAAI41F,EAAkBtsD,IAAasvD,GAG/ExzU,EAAqB/oY,EAAI/zC,cAAc,OAgB3C,GAfyD,QAAxDixvB,EAAwBgB,EAAaptvB,qBAAqD,IAA1BosvB,GAA4CA,EAAsB78sB,YAAY0oY,GAC/IA,EAAmBjic,MAAMvF,KAAO,GAAGkjB,OAAOy5vB,EAAatroB,WAAY,MACnEm2T,EAAmBjic,MAAMnF,IAAM,GAAG8iB,OAAOy5vB,EAAa/tuB,UAAW,MACjE44Z,EAAmBjic,MAAMkI,SAAWlB,EACpCi7b,EAAmBjic,MAAM1M,OAAS,GAAGqqB,OAAOy5vB,EAAat4wB,aAAc,MACvEmjc,EAAmBjic,MAAM3M,MAAQ,GAAGsqB,OAAOy5vB,EAAav4wB,YAAa,MAGrEu4wB,EAAap3wB,MAAMvF,KAAO,IAC1B28wB,EAAap3wB,MAAMnF,IAAM,IACzBu8wB,EAAap3wB,MAAMF,MAAQ,OAC3Bs3wB,EAAap3wB,MAAMD,OAAS,OAIxBzY,MAAMi2E,QAAQ50E,GAChB2tf,EAAa,CACXvjf,EAAGpK,EAAO,GACV+W,EAAG/W,EAAO,GACV0K,MAAO,EACPC,OAAQ,OAEL,CACL,IAAI0J,EAAOrU,EAAOqV,wBAClBs4e,EAAa,CACXvjf,EAAGiK,EAAKjK,EACR2M,EAAG1C,EAAK0C,EACRrM,MAAO2J,EAAK3J,MACZC,OAAQ0J,EAAK1J,QAGjB,IAAIijxB,EAAYa,EAAap5wB,wBACzB25wB,EAAuBz+sB,EAAI1uC,gBAC7B+2B,EAAco2tB,EAAqBp2tB,YACnCnY,EAAeuuuB,EAAqBvuuB,aACpCukJ,EAAcgqlB,EAAqBhqlB,YACnCxkJ,EAAewuuB,EAAqBxuuB,aACpCngB,EAAY2uvB,EAAqB3uvB,UACjCD,EAAa4uvB,EAAqB5uvB,WAChCwwV,EAAcg9Z,EAAUjjxB,OACxBkjxB,EAAaD,EAAUljxB,MACvBukxB,EAAethS,EAAWhjf,OAC1Bk7B,EAAc8nd,EAAWjjf,MAGzBwkxB,EAAgB,CAClBp9wB,KAAM,EACNI,IAAK,EACLiF,MAAOyhD,EACPxhD,OAAQqpC,GAEN0uuB,EAAe,CACjBr9wB,MAAOsuB,EACPluB,KAAMmuB,EACNlpB,MAAO6tL,EAAc5kK,EACrBhpB,OAAQopC,EAAengB,GAErB+uvB,EAAaL,EAAcK,WAC3BC,EAAU,UACVC,EAAgB,eACD,WAAfF,GAA2BA,IAAeE,IAC5CF,EAAaC,GAEf,IAAIE,EAAiBH,IAAeE,EAChCE,EAAmBjF,GAAe4E,EAAcjF,GAChDuF,EAAoBlF,GAAe2E,EAAehF,GAClDO,EAAc2E,IAAeC,EAAUI,EAAoBD,EAI3DE,EAAyBH,EAAiBE,EAAoBhF,EAGlEgE,EAAap3wB,MAAMvF,KAAO,OAC1B28wB,EAAap3wB,MAAMnF,IAAM,OACzBu8wB,EAAap3wB,MAAMF,MAAQ,IAC3Bs3wB,EAAap3wB,MAAMD,OAAS,IAC5B,IAAIu4wB,EAAkBlB,EAAap5wB,wBAGnCo5wB,EAAap3wB,MAAMvF,KAAO68wB,EAC1BF,EAAap3wB,MAAMnF,IAAM08wB,EACzBH,EAAap3wB,MAAMF,MAAQ03wB,EAC3BJ,EAAap3wB,MAAMD,OAAS03wB,EAC8B,QAAzDpB,EAAyBe,EAAaptvB,qBAAsD,IAA3BqsvB,GAA6CA,EAAuBnnuB,YAAY+yZ,GAGlJ,IAAIs2U,EAAUvF,GAAMtrwB,KAAK6H,MAAMinwB,EAAa9+uB,WAAWrkC,GAAS,KAAQ,KACpEmlxB,GAAUxF,GAAMtrwB,KAAK6H,MAAMgqW,EAAc7hV,WAAWpkC,GAAU,KAAQ,KAG1E,GAAgB,IAAZilxB,GAA6B,IAAZC,IAAiBzzE,GAAMp8sB,KAAYwhM,GAAUxhM,GAChE,OAIF,IAAI2E,GAASoqxB,EAAcpqxB,OACzBovS,GAAeg7e,EAAch7e,aAC3B+7e,GAAmBzD,GAAgBuB,EAAWjpxB,IAChDorxB,IAAoBtmL,EAAAA,EAAAA,GAAeqmL,GAAkB,GACrDE,GAAeD,GAAkB,GACjCE,GAAeF,GAAkB,GAC/BG,GAAoB7D,GAAgB1+R,EAAY55M,IAClDo8e,IAAoB1mL,EAAAA,EAAAA,GAAeymL,GAAmB,GACtDE,GAAgBD,GAAkB,GAClCE,GAAgBF,GAAkB,GACpCxiS,EAAWvjf,GAAKgmxB,GAChBziS,EAAW52e,GAAKs5wB,GAGhB,IAqDIlC,GACAE,GACAC,GACAE,GAxDAxsiB,GAAQ+siB,EAAcj2U,QAAU,GAClC/mK,IAAQ03T,EAAAA,EAAAA,GAAeznX,GAAO,GAC9BsuiB,GAAav+e,GAAM,GAEjBw+e,GAAejE,GADHv6e,GAAM,IAElBy+e,GAAclE,GAAYgE,IAC1BG,GAAmBlE,GAAc5+R,EAAY4iS,IAC7CG,GAAkBnE,GAAcqB,EAAW4C,IAG3CG,GAAgBz8F,EAAc,GAAI66F,GAGlCR,GAAckC,GAAiBrmxB,EAAIsmxB,GAAgBtmxB,EAAI4lxB,GACvD5B,GAAcqC,GAAiB15wB,EAAI25wB,GAAgB35wB,EAAIk5wB,GAgBvDW,GAAgCjD,EAA2BY,GAAaH,IAGxEyC,GAAkClD,EAA2BY,GAAaH,GAAaqB,GAGvFqB,GAAqBvE,GAAc5+R,EAAY,CAAC,IAAK,MACrDojS,GAAoBxE,GAAcqB,EAAW,CAAC,IAAK,MACnDoD,GAAqBzE,GAAc5+R,EAAY,CAAC,IAAK,MACrDsjS,GAAoB1E,GAAcqB,EAAW,CAAC,IAAK,MACnDrypB,GAAWwzpB,EAAcxzpB,UAAY,GACrC21pB,GAAU31pB,GAAS21pB,QACrBC,GAAU51pB,GAAS41pB,QACnBC,GAAS71pB,GAAS61pB,OAClBC,GAAS91pB,GAAS81pB,OAChBC,GAAgB,SAAuBn0wB,GACzC,MAAmB,mBAARA,EACFA,EAEFA,GAAO,GAchB+wwB,IAGA,IAAIqD,GAAcD,GAAcH,IAC5BK,GAAShB,GAAY,KAAOD,GAAa,GAG7C,GAAIgB,IAAkC,MAAnBf,GAAY,KAAenC,GAAkBqB,EAAuBt4wB,QAAUm2wB,EAAY71iB,QAAQ+5iB,IAAK,CACxH,IAAIC,GAAiBtD,GACjBoD,GACFE,IAAkB9ga,EAAcq+Z,EAEhCyC,GAAiBZ,GAAmB/5wB,EAAIk6wB,GAAkBl6wB,EAAIk5wB,GAEhE,IAAI0B,GAAiBhE,EAA2BY,GAAamD,IACzDE,GAA0BjE,EAA2BY,GAAamD,GAAgBjC,GAGtFkC,GAAiBf,IAAiCe,KAAmBf,MAAmCrB,GAExGqC,IAA2Bf,KACzBtD,EAAY71iB,QAAQ+5iB,IAAK,EACzBrD,GAAcsD,GACdzB,IAAgBA,GAChBU,GAAc73U,OAAS,CAAC4zU,GAAc8D,GAAa,GAAI9D,GAAc6D,GAAc,KAEnFhD,EAAY71iB,QAAQ+5iB,IAAK,EAK7B,GAAIF,IAAkC,MAAnBf,GAAY,KAAerC,GAAauB,EAAuBx9wB,KAAOq7wB,EAAY71iB,QAAQ23U,IAAK,CAChH,IAAIwiO,GAAkBzD,GAClBoD,GACFK,IAAmBjha,EAAcq+Z,EAEjC4C,GAAkBb,GAAmBj6wB,EAAIg6wB,GAAkBh6wB,EAAIk5wB,GAEjE,IAAI6B,GAAkBnE,EAA2BY,GAAasD,IAC1DE,GAA2BpE,EAA2BY,GAAasD,GAAiBpC,GAGxFqC,GAAkBlB,IAAiCkB,KAAoBlB,MAAmCrB,GAE1GwC,IAA4BlB,KAC1BtD,EAAY71iB,QAAQ23U,IAAK,EACzB++N,GAAcyD,GACd5B,IAAgBA,GAChBU,GAAc73U,OAAS,CAAC4zU,GAAc8D,GAAa,GAAI9D,GAAc6D,GAAc,KAEnFhD,EAAY71iB,QAAQ23U,IAAK,EAK7B,IAAI2iO,GAAcV,GAAcJ,IAG5Be,GAASzB,GAAY,KAAOD,GAAa,GAG7C,GAAIyB,IAAkC,MAAnBxB,GAAY,KAAehC,GAAiBkB,EAAuBv4wB,OAASo2wB,EAAY71iB,QAAQw6iB,IAAK,CACtH,IAAIC,GAAiB5D,GACjB0D,GACFE,IAAkBtE,EAAahovB,EAE/BssvB,GAAiBrB,GAAmB1mxB,EAAI6mxB,GAAkB7mxB,EAAI4lxB,GAEhE,IAAIoC,GAAmBzE,EAA2BwE,GAAgB/D,IAC9DiE,GAA4B1E,EAA2BwE,GAAgB/D,GAAaqB,GAGxF2C,GAAmBxB,IAAiCwB,KAAqBxB,MAAmCrB,GAE5G8C,IAA6BxB,KAC3BtD,EAAY71iB,QAAQw6iB,IAAK,EACzB3D,GAAc4D,GACdnC,IAAgBA,GAChBW,GAAc73U,OAAS,CAAC4zU,GAAc8D,GAAa,GAAI9D,GAAc6D,GAAc,KAEnFhD,EAAY71iB,QAAQw6iB,IAAK,EAK7B,GAAIF,IAAkC,MAAnBxB,GAAY,KAAelC,GAAaoB,EAAuB59wB,MAAQy7wB,EAAY71iB,QAAQ79B,IAAK,CACjH,IAAIy4kB,GAAkB/D,GAClB0D,GACFK,IAAmBzE,EAAahovB,EAEhCysvB,GAAkBtB,GAAmB5mxB,EAAI2mxB,GAAkB3mxB,EAAI4lxB,GAEjE,IAAIuC,GAAmB5E,EAA2B2E,GAAiBlE,IAC/DoE,GAA4B7E,EAA2B2E,GAAiBlE,GAAaqB,GAGzF8C,GAAmB3B,IAAiC2B,KAAqB3B,MAAmCrB,GAE5GiD,IAA6B3B,KAC3BtD,EAAY71iB,QAAQ79B,IAAK,EACzB00kB,GAAc+D,GACdtC,IAAgBA,GAChBW,GAAc73U,OAAS,CAAC4zU,GAAc8D,GAAa,GAAI9D,GAAc6D,GAAc,KAEnFhD,EAAY71iB,QAAQ79B,IAAK,EAK7Bq0kB,IACA,IAAIuE,IAAuB,IAAXrB,GAAkB,EAAIA,GACb,kBAAdqB,KAELnE,GAAamB,EAAkB39wB,OACjCy8wB,IAAeD,GAAamB,EAAkB39wB,KAAOk+wB,GACjDriS,EAAWvjf,EAAIy7B,EAAc4pvB,EAAkB39wB,KAAO2gxB,KACxDlE,IAAe5gS,EAAWvjf,EAAIqlxB,EAAkB39wB,KAAO+zB,EAAc4svB,KAKrEjE,GAAiBiB,EAAkBt4wB,QACrCo3wB,IAAeC,GAAiBiB,EAAkBt4wB,MAAQ64wB,GACtDriS,EAAWvjf,EAAIqlxB,EAAkBt4wB,MAAQs7wB,KAC3ClE,IAAe5gS,EAAWvjf,EAAIqlxB,EAAkBt4wB,MAAQs7wB,MAI9D,IAAIC,IAAuB,IAAXrB,GAAkB,EAAIA,GACb,kBAAdqB,KAELvE,GAAasB,EAAkBv9wB,MACjCk8wB,IAAeD,GAAasB,EAAkBv9wB,IAAM+9wB,GAIhDtiS,EAAW52e,EAAIk4wB,EAAeQ,EAAkBv9wB,IAAMwgxB,KACxDtE,IAAezgS,EAAW52e,EAAI04wB,EAAkBv9wB,IAAM+8wB,EAAeyD,KAKrErE,GAAkBoB,EAAkBr4wB,SACtCg3wB,IAAeC,GAAkBoB,EAAkBr4wB,OAAS64wB,GACxDtiS,EAAW52e,EAAI04wB,EAAkBr4wB,OAASs7wB,KAC5CtE,IAAezgS,EAAW52e,EAAI04wB,EAAkBr4wB,OAASs7wB,MAO/D,IAAIC,GAAY/E,EAAUxjxB,EAAImkxB,GAC1BqE,GAAaD,GAAY9E,EACzB5oZ,GAAW2oZ,EAAU72wB,EAAIq3wB,GACzByE,GAAc5tZ,GAAWrU,EACzBkia,GAAanlS,EAAWvjf,EACxB2oxB,GAAcD,GAAajtvB,EAC3BmtvB,GAAYrlS,EAAW52e,EACvBk8wB,GAAeD,GAAY/D,EAI3BiE,IAHUn0wB,KAAKC,IAAI2zwB,GAAWG,IACnB/zwB,KAAKG,IAAI0zwB,GAAYG,KACC,EACVJ,GAIvBQ,IAHSp0wB,KAAKC,IAAIimX,GAAU+tZ,IAChBj0wB,KAAKG,IAAI2zwB,GAAaI,KACD,EACVhuZ,GACV,OAAjB8nZ,QAA0C,IAAjBA,GAAmCA,EAAaF,EAAU8D,IAGnF,IAAIyC,GAAgBzD,EAAgBx4wB,MAAQy2wB,EAAUxjxB,GAAKmkxB,GAAcX,EAAUljxB,OAC/E2oxB,GAAiB1D,EAAgBv4wB,OAASw2wB,EAAU72wB,GAAKq3wB,GAAcR,EAAUjjxB,QACrF0ixB,EAAc,CACZpxgB,OAAO,EACPn0O,QAASymvB,GAAcqB,EACvB7nvB,QAASqmvB,GAAcyB,GACvB7C,QAASoG,GAAgBxD,EACzB3C,QAASoG,GAAiBxD,GAC1B3C,OAAQgG,GAAatD,EACrBzC,OAAQgG,GAAatD,GACrB1xR,OAAQyxR,EACRhwvB,OAAQiwvB,GACR58uB,MAAO09uB,SAiBT2C,EAAa,WACfjG,GAAc,SAAUkG,GACtB,OAAOr/F,EAAcA,EAAc,GAAIq/F,GAAM,GAAI,CAC/Ct3gB,OAAO,QAUb,OANAi/T,GAAgBo4M,EAAY,CAAC91D,IAC7BtiJ,IAAgB,WACT3+c,GACH+2pB,MAED,CAAC/2pB,IACG,CAAC6wpB,EAAWnxgB,MAAOmxgB,EAAWtlvB,QAASslvB,EAAWrlvB,QAASqlvB,EAAWJ,QAASI,EAAWH,QAASG,EAAWF,OAAQE,EAAWD,OAAQC,EAAWjvR,OAAQivR,EAAWxtvB,OAAQwtvB,EAAWn6uB,MA1B9K,WACjBq6uB,EAAc51iB,SAAW,EACzB,IAAIr0O,EAAKiqxB,EAAc51iB,QAGvBngM,QAAQ/tC,UAAUouC,MAAK,WACjB01uB,EAAc51iB,UAAYr0O,GAC5BmqxB,SC1eO,SAASgG,GAASj3pB,EAAMv8H,EAAQu2I,EAAOi3oB,EAASlqlB,GAC7D43Y,IAAgB,WACd,GAAI3+c,GAAQv8H,GAAUu2I,EAAO,KAOlBk9oB,EAAT,WACEjG,IACAlqlB,KAPEmrlB,EAAel4oB,EACfm9oB,EAAmBzJ,GAFHjqxB,GAGhB2zxB,EAAkB1J,GAAgBwE,GAClC3lpB,EAAMkhpB,GAAOyE,GACbmF,EAAa,IAAI71qB,IAAI,CAAC+qB,GAAK9zG,QAAOi1kB,EAAAA,EAAAA,GAAmBypL,IAAmBzpL,EAAAA,EAAAA,GAAmB0pL,KAgB/F,OAXAC,EAAWv6xB,SAAQ,SAAUo3I,GAC3BA,EAAS32I,iBAAiB,SAAU25xB,EAAc,CAChD5tpB,SAAS,OAGbiD,EAAIhvI,iBAAiB,SAAU25xB,EAAc,CAC3C5tpB,SAAS,IAIX2npB,IACO,WACLoG,EAAWv6xB,SAAQ,SAAUo3I,GAC3BA,EAASl3I,oBAAoB,SAAUk6xB,GACvC3qpB,EAAIvvI,oBAAoB,SAAUk6xB,UAIvC,CAACl3pB,EAAMv8H,EAAQu2I,IC5BL,SAASs9oB,GAAYt3pB,EAAMu3pB,EAAaC,EAAWlH,EAAUp4T,EAAMu/T,EAAcC,EAAgBC,GAC9G,IAAIC,EAAUp4L,GAAAA,OAAax/d,GAGvB63pB,EAAUr4L,GAAAA,QAAa,GACvBo4L,EAAQz8iB,UAAYn7G,IACtB63pB,EAAQ18iB,SAAU,EAClBy8iB,EAAQz8iB,QAAUn7G,GAEpBw/d,GAAAA,WAAgB,WACd,IAAI14lB,EAAK+7sB,IAAI,WACXg1E,EAAQ18iB,SAAU,KAEpB,OAAO,WACL0ne,GAAAA,OAAW/7sB,MAEZ,CAACk5H,IAGJw/d,GAAAA,WAAgB,WACd,GAAI+3L,GAAejH,KAAcp4T,GAAQu/T,GAAe,CACtD,IAAIK,EAAiB,WACnB,IAAIC,GAAc,EAclB,MAAO,CAViB,SAA2Bl0iB,GACjD,IAAIpgP,EAASogP,EAAKpgP,OAClBs0xB,EAAcL,EAAej0xB,IAEX,SAAuBuhP,GACzC,IAAIvhP,EAASuhP,EAAMvhP,OACdo0xB,EAAQ18iB,UAAWy8iB,EAAQz8iB,SAAY48iB,GAAgBL,EAAej0xB,IACzEk0xB,GAAY,MAOdK,EAAkBF,IACpBG,GAAmB/qL,EAAAA,EAAAA,GAAe8qL,EAAiB,GACnDE,EAAiBD,EAAiB,GAClCE,EAAaF,EAAiB,GAC5BG,EAAmBN,IACrBO,GAAmBnrL,EAAAA,EAAAA,GAAekrL,EAAkB,GACpDE,EAAoBD,EAAiB,GACrCE,EAAgBF,EAAiB,GAC/B9rpB,EAAMkhpB,GAAO6C,GACjB/jpB,EAAIhvI,iBAAiB,YAAa26xB,GAAgB,GAClD3rpB,EAAIhvI,iBAAiB,QAAS46xB,GAAY,GAC1C5rpB,EAAIhvI,iBAAiB,cAAe46xB,GAAY,GAGhD,IAAIK,EAAmB3gE,GAAc2/D,GAcrC,OAbIgB,IACFA,EAAiBj7xB,iBAAiB,YAAa+6xB,GAAmB,GAClEE,EAAiBj7xB,iBAAiB,QAASg7xB,GAAe,GAC1DC,EAAiBj7xB,iBAAiB,cAAeg7xB,GAAe,IAU3D,WACLhspB,EAAIvvI,oBAAoB,YAAak7xB,GAAgB,GACrD3rpB,EAAIvvI,oBAAoB,QAASm7xB,GAAY,GAC7C5rpB,EAAIvvI,oBAAoB,cAAem7xB,GAAY,GAC/CK,IACFA,EAAiBx7xB,oBAAoB,YAAas7xB,GAAmB,GACrEE,EAAiBx7xB,oBAAoB,QAASu7xB,GAAe,GAC7DC,EAAiBx7xB,oBAAoB,cAAeu7xB,GAAe,QAIxE,CAAChB,EAAaC,EAAWlH,EAAUp4T,EAAMu/T,ICnF/B,SAASgB,GAAMp8qB,GAC5B,IAAI05mB,EAAY15mB,EAAM05mB,UACpBr/qB,EAAQ2lE,EAAM3lE,MACdooK,EAAQziG,EAAMyiG,MACd45kB,EAAWr8qB,EAAMq8qB,SACf70iB,EAAO/kC,GAAS,GAClB5zM,EAAY24O,EAAK34O,UACjByS,EAAUkmO,EAAKlmO,QACbg7wB,EAAcD,EAAS7qxB,EACzBA,OAAoB,IAAhB8qxB,EAAyB,EAAIA,EACjCC,EAAcF,EAASl+wB,EACvBA,OAAoB,IAAhBo+wB,EAAyB,EAAIA,EAC/BC,EAAWr5L,GAAAA,SAGf,IAAK9ojB,IAAUA,EAAM6la,OACnB,OAAO,KAET,IAAIu8U,EAAa,CACf91wB,SAAU,YAIZ,IAAwB,IAApB0zB,EAAMqivB,UAAqB,CAC7B,IAAI9E,EAAcv9uB,EAAM6la,OAAO,GAC3By3U,EAAet9uB,EAAM6la,OAAO,GAC5By8U,EAAU/E,EAAY,GACtBgF,EAAUhF,EAAY,GACtBiF,EAAWlF,EAAa,GACxBmF,EAAWnF,EAAa,GAGxBgF,IAAYE,GAAa,CAAC,IAAK,KAAKvgqB,SAASqgqB,GAE1B,MAAZA,EACTF,EAAWnjxB,IAAM,EAEjBmjxB,EAAWj+wB,OAAS,EAJpBi+wB,EAAWnjxB,IAAM6E,EAQfy+wB,IAAYE,GAAa,CAAC,IAAK,KAAKxgqB,SAASsgqB,GAE1B,MAAZA,EACTH,EAAWvjxB,KAAO,EAElBujxB,EAAWl+wB,MAAQ,EAJnBk+wB,EAAWvjxB,KAAO1H,EAOtB,OAAoB2xlB,GAAAA,cAAoB,MAAO,CAC7C1kiB,IAAK+9tB,EACL3txB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,UAAW7qtB,GACtD4P,MAAOg+wB,GACNn7wB,GCnDU,SAASy7wB,GAAK/8qB,GAC3B,IAAI05mB,EAAY15mB,EAAM05mB,UACpB/1lB,EAAO3jB,EAAM2jB,KACbhgF,EAASq8D,EAAMr8D,OACfk4a,EAAO77W,EAAM67W,KACbw6O,EAASr2lB,EAAMq2lB,OACjB,OAAKx6O,EAGesnI,GAAAA,cAAoBwoH,IAAWlzf,EAAAA,GAAAA,GAAS,GAAI49e,EAAQ,CACtEgS,cAAc,EACdh/sB,QAASs6H,EACTmolB,eAAe,KACb,SAAUtke,GACZ,IAAI34O,EAAY24O,EAAK34O,UACrB,OAAoBs0lB,GAAAA,cAAoB,MAAO,CAC7C1klB,MAAO,CACLklC,OAAQA,GAEV90C,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,SAAU7qtB,QAZhD,KCVX,IAAImuxB,GAA4B75L,GAAAA,MAAW,SAAU37W,GAEnD,OADeA,EAAKj8O,YAEnB,SAAU2P,EAAG4jC,GACd,OAAOA,EAAKqB,SAKd,UCEI0qV,GAAqBs4N,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACzD,IAAIk/E,EAAQ39B,EAAM29B,MAChB9uI,EAAYmxG,EAAMnxG,UAClB6qtB,EAAY15mB,EAAM05mB,UAClBj7sB,EAAQuhG,EAAMvhG,MACdrX,EAAS44G,EAAM54G,OACfontB,EAAoBxumB,EAAMspmB,iBAC1B3llB,EAAO3jB,EAAM2jB,KACbs5pB,EAAUj9qB,EAAMi9qB,QAChBz1tB,EAAUw4C,EAAMx4C,QAChBq0Z,EAAO77W,EAAM67W,KACbp5Q,EAAQziG,EAAMyiG,MACd45kB,EAAWr8qB,EAAMq8qB,SACjBhivB,EAAQ2lE,EAAM3lE,MACdg8pB,EAASr2lB,EAAMq2lB,OACf6mF,EAAal9qB,EAAMk9qB,WACnBnxE,EAAc/rmB,EAAM+rmB,YACpB/jsB,EAAoBg4F,EAAMh4F,kBAC1BumwB,EAAcvuqB,EAAMuuqB,YACpBr9L,EAASlxe,EAAMm9qB,OACfx5uB,EAASq8D,EAAMr8D,OACfggrB,EAAe3jnB,EAAM2jnB,aACrBC,EAAe5jnB,EAAM4jnB,aACrBw5D,EAAiBp9qB,EAAMo9qB,eACvB/5gB,EAAQrjK,EAAMqjK,MACdn0O,EAAU8wE,EAAM9wE,QAChBC,EAAU6wE,EAAM7wE,QAChBilvB,EAAUp0qB,EAAMo0qB,QAChBC,EAAUr0qB,EAAMq0qB,QAChBO,EAAU50qB,EAAM40qB,QAChBzpE,EAAYnrmB,EAAMmrmB,UAClB3zY,EAAUx3N,EAAMw3N,QAChBvqS,EAAc+yE,EAAM/yE,YACpBopvB,EAAer2qB,EAAMq2qB,aACnB37gB,EAA6B,oBAAV/8H,EAAuBA,IAAUA,EAGpD0/oB,EAAgB15pB,GAAQs5pB,EAGxBK,GAAqD,OAAtBt1wB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBlnB,QAAU,EACjI4jtB,EAAkBvhH,GAAAA,UAAgBn7kB,IAAsBs1wB,GAC1D34E,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD1iqB,EAAO2iqB,EAAiB,GACxB44E,EAAU54E,EAAiB,GAU7B,GAPAriI,IAAgB,YACTtgiB,GAAQs7uB,GAA+Bl2xB,GAC1Cm2xB,GAAQ,KAET,CAACv7uB,EAAMs7uB,EAA6Bl2xB,KAGlC46C,EACH,OAAO,KAIT,IAAIw7uB,EAAO,OACPC,EAAc,CAChBvkxB,KAAM,UACNI,IAAK,UACLiF,MAAOi/wB,EACPh/wB,OAAQg/wB,GAIV,GAAIn6gB,IAAU1/I,EAAM,CAClB,IAAIu8U,EAAS7la,EAAM6la,OACjBw9U,EAAgBrjvB,EAAMqjvB,cACpBC,EAAiC,OAAlBD,QAA4C,IAAlBA,OAA2B,EAASA,EAAcC,aAC3FC,EAAaD,GAAiC,MAAjBz9U,EAAO,GAAG,GACvC29U,EAAcF,GAAiC,MAAjBz9U,EAAO,GAAG,GACxC09U,GACFH,EAAYl/wB,MAAQ61wB,EACpBqJ,EAAYvkxB,KAAOskxB,IAEnBC,EAAYvkxB,KAAOg2B,EACnBuuvB,EAAYl/wB,MAAQi/wB,GAElBK,GACFJ,EAAYj/wB,OAAS61wB,EACrBoJ,EAAYnkxB,IAAMkkxB,IAElBC,EAAYnkxB,IAAM61B,EAClBsuvB,EAAYj/wB,OAASg/wB,GAKzB,IAAIM,EAAY,GAgBhB,OAfItmd,IACEA,EAAQl7M,SAAS,WAAa+5pB,EAChCyH,EAAU/rxB,OAASskxB,EACV7+c,EAAQl7M,SAAS,cAAgB+5pB,IAC1CyH,EAAU1+wB,UAAYi3wB,GAEpB7+c,EAAQl7M,SAAS,UAAYrvF,EAC/B6wvB,EAAUhsxB,MAAQm7B,EACTuqS,EAAQl7M,SAAS,aAAervF,IACzC6wvB,EAAU7+wB,SAAWguB,IAGpB02F,IACHm6pB,EAAUz7vB,cAAgB,QAER8gkB,GAAAA,cAAoBjS,EAAQ,CAC9Cvtd,KAAMoolB,GAAesxE,EACrB10xB,aAAcqf,GAAqB,WACjC,OAAOA,EAAkB5gB,IAE3BmnxB,YAAaA,GACCprL,GAAAA,cAAoB45L,GAAM,CACxCrjE,UAAWA,EACX/1lB,KAAMA,EACNhgF,OAAQA,EACRk4a,KAAMA,EACNw6O,OAAQ6mF,IACO/5L,GAAAA,cAAoBh2Z,GAAgB,CACnDttG,SAAU+0rB,EACVhpxB,UAAW+3H,IACV,SAAUo6pB,GACX,OAAoB56L,GAAAA,cAAoBwoH,IAAWlzf,EAAAA,GAAAA,GAAS,CAC1D4vf,cAAc,EACdF,aAAa,EACbI,aAAa,EACbuD,eAAe,EACfC,YAAaA,EACbE,gBAAiB,GAAG7vrB,OAAOs9rB,EAAW,YACrCrjB,EAAQ,CACTqS,gBAAiByC,EACjBxC,eAAgBwC,EAChB9htB,QAASs6H,EACT2llB,iBAAkB,SAA0B00E,GAC1C,IAAIC,EACO,OAAX5nF,QAA8B,IAAXA,GAAmF,QAArD4nF,EAAwB5nF,EAAOiT,wBAAwD,IAA1B20E,GAA4CA,EAAsBh9xB,KAAKo1sB,EAAQ2nF,GAC7LxvE,EAAkBwvE,OAElB,SAAUx2iB,EAAM02iB,GAClB,IAAIh5D,EAAkB19e,EAAK34O,UACzBs2tB,EAAc39e,EAAK/oO,MACjB0/wB,EAAM3wkB,IAAAA,CAAWksgB,EAAWwL,EAAiBr2tB,GACjD,OAAoBs0lB,GAAAA,cAAoB,MAAO,CAC7C1kiB,IAAKklpB,GAAWo6E,EAAmBt/tB,EAAKy/tB,GACxCrvxB,UAAWsvxB,EACX1/wB,MAAO68qB,EAAcA,EAAcA,EAAcA,EAAc,CAC7D,YAAa,GAAGl/pB,OAAOigwB,EAAS7qxB,GAAK,EAAG,MACxC,YAAa,GAAG4qB,OAAOigwB,EAASl+wB,GAAK,EAAG,OACvCs/wB,GAAcK,GAAY34D,GAAc,GAAI,CAC7C1md,UAAW,aACX96N,OAAQA,GACPllC,GACHkltB,aAAcA,EACdC,aAAcA,EACdw5D,eAAgBA,EAChB51tB,QAASA,GACRi7I,GAAsB0gZ,GAAAA,cAAoBi5L,GAAO,CAClD1iE,UAAWA,EACXj3gB,MAAOA,EACP45kB,SAAUA,EACVhivB,MAAOA,IACQ8ojB,GAAAA,cAAoB65L,GAAc,CACjD78uB,OAAQwjF,GACP+2I,cAOT,UCrLI0jhB,GAA8Bj7L,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GAClE,IAAIlzD,EAAWy0G,EAAMz0G,SACnB8yxB,EAAoBr+qB,EAAMq+qB,kBACxBC,EAAYx6E,GAAWv4sB,GAGvBwxE,EAASomhB,GAAAA,aAAkB,SAAU1shB,GACvCitoB,GAAQjlpB,EAAK4/tB,EAAoBA,EAAkB5ntB,GAAQA,KAC1D,CAAC4ntB,IACA3S,EAAY7nE,GAAc9moB,EAAQxxE,EAASkzD,KAC/C,OAAO6/tB,EAAyBn7L,GAAAA,aAAmB53lB,EAAU,CAC3DkzD,IAAKittB,IACFngxB,KAKP,UChBIupR,GAAY,CAAC,YAAa,WAAY,SAAU,aAAc,aAAc,eAAgB,sBAAuB,uBAAwB,0BAA2B,kBAAmB,kBAAmB,aAAc,YAAa,OAAQ,eAAgB,oBAAqB,cAAe,cAAe,qBAAsB,QAAS,iBAAkB,aAAc,iBAAkB,oBAAqB,aAAc,SAAU,UAAW,6BAA8B,aAAc,eAAgB,eAAgB,QAAS,cAAe,aAAc,sBAAuB,iBAAkB,qBAAsB,gBAAiB,YAAa,qBAigB9oB,OAxeO,WACL,IAAIypgB,EAAkBh2xB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK2olB,GACtFstM,EAAuBr7L,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GAC3D,IAAIqlqB,EAAmB9jnB,EAAM05mB,UAC3BA,OAAiC,IAArBoK,EAA8B,mBAAqBA,EAC/Dv4tB,EAAWy0G,EAAMz0G,SACjBkzxB,EAAgBz+qB,EAAM/+F,OACtBA,OAA2B,IAAlBw9wB,EAA2B,QAAUA,EAC9CnO,EAAatwqB,EAAMswqB,WACnBC,EAAavwqB,EAAMuwqB,WACnBngwB,EAAe4vF,EAAM5vF,aACrBsuwB,EAAsB1+qB,EAAM0+qB,oBAC5BC,EAAuB3+qB,EAAM2+qB,qBAC7BC,EAA0B5+qB,EAAM4+qB,wBAChCC,EAAkB7+qB,EAAM6+qB,gBACxBC,EAAwB9+qB,EAAM++qB,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAMA,EAC3DE,EAAah/qB,EAAMg/qB,WACnBC,EAAYj/qB,EAAMi/qB,UAClBpjU,EAAO77W,EAAM67W,KACbqjU,EAAsBl/qB,EAAMo7qB,aAC5BA,OAAuC,IAAxB8D,GAAwCA,EACvDl3wB,EAAoBg4F,EAAMh4F,kBAC1B+jsB,EAAc/rmB,EAAM+rmB,YACpBwiE,EAAcvuqB,EAAMuuqB,YACpB4Q,EAAqBn/qB,EAAMm/qB,mBAC3BxhpB,EAAQ39B,EAAM29B,MACdyhpB,EAAiBp/qB,EAAMo/qB,eACvBC,EAAar/qB,EAAMq/qB,WACnBC,EAAiBt/qB,EAAMs/qB,eACvBC,EAAwBv/qB,EAAMkxqB,kBAC9BA,OAA8C,IAA1BqO,EAAmC,GAAKA,EAC5DrL,EAAal0qB,EAAMk0qB,WACnBvwuB,EAASq8D,EAAMr8D,OACf6zR,EAAUx3N,EAAMw3N,QAChBgod,EAA6Bx/qB,EAAMw/qB,2BACnCC,EAAaz/qB,EAAMy/qB,WACnBC,EAAe1/qB,EAAM0/qB,aACrBvL,EAAen0qB,EAAMm0qB,aACrB1xkB,EAAQziG,EAAMyiG,MACdk9kB,EAAc3/qB,EAAM2/qB,YACpBzC,EAAal9qB,EAAMk9qB,WACnB0C,EAAsB5/qB,EAAM4/qB,oBAC5BC,EAAiB7/qB,EAAM6/qB,eACvBC,EAAqB9/qB,EAAM8/qB,mBAC3BC,EAAgB//qB,EAAM+/qB,cACtBlxxB,EAAYmxG,EAAMnxG,UAClBwvxB,EAAoBr+qB,EAAMq+qB,kBAC1Bnud,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1CkrgB,EAAoBzR,GAAe4Q,IAAsB,EAGzDz6E,EAAkBvhH,GAAAA,UAAe,GACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD2rE,GAAS1rE,EAAiB,GAC1Bs7E,GAAYt7E,EAAiB,GAC/BriI,IAAgB,WACd29M,GAAU3/pB,QACT,IAGH,IAAI4/pB,GAAmB/8L,GAAAA,OAAa,IAChCviT,GAAgBuiT,GAAAA,WAAiBg9L,IACjChlxB,GAAUgolB,GAAAA,SAAc,WAC1B,MAAO,CACLi9L,iBAAkB,SAA0B31xB,EAAI41xB,GAC9CH,GAAiBphjB,QAAQr0O,GAAM41xB,EACb,OAAlBz/e,SAA4C,IAAlBA,IAAoCA,GAAcw/e,iBAAiB31xB,EAAI41xB,OAGpG,CAACz/e,KAGAn2S,GAAKu4kB,KACLshJ,GAAmBnhI,GAAAA,SAAe,MACpCohI,IAAmB1zH,EAAAA,EAAAA,GAAeyzH,GAAkB,GACpD2vD,GAAW1vD,GAAiB,GAC5B+7D,GAAc/7D,GAAiB,GAC7Bg8D,GAAc76D,IAAS,SAAUjvpB,GAC/B+soB,GAAM/soB,IAASw9sB,KAAax9sB,GAC9B6ptB,GAAY7ptB,GAEI,OAAlBmqO,SAA4C,IAAlBA,IAAoCA,GAAcw/e,iBAAiB31xB,GAAIgsE,MAK/F+ptB,GAAmBr9L,GAAAA,SAAe,MACpCs9L,IAAmB5vL,EAAAA,EAAAA,GAAe2vL,GAAkB,GACpDrF,GAAYsF,GAAiB,GAC7BC,GAAeD,GAAiB,GAC9BE,GAAej7D,IAAS,SAAUjvpB,GAChC+soB,GAAM/soB,IAAS0ktB,KAAc1ktB,GAC/BiqtB,GAAajqtB,MAKbn3D,GAAQ6jlB,GAAAA,SAAAA,KAAoB53lB,GAC5Bq1xB,IAA8B,OAAVthxB,SAA4B,IAAVA,QAAmB,EAASA,GAAM0gG,QAAU,GAClF6grB,GAAa,GACbxF,GAAiB31D,IAAS,SAAU7nD,GACtC,IAAIijH,EAAgBC,EAChBC,EAAW7F,GACf,OAAqB,OAAb6F,QAAkC,IAAbA,OAAsB,EAASA,EAASzhxB,SAASs+pB,MAAyD,QAA9CijH,EAAiBtlE,GAAcwlE,UAA0C,IAAnBF,OAA4B,EAASA,EAAe71vB,QAAU4yoB,GAAOA,IAAQmjH,IAA0B,OAAb/M,SAAkC,IAAbA,QAAsB,EAASA,GAAS10wB,SAASs+pB,MAA0D,QAA/CkjH,EAAkBvlE,GAAcy4D,WAA2C,IAApB8M,OAA6B,EAASA,EAAgB91vB,QAAU4yoB,GAAOA,IAAQo2G,IAAY3sxB,OAAO8S,OAAO8lxB,GAAiBphjB,SAAS/7N,MAAK,SAAUs9wB,GACjgB,OAAwB,OAAhBA,QAAwC,IAAhBA,OAAyB,EAASA,EAAY9gxB,SAASs+pB,KAASA,IAAQwiH,QAKxGY,GAAmB/2D,GAAUxQ,EAAWimE,EAAaE,EAAgBD,GACrEsB,GAAkBh3D,GAAUxQ,EAAWwjE,EAAY6C,EAAeD,GAGlEqB,GAAmBh+L,GAAAA,SAAeu7L,IAAuB,GAC3D0C,IAAmBvwL,EAAAA,EAAAA,GAAeswL,GAAkB,GACpDE,GAAeD,GAAiB,GAChCE,GAAkBF,GAAiB,GAGjCG,GAA8B,OAAjBnxwB,QAA0C,IAAjBA,EAA0BA,EAAeixwB,GAG/EG,GAAgB97D,IAAS,SAAU+7D,QAChB7oxB,IAAjBwX,GACFkxwB,GAAgBG,MAGpBn/M,IAAgB,WACdg/M,GAAgBlxwB,IAAgB,KAC/B,CAACA,IACJ,IAAImrwB,GAAUp4L,GAAAA,OAAao+L,IAC3BhG,GAAQz8iB,QAAUyijB,GAClB,IAAIG,GAAsBh8D,IAAS,SAAU+7D,IAG3C/xM,EAAAA,GAAAA,YAAU,WACJ6xM,KAAeE,IACjBD,GAAcC,GACW,OAAzB9C,QAA0D,IAAzBA,GAA2CA,EAAqB8C,UAMnGE,GAAWx+L,GAAAA,SACXy+L,GAAa,WACfljwB,aAAaijwB,GAAS7ijB,UAEpBw8iB,GAAc,SAAqBmG,GACrC,IAAInjqB,EAAQ/1H,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAChFq5xB,KACc,IAAVtjqB,EACFojqB,GAAoBD,GAEpBE,GAAS7ijB,QAAUz7O,YAAW,WAC5Bq+xB,GAAoBD,KACX,IAARnjqB,IAGP6ke,GAAAA,WAAgB,WACd,OAAOy+L,KACN,IAGH,IAAIC,GAAmB1+L,GAAAA,UAAe,GACpC2+L,IAAoBjxL,EAAAA,EAAAA,GAAegxL,GAAkB,GACrDE,GAAWD,GAAkB,GAC7BE,GAAcF,GAAkB,GAClCx/M,IAAgB,SAAUm/G,GACnBA,IAAc8/F,IACjBS,IAAY,KAEb,CAACT,KACJ,IAAIU,GAAoB9+L,GAAAA,SAAe,MACrC++L,IAAoBrxL,EAAAA,EAAAA,GAAeoxL,GAAmB,GACtDE,GAAuBD,GAAkB,GACzCE,GAA0BF,GAAkB,GAG1CG,GAAoBl/L,GAAAA,SAAe,CAAC,EAAG,IACzCm/L,IAAoBzxL,EAAAA,EAAAA,GAAewxL,GAAmB,GACtDE,GAAWD,GAAkB,GAC7BE,GAAcF,GAAkB,GAC9BG,GAAqB,SAA4BznxB,GACnDwnxB,GAAY,CAACxnxB,EAAM+zH,QAAS/zH,EAAMg0H,WAEhC0zpB,GAAY1O,GAASuN,GAAYtN,GAAUwL,EAAa8C,GAAWpH,GAAWmE,EAAgBpO,EAAmBgD,EAAYC,GAC/HwO,IAAa9xL,EAAAA,EAAAA,GAAe6xL,GAAW,IACvCr/gB,GAAQs/gB,GAAW,GACnBzzvB,GAAUyzvB,GAAW,GACrBxzvB,GAAUwzvB,GAAW,GACrBvO,GAAUuO,GAAW,GACrBtO,GAAUsO,GAAW,GACrBrO,GAASqO,GAAW,GACpBpO,GAASoO,GAAW,GACpBp9R,GAASo9R,GAAW,GACpB37vB,GAAS27vB,GAAW,GACpBC,GAAYD,GAAW,GACvB/N,GAAU+N,GAAW,IACnBE,GAAazS,GAAUC,GAAQpvwB,EAAQqvwB,EAAYC,GACrDuS,IAAcjyL,EAAAA,EAAAA,GAAegyL,GAAY,GACzCE,GAAcD,GAAY,GAC1BE,GAAcF,GAAY,GACxBG,GAAcF,GAAY1owB,IAAI,SAC9B6gwB,GAAc8H,GAAY3owB,IAAI,UAAY2owB,GAAY3owB,IAAI,eAC1D6owB,GAAex9D,IAAS,WACrBq8D,IACHnN,QAQJgG,GAAS2G,GAAYpG,GAAWlH,GAAUiP,IAL3B,WACT3H,GAAQz8iB,SAAW2gjB,GAAcvE,IACnCI,IAAY,MAIhBh5M,IAAgB,WACd4gN,OACC,CAACX,GAAUjD,IAGdh9M,IAAgB,YACVi/M,IAAsC,OAAtBrQ,QAAoD,IAAtBA,GAAgCA,EAAkBoO,IAClG4D,OAED,CAACpnxB,KAAKC,UAAUm4wB,KACnB,IAAIiP,GAAmBhgM,GAAAA,SAAc,WACnC,IAAIigM,EAAgBnS,GAAuBC,EAAmBx3D,EAAWkpE,GAAWnD,GACpF,OAAOjykB,IAAAA,CAAW41kB,EAA8C,OAA/B5D,QAAsE,IAA/BA,OAAwC,EAASA,EAA2BoD,OACnJ,CAACA,GAAWpD,EAA4BtO,EAAmBx3D,EAAW+lE,IACzEt8L,GAAAA,oBAA0B1kiB,GAAK,WAC7B,MAAO,CACL4kuB,WAAYH,OAKhB,IAAII,GAAoBngM,GAAAA,SAAe,GACrCogM,IAAoB1yL,EAAAA,EAAAA,GAAeyyL,GAAmB,GACtDr2vB,GAAcs2vB,GAAkB,GAChCC,GAAiBD,GAAkB,GACjCE,GAAoBtgM,GAAAA,SAAe,GACrCugM,IAAoB7yL,EAAAA,EAAAA,GAAe4yL,GAAmB,GACtDpN,GAAeqN,GAAkB,GACjCC,GAAkBD,GAAkB,GAClCE,GAAiB,WACnB,GAAIpsd,GAAW2jd,GAAW,CACxB,IAAI1/wB,EAAO0/wB,GAAU1+wB,wBACrB+mxB,GAAe/nxB,EAAK3J,OACpB6xxB,GAAgBloxB,EAAK1J,UAoCzB,SAAS8xxB,GAAcp5vB,EAAWg3vB,EAAUnjqB,EAAOwlqB,GACjDjD,GAAWp2vB,GAAa,SAAUzvB,GAChC,IAAI+oxB,EACS,OAAbD,QAAkC,IAAbA,GAA+BA,EAAS9oxB,GAC7DsgxB,GAAYmG,EAAUnjqB,GAGtB,IAAK,IAAIi6G,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGxxN,EAAKwxN,EAAO,GAAKjwO,UAAUiwO,GAE6B,QAAzDurjB,EAAwBnD,GAAiBn2vB,UAAkD,IAA1Bs5vB,GAA4CA,EAAsB9iyB,KAAKulB,MAAMu9wB,EAAuB,CAACnD,GAAkB5lxB,GAAOohB,OAAOpV,KAtB3Ms7jB,IAAgB,WACV6/M,KACFvN,KACAuN,KACAC,GAAwB,SAEzB,CAACD,MAqBAc,IAAe/H,MACjB2F,GAAWr5tB,QAAU,SAAUxsD,GAC7B,IAAIgpxB,EACAzI,GAAQz8iB,SAAWo8iB,GACrBI,IAAY,IACFC,GAAQz8iB,SAAWmkjB,KAC7BR,GAAmBznxB,GACnBsgxB,IAAY,IAId,IAAK,IAAI30iB,EAAQp+O,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAM4gP,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG5/N,EAAK4/N,EAAQ,GAAKr+O,UAAUq+O,GAEyB,QAAtDo9iB,EAAwBpD,GAAiBp5tB,eAA+C,IAA1Bw8tB,GAA4CA,EAAsB/iyB,KAAKulB,MAAMw9wB,EAAuB,CAACpD,GAAkB5lxB,GAAOohB,OAAOpV,MAKxMi0wB,GAAYsG,GAAYrG,GAAaC,GAAWlH,GAAUp4T,EAAMu/T,EAAcC,GAAgBC,IAG9F,IAEI2I,GACAC,GAHAC,GAAcpB,GAAY1owB,IAAI,SAC9B+pwB,GAAcpB,GAAY3owB,IAAI,SAG9B8pwB,KAEFN,GAAc,gBAAgB,EAAMhF,GAAiB,SAAU7jxB,GAC7DynxB,GAAmBznxB,MAErB6oxB,GAAc,kBAAkB,EAAMhF,GAAiB,SAAU7jxB,GAC/DynxB,GAAmBznxB,MAErBipxB,GAAoB,YAEd1C,IAAcQ,KAChBzG,IAAY,EAAMuD,IAKlBY,IACFoB,GAAW1hpB,YAAc,SAAUnkI,GACjC,IAAIqpxB,EAEuD,QAA1DA,EAAwBzD,GAAiBzhpB,mBAAmD,IAA1BklpB,GAA4CA,EAAsBpjyB,KAAK2/xB,GAAkB5lxB,MAI9JopxB,KACFP,GAAc,gBAAgB,EAAO9E,GACrC8E,GAAc,kBAAkB,EAAO9E,GACvCmF,GAAoB,WAClB5I,IAAY,EAAOyD,KAKnBgE,GAAY1owB,IAAI,UAClBwpwB,GAAc,WAAW,EAAM7E,GAE7BgE,GAAY3owB,IAAI,UAClBwpwB,GAAc,UAAU,EAAO5E,GAI7B8D,GAAY1owB,IAAI,iBAClBwmwB,GAAWzppB,cAAgB,SAAUp8H,GACnC,IAAIspxB,EACA/I,GAAQz8iB,SAAWkkjB,GAAY3owB,IAAI,eACrCihwB,IAAY,IAEZmH,GAAmBznxB,GACnBsgxB,IAAY,IAEdtgxB,EAAMnT,iBAGN,IAAK,IAAIi1Q,EAAQv0Q,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAM+2Q,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG/1P,EAAK+1P,EAAQ,GAAKx0Q,UAAUw0Q,GAEgC,QAA7DunhB,EAAyB1D,GAAiBxppB,qBAAsD,IAA3BktpB,GAA6CA,EAAuBrjyB,KAAKulB,MAAM89wB,EAAwB,CAAC1D,GAAkB5lxB,GAAOohB,OAAOpV,MAK9MnY,IACFgyxB,GAAWhyxB,UAAY2+M,IAAAA,CAAWozkB,GAAiB/xxB,UAAWA,IAIhE,IAAI01xB,GAAsBjpG,EAAcA,EAAc,GAAIslG,IAAmBC,IAGzE2D,GAAc,GACI,CAAC,gBAAiB,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,UAC7G/jyB,SAAQ,SAAUgqC,GAC5BylS,EAAUzlS,KACZ+5vB,GAAY/5vB,GAAa,WAEvB,IADA,IAAIg6vB,EACKznhB,EAAQz0Q,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMi3Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFj2P,EAAKi2P,GAAS10Q,UAAU00Q,GAEmC,QAA5DwnhB,EAAwBF,GAAoB95vB,UAAkD,IAA1Bg6vB,GAA4CA,EAAsBxjyB,KAAKulB,MAAMi+wB,EAAuB,CAACF,IAAqBnowB,OAAOpV,IACtMkpT,EAAUzlS,GAAWjkB,MAAM0pT,EAAWlpT,QAM5C,IAAI09wB,GAA2BvhM,GAAAA,aAAmB7jlB,GAAOg8qB,EAAcA,EAAc,GAAIipG,IAAsBC,KAC3GnI,GAAW,CACb7qxB,EAAG8ixB,GACHn2wB,EAAGo2wB,IAEDoQ,GAAalilB,EAAQ64e,EAAc,IAAc,IAAV74e,EAAiBA,EAAQ,IAAM,KAG1E,OAAoB0gZ,GAAAA,cAAoBA,GAAAA,SAAgB,KAAmBA,GAAAA,cAAoBh2Z,GAAgB,CAC7GvhM,UAAW21xB,GACX9iuB,IAAKkiuB,GACL9gsB,SA1KmB,WACnB+jsB,KACAV,OAyKc//L,GAAAA,cAAoBi7L,GAAgB,CAClDC,kBAAmBA,GAClBqG,KAA4BvhM,GAAAA,cAAoBg9L,GAAAA,SAAyB,CAC1E/9xB,MAAO+Y,IACOgolB,GAAAA,cAAoBt4N,GAAO,CACzCsyZ,OAAQoB,EACR9/tB,IAAK8huB,GACL7mE,UAAWA,EACX/7kB,MAAOA,EACP9uI,UAAW2+M,IAAAA,CAAW4xkB,EAAgB+D,IACtC1kxB,MAAO4gxB,EACPj4xB,OAAQ+zxB,GACRx3D,aAAcsgE,GACdrgE,aAAcsgE,GAGd9G,eAAgB6G,GAChBtgvB,OAAQA,EAGRggF,KAAM49pB,GACNtE,QAAS8E,GAGTv6tB,QAASk4tB,EAGT7jU,KAAMA,EAGNw6O,OAAQ4qF,GACR/D,WAAYgE,GACZ53E,iBArMqB,SAA0BjgtB,GAC/C24xB,IAAY,GACZpN,KAC4B,OAA5BgK,QAAgE,IAA5BA,GAA8CA,EAAwBv1xB,IAmM1G8htB,UA/Lc,WACd,OAAO,IAAIxsqB,SAAQ,SAAU/tC,GAC3BgzxB,KACAxB,IAAwB,WACtB,OAAOxxxB,SA8LXm7sB,YAAaA,EACbwiE,YAAayR,EACbh4wB,kBAAmBA,EAGnBqyB,MAAOuovB,GACPnglB,MAAOkilB,GACPtI,SAAUA,GAGVh5gB,MAAOA,GACPn0O,QAASA,GACTC,QAASA,GACTilvB,QAASA,GACTC,QAASA,GACTO,QAASsO,GAGT1rd,QAASA,EACTvqS,YAAaA,GAAcs4d,GAC3B8wR,aAAcA,GAAervvB,UAMjC,OAAOw3vB,EAET,CAA+BttM,ICpgB3B0zM,GAA8B,CAChCpM,OAAQ,GACRD,QAAS,GAEPsM,GAA8B,CAChCvM,QAAS,EACTG,QAAQ,GAENt9e,GAAe,CAAC,EAAG,GACZqpb,GAAa,CACtBtrtB,KAAM,CACJgnc,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,EAAE,EAAG,GACbovS,aAAcA,IAEhB58R,MAAO,CACL2hc,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB7hS,IAAK,CACH4mc,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB38R,OAAQ,CACN0hc,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhByuU,QAAS,CACP1pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB2pf,QAAS,CACP5kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,EAAE,EAAG,GACbovS,aAAcA,IAEhB4uU,SAAU,CACR7pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB4pf,SAAU,CACR7kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB2uU,YAAa,CACX5pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB6pf,YAAa,CACX9kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB0uU,WAAY,CACV3pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUiiqB,GACV74xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB8pf,WAAY,CACV/kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUkiqB,GACV94xB,OAAQ,EAAE,EAAG,GACbovS,aAAcA,KC9EH,SAAS0vF,GAAM7qR,GAC5B,IAAIz0G,EAAWy0G,EAAMz0G,SACnBmutB,EAAY15mB,EAAM05mB,UAClBjvtB,EAAKu1G,EAAMv1G,GACXy6xB,EAAoBllrB,EAAMklrB,kBAC1Br2xB,EAAYmxG,EAAMnxG,UAClB4P,EAAQuhG,EAAMvhG,MAChB,OAAoB0klB,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,YAAa7qtB,GACxD4P,MAAOA,GACO0klB,GAAAA,cAAoB,MAAO,CACzCt0lB,UAAW,GAAGutB,OAAOs9rB,EAAW,UAChCjvtB,GAAIA,EACJuoI,KAAM,UACNv0H,MAAOymxB,GACc,oBAAb35xB,EAA0BA,IAAaA,ICdnD,IAAIupR,GAAY,CAAC,mBAAoB,UAAW,kBAAmB,kBAAmB,eAAgB,YAAa,WAAY,kBAAmB,qBAAsB,iBAAkB,YAAa,SAAU,YAAa,QAAS,uBAAwB,iBAAkB,sBAAuB,oBAAqB,eAAgB,UAAW,KAAM,aAM1Vl4I,GAAU,SAAiB58B,EAAOvhD,GACpC,IAAI0muB,EAAmBnlrB,EAAMmlrB,iBAC3BC,EAAiBplrB,EAAM51G,QACvBA,OAA6B,IAAnBg7xB,EAA4B,CAAC,SAAWA,EAClDC,EAAwBrlrB,EAAM6+qB,gBAC9BA,OAA4C,IAA1BwG,EAAmC,EAAIA,EACzDvG,EAAwB9+qB,EAAM++qB,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAMA,EAC3DwG,EAAetlrB,EAAMslrB,aACrBxhE,EAAmB9jnB,EAAM05mB,UACzBA,OAAiC,IAArBoK,EAA8B,aAAeA,EACzDv4tB,EAAWy0G,EAAMz0G,SACjBg6xB,EAAkBvlrB,EAAMulrB,gBACxBC,EAAqBxlrB,EAAMwlrB,mBAC3Bl/E,EAAiBtmmB,EAAMsmmB,eACvBxhf,EAAY9kH,EAAM8kH,UAClBuxe,EAASr2lB,EAAMq2lB,OACfovF,EAAmBzlrB,EAAM4knB,UACzBA,OAAiC,IAArB6gE,EAA8B,QAAUA,EACpDC,EAAe1lrB,EAAM3lE,MACrBA,OAAyB,IAAjBqrvB,EAA0B,GAAKA,EACvCC,EAAwB3lrB,EAAM4lrB,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAiB7lrB,EAAM6lrB,eACvBC,EAAsB9lrB,EAAM8lrB,oBAC5BZ,EAAoBllrB,EAAMklrB,kBAE1B5+B,GADetmpB,EAAM+lrB,aACX/lrB,EAAMsmpB,SAChB77vB,EAAKu1G,EAAMv1G,GACXu7xB,EAAmBhmrB,EAAMimrB,UACzBA,OAAiC,IAArBD,GAAqCA,EACjD91d,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1CoxgB,GAAazjN,EAAAA,GAAAA,QAAO,OACxBL,EAAAA,GAAAA,qBAAoB3jhB,GAAK,WACvB,OAAOynuB,EAAWpnjB,WAEpB,IAAIqnjB,EAAa7qG,EAAc,GAAIprX,GAC/B,YAAalwN,IACfmmrB,EAAW/1wB,aAAe4vF,EAAM32G,SAUlC,OAAoB85lB,GAAAA,cAAoBq7L,IAAS/lkB,EAAAA,GAAAA,GAAS,CACxD2mkB,eAAgB+F,EAChBzrE,UAAWA,EACX/7kB,MAXoB,WACpB,OAAoBwld,GAAAA,cAAoBt4N,GAAO,CAC7CrjY,IAAK,UACLkytB,UAAWA,EACXjvtB,GAAIA,EACJy6xB,kBAAmBA,GAClB5+B,IAMHrlvB,OAAQ7W,EACR8mxB,kBAAmB1sD,GACnB86D,eAAgB16D,EAChBnmqB,IAAKynuB,EACLhS,WAAY75uB,EACZryB,kBAAmB89wB,EACnBnH,qBAAsB4G,EACtB3G,wBAAyB4G,EACzB5F,oBAAqBt5E,EACrBu5E,eAAgB/6jB,EAChB66jB,YAAatpF,EACbqoF,oBAAqBmH,EACrBtX,YAAaqX,EACb7G,gBAAiBA,EACjBM,WAAYiG,EACZzG,gBAAiBA,EACjBp8kB,MAAOwjlB,GACNE,GAAa56xB,IC3ElB,ID6E4Bu5lB,EAAAA,GAAAA,YAAWlod,IE7CjCypkB,GAAoB,SAACsgB,EAAetwB,EAAQiQ,GAChD,YAAuB1tsB,IAAnB0tsB,EACKA,EAET,UAAUqgB,EAAV,YAA2BtwB,ICvChB+vF,GAAe,SAACt0xB,EAAOi/f,EAAaC,EAAaq1R,EAAS9yE,GACrE,IAAM+yE,EAAYx0xB,EAAQ,EAEpBipI,EAAKurpB,EACLtrpB,EAAmB,EAAdg2X,EAAkB7qf,KAAK+0H,KAAK,GACjCD,EAAKqrpB,EAAYt1R,GAAe,EAAI,EAAI7qf,KAAK+0H,KAAK,IAClD64X,EAAKuyR,EAAYv1R,GAAe,EAAI5qf,KAAK+0H,KAAK,IAC9C8rK,EAAKgqN,GAAe7qf,KAAK+0H,KAAK,GAAK,GAAK61X,GAAe,EAAI5qf,KAAK+0H,KAAK,IACrEh+H,EAAK,EAAIopxB,EAAYvyR,EACrB52f,EAAK6pS,EACLtwO,EAAK,EAAI4vtB,EAAYtrpB,EACrBurpB,EAAKtrpB,EACLwlF,EAAK,EAAI6lkB,EAVJ,EAWLp+e,EAAKntK,EACLyrpB,EAAcF,EAAYngxB,KAAK+0H,KAAK,GAAK81X,GAAe7qf,KAAK+0H,KAAK,GAAK,GACvEurpB,EAAgBz1R,GAAe7qf,KAAK+0H,KAAK,GAAK,GACpD,MAAO,CACL74G,cAAe,OACfvwB,MAAAA,EACAC,OAAQD,EACR6wH,SAAU,SACV,YAAa,CACXh8G,SAAU,WACVnI,OAAQ,EACRkoxB,iBAAkB,EAClB50xB,MAAAA,EACAC,OAAQD,EAAQ,EAChBy4gB,WAAY87Q,EACZtxR,SAAU,CACR4xR,eAAe,EACfvkyB,MAAO,CAAC,WAAD,OAAYqkyB,EAAZ,wBAAyCA,EAAzC,eAA6D,EAAIH,EAAYG,EAA7E,oBAAsGA,EAAtG,8BA5BF,EA4BE,YAAgJ1rpB,EAAhJ,cAAwJi2X,EAAxJ,YAAuKA,EAAvK,kBAA4Lh2X,EAA5L,YAAkMC,EAAlM,cAA0M84X,EAA1M,YAAgN/sN,EAAhN,cAAwN+pN,EAAxN,YAAuOA,EAAvO,kBAA4P7zf,EAA5P,YAAkQC,EAAlQ,cAA0Qu5D,EAA1Q,YAAgR6vtB,EAAhR,cAAwRv1R,EAAxR,YAAuSA,EAAvS,kBAA4TvwS,EAA5T,YAAkUynF,EAAlU,UAET5mS,QAAS,MAEX,WAAY,CACVA,QAAS,KACTqF,SAAU,WACV7U,MAAO00xB,EACPz0xB,OAAQy0xB,EACRhoxB,OAAQ,EACRooxB,YAAa,EACb9hmB,OAAQ,OACRqgd,aAAc,CACZ0hJ,cAAc,EACdzkyB,MAAO,OAAF,OAAS2ugB,EAAT,SAEPhof,UAAW,kCACXwqsB,UAAAA,EACA5vqB,OAAQ,EACR4me,WAAY,iBC/CX,SAASu8Q,GAAelsxB,GAC7B,IAEEmsxB,EAEEnsxB,EAFFmsxB,cAGIC,EAAsBD,EAAgB,GAAKA,EAAgB,EAAI,GAErE,MAAO,CACLC,oBAAAA,EACAC,4BALErsxB,EADFssxB,oBALuC,EAQ4CF,GAMvF,SAASG,GAAS5yU,EAAOxwT,GACvB,OAAKwwT,EACExwT,EADY,GAGN,SAASqjoB,GAAcvgtB,EAAOjsE,GAAS,YAElDystB,EAKExgpB,EALFwgpB,aACArxB,EAIEnvnB,EAJFmvnB,eACA6H,EAGEh3nB,EAHFg3nB,eACAG,EAEEn3nB,EAFFm3nB,kBACAyW,EACE5toB,EADF4toB,sBAGA4yE,EAUEzsxB,EAVFysxB,QADF,EAWIzsxB,EATFmsxB,cAAAA,OAFF,MAEkBlgtB,EAAMk3nB,eAFxB,EAGEmpF,EAQEtsxB,EARFssxB,oBAHF,EAWItsxB,EAPF0sxB,cAAAA,OAJF,MAIkB,EAJlB,IAWI1sxB,EANF2sxB,eAAAA,OALF,MAKmB,CACfruxB,MAAM,EACNqF,OAAO,EACPjF,KAAK,EACLkF,QAAQ,GATZ,EAYA,EAGIsoxB,GAAe,CACjBC,cAAAA,EACAG,oBAAAA,IAJAD,EADF,EACEA,4BACAD,EAFF,EAEEA,oBAKF,iBACG3/D,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,QAAP,oBAEpDunrB,EAFoD,UAE7B,CAAC//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CACtDn5B,SAAU,WACVg9B,OAAQ,EACR9jC,QAAS,SACRumxB,GAAapwF,EAAgB6H,EAAgBG,EAAmBqpF,EAAS5yE,IAAyB,CACnG,WAAY,CACVlqM,WAAY88Q,OAGfF,KAAWI,EAAejuxB,KAAlB,eACR,CAAC,mBAAD,OAAoB+ttB,EAApB,wCAAiEA,EAAjE,yCAA+GA,EAA/G,WAAqI51tB,KAAK,KAAO,CAChJ+M,OAAQ8oxB,EACRv+wB,UAAW,qCAHJ,mCAKWs+sB,EALX,UAKkC,CACzCnutB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,OAET2mB,UAAW,sDAVJ,uCAYes+sB,EAZf,UAYsC,CAC7CnutB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO4kyB,MAfF,wCAkBgB3/D,EAlBhB,UAkBuC,CAC9C9otB,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO4kyB,KArBF,KAwBNG,KAAWI,EAAe/oxB,QAAlB,eACV,CAAC,sBAAD,OAAuB6otB,EAAvB,2CAAuEA,EAAvE,4CAAwHA,EAAxH,WAA8I51tB,KAAK,KAAO,CACzJ6H,IAAKguxB,EACLv+wB,UAAW,uBAHF,sCAKYs+sB,EALZ,UAKmC,CAC5CnutB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,OAET2mB,UAAW,wCAVF,0CAYgBs+sB,EAZhB,UAYuC,CAChDnutB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO4kyB,MAfA,2CAkBiB3/D,EAlBjB,UAkBwC,CACjD9otB,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO4kyB,KArBA,KAwBRG,KAAWI,EAAeruxB,MAAlB,eACV,CAAC,oBAAD,OAAqBmutB,EAArB,wCAAkEA,EAAlE,2CAAkHA,EAAlH,WAAwI51tB,KAAK,KAAO,CACnJ8M,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAOklyB,GAETv+wB,UAAW,oCANF,oCAQUs+sB,EARV,UAQiC,CAC1C/ttB,IAAK,CACHutxB,cAAc,EACdzkyB,MAAO,OAET2mB,UAAW,qDAbF,uCAeas+sB,EAfb,UAeoC,CAC7C/ttB,IAAK2txB,KAhBI,0CAkBgB5/D,EAlBhB,UAkBuC,CAChD7otB,OAAQyoxB,IAnBC,KAqBRE,KAAWI,EAAehpxB,OAAlB,eACV,CAAC,qBAAD,OAAsB8otB,EAAtB,yCAAoEA,EAApE,4CAAqHA,EAArH,WAA2I51tB,KAAK,KAAO,CACtJyH,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAOklyB,GAETv+wB,UAAW,sCANF,qCAQWs+sB,EARX,UAQkC,CAC3C/ttB,IAAK,CACHutxB,cAAc,EACdzkyB,MAAO,OAET2mB,UAAW,uDAbF,wCAecs+sB,EAfd,UAeqC,CAC9C/ttB,IAAK2txB,KAhBI,2CAkBiB5/D,EAlBjB,UAkBwC,CACjD7otB,OAAQyoxB,IAnBC,MCjGjB,IAAMO,GAAoB,CACxBtuxB,KAAM,CACJgnc,OAAQ,CAAC,KAAM,OAEjB3hc,MAAO,CACL2hc,OAAQ,CAAC,KAAM,OAEjB5mc,IAAK,CACH4mc,OAAQ,CAAC,KAAM,OAEjB1hc,OAAQ,CACN0hc,OAAQ,CAAC,KAAM,OAEjB0pK,QAAS,CACP1pK,OAAQ,CAAC,KAAM,OAEjB4kV,QAAS,CACP5kV,OAAQ,CAAC,KAAM,OAEjB6pK,SAAU,CACR7pK,OAAQ,CAAC,KAAM,OAEjB6kV,SAAU,CACR7kV,OAAQ,CAAC,KAAM,OAEjB4pK,YAAa,CACX5pK,OAAQ,CAAC,KAAM,OAEjB8kV,YAAa,CACX9kV,OAAQ,CAAC,KAAM,OAEjB2pK,WAAY,CACV3pK,OAAQ,CAAC,KAAM,OAEjB+kV,WAAY,CACV/kV,OAAQ,CAAC,KAAM,QAGbunV,GAA+B,CACnC79K,QAAS,CACP1pK,OAAQ,CAAC,KAAM,OAEjB4kV,QAAS,CACP5kV,OAAQ,CAAC,KAAM,OAEjB6pK,SAAU,CACR7pK,OAAQ,CAAC,KAAM,OAEjB6kV,SAAU,CACR7kV,OAAQ,CAAC,KAAM,OAEjB4pK,YAAa,CACX5pK,OAAQ,CAAC,KAAM,OAEjB8kV,YAAa,CACX9kV,OAAQ,CAAC,KAAM,OAEjB2pK,WAAY,CACV3pK,OAAQ,CAAC,KAAM,OAEjB+kV,WAAY,CACV/kV,OAAQ,CAAC,KAAM,QAGbwnV,GAAuB,IAAIvirB,IAAI,CAAC,UAAW,WAAY,aAAc,cAAe,UAAW,aAAc,WAAY,gBAChH,SAASwirB,GAAc73tB,GACpC,IACEg0c,EAMEh0c,EANFg0c,WACA8jR,EAKE93tB,EALF83tB,mBACAC,EAIE/3tB,EAJF+3tB,mBACA97xB,EAGE+jE,EAHF/jE,OACAo5oB,EAEEr1kB,EAFFq1kB,aACA2iJ,EACEh4tB,EADFg4tB,aAEIC,EAAiBjkR,EAAa,EAC9BkkR,EAAe,GAkErB,OAjEA1gyB,OAAOC,KAAKigyB,IAAmB/myB,SAAQ,SAAA+G,GACrC,IAAM2iB,EAAW09wB,GAAsBJ,GAA6BjgyB,IAAQggyB,GAAkBhgyB,GACxF2uxB,EAAgB7uxB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI31B,GAAW,CAC/Dpe,OAAQ,CAAC,EAAG,KAQd,OANAi8xB,EAAaxgyB,GAAO2uxB,EAEhBuR,GAAqBrtwB,IAAI7yB,KAC3B2uxB,EAAcuG,WAAY,GAGpBl1xB,GACN,IAAK,MACL,IAAK,UACL,IAAK,WACH2uxB,EAAcpqxB,OAAO,IAAMg8xB,EAAiBh8xB,EAC5C,MACF,IAAK,SACL,IAAK,aACL,IAAK,cACHoqxB,EAAcpqxB,OAAO,GAAKg8xB,EAAiBh8xB,EAC3C,MACF,IAAK,OACL,IAAK,UACL,IAAK,aACHoqxB,EAAcpqxB,OAAO,IAAMg8xB,EAAiBh8xB,EAC5C,MACF,IAAK,QACL,IAAK,WACL,IAAK,cACHoqxB,EAAcpqxB,OAAO,GAAKg8xB,EAAiBh8xB,EAI/C,IAAMqsa,EAAc0uX,GAAe,CACjCC,cAAe5hJ,EACf+hJ,qBAAqB,IAEvB,GAAIW,EACF,OAAQrgyB,GACN,IAAK,UACL,IAAK,aACH2uxB,EAAcpqxB,OAAO,IAAMqsa,EAAY4uX,oBAAsBe,EAC7D,MACF,IAAK,WACL,IAAK,cACH5R,EAAcpqxB,OAAO,GAAKqsa,EAAY4uX,oBAAsBe,EAC5D,MACF,IAAK,UACL,IAAK,WACH5R,EAAcpqxB,OAAO,IAAMqsa,EAAY4uX,oBAAsBe,EAC7D,MACF,IAAK,aACL,IAAK,cACH5R,EAAcpqxB,OAAO,GAAKqsa,EAAY4uX,oBAAsBe,EAKlE5R,EAAcxzpB,SApKX,SAA4BiimB,EAAWxsT,EAAa0rG,EAAY8jR,GACrE,IAA2B,IAAvBA,EACF,MAAO,CACLtP,SAAS,EACTC,SAAS,GAGb,IAAM51pB,EAAWilqB,GAAoD,kBAAvBA,EAAkCA,EAAqB,GAC/FK,EAAe,GACrB,OAAQrjE,GACN,IAAK,MACL,IAAK,SACHqjE,EAAazP,OAA2C,EAAlCpgX,EAAY4uX,oBAA0BljR,EAC5D,MACF,IAAK,OACL,IAAK,QACHmkR,EAAaxP,OAAmD,EAA1CrgX,EAAY6uX,4BAAkCnjR,EAGxE,IAAMokR,EAAiB5gyB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAImovB,GAAetlqB,GAQtE,OANKulqB,EAAe1P,SAClB0P,EAAe5P,SAAU,GAEtB4P,EAAezP,SAClByP,EAAe3P,SAAU,GAEpB2P,EAyIoBC,CAAmB3gyB,EAAK4wa,EAAa0rG,EAAY8jR,GAEtEE,IACF3R,EAAcK,WAAa,mBAGxBwR,EC1KF,IACLjjM,GACE5B,GAAAA,eAUG,SAASqB,GAAalkmB,EAAS0/G,GACpC,OAPK,SAAwB1/G,EAAS+gL,EAAarhE,GACnD,OAAK+kf,GAAezkmB,GAGA6imB,GAAAA,aAAmB7imB,EAA0B,oBAAV0/G,EAAuBA,EAAM1/G,EAAQ0/G,OAAS,IAAMA,GAFlGqhE,EAKF+mnB,CAAe9nyB,EAASA,EAAS0/G,GCd1C,IAcaqorB,GAAuCllM,GAAAA,cAAoB,MAyB3DmlM,GAAiB,SAAA9gjB,GAC5B,IACEj8O,EACEi8O,EADFj8O,SAEF,OAAoB43lB,GAAAA,cAAoBklM,GAAwB5mrB,SAAU,CACxEr/G,MAAO,MACNmJ,ICzBL,OARA,WACE,MAA+Bg9xB,KAA/B,eACA,MAAO,CACLx3wB,MAFF,KAGE81D,MAHF,KAIEuoD,OAJF,OCbIo5pB,GAAmB,SAAAxokB,GAAQ,MAAK,CACpC52B,kBAAmB42B,EACnBoogB,kBAAmB,SAGfqgE,GAAwB,SAAAzokB,GAAQ,MAAK,CACzC52B,kBAAmB42B,EACnBoogB,kBAAmB,SAERsgE,GAAa,SAAUx7E,EAAWy7E,EAAaC,EAAc5okB,GAAU,MAC9E6okB,EAAYtgyB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GACzEugyB,EAAkBD,EAAY,IAAM,GAC1C,wCAEMC,GAFN,OAEwB57E,EAFxB,0BAGM47E,GAHN,OAGwB57E,EAHxB,iBAIM5ltB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI0ovB,GAAiBxokB,IAAY,CAC/DqogB,mBAAoB,aALxB,mBAOMygE,GAPN,OAOwB57E,EAPxB,UAO4C5ltB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI2ovB,GAAsBzokB,IAAY,CAC1GqogB,mBAAoB,aARxB,2BAWMygE,GAXN,OAWwB57E,EAXxB,iBAW0CA,EAX1C,iCAYM47E,GAZN,OAYwB57E,EAZxB,kBAY2CA,EAZ3C,wBAaM,CACF7plB,cAAeslqB,EACftgE,mBAAoB,aAfxB,mBAiBMygE,GAjBN,OAiBwB57E,EAjBxB,iBAiB0CA,EAjB1C,iBAiBqE,CACjE7plB,cAAeulqB,EACfvgE,mBAAoB,UACpBhmsB,cAAe,SApBnB,GCVW0mwB,GAAS,IAAI/gE,GAAU,YAAa,CAC/C,KAAM,CACJj/sB,UAAW,aACX2oH,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACX2oH,QAAS,KAGAs3pB,GAAU,IAAIhhE,GAAU,aAAc,CACjD,KAAM,CACJj/sB,UAAW,YAEb,OAAQ,CACNA,UAAW,aACX2oH,QAAS,KAGAu3pB,GAAY,IAAIjhE,GAAU,eAAgB,CACrD,KAAM,CACJj/sB,UAAW,aACX2oH,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACX2oH,QAAS,KAGAw3pB,GAAa,IAAIlhE,GAAU,gBAAiB,CACvD,KAAM,CACJj/sB,UAAW,YAEb,OAAQ,CACNA,UAAW,aACX2oH,QAAS,KAGAy3pB,GAAW,IAAInhE,GAAU,cAAe,CACnD,KAAM,CACJj/sB,UAAW,aACXqgxB,gBAAiB,SACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACXqgxB,gBAAiB,YAGRC,GAAY,IAAIrhE,GAAU,eAAgB,CACrD,KAAM,CACJj/sB,UAAW,WACXqgxB,gBAAiB,UAEnB,OAAQ,CACNrgxB,UAAW,aACXqgxB,gBAAiB,SACjB13pB,QAAS,KAqEP43pB,GAAa,CACjBv7wB,KAAM,CACJ46wB,YAAaI,GACbH,aAAcI,IAEhB,WAAY,CACVL,YAAaM,GACbL,aAAcM,IAEhB,gBAAiB,CACfP,YAAaM,GACbL,aAAcM,IAEhB,YAAa,CACXP,YAhFsB,IAAI3gE,GAAU,gBAAiB,CACvD,KAAM,CACJj/sB,UAAW,aACXqgxB,gBAAiB,SACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACXqgxB,gBAAiB,YAyEjBR,aAtEuB,IAAI5gE,GAAU,iBAAkB,CACzD,KAAM,CACJj/sB,UAAW,WACXqgxB,gBAAiB,UAEnB,OAAQ,CACNrgxB,UAAW,aACXqgxB,gBAAiB,SACjB13pB,QAAS,MAgEX,aAAc,CACZi3pB,YA9DuB,IAAI3gE,GAAU,iBAAkB,CACzD,KAAM,CACJj/sB,UAAW,aACXqgxB,gBAAiB,WACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACXqgxB,gBAAiB,cAuDjBR,aApDwB,IAAI5gE,GAAU,kBAAmB,CAC3D,KAAM,CACJj/sB,UAAW,WACXqgxB,gBAAiB,YAEnB,OAAQ,CACNrgxB,UAAW,aACXqgxB,gBAAiB,WACjB13pB,QAAS,MA8CX,UAAW,CACTi3pB,YAAaQ,GACbP,aAAcS,IAEhB,YAAa,CACXV,YAhDsB,IAAI3gE,GAAU,gBAAiB,CACvD,KAAM,CACJj/sB,UAAW,aACXqgxB,gBAAiB,WACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,WACXqgxB,gBAAiB,cAyCjBR,aAtCuB,IAAI5gE,GAAU,iBAAkB,CACzD,KAAM,CACJj/sB,UAAW,WACXqgxB,gBAAiB,YAEnB,OAAQ,CACNrgxB,UAAW,aACXqgxB,gBAAiB,WACjB13pB,QAAS,OAiCA63pB,GAAiB,SAAC1itB,EAAOmloB,GAAe,MAEjDub,EACE1gpB,EADF0gpB,OAEIra,EAAY,GAAH,OAAMqa,EAAN,YAAgBvb,GAC/B,EAGIs9E,GAAWt9E,GAFb28E,EADF,EACEA,YACAC,EAFF,EAEEA,aAEF,MAAO,CAACF,GAAWx7E,EAAWy7E,EAAaC,EAA6B,kBAAf58E,EAAiCnloB,EAAMw6nB,mBAAqBx6nB,EAAMy6nB,oBAApH,mCAEC4L,EAFD,4BAGCA,EAHD,mBAIC,CACJnksB,UAAW,WACX2oH,QAAS,EACT42lB,wBAAyBzhpB,EAAMyunB,kBAC/B,YAAa,CACXvsrB,UAAW,WATV,mBAYDmksB,EAZC,UAYmB,CACtBob,wBAAyBzhpB,EAAM0unB,sBAb5B,KCvKIi0F,GAAe,CAAC,OAAQ,SAAU,OAAQ,QAAS,UAAW,OAAQ,MAAO,SAAU,SAAU,UAAW,WAAY,OAAQ,QCC9H,SAASC,GAAe5itB,EAAO6itB,GAC5C,OAAOF,GAAat/xB,QAAO,SAAC+8B,EAAMw5qB,GAChC,IAAMkpF,EAAa9itB,EAAM,GAAD,OAAI45nB,EAAJ,MAClBmpF,EAAmB/itB,EAAM,GAAD,OAAI45nB,EAAJ,MACxBopF,EAAYhjtB,EAAM,GAAD,OAAI45nB,EAAJ,MACjB/mD,EAAY7ykB,EAAM,GAAD,OAAI45nB,EAAJ,MACvB,OAAOn5sB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI7Y,GAAOyiwB,EAAOjpF,EAAU,CAC7DkpF,WAAAA,EACAC,iBAAAA,EACAC,UAAAA,EACAnwI,UAAAA,OAED,ICTL,IAAMowI,GAAkB,SAAAjjtB,GAAS,MAE7BwgpB,EAYExgpB,EAZFwgpB,aAEA0iE,EAUEljtB,EAVFkjtB,gBACAC,EASEnjtB,EATFmjtB,aACAC,EAQEpjtB,EARFojtB,UACAC,EAOErjtB,EAPFqjtB,oBACAviE,EAME9gpB,EANF8gpB,YACAtzB,EAKExtnB,EALFwtnB,cACAmf,EAIE3soB,EAJF2soB,mBACAlB,EAGEzroB,EAHFyroB,UACAD,EAEExroB,EAFFwroB,UACA83E,EACEtjtB,EADFsjtB,mBAEF,MAAO,EAAC,UACL9iE,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,KAA/C,GAC1ClgE,SAAU,WACVg9B,OAAQgkrB,EACR9ntB,QAAS,QACT/N,MAAO,cACP0N,SAAUuqxB,EACVh0uB,WAAY,UACZqzuB,gBAAiB,0CACjB,WAAY,CACVvpxB,QAAS,QAEX,gCAAiCoqxB,IAXS,mBAatC5iE,EAbsC,UAaf,CACzBpotB,SAAUo1rB,EACVj1rB,UAAWi1rB,EACX1lrB,QAAS,GAAF,OAAK2jsB,EAAY,EAAjB,cAAwBD,EAAxB,MACPz4qB,MAAOowvB,EACP/gL,UAAW,QACXz/G,eAAgB,OAChBoB,SAAU,aACV/me,gBAAiBomwB,EACjB9kJ,aAAc+kJ,EACd32E,UAAWC,EACX/0c,UAAW,gBAxB6B,SA2BzC,CAAC,mBAAD,qHAA8IhtQ,KAAK,MA3B1G,oBA4BpC41tB,EA5BoC,UA4Bb,CACzBliF,aAAch/nB,KAAKG,IAAI4jxB,EThDU,OSmBK,mBAgCtC7iE,EAhCsC,YAgCb,CAC3B1gtB,SAAU,aAjC8B,IAmCxC8ixB,GAAe5itB,GAAO,SAAC45nB,EAAUj5d,GAAS,MAE1CqijB,EACErijB,EADFqijB,UAEF,4BACOxiE,EADP,YACuB5mB,IADvB,yBAEQ4mB,EAFR,UAE+B,CACzBxjsB,gBAAiBgmwB,KAHvB,mBAKQxiE,EALR,UAK+B,CACzB,gCAAiCwiE,IANvC,QAUG,CAEH,QAAS,CACPhupB,UAAW,UAKjBurpB,GAAchgE,GAAWvgpB,EAAO,CAC9Bm3nB,kBAAmBmsF,IACjB,CACF9C,QAAS,qCACTN,cAAemD,EACfhD,qBAAqB,KA/DhB,oBAmED7/D,EAnEC,SAmEqB,CACxB1gtB,SAAU,WACVnH,SAAU,OACVslL,OAAQj+G,EAAMmvnB,mBAKpB,YAAiB0jB,EAAW0wE,GAC1B,IAAMC,EAAgB5jE,GAAsB,WAAW,SAAA5/oB,GAErD,IAAoB,IAAhBujtB,EACF,MAAO,GAET,IACEjlJ,EAIEt+jB,EAJFs+jB,aACAwrE,EAGE9poB,EAHF8poB,oBACA25E,EAEEzjtB,EAFFyjtB,eACAtsF,EACEn3nB,EADFm3nB,kBAEIusF,EAAenjE,GAAWvgpB,EAAO,CAErCkjtB,gBAAiB,IACjBC,aAAcr5E,EACdu5E,oBAAqB/kJ,EACrB8kJ,UAAWK,EACXH,mBAAoBnsF,EAAoB,EAAI,EAAIA,IAElD,MAAO,CAAC8rF,GAAgBS,GAAehB,GAAe1itB,EAAO,qBAC5D,SAAA8hK,GAKD,MAAO,CACLg/e,YAFEh/e,EAFFutd,gBAI+B,GAC/Bo0F,eAHE3hjB,EADFs2d,oBAMD,CACDh/b,YAAY,IAEd,OAAOoqhB,EAAc3wE,IC7HjB8wE,GAAgBhB,GAAa9iyB,KAAI,SAAAkzC,GAAK,gBAAOA,EAAP,eCCrC,SAASw7L,GAAWskf,EAAW9/qB,GACpC,IAAM6wvB,EDKD,SAAuB7wvB,GAE5B,OADqBrxC,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,KAAmBA,UAAU,GAI7EihyB,GAAaltqB,SAAS1iF,GAFpB,GAAGxd,QAAOi1kB,EAAAA,EAAAA,GAAmBm5L,KAAgBn5L,EAAAA,EAAAA,GAAmBm4L,KAAeltqB,SAAS1iF,GCRzE8wvB,CAAc9wvB,GAChC/qC,EAAY2+M,IAAAA,EAAW,oBACvBksgB,EADsB,YACT9/qB,GAAUA,GAAS6wvB,IAEhCnF,EAAe,GACfqF,EAAa,GAMnB,OALI/wvB,IAAU6wvB,IACZnF,EAAa/6Q,WAAa3we,EAE1B+wvB,EAAW,iCAAmC/wvB,GAEzC,CACL/qC,UAAAA,EACAy2xB,aAAAA,EACAqF,WAAAA,GCXJ,IA8BA,GA9BkB,SAAA3qrB,GAChB,IACakimB,EAMTlimB,EANF05mB,UACA7qtB,EAKEmxG,EALFnxG,UAFF,EAOImxG,EAJF4knB,UAAAA,OAHF,MAGc,MAHd,EAIEx4sB,EAGE4zF,EAHF5zF,MACAwtB,EAEEomE,EAFFpmE,MACAsrvB,EACEllrB,EADFklrB,kBAKIxrE,GAAY1X,EADd7+G,GAAAA,WAAiBj8R,IADnB86Y,cAE6B,UAAWE,GAC1C,EAA0B4X,GAASJ,GAAW,GAA9C,eAAOG,EAAP,KAAgBzqlB,EAAhB,KAEM0lkB,EAAY1/d,GAAWskf,EAAW9/qB,GAClCgxvB,EAAoB91F,EAAU61F,WAC9BE,EAA6BvjyB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIolvB,GAAoBpwF,EAAUwwF,cAC3FnH,EAAM3wkB,IAAAA,CAAWp+E,EAAQsqlB,EAAT,UAAuBA,EAAvB,mBAA4CA,EAA5C,sBAAmEkL,GAAa/1tB,EAAWimsB,EAAUjmsB,WAC3H,OAAOgrtB,EAAsB12H,GAAAA,cAAoB,MAAO,CACtDt0lB,UAAWsvxB,EACX1/wB,MAAOmsxB,GACOznM,GAAAA,cAAoB,MAAO,CACzCt0lB,UAAW,GAAF,OAAK6qtB,EAAL,YACMv2H,GAAAA,cAAoBt4N,GAAOvjY,OAAOw4C,OAAO,GAAIkgE,EAAO,CACnEnxG,UAAWugI,EACXsqlB,UAAWA,EACXwrE,kBAAmB2F,IACjBz+wB,MCjCFk8kB,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAiBP4+pB,GACEvksB,GAkBJ,SAAS+5wB,GAA8BxqyB,EAASo5tB,GAC9C,IAAM18I,EAAc18kB,EAAQ6jB,KAC5B,KAAkC,IAA7B64jB,EAAY+tN,cAA0C,WAAjBzqyB,EAAQ6jB,OAAsB7jB,EAAQ0/G,MAAMp0G,WAAyC,IAA7BoxkB,EAAYguN,eAA0B1qyB,EAAQ0/G,MAAMp0G,UAAYtL,EAAQ0/G,MAAMyonB,WAAwC,IAA5BzrJ,EAAYiuN,aAAwB3qyB,EAAQ0/G,MAAMp0G,SAAU,CAGtP,MAtBgB,SAACsiE,EAAK3mE,GACxB,IAAM26vB,EAAS,GACTgpC,EAAU5jyB,OAAOw4C,OAAO,GAAIouB,GAOlC,OANA3mE,EAAK9G,SAAQ,SAAA+G,GACP0mE,GAAO1mE,KAAO0mE,IAChBg0rB,EAAO16vB,GAAO0mE,EAAI1mE,UACX0jyB,EAAQ1jyB,OAGZ,CACL06vB,OAAAA,EACAgpC,QAAAA,GAcIC,CAAY7qyB,EAAQ0/G,MAAMvhG,MAAO,CAAC,WAAY,OAAQ,QAAS,MAAO,SAAU,QAAS,UAAW,WAFtGyjvB,EADF,EACEA,OACAgpC,EAFF,EAEEA,QAEIE,EAAY9jyB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CAC5CjgC,QAAS,gBACRqivB,GAAS,CACVxztB,OAAQ,cACR58B,MAAOxR,EAAQ0/G,MAAMqrrB,MAAQ,YAASzyxB,IAKlC0G,EAAQkllB,GAAalkmB,EAAS,CAClCme,MAJkBnX,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIorvB,GAAU,CAC5D7owB,cAAe,SAIfxzB,UAAW,OAEb,OAAoBs0lB,GAAAA,cAAoB,OAAQ,CAC9C1klB,MAAO2sxB,EACPv8xB,UAAW2+M,IAAAA,CAAWltN,EAAQ0/G,MAAMnxG,UAAf,UAA6B6qtB,EAA7B,kCACpBp6sB,GAEL,OAAOhf,EAET,IAAMs8I,GAAuBumd,GAAAA,YAAiB,SAACnjf,EAAOvhD,GACpD,IAAIp0D,EAAIua,EAEKs9rB,EAgBTlimB,EAhBF05mB,UACA4xE,EAeEtrrB,EAfFsrrB,cACAxF,EAcE9lrB,EAdF8lrB,oBACAX,EAaEnlrB,EAbFmlrB,iBACAvrvB,EAYEomE,EAZFpmE,MACAsrvB,EAWEllrB,EAXFklrB,kBACA35xB,EAUEy0G,EAVFz0G,SACAggyB,EASEvrrB,EATFurrB,gBACA/F,EAQExlrB,EARFwlrB,mBACAI,EAOE5lrB,EAPF4lrB,qBAVF,EAiBI5lrB,EANFyiG,MAAAA,OAXF,SAYEr2L,EAKE4zF,EALF5zF,MACAk6uB,EAIEtmpB,EAJFsmpB,QACA4qB,EAGElxqB,EAHFkxqB,kBAdF,EAiBIlxqB,EAFF6nrB,mBAAAA,OAfF,WAiBI7nrB,EADF4nrB,mBAAAA,OAhBF,SAkBM4D,IAAoB/olB,EAExB57H,EACEyuoB,KADFzuoB,MAEF,EAIIs8gB,GAAAA,WAAiBj8R,IAHAuke,EADrB,EACEzjxB,kBACAg6rB,EAFF,EAEEA,aACAnmkB,EAHF,EAGEA,UAGI6vpB,EAAavoM,GAAAA,OAAa,MAC1BkgM,EAAa,WACjB,IAAIh5xB,EAC0B,QAA7BA,EAAKqhyB,EAAW5sjB,eAA4B,IAAPz0O,GAAyBA,EAAGg5xB,cAEpElgM,GAAAA,oBAA0B1kiB,GAAK,iBAAO,CACpC4kuB,WAAAA,EACAsI,gBAAiB,WAEftI,SAaJ,MAAwBv9D,IAAe,EAAO,CAC5C1juB,MAA6B,QAArBiI,EAAK21G,EAAM2jB,YAAyB,IAAPt5H,EAAgBA,EAAK21G,EAAM32G,QAChE0rC,aAA2C,QAA5BnwB,EAAKo7F,EAAM4rrB,mBAAgC,IAAPhnxB,EAAgBA,EAAKo7F,EAAM6lrB,iBAFhF,eAAOliqB,EAAP,KAAakoqB,EAAb,KAIMC,GAAW1/wB,IAAUk6uB,GAAqB,IAAVl6uB,EAShC2/wB,EAAoB5oM,GAAAA,SAAc,WACtC,IAAI94lB,EAAIua,EACJonxB,EAA2BnE,EAI/B,MAHqB,kBAAVpllB,IACTuplB,EAA2H,QAA/FpnxB,EAAoC,QAA9Bva,EAAKo4M,EAAMwplB,qBAAkC,IAAP5hyB,EAAgBA,EAAKo4M,EAAMollB,0BAAuC,IAAPjjxB,EAAgBA,EAAKijxB,GAEnJ3W,GAAqByW,GAAc,CACxCE,mBAAoBmE,EACpBpE,mBAAAA,EACA9jR,WAAY0nR,EAAkB3ktB,EAAMmvnB,eAAiB,EACrD7wD,aAAct+jB,EAAMs+jB,aACpBp5oB,OAAQ86E,EAAMmsoB,UACd80E,cAAc,MAEf,CAACD,EAAoBpllB,EAAOyukB,EAAmBrqsB,IAC5CqltB,EAAc/oM,GAAAA,SAAc,WAChC,OAAc,IAAV/2kB,EACKA,EAEFk6uB,GAAWl6uB,GAAS,KAC1B,CAACk6uB,EAASl6uB,IACP+/wB,EAAkChpM,GAAAA,cAAoBmlM,GAAgB,KAA6B,oBAAhB4D,EAA6BA,IAAgBA,GAElIlkxB,EAMEg4F,EANFh4F,kBADJ,EAOMg4F,EALF4knB,UAAAA,OAFJ,MAEgB,MAFhB,IAOM5knB,EAJF6+qB,gBAAAA,OAHJ,MAGsB,GAHtB,IAOM7+qB,EAHF++qB,gBAAAA,OAJJ,MAIsB,GAJtB,EAKIuG,EAEEtlrB,EAFFslrB,aACApoE,EACEl9mB,EADFk9mB,cAEFkvE,EAAa9jM,GAAOtof,EAAO,CAAC,oBAAqB,YAAa,kBAAmB,kBAAmB,eAAgB,kBAChH05mB,EAAY1X,EAAa,UAAWE,GACpCykB,EAAgB3kB,IAChBqqF,EAAoBrsrB,EAAM,uBAC5BssrB,GAAW3oqB,EAET,SAAU3jB,GAAY,YAAaA,IAAU8rrB,IACjDQ,IAAW,GAGb,IAAMhtxB,GAAQwrxB,GAA8B/lM,GAAex5lB,KX9KtD,SAAoB+T,GACzB,OAAOA,GAASyllB,GAAezllB,IAAUA,EAAM6E,OAASg/kB,GAAAA,SW6KiBvR,CAAWrmlB,GAAYA,EAAwB43lB,GAAAA,cAAoB,OAAQ,KAAM53lB,GAAWmutB,GAC/J6yE,GAAajtxB,GAAM0gG,MACnBwsrB,GAAYD,GAAW19xB,WAA6C,kBAAzB09xB,GAAW19xB,UAAkG09xB,GAAW19xB,UAApF2+M,IAAAA,CAAW++kB,GAAW19xB,UAAWy8xB,GAAiB,GAAJ,OAAO5xE,EAAP,UAEnI,GAA0BI,GAASJ,GAAY2yE,GAA/C,iBAAOxyE,GAAP,MAAgBzqlB,GAAhB,MAEM0lkB,GAAY1/d,GAAWskf,EAAW9/qB,GAClCgxvB,GAAoB91F,GAAU61F,WAC9BE,GAA6BvjyB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIolvB,GAAoBpwF,GAAUwwF,cAC3FmH,GAAyBj/kB,IAAAA,CAAW23kB,GAAD,oBACnCzrE,EADmC,QACH,QAAd79kB,GACrBi5jB,GAAUjmsB,UAAWqutB,EAAe9tlB,IACvC,OAAOyqlB,GAAsB12H,GAAAA,cAAoBupM,GAAWplyB,OAAOw4C,OAAO,GAAIssvB,EAAY,CACxFnG,UAAWuF,EACX5mE,UAAWA,EACXi6D,gBAAiBA,EACjBE,gBAAiBA,EACjBrlE,UAAWA,EACXyrE,iBAAkBsH,GAClBnH,aAAch+xB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8qvB,IAAoBtF,GAClEQ,oBAAqB99wB,GAAqB89wB,GAAuB2F,EACjEhtuB,IAAKituB,EACLxa,kBAAmB6a,EACnBzlC,QAAS6lC,EACT9iyB,QAASijyB,GACT/G,gBAzEmB,SAAAoH,GACnB,IAAItiyB,EAAIua,EACRinxB,GAAQC,GAAkBa,GACrBb,IAC2B,QAA7BzhyB,EAAK21G,EAAM4srB,oBAAiC,IAAPviyB,GAAyBA,EAAGpJ,KAAK++G,EAAO2srB,GAC7C,QAAhC/nxB,EAAKo7F,EAAMulrB,uBAAoC,IAAP3gxB,GAAyBA,EAAG3jB,KAAK++G,EAAO2srB,KAqEnFnH,mBAAwC,OAApB+F,QAAgD,IAApBA,EAA6BA,EAAkB/F,EAC/FN,kBAAmB2F,GACnB9E,aAA2B5iM,GAAAA,cAAoB,OAAQ,CACrDt0lB,UAAW,GAAF,OAAK6qtB,EAAL,oBAEXrjB,OAAQ,CACN2V,WAAY3F,GAAkBsgB,EAAe,gBAAiB3mnB,EAAMsmmB,gBACpEkC,eAAgB,KAElBo9E,uBAAwBA,IACtB0G,GAAW9nM,GAAalllB,GAAO,CACjCzQ,UAAW29xB,KACRltxB,QAKPs9H,GAAQmvlB,uCAAyCC,GACjD,UC5NA,GADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iLAAqL,KAAQ,QAAS,MAAS,YCMtW6gE,GAAgB,SAAuB7srB,EAAOvhD,GAChD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM2sxB,OAMV,OAA4B3pM,GAAAA,WAAiB0pM,IChBtC,SAASE,GAAS/srB,GACvB,SAAUA,EAAMgtrB,cAAehtrB,EAAMitrB,YAEhC,SAASC,GAAgBltrB,GAC9B,SAAUA,EAAM30E,QAAU20E,EAAM2nB,QAAU3nB,EAAMmtrB,YAE3C,SAASC,GAAgBhmyB,EAAQpG,EAAGi9B,EAAUojO,GACnD,GAAKpjO,EAAL,CAGA,IAAIjjB,EAAQha,EACZ,GAAe,UAAXA,EAAEmjB,KAAkB,CAatB,IAAIjV,EAAgB9H,EAAO8/L,WAAU,GAarC,OAVAlsL,EAAQ1T,OAAOw4B,OAAO9+B,EAAG,CACvBoG,OAAQ,CACNhF,MAAO8M,GAETA,cAAe,CACb9M,MAAO8M,KAGXA,EAAc9M,MAAQ,QACtB67B,EAASjjB,GAKX,QAAoBpC,IAAhByoP,EAWF,OAVArmP,EAAQ1T,OAAOw4B,OAAO9+B,EAAG,CACvBoG,OAAQ,CACNhF,MAAOgF,GAET8H,cAAe,CACb9M,MAAOgF,KAGXA,EAAOhF,MAAQi/P,OACfpjO,EAASjjB,GAGXijB,EAASjjB,IC/CX,ICEIqyxB,GDgHJ,GAlHgB,SAAmBrtrB,GACjC,IAAIstrB,EAAqBC,EACrBrza,EAAel6Q,EAAMk6Q,aACvBw/V,EAAY15mB,EAAM05mB,UAClBrurB,EAAS20E,EAAM30E,OACfs8F,EAAS3nB,EAAM2nB,OACfqlqB,EAAchtrB,EAAMgtrB,YACpBC,EAAajtrB,EAAMitrB,WACnBp+xB,EAAYmxG,EAAMnxG,UAClB4P,EAAQuhG,EAAMvhG,MACd7S,EAAWo0G,EAAMp0G,SACjBqrI,EAAWj3B,EAAMi3B,SACjBloG,EAAUixE,EAAMjxE,QAChBy+vB,EAAextrB,EAAMwtrB,aACrBL,EAAantrB,EAAMmtrB,WACnB/qyB,EAAQ49G,EAAM59G,MACdm1vB,EAAcv3oB,EAAMu3oB,YACpBpiuB,EAAS6qF,EAAM7qF,OACfssG,EAAUzhB,EAAMyhB,QAChB+rF,EAAaxtG,EAAMwtG,WACnBiglB,EAAYztrB,EAAMytrB,UAClBrrwB,EAAS49E,EAAM59E,OACf8T,EAAa8pE,EAAM9pE,WACjBw3vB,GAAwC,OAAfx3vB,QAAsC,IAAfA,OAAwB,EAASA,EAAWy3vB,eAAiB,OAC7GC,GAAwC,OAAf13vB,QAAsC,IAAfA,OAAwB,EAASA,EAAW23vB,eAAiB,OAC7GC,GAAmC,OAAf53vB,QAAsC,IAAfA,OAAwB,EAASA,EAAWo8B,UAAY,OACnGy7tB,GAAsC,OAAf73vB,QAAsC,IAAfA,OAAwB,EAASA,EAAW83vB,aAAe,OACzGC,GAAexrN,EAAAA,GAAAA,QAAO,MA8BtBnilB,GAAuBkkmB,EAAAA,GAAAA,cAAatqO,EAAc,CACpD93X,MAAOA,EACP+yB,OAAQA,EACRtmB,UAAWs9uB,IAAAA,CAAoD,QAA9CmhD,EAAsBpza,EAAal6Q,aAA2C,IAAxBstrB,OAAiC,EAASA,EAAoBz+xB,WAAYq+xB,GAAgBltrB,KAAW+srB,GAAS/srB,IAAUnxG,IAAc,KAC7M4P,MAAO68qB,EAAcA,EAAc,GAAoD,QAA/CiyG,EAAuBrza,EAAal6Q,aAA4C,IAAzButrB,OAAkC,EAASA,EAAqB9uxB,OAASyuxB,GAAgBltrB,IAAW+srB,GAAS/srB,GAAiB,GAARvhG,KAIvN,GAAIyuxB,GAAgBltrB,GAAQ,CAC1B,IAAIkurB,EACAC,EAAwB,GAAG/xwB,OAAOs9rB,EAAW,kBAC7C00E,EAAkBjiD,IAAAA,CAAKgiD,GAAwBD,EAAS,IAAI7ztB,EAAAA,EAAAA,GAAgB6ztB,EAAQ,GAAG9xwB,OAAO+xwB,EAAuB,aAAcviyB,IAAWyuE,EAAAA,EAAAA,GAAgB6ztB,EAAQ,GAAG9xwB,OAAO+xwB,EAAuB,YAAap/vB,IAAUsrC,EAAAA,EAAAA,GAAgB6ztB,EAAQ,GAAG9xwB,OAAO+xwB,EAAuB,aAAcl3pB,IAAW58D,EAAAA,EAAAA,GAAgB6ztB,EAAQ,GAAG9xwB,OAAO+xwB,EAAuB,yBAA0BxmqB,GAAUwlqB,GAAc/qyB,GAAQ8ryB,IAAUnB,GAAS/srB,IAAUnxG,EAAuB,OAAZ4yH,QAAgC,IAAZA,OAAqB,EAASA,EAAQksqB,aAA6B,OAAfnglB,QAAsC,IAAfA,OAAwB,EAASA,EAAWmglB,cACtlBU,GAAc1mqB,GAAUwlqB,IAA4BhqM,GAAAA,cAAoB,OAAQ,CAClFt0lB,UAAWs9uB,IAAAA,CAAK,GAAG/vtB,OAAOs9rB,EAAW,WAA2B,OAAflsgB,QAAsC,IAAfA,OAAwB,EAASA,EAAW7lF,QACpHlpH,MAAkB,OAAX2jB,QAA8B,IAAXA,OAAoB,EAASA,EAAOulG,QAnC/C,WACjB,IAAI2mqB,EACJ,IAAKnB,EACH,OAAO,KAET,IAAIoB,GAAa3iyB,IAAaqrI,GAAY70I,EACtCosyB,EAAe,GAAGpywB,OAAOs9rB,EAAW,eACpC8a,EAAmC,YAAxB9pI,EAAAA,GAAAA,GAAQyiM,IAA2C,OAAfA,QAAsC,IAAfA,GAAyBA,EAAWsB,UAAYtB,EAAWsB,UAAY,SACjJ,OAAoBtrM,GAAAA,cAAoB,OAAQ,CAC9C37hB,QAAS+vrB,EAITz+mB,YAAa,SAAqB93I,GAChC,OAAOA,EAAE6G,kBAEXgH,UAAWs9uB,IAAAA,CAAKqiD,GAAeF,EAAQ,IAAIj0tB,EAAAA,EAAAA,GAAgBi0tB,EAAO,GAAGlywB,OAAOoywB,EAAc,YAAaD,IAAYl0tB,EAAAA,EAAAA,GAAgBi0tB,EAAO,GAAGlywB,OAAOoywB,EAAc,iBAAkB7mqB,GAAS2mqB,IAC7Lt7pB,KAAM,SACNsM,UAAW,GACVk1lB,GAiBAk6D,GAAgB/mqB,GACnBrnI,EAAuB6imB,GAAAA,cAAoBuqM,GAAuBj1kB,EAAAA,GAAAA,GAAS,CACzE5pN,UAAWu/xB,EACX3vxB,MAAO68qB,EAAcA,EAAc,GAAKyxG,GAAS/srB,QAAiBpnG,EAAR6F,GAA+B,OAAX2jB,QAA8B,IAAXA,OAAoB,EAASA,EAAOurwB,cACrIx4wB,QAAS43wB,GAAS/srB,IAAU7qF,EAC5BqyC,QAjDe,SAAsBxmE,GACvC,IAAI2tyB,EACmD,QAAlDA,EAAwBV,EAAanvjB,eAA+C,IAA1B6vjB,GAAoCA,EAAsBpvxB,SAASve,EAAEoG,UACjH,OAAjBomyB,QAA0C,IAAjBA,GAAmCA,OA+C7C,OAAdC,QAAoC,IAAdA,OAAuB,EAASA,EAAUE,aAAc,CAC/ElvuB,IAAKwvuB,IACH5iwB,GAAuB83jB,GAAAA,cAAoB,OAAQ,CACrDt0lB,UAAWs9uB,IAAAA,CAAK,GAAG/vtB,OAAOs9rB,EAAW,WAA2B,OAAflsgB,QAAsC,IAAfA,OAAwB,EAASA,EAAWniL,QACpH5sB,MAAkB,OAAX2jB,QAA8B,IAAXA,OAAoB,EAASA,EAAOiJ,QAC7DA,IAAsBm5jB,EAAAA,GAAAA,cAAatqO,EAAc,CAClD93X,MAAOA,EACP+yB,OAAQ,OACNk5wB,GAIN,GAAItB,GAAS/srB,GAAQ,CACnB,IAAI4urB,EAAa,GAAGxywB,OAAOs9rB,EAAW,UAClCm1E,EAAW,GAAGzywB,OAAOwywB,EAAY,UACjCE,EAAyB3iD,IAAAA,CAAK,GAAG/vtB,OAAOs9rB,EAAW,YAAak1E,EAAwB,OAAZntqB,QAAgC,IAAZA,OAAqB,EAASA,EAAQnvD,SACtIy8tB,EAAuB5iD,IAAAA,CAAK,GAAG/vtB,OAAOs9rB,EAAW,kBAAmB7qtB,EAAuB,OAAZ4yH,QAAgC,IAAZA,OAAqB,EAASA,EAAQv2G,OAI7I,OAAoBi4kB,GAAAA,cAAoByqM,EAAuB,CAC7D/+xB,UAAWkgyB,EACXtwxB,MAAOA,EACP0W,OAAQA,GACMgukB,GAAAA,cAAoB2qM,EAAkB,CACpDj/xB,UAAWigyB,GACV9B,GAA4B7pM,GAAAA,cAAoB4qM,EAAqB,CACtEl/xB,UAAWggyB,GACV7B,IAA2BxoM,EAAAA,GAAAA,cAAalkmB,EAAS,CAClD60B,OAAQ,OACN83wB,GAA2B9pM,GAAAA,cAAoB4qM,EAAqB,CACtEl/xB,UAAWggyB,GACV5B,KAEL,OAAO3syB,GCjHL0uyB,GAAwB,sSACxBC,GAAe,CAAC,iBAAkB,cAAe,cAAe,iBAAkB,cAAe,cAAe,YAAa,eAAgB,iBAAkB,iBAAkB,QAAS,cAAe,eAAgB,gBAAiB,eAAgB,aAAc,aAAc,eACtRC,GAAqB,GAElB,SAASC,GAAqB14tB,GACnC,IAAIu0d,EAAWziiB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAC1E8jtB,EAAU51oB,EAAKjsE,aAAa,OAASisE,EAAKjsE,aAAa,iBAAmBisE,EAAKjsE,aAAa,QAChG,GAAIwgiB,GAAYkkQ,GAAmB7iF,GACjC,OAAO6iF,GAAmB7iF,GAE5B,IAAI5tsB,EAAQwH,OAAO88G,iBAAiBtsD,GAChCgoM,EAAYhgQ,EAAMqtT,iBAAiB,eAAiBrtT,EAAMqtT,iBAAiB,oBAAsBrtT,EAAMqtT,iBAAiB,sBACxHsje,EAAcj5vB,WAAW13B,EAAMqtT,iBAAiB,mBAAqB31R,WAAW13B,EAAMqtT,iBAAiB,gBACvGuje,EAAal5vB,WAAW13B,EAAMqtT,iBAAiB,wBAA0B31R,WAAW13B,EAAMqtT,iBAAiB,qBAC3Gwje,EAAcL,GAAavoyB,KAAI,SAAUsH,GAC3C,MAAO,GAAGouB,OAAOpuB,EAAM,KAAKouB,OAAO3d,EAAMqtT,iBAAiB99T,OACzDyD,KAAK,KACJ89xB,EAAW,CACbD,YAAaA,EACbF,YAAaA,EACbC,WAAYA,EACZ5whB,UAAWA,GAKb,OAHIusR,GAAYqhL,IACd6iF,GAAmB7iF,GAAWkjF,GAEzBA,EC1BT,IAAIz6gB,GAAY,CAAC,YAAa,eAAgB,eAAgB,QAAS,WAAY,WAAY,YAAa,QAAS,WAAY,WAAY,sBAWzI06gB,GAAiCrsM,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACrE,IAAI+oL,EAAOxnI,EACT05mB,EAAYlye,EAAKkye,UAEjB3krB,GADeyyM,EAAKiojB,aACLjojB,EAAKzyM,cACpB3yC,EAAQolP,EAAKplP,MACbstyB,EAAWlojB,EAAKkojB,SAChB7vsB,EAAW2nJ,EAAK3nJ,SAChBhxF,EAAY24O,EAAK34O,UACjB4P,EAAQ+oO,EAAK/oO,MACb7S,EAAW47O,EAAK57O,SAChBqyB,EAAWupN,EAAKvpN,SAEhBiyS,GADqB1oF,EAAKmojB,mBACdtrF,GAAyB78d,EAAMstC,KAGzC86gB,EAAkB9pE,GAAe/wrB,EAAc,CAC/C3yC,MAAOA,EACP4juB,UAAW,SAAmBzhtB,GAC5B,OAAe,OAARA,QAAwB,IAARA,EAAiBA,EAAM,MAGlDsrxB,GAAmBh/L,EAAAA,EAAAA,GAAe++L,EAAiB,GACnDzpE,EAAc0pE,EAAiB,GAC/BC,EAAiBD,EAAiB,GAOhCE,EAAc5sM,GAAAA,SAClBA,GAAAA,oBAA0B1kiB,GAAK,WAC7B,MAAO,CACLm/B,SAAUmysB,EAAYjxjB,YAK1B,IAAIkxjB,EAAiB7sM,GAAAA,SAAc,WAC/B,OAAIusM,GAAkC,YAAtBhlM,EAAAA,GAAAA,GAAQglM,GACf,CAACA,EAASO,QAASP,EAASQ,SAE9B,KACN,CAACR,IACJS,GAAkBt/L,EAAAA,EAAAA,GAAem/L,EAAgB,GACjDC,EAAUE,EAAgB,GAC1BD,EAAUC,EAAgB,GACxBC,IAAiBV,EA8BjBhrF,EAAkBvhH,GAAAA,SA/EJ,GAgFhBwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD2rF,EAAc1rF,EAAiB,GAC/B2rF,EAAiB3rF,EAAiB,GAChC2f,EAAmBnhI,GAAAA,WACrBohI,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDisE,EAAgBhsE,EAAiB,GACjCisE,EAAmBjsE,EAAiB,GAClCksE,EAAc,WAChBH,EA1Fe,IAiGjBhuN,IAAgB,WACV8tN,GACFK,MAED,CAACruyB,EAAO6tyB,EAASC,EAASE,IAC7B9tN,IAAgB,WACd,GAvGe,IAuGX+tN,EACFC,EAvGiB,QAwGZ,GAxGY,IAwGRD,EAAkC,CAC3C,IAAIK,EDtFK,SAAgCC,GAC7C,IAAI3lQ,EAAWziiB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAC1E0nyB,EAAU1nyB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,KAC9E2nyB,EAAU3nyB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,KAC7E8kyB,MACHA,GAAiBrqyB,SAAS4gC,cAAc,aACzBtiC,aAAa,YAAa,MACzC+ryB,GAAe/ryB,aAAa,cAAe,QAC3C0B,SAAS+lC,KAAKivC,YAAYq1tB,KAKxBsD,EAAWnmyB,aAAa,QAC1B6iyB,GAAe/ryB,aAAa,OAAQqvyB,EAAWnmyB,aAAa,SAE5D6iyB,GAAe7orB,gBAAgB,QAKjC,IAAIosrB,EAAwBzB,GAAqBwB,EAAY3lQ,GAC3DokQ,EAAcwB,EAAsBxB,YACpCC,EAAauB,EAAsBvB,WACnC5whB,EAAYmyhB,EAAsBnyhB,UAClC6whB,EAAcsB,EAAsBtB,YAKtCjC,GAAe/ryB,aAAa,QAAS,GAAG86B,OAAOkzwB,EAAa,KAAKlzwB,OAAO4ywB,KACxE3B,GAAejryB,MAAQuuyB,EAAWvuyB,OAASuuyB,EAAWv3wB,aAAe,GACrE,IAEI0rZ,EAFA1la,OAAYxG,EACZsN,OAAYtN,EAEZ7G,EAASs7xB,GAAezlvB,aAQ5B,GAPkB,eAAd62N,EAEF1sQ,GAAUs9xB,EACa,gBAAd5whB,IAET1sQ,GAAUq9xB,GAEI,OAAZa,GAAgC,OAAZC,EAAkB,CAExC7C,GAAejryB,MAAQ,IACvB,IAAIyuyB,EAAkBxD,GAAezlvB,aAAewnvB,EACpC,OAAZa,IACF7wxB,EAAYyxxB,EAAkBZ,EACZ,eAAdxxhB,IACFr/P,EAAYA,EAAYgwxB,EAAcC,GAExCt9xB,EAASoU,KAAKC,IAAIhH,EAAWrN,IAEf,OAAZm+xB,IACFhqxB,EAAY2qxB,EAAkBX,EACZ,eAAdzxhB,IACFv4P,EAAYA,EAAYkpxB,EAAcC,GAExCvqX,EAAY/ya,EAASmU,EAAY,GAAK,SACtCnU,EAASoU,KAAKG,IAAIJ,EAAWnU,IAGjC,IAAI0M,EAAQ,CACV1M,OAAQA,EACR+ya,UAAWA,EACX/na,OAAQ,QAQV,OANIqC,IACFX,EAAMW,UAAYA,GAEhB8G,IACFzH,EAAMyH,UAAYA,GAEbzH,ECYkBqyxB,CAAuBf,EAAYjxjB,SAAS,EAAOmxjB,EAASC,GAcjFI,EAtHc,GAuHdE,EAAiBE,QAlEM,WACzB,IAEE,GAAI1tyB,SAASkF,gBAAkB6nyB,EAAYjxjB,QAAS,CAClD,IAAIiyjB,EAAuBhB,EAAYjxjB,QACrChhJ,EAAiBizsB,EAAqBjzsB,eACtC0Y,EAAeu6rB,EAAqBv6rB,aACpC/uE,EAAYspwB,EAAqBtpwB,UAQnCsowB,EAAYjxjB,QAAQ9gJ,kBAAkBF,EAAgB0Y,GACtDu5rB,EAAYjxjB,QAAQr3M,UAAYA,GAElC,MAAOzmC,MAkDPgwyB,KAED,CAACX,IAGJ,IAAIY,EAAe9tM,GAAAA,SACf+tM,EAAW,WACb1qF,GAAAA,OAAWyqF,EAAanyjB,UAa1BqkX,GAAAA,WAAgB,WACd,OAAO+tM,IACN,IAGH,IAAIC,EAAsBf,EAAeG,EAAgB,KACrD/oG,EAAclM,EAAcA,EAAc,GAAI78qB,GAAQ0yxB,GAK1D,OA1JiB,IAsJbd,GArJiB,IAqJeA,IAClC7oG,EAAY1iR,UAAY,SACxB0iR,EAAY3iR,UAAY,UAENs+K,GAAAA,cAAoBh2Z,GAAgB,CACtDttG,SAvBqB,SAA0B7mF,GAlI/B,IAmIZq3xB,IACW,OAAbxwsB,QAAkC,IAAbA,GAA+BA,EAAS7mF,GACzD02xB,IACFwB,IACAD,EAAanyjB,QAAU0ne,IAAI,WACzBiqF,UAkBN7kyB,WAAY8jyB,GAAY7vsB,IACVsjgB,GAAAA,cAAoB,YAAY1qY,EAAAA,GAAAA,GAAS,GAAIy3G,EAAW,CACtEzxQ,IAAKsxuB,EACLtxxB,MAAO+orB,EACP34rB,UAAW2+M,IAAAA,CAAWksgB,EAAW7qtB,GAAWwrE,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOs9rB,EAAW,aAAc9ttB,IACnGA,SAAUA,EACVxJ,MAAO+juB,EACPlosB,SAvIqB,SAA0BjjB,GAC/C80xB,EAAe90xB,EAAM5T,OAAOhF,OACf,OAAb67B,QAAkC,IAAbA,GAA+BA,EAASjjB,WAwIjE,MC7KI85Q,GAAY,CAAC,eAAgB,QAAS,UAAW,SAAU,WAAY,aAAc,YAAa,qBAAsB,mBAAoB,SAAU,YAAa,UAAW,YAAa,YAAa,QAAS,WAAY,SAAU,aAAc,SAAU,YAOnQ,SAASs8gB,GAAehvyB,EAAOmsd,GAC7B,OAAO8iJ,EAAAA,EAAAA,GAAmBjvmB,GAAS,IAAI6D,MAAM,EAAGsod,GAAW98c,KAAK,IAElE,SAAS4/xB,GAAgBC,EAAeC,EAAUC,EAAcjjV,GAC9D,IAAIkjV,EAAkBD,EAQtB,OAPIF,EAEFG,EAAkBL,GAAeI,EAAcjjV,IACtC8iJ,EAAAA,EAAAA,GAAmBkgM,GAAY,IAAIzwyB,OAAS0wyB,EAAa1wyB,SAAUuwmB,EAAAA,EAAAA,GAAmBmgM,GAAgB,IAAI1wyB,OAASytd,IAE5HkjV,EAAkBF,GAEbE,EAET,IAAI3kV,GAAwBq2I,GAAAA,YAAiB,SAAU37W,EAAM/oL,GAC3D,IAAI6vuB,EACAv5vB,EAAeyyM,EAAKzyM,aACtB28vB,EAAclqjB,EAAKplP,MACnBk8B,EAAUkpN,EAAKlpN,QACfC,EAASipN,EAAKjpN,OACdN,EAAWupN,EAAKvpN,SAChBkvwB,EAAa3ljB,EAAK2ljB,WAClB5+U,EAAY/mO,EAAK+mO,UACjB53U,EAAqB6wG,EAAK7wG,mBAC1B5C,EAAmByzG,EAAKzzG,iBACxBpM,EAAS6/G,EAAK7/G,OACdgqqB,EAAiBnqjB,EAAKkye,UACtBA,OAA+B,IAAnBi4E,EAA4B,cAAgBA,EACxDlwqB,EAAU+lH,EAAK/lH,QACfmwqB,EAAYpqjB,EAAKoqjB,UACjB/iyB,EAAY24O,EAAK34O,UACjB4P,EAAQ+oO,EAAK/oO,MACb7S,EAAW47O,EAAK57O,SAChBupB,EAASqyN,EAAKryN,OACdq4L,EAAag6B,EAAKh6B,WAClBprL,EAASolN,EAAKplN,OACdy9D,EAAW2nJ,EAAK3nJ,SAChBy3X,EAAO+sP,GAAyB78d,EAAMstC,IACpC86gB,EAAkB9pE,GAAe/wrB,EAAc,CAC/C3yC,MAAOsvyB,EACP38vB,aAAcA,IAEhB86vB,GAAmBh/L,EAAAA,EAAAA,GAAe++L,EAAiB,GACnDxtyB,EAAQytyB,EAAiB,GACzB9nxB,EAAW8nxB,EAAiB,GAC1BgC,GAAuBpvN,EAAAA,GAAAA,QAAO,MAC9BiiI,EAAkBvhH,GAAAA,UAAe,GACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD31qB,EAAU41qB,EAAiB,GAC3BxwH,EAAawwH,EAAiB,GAC5B2f,EAAmBnhI,GAAAA,UAAe,GACpCohI,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDwtE,EAAcvtE,EAAiB,GAC/BwtE,EAAiBxtE,EAAiB,GAChCytE,EAAyB7uM,GAAAA,SACzB8uM,EAAuB9uM,GAAAA,OAAa,GACpCq9L,EAAmBr9L,GAAAA,SAAe,MACpCs9L,GAAmB5vL,EAAAA,EAAAA,GAAe2vL,EAAkB,GACpD0R,EAAkBzR,EAAiB,GACnC0R,EAAqB1R,EAAiB,GACpCl/xB,EAAQ,WACV,IAAI6wyB,EACuD,QAA1DA,EAAwBP,EAAqB/yjB,eAA+C,IAA1BszjB,GAA4CA,EAAsBx0sB,SAASr8F,UAEhJ6glB,EAAAA,GAAAA,qBAAoB3jhB,GAAK,WACvB,MAAO,CACL4zuB,kBAAmBR,EAAqB/yjB,QACxCv9O,MAAOA,EACP0nD,KAAM,WACJ,IAAIqpvB,EACwD,QAA3DA,EAAyBT,EAAqB/yjB,eAAgD,IAA3BwzjB,GAA6CA,EAAuB10sB,SAAS30C,aAIvJk5hB,EAAAA,GAAAA,YAAU,WACRgS,GAAW,SAAUltjB,GACnB,OAAQr7B,GAAYq7B,OAErB,CAACr7B,IAIJ,IAAI2myB,EAAetivB,OAAOs+Z,GAAa,EA0DnChqc,EJ7EC,SAA4BniB,GACjC,MAAqB,qBAAVA,GAAmC,OAAVA,EAC3B,GAEFikE,OAAOjkE,GIyEJowyB,CAAmBpwyB,GACxB0vyB,IAAeS,GAAiC,OAAhBb,QAAwC94xB,IAAhB84xB,IAE3DntxB,EAAM6sxB,GAAe7sxB,EAAKgqc,IAE5B,IACIkkV,EADApE,EAAa1mqB,EAEjB,GAAIiqqB,EAAW,CACb,IAAIt+nB,GAAc+9b,EAAAA,EAAAA,GAAmB9slB,GAAKzjB,OAExC2xyB,EADyB,YAAvB/nM,EAAAA,GAAAA,GAAQknM,GACEA,EAAU7gf,UAAU,CAC9B3uT,MAAOmiB,EACPm1D,MAAO45F,EACPi7S,UAAWA,IAGD,GAAGnyb,OAAOk3I,GAAal3I,OAAOm2wB,EAAe,MAAMn2wB,OAAOmyb,GAAa,IAErF8/U,EAA0BlrM,GAAAA,cAAoBA,GAAAA,SAAgB,KAAMkrM,EAAyBlrM,GAAAA,cAAoB,OAAQ,CACvHt0lB,UAAWs9uB,IAAAA,CAAK,GAAG/vtB,OAAOs9rB,EAAW,eAA+B,OAAflsgB,QAAsC,IAAfA,OAAwB,EAASA,EAAW9zI,OACxHj7D,MAAkB,OAAX2jB,QAA8B,IAAXA,OAAoB,EAASA,EAAOs3C,OAC7D+4tB,IAEL,IAOIC,IAAkBp7U,EAAKo4U,WAAakC,IAAczE,EAClDlrvB,GAAwBkhjB,GAAAA,cAAoBwvM,GAAW,CACzDvwyB,MAAOmiB,EACP4oxB,WAAYA,EACZ51C,YAxCgB,SAAqBv2vB,GACrC,IAAI4xyB,EACJ7qxB,EAAS,IACTxmB,IACA6ryB,GAA4E,QAA3DwF,EAAyBf,EAAqB/yjB,eAAgD,IAA3B8zjB,OAAoC,EAASA,EAAuBh1sB,SAAU58F,EAAGi9B,IAqCrK0pG,OAAQ0mqB,EACR30E,UAAWA,EACXj4lB,QAAS,CACPksqB,aAAcxhD,IAAAA,CAAiB,OAAZ1qnB,QAAgC,IAAZA,OAAqB,EAASA,EAAQksqB,cAAeW,EAAQ,IAAIj0tB,EAAAA,EAAAA,GAAgBi0tB,EAAO,GAAGlywB,OAAOs9rB,EAAW,eAAgBk4E,IAAYv3tB,EAAAA,EAAAA,GAAgBi0tB,EAAO,GAAGlywB,OAAOs9rB,EAAW,yBAA0ByzE,GAAamB,KAErQ1iyB,SAAUA,EACVmjC,QAASA,EACTlgC,UAAWA,EACX4P,MAAO68qB,EAAcA,EAAc,GAAI78qB,GAAQyzxB,IAAoBQ,GAAiB,CAClF3gyB,OAAQ,QACN,IACJ07xB,UAAW,CACTE,aAAc,CACZ,aAAmC,kBAAd8E,EAAyBA,OAAY75xB,IAG9Duc,OAAQA,EACR+kW,aAA2BipO,GAAAA,cAAoBqsM,IAAmB/2kB,EAAAA,GAAAA,GAAS,GAAI6+P,EAAM,CACnFj/W,UA7EgB,SAAuBr3G,GACzC,IAAIyuyB,EAAen4U,EAAKm4U,aACtBp3rB,EAAYi/W,EAAKj/W,UACL,UAAVr3G,EAAEwG,KAAmBioyB,GACvBA,EAAazuyB,GAED,OAAdq3G,QAAoC,IAAdA,GAAgCA,EAAUr3G,IAwE9Di9B,SAxFe,SAAsBj9B,GACvC,IAAIwwyB,EAAexwyB,EAAEoG,OAAOhF,OACvB0vyB,GAAeS,IAGlBf,EAAeH,GADKrwyB,EAAEoG,OAAO02F,gBAAkBywX,EAAY,GAAKvtd,EAAEoG,OAAO02F,iBAAmB0zsB,EAAa1wyB,SAAWE,EAAEoG,OAAO02F,eAC/E17F,EAAOovyB,EAAcjjV,IAErExmc,EAASypxB,GACTpE,GAAgBpsyB,EAAEkO,cAAelO,EAAGi9B,EAAUuzwB,IAiF5ClzwB,QAvEc,SAAqBt9B,GACrCmzlB,GAAW,GACC,OAAZ71jB,QAAgC,IAAZA,GAA8BA,EAAQt9B,IAsExDu9B,OApEa,SAAoBv9B,GACnCmzlB,GAAW,GACA,OAAX51jB,QAA8B,IAAXA,GAA6BA,EAAOv9B,IAmErD21I,mBAlH6B,SAAoC31I,GACnE+wyB,GAAe,GAEfC,EAAuBlzjB,QAAU18O,EAEjC6vyB,EAAqBnzjB,QAAU99O,EAAEkO,cAAc4uF,eACxB,OAAvB64C,QAAsD,IAAvBA,GAAyCA,EAAmB31I,IA6GzF+yI,iBA3G2B,SAAkC/yI,GAC/D+wyB,GAAe,GACf,IAEMc,EAFFrB,EAAexwyB,EAAEkO,cAAc9M,MAC/BmwyB,IAGFf,EAAeH,GADKY,EAAqBnzjB,SAAWyvO,EAAY,GAAK0jV,EAAqBnzjB,WAA0E,QAA5D+zjB,EAAwBb,EAAuBlzjB,eAA+C,IAA1B+zjB,OAAmC,EAASA,EAAsB/xyB,QAChMkxyB,EAAuBlzjB,QAAS0yjB,EAAcjjV,IAG1FijV,IAAiBpvyB,IACnB2lB,EAASypxB,GACTpE,GAAgBpsyB,EAAEkO,cAAelO,EAAGi9B,EAAUuzwB,IAE3B,OAArBz9pB,QAAkD,IAArBA,GAAuCA,EAAiB/yI,IA+FnF6N,UAA0B,OAAf2+M,QAAsC,IAAfA,OAAwB,EAASA,EAAWvrK,SAC9ExjC,MAAO68qB,EAAcA,EAAc,GAAe,OAAXl5pB,QAA8B,IAAXA,OAAoB,EAASA,EAAO6f,UAAW,GAAI,CAC3GllC,OAAkB,OAAV0B,QAA4B,IAAVA,OAAmB,EAASA,EAAM1B,SAE9DnR,SAAUA,EACV8ttB,UAAWA,EACX75nB,SA1Ce,SAAsB7mF,GACvC,IAAI85xB,EACS,OAAbjzsB,QAAkC,IAAbA,GAA+BA,EAAS7mF,GACG,QAA3D85xB,EAAyBjB,EAAqB/yjB,eAAgD,IAA3Bg0jB,GAAqCA,EAAuBl1sB,SAASn/E,MAAM1M,QACjJogyB,GAAmB,IAuCnB1zuB,IAAKozuB,OAGT,OAAO5vvB,MC7NT,GD+NA,GE/NO,SAAS8wvB,GAAoBr5E,EAAWxhrB,EAAQ86vB,GAAa,MAClE,OAAOxllB,IAAAA,EAAU,yBACXksgB,EADW,mBAC6B,YAAXxhrB,IADlB,mBAEXwhrB,EAFW,mBAE6B,YAAXxhrB,IAFlB,mBAGXwhrB,EAHW,iBAG2B,UAAXxhrB,IAHhB,mBAIXwhrB,EAJW,sBAIgC,eAAXxhrB,IAJrB,mBAKXwhrB,EALW,iBAKgBs5E,GALhB,IAQZ,ICOP,GAhBgB,SAAAC,GACd,IAAMj6xB,EAAOmqlB,GAAAA,WAAiBggH,IAa9B,OAZmBhgH,GAAAA,SAAc,WAC/B,OAAK8vM,EAGqB,kBAAfA,EACa,OAAfA,QAAsC,IAAfA,EAAwBA,EAAaj6xB,EAEjEi6xB,aAAsBzmP,SACjBymP,EAAWj6xB,GAEbA,EAREA,IASR,CAACi6xB,EAAYj6xB,KCbPk6xB,GAAY,yBAEnBC,GAAc,WAChB/zuB,IAAQ,EAAO,0EAoCjB,GAlC2B+jiB,GAAAA,cAAoB,CAC7CiwM,cAAeD,GACfE,eAAgBF,GAChBG,cAAeH,GACfI,gBAAiBJ,GACjBK,eAAgBL,GAChBM,gBAAiBN,GACjBO,eAAgBP,GAChBQ,kBAAmBR,GACnBS,mBAAoBT,GACpBU,YAAaV,GACbW,UAAWX,GACXr9C,cAAeq9C,GACfY,eAAgBZ,GAChBa,eAAgBb,GAChBxnQ,OAAQwnQ,GACRc,iBAAkB,WAEhB,OADAd,KACO,CACLr9P,SAAUq9P,GACVe,gBAAiBf,GACjB79C,cAAe69C,GACfgB,aAAchB,GACdiB,iBAAkBjB,GAClBkB,YAAalB,GACbmB,aAAcnB,GACdoB,cAAepB,GACfqB,UAAWrB,GACXsB,oBAAqBtB,GACrBuB,YAAavB,GACbwB,gBAAiBxB,OCnCvB,GAD+BhwM,GAAAA,cAAoB,MCD5C,SAAS7oY,GAAQl4N,GACtB,YAAcwW,IAAVxW,GAAiC,OAAVA,EAClB,GAEF2D,MAAMi2E,QAAQ55E,GAASA,EAAQ,CAACA,GAElC,SAASwyyB,GAAen8O,GAC7B,OAAOA,KAAUA,EAAKzlf,MCNT,SAAS,KAEtB,GAAsB,WACpB,OAAOsd,GAET,IAAIA,EAAU,GACZs6gB,EAAKtjmB,OAAOtB,UACZs1E,EAASsvhB,EAAGtzhB,eACZ/R,EAAiBj+D,OAAOi+D,gBAAkB,SAAU2I,EAAK1mE,EAAKulN,GAC5D7+I,EAAI1mE,GAAOulN,EAAK3qN,OAElByomB,EAAU,mBAAqBtwe,OAASA,OAAS,GACjDuwe,EAAiBD,EAAQnud,UAAY,aACrCqud,EAAsBF,EAAQhB,eAAiB,kBAC/CmB,EAAoBH,EAAQrwe,aAAe,gBAC7C,SAASO,EAAO7sD,EAAK1mE,EAAKpF,GACxB,OAAOkF,OAAOi+D,eAAe2I,EAAK1mE,EAAK,CACrCpF,MAAOA,EACPqjE,YAAY,EACZC,cAAc,EACdmwD,UAAU,IACR3nD,EAAI1mE,GAEV,IACEuzH,EAAO,GAAI,IACX,MAAOmO,GACPnO,EAAS,SAAgB7sD,EAAK1mE,EAAKpF,GACjC,OAAO8rE,EAAI1mE,GAAOpF,GAGtB,SAASg+K,EAAK6qb,EAASC,EAAS9jlB,EAAM+jlB,GACpC,IAAIC,EAAiBF,GAAWA,EAAQllmB,qBAAqBqlmB,EAAYH,EAAUG,EACjF3sjB,EAAYp3C,OAAOw4B,OAAOsrkB,EAAeplmB,WACzCmV,EAAU,IAAIuolB,EAAQyH,GAAe,IACvC,OAAO5liB,EAAe7mB,EAAW,UAAW,CAC1Ct8C,MAAOkpmB,EAAiBL,EAAS7jlB,EAAMjM,KACrCujC,EAEN,SAAS6sjB,EAASnxkB,EAAI8zC,EAAK3+C,GACzB,IACE,MAAO,CACLpL,KAAM,SACNoL,IAAK6K,EAAGn5B,KAAKitE,EAAK3+C,IAEpB,MAAO25G,GACP,MAAO,CACL/kH,KAAM,QACNoL,IAAK25G,IAIX54C,EAAQ8vF,KAAOA,EACf,IAAIorb,EAAmB,GACvB,SAASH,KACT,SAASI,KACT,SAASC,KACT,IAAIC,EAAoB,GACxB5we,EAAO4we,EAAmBb,GAAgB,WACxC,OAAOtqmB,QAET,IAAI4jiB,EAAW98hB,OAAO60E,eACpByvhB,EAA0BxnE,GAAYA,EAASA,EAAShqhB,EAAO,MACjEwxlB,GAA2BA,IAA4BhB,GAAMtvhB,EAAOr6E,KAAK2qmB,EAAyBd,KAAoBa,EAAoBC,GAC1I,IAAIC,EAAKH,EAA2B1lmB,UAAYqlmB,EAAUrlmB,UAAYsB,OAAOw4B,OAAO6rkB,GACpF,SAASG,EAAsB9lmB,GAC7B,CAAC,OAAQ,QAAS,UAAUvF,SAAQ,SAAU+I,GAC5CuxH,EAAO/0H,EAAWwD,GAAQ,SAAU+lB,GAClC,OAAO/uB,KAAKurmB,QAAQvimB,EAAQ+lB,SAIlC,SAASy8kB,EAActtjB,EAAWutjB,GAChC,SAASC,EAAO1imB,EAAQ+lB,EAAK3e,EAASs7B,GACpC,IAAI41C,EAASyphB,EAAS7sjB,EAAUl1C,GAASk1C,EAAWnvB,GACpD,GAAI,UAAYuyD,EAAO39D,KAAM,CAC3B,IAAI9U,EAASyyE,EAAOvyD,IAClBntB,EAAQiN,EAAOjN,MACjB,OAAOA,GAAS,WAAY,QAAQA,IAAUk5E,EAAOr6E,KAAKmB,EAAO,WAAa6pmB,EAAYr7lB,QAAQxO,EAAMunmB,SAAS3qjB,MAAK,SAAU58C,GAC9H8pmB,EAAO,OAAQ9pmB,EAAOwO,EAASs7B,MAC9B,SAAUg9F,GACXgje,EAAO,QAAShje,EAAKt4H,EAASs7B,MAC3B+/jB,EAAYr7lB,QAAQxO,GAAO48C,MAAK,SAAUmtjB,GAC7C98lB,EAAOjN,MAAQ+pmB,EAAWv7lB,EAAQvB,MACjC,SAAU6wC,GACX,OAAOgsjB,EAAO,QAAShsjB,EAAOtvC,EAASs7B,MAG3CA,EAAO41C,EAAOvyD,KAEhB,IAAI68kB,EACJ7miB,EAAe/kE,KAAM,UAAW,CAC9B4B,MAAO,SAAeoH,EAAQ+lB,GAC5B,SAAS88kB,IACP,OAAO,IAAIJ,GAAY,SAAUr7lB,EAASs7B,GACxCggkB,EAAO1imB,EAAQ+lB,EAAK3e,EAASs7B,MAGjC,OAAOkgkB,EAAkBA,EAAkBA,EAAgBptjB,KAAKqtjB,EAA4BA,GAA8BA,OAIhI,SAASf,EAAiBL,EAAS7jlB,EAAMjM,GACvC,IAAIw8E,EAAQ,iBACZ,OAAO,SAAUnuF,EAAQ+lB,GACvB,GAAI,cAAgBooE,EAAO,MAAM,IAAI9hD,MAAM,gCAC3C,GAAI,cAAgB8hD,EAAO,CACzB,GAAI,UAAYnuF,EAAQ,MAAM+lB,EAC9B,MAAO,CACLntB,WAAO,EACPw3B,MAAM,GAGV,IAAKze,EAAQ3R,OAASA,EAAQ2R,EAAQoU,IAAMA,IAAO,CACjD,IAAIm4hB,EAAWvsiB,EAAQusiB,SACvB,GAAIA,EAAU,CACZ,IAAI4kD,EAAiBC,EAAoB7kD,EAAUvsiB,GACnD,GAAImxlB,EAAgB,CAClB,GAAIA,IAAmBd,EAAkB,SACzC,OAAOc,GAGX,GAAI,SAAWnxlB,EAAQ3R,OAAQ2R,EAAQ4tlB,KAAO5tlB,EAAQqxlB,MAAQrxlB,EAAQoU,SAAS,GAAI,UAAYpU,EAAQ3R,OAAQ,CAC7G,GAAI,mBAAqBmuF,EAAO,MAAMA,EAAQ,YAAax8E,EAAQoU,IACnEpU,EAAQsxlB,kBAAkBtxlB,EAAQoU,SAC7B,WAAapU,EAAQ3R,QAAU2R,EAAQuxlB,OAAO,SAAUvxlB,EAAQoU,KACvEooE,EAAQ,YACR,IAAI7V,EAASyphB,EAASN,EAAS7jlB,EAAMjM,GACrC,GAAI,WAAa2mE,EAAO39D,KAAM,CAC5B,GAAIwzE,EAAQx8E,EAAQye,KAAO,YAAc,iBAAkBkoD,EAAOvyD,MAAQi8kB,EAAkB,SAC5F,MAAO,CACLppmB,MAAO0/E,EAAOvyD,IACdqK,KAAMze,EAAQye,MAGlB,UAAYkoD,EAAO39D,OAASwzE,EAAQ,YAAax8E,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAMuyD,EAAOvyD,OAItG,SAASg9kB,EAAoB7kD,EAAUvsiB,GACrC,IAAIokD,EAAapkD,EAAQ3R,OACvBA,EAASk+iB,EAAShra,SAASn9E,GAC7B,QAAI3mD,IAAcpP,EAAQ,OAAO2R,EAAQusiB,SAAW,KAAM,UAAYnof,GAAcmof,EAAShra,SAAiB,SAAMvhI,EAAQ3R,OAAS,SAAU2R,EAAQoU,SAAM3W,EAAW2zlB,EAAoB7kD,EAAUvsiB,GAAU,UAAYA,EAAQ3R,SAAW,WAAa+1D,IAAepkD,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAM,IAAIg3F,UAAU,oCAAsChnD,EAAa,aAAcisiB,EAClY,IAAI1phB,EAASyphB,EAAS/hmB,EAAQk+iB,EAAShra,SAAUvhI,EAAQoU,KACzD,GAAI,UAAYuyD,EAAO39D,KAAM,OAAOhJ,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAMuyD,EAAOvyD,IAAKpU,EAAQusiB,SAAW,KAAM8jD,EACjH,IAAIp8kB,EAAO0yD,EAAOvyD,IAClB,OAAOH,EAAOA,EAAKwK,MAAQze,EAAQusiB,EAASilD,YAAcv9kB,EAAKhtB,MAAO+Y,EAAQ2jC,KAAO4ogB,EAASklD,QAAS,WAAazxlB,EAAQ3R,SAAW2R,EAAQ3R,OAAS,OAAQ2R,EAAQoU,SAAM3W,GAAYuC,EAAQusiB,SAAW,KAAM8jD,GAAoBp8kB,GAAQjU,EAAQ3R,OAAS,QAAS2R,EAAQoU,IAAM,IAAIg3F,UAAU,oCAAqCprG,EAAQusiB,SAAW,KAAM8jD,GAErW,SAASqB,EAAaC,GACpB,IAAIzze,EAAQ,CACV0ze,OAAQD,EAAK,IAEf,KAAKA,IAASzze,EAAM2ze,SAAWF,EAAK,IAAK,KAAKA,IAASzze,EAAM4ze,WAAaH,EAAK,GAAIzze,EAAM6ze,SAAWJ,EAAK,IAAKtsmB,KAAK2smB,WAAW/rmB,KAAKi4H,GAErI,SAAS+ze,EAAc/ze,GACrB,IAAIv3C,EAASu3C,EAAMg0e,YAAc,GACjCvrhB,EAAO39D,KAAO,gBAAiB29D,EAAOvyD,IAAK8pG,EAAMg0e,WAAavrhB,EAEhE,SAAS4hhB,EAAQyH,GACf3qmB,KAAK2smB,WAAa,CAAC,CACjBJ,OAAQ,SACN5B,EAAY1qmB,QAAQosmB,EAAcrsmB,MAAOA,KAAKu7B,OAAM,GAE1D,SAAS3hB,EAAOwqjB,GACd,GAAIA,GAAY,KAAOA,EAAU,CAC/B,IAAI0oC,EAAiB1oC,EAASkmC,GAC9B,GAAIwC,EAAgB,OAAOA,EAAersmB,KAAK2jkB,GAC/C,GAAI,mBAAqBA,EAAS9lhB,KAAM,OAAO8lhB,EAC/C,IAAK56hB,MAAM46hB,EAAS9jkB,QAAS,CAC3B,IAAIyL,GAAK,EACPuyC,EAAO,SAASA,IACd,OAASvyC,EAAIq4jB,EAAS9jkB,QAAS,GAAIw6E,EAAOr6E,KAAK2jkB,EAAUr4jB,GAAI,OAAOuyC,EAAK18C,MAAQwikB,EAASr4jB,GAAIuyC,EAAKllB,MAAO,EAAIklB,EAC9G,OAAOA,EAAK18C,WAAQwW,EAAWkmC,EAAKllB,MAAO,EAAIklB,GAEnD,OAAOA,EAAKA,KAAOA,GAGvB,MAAM,IAAIynE,WAAU,QAAQq+c,GAAY,oBAE1C,OAAO6mC,EAAkBzlmB,UAAY0lmB,EAA4BnmiB,EAAesmiB,EAAI,cAAe,CACjGzpmB,MAAOspmB,EACPhmiB,cAAc,IACZH,EAAemmiB,EAA4B,cAAe,CAC5DtpmB,MAAOqpmB,EACP/liB,cAAc,IACZ+liB,EAAkB/7lB,YAAcqrH,EAAO2we,EAA4BV,EAAmB,qBAAsB16gB,EAAQi9gB,oBAAsB,SAAUC,GACtJ,IAAIppe,EAAO,mBAAqBope,GAAUA,EAAOx+lB,YACjD,QAASo1H,IAASA,IAASqne,GAAqB,uBAAyBrne,EAAK10H,aAAe00H,EAAKp2H,QACjGsiF,EAAQiuG,KAAO,SAAUiva,GAC1B,OAAOlmmB,OAAOg1I,eAAiBh1I,OAAOg1I,eAAekxd,EAAQ9B,IAA+B8B,EAAOjxd,UAAYmvd,EAA4B3we,EAAOyye,EAAQxC,EAAmB,sBAAuBwC,EAAOxnmB,UAAYsB,OAAOw4B,OAAO+rkB,GAAK2B,GACzOl9gB,EAAQm9gB,MAAQ,SAAUl+kB,GAC3B,MAAO,CACLo6kB,QAASp6kB,IAEVu8kB,EAAsBE,EAAchmmB,WAAY+0H,EAAOixe,EAAchmmB,UAAW+kmB,GAAqB,WACtG,OAAOvqmB,QACL8vF,EAAQ07gB,cAAgBA,EAAe17gB,EAAQgrK,MAAQ,SAAU2vW,EAASC,EAAS9jlB,EAAM+jlB,EAAac,QACxG,IAAWA,IAAgBA,EAActtjB,SACzC,IAAI8mH,EAAO,IAAIumc,EAAc5rb,EAAK6qb,EAASC,EAAS9jlB,EAAM+jlB,GAAcc,GACxE,OAAO37gB,EAAQi9gB,oBAAoBrC,GAAWzlc,EAAOA,EAAK3mH,OAAOE,MAAK,SAAU3vC,GAC9E,OAAOA,EAAOuqB,KAAOvqB,EAAOjN,MAAQqjK,EAAK3mH,WAE1CgtjB,EAAsBD,GAAK9we,EAAO8we,EAAIb,EAAmB,aAAcjwe,EAAO8we,EAAIf,GAAgB,WACnG,OAAOtqmB,QACLu6H,EAAO8we,EAAI,YAAY,WACzB,MAAO,wBACLv7gB,EAAQ/oF,KAAO,SAAUgd,GAC3B,IAAIX,EAAStc,OAAOid,GAClBhd,EAAO,GACT,IAAK,IAAIC,KAAOoc,EAAQrc,EAAKnG,KAAKoG,GAClC,OAAOD,EAAKgtB,UAAW,SAASuqB,IAC9B,KAAOv3C,EAAKzG,QAAS,CACnB,IAAI0G,EAAMD,EAAKqxC,MACf,GAAIpxC,KAAOoc,EAAQ,OAAOk7B,EAAK18C,MAAQoF,EAAKs3C,EAAKllB,MAAO,EAAIklB,EAE9D,OAAOA,EAAKllB,MAAO,EAAIklB,IAExBwxC,EAAQl2E,OAASA,EAAQsplB,EAAQ19lB,UAAY,CAC9CgJ,YAAa00lB,EACb3nkB,MAAO,SAAe2xkB,GACpB,GAAIltmB,KAAKymC,KAAO,EAAGzmC,KAAKs+C,KAAO,EAAGt+C,KAAKuomB,KAAOvomB,KAAKgsmB,WAAQ5zlB,EAAWpY,KAAKo5B,MAAO,EAAIp5B,KAAKknjB,SAAW,KAAMlnjB,KAAKgJ,OAAS,OAAQhJ,KAAK+uB,SAAM3W,EAAWpY,KAAK2smB,WAAW1smB,QAAQ2smB,IAAiBM,EAAe,IAAK,IAAI1/lB,KAAQxN,KAAM,MAAQwN,EAAK03E,OAAO,IAAMpK,EAAOr6E,KAAKT,KAAMwN,KAAUg8B,OAAOh8B,EAAK/H,MAAM,MAAQzF,KAAKwN,QAAQ4K,IAEtUmC,KAAM,WACJva,KAAKo5B,MAAO,EACZ,IAAI+zkB,EAAantmB,KAAK2smB,WAAW,GAAGE,WACpC,GAAI,UAAYM,EAAWxplB,KAAM,MAAMwplB,EAAWp+kB,IAClD,OAAO/uB,KAAKotmB,MAEdnB,kBAAmB,SAA2B7ihB,GAC5C,GAAIppF,KAAKo5B,KAAM,MAAMgwD,EACrB,IAAIzuE,EAAU3a,KACd,SAASmf,EAAOw4E,EAAK01gB,GACnB,OAAO/rhB,EAAO39D,KAAO,QAAS29D,EAAOvyD,IAAMq6D,EAAWzuE,EAAQ2jC,KAAOq5C,EAAK01gB,IAAW1ylB,EAAQ3R,OAAS,OAAQ2R,EAAQoU,SAAM3W,KAAci1lB,EAE5I,IAAK,IAAIthmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC1Bu1E,EAASu3C,EAAMg0e,WACjB,GAAI,SAAWh0e,EAAM0ze,OAAQ,OAAOptlB,EAAO,OAC3C,GAAI05G,EAAM0ze,QAAUvsmB,KAAKymC,KAAM,CAC7B,IAAI6mkB,EAAWxyhB,EAAOr6E,KAAKo4H,EAAO,YAChC00e,EAAazyhB,EAAOr6E,KAAKo4H,EAAO,cAClC,GAAIy0e,GAAYC,EAAY,CAC1B,GAAIvtmB,KAAKymC,KAAOoyF,EAAM2ze,SAAU,OAAOrtlB,EAAO05G,EAAM2ze,UAAU,GAC9D,GAAIxsmB,KAAKymC,KAAOoyF,EAAM4ze,WAAY,OAAOttlB,EAAO05G,EAAM4ze,iBACjD,GAAIa,GACT,GAAIttmB,KAAKymC,KAAOoyF,EAAM2ze,SAAU,OAAOrtlB,EAAO05G,EAAM2ze,UAAU,OACzD,CACL,IAAKe,EAAY,MAAM,IAAIl4jB,MAAM,0CACjC,GAAIr1C,KAAKymC,KAAOoyF,EAAM4ze,WAAY,OAAOttlB,EAAO05G,EAAM4ze,gBAK9DP,OAAQ,SAAgBvolB,EAAMoL,GAC5B,IAAK,IAAIhjB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM0ze,QAAUvsmB,KAAKymC,MAAQq0C,EAAOr6E,KAAKo4H,EAAO,eAAiB74H,KAAKymC,KAAOoyF,EAAM4ze,WAAY,CACjG,IAAIe,EAAe30e,EACnB,OAGJ20e,IAAiB,UAAY7plB,GAAQ,aAAeA,IAAS6plB,EAAajB,QAAUx9kB,GAAOA,GAAOy+kB,EAAaf,aAAee,EAAe,MAC7I,IAAIlshB,EAASkshB,EAAeA,EAAaX,WAAa,GACtD,OAAOvrhB,EAAO39D,KAAOA,EAAM29D,EAAOvyD,IAAMA,EAAKy+kB,GAAgBxtmB,KAAKgJ,OAAS,OAAQhJ,KAAKs+C,KAAOkvjB,EAAaf,WAAYzB,GAAoBhrmB,KAAKikO,SAAS3iJ,IAE5J2iJ,SAAU,SAAkB3iJ,EAAQorhB,GAClC,GAAI,UAAYprhB,EAAO39D,KAAM,MAAM29D,EAAOvyD,IAC1C,MAAO,UAAYuyD,EAAO39D,MAAQ,aAAe29D,EAAO39D,KAAO3jB,KAAKs+C,KAAOgjC,EAAOvyD,IAAM,WAAauyD,EAAO39D,MAAQ3jB,KAAKotmB,KAAOptmB,KAAK+uB,IAAMuyD,EAAOvyD,IAAK/uB,KAAKgJ,OAAS,SAAUhJ,KAAKs+C,KAAO,OAAS,WAAagjC,EAAO39D,MAAQ+olB,IAAa1smB,KAAKs+C,KAAOoujB,GAAW1B,GAEtQ9rY,OAAQ,SAAgButY,GACtB,IAAK,IAAI1gmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM4ze,aAAeA,EAAY,OAAOzsmB,KAAKikO,SAASprG,EAAMg0e,WAAYh0e,EAAM6ze,UAAWE,EAAc/ze,GAAQmye,IAGvH,MAAS,SAAgBuB,GACvB,IAAK,IAAIxgmB,EAAI/L,KAAK2smB,WAAWrsmB,OAAS,EAAGyL,GAAK,IAAKA,EAAG,CACpD,IAAI8sH,EAAQ74H,KAAK2smB,WAAW5gmB,GAC5B,GAAI8sH,EAAM0ze,SAAWA,EAAQ,CAC3B,IAAIjrhB,EAASu3C,EAAMg0e,WACnB,GAAI,UAAYvrhB,EAAO39D,KAAM,CAC3B,IAAI8plB,EAASnshB,EAAOvyD,IACpB69kB,EAAc/ze,GAEhB,OAAO40e,GAGX,MAAM,IAAIp4jB,MAAM,0BAElBq4jB,cAAe,SAAuBtpC,EAAU+nC,EAAYC,GAC1D,OAAOpsmB,KAAKknjB,SAAW,CACrBhra,SAAUtiI,EAAOwqjB,GACjB+nC,WAAYA,EACZC,QAASA,GACR,SAAWpsmB,KAAKgJ,SAAWhJ,KAAK+uB,SAAM3W,GAAY4ylB,IAEtDl7gB,m8CC3RL,IAAMuktB,GAAe,WA2Bd,SAASC,GACdrykB,GAEA,IAAKA,IAAWA,EAAO3hO,OAAQ,OAAO,KACtC,IAAMmxB,EAAS,GAMf,OALAwwM,EAAOhiO,SAAQ,SAAAy/C,GACb,IAAMnb,EAAQmb,EAAMnb,MACpB9S,EAAO8S,GAAS9S,EAAO8S,IAAU,GACjC9S,EAAO8S,GAAO3jC,KAAK8+C,MAEdjuB,EAGF,SAASqH,GACdnP,GAEQ,2BADLnD,EACK,iCADLA,EACK,KAAAze,UAAAA,GACR,IAAIgE,EAAI,EACFyrC,EAAMhxB,EAAKlmB,OACjB,GAAwB,oBAAbqpB,EACT,OAAOA,EAAS3D,MAAM,KAAMQ,GAE9B,GAAwB,kBAAbmD,EAAuB,CAChC,IAAI60D,EAAM70D,EAAS++B,QAAQ2rvB,IAAc,SAAArjyB,GACvC,GAAU,OAANA,EACF,MAAO,IAET,GAAIjF,GAAKyrC,EACP,OAAOxmC,EAET,OAAQA,GACN,IAAK,KACH,OAAO60D,OAAOr/C,EAAKza,MACrB,IAAK,KACH,OAAQ0jD,OAAOjpC,EAAKza,MACtB,IAAK,KACH,IACE,OAAOuP,KAAKC,UAAUiL,EAAKza,MAC3B,MAAO2O,IACP,MAAO,aAET,MACF,QACE,OAAO1J,MAGb,OAAOwtE,EAET,OAAO70D,EAcF,SAAS4qxB,GAAa3yyB,EAAc+hB,GACzC,YAAcvL,IAAVxW,GAAiC,OAAVA,MAGd,UAAT+hB,IAAoBpe,MAAMi2E,QAAQ55E,IAAWA,EAAMtB,YAfzD,SAA4BqjB,GAC1B,MACW,WAATA,GACS,QAATA,GACS,QAATA,GACS,UAATA,GACS,SAATA,GACS,YAATA,EAWE6wxB,CAAmB7wxB,IAA0B,kBAAV/hB,GAAuBA,IAgChE,SAAS6yyB,GACP5/qB,EACA1yE,EACAqM,GAEA,IAAI3tD,EAAQ,EACN4jkB,EAAY5vc,EAAIv0H,QAEtB,SAASg+C,EAAK2jL,GACZ,GAAIA,GAAUA,EAAO3hO,OACnBkuD,EAASyzK,OADX,CAIA,IAAMpnG,EAAWh6H,EACjBA,GAAgB,EACZg6H,EAAW4pc,EACbtihB,EAAK0yE,EAAIgG,GAAWv8E,GAEpBkQ,EAAS,KAIblQ,CAAK,IAWP,IAAao2vB,GAAb,oBAIE,SACEzykB,EAAAA,EACAxwM,GACA,aACAgjD,EAAAA,EAAAA,KAAAA,KAAM,2BAAN,MACKwtJ,OAASA,EACdxtJ,EAAKhjD,OAASA,EAHd,EAPJ,SAAAohkB,KAAAA,0EAAA,MAA0Cx9iB,QAmBnC,SAASs/vB,GACdC,EACA/vxB,EACAs9B,EACAqM,EACAm/D,GAEA,GAAI9oG,EAAOmlD,MAAO,CAChB,IAAMsiI,EAAU,IAAInuJ,SAAgB,SAAC/tC,EAASs7B,GAC5C,IAMMmpwB,EA1CZ,SAAuBD,GACrB,IAAMppqB,EAA0B,GAIhC,OAHA1kI,OAAOC,KAAK6tyB,GAAQ30yB,SAAQ,SAAA03D,GAC1B6zE,EAAI5qI,KAAJ4qI,MAAAA,EAAaopqB,EAAOj9uB,IAAM,OAErB6zE,EAqCgBspqB,CAAcF,GACjCH,GAAiBI,EAAY1yvB,GAPhB,SAAC8/K,GAEZ,OADAzzK,EAASyzK,GACFA,EAAO3hO,OACVorC,EAAO,IAAIgpwB,GAAqBzykB,EAAQqykB,GAAmBrykB,KAC3D7xN,EAAQu9G,SAMhB,OADA2+E,EAAO,OAAO,SAAA9rM,GAAC,OAAIA,KACZ8rM,EAET,IAAMyomB,GACmB,IAAvBlwxB,EAAOkwxB,YACHjuyB,OAAOC,KAAK6tyB,GACZ/vxB,EAAOkwxB,aAAe,GAEtBC,EAAaluyB,OAAOC,KAAK6tyB,GACzBK,EAAeD,EAAW10yB,OAC5BikoB,EAAQ,EACNj2nB,EAA2B,GAC3Bg+L,EAAU,IAAInuJ,SAAgB,SAAC/tC,EAASs7B,GAC5C,IAAM4S,EAAO,SAAC2jL,GAGZ,GAFA3zN,EAAQ1N,KAAKolB,MAAM1X,EAAS2zN,KAC5Bsia,IACc0wK,EAEZ,OADAzmvB,EAASlgD,GACFA,EAAQhO,OACXorC,EACE,IAAIgpwB,GAAqBpmyB,EAASgmyB,GAAmBhmyB,KAEvD8B,EAAQu9G,IAGXqnrB,EAAW10yB,SACdkuD,EAASlgD,GACT8B,EAAQu9G,IAEVqnrB,EAAW/0yB,SAAQ,SAAA+G,GACjB,IAAM6tH,EAAM+/qB,EAAO5tyB,IACe,IAA9B+tyB,EAAY5uyB,QAAQa,GACtBytyB,GAAiB5/qB,EAAK1yE,EAAM7D,GA5HpC,SACEu2E,EACA1yE,EACAqM,GAEA,IAAMlgD,EAA2B,GAC7Bi2nB,EAAQ,EACN9/D,EAAY5vc,EAAIv0H,OAEtB,SAAS44E,EAAM+oJ,GACb3zN,EAAQ1N,KAAR0N,MAAAA,EAAiB2zN,GAAU,MAC3Bsia,IACc9/D,GACZj2gB,EAASlgD,GAIbumH,EAAI50H,SAAQ,SAAAwlD,GACVtD,EAAKsD,EAAGyzB,MA4GJg8tB,CAAmBrgrB,EAAK1yE,EAAM7D,SAKpC,OADAguJ,EAAO,OAAO,SAAA9rM,GAAC,OAAIA,KACZ8rM,EAoBF,SAAS6omB,GAAgB1huB,EAAwBk6C,GACtD,OAAO,SAACukd,GACN,IAAIivL,EAlBNzzrB,EAwBE,OAJEyzrB,EADE1trB,EAAK2huB,WAdb,SAAkBxzyB,EAAe0L,GAE/B,IADA,IAAIu5C,EAAIjlD,EACCmK,EAAI,EAAGA,EAAIuB,EAAKhN,OAAQyL,IAAK,CACpC,QAASqM,GAALyuC,EACF,OAAOA,EAETA,EAAIA,EAAEv5C,EAAKvB,IAEb,OAAO86C,EAOUjpB,CAAS+vF,EAAQl6C,EAAK2huB,YAEtBznrB,EAAQukd,EAAW3tiB,OAASkvC,EAAK4huB,YAtBlD3nuB,EAwBiBwkgB,SAtBmC95jB,IAAlCs1D,EAAsBjiC,SAuBpCymiB,EAAG3tiB,MAAQ2tiB,EAAG3tiB,OAASkvC,EAAK4huB,UAC5BnjO,EAAGivL,WAAaA,EACTjvL,GAEF,CACLzmiB,QAAuB,oBAAPymiB,EAAoBA,IAAOA,EAC3CivL,WAAAA,EACA58tB,MAAS2tiB,EAAiC3tiB,OAASkvC,EAAK4huB,YAKvD,SAASC,GAA4B1uyB,EAAW+mH,GACrD,GAAIA,EACF,IAAK,IAAM9gG,KAAK8gG,EACd,GAAIA,EAAO72C,eAAejqD,GAAI,CAC5B,IAAMjrB,EAAQ+rH,EAAO9gG,GACA,kBAAVjrB,GAA2C,kBAAdgF,EAAOimB,GAC7CjmB,EAAOimB,GAAPjmB,GAAAA,GACKA,EAAOimB,GACPjrB,GAGLgF,EAAOimB,GAAKjrB,EAKpB,OAAOgF,EChTT,ICFI2uyB,GDEE17T,GAAwB,SAACpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,EAASuJ,IAEjE8vD,EAAKoma,UACHlsX,EAAO72C,eAAerD,EAAKlvC,SAC3BgwwB,GAAa3yyB,EAAO+hB,GAAQ8vD,EAAK9vD,OAEnCs+M,EAAOrhO,KAAKk4B,GAAO1e,EAAQizD,SAASwsa,SAAUpma,EAAK4huB,aEHjDrgsB,GAEG,uOAFHA,GAOC,iCAGDr/E,GAAQ,CACZ24E,QADY,SACJ1sG,GACN,OAAO+zB,GAAM8jD,OAAO73E,IAAUq0C,SAASr0C,EAAO,MAAQA,GAF5C,eAINA,GACJ,OAAO+zB,GAAM8jD,OAAO73E,KAAW+zB,GAAM24E,QAAQ1sG,IAE/Cy2C,MAPY,SAONz2C,GACJ,OAAO2D,MAAMi2E,QAAQ55E,IAEvBi2T,OAVY,SAULj2T,GACL,GAAIA,aAAiBonD,OACnB,OAAO,EAET,IACE,QAAS,IAAIA,OAAOpnD,GACpB,MAAOpB,IACP,OAAO,IAGX0jC,KApBY,SAoBPtiC,GACH,MAC2B,oBAAlBA,EAAMqiQ,SACa,oBAAnBriQ,EAAM+8E,UACY,oBAAlB/8E,EAAMyqV,UACZ7iT,MAAM5nC,EAAMqiQ,YAGjBxqL,OA5BY,SA4BL73E,GACL,OAAI4nC,MAAM5nC,IAGc,kBAAVA,GAEhBwhB,OAlCY,SAkCLxhB,GACL,MAAwB,kBAAVA,IAAuB+zB,GAAM0iB,MAAMz2C,IAEnDoH,OArCY,SAqCLpH,GACL,MAAwB,oBAAVA,GAEhBw5e,MAxCY,SAwCNx5e,GACJ,MACmB,kBAAVA,GACPA,EAAMtB,QAAU,OACdsB,EAAM+f,MAAMqzF,KAGlBp2D,IA/CY,SA+CRh9C,GACF,MACmB,kBAAVA,GACPA,EAAMtB,QAAU,QACdsB,EAAM+f,MDhEC,WACb,GAAI4zxB,GACF,OAAOA,GAGT,IAAM92oB,EAAO,eACP/4G,EAAI,SAAAtrC,GAAO,OACfA,GAAWA,EAAQo7xB,kBAAnBp7xB,mBACuBqkJ,EADvB,SACoCA,EADpC,cAEI,IAEAg3oB,EACJ,iGAEIC,EAAQ,mBACRC,GAEHD,aAAAA,EAFQ,WAEQA,EAFR,mFAGRA,EAHQ,WAGQD,EAAOC,KAAAA,EACvBA,kHAAAA,EAJQ,YAISD,EAJT,QAImBC,EAJnB,8GAKRA,EALQ,eAKYA,EALZ,UAK2BD,EAAUC,QAAAA,EAC7CA,4FAAAA,EANQ,eAMYA,EANZ,UAM2BD,EAN3B,QAMqCC,EAC7CA,4FAAAA,EAAoBA,eAAAA,EAAeD,UAAAA,EAAUC,QAAAA,EAPrC,4FAQRA,EARQ,eAQYA,EARZ,UAQ2BD,EAAUC,QAAAA,EACrCA,oGAAAA,EATA,UASeD,EATf,QASyBC,EATzB,sLAYRhtvB,QAAQ,eAAgB,IACxBA,QAAQ,MAAO,IACf9nB,OAGGg1wB,EAAW,IAAI5svB,OAAJ,OAAkBysvB,EAAlB,UAA8BE,EAA/C,MACME,EAAU,IAAI7svB,OAAJ,IAAeysvB,EAA/B,KACMK,EAAU,IAAI9svB,OAAJ,IAAe2svB,EAA/B,KAEMI,EAAK,SAAA37xB,GAAO,OAChBA,GAAWA,EAAQihlB,MACfu6M,EACA,IAAI5svB,OAAJ,MACQtD,EAAEtrC,GAAWq7xB,EAAK/vvB,EAAEtrC,GAD5B,QAC4CsrC,EAAEtrC,GAAWu7xB,EAAKjwvB,EAC1DtrC,GAFJ,IAIE,MAGR27xB,EAAGN,GAAK,SAACr7xB,GAAD,OACNA,GAAWA,EAAQihlB,MACfw6M,EACA,IAAI7svB,OAAUtD,GAAAA,EAAEtrC,GAAWq7xB,EAAK/vvB,EAAEtrC,GAAY,MACpD27xB,EAAGJ,GAAK,SAACv7xB,GAAD,OACNA,GAAWA,EAAQihlB,MACfy6M,EACA,IAAI9svB,OAAUtD,GAAAA,EAAEtrC,GAAWu7xB,EAAKjwvB,EAAEtrC,GAAY,MAEpD,IAEM47xB,EAAOD,EAAGN,KAAK9nrB,OACfsorB,EAAOF,EAAGJ,KAAKhorB,OASrB,OADA4nrB,GAAS,IAAIvsvB,OAAJ,qEADkDgtvB,EAAQC,IAAAA,EAC1D,qMAA6B,KCFpBC,KAGlBx/jB,IAtDY,SAsDR90O,GACF,MAAwB,kBAAVA,KAAwBA,EAAM+f,MAAMqzF,MChEtD,GAAe,CACb6kY,SAAAA,GACAurD,WCK8B,SAAC3xd,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IACxD,QAAQ8oB,KAAKthC,IAAoB,KAAVA,IACzBqgO,EAAOrhO,KAAKk4B,GAAO1e,EAAQizD,SAAS+3d,WAAY3xd,EAAK4huB,aDNvD1xxB,KDiEwB,SAAC8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACtD,GAAIq5D,EAAKoma,eAAsBzhe,IAAVxW,EACnBi4e,GAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,OADxC,CAIA,IAaM+7xB,EAAW1iuB,EAAK9vD,KAbP,CACb,UACA,QACA,QACA,SACA,SACA,SACA,QACA,SACA,OACA,MACA,OAGSxd,QAAQgwyB,IAAa,EACzBxgxB,GAAMwgxB,GAAUv0yB,IACnBqgO,EAAOrhO,KACLk4B,GAAO1e,EAAQizD,SAAS13C,MAAMwgxB,GAAW1iuB,EAAK4huB,UAAW5huB,EAAK9vD,OAIzDwyxB,UAAmBv0yB,IAAU6xE,EAAK9vD,MAC3Cs+M,EAAOrhO,KACLk4B,GAAO1e,EAAQizD,SAAS13C,MAAMwgxB,GAAW1iuB,EAAK4huB,UAAW5huB,EAAK9vD,SC5FlEqoE,MERyB,SAACvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACvD,IAAMo9B,EAA0B,kBAAbi8B,EAAKj8B,IAClB1xB,EAA0B,kBAAb2tD,EAAK3tD,IAClBF,EAA0B,kBAAb6tD,EAAK7tD,IAGpB7B,EAAMniB,EACNoF,EAAM,KACJ4/C,EAAuB,kBAAVhlD,EACb48E,EAAuB,kBAAV58E,EACbizH,EAAMtvH,MAAMi2E,QAAQ55E,GAW1B,GAVIglD,EACF5/C,EAAM,SACGw3E,EACTx3E,EAAM,SACG6tH,IACT7tH,EAAM,UAKHA,EACH,OAAO,EAEL6tH,IACF9wG,EAAMniB,EAAMtB,QAEVk+E,IAEFz6D,EAAMniB,EAAM8mD,QAxBG,kCAwBe,KAAKpoD,QAEjCk3C,EACEzzB,IAAQ0vD,EAAKj8B,KACfyqL,EAAOrhO,KAAKk4B,GAAO1e,EAAQizD,SAASrmE,GAAKwwC,IAAKi8B,EAAK4huB,UAAW5huB,EAAKj8B,MAE5D1xB,IAAQF,GAAO7B,EAAM0vD,EAAK3tD,IACnCm8M,EAAOrhO,KAAKk4B,GAAO1e,EAAQizD,SAASrmE,GAAK8e,IAAK2tD,EAAK4huB,UAAW5huB,EAAK3tD,MAC1DF,IAAQE,GAAO/B,EAAM0vD,EAAK7tD,IACnCq8M,EAAOrhO,KAAKk4B,GAAO1e,EAAQizD,SAASrmE,GAAK4e,IAAK6tD,EAAK4huB,UAAW5huB,EAAK7tD,MAC1DE,GAAOF,IAAQ7B,EAAM0vD,EAAK3tD,KAAO/B,EAAM0vD,EAAK7tD,MACrDq8M,EAAOrhO,KACLk4B,GAAO1e,EAAQizD,SAASrmE,GAAKglF,MAAOvY,EAAK4huB,UAAW5huB,EAAK3tD,IAAK2tD,EAAK7tD,OFhCvEqqrB,KGP8B,SAACx8nB,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAC5Dq5D,EAAI,KAASluE,MAAMi2E,QAAQ/H,EAAI,MAAUA,EAAI,KAAS,IACnB,IAA/BA,EAAI,KAAOttE,QAAQvE,IACrBqgO,EAAOrhO,KACLk4B,GAAO1e,EAAQizD,SAARjzD,KAAwBq5D,EAAK4huB,UAAW5huB,EAAI,KAAOxiE,KAAK,SHInE+jG,QIV2B,SAACvhC,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACzD,GAAIq5D,EAAKuhC,QACP,GAAIvhC,EAAKuhC,mBAAmBhsD,OAI1ByqB,EAAKuhC,QAAQ6mB,UAAY,EACpBpoD,EAAKuhC,QAAQ9xE,KAAKthC,IACrBqgO,EAAOrhO,KACLk4B,GACE1e,EAAQizD,SAAS2nC,QAAQ8rJ,SACzBrtL,EAAK4huB,UACLzzyB,EACA6xE,EAAKuhC,eAIN,GAA4B,kBAAjBvhC,EAAKuhC,QAAsB,CAC1B,IAAIhsD,OAAOyqB,EAAKuhC,SACnB9xE,KAAKthC,IACjBqgO,EAAOrhO,KACLk4B,GACE1e,EAAQizD,SAAS2nC,QAAQ8rJ,SACzBrtL,EAAK4huB,UACLzzyB,EACA6xE,EAAKuhC,aCxBXrxF,GAAyB,SAAC8vD,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC7D,IAAM+7xB,EAAW1iuB,EAAK9vD,KAChBs+M,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,EAAOu0yB,KAAc1iuB,EAAKoma,SACzC,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,EAAS+7xB,GAChD5B,GAAa3yyB,EAAOu0yB,IACvBl9sB,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG5Co0C,EAASyzK,ICFX,GAAe,CACb5zH,OCb+B,SAAC56B,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC/D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,EAAO,YAAc6xE,EAAKoma,SACzC,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,EAAS,UAChDm6xB,GAAa3yyB,EAAO,YACvBq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACxC6+E,GAAMjN,MAAMvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACzC6+E,GAAM+b,QAAQvhC,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IACnB,IAApBq5D,EAAK2xd,YACPnsc,GAAMmsc,WAAW3xd,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IAIpDo0C,EAASyzK,IDJTj5N,OEd+B,SAACyqE,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC/D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,GACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG5Co0C,EAASyzK,IFETxoJ,OGf+B,SAAChG,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC/D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CAIZ,GAHc,KAAV3iC,IACFA,OAAQwW,GAENm8xB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,IACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACxC6+E,GAAMjN,MAAMvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IAG7Co0C,EAASyzK,IHDT9a,QIhBgC,SAAC1zI,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAChE,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,GACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG5Co0C,EAASyzK,IJIT41F,OKjB+B,SAACpkP,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC/D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACvCm6xB,GAAa3yyB,IAChBq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG5Co0C,EAASyzK,ILKT3zH,QMlBgC,SAAC76B,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAChE,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,IACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACxC6+E,GAAMjN,MAAMvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IAG7Co0C,EAASyzK,INKT1zH,MOnBgC,SAAC96B,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAChE,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,IACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACxC6+E,GAAMjN,MAAMvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IAG7Co0C,EAASyzK,IPMT5pL,MQrB8B,SAACo7B,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC9D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,SAAensB,IAAVxW,GAAiC,OAAVA,KAAoB6xE,EAAKoma,SACnD,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,EAAS,cACvChC,IAAVxW,GAAiC,OAAVA,IACzBq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACxC6+E,GAAMjN,MAAMvY,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IAG7Co0C,EAASyzK,IRQT7+M,OSrB+B,SAACqwD,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC/D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,GACFq3F,GAAMt1E,KAAK8vD,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG5Co0C,EAASyzK,ITSTgue,KUpBmC,SACnCx8nB,EACA7xE,EACA4sD,EACAm/D,EACAvzG,GAEA,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,QAC9BhC,IAAVxW,GACFq3F,GAAK,KAAOxlB,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG7Co0C,EAASyzK,IVETjtH,QWvBgC,SAACvhC,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAChE,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,EAAO,YAAc6xE,EAAKoma,SACzC,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GACvCm6xB,GAAa3yyB,EAAO,WACvBq3F,GAAM+b,QAAQvhC,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAG/Co0C,EAASyzK,IXWT/9L,KYxB6B,SAACuvC,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAE7D,IAAM6nN,EAAmB,GAIzB,GAFExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OAEnD,CACZ,GAAIgwwB,GAAa3yyB,EAAO,UAAY6xE,EAAKoma,SACvC,OAAOrrb,IAIP,IAAIw7mB,EADN,GADA/wkB,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,IACvCm6xB,GAAa3yyB,EAAO,QAIrBooqB,EADEpoqB,aAAiB0sE,KACN1sE,EAEA,IAAI0sE,KAAK1sE,GAGxBq3F,GAAMt1E,KAAK8vD,EAAMu2lB,EAAYr8iB,EAAQs0G,EAAQ7nN,GACzC4vpB,GACF/wkB,GAAMjN,MAAMvY,EAAMu2lB,EAAW/la,UAAWt2I,EAAQs0G,EAAQ7nN,GAI9Do0C,EAASyzK,IZDTrjL,IAAKj7B,GACL+yN,IAAK/yN,GACLy3d,MAAOz3d,GACPk2d,Sa7BiC,SAACpma,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GACjE,IAAM6nN,EAAmB,GACnBt+M,EAAOpe,MAAMi2E,QAAQ55E,GAAS,eAAiBA,EACrDq3F,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,EAASuJ,GACrD6qC,EAASyzK,Ib0BTm0kB,Ic7B4B,SAAC3iuB,EAAM7xE,EAAO4sD,EAAUm/D,EAAQvzG,GAC5D,IAAM6nN,EAAmB,GAGzB,GADExuJ,EAAKoma,WAAcpma,EAAKoma,UAAYlsX,EAAO72C,eAAerD,EAAKlvC,OACnD,CACZ,GAAIgwwB,GAAa3yyB,KAAW6xE,EAAKoma,SAC/B,OAAOrrb,IAETyqC,GAAM4gZ,SAASpma,EAAM7xE,EAAO+rH,EAAQs0G,EAAQ7nN,GAE9Co0C,EAASyzK,KCZJ,SAASi7F,KACd,MAAO,CACL3tN,QAAS,+BACTsqY,SAAU,iBACVo2N,KAAM,uBACN7qK,WAAY,qBACZlhgB,KAAM,CACJpL,OAAQ,sCACRu9D,MAAO,8CACP8+O,QAAS,yBAEXx/S,MAAO,CACL04E,OAAQ,iBACRrlG,OAAQ,4BACRqvC,MAAO,kBACPj1B,OAAQ,kBACRq2D,OAAQ,iBACRv1C,KAAM,iBACNijL,QAAS,iBACT74G,QAAS,kBACTC,MAAO,iBACPspN,OAAQ,uBACRujL,MAAO,uBACPx8b,IAAK,uBACL83L,IAAK,wBAEProI,OAAQ,CACN72D,IAAK,mCACL1xB,IAAK,oCACLF,IAAK,yCACLomE,MAAO,2CAETvS,OAAQ,CACNjiC,IAAK,mBACL1xB,IAAK,4BACLF,IAAK,+BACLomE,MAAO,gCAET3zC,MAAO,CACLb,IAAK,kCACL1xB,IAAK,sCACLF,IAAK,yCACLomE,MAAO,0CAETgpB,QAAS,CACP8rJ,SAAU,yCAEZxlL,MAAQ,WACN,IAAM+6tB,EAAS/6xB,KAAK+6E,MAAM/6E,KAAKC,UAAUvb,OAEzC,OADAq2yB,EAAO/6tB,MAAQt7E,KAAKs7E,MACb+6tB,IAKN,IAAMhpuB,GAAW6vP,KCtBlBo5e,GAAAA,WAqBJ,WAAYh5tB,GAAmB,KAH/B2b,MAAoC,KAGL,KAF/B7rB,UAAsCmpuB,GAGpCv2yB,KAAKu6H,OAAOj9C,8BAGdi9C,OAAAA,SAAOthC,GAAc,WACnB,IAAKA,EACH,MAAM,IAAI5jD,MAAM,2CAElB,GAAqB,kBAAV4jD,GAAsB1zF,MAAMi2E,QAAQyd,GAC7C,MAAM,IAAI5jD,MAAM,2BAElBr1C,KAAKi5F,MAAQ,GAEbnyF,OAAOC,KAAKkyF,GAAOh5F,SAAQ,SAAAuN,GACzB,IAAMtN,EAAa+4F,EAAMzrF,GACzBinE,EAAKwkB,MAAMzrF,GAAQjI,MAAMi2E,QAAQt7E,GAAQA,EAAO,CAACA,SAIrDmtE,SAAAA,SAASA,GAIP,OAHIA,IACFrtE,KAAKotE,UAAYkouB,GAAUp4e,KAAe7vP,IAErCrtE,KAAKotE,WAWduG,EAAAA,SAAAA,SAAS6iuB,EAAiBvmtB,EAAa6le,GAAqC,oBAAlD7le,IAAAA,EAAS,SAAyC,IAArC6le,IAAAA,EAAU,cAC/C,IAAInoc,EAAiB6orB,EACjBp8xB,EAA0B61E,EAC1BzhC,EAA6BsngB,EAKjC,GAJuB,oBAAZ17iB,IACTo0C,EAAWp0C,EACXA,EAAU,KAEPpa,KAAKi5F,OAA4C,IAAnCnyF,OAAOC,KAAK/G,KAAKi5F,OAAO34F,OAIzC,OAHIkuD,GACFA,EAAS,KAAMm/D,GAEVxvE,QAAQ/tC,QAAQu9G,GA6BzB,GAAIvzG,EAAQizD,SAAU,CACpB,IAAIA,EAAWrtE,KAAKqtE,WAChBA,IAAakpuB,KACflpuB,EAAW6vP,MAEbo4e,GAAUjouB,EAAUjzD,EAAQizD,UAC5BjzD,EAAQizD,SAAWA,OAEnBjzD,EAAQizD,SAAWrtE,KAAKqtE,WAG1B,IAAM4sc,EAA6C,IACtC7/f,EAAQrT,MAAQD,OAAOC,KAAK/G,KAAKi5F,QACzCh5F,SAAQ,SAAA2lH,GACX,IAAMiP,EAAMy6S,EAAKr2U,MAAM2sB,GACnBhkH,EAAQ+rH,EAAO/H,GACnBiP,EAAI50H,SAAQ,SAAAsmE,GACV,IAAIkN,EAAyBlN,EACC,oBAAnBkN,EAAKlrD,YACVolG,IAAW6orB,IACb7orB,EAAS,MAAKA,IAEhB/rH,EAAQ+rH,EAAO/H,GAAKnyC,EAAKlrD,UAAU3mB,KAGnC6xE,EADkB,oBAATA,EACF,CACLC,UAAWD,GAGN,MAAKA,IAITC,UAAY47V,EAAKmnY,oBAAoBhjuB,GACrCA,EAAKC,YAIVD,EAAKlvC,MAAQqhF,EACbnyC,EAAK4huB,UAAY5huB,EAAK4huB,WAAazvrB,EACnCnyC,EAAK9vD,KAAO2rZ,EAAKonY,QAAQjjuB,GACzBwmc,EAAOr0Z,GAAKq0Z,EAAOr0Z,IAAM,GACzBq0Z,EAAOr0Z,GAAGhlH,KAAK,CACb6yE,KAAAA,EACA7xE,MAAAA,EACA+rH,OAAAA,EACAppF,MAAOqhF,WAIb,IAAM+wrB,EAAc,GACpB,OAAOhC,GACL16R,EACA7/f,GACA,SAACvM,EAAM+oyB,GACL,IA+FIv1uB,EA/FEoS,EAAO5lE,EAAK4lE,KACd8H,GACa,WAAd9H,EAAK9vD,MAAmC,UAAd8vD,EAAK9vD,QACR,kBAAhB8vD,EAAKhiD,QACkB,kBAAtBgiD,EAAKojuB,cAIhB,SAASC,EAAa9vyB,EAAawlN,GACjC,aACKA,EADL,CAEE6olB,UAAc5huB,EAAK4huB,UAAV,IAAuBruyB,EAChCouyB,WAAY3huB,EAAK2huB,WAAiB3huB,GAAAA,OAAAA,EAAK2huB,WAAYpuyB,CAAAA,IAAO,CAACA,KAI/D,SAASghI,EAAGxnI,QAAyC,IAAzCA,IAAAA,EAAqC,IAC/C,IAAIu2yB,EAAYxxyB,MAAMi2E,QAAQh7E,GAAKA,EAAI,CAACA,IACnC4Z,EAAQ48xB,iBAAmBD,EAAUz2yB,QACxCg2yB,EAAO13uB,QAAQ,mBAAoBm4uB,GAEjCA,EAAUz2yB,aAA2B8X,IAAjBq7D,EAAKhoC,UAC3BsrwB,EAAY,GAAGn7wB,OAAO63C,EAAKhoC,UAI7B,IAAIwrwB,EAAeF,EAAU7wyB,IAAIivyB,GAAgB1huB,EAAMk6C,IAEvD,GAAIvzG,EAAQ4vD,OAASituB,EAAa32yB,OAEhC,OADAq2yB,EAAYljuB,EAAKlvC,OAAS,EACnBqywB,EAAKK,GAEd,GAAK17tB,EAEE,CAIL,GAAI9H,EAAKoma,WAAahse,EAAKjM,MAazB,YAZqBwW,IAAjBq7D,EAAKhoC,QACPwrwB,EAAe,GACZr7wB,OAAO63C,EAAKhoC,SACZvlC,IAAIivyB,GAAgB1huB,EAAMk6C,IACpBvzG,EAAQslC,QACjBu3vB,EAAe,CACb78xB,EAAQslC,MACN+zB,EACA36C,GAAO1e,EAAQizD,SAASwsa,SAAUpma,EAAKlvC,UAItCqywB,EAAKK,GAGd,IAAIC,EAAqC,GACrCzjuB,EAAKojuB,cACP/vyB,OAAOC,KAAK8G,EAAKjM,OAAOsE,KAAI,SAAAc,GAC1BkwyB,EAAalwyB,GAAOysE,EAAKojuB,gBAG7BK,EAAe,MACVA,EACArpyB,EAAK4lE,KAAKhiD,QAGf,IAAM0lxB,EAAgD,GAEtDrwyB,OAAOC,KAAKmwyB,GAAcj3yB,SAAQ,SAAAskC,GAChC,IAAM6ywB,EAAcF,EAAa3ywB,GAC3B8ywB,EAAkB9xyB,MAAMi2E,QAAQ47tB,GAClCA,EACA,CAACA,GACLD,EAAkB5ywB,GAAS8ywB,EAAgBnxyB,IACzC4wyB,EAAarsyB,KAAK,KAAM85B,OAG5B,IAAMioL,EAAS,IAAI8plB,EAAOa,GAC1B3qlB,EAAOn/I,SAASjzD,EAAQizD,UACpBx/D,EAAK4lE,KAAKr5D,UACZvM,EAAK4lE,KAAKr5D,QAAQizD,SAAWjzD,EAAQizD,SACrCx/D,EAAK4lE,KAAKr5D,QAAQslC,MAAQtlC,EAAQslC,OAEpC8sK,EAAO74I,SAAS9lE,EAAKjM,MAAOiM,EAAK4lE,KAAKr5D,SAAWA,GAAS,SAAAk9xB,GACxD,IAAMC,EAAc,GAChBN,GAAgBA,EAAa32yB,QAC/Bi3yB,EAAY32yB,KAAZ22yB,MAAAA,EAAoBN,GAElBK,GAAQA,EAAKh3yB,QACfi3yB,EAAY32yB,KAAZ22yB,MAAAA,EAAoBD,GAEtBV,EAAKW,EAAYj3yB,OAASi3yB,EAAc,cAzD1CX,EAAKK,GA+DT,GA3FA17tB,EAAOA,IAAS9H,EAAKoma,WAAcpma,EAAKoma,UAAYhse,EAAKjM,OACzD6xE,EAAKlvC,MAAQ12B,EAAK02B,MA0FdkvC,EAAK+juB,eACPn2uB,EAAMoS,EAAK+juB,eAAe/juB,EAAM5lE,EAAKjM,MAAOomI,EAAIn6H,EAAK8/G,OAAQvzG,QACxD,GAAIq5D,EAAKC,UAAW,CACzB,IACErS,EAAMoS,EAAKC,UAAUD,EAAM5lE,EAAKjM,MAAOomI,EAAIn6H,EAAK8/G,OAAQvzG,GACxD,MAAOslC,GACPtV,MAAAA,QAAQsV,OAARtV,QAAQsV,MAAQA,GAEXtlC,EAAQq9xB,wBACX50yB,YAAW,WACT,MAAM68C,IACL,GAELsoF,EAAGtoF,EAAMjU,UAEC,IAAR41B,EACF2mE,KACiB,IAAR3mE,EACT2mE,EAC0B,oBAAjBv0D,EAAKhoC,QACRgoC,EAAKhoC,QAAQgoC,EAAK4huB,WAAa5huB,EAAKlvC,OACpCkvC,EAAKhoC,UAAcgoC,EAAK4huB,WAAa5huB,EAAKlvC,OAA1C,UAEG88B,aAAe97D,MACxByiI,EAAG3mE,GACMA,aAAehsB,OACxB2yF,EAAG3mE,EAAI51B,SAGP41B,GAAQA,EAAsB7iB,MAC/B6iB,EAAsB7iB,MACrB,kBAAMwpF,OACN,SAAAxnI,GAAC,OAAIwnI,EAAGxnI,SAId,SAAA8N,IArNF,SAAkBA,GAChB,IAAI2zN,EAA0B,GAC1BxwM,EAA8B,GAElC,SAASnwB,EAAId,GACW,MAAlB+E,MAAMi2E,QAAQh7E,GAChByhO,GAAS,EAAAA,GAAOrmM,OAAP,QAAiBp7B,GAE1ByhO,EAAOrhO,KAAKJ,GAIhB,IAAK,IAAIuL,EAAI,EAAGA,EAAIuC,EAAQhO,OAAQyL,IAClCzK,EAAIgN,EAAQvC,IAETk2N,EAAO3hO,QAGVmxB,EAAS6ixB,GAAmBrykB,GAC3BzzK,EAGUyzK,EAAQxwM,IANnB+8B,EAAS,KAAMm/D,GAsMfs2G,CAAS31N,KAEXq/G,MAIJ+orB,QAAAA,SAAQjjuB,GAIN,QAHkBr7D,IAAdq7D,EAAK9vD,MAAsB8vD,EAAKuhC,mBAAmBhsD,SACrDyqB,EAAK9vD,KAAO,WAGc,oBAAnB8vD,EAAKC,WACZD,EAAK9vD,OACJkjM,GAAW/vI,eAAerD,EAAK9vD,MAEhC,MAAM,IAAI0xB,MAAMvc,GAAO,uBAAwB26C,EAAK9vD,OAEtD,OAAO8vD,EAAK9vD,MAAQ,YAGtB8yxB,oBAAAA,SAAoBhjuB,GAClB,GAA8B,oBAAnBA,EAAKC,UACd,OAAOD,EAAKC,UAEd,IAAM3sE,EAAOD,OAAOC,KAAK0sE,GACnBikuB,EAAe3wyB,EAAKZ,QAAQ,WAIlC,OAHsB,IAAlBuxyB,GACF3wyB,EAAKwI,OAAOmoyB,EAAc,GAER,IAAhB3wyB,EAAKzG,QAA4B,aAAZyG,EAAK,GACrB8/M,GAAWgzR,SAEbhzR,GAAW7mN,KAAK02yB,QAAQjjuB,UAAUr7D,KA5TvCk+xB,GAAAA,GAEGhhuB,SAAW,SAAkB3xD,EAAc+vD,GAChD,GAAyB,oBAAdA,EACT,MAAM,IAAIr+B,MACR,oEAGJwxK,GAAWljM,GAAQ+vD,GARjB4iuB,GAWG13uB,Q1B7B6D,a0BkBhE03uB,GAaGjpuB,SAAWkpuB,GAbdD,GAeGzvlB,WAAaA,GClDtB,IAAI+lf,GAAe,mCACRoD,GAA0B,CACnCzgmB,QAAS,sCACTsqY,SAAU,wBACVo2N,KAAM,qCACN7qK,WAAY,4BACZlhgB,KAAM,CACJpL,OAAQ,uCACRu9D,MAAO,wCACP8+O,QAAS,6BAEXx/S,MAAO,CACL04E,OAAQu+lB,GACR5jsB,OAAQ4jsB,GACRv0pB,MAAOu0pB,GACPxprB,OAAQwprB,GACRnznB,OAAQmznB,GACR1oqB,KAAM0oqB,GACNzlf,QAASylf,GACTt+lB,QAASs+lB,GACTr+lB,MAAOq+lB,GACP/0Y,OAAQ+0Y,GACRxxN,MAAOwxN,GACPhupB,IAAKgupB,GACLl2d,IAAKk2d,IAEPv+lB,OAAQ,CACN72D,IAAK,8CACL1xB,IAAK,+CACLF,IAAK,oDACLomE,MAAO,0DAETvS,OAAQ,CACNjiC,IAAK,8BACL1xB,IAAK,uCACLF,IAAK,0CACLomE,MAAO,+CAET3zC,MAAO,CACLb,IAAK,6CACL1xB,IAAK,iDACLF,IAAK,oDACLomE,MAAO,yDAETgpB,QAAS,CACP8rJ,SAAU,gDClCV62iB,GAAiBC,GAKrB,SAASC,GAAeluxB,EAAUmuxB,GAChC,OAAOnuxB,EAAS++B,QAAQ,cAAc,SAAU81B,GAC9C,IAAIx3E,EAAMw3E,EAAI/4E,MAAM,GAAI,GACxB,OAAOqyyB,EAAG9wyB,MAGd,IAAI+wyB,GAAmB,mBACvB,SAASC,GAAa5kwB,EAAI6kwB,EAAKC,EAAKC,EAAKC,GACvC,OAAOC,GAAcryxB,MAAMhmB,KAAM+H,WAMnC,SAASswyB,KAyFP,OAxFAA,GAAgBC,GAAgCnuM,KAAsBpsa,MAAK,SAASw6mB,EAAS/qyB,EAAM5L,EAAO6xE,EAAMr5D,EAASo+xB,GACvH,IAAIC,EAAWC,EAAiBC,EAAcjluB,EAAWrG,EAAUx+D,EAAQ+pyB,EAAYd,EAAIe,EAC3F,OAAO1uM,KAAsBvqb,MAAK,SAAmBk5nB,GACnD,OAAU,OAAQA,EAAUrywB,KAAOqywB,EAAUx6vB,MAC3C,KAAK,EAgCH,cA/BAm6vB,EAAY39G,EAAc,GAAIrnnB,IAGbsluB,UAEjBpB,GAAe/4uB,QAAU,aAGrB65uB,EAAU/kuB,YACZgluB,EAAkBD,EAAU/kuB,UAC5B+kuB,EAAU/kuB,UAAY,WACpB,IACE,OAAOgluB,EAAgB1yxB,WAAM,EAAQje,WACrC,MAAO23C,GAEP,OADAtV,QAAQsV,MAAMA,GACPvB,QAAQzS,OAAOqswB,OAK5BY,EAAe,KACXF,GAAgC,UAAnBA,EAAU90xB,MAAoB80xB,EAAU5B,eACvD8B,EAAeF,EAAU5B,oBAClB4B,EAAU5B,cAEnBnjuB,EAAY,IAAIikuB,IAAe99tB,EAAAA,EAAAA,GAAgB,GAAIrsE,EAAM,CAACiryB,KAC1DpruB,EAAW4vF,GAAM+yiB,GAAyB51rB,EAAQ+/sB,kBAClDzmpB,EAAUrG,SAASA,GACnBx+D,EAAS,GACTiqyB,EAAUrywB,KAAO,GACjBqywB,EAAUx6vB,KAAO,GACVH,QAAQ/tC,QAAQsjE,EAAUC,UAASkG,EAAAA,EAAAA,GAAgB,GAAIrsE,EAAM5L,GAAQk5rB,EAAc,GAAI1grB,KAChG,KAAK,GACH0+xB,EAAUx6vB,KAAO,GACjB,MACF,KAAK,GACHw6vB,EAAUrywB,KAAO,GACjBqywB,EAAUE,GAAKF,EAAS,MAAU,IAC9BA,EAAUE,GAAG/2kB,SACfpzN,EAASiqyB,EAAUE,GAAG/2kB,OAAO/7N,KAAI,SAAUyyS,EAAO93S,GAChD,IAAI4qC,EAAUktQ,EAAMltQ,QAChBwtwB,EAAgBxtwB,IAAYsswB,GAAmB1quB,EAASkiC,QAAU9jE,EACtE,OAAoBk3jB,GAAAA,eAAqBs2M,GAGzCt2M,GAAAA,aAAmBs2M,EAAe,CAChCjyyB,IAAK,SAAS40B,OAAO/6B,KAClBo4yB,MAGX,KAAK,GACH,GAAOpqyB,EAAOvO,SAAUq4yB,EAAe,CACrCG,EAAUx6vB,KAAO,GACjB,MAGF,OADAw6vB,EAAUx6vB,KAAO,GACVH,QAAQpI,IAAIn0C,EAAMsE,KAAI,SAAUuqvB,EAAU1kvB,GAC/C,OAAOisyB,GAAa,GAAGp8wB,OAAOpuB,EAAM,KAAKouB,OAAO7vB,GAAI0kvB,EAAUkoD,EAAcv+xB,EAASo+xB,OAEzF,KAAK,GAEH,OADAI,EAAaE,EAAUvwM,KAChBuwM,EAAU5sM,OAAO,SAAU0sM,EAAWlvyB,QAAO,SAAU+8B,EAAMw7L,GAClE,MAAO,GAAGrmM,QAAOi1kB,EAAAA,EAAAA,GAAmBpqkB,IAAOoqkB,EAAAA,EAAAA,GAAmB5uY,MAC7D,KACL,KAAK,GAYH,OAVA61kB,EAAKh9G,EAAcA,EAAc,GAAIrnnB,GAAO,GAAI,CAC9CjmE,KAAMA,EACNyisB,MAAOx8nB,EAAKw8nB,MAAQ,IAAIh/rB,KAAK,OAC5BunyB,GACHK,EAAqBhqyB,EAAO3I,KAAI,SAAUw5C,GACxC,MAAqB,kBAAVA,EACFm4vB,GAAen4vB,EAAOo4vB,GAExBp4vB,KAEFo5vB,EAAU5sM,OAAO,SAAU2sM,GACpC,KAAK,GACL,IAAK,MACH,OAAOC,EAAUv+xB,UAEpBg+xB,EAAU,KAAM,CAAC,CAAC,GAAI,UAEpBF,GAAcryxB,MAAMhmB,KAAM+H,WAE5B,SAASmxyB,GAAcC,EAAUv3yB,EAAOq3F,EAAO7+E,EAASg/xB,EAAeZ,GAC5E,IAyDIa,EAzDA7ryB,EAAO2ryB,EAASloyB,KAAK,KAErBqoyB,EAAcrgtB,EAAM/yF,KAAI,SAAUqzyB,EAAaR,GACjD,IAAIS,EAAsBD,EAAY7luB,UAClC+kuB,EAAY39G,EAAcA,EAAc,GAAIy+G,GAAc,GAAI,CAChER,UAAWA,IAoCb,OAjCIS,IACFf,EAAU/kuB,UAAY,SAAUD,EAAM1vD,EAAKyqC,GACzC,IAAIirvB,GAAa,EAebjpyB,EAAUgpyB,EAAoB/luB,EAAM1vD,GAblB,WACpB,IAAK,IAAIg0N,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAGzB75L,QAAQ/tC,UAAUouC,MAAK,WACrBogB,IAAS66uB,EAAY,qFAChBA,GACHjrvB,EAASxoC,WAAM,EAAQQ,SAM7BizxB,EAAajpyB,GAAmC,oBAAjBA,EAAQguC,MAAgD,oBAAlBhuC,EAAQivC,MAK7Emf,GAAQ66uB,EAAY,8DAChBA,GACFjpyB,EAAQguC,MAAK,WACXgQ,OACC/O,OAAM,SAAUipF,GACjBl6E,EAASk6E,GAAO,UAKjB+vqB,KACNjzvB,MAAK,SAAUwhM,EAAMmB,GACtB,IAAI9/D,EAAK2+D,EAAK0yjB,YACZ/6mB,EAAKqoD,EAAK+xjB,UACRjgS,EAAK3wR,EAAMuxjB,YACb96mB,EAAKupD,EAAM4wjB,UACb,QAAM1wnB,MAASywV,EAENn6U,EAAKC,EAEVvW,EACK,GAED,KAIV,IAAsB,IAAlB+wnB,EAEFC,EAAiB,IAAIl7vB,QAAsB,WACzC,IAAIyqM,EAAQ0vjB,GAAgCnuM,KAAsBpsa,MAAK,SAAS47mB,EAAQvpyB,EAASs7B,GAC/F,IAAI3/B,EAAG0nE,EAAMwuJ,EACb,OAAOkoY,KAAsBvqb,MAAK,SAAkB3sI,GAClD,OAAU,OAAQA,EAASxM,KAAOwM,EAASqL,MACzC,KAAK,EACHvyC,EAAI,EACN,KAAK,EACH,KAAMA,EAAIutyB,EAAYh5yB,QAAS,CAC7B2yC,EAASqL,KAAO,GAChB,MAIF,OAFAm1B,EAAO6luB,EAAYvtyB,GACnBknC,EAASqL,KAAO,EACT05vB,GAAaxqyB,EAAM5L,EAAO6xE,EAAMr5D,EAASo+xB,GAClD,KAAK,EAEH,KADAv2kB,EAAShvL,EAASs1jB,MACNjomB,OAAQ,CAClB2yC,EAASqL,KAAO,EAChB,MAMF,OAJA5S,EAAO,CAAC,CACNu2L,OAAQA,EACRxuJ,KAAMA,KAEDxgC,EAASi5jB,OAAO,UACzB,KAAK,EACHngmB,GAAK,EACLknC,EAASqL,KAAO,EAChB,MACF,KAAK,GAEHluC,EAAQ,IACV,KAAK,GACL,IAAK,MACH,OAAO6iC,EAAS14B,UAEnBo/xB,OAEL,OAAO,SAAUC,EAAKC,GACpB,OAAOjxjB,EAAM5iO,MAAMhmB,KAAM+H,YAxCc,QA2CtC,CAEL,IAAI+xyB,EAAeR,EAAYpzyB,KAAI,SAAUutE,GAC3C,OAAOukuB,GAAaxqyB,EAAM5L,EAAO6xE,EAAMr5D,EAASo+xB,GAAkBh6vB,MAAK,SAAUyjL,GAC/E,MAAO,CACLA,OAAQA,EACRxuJ,KAAMA,SAIZ4luB,GAAkBD,EAgCtB,SAA6BW,GAC3B,OAAOC,GAAqBh0xB,MAAMhmB,KAAM+H,WAjCJkyyB,CAAoBH,GAW1D,SAA2BI,GACzB,OAAOC,GAAmBn0xB,MAAMhmB,KAAM+H,WAZkCqyyB,CAAkBN,IAAet7vB,MAAK,SAAUyjL,GAEpH,OAAO9jL,QAAQzS,OAAOu2L,MAO1B,OAHAo3kB,EAAe55vB,OAAM,SAAUj/C,GAC7B,OAAOA,KAEF64yB,EAKT,SAASc,KAgBP,OAfAA,GAAqB7B,GAAgCnuM,KAAsBpsa,MAAK,SAASs8mB,EAASP,GAChG,OAAO3vM,KAAsBvqb,MAAK,SAAmB06nB,GACnD,OAAU,OAAQA,EAAU7zwB,KAAO6zwB,EAAUh8vB,MAC3C,KAAK,EACH,OAAOg8vB,EAAUpuM,OAAO,SAAU/tjB,QAAQpI,IAAI+jwB,GAAct7vB,MAAK,SAAU+7vB,GACzE,IAAI3hgB,EAEJ,OADcA,EAAQ,IAAIh9Q,OAAO5V,MAAM4yR,GAAOi4T,EAAAA,EAAAA,GAAmB0pM,QAGrE,KAAK,EACL,IAAK,MACH,OAAOD,EAAU//xB,UAEpB8/xB,QAEqBr0xB,MAAMhmB,KAAM+H,WAKxC,SAASiyyB,KA0BP,OAzBAA,GAAuB1B,GAAgCnuM,KAAsBpsa,MAAK,SAASy8mB,EAASV,GAClG,IAAI5guB,EACJ,OAAOixhB,KAAsBvqb,MAAK,SAAmB66nB,GACnD,OAAU,OAAQA,EAAUh0wB,KAAOg0wB,EAAUn8vB,MAC3C,KAAK,EAEH,OADA46B,EAAQ,EACDuhuB,EAAUvuM,OAAO,SAAU,IAAI/tjB,SAAQ,SAAU/tC,GACtD0pyB,EAAa75yB,SAAQ,SAAUuQ,GAC7BA,EAAQguC,MAAK,SAAUk8vB,GACjBA,EAAUz4kB,OAAO3hO,QACnB8P,EAAQ,CAACsqyB,KAEXxhuB,GAAS,KACK4guB,EAAax5yB,QACzB8P,EAAQ,cAKlB,KAAK,EACL,IAAK,MACH,OAAOqqyB,EAAUlgyB,UAEpBigyB,OAEER,GAAqBh0xB,MAAMhmB,KAAM+H,WC3RnC,SAAS4yyB,GAAYrtyB,GAC1B,OAAOwsN,GAAQxsN,GAEV,SAASstyB,GAAoBp0vB,EAAOq0vB,GACzC,IAAIC,EAAW,GAKf,OAJAD,EAAa56yB,SAAQ,SAAUk5yB,GAC7B,IAAIv3yB,EAAQg8B,GAAS4oB,EAAO2yvB,GAC5B2B,EAAWvzxB,GAASuzxB,EAAU3B,EAAUv3yB,MAEnCk5yB,EAEF,SAASC,GAAiBF,EAAc1B,GAC7C,OAAO0B,GAAgBA,EAAat4xB,MAAK,SAAUjV,GACjD,OAAO0tyB,GAAc1tyB,EAAM6ryB,MAGxB,SAAS6B,GAAc7B,EAAU8B,GACtC,SAAK9B,IAAa8B,GAAmB9B,EAAS74yB,SAAW26yB,EAAgB36yB,SAGlE64yB,EAASnjwB,OAAM,SAAUklwB,EAAUnvyB,GACxC,OAAOkvyB,EAAgBlvyB,KAAOmvyB,KAyB3B,SAASC,GAAyBC,GACvC,IAAI5gyB,EAAQzS,UAAUzH,QAAU,OAAI8X,EAAYrQ,UAAU,GAC1D,OAAIyS,GAASA,EAAM5T,QAAoC,YAA1BsjmB,EAAAA,GAAAA,GAAQ1vlB,EAAM5T,SAAwBw0yB,KAAiB5gyB,EAAM5T,OACjF4T,EAAM5T,OAAOw0yB,GAEf5gyB,EAYF,SAASyhC,GAAK5D,EAAOgjwB,EAAWhxc,GACrC,IAAI/pW,EAAS+3C,EAAM/3C,OACnB,GAAI+6yB,EAAY,GAAKA,GAAa/6yB,GAAU+pW,EAAU,GAAKA,GAAW/pW,EACpE,OAAO+3C,EAET,IAAIn4C,EAAOm4C,EAAMgjwB,GACbx1vB,EAAOw1vB,EAAYhxc,EACvB,OAAIxkT,EAAO,EAEF,GAAGjqB,QAAOi1kB,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM,EAAG4kW,IAAW,CAACnqW,IAAO2wmB,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM4kW,EAASgxc,KAAaxqM,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM41yB,EAAY,EAAG/6yB,KAEvKulD,EAAO,EAEF,GAAGjqB,QAAOi1kB,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM,EAAG41yB,KAAaxqM,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM41yB,EAAY,EAAGhxc,EAAU,IAAK,CAACnqW,IAAO2wmB,EAAAA,EAAAA,GAAmBx4jB,EAAM5yC,MAAM4kW,EAAU,EAAG/pW,KAE5K+3C,ECjFT,IAAIi8O,GAAY,CAAC,QAUbgnhB,GAAe,GACnB,SAASC,GAAc16rB,EAAcp6E,EAAM6X,EAAMu3N,EAAWigR,EAAWlngB,GACrE,MAA4B,oBAAjBiyF,EACFA,EAAap6E,EAAM6X,EAAM,WAAY1vB,EAAO,CACjD++F,OAAQ/+F,EAAK++F,QACX,IAECkoJ,IAAcigR,EAGvB,IAAI0lR,GAAqB,SAAUz3F,IACjCn0G,EAAAA,EAAAA,GAAU4rM,EAAOz3F,GACjB,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAaqsM,GAE1B,SAASA,EAAMh8rB,GACb,IAAI/qC,IACJ25hB,EAAAA,EAAAA,GAAgBpumB,KAAMw7yB,IACtB/muB,EAAQ8/C,EAAO9zH,KAAKT,KAAMw/G,IAEpBroB,MAAQ,CACZsktB,WAAY,GAEdhnuB,EAAMinuB,mBAAqB,KAC3BjnuB,EAAMknuB,SAAU,EAKhBlnuB,EAAMi9qB,SAAU,EAMhBj9qB,EAAM+irB,OAAQ,EACd/irB,EAAMmnuB,qBAAkB,EACxBnnuB,EAAMonuB,oBAAiB,EACvBpnuB,EAAMwtJ,OAASq5kB,GACf7muB,EAAMmhb,SAAW0lT,GACjB7muB,EAAMqnuB,eAAiB,WACrB,IAAIlse,EAAcn7P,EAAM+qC,MACtBuyV,EAAWniI,EAAYmiI,SACvBgqW,EAAcnse,EAAYmse,YAC1BvuyB,EAAOoiU,EAAYpiU,KACjBinE,EAAMinuB,oBACRjnuB,EAAMinuB,mBAAmBK,EAAahqW,EAAU4oW,GAAYntyB,IAE9DinE,EAAMinuB,mBAAqB,MAG7BjnuB,EAAMkmuB,YAAc,WAClB,IAAIqB,EAAevnuB,EAAM+qC,MACvBhyG,EAAOwuyB,EAAaxuyB,KAElByuyB,EADaD,EAAaE,aACWC,WACvCA,OAAuC,IAA1BF,EAAmC,GAAKA,EACvD,YAAgB7jyB,IAAT5K,EAAqB,GAAGouB,QAAOi1kB,EAAAA,EAAAA,GAAmBsrM,IAAatrM,EAAAA,EAAAA,GAAmBrjmB,IAAS,IAEpGinE,EAAM6oF,SAAW,WACf,IAAI8+oB,EAAe3nuB,EAAM+qC,MACvB68rB,EAAqBD,EAAanjtB,MAClCA,OAA+B,IAAvBojtB,EAAgC,GAAKA,EAC7CH,EAAeE,EAAaF,aAC9B,OAAOjjtB,EAAM/yF,KAAI,SAAUutE,GACzB,MAAoB,oBAATA,EACFA,EAAKyouB,GAEPzouB,MAGXgB,EAAMs+M,QAAU,WACTt+M,EAAMknuB,SAIXlnuB,EAAM8kE,UAAS,SAAUytG,GAEvB,MAAO,CACLy0jB,WAFez0jB,EAAKy0jB,WAEK,OAK/BhnuB,EAAM6nuB,UAAY,KAClB7nuB,EAAM8nuB,iBAAmB,SAAUl7rB,GACjC,IAAIm7rB,EAAe/nuB,EAAM+qC,MAAMg9rB,aAC/B,GAAIA,EAAc,CAChB,IAAIz1tB,EAAO+zmB,EAAcA,EAAc,GAAIrmnB,EAAMkkjB,WAAY,GAAI,CAC/Dt3gB,QAASA,IAENqoB,GAAQj1D,EAAM6nuB,UAAWv1tB,IAC5By1tB,EAAaz1tB,GAEftS,EAAM6nuB,UAAYv1tB,OAElBtS,EAAM6nuB,UAAY,MAKtB7nuB,EAAMgouB,cAAgB,SAAUC,EAAW7B,EAAcjsxB,GACvD,IAAI+txB,EAAelouB,EAAM+qC,MACvBqB,EAAe87rB,EAAa97rB,aAC5B+7rB,EAAwBD,EAAa3jO,aACrCA,OAAyC,IAA1B4jO,EAAmC,GAAKA,EACvDnoD,EAAUkoD,EAAaloD,QACrBjusB,EAAQ53B,EAAK43B,MACb2yvB,EAAW1kuB,EAAMkmuB,cACjB9kiB,EAAYphM,EAAM72C,SAAS8+wB,GAC3B98P,EAAWnre,EAAM72C,SAAS4oB,GAC1Bq2vB,EAAgBhC,GAAgBE,GAAiBF,EAAc1B,GAUnE,OARkB,gBAAdvqxB,EAAKjL,MAA0C,aAAhBiL,EAAK++F,QAAyBkoJ,IAAc+pS,IAC7Enre,EAAMi9qB,SAAU,EAChBj9qB,EAAM+irB,OAAQ,EACd/irB,EAAMmnuB,gBAAkB,KACxBnnuB,EAAMwtJ,OAASq5kB,GACf7muB,EAAMmhb,SAAW0lT,GACjB7muB,EAAM8nuB,oBAEA3txB,EAAKjL,MACX,IAAK,QACH,IAAKk3xB,GAAgBgC,EAUnB,OARApouB,EAAMi9qB,SAAU,EAChBj9qB,EAAM+irB,OAAQ,EACd/irB,EAAMmnuB,qBAAkBxjyB,EACxBq8D,EAAMwtJ,OAASq5kB,GACf7muB,EAAMmhb,SAAW0lT,GACjB7muB,EAAM8nuB,mBACM,OAAZ9nD,QAAgC,IAAZA,GAA8BA,SAClDhgrB,EAAMs+M,UAGR,MAOF,IAAK,SAED,GAAIlyK,EAEF,YADApsC,EAAM+sC,WAGR,MAEJ,IAAK,WAED,GAAIq7rB,EAAe,CACjB,IAAIhvyB,EAAO+gB,EAAK/gB,KAgBhB,MAfI,YAAaA,IACf4mE,EAAMi9qB,QAAU7jvB,EAAK6jvB,SAEnB,eAAgB7jvB,KAAU,kBAAmBA,KAC/C4mE,EAAMmnuB,gBAAkB/tyB,EAAKivyB,WAAa3+vB,QAAQ/tC,QAAQ,IAAM,MAE9D,WAAYvC,IACd4mE,EAAMwtJ,OAASp0N,EAAKo0N,QAAUq5kB,IAE5B,aAAcztyB,IAChB4mE,EAAMmhb,SAAW/nf,EAAK+nf,UAAY0lT,IAEpC7muB,EAAM+irB,OAAQ,EACd/irB,EAAM8nuB,wBACN9nuB,EAAM+sC,WAIR,GAAIX,IAAiBs4rB,EAAS74yB,QAAUi7yB,GAAc16rB,EAAc67rB,EAAWl2vB,EAAOqvN,EAAW+pS,EAAUhxhB,GAEzG,YADA6lD,EAAM+sC,WAGR,MAEJ,IAAK,qBASD,GAJqBw3d,EAAa9ykB,IAAIy0yB,IAInBp4xB,MAAK,SAAU6+F,GAChC,OAAO25rB,GAAiBnsxB,EAAKmuxB,cAAe37rB,MAG5C,YADA3sC,EAAM+sC,WAGR,MAEJ,QAWE,GAAIq7rB,KAAmB7jO,EAAa14kB,QAAU64yB,EAAS74yB,QAAUugH,IAAiB06rB,GAAc16rB,EAAc67rB,EAAWl2vB,EAAOqvN,EAAW+pS,EAAUhxhB,GAEnJ,YADA6lD,EAAM+sC,YAKS,IAAjBX,GACFpsC,EAAM+sC,YAGV/sC,EAAMykuB,cAAgB,SAAU9+xB,GAE9B,IAAI++xB,EAAW1kuB,EAAMkmuB,cACjBjguB,EAAejG,EAAM72C,WACrBuqN,EAAQ/tO,GAAW,GACrB4iyB,EAAc70jB,EAAM60jB,YACpBC,EAAqB90jB,EAAM+0jB,aAC3BA,OAAsC,IAAvBD,GAAwCA,EAErDE,EAAch/vB,QAAQ/tC,UAAUouC,MAAK,WACvC,IAAKi2B,EAAMknuB,QACT,MAAO,GAET,IAAIyB,EAAe3ouB,EAAM+qC,MACvB69rB,EAAwBD,EAAahE,cACrCA,OAA0C,IAA1BiE,GAA2CA,EAC3D7E,EAAmB4E,EAAa5E,iBAC9B8E,EAAgB7ouB,EAAM6oF,WACtB0/oB,IACFM,EAAgBA,EAAc13yB,QAAO,SAAU6tE,GAC7C,OAAOA,KACN7tE,QAAO,SAAU6tE,GAClB,IAAI8puB,EAAkB9puB,EAAK8puB,gBAC3B,OAAKA,GAGazjlB,GAAQyjlB,GACPzhrB,SAASkhrB,OAGhC,IAAIxsyB,EAAU0oyB,GAAcC,EAAUz+tB,EAAc4iuB,EAAeljyB,EAASg/xB,EAAeZ,GA2B3F,OA1BAhoyB,EAAQivC,OAAM,SAAUj/C,GACtB,OAAOA,KACNg+C,MAAK,WACN,IAAIg/vB,EAAaz1yB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAKuzyB,GACrF,GAAI7muB,EAAMmnuB,kBAAoBuB,EAAa,CACzC,IAAIM,EACJhpuB,EAAMmnuB,gBAAkB,KAExB,IAAI8B,EAAa,GACbC,EAAe,GAC4B,QAA9CF,EAAsBD,EAAWv9yB,eAA6C,IAAxBw9yB,GAA0CA,EAAoBh9yB,KAAK+8yB,GAAY,SAAU50jB,GAC9I,IAAI8wjB,EAAc9wjB,EAAMn1K,KAAKimuB,YAC3BkE,EAAeh1jB,EAAM3mB,OACrBA,OAA0B,IAAjB27kB,EAA0BtC,GAAesC,EAChDlE,EACFiE,EAAa/8yB,KAAKolB,MAAM23xB,GAAc9sM,EAAAA,EAAAA,GAAmB5uY,IAEzDy7kB,EAAW98yB,KAAKolB,MAAM03xB,GAAY7sM,EAAAA,EAAAA,GAAmB5uY,OAGzDxtJ,EAAMwtJ,OAASy7kB,EACfjpuB,EAAMmhb,SAAW+nT,EACjBlpuB,EAAM8nuB,mBACN9nuB,EAAM+sC,eAGHhxG,KAET,OAAI0syB,IAGJzouB,EAAMmnuB,gBAAkBuB,EACxB1ouB,EAAM+irB,OAAQ,EACd/irB,EAAMwtJ,OAASq5kB,GACf7muB,EAAMmhb,SAAW0lT,GACjB7muB,EAAM8nuB,mBAEN9nuB,EAAM+sC,YARG27rB,GAWX1ouB,EAAM0+tB,kBAAoB,WACxB,QAAS1+tB,EAAMmnuB,iBAEjBnnuB,EAAMy+tB,eAAiB,WACrB,OAAOz+tB,EAAMi9qB,SAEfj9qB,EAAMopuB,aAAe,WAEnB,SAAIppuB,EAAM+irB,YAAsCp/uB,IAA7Bq8D,EAAM+qC,MAAMymB,oBAOc7tH,KAAzC+7xB,EAHe1/tB,EAAM+qC,MAAM08rB,aACUzI,iBAAiBf,IAChByB,iBACtB1/tB,EAAMkmuB,gBAK5BlmuB,EAAMqpuB,UAAY,WAChB,OAAOrpuB,EAAMwtJ,QAEfxtJ,EAAMspuB,YAAc,WAClB,OAAOtpuB,EAAMmhb,UAEfnhb,EAAMsnuB,YAAc,WAClB,OAAOtnuB,EAAM+qC,MAAMu8rB,aAErBtnuB,EAAM9mE,OAAS,WACb,OAAO8mE,EAAM+qC,MAAM7xG,QAErB8mE,EAAMupuB,WAAa,WACjB,OAAOvpuB,EAAM+qC,MAAMuyV,UAGrBt9X,EAAMkkjB,QAAU,WAWd,OATAlkjB,EAAMonuB,eAAiBpnuB,EAAM0+tB,oBAClB,CACTzhD,QAASj9qB,EAAMy+tB,iBACf4J,WAAYrouB,EAAMonuB,eAClB55kB,OAAQxtJ,EAAMwtJ,OACd2zR,SAAUnhb,EAAMmhb,SAChBpof,KAAMinE,EAAMkmuB,cACZ50W,UAAqC,OAA1BtxX,EAAMmnuB,kBAKrBnnuB,EAAMwpuB,aAAe,SAAUlzyB,GAE7B,GAAwB,oBAAbA,EAAyB,CAClC,IAAIg8E,EAAOtS,EAAMkkjB,UACjB,OAAOmiE,EAAcA,EAAc,GAAIrmnB,EAAMwpuB,aAAalzyB,EAAS0pE,EAAMypuB,gBAAiBn3tB,EAAMtS,EAAM+qC,MAAM08rB,gBAAiB,GAAI,CAC/HhhuB,YAAY,IAIhB,IAAIksP,EAAY+2e,GAAgBpzyB,GAChC,OAAyB,IAArBq8T,EAAU9mU,QAA+BqimB,GAAAA,eAAqBv7R,EAAU,IAMrE,CACLtoT,MAAOsoT,EAAU,GACjBlsP,YAAY,GAPL,CACLp8D,MAAOsoT,EACPlsP,YAAY,IASlBzG,EAAM72C,SAAW,SAAU4oB,GACzB,IAAIqsvB,EAAiBp+tB,EAAM+qC,MAAM08rB,aAAarJ,eAC1CsG,EAAW1kuB,EAAMkmuB,cACrB,OAAO/8wB,GAAS4oB,GAASqsvB,GAAe,GAAOsG,IAEjD1kuB,EAAMypuB,cAAgB,WACpB,IAAInS,EAAahkyB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GACjFq2yB,EAAe3puB,EAAM+qC,MACvB51G,EAAUw0yB,EAAax0yB,QACvB2zyB,EAAkBa,EAAab,gBAC/Bc,EAAoBD,EAAaC,kBACjCvpkB,EAAYspkB,EAAatpkB,UACzBsmkB,EAAgBgD,EAAahD,cAC7BkD,EAAgBF,EAAaE,cAC7BpC,EAAekC,EAAalC,aAC1BqC,OAA4CnmyB,IAApBmlyB,EAAgCA,EAAkBrB,EAAaqB,gBACvFpE,EAAW1kuB,EAAMkmuB,cACjBlH,EAAmByI,EAAazI,iBAClCZ,EAAiBqJ,EAAarJ,eAC5B2L,EAAoB/K,EAAiBf,IACvCp9P,EAAWkpQ,EAAkBlpQ,SAC3B1ziB,EAAQ6yE,EAAM72C,WACd6gxB,EAAsBH,GAAiB,SAAUv6xB,GACnD,OAAO81D,EAAAA,EAAAA,GAAgB,GAAIuhuB,EAAer3xB,IAGxC26xB,EAAoB3S,EAAWniyB,GAC/BgR,EAAUkgrB,EAAcA,EAAc,GAAIixG,GAAa0S,EAAoB78yB,IAE/EgZ,EAAQhR,GAAW,WAKjB,IAAI2c,EAHJkuD,EAAMi9qB,SAAU,EAChBj9qB,EAAM+irB,OAAQ,EACd/irB,EAAM8nuB,mBAEN,IAAK,IAAIxkkB,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAGvBzxN,EADE83xB,EACSA,EAAkBr4xB,WAAM,EAAQQ,GAEhC20xB,GAAyBn1xB,WAAM,EAAQ,CAACo1xB,GAAex/wB,OAAOpV,IAEvEsuN,IACFvuN,EAAWuuN,EAAUvuN,EAAU3kB,EAAOixyB,GAAe,KAEvDv9P,EAAS,CACP3xhB,KAAM,cACNw1xB,SAAUA,EACVv3yB,MAAO2kB,IAELm4xB,GACFA,EAAkB14xB,WAAM,EAAQQ,IAIpC,IAAIm4xB,EAAsB7klB,GAAQyklB,GAAyB,IAqB3D,OApBAI,EAAoB1+yB,SAAQ,SAAU+8yB,GAEpC,IAAI4B,EAAgBhkyB,EAAQoiyB,GAC5BpiyB,EAAQoiyB,GAAe,WACjB4B,GACFA,EAAc54xB,WAAM,EAAQje,WAG9B,IAAIkxF,EAAQxkB,EAAM+qC,MAAMvmB,MACpBA,GAASA,EAAM34F,QAGjBg1iB,EAAS,CACP3xhB,KAAM,gBACNw1xB,SAAUA,EACV6D,YAAaA,QAKdpiyB,GAEL4kG,EAAM08rB,gBAIRxI,GAFyBD,EADFj0rB,EAAM08rB,aAAazI,kBACAf,IACHgB,kBACvBxlM,EAAAA,EAAAA,GAAuBz5hB,IAEzC,OAAOA,EAyDT,OAvDAg6hB,EAAAA,EAAAA,GAAa+sM,EAAO,CAAC,CACnBx0yB,IAAK,oBACLpF,MAAO,WACL,IAAIi9yB,EAAe7+yB,KAAKw/G,MACtBqB,EAAeg+rB,EAAah+rB,aAC5Bq7rB,EAAe2C,EAAa3C,aAG9B,GAFAl8yB,KAAK27yB,SAAU,EAEXO,EAAc,CAChB,IAEEpnD,GADuB2+C,EADFyI,EAAazI,kBACMf,IACL59C,cACrC90vB,KAAK07yB,mBAAqB5mD,EAAc90vB,OAGrB,IAAjB6gH,GACF7gH,KAAKwhH,aAGR,CACDx6G,IAAK,uBACLpF,MAAO,WACL5B,KAAK87yB,iBACL97yB,KAAKu8yB,kBAAiB,GACtBv8yB,KAAK27yB,SAAU,IAEhB,CACD30yB,IAAK,WACLpF,MAAO,WACA5B,KAAK27yB,SACV37yB,KAAK2/c,gBAEN,CACD34c,IAAK,SACLpF,MAAO,WACL,IAMIk9yB,EANArD,EAAaz7yB,KAAKm3F,MAAMsktB,WACxB1wyB,EAAW/K,KAAKw/G,MAAMz0G,SACtBg0yB,EAAqB/+yB,KAAKi+yB,aAAalzyB,GACzC+T,EAAQigyB,EAAmBjgyB,MAY7B,OAXeigyB,EAAmB7juB,WAIhC4juB,EAAkBhgyB,EACK6jlB,GAAAA,eAAqB7jlB,GAC5CggyB,EAA+Bn8M,GAAAA,aAAmB7jlB,EAAO9e,KAAKk+yB,cAAcp/xB,EAAM0gG,SAElF5gD,IAAS9/C,EAAO,qDAChBggyB,EAAkBhgyB,GAEA6jlB,GAAAA,cAAoBA,GAAAA,SAAgB,CACtD37lB,IAAKy0yB,GACJqD,OAGAtD,EA1egB,CA2evB74M,GAAAA,WACF64M,GAAMrpR,YAAc6sR,GACpBxD,GAAMtue,aAAe,CACnBtjU,QAAS,WACTwxyB,cAAe,SAyBjB,OAvBA,SAAsBxigB,GACpB,IAAIprS,EAAOorS,EAAMprS,KACfkiU,EAAYm0Y,GAAyBjra,EAAOtkB,IAC1C4nhB,EAAev5M,GAAAA,WAAiBq8M,IAChCC,EAAct8M,GAAAA,WAAiBu8M,IAC/B/F,OAAoB/gyB,IAAT5K,EAAqBmtyB,GAAYntyB,QAAQ4K,EACpDpR,EAAM,OASV,OARK0oU,EAAUqse,cACb/0yB,EAAM,IAAI40B,QAAQu9wB,GAAY,IAAIloyB,KAAK,OAOrB0xlB,GAAAA,cAAoB64M,IAAOvjlB,EAAAA,GAAAA,GAAS,CACtDjxN,IAAKA,EACLwG,KAAM2ryB,EACN4C,cAAekD,GACdvve,EAAW,CACZwse,aAAcA,MCpZlB,OAvIA,SAAcl1jB,GACZ,IAAIx5O,EAAOw5O,EAAKx5O,KACdy4H,EAAe+gH,EAAK/gH,aACpBl7H,EAAWi8O,EAAKj8O,SAChBkuF,EAAQ+tJ,EAAK/tJ,MACbsktB,EAAkBv2jB,EAAKu2jB,gBACvBxB,EAAc/0jB,EAAK+0jB,YACjBphyB,EAAUgolB,GAAAA,WAAiBq8M,IAC3BG,EAAqBx8M,GAAAA,WAAiBu8M,IAKtCE,EAJSz8M,GAAAA,OAAa,CACxB57lB,KAAM,GACNkD,GAAI,IAEkBq0O,QACpB69jB,EAAax5M,GAAAA,SAAc,WAC7B,IAAI08M,EAAmB1E,GAAYhgyB,EAAQwhyB,aAAe,GAC1D,MAAO,GAAGvgxB,QAAOi1kB,EAAAA,EAAAA,GAAmBwuM,IAAmBxuM,EAAAA,EAAAA,GAAmB8pM,GAAYntyB,OACrF,CAACmN,EAAQwhyB,WAAY3uyB,IACpB0uyB,EAAev5M,GAAAA,SAAc,WAC/B,OAAOm4F,EAAcA,EAAc,GAAIngrB,GAAU,GAAI,CACnDwhyB,WAAYA,MAEb,CAACxhyB,EAASwhyB,IAET8C,EAAct8M,GAAAA,SAAc,WAC9B,MAAO,CACLj3a,OAAQ,SAAgBytnB,GACtB,IAAI3hwB,EAAM2kwB,EAAW77yB,OACjBg/yB,EAAWnG,EAAS3hwB,GACxB,MAAO,CAAC4nwB,EAAWr4yB,KAAKu4yB,GAAWnG,EAAS1zyB,MAAM+xC,EAAM,QAG3D,CAAC2kwB,IAEJ,MAAwB,oBAAbpxyB,GACT6zD,IAAQ,EAAO,gDACR,MASW+jiB,GAAAA,cAAoBu8M,GAAAA,SAAsB,CAC5Dt9yB,MAAOq9yB,GACOt8M,GAAAA,cAAoBq8M,GAAa/9rB,SAAU,CACzDr/G,MAAOs6yB,GACOv5M,GAAAA,cAAoB64M,GAAO,CACzChuyB,KAAM,GACNqzG,aAbiB,SAAsBg1J,EAAWigR,EAAW3tS,GAE7D,MAAe,aADFA,EAAMx6H,QAIZkoJ,IAAcigR,GASrB78b,MAAOA,EACPsktB,gBAAiBA,EACjBt3qB,aAAcA,EACdt4H,QAAQ,EACRouyB,YAA6B,OAAhBA,QAAwC,IAAhBA,EAAyBA,IAAgBoD,IAC7E,SAAUv2jB,EAAO7hK,GAClB,IAAIw4tB,EAAc32jB,EAAMhnP,MACtBA,OAAwB,IAAhB29yB,EAAyB,GAAKA,EACtC9hxB,EAAWmrN,EAAMnrN,SACfm1wB,EAAgBj4xB,EAAQi4xB,cACxB4M,EAAc,WAEhB,OADa5M,EAAcuJ,GAAc,KACxB,IAKfsD,EAAa,CACfn+yB,IAAK,SAAaizC,EAAc1zC,GAE9B,IAAI0lB,EAAWi5xB,IACX3+yB,GAAS,GAAKA,GAAS0lB,EAASjmB,QAClC8+yB,EAAWr4yB,KAAO,GAAG60B,QAAOi1kB,EAAAA,EAAAA,GAAmBuuM,EAAWr4yB,KAAKtB,MAAM,EAAG5E,IAAS,CAACu+yB,EAAWn1yB,KAAK4mmB,EAAAA,EAAAA,GAAmBuuM,EAAWr4yB,KAAKtB,MAAM5E,KAC3I48B,EAAS,GAAG7B,QAAOi1kB,EAAAA,EAAAA,GAAmBtqlB,EAAS9gB,MAAM,EAAG5E,IAAS,CAAC0zC,IAAes8jB,EAAAA,EAAAA,GAAmBtqlB,EAAS9gB,MAAM5E,QAKnHu+yB,EAAWr4yB,KAAO,GAAG60B,QAAOi1kB,EAAAA,EAAAA,GAAmBuuM,EAAWr4yB,MAAO,CAACq4yB,EAAWn1yB,KAC7EwzB,EAAS,GAAG7B,QAAOi1kB,EAAAA,EAAAA,GAAmBtqlB,GAAW,CAACguB,MAEpD6qwB,EAAWn1yB,IAAM,GAEnBzI,OAAQ,SAAgBX,GACtB,IAAI0lB,EAAWi5xB,IACXE,EAAW,IAAI/6rB,IAAIp/G,MAAMi2E,QAAQ36E,GAASA,EAAQ,CAACA,IACnD6+yB,EAASlnyB,MAAQ,IAGrB4myB,EAAWr4yB,KAAOq4yB,EAAWr4yB,KAAKnB,QAAO,SAAU8U,EAAGilyB,GACpD,OAAQD,EAAS7lxB,IAAI8lxB,MAGvBlixB,EAASlX,EAAS3gB,QAAO,SAAU8U,EAAGk4J,GACpC,OAAQ8soB,EAAS7lxB,IAAI+4I,SAGzB32H,KAAM,SAAc9yC,EAAM63D,GACxB,GAAI73D,IAAS63D,EAAb,CAGA,IAAIz6C,EAAWi5xB,IAEXr2yB,EAAO,GAAKA,GAAQod,EAASjmB,QAAU0gE,EAAK,GAAKA,GAAMz6C,EAASjmB,SAGpE8+yB,EAAWr4yB,KAAO0qE,GAAM2tuB,EAAWr4yB,KAAMoC,EAAM63D,GAE/CvjC,EAASg0C,GAAMlrD,EAAUpd,EAAM63D,QAG/B4+uB,EAAYh+yB,GAAS,GAOzB,OANK2D,MAAMi2E,QAAQokuB,KACjBA,EAAY,IAKP70yB,EAAS60yB,EAAU15yB,KAAI,SAAU81I,EAAIn7I,GAC1C,IAAImG,EAAMo4yB,EAAWr4yB,KAAKlG,GAM1B,YALYuX,IAARpR,IACFo4yB,EAAWr4yB,KAAKlG,GAASu+yB,EAAWn1yB,GACpCjD,EAAMo4yB,EAAWr4yB,KAAKlG,GACtBu+yB,EAAWn1yB,IAAM,GAEZ,CACLuD,KAAM3M,EACNmG,IAAKA,EACL+0yB,aAAa,MAEb0D,EAAY14tB,SCvIpB,IAAI84tB,GAAQ,mBAIZ,SAAS/qkB,GAAUqkkB,GACjB,OAAOA,EAASjzyB,KAAI,SAAUslL,GAC5B,MAAO,GAAG5vJ,QAAOsukB,EAAAA,GAAAA,GAAQ1+a,GAAO,KAAK5vJ,OAAO4vJ,MAG7Cv6K,KAAK4uyB,IAKR,IAAIC,GAAuB,WACzB,SAASA,KACP1xM,EAAAA,EAAAA,GAAgBpumB,KAAM8/yB,GACtB9/yB,KAAK+/yB,IAAM,IAAIvojB,IA8DjB,OA5DAi3W,EAAAA,EAAAA,GAAaqxM,EAAS,CAAC,CACrB94yB,IAAK,MACLpF,MAAO,SAAaoF,EAAKpF,GACvB5B,KAAK+/yB,IAAI/6uB,IAAI8vK,GAAU9tO,GAAMpF,KAE9B,CACDoF,IAAK,MACLpF,MAAO,SAAaoF,GAClB,OAAOhH,KAAK+/yB,IAAIlgyB,IAAIi1N,GAAU9tO,MAE/B,CACDA,IAAK,SACLpF,MAAO,SAAgBoF,EAAKi0kB,GAC1B,IACI38hB,EAAO28hB,EADEj7kB,KAAK6f,IAAI7Y,IAEjBs3C,EAGHt+C,KAAKglE,IAAIh+D,EAAKs3C,GAFdt+C,KAAK4tP,OAAO5mP,KAKf,CACDA,IAAK,SACLpF,MAAO,SAAiBoF,GACtBhH,KAAK+/yB,IAAInyjB,OAAO9Y,GAAU9tO,MAG3B,CACDA,IAAK,MACLpF,MAAO,SAAa4sD,GAClB,OAAOqijB,EAAAA,EAAAA,GAAmB7wmB,KAAK+/yB,IAAIj7rB,WAAW5+G,KAAI,SAAU8gP,GAC1D,IAAImB,GAAQkoX,EAAAA,EAAAA,GAAerpX,EAAM,GAC/BhgP,EAAMmhP,EAAM,GACZvmP,EAAQumP,EAAM,GACZ59D,EAAQvjL,EAAIyG,MAAMoyyB,IACtB,OAAOrxvB,EAAS,CACdxnD,IAAKujL,EAAMrkL,KAAI,SAAUslL,GACvB,IAAIw0nB,EAAcx0nB,EAAK7pK,MAAM,kBAC3Bs+xB,GAAe5vM,EAAAA,EAAAA,GAAe2vM,EAAa,GAC3Cr8xB,EAAOs8xB,EAAa,GACpBzuyB,EAAOyuyB,EAAa,GACtB,MAAgB,WAATt8xB,EAAoB8rC,OAAOj+C,GAAQA,KAE5C5P,MAAOA,SAIZ,CACDoF,IAAK,SACLpF,MAAO,WACL,IAAIw9C,EAAO,GAOX,OANAp/C,KAAKkG,KAAI,SAAU0iP,GACjB,IAAI5hP,EAAM4hP,EAAM5hP,IACdpF,EAAQgnP,EAAMhnP,MAEhB,OADAw9C,EAAKp4C,EAAIiK,KAAK,MAAQrP,EACf,QAEFw9C,MAGJ0gwB,EAjEkB,GAmE3B,MC/EIxrhB,GAAY,CAAC,QASN4rhB,IAAyBzxM,EAAAA,EAAAA,IAAa,SAASyxM,EAAUC,GAClE,IAAI1ruB,EAAQz0E,MACZoumB,EAAAA,EAAAA,GAAgBpumB,KAAMkgzB,GACtBlgzB,KAAKogzB,YAAa,EAClBpgzB,KAAKmgzB,qBAAkB,EACvBngzB,KAAKqgzB,cAAe,EACpBrgzB,KAAKwmD,MAAQ,GACbxmD,KAAKsgzB,cAAgB,GACrBtgzB,KAAK0yvB,cAAgB,GACrB1yvB,KAAK0wB,UAAY,GACjB1wB,KAAKm6tB,iBAAmB,KACxBn6tB,KAAK+xc,SAAW,KAChB/xc,KAAKugzB,oBAAsB,KAC3BvgzB,KAAKwgzB,QAAU,WACb,MAAO,CACL5N,cAAen+tB,EAAMm+tB,cACrBC,eAAgBp+tB,EAAMo+tB,eACtBC,cAAer+tB,EAAMq+tB,cACrBC,gBAAiBt+tB,EAAMs+tB,gBACvBC,eAAgBv+tB,EAAMu+tB,eACtBC,gBAAiBx+tB,EAAMw+tB,gBACvBC,eAAgBz+tB,EAAMy+tB,eACtBC,kBAAmB1+tB,EAAM0+tB,kBACzBC,mBAAoB3+tB,EAAM2+tB,mBAC1BC,YAAa5+tB,EAAM4+tB,YACnBC,UAAW7+tB,EAAM6+tB,UACjBh+C,cAAe7grB,EAAM6grB,cACrBi+C,eAAgB9+tB,EAAM8+tB,eACtBC,eAAgB/+tB,EAAM++tB,eACtBroQ,OAAQ12d,EAAM02d,OACd34d,OAAO,EACPihuB,iBAAkBh/tB,EAAMg/tB,mBAI5BzzyB,KAAKyzyB,iBAAmB,SAAUzsyB,GAChC,OAAIA,IAAQ0ryB,IACVj+tB,EAAM2ruB,YAAa,EACZ,CACL9qQ,SAAU7ge,EAAM6ge,SAChBo+P,gBAAiBj/tB,EAAMi/tB,gBACvB5+C,cAAergrB,EAAMqgrB,cACrB6+C,aAAcl/tB,EAAMk/tB,aACpBC,iBAAkBn/tB,EAAMm/tB,iBACxBC,YAAap/tB,EAAMo/tB,YACnBC,aAAcr/tB,EAAMq/tB,aACpBG,oBAAqBx/tB,EAAMw/tB,oBAC3BD,UAAWv/tB,EAAMu/tB,UACjBE,YAAaz/tB,EAAMy/tB,YACnBC,gBAAiB1/tB,EAAM0/tB,gBACvBJ,cAAet/tB,EAAMs/tB,iBAGzBn1uB,IAAQ,EAAO,mEACR,OAET5+D,KAAK2zyB,aAAe,SAAU0M,GAC5B5ruB,EAAM4ruB,aAAeA,GAMvBrgzB,KAAKygzB,qBAAuB,KAI5BzgzB,KAAK4zyB,iBAAmB,SAAUlhD,EAAen5uB,GAE/C,GADAk7D,EAAMi+qB,cAAgBA,GAAiB,GACnCn5uB,EAAM,CACR,IAAImnyB,EACAC,EAAY1jpB,GAAMy1lB,EAAej+qB,EAAMjuB,OAIc,QAAxDk6vB,EAAwBjsuB,EAAMgsuB,4BAA4D,IAA1BC,GAA4CA,EAAsBx6yB,KAAI,SAAU8gP,GAC/I,IAAImyjB,EAAWnyjB,EAAKhgP,IACpB25yB,EAAYp5xB,GAASo5xB,EAAWxH,EAAUv7wB,GAAS80tB,EAAeymD,OAEpE1kuB,EAAMgsuB,qBAAuB,KAC7BhsuB,EAAMmsuB,YAAYD,KAGtB3gzB,KAAK6zyB,YAAc,WACjB,IAAI4M,EAAuB,IAAIX,GAC/BrruB,EAAMosuB,kBAAiB,GAAM5gzB,SAAQ,SAAUqrE,GACxCmJ,EAAMqsuB,iBAAiBx1uB,EAAO0yuB,eACjCyC,EAAqBz7uB,IAAIsG,EAAOqvuB,eAAe,MAGnDlmuB,EAAMgsuB,qBAAuBA,GAE/BzgzB,KAAKm0yB,gBAAkB,SAAUgF,GAC/B,IAAI4H,EAAYnjxB,GAAS62C,EAAMi+qB,cAAeymD,GAE9C,OAAOA,EAAS74yB,OAAS28J,GAAM8jpB,GAAaA,GAE9C/gzB,KAAK8zyB,aAAe,SAAUpjxB,GAC5B+jD,EAAM/jD,UAAYA,GAEpB1wB,KAAKi0yB,oBAAsB,SAAU95E,GACnC1lpB,EAAM0lpB,iBAAmBA,GAE3Bn6tB,KAAKk0yB,YAAc,SAAUniW,GAC3Bt9X,EAAMs9X,SAAWA,GAGnB/xc,KAAKghzB,UAAY,GACjBhhzB,KAAK+zyB,cAAgB,SAAUvlvB,GAE7B,OADAimB,EAAMusuB,UAAUpgzB,KAAK4tD,GACd,WACLimB,EAAMusuB,UAAYvsuB,EAAMusuB,UAAUp7yB,QAAO,SAAUg0B,GACjD,OAAOA,IAAO40B,OAIpBxuD,KAAKihzB,YAAc,WACjB,IAAI9H,EAAWpxyB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAEnF,GAAI0sE,EAAMusuB,UAAU1gzB,OAAQ,CAC1B,IAAIsZ,EAAS66D,EAAMo+tB,iBACfqO,EAAYzsuB,EAAMo+tB,gBAAe,GACrCp+tB,EAAMusuB,UAAU/gzB,SAAQ,SAAUuuD,GAChCA,EAAS50C,EAAQsnyB,EAAW/H,QAKlCn5yB,KAAKopM,UAAY,KACjBppM,KAAKmhzB,gBAAkB,WACjB9stB,GAUNr0F,KAAK4gzB,YAAc,SAAUD,GAC3BlsuB,EAAMjuB,MAAQm6vB,GAOhB3gzB,KAAK6gzB,iBAAmB,WACtB,IAAI5vP,EAAOlpjB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAC1E,OAAKkpjB,EAGEx8e,EAAM6ruB,cAAc16yB,QAAO,SAAU2+B,GAC1C,OAAOA,EAAMo2wB,cAAcr6yB,UAHpBm0E,EAAM6ruB,eAMjBtgzB,KAAKohzB,aAAe,WAClB,IAAInwP,EAAOlpjB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GACtE43C,EAAQ,IAAImgwB,GAKhB,OAJArruB,EAAMosuB,iBAAiB5vP,GAAMhxjB,SAAQ,SAAUskC,GAC7C,IAAI40wB,EAAW50wB,EAAMo2wB,cACrBh7vB,EAAMqlB,IAAIm0uB,EAAU50wB,MAEfob,GAET3/C,KAAKqhzB,gCAAkC,SAAUC,GAC/C,IAAKA,EACH,OAAO7suB,EAAMosuB,kBAAiB,GAEhC,IAAIlhwB,EAAQ80B,EAAM2suB,cAAa,GAC/B,OAAOE,EAASp7yB,KAAI,SAAUsH,GAC5B,IAAI2ryB,EAAWwB,GAAYntyB,GAC3B,OAAOmyC,EAAM9/B,IAAIs5xB,IAAa,CAC5BoI,qBAAsB5G,GAAYntyB,QAIxCxN,KAAK6yyB,eAAiB,SAAUyO,EAAUE,GAGxC,IAAIC,EACAC,EACAC,EAQJ,GAZAltuB,EAAM0suB,mBAKW,IAAbG,GAAqB/7yB,MAAMi2E,QAAQ8luB,IACrCG,EAAiBH,EACjBI,EAAmBF,GACVF,GAAkC,YAAtBp3M,EAAAA,GAAAA,GAAQo3M,KAC7BK,EAAeL,EAASpkuB,OACxBwkuB,EAAmBJ,EAAS17yB,SAEP,IAAnB67yB,IAA4BC,EAC9B,OAAOjtuB,EAAMjuB,MAEf,IAAI85vB,EAAgB7ruB,EAAM4suB,gCAAgC97yB,MAAMi2E,QAAQimuB,GAAkBA,EAAiB,MACvGG,EAAmB,GAuBvB,OAtBAtB,EAAcrgzB,SAAQ,SAAUqrE,GAC9B,IAAIu2uB,EAKEC,EAJF3I,EAAW,yBAA0B7tuB,EAASA,EAAOi2uB,qBAAuBj2uB,EAAOqvuB,cAGvF,GAAIgH,GAEF,GAAyC,QAApCG,EAAiBx2uB,EAAO39D,cAAuC,IAAnBm0yB,OAA4B,EAASA,EAAerhzB,KAAK6qE,GACxG,YAEG,IAAKm2uB,IAAkE,QAA9CI,EAAsBv2uB,EAAOywuB,mBAAiD,IAAxB8F,OAAiC,EAASA,EAAoBphzB,KAAK6qE,IACvJ,OAEF,GAAKo2uB,EAEE,CACL,IAAI36tB,EAAO,YAAazb,EAASA,EAAOqtjB,UAAY,KAChD+oL,EAAiB36tB,IACnB66tB,EAAiBhhzB,KAAKu4yB,QAJxByI,EAAiBhhzB,KAAKu4yB,MAQnByB,GAAoBnmuB,EAAMjuB,MAAOo7vB,EAAiB17yB,IAAIy0yB,MAE/D36yB,KAAK4yyB,cAAgB,SAAUplyB,GAC7BinE,EAAM0suB,kBACN,IAAIhI,EAAWwB,GAAYntyB,GAC3B,OAAOowB,GAAS62C,EAAMjuB,MAAO2yvB,IAE/Bn5yB,KAAKgzyB,eAAiB,SAAUsO,GAG9B,OAFA7suB,EAAM0suB,kBACc1suB,EAAM4suB,gCAAgCC,GACrCp7yB,KAAI,SAAUolE,EAAQzqE,GACzC,OAAIyqE,KAAY,yBAA0BA,GACjC,CACL99D,KAAM89D,EAAOqvuB,cACb14kB,OAAQ32J,EAAOwyuB,YACfloT,SAAUtqb,EAAOyyuB,eAGd,CACLvwyB,KAAMmtyB,GAAY2G,EAASzgzB,IAC3BohO,OAAQ,GACR2zR,SAAU,QAIhB51f,KAAK8yyB,cAAgB,SAAUtlyB,GAC7BinE,EAAM0suB,kBACN,IAAIhI,EAAWwB,GAAYntyB,GAE3B,OADiBinE,EAAMu+tB,eAAe,CAACmG,IAAW,GAChCl3kB,QAEpBjiO,KAAK+yyB,gBAAkB,SAAUvlyB,GAC/BinE,EAAM0suB,kBACN,IAAIhI,EAAWwB,GAAYntyB,GAE3B,OADiBinE,EAAMu+tB,eAAe,CAACmG,IAAW,GAChCvjT,UAEpB51f,KAAKizyB,gBAAkB,WACrBx+tB,EAAM0suB,kBACN,IAAK,IAAIppkB,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAEzB,IAEI6ikB,EAFAkH,EAAOv7xB,EAAK,GACdyvgB,EAAOzvgB,EAAK,GAEVw7xB,GAAqB,EACL,IAAhBx7xB,EAAKlmB,OACPu6yB,EAAe,KACU,IAAhBr0xB,EAAKlmB,OACViF,MAAMi2E,QAAQumuB,IAChBlH,EAAekH,EAAK77yB,IAAIy0yB,IACxBqH,GAAqB,IAErBnH,EAAe,KACfmH,EAAqBD,IAGvBlH,EAAekH,EAAK77yB,IAAIy0yB,IACxBqH,EAAqB/rR,GAEvB,IAAIqqR,EAAgB7ruB,EAAMosuB,kBAAiB,GACvC3N,EAAiB,SAAwB3uwB,GAC3C,OAAOA,EAAM2uwB,kBAGf,IAAK2H,EACH,OAAOmH,EAAqB1B,EAActqwB,MAAMk9vB,GAAkBoN,EAAc/9xB,KAAK2wxB,GAGvF,IAAIhtyB,EAAM,IAAI45yB,GACdjF,EAAa56yB,SAAQ,SAAUgizB,GAC7B/7yB,EAAI8+D,IAAIi9uB,EAAe,OAEzB3B,EAAcrgzB,SAAQ,SAAUskC,GAC9B,IAAI29wB,EAAgB39wB,EAAMo2wB,cAE1BE,EAAa56yB,SAAQ,SAAUgizB,GACzBA,EAAcjswB,OAAM,SAAUklwB,EAAUnvyB,GAC1C,OAAOm2yB,EAAcn2yB,KAAOmvyB,MAE5Bh1yB,EAAImY,OAAO4jyB,GAAe,SAAU/gvB,GAClC,MAAO,GAAGtlC,QAAOi1kB,EAAAA,EAAAA,GAAmB3viB,GAAO,CAAC38B,aAMpD,IAAI49wB,EAAwB,SAA+B53B,GACzD,OAAOA,EAAShowB,KAAK2wxB,IAEnBkP,EAAuBl8yB,EAAIA,KAAI,SAAUiiP,GAE3C,OADYA,EAAMvmP,SAGpB,OAAOogzB,EAAqBI,EAAqBpswB,MAAMmswB,GAAyBC,EAAqB7/xB,KAAK4/xB,IAE5GnizB,KAAKkzyB,eAAiB,SAAU1lyB,GAE9B,OADAinE,EAAM0suB,kBACC1suB,EAAMw+tB,gBAAgB,CAACzlyB,KAEhCxN,KAAKozyB,mBAAqB,SAAUkO,GAClC7suB,EAAM0suB,kBACN,IAAIb,EAAgB7ruB,EAAMosuB,mBAC1B,IAAKS,EACH,OAAOhB,EAAc/9xB,MAAK,SAAU8/xB,GAClC,OAAOA,EAAUlP,uBAGrB,IAAI0H,EAAeyG,EAASp7yB,IAAIy0yB,IAChC,OAAO2F,EAAc/9xB,MAAK,SAAU8/xB,GAClC,IAAIH,EAAgBG,EAAU1H,cAC9B,OAAOI,GAAiBF,EAAcqH,IAAkBG,EAAUlP,wBAGtEnzyB,KAAKmzyB,kBAAoB,SAAU3lyB,GAEjC,OADAinE,EAAM0suB,kBACC1suB,EAAM2+tB,mBAAmB,CAAC5lyB,KAMnCxN,KAAKsizB,2BAA6B,WAChC,IAAI1zxB,EAAO7mB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAE3E43C,EAAQ,IAAImgwB,GACZQ,EAAgB7ruB,EAAMosuB,kBAAiB,GAC3CP,EAAcrgzB,SAAQ,SAAUskC,GAC9B,IAAI0hG,EAAe1hG,EAAMi7E,MAAMymB,aAC3BkzqB,EAAW50wB,EAAMo2wB,cAErB,QAAqBviyB,IAAjB6tH,EAA4B,CAC9B,IAAIs8qB,EAAU5iwB,EAAM9/B,IAAIs5xB,IAAa,IAAIx0rB,IACzC49rB,EAAQjhzB,IAAI,CACVgqE,OAAQ/mC,EACR3iC,MAAOqkI,IAETtmF,EAAMqlB,IAAIm0uB,EAAUoJ,OAIxB,IAyBIC,EAzBAC,EAAkB,SAAyBl4B,GAC7CA,EAAStqxB,SAAQ,SAAUskC,GAEzB,QAAqBnsB,IADFmsB,EAAMi7E,MAAMymB,aACC,CAC9B,IAAIkzqB,EAAW50wB,EAAMo2wB,cAErB,QAAyBviyB,IADFq8D,EAAM0/tB,gBAAgBgF,GAG3Cv6uB,IAAQ,EAAO,+CAA+ChjC,OAAOu9wB,EAASloyB,KAAK,KAAM,uCACpF,CACL,IAAIsxyB,EAAU5iwB,EAAM9/B,IAAIs5xB,GACxB,GAAIoJ,GAAWA,EAAQ/pyB,KAAO,EAE5BomD,IAAQ,EAAO,6BAA6BhjC,OAAOu9wB,EAASloyB,KAAK,KAAM,iEAClE,GAAIsxyB,EAAS,CAClB,IAAI33G,EAAcn2nB,EAAMm+tB,cAAcuG,GAEjCvqxB,EAAK8zxB,gBAA6BtqyB,IAAhBwyrB,GACrBn2nB,EAAMmsuB,YAAYr5xB,GAASktD,EAAMjuB,MAAO2yvB,GAAUtoM,EAAAA,EAAAA,GAAmB0xM,GAAS,GAAG3gzB,eAQzFgtB,EAAK27vB,SACPi4B,EAAwB5zxB,EAAK27vB,SACpB37vB,EAAKisxB,cACd2H,EAAwB,GACxB5zxB,EAAKisxB,aAAa56yB,SAAQ,SAAUk5yB,GAClC,IAEMwJ,EAFFJ,EAAU5iwB,EAAM9/B,IAAIs5xB,GACpBoJ,IAEDI,EAAwBH,GAAuB5hzB,KAAKolB,MAAM28xB,GAAuB9xM,EAAAA,EAAAA,IAAmBA,EAAAA,EAAAA,GAAmB0xM,GAASr8yB,KAAI,SAAUqgE,GAC7I,OAAOA,EAAE+E,gBAKfk3uB,EAAwBlC,EAE1BmC,EAAgBD,IAElBxizB,KAAKqzyB,YAAc,SAAUiO,GAC3B7suB,EAAM0suB,kBACN,IAAIzE,EAAYjouB,EAAMjuB,MACtB,IAAK86vB,EAOH,OANA7suB,EAAMmsuB,YAAY3jpB,GAAMxoF,EAAMi+qB,gBAC9Bj+qB,EAAM6tuB,6BACN7tuB,EAAMmuuB,gBAAgBlG,EAAW,KAAM,CACrC/4xB,KAAM,eAER8wD,EAAMwsuB,cAIR,IAAIpG,EAAeyG,EAASp7yB,IAAIy0yB,IAChCE,EAAa56yB,SAAQ,SAAUk5yB,GAC7B,IAAIlzqB,EAAexxD,EAAM0/tB,gBAAgBgF,GACzC1kuB,EAAMmsuB,YAAYr5xB,GAASktD,EAAMjuB,MAAO2yvB,EAAUlzqB,OAEpDxxD,EAAM6tuB,2BAA2B,CAC/BzH,aAAcA,IAEhBpmuB,EAAMmuuB,gBAAgBlG,EAAW7B,EAAc,CAC7Cl3xB,KAAM,UAER8wD,EAAMwsuB,YAAYpG,IAEpB76yB,KAAKszyB,UAAY,SAAU7hxB,GACzBgjD,EAAM0suB,kBACN,IAAIzE,EAAYjouB,EAAMjuB,MAClBq0vB,EAAe,GACnBppxB,EAAOxxB,SAAQ,SAAU4izB,GACvB,IAAIr1yB,EAAOq1yB,EAAUr1yB,KACnBK,EAAOg2sB,GAAyBg/F,EAAWvuhB,IACzC6khB,EAAWwB,GAAYntyB,GAC3BqtyB,EAAaj6yB,KAAKu4yB,GAEd,UAAWtryB,GACb4mE,EAAMmsuB,YAAYr5xB,GAASktD,EAAMjuB,MAAO2yvB,EAAUtryB,EAAKjM,QAEzD6yE,EAAMmuuB,gBAAgBlG,EAAW,CAACvD,GAAW,CAC3Cx1xB,KAAM,WACN9V,KAAMg1yB,OAGVpuuB,EAAMwsuB,YAAYpG,IAEpB76yB,KAAKg0yB,UAAY,WAcf,OAbev/tB,EAAMosuB,kBAAiB,GAChB36yB,KAAI,SAAUq+B,GAClC,IAAI40wB,EAAW50wB,EAAMo2wB,cAEjBkI,EAAY/nH,EAAcA,EAAc,GADjCv2pB,EAAMo0lB,WACsC,GAAI,CACzDnrnB,KAAM2ryB,EACNv3yB,MAAO6yE,EAAMm+tB,cAAcuG,KAK7B,OAHAryyB,OAAOi+D,eAAe89uB,EAAW,gBAAiB,CAChDjhzB,OAAO,IAEFihzB,MAQX7izB,KAAK0zyB,gBAAkB,SAAUpouB,GAC/B,IAAI26D,EAAe36D,EAAOk0C,MAAMymB,aAChC,QAAqB7tH,IAAjB6tH,EAA4B,CAC9B,IAAIkzqB,EAAW7tuB,EAAOqvuB,mBAEJviyB,IADFwlB,GAAS62C,EAAMjuB,MAAO2yvB,IAEpC1kuB,EAAMmsuB,YAAYr5xB,GAASktD,EAAMjuB,MAAO2yvB,EAAUlzqB,MAIxDjmI,KAAK8gzB,iBAAmB,SAAUgC,GAChC,IAAIC,OAAmC3qyB,IAAlB0qyB,EAA8BA,EAAgBruuB,EAAMs9X,SACzE,OAA0B,OAAnBgxW,QAA8C,IAAnBA,GAA4BA,GAEhE/izB,KAAK80vB,cAAgB,SAAUxprB,GAC7BmJ,EAAM6ruB,cAAc1/yB,KAAK0qE,GACzB,IAAI6tuB,EAAW7tuB,EAAOqvuB,cAGtB,GAFAlmuB,EAAMwsuB,YAAY,CAAC9H,SAEe/gyB,IAA9BkzD,EAAOk0C,MAAMymB,aAA4B,CAC3C,IAAIy2qB,EAAYjouB,EAAMjuB,MACtBiuB,EAAM6tuB,2BAA2B,CAC/B/3B,SAAU,CAACj/sB,GACXo3uB,WAAW,IAEbjuuB,EAAMmuuB,gBAAgBlG,EAAW,CAACpxuB,EAAOqvuB,eAAgB,CACvDh3xB,KAAM,cACNgqG,OAAQ,aAIZ,OAAO,SAAUourB,EAAahqW,GAC5B,IAAIixW,EAAcj7yB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,GAKtF,GAJA0sE,EAAM6ruB,cAAgB7ruB,EAAM6ruB,cAAc16yB,QAAO,SAAU1F,GACzD,OAAOA,IAASorE,MAGbmJ,EAAMqsuB,iBAAiB/uW,MAAegqW,GAAeiH,EAAY1izB,OAAS,GAAI,CACjF,IAAIi0C,EAAewnwB,OAAc3jyB,EAAYq8D,EAAM0/tB,gBAAgBgF,GACnE,GAAIA,EAAS74yB,QAAUm0E,EAAMm+tB,cAAcuG,KAAc5kwB,GAAgBkgC,EAAM6ruB,cAActqwB,OAAM,SAAUzR,GAC3G,OAEGy2wB,GAAcz2wB,EAAMo2wB,cAAexB,MAEpC,CACF,IAAI8J,EAAaxuuB,EAAMjuB,MACvBiuB,EAAMmsuB,YAAYr5xB,GAAS07xB,EAAY9J,EAAU5kwB,GAAc,IAE/DkgC,EAAMmuuB,gBAAgBK,EAAY,CAAC9J,GAAW,CAC5Cx1xB,KAAM,WAGR8wD,EAAMyuuB,0BAA0BD,EAAY9J,IAGhD1kuB,EAAMwsuB,YAAY,CAAC9H,MAGvBn5yB,KAAKs1iB,SAAW,SAAU70hB,GACxB,OAAQA,EAAOkD,MACb,IAAK,cAED,IAAIw1xB,EAAW14xB,EAAO04xB,SACpBv3yB,EAAQ6e,EAAO7e,MACjB6yE,EAAM3wD,YAAYq1xB,EAAUv3yB,GAC5B,MAEJ,IAAK,gBAED,IAAIuhzB,EAAY1iyB,EAAO04xB,SACrB6D,EAAcv8xB,EAAOu8xB,YACvBvouB,EAAM++tB,eAAe,CAAC2P,GAAY,CAChCnG,YAAaA,MAQvBh9yB,KAAK4izB,gBAAkB,SAAUlG,EAAW7B,EAAcjsxB,GACxD,GAAI6lD,EAAM4ruB,aAAc,CACtB,IAAI+C,EAAatoH,EAAcA,EAAc,GAAIlsqB,GAAO,GAAI,CAC1D43B,MAAOiuB,EAAMo+tB,gBAAe,KAE9Bp+tB,EAAMosuB,mBAAmB5gzB,SAAQ,SAAU2oP,IAEzC6zjB,EADoB7zjB,EAAM6zjB,eACZC,EAAW7B,EAAcuI,WAGzC3uuB,EAAM0ruB,mBAOVngzB,KAAKkjzB,0BAA4B,SAAUxG,EAAWvD,GACpD,IAAIkK,EAAiB5uuB,EAAM6uuB,4BAA4BnK,GAQvD,OAPIkK,EAAe/izB,QACjBm0E,EAAM++tB,eAAe6P,GAEvB5uuB,EAAMmuuB,gBAAgBlG,EAAW2G,EAAgB,CAC/C1/xB,KAAM,qBACNo5xB,cAAe,CAAC5D,GAAUv9wB,QAAOi1kB,EAAAA,EAAAA,GAAmBwyM,MAE/CA,GAETrjzB,KAAK8jB,YAAc,SAAUtW,EAAM5L,GACjC,IAAIu3yB,EAAWwB,GAAYntyB,GACvBkvyB,EAAYjouB,EAAMjuB,MACtBiuB,EAAMmsuB,YAAYr5xB,GAASktD,EAAMjuB,MAAO2yvB,EAAUv3yB,IAClD6yE,EAAMmuuB,gBAAgBlG,EAAW,CAACvD,GAAW,CAC3Cx1xB,KAAM,cACNgqG,OAAQ,aAEVl5C,EAAMwsuB,YAAY,CAAC9H,IAEnB,IAAIkK,EAAiB5uuB,EAAMyuuB,0BAA0BxG,EAAWvD,GAE5DoK,EAAiB9uuB,EAAM/jD,UAAU6yxB,eACjCA,GAEFA,EADoB3I,GAAoBnmuB,EAAMjuB,MAAO,CAAC2yvB,IACxB1kuB,EAAMo+tB,kBAEtCp+tB,EAAM+uuB,sBAAsB,CAACrK,GAAUv9wB,QAAOi1kB,EAAAA,EAAAA,GAAmBwyM,MAGnErjzB,KAAKuzyB,eAAiB,SAAU/svB,GAC9BiuB,EAAM0suB,kBACN,IAAIzE,EAAYjouB,EAAMjuB,MACtB,GAAIA,EAAO,CACT,IAAIm6vB,EAAY1jpB,GAAMxoF,EAAMjuB,MAAOA,GACnCiuB,EAAMmsuB,YAAYD,GAEpBlsuB,EAAMmuuB,gBAAgBlG,EAAW,KAAM,CACrC/4xB,KAAM,cACNgqG,OAAQ,aAEVl5C,EAAMwsuB,eAERjhzB,KAAKs1vB,cAAgB,SAAU9nvB,EAAM5L,GACnC6yE,EAAM6+tB,UAAU,CAAC,CACf9lyB,KAAMA,EACN5L,MAAOA,MAGX5B,KAAKsjzB,4BAA8B,SAAUG,GAC3C,IAAI14yB,EAAW,IAAI45G,IACf0+rB,EAAiB,GACjBK,EAAsB,IAAI5D,GAK9BrruB,EAAMosuB,mBAAmB5gzB,SAAQ,SAAUskC,IACtBA,EAAMi7E,MAAMw5d,cACd,IAAI/4kB,SAAQ,SAAUmhH,GACrC,IAAIuisB,EAAqBhJ,GAAYv5rB,GACrCsisB,EAAoBrlyB,OAAOslyB,GAAoB,WAC7C,IAAIlyxB,EAAS1pB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,IAAI48G,IAErF,OADAlzF,EAAOnwB,IAAIijC,GACJ9S,WAkBb,OAdmB,SAASmyxB,EAAazK,IAC1BuK,EAAoB7jyB,IAAIs5xB,IAAa,IAAIx0rB,KAC/C1kH,SAAQ,SAAUskC,GACvB,IAAKx5B,EAAS8uB,IAAI0K,GAAQ,CACxBx5B,EAASzJ,IAAIijC,GACb,IAAI29wB,EAAgB39wB,EAAMo2wB,cACtBp2wB,EAAMs5wB,gBAAkBqE,EAAc5hzB,SACxC+izB,EAAezizB,KAAKshzB,GACpB0B,EAAa1B,QAKrB0B,CAAaH,GACNJ,GAETrjzB,KAAKwjzB,sBAAwB,SAAU3I,EAAcgJ,GACnD,IAAIC,EAAiBrvuB,EAAM/jD,UAAUozxB,eACrC,GAAIA,EAAgB,CAClB,IAAIryxB,EAASgjD,EAAMu/tB,YAInB,GAAI6P,EAAa,CACf,IAAIlkwB,EAAQ,IAAImgwB,GAChB+D,EAAY5jzB,SAAQ,SAAU04S,GAC5B,IAAInrS,EAAOmrS,EAAMnrS,KACfy0N,EAAS02E,EAAM12E,OACjBtiL,EAAMqlB,IAAIx3D,EAAMy0N,MAElBxwM,EAAOxxB,SAAQ,SAAUskC,GAEvBA,EAAM09L,OAAStiL,EAAM9/B,IAAI0kB,EAAM/2B,OAAS+2B,EAAM09L,UAGlD,IAAI8hlB,EAAgBtyxB,EAAO7rB,QAAO,SAAUgzS,GAC1C,IAAInyN,EAAYmyN,EAAMprS,KACtB,OAAOutyB,GAAiBF,EAAcp0tB,MAEpCs9tB,EAAczjzB,QAChBwjzB,EAAeC,EAAetyxB,KAKpCzxB,KAAKwzyB,eAAiB,SAAUv9Q,EAAMklE,GAEpC,IAAImmN,EACAlnyB,EAFJq6D,EAAM0suB,kBAGF57yB,MAAMi2E,QAAQy6c,IAAyB,kBAATA,GAAqC,kBAATklE,GAC5DmmN,EAAWrrR,EACX77gB,EAAU+glB,GAEV/glB,EAAU67gB,EAEZ,IAAI+tR,IAAoB1C,EACpBzG,EAAemJ,EAAkB1C,EAASp7yB,IAAIy0yB,IAAe,GAE7DsJ,EAAc,GAEdC,EAAYr+uB,OAAOyI,KAAKskC,OACxBuxsB,EAAuB,IAAIx/rB,IAC/BlwC,EAAMosuB,kBAAiB,GAAM5gzB,SAAQ,SAAUskC,GAC7C,IAAIpjB,EASJ,GAPK6iyB,GACHnJ,EAAaj6yB,KAAK2jC,EAAMo2wB,gBAMI,QAAxBx5xB,EAAW/G,SAAkC,IAAb+G,OAAsB,EAASA,EAASkzX,YAAc2va,EAAiB,CAC3G,IAAI7K,EAAW50wB,EAAMo2wB,cAIrBxB,EAASnjwB,OAAM,SAAUklwB,EAAUnvyB,GACjC,OAAOu1yB,EAASv1yB,KAAOmvyB,QAA4B9iyB,IAAhBkpyB,EAASv1yB,OAE5C8uyB,EAAaj6yB,KAAKu4yB,GAItB,GAAK50wB,EAAMi7E,MAAMvmB,OAAU10D,EAAMi7E,MAAMvmB,MAAM34F,OAA7C,CAGA,IAAI4hzB,EAAgB39wB,EAAMo2wB,cAG1B,GAFAwJ,EAAqB7izB,IAAI4gzB,EAAcjxyB,KAAKizyB,KAEvCF,GAAmBjJ,GAAiBF,EAAcqH,GAAgB,CACrE,IAAI1xyB,EAAU+zB,EAAM20wB,cAAcp+G,EAAc,CAC9Cq/B,iBAAkBr/B,EAAcA,EAAc,GAAIkV,IAA0Bv7nB,EAAM0lpB,mBACjF//sB,IAEH6pyB,EAAYrjzB,KAAK4P,EAAQguC,MAAK,WAC5B,MAAO,CACLhxC,KAAM00yB,EACNjglB,OAAQ,GACR2zR,SAAU,OAEXn2c,OAAM,SAAU+9vB,GACjB,IAAIC,EACA2G,EAAe,GACfC,EAAiB,GAUrB,OAT+C,QAA9C5G,EAAsBD,EAAWv9yB,eAA6C,IAAxBw9yB,GAA0CA,EAAoBh9yB,KAAK+8yB,GAAY,SAAUzkgB,GAC9I,IAAI2ggB,EAAc3ggB,EAAMtlO,KAAKimuB,YAC3Bz3kB,EAAS82E,EAAM92E,OACby3kB,EACF2K,EAAezjzB,KAAKolB,MAAMq+xB,GAAgBxzM,EAAAA,EAAAA,GAAmB5uY,IAE7DmilB,EAAaxjzB,KAAKolB,MAAMo+xB,GAAcvzM,EAAAA,EAAAA,GAAmB5uY,OAGzDmilB,EAAa9jzB,OACR69C,QAAQzS,OAAO,CACpBl+B,KAAM00yB,EACNjglB,OAAQmilB,EACRxuT,SAAUyuT,IAGP,CACL72yB,KAAM00yB,EACNjglB,OAAQmilB,EACRxuT,SAAUyuT,YAKlB,IAAIhL,EC5wBD,SAA0B4K,GAC/B,IAAIzvE,GAAW,EACXt7pB,EAAQ+quB,EAAY3jzB,OACpBgO,EAAU,GACd,OAAK21yB,EAAY3jzB,OAGV,IAAI69C,SAAQ,SAAU/tC,EAASs7B,GACpCu4wB,EAAYhkzB,SAAQ,SAAUuQ,EAAS3P,GACrC2P,EAAQivC,OAAM,SAAUj/C,GAEtB,OADAg0uB,GAAW,EACJh0uB,KACNg+C,MAAK,SAAU3vC,GAChBqqE,GAAS,EACT5qE,EAAQzN,GAASgO,EACbqqE,EAAQ,IAGRs7pB,GACF9osB,EAAOp9B,GAET8B,EAAQ9B,aAhBL6vC,QAAQ/tC,QAAQ,IDuwBFk0yB,CAAiBL,GACtCxvuB,EAAM8ruB,oBAAsBlH,EAE5BA,EAAe55vB,OAAM,SAAUnxC,GAC7B,OAAOA,KACNkwC,MAAK,SAAUlwC,GAChB,IAAIi2yB,EAAqBj2yB,EAAQpI,KAAI,SAAU8yS,GAE7C,OADWA,EAAMxrS,QAGnBinE,EAAMmuuB,gBAAgBnuuB,EAAMjuB,MAAO+9vB,EAAoB,CACrD5gyB,KAAM,mBAER8wD,EAAM+uuB,sBAAsBe,EAAoBj2yB,MAElD,IAAIk2yB,EAAgBnL,EAAe76vB,MAAK,WACtC,OAAIi2B,EAAM8ruB,sBAAwBlH,EACzBl7vB,QAAQ/tC,QAAQqkE,EAAMo+tB,eAAegI,IAEvC18vB,QAAQzS,OAAO,OACrB+T,OAAM,SAAUnxC,GACjB,IAAIyoyB,EAAYzoyB,EAAQ1I,QAAO,SAAUiJ,GACvC,OAAOA,GAAUA,EAAOozN,OAAO3hO,UAEjC,OAAO69C,QAAQzS,OAAO,CACpB9xB,OAAQ66D,EAAMo+tB,eAAegI,GAC7BlE,YAAaI,EACb0N,UAAWhwuB,EAAM8ruB,sBAAwBlH,OAI7CmL,EAAc/kwB,OAAM,SAAUj/C,GAC5B,OAAOA,KAGT,IAAIkkzB,EAAsB7J,EAAaj1yB,QAAO,SAAUuzyB,GACtD,OAAOgL,EAAqBtqxB,IAAIs/wB,EAASloyB,KAAKizyB,OAGhD,OADAzvuB,EAAM+uuB,sBAAsBkB,GACrBF,GAGTxkzB,KAAKmriB,OAAS,WACZ12d,EAAM0suB,kBACN1suB,EAAM++tB,iBAAiBh1vB,MAAK,SAAU5kC,GACpC,IAAI+qyB,EAAWlwuB,EAAM/jD,UAAUi0xB,SAC/B,GAAIA,EACF,IACEA,EAAS/qyB,GACT,MAAO8uH,GAEPt+F,QAAQsV,MAAMgpF,OAGjBjpF,OAAM,SAAUj/C,GACjB,IAAIokzB,EAAiBnwuB,EAAM/jD,UAAUk0xB,eACjCA,GACFA,EAAepkzB,OAIrBR,KAAKmgzB,gBAAkBA,KAqBzB,OAnBA,SAAiBloP,GACf,IAAI4sP,EAAUliN,GAAAA,SACVuhH,EAAkBvhH,GAAAA,SAAe,IAEnChjJ,GADmB0wJ,EAAAA,EAAAA,GAAe6zG,EAAiB,GACpB,GACjC,IAAK2gG,EAAQvmkB,QACX,GAAI25U,EACF4sP,EAAQvmkB,QAAU25U,MACb,CAEL,IAGI6sP,EAAY,IAAI5E,IAHA,WAClBvgW,EAAY,OAGdklW,EAAQvmkB,QAAUwmkB,EAAUtE,UAGhC,MAAO,CAACqE,EAAQvmkB,UEz1BdymkB,GAA2BpiN,GAAAA,cAAoB,CACjDqiN,kBAAmB,aACnBC,kBAAmB,aACnBC,aAAc,aACdC,eAAgB,eAiDlB,MCpDI7whB,GAAY,CAAC,OAAQ,gBAAiB,SAAU,OAAQ,WAAY,WAAY,YAAa,mBAAoB,kBAAmB,iBAAkB,iBAAkB,WAAY,kBA+HxL,GAxHW,SAActtC,EAAM/oL,GAC7B,IAAIzwD,EAAOw5O,EAAKx5O,KACdklvB,EAAgB1rgB,EAAK0rgB,cACrBjhuB,EAASu1N,EAAKv1N,OACdwmiB,EAAOjxU,EAAKixU,KACZlmH,EAAW/qN,EAAK+qN,SAChBhnc,EAAWi8O,EAAKj8O,SAChBq6yB,EAAiBp+jB,EAAK34N,UACtBoxF,OAA+B,IAAnB2lsB,EAA4B,OAASA,EACjDjrF,EAAmBnze,EAAKmze,iBACxBkrF,EAAuBr+jB,EAAKu2jB,gBAC5BA,OAA2C,IAAzB8H,EAAkC,WAAaA,EACjE9B,EAAiBv8jB,EAAKu8jB,eACtB+B,EAAkBt+jB,EAAK88jB,eACvByB,EAAYv+jB,EAAK29jB,SACjBC,EAAiB59jB,EAAK49jB,eACtBl1e,EAAYm0Y,GAAyB78d,EAAMstC,IACzCkxhB,EAAc7iN,GAAAA,WAAiBoiN,IAG/BU,EAAWC,GAAQztP,GAErB0tP,GADYt1M,EAAAA,EAAAA,GAAeo1M,EAAU,GACZ,GACvBG,EAAwBD,EAAalS,iBAAiBf,IACxDiB,EAAeiS,EAAsBjS,aACrCC,EAAmBgS,EAAsBhS,iBACzCE,EAAe8R,EAAsB9R,aACrCG,EAAsB2R,EAAsB3R,oBAC5CC,EAAc0R,EAAsB1R,YACpCL,EAAc+R,EAAsB/R,YAEtClxM,GAAAA,oBAA0B1kiB,GAAK,WAC7B,OAAO0nvB,KAGThjN,GAAAA,WAAgB,WAEd,OADA6iN,EAAYN,aAAa13yB,EAAMm4yB,GACxB,WACLH,EAAYL,eAAe33yB,MAE5B,CAACg4yB,EAAaG,EAAcn4yB,IAE/BymyB,EAAoBn5G,EAAcA,EAAc,GAAI0qH,EAAYrrF,kBAAmBA,IACnF25E,EAAa,CACXyP,eAAgBA,EAChBO,eAAgB,SAAwBC,GAEtC,GADAyB,EAAYR,kBAAkBx3yB,EAAMu2yB,GAChCuB,EAAiB,CACnB,IAAK,IAAIvtkB,EAAOhwO,UAAUzH,OAAQw2d,EAAO,IAAIvxd,MAAMwyO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClG8+O,EAAK9+O,EAAO,GAAKjwO,UAAUiwO,GAE7BstkB,EAAgBt/xB,WAAM,EAAQ,CAAC+9xB,GAAenoxB,OAAOk7b,MAGzD6tV,SAAU,SAAkB/qyB,GAC1B4ryB,EAAYP,kBAAkBz3yB,EAAMoM,GAChC2ryB,GACFA,EAAU3ryB,IAGdgryB,eAAgBA,IAElB1Q,EAAYniW,GAEZ,IAWI8zW,EAXAxqR,EAAWsnE,GAAAA,OAAa,MAC5BixM,EAAiBlhD,GAAgBr3N,EAAS/8S,SACrC+8S,EAAS/8S,UACZ+8S,EAAS/8S,SAAU,GAErBqkX,GAAAA,WAAgB,WACd,OAAOkxM,IAGT,IAGA,IAAIiS,EAA0C,oBAAb/6yB,EAC7B+6yB,EAEFD,EAAe96yB,EADF46yB,EAAa9S,gBAAe,GACT8S,GAEhCE,EAAe96yB,EAGjB4oyB,GAAcmS,GAEd,IAAIC,EAAgBpjN,GAAAA,SACpBA,GAAAA,WAAgB,YP7DX,SAAmBh1e,EAAQ/mH,GAChC,GAAI+mH,IAAW/mH,EACb,OAAO,EAET,IAAK+mH,GAAU/mH,GAAU+mH,IAAW/mH,EAClC,OAAO,EAET,IAAK+mH,IAAW/mH,GAA8B,YAApBsjmB,EAAAA,GAAAA,GAAQv8e,IAA4C,YAApBu8e,EAAAA,GAAAA,GAAQtjmB,GAChE,OAAO,EAET,IAAIupmB,EAAarpmB,OAAOC,KAAK4mH,GACzBq4rB,EAAal/yB,OAAOC,KAAKH,GACzBG,EAAO,IAAI49G,IAAI,GAAG/oF,OAAOu0kB,EAAY61M,IACzC,OAAOn1M,EAAAA,EAAAA,GAAmB9pmB,GAAMivC,OAAM,SAAUhvC,GAC9C,IAAImqQ,EAAcxjJ,EAAO3mH,GACrB65P,EAAcj6P,EAAOI,GACzB,MAA2B,oBAAhBmqQ,GAAqD,oBAAhBtQ,GAGzCsQ,IAAgBtQ,MO2ClBoljB,CAAUF,EAAcznkB,SAAW,GAAI7sN,GAAU,KACpDk0xB,EAAarS,UAAU7hxB,GAAU,IAEnCs0xB,EAAcznkB,QAAU7sN,IACvB,CAACA,EAAQk0xB,IACZ,IAAIO,EAAmBvjN,GAAAA,SAAc,WACnC,OAAOm4F,EAAcA,EAAc,GAAI6qH,GAAe,GAAI,CACxDpI,gBAAiBA,MAElB,CAACoI,EAAcpI,IACd4I,EAA2BxjN,GAAAA,cAAoBu8M,GAAAA,SAAsB,CACvEt9yB,MAAO,MACO+gmB,GAAAA,cAAoBq8M,GAAa/9rB,SAAU,CACzDr/G,MAAOskzB,GACNL,IACH,OAAkB,IAAdpmsB,EACK0msB,EAEWxjN,GAAAA,cAAoBljf,GAAWw4G,EAAAA,GAAAA,GAAS,GAAIy3G,EAAW,CACzE8M,SAAU,SAAkBhiU,GAC1BA,EAAMnT,iBACNmT,EAAMpT,kBACNu+yB,EAAax6Q,UAEfspN,QAAS,SAAiBj6uB,GACxB,IAAI4ryB,EACJ5ryB,EAAMnT,iBACNs+yB,EAAatS,cACgC,QAA5C+S,EAAqB12e,EAAU+kb,eAA4C,IAAvB2xD,GAAyCA,EAAmB3lzB,KAAKivU,EAAWl1T,MAEjI2ryB,IC3HC,SAAS5qyB,GAAU3Z,GACxB,IACE,OAAO0Z,KAAKC,UAAU3Z,GACtB,MAAO8mI,GACP,OAAO/iH,KAAK+5D,UAGhB,IAAI2muB,GAIA,aA6DJ,OA5DA,WACE,IAAK,IAAItukB,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAEzB,IAAIsukB,EAAS9/xB,EAAK,GAChBwyjB,OAA0B,IAAXstO,EAAoB,GAAKA,EACxCC,EAAU//xB,EAAK,GACfggyB,OAAoB,IAAZD,EAAqB,GAAKA,EAChCnsyB,EAAUg6xB,GAAeoS,GAAS,CACpCvuP,KAAMuuP,GACJA,EACAvuP,EAAO79iB,EAAQ69iB,KACf0uJ,GAAYzkI,EAAAA,GAAAA,YACd0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvC/ktB,EAAQgltB,EAAW,GACnBr/rB,EAAWq/rB,EAAW,GACpB6/F,GAAW1kO,EAAAA,GAAAA,UAAQ,WACrB,OAAOxmkB,GAAU3Z,KAChB,CAACA,IACA8kzB,GAAczkO,EAAAA,GAAAA,QAAOwkO,GACzBC,EAAYpokB,QAAUmokB,EACtB,IAAIvK,GAAex6N,EAAAA,GAAAA,YAAWs9N,IAC1B2G,EAAe1tP,GAAQikP,EACvByK,EAAchB,GAAgBA,EAAanzuB,MAK3C2muB,EAAWwB,GAAY3hO,GACvB4tO,GAAc3kO,EAAAA,GAAAA,QAAOk3N,GA6BzB,OA5BAyN,EAAYtokB,QAAU66jB,EACtBkN,GAAgBlN,IAChBx3N,EAAAA,GAAAA,YAAU,WAER,GAAKglO,EAAL,CAGA,IAAI9T,EAAiB8S,EAAa9S,eAI9BiJ,GAAiB/H,GAFGN,EADHkS,EAAalS,kBACOf,IACLqB,gBACD,SAAUn6xB,EAAQsnyB,GACnD,IAAI36xB,EAAWqX,GAASxjB,EAAQ23b,SAAWmvW,EAAYtnyB,EAAQgtyB,EAAYtokB,SACvEuokB,EAAetryB,GAAUgL,GAEzBmgyB,EAAYpokB,UAAYuokB,IAC1BH,EAAYpokB,QAAUuokB,EACtBt/xB,EAAShB,OAIT0/G,EAAeroG,GAASxjB,EAAQ23b,SAAW8gW,GAAe,GAAQA,IAAkB+T,EAAYtokB,SAEpG,OADA/2N,EAAS0+G,GACF61qB,KAIT,CAAC6K,IACM/kzB,GClELklzB,GAD4BnkN,GAAAA,WAAiBokN,IAEjDD,GAAQE,aHFW,SAAsBhgkB,GACvC,IAAImze,EAAmBnze,EAAKmze,iBAC1B8sF,EAAejgkB,EAAKigkB,aACpBC,EAAelgkB,EAAKkgkB,aACpBn8yB,EAAWi8O,EAAKj8O,SACdy6yB,EAAc7iN,GAAAA,WAAiBoiN,IAC/BoC,EAAWxkN,GAAAA,OAAa,IAC5B,OAAoBA,GAAAA,cAAoBoiN,GAAY9jsB,SAAU,CAC5Dr/G,MAAOk5rB,EAAcA,EAAc,GAAI0qH,GAAc,GAAI,CACvDrrF,iBAAkBr/B,EAAcA,EAAc,GAAI0qH,EAAYrrF,kBAAmBA,GAIjF6qF,kBAAmB,SAA2Bx3yB,EAAMu2yB,GAC9CkD,GACFA,EAAaz5yB,EAAM,CACjBu2yB,cAAeA,EACfqD,MAAOD,EAAS7okB,UAGpBknkB,EAAYR,kBAAkBx3yB,EAAMu2yB,IAEtCkB,kBAAmB,SAA2Bz3yB,EAAMoM,GAC9CstyB,GACFA,EAAa15yB,EAAM,CACjBoM,OAAQA,EACRwtyB,MAAOD,EAAS7okB,UAGpBknkB,EAAYP,kBAAkBz3yB,EAAMoM,IAEtCsryB,aAAc,SAAsB13yB,EAAMyqjB,GACpCzqjB,IACF25yB,EAAS7okB,QAAUw8c,EAAcA,EAAc,GAAIqsH,EAAS7okB,SAAU,IAAIzkK,EAAAA,EAAAA,GAAgB,GAAIrsE,EAAMyqjB,KAEtGutP,EAAYN,aAAa13yB,EAAMyqjB,IAEjCktP,eAAgB,SAAwB33yB,GACtC,IAAI65yB,EAAWvsH,EAAc,GAAIqsH,EAAS7okB,gBACnC+okB,EAAS75yB,GAChB25yB,EAAS7okB,QAAU+okB,EACnB7B,EAAYL,eAAe33yB,OAG9BzC,IGzCL+7yB,GAAQtL,MAAQA,GAChBsL,GAAQ1wb,KAAOA,GACf0wb,GAAQpB,QAAUA,GAClBoB,GAAQ1sB,SAAWA,GAEnB,ICAaktB,GAAoC3kN,GAAAA,cAAoB,IChBrE,SAAS4kN,GAAkBlhuB,EAAOmhuB,EAAWptyB,GAAS,MAElDqtyB,EAGErtyB,EAHFqtyB,WACA1mzB,EAEEqZ,EAFFrZ,MAGI2mzB,EADFttyB,EADFutyB,YAEoC,MAAQ,GACxCC,EAAe,CAAC,QAAS7mzB,EAAQ,QAAU,KAAM,UAAU6E,OAAOg8G,SAAS17G,KAAI,SAAAwxD,GAAC,kBAASA,EAAT,YAAcgwvB,MAAmBz2yB,KAAK,KAC5H,2CACiBu2yB,EADjB,eAC0C,CACtC7/E,iBAAkBthpB,EAAMm7b,aAF5B,SAIE,SAAU16gB,OAAOw4C,OAAOx4C,OAAOw4C,QAAP,UACrBsowB,EAAe,CACdzkwB,OAAQ,IAETskwB,GAAa,qBACTA,GAAe,CAClBtkwB,OAAQ,IAER,KARM,gCASQukwB,GAAoB,CAClCvkwB,OAAQ,MAdd,EAoBF,SAAS0kwB,GAAwB3uF,EAAWsuF,EAAWptyB,GAAS,MAE5DutyB,EACEvtyB,EADFutyB,YAEID,EAAkBC,EAAc,KAAH,OAAQA,GAAgB,GAC3D,2CACiBH,EADjB,4BAC8CA,EAD9C,uBACsEE,GAAoB,CACtF/iK,aAAc,KAFlB,8BAIiB6iK,EAJjB,sBAIwCA,EAJxC,sCAKUE,EALV,cAK+BxuF,EAL/B,eAK+CwuF,EAL/C,cAKoExuF,EALpE,eAKoFwuF,GAAoB,CAClGI,qBAAsB,EACtBC,mBAAoB,MAP1B,8BAUiBP,EAVjB,uBAUyCA,EAVzC,qCAWUE,EAXV,cAW+BxuF,EAX/B,eAW+CwuF,EAX/C,cAWoExuF,EAXpE,eAWoFwuF,GAAoB,CAClGM,uBAAwB,EACxBC,qBAAsB,KAb5B,EAkBK,SAASC,GAAoB7huB,GAClC,IAAIjsE,EAAUrS,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,CAChFhH,OAAO,GAGP8luB,EACExgpB,EADFwgpB,aAEIshF,EAAa,GAAH,OAAMthF,EAAN,YAChB,iBACGshF,EAAarhzB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIiowB,GAAkBlhuB,EAAO8huB,EAAY/tyB,IAAWytyB,GAAwBhhF,EAAcshF,EAAY/tyB,KC1D7I,IAcMguyB,GAAgB,SAAA/huB,GAAK,MAAK,CACrCptC,YAAaotC,EAAMgiuB,sBACnBC,qBAAsBjiuB,EAAMm7b,YAEjB+mS,GAAiB,SAAAliuB,GAAK,MAAK,CACtCptC,YAAaotC,EAAMgiuB,sBACnBt1F,UAAW,SAAF,OAAW1soB,EAAMwqoB,oBAAjB,cAA0CxqoB,EAAM+qoB,gBACzDk3F,qBAAsBjiuB,EAAMm7b,UAC5By0M,QAAS,IAEEuyF,GAAmB,SAAAniuB,GAAK,MAAK,CACxCjtC,MAAOitC,EAAM0poB,kBACb1srB,gBAAiBgjD,EAAMspoB,yBACvB12qB,YAAaotC,EAAMq4nB,YACnBqU,UAAW,OACX7krB,OAAQ,cACRgjG,QAAS,EACT,UAAWpqI,OAAOw4C,OAAO,GAAI8owB,GAAcxhF,GAAWvgpB,EAAO,CAC3DgiuB,sBAAuBhiuB,EAAMq4nB,kBAG3B+pG,GAAqB,SAAApiuB,GACzB,IACEqiuB,EAKEriuB,EALFqiuB,uBACAxpG,EAIE74nB,EAJF64nB,WACAO,EAGEp5nB,EAHFo5nB,aACAlC,EAEEl3nB,EAFFk3nB,eACAorG,EACEtiuB,EADFsiuB,yBAEF,MAAO,CACLx6xB,QAAS,GAAF,OAAKu6xB,EAAL,cAAiCC,EAAjC,MACP/twB,SAAUskqB,EACVtrqB,WAAY6rqB,EACZ96D,aAAc44D,IAGLqrG,GAAqB,SAAAviuB,GAAK,MAAK,CAC1Cl4D,QAAS,GAAF,OAAKk4D,EAAMwiuB,uBAAX,cAAuCxiuB,EAAMsroB,2BAA6B,EAA1E,MACPhtE,aAAct+jB,EAAMi3nB,iBAETwrG,GAAiB,SAACziuB,EAAOmhuB,GAAc,MAEhD3gF,EAOExgpB,EAPFwgpB,aACAxyB,EAMEhunB,EANFgunB,WACAD,EAKE/tnB,EALF+tnB,aACAqc,EAIEpqoB,EAJFoqoB,kBACAC,EAGErqoB,EAHFqqoB,oBACAtV,EAEE/0nB,EAFF+0nB,sBACAS,EACEx1nB,EADFw1nB,wBAEF,mDACyB2rG,EADzB,0BACoDA,EADpD,uBAC4EA,IAD5E,QAEIvuwB,YAAao7pB,EACb,UAAW,CACTp7pB,YAAamiqB,GAEf,qBAAsBt0sB,OAAOw4C,OAAO,GAAIipwB,GAAe3hF,GAAWvgpB,EAAO,CACvE0iuB,uBAAwB10G,EACxBg0G,sBAAuBh0G,EACvB+c,eAAgBX,OATtB,UAWQoW,EAXR,oBAWgCA,EAXhC,WAWwD,CAClDztrB,MAAOi7pB,MAZb,wCAe2BmzG,EAf3B,0BAesDA,EAftD,uBAe8EA,IAf9E,QAgBIvuwB,YAAam7pB,EACb,UAAW,CACTn7pB,YAAa4iqB,GAEf,qBAAsB/0sB,OAAOw4C,OAAO,GAAIipwB,GAAe3hF,GAAWvgpB,EAAO,CACvE0iuB,uBAAwB30G,EACxBi0G,sBAAuBj0G,EACvBgd,eAAgBV,OAvBtB,UAyBQmW,EAzBR,oBAyBgCA,EAzBhC,WAyBwD,CAClDztrB,MAAOg7pB,KA1Bb,GA+BW40G,GAAqB,SAAA3iuB,GAAK,OAAIv/E,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CACrEn5B,SAAU,WACV9G,QAAS,eACT/N,MAAO,OACPmN,SAAU,EACV0P,QAAS,GAAF,OAAKk4D,EAAM4iuB,qBAAX,cAAqC5iuB,EAAM6iuB,uBAA3C,MACP9vwB,MAAOitC,EAAMy3nB,UACbljqB,SAAUyrC,EAAMzrC,SAChBhH,WAAYyyC,EAAMzyC,WAClBvQ,gBAAiBgjD,EAAMk4nB,iBACvBtmW,gBAAiB,OACjBn/T,YAAautC,EAAMm7b,UACnBtoe,YAAamtC,EAAMsunB,SACnB17pB,YAAaotC,EAAMq4nB,YACnB/5D,aAAct+jB,EAAMs+jB,aACpB1/a,WAAY,OAAF,OAAS5+I,EAAMy6nB,oBA9GkB,CAE3C,sBAAuB,CACrB5vkB,QAAS,GAEX,iBAAkB,CAChB93F,MAyGmBitC,EAAMypoB,qBAxGzBpigB,WAAY,QAGd,sBAAuB,CACrBs9S,aAAc,cAoGmC,CACnD,UAAWlkgB,OAAOw4C,OAAO,GAAI8owB,GAAc/huB,IAC3C,qBAAsBv/E,OAAOw4C,OAAO,GAAIipwB,GAAeliuB,IACvD,0BAA2Bv/E,OAAOw4C,OAAO,GAAIkpwB,GAAiBniuB,IAC9D,eAAgB,CACd,0DAA2D,CACzDhjD,gBAAiB,cACjBgY,OAAQ,OACR03qB,UAAW,SAIf,YAAa,CACX/zsB,SAAU,OACVzN,OAAQ,OACRqN,UAAWynE,EAAMwtnB,cACjBjgqB,WAAYyyC,EAAMzyC,WAClB6irB,cAAe,SACfxxf,WAAY,OAAF,OAAS5+I,EAAM06nB,mBAAf,eACVxksB,OAAQ,YAGV,OAAQzV,OAAOw4C,OAAO,GAAImpwB,GAAmBpiuB,IAC7C,OAAQv/E,OAAOw4C,OAAO,GAAIspwB,GAAmBviuB,IAE7C,QAAS,CACPg1D,UAAW,OAEb,iBAAkB,CAChBA,UAAW,UA4PT8tqB,GAAgB,SAAA9iuB,GAAS,MAE3BwgpB,EAGExgpB,EAHFwgpB,aACA/yB,EAEEztnB,EAFFytnB,gBAIIs1G,GAAqBt1G,EAA8B,EAFrDztnB,EADFm7b,UAEgC,IACwD,EAC1F,iBACGqlN,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,IAAS2iuB,GAAmB3iuB,IAASyiuB,GAAeziuB,EAAOwgpB,IAAgB,CACpK,sBACEt1tB,OAAQ80E,EAAMwtnB,gBADhB,oBAEOgzB,EAFP,OAE2B,CACvBt1tB,OAAQ80E,EAAM2tnB,mBAHlB,oBAKO6yB,EALP,OAK2B,CACvBt1tB,OAAQuisB,EACRp6pB,WAAY0vwB,EACZxvwB,cAAewvwB,IARnB,GAWA,8FAA+F,CAC7F,qBAAsB,YAmCxBC,GAAgB,SAAAhjuB,GAAS,MAE3BwgpB,EAOExgpB,EAPFwgpB,aACAyiF,EAMEjjuB,EANFijuB,kBACAp5F,EAKE7poB,EALF6poB,qBACAnP,EAIE16nB,EAJF06nB,mBACAwP,EAGElqoB,EAHFkqoB,UACAC,EAEEnqoB,EAFFmqoB,eACAsW,EACEzgpB,EADFygpB,QAEF,2BACMD,EADN,kBACqC//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI0pwB,GAAmB3iuB,KAAnD,GAC3EhnE,QAAS,gBADkE,yBAEjEwntB,EAFiE,kCAElB//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI8owB,GAAc/huB,KAA9C,QACvDljC,OAAQ,GAD+C,UAEnD0jrB,EAFmD,yBAEb,CACxC1jrB,OAAQ,OAL+D,SAQ3E,qBAAsB,CACpBA,OAAQ,KATiE,SAW3E,cAX2E,oBAYrE0jrB,EAZqE,cAY1C,CAC7B98M,WAAY,kBAb2D,0BAgBhE88M,GAAiB,CAC1B14sB,QAAS,EACTysB,SAAU,UACVS,OAAQ,OACRspmB,aAAc,EACdsxE,QAAS,OACT,gBAAiB,CACf52sB,QAAS,QAEX,UAAW,CACT0zsB,UAAW,sBA1B4D,SA6B3E,YAAa,CACX1zsB,QAAS,eACT/N,MAAO,EACPikD,WAAY,SACZz0C,QAAS,YAjCgE,mBAmCvE+ltB,GAAiB,CACnB,qBAAsB,CACpBxntB,QAAS,OACT85E,KAAM,OACNy+O,WAAY,SACZ,uBAAwB,CACtB+vZ,gBAAiBthpB,EAAMwroB,YAG3B,sBAAuB,CACrBz4qB,MAAO82qB,GAET,0BAA2B,CACzByX,gBAAiBthpB,EAAMuroB,YAEzB,WAAY,CACV+V,gBAAiB2hF,GAEnB,WAAY,CACVC,kBAAmBD,KAtDoD,IAzCtD,SAAAjjuB,GACzB,IACEwgpB,EACExgpB,EADFwgpB,aAEF,2BAEMA,EAFN,eAEkC,CAC9BviiB,OAAQ,EACRlrJ,MAAOitC,EAAM43nB,oBACbrjqB,SAAUyrC,EAAMsqoB,aAChB8F,eAAgB,EAGhBvorB,OAAQ,UACR+2L,WAAY,SAAF,OAAW5+I,EAAM06nB,oBAC3B,UAAW,CACT3nqB,MAAOitC,EAAM23nB,mBAEf,WAAY,CACV5kqB,MAAOitC,EAAMy3nB,WAEf,WAAY,CACVvopB,WAAY,UAEd,eAAgB,CACd+uI,OAAQ,KAAF,OAAOj+G,EAAMijuB,kBAAb,SAyENE,CAAmBnjuB,KAzD0B,oBA2D3CygpB,GA3D2C,OA2DjCD,EA3DiC,kBA2DF,CAC3CztrB,MAAOm3qB,EACPrirB,OAAQ,UACR+2L,WAAY,OAAF,OAAS87e,GACnB,UAAW,CACT3nqB,MAAOo3qB,MAGTs4F,GAAeziuB,EAAD,UAAWwgpB,EAAX,sBAGhB4iF,GAAgB,SAAApjuB,GAAS,MAE3BwgpB,EAKExgpB,EALFwgpB,aACAxyB,EAIEhunB,EAJFgunB,WACAD,EAGE/tnB,EAHF+tnB,aACAmJ,EAEEl3nB,EAFFk3nB,eACAD,EACEj3nB,EADFi3nB,eAEF,2BACMupB,EADN,UAC6B//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,IA5Y1D,SAAAA,GAAS,kBAEvCwgpB,EAEExgpB,EAFFwgpB,aACAE,EACE1gpB,EADF0gpB,OAEF,UACE5gtB,SAAU,WACV9G,QAAS,QACT/N,MAAO,OACPo4yB,eAAgB,WAChBC,cAAe,IALjB,4BAOwB,CACpBC,iBAAkBvjuB,EAAMwroB,UACxB,eAAgB,CACd+3F,iBAAkB,MAVxB,wBAcW/iF,EAdX,oBAcmCA,EAdnC,gBAcgE//tB,OAAOw4C,OAAO,GAAImpwB,GAAmBpiuB,MAdrG,wBAeWwgpB,EAfX,oBAemCA,EAfnC,gBAegE//tB,OAAOw4C,OAAO,GAAIspwB,GAAmBviuB,MAfrG,wBAiBW0gpB,EAjBX,0BAiBmCA,EAjBnC,oBAiB8D,CAC1Dx1tB,OAAQ80E,EAAM2tnB,mBAlBlB,wBAoBW+yB,EApBX,0BAoBmCA,EApBnC,oBAoB8D,CAC1Dx1tB,OAAQ80E,EAAMytnB,mBArBlB,qBAuBQ+yB,GAAiB,CACrBxntB,QAAS,aACT,uCAAwC,CACtCsloB,aAAc,MA1BpB,mBA6BMkiF,EA7BN,4CA8ByB,CACnBxntB,QAAS,aACT/N,MAAO,EACPutI,WAAY,SACZ43kB,cAAe,SACf,uCAAwC,CACtC9xE,aAAc,MApCtB,SAuCI,aAAc,CACZtloB,QAAS,sBAxCf,SA0CI,WA1CJ,GA2CM8G,SAAU,WACVgI,QAAS,KAAF,OAAOk4D,EAAM6iuB,uBAAb,MACP9vwB,MAAOitC,EAAMy3nB,UACb3wgB,WAAY,SACZvyJ,SAAUyrC,EAAMzrC,SAChB6tkB,UAAW,SACXpllB,gBAAiBgjD,EAAMqpoB,eACvBr0qB,OAAQ,GAAF,OAAKgrC,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CtunB,EAAMq4nB,aACxD/5D,aAAct+jB,EAAMs+jB,aACpB1/a,WAAY,OAAF,OAAS5+I,EAAM06nB,oBACzBntqB,WAAY,IArDlB,mBAuDUmzrB,EAvDV,eAwDQziiB,OAAQ,IAAF,OAAMj+G,EAAM4iuB,qBAAuB,EAAnC,eAA2C5iuB,EAAM6iuB,uBAAjD,QAxDd,oBAyDaniF,EAzDb,8BAyDyCA,EAzDzC,iDA0DcA,EA1Dd,oBA0DyC,CAC7B1jsB,gBAAiB,UACjBgY,OAAQ,GAAF,OAAKgrC,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,gBACNoe,UAAW,WA7DvB,SAgEQ,qBAhER,oBAiEcgU,EAjEd,oBAiEyC,CAC7B3trB,MAAOitC,EAAM6tnB,gBAlEzB,wBAuEU6yB,EAvEV,6BAwEQziiB,OAAQ,SAAF,OAAWj+G,EAAM6iuB,uBAAjB,MACN7lxB,gBAAiB,eAzEzB,UA0EY0jsB,EA1EZ,mBA0EsC,CAC5Bt+G,UAAW,QACXptkB,OAAQ,EACR03qB,UAAW,UA7ErB,cAiFI,sBAAuB,CACrB82F,gBAAiB,KAlFvB,SAoFI,qBAAsB,CACpBC,kBAAmB,IArFzB,wBAwFMjjF,GAAiB,CACnBv1tB,MAAO,OACPqsc,aAAc,EACd8qK,UAAW,UACX,UAAW,CACTtlkB,OAAQ,EACRmlwB,qBAAsB,GAExB,mBACEnlwB,OAAQ,EACRmlwB,qBAAsB,GAFxB,UAGMzhF,EAHN,yBAG4C,CACxC1jrB,OAAQ,OApGhB,qBAyGQ0jrB,EAzGR,yBAyGqCA,EAzGrC,qCA0GIihF,qBAAsB,EACtBC,mBAAoB,GA3GxB,UA6GQhhF,EA7GR,mBA6GyBA,EA7GzB,oBA6GoD,CAC9C+gF,qBAAsB,EACtBC,mBAAoB,MA/G1B,qBAkHQlhF,EAlHR,gEAmH4BA,GAAiB,CACvCmhF,uBAAwB,EACxBC,qBAAsB,KArH5B,sCAuH2BphF,GAAiB,CACtCihF,qBAAsB,EACtBC,mBAAoB,IAzH1B,0BA4HQlhF,EA5HR,wBA4HoCA,EA5HpC,oCA6HImhF,uBAAwB,EACxBC,qBAAsB,GA9H1B,UAgIQlhF,EAhIR,mBAgIyBA,EAhIzB,oBAgIoD,CAC9CihF,uBAAwB,EACxBC,qBAAsB,MAlI5B,mBAqIMphF,EArIN,2BAsII,8BACEihF,qBAAsB,EACtBC,mBAAoB,GAFtB,UAGMlhF,EAHN,aAGgC,CAC5BmhF,uBAAwB3huB,EAAMs+jB,aAC9BsjK,qBAAsB5huB,EAAMs+jB,gBA3IpC,+BA8I6BkiF,EA9I7B,+BA8IyE,CACnEmhF,uBAAwB,EACxBC,qBAAsB,MAhJ5B,oBAmJOphF,EAnJP,kBAmJsC//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CAC9DjgC,QAAS,SjalQgB,CAE7B,YAAa,CACXA,QAAS,QACTyB,QAAS,MAEX,WAAY,CAEVzB,QAAS,QACT4+F,MAAO,OACPn9F,QAAS,SiauP2B,yBAG9B+ltB,EAH8B,yBAGDA,EAHC,0BAG6BA,GAAiB,CAC9E,uCAAwC,CACtCyhF,qBAAsBjiuB,EAAMm7b,UAC5B,UAAW,CACTr+d,OAAQ,GAEV,UAAW,CACTA,OAAQ,OAVoB,SAclC,QAAS,CACP9jC,QAAS,eACTkvF,MAAO,OACPkonB,cAAe,MACf9xE,aAAc,KAlBkB,iCAqB1BkiF,EArB0B,wCAsB1BA,EAtB0B,+CAuB1BE,EAvB0B,yBAwB9B,CACF1ntB,QAAS,iBAzBuB,SA2BlC,yBAA0B,CACxBsotB,iBAAkBthpB,EAAMm7b,UACxB8mS,qBAAsBjiuB,EAAMm7b,aA7BI,mBAgC9BqlN,GAAiB,CACnBt4nB,MAAO,UAjCyB,uBAoC1Bw4nB,EApC0B,qBAoCPA,EApCO,wCAqC5BA,EArC4B,iCAqCGF,EArCH,wBAsC5BE,EAtC4B,4BAsCFF,EAtCE,wBAuC5BA,EAvC4B,0BAuCEA,GAAiB,CACnDyhF,qBAAsBjiuB,EAAMm7b,UAC5BmjI,aAAc,EACd,UAAW,CACTxhmB,OAAQ,GAEV,UAAW,CACTA,OAAQ,MA9CsB,uBAiD1B4jrB,EAjD0B,mBAiDA,CAChC5jrB,OAAQ,KAlDwB,uBAqD1B4jrB,EArD0B,qBAqDPA,EArDO,iBAqDiB,CACjD5jrB,OAAQ,KAtDwB,iDAyD5B4jrB,EAzD4B,iCAyDGA,EAzDH,wCA0D5BA,EA1D4B,6CA0DeF,EA1Df,wBA2D5BE,EA3D4B,wCA2DUF,GAAiB,CAC3DmhF,uBAAwB3huB,EAAMs+jB,aAC9BsjK,qBAAsB5huB,EAAMs+jB,gBA7DI,gDAgE5BoiF,EAhE4B,gCAgEEA,EAhEF,wCAiE5BA,EAjE4B,uCAiESF,EAjET,wBAkE5BE,EAlE4B,+CAkEiBF,GAAiB,CAClEyhF,qBAAsBjiuB,EAAMm7b,UAC5BsmS,qBAAsBzhuB,EAAMs+jB,aAC5BojK,mBAAoB1huB,EAAMs+jB,gBArEM,uBAwE1BoiF,EAxE0B,iCAwEKF,GAAiB,CACtDpQ,cAAe,SAzEiB,mBA2E9BoQ,EA3E8B,4BA2EEA,EA3EF,2BA4EhC0iF,mBAAoBljuB,EAAMm7b,WA5EM,UA6E5BqlN,EA7E4B,kBA6EG,CACjCliF,aAAc,MA9EgB,mBAiF9BkiF,EAjF8B,yDAkF3BA,EAlF2B,qBAkFFA,EAlFE,wCAmFtBA,EAnFsB,0BAmFQA,EAnFR,kBAmFuC,CACnEliF,aAAc,KApFc,uBAsFtBkiF,GAAiB,CACvBmhF,uBAAwB3huB,EAAMs+jB,aAC9BmjK,qBAAsB,EACtBC,mBAAoB,EACpBE,qBAAsB5huB,EAAMs+jB,eA1FA,UAnJtC,EAuYmGolK,CAAmB1juB,IAAS,CAC3H,QAAS,CACPg1D,UAAW,OAEb,gBACEh8H,QAAS,eACT/N,MAAO,OACPm3mB,UAAW,QACXguG,cAAe,MACf,QAAS,CACPp7kB,UAAW,OAGb,4BACMwrlB,EADN,gBACmC,CAC/BliF,aAAc44D,EACd3iqB,SAAUyrC,EAAM64nB,aAGpB,4BACM2nB,EADN,gBACmC,CAC/BliF,aAAc24D,IAIlB,sCACMupB,EADN,gBACmC,CAC/BztrB,MAAOi7pB,EACPp7pB,YAAao7pB,IAGjB,wCACMwyB,EADN,gBACmC,CAC/BztrB,MAAOg7pB,EACPn7pB,YAAam7pB,IAGjB,kCACMyyB,EADN,gBACmC//tB,OAAOw4C,OAAO,GAAIkpwB,GAAiBniuB,OAlCxE,yBAsCYwgpB,EAtCZ,oCAsCoDA,EAtCpD,8BAsCsFA,EAtCtF,sCAuCQA,EAvCR,aAuCyBA,EAvCzB,gBAuCsD,CAChDliF,aAAc,MAxCpB,yBA2CYkiF,EA3CZ,8BA2C8CA,EA3C9C,4CA4CQA,EA5CR,aA4CyBA,EA5CzB,gBA4CsD,CAChDihF,qBAAsB,EACtBC,mBAAoB,MA9C1B,yBAiDYlhF,EAjDZ,+BAiD+CA,EAjD/C,2CAkDQA,EAlDR,aAkDyBA,EAlDzB,gBAkDsD,CAChDmhF,uBAAwB,EACxBC,qBAAsB,KApD5B,OA2DA+B,GAAsB,SAAA3juB,GAAS,UAEjCwgpB,EAEExgpB,EAFFwgpB,aACAE,EACE1gpB,EADF0gpB,OAEIkjF,EAAkB,GAAH,OAAMpjF,EAAN,WACrB,iBACGojF,GADH,yBAEQpjF,GAAiB,CACnB,4BACE5trB,YAAaotC,EAAM8znB,mBADrB,YAEQ0sB,EAFR,wBAEoCojF,EAFpC,uBAEkEljF,EAFlE,iBAE0F,CACtFmjF,uBAAwB7juB,EAAM8znB,uBANxC,mBAUQ0sB,EAVR,kBAUuC,CACjCliF,aAAc,KAXpB,mBAeQkiF,EAfR,OAe4B,CACtBjzrB,WAAYyyC,EAAMo5nB,aAAe,QAhBvC,qBAkBUonB,EAlBV,iCAmBYA,EAnBZ,+BAoBQq/D,kBAAmB,EACnB/3wB,QAAS,EACTktB,OAAQ,IAtBhB,mBAuBY4uwB,EAvBZ,WAuBuC,CAC7BvwwB,WAAY,EACZE,cAAe,EACfouwB,uBAAwB,EACxBF,qBAAsBzhuB,EAAMs+jB,aAC5BojK,mBAAoB1huB,EAAMs+jB,aAC1BsjK,qBAAsB,KA7BhC,mBA+BYgC,EA/BZ,uBA+B0CljF,EA/B1C,0BAgCU3trB,MAAOitC,EAAM6poB,qBACb,UAAW,CACT92qB,MAAOitC,EAAM8znB,mBAEf,WAAY,CACV/gqB,MAAOitC,EAAM+znB,qBArCzB,WAuCe2sB,EAvCf,wBAuC8C,CAClCm/D,iBAAkB,EAClBikB,eAAgB,EAChBC,gBAAiB,EACjBC,cAAe,KA3C3B,yBAgDQJ,EAhDR,WAgDmC,CAC7B14yB,OAAQ80E,EAAMwtnB,cACd,mBAAoB,CAClB1wpB,OAAQ,MAnDhB,2BAsDgB8mwB,EAtDhB,WAsD2C,CACrC14yB,OAAQ80E,EAAM2tnB,mBAvDpB,2BAyDgBi2G,EAzDhB,WAyD2C,CACrC14yB,OAAQ80E,EAAMytnB,mBA1DpB,SA4DI,QAAS,CACPz4jB,UAAW,SA7DjB,oBAgESwrlB,EAhET,iDAiEgBA,EAjEhB,4CAkEYA,EAlEZ,qCAmEcA,EAnEd,kBAmE6C,CACjCc,iBAAkBthpB,EAAMm7b,UACxBmjI,aAAc,OArE1B,yBAyEgBkiF,EAzEhB,6CA0EYA,EA1EZ,YA0E4BA,EA1E5B,kBA0E2D,CACjDliF,aAAc,MA3ExB,qBA8EYkiF,EA9EZ,wBA8EwCA,EA9ExC,sCA+EUA,EA/EV,sBAgFQA,EAhFR,kBAgFuC,CAC/B,2BAA4B,CAC1B1jrB,OAAQ,MAlFlB,qBAqFY0jrB,EArFZ,0BAqFmD,CAC3C1jrB,OAAQ,IAtFhB,SA4FK,SAASmnwB,GAAejkuB,GAE7B,OAAOugpB,GAAWvgpB,EAAO,CACvBijuB,kBAAmBjjuB,EAAMuroB,WACzBq3F,qBAAsBtjyB,KAAKC,IAAID,KAAK6H,OAAO64D,EAAMwtnB,cAAgBxtnB,EAAMzrC,SAAWyrC,EAAMzyC,YAAc,EAAI,IAAM,GAAKyyC,EAAMm7b,UAAW,GACtIknS,uBAAwB/iyB,KAAK+iK,MAAMriG,EAAM2tnB,gBAAkB3tnB,EAAM64nB,WAAa74nB,EAAMo5nB,cAAgB,EAAI,IAAM,GAAKp5nB,EAAMm7b,UACzHqnS,uBAAwBljyB,KAAKC,IAAID,KAAK6H,OAAO64D,EAAMytnB,gBAAkBztnB,EAAMzrC,SAAWyrC,EAAMzyC,YAAc,EAAI,IAAM,GAAKyyC,EAAMm7b,UAAW,GAC1I0nS,uBAAwB7iuB,EAAMyroB,UAAYzroB,EAAMm7b,UAChD+oS,yBAA0BlkuB,EAAMwroB,UAAYxroB,EAAMm7b,UAClDmnS,yBAA0BtiuB,EAAMqroB,yBAA2BrroB,EAAMm7b,UACjE6mS,sBAAuBhiuB,EAAM8znB,kBAC7B4uG,uBAAwB1iuB,EAAM8znB,oBAGlC,IAAMqwG,GAAmB,SAAAnkuB,GAAS,YAE9BwgpB,EAEExgpB,EAFFwgpB,aACA7U,EACE3roB,EADF2roB,UAEIy4F,EAAoB,GAAH,OAAM5jF,EAAN,aACvB,iBACG4jF,GADH,GAEItkyB,SAAU,WACV,2CAEQ0gtB,GAAiB,CACrBt1tB,OAAQ,UAHZ,mBAKMs1tB,EALN,eAKkC,CAC9B1gtB,SAAU,WACVnI,QAASqoE,EAAMzrC,SAAWyrC,EAAMzyC,WAChCu2wB,eAAgB,EAChB/wwB,MAAOitC,EAAM6poB,qBACbrxkB,WAAY,SACZh9G,cAAe,SAXnB,GAcA,uCACQglsB,GAAiB,CACrB+iF,iBAAkB53F,MAnB1B,kCAsBuBy4F,EAtBvB,sCAuBU5jF,GAAiB,CACnB+iF,iBAAkB53F,MAxB1B,kCA2BuB6U,EA3BvB,sBA4BM14sB,QAAS,IA5Bf,6BA6BoB04sB,GAAiB,CAC7BjsrB,SAAU,UACVS,OAAQ,OACR46qB,QAAS,OACT,UAAW,CACTlD,UAAW,sBAlCrB,mBAqCU8T,EArCV,eAsCQviiB,OAAQ,EACR,uBAAwB,CACtBomnB,aAAc,KAxCxB,mBA2CY7jF,EA3CZ,eA2CwC,CAC9B1gtB,SAAU,WACVgkyB,eAAgB9juB,EAAMwroB,UACtBu4F,gBAAiB/juB,EAAMwroB,aA9CjC,mBAiDY44F,EAjDZ,WAiDyC,CAC/BtkyB,SAAU,WACVrN,IAAK,EACLqxyB,eAAgB9juB,EAAM6iuB,uBACtBlryB,OAAQ,EACRmlC,OAAQ,EACR9jC,QAAS,cACTu4T,WAAY,SACZtzI,OAAQ,OACRziK,cAAe,SA1DzB,aAkEF,GAAeoksB,GAAsB,SAAS,SAAA5/oB,GAC5C,IAAMskuB,EAAaL,GAAejkuB,GAClC,MAAO,CAAC8iuB,GAAcwB,GAAaH,GAAiBG,GAAatB,GAAcsB,GAAalB,GAAckB,GAAaX,GAAoBW,GAI3IzC,GAAoByC,OC3xBlB7iN,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAcHo2Z,IAAwBg4I,EAAAA,GAAAA,aAAW,SAAC9kf,EAAOvhD,GAAQ,QAExCyjpB,EAQTlimB,EARF05mB,UADJ,EASM15mB,EAPForsB,SAAAA,OAFJ,SAGUC,EAMJrrsB,EANFhnG,KACUsyyB,EAKRtrsB,EALFp0G,SACQowP,EAINh8I,EAJF9nE,OACAi1vB,EAGEntrB,EAHFmtrB,WACAyE,EAEE5xrB,EAFF4xrB,UACYnwqB,EACVzhB,EADFwtG,WAEF8pQ,EAAOgxI,GAAOtof,EAAO,CAAC,YAAa,WAAY,OAAQ,WAAY,SAAU,aAAc,YAAa,eAC1G,EAGImjf,GAAAA,WAAiBj8R,IAFnB86Y,EADF,EACEA,aACAnmkB,EAFF,EAEEA,UAGI0vqB,EAAaC,GAAQH,GAErBz/yB,EAAWu3lB,GAAAA,WAAiB6/G,IAC5ByoG,EAAoC,OAAnBH,QAA8C,IAAnBA,EAA4BA,EAAiB1/yB,EAE/F,EAIIu3lB,GAAAA,WAAiB2kN,IAHX4D,EADV,EACExzwB,OACA86vB,EAFF,EAEEA,YACA2Y,EAHF,EAGEA,aAEIC,EhDpCuB,SAACF,EAAe1vjB,GAAhB,OAAiCA,GAAgB0vjB,EgDoCzDG,CAAgBH,EAAe1vjB,GAE9C2qf,EAAWxjJ,GAAAA,OAAa,MAC9BA,GAAAA,oBAA0B1kiB,GAAK,WAC7B,IAAIp0D,EACJ,MAAO,CACLgoyB,kBAA+C,QAA3BhoyB,EAAKs8uB,EAAS7ngB,eAA4B,IAAPz0O,OAAgB,EAASA,EAAGgoyB,kBACnF9wyB,MAAO,SAAA8jB,GACL,IAAIhb,EAAIua,GChCT,SAAsBtkB,EAAS+kB,GACpC,GAAK/kB,EAAL,CAGAA,EAAQiB,MAAM8jB,GAEd,IACEqpB,GACErpB,GAAU,IADZqpB,OAEF,GAAIA,EAAQ,CACV,IAAMsJ,EAAM13C,EAAQ8B,MAAMtB,OAC1B,OAAQ4tC,GACN,IAAK,QACHpuC,EAAQ09F,kBAAkB,EAAG,GAC7B,MACF,IAAK,MACH19F,EAAQ09F,kBAAkBhmD,EAAKA,GAC/B,MACF,QACE13C,EAAQ09F,kBAAkB,EAAGhmD,MDc7Bw1vB,CAA0G,QAA5F5oxB,EAAiC,QAA3Bva,EAAKs8uB,EAAS7ngB,eAA4B,IAAPz0O,OAAgB,EAASA,EAAGgoyB,yBAAsC,IAAPztxB,OAAgB,EAASA,EAAGg5E,SAAUv4E,IAE1J4jC,KAAM,WACJ,IAAI5+C,EACJ,OAAmC,QAA3BA,EAAKs8uB,EAAS7ngB,eAA4B,IAAPz0O,OAAgB,EAASA,EAAG4+C,YAI7E,IAEI6iwB,EAFEpyF,EAAY1X,EAAa,QAASE,GAGd,kBAAfirF,IAA2C,OAAfA,QAAsC,IAAfA,OAAwB,EAASA,EAAWsB,WACxGqd,EAAmB3e,EACVA,IACT2e,EAAmB,CACjBrd,UAAwBtrM,GAAAA,cAAoBw6H,GAAmB,QAInE,MAA0B7D,GAASJ,GAAnC,eAAOG,EAAP,KAAgBzqlB,EAAhB,KACA,OAAOyqlB,EAAsB12H,GAAAA,cAAoB4oN,GAAYzkzB,OAAOw4C,OAAO,GAAIw3a,EAAM,CACnF1rd,SAAU6/yB,EACVte,WAAY2e,EACZrqrB,QAAS,CACPksqB,aAAcnglB,IAAAA,CAAW,GAAD,OAAIksgB,EAAJ,qDAClBA,EADkB,sBAC4B,QAAd79kB,IADd,mBAElB69kB,EAFkB,8BAEsB0xF,IAFtB,mBAGlB1xF,EAHkB,qBAG4B,UAAf6xF,IAHb,mBAIlB7xF,EAJkB,qBAI4B,UAAf6xF,IAJb,mBAKlB7xF,EALkB,wBAKgBk4E,GALhB,GAMrBmB,GAAoB,GAAD,OAAIr5E,EAAJ,kBAA+BkyF,GAAex8qB,IAEtEo+E,WAAYlmN,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI2hF,GAAU,CACpDx/E,SAAUurK,IAAAA,EAAU,yBACdksgB,EADc,gBACY0xF,IADZ,mBAEd1xF,EAFc,OAEkB,UAAf6xF,IAFH,mBAGd7xF,EAHc,OAGkB,UAAf6xF,GAHH,GAIjBxY,GAAoBr5E,EAAWkyF,GAAex8qB,EAAoB,OAAZ3N,QAAgC,IAAZA,OAAqB,EAASA,EAAQx/E,YAErHy3qB,UAAWA,EACX/xlB,OAAQqrqB,GAA4B7vM,GAAAA,cAAoB,OAAQ,CAC9Dt0lB,UAAW,GAAF,OAAK6qtB,EAAL,qBACRiyF,GACH/Z,UAAWA,EACXnzuB,IAAKkorB,SAGT,MEtGaqlE,GAAgB,SAAAnluB,GAAK,MAAK,CAGrCjtC,MAAOitC,EAAMkunB,UACbvrM,eAAgB,OAChBitN,QAAS,OACT/nrB,OAAQ,UACR+2L,WAAY,SAAF,OAAW5+I,EAAM06nB,oBAC3B,mBAAoB,CAClB3nqB,MAAOitC,EAAMu2nB,gBAEf,WAAY,CACVxjqB,MAAOitC,EAAMw2nB,mBCVX4uG,GAAqB,SAAApluB,GAAS,QAEhCwgpB,EAEExgpB,EAFFwgpB,aACA6kF,EACErluB,EADFqluB,eAEF,iBACG7kF,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,QAAP,GAC9HlG,MAAOitC,EAAMy3nB,UACb6tG,UAAW,aACX/3wB,WAAYyyC,EAAMzyC,aAH4G,oBAIzHizrB,EAJyH,cAI9F,CAC9BztrB,MAAOitC,EAAM6poB,wBAL+G,oBAOzH2W,EAPyH,YAOhG,CAC5BztrB,MAAOitC,EAAM8tnB,gBAR+G,oBAUzH0yB,EAVyH,YAUhG,CAC5BztrB,MAAOitC,EAAM+tnB,gBAX+G,oBAazHyyB,EAbyH,WAajG,CAC3BztrB,MAAOitC,EAAMgunB,WACb,sBAAuB,CACrBj7pB,MAAOitC,EAAMi1nB,kBAEf,WAAY,CACVliqB,MAAOitC,EAAMg1nB,oBAnB6G,oBAsBzHwrB,EAtByH,aAsB/F,CAC7BztrB,MAAOitC,EAAM0poB,kBACb7hrB,OAAQ,cACRw/K,WAAY,UAzBgH,8CA8B1H,CACFiwP,aAAc,QA/B8G,GCkBtG,SAAAt3X,GAC5B,IACMzkD,EAAS,GASf,MAViB,CAAC,EAAG,EAAG,EAAG,EAAG,GAErB3hC,SAAQ,SAAA2rzB,GACfhqxB,EAAO,YAAD,OACDgqxB,EADC,2BAEIA,EAFJ,0BAGIA,EAHJ,gCAIDA,EAJC,WAlBY,SAAChxwB,EAAUhH,EAAYwF,EAAOitC,GAKlD,MAAO,CACLs3X,aAFEt3X,EAFFwukB,kBAKAz7mB,MAAAA,EACA+zJ,WAJE9mH,EADFgroB,iBAMAz2qB,SAAAA,EACAhH,WAAAA,GAaKi4wB,CAAcxluB,EAAM,kBAAD,OAAmBuluB,IAAiBvluB,EAAM,oBAAD,OAAqBuluB,IAAiBvluB,EAAM2poB,iBAAkB3poB,MAE1HzkD,EDIFkqxB,CAAezluB,KAjCgG,uCAmCxGwgpB,EAnCwG,0BAoCxGA,EApCwG,0BAqCxGA,EArCwG,0BAsCxGA,EAtCwG,0BAuCxGA,EAvCwG,YAwC5G,CACFlwe,UAAW+0jB,KAzCmG,gNA2D1G,CACF/0jB,UAAW+0jB,KA5DiG,ICsDxF,SAAArluB,GAAK,MAAK,CACtCk9E,KAAM,CACJ+gC,OAAQ,UACRynnB,cAAe,QACfC,aAAc,cACdpxwB,SAAU,MACVwgJ,WAAY/0G,EAAMqunB,eAClB3qL,WAAY,2BACZ1ue,OAAQ,qCACRspmB,aAAc,GAEhBsnK,IAAK,CACH3nnB,OAAQ,UACRynnB,cAAe,QACfC,aAAc,eACdpxwB,SAAU,MACVwgJ,WAAY/0G,EAAMqunB,eAClB3qL,WAAY,4BACZ1ue,OAAQ,qCACR8+f,kBAAmB,EACnBwqG,aAAc,GAEhB5md,KAAM,CACJ5vK,QAAS,EAETkV,gBAAiB2qM,GAAK,IAExB,SAAU,CACRg7R,eAAgB,YAChBkjT,sBAAuB,QAEzB,SAAU,CACRljT,eAAgB,gBAElBmjT,OAAQ,CACNh/mB,WAAY,KAGd,SAAU,CACRu9mB,aAAc,EACd33E,YAAa,QACb5ktB,QAAS,EACT6yjB,GAAI,CACF0pO,aAAc,SACd33E,YAAa,EACbg5E,cAAe,QACfC,aAAc,IAGlB/4P,GAAI,CACFm5P,cAAe,SACfn5P,GAAI,CACFm5P,cAAe,SAGnBl5P,GAAI,CACFk5P,cAAe,WAGjB,kBAAmB,CACjB9nnB,OAAQ,SAEV3rG,IAAK,CACHxqE,QAAS,cACT0wH,WAAY,WACZurX,SAAU,aACV2f,WAAY,2BACZ1ue,OAAQ,qCACRspmB,aAAc,EACdvpd,WAAY/0G,EAAMqunB,eAElBnxiB,KAAM,CACJlkJ,QAAS,SACTilL,OAAQ,EACRn2K,QAAS,EACTysB,SAAU,UACVwgJ,WAAY,UACZ2uV,WAAY,cACZ1ue,OAAQ,IAGZgxwB,WAAY,CACVN,cAAe,UACfC,aAAc,EACdlC,kBAAmB,qCACnB54qB,QAAS,MD5ELo7qB,CAAejmuB,IChCM,SAAAA,GAC3B,IACEwgpB,EACExgpB,EADFwgpB,aAEF,MAAO,CACL,QAAS//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIkswB,GAAcnluB,KAA9C,QACP2ib,eAAgB3ib,EAAMkroB,eACtB,oBAAqB,CACnBvoN,eAAgB3ib,EAAMmroB,sBAHjB,wBAKWqV,EALX,aAKqC,CAC1CztrB,MAAOitC,EAAM0poB,kBACb7hrB,OAAQ,cACR,oBAAqB,CACnBkL,MAAOitC,EAAM0poB,mBAEf,WAAY,CACVlurB,cAAe,YDeO0qxB,CAAclmuB,KA/D8B,8BAkElEwgpB,EAlEkE,6BAmElEA,EAnEkE,2BAoElEA,EApEkE,iBAqElE//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIkswB,GAAcnluB,IAAS,CACzDkjuB,kBAAmBljuB,EAAMmsoB,cCwEA,SAAAnsoB,GAAS,MAEtCwgpB,EACExgpB,EADFwgpB,aAGI2lF,EADalC,GAAejkuB,GACJ4iuB,qBAAuB,EACrD,MAAO,CACL,qBACE9iyB,SAAU,WACV,OAAQ,CACN+/wB,kBAAmB7/sB,EAAMyroB,UACzBn7d,WAAY61jB,EACZ7uW,aAAc,cAAF,OAAgB6uW,EAAhB,UALhB,mBAOM3lF,EAPN,yBAO4C,CACxC1gtB,SAAU,WACVgkyB,eAAgB9juB,EAAMosoB,SAAW,EACjC43F,cAAehkuB,EAAMosoB,SACrBr5qB,MAAOitC,EAAM6poB,qBAEb/ihB,WAAY,SACZvyJ,SAAUyrC,EAAMzrC,SAChBu1N,UAAW,SACXtuO,cAAe,UAhBnB,oBAkBY,CACRyiK,OAAQ,cAER07E,cAAe,OACfzuQ,OAAQ,QAtBZ,ID7EIk7yB,CAAkBpmuB,ICwGO,SAAAA,GAAK,MAAK,CACzC,kEAIa,CACTjtC,MAAOitC,EAAM8tnB,gBD9GgBu4G,CAAkBrmuB,ICkHpB,gFAI3B,CACFhnE,QAAS,eACTL,SAAU,UANmB,SAQ/B,gBAAiB,CACf6/H,WAAY,YATiB,SAW/B,yBAA0B,CACxB1c,SAAU,SACV6oY,aAAc,WAEd,YAAa,CACXyrN,cAAe,aAhBY,SAmB/B,2BAA4B,CAC1Bp3sB,QAAS,cACT8iH,SAAU,SACVkhkB,gBAAiB,EACjBspH,gBAAiB,aAvBY,EDlH6BC,IAAsB,CAC9E,QAAS,CACPvxqB,UAAW,WAMnB,GAAe4qlB,GAAsB,cAAc,SAAA5/oB,GAAK,MAAI,CAAColuB,GAAmBpluB,OAAS,iBAAO,CAC9FqluB,eAAgB,QAChB72J,kBAAmB,YEoBrB,GAxGiB,SAAAr1iB,GACf,IACE05mB,EAaE15mB,EAbF05mB,UACc2zF,EAYZrtsB,EAZF,cACAnxG,EAWEmxG,EAXFnxG,UACA4P,EAUEuhG,EAVFvhG,MACAo9H,EASE77B,EATF67B,UACA0yU,EAQEvuW,EARFuuW,UANF,EAcIvuW,EAPF0vrB,SAAAA,OAPF,SAQEttyB,EAME49G,EANF59G,MACA28B,EAKEihF,EALFjhF,OACAw0Q,EAIEvzL,EAJFuzL,SACAF,EAGErzL,EAHFqzL,MACAxkR,EAEEmxF,EAFFnxF,UAZF,EAcImxF,EADFstsB,UAAAA,OAbF,MAa2BnqN,GAAAA,cAAoB0pM,GAAe,MAb9D,EAeMpuuB,EAAM0kiB,GAAAA,OAAa,MACnBtxd,EAAgBsxd,GAAAA,QAAa,GAC7BoqN,EAAcpqN,GAAAA,SACpB,EAA8BA,GAAAA,SAAe/gmB,GAA7C,eAAO08O,EAAP,KAAgB0ukB,EAAhB,KACArqN,GAAAA,WAAgB,WACdqqN,EAAWprzB,KACV,CAACA,IACJ+gmB,GAAAA,WAAgB,WACd,GAAI1kiB,EAAIqgL,SAAWrgL,EAAIqgL,QAAQuzjB,kBAAmB,CAChD,IACEz0sB,EACEn/B,EAAIqgL,QAAQuzjB,kBADdz0sB,SAEFA,EAASr8F,QACT,IACET,EACE88F,EAASx7F,MADXtB,OAEF88F,EAASI,kBAAkBl9F,EAAQA,MAEpC,IACH,IAoBM2szB,EAAgB,WACpB1uxB,EAAO+/M,EAAQ19M,SAuBXssxB,EAAgB7+xB,EAAY,GAAH,OAAM6qsB,EAAN,YAAmB7qsB,GAAc,GAChE,EAA0BirsB,GAASJ,GAAnC,eAAOG,EAAP,KAAgBzqlB,EAAhB,KACMu+qB,EAAoBngmB,IAAAA,CAAWksgB,EAAD,UAAeA,EAAf,sCAC9BA,EAD8B,QACE,QAAd79kB,GACrBhtI,EAAW6+yB,EAAet+qB,GAC7B,OAAOyqlB,EAAsB12H,GAAAA,cAAoB,MAAO,CACtDt0lB,UAAW8+yB,EACXlvyB,MAAOA,GACO0klB,GAAAA,cAAoBr2I,GAAU,CAC5CruZ,IAAKA,EACL8vZ,UAAWA,EACXnsd,MAAO08O,EACP7gN,SAxDe,SAAAupN,GACf,IACEpgP,EACEogP,EADFpgP,OAEFomzB,EAAWpmzB,EAAOhF,MAAM8mD,QAAQ,UAAW,MAqD3CmvD,UA7CgB,SAAAswI,GAChB,IACE73L,EACE63L,EADF73L,QAGE+gF,EAAcitG,UAClByukB,EAAYzukB,QAAUhuL,IAwCtBiia,QAnCc,SAAA3pO,GACd,IACEt4L,EAKEs4L,EALFt4L,QACAtqB,EAIE4iN,EAJF5iN,QACA3oB,EAGEurO,EAHFvrO,OACAsvC,EAEEi8L,EAFFj8L,QACAxpD,EACEylP,EADFzlP,SAGE4pzB,EAAYzukB,UAAYhuL,GAAY+gF,EAAcitG,SAAYt4M,GAAY3oB,GAAWsvC,GAAYxpD,IAC/FmtD,IAAYqtqB,GAAAA,OACdsvF,IACU,OAAVp6gB,QAA4B,IAAVA,GAA4BA,KACrCviP,IAAYqtqB,GAAAA,KACrB5qb,MAsBJ58J,mBArDyB,WACzB9E,EAAcitG,SAAU,GAqDxB/qG,iBAnDuB,WACvBlC,EAAcitG,SAAU,GAmDxBvgN,OApBa,WACbkvxB,KAoBA,aAAcJ,EACd9ypB,KAAM,EACNm1oB,SAAUA,IACM,OAAd4d,EAAqB9oN,GAAa8oN,EAAW,CAC/Cz+yB,UAAW,GAAF,OAAK6qtB,EAAL,2BACN,QC7GHpxH,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAQHk3vB,GAA0BzqN,GAAAA,YAAiB,SAACnjf,EAAOvhD,GACvD,IACeyjpB,EAQTlimB,EARF05mB,UADJ,EASM15mB,EAPFnxF,UAAWoxF,OAFf,MAE2B,UAF3B,EAGIpxG,EAMEmxG,EANFnxG,UACAqutB,EAKEl9mB,EALFk9mB,cACA2wF,EAIE7tsB,EAJF6tsB,cACAtizB,EAGEy0G,EAHFz0G,SACWuizB,EAET9tsB,EAFF67B,UACAp9H,EACEuhG,EADFvhG,MAEFyxT,EAAYo4R,GAAOtof,EAAO,CAAC,YAAa,YAAa,YAAa,gBAAiB,gBAAiB,WAAY,YAAa,UAC/H,EAIImjf,GAAAA,WAAiBj8R,IAHnB86Y,EADF,EACEA,aACW+rG,EAFb,EAEElyqB,UACAw8kB,EAHF,EAGEA,WAEIx8kB,EAAoC,OAAxBiyqB,QAAwD,IAAxBA,EAAiCA,EAAsBC,EACrGriC,EAAYjttB,EACZovvB,IAEFniC,EAAY/nE,GAAWllpB,EAAKovvB,IAE9B,IAAMn0F,EAAY1X,EAAa,aAAcE,GAE7C,EAA0B4X,GAASJ,GAAnC,eAAOG,EAAP,KAAgBzqlB,EAAhB,KACM4+qB,EAAqBxgmB,IAAAA,CAAWksgB,EAA0B,OAAfrB,QAAsC,IAAfA,OAAwB,EAASA,EAAWxptB,WAA/E,oBAC/B6qtB,EAD+B,QACC,QAAd79kB,GACrBhtI,EAAWqutB,EAAe9tlB,GACvBo4jB,EAAclgsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAmB,OAAfu4qB,QAAsC,IAAfA,OAAwB,EAASA,EAAW55sB,OAAQA,GAC/H,OAAOo7sB,EAGP12H,GAAAA,cAAoBljf,EAAW34G,OAAOw4C,OAAO,CAC3CjxC,UAAWm/yB,EACXvvyB,MAAO+orB,EACP/ooB,IAAKittB,GACJx7c,GAAY3kU,OAMjB,UCxDe,SAAS0izB,GAAgBC,EAAYC,GAClD,OAAOhrN,GAAAA,SAAc,WACnB,IAAM9qT,IAAY61gB,EAClB,MAAO,CAAC71gB,EAAS/wS,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIquwB,GAAiB91gB,GAAiC,kBAAf61gB,EAA0BA,EAAa,SAC1H,CAACA,ICHN,IAUA,GAVyB,SAACl/vB,EAAU6qC,GAClC,IAAMgic,EAAWsnE,GAAAA,QAAa,GAC9BA,GAAAA,WAAgB,WACVtnE,EAAS/8S,QACX9vL,IAEA6se,EAAS/8S,SAAU,IAEpBjlJ,ICPL,SAASu0tB,GAAS33uB,GAChB,IAAMtyD,SAAcsyD,EACpB,MAAgB,WAATtyD,GAA8B,WAATA,EAa9B,SAASkqyB,GAAWxgL,EAAU71lB,GAG5B,IAFA,IAAIs2wB,EAAU,EACRC,EAAkB,GACfhizB,EAAI,EAAGA,EAAIshoB,EAAS/soB,OAAQyL,GAAK,EAAG,CAE3C,GAAI+hzB,IAAYt2wB,EACd,OAAOu2wB,EAET,IAAM93uB,EAAOo3jB,EAASthoB,GAGhBiizB,EAAUF,GAFDF,GAAS33uB,GACCpQ,OAAOoQ,GAAM31E,OAAS,GAI/C,GAAI0tzB,EAAUx2wB,EAAK,CACjB,IAAMy2wB,EAAUz2wB,EAAMs2wB,EAEtB,OADAC,EAAgBntzB,KAAKilE,OAAOoQ,GAAMxwE,MAAM,EAAGwozB,IACpCF,EAETA,EAAgBntzB,KAAKq1E,GACrB63uB,EAAUE,EAEZ,OAAO3gL,EAgHT,OAzGiB,SAAArmZ,GACf,IACEknkB,EAOElnkB,EAPFknkB,eACAnjzB,EAMEi8O,EANFj8O,SACApI,EAKEqkP,EALFrkP,KACA2O,EAIE01O,EAJF11O,MACAspC,EAGEosM,EAHFpsM,SACAm/G,EAEEitF,EAFFjtF,KACAo0pB,EACEnnkB,EADFmnkB,WAEF,EAAmDxrN,GAAAA,SAAe,CAAC,EAAG,EAAG,IAAzE,iCAAQyrN,EAAR,KAAkBC,EAAlB,KAA0BC,EAA1B,KAAmCC,EAAnC,KACA,EAAwC5rN,GAAAA,SAhB7B,GAgBX,eAAO6rN,EAAP,KAAqBC,EAArB,KACA,EAA8C9rN,GAAAA,SAAe,GAA7D,eAAO0tM,EAAP,KAAwBqe,EAAxB,KACMC,EAAehsN,GAAAA,OAAa,MAC5BisN,EAAYjsN,GAAAA,OAAa,MACzB0qC,EAAW1qC,GAAAA,SAAc,kBAAM7oY,GAAQn3N,KAAO,CAACA,IAC/CkszB,EAAWlsN,GAAAA,SAAc,kBAxDjC,SAAqB0qC,GACnB,IAAIwhL,EAAW,EAQf,OAPAxhL,EAASptoB,SAAQ,SAAAg2E,GACX23uB,GAAS33uB,GACX44uB,GAAYhpvB,OAAOoQ,GAAM31E,OAEzBuuzB,GAAY,KAGTA,EA+C8BC,CAAYzhL,KAAW,CAACA,IACvDy9I,EAAiBnoL,GAAAA,SAAc,WACnC,OAAKurN,GApBkB,IAoBAM,EAGhBzjzB,EAAS8izB,GAAWxgL,EAAUghL,GAASA,EAASQ,GAF9C9jzB,EAASsioB,GAAU,KAG3B,CAAC6gL,EAAgBM,EAAczjzB,EAAUsioB,EAAUghL,EAAQQ,IAE9DvnG,IAA0B,WACpB4mG,GAAkB58yB,GAASspC,GAAYi0wB,IACzCJ,EA9BU,GA+BVF,EAAa,CAAC,EAAG5oyB,KAAK+iK,KAAKmmoB,EAAW,GAAIA,OAE3C,CAACX,EAAgB58yB,EAAOspC,EAAUj4C,EAAMkszB,EAAU90pB,IACrDutjB,IAA0B,WACxB,IAAIz9sB,EAnCQ,IAoCR2kzB,GACFE,GAAoD,QAA/B7kzB,EAAK8kzB,EAAarwkB,eAA4B,IAAPz0O,OAAgB,EAASA,EAAGkT,eAAiB,KAE1G,CAACyxyB,IACJlnG,IAA0B,WACxB,IAAIz9sB,EAAIua,EACR,GAAIisxB,EACF,GA3CU,IA2CNme,IAE8C,QAA5B3kzB,EAAK+kzB,EAAUtwkB,eAA4B,IAAPz0O,OAAgB,EAASA,EAAGkT,eAAiB,IACnFg9I,EAAOs2oB,GAEvBoe,EA7CoB,GA8CpBN,GAAW,IAEXM,EAlDM,QAoDH,GApDG,IAoDCD,EACT,GAAIJ,IAAaE,EAAQ,CACvB,IAAMS,GAA0C,QAA5B3qyB,EAAKwqyB,EAAUtwkB,eAA4B,IAAPl6N,OAAgB,EAASA,EAAGrH,eAAiB,EAEjGiyyB,EAAeZ,EACfa,EAAaX,EAEbF,IAAaE,EAAS,EACxBW,EAAab,EACJW,GANOh1pB,EAAOs2oB,EAOvB2e,EAAeX,EAEfY,EAAaZ,EAEf,IAAMa,EAAavpyB,KAAK+iK,MAAMsmoB,EAAeC,GAAc,GAC3DV,EAAa,CAACS,EAAcE,EAAYD,SAExCR,EApEiB,GAqEjBN,GAAW,KAIhB,CAACK,EAAcJ,EAAUE,EAAQv0pB,EAAMs2oB,IAE1C,IAAM8e,EAAe,CACnB79yB,MAAAA,EACAutI,WAAY,SACZylD,OAAQ,EACRn2K,QAAS,GAELihyB,EAAgB,SAACtuyB,EAASm9C,EAAKhgD,GAAf,OAAsC0klB,GAAAA,cAAoB,OAAQ,CACtF,eAAe,EACf1kiB,IAAKA,EACLhgD,MAAOnX,OAAOw4C,OAAO,CACnBn5B,SAAU,QACV9G,QAAS,QACT3G,KAAM,EACNI,IAAK,EACLqqC,QAAS,KACToS,WAAY,SACZ1zB,cAAe,OACf+Y,SAAqC,EAA3Bj1B,KAAKo1B,MAAMH,EAAW,IAC/B38B,IACF6C,IAKH,OAAoB6hlB,GAAAA,cAAoBA,GAAAA,SAAgB,KAAMmoL,EAAgBojC,GAnGrD,IAmGuEM,GAlGpE,IAkG2GA,GAAuD7rN,GAAAA,cAAoBA,GAAAA,SAAgB,KAAMysN,EAAc,KAAMT,EAAc,CACxQhD,UAAW,WACX9sqB,WAAY,WAvGA,IAwGV2vqB,EAA2BY,EAAcrkzB,EAASsioB,GAAU,GAAQuhL,EAAWO,GAPxD,SAAC33wB,EAAKymB,GAC/B,IAAMoxvB,EAAgBxB,GAAWxgL,EAAU71lB,GAC3C,OAAO43wB,EAAcrkzB,EAASskzB,GAAe,GAAOpxvB,EAAKkxvB,GAKwCG,CAAmBjB,EAAQO,MChIhI,OAjBwB,SAAA5nkB,GACtB,IACEuokB,EAIEvokB,EAJFuokB,gBACAC,EAGExokB,EAHFwokB,WACAzkzB,EAEEi8O,EAFFj8O,SACA0kzB,EACEzokB,EADFyokB,aAEF,OAAuB,OAAjBA,QAA0C,IAAjBA,OAA0B,EAASA,EAAa7jyB,QAAW2jyB,EAGtE5sN,GAAAA,cAAoBvmd,GAASt1I,OAAOw4C,OAAO,CAC7D6jF,OAAMqsrB,QAAap3yB,GAClBq3yB,GAAe1kzB,GAJTA,GCVP+8lB,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAmDT,SAAS0vrB,GAAQjkoB,EAAK+tsB,EAAaC,GACjC,OAAY,IAARhusB,QAAwBvpG,IAARupG,EACX+tsB,EAEF/tsB,GAAOgusB,GAAWD,EAE3B,SAASE,GAAO7ryB,GACd,OAAY,IAARA,EACK,EAAC,GAAO,GAEVxe,MAAMi2E,QAAQz3D,GAAOA,EAAM,CAACA,GAErC,IACMq6pB,GAAoBz7E,GAAAA,YAAiB,SAACnjf,EAAOvhD,GACjD,IAAIp0D,EAAIua,EAAI+sG,EAEGuwlB,EAWTlimB,EAXF05mB,UACA7qtB,EAUEmxG,EAVFnxG,UACA4P,EASEuhG,EATFvhG,MACA0F,EAQE67F,EARF77F,KACAvY,EAOEo0G,EAPFp0G,SACAL,EAMEy0G,EANFz0G,SACAm/f,EAKE1qZ,EALF0qZ,SACAzxc,EAIE+mD,EAJF/mD,SACAo3vB,EAGErwsB,EAHFqwsB,SACAxhyB,EAEEmxF,EAFFnxF,UACAzC,EACE4zF,EADF5zF,MAEF8jT,EAAYo4R,GAAOtof,EAAO,CAAC,YAAa,YAAa,QAAS,OAAQ,WAAY,WAAY,WAAY,WAAY,WAAY,YAAa,UACjJ,EAGImjf,GAAAA,WAAiBj8R,IAFnB86Y,EADF,EACEA,aACAnmkB,EAFF,EAEEA,UAEF,EAAqBy0qB,GAAU,QAAxBC,GAAP,eACMC,EAAgBrtN,GAAAA,OAAa,MAC7BstN,EAActtN,GAAAA,OAAa,MAE3Bu2H,EAAY1X,EAAa,aAAcE,GACvCwuG,EAAY7pE,GAAK32a,EAAW,CAAC,OAAQ,OAAQ,SAAU,YAAa,SAAU,WAAY,WAEhG,EAAiC+9e,GAAgBh1vB,GAAjD,eAAO03vB,EAAP,KAAmBC,EAAnB,KACA,EAA8B9qF,IAAe,EAAO,CAClD1juB,MAAOwuzB,EAAWC,UADpB,eAAOA,EAAP,KAAgBC,EAAhB,KAGA,EAEIF,EADFG,YAAAA,OADF,MACgB,CAAC,QADjB,EAGMC,EAAc,SAAApumB,GAClB,IAAIv4M,EACAu4M,IAC4B,QAA7Bv4M,EAAKumzB,EAAW39gB,eAA4B,IAAP5oS,GAAyBA,EAAGpJ,KAAK2vzB,IAEzEE,EAAWlumB,IAGbqumB,IAAiB,WACf,IAAI5mzB,EACCwmzB,GAC4B,QAA9BxmzB,EAAKomzB,EAAY3xkB,eAA4B,IAAPz0O,GAAyBA,EAAG9I,UAEpE,CAACsvzB,IACJ,IAAMK,EAAc,SAAAlwzB,GACZ,OAANA,QAAoB,IAANA,GAAwBA,EAAE6G,iBACxCmpzB,GAAY,IAad,EAAiC/C,GAAgBoC,GAAjD,eAAOc,EAAP,KAAmBC,EAAnB,KACA,EAA4BjuN,GAAAA,UAAe,GAA3C,eAAOxxd,EAAP,KAAe0/qB,EAAf,KACMC,EAAYnuN,GAAAA,OAAa,MACzBouN,EAAc,GAChBH,EAAW93xB,SACbi4xB,EAAYj4xB,OAAS83xB,EAAW93xB,QAElC,IAAMk4xB,EAAc,WACdF,EAAUxykB,SACZpgN,aAAa4yxB,EAAUxykB,UAGrB2ykB,EAAc,SAAAzwzB,GAClB,IAAIqJ,EACE,OAANrJ,QAAoB,IAANA,GAAwBA,EAAE6G,iBAClC,OAAN7G,QAAoB,IAANA,GAAwBA,EAAE4G,kBACxCiqD,IAAAA,CAAKu/vB,EAAWjuzB,MAAQkjE,OAAO96D,IAAa,GAAIgmzB,GAChDF,GAAU,GAEVG,IACAF,EAAUxykB,QAAUz7O,YAAW,WAC7BguzB,GAAU,KACT,KAC0B,QAA5BhnzB,EAAK+mzB,EAAWx7qB,cAA2B,IAAPvrI,GAAyBA,EAAGpJ,KAAKmwzB,EAAYpwzB,IAEpFmimB,GAAAA,WAAgB,kBAAMquN,IAAa,IAEnC,MAAoDruN,GAAAA,UAAe,GAAnE,eAAOuuN,GAAP,KAA2BC,GAA3B,KACA,GAA0DxuN,GAAAA,UAAe,GAAzE,iBAAOyuN,GAAP,MAA8BC,GAA9B,MACA,GAAgC1uN,GAAAA,UAAe,GAA/C,iBAAOv4N,GAAP,MAAiBknb,GAAjB,MACA,GAAwC3uN,GAAAA,UAAe,GAAvD,iBAAO4uN,GAAP,MAAqBC,GAArB,MACA,GAAgD7uN,GAAAA,UAAe,GAA/D,iBAAO8uN,GAAP,MAAyBC,GAAzB,MACA,GAA8C/uN,GAAAA,UAAe,GAA7D,iBAAOgvN,GAAP,MAAwBC,GAAxB,MACA,GAAyCnE,GAAgBvjT,EAAU,CACjEvxE,YAAY,IADd,iBAAOk5X,GAAP,MAAuBC,GAAvB,MAGMC,GAAuBF,KAAmBznb,GAEhD,GAEI0nb,GADF/3pB,KAAAA,QADF,OACS,EADT,GAGMi4pB,GAAsBrvN,GAAAA,SAAc,kBAEzCovN,SAEyB35yB,IAA1B05yB,GAAe3qrB,QAAwB2qrB,GAAe3D,YAEtD2D,GAAen5X,YAAcw3X,GAAcQ,IAAY,CAACoB,GAAsBD,GAAgB3B,EAAYQ,IAC1GrpG,IAA0B,WACpBuqG,KAAmBG,KACrBb,GAAsB/kC,GAAe,oBACrCilC,GAAyBjlC,GAAe,oBAEzC,CAAC4lC,GAAqBH,KACzB,IAAMI,GAActvN,GAAAA,SAAc,WAChC,OAAIqvN,KAGS,IAATj4pB,GACKq3pB,GAEFF,MACN,CAACc,GAAqBZ,GAAuBF,KAC1CgB,GAAmBH,KAAyBE,GAAcR,GAAmBF,IAC7EY,GAAkBJ,IAAiC,IAATh4pB,IAAck4pB,GACxDG,GAAeL,IAAwBh4pB,GAAO,GAAKk4pB,GAEnDI,GAAgB,SAAA7xzB,GACpB,IAAIqJ,EACJynzB,IAAY,GACuB,QAAlCznzB,EAAKiozB,GAAeQ,gBAA6B,IAAPzozB,GAAyBA,EAAGpJ,KAAKqxzB,GAAgBtxzB,IAE9F,GAA0CmimB,GAAAA,SAAe,GAAzD,iBAAOlwF,GAAP,MAAsB8/S,GAAtB,MACA,GAAgD5vN,GAAAA,SAAe,GAA/D,iBAAO6vN,GAAP,MAAyBC,GAAzB,MAUMC,GAAe,SAAAC,GACnB,IAAI9ozB,EACJ2nzB,GAAgBmB,GAEZpB,KAAiBoB,IACkB,QAApC9ozB,EAAKiozB,GAAe3D,kBAA+B,IAAPtkzB,GAAyBA,EAAGpJ,KAAKqxzB,GAAgBa,KAIlGhwN,GAAAA,WAAgB,WACd,IAAMiwN,EAAU5C,EAAc1xkB,QAC9B,GAAIuzkB,IAAkBI,IAAeW,EAAS,CAC5C,IAAMC,EAAkBT,GAAeQ,EAAQ71yB,aAAe61yB,EAAQxrwB,aAAewrwB,EAAQ91yB,YAAc81yB,EAAQhnnB,YAC/G6lnB,KAAqBoB,GACvBnB,GAAoBmB,MAGvB,CAAChB,GAAgBI,GAAalnzB,EAAUqnzB,GAAcT,KAGzDhvN,GAAAA,WAAgB,WACd,IAAMiwN,EAAU5C,EAAc1xkB,QAC9B,GAAoC,qBAAzBw0kB,sBAAyCF,GAAYX,IAAgBF,GAAhF,CAIA,IAAMz7gB,EAAW,IAAIw8gB,sBAAqB,WACxClB,KAAqBgB,EAAQl8jB,iBAG/B,OADA4/C,EAAS9oG,QAAQolnB,GACV,WACLt8gB,EAAS5oG,iBAEV,CAACuknB,GAAaF,KAEjB,IAAItC,GAAe,GAEjBA,IAD6B,IAA3BqC,GAAetmuB,QACF,CACb5/D,MAAkC,QAA1B/hB,EAAKumzB,EAAWztzB,YAAyB,IAAPkH,EAAgBA,EAAKkB,GAE1C43lB,GAAAA,eAAqBmvN,GAAetmuB,SAC5C,CACb5/D,MAAOkmyB,GAAetmuB,SAEmB,kBAA3BsmuB,GAAetmuB,QAChB1kF,OAAOw4C,OAAO,CAC3B1zB,MAAkC,QAA1BxH,EAAKgsyB,EAAWztzB,YAAyB,IAAPyhB,EAAgBA,EAAKrZ,GAC9D+mzB,GAAetmuB,SAEH,CACb5/D,MAAOkmyB,GAAetmuB,SAG1B,IAAMunuB,GAAepwN,GAAAA,SAAc,WACjC,IAAMzykB,EAAU,SAAAnM,GAAG,MAAI,CAAC,SAAU,UAAU+3G,gBAAgB/3G,IAC5D,GAAK8tyB,KAAkBI,GAGvB,OAAI/hyB,EAAQkgyB,EAAWztzB,MACdytzB,EAAWztzB,KAEhButB,EAAQnlB,GACHA,EAELmlB,EAAQtE,GACHA,EAELsE,EAAQu/xB,GAAa7jyB,OAChB6jyB,GAAa7jyB,WADtB,IAIC,CAACimyB,GAAgBI,GAAarmyB,EAAO6jyB,GAAa7jyB,MAAOsmyB,KAG5D,GAAI7B,EACF,OAAoB1tN,GAAAA,cAAoBqwN,GAAU,CAChDpxzB,MAAkC,QAA1BuvH,EAAKi/rB,EAAWztzB,YAAyB,IAAPwuH,EAAgBA,EAAyB,kBAAbpmH,EAAwBA,EAAW,GACzGwzB,OA3KiB,SAAA38B,GACnB,IAAIiI,EAC2B,QAA9BA,EAAKumzB,EAAW3yxB,gBAA6B,IAAP5zB,GAAyBA,EAAGpJ,KAAK2vzB,EAAYxuzB,GACpF4uzB,GAAY,IAyKVz9gB,SAvKiB,WACnB,IAAIlpS,EAC2B,QAA9BA,EAAKumzB,EAAWr9gB,gBAA6B,IAAPlpS,GAAyBA,EAAGpJ,KAAK2vzB,GACxEI,GAAY,IAqKV39gB,MAAOu9gB,EAAWv9gB,MAClBqmb,UAAWA,EACX7qtB,UAAWA,EACX4P,MAAOA,EACPo9H,UAAWA,EACXhtH,UAAWA,EACX0/b,UAAWqiW,EAAWriW,UACtBmhV,SAAUkhB,EAAWlhB,SACrB4d,UAAWsD,EAAWtD,YAK1B,IAAMmG,GAAe,WACnB,IAKIC,EAJFv6X,EAEEm5X,GAFFn5X,WACA1hW,EACE66tB,GADF76tB,OAEF,OAAK0hW,GAGHu6X,EADEj8tB,IAG6B,OAAf84tB,QAAsC,IAAfA,OAAwB,EAASA,EAAWp4nB,QAEjEgra,GAAAA,cAAoB,IAAK,CAC3C37lB,IAAK,SACLqH,UAAW,GAAF,OAAK6qtB,EAAL,WACTlypB,QAASqrvB,GACT,aAA6B,OAAftC,QAAsC,IAAfA,OAAwB,EAASA,EAAWp4nB,QAChFu7nB,IAZqB,MAepBC,GAAa,WACjB,GAAKhD,EAAL,CACA,IACExwyB,EAEEywyB,EAFFzwyB,KACA6rE,EACE4kuB,EADF5kuB,QAEI4nuB,EAAYt5lB,GAAQtuI,GAAS,KAAsB,OAAfukuB,QAAsC,IAAfA,OAAwB,EAASA,EAAW3tmB,MACvGyqmB,EAAiC,kBAAduG,EAAyBA,EAAY,GAC9D,OAAO7C,EAAYz0rB,SAAS,QAAuB6me,GAAAA,cAAoBvmd,GAAS,CAC9Ep1I,IAAK,OACL4kB,OAAmB,IAAZ4/D,EAAoB,GAAK4nuB,GAClBzwN,GAAAA,cAAoB6pL,GAAa,CAC/CvutB,IAAKgyvB,EACL5hzB,UAAW,GAAF,OAAK6qtB,EAAL,SACTlypB,QAAS0pvB,EACT,aAAc7D,GACbltyB,GAAqBgjlB,GAAAA,cAAoBmjL,GAAc,CACxDtzoB,KAAM,aACD,OAGH6grB,GAAa,WACjB,GAAK1C,EAAL,CACA,IACE2C,EAEE1C,EAFF0C,SACA3zyB,EACEixyB,EADFjxyB,KAEI4zyB,EAAe3D,GAAO0D,GACtBE,EAAY5D,GAAOjwyB,GACnB8zyB,EAAYtirB,EAASy0mB,GAAQ2tE,EAAa,GAAmB,OAAfxD,QAAsC,IAAfA,OAAwB,EAASA,EAAW5+qB,QAAUy0mB,GAAQ2tE,EAAa,GAAmB,OAAfxD,QAAsC,IAAfA,OAAwB,EAASA,EAAW1+vB,MACvNqiwB,EAAYvirB,EAAwB,OAAf4+qB,QAAsC,IAAfA,OAAwB,EAASA,EAAW5+qB,OAAwB,OAAf4+qB,QAAsC,IAAfA,OAAwB,EAASA,EAAW1+vB,KACpKw7vB,EAAiC,kBAAd4G,EAAyBA,EAAYC,EAC9D,OAAoB/wN,GAAAA,cAAoBvmd,GAAS,CAC/Cp1I,IAAK,OACL4kB,MAAO6nyB,GACO9wN,GAAAA,cAAoB6pL,GAAa,CAC/Cn+wB,UAAW2+M,IAAAA,CAAW,GAAD,OAAIksgB,EAAJ,SAAsB/nlB,GAAU,GAAJ,OAAO+nlB,EAAP,kBACjDlypB,QAASiqvB,EACT,aAAcpE,GACb17qB,EAASy0mB,GAAQ4tE,EAAU,GAAiB7wN,GAAAA,cAAoB+iL,GAAe,OAAO,GAAQ9/B,GAAQ4tE,EAAU,GAAiB7wN,GAAAA,cAAoBijL,GAAc,OAAO,OAO/K,OAAoBjjL,GAAAA,cAAoBh2Z,GAAgB,CACtDttG,SAxKe,SAAC8oJ,EAAOroP,GACvB,IAGI+J,EAFFiT,EACEqrO,EADFrrO,YAGFy1yB,GAAiBz1yB,GACjB21yB,GAAoBx8wB,SAA4C,QAAlCpsC,EAAK4b,OAAO88G,wBAAqC,IAAP14H,OAAgB,EAASA,EAAGpJ,KAAKglB,OAAQ3lB,GAAS86C,SAAU,KAAO,IAmK3IxvC,UAAW2mzB,IAAwBE,KAClC,SAAA0B,GAAS,aAAiBhxN,GAAAA,cAAoBixN,GAAiB,CAChEnE,aAAcA,GACdF,gBAAiBwC,GACjBvC,WAAY0C,IACEvvN,GAAAA,cAAoByqN,GAAYtmzB,OAAOw4C,OAAO,CAC5DjxC,UAAW2+M,IAAAA,EAAU,yBACfksgB,EADe,YACFv1sB,GAASA,IADP,mBAEfu1sB,EAFe,aAEQ9ttB,IAFR,mBAGf8ttB,EAHe,aAGQ24F,KAHR,mBAIf34F,EAJe,gBAIW64F,IAAiC,IAATh4pB,KAJnC,mBAKfm/jB,EALe,yBAKoBi5F,KALpB,mBAMfj5F,EANe,2BAMsBk5F,IANtB,GAOlB/jzB,GACH6qtB,UAAWxX,EACXzjsB,MAAOnX,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIrhC,GAAQ,CAC7ColrB,gBAAiB+uH,GAAer4pB,QAAO3hJ,IAEzCiW,UAAWA,EACX4vC,IAAKklpB,GAAWwwG,EAAW3D,EAAe/xvB,GAC1Co9E,UAAWA,EACXr0E,QAASupvB,EAAYz0rB,SAAS,QAAU40rB,OAAct4yB,EACtD,aAA+B,OAAjB26yB,SAA0C,IAAjBA,QAA0B,EAASA,GAAatkzB,WACvFmd,MAAOA,GACNskyB,GAAyBvtN,GAAAA,cAAoBkxN,GAAU,CACxD3F,eAAgB6D,KAAyBE,GACzCtvzB,KAAMoI,EACNgvJ,KAAMA,GACNzoJ,MAAOmhgB,GACP73d,SAAU43wB,GACVrE,WAAYuE,KACX,SAACz8uB,EAAM69uB,GACR,IAAIC,EAAa99uB,EACbA,EAAK31E,QAAUwzzB,GAAgBf,KACjCgB,EAA0BpxN,GAAAA,cAAoB,OAAQ,CACpD37lB,IAAK,eACL,eAAe,GACd+szB,IAEL,IAAMC,EAhYV,SAA4BhtkB,EAAMlmO,GAChC,IACEi9K,EAOEipD,EAPFjpD,KACAx6B,EAMEyjF,EANFzjF,KACA9zI,EAKEu3N,EALFv3N,UACQs8G,EAINi7G,EAJF4G,OACAu+jB,EAGEnlkB,EAHFmlkB,OACAhzgB,EAEEnyD,EAFFmyD,SACA3pR,EACEw3N,EADFx3N,OAEEykyB,EAAiBnzyB,EACrB,SAAS8+J,EAAKp/C,EAAK0zrB,GACZA,IAGLD,EAA8BtxN,GAAAA,cAAoBnie,EAAK,GAAIyzrB,IAS7D,OAPAr0oB,EAAK,SAAUusoB,GACfvsoB,EAAK,IAAKnwJ,GACVmwJ,EAAK,MAAO7zC,GACZ6zC,EAAK,OAAQrc,GACbqc,EAAK,OAAQme,GACbne,EAAK,MAAOu5H,GACZv5H,EAAK,IAAKpwJ,GACHykyB,EAwWkBE,CAAmB30sB,EAAoBmjf,GAAAA,cAAoBA,GAAAA,SAAgB,KAAMoxN,EA7CnF,SAAAD,GAAY,MAAI,CAACA,GAA6BnxN,GAAAA,cAAoB,OAAQ,CAC/F,eAAe,EACf37lB,IAAK,YA/SY,OAgTD8qzB,GAAe3qrB,QAJRitrB,EAIiCN,EAJf,CAACM,GAAkBnB,KAAgBE,KAAcE,QAAnE,IAAAe,EA8C6FC,CAAeP,KACnI,OAAOE,aAGX,MCnaIlsN,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAKH47qB,GAAoBnvI,GAAAA,YAAiB,SAAC94lB,EAAIo0D,GAC9C,IACIisc,EAEErggB,EAFFqggB,SACAnoY,EACEl4H,EADFk4H,IAEF2tM,EAAYo4R,GAAOj+lB,EAAI,CAAC,WAAY,QAEhC0itB,EAAczltB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIowR,GAAY,CAC9D3tM,SAAa3pH,IAAR2pH,GAA0C,WAArB2tM,EAAU9oU,OAAsB,sBAAwBm7H,IAIpF,cADOwqlB,EAAY+jB,SACC3tI,GAAAA,cAAoBy7E,GAAMt3qB,OAAOw4C,OAAO,GAAIitqB,EAAa,CAC3EtupB,IAAKA,EACLisc,WAAYA,EACZ77e,UAAW,UAGf,MCtBA,GAL+Bs0kB,GAAAA,YAAiB,SAACnjf,EAAOvhD,GAAR,OAA6B0kiB,GAAAA,cAAoBy7E,GAAMt3qB,OAAOw4C,OAAO,CACnH2e,IAAKA,GACJuhD,EAAO,CACRnxF,UAAW,YCLTy5kB,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAMH+tI,GAAO,SAACp6L,EAAIo0D,GACZ,IACAisc,EACErggB,EADFqggB,SAEFx6L,EAAYo4R,GAAOj+lB,EAAI,CAAC,aACpByqzB,EAAiB3xN,GAAAA,SAAc,WACnC,OAAIz4F,GAAgC,kBAAbA,EACdm8O,GAAKn8O,EAAU,CAAC,aAAc,SAEhCA,IACN,CAACA,IAEJ,OAAoBy4F,GAAAA,cAAoBy7E,GAAMt3qB,OAAOw4C,OAAO,CAC1D2e,IAAKA,GACJyxQ,EAAW,CACZw6L,SAAUoqT,EACVjmyB,UAAW,WAGf,GAA4Bs0kB,GAAAA,WAAiB1+Z,IC/BzC6ja,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAKHq+vB,GAAiB,CAAC,EAAG,EAAG,EAAG,EAAG,GAmBpC,GAlB2B5xN,GAAAA,YAAiB,SAACnjf,EAAOvhD,GAClD,IAII5vC,EAJJ,EAEMmxF,EADFp3F,MAAAA,OADJ,MACY,EADZ,EAGEsnT,EAAYo4R,GAAOtof,EAAO,CAAC,UAQ7B,OALEnxF,EADEkmyB,GAAez4rB,SAAS1zG,GACd,IAAH,OAAOA,GAGJ,KAEMu6kB,GAAAA,cAAoBy7E,GAAMt3qB,OAAOw4C,OAAO,CAC1D2e,IAAKA,GACJyxQ,EAAW,CACZrhT,UAAWA,QCpBT++xB,GAAaoH,GACnBpH,GAAWnpnB,KAAOA,GAClBmpnB,GAAWt7E,KAAOA,GAClBs7E,GAAWt6J,MAAQA,GACnBs6J,GAAWqH,UAAYA,GACvB,ICAQ3hK,GDAR,GCAkBs6J,MAEX,SAASsH,KACd,MAAsClqE,KAA/Bl7qB,EAAP,EAAOA,OAAQ2xD,EAAf,EAAeA,QAASoI,EAAxB,EAAwBA,WACjBxlG,EAAiByrC,EAAjBzrC,OAAQkjtB,EAASz3qB,EAATy3qB,MAEf,OACE,qBACE98uB,GAAG,YACHoE,UAAWs9uB,GAAK,SAAU1qnB,EAAQp9F,OAAO5yB,KAAK,KAAM,wBAChDo4H,EAAW4+mB,YAHjB,cAKE,kBACE55uB,UAAWs9uB,GACT1qnB,EAAQinnB,gBAAgBj3uB,KAAK,KAC7B,sDAHJ,WAME,kBAAK5C,UAAU,kCAAf,WACE,iBAAKA,UAAU,uDAAf,UACE,UAACyjuB,GAAD,CAAM9wqB,GAAG,aAAT,UACE,iBACEm7I,IAAI,OAEJv6I,IAAKgzqB,GAAc,iCACnBvmuB,UAAU,gBAIhB,iBAAKA,UAAU,MAAf,UACE,UAAC,GAAD,CAAO+Z,MAAO,EAAG/Z,UAAU,2BAA3B,oCAIH04uB,EAAM1nuB,UACL,iBAAKhR,UAAU,iDAAiDud,MAAM,kBAAtE,UACE,iBACEvd,UAAU,0EACVpE,GAAG,yBAFL,UAIE,UAACq8uB,GAAD,CAAOh5uB,KAAK,2CAA2Ce,UAAU,0BAMrE04uB,EAAM1nuB,UACN,iBAAKhR,UAAU,uDAAf,UACE,UAACyjuB,GAAD,CAAM9wqB,GAAG,aAAa3yD,UAAU,YAAhC,UACE,iBACE8tM,IAAI,OACJv6I,IAAKgzqB,GAAc,kCACnBvmuB,UAAU,eAOjB04uB,EAAM1nuB,UACL,iBAAKhR,UAAU,uDAAf,UACE,UAACyjuB,GAAD,CAAM9wqB,GAAG,IAAI3yD,UAAU,YAAvB,UACE,iBACE8tM,IAAI,OACJv6I,IAAKgzqB,GAAc,kCACnBvmuB,UAAU,gBAOlB,kBAAKA,UAAU,oEAAf,UAEmB,SAAhBw1B,EAAOnrB,OACN,iBAAKrK,UAAU,6BAA6BpE,GAAG,gBAA/C,UACE,UAACwhvB,GAAD,MAIa,eAAhB5ntB,EAAOnrB,OACN,iBAAKrK,UAAU,4BAA4BpE,GAAG,gBAA9C,UACE,UAACyhvB,GAAD,OAIJ,kBAAKr9uB,UAAU,2CAAf,WACE,iBACEA,UAAU,kCACV,iBAAe,OACf,sBAAoB,cACpB,0BAAwB,6BACxB,yBAAuB,OACvB,uBAAqB,sCACrB,2BAAyB,MACzB,wBAAsB,gCACtB,kBAAgB,OAChB,uBAAqB,UACrB,yBAAuB,8CAXzB,UAaE,iBACEA,UAAU,yNACVpE,GAAG,kBACH,eAAa,OAHf,UAKE,UAACq7wB,GAAD,CACE15vB,MAAO,UACPjM,KAAM,iCACNqhD,GAAI,GACJgG,QAAS,WAEPvhD,OAAOua,SAAS2zP,QAAO,WAK/B,UAAC0xf,GAAD,gBCtHL,SAASsvC,KACd,IAAO5omB,EAAY6jhB,KAAZ7jhB,SACD6omB,GAAa3yO,EAAAA,GAAAA,SAAO,GAuC1B,OAbAN,EAAAA,GAAAA,YAAU,WACJizO,EAAWt2kB,QACbs2kB,EAAWt2kB,SAAU,EAzBvBz7O,YAAW,WACT2pwB,GAAgBqoD,mBAChBhyzB,YAAW,WACTsqwB,GAAgBvF,mBAChB5B,GAAgB4B,qBACf,MACF,KAOsB,WACzB,IAAMktD,EAAetyzB,SAAS+lC,KAAK7iC,iBAAd,kCACrB,GAAIovzB,GAAgBA,EAAax0zB,OAAS,EAAG,CAC3C,IAAM2swB,EAAST,GAAgBzitB,YAAY+qwB,EAAa,IACpD7nD,GACFA,EAAO5uvB,UAYX02yB,GACAlyzB,YAAW,WArBXqnwB,GAAmBE,UAuBhB,KACF,CAACr+iB,KAGF,iBAAK9hN,GAAG,eAAeoE,UAAU,YAAY,oBAAkB,OAA/D,UACE,UAACi4uB,GAAD,CAAOh5uB,KAAK,6CC9ClB,IAAM0nzB,GAA4B,SAAC,GAAgB,IAAfjqzB,EAAc,EAAdA,SAC3Bk2H,EAAWupnB,KAAXvpnB,QACDjhG,EAAW4vsB,KAKjB,OAJAjuJ,EAAAA,GAAAA,YAAU,WACRqkL,GAAgBqB,YACf,CAACrnuB,KAGF,iBAAK/hB,MAAO,CACV04O,UAAU,UAIP1sP,GAAG,uBAAuBoE,UAAWs9uB,GAAK1qnB,EAAQsnnB,iBAAiBt3uB,KAAK,MAL7E,SAMGlG,KCPDkqzB,GAAe,WACnB,IAAMj1xB,EAAW4vsB,KAajB,OAZAjuJ,EAAAA,GAAAA,YAAU,WACR9+kB,YAAW,WACTm7wB,GAAcpW,qBACb,OACF,KAEHjmL,EAAAA,GAAAA,YAAU,WACR9+kB,YAAW,WACTm7wB,GAAcpW,qBACb,OACF,CAAC5nuB,EAASh5B,OAGX,WAAC+jvB,GAAD,YACE,iBAAK18uB,UAAU,yCAAf,UAEE,kBAAKA,UAAU,4CAA4CpE,GAAG,aAA9D,WACE,UAACyqzB,GAAD,KAEA,iBAAKzqzB,GAAG,aAAaoE,UAAU,+CAA/B,UAGE,iBAAKA,UAAU,gCAAgCpE,GAAG,UAAlD,UACE,UAAC+qzB,GAAD,WACE,UAACzkF,GAAD,gBAOV,UAACokF,GAAD,+BC3CAO,GAAe,WACnB,OACE,iBAAK7mzB,UAAU,+BAAf,UACE,kBAAKA,UAAU,wDAAf,WAEE,iBACEuzD,IAAKgzqB,GAAc,yCACnBz4hB,IAAI,GACJ9tM,UAAU,6BAIZ,gBAAIA,UAAU,gBAAgB4P,MAAO,CAACm7B,MAAO,WAA7C,0CAKA,UAAC04rB,GAAD,CAAM9wqB,GAAG,WAAW3yD,UAAU,kBAA9B,+BASF8mzB,GAAW,WACf,OACE,iBAAK9mzB,UAAU,+BAAf,UACE,kBAAKA,UAAU,wDAAf,WAEE,iBACEuzD,IAAKgzqB,GAAc,yCACnBz4hB,IAAI,GACJ9tM,UAAU,6BAIZ,gBAAIA,UAAU,gBAAgB4P,MAAO,CAACm7B,MAAO,WAA7C,0BAKA,UAAC04rB,GAAD,CAAM9wqB,GAAG,WAAW3yD,UAAU,kBAA9B,+BC7CR,GADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iIAAqI,KAAQ,WAAY,MAAS,YCM5T+mzB,GAAmB,SAA0B51sB,EAAOvhD,GACtD,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM01yB,OAMV,OAA4B1yN,GAAAA,WAAiByyN,ICd7C,GADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,GAAI,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,MAAS,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8DAAiE,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gEAAoE,KAAQ,OAAQ,MAAS,YCMpaE,GAAe,SAAsB91sB,EAAOvhD,GAC9C,OAAoB0kiB,GAAAA,cAAoBs6H,IAAUhlgB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACpEvhD,IAAKA,EACLt+C,KAAM41yB,OAMV,OAA4B5yN,GAAAA,WAAiB2yN,ICf7C,IAA4Bt0sB,EAAAA,GAAAA,eAAc,MCCtCw0sB,GAAuB7yN,GAAAA,YAAiB,SAAU37W,EAAM/oL,GAC1D,IAAIi7pB,EAAYlye,EAAKkye,UACnB7qtB,EAAY24O,EAAK34O,UACjB4P,EAAQ+oO,EAAK/oO,MACbhU,EAAK+8O,EAAK/8O,GACVkhB,EAAS67N,EAAK77N,OACdsqyB,EAASzukB,EAAKyukB,OACd1qzB,EAAWi8O,EAAKj8O,SAClB,OAAoB43lB,GAAAA,cAAoB,MAAO,CAC7C14lB,GAAIA,GAAM,GAAG2xB,OAAO3xB,EAAI,WAAW2xB,OAAO65xB,GAC1CjjrB,KAAM,WACNsM,SAAU3zH,EAAS,GAAK,EACxB,kBAAmBlhB,GAAM,GAAG2xB,OAAO3xB,EAAI,SAAS2xB,OAAO65xB,GACvD,eAAgBtqyB,EAChBlN,MAAOA,EACP5P,UAAW2+M,IAAAA,CAAWksgB,EAAW/tsB,GAAU,GAAGyQ,OAAOs9rB,EAAW,WAAY7qtB,GAC5E4vD,IAAKA,GACJlzD,MAKL,UCpBIupR,GAAY,CAAC,MAAO,cAAe,QAAS,aAMjC,SAASohiB,GAAa1ukB,GACnC,IAAI/8O,EAAK+8O,EAAK/8O,GACZ0rzB,EAAY3ukB,EAAK2ukB,UACjBxvQ,EAAWn/T,EAAKm/T,SAChByvQ,EAAc5ukB,EAAK4ukB,YACnBC,EAAyB7ukB,EAAK6ukB,uBAC5BvtH,EAAoB3lG,GAAAA,WAAiBmzN,IACvC58F,EAAY5wB,EAAkB4wB,UAC9BvwtB,EAAO2/rB,EAAkB3/rB,KACvBotzB,EAAkB5vQ,EAAS6vQ,QAC3BC,EAAmB,GAAGr6xB,OAAOs9rB,EAAW,YAC5C,OAAoBv2H,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,qBAC7Bv2H,GAAAA,cAAoB,MAAO,CACzCt0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,YAAa,GAAGt9rB,OAAOs9rB,EAAW,aAAat9rB,OAAOg6xB,IAAc/7uB,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOs9rB,EAAW,qBAAsB68F,KAC7KptzB,EAAKzC,KAAI,SAAUiiP,GACpB,IAAInhP,EAAMmhP,EAAMnhP,IACduktB,EAAcpje,EAAMoje,YACpB2qG,EAAY/tkB,EAAMlqO,MAClBk4yB,EAAgBhukB,EAAM95O,UACtB+nzB,EAAevyG,GAAyB17d,EAAOmsC,IAC7CnpQ,EAASnkB,IAAQ2uzB,EACrB,OAAoBhzN,GAAAA,cAAoBwoH,IAAWlzf,EAAAA,GAAAA,GAAS,CAC1DjxN,IAAKA,EACL6B,QAASsiB,EACTogsB,YAAaA,EACbD,gBAAiBuqG,EACjBpqG,gBAAiB,GAAG7vrB,OAAOq6xB,EAAkB,YAC5C9vQ,EAASkwQ,gBAAgB,SAAUztkB,EAAO3qL,GAC3C,IAAI0mqB,EAAc/7e,EAAM3qO,MACtBymtB,EAAkB97e,EAAMv6O,UAC1B,OAAoBs0lB,GAAAA,cAAoB6yN,IAASv9lB,EAAAA,GAAAA,GAAS,GAAIm+lB,EAAc,CAC1El9F,UAAW+8F,EACXhszB,GAAIA,EACJwrzB,OAAQzuzB,EACRm/iB,SAAU4vQ,EACV5qyB,OAAQA,EACRlN,MAAO68qB,EAAcA,EAAc,GAAIo7H,GAAYvxF,GACnDt2tB,UAAW2+M,IAAAA,CAAWmpmB,EAAezxF,GACrCzmqB,IAAKA,aC/Cb,IAAIq4vB,GAAe,CACjBhlzB,MAAO,EACPC,OAAQ,EACRmH,KAAM,EACNI,IAAK,GCJQ,SAASy9yB,GAAaC,EAAc/4xB,GACjD,IAAIg5xB,EAAW9zN,GAAAA,OAAa6zN,GACxBtyG,EAAkBvhH,GAAAA,SAAe,IAEnChjJ,GADmB0wJ,EAAAA,EAAAA,GAAe6zG,EAAiB,GACpB,GASjC,MAAO,CAACuyG,EAASn4kB,QARjB,SAAkB28V,GAChB,IAAI10jB,EAA8B,oBAAZ00jB,EAAyBA,EAAQw7O,EAASn4kB,SAAW28V,EACvE10jB,IAAakwyB,EAASn4kB,SACxB7gN,EAASlX,EAAUkwyB,EAASn4kB,SAE9Bm4kB,EAASn4kB,QAAU/3N,EACnBo5b,EAAY,MCVhB,IAGI+2W,GAAqB/wyB,KAAKg7C,IAAI,KADX,ICGR,SAASg2vB,GAAUnowB,GAChC,IAAIm4pB,GAAYzkI,EAAAA,GAAAA,UAAS,GACvB0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCztoB,EAAQ0toB,EAAW,GACnB2kC,EAAW3kC,EAAW,GACpBgwG,GAAY30O,EAAAA,GAAAA,QAAO,GACnBgoI,GAAchoI,EAAAA,GAAAA,UAUlB,OATAgoI,EAAY3re,QAAU9vL,EAGtBwyoB,IAAsB,WACpB,IAAI61H,EAC6C,QAAhDA,EAAuB5sG,EAAY3re,eAA8C,IAAzBu4kB,GAA2CA,EAAqBp2zB,KAAKwptB,KAC7H,CAAC/woB,IAGG,WACD09uB,EAAUt4kB,UAAYplK,IAG1B09uB,EAAUt4kB,SAAW,EACrBitgB,EAASqrE,EAAUt4kB,WC5BvB,IAAIg4kB,GAAe,CACjBhlzB,MAAO,EACPC,OAAQ,EACRmH,KAAM,EACNI,IAAK,EACLiF,MAAO,GCFF,SAASxC,GAAUmyD,GACxB,IAAI+glB,EASJ,OARI/glB,aAAe8pL,KACjBi3Z,EAAM,GACN/glB,EAAIztE,SAAQ,SAAU4mD,EAAG8Q,GACvB82lB,EAAI92lB,GAAK9Q,MAGX4nmB,EAAM/glB,EAEDpyD,KAAKC,UAAUkzoB,GAGjB,SAASqoK,GAAe9vzB,GAC7B,OAAO6+D,OAAO7+D,GAAK0hD,QAAQ,KAFF,WAIpB,SAASquwB,GAAap0F,EAAU5nf,EAAWtiL,EAAUrtD,GAC1D,SAECqtD,GAEDrtD,IAEa,IAAbu3tB,QAEavqtB,IAAbuqtB,KAAyC,IAAd5nf,GAAqC,OAAdA,IC5BpD,SAASi8kB,GAAUhwkB,EAAM/oL,GACvB,IAAIi7pB,EAAYlye,EAAKkye,UACnBzgqB,EAAWuuL,EAAKvuL,SAChB1rD,EAASi6O,EAAKj6O,OACdkR,EAAQ+oO,EAAK/oO,MACf,OAAKw6C,IAAiC,IAArBA,EAASw+vB,QAGNt0N,GAAAA,cAAoB,SAAU,CAChD1kiB,IAAKA,EACLt6C,KAAM,SACNtV,UAAW,GAAGutB,OAAOs9rB,EAAW,YAChCj7sB,MAAOA,EACP,cAA0B,OAAXlR,QAA8B,IAAXA,OAAoB,EAASA,EAAOmqzB,eAAiB,UACvFlwvB,QAAS,SAAiBxsD,GACxBi+C,EAAS0+vB,OAAO,MAAO,CACrB38yB,MAAOA,MAGVi+C,EAAS2+vB,SAAW,KAbd,KAeX,OAA4Bz0N,GAAAA,WAAiBq0N,ICpBzCK,GAA4B10N,GAAAA,YAAiB,SAAU37W,EAAM/oL,GAC/D,IAIIn9C,EAJAqF,EAAW6gO,EAAK7gO,SAClB+ysB,EAAYlye,EAAKkye,UACjB9qc,EAAQpnC,EAAKonC,MACf,IAAKA,EAAO,OAAO,KAInB,IAAIkpiB,EAAc,GAYlB,MAXuB,YAAnBptN,EAAAA,GAAAA,GAAQ97U,IAAsCu0U,GAAAA,eAAqBv0U,GAGrEkpiB,EAAYv5yB,MAAQqwQ,EAFpBkpiB,EAAclpiB,EAIC,UAAbjoQ,IACFrF,EAAUw2yB,EAAYv5yB,OAEP,SAAboI,IACFrF,EAAUw2yB,EAAY5+yB,MAEjBoI,EAAuB6hlB,GAAAA,cAAoB,MAAO,CACvDt0lB,UAAW,GAAGutB,OAAOs9rB,EAAW,kBAChCj7pB,IAAKA,GACJn9C,GAAW,QAKhB,UC3BIu9sB,GAAMV,GAAAA,IACRjgjB,GAAMigjB,GAAAA,ICFR,IAAIzhX,IAAuBooP,EAAAA,GAAAA,aAAW,SAAU9kf,EAAOvhD,GACrD,IAAI6nsB,EAAUtmpB,EAAMsmpB,QAClB7jjB,EAAQziG,EAAMyiG,MACdi3gB,EAAY15mB,EAAM05mB,UAChBq+F,GAAcx1O,EAAAA,GAAAA,UAAQ,WAOxB,MALuB,oBAAZ+jL,EACQA,IAEAA,IAGlB,CAACA,IACA0xD,EAAcr0G,GAAWllpB,EAAqB,OAAhBs5vB,QAAwC,IAAhBA,OAAyB,EAASA,EAAYt5vB,KACxG,OAAoB0kiB,GAAAA,cAAoBA,GAAAA,SAAgB,KAAM1gZ,GAAsB0gZ,GAAAA,cAAoB,MAAO,CAC7Gt0lB,UAAW,GAAGutB,OAAOs9rB,EAAW,YACjBv2H,GAAAA,aAAmB40N,EAAa,CAC/Ct5vB,IAAKqlpB,GAAWi0G,GAAeC,OAAcp/yB,QAGjD,MCtBIgvxB,GAAqB,CACvBtP,QAAS,EACTC,QAAS,GAEPp9e,GAAe,CAAC,EAAG,GAuCvB,GAtCiB,CACfyuU,QAAS,CACP1pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB7hS,IAAK,CACH4mc,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB4uU,SAAU,CACR7pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,GAAI,GACbovS,aAAcA,IAEhB0uU,WAAY,CACV3pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB38R,OAAQ,CACN0hc,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,IAEhB2uU,YAAa,CACX5pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,GACV77xB,OAAQ,CAAC,EAAG,GACZovS,aAAcA,KCpCdrmB,GAAY,CAAC,QAAS,YAAa,iBAAkB,YAAa,QAAS,YAAa,aAAc,oBAAqB,aAAc,aAAc,mBAAoB,eAAgB,UAAW,UAAW,YAAa,UAAW,WAAY,mBAQzP,SAASmjiB,GAASj4sB,EAAOvhD,GACvB,IAAIy5vB,EACAC,EAAen4sB,EAAMyiG,MACvBA,OAAyB,IAAjB01mB,GAAkCA,EAC1Cr0F,EAAmB9jnB,EAAM05mB,UACzBA,OAAiC,IAArBoK,EAA8B,cAAgBA,EAC1Dxd,EAAiBtmmB,EAAMsmmB,eACvBxhf,EAAY9kH,EAAM8kH,UAClBzqL,EAAQ2lE,EAAM3lE,MACdorvB,EAAmBzlrB,EAAM4knB,UACzBA,OAAiC,IAArB6gE,EAA8B,aAAeA,EACzD2yB,EAAoBp4sB,EAAMwknB,WAC1BA,OAAmC,IAAtB4zF,EAA+BC,GAAaD,EACzDpwyB,EAAoBg4F,EAAMh4F,kBAC1BsowB,EAAatwqB,EAAMswqB,WACnBC,EAAavwqB,EAAMuwqB,WACnB4U,EAAmBnlrB,EAAMmlrB,iBACzBG,EAAetlrB,EAAMslrB,aACrBj8xB,EAAU22G,EAAM32G,QAChB+7xB,EAAiBplrB,EAAM51G,QACvBA,OAA6B,IAAnBg7xB,EAA4B,CAAC,SAAWA,EAClDvgN,EAAY7ke,EAAM6ke,UAClByhL,EAAUtmpB,EAAMsmpB,QAChB/6vB,EAAWy0G,EAAMz0G,SACjBg6xB,EAAkBvlrB,EAAMulrB,gBACxB6G,EAAa/nF,GAAyBrkmB,EAAO80K,IAC3C4vb,EAAkBvhH,GAAAA,WACpBwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD4zG,EAAiB3zG,EAAiB,GAClC4zG,EAAoB5zG,EAAiB,GACnCgI,EAAgB,YAAa3smB,EAAQ32G,EAAUivzB,EAC/CpyB,EAAa/iM,GAAAA,OAAa,MAC1Bq1N,EAAar1N,GAAAA,OAAa,MAC1BusL,EAAWvsL,GAAAA,OAAa,MAC5BA,GAAAA,oBAA0B1kiB,GAAK,WAC7B,OAAOynuB,EAAWpnjB,WAEpB,IAAI25kB,EAAsB,SAA6BC,GACrDH,EAAkBG,GACE,OAApBnzB,QAAgD,IAApBA,GAAsCA,EAAgBmzB,KH9CvE,SAA0BlxkB,GACvC,IAAIn+O,EAAUm+O,EAAKn+O,QACjB68xB,EAAa1+iB,EAAK0+iB,WAClBX,EAAkB/9iB,EAAK+9iB,gBACvB1gN,EAAYr9V,EAAKq9V,UACjB2zO,EAAahxkB,EAAKgxkB,WAChBG,EAAex1N,GAAAA,QAAa,GAC5By1N,EAAgC,WAEhC,IAAIC,EAAqBC,EADvBzvzB,IAE6C,QAA9CwvzB,EAAsB3yB,EAAWpnjB,eAA6C,IAAxB+5kB,GAAkG,QAAvDC,EAAwBD,EAAoBt3zB,aAA6C,IAA1Bu3zB,GAA4CA,EAAsB73zB,KAAK43zB,GACpN,OAApBtzB,QAAgD,IAApBA,GAAsCA,GAAgB,KAGlFwzB,EAAY,WACd,IAAIC,EACJ,QAAmD,QAA9CA,EAAsBR,EAAW15kB,eAA6C,IAAxBk6kB,IAAkCA,EAAoBz3zB,SAC/Gi3zB,EAAW15kB,QAAQv9O,QACnBo3zB,EAAa75kB,SAAU,GAChB,IAIPm6kB,EAAgB,SAAuBj+yB,GACzC,OAAQA,EAAM81C,SACZ,KAAK+tqB,GACH+5F,IACA,MACF,KAAK16oB,GAED,IAAIg7oB,GAAc,EACbP,EAAa75kB,UAChBo6kB,EAAcH,KAEZG,EACFl+yB,EAAMnT,iBAEN+wzB,MAMVz1N,GAAAA,WAAgB,WACd,OAAI95lB,GACF4c,OAAO/kB,iBAAiB,UAAW+3zB,GAC/Bp0O,GAEF2hI,GAAIuyG,EAAW,GAEV,WACL9yyB,OAAOtlB,oBAAoB,UAAWs4zB,GACtCN,EAAa75kB,SAAU,IAGpB,WACL65kB,EAAa75kB,SAAU,KAExB,CAACz1O,IGVJ8vzB,CAAiB,CACf9vzB,QAASsjtB,EACTu5E,WAAYxW,EACZ6V,gBAAiBkzB,EACjB5zO,UAAWA,EACX2zO,WAAYA,IAEd,IAOIY,EAAiB,WACnB,OAAoBj2N,GAAAA,cAAoBzmP,GAAS,CAC/Cj+S,IAAK+5vB,EACLlyD,QAASA,EACT5sC,UAAWA,EACXj3gB,MAAOA,KAwBP4jmB,EAA4BljN,GAAAA,aAAmB53lB,EAAU,CAC3DsD,UAAW2+M,IAAAA,CAAkD,QAAtC0qmB,EAAkB3szB,EAASy0G,aAAuC,IAApBk4sB,OAA6B,EAASA,EAAgBrpzB,UAAW89sB,GARjH,WACrB,IAAI2+E,EAAgBtrrB,EAAMsrrB,cAC1B,YAAsB1yxB,IAAlB0yxB,EACKA,EAEF,GAAGlvwB,OAAOs9rB,EAAW,SAG2H2/F,IACvJ56vB,IAAKqlpB,GAAWv4sB,GAAYo4sB,GAAW+rE,EAAUnkxB,EAASkzD,UAAO7lD,IAE/D0gzB,EAAoB/oC,EAIxB,OAHK+oC,IAAyD,IAApClvzB,EAAQzD,QAAQ,iBACxC2yzB,EAAoB,CAAC,UAEHn2N,GAAAA,cAAoBq7L,IAAS/lkB,EAAAA,GAAAA,GAAS,CACxDy4jB,kBAAmB1sD,GAClB4nE,EAAY,CACb1yE,UAAWA,EACXj7pB,IAAKynuB,EACL9G,eAAgB5xkB,IAAAA,CAAW23kB,GAAkB9qtB,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOs9rB,EAAW,eAAgBj3gB,IACtG48kB,WAAYiG,EACZrkxB,OAAQ7W,EACRkmxB,WAAYA,EACZC,WAAY+oC,EACZh6B,eAAgB16D,EAChBsvD,WAAY75uB,EACZulvB,oBAAqBt5E,EACrBu5E,eAAgB/6jB,EAChB10M,aAAcu8rB,EACdn1Y,QAtCmC,WACnC,IAAI+hf,EAA8Bv5sB,EAAMu5sB,4BACtC95B,EAAaz/qB,EAAMy/qB,WACrB,MAAI,gCAAiCz/qB,EAC5Bu5sB,GAED95B,EAgCC+5B,GAAmC,WAAa,GACzD77qB,MA5CuB,oBAAZ2onB,EACF8yD,EAEFA,IA0CPz6B,qBAAsB85B,EACtB/4B,aA9DY,SAAiB1+xB,GAC7B,IAAIy4zB,EAAiBz5sB,EAAMy5sB,eAC3BlB,GAAkB,GACdkB,GACFA,EAAez4zB,IA2DjBgnB,kBAAmBA,IACjBq+xB,GAEN,IC7HA,GD6H4BljN,GAAAA,WAAiB80N,IE3HzCnjiB,GAAY,CAAC,YAAa,aAAc,OAAQ,aAAc,aAAc,qBAAsB,eAAgB,UAAW,YAAa,QAAS,WAAY,UAAW,QAAS,aAKnL4kiB,QAAY9gzB,EAChB,SAAS+gzB,GAAa35sB,EAAOvhD,GAC3B,IAAIi7pB,EAAY15mB,EAAM05mB,UACpBrgI,EAAar5e,EAAMq5e,WACnB34lB,EAAOs/G,EAAMt/G,KACbk5zB,EAAa55sB,EAAM45sB,WACnBh0M,EAAa5lgB,EAAM4lgB,WACnBi0M,EAAqB75sB,EAAM65sB,mBAC3BC,EAAe95sB,EAAM85sB,aACrBlob,EAAU5xR,EAAM4xR,QAChB/iY,EAAYmxG,EAAMnxG,UAClB4P,EAAQuhG,EAAMvhG,MACdlT,EAAWy0G,EAAMz0G,SACjBsU,EAAUmgG,EAAMngG,QAChBs7e,EAAQn7Y,EAAMm7Y,MACd4+T,EAAmB/5sB,EAAMnxF,UACzBoxF,OAAiC,IAArB85sB,EAA8B,MAAQA,EAClD7pf,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1CkliB,EAAep0M,IAAe/lmB,EAElC,SAASo6yB,EAAqBnozB,GAC5BgozB,EAAalob,EAAS9/X,GAExBqxlB,GAAAA,WAAgB,WACd,OAAO,WACL82N,EAAqB,SAEtB,IAEH,IACIC,EADAx/iB,EAAYk/iB,GAAcl5zB,IAASg5zB,GAAYE,EAAWl5zB,GAAQ6K,EAEjE8tlB,IACH6gO,EAAgB,CACdxorB,QAASsorB,EAAe,EAAI,EAC5BjozB,OAAQiozB,EAAe,EAAIN,GAC3B50Y,UAAWk1Y,EAAe,SAAWN,GACrCv+T,MAAOyqH,EAAazqH,EAAQu+T,GAC5Br3xB,cAAe23xB,EAAe,OAASN,GACvC/yyB,SAAUqzyB,EAAe,WAAaN,KAG1C,IAAIS,EAAgB,GAChBH,IACFG,EAAc,gBAAiB,GAEjC,IAAIC,EAAwBj3N,GAAAA,cAAoBljf,GAAWw4G,EAAAA,GAAAA,GAAS,CAClE5pN,UAAW2+M,IAAAA,EAAY6rY,GAAcqgI,EAAW7qtB,GAChD4P,MAAO68qB,EAAcA,EAAc,GAAI4+H,GAAgBz7yB,IACtD07yB,EAAejqf,EAAW,CAC3BzxQ,IAAKA,IACHi8M,GAUJ,OATIkrW,IACFw0M,EAAwBj3N,GAAAA,cAAoBh2Z,GAAgB,CAC1DttG,SAAU,SAAkB2nJ,GAE1ByykB,EADkBzykB,EAAKlqO,cAGzB1R,SAAUiuzB,GACTO,IAEEA,EAET,IAAIC,GAAoBl3N,GAAAA,WAAiBw2N,IACzCU,GAAK3qzB,YAAc,OACnB,UChEO,SAAS4qzB,KAEd,IAAIC,EAAgBp3N,GAAAA,OAAa,MAgBjC,OAdyB,SAA4Bn0iB,GAC9CurwB,EAAcz7kB,UACjBy7kB,EAAcz7kB,QAAU,GCbf,SAAuB9vL,GACpC,GAA8B,qBAAnB22iB,eACT6gH,GAAIx3pB,OACC,CACL,IAAIwrwB,EAAU,IAAI70N,eAClB60N,EAAQ30N,MAAMlsZ,UAAY,WACxB,OAAO3qJ,KAETwrwB,EAAQ50N,MAAM71d,iBAAYn3H,IDMxB6hzB,EAAc,YACZzqO,EAAAA,GAAAA,0BAAwB,WACtBuqO,EAAcz7kB,QAAQr+O,SAAQ,SAAU25B,GACtCA,OAEFmgyB,EAAcz7kB,QAAU,YAI9By7kB,EAAcz7kB,QAAQ19O,KAAK4tD,IAOhB,SAAS0rwB,GAAeC,EAAoB5lxB,GAEzD,IAAI2vqB,EAAkBvhH,GAAAA,SAAepujB,GACnC4vqB,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDk2G,EAAaj2G,EAAiB,GAC9Bk2G,EAAgBl2G,EAAiB,GAOnC,MAAO,CAACi2G,EALWl1F,IAAS,SAAUpvM,GACpCqkS,GAAmB,WACjBE,EAAcvkS,UEvCb,IAAIwkS,GAA+B33N,GAAAA,cAAoB,MCC1DruU,GAAY,CAAC,aACfm6C,GAAa,CAAC,aACd8rf,GAAa,CAAC,aAKZC,GAAkB,SAAyBh7sB,EAAOvhD,GACpD,IAAItjD,EAAUgolB,GAAAA,WAAiB23N,IAE/B,IAAK3/yB,EAAS,CACZ,IAAI4+yB,EAAmB/5sB,EAAMnxF,UAC3BoxF,OAAiC,IAArB85sB,EAA8B,MAAQA,EAClDkB,EAAa52G,GAAyBrkmB,EAAO80K,IAC/C,OAAoBquU,GAAAA,cAAoBljf,GAAWw4G,EAAAA,GAAAA,GAAS,GAAIwimB,EAAY,CAC1Ex8vB,IAAKA,KAGT,IAAIy8vB,EAAmB//yB,EAAQtM,UAC7BsszB,EAAc92G,GAAyBlpsB,EAAS8zT,IAC9CpgU,EAAYmxG,EAAMnxG,UACpBqhU,EAAYm0Y,GAAyBrkmB,EAAO+6sB,IAE9C,OAAoB53N,GAAAA,cAAoB23N,GAAgBr5sB,SAAU,CAChEr/G,MAAO,MACO+gmB,GAAAA,cAAoBk3N,IAAM5hmB,EAAAA,GAAAA,GAAS,CACjDh6J,IAAKA,EACL5vD,UAAW2+M,IAAAA,CAAW0tmB,EAAkBrszB,IACvCsszB,EAAajrf,MAEdkrf,GAAuBj4N,GAAAA,WAAiB63N,IAC5CI,GAAQ1rzB,YAAc,UACtB,UC9BIolR,GAAY,CAAC,YAAa,OAAQ,aAAc,gBAAiB,UAAW,YAAa,MAAO,QAAS,YAAa,WAAY,aAAc,gBAAiB,SAAU,YAAa,gBAAiB,mBAUzMumiB,GAAa,aACbC,GAAa,aAEjB,SAASC,GAAkBC,GACzB,MAAO,KAAKp/xB,OAAOo/xB,EAAa16zB,OAAQ,QAE1C,SAAS26zB,GAASz7sB,EAAOvhD,GACvB,IAAIqlqB,EAAmB9jnB,EAAM05mB,UAC3BA,OAAiC,IAArBoK,EAA8B,cAAgBA,EAC1D43F,EAAc17sB,EAAM3xG,KACpBA,OAAuB,IAAhBqtzB,EAAyB,GAAKA,EACrC9B,EAAa55sB,EAAM45sB,WACnB+B,EAAgB37sB,EAAM27sB,cACtB/pb,EAAU5xR,EAAM4xR,QAChBgqb,EAAmB57sB,EAAM4/V,UACzBA,OAAiC,IAArBg8W,EAA8B,GAAKA,EAC/CC,EAAM77sB,EAAM67sB,IACZp9yB,EAAQuhG,EAAMvhG,MACd5P,EAAYmxG,EAAMnxG,UAClBk1tB,EAAW/jnB,EAAM+jnB,SACjB+3F,EAAa97sB,EAAM87sB,WACnBC,EAAgB/7sB,EAAM+7sB,cACtBp0rB,EAAS3nB,EAAM2nB,OACfoyrB,EAAmB/5sB,EAAMnxF,UACzBoxF,OAAiC,IAArB85sB,EAA8B,MAAQA,EAClDiC,EAAgBh8sB,EAAMg8sB,cACtBz2B,EAAkBvlrB,EAAMulrB,gBACxBr1d,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1CmniB,EAAmB,SAARJ,EACXlB,EAAqBL,KACrB4B,EAAkBxB,GAAeC,EAAoB,MACvDwB,GAAmBtrN,EAAAA,EAAAA,GAAeqrN,EAAiB,GACnDlla,EAAiBmla,EAAiB,GAClCC,EAAoBD,EAAiB,GACnCE,EAAuBrla,GAAkB,EACzCsla,EAAmB5B,GAAeC,EAAoB,IAAI3ikB,KAC5DukkB,GAAmB1rN,EAAAA,EAAAA,GAAeyrN,EAAkB,GACpDE,EAAaD,EAAiB,GAC9BE,EAAgBF,EAAiB,GAC/BG,EAAmBhC,GAAeC,EAAoB,GACxDgC,GAAmB9rN,EAAAA,EAAAA,GAAe6rN,EAAkB,GACpDE,EAAgBD,EAAiB,GACjCE,EAAmBF,EAAiB,GAClCG,EAAmBpC,GAAeC,EAAoB,GACxDoC,GAAmBlsN,EAAAA,EAAAA,GAAeisN,EAAkB,GACpDE,EAAYD,EAAiB,GAC7BE,EAAeF,EAAiB,GAC9BG,EAAmBxC,GAAeC,EAAoB,GACxDwC,GAAoBtsN,EAAAA,EAAAA,GAAeqsN,EAAkB,GACrDE,EAAcD,EAAkB,GAChCE,EAAiBF,EAAkB,GACjCh2G,GAAYzkI,EAAAA,GAAAA,UAAS,MACvB0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCm2G,EAAmBl2G,EAAW,GAC9Bm2G,EAAsBn2G,EAAW,GAC/BqC,GAAa/mI,EAAAA,GAAAA,UAAS,MACxBgnI,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxC+zG,GAAe9zG,EAAW,GAC1B+zG,GAAkB/zG,EAAW,GAC3Bg0G,GAAqBv6N,GAAAA,SAAc,WACrC,OAAqB,OAAjBq6N,IAAyBvB,EACpBhswB,OAAOsiF,iBAETirrB,IAAgB,IACtB,CAACA,GAAcxma,IACd4yT,IAAalnI,EAAAA,GAAAA,WAAS,GACxBmnI,IAAah5G,EAAAA,EAAAA,GAAe+4G,GAAY,GACxC+zG,GAAY9zG,GAAW,GACvB+zG,GAAe/zG,GAAW,GACxBg0G,GAAgB,GAAGzhyB,OAAOs9rB,EAAW,SAErCokG,GAAkB33yB,KAAKC,IAAIw2yB,EAAeI,GAE1Ce,GAAeh6F,IAAas3F,GAC5B2C,GAAmB3vzB,EAAKvN,QAAUi9zB,GAClC1kO,GAAa0qI,IAAau3F,GAI1B2C,GAAWD,IAAwC,kBAAbj6F,GAAyB11tB,EAAKvN,OAASijuB,EAC7Em6F,IAAa37O,EAAAA,GAAAA,UAAQ,WACvB,IAAIr2kB,EAAQmC,EAUZ,OATI2vzB,GAEA9xzB,EADqB,OAAnB8qZ,GAA2Bila,EACrB5tzB,EAEAA,EAAKpI,MAAM,EAAGkgB,KAAKG,IAAIjY,EAAKvN,OAAQu7zB,EAAuBz8W,IAExC,kBAAbmkR,IAChB73tB,EAAQmC,EAAKpI,MAAM,EAAG89tB,IAEjB73tB,IACN,CAACmC,EAAMuxc,EAAW5oD,EAAgB+sU,EAAUi6F,KAC3CxC,IAAej5O,EAAAA,GAAAA,UAAQ,WACzB,OAAIy7O,GACK3vzB,EAAKpI,MAAMy3zB,GAAqB,GAElCrvzB,EAAKpI,MAAMi4zB,GAAWp9zB,UAC5B,CAACuN,EAAM6vzB,GAAYF,GAAkBN,KAEpCxxoB,IAAS+1Z,EAAAA,GAAAA,cAAY,SAAUvhlB,EAAMW,GACvC,IAAImmP,EACJ,MAAuB,oBAAZoqJ,EACFA,EAAQlxY,GAE0E,QAAnF8mP,EAAOoqJ,IAAqB,OAATlxY,QAA0B,IAATA,OAAkB,EAASA,EAAKkxY,WAAgC,IAATpqJ,EAAkBA,EAAOnmP,IAC3H,CAACuwY,IACAusb,IAAmBl8O,EAAAA,GAAAA,aAAY23O,GAAc,SAAUl5zB,GACzD,OAAOA,GACN,CAACk5zB,IACJ,SAASwE,GAAmB1kvB,EAAO2kvB,EAAqBC,IAIlDd,KAAiB9jvB,QAAkC9gE,IAAxBylzB,GAAqCA,IAAwBf,KAG5FG,GAAgB/jvB,GACX4kvB,IACHV,GAAalkvB,EAAQrrE,EAAKvN,OAAS,GACf,OAApBykyB,QAAgD,IAApBA,GAAsCA,EAAgB7rtB,SAExD9gE,IAAxBylzB,GACFd,EAAoBc,IAOxB,SAASvE,GAAatyzB,EAAKsK,GACzB2qzB,GAAc,SAAU5vC,GACtB,IAAI/wsB,EAAQ,IAAIk8K,IAAI60hB,GAMpB,OALc,OAAV/6wB,EACFgqE,EAAMsyK,OAAO5mP,GAEbs0E,EAAMtW,IAAIh+D,EAAKsK,GAEVgqE,KAWX,SAASyivB,GAAal9zB,GACpB,OAAOm7zB,EAAWn8yB,IAAI6rK,GAAOgyoB,GAAW78zB,GAAQA,IAElDihlB,IAAgB,WACd,GAAI+5O,GAAmD,kBAApByB,IAAgCI,GAAY,CAC7E,IAAIzsK,EAAa2rK,EACbplxB,EAAMkmxB,GAAWp9zB,OACjBu7H,EAAYrkF,EAAM,EAEtB,IAAKA,EAEH,YADAomxB,GAAmB,EAAG,MAGxB,IAAK,IAAI7xzB,EAAI,EAAGA,EAAIyrC,EAAKzrC,GAAK,EAAG,CAC/B,IAAIiyzB,EAAmBD,GAAahyzB,GAMpC,GAJI0vzB,IACFuC,EAAmBA,GAAoB,QAGhB5lzB,IAArB4lzB,EAAgC,CAClCJ,GAAmB7xzB,EAAI,OAAGqM,GAAW,GACrC,MAIF,GADA64oB,GAAc+sK,EAGA,IAAdnisB,GAAmBo1hB,GAAc4qK,GAEjC9vzB,IAAM8vH,EAAY,GAAKo1hB,EAAa8sK,GAAalisB,IAAcggsB,EAAsB,CAEnF+B,GAAmB/hsB,EAAW,MAC9B,MACK,GAAIo1hB,EAAaqsK,GAAkBzB,EAAsB,CAE9D+B,GAAmB7xzB,EAAI,EAAGklpB,EAAa+sK,EAAmBpB,EAAcJ,GACxE,OAGAr1rB,GAAU42rB,GAAa,GAAKnB,EAAcf,GAC5CkB,EAAoB,SAGvB,CAAClB,EAAsBG,EAAYQ,EAAWI,EAAalxoB,GAAQgyoB,KAEtE,IAAIO,GAAcd,MAAenC,GAAa16zB,OAC1C49zB,GAAc,GACO,OAArBpB,GAA6BU,KAC/BU,GAAc,CACZ/3yB,SAAU,WACVzN,KAAMokzB,EACNhkzB,IAAK,IAGT,IAgCIqlzB,GAhCAC,GAAkB,CACpBllG,UAAWmkG,GACXj4M,WAAYo4M,GACZnvyB,UAAWmtyB,EACX3iO,WAAYA,IAGVwlO,GAAyBlD,EAAgB,SAAUj7zB,EAAMW,GAC3D,IAAImG,EAAM0kL,GAAOxrL,EAAMW,GACvB,OAAoB8hmB,GAAAA,cAAoB23N,GAAgBr5sB,SAAU,CAChEj6G,IAAKA,EACLpF,MAAOk5rB,EAAcA,EAAc,GAAIsjI,IAAkB,GAAI,CAC3DzjU,MAAO95f,EACPX,KAAMA,EACNkxY,QAASpqY,EACTsyzB,aAAcA,GACdj6yB,QAASxe,GAASq8zB,MAEnB/B,EAAcj7zB,EAAMW,KACrB,SAAUX,EAAMW,GAClB,IAAImG,EAAM0kL,GAAOxrL,EAAMW,GACvB,OAAoB8hmB,GAAAA,cAAoBk3N,IAAM5hmB,EAAAA,GAAAA,GAAS,GAAImmmB,GAAiB,CAC1EzjU,MAAO95f,EACPmG,IAAKA,EACL9G,KAAMA,EACNk5zB,WAAYuE,GACZvsb,QAASpqY,EACTsyzB,aAAcA,GACdj6yB,QAASxe,GAASq8zB,OAKlBoB,GAAmB,CACrB3jU,MAAOsjU,GAAcf,GAAqBztwB,OAAOsiF,iBACjD1jI,UAAW,GAAGutB,OAAOyhyB,GAAe,SACpC/D,aAnGF,SAA8B5+yB,EAAGpJ,GAC/BmrzB,EAAanrzB,GACb+qzB,EAAiBG,IAkGjBn9yB,QAAS4+yB,IAEX,GAAK1C,EAGMA,IACT4C,GAAwBx7N,GAAAA,cAAoB23N,GAAgBr5sB,SAAU,CACpEr/G,MAAOk5rB,EAAcA,EAAc,GAAIsjI,IAAkBE,KACxD/C,EAAcP,UANC,CAClB,IAAIuD,GAAmBjD,GAAcP,GACrCoD,GAAwBx7N,GAAAA,cAAoBk3N,IAAM5hmB,EAAAA,GAAAA,GAAS,GAAImmmB,GAAiBE,IAA+C,oBAArBC,GAAkCA,GAAiBvD,IAAgBuD,IAM/K,IAAIC,GAA4B77N,GAAAA,cAAoBljf,GAAWw4G,EAAAA,GAAAA,GAAS,CACtE5pN,UAAW2+M,IAAAA,EAAY6rY,IAAcqgI,EAAW7qtB,GAChD4P,MAAOA,EACPggD,IAAKA,GACJyxQ,GAAYguf,GAAWx3zB,IAAIm4zB,IAAyBZ,GAAWU,GAAW,KAAMh3rB,GAAuBw7d,GAAAA,cAAoBk3N,IAAM5hmB,EAAAA,GAAAA,GAAS,GAAImmmB,GAAiB,CAChKh5M,WAAYm4M,GACZlE,oBAAqBmE,GACrB7iU,MAAOuiU,GACP7uzB,UAAW,GAAGutB,OAAOyhyB,GAAe,WACpC/D,aAnHF,SAA4B5+yB,EAAGpJ,GAC7BurzB,EAAevrzB,IAmHf+N,SAAS,EACTpB,MAAOigzB,KACL/2rB,IAOJ,OANIo2rB,KACFiB,GAA4B77N,GAAAA,cAAoBh2Z,GAAgB,CAC9DttG,SA3IJ,SAA0B3kF,EAAG5a,GAC3B87zB,EAAkB97zB,EAAQ0/D,cA2IxBp0D,UAAWoyzB,IACVgB,KAEEA,GAET,IAAIC,GAA+B97N,GAAAA,WAAiBs4N,IACpDwD,GAAgBvvzB,YAAc,WAC9BuvzB,GAAgB5E,KAAOe,GACvB6D,GAAgB5D,WAAaA,GAC7B4D,GAAgB3D,WAAaA,GAE7B,ICnSA,GDmSA,GEnSW4D,GAAyB/7N,GAAAA,cAAoB,MACjD,SAASg8N,GAAU/+H,EAAM8iC,GAC9B,YAAatqtB,IAATwnrB,EACK,KAEF,GAAGhkqB,OAAOgkqB,EAAM,KAAKhkqB,OAAO8msB,GAM9B,SAASk8F,GAAUl8F,GAExB,OAAOi8F,GADEh8N,GAAAA,WAAiB+7N,IACLh8F,GCZvB,IAAIpuc,GAAY,CAAC,WAAY,UAIlBuqiB,GAA2Bl8N,GAAAA,cAAoB,MAW3C,SAASm8N,GAA2B93kB,GACjD,IAAIj8O,EAAWi8O,EAAKj8O,SAClBqU,EAAS4nO,EAAK5nO,OACdswT,EAAYm0Y,GAAyB78d,EAAMstC,IACzC35Q,EAAUgolB,GAAAA,WAAiBk8N,IAC3BE,EAAqBh9O,IAAQ,WAC/B,OAhBJ,SAAoBsqM,EAAQzlxB,GAC1B,IAAI00E,EAAQw/mB,EAAc,GAAIuxF,GAO9B,OANAvlxB,OAAOC,KAAKH,GAAQ3G,SAAQ,SAAU+G,GACpC,IAAIpF,EAAQgF,EAAOI,QACLoR,IAAVxW,IACF05E,EAAMt0E,GAAOpF,MAGV05E,EAQE0jvB,CAAWrkzB,EAAS+0T,KAC1B,CAAC/0T,EAAS+0T,IAAY,SAAUjpS,EAAM6X,GACvC,OAAQl/B,IAAWqnB,EAAK,KAAO6X,EAAK,KAAOorF,GAAQjjG,EAAK,GAAI6X,EAAK,IAAI,OAEvE,OAAoBqkjB,GAAAA,cAAoBk8N,GAAY59sB,SAAU,CAC5Dr/G,MAAOm9zB,GACNh0zB,GC3BL,IAAIk0zB,GAAY,GAILC,GAAmCv8N,GAAAA,cAAoB,MAC3D,SAASw8N,KACd,OAAOx8N,GAAAA,WAAiBu8N,IAInB,IAAIE,GAAkCz8N,GAAAA,cAAoBs8N,IAC1D,SAASI,GAAY38F,GAC1B,IAAI48F,EAAgB38N,GAAAA,WAAiBy8N,IACrC,OAAOz8N,GAAAA,SAAc,WACnB,YAAoBvqlB,IAAbsqtB,EAAyB,GAAG9msB,QAAOi1kB,EAAAA,EAAAA,GAAmByuN,GAAgB,CAAC58F,IAAa48F,IAC1F,CAACA,EAAe58F,IAKd,IAAI68F,GAA+B58N,GAAAA,cAAoB,MCpB9D,GADkCA,GAAAA,cAAoB,ICCtD,SAAS/6lB,GAAUquE,GACjB,IAAIupvB,EAAkBz3zB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GACrF,GAAIqgM,GAAUnyH,GAAO,CACnB,IAAI4gL,EAAW5gL,EAAK4gL,SAAS5zN,cACzBw8xB,EAEJ,CAAC,QAAS,SAAU,WAAY,UAAU3jsB,SAAS+6H,IAEnD5gL,EAAK+oO,mBAEQ,MAAbnoD,KAAsB5gL,EAAKjsE,aAAa,QAGpC01zB,EAAezpvB,EAAKjsE,aAAa,YACjC21zB,EAAclwwB,OAAOiwwB,GAGrB5grB,EAAW,KAWf,OAVI4grB,IAAiBjwwB,OAAOjmB,MAAMm2xB,GAChC7grB,EAAW6grB,EACFF,GAAmC,OAAb3grB,IAC/BA,EAAW,GAIT2grB,GAAsBxpvB,EAAK7qE,WAC7B0zI,EAAW,MAEO,OAAbA,IAAsBA,GAAY,GAAK0grB,GAAmB1grB,EAAW,GAE9E,OAAO,EAEF,SAAS8grB,GAAiB3pvB,GAC/B,IAAIupvB,EAAkBz3zB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GACjFs5D,GAAMwviB,EAAAA,EAAAA,GAAmB56hB,EAAKvwE,iBAAiB,MAAME,QAAO,SAAUkZ,GACxE,OAAOlX,GAAUkX,EAAO0gzB,MAK1B,OAHI53zB,GAAUquE,EAAMupvB,IAClBn+vB,EAAI67F,QAAQjnF,GAEP5U,EClCT,IAAIo+c,GAAOk+M,GAAAA,KACTp+M,GAAQo+M,GAAAA,MACRe,GAAKf,GAAAA,GACLgB,GAAOhB,GAAAA,KACPI,GAAQJ,GAAAA,MACRU,GAAMV,GAAAA,IACNc,GAAOd,GAAAA,KACPa,GAAMb,GAAAA,IACJkiG,GAAY,CAACnhG,GAAIC,GAAMl/M,GAAMF,IAkFjC,SAASugT,GAAqBhgzB,EAAW+qC,GAEvC,OADW+0wB,GAAiB9/yB,GAAW,GAC3Bla,QAAO,SAAUy3qB,GAC3B,OAAOxynB,EAAShxB,IAAIwjpB,MAGxB,SAAS0iJ,GAAoBC,EAAsBn1wB,EAAUo1wB,GAC3D,IAAI10zB,EAASxD,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,EAEjF,IAAKi4zB,EACH,OAAO,KAIT,IAAIE,EAAoCJ,GAAqBE,EAAsBn1wB,GAG/EquB,EAAQgnvB,EAAkC5/zB,OAC1C6/zB,EAAaD,EAAkCjksB,WAAU,SAAUohjB,GACrE,OAAO4iJ,IAAqB5iJ,KAc9B,OAZI9xqB,EAAS,GACS,IAAhB40zB,EACFA,EAAajnvB,EAAQ,EAErBinvB,GAAc,EAEP50zB,EAAS,IAClB40zB,GAAc,GAKTD,EAHPC,GAAcA,EAAajnvB,GAASA,GAKvB,SAASy/uB,GAAiBt0vB,EAAMsxvB,EAAW5lqB,EAAO9lJ,EAAIwjyB,EAAc2yB,EAASC,EAAYC,EAAkBC,EAA0BC,GAClJ,IAAIC,EAAS99N,GAAAA,SACT8mH,EAAY9mH,GAAAA,SAChB8mH,EAAUnre,QAAUq3kB,EACpB,IAAIjlB,EAAW,WACb1qF,GAAAA,OAAWy6G,EAAOnilB,UAOpB,OALAqkX,GAAAA,WAAgB,WACd,OAAO,WACL+tM,OAED,IACI,SAAUlwyB,GACf,IAAI08C,EAAQ18C,EAAE08C,MACd,GAAI,GAAGthB,OAAOikyB,GAAW,CAAC9hG,GAAOM,GAAKI,GAAMD,KAAM1imB,SAAS5+E,GAAQ,CAEjE,IAAI2N,EACA61wB,EACAC,EAGAC,EAAkB,WAapB,OAZA/1wB,EAAW,IAAI85D,IACf+7sB,EAAc,IAAIlpkB,IAClBmpkB,EAAc,IAAInpkB,IACP4okB,IACNng0B,SAAQ,SAAU+G,GACrB,IAAIlH,EAAU0C,SAASo3E,cAAc,kBAAkBh+C,OAAO+iyB,GAAU10zB,EAAIjD,GAAM,OAC9ElH,IACF+qD,EAASvpD,IAAIxB,GACb6g0B,EAAY37vB,IAAIllE,EAASkH,GACzB05zB,EAAY17vB,IAAIh+D,EAAKlH,OAGlB+qD,GAET+1wB,IAGA,IACIX,EAzFV,SAAyBv4zB,EAAemjD,GAEtC,IADA,IAAIyzL,EAAU52O,GAAiBlF,SAASkF,cACjC42O,GAAS,CACd,GAAIzzL,EAAShxB,IAAIykN,GACf,OAAOA,EAETA,EAAUA,EAAQr2M,cAEpB,OAAO,KAiFoB44xB,CADHH,EAAY7gzB,IAAI81yB,GACkB9qwB,GAClDi2wB,EAAeH,EAAY9gzB,IAAIogzB,GAC/Bc,EA9JV,SAAmB18vB,EAAM28vB,EAAajxqB,EAAO7yG,GAC3C,IAAI+jxB,EAASC,EAAaC,EAAW9/J,EACjC56nB,EAAO,OACP6X,EAAO,OACPvzC,EAAW,WACXU,EAAS,SAGb,GAAa,WAAT44D,GAAqBnnB,IAAU6grB,GACjC,MAAO,CACLqjG,eAAe,GAGnB,IAAI7urB,GAAU0urB,EAAU,IAAIpnvB,EAAAA,EAAAA,GAAgBonvB,EAASviG,GAAIj4rB,IAAOozC,EAAAA,EAAAA,GAAgBonvB,EAAStiG,GAAMrgrB,GAAO2ixB,GAClGpywB,GAAcqywB,EAAc,IAAIrnvB,EAAAA,EAAAA,GAAgBqnvB,EAAazhT,GAAM1vX,EAAQzxG,EAAO7X,IAAOozC,EAAAA,EAAAA,GAAgBqnvB,EAAa3hT,GAAOxvX,EAAQtpH,EAAO6X,IAAOu7B,EAAAA,EAAAA,GAAgBqnvB,EAAaviG,GAAM5ztB,IAAW8uE,EAAAA,EAAAA,GAAgBqnvB,EAAanjG,GAAOhztB,GAAWm2zB,GAChPtywB,GAAYuywB,EAAY,IAAItnvB,EAAAA,EAAAA,GAAgBsnvB,EAAWziG,GAAIj4rB,IAAOozC,EAAAA,EAAAA,GAAgBsnvB,EAAWxiG,GAAMrgrB,IAAOu7B,EAAAA,EAAAA,GAAgBsnvB,EAAWpjG,GAAOhztB,IAAW8uE,EAAAA,EAAAA,GAAgBsnvB,EAAW9iG,GAAK5ytB,IAASouE,EAAAA,EAAAA,GAAgBsnvB,EAAW1hT,GAAM1vX,EAAQhlJ,EAAWU,IAASouE,EAAAA,EAAAA,GAAgBsnvB,EAAW5hT,GAAOxvX,EAAQtkJ,EAASV,GAAWo2zB,GAU/T,OADsF,QAA1E9/J,EARE,CACZ9uhB,OAAQA,EACR1jF,WAAYA,EACZD,SAAUA,EACVyywB,UAAW9urB,EACX+urB,cAAe1ywB,EACf2ywB,YAAa3ywB,GAEgB,GAAGhzB,OAAOyoC,GAAMzoC,OAAOolyB,EAAc,GAAK,eAAkC,IAAb3/J,OAAsB,EAASA,EAASnknB,IAEpI,KAAKzW,EACH,MAAO,CACLl7B,QAAS,EACTkjiB,SAAS,GAEb,KAAKnwf,EACH,MAAO,CACL/yC,OAAQ,EACRkjiB,SAAS,GAEb,KAAKhjiB,EACH,MAAO,CACLF,QAAS,EACTkjiB,SAAS,GAEb,KAAK1jiB,EACH,MAAO,CACLQ,OAAQ,EACRkjiB,SAAS,GAEb,QACE,OAAO,MA+GSh4S,CAAUpyL,EAAgD,IAA1Cg8vB,EAAWS,GAAc,GAAMxg0B,OAAcyvJ,EAAO7yG,GAGpF,IAAK6jxB,GAAa7jxB,IAAUuhrB,IAAQvhrB,IAAUshrB,GAC5C,QAIEqhG,GAAU/jsB,SAAS5+E,IAAU,CAACuhrB,GAAMD,IAAK1imB,SAAS5+E,KACpD18C,EAAE6G,iBAEJ,IAAIm6zB,EAAW,SAAkBC,GAC/B,GAAIA,EAAa,CACf,IAAIC,EAAqBD,EAGrBxhwB,EAAOwhwB,EAAY7nvB,cAAc,KACxB,OAAT3Z,QAA0B,IAATA,GAAmBA,EAAKj2D,aAAa,UACxD03zB,EAAqBzhwB,GAEvB,IAAIo/nB,EAAYshI,EAAY9gzB,IAAI4hzB,GAChCnB,EAAiBjhI,GAOjBqxG,IACA+vB,EAAOnilB,QAAU0ne,IAAI,WACfyD,EAAUnre,UAAY+gd,GACxBqiI,EAAmB3g0B,aAK3B,GAAI,CAAC09tB,GAAMD,IAAK1imB,SAAS5+E,IAAU6jxB,EAAUtyR,UAAYwxR,EAAkB,CAGzE,IAAID,EAQA3rwB,EACAstwB,EAAoB7B,GALtBE,EAHGC,GAA6B,WAAT57vB,EApJjC,SAAyBvkE,GAEvB,IADA,IAAIw+O,EAAUx+O,EACPw+O,GAAS,CACd,GAAIA,EAAQt0O,aAAa,kBACvB,OAAOs0O,EAETA,EAAUA,EAAQr2M,cAKpB,OAAO,KA4IwB25xB,CAAgB3B,GAFhBxyB,EAAanvjB,QAO6BzzL,GAEjEwJ,EADEnX,IAAUuhrB,GACIkjG,EAAkB,GACzBzkxB,IAAUshrB,GACHmjG,EAAkBA,EAAkBrh0B,OAAS,GAE7Cy/zB,GAAoBC,EAAsBn1wB,EAAUo1wB,EAAkBc,EAAUx1zB,QAGlGi2zB,EAASntwB,QAGJ,GAAI0swB,EAAUK,cAEnBb,EAAyBO,QAEpB,GAAIC,EAAUx1zB,OAAS,EAC5Bg1zB,EAAyBO,GAAc,GACvCpwB,IACA+vB,EAAOnilB,QAAU0ne,IAAI,WAEnB46G,IACA,IAAIiB,EAAY5B,EAAiBj2zB,aAAa,iBAI1CqqD,EAAgB0rwB,GAHIv9zB,SAASC,eAAeo/zB,GAGWh3wB,GAG3D22wB,EAASntwB,KACR,QACE,GAAI0swB,EAAUx1zB,OAAS,EAAG,CAC/B,IAAIg2rB,EAAU8+H,EAAWS,GAAc,GACnClwb,EAAY2wT,EAAQA,EAAQjhsB,OAAS,GACrCwh0B,EAAoBpB,EAAY7gzB,IAAI+wX,GAGxC2vb,EAAyB3vb,GAAW,GACpC4wb,EAASM,IAKO,OAApBtB,QAAgD,IAApBA,GAAsCA,EAAgBhg0B,ICpQtF,IAAIuh0B,GAAa,yBACbC,GAAa,SAAoBzgI,GACnC,OAAOA,EAAQtwrB,KAAK8wzB,KAKXE,GAAe,eACX,SAASC,KACtB,IAAIh+G,EAAkBvhH,GAAAA,SAAe,IAEnCw/N,GADmB9xN,EAAAA,EAAAA,GAAe6zG,EAAiB,GACZ,GACrCk+G,GAAcngP,EAAAA,GAAAA,QAAO,IAAIzqV,KACzB6qkB,GAAcpgP,EAAAA,GAAAA,QAAO,IAAIzqV,KACzBsse,EAAmBnhI,GAAAA,SAAe,IACpCohI,GAAmB1zH,EAAAA,EAAAA,GAAeyzH,EAAkB,GACpDw+F,EAAev+F,EAAiB,GAChCw+F,EAAkBx+F,EAAiB,GACjCy+F,GAAYvgP,EAAAA,GAAAA,QAAO,GACnBgiI,GAAahiI,EAAAA,GAAAA,SAAO,GAMpBwgP,GAAehhP,EAAAA,GAAAA,cAAY,SAAUz6kB,EAAKu6rB,GAO5C,IAAImhI,EAAgBV,GAAWzgI,GAC/B8gI,EAAY/jlB,QAAQt5K,IAAI09vB,EAAe17zB,GACvCo7zB,EAAY9jlB,QAAQt5K,IAAIh+D,EAAK07zB,GAC7BF,EAAUlklB,SAAW,EACrB,IAAIr0O,EAAKu4zB,EAAUlklB,SC1ChB,SAAmB9vL,GAExBrQ,QAAQ/tC,UAAUouC,KAAKgQ,GDyCrBm0wB,EAAU,WACJ14zB,IAAOu4zB,EAAUlklB,UAjBlB2le,EAAW3le,SACd6jlB,EAAoB,UAoBrB,IACCS,GAAiBnhP,EAAAA,GAAAA,cAAY,SAAUz6kB,EAAKu6rB,GAC9C,IAAImhI,EAAgBV,GAAWzgI,GAC/B8gI,EAAY/jlB,QAAQsP,OAAO80kB,GAC3BN,EAAY9jlB,QAAQsP,OAAO5mP,KAC1B,IACC67zB,GAAsBphP,EAAAA,GAAAA,cAAY,SAAU16kB,GAC9Cw7zB,EAAgBx7zB,KACf,IACCs5zB,GAAa5+O,EAAAA,GAAAA,cAAY,SAAUihJ,EAAUogG,GAC/C,IAAI3yzB,EAAWiyzB,EAAY9jlB,QAAQz+N,IAAI6itB,IAAa,GAChD37tB,EAAmBoJ,EAhDP1C,MAAMs0zB,IAoDtB,OAHIe,GAAmBR,EAAaxmsB,SAAS/0H,EAAK,KAChDA,EAAKm2J,QAAQ+kqB,IAERl7zB,IACN,CAACu7zB,IACAS,GAAethP,EAAAA,GAAAA,cAAY,SAAUuhP,EAAUtgG,GACjD,OAAOsgG,EAASzgzB,MAAK,SAAU0gzB,GAE7B,OADkB5C,EAAW4C,GAAS,GACnBnnsB,SAAS4mmB,QAE7B,CAAC29F,IAYA6C,GAAiBzhP,EAAAA,GAAAA,cAAY,SAAUz6kB,GACzC,IAAI07zB,EAAgB,GAAG9myB,OAAOwmyB,EAAY9jlB,QAAQz+N,IAAI7Y,IAAM40B,OAAOmmyB,IAC/DiB,EAAW,IAAIr+sB,IAMnB,OALAksf,EAAAA,EAAAA,GAAmBwxN,EAAY/jlB,QAAQv3O,QAAQ9G,SAAQ,SAAUgj0B,GAC3DA,EAAQvnsB,WAAWgnsB,IACrBM,EAAS1h0B,IAAI+g0B,EAAY/jlB,QAAQz+N,IAAIojzB,OAGlCD,IACN,IAMH,OALArgO,GAAAA,WAAgB,WACd,OAAO,WACLshH,EAAW3le,SAAU,KAEtB,IACI,CAELmklB,aAAcA,EACdG,eAAgBA,EAChBC,oBAAqBA,EAErBE,aAAcA,EACd1C,WAAYA,EACZD,QAlCY,WACZ,IAAIr5zB,GAAO8pmB,EAAAA,EAAAA,GAAmBuxN,EAAY9jlB,QAAQv3O,QAIlD,OAHIu7zB,EAAahi0B,QACfyG,EAAKnG,KAAKqh0B,IAELl7zB,GA8BPm8zB,eAAgBA,GEpGL,SAASC,GAAgBhhxB,GACtC,IAAIihxB,EAASzgO,GAAAA,OAAaxgjB,GAC1BihxB,EAAO9klB,QAAUn8L,EACjB,IAAIqM,EAAWm0iB,GAAAA,aAAkB,WAE/B,IADA,IAAI0gO,EACKtrlB,EAAOhwO,UAAUzH,OAAQkmB,EAAO,IAAIjhB,MAAMwyO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ExxN,EAAKwxN,GAAQjwO,UAAUiwO,GAEzB,OAA8C,QAAtCqrlB,EAAkBD,EAAO9klB,eAAyC,IAApB+klB,OAA6B,EAASA,EAAgB5i0B,KAAKulB,MAAMq9yB,EAAiB,CAACD,GAAQxnyB,OAAOpV,MACvJ,IACH,OAAO27B,EAAOqM,OAAWp2C,ECb3B,IAAIkrzB,GAAe39yB,KAAK+5D,SAASzrB,QAAQ,GAAGxlD,WAAWhJ,MAAM,GACzD89zB,GAAa,ECFF,SAASC,GAAU9gG,EAAUt3tB,EAAU+3tB,EAAcC,GAClE,IAAI96B,EAAoB3lG,GAAAA,WAAiBk8N,IACvClJ,EAAYrtH,EAAkBqtH,UAC9Blkf,EAAW62X,EAAkB72X,SAC7BC,EAAa42X,EAAkB52X,WAC7BlmM,EAAM,CACRrgH,OAAQwqyB,IAAcjzF,GAoBxB,OAhBKt3tB,IACHogI,EAAI23lB,aAAe,SAAUtslB,GACV,OAAjBsslB,QAA0C,IAAjBA,GAAmCA,EAAa,CACvEn8tB,IAAK07tB,EACL7rlB,SAAUA,IAEZ46L,EAASixZ,IAEXl3lB,EAAI43lB,aAAe,SAAUvslB,GACV,OAAjBuslB,QAA0C,IAAjBA,GAAmCA,EAAa,CACvEp8tB,IAAK07tB,EACL7rlB,SAAUA,IAEZ66L,EAAWgxZ,KAGRl3lB,EC1BM,SAASi4rB,GAAkBr7yB,GACxC,IAAIkgrB,EAAoB3lG,GAAAA,WAAiBk8N,IACvCx6vB,EAAOikoB,EAAkBjkoB,KACzBv7C,EAAMw/qB,EAAkBx/qB,IACxB46yB,EAAep7H,EAAkBo7H,aACnC,GAAa,WAATr/vB,EACF,OAAO,KAGT,OAAOv7C,EAAM,CACX6wB,aAFQvxB,EAEYs7yB,GAClB,CACFlqxB,YAJQpxB,EAIWs7yB,GCZR,SAAS1of,GAAKh0F,GAC3B,IAAIrnO,EAAOqnO,EAAKrnO,KACd6/F,EAAQwnI,EAAKxnI,MACbz0G,EAAWi8O,EAAKj8O,SAQlB,OANoB,oBAAT4U,EACegjlB,GAAAA,cAAoBhjlB,EAAMm7qB,EAAc,GAAIt7kB,IAGzD7/F,IAEM5U,GAAY,KCZjC,IAAIupR,GAAY,CAAC,QAOV,SAASqviB,GAAa38kB,GAC3B,IAAI9mP,EAAO8mP,EAAK9mP,KACd0j0B,EAAW//G,GAAyB78d,EAAMstC,IAO5C,OANAxtR,OAAOi+D,eAAe6+vB,EAAU,OAAQ,CACtC/jzB,IAAK,WAEH,OADA++C,IAAQ,EAAO,uHACR1+D,KAGJ0j0B,ECRT,IAAItviB,GAAY,CAAC,QAAS,YAAa,cACrCm6C,GAAa,CAAC,QAAS,YAAa,WAAY,UAAW,WAAY,WAAY,WAAY,OAAQ,eAAgB,eAAgB,UAAW,YAAa,WAC/J8rf,GAAa,CAAC,UAmBZsJ,GAA8B,SAAU9/G,IAC1Cn0G,EAAAA,EAAAA,GAAUi0N,EAAgB9/G,GAC1B,IAAIxvlB,GAAS46e,EAAAA,EAAAA,GAAa00N,GAC1B,SAASA,IAEP,OADAz1N,EAAAA,EAAAA,GAAgBpumB,KAAM6j0B,GACftvsB,EAAOvuG,MAAMhmB,KAAM+H,WAwB5B,OAtBA0mmB,EAAAA,EAAAA,GAAao1N,EAAgB,CAAC,CAC5B78zB,IAAK,SACLpF,MAAO,WACL,IAAIguU,EAAc5vU,KAAKw/G,MACrB5zF,EAAQgkT,EAAYhkT,MACpB8qT,EAAY9G,EAAY8G,UACxBqgB,EAAannB,EAAYmnB,WAOvBitc,EAAc39C,GANJxiC,GAAyBj0Y,EAAat7C,IAMlB,CAAC,WAAY,iBAAkB,cAAe,iBAEhF,OADA11N,IAAS83Q,EAAW,2EACAisR,GAAAA,cAAoBs4N,GAAAA,MAAehjmB,EAAAA,GAAAA,GAAS,GAAIy+G,EAAW,CAC7E9qT,MAAwB,kBAAVA,EAAqBA,OAAQxT,GAC1C4rxB,EAAa,CACd/luB,IAAK84R,SAIJ8se,EA7ByB,CA8BhClhO,GAAAA,WAIEmhO,GAAgCnhO,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACpE,IAAIuupB,EACAvusB,EAAQuhG,EAAMvhG,MAChB5P,EAAYmxG,EAAMnxG,UAClBq0tB,EAAWljnB,EAAMkjnB,SAEjBt3tB,GADUo0G,EAAMuktB,QACLvktB,EAAMp0G,UACjB44zB,EAAWxktB,EAAMwktB,SACjBj5zB,EAAWy0G,EAAMz0G,SACjBynI,EAAOhzB,EAAMgzB,KACb2wlB,EAAe3jnB,EAAM2jnB,aACrBC,EAAe5jnB,EAAM4jnB,aACrBp8pB,EAAUw4C,EAAMx4C,QAChB6wC,EAAY2H,EAAM3H,UAClB/5E,EAAU0hF,EAAM1hF,QAChB4xS,EAAYm0Y,GAAyBrkmB,EAAOivN,IAC1Cw1f,EAAYrF,GAAUl8F,GACtBp6B,EAAoB3lG,GAAAA,WAAiBk8N,IACvC3lG,EAAY5wB,EAAkB4wB,UAC9Bx/Y,EAAc4uX,EAAkB5uX,YAChCwqf,EAAkB57H,EAAkBl9rB,SACpC+4zB,EAAmB77H,EAAkB67H,iBACrCC,EAAkB97H,EAAkB07H,SACpClhd,EAAewlV,EAAkBxlV,aACjCrxC,EAAW62X,EAAkB72X,SAE7B4yf,EADuB1hO,GAAAA,WAAiB2hO,IACKD,wBAC3CE,EAAU,GAAG3oyB,OAAOs9rB,EAAW,SAC/BsrG,EAAoB7hO,GAAAA,SACpB5rQ,EAAa4rQ,GAAAA,SACbsoN,EAAiBiZ,GAAmB94zB,EACpCq5zB,EAAephH,GAAcplpB,EAAK84R,GAClC2te,EAAgBrF,GAAY38F,GAQhC,IAAIiiG,EAAe,SAAsBnk0B,GACvC,MAAO,CACLwG,IAAK07tB,EAELnhC,SAAS1wF,EAAAA,EAAAA,GAAmB6zN,GAAe3wyB,UAC3C7zB,KAAMsk0B,EAAkBlmlB,QACxBznG,SAAUr2I,IAKVok0B,EAAiBZ,GAAYI,EAG7BS,EAAarB,GAAU9gG,EAAUuoF,EAAgB9nF,EAAcC,GACjEj4sB,EAAS05yB,EAAW15yB,OACpB25yB,EAAcjhH,GAAyBghH,EAAYtK,IAGjDttyB,EAAW61V,EAAahnP,SAAS4mmB,GAGjCqiG,EAAiBtB,GAAkBiB,EAAcpk0B,QAgCjD0k0B,EAAkB,GACH,WAAfxltB,EAAMgzB,OACRwyrB,EAAgB,iBAAmB/3yB,GAErC,IAAI8myB,EAA0BpxN,GAAAA,cAAoBkhO,IAAgB5rmB,EAAAA,GAAAA,GAAS,CACzEh6J,IAAKumwB,EACLzte,WAAY0te,EACZjyrB,KAAe,OAATA,EAAgB,OAASA,GAAQ,WACvCsM,SAAU1zI,EAAW,MAAQ,EAC7B,eAAgB+4zB,GAAoBF,EAAY,KAAOA,GACtDv0f,EAAWo1f,EAAaE,EAAiB,CAC1C32yB,UAAW,KACX,gBAAiBjjB,EACjB6S,MAAO68qB,EAAcA,EAAc,GAAIiqI,GAAiB9mzB,GACxD5P,UAAW2+M,IAAAA,CAAWu3mB,GAAU/3G,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAO2oyB,EAAS,WAAYp5yB,IAAS0uD,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAO2oyB,EAAS,aAAct3yB,IAAW4sD,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAO2oyB,EAAS,aAActZ,GAAiBz+F,GAAcn+sB,GAC7R24D,QA5CoB,SAAyBxmE,GAC7C,IAAIyqzB,EAAJ,CAGA,IAAIr8xB,EAAO+1yB,EAAank0B,GACZ,OAAZwmE,QAAgC,IAAZA,GAA8BA,EAAQ28vB,GAAa/0yB,IACvE8qT,EAAY9qT,KAuCZipF,UArCsB,SAA2Br3G,GAEjD,GADc,OAAdq3G,QAAoC,IAAdA,GAAgCA,EAAUr3G,GAC5DA,EAAE08C,QAAUygrB,GAAAA,MAAe,CAC7B,IAAI/usB,EAAO+1yB,EAAank0B,GAGZ,OAAZwmE,QAAgC,IAAZA,GAA8BA,EAAQ28vB,GAAa/0yB,IACvE8qT,EAAY9qT,KA+BdkP,QAvBoB,SAAyBt9B,GAC7CixU,EAASixZ,GACG,OAAZ5ksB,QAAgC,IAAZA,GAA8BA,EAAQt9B,MAsBxDuK,EAAuB43lB,GAAAA,cAAoB3nR,GAAM,CACnDx7N,MAAOs7kB,EAAcA,EAAc,GAAIt7kB,GAAQ,GAAI,CACjDzxG,WAAYkf,IAEdtN,KAAMilzB,KAOR,OALIP,IACFtQ,EAAasQ,EAAwBtQ,EAAYv0sB,EAAO,CACtDvyF,SAAUA,KAGP8myB,KAET,SAAStuc,GAASjmQ,EAAOvhD,GACvB,IAAIykqB,EAAWljnB,EAAMkjnB,SAGjBj+hB,EAAU06nB,KACV8F,EAAmB5F,GAAY38F,GAWnC,OARA//H,GAAAA,WAAgB,WACd,GAAIl+Z,EAEF,OADAA,EAAQg+nB,aAAa//F,EAAUuiG,GACxB,WACLxgoB,EAAQm+nB,eAAelgG,EAAUuiG,MAGpC,CAACA,IACAxgoB,EACK,KAIWk+Z,GAAAA,cAAoBmhO,IAAkB7rmB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CAC5EvhD,IAAKA,KAGT,OAA4B0kiB,GAAAA,WAAiBl9O,ICpNzCnxF,GAAY,CAAC,YAAa,YAI1B4wiB,GAAsB,SAA6Bl+kB,EAAM/oL,GAC3D,IAAI5vD,EAAY24O,EAAK34O,UACnBtD,EAAWi8O,EAAKj8O,SAChB2kU,EAAYm0Y,GAAyB78d,EAAMstC,IACzCg0a,EAAoB3lG,GAAAA,WAAiBk8N,IACvC3lG,EAAY5wB,EAAkB4wB,UAC9B70pB,EAAOikoB,EAAkBjkoB,KACzBv7C,EAAMw/qB,EAAkBx/qB,IAC1B,OAAoB65kB,GAAAA,cAAoB,MAAM1qY,EAAAA,GAAAA,GAAS,CACrD5pN,UAAW2+M,IAAAA,CAAWksgB,EAAWpwsB,GAAO,GAAG8S,OAAOs9rB,EAAW,QAAS,GAAGt9rB,OAAOs9rB,EAAW,QAAS,GAAGt9rB,OAAOs9rB,EAAW,KAAKt9rB,OAAgB,WAATyoC,EAAoB,SAAW,YAAah2D,GACjLmkI,KAAM,QACLk9L,EAAW,CACZ,kBAAkB,EAClBzxQ,IAAKA,IACHlzD,IAEFo6zB,GAA2BxiO,GAAAA,WAAiBuiO,IAChDC,GAAYj2zB,YAAc,cAC1B,UCrBO,SAAS20uB,GAAc94uB,EAAUw2rB,GACtC,OAAOzne,GAAQ/uN,GAAU7E,KAAI,SAAU4Y,EAAOje,GAC5C,GAAkB8hmB,GAAAA,eAAqB7jlB,GAAQ,CAC7C,IAAIsmzB,EAAWC,EACXr+zB,EAAM8X,EAAM9X,IACZ07tB,EAA+H,QAAnH0iG,EAA6C,QAAhCC,EAAevmzB,EAAM0gG,aAAoC,IAAjB6ltB,OAA0B,EAASA,EAAa3iG,gBAAoC,IAAd0iG,EAAuBA,EAAYp+zB,GAClJ,OAAb07tB,QAAkCtqtB,IAAbsqtB,KAElCA,EAAW,WAAW9msB,OAAO,GAAGA,QAAOi1kB,EAAAA,EAAAA,GAAmB0wF,GAAU,CAAC1gsB,IAAQoQ,KAAK,OAEpF,IAAIovxB,EAAa,CACfr5xB,IAAK07tB,EACLA,SAAUA,GAKZ,OAAoB//H,GAAAA,aAAmB7jlB,EAAOuhxB,GAEhD,OAAOvhxB,KCtBX,IAAIsoxB,GAAqB,CACvBtP,QAAS,EACTC,QAAS,GAEA/zD,GAAa,CACtB56G,QAAS,CACP1pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ79K,SAAU,CACR7pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ/9K,WAAY,CACV3pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ99K,YAAa,CACX5pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ9C,QAAS,CACP5kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ3C,WAAY,CACV/kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ7C,SAAU,CACR7kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ5C,YAAa,CACX9kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,KAGHk+B,GAAgB,CACzBl8M,QAAS,CACP1pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ79K,SAAU,CACR7pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ/9K,WAAY,CACV3pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ99K,YAAa,CACX5pK,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ7C,SAAU,CACR7kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ5C,YAAa,CACX9kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ9C,QAAS,CACP5kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,IAEZ3C,WAAY,CACV/kV,OAAQ,CAAC,KAAM,MACfv9U,SAAUilqB,KCrEP,SAAS19D,GAAUrlqB,EAAMwxoB,EAAQ0vH,GACtC,OAAI1vH,IAGA0vH,EACKA,EAAelhwB,IAASkhwB,EAAer6sB,WADhD,GCMF,IAAIs6sB,GAAoB,CACtB32wB,WAAY,aACZD,SAAU,WACV,gBAAiB,WACjB,iBAAkB,WAEL,SAAS62wB,GAAaz+kB,GACnC,IAAIkye,EAAYlye,EAAKkye,UACnBrwtB,EAAUm+O,EAAKn+O,QACfkC,EAAWi8O,EAAKj8O,SAChBoyI,EAAQ6pG,EAAK7pG,MACbyhpB,EAAiB53iB,EAAK43iB,eACtB8mC,EAAc1+kB,EAAK0+kB,YACnBt6zB,EAAW47O,EAAK57O,SAChBi5D,EAAO2iL,EAAK3iL,KACZ0guB,EAAkB/9iB,EAAK+9iB,gBACrBz8F,EAAoB3lG,GAAAA,WAAiBk8N,IACvCr3yB,EAAoB8grB,EAAkB9grB,kBACtCsB,EAAMw/qB,EAAkBx/qB,IACxB68yB,EAAmBr9H,EAAkBq9H,iBACrCC,EAAoBt9H,EAAkBs9H,kBACtCl1C,EAAoBpoF,EAAkBooF,kBACtCm1C,EAAuBv9H,EAAkBu9H,qBACzCC,EAAqBx9H,EAAkBw9H,mBACvCppG,EAAgBp0B,EAAkBo0B,cAClC7mB,EAASvN,EAAkBuN,OAC3B0vH,EAAiBj9H,EAAkBi9H,eACjCrhH,EAAkBvhH,GAAAA,UAAe,GACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD6hH,EAAe5hH,EAAiB,GAChC6hH,EAAkB7hH,EAAiB,GACjCigB,EAAkBtpC,EAAcA,EAAc,GAAlChyqB,EAAsCw8yB,GAAqEthG,IAArD0sD,GAClEoO,EAAiB0mC,GAAkBnhwB,GACnC4hwB,EAAev8F,GAAUrlqB,EAAMwxoB,EAAQ0vH,GACvCW,EAAkBvjO,GAAAA,OAAasjO,GACtB,WAAT5hwB,IAKF6hwB,EAAgB5nlB,QAAU2nlB,GAE5B,IAAIE,EAAerrI,EAAcA,EAAc,GAAIorI,EAAgB5nlB,SAAU,GAAI,CAC/Emte,gBAAiB,GAAG7vrB,OAAOs9rB,EAAW,WACtC5N,eAAe,EACfzD,cAAc,IAIZu+G,EAAazjO,GAAAA,SASjB,OARAA,GAAAA,WAAgB,WAId,OAHAyjO,EAAW9nlB,QAAU0ne,IAAI,WACvBggH,EAAgBn9zB,MAEX,WACLm9sB,GAAAA,OAAWogH,EAAW9nlB,YAEvB,CAACz1O,IACgB85lB,GAAAA,cAAoBq7L,GAAS,CAC/C9kE,UAAWA,EACX0lE,eAAgB5xkB,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,WAAWr/oB,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOs9rB,EAAW,QAASpwsB,GAAM81wB,EAAgBliE,GACnI1lZ,QAAkB,eAAT3yQ,EAAwB,WAAa,KAC9C78C,kBAAmBA,EACnBkpwB,kBAAmBtsD,EACnB06D,eAAgBA,EAChBlvwB,aAAcm2yB,EACd5orB,MAAOA,EACPu2oB,WAAYgyC,GAAe,CACzBn6zB,OAAQm6zB,GAEVjlzB,OAAQrV,EAAW,GAAK,CAACy6zB,GACzBxnC,gBAAiBsnC,EACjBpnC,gBAAiBqnC,EACjBznC,qBAAsB4G,EACtBx5E,YAAau6G,EACb3mC,YAAagnC,GACZp7zB,GC9EU,SAASs7zB,GAAkBr/kB,GACxC,IAAI/8O,EAAK+8O,EAAK/8O,GACZk5H,EAAO6jH,EAAK7jH,KACZo+jB,EAAUv6c,EAAKu6c,QACfx2rB,EAAWi8O,EAAKj8O,SACdu7zB,EAAY,SACZh+H,EAAoB3lG,GAAAA,WAAiBk8N,IACvC3lG,EAAY5wB,EAAkB4wB,UAC9B4sG,EAAqBx9H,EAAkBw9H,mBACvCjwH,EAASvN,EAAkBuN,OAC3B0vH,EAAiBj9H,EAAkBi9H,eACnClhwB,EAAOikoB,EAAkBjkoB,KAGvBkiwB,EAAc5jO,GAAAA,QAAa,GAC/B4jO,EAAYjolB,QAAUj6K,IAASiiwB,EAI/B,IAAIpiH,EAAkBvhH,GAAAA,UAAgB4jO,EAAYjolB,SAChD6le,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnD7imB,EAAU8imB,EAAiB,GAC3BqiH,EAAariH,EAAiB,GAC5B48E,IAAawlC,EAAYjolB,SAAUn7G,EAIvCw/d,GAAAA,WAAgB,WACV4jO,EAAYjolB,SACdkolB,GAAW,KAEZ,CAACniwB,IAGJ,IAAI8hwB,EAAerrI,EAAc,GAAI4uC,GAAU48F,EAAWzwH,EAAQ0vH,IAG9DhkI,EAAQjhsB,OAAS,IACnB6l0B,EAAat+G,cAAe,GAI9B,IAAI4+G,EAAyBN,EAAar9G,iBAO1C,OANAq9G,EAAar9G,iBAAmB,SAAUovG,GAIxC,OAHKqO,EAAYjolB,SAAY45kB,GAC3BsO,GAAW,GAEqB,OAA3BC,QAA8D,IAA3BA,OAAoC,EAASA,EAAuBvO,IAE5G72sB,EACK,KAEWshf,GAAAA,cAAoB+jO,GAAqB,CAC3DriwB,KAAMiiwB,EACNlnzB,QAASmnzB,EAAYjolB,SACPqkX,GAAAA,cAAoBwoH,IAAWlzf,EAAAA,GAAAA,GAAS,CACtDpvN,QAASk4xB,GACRolC,EAAc,CACf56G,YAAau6G,EACbx6G,eAAe,EACfG,gBAAiB,GAAG7vrB,OAAOs9rB,EAAW,cACpC,SAAU/we,GACZ,IAAIu8e,EAAkBv8e,EAAM95O,UAC1Bs2tB,EAAcx8e,EAAMlqO,MACtB,OAAoB0klB,GAAAA,cAAoBwiO,GAAa,CACnDl7zB,GAAIA,EACJoE,UAAWq2tB,EACXzmtB,MAAO0mtB,GACN55tB,OCvEP,IAAIupR,GAAY,CAAC,QAAS,YAAa,QAAS,WAAY,UAAW,WAAY,qBAAsB,WAAY,WAAY,aAAc,iBAAkB,cAAe,UAAW,eAAgB,eAAgB,eAAgB,oBAAqB,qBAC9Pm6C,GAAa,CAAC,UAkBZk4f,GAAkB,SAAyBnntB,GAC7C,IAAIgtmB,EACAvusB,EAAQuhG,EAAMvhG,MAChB5P,EAAYmxG,EAAMnxG,UAClBud,EAAQ4zF,EAAM5zF,MACd82sB,EAAWljnB,EAAMkjnB,SAEjBt3tB,GADUo0G,EAAMuktB,QACLvktB,EAAMp0G,UACjBw7zB,EAAqBpntB,EAAMontB,mBAC3B77zB,EAAWy0G,EAAMz0G,SACjBi5zB,EAAWxktB,EAAMwktB,SACjBr1V,EAAanvX,EAAMmvX,WACnBiwT,EAAiBp/qB,EAAMo/qB,eACvB8mC,EAAclmtB,EAAMkmtB,YACpB1+vB,EAAUw4C,EAAMx4C,QAChBm8pB,EAAe3jnB,EAAM2jnB,aACrBC,EAAe5jnB,EAAM4jnB,aACrByjG,EAAerntB,EAAMqntB,aACrBC,EAAoBtntB,EAAMsntB,kBAC1BC,EAAoBvntB,EAAMuntB,kBAC1Br3f,EAAYm0Y,GAAyBrkmB,EAAO80K,IAC1C2viB,EAAYrF,GAAUl8F,GACtBp6B,EAAoB3lG,GAAAA,WAAiBk8N,IACvC3lG,EAAY5wB,EAAkB4wB,UAC9B70pB,EAAOikoB,EAAkBjkoB,KACzB2iwB,EAAW1+H,EAAkB0+H,SAC7B9C,EAAkB57H,EAAkBl9rB,SACpC+4zB,EAAmB77H,EAAkB67H,iBACrCxO,EAAYrtH,EAAkBqtH,UAC9B7yc,EAAewlV,EAAkBxlV,aACjCshd,EAAkB97H,EAAkB07H,SACpCiD,EAAoB3+H,EAAkB35N,WACtCj1J,EAAc4uX,EAAkB5uX,YAChC0yd,EAAe9jG,EAAkB8jG,aACjC36d,EAAW62X,EAAkB72X,SAE7By1f,EADuBvkO,GAAAA,WAAiB2hO,IACQ4C,2BAEhDnE,EADuBpgO,GAAAA,WAAiB48N,IACNwD,aAChCL,EAAgBrD,KAChB8H,EAAmB,GAAGvryB,OAAOs9rB,EAAW,YACxC+xF,EAAiBiZ,GAAmB94zB,EACpC2rV,EAAa4rQ,GAAAA,SACbykO,EAAWzkO,GAAAA,SAQf,IAAIiiO,EAAiBZ,GAAYI,EAC7BiD,EAAmB14V,GAAcs4V,EAGjCh9F,EAAa+8F,EAASlrsB,SAAS4mmB,GAC/Bv/lB,GAAQghsB,GAAoBl6F,EAG5Bq9F,EAAmBvE,EAAajgd,EAAc4/W,GAG9CmiG,EAAarB,GAAU9gG,EAAUuoF,EAAgB6b,EAAmBC,GACtE57yB,EAAS05yB,EAAW15yB,OACpB25yB,EAAcjhH,GAAyBghH,EAAYp2f,IAGjDy1Y,EAAkBvhH,GAAAA,UAAe,GACnCwhH,GAAmB9zG,EAAAA,EAAAA,GAAe6zG,EAAiB,GACnDqjH,GAAiBpjH,EAAiB,GAClCqjH,GAAoBrjH,EAAiB,GACnCsjH,GAAwB,SAA+BC,GACpDzc,GACHuc,GAAkBE,IAiBlBC,GAAehlO,GAAAA,SAAc,WAC/B,OAAIx3kB,GAGS,WAATk5C,IACKkjwB,IAAkBxE,EAAa,CAACpN,GAAYjzF,MAGpD,CAACr+pB,EAAMl5C,EAAQwqyB,EAAW4R,GAAgB7kG,EAAUqgG,IAGnDgC,GAAiBtB,GAAkBf,EAAcpi0B,QAqBjDsn0B,GAAoBzE,IAAgB,SAAUv0yB,GACpC,OAAZo4C,QAAgC,IAAZA,GAA8BA,EAAQ28vB,GAAa/0yB,IACvE8qT,EAAY9qT,MAmBVi5yB,GAAU5D,GAAa,GAAGroyB,OAAOqoyB,EAAW,UAG5C6D,GAAyBnlO,GAAAA,cAAoB,OAAO1qY,EAAAA,GAAAA,GAAS,CAC/DzlF,KAAM,WACNv0H,MAAO8mzB,GACP12zB,UAAW,GAAGutB,OAAOuryB,EAAkB,UACvCrorB,SAAUmsqB,EAAiB,MAAQ,EACnChtvB,IAAK84R,EACLnrU,MAAwB,kBAAVA,EAAqBA,EAAQ,KAC3C,eAAgBu4yB,GAAoBF,EAAY,KAAOA,EACvD,gBAAiB9gsB,EACjB,iBAAiB,EACjB,gBAAiB0ksB,GACjB,gBAAiB5c,EACjBjkvB,QArDyB,SAA8BxmE,GAEnDyqzB,IAGa,OAAjB4b,QAA0C,IAAjBA,GAAmCA,EAAa,CACvE7/zB,IAAK07tB,EACL7rlB,SAAUr2I,IAIC,WAAT6jE,GACF+nuB,EAAa1pE,GAAWuH,KA0C1BnssB,QArBoB,WACpB2zS,EAASixZ,KAqBRoiG,GAAcl5yB,EAAoB+2kB,GAAAA,cAAoB3nR,GAAM,CAC7Dr7T,KAAe,eAAT0kD,EAAwBgjwB,EAAmB,KACjD7ntB,MAAOs7kB,EAAcA,EAAc,GAAIt7kB,GAAQ,GAAI,CACjD68B,OAAQlZ,EAER4ksB,WAAW,KAECplO,GAAAA,cAAoB,IAAK,CACvCt0lB,UAAW,GAAGutB,OAAOuryB,EAAkB,cAIrCa,GAAiBrlO,GAAAA,OAAat+hB,GAMlC,GALa,WAATA,GAAqBq+vB,EAAcpi0B,OAAS,EAC9C0n0B,GAAe1plB,QAAU,WAEzB0plB,GAAe1plB,QAAUj6K,GAEtB8/vB,EAAkB,CACrB,IAAI8D,GAAcD,GAAe1plB,QAIjCwplB,GAAyBnlO,GAAAA,cAAoB8iO,GAAc,CACzDphwB,KAAM4jwB,GACN/uG,UAAWiuG,EACXt+zB,SAAU+9zB,GAAsBzjsB,GAAiB,WAAT9+D,EACxCu6tB,eAAgBA,EAChB8mC,YAAaA,EACbvorB,MAAoBwld,GAAAA,cAAoB+jO,GAEtC,CACAriwB,KAAsB,eAAhB4jwB,GAA+B,WAAaA,IACpCtlO,GAAAA,cAAoBwiO,GAAa,CAC/Cl7zB,GAAI49zB,GACJ5pwB,IAAKmpwB,GACJr8zB,IACHK,SAAU6/yB,EACVlmB,gBAtEuB,SAA8BmzB,GAC1C,WAAT7zvB,GACF+nuB,EAAa1pE,EAAUw1F,KAqEtB4P,IAIL,IAAII,GAAwBvlO,GAAAA,cAAoBs4N,GAAAA,MAAehjmB,EAAAA,GAAAA,GAAS,CACtEzlF,KAAM,QACLk9L,EAAW,CACZrhT,UAAW,KACXpQ,MAAOA,EACP5P,UAAW2+M,IAAAA,CAAWm6mB,EAAkB,GAAGvryB,OAAOuryB,EAAkB,KAAKvryB,OAAOyoC,GAAOh2D,GAAYm+sB,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOuryB,EAAkB,SAAUhksB,IAAOtpD,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOuryB,EAAkB,WAAYQ,KAAe9tvB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOuryB,EAAkB,aAAcG,IAAmBztvB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOuryB,EAAkB,aAAclc,GAAiBz+F,IACrc2W,aArIyB,SAA8BtslB,GACvD4wrB,IAAsB,GACL,OAAjBtkG,QAA0C,IAAjBA,GAAmCA,EAAa,CACvEn8tB,IAAK07tB,EACL7rlB,SAAUA,KAkIZuslB,aA/HyB,SAA8BvslB,GACvD4wrB,IAAsB,GACL,OAAjBrkG,QAA0C,IAAjBA,GAAmCA,EAAa,CACvEp8tB,IAAK07tB,EACL7rlB,SAAUA,OA4HVixrB,IAAY3D,GAAiCxhO,GAAAA,cAAoB0jO,GAAmB,CACtFp8zB,GAAI49zB,GACJ1ksB,KAAMA,EACNo+jB,QAASmhI,GACR33zB,IAWH,OAVIm8zB,IACFgB,GAAWhB,EAA2BgB,GAAU1otB,EAAO,CACrDvyF,SAAUq6yB,EACVn8yB,OAAQw8yB,GACRxksB,KAAMA,EACN/3H,SAAU6/yB,KAKMtoN,GAAAA,cAAoB+jO,GAAqB,CAC3Dhtf,YAAakuf,GACbvjwB,KAAe,eAATA,EAAwB,WAAaA,EAC3C2/vB,SAAUY,EACVj2V,WAAY04V,GACXa,KAEU,SAASC,GAAQ3otB,GAC9B,IAiBIu0sB,EAjBArxF,EAAWljnB,EAAMkjnB,SACnB33tB,EAAWy0G,EAAMz0G,SACfk6zB,EAAmB5F,GAAY38F,GAC/Bt7Z,EAAYy8a,GAAc94uB,EAAUk6zB,GAGpCxgoB,EAAU06nB,KAmBd,OAhBAx8N,GAAAA,WAAgB,WACd,GAAIl+Z,EAEF,OADAA,EAAQg+nB,aAAa//F,EAAUuiG,GACxB,WACLxgoB,EAAQm+nB,eAAelgG,EAAUuiG,MAGpC,CAACA,IAKFlR,EADEtvnB,EACW2iI,EAEau7R,GAAAA,cAAoBgkO,GAAiBnntB,EAAO4nN,GAEpDu7R,GAAAA,cAAoBy8N,GAAmBn+sB,SAAU,CACnEr/G,MAAOqj0B,GACNlR,GC3RL,IAAIz/hB,GAAY,CAAC,YAAa,QAAS,WAAY,YACjDm6C,GAAa,CAAC,YAOZ25f,GAAwB,SAA+BphlB,GACzD,IAAI34O,EAAY24O,EAAK34O,UACnBud,EAAQo7N,EAAKp7N,MAEb7gB,GADWi8O,EAAK07e,SACL17e,EAAKj8O,UAChB2kU,EAAYm0Y,GAAyB78d,EAAMstC,IAE3C4kc,EADsBv2H,GAAAA,WAAiBk8N,IACT3lG,UAC5BmvG,EAAiB,GAAGzsyB,OAAOs9rB,EAAW,eAC1C,OAAoBv2H,GAAAA,cAAoB,MAAM1qY,EAAAA,GAAAA,GAAS,CACrDzlF,KAAM,gBACLk9L,EAAW,CACZ1oQ,QAAS,SAAiBxmE,GACxB,OAAOA,EAAE4G,mBAEXiH,UAAW2+M,IAAAA,CAAWq7mB,EAAgBh6zB,KACvBs0lB,GAAAA,cAAoB,MAAO,CAC1Cnwd,KAAM,eACNnkI,UAAW,GAAGutB,OAAOysyB,EAAgB,UACrCz8yB,MAAwB,kBAAVA,EAAqBA,OAAQxT,GAC1CwT,GAAqB+2kB,GAAAA,cAAoB,KAAM,CAChDnwd,KAAM,QACNnkI,UAAW,GAAGutB,OAAOysyB,EAAgB,UACpCt9zB,KAEU,SAASu9zB,GAAcnglB,GACpC,IAAIp9O,EAAWo9O,EAAMp9O,SACnBy0G,EAAQqkmB,GAAyB17d,EAAOsmF,IAEtCrH,EAAYy8a,GAAc94uB,EADPs0zB,GAAY7/sB,EAAMkjnB,WAGzC,OADcy8F,KAEL/3f,EAEWu7R,GAAAA,cAAoBylO,GAAuB/hF,GAAK7moB,EAAO,CAAC,YAAa4nN,GCxC5E,SAASmhgB,GAAQvhlB,GAC9B,IAAI34O,EAAY24O,EAAK34O,UACnB4P,EAAQ+oO,EAAK/oO,MAEbi7sB,EADsBv2H,GAAAA,WAAiBk8N,IACT3lG,UAEhC,OADcimG,KAEL,KAEWx8N,GAAAA,cAAoB,KAAM,CAC5Ct0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,iBAAkB7qtB,GAC7D4P,MAAOA,ICZX,IAAIq2Q,GAAY,CAAC,QAAS,WAAY,MAAO,QAO7C,SAASk0iB,GAAoBtnwB,GAC3B,OAAQA,GAAQ,IAAIh7D,KAAI,SAAUwtH,EAAK7yH,GACrC,GAAI6yH,GAAwB,YAAjBw2e,EAAAA,GAAAA,GAAQx2e,GAAmB,CACpC,IAAIszH,EAAOtzH,EACT2vB,EAAQ2jG,EAAK3jG,MACbt4I,EAAWi8O,EAAKj8O,SAChB/D,EAAMggP,EAAKhgP,IACX2c,EAAOqjO,EAAKrjO,KACZ+rT,EAAYm0Y,GAAyB78d,EAAMstC,IACzCmza,EAAoB,OAARzgsB,QAAwB,IAARA,EAAiBA,EAAM,OAAO40B,OAAO/6B,GAGrE,OAAIkK,GAAqB,UAAT4Y,EACD,UAATA,EAEkBg/kB,GAAAA,cAAoB2lO,IAAerwmB,EAAAA,GAAAA,GAAS,CAC9DjxN,IAAKygsB,GACJ/3X,EAAW,CACZ9jT,MAAOy3H,IACLmlrB,GAAoBz9zB,IAIN43lB,GAAAA,cAAoBwlO,IAASlwmB,EAAAA,GAAAA,GAAS,CACxDjxN,IAAKygsB,GACJ/3X,EAAW,CACZ9jT,MAAOy3H,IACLmlrB,GAAoBz9zB,IAIb,YAAT4Y,EACkBg/kB,GAAAA,cAAoB4lO,IAAStwmB,EAAAA,GAAAA,GAAS,CACxDjxN,IAAKygsB,GACJ/3X,IAEeizR,GAAAA,cAAoBl9O,IAAUxtJ,EAAAA,GAAAA,GAAS,CACzDjxN,IAAKygsB,GACJ/3X,GAAYrsL,GAEjB,OAAO,QACNz9I,QAAO,SAAU8tH,GAClB,OAAOA,KAGJ,SAAS+0sB,GAAW19zB,EAAUW,EAAO61rB,GAC1C,IAAI3+kB,EAAa73G,EAIjB,OAHIW,IACFk3G,EAAa4ltB,GAAoB98zB,IAE5Bm4uB,GAAcjhoB,EAAY2+kB,GCtDnC,IAAIjta,GAAY,CAAC,YAAa,gBAAiB,QAAS,YAAa,WAAY,QAAS,WAAY,YAAa,KAAM,OAAQ,kBAAmB,WAAY,mBAAoB,mBAAoB,oBAAqB,qBAAsB,kBAAmB,WAAY,YAAa,qBAAsB,aAAc,WAAY,sBAAuB,eAAgB,WAAY,aAAc,eAAgB,SAAU,iBAAkB,uBAAwB,oBAAqB,WAAY,aAAc,sBAAuB,oCAAqC,oBAAqB,UAAW,eAAgB,YAAa,gBAAiB,qBAAsB,0BAA2B,8BAoC1rBy4f,GAAa,GACb73X,GAAoBytM,GAAAA,YAAiB,SAAUnjf,EAAOvhD,GACxD,IAAIyqwB,EAAal8G,EACbxle,EAAOxnI,EACT2xrB,EAAiBnqjB,EAAKkye,UACtBA,OAA+B,IAAnBi4E,EAA4B,UAAYA,EACpDz0E,EAAgB11e,EAAK01e,cACrBz+sB,EAAQ+oO,EAAK/oO,MACb5P,EAAY24O,EAAK34O,UACjBs6zB,EAAgB3hlB,EAAKloG,SACrBA,OAA6B,IAAlB6prB,EAA2B,EAAIA,EAC1Cj9zB,EAAQs7O,EAAKt7O,MACbX,EAAWi8O,EAAKj8O,SAChBswI,EAAY2rG,EAAK3rG,UACjBpxI,EAAK+8O,EAAK/8O,GACV2+zB,EAAY5hlB,EAAK3iL,KACjBA,OAAqB,IAAdukwB,EAAuB,WAAaA,EAC3CC,EAAkB7hlB,EAAK6hlB,gBACvBz9zB,EAAW47O,EAAK57O,SAChB09zB,EAAmB9hlB,EAAK8hlB,iBACxBC,EAAwB/hlB,EAAK2+kB,iBAC7BA,OAA6C,IAA1BoD,EAAmC,GAAMA,EAC5DC,EAAwBhilB,EAAK4+kB,kBAC7BA,OAA8C,IAA1BoD,EAAmC,GAAMA,EAC7DlD,EAAqB9+kB,EAAK8+kB,mBAC1BmD,EAAkBjilB,EAAKiilB,gBACvBjC,EAAWhglB,EAAKgglB,SAChBrR,EAAY3ukB,EAAK2ukB,UACjBuT,EAAqBlilB,EAAKkilB,mBAC1BC,EAAkBnilB,EAAK5gN,WACvBA,OAAiC,IAApB+iyB,GAAoCA,EACjDC,EAAgBpilB,EAAKq+N,SACrBA,OAA6B,IAAlB+jX,GAAmCA,EAC9CC,EAAsBrilB,EAAKqilB,oBAC3Bvmd,EAAe97H,EAAK87H,aACpBwmd,EAAWtilB,EAAKsilB,SAChBC,EAAavilB,EAAKuilB,WAClBC,EAAoBxilB,EAAK08kB,aACzBA,OAAqC,IAAtB8F,EAA+B,GAAKA,EACnD3zH,EAAS7ud,EAAK6ud,OACd0vH,EAAiBv+kB,EAAKu+kB,eACtBkE,EAAwBzilB,EAAK6+kB,qBAC7BA,OAAiD,IAA1B4D,EAAmC,QAAUA,EACpE/4C,EAAoB1piB,EAAK0piB,kBACzBszC,EAAWh9kB,EAAKg9kB,SAChBr1V,EAAa3nP,EAAK2nP,WAClB+6V,EAAwB1ilB,EAAK2ilB,oBAC7BA,OAAgD,IAA1BD,EAAmC,MAAQA,EACjEE,EAAoC5ilB,EAAK4ilB,kCACzCpizB,GAAoBw/N,EAAKx/N,kBACzBw/C,GAAUggL,EAAKhgL,QACfoluB,GAAepljB,EAAKoljB,aACpBv0rB,GAAYmvI,EAAKnvI,UAGjBwstB,IAFgBr9kB,EAAK6ilB,cACA7ilB,EAAK8ilB,mBACA9ilB,EAAKq9kB,yBAC/B6C,GAA6BlglB,EAAKkglB,2BAClCx3f,GAAYm0Y,GAAyB78d,EAAMstC,IACzC8yC,GAAYu7R,GAAAA,SAAc,WAC5B,OAAO8lO,GAAW19zB,EAAUW,EAAOqhxB,MAClC,CAAChixB,EAAUW,IACVw4sB,GAAkBvhH,GAAAA,UAAe,GACnCwhH,IAAmB9zG,EAAAA,EAAAA,GAAe6zG,GAAiB,GACnDy3F,GAAUx3F,GAAiB,GAC3B4lH,GAAa5lH,GAAiB,GAC5BspF,GAAe9qM,GAAAA,SACfi9F,GhBvGS,SAAiB31rB,GAC9B,IAAImlyB,EAAkB9pE,GAAer7tB,EAAI,CACrCrI,MAAOqI,IAETolyB,GAAmBh/L,EAAAA,EAAAA,GAAe++L,EAAiB,GACnDxvG,EAAOyvG,EAAiB,GACxB26B,EAAU36B,EAAiB,GAM7B,OALA1sM,GAAAA,WAAgB,WACd4gO,IAAc,EACd,IAAI39W,EAAmD,GAAGhqb,OAAO0nyB,GAAc,KAAK1nyB,OAAO2nyB,IAC3FyG,EAAQ,gBAAgBpuyB,OAAOgqb,MAC9B,IACIg6O,EgB2FIqqI,CAAQhg0B,GACf8lJ,GAAsB,QAAd1U,EAQZ,IAAI+zpB,GAAkB9pE,GAAe2jG,EAAiB,CAClDrn0B,MAAOol0B,EACPxhG,UAAW,SAAmBz+tB,GAC5B,OAAOA,GAAQgmxB,MAGnBsiB,IAAmBh/L,EAAAA,EAAAA,GAAe++L,GAAiB,GACnD86B,GAAiB76B,GAAiB,GAClC86B,GAAoB96B,GAAiB,GAInC+6B,GAAkB,SAAyBrj0B,GAC7C,IAAIsj0B,EAAati0B,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,IAAmBA,UAAU,GAChF,SAASui0B,IACPH,GAAkBpj0B,GACD,OAAjBqlyB,SAA0C,IAAjBA,IAAmCA,GAAarlyB,GAEvEsj0B,GACFn7O,EAAAA,GAAAA,WAAUo7O,GAEVA,KAKAxmG,GAAmBnhI,GAAAA,SAAeunO,IACpCnmG,IAAmB1zH,EAAAA,EAAAA,GAAeyzH,GAAkB,GACpDymG,GAAsBxmG,GAAiB,GACvCymG,GAAyBzmG,GAAiB,GACxC1oM,GAAWsnE,GAAAA,QAAa,GAGxB6sM,GAAiB7sM,GAAAA,SAAc,WAC/B,MAAc,WAATt+hB,GAA8B,aAATA,IAAwBwkwB,EAG3C,CAACxkwB,GAAM,GAFL,CAAC,WAAYwkwB,KAGrB,CAACxkwB,EAAMwkwB,IACVl5B,IAAkBt/L,EAAAA,EAAAA,GAAem/L,GAAgB,GACjDi7B,GAAa96B,GAAgB,GAC7B+6B,GAAwB/6B,GAAgB,GACtCg7B,GAA8B,WAAfF,GACfzqC,GAAmBr9L,GAAAA,SAAe8nO,IACpCxqC,IAAmB5vL,EAAAA,EAAAA,GAAe2vL,GAAkB,GACpD4qC,GAAe3qC,GAAiB,GAChC4qC,GAAkB5qC,GAAiB,GACjCU,GAAmBh+L,GAAAA,SAAe+nO,IACpC9pC,IAAmBvwL,EAAAA,EAAAA,GAAeswL,GAAkB,GACpDmqC,GAA0BlqC,GAAiB,GAC3CmqC,GAA6BnqC,GAAiB,GAChDj+L,GAAAA,WAAgB,WACdkoO,GAAgBJ,IAChBM,GAA2BL,IACtBrvS,GAAS/8S,UAIVqslB,GACFR,GAAkBI,IAGlBH,GAAgBr9C,OAEjB,CAAC09C,GAAYC,KAGhB,IAAIrpC,GAAmB1+L,GAAAA,SAAe,GACpC2+L,IAAoBjxL,EAAAA,EAAAA,GAAegxL,GAAkB,GACrD2pC,GAAmB1pC,GAAkB,GACrC2pC,GAAsB3pC,GAAkB,GACtC4pC,GAAaF,IAAoB5jgB,GAAU9mU,OAAS,GAAsB,eAAjBsq0B,IAAiC9B,EAG9FnmO,GAAAA,WAAgB,WACVgoO,IACFH,GAAuBN,MAExB,CAACA,KACJvnO,GAAAA,WAAgB,WAEd,OADAtnE,GAAS/8S,SAAU,EACZ,WACL+8S,GAAS/8S,SAAU,KAEpB,IAGH,IAAI6slB,GAAiBjJ,KACnBO,GAAe0I,GAAe1I,aAC9BG,GAAiBuI,GAAevI,eAChCC,GAAsBsI,GAAetI,oBACrCE,GAAeoI,GAAepI,aAC9B1C,GAAa8K,GAAe9K,WAC5BD,GAAU+K,GAAe/K,QACzB8C,GAAiBiI,GAAejI,eAC9BkI,GAAsBzoO,GAAAA,SAAc,WACtC,MAAO,CACL8/N,aAAcA,GACdG,eAAgBA,MAEjB,CAACH,GAAcG,KACdyI,GAAkB1oO,GAAAA,SAAc,WAClC,MAAO,CACLogO,aAAcA,MAEf,CAACA,KACJpgO,GAAAA,WAAgB,WACdkgO,GAAoBqI,GAAan+C,GAAa3ld,GAAU3hU,MAAMul0B,GAAmB,GAAG9k0B,KAAI,SAAU4Y,GAChG,OAAOA,EAAM9X,UAEd,CAACgk0B,GAAkBE,KAGtB,IAAII,GAAmBhmG,GAAeqwF,GAAauT,IAAwD,QAAhCR,EAActhgB,GAAU,UAAgC,IAAhBshgB,OAAyB,EAASA,EAAY1h0B,KAAM,CACnKpF,MAAO+zzB,IAET4V,IAAmBl7N,EAAAA,EAAAA,GAAei7N,GAAkB,GACpDE,GAAkBD,GAAiB,GACnCE,GAAqBF,GAAiB,GACpC95f,GAAW0xf,IAAgB,SAAUn8zB,GACvCyk0B,GAAmBzk0B,MAEjB0qU,GAAayxf,IAAgB,WAC/BsI,QAAmBrzzB,OAErBwpkB,EAAAA,GAAAA,qBAAoB3jhB,GAAK,WACvB,MAAO,CACLiD,KAAMusuB,GAAanvjB,QACnBv9O,MAAO,SAAeqZ,GACpB,IAAIsxzB,EAKEv9B,EAAuBw9B,EAAwBC,EAJjDC,EAAqC,OAApBL,SAAgD,IAApBA,GAA6BA,GAEtE,QAFyFE,EAAkBtkgB,GAAU/qT,MAAK,SAAU45D,GAC1I,OAAQA,EAAKupC,MAAMp0G,mBACe,IAApBsg0B,OAA6B,EAASA,EAAgB1k0B,IAClE6k0B,IAEiD,QAAlD19B,EAAwBV,GAAanvjB,eAA+C,IAA1B6vjB,GAAkL,QAArIw9B,EAAyBx9B,EAAsBv0tB,cAAc,oBAAoBh+C,OAAO+iyB,GAAU/+H,GAAMisI,GAAiB,cAA+C,IAA3BF,GAAyG,QAA3DC,EAAyBD,EAAuB5q0B,aAA8C,IAA3B6q0B,GAA6CA,EAAuBnr0B,KAAKkr0B,EAAwBvxzB,SAQ/c,IAAI0xzB,GAAmBxmG,GAAe+jG,GAAuB,GAAI,CAC7Dzn0B,MAAOkhX,EAEP0iX,UAAW,SAAmBz+tB,GAC5B,OAAIxB,MAAMi2E,QAAQz0E,GACTA,EAEI,OAATA,QAA0BqR,IAATrR,EACZgmxB,GAEF,CAAChmxB,MAGZgl0B,IAAmB17N,EAAAA,EAAAA,GAAey7N,GAAkB,GACpDE,GAAmBD,GAAiB,GACpCE,GAAsBF,GAAiB,GA2CrCG,GAAkB/I,IAAgB,SAAUv0yB,GAClC,OAAZo4C,SAAgC,IAAZA,IAA8BA,GAAQ28vB,GAAa/0yB,IAzClD,SAA0BA,GAC/C,GAAIwX,EAAY,CAEd,IAEI+lyB,EAFA9sI,EAAYzwqB,EAAK5nB,IACjBiqsB,EAAQ+6H,GAAiBlwsB,SAASujkB,GAIlC8sI,EAFA9mX,EACE4rP,EACc+6H,GAAiBpm0B,QAAO,SAAUoB,GAChD,OAAOA,IAAQq4rB,KAGD,GAAGzjqB,QAAOi1kB,EAAAA,EAAAA,GAAmBm7N,IAAmB,CAAC3sI,IAGnD,CAACA,GAEnB4sI,GAAoBE,GAGpB,IAAIC,EAAatxI,EAAcA,EAAc,GAAIlsqB,GAAO,GAAI,CAC1Dk0V,aAAcqpd,IAEZl7H,EACa,OAAfs4H,QAAsC,IAAfA,GAAiCA,EAAW6C,GAEtD,OAAb9C,QAAkC,IAAbA,GAA+BA,EAAS8C,IAK5D/mX,GAAY6kX,GAAe5p0B,QAA2B,WAAjBsq0B,IACxCR,GAAgBr9C,IAUlBs/C,CAAiBz9yB,MAEf09yB,GAAuBnJ,IAAgB,SAAUn8zB,EAAKm8H,GACxD,IAAIopsB,EAAcrC,GAAetk0B,QAAO,SAAU+xD,GAChD,OAAOA,IAAM3wD,KAEf,GAAIm8H,EACFopsB,EAAY3r0B,KAAKoG,QACZ,GAAqB,WAAjB4j0B,GAA2B,CAEpC,IAAI4B,EAActJ,GAAel8zB,GACjCul0B,EAAcA,EAAY3m0B,QAAO,SAAU+xD,GACzC,OAAQ60wB,EAAY3yyB,IAAI89B,MAGvB+xE,GAAQwgsB,GAAgBqC,GAAa,IACxCnC,GAAgBmC,GAAa,MAS7BE,GAAoB9T,GAAiBiS,GAAcY,GAAiBz7qB,GAAO6viB,GAAM6tG,GAAc2yB,GAASC,GAAYoL,IAJzF,SAAkCzk0B,EAAKm8H,GACpE,IAAI89pB,EAAoB,OAAT99pB,QAA0B,IAATA,EAAkBA,GAAQ+msB,GAAepusB,SAAS90H,GAClFsl0B,GAAqBtl0B,EAAKi6xB,KAE0IpprB,IAGtK8qf,GAAAA,WAAgB,WACdonO,IAAW,KACV,IAGH,IAAI2C,GAAiB/pO,GAAAA,SAAc,WACjC,MAAO,CACL0hO,wBAAyBA,GACzB6C,2BAA4BA,MAE7B,CAAC7C,GAAyB6C,KAKzByF,GAAoC,eAAjB/B,IAAiC9B,EAAmB1hgB,GAE3EA,GAAUlhU,KAAI,SAAU4Y,EAAOje,GAC7B,OAGE8hmB,GAAAA,cAAoB+jO,GAAqB,CACvC1/zB,IAAK8X,EAAM9X,IACXm9zB,iBAAkBtj0B,EAAQmq0B,IACzBlszB,MAKHgB,GAAyB6ilB,GAAAA,cAAoBs4N,IAAUhjmB,EAAAA,GAAAA,GAAS,CAClEhuN,GAAIA,EACJg0D,IAAKwvuB,GACLv0E,UAAW,GAAGt9rB,OAAOs9rB,EAAW,aAChC7qsB,UAAW,KACXmtyB,cAAe/1c,GACfp3W,UAAW2+M,IAAAA,CAAWksgB,EAAW,GAAGt9rB,OAAOs9rB,EAAW,SAAU,GAAGt9rB,OAAOs9rB,EAAW,KAAKt9rB,OAAOgvyB,IAAev8zB,GAAYm+sB,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,qBAAsB4xG,KAA0BjxvB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,QAASnpkB,IAAQy8jB,GAAckQ,GACjUjvkB,IAAKpS,EACLp9H,MAAOA,EACPu0H,KAAM,OACNsM,SAAUA,EACVjxI,KAAM8+zB,GACNxR,cAAe,SAAuBllvB,GACpC,OAAOA,GAETslvB,cAAe,SAAuBqR,GAEpC,IAAIp1xB,EAAMo1xB,EAAUts0B,OAChBus0B,EAAkBr1xB,EAAM4vR,GAAU3hU,OAAO+xC,GAAO,KACpD,OAAoBmrjB,GAAAA,cAAoBwlO,GAAS,CAC/CzlG,SAAUu/F,GACVr2yB,MAAO+9yB,EACPv+zB,SAAU8/zB,GACVtE,mBAA4B,IAARpvxB,EACpBonvB,eAAgBgrC,GACfiD,IAELtpG,SAA2B,eAAjBqnG,IAAiC9B,EAAmB7N,GAAAA,WAAsBA,GAAAA,WACpFI,IAAK,OACL,kBAAkB,EAClBt2B,gBAAiB,SAAyB+nC,GACxC7B,GAAoB6B,IAEtBj1tB,UAAW40tB,IACV/8f,KAGH,OAAoBizR,GAAAA,cAAoB2hO,GAAAA,SAAyB,CAC/D1i0B,MAAO8q0B,IACO/pO,GAAAA,cAAoB+7N,GAAUz9sB,SAAU,CACtDr/G,MAAOg+rB,IACOj9F,GAAAA,cAAoB+jO,GAAqB,CACvDxtG,UAAWA,EACXwD,cAAeA,EACfr4pB,KAAMumwB,GACN5D,SAAUkD,GACVphzB,IAAKinI,GAGL3kJ,SAAUA,EAGVyqsB,OAAQ8lG,GAAU9lG,EAAS,KAC3B0vH,eAAgB5pB,GAAU4pB,EAAiB,KAG3C5P,UAAW6V,GACX/5f,SAAUA,GACVC,WAAYA,GAGZoxC,aAAckpd,GAGdtI,aAAcA,EAGdiC,iBAAkBA,EAClBC,kBAAmBA,EACnBE,mBAAoBA,EACpBp1C,kBAAmBA,EACnBm1C,qBAAsBA,EACtBr+yB,kBAAmBA,GAGnBw8yB,SAAUA,EACVr1V,WAAYA,EAGZj1J,YAAawyf,GACb9/B,aAAckgC,IACA3pO,GAAAA,cAAoB48N,GAAgBt+sB,SAAU,CAC5Dr/G,MAAOyp0B,IACNvrzB,IAAyB6ilB,GAAAA,cAAoB,MAAO,CACrD1klB,MAAO,CACLoB,QAAS,QAEX,eAAe,GACDsjlB,GAAAA,cAAoBu8N,GAAoBj+sB,SAAU,CAChEr/G,MAAOwp0B,IACNhkgB,WC3cD2lgB,GD6cJ,GC5cAA,GAAWlT,KAAOp0c,GAClBsnd,GAAW5E,QAAUA,GACrB4E,GAAWC,UAAY1E,GACvByE,GAAWxE,QAAUA,GACrB,UCHA,SAAS0E,GAAcjmlB,EAAM/oL,GAC3B,IAAIi7pB,EAAYlye,EAAKkye,UACnBjvtB,EAAK+8O,EAAK/8O,GACVtB,EAAOq+O,EAAKr+O,KACZoE,EAASi6O,EAAKj6O,OACd8ixB,EAAS7oiB,EAAK6oiB,OACdq9C,EAAgBlmlB,EAAKmmlB,SACrBA,OAA6B,IAAlBD,EAA2B,OAASA,EAC/CE,EAAqBpmlB,EAAKomlB,mBAC1BnvzB,EAAQ+oO,EAAK/oO,MACb5P,EAAY24O,EAAK34O,UACjBoqD,EAAWuuL,EAAKvuL,SAChB40wB,EAAermlB,EAAKqmlB,aACpBvkzB,EAAMk+N,EAAKl+N,IACXwkzB,EAAkBtmlB,EAAKsmlB,gBACvBC,EAAavmlB,EAAKumlB,WAClB/lzB,EAAoBw/N,EAAKx/N,kBACzBo3wB,EAAiB53iB,EAAK43iB,eAEpBj4E,GAAYzkI,EAAAA,GAAAA,WAAS,GACvB0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCxjlB,EAAOyjlB,EAAW,GAClBykF,EAAUzkF,EAAW,GACnBqC,GAAa/mI,EAAAA,GAAAA,UAAS,MACxBgnI,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxCjmW,EAAckmW,EAAW,GACzBskH,EAAiBtkH,EAAW,GAC1B2+G,EAAU,GAAGjsyB,OAAO3xB,EAAI,eACxBwj0B,EAAiB,GAAG7xyB,OAAOs9rB,EAAW,aACtCw0G,EAAiC,OAAhB1qd,EAAuB,GAAGpnV,OAAOisyB,EAAS,KAAKjsyB,OAAOonV,GAAe,KACtF2qd,EAA+B,OAAX5g0B,QAA8B,IAAXA,OAAoB,EAASA,EAAO4g0B,kBAS/E,IAAIv1G,EAAoBz1H,GAAAA,cAAoBztM,GAAM,CAChDluV,QAAS,SAAiBmhL,GACxB,IAAInhP,EAAMmhP,EAAMnhP,IACd6vI,EAAWsxG,EAAMtxG,SACnB02rB,EAAWvm0B,EAAK6vI,GAChBw0pB,GAAQ,IAEVnyE,UAAW,GAAGt9rB,OAAO6xyB,EAAgB,SACrCxj0B,GAAI49zB,EACJ/orB,UAAW,EACXtM,KAAM,UACN,wBAAyBk7rB,EACzB5qd,aAAc,CAACE,GACf,kBAAoC5qW,IAAtBu1zB,EAAkCA,EAAoB,qBACnEhl0B,EAAKzC,KAAI,SAAU0C,GACpB,IAAI+5tB,EAAW/5tB,EAAI+5tB,SACjBv3tB,EAAWxC,EAAIwC,SACf2vO,EAAYnyO,EAAImyO,UAChB/zO,EAAM4B,EAAI5B,IACVq8I,EAAQz6I,EAAIy6I,MACVuqrB,EAAY7W,GAAap0F,EAAU5nf,EAAWtiL,EAAUrtD,GAC5D,OAAoBu3lB,GAAAA,cAAoBl9O,GAAU,CAChDz+W,IAAKA,EACLiD,GAAI,GAAG2xB,OAAOisyB,EAAS,KAAKjsyB,OAAO50B,GACnCwrI,KAAM,SACN,gBAAiBvoI,GAAM,GAAG2xB,OAAO3xB,EAAI,WAAW2xB,OAAO50B,GACvDoE,SAAUA,GACIu3lB,GAAAA,cAAoB,OAAQ,KAAMt/c,GAAQuqrB,GAA0BjrO,GAAAA,cAAoB,SAAU,CAChHh/kB,KAAM,SACN,aAAc2pzB,GAAmB,SACjCxurB,SAAU,EACVzwI,UAAW,GAAGutB,OAAO6xyB,EAAgB,qBACrCzmwB,QAAS,SAAiBxmE,GACxBA,EAAE4G,kBAzCR,SAAqBoT,EAAOxT,GAC1BwT,EAAMnT,iBACNmT,EAAMpT,kBACNqxD,EAAS0+vB,OAAO,SAAU,CACxBnwzB,IAAKA,EACLwT,MAAOA,IAqCLqzzB,CAAYrt0B,EAAGwG,KAEhB+zO,GAAatiL,EAASq1wB,YAAc,aAEzC,SAASC,EAAaxi0B,GAQpB,IAPA,IAAIyi0B,EAAcrl0B,EAAK/C,QAAO,SAAUgD,GACtC,OAAQA,EAAIwC,YAEVqjB,EAAgBu/yB,EAAY/xsB,WAAU,SAAUrzH,GAClD,OAAOA,EAAI5B,MAAQg8W,MACf,EACFxrU,EAAMw2xB,EAAY1t0B,OACbyL,EAAI,EAAGA,EAAIyrC,EAAKzrC,GAAK,EAAG,CAE/B,IAAInD,EAAMol0B,EADVv/yB,GAAiBA,EAAgBljB,EAASisC,GAAOA,GAEjD,IAAK5uC,EAAIwC,SAEP,YADAoi0B,EAAe5k0B,EAAI5B,OAkCzB26kB,EAAAA,GAAAA,YAAU,WAER,IAAI07F,EAAM76qB,SAASC,eAAeir0B,GAC9BrwJ,GAAOA,EAAIp5f,gBACbo5f,EAAIp5f,gBAAe,KAEpB,CAAC++L,KACJ2+N,EAAAA,GAAAA,YAAU,WACHx+c,GACHqqsB,EAAe,QAEhB,CAACrqsB,IAGJ,IAAI8qsB,GAAYp0vB,EAAAA,EAAAA,GAAgB,GAAI/wD,EAAM,cAAgB,aAAcukzB,GACnE1k0B,EAAKrI,SACR2t0B,EAAU14wB,WAAa,SACvB04wB,EAAUtzU,MAAQ,GAEpB,IAAIgqS,EAAmB33kB,IAAAA,EAAWnzI,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAO6xyB,EAAgB,QAAS3kzB,IACrFolzB,EAAWr+C,EAAS,KAAoBltL,GAAAA,cAAoB80N,GAAU,CACxEv+F,UAAWu0G,EACX3nE,QAAS1tC,EACTxutB,QAAS,CAAC,SACVf,UAASF,EAAKrI,QAAS6iI,EACvB2ilB,eAAgBsnH,EAChBroC,gBAAiBsG,EACjB1G,iBAAkB33kB,IAAAA,CAAW23kB,EAAkB/F,GAC/CP,gBAAiB,GACjBE,gBAAiB,GACjB/2wB,kBAAmBA,GACLm7kB,GAAAA,cAAoB,SAAU,CAC5Ch/kB,KAAM,SACNtV,UAAW,GAAGutB,OAAOs9rB,EAAW,aAChCj7sB,MAAOgwzB,EACPnvrB,UAAW,EACX,cAAe,OACf,gBAAiB,UACjB,gBAAiB+orB,EACjB59zB,GAAI,GAAG2xB,OAAO3xB,EAAI,SAClB,gBAAiBk5H,EACjBtrB,UAtEF,SAAmBr3G,GACjB,IAAI08C,EAAQ18C,EAAE08C,MACd,GAAKimF,EAOL,OAAQjmF,GACN,KAAKygrB,GAAAA,GACHowG,GAAc,GACdvt0B,EAAE6G,iBACF,MACF,KAAKs2tB,GAAAA,KACHowG,EAAa,GACbvt0B,EAAE6G,iBACF,MACF,KAAKs2tB,GAAAA,IACH0tE,GAAQ,GACR,MACF,KAAK1tE,GAAAA,MACL,KAAKA,GAAAA,MACiB,OAAhB36W,GAAsBuqd,EAAWvqd,EAAaxiX,OApBhD,CAACm9tB,GAAAA,KAAcA,GAAAA,MAAeA,GAAAA,OAAe7hmB,SAAS5+E,KACxDmuvB,GAAQ,GACR7qyB,EAAE6G,oBAkEL8l0B,IACH,OAAoBxqO,GAAAA,cAAoB,MAAO,CAC7Ct0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,mBAAoB7qtB,GAC/D4P,MAAOA,EACPggD,IAAKA,GACJiwwB,EAAuBvrO,GAAAA,cAAoBq0N,GAAW,CACvD99F,UAAWA,EACXnstB,OAAQA,EACR0rD,SAAUA,KAGd,OAA4BkqiB,GAAAA,KAAyBA,GAAAA,WAAiBsqO,KAAgB,SAAUvyzB,EAAG4jC,GACjG,OAGEA,EAHF,aC9GF,OAxEA,SAAiB0oM,GACf,IAAIwle,EACA0M,EAAYlye,EAAKkye,UACnBjvtB,EAAK+8O,EAAK/8O,GACVkhB,EAAS67N,EAAK77N,OACdgjzB,EAAWnnlB,EAAKp+O,IAChB5B,EAAMmn0B,EAASnn0B,IACfq8I,EAAQ8qrB,EAAS9qrB,MACjBj4I,EAAW+i0B,EAAS/i0B,SACpB2vO,EAAYozlB,EAASpzlB,UACrB4nf,EAAW37e,EAAK27e,SAChByrG,EAAgBpnlB,EAAKonlB,cACrBd,EAAkBtmlB,EAAKsmlB,gBACvB70wB,EAAWuuL,EAAKvuL,SAChBuO,EAAUggL,EAAKhgL,QACflpC,EAAUkpN,EAAKlpN,QACf7f,EAAQ+oO,EAAK/oO,MACXowzB,EAAY,GAAGzyyB,OAAOs9rB,EAAW,QACjC00G,EAAY7W,GAAap0F,EAAU5nf,EAAWtiL,EAAUrtD,GAC5D,SAAS8g0B,EAAgB1r0B,GACnB4K,GAGJ47D,EAAQxmE,GAUV,IAAIy1E,EAAoB0shB,GAAAA,cAAoB,MAAO,CACjD37lB,IAAKA,EAGL,gBAAiB8vzB,GAAe9vzB,GAChCqH,UAAW2+M,IAAAA,CAAWqhnB,GAAY7hH,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOyyyB,EAAW,gBAAiBT,IAAY/zvB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOyyyB,EAAW,WAAYljzB,IAAS0uD,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOyyyB,EAAW,aAAcjj0B,GAAWohtB,IACrRvusB,MAAOA,EACP+oD,QAASklwB,GACKvpO,GAAAA,cAAoB,MAAO,CACzCnwd,KAAM,MACN,gBAAiBrnH,EACjBlhB,GAAIA,GAAM,GAAG2xB,OAAO3xB,EAAI,SAAS2xB,OAAO50B,GACxCqH,UAAW,GAAGutB,OAAOyyyB,EAAW,QAChC,gBAAiBpk0B,GAAM,GAAG2xB,OAAO3xB,EAAI,WAAW2xB,OAAO50B,GACvD,gBAAiBoE,EACjB0zI,SAAU1zI,EAAW,KAAO,EAC5B47D,QAAS,SAAiBxmE,GACxBA,EAAE4G,kBACF8k0B,EAAgB1r0B,IAElBq3G,UAAW,SAAmBr3G,GACxB,CAACm9tB,GAAAA,MAAeA,GAAAA,OAAe7hmB,SAASt7H,EAAE08C,SAC5C18C,EAAE6G,iBACF6k0B,EAAgB1r0B,KAGpBs9B,QAASA,GACRulH,GAAQuqrB,GAA0BjrO,GAAAA,cAAoB,SAAU,CACjEh/kB,KAAM,SACN,aAAc2pzB,GAAmB,SACjCxurB,SAAU,EACVzwI,UAAW,GAAGutB,OAAOyyyB,EAAW,WAChCrnwB,QAAS,SAAiBxmE,GAxC5B,IAAqBga,EAyCjBha,EAAE4G,mBAzCeoT,EA0CLha,GAzCR6G,iBACNmT,EAAMpT,kBACNqxD,EAAS0+vB,OAAO,SAAU,CACxBnwzB,IAAKA,EACLwT,MAAOA,MAuCRugO,GAAatiL,EAASq1wB,YAAc,SACvC,OAAOM,EAAgBA,EAAcn4vB,GAAQA,GCpD3CglM,GAAU,SAAiBqzjB,GAC7B,IAAItnlB,EAAOsnlB,EAAOhwlB,SAAW,GAC3BiwlB,EAAmBvnlB,EAAKlqO,YACxBA,OAAmC,IAArByxzB,EAA8B,EAAIA,EAChDC,EAAoBxnlB,EAAKjqO,aAE3B,MAAO,CAACD,OAD+B,IAAtB0xzB,EAA+B,EAAIA,IAOlDC,GAAe,SAAsBj2zB,EAAMk2zB,GAC7C,OAAOl2zB,EAAKk2zB,EAAyB,EAAI,IAE3C,SAASC,GAAWnvtB,EAAOvhD,GACzB,IAAIuupB,EACAlkB,EAAoB3lG,GAAAA,WAAiBmzN,IACvC58F,EAAY5wB,EAAkB4wB,UAC9BvwtB,EAAO2/rB,EAAkB3/rB,KACvB0F,EAAYmxG,EAAMnxG,UACpB4P,EAAQuhG,EAAMvhG,MACdhU,EAAKu1G,EAAMv1G,GACXk8iB,EAAW3mc,EAAM2mc,SACjBwvQ,EAAYn2sB,EAAMm2sB,UAClB7syB,EAAM02F,EAAM12F,IACZslQ,EAAQ5uK,EAAM4uK,MACd31N,EAAW+mD,EAAM/mD,SACjB1rD,EAASyyG,EAAMzyG,OACf6ozB,EAAcp2sB,EAAMo2sB,YACpByX,EAAe7ttB,EAAM6ttB,aACrBti0B,EAAWy0G,EAAMz0G,SACjBwi0B,EAAa/ttB,EAAM+ttB,WACnBqB,EAAcpvtB,EAAMovtB,YAClBnhC,GAAexrN,EAAAA,GAAAA,UACf4sP,GAAe5sP,EAAAA,GAAAA,UACf6sP,GAAgB7sP,EAAAA,GAAAA,UAChB8sP,GAAiB9sP,EAAAA,GAAAA,UACjB+sP,GAAa/sP,EAAAA,GAAAA,UACbgtP,GAAgBhtP,EAAAA,GAAAA,UAChBitP,GAAoBjtP,EAAAA,GAAAA,UAGpBysP,EAAyC,QAAhB9Y,GAAyC,WAAhBA,EAClDuZ,EAAgB5Y,GAAa,GAAG,SAAUj4wB,EAAM7X,GAC5CioyB,GAA0BE,GAC5BA,EAAY,CACVvzrB,UAAW/8F,EAAO7X,EAAO,OAAS,aAIxC2oyB,GAAiB/+N,EAAAA,EAAAA,GAAe8+N,EAAe,GAC/CE,EAAgBD,EAAe,GAC/BE,EAAmBF,EAAe,GAChCG,EAAiBhZ,GAAa,GAAG,SAAUj4wB,EAAM7X,IAC5CioyB,GAA0BE,GAC7BA,EAAY,CACVvzrB,UAAW/8F,EAAO7X,EAAO,MAAQ,cAIvC+oyB,GAAiBn/N,EAAAA,EAAAA,GAAek/N,EAAgB,GAChDE,EAAeD,EAAe,GAC9BE,EAAkBF,EAAe,GAC/B7oH,GAAYzkI,EAAAA,GAAAA,UAAS,CAAC,EAAG,IAC3B0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCgpH,EAA4B/oH,EAAW,GACvCgpH,EAA+BhpH,EAAW,GACxCqC,GAAa/mI,EAAAA,GAAAA,UAAS,CAAC,EAAG,IAC5BgnI,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxC4mH,EAAiB3mH,EAAW,GAC5B4mH,EAAoB5mH,EAAW,GAC7BE,GAAalnI,EAAAA,GAAAA,UAAS,CAAC,EAAG,IAC5BmnI,GAAah5G,EAAAA,EAAAA,GAAe+4G,EAAY,GACxC2mH,EAAU1mH,EAAW,GACrB2mH,EAAa3mH,EAAW,GACtB4mH,GAAa/tP,EAAAA,GAAAA,UAAS,CAAC,EAAG,IAC5BguP,GAAa7/N,EAAAA,EAAAA,GAAe4/N,EAAY,GACxCE,GAAgBD,EAAW,GAC3BE,GAAmBF,EAAW,GAC5BG,G9CvEC,SAAwB7Z,GAC7B,IAAI8Z,GAAWruP,EAAAA,GAAAA,QAAO,IAClBgnI,GAAa/mI,EAAAA,GAAAA,UAAS,IAExBviI,GADa0wJ,EAAAA,EAAAA,GAAe44G,EAAY,GACf,GACvB9xnB,GAAQ8qf,EAAAA,GAAAA,QAA+B,oBAAjBu0O,EAA8BA,IAAiBA,GACrE+Z,EAAc5Z,IAAU,WAC1B,IAAIr4kB,EAAUnnJ,EAAMmnJ,QACpBgylB,EAAShylB,QAAQr+O,SAAQ,SAAUuuD,GACjC8vL,EAAU9vL,EAAS8vL,MAErBgylB,EAAShylB,QAAU,GACnBnnJ,EAAMmnJ,QAAUA,EAChBqhO,EAAY,OAMd,MAAO,CAACxoX,EAAMmnJ,QAJd,SAAiB9vL,GACf8hxB,EAAShylB,QAAQ19O,KAAK4tD,GACtB+hxB,M8CsDoBC,CAAe,IAAIh5kB,KACvCi5kB,IAAmBpgO,EAAAA,EAAAA,GAAeggO,GAAiB,GACnDK,GAAWD,GAAiB,GAC5BE,GAAcF,GAAiB,GAC7BG,GjDnGS,SAAoBjo0B,EAAM+n0B,EAAUG,GACjD,OAAO9uP,EAAAA,GAAAA,UAAQ,WAKb,IAJA,IAAI+uP,EACA5q0B,EAAM,IAAIsxP,IACVu5kB,EAAaL,EAAS7wzB,IAA2B,QAAtBixzB,EAASno0B,EAAK,UAA2B,IAAXmo0B,OAAoB,EAASA,EAAO9p0B,MAAQsvzB,GACrG0a,EAAcD,EAAWr4zB,KAAOq4zB,EAAWz/zB,MACtCvF,EAAI,EAAGA,EAAIpD,EAAKrI,OAAQyL,GAAK,EAAG,CACvC,IAKMkl0B,EALFjq0B,EAAM2B,EAAKoD,GAAG/E,IACd6G,EAAO6i0B,EAAS7wzB,IAAI7Y,GAGnB6G,IAEHA,EAAO6i0B,EAAS7wzB,IAA8B,QAAzBoxzB,EAAQto0B,EAAKoD,EAAI,UAA0B,IAAVkl0B,OAAmB,EAASA,EAAMjq0B,MAAQsvzB,IAElG,IAAIhrvB,EAASplE,EAAI2Z,IAAI7Y,IAAQ8zrB,EAAc,GAAIjtrB,GAG/Cy9D,EAAOvtD,MAAQizzB,EAAc1lwB,EAAO5yD,KAAO4yD,EAAOh6D,MAGlDpL,EAAI8+D,IAAIh+D,EAAKskE,GAEf,OAAOplE,IACN,CAACyC,EAAKzC,KAAI,SAAU0C,GACrB,OAAOA,EAAI5B,OACViK,KAAK,KAAMy/zB,EAAUG,IiDyEPK,CAAWvo0B,EAAM+n0B,GAAUb,EAAe,IAGvDsB,GAAiC1C,GAAakB,EAA2BjB,GACzE0C,GAAsB3C,GAAaoB,EAAgBnB,GACnD2C,GAAe5C,GAAasB,EAASrB,GACrC4C,GAAqB7C,GAAa0B,GAAezB,GACjDhhX,GAAayjX,GAAiCC,GAAsBC,GACpEE,GAAyB7jX,GAAayjX,GAAiCG,GAAqBH,GAAiCE,GAG7HG,GAA4B,GAAG51yB,OAAOs9rB,EAAW,0BACjDu4G,GAAe,EACfC,GAAe,EAWnB,SAASC,GAAa/v0B,GACpB,OAAIA,EAAQ6v0B,GACHA,GAEL7v0B,EAAQ8v0B,GACHA,GAEF9v0B,EAjBJ8s0B,GAGM5lzB,GACT2ozB,GAAe,EACfC,GAAe/rzB,KAAKC,IAAI,EAAGwrzB,GAAsBG,MAJjDE,GAAe9rzB,KAAKG,IAAI,EAAGyrzB,GAAyBH,IACpDM,GAAe,GAmBjB,IAAIE,IAAiB3vP,EAAAA,GAAAA,UACjB4vP,IAAa3vP,EAAAA,GAAAA,YACf4vP,IAAczhO,EAAAA,EAAAA,GAAewhO,GAAY,GACzCE,GAAgBD,GAAY,GAC5BE,GAAmBF,GAAY,GACjC,SAASG,KACPD,GAAiB1jwB,KAAKskC,OAExB,SAASs/tB,KACPzszB,OAAOyY,aAAa0zyB,GAAetzlB,U/C9IxB,SAAsBrgL,EAAKk0wB,GACxC,IAAIxrH,GAAYzkI,EAAAA,GAAAA,YACd0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCyrH,EAAgBxrH,EAAW,GAC3ByrH,EAAmBzrH,EAAW,GAC5BqC,GAAa/mI,EAAAA,GAAAA,UAAS,GACxBgnI,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxCqpH,EAAgBppH,EAAW,GAC3BqpH,EAAmBrpH,EAAW,GAC5BE,GAAalnI,EAAAA,GAAAA,UAAS,GACxBmnI,GAAah5G,EAAAA,EAAAA,GAAe+4G,EAAY,GACxCopH,EAAenpH,EAAW,GAC1BopH,EAAkBppH,EAAW,GAC3B4mH,GAAa/tP,EAAAA,GAAAA,YACfguP,GAAa7/N,EAAAA,EAAAA,GAAe4/N,EAAY,GACxCc,EAAab,EAAW,GACxBwC,EAAgBxC,EAAW,GACzBxyC,GAAYz7M,EAAAA,GAAAA,UAgEZ0wP,GAAwB1wP,EAAAA,GAAAA,UAwBxB2wP,GAAiB3wP,EAAAA,GAAAA,QAAO,MAC5B2wP,EAAet0lB,QAAU,CACvB25S,aAtFF,SAAsBz3hB,GACpB,IAAIqy0B,EAAcry0B,EAAE+oJ,QAAQ,GAC1Bq1J,EAAUi0hB,EAAYj0hB,QACtB23P,EAAUs8R,EAAYt8R,QACxB87R,EAAiB,CACfrh0B,EAAG4tS,EACHjhS,EAAG44hB,IAEL9whB,OAAOk/B,cAAc+4uB,EAAUp/iB,UA+E/B05S,YA7EF,SAAqBx3hB,GACnB,GAAK4x0B,EAAL,CACA5x0B,EAAE6G,iBACF,IAAIyr0B,EAAety0B,EAAE+oJ,QAAQ,GAC3Bq1J,EAAUk0hB,EAAal0hB,QACvB23P,EAAUu8R,EAAav8R,QACzB87R,EAAiB,CACfrh0B,EAAG4tS,EACHjhS,EAAG44hB,IAEL,IAAI7ngB,EAAUkwQ,EAAUwzhB,EAAcph0B,EAClC29B,EAAU4ngB,EAAU67R,EAAcz0zB,EACtCw0zB,EAASzjyB,EAASC,GAClB,IAAIikE,EAAMtkC,KAAKskC,MACf2/tB,EAAiB3/tB,GACjB6/tB,EAAgB7/tB,EAAM0/tB,GACtBI,EAAc,CACZ1h0B,EAAG09B,EACH/wB,EAAGgxB,MA4DLopf,WAzDF,WACE,GAAKq6S,IACLC,EAAiB,MACjBK,EAAc,MAGV3B,GAAY,CACd,IAAIr7I,EAAYq7I,EAAW//zB,EAAIwh0B,EAC3B78I,EAAYo7I,EAAWpzzB,EAAI60zB,EAC3BO,EAAOptzB,KAAK23B,IAAIo4oB,GAChBs9I,EAAOrtzB,KAAK23B,IAAIq4oB,GAGpB,GAAIhwqB,KAAKC,IAAImtzB,EAAMC,GAvEA,GAuE4B,OAC/C,IAAIC,EAAWv9I,EACXjmf,EAAWkmf,EACf+nG,EAAUp/iB,QAAU74N,OAAOm/B,aAAY,WACjCj/B,KAAK23B,IAAI21xB,GA1EK,KA0E8BttzB,KAAK23B,IAAImyJ,GA1EvC,IA2EhBhqL,OAAOk/B,cAAc+4uB,EAAUp/iB,SAKjC6zlB,EA/Ee,IA6Efc,GAAYvc,IA7EG,IA8EfjnnB,GAAYinnB,OA9EG,MAkHnBwc,QA5BF,SAAiB1y0B,GACf,IAAI8sI,EAAS9sI,EAAE8sI,OACbC,EAAS/sI,EAAE+sI,OAGTksnB,EAAQ,EACRs5E,EAAOptzB,KAAK23B,IAAIgwF,GAChB0lsB,EAAOrtzB,KAAK23B,IAAIiwF,GAChBwlsB,IAASC,EACXv5E,EAA0C,MAAlCk5E,EAAsBr0lB,QAAkBhxG,EAASC,EAChDwlsB,EAAOC,GAChBv5E,EAAQnsnB,EACRqlsB,EAAsBr0lB,QAAU,MAEhCm7gB,EAAQlsnB,EACRolsB,EAAsBr0lB,QAAU,KAE9B6zlB,GAAU14E,GAAQA,IACpBj5vB,EAAE6G,mBAYNs7lB,GAAAA,WAAgB,WAId,SAASwwO,EAAiB3y0B,GACxBoy0B,EAAet0lB,QAAQ05S,YAAYx3hB,GAErC,SAAS4y0B,EAAgB5y0B,GACvBoy0B,EAAet0lB,QAAQy5S,WAAWv3hB,GAiBpC,OAZAgC,SAAS9B,iBAAiB,YAAayy0B,EAAkB,CACvD1msB,SAAS,IAEXjqI,SAAS9B,iBAAiB,WAAY0y0B,EAAiB,CACrD3msB,SAAS,IAIXxuE,EAAIqgL,QAAQ59O,iBAAiB,cApB7B,SAA2BF,GACzBoy0B,EAAet0lB,QAAQ25S,aAAaz3hB,KAmBwB,CAC5DisI,SAAS,IAEXxuE,EAAIqgL,QAAQ59O,iBAAiB,SAd7B,SAAsBF,GACpBoy0B,EAAet0lB,QAAQ40lB,QAAQ1y0B,MAc1B,WACLgC,SAASrC,oBAAoB,YAAagz0B,GAC1C3w0B,SAASrC,oBAAoB,WAAYiz0B,MAE1C,I+CGHC,CAAatE,GAAgB,SAAUrgyB,EAASC,GAC9C,SAAS2kyB,EAAO/5rB,EAAUhuI,GACxBguI,GAAS,SAAU33I,GAEjB,OADe+v0B,GAAa/v0B,EAAQ2J,MAMxC,QAAKmid,KAGDghX,EACF4E,EAAOhE,EAAkB5gyB,GAEzB4kyB,EAAO5D,EAAiB/gyB,GAE1BujyB,KACAD,MACO,OAETtwP,EAAAA,GAAAA,YAAU,WAOR,OANAuwP,KACIH,KACFH,GAAetzlB,QAAU74N,OAAO5iB,YAAW,WACzCmv0B,GAAiB,KAChB,MAEEE,KACN,CAACH,KAIJ,IAAIwB,G7ClLS,SAAyB3C,EAAYW,EAAwBhpzB,EAAW6ozB,EAAqBoC,EAAkBC,EAAwBzslB,GACpJ,IAGI0slB,EACAvtzB,EACAwtzB,EALAhr0B,EAAOq+O,EAAKr+O,KACditzB,EAAc5ukB,EAAK4ukB,YACnB9syB,EAAMk+N,EAAKl+N,IAab,MATI,CAAC,MAAO,UAAUgzG,SAAS85rB,IAC7B8d,EAAW,QACXvtzB,EAAW2C,EAAM,QAAU,OAC3B6qzB,EAAgBhuzB,KAAK23B,IAAI/0B,KAEzBmrzB,EAAW,SACXvtzB,EAAW,MACXwtzB,GAAiBprzB,IAEZw5jB,EAAAA,GAAAA,UAAQ,WACb,IAAKp5kB,EAAKrI,OACR,MAAO,CAAC,EAAG,GAIb,IAFA,IAAIk3C,EAAM7uC,EAAKrI,OACX6zH,EAAW38E,EACNzrC,EAAI,EAAGA,EAAIyrC,EAAKzrC,GAAK,EAAG,CAC/B,IAAIR,EAASql0B,EAAW/wzB,IAAIlX,EAAKoD,GAAG/E,MAAQsvzB,GAC5C,GAAI/qzB,EAAO4a,GAAY5a,EAAOmo0B,GAAYC,EAAgBpC,EAAwB,CAChFp9sB,EAAWpoH,EAAI,EACf,OAIJ,IADA,IAAIpE,EAAa,EACRgoH,EAAKn4E,EAAM,EAAGm4E,GAAM,EAAGA,GAAM,EAEpC,IADcihtB,EAAW/wzB,IAAIlX,EAAKgnH,GAAI3oH,MAAQsvzB,IAClCnwyB,GAAYwtzB,EAAe,CACrChs0B,EAAagoH,EAAK,EAClB,MAGJ,OAAOhoH,GAAcwsH,EAAW,CAAC,EAAG,GAAK,CAACxsH,EAAYwsH,KACrD,CAACy8sB,EAAYW,EAAwBH,EAAqBoC,EAAkBC,EAAwBE,EAAe/d,EAAajtzB,EAAKzC,KAAI,SAAU0C,GACpJ,OAAOA,EAAI5B,OACViK,KAAK,KAAM6X,I6C0IS8qzB,CAAgBhD,GAErCW,GAEA7C,EAAyBW,EAAgBI,EAEzC2B,GAEAC,GAEAC,GAAoBx2I,EAAcA,EAAc,GAAIt7kB,GAAQ,GAAI,CAC9D72G,KAAMA,KAERkr0B,IAAoBxjO,EAAAA,EAAAA,GAAekjO,GAAkB,GACrDO,GAAeD,GAAkB,GACjCE,GAAaF,GAAkB,GAG7BG,GAAc9uG,IAAS,WACzB,IAAIl+tB,EAAMe,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK4tzB,EAC1Ese,EAAYrD,GAAW/wzB,IAAI7Y,IAAQ,CACrCsK,MAAO,EACPC,OAAQ,EACRmH,KAAM,EACNqF,MAAO,EACPjF,IAAK,GAEP,GAAI41zB,EAAwB,CAE1B,IAAIwF,EAAe7E,EAGfvmzB,EACEmrzB,EAAUl2zB,MAAQsxzB,EACpB6E,EAAeD,EAAUl2zB,MAChBk2zB,EAAUl2zB,MAAQk2zB,EAAU3i0B,MAAQ+9zB,EAAgBkC,KAC7D2C,EAAeD,EAAUl2zB,MAAQk2zB,EAAU3i0B,MAAQig0B,IAI9C0C,EAAUv7zB,MAAQ22zB,EACzB6E,GAAgBD,EAAUv7zB,KACjBu7zB,EAAUv7zB,KAAOu7zB,EAAU3i0B,OAAS+9zB,EAAgBkC,KAC7D2C,IAAiBD,EAAUv7zB,KAAOu7zB,EAAU3i0B,MAAQig0B,KAEtD7B,EAAgB,GAChBJ,EAAiBqC,GAAauC,QACzB,CAEL,IAAIC,EAAgB1E,EAChBwE,EAAUn7zB,KAAO22zB,EACnB0E,GAAiBF,EAAUn7zB,IAClBm7zB,EAAUn7zB,IAAMm7zB,EAAU1i0B,QAAUk+zB,EAAe8B,KAC5D4C,IAAkBF,EAAUn7zB,IAAMm7zB,EAAU1i0B,OAASgg0B,KAEvDjC,EAAiB,GACjBI,EAAgBiC,GAAawC,QAK7BC,GAAe,GACC,QAAhBxe,GAAyC,WAAhBA,EAC3Bwe,GAAatrzB,EAAM,cAAgB,cAAgBukzB,EAEnD+G,GAAaz9kB,UAAY02kB,EAE3B,IAAIgH,GAAW1r0B,EAAKzC,KAAI,SAAU0C,EAAKmD,GACrC,IAAI/E,EAAM4B,EAAI5B,IACd,OAAoB27lB,GAAAA,cAAoB2xO,GAAS,CAC/Crq0B,GAAIA,EACJivtB,UAAWA,EACXlytB,IAAKA,EACL4B,IAAKA,EAELqV,MAAa,IAANlS,OAAUqM,EAAYg8zB,GAC7BzxG,SAAU/5tB,EAAI+5tB,SACdlqqB,SAAUA,EACVttC,OAAQnkB,IAAQ2uzB,EAChByY,cAAerj0B,EACfui0B,gBAA4B,OAAXvg0B,QAA8B,IAAXA,OAAoB,EAASA,EAAOug0B,gBACxEtmwB,QAAS,SAAiBxmE,GACxB+s0B,EAAWvm0B,EAAKxG,IAElBs9B,QAAS,WACPk2yB,GAAYht0B,GACZir0B,KACKlD,EAAezwlB,UAIfx1N,IACHimzB,EAAezwlB,QAAQt3M,WAAa,GAEtC+nyB,EAAezwlB,QAAQr3M,UAAY,SAMrCstyB,GAAiB,WACnB,OAAO5D,IAAY,WACjB,IAAI6D,EAAW,IAAIh9kB,IAcnB,OAbA7uP,EAAK1I,SAAQ,SAAUkoP,GACrB,IAAIsslB,EACAzt0B,EAAMmhP,EAAMnhP,IACZ0t0B,EAAyD,QAA9CD,EAAsBzF,EAAW1wlB,eAA6C,IAAxBm2lB,OAAiC,EAASA,EAAoB76vB,cAAc,mBAAoBh+C,OAAOk7xB,GAAe9vzB,GAAM,OAC7L0t0B,GACFF,EAASxvwB,IAAIh+D,EAAK,CAChBsK,MAAOoj0B,EAAQ53zB,YACfvL,OAAQmj0B,EAAQ33zB,aAChBrE,KAAMg8zB,EAAQ3qrB,WACdjxI,IAAK47zB,EAAQptxB,eAIZktxB,OAGX7yP,EAAAA,GAAAA,YAAU,WACR4yP,OACC,CAAC5r0B,EAAKzC,KAAI,SAAU0C,GACrB,OAAOA,EAAI5B,OACViK,KAAK,OACR,IAAI0j0B,GAAqBhe,IAAU,WAEjC,IAAIlkY,EAAgBx3K,GAAQwyhB,GACxBmnC,EAAgB35jB,GAAQ4zjB,GACxBgG,EAAiB55jB,GAAQ6zjB,GAC7Bc,EAA6B,CAACn9Y,EAAc,GAAKmiZ,EAAc,GAAKC,EAAe,GAAIpiZ,EAAc,GAAKmiZ,EAAc,GAAKC,EAAe,KAC5I,IAAIC,EAAa75jB,GAAQi0jB,GACzBc,EAAW8E,GACX,IAAIC,EAAmB95jB,GAAQg0jB,GAC/BmB,GAAiB2E,GAGjB,IAAIC,EAAqB/5jB,GAAQ+zjB,GACjCc,EAAkB,CAACkF,EAAmB,GAAKF,EAAW,GAAIE,EAAmB,GAAKF,EAAW,KAG7FP,QAIEU,GAAkBts0B,EAAKlD,MAAM,EAAGqu0B,IAChCoB,GAAgBvs0B,EAAKlD,MAAMsu0B,GAAa,GACxCoB,GAAa,GAAGv5yB,QAAOi1kB,EAAAA,EAAAA,GAAmBokO,KAAkBpkO,EAAAA,EAAAA,GAAmBqkO,KAG/EE,IAAclzP,EAAAA,GAAAA,YAChBmzP,IAAchlO,EAAAA,EAAAA,GAAe+kO,GAAa,GAC1CE,GAAWD,GAAY,GACvBE,GAAcF,GAAY,GACxBG,GAAkB5E,GAAW/wzB,IAAI81yB,GAGjC8f,IAAexzP,EAAAA,GAAAA,UACnB,SAASyzP,KACP1vH,GAAAA,OAAWyvH,GAAan3lB,UAE1BqjW,EAAAA,GAAAA,YAAU,WACR,IAAIg0P,EAAc,GAkBlB,OAjBIH,KACE9G,GACE5lzB,EACF6szB,EAAY53zB,MAAQy3zB,GAAgBz3zB,MAEpC43zB,EAAYj9zB,KAAO88zB,GAAgB98zB,KAErCi9zB,EAAYrk0B,MAAQkk0B,GAAgBlk0B,QAEpCqk0B,EAAY78zB,IAAM08zB,GAAgB18zB,IAClC68zB,EAAYpk0B,OAASik0B,GAAgBjk0B,SAGzCmk0B,KACAD,GAAan3lB,QAAU0ne,IAAI,WACzBuvH,GAAYI,MAEPD,KACN,CAACF,GAAiB9G,EAAwB5lzB,KAG7C64jB,EAAAA,GAAAA,YAAU,WACRqyP,OAEC,CAACre,EAAW8b,GAAcC,GAAcn2zB,GAAUi6zB,IAAkBj6zB,GAAUq1zB,IAAalC,KAG9F/sP,EAAAA,GAAAA,YAAU,WACRgzP,OAEC,CAAC7rzB,IAGJ,IAEI8szB,GACAC,GACAC,GACAC,GALAC,KAAgBb,GAAW700B,OAC3B210B,GAAa,GAAGr6yB,OAAOs9rB,EAAW,aAiBtC,OAZIw1G,EACE5lzB,GACF+szB,GAAYxG,EAAgB,EAC5BuG,GAAWvG,IAAkBqC,KAE7BkE,GAAWvG,EAAgB,EAC3BwG,GAAYxG,IAAkBoC,KAGhCqE,GAAUrG,EAAe,EACzBsG,GAAatG,IAAiBgC,IAEZ9uO,GAAAA,cAAoBh2Z,GAAgB,CACtDttG,SAAUs1uB,IACIhyO,GAAAA,cAAoB,MAAO,CACzC1kiB,IAAKolpB,GAAcplpB,EAAKwvuB,GACxBj7pB,KAAM,UACNnkI,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,QAAS7qtB,GACpD4P,MAAOA,EACP45F,UAAW,WAETo6tB,OAEYtvO,GAAAA,cAAoB00N,GAAc,CAChDp5vB,IAAK4wwB,EACL1ozB,SAAU,OACVioQ,MAAOA,EACP8qc,UAAWA,IACIv2H,GAAAA,cAAoB,MAAO,CAC1Ct0lB,UAAW2+M,IAAAA,CAAWipnB,IAAazpH,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOq6yB,GAAY,cAAeL,KAAW/7vB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOq6yB,GAAY,eAAgBJ,KAAYh8vB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOq6yB,GAAY,aAAcH,KAAUj8vB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOq6yB,GAAY,gBAAiBF,IAAavpH,IAC7WvupB,IAAK8wwB,GACSpsO,GAAAA,cAAoBh2Z,GAAgB,CAClDttG,SAAUs1uB,IACIhyO,GAAAA,cAAoB,MAAO,CACzC1kiB,IAAK+wwB,EACL3g0B,UAAW,GAAGutB,OAAOs9rB,EAAW,aAChCj7sB,MAAO,CACLsK,UAAW,aAAaqT,OAAOyzyB,EAAe,QAAQzzyB,OAAO6zyB,EAAc,OAC3ExqmB,WAAY8smB,GAAgB,YAAS35zB,IAEtCi8zB,GAAuB1xO,GAAAA,cAAoBq0N,GAAW,CACvD/4vB,IAAKixwB,EACLh2G,UAAWA,EACXnstB,OAAQA,EACR0rD,SAAUA,EACVx6C,MAAO68qB,EAAcA,EAAc,GAAwB,IAApBu5I,GAAS/z0B,YAAe8X,EAAYg8zB,IAAe,GAAI,CAC5F7+wB,WAAYygxB,GAAc,SAAW,SAExBrzO,GAAAA,cAAoB,MAAO,CAC1Ct0lB,UAAW2+M,IAAAA,CAAW,GAAGpxL,OAAOs9rB,EAAW,aAAar/oB,EAAAA,EAAAA,GAAgB,GAAI,GAAGj+C,OAAOs9rB,EAAW,qBAAsB/yK,EAAS+vR,SAChIj4zB,MAAOq3zB,QACW3yO,GAAAA,cAAoBsqO,IAAeh1mB,EAAAA,GAAAA,GAAS,GAAIz4G,EAAO,CACzE8ttB,gBAA4B,OAAXvg0B,QAA8B,IAAXA,OAAoB,EAASA,EAAOug0B,gBACxErvwB,IAAKgxwB,EACL/1G,UAAWA,EACXvwtB,KAAMws0B,GACN9m0B,WAAY2n0B,IAAexE,GAC3B2E,YAAapE,MACGpvO,GAAAA,cAAoB00N,GAAc,CAClDp5vB,IAAK6wwB,EACL3ozB,SAAU,QACVioQ,MAAOA,EACP8qc,UAAWA,MAKf,OAA4Bv2H,GAAAA,WAAiBgsO,ICnczCr6iB,GAAY,CAAC,gBACfm6C,GAAa,CAAC,QAAS,OAQV,SAAS2ngB,GAAkBpvlB,GACxC,IAAIqvlB,EAAervlB,EAAKqvlB,aACtB3mgB,EAAYm0Y,GAAyB78d,EAAMstC,IAE3C3rR,EADsBg6lB,GAAAA,WAAiBmzN,IACdntzB,KAC3B,GAAI0t0B,EAAc,CAChB,IAAIC,EAAiBx7I,EAAcA,EAAc,GAAIprX,GAAY,GAAI,CAEnEyrM,MAAOxygB,EAAKzC,KAAI,SAAUiiP,GACxB,IAAI9kG,EAAQ8kG,EAAM9kG,MAChBr8I,EAAMmhP,EAAMnhP,IACZovzB,EAAevyG,GAAyB17d,EAAOsmF,IACjD,OAAoBk0R,GAAAA,cAAoB6yN,IAASv9lB,EAAAA,GAAAA,GAAS,CACxDrvN,IAAKy6I,EACLr8I,IAAKA,EACLyuzB,OAAQzuzB,GACPovzB,SAGP,OAAOigB,EAAaC,EAAgB3H,IAEtC,OAAoBhsO,GAAAA,cAAoBgsO,GAAYj/f,GC3BtD,IAAIp7C,GAAY,CAAC,KAAM,YAAa,YAAa,QAAS,YAAa,YAAa,mBAAoB,WAAY,WAAY,cAAe,eAAgB,cAAe,qBAAsB,SAAU,WAAY,qBAAsB,yBAA0B,eAAgB,WAAY,aAAc,cAAe,oBAAqB,kBAuBpVsra,GAAO,EACX,SAAS22I,GAAKvvlB,EAAM/oL,GAClB,IAAIuupB,EACAvitB,EAAK+8O,EAAK/8O,GACZknyB,EAAiBnqjB,EAAKkye,UACtBA,OAA+B,IAAnBi4E,EAA4B,UAAYA,EACpD9iyB,EAAY24O,EAAK34O,UACjB3C,EAAQs7O,EAAKt7O,MACb2vI,EAAY2rG,EAAK3rG,UACjBs6qB,EAAY3ukB,EAAK2ukB,UACjB6gB,EAAmBxvlB,EAAKwvlB,iBACxB/9wB,EAAWuuL,EAAKvuL,SAChB0tf,EAAWn/T,EAAKm/T,SAChBswR,EAAmBzvlB,EAAK4ukB,YACxBA,OAAmC,IAArB6gB,EAA8B,MAAQA,EACpDpJ,EAAermlB,EAAKqmlB,aACpBqJ,EAAc1vlB,EAAK0vlB,YACnBC,EAAqB3vlB,EAAK2vlB,mBAC1B5p0B,EAASi6O,EAAKj6O,OACdog0B,EAAWnmlB,EAAKmmlB,SAChBC,EAAqBpmlB,EAAKomlB,mBAC1BvX,EAAyB7ukB,EAAK6ukB,uBAC9BwgB,EAAervlB,EAAKqvlB,aACpB54yB,EAAWupN,EAAKvpN,SAChB8vyB,EAAavmlB,EAAKumlB,WAClBqB,EAAc5nlB,EAAK4nlB,YACnBpnzB,EAAoBw/N,EAAKx/N,kBACzBo3wB,EAAiB53iB,EAAK43iB,eACtBlvd,EAAYm0Y,GAAyB78d,EAAMstC,IACzC3rR,EAAOg6lB,GAAAA,SAAc,WACvB,OAAQj3lB,GAAS,IAAI9F,QAAO,SAAU1F,GACpC,OAAOA,GAA0B,YAAlBgqmB,EAAAA,GAAAA,GAAQhqmB,IAAsB,QAASA,OAEvD,CAACwL,IACAod,EAAoB,QAAduyH,EACNu7rB,EC7DS,WACb,IAIIA,EAJAzwR,EAAWp+iB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,CACjFmu0B,QAAQ,EACRlgB,SAAS,GA6BX,OAzBE4gB,GADe,IAAbzwR,EACe,CACf+vR,QAAQ,EACRlgB,SAAS,IAEW,IAAb7vQ,EACQ,CACf+vR,QAAQ,EACRlgB,SAAS,GAGMl7H,EAAc,CAC7Bo7I,QAAQ,GACe,YAAtBhsO,EAAAA,GAAAA,GAAQ/jD,GAAyBA,EAAW,KAI9BkwQ,oBAA4Cj+yB,IAA3Bw+zB,EAAe5gB,UACjD4gB,EAAe5gB,SAAU,IAEtB4gB,EAAevgB,eAAiBugB,EAAe5gB,UAIlD4gB,EAAe5gB,SAAU,GAEpB4gB,ED6BcC,CAAiB1wR,GAGlCwgK,GAAYzkI,EAAAA,GAAAA,WAAS,GACvB0kI,GAAav2G,EAAAA,EAAAA,GAAes2G,EAAW,GACvCkpE,EAASjpE,EAAW,GACpB64E,EAAY74E,EAAW,IACzBjlI,EAAAA,GAAAA,YAAU,WAER89M,EAAU3/pB,QACT,IAGH,IAAIsvqB,EAAkB9pE,IAAe,WACjC,IAAIwrG,EACJ,OAA8B,QAAtBA,EAASno0B,EAAK,UAA2B,IAAXmo0B,OAAoB,EAASA,EAAO9p0B,MACzE,CACDpF,MAAO+zzB,EACPphxB,aAAciiyB,IAEhBnnC,GAAmBh/L,EAAAA,EAAAA,GAAe++L,EAAiB,GACnDo8B,EAAkBn8B,EAAiB,GACnCo8B,EAAqBp8B,EAAiB,GACpCpmF,GAAa/mI,EAAAA,GAAAA,WAAS,WACtB,OAAOv5kB,EAAKszH,WAAU,SAAUrzH,GAC9B,OAAOA,EAAI5B,MAAQwk0B,QAGvBtiH,GAAa74G,EAAAA,EAAAA,GAAe44G,EAAY,GACxC6tH,EAAc5tH,EAAW,GACzB6tH,EAAiB7tH,EAAW,IAG9BvnI,EAAAA,GAAAA,YAAU,WACR,IAIMq1P,EAJFC,EAAiBtu0B,EAAKszH,WAAU,SAAUrzH,GAC5C,OAAOA,EAAI5B,MAAQwk0B,MAEG,IAApByL,IAEFA,EAAiBtxzB,KAAKC,IAAI,EAAGD,KAAKG,IAAIgxzB,EAAanu0B,EAAKrI,OAAS,IACjEmr0B,EAAqE,QAAjDuL,EAAuBru0B,EAAKsu0B,UAAsD,IAAzBD,OAAkC,EAASA,EAAqBhw0B,MAE/I+v0B,EAAeE,KACd,CAACtu0B,EAAKzC,KAAI,SAAU0C,GACrB,OAAOA,EAAI5B,OACViK,KAAK,KAAMu6zB,EAAiBsL,IAG/B,IAAIxL,EAAmBhmG,GAAe,KAAM,CACxC1juB,MAAOqI,IAETsh0B,GAAmBl7N,EAAAA,EAAAA,GAAei7N,EAAkB,GACpD4L,EAAW3L,EAAiB,GAC5B4L,EAAc5L,EAAiB,IAGjC5pP,EAAAA,GAAAA,YAAU,WACH13kB,IACHkt0B,EAAY,WAAWv7yB,OAAkDgkqB,KACzEA,IAAQ,KAET,IAaH,IAAIw3I,EAAc,CAChBnt0B,GAAIit0B,EACJvhB,UAAW6V,EACXrlR,SAAUywR,EACVhhB,YAAaA,EACb9syB,IAAKA,EACL+mwB,OAAQA,GAGNymD,EAAiBx7I,EAAcA,EAAc,GAAIs8I,GAAc,GAAI,CACrE3+wB,SAAUA,EACV1rD,OAAQA,EACRog0B,SAAUA,EACVC,mBAAoBA,EACpBC,aAAcA,EACdE,WAzBF,SAA4Bvm0B,EAAKxG,GAChB,OAAf+s0B,QAAsC,IAAfA,GAAiCA,EAAWvm0B,EAAKxG,GACxE,IAAI620B,EAAkBrw0B,IAAQwk0B,EAC9BC,EAAmBzk0B,GACfqw0B,IACW,OAAb55yB,QAAkC,IAAbA,GAA+BA,EAASz2B,KAqB/D4n0B,YAAaA,EACbxgjB,MAAOuojB,EACP14zB,MAAOy4zB,EACPv7T,MAAO,KACP3zf,kBAAmBA,EACnBo3wB,eAAgBA,IAElB,OAAoBj8L,GAAAA,cAAoBmzN,GAAW70sB,SAAU,CAC3Dr/G,MAAO,CACL+G,KAAMA,EACNuwtB,UAAWA,IAECv2H,GAAAA,cAAoB,OAAO1qY,EAAAA,GAAAA,GAAS,CAClDh6J,IAAKA,EACLh0D,GAAIA,EACJoE,UAAW2+M,IAAAA,CAAWksgB,EAAW,GAAGt9rB,OAAOs9rB,EAAW,KAAKt9rB,OAAOg6xB,IAAeppG,EAAc,IAAI3yoB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,WAAY22D,IAASh2sB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,aAAczgqB,IAAWohB,EAAAA,EAAAA,GAAgB2yoB,EAAa,GAAG5wrB,OAAOs9rB,EAAW,QAASpwsB,GAAM0jsB,GAAcn+sB,IACnUqhU,GAxBC4ngB,UAwBmC30O,GAAAA,cAAoByzO,IAAmBn+mB,EAAAA,GAAAA,GAAS,GAAIq+mB,EAAgB,CACzGD,aAAcA,KACE1zO,GAAAA,cAAoB+yN,IAAcz9lB,EAAAA,GAAAA,GAAS,CAC3D49lB,uBAAwBA,GACvBuhB,EAAa,CACdjxR,SAAUywR,OAOd,IErLA,GFiL+Bj0O,GAAAA,WAAiB4zO,IG9KhD,OAJgB,kBAAM,MCChB1gI,GAAS,CACbgS,cAAc,EACdF,aAAa,EACbI,aAAa,GCJf,IAAIjgH,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GCJF,IAgGDqhxB,GAAc,CAClB,WAAY,CACVpvC,YAlGqB,IAAI3gE,GAAU,eAAgB,CACrD,KAAM,CACJj/sB,UAAW,cACXqgxB,gBAAiB,QACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,YACXqgxB,gBAAiB,QACjB13pB,QAAS,KA0FTk3pB,aAvFsB,IAAI5gE,GAAU,gBAAiB,CACvD,KAAM,CACJj/sB,UAAW,YACXqgxB,gBAAiB,QACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,cACXqgxB,gBAAiB,QACjB13pB,QAAS,MAgFX,aAAc,CACZi3pB,YA9EuB,IAAI3gE,GAAU,iBAAkB,CACzD,KAAM,CACJj/sB,UAAW,cACXqgxB,gBAAiB,YACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,YACXqgxB,gBAAiB,YACjB13pB,QAAS,KAsETk3pB,aAnEwB,IAAI5gE,GAAU,kBAAmB,CAC3D,KAAM,CACJj/sB,UAAW,YACXqgxB,gBAAiB,YACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,cACXqgxB,gBAAiB,YACjB13pB,QAAS,MA4DX,aAAc,CACZi3pB,YA1DuB,IAAI3gE,GAAU,iBAAkB,CACzD,KAAM,CACJj/sB,UAAW,cACXqgxB,gBAAiB,QACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,YACXqgxB,gBAAiB,QACjB13pB,QAAS,KAkDTk3pB,aA/CwB,IAAI5gE,GAAU,kBAAmB,CAC3D,KAAM,CACJj/sB,UAAW,YACXqgxB,gBAAiB,QACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,cACXqgxB,gBAAiB,QACjB13pB,QAAS,MAwCX,cAAe,CACbi3pB,YAtCwB,IAAI3gE,GAAU,kBAAmB,CAC3D,KAAM,CACJj/sB,UAAW,cACXqgxB,gBAAiB,UACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,YACXqgxB,gBAAiB,UACjB13pB,QAAS,KA8BTk3pB,aA3ByB,IAAI5gE,GAAU,mBAAoB,CAC7D,KAAM,CACJj/sB,UAAW,YACXqgxB,gBAAiB,UACjB13pB,QAAS,GAEX,OAAQ,CACN3oH,UAAW,cACXqgxB,gBAAiB,UACjB13pB,QAAS,OAqBAsmsB,GAAkB,SAACnxvB,EAAOmloB,GAAe,MAElDub,EACE1gpB,EADF0gpB,OAEIra,EAAY,GAAH,OAAMqa,EAAN,YAAgBvb,GAC/B,EAGI+rH,GAAY/rH,GAFd28E,EADF,EACEA,YACAC,EAFF,EAEEA,aAEF,MAAO,CAACF,GAAWx7E,EAAWy7E,EAAaC,EAAc/htB,EAAMy6nB,oBAAxD,iCAED4L,EAFC,0BAGDA,EAHC,0BAKHnksB,UAAW,WACXqgxB,gBAAiB,QACjB13pB,QAAS,EACT42lB,wBAAyBzhpB,EAAMgvnB,oBAR5B,YASY,CACb9srB,UAAW,eAVV,mBAaDmksB,EAbC,UAamB,CACtBob,wBAAyBzhpB,EAAM+unB,oBAd5B,KCxFT,GApCuB,SAAA/unB,GACrB,IACEwgpB,EAEExgpB,EAFFwgpB,aACA9lB,EACE16nB,EADF06nB,mBAEF,MAAO,EAAC,UACL8lB,GADI,oBAECA,EAFD,WAEyB,CAC1B,oBAAqB,CACnB5hgB,WAAY,OACZ,UAAW,CACT/zF,QAAS,GAEX,WAAY,CACVA,QAAS,EACT+zF,WAAY,WAAF,OAAa87e,KAG3B,UAAW,CACT56rB,SAAU,WACV8+M,WAAY,OACZwymB,MAAO,EACP,UAAW,CACTvmsB,QAAS,GAEX,WAAY,CACVA,QAAS,EACT+zF,WAAY,WAAF,OAAa87e,QAOjC,CAACy2H,GAAgBnxvB,EAAO,YAAamxvB,GAAgBnxvB,EAAO,iBChCxDqxvB,GAAe,SAAArxvB,GAAS,gBAE1BwgpB,EAMExgpB,EANFwgpB,aACA8wG,EAKEtxvB,EALFsxvB,gBACAC,EAIEvxvB,EAJFuxvB,OACAC,EAGExxvB,EAHFwxvB,WACAl5H,EAEEt4nB,EAFFs4nB,qBACAm5H,EACEzxvB,EADFyxvB,kBAEF,2BACMjxG,EADN,qCAEUA,EAFV,yBAEuCA,EAFvC,kCAGUA,EAHV,QAG+B,CACvBviiB,OAAQ,EACRn2K,QAASwpzB,EACT5tT,WAAY6tT,EACZv8xB,OAAQ,GAAF,OAAKgrC,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CgK,GAClD15e,WAAY,OAAF,OAAS5+I,EAAM06nB,mBAAf,YAAqC16nB,EAAM4unB,oBAR7D,mBAUU4xB,EAVV,eAUsC,CAC9BztrB,MAAO0+xB,EACP/tT,WAAY1jc,EAAMk4nB,oBAZ1B,mBAcUsoB,EAdV,YAcmC,CAC3BtxqB,WAAY,WAfpB,yBAmBSsxqB,EAnBT,kBAmB+BA,EAnB/B,kCAoBYA,EApBZ,yBAoByCA,EApBzC,6BAqBYA,EArBZ,kBAqBkCA,EArBlC,QAqBuD,CAC7Cjwe,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,GAAF,OAAKi20B,EAAL,YAxBjB,oBA6BShxG,EA7BT,+BA8BYA,EA9BZ,yBA8ByCA,EA9BzC,kCA+BYA,EA/BZ,QA+BiC,CACvBliF,aAAc,GAAF,OAAKt+jB,EAAMk3nB,eAAX,cAA+Bl3nB,EAAMk3nB,eAArC,aAhCtB,mBAkCYspB,EAlCZ,eAkCwC,CAC9BkxG,kBAAmB1xvB,EAAMk4nB,mBAnCnC,0BAuCSsoB,EAvCT,kCAwCYA,EAxCZ,yBAwCyCA,EAxCzC,kCAyCYA,EAzCZ,QAyCiC,CACvBliF,aAAc,OAAF,OAASt+jB,EAAMk3nB,eAAf,cAAmCl3nB,EAAMk3nB,eAAzC,SA1CtB,mBA4CYspB,EA5CZ,eA4CwC,CAC9BmxG,eAAgB3xvB,EAAMk4nB,mBA7ChC,0BAkDSsoB,EAlDT,mBAkDgCA,EAlDhC,iCAmDYA,EAnDZ,yBAmDyCA,EAnDzC,6BAoDYA,EApDZ,kBAoDkCA,EApDlC,QAoDuD,CAC7Clwe,UAAW,GAAF,OAAKkhlB,EAAL,WArDnB,oBAyDShxG,EAzDT,gCA0DYA,EA1DZ,yBA0DyCA,EA1DzC,kCA2DYA,EA3DZ,QA2DiC,CACvBliF,aAAc,CACZ0hJ,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMk3nB,eAAX,kBAAmCl3nB,EAAMk3nB,eAAzC,UA9DjB,mBAiEYspB,EAjEZ,eAiEwC,CAC9BoxG,iBAAkB,CAChB5xC,cAAc,EACdzkyB,MAAOykF,EAAMk4nB,oBApEzB,0BAyESsoB,EAzET,iCA0EYA,EA1EZ,yBA0EyCA,EA1EzC,kCA2EYA,EA3EZ,QA2EiC,CACvBliF,aAAc,CACZ0hJ,cAAc,EACdzkyB,MAAO,KAAF,OAAOykF,EAAMk3nB,eAAb,cAAiCl3nB,EAAMk3nB,eAAvC,YA9EjB,mBAiFYspB,EAjFZ,eAiFwC,CAC9BqxG,gBAAiB,CACf7xC,cAAc,EACdzkyB,MAAOykF,EAAMk4nB,oBApFzB,UA4FI45H,GAAmB,SAAA9xvB,GACvB,IACEwgpB,EAGExgpB,EAHFwgpB,aACAuxG,EAEE/xvB,EAFF+xvB,eACAC,EACEhyvB,EADFgyvB,iCAEF,2BACMxxG,EADN,aACgC//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,KAA/C,QAC5BlgE,SAAU,WACVrN,KAAM,KACNJ,KAAM,CACJ2txB,cAAc,EACdzkyB,OAAQ,MAEVuhD,OAAQkjC,EAAM8gpB,YACd9ntB,QAAS,QACT,WAAY,CACVA,QAAS,SAViB,UAYxBwntB,EAZwB,kBAYO,CACjCnhtB,UAAW2gE,EAAMiyvB,mBACjBh0oB,OAAQ,EACRn2K,QAAS,GAAF,OAAKkqzB,EAAL,QACPh0Z,UAAW,SACXC,UAAW,OACXmkM,UAAW,CACT49K,cAAc,EACdzkyB,MAAO,QAETwqzB,cAAe,OACf/oxB,gBAAiBgjD,EAAMk4nB,iBACvB7kK,eAAgB,cAChBirG,aAAct+jB,EAAMk3nB,eACpB0Y,QAAS,OACTlD,UAAW1soB,EAAM2soB,mBACjB,SAAUlstB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIu2qB,IAAe,CACvDx2sB,QAAS,OACTu4T,WAAY,SACZn5T,SAAU4nE,EAAMkyvB,kBAChBj0oB,OAAQ,EACRn2K,QAAS,GAAF,OAAKk4D,EAAMuroB,WAAX,cAA2BvroB,EAAMyroB,UAAjC,MACP14qB,MAAOitC,EAAMy3nB,UACb3wgB,WAAY,SACZvyJ,SAAUyrC,EAAMzrC,SAChBhH,WAAYyyC,EAAMzyC,WAClB1F,OAAQ,UACR+2L,WAAY,OAAF,OAAS5+I,EAAM06nB,oBACzB,SAAU,CACR5nnB,KAAM,EACN0lD,WAAY,UAEd,WAAY,CACV1lD,KAAM,OACNy9J,WAAY,CACVyviB,cAAc,EACdzkyB,MAAOykF,EAAMqsoB,UAEft5qB,MAAOitC,EAAM6poB,qBACbt1qB,SAAUyrC,EAAM44nB,WAChBl1L,WAAY,cACZ1ue,OAAQ,EACRnN,OAAQ,UACR,UAAW,CACTkL,MAAOg/xB,IAGX,UAAW,CACTruT,WAAY1jc,EAAM0qoB,oBAEpB,aAAc,CACZ,aAAc,CACZ33qB,MAAOitC,EAAM0poB,kBACbhmM,WAAY,cACZ77e,OAAQ,uBAQhBsqyB,GAAmB,SAAAnyvB,GAAS,oBAE9BwgpB,EAMExgpB,EANFwgpB,aACAviiB,EAKEj+G,EALFi+G,OACAq6gB,EAIEt4nB,EAJFs4nB,qBACA85H,EAGEpyvB,EAHFoyvB,iBACAC,EAEEryvB,EAFFqyvB,oBACAC,EACEtyvB,EADFsyvB,mBAEF,gCAEM9xG,EAFN,iBAE2BA,EAF3B,oBAGIruZ,cAAe,UAHnB,YAIUquZ,EAJV,yBAIuCA,EAJvC,YAKMviiB,OAAQm0oB,EACR,YAAa,CACXtyzB,SAAU,WACVpI,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO,GAET8W,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,GAET2nwB,aAAc,GAAF,OAAKljrB,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CgK,GACxD79rB,QAAS,QAjBjB,mBAmBU+ltB,EAnBV,YAmBmC,CAC3Bt1tB,OAAQ80E,EAAM26nB,cACd,aAAc,CACZ/7e,WAAY,SAAF,OAAW5+I,EAAM06nB,mBAAjB,kBAA6C16nB,EAAM06nB,mBAAnD,gCACF16nB,EAAM06nB,wBAvBxB,mBA0BU8lB,EA1BV,iBA2BQ,sBAAuB,CACrB/ttB,IAAK,EACLkF,OAAQ,EACR1M,MAAO+0E,EAAMwtnB,eAEf,YAAa,CACXn7rB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,GAETmxtB,UAAW1soB,EAAMkuoB,2BAEnB,WAAY,CACVx2sB,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO,GAETmxtB,UAAW1soB,EAAMmuoB,8BA5C3B,oBA8CaqS,EA9Cb,+BA8CyD,CAC/C31lB,QAAS,KA/CnB,oBAiDa21lB,EAjDb,+BAiDyD,CAC/C31lB,QAAS,IAlDnB,6BAuDM21lB,EAvDN,+BAwDUA,EAxDV,kCAyDgBA,EAzDhB,iBA0DM,YAAa,CACX7otB,OAAQ,IA3DhB,UA6DU6otB,EA7DV,YA6DmC,CAC3B7otB,OAAQ,OA9DhB,mBAkEM6otB,EAlEN,uCAmEUA,EAnEV,yBAmEuCA,EAnEvC,iBAoEMlsO,MAAO,EACPhkQ,UAAW,GAAF,OAAKryD,EAAL,MACTq5Q,aAAc,EACd,YAAa,CACX7kc,IAAK,IAxEb,UA0EU+ttB,EA1EV,YA0EmC,CAC3B/ttB,IAAK,MA3Eb,qBA8EU+ttB,EA9EV,oCA8EkDA,EA9ElD,mBA8EkF,CAC5ElsO,MAAO,IA/Eb,wBAmFMksO,EAnFN,kBAmF4BA,EAnF5B,iCAoFUA,EApFV,yBAoFuCA,EApFvC,YAqFMruZ,cAAe,SACf/5T,SAAgC,KAAtB4nE,EAAMwtnB,gBAtFtB,mBAwFUgzB,EAxFV,QAwF+B,CACvB14sB,QAASuqzB,EACTjwN,UAAW,YA1FnB,mBA4FUo+G,EA5FV,kBA4FgCA,EA5FhC,QA4FqD,CAC7CviiB,OAAQq0oB,KA7FhB,mBAgGU9xG,EAhGV,iBAiGQruZ,cAAe,SACf,sBAAuB,CACrBz6T,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO,GAET8W,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,GAET2P,OAAQ80E,EAAMwtnB,eAEhB,YAAa,CACX/6rB,IAAK,EACLi6sB,UAAW1soB,EAAMouoB,0BAEnB,WAAY,CACVz2sB,OAAQ,EACR+0sB,UAAW1soB,EAAMquoB,+BAnH3B,oBAqHamS,EArHb,8BAqHwD,CAC9C31lB,QAAS,KAtHnB,oBAwHa21lB,EAxHb,gCAwH0D,CAChD31lB,QAAS,IAzHnB,wBA6HU21lB,EA7HV,YA6HmC,CAC3Bv1tB,MAAO+0E,EAAM26nB,cACb,aAAc,CACZ/7e,WAAY,UAAF,OAAY5+I,EAAM06nB,mBAAlB,iBAA6C16nB,EAAM06nB,wBAhIvE,mBAmIU8lB,EAnIV,sBAmIoCA,EAnIpC,mBAmIoE,CAC5D1toB,KAAM,WACNq/O,cAAe,WArIvB,yBAyIMquZ,EAzIN,qCA0IUA,EA1IV,yBA0IuCA,EA1IvC,6BA2IUA,EA3IV,YA2ImC,CAC3B9otB,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO,OA9IjB,qBAkJUiluB,EAlJV,oCAkJkDA,EAlJlD,4BAmJMjwe,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,IAAF,OAAMykF,EAAMm7b,UAAZ,OAEPo3T,WAAY,CACVvyC,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CtunB,EAAMq4nB,eAzJ/D,YA2JYmoB,EA3JZ,sBA2JsCA,EA3JtC,YA2J+D,CACvDrtrB,YAAa,CACX6svB,cAAc,EACdzkyB,MAAOykF,EAAM2roB,cA9JvB,wBAmKM6U,EAnKN,sCAoKUA,EApKV,yBAoKuCA,EApKvC,iBAqKMlsO,MAAO,GArKb,UAsKUksO,EAtKV,YAsKmC,CAC3BnutB,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,OAzKjB,qBA6KUiluB,EA7KV,oCA6KkDA,EA7KlD,4BA8KMlsO,MAAO,EACP7vB,YAAa,CACXu7T,cAAc,EACdzkyB,OAAQykF,EAAMm7b,WAEhBq3T,YAAa,CACXxyC,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CtunB,EAAMq4nB,eArL/D,YAuLYmoB,EAvLZ,sBAuLsCA,EAvLtC,YAuL+D,CACvDltrB,aAAc,CACZ0svB,cAAc,EACdzkyB,MAAOykF,EAAM2roB,cA1LvB,OAiMI8mH,GAAe,SAAAzyvB,GAAS,UAE1BwgpB,EAKExgpB,EALFwgpB,aACAkyG,EAIE1yvB,EAJF0yvB,cACAC,EAGE3yvB,EAHF2yvB,cACAC,EAEE5yvB,EAFF4yvB,wBACAC,EACE7yvB,EADF6yvB,wBAEF,sBACGryG,EAAe,CACd,iCACQA,EADR,6BAEQA,EAFR,QAE6B,CACvB14sB,QAAS8qzB,EACTr+xB,SAAUyrC,EAAM8yvB,mBAItB,iCACQtyG,EADR,6BAEQA,EAFR,QAE6B,CACvB14sB,QAAS+qzB,EACTt+xB,SAAUyrC,EAAM+yvB,sBAd1B,mBAmBMvyG,EAnBN,oCAoBSA,EApBT,sCAqBYA,EArBZ,6BAsBYA,EAtBZ,QAsBiC,CACvB14sB,QAAS4qzB,MAvBnB,oBA0BWlyG,EA1BX,kCA2BcA,EA3Bd,gBA2BkCA,EA3BlC,QA2BuD,CAC7CliF,aAAc,OAAF,OAASt+jB,EAAMs+jB,aAAf,cAAiCt+jB,EAAMs+jB,aAAvC,UA5BtB,oBA+BWkiF,EA/BX,+BAgCcA,EAhCd,gBAgCkCA,EAhClC,QAgCuD,CAC7CliF,aAAc,GAAF,OAAKt+jB,EAAMs+jB,aAAX,cAA6Bt+jB,EAAMs+jB,aAAnC,cAjCtB,oBAoCWkiF,EApCX,iCAqCcA,EArCd,gBAqCkCA,EArClC,QAqCuD,CAC7CliF,aAAc,CACZ0hJ,cAAc,EACdzkyB,MAAO,KAAF,OAAOykF,EAAMs+jB,aAAb,cAA+Bt+jB,EAAMs+jB,aAArC,aAxCjB,oBA4CWkiF,EA5CX,gCA6CcA,EA7Cd,gBA6CkCA,EA7ClC,QA6CuD,CAC7CliF,aAAc,CACZ0hJ,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMs+jB,aAAX,kBAAiCt+jB,EAAMs+jB,aAAvC,UAhDjB,yBAqDSkiF,EArDT,iCAsDYA,EAtDZ,6BAuDYA,EAvDZ,QAuDiC,CACvB14sB,QAAS6qzB,MAxDnB,OAuJIK,GAAc,SAAAhzvB,GAAS,cAEzBwgpB,EAIExgpB,EAJFwgpB,aACAyyG,EAGEjzvB,EAHFizvB,4BACAxyG,EAEEzgpB,EAFFygpB,QACA+wG,EACExxvB,EADFwxvB,WAEI0B,EAAS,GAAH,OAAM1yG,EAAN,QACZ,sBACG0yG,GADH,GAEIl+rB,UAAW,QAFf,mBAGQwrlB,EAHR,6BAIUA,EAJV,YAKQviiB,OAAQ,CACN+hmB,cAAc,EACdzkyB,MAAO030B,KAPjB,mBASYzyG,EATZ,qBAS8C,CACpCjwe,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,MAZnB,SAeSkluB,EAAU,CACTh8P,YAAa,CACXu7T,cAAc,EACdzkyB,MAAO,GAETg1P,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMqsoB,SAAX,UAtBjB,mBAyBYmU,EAzBZ,wBA0BU/7P,YAAa,CACXu7T,cAAc,EACdzkyB,MAAO,GAAF,OAAKykF,EAAMosoB,SAAX,OAEP77d,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,IAAF,OAAMykF,EAAMmsoB,UAAZ,QAENsU,EAAU,CACTxiiB,OAAQ,KAnCpB,0BAwCSuiiB,EAxCT,qCAyCYA,EAzCZ,QAyCiC,CACzBlsO,MAAO,KA1Cf,qBA4CYksO,EA5CZ,mBA4C4C,CACpClsO,MAAO,IA7Cf,yBAgDSksO,EAhDT,sCAiDYA,EAjDZ,QAiDiC,CACzBlsO,MAAO,KAlDf,qBAoDYksO,EApDZ,mBAoD4C,CACpClsO,MAAO,IArDf,yBAyDSksO,EAzDT,gBAyD6BA,EAzD7B,kBAyDmDA,EAzDnD,gBAyDuEA,EAzDvE,kCA0DYA,EA1DZ,yBA0DyCA,EA1DzC,6BA2DYA,EA3DZ,kBA2DkCA,EA3DlC,QA2DuD,CAC7C/7P,YAAa,CACXu7T,cAAc,EACdzkyB,MAAOi20B,GAETjhlB,WAAY,CACVyviB,cAAc,EACdzkyB,MAAO,OAlEnB,wBAwEMiluB,EAxEN,iBAwEoC,CAChCxrlB,UAAW,SAzEf,mBA2EMwrlB,EA3EN,mCA4EQA,EA5ER,iBA4EsC,CAChCp+G,UAAW,CACT49K,cAAc,EACdzkyB,MAAO,YA/Ef,GAqFI430B,GAAe,SAAAnzvB,GAAS,YAE1BwgpB,EAOExgpB,EAPFwgpB,aACA8wG,EAMEtxvB,EANFsxvB,gBACA8B,EAKEpzvB,EALFozvB,WACA5B,EAIExxvB,EAJFwxvB,WACAO,EAGE/xvB,EAHF+xvB,eACAsB,EAEErzvB,EAFFqzvB,gBACA/6H,EACEt4nB,EADFs4nB,qBAEF,sBACGkoB,EAAe//tB,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIw2qB,GAAezvoB,KAA/C,GAC1ChnE,QAAS,SADiC,qBAGpCwntB,EAHoC,yBAGPA,EAHO,YAIxC1gtB,SAAU,WACV9G,QAAS,OACT85E,KAAM,OACNy+O,WAAY,WAP4B,mBAQpCivZ,EARoC,aAQV,CAC5B1gtB,SAAU,WACV9G,QAAS,OACT85E,KAAM,OACNwgvB,UAAW,UACXx3sB,SAAU,SACV0c,WAAY,SACZt2H,UAAW,eAEX,sBAAuB,CACrBpC,SAAU,WACVg9B,OAAQ,EACR+tF,QAAS,EACT+zF,WAAY,WAAF,OAAa5+I,EAAM06nB,oBAC7BjgsB,QAAS,KACT+gB,cAAe,WAvBqB,mBA0BpCglsB,EA1BoC,aA0BV,CAC5B1gtB,SAAU,WACV9G,QAAS,OACT4lN,WAAY,WAAF,OAAa5+I,EAAM06nB,uBA7BS,mBAgCpC8lB,EAhCoC,mBAgCJ,CAClCxntB,QAAS,OACTs6zB,UAAW,aAlC2B,mBAoCpC9yG,EApCoC,0BAoCG,CACzC1gtB,SAAU,WACVovC,WAAY,SACZ1zB,cAAe,UAvCuB,mBAyCpCglsB,EAzCoC,aAyCV,CAC5B1gtB,SAAU,WACVgI,QAASwpzB,EACT5tT,WAAY,cACZ1ue,OAAQ,EACRjC,MAAOitC,EAAMy3nB,UACb,WAAY,CACV33rB,SAAU,WACVpI,MAAO,CACLsoxB,cAAc,EACdzkyB,MAAO,GAEToc,OAAQ,EACRtF,KAAM,CACJ2txB,cAAc,EACdzkyB,MAAO,GAET2P,OAAQ80E,EAAM2tnB,gBAAkB,EAChCzrrB,UAAW,mBACXzH,QAAS,SA5D2B,mBA+DpC+ltB,EA/DoC,YA+DX//tB,OAAOw4C,OAAO,CACzC7gC,SAAUg7zB,EACV7ilB,WAAY,CACVyviB,cAAc,EACdzkyB,MAAOi20B,GAET1pzB,QAAS,KAAF,OAAOk4D,EAAMwroB,UAAb,MACP9nM,WAAY,cACZ1ue,OAAQ,GAAF,OAAKgrC,EAAMm7b,UAAX,cAA0Bn7b,EAAMsunB,SAAhC,YAA4CgK,GAClDh6D,aAAc,GAAF,OAAKt+jB,EAAMk3nB,eAAX,cAA+Bl3nB,EAAMk3nB,eAArC,UACZ0Y,QAAS,OACT/nrB,OAAQ,UACRkL,MAAOitC,EAAMy3nB,UACb74e,WAAY,OAAF,OAAS5+I,EAAM06nB,mBAAf,YAAqC16nB,EAAM4unB,iBACrD,UAAW,CACT77pB,MAAOg/xB,GAET,wCAAyC,CACvCh/xB,MAAOsgyB,IAERnjH,GAAclwoB,KAnFuB,wBAqFtCwgpB,EArFsC,kBAqFP,CACjC1toB,KAAM,UAtFkC,mBAyFtC0toB,EAzFsC,YAyFb,CAC3B1gtB,SAAU,WACV4jgB,WAAY1jc,EAAMuzvB,YAClB/3yB,cAAe,SA5FyB,IAhM5B,SAAAwkD,GAAS,QAEzBwgpB,EAOExgpB,EAPFwgpB,aACA6yG,EAMErzvB,EANFqzvB,gBACAtB,EAKE/xvB,EALF+xvB,eACAtxG,EAIEzgpB,EAJFygpB,QACA+yG,EAGExzvB,EAHFwzvB,yBACAC,EAEEzzvB,EAFFyzvB,sBACAhC,EACEzxvB,EADFyxvB,kBAEIiC,EAAS,GAAH,OAAMlzG,EAAN,QACZ,sBACGkzG,GADH,GAEI5zzB,SAAU,WACV6zzB,mBAAoB,OACpBC,wBAAyB,cACzB56zB,QAAS,cACTu4T,WAAY,SACZzpT,QAAS2rzB,EACTl/xB,SAAUyrC,EAAMyspB,cAChB/oN,WAAY,cACZ1ue,OAAQ,EACR46qB,QAAS,OACT/nrB,OAAQ,UACR,kBAAmBpnC,OAAOw4C,OAAO,CAC/B,wCAAyC,CACvClG,MAAOsgyB,IAERnjH,GAAclwoB,IACjB,QAAS,CACP4voB,QAAS,OACThxf,WAAY,YAEd,WAAY,CACV9rI,KAAM,OACN2xY,YAAa,CACXu7T,cAAc,EACdzkyB,OAAQykF,EAAMmsoB,WAEhB57d,WAAY,CACVyviB,cAAc,EACdzkyB,MAAOykF,EAAMosoB,UAEfr5qB,MAAOitC,EAAM6poB,qBACbt1qB,SAAUyrC,EAAM44nB,WAChBl1L,WAAY,cACZ1ue,OAAQ,OACR46qB,QAAS,OACT/nrB,OAAQ,UACR+2L,WAAY,OAAF,OAAS5+I,EAAM06nB,oBACzB,UAAW,CACT3nqB,MAAOitC,EAAM2poB,mBAGjB,UAAW,CACT52qB,MAAOg/xB,KA5Cb,oBA8CS2B,EA9CT,mBA8C0BA,EA9C1B,QA8CyC,CACnC3gyB,MAAO0+xB,EACPoC,WAAY7zvB,EAAM8zvB,wBAhDxB,oBAkDSJ,EAlDT,aAkD6B,CACvB3gyB,MAAOitC,EAAM0poB,kBACb7hrB,OAAQ,iBApDd,oBAsDS6ryB,EAtDT,qBAsD4BA,EAtD5B,kBAsD4CA,EAtD5C,qBAsD+DlzG,EAtD/D,WAsDuF,CACjF,oBAAqB,CACnBztrB,MAAOitC,EAAM0poB,sBAxDrB,qBA2DUgqH,EA3DV,mBA2D2BjzG,GAAY,CACjCxiiB,OAAQ,KA5Dd,SA8DKwiiB,EAAU,CACTh8P,YAAa,CACXu7T,cAAc,EACdzkyB,MAAOykF,EAAMqsoB,YAjErB,wBAqEMqnH,EArEN,cAqEkBA,GAAW,CACzBz1oB,OAAQ,CACN+hmB,cAAc,EACdzkyB,MAAOi40B,KAxEb,EAmRMO,CAAY/zvB,KA9FA,yBAgGVwgpB,EAhGU,YAgGe,CAC3B1gtB,SAAU,WACV7U,MAAO,UAlGK,mBAoGVu1tB,EApGU,mBAoGsB,CAClC1toB,KAAM,OACN16E,SAAU,EACVG,UAAW,KAvGC,mBAyGViotB,EAzGU,YAyGe,CAC3B5Q,QAAS,OACT,WAAY,CACV52sB,QAAS,UA5GC,MADlB,mBAiHMwntB,EAjHN,oCAkHUA,EAlHV,yBAkHuCA,EAlHvC,6BAmHUA,EAnHV,iDAoH2BA,EApH3B,qBAoH6D,CACnDnvZ,eAAgB,cArH1B,GA6HF,GAAeuuZ,GAAsB,QAAQ,SAAA5/oB,GAC3C,IAAMg0vB,EAAYzzG,GAAWvgpB,EAAO,CAElCsxvB,gBAAiBtxvB,EAAMi0vB,aAAN,WAAyBj0vB,EAAMozvB,WAAa9zzB,KAAK6H,MAAM64D,EAAMzrC,SAAWyrC,EAAMzyC,aAAe,EAAIyyC,EAAMm7b,UAAvG,cAAsHn7b,EAAMl4D,QAA5H,MACjBkqzB,iCAAkChyvB,EAAMuroB,WACxCuoH,qBAAsB,0BACtB7B,mBAAoB,IACpBC,kBAAmB,IACnBsB,yBAA0B,SAAF,OAAWxzvB,EAAMk0vB,qBAAjB,MACxBjB,4BAA6B,SAAF,OAAWjzvB,EAAMk0vB,qBAAjB,QAE7B,MAAO,CAACzB,GAAauB,GAAYhB,GAAYgB,GAAY7B,GAAiB6B,GAAYlC,GAAiBkC,GAAY3C,GAAa2C,GAAYb,GAAaa,GAAYG,GAAeH,OACnL,SAAAh0vB,GACD,IAAMozvB,EAAapzvB,EAAM2tnB,gBACzB,MAAO,CACLmzB,YAAa9gpB,EAAMqvnB,gBAAkB,GACrCkiI,OAAQvxvB,EAAMqpoB,eACd+pH,WAAAA,EAEAa,YAAa,GACbvB,cAAe,GAAF,OAAwB,IAAnB1yvB,EAAMuroB,WAAX,cAAiCvroB,EAAMl4D,QAAvC,MACb6qzB,cAAe,GAAF,OAAK3yvB,EAAMwroB,UAAX,cAA0BxroB,EAAMl4D,QAAhC,cAAgE,IAAnBk4D,EAAMuroB,WAAnD,MACbkhB,cAAezspB,EAAMzrC,SACrBw+xB,gBAAiB/yvB,EAAM64nB,WACvBi6H,gBAAiB9yvB,EAAMzrC,SACvBg/xB,YAAavzvB,EAAM6tnB,aACnBukI,iBAAkB,OAAF,OAASpyvB,EAAMi+G,OAAf,QAChBi2oB,qBAAsB,GAEtBE,qBAAsB,GACtBC,wBAAyB,GACzBZ,sBAAuB,GAAF,OAAKzzvB,EAAMyroB,UAAX,QACrBmnH,wBAAyB,GAAF,OAAK5yvB,EAAMwroB,UAAX,QACvBqnH,wBAAyB,GAAF,OAAK7yvB,EAAMl4D,QAAX,QACvBuqzB,oBAAqB,GAAF,OAAKryvB,EAAMwroB,UAAX,cAA0BxroB,EAAM2roB,UAAhC,MACnB2mH,mBAAoB,GAAF,OAAKtyvB,EAAMi+G,OAAX,YAClBwzoB,kBAAmBzxvB,EAAM6tnB,aACzBkkI,eAAgB/xvB,EAAM8znB,kBACtBu/H,gBAAiBrzvB,EAAM+znB,mBACvBy9H,WAAYxxvB,EAAMmsoB,UAAY,MC3yB9B1qH,GAAgC,SAAUj7kB,EAAGrsB,GAC/C,IAAI01D,EAAI,GACR,IAAK,IAAIkhC,KAAKvqE,EAAO/lB,OAAOtB,UAAUsxE,eAAer2E,KAAKosB,EAAGuqE,IAAM52F,EAAE2F,QAAQixF,GAAK,IAAGlhC,EAAEkhC,GAAKvqE,EAAEuqE,IAC9F,GAAS,MAALvqE,GAAqD,oBAAjC/lB,OAAOsshB,sBAA2C,KAAIrnhB,EAAI,EAAb,IAAgBqrF,EAAItwF,OAAOsshB,sBAAsBvmgB,GAAI9gB,EAAIqrF,EAAE92F,OAAQyL,IAClIvL,EAAE2F,QAAQixF,EAAErrF,IAAM,GAAKjF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKosB,EAAGuqE,EAAErrF,MAAKmqD,EAAEkhC,EAAErrF,IAAM8gB,EAAEuqE,EAAErrF,KAEhG,OAAOmqD,GAeHqgxB,GAAO,SAAA/2tB,GAAS,MA6BhB/mD,EA3BA90C,EAaE67F,EAbF77F,KACAtV,EAYEmxG,EAZFnxG,UACAqutB,EAWEl9mB,EAXFk9mB,cACM+1E,EAUJjzrB,EAVFhnG,KACA2+yB,EASE33sB,EATF23sB,OACAwjB,EAQEn7tB,EARFm7tB,QACAC,EAOEp7tB,EAPFo7tB,SACAxjB,EAME53sB,EANF43sB,QACAx4B,EAKEp/qB,EALFo/qB,eACA7zxB,EAIEy0G,EAJFz0G,SACAW,EAGE8zG,EAHF9zG,MACAy6iB,EAEE3mc,EAFF2mc,SACAloiB,EACEuhG,EADFvhG,MAEF2txB,EAAa9jM,GAAOtof,EAAO,CAAC,OAAQ,YAAa,gBAAiB,OAAQ,SAAU,UAAW,WAAY,UAAW,iBAAkB,WAAY,QAAS,WAAY,UAE9JkimB,EAETkqF,EAFF1yE,UADF,EAGI0yE,EADFuhC,SAAAA,OAFF,MAE0BxqO,GAAAA,cAAoByyN,GAAkB,MAFhE,EAIA,EAKIzyN,GAAAA,WAAiBj8R,IAJnBrrL,EADF,EACEA,UACA1yI,EAFF,EAEEA,KACA64sB,EAHF,EAGEA,aACAh6rB,EAJF,EAIEA,kBAEI0xsB,EAAY1X,EAAa,OAAQE,GACvC,EAA0B4X,GAASJ,GAAnC,eAAOG,EAAP,KAAgBzqlB,EAAhB,KAEa,kBAATjrH,IACF80C,EAAW,CACT0+vB,OAAQ,SAAC0jB,EAAU7zlB,GACjB,IACEhgP,EAEEggP,EAFFhgP,IACAwT,EACEwsO,EADFxsO,MAES,OAAX28yB,QAA8B,IAAXA,GAA6BA,EAAoB,QAAb0jB,EAAqBrg0B,EAAQxT,EAAK6z0B,IAE3F/M,WAAyBnrO,GAAAA,cAAoBylI,GAAe,MAC5DgvF,QAASA,GAAwBz0N,GAAAA,cAAoB2yN,GAAc,MACnE2B,SAAqB,IAAZ0jB,IAGb,IAAMx0G,EAAgB3kB,IAEhBs5H,EJvDO,SAAwBpv0B,EAAOX,GAC5C,GAAIW,EACF,OAAOA,EAGT,IAAMqv0B,EAAgBjhnB,GAAQ/uN,GAAU7E,KAAI,SAAA+vE,GAC1C,GAAkB0shB,GAAAA,eAAqB1shB,GAAO,CAC5C,IACEjvE,EAEEivE,EAFFjvE,IAGI6C,EADFosE,EADFupC,OAEkB,GAEhB52G,EACEiB,EADFjB,IAEF8mU,EAAYo4R,GAAOj+lB,EAAI,CAAC,QAM1B,OALa/C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CACvCt4C,IAAK6+D,OAAO7+D,IACX0oU,GAAY,CACbrsL,MAAOz6I,IAIX,OAAO,QAET,OA5BF,SAAgB8C,GACd,OAAOA,EAAM9F,QAAO,SAAA1F,GAAI,OAAIA,KA2BrB0F,CAAOm10B,GI8BMC,CAAetv0B,EAAOX,GACpC6r0B,ELhEO,SAA0B19G,GACvC,IAII09G,EAJAzwR,EAAWp+iB,UAAUzH,OAAS,QAAsB8X,IAAjBrQ,UAAU,GAAmBA,UAAU,GAAK,CACjFmu0B,QAAQ,EACRlgB,SAAS,GAuBX,OAnBE4gB,GADe,IAAbzwR,EACe,CACf+vR,QAAQ,EACRlgB,SAAS,IAEW,IAAb7vQ,EACQ,CACf+vR,QAAQ,EACRlgB,SAAS,GAGMlvzB,OAAOw4C,OAAO,CAC7B42xB,QAAQ,GACa,kBAAb/vR,EAAwBA,EAAW,KAE5B6vQ,UACjB4gB,EAAevgB,cAAgBvvzB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAIu2pB,IAAS,CACtE2V,WAAY3F,GAAkBqT,EAAW,aAGtC09G,EKsCgBC,CAAiB39G,EAAW/yK,GAC7C3tiB,EAAOwyyB,GAAQvY,GACfzrG,EAAclgsB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAa,OAAT32C,QAA0B,IAATA,OAAkB,EAASA,EAAKsV,OAAQA,GAC7G,OAAOo7sB,EAAsB12H,GAAAA,cAAoBs4O,GAAQn00B,OAAOw4C,OAAO,CACrE+7F,UAAWA,EACX7zH,kBAAmBA,EACnB4lzB,mBAAoB,GAAF,OAAKjnG,EAAL,cACjBylE,EAAY,CACblgyB,MAAOov0B,EACPzs0B,UAAW2+M,IAAAA,EAAU,yBACfksgB,EADe,YACF1gtB,GAASA,IADP,mBAEf0gtB,EAFe,SAEI,CAAC,OAAQ,iBAAiBp9lB,SAASn4G,KAFvC,mBAGfu1sB,EAHe,kBAGsB,kBAATv1sB,IAHb,mBAIfu1sB,EAJe,aAIQ0hH,GAJR,GAKT,OAATjy0B,QAA0B,IAATA,OAAkB,EAASA,EAAK0F,UAAWA,EAAWqutB,EAAe9tlB,GACzFgwpB,eAAgB5xkB,IAAAA,CAAW4xkB,EAAgBhwpB,GAC3C3wH,MAAO+orB,EACPvuoB,SAAUA,EACV00wB,SAAUA,EACVj0G,UAAWA,EACX/yK,SAAUywR,OAGdL,GAAK/gB,QAAUA,GAIf,UCWA,GA1GoB,WAClB,OACE,iCACE,kBAAKv3yB,MAAO,CAACW,UAAW,OAAQS,QAAQ,OAAQu4T,WAAW,SAAUsjgB,aAAa,SAAU52Z,UAAU,UAAWj2a,UAAU,eAA3H,WACE,iBAAKA,UAAU,cAEf,kBAAKA,UAAU,WAAf,WACE,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACE,iBAAK7mjB,IAAI,gCAAgCtwD,MAAM,QAAQC,OAAO,aAEhE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,iBAAKA,UAAU,GAAf,UACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,wCAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,yCAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,kCAAkCtwD,MAAM,QAAQC,OAAO,aAElE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,0CAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,+BAA+BtwD,MAAM,QAAQC,OAAO,aAE/D,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,2CAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,qCAAqCtwD,MAAM,QAAQC,OAAO,aAErE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,mDAWV,kBAAMA,UAAU,WAAhB,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,+BAA+BtwD,MAAM,QAAQC,OAAO,aAE/D,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,iDCgBlB,GA1GuB,WACrB,OACE,iCACE,kBAAK4P,MAAO,CAACW,UAAW,OAAQS,QAAQ,OAAQu4T,WAAW,SAAUsjgB,aAAa,SAAU52Z,UAAU,UAAWj2a,UAAU,eAA3H,WACE,iBAAKA,UAAU,cAEf,kBAAKA,UAAU,WAAf,WACE,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACE,iBAAK7mjB,IAAI,gCAAgCtwD,MAAM,QAAQC,OAAO,aAEhE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,iBAAKA,UAAU,GAAf,UACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,wCAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,iCAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,kCAAkCtwD,MAAM,QAAQC,OAAO,aAElE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,kCAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,+BAA+BtwD,MAAM,QAAQC,OAAO,aAE/D,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,mCAWV,kBAAKA,UAAU,WAAf,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,qCAAqCtwD,MAAM,QAAQC,OAAO,aAErE,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,2CAWV,kBAAMA,UAAU,WAAhB,WACA,iBAAK4P,MAAO,CAAC0/b,aAAa,OAAS8qK,UAAU,UAA7C,UACI,iBAAK7mjB,IAAI,+BAA+BtwD,MAAM,QAAQC,OAAO,aAE/D,iBAAKlD,UAAU,+BAAf,UACE,iBAAKA,UAAU,gBAAf,UACE,2BACE,iBAAK4P,MAAO,CAACwqmB,UAAU,UAAWp6mB,UAAU,qBAA5C,UACE,UAACyjuB,GAAD,CACE9wqB,GAAI,IACJ3yD,UAAU,gDAFZ,yCC5FL8s0B,GAAc,CACzB3hyB,YAAa,OACbo9M,WAAY,QACZk0O,YAAa,SAGFswW,GAAuB,CAClC5hyB,YAAa,OACbo9M,WAAY,QACZk0O,YAAa,QACbzrd,QAAS,QC0BX,GA/BwB,WACtB,IAAMg8zB,EAA+B,CACnC,CAEEh4rB,MAAO,UACPr8I,IAAK,IACL+D,SAAU,EACR,UAAC,GAAD,MAGJ,CACEs4I,MAAO,aACPr8I,IAAK,IACL+D,SAAU,EACR,UAAC,GAAD,OAKN,OACE,iBAAKkT,MAAOk9zB,GAAa9s0B,UAAU,iBAAnC,UACE,UAAC,GAAD,CAAMmo0B,iBAAiB,IACjB7yzB,KAAK,OACLjY,MAAO2v0B,EACPjiyB,MAAM,UACNs9xB,YAAa,CAAC/4X,aAAc,MAAOvka,MAAO,QAASwB,SAAU,aCoCzE,GAnDyB,SAAC,GAAkE,EAAhEz4C,OAAiE,IAAzDypB,EAAwD,EAAxDA,MAAO0vzB,EAAiD,EAAjDA,YAAaC,EAAoC,EAApCA,SAChDjrG,EAAWT,KACjB,OACE,kBACE5xtB,MACEm9zB,GAEF/s0B,UFT0B,iBEK5B,WAME,gBACE4P,MAAO,CACL27B,cAAe,OACfD,aAAc,QAHlB,SAMG/tB,KAEH,iCAIE2vzB,GACE,eACEt9zB,MAAO,CACLu7B,YAAa,OACbtL,OAAQ,WAEV7/B,UAAU,6CACV24D,QAAS,kBAAMspqB,GAAU,IAN3B,sBAQA,kBACErytB,MAAO,CACLu7B,YAAa,QAFjB,UAKE,UAACs4rB,GAAD,CACE9wqB,GAAI,WACJ3yD,UAAU,6CAFZ,SAIGit0B,EAAc,aAAe,kBCrDjCE,GAAiB,CAC1BpiyB,WAAOhhC,EACPI,UAAMJ,EACN/J,eAAW+J,EACX6F,WAAO7F,EACPwH,UAAMxH,GAEGkitB,GAAc33H,GAAAA,eAAoCA,GAAAA,cAAoB64O,ICR7ElnjB,GAAY,CAAC,OAAQ,OAAQ,SACjC,SAASuvb,GAAyBl2lB,EAAQuif,GAAY,GAAc,MAAVvif,EAAgB,MAAO,GAAI,IAAkE3mH,EAAK+E,EAAnEnF,EACzF,SAAuC+mH,EAAQuif,GAAY,GAAc,MAAVvif,EAAgB,MAAO,GAAI,IAA2D3mH,EAAK+E,EAA5DnF,EAAS,GAAQupmB,EAAarpmB,OAAOC,KAAK4mH,GAAqB,IAAK5hH,EAAI,EAAGA,EAAIokmB,EAAW7vmB,OAAQyL,IAAO/E,EAAMmpmB,EAAWpkmB,GAAQmkmB,EAAS/pmB,QAAQa,IAAQ,IAAaJ,EAAOI,GAAO2mH,EAAO3mH,IAAQ,OAAOJ,EADxM8tR,CAA8B/mK,EAAQuif,GAAuB,GAAIppmB,OAAOsshB,sBAAuB,CAAE,IAAIuwL,EAAmB78sB,OAAOsshB,sBAAsBzla,GAAS,IAAK5hH,EAAI,EAAGA,EAAI43sB,EAAiBrjtB,OAAQyL,IAAO/E,EAAM28sB,EAAiB53sB,GAAQmkmB,EAAS/pmB,QAAQa,IAAQ,GAAkBF,OAAOtB,UAAUihkB,qBAAqBhmkB,KAAKktH,EAAQ3mH,KAAgBJ,EAAOI,GAAO2mH,EAAO3mH,IAAU,OAAOJ,EAEne,SAASqxN,KAAiS,OAApRA,GAAWnxN,OAAOw4C,OAASx4C,OAAOw4C,OAAO70C,OAAS,SAAU7D,GAAU,IAAK,IAAImF,EAAI,EAAGA,EAAIhE,UAAUzH,OAAQyL,IAAK,CAAE,IAAI4hH,EAAS5lH,UAAUgE,GAAI,IAAK,IAAI/E,KAAO2mH,EAAc7mH,OAAOtB,UAAUsxE,eAAer2E,KAAKktH,EAAQ3mH,KAAQJ,EAAOI,GAAO2mH,EAAO3mH,IAAY,OAAOJ,GAAkBqxN,GAASjyM,MAAMhmB,KAAM+H,WACtU,SAAS+qmB,GAAQtymB,EAAG+lE,GAAK,IAAIrQ,EAAIpvD,OAAOC,KAAKvG,GAAI,GAAIsG,OAAOsshB,sBAAuB,CAAE,IAAInjc,EAAInpF,OAAOsshB,sBAAsB5yhB,GAAI+lE,IAAM0pB,EAAIA,EAAErqF,QAAO,SAAU2gE,GAAK,OAAOz/D,OAAOy2E,yBAAyB/8E,EAAG+lE,GAAGtB,eAAiB/O,EAAEt1D,KAAKolB,MAAMkwC,EAAG+5B,GAAM,OAAO/5B,EAC3P,SAAS4koB,GAAct6rB,GAAK,IAAK,IAAI+lE,EAAI,EAAGA,EAAIx+D,UAAUzH,OAAQimE,IAAK,CAAE,IAAIrQ,EAAI,MAAQnuD,UAAUw+D,GAAKx+D,UAAUw+D,GAAK,GAAIA,EAAI,EAAIusiB,GAAQhsmB,OAAOovD,IAAI,GAAIj2D,SAAQ,SAAUsmE,GAAKsT,GAAgBr5E,EAAG+lE,EAAGrQ,EAAEqQ,OAAUz/D,OAAOqpU,0BAA4BrpU,OAAOosmB,iBAAiB1ymB,EAAGsG,OAAOqpU,0BAA0Bj6Q,IAAM48iB,GAAQhsmB,OAAOovD,IAAIj2D,SAAQ,SAAUsmE,GAAKz/D,OAAOi+D,eAAevkE,EAAG+lE,EAAGz/D,OAAOy2E,yBAAyBrnB,EAAGqQ,OAAW,OAAO/lE,EACnb,SAASq5E,GAAgBnM,EAAK1mE,EAAKpF,GAA4L,OAAnLoF,EAC5C,SAAwB+nB,GAAO,IAAI/nB,EACnC,SAAsBwxB,EAAO5K,GAAQ,GAAqB,kBAAV4K,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIy4kB,EAAOz4kB,EAAMuhG,OAAOm3e,aAAc,QAAa94lB,IAAT64lB,EAAoB,CAAE,IAAI5viB,EAAM4viB,EAAKxwmB,KAAK+3B,EAAO5K,GAAQ,WAAY,GAAmB,kBAARyzC,EAAkB,OAAOA,EAAK,MAAM,IAAI0kD,UAAU,gDAAmD,OAAiB,WAATn4F,EAAoBi4C,OAASpW,QAAQj3B,GADvUijzB,CAAa1szB,EAAK,UAAW,MAAsB,kBAAR/nB,EAAmBA,EAAM6+D,OAAO7+D,GADlEgqmB,CAAehqmB,MAAiB0mE,EAAO5mE,OAAOi+D,eAAe2I,EAAK1mE,EAAK,CAAEpF,MAAOA,EAAOqjE,YAAY,EAAMC,cAAc,EAAMmwD,UAAU,IAAkB3nD,EAAI1mE,GAAOpF,EAAgB8rE,EAKtO,SAASguwB,GAAa3iH,GACpB,OAAOA,GAAQA,EAAK7ytB,KAAI,SAAC+vE,EAAMlqE,GAAP,OAA0B42lB,GAAAA,cAAoB1shB,EAAKuqD,IAAKs6jB,GAAc,CAC5F9zrB,IAAK+E,GACJkqE,EAAKr2D,MAAO87zB,GAAazlwB,EAAKn3D,WAE5B,SAAS68zB,GAAQ9t0B,GAEtB,OAAO,SAAA2xG,GAAK,OAAiBmjf,GAAAA,cAAoBk5H,GAAU5jgB,GAAS,CAClEr4M,KAAMk7qB,GAAc,GAAIjtrB,EAAK+R,OAC5B4/F,GAAQk8tB,GAAa7t0B,EAAKiR,SAExB,SAAS+8sB,GAASr8mB,GACvB,IAAIotB,EAAO,SAAAgvsB,GACT,IAOIvt0B,EANAuR,EAGE4/F,EAHF5/F,KACApH,EAEEgnG,EAFFhnG,KACAoT,EACE4zF,EADF5zF,MAEFiwzB,EAAWh4H,GAAyBrkmB,EAAO80K,IACzCwnjB,EAAetj0B,GAAQoj0B,EAAKpj0B,MAAQ,MAIxC,OAFIoj0B,EAAKvt0B,YAAWA,EAAYut0B,EAAKvt0B,WACjCmxG,EAAMnxG,YAAWA,GAAaA,EAAYA,EAAY,IAAM,IAAMmxG,EAAMnxG,WACxDs0lB,GAAAA,cAAoB,MAAO1qY,GAAS,CACtDj+K,OAAQ,eACRkiF,KAAM,eACNjiF,YAAa,KACZ2hyB,EAAKh8zB,KAAMA,EAAMi8zB,EAAU,CAC5Bxt0B,UAAWA,EACX4P,MAAO68qB,GAAcA,GAAc,CACjC1hpB,MAAOomE,EAAMpmE,OAASwiyB,EAAKxiyB,OAC1BwiyB,EAAK39zB,OAAQuhG,EAAMvhG,OACtB1M,OAAQuq0B,EACRxq0B,MAAOwq0B,EACPzqU,MAAO,+BACLzlf,GAAsB+2kB,GAAAA,cAAoB,QAAS,KAAM/2kB,GAAQ4zF,EAAMz0G,WAE7E,YAAuBqN,IAAhBkitB,GAAyC33H,GAAAA,cAAoB23H,GAAAA,SAAsB,MAAM,SAAAshH,GAAI,OAAIhvsB,EAAKgvsB,MAAShvsB,EAAK4usB,ICgwCtH,SAASO,GAAWv8tB,GACzB,OAAOm8tB,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,kgBAAkgB,MAAQ,MAAnmBA,CAA0mBn8tB,GCtyCnnB,IAqBA,GArBmB,SAAC,GAAuD,IAArD5zF,EAAoD,EAApDA,MAA0BgzB,GAA0B,EAA7C+sC,YAA6C,EAAhChsE,KAAgC,EAA1Bi/B,KAC5C,OACE,UAACkzrB,GAAD,CACE9wqB,GAAIpiB,EADN,UAGI,iBAAMvwC,UAAU,qEAAhB,UACE,kBAAKA,UAAU,0BAAf,WACE,iBAAKA,UAAU,gFAAf,UACI,kBAAMA,UAAU,gCAAhB,UACE,eAAGA,UAAU,+CAAb,UACE,UAAC0t0B,GAAD,WAIR,gBAAI1t0B,UAAU,aAAd,SAA4Bud,YCmB1C,GAxC2B,WAuBzB,OACE,mCACE,UAAC,GAAD,CAAkBA,MAAO,kBAAmB2vzB,UAAU,EAAOD,aAAa,KAC1E,iBAAKjt0B,UAAU,eAAf,SAzBQ,CACZ,CACEud,MAAO,gBACPo1C,GAAI,wBACJ0oD,SAAU,mBAEZ,CACE99F,MAAO,mBACPo1C,GAAI,2BACJ0oD,SAAU,oBAEZ,CACE99F,MAAO,sBACPo1C,GAAI,8BACJ0oD,SAAU,uBAEZ,CACE99F,MAAO,eACPo1C,GAAI,uBACJ0oD,SAAU,iBAQIxjH,KAAI,SAAChG,EAAMW,GAAP,OACR,iBAAiBwN,UAAU,WAA3B,UACE,UAAC,GAAD,CAAYuwC,IAAG,OAAE1+C,QAAF,IAAEA,OAAF,EAAEA,EAAM8gE,GAAIp1C,MAAK,OAAE1rB,QAAF,IAAEA,OAAF,EAAEA,EAAM0rB,SADhC/qB,YC2BxB,GAzD8B,WAyC5B,OACE,mCACE,UAAC,GAAD,CAAkB+qB,MAAO,qBAAsB2vzB,UAAU,EAAOD,aAAa,KAC7E,iBAAKjt0B,UAAU,eAAf,SA3CU,CACZ,CACEud,MAAO,oBACPo1C,GAAI,qBACJ0oD,SAAU,sBACV,CACA99F,MAAO,iBACPo1C,GAAI,kBACJ0oD,SAAU,sBACV,CACA99F,MAAO,WACPo1C,GAAI,uBACJ0oD,SAAU,sBACV,CACA99F,MAAO,mBACPo1C,GAAI,0BACJ0oD,SAAU,oBACV,CACA99F,MAAO,uBACPo1C,GAAI,oBACJ0oD,SAAU,+BACV,CACA99F,MAAO,cACPo1C,GAAI,eACJ0oD,SAAU,eACV,CACA99F,MAAO,mBACPo1C,GAAI,sBACJ0oD,SAAU,sBACV,CACA99F,MAAO,oBACPo1C,GAAI,4BACJ0oD,SAAU,4BACV,CACA99F,MAAO,WACPo1C,GAAI,uBACJ0oD,SAAU,oBASAxjH,KAAI,SAAChG,EAAMW,GAAP,OACN,iBAAiBwN,UAAU,WAA3B,UACE,UAAC,GAAD,CAAYuwC,IAAG,OAAE1+C,QAAF,IAAEA,OAAF,EAAEA,EAAM8gE,GAAIp1C,MAAK,OAAE1rB,QAAF,IAAEA,OAAF,EAAEA,EAAM0rB,SADhC/qB,YCNxB,GAzCsB,WAwBlB,OACE,mCACE,UAAC,GAAD,CAAkB+qB,MAAO,aAAc2vzB,UAAU,EAAOD,aAAa,KACrE,iBAAKjt0B,UAAU,eAAf,SA1BQ,CACZ,CACEud,MAAO,gBACPo1C,GAAI,wBACJ0oD,SAAU,iBAEZ,CACE99F,MAAO,qBACPo1C,GAAI,6BACJ0oD,SAAU,qBAEZ,CACE99F,MAAO,cACPo1C,GAAI,cACJ0oD,SAAU,cAEZ,CACE99F,MAAO,gBACPo1C,GAAI,wBACJ0oD,SAAU,iBASExjH,KAAI,SAAChG,EAAMW,GAAP,OACN,iBAAiBwN,UAAU,WAA3B,UACE,UAAC,GAAD,CAAYuwC,IAAG,OAAE1+C,QAAF,IAAEA,OAAF,EAAEA,EAAM8gE,GAAIp1C,MAAK,OAAE1rB,QAAF,IAAEA,OAAF,EAAEA,EAAM0rB,SADhC/qB,YCO1B,GArCgC,WAoB9B,OACE,mCACE,UAAC,GAAD,CAAkB+qB,MAAO,4BAA6B2vzB,UAAU,EAAOD,aAAa,KACpF,iBAAKjt0B,UAAU,eAAf,SAtBU,CACZ,CACEud,MAAO,iBACPo1C,GAAI,yBACJ0oD,SAAU,yBACV,CACA99F,MAAO,iBACPo1C,GAAI,iBACJ0oD,SAAU,iBACV,CACA99F,MAAO,kBACPo1C,GAAI,kBACJ0oD,SAAU,0BACV,CACA99F,MAAO,WACPo1C,GAAI,mBACJ0oD,SAAU,oBAQAxjH,KAAI,SAAChG,EAAMW,GAAP,OACN,iBAAiBwN,UAAU,WAA3B,UACE,UAAC,GAAD,CAAYuwC,IAAG,OAAE1+C,QAAF,IAAEA,OAAF,EAAEA,EAAM8gE,GAAIp1C,MAAK,OAAE1rB,QAAF,IAAEA,OAAF,EAAEA,EAAM0rB,SADhC/qB,YCQxB,GAjC+B,WAgB7B,OACE,mCACE,UAAC,GAAD,CAAkB+qB,MAAO,uBAAyB2vzB,UAAU,EAAOD,aAAa,KAChF,iBAAKjt0B,UAAU,eAAf,SAlBU,CACZ,CACEud,MAAO,cACPo1C,GAAI,sBACJ0oD,SAAU,eACV,CACA99F,MAAO,gBACPo1C,GAAI,wBACJ0oD,SAAU,iBACV,CACA99F,MAAO,mBACPo1C,GAAI,2BACJ0oD,SAAU,qBAQAxjH,KAAI,SAAChG,EAAMW,GAAP,OACN,iBAAiBwN,UAAU,WAA3B,UACE,UAAC,GAAD,CAAYuwC,IAAG,OAAE1+C,QAAF,IAAEA,OAAF,EAAEA,EAAM8gE,GAAIp1C,MAAK,OAAE1rB,QAAF,IAAEA,OAAF,EAAEA,EAAM0rB,SADhC/qB,+CClBXm70B,GAAb,WACI,WAAY9ggB,EAAYrtU,IAAM,eAC1B7N,KAAKk7U,WAAaA,EAClBl7U,KAAK6N,KAAOA,EAHpB,yCAKI,WACI,OAAQ7N,KAAKk7U,YACT,IAAK,MACD,MAAO,2CAA6Cm3H,UAAUryc,KAAK6N,MACvE,IAAK,MACD,MAAO,uBAAyB7N,KAAK6N,KAE7C,GAAwB,QAApB7N,KAAKk7U,YAA4C,QAApBl7U,KAAKk7U,YAA4C,SAApBl7U,KAAKk7U,WAC/D,MAAO,cAAgBl7U,KAAKk7U,WAAa,WAAal7U,KAAK6N,QAbvE,oBAeI,SAAakW,GACT,IAAIm3T,EAAYrtU,EADF,GAEQkW,GAAO,IAAItW,MAAM,KAFzB,eAGd,OADCytU,EAFa,KAEDrtU,EAFC,KAGPqtU,GAAc,IAAI8ggB,EAAY9ggB,EAAYrtU,KAlBzD,sBAoBI,SAAgBkW,GACZ,OAAOy1D,EAAAA,GAAAA,eAAc,UAAWz1D,EAAIm3T,WAAYn3T,EAAIlW,UArB5D,oDCYWou0B,GAA+B,CAVZ,CAAEtt0B,aAAc,YAAaynC,UAAW,aAAcjtC,KAAM28D,GAAAA,gBAAiBiY,aAAc3X,GAAAA,eAC/F,CAAEz3D,aAAc,UAAWynC,UAAW,UAChC,CAAEznC,aAAc,cAAeynC,UAAW,eAAgBjtC,KAAM28D,GAAAA,gBAAiBiY,aAAc3X,GAAAA,eAC/F,CAAEz3D,aAAc,cAAeynC,UAAW,gBACtC,CAAEznC,aAAc,kBAAmBynC,UAAW,oBAClD,CAAEznC,aAAc,cAAeynC,UAAW,2BAA4BjtC,KAAMo8D,GAAAA,gBAC9E,CAAE52D,aAAc,YAAaynC,UAAW,aAAcjtC,KAAM28D,GAAAA,gBAAiBiY,aAAc3X,GAAAA,eAChG,CAAEz3D,aAAc,OAAQynC,UAAW,SAChC,CAAEznC,aAAc,UAAWynC,UAAW,WAAYjtC,KAAMysC,GAAAA,GAAAA,MAClD,CAAEjnC,aAAc,gBAAiBynC,UAAW,mBAcnE8lyB,GAAoBxz0B,GAAAA,WAAc,CACzC,QAAW,cC1BFyz0B,GAAb,WACI,WAAY/h0B,IAAS,eACjBpa,KAAKmhB,SAAW/G,EAFxB,qDAII,WAA2Bpa,KAAKmhB,SAASi7zB,cAAe,IAJ5D,wBAKI,SAAWtjzB,UAAiB94B,KAAKmhB,SAASk7zB,cAAcvjzB,EAAOnqB,cAAgBmqB,EAAOA,UAL1F,4BAMI,SAAeA,GAAkB,eACzBwjzB,EAAgB,SAACt/vB,EAAUtP,GAC3B,IAAI9+C,EAAO8+C,EAAI3+D,SAAW2+D,EAAI3+D,UAC9B,GAAI6f,EAAM,CACN,IAAIwoE,EAAIxoE,EAAKhpB,QAAO,SAAAoL,GAAC,OAAIA,EAAEolC,YAAc4mC,GAAYhsE,EAAEolC,YAAc,IAAM4mC,KAAU,GACrF,GAAIoa,EACA,OAAOA,EAAEzoF,aAEjB,OAAOquE,GAEPu/vB,EAAe,SAAC7uwB,EAAKsP,GACrBA,EAAWs/vB,EAAct/vB,EAAUtP,GACnC,IAAI8uwB,EAAe9uwB,EAAIxE,kBACvBwE,EAAIxE,kBACAszwB,EACO,SAACxr0B,GAAD,OAAOwr0B,EAAaxr0B,IAAMA,IAAMgsE,GAChC,SAAChsE,GAAD,OAAOA,IAAMgsE,IAhBC,mBAAPo1hB,EAAO,iCAAPA,EAAO,kBAkBT,GAAhBA,EAAM9xmB,OACNi80B,EAAav80B,KAAKmhB,SAASk7zB,cAAevjzB,EAAOA,QAGjDs5kB,EAAMnymB,SAAQ,SAAAgzB,GAKV,IAJA,IAAI3lB,EAAO/H,MAAMi2E,QAAQvoD,GACnBA,EACAA,EAASxlB,MAAM,KACjBigE,EAAM,EAAKvsD,SAASk7zB,cAAcvjzB,EAAOA,QACtCxrB,EAAKhN,OAAS,GACjBotE,EAAMhlE,GAAAA,OAAUglE,EAAI4uwB,EAAchv0B,EAAK,GAAIogE,KAC3CpgE,EAAKiC,OAAO,EAAG,GAEnBgt0B,EAAa7uwB,EAAKpgE,EAAK,SArCvC,mCAyCI,SAAsBwrB,GAAU,OAAO94B,KAAKmhB,SAASk7zB,cAAcvjzB,EAAOA,YAzC9E,KCIa2jzB,GAAb,iHACI,SAA6Cp9lB,GACzC,OAAO,SAAUq9lB,GACbr9lB,EAAU,wBAAyB,CAC/Bs9lB,aAAc,SAACtvwB,GACNA,IAEwB,oBAAlBA,EAAS7uB,KAChBk+xB,EAAsB970B,KAAKysE,IAG3BuvwB,EAAAA,GAAAA,cAAqBvvwB,KAG7BwvwB,qBAAsB,SAACC,GACnB,IAAIC,EAAc,GAClBA,EAAW,QAAmBb,KAAiB,SAC/Cpz0B,EAAAA,GAAAA,QAAOi00B,EAAaD,GACpBZ,GAAkBa,IAEtBC,mBAAoBhw0B,QApBpC,oCAwBI,SAA8BqyO,GAC1B,IAAI49lB,EAAwB,CAAE/yyB,WAAY,uBAAwBC,YAAa,oBAC3E+yyB,EAAwB,CAAEhzyB,WAAY,mBAAoBC,YAAa,oBACvEgzyB,EAAuB,CAAEjzyB,WAAY,kBAAmBC,YAAa,mBACrEizyB,EAAiC,CAAElzyB,WAAY,4BAA6BC,YAAa,6BACzFkzyB,EAAsC,CAAEnzyB,WAAY,iCAAkCC,YAAa,kCACnGmzyB,EAAoB,CAAEpzyB,WAAY,eAAgBC,YAAa,gBAC/DozyB,EAAoB,CAAErzyB,WAAY,eAAgBC,YAAa,gBAC/DqzyB,EAAmB,CAAEtzyB,WAAY,cAAeC,YAAa,eAC7DszyB,EAAqB,CAAEvzyB,WAAY,gBAAiBC,YAAa,iBACjEuzyB,EAAoB,CAAExzyB,WAAY,eAAgBC,YAAa,gBAC/DwzyB,EAAkB,CAAEzzyB,WAAY,aAAcC,YAAa,cAC3DyzyB,EAAqB,CAAE1zyB,WAAY,gBAAiBC,YAAa,iBACjE0zyB,EAAsB,CAAE3zyB,WAAY,oBAAqBC,YAAa,kBACtE2zyB,EAAsB,CAAE5zyB,WAAY,iBAAkBC,YAAa,kBACnE4zyB,EAA2B,CAAE7zyB,WAAY,sBAAuBC,YAAa,uBAC7E6zyB,EAA6B,CAAE9zyB,WAAY,wBAAyBC,YAAa,yBACjF8zyB,EAA2B,CAAE/zyB,WAAY,sBAAuBC,YAAa,uBAC7E+zyB,EAAwB,CAAEh0yB,WAAY,mBAAoBC,YAAa,oBACvEg0yB,EAA6B,CAAEj0yB,WAAY,wBAAyBC,YAAa,yBACjFi0yB,EAAiC,CAAEl0yB,WAAY,4BAA6BC,YAAa,6BACzFk0yB,EAAsB,CAAEn0yB,WAAY,iBAAkBC,YAAa,kBACnEm0yB,EAAoB,CAAEp0yB,WAAY,eAAgBC,YAAa,gBAC/Do0yB,EAAuB,CAAEr0yB,WAAY,kBAAmBC,YAAa,mBA8IzE,OA7IAk0yB,EAAmB,SAAe,WAC9Bh/lB,EAAUg/lB,EAAoBn0yB,aAElCi0yB,EAA0B,SAAe1B,EAAe+B,sCAAsCn/lB,GAC9F49lB,EAAqB,SAAe,SAA0Bz8zB,GAC1D6+N,EAAU49lB,EAAsB/yyB,WAAY,CACxCu0yB,QAASj+zB,EACTk+zB,QAAS,SAACC,GACN,OAAOA,EAAWn+zB,EAAQ5a,QAAO,SAAU1F,GAAQ,OAAOy+0B,IAAaz+0B,EAAK+J,MAAO,GAAK,SAIpGq00B,EAAiB,SAAe,SAAsBM,GAClDv/lB,EAAUi/lB,EAAkBp0yB,WAAY00yB,IAE5CxB,EAA8B,SAAe,SAAmCzuuB,EAAW//E,GACvFywN,EAAU+9lB,EAA+BlzyB,WAAY,CACjDykE,UAAWA,EACX//E,KAAMA,KAGdyuzB,EAAmC,SAAe,SAAwC1uuB,EAAWjjG,GACjG,IAAIqjB,EAAM,CACN4/E,UAAAA,EACAjjG,MAAAA,EACA2f,WAAY,MAGhB,OADAg0N,EAAUg+lB,EAAoCnzyB,WAAYnb,GACnDA,EAAI1D,YAEfiyzB,EAAiB,SAAe,WAC5Bj+lB,EAAUi+lB,EAAkBpzyB,aAEhCqzyB,EAAiB,SAAe,SAAsB/2zB,GAClD,IAAIuI,EAAM,CACN8vzB,IAAKr4zB,EAAKo4B,IACVkgyB,OAAQt4zB,EAAKu4zB,OACb57nB,OAAQ38L,EAAKuf,QAEjBs5M,EAAUk+lB,EAAkBrzyB,WAAYnb,GACxCvI,EAAKuf,OAAShX,EAAIo0L,QAEtBq6nB,EAAgB,SAAe,SAAqBh3zB,GAChD,IAAIuI,EAAM,CACN8vzB,IAAKr4zB,EAAKo4B,IACVkgyB,OAAQt4zB,EAAKu4zB,QAEjB1/lB,EAAUm+lB,EAAiBtzyB,WAAYnb,IAE3C2uzB,EAAiB,SAAe,SAAsBl3zB,GAClD,IAAIuI,EAAM,CACN8vzB,IAAKr4zB,EAAKo4B,IACVkgyB,OAAQt4zB,EAAKu4zB,QAEjB1/lB,EAAUq+lB,EAAkBxzyB,WAAYnb,IAE5C0uzB,EAAkB,SAAe,SAAuBj3zB,GACpD,IAAIuI,EAAM,CACN8vzB,IAAKr4zB,EAAKo4B,IACVkgyB,OAAQt4zB,EAAKu4zB,OACb57nB,OAAQ38L,EAAKuf,QAEjBs5M,EAAUo+lB,EAAmBvzyB,WAAYnb,GACzCvI,EAAKuf,OAAShX,EAAIo0L,QAEtBw6nB,EAAe,SAAe,SAAoB/00B,GAC9Cy2O,EAAUs+lB,EAAgBzzyB,WAAY,CAClChnC,IAAK0F,KAGbg10B,EAAkB,SAAe,SAAuBp3zB,GACpD64N,EAAUu+lB,EAAmB1zyB,WAAY,CAAEmL,MAAO7uB,KAEtDs3zB,EAAmB,SAAe,SAAwBt3zB,GACtD64N,EAAUy+lB,EAAoB5zyB,WAAY,CAAE80yB,MAAOx4zB,EAAKxa,MAAOuimB,OAAQ/nlB,EAAK/a,UAEhFoy0B,EAAmB,SAAe,SAAwB70zB,GACtDq2N,EAAUw+lB,EAAoB3zyB,WAAY,CACtC+0yB,SAAUj2zB,EACV01zB,QAAS,SAAAz00B,GACL,OAAOA,EACD+e,EAAMpjB,QAAO,SAAA1F,GAAI,OAAI+J,IAAO/J,EAAK+J,MAAI,GACrC,SAIlB8z0B,EAAwB,SAAe,SAA6B5gsB,GAChEkiG,EAAU0+lB,EAAyB7zyB,WAAY,CAC3CmgW,MAAOltP,EACP+hsB,UAAW,SAACv1zB,EAAU3d,GAClBmxI,EAAM+jX,UAAUv3e,EAAU3d,OAItCgy0B,EAA0B,SAAe,SAA+B7gsB,GACpEkiG,EAAU2+lB,EAA2B9zyB,WAAY,CAC7CmgW,MAAOltP,EACP+hsB,UAAW,SAACv1zB,EAAU3d,GAClBmxI,EAAM+jX,UAAUv3e,EAAU3d,OAItCiy0B,EAAwB,SAAe,SAA6B9gsB,GAChEkiG,EAAU4+lB,EAAyB/zyB,WAAY,CAC3CmgW,MAAOltP,EACP+hsB,UAAW,SAACv1zB,EAAU3d,GAClBmxI,EAAM+jX,UAAUv3e,EAAU3d,OAItCky0B,EAAqB,SAAe,SAA0B1uyB,GAC1D6vM,EAAU6+lB,EAAsBh0yB,WAAY,CACxCy6B,gBAAiBn1B,KAGzB4uyB,EAA8B,SAAe,SAAmCl+0B,EAAMsgB,GAClF6+N,EAAU++lB,EAA+Bl0yB,WAAY,CACjD2vxB,KAAM35zB,EACNu+0B,QAASj+zB,KAGjB+9zB,EAAoB,SAAe,SAAyB56zB,EAAMw7zB,GAC9D9/lB,EAAUk/lB,EAAqBr0yB,WAAY,CACvCw8E,KAAM/iG,EACNy7zB,OAAQD,KAGhBjC,EAAqB,SAAe,SAA0Bt00B,EAAKi5D,GAC/D,IAAIr7C,EAAO,CACPtjB,IAAK0F,EACLy20B,aAAcx9wB,EACdy9wB,SAAS,GAGb,OADAjgmB,EAAU69lB,EAAsBhzyB,WAAY1jB,GACrCA,EAAK84zB,SAEhBnC,EAAoB,SAAe,SAAyBv00B,GACxDy2O,EAAU89lB,EAAqBjzyB,WAAY,CACvChnC,IAAK0F,KAGN,CACHq00B,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,KApNZ,mCAuNI,SAA6Bl/lB,EAAWx0M,GACpC,SAAS00yB,EAAqBC,GAC1B,MAAO,CACHC,aAAc,WAAc,OAAOD,KAAWA,IAAQ780B,QACtD+80B,cAAe,WAAyB,IAAf140B,EAAe,uDAAT,QACvB240B,EAAeH,KAAWA,IAAQ1+zB,SAAW0+zB,IAAQ1+zB,QAAQlb,QAAO,SAAUoL,GAAK,OAAOA,EAAE4u0B,MAAQ540B,KAAQ,GAChH,OAAO240B,GAAgBA,EAAaE,QAIhD,IAAIC,EAAoB,CAAE51yB,WAAY,eAAgBC,YAAa,gBAC/D41yB,EAAqB,CAAE71yB,WAAY,CAACW,EAAQ,iBAAiB55B,KAAK,IAAKk5B,YAAa,iBACpF61yB,EAA2B,CAAE91yB,WAAY,CAACW,EAAQ,uBAAuB55B,KAAK,IAAKk5B,YAAa,uBAChG81yB,EAA2B,CAAE/1yB,WAAY,CAACW,EAAQ,uBAAuB55B,KAAK,IAAKk5B,YAAa,uBAChG+1yB,EAA6B,CAAEh2yB,WAAY,CAACW,EAAQ,yBAAyB55B,KAAK,IAAKk5B,YAAa,yBACpGg2yB,EAAuB,CAAEj2yB,WAAY,CAACW,EAAQ,mBAAmB55B,KAAK,IAAKk5B,YAAa,mBACxFkzyB,EAAsC,CAAEnzyB,WAAY,iCAAkCC,YAAa,kCACnGizyB,EAAiC,CAAElzyB,WAAY,4BAA6BC,YAAa,6BACzF8yyB,EAAwB,CAAE/yyB,WAAY,CAACW,EAAQ,wBAAwB55B,KAAK,IAAKk5B,YAAa,oBAC9F0zyB,EAAsB,CAAE3zyB,WAAY,CAACW,EAAQ,qBAAqB55B,KAAK,IAAKk5B,YAAa,kBACzFi2yB,EAA8B,CAAEl2yB,WAAY,CAACW,EAAQ,0BAA0B55B,KAAK,IAAKk5B,YAAa,0BACtGyzyB,EAAqB,CAAE1zyB,WAAY,gBAAiBC,YAAa,iBACjEk2yB,EAAgB,CAAEn2yB,WAAY,CAACW,EAAQ,YAAY55B,KAAK,IAAKk5B,YAAa,YAC9EizyB,EAA8B,SAAe,SAAmCzuuB,EAAW//E,GACvFywN,EAAU+9lB,EAA+BlzyB,WAAY,CAAEykE,UAAAA,EAAW//E,KAAAA,KAEtEivzB,EAAmB,SAAe,SAAwB70zB,GACtDq2N,EAAUw+lB,EAAoB3zyB,WAAY,CACtC+0yB,SAAUj2zB,EACV01zB,QAAS,SAACvjf,GACN,OAAOA,EAAanyU,EAAMpjB,QAAO,SAAU1F,GAAQ,OAAOi7V,IAAej7V,EAAKsoB,gBAAiB,GAAK,SAIhHy0zB,EAAqB,SAAe,SAA0Bz8zB,GAC1D6+N,EAAU49lB,EAAsB/yyB,WAAY,CACxCu0yB,QAASj+zB,EACTk+zB,QAAS,SAACC,GACN,OAAOA,EAAWn+zB,EAAQ5a,QAAO,SAAU1F,GAAQ,OAAOy+0B,IAAaz+0B,EAAK+J,MAAO,GAAK,SAIpGoz0B,EAAmC,SAAe,SAAwC1uuB,EAAWjjG,GACjG,IAAIqjB,EAAM,CACN4/E,UAAAA,EACAjjG,MAAAA,EACA2f,WAAY,MAGhB,OADAg0N,EAAUg+lB,EAAoCnzyB,WAAYnb,GACnDA,EAAI1D,YAEfy0zB,EAAiB,SAAe,SAAsBzvjB,EAAWmvjB,EAAO/6sB,GACpE,IAAI11G,EAAMjoB,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,CAAEghyB,UAAWjwjB,EAAWkwjB,MAAOf,EAAOgB,eAAgB/7sB,GAAkB86sB,GAAqB,kBAAMC,MAAS,CAAEF,SAAS,IAE7J,OADAjgmB,EAAUygmB,EAAkB51yB,WAAYnb,GACjCA,EAAIuwzB,SAEfa,EAAoB,SAAe,SAAyBn00B,EAAOwlB,GAC/D6tN,EAAU8gmB,EAAqBj2yB,WAAY,CACvCu2yB,oBAAqBz00B,EACrB000B,WAAYlvzB,KAGpByuzB,EAAwB,SAAe,SAA6Bj00B,EAAOwlB,GACvE6tN,EAAU4gmB,EAAyB/1yB,WAAY,CAC3Cu2yB,oBAAqBz00B,EACrB000B,WAAYlvzB,KAGpB0uzB,EAA0B,SAAe,SAA+Bl00B,EAAO4iB,EAAMu8gB,EAAQw1S,GACzFthmB,EAAU6gmB,EAA2Bh2yB,WAAY,CAC7C02yB,gBAAiB500B,EACjB600B,qBAAsBjyzB,EACtBkyzB,OAAQ31S,EACR41S,wBAAyBJ,KAGjCX,EAAwB,SAAe,SAA6Bz7yB,EAAOuR,EAAUvvB,GACjF,IAAIwI,EAAMjoB,OAAOw4C,OAAO,CAAEk8vB,MAAOj3wB,EAAOy8yB,SAAUlryB,EAAUmryB,SAAU16zB,GAAYg5zB,GAAqB,kBAAMh7yB,EAAMi7yB,UAEnH,OADAngmB,EAAU2gmB,EAAyB91yB,WAAYnb,GACxCA,EAAIkyzB,UAEflB,EAAkB,SAAe,SAAuBmB,EAAYC,EAAUC,GAC1E/hmB,EAAU0gmB,EAAmB71yB,WAAY,CACrCm3yB,SAAUF,EACVG,WAAYJ,EACZK,UAAWH,KAGnBxD,EAAkB,SAAe,SAAuBp3zB,GACpD64N,EAAUu+lB,EAAmB1zyB,WAAY,CAAEmL,MAAO7uB,KAEtD65zB,EAAa,SAAe,SAAkB75zB,GAC1C64N,EAAUghmB,EAAcn2yB,WAAY1jB,IAExC45zB,EAA2B,SAAe,SAAgChm0B,GACtE,IAAI2U,EAAM,IAAIotzB,GAAgC/h0B,GAC9CilO,EAAU+gmB,EAA4Bl2yB,WAAYnb,IAEtD,IAAIlgB,EAAS,CACTix0B,EACAC,EACAC,EACAC,EACAC,EACAC,EACA9C,EACAD,EACAH,EACAY,EACAuC,EACAxC,EACAyC,GAEJ,IAAKx1yB,EAAQ,CACT,IAAIwzyB,EAAsB,CAAEn0yB,WAAY,iBAAkBC,YAAa,iBACvEk0yB,SAAkC,WAC9Bh/lB,EAAUg/lB,EAAoBn0yB,cAElCr7B,EAAOjO,KAAKy90B,GACZ,IAAIC,EAAoB,CAAEp0yB,WAAY,eAAgBC,YAAa,eACnEm0yB,SAAgC,SAAsBM,GAClDv/lB,EAAUi/lB,EAAkBp0yB,WAAY00yB,KAE5C/v0B,EAAOjO,KAAK090B,GACZ,IAAIH,EAA6B,CAAEj0yB,WAAY,wBAAyBC,YAAa,yBACrFg0yB,EAA0B,SAAe1B,EAAe+B,sCAAsCn/lB,GAC9FxwO,EAAOjO,KAAKu90B,GAEhB,OAAOtv0B,MAvVf,kBCHC2y0B,GAAAA,YAA6BA,IAA9B,UCFuB,aCAZC,GCAAC,4BDCX,SAAWD,GACPA,EAAgBA,EAAe,MAAY,GAAK,QAChDA,EAAgBA,EAAe,UAAgB,GAAK,YACpDA,EAAgBA,EAAe,kBAAwB,GAAK,oBAHhE,CAIGA,KAAoBA,GAAkB,KCJzC,SAAWC,GACPA,EAAsBA,EAAqB,SAAe,GAAK,WAC/DA,EAAsBA,EAAqB,UAAgB,GAAK,YAChEA,EAAsBA,EAAqB,UAAgB,GAAK,YAChEA,EAAsBA,EAAqB,MAAY,GAAK,QAC5DA,EAAsBA,EAAqB,MAAY,GAAK,QAC5DA,EAAsBA,EAAqB,MAAY,GAAK,QANhE,CAOGA,KAA0BA,GAAwB,KCF9C,IAAIC,GACA,iBAAM,SADNA,GAEE,iBAAM,WAFRA,GAGG,iBAAM,aAHTA,GAIE,iBAAM,WAENC,GAAb,WACI,cAAc,eACV5h1B,KAAKssB,SAAW,GAFxB,uDAWI,WACI,IAAIu1zB,EAAqB120B,GAAAA,gBACzBy20B,EAAuBE,qBAAqB,UAAWD,EAAmB,UAAW,+CAAgDF,KAAsB,UAAW,UAAW,KACjLC,EAAuBE,qBAAqB,kBAAmBD,EAAmB,mBAAoB,uDAAwDF,KAAsB,QAAS,QAAS,KACtMC,EAAuBE,qBAAqB,aAAcD,EAAmB,cAAe,kDAAmDF,KAAsB,yBAA0B,sBAAuB,KACtNC,EAAuBE,qBAAqB,qBAAsBD,EAAmB,uBAAwB,0DAA2DF,KAAsB,oBAAqB,oBAAqB,KACxO,IAAII,EAAoB,CACpBp7gB,YAAa,SAAC94T,GACJA,EAAKuM,QAAQxY,kBAAmB0sE,MAClCzgE,EAAKuM,QAAQxY,OAAMwsE,EAAAA,GAAAA,WAAUvgE,EAAKuM,QAAQxY,SAAS,IAAU,IAAI0sE,KAAKA,KAAKskC,SAGnFovuB,aAAc,SAACz9yB,GACXA,EAAM09yB,WAAU9zwB,EAAAA,GAAAA,YAAW5pC,EAAM29yB,mBAGzCN,EAAuBO,eAAe,OAAQN,EAAmB,OAAQ,4CAA6CF,KAAuBI,EAAmB,+BAChKH,EAAuBQ,oBAAoB,CACvC500B,KAAM,QACN0B,YAAa2y0B,EAAmB,QAAS,6CACzCQ,gBAAgB,EAChBC,kBAAkB,IAEtBV,EAAuBQ,oBAAoB,CACvC500B,KAAM,YACN0B,YAAa2y0B,EAAmB,YAAa,iDAC7CQ,gBAAgB,EAChBC,kBAAkB,IAEtBV,EAAuBQ,oBAAoB,CACvC500B,KAAM,oBACN0B,YAAa2y0B,EAAmB,sBAAuB,yDACvDQ,gBAAgB,EAChBC,kBAAkB,IAEtBV,EAAuBE,qBAAqB,mBAAoBD,EAAmB,qBAAsB,wDAAyDF,KAAsB,cAAe,cAAe,MA9C9N,wBA2II,WAAmC,WAAxBY,EAAwB,uDAAJ,GACvB9nU,EAAa,GAOjB,OANA3zgB,OAAOC,KAAK/G,KAAKssB,UAAUrsB,SAAQ,SAAAm3F,GAC/B,IAAI7O,EAAW,EAAKj8D,SAAS8qE,GAAG7O,UACa,IAAzCg6vB,EAAkBp80B,QAAQoiF,KAAsD,IAAlCkyb,EAAWt0gB,QAAQoiF,IACjEkyb,EAAW75gB,KAAK2nF,MAGjBkyb,IAnJf,qBAqJI,WAAU,WACN,OAAO3zgB,OAAOC,KAAK/G,KAAKssB,UAAUpmB,KAAI,SAAAc,GAAG,OAAI,EAAKslB,SAAStlB,QAtJnE,iCAwJI,WAAqC,WAAjByzgB,EAAiB,uDAAJ,GACzBtuf,EAAU,GAMd,OALArlB,OAAOC,KAAK/G,KAAKssB,UAAUrsB,SAAQ,SAAAm3F,IACuB,GAAlDqjb,EAAWt0gB,QAAQ,EAAKmmB,SAAS8qE,GAAG7O,WACpCp8D,EAAQvrB,KAAK,EAAK0rB,SAAS8qE,OAG5BjrE,IA/Jf,oBAiKI,SAAOq2zB,GACH,OAAOxi1B,KAAKssB,SAASk2zB,MAlK7B,uBAII,WAKI,OAJKZ,EAAuB7qwB,YACxB6qwB,EAAuB7qwB,UAAY,IAAI6qwB,EACvCA,EAAuB7qwB,UAAU0rwB,4BAE9Bb,EAAuB7qwB,YATtC,sCAgDI,WACI,CAAC,QAAS,oBAAqB,aAAa92E,SAAQ,SAAA6jC,GAChD,IAAIthB,EAASo/zB,EAAuBxz0B,WAAWke,SAASwX,IACxDh7B,EAAAA,GAAAA,SAAO,EAAM0Z,EAAQ,CAAEpI,QAAS,CAAEso0B,oBAAqB,CAAEC,gBAAgB,WAnDrF,iCAsDI,SAA2BC,GACvBA,EAAyBN,sBAAiElq0B,IAA9Cwq0B,EAAyBN,kBAAkCM,EAAyBC,OAASD,EAAyBN,iBAClKM,EAAyBP,oBAA6Djq0B,IAA5Cwq0B,EAAyBP,gBAAuCO,EAAyBP,eACnI,IAAIS,EAAWrB,GAAgBsB,kBAC1BH,EAAyBN,mBAC1BQ,EAAWrB,GAAgBuB,WAC1BJ,EAAyBP,iBAC1BS,EAAWrB,GAAgBvxI,OAC/B,IAAI91rB,EAAU,CACV0o0B,SAAUA,EACVJ,oBAAqBE,GAEzBxo0B,EAAO,UAAgB,CACnBq2C,iBAAkB,SAAC5jC,EAAGrM,GAClB,GAAIoi0B,EAAyBC,OAAQ,CACjC,IAAII,EAAoBp2zB,EAAEq2zB,gBAAgBC,wBAAwBP,EAAyBC,OAAQD,EAAyBpszB,eAAe,SAAC4szB,GACxIv2zB,EAAEw2zB,QAAQ76uB,MAAM46uB,GAChBv2zB,EAAEw2zB,QAAQtwjB,aAGd,GADAvyQ,EAAQjR,OAAO,EAAG,EAAG0z0B,IAChBL,EAAyBU,oBACtBC,EAAkB/i0B,EAAQ5a,QAAO,SAAAoL,GAAC,OAAIA,EAAE/G,KAAOy30B,GAAsB8B,aAAW,KACjEhj0B,EAAQjR,OAAOiR,EAAQra,QAAQo90B,GAAkB,GAG5E,IAAKX,EAAyBN,iBAAkB,CAC5C,IAAImB,EAAWjj0B,EAAQ5a,QAAQ,SAAAoL,GAAC,OAAIA,EAAE/G,KAAOy30B,GAAsBgC,YAAW,GAC9ED,GAAYjj0B,EAAQjR,OAAOiR,EAAQra,QAAQs90B,GAAW,GAGtD,IAAIF,OAD4Cnr0B,IAAhDwq0B,EAAyBU,oBAAqCV,EAAyBU,qBACnFC,EAAkB/i0B,EAAQ5a,QAAO,SAAAoL,GAAC,OAAIA,EAAE/G,KAAOy30B,GAAsB8B,aAAW,KACjEhj0B,EAAQjR,OAAOiR,EAAQra,QAAQo90B,GAAkB,GAExE,QAA8Cnr0B,IAA1Cwq0B,EAAyBe,eAA+Bf,EAAyBe,aAAc,CAC/F,IAAIC,EAAcpj0B,EAAQ5a,QAAO,SAAAoL,GAAC,OAAIA,EAAE/G,KAAOy30B,GAAsB9khB,SAAO,GAC5EgnhB,GAAepj0B,EAAQjR,OAAOiR,EAAQra,QAAQy90B,GAAc,GAE5DhB,EAAyBnyxB,kBACzBmyxB,EAAyBnyxB,iBAAiB5jC,EAAGrM,KAKzDoh0B,EAAuBO,eAAeS,EAAyBp10B,KAAMo10B,EAAyB1z0B,YAAayy0B,KAAoBvn0B,EAAS,8BAjGhJ,4BAmGI,SAAsB5M,EAAM0B,EAAaq5E,EAAUnuE,EAASuP,EAAUgqD,GAA2B,IACzFotuB,EADwEtrwB,EAAiB,uDAAJ,GAErFmgB,EAAgB,CAChB9yB,cAAe,SAAAtiC,GACPmzE,GACArM,GAAAA,kBAAAA,oBAAsC9mE,EAAGmzE,EAAUl+B,GAEvDsrwB,EAAYvgzB,EAAE6tB,UAAUxJ,OAAO,UAEnC0tc,QAAS,SAAA/xd,GACL,IAAIgiB,EAAShiB,EAAE6tB,WACf4yB,EAAAA,GAAAA,0BAAyBzgD,EAAEga,MAAO,CAC9BmnC,IAAK,WACDn/B,EAAOimC,OACPjmC,EAAOqC,OAAO,QAASk8xB,IAE3Bn/vB,UAAW,WACPp/B,EAAOimC,YAKvBm5xB,EAAuBxz0B,WAAWke,SAAS9e,GAAQ,CAC/CA,KAAMA,EACN0B,YAAaA,EACbq5E,SAAUA,EACVnuE,QAAS1M,GAAAA,OAAS,GAAI0M,EAASw7C,GAC/BjsC,SAAUA,KA9HtB,gCAiII,SAA0B64zB,EAAUtz0B,EAAaq5E,EAAU8yY,GACvDumX,EAAuBO,eAAeK,EAAUtz0B,EAAaq5E,EAAU,CAAE8yY,KAAMA,MAlIvF,kCAoII,SAA4BmnX,EAAUtz0B,EAAaq5E,EAAUkvB,EAAeosuB,EAAapuyB,GACrF,IAAIk+B,EAAW,SAAC5vD,GAAU,OAAO8/zB,EAAY3gzB,KAAKnf,IAClD69zB,EAAuBO,eAAeK,EAAUtz0B,EAAaq5E,EAAUjhB,GAAAA,kBAAAA,sBAAwCmwC,EAAe9jC,EAAUl+B,GAAa,KAAMk+B,EAAUl+B,KAtI7K,8BAwII,SAAwB+syB,UACbZ,EAAuBxz0B,WAAWke,SAASk2zB,OAzI1D,iBCTWsB,GAAc,GACdC,GAAe,WACtB,IAAIC,EAAgB,SAAUj40B,GAC1B,OAAO4Z,KAAKo1B,OAAO,EAAIp1B,KAAK+5D,UAAY/5D,KAAKg7C,IAAI,MAAS50D,IAAI0C,SAAS,IAAIu9B,UAAU,IAEzF,OAAOg4yB,EAAc,GAAK,IAAMA,EAAc,GAAK,IAAMA,EAAc,GAAK,IAAMA,EAAc,GAAK,IAAMA,EAAc,IAEzHC,GAAa3tR,YAAY9wjB,UAAUijD,KACnCy7xB,GAAuB,CAAC,mBAAoB,sBAAuB,yBAA0B,sBAC1F,SAASC,GAAyBrk1B,EAAS2L,GAC9C,IAAI240B,EAAc170B,GAAAA,YAAc,GAC5By5C,EAAO,WACP,IAAIykY,EAAepkb,SAAS6h1B,cAAgB7h1B,SAAQ,uBAA6BA,SAAQ,wBACrF1C,EAAO,sBACPw2jB,YAAY9wjB,UAAUijD,KAAOm+X,EAAe,WACxC,IACIq9Z,GAAWj+zB,MAAMhmB,MAErB,MAAOQ,IACHgC,SAAS+lC,KAAKkgB,SAElBw7xB,IAERG,EAAYx9Z,IAEZy9Z,EAAa370B,GAAAA,SAAY,CACzB+H,KAAM,kBAAM2z0B,KACZxz0B,MAAO,SAACC,GACJuz0B,EAAYvz0B,GAyDxB,SAA0B/Q,EAAS8B,GAC/B,IAAK9B,EACD,OACA8B,EA1BR,SAAwB9B,GAChBA,EAAQwk1B,kBACRxk1B,EAAQwk1B,oBACHxk1B,EAAO,qBACZA,EAAO,uBACFA,EAAO,wBACZA,EAAO,0BACFA,EAAO,qBACZA,EAAO,sBAmBPyk1B,CAAezk1B,GAff0C,SAASgi1B,eACThi1B,SAASgi1B,iBACJhi1B,SAAQ,oBACbA,SAAQ,sBACHA,SAAQ,qBACbA,SAAQ,uBACHA,SAAQ,mBACb8zjB,YAAY9wjB,UAAUijD,KAAOw7xB,GAC7Bzh1B,SAAQ,oBArDJii1B,CAAiB3k1B,EAAS+Q,MAWlC,OAYJ,SAA+B/Q,EAASqiD,GACpC+hyB,GAAqBjk1B,SAAQ,SAACgqC,GAC1BnqC,EAAQY,iBAAiBupC,EAAWkY,MAtBxCuiyB,CAAsBli1B,SAAU2/C,GAChC12C,EAAOhD,aAAa7H,KAAK,CACrBwd,QAAS,YAuBjB,SAAkCte,EAASqiD,GACvC+hyB,GAAqBjk1B,SAAQ,SAACgqC,GAC1BnqC,EAAQK,oBAAoB8pC,EAAWkY,MAxBnCwiyB,CAAyBni1B,SAAU2/C,GACnC8hyB,GAAa,KACb9hyB,EAAO,OAEZkiyB,GACIA,ECxCJ,IAAIzgzB,GAAkB,CACzBghzB,aAAc,CAAE/gzB,OAAQ,UACpBjB,gBAAiB,CAAEhK,YAAalwB,GAAAA,cAAgB,kBAAOo70B,GAAAA,kBAAmC,IAAM,KAAM340B,EAAAA,GAAAA,iBAAgB,2BAA4B,+DCD/I050B,GAAkB,CAAEl20B,aAAc,kBAAmBynC,UAAW,mBAAoBjtC,KAAM28D,GAAAA,gBAAiBiY,aAAc3X,GAAAA,cAAel3D,YAAa,oBAAqBC,eAAgB,gEAAiEqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,qBAAsBrvyB,WAAY,SACvUsvyB,GAAkB,CAAEp20B,aAAc,kBAAmBynC,UAAW,mBAAoBlnC,YAAa,oBAAqBC,eAAgB,gEAAiEhG,KAAMo8D,GAAAA,eAAgB/iD,OAAQsi0B,GAAAA,gBAAAA,UAAkC,WAAYrvyB,WAAY,GAC/RuvyB,GAAY,CAAEr20B,aAAc,YAAaynC,UAAW,aAAclnC,YAAa,aAAcC,eAAgB,0DAA2DqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAASrvyB,WAAY,IACvOwvyB,GAAoB,CAAEt20B,aAAc,QAASynC,UAAW,SAAUlnC,YAAa,QAASC,eAAgB,sDAAuDqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAASrvyB,WAAY,YAC9NyvyB,GAAkB,CAAEv20B,aAAc,cAAeynC,UAAW,eAAgBlnC,YAAa,eAAgBC,eAAgB,4DAA6DqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GACtQ0vyB,GAAkB,CAAEx20B,aAAc,cAAeynC,UAAW,eAAgBlnC,YAAa,eAAgBC,eAAgB,wDAAyDqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GAClQ2vyB,GAAyB,CAAEz20B,aAAc,yBAA0BynC,UAAW,0BAA2BlnC,YAAa,6BAA8BC,eAAgB,uEAAwEqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GAC5T4vyB,GAA0B,CAAE120B,aAAc,0BAA2BynC,UAAW,2BAA4BlnC,YAAa,2BAA4BC,eAAgB,8EAA+EqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,WAAYrvyB,WAAY,IACtT6vyB,GAAkB,CAAE320B,aAAc,kBAAmBynC,UAAW,mBAAoBlnC,YAAa,mBAAoBC,eAAgB,sEAAuEsmC,YAAY,EAAOjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WACxR2/wB,GAAoB,CAAE520B,aAAc,oBAAqBynC,UAAW,qBAAsBlnC,YAAa,sBAAuBC,eAAgB,kEAAmEqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GACjS+vyB,GAAmB,CAAE720B,aAAc,mBAAoBynC,UAAW,oBAAqBlnC,YAAa,oBAAqBC,eAAgB,iEAAkEsmC,YAAY,EAAMjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WACtR6/wB,GAAY,CAAE920B,aAAc,YAAaynC,UAAW,aAAclnC,YAAa,aAAcC,eAAgB,0DAA2DsmC,YAAY,EAAOjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WACpP8/wB,GAAyB,CAAE/20B,aAAc,yBAA0BynC,UAAW,0BAA2BlnC,YAAa,2BAA4BC,eAAgB,uEAAwEqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GAC1TkwyB,GAAe,CACtBh30B,aAAc,eAAgBynC,UAAW,gBAAiBlnC,YAAa,gBAAiBC,eAAgB,6DAA8DqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAarvyB,WAAY,QACzOkwB,YAAa,CAAC,CAAE/jE,MAAO,eAAgBmjB,aAAc,oBAAsB,CAAEnjB,MAAO,aAAcmjB,aAAc,gBAAkB,CAAEnjB,MAAO,eAAgBmjB,aAAc,oBAAsB,CAAEnjB,MAAO,aAAcmjB,aAAc,0BAA4B,CAAEnjB,MAAO,eAAgBmjB,aAAc,8BAAgC,CAAEnjB,MAAO,aAAcmjB,aAAc,kBAAoB,CAAEnjB,MAAO,SAAUmjB,aAAc,qBAAuB,CAAEnjB,MAAO,eAAgBmjB,aAAc,sBAAwB,CAAEnjB,MAAO,cAAemjB,aAAc,iBAAmB,CAAEnjB,MAAO,QAASmjB,aAAc,mBAAqB,CAAEnjB,MAAO,QAASmjB,aAAc,mBAAqB,CAAEnjB,MAAO,aAAcmjB,aAAc,0BAA4B,CAAEnjB,MAAO,eAAgBmjB,aAAc,gCAE/vB,SAAS6g0B,KAAsD,IAAlC9szB,EAAkC,uDAAzB,OAAQq3qB,EAAiB,uCAARO,EAAQ,uCAC9Dm1I,EAAa,CAAEjk1B,MAAO,aAAcmjB,aAAc,cAAe5V,gBAAgBqqE,EAAAA,GAAAA,eAAc,wDAAyD1gD,IACxJgtzB,EAAuB,CAAElk1B,MAAO,uBAAwBmjB,aAAc,yBAA0B5V,gBAAgBqqE,EAAAA,GAAAA,eAAc,kEAAmE1gD,IACjMitzB,EAAiB,CAAEnk1B,MAAO,iBAAkBmjB,aAAc,kBAAmB5V,gBAAgBqqE,EAAAA,GAAAA,eAAc,4DAA6D1gD,IAC5K,OAAI43qB,EACO,CAACo1I,GAEH31I,EACE,CAAC01I,EAAYC,GAGb,CAACD,EAAYC,EAAsBC,GAG3C,IAAIC,GAAmB,CAAEr30B,aAAc,mBAAoBynC,UAAW,oBAAqBlnC,YAAa,qBAAsBC,eAAgB,sEAAuEsmC,YAAY,EAAMjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WAC5RqgxB,GAAgB,CACvBt30B,aAAc,gBAAiBynC,UAAW,cAAeX,WAAY,uBACrEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,sDACnGw2D,YAAaigxB,GAAoB,OAAO,IAEjCM,GAAiB,CACxBv30B,aAAc,iBAAkBynC,UAAW,cAAeX,WAAY,uBACtEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,uDACnGw2D,YAAaigxB,GAAoB,QAAQ,IAElCO,GAAiB,CACxBx30B,aAAc,iBAAkBynC,UAAW,cAAeX,WAAY,aACtEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,2DACnGw2D,YAAaigxB,GAAoB,SAE1BQ,GAAoB,CAC3Bz30B,aAAc,oBAAqBynC,UAAW,qBAAsBX,YAAY,EAChFjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,UAAW12D,YAAa,uBAAwBC,eAAgB,+DAElHk30B,GAAkB,CACzB130B,aAAc,kBAAmBynC,UAAW,cAAeX,WAAY,aACvEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,wDACnGw2D,YAAaigxB,GAAoB,UAE1BU,GAAgB,CACvB330B,aAAc,gBAAiBynC,UAAW,cAAeX,WAAY,aACrEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,sDACnGw2D,YAAaigxB,GAAoB,QAE1BW,GAAiB,CACxB530B,aAAc,iBAAkBynC,UAAW,cAAeX,WAAY,aACtEjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAa510B,YAAa,cAAeC,eAAgB,uDACnGw2D,YAAaigxB,GAAoB,SAQ9B,IAAIY,GAAiB,CACxB730B,aAAc,iBAAkBynC,UAAW,kBAAmBlnC,YAAa,mBAAoBC,eAAgB,+DAAgEsmC,WAAY,OAAQjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAC7On/wB,YAPO,CACH,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,+CACvD,CAAEvN,MAAO,QAASmjB,aAAc,QAAS5V,eAAgB,kDAOtDs30B,GAAoB,CAC3B930B,aAAc,iBAAkBynC,UAAW,kBAAmBlnC,YAAa,mBAAoBC,eAAgB,6DAA8DsmC,WAAY,QAASjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAC5On/wB,YAXO,CACH,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,+CACvD,CAAEvN,MAAO,QAASmjB,aAAc,QAAS5V,eAAgB,kDAWtDu30B,GAAmB,CAAE/30B,aAAc,YAAaynC,UAAW,aAAcX,WAAY,GAAIvmC,YAAa,YAAaC,eAAgB,0DAA2DqT,OAAQohB,GAAgBghzB,cACtN+B,GAAqB,CAAEh40B,aAAc,qBAAsBO,YAAa,uBAAwBC,eAAgB,8DAA+DqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,SACzN8B,GAAmB,CAC1Bj40B,aAAc,eAAgBynC,UAAW,gBAAiBlnC,YAAa,WAAYC,eAAgB,yDAA0DqT,OAAQsi0B,GAAAA,gBAAAA,UAAkC,YAAarvyB,WAAY,UAAWtsC,KAAMq8D,GAAAA,SACjPG,YAAa,CACT,CAAE/jE,MAAO,UAAWmjB,aAAc,eAAgB5V,eAAgB,gDAClE,CAAEvN,MAAO,QAASmjB,aAAc,WAAY5V,eAAgB,8CAC5D,CAAEvN,MAAO,UAAWmjB,aAAc,SAAU5V,eAAgB,gDAC5D,CAAEvN,MAAO,mBAAoBmjB,aAAc,WAAY5V,eAAgB,yDACvE,CAAEvN,MAAO,OAAQmjB,aAAc,QAAS5V,eAAgB,6CACxD,CAAEvN,MAAO,OAAQmjB,aAAc,QAAS5V,eAAgB,6CACxD,CAAEvN,MAAO,QAASmjB,aAAc,SAAU5V,eAAgB,gDAGvD030B,GAAsB,CAC7Bl40B,aAAc,mBAAoBynC,UAAW,oBAAqBlnC,YAAa,oBAAqBC,eAAgB,4DAA6DsmC,YAAY,EAAMjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WAErPkhxB,GAAiB,CACxBn40B,aAAc,cAAeynC,UAAW,eAAgBlnC,YAAa,gBAAiBC,eAAgB,uDAAwDsmC,YAAY,EAAOjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WAEnOmhxB,GAAmB,CAC1Bp40B,aAAc,gBAAiBynC,UAAW,iBAAkBlnC,YAAa,kBAAmBC,eAAgB,yDAA0DsmC,YAAY,EAAOjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,QAAS370B,KAAMy8D,GAAAA,WAE3OohxB,GAA4B,CACnCr40B,aAAc,YAAaynC,UAAW,aAAclnC,YAAa,aAAcC,eAAgB,qDAAsDsmC,WAAY,QAASjzB,OAAQsi0B,GAAAA,gBAAAA,UAAkC,SCzG7MmC,GAAoC,CAC3CL,GACAJ,GACA,CAAE730B,aAAc,6BAA8BynC,UAAW,8BAA+BlnC,YAAa,gCAAiCC,eAAgB,2EAA4EsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACrS+gxB,GAAoBD,GACpB,CAAE/30B,aAAc,gBAAiBynC,UAAW,iBAAkBlnC,YAAa,kBAAmBC,eAAgB,yDAA0DsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAC3O,CAAEj3D,aAAc,mBAAoBynC,UAAW,oBAAqBlnC,YAAa,qBAAsBC,eAAgB,4DAA6DsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,YCN9OshxB,GAAb,WACI,WAAYl70B,EAAOwyB,GAAY,2BAC3Bx+B,KAAKmn1B,sBAAwB,IAC7B3ozB,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAC7BhM,KAAK2m1B,mBAAqBj+0B,GAAAA,WAAc1I,KAAKqsG,WAAarsG,KAAKqsG,cAAgBrsG,KAAKmn1B,uBACpF,IAAIC,EAAiB1+0B,GAAAA,WAAc1I,KAAKqsG,aACxCrsG,KAAK2m1B,mBAAmBx10B,WAAU,SAACoV,GAC1BA,GACD6g0B,EAAe,EAAKD,0BAE5Bnn1B,KAAKqsG,UAAY3jG,GAAAA,SAAY,CACzB+H,KAAM,WAAQ,OAAO220B,KACrBx20B,MAAO,SAAC2V,GACJ6g0B,EAAe7g0B,GACX,EAAKog0B,oBACL,EAAKA,mBAAmBpg0B,IAAa,EAAK4g0B,0BAhB9D,sCA0BI,WACI,OAAOF,KA3Bf,gCA6BI,SAAmBz50B,GACf,MAAiB,cAATA,KAA2BxN,KAAK2m1B,oBAAsB3m1B,KAAK2m1B,yBA9B3E,mBAoBI,SAAY360B,EAAOwyB,GACf,OAAO,IAAI0ozB,EAAiBl70B,GAAS,GAAIwyB,KArBjD,oBAuBI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOql1B,GAAmCpqwB,OAxB9E,KCDawqwB,GAAb,WAUI,WAAYr70B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAZrC,sCAOI,WACI,OAAOs70B,MARf,mBACI,SAAYt70B,EAAOwyB,GACf,OAAO,IAAI6ozB,EAA0Br70B,GAAS,GAAIwyB,KAF1D,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO0l1B,GAA4CzqwB,OALvF,KAeWyqwB,GAA6C,CACpD,CAAE340B,aAAc,QAASynC,UAAW,SAAUjnC,eAAgB,oDAAqDD,YAAa,QAASumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC3L,CAAEj1B,aAAc,UAAWynC,UAAW,WAAYjnC,eAAgB,sDAAuDD,YAAa,UAAWumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACnM,CAAEj1B,aAAc,WAAYynC,UAAW,YAAajnC,eAAgB,uDAAwDD,YAAa,WAAYumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACvM,CAAEj1B,aAAc,WAAYynC,UAAW,YAAajnC,eAAgB,uDAAwDD,YAAa,WAAYumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACvM,CAAEj1B,aAAc,WAAYynC,UAAW,YAAajnC,eAAgB,uDAAwDD,YAAa,WAAYumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACvM,CAAEj1B,aAAc,SAAUynC,UAAW,UAAWjnC,eAAgB,qDAAsDD,YAAa,SAAUumC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,UCpBxL2jzB,GAAwC,CAC/CvC,GACAK,GACAW,GACAR,IAEOgC,GAA6B,CAAE740B,aAAc,6BAA8BynC,UAAW,8BAA+BlnC,YAAa,iCAAkCC,eAAgB,gFAAiFsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACzU6hxB,GAAgB,CAAE940B,aAAc,gBAAiBynC,UAAW,iBAAkBlnC,YAAa,kBAAmBC,eAAgB,mEAAoEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACtQ8hxB,GAAoC,CAC3CF,GACAC,GACAxB,IACFrqzB,OAAO2rzB,ICVEI,GAAsB,CAAEh50B,aAAc,kBAAmBynC,UAAW,kBAAmBlnC,YAAa,mBAAoBC,eAAgB,4DAA6DhG,KAAMk+0B,GAA0Bl+0B,KAAM40E,aAAcspwB,GAA0BO,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC7TikzB,GAAqC,CAC5C3B,GACAV,GACAR,GACAM,GACAD,GACAmC,GACAC,GACAzB,GACAb,GACA,CAAEx20B,aAAc,wBAAyBynC,UAAW,yBAA0BjnC,eAAgB,kEAAmED,YAAa,0BAA2BsT,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,UAAWnwB,YAAY,GACjRkyyB,ICdSG,GAAb,WACI,WAAY970B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAO670B,KAZf,gCAcI,SAAmBr60B,GACf,IAAIu60B,EAAa/n1B,KAAKkm1B,eAAiBlm1B,KAAKkm1B,iBAAmBA,GAAezwyB,WAC9E,MAAa,cAATjoC,GAAiC,gBAATA,EACF,eAAfu60B,EACO,+BAATv60B,GAAkD,qBAATA,EACxB,yBAAfu60B,EAEO,kBAATv60B,EACiB,yBAAfu60B,IAA0C/n1B,KAAKgo1B,mBADrD,KArBb,mBAKI,SAAYh80B,EAAOwyB,GACf,OAAO,IAAIspzB,EAAkB970B,GAAS,GAAIwyB,KANlD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOim1B,GAAoChrwB,OAT/E,KCDaorwB,GAAb,WACI,WAAYj80B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAKI,WACI,OAAOk80B,OANf,KASAD,GAAyB7twB,UAAY,WACjC,OAAO,IAAI6twB,GAAyB,KAEjC,IAAIC,GAAwC,CAC/C,CAAEv50B,aAAc,cAAeynC,UAAW,eAAgBlnC,YAAa,cAAeC,eAAgB,gDAAiDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACzM,CAAEj1B,aAAc,UAAWynC,UAAW,WAAYlnC,YAAa,UAAWC,eAAgB,4CAA6CsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACzL,CAAEj1B,aAAc,SAAUynC,UAAW,UAAWlnC,YAAa,SAAUC,eAAgB,2CAA4CsmC,WAAY,QAASjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC1L,CACIj1B,aAAc,YAAaynC,UAAW,aAAclnC,YAAa,aAAcC,eAAgB,8CAA+CsmC,WAAY,KAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAaz6B,KAAMq8D,GAAAA,SACrNG,YAAa,CACT,CAAE/jE,MAAO,KAAMmjB,aAAc,KAAM5V,eAAgB,iDACnD,CAAEvN,MAAO,KAAMmjB,aAAc,KAAM5V,eAAgB,iDACnD,CAAEvN,MAAO,MAAOmjB,aAAc,MAAO5V,eAAgB,qDCpBtDg50B,GAAuC,CAC9C,CAAEx50B,aAAc,aAAcynC,UAAW,cAAelnC,YAAa,aAAcC,eAAgB,sDAAuDsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAC7N,CAAEj3D,aAAc,wBAAyBynC,UAAW,yBAA0BlnC,YAAa,2BAA4BC,eAAgB,oEAAqEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,YAEzQwixB,GAAuB,CAAEz50B,aAAc,uBAAwBynC,UAAW,uBAAwBlnC,YAAa,wBAAyBC,eAAgB,4DAA6DkpC,OAAO,EAAM71B,OAAQohB,GAAAA,gBAAAA,UAA0B,oBAAqBqM,WAAYg4yB,GAAyB7twB,UAAWzwD,SAAU,8BACnV0+zB,GAAgC,CACvC,CAAE150B,aAAc,gBAAiBynC,UAAW,iBAAkBlnC,YAAa,iBAAkBC,eAAgB,qDAAsDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACrN,CAAEj1B,aAAc,mBAAoBynC,UAAW,oBAAqBlnC,YAAa,oBAAqBC,eAAgB,wDAAyDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACjO,CAAEj1B,aAAc,yBAA0BynC,UAAW,0BAA2BlnC,YAAa,2BAA4BC,eAAgB,8DAA+DsmC,WAAY,QAASjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC/P,CAAEj1B,aAAc,UAAWynC,UAAW,WAAYlnC,YAAa,UAAWC,eAAgB,+CAAgDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC5L,CAAEj1B,aAAc,OAAQynC,UAAW,QAASlnC,YAAa,OAAQC,eAAgB,4CAA6CsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAChLwkzB,ICbOE,GAAyC,CAChDzD,GACAE,GACAC,GACAK,GACAJ,GACAC,GACAK,GACAH,GACAM,GACAF,GACAG,IAEO4C,GAAqC,CAACpC,GAAgBC,GAAmBX,IAAW7pzB,OAAO0szB,ICXzFE,GAAb,WACI,WAAYx80B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAOu80B,KAZf,gCAcI,SAAmB/60B,GACf,OAAkB,cAATA,GAAmC,oBAATA,GAAyC,qBAATA,IAAgH,gBAA7ExN,KAAKmm1B,eAAiBnm1B,KAAKmm1B,iBAAmBA,GAAe1wyB,eAf3K,mBAKI,SAAYzpC,EAAOwyB,GACf,OAAO,IAAIgqzB,EAAkBx80B,GAAS,GAAIwyB,KANlD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO2m1B,GAAoC1rwB,OAT/E,KCAW4rwB,GAA0C,CACjD5D,GACAE,GACAC,GACA,CAAEr20B,aAAc,aAAcynC,UAAW,cAAelnC,YAAa,aAAcC,eAAgB,wDAAyDqT,OAAQohB,GAAAA,gBAAAA,UAA0B,WAAY6R,WAAY,IACtN,CACI9mC,aAAc,SAAUynC,UAAW,UAAWlnC,YAAa,SAAUC,eAAgB,oDAAqDqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAY,MAAOtsC,KAAMq8D,GAAAA,SAClNG,YAAa,CACT,CAAE/jE,MAAO,MAAOmjB,aAAc,OAC9B,CAAEnjB,MAAO,MAAOmjB,aAAc,OAC9B,CAAEnjB,MAAO,OAAQmjB,aAAc,QAC/B,CAAEnjB,MAAO,MAAOmjB,aAAc,OAC9B,CAAEnjB,MAAO,MAAOmjB,aAAc,OAC9B,CAAEnjB,MAAO,MAAOmjB,aAAc,OAC9B,CAAEnjB,MAAO,OAAQmjB,aAAc,WAIhC2j0B,GAAsC,CAACrC,GAAiB,CAAE130B,aAAc,+BAAgCynC,UAAW,gCAAiClnC,YAAa,iCAAkCC,eAAgB,0EAA2EsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACzW,CACIj3D,aAAc,oBAAqBynC,UAAW,qBAAsBlnC,YAAa,sBAAuBC,eAAgB,+DAAgEqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAY,gBAAiBtsC,KAAMq8D,GAAAA,SAC1QG,YAAa,CACT,CAAE/jE,MAAO,gBAAiBmjB,aAAc,gBAAiB5V,eAAgB,2DACzE,CAAEvN,MAAO,2BAA4BmjB,aAAc,2BAA4B5V,eAAgB,sEAC/F,CAAEvN,MAAO,oBAAqBmjB,aAAc,oBAAqB5V,eAAgB,+DACjF,CAAEvN,MAAO,mBAAoBmjB,aAAc,mBAAoB5V,eAAgB,8DAC/E,CAAEvN,MAAO,YAAamjB,aAAc,YAAa5V,eAAgB,uDACjE,CAAEvN,MAAO,mBAAoBmjB,aAAc,mBAAoB5V,eAAgB,iEAGzFysB,OAAO6szB,IC9BIE,GAAb,WACI,WAAY380B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAO080B,KAZf,gCAcI,SAAmBl70B,GACf,OAAkB,cAATA,GAAmC,oBAATA,IAAkH,gBAAhFxN,KAAKqm1B,gBAAkBrm1B,KAAKqm1B,kBAAoBA,GAAgB5wyB,eAf7I,mBAKI,SAAYzpC,EAAOwyB,GACf,OAAO,IAAImqzB,EAAmB380B,GAAS,GAAIwyB,KANnD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO8m1B,GAAqC7rwB,OAThF,KCFW+rwB,GAAwC,CAC/C/D,GACAE,GACAC,GACAK,GACAJ,GACAU,GACAT,GACAK,GACAH,GACAM,GACAF,IAEOqD,GAAoC,CAAC1C,GAAgBV,IAAW7pzB,OAAOgtzB,ICXrEE,GAAb,WACI,WAAY980B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAO680B,KAZf,gCAcI,SAAmBr70B,GACf,OAAkB,cAATA,GAAmC,oBAATA,IAA+G,gBAA7ExN,KAAKmm1B,eAAiBnm1B,KAAKmm1B,iBAAmBA,GAAe1wyB,eAf1I,mBAKI,SAAYzpC,EAAOwyB,GACf,OAAO,IAAIsqzB,EAAiB980B,GAAS,GAAIwyB,KANjD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOin1B,GAAmChswB,OAT9E,KCDakswB,GAAb,WAUI,WAAY/80B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAZrC,sCAOI,WACI,OAAOg90B,MARf,mBACI,SAAYh90B,EAAOwyB,GACf,OAAO,IAAIuqzB,EAAyB/80B,GAAS,GAAIwyB,KAFzD,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOon1B,GAA2CnswB,OALtF,KAeWoswB,GAAS,CAAEt60B,aAAc,SAAUynC,UAAW,UAAWlnC,YAAa,SAAUC,eAAgB,oDAAqDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACvMslzB,GAAc,CAAEv60B,aAAc,cAAeynC,UAAW,eAAgBlnC,YAAa,cAAeC,eAAgB,yDAA0DsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAChOhY,GAAQ,CAAEjd,aAAc,QAASynC,UAAW,SAAUlnC,YAAa,QAASC,eAAgB,mDAAoDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAClMqgR,GAAU,CAAEt1S,aAAc,UAAWynC,UAAW,WAAYlnC,YAAa,UAAWC,eAAgB,qDAAsDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC5MolzB,GAA4C,CACnDC,GAAQC,GAAat9zB,GAAOq4R,GAC5B,CAAEt1S,aAAc,WAAYynC,UAAW,YAAalnC,YAAa,WAAYC,eAAgB,sDAAuDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,UCrB7LulzB,GAAb,WAUI,WAAYn90B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAZrC,sCAOI,WACI,OAAOo90B,MARf,mBACI,SAAYp90B,EAAOwyB,GACf,OAAO,IAAI2qzB,EAAsBn90B,GAAS,GAAIwyB,KAFtD,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOwn1B,GAA8CvswB,OALzF,KAeWuswB,GAA+C,CACtD,CACIz60B,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,uBAAwBC,eAAgB,oEAAqEsmC,WAAY,OAAQjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,YACxP+hC,YAAa,CACT,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,oDACvD,CAAEvN,MAAO,gBAAiBmjB,aAAc,gBAAiB5V,eAAgB,6DACzE,CAAEvN,MAAO,iBAAkBmjB,aAAc,iBAAkB5V,eAAgB,gEAGnF,CACIR,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,uBAAwBC,eAAgB,oEAAqEsmC,WAAY,OAAQjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,YACxP+hC,YAAa,CACT,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,oDACvD,CAAEvN,MAAO,4BAA6BmjB,aAAc,4BAA6B5V,eAAgB,yEACjG,CAAEvN,MAAO,iBAAkBmjB,aAAc,iBAAkB5V,eAAgB,8DAC3E,CAAEvN,MAAO,2BAA4BmjB,aAAc,2BAA4B5V,eAAgB,wEAC/F,CAAEvN,MAAO,2BAA4BmjB,aAAc,2BAA4B5V,eAAgB,0EAGvG,CAAER,aAAc,gBAAiBynC,UAAW,iBAAkBlnC,YAAa,iBAAkBC,eAAgB,8DAA+DsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAChP,CAAEj3D,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,wBAAyBC,eAAgB,oEAAqEsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,YCjC/PyjxB,GAAb,WACI,WAAYr90B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAOs90B,KAZf,gCAcI,SAAmB970B,GACf,IAAMxN,KAAKup1B,sBAAuBvp1B,KAAKup1B,sBACnC,MAAa,uBAAT/70B,GAEAA,IAASg80B,GAAmB760B,gBACnB3O,KAAKyp1B,cAAgBzp1B,KAAKyp1B,kBAnBnD,8BAuBI,WACI,SAAUzp1B,KAAKyp1B,cAAgBzp1B,KAAKyp1B,gBAAkBzp1B,KAAKup1B,qBAAuBvp1B,KAAKup1B,0BAxB/F,mBAKI,SAAYv90B,EAAOwyB,GACf,OAAO,IAAI6qzB,EAA2Br90B,GAAS,GAAIwyB,KAN3D,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO0n1B,GAAmDzswB,OAT9F,KA2BW2swB,GAAqB,CAC5B760B,aAAc,kBAAmBynC,UAAW,mBAAoBlnC,YAAa,mBAAoBC,eAAgB,qEAAsEsmC,WAAY,SAAUjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,YAC/O+hC,YAAa,CACT,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,mDACvD,CAAEvN,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,qDAC3D,CAAEvN,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,uDAGxDm60B,GAAoD,EAC3DnlxB,EAAAA,GAAAA,iCAAgC,CAAEx1D,aAAc,eAAgBynC,UAAW,gBAAiBlnC,YAAa,gBAAiBC,eAAgB,kEAAmEsmC,WAAY,KACzN+zyB,IACArlxB,EAAAA,GAAAA,iCAAgC,CAAEx1D,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,uBAAwBC,eAAgB,yEAA0EsmC,WAAY,KACrP,CAAE9mC,aAAc,qBAAsBynC,UAAW,qBAAsBlnC,YAAa,0BAA2BC,eAAgB,gDAAiDhG,KAAMgg1B,GAAsBhg1B,KAAM40E,aAAcorwB,GAAsBvB,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,kBCtCzR8lzB,GAAkC,OAAlCA,GAAkD,SAAlDA,GAAoE,SAApEA,GAAsF,SAAtFA,GAAwG,SAAxGA,GAA0H,SAA1HA,GAA4I,SAC5IC,GAAoB,CAC3Bh70B,aAAc,oBAAqBynC,UAAW,qBAAsBlnC,YAAa,sBAAuBC,eAAgB,6DAA8DqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAYi0yB,GAA8Bvg1B,KAAMq8D,GAAAA,SACrRG,YAAa,CACT,CAAE/jE,MAAO8n1B,GAA8B3k0B,aAAc2k0B,GAA8Bv60B,eAAgB,kDACnG,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,oDACnF,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,oDACnF,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,oDACnF,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,oDACnF,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,oDACnF,CAAEvN,MAAO8n1B,GAAgC3k0B,aAAc,WAAY5V,eAAgB,sDAGhFy60B,GAAmC,OAAnCA,GAAmD,SACnDC,GAAqB,CAC5Bl70B,aAAc,qBAAsBynC,UAAW,sBAAuBlnC,YAAa,uBAAwBC,eAAgB,8DAA+DqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAYm0yB,GAA+Bzg1B,KAAMq8D,GAAAA,SAC1RG,YAAa,CACT,CAAE/jE,MAAOgo1B,GAA+B7k0B,aAAc2k0B,GAA8Bv60B,eAAgB,mDACpG,CAAEvN,MAAOgo1B,GAAiC7k0B,aAAc6k0B,GAAiCz60B,eAAgB,uDAGtG260B,GAAwB,CAC/Bn70B,aAAc,wBAAyBynC,UAAW,yBAA0BlnC,YAAa,4BAA6BC,eAAgB,iEAAkEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAErQmkxB,GAAoC,CAC3C,CAAEp70B,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,yBAA0BC,eAAgB,+DAAgEsmC,YAAY,EAAMjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACpQkkxB,GACA,CAAEn70B,aAAc,qBAAsBynC,UAAW,sBAAuBlnC,YAAa,uBAAwBC,eAAgB,8DAA+DsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAC9O,CAAEj1B,aAAc,iCAAkCynC,UAAW,kCAAmClnC,YAAa,qCAAsCC,eAAgB,0EAA2EsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAClT,CACIj3D,aAAc,eAAgBynC,UAAW,gBAAiBlnC,YAAa,gBAAiBC,eAAgB,wDAAyDqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAY,UAAWtsC,KAAMq8D,GAAAA,SAC7OG,YAAa,CACT,CAAE/jE,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,sDAC3D,CAAEvN,MAAO,MAAOmjB,aAAc,MAAO5V,eAAgB,mDACrD,CAAEvN,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,sDAC3D,CAAEvN,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,oDACvD,CAAEvN,MAAO,UAAWmjB,aAAc,UAAW5V,eAAgB,yDAGrEw60B,GACAE,GACA7E,GACAK,GACAC,GACA,CAAE320B,aAAc,kBAAmBynC,UAAW,kBAAmBlnC,YAAa,mBAAoBC,eAAgB,2DAA4DhG,KAAM4/0B,GAAyB5/0B,KAAM40E,aAAcgrwB,GAAyBnB,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACpS,CAAEj1B,aAAc,6BAA8BynC,UAAW,0BAA2BlnC,YAAa,gCAAiCC,eAAgB,qDAAsDhG,KAAMkg1B,GAA2Blg1B,KAAM40E,aAAcsrwB,GAA2BzB,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,kBChDzTomzB,GAAb,WACI,WAAYh+0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAAS,IAH9C,iDAWI,SAAmB2C,GACf,IAAMs70B,EAAqBjq1B,KAAK2p1B,kBAAoB3p1B,KAAK2p1B,oBAAsBA,GAAkBl0yB,WAC3Fy0yB,EAAsBlq1B,KAAK6p1B,mBAAqB7p1B,KAAK6p1B,qBAAuBA,GAAmBp0yB,WAC/F00yB,EAAoBnq1B,KAAK8p1B,sBAAwB9p1B,KAAK8p1B,wBAA0BA,GAAsBr0yB,WAC5G,MAAqB,mCAAjB9mC,EACOs70B,IAAuBP,IAAkCO,IAAuBP,GACjE,uBAAjB/60B,EACEs70B,GAAsBP,IAAgCQ,GAAuBN,GAC9D,+BAAjBj70B,GAAkE,0BAAjBA,EAC/Cs70B,GAAsBP,GACP,sBAAjB/60B,EACEw70B,OADN,IArBb,qBAwBI,WACI,OAAOJ,KAzBf,8BA2BI,WACI,OAAO/p1B,KAAKoq1B,4BAA8Bpq1B,KAAKoq1B,2BAA2BC,sBA5BlF,mBAKI,SAAYr+0B,EAAOwyB,GACf,OAAO,IAAIwrzB,EAAiBh+0B,GAAS,GAAIwyB,KANjD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOmo1B,GAAmCltwB,OAT9E,KCDWytwB,GAAuC,CAC9C,CAAE370B,aAAc,kBAAmBynC,UAAW,mBAAoBlnC,YAAa,oBAAqBC,eAAgB,8DAA+DsmC,WAAY,WAAYjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,UCApO2mzB,GAAb,WAUI,WAAYv+0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAZrC,sCAOI,WACI,OAAOs+0B,MARf,mBACI,SAAYt+0B,EAAOwyB,GACf,OAAO,IAAI+rzB,EAAoBv+0B,GAAS,GAAIwyB,KAFpD,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO0o1B,GAAsCztwB,OALjF,KCCa2twB,GAAb,WACI,WAAYx+0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAO070B,KAZf,gCAcI,SAAmBl60B,GACf,IAAIu60B,EAAa/n1B,KAAKim1B,cAAgBjm1B,KAAKim1B,gBAAkBA,GAAcxwyB,WAC3E,MAAa,cAATjoC,EACsB,eAAfu60B,EACO,+BAATv60B,GAAkD,qBAATA,GAAwC,kBAATA,EACvD,yBAAfu60B,OADN,KAlBb,mBAKI,SAAY/70B,EAAOwyB,GACf,OAAO,IAAIgszB,EAAiBx+0B,GAAS,GAAIwyB,KANjD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO8l1B,GAAmC7qwB,OAT9E,KCAW4twB,GAAqC,CAC5C7D,GACA,CAAEj40B,aAAc,6BAA8BynC,UAAW,8BAA+BlnC,YAAa,gCAAiCC,eAAgB,2EAA4EsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACtS,CAAEj3D,aAAc,YAAaynC,UAAW,aAAclnC,YAAa,YAAaC,eAAgB,0DAA2DsmC,WAAY,MAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SAChN4izB,ICLSkE,GAAb,WAUI,WAAY1+0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAZrC,sCAOI,WACI,OAAOy+0B,MARf,mBACI,SAAYz+0B,EAAOwyB,GACf,OAAO,IAAIkszB,EAAkB1+0B,GAAS,GAAIwyB,KAFlD,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAO6o1B,GAAoC5twB,OAL/E,KCUI8twB,GAAkB,CAAEh80B,aAAc,kBAAmBynC,UAAW,kBAAmBlnC,YAAa,mBAAoBC,eAAgB,2DAA4Dyf,KAP5J,CACpCq6zB,GAAQC,GAAat9zB,GAAOq4R,GAC5B,CAAEt1S,aAAc,OAAQynC,UAAW,QAASlnC,YAAa,OAAQC,eAAgB,iDAAkDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACrL,CAAEj1B,aAAc,WAAYynC,UAAW,YAAalnC,YAAa,WAAYC,eAAgB,qDAAsDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACrM,CAAEj1B,aAAc,WAAYynC,UAAW,YAAalnC,YAAa,WAAYC,eAAgB,qDAAsDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,SACrM,CAAEj1B,aAAc,UAAWynC,UAAW,WAAYlnC,YAAa,UAAWC,eAAgB,oDAAqDsmC,WAAY,GAAIjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,UAEwCphB,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAW3QgnzB,GAAoB,CAAEj80B,aAAc,oBAAqBynC,UAAW,oBAAqBlnC,YAAa,qBAAsBC,eAAgB,gEAAiEyf,KAVvK,CACtC,CACIjgB,aAAc,OAAQynC,UAAW,QAASlnC,YAAa,OAAQC,eAAgB,mDAAoDsmC,WAAY,SAAUjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAaz6B,KAAMq8D,GAAAA,SAC9MG,YAAa,CACT,CAAE/jE,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,mDAC3D,CAAEvN,MAAO,aAAcmjB,aAAc,aAAc5V,eAAgB,0DAG3Eg1D,EAAAA,GAAAA,iCAAgC,CAAEx1D,aAAc,WAAYynC,UAAW,YAAalnC,YAAa,WAAYC,eAAgB,uDAAwDsmC,WAAY,MAEuDjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACnRinzB,GAA0C,CACjDhE,GACA7B,GACA8B,GACAE,GACAD,GACAN,GACAnB,GACAD,GACA,CAAE120B,aAAc,wBAAyBynC,UAAW,yBAA0BlnC,YAAa,4BAA6BC,eAAgB,oEAAqEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACjR,CAAEj3D,aAAc,yBAA0BynC,UAAW,0BAA2BlnC,YAAa,6BAA8BC,eAAgB,qEAAsEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACrR,CACIj3D,aAAc,eAAgBynC,UAAW,gBAAiBlnC,YAAa,gBAAiBC,eAAgB,2DAA4DqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAY,OAAQtsC,KAAMq8D,GAAAA,SAAUG,YAAa,CAChQ,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,+CACvD,CAAEvN,MAAO,qBAAsBmjB,aAAc,wBAAyB5V,eAAgB,+DAG9F,CACIR,aAAc,sBAAuBynC,UAAW,uBAAwBlnC,YAAa,yBAA0BC,eAAgB,kEAAmEsmC,WAAY,UAAWtsC,KAAMq8D,GAAAA,SAAUhjD,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa+hC,YAAa,CACjS,CAAE/jE,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,wCACvD,CAAEvN,MAAO,QAASmjB,aAAc,QAAS5V,eAAgB,yCACzD,CAAEvN,MAAO,UAAWmjB,aAAc,UAAW5V,eAAgB,6CAGrEw70B,GACAC,IAEOE,GAAwC,CAC/C,CAAEn80B,aAAc,4BAA6BynC,UAAW,6BAA8BlnC,YAAa,+BAAgCC,eAAgB,qEAAsEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WAC7R,CAAEj3D,aAAc,2BAA4BynC,UAAW,4BAA6BlnC,YAAa,8BAA+BC,eAAgB,oEAAqEsmC,YAAY,EAAOjzB,OAAQohB,GAAAA,gBAAAA,UAA0B,QAASz6B,KAAMy8D,GAAAA,WACzR,CACIj3D,aAAc,iCAAkCynC,UAAW,kCAAmClnC,YAAa,oCAAqCC,eAAgB,0EAA2EqT,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa6R,WAAY,8BAA+BtsC,KAAMq8D,GAAAA,SAC3UG,YAAa,CACT,CAAE/jE,MAAO,8BAA+BmjB,aAAc,8BAA+B5V,eAAgB,sFACrG,CAAEvN,MAAO,+BAAgCmjB,aAAc,+BAAgC5V,eAAgB,0FAIxG470B,GAAoC,CAACzE,IAAe1qzB,OAAOivzB,GAAyCC,IC3DlGE,GAAb,WACI,WAAYh/0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAO++0B,KAZf,gCAcI,SAAmBv90B,GACf,MAAgB,cAATA,GAAmG,gBAA1ExN,KAAKsm1B,cAAgBtm1B,KAAKsm1B,gBAAkBA,GAAc7wyB,cAflG,8BAiBI,WACI,SAAUz1C,KAAK4q1B,oBAAqB5q1B,KAAK4q1B,kBAAkBhnoB,eAlBnE,mBAKI,SAAY53M,EAAOwyB,GACf,OAAO,IAAIwszB,EAAiBh/0B,GAAS,GAAIwyB,KANjD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOmp1B,GAAmCluwB,OAT9E,KCDWouwB,GAAqC,CAAC1E,IAAgB3qzB,OAAOivzB,ICC3DK,GAAb,WACI,WAAYl/0B,EAAOwyB,IAAY,gBAC3BA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GAHrC,sCAWI,WACI,OAAOi/0B,KAZf,gCAcI,SAAmBz90B,GACf,MAAgB,cAATA,GAAsG,gBAA7ExN,KAAKum1B,eAAiBvm1B,KAAKum1B,iBAAmBA,GAAe9wyB,cAfrG,8BAiBI,WACI,SAAUz1C,KAAK4q1B,oBAAqB5q1B,KAAK4q1B,kBAAkBhnoB,eAlBnE,mBAKI,SAAY53M,EAAOwyB,GACf,OAAO,IAAI0szB,EAAkBl/0B,GAAS,GAAIwyB,KANlD,oBAQI,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOqp1B,GAAoCpuwB,OAT/E,KCUWsuwB,GAAiC,CACxC,CAAEx80B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM+90B,GAAiB/90B,KAAM40E,aAAcmpwB,GAAiBU,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC9O,CAAEj1B,aAAc,QAASynC,UAAW,QAASlnC,YAAa,iBAAkBC,eAAgB,uCAAwCqT,OAAQohB,GAAAA,gBAAAA,UAA0B,gBAAiBhV,KAAMy5zB,IAC7L,CAAE150B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMq/0B,GAAkBr/0B,KAAM40E,aAAcyqwB,GAAkBZ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACpP,CAAEj1B,aAAc,QAASynC,UAAW,QAASlnC,YAAa,uBAAwBC,eAAgB,6CAA8ChG,KAAMw/0B,GAAmBx/0B,KAAM40E,aAAc4qwB,GAAmBf,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC1P,CAAEj1B,aAAc,cAAeynC,UAAW,cAAelnC,YAAa,8BAA+BC,eAAgB,mDAAoDhG,KAAM2/0B,GAAiB3/0B,KAAM40E,aAAc+qwB,GAAiBlB,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC/Q,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM2/0B,GAAiB3/0B,KAAM40E,aAAc+qwB,GAAiBlB,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC9O,CAAEj1B,aAAc,eAAgBynC,UAAW,eAAgBlnC,YAAa,wBAAyBC,eAAgB,8CAA+CqT,OAAQohB,GAAAA,gBAAAA,UAA0B,gBAAiBhV,KAAMu5zB,IACzN,CAAEx50B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM6g1B,GAAiB7g1B,KAAM40E,aAAciswB,GAAiBpC,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC9O,CAAEj1B,aAAc,eAAgBynC,UAAW,eAAgBlnC,YAAa,wBAAyBC,eAAgB,8CAA+ChG,KAAMoh1B,GAAoBph1B,KAAM40E,aAAcwswB,GAAoB3C,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC5Q,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMqh1B,GAAiBrh1B,KAAM40E,aAAcyswB,GAAiB5C,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC9O,CAAEj1B,aAAc,oBAAqBynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMuh1B,GAAkBvh1B,KAAM40E,aAAc2swB,GAAkB9C,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACjQ,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM6h1B,GAAiB7h1B,KAAM40E,aAAcitwB,GAAiBpD,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC9O,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAM+h1B,GAAkB/h1B,KAAM40E,aAAcmtwB,GAAkBtD,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACpP,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAM2+0B,GAAkB3+0B,KAAM40E,aAAc+pwB,GAAkBF,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,kBCzB3OwnzB,GAAb,8EAOI,WACI,OAAOD,KARf,yBAUI,SAAYn/0B,EAAOwyB,GAGf,OAFAA,EAAaA,GAAc,IAAI0V,GAAAA,iBACpBnV,YAAY/+B,KAAMgM,GACtBhM,QAbf,mBACI,SAAYgM,EAAOwyB,GACf,OAAO,IAAI4szB,GAAgBrszB,YAAY/yB,GAAS,GAAIwyB,KAF5D,oBAII,SAAc58B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOup1B,GAAgCtuwB,OAL3E,KCFO,IAAI5rB,GACC,eADDA,GAEI,mBAFJA,GAGG,kBAHHA,GAIK,mBAJLA,GAKG,kBALHA,GAMG,kBANHA,GAOU,yBAPVA,GAQiB,iCARjBA,GASE,iBATFA,GAUO,sBAVPA,GAWC,gBAXDA,GAYA,cAZAA,GAaI,mBAbJA,GAcG,oBAdHA,GAeC,eAfDA,GAgBK,kBAELo6xB,GAAiB,CACxBC,IAAK,CAAE3o1B,KAAM,MAAO4o1B,OAAQ,qCAAsCzyzB,OAAQ,OAC1E0yzB,IAAK,CAAE7o1B,KAAM,MAAO4o1B,OAAQ,qCAAsCzyzB,OAAQ,OAC1E2yzB,KAAM,CAAE9o1B,KAAM,OAAQ4o1B,OAAQ,sCAAuCzyzB,OAAQ,QAC7E4yzB,IAAK,CAAE/o1B,KAAM,MAAO4o1B,OAAQ,qCAAsCzyzB,OAAQ,OAC1E6yzB,IAAK,CAAEhp1B,KAAM,MAAO4o1B,OAAQ,qCAAsCzyzB,OAAQ,OAC1E8yzB,KAAM,CAAEjp1B,KAAM,OAAQ4o1B,OAAQ,sCAAuCzyzB,OAAQ,QAC7EmrK,KAAM,CAAEthM,KAAM,OAAQ4o1B,OAAQ,qCAAsCzyzB,OAAQ,MAAOnqB,aAAc,qBACjGk90B,IAAK,CAAElp1B,KAAM,MAAO4o1B,OAAQ,qCAAsCzyzB,OAAQ,OAC1Eo3qB,MAAO,CAAEvtsB,KAAM,QAAS4o1B,OAAQ,qCAAsCzyzB,OAAQ,SAC9EgzzB,KAAM,CAAEnp1B,KAAM,OAAQ4o1B,OAAQ,sCAAuCzyzB,OAAQ,SAEtEizzB,GACE,kCADFA,GAEE,gBAFFA,GAGK,iCAHLA,GAIK,mBAELC,GACD,EADCA,GAEI,EAFJA,IAGK,ECrCHC,GAAb,0CACI,WAAYvy0B,GAAW,6BACnB,gBACK/T,wBAA0B,6BAC/B,EAAKrD,aAAe,kCACpB,EAAK4p1B,gBAAiB,EACtB,EAAKC,yBAA2B,EAChC,EAAKC,wBAA0B,EAC/B,EAAKC,oBAAsB,WACvB,EAAKF,yBAA2B,EAChC,EAAKC,wBAA0B,GAEnC,EAAKE,aAAe,WAChB,OAAO,EAAKC,aAAaC,YAAY,KAEzC,EAAKC,YAAc,WACf,EAAKC,cAAgBxuzB,aAAa,EAAKwuzB,cACvC,EAAKA,aAAe7p1B,YAAW,WAC3B,EAAK6D,eACN,KAEP,EAAK60B,MAAQ,WACT,EAAK+wzB,eACL,EAAKD,uBAET,EAAKlh0B,QAAS,EACd,EAAKwh0B,oBAAsBjz0B,EAAUkz0B,mBACrC,EAAKC,OAASnz0B,EAAUijlB,MACxB,EAAKmwP,UAAYpz0B,EAAUqz0B,SAASti1B,KAAKiP,GACzC,EAAKsz0B,2BAA6Btz0B,EAAUuz0B,qBAC5C,EAAKxk1B,aAAa7H,KAAK8Y,EAAUwz0B,YAAY/70B,WAAU,SAAAg80B,GAC/CA,IACA,EAAKZ,aAAeY,EACpB,EAAKV,mBAhCM,EAD3B,sCAqCI,WACIzs1B,KAAKot1B,2BAA6Bpt1B,KAAKot1B,0BAA0Bhv0B,UACjEpe,KAAKqt1B,yBAA2B,KAChCrt1B,KAAK0s1B,cAAgBxuzB,aAAal+B,KAAK0s1B,eACvC,yDAzCR,wBA2CI,WAAa,WACJ1s1B,KAAKus1B,eAEVvs1B,KAAKst1B,QAAUtt1B,KAAKus1B,aAAagB,OAC7Bvt1B,KAAKgt1B,6BACLht1B,KAAK2H,WAAa3H,KAAK6s1B,SAAS1m1B,QAAQnG,KAAKus1B,cAG7Cvs1B,KAAK2H,WAAa,GAEtB,0DACA3H,KAAKqt1B,0BAA4Brt1B,KAAKqt1B,2BACtCrt1B,KAAKqt1B,yBAA2B,KAC5Brt1B,KAAKks1B,iBACLls1B,KAAKiC,gBAAgBjC,KAAK2H,YAAY7H,QAAQiB,QAC9Cf,KAAKwt1B,gBAAgB1s1B,aAAa,WAAY,MAC9Cd,KAAKks1B,gBAAiB,GAE1Bls1B,KAAKot1B,2BAA6Bpt1B,KAAKot1B,0BAA0Bhv0B,UACjEpe,KAAKot1B,0BAA4Bpt1B,KAAKus1B,aAAakB,aAAat80B,WAAU,SAAAs80B,GAEtE,GADA,EAAKC,oBAAsBxvzB,aAAa,EAAKwvzB,oBACxCD,EAAant1B,OAAlB,CAEA,EAAKot1B,mBAAqB,EAAKrr1B,aAAaK,WAAW,EAAKiq1B,oBAAoB,MAEhF,IADA,IAAIW,EAAU,EAAKA,UACVvh1B,EAAI,EAAGA,EAAIuh1B,EAAQht1B,OAAQyL,IAAK,CACrC,IAAMyz0B,EAAQ8N,EAAQvh1B,GAGtB,GAFIyz0B,IAAUiO,EAAa,KACvB,EAAKtB,yBAA2Bpg1B,GAChCyz0B,IAAUiO,EAAaA,EAAant1B,OAAS,GAAI,CACjD,EAAK8r1B,wBAA0Brg1B,EAC/B,eA1EpB,0BA+EI,cA/EJ,8BAgFI,SAAiBvL,EAAGK,GAChB,QAAKb,KAAKmrB,SAEVnrB,KAAKiC,gBAAgBpB,GAAOf,QAAQuB,UAAUG,OAAO,iCACrDxB,KAAKmrB,QAAS,EACdnrB,KAAKss1B,gBACE,KAtFf,4BAwFI,SAAe9M,EAAOh/0B,GAAG,WACrB,GAAIg/0B,EAAMmO,WACNnO,EAAMx4wB,QAAQxmE,QAEb,GAAIg/0B,EAAMoO,QAAS,CACpB,IAAIC,EAAY7t1B,KAAKus1B,aAAauB,gBAAgBtO,EAAMoO,QAAU,GAC9DG,EAAUxo1B,MAAMC,UAAUC,MAAMhF,KAAKD,EAAEoG,OAAOlB,iBAAiB,yCAC/Dso1B,GAASnn1B,EAAAA,GAAAA,+BAA8Bkn1B,GAAS,SAAC7t1B,GAAD,OAAUwI,GAAAA,QAAWxI,KAAU2t1B,KACnF,GAAIG,GAAUH,EAAUI,eAAgB,CACpCJ,EAAUI,eAAeJ,EAAW,CAAEjn1B,OAAQon1B,EAAQt/0B,cAAes/0B,IACrE,IAAI9szB,EAAe2szB,EAAU1i0B,OAAOha,WAAU,SAAAvP,GACrCA,IACGY,SAASkF,gBAAkBlF,SAAS+lC,MACpC/nC,EAAEoG,OAAO7F,QAEby+0B,EAAMr0zB,QAAO,GACb,EAAKA,QAAS,EACd3qB,EAAEoG,OAAOvF,UAAUC,IAAI,iCACvB4/B,EAAa9iB,cAGrBpe,KAAKyI,aAAa7H,KAAKsgC,QAElB2szB,EAAU7mxB,SACf6mxB,EAAU7mxB,QAAQ6mxB,EAAWrt1B,MAhH7C,+BAoHI,SAAkBK,EAAOkzB,GACrB,IAAI9rB,EAAYpH,GAASkzB,GAAW,EAAI,GACpCu5zB,EAAUtt1B,KAAKst1B,UACf9N,EAAQ8N,EAAQrl1B,GAIpB,OAHI8rB,GAAW9rB,EAAY,GAAKA,EAAYql1B,EAAQht1B,OAAS,KACzDk/0B,EAAQx/0B,KAAKku1B,kBAAkBn6zB,EAAUu5zB,EAAQht1B,QAAU,EAAGyzB,IAE9DyrzB,EAAMoO,SAAWpO,EAAMoO,QAAU,GAE5BpO,EAAM2O,uBAAyB3O,EAAM780B,QAAU680B,EAAMoO,SAAWpO,EAAMmO,WADpEnO,EAGJx/0B,KAAKku1B,kBAAkBjm1B,EAAW8rB,KA/HjD,+BAiII,SAAkBtT,EAAQixQ,GAA2B,IAAjB39P,EAAiB,wDAGjD,GAFA/zB,KAAKks1B,gBAAiB,EACtBls1B,KAAKu7B,SACAv7B,KAAKmrB,OAAQ,CACd,GAAInrB,KAAKgt1B,6BACL,OAAOvs0B,IAEP,IAAI+s0B,EAAgBxt1B,KAAKwt1B,gBAGzB,OAFAA,EAAc1s1B,aAAa,WAAY,KACvC0s1B,EAAczs1B,SACP,EAIf,OADAf,KAAKku1B,kBAAkBx8jB,EAAU39P,GAAS5I,QAAO,IAC1C,IA/If,2BAiJI,SAAc3qB,EAAGK,GACb,GAAIb,KAAKst1B,UAAUht1B,OAAQ,CACvB,IAAI+vC,EAAOrwC,KAAKiC,gBAAgBpB,GAChCb,KAAKmrB,QAAS,EACdklB,EAAKvwC,QAAQuB,UAAUC,IAAI,iCAC3B,IAAI8s1B,EAAYpu1B,KAAKku1B,kBAAkBlu1B,KAAKos1B,wBAA0B,GAAG,GACzEgC,GAAaA,EAAUjj0B,QAAO,MAvJ1C,+BA0JI,SAAkB3qB,EAAGK,GAAO,WACxB,OAAOb,KAAKqu1B,mBAAkB,0BAAC,kDAA6B7t1B,EAAGK,MAAS,KA3JhF,8BA6JI,SAAiBL,EAAGK,GAAO,WACvB,OAAOb,KAAKqu1B,mBAAkB,0BAAC,iDAA4B7t1B,EAAGK,KAAQb,KAAKst1B,UAAUht1B,QAAQ,KA9JrG,oCAgKI,SAAuBE,EAAGK,GAAO,WAC7B,OAAOb,KAAKqu1B,mBAAkB,WAE1B,OADA,EAAKjm1B,mBAAmBvH,IACjB,IACRb,KAAKms1B,0BAA0B,KApK1C,qCAsKI,SAAwB3r1B,EAAGK,GAAO,WAC9B,OAAOb,KAAKqu1B,mBAAkB,WAE1B,OADA,EAAKhm1B,eAAexH,IACb,IACRb,KAAKos1B,2BA1KhB,gCA4KI,SAAmB5r1B,EAAGK,GAAO,WACzB,GAAIb,KAAKmrB,OAAQ,CACb,GAAInrB,KAAKos1B,0BAA4Bps1B,KAAKms1B,yBACtC,OAAO,EACX,IAAI3M,EAAQx/0B,KAAKst1B,UAAUtt1B,KAAKos1B,yBAC5B5M,GAASA,EAAMr0zB,UACfnrB,KAAKsu1B,eAAe9O,EAAOh/0B,QAG1BR,KAAKgt1B,8BAAgCht1B,KAAKus1B,eAAiBvs1B,KAAK6s1B,SAAShs1B,IAC9Eb,KAAK8s1B,UAAUjs1B,GACfb,KAAKqt1B,yBAA2B,WAC5B,EAAKkB,cAAc/t1B,EAAGK,KAI1Bb,KAAKuu1B,cAAc/t1B,EAAGK,GAE1B,OAAO,IA9Lf,gCAgMI,SAAmBL,EAAGK,GAClB,OAAOb,KAAKyE,mBAAmBjE,EAAGK,KAjM1C,gCAmMI,SAAmB2G,GACf,wEAAgCA,KApMxC,4BAsMI,SAAeA,GACX,oEAA4BA,KAvMpC,kCAyMI,SAAqB1H,EAASe,GAC1B,OAAO,IAAI2t1B,GAA2B1u1B,EAASE,UA1MvD,GAAiD8H,GAAAA,mCA6M3C0m1B,GAAAA,SAAAA,iCACF,WAAY1u1B,EAASixD,GAAiB,6BAClC,cAAMjxD,IACDA,QAAUA,EACf,EAAKixD,gBAAkBA,EACvB,EAAK09xB,cAAgB,WACjB,EAAK19xB,gBAAgB1uD,aAAaK,YAAWyI,EAAAA,GAAAA,iBAAgB,+DAAgE,0EAC7H,EAAKrL,QAAQuB,UAAUG,OAAO,iCAC1B,EAAKuvD,gBAAgB5lC,QACrB,EAAK4lC,gBAAgBx1B,QAEzB,EAAKw1B,gBAAgB5lC,QAAS,GAElCrrB,EAAQY,iBAAiB,QAAS,EAAK+t1B,eAZL,wCActC,WACIzu1B,KAAKF,QAAQK,oBAAoB,QAASH,KAAKyu1B,gBAC/C,6DAjBFD,CAAmC3u1B,GAAAA,iCC7M9B6u1B,GAAyBhm1B,GAAAA,YAAc,GACvCim1B,GAAkBjm1B,GAAAA,YAAc,GAGhCkm1B,IAAsBlt1B,EAAAA,GAAAA,iCAA+B,GACrDmt1B,IAAiBnt1B,EAAAA,GAAAA,gCAA+B,CACvDot1B,aAAc,SAACrjzB,EAASwzB,GAAsC,IAAzBp0B,EAAyB,uDAAhB,GAAI/qC,EAAY,uCAC1Dm/D,IAAeC,EAAAA,GAAAA,aAAYzzB,EAAQ96B,OAAOk6B,EAAOvqC,aAAS8X,OAAWA,OAAWA,OAAWA,EAAWtY,IACtGkiD,EAAAA,GAAAA,oBAAmBvW,GAAS,IAEhCsjzB,eAAgB,SAACtjzB,EAASwzB,EAAan/D,GAAcm/D,IAAeC,EAAAA,GAAAA,aAAYzzB,EAASkzB,GAAAA,WAAAA,QAAoB,SAAOvmD,OAAWA,EAAWtY,IAC1Ikv1B,eAAgB,SAACvjzB,EAASwzB,EAAan/D,GAAcm/D,IAAeC,EAAAA,GAAAA,aAAYzzB,OAASrzB,OAAWA,OAAWA,OAAWA,EAAWtY,MAE9Hmv1B,IAAavt1B,EAAAA,GAAAA,gCAA+B,cAC5Cwt1B,IAA2Bxt1B,EAAAA,GAAAA,gCAA+B,IAC1Dyt1B,IAA0Bzt1B,EAAAA,GAAAA,gCAA+B,IACzD0t1B,IAAe1t1B,EAAAA,GAAAA,gCAA+B,KAC9C2t1B,IAAU3t1B,EAAAA,GAAAA,gCAA+B,OACzC4t1B,IAAuB5t1B,EAAAA,GAAAA,gCAA+B,IACtD6t1B,IAA6B7t1B,EAAAA,GAAAA,gCAA+B,KCf1D8t1B,GAAb,qFACI,SAAe3h1B,EAAM2M,GAAO,YACxBymC,EAAAA,GAAAA,0BAAyBzmC,EAAO,CAC5BmnC,IAAK,WACD,EAAK8tyB,YAAW,IAEpB7tyB,UAAW,WACP,EAAK6tyB,YAAW,UAPhC,KAYaC,GAAb,0CACI,WAAYnrzB,EAAO0iB,EAAWwkJ,EAAYl+K,EAAMvR,GAAQ,uBACpD,gBACK2N,SAAW,+BAChB,EAAKgm0B,UAAY,kBAAM,EAAKprzB,MAAMorzB,aAClC,EAAKvlV,UAAW,EAChB,EAAKj/e,OAASziB,GAAAA,YAAc,GAC5B,IAAIkn1B,EAAarrzB,EAAMv4B,QAAQ6j1B,aAC3B5x0B,EAAQ,CAAE6K,IAAK,kBAAM8m0B,EAAW9m0B,OACpC,IAAIorB,GAAAA,iBAAkBnV,YAAY9gB,EAAO3C,KAAK+6E,MAAMu5vB,EAAW3x0B,OAAQg+zB,IACvE,IAAIrryB,EAAgB,IAAIC,GAAAA,cAAc5yB,EAAOvV,GAAAA,aAAgBkn1B,EAAWn8yB,YACpEtlB,EAAUyiB,EAAcc,cACxBo+yB,EAAkB75yB,SAAS9nB,EAAO,YAAkB8nB,SAAS9nB,EAAO,eACzB,SAA3CyiB,EAAciI,YAAd,YACAi3yB,GAAmB7x0B,EAAK,eAEsB,SAA9C2yB,EAAciI,YAAd,eACAi3yB,GAAmB7x0B,EAAK,eAE5B,EAAK8x0B,iBAAmB,WACpB,MAAO,CACHj30B,KAAwB,IAAnBkD,EAAOzQ,OAAOoS,EAAW3B,EAAOzK,OAAS,IAC9CmH,MAAyB,IAAnBsD,EAAOzQ,OAAOyF,EAAWgL,EAAO1K,MAAQ,MAGtD,EAAK0+0B,UAAY,kBAAMti1B,GAAAA,OAAS,GAAIkjC,EAAcO,UAAWP,EAAcQ,eAAgBR,EAAcU,qBACzG,EAAK/jB,KAAOA,EACZ,EAAKgX,MAAQA,OACcnsB,GAAvBw30B,EAAWxlV,WACX,EAAKA,SAAWwlV,EAAWxlV,UAE/B,EAAKqlV,WAAa,SAACQ,GACfpt1B,YAAW,WACHot1B,EACIn0zB,EAAckmzB,aACdlmzB,EAAckmzB,aAAaz9yB,GAG3BA,EAAM09yB,UAAU19yB,EAAM29yB,gBAI1B39yB,EAAM29yB,aAAa39yB,EAAM09yB,aAE7B,EAAK92zB,QAAO,KACb,IAEP,IAAI3I,EAASo/zB,GAAuBxz0B,WAAWoU,OAAO+hB,EAAM4nC,cACxDrwC,EAAgBpuB,GAAAA,QAAS,EAAM,GAAI8U,GAAUA,EAAOpI,SAAW,IACnE,EAAKvM,KAAO,CACRjM,MAAO2iC,EAAM29yB,aACbuN,WAAY,EAAKA,WACjB/tyB,eAAgB,EAAKA,eACrBsuyB,UAAW,EAAKA,UAChB510B,QAAS0hB,EACTpU,WAAY,SAACib,GAAsB,OAAOj1B,GAAAA,OAAS,GAAI,EAAKG,KAAKuM,QAASuoB,KAE9E,IAAIutzB,KAAoB1t0B,IAAUA,EAAOmH,UAAgC,gCAApBnH,EAAOmH,UAC5D,IAAKum0B,EAAgB,CACjB,IAAItp0B,GAAO,UACX,EAAK/Y,KAAKuM,QAAU1M,GAAAA,QAAS,EAAM,GAAIouB,EAAe,CAClDl6B,MAAO2iC,EAAM29yB,aACbnwuB,WAAY,SAACvxG,GACTomB,EAAK6o0B,YAAW,MA9DwB,OAmEhD,EAAKrj0B,eADL5J,EACsBA,EAAOmH,UAAY,0BAGnB,0BAE1B,EAAK2mmB,eAAiB5nnB,GAAAA,cAAgB,WAClC,OAAOgF,GAAAA,OAAS,CACZ4D,MAAO0K,EAAO1K,MAAQ,KACtBC,OAAQyK,EAAOzK,OAAS,KACxB,cAAgByK,EAAOzK,OAASu+0B,EAAmB,KACnDh30B,IAAkB,IAAbkD,EAAOlD,IAAY2yL,EAAa,IACrC/yL,KAAoB,IAAdsD,EAAOtD,KAAauuC,EAAY,IACtC/Y,OAAQ,EAAK3J,MAAMkyG,WAAa,OAAS,QAC1C,EAAKtrH,WAAa,EAAKwk0B,YAAc/+yB,EAAciI,YAAc,CAAEwC,OAAQ,QAAU60yB,GAAkB,EAAK/k0B,UAAe,EAAKwk0B,cAAgB,EAAKxk0B,SAAY,CAAEgD,QAAS,GAAMyiB,EAAcc,cAAe,CAAE,eAAgB,mBAExO,EAAKwH,YAAcxwC,GAAAA,cAAgB,WAC/B,GAAIuV,EAAK,cAAoB,GAA4B,SAAvBA,EAAK,UACnC,MAAO,CACHvF,KAAM,IAAMuF,EAAK,cAAoB,KACrCnF,IAAK,IAAMmF,EAAK,cAAoB,KACpC07B,aAAwC,EAAzB17B,EAAK,cAAwB,EAAK,KACjD27B,cAAyC,EAAzB37B,EAAK,cAAwB,EAAK,SAxFV,EAD5D,6CA8FI,SAAevE,EAAWlZ,GACtB,IAAIR,KAAKukC,MAAMkyG,aAAcz2I,KAAKmrB,SAAlC,CAGA,IAAItd,EAAO6L,EAAU7L,KACjBA,GAAQA,EAAKuM,SAAWvM,EAAKuM,QAAQusT,aACrC94T,EAAKuM,QAAQusT,YAAY3mU,KAAK6N,MAElC7N,KAAKmrB,QAAO,GACZ,IAAIgl0B,GAAiB,EACjBz20B,EAAUU,SAAWV,EAAUU,QAAQg20B,gBACvCD,EAAiBz20B,EAAUU,QAAQg20B,cAAcpw1B,KAAK6N,KAAMH,GAAAA,GAAAA,YAAiBlN,GAAKA,EAAEkO,eAAes7D,QAAQnqD,IAAI,KAE9Gsw0B,GACDE,GAAiB7v1B,GAAKA,EAAEkO,oBA5GpC,GAA+C8g1B,IAgHxC,SAASa,GAAiBzp1B,GAC7B,IAAI9G,EAAU4N,GAAAA,GAAAA,YAAiB9G,GAAQyV,KAAK,SAASurC,GAAG,GAAG,GACtD9nD,IACDA,EAAU4N,GAAAA,GAAAA,YAAiB9G,GAAQyV,KAAK,YAAYurC,GAAG,GAAG,IAC9D9nD,EAAQiB,QACJjB,EAAO,mBACPA,EAAO,kBAAsBA,EAAO,MAAUQ,OAAQR,EAAO,MAAUQ,QClIxE,ICAIgw1B,GAcAC,GDdEC,GAAb,0CACI,WAAYjszB,EAAO0iB,EAAWwkJ,EAAYl+K,EAAMvR,GAAQ,uBACpD,gBACKuoB,MAAQA,EACb,EAAK5a,SAAW,oCAChB,EAAKwB,OAASziB,GAAAA,YAAc,GAC5B,IAAIkn1B,EAAarrzB,EAAMv4B,QAAQ6j1B,aAC3B5x0B,EAAQ,CAAE6K,IAAK,kBAAM8m0B,EAAW9m0B,OACpC,IAAIorB,GAAAA,iBAAkBnV,YAAY9gB,EAAO3C,KAAK+6E,MAAMu5vB,EAAW3x0B,OAAQg+zB,IACvE,IAAIrryB,EAAgB,IAAIC,GAAAA,cAAc5yB,EAAOvV,GAAAA,aAAgBkn1B,EAAWn8yB,YACpEq8yB,EAAkB75yB,SAASrF,EAAcc,cAAd,YAA6CuE,SAASrF,EAAcc,cAAd,eACjFmH,EAAYjI,EAAciI,YACC,SAA3BA,EAAS,YACTi3yB,GAAmB7x0B,EAAK,eAEM,SAA9B46B,EAAS,eACTi3yB,GAAmB7x0B,EAAK,eAE5B,EAAK+x0B,UAAY,kBAAMti1B,GAAAA,OAAS,GAAIkjC,EAAcO,UAAWP,EAAcQ,eAAgBR,EAAcU,qBACzG,EAAKm+yB,WAAa,SAACQ,GACfpt1B,YAAW,WACHot1B,EACA1rzB,EAAM09yB,UAAU19yB,EAAM29yB,gBAGtB39yB,EAAM29yB,aAAa39yB,EAAM09yB,aAE7B,EAAK92zB,QAAO,OAGpB,EAAKmlmB,eAAiB5nnB,GAAAA,cAAgB,WAClC,OAAOgF,GAAAA,OAAS,CACZ4D,MAAO0K,EAAO1K,MAAQ,KACtBC,OAAQyK,EAAOzK,OAAS,KACxB,cAAgByK,EAAOzK,OAASu+0B,EAAmB,KACnDh30B,IAAkB,IAAbkD,EAAOlD,IAAY2yL,EAAa,IACrC/yL,KAAoB,IAAdsD,EAAOtD,KAAauuC,EAAY,KACvCrW,EAAcO,UAAWP,EAAcQ,mBAE9C,IAAIq/yB,EAAsB,EACtBC,EAAkB,OACtB,CAAC,OAAQ,MAAO,QAAS,UAAUzw1B,SAAQ,SAACC,GACL,SAA/B24C,EAAU,SAAW34C,KACrBww1B,EAAkB73yB,EAAU,SAAW34C,GACvCuw1B,EAA+C,EAAzBxy0B,EAAK,kBAGnC,IAAI0y0B,EAAY,CACZ,OAAUD,EACV,aAAc,SACd,SAAY,WACZ,aAAc,aACd,eAAgB,eAEhBE,EAAsBrszB,EAAMv4B,QAAQ6j1B,aAAae,oBACrD,EAAKrmqB,MAAQ,GAEb,IADA,IAAIsmqB,EAAU,GACL9k1B,EAAI,EAAGA,EAAI6k1B,EAAoBtw1B,OAAQyL,IAC5C,EAAKw+K,MAAM3pL,KAAK,CACZqd,MAAOvQ,GAAAA,OAAS,CACZ4D,MAAOs/0B,EAAoB7k1B,GAAGuF,MAAQ,KACtCC,OAAQq/0B,EAAoB7k1B,GAAGwF,OAAS,KACxC,cAAgBq/0B,EAAoB7k1B,GAAGwF,OAASk/0B,EAAuB,KACvE330B,IAAK830B,EAAoB7k1B,GAAG+M,IAAM,KAClCJ,KAAMk40B,EAAoB7k1B,GAAG2M,KAAO,MACrCi40B,GACHhu1B,KAAM,KAEVku1B,EAAQD,EAAoB7k1B,GAAG+M,KAAO/M,EAE1C,IAAI+k1B,EAAYhq1B,OAAOC,KAAK8p1B,GAASvw1B,OACjCyw1B,EAAY,EAAKxmqB,MAAMjqL,OAASww1B,EAtEgB,OAuEpDN,EAAmCh0sB,QAAQ,EAAK+tC,MAAOtsK,EAAK,gBAAqBA,EAAM6K,MAAOyb,EAAM09yB,UAAUvx0B,OAAQog1B,EAAWC,GACjIxszB,EAAM09yB,UAAU9w0B,WAAU,SAAAoV,GACtBiq0B,EAAmCh0sB,QAAQ,EAAK+tC,MAAOtsK,EAAK,gBAAqBA,EAAM6K,MAAOvC,EAAUuq0B,EAAWC,MAEvH,EAAKxj0B,KAAOA,EA3EwC,EAD5D,6CA8EI,SAAe7T,EAAWlZ,GACjBR,KAAKukC,MAAMkyG,YAAez2I,KAAKmrB,WAChCnrB,KAAKmrB,QAAO,GACZkl0B,GAAiB7v1B,GAAKA,EAAEkO,mBAjFpC,sBAoFI,SAAe67K,EAAOlmJ,EAAevb,EAAKnmB,EAAMmu1B,EAAWC,GACvD,IAAK,IAAIxmwB,EAAI,EAAGA,EAAIggG,EAAMjqL,OAAQiqF,IAC9BggG,EAAMhgG,GAAG5nF,KAAO,GAEpB,IAAIqu1B,EAAgBrr0B,KAAK+iK,KAAK/lL,EAAKrC,OAASyw1B,GACxCE,EAAsBtu1B,EAAKrC,OAASyw1B,EACpCvntB,GAAY,EAEZA,EADoC,IAApCnlG,EAAcl+B,QAAQ,UACX2q1B,EAAYE,EAEkB,IAApC3szB,EAAcl+B,QAAQ,UAChBwf,KAAKo1B,OAAO+1yB,EAAYE,GAAiB,GAGzC,EAEf,IAAIE,GAAmB,EAEnBA,EADA7szB,EAAcl+B,QAAQ,SAAW,EACf2iB,EAAM,EAAKio0B,EAAYE,EAEpC5szB,EAAcl+B,QAAQ,UAAY,EACrBwf,KAAKo1B,OAAOg2yB,EAAYE,GAAuB,GAG/Cno0B,EAAOio0B,EAAYE,EAAuB,EAE5D1mwB,EAAIi/C,EAAWuntB,EAEnB,IAFA,IACIhl1B,EAAI,EACDA,EAAIpJ,EAAKrC,OAAS2w1B,EAAqBll1B,IAAKw+E,IAC3CA,GAAK,GAAKA,EAAIggG,EAAMjqL,SACpBiqL,EAAMhgG,GAAG5nF,KAAOA,EAAKoJ,IAG7B,KAAOA,EAAIpJ,EAAKrC,OAAQyL,IAAKw+E,IACrBA,GAAK,GAAKA,EAAIggG,EAAMjqL,SACpBiqL,EAAMhgG,EAAI2mwB,GAAiBvu1B,KAAOA,EAAKoJ,QAvHvD,GAAwDyj1B,KCCxD,SAAWc,GACPA,EAAWA,EAAU,aAAmB,GAAK,eAC7CA,EAAWA,EAAU,aAAmB,GAAK,eAC7CA,EAAWA,EAAU,SAAe,GAAK,WACzCA,EAAWA,EAAU,cAAoB,GAAK,gBAC9CA,EAAWA,EAAU,MAAY,GAAK,QACtCA,EAAWA,EAAU,YAAkB,GAAK,cAC5CA,EAAWA,EAAU,OAAa,GAAK,SACvCA,EAAWA,EAAU,MAAY,GAAK,QACtCA,EAAWA,EAAU,OAAa,GAAK,SACvCA,EAAWA,EAAU,KAAW,GAAK,OACrCA,EAAWA,EAAU,MAAY,IAAM,QAX3C,CAYGA,KAAeA,GAAa,KAE/B,SAAWC,GACPA,EAAWA,EAAU,UAAgB,GAAK,YAC1CA,EAAWA,EAAU,QAAc,GAAK,UACxCA,EAAWA,EAAU,cAAoB,GAAK,gBAHlD,CAIGA,KAAeA,GAAa,KAqBxB,IAAMY,GAAb,0CACI,WAAY5szB,EAAO0iB,EAAWwkJ,EAAYl+K,EAAM6j0B,GAAuB,uBACnE,gBACK7izB,QAAU7lC,GAAAA,YAAc,GAC7B,EAAK2o1B,uBAAyBD,EAC9B,EAAKzn0B,SAAW,8BAChB,EAAK4a,MAAQA,EACb,EAAKhX,KAAOA,EACZ,IAAIvR,EAAS,EAAKuoB,MAAMv4B,QAAQgQ,OAC5Bs10B,EAAc,EAAK/szB,MAAMv4B,QAAQ6j1B,aAAa0B,eAC9Czo0B,EAAM,EAAKyb,MAAMv4B,QAAQ6j1B,aAAap8yB,UATyB,OAUnE,EAAK68kB,eAAiB,WAClB,MAAO,CACH/+mB,OAAQyK,EAAOzK,OAAS,KACxBD,MAAO0K,EAAO1K,MAAQ,KACtBwH,IAAkB,IAAbkD,EAAOlD,IAAY2yL,EAAa,IACrC/yL,KAAoB,IAAdsD,EAAOtD,KAAauuC,EAAY,IACtC/Y,OAAQ,EAAK3J,MAAMkyG,WAAa,OAAS,YAGjD,EAAK+6sB,WAAa,WAOd,MANa,CACTjg1B,OAAQ+/0B,EAAY//0B,OAAS,KAC7BD,MAAOgg1B,EAAYhg1B,MAAQ,KAC3BwH,IAAKw40B,EAAYx40B,IAAM,KACvBJ,MAAOoQ,EAAO9M,EAAO1K,MAAQgg1B,EAAY540B,KAAO440B,EAAYhg1B,MAASgg1B,EAAY540B,MAAQ,OAIjG,EAAKjQ,aAAa7H,KAAK,EAAK6w1B,oBAAsB/o1B,GAAAA,cAAgB,WAC9D,IAAIgp1B,EAAkBntzB,EAAMv4B,QAAQ6j1B,aAAa8B,qBAAqBC,aAAahs1B,QAAO,SAAA1F,GAAI,OAAIA,EAAK8G,MAAQ,EAAKu9B,MAAM09yB,eAAa,GACvI,OAAKyP,EAAgB9v1B,MAnD1B,SAAmCiw1B,GACtC,IAAIC,EAAmB,GACvB,GAAID,EAAa,CACb,IAAIE,EAAaF,EAAYG,aACzBD,KACAD,EAAmB,CAAE/nU,WAAY,OAASgoU,EAAa,gBACvC,mBAAyB,gBACzCD,EAAgB,eAAqB,SAG7C,OAAOA,EA4CQG,CADW,IAAIjW,GAAY0V,EAAgB9v1B,MAAMsw1B,UAAWR,EAAgB9v1B,MAAM4mG,QAD9E,OAIf,EAAK//F,aAAa7H,KAAK,EAAKux1B,oBAAsBzp1B,GAAAA,cAAgB,WAC9D,OA7CL,SAA6BuV,EAAOk5E,EAAOi7vB,GAC9C,OAAK1k1B,GAAAA,cAAgB0k1B,GAIVh7zB,GAAAA,mBAAAA,oBAAuC,2BAA6BnZ,EAAQ,IAAMk5E,GAHlF,2BA2CIk7vB,CAAoB/B,GAAW/rzB,EAAMv4B,QAAQ6j1B,aAAa8B,qBAAqBW,YAAa/B,GAAW,EAAKhszB,MAAM09yB,aAAc,EAAKwP,2BApC7E,EAD3E,gDAwCI,WACQzx1B,KAAKukC,MAAM09yB,cAAgBsO,GAAWgC,QACtCvy1B,KAAKukC,MAAM09yB,UAAUsO,GAAWiC,WAGhCxy1B,KAAKukC,MAAM09yB,UAAUsO,GAAWgC,WA7C5C,uBAgDI,SAAU730B,EAAGla,GACLA,EAAEwG,KAAOyxB,GAAAA,aAAAA,OACTz4B,KAAKyy1B,qBAlDjB,oBAuDI,WACIzy1B,KAAKuuC,SAAQ,KAxDrB,qBA0DI,WACIvuC,KAAKuuC,SAAQ,KA3DrB,qBA6DI,SAAQ7zB,EAAGla,GACPA,EAAEoG,OAAO7F,QACTf,KAAKyy1B,mBACLjy1B,EAAE4G,oBAhEV,qBAkEI,WACI,OAAIpH,KAAKukC,MAAM09yB,cAAgBsO,GAAWgC,SAGtCvy1B,KAAKukC,MAAM09yB,cAAgBsO,GAAWiC,gBAA1C,IAtER,8BA0EI,WAAmB,WACXxy1B,KAAKukC,MAAMkyG,aAEVz2I,KAAKukC,MAAMmuzB,WAGY,IAAnB1y1B,KAAK8mS,YACV9mS,KAAKqx1B,yBAAyBpx1B,SAAQ,SAAA2B,GAC9BA,EAAM8w1B,YAAc,EAAKnuzB,MAAMmuzB,WAC/B9w1B,EAAMqg1B,UAAUsO,GAAWiC,cAGnCxy1B,KAAK2y1B,qBARL3y1B,KAAK2y1B,yBA9EjB,GAAgD3x1B,GAAAA,wBCpCzC,IAAM4x1B,GAAb,WACI,WAAY/mzB,EAAUgnzB,EAAO7xE,GAAQ,2BACjChhxB,KAAK6rC,SAAWA,EAChB7rC,KAAK6y1B,MAAQA,EACb7y1B,KAAKghxB,OAASA,EACdhhxB,KAAKg8C,YAAc,CACfC,KAAM,KACNluB,GAAI,MAER/tB,KAAKoe,QAAU,kBAAM,EAAKi+M,UAAY,EAAKA,YAC3Cr8N,KAAK4kB,UAAYlX,GAAAA,GAAAA,YAAiB1N,KAAK6rC,UACvC,IAAI4e,EAAY,SAAAjwC,GAAK,OAAI,EAAKqiC,WAAWriC,IACrCkwC,EAAU,SAAAlwC,GAAK,OAAI,EAAKsiC,SAAStiC,IACjCiiC,EAAY,SAAAjiC,GAAK,OAAI,EAAKkiC,WAAWliC,IACzCxa,KAAK6rC,SAASnrC,iBAAiB,YAAa+pD,GAC5CzqD,KAAK6rC,SAASnrC,iBAAiB,UAAWgqD,GAC1C1qD,KAAK6rC,SAASnrC,iBAAiB,YAAa+7C,GAC5Cz8C,KAAKq8N,SAAW,WACZ,EAAKxwL,SAAS1rC,oBAAoB,YAAasqD,GAC/C,EAAK5e,SAAS1rC,oBAAoB,UAAWuqD,GAC7C,EAAK7e,SAAS1rC,oBAAoB,YAAas8C,GAC/C,EAAK4/K,SAAW,KAChB,EAAK2kjB,OAAS,KACd,EAAK6xE,MAAQ,KACb,EAAKhnzB,SAAW,KAChB4e,EAAY,KACZC,EAAU,KACVjO,EAAY,MA3BxB,gDA8BI,WACI,OAAOj6C,SAASimC,iBAAmBjmC,SAASimC,gBAAgBxB,WAAczkC,SAAS+lC,MAAQ/lC,SAAS+lC,KAAKtB,YA/BjH,gCAiCI,WACI,OAAOzkC,SAASimC,iBAAmBjmC,SAASimC,gBAAgBzB,YAAexkC,SAAS+lC,MAAQ/lC,SAAS+lC,KAAKvB,aAlClH,qCAoCI,SAAwBxsB,GAChBxa,KAAK48C,WAAWlkC,KAAO8B,EAAM+zH,QAC7BvuI,KAAK+qD,mBAAmB1vC,IAAI,OAAQb,EAAM+zH,SAG1CvuI,KAAK+qD,mBAAmB1vC,IAAI,QAAS7Y,SAASimC,gBAAgB+2B,YAAchlD,EAAM+zH,SAElFvuI,KAAK48C,WAAW9jC,IAAM0B,EAAMg0H,QAC5BxuI,KAAK+qD,mBAAmB1vC,IAAI,MAAOb,EAAMg0H,SAGzCxuI,KAAK+qD,mBAAmB1vC,IAAI,SAAU7Y,SAASimC,gBAAgB4e,aAAe7sC,EAAMg0H,SAExF,IAAIjjI,EAASvL,KAAK4kB,UAAUrZ,SACxB6+C,EAAc,CACd1xC,MAAOu9B,SAASj2C,KAAK+qD,mBAAmB1vC,IAAI,SAAW9P,EAAOmN,KAAO1Y,KAAK8y1B,sBAAwB9y1B,KAAK4kB,UAAUtT,QAAU,IAC3HA,MAAOtR,KAAK+qD,mBAAmBz5C,QAAUtR,KAAK4kB,UAAUtT,QAAU,IAClEwH,KAAMm9B,SAASj2C,KAAK+qD,mBAAmB1vC,IAAI,QAAU9P,EAAOuN,IAAM9Y,KAAK+y1B,qBAAuB/y1B,KAAK4kB,UAAUrT,SAAW,IACxHA,OAAQvR,KAAK+qD,mBAAmBx5C,SAAWvR,KAAK4kB,UAAUrT,SAAW,KAEzE64C,EAAW,MAAYA,EAAY1xC,KAAO0xC,EAAY94C,MACtD84C,EAAW,OAAaA,EAAYtxC,IAAMsxC,EAAY74C,OAEtD,IADA,IAhEkB84C,EAAIC,EAgElBijyB,EAASvt1B,KAAK6y1B,MAAMtF,SACfxh1B,EAAI,EAAGA,EAAIwh1B,EAAOjt1B,OAAQyL,IAC1Bwh1B,EAAOxh1B,GAAGwh1B,QACXA,EAAOxh1B,GAAGof,QAnEAk/B,EAmEwB,CAC9B3xC,KAAMi9B,WAAW43yB,EAAOxh1B,GAAGin1B,OAC3Bl60B,IAAK68B,WAAW43yB,EAAOxh1B,GAAGkn1B,MAC1Bl10B,MAAO43B,WAAW43yB,EAAOxh1B,GAAGin1B,OAASr9yB,WAAW43yB,EAAOxh1B,GAAGmn1B,QAC1Dl10B,OAAQ23B,WAAW43yB,EAAOxh1B,GAAGkn1B,MAAQt9yB,WAAW43yB,EAAOxh1B,GAAGon1B,aAvEhD7oyB,EAwEXF,GAvEH1xC,KAAO2xC,EAAGtsC,OAClBusC,EAAGvsC,MAAQssC,EAAG3xC,MACd4xC,EAAGxxC,IAAMuxC,EAAGrsC,QACZssC,EAAGtsC,OAASqsC,EAAGvxC,SAEvB,wBAsEI,SAAW0B,GAAO,WACd,GAAKxa,KAAK48C,YAAe58C,KAAK6y1B,MAAM1n0B,WAAYyn0B,EAAiBxn1B,UAEzB,IAAhBoP,EAAM0iC,MAE1B,GAAKl9C,KAAKoz1B,qBAmBNpz1B,KAAKgrD,wBAAwBxwC,QAlB7B,GAAImL,KAAK23B,IAAIt9C,KAAK48C,WAAWlkC,KAAO8B,EAAM+zH,UAAY,GAAK5oH,KAAK23B,IAAIt9C,KAAK48C,WAAW9jC,IAAM0B,EAAMg0H,UAAY,EAAG,CAC3GoktB,EAAiBl30B,SAAU,EAC3B,IAAI230B,EAAqB3l1B,GAAAA,GAAAA,YAAiB,SAC1C2l1B,EAAmBh40B,IAAI,CAAE8K,SAAU,QAASrN,IAAK,IAAKkF,OAAQ,IAAKtF,KAAM,IAAKqF,MAAO,MACrF/d,KAAKoz1B,qBAAuBC,EAAmBp7zB,SAASz1B,SAAS+lC,MACjEvoC,KAAK+qD,mBAAqBr9C,GAAAA,GAAAA,YAAiB,SAASuqB,SAASj4B,KAAKoz1B,sBAClEpz1B,KAAK+qD,mBAAmB1vC,IAAIrb,KAAK48C,YACjC58C,KAAK+qD,mBAAmBtrC,SAAS,+CAC7Bua,GAAAA,QAAAA,UAAAA,kBACAh6B,KAAK+qD,mBAAmB1vC,IAAI,UAAW2e,GAAAA,QAAAA,UAAAA,mBAAuC,KAClFh6B,KAAKgrD,wBAAwBxwC,GAC7Bxa,KAAKg8C,YAAYC,KAAO,SAAAzhC,GAAK,OAAI,EAAKqiC,WAAWriC,IACjDxa,KAAKg8C,YAAYjuB,GAAK,SAAAvT,GAAK,OAAI,EAAKsiC,SAAStiC,IAC7ChY,SAAS+lC,KAAK7nC,iBAAiB,YAAaV,KAAKg8C,YAAYC,MAC7Dz5C,SAAS+lC,KAAK7nC,iBAAiB,UAAWV,KAAKg8C,YAAYjuB,OA1F/E,sBAkGI,SAASvT,GACLxa,KAAKoz1B,sBAAwBpz1B,KAAKoz1B,qBAAqB5x1B,SACvDxB,KAAKoz1B,qBAAuB,KAC5Bpz1B,KAAKg8C,YAAYC,MAAQz5C,SAAS+lC,KAAKpoC,oBAAoB,YAAaH,KAAKg8C,YAAYC,MACzFj8C,KAAKg8C,YAAYjuB,IAAMvrB,SAAS+lC,KAAKpoC,oBAAoB,UAAWH,KAAKg8C,YAAYjuB,IACrF/tB,KAAK48C,WAAa,KAClB/5C,YAAW,WACP+v1B,EAAiBl30B,SAAU,IAC5B,KA1GX,wBA4GI,SAAWlB,GACHo40B,EAAiBxn1B,WAGrBpL,KAAK48C,WAAa,CACdlkC,KAAM8B,EAAM+zH,QACZz1H,IAAK0B,EAAMg0H,QACXzwH,MAAOvb,SAASimC,gBAAgB+2B,YAAchlD,EAAM+zH,QACpDvwH,OAAQxb,SAASimC,gBAAgB4e,aAAe7sC,EAAMg0H,SAE1DxuI,KAAKghxB,OAAOhhxB,KAAK6y1B,MAAMxikB,gBAtH/B,KAyHAuikB,GAAiBl30B,SAAU,EAC3Bk30B,GAAiBxn1B,UAAW,EAC5B1C,GAAAA,gBAAAA,wBAA6C,CACzC6Q,KAAM,SAAUzZ,EAAS0Z,EAAeC,EAAaC,EAAWC,GAC5D,IAAIC,EAASJ,IAAiB850B,EAAkB5q1B,GAAAA,OAAUkR,GACtD6O,EAAY,IAAImq0B,GAAiB9y1B,EAASwz1B,EAAgBjjzB,KAAMijzB,EAAgBji0B,QACpF1wB,EAAAA,GAAAA,oBAAmBb,GAAS,WACxB2oB,EAAUrK,eCnIf,IAAMm10B,GAAb,0CACI,WAAYhvzB,EAAO0iB,EAAWwkJ,EAAYl+K,EAAMvR,GAAQ,MAChDnS,GADgD,gBAEpD,gBACK06B,MAAQA,EACb,EAAKhX,KAAOA,EACZ,EAAKvR,OAASA,EACd,EAAKw30B,YAAc,eACnB,EAAKC,aAAe,CAChB7s1B,OAAQ,EAAK4s1B,YACbtu0B,SAAU,EAAKsu0B,YACf1z0B,UAAW,EAAK0z0B,aAEpB,EAAK7p0B,SAAW,2BAChB,EAAKwB,OAASziB,GAAAA,YAAc,GAC5B,EAAKi60B,eAAiBj60B,GAAAA,YAAc,GACpC,IAAIkn1B,EAAarrzB,EAAMv4B,QAAQ6j1B,aAC3B5x0B,EAAQ,CAAE6K,IAAK,kBAAM8m0B,EAAW9m0B,OACpC,IAAIorB,GAAAA,iBAAkBnV,YAAY9gB,EAAO3C,KAAK+6E,MAAMu5vB,EAAW3x0B,OAAQg+zB,IACvE,IAAIrryB,EAAgB,IAAIC,GAAAA,cAAc5yB,EAAOvV,GAAAA,aAAgBkn1B,EAAWn8yB,YACxE,EAAKhrC,aAAa7H,KAAK,EAAK86C,UAAYhzC,GAAAA,UAAY,WAChD,OAAO67B,EAAM09yB,YAAYvmyB,aACzB,EAAKg4yB,SAAWhr1B,GAAAA,UAAY,WAC5B,OAAO67B,EAAM09yB,YAAYyR,aAE7B,IACIt50B,GADSwn0B,GAAuBxz0B,WAAWoU,OAAO+hB,EAAM4nC,eAAiBy1wB,GAAuBxz0B,WAAWoU,OAAO,sBACjGpI,QAzB+B,OA0BpD,EAAKuo0B,kBAAyD,QAAtC940B,EAAKuQ,EAAQso0B,2BAAwC,IAAP740B,OAAgB,EAASA,EAAG840B,iBAClG,EAAKG,SAAW1o0B,EAAQ0o0B,SACxB,EAAKxyN,eAAiB,WAClB,OAAO5inB,GAAAA,OAAS,CACZ6D,OAAQ,EAAKyK,OAAOzK,OAASgc,IAAS,KACtCjc,MAAO,EAAK0K,OAAO1K,MAAQic,IAAS,KACpC41B,OAAQ,EAAKh4B,SAAW,GAAK,EAC7BrS,IAAuB,IAAlB,EAAKkD,OAAOlD,IAAY2yL,EAAa,IAC1C/yL,KAAyB,IAAnB,EAAKsD,OAAOtD,KAAauuC,EAAY,KAC5CrW,EAAciI,YAAajI,EAAcc,gBAEhD,EAAKhhB,UAAYhjB,GAAAA,OAAS,CACtBim1B,OAAQ,SAAC9m0B,GAAD,OAAO,EAAK8m0B,OAAO9m0B,IAC3BmlF,UAAW,SAACnlF,GAAD,OAAO,EAAKmlF,UAAUnlF,IACjCklF,WAAY,SAACllF,GAAD,OAAO,EAAKkR,OAAOlR,KAChCzS,EAAQsW,WAzCyC,EAD5D,uCA4CI,WACI,OAAO1wB,KAAKukC,MAAM09yB,YAAYz5uB,QA7CtC,0BA+CI,WACI,OAAOxoG,KAAKukC,MAAM09yB,YAAYiQ,YAhDtC,qCAkDI,WACI,MAAO,CACH1pvB,MAAOxoG,KAAK4z1B,WACZ1B,UAAWly1B,KAAK6z1B,eAChBC,UAAWpr1B,GAAAA,WAAc1I,KAAK8i1B,UAC9BpnyB,UAAW17C,KAAK07C,UAChBg4yB,SAAU1z1B,KAAK0z1B,SACfhj0B,UAAW1wB,KAAK0wB,UAChBvF,OAAQnrB,KAAKmrB,OACboC,KAAMvtB,KAAKutB,KACXkm0B,aAAczz1B,KAAKyz1B,aACnB9Q,eAAgB3i1B,KAAK2i1B,kBA7DjC,uBAgEI,SAAUjo0B,EAAGla,GACLA,EAAEwG,IAAOyxB,GAAAA,aAAAA,QAjErB,uBAsEI,SAAU5L,GACN+l0B,GAAiBxn1B,UAAW,IAvEpC,oBAyEI,SAAOyhB,GACH+l0B,GAAiBxn1B,UAAW,IA1EpC,oBA4EI,SAAOyhB,GACH,IAAIzS,EAAUyS,EAAEkn0B,oBACZll1B,EAASnB,GAAAA,OAAS,GAAI1N,KAAKukC,MAAM09yB,YAAa7n0B,GAC5CvL,EAAOqj1B,YACTrj1B,EAAOqj1B,UAAiC,QAArBrj1B,EAAOqj1B,UAAsB,MAAQqB,EAA2BS,oBAEvF,IAAIC,EAAaj01B,KAAKukC,MAAM09yB,YACXn70B,OAAOC,KAAKkt1B,GAAY1x0B,MAAK,SAAAvR,GAC1C,SAAKnC,EAAOmC,KAAOij1B,EAAWjj1B,KAEvBnC,EAAOmC,KAAOij1B,EAAWjj1B,OAGhChR,KAAKukC,MAAM09yB,UAAUpz0B,GACzB+j1B,GAAiBxn1B,UAAW,MA1FpC,GAAgDpK,GAAAA,YA6FhDuy1B,GAA2BS,mBAAqB,MCjGzC,ICMIE,GAYAC,GDlBEC,GAAb,0CACI,aAAc,6BACV,eAASrs1B,YACJss1B,iBAAmB,qCACxB,EAAKC,uBAAyB,iDAC9B,EAAKC,mBAAqB,SAACz01B,GAAD,OAAa4N,GAAAA,GAAAA,YAAiB5N,GAASiK,QAAQ,IAAM,EAAKsq1B,mBACpF,EAAKG,iBAAmB,SAAC101B,GACrB,IAAI201B,EAAW,EAAKF,mBAAmBz01B,GAASuc,KAAK,eACrD,OAAOo40B,EAASn01B,OAASoI,GAAAA,QAAW+r1B,EAAS,IAAM,MAEvD,EAAKC,uBAAyB,SAAC501B,GAC3B,IAAI601B,EAAgBjn1B,GAAAA,GAAAA,YAAiB5N,GAASuc,KAAK,uBACnD,OAAOs40B,EAAcr01B,OAASoI,GAAAA,QAAWis1B,EAAc,IAAM,MAEjE,EAAKC,oBAAsB,SAACC,GACxBA,EAAmBt5zB,MAAM,EAAKu5zB,YAAYjD,YAAa,EAAKiD,YAAYp5yB,UAAW,EAAKo5yB,YAAYpB,SAAU,EAAKoB,YAAY5C,WAC/H,EAAK6C,cAAcF,EAAmBxR,UAE1C,EAAK0R,cAAgB,SAAC1R,GAClBA,EAAQ2R,aAAal8zB,OAAOuqzB,EAAQ4R,kBAAkB,EAAKpB,iBAC3DxQ,EAAQ2R,aAAatB,SAAS,EAAKA,YACnCrQ,EAAQ2R,aAAat5yB,UAAU,EAAKA,aACpC2nyB,EAAQ2R,aAAaxsvB,MAAM,EAAKorvB,YAChCvQ,EAAQtwjB,WAEZ,EAAKppQ,SAAW,iCAxBN,EADlB,4CA2BI,SAAc7pB,GACV,OAAOE,KAAKmrB,UAAYnrB,KAAKu01B,mBAAmBz01B,GAASiwN,SAAS/vN,KAAKs01B,0BA5B/E,wBA8BI,WAWI,OAVwB,MAApBt01B,KAAK801B,cACL901B,KAAK801B,YAAc,CACfjD,YAAa7x1B,KAAK4z1B,WAClB1B,UAAWly1B,KAAK6z1B,eAChBn4yB,UAAW17C,KAAK07C,YAChBg4yB,SAAU1z1B,KAAK0z1B,WACfnm0B,KAAMvtB,KAAKutB,KACX2n0B,QAASxs1B,GAAAA,YAAc,KAGxB1I,KAAK801B,cAzCpB,0BA2CI,WAAe,WACPK,EAAezs1B,GAAAA,YAAc,GA4BjC,OA3BA1I,KAAKo11B,UAAY,CACblo0B,YAAaltB,KACbq11B,UAAWr11B,KAAK801B,YAChB1u0B,gBAAiB,kCACjBgiL,UAAW,SAACtoM,GAAD,OAAa,EAAKw11B,cAAcx11B,IAC3Cy11B,kBAAmB,SAACz11B,GAAD,OAAa,EAAKy01B,mBAAmBz01B,IACxDm7O,QAASj7O,KAAK2i1B,eACd6S,YAAaL,EACbnk0B,QAAS,SAACxwB,GACN201B,GAAa,IAEjBpk0B,SAAU,SAACvwB,GACP,EAAKk01B,uBAAuBl01B,EAAE6tB,UAAUq4Z,eAAe,IAAI28Z,QAAQoS,iBAAiBC,oBACpF,EAAKX,cAAc,EAAKP,iBAAiBh01B,EAAEV,UAC3C0C,SAASkF,cAAT,OACA,EAAKyjB,QAAO,IAEhB0F,eAAgB,SAACrwB,GACb,EAAKu01B,cAAc,EAAKP,iBAAiBh01B,EAAEV,UAC3CU,EAAE6tB,WAAa7tB,EAAE6tB,UAAU+gV,mBAAmB,OAAO,SAAC10V,GAClD,EAAK060B,UAAUrk0B,SAASvwB,OAGhCm11B,gBAAiB,SAAC711B,EAASkM,GACvB,EAAK4o1B,oBAAoB,EAAKF,uBAAuB501B,MAGtDE,KAAKo11B,YAxEpB,4BA0EI,SAAe170B,EAAWlZ,GACtB,IAAKR,KAAKukC,MAAMkyG,WAAY,CACxB,IAAIm/sB,EAAe511B,KAAKu01B,mBAAmB/z1B,EAAEoG,QACxCgv1B,EAAa7loB,SAAS/vN,KAAKs01B,yBAC5BsB,EAAan20B,SAASzf,KAAKs01B,wBAC/Bt01B,KAAKmrB,QAAO,QA/ExB,GAAqDoo0B,IAmF1CsC,GAAoCzB,IC5E/C,SAAWF,GACPA,EAAeA,EAAc,QAAc,GAAK,UAChDA,EAAeA,EAAc,UAAgB,GAAK,YAClDA,EAAeA,EAAc,SAAe,GAAK,WACjDA,EAAeA,EAAc,WAAiB,GAAK,aACnDA,EAAeA,EAAc,aAAmB,GAAK,eACrDA,EAAeA,EAAc,YAAkB,GAAK,cACpDA,EAAeA,EAAc,WAAiB,GAAK,aACnDA,EAAeA,EAAc,aAAmB,GAAK,eACrDA,EAAeA,EAAc,YAAkB,GAAK,cATxD,CAUGA,KAAmBA,GAAiB,KAEvC,SAAWC,GACPA,EAAcA,EAAa,OAAa,GAAK,SAC7CA,EAAcA,EAAa,aAAmB,GAAK,eACnDA,EAAcA,EAAa,UAAgB,GAAK,YAChDA,EAAcA,EAAa,QAAc,GAAK,UAC9CA,EAAcA,EAAa,MAAY,GAAK,QALhD,CAMGA,KAAkBA,GAAgB,KAC9B,IAAI2B,GAAS,CAChBnn1B,aAAc,SAAUynC,UAAW,UAAW5zB,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa10B,YAAa,SAAUC,eAAgB,gDAAiDsmC,WAAY,SAAUtsC,KAAMq8D,GAAAA,SAAUG,YAAa,CACpO,CAAE/jE,MAAO,SAAUmjB,aAAc,SAAU5V,eAAgB,gDAC3D,CAAEvN,MAAO,eAAgBmjB,aAAc,gBAAiB5V,eAAgB,sDACxE,CAAEvN,MAAO,WAAYmjB,aAAc,YAAa5V,eAAgB,kDAChE,CAAEvN,MAAO,cAAemjB,aAAc,eAAgB5V,eAAgB,qDACtE,CAAEvN,MAAO,YAAamjB,aAAc,aAAc5V,eAAgB,mDAClE,CAAEvN,MAAO,UAAWmjB,aAAc,UAAW5V,eAAgB,iDAC7D,CAAEvN,MAAO,OAAQmjB,aAAc,OAAQ5V,eAAgB,8CACvD,CAAEvN,MAAO,QAASmjB,aAAc,QAAS5V,eAAgB,iDAGtD4m1B,GAAiB,CACxBpn1B,aAAc,iBAAkBynC,UAAW,kBAAmB5zB,OAAQohB,GAAAA,gBAAAA,UAA0B,YAAa10B,YAAa,YAAaC,eAAgB,mDAAoDsmC,WAAY,UAAWtsC,KAAMq8D,GAAAA,SAAUG,YAAa,CAC3P,CAAE/jE,MAAO,UAAWmjB,aAAc,UAAW5V,eAAgB,kDAC7D,CAAEvN,MAAO,UAAWmjB,aAAc,WAAY5V,eAAgB,kDAC9D,CAAEvN,MAAO,YAAamjB,aAAc,aAAc5V,eAAgB,oDAClE,CAAEvN,MAAO,WAAYmjB,aAAc,YAAa5V,eAAgB,mDAChE,CAAEvN,MAAO,aAAcmjB,aAAc,cAAe5V,eAAgB,qDACpE,CAAEvN,MAAO,eAAgBmjB,aAAc,gBAAiB5V,eAAgB,uDACxE,CAAEvN,MAAO,cAAemjB,aAAc,eAAgB5V,eAAgB,sDACtE,CAAEvN,MAAO,aAAcmjB,aAAc,cAAe5V,eAAgB,qDACpE,CAAEvN,MAAO,eAAgBmjB,aAAc,gBAAiB5V,eAAgB,uDACxE,CAAEvN,MAAO,cAAemjB,aAAc,eAAgB5V,eAAgB,wDAGjE6m1B,GAAb,0CACI,WAAYhq1B,EAAOnL,EAAOo11B,GAAc,6BACpC,gBACKC,gBAAiB,EACtB,EAAKC,QAAU,EACf,EAAK3yzB,OAASx3B,EACd,EAAKmq1B,OAASt11B,EACd,EAAKu11B,UAAY1t1B,GAAAA,WAAcsD,EAAMyqI,UACrC,EAAKhuI,aAAa7H,KAAK,EAAK61I,SAAW/tI,GAAAA,aAAgB,CACnD+H,KAAM,WACF,OAAO,EAAK2l1B,cAAgB1H,MAEhC990B,MAAO,SAACC,GACJ,EAAKul1B,UAAUvl1B,OAGvB,EAAK8tB,WAAaj2B,GAAAA,WAAcsD,EAAMi20B,WACtC,EAAKA,UAAYv50B,GAAAA,SAAY,CACzB+H,KAAM,WACF,OAAO,EAAKkuB,cAEhB/tB,MAAO,SAACC,GACJ,IAAIuwE,EAAS,EAAKziD,aAClB,EAAKA,WAAW9tB,GAChB,IAAIkT,EAAM,EAAKsy0B,qBAAL,UAA+Bj1wB,EAAQvwE,IACjDkT,EAAa,MAAPA,EAAclT,EAASkT,KACjBq9D,GACR,EAAKk1wB,kBAAkBvy0B,GAEvBA,IAAQlT,IACR,EAAK8tB,WAAW5a,GAChB,EAAKm+zB,aAAan+zB,OAI9B,EAAKm+zB,aAAex50B,GAAAA,WAAcsD,EAAMi20B,WACxC,EAAK0N,UAAYjn1B,GAAAA,WAAcsD,EAAM2j1B,WACrC,EAAK4G,cAAgBN,EApCe,EAD5C,gDAuCI,SAAkB1v0B,GAAU,WACxBvmB,KAAK2v1B,UAAU,MACX3v1B,KAAKk21B,gBACLl21B,KAAKu21B,cAAcC,oBAAoBjw0B,EAAUvmB,KAAKm21B,QAAQ/8zB,MAAK,SAACouB,GAChE,EAAKmoyB,UAAUnoyB,QA3C/B,iCA+CI,SAAoBjjB,EAAO68C,EAAQvwE,GAC/B,OAAOA,IAhDf,wBAkDI,WAAe,OAAO7Q,KAAKwjC,OAAO2oC,aAlDtC,gBAmDI,WAAO,OAAOnsE,KAAKwjC,OAAOv5B,KAnD9B,qBAoDI,WAAY,OAAOjK,KAAKwjC,OAAOkvzB,UApDnC,uBAqDI,WAAc,OAAO1y1B,KAAKwjC,OAAO6sP,YArDrC,kBAsDI,WAAS,OAAOrwR,KAAKwjC,OAAO7f,OAtDhC,mBAuDI,WACI,OAAOjW,GAAAA,OAAS,GAAI1N,KAAKwjC,OAAQ,CAC7BizG,SAAUz2I,KAAKy2I,SAAS/lI,OACxBux0B,UAAWji1B,KAAKii1B,UAAUvx0B,OAC1Bi/0B,UAAW3v1B,KAAK2v1B,UAAUj/0B,WA3DtC,6BA8DI,SAAgB6c,EAAM05B,EAAWwkJ,EAAY2lpB,EAAuBp10B,GAChE,MAAyB,UAArBhc,KAAKwjC,OAAO7f,KACL,IAAIwt0B,GAA2Bnx1B,KAAMinD,EAAWwkJ,EAAYl+K,EAAM6j0B,GAE/C,SAArBpx1B,KAAKwjC,OAAO7f,MACjB3jB,KAAKk21B,eAAiBl60B,EAAOzK,SAAWvR,KAAKwjC,OAAOxnB,OAAOzK,UAAYvR,KAAKwjC,OAAOqszB,aAAal1hB,aAC3F36T,KAAKk21B,gBACNl21B,KAAK2v1B,UAAU,MAEZ,IAAID,GAA0B1v1B,KAAMinD,EAAWwkJ,EAAYl+K,EAAMvR,IAE9C,kBAArBhc,KAAKwjC,OAAO7f,KACV,IAAI6s0B,GAAmCxw1B,KAAMinD,EAAWwkJ,EAAYl+K,EAAMvR,GAEvD,UAArBhc,KAAKwjC,OAAO7f,KACV,IAAIky0B,GAAkC711B,KAAMinD,EAAWwkJ,EAAYl+K,EAAMvR,QAD/E,MA5Eb,GAAkChb,GAAAA,YCrDrBy11B,GAAb,qJACI,SAAkBjp1B,GACd,OAAOA,IAASm50B,GAAmBh40B,eAF3C,gCAII,SAAmBnB,GACf,OAAO,MALf,GAA6C050B,ICClCwP,GAA6Bhp1B,GAAAA,OAAS,GAAIu40B,GAAe,CAChEtgxB,YAAaigxB,GAAoB,OAAO,GAAM,KAEvC+Q,GAA8Bjp1B,GAAAA,OAAS,GAAIw40B,GAAgB,CAClEvgxB,YAAaigxB,GAAoB,QAAQ,GAAM,KAE5C,SAASgR,GAA+B7y0B,GAC3C,OAAOrb,GAAAA,WAAc,wBAElB,SAASmu1B,GAA0B9y0B,GACtC,OAAOrb,GAAAA,WAAsB,mBAARqb,EAA2B,aAAeA,GAE5D,ICZI+y0B,GDYAC,GAA4B,CACnCpo1B,aAAcw30B,GAAex30B,aAAcynC,UAAW+vyB,GAAe/vyB,UAAWX,WAAY0wyB,GAAe1wyB,WAC3GjzB,OAAQ2j0B,GAAe3j0B,OAAQtT,YAAai30B,GAAej30B,YAAaC,eAAgBg30B,GAAeh30B,gBAEhG6n1B,GAAwBtp1B,GAAAA,OAAS,GAAIqp1B,GAA2B,CACvE5t1B,KAAM0t1B,GACNlxxB,YAAaigxB,GAAoB,QAAQ,KAElCqR,GAA8Bvp1B,GAAAA,OAAS,GAAIqp1B,GAA2B,CAC7EpxxB,YAAaigxB,GAAoB,QAAQ,GAAM,KAExCsR,GAA2B,CAClCvo1B,aAAc230B,GAAc330B,aAAcynC,UAAWkwyB,GAAclwyB,UAAWX,WAAY6wyB,GAAc7wyB,WACxGjzB,OAAQ8j0B,GAAc9j0B,OAAQtT,YAAao30B,GAAcp30B,YAAaC,eAAgBm30B,GAAcn30B,gBAE7Fgo1B,GAAuBzp1B,GAAAA,OAAS,GAAIwp1B,GAA0B,CACrE/t1B,KAAM0t1B,GACNlxxB,YAAaigxB,GAAoB,OAAO,KAEjCwR,GAA6B1p1B,GAAAA,OAAS,GAAIwp1B,GAA0B,CAC3EvxxB,YAAaigxB,GAAoB,OAAO,GAAM,KAEvCyR,GAA6B,CACpC1o1B,aAAc030B,GAAgB130B,aAAcynC,UAAWiwyB,GAAgBjwyB,UAAWX,WAAY4wyB,GAAgB5wyB,WAC9GjzB,OAAQ6j0B,GAAgB7j0B,OAAQtT,YAAam30B,GAAgBn30B,YAAaC,eAAgBk30B,GAAgBl30B,gBAEnGmo1B,GAAyB5p1B,GAAAA,OAAS,GAAI2p1B,GAA4B,CACzElu1B,KAAM0t1B,GACNlxxB,YAAaigxB,GAAoB,SAAS,KAEnC2R,GAA+B7p1B,GAAAA,OAAS,GAAI2p1B,GAA4B,CAC/E1xxB,YAAaigxB,GAAoB,SAAS,GAAM,KAEzC4R,GAA4B,CACnC7o1B,aAAc430B,GAAe530B,aAAcynC,UAAWmwyB,GAAenwyB,UAAWX,WAAY8wyB,GAAe9wyB,WAC3GjzB,OAAQ+j0B,GAAe/j0B,OAAQtT,YAAaq30B,GAAer30B,YAAaC,eAAgBo30B,GAAep30B,gBAEhGso1B,GAAwB/p1B,GAAAA,OAAS,GAAI8p1B,GAA2B,CACvEru1B,KAAM0t1B,GACNlxxB,YAAaigxB,GAAoB,QAAQ,KAElC8R,GAA8Bhq1B,GAAAA,OAAS,GAAI8p1B,GAA2B,CAC7E7xxB,YAAaigxB,GAAoB,QAAQ,GAAM,KEtD/C+R,GAA4C,GAAG/7zB,OAAO0szB,IAC7CsP,GAAb,2IAII,WAEI,OADmB531B,KAAK631B,mBACJj8zB,OAAO+7zB,MANnC,8BAQI,WACI,MAAO,CAACX,OAThB,qBACI,SAAcp11B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA8C2rwB,IAYjCsP,GAAb,0CAOI,WAAY9r1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR2nzB,eAAeyQ,GAA+B,EAAKzQ,iBAApCyQ,IAFO,EAPnC,+CACI,WACI,MAAO,CAACK,MAFhB,gCAII,SAAmBzp1B,GACf,OAAO,iEAAyBA,IAASA,IAASyp1B,GAA4Bto1B,iBALtF,GAAoDip1B,ICbhDG,GAA6C,GAAGn8zB,OAAO6szB,IAC9CuP,GAAb,2IAII,WAEI,OADmBh41B,KAAK631B,mBACJj8zB,OAAOm8zB,MANnC,8BAQI,WACI,MAAO,CAACT,OAThB,qBACI,SAAc111B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA+C8rwB,IAYlCsP,GAAb,0CAOI,WAAYjs1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR6nzB,gBAAgBuQ,GAA+B,EAAKvQ,kBAApCuQ,IAFM,EAPnC,+CACI,WACI,MAAO,CAACW,MAFhB,gCAII,SAAmB/p1B,GACf,OAAO,iEAAyBA,IAASA,IAAS+p1B,GAA6B5o1B,iBALvF,GAAqDqp1B,ICbjDE,GAA2C,GAAGt8zB,OAAOgtzB,IAC5CuP,GAAb,2IAII,WAEI,OADmBn41B,KAAK631B,mBACJj8zB,OAAOs8zB,MANnC,8BAQI,WACI,MAAO,CAAClB,OAThB,qBACI,SAAcp11B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA6CiswB,IAYhCsP,GAAb,0CAOI,WAAYps1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR2nzB,eAAeyQ,GAA+B,EAAKzQ,iBAApCyQ,IAFO,EAPnC,+CACI,WACI,MAAO,CAACK,MAFhB,gCAII,SAAmBzp1B,GACf,OAAO,iEAAyBA,IAASA,IAASyp1B,GAA4Bto1B,iBALtF,GAAmDwp1B,ICZ/CE,GAA2C,GAAGz8zB,OAAO2rzB,IAC5C+Q,GAAb,2IAII,WAEI,OADmBt41B,KAAK631B,mBACJj8zB,OAAOy8zB,MANnC,8BAQI,WACI,MAAO,CAACpS,OAThB,qBACI,SAAcrk1B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA6C2twB,IAYhC+N,GAAb,0CAOI,WAAYvs1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACRynzB,cAAc2Q,GAA+B,EAAK3Q,gBAApC2Q,IAFQ,EAPnC,+CACI,WACI,MAAO,CAACF,MAFhB,gCAII,SAAmBlp1B,GACf,OAAO,iEAAyBA,IAASA,IAASkp1B,GAA2B/n1B,iBALrF,GAAmD2p1B,ICd/CE,GAA2C,GAAG58zB,OAAOkvzB,GAAuCD,IACnF4N,GAAb,2IAII,WAEI,OADmBz41B,KAAK631B,mBACJj8zB,OAAO48zB,MANnC,8BAQI,WACI,MAAO,CAACrB,OAThB,qBACI,SAAcv11B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA6CmuwB,IAYhC0N,GAAb,0CAOI,WAAY1s1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR8nzB,cAAcsQ,GAA+B,EAAKtQ,gBAApCsQ,IAFQ,EAPnC,+CACI,WACI,MAAO,CAACQ,MAFhB,gCAII,SAAmB5p1B,GACf,OAAO,iEAAyBA,IAASA,IAAS4p1B,GAA2Bzo1B,iBALrF,GAAmD8p1B,ICb/CE,GAA4C,GAAG/8zB,OAAOivzB,IAC7C+N,GAAb,2IAII,WAEI,OADmB541B,KAAK631B,mBACJj8zB,OAAO+8zB,MANnC,8BAQI,WACI,MAAO,CAAClB,OAThB,qBACI,SAAc711B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA8CquwB,IAYjC2N,GAAb,0CAOI,WAAY7s1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR+nzB,eAAeqQ,GAA+B,EAAKrQ,iBAApCqQ,IAFO,EAPnC,+CACI,WACI,MAAO,CAACc,MAFhB,gCAII,SAAmBlq1B,GACf,OAAO,iEAAyBA,IAASA,IAASkq1B,GAA4B/o1B,iBALtF,GAAoDiq1B,ICXhDE,GAA4C,CAC5C9T,GACAG,GACAsC,GACAnC,GACAD,GACAW,GACAR,GACAmC,IAESoR,GAAb,2IAII,WAEI,OADmB/41B,KAAK631B,mBACJj8zB,OAAOk9zB,MANnC,8BAQI,WACI,MAAO,CAAC5S,OAThB,qBACI,SAActk1B,EAAO48B,EAAYq+C,GAC7B,OAAOr+C,EAAWC,UAAU78B,EAAOA,EAAMmN,UAAW8tE,OAF5D,GAA8CirwB,IAYjCkR,GAAb,0CAOI,WAAYht1B,EAAOwyB,GAAY,6BAC3B,cAAMxyB,EAAOwyB,IACR0nzB,eAAe0Q,GAA+B,EAAK1Q,iBAApC0Q,IAFO,EAPnC,+CACI,WACI,MAAO,CAACD,MAFhB,gCAII,SAAmBnp1B,GACf,OAAO,iEAAyBA,IAASA,IAASmp1B,GAA4Bho1B,iBALtF,GAAoDoq1B,IC1BvCE,GAAb,0CACI,WAAYrq0B,EAAMxG,EAAO+T,EAAgB7a,GAAc,6BACnD,cAAMsN,EAAMxG,EAAO+T,EAAgB7a,IAC9B430B,cAAe,EAF+B,EAD3D,0CAKI,SAAY/y0B,EAAUvkB,GAClB,IAAIusB,GAAU,0DAAkBhI,EAAUvkB,GAG1C,OAFAusB,EAAQ,WAAahI,GAAY,GACjCgI,EAAQ,kBAAoB,EACrBA,IATf,oCAWI,WACI,IAAI2N,EAAgB97B,KAAK87B,cAQzB,OAPA97B,KAAKuJ,WAAWuyB,EAAcsuW,UAAYtuW,EAAcq9zB,cACxDn51B,KAAKo51B,kBAAoBt9zB,EAAcq9zB,aACvCn51B,KAAKwJ,YAAYsyB,EAAcu9zB,kBAC/Br51B,KAAKs51B,YAA6C,IAAhCx9zB,EAAcy9zB,cAChCv51B,KAAKw51B,iBAAiD,eAA9B19zB,EAAcqzL,YACtCnvN,KAAKooB,OAAS,EACdpoB,KAAKqoB,eAAc,IACnB,0EApBR,GAA2CiU,GAAAA,oBCA9Bm9zB,GAAb,yJACI,SAAsB3o1B,GAClB,IAAI4o1B,EAAqB5o1B,EAAK4o1B,mBAI9B,OAHKA,IACDA,EAAqB5o1B,GAElB4o1B,EAAmBC,cAAcC,eANhD,GAAqC39zB,GAAAA,QCG1B49zB,GAAwB,CAC/BC,WAAY,CACRj2zB,OAAQ,kBAAmBjB,gBAAiB,CACxCgib,oBAAqB,SAACp+b,GAClB,IAAImsb,EAAsBnsb,EAAKoO,cAAct0B,OAC7C,GAAIqyc,IAD8Dnsb,EAAKxa,MAAMN,MAAMpL,OAC3C,CACpC,IAAI29T,GAAe9yT,EAAAA,GAAAA,iBAAgB,qBAAsB,sEACzDqb,EAAK7jB,MAAO62E,EAAAA,GAAAA,eAAcykP,EAAc00I,OAKxDonZ,YAAa,CAAEl2zB,OAAQ,iBAAkBE,OAAQ,kCAAmCjjB,QAAS,iCAAkCgjB,WAAYm1zB,IAC3Ie,YAAa,CAAEn2zB,OAAQ,wBACvBo2zB,mBAAoB,CAAEl2zB,OAAQ,4BAC9Bm2zB,UAAW,CAAEr2zB,OAAQ,gBACrBs2zB,gBAAiB,CAAEt2zB,OAAQ,iBAAkBE,OAAQ,6BACrD61zB,WAAY,CAAE/1zB,OAAQ,kBAAmBC,WAAY21zB,KClB5CW,GAAb,0CACI,WAAYpu1B,EAAOwyB,EAAY67zB,GAAa,6BACxC,cAAMru1B,EAAOwyB,IACR67zB,YAAcA,EACnB,EAAKC,UAAY5x1B,GAAAA,aAHuB,EADhD,sCAMI,WACI,OACI,CAAEiG,aAAc,YAAa8mC,WAAY,KAAMjzB,OAAQq30B,GAAsBD,WAAY1q1B,YAAa,YAAaC,eAAgB,kDADvI,2EAPR,+BAYI,SAAkB3B,GACd,MAAgB,cAATA,GAAwBxN,KAAKq61B,cAAc/51B,WAb1D,GAA6C0p1B,ICUhCuQ,GAAb,0CACI,WAAYF,GAAa,6BACrB,gBACKA,YAAcA,EAFE,EAD7B,oDAKI,SAAsBG,GAClB,OAAO,SAACxu1B,EAAOwyB,GACX,OAAO,IAAIg8zB,EAAWxu1B,GAAS,GAAIwyB,MAP/C,8BAUI,WACI,OAAQx+B,KAAKy61B,KAAOz61B,KAAKy61B,IAAIpQ,oBACrBrq1B,KAAK061B,MAAQ161B,KAAK061B,KAAKrQ,oBACvBrq1B,KAAK261B,KAAO361B,KAAK261B,IAAItQ,qBAbrC,qBAeI,WAAU,WACN,MAAO,CACH,CAAE170B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBnE,IAA0B14wB,aAAc04wB,GAAwB7O,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACnR,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsBhD,IAA2B75wB,aAAc65wB,GAAyBhQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACzR,CAAEj1B,aAAc,QAASynC,UAAW,QAASlnC,YAAa,uBAAwBC,eAAgB,6CAA8ChG,KAAMnJ,KAAK461B,sBAAsB5C,IAA4Bj6wB,aAAci6wB,GAA0BpQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC/R,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBzC,IAA0Bp6wB,aAAco6wB,GAAwBvQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACnR,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM,SAAC6C,EAAOwyB,GAAR,OAAuB,IAAI47zB,GAAwBpu1B,EAAOwyB,EAAY,EAAK67zB,cAAct8wB,aAAciswB,GAAiBpC,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAChT,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBtC,IAA0Bv6wB,aAAcu6wB,GAAwB1Q,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACnR,CAAEj1B,aAAc,oBAAqBynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsBlQ,IAAoB3swB,aAAc2swB,GAAkB9C,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACxR,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBnC,IAA0B16wB,aAAc06wB,GAAwB7Q,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACnR,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsBhC,IAA2B76wB,aAAc66wB,GAAyBhR,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACzR,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsB7B,IAA2Bh7wB,aAAcg7wB,GAAyBnR,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,sBA1BrS,GAA0CwnzB,IA8B7ByP,GAAb,2IACI,WAAU,WACN,MAAO,CACH,CAAEls1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsB9C,IAAiC/5wB,aAAc65wB,GAAyBhQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC/R,CAAEj1B,aAAc,QAASynC,UAAW,QAASlnC,YAAa,uBAAwBC,eAAgB,6CAA8ChG,KAAMnJ,KAAK461B,sBAAsB3C,IAAkCl6wB,aAAci6wB,GAA0BpQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACrS,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBxC,IAAgCr6wB,aAAco6wB,GAAwBvQ,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACzR,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAM,SAAC6C,EAAOwyB,GAAR,OAAuB,IAAI47zB,GAAwBpu1B,EAAOwyB,EAAY,EAAK67zB,cAAct8wB,aAAciswB,GAAiBpC,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAChT,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBrC,IAAgCx6wB,aAAcu6wB,GAAwB1Q,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACzR,CAAEj1B,aAAc,MAAOynC,UAAW,MAAOlnC,YAAa,qBAAsBC,eAAgB,2CAA4ChG,KAAMnJ,KAAK461B,sBAAsBlC,IAAgC36wB,aAAc06wB,GAAwB7Q,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBACzR,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsB/B,IAAiC96wB,aAAc66wB,GAAyBhR,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,iBAC/R,CAAEj1B,aAAc,OAAQynC,UAAW,OAAQlnC,YAAa,sBAAuBC,eAAgB,4CAA6ChG,KAAMnJ,KAAK461B,sBAAsB5B,IAAiCj7wB,aAAcg7wB,GAAyBnR,OAAQpl0B,OAAQohB,GAAAA,gBAAAA,UAA0B,sBAV3S,GAAgD22zB,iBZvChD,SAAWzD,GACPA,EAAgBA,EAAe,KAAW,GAAK,OAC/CA,EAAgBA,EAAe,UAAgB,GAAK,YACpDA,EAAgBA,EAAe,WAAiB,GAAK,aAHzD,CAIGA,KAAoBA,GAAkB,KAClC,IAAMgE,GAAb,WACI,WAAYz7zB,EAAU07zB,GAAY,2BAC9B/61B,KAAK+61B,WAAaA,EAClBj01B,OAAOC,KAAKs4B,GAAY,IAAIp/B,SAAQ,SAACuN,GACjC,EAAKA,GAAQ6xB,EAAS7xB,MAJlC,yCA+BI,SAAWms1B,EAAeqB,EAAiBC,GACvCj71B,KAAKk71B,eAAiBvB,EACtB351B,KAAKm71B,iBAAmBH,EACxBh71B,KAAKo71B,aAAeH,IAlC5B,6BAoCI,SAAgBt41B,EAAMu5G,GAClB,OAAOn5C,EAAAA,GAAAA,MAAKksxB,KAAc,WAAYnroB,mBAAmBxoM,KAAKC,UAAU,CACpE5Y,KAAMA,EACNu+0B,WAAYlh1B,KAAKk71B,eAAeha,WAChCma,UAAWr71B,KAAKo71B,aAAaC,YAC7Bp6qB,UAAWjhL,KAAKo71B,aAAaE,iBAC7BC,SAAUv71B,KAAKo71B,aAAaG,cAC3BT,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kCAAmC,sDAAuD+wG,KA3C1L,yBA6CI,SAAYv5G,EAAMu5G,GACd,OAAOn5C,EAAAA,GAAAA,MAAKksxB,KAAc,cAAenroB,mBAAmBxoM,KAAKC,UAAU,CACvE5Y,KAAMA,EACNu+0B,WAAYlh1B,KAAKk71B,eAAeha,WAChCma,UAAWr71B,KAAKo71B,aAAaC,YAC7Bp6qB,UAAWjhL,KAAKo71B,aAAaE,oBAC5BR,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kCAAmC,sDAAuD+wG,KAnD1L,6BAqDI,SAAgBu/uB,GAAyE,IAAtD9z1B,EAAsD,uDAAzC,EAAG+z1B,EAAsC,uDAAd,IAAMx/uB,EAAQ,uCACrF,OAAOn5C,EAAAA,GAAAA,MAAKksxB,KAAc,kBAAmBnroB,mBAAmBxoM,KAAKC,UAAU,CAC3Ekg1B,kBAAmBA,EACnBva,WAAYlh1B,KAAKk71B,eAAeha,WAChCv50B,WAAYA,EACZ+z1B,sBAAuBA,KACtBZ,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kCAAmC,sDAAuD+wG,KA3D1L,wBA6DI,SAAWu/uB,EAAmBv/uB,GAC1B,OAAOn5C,EAAAA,GAAAA,MAAKksxB,KAAc,aAAcnroB,mBAAmBxoM,KAAKC,UAAU,CACtEkg1B,kBAAmBA,EACnBva,WAAYlh1B,KAAKk71B,eAAeha,cAC/B4Z,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kCAAmC,sDAAuD+wG,KAjE1L,uBAmEI,SAAUjyG,IACN84D,EAAAA,GAAAA,MAAKksxB,KAAc,YAAanroB,mBAAmB75M,QAAKmO,GAAW,kBAAM,OApEjF,8BAsEI,SAAiB8o0B,EAAYC,IACzBp+wB,EAAAA,GAAAA,MAAKksxB,KAAc,QAASnroB,mBAAmBxoM,KAAKC,UAAU,CAC1D4l0B,SAAUA,EACVD,WAAYA,UACX9o0B,GAAW,kBAAM,OA1E9B,+BA4EI,SAAkBuj1B,GACd,IAAInq0B,EAAaxxB,KAAKm71B,iBAAiBS,sBAEvC,OADA571B,KAAK+61B,YAAc/61B,KAAK+61B,WAAWc,qBAAuB771B,KAAK+61B,WAAWc,oBAAoB771B,KAAKm71B,iBAAkB3p0B,IAC9GuxC,EAAAA,GAAAA,MAAK,CACRr4B,IAAKukzB,KACLxu0B,OAAQ,aACRsO,IAAK+0L,mBAAmBxoM,KAAKC,UAAU,CACnC4l0B,SAAUnh1B,KAAKk71B,eAAe/Z,SAC9B2a,UAAW971B,KAAKk71B,eAAeY,UAC/BC,cAAe/71B,KAAKk71B,eAAL,gBACfc,aAAch81B,KAAKk71B,eAAL,cACde,eAAgB,GAAI,IAAI3txB,MAAOq6L,oBAC/Bn3O,WAAYA,KAEhB+wC,YAAao5xB,EACbj5xB,QAAS,SAAC70D,GAAD,QAAYA,EAAK6xC,UAAY7xC,EAAKgB,SAAUhB,EAAKgB,OAAOqt1B,eACjEp6yB,qBAAsBg5yB,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kDAAmD,oEA5FxK,mCA+FI,SAAsB+10B,EAAYya,EAAmBQ,EAAgBC,GACjE,OAAOr5xB,EAAAA,GAAAA,MAAK,CACRr4B,IAAKukzB,KACLxu0B,OAAQ,iBACRsO,IAAK+0L,mBAAmBxoM,KAAKC,UAAU,CACnC2l0B,WAAYA,EACZkb,iBAAkBA,EAClBD,eAAgBA,EAChBE,QAAS120B,KAAKC,IAAI,IAAMyp0B,SAE5BvtyB,qBAAsBg5yB,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,iCAAkC,8DAC3Io3D,YAAao5xB,EACbj5xB,QAAS,SAAC70D,GAAD,QAAYA,EAAK6xC,UAAY7xC,EAAKgB,SAAUhB,EAAKgB,OAAOqt1B,gBAAkBru1B,EAAK2xC,SACxFuC,gBAAiB/hD,KAAKk71B,eAAeoB,qBA5GjD,6BA+GI,SAAgBpb,EAAYya,GACxB,OAAO54xB,EAAAA,GAAAA,MAAKksxB,KAAc,kBAAmBnroB,mBAAmBo9nB,GAAa4Z,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,kEAAmE,+DAAgEww1B,KAhH3S,qCAkHI,SAAwBza,EAAYqb,EAAyBC,EAAe3y0B,EAAY4y0B,GACpF,OAAO15xB,EAAAA,GAAAA,MAAKksxB,KAAc,oBAAqBnroB,mBAAmBxoM,KAAKC,UAAU,CAC7E2l0B,WAAYA,EACZr3zB,WAAYA,EACZwyzB,cAAekgB,EACfG,mBAAoBF,KACnB1B,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,wDAAyD,+EAAgFsx1B,MAxHzO,wBA0HI,SAAWE,GACP,OAAO55xB,EAAAA,GAAAA,MAAKksxB,KAAc,aAAcnroB,mBAAmB64oB,GAAa7B,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,wBAAyB,yDAA2D,KAAOwx1B,EAAa,QA3H3Q,0BA6HI,SAAa9y0B,GACT,OAAOk5C,EAAAA,GAAAA,MAAKksxB,KAAc,eAAgBnroB,mBAAmBxoM,KAAKC,UAAU,CACxE4l0B,SAAUnh1B,KAAKk71B,eAAe/Z,SAC9B2a,UAAW971B,KAAKk71B,eAAeY,UAC/B5a,WAAYlh1B,KAAKk71B,eAAeha,WAChC1vzB,WAAYxxB,KAAKm71B,iBAAiBS,sBAClC9N,cAAe9t1B,KAAKk71B,eAAe9J,wBAAwBlr1B,KAAI,SAAAq+B,GAAK,OAAIA,EAAMv4B,WAC9E6d,WAAYA,KACXix0B,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,iCAAkC,+DArIlI,qCAuII,SAAwB4jB,EAAK4s0B,GACzB,OAAO54xB,EAAAA,GAAAA,MAAKksxB,KAAc,cAAelg0B,EAAK+r0B,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,sCAAuC,sDAAuDww1B,KAxIvO,6BA0II,SAAgBl5xB,EAAak5xB,GAAoC,IAAjB3y1B,EAAiB,uDAAR,OACrD,OAAO+5D,EAAAA,GAAAA,MAAK,CACRr4B,IAAK+3B,EAAYm6xB,WACjBn80B,OAAQgiD,EAAYo6xB,SAASj6xB,UAC7B7zC,IAAK0zC,EAAYo6xB,SAAS9t0B,IAC1B+yB,qBAAsBg5yB,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,sCAAuC,sDAChJo3D,YAAao5xB,EACb3y1B,OAAAA,MAjJZ,iCAoJI,SAAoBimR,EAAa0skB,GAC7B,IAAI5s0B,EAAM+0L,mBAAmBxoM,KAAKC,UAAU,CACxCtR,GAAIglR,KAER,OAAOlsN,EAAAA,GAAAA,MAAKksxB,KAAc,eAAgBlg0B,EAAK+r0B,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,sCAAuC,sDAAuDww1B,KAxJxO,oCA0JI,SAAuB1skB,GACnB,OAAOlsN,EAAAA,GAAAA,MAAK,CACRr4B,IAAKukzB,KACLxu0B,OAAQ,kBACRsO,IAAK+0L,mBAAmBxoM,KAAKC,UAAU,CACnCtR,GAAIglR,EACJotkB,QAAS120B,KAAKC,IAAI,IAAMyp0B,SAE5BvtyB,qBAAsBg5yB,EAAsBU,wBAAwBx71B,KAAKk71B,gBAAgB/v1B,EAAAA,GAAAA,iBAAgB,mCAAoC,+DAC7Iu3D,QAAS,SAAC70D,GAAD,QAAYA,EAAK6xC,UAAY7xC,EAAKgB,SAAUhB,EAAKgB,OAAOqt1B,gBAAkBru1B,EAAK2xC,SACxFuC,gBAAiB/hD,KAAKk71B,eAAeoB,qBApKjD,iCAuKI,SAAoB161B,EAAOk71B,GACvB,OAAO/5xB,EAAAA,GAAAA,MAAKksxB,KAAc,2BAA4BnroB,mBAAmBxoM,KAAKC,UAAU,CACpF2l0B,WAAYlh1B,KAAKk71B,eAAeha,WAChCt/0B,MAAOA,EACPk71B,kBAAmBA,SA3K/B,sCAOI,SAA+BnD,EAAeoD,GAAyC,IAApBC,IAAoB,yDACnF,OAAO,SAAUvxzB,EAASJ,EAAOC,GAC7B,GAAID,EAAO,CACP,IAAI4xzB,GAAiB9x1B,EAAAA,GAAAA,iBAAgBkgC,EAAM8T,WAAY,8CAAgD9T,EAAMqM,QAC7G,GAAIqlzB,EACA,IAAI9+hB,GAAe9yT,EAAAA,GAAAA,iBAAgB,gBAAiB,wCAChD+x1B,GAAwB1jxB,EAAAA,GAAAA,eAAcykP,EAAc8+hB,EAAqB1xzB,EAAMqM,OAAQulzB,QAG3FC,EAAwBD,EAGhC,GAAKtD,EAKDA,EAAcnuzB,cAAc0xzB,GAAyBH,EAAqB1xzB,EAAO2xzB,OALjE,CAChB,IAAIt9yB,GAAQqC,EAAAA,GAAAA,iBAAgB1W,GAC5BwjzB,KAAiBC,aAAapvyB,GAASw9yB,GAAyBH,GAAuB,wBAAyBC,OArBhI,qBA4BI,SAAep+yB,EAAK2jB,GAChB,OAAOQ,EAAAA,GAAAA,MAAKnkB,OAAKxmC,OAAWA,EAAW0i1B,EAAsBU,0BAA2Bj5xB,EAAa,CAAE5+C,KAAM,YA7BrH,KaPO,SAASw50B,GAAqB5v0B,GACjC,OAAO5H,KAAKo1B,OAAOxtB,GAAQ,GAAK2h0B,MAwB7B,SAASkO,GAAoBx+yB,GAAwB,IAAnBh4C,EAAmB,uDAAV,SAC1Cy21B,EAAY530B,OAAO09G,KAAKvkF,EAAKh4C,GAEjC,MADW,WAAXA,GAAuBy21B,IAAcA,EAAU7kT,OAAS6kT,GACjDA,ECpBJ,IAAMC,IAAb,QACI,cAAc,eACVt91B,KAAK481B,WAAa,GAClB581B,KAAK681B,SAAW,GAChB781B,KAAKu91B,gBAAkB,MAGlBC,GAAb,0CACI,WAAYC,EAAettJ,GAAS,6BAChC,gBACKA,QAAUA,EACf,EAAKutJ,gBAAkBh11B,GAAAA,WAAc,MACrC,EAAKi11B,eAAiBj11B,GAAAA,WAAc,IACpC,EAAKk11B,kBAAoBl11B,GAAAA,WAAc,MACvC,EAAKknB,aAAelnB,GAAAA,YAAc,GAClC,EAAK+rxB,WAAa/rxB,GAAAA,WAAc,KAChC,EAAK8uX,YAAc9uX,GAAAA,WAAc,QACjC,EAAKm11B,mBAAqB,uBAAyB9Z,KACnD,EAAK+Z,aAAe,CAChB,CACI/9zB,QAAS,SAAUC,SAAU,QAASC,OAAQ,WAC9C7lB,QAAS,CACLzX,MAAMwI,EAAAA,GAAAA,iBAAgB,KAAMg8D,GAAAA,SAAAA,iBAA2BxjD,KAAM,UAAWojD,YAAa,YACrFC,QAAS,kBAAM,EAAKp3C,cAAa,OAI7C,EAAKmu0B,qBAAuB,aAC5B,EAAKC,mBAAqBt11B,GAAAA,WAAc,IACxC,EAAKu11B,oBAAsBv11B,GAAAA,WAAc,IACzC,EAAKw11B,cAAgB,kBAAM,EAAKN,qBAAuB,IACvD,EAAKO,yBAA2B,IAAIb,GACpC,EAAKc,8BAA+B,EACpC,EAAKC,mBAAoB,EACzB,EAAKC,wBAAyB,EAC9B,EAAKC,cAAgB,KACrB,EAAKC,uBAAyB,KAC9B,EAAKC,sBAAwB,WACzB,IAAI/i1B,EAAS8qP,EACb5/O,KAAKuyL,UAAY,SAAU34M,GACR,SAAXA,EAAEqN,KAIF6N,IAEJ8qP,EAAW5hN,aAAY,WACnB2qF,YAAYvpH,MAAMY,KAAM,CAAC,WAC1B,IACHlL,GAAU,GARNipC,cAAc6hN,KAW1B,EAAKvpB,QAAU,KACf,EAAKw7L,UAAY,GACbglb,SAC4Crl1B,IAAxCql1B,EAAciB,wBACd,EAAKJ,uBAAyBb,EAAciB,4BACftm1B,IAA7Bql1B,EAAckB,aACd,EAAKN,kBAAoBZ,EAAckB,iBACOvm1B,IAA9Cql1B,EAAcmB,8BACd,EAAKR,6BAA+BX,EAAcmB,8BApD1B,EADxC,4CAwDI,WACI,OAAOn50B,OAAOgzL,KAAOhzL,OAAM,WAAiBA,OAAM,QAAcA,OAAM,OAAaA,OAAM,OAzDjG,2BA2DI,WACIzlB,KAAK6+1B,mBACL,IAAI7mpB,EAAO,IAAIC,KAAK,CAAC,IAAMj4M,KAAKy+1B,sBAAsBhw1B,WAAa,OAAQ,CAAEkV,KAAM,oBAC/Em70B,EAAO9+1B,KAAK++1B,gBAGhB,OAFA/+1B,KAAKw+1B,uBAAyBM,EAAKnmpB,gBAAgBX,GACnDh4M,KAAKu+1B,cAAgB,IAAIxmpB,OAAO/3M,KAAKw+1B,wBAC9Bx+1B,KAAKu+1B,gBAjEpB,8BAmEI,WAKI,GAJIv+1B,KAAKu+1B,gBACLv+1B,KAAKu+1B,cAAczlrB,YACnB94K,KAAKu+1B,cAAgB,MAErBv+1B,KAAKw+1B,uBAAwB,CAC7B,IAAIM,EAAO9+1B,KAAK++1B,gBAChBD,GAAQA,EAAKE,gBAAgBh/1B,KAAKw+1B,wBAClCx+1B,KAAKw+1B,uBAAyB,QA3E1C,wBA8EI,SAAWvhnB,GAAS,WACZwhB,EAAiBxoN,SAASmwL,GAAAA,QAAAA,SAC9B,GAAI6W,GAAY7W,GAAAA,QAAAA,QAAkB,IAAMq4B,EAAiB,CACrD,IAAI5lD,EAAS74M,KAAKi/1B,gBACdC,EAAc,WACd,IACQjinB,EAAQz6O,UAA6C,oBAAjCy6O,EAAQz6O,SAASy8C,cACrCg+L,EAAQkinB,QACRtmpB,EAAOtpE,YAAY,QACnB,EAAKsvtB,oBAGb,MAAO3oxB,GACH,EAAK2oxB,qBAGbhmpB,EAAOgB,QAAU,SAACr5M,GAAQ0+1B,KAC1BrmpB,EAAOM,UAAY,SAAC34M,GAAQ0+1B,KAC5BrmpB,EAAOtpE,YAAY,YAhG/B,kCAmGI,WACI,GAAIvvI,KAAKo/1B,gBAAiB,CACtB,IAAIC,EAASr/1B,KAAKs/1B,eAAelsR,cACjCisR,GAAUA,EAAOr/zB,SAAS0oB,QAAQ,kBAtG9C,iCAyGI,WAAsB,WACd62yB,GAAoBp01B,EAAAA,GAAAA,iBAAgB,8FAA+F,0DAA0DsC,MAAM,OAGvM,GAFAzN,KAAKg+1B,mBAAmBuB,EAAkB,IAC1Cv/1B,KAAKi+1B,oBAAoBsB,EAAkB,IACvCv/1B,KAAKo+1B,6BAA8B,CACnC,IAAIl9zB,EAAelhC,KAAK4vB,aAAaze,WAAU,SAACN,GACvCA,IACD,EAAKkt1B,qBAAuB,aAC5B,EAAKyB,uBACLt+zB,EAAa9iB,cAGrBpe,KAAKyI,aAAa7H,KAAKsgC,GACvBlhC,KAAK4vB,cAAa,MAtH9B,sCAyHI,SAAyBmu0B,GACjB/91B,KAAKo+1B,+BACLp+1B,KAAK+91B,qBAAuBA,KA3HxC,yBA8HI,SAAY0B,EAAcC,GACtB,GAAI1/1B,KAAK2/1B,YAAa,CAClB3/1B,KAAK2/1B,YAAY/41B,OAAS841B,EAC1B1/1B,KAAK091B,gBAAgB+B,EAAa7C,YAClC,IAAIgD,EAAW,GACf,IAAK,IAAI541B,KAAOy41B,EAAa5C,SACzB+C,EAASh/1B,KAAK,CAAE4M,KAAMxG,EAAKpF,MAAO691B,EAAa5C,SAAS711B,KAE5DhH,KAAK291B,eAAeiC,GACpB5/1B,KAAK2/1B,YAAYx0T,YAvI7B,2BA0II,SAAc00T,EAAeC,EAAWnB,EAAY1vkB,EAAa9uO,GAC7DngD,KAAK+/1B,qBAAuB//1B,KAAK+/1B,oBAAoB//1B,KAAKm+1B,0BAC1D,IAAIsB,EAAez/1B,KAAKm+1B,yBACpB6B,EAAarB,EAAa3+1B,KAAK691B,mBAAqB,SACxD,GAAKiC,GAAc9/1B,KAAKo/1B,gBAOnB,CACIS,IACDA,EAAiBlB,GAAc3+1B,KAAKs/1B,eAAkBt/1B,KAAKs/1B,eAAelsR,cAAgBpzkB,KAAKig2B,iBAAiB,KAAM,OAE1H,IAAIj31B,EAAShJ,KAAKq+1B,kBAAoB,OAAS,MAC/Cr+1B,KAAKkg2B,gBAAgBL,EAAeJ,EAAcz21B,EAAQ211B,EAAY1vkB,EAAa9uO,OAZ9C,CACrC,IAAIoJ,EAAAA,GAAAA,uBAAwBvpD,KAAKq+1B,kBAE7B,YADAr+1B,KAAKmg2B,kBAAkBV,EAAcxwkB,EAAa9uO,GAGtDngD,KAAKq+1B,kBAAoBr+1B,KAAKog2B,YAAYX,EAAcO,GAAchg2B,KAAKig2B,iBAAiBJ,EAAeJ,MAnJvH,+BA6JI,SAAkBA,EAAcxwkB,EAAa9uO,GAczCngD,KAAKqg2B,2BAA2BZ,EADhB,OACuCxwkB,GAbpC,SAACqxkB,EAAcxB,GAC9B,GAAIwB,EAAa1hzB,IAAK,CAClB,IAAMqhB,EAAOz9D,SAAS4gC,cAAc,KACpC68B,EAAKF,KAAOugyB,EAAa1hzB,IACzBqhB,EAAK8hE,IAAM,sBACX9hE,EAAKsgyB,SAAWD,EAAaE,gBAC7Bh+1B,SAAS+lC,KAAKivC,YAAYvX,GAC1BA,EAAK5uC,QACL4uC,EAAKz+D,SACLs91B,EAAKE,gBAAgBsB,EAAa1hzB,QAIsCuB,KA3KxF,wCA6KI,SAA2Bs/yB,EAActgG,EAASlwe,EAAawxkB,EAAYtgzB,GAAiB,WAClF2+yB,EAAO9+1B,KAAK++1B,gBAEZ2B,EAAe1g2B,KAAKmwsB,QAAQwwJ,eAAeC,gBAAgBnB,EADvC,SAACxwkB,GAAD,OAAiB,kBAAM,EAAKkhb,QAAQ0wJ,YAAYC,mBAAmB7xkB,IACd0skB,CAAkB1skB,GAAckwe,GAC/Gn/vB,KAAKmwsB,QAAQ0wJ,YAAYl+1B,MAAKwI,EAAAA,GAAAA,iBAAgB,8BAA+B,0CAC7E,IAAI+2f,EAAWx5f,GAAAA,WAAc,GAC7B1I,KAAKyI,aAAa7H,KAAKshgB,EAAS/wf,WAAU,SAAAvP,GACtC,EAAKy81B,mBAAqB,EAAK0C,mBAAmB,IAAMn/1B,EAAOqtR,OAEnEyxkB,EAAatn0B,MAAK,SAAA2lB,GACd,GAAIA,EAASM,GACT,OAAO,EAAK2hzB,sBAAsBjizB,EAAU+/yB,EAAM58V,EAAU/hd,GACvD3B,MAAK,SAAA8hzB,GACNG,EAAWH,EAAcxB,SAGlCr/yB,OAAM,SAAAV,GACL,EAAKoxpB,QAAQ0wJ,YAAY58nB,SAASgrD,GAClC,IAAMxjP,GAAUtgC,EAAAA,GAAAA,iBAAgB,sCAAuC,qDACvE2v1B,GAAsBU,wBAAwB,EAAKrrJ,QAAS1kqB,GAAS,EAArEqvzB,CAA2E,GAAI,EAAM,SAhMjG,mCAmMI,SAAsB/7yB,EAAU+/yB,EAAM58V,EAAU/hd,GAC5C,IAAM8gzB,GAAiBlizB,EAASG,QAAQr/B,IAAI,kBACtCqh1B,EAAqBnizB,EAASG,QAAQr/B,IAAI,uBAC1C2g1B,EAAkBxg2B,KAAKmh2B,aAAaD,GACpCjizB,EAAcF,EAASG,QAAQr/B,IAAI,gBACnC4ovB,EAAS1ptB,EAASxW,KAAK64zB,YAC7BjhzB,IAAoBA,EAAgBP,OAAO2kK,QAAU,WACjDkkjB,EAAO1iuB,WAEX,IAAMs7zB,EAAY,SAAZA,EAAannvB,GACfuupB,EAAOh4vB,OAAO+tC,MAAK,YAAqB,IAAlBplB,EAAkB,EAAlBA,KAAMx3B,EAAY,EAAZA,MACpBw3B,EACA8gF,EAAWhzC,SAGfo6xB,GAAkB1/1B,EAAMyjkB,WACxBnjE,EAASv8e,KAAK6H,MAAuB,IAAjB8z0B,EAAuBL,IAC3C/mvB,EAAWqnvB,QAAQ3/1B,GACnBy/1B,EAAUnnvB,QAGdonvB,EAAiB,EACrB,OAAOnjzB,QAAQ/tC,QAAQ,IAAIox1B,eAAe,CACtC3l1B,MADsC,SAChCq+F,GACFmnvB,EAAUnnvB,OAGb17D,MAAK,SAAAijzB,GACN,OAAO,IAAIC,SAASD,EAAQ,CACxBvizB,QAAS,CACL,eAAgBD,QAIvBT,MAAK,SAAAO,GAAQ,OAAIA,EAASi5J,UAC1Bx5J,MAAK,SAAAw5J,GACN,MAAO,CACH/4J,YAAAA,EACAgizB,cAAAA,EACAT,gBAAAA,EACA5hzB,IAAMuB,EAAgBP,OAAO2lK,QAAuC,KAA7Bu5oB,EAAKnmpB,gBAAgBX,SA3O5E,0BA+OI,SAAakppB,GACT,IAAMS,EAAoB,4BACpBC,EAAgB,uCAClBl5oB,EAAW,kBAOf,OANIi5oB,EAAkBz+zB,KAAKg+zB,GACvBx4oB,EAAWi5oB,EAAkBpz1B,KAAK2y1B,GAAoB,GAEjDU,EAAc1+zB,KAAKg+zB,KACxBx4oB,EAAWk5oB,EAAcrz1B,KAAK2y1B,GAAoB,IAE/C31oB,mBAAmB7C,KAzPlC,+BA2PI,WACI,IAAIj9K,GAAUtgC,EAAAA,GAAAA,iBAAgB,mDAAoD,iEAC9Eg4B,EAAMnjC,KAAKi9O,QAAQz6O,SAAS4gC,cAAc,OAC9CD,EAAIllB,MAAM,cAAgB,SAC1BklB,EAAI0+zB,UAAYp2zB,EAChBtI,EAAIllB,MAAMkI,SAAW,WACrBgd,EAAIllB,MAAMvF,KAAO,IACjByqB,EAAIllB,MAAMnF,IAAM,IAChBqqB,EAAIllB,MAAMF,MAAQ,IAClBolB,EAAIllB,MAAM28B,SAAW,OACrB56C,KAAKi9O,QAAQz6O,SAASopB,OAAQzgB,EAAAA,GAAAA,iBAAgB,eAAgB,6DAC9DnL,KAAKi9O,QAAQz6O,SAAS+lC,KAAKivC,YAAYr0C,IACvCA,EAAMnjC,KAAKi9O,QAAQz6O,SAAS4gC,cAAc,QACtCn5B,GAAK,UACTk5B,EAAIllB,MAAMkI,SAAW,WACrBgd,EAAIllB,MAAMvF,KAAO,IACjByqB,EAAIllB,MAAMnF,IAAM,IAChBqqB,EAAIllB,MAAMD,OAAS,IACnBmlB,EAAIllB,MAAMF,MAAQ,IAClBolB,EAAIllB,MAAM,cAAgB,SAC1BklB,EAAIllB,MAAMqmL,OAAS,OACnBnhK,EAAIllB,MAAM1M,OAAS,IACnB4xB,EAAIllB,MAAM28B,SAAW,OACrB56C,KAAKi9O,QAAQz6O,SAAS+lC,KAAKivC,YAAYr0C,KAlR/C,+BAoRI,SAAkB3c,EAAMs70B,EAAiB92zB,EAAU+2zB,GAAkD,WAApCjC,EAAoC,wDAAjB3/yB,EAAiB,uCAC7F2hzB,EACA9h2B,KAAKgi2B,0BAAyB,kBAAM,EAAKC,kBAAkBz70B,GAAM,EAAOwkB,EAAU+2zB,EAAcjC,EAAW3/yB,MAGtGngD,KAAKq+1B,oBACNr+1B,KAAKi9O,QAAUx3N,OAAO09G,OACtBnjI,KAAKi9O,QAAQilnB,SAAW,WACpB,EAAK/xJ,QAAQ0wJ,YAAYtm1B,OACzB,EAAKsk1B,oBAET7+1B,KAAKmi2B,qBAGbni2B,KAAKmwsB,QAAQ0wJ,YAAYl+1B,MAAKwI,EAAAA,GAAAA,iBAAgB,4BAA6B,0CAC3EnL,KAAKmwsB,QAAQ0wJ,YAAYhld,YAAW1wY,EAAAA,GAAAA,iBAAgB,SAAU,8CAC9D,IAAIi31B,EAA4B101B,GAAAA,WAC5B201B,EAAyBte,KACzB4X,EAAoB,SAAC1skB,GAAD,OAAiB,kBAAM,EAAKkhb,QAAQ0wJ,YAAYC,mBAAmB7xkB,GAAeozkB,KAC1Gri2B,KAAKmwsB,QAAQ0wJ,YAAYyB,cAAcD,GAAwB,SAACpzkB,IACxD1lO,EAAAA,GAAAA,uBAAwB,EAAK4mpB,QAAQ0wJ,YAAY3+V,YAAc,GAC/D/hd,EAAgBmlK,QAEhB,EAAK6qf,QAAQwwJ,eAAe4B,oBAAoBtzkB,EAAa0skB,EAAkB1skB,MACpFmzkB,EAA0B5x1B,WAC7BxQ,KAAKmwsB,QAAQwwJ,eAAe6B,wBAAwBh80B,EAAMm10B,KACrDvi0B,MAAK,SAAC2lB,GACP,EAAKoxpB,QAAQsyJ,sBAAsBC,uBAAuB13zB,EAAU+2zB,EAAchjzB,EAAUqjzB,EAA2BC,EAAwBP,EAAiBhC,EAAW3/yB,MAE1Krf,MAAK,SAAC4e,GACP,EAAKywpB,QAAQsyJ,sBAAsBE,wBAAwB33zB,EAAUq3zB,GACrED,EAA0B12zB,UACzB,EAAK2yzB,mBAAqB3+yB,EAAMH,cAAgBG,EAAMH,aAAN,OAA+B,EAAKqjzB,sBAAsB,EAAK3lnB,QAASv9L,EAAMH,aAAN,YApTrI,oBAuTI,SAAO/4B,EAAMq80B,EAAWd,GAAiC,WAAnBjC,EAAmB,wDACrD9/1B,KAAK6+1B,mBACL,IAAM1+yB,EAAkB,IAAIqijB,gBACxBx3jB,EAAWt9B,GAAAA,WACX+0D,EAAcziE,KAAKm+1B,yBAoBvB,OAnBA17xB,EAAYm6xB,WAAaiG,EACrB7i2B,KAAKmwsB,QAAQ2yJ,iBAAiBxi2B,OAAS,GAAKsu1B,MAAyB5u1B,KAAKs+1B,wBAA2Bt+1B,KAAKmwsB,QAAQ4yJ,sBAAwB/i2B,KAAKmwsB,QAAQ4yJ,qBAAqB1Y,mBAC5Kxn1B,YAAW,WACP,EAAKo/1B,kBAAkBz70B,IAAQ,EAAK630B,kBAAmBrzzB,EAAU+2zB,EAAcjC,EAAW3/yB,OAI9FnV,EAAS56B,SAAQ,GACbpQ,KAAKq+1B,mBACL57xB,EAAYo6xB,SAAZ,IAA8Br20B,IAC9Bi8C,EAAYo6xB,SAAZ,UAAoC,WACpC781B,KAAKgi2B,0BAAyB,kBAAM,EAAKgB,cAAc,MAAM,GAAM,EAAO,KAAM7izB,QAGhFsiB,EAAY86xB,gBAAZ,IAAqC/20B,IACrCi8C,EAAY86xB,gBAAZ,UAA2C,YAE/Cv91B,KAAKgj2B,cAAc,KAAMlD,EAAW9/1B,KAAKq+1B,kBAAmB,KAAMl+yB,IAE/DnV,EAASx6B,YA/UxB,2BAiVI,WAEI,OADkB41N,GAAAA,QAAAA,QAAmBnwL,SAASmwL,GAAAA,QAAAA,UAAoB,IAC3CA,GAAAA,QAAAA,SAAmBA,GAAAA,QAAAA,SAnVlD,mCAqVI,SAAsB3gN,EAAQgmB,EAASiM,EAAQyH,GAC3C,GAAI15B,EAAQ,CACR,IAAI0d,EAAM1d,EAAOjjB,SAASC,eAAe,WACzC,GAAI0gC,EACA,GAAIuU,GAAUyH,EAAY,CACtB,IAAI8+Q,GAAe9yT,EAAAA,GAAAA,iBAAgB,gBAAiB,wCACpDg4B,EAAI0+zB,WAAYroxB,EAAAA,GAAAA,eAAcykP,EAAcxyR,EAASiM,EAAQyH,QAG7Dhc,EAAI0+zB,UAAYp2zB,KA9VpC,6BAkWI,SAAgBo0zB,EAAeJ,EAActgG,EAASw/F,EAAY1vkB,EAAapwO,GAE3E,GADY,QAAZsgtB,IAAsBsgG,EAAa7C,WAAa581B,KAAKij2B,qBAAqBxD,EAAa7C,WAAY6C,EAAalC,mBAC5Gh0yB,EAAAA,GAAAA,sBACAvpD,KAAKkj2B,qBAAqBrD,EAAeJ,EAActgG,EAASw/F,EAAY1vkB,EAAapwO,OAD7F,CAIA,IAAI41B,EAAQz0E,KACRijI,EAAM,IAAIC,eACdD,EAAIG,mBAAqB,WACrB,GAAuB,GAAnBpjI,KAAKqjI,YAAkC,KAAfrjI,KAAK03C,OAAe,CAC5C,IAAIonzB,EAAOrqxB,EAAMsqxB,gBACboE,EAAUrE,EAAKnmpB,gBAAgB34M,KAAK++C,UACxC8gzB,GAAiBA,EAAc7/zB,SAAS0oB,QAAQy6yB,GAChDtg2B,YAAW,WAAQi81B,EAAKE,gBAAgBmE,KAAa,GACrD1uxB,EAAM2uxB,WAAWvD,QAEhB,GAAuB,GAAnB7/1B,KAAKqjI,YAAmBrjI,KAAK03C,QAAU,IAAK,CACjD,IAAIjM,GAAUtgC,EAAAA,GAAAA,iBAAgB,sCAAuC,qDACrE2v1B,GAAsBU,wBAAwB/mxB,EAAM07nB,QAAS1kqB,GAAS,EAAtEqvzB,CAA4E,GAAI961B,KAAM,IAClF6/1B,GAAiBA,EAAcry1B,MAAQinE,EAAMopxB,oBAC7CppxB,EAAMmuxB,sBAAsB/C,EAAep0zB,EAASzrC,KAAK03C,OAAQ13C,KAAKm/C,cAIlF8jF,EAAIE,KAAKg8nB,EAASsgG,EAAa7C,YAC/B35tB,EAAIqgF,aAAe,OACnB,IAAIs8oB,EAAW,IAAI/C,SACnB,IAAK,IAAI711B,KAAOy41B,EAAa5C,SACzB+C,EAAS7/0B,OAAO/Y,EAAKy41B,EAAa5C,SAAS711B,IAE/Ci8H,EAAIM,KAAKq8tB,GACTjB,GAAc3+1B,KAAKqj2B,yBAjY3B,kCAmYI,SAAqBxD,EAAeJ,EAActgG,EAASw/F,EAAY1vkB,EAAa9uO,GAAiB,WASjGngD,KAAKqg2B,2BAA2BZ,EAActgG,EAASlwe,GARpC,SAACqxkB,EAAcxB,GAC1BwB,EAAa1hzB,KAAOihzB,IACpBA,EAAc7/zB,SAAS0oB,QAAQ43yB,EAAa1hzB,KAC5C/7C,YAAW,WAAQi81B,EAAKE,gBAAgBsB,EAAa1hzB,OAAS,GAC9D,EAAKwkzB,WAAWvD,GAChBlB,GAAc,EAAK0E,yBAGqDljzB,KA5YxF,kCA8YI,SAAqBmjzB,EAAYC,GAC7B,IAAIx81B,EAAOD,OAAOC,KAAKw81B,GAAoB,IAK3C,OAJIx81B,EAAKzG,OAAS,IACdgj2B,GAAc,IACdA,GAAcv81B,EAAKb,KAAI,SAAA8K,GAAC,OAAIA,EAAI,IAAMuy1B,EAAiBvy1B,MAAIC,KAAK,MAE7Dqy1B,IApZf,8BAsZI,SAAiBzD,EAAeJ,GAC5B,IAAKA,EACD,OAAOrC,GAAoB,IAE/B,IAAIoG,EAAaxj2B,KAAKij2B,qBAAqBxD,EAAa7C,WAAY6C,EAAalC,iBAEjF,OADAsC,EAAgBA,EAAc7/zB,SAAS0oB,QAAQ86yB,GAAe3D,EAAgBzC,GAAoBoG,GAC3F3D,IA5Zf,qBA8ZI,YACI,wDACC7/1B,KAAKy4a,WAAa,IAAIx4a,SAAQ,SAAAwj2B,GAAG,OAAIvl0B,aAAaul0B,MACnDzj2B,KAAKgqC,qBAjab,gCAmaI,SAAmBk4d,EAAUjzO,GAKzB,IAJI1lO,EAAAA,GAAAA,uBAAwBvpD,KAAKq+1B,oBAC7Bn8V,EAAWv8e,KAAKo1B,MAAMmnd,EAAW,IAErCligB,KAAKmwsB,QAAQ0wJ,aAAe7g2B,KAAKmwsB,QAAQ0wJ,YAAY3+V,SAASA,GAC1DligB,KAAKi9O,QAAS,CACd,IAAI95M,EAAMnjC,KAAKi9O,QAAQz6O,SAASC,eAAe,WAC3Cih2B,GAAav41B,EAAAA,GAAAA,iBAAgB,4BAA6B,yCAA2C,IAAM+2f,EAAW,IAC1H/+d,IAAQA,EAAI0+zB,UAAY6B,GACxB1j2B,KAAKi9O,QAAQz6O,SAASopB,OAAQzgB,EAAAA,GAAAA,iBAAgB,eAAgB,6DAA+D+2f,EAAW,IAExIA,GAAY,KACZligB,KAAKmwsB,QAAQ0wJ,YAAY58nB,SAASgrD,KA/a9C,6BAkbI,SAAgBA,GAAa,WACrBjkP,EAAWt9B,GAAAA,WAWf,OAVA1N,KAAKy4a,UAAU73a,KAAKiC,YAAW,WAC3B,EAAKstsB,QAAQwwJ,eAAegD,uBAAuB10kB,GAC9C71P,MAAK,SAAC2lB,GACP,EAAKoxpB,QAAQsyJ,sBAAsBmB,wBAAwB54zB,EAAUikP,EAAalwO,MAEjFje,MAAK,SAAC4e,GACP,EAAKywpB,QAAQsyJ,sBAAsBoB,yBAAyB74zB,EAAUikP,IACrE,EAAKovkB,mBAAqB3+yB,EAAMH,cAAgBG,EAAMH,aAAN,OAA+B,EAAKqjzB,sBAAsB,EAAK3lnB,QAASv9L,EAAMH,aAAN,YAE9H,MACIvU,EAASx6B,YA9bxB,6BAgcI,SAAgBy+Q,EAAa60kB,EAAmBnF,EAAYt4wB,GAAqD,IAA9Cy5wB,EAA8C,wDAA3Bp1zB,EAA2B,uDAArB,GAAIyV,EAAiB,uCACzGsiB,EAAcziE,KAAKm+1B,yBACvB,GAAIzzzB,EACA+3B,EAAYm6xB,WAAalyzB,OAExB,GAAI27C,EACL5jB,EAAYm6xB,WAAazN,KACzB1sxB,EAAY86xB,gBAAZ,MAAuCl3wB,EACvC5jB,EAAY86xB,gBAAZ,UAA2CuC,EAAUrx1B,eAEpD,CACD,IAAIsgB,EAAM+0L,mBAAmBxoM,KAAKC,UAAU,CAAEtR,GAAIglR,EAAa8ykB,eAAgB+B,KAC/ErhyB,EAAYm6xB,WAAa3N,KACrBjv1B,KAAKq+1B,mBACL57xB,EAAYo6xB,SAAZ,UAAoC,kBACpCp6xB,EAAYo6xB,SAAZ,IAA8B9t0B,IAG9B0zC,EAAY86xB,gBAAZ,UAA2C,kBAC3C96xB,EAAY86xB,gBAAZ,IAAqCxu0B,GAG7C/uB,KAAKi9O,UAAYj9O,KAAKi9O,QAAQilnB,SAAW,MACzCli2B,KAAKgj2B,cAAchj2B,KAAKi9O,QAAS6inB,EAAWnB,EAAY1vkB,EAAa9uO,GACrEngD,KAAKi9O,QAAU,SAxdvB,GAAmCj8O,GAAAA,YA2dnC0H,GAAAA,gBAAAA,eAAuC,CACnC6Q,KAAM,SAAUzZ,EAAS0Z,GACrB,IAAIuq1B,EAAgBvq1B,IAChBwK,GAAeC,EAAAA,GAAAA,aAAY,4BAC/BvW,GAAAA,GAAAA,YAAiB5N,GAASigB,OAAOiE,GACjC,IAAIgg1B,EAAcxh2B,SAAS4gC,cAAc,UACzC4g0B,EAAYx21B,KAAOu21B,EAAclG,mBACjCmG,EAAYlj2B,aAAa,OAAQ,QACjChB,EAAQ85E,cAAc,yBAAyBpC,YAAYwsxB,GAC3DD,EAAczE,eAAiB0E,EAC/BD,EAAcpE,YAAc7/1B,EAAQ85E,cAAc,UCpfnD,IAAMqqxB,GAAb,0CACI,aAAc,6BACV,eAASl81B,YACJpC,wBAA0B,sCAC/B,EAAK5D,+BAAgC,EAH3B,EADlB,yCAMI,YACI,0DACA/B,KAAKkC,cAAc,KAR3B,0BAUI,cAVJ,gCAWI,SAAmB1B,EAAGK,GAGlB,OAFWb,KAAKiC,gBAAgBpB,GAC3B6J,cAAclK,IACZ,IAdf,gCAgBI,SAAmBA,EAAGK,GAClB,OAAOb,KAAKyE,mBAAmBjE,EAAGK,KAjB1C,kCAmBI,SAAqBf,EAASe,GAC1B,OAAO,IAAIqj2B,GAA4Bpk2B,EAAS4I,GAAAA,QAAW5I,QApBnE,GAAwD+B,GAAAA,iCAuBlDqi2B,GAAAA,SAAAA,iCACF,WAAYpk2B,EAASkM,GAAO,6BACxB,cAAMlM,IACDA,QAAUA,EACf,EAAKkM,MAAQA,EACb,EAAKm41B,eAAgB,EACrB,EAAKC,SAAW,SAAC5j2B,GAAD,OAAO,EAAK2j2B,eAAgB,GAC5C,EAAKE,iBAAmB,SAAC7j2B,GACrB,GAAI,EAAKwL,MAAMii1B,gBAAkB,EAAKkW,cAAe,CACjD,EAAKn41B,MAAMii1B,eAAe,EAAKji1B,MAAO,CAAEpF,OAAQ,EAAK9G,QAAS4O,cAAe,EAAK5O,UAClF,EAAKA,QAAQgB,aAAa,WAAY,MACtC,IAAIogC,EAAe,EAAKl1B,MAAMmf,OAAOha,WAAU,SAAAvP,GACtCA,IACD,EAAK9B,QAAQgB,aAAa,WAAY,KAClC0B,SAASkF,gBAAkBlF,SAAS+lC,OACpC,EAAK47zB,eAAgB,EACrB,EAAKrk2B,QAAQiB,SAEjBmgC,EAAa9iB,cAGrB,EAAK3V,aAAa7H,KAAKsgC,KAG/B,EAAKoj0B,MAAQ,SAAC9j2B,GACV,EAAK2j2B,eAAgB,GAEzBrk2B,EAAQY,iBAAiB,YAAa,EAAK0j2B,UAC3Ctk2B,EAAQY,iBAAiB,QAAS,EAAK2j2B,kBACvCvk2B,EAAQY,iBAAiB,OAAQ,EAAK4j2B,OA5Bd,wCA8B5B,WACItk2B,KAAKF,QAAQK,oBAAoB,YAAaH,KAAKok2B,UACnDpk2B,KAAKF,QAAQK,oBAAoB,QAASH,KAAKqk2B,kBAC/Crk2B,KAAKF,QAAQK,oBAAoB,OAAQH,KAAKsk2B,QAC9C,oFAEJ,SAAc9j2B,GACNR,KAAKgM,MAAMii1B,eACXju1B,KAAKqk2B,iBAAiB7j2B,GACjBR,KAAKgM,MAAMg7D,SAChBhnE,KAAKgM,MAAMg7D,QAAQhnE,KAAKgM,MAAOxL,SAzCrC0j2B,CAAoCrk2B,GAAAA,iCCxBnC,SAAS0k2B,GAAiBC,EAAWC,GACxC,OAAmB,IAAZD,EAAkBC,EAAa,IAEnC,SAASC,GAAoBllB,GAAqB,IAAdx40B,EAAc,uDAAR,OACzC291B,EAAoBnlB,EAAM1+zB,SAAW0+zB,EAAM1+zB,QAAQlb,QAAO,SAAAoL,GAAC,OAAIA,EAAE4u0B,MAAQ540B,KAAK,GAClF,OAAO291B,GAAqBA,EAAkB9kB,MAE3C,SAAS+kB,GAAUplB,EAAO4R,GAC7B,IAAI3/zB,EAAS2/zB,EAAwBA,IAA0B,GAC/D,OAAI5R,EAAMoO,SAAWpO,EAAMoO,QAAU,GAAKpO,EAAMoO,SAAWn8zB,EAAOnxB,QAA+C,SAArCmxB,EAAO+tzB,EAAMoO,QAAU,GAAGjq0B,OAC3F8N,EAAO+tzB,EAAMoO,QAAU,GAAG3L,YAG1ByiB,GAAoBllB,GAG5B,SAASqlB,GAAqBrlB,EAAOju0B,EAAQD,GAC3Cku0B,IAGLA,EAAMA,EAAM12zB,IAAM,SAAW,SAAWy70B,GAAiB/kB,EAAM9m0B,KAAMpH,GACrEku0B,EAAM0T,OAASqR,GAAiB/kB,EAAMlu0B,MAAOA,GAC7Cku0B,EAAMyT,KAAOsR,GAAiB/kB,EAAM1m0B,IAAKvH,GACzCiu0B,EAAM2T,QAAUoR,GAAiB/kB,EAAMju0B,OAAQA,GAC/Ciu0B,EAAM+N,QAAU/N,EAAM+N,OAAOtt1B,SAAQ,SAAC6k2B,GAClCD,GAAqBC,EAAYvz1B,EAAQD,OAG1C,SAASyz1B,GAAgBvlB,EAAOwlB,EAAcz30B,EAAM030B,GAClDzlB,IAGHA,EAAMr0zB,OAASq0zB,EAAMr0zB,QAAO,GAAUq0zB,EAAMr0zB,OAASziB,GAAAA,YAAc,GACrE820B,EAAK,QAAc,SAACh/0B,GAAQwk2B,GAAgBA,EAAaxlB,EAAOh/0B,IAChEg/0B,EAAM+N,QAAU/N,EAAM+N,OAAOtt1B,SAAQ,SAAA6k2B,GAC5BA,IAELA,EAAWhs1B,KAAO0m0B,EAAM1m0B,IACxBgs1B,EAAWps1B,MAAQ8m0B,EAAM9m0B,KACzBqs1B,GAAgBD,EAAYE,EAAcz30B,EAAM030B,OAEhDzlB,EAAMoO,QAAU,GAChBqX,EAAmBrk2B,KAAK4+0B,GAE5BA,EAAM780B,KAAO,kBAAMii2B,GAAUplB,IAC7BA,EAAM2O,sBAAwBuW,GAAoBllB,EAAO,0BCpCtD,IAAM0lB,GAAb,0CACI,WAAY/0J,EAAS9/a,EAAW20kB,EAAc/8H,GAAS,uBACnD,gBACKk9H,gBAAkBz81B,GAAAA,YAAc,GACrC,EAAKwQ,eAAiBxQ,GAAAA,WAAc,GACpC,EAAKuQ,cAAgBvQ,GAAAA,WAAc,GACnC,EAAK081B,aAAcj61B,EAAAA,GAAAA,iBAAgB,aAAc,iCACjD,EAAKk61B,SAAW381B,GAAAA,WAAc,GAC9B,EAAK481B,iBAAmB,EACxB,EAAKC,mBAAqB781B,GAAAA,WAAc,GACxC,EAAKkquB,YAAclquB,GAAAA,WAAc,GACjC,EAAKiquB,WAAajquB,GAAAA,WAAc,GAChC,EAAK881B,SAAW981B,GAAAA,WAAc,IAAII,OAAO,CAAEC,UAAW,CAAEnG,QAAS,IAAKoG,OAAQ,2BAC9E,EAAKy81B,gBAAkB/81B,GAAAA,WAAc,IACrC,EAAK820B,MAAQ920B,GAAAA,WAAc,MAC3B,EAAKg91B,aAAeh91B,GAAAA,YAAc,GAClC,EAAKi91B,wBAAyB,EAC9B,EAAKpY,OAAS7k1B,GAAAA,UAAY,WACtB,OAAO,EAAKk91B,kBAAkB,EAAKpmB,YAEvC,EAAKiO,aAAe/k1B,GAAAA,UAAY,WAC5B,OAAO,EAAK6k1B,SAAS3n1B,QAAO,SAACoL,GAAD,OAAOA,EAAEma,eAEzC,EAAK060B,gBAAkBn91B,GAAAA,UAAY,WAC/B,OAAO,EAAK6k1B,SAAS3n1B,QAAO,SAACoL,GAAD,QAASA,EAAE280B,iBAE3C,EAAKxi0B,OAASziB,GAAAA,YAAc,GAC5B,EAAKo91B,QAAU,EACf,EAAKC,4BAA6B,EAClC,EAAKC,mBAAoB,EACzB,EAAKC,UAAY,EACjB,EAAKC,mBAAqB,KAC1B,EAAK71kB,UAAYA,EACjB,EAAK6wjB,WAAa/wI,EAAQg2J,oBAAsBz91B,GAAAA,WAAc,MAC9D,EAAKD,aAAa7H,KAAK,EAAK4k2B,SAASr01B,WAAU,SAACN,GAC5C,EAAKu11B,qBAAuB,EAAKA,oBAAoBh21B,QAAQ,MAC7D,IAAIi21B,EAAyB341B,GAAAA,WAC7B,EAAK041B,oBAAsBC,EAC3BA,EACKjt0B,MAAK,SAAC2lB,GACFA,IAEL,EAAK6zrB,YAAY7zrB,EAASxtC,QAC1B,EAAKohuB,WAAW5zrB,EAASztC,OACzB,EAAKi01B,mBAAmB,EAAKe,qBAC7B,EAAKb,gBAAgB,yBAA2B1mzB,EAASwnzB,cACzD,EAAKC,cAAcznzB,EAAUimzB,EAAc70J,EAAQ2yJ,oBACpDhi0B,MAAK,SAACxX,GACL,EAAKm90B,uBAET,EAAKT,mBAAqB,EAAKU,aAAav2J,OAEhD,IAAIw2J,EAAUj+1B,GAAAA,aAAgBynsB,EAAQy2J,UAAYz2J,EAAQy2J,SAAWl+1B,GAAAA,WAAcynsB,EAAQy2J,UAAY7iB,MAnDpD,OAoDnD,EAAK8iB,YAAc5+H,GAAWv/tB,GAAAA,YAAc,GAC5C,EAAKwQ,eAAexQ,GAAAA,OAAUynsB,EAAQ22J,cACtC,EAAK7t1B,cAAcvQ,GAAAA,OAAUynsB,EAAQ42J,aACrC,EAAKx50B,KAAO4irB,EAAQ62J,MACpB,EAAKr0H,WAAW,EAAK15tB,gBAAkB,EAAKgu1B,kBAC5C,EAAKr0H,YAAY,EAAK15tB,iBAAmB,EAAK+t1B,kBAC9C,EAAKx+1B,aAAa7H,KAAK,EAAKuk2B,gBAAgBh01B,WAAU,SAACN,GAC/CA,GACA,EAAKq21B,eAAe,EAAKhmB,aAAcylB,IAAW,EAAKp50B,YAG/D,EAAK6rB,MAAQ1wC,GAAAA,aAAgBynsB,EAAQg3J,gBAAkBh3J,EAAQg3J,eAAez21B,OAAS,GACvF,EAAKY,MAAQ5I,GAAAA,cAAgB,WACzB,OAAO,EAAKiquB,aAAe,EAAKpltB,OAAS,EAAKg40B,qBAAuB,EAAK0B,oBAC3En+1B,OAAO,CAAEkiC,UAAU,IACtB,EAAKz5B,OAAS7I,GAAAA,cAAgB,WAC1B,OAAO,EAAKkquB,cAAgB,EAAKrltB,OAAS,EAAKg40B,qBAAuB,EAAK0B,oBAC5En+1B,OAAO,CAAEkiC,UAAU,IACtB,EAAKmK,SAAyB,IAAfk7O,IAAqB,EAAKmvjB,UAAYwlB,EACrD,EAAKoC,mBAAqB,SAAC5nB,GACnBA,GAASA,EAAMr0zB,SACfq0zB,EAAMr0zB,QAAO,GACTq0zB,EAAM+N,QACN/N,EAAM+N,OAAOtt1B,SAAQ,SAAC6k2B,GAAiB,EAAKsC,mBAAmBtC,QAI3E,EAAKtY,YAAc,SAACl/0B,EAAM04B,GACtB,IAAI4szB,GAAiBl30B,QAArB,CAEAsp1B,GAAgBA,EAAa,MAC7B,IAAIqC,EAAe,EAAK7nB,QAExB,IADCx5yB,GAAW,EAAKoh0B,mBAAmBC,GAC/B/51B,EAGL,GAAK+51B,EAIc/51B,EAAKG,MAAM,KACjBxN,SAAQ,SAACuI,GAClB6+1B,EAAeA,EAAa9Z,OAAOt3yB,SAASztC,OAEhD6+1B,EAAal80B,QAAO,QAPhB,EAAK+60B,mBAAqB541B,IASlC,EAAK7E,aAAa7H,KAAK8H,GAAAA,UAAY,WAC1B,EAAKyiB,WACN,EAAKi80B,mBAAmB,EAAK5nB,SAC7B,EAAK0mB,mBAAqB,UAGlC,EAAKoB,4BAA8B,IAAIrD,GACvC,EAAKx71B,aAAa7H,KAAK,EAAK0m2B,6BAzGuB,EAD3D,uDA4GI,SAAyBrC,EAAoBsC,EAAqBtu1B,EAAeC,GAAgB,WAC7F,GAAIlZ,KAAK8t1B,cAAe,CACpB,IAAI0Z,EAAgB9+1B,GAAAA,OAAU1I,KAAK8t1B,iBAC/B0Z,GAAiBA,EAAcln2B,OAAS,GACxCkn2B,EAAcvn2B,SAAQ,SAAAskC,GAAK,OAAIA,EAAMnmB,SAAWmmB,EAAMnmB,aAE1Dpe,KAAK8t1B,cAAc1v0B,UAEvBpe,KAAK8t1B,cAAgBpl1B,GAAAA,cAAgB,WACjC,IAAK6+1B,GAAqD,IAA9BtC,EAAmB3k2B,OAC3C,MAAO,GAIX,IAFA,IAAImn2B,EAAmBF,IACnBG,EAAsB,GACjB371B,EAAI,EAAGA,EAAIk51B,EAAmB3k2B,OAAQyL,IAAK,CAChD,IAAIyz0B,EAAQylB,EAAmBl51B,GAC3B471B,EAAeF,EAAiBjoB,EAAMoO,QAAU,GACpD,IAAK+Z,EACD,MAAO,GACXA,EAAanoB,MAAQA,EACrBkoB,EAAoB9m2B,KAAK+m2B,EAAa7l0B,gBAAgB,EAAKvU,KAAMtU,EAAeC,GAAgB,kBAAMuu1B,IAAkBjoB,EAAMooB,iBAC9HpoB,EAAM780B,KAAQ,SAAA680B,GAAK,OAAK,kBAAMolB,GAAUplB,GAAO,kBAAMioB,MAAvC,CAA2DjoB,GAE7E,OAAOkoB,OAnInB,4BAsII,WACI,OAAOji1B,OAAM,kBAAwB,IAvI7C,2BAyII,SAAc5W,EAAQm21B,EAAc6C,GAChC,IAAI7n2B,KAAK8n2B,YAAT,CAEA9n2B,KAAK6m2B,aAAY,GACjB,IACI,IAAKh41B,IAAWA,EAAO2w0B,MACnB,OAEJx/0B,KAAK+n2B,sBAAwBl51B,EAAOm51B,iBACpCho2B,KAAKiZ,cAAcpK,EAAO2w0B,MAAMlu0B,OAChCtR,KAAKkZ,eAAerK,EAAO2w0B,MAAMju0B,QACjC,IAAI021B,EAAqB,GACzBjo2B,KAAK+k2B,gBAAgBl21B,EAAO2w0B,MAAOwlB,EAAchl2B,KAAKutB,KAAM060B,GAC5Djo2B,KAAKko2B,yBAAyBD,EAAoBJ,EAAsBh51B,EAAO2w0B,MAAMlu0B,MAAOzC,EAAO2w0B,MAAMju0B,QACzGvR,KAAKkm2B,oBAAsBlm2B,KAAKws1B,YAAYxs1B,KAAKkm2B,oBAVrD,QAaSlm2B,KAAK2l2B,wBACN3l2B,KAAK0l2B,cAAa,GAEtB1l2B,KAAK2l2B,wBAAyB,MA7J1C,+BAgKI,WACQ3l2B,KAAK8n2B,aAEL9n2B,KAAKml2B,oBACLnl2B,KAAK6m2B,aAAY,IACG,IAApB7m2B,KAAKqwR,WAAoBrwR,KAAK0l2B,cAAa,MArKvD,wBAwKI,SAAWn40B,GACP,IAAI460B,EAAgBhL,GAAqB5v0B,GAEzC,OADAvtB,KAAKql2B,SAAS8C,EAAgBjZ,MACvBiZ,IA3Kf,yBA6KI,WACIno2B,KAAK0l2B,cAAa,KA9K1B,qBAgLI,YACI,uDACA1l2B,KAAK8n2B,aAAc,IAlL3B,4BAoLI,SAAe5mB,EAAYylB,EAASp50B,EAAM660B,GACtC,GAAKlnB,IAAkC,IAApBlh1B,KAAKqwR,UAAxB,CAMA,GAHIrwR,KAAK8l2B,SAAW9l2B,KAAK8l2B,QAAUv40B,IAC/BA,EAAOvtB,KAAK8l2B,SAEZ9l2B,KAAKim2B,UAAY140B,EACjBvtB,KAAKim2B,UAAY140B,OAGjB,GAAIvtB,KAAKsl2B,kBAAoBtl2B,KAAK+l2B,4BAA8B/l2B,KAAKwl2B,WACjE,OAER,IAAI2C,EAAgBno2B,KAAKqo2B,WAAW960B,IAC/BvtB,KAAKsl2B,mBAAqB6C,GAAiBA,EAAgB,IAAMno2B,KAAKwl2B,aAG3Exl2B,KAAKsl2B,iBAAmB6C,EACxBno2B,KAAKsm2B,oBAAsB/40B,EAC3BvtB,KAAK2l2B,uBAA8C,OAArByC,QAAkD,IAArBA,GAA8BA,EACzFpo2B,KAAKwl2B,SAASvW,KACV,8BAAgC0X,EAChC,QAAU7ipB,mBAAmBxoM,KAAKC,UAAUvb,KAAKso2B,uBAAuBpnB,EAAYknB,UA3MhG,0BA6MI,SAAaj4J,GACTnwsB,KAAK0l2B,cAAa,GAClB,IAAIxkB,EAAalh1B,KAAKkh1B,WAAWxw0B,OAC7B211B,EAAyBrm2B,KAAKom2B,oBAC9B7jyB,EAAc4toB,EAAQo4J,wBAA2B,kBAAMp4J,EAAQo4J,uBAAuBrnB,IAAiD,WAAlCmlB,EAAuBlvwB,SAChI2jwB,GAAsB0N,QAAQxo2B,KAAKwl2B,WAAYjjyB,GAC1CnpC,MAAK,SAAC2lB,GACPsnzB,EAAuBj21B,QAAQ2uC,MAChCje,MAAK,SAACxX,GACL+80B,EAAuB36zB,OAAOpiB,QAtN1C,oCAyNI,SAAuB43zB,EAAYknB,GAC/B,MAAO,CACH/3kB,UAAWrwR,KAAKqwR,UAChB6wjB,WAAYA,EACZunB,WAAY9i1B,KAAKo1B,MAAM/6C,KAAKsl2B,iBAAmBtl2B,KAAKin2B,kBACpDyB,eAAeN,GAA2Bpo2B,KAAK0l2B,kBA9N3D,oBAiOI,WACI1l2B,KAAKqwR,WAAa,EAClBrwR,KAAKml2B,iBAAgB,GACrBnl2B,KAAKkn2B,eAAe,KAAM,KAAM,GAChCln2B,KAAKsl2B,iBAAmB,IArOhC,6BAuOI,SAAgB9lB,EAAOwlB,EAAcz30B,EAAM030B,GACvCF,GAAgBvlB,EAAOwlB,EAAchl2B,KAAKutB,KAAM030B,GAChDJ,GAAqBrlB,EAAOA,EAAMju0B,OAAQiu0B,EAAMlu0B,OAChDtR,KAAKw/0B,MAAMA,KA1OnB,0BA4OI,SAAa3yzB,EAAGrsB,GAMZ,IALA,IAAIoG,EAAS8G,GAAAA,GAAAA,YAAiBlN,EAAEkO,eAC5BnD,EAAS3E,EAAO2E,SAChBo91B,GAASno2B,EAAE+tI,QAAUhjI,EAAOmN,KAAO+M,OAAO+5Z,SAAW54a,EAAO0K,QAAU,IACtEs31B,GAASpo2B,EAAEguI,QAAUjjI,EAAOuN,IAAM2M,OAAOk6Z,SAAW/4a,EAAO2K,SAAW,IACtEg80B,EAAS1g0B,EAAE0g0B,SACNxh1B,EAAI,EAAGA,EAAIwh1B,EAAOjt1B,OAAQyL,IAC/B,GAAI4pC,WAAW43yB,EAAOxh1B,GAAGkn1B,MAAQ2V,GAASjzzB,WAAW43yB,EAAOxh1B,GAAGkn1B,MAAQt9yB,WAAW43yB,EAAOxh1B,GAAGon1B,SAAWyV,GAChGjzzB,WAAW43yB,EAAOxh1B,GAAGin1B,OAAS2V,GAAShzzB,WAAW43yB,EAAOxh1B,GAAGin1B,OAASr9yB,WAAW43yB,EAAOxh1B,GAAGmn1B,QAAUyV,EAAO,CAC9Gpb,EAAOxh1B,GAAGi7D,SAAWumxB,EAAOxh1B,GAAGi7D,QAAQxmE,GACvC,SAtPhB,+BA0PI,SAAkBg/0B,GACd,GAAIA,EAAO,CAGP,IAFA,IAAI+N,EAAS,GACTsb,EAAoBrpB,EAAM+N,QAAU/N,EAAM+N,OAAOjt1B,QAAU,EACtDyL,EAAI,EAAGA,EAAI881B,EAAmB981B,IACnCwh1B,EAASA,EAAO3xzB,OAAO57B,KAAK4l2B,kBAAkBpmB,EAAM+N,OAAOxh1B,KAG/D,OADAwh1B,EAAO3s1B,KAAK4+0B,GACL+N,EAEX,MAAO,OApQf,GAAiCvs1B,GAAAA,YCRpB8n2B,GAAb,WACI,WAAYC,IAAU,eAClB/o2B,KAAK+o2B,SAAWA,EAChB/o2B,KAAKgp2B,mBAAqB,IAC1Bhp2B,KAAKip2B,oBAAsB,EAC3Bjp2B,KAAKkp2B,sBAAwB,EAC7Blp2B,KAAKmp2B,WAAY,EANzB,kCAQI,WACI,OAAOnp2B,KAAK+o2B,SAASpsQ,OAAS38lB,KAAK+o2B,SAASpsQ,SAAW,KAT/D,mCAWI,SAAsBn1lB,GAClB,IAAIqC,EACJ,OAA2I,QAAnIA,EAAK7J,KAAK28lB,MAAMtglB,MAAK,SAAAg0B,GAAI,OAAc,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAKggP,WAAa7oR,IAAiB6oC,EAAKm1zB,qBAAgC,IAAP371B,OAAgB,EAASA,EAAGwmR,YAbvL,+BAeI,SAAkB1oR,EAAYwsH,EAAU64U,GACpC,OAAOhtc,KAAK28lB,MAAMl3lB,MAAMkC,EAAYwsH,GAAUvuH,QAAO,SAAAyqC,GACjD,YAAyBj4B,IAArB40b,EACO38Z,EAAKggP,YAAc28K,GAEtB38Z,EAAKm1zB,gBApBzB,8BAuBI,SAAiB4D,EAAeX,GAAY,WACxCW,EAAcnp2B,SAAQ,SAAAowC,GAAI,OAAI,EAAK04zB,SAASM,WAAWh5zB,EAAMo4zB,QAxBrE,mCA0BI,SAAsBjh2B,EAAc8h2B,GAAc,WAC9Ctp2B,KAAKup2B,aAAe1m2B,YAAW,WAC3B,IAAI8E,EAAa,EAAK6h2B,sBAAsBhi2B,GAC5C,GAAKG,EAAL,CAIA,IAAI+5D,EAAW4nyB,EAAapj2B,KAAI,SAAAmqC,GAAU,IAAIxmC,EAAI,OAA2C,QAAnCA,EAAKwmC,EAAK+1zB,2BAAwC,IAAPv81B,OAAgB,EAASA,EAAG2G,aAAc5K,QAAO,SAAAoL,GAAC,QAAMA,KAC7JtD,GAAAA,KAAAA,MAAAA,IAAC,OAASg0D,IAAUtoC,MAAK,YACpB,EAAK+v0B,WAAa,EAAKM,cAAc9h2B,EAAYA,EAAa2n1B,UAAwBl30B,WALvF,EAAKmjB,UAOV,OArCX,2BAuCI,SAAc5zB,EAAYwsH,EAAU64U,GAChChtc,KAAKmp2B,WAAY,EACjB,IAAI570B,EAAOvtB,KAAK+o2B,SAAS/B,QAKzB,QAJyB5u1B,IAArB40b,IACAz/a,EAAOvtB,KAAKgp2B,mBACZhp2B,KAAKkp2B,yBAELvh2B,EAAa3H,KAAK28lB,MAAMr8lB,OAAS,GAAKN,KAAKkp2B,uBAAyBlp2B,KAAKip2B,oBACzEjp2B,KAAKu7B,YADT,CAIA,IAAI+t0B,EAAetp2B,KAAK0p2B,kBAAkB/h2B,EAAYwsH,EAAU64U,GAChEhtc,KAAK2p2B,iBAAiBL,EAAc/70B,GACpCvtB,KAAK4p2B,sBAAsBz1uB,EAAUm1uB,MApD7C,mBAsDI,WACItp2B,KAAKup2B,cAAgBrr0B,aAAal+B,KAAKup2B,cACvCvp2B,KAAKup2B,aAAe,KACpBvp2B,KAAKmp2B,WAAY,EACjBnp2B,KAAKkp2B,sBAAwB,IA1DrC,sBA4DI,WACI,QAASlp2B,KAAKup2B,iBA7DtB,KCAaM,GAAb,WACI,WAAY15J,IAAS,eACjBnwsB,KAAK+o2B,SAAW54J,EAFxB,qDAII,SAAuBnlqB,EAAU+2zB,EAAchjzB,EAAUqjzB,EAA2BC,GAAgF,WAAxD1D,EAAwD,wDAApCmB,EAAoC,wDAAjB3/yB,EAAiB,uCAChK,IACI,IAAKpB,EAGD,OAFAqjzB,EAA0B12zB,cAC1B1rC,KAAK+o2B,SAASlI,YAAY58nB,SAASo+nB,GAGvC,IAAIyH,EAAoB/qzB,EACxBqjzB,EAA0Bhy1B,QAAQ051B,GAClC,IAAI5nW,EAAW,EACX6nW,EAAoB,SAApBA,EAAqB96kB,GACrB,IAAIplR,GAC2B,QAAxBA,EAAK,EAAKk/1B,gBAA6B,IAAPl/1B,OAAgB,EAASA,EAAGk61B,gBAErD,EAAKgF,SAAShF,cAAciG,gBAAgB/6kB,GAClD71P,MAAK,SAACvqB,GACV,GAAIA,GAAUA,EAAOo71B,aAAc,CAC3B/nW,EAAWrzf,EAAOqzf,WAClBA,EAAWrzf,EAAOqzf,SAClB,EAAK6mW,SAAShF,cAAchD,mBAAmBly1B,EAAOqzf,SAAUjzO,IAEpE,IAAIi7kB,EAAkB,WAAQH,EAAkB96kB,IAChDmgkB,KAAiBvs1B,WAAWqn2B,EAAiB9a,MAAkB8a,SAG1D3gzB,EAAAA,GAAAA,uBACD,EAAKw/yB,SAASlI,YAAY58nB,SAASgrD,GAClCpgR,EAAOo71B,eAAgBp71B,EAAOiiiB,WAAc,EAAKi4T,SAASoB,sBAAsBl7kB,KACjF,EAAK85kB,SAAShF,cAAchD,mBAAmBly1B,EAAOqzf,SAAUjzO,GAChE,EAAK85kB,SAAShF,cAAcnD,gBAAgB3xkB,EAAa8ykB,EAAcpD,EAAY9v1B,EAAOw3E,MAAOy5wB,EAAWjx1B,EAAO67B,IAAKyV,QAKxI4pzB,EAAkBD,GAjCtB,QAoCI9+zB,EAAS56B,SAAQ,GACjBpQ,KAAK+o2B,SAASqB,uBAAyB,MA1CnD,qCA6CI,SAAwBp/zB,EAAUq3zB,GAC9Bri2B,KAAK+o2B,SAASlI,YAAY58nB,SAASo+nB,GACnCr3zB,EAASU,WA/CjB,qCAiDI,SAAwBV,EAAUikP,EAAalwO,GAC3C,IACI,IAAKA,EAGD,OAFA/T,EAAS56B,QAAQ,CAAE651B,cAAc,SACjCjq2B,KAAK+o2B,SAASlI,YAAY58nB,SAASgrD,GAGvCjvR,KAAK+o2B,SAASlI,aAAe7g2B,KAAK+o2B,SAASlI,YAAY3+V,WAAanjd,EAASmjd,UAAYligB,KAAK+o2B,SAASlI,YAAY3+V,SAASnjd,EAASmjd,UACrIl3d,EAAS56B,QAAQ2uC,GAPrB,QAUS/T,EAASmsD,OAA8B,YAArBnsD,EAASmsD,SAC5BnsD,EAAS56B,QAAQ,CAAE651B,cAAc,OA7DjD,sCAiEI,SAAyBj/zB,EAAUikP,GAC/BjvR,KAAK+o2B,SAASlI,YAAY58nB,SAASgrD,GACnCjkP,EAAS56B,QAAQ,CAAE651B,cAAc,EAAOn5T,WAAW,MAnE3D,mCAqEI,SAAsB9lgB,EAAU+T,EAAUsrzB,EAAuBC,GAAoB,WACjF,IACI,IAAIC,EAAsB,SAACx0zB,GACvBA,GAAO,EAAKgzzB,SAASpsQ,MAAMjvb,YAC3B,EAAKq7rB,SAASyB,oBAElB,IAAKzrzB,IAAaA,EAASmiyB,WAIvB,OAHAopB,EAAmB5+zB,SACnB1rC,KAAK+o2B,SAASlI,YAAY58nB,SAASomoB,QACnCE,IAGJ,IAAIrpB,EAAaniyB,EAASmiyB,WACtBupB,EAAmBzq2B,KAAK+o2B,SAAS2B,mBAAmBL,GACpDM,EAAuB3q2B,KAAK+o2B,SAASR,uBAAuB8B,GAChE,GAAIA,IAA0BI,GAAoBE,GAU9C,OATIA,EACAA,GAAwB3q2B,KAAK+o2B,SAAS6B,cAAc1pB,GAGpDupB,GAAoBzq2B,KAAK+o2B,SAAS8B,UAAU3pB,GAEhDopB,EAAmB5+zB,SACnB1rC,KAAK+o2B,SAASlI,YAAY58nB,SAASomoB,QACnCE,IAGJvq2B,KAAK+o2B,SAAS5C,mBAAmBjlB,GACjCopB,EAAmBl61B,QAAQ8w0B,GACJlh1B,KAAK+o2B,SAAS+B,yBACrCC,CAAiB7pB,GA7BrB,QAgCIl2yB,EAAS56B,SAAQ,MAtG7B,oCAyGI,SAAuB46B,EAAUq/zB,GAC7Brq2B,KAAK+o2B,SAASlC,aAAY,GAC1B7m2B,KAAK+o2B,SAASnswB,cAAazxF,EAAAA,GAAAA,iBAAgB,sDAAuD,gDAClGnL,KAAK+o2B,SAASlI,YAAY58nB,SAASomoB,GACnCr/zB,EAAS56B,SAAQ,GACjBpQ,KAAK+o2B,SAASyB,qBA9GtB,wCAgHI,SAA2Bx/zB,GACvBA,EAAS56B,QAAQ,CAAE651B,cAAc,EAAOn5T,WAAW,MAjH3D,0BAmHI,SAAaswS,EAAW4pB,GAAyB,WACzCC,GAA4D,IAA/Bjr2B,KAAK+o2B,SAAS14kB,aAAsB+wjB,EAAY,EAC7E6pB,GACAjr2B,KAAK+o2B,SAAS14kB,UAAU,GAE5B,IAAK,IAAItkR,EAAI,EAAGA,EAAIq10B,IAAc4pB,IAA2Bj/1B,IAAK,CAC9D,IAAIm/1B,EAAgB,SAACrq2B,GACjB,OAAO,EAAKko2B,SAASoC,WAAWtq2B,EAAO,EAAKko2B,SAASqC,0BAA0Bvq2B,KAEnF,GAAIkL,EAAI/L,KAAK+o2B,SAASpsQ,QAAQr8lB,OAAQ,CAClC,IAAI+vC,EAAOrwC,KAAK+o2B,SAASpsQ,QAAQ5wlB,GAC5BskC,IAAQA,EAAK8E,UACd9E,EAAO66zB,EAAcn/1B,GACrB/L,KAAK+o2B,SAASpsQ,MAAMptlB,OAAOxD,EAAG,EAAGskC,KAEb,IAApBA,EAAKggP,YACLhgP,EAAKggP,UAAYtkR,EACb/L,KAAK+o2B,SAAS14kB,UAAU3/Q,SAAW3E,GACnC/L,KAAK+o2B,SAASsC,kBAAkBh7zB,GAAM,QAI7C,CACD,IAAI88yB,EAAU+d,EAAcn/1B,GAC5B/L,KAAK+o2B,SAASpsQ,MAAM/7lB,KAAKus1B,IAIjC,GADAnt1B,KAAK+o2B,SAASuC,sBACVL,EAA4B,CAC5B,IAAI56kB,EAAYrwR,KAAK+o2B,SAASpsQ,QAAQr8lB,OAAS,GAAK,EACpDN,KAAK+o2B,SAAShc,SAAS18jB,GAAW,MAjJ9C,uCAoJI,SAA0BrlP,EAAUk2yB,EAAYniyB,EAAUiszB,GACtD,IACI,IAAKjszB,EAED,YADA/T,EAAS56B,QAAQ,CAAE651B,cAAc,IAGrCjq2B,KAAK+o2B,SAASlI,YAAY3+V,WAAanjd,EAASmjd,WAAaligB,KAAK+o2B,SAAS2B,mBAAmBxpB,KAAgB8pB,KACvGhr2B,KAAK+o2B,SAASlI,YAAY3+V,SAASnjd,EAASmjd,UACnDligB,KAAKur2B,aAAaxszB,EAASqiyB,UAAW4pB,GACtChr2B,KAAK+o2B,SAASyC,kBAAkBzszB,GAChC/T,EAAS56B,QAAQ2uC,GATrB,QAY6B,YAArB/T,EAASmsD,SACTnsD,EAAS56B,QAAQ,CAAE651B,cAAc,SAlKjD,KCEawB,GAAb,0CACI,WAAYC,GAAuB,6BAC/B,gBACKxpW,SAAWx5f,GAAAA,WAAc,GAC9B,EAAKij2B,gBAAkBjj2B,GAAAA,YAAc,GACrC,EAAKyh2B,sBAAwB,GAC7B,EAAKx1oB,WAAajsN,GAAAA,YAAc,GAChC,EAAKmzY,WAAanzY,GAAAA,YAAcyC,EAAAA,GAAAA,iBAAgB,SAAU,8CAC1D,EAAK8jR,YAAcvmR,GAAAA,aACnB,EAAK/F,KAAO+F,GAAAA,WAAc,IAC1B,EAAKgkB,WAAahkB,GAAAA,aAClB,EAAKkj2B,cAAgBlj2B,GAAAA,cAAgB,mBAAQ,EAAKumR,gBAAkB,EAAK48kB,kBACzE,EAAKA,aAAenj2B,GAAAA,YAAc,GAClC,EAAKG,QAAUH,GAAAA,aAAgB,CAC3B+H,KAAM,WACF,OAAI,EAAKk71B,mBAGF,EAAKh3oB,cAEhB/jN,MAAO,SAAC6+a,GACJ,EAAKk8a,iBAAiBl8a,MAG1Bi8a,IACA,EAAKI,yBAA2B,IAAI5j2B,GAAAA,mBACpC,EAAKO,aAAa7H,KAAK,EAAKkr2B,2BAEhC,EAAKrj2B,aAAa7H,KAAK,EAAKgr2B,cAAe,EAAK/i2B,SA3BjB,EADvC,iDA8BI,SAAmBoB,GACf,SAAUA,IAAMjK,KAAKmq2B,sBAAsBlg2B,MA/BnD,yBAiCI,SAAYkc,GACHA,EAMDnmB,KAAK0sB,WAAW,CACZ,oBAAqBvG,EAASnI,OAC9B,iBAAkBmI,EAASrN,IAC3B,kBAAmBqN,EAASzN,KAC5B,mBAAoByN,EAASpI,QATjC/d,KAAK0sB,WAAW,CACZ,sBAAsB,MApCtC,sBAgDI,SAASq/0B,GACDA,IAAwB/r2B,KAAKivR,eAAiBjvR,KAAKgs2B,oBAAsBD,GAAwBA,IACjG/r2B,KAAK20N,YAAW,GAChB30N,KAAKkigB,SAAS,GACdligB,KAAKgs2B,kBAAoB,KACzBhs2B,KAAKivR,YAAY,MACjBjvR,KAAKis2B,wBAA0Bjs2B,KAAKis2B,uBAAuB771B,QAAQ271B,GACnE/r2B,KAAKks2B,gCACLls2B,KAAK6r2B,cAAa,MAxD9B,qBA2DI,WACI7r2B,KAAKks2B,iCACL,yDA7DR,2CA+DI,WACIls2B,KAAKms2B,0BAA4Bns2B,KAAKms2B,yBAAyBzg0B,WAhEvE,yCAkEI,WACI1rC,KAAKis2B,wBAA0Bjs2B,KAAKis2B,uBAAuBvg0B,WAnEnE,2BAqEI,SAAc0g0B,EAAkBC,EAAQC,GAAoB,WACpDts2B,KAAK20N,eACL30N,KAAKua,OACLva,KAAKus2B,8BACLvs2B,KAAKks2B,iCAETls2B,KAAKgs2B,kBAAoBI,EACzBps2B,KAAK20N,YAAW,GAChB30N,KAAKkigB,SAAS,GACd,IAAIsqW,EAAuB9+1B,GAAAA,WACvB++1B,EAAyB/+1B,GAAAA,WA8B7B,OA7BA1N,KAAKis2B,uBAAyBO,EAC9Bxs2B,KAAKms2B,yBAA2BM,EAChCH,EACKlz0B,MAAK,SAAA61P,GACNw9kB,EAAuBr81B,QAAQ6+Q,MAChCnuP,MAAK,WACJ2r0B,EAAuB/g0B,SACvB8g0B,EAAqB9g0B,SACrB,EAAKu4L,SAASmooB,MAElBK,EAAuBrz0B,MAAK,SAAA61P,GACxB,EAAKA,YAAYA,MAErBjvR,KAAKua,KAAO,WACR,EAAKsx1B,cAAa,GAClB,EAAKlp2B,MAAKwI,EAAAA,GAAAA,iBAAgB,gBAAiB,qDAC3C,IAAI8jR,EAAc,EAAKA,cACnBy9kB,EAAaz9kB,GAAe,EAAK+8kB,kBACrC,IACIt+1B,GAAAA,WAAa2+1B,IAAWA,EAAOK,GAC3Bz9kB,IACA,EAAKk7kB,sBAAsBl7kB,IAAe,GAC1C,EAAK+8kB,oBACL,EAAK7B,sBAAsB,EAAK6B,oBAAqB,GAL7D,QAQI,EAAK/noB,SAASgrD,KAGfjvR,KAAKis2B,uBAAuBz71B,cA7G3C,GAAuCxP,GAAAA,YCH1B2r2B,GAAb,WACI,WAAYC,IAAkB,eAC1B5s2B,KAAK4s2B,iBAAmBA,EAFhC,wCAII,SAAU5/U,EAAU7phB,EAAU6iC,GAC1B,GAAKgnf,EAAL,CAEA,GAAIhnf,GACA,GAAIhmC,KAAK6s2B,eAAe7/U,GACpB,YAEC7phB,EACLnD,KAAK8s2B,eAAe9/U,GAEpBhthB,KAAK+s2B,cAAc//U,GACvB,OAAO,KAff,2BAiBI,SAAcA,GAEV,IADA,IAAIggV,EAAeht2B,KAAK4s2B,mBACf7g2B,EAAI,EAAGA,EAAIih2B,EAAa1s2B,OAAQyL,IACrC,GAAIih2B,EAAajh2B,IAAMih2B,EAAajh2B,GAAG6z0B,MAAQ5yT,EAASpmhB,OAAQ,CAE5D,IADA,IAAIhF,EAAQor2B,EAAajh2B,GAAG8z0B,OAAS,GAC5Bh/0B,EAAQ,EAAGA,EAAQe,EAAMtB,OAAQO,IACtC,GAAIe,EAAMf,IAAWe,EAAMf,GAAO4lF,YAAcumc,EAASzof,MACrD,GAAa,GAAT1jC,EAAY,CACZ,IAAImQ,EAAIpP,EAAM2N,OAAO1O,EAAO,GAAG,GAC/Bb,KAAKit2B,iBAAiBj81B,GACtBpP,EAAMs7J,QAAQlsJ,QAGdhR,KAAKit2B,iBAAiBrr2B,EAAMf,SAGhCe,EAAMf,GAAO4liB,UAAYqwT,GAAgBoW,KAEjD,UAnChB,4BAuCI,SAAelgV,GAEX,IADA,IAAIggV,EAAeht2B,KAAK4s2B,mBACf7g2B,EAAI,EAAGA,EAAIih2B,EAAa1s2B,OAAQyL,IACrC,GAAIih2B,EAAajh2B,IAAMih2B,EAAajh2B,GAAG6z0B,MAAQ5yT,EAASpmhB,OAEpD,IADA,IAAIhF,EAAQor2B,EAAajh2B,GAAG8z0B,OAAS,GAC5Bh/0B,EAAQ,EAAGA,EAAQe,EAAMtB,OAAQO,IACtC,GAAIe,EAAMf,IAAWe,EAAMf,GAAO4lF,YAAcumc,EAASzof,MAAQ,CAC7D,GAAI1jC,GAASe,EAAMtB,OAAS,EAAG,CAC3B,IAAI0Q,EAAIpP,EAAM2N,OAAO1O,EAAO,GAAG,GAG/B,OAFAb,KAAKit2B,iBAAiBj81B,QACtBpP,EAAMhB,KAAKoQ,GAIf,YADAhR,KAAKit2B,iBAAiBrr2B,EAAMf,OApDpD,4BA2DI,SAAemshB,GAGX,IAFA,IAAImgV,GAAiB,EACjBH,EAAeht2B,KAAK4s2B,mBACf7g2B,EAAI,EAAGA,EAAIih2B,EAAa1s2B,OAAQyL,IACrC,GAAIih2B,EAAajh2B,IAAMih2B,EAAajh2B,GAAG6z0B,MAAQ5yT,EAASpmhB,OAOpD,YANCom2B,EAAajh2B,GAAG8z0B,OAAS,IAAI5/0B,SAAQ,SAAAssH,GAC9BA,EAAEk6a,YAAcqwT,GAAgBoW,KAChCC,GAAiB,EAEjB5gvB,EAAEk6a,UAAYqwT,GAAgBoW,QAK9C,OAAOC,IAzEf,8BA2EI,SAAiBC,GACbA,EAAU3mU,UAAY2mU,EAAU3mU,YAAcqwT,GAAgBuW,UAAYvW,GAAgBwW,WAAaxW,GAAgBuW,cA5E/H,KCkBaE,GAAb,0CACI,WAAYC,EAAYC,EAAuBhL,EAAuB/x0B,GAAwE,MAA7D5H,EAA6D,wDAAhD4i1B,EAAgD,uCAAzBgC,EAAyB,uCAAT5t2B,EAAS,8DAC1I,gBACK4r2B,sBAAwBA,EAC7B,EAAK5r2B,QAAUA,EACf,EAAK6t2B,qBAAuBjl2B,GAAAA,gBAAmB,CAAC,EAAG,EAAG,IAAK,EAAG,IAAM,GAAK,MACzE,EAAKq+1B,WAAar+1B,GAAAA,WAAc,KAChC,EAAKo+1B,YAAcp+1B,GAAAA,WAAc,MACjC,EAAKy+1B,eAAiBz+1B,GAAAA,WAAc,IACpC,EAAKkl2B,iBAAmBll2B,GAAAA,WAAc,MACtC,EAAKml2B,kBAAoBnl2B,GAAAA,WAAc,MACvC,EAAKy91B,mBAAqBz91B,GAAAA,WAAc,MACxC,EAAKk+1B,SAAWl+1B,GAAAA,WAAc,IAC9B,EAAKgi2B,mBAAqB,GAC1B,EAAKoD,qBAAuB,GAC5B,EAAKvF,uBAAyB,GAC9B,EAAK4B,sBAAwB,GAC7B,EAAKrH,eAAiBp61B,GAAAA,WAAc,IACpC,EAAK0h2B,uBAAyB,GAC9B,EAAK2D,4BAA8B,GACnC,EAAKC,gBAAkB,GACvB,EAAKC,cAAgB,GACrB,EAAKC,kBAAoB,IAAIvB,IAAiB,kBAAM,EAAKsB,eAAiB,MAC1E,EAAKE,yBAA2B,GAChC,EAAK11b,UAAY,GACjB,EAAKzpJ,WAAa,GAClB,EAAK49jB,mBAAqB,WAA0B,IAAzBwhB,EAAyB,uDAAP,GACrClhB,EAAc,EAAKvwP,QAAQ,EAAKtsU,aACpC,IAAK68jB,IAAgBA,EAAY6a,sBAC7B,MAAO,GAEX,IAAIta,EAAe,GACf4gB,EAAkB,SAAlBA,EAA4BhH,EAAcphL,GACrCohL,IAGLA,EAAal80B,WAAuC,GAA3Bk80B,EAAaiH,WAAmB7gB,EAAa7s1B,KAAKym2B,GAC3EA,EAAa9Z,QAAwC,GAA9B8Z,EAAa9Z,OAAOjt1B,QAAe+m2B,EAAa9Z,OAAOtt1B,SAAQ,SAACsu2B,GAAiBF,EAAgBE,EAAYtoL,QAGxI,GADAooL,EAAgBnhB,EAAY1N,QAASiO,IAChCA,EACD,MAAO,GAEX,IAAI+gB,EAAqB,GACrBC,EAAmB,SAAUn91B,EAAO3O,GAEpC,IADA,IAAI+r2B,EAAap91B,EAAQ3O,EAAKrC,OACrByL,EAAI,EAAGA,GAAK2i2B,EAAY3i2B,IAC7BpJ,GAAQ,IAEZ,OAAOA,GAEPgs2B,EAAkBzhB,EAAY6a,sBAAsBzn2B,OAAQsu2B,GAAkB,EAClFnhB,EAAaxt1B,SAAQ,SAAC4u2B,GAClB,IAAIzpxB,EAAMopxB,EAAmBK,EAAYzpxB,KACpCA,IACDA,EAAM,GACNopxB,EAAmBK,EAAYzpxB,KAAOA,GAE1CA,EAAIypxB,EAAYj5wB,KAAOi5wB,EAAY1gB,uBAAyB0gB,EAAYls2B,OACpEgs2B,EAAkBE,EAAYj5wB,MAC9B+4wB,EAAkBE,EAAYj5wB,KAE9Bg5wB,EAAiBC,EAAYj5wB,MAC7Bg5wB,EAAiBC,EAAYj5wB,QAGrC,IAAI/mF,EAAS,GAUb,OATA2/1B,EAAmBvu2B,SAAQ,SAACmlF,EAAKvkF,GAC7B,IAAK,IAAI2a,EAAImz1B,EAAiBnz1B,GAAKoz1B,EAAgBpz1B,IAAK,CACpD,IAAI8mL,EAAUl9G,EAAI5pE,GAAK4pE,EAAI5pE,GAAK4y1B,EAAkB,GAClDv/1B,GAAU2M,GAAKoz1B,EAAiBtsqB,EAAUmsqB,EAAiBvhB,EAAY6a,sBAAsBvs1B,GAAI8mL,GAEjGzhM,GAAS2t2B,EAAmBlu2B,OAAS,IACrCuO,GAAU,WAGXA,GAEX,EAAKig2B,UAAYpm2B,GAAAA,YAAc,GAC/B,EAAKwk1B,YAAcxk1B,GAAAA,WAAc,MACjC,EAAKqm2B,uBAAyBrm2B,GAAAA,WAAc,MAC5C,EAAK2nR,UAAY3nR,GAAAA,YAAe,GAChC,EAAKuk1B,qBAAuBvk1B,GAAAA,YAAc,GAC1C,EAAKsm2B,YAActm2B,GAAAA,aACnB,EAAKq61B,mBAAqBr61B,GAAAA,aAC1B,EAAKm+1B,YAAcn+1B,GAAAA,YAAc,GACjC,EAAKk0F,aAAel0F,GAAAA,WAAc,IAClC,EAAKum2B,iBAAmBvm2B,GAAAA,YAAc,GACtC,EAAKwm2B,cAAgBxm2B,GAAAA,YAAc,GACnC,EAAKi0lB,MAAQj0lB,GAAAA,gBAAmB,IAAII,OAAO,CAAEC,UAAW,CAAEnG,QAAS,GAAIoG,OAAQ,2BAC/E,EAAKmm2B,UAAYzm2B,GAAAA,YAAc,GAC/B,EAAK0m2B,UAAY1m2B,GAAAA,WAAcsj1B,IAC/B,EAAKqjB,eAAiB3m2B,GAAAA,cAAgB,kBAAM,EAAKm41B,YAAYlsoB,eAAiB,EAAKouoB,wBACnF,EAAKiE,MAAQt+1B,GAAAA,WAAc,GAC3B,EAAK6kB,KAAO7kB,GAAAA,aAAgB,CACxB+H,KAAM,WACF,IAAI2+1B,EAAY,EAAKA,YACrB,OAAIA,GAAapjB,IAAoC,IAAjB,EAAKgb,QAC9BoI,EAEJ,EAAKpI,SAEhBp21B,MAAO,SAACmT,GACAA,EAAM,GACN,EAAKqr1B,UAAUpjB,IACf,EAAKgb,MAAMjj1B,IAGX,EAAKqr1B,UAAUrr1B,MAI3B,EAAKqt0B,sBAAwB,kBAAM,EAAK0R,kBACxC,EAAKwM,iBAAmB5m2B,GAAAA,cAAgB,WACpC,IAA0B,IAAtB,EAAK2nR,YACL,OAAOllR,EAAAA,GAAAA,iBAAgB,UAAW,gDAGlC,IAAIok2B,GAASpk2B,EAAAA,GAAAA,iBAAgB,KAAM,+CACnC,OAAQ,EAAKklR,YAAc,EAAK,IAAMk/kB,EAAS,IAAM,EAAK5yQ,QAAQr8lB,UAG1E,EAAKgr2B,oBAAsB,WAAQ,EAAKkE,iBAAmB,EAAKA,eAAL,IAC3D,EAAKC,YAAc/m2B,GAAAA,WAAc,GACjC,EAAK8m2B,cAAgB9m2B,GAAAA,aACrB,EAAKgn2B,eAAiBhn2B,GAAAA,YAAc,GACpC,EAAKin2B,yBAA2Bjn2B,GAAAA,YAAc,GAC9C,EAAKkn2B,qBAAsB,EAC3B,EAAKxqB,wBAAyB,EAC9B,EAAKz0xB,SAAWjoD,GAAAA,WAAc,KAC9B,EAAKmn2B,oBAAqB,EAC1B,EAAKC,qBAAuBpn2B,GAAAA,cAAgB,WACxC,IAAIqn2B,EAAiB,EAAKhB,yBACtBiB,EAAkBD,GAAkBA,EAAev+0B,WAAWjP,MAAK,SAAAvR,GAAC,OAAIA,EAAEi/1B,WAC1EC,EAAa,GAgCjB,OA/BI,EAAKjB,mBACD,EAAK/hB,eAIDgjB,EAHC,EAAKL,mBAGO,EAAKhP,YAAY3+V,WAAa,KAF9B1ob,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,gBAAiB,8DAA+D,EAAK011B,YAAY3+V,WAAWzzf,YAG3J,EAAKoh2B,oBAAqB,GAG1BK,GAAa/k2B,EAAAA,GAAAA,iBAAgB,2BAA4B,wCAGxD6k2B,IAAoB,EAAK9uB,WAC9BgvB,GAAa/k2B,EAAAA,GAAAA,iBAAgB,kCAAmC,iDAE3D,EAAK+10B,YACV,EAAK2uB,oBAAqB,EAKtBK,GAJsB,IAAtB,EAAK7/kB,aAAuB,EAAKwwkB,YAAYlsoB,cAIhCxpN,EAAAA,GAAAA,iBAAgB,2CAA4C,sCAH5DA,EAAAA,GAAAA,iBAAgB,oBAAqB,4DAMjD,EAAK+j2B,iBACV,EAAKW,oBAAqB,EAC1BK,GAAa/k2B,EAAAA,GAAAA,iBAAgB,aAAc,kCAEtC,EAAKyxF,iBACVszwB,EAAa,EAAKtzwB,gBAEfszwB,KACRpn2B,OAAO,CAAEC,UAAW,CAAEnG,QAAS,OAClC,EAAKg31B,WAAalx1B,GAAAA,gBAAmB,IACrC,EAAKyn2B,wBAA0Bzn2B,GAAAA,YAAc,GAC7Cum1B,GAAWue,GAAcve,MACzB,EAAKmhB,WAAa,IAAItH,IAAJ,WAClB,EAAKjI,YAAc,IAAI4K,GAAkBC,GACzC,EAAKrV,oBAAsB3l0B,GAAaA,EAAU2l0B,oBAClD,EAAKoM,sBAAwBA,GAAyB,IAAIoH,IAAJ,WACtD,EAAKlJ,eAAiB8M,GAAyB,IAAI3S,GAAsB,KAAMpq0B,GAC/E,EAAK2/0B,UAAYvn1B,EACjB,EAAKi70B,cAAgB,IAAIvG,GAAckQ,GAAlB,WACjBh90B,IACA,EAAK4/0B,wBAA0B5/0B,EAAU6/0B,aACzC,EAAKC,uBAAyB9/0B,EAAU8/0B,uBACxC,EAAKC,cAAgB//0B,EAAU+/0B,cAC/B,EAAK1M,cAAchE,oBAAsBrv0B,EAAUgg1B,SACnD,EAAKC,kBAAoBjg1B,EAAUig1B,kBACnC,EAAKC,sBAAwBlg1B,EAAUkg1B,uBAE3C,EAAKno2B,aAAa7H,KAAK8t1B,GAAuBv90B,WAAU,SAACoV,GAAD,OAAeA,GAAY,EAAKop1B,0BAAyB,OACjH,EAAKln2B,aAAa7H,KAAK,EAAKqu2B,iBAAiB991B,WAAU,SAACN,GACpD,GAAKA,EAkBD,EAAKgw1B,YAAYl+1B,MAAKwI,EAAAA,GAAAA,iBAAgB,2BAA4B,yCAClE,EAAK011B,YAAYhld,YAAW1wY,EAAAA,GAAAA,iBAAgB,SAAU,kDAnB7C,CACT,EAAKy71B,SAAS7iB,MAGd,IAFA,IAAI7C,EAAa,EAAKilB,qBAClB/kB,EAAY,EAAKzkP,QAAQr8lB,OACpByL,EAAI,EAAGA,EAAIq10B,EAAWr10B,IAAK,CAChC,IAAIskC,EAAO,EAAKssjB,QAAQ5wlB,GACnBskC,EAAKw2zB,eACNx2zB,EAAKwg0B,cAETxg0B,EAAKg4zB,WAAW,EAAKrB,SACrB32zB,EAAKi1zB,iBAAmB,EACxBj1zB,EAAK80zB,mBAAqB90zB,EAAK62zB,eAAehmB,EAAY,EAAK0lB,WAAY,EAAKI,SAE/E,EAAKoJ,WAAW7tkB,YACjB,EAAK6tkB,WAAW3G,cAAc,EAAG,OAAGrx1B,QAQhD,EAAK3P,aAAa7H,KAAK,EAAKul2B,mBAAmBh11B,WAAU,SAACN,GACtD,EAAK+11B,SAAS/11B,EAASkz0B,KAAiB,QAE5C,EAAKt70B,aAAa7H,KAAK,EAAK6u2B,YAAYt+1B,WAAU,kBAAM,EAAKm61B,0BAC7D,EAAK7i2B,aAAa7H,KAAK,EAAK2sB,MAC5B,EAAK9kB,aAAa7H,KAAK,EAAKyu2B,gBAC5B,EAAK5m2B,aAAa7H,KAAK,EAAK0u2B,kBAC5B,EAAK7m2B,aAAa7H,KAAK,EAAKig2B,aAC5B,EAAKp41B,aAAa7H,KAAK,EAAKkv2B,sBAC5B,EAAKrn2B,aAAa7H,KAAK,EAAKqs1B,qBAAqB970B,WAAU,WACvD,IAAK,EAAK870B,uBAAwB,CAC9B,IAAIC,EAAc,EAAKvwP,QAAQ,EAAKtsU,aACpC68jB,GAAeA,EAAYiY,iBAAgB,QAGnD,EAAK181B,aAAa7H,KAAK,EAAKom2B,MAAM711B,WAAU,WACxC,GAAI,EAAK870B,uBACL,EAAKtwP,QAAQ18lB,SAAQ,SAACowC,GAClBA,EAAKg4zB,WAAWh4zB,EAAK9iB,QACrB8iB,EAAK80zB,iBAAgB,MAEzB,EAAKmG,0BAEJ,CACD,IAAIpe,EAAc,EAAKvwP,QAAQ,EAAKtsU,aACpC68jB,GAAeA,EAAYiY,gBAAgBxqxB,kBAAkBuywB,EAAYiY,gBAAgBz01B,aAGjG,EAAKjI,aAAa7H,KAAK8H,GAAAA,UAAY,WAC/B,IAAIoo2B,EAAa,EAAKn0Q,QAClBtsU,EAAY,EAAKA,YACrB,GAAKyglB,KAAczglB,GAAayglB,EAAWxw2B,QAA3C,CAEA,IAAI4s1B,EAAc,KACd78jB,GAAa,IACb68jB,EAAc4jB,EAAWzglB,IACzB68jB,GAAe,EAAKA,YAAYx80B,QAChC,EAAKw80B,YAAYA,QAErBwe,IACA,EAAKqF,2BAA6B,IAAI9kB,IAAJ,WAClC,EAAKxj1B,aAAa7H,KAAK,EAAKmw2B,6BA1P0G,EADlJ,2CA8PI,SAAaC,GACThx2B,KAAKgu2B,gBAAgB/t2B,SAAQ,SAAC+Q,GAAD,OAAOA,EAAE4u0B,MAAQoxB,IAAiBhg2B,EAAE6u0B,OAAS7u0B,EAAE6u0B,UAC5E,IAAIqB,EAAalh1B,KAAKmm2B,qBACtBnm2B,KAAK4q2B,gBACL5q2B,KAAK6g2B,YAAY58nB,SAASi9mB,GAC1Blh1B,KAAKgv2B,YAAY,MACjB,IAAK,IAAIjj2B,EAAI/L,KAAK28lB,QAAQr8lB,OAAS,EAAGyL,GAAK,EAAGA,IAAK,CAC/C,IAAIskC,EAAOrwC,KAAK28lB,QAAQ5wlB,GACpBA,EAAI/L,KAAKqwR,YACTrwR,KAAK28lB,MAAMn7lB,OAAO6uC,GAGlBA,EAAK4g0B,SAGbjx2B,KAAKkx2B,uBA7Qb,wBA+QI,SAAWlkV,EAAU7phB,EAAU6iC,GACtBhmC,KAAKku2B,kBAAkBiD,UAAUnkV,EAAU7phB,EAAU6iC,KAE1DhmC,KAAK4q2B,gBACL5q2B,KAAKgv2B,YAAY,MACjBhv2B,KAAK28lB,QAAQ18lB,SAAQ,SAAAowC,GAAI,OAAIA,EAAK4g0B,YAClCjx2B,KAAKkx2B,wBArRb,qBAuRI,YACI,wDACClx2B,KAAKy4a,WAAa,IAAIx4a,SAAQ,SAAAwj2B,GAAG,OAAIvl0B,aAAaul0B,OAClDzj2B,KAAKgvR,YAAc,IAAI/uR,SAAQ,SAAA+qC,GAAQ,OAAIA,EAASU,YACrD1rC,KAAK+j2B,eAAiB/j2B,KAAK+j2B,cAAc3l1B,UACzCpe,KAAKgqC,mBACLhqC,KAAKku2B,kBAAoB,OA7RjC,8BA+RI,SAAiBn4zB,GACbA,GAAO/1C,KAAK28lB,MAAMjvb,YAClB,IAAK,IAAIX,EAAM/sK,KAAK28lB,QAAQr8lB,OAAS,EAAGysK,GAAO,EAAGA,IAAO,CACrD,IAAIqksB,EAAWpx2B,KAAK28lB,QAAQ5vb,IAC3BqksB,EAASj8zB,UAAmC,IAAxBi8zB,EAAS/glB,YAAqBrwR,KAAK28lB,MAAMn7lB,OAAO4v2B,MAnSjF,yBAsSI,WACI,IAAIvn2B,EAAIua,EAAI+sG,EACZnxH,KAAKgu2B,gBAAkB,GACvBhu2B,KAAKiu2B,cAAgB,GACrBju2B,KAAKqx2B,qBAAuB,KACxBrx2B,KAAK2g2B,iBAAkE,QAA9C921B,EAAK7J,KAAK2g2B,eAAL,oBAAwD,IAAP921B,OAAgB,EAASA,EAAGo+tB,aAA8D,QAA9C7jtB,EAAKpkB,KAAK2g2B,eAAL,oBAAwD,IAAPv80B,OAAgB,EAASA,EAAGkt1B,oBAC9J,QAA9CngvB,EAAKnxH,KAAK2g2B,eAAL,oBAAwD,IAAPxvuB,GAAyBA,EAAGogvB,qBACvFvx2B,KAAK4q2B,gBACL5q2B,KAAK8i2B,eAAe,IACpB9i2B,KAAK+t2B,4BAA4B9t2B,SAAQ,SAAAC,GAAI,OAAIA,EAAKke,aACtDpe,KAAK+t2B,4BAA8B,GACnC/t2B,KAAKgv2B,YAAY,MACjBhv2B,KAAKqwR,WAAW,GAChBrwR,KAAK6m2B,aAAY,GACjB7m2B,KAAK48F,aAAa,IAClB58F,KAAK+i2B,mBAAmB,MACxB/i2B,KAAK6g2B,YAAY58nB,SAAS,MAC1BjkO,KAAKmu2B,yBAAyBlu2B,SAAQ,SAAAwlD,GAAC,OAAIA,EAAE/Z,YAC7C1rC,KAAKmu2B,yBAA2B,GAChCnu2B,KAAK28lB,QAAQ18lB,SAAQ,SAAA+Q,GAAC,OAAIA,EAAEoN,aAC5Bpe,KAAK28lB,MAAM,CAAC38lB,KAAKmr2B,YAAY,OAAG/y1B,EAAWpY,KAAK6m2B,eAChD7m2B,KAAK+j2B,cAAcnG,kBAAkB,QA3T7C,wBA6TI,SAAWvtkB,EAAW20kB,EAAc/8H,GAChC,OAAO,IAAIi9H,GAAYll2B,KAAMqwR,EAAW20kB,EAAc/8H,KA9T9D,iCAgUI,SAAoBi5G,GAAY,WAC5B,OAAO,kBAAM,EAAKqnB,wBAA0B,EAAKA,uBAAuBrnB,MAjUhF,2BAmUI,WACIlh1B,KAAK+i2B,mBAAmB,MACxB/i2B,KAAKgv2B,YAAY,QArUzB,8BAuUI,WACIhv2B,KAAKwx2B,gBACLxx2B,KAAKyx2B,cACLzx2B,KAAK+u2B,uBAAuB,QA1UpC,uCA4UI,SAA0B2C,GACtB,IAAI37yB,EAAQ/1D,KACZ,OAAO,SAACw/0B,EAAOh/0B,GAEX,GADAu1D,EAAMg3xB,SAAS2kB,GAAgB,GAC1BlyB,EAAL,CAEA,IAAInvyB,EAAO0lB,EAAM4miB,QAAQ+0Q,GACzB,GAAKrh0B,EAAL,CAEAA,EAAKm8yB,YAAY,IACjB,IAAIrp1B,KAAc3C,IAAKA,EAAE2C,UACrB6iC,KAAaxlC,IAAKA,EAAEwlC,SACpB2r0B,EAAkBnyB,GAASA,EAAMmO,WACjClptB,EAAiB,WACjB,GAAIktuB,EAAiB,CACjB,GAAIA,EAAgBX,cAAgBj7yB,EAAMorxB,UAAYprxB,EAAM67yB,cAAgB77yB,EAAMi4yB,gBAAgB1t2B,OAAS,EAAG,CAC1G,GAAIy1D,EAAMq0yB,uBACN,OACJr0yB,EAAM67yB,aAAaD,EAAgBX,mBAElC,GAAIW,EAAgB3kV,UAAYj3d,EAAMorxB,UAAYprxB,EAAM87yB,YAAc97yB,EAAMk4yB,cAAc3t2B,OAAS,EAAG,CACvG,GAAIy1D,EAAMq0yB,uBACN,OACJr0yB,EAAM87yB,WAAWF,EAAgB3kV,SAAU7phB,EAAU6iC,GAEzD,GAAI2r0B,EAAgBthlB,WAAa,EAAG,CAChC,IAAIyhlB,EAAa/7yB,EAAM4miB,QAAQ/2lB,QAAO,SAAAyqC,GAAI,OAAIA,EAAKggP,YAAcshlB,EAAgBthlB,aAAW,GACxFyhlB,IACA/7yB,EAAMg3xB,SAAS4kB,EAAgBthlB,WAC/ByhlB,EAAWtlB,YAAYmlB,EAAgBh9iB,SACvC5+P,EAAMg8yB,8BAAgCh8yB,EAAMg8yB,6BAA6BJ,QAG5E,CAWGA,EAAgB/yzB,KAVF,SAAUA,GACxB,IAAIozzB,EAA6B,kBAARpzzB,EAIzB,OAHIozzB,IACApzzB,EAAMA,EAAI3b,eAEF,UAAR2b,IAGGmX,EAAMqvxB,wBAA2B4sB,IAAgD,IAAhCpzzB,EAAIz4C,QAAQ,gBAE7C8r2B,CAAYN,EAAgB/yzB,MACnDw+yB,GAAoBuU,EAAgB/yzB,IAAK+yzB,EAAgB/q2B,QAAU,aAK/EmvD,EAAMu6yB,yBAA2Bv6yB,EAAMu6yB,wBAAwBoB,EAAgBlyB,EAAO/6sB,IAE1FA,SAhYZ,yBAmYI,WACIzkI,KAAK+w2B,4BAA8B/w2B,KAAK+w2B,2BAA2BtkB,gBApY3E,wBAsYI,SAAWkQ,GACP381B,KAAKky2B,mBACL,IAAIln0B,EAAWt9B,GAAAA,WAQf,OAPA1N,KAAKgvR,WAAWpuR,KAAKoqC,GACrBhrC,KAAKmy2B,6BAA+Bnn0B,EACpChrC,KAAK2g2B,eAAeyR,WAAWzV,GAAYvj0B,MAAK,SAAC2lB,GAC7C/T,EAAS56B,QAAQ2uC,MAClBje,MAAK,SAAC4e,GACL1U,EAASU,OAAOgU,MAEb1/C,KAAK0G,WAAWskC,EAASx6B,aAhZxC,0BAkZI,SAAaqZ,GAAuC,WAA3Bwo1B,IAA2B,yDAC5Crn0B,EAAWt9B,GAAAA,WAUf,OATA1N,KAAK2g2B,eAAe2R,aAAazo1B,GAAYuP,MAAK,SAAA2lB,GAC1CszzB,IACA,EAAKH,mBACL,EAAKxr2B,WAAWskC,EAASx6B,YAE7Bw6B,EAAS56B,QAAQ2uC,MAClBje,MAAK,SAAC4e,GACL1U,EAASU,OAAOgU,MAEb1U,EAASx6B,YA7ZxB,+CA+ZI,SAAkC+h2B,GAC9B,IAAI1o2B,EACC0o2B,GAAwBA,EAAoBC,aAEP,QAAzC3o2B,EAAK0o2B,EAAoB/g1B,kBAA+B,IAAP3nB,GAAyBA,EAAG5J,SAAQ,SAAC0uG,GAC9EA,EAAU8jwB,cAEXF,EAAoBC,WAAWjw1B,MAAK,SAAAvR,GAAC,OAAIA,EAAEi8E,WAAa0hB,EAAU+jwB,aAClErtzB,GAAAA,uBAAAA,WAAkCspD,EAAU8jwB,aAAc,qBAva1E,+BA2aI,SAAkB/6zB,GACd,IAAIi7zB,EAAY3y2B,KAAK28lB,QAAQ,GAC7Bg2Q,EAAU3M,mBAAoB,EAC1B2M,EAAUlN,mBAA0C,IAArB/tzB,EAAO0pyB,YAEtC1pyB,EAAOk7zB,mBAAqBD,EAAUvM,oBACtCuM,EAAUvM,oBAAoBh21B,QAAQsnC,EAAOk7zB,mBAG7CD,EAAUvM,qBAAuBuM,EAAUjM,aAAa1m2B,MAE5DA,KAAKqr2B,kBAAkBsH,GAAW,MAtb1C,wBAwbI,SAAWE,GAAuB,WAC9B7y2B,KAAKkv2B,eAAc,GACnBlv2B,KAAK4t2B,iBAAiB,MACtB5t2B,KAAK6t2B,kBAAkB,MACvB7t2B,KAAKmm2B,mBAAmB,MACxBnm2B,KAAKiqD,cACL,IAAI6ozB,EAAsBpl2B,GAAAA,WA0C1B,OAzCA1N,KAAKgvR,WAAWpuR,KAAKky2B,GACrBA,EAAoB150B,MAAK,WACrBy50B,EAAsBz50B,MAAK,SAAC250B,GAExB,GADA,EAAK7D,eAAc,IACf6D,GAAsBA,EAAkBrzzB,OAAUqzzB,EAAkBC,yBAA2BD,EAAkB5xB,WAAY4xB,EAAkB7xB,WAyB1I6xB,EAAkBC,uBACvB,EAAKxn0B,eAAcrgC,EAAAA,GAAAA,iBAAgB,kDAAmD,+DAAgE,MAAM,EAAM4n2B,EAAkBC,yBAGpL,EAAKnM,aAAY,GACjB,EAAKr7zB,eAAcrgC,EAAAA,GAAAA,iBAAgB,+CAAgD,6DAA8D4n2B,GAAqBA,EAAkBrzzB,YA9B5B,CAC5J,EAAKkuzB,iBAAiBmF,EAAkB5xB,UACxC,EAAK0sB,kBAAkBkF,EAAkBjX,WACzC,EAAKqK,mBAAmB4M,EAAkB7xB,YAC1C,EAAK4tB,UAAUiE,EAAkBjE,WACjC,IAAImE,EAAeF,EAAkBE,aAWrC,GAVIA,IACIA,EAAa1h2B,QACb,EAAKu11B,YAAYmM,EAAa1h2B,QAC9B0h2B,EAAa3h2B,OACb,EAAKy11B,WAAWkM,EAAa3h2B,OACjC,EAAK611B,eAAgB8L,EAAa75zB,OAAS,EAAK85zB,WAAc,QAAUD,EAAa75zB,MAAQ,IAAM,KAEvG,EAAKi4zB,qBAAuB0B,EAAkBI,aAC9C,EAAKC,kCAAkCL,EAAkBhD,gBACzD,EAAKhB,uBAAuBgE,EAAkBhD,gBAC1CgD,EAAkB7xB,aAAe,EAAK+tB,mBAAoB,CAC1D,IAAIoE,EAAoB3l2B,GAAAA,WAAa0C,QAAQ2i2B,EAAkB7xB,YAAY1w0B,UAC3E,EAAKqw1B,YAAYyB,cAAc,MAAM,WAAQ,EAAKuI,cAAgBwI,GAC7Dj1yB,QAAO,WAAQ,EAAK6wyB,kBAAiB,MAC1C,EAAKA,kBAAiB,GACK,EAAKnE,yBAAwB,EACxDwI,CAAqBP,EAAkB7xB,iBAUhDpgzB,MAAK,SAAC4e,GACL,EAAKwvzB,eAAc,GACnB,EAAK1E,yBAEVp61B,UACIyi2B,IAxef,uCA0eI,SAA0BU,EAAqBC,GAC3C,IAAIC,EAAYF,GAAuBj41B,KAAK+6E,MAAMk9wB,GAClD,OAAQC,EAAW,IAAI3Y,GAA2B761B,KAAK451B,YAAc,IAAIW,GAAqBv61B,KAAK451B,aAAa76zB,YAAY000B,KA5epI,wBA8eI,WACIzz2B,KAAKiqD,cACLjqD,KAAKwx2B,gBACLxx2B,KAAKyx2B,cACLzx2B,KAAKmm2B,mBAAmB,MACxBnm2B,KAAK4t2B,iBAAiB,MACtB5t2B,KAAK6t2B,kBAAkB,MACvB7t2B,KAAK+u2B,uBAAuB,QArfpC,wBAufI,WAEI,OADA/u2B,KAAKiqD,cACEjqD,KAAKkx2B,uBAzfpB,qCA2fI,SAAwBrn1B,EAAY4y0B,GAAqB,WACjDvb,EAAalh1B,KAAKmm2B,qBACtB,IAAInm2B,KAAKiv2B,oBAAuB/tB,EAAhC,CAEA,IAAIqb,EAA0Bv81B,KAAK+i2B,qBAAuBzn1B,KAAKC,WAAU,IAAI24B,GAAAA,iBAAkBzV,UAAUz+B,KAAK+i2B,uBAAyB,KAEnI/3zB,EAAWt9B,GAAAA,WAqBf,OApBA7K,YAAW,kBAAM,EAAK891B,eAAe+S,wBAAwBxyB,EAAYqb,EAF/C,EAAKuG,gBAAkB,EAAKA,iBAAiB581B,KAAI,SAAAhG,GAAI,OAAIA,EAAK+h1B,eAE2Bp4zB,EAAY4y0B,GAC1Hrj0B,MAAK,SAAC2lB,GACP,IACQA,GAAYA,EAAStT,UACjBsT,EAAS40zB,UACT9kB,KAAiBE,eAAehwyB,EAAStT,SAAUgxzB,EAAqB,EAAKmX,6BAG7E/kB,KAAiBC,aAAa/vyB,EAAStT,SAAUgxzB,OAAqBrk1B,EAAW,EAAKw71B,8BANlG,QAWI5o0B,EAAS56B,QAAQ2uC,OAGpBje,MAAK,SAAA4e,GACN,IAAIX,EAAW,CAAEtT,SAAStgC,EAAAA,GAAAA,iBAAgB,wDAAyD,+EACnG6/B,EAASU,OAAOqT,SAEb/T,EAASx6B,aAthBxB,mCAwhBI,SAAsB6i2B,GAAmB,WACrC,OAAIrz2B,KAAKiv2B,qBAAsBjv2B,KAAKoq2B,yBAGpCpq2B,KAAKoq2B,uBAAyBrmB,KAC9B/j1B,KAAKmm2B,mBAAmB,MACxBnm2B,KAAK6g2B,YAAYyB,cAActi2B,KAAKoq2B,wBAAwB,WAAQ,EAAKS,cAAgBwI,GACpFj1yB,QAAO,WAAQ,EAAK6wyB,kBAAiB,MAC1Cjv2B,KAAKiv2B,kBAAiB,IACf,KAjiBf,gCAmiBI,WAAqB,WACb4E,EAAqBnm2B,GAAAA,WACzB,IAAK1N,KAAK8z2B,sBAAsBD,GAC5B,OAAO,KAEX,IAAI7o0B,EAAWt9B,GAAAA,WACXqm2B,EAAkB/z2B,KAAK4t2B,mBACvBvD,EAAwBrq2B,KAAKoq2B,uBAWjC,OATApq2B,KAAK2g2B,eAAeqT,mBADI,kBAAM,EAAKlG,qBAAqBiG,MAEnD360B,MAAK,SAAC2lB,GACP,EAAK0jzB,uBAAyB,EAAKA,sBAAsBwR,sBAAsBjp0B,EAAU+T,EAAUsrzB,EAAuBwJ,MAEzH/y0B,MAAK,WACN,EAAK2h0B,uBAAyB,EAAKA,sBAAsByR,uBAAuBlp0B,EAAUq/zB,GAC1FwJ,EAAmBno0B,YAEvBV,EAASozB,QAAO,kBAAM,EAAKgsyB,uBAAyB,MAC7Cp/zB,EAASx6B,YArjBxB,4BAujBI,SAAe0w0B,EAAYib,EAAgBgY,GAAwB,WAC3Dnp0B,EAAWt9B,GAAAA,WACf1N,KAAKgvR,WAAWpuR,KAAKoqC,GACrB,IAAIop0B,EAAkB1m2B,GAAAA,WAoBtB,OAnBA1N,KAAKmu2B,yBAAyBvt2B,KAAKwz2B,GACnCp02B,KAAKy4a,UAAU73a,KAAKiC,YAAW,WAC3B,IAAIwx2B,EAAkB,EAAKC,oBAAoBpzB,GAC3CyxB,EAAY,EAAKh2Q,QAAQ,GACzBy/P,GAAmC,OAAduW,QAAoC,IAAdA,OAAuB,EAASA,EAAU3M,qBAAuBmO,GAAoD,OAAdxB,QAAoC,IAAdA,OAAlCv61B,EAAkEu61B,EAAUrK,uBAAuBpnB,GAC7O,EAAKyf,eAAe4T,sBAAsBrzB,EAAYmzB,EAAiBlY,EAAgBC,GAClFhj0B,MAAK,SAAC2lB,GACPq1zB,EAAgBhk2B,QAAQ2uC,MAEvBje,MAAK,SAAC4e,GACP00zB,EAAgB1o0B,OAAOgU,MAE3B00zB,EAAgBh70B,MAAK,SAAC2lB,GAClB,EAAK4xzB,mBAAqB,EAAKA,kBAAkB5xzB,GACjD,EAAK0jzB,uBAAyB,EAAKA,sBAAsB+R,0BAA0Bxp0B,EAAUk2yB,EAAYniyB,EAAUs1zB,MACpHvz0B,MAAK,WACJ,EAAK2h0B,uBAAyB,EAAKA,sBAAsBgS,2BAA2Bzp0B,QAEzF,MACIA,EAASx6B,YA9kBxB,qCAglBI,WAAwD,WAAhC2j2B,EAAgC,wDAChDhkK,EAAUnwsB,KACVm81B,GAAiB,EACrBn81B,KAAKyi2B,sBAAsB8I,aAAa,EAAGvr2B,KAAKs02B,oBAAoBt02B,KAAKkh1B,aACzElh1B,KAAK28lB,QAAQ,GAAGqpQ,mBAAoB,EACpC,IAAI+E,EAAmB,SAAnBA,EAAoB7pB,GACN/wI,EAAQukK,eAAexzB,EAAYib,EAAgBgY,GACzD/60B,MAAK,SAACvqB,GAEV,GADAst1B,GAAiB,EACbjb,IAAe/wI,EAAQg2J,qBAE3B,GAAIt31B,GAAUA,EAAOo71B,eAAiB95J,EAAQo4J,uBAAuBrnB,GAAa,CAC9E,IAAIgpB,EAAkB,WACb/5J,EAAQo4J,uBAAuBrnB,IAChC6pB,EAAiB7pB,IAGzBkO,KAAiB,EAAK32a,UAAU73a,KAAKiC,WAAWqn2B,EAAiB9a,OAAmB8a,SAGpF,IACI,GAAIr71B,EAAO6wC,QAAU7wC,EAAOo71B,eAAiBp71B,EAAOuy0B,UAKhD,OAJAjxI,EAAQ02J,aAAY,GACpB12J,EAAQq6J,kBAAkB371B,EAAOuy0B,gBAC5BjxI,EAAQxzG,QAAQr8lB,QACjB6vsB,EAAQ9/a,WAAW,IAG3B,IAAKxhR,EAAOiiiB,UACR,OAEKjiiB,EAAOuy0B,UAAYjxI,EAAQxzG,QAAQr8lB,SACxC6vsB,EAAQ9/a,UAAU1qQ,KAAKG,IAAIjX,EAAOuy0B,UAAY,EAAGjxI,EAAQ9/a,cACzD8/a,EAAQxzG,MAAMptlB,OAAOV,EAAOuy0B,UAAWjxI,EAAQxzG,QAAQr8lB,SAE3D6vsB,EAAQwkK,gBAAgBzzB,GAf5B,QAkBI/wI,EAAQ0wJ,YAAY58nB,SAASi9mB,GAC7B,EAAKzoa,UAAU73a,KAAKiC,WAAWstsB,EAAQm7J,oBAAqB,WAK5E,OAAOP,IA5nBf,6BA8nBI,SAAgB7pB,GAAY,WACpB0zB,EAAuB502B,KAAKs02B,oBAAoBpzB,GAChD2zB,EAAuBnn2B,GAAAA,WAC3B1N,KAAKgvR,WAAWpuR,KAAKi02B,GACrBA,EAAqBz70B,MAAK,SAAC2lB,GACvB,IAAIl1C,EAAIua,EACR,GAAK26B,EAAL,CAGA,EAAK66yB,YAAY76yB,EAAS66yB,YAAc,IAAI1z1B,KAAI,SAAA8K,GAC5C,IAAIygB,EAAS,GACT+2E,EAAQ,KA2BZ,OA1BIx3F,EAAE8j2B,QACFrj1B,EAAO7wB,KAAK,CACRyiJ,OAAOl4I,EAAAA,GAAAA,iBAAgB,UAAW,oDAClCvJ,MAAOoP,EAAE8j2B,SAEb9j2B,EAAE+j2B,aACFtj1B,EAAO7wB,KAAK,CACRyiJ,OAAOl4I,EAAAA,GAAAA,iBAAgB,eAAgB,gEAAkE,IACzGvJ,MAAOoP,EAAE+j2B,cAEb/j2B,EAAEgvB,UACFvO,EAAO7wB,KAAK,CACRyiJ,OAAOl4I,EAAAA,GAAAA,iBAAgB,WAAY,6DAA+D,IAClGvJ,MAAOoP,EAAEgvB,WAEbhvB,EAAEy1M,QACFh1L,EAAO7wB,KAAK,CACRyiJ,OAAOl4I,EAAAA,GAAAA,iBAAgB,SAAU,2DAA6D,IAC9FvJ,MAAOoP,EAAEy1M,SAEbz1M,EAAEgk2B,WAAahk2B,EAAEik2B,SACjBxj1B,EAAO7wB,KAAK,CACRgB,OAAO43E,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,4BAA6B,wDAAyD6F,EAAEgk2B,UAAWhk2B,EAAEik2B,WAE9Ijk2B,EAAEw3F,QACFA,EAAQwzuB,GAAY3lvB,MAAMrlF,EAAEw3F,OAAOwpvB,cAChC,CACH9i1B,YAAauiB,EAAOvrB,KAAI,SAAA8K,GAAC,OAAIA,EAAEpP,SAAOqP,KAAK,MAC3Cu3F,MAAAA,EACAxhG,IAAKgK,EAAEhK,IACPyqB,OAAAA,OAGR,EAAKgx0B,sBAAsB8I,aAAaxszB,EAASqiyB,WAAW,kBAAM,KAClE,EAAKwvB,uBAAyB,EAAKA,sBAAsB7xzB,GACzD,EAAKglzB,cAAcnG,kBAAkB7+yB,EAAS7vC,aAC9C,EAAK8+1B,gBAAkBjvzB,EAASg9yB,eAAiB,GACjD,EAAKkS,cAAgBlvzB,EAASi9yB,cAAgB,GAC9C,IAAIwX,EAAW,EAAKryB,UAC0B,IAAxCpiyB,EAASm2zB,2BACyG,QAAjH9w1B,IAA4C,QAApCva,EAAK,EAAKwn2B,4BAAyC,IAAPxn2B,OAAgB,EAASA,EAAGqr2B,mCAAgD,IAAP9w1B,GAAgBA,EAC5I+w1B,EAA4B,EAAKC,0BAA0Br2zB,EAASs9xB,cAAem3B,GACnF6B,EAA6B,CAAEh5B,cAAe84B,EAA2B/4B,cAAc,GAC3F,EAAKo0B,wBAA0B,EAAKA,uBAAuB6E,GAC3D,EAAKlF,wBAAwBkF,EAA2Bj5B,cACxD,EAAK2mB,mBAAmBoS,GACxB,EAAKnG,YAAYjwzB,EAASiwzB,aAC1B,EAAKjB,4BAA4B9t2B,SAAQ,SAAAC,GAAI,OAAIA,EAAKke,aACtD,EAAK2v1B,4BAA8B,GACnC,EAAKjL,gBAAgB/jzB,EAAS+uyB,eAAiB,IAAI5n1B,KAAI,SAAChG,EAAMW,GAC1D,IAAI0jC,EAAQ,EAAK+w0B,mBAAmBp12B,EAAMW,GAK1C,OAJI,EAAKw11B,sBACL9xzB,EAAM8xzB,oBAAsB,EAAKA,qBAErC,EAAK0X,4BAA4Bnt2B,KAAK2jC,EAAM09yB,WACrC19yB,UAGfvkC,KAAK2g2B,eAAegU,gBAAgBzzB,EAAY0zB,GAC3Cx70B,MAAK,SAAA2lB,GACN81zB,EAAqBzk2B,QAAQ2uC,GACzB,EAAK0xzB,eAAiBvvB,GACtB,EAAKzoa,UAAU73a,KAAKiC,YAAW,WAC3B,IAAMu+0B,EAAY,EAAKzkP,QAAQr8lB,OAC/B,EAAKmw2B,cAAcvvB,EAAY,EAAK0sB,mBAAoBxsB,UAI/DtgzB,MAAK,SAAA4e,GACNm1zB,EAAqBnp0B,OAAOgU,QA/sBxC,8BAktBI,SAAiB5mB,EAAQip0B,GAAc,WACnC,GAAK/h2B,KAAKmm2B,qBAAV,CAEAnm2B,KAAKow2B,WAAW700B,QAChB,IAAI++zB,EAAY,KACD,QAAXxh0B,IACAwh0B,EAAYt61B,KAAK+i2B,qBAAqBpI,IAAIL,aAE9C,IAAIiC,EAA0Bv81B,KAAK+i2B,qBAAuBzn1B,KAAKC,WAAU,IAAI24B,GAAAA,iBAAkBzV,UAAUz+B,KAAK+i2B,uBAAyB,KAcvI/i2B,KAAK+j2B,cAAc5jV,QAbR,kBAAMr8T,mBAAmBxoM,KAAKC,UAAU,CAC/C2l0B,WAAY,EAAKilB,qBACjB9pB,cAAekgB,EACfzj0B,OAAQA,EACRwh0B,UAAAA,EACAyH,aAAcA,EACdrF,mBAAoB,EAAKoG,gBAAkB,EAAKA,iBAAiB581B,KAAI,SAAAhG,GACjE,IAAI+h1B,EAAY/h1B,EAAK+h1B,YACrB,MAAyB,kBAAdA,EAC2BA,EnEtpBrCv5xB,QAAQ,gBAAiB,QmEupBnBu5xB,UAGiBgN,KAAc8S,MAxuBtD,2BA0uBI,SAAc1xkB,GAAW,WACrB,GAAKrwR,KAAKmm2B,qBAAV,CAEAnm2B,KAAKow2B,WAAW700B,QAChB,IAAM++zB,EAAYt61B,KAAK+i2B,qBAAqBpI,IAAIL,YAC1Cib,EAAgCv12B,KAAK+i2B,qBAAqBpI,IAA1B,wBAChC6a,EAA4Bx12B,KAAK+i2B,qBAAqBpI,IAA1B,oBAC5B8a,EAAoBz12B,KAAK+i2B,qBAAqBpI,IAA1B,YAC1B361B,KAAK+i2B,qBAAqBpI,IAA1B,uBAAuD,GACvD361B,KAAK+i2B,qBAAqBpI,IAA1B,kBAAmD,UACnDtqkB,EAAYp6O,SAASo6O,KACDA,EAAY,GAAmB,IAAdA,IAAqBrwR,KAAK28lB,QAAQr8lB,OAAS+vR,GAC5ErwR,KAAK+i2B,qBAAqBpI,IAA1B,UAA2CtqkB,EAAY,GAE3D,IAAMkskB,EAA0Bjh1B,KAAKC,WAAU,IAAI24B,GAAAA,iBAAkBzV,UAAUz+B,KAAK+i2B,uBASpF/i2B,KAAK+j2B,cAAc5jV,QARN,kBAAMr8T,mBAAmBxoM,KAAKC,UAAU,CACjD2l0B,WAAY,EAAKilB,qBACjB9pB,cAAekgB,EACfzj0B,OAAQ,WACRwh0B,UAAAA,EACAyH,cAAc,EACdrF,mBAAoB,EAAKoG,gBAAkB,EAAKA,iBAAiB581B,KAAI,SAAAhG,GAAI,OAAIA,EAAK+h1B,oBAEtDgN,MAAc,GAAM,GACpDjv1B,KAAK+i2B,qBAAqBpI,IAA1B,sBAAuD4a,GACvDv12B,KAAK+i2B,qBAAqBpI,IAA1B,kBAAmD6a,GACnDx12B,KAAK+i2B,qBAAqBpI,IAA1B,UAA2C8a,MApwBnD,uBAswBI,SAAUv0B,GACN,IAAIj30B,EAAKi30B,GAAclh1B,KAAKmm2B,qBACvBl81B,GAILjK,KAAK0q2B,mBAAmBzg2B,IAAM,EAC9BjK,KAAK2g2B,eAAekK,UAAU5g2B,IAJ1BjK,KAAKoq2B,yBAA2Bpq2B,KAAK0q2B,mBAAmB1q2B,KAAKoq2B,yBAA0B,KAzwBnG,2BA+wBI,SAAclpB,GACV,IAAIw0B,EAAcx0B,GAAclh1B,KAAKmm2B,qBAChCuP,GAIL112B,KAAKuo2B,uBAAuBmN,IAAe,EAC3C112B,KAAK6g2B,YAAY58nB,SAASi9mB,GAC1Blh1B,KAAK2g2B,eAAegV,iBAAiBD,IALjC112B,KAAKoq2B,yBAA2Bpq2B,KAAKuo2B,uBAAuBvo2B,KAAKoq2B,yBAA0B,KAlxBvG,yBAyxBI,WACIpq2B,KAAKmy2B,8BAAgCny2B,KAAKmy2B,6BAA6Bzm0B,SACvE,IAAIqo0B,EAAkB/z2B,KAAK4t2B,mBACtBmG,IAGL/z2B,KAAK8t2B,qBAAqBiG,IAAmB,EAC7C/z2B,KAAK2g2B,eAAegV,iBAAiB,KAAM5B,MAhyBnD,+BAkyBI,SAAkB1j0B,EAAMxnC,GAEpB,GADAwnC,EAAK80zB,gBAAgBt81B,GACjBA,EAAS,CACT7I,KAAKow2B,WAAW700B,QAChB,IAAIhwB,EAAS+j1B,KACb,GAAe,IAAX/j1B,EACA,OACJ,IAAI5D,EAAa0oC,EAAKggP,UAAY,EAClC1oR,EAAaA,EAAa,EAAI,EAAIA,EAClC,IAAIwsH,EAAW9jF,EAAKggP,UAAY9kR,EAChCvL,KAAKow2B,WAAW3G,cAAc9h2B,EAAYwsH,EAAU9jF,EAAKggP,cA5yBrE,wBA+yBI,SAAWhgP,GAA2B,IAArB9iB,EAAqB,uDAAdvtB,KAAKgn2B,QACzB32zB,EAAK62zB,eAAeln2B,KAAKmm2B,qBAAsBnm2B,KAAK4m2B,WAAYr50B,EAAMvtB,KAAKiv2B,sBAhzBnF,sBAkzBI,SAAS5+kB,EAAWullB,EAAmB55yB,GAAU,IACzCnyD,EADyC,OAE7C,MAAK+r2B,GAAqB512B,KAAKqwR,UAAU3/Q,SAAW2/Q,GAA0C,IAA7BrwR,KAAK28lB,MAAMjslB,OAAOpQ,QAAgB+vR,EAAY,GAAKA,GAAarwR,KAAK28lB,MAAMjslB,OAAOpQ,QAAnJ,MAG4B8X,IAAxBpY,KAAK612B,gBACL330B,aAAal+B,KAAK612B,gBAEtB,IAAIC,EAAmB,SAACC,GACpB,EAAKp5Q,MAAMjslB,OAAOzQ,SAAQ,SAACowC,GACvB,IAAIxnC,EAAUwnC,EAAKggP,YAAc0llB,EACjC1l0B,EAAKllB,OAAOtiB,GACZ,EAAKwi2B,kBAAkBh7zB,EAAMxnC,MAEjC,EAAKgt2B,oBAAiBz91B,GAEtB4jD,IAAatzD,GAAAA,OAA6C,QAAlCmB,EAAK7J,KAAK28lB,QAAQtsU,UAA+B,IAAPxmR,OAAgB,EAASA,EAAG271B,UAC9Fxl2B,KAAKy4a,UAAU73a,KAAKZ,KAAK612B,eAAiBhz2B,YAAW,kBAAMiz2B,EAAiB,EAAKzllB,eAAcr0N,IAE/F85yB,EAAiBzllB,GACrBrwR,KAAKqwR,UAAUA,MAt0BvB,gCAw0BI,SAAmBnwR,EAAMW,GACrB,OAAO,IAAIm11B,GAAa911B,EAAMW,EAAOb,KAAK2g2B,kBAz0BlD,wCA20BI,SAA2B9/1B,GACvB,OAAO24E,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,iCAAkC,8DAA+DtK,EAAQ,EAAGb,KAAK28lB,QAAQr8lB,UA50BtK,8BA80BI,SAAiB+qC,GACb,IAAIuosB,GAAc7xrB,EAAAA,GAAAA,iBAAgB1W,GAClC,OAAKuosB,IACMvosB,GAASA,EAAMkU,cAAgBlU,EAAMkU,aAAa1wC,QAAUw8B,EAAMkU,aAAa1wC,OAAOqt1B,aACzF7wzB,EAAMkU,aAAa1wC,OAAOqt1B,aAC1BtoH,KAn1BhB,2BAs1BI,SAAcl0rB,EAAOrU,GAAwC,IAAjC4zB,IAAiC,yDAAb20qB,EAAa,uCACrD/osB,EAAS6U,EAAQ,MACrBk0rB,EAAcA,GAAe5zuB,KAAKs81B,iBAAiBjxzB,MACnCqU,EAAQ7U,EAAS+osB,GACjCi7G,KAAiBC,aAAapvyB,EAAOuf,EAAa20qB,GAAe/osB,EAAQ7qC,KAAK4z2B,+BA11BtF,uCA41BI,WACI,IAAI/p2B,EACJ,OAA+B,QAAvBA,EAAK7J,KAAKF,eAA4B,IAAP+J,OAAgB,EAASA,EAAGihD,uBAAuB,wBAAwB,KA91B1H,oBAg2BI,WACI,OAAO9qD,KAAK4t2B,qBAj2BpB,qBAm2BI,WACI,OAAO5t2B,KAAK6t2B,sBAp2BpB,sBAs2BI,WACI,OAAO7t2B,KAAKmm2B,yBAv2BpB,GAAmCnl2B,GAAAA,YClBtBg12B,GAAb,WACI,WAAYC,IAAe,eACvBj22B,KAAKi22B,cAAgBA,EAF7B,yCAII,WACI,OAAOj22B,KAAKi22B,iBALpB,IAOI,SAAiBpl2B,GACb7Q,KAAKi22B,cAAcpl2B,KAR3B,2BAUI,WACI,OAAO7Q,KAAKk22B,cAAgBl22B,KAAKk22B,aAAavc,gBAXtD,8BAaI,WACI,OAAO351B,KAAKm22B,kBAdpB,6BAgBI,WACI,OAAOn22B,KAAKk22B,eAjBpB,gCAmBI,WACI,OAAOl22B,KAAKk22B,cAAgBl22B,KAAKk22B,aAAaE,uBApBtD,4CAsBI,SAA+Bvs1B,EAAY4y0B,GACvC,OAAOz81B,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaG,+BAA+Bxs1B,EAAY4y0B,KAvBpG,wBAyBI,SAAWE,GACP,OAAO381B,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaI,WAAW3Z,KA1BpE,mBA4BI,SAAMtskB,GACF,OAAOrwR,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaK,MAAMlmlB,KA7B/D,sBA+BI,SAASv3P,EAAQip0B,GACb/h2B,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaM,SAAS190B,EAAQip0B,KAhCnE,iCAkCI,WACI,OAAO/h2B,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaO,wBAnCzD,sBAqCI,SAASpmlB,GACLrwR,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAaQ,SAASrmlB,KAtC3D,mBAwCI,WACIrwR,KAAKm22B,iBAAmBn22B,KAAKk22B,aAAav5iB,UAzClD,6BA2CI,WACI38T,KAAKk22B,cAAgBl22B,KAAKk22B,aAAaS,oBA5C/C,wBA8CI,WACI,OAAO322B,KAAKk22B,cAAgBl22B,KAAKk22B,aAAaU,eA/CtD,gCAiDI,SAAmB5p2B,IACfkiE,EAAAA,GAAAA,oBAAmBliE,KAlD3B,+BAoDI,WACIhN,KAAKk22B,cAAgBl22B,KAAKk22B,aAAaW,mBAAqB722B,KAAKk22B,aAAaW,wBArDtF,iBCAaC,GAAb,WACI,WAAY54qB,GAAU,2BAClBl+L,KAAK+22B,aAAe,GACpB/22B,KAAKiQ,SAAW,SAACC,GACb,IAAIrB,EAASnB,GAAAA,WACb,GAAIwwL,EACA,GAAIhuL,EAAYC,SAAU,CACtB,IAAIq9O,EAAQ,EAAKwpnB,YAAY94qB,EAAUhuL,EAAYC,UACnDtB,EAAOuB,QAAQo9O,OAEd,CACD,IAAI18O,EAAO,EAAKmm2B,aAAa/4qB,GAC7BrvL,EAAOuB,QAAQU,QAInBjC,EAAO68B,SAEX,OAAO78B,EAAO2B,WAlB1B,0CAqBI,SAAYM,EAAMxD,GACd,GAAMtN,KAAK+22B,aAAazp2B,GACpB,OAAOtN,KAAK+22B,aAAazp2B,GAE7B,IAAIgC,EAAiBhC,EAAKG,MAAM,KAAM00G,EAAcrxG,EACpD,GAA0B,MAAtBxB,EAAe,GACf,OAAO,KAEX,IAAK,IAAIvD,EAAI,EAAGlL,EAAQyO,EAAevD,GAAIA,EAAIuD,EAAehP,OAAaO,EAAQyO,IAAbvD,GAAgC,CAClG,KAAIo2G,GAAeA,EAAYqrI,OAASrrI,EAAYqrI,MAAM3sP,IAItD,OAAO,KAHPshH,EAAcA,EAAYqrI,MAAM3sP,GAMxC,IAAIgO,EAASio2B,EAAyBI,SAAS/0vB,GAI/C,OAHItzG,GAA4B,IAAlBA,EAAOvO,SACjBN,KAAK+22B,aAAazp2B,GAAQuB,GAEvBA,IAzCf,0BAiDI,SAAaqvL,GACT,MAAO,CAAC,CAAE1wL,KAAM,IAAK0B,YAAagvL,EAASv7L,KAAMgL,OAAQuwL,EAASsvD,OAAStvD,EAASsvD,MAAMltP,OAAS,EAAG49L,SAAUA,EAAU9uL,UAAW,YAlD7I,uBA2CI,SAAgB8uL,GACZ,OAAKA,IAAaA,EAASsvD,OAAStvD,EAASsvD,MAAMltP,QAAU,EAClD,KAEJ49L,EAASsvD,MAAMtnP,KAAI,SAAC+vE,EAAMlqE,GAAQ,MAAO,CAAEyB,KAAMzB,EAAI,GAAImD,YAAa+mE,EAAKtzE,KAAMgL,OAAQsoE,EAAKu3K,OAASv3K,EAAKu3K,MAAMltP,OAAS,EAAG49L,SAAUjoH,EAAM7mE,UAAW,eA/CxK,KCAa+n2B,GAAb,WACI,cAAc,eACVn32B,KAAKoN,aAAe1E,GAAAA,WAAc,MAClC1I,KAAKgG,aAAe,SAAC9F,KAH7B,0CAKI,SAAYA,GACR,OAAO,IANf,sBAQI,SAASA,GACL,OAAuB,IAAhBA,EAAKyN,SATpB,uBAWI,SAAU/L,GACN,OAAO,IAZf,oBAcI,SAAOA,GACC5B,KAAK0mE,UAAU9kE,IAAUA,IAAU5B,KAAKoN,aAAasD,SACrD1Q,KAAKoN,aAAasD,QAAU1Q,KAAKoN,aAAasD,OAAO3C,YAAW,GAChE/N,KAAKoN,aAAaxL,GAClBA,EAAMmM,YAAW,MAlB7B,oCAqBI,WACI,OAAO,MAtBf,KCIaqp2B,GAAb,0CACI,WAAYzd,GAAe,uBACvB,gBACK0d,cAAgB3u2B,GAAAA,WAAc,KACnC,EAAK4u2B,iCAAmC,SAAC9pnB,EAAOmknB,GAAgC,IAAfrk2B,EAAe,uDAAR,IASpE,OARAkgP,EAAMvtP,SAAQ,SAACC,EAAMW,GACbX,EAAKy0T,UAAYg9iB,EAAgBh9iB,SAAWz0T,EAAKmwR,YAAcshlB,EAAgBthlB,UAC/E,EAAKgnlB,cAAc/p2B,EAAO,IAAMzM,EAAM4N,YAEjCvO,EAAKstP,OACV,EAAK6pnB,cAAc,EAAKC,iCAAiCp32B,EAAKstP,MAAOmknB,EAAiBrk2B,EAAO,IAAMzM,EAAM4N,gBAG1G,EAAK4o2B,iBAEhB,IAAIvw1B,EAAqB,IAAIqw1B,GAC7B,EAAKhi0B,QAAUzsC,GAAAA,cAAgB,WAC3B,QAASix1B,EAAcqV,eAAiBrV,EAAcqV,cAAcxhnB,OAAuD,IAA7CmsmB,EAAcqV,cAAcxhnB,MAAMltP,WAEpHwmB,EAAmB9gB,aAAe,SAAC9F,GAC/B,IAAIg+L,EAAWh+L,EAAK2N,KAAKqwL,SACzB,GAAIA,EAAU,CACV,IAAImyF,EAAYnyF,EAASmyF,UAAY,EAAI,EAAInyF,EAASmyF,UACtDspkB,EAAch9P,MAAMjslB,OAAO2/Q,GAAWm8jB,YAAYtupB,EAASy2H,WAGnEgliB,EAAcoY,6BAA+B,SAACJ,GACtChY,EAAcqV,aAAerV,EAAcqV,eAC3C,EAAKsI,iCAAiC3d,EAAcqV,cAAcxhnB,MAAOmknB,IAEjF,EAAKlp2B,aAAa7H,KAAK,CAAEwd,QAAS,yBAAau70B,EAAcoY,gCAC7D,IAAIwF,EAAwB7u2B,GAAAA,cAAgB,kBAAO,EAAKysC,aA9BjC,OA+BvB,EAAKqi0B,QAAU,IAAI701B,GAAAA,QAAQ,CACvBhgB,KAAM,eACNgnB,SAAU,4BACV3d,OAAO,UACP0W,eAAgB,IAAIpX,GAAAA,uBACpB6D,eAAgB,4DAChBka,eAAgB,iBAChBD,kBAAmB,+BACnBvgB,QAAS0u2B,IAEb,EAAKE,mBAAqB/u2B,GAAAA,cAAgB,WACtC,MAAO,CACHqe,cAAe,IAAI+v1B,GAAyBnd,EAAcqV,eAC1DvwvB,iBAAiB,EACjBvwG,aAAc,EAAKmp2B,cACnBvw1B,mBAAoBA,EACpBE,yBAA0B,WAAQ,IAAInd,EAAIua,EAAI,OAA6F,QAArFA,EAA6B,QAAvBva,EAAK,EAAK2t2B,eAA4B,IAAP3t2B,OAAgB,EAASA,EAAG6Y,sBAAmC,IAAP0B,OAAgB,EAASA,EAAG1d,kBAGvL,EAAK+B,aAAa7H,KAAK,EAAK422B,QAASD,EAAuB,EAAKE,mBAAoB,EAAKti0B,SAlDnE,EAD/B,sCAqDI,YACI,uDACAn1C,KAAKgqC,uBAvDb,GAAsChpC,GAAAA,YCAzB022B,GAAb,0CACI,WAAY/d,EAAe+R,GAAuB,uBAC9C,gBACKlr1B,QAAU,GACf,EAAK060B,eAAiBvB,EACtB,IAAIge,EAAkBjv2B,GAAAA,cAAgB,mBAAQix1B,EAAcoJ,wBAA0BpJ,EAAcwW,yBAA2BxW,EAAcwW,8BAC7I,EAAKqH,QAAU,IAAI701B,GAAAA,QAAQ,CACvBhgB,KAAM,iBACNgnB,SAAU,8BACV3d,MAAO2t1B,EAAcoJ,mBACrBrg1B,eAAgBgp1B,EAAwB,IAAIzi2B,GAAAA,6BAA4BmP,EACxEjJ,eAAgB,wCAChBka,eAAgB,aAChBD,kBAAmB,2BACnBvgB,QAAS8u2B,IAEb,IAAIC,EAAiB,CACjB3t2B,GAAIgnD,GACJtuD,KAAM,YACN4o1B,OAAQ,qDACRng1B,SAAUuu1B,EAAc0V,eACxBxm2B,SAAS,EACTwC,YAAa,SAACW,GACN2t1B,EAAc0V,kBAElB,EAAKwI,wBAAwB7r2B,EAAM6+D,SAAS/xC,SAEhDtQ,aAAc,yBACdY,kBAAmB,oCACnBmhsB,cAAe,IAAIutJ,IAEnBC,EAAcrv2B,GAAAA,cAAgB,WAC9B,IAAImG,EAAS,EAAKmp2B,wBAClB,MAAO,CAAC,CACAr12B,KAAM,YACN4o1B,OAAQ,qDACRli0B,eAAgB,uBAChBD,kBAAmBwu1B,EAAexu1B,kBAClC1d,MAAOmD,OArC2B,OAwC9C+o2B,EAAc,MAAYG,EAC1B,EAAKv31B,QAAQ5f,KAAKg32B,GAClB,EAAKnv2B,aAAa7H,KAAK+22B,EAAiB,EAAKH,QAASO,GA1CR,EADtD,oDA6CI,WACI,IAAIlp2B,EAAS,GACTk01B,EAAqB/i2B,KAAKk71B,eAAe6H,qBAa7C,OAZIA,IACAA,EAAmBpI,KAAO9r1B,EAAOjO,KAAKyq1B,GAAeC,KACrDyX,EAAmBtI,KAAO5r1B,EAAOjO,KAAKyq1B,GAAeG,KACrDuX,EAAmBrI,MAAQ7r1B,EAAOjO,KAAKyq1B,GAAeI,MACtDsX,EAAmB/quB,KAAOnpH,EAAOjO,KAAKyq1B,GAAeK,KACrDqX,EAAmBkV,MAAQpp2B,EAAOjO,KAAKyq1B,GAAeS,MACtDiX,EAAmBmV,KAAOrp2B,EAAOjO,KAAKyq1B,GAAeM,KACrDoX,EAAmBv7yB,MAAQ34C,EAAOjO,KAAKyq1B,GAAeO,MACtDmX,EAAmBoV,mBAAqBtp2B,EAAOjO,KAAKyq1B,GAAepnpB,MACnE8+pB,EAAmBqV,KAAOvp2B,EAAOjO,KAAKyq1B,GAAeQ,KACrDkX,EAAmBv6vB,OAAS35F,EAAOjO,KAAKyq1B,GAAen7I,QAEpDrhsB,IA5Df,qCA8DI,SAAwBiqB,GACpBA,GAAU94B,KAAKk71B,eAAemd,iBAAiBv/0B,KA/DvD,wBAiEI,SAAWne,GACP,OAAO3a,KAAKwgB,UAlEpB,qBAoEI,YACI,uDACAxgB,KAAKkF,aAAalF,KAAKwgB,SACvBxgB,KAAKgqC,uBAvEb,GAAwChpC,GAAAA,YA0E3B822B,GAAb,uFACI,SAAiBztwB,EAAgBvqG,GAAS,WACtC,OAAO,SAACU,GACJA,EAAEqrB,QAAQC,SAASjH,OAAO,YAAawlF,GACvC7pG,EAAEqrB,QAAQC,SAASjH,OAAO,qBAAqB,GAC/CrkB,EAAEqrB,QAAQC,SAASjH,OAAO,WAAY,CAAE66C,GAAI,WAAYC,GAAI,cAAeF,GAAI3/D,EAASslB,UAAW,OAAQF,SAAUmlF,IACrH,EAAKiuwB,YAAc932B,EAAE6tB,UAAUxJ,OAAO,kBACtCrkB,EAAEqrB,QAAQy0V,wBAPtB,4BAUI,SAAe9/W,GACX,IAAIqrB,EAAUrrB,EAAEqrB,QAChBA,EAAQujV,mBAAmB,UAAU,SAAC5uW,GAAD,OAAOqrB,EAAQq+C,UACpDr+C,EAAQujV,mBAAmB,aAAa,SAAC5uW,GAAD,OAAOqrB,EAAQq+C,UACvDr+C,EAAQujV,mBAAmB,cAAc,SAAC5uW,GAAD,OAAOqrB,EAAQq+C,YAdhE,6BAgBI,SAAgB1pE,GACRA,EAAEwL,MAAMu+sB,cAAc+tJ,cACtB932B,EAAE6tB,UAAUxJ,OAAO,iBAAkBrkB,EAAEwL,MAAMu+sB,cAAc+tJ,aAC3D932B,EAAE6tB,UAAUttB,WAnBxB,4BAsBI,SAAeP,GACX,IAAIqJ,EAAIua,EACR1W,GAAAA,GAAAA,YAAiBlN,EAAEsqE,aAAalrD,KAAK,cAAczU,EAAAA,GAAAA,iBAAsC,QAArBtB,EAAKrJ,EAAEqqE,gBAA6B,IAAPhhE,OAAgB,EAASA,EAAGlH,KAA4B,QAArByhB,EAAK5jB,EAAEqqE,gBAA6B,IAAPzmD,OAAgB,EAASA,EAAGmn0B,aAxBrM,KC9EagtB,GAAb,0CACI,WAAYpoK,EAAS9/a,EAAW20kB,EAAc/8H,GAAS,6BACnD,cAAM93B,EAAS9/a,EAAW20kB,EAAc/8H,IACnC69H,QAAU,EACf,EAAKtZ,YAAc,SAACl/0B,EAAM04B,GACtB,IAAIqh0B,EAAe,EAAK7nB,SACvBx5yB,GAAW,EAAKoh0B,mBAAmBC,GAC/B/51B,IAGA+51B,EAIL,EAAK9Z,SAAStt1B,SAAQ,SAACu/0B,GAAYA,EAAM7qhB,UAAYrnT,GAAQky0B,EAAMr0zB,QAAO,MAHtE,qBAA6B7d,IAVc,EAD3D,kBAAuC431B,ICG1BsT,GAAb,0CACI,WAAYhL,EAAYC,EAAuBhL,EAAuB/x0B,GAAuF,MAA5E5H,EAA4E,wDAA/D2v1B,EAA+D,uDAA9C,CAAEvF,YAAY,EAAM57c,kBAAkB,IAAQ,gBACzJ,cAAMk2c,EAAYC,EAAuBhL,EAAuB/x0B,EAAW5H,IACtE4v1B,eAAiBhw2B,GAAAA,WAAc,MACpC,EAAKiw2B,aAAejw2B,GAAAA,UAAY,WAC5B,OAAK,EAAKgw2B,iBAIC,EAAK/7Q,QAAQ/2lB,QAAO,SAACoL,GAAQ,OAAuD,IAAhD,EAAK0n2B,iBAAiBvy2B,QAAQ6K,EAAEq/Q,cAHpE,EAAKssU,WAMpB,EAAKi8Q,UAAYlw2B,GAAAA,WAAc,GAC/B,EAAKmw2B,mBAAqBnw2B,GAAAA,WAAc,CAAE4I,MAAO,EAAGC,OAAQ,IAC5D,EAAKun2B,mBAAqBpw2B,GAAAA,YAAc,GACxC,EAAKqw2B,eAAiBrw2B,GAAAA,YAAc,GACpC,EAAKsw2B,kBAAoBtw2B,GAAAA,YAAc,GACvC,EAAKuw2B,mBAAqBvw2B,GAAAA,YAAc,GACxC,EAAKww2B,iBAAmBxw2B,GAAAA,YAAc,GACtC,EAAKyw2B,oBAAsBzw2B,GAAAA,YAAc,GACzC,EAAK0w2B,aAAe1w2B,GAAAA,YAAc,GAClC,EAAK2w2B,WAAa3w2B,GAAAA,SAAY,CAC1B+H,KAAM,WACF,IAAI6o2B,EAAc,EAAK/r1B,OACvB,OAAO+r1B,EAAc,EAAIA,EAAc,EAAKtS,SAEhDp21B,MAAO,SAACC,GACJ,EAAK0c,KAAK1c,MAGlB,EAAKqi2B,WAAauF,EAAevF,WACjC,IAAIqG,EAAyBd,EAAenhd,iBA9B6G,OA+BzJ,EAAKkid,kBAAoB,CAAEC,YAAa/w2B,GAAAA,WAAc6w2B,GAAyBG,aAAchx2B,GAAAA,WAAc6w2B,IAC3G,EAAK3J,qBAAsB,EAC3B,EAAKR,UAAUpjB,IACf,EAAKiB,sBAAqB,GAC1B,EAAKxk1B,aAAa7H,KAAK,EAAK+42B,oBAAsBjx2B,GAAAA,cAAgB,kBAA8B,IAAxB,EAAKi0lB,QAAQr8lB,UAAe,EAAKw42B,mBAAmB3n2B,WAAU,SAACN,GAC/HA,GACA,EAAKko2B,gBAAe,OArC6H,EADjK,yCA0CI,SAAW1olB,EAAW20kB,EAAc/8H,GAChC,OAAO,IAAIswI,GAAkBv42B,KAAMqwR,EAAW20kB,EAAc/8H,KA3CpE,uCA6CI,SAA0BypI,GAAgB,WAClCnnkB,GAAgB,wEAAgCmnkB,GAapD,OAZW,SAAClyB,GACR,IAAI,EAAK45B,eAAT,CAEA,GAAI1H,IAAmB,EAAKrhlB,YAAa,CACrC,EAAK0olB,gBAAe,GACpB,IAAIa,EAAe,EAAKb,eAAe5n2B,WAAU,SAACN,GAC9C+o2B,EAAax71B,UACb,EAAK261B,gBAAe,MAG5BxukB,EAAci1iB,OAzD1B,qCA6DI,WACI,OAAOx/0B,KAAK242B,eAAep21B,MAAK,SAAA60E,GAC5B,IAAIyixB,EAAiBnx2B,GAAAA,OAAU0uF,EAAE02vB,eACjC,OAAO+rB,GAAkBA,EAAet31B,MAAK,SAAAvR,GAAC,OAAItI,GAAAA,OAAUsI,EAAEma,gBAhE1E,yBAmEI,SAAY0B,GACR,IAAIA,EAAEus1B,iBAAkBvs1B,EAAE8s1B,sBAA1B,CAEA,IAAIG,EAAgBjt1B,EAAEis1B,qBACjBgB,EAMDjt1B,EAAEis1B,oBAAoBgB,GALjB952B,KAAK+52B,2BACNlt1B,EAAEks1B,gBAAgBls1B,EAAEks1B,qBAzEpC,qBAgFI,SAAQv42B,GACJR,KAAKg52B,mBAAkB,GACvBh52B,KAAKi52B,oBAAmB,GACpBj52B,KAAKov2B,cAAgBpjB,IAAmBxr1B,EAAEghF,cAAsD,IAAtChhF,EAAEghF,aAAa,GAAGoI,SAAStpF,QAAgBE,EAAEi3C,YAAkD,IAApCj3C,EAAEi3C,WAAW,GAAGmyC,SAAStpF,QAC9IN,KAAKov2B,UAAUpjB,MApF3B,sBAsFI,SAAS37jB,EAAW2plB,IAChB,uDAAe3plB,EAAW2plB,KAvFlC,kCAyFI,WAAuB,WAQnB,MAPc,CACVrnkB,UAAW,SAACnyS,GAAQ,EAAKy52B,iBAAiBz52B,IAC1C66I,UAAW,OACX6+tB,cAAe,EACfruf,eAAe,EACfzgX,SAAUpL,KAAKo52B,gBA/F3B,8BAmGI,SAAiB542B,GACbR,KAAKg52B,kBAAkBx42B,EAAE44b,aACzBp5b,KAAKi52B,mBAAmBz42B,EAAE+4b,cAC1Bv5b,KAAKk52B,iBAAiB142B,EAAEg5b,YACxBx5b,KAAKm52B,oBAAoB342B,EAAEi5b,iBAvGnC,qBAyGI,WACIz5b,KAAKq52B,WAAWj71B,UAChBpe,KAAK242B,aAAav61B,WAClB,2DA5GR,GAAyCmv1B,gBCH5B4M,GAAb,0CACI,WAAYlf,GAAa,6BACrB,gBACK341B,aAAe,kCACpB,EAAKmG,aAAa7H,KAAKq61B,EAAYmf,aAAajp2B,WAAU,SAAAtC,GAClDA,EAAOvO,OAAS,EAChB,EAAK+B,aAAaK,YAAW82E,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,4BAA6B,oEAAqE0D,EAAOvO,UAC9J261B,EAAYhzH,WAAegzH,EAAYrzW,cAC7C,EAAKvlf,aAAaK,WAAWu41B,EAAYof,oBAEjD,EAAK5x2B,aAAa7H,KAAKq61B,EAAYrzW,WAAWz2e,WAAU,SAAAovZ,GAC9CA,GACF,EAAKl+Z,aAAaK,YAAW82E,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,uBAAwB,0DAA2D,IAAMo1Z,EAAa,UAXpJ,EAD7B,kBAA0Cr4Z,GAAAA,oBCC7Boy2B,GAAb,0CACI,WAAYrf,EAAatB,GAAe,uBACpC,gBACK52iB,cAAgBr6S,GAAAA,WAAc,MACnC,IAAI6x2B,EAAoB,SAACC,GACrB,GAAKA,EAAL,CAGA7gB,EAAc5M,UAAY4M,EAAc5M,SAASytB,EAAYnqlB,WAC7D,IAAIhgP,EAAOspzB,EAAch9P,MAAMjslB,OAAO8p2B,EAAYnqlB,WAClDhgP,GAAQA,EAAKm8yB,YAAYguB,EAAY7ljB,WAEzC,EAAK8ljB,sBAAwB,SAACpqlB,EAAWtiQ,EAAI2s1B,GACzC,IAAKzf,EAAYmf,gBAAwD,IAAtCnf,EAAYmf,eAAe952B,OAC1D,OAAO,KAEX,IAAIq62B,EACAC,EAAgB,SAAC/52B,GACjBo61B,EAAYmf,eAAen62B,SAAQ,SAACw3D,GAC5BijzB,GAAgBjjzB,EAAE44N,YAAcxvR,IAC3B852B,GAAeljzB,EAAExtD,GAAK0w2B,EAAW1w2B,KAAO8jB,GAAM0pC,EAAExtD,GAAK0w2B,EAAW1w2B,IAAM8jB,KACvE4s1B,EAAaljzB,IAIbA,EAAE44N,WAAaxvR,IAAUktB,KAAQ4s1B,GAAcljzB,EAAExtD,GAAK0w2B,EAAW1w2B,KAAOwtD,EAAE44N,WAAaxvR,GAASktB,KAAQ4s1B,GAAcljzB,EAAExtD,GAAK0w2B,EAAW1w2B,OACxI0w2B,EAAaljzB,OAO7B,OAFAmjzB,EAAcvqlB,IACbsqlB,GAAcC,EAAc7s1B,EAAK4r0B,EAAch9P,QAAQr8lB,OAAS,GAC1Dq62B,GAEX,IAAIE,EAAoB,SAACpjsB,EAAWqjsB,EAAUJ,GAC1C,GAAIzf,EAAYmf,gBAAwD,IAAtCnf,EAAYmf,eAAe952B,OAAc,CACvE,IAAIyiT,EAAiB+3jB,GAAY,GAAK7f,EAAYmf,eAAe952B,OAASw62B,EACtE7f,EAAYmf,eAAeU,GAC3B,EAAKL,sBAAsB9gB,EAActpkB,UAAU3/Q,OAAQuq1B,EAAYM,SAAS7q1B,OAAQgq2B,GAC5F,EAAK33jB,cAAcA,GACnBtrI,GAAa8isB,EAAkB,EAAKx3jB,cAAcryS,aAGlDip1B,EAAch9P,SAAWg9P,EAAch9P,QAAQg9P,EAActpkB,cAAgBspkB,EAAch9P,QAAQg9P,EAActpkB,aAAam8jB,YAAY,KA3C9G,OA8CpC,EAAKuuB,WAAa,SAAC9w2B,GACf,GAAW,IAAPA,IAAaA,EACb,OAAO,KAEX4w2B,GAAkB,EAAM5w2B,IAE5B,EAAKxB,aAAa7H,KAAK+41B,EAActpkB,UAAUl/Q,WAAU,SAAC6p2B,GAClD,EAAKj4jB,iBAAmBi4jB,IAAiB,EAAKj4jB,gBAAgB1yB,WAElE,EAAK0yB,cAAc,UAEvB,EAAKt6S,aAAa7H,KAAKq61B,EAAYmf,aAAajp2B,WAAU,WACjD,EAAK4xS,iBACN83jB,GAAkB,OAE1B,EAAKv8zB,KAAO,SAACvwB,GACT,IAAKkt0B,EAAYmf,eACb,OAAO,EAEX,IAAK,EAAKr3jB,gBAAiB,CACvB,IAAIk4jB,GAA+C,IAA9BthB,EAActpkB,YAAoBspkB,EAAch9P,MAAMr8lB,OAASq51B,EAActpkB,aAAe,EAC7G6qlB,EAAwBnt1B,EAAKkt1B,EAAgBthB,EAActpkB,YAC3D8qlB,EAAc,EAAKV,sBAAsBS,EAAuBnt1B,GAEpE,OADA,EAAKg1R,cAAco4jB,KACfA,IACAZ,EAAkBY,IACX,GAMf,IAAIlx2B,EAAIgixB,EAAY,EAAKlpe,gBAAgB94S,GASzC,OAPIA,EADA8jB,EACoB,IAAdk+vB,EAAmBgvE,EAAYmf,eAAe952B,OAAS,EAAK2rxB,EAAY,EAGxEA,IAAcgvE,EAAYmf,eAAe952B,OAAS,EAAK,EAAK2rxB,EAAY,EAElF,EAAKlpe,cAAck4iB,EAAYmf,eAAenw2B,IAC9Csw2B,EAAkB,EAAKx3jB,kBAChB,GAvFyB,EAD5C,kBAA2C/hT,GAAAA,wBCQ9Bo62B,GAAb,0CACI,WAAYzhB,EAAe0hB,EAAgB3P,GAAuB,MAC1D7h2B,EAAIua,GADsD,gBAE9D,gBACKk31B,iBAAmB5y2B,GAAAA,YAAc,GACtC,EAAKu9d,gBAAkB,SAACzle,GACpB,EAAKu62B,WAAWv62B,EAAEqN,OAEtB,EAAK2S,QAAU,GACf,EAAK+61B,eAAiB7y2B,GAAAA,YAAc,GACpC,EAAK4y1B,eAAiB5y1B,GAAAA,YAAc,GACpC,EAAK2y1B,UAAY3y1B,GAAAA,YAAc,GAC/B,EAAK6y1B,SAAW7y1B,GAAAA,YAAc,GAC9B,EAAKk/e,WAAal/e,GAAAA,aAClB,EAAK0x2B,aAAe1x2B,GAAAA,aACpB,EAAKu/tB,QAAUv/tB,GAAAA,YAAc,GAC7B,EAAK8y2B,gBAAkB9y2B,GAAAA,YAAc,GACrC,EAAK+y2B,sBAAwB/y2B,GAAAA,WAAc,IAC3C,EAAKgz2B,uBAAyBhz2B,GAAAA,WAAc,IAAI69C,GAAAA,QAAW,KAC3D,EAAK+qzB,eAAiB5o2B,GAAAA,YAAc,GACpC,EAAKiz2B,sBAAwBju2B,GAAAA,WAC7B,EAAKku2B,oBAAsBlu2B,GAAAA,WAC3B,EAAKmu2B,WAAa,IAClB,EAAKn1zB,SAAW,GAChB,EAAKo1zB,qBAAL,gBAAoC730B,EAAAA,GAAAA,SACpC,EAAK830B,oBACL,EAAKzK,eAAwH,QAAxGzn2B,EAAwB,OAAnBwx2B,QAA8C,IAAnBA,OAA4B,EAASA,EAAe/J,sBAAmC,IAAPzn2B,GAAgBA,KACzB,QAAvGua,EAAwB,OAAnBi31B,QAA8C,IAAnBA,OAA4B,EAASA,EAAe7k1B,qBAAkC,IAAPpS,GAAgBA,IAC9Huq0B,MAClBA,IAAgB,GAEpB,EAAKqtB,iBAAmBZ,EAAgBa,uBAAhB,UAA4CtiB,GACpE,EAAKnmY,MAAQ,WAAQ,EAAKo0B,WAAW,KACrC,EAAKn/e,aAAa7H,KAAK+41B,EAAcwM,mBAAmBh11B,WAAU,SAACN,GAC/D,EAAKkr2B,wBAET,EAAKtz2B,aAAa7H,KAAK+41B,EAAciU,iBAAiBz81B,WAAU,SAACN,GAC7D,EAAKkr2B,wBAET,EAAKG,OAAS,WAAQ,EAAK3gB,UAAS,GAAO,EAAKj3qB,YAChD,EAAK63rB,SAAW,WAAQ,EAAK5gB,UAAS,GAAQ,EAAKj3qB,YACnD,EAAKy2rB,WAAa,SAACls2B,GAAa,EAAKmt2B,iBAAiBjB,WAAWls2B,EAAO5E,KACxE,EAAKxB,aAAa7H,KAAK,EAAKw72B,kBAAoB1z2B,GAAAA,UAAY,WACxD,IAAImB,EAAIua,EACR,OAAO,EAAKg21B,cAAqG,QAApFh21B,EAAoC,QAA9Bva,EAAK,EAAKuw2B,sBAAmC,IAAPvw2B,OAAgB,EAASA,EAAGvJ,cAA2B,IAAP8jB,EAAgBA,EAAU,MAEvJ,EAAK3b,aAAa7H,KAAK,EAAKy72B,sBAAwB3z2B,GAAAA,UAAY,WAC5D,IAAImB,EACJ,OAAmC,QAA9BA,EAAK,EAAKuw2B,sBAAmC,IAAPvw2B,OAAgB,EAASA,EAAGvJ,QAC5D,IAAIqkH,IAAK,EAAKy1vB,eAAel02B,KAAI,SAAA2I,GAAM,OAAIA,EAAOwhR,cAAa73Q,KAEnE,IACR,EAAK8j2B,mBAAqB5z2B,GAAAA,UAAY,kBAAM,EAAKu/tB,YAAc,EAAKqpI,sBACvE,EAAKiL,UAAY,SAAC552B,EAAM041B,EAAWC,GAC/B,EAAKkhB,gBAAkBt+0B,aAAa,EAAKs+0B,gBACzC,EAAKA,eAAiB352B,YAAW,WAC7B,EAAKm52B,iBAAiBj5jB,cAAc,MACpC,IAAI05jB,EAAQ,EAAKphB,YACjB141B,EAAO852B,EAAQ,EAAK70X,aAAe,EAAKA,aAAa98Y,oBACrD,IAUEoR,EAVEv8D,EAAQ,EAAK27yB,iBACXmhB,EAAQ,EAAKC,iCAAmC,EAAKC,yBACrDF,EAAQ,EAAKG,6BAA+B,EAAKC,gBACvD,GAAIl9zB,EAAMh9C,GAGN,OAFA,EAAKsluB,SAAQ,QACb,EAAKmyI,aAAaz6zB,EAAMh9C,IAG5B,EAAK242B,kBAAiB,GACtB,EAAKA,iBAAmB5y2B,GAAAA,YAAc,GACpCwzG,EAKC,EAAKo/vB,iBAJA,EAAKhK,iBACL,EAAKwL,mBAAmBn62B,EAAMg31B,EAAez9uB,GAE7C,EAAK6gwB,cAAcp62B,EAAMg31B,EAAeh6yB,EAAOu8D,KAExD,MAEP,EAAKooE,SAAW,WACR,EAAK2jjB,YAAc,EAAKqpI,kBAG5B,EAAK0K,iBAAiB19zB,KAAK,EAAKi9yB,aAEpC,EAAKgW,kBAAoB,WACrB,EAAKyL,iBACD,EAAKvhB,mBAAqB,EAAKA,kBAAkBn71B,QACjDq51B,EAAcgH,eAAesc,WAAW,EAAKxhB,kBAAmB/y1B,GAAAA,YAAc,IAElF,EAAKu/tB,SAAQ,GACb,EAAKuzI,iBAAgB,IAEzB,EAAK0B,mBAAqB,WACtB,EAAKF,iBACL,EAAKxB,iBAAgB,GACrB,EAAKpB,aAAa,IAClB,EAAK+C,8BACD,EAAKv1X,cACL,EAAKqgP,SAAQ,GACb,EAAKs0I,UAAU,EAAK30X,aAAc,EAAKyzW,YAAa,EAAKC,mBAGzD3B,EAAch9P,SAAWg9P,EAAch9P,QAAQg9P,EAActpkB,cAAgBspkB,EAAch9P,QAAQg9P,EAActpkB,aAAam8jB,YAAY,KAGlJ,EAAK4wB,kBAAoB,WACjB,EAAKn1I,UACL,EAAKspI,oBAGL,EAAK2L,sBAGb,IAAIG,EAAe,SAACz62B,GACX,EAAK0u2B,kBAMN,EAAKrpI,WACL,EAAKspI,oBACT1u2B,YAAW,WACF,EAAKoluB,WACN,EAAKi1I,uBACVt62B,IAVCC,YAAW,WACP,EAAKq62B,uBACNt62B,IAUX,EAAK6F,aAAa7H,KAAK,EAAKgnf,WAAWz2e,WAAU,WAC7Cks2B,EAAa,SAEjB,EAAK502B,aAAa7H,KAAK,EAAKy61B,UAAUlq1B,WAAU,WAC5Cks2B,EAAa,SAEjB,EAAK502B,aAAa7H,KAAK,EAAK061B,eAAenq1B,WAAU,WACjDks2B,EAAa,SAEjB,IAAIjy2B,EAAW1C,GAAAA,cAAgB,WAC3B,IAAIw40B,EAAayY,EAAa,qBAC1BtpkB,EAAYspkB,EAActpkB,YAC9B,OAAOspkB,EAAcsV,qBAAuB/tB,IAA6B,IAAf7wjB,KAE1DxnR,EAAUH,GAAAA,cAAgB,kBAAMim1B,QA3I0B,OA4I9D,EAAKlm1B,aAAa7H,KAAKwK,EAAUvC,GACjC,EAAK2X,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,SAAU,2CAChCke,eAAgB,oBAChBD,kBAAmB,0BACnBhe,SAAUA,EACVvC,QAASA,EACTwhB,cAAc,EACdgmC,OAAQ,CAAErqB,SAAS,EAAOsqB,QAAS,IACnCjlD,YAAa,WACJ,EAAKms2B,QAAQrs1B,SAId,EAAKqs1B,QAAQrs1B,OAAOwvD,mBAAkB,GAHtC,EAAK68xB,QAAQrs1B,QAAO,MAOhC,EAAKqs1B,QAAU,IAAI701B,GAAAA,QAAQ,CACvBhgB,KAAM,SACNgnB,SAAU,sBACV3d,OAAO,UACP0W,eAAgBgp1B,EAAwB,IAAIyO,IAAJ,gBAAiC/h2B,EACzEjJ,eAAgB,0CAChBka,eAAgB,SAChBD,kBAAmB,0BACnBvgB,QAASH,GAAAA,cAAgB,kBAAO0C,KAAcuj1B,UAElD,EAAKlm1B,aAAa7H,KAAK,EAAKw52B,aAAajp2B,WAAU,SAACN,GAC5CA,IACA,EAAK4q2B,sBAAsB5q2B,EAAO3K,KAAI,SAAChG,GAAW,MAAO,CAAE2N,KAAM3N,OAC7D,EAAKw72B,yBAAyBhw2B,QAAQpL,OAAS,EAAKomD,UACpD,EAAKg1zB,yBAAyB/nlB,cAG1C,EAAKlrR,aAAa7H,KAAK,EAAK422B,SAhLkC,EADtE,gDAmLI,WACIx32B,KAAK682B,gBAAkB,GACvB782B,KAAK282B,yBAA2B,GAChC382B,KAAK482B,6BAA+B,GACpC582B,KAAK082B,iCAAmC,GACxC182B,KAAKo62B,aAAa,IAClBp62B,KAAK4nf,WAAW,IAChB5nf,KAAKm92B,gCA1Lb,iCA4LI,SAAoBtu2B,EAAQ8wC,GACxB3/C,KAAKiouB,SAAQ,GACRp5tB,GAIL8wC,GAAS9wC,EAAO2wC,QAAU3wC,EAAOkqF,QAAU,KAAO,GAClD/4F,KAAKo62B,aAAaz6zB,IAJd3/C,KAAKo62B,aAAa,MA/L9B,gCAqMI,SAAmBvr2B,GACXA,GAAUA,EAAOkqF,SAAWlqF,EAAOkqF,QAAQz4F,QAC3CN,KAAKo62B,aAAL,kBAAsBp62B,KAAKo62B,iBAA3B,OAA8Cvr2B,EAAOkqF,aAvMjE,gCA0MI,SAAmBp2F,EAAMg31B,GAA6C,WAA9Bz9uB,EAA8B,uDAArBxzG,GAAAA,YAAc,GAC3D1I,KAAK272B,sBAAsBjw0B,SAC3B,IAAI4x0B,EAAY,SAAZA,EAAa7hB,EAAmB9z1B,EAAYk02B,EAAY3/vB,GACxD,EAAKy/vB,sBAAwBju2B,GAAAA,WAC7Bis1B,EAAcgH,eAAe4c,gBAAgB9hB,EAAmB9z1B,EAAYk02B,EAAY3/vB,GACnF9iF,MAAK,SAAAvqB,GAAM,OAAI,EAAK8s2B,sBAAsBvr2B,QAAQvB,MAClDiyB,MAAK,SAAAA,GAAI,OAAI,EAAK080B,mBAAmB180B,EAAMo7E,QAChD,EAAKy/vB,sBAAsBvi1B,MAAK,SAAAvqB,GAC5B,GAAIA,EAAOqt1B,aACP,EAAKj0H,SAAQ,OADjB,CAKA,GADA,EAAKw1I,mBAAmB5u2B,GACpBA,EAAOiiiB,UAGP,OAFA,EAAKm3L,SAAQ,QACb,EAAKuzI,iBAAgB,GAGrB3s2B,EAAOo71B,cACPpn2B,YAAW,WACPy62B,EAAU7hB,EAAmB,EAAK2e,eAAe952B,OAAQu72B,EAAY3/vB,KACtE,UAIfl8G,KAAKg92B,iBACLrjB,EAAcgH,eAAe+c,YAAY/62B,EAAMu5G,GAC1C9iF,MAAK,SAAAvqB,GAAM,OAAI,EAAK+s2B,oBAAoBxr2B,QAAQvB,MAChDiyB,MAAK,SAAAA,GAAI,OAAI,EAAK080B,mBAAmB180B,EAAMo7E,QAChDl8G,KAAK472B,oBAAoBxi1B,MAAK,SAAAvqB,GAC1B,GAAIA,EAAO2wC,QAAS,CAChB,GAAI3wC,EAAOqt1B,aAEP,YADA,EAAKshB,mBAAmB3u2B,EAAOqt1B,aAAchgvB,KAGjD,GAAIrtG,EAAOiiiB,UAIP,OAHA,EAAK2sU,mBAAmB5u2B,GACxB,EAAKo5tB,SAAQ,QACb,EAAKuzI,iBAAgB,GAGzB,EAAK/f,kBAAoB5s1B,EAAO4s1B,kBAChC6hB,EAAU,EAAK7hB,kBAAmB,EAAG,EAAKogB,WAAY3/vB,QAGtD,EAAKshwB,mBAAmB3u2B,EAAOqt1B,aAAchgvB,UAvP7D,2BA2PI,SAAcv5G,EAAMg31B,EAAeh6yB,GAAqC,WAA9Bu8D,EAA8B,uDAArBxzG,GAAAA,YAAc,GAC7D1I,KAAKg92B,iBACLrjB,EAAcgH,eAAegd,gBAAgBh72B,EAAMu5G,GAC9C9iF,MAAK,SAAAvqB,GAAM,OAAI,EAAK8s2B,sBAAsBvr2B,QAAQvB,MAClDiyB,MAAK,SAAAA,GAAI,OAAI,EAAK080B,mBAAmB180B,EAAMo7E,QAChDl8G,KAAK272B,sBAAsBvi1B,MAAK,SAACvqB,GACxBqtG,KACD,EAAK0hwB,oBAAoB/u2B,EAAQ8wC,EAAMh9C,IAC3C,EAAK642B,iBAAgB,QAnQjC,yCAsQI,WAA8B,WACtBx72B,KAAK072B,wBAA0B172B,KAAK072B,2BACpC172B,KAAK072B,yBAAyB/nlB,SAC9B3zR,KAAK072B,yBAAyBt91B,WAElCpe,KAAK072B,uBAAuB,IAAIn1zB,GAAAA,QAAW,CACvCC,MAAO,IAAIN,GAAAA,QAAY,CACnBt5C,KAAM,SAAC6kR,GACH,IAAIoslB,EAAa,GAEbA,EADApslB,EAAY1rO,KACC,EAAK01zB,wBAAwBls2B,OAAOkiR,EAAYzrO,KAAMyrO,EAAY1rO,MAGlE,EAAK01zB,wBACtB,IAAIh3lB,EAAa,EAAKo3lB,WAAa,EAAKzB,eAAe952B,OAAS,EAAKu72B,WAAa,EAAKzB,eAAe952B,OACtG,OAAOoN,GAAAA,WAAa0C,QAAQyt2B,EAAY,CAAEp5lB,WAAYA,OAG9Dh+N,UAAU,EACVC,SAAU1mD,KAAK0mD,cAzR3B,4BA4RI,WACI1mD,KAAK472B,oBAAoBlw0B,SACzB1rC,KAAK472B,oBAAsBlu2B,GAAAA,WAC3B1N,KAAK272B,sBAAsBjw0B,SAC3B1rC,KAAK272B,sBAAwBju2B,GAAAA,aAhSrC,gCAkSI,SAAmBozB,EAAMo7E,GAChBA,IACDl8G,KAAKo62B,aAAa,IAClBp62B,KAAKiouB,SAAQ,MArSzB,qBAwSI,WACIjouB,KAAKw82B,gBAAkBt+0B,aAAal+B,KAAKw82B,iBACzC,yDA1SR,4BA4SI,SAAeh82B,GAAG,WACdR,KAAKsxE,sBAAwBpzC,aAAal+B,KAAKsxE,sBAC/CtxE,KAAKsxE,qBAAuBzuE,YAAW,WACnC,EAAK202B,QAAQ901B,gBAAkB,EAAK801B,QAAQ901B,eAAehc,eAC5D,OAhTX,wBAkTI,SAAWiU,GACP,OAAO3a,KAAKwgB,UAnTpB,0BAqTI,WACI,OAAOg5D,EAAAA,GAAAA,gBAAcruE,EAAAA,GAAAA,iBAAgB,2BAA4B,6DAA8D,IAAMnL,KAAK4nf,aAAe,OAtTjK,oBAwTI,WAAiB,OAAO5nf,KAAKiouB,cAxTjC,GAAqCjnuB,GAAAA,YA0TrCo62B,GAAgBa,sBAAwB,SAAC6B,EAAankB,GAClD,OAAO,IAAI2gB,GAAsBwD,EAAankB,oBC9TrCokB,GAAb,0CACI,WAAYpkB,EAAeqkB,GAAS,MAI5BC,GAJ4B,gBAChC,cAAMtkB,IACDpo1B,OAAS7I,GAAAA,WAAc,GAC5B,gCAAyCzI,SAAQ,SAAC+Q,GAAQA,EAAEoN,aAE5D,IAKI8/1B,EALAC,EAAyB,SAAC1v1B,GAC1B,EAAK2v1B,kBAAkBH,GACvBA,EAAwCD,EAAQty2B,QAAQ+iB,GAAem7D,OAAOz4E,WAAU,SAACkt2B,GAAD,OAAe,EAAKC,oBAAoBD,MAChI,EAAKC,oBAAoBN,EAAQty2B,QAAQ+iB,GAAem7D,WAGxD20xB,EAAwB,WACxB,EAAKH,kBAAkBF,GACvBA,EAAoCF,EAAQvv1B,cAActd,WAAU,SAAC68W,GAAD,OAAsBmwf,EAAuBnwf,MACjHmwf,EAAuBH,EAAQvv1B,kBAdH,OAgBhC,EAAKhmB,aAAa7H,KAAKo92B,EAAQty2B,MAAMyF,WAAU,SAACmsP,GAAD,OAAcihnB,QAC7DA,IACA,EAAK912B,aAAa7H,KAAK,EAAKw52B,aAAajp2B,WAAU,SAAC0Q,GAC3CA,GAAkC,IAArBA,EAAUvhB,OAKxBq51B,EAAc+e,eAAe721B,EAAU3b,KAAI,SAAA8K,GAAC,OAAIA,EAAEq/Q,eAJlDspkB,EAAc+e,eAAe,MAC7B/e,EAAch9P,QAAQ18lB,SAAQ,SAAAowC,GAAI,OAAIA,EAAK+2zB,mBAAmB/2zB,EAAKmvyB,aAK1Dw+B,EAAQty2B,QAAQsy2B,EAAQvv1B,iBAAiBm7D,SAC/C3pF,SAAQ,SAAA4qyB,GACXA,EAAMx6vB,MAAQw6vB,EAAMx6vB,KAAK+2zB,mBAAmBv8D,EAAMx6vB,KAAKmvyB,SACvD,EAAKg/B,cAAc3zE,EAAMx6vB,KAAM,EAAK+p0B,uBAG5C,EAAKtB,mBAAqBnf,EAAcmf,mBACxC,EAAK2F,cAAgB/12B,GAAAA,YAAc,GACnC,EAAKD,aAAa7H,KAAK,EAAKk42B,mBAAmB3n2B,WAAU,SAACN,GACjDA,GAAW890B,KAIZ,EAAKp90B,OAAOws2B,EAAsBr41B,WAHlC,EAAKg51B,oBAMb,EAAKp10B,QAAUqlzB,GA1CiB,EADxC,0CA6CI,SAAYn00B,GACR,GAAIxa,KAAK842B,qBAAsB,CAC3B942B,KAAKy+2B,eAAc,GACnB,IAAIE,EAAgBjx2B,GAAAA,GAAAA,YAAiB,wBACjCkx2B,EAAelm1B,GAAAA,QAAAA,YAAyBim1B,EAAc9+1B,IAAI,IAC9D++1B,EAAa792B,QACb8B,YAAW,WACP2X,EAAM9L,cAAc+5C,OACpBm2zB,EAAa792B,UACd,MAtDf,+BAyDI,SAAkBmgC,GACd,IAAIrgC,EAAQb,KAAKyI,aAAatC,QAAQ+6B,IACxB,GAAVrgC,IAEJqgC,GAAgBA,EAAa9iB,UAC7Bpe,KAAKyI,aAAa8G,OAAO1O,EAAO,MA9DxC,2BAgEI,SAAcwvC,EAAM+p0B,GAAc,WAC9B,GAAI/p0B,EAAKmvyB,SAAW46B,GAAgBA,EAAa952B,OAAS,EAEtD,IADA,IAAIgO,EAAU8r2B,EAAax02B,QAAO,SAACoL,GAAQ,OAAOA,EAAEq/Q,YAAchgP,EAAKggP,aAC9DtkR,EAAI,EAAGA,EAAIuC,EAAQhO,OAAQyL,IAChCskC,EAAKm8yB,YAAYl+0B,EAAQvC,GAAG4oT,SAAS,QAIzC,IAAIzzR,EAAemP,EAAKmvyB,MAAMru0B,WAAU,SAACN,GACrCqwB,EAAa9iB,UACb,EAAKog2B,cAAcnu0B,EAAM,EAAK+p0B,qBA1E9C,iCA8EI,SAAoBxwxB,GAAQ,WACxBA,EAAO3pF,SAAQ,SAAA4qyB,GACPA,EAAMx6vB,MAAQ,EAAK+p0B,gBAAkB,EAAKA,eAAe952B,OAAS,GAClE,EAAKk+2B,cAAc3zE,EAAMx6vB,KAAM,EAAK+p0B,qBAjFpD,2BAqFI,WACIp62B,KAAKuR,OAAO,GACZvR,KAAKy+2B,eAAc,GACnBz+2B,KAAKo62B,aAAa,QAxF1B,yBA0FI,WACgC,OAAxBp62B,KAAKo62B,gBACLp62B,KAAKskL,eA5FjB,GAA2C82rB,IA+F3C2C,GAAsBr41B,UAAY,GAC3B,IAAMm51B,GAAb,0CACI,WAAYnl2B,EAAW5Z,EAASg/2B,GAAa,6BACzC,gBACKpl2B,UAAYA,EACjB,EAAKjR,aAAa7H,KAAK8Y,EAAUnI,OAAOJ,WAAU,SAACoV,GAK3CzmB,EAAQme,MAAMoB,QAJbkH,EAIuB,QAHA,OAK5Bu41B,EAAYzj2B,IAAI,CACZ,QAAWsK,KAAKG,IAAKS,EAAWw31B,GAAsBr41B,UAAY,SAXjC,EADjD,sCAgBI,YACI,uDACA1lB,KAAK0Z,UAAUgl2B,oBAlBvB,GAAoC192B,GAAAA,YAqBpC0H,GAAAA,gBAAAA,cAAsC,CAClC6Q,KAAM,SAAUzZ,EAAS0Z,GACrB,IAAIE,EAAYhR,GAAAA,OAAU8Q,KACtBK,EAAWnM,GAAAA,GAAAA,YAAiB5N,GAChCA,EAAQme,MAAMoB,QAAU,OACxB,IAAIy/1B,EAAcjl2B,EAASwC,KAAK,2BAC5B0i2B,EAAiB,IAAIF,GAAenl2B,EAAW5Z,EAASg/2B,IAC5Dn+2B,EAAAA,GAAAA,oBAAmBb,GAAS,WACxBi/2B,EAAe3g2B,eC/HpB,IAAM4g2B,GAAb,0CACI,WAAY7uK,EAAS0oK,GAAoB,uBACrC,gBACK1oK,QAAUA,EACf,EAAK0oK,mBAAqBA,EAC1B,EAAKoG,SAAW,EAChB,EAAKC,kBAAoB,KACzB,EAAK551B,QAAU5c,GAAAA,WAAc,IAC7B,EAAKy22B,eAAiBz22B,GAAAA,aACtB,EAAKmmD,WAAanmD,GAAAA,WAAc,GAChC,EAAKkmD,SAAWlmD,GAAAA,WAAc,GAC9B,EAAK040B,UAAY,EACjB,EAAKg+B,WAAa122B,GAAAA,YAAc,GAChC,EAAKgD,MAAQhD,GAAAA,gBAAmB,CAAC,CAAEkhF,OAAQlhF,GAAAA,gBAAmB,KAAO,CAAEkhF,OAAQlhF,GAAAA,gBAAmB,KAAO,CAAEkhF,OAAQlhF,GAAAA,gBAAmB,OACtI,EAAK222B,iBAAmB322B,GAAAA,WAAc,IACtC,EAAK422B,kBAAoB522B,GAAAA,WAAc,GACvC,EAAK+lB,cAAgB/lB,GAAAA,WAAc,GACnC,IAAI01P,EAAW,EAAK3vO,gBACpB,EAAKhmB,aAAa7H,KAAK,EAAKm6a,YAAcrya,GAAAA,cAAgB,WACtD,IACI4I,EAAOC,EADPq4E,EAAS,EAAKl+E,QAAQ,EAAK+iB,iBAAiBm7D,SAEhD,GAAsB,IAAlBA,EAAOtpF,OAAc,CACrB,IAAIuqyB,EAAQjhtB,EAAO,GACfzjE,EAAW0kxB,EAAM1kxB,WACrB7U,EAAQqU,KAAKC,IAAIO,EAAS7U,MAAOu5xB,EAAMx6vB,KAAK/+B,SAC5CC,EAASoU,KAAKC,IAAIO,EAAS5U,OAAQs5xB,EAAMx6vB,KAAK9+B,UAElD,MAAO,CAAED,MAAOA,EAAQA,EAAQ,KAAO,OAAQC,OAAQA,EAASA,EAAS,KAAO,YAEpF,EAAK+lZ,iBAAmB64S,EAAQqpK,kBAAkBE,aAClD,IAAI6F,EAA0B,WAC1B,IAAIvY,EAAQ72J,EAAQ62J,QAChBv7pB,EAAa9lL,KAAK+iK,KAAKynhB,EAAQ22J,cAAgB3J,GAAqB6J,GAAS9X,MAC7EjoyB,EAAYthC,KAAK+iK,KAAKynhB,EAAQ42J,aAAe5J,GAAqB6J,GAAS9X,MAC3Ex8Z,EAAiBmmb,IACjBhqzB,EAAcshpB,EAAQi/J,aAAepjB,IAAyBrm0B,KAAKo1B,MAAM23Y,EAAephb,OAAS21C,EAAY,EAAI,EAAKg4zB,YAAgB,EACtIrwzB,EAAWjpC,KAAKo1B,MAAM23Y,EAAenhb,QAAUk6L,EAAa,EAAI,EAAKwzqB,YAAc,EACvF,EAAKpwzB,WAAWA,GAChB,EAAKD,SAASA,IAEd4wzB,EAAuB,WACvBD,IACA,EAAKn+B,UAAY,EAAKvyxB,aAAe,EAAKD,WAC1C,EAAKt9B,cAAc6+qB,EAAS,EAAKixI,YA1CA,OA4CrC,EAAK340B,aAAa7H,KAAKi42B,EAAmB1n2B,WAAU,WAChD,EAAKzF,QAAQzL,SAAQ,SAAAC,GAAI,OAAIA,EAAK0pF,SAAS3pF,SAAQ,SAAA4qyB,GAAK,OAAIA,EAAMvlxB,SAAU,QAC5Ek61B,IACA,IAAIC,EAAqB,EAAK/z2B,QAAQ,EAAK+iB,iBAC3C,EAAKix1B,aAAaD,EAAoB,EAAKr+B,UAAWjxI,EAAS,EAAKmvK,oBAAqBnvK,EAAQqpK,kBAAkBC,eACnH,EAAKn01B,QAAQ4V,sBAEjB,EAAKzyB,aAAa7H,KAAKuvsB,EAAQwoK,aAAaxn2B,WAAU,WAClD,IAAK,IAAIpF,EAAI,EAAGA,EAAI,EAAKL,QAAQpL,OAAQyL,IACrC,EAAKL,QAAQK,GAAG69E,OAAO,IACvB,EAAKl+E,QAAQK,GAAG4z2B,WAAa,EAEjCH,QAEJ,EAAK/22B,aAAa7H,KAAKuvsB,EAAQ9/a,UAAUl/Q,UAAUqu2B,IACnD,EAAK/22B,aAAa7H,KAAKuvsB,EAAQipK,aAAajo2B,WAAU,SAACN,GAC/CA,IAEJqtB,aAAa,EAAKih1B,kBAClB,EAAKA,eAAet82B,YAAW,kBAAM,EAAKyiB,QAAQ4V,oBAAmB,WAEzE,EAAKzyB,aAAa7H,KAAKuvsB,EAAQ62J,MAAM711B,WAAU,WAC3Cou2B,IACA,IAAIn+B,EAAY,EAAKvyxB,aAAe,EAAKD,WACzC,GAAI,EAAKwyxB,YAAcA,EACnB,EAAKA,UAAYA,EACjB,EAAK110B,QAAQzL,SAAQ,SAAAC,GAAI,OAAIA,EAAK0pF,SAAS3pF,SAAQ,SAAA4qyB,GAAK,OAAIA,EAAMvlxB,SAAU,QAC5E,EAAKgM,cAAc6+qB,EAASixI,QAE3B,GAAuB,IAAnB,EAAKA,UAAiB,CAC3B,IAAIv2C,EAAQ,EAAKn/xB,QAAQ,EAAK+iB,iBAAiBm7D,SAAS,GACxD,EAAKl+E,QAAQzL,SAAQ,SAACC,EAAMW,GACpBA,GAAS,EAAK4tB,iBACdvuB,EAAK0pF,SAAS3pF,SAAQ,SAAA4qyB,GAAK,OAAIA,EAAMvlxB,SAAU,QAEvDziB,YAAW,WACPgoyB,EAAM1kxB,SAAS,CACXzN,KAAMmyxB,EAAM1kxB,WAAWzN,KACvBI,IAAK+xxB,EAAM1kxB,WAAWrN,IACtBvH,OAAQoU,KAAKC,IAAI,EAAKiz1B,qBAAqBtn2B,OAAQs5xB,EAAMx6vB,KAAK9+B,UAC9DD,MAAOqU,KAAKC,IAAI,EAAKiz1B,qBAAqBvn2B,MAAOu5xB,EAAMx6vB,KAAK/+B,mBAK5E,EAAK7I,aAAa7H,KAAK,EAAK0+2B,kBAAkBnu2B,WAAU,SAACN,GACjDA,GAAU,EACV,EAAK+u2B,WAAWzvK,GAEXt/rB,EAAS,GACd,EAAKyu2B,kBAAkB,OAG/B,EAAK722B,aAAa7H,KAAK,EAAK6tB,cAActd,WAAU,SAACN,GACjD,IAAIhC,EAASgC,EAASutP,GACN,IAAZvvP,GAA4B,IAAXA,EACjB,EAAKyw2B,kBAAkB,EAAKA,oBAAsB,GAElC,IAAXzw2B,IAA4B,IAAZA,GACrB,EAAKyw2B,kBAAkB,EAAKA,oBAAsB,GAEtDlhnB,EAAWvtP,MAEf,EAAKpI,aAAa7H,KAAK,EAAKi/2B,gBAAkBn32B,GAAAA,UAAY,WACtD,OAAoC,IAA7B,EAAK422B,wBAEhB,EAAK722B,aAAa7H,KAAK,EAAKk/2B,iBAAmBp32B,GAAAA,UAAY,WACvD,OAAO,EAAK422B,qBAAwB351B,KAAK+iK,KAAKynhB,EAAQwoK,eAAer42B,QAAU,EAAKuuD,aAAe,EAAKD,aAAe,MA/GtF,EAD7C,2CAmHI,SAAamxzB,EAAa1x2B,EAAWxF,GACjCk32B,EAAYha,4BAA6B,EACzCga,EAAYja,QAAU,EACtB,IAAIka,EAAW,GAKf,OAJIhg3B,KAAKs3Z,oBAAsBt3Z,KAAKoh1B,UAAY,IAC5C/y0B,IAAc2x2B,EAAS3x2B,IAAa,GACpC2x2B,EAAS,oBAAqB,GAE3B,CACH3v0B,KAAM0v0B,EACNl32B,QAASA,EACTm32B,SAAUA,EACV751B,SAAUzd,GAAAA,WAAc,CAAEoQ,IAAK,EAAGJ,KAAM,EAAGpH,MAAO,EAAGC,OAAQ,OA/HzE,qBAkII,WACI2sB,aAAal+B,KAAKm/2B,mBAClB,yDApIR,gCAsII,SAAmBhvK,GACf,GAAInwsB,KAAK0L,QAAQ1L,KAAKyuB,iBAAkB,CACpC,IAAIwx1B,GAAa,EACbtjR,EAAQ38lB,KAAK0L,QAAQ1L,KAAKyuB,iBAAiBm7D,SAC/C,GAAI+ygB,EAAMr8lB,OAAS,EAAG,CAClB,IAAK,IAAIyL,EAAI,EAAGA,EAAI4wlB,EAAMr8lB,OAAQyL,IAC1B4wlB,EAAM5wlB,GAAGskC,OACTssjB,EAAM5wlB,GAAGskC,KAAK80zB,iBAAgB,GAC1BxoQ,EAAM5wlB,GAAGskC,KAAKllB,WACd801B,GAAa,IAIpBA,GACDtjR,EAAM,GAAGtsjB,MAAQ8/pB,EAAQ48I,SAASpwP,EAAM,GAAGtsjB,KAAKggP,eApJpE,gCAyJI,WACI,GAAIrwR,KAAK0L,QAAQ1L,KAAKyuB,iBAAkB,CACpC,IAAIm7D,EAAS5pF,KAAK0L,QAAQ1L,KAAKyuB,iBAAiBm7D,SAC5CA,EAAOtpF,OAAS,IACZspF,EAAOtpF,OAAS,EAChBN,KAAKq/2B,iBAAiB,CAACz1xB,EAAO,GAAGv5C,KAAKggP,UAAY,EAAGzmM,EAAOA,EAAOtpF,OAAS,GAAG+vC,KAAKggP,UAAY,GAAGp/Q,KAAK,QAGpG24E,EAAO,GAAGv5C,MACVrwC,KAAKq/2B,kBAAkBr/2B,KAAKmwsB,QAAQ9/a,YAAc,GAAG5hR,gBAlK7E,2BAwKI,SAAc0hsB,EAAS+vK,GAKnB,IAJA,IAAIx6gB,EAAa//U,KAAK+iK,KAAKynhB,EAAQwoK,eAAer42B,OAAS4/2B,GACvD7vlB,EAAY,EACZ8vlB,GAAiB,EACjBR,EAAY,EACP5z2B,EAAI,EAAGA,EAAI25V,EAAY35V,IAAK,CACjC,IAAK,IAAIw+E,EAAI,EAAGA,EAAI21xB,EAAY31xB,IAAK,CACjC,GAAI4lnB,EAAQwoK,eAAetolB,GAAWllQ,SAAU,CAC5Cg11B,GAAiB,EACjBR,EAAY5z2B,EACZ,MAGJ,GADAskR,IACI8/a,EAAQwoK,eAAer42B,SAAW+vR,EAClC,MAGR,GAAI8vlB,EACA,MAEJng3B,KAAKs/2B,sBAAwBK,EAC7B3/2B,KAAKs/2B,kBAAkBK,GAGvB3/2B,KAAK4/2B,WAAWzvK,KAhM5B,kCAmMI,SAAqBvmnB,EAAQ/gF,GAGzB,IAFA,IAAI0I,EAASvR,KAAK642B,qBAAqBtn2B,OAASvR,KAAK4uD,WACjDt9C,EAAQtR,KAAK642B,qBAAqBvn2B,MAAQtR,KAAK6uD,aAC1C9iD,EAAI,EAAGA,EAAI69E,EAAOtpF,OAAQyL,IAAK,CACpC,IAAI6iD,EAAWjpC,KAAKo1B,MAAOhvC,EAAK/L,KAAK6uD,cAEjCn2C,GADa3M,EAAK/L,KAAK6uD,aAAeD,GAClBt9C,EACpBs4E,EAAO79E,GAAGlD,UAAYA,IAAiC,IAAtB+gF,EAAO79E,GAAGlD,SAC3C+gF,EAAO79E,GAAGoa,SAAS,CACfrN,IAAK81C,EAAWr9C,EAChBmH,KAAMA,EACNpH,MAAOA,EACPC,OAAQA,IAEZq4E,EAAO79E,GAAGlD,SAAU,GAGpB+gF,EAAO79E,GAAGoa,SAAS,CACfrN,IAAK81C,EAAWr9C,EAChBmH,KAAMkxE,EAAO79E,GAAGi02B,SAAV,MAA0E,GAA3Chg3B,KAAK642B,qBAAqBvn2B,MAAQoH,GAAc1Y,KAAK642B,qBAAqBvn2B,MAAQoH,EACvHpH,MAAOA,EACPC,OAAQA,OAxN5B,+BA6NI,SAAkB6u2B,EAAazjR,GAC3B,IAAI0jR,EAAoBD,EAAYx2xB,SAAS1jF,KAAI,SAAA8K,GAAC,OAAIA,EAAEq/B,QACpDsi0B,EAAYh2Q,EAAMx2lB,QAAQk62B,EAAkB,IAChD,IAAmB,IAAf1N,EACA,IAAK,IAAI5m2B,EAAI,EAAGA,EAAI4m2B,EAAW5m2B,IAC3Bq02B,EAAYx2xB,OAAOr6E,OAAOxD,EAAG,EAAG/L,KAAKsg3B,aAAa3jR,EAAM5wlB,GAAI,QAAQ,SAKrD,KADnB4m2B,EAAY0N,EAAkBl62B,QAAQw2lB,EAAM,MAExCyjR,EAAYx2xB,OAAOr6E,OAAO,EAAGoj2B,GAGrC,OAAOA,IA3Of,8BA6OI,SAAiByN,EAAazjR,GAC1B,IAAI0jR,EAAoBD,EAAYx2xB,SAAS1jF,KAAI,SAAA8K,GAAC,OAAIA,EAAEq/B,QACpDkw0B,EAAW5jR,EAAMx2lB,QAAQk62B,EAAkBA,EAAkB//2B,OAAS,IAC1E,GAAIig3B,IAAa5jR,EAAMr8lB,OAAS,EAC5B,OAAO,EAEX,IAAkB,IAAdig3B,EACA,IAAK,IAAIx02B,EAAIw02B,EAAW,EAAGx02B,EAAI4wlB,EAAMr8lB,OAAQyL,IACzCq02B,EAAYx2xB,OAAOr6E,OAAOxD,EAAG,EAAG/L,KAAKsg3B,aAAa3jR,EAAM5wlB,GAAI,SAAS,SAIzEw02B,EAAWF,EAAkBl62B,QAAQw2lB,EAAMA,EAAMr8lB,OAAS,IAC1D8/2B,EAAYx2xB,OAAOr6E,OAAOgx2B,EAAW,EAAGF,EAAkB//2B,OAASig3B,GAEvE,OAAOA,IA5Pf,0BA8PI,SAAaH,EAAaF,EAAY/vK,EAAStvsB,GAA6B,IAAtB2/2B,EAAsB,wDACpE52xB,EAASw2xB,EAAYx2xB,SACzB,GAAIw2xB,EAAYT,YAAc9+2B,GACtB+oF,EAAOtpF,SAAW4/2B,IAA4C,IAA9Bt2xB,EAAO,GAAGv5C,KAAKggP,WAChDzmM,EAAOrnE,MAAK,SAAAvR,GAAC,OAAIA,EAAEsU,WAAU,CAChC861B,EAAYT,UAAY9+2B,EACxBq9B,aAAal+B,KAAKk/2B,mBAClB,IAAIv32B,EAAau42B,EAAar/2B,EAC9B,GAAI8G,EAAa,GAAKA,GAAcwosB,EAAQwoK,eAAer42B,OAEvD,YADA8/2B,EAAYx2xB,OAAO,IAIvB,IADA,IAAI+ygB,EAAQ,GACH5wlB,EAAIpE,EAAYoE,EAAIpE,EAAau42B,KAClCn02B,GAAKoksB,EAAQwoK,eAAer42B,QADkByL,IAIlD4wlB,EAAM/7lB,KAAKuvsB,EAAQwoK,eAAe5s2B,IAEtC,IAAIi+D,EAAQhqE,KAAKyg3B,kBAAkBL,EAAazjR,GAC5Crge,EAAOt8H,KAAK0g3B,iBAAiBN,EAAazjR,GAC9C,IAAe,IAAX3yhB,IAA0B,IAAVsyD,EAAa,CAC7B8jvB,EAAYx2xB,OAAO,IACnB,IAAS79E,EAAI,EAAGA,EAAI4wlB,EAAMr8lB,OAAQyL,IAC9Bq02B,EAAYx2xB,OAAOr6E,OAAOxD,EAAG,EAAG/L,KAAKsg3B,aAAa3jR,EAAM5wlB,GAAI,MAAM,IAG1E/L,KAAK2g3B,qBAAqBP,EAAYx2xB,UAAU,GAChD,IAAIhjE,EAAO5mB,KACPwg3B,EACAxg3B,KAAKk/2B,kBAAoBr82B,YAAW,WAChC+jB,EAAK+51B,qBAAqBP,EAAYx2xB,UAAU,KACjD,KAGHhjE,EAAK+51B,qBAAqBP,EAAYx2xB,UAAU,MAjShE,wBAqSI,SAAWumnB,GACP,IAAI+vK,EAAalg3B,KAAK6uD,aAAe7uD,KAAK4uD,WACzBjpC,KAAK+iK,KAAKynhB,EAAQwoK,eAAer42B,OAAS4/2B,GACvDlg3B,KAAKyuB,kBAAoBzuB,KAAK0L,QAAQpL,OAAS,GAC/CN,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,GACnFt/2B,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,IAErD,IAAzBt/2B,KAAKyuB,iBACVzuB,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,GACnFt/2B,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,KAGnFt/2B,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,GACnFt/2B,KAAK0/2B,aAAa1/2B,KAAK0L,QAAQ,GAAIw02B,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAsB,IAEvF,IAAIG,EAAqBz/2B,KAAK0L,QAAQ1L,KAAKyuB,iBAC3CzuB,KAAK0/2B,aAAaD,EAAoBS,EAAY/vK,EAASnwsB,KAAKs/2B,oBAAqBnvK,EAAQqpK,kBAAkBC,eAC1Gz52B,KAAKo/2B,cACNp/2B,KAAK4g3B,mBAAmBzwK,GAE5BnwsB,KAAK6g3B,yBAzTb,GAAkC7/2B,GAAAA,YCFrB8/2B,GAAb,0CACI,WAAYnnB,EAAeqkB,GAAS,6BAChC,gBACKn12B,QAAUH,GAAAA,YAAc,GAAOI,OAAO,CAAEy2D,OAAQ,WACrD,EAAK92D,aAAa7H,KAAK,EAAK+B,KAAO+F,GAAAA,UAAY,WAE3C,GADA7F,YAAW,WAAQ,EAAKgG,SAAQ,KAAU,IACP,IAA/B8w1B,EAActpkB,YACd,OAAOllR,EAAAA,GAAAA,iBAAgB,UAAW,gDAGlC,IAAIok2B,GAASpk2B,EAAAA,GAAAA,iBAAgB,KAAM,+CAEnC,OADeA,EAAAA,GAAAA,iBAAgB,OAAQ,iDACrB,IAAM6y2B,EAAQqB,mBAAqB,IAAM9P,EAAS,IAAM5V,EAAch9P,QAAQr8lB,WAXxE,EADxC,kBAAqCU,GAAAA,YAiBrC0H,GAAAA,gBAAAA,oBAA4C,CACxC6Q,KAAM,SAAUzZ,EAAS0Z,GACrB,IAAII,EAASJ,IACTK,EAAWnM,GAAAA,GAAAA,YAAiB5N,GAC5BspM,EAAY,KACZ23qB,EAAyB,KAC7Bnn2B,EAAO/Q,QAAQsI,WAAU,SAACN,GAClBA,GACAgJ,EAASge,YAAY,cAAcpY,SAAS,cAC5C2pL,GAAalrK,aAAakrK,GAC1BA,EAAYvmM,YAAW,WAAQ+W,EAAO/Q,SAAQ,KAAW,OAGzDgR,EAASge,YAAY,cAAcpY,SAAS,cAC5Csh2B,GAA0B7i1B,aAAa6i1B,GACvCA,EAAyBl+2B,YAAW,WAChCgX,EAASge,YAAY,gBACtB,2BCnCNmp1B,IAAb,QACI,WAAYp/2B,EAAO8J,EAAOu12B,GAAiB,IAKnC//D,EALmC,uBACvClhzB,KAAK0L,MAAQA,EACb1L,KAAK40B,cAAgBlsB,GAAAA,gBAAmB,IACxC1I,KAAK4B,MAAQA,EACb5B,KAAKqrB,WAAa3f,EAElB1L,KAAK0kd,iBAAmB/+b,KAAKG,KAAMpa,GAASA,EAAMpL,QAAW,GAAK,EAAG0g3B,EAAkBt8Z,kBACvF1kd,KAAKuiZ,cAAgB75Y,GAAAA,aAAgB,CACjC+H,KAAM,kBAAM,EAAK7O,QAAQtB,QAAUoL,EAAMpL,QACzCsQ,MAAO,SAAC2kI,GACJ,IAAIhvH,EAAWgvH,EAAa2rqB,IAAcA,EAAYx1yB,EAAMxF,KAAI,SAAA8K,GAAC,OAAIA,EAAEpP,UAAW,IAC7Ei2D,EAAAA,GAAAA,eAAc,EAAKj2D,MAAM8O,OAAQ6V,IAClC,EAAK3kB,MAAM2kB,MAGnB061B,GACAjh3B,KAAKuiZ,eAAc,MCXxB,SAAS3kW,GAAcC,GAC1B,MAAmB,yBAAfA,EACOg8yB,GAAsBC,WAEd,eAAfj8yB,EACOg8yB,GAAsBI,mBAEd,SAAfp8yB,EACOg8yB,GAAsBK,eADjC,EDOJ8mB,GAAkBt8Z,iBAAmB,ECC9B,IAAMw8Z,GAAb,0CACI,aAAc,6BACV,eAASn52B,YACJo52B,2BAA6Bz42B,GAAAA,aAClC,EAAK042B,0BAA4B,WAAQ,OAAOj22B,EAAAA,GAAAA,iBAAgB,SAAU,+BAHhE,EADlB,+CAMI,SAAiBwY,GACb,QAAS3jB,KAAKqh3B,aAAerh3B,KAAKqh3B,YAAY9+1B,MAAK,SAAC++1B,GAAoB,OAAOA,EAAcr0xB,WAAatpE,OAPlH,wBAyBI,SAAW6u1B,EAAY9h1B,GACf3oB,UAAUzH,OAAS,IACnBN,KAAKqh3B,YAAc7O,EACf9h1B,IACAA,EAAU6w1B,2BAA6Bvh3B,KAAKmh3B,2BAA2Bzw1B,EAAU6w1B,2BACjF7w1B,EAAU8w1B,iCAAmCxh3B,KAAKwh3B,+BAAiC9w1B,EAAU8w1B,oCA9B7G,wBAkCI,SAAW7ywB,GACP,IAAI8ywB,EAAsB9ywB,EAAU+ywB,yBAChC7j0B,EAAa79C,KAAK2h3B,WAAWhzwB,GAAa,OAASjmG,GAAAA,OAAU+42B,EAAoB991B,MACjFmgB,EAAa8Z,GAAcC,GAC3BjvB,EAAO,CACPjgB,aAAc,QACdO,YAAauy2B,EAAmB,YAChCty2B,eAAgBsy2B,EAAmB,eACnCj/1B,OAAQshB,IAAc890B,EAAAA,GAAAA,eAAwB/j0B,GAC9C/hB,cAAe,IAMnB,MAJiC,gBAA7B2l1B,EAAoB991B,OACpBiL,EAAKkN,cAAcC,WAAa0l1B,EAAoB/4iB,WAExD1oU,KAAK6h3B,iBAAiBjz1B,EAAM+/E,GACrB//E,IAjDf,gCAmDI,SAAmBA,EAAM+/E,GAAW,WAChC//E,EAAKkN,cAAczX,gBAAkBsqF,EAAU+5N,UAC/C95S,EAAKkN,cAAclD,YAAclwB,GAAAA,UAAY,WACzC,OAAIA,GAAAA,OAAUimG,EAAU+5N,WACb,EAAK04iB,4BACT142B,GAAAA,OAAUimG,EAAUmzwB,eAAgB5/yB,EAAAA,GAAAA,qBAAsB,QAxD7E,8BA2DI,SAAiBtzC,EAAM+/E,GACnB,IAAIjjG,EAAQ1L,KAAK+h3B,kBAAkBpzwB,GACnC//E,EAAI,WAAiB5uB,KAAKgi3B,eAAerzwB,EAAU+ywB,yBAA0Bh22B,GAAO,KA7D5F,8BA+DI,SAAiBijG,EAAW/sG,GACxB,IAAI2kB,EAAW7d,GAAAA,aAIf,OAHc,OAAV9G,QAA4B,IAAVA,GAClB2kB,EAAS3kB,GAEN,CAAEA,MAAO2kB,EAAUxX,QAAS,WAAQ,MAAO,CAAC4/F,EAAUszwB,sBApErE,mCAsEI,SAAsBC,EAAWvzwB,EAAWwzwB,GAAoB,WACxDnmxB,EAAYmmxB,GAA0Cni3B,KAAKoi3B,kBAAkB152B,GAAAA,OAAUimG,EAAUhrF,OACrG,OAAOjb,GAAAA,gBAAmBw52B,EAAUh82B,KAAI,SAAChG,GACrC,OAAO,EAAKmi3B,iBAAiB1zwB,EAAW3S,EAAU97F,UAzE9D,wBA4EI,SAAWyuG,GACP,OAAO3uG,KAAKsi3B,iBAAiB552B,GAAAA,OAAUimG,EAAUhrF,SA7EzD,4BA+EI,SAAe891B,EAAqB/12B,EAAO85C,GAEnC,IAAI83M,EADR,OAAI5xP,GAEI1L,KAAKwh3B,iCACLlknB,EAAWt9P,KAAKwh3B,+BAA+BC,EAAqB/12B,EAAMjG,MAAM,KAC7E63P,GAAsB4jnB,EAAgBqB,wBAAwB/8zB,EAAO,IAAIW,GAAAA,iBAAiBz6C,EAAO,gBAAkB,IAAI06C,GAAAA,QAAW16C,KAEtIA,IAtFf,+BAwFI,SAAkBijG,GACd,IAAIhrF,EAAOjb,GAAAA,OAAUimG,EAAUhrF,MAC/B,GAAI3jB,KAAKsi3B,iBAAiB3+1B,GAAO,CAC7B,IAAI6+1B,EAAuBxi3B,KAAKqh3B,YAAYz72B,QAAO,SAAC072B,GAAoB,OAAOA,EAAcr0xB,WAAatpE,KAAS,GACnH,GAAI6+1B,GAAwBA,EAAqB5o2B,QAAiD,IAAvC4o2B,EAAqB5o2B,OAAOtZ,OACnF,OAAOki3B,EAAqB5o2B,OAAO1T,KAAI,SAAC6d,GAAU,MAAO,CAAEniB,MAAOmiB,EAAIniB,MAAOmjB,aAAchB,EAAI7U,mBA7F/G,8BAiGI,SAAiBy/F,GAAW,WACpB8zwB,EAAYzi3B,KAAK0i3B,WAAW/zwB,GAahC,OAZAA,EAAUszwB,eAAev02B,GAAAA,QAAS,EAAM,GAAI+02B,EAAW,CAAE9z2B,aAAc,gBAC3CyJ,IAAxBu2F,EAAU+5N,WACV1oU,KAAK2i3B,mBAAmBF,EAAW9zwB,GAEnCjmG,GAAAA,OAAUimG,EAAUmzwB,gBACpBW,EAAUjg2B,OAASo7B,GAAc+wD,EAAS,uBAA6B,uBAAyB,cAChG8zwB,EAAS,WAAiB,WAAQ,OAAO,EAAKJ,iBAAiB1zwB,KAEnE8zwB,EAAUjg2B,OAAOuhB,OAAS0+0B,EAAUjg2B,OAAOuhB,QAAU,kCACjD/jC,KAAKmh3B,8BACLnh3B,KAAKmh3B,4BAALnh3B,CAAkC2uG,EAAU+ywB,yBAA0Be,GAEnEA,IA/Gf,+BAiHI,SAAkB9+1B,GACd,OAAQ,SAAAI,GAAS,OAAOA,MAlHhC,oCASI,SAA6BniB,EAAOgh3B,GAChC,OAAIhh3B,aAAiB2D,MACV3D,EAAMsE,KAAI,SAAChG,GACd,IAAI4pc,EAAYphc,GAAAA,aAAyB,OAATxI,QAA0B,IAATA,OAAkB,EAASA,EAAK0B,OAAS1B,EAAK0B,QAAU1B,EACzG,OAAQ4pc,aAAqBx7X,KAAQs0yB,EAAc94a,GAAaA,KAGhEloc,aAAiB0sE,KAAQs0yB,EAAchh3B,GAASA,IAhBhE,qCAkBI,SAA+B4kD,GAC3B,OAAO,IAAID,GAAAA,QAAW,CAClBC,MAAOA,EACPC,UAAU,EACVC,SAAU,UAtBtB,GAAqC1lD,GAAAA,YClBxB6h3B,GAAb,0CACI,WAAYrQ,EAAY9h1B,GAAW,6BAC/B,gBACKA,UAAYA,EACjB,EAAKhqB,WAAW8r2B,EAAY9h1B,GAHG,EADvC,8CAMI,SAAgB/M,EAAMm/1B,GAClB,IAAI9mxB,EAAYh8F,KAAKoi3B,kBAAkBz+1B,GACvC,OAAOjW,GAAAA,IAAMo12B,GAAgB,IAAI,SAACC,GAAkB,MAAO,CAAEnh3B,MAAOo6F,EAAU+mxB,EAAYljC,OAAQ96zB,aAAcg+1B,EAAYC,kBARpI,wBAgBI,SAAWr0wB,GACP,IAAI//E,GAAO,yDAAiB+/E,GAO5B,OANA//E,EAAKjgB,aAAek02B,EAAuBI,uBAAuBt0wB,EAAUrhG,MACvEqhG,EAAUmzwB,eAAiBnzwB,EAAUm0wB,iBAAkB9i3B,KAAK2h3B,WAAWhzwB,KACxE//E,EAAKkN,cAActF,eAAgB,EAC9Bm4E,EAAU+5N,YACX95S,EAAKkN,cAAcoya,eAAgB,IAEvCv/V,EAAUu0wB,SACVt01B,EAAKpM,OAASxiB,KAAKmj3B,iBACZv01B,IAEa,oBAAnB+/E,EAAUhrF,OAA8BgrF,EAAUy0wB,mBAAmBz0wB,EAAU00wB,SAASzn1B,OAAO+yE,EAAU20wB,YAAa30wB,EAAUhrF,OAAWgrF,EAAU+5N,WAAc/5N,EAAUmzwB,cAAiBnzwB,EAAU40wB,uBAGjL,gBAAnB50wB,EAAUhrF,OACfiL,EAAKkN,cAAcsya,oBAAqB,GAHxCx/a,EAAK3G,gBAAkBm/C,GAAAA,wBAKpBx4C,KAlCf,8BAoCI,SAAiBA,EAAM+/E,GACnB,IAAI60wB,EAAUxj3B,KACT2uG,EAAU40wB,wBACXz82B,OAAOi+D,eAAen2C,EAAM,aAAc,CACtC/O,IAAK,WACD,IAAInU,EAAQ,GACR+32B,GAAc,EAQlB,GAPI90wB,EAAU+0wB,0BAA4B/0wB,EAAUm0wB,gBAAsD,IAApCn0wB,EAAUm0wB,eAAexi3B,OAC3FoL,EAAQijG,EAAUm0wB,gBAGlBp32B,EAAQ832B,EAAQzB,kBAAkBpzwB,GAClC80wB,GAAc,GAEd90wB,EAAUg1wB,gBACV,OAAOh1wB,EAAUg1wB,gBACrB,IAAIC,EAAcJ,EAAQxB,eAAerzwB,EAAU+ywB,yBAA0Bh22B,EAAO+32B,GAGpF,OAFIG,IACAj1wB,EAAUg1wB,gBAAkBC,GACzBA,GAEX5+yB,IAAK,SAACprD,GACF+0F,EAAUm0wB,aAAalp2B,QA1D3C,wBA+DI,SAAW+0F,GACP,OAAOA,EAAU+0wB,4BAA8B/0wB,EAAUm0wB,iBAAlD,yDAAqFn0wB,KAhEpG,+BAkEI,SAAkBhrF,GACd,MAAa,oBAATA,EACO,SAAC6qS,GAAiB,OAAOpgP,EAAAA,GAAAA,WAAUogP,IAErC,CAAC,eAAgB,eAAgB,gBAAgBroT,QAAQwd,IAAS,EAChE,SAAAI,GAAG,OAAIo/D,EAAAA,GAAAA,uBAAsBp/D,EAAK,MAEpC,CAAC,gBAAiB,gBAAiB,kBAAkB5d,QAAQwd,IAAS,EACpE,SAAAI,GAAG,OAAIwgE,EAAAA,GAAAA,qBAAoBxgE,EAAK,OAE3C,gEAA+BJ,KA5EvC,4BA8EI,WACI,OAAOk20B,GAAsBG,eA/ErC,8BAUI,SAAuBrr1B,GACnB,OAAOA,EAAa+5C,QAAQ,MAAO,OAX3C,oCAaI,SAA8B/5C,GAC1B,MAAO,IAAMk02B,EAAuBgB,gBAAgBl12B,OAd5D,GAA4Cuy2B,ICJ/B4C,GAAb,WACI,aAAc,2BACV9j3B,KAAK+j3B,cAAgB,GACrB/j3B,KAAKgk3B,cAAgB,CACjB,eACA,iBACA,eACA,eACA,eACA,gBACA,gBACA,cACA,gBACA,gBACA,iBAEJhk3B,KAAKik3B,cAAc,iBAAiB,SAACri3B,GAAD,MAA4B,kBAAVA,KACtD5B,KAAKik3B,cAAc,eAAe,SAACri3B,GAAD,MAA4B,kBAAVA,IAAsB00E,EAAAA,GAAAA,cAAa10E,MACvF5B,KAAKik3B,cAAc,kBAAkB,SAACri3B,GAAD,MAA4B,mBAAVA,KACvD5B,KAAKik3B,cAAc,mBAAmB,SAACri3B,GACnC,OAAQ4nC,MAAM,IAAI8kC,KAAK1sE,OAE3B5B,KAAKgk3B,cAAc/j3B,SAAQ,SAAC0jB,GAAD,OAAU,EAAKsg2B,cAActg2B,GAAM,SAAC/hB,GAAD,MAA4B,kBAAVA,GAAsB0lE,GAAAA,kBAAAA,QAA0B3jD,OAAMvL,EAAWxW,SAtBzJ,4CAwBI,SAAcgjE,EAAU8O,GACpB1zE,KAAK+j3B,cAAcn/yB,GAAY8O,IAzBvC,sBA2BI,SAAS/vD,EAAM/hB,GACX,OAAO5B,KAAK+j3B,cAAcpg2B,IAAQ3jB,KAAK+j3B,cAAcpg2B,GAAM/hB,KA5BnE,2BA8BI,SAAc+hB,GACV,OAAO3jB,KAAKgk3B,cAAczh2B,MAAK,SAAAvR,GAAC,OAAIA,IAAM2S,SA/BlD,KCQaug2B,GAAb,0CACI,WAAYC,EAAeC,GAAiB,6BACxC,gBACKC,iBAAmB372B,GAAAA,YAAc,GACtC,EAAK+52B,UAAY/52B,GAAAA,aACjB,EAAKo62B,aAAep62B,GAAAA,kBACpB,EAAKi72B,gBAAkB,KACvB,EAAK1B,eAAiBv52B,GAAAA,aACtB,EAAK262B,SAAW,CAAC,eAAgB,eAAgB,gBACjD,EAAKC,WAAa,CAAC,gBAAiB,gBAAiB,kBACrD,EAAKF,mBAAqB,SAACzt1B,EAAOhS,GAAR,OAAiBgS,EAAMxvB,QAAQwd,IAAS,GAClE,EAAK68G,IAAM2jvB,EAAcG,IACzB,EAAK3g2B,KAAOwg2B,EAAczR,SAC1B,EAAKwQ,QAAUiB,EAActkC,YAAuCzn0B,IAA9B+r2B,EAActkC,MAAM0kC,YAAmDns2B,IAA5B+r2B,EAActkC,MAAMn80B,IACrG,EAAK4J,KAAO622B,EAAcK,KAC1B,EAAK372B,QAAUH,GAAAA,WAAcy72B,EAAclU,SAC3C,EAAK3m0B,QAAU5gC,GAAAA,WAAcy72B,EAAcM,SAC3C,EAAKf,yBAA2BS,EAAcO,yBAC9C,EAAKC,wBAA0BR,EAAcS,oBAAqBT,EAAcU,mBAChF,EAAKC,uBAAyBX,EAAcU,kBAC5C,EAAKE,sBAAwBZ,EAAc1R,aAAe2R,EAAgBY,gBAAgB,EAAKrh2B,KAAMwg2B,EAAc1R,cAAgB,IAAM,KACzI,EAAKqQ,aAAa,EAAKiC,uBACvB,EAAKjC,aAAa3x2B,WAAU,WAAQ,EAAKwy2B,gBAAkB,QAC3D,EAAK7B,aAAeqC,EAAcc,WAClC,EAAKhE,gBAAkBkD,EAAce,gBACrC,EAAKx8iB,UAAYy7iB,EAAcgB,UAC/B,EAAK5B,uBAAyB,EAAKzB,gBAAkB,EAAKgB,eAC1D,EAAKsC,eAAiBjB,EAActkC,MAChCskC,EAAckB,WAAa,EAAKjC,mBAAmB,EAAKC,SAASzn1B,OAAO,EAAK0n1B,YAAa,EAAK3/1B,QAAU,EAAK4/1B,yBAC9G,EAAK6B,eAAiBjB,EAAckB,WAExC,EAAK3D,uBAAyB,WAC1B,MAAO,CACH/1xB,YAAaw4xB,EAAcnB,YAC3B9z2B,YAAai12B,EAAcnB,aAAemB,EAAcmB,KACxD932B,KAAM222B,EAAcmB,KACpB9kvB,IAAK2jvB,EAAcG,IACnB3g2B,KAAMwg2B,EAAczR,SACpB9w2B,MAAO,EAAKwj3B,eACZtrB,WAAYqqB,EAAcc,WAC1BhE,gBAAiBkD,EAAce,gBAC/Bx8iB,UAAWy7iB,EAAcgB,UACzBI,kBAAmB,EAAKzC,gBAAkBsB,EAAgBzC,YAAhB,WAC1C942B,QAASs72B,EAAclU,QACvB3m0B,QAAS660B,EAAcM,UAG/B,EAAKh82B,aAAa7H,KAAK8H,GAAAA,UAAY,WAC/B,IAAIkmB,EAAOw11B,EAAgBoB,kBAAhB,WACX521B,EAAKjgB,aAAek02B,GAAuBI,uBAAuBkB,EAAcK,MAChF511B,EAAKpM,OAAOshB,WAAalV,EAAKpM,OAAOshB,YAAc7H,GAAAA,OACnDrN,EAAKkN,cAAcuo1B,iBAAmB,EAAKA,mBAC3C,EAAK5B,UAAU7z1B,OAEnB,EAAKloB,WAAW,EAAK0+2B,eAAgBhB,GArDG,EADhD,mDA8DI,SAAqB522B,EAAM5L,GACvB,GAAI5B,KAAKwN,GAAO,CACR022B,EAAiBp0e,eAAe9vY,KAAKwN,KAAS5L,MAC9C5B,KAAKwN,GAAM,MACf,IAAIk8H,GAAU,EACV9nI,cAAmBo/2B,IAAqBz72B,MAAMi2E,QAAQ55E,IAAQ8J,OAC9Dg+H,GAAU7xE,EAAAA,GAAAA,eAAc73D,KAAKwN,KAAQ9B,MAAO9J,IAAQ8J,OAC/CnG,MAAMi2E,QAAQ55E,OACnB8nI,GAAU7xE,EAAAA,GAAAA,eAAc73D,KAAKwN,KAAS5L,MACrC8nI,GACD1pI,KAAKwN,GAAM5L,UAIf5B,KAAKwN,GAAQ5L,IA5EzB,gCA+EI,SAAmBA,GACf,OAAO2D,MAAMi2E,QAAQ55E,IAAUA,EAAMo0C,OAAM,SAAAhlC,GAAC,OAAIA,aAAas9D,SAA0B,IAAjB1sE,EAAMtB,SAhFpF,oCAkFI,SAAuBsB,GACnB,QAAcwW,IAAVxW,GAAiC,OAAVA,EACvB,OAAO5B,KAAK4B,MAAMA,GACtB,GAAI5B,KAAKkj3B,UAAYlj3B,KAAKyl3B,mBAAmB7j3B,GACzC,MAAM,IAAIyzC,MAAJ,eAAkBr1C,KAAKsN,KAAvB,oDACV,IAAKtN,KAAKkj3B,QAAS,CACf,IAAIxvyB,EAAY,IAAIowyB,GAGpB,GAFIpwyB,EAAUgyyB,cAAc1l3B,KAAK2jB,QAC7B/hB,EAAQ,GAAKA,IACZ8xE,EAAUC,SAAS3zE,KAAK2jB,KAAM/hB,GAC/B,MAAM,IAAIyzC,MAAJ,eAAkBr1C,KAAKsN,KAAvB,kCAAqDtN,KAAK2jB,KAA1D,YAEd3jB,KAAK4B,MAAMA,KA9FnB,wBAgGI,SAAWA,EAAOwi3B,GAAiB,IAC3B1myB,EAD2B,OAE/B,GAAI19E,KAAKuj3B,uBAAwB,CAC7Bvj3B,KAAK2l3B,qBAAqB,SAAUj92B,GAAAA,iBAAoB9G,GAAS,IAAIsE,KAAI,SAAC0/2B,GACtE,OAAOxB,EAAgBhC,kBAAkB,EAAKz+1B,KAAvCyg2B,CAA6CwB,QAExD,IACItonB,EADAuonB,EAAoB,IAAI7E,GAAkBhh3B,KAAKukB,OAAQvkB,KAAK8i3B,eAAgB9i3B,KAAKih3B,iBAIrF,GAFImD,EAAgB5C,iCAChBlknB,EAAW8mnB,EAAgB5C,+BAA+Bxh3B,KAAK0h3B,yBAA0BmE,EAAkBx61B,aAC3GiyO,EACAuonB,EAAkBx61B,WAAaiyO,MAE9B,CACD,IAAI92M,EAAQ,IAAIJ,GAAAA,QAAW,CACvBv4C,KAAMg42B,EAAkBx61B,WACxBrkB,IAAK,UAET6+2B,EAAkBx61B,WAAa611B,GAAgBqB,wBAAwB/7zB,GAE3Ek3B,EAAch1E,GAAAA,WAAcm92B,QAE3B,GAAI7l3B,KAAK8h3B,aACVpkyB,EAAc97E,EAAQwi3B,EAAgB0B,sBAAsBlk3B,EAAO5B,MAAQ0I,GAAAA,uBAE1E,GAAI1I,KAAK0oU,YAAc9mU,IAAmB,IAAVA,EACjC87E,EAAch1E,GAAAA,WAAc,WAE3B,GAAI1I,KAAKkj3B,QAAS,CACnB,IAAIlnxB,EAAYooxB,EAAgBhC,kBAAkBpi3B,KAAK2jB,MACvD+5D,EAAch1E,GAAAA,gBAAmB,CAAC1I,KAAKol3B,eAAeb,MAAOvk3B,KAAKol3B,eAAe1h3B,KAAKwC,KAAI,SAAA8K,GAAC,OAAItI,GAAAA,OAAUszF,EAAUhrF,aAGnH0sE,EAAch1E,GAAAA,WAAc072B,EAAgBhC,kBAAkBpi3B,KAAK2jB,KAAvCyg2B,CAA6Cxi3B,IAE7E5B,KAAK2l3B,qBAAqB,QAASjoyB,KAnI3C,uBAqII,WAAY,WAIJ97E,EAAQ5B,KAAKuj3B,uBAAyBvj3B,KAAKukB,SAAWvkB,KAAK4B,QAM/D,OALI5B,KAAK0oU,YACA1oU,KAAK8h3B,cAAgBv82B,MAAMi2E,QAAQ55E,IAA2B,IAAjBA,EAAMtB,QAA2B,KAAVsB,KACrEA,EAAQ,MAGT,CAAEi+0B,MAAOqhC,GAAgB6E,sBAAsBnk3B,GATpC,SAAC1B,GACf,MAAsB,oBAAd,EAAKyjB,MAAgCzjB,GAASA,aAAgBouE,MH5H3C03yB,EG4H2E9l3B,EH3HvG,IAAIouE,KAAKA,KAAK04C,IAAIg/vB,EAAUnnyB,cAAemnyB,EAAUrnyB,WAAYqnyB,EAAUpnyB,UAAWonyB,EAAUjnyB,WAAYinyB,EAAUhnyB,aAAcgnyB,EAAU/myB,gBG2H/B/+E,EH5HnH,IAAgC8l3B,KGoI4CpmC,IAAK5/0B,KAAKsN,KAAMol2B,SAAU1y2B,KAAK2jB,SA/IlH,6BAwDI,SAAsBy+O,EAAQC,GAC1B,OAAID,aAAkB9zL,MAAQ+zL,aAAkB/zL,KACrC8zL,EAASC,IAAW,EAExBD,IAAWC,MA5D1B,GAAsCrhQ,GAAAA,YCHzBil3B,GAAb,0CACI,WAAY7B,EAAiB8B,GAAY,6BACrC,gBACK9B,gBAAkBA,EACvB,EAAK8B,WAAaA,EAClB,EAAKC,YAAc,GACnB,EAAKC,gBAAkB,GACvB,EAAKC,kBAAoB,GACzB,EAAKlx0B,QAAUzsC,GAAAA,YAAc,GAC7B,EAAKqG,QAAUrG,GAAAA,WAAc,IAC7B,EAAK072B,gBAAkBA,GAAmB,IAAIvB,GATT,EAD7C,oDAYI,SAAsBr12B,GAClB,OAAOuzC,EAAAA,GAAAA,eAAcj6C,OAAOC,KAAK/G,MAAOwN,EAAKs9F,oBAAoBpiD,QAAQ,MAAO,QAbxF,gCAeI,SAAmBw9zB,EAAYI,GAAmB,WAC9Ctm3B,KAAK+O,QAAQ,IACb/O,KAAKqm3B,kBAAoB,GACzBH,EAAWK,YAAYtm3B,SAAQ,SAAAum3B,GAC3B,GAAsB,UAAlBA,EAAS7i2B,KAAkB,CAC3B,IAAI8i2B,EAAgBD,EAChBh52B,EAAO,EAAKk52B,sBAAsBD,EAAc761B,OAChDgD,EAAO,CACPjgB,aAAcnB,EACd0B,YAAau32B,EAAc761B,MAC3BpJ,OAAQq30B,GAAsBE,YAC9Bj+zB,cAAe,CACXsuW,SAAUq8e,EAAcr8e,SACxB+ud,aAAcstB,EAActtB,aAC5BE,iBAAkBotB,EAAcptB,iBAChCE,cAAeitB,EAASjtB,cACxBpqoB,YAAas3pB,EAAct3pB,cAG/BjvN,EAAO,IAAI+l3B,EAAuB,EAAK7B,gBAAiBqC,GAC5D,EAAKj52B,GAAQtN,EACb,EAAKmm3B,kBAAkBzl3B,KAAKV,GAC5B,EAAK6O,QAAQ,EAAKA,UAAU6sB,OAAOhN,SAElC,GAAsB,cAAlB431B,EAAS7i2B,KAAsB,CACpC,IAAIgj2B,EAAsBH,EACtBI,EAAmBN,EAAkB1g3B,QAAO,SAAAoL,GAAC,OAAIA,EAAE1D,OAASq52B,EAAoBr52B,QAAM,GAC1Fs52B,GAAoB,EAAKrjO,KAAKqjO,EAAkBD,QAE/C,GAAsB,cAAlBH,EAAS7i2B,KAAsB,CACpC,IAAIwyP,EAAgB,EAAKuwmB,sBAAsB,aAC/C,EAAKvwmB,GAAiB,CAAE3oQ,KAAM9E,GAAAA,WAAcytQ,IAC5CvnP,EAAO,CACHjgB,aAAcwnQ,EACd3zP,OAAQq30B,GAAsBM,iBAElC,EAAKpr1B,QAAQ,EAAKA,UAAU6sB,OAAOhN,IACnC,EAAKw31B,gBAAgBxl3B,KAAKu1Q,SApD1C,kBAwDI,SAAKxnK,EAAWw1wB,GAIZ,IAH6C,IAAzCnk3B,KAAKmm3B,YAAYhg3B,QAAQwoG,IACzB3uG,KAAKmm3B,YAAYvl3B,KAAK+tG,IAErBA,EAAU9lG,YAAc8lG,EAAUm2wB,qBACnC,OAAOn2wB,EAEXA,EAAU01wB,iBAAoD,aAAnCF,EAAc0C,kBACzC7m3B,KAAK6i3B,GAAuBI,uBAAuBt0wB,EAAUrhG,OAASqhG,EAAU/sG,MAChF,IAAIkl3B,EAAwBjE,GAAuBgB,gBAAgBl1wB,EAAUrhG,MAmC7E,OAlCIqhG,EAAUmzwB,eAAiBnzwB,EAAUy0wB,mBAAmBz0wB,EAAU00wB,SAASzn1B,OAAO+yE,EAAU20wB,YAAa30wB,EAAUhrF,MACnH3jB,KAAK8m3B,GAAyBn4wB,EAAU/sG,MAGxC5B,KAAK8m3B,GAAyBp+2B,GAAAA,aAAgB,CAC1C+H,KAAM,WACF,IAAIirT,EAAa/sN,EAAU/sG,QAC3B,OAAmB,OAAf85T,QAAsCtjT,IAAfsjT,IAGvB/sN,EAAUy0wB,mBAAmBz0wB,EAAU00wB,SAAU10wB,EAAUhrF,MAC3D+3S,EAAazlR,SAASylR,GAEjB/sN,EAAUy0wB,mBAAmBz0wB,EAAU20wB,WAAY30wB,EAAUhrF,QAClE+3S,EAAa/lR,WAAW+lR,KANjBA,GAUf9qT,MAAO,SAACC,GACJ,IAAIk22B,EAAcl22B,GACd89F,EAAU+5N,WAA8B,KAAhBq+iB,QAAsC3u2B,IAAhB2u2B,EAGzCp4wB,EAAUy0wB,mBAAmBz0wB,EAAU00wB,SAAU10wB,EAAUhrF,MAChEoj2B,GAAc5jyB,EAAAA,GAAAA,uBAAsB4jyB,EAAa,KAE5Cp4wB,EAAUy0wB,mBAAmBz0wB,EAAU20wB,WAAY30wB,EAAUhrF,QAClEoj2B,GAAcxiyB,EAAAA,GAAAA,qBAAoBwiyB,EAAa,MAN/CA,EAAc,KAQlBp4wB,EAAU/sG,MAAMml3B,MAI5B/m3B,KAAK+O,QAAQ/O,KAAK+O,UAAU6sB,OAAO+yE,EAAU8zwB,cACtC9zwB,IApGf,gCAsGI,SAAmBnhG,GACf,IAAImhG,EAAY3uG,KAAKmm3B,YAAYvg3B,QAAO,SAAA+oG,GAAS,OAAIk0wB,GAAuBI,uBAAuBt0wB,EAAUrhG,QAAUE,KAAM,GAC7H,OAAOmhG,IAAcA,EAAUrlE,YAxGvC,+BA0GI,SAAkB97B,GACd,IAAImhG,EAAY3uG,KAAKmm3B,YAAYvg3B,QAAO,SAAA+oG,GAAS,OAAIk0wB,GAAuBI,uBAAuBt0wB,EAAUrhG,QAAUE,KAAM,GAC7H,OAAQmhG,GAAaA,EAAU9lG,YA5GvC,wBA8GI,SAAWkm2B,EAAwBv90B,GAAY,WAM3C,GALAxxB,KAAKmm3B,YAAYlm3B,SAAQ,SAAC+m3B,UACf,EAAKnE,GAAuBgB,gBAAgBmD,EAAc152B,cAC1D,EAAKu12B,GAAuBI,uBAAuB+D,EAAc152B,UAE5EtN,KAAKmm3B,YAAc,IACdpX,EAGD,OAFA/u2B,KAAKm1C,SAAQ,QACbn1C,KAAK+O,QAAQ,IAGjByiB,EAAaA,IAAeu90B,EAAuBv90B,YAAc,IAAItrB,KAAI,SAACyoG,GACtE,IAAIi4wB,EAAmB,IAAI1C,GAAiBv1wB,EAAW,EAAKy1wB,iBAE5D,OADA,EAAK+B,YAAYvl3B,KAAKgm3B,GACfA,KAEX,IAAIV,EAAanX,EAAuBkY,sBAAwBjn3B,KAAKkm3B,WACrEA,GAAclm3B,KAAKkn3B,mBAAmBhB,EAAY101B,GAClDxxB,KAAKqm3B,kBAAkBpm3B,SAAQ,SAAAC,GAAI,OAAIA,EAAKwG,WAAW,GAAI8qB,UAhInE,GAA4CxwB,GAAAA,YCC/Bmm3B,GAAb,0CACI,WAAYxtB,EAAeyqB,EAAiB1Y,GAAuB,uBAC/D,cAAM0Y,IACDgD,2BAA6B,SAACC,GAC/B,OAAOtkzB,EAAAA,GAAAA,MAAKksxB,KAAc,qBAAsBnroB,mBAAmBxoM,KAAKC,UAAU8r2B,KAAc,SAAC570B,EAASJ,EAAOC,GAAjB,OAAgC,EAAK4vzB,eAAe1vzB,eAAcrgC,EAAAA,GAAAA,iBAAgB,oEAAqE,8DAA+DkgC,OAE1T,EAAKi80B,kCAAoC,SAACC,GACtC,IAAIC,GAAsB,UAC1B,OAAO,SAACzo0B,GACJ,IACI,IAAKA,IAAaA,EAASvtB,WACvB,OAEJutB,EAASvtB,WAAWvxB,SAAQ,SAACwn3B,GACzB,IAAIC,EAAmBF,EAAoBrB,YAAYvg3B,QAAO,SAACwxF,GAAQ,OAAOA,EAAE9pF,OAASm62B,EAAyB7nC,OAAQ,GACrH4nC,EAAoBG,wBAAwBD,KAEjDA,EAAiB7+2B,QAAQ4+2B,EAAyB5nC,MAAMh30B,SACxD6+2B,EAAiBp+0B,QAAQm+0B,EAAyB5nC,MAAMv2yB,SACpDk+0B,EAAoBrB,YAAYhg3B,QAAQoh3B,GAAoBC,EAAoBrB,YAAYhg3B,QAAQuh3B,IAAoE,MAA/CD,EAAyB5nC,MAAMijC,cACxJ0E,EAAoBI,iBAAiBF,EAAkBD,EAAyB5nC,MAAMijC,kBAXlG,QAgBI0E,EAAoBK,mBAAkB,MAIlD,EAAKC,kCAAoC,WACrC,IAAIN,GAAsB,UAC1B,OAAO,SAACO,GACJP,EAAoBK,mBAAkB,KAG9C,EAAKphQ,QAAU,WACX,IAAI,EAAKohQ,oBAGT,IACI,EAAKA,mBAAkB,GACvB,EAAK1B,YAAYlm3B,SAAQ,SAAC0uG,GACjB,EAAKg5wB,wBAAwBh5wB,KAElCA,EAAUm0wB,aAAan0wB,EAAUo2wB,uBACjCp2wB,EAAUjoG,WAAWioG,EAAUy2wB,eAAgB,EAAKhB,qBAN5D,QAUI,EAAKA,gBAAgB1z1B,WAAa,EAAK0z1B,gBAAgB1z1B,UAAUs31B,iBAAmB,EAAK5D,gBAAgB1z1B,UAAUs31B,iBAA/B,UAAqD,EAAK7B,aAC9I,EAAK0B,mBAAkB,KAG/B,EAAK942B,QAAUrG,GAAAA,WAAc,MAC7B,EAAKu/2B,sBAAwBv/2B,GAAAA,YAAc,GAC3C,EAAKw/2B,4BAA6B,EAClC,EAAKL,kBAAoBn/2B,GAAAA,YAAc,GACvC,EAAKy/2B,2BAA6Bz62B,GAAAA,WAClC,EAAKwt1B,eAAiBvB,EACtB,EAAKyuB,kBAAoB,SAACrm1B,GACtB,IAAIlzB,EAASkzB,GAAUA,EAAOy4S,iBAAmBz4S,EAAOy4S,gBAAgB7mQ,UAAY5xC,EAAOy4S,gBAAgB7mQ,WACtG9kE,IAAUA,EAAOqhB,SAClB,EAAKi7gB,UAEb,EAAKA,OAAS,WACV,IAAI,EAAK08U,oBAAT,CAEA,EAAKA,mBAAkB,GACvB,IAAIr32B,EAAUmp1B,EAAc0uB,aAC5B732B,GAAWA,EAAQ4oB,MAAK,SAACrV,GAAU,EAAK8j2B,mBAAkB,QAE9D,EAAKp/2B,aAAa7H,KAAK+41B,EAAcoV,uBAAuB591B,WAAU,SAAC491B,GACnE,EAAKro2B,WAAWqo2B,OAEpB,EAAKro2B,WAAWiz1B,EAAcoV,0BAC9B,IAAIuZ,EAAW5/2B,GAAAA,cAAgB,kBAAO,EAAKysC,aAC3C,EAAKqi0B,QAAU,IAAIr11B,GAAAA,wBAAwB,CACvCxf,KAAM,aACNgnB,SAAU,0BACV3d,OAAO,UACP0W,eAAgBgp1B,EAAwB,IAAIzi2B,GAAAA,6BAA4BmP,EACxEjJ,eAAgB,mDAChBka,eAAgB,aAChBD,kBAAmB,2BACnBvgB,QAASy/2B,IAEb,IAAIC,EAAqB7/2B,GAAAA,YAAc,GACnCknB,EAAelnB,GAAAA,aAAgB,CAC/B+H,KAAM,WACF,OAAO632B,KAAcC,KAEzB332B,MAAO,SAACC,GACJ,OAAO032B,EAAmB132B,MA3F6B,OA8F/D,EAAK232B,UAAY,CAAE3/2B,QAAS+mB,EAAc041B,SAAUA,GACpD,EAAK7/2B,aAAa7H,KAAK,EAAK4n3B,WA/FmC,EADvE,+CAkGI,WACI,OAAOxo3B,KAAKmm3B,YAAYvg3B,QAAO,SAACwxF,GAAQ,OAAOA,EAAEvuF,eAnGzD,qCAqGI,SAAwBs9J,GACpB,OAAOnmK,KAAKko3B,4BAA+B/htB,IAAUA,EAAMt9J,WAAas9J,EAAM2+sB,sBAAwB3+sB,EAAMu9sB,4BAtGpH,gCAwGI,SAAmB/0wB,GAAW,WACtBs5wB,EAAwBjo3B,KAAKio3B,yBAA4Bjo3B,KAAK2n3B,wBAAwBh5wB,KACrFA,EAAU+0wB,0BAA4B/0wB,EAAUg2wB,sBACrD3k3B,KAAKio3B,sBAAsBA,GACvBjo3B,KAAK2n3B,wBAAwBh5wB,IAC7B3uG,KAAKyI,aAAa7H,MAAM+tG,EAAU40wB,uBAAyB50wB,EAAUpqF,OAASoqF,EAAU/sG,OAAOuP,WAAU,SAACoV,GAClG,EAAK0h2B,yBACL,EAAKQ,iBAAiB95wB,SA/G1C,8BAoHI,SAAiBA,EAAWm0wB,GACxB,GAAKA,EAAL,CAIAn0wB,EAAUm0wB,aAAa9i3B,KAAKok3B,gBAAgBY,gBAAgBr2wB,EAAUhrF,KAAMm/1B,IAC5E,IAAI4F,EAAqC1o3B,KAAK2o3B,sCAAsC7F,EAAcn0wB,GAC9FA,EAAUmzwB,aACVnzwB,EAAUjoG,WAAWgi3B,EAAmCpo3B,OAAS,EAAIoo3B,EAAqC,GAAI1o3B,KAAKok3B,iBAGnHz1wB,EAAUjoG,WAAWgi3B,EAAmC,IAAMA,EAAmC,GAAG7oC,QAAUijC,EAAaxi3B,OAAS,EAAIwi3B,EAAa,GAAGjjC,MAAQ,MAAO7/0B,KAAKok3B,sBAT5Kz1wB,EAAUm0wB,aAAa,MAtHnC,mDAkII,SAAsC8F,EAAuBj6wB,GAAW,WACpE,OAAIi6wB,EACIj6wB,EAAUmzwB,aACUnzwB,EAAU/sG,QAAQA,QACjBgE,QAAO,SAAC1F,GAAD,OAAU,EAAK2o3B,wCAAwCD,EAAuBj6wB,EAAUhrF,KAAMzjB,GAAMI,OAAS,KAGlIN,KAAK6o3B,wCAAwCD,EAAuBj6wB,EAAUhrF,KAAMgrF,EAAU/sG,SAGtG,KA5If,qDA8II,SAAwCgn3B,EAAuBE,EAAeln3B,GAAO,WACjF,OAAOgn3B,EAAsBhj3B,QAAO,SAACoL,GAAD,OAAOkz2B,GAAiBp0e,eAAe,EAAKs0e,gBAAgBhC,kBAAkB0G,EAAvC,CAAsD932B,EAAE6u0B,OAAQj+0B,QA/InJ,gCAiJI,SAAmB+sG,EAAW/sG,GAC1B,IAAI07E,EAAaqxB,EAAU+ywB,yBAC3B,GAAIpkyB,EAAWw8wB,WAAY,CACvB,GAAIl41B,IAAU2D,MAAMi2E,QAAQ55E,GACxB,MAAM,IAAIyzC,MAAJ,eAAkBs5D,EAAUrhG,KAA5B,kCACV,GAAIgwE,EAAWioyB,gBACX52wB,EAAU/sG,QAAQA,MAAMA,OAEvB,CACD,IAAImn3B,EAAkB/o3B,KAAKok3B,gBAAgB0B,sBAAsBlk3B,EAAO+sG,EAAlD3uG,GACtB2uG,EAAU/sG,MAAMmn3B,SAIpBp6wB,EAAUq6wB,uBAAuBpn3B,KA/J7C,+BAkKI,SAAkB4yB,EAAe5yB,GAC7B,IAAI+sG,EAAY3uG,KAAKmm3B,YAAYvg3B,QAAO,SAAAoL,GAAC,OAAIA,EAAE1D,OAASknB,KAAe,GACvE,IAAKm6E,EACD,MAAM,IAAIt5D,MAAJ,eAAkB7gB,EAAlB,8BACVx0B,KAAKip3B,mBAAmBt6wB,EAAW/sG,KAtK3C,wBAwKI,SAAWmt2B,GAAwB,WAG/B,GAFAA,GAA0B/u2B,KAAKok3B,gBAAgB192B,WAAWqo2B,EAAuByD,aACjF,yDAAiBzD,GACZA,EAAL,CAEA,IAAIzhb,EAASyhb,EAAuBkY,qBAC9B35b,GAAwC,IAA9BA,EAAOi5b,YAAYjm3B,SAAiByu2B,EAAuBv90B,YACvExxB,KAAKmm3B,YAAYlm3B,SAAQ,SAAA+Q,GAAC,OAAI,EAAKuyoB,KAAKvyoB,EAAG,OAE/ChR,KAAKm1C,QAA2C,IAAnCn1C,KAAKkp3B,mBAAmB5o3B,QACrC,IAAI6o3B,EAAuB,GAC3Bnp3B,KAAKmm3B,YAAYlm3B,SAAQ,SAAA+Q,GACrB,EAAKo42B,mBAAmBp42B,GACxB,IAAIpP,EAAQ8G,GAAAA,SAAY,CACpB+H,KAAM,WACF,OAAOO,EAAEytB,YAAYohzB,OAEzBjv0B,MAAO,SAACC,GACJ,EAAKo42B,mBAAmBj42B,EAAGH,MAG/B0kI,EAAY7sI,GAAAA,SAAY,CACxB+H,KAAM,WACF,IAAI5G,EACJ,OAA6B,QAApBA,EAAKmH,EAAEpP,eAA4B,IAAPiI,OAAgB,EAASA,EAAG04Y,gBAAkBvxY,EAAEpP,QAAQ2gZ,iBAEjG3xY,MAAO,SAACC,GACJ,IAAIhH,GACkB,QAApBA,EAAKmH,EAAEpP,eAA4B,IAAPiI,OAAgB,EAASA,EAAG04Y,gBAAkBvxY,EAAEpP,QAAQ2gZ,cAAc1xY,MAG5G,EAAKpI,aAAa7H,KAAK20I,GACvB,EAAK9sI,aAAa7H,KAAKgB,GACvBun3B,EAAqBvo3B,KAAK,CACtBgB,MAAAA,EACA2zI,UAAAA,EACAksuB,oBAAqBzw2B,EAAE0w2B,yBACvBoB,aAAc9x2B,EAAE8x2B,kBAGpB9i3B,KAAKok3B,gBAAgB1z1B,WAAa1wB,KAAKok3B,gBAAgB1z1B,UAAU241B,uBACjErp3B,KAAKok3B,gBAAgB1z1B,UAAU241B,sBAAsBrp3B,KAAMmp3B,EAAsBnp3B,KAAKmriB,OAAQ4jU,EAAuBpuB,yBAErH3g1B,KAAKk71B,eAAeha,cAEnB6tB,EAAuBpuB,yBAA2B3g1B,KAAKm1C,UACxDn1C,KAAKmriB,UAGLnriB,KAAKk71B,eAAesP,mBACpBxq2B,KAAKw32B,QAAQrs1B,QAAO,GAChBnrB,KAAKw32B,QAAQ3u2B,WAAaH,GAAAA,sBAAyB1I,KAAKw32B,QAAQju2B,YAChEvJ,KAAKw32B,QAAQju2B,WAAU,GAC3BvJ,KAAKwo3B,UAAU3/2B,SAAQ,GACvB7I,KAAKk71B,eAAe2L,aAAY,QA9N5C,+BAiOI,SAAkByiB,GAEd,IAF6B,WACzB3h3B,EAAa,EACR9G,EAAQ,EAAGA,EAAQb,KAAKmm3B,YAAY7l3B,OAAQO,IACjD,GAAIb,KAAKmm3B,YAAYtl3B,GAAOyM,OAASg82B,EAAe,CAChD3h3B,EAAa9G,EAAQ,EACrB,MAGR,IAAIuxmB,EAAQpymB,KAAKmm3B,YACZvg3B,QAAO,SAACugK,EAAOtlK,GAChB,OAAO,EAAK8m3B,wBAAwBxhtB,KAC/BA,EAAMw+sB,sBAAwBx+sB,EAAMu9sB,0BAA4B7i3B,GAAS8G,MAE7EzB,KAAI,SAAC8K,GAAD,OAAOA,EAAE1D,QAClB,OAAO8kmB,GAAS,KA/OxB,iCAiPI,WACI,OAAOpymB,KAAKmm3B,YAAYjg3B,KAAI,SAAA8K,GAAC,OAAIA,EAAEytB,iBAlP3C,8BAoPI,SAAiB8o1B,GAAkB,WAC3BgC,EAAyBvp3B,KAAKwp3B,kBAAkBjC,EAAiBj62B,MACrE,GAAKi82B,GAA4D,IAAlCA,EAAuBjp3B,OAAtD,CAGA,IAAI+m3B,EAAa,CACblmC,SAAUnh1B,KAAKk71B,eAAe/Z,SAC9B2a,UAAW971B,KAAKk71B,eAAeY,UAC/BytB,uBAAwBA,EACxB/31B,WAAYxxB,KAAK471B,sBACjB6tB,qBAAsBlC,EAAiBj62B,KACvC2u1B,eAAgB,GAAI,IAAI3txB,MAAOq6L,qBAEnC3oQ,KAAKmo3B,2BAA2Bz80B,SAChC,IAAIV,EAAWt9B,GAAAA,WACf7K,YAAW,WACP,EAAKgl3B,mBAAkB,GACvB,EAAKT,2BAA2BC,GAC3Bju1B,MAAK,SAACvqB,GAAD,OAAYm8B,EAAS56B,QAAQvB,MAClCiyB,MAAK,kBAAMkK,EAAS56B,aACzB46B,EAAS5R,KAAK,EAAKku1B,kCAAkCC,IACrDv80B,EAASlK,KAAK,EAAKgn1B,qCACnB,EAAKK,2BAA6Bn90B,IACnC,SA3QX,GAAgDi70B,ICPzC,IAAIri1B,GACM,CAAEC,OAAQ,+BCCd6l1B,GAAb,kJACI,WACI,OAAO9l1B,OAFf,GAAkDi/0B,ICErC8G,GAAb,0CACI,WAAYnp2B,GAAS,6BACjB,gBACKA,QAAUA,EACf,EAAK3X,QAAUH,GAAAA,YAAc,GAHZ,EADzB,sCAMI,WACI1I,KAAKwgB,QAAQvgB,SAAQ,SAAAwgB,GACbA,EAAOK,SAAWL,EAAOK,QAAQ1C,UACjCqC,EAAOK,QAAQ1C,iBACRqC,EAAOK,QAAQ1C,aAG9B,2DAbR,GAAsCpd,GAAAA,YCH/B,IAAM4o3B,GAAb,0CACI,WAAYxv2B,GAAS,6BACjB,gBACKyO,UAAYzO,EAAQyO,UACzB,EAAK8w0B,cAAgBv/0B,EAAQu/0B,cAC7B,EAAKqB,gBAAkB5g1B,EAAQ4g1B,gBAC/B,EAAK6uB,YAAczv2B,EAAQyv2B,YAC3B,EAAK5uB,YAAc7g1B,EAAQ6g1B,YAC3B,EAAKny0B,IAAM1O,EAAQ0O,IACnB,EAAKrgB,aAAa7H,KAAKwZ,EAAQu/0B,eAC/B,EAAKlx1B,aAAa7H,KAAKwZ,EAAQ4g1B,iBAC/B,EAAKvy1B,aAAa7H,KAAKwZ,EAAQyv2B,aAC/B,EAAKph3B,aAAa7H,KAAKwZ,EAAQ6g1B,aAXd,EADzB,6CAcI,SAAe730B,GACXpjB,KAAKyI,aAAa7H,KAAKwiB,KAf/B,qBAiBI,YACI,uDACApjB,KAAKgqC,qBAnBb,gCAqBI,WACI,OAAOhqC,KAAKg71B,kBAtBpB,wBAwBI,SAAW2B,GACP381B,KAAK251B,cAAcyY,WAAWzV,KAzBtC,mBA2BI,SAAMtskB,GACFrwR,KAAK251B,cAAcmwB,cAAcz5lB,KA5BzC,sBA8BI,SAASv3P,EAAQip0B,GACR/h2B,KAAK251B,cAAc0V,kBACpBrv2B,KAAK251B,cAAc0e,iBAAiBv/0B,GAAU,MAAOip0B,KAhCjE,iCAmCI,WACI,OAAO/h2B,KAAK251B,cAActpkB,cApClC,sBAsCI,SAASA,GACLrwR,KAAK251B,cAAc5M,SAAS18jB,KAvCpC,mBAyCI,WACIrwR,KAAK251B,cAAc9ohB,eA1C3B,6BA4CI,WACI7wU,KAAKg71B,iBAAmBh71B,KAAKg71B,gBAAgBv0O,YA7CrD,wBA+CI,WACIzmnB,KAAKg71B,iBAAmBh71B,KAAKg71B,gBAAgB7vT,WAhDrD,4CAkDI,SAA+BthhB,EAAY4y0B,GACvC,OAAOz81B,KAAK251B,cAAc+Z,wBAAwB7p1B,EAAY4y0B,OAnDtE,GAA4Cz71B,GAAAA,YAsD/B+o3B,GAAb,0CACI,WAAY3v2B,GAAS,6BACjB,cAAMA,IACD4v2B,iBAAmB5v2B,EAAQ4v2B,iBAChC,EAAKv91B,SAAWrS,EAAQqS,SACxB,EAAKnC,YAAclQ,EAAQkQ,YAC3B,EAAK3B,uBAAyBvO,EAAQuO,uBACtC,EAAKlgB,aAAa7H,KAAKwZ,EAAQ4v2B,kBAC/B,EAAKvh3B,aAAa7H,KAAKwZ,EAAQqS,UAC/B,EAAKhkB,aAAa7H,KAAKwZ,EAAQkQ,aARd,EADzB,kBAAkCs/1B,ICrDrBK,GAAb,0CACI,WAAY7v2B,GAAS,6BACjB,cAAMA,IACD8v2B,aAAe9v2B,EAAQ8v2B,aAC5B,EAAKlM,QAAU5j2B,EAAQ4j2B,QACvB,EAAKmM,UAAY/v2B,EAAQ+v2B,UACzB,EAAKC,oBAAsBhw2B,EAAQgw2B,oBACnC,EAAKC,iBAAmBjw2B,EAAQiw2B,iBAChC,EAAK5h3B,aAAa7H,KAAKwZ,EAAQ4j2B,SAC3Bt12B,GAAAA,WAAc0R,EAAQgw2B,sBACtB,EAAK3h3B,aAAa7H,KAAKwZ,EAAQgw2B,qBAC/Bhw2B,EAAQ8v2B,cAAgBxh3B,GAAAA,WAAc0R,EAAQ8v2B,aAAaI,kBAC3D,EAAK7h3B,aAAa7H,KAAKwZ,EAAQ8v2B,aAAaI,iBAC5Clw2B,EAAQ8v2B,cAAgBxh3B,GAAAA,WAAc0R,EAAQ8v2B,aAAaxQ,eAC3D,EAAKjx2B,aAAa7H,KAAKwZ,EAAQ8v2B,aAAaxQ,cAChD,EAAKjx2B,aAAa7H,KAAKwZ,EAAQ+v2B,WAC/B,EAAK1h3B,aAAa7H,KAAKwZ,EAAQ6g1B,aAfd,EADzB,kBAAwC2uB,ICC3BW,GAAb,0CACI,WAAYC,GAAW,6BACnB,gBACKA,UAAYA,EACjB,EAAKC,QAAU,SAAC1o1B,GACZ,IAAIlzB,EAASkzB,EAAOy4S,iBAAmBz4S,EAAOy4S,gBAAgB7mQ,UAAY5xC,EAAOy4S,gBAAgB7mQ,WAC5F9kE,IAAUA,EAAOqhB,UAClB,EAAKs61B,UAAUr/U,QAAU,EAAKq/U,UAAUr/U,SACxC,EAAKtiiB,SAAQ,KAGrB,EAAK0jf,OAAS,WACV,EAAKi+X,UAAUjv1B,OAAS,EAAKiv1B,UAAUjv1B,SAE3C,EAAKijQ,QAAU,WACX,EAAKgslB,UAAUzk1B,QAAU,EAAKyk1B,UAAUzk1B,SACxC,EAAKl9B,SAAQ,IAEjB,EAAK6h3B,UAAYhi3B,GAAAA,YAAc,GAC/B,EAAK2F,UAAY,GACjB,EAAKxF,QAAU2h3B,EAAU3h3B,QACzB,EAAK8h3B,eAAiBji3B,GAAAA,YAAc,GACpC,EAAKki3B,cAAgB,CACjB,CAAEv82B,UAAW,yBAA0B1L,MAAMwI,EAAAA,GAAAA,iBAAgB,QAAS,6CAA8CsV,OAAQ,EAAK8re,OAAQnhf,UAAU,EAAOvC,UAAW2h3B,EAAUjv1B,MAAOtxB,GAAI,qBAC1L,CAAEoE,UAAW,0BAA2B1L,MAAMwI,EAAAA,GAAAA,iBAAgB,SAAU,6CAA8CsV,OAAQ,EAAK+9Q,QAASpzR,SAAU,EAAKu/2B,eAAgB9h3B,SAAS,EAAMoB,GAAI,sBAC9L,CAAEoE,UAAW,0BAA2B1L,MAAMwI,EAAAA,GAAAA,iBAAgB,SAAU,8CAA+CsV,OAAQ,EAAKgq2B,QAASr/2B,UAAU,EAAOvC,SAAS,EAAMoB,GAAI,uBAErL,EAAK4g3B,YAAc,CACf,CAAEx82B,UAAW,sDAAuDoS,OAAQ,EAAK8re,OAAQnhf,UAAU,EAAOvC,UAAW2h3B,EAAUjv1B,OAC/H,CAAEltB,UAAW,wDAAyDoS,OAAQ,EAAK+9Q,QAASpzR,SAAU,EAAKu/2B,eAAgB9h3B,SAAS,GACpI,CAAEwF,UAAW,wDAAyDoS,OAAQ,EAAKgq2B,QAASr/2B,UAAU,EAAOvC,SAAS,IA7BvG,EAD3B,kDAiCI,SAAoB/I,GAChBE,KAAK8q3B,0BAA4Bhr3B,EACjCE,KAAK+q3B,wBAnCb,qBAqCI,YACI,uDACA/q3B,KAAK8q3B,0BAA4B,OAvCzC,iCAyCI,WACI,GAAK9q3B,KAAK8q3B,0BAAV,CAEA,IAAIj82B,EAAS7O,KAAK0q3B,YACdM,EAAUhr3B,KAAK8q3B,0BAA0Bv/2B,SAASuN,IACtD9Y,KAAK8q3B,0BAA0Bzu2B,KAAK,2BAA2B5B,MAAK,SAACC,EAAGlS,GACpEqG,EAASm82B,IAAYxi3B,EAAGyT,wBAAwBnD,OAEpD9Y,KAAK0q3B,UAAU772B,QAjDvB,GAA8C7N,GAAAA,YAoDjCiq3B,GAAb,0CACI,WAAYj/2B,EAAOkv1B,GAAgB,6BAC/B,cAAM,CAAEry1B,QAASmD,EAAMw82B,UAAU3/2B,QAASsiiB,OAAQn/hB,EAAMm/hB,OAAQ5vgB,MAAOvvB,EAAMy6mB,WACxEz6mB,MAAQA,EACb,EAAKkv1B,eAAiBA,EACtB,EAAKzy1B,aAAa7H,KAAK8H,GAAAA,UAAY,WAC/B,EAAKii3B,gBAAgB,EAAKzvB,eAAeiL,sBAA+D,IAAvC,EAAKjL,eAAev+P,QAAQr8lB,YAEjG,EAAK8lB,gBAAkB,yCACvB,EAAKwF,OAAQzgB,EAAAA,GAAAA,iBAAgB,aAAc,mDARZ,EADvC,kBAA0Co/2B,IAY7BW,GAAb,0CACI,WAAYl/2B,GAAO,uBACf,cAAM,CACFnD,QAASmD,EAAMm/2B,cAAepl1B,OAAQ,WAClC,EAAK/5B,MAAMugQ,UAAU,EAAK6+mB,WAC1B,EAAKp/2B,MAAMwgQ,QAAQ,EAAK6+mB,SACxB,EAAKr/2B,MAAMuthB,iBAGdvthB,MAAQA,EACb,EAAKs/2B,cAAgB,SAAC1p3B,GAAD,OAAWusE,EAAAA,GAAAA,YAAWvsE,IAC3C,EAAKoK,MAAMu/2B,oBAAiBnz2B,EAC5B,IAAIoz2B,EAAwB,CACxBzkzB,YAAa,YACbumQ,mBAAmB,EACnBD,oBAAoB,GAExB,EAAKo+iB,YAAc3k3B,OAAOw4C,OAAO,CAAE38C,KAAM+F,GAAAA,UAAY,kBAAM,EAAKsD,MAAMugQ,aAAe,EAAK++mB,cAAc,EAAKt/2B,MAAMugQ,eAAgBphQ,EAAAA,GAAAA,iBAAgB,aAAc,uDAAsDojC,QAAS7lC,GAAAA,YAAc,GAAQs+D,QAAS,WACvP,EAAKykzB,YAAYl90B,SAAQ,GACrB,EAAKm90B,UAAUn90B,SAAQ,KAC1Bi90B,GACT,EAAKE,UAAY5k3B,OAAOw4C,OAAO,CAAE38C,KAAM+F,GAAAA,UAAY,kBAAM,EAAKsD,MAAMwgQ,WAAa,EAAK8+mB,cAAc,EAAKt/2B,MAAMwgQ,aAAcrhQ,EAAAA,GAAAA,iBAAgB,WAAY,qDAAoDojC,QAAS7lC,GAAAA,YAAc,GAAOs+D,QAAS,WAC5O,EAAK0kzB,UAAUn90B,SAAQ,GACnB,EAAKk90B,YAAYl90B,SAAQ,KAC5Bi90B,GACT,EAAK/i3B,aAAa7H,KAAK,EAAK8q3B,UAAU/o3B,MACtC,EAAK8F,aAAa7H,KAAK,EAAK6q3B,YAAY9o3B,MACxC,IAAIgp3B,EAAe,EAAKf,cAAchl3B,QAAO,SAAA6a,GAAM,MAAiB,sBAAbA,EAAOxW,MAA4B,GA1B3E,OA2BX0h3B,IACAA,EAAahp3B,MAAOwI,EAAAA,GAAAA,iBAAgB,KAAMg8D,GAAAA,SAAAA,kBAC9C,EAAK1+D,aAAa7H,KAAK,EAAKgr3B,eAAiBlj3B,GAAAA,SAAY,CACrD+H,KAAM,WAAQ,OAAO,EAAKzE,MAAM6/2B,gBAChCj72B,MAAO,SAACmT,GAAU,EAAK/X,MAAM8/2B,UAAU/n2B,EAAIioE,SAAS,OAExD,EAAKo/xB,UAAY,EAAKp/2B,MAAMugQ,YAC5B,EAAK8+mB,QAAU,EAAKr/2B,MAAMwgQ,UAC1B,EAAK5gP,OAAQzgB,EAAAA,GAAAA,iBAAgB,uBAAwB,gDACrD,EAAKib,gBAAkB,iCACvB,EAAK/X,UAAY,uCArCF,EADvB,kBAAkDk82B,ICnEvCwB,GACE,uBADFA,GAEC,sBAFDA,GAGA,qBAHAA,GAIQ,8BAJRA,GAKK,+BCDT,SAASC,GAAiB7l2B,GAC7B,IAAI8l2B,GAAc9l2B,GAAY,IAAI8c,cAClC,IAAKgp1B,GAA6B,YAAfA,EACf,OAAO,KAEX,IAAInz2B,GAAqC,IAA/Bmz2B,EAAW9l3B,QAAQ,OACzB4X,GAAyC,IAAjCku2B,EAAW9l3B,QAAQ,SAC/B,MAAO,CAAE2S,IAAKA,EAAKkF,QAASlF,EAAKiF,MAAOA,EAAOrF,MAAOqF,GAEnD,SAASmu2B,GAAyBlse,EAAgBmse,EAAS/soB,EAAS71N,GAA2B,IAAjBpD,EAAiB,uDAAN,KAC5F,OAAKoD,EAEE,SAAC6i2B,GAOJ,GANuB,IAAnBD,EAAQ7r3B,SACR6r3B,EAAUz+2B,GAAAA,GAAAA,YAAiB0+2B,IACD,IAA1Bpse,EAAe1/Y,SACf0/Y,EAAiBmse,EAAQ9v2B,KAAKkN,IACX,IAAnB61N,EAAQ9+O,SACR8+O,EAAU1xO,GAAAA,GAAAA,YAAiB+X,UAC1BU,GAAYA,EAASnI,OAAQ,CAC9B,IAAIwyqB,EAAav6oB,SAAS+pW,EAAe3kY,IAAI,WAAa2kY,EAAezuY,SACrE862B,EAAYF,EAAQ5g3B,SAASuN,IAC7Bwz2B,EAAeH,EAAQ562B,SAEvB1C,EAASw92B,EAAYC,GADCltoB,EAAQ7tO,SAAW6tO,EAAQn4M,aAErD,GAAIp4B,EAASy92B,EAAe97L,EAAY,CAEpC,IAAIjoqB,EAAY,gBADhB1Z,EAAS8W,KAAKC,IAAI,EAAG/W,KACqBpN,EAAAA,GAAAA,mCAAoC,MAC9Eu+Y,EAAe3kY,IAAI,CACf,oBAAqBkN,EACrB,UAAaA,SAIpB,CACD,IAAIgk2B,EAAiBJ,EAAQ9v2B,KAAK,yBAAyB,GACvDglc,EAAakra,GAAkBA,EAAetw2B,wBAClD,IAAKolc,GAAcA,EAAWvoc,IAAM,GAAMuoc,EAAW9vc,OAAS8vc,EAAWvoc,IAAMknY,EAAen6X,cAC1F,OAEA0C,EAAY,eADC84b,EAAWvoc,IAAM,GAAKuoc,EAAWvoc,IAAM,IACXrX,EAAAA,GAAAA,mCAAoC,MACjFu+Y,EAAe3kY,IAAI,CACf,oBAAqBkN,EACrB,UAAaA,MAhCd7a,GAAAA,KAqCf,SAAS8+2B,GAAmBjl1B,GACxB,IAAIwgB,GAAkBxgB,EAAWlrB,KAAK,6BAA6ByrC,cAAgB,IAAMvgB,EAAWlrB,KAAK,4BAA4ByrC,cAAgB,GACrJ,OAAOte,MAAMue,GAAkB,EAAIA,ECnDhC,SAAS0k0B,GAA6BC,EAAqB9tC,EAAe+a,EAAegzB,GAAiD,IAApCvtoB,EAAoC,uDAA1B1xO,GAAAA,GAAAA,YAAiB+X,QAChImn2B,GAA0BF,IAAiE,IAA1CA,EAAoBG,kBACrE1m2B,EAAW6l2B,GAAiBU,GAAuBA,EAAoBvm2B,UAE3E,GADAwz0B,EAAckH,YAAYnktB,YAAYv2H,IACjCym2B,EACD,OAAOl/2B,GAAAA,KACX,IAAIqN,EAAQrN,GAAAA,GAAAA,YAAiBi/2B,GACzBG,EAAY/x2B,EAAMsB,KAAK,0BACvB0w2B,EAA4Bb,GAAyBY,EAAW/x2B,EAAOqkO,EAAS,yBAA0Bj5N,GAC9Gy4zB,EAAcouC,eAAerzB,EAAckH,YAAYh41B,QAAQsI,WAAU,SAACi3L,GACtEA,GAAa2krB,EAA0BJ,OAE3C,IAAIM,EAAgC,WAC5BtzB,EAAckH,aAAen41B,GAAAA,OAAUix1B,EAAckH,YAAYh41B,UACjEkk3B,EAA0BJ,IAQlC,OANAln2B,OAAO/kB,iBAAiB,SAAUus3B,GAClCruC,EAAcouC,eAAe,CACzB5u2B,QAAS,WACLqH,OAAOtlB,oBAAoB,SAAU8s3B,MAGtCA,ECNJ,SAASC,GAAoBC,GAChC,IAAIz81B,EAAYy81B,EAAgBz81B,UAC5B081B,EAAeD,EAAgBnh3B,MAC/Bqh3B,EAAiBF,EAAgBrt3B,QACjCys3B,EAAiB,IAAIzxB,GAAsB,KAAMpq0B,GAAYip0B,EAAgB,IAAI6e,GAAoB4U,EAAa5f,WAAY+e,OAAgBn02B,EAAWsY,OAAWtY,EAAWg12B,EAAaE,oBAC5Lvy2B,EAAQrN,GAAAA,GAAAA,YAAiB2/2B,GACzBE,ECzBD,SAAwC1U,EAAoB991B,GAC/D,OAAO,WACH,IAAIxJ,EAASwJ,EAAM8K,cACfvU,EAAQyJ,EAAM+sC,aAClB+wzB,EAAmB,CAAEvn2B,MAAAA,EAAOC,OAAAA,KDqBAi82B,CAA+B7zB,EAAckf,mBAAoB991B,GACjGwy2B,IACA,IAAIvP,EAAU,IAAIgB,GAAarlB,EAAeA,EAAckf,oBACxD5d,EAAc,IAAI8iB,GAAsBpkB,EAAeqkB,GACvDhjB,EAAkB,IAAImsB,GAA2BxtB,EAAe,IAAI+vB,GAA6B0D,EAAard,gBAAkBqd,EAAard,eAAeyC,WAAY9h1B,IACxKm51B,EAAc,IAAInS,GAAmB/d,GACzCA,EAAcvU,uBAAyBgoC,EAAahoC,uBACpDmnC,EAAe7l3B,WAAWiz1B,EAAeqB,EAAiBC,GAC1D,IAAIwyB,EAAc/k3B,GAAAA,gBAAmB,CACjC2i1B,GAAeC,IAAKD,GAAeG,IAAKH,GAAeI,KACvDJ,GAAeK,IAAKL,GAAeS,KAAMT,GAAeO,KACxDP,GAAepnpB,KAAMonpB,GAAeQ,IAAKR,GAAen7I,QAExDw9K,EPlBD,SAAiCtz2B,GACpC,IAAIuz2B,EAAgB,CAChB9k3B,QAASH,GAAAA,YAAc,GACvBgD,MAAOhD,GAAAA,cAAgB,WACnB,IAAIkl3B,EAAaxz2B,EAAQyv2B,YAAY7R,wBACjCqS,EAAmBjw2B,EAAQqz2B,cAAc7n3B,QAAO,SAAAoL,GAAC,OAA+B,IAA3B482B,EAAWzn3B,QAAQ6K,MAC5E,GAAIq52B,EAAiB/p3B,OAAS,EAC1B+p3B,EAAiB962B,OAAO,EAAG862B,EAAiB/p3B,OAAS,QAEpD,GAAI+p3B,EAAiB/p3B,OAAS,EAAG,CAClC,IAAIut3B,EAAiBD,EAAWho3B,QAAO,SAAAoL,GAAC,OAAqC,IAAjCq52B,EAAiBlk3B,QAAQ6K,MACrEq52B,EAAiBzp3B,KAAKolB,MAAMqk2B,EAAkBwD,EAAepo3B,MAAM,EAAG,EAAI4k3B,EAAiB/p3B,SAE/F,OAAO+p3B,EAAiBnk3B,KAAI,SAAChG,GAEzB,OADAA,EAAKugB,OAAS,SAACzU,GAAYoO,EAAQyv2B,YAAYhS,wBAAwB7r2B,GAASA,EAAM8sB,SAC/E54B,SAIfsgB,EAAU,CACV,CACInV,YAAa,WACT+O,EAAQ6g1B,YAAY6d,oBAAmB,GACvC1+1B,EAAQ6g1B,YAAYwjB,eAAc,GAClCrk2B,EAAQ6g1B,YAAY1wsB,YAAY,CAAE77I,cAAehB,GAAAA,GAAAA,YAAiB,wBAClE0M,EAAQu/0B,cAAcof,gBAAe,IAEzC1v1B,eAAgB,oBAChBD,kBAAmB,0BACnBvgB,QAAS8l1B,IAEb,CACItj1B,YAAa,WAAQsi3B,EAAc9k3B,SAAS8k3B,EAAc9k3B,YAC1DwgB,eAAgB,uBAChBD,kBAAmB,oCACnBvgB,SAAS,EACTiY,QAAS,CACLtT,KAAM,2BACNK,KAAM8/2B,EACNvv2B,QAAS,WACLuv2B,EAAcji3B,QAAQzL,SAAQ,SAAAC,UACnBA,EAAKugB,UAEhBkt2B,EAAcji3B,MAAM0S,aAIhC,CACI/S,YAAa,WACT+O,EAAQ4g1B,gBAAgBwtB,UAAU3/2B,SAASuR,EAAQ4g1B,gBAAgBwtB,UAAU3/2B,WAC7EuR,EAAQu/0B,cAAcof,gBAAe,IAEzC1v1B,eAAgB,wBAChBD,kBAAmB,2BACnBvgB,QAASuR,EAAQ4g1B,gBAAgBwtB,UAAUF,WAInD,OADAlu2B,EAAQsW,WAAatW,EAAQsW,UAAU+/B,kBAAoBr2C,EAAQsW,UAAU+/B,iBAAiBjwC,GACvF,IAAImp2B,GAAiBnp2B,GOxCRst2B,CAAwB,CAAEn0B,cAAAA,EAAekwB,YAAAA,EAAa7uB,gBAAAA,EAAiBC,YAAAA,EAAawyB,YAAAA,EAAa/81B,UAAWA,IAChIip0B,EAActpkB,UAAUl/Q,WAAU,SAAUN,GAAU682B,EAAc7k3B,SAAQ,MAC5E8w1B,EAAcof,eAAiB2U,EAAc7k3B,QAC7C,IAAIkl3B,EAAuB,CACvBll2B,UAAW,6CACX8w0B,cAAeA,EACfqB,gBAAiBA,EACjB6uB,YAAaA,EACb5uB,YAAaA,EACbny0B,IAAK6w0B,EAAc0W,UACnB+Z,oBAAqB1h3B,GAAAA,YAAc,GACnCs12B,QAASA,EACTmM,UAAW,IAAIrJ,GAAgBnnB,EAAeqkB,GAC9CqM,iBAAkBoD,GAElB7uC,EAAgB,IAAIqrC,GAAmB8D,GAC3CnvC,EAAcsrC,aAAe,CACzB9r2B,QAAS,WACL,IAAIpS,EAAQ4y0B,EAAcsrC,aACtBxh3B,GAAAA,WAAcsD,EAAM0t2B,eACpB1t2B,EAAM0t2B,aAAat71B,UACnB1V,GAAAA,WAAcsD,EAAMs+2B,kBACpBt+2B,EAAMs+2B,gBAAgBls2B,WAE9B801B,WAAYvZ,EAAcuZ,WAC1BsG,kBAAmB7f,EAAc6f,kBACjCwU,YAAa/yB,EACb2d,UAAWjf,EAAcif,UACzBC,mBAAoBlf,EAAckf,mBAClCr/a,WAAYmga,EAAcuf,iBAC1B9/a,YAAauga,EAAcqf,kBAC3Bz/a,aAAcoga,EAAcsf,mBAC5BqR,gBAAiB5h3B,GAAAA,UAAY,WACzB,QAASix1B,EAAcuf,oBAAsBvf,EAAcqf,qBACpDrf,EAAcsf,sBAAwBtf,EAAcwf,0BAE/D/t2B,SAAUuu1B,EAAcggB,oBACxBD,aAAchx2B,GAAAA,UAAY,WACtB,OAAIix1B,EAAcyf,mBAGdne,EAAY1p1B,SAAW,IAAM0p1B,EAAYwjB,qBAGxC9kB,EAAcqf,sBAAwBrf,EAAcsf,0BAK7D7J,UAAWzV,EAAcyV,UACzB6e,kBAAmBjQ,EAAQoB,WAC3BD,eAAgBnB,EAAQmB,eACxB/F,aAAczf,EAAcyf,aAC5BgR,oBAAqBxrC,EAAcwrC,qBAEvC,IAAI8D,EAAkB,IAAIjD,GAAqBjwB,EAAiBrB,GAChE/a,EAAc51zB,MAAQ,CAClB,CAAE/e,GAAI8h3B,GAA+Bvj2B,aAAcuj2B,GAA+B//2B,MAAO4y0B,EAAc+a,eACvG,CAAE1v1B,GAAI8h3B,GAA8Bvj2B,aAAcuj2B,GAA8B//2B,MAAO4y0B,EAAcqc,aACrG,CAAEhx1B,GAAI8h3B,GAA6Bvj2B,aAAcuj2B,GAA6B//2B,MAAO4y0B,EAAcurC,WACnG,CAAElg3B,GAAI8h3B,GAAqCvj2B,aAAcuj2B,GAAqC//2B,MAAO0h3B,GACrG,CAAEzj3B,GAAI8h3B,GAAkCvj2B,aAAcuj2B,GAAkC//2B,MAAOki3B,GAC/F,CAAEjk3B,GAAI8h1B,GAA4Bvj0B,aAAcuj0B,GAA4B//0B,MAAO4y0B,EAAc+a,cAAcoK,gBAEnHrz0B,GAAaA,EAAUy91B,gBAAkBz91B,EAAUy91B,eAAevvC,EAAc51zB,OAChF,IAAIol2B,EAAWrz2B,EAAMsB,KAAK,yBACtB+iO,EAAU1xO,GAAAA,GAAAA,YAAiB+X,QAC3B4o2B,EAAyB5B,GAA6BW,EAAaV,oBAAqB9tC,EAAe+a,EAAe0zB,EAAgBjuoB,GACtIkvoB,EAAsCpC,GAAyBkC,EAAUrz2B,EAAOqkO,EAAS,yBACzFmvoB,EAAsB,WACtBhB,GAA6BA,IAC7Bc,GAA0BA,KAE9BzvC,EAAci4B,kBAAoB0X,EAClC3vC,EAAc3oV,eAAiB,WACvB+kW,EAAgBwtB,UAAU3/2B,WAC1Bql3B,EAAgBnD,sBAEpBwD,IACI50B,EAAcof,kBACduV,EAAoCjB,IAE5C5n2B,OAAO/kB,iBAAiB,SAAUk+0B,EAAc3oV,gBAChD,IAAI/rT,EAAW,WACPyvpB,EAAcof,kBACduV,EAAoCjB,IAgB5C,OAdA5n2B,OAAO/kB,iBAAiB,SAAUwpM,GAClC00oB,EAAcouC,eAAe,CACzB5u2B,QAAS,WACLqH,OAAOtlB,oBAAoB,SAAUy+0B,EAAc3oV,gBACnDxwe,OAAOtlB,oBAAoB,SAAU+pM,GACrC00oB,EAAcsrC,aAAa9r2B,UAC3Bsv2B,EAActv2B,aAGtBwg0B,EAAcouC,eAAerzB,EAAcof,eAAe5n2B,WAAU,SAACoV,GAC7DA,GACA+n2B,EAAoCjB,QAE5ChrzB,EAAAA,GAAAA,oCAAmCu8wB,EAAe58wB,GAAAA,eAC3C48wB,EE1IJ,IAAI4vC,GAAqB,SAAU5s3B,GAAS,OAAOA,IAAUuJ,EAAAA,GAAAA,iBAAgB,OAAQ,8DAAgE,KAAOvJ,EAAMyuR,UAAY,ICKxKo+lB,GAAb,0CACI,WAAY90B,EAAetV,GAAY,uBACnC,gBACK7j0B,QAAU,GACf,IAAIku2B,EAAe,CACfzk3B,GAAIgnD,GACJtuD,KAAM,SACN8mB,YAAa,kBAAMte,EAAAA,GAAAA,iBAAgB,SAAU,+CAC7Cke,eAAgB,oBAChBD,kBAAmB,mCACnBZ,aAAcmx0B,EAAciW,oBAAsB,mCAAgCx31B,EAClFhN,SAAU1C,GAAAA,YAAc,GACxBG,QAAS8w1B,EAAciW,oBACvBv/yB,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACTsu1B,EAAc+V,gBAAe,GAC7B/V,EAAc9ohB,eAfa,OAkBnC69iB,EAAaxh2B,YAAc,CACvBxhB,MAAO,CACH,CAAEm/D,SAAU6jzB,EAAcvj2B,QAAQ,GAClC,CAAE2J,eAAgB,kBAAM3pB,EAAAA,GAAAA,iBAAgB,UAAW,gDAAgDggB,QAAQ,KAGnH,EAAK3K,QAAQ5f,KAAK8t3B,GAClB,EAAKlu2B,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,cAAe,kDACrCke,eAAgB,wBAChBD,kBAAmB,kBAAMi7zB,IAAe,mCAAqC,+BAC7Ej50B,SAAU1C,GAAAA,YAAc,GACxBG,SAAU8w1B,EAAciW,oBACxB3i1B,SAAUo3zB,EACVh50B,YAAa,WACTg50B,GAAYA,QAGpB,EAAK570B,aAAa7H,KAAKyj1B,GArCY,EAD3C,sCAwCI,YACI,uDACArk1B,KAAKgqC,qBA1Cb,wBA4CI,SAAWrvB,GACP,OAAO3a,KAAKwgB,YA7CpB,GAA4Cxf,GAAAA,YAgD/BuvD,GAAb,0CACI,WAAYopyB,EAAeg1B,EAAuBl+zB,EAAkBnnB,GAAS,6BACzE,cAAMA,IACD4xzB,eAAiBvB,EACtB,EAAKg1B,sBAAwBA,EAC7B,EAAK3h2B,aAAetkB,GAAAA,UAAY,WAC5B,IAAIkm3B,EAAgB,GAKpB,OAJAD,IAAwB1u3B,SAAQ,SAACy4D,GAC7Bk2zB,EAAchu3B,KAAKolB,MAAM4o2B,EAAel2zB,EAAe9qD,WAAW+r1B,OAEtElpyB,GAAoBA,EAAiBm+zB,GAC9BA,KAEX,EAAKnm3B,aAAa7H,KAAK,EAAKosB,cAZ6C,EADjF,8CAeI,SAAgBxM,EAAShgB,GACjBR,KAAK8xD,uBAAuBtxD,KAEhC,8DAAsBggB,EAAShgB,KAlBvC,qBAoBI,YACI,uDACAR,KAAKqoE,qBAAqBroE,KAAK2u3B,uBAC/B3u3B,KAAKgqC,uBAvBb,GAAiComB,GAAAA,iBA0BpBy+zB,GAAb,0CACI,WAAYl1B,GAAe,uBACvB,gBACKn50B,QAAU,GACf,IAAIsu2B,EAAgBn1B,EAAc0V,eAClC,EAAK7u1B,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,aAAc,kEACpCke,eAAgB,2BAChBD,kBAAmB,8BACnBhe,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAActpkB,YAAc,MACzFxnR,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Er/yB,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACLsu1B,EAActpkB,YAAc,GAC5BspkB,EAAc5M,SAAS,MAInC,EAAKvs0B,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,gBAAiB,oDACvCke,eAAgB,0BAChBD,kBAAmB,iCACnBhe,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAActpkB,YAAc,MACzFxnR,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Er/yB,OAAQ,CAAErqB,SAAS,EAAOsqB,QAAS,IACnCjlD,YAAa,WACLsu1B,EAActpkB,aAAe,GAC7BspkB,EAAc5M,SAAS4M,EAActpkB,YAAc,GAAG,EAAO,QAIzE,IAAI2+lB,EAA+B,CAC/B/k3B,GAAIgnD,GACJtuD,KAAM,aACN0mB,eAAgB,mBAChBje,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAwC,IAAjCix1B,EAAch9P,QAAQr8lB,SAA+C,IAA/Bq51B,EAActpkB,gBACjHxnR,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Erk2B,YAAaqC,GAAAA,KACbN,aAAc,EAAK2h3B,eAAerm3B,GAAAA,aAAgB,CAC9C+H,KAAM,WACF,GAAIkp1B,EAActpkB,YAAc,EAC5B,OAAO,KAEX,IAAI3kR,EAAQsj3B,EAA6BC,YACzC,OAAOvj3B,GAASA,EAAM86C,OAAU96C,EAAM86C,MAAMlmD,OAASq51B,EAActpkB,aAAgB3kR,EAAM86C,MAAMmzyB,EAActpkB,cAEjHz/Q,MAAO,SAAC2V,GACEA,IAAaA,EAAS1lB,OAA4B,IAAnB0lB,EAAS1lB,QAC1C841B,EAAc5M,SAASxm0B,EAAS1lB,QAGxCqwjB,iBAAiB,KAErB+9T,UAAW,EAAKF,eAAerm3B,GAAAA,cAAgB,WAC3C,IAAI040B,EAAYuY,EAAch9P,QAAQr8lB,OACtC,GAAkB,IAAd8g1B,IAAuD,IAApCuY,EAActpkB,UAAU3/Q,OAC3C,MAAO,GAGX,IADA,IAAIog2B,EAAa,IAAIvr2B,MACZwG,EAAI,EAAGA,EAAIq10B,GAChB0vB,EAAWlw2B,KAAK,CAAEC,MAAOkL,EAAGpJ,OAAQoJ,IAExC,MAAO,CACHy6C,MAAOsqzB,EACPrqzB,SAAU26xB,EAAY,IACtB16xB,SAAU,SAGlBwmyB,YAAayM,EAAc2V,iBAC3Bx2jB,SAAU,SAACt4S,GACFwu3B,EAA6BE,eAAe1u3B,EAAE6tB,UAAUxJ,OAAO,UAChE800B,EAAc2V,iBAAiB30xB,kBAAkBg/wB,EAAc2V,qBAGvE6f,MAAO,SAAC3u3B,GACkB,KAAlBA,EAAEga,MAAM0iC,OAER8x0B,EAA6BE,eAAe1u3B,EAAE6tB,UAAUxJ,OAAO,UAC/Dmq2B,EAA6Bh5f,QAAO,IAG5Ck5f,eAAgB,SAACtt3B,GACb,IAAImiB,EAAMkyB,UAAYA,SAASr0C,GAC/B,SAAMmiB,GAAOA,KAAQ,GAAKA,EAAM410B,EAAch9P,QAAQr8lB,UAClDq51B,EAAc5M,SAAShp0B,IAChB,IAIfwH,YAAa,SAAU3pB,GACnB,IAAIyuR,EAAYspkB,EAActpkB,UAAU3/Q,OACxC,OAAmB,IAAf2/Q,GAAqBzuR,GAASyuR,IAAczuR,EAAMf,MAI3Ce,EAAMe,KAHNg31B,EAAc2V,iBAAiB5+1B,QAM9C6b,aAAc,SAAU3qB,GAAS,OAAOA,EAAMe,MAC9Ci2E,WAAY,aACZpiD,cAAe9tB,GAAAA,YAAc,GAC7B6wG,cAAe,GACfy8Q,OAAQttX,GAAAA,YAAc,GACtB8f,aAAc,sBAxGK,OA0GvB,EAAKhI,QAAQ5f,KAAKou3B,GAClB,EAAKxu2B,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,YAAa,gDACnCke,eAAgB,0BAChBD,kBAAmB,6BACnBhe,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAActpkB,YAAc,GAAKspkB,EAActpkB,aAAespkB,EAAch9P,QAAQr8lB,OAAS,MAC1JuI,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Er/yB,OAAQ,CAAErqB,SAAS,EAAOsqB,QAAS,IACnCjlD,YAAa,WACLsu1B,EAActpkB,YAAcspkB,EAAch9P,QAAQr8lB,OAAS,GAC3Dq51B,EAAc5M,SAAS4M,EAActpkB,YAAc,GAAG,EAAO,QAIzE,EAAK7vQ,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,YAAa,iEACnCke,eAAgB,0BAChBD,kBAAmB,6BACnBhe,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAActpkB,YAAc,GAAKspkB,EAActpkB,aAAespkB,EAAch9P,QAAQr8lB,OAAS,MAC1JuI,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Er/yB,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACLsu1B,EAActpkB,YAAcspkB,EAAch9P,QAAQr8lB,OAAS,GAC3Dq51B,EAAc5M,SAAS4M,EAAch9P,QAAQr8lB,OAAS,MAIlE,EAAKkgB,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,wBAAyB,6DAC/Cke,eAAgB,EAAK0l2B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc1M,uBAAyB,iCAAmC,mCAC7I7j0B,kBAAmB,EAAK2l2B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc1M,uBAAyB,+BAAiC,0CAC9I7h1B,SAAU1C,GAAAA,YAAc,GACxBG,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WAAQ,OAAOix1B,EAAc+V,qBAC1Er/yB,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACT,IAAIkiB,EAAOos0B,EAAcqN,QACzBrN,EAAc1M,sBAAsB0M,EAAc1M,wBAClD0M,EAAcps0B,KAAKA,IAEvBlD,cAAc,IAElB,EAAK7J,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,WAAY,yDAClCke,eAAgB,qBAChBD,kBAAmB,2BACnBhe,SAAU1C,GAAAA,YAAc,GACxBG,SAAS,EACT8nD,SAAUgpyB,EAAchpyB,SACxBN,OAAQ,CAAErqB,SAAS,EAAOsqB,QAAS,KACnCjlD,YAAa,WACT,IAAIiu2B,EAAc3f,EAAcps0B,OAC5By8T,EAAYsvhB,EAAc,EAAIA,EAAc3f,EAAcqN,QAC9DrN,EAAcps0B,KAAK5H,KAAKC,IAAIokU,EAAY2vgB,EAAchpyB,WAAY,MAEtEtmC,cAAc,IAElB,EAAK7J,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,qBAAsB,iEAC5Cke,eAAgB,kBAChBje,SAAU1C,GAAAA,YAAc,GACxBG,SAAS,EACTwnD,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,KAClCjlD,YAAa,WACTsu1B,EAAcps0B,KAAK,IAEvB/E,aAAc,oCACd+C,YAAa,SAACxH,GACV,OAAIA,IAAQio0B,IACD7g1B,EAAAA,GAAAA,iBAAgB,aAAc,kDAEN,IAA1Bwa,KAAK6H,MAAY,IAANzJ,IACT5Y,EAAAA,GAAAA,iBAAgB,aAAc,0CAG9Bwa,KAAK6H,MAA2C,KAApCzJ,GAAO410B,EAAcps0B,KAAK7c,SAAiB,KAGtE+c,qBAAsB,SAACjtB,GAAQA,EAAEmxD,YAAaC,EAAAA,GAAAA,WAAUpxD,EAAEmC,OAC1D4qB,KAAMos0B,EAAcps0B,KACpBD,WAAYqs0B,EAAcgU,qBAC1ByhB,UAAW,EAAKL,eAAerm3B,GAAAA,cAAgB,WAC3C,IAAIgD,EAAQiu1B,EAAcgU,qBAAqBlo2B,MAAM,GAKrD,OAJ6C,IAAzCk01B,EAAc1M,yBAA0D,IAAtBvh1B,EAAMvF,QAAQ,KAChEuF,EAAM9K,KAAKor1B,IACXtg1B,EAAM9K,KAAKor1B,KAERtg1B,QAGf,EAAK8U,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,UAAW,wDACjCke,eAAgB,oBAChBD,kBAAmB,0BACnBhe,SAAU1C,GAAAA,YAAc,GACxBG,SAAS,EACT8nD,SAAUgpyB,EAAchpyB,SACxBN,OAAQ,CAAErqB,SAAS,EAAOsqB,QAAS,KACnCjlD,YAAa,WACT,IAAIiu2B,EAAc3f,EAAcps0B,OAC5By8T,EAAYsvhB,EAAc,EAAIA,EAAc3f,EAAcqN,QAC9DrN,EAAcps0B,KAAK5H,KAAKG,IAAIkkU,EAAY2vgB,EAAchpyB,WAAY,QAG1E,EAAKnwC,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,2BAA4B,wEAClDke,eAAgB,uCAChBD,kBAAmB,2CACnBhe,SAAU,EAAK2j3B,eAAerm3B,GAAAA,cAAgB,kBAAMix1B,EAAcvI,wBAAwB9w1B,OAAS,MACnGuI,QAAS,EAAKkm3B,eAAerm3B,GAAAA,cAAgB,WACzC,IAAI2m3B,EAAY3gC,KACZ4gC,EAAgB31B,EAAc+V,iBAClC,OAAO2f,GAAaC,MAExBri2B,SAAU,EAAK8h2B,eAAerm3B,GAAAA,cAAgB,kBAAMix1B,EAAcgW,+BAClEt/yB,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACTsu1B,EAAcgW,0BAA0BhW,EAAcgW,6BAE1Dtl1B,cAAc,IAElB,EAAK7J,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,QAAS,2DAC/Bke,eAAgB,mBAChBD,kBAAmB,yBACnBiB,cAAc,EACdjf,SAAU0j3B,EACVjm3B,SAAS,EACTwnD,OAAQ,CAAErqB,SAAS,EAAMsqB,QAAS,IAClCjlD,YAAa,WACLyj3B,KAGJn1B,EAAcmwB,mBAGtB,EAAKtp2B,QAAQ5f,KAAK,CACdqJ,GAAIgnD,GACJtuD,MAAMwI,EAAAA,GAAAA,iBAAgB,aAAc,kEACpCke,eAAgB,wBAChBD,kBAAmB,8BACnBhe,SAAU0j3B,EACVjm3B,SAAS,EACTwC,YAAa,WACLyj3B,KAGJn1B,EAAcmwB,cAAcnwB,EAActpkB,gBApQ3B,EAD/B,6CAyQI,SAAejtQ,GAEX,OADApjB,KAAKyI,aAAa7H,KAAKwiB,GAChBA,IA3Qf,qBA6QI,YACI,uDACApjB,KAAKgqC,qBA/Qb,wBAiRI,SAAWrvB,GACP,OAAO3a,KAAKwgB,YAlRpB,GAAoCxf,GAAAA,YC3D7B,SAASuu3B,GAAqBpC,IrGwB9B,SAA2Bxk2B,GAC9B,GAAKA,EAAL,CAEA,IACImtC,GAAc7f,SAASxwB,OAAO88G,iBAAiB//H,SAASimC,iBAAiB6iS,iBAAiB,eADxE,OAElBx1Q,KAAer0D,EAAAA,GAAAA,sCACf4vE,EAAAA,GAAAA,kCAAiCvb,GAAaub,EAAAA,GAAAA,sCAC9C5vE,EAAAA,GAAAA,iCAAgCq0D,KqG9BpC05zB,CAAkBrC,EAAgBnh3B,MAAM2c,wBACxC,IAAI+i1B,IAA0ByhB,EAAgBnh3B,MAAM2c,uBAChD+H,EAAYy81B,EAAgBz81B,UAC5B081B,EAAeD,EAAgBnh3B,MAC/Bqh3B,EAAiBF,EAAgBrt3B,QACjCys3B,EAAiB,IAAIzxB,GAAsB,KAAMpq0B,GAAYip0B,EAAgB,IAAI4T,GAAc6f,EAAa5f,WAAY+e,OAAgBn02B,EAAWsY,EAAW081B,EAAatk2B,IAAK4i1B,EAAuB0hB,EAAa1f,eAAgByf,EAAgBrt3B,SAAUm71B,EAAc,IAAImgB,GAAgBzhB,EAAgC,OAAjByzB,QAA0C,IAAjBA,OAA0B,EAASA,EAAa/R,eAAgB3P,GACxYse,EAAmB,IAAI5S,GAAiBzd,GACxCqB,EAAkB,IAAImsB,GAA2BxtB,EAAe,IAAIkpB,GAAuBuK,EAAard,gBAAkBqd,EAAard,eAAeyC,WAAY2a,EAAgBz81B,WAAYg70B,GAC9Lme,EAAc,IAAInS,GAAmB/d,EAAe+R,GACxD/R,EAAciW,qBAAuBwd,EAAa1d,eAClD/V,EAAcvU,uBAAyBgoC,EAAahoC,uBACpDmnC,EAAe7l3B,WAAWiz1B,EAAeqB,EAAiBC,GAC1D,IAAIxu0B,EAAW,IAAI+oC,GAAAA,SAAS,CACxB7sD,KAAM,CACFqy1B,EAAgBwc,QAChBqS,EAAYrS,QACZvc,EAAYuc,QACZwS,EAAiBxS,SAErBlm2B,MAAO,IACPukD,eAAe,EACf/sC,IAAKsk2B,EAAatk2B,MAEtB2D,EAASljB,WAAU,GACnB,IAAIkm3B,EAAoBtrC,GAAyBkpC,EAAgB1zB,GAC7D+1B,EAAiB,IAAIb,GAAel1B,GACpCg2B,EAAuB,IAAIlB,GAAuB90B,EAAe81B,GACjEd,EAAwBjm3B,GAAAA,gBAAmB,CAACgn3B,EAAgB7F,EAAa5uB,EAAa00B,IACtFrl2B,EAAc,IAAIimC,GAAYopyB,EAAeg1B,EAAuBj+1B,GAAaA,EAAU+/B,iBAAkBkpyB,EAAc+V,gBAC/H/V,EAAc+V,eAAe0d,EAAa1d,gBAC1C,IAAIqe,EAAuB,CACvBll2B,UAAW,2CAA6C8w0B,EAAciW,oBAAsB,yBAA2B,IACvHjW,cAAeA,EACfqB,gBAAiBA,EACjB6uB,YAAaA,EACb5uB,YAAaA,EACb+uB,iBAAkBA,EAClBv91B,SAAUA,EACVnC,YAAaA,EACbxB,IAAK6w0B,EAAc0W,UACnB1n1B,uBAAwByk2B,EAAazk2B,wBAErCi2zB,EAAgB,IAAImrC,GAAagE,GACrCnvC,EAAcouC,eAAe0C,GAC7B9wC,EAAcouC,eAAe2C,GAC7B/wC,EAAc51zB,MAAQ,CAClB,CAAE/e,GAAI8h1B,GAAyBvj0B,aAAcuj0B,GAAyB//0B,MAAO,CAAEse,YAAaA,EAAa5H,eAAgB,IAAIrY,GAAAA,sBAAsBigB,EAAY0C,cAAe4i1B,oBAAqBjW,EAAciW,sBACjN,CAAE3l2B,GAAI8h1B,GAAyBvj0B,aAAcuj0B,GAAyB//0B,MAAO4y0B,EAAc+a,eAC3F,CAAE1v1B,GAAI8h1B,GAA4Bvj0B,aAAcuj0B,GAA4B//0B,MAAO4y0B,GACnF,CAAE300B,GAAI8h1B,GAA4Bvj0B,aAAcuj0B,GAA4B//0B,MAAO4y0B,EAAc+a,cAAcoK,gBAEnHrz0B,GAAaA,EAAUy91B,gBAAkBz91B,EAAUy91B,eAAevvC,EAAc51zB,OAChF,IAAIo2N,EAAU1xO,GAAAA,GAAAA,YAAiB+X,QAC3B+4hB,EAAS,GACT6vU,EAAyB5B,GAA6BW,EAAaV,oBAAqB9tC,EAAe+a,EAAe0zB,EAAgBjuoB,GACtImuoB,ENrBD,SAAkC9d,EAAa3+1B,EAAMgY,GACxD,IAAI8m2B,EAAyB,KAC7B,OAAO,SAACC,GACJ,IAAIC,EAASpi3B,GAAAA,GAAAA,YAAiBoD,GAC1BiK,EAAQ+02B,EAAOzz2B,KAAK,iBACpB0z2B,EAAYri3B,GAAAA,GAAAA,YAAiBoD,GAAM/F,SAAS,yBAC5Cil3B,GAAajuzB,EAAAA,GAAAA,eAAc+tzB,EAAOho0B,cAChCio0B,EAAUzv3B,QAAUsv3B,IAA2BI,IACjDD,EAAUl41B,YAAY,wBAA0B+31B,GAChDG,EAAUtw2B,SAAS,wBAA0Buw2B,IAEjDJ,EAAyBI,EACzB,IAAIjo0B,EAAiByk0B,GAAmBzx2B,GACpCktC,GAAgBltC,EAAMzJ,QAAUy2C,EAAiB,KAAMtmD,EAAAA,GAAAA,mCACvDwu3B,EAAgBJ,IAAqBr6zB,GAAAA,SAAAA,SAAAA,KAA0B,CAAE,MAAS,GAAI,KAAQzN,GAAmB,CAAE,MAASA,EAAgB,KAAQ,IAChJhtC,EAAMsB,KAAK,yBAAyBhB,IAAI402B,GACxCxgB,EAAYxnzB,IMKgBio0B,CAAyBv2B,EAAc8V,YAAa4d,EAAgBD,EAAatk2B,KAC7Gsk2B,EAAa+C,mBACb/C,EAAa+C,iBAAiB7+2B,OAASmb,EAASnb,MAAM2kC,SAASm30B,EAAa+C,iBAAiB7+2B,QAC7F872B,EAAa+C,iBAAiBhq2B,UAAYsG,EAAStG,SAASin2B,EAAa+C,iBAAiBhq2B,WAE9F,IAAIoo2B,EAAsB,WACtBhB,GAA6BA,EAA0B9g2B,EAAStG,YAChEko2B,GAA0BA,KAgC9B,OA9BAzvC,EAAci4B,kBAAoB0X,EAClC3vC,EAAc3oV,eAAiBs4X,EAC/B9o2B,OAAO/kB,iBAAiB,SAAUk+0B,EAAc3oV,gBAChD2oV,EAAcouC,eAAeyC,GAC7B7wC,EAAcouC,eAAeyC,EAAkBt+2B,UAAUyt0B,EAAc3oV,iBACvE2oV,EAAcouC,eAAevg2B,EAASnb,MAAMH,WAAU,WAClDqtiB,EAAO59iB,KAAKiC,YAAW,kBAAM0q3B,EAA0B9g2B,EAAStG,cAAa,QAEjFy4zB,EAAcouC,eAAevg2B,EAAStG,SAAShV,WAAU,SAACN,GACtD082B,EAA0B182B,OAE9B+t0B,EAAcouC,eAAevg2B,EAAS0oB,QAAQhkC,WAAU,WACpDqtiB,EAAO59iB,KAAKiC,YAAW,WACnB0q3B,EAA0B9g2B,EAAStG,cACpC,QAEPoo2B,IACA3vC,EAAcouC,eAAe,CACzB5u2B,QAAS,WACLqH,OAAOtlB,oBAAoB,SAAUy+0B,EAAc3oV,gBACnD2oV,EAAci4B,kBAAoB,KAClCj4B,EAAc3oV,eAAiB,KAC/BuoD,EAAOv+iB,SAAQ,SAAA+Q,GAAC,OAAIktB,aAAaltB,MACjCu82B,EAA4B,KAC5Bc,EAAyB,SAGjChszB,EAAAA,GAAAA,oCAAmCu8wB,EAAe,CAC9C38wB,QAASn7D,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI0iB,GAAAA,cAAAA,SAAwB,CAAEwszB,mBAAoBA,MACxF,oBACI5vC,EAmDJ,SAASwxC,GAAcjD,GACtBA,EAAgBnh3B,OAASmh3B,EAAgBnh3B,MAAMgB,eAC/C8hE,EAAAA,GAAAA,gBAAe,CACXzB,SAAU8/yB,EAAgBnh3B,MAAMgB,eAGxC,IAAI0v0B,EAAwB,GAE5B,OADAywC,EAAgBz81B,WAAay81B,EAAgBz81B,UAAU2/1B,uBAAyBlD,EAAgBz81B,UAAU2/1B,sBAAsB3zC,IACzH3uwB,EAAAA,GAAAA,qBAAoB2uwB,GAAuB,WAC9C,OAAO3wyB,EAAAA,GAAAA,6BAA2B,WAC9B,OA3DZ,SAAwBoh1B,GACpB,IAAItj3B,EACAuj3B,EAAeD,EAAgBnh3B,MACnCoh3B,EAAa1d,oBAAiDt31B,IAAhCg12B,EAAa1d,gBAA+B0d,EAAa1d,eACvF0d,EAAahoC,4BAAiEht0B,IAAxCg12B,EAAahoC,wBAAuCgoC,EAAahoC,uBACvGgoC,EAAazk2B,4BAAiEvQ,IAAxCg12B,EAAazk2B,wBAAuCyk2B,EAAazk2B,uBACvGwk2B,EAAgBmD,mBAAkDl42B,IAAlC+02B,EAAgBmD,eAA8BnD,EAAgBmD,cAC9F,IAyBI1xC,EAzBE2xC,EAAqBpD,EAAgBz81B,WAAay81B,EAAgBz81B,UAAU8/1B,gBAAiBtu0B,EAAAA,GAAAA,mBAAkBir0B,EAAgBz81B,UAAU8/1B,eAE/I,IADAlhzB,EAAAA,GAAAA,SAAO,CAAEyC,aAAcq7yB,EAAatk2B,MAChCsk2B,EAAaqD,iBAAmBrD,EAAaqD,eAAeC,WAAatD,EAAaqD,eAAeE,aACrG/hC,IAAoB,GACpBw+B,EAAa5f,WAAa7i0B,GAAAA,cAAAA,YAA0Byi1B,EAAaqD,eAAeE,UlE7HrD,kCkE8H3BhiC,IAAgB,GAChBD,IAAuB,GACvBS,GAAwBxkzB,GAAAA,cAAAA,YAA0Byi1B,EAAaqD,eAAeE,UlE/HnD,qCkEgIvBvD,EAAaqD,eAAeC,WAAW,CACvC,IAAMxx0B,EAAU,CACZ,+BAA2Bku0B,EAAaqD,eAAeC,YAErD1m0B,EAAsB,CACxBZ,UAAAA,GAAAA,UACAS,WAAAA,GAAAA,YAEEK,EAAyBV,GAAAA,eAAAA,YAA2BQ,IACtDT,EAAAA,GAAAA,sBACAW,EAAsB,cAAkBhL,QAAUp4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI4K,EAAsB,cAAkBhL,SAAUA,GAGpIgL,EAAsB,aAAiBhL,QAAUp4C,OAAOw4C,OAAOx4C,OAAOw4C,OAAO,GAAI4K,EAAsB,aAAiBhL,SAAUA,GAmB9I,OAbI0/xB,EADAwuC,EAAattvB,SACGotvB,GAAoBC,GAGpBoC,GAAqBpC,GAErCA,EAAgBrt3B,SAAWqt3B,EAAgBmD,gBAAkB1xC,EAAc+a,cAAciW,uBACnD,QAApC/l2B,EAAKsj3B,EAAgBz81B,iBAA8B,IAAP7mB,OAAgB,EAASA,EAAG+m3B,eAAiBzD,EAAgBz81B,UAAUkg2B,aAAahyC,GAClIlx0B,GAAAA,GAAAA,YAAiBy/2B,EAAgBrt3B,SAASiL,WAAWvJ,SACrDkH,GAAAA,cAAiBk20B,EAAeuuC,EAAgBrt3B,UAEhDyw3B,GACA3xC,EAAcouC,eAAeuD,GAE1B3xC,EAYQiyC,CAAe1D,KACvBA,EAAgBnh3B,MAAM89B,gBAAiBqj1B,EAAgBrt3B,YC1K3D,IAAMgx3B,GAAb,0CACI,WAAY3v2B,EAAU4v2B,GAAmB,6BACrC,cAAM5v2B,EAAU4v2B,IACX/hmB,WAAa,GAClB7tQ,EAAS6v2B,aAAc/vzB,EAAAA,GAAAA,wBAAuB9/C,EAAS6v2B,aACvD,EAAKjn1B,OAAS,IAAIis0B,GAAe701B,EAAS6v2B,aAC1C,EAAKC,yBAA2B9v2B,EAAS+v2B,8BACzC/v2B,EAASuP,WAAavP,EAASuP,UAAUyg2B,qBAAuBhw2B,EAASuP,UAAUyg2B,oBAAoB,EAAKpn1B,QAC5G,EAAKgxzB,WAAa,EAAKq2B,uBACvB,EAAKr2B,YAAc,EAAKA,WAAW32mB,gBAAkB,EAAK22mB,WAAW32mB,iBARhC,EAD7C,sCAWI,WACQpkP,KAAKix3B,yBAA2Bjx3B,KAAK+pC,QAAU/pC,KAAK+pC,OAAO4yR,OAC3D38T,KAAK+pC,OAAO4yR,SACf38T,KAAKgvR,YAAc,IAAI/uR,SAAQ,SAAC+qC,GAC7BA,EAASU,aAEb,yDAjBR,kCAmBI,WAAuB,WACnB,GAAI1rC,KAAKmhB,SAASuP,UAAW,CACzB,IAAI2g2B,EAAgB50C,GAAe60C,uBAAsB,SAACrn1B,EAAWzjB,GACjE,EAAKo4Q,WAAW30P,EAAWzjB,MAI/B,OAFAxmB,KAAKux3B,mBAAmBF,GACKrx3B,KAAKwx3B,4BAA4BH,MAzB1E,4BA6BI,SAAerl3B,EAAO4Y,EAAW6s2B,GAAwB,YACrD1l1B,EAAAA,GAAAA,6BAA2B,WACnB0l1B,IACA,EAAK12B,YAAc,EAAKA,WAAW61B,cAAgB,EAAK71B,WAAW61B,aAAa5k3B,GDmJzF,SAA0Bkq2B,EAAc8a,GAC3C,GAAIA,EAAY7vC,UAAY6vC,EAAY9vC,WACpCg1B,EAAavc,cAAcjz1B,WAAWgH,GAAAA,WAAa0C,QAAQ4g3B,GAAaxg3B,eAEvE,CACD,IAAIkh3B,EAAehp3B,GAAAA,OAAUso3B,EAAYl1B,WACrC41B,GACAxb,EAAaI,WAAWob,ICzJpBC,CAAiB3l3B,EAAO,EAAKmV,WAEjC,EAAK1Y,aAAa7H,KAAKoL,GACvB4Y,EAAU7Z,WAAWvJ,SACrB,IAAIsd,EAAQ8F,EAAU7E,OAAO,EAAK8pB,eAAe9+B,WAAW,GACvD+T,IAELpW,GAAAA,UAAaoW,GACbpW,GAAAA,cAAiBsD,EAAO8S,GACxB,EAAK8/Q,WAAW,WACjB5+R,KAAK8pC,gBAAiBllB,KA3CjC,0BA6CI,SAAa9kB,GACT,OD+HD,SAA4Bkx3B,EAAalx3B,EAAS4wB,EAAW4/1B,GAEhE,OADA/j3B,EAAAA,GAAAA,eAAcyk3B,GACPZ,GAAc,CAAEpk3B,MAAOgl3B,EAAalx3B,QAASA,EAAS4wB,UAAWA,EAAW4/1B,cAAeA,IAAiBl31B,MAAK,WACpH1rB,GAAAA,QAAS,EAAMo20B,GAAaktC,EAAYY,oBClIjCC,CAAmB7x3B,KAAKmhB,SAAUrhB,EAASE,KAAK+61B,YAAY,KA9C3E,2BAgDI,SAAcj71B,GAAS,WACf8kB,EAAYlX,GAAAA,GAAAA,YAAiB5N,GAEjC,GADA8kB,EAAUnF,SAAS,eACfzf,KAAKmhB,SAASw40B,eAAiB351B,KAAKmhB,SAAS6H,MAC7ChpB,KAAK8x3B,eAAe9x3B,KAAKmhB,SAAUyD,OADvC,CAIA,IAAIqmB,EAAiBjrC,KAAKmhB,SAAS8pB,eAC/B8m1B,EAAa,WACT9m1B,GAAkBA,EAAe+m1B,eACjC,EAAK7w2B,SAASqs1B,WAAa,EAAKpi0B,oBAAoBH,EAAeR,KAAMQ,EAAe+m1B,eAE5F,EAAKhjmB,WAAWpuR,KAAK,EAAKqx3B,aAAany3B,GAClCs5B,MAAK,SAAC880B,GACP,EAAKns0B,OAAOms0B,aAAeA,EACvB,EAAK/01B,SAAS260B,WACVpz1B,GAAAA,eAAkB,EAAKyY,SAAS260B,YAChC,EAAKrz1B,aAAa7H,KAAK,EAAKugB,SAAS260B,UAAU3q1B,WAAU,SAACN,GACtD,EAAKk5B,OAAOus0B,WAAWzl2B,OAInC,EAAKgwE,uBAAuB/gF,GAC5B,EAAKgy3B,eAAe,EAAK/n1B,OAAOms0B,aAActx1B,GAAW,QAG7DqmB,EACAjrC,KAAKky3B,0BAA0B941B,MAAK,SAACpsB,GACjCA,IAAgB8hE,EAAAA,GAAAA,gBAAe9hE,MAChCoxD,QAAO,WACN2zzB,OAIJA,SAlFZ,GAA2Cpo1B,GAAAA,yBAsFrCwo1B,GAA4B,iBACrBC,GAAb,kJACI,WACI,OAAOD,OAFf,GAAoCvm1B,GAAAA,6BAKpChpB,EAAAA,GAAAA,qBAAoBuv2B,GAA2B,SAC/Czp3B,GAAAA,gBAAA,eAAgD,CAC5C6Q,KAAM,SAAUzZ,EAAS0Z,GAErB,OADA,IAAIs32B,GAAsBpo3B,GAAAA,OAAU8Q,MAAoB,IAAI822B,cAAcxw3B,GACnE,CAAEokB,4BAA4B,KCvGtC,IAAMmu2B,GAAb,0CACI,WAAYtygB,EAAOvkQ,GAAU,6BACzB,gBACKukQ,MAAQA,EACb,EAAKvkQ,SAAWA,EAChB,EAAK71G,wBAA0B,kCAC/B,EAAK2s3B,mCAAqC,IAAIC,IAAJ,WAC1C,EAAK9p3B,aAAa7H,KAAK,EAAK0x3B,mCAAoC,EAAK92wB,SAASrqG,WAAU,SAAAN,GACpF,IAAIjO,EAAUC,YAAW,WAAQgO,GAAU,EAAKyh3B,mCAAmCvx3B,UAAY,KAC/F,EAAK0H,aAAa7H,KAAK,CAAEwd,QAAS,kBAAM8f,aAAat7B,UARhC,EADjC,mDAYI,SAAqB9C,EAASe,GAC1B,OAAO,IAAII,GAAAA,kCAAkCnB,EAASE,KAAKmI,eAAe2iD,uBAAuB,8BAA8BjqD,MAbvI,8BAeI,SAAiBL,EAAGK,GAEhB,OADAb,KAAK+/W,SACE,IAjBf,kCAmBI,SAAqBv/W,EAAGK,GACpB,OAAOL,GAAKA,EAAE6c,QACVrd,KAAK+/W,SACE,IAEX,mEAAkCv/W,EAAGK,KAxB7C,8BA0BI,SAAiBL,EAAGK,GAKhB,OAHiB,GADDb,KAAKqI,eAAexH,IAEhCb,KAAKsy3B,mCAAmCvx3B,SAErC,IA/Bf,mCAiCI,SAAsBP,EAAGK,GAKrB,OAHiB,GADDb,KAAKoI,mBAAmBvH,IAEpCb,KAAKsy3B,mCAAmCvx3B,SAErC,MAtCf,GAA2Dc,GAAAA,iCAyC9C0w3B,GAAb,0CACI,WAAYj60B,GAAO,6BACf,gBACKA,MAAQA,EAFE,EADvB,+CAKI,SAAiB93C,EAAGK,GAEhB,OADAb,KAAKs4C,MAAMrzC,iBAAiBxE,KAAKT,KAAKs4C,MAAO93C,EAAG,IACzC,IAPf,8BASI,SAAiBA,EAAGK,GAEhB,OADAb,KAAKs4C,MAAMjwC,eAAe,IACnB,IAXf,mCAaI,SAAsB7H,EAAGK,GAErB,OADAb,KAAKs4C,MAAMlwC,mBAAmB,IACvB,IAff,kCAiBI,SAAqB5H,EAAGK,GACpB,OAAOL,GAAKA,EAAE6c,OACHrd,KAAKs4C,MAAMzzC,qBAAqBpE,KAAKT,KAAKs4C,MAAO93C,IAE5D,mEAAkCA,EAAGK,OArB7C,GAAwDqH,GAAAA,qBCzCxD8a,EAAAA,GAAAA,oBAAmB,yDAA2D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kDACxJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,yDAA2D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kDACxJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,2DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oDAC1JmJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,8DAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uDAC7JmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,2DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oDAC1JmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,kEAAoE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2DACjKmJ,EAAAA,GAAAA,oBAAmB,8DAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uDAC7JmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,kEAAoE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2DACjKmJ,EAAAA,GAAAA,oBAAmB,8DAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uDAC7JmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,mEAAqE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4DAClKmJ,EAAAA,GAAAA,oBAAmB,+DAAiE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wDAC9JmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,mCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4BAClImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,kCAAoC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2BACjImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,kCAAoC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2BACjImJ,EAAAA,GAAAA,oBAAmB,kCAAoC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2BACjImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,6BAA+B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sBAC5HmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,2DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oDAC1JmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,2DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oDAC1JmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,yDAA2D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kDACxJmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,4DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qDAC3JmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,sEAAwE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+DACrKmJ,EAAAA,GAAAA,oBAAmB,iCAAmC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0BAChImJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gDACtJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,oCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6BACnImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,oCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6BACnImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,mCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4BAClImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,6DAA+D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sDAC5JmJ,EAAAA,GAAAA,oBAAmB,+DAAiE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wDAC9JmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,sDAAwD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+CACrJmJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,mDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4CAClJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,oCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6BACnImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,oCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6BACnImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,4CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,qCAC3ImJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,iDAAmD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0CAChJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,qDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8CACpJmJ,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,2CACjJmJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,mCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,4BAClImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,gCACtImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iDACvJmJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,oDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,6CACnJmJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,qCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,8BACpImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,0CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mCACzImJ,EAAAA,GAAAA,oBAAmB,sCAAwC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BACrImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,iCACvImJ,EAAAA,GAAAA,oBAAmB,gDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,yCAC/ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,6CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,sCAC5ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,2CAA6C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,oCAC1ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,8CAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,uCAC7ImJ,EAAAA,GAAAA,oBAAmB,uCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,+BClXtIud,GAAAA,mBAAAA,aAAgC,CAC5B,4CAA6C,wgBAC7C,0CAA2C,sgBAC3C,4CAA6C,qfAC7C,yCAA0C,ygBAC1C,6BAA8B,yhBAC9B,iCAAkC,qdAClC,iCAAkC,qbAClC,iCAAkC,sVAClC,iCAAkC,wXAClC,+BAAgC,oVAChC,iCAAkC,uXAClC,gCAAiC,uVACjC,8BAA+B,oVAC/B,iCAAkC,+QAClC,8CAA+C,2gBAC/C,iCAAkC,iVAClC,kCAAmC,yUACnC,uCAAwC,gSACxC,qCAAsC,8RACtC,2BAA4B,ocAC5B,gCAAiC,ocACjC,+CAAgD,4mBAChD,6CAA8C,2mBAC9C,+BAAgC,qlBAChC,iCAAkC,whBAClC,8BAA+B,qiBAC/B,0BAA2B,2TAC3B,iCAAkC,gXAClC,6CAA8C,yXAC9C,0CAA2C,4XAC3C,sCAAuC,w8BACvC,sCAAuC,k9BACvC,oCAAqC,8wBACrC,gCAAiC,qaACjC,gCAAiC,saACjC,+CAAgD,6mBAChD,6CAA8C,umBAC9C,+BAAgC,miBAChC,yCAA0C,wgBAC1C,0CAA2C,sgBAC3C,oCAAqC,ygBACrC,oCAAqC,sgBACrC,iDAAkD,mZAClD,oCAAqC,kcACrC,mCAAoC,wXACpC,mCAAoC,mcACpC,+CAAgD,qZAChD,iCAAkC,gXAClC,wBAAyB,+PACzB,+BAAgC,gcAChC,+BAAgC,gcAChC,6CAA8C,ilBAC9C,2CAA4C,ilBAC5C,iCAAkC,kcAClC,iCAAkC,kcAClC,yBAA0B,+cAC1B,gCAAiC,uTACjC,gCAAiC,0PACjC,2BAA4B,0YAC5B,8BAA+B,8UAC/B,2BAA4B,opBAC5B,mCAAoC,8cACpC,mCAAoC,+bACpC,kCAAmC,kcACnC,+BAAgC,8aAChC,wBAAyB,mQACzB,+BAAgC,wTAChC,8BAA+B,4UAC/B,8BAA+B,4UAC/B,+BAAgC,ySAChC,6BAA8B,wZAC9B,6BAA8B,wZAC9B,+BAAgC,kaAChC,+BAAgC,kaAChC,0BAA2B,kQAC3B,4BAA6B,8aAC7B,iCAAkC,qaAClC,iCAAkC,qZAClC,gCAAiC,qZACjC,+BAAgC,8bAChC,gCAAiC,yRACjC,gCAAiC,+RACjC,gCAAiC,8XACjC,uCAAwC,wNACxC,wCAAyC,mYACzC,sCAAuC,uTACvC,kCAAmC,8RACnC,iCAAkC,gWAClC,gCAAiC,4TACjC,iCAAkC,6SAClC,2CAA4C,8ZAC5C,gCAAiC,6YACjC,iCAAkC,8WAClC,wCAAyC,kQACzC,0CAA2C,uZAC3C,8CAA+C,yRAC/C,gDAAiD,qOACjD,yCAA0C,0fAC1C,+CAAgD,6ZAChD,2CAA4C,6fAC5C,+CAAgD,gRAChD,qDAAsD,qQACtD,iDAAkD,yNAClD,+CAAgD,sSAChD,qDAAsD,mQACtD,iDAAkD,qNAClD,uCAAwC,iMACxC,yCAA0C,wRAC1C,wCAAyC,kUACzC,0CAA2C,+TAC3C,yCAA0C,4OAC1C,2CAA4C,2OAC5C,2CAA4C,sSAC5C,6CAA8C,qUAC9C,gDAAiD,wPACjD,sDAAuD,iOACvD,kDAAmD,2RACnD,wCAAyC,uJACzC,0CAA2C,8KAC3C,sBAAuB,gfACvB,oCAAqC,idACrC,4BAA6B,+cAC7B,kCAAmC,0YACnC,mCAAoC,+dACpC,yCAA0C,+YAC1C,8BAA+B,gbAC/B,sCAAuC,4bACvC,8BAA+B,qOAC/B,8BAA+B,gXAC/B,iCAAkC,irBAClC,+BAAgC,mSAChC,iCAAkC,qSAClC,gCAAiC,sTACjC,+BAAgC,4TAChC,gCAAiC,sfACjC,gCAAiC,mUACjC,sCAAuC,uXACvC,oCAAqC,2WACrC,qCAAsC,ocACtC,qCAAsC,kbACtC,qCAAsC,ibACtC,mCAAoC,kXACpC,oCAAqC,4cACrC,oCAAqC,wcACrC,oCAAqC,6UACrC,wCAAyC,0QACzC,sCAAuC,kcACvC,sCAAuC,icACvC,gCAAiC,kbACjC,4BAA6B,sgBAC7B,6BAA8B,wZAC9B,mCAAoC,6bACpC,wCAAyC,6dACzC,wCAAyC,+cACzC,uCAAwC,gdACxC,+BAAgC,iQAChC,qCAAsC,k6BACtC,6BAA8B,waAC9B,gCAAiC,+VACjC,oCAAqC,oeACrC,qCAAsC,2bACtC,gCAAiC,qRACjC,6BAA8B,qsBAC9B,6BAA8B,sbAC9B,4BAA6B,uaAC7B,iCAAkC,qWAClC,gCAAiC,0ZACjC,6BAA8B,6RAC9B,kCAAmC,6vBACnC,oCAAqC,2sBACrC,kCAAmC,+VACnC,iCAAkC,qRAClC,gCAAiC,wkBACjC,6BAA8B,uYAC9B,iCAAkC,kUAClC,iCAAkC,kXAClC,6BAA8B,2aAC9B,iCAAkC,mXAClC,uCAAwC,iaACxC,gCAAiC,wVACjC,+BAAgC,wwBAChC,qBAAsB,iVACtB,+BAAgC,qdAChC,qBAAsB,kNACtB,qBAAsB,6aACtB,6BAA8B,ghBAC9B,0BAA2B,oTAC3B,+BAAgC,ikBAChC,2BAA4B,0fAC5B,wBAAyB,6QACzB,gBAAiB,+PACjB,gDAAiD,wQACjD,8CAA+C,sQAC/C,+CAAgD,wQAChD,gDAAiD,wQACjD,8CAA+C,sQAC/C,+CAAgD,wQAChD,6CAA8C,uQAC9C,2CAA4C,qQAC5C,4CAA6C,uQAC7C,uCAAwC,4YACxC,yCAA0C,0XAC1C,0CAA2C,ucAC3C,2CAA4C,2XAC5C,gDAAiD,yRACjD,6CAA8C,0XAC9C,+CAAgD,kXAChD,uCAAwC,kSACxC,sCAAuC,uXACvC,uCAAwC,qRACxC,yDAA0D,kKAC1D,oBAAqB,mXACrB,wCAAyC,8cACzC,yCAA0C,0dAC1C,0CAA2C,kcAC3C,wCAAyC,meACzC,wCAAyC,wgBACzC,wCAAyC,ucACzC,wCAAyC,ygBACzC,wCAAyC,0dACzC,yCAA0C,8bAC1C,oCAAqC,oZACrC,iCAAkC,oUAClC,8BAA+B,qWAC/B,6BAA8B,6VAC9B,sCAAuC,wbACvC,6BAA8B,mSAC9B,iCAAkC,iSAClC,yBAA0B,oWAC1B,8BAA+B,gZAC/B,iCAAkC,seAClC,mCAAoC,0aACpC,0BAA2B,qXAC3B,6CAA8C,yjBAC9C,+BAAgC,oTAChC,4BAA6B,qMAC7B,6BAA8B,sMAC9B,oCAAqC,gTACrC,qCAAsC,2dACtC,0CAA2C,gRAC3C,2CAA4C,oUAC5C,gCAAiC,gsBACjC,iCAAkC,mvBAClC,oCAAqC,4WACrC,mCAAoC,wXACpC,uBAAwB,gNACxB,yBAA0B,4TAC1B,0BAA2B,kTAC3B,+BAAgC,wQAChC,2BAA4B,yaAC5B,6BAA8B,6ZAC9B,oCAAqC,yQACrC,sCAAuC,8VACvC,mCAAoC,sQACpC,qCAAsC,2UACtC,oCAAqC,sOACrC,sCAAuC,qVACvC,2CAA4C,gcAC5C,6CAA8C,4iBAC9C,yBAA0B,oOAC1B,2BAA4B,8SAC5B,wBAAyB,6NACzB,uBAAwB,2NACxB,yBAA0B,uUAC1B,kCAAmC,qYACnC,kCAAmC,onBACnC,sBAAuB,6SACvB,wBAAyB,8VACzB,wBAAyB,sWACzB,6BAA8B,8gBAC9B,6BAA8B,miBAC9B,8BAA+B,omBAC/B,6BAA8B,ijBAC9B,6BAA8B,8hCAC9B,8BAA+B,0rCAC/B,6BAA8B,2NAC9B,+BAAgC,4UAChC,4BAA6B,gOAC7B,+BAAgC,ysBAChC,mCAAoC,gOACpC,qCAAsC,gTACtC,gDAAiD,8RACjD,kDAAmD,kWACnD,qCAAsC,yOACtC,yCAA0C,4OAC1C,2CAA4C,gSAC5C,6CAA8C,0WAC9C,yBAA0B,2cAC1B,2BAA4B,meAC5B,8BAA+B,gTAC/B,gCAAiC,saACjC,+BAAgC,kRAChC,iCAAkC,0VAClC,8BAA+B,sQAC/B,gCAAiC,oVACjC,+BAAgC,+RAChC,iCAAkC,yXAClC,sCAAuC,8iBACvC,wCAAyC,2qBACzC,4BAA6B,oNAC7B,8BAA+B,wUAC/B,4BAA6B,2NAC7B,8BAA+B,wTAC/B,wBAAyB,8OACzB,6BAA8B,yPAC9B,4BAA6B,iWAC7B,yBAA0B,oNAC1B,uBAAwB,kNACxB,4BAA6B,ofAC7B,0BAA2B,2TAC3B,2BAA4B,iUAC5B,+BAAgC,weAChC,uBAAwB,wXACxB,gCAAiC,uXACjC,8BAA+B,4YAC/B,+BAAgC,oXAChC,uCAAwC,6XACxC,uCAAwC,gYACxC,oCAAqC,gYACrC,wCAAyC,uXACzC,wCAAyC,2XACzC,qCAAsC,2XACtC,6BAA8B,+XAC9B,2BAA4B,+XAC5B,4BAA6B,6XAC7B,sBAAuB,8OACvB,2BAA4B,uRAC5B,6BAA8B,itBAC9B,0BAA2B,+NAC3B,0BAA2B,oQAC3B,mCAAoC,yoBACpC,8BAA+B,qoBAC/B,2CAA4C,+eAC5C,2BAA4B,ikBAC5B,uCAAwC,gcACxC,2BAA4B,kQAC5B,iCAAkC,k6BAClC,yBAA0B,oRAC1B,4BAA6B,mUAC7B,gCAAiC,wsBACjC,iCAAkC,ijBAClC,4BAA6B,+NAC7B,yBAA0B,4uBAC1B,yBAA0B,8bAC1B,wBAAyB,uTACzB,6BAA8B,uZAC9B,4BAA6B,0ZAC7B,yBAA0B,iRAC1B,8BAA+B,6vBAC/B,gCAAiC,itBACjC,8BAA+B,8XAC/B,6BAA8B,wRAC9B,4BAA6B,odAC7B,yBAA0B,wbAC1B,6BAA8B,uTAC9B,6BAA8B,gXAC9B,yBAA0B,qYAC1B,mCAAoC,ydACpC,2BAA4B,okCAC5B,2BAA4B,wWAC5B,mCAAoC,kdACpC,gCAAiC,wRACjC,kCAAmC,qOACnC,gCAAiC,mdACjC,iCAAkC,+vBAClC,8BAA+B,sbAC/B,8BAA+B,yeAC/B,iCAAkC,8sCAClC,kCAAmC,qhBACnC,iCAAkC,4sCAClC,0BAA2B,8ZCnX/BpU,EAAAA,GAAAA,oBAAmB,oCAAoC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM420B,0BAC7Izu0B,EAAAA,GAAAA,oBAAmB,2OAAiP,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,MAAO,CAAE,WAAcuN,EAASvM,MAAMnP,MAAO,YAAe,cAAe,MAAS0b,EAASvM,MAAM232B,WAAW5G,eAAgB,oBAAsB,EAAM,YAAexk2B,EAASrM,MAAM5P,gBAAgB,gBAAiB,8DACniB6X,EAAAA,GAAAA,oBAAmB,qFAAyF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,OAAQ,qDACzN6X,EAAAA,GAAAA,oBAAmB,kGAAoG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,oBAAqBuN,EAASvM,MAAM232B,WAAW/G,YAAYl90B,UAAc,SAAY,WAAc,OAAOnnB,EAASvM,MAAM232B,WAAW/G,kBAClUzo2B,EAAAA,GAAAA,oBAAmB,uFAA2F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,QAAS,sDAC5N6X,EAAAA,GAAAA,oBAAmB,8FAAgG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,oBAAqBuN,EAASvM,MAAM232B,WAAW9G,UAAUn90B,UAAc,SAAY,WAAc,OAAOnnB,EAASvM,MAAM232B,WAAW9G,gBAC5T1o2B,EAAAA,GAAAA,oBAAmB,sCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM232B,WAAW/G,YAAYl90B,cACnKvrB,EAAAA,GAAAA,oBAAmB,kGAAoG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,0BAA2B,KAAQuN,EAASvM,MAAM432B,oBAAoBrr2B,EAASvM,MAAM0xP,eAAWn0P,UAC3S4K,EAAAA,GAAAA,oBAAmB,oCAAoC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM232B,WAAW9G,UAAUn90B,cAC/JvrB,EAAAA,GAAAA,oBAAmB,gGAAkG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,0BAA2B,KAAQuN,EAASvM,MAAM432B,oBAAoBrr2B,EAASvM,MAAM2xP,QAASplP,EAASvM,MAAM0xP,kBACtTvpP,EAAAA,GAAAA,oBAAmB,wRAAwR,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM632B,cAAiB,UAAa,WAAc,MAAO,CAAE,MAAStr2B,EAASvM,MAAMvJ,MAAO,OAAU8V,EAASvM,MAAMtJ,SAAa,QAAW,WAAc,MAAO,CAAE,UAAa6V,EAASrM,MAAM4+0B,cAAcyV,UAAW,KAAQho1B,EAASvM,MAAM0S,KAAM,MAASnG,EAASvM,MAAM5B,cAAe,OAAUmO,EAASvM,MAAM3B,eAAgB,YAAekO,EAASrM,MAAM4+0B,cAAc8V,YAAa,aAAgBro1B,EAASvM,MAAM6q1B,aAAc,iBAAmB,SAC1zB1i1B,EAAAA,GAAAA,oBAAmB,kJAAoJ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMvJ,MAAO,OAAU8V,EAASvM,MAAMtJ,OAAQ,WAAc6V,EAASvM,MAAMtJ,SAAa,MAAS,WAAc,MAAO,CAAE,mBAAoB6V,EAASvM,MAAMu+B,QAAY,QAAW,WAAc,OAAOhyB,EAASvM,MAAMgs1B,aAAgB,KAAQ,WAAc,OAAOz/0B,EAASvM,MAAMuq1B,kBACxhBpi1B,EAAAA,GAAAA,oBAAmB,uEAAyE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,IAAOuN,EAASvM,MAAM4q1B,kBAAsB,MAAS,WAAc,MAAO,CAAE,mBAAoBr+0B,EAASvM,MAAMu+B,aACnRp2B,EAAAA,GAAAA,oBAAmB,iHAAmH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,eAAgBuN,EAASvM,MAAMsQ,UAAY/D,EAASoH,SAAS,GAAGo7D,SAAStpF,OAAS,IAAQ,QAAW,WAAc,OAAQ8mB,EAASrM,MAAMmv2B,aAAahX,iBACpWlw1B,EAAAA,GAAAA,oBAAmB,6JAA+J,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,IAAOuN,EAASvM,MAAMo40B,KAAM,KAAQ7r0B,EAASvM,MAAMm40B,MAAO,MAAS5r0B,EAASvM,MAAM832B,OAAQ,OAAUvr2B,EAASvM,MAAMs40B,QAAS,MAAS/r0B,EAASvM,MAAMq40B,SAAa,IAAO,WAAc,MAAO,CAAE,qCAAsC9r0B,EAASvM,MAAMsQ,cAC/enI,EAAAA,GAAAA,oBAAmB,yBAAyB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM4y0B,mBACpIzq0B,EAAAA,GAAAA,oBAAmB,6DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,yBAA0B,KAAQuN,EAASvM,aAC/MmI,EAAAA,GAAAA,oBAAmB,8CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAM6q1B,gBAAkBt+0B,EAASvM,MAAMiz0B,oBACtL9q0B,EAAAA,GAAAA,oBAAmB,0BAA0B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMiz0B,oBACrI9q0B,EAAAA,GAAAA,oBAAmB,sDAAsD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,OAAUuN,EAASvM,MAAMtJ,SAAa,cAAiB,WAAc,OAAO6V,EAASvM,YAC3OmI,EAAAA,GAAAA,oBAAmB,sFAAsF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAQuN,EAASvM,MAAM4j2B,iBAAoB,QAAW,WAAc,OAAO,SAAU5x1B,EAAGrsB,GAAK4mB,EAASvM,MAAM0vI,YAAY/pJ,UACnSwiB,EAAAA,GAAAA,oBAAmB,qHAAyH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,qBAAsB,sEACvQ6X,EAAAA,GAAAA,oBAAmB,kCAAkC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM4j2B,sBAC7Iz71B,EAAAA,GAAAA,oBAAmB,qFAAqF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAM+se,WAAY,WAAc,WAAcxge,EAASvM,MAAM6i2B,sBACpQ161B,EAAAA,GAAAA,oBAAmB,oKAAsK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,OAAU,WAAc,MAAO,CAAE,YAAe,CAAE,MAAS,0BAA4B,MAASuN,EAASvM,MAAMnP,MAAO,YAAe0b,EAASvM,MAAMxP,cAAkB,KAAQ,WAAc,MAAO,CAAE,MAAS+b,EAASrM,MAAM5P,gBAAgBic,EAASvM,MAAMlY,KAAMykB,EAASvM,MAAM0w0B,eACnfvo0B,EAAAA,GAAAA,oBAAmB,8DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,MAASuN,EAASrM,MAAM5P,gBAAgBic,EAASvM,MAAMlY,KAAMykB,EAASvM,MAAM0w0B,eACrOvo0B,EAAAA,GAAAA,oBAAmB,yDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgBic,EAASvM,MAAMlY,KAAMykB,EAASvM,MAAM0w0B,cACrNvo0B,EAAAA,GAAAA,oBAAmB,yIAAyI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,OAAOuN,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMwO,iBAAoB,SAAY,WAAc,MAAO,CAAE,KAAQjC,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMuO,mBAAoB,KAAQhC,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMuO,0BAClapG,EAAAA,GAAAA,oBAAmB,2JAA2J,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMhS,SAAY,IAAO,WAAc,OAAOue,EAASvM,MAAMwO,gBAAmB,SAAY,WAAc,MAAO,CAAE,KAAQjC,EAASvM,MAAMuO,kBAAmB,KAAQhC,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMuO,qBAAyB,QAAW,WAAc,OAAOhC,EAASvM,MAAMxP,kBAC/gB2X,EAAAA,GAAAA,oBAAmB,8BAA8B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,oBAAuB,WAAc,OAAOuN,EAASvM,YAC/ImI,EAAAA,GAAAA,oBAAmB,eAAe,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMlY,WACvHqgB,EAAAA,GAAAA,oBAAmB,4NAAoO,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,YAAe,CAAE,MAAS,4BAA8B,MAAS,QAAS,OAAU,QAAS,QAAWuN,EAASvM,MAAMhS,QAAS,OAAU,4CAA6C,UAAaue,EAASrM,MAAMyM,kBAAkB3N,UACziBmJ,EAAAA,GAAAA,oBAAmB,+BAA+B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM4F,QAAW,KAAQ,WAAc,OAAO2G,EAASvM,MAAMlY,WACjMqgB,EAAAA,GAAAA,oBAAmB,yLAA+L,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,YAAe,CAAE,MAAS,8BAAgC,WAAa,EAAO,MAAS,QAAS,OAAU,QAAS,QAAWuN,EAASvM,MAAMhS,QAAS,UAAaue,EAASrM,MAAMyM,kBAAkB3N,UACjemJ,EAAAA,GAAAA,oBAAmB,yCAAyC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,kBAAqB,WAAc,MAAO,IAAO,IAAO,WAAc,OAAOuN,EAASvM,MAAMxM,gBACjM2U,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM+Q,YAC7H5I,EAAAA,GAAAA,oBAAmB,2GAA6G,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,WAAa,EAAO,eAAiB,EAAM,eAAiB,SACxSmJ,EAAAA,GAAAA,oBAAmB,+HAA+H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAM+v2B,gBAAoB,aAAgB,WAAc,MAAO,CAAE,OAAU,SAAU9q3B,GAAWsnB,EAASvM,MAAM+32B,oBAAoB9y3B,WACjXkjB,EAAAA,GAAAA,oBAAmB,qIAAqI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMlY,KAAM,QAAW,SAAUo/B,GAAU3a,EAASvM,MAAM4F,OAAOshB,IAAY,SAAY3a,EAASvM,MAAMzP,SAAU,QAAWgc,EAASvM,MAAMhS,UAAc,IAAO,WAAc,OAAOue,EAASvM,MAAMxM,gBAC1b2U,EAAAA,GAAAA,oBAAmB,4DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM6v2B,WAAc,QAAW,WAAc,MAAO,CAAE,KAAQtj2B,EAASvM,MAAMgw2B,mBAC9O7n2B,EAAAA,GAAAA,oBAAmB,sGAAsG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,QAAW,SAAUkoB,GAAU3a,EAASvM,MAAM4F,OAAOshB,IAAY,SAAY3a,EAASvM,MAAMzP,WAAe,IAAO,WAAc,OAAOgc,EAASvM,MAAMxM,gBAC3V2U,EAAAA,GAAAA,oBAAmB,oDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,MAAO,CAAE,OAAUuN,EAAS1e,GAAGyf,WAAWf,EAASvM,cACnMmI,EAAAA,GAAAA,oBAAmB,gEAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,oBAAuB,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMjZ,QAAS,UAAY,SACvNohB,EAAAA,GAAAA,oBAAmB,oBAAoB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMie,aAC1H9V,EAAAA,GAAAA,oBAAmB,uBAAuB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMie,aAChI9V,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMyuB,cAC3HtmB,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMiG,cAC3HkC,EAAAA,GAAAA,oBAAmB,2BAA2B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,OAAOuN,EAASvM,MAAMiG,cACvIkC,EAAAA,GAAAA,oBAAmB,qEAAuE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,iCAAkC,KAAQuN,EAASvM,aACjOmI,EAAAA,GAAAA,oBAAmB,0DAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMuL,gBAAiB,KAAQgB,EAASvM,MAAM7O,aACxNgX,EAAAA,GAAAA,oBAAmB,2dAAqe,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,cAA+C,OAA9BuN,EAASvM,MAAMqm0B,WAAsB,OAAS,GAAI,YAA6C,OAA9B95zB,EAASvM,MAAMqm0B,WAAsB,OAAS,KAAS,UAAa,WAAc,MAAO,CAAE,IAAO95zB,EAASvM,MAAM+91B,UAAW,OAAUxx1B,EAASvM,MAAMg+1B,qBAAqBtn2B,OAAQ,MAAS6V,EAASvM,MAAMg+1B,qBAAqBvn2B,QAAY,MAAS,WAAc,OAAO8V,EAASrM,MAAMmv2B,cAAiB,WAAc,WAAc,MAAO,CAAE,KAAQ9i2B,EAASvM,MAAMw+1B,WAAY,aAAgBjy1B,EAASvM,MAAMu+1B,eAAmB,QAAW,WAAc,OAAO,SAAUvs1B,EAAGrsB,GAAU4mB,EAASrM,MAAMqv2B,uBACpnChj2B,EAASvM,MAAM0nxB,YAAY11wB,EAAGrsB,KAC1B,IAAO,WAAc,MAAO,CAAE,mCAAoC4mB,EAASvM,MAAM801B,gCAC7F3s1B,EAAAA,GAAAA,oBAAmB,8cAA0d,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,cAAiBuN,EAASvM,MAAMu+1B,eAAiB,OAAS,GAAI,YAAehy1B,EAASvM,MAAMu+1B,eAAiB,OAAS,KAAS,uBAA0B,WAAc,MAAO,CAAE,WAAchy1B,EAASrM,MAAMij2B,QAAQty2B,MAAO,QAAW0b,EAASrM,MAAMij2B,QAAS,iBAAoB521B,EAASrM,MAAMij2B,QAAQ1md,iBAAkB,SAAYlwY,EAASvM,MAAMu+1B,aAAc,cAAiBhy1B,EAASrM,MAAMij2B,QAAQvv1B,cAAe,MAAS,OAAQ,OAAU,OAAQ,eAAiB,EAAO,MAAQ,EAAM,mBAAsBrH,EAASvM,MAAMg42B,QAAS,aAAgBzr2B,EAASrM,MAAMmv2B,aAAaxQ,oBACrnC121B,EAAAA,GAAAA,oBAAmB,4DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,OAAOuN,EAASrM,MAAM4+0B,cAAcm5B,6BAC1L9v2B,EAAAA,GAAAA,oBAAmB,sCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASrM,MAAMij2B,QAAQjjc,oBACvJ/3Z,EAAAA,GAAAA,oBAAmB,4CAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,OAAOuN,EAASvM,MAAMsL,UAAa,IAAO,WAAc,OAAOiB,EAASvM,MAAMml2B,eACjNh91B,EAAAA,GAAAA,oBAAmB,iKAAmK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAAS8L,KAAKC,IAAIwB,EAASvM,MAAMw1B,KAAK/+B,QAAS8V,EAASvM,MAAMsL,WAAW7U,OAAQ,OAAUqU,KAAKC,IAAIwB,EAASvM,MAAMw1B,KAAK9+B,SAAU6V,EAASvM,MAAMsL,WAAW5U,UAAc,MAAS,WAAc,MAAO,CAAE,mBAAoB6V,EAASvM,MAAMw1B,KAAK+I,aACrfp2B,EAAAA,GAAAA,oBAAmB,4KAAgL,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,eAAgBuN,EAASvM,MAAMw1B,KAAKllB,UAAY/D,EAASoH,SAAS,GAAGo7D,SAAStpF,OAAS,EAAG,qBAAsB8mB,EAASoH,SAAS,GAAGo7D,SAAStpF,OAAS,IAAQ,QAAW,WAAc,OAAO8mB,EAASrM,MAAMmv2B,aAAahX,iBACrelw1B,EAAAA,GAAAA,oBAAmB,sLAA8L,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMw1B,KAAK/+B,MAAO,OAAU8V,EAASvM,MAAMw1B,KAAK9+B,SAAa,MAAS,WAAc,MAAO,CAAE,cAAiB6V,EAASrM,MAAMqv2B,sBAAwB,OAAS,GAAI,YAAehj2B,EAASrM,MAAMqv2B,sBAAwB,OAAS,UACjhBpn2B,EAAAA,GAAAA,oBAAmB,qEAAuE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,4BAA6B,KAAQuN,EAASvM,MAAMgm1B,mBAClO790B,EAAAA,GAAAA,oBAAmB,2BAA2B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM+uE,eACtI5mE,EAAAA,GAAAA,oBAAmB,kBAAkB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMw1B,WACxHrtB,EAAAA,GAAAA,oBAAmB,8DAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,2BAA4B,KAAQuN,EAASvM,MAAMw1B,YAC1NrtB,EAAAA,GAAAA,oBAAmB,8FAA8F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMy1mB,kBAAqB,KAAQ,WAAc,OAAOlpmB,EAASvM,MAAM0S,MAAS,IAAO,WAAc,MAAO,CAAE,OAAUnG,EAASvM,MAAMsQ,SAAU,SAAY/D,EAASvM,MAAM0pB,MAAMkyG,kBACnXzzH,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMq+B,oBACjIl2B,EAAAA,GAAAA,oBAAmB,2BAA2B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMoz0B,qBACtIjr0B,EAAAA,GAAAA,oBAAmB,4EAA8E,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMm10B,aAAgB,IAAO,WAAc,MAAO,CAAE,oCAAqC5o0B,EAASvM,MAAMuvf,gBACzRpnf,EAAAA,GAAAA,oBAAmB,gDAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMk10B,oBAAuB,KAAQ,WAAc,OAAO3o0B,EAASvM,MAAM800B,kBAC5N3s0B,EAAAA,GAAAA,oBAAmB,qGAAuG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMm10B,aAAgB,IAAO,WAAc,MAAO,CAAE,oCAAqC5o0B,EAASvM,MAAMuvf,WAAe,KAAQ,WAAc,OAAOhjf,EAASvM,MAAM0pB,MAAM09yB,kBACnXj/zB,EAAAA,GAAAA,oBAAmB,iHAAmH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMjZ,OAAU,YAAe,WAAc,MAAO,YAAe,MAAS,WAAc,OAAOwlB,EAASvM,MAAMm10B,aAAgB,MAAS,WAAc,MAAO,CAAE,KAAQ5o0B,EAASvM,MAAM400B,WAAY,MAASro0B,EAASvM,MAAM6mC,iBAAqB,qBAAwB,WAAc,MAAO,CAAE,MAAS,SAAU/xB,GAAMvI,EAASvM,MAAMjZ,MAAQ+tB,UACriB3M,EAAAA,GAAAA,oBAAmB,2FAA6F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,OAAOuN,EAASvM,MAAMT,SAAY,WAAc,WAAc,MAAO,CAAE,MAASgN,EAASvM,MAAMm10B,YAAa,SAAY,8BAC5Sht0B,EAAAA,GAAAA,oBAAmB,6FAA+F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,OAAOuN,EAASvM,MAAMT,SAAY,WAAc,WAAc,MAAO,CAAE,MAASgN,EAASvM,MAAMm10B,YAAa,SAAY,8BAChTht0B,EAAAA,GAAAA,oBAAmB,kTAA0T,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,OAAOuN,EAASvM,MAAM6M,WAAW,CAAE,gBAAmB,CAAE,UAAaN,EAASrM,MAAMyM,kBAAkB3N,GAAW,SAAY,CAAE,GAAM,cAAe,UAAa,eAAgB,GAAM,WAAY,SAAYuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,GAAMA,OAAoB,WAAc,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMm10B,YAAa,SAAY,8BAC5vBht0B,EAAAA,GAAAA,oBAAmB,2BAA2B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMy1mB,uBACpIttmB,EAAAA,GAAAA,oBAAmB,oDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,gBAAmB,WAAc,OAAOuN,EAASvM,MAAMk42B,gCACvK/v2B,EAAAA,GAAAA,oBAAmB,uDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMy1mB,kBAAqB,KAAQ,WAAc,OAAOlpmB,EAASvM,MAAM0S,MAAS,MAAS,WAAc,OAAOnG,EAASvM,MAAMmsD,cACvRhkD,EAAAA,GAAAA,oBAAmB,gHAAgH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM220B,cAAiB,SAAY,WAAc,MAAO,CAAE,KAAQpq0B,EAASvM,MAAMs30B,oBAAqB,KAAQ/q0B,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMs30B,4BACnWnv0B,EAAAA,GAAAA,oBAAmB,uBAAuB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM220B,mBAChIxu0B,EAAAA,GAAAA,oBAAmB,wDAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMisR,UAAY,QAAU,qBACrM9jR,EAAAA,GAAAA,oBAAmB,uHAAuH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMy1mB,kBAAqB,QAAW,WAAc,OAAOlpmB,EAASvM,MAAMoz0B,gBAAmB,KAAQ,WAAc,OAAO7m0B,EAASvM,MAAM0S,MAAS,IAAO,WAAc,MAAO,CAAE,OAAUnG,EAASvM,MAAMsQ,SAAU,SAAY/D,EAASvM,MAAM0pB,MAAMkyG,kBAC9czzH,EAAAA,GAAAA,oBAAmB,4BAA4B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMoD,OAAU,KAAQ,WAAc,OAAOmJ,EAASvM,MAAMlY,WAC3LqgB,EAAAA,GAAAA,oBAAmB,8HAAgI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM0pB,MAAM29yB,cAAiB,YAAe,WAAc,MAAO,YAAe,MAAS,WAAc,OAAO96zB,EAASvM,MAAMm10B,aAAgB,MAAS,WAAc,MAAO,CAAE,KAAQ5o0B,EAASvM,MAAM400B,WAAY,MAASro0B,EAASvM,MAAM6mC,iBAAqB,qBAAwB,WAAc,MAAO,CAAE,MAAS,SAAU/xB,GAAM7oB,OAAOsgB,EAASvM,MAAM0pB,OAAO29yB,aAAevyzB,UACplB3M,EAAAA,GAAAA,oBAAmB,qCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAMsQ,UAAY/D,EAASvM,MAAM0pB,MAAMkyG,iBAC7KzzH,EAAAA,GAAAA,oBAAmB,mBAAmB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM800B,kBACzH3s0B,EAAAA,GAAAA,oBAAmB,sBAAsB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM800B,kBAC/H3s0B,EAAAA,GAAAA,oBAAmB,qCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMsQ,WAAa/D,EAASvM,MAAM0pB,MAAMkyG,iBAC7KzzH,EAAAA,GAAAA,oBAAmB,kDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMuR,eAAgB,KAAQhF,EAASvM,MAAMhN,YAC/MmV,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,kBAAkB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM0vK,YAC7HvnK,EAAAA,GAAAA,oBAAmB,gEAAkE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,OAAUuN,EAASvM,MAAM6i1B,kBAAsB,QAAW,WAAc,OAAOt20B,EAASvM,MAAM8i1B,qBAC3P360B,EAAAA,GAAAA,oBAAmB,wCAA4C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMrN,KAAM,MAAS4Z,EAASvM,MAAMjZ,aAC5LohB,EAAAA,GAAAA,oBAAmB,8TAAgU,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAM45wB,WAAY,OAAUrtwB,EAASvM,MAAM28W,YAAa,MAASpwW,EAASvM,MAAMqj1B,gBAAiB,QAAW920B,EAASvM,MAAM+U,aAAc,iBAAmB,EAAM,aAAgBxI,EAASvM,MAAMij1B,aAAc,YAAe,CAAE,MAAS,0CAA4C,UAAa120B,EAASrM,MAAMyM,kBAAkB3N,GAAW,SAAY,CAAE,GAAMuN,EAASrM,MAAMyM,kBAAkB3N,WACnzBmJ,EAAAA,GAAAA,oBAAmB,6IAAiJ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,gDAAiD,mEAC1T6X,EAAAA,GAAAA,oBAAmB,4BAA4B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMmj1B,yBACpIh70B,EAAAA,GAAAA,oBAAmB,oJAAwJ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMkj1B,sBAAyB,KAAQ,WAAc,OAAO320B,EAASrM,MAAM5P,gBAAgB,yBAA0B,oEAChX6X,EAAAA,GAAAA,oBAAmB,6BAA6B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMoj1B,0BACrIj70B,EAAAA,GAAAA,oBAAmB,gCAAgC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMmj1B,yBACtIh70B,EAAAA,GAAAA,oBAAmB,iCAAiC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMoj1B,0BACvIj70B,EAAAA,GAAAA,oBAAmB,uGAA2G,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,iBAAkB,4DACrP6X,EAAAA,GAAAA,oBAAmB,gKAAoK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,WAAa,EAAO,eAAiB,EAAM,cAAiB,SAAUrZ,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,WAChZ7B,EAAAA,GAAAA,oBAAmB,qDAAqD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,4BAA+B,WAAc,OAAOuN,EAASvM,MAAM6H,qBACpLM,EAAAA,GAAAA,oBAAmB,qCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,MAAO,CAAE,OAAUuN,EAASvM,MAAM7O,aACnKgX,EAAAA,GAAAA,oBAAmB,qfAA2f,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,OAAU,WAAc,MAAO,CAAE,YAAe,CAAE,MAAS,sFAAwF,SAAYuN,EAASvM,MAAMzP,WAAY,MAASgc,EAASvM,MAAMnP,MAAO,SAAY,uBAAwB,YAAe0b,EAASvM,MAAMxP,YAAa,iBAAoB+b,EAASvM,MAAM0vsB,cAAcl1T,iBAAiBjuY,EAASrM,MAAMyM,kBAAkB3N,GAAWA,GAAW,eAAkBuN,EAASvM,MAAM0vsB,cAAcj1T,eAAgB,gBAAmBluY,EAASvM,MAAM0vsB,cAAch1T,gBAAiB,eAAkBnuY,EAASvM,MAAM0vsB,cAAc3wY,eAAgB,SAAY,YACnqC52T,EAAAA,GAAAA,oBAAmB,sFAAsF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,OAAOuN,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMwO,iBAAoB,SAAY,WAAc,OAAOjC,EAAS1e,GAAGygB,OAAO/B,EAASvM,MAAMuO,yBACvSpG,EAAAA,GAAAA,oBAAmB,aAAa,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM7O,YACnHgX,EAAAA,GAAAA,oBAAmB,+RAAmS,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAO,SAAUa,EAAGF,GAAS4M,EAASvM,MAAMmsD,QAAQxsD,GAAQA,EAAMpT,oBAAyB,MAAS,WAAc,MAAO,CAAE,IAAOggB,EAASvM,MAAMo40B,KAAM,KAAQ7r0B,EAASvM,MAAMm40B,MAAO,MAAS5r0B,EAASvM,MAAM832B,OAAQ,OAAUvr2B,EAASvM,MAAMs40B,QAAS,MAAS/r0B,EAASvM,MAAMq40B,SAAa,IAAO,WAAc,MAAO,CAAE,qCAAsC9r0B,EAASvM,MAAMsQ,OAAQ,wCAA0C/D,EAASvM,MAAM0y0B,cACxyBvq0B,EAAAA,GAAAA,oBAAmB,mUAA2U,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,sCAAuCuN,EAASvM,MAAM8y0B,WAAWqjB,aAAc,mCAAoC5p1B,EAASvM,MAAM8y0B,WAAW3gU,SAAU,sCAAuC5lgB,EAASvM,MAAM8y0B,WAAW3gU,UAAyD,IAA7C5lgB,EAASvM,MAAM8y0B,WAAW3gU,SAASryB,MAAa,qCAAsCvze,EAASvM,MAAM8y0B,WAAW3gU,UAAyD,IAA7C5lgB,EAASvM,MAAM8y0B,WAAW3gU,SAASryB,aACxyB33e,EAAAA,GAAAA,oBAAmB,4NAAgO,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,aAAcuN,EAAStN,QAAQk52B,2BAA2B5r2B,EAASvM,MAAMw1Q,aAAiB,QAAW,WAAc,OAAOjpQ,EAASvM,MAAM632B,cAAiB,uBAAwB,WAAc,MAAO,CAAE,KAAQtr2B,EAASvM,MAAO,QAAWuM,EAAStN,QAAS,MAAS,SAAUu2Q,GAAajpQ,EAAStN,QAAQiz0B,SAAS18jB,WACnnBrtQ,EAAAA,GAAAA,oBAAmB,qFAAyF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMvJ,QAAU,EAAG,OAAU8V,EAASvM,MAAMtJ,SAAW,IAAQ,QAAW,WAAc,OAAO6V,EAASvM,MAAMgs1B,kBACzT7j1B,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,WAAcuN,EAASvM,MAAMtJ,SAAW,WACzLyR,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMuq1B,kBAC7Hpi1B,EAAAA,GAAAA,oBAAmB,8FAAgG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,IAAOuN,EAASvM,MAAM4q1B,gBAAiB,IAAOr+0B,EAAStN,QAAQk52B,2BAA2B5r2B,EAASvM,MAAMw1Q,kBACpSrtQ,EAAAA,GAAAA,oBAAmB,kEAAkE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,4BAA+B,WAAc,OAAOuN,EAASvM,MAAMys1B,kCACjMtk1B,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM8y0B,iBAC9H3q0B,EAAAA,GAAAA,oBAAmB,4BAA4B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMgr1B,sBACvI7i1B,EAAAA,GAAAA,oBAAmB,gEAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,4BAA6B,KAAQuN,EAASvM,aACrNmI,EAAAA,GAAAA,oBAAmB,kDAAkD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMoz0B,gBAAmB,IAAO,WAAc,OAAO7m0B,EAASvM,MAAMw50B,uBAC3Nrx0B,EAAAA,GAAAA,oBAAmB,iCAAiC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,OAAOuN,EAASvM,MAAMo42B,mBAC9Ijw2B,EAAAA,GAAAA,oBAAmB,6xBAAqyB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMqS,YAAYojmB,iBAAiBh/mB,MAAO,OAAU8V,EAASvM,MAAMqS,YAAYojmB,iBAAiB/+mB,OAAQ,SAAY,CAAE,SAAY6V,EAASrM,MAAMyM,kBAAkB3N,GAAW,GAAMuN,EAASvM,MAAM060B,kBAAkB170B,GAAW,UAAa,mBAAqB,UAAauN,EAASrM,MAAMyM,kBAAkB3N,GAAW,WAAa,EAAO,OAAUuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,gBAAkB,EAAO,oBAAsB,EAAM,iBAAmB,EAAO,eAAkBuN,EAASvM,MAAMgW,eAAgB,SAAYzJ,EAASvM,MAAMkW,SAAU,QAAW3J,EAASvM,MAAMmW,QAAS,QAAW5J,EAASvM,MAAMogO,QAAS,YAAe,CAAE,MAAS,0EAA4E,UAAa,CAAE,KAAQ,CAAE,KAAQ,QAAS,SAAY,EAAG,GAAM,CAAE,QAAW,GAAK,KAAQ,CAAE,QAAW,IAAO,KAAQ,CAAE,KAAQ,OAAQ,SAAY,IAAK,GAAM,CAAE,QAAW,GAAK,KAAQ,CAAE,QAAW,KAAS,QAAW7zN,EAASvM,MAAMutL,UAAUvuL,UAC71DmJ,EAAAA,GAAAA,oBAAmB,8EAAgF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,2BAA4B,KAAQuN,EAASvM,MAAMq42B,sBAC1Olw2B,EAAAA,GAAAA,oBAAmB,mBAAmB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM260B,kBACzHxy0B,EAAAA,GAAAA,oBAAmB,8FAA8F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMuL,gBAAiB,KAAQgB,EAASvM,MAAMqS,YAAa,YAAe9F,EAASvM,MAAM860B,uBACvS3y0B,EAAAA,GAAAA,oBAAmB,8hBAA4iB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMu02B,UAAW,MAASho2B,EAASvM,MAAM0S,KAAM,YAAenG,EAASvM,MAAM0Q,YAAa,oBAAsB,EAAM,mBAAqB,EAAM,qBAAwBnE,EAASvM,MAAM4S,qBAAsB,oBAAsB,EAAM,MAAS,IAAK,gBAAmB,CAAE,UAAarG,EAASrM,MAAMyM,kBAAkB3N,GAAW,SAAY,CAAE,GAAM,WAAY,GAAM,cAAe,GAAMA,GAAY,YAAe,CAAE,MAAS,oCAAuC,SAAY,KAAM,UAAa,CAAE,aAAcuN,EAASrM,MAAM5P,gBAAgB,OAAQ,uEACpsC6X,EAAAA,GAAAA,oBAAmB,wLAA8L,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,UAAa,aAAc,WAAa,EAAO,eAAiB,EAAM,cAAiB,SAAUrZ,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,WACrc7B,EAAAA,GAAAA,oBAAmB,kFAAkF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,OAAOuN,EAASvM,MAAMyP,aAAgB,4BAA+B,WAAc,OAAOlD,EAASvM,MAAM6H,qBACvRM,EAAAA,GAAAA,oBAAmB,qFAAqF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMsQ,UAAY/D,EAASvM,MAAMhS,WAAc,4BAA+B,WAAc,OAAOue,EAASvM,MAAM6H,qBAC5SM,EAAAA,GAAAA,oBAAmB,oFAAwF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,SAAU,iDAC1N6X,EAAAA,GAAAA,oBAAmB,+JAAyK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,MAAO,CAAE,YAAeuN,EAASvM,MAAO,UAAa,CAAE,KAAQ,SAAU,MAASuM,EAASrM,MAAM5P,gBAAgB,SAAU,mDAChY6X,EAAAA,GAAAA,oBAAmB,iRAAyR,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,SAAYuN,EAASvM,MAAMyh2B,qBAAsB,KAAQl11B,EAASvM,MAAMottB,UAAY7gtB,EAASrM,MAAM5P,gBAAgB,OAAQ,+CAAiDic,EAASrM,MAAM5P,gBAAgB,SAAU,iDAAkD,QAAWic,EAASvM,MAAMui2B,yBACzpBp61B,EAAAA,GAAAA,oBAAmB,uHAA2H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,WAAc,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMwg1B,UAAW,KAAQj00B,EAASrM,MAAM5P,gBAAgB,aAAc,gDACpT6X,EAAAA,GAAAA,oBAAmB,4IAAgJ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,WAAc,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMyg1B,eAAgB,KAAQl00B,EAASrM,MAAM5P,gBAAgB,wBAAyB,qDACzV6X,EAAAA,GAAAA,oBAAmB,6FAAmG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,GAAMuN,EAASvM,MAAMih2B,qBAAsB,YAAa101B,EAASvM,MAAMottB,UAAY,OAAS,eAC1RjltB,EAAAA,GAAAA,oBAAmB,iCAAiC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMuh2B,wBACzIp51B,EAAAA,GAAAA,oBAAmB,4FAAgG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,aAAc,qDACtO6X,EAAAA,GAAAA,oBAAmB,qCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMwh2B,4BAC7Ir51B,EAAAA,GAAAA,oBAAmB,0FAA8F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,QAAS,wDAC/N6X,EAAAA,GAAAA,oBAAmB,+CAA+C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,gBAAmB,WAAc,MAAO,CAAE,QAAWuN,EAASvM,MAAMottB,eAC/KjltB,EAAAA,GAAAA,oBAAmB,yFAA2F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,qBAAwB,WAAc,MAAO,CAAE,KAAQ,8BAA+B,QAAWuN,EAASvM,MAAMqh2B,cACvQl51B,EAAAA,GAAAA,oBAAmB,6FAA+F,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,qBAAwB,WAAc,MAAO,CAAE,KAAQ,gCAAiC,QAAWuN,EAASvM,MAAMsh2B,gBAC7Qn51B,EAAAA,GAAAA,oBAAmB,mRAA2R,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,OAAU,WAAc,MAAO,CAAE,WAAcuN,EAASvM,MAAM6g2B,uBAAwB,aAAgB,eAAgB,mBAAqB,EAAO,mBAAqB,EAAO,eAAkBt01B,EAASvM,MAAM++T,eAAgB,WAAc,GAAI,kBAAoB,EAAM,OAAU,QAAY,KAAQ,WAAc,MAAO,CAAE,kBAAmBxyT,EAASvM,MAAMih2B,4BACzrB941B,EAAAA,GAAAA,oBAAmB,mQAA2Q,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAO,OAAUuM,EAAStN,QAAQmsd,kBAAsB,KAAQ,WAAc,MAAO,CAAE,aAAc7+c,EAASvM,MAAMhN,KAAKlL,KAAO,KAAOykB,EAASrM,MAAM2B,GAAGulD,QAAQuszB,mBAAmBpn2B,EAASvM,MAAMhN,MAAQ,MAAQuZ,EAAStN,QAAQsg2B,eAAej02B,QAAQihB,EAASvM,MAAMhN,MAAQ,GAAK,OAASuZ,EAAStN,QAAQsg2B,eAAe952B,cAC5rB0iB,EAAAA,GAAAA,oBAAmB,yBAAyB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMhN,KAAKlL,WACtIqgB,EAAAA,GAAAA,oBAAmB,yDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM2B,GAAGulD,QAAQuszB,mBAAmBpn2B,EAASvM,MAAMhN,YAC9MmV,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMw/1B,qBAChIr31B,EAAAA,GAAAA,oBAAmB,wGAAwG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMhS,SAAY,IAAO,WAAc,OAAOue,EAASvM,MAAM6R,YAAe,4BAA+B,WAAc,OAAOtF,EAASvM,MAAMix1B,+BAC5V9o1B,EAAAA,GAAAA,oBAAmB,wCAA0C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMqnf,WAAa,WAC3Kl/e,EAAAA,GAAAA,oBAAmB,2HAA2H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMghY,YAAe,QAAW,WAAc,OAAOz0X,EAASvM,MAAM+w1B,eAAkB,SAAY,WAAc,MAAO,CAAE,MAASxk1B,EAASvM,MAAO,OAAU,WAAcuM,EAASvM,MAAMN,MAAQ6M,EAASvM,MAAMN,eAC7ayI,EAAAA,GAAAA,oBAAmB,mHAAuH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,qBAAsB,oEACrQ6X,EAAAA,GAAAA,oBAAmB,oIAAwI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,8CAA+C,4DAC/S6X,EAAAA,GAAAA,oBAAmB,yOAA6O,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,WAAa,EAAO,eAAiB,EAAM,cAAiB,SAAUrZ,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,MAAgB,kBAAqB,WAAc,MAAO,IAAO,4BAA+B,WAAc,OAAOuC,EAASvM,MAAM6H,qBAC7lBM,EAAAA,GAAAA,oBAAmB,yDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,gBAAmB,WAAc,MAAO,CAAE,QAAWuN,EAASvM,MAAM7O,MAAM672B,yBAC/L7k2B,EAAAA,GAAAA,oBAAmB,6IAAiJ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASrM,MAAM5P,gBAAgB,QAAS,6CAA8C,QAAW,WAAcic,EAASvM,MAAM7O,MAAMy6mB,kBAC5XzjmB,EAAAA,GAAAA,oBAAmB,qKAAyK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASrM,MAAM5P,gBAAgB,SAAU,8CAA+C,QAAW,SAAU42B,GAAU3a,EAASvM,MAAM7O,MAAMo82B,kBAAkBrm1B,WAC9a/e,EAAAA,GAAAA,oBAAmB,wqBAAwrB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,MAAO,CAAE,WAAcuN,EAASvM,MAAMo02B,UAAW,MAAS7n2B,EAASvM,MAAMzN,aAAc,OAAUga,EAASvM,MAAMm7W,OAAQ,YAAe5uW,EAASvM,MAAM0Q,YAAa,oBAAsB,EAAM,WAAcnE,EAASvM,MAAMi+R,SAAU,QAAW1xR,EAASvM,MAAMs02B,MAAO,aAAgB/n2B,EAASvM,MAAM0R,aAAc,WAAcnF,EAASvM,MAAM+9D,WAAY,cAAiBxxD,EAASvM,MAAM2b,cAAe,cAAiBpP,EAASvM,MAAM0+F,cAAe,SAAYnyF,EAASvM,MAAMzP,SAAU,gBAAmB,CAAE,UAAagc,EAASrM,MAAMyM,kBAAkB3N,GAAW,YAAe,CAAE,MAAS,kCAAmC,aAAcuN,EAASrM,MAAM5P,gBAAgB,QAAS,kEAAqE,SAAY,KAAM,UAAa,CAAE,aAAcic,EAASrM,MAAM5P,gBAAgB,QAAS,wEAC9kD6X,EAAAA,GAAAA,oBAAmB,mHAAuH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASrM,MAAM5P,gBAAgB,eAAgB,0EAC/P6X,EAAAA,GAAAA,oBAAmB,oNAAwN,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,WAAa,EAAO,eAAiB,EAAM,cAAiB,SAAUrZ,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,MAAgB,4BAA+B,WAAc,OAAOuC,EAAStN,QAAQ4I,qBACzhBM,EAAAA,GAAAA,oBAAmB,gCAAgC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,OAAOuN,EAASvM,MAAM481B,yBAC5Iz01B,EAAAA,GAAAA,oBAAmB,8CAA8C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAMuh2B,oBAAsB,GAAKh11B,EAASvM,MAAMottB,gBAC/LjltB,EAAAA,GAAAA,oBAAmB,uDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAM2g2B,mBAA2D,GAAtCp01B,EAASvM,MAAMuh2B,0BAClMp51B,EAAAA,GAAAA,oBAAmB,mCAAmC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAM7O,QAAUob,EAASvM,MAAM7O,MAAMmpC,gBACzKnyB,EAAAA,GAAAA,oBAAmB,mCAAmC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAASuN,EAASvM,MAAM7O,OAASob,EAASvM,MAAM7O,MAAMmpC,gBACzKnyB,EAAAA,GAAAA,oBAAmB,uEAAyE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,sBAAuB,KAAQuN,EAASvM,MAAMuH,oBAC9NY,EAAAA,GAAAA,oBAAmB,iCAAmC,WAAc,MAAO,CAAEwJ,WAAY,CAAEhf,KAAM,aACjGwV,EAAAA,GAAAA,oBAAmB,yHAA6H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM8+0B,cAAc+V,gBAAmB,SAAY,WAAc,MAAO,CAACto1B,EAASvM,MAAMgO,UAAW,CAAE,SAAUzB,EAASvM,MAAMiO,IAAK,UAAW1B,EAASvM,MAAMiO,YAC/X9F,EAAAA,GAAAA,oBAAmB,gHAAoH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,WAAc,aAAmC,IAAO,WAAc,MAAO,CAAE,SAAUuN,EAASvM,MAAMi01B,UAAW,mCAAoC1n1B,EAASvM,MAAM801B,gCACtV3s1B,EAAAA,GAAAA,oBAAmB,iEAAiE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,4BAA+B,WAAc,OAAOuN,EAASvM,MAAMk21B,iCAChM/t1B,EAAAA,GAAAA,oBAAmB,yPAAyP,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,UAAauN,EAAStN,QAAQs11B,UAAW,KAAQho1B,EAASvM,MAAM0S,KAAM,MAASnG,EAASvM,MAAM5B,cAAe,OAAUmO,EAASvM,MAAM3B,eAAgB,gBAAmBkO,EAASrM,MAAM0R,SAASnb,MAAO,YAAe8V,EAAStN,QAAQ211B,YAAa,aAAgBro1B,EAASvM,MAAM6q1B,eAAmB,UAAa,WAAc,MAAO,CAAE,MAASt+0B,EAASvM,MAAMvJ,MAAO,OAAU8V,EAASvM,MAAMtJ,cAC1tByR,EAAAA,GAAAA,oBAAmB,gFAAgF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,WAAc,WAAc,MAAO,CAAE,QAAWuN,EAASvM,MAAMoy0B,qBAAsB,eAAkB7l0B,EAASvM,MAAM201B,qBAClQxs1B,EAAAA,GAAAA,oBAAmB,mIAAyI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMvJ,QAAS,OAAU8V,EAASvM,MAAMtJ,WAAe,OAAU,WAAc,MAAO,CAAE,OAAU6V,EAASvM,MAAMsQ,SAAa,IAAO,WAAc,MAAO,CAAE,6BAA8B/D,EAASvM,MAAMsQ,cACpcnI,EAAAA,GAAAA,oBAAmB,kDAAoD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,uBAAwBuN,EAASvM,MAAMqy0B,qBACrLlq0B,EAAAA,GAAAA,oBAAmB,gCAAgC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMi11B,6BACxI9s1B,EAAAA,GAAAA,oBAAmB,qHAA2H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,aAAcuN,EAASrM,MAAM5P,gBAAgB,YAAa,8DAChR6X,EAAAA,GAAAA,oBAAmB,yBAAyB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,OAAOuN,EAASvM,YACrImI,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMgm1B,kBAC7H790B,EAAAA,GAAAA,oBAAmB,yCAA2C,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,kCACxImJ,EAAAA,GAAAA,oBAAmB,+BAA+B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAQuN,EAASvM,MAAMoy0B,6BACtIjq0B,EAAAA,GAAAA,oBAAmB,qBAAqB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMqy0B,kBAC7Hlq0B,EAAAA,GAAAA,oBAAmB,8DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMgs1B,gBAAmBz/0B,EAASvM,MAAMgs1B,eAAiBz/0B,EAASvM,MAAM4q1B,wBACtOzi1B,EAAAA,GAAAA,oBAAmB,8FAAgG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,oBAAqB,YAAe,WAAcuN,EAAStN,QAAQ2y0B,sBAC1Qzp0B,EAAAA,GAAAA,oBAAmB,iDAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMoy0B,0BAA4B7l0B,EAASvM,MAAMqy0B,oBAClMlq0B,EAAAA,GAAAA,oBAAmB,oFAAoF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAM8hlB,MAAO,YAAe,WAAcv1kB,EAAStN,QAAQ9N,MAAMyg1B,sBACpQzp0B,EAAAA,GAAAA,oBAAmB,wEAAwE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,GAAMuN,EAASvM,MAAMgs1B,gBAAmBz/0B,EAASvM,MAAMgs1B,eAAiBz/0B,EAASvM,MAAM4q1B,yBAC1Pzi1B,EAAAA,GAAAA,oBAAmB,iCAAmC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,0BAChImJ,EAAAA,GAAAA,oBAAmB,wRAA0R,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,OAAU,SAAU/Z,GAAWsnB,EAASvM,MAAM+J,UAAY9kB,KAAiB,iBAAoB,WAAc,MAAO,CAAE,MAASsnB,EAASvM,MAAMgx2B,aAAc,UAAY,EAAM,UAAa,CAAE,aAAczk2B,EAAStN,QAAQ5K,YAAa,GAAMkY,EAASvM,MAAMs42B,gBAAkB,kBAAoB,EAAM,aAAgB,WAAc/r2B,EAASvM,MAAMu42B,qBACptBpw2B,EAAAA,GAAAA,oBAAmB,kdAA8d,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,MAAS,cAAe,OAAUuN,EAASrM,MAAMpZ,wBAAwB,KAAM,YAAe,CAAE,MAAS,uCAAyC,SAAY,CAAE,GAAM,YAAa,GAAM,eAAgB,GAAMylB,EAASvM,MAAM+J,UAAW,UAAa,UAAW,OAAU,QAAU,UAAawC,EAASrM,MAAMyM,kBAAkB3N,GAAW,OAAUuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,WAAa,EAAO,iBAAmB,EAAO,oBAAsB,EAAM,UAAa,GAAI,SAAW,EAAO,QAAWuN,EAASvM,MAAMsw2B,qBACvkCno2B,EAAAA,GAAAA,oBAAmB,kKAAwK,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,cAAiB,SAAU,UAAa,aAAc,WAAa,EAAO,cAAiB,SAAUrZ,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,WACvZ7B,EAAAA,GAAAA,oBAAmB,2DAA2D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,4BAA+B,WAAc,OAAOuN,EAASvM,MAAMw42B,2BAC1Lrw2B,EAAAA,GAAAA,oBAAmB,kbAA4b,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,aAAcuN,EAASrM,MAAM5P,gBAAgB,qBAAsB,sEAA0E,4BAA+B,WAAc,OAAOic,EAASvM,MAAMw42B,qBAAqBf,oCAAuC,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,iBAAmB,EAAO,eAAiB,EAAO,WAAa,EAAO,eAAiB,EAAM,cAAiB,SAAU9x3B,GAAKA,EAAE6tB,UAAUxJ,OAAO,eAAe,WACrgC7B,EAAAA,GAAAA,oBAAmB,8MAAkN,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,gBAAiBuN,EAAStN,QAAQsnY,YAAYh6X,EAASvM,SAAa,IAAO,WAAc,MAAO,CAAE,qBAAsBuM,EAAStN,QAAQsnY,YAAYh6X,EAASvM,SAAa,SAAY,WAAc,MAAO,CAAE,MAASuM,EAASvM,MAAO,OAAU,WAAcuM,EAAStN,QAAQgy2B,UAAU1k2B,EAASvM,MAAMmxE,SAAS,WAC/lBhpE,EAAAA,GAAAA,oBAAmB,uFAAyF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,WAAc,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMjZ,MAAO,aAAgB,cAAe,OAAUwlB,EAASvM,MAAMtJ,OAAQ,IAAO6V,EAASvM,MAAMiL,WAC/S9C,EAAAA,GAAAA,oBAAmB,uDAAyD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,oBAAqBuN,EAAStN,QAAQu5P,QAAQjsP,EAASvM,MAAMqpB,aAChNlhB,EAAAA,GAAAA,oBAAmB,gDAAgD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,oBAAuB,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMjZ,eAClLohB,EAAAA,GAAAA,oBAAmB,uDAAuD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMy42B,cAAe,KAAQls2B,EAASvM,MAAM232B,kBACnNxv2B,EAAAA,GAAAA,oBAAmB,qCAAuC,WAAc,MAAO,CAAEwJ,WAAY,CAAEhf,KAAM,oBACrGwV,EAAAA,GAAAA,oBAAmB,+KAAqL,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQ,wBAAyB,KAAQuN,EAASvM,MAAMqN,YAAgB,IAAO,WAAc,MAAO,CAAE,0BAA2Bd,EAASvM,MAAMy+0B,WAAY,6BAA8Bly0B,EAASvM,MAAM2+0B,wBAC7dx20B,EAAAA,GAAAA,oBAAmB,u+BAA2/B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,OAAOuN,EAAStN,QAAQ4N,WAAW,CAAE,WAAcN,EAASvM,MAAMwQ,WAAY,eAAiB,EAAM,oBAAsB,EAAM,WAAcjE,EAASvM,MAAM49D,YAAc,CAAC,gBAAiB,MAASrxD,EAASvM,MAAMjZ,MAAO,YAAewlB,EAASvM,MAAM0Q,aAAe,eAAgB,UAAanE,EAASvM,MAAMmwD,WAAa,QAAS,WAAa,EAAO,uBAAyB,EAAM,qBAAwB5jD,EAASvM,MAAM0rX,mBAAoB,cAAiB,WAAY,cAAiBn/W,EAASvM,MAAM+Z,cAAe,UAAa,CAAE,aAAcxN,EAAStN,QAAQ5K,YAAa,GAAMkY,EAAStN,QAAQ2N,eAAiB,SAAYL,EAAStN,QAAQ1O,SAAU,cAAiBgc,EAASrM,MAAM5P,gBAAgB,aAAc,mCAAoC,YAAeic,EAASrM,MAAM2B,GAAGulD,QAAQC,oBAAqB,iBAAoB96C,EAASvM,MAAM6pc,iBAAkB,kBAAoB,EAAM,gBAAmB,CAAE,UAAat9b,EAASrM,MAAMyM,kBAAkB3N,GAAW,SAAY,CAAE,SAAYuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,UAAa,kBAAmB,GAAMA,EAAU,GAAM,SAAU,GAAM,WAAiB,YAAe,WAAc,MAAO,CAAE,gBAAmBuN,EAAStN,QAAQmO,iBAAmB,UACxxEjF,EAAAA,GAAAA,oBAAmB,oHAAoH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,mBAAsB,WAAc,MAAO,CAAE,OAAUuN,EAASvM,MAAMjZ,MAAO,KAAQwlB,EAASvM,MAAM+T,KAAM,MAASxH,EAASvM,MAAMuN,MAAO,YAAehB,EAASrM,MAAM5P,gBAAgBic,EAASvM,MAAM3L,oBACtX8T,EAAAA,GAAAA,oBAAmB,8DAA8D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,eAAkB,WAAc,MAAO,CAAE,OAAUuN,EAASvM,MAAMjZ,MAAO,MAASwlB,EAASvM,MAAM2H,OAAO4F,MAAQ,SAC1OpF,EAAAA,GAAAA,oBAAmB,aAAa,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMjZ,YACnHohB,EAAAA,GAAAA,oBAAmB,8EAA8E,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,aAAgB,WAAc,MAAO,CAAE,UAAauN,EAASvM,MAAMtR,UAAW,WAAc6d,EAASvM,MAAMrR,kBACrPwZ,EAAAA,GAAAA,oBAAmB,wDAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,oBAAqBuN,EAASvM,MAAMu+0B,wBACxLp20B,EAAAA,GAAAA,oBAAmB,gYAAgZ,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,KAAQ,WAAY,GAAMuN,EAASvM,MAAMqU,iBAAmB9H,EAASvM,MAAMiT,SAAU,YAAa1G,EAASvM,MAAMqU,iBAAmB9H,EAASvM,MAAMgT,UAAW,gBAAiBzG,EAASvM,MAAMqU,kBAAoB9H,EAASvM,MAAMrR,eAAiB4d,EAASvM,MAAMtR,YAAc,OAAS,WAAe,IAAO,WAAc,MAAO,CAAE,8EAA+E6d,EAASvM,MAAMqU,gBAAiB,sBAAuB9H,EAASvM,MAAMihB,eAAiB1U,EAASvM,MAAMihB,cAAcuo1B,wBACn/Brh2B,EAAAA,GAAAA,oBAAmB,4LAAoM,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,OAAOuN,EAASvM,MAAMsT,SAAY,IAAO,WAAc,MAAO,CAAE,qBAAsD,mBAAhC/G,EAASvM,MAAM2N,aAAmC,qBAAsBpB,EAASvM,MAAMq+0B,aAAc,qCAAsC9x0B,EAASvM,MAAMrR,oBAC3gBwZ,EAAAA,GAAAA,oBAAmB,gLAAwL,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM3L,aAAgB,KAAQ,WAAc,MAAO,CAAE,MAASkY,EAASvM,MAAM3L,YAAa,IAAOkY,EAASvM,MAAM4M,gBAAoB,IAAO,WAAc,MAAO,CAAE,uBAAwBL,EAASvM,MAAMsU,aAAiB,MAAS,WAAc,MAAO,CAAE,WAAc/H,EAASvM,MAAMuU,qBAAuB,OAAS,UACjlBpM,EAAAA,GAAAA,oBAAmB,iCAAiC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMu+0B,uBAC1Ip20B,EAAAA,GAAAA,oBAAmB,6BAA6B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAMrR,mBACtIwZ,EAAAA,GAAAA,oBAAmB,uBAAuB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMwo0B,QAAQ/hnB,YACvIt+M,EAAAA,GAAAA,oBAAmB,8nBAA8oB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,MAAS,GAAI,OAAU,OAAQ,YAAe,CAAE,MAAS,6BAA+B,SAAY,CAAE,GAAM,WAAY,GAAM,YAAa,SAAYuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,GAAMuN,EAASvM,MAAMhB,SAAU,UAAa,UAAW,OAAU,QAAU,UAAauN,EAASvM,MAAM8n0B,iBAAmB,+DAAiEv7zB,EAASrM,MAAMyM,kBAAkB3N,GAAW,OAAUuN,EAASrM,MAAMyM,kBAAkB3N,GAAW,WAAa,EAAO,eAAkB,SAAUrZ,GAAKA,EAAE6tB,WAAa7tB,EAAE6tB,UAAU+gV,mBAAmB,OAAO,SAAU10V,GAAK0M,EAASvM,MAAMsQ,QAAO,OAAe,iBAAmB,EAAO,UAAa,GAAI,SAAW,EAAO,QAAW/D,EAASvM,MAAMsQ,cACj8CnI,EAAAA,GAAAA,oBAAmB,0BAA0B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM2F,cACrIwC,EAAAA,GAAAA,oBAAmB,iDAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM4F,QAAW,KAAQ,WAAc,MAAO,CAAE,MAAS2G,EAASvM,MAAM+Q,aAC9N5I,EAAAA,GAAAA,oBAAmB,gEAAgE,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAM8E,KAAM,YAAeyH,EAASvM,MAAM860B,uBAC1N3y0B,EAAAA,GAAAA,oBAAmB,eAAe,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMymN,YACvHt+M,EAAAA,GAAAA,oBAAmB,oiBAA8iB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMvJ,MAAO,OAAU8V,EAASvM,MAAMtJ,OAAQ,YAAe,CAAE,MAAS,iCAAmC,mBAAsB6V,EAASvM,MAAMyL,mBAAoB,QAAWc,EAASvM,MAAMmW,QAAS,eAAkB5J,EAASvM,MAAMgW,eAAgB,SAAY,CAAE,GAAM,WAAY,GAAM,YAAa,SAAYzJ,EAASrM,MAAMyM,kBAAkB3N,GAAW,GAAMuN,EAASvM,MAAM060B,kBAAkB170B,GAAW,UAAa,cAAe,OAAU,SAAW,UAAauN,EAASvM,MAAM060B,kBAAkB170B,GAAW,WAAa,EAAO,OAAUuN,EAASvM,MAAM060B,kBAAkB170B,GAAW,iBAAmB,EAAO,SAAW,EAAO,UAAa,GAAI,QAAWuN,EAASvM,MAAMhS,eACh0Cma,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM042B,qBAChIvw2B,EAAAA,GAAAA,oBAAmB,sJAA0J,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,IAAO,EAAG,IAAO,EAAG,MAASuN,EAASvM,MAAM2mgB,UAAW,MAAS,CAAE,SAAW,GAAQ,QAAW,CAAE,SAAW,EAAM,SAAY,SAAU,SAAY,iBAC9Yx+f,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM242B,qBAChIxw2B,EAAAA,GAAAA,oBAAmB,yBAAyB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMm0L,aACpIhsL,EAAAA,GAAAA,oBAAmB,uCAAuC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,SAAYuN,EAASvM,MAAM9M,kBAC5JiV,EAAAA,GAAAA,oBAAmB,6DAA6D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,MAAO,CAAE,WAAcuN,EAASvM,MAAMjZ,QAAY,QAAW,WAAc,OAAOwlB,EAASvM,MAAM4F,aACjPuC,EAAAA,GAAAA,oBAAmB,sBAAsB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM442B,mBAC9Hzw2B,EAAAA,GAAAA,oBAAmB,qCAAqC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAM642B,sBAC1J1w2B,EAAAA,GAAAA,oBAAmB,wHAAwH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,SAAYuN,EAASvM,MAAM9M,aAAiB,SAAY,WAAc,OAAOqZ,EAASvM,MAAM4lD,cAAiB,QAAW,WAAc,OAAOr5C,EAASvM,MAAM4F,QAAW,KAAQ,WAAc,MAAO,CAAE,MAAS2G,EAASvM,MAAM842B,iBAChb3w2B,EAAAA,GAAAA,oBAAmB,uBAAuB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAM+42B,oBAC/H5w2B,EAAAA,GAAAA,oBAAmB,sCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMg52B,uBAC3J7w2B,EAAAA,GAAAA,oBAAmB,0HAA0H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,IAAO,WAAc,MAAO,CAAE,SAAYuN,EAASvM,MAAM9M,aAAiB,SAAY,WAAc,OAAOqZ,EAASvM,MAAM4lD,cAAiB,QAAW,WAAc,OAAOr5C,EAASvM,MAAM4F,QAAW,GAAI,aAAmC,KAAQ,WAAc,MAAO,CAAE,MAAS2G,EAASvM,MAAM842B,iBACzd3w2B,EAAAA,GAAAA,oBAAmB,sCAAsC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAM22I,oBAC9JxuI,EAAAA,GAAAA,oBAAmB,qHAAuH,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMjV,OAAQ,iBAAoB,QAAS,YAAewhB,EAASvM,MAAMoQ,oBAAqB,iBAAmB,SAC1VjI,EAAAA,GAAAA,oBAAmB,yHAA2H,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAM22I,eAAmB,aAAgB,WAAc,MAAO,CAAE,cAAiB,UAAW,WAAa,EAAO,eAAiB,SAC9WxuI,EAAAA,GAAAA,oBAAmB,4GAA4G,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAAStN,QAAQxI,MAAQ,KAAS,QAAW,WAAc,OAAO8V,EAASvM,MAAMhS,SAAY,MAAS,WAAc,OAAO,WAAcue,EAAStN,QAAQ2G,OAAO2G,EAASvM,cAC/XmI,EAAAA,GAAAA,oBAAmB,qIAAyI,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,UAAa,WAAc,MAAO,CAAE,MAASuN,EAAStN,QAAQxI,MAAO,OAAU8V,EAAStN,QAAQvI,SAAa,MAAS,WAAc,MAAO,CAAE,gBAAmB,QAAU6V,EAASvM,MAAM+jC,KAAOx3B,EAASvM,MAAMhN,MAAQ,WAC5ZmV,EAAAA,GAAAA,oBAAmB,uGAAuG,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,mBAAsB,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMlY,KAAM,aAAgBykB,EAAStN,QAAQlU,SAAa,KAAQ,WAAc,MAAO,CAAE,MAASwhB,EAASvM,MAAMlY,YAClVqgB,EAAAA,GAAAA,oBAAmB,iDAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMlY,MAAS,KAAQ,WAAc,MAAO,CAAE,MAASykB,EAASvM,MAAMlY,YACzNqgB,EAAAA,GAAAA,oBAAmB,uFAAuF,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,GAAMuN,EAASvM,MAAM8O,SAAU,KAAQvC,EAASvM,MAAM8O,SAAU,KAAQvC,EAASvM,MAAM8nB,uBAC7Q3f,EAAAA,GAAAA,oBAAmB,0DAA0D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,CAAE,KAAQuN,EAASvM,MAAMuL,gBAAiB,KAAQgB,EAASvM,MAAMqS,mBACxNlK,EAAAA,GAAAA,oBAAmB,+CAAiD,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,wCAC9ImJ,EAAAA,GAAAA,oBAAmB,mBAAmB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAMgo0B,aAC9H7/zB,EAAAA,GAAAA,oBAAmB,kBAAkB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAMlY,WACxHqgB,EAAAA,GAAAA,oBAAmB,6BAA6B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAAStN,QAAQg62B,oBACrI9w2B,EAAAA,GAAAA,oBAAmB,gCAAgC,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAAStN,QAAQg62B,oBAC3I9w2B,EAAAA,GAAAA,oBAAmB,4fAAkgB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,OAAOuN,EAASvM,MAAM6M,WAAW,CAAE,WAAcN,EAASvM,MAAMjB,OAAQ,MAASwN,EAASvM,MAAMjZ,MAAO,UAAa,QAAS,YAAe,eAAgB,oBAAsB,EAAM,SAAYwlB,EAASvM,MAAMzP,SAAU,oBAAsB,EAAM,WAAcgc,EAASrM,MAAM2B,GAAGulD,QAAQE,aAAc,kBAAoB,EAAM,gBAAmB,CAAE,UAAa/6C,EAASrM,MAAMyM,kBAAkB3N,IAAa,cAAiB,CAAE,SAAYuN,EAASrM,MAAMyM,kBAAkB3N,IAAa,UAAa,CAAE,aAAcuN,EAASvM,MAAM3L,YAAa,GAAMkY,EAASvM,MAAM4M,kBAAuB,YAAe,WAAc,MAAO,CAAE,gBAAmBL,EAASvM,MAAMoN,iBAAmB,UACjwCjF,EAAAA,GAAAA,oBAAmB,4gBAAshB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,YAAe,WAAc,OAAOuN,EAASvM,MAAM6M,WAAW,CAAE,WAAcN,EAASvM,MAAMk52B,sBAAsB3s2B,EAASrM,OAAQ,MAASqM,EAASvM,MAAMjZ,MAAO,aAAgB,YAAa,YAAe,cAAe,UAAa,MAAO,iBAAmB,EAAM,WAAcwlB,EAASrM,MAAM2B,GAAGulD,QAAQE,aAAc,kBAAoB,EAAM,gBAAmB,CAAE,SAAY,QAAS,UAAa/6C,EAASrM,MAAMyM,kBAAkB3N,IAAa,cAAiB,CAAE,SAAYuN,EAASrM,MAAMyM,kBAAkB3N,IAAa,UAAa,CAAE,aAAcuN,EAASvM,MAAM3L,YAAa,GAAMkY,EAASvM,MAAM4M,kBAAuB,YAAe,WAAc,MAAO,CAAE,gBAAmBL,EAASvM,MAAMoN,iBAAmB,UAC/xCjF,EAAAA,GAAAA,oBAAmB,wBAAwB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,IAAOuN,EAASvM,MAAM2tF,aACzIxlF,EAAAA,GAAAA,oBAAmB,0BAA0B,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,MAAO,CAAE,MAASuN,EAASvM,MAAMjZ,aAC7IohB,EAAAA,GAAAA,oBAAmB,eAAe,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMwoI,YACvHrgI,EAAAA,GAAAA,oBAAmB,eAAe,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,KAAQ,WAAc,OAAOuN,EAASvM,MAAMjZ,YACvHohB,EAAAA,GAAAA,oBAAmB,aAAa,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,GAAM,WAAc,OAAOuN,EAASvM,MAAM2tF,YACnHxlF,EAAAA,GAAAA,oBAAmB,gBAAgB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,MAAS,WAAc,OAAOuN,EAASvM,MAAM2tF,YACzHxlF,EAAAA,GAAAA,oBAAmB,0DAA4D,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,SAAY,WAAc,MAAO,mDACzJmJ,EAAAA,GAAAA,oBAAmB,mBAAmB,SAAUoE,EAAUvN,GAAY,MAAO,CAAE,QAAW,WAAc,OAAOuN,EAASvM,MAAM4W,aAC9HzO,EAAAA,GAAAA,oBAAmB,qCAAuC,WAAc,MAAO,CAAEwJ,WAAY,CAAEhf,KAAM,iBC1PrG4pB,GAAAA,mBAAAA,aAAgC,CAC5B,2BAA4B,8FAC5B,iCAAkC,wnDAClC,2BAA4B,soCAC5B,yBAA0B,yNAC1B,sBAAuB,stBACvB,gCAAiC,m8BACjC,8BAA+B,kfAC/B,qBAAsB,iNACtB,2BAA4B,maAC5B,+BAAgC,yTAChC,iCAAkC,gjCAClC,yCAA0C,4GAC1C,8BAA+B,uFAC/B,uBAAwB,y+EACxB,+BAAgC,6oCAChC,0BAA2B,oLAC3B,0BAA2B,oJAC3B,4BAA6B,sJAC7B,8BAA+B,iYAC/B,2BAA4B,iPAC5B,kCAAmC,kHACnC,8BAA+B,mXAC/B,2BAA4B,ksBAC5B,oCAAqC,mvBACrC,2BAA4B,kwCAC5B,8BAA+B,+xBAC/B,yBAA0B,ymDAC1B,4BAA6B,8xBAC7B,oBAAqB,+gDACrB,iCAAkC,wcAClC,2BAA4B,yjCAC5B,oCAAqC,0wBACrC,kCAAmC,mvBACnC,sBAAuB,8zJACvB,4BAA6B,i1BAC7B,0BAA2B,+8DAC3B,qBAAsB,8iCACtB,4BAA6B,s1BAC7B,sBAAuB,iXACvB,gBAAiB,kmFACjB,mBAAoB,gDACpB,wBAAyB,qbACzB,8BAA+B,4iFAC/B,0BAA2B,mbAC3B,uBAAwB,uEACxB,wBAAyB,2RACzB,iCAAkC,0RAClC,4BAA6B,mHAC7B,kBAAmB,kjCACnB,2BAA4B,4UAC5B,kCAAmC,+xGACnC,qBAAsB,6xCACtB,aAAc,4EACd,mCAAoC,gsBACpC,mCAAoC,q2BACpC,wCAAyC,24BACzC,2CAA4C,mbAC5C,kCAAmC,olCACnC,eAAgB,qhBAChB,kBAAmB,6vCCvDvB1uB,GAAAA,gBAAAA,OAA+B,CAC3B6Q,KAAM,SAACzZ,EAAS0Z,EAAeC,EAAaC,EAAWC,GACnD,IAAIq62B,EAAetm3B,GAAAA,GAAAA,YAAiB5N,GAAUynC,EAAays1B,EAAavo3B,OAAO,+BAAqEy1B,EAAxB1nB,IAAgB2R,OAAkCha,WAAU,SAACga,GACrL,GAAIA,EAAQ,CACR,IAAI8o2B,EAAUD,EAAa7t2B,WAAWrN,KAClCm72B,EAAU,GAAMA,EAAUD,EAAazi3B,SAAW,GAAM0i3B,GAAW1s1B,EAAWh2B,WAC9Eg2B,EAAWN,UAAUM,EAAWN,YAAcgt1B,QAI1Dtz3B,EAAAA,GAAAA,oBAAmBb,GAAS,WACxBohC,EAAa9iB,eAIzB1V,GAAAA,gBAAAA,WAAmC,CAC/B6Q,KAAM,SAACzZ,EAAS0Z,EAAeC,EAAaC,EAAWC,GACnD,IAAIE,EAAWnM,GAAAA,GAAAA,YAAiB5N,GAAUwpC,EAAU9vB,IAAgB8vB,QAAS18B,EAAO,KAAMsn3B,EAAoB,WAAgB,IAAfrnzB,EAAe,uDAAR,IAClHjgE,GAAQsxB,aAAatxB,GACrBA,EAAO/J,YAAW,WACd,GAAKymC,IAKL,IAFA,IAAI+nvB,EAAcx3wB,EAAStI,SAAW,IAClCoo1B,EAAgBjx1B,GAAAA,QAAW5I,GACtBiM,EAAI,EAAGA,EAAIjM,EAAQiL,SAASzK,OAAQyL,IAAK,CAC9C,IAAIg02B,EAAcjg3B,EAAQiL,SAASgB,GAAIkP,EAAO8k2B,EAAY9j2B,wBAAyBg42B,EAAUh52B,EAAKnC,IAClG,GAAIu4wB,EAAc4iG,GAAWA,GAAW,GAAKA,EAAU,GAAKA,EAAUh52B,EAAK1J,QAAU,IAAK,CACtF,IAAI4i3B,EAAmBzr3B,GAAAA,QAAWq32B,IACR,OAArBoU,QAAkD,IAArBA,OAA8B,EAASA,EAAiBhvB,mBAAiI,KAAvF,OAArBgvB,QAAkD,IAArBA,OAA8B,EAASA,EAAiBhvB,oBAChMxL,EAAc0R,kBAAkB8oB,GAAkB,OAI/DtnzB,IAEHnkE,GAAAA,aAAgB8Q,IAAgB462B,iBAChC562B,IAAgB462B,eAAeF,GAEnC,IAAIG,EAAe/q1B,EAAQn4B,WAAU,SAACN,GAClCA,GAAUqj3B,EAAkB,QAE5BI,EAAa,kBAAMJ,EAAkB3kC,OACzCzv1B,EAAQY,iBAAiB,SAAU4z3B,GACnCJ,EAAkB,MAClBvz3B,EAAAA,GAAAA,oBAAmBb,GAAS,WACxBA,EAAQK,oBAAoB,SAAUm03B,GACtCD,EAAaj22B,eAIzB1V,GAAAA,gBAAAA,WAAmC,CAC/B6Q,KAAM,SAACzZ,EAAS0Z,EAAeC,EAAaC,EAAWC,GACnD,IAAI462B,EAAiB,SAAU/z3B,GAC3B,IAAIoB,EAAQ8X,EAAUkz0B,qBACtB,MAAKhr1B,IAAWpB,EAAEwlC,UAAWxlC,EAAEmsD,SACxBj/C,GAAAA,GAAAA,YAAiBlN,EAAEoG,QAAQkzB,GAAG,mCAC9BrU,OAAOmwJ,cAAgBnwJ,OAAOmwJ,gBAAkBnwJ,OAAOmwJ,eAAennK,YACtEjM,SAAQ,WAAiBA,SAAQ,UAAcyzG,cAActzG,MAHpE,CAMA,IAAI6x3B,EAAsB9m3B,GAAAA,GAAAA,YAAiB,wBAC3C8m3B,EAAoB/pzB,QAAQjpB,OAC5B9zC,GAAAA,GAAAA,YAAiB,wCAAwCqW,IAAIniB,GACxDq2B,SAASu81B,GACTzz3B,QACA+M,WAEL2m3B,EAAe,SAAUj03B,GACrBkN,GAAAA,GAAAA,YAAiBlN,EAAEoG,QAAQkzB,GAAG,eAC9BpsB,GAAAA,GAAAA,YAAiB,wBAAwB+8D,QAAQP,QAGzD1nE,SAAS9B,iBAAiB,UAAW6z3B,GACrC/x3B,SAAS9B,iBAAiB,QAAS+z3B,IACnC9z3B,EAAAA,GAAAA,oBAAmBb,GAAS,WACxB0C,SAASrC,oBAAoB,UAAWo03B,GACxC/x3B,SAASrC,oBAAoB,QAASs03B,QAIlD/r3B,GAAAA,gBAAAA,QAAgC,CAC5B6Q,KAAM,SAACzZ,EAAS0Z,GACZ,IAAIY,EAAUZ,IACV8sB,EAAgB,GAChBou1B,EAAa,SAACj4xB,GACd,IAAI5iF,EAAWnM,GAAAA,GAAAA,YAAiB5N,GAC5Bsv2B,EAAY3ywB,EAAW2ywB,YAC3B,GAAIA,GAAapjB,GAAiB,CAC9B,GAAI5x0B,EAAQu62B,iBAAyD,GAAtC962B,EAASjU,OAAO,YAAYtF,OACvD,OACJ,IAAIs03B,GAAUv82B,EAAAA,GAAAA,mBbtBvB,SAAsC/G,EAAOC,EAAQsI,GAA4C,IAAlCu11B,EAAkC,uDAAtBpjB,GAC1E6oC,EAAkBh72B,EAAS9P,QAAQ,yBACnC+q3B,EAAWj72B,EAAS9P,QAAQ,iBAChC,GAA+B,IAA3B8q3B,EAAgBv03B,QAAoC,IAApBw03B,EAASx03B,OACzC,OAAO,EAEX,IAAI2nD,EAAe6s0B,EAASxj3B,QAAUk72B,GAAmBsI,GAAY,GACjEC,EAAgBp/0B,WAAWk/0B,EAAgBx52B,IAAI,OAAO5N,MAAM,MAAM,IAElEun3B,EADiBF,EAASjv2B,cACOkv2B,EACrC,GAAI3lB,IAAcpjB,GACd,OAAQ/jyB,EAAe,IAAM32C,EAEjC,IAAI2j3B,EAAaD,GAAiBzj3B,EAAS,GACvC2j3B,EAAYjt0B,EAAe32C,EAC/B,OAAOqU,KAAKG,IAAImv2B,EAAYC,GaOgBC,CAA6B14xB,EAAWnrF,QAASmrF,EAAWlrF,SAAUsI,EAAUu11B,IAAY,GAC5H3ywB,EAAWlvE,KAAK5H,KAAKC,IAAIgv2B,EAAS,OAG1CF,EAAWt62B,GACX,IAAIilF,EAAW,WACXq1xB,EAAWt62B,IAEfqL,OAAO/kB,iBAAiB,SAAU2+F,GAClC,IAAIluF,EAAY,SAACvP,GACTA,GACA0kC,EAAc1lC,KAAKgB,EAAMuP,WAAU,SAACN,GAChC6j3B,EAAWt62B,QAIvBjJ,EAAUiJ,EAAQg72B,iBAClBjk3B,EAAUiJ,EAAQ9I,OAClBH,EAAUiJ,EAAQ7I,QAClBJ,EAAUiJ,EAAQg11B,WAClBj+1B,EAAUiJ,EAAQsr1B,cAClBv01B,EAAUiJ,EAAQq11B,cAClB9u2B,EAAAA,GAAAA,oBAAmBb,GAAS,WACxB2lB,OAAOtlB,oBAAoB,SAAUk/F,GACrC/4D,EAAcrmC,SAAQ,SAACihC,GACnBA,EAAa9iB,kBAK7B1V,GAAAA,gBAAAA,WAAmC,CAC/B6Q,KAAM,SAAUzZ,EAAS0Z,GACrB,IAAII,EAASJ,IACb9L,GAAAA,GAAAA,YAAiB5N,GAASuc,KAAKzC,EAAO2P,UAAUlO,IAAIzB,EAAOqE,yBC5HtDo32B,GAAb,0CACI,WAAYv13B,EAASsa,GAAS,6BAC1B,cAAMta,EAASsa,IACVyK,OAAO,aAAa,SAAUrkB,GAC3BA,EAAEga,MAAMxT,MAAQyxB,GAAAA,aAAAA,QAChBj4B,EAAEga,MAAMpT,kBACR5G,EAAEga,MAAMnT,iBACR7G,EAAE6tB,UAAF,SAAwB7tB,EAAEga,MAAMrX,cAGxC,EAAK0hB,OAAO,cAAc,SAAUrkB,GAChCA,EAAE6tB,UAAF,aAA4Bu5d,WAAWpnf,EAAE6tB,UAAUxJ,OAAO,YAE9D,EAAKglU,iBAdsF,0BAe3F,EAAKyriB,oBAAsB,WAAQ,EAAKv03B,SACxC,EAAKq61B,aAAehh1B,EAAQ6g1B,YAC5B,EAAKG,aAAamgB,eAAepq2B,WAAU,SAAC4S,GAAD,OAAS,EAAKux2B,yBAf/B,EADlC,uCAkBI,SAAS/5B,GACL,GAAIv71B,KAAKo71B,aAAaxzW,eAAiB5nf,KAAK6kB,OAAO,QAC/C7kB,KAAKo71B,aAAaxzW,WAAW5nf,KAAK6kB,OAAO,cAGzC,IACQ020B,GACEv71B,KAAKo71B,aAAanzH,WAAcjouB,KAAKo71B,aAAa8gB,UAGlDl82B,KAAKo71B,aAAanzH,WAAcjouB,KAAKo71B,aAAa+gB,WAL5D,QASI,OAAO,KAhCvB,mBAoCI,YACI,4BAAM,QAAN,MAAen21B,MAAMhmB,MACrB,IAAI6Z,EAAWnM,GAAAA,GAAAA,YAAiB1N,KAAKF,WACrC+Z,EAAS4F,SAxCqC8X,mBAyC9Cv3B,KAAKw3B,WAAa9uB,GAAAA,WAAcmR,EAASgG,IAAI,MAxCrD,qBA0CI,WAAU,YACN,4BAAM,UAAN,MAAiBmG,MAAMhmB,MACvBA,KAAKm9Y,UAAY,GACjBn9Y,KAAKs4B,GAAG,WAAW,SAAC93B,GACG,WAAfA,EAAEga,MAAMxT,KACR,EAAKs9K,UAAS,IAAS9jL,EAAEga,MAAMpT,kBAChB,aAAf5G,EAAEga,MAAMxT,KACR,EAAKs9K,UAAS,IAAU9jL,EAAEga,MAAMpT,yBAjDhD,GAAoCsxB,GAAAA,UAqDpCpY,EAAAA,GAAAA,SAAkB,iBAAkB+02B,wOCVhCE,GAAgB,aAEhBC,GAAqB,kBAErBC,GAAuBF,oBACvBG,GAAqBH,kBACrBI,GAA+BJ,4BAC/BK,GAA0BF,uBAE1BG,GAA8BH,2BAC9BI,GAA0BP,uBAC1BQ,GAA+BD,4BAC/BE,GAAkC,6BAClCC,GAAwCF,qCACxCG,GAAwB,mBAIxBC,GAAmBr0kB,GAAAA,QAAAA,QAAe,CAClCwoC,eAAgB,WACZ,OAAOxhV,EAAAA,GAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B25H,OAAQl5H,GAAAA,KACRm5H,SAAUn5H,GAAAA,QAGlBS,mBAAoB,WAChB,OAAO3pN,EAAAA,GAAAA,GAAO9I,KAAKuxN,WAAY,CAC3Bl2E,UAAW,OACXr0E,QAAS,KACTumQ,mBAAmB,EACnBF,oBAAoB,KAG5BvxG,QAAS,WACL97N,KAAKuxN,WACL,IAAI37B,EAAO51L,KACP6Z,EAAW7Z,KAAK6Z,WAChBowB,GAAYmkL,EAAAA,GAAAA,cAAa67E,GAAAA,EAAgBjqS,KAAK+0N,MAClDl7M,EAAS4F,SAAS812B,yBAAiCv13B,KAAK6kB,OAAO,cAC/D8wM,GAAAA,EAAAA,IAAiB97M,EAAUowB,GAC3B0rL,GAAAA,EAAAA,GAAgB97M,EAAUowB,GAAY,SAASzpC,GAC3Co1L,EAAK4lC,sBAAsB,UAA3B5lC,CAAsC,CAClCp7K,MAAOha,QAInB07N,eAAgB,SAAS11M,GACrB,OAAQA,EAAKhZ,MACT,IAAK,UACL,IAAK,YACDxN,KAAK0rP,cACL,MACJ,QACI1rP,KAAKuxN,SAAS/qM,OAI1B4v2B,GAAUj8iB,GAAAA,EAAAA,QAAyB,CACnC0P,iBAlDwB,mBAmDxBwsiB,6BAA6B,EAC7B5jqB,mBAAoB,WAChB,OAAO3pN,EAAAA,GAAAA,GAAO9I,KAAKuxN,WAAY,CAC3B87G,oBAAoB,EACpBzkI,kBAAmB,IACnB0uN,kBAAkB,EAClB/6D,MAAM,EACNm9gB,cAAc,EACd4c,kBAAkB,EAClBzje,eAAe,EACfpkY,cAAe,EACf8n2B,eAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZC,sBAAkB,EAClBC,eAAe,EACfx8hB,gBAAiB,CACb3nN,KAAM,UAEVwnN,eAAe,EACfD,eAAe,EACfz9I,cAAe,SACfinJ,mBAAmB,EACnBC,eAAe,KAGvB5gH,qBAAsB,WAClB,OAAO5iP,KAAKuxN,WAAW31L,OAAO,CAAC,CAC3BwiN,OAAQ,WACJ,MAAO,YAAcjW,GAAAA,QAAAA,OAAeC,aAAeD,GAAAA,QAAAA,eAEvD/tN,QAAS,CACLkzT,mBAAmB,OAI/B96P,MAAO,WACHxyE,KAAKuxN,WACLvxN,KAAK6kB,OAAO,gBAAiB7kB,KAAK6kB,OAAO,UAE7C62M,eAAgB,WACZ17N,KAAKuxN,WACLvxN,KAAK27N,iBAAiBC,oBAAoB,CACtC17N,KAAM,IAAIy3P,GAAAA,EAAiB,SAASpwN,EAAY15B,GAC5C,IAAI+o3B,GAAOlp3B,EAAAA,GAAAA,GAAE,SAAS+R,SAxFZ,0BAyFNs7D,EAAAA,GAAAA,IAAcltE,IACd7N,KAAK+6V,4BAA4BltV,EAAM05B,GACvCqv1B,EAAKh32B,KAAK,CACNgiD,IAAK/zD,EAAK231B,SACVrppB,IAAKtuM,EAAKgp3B,WACX5+1B,SAASsP,IAEZqv1B,EAAKh32B,KAAK,MAAOimD,OAAOh4D,IAAOoqB,SAASsP,IAE9C98B,KAAKzK,MAAO,CAAC,WAAY,WAAY,OAAQ,QAASA,KAAK6kB,OAAO,sCAG5Eu2U,mBAAoB,WAChB,MAAO,CACH30S,UAAU,IAGlBkyR,eAAgB,WACZ,OAAO34U,KAAKunY,aAEhBzoC,WAAY,WACR,OAAO42hB,IAEXt4hB,aAAc,WACV,MAhHoB,qBAkHxB05hB,iBAAkB,WACd,IAAIC,EAAe/23B,KAAK6kB,OAAO,cAC/B,OAAI7kB,KAAK6kB,OAAO,iBAEL,GADWky2B,EAAe/23B,KAAKg33B,gBAAkB,EAAIh33B,KAAKg33B,iBAGjED,EACO/23B,KAAKi33B,oBAAsBj33B,KAAKg33B,iBAAmBh33B,KAAKg33B,gBAAkB,GAE9Eh33B,KAAKi33B,qBAEhBA,kBAAmB,WACf,IACIx+pB,GAAeH,EAAAA,GAAAA,IAAct4N,KAAK6Z,YAClC682B,EAAmB123B,KAAK6kB,OAAO,oBAMnC,OALI6x2B,GAAoBA,GAAoBj+pB,EACzBi+pB,EAAmBj+pB,EAEnB,GAIvBu+pB,cAAe,WACX,IAAIE,GAAe56pB,EAAAA,GAAAA,MAAc32M,KAAKo1B,MAAM,EAAI/6C,KAAKi33B,qBAAuB,EAC5E,OAAOtx2B,KAAKG,IAAIox2B,EAAcl33B,KAAKywY,gBAEvC0mf,YAAa,WACT,OAAOxx2B,KAAK+iK,KAAK1oL,KAAKywY,cAAgBzwY,KAAKg33B,kBAE/Cvmf,YAAa,WACT,OAAQzwY,KAAK6kB,OAAO,UAAY,IAAIvkB,QAExC823B,iBAAkB,WACd,OAAOp33B,KAAK6kB,OAAO,eAAiB,EAAI,GAE5C4lO,YAAa,WACTzqP,KAAK0qU,iBACL1qU,KAAKq33B,wBACLr33B,KAAK6Z,WAAW4F,SAAS812B,IACzBv13B,KAAK6Z,WAAW28M,YAAYg/pB,GAAoBx13B,KAAK6kB,OAAO,SAC5D7kB,KAAKuxN,WACLvxN,KAAK4gV,QAAQ,CACTpuM,KAAM,UACN6Q,MAAO,aAGfy4E,QAAS,WACL97N,KAAKs33B,qBACLt33B,KAAKu33B,2BACLv33B,KAAKw33B,mBACLx33B,KAAKy33B,uBACLz33B,KAAK033B,oBACL133B,KAAK233B,mBACL333B,KAAK2hX,sBACL3hX,KAAK433B,wBACL533B,KAAK633B,yBACL733B,KAAK833B,kBACL933B,KAAK+33B,oBACL/33B,KAAKuxN,YAETw4B,kBAAmB,WACf,IAAIt7N,EAAgBzuB,KAAK6kB,OAAO,kBAAoB,EACpD7kB,KAAKg43B,sBACLh43B,KAAKi43B,mBACLj43B,KAAKk43B,uBACLl43B,KAAKw33B,mBACLx33B,KAAKy33B,uBACLz33B,KAAK233B,mBACL333B,KAAKu33B,yBAAyBv33B,KAAKm43B,sBAAsB1p2B,IAAgB,GACzEzuB,KAAK433B,yBAETN,mBAAoB,WAChB,IAAIrt1B,GAAYmkL,EAAAA,GAAAA,cAAa,YAAapuN,KAAK+0N,MAC/CY,GAAAA,EAAAA,IAAiB31N,KAAK6Z,WAAYowB,GAClC0rL,GAAAA,EAAAA,GAAgB31N,KAAK6Z,WAAYowB,EAAW,OAAQ,WAChD,OAAO,MAGfygS,eAAgB,WACR1qU,KAAKsvX,YAGTtvX,KAAKsvX,WAAY5hX,EAAAA,GAAAA,GAAE,SAAS+R,SAnNR812B,sBAmNwCt91B,SAASj4B,KAAK6Z,cAE9E4mV,aAAc,SAAS/0V,GACnB,KAAK4wN,EAAAA,GAAAA,MAAa,CACd,IAAI7tM,EAAgBzuB,KAAK6kB,OAAO,iBAChCnZ,EAAQA,EAAMpL,OAASmuB,EAAgB/iB,EAAMjG,MAAMgpB,EAAeA,EAAgB,GAAK/iB,EAAMjG,MAAM,EAAG,GAE1GzF,KAAKuxN,SAAS7lN,GACd1L,KAAKo43B,yBAETj2hB,wBArKmC,WAqKT,WACtB,OAAO,WACE,EAAKk0hB,8BACN,EAAKA,6BAA8B,GACnCx2kB,EAAAA,GAAAA,IAAmB,EAAKhmS,eAIpCw92B,sBAAuB,WACfr33B,KAAKunY,cAGTvnY,KAAKunY,aAAc75X,EAAAA,GAAAA,GAAE,SAAS+R,SAvOH812B,wBAuO0Ct91B,SAASj4B,KAAKsvX,aAEvF4ogB,qBAAsB,WAClB,GAAKl43B,KAAK6kB,OAAO,QAAjB,CAGA,IAGI9Y,EAFA25V,GADQ1lW,KAAK6kB,OAAO,UAAY,IACbvkB,OACnB0hZ,EAAgBt8C,EAAa,EAEjC,GAAKA,EAAL,CAGA1lW,KAAKq43B,kBAAkB723B,SACvB,IAAI823B,EAAiB3y2B,KAAKG,IAAI9lB,KAAKg33B,gBAAiBtxhB,GAChDxuI,EAASl3N,KAAKu43B,gBACdhx1B,EAAavnC,KAAK24U,iBACtB,IAAK5sU,EAAI,EAAGA,EAAIus3B,EAAgBvs3B,IAC5B/L,KAAKw43B,uBAAuBthqB,EAAOnrN,GAAIw7B,GAE3C,IAAKx7B,EAAI,EAAGA,EAAIus3B,EAAgBvs3B,IAC5B/L,KAAKw43B,uBAAuBthqB,EAAO8qL,EAAgBj2Y,GAAIw7B,MAG/Dix1B,uBAAwB,SAASt43B,EAAMqnC,GACnC,GAAIrnC,EAAM,CACN,IAAIu43B,GAAc/q3B,EAAAA,GAAAA,GAAExN,GAAMo7E,OAAM,GAAO77D,SAASm22B,IAAyBv62B,IAAI,SAAU,GAAG4c,SAASsP,GACnGvnC,KAAK4gV,QAAQ,CACTpuM,KAAM,gBACPimvB,KAGXF,cAAe,WAEX,OAAOv43B,KAAK6Z,WAAWwC,KADR,gDAGnBg82B,gBAAiB,WACb,OAAOr43B,KAAK6Z,WAAWwC,KAAK,0BAEhC+lV,uBAAwB,WACpB,OAAOpiW,KAAKsvX,WAEhBkogB,iBAAkB,SAAS7v3B,GACvB,IAAIuvN,EAASl3N,KAAK85U,gBACdslI,EAAYp/c,KAAK823B,wBACjB,IAAWnv3B,IACXuvN,EAASA,EAAOzxN,MAAMkC,IAE1BuvN,EAAOz8M,MAAM,SAAS5Z,IAClB28Q,EAAAA,GAAAA,KAAc9vQ,EAAAA,GAAAA,GAAEwpN,EAAOr2N,IAAS,IAAMu+c,EAAY,SAG1Dq4a,qBAAsB,WAClB,IAAIr4a,EAAYp/c,KAAK823B,mBACjBpxhB,EAAa1lW,KAAKywY,cAClBymf,EAAel33B,KAAKg33B,gBACpB0B,EAAiB143B,KAAK6Z,WAAWwC,KAAK,yBAA+B/b,OACrEq43B,EAAyBjzhB,EAAagzhB,EAAiB,EACvDl+kB,EAAcx6S,KAAK6kB,OAAO,cAAgB,GAAK,EAC/C2ld,EAAYxqe,KAAK443B,iBACjBC,IAAuBruZ,EACvBz4Z,EAAa/xE,KAAK6kB,OAAO,cACzB4J,EAAgBzuB,KAAK6kB,OAAO,iBAC5BmvC,EAAO+d,EAAa,QAAU,OAClC/xE,KAAK85U,gBAAgBr/T,MAAM,SAAS5Z,GAChC,IAAI8+2B,EAAY9+2B,EACZi43B,GAAapr3B,EAAAA,GAAAA,GAAE1N,MAAM+vN,SAAS6lqB,IAIlC,GAHI/03B,EAAQ6kW,EAAawxhB,EAAe,IACpCvX,EAAYgZ,EAAyBhZ,EAAYuX,GAEhD4B,GAAc,IAAMnZ,EAAzB,CAMA,IAAIoZ,EAAe35a,GAAauga,EAAYnlkB,GAAegwL,GAAam1Y,EAAY,EAAInlkB,GACpFvnR,EAAW6l2B,EAAa9k0B,EAAK/wB,cAAgB,SAAW+wB,GAC5DtmD,EAAAA,GAAAA,GAAE1N,MAAMqb,IAAI4X,EAAU,IAAM8l2B,EAAe,UAPnCF,IACAnr3B,EAAAA,GAAAA,GAAE1N,MAAMqb,IAAI,SAAW24C,EAAM,IAAMw2a,EAAY,QAQ3Dxqe,KAAKg53B,eAAevq2B,EAAeA,GAAe,IAEtDmq2B,eAAgB,WACZ,IAAI1B,EAAel33B,KAAKg33B,gBAIxB,OAHIh33B,KAAK6kB,OAAO,gBACZqy2B,GAAgB,IAEZ,EAAIl33B,KAAK823B,mBAAqBI,IAAiBA,EAAe,IAE1EK,yBAA0B,SAAShs3B,EAAQ0t3B,EAAWzhsB,GAClDx3L,KAAKk53B,yBACL3t3B,EAASA,GAAU,EACnB,IAII4t3B,EAJAvjsB,EAAO51L,KACPo/c,EAAYp/c,KAAK823B,mBACjBz6hB,EAAc9wV,EACds+N,EAAiB7pO,KAAKo33B,mBAAqB/6hB,GAAe+iH,EAAYp/c,KAAK443B,kBAoB/E,OAlBIjw0B,EAAAA,GAAAA,IAAU3oD,KAAKo53B,sBACf5hsB,EAAUx3L,KAAKo53B,0BACRp53B,KAAKo53B,oBAEZ5hsB,GACA5B,EAAKyjsB,cACLF,EAAgBvjsB,EAAK0pL,SAASz1I,GAAgBzwM,KAAKw8J,EAAK0jsB,UAAU7u3B,KAAKmrL,OAEvE35I,EAAAA,GAAAA,IAAKj8C,KAAKunY,YAAa,CACnB7uX,KAAMmxN,EAAiB7pO,KAAKsne,gBAC5Bxud,IAAK,IAETqg3B,GAAiB,IAAI3mqB,GAAAA,IAAU6M,YAAYzpC,IAE/CujsB,EAAc//1B,MAAM,WAChBp5B,KAAKu53B,kBAAoB3jsB,EAAK2jsB,iBAAiBl6pB,YAAYzpC,GAC3DqjsB,GAAaj53B,KAAK433B,2BAEfuB,EAAc3o3B,WAEzB6o3B,YAAa,WACTr53B,KAAK6Z,WAAW4F,SAASg22B,KAE7B6D,UAAW,WACPt53B,KAAK6Z,WAAWge,YAAY491B,KAEhCn2gB,SAAU,SAASz1I,EAAgB2vpB,GAC/B,IAAI5jsB,EAAO51L,KACPunC,EAAavnC,KAAKunY,YAClBkyf,EAAoB,IAAIjnqB,GAAAA,GAuB5B,OAtBAyN,GAAAA,QAAAA,QAAWjgO,KAAKunY,aAAaz+X,EAAAA,GAAAA,GAAO,CAChC6a,KAAM,QACNq9C,GAAI,CACAtoD,KAAMmxN,EAAiB7pO,KAAKsne,iBAEhC9nQ,SAAU5pC,EAAK/wK,OAAO,qBACtBo/M,SAAU,WACFruC,EAAK8jsB,8BACLz90B,EAAAA,GAAAA,IAAK1U,EAAY,CACb7uB,KAAM,EACNI,IAAK,IAGT88K,EAAK+jsB,2BACL190B,EAAAA,GAAAA,IAAK1U,EAAY,CACb7uB,KAAMk9K,EAAKgksB,sBAAwBhksB,EAAK0xS,gBACxCxud,IAAK,IAGb2g3B,EAAkBp6pB,YAAYzpC,KAEnC4jsB,GAAe,KACXC,GAEXC,0BAA2B,WAGvB,OAFuB153B,KAAKunY,YAAYphX,WAAWzN,KAAO1Y,KAAKo33B,qBACzCp33B,KAAK653B,gBAAkB753B,KAAKsne,gBAAkBtne,KAAKywY,cAlX5D,GAqXjBkpf,uBAAwB,WAGpB,OAFuB353B,KAAKunY,YAAYphX,WAAWzN,KAAO1Y,KAAKo33B,oBAC1Cp33B,KAAK823B,mBAAqB923B,KAAKsne,gBAvXvC,GA0XjBsyZ,oBAAqB,WACjB,OAAQ553B,KAAK653B,iBAAmB753B,KAAKywY,cAAgBzwY,KAAKg33B,iBAAmBh33B,KAAKo33B,oBAEtFyC,cAAe,WACX,OAAO753B,KAAK823B,mBAAqB923B,KAAK443B,kBAE1Cb,kBAAmB,WACf,IAAI1gZ,EAAar3e,KAAK85U,gBAAgB9vQ,QAAQ3tD,KAAK652B,IAC9C7+Y,IAAcA,EAAWv9c,GAAG,aAG5B95B,KAAK6kB,OAAO,WACb7kB,KAAK6kB,OAAO,UAAU2zM,EAAAA,GAAAA,IAAe6+Q,IAEpCr3e,KAAK6kB,OAAO,UACb7kB,KAAK6kB,OAAO,SAASyzM,EAAAA,GAAAA,IAAc++Q,IAEvCr3e,KAAK+pP,sBAET4toB,iBAAkB,WAEd,GADA333B,KAAK853B,mBACA953B,KAAK6kB,OAAO,iBAAjB,CAKA,IAFA,IAAIkjgB,EAAY/nhB,KAAKoyZ,aAAc1kZ,EAAAA,GAAAA,GAAE,SAAS+R,SAASq22B,IAAyB791B,SAASj4B,KAAKsvX,WAC1FyqgB,EAAqB/53B,KAAK6kB,OAAO,oBAC5B9Y,EAAI,EAAGA,EAAI/L,KAAKm33B,cAAepr3B,IAAK,CACzC,IAAIiu3B,GAAiBts3B,EAAAA,GAAAA,GAAE,SAAS+R,SAASs22B,IAA8B991B,SAAS8vf,GAC5EgyW,GACA/53B,KAAKi63B,6BAA6BD,EAAgBju3B,GAG1D/L,KAAKk63B,iCAETD,6BAA8B,SAASpg3B,EAAUhZ,GAC7C80N,GAAAA,EAAAA,GAAgB97M,GAAUu0M,EAAAA,GAAAA,cAAa67E,GAAAA,EAAgBjqS,KAAK+0N,MAAO,SAASv6M,GACxExa,KAAKm63B,wBAAwB3/2B,EAAO3Z,IACtC4J,KAAKzK,QAEXo63B,6BAA8B,SAASvg3B,GACnC87M,GAAAA,EAAAA,IAAiB97M,GAAUu0M,EAAAA,GAAAA,cAAa67E,GAAAA,EAAgBjqS,KAAK+0N,QAEjEslqB,4BAA6B,SAASC,GAClC,IAAIC,EACAC,GAAmB,QAAUD,EAAoBv63B,KAAKoyZ,mBAAgB,IAAWmoe,OAAoB,EAASA,EAAkBl+2B,KAAK252B,MAAqC,GAC1KwE,EAAgBl63B,QAChBk63B,EAAgB//2B,KAAK,SAAS5Z,EAAOf,GACjCw63B,EAAet63B,KAAKi63B,8BAA6Bvs3B,EAAAA,GAAAA,GAAE5N,GAAUe,GAASb,KAAKo63B,8BAA6B1s3B,EAAAA,GAAAA,GAAE5N,KAC5G2K,KAAKzK,QAGf853B,iBAAkB,WACV953B,KAAKoyZ,aACLpyZ,KAAKoyZ,YAAY5wZ,UAGzBmgX,oBAAqB,WACjB,IAAIlzV,EAAgBzuB,KAAK6kB,OAAO,iBAChC7kB,KAAK85U,gBAAgBjiT,YAAYg+1B,IAA6Bju0B,GAAGn5B,GAAehP,SAASo22B,KAE7F+B,sBAAuB,WACnB,GAAI533B,KAAK6kB,OAAO,qBAAuB7kB,KAAK6kB,OAAO,cAC/C7kB,KAAKk53B,6BADT,CAIA,IAAIzq2B,EAAgBzuB,KAAK6kB,OAAO,iBAChC7kB,KAAK85U,gBAAgBr/T,MAAK,SAAC5Z,EAAOX,GAC1BuuB,IAAkB5tB,IAClB6M,EAAAA,GAAAA,GAAExN,GAAMmc,KAAK652B,IAAuBz22B,SAASk22B,SAIzDuD,uBAAwB,WACpBl53B,KAAK85U,gBAAgBz9T,KAAK652B,IAAuBr+1B,YAAY891B,KAEjEuE,6BAA8B,WAC1B,GAAKl63B,KAAKoyZ,YAAV,CAGA,IAAIpwY,EAAYhiB,KAAK6kB,OAAO,iBACxBg3G,EAAY77H,KAAKm33B,cAAgB,EACjC9mmB,EAAY1qQ,KAAK+iK,KAAK1mK,EAAYhiB,KAAKg33B,iBAC3C3mmB,EAAY1qQ,KAAKG,IAAI+1G,EAAWw0J,GAChCrwR,KAAKoyZ,YAAY/1Y,KAAK252B,IAAiCn+1B,YAAYo+1B,IAAuCru0B,GAAGyoO,GAAW5wQ,SAASw22B,MAErI4B,uBAAwB,WACpB,IAAIlL,EAAc3s3B,KAAK6Z,WACnB6/1B,EAAe152B,KAAK6kB,OAAO,iBAAmB7kB,KAAKywY,cAAgB,EACvEzwY,KAAKonP,iBAAiBuloB,EAAa35kB,GAAAA,EAAW,CAC1C5nS,SAAUpL,KAAK6kB,OAAO,cAAgB601B,EACtCjnkB,QAASzyS,KAAKkxV,mBAAmBzmV,KAAKzK,MACtC2yS,UAAW3yS,KAAKmxV,oBAAoB1mV,KAAKzK,MACzC6yS,MAAO7yS,KAAKoxV,iBAAiB3mV,KAAKzK,MAClC8tS,aAAc9tS,KAAKsne,cAAc78d,KAAKzK,SAG9Cm63B,wBAAyB,SAAS353B,EAAGi63B,GACjC,GAAKz63B,KAAK6kB,OAAO,oBAAjB,CAGA,IAAI7C,EAAYhiB,KAAK063B,mBAAmBD,EAAiBz63B,KAAKg33B,iBAC9Dh33B,KAAK263B,eAAgB,EACrB363B,KAAK6kB,OAAO,gBAAiB7C,GAC7BhiB,KAAKo43B,sBAAsBp22B,KAE/B012B,kBAAmB,WACf,IAAI9hsB,EAAO51L,KACN41L,EAAK/wK,OAAO,mBAIjB+wK,EAAKglsB,gBAAiBlt3B,EAAAA,GAAAA,GAAE,SAASuqB,SAASj4B,KAAKsvX,WAC/C15L,EAAKwxD,iBAAiBxxD,EAAKglsB,eAAgBzE,GAAkB,CACzD96uB,UAAW,OACXr0E,QAAS,WACL4uH,EAAKilsB,eAGbjlsB,EAAKklsB,gBAAiBpt3B,EAAAA,GAAAA,GAAE,SAASuqB,SAASj4B,KAAKsvX,WAC/C15L,EAAKwxD,iBAAiBxxD,EAAKklsB,eAAgB3E,GAAkB,CACzD96uB,UAAW,OACXr0E,QAAS,WACL4uH,EAAKmlsB,eAGb/63B,KAAKg73B,+BAjBDplsB,EAAKqlsB,oBAmBbJ,UAAW,WACP,IAAIK,EAAkBl73B,KAAKg33B,gBACvBhpgB,EAAmBhuX,KAAK6kB,OAAO,iBAAmBq22B,EACtD,OAAIltgB,KAAsBktgB,GAAmBA,IAAoBl73B,KAAKywY,cAC3DzwY,KAAKg53B,eAAehrgB,EAAkB,GAEtChuX,KAAKm73B,SAASn73B,KAAK063B,mBAAmB1sgB,KAGrD+sgB,UAAW,WACP,IAAIG,EAAkBl73B,KAAKg33B,gBACvBhpgB,EAAmBhuX,KAAK6kB,OAAO,iBAAmBq22B,EACtD,OAAIltgB,IAAqBktgB,GAAmBA,IAAoBl73B,KAAKywY,cAC1DzwY,KAAKg53B,eAAehrgB,EAAkB,GAEtChuX,KAAKm73B,SAASn73B,KAAK063B,mBAAmB1sgB,IAAmB50V,KAAKp5B,KAAKo43B,wBAGlFA,sBAAuB,SAAS3p2B,GAC5BA,OAAgB,IAAWA,EAAgBzuB,KAAK6kB,OAAO,iBAAmB4J,EACtEzuB,KAAK65R,aAAe75R,KAAK65R,YAAYpzO,YAAczmD,KAAKo73B,oBAAoB3s2B,KAAmBzuB,KAAK47R,yBAA2B57R,KAAKoxR,eACpIpxR,KAAK89V,gBAAgB1kU,KAAK,WACtBp5B,KAAK233B,mBACL333B,KAAKk43B,uBACLl43B,KAAKy33B,uBACLz33B,KAAKg73B,8BACLh73B,KAAKw33B,iBAAiB/o2B,IACxBhkB,KAAKzK,QAGfo73B,oBAAqB,SAAS3s2B,GAE1B,OAAOA,EAAgB,EADDzuB,KAAKg33B,gBACkBh33B,KAAK6kB,OAAO,SAASvkB,QAEtEm+V,yBAA0B,WACtB,OAAO,GAEXi8hB,mBAAoB,SAAS142B,GACzB,IAAIk12B,EAAel33B,KAAKg33B,gBACpBqE,EAAiBr52B,EAAY,EAAIk12B,EAAel12B,EAAYhiB,KAAKywY,cAAgBzuX,EAWrF,OAVIA,EAAYhiB,KAAKywY,cAAgB,GACjCzuX,EAAY,EACZhiB,KAAKs73B,gBAAiB,GACfD,EAAiBnE,GAAgBmE,EAAiB,IACrDr52B,EAAY,EACZA,GAAak12B,EAAemE,EAE5Br52B,GAAak12B,EAAemE,GAG7Br52B,GAEXi52B,iBAAkB,WACVj73B,KAAK463B,iBACL563B,KAAK463B,eAAep53B,gBACbxB,KAAK463B,gBAEZ563B,KAAK863B,iBACL963B,KAAK863B,eAAet53B,gBACbxB,KAAK863B,iBAGpBE,4BAA6B,WACzB,GAAKh73B,KAAK6kB,OAAO,mBAAsB7kB,KAAK463B,gBAAmB563B,KAAK863B,eAApE,CAGA,IAAIrs2B,EAAgBzuB,KAAK6kB,OAAO,iBAC5B03U,EAAOv8V,KAAK6kB,OAAO,QACnB6gV,EAAa1lW,KAAKywY,cAOtB,GANAzwY,KAAK463B,eAAep50B,OACpBxhD,KAAK863B,eAAet50B,OAChB,IAAMkkT,IACN1lW,KAAK463B,eAAe1wzB,OACpBlqE,KAAK863B,eAAe5wzB,SAEpBqyR,EAAJ,CAGA,IAAIg/hB,EAAa9s2B,IAAkBi3U,EAAa1lW,KAAKg33B,gBACjDwE,EAAa91hB,EAAa,GAAK,IAAMj3U,EAErC8s2B,EADAv73B,KAAK65R,aAAe75R,KAAK65R,YAAYpzO,WACxB800B,GAAcv73B,KAAKoxR,cAEnBmqmB,GAAc71hB,EAAa,EAExC81hB,GACAx73B,KAAK463B,eAAe1wzB,OAEpBqxzB,GACAv73B,KAAK863B,eAAe5wzB,UAG5B4tzB,gBAAiB,WACb,IAAIlisB,EAAO51L,KACPu23B,EAAiB3gsB,EAAK/wK,OAAO,kBACjCqZ,aAAa03J,EAAK6lsB,iBACblF,IAGL3gsB,EAAK6lsB,gBAAkB543B,YAAY,WAC3B+yL,EAAK8lsB,iBACL9lsB,EAAKkisB,kBAGTlisB,EAAK+lsB,UAAS,GAAMvi2B,KAAKw8J,EAAKkisB,mBAC9BvB,KAERjvZ,cAAe,WAIX,OAHKtne,KAAK473B,qBACN573B,KAAK473B,oBAAqB9+uB,EAAAA,GAAAA,IAAS98I,KAAK6Z,aAErC7Z,KAAK473B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GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,M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","sources":["url.ts","../node_modules/@devexpress/analytics-core/accessibility/_controlElementBase.js","../node_modules/@devexpress/analytics-core/accessibility/_controlElementWithParentHighlight.js","../node_modules/@devexpress/analytics-core/accessibility/_internal.js","../node_modules/@devexpress/analytics-core/accessibility/_keyboardHelperBase.js","../node_modules/@devexpress/analytics-core/accessibility/_keyboardHelperWithArrowButtonBase.js","../node_modules/@devexpress/analytics-core/accessibility/_listKeyboardHelper.js","../node_modules/@devexpress/analytics-core/accessibility/_rightPanelKeyboardHelper.js","../node_modules/@devexpress/analytics-core/accessibility/_accordionKeyboardHelper.js","../node_modules/@devexpress/analytics-core/accessibility/_toolbarKeyboardHelper.js","../node_modules/@devexpress/analytics-core/accessibility/_treeListKeyboardHelper.js","../node_modules/@devexpress/analytics-core/core/internal/_globalize.js","../node_modules/@devexpress/analytics-core/core/internal/_objectStructureControllers.js","../node_modules/@devexpress/analytics-core/core/internal/_objectStructureProviders.js","../node_modules/@devexpress/analytics-core/core/internal/_papperKindMapper.js","../node_modules/@devexpress/analytics-core/core/internal/_resizableBinding.js","../node_modules/@devexpress/analytics-core/core/widgets/_buttonInlineEditor.js","../node_modules/@devexpress/analytics-core/core/_actionProvider.js","../node_modules/@devexpress/analytics-core/widgets/_searchHighlighting.js","../node_modules/@devexpress/analytics-core/core/tools/_tabInfoWithPropertyGrid.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/bindingsCacheUtils.js","../node_modules/@devexpress/analytics-core/core/widgets/textAlignmentEditor/_textAlignmentEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/textAlignmentEditor/_binding.js","../node_modules/@devexpress/analytics-core/core/widgets/_fieldlistpicker.js","../node_modules/@devexpress/analytics-core/dx-analytics-core-bindings.js","../node_modules/@devexpress/analytics-core/dx-analytics-core-svg-bindings.js","../node_modules/@devexpress/analytics-core/dx-analytics-core-svg-templates.js","../node_modules/@devexpress/analytics-core/dx-analytics-core-templates.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/ellipsiseditor/_editor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/fileimageeditor/_editor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_extendedSvgTemplates.js","../node_modules/@devexpress/analytics-core/widgets/internal/_popupComponentBase.js","../node_modules/@devexpress/analytics-core/widgets/internal/_popupwithautoheight.js","../node_modules/@devexpress/analytics-core/widgets/treelist/_reorderTreeListDragDropHelper.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/guideditor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/editor.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/filtereditor.js","../node_modules/@devexpress/analytics-core/core/widgets/booleanEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/colorPickerEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/fieldListEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/dataMemberEditor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/registerBaseEdtior.js","../node_modules/@devexpress/analytics-core/core/widgets/registerDesignerEditors.js","../node_modules/@devexpress/analytics-core/core/_bindings.js","../node_modules/@devexpress/analytics-core/core/_metadata.js","../node_modules/@devexpress/analytics-core/core/binding/_jsDesignerBindingCommon.js","../node_modules/@devexpress/analytics-core/core/binding/_requestHelper.js","../node_modules/@devexpress/analytics-core/core/dragDrop/_dragDropHandler.js","../node_modules/@devexpress/analytics-core/core/dragDrop/_dragHelperContent.js","../node_modules/@devexpress/analytics-core/core/dragDrop/_selectionDragDropHandler.js","../node_modules/@devexpress/analytics-core/core/dragDrop/_toolboxDragDropHandler.js","../node_modules/@devexpress/analytics-core/core/dragDrop/_wizardDragDropHandler.js","../node_modules/@devexpress/analytics-core/core/elements/baseSurface.js","../node_modules/@devexpress/analytics-core/core/elements/elementViewModel.js","../node_modules/@devexpress/analytics-core/core/elements/margins.js","../node_modules/@devexpress/analytics-core/core/elements/paddingModel.js","../node_modules/@devexpress/analytics-core/core/elements/paddingModelMetaData.js","../node_modules/@devexpress/analytics-core/core/elements/point.js","../node_modules/@devexpress/analytics-core/core/elements/rectangle.js","../node_modules/@devexpress/analytics-core/core/elements/size.js","../node_modules/@devexpress/analytics-core/core/internal/_ajaxRequestManager.js","../node_modules/@devexpress/analytics-core/core/internal/_controlsHelper.js","../node_modules/@devexpress/analytics-core/core/internal/_cssCalculator.js","../node_modules/@devexpress/analytics-core/core/internal/_draggable.js","../node_modules/@devexpress/analytics-core/core/internal/_editorTypeMapper.js","../node_modules/@devexpress/analytics-core/core/internal/_fetchRequestManager.js","../node_modules/@devexpress/analytics-core/core/internal/_getNameHelpers.js","../node_modules/@devexpress/analytics-core/core/internal/_hoverInfo.js","../node_modules/@devexpress/analytics-core/core/internal/_inlineTextEdit.js","../node_modules/@devexpress/analytics-core/core/internal/_processError.js","../node_modules/@devexpress/analytics-core/core/internal/_resizable.js","../node_modules/@devexpress/analytics-core/core/internal/_scrollProcessor.js","../node_modules/@devexpress/analytics-core/core/internal/_stores.js","../node_modules/@devexpress/analytics-core/core/internal/_surfaceHelpers.js","../node_modules/@devexpress/analytics-core/core/internal/_utils.js","../node_modules/@devexpress/analytics-core/core/internal/_validation.js","../node_modules/@devexpress/analytics-core/core/internal/ajaxSetup.js","../node_modules/@devexpress/analytics-core/core/internal/dx-versions.js","../node_modules/@devexpress/analytics-core/analytics-version.js","../node_modules/@devexpress/analytics-core/core/internal/fetchSetup.js","../node_modules/@devexpress/analytics-core/core/internal/requestManager.js","../node_modules/@devexpress/analytics-core/core/internal/selectable.js","../node_modules/@devexpress/analytics-core/core/selection/_combinedObj.js","../node_modules/@devexpress/analytics-core/core/selection/_selection.js","../node_modules/@devexpress/analytics-core/core/selection/_selectionHelpers.js","../node_modules/@devexpress/analytics-core/core/snapLines/_snapLineSurface.js","../node_modules/@devexpress/analytics-core/core/snapLines/_snapLinesCollector.js","../node_modules/@devexpress/analytics-core/core/snapLines/_snapLinesHelper.js","../node_modules/@devexpress/analytics-core/core/tools/_actionList.js","../node_modules/@devexpress/analytics-core/core/tools/_copyPaste.js","../node_modules/@devexpress/analytics-core/core/tools/_keyboardHelper.js","../node_modules/@devexpress/analytics-core/core/tools/actionId.js","../node_modules/@devexpress/analytics-core/core/tools/tabInfo.js","../node_modules/@devexpress/analytics-core/core/tools/tabPanel.js","../node_modules/@devexpress/analytics-core/core/tools/toolbox.js","../node_modules/@devexpress/analytics-core/core/utils/_arrayutils.js","../node_modules/@devexpress/analytics-core/core/utils/_debug.js","../node_modules/@devexpress/analytics-core/core/utils/_designerCreator.js","../node_modules/@devexpress/analytics-core/core/utils/_designerInitializer.js","../node_modules/@devexpress/analytics-core/core/utils/_fieldListProvider.js","../node_modules/@devexpress/analytics-core/core/utils/_infoMessageHelpers.js","../node_modules/@devexpress/analytics-core/core/utils/_troubleshootingHelpers.js","../node_modules/@devexpress/analytics-core/core/utils/_units.js","../node_modules/@devexpress/analytics-core/core/utils/_utils.js","../node_modules/@devexpress/analytics-core/core/utils/_visitors.js","../node_modules/@devexpress/analytics-core/core/utils/controlsFactory.js","../node_modules/@devexpress/analytics-core/core/utils/parsers.js","../node_modules/@devexpress/analytics-core/core/widgets/_dataMemberEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/_popupEditorBase.js","../node_modules/@devexpress/analytics-core/core/widgets/_requiredNullableEditor.js","../node_modules/@devexpress/analytics-core/core/widgets/bordereditor/_binding.js","../node_modules/@devexpress/analytics-core/core/widgets/bordereditor/_bordereditor.js","../node_modules/@devexpress/analytics-core/core/widgets/propertygrid/_controlProperties.js","../node_modules/@devexpress/analytics-core/core/widgets/propertygrid/_group.js","../node_modules/@devexpress/analytics-core/property-grid/_propertiesAccessibilityProvider.js","../node_modules/@devexpress/analytics-core/property-grid/bindings.js","../node_modules/@devexpress/analytics-core/property-grid/internal/_addon.js","../node_modules/@devexpress/analytics-core/property-grid/internal/_codeResolver.js","../node_modules/@devexpress/analytics-core/property-grid/internal/_popupService.js","../node_modules/@devexpress/analytics-core/property-grid/localization/_localization.js","../node_modules/@devexpress/analytics-core/property-grid/localization/_localizationStringIds.js","../node_modules/@devexpress/analytics-core/property-grid/localization/localization.js","../node_modules/@devexpress/analytics-core/property-grid/localization/localization_utils.js","../node_modules/@devexpress/analytics-core/property-grid/propertygrid.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/collectioneditor/_bindings.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/collectioneditor/_editor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/editor.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/editorValidator.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/editorsInfo.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/_fonts.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/_model.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/fonteditor/metadata.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_bindingsCache.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_internal.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_svgTemplateEngine.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/internal/_utils.js","../node_modules/@devexpress/analytics-core/property-grid/widgets/templateUtils.js","../node_modules/@devexpress/analytics-core/serializer/_internal.js","../node_modules/@devexpress/analytics-core/serializer/_utils.js","../node_modules/@devexpress/analytics-core/serializer/eventManager.js","../node_modules/@devexpress/analytics-core/serializer/serializer.js","../node_modules/@devexpress/analytics-core/serializer/utils.js","../node_modules/@devexpress/analytics-core/undo-engine/_utils.js","../node_modules/@devexpress/analytics-core/undo-engine/undoengine.js","../node_modules/@devexpress/analytics-core/widgets/_utils.js","../node_modules/@devexpress/analytics-core/widgets/ace/_ace-available.js","../node_modules/@devexpress/analytics-core/widgets/bindings.js","../node_modules/@devexpress/analytics-core/widgets/common/_codeCompletor.js","../node_modules/@devexpress/analytics-core/widgets/common/_displayNameProvider.js","../node_modules/@devexpress/analytics-core/widgets/common/pathRequest.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/aggregate.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/between.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/binary.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/constant.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/criteriaOperator.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/function.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/group.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/in.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/join.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/binary.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/function.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/group.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/options/unary.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/parameter.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/property.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/unary.js","../node_modules/@devexpress/analytics-core/widgets/criteria/operators/value.js","../node_modules/@devexpress/analytics-core/widgets/criteria/parser/criteriaparser.js","../node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaEnumeration.js","../node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaOperatorPreprocessor.js","../node_modules/@devexpress/analytics-core/widgets/criteria/utils/criteriaOperatorStateMachine.js","../node_modules/@devexpress/analytics-core/widgets/criteria/utils/operatorTokens.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/_expressioneditor.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/bindings.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/expressioneditor.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_functions.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_operatorNames.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_tools.js","../node_modules/@devexpress/analytics-core/widgets/expressioneditor/tools/_treeListControllers.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/filtereditoroptions.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_addon.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_codeCompletor.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_helper.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_serializer.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_treelistController.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/_validator.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/helpers/helper.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/aggregateOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/betweenOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/binaryOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/criteriaOperatorSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/functionOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/groupOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/inOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandParameterSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandPropertySurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandSurfaceBase.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/operandValueSurface.js","../node_modules/@devexpress/analytics-core/widgets/filtereditor/operators/unaryOperandSurface.js","../node_modules/@devexpress/analytics-core/widgets/formatstring/_patterns.js","../node_modules/@devexpress/analytics-core/widgets/formatstring/binding.js","../node_modules/@devexpress/analytics-core/widgets/formatstring/formatstringeditor.js","../node_modules/@devexpress/analytics-core/widgets/internal/_resizeHelper.js","../node_modules/@devexpress/analytics-core/widgets/internal/_valueEditorHelper.js","../node_modules/@devexpress/analytics-core/widgets/treelist/_binding.js","../node_modules/@devexpress/analytics-core/widgets/treelist/_treeListSearchViewModel.js","../node_modules/@devexpress/analytics-core/widgets/treelist/_treelistController.js","../node_modules/@devexpress/analytics-core/widgets/treelist/_treelistItem.js","../node_modules/@devexpress/analytics-core/widgets/treelist/options.js","../node_modules/@devextreme/runtime/esm/inferno/effect_host.js","../node_modules/@devextreme/runtime/esm/inferno/base_component.js","../node_modules/@devextreme/runtime/esm/inferno/create_context.js","../node_modules/@devextreme/runtime/esm/inferno/effect.js","../node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","../node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","../node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","../node_modules/@devextreme/runtime/esm/inferno/render_template.js","../node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","../node_modules/@formatjs/ecma402-abstract/lib/262.js","../node_modules/@formatjs/ecma402-abstract/lib/CoerceOptionsToObject.js","../node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetOptionsObject.js","../node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","../node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/digit-mapping.generated.js","../node_modules/@formatjs/ecma402-abstract/lib/regex.generated.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","../node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","../node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","../node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","../node_modules/@formatjs/ecma402-abstract/lib/data.js","../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/BestAvailableLocale.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupSupportedLocales.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/UnicodeExtensionValue.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/ResolveLocale.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupMatcher.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/BestFitMatcher.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/utils.js","../node_modules/@formatjs/intl-localematcher/lib/index.js","../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeLocaleList.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/InitializeRelativeTimeFormat.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/MakePartsList.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/PartitionRelativeTimePattern.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/SingularRelativeTimeUnit.js","../node_modules/@formatjs/intl-relativetimeformat/get_internal_slots.js","../node_modules/@formatjs/intl-relativetimeformat/index.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/de.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/en.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/es.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/fr.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/ja.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/zh.js","../node_modules/@formatjs/intl-relativetimeformat/polyfill.js","../node_modules/@formatjs/intl-relativetimeformat/should-polyfill.js","../node_modules/@formatjs/intl-relativetimeformat/supported-locales.js","../node_modules/ace-builds/src-noconflict/ace.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/classnames/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/devextreme/esm/__internal/m_draggable.js","../node_modules/devextreme/esm/animation/frame.js","../node_modules/devextreme/esm/animation/easing.js","../node_modules/devextreme/esm/animation/fx.js","../node_modules/devextreme/esm/animation/position.js","../node_modules/devextreme/esm/animation/translator.js","../node_modules/devextreme/esm/color.js","../node_modules/devextreme/esm/core/action.js","../node_modules/devextreme/esm/core/class.js","../node_modules/devextreme/esm/core/component_registrator.js","../node_modules/devextreme/esm/core/component_registrator_callbacks.js","../node_modules/devextreme/esm/core/config.js","../node_modules/devextreme/esm/core/devices.js","../node_modules/devextreme/esm/core/dom_adapter.js","../node_modules/devextreme/esm/core/postponed_operations.js","../node_modules/devextreme/esm/core/component.js","../node_modules/devextreme/esm/core/template_manager.js","../node_modules/devextreme/esm/core/dom_component.js","../node_modules/devextreme/esm/core/element.js","../node_modules/devextreme/esm/core/element_data.js","../node_modules/devextreme/esm/core/errors.js","../node_modules/devextreme/esm/core/events_strategy.js","../node_modules/devextreme/esm/core/guid.js","../node_modules/devextreme/esm/core/memorized_callbacks.js","../node_modules/devextreme/esm/core/options/option_manager.js","../node_modules/devextreme/esm/core/utils/comparator.js","../node_modules/devextreme/esm/core/options/index.js","../node_modules/devextreme/esm/core/options/utils.js","../node_modules/devextreme/esm/core/renderer_base.js","../node_modules/devextreme/esm/core/renderer.js","../node_modules/devextreme/esm/core/resize_observer.js","../node_modules/devextreme/esm/core/templates/bindable_template.js","../node_modules/devextreme/esm/core/templates/child_default_template.js","../node_modules/devextreme/esm/core/templates/empty_template.js","../node_modules/devextreme/esm/core/templates/function_template.js","../node_modules/devextreme/esm/core/templates/template_base.js","../node_modules/devextreme/esm/core/http_request.js","../node_modules/devextreme/esm/core/utils/ajax.js","../node_modules/devextreme/esm/core/utils/array.js","../node_modules/devextreme/esm/core/utils/array_compare.js","../node_modules/devextreme/esm/core/utils/browser.js","../node_modules/devextreme/esm/core/utils/call_once.js","../node_modules/devextreme/esm/core/utils/callbacks.js","../node_modules/devextreme/esm/core/utils/common.js","../node_modules/devextreme/esm/core/utils/console.js","../node_modules/devextreme/esm/core/utils/data.js","../node_modules/devextreme/esm/renovation/ui/common/utils/date/toMilliseconds.js","../node_modules/devextreme/esm/core/utils/date.js","../node_modules/devextreme/esm/core/utils/date_serialization.js","../node_modules/devextreme/esm/core/utils/deferred.js","../node_modules/devextreme/esm/core/utils/dependency_injector.js","../node_modules/devextreme/esm/core/utils/dom.js","../node_modules/devextreme/esm/core/utils/error.js","../node_modules/devextreme/esm/core/utils/extend.js","../node_modules/devextreme/esm/core/utils/html_parser.js","../node_modules/devextreme/esm/core/utils/icon.js","../node_modules/devextreme/esm/core/utils/inflector.js","../node_modules/devextreme/esm/core/utils/iterator.js","../node_modules/devextreme/esm/core/utils/math.js","../node_modules/devextreme/esm/core/utils/object.js","../node_modules/devextreme/esm/core/utils/position.js","../node_modules/devextreme/esm/core/utils/public_component.js","../node_modules/devextreme/esm/core/utils/ready_callbacks.js","../node_modules/devextreme/esm/core/utils/resize_callbacks.js","../node_modules/devextreme/esm/core/utils/selection_filter.js","../node_modules/devextreme/esm/core/utils/shadow_dom.js","../node_modules/devextreme/esm/core/utils/size.js","../node_modules/devextreme/esm/core/utils/storage.js","../node_modules/devextreme/esm/core/utils/string.js","../node_modules/devextreme/esm/core/utils/style.js","../node_modules/devextreme/esm/core/utils/support.js","../node_modules/devextreme/esm/core/utils/svg.js","../node_modules/devextreme/esm/core/templates/template_engine_registry.js","../node_modules/devextreme/esm/core/templates/template.js","../node_modules/devextreme/esm/core/utils/template_manager.js","../node_modules/devextreme/esm/core/utils/type.js","../node_modules/devextreme/esm/core/utils/variable_wrapper.js","../node_modules/devextreme/esm/core/utils/version.js","../node_modules/devextreme/esm/core/utils/view_port.js","../node_modules/devextreme/esm/core/utils/window.js","../node_modules/devextreme/esm/core/version.js","../node_modules/devextreme/esm/data/abstract_store.js","../node_modules/devextreme/esm/data/array_query.js","../node_modules/devextreme/esm/data/array_store.js","../node_modules/devextreme/esm/data/array_utils.js","../node_modules/devextreme/esm/data/custom_store.js","../node_modules/devextreme/esm/data/data_source.js","../node_modules/devextreme/esm/core/utils/queue.js","../node_modules/devextreme/esm/data/data_source/operation_manager.js","../node_modules/devextreme/esm/data/data_source/data_source.js","../node_modules/devextreme/esm/data/data_source/utils.js","../node_modules/devextreme/esm/data/errors.js","../node_modules/devextreme/esm/data/query_adapters.js","../node_modules/devextreme/esm/data/remote_query.js","../node_modules/devextreme/esm/data/query_implementation.js","../node_modules/devextreme/esm/data/query.js","../node_modules/devextreme/esm/data/store_helper.js","../node_modules/devextreme/esm/data/utils.js","../node_modules/devextreme/esm/ui/collection/data_controller.js","../node_modules/devextreme/esm/data_helper.js","../node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","../node_modules/devextreme/esm/events/click.js","../node_modules/devextreme/esm/events/contextmenu.js","../node_modules/devextreme/esm/events/core/emitter.feedback.js","../node_modules/devextreme/esm/events/core/emitter.js","../node_modules/devextreme/esm/events/core/emitter_registrator.js","../node_modules/devextreme/esm/events/core/event_registrator.js","../node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","../node_modules/devextreme/esm/events/core/hook_touch_props.js","../node_modules/devextreme/esm/events/core/events_engine.js","../node_modules/devextreme/esm/events/core/keyboard_processor.js","../node_modules/devextreme/esm/events/core/wheel.js","../node_modules/devextreme/esm/events/double_click.js","../node_modules/devextreme/esm/events/drag.js","../node_modules/devextreme/esm/events/gesture/emitter.gesture.js","../node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","../node_modules/devextreme/esm/events/gesture/swipeable.js","../node_modules/devextreme/esm/events/hold.js","../node_modules/devextreme/esm/events/hover.js","../node_modules/devextreme/esm/events/index.js","../node_modules/devextreme/esm/events/pointer/base.js","../node_modules/devextreme/esm/events/pointer/touch.js","../node_modules/devextreme/esm/events/pointer/mouse.js","../node_modules/devextreme/esm/events/pointer/observer.js","../node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","../node_modules/devextreme/esm/events/pointer.js","../node_modules/devextreme/esm/events/remove.js","../node_modules/devextreme/esm/events/short.js","../node_modules/devextreme/esm/events/swipe.js","../node_modules/devextreme/esm/events/transform.js","../node_modules/devextreme/esm/events/utils/add_namespace.js","../node_modules/devextreme/esm/events/utils/index.js","../node_modules/devextreme/esm/events/visibility_change.js","../node_modules/devextreme/esm/integration/knockout/utils.js","../node_modules/devextreme/esm/integration/knockout/template.js","../node_modules/devextreme/esm/core/utils/locker.js","../node_modules/devextreme/esm/integration/knockout/component_registrator.js","../node_modules/devextreme/esm/integration/knockout/event_registrator.js","../node_modules/devextreme/esm/integration/knockout/components.js","../node_modules/devextreme/esm/integration/knockout/validation.js","../node_modules/devextreme/esm/integration/knockout/variable_wrapper_utils.js","../node_modules/devextreme/esm/integration/knockout/clean_node.js","../node_modules/devextreme/esm/integration/knockout/clean_node_old.js","../node_modules/devextreme/esm/integration/knockout.js","../node_modules/devextreme/esm/localization.js","../node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","../node_modules/devextreme/esm/localization/parentLocale.js","../node_modules/devextreme/esm/localization/core.js","../node_modules/devextreme/esm/localization/currency.js","../node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","../node_modules/devextreme/esm/localization/intl/date.js","../node_modules/devextreme/esm/localization/date.js","../node_modules/devextreme/esm/localization/default_date_names.js","../node_modules/devextreme/esm/localization/ldml/date.format.js","../node_modules/devextreme/esm/localization/ldml/date.formatter.js","../node_modules/devextreme/esm/localization/ldml/date.parser.js","../node_modules/devextreme/esm/localization/ldml/number.js","../node_modules/devextreme/esm/localization/message.js","../node_modules/devextreme/esm/localization/default_messages.js","../node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","../node_modules/devextreme/esm/localization/intl/number.js","../node_modules/devextreme/esm/localization/open_xml_currency_format.js","../node_modules/devextreme/esm/localization/number.js","../node_modules/devextreme/esm/localization/utils.js","../node_modules/devextreme/esm/renovation/common/config_context.js","../node_modules/devextreme/esm/core/inferno_renderer.js","../node_modules/devextreme/esm/renovation/utils/shallow_equals.js","../node_modules/devextreme/esm/renovation/component_wrapper/common/mutations_recording.js","../node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","../node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","../node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","../node_modules/devextreme/esm/renovation/ui/common/base_props.js","../node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","../node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","../node_modules/devextreme/esm/renovation/common/config_provider.js","../node_modules/devextreme/esm/renovation/ui/common/widget.js","../node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","../node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","../node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","../node_modules/devextreme/esm/renovation/utils/combine_classes.js","../node_modules/devextreme/esm/renovation/utils/get_computed_style.js","../node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","../node_modules/devextreme/esm/renovation/utils/type_conversion.js","../node_modules/devextreme/esm/ui/box.js","../node_modules/devextreme/esm/renovation/component_wrapper/button.js","../node_modules/devextreme/esm/renovation/ui/common/icon.js","../node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","../node_modules/devextreme/esm/renovation/ui/button.js","../node_modules/devextreme/esm/renovation/ui/button.j.js","../node_modules/devextreme/esm/ui/button.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.selection.strategy.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.single.selection.strategy.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.multi.selection.strategy.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.range.selection.strategy.js","../node_modules/devextreme/esm/ui/calendar/ui.calendar.js","../node_modules/devextreme/esm/ui/calendar.js","../node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","../node_modules/devextreme/esm/renovation/utils/dom.js","../node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","../node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","../node_modules/devextreme/esm/ui/check_box.js","../node_modules/devextreme/esm/ui/collection/item.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","../node_modules/devextreme/esm/ui/color_box/color_box.js","../node_modules/devextreme/esm/ui/color_box/color_view.js","../node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","../node_modules/devextreme/esm/ui/context_menu.js","../node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","../node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","../node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","../node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","../node_modules/devextreme/esm/ui/date_box/ui.date_view.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","../node_modules/devextreme/esm/ui/date_box/ui.time_view.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","../node_modules/devextreme/esm/ui/date_box/ui.date_box.js","../node_modules/devextreme/esm/ui/date_box.js","../node_modules/devextreme/esm/ui/draggable.js","../node_modules/devextreme/esm/ui/drop_down_box.js","../node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","../node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","../node_modules/devextreme/esm/ui/drop_down_editor/utils.js","../node_modules/devextreme/esm/ui/editor/editor.js","../node_modules/devextreme/esm/ui/editor/ui.data_expression.js","../node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","../node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","../node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_menu_helper.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.context.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.button.js","../node_modules/devextreme/esm/ui/action_sheet.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.switchable.slide.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.static.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.swipe.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.reorder.js","../node_modules/devextreme/esm/ui/list.js","../node_modules/devextreme/esm/ui/list/modules/search.js","../node_modules/devextreme/esm/ui/radio_group/radio_button.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","../node_modules/devextreme/esm/ui/list/item.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","../node_modules/devextreme/esm/ui/list/ui.list.base.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.js","../node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","../node_modules/devextreme/esm/ui/list_light.js","../node_modules/devextreme/esm/ui/load_indicator.js","../node_modules/devextreme/esm/ui/load_panel.js","../node_modules/devextreme/esm/ui/menu/ui.submenu.js","../node_modules/devextreme/esm/ui/menu/ui.menu.js","../node_modules/devextreme/esm/ui/menu.js","../node_modules/devextreme/esm/ui/notify.js","../node_modules/devextreme/esm/ui/number_box/utils.js","../node_modules/devextreme/esm/ui/number_box/number_box.caret.js","../node_modules/devextreme/esm/ui/number_box/number_box.spin.js","../node_modules/devextreme/esm/ui/number_box/number_box.spins.js","../node_modules/devextreme/esm/ui/number_box/number_box.base.js","../node_modules/devextreme/esm/ui/number_box/number_box.mask.js","../node_modules/devextreme/esm/ui/number_box/number_box.js","../node_modules/devextreme/esm/ui/number_box.js","../node_modules/devextreme/esm/ui/overlay/overlay_position_controller.js","../node_modules/devextreme/esm/mobile/hide_callback.js","../node_modules/devextreme/esm/ui/overlay/ui.overlay.js","../node_modules/devextreme/esm/ui/overlay/utils.js","../node_modules/devextreme/esm/ui/overlay/z_index.js","../node_modules/devextreme/esm/ui/popover/ui.popover.full.js","../node_modules/devextreme/esm/ui/popover.js","../node_modules/devextreme/esm/renovation/ui/resizable/utils.js","../node_modules/devextreme/esm/ui/popover/popover_position_controller.js","../node_modules/devextreme/esm/ui/popover/ui.popover.js","../node_modules/devextreme/esm/ui/popup/ui.popup.full.js","../node_modules/devextreme/esm/ui/popup.js","../node_modules/devextreme/esm/ui/popup/popup_drag.js","../node_modules/devextreme/esm/ui/resizable.js","../node_modules/devextreme/esm/ui/popup/popup_position_controller.js","../node_modules/devextreme/esm/ui/popup/popup_overflow_manager.js","../node_modules/devextreme/esm/ui/popup/ui.popup.js","../node_modules/devextreme/esm/ui/radio_group/radio_group.js","../node_modules/devextreme/esm/ui/radio_group.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","../node_modules/devextreme/esm/ui/scroll_view.js","../node_modules/devextreme/esm/ui/scroll_view/animator.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.old.js","../node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","../node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","../node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","../node_modules/devextreme/esm/ui/select_box.js","../node_modules/devextreme/esm/ui/selection/selection.strategy.js","../node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","../node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","../node_modules/devextreme/esm/ui/selection/selection.js","../node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","../node_modules/devextreme/esm/__internal/m_sortable.js","../node_modules/devextreme/esm/ui/sortable.js","../node_modules/devextreme/esm/ui/tag_box.js","../node_modules/devextreme/esm/ui/text_area.js","../node_modules/devextreme/esm/ui/text_box/text_box.js","../node_modules/devextreme/esm/ui/text_box.js","../node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","../node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","../node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","../node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","../node_modules/devextreme/esm/ui/text_box/utils.caret.js","../node_modules/devextreme/esm/ui/text_box/utils.scroll.js","../node_modules/devextreme/esm/ui/themes.js","../node_modules/devextreme/esm/ui/themes_callback.js","../node_modules/devextreme/esm/ui/toast/ui.toast.js","../node_modules/devextreme/esm/ui/toast.js","../node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","../node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.multiline.js","../node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.list.js","../node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.js","../node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.singleline.js","../node_modules/devextreme/esm/ui/toolbar/ui.toolbar.js","../node_modules/devextreme/esm/ui/toolbar.js","../node_modules/devextreme/esm/ui/toolbar/constants.js","../node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","../node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","../node_modules/devextreme/esm/ui/tooltip/tooltip.js","../node_modules/devextreme/esm/ui/tooltip.js","../node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","../node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","../node_modules/devextreme/esm/ui/tree_view.js","../node_modules/devextreme/esm/ui/validation_engine.js","../node_modules/devextreme/esm/ui/validation_group.js","../node_modules/devextreme/esm/ui/validation_message.js","../node_modules/devextreme/esm/ui/validation_summary.js","../node_modules/devextreme/esm/ui/validation/default_adapter.js","../node_modules/devextreme/esm/ui/validator.js","../node_modules/devextreme/esm/ui/widget/selectors.js","../node_modules/devextreme/esm/ui/widget/swatch_container.js","../node_modules/devextreme/esm/ui/widget/ui.errors.js","../node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","../node_modules/devextreme/esm/core/utils/stubs.js","../node_modules/devextreme/esm/ui/widget/ui.widget.js","../node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","../node_modules/devextreme/esm/viz/palette.js","../node_modules/devextreme/esm/viz/core/base_theme_manager.js","../node_modules/devextreme/esm/viz/core/errors_warnings.js","../node_modules/devextreme/esm/viz/core/layout.js","../node_modules/devextreme/esm/common/charts.js","../node_modules/devextreme/esm/viz/core/base_widget.utils.js","../node_modules/devextreme/esm/viz/core/base_widget.js","../node_modules/devextreme/esm/viz/core/helpers.js","../node_modules/devextreme/esm/viz/core/renderers/animation.js","../node_modules/devextreme/esm/viz/core/renderers/renderer.js","../node_modules/devextreme/esm/viz/core/utils.js","../node_modules/devextreme/esm/viz/core/themes/generic.light.js","../node_modules/devextreme/esm/viz/core/themes/generic.carmine.js","../node_modules/devextreme/esm/viz/core/themes/generic.dark.js","../node_modules/devextreme/esm/viz/core/themes/generic.contrast.js","../node_modules/devextreme/esm/viz/core/themes/generic.darkmoon.js","../node_modules/devextreme/esm/viz/core/themes/generic.darkviolet.js","../node_modules/devextreme/esm/viz/core/themes/generic.greenmist.js","../node_modules/devextreme/esm/viz/core/themes/generic.softblue.js","../node_modules/devextreme/esm/viz/core/themes/material.js","../node_modules/devextreme/esm/viz/themes.js","../node_modules/exenv/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/inferno-create-element/dist/index.esm.js","../node_modules/inferno/dist/index.esm.js","../node_modules/jquery/dist/jquery.js","../node_modules/knockout/build/output/knockout-latest.js","../node_modules/lodash.camelcase/index.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/deburr.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/has.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/mapKeys.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/snakeCase.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/words.js","../node_modules/property-expr/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-query/devtools/index.js","../node_modules/react-query/es/core/logger.js","../node_modules/react-query/es/core/notifyManager.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-query/es/core/subscribable.js","../node_modules/react-query/es/core/focusManager.js","../node_modules/react-query/es/core/onlineManager.js","../node_modules/react-query/es/core/retryer.js","../node_modules/react-query/es/core/query.js","../node_modules/react-query/es/core/queryCache.js","../node_modules/react-query/es/core/mutation.js","../node_modules/react-query/es/core/mutationCache.js","../node_modules/react-query/es/core/infiniteQueryBehavior.js","../node_modules/react-query/es/core/queryClient.js","../node_modules/react-query/es/core/utils.js","../node_modules/react-query/es/react/reactBatchedUpdates.js","../node_modules/react-query/es/react/setBatchUpdatesFn.js","../node_modules/react-query/es/react/logger.js","../node_modules/react-query/es/react/setLogger.js","../node_modules/react-query/es/react/QueryClientProvider.js","../node_modules/react-topbar-progress-indicator/src/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/toggle-selection/index.js","../node_modules/topbar/topbar.js","../node_modules/toposort/index.js","../node_modules/tslib/tslib.es6.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/amd define","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/chart.js/dist/chunks/helpers.segment.js","../node_modules/chart.js/dist/chart.esm.js","_metronic/i18n/Metronici18n.tsx","../node_modules/@syncfusion/ej2-base/src/util.js","../node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","../node_modules/@syncfusion/ej2-base/src/hijri-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","../node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","../node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","../node_modules/@syncfusion/ej2-base/src/observer.js","../node_modules/@syncfusion/ej2-base/src/internationalization.js","../node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","../node_modules/@syncfusion/ej2-base/src/ajax.js","../node_modules/@syncfusion/ej2-base/src/browser.js","../node_modules/@syncfusion/ej2-base/src/event-handler.js","../node_modules/@syncfusion/ej2-base/src/dom.js","../node_modules/@syncfusion/ej2-base/src/base.js","../node_modules/@syncfusion/ej2-base/src/notify-property-change.js","../node_modules/@syncfusion/ej2-base/src/animation.js","../node_modules/@syncfusion/ej2-base/src/module-loader.js","../node_modules/@syncfusion/ej2-base/src/validate-lic.js","../node_modules/@syncfusion/ej2-base/src/child-property.js","../node_modules/@syncfusion/ej2-base/src/component.js","../node_modules/@syncfusion/ej2-base/src/draggable.js","../node_modules/@syncfusion/ej2-base/src/droppable.js","../node_modules/@syncfusion/ej2-base/src/keyboard.js","../node_modules/@syncfusion/ej2-base/src/touch.js","../node_modules/@syncfusion/ej2-base/src/l10n.js","../node_modules/@syncfusion/ej2-base/src/template.js","../node_modules/@syncfusion/ej2-base/src/template-engine.js","../node_modules/rc-util/es/React/render.js","../node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","../node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/isEqual.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/util.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/@ant-design/cssinjs/es/hooks/useCompatibleInsertionEffect.js","../node_modules/@ant-design/cssinjs/es/hooks/useEffectCleanupRegister.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/linters/legacyNotSelectorLinter.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister/cacheMapUtil.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister/index.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/@ant-design/cssinjs/es/transformers/px2rem.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale/context.js","../node_modules/antd/es/locale/index.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/index.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/theme/context.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/hooks/useConfig.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/ref.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/useToken.js","../node_modules/antd/es/version/version.js","../node_modules/antd/es/config-provider/MotionWrapper.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/style/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/Notifications.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/antd/es/theme/util/statistic.js","../node_modules/antd/es/theme/util/genComponentStyleHook.js","../node_modules/antd/es/message/style/index.js","../node_modules/antd/es/message/PurePanel.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/antd/es/message/util.js","../node_modules/antd/es/message/useMessage.js","../node_modules/antd/es/message/index.js","serviceWorker.js","../../packages/react-router/lib/context.ts","../../packages/react-router/lib/router.ts","../../packages/react-router/lib/hooks.tsx","../../packages/react-router/lib/components.tsx","../../packages/react-router-dom/index.tsx","../node_modules/@ant-design/icons-svg/es/asn/WarningFilled.js","../node_modules/@ant-design/icons/es/icons/WarningFilled.js","../node_modules/antd/es/result/noFound.js","../node_modules/antd/es/result/serverError.js","../node_modules/antd/es/result/unauthorized.js","../node_modules/antd/es/result/style/index.js","../node_modules/antd/es/result/index.js","../node_modules/@ant-design/pro-utils/es/components/ErrorBoundary/index.js","../node_modules/clsx/dist/clsx.m.js","_metronic/helpers/AssetHelpers.ts","_metronic/helpers/RouterHelpers.ts","../node_modules/react-from-dom/src/helpers.ts","../node_modules/react-from-dom/src/index.ts","../node_modules/react-inlinesvg/src/helpers.ts","../node_modules/react-inlinesvg/src/index.tsx","_metronic/helpers/components/KTSVG.tsx","_metronic/layout/core/DefaultLayoutConfig.ts","_metronic/layout/core/LayoutSetup.ts","_metronic/layout/core/LayoutProvider.tsx","_metronic/layout/core/PageData.tsx","_metronic/layout/core/MetronicSplashScreen.tsx","_metronic/layout/components/header/MenuInner.tsx","_metronic/layout/components/header/Header.tsx","_metronic/layout/components/header/page-title/DefaultTitle.tsx","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","app/modules/auth/core/AuthHelpers.ts","app/modules/auth/core/_requests.ts","app/modules/auth/core/Auth.tsx","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/nanoclone/src/index.js","../node_modules/formik/src/ErrorMessage.tsx","../node_modules/formik/src/FastField.tsx","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/yup/es/util/toArray.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runTests.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/util/ReferenceSet.js","../node_modules/yup/es/schema.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/object.js","../node_modules/yup/es/array.js","_metronic/assets/ts/_utils/_ElementStyleUtil.ts","_metronic/assets/ts/_utils/_DataUtil.ts","_metronic/assets/ts/_utils/_TypesHelpers.ts","_metronic/assets/ts/_utils/_DOMEventHandlerUtil.ts","_metronic/assets/ts/_utils/ElementAnimateUtil.ts","_metronic/assets/ts/_utils/DomHelpers.ts","_metronic/assets/ts/_utils/EventHandlerUtil.ts","_metronic/assets/ts/components/_DrawerComponent.ts","_metronic/assets/ts/components/_FeedbackComponent.ts","_metronic/assets/ts/components/_ImageInputComponent.ts","_metronic/assets/ts/components/_CookieComponent.ts","_metronic/assets/ts/components/_ScrollComponent.ts","_metronic/assets/ts/components/_ScrollTopComponent.ts","_metronic/assets/ts/components/_StepperComponent.ts","_metronic/assets/ts/components/_StickyComponent.ts","_metronic/assets/ts/components/_ToggleComponent.ts","_metronic/assets/ts/components/_PasswordMeterComponent.ts","_metronic/assets/ts/components/_SwapperComponent.ts","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","_metronic/assets/ts/components/MenuComponent.ts","_metronic/assets/ts/components/SearchComponent.ts","app/modules/auth/components/Registration.tsx","app/modules/auth/components/ForgotPassword.tsx","app/modules/auth/components/Login.tsx","app/modules/auth/AuthPage.tsx","app/modules/auth/Logout.tsx","_metronic/partials/layout/header-menus/HeaderUserMenu.tsx","_metronic/layout/components/header/Topbar.tsx","_metronic/layout/components/header/Finance.tsx","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/antd/es/_util/transButton.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/antd/es/locale/useLocale.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/isMobile.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/theme/index.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/theme/util/genPresetColor.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/antd/es/tooltip/index.js","../node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","../node_modules/@ant-design/icons/es/icons/EnterOutlined.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/TextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/config-provider/hooks/useSize.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/style/compact-item.js","../node_modules/antd/es/input/style/index.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/style/operationUnit.js","../node_modules/antd/es/typography/style/index.js","../node_modules/antd/es/typography/style/mixins.js","../node_modules/antd/es/typography/Editable.js","../node_modules/antd/es/typography/Typography.js","../node_modules/antd/es/typography/hooks/useMergedConfig.js","../node_modules/antd/es/typography/hooks/useUpdatedEffect.js","../node_modules/antd/es/typography/Base/Ellipsis.js","../node_modules/antd/es/typography/Base/EllipsisTooltip.js","../node_modules/antd/es/typography/Base/index.js","../node_modules/antd/es/typography/Link.js","../node_modules/antd/es/typography/Paragraph.js","../node_modules/antd/es/typography/Text.js","../node_modules/antd/es/typography/Title.js","../node_modules/antd/es/typography/index.js","_metronic/layout/components/header/HeaderWrapper.tsx","_metronic/layout/components/ScrollTop.tsx","_metronic/layout/components/Content.tsx","_metronic/layout/MasterLayout.tsx","app/modules/errors/components/Error404.tsx","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/index.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/rc-tabs/es/index.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/tabs/style/motion.js","../node_modules/antd/es/tabs/style/index.js","../node_modules/antd/es/tabs/index.js","pages/reports/ReportsPage.tsx","pages/dashboards/DashboardsPage.tsx","constants/CustomStyles.ts","pages/MainLandingPage.tsx","constants/CustomBreadCrumb.tsx","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa/index.mjs","constants/CustomCard.tsx","pages/reports/allReportsPages/FinanceReportsPage.tsx","pages/reports/allReportsPages/ProductionReportsPage.tsx","pages/reports/allReportsPages/HRReportsPage.tsx","pages/reports/allReportsPages/EquipServiceReportsPage.tsx","pages/reports/allReportsPages/SupplyChainReportsPage.tsx","../node_modules/devexpress-reporting/common/imageSource.js","../node_modules/devexpress-reporting/common/metadata.js","../node_modules/devexpress-reporting/common/binding/exportOptionsEventArgs.js","../node_modules/devexpress-reporting/common/binding/eventGenerator.js","../node_modules/devexpress-reporting/common/versions.js","../node_modules/devexpress-reporting/dx-reporting-version.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/pictureEditMode.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorTypes.js","../node_modules/devexpress-reporting/common/utils/editingFieldExtensions.js","../node_modules/devexpress-reporting/common/utils/_utils.js","../node_modules/devexpress-reporting/common/widgets/_editorTemplates.js","../node_modules/devexpress-reporting/common/exportOptions/metadata.js","../node_modules/devexpress-reporting/common/exportOptions/csvMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/csvExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/options/docxExportDocumentOptions.js","../node_modules/devexpress-reporting/common/exportOptions/rtfMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/docxMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/docxExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/emailExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/emailMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/htmlMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/htmlExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/imageMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/imageExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/mhtMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/mhtExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/options/pdfExportDocumentOptions.js","../node_modules/devexpress-reporting/common/exportOptions/options/pdfPermissionsOptions.js","../node_modules/devexpress-reporting/common/exportOptions/options/pdfPasswordSecurityOptions.js","../node_modules/devexpress-reporting/common/exportOptions/pdfMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/pdfExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/printPreviewMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/printPreviewOptions.js","../node_modules/devexpress-reporting/common/exportOptions/rtfExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/textMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/textExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/xlsMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/xlsExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/xlsxMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/xlsxExportOptions.js","../node_modules/devexpress-reporting/common/exportOptions/exportOptionsMetaData.js","../node_modules/devexpress-reporting/common/exportOptions/exportOptions.js","../node_modules/devexpress-reporting/viewer/constants.js","../node_modules/devexpress-reporting/viewer/accessibility/_previewBricksKeyboardHelper.js","../node_modules/devexpress-reporting/viewer/settings.js","../node_modules/devexpress-reporting/viewer/editing/models/textEditingField.js","../node_modules/devexpress-reporting/viewer/editing/models/characterCombEditingField.js","../node_modules/devexpress-reporting/viewer/editing/models/checkEditingField.js","../node_modules/devexpress-reporting/viewer/internal/_previewSelection.js","../node_modules/devexpress-reporting/viewer/editing/models/imageEditingField.js","../node_modules/devexpress-reporting/viewer/editing/models/popupImageEditingField.js","../node_modules/devexpress-reporting/viewer/editing/editingField.js","../node_modules/devexpress-reporting/viewer/exportOptions/csvExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/metadata.js","../node_modules/devexpress-reporting/viewer/internal/_previewRequestWrapper.js","../node_modules/devexpress-reporting/viewer/exportOptions/htmlExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/imageExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/mhtExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/rtfExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/xlsExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/xlsxExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/docxExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/widgets/_groupEditor.js","../node_modules/devexpress-reporting/viewer/widgets/signatureEditor.js","../node_modules/devexpress-reporting/viewer/widgets/editorTemplates.js","../node_modules/devexpress-reporting/viewer/exportOptions/pdfExportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/exportOptions/exportOptionsPreview.js","../node_modules/devexpress-reporting/viewer/internal/_utils.js","../node_modules/devexpress-reporting/viewer/internal/_exportHandler.js","../node_modules/devexpress-reporting/viewer/accessibility/_previewEditingFieldsKeyboardHelper.js","../node_modules/devexpress-reporting/viewer/internal/_brickUtils.js","../node_modules/devexpress-reporting/viewer/internal/_page.js","../node_modules/devexpress-reporting/viewer/internal/_pageLoader.js","../node_modules/devexpress-reporting/viewer/internal/_previewHandlersHelper.js","../node_modules/devexpress-reporting/viewer/internal/_progressViewModel.js","../node_modules/devexpress-reporting/viewer/internal/_sortingProcessor.js","../node_modules/devexpress-reporting/viewer/reportPreview.js","../node_modules/devexpress-reporting/viewer/binding/jsReportViewer.js","../node_modules/devexpress-reporting/viewer/documentMap/_documentMapItemsProvider.js","../node_modules/devexpress-reporting/viewer/documentMap/_documentMapTreeListController.js","../node_modules/devexpress-reporting/viewer/documentMap/_documentMapModel.js","../node_modules/devexpress-reporting/viewer/exportOptions/exportOptionsModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePage.js","../node_modules/devexpress-reporting/viewer/mobile/mobilePreview.js","../node_modules/devexpress-reporting/viewer/accessibility/_searchKeyboardHelper.js","../node_modules/devexpress-reporting/viewer/search/_searchResultNavigator.js","../node_modules/devexpress-reporting/viewer/search/_searchViewModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_mobileSearch.js","../node_modules/devexpress-reporting/viewer/mobile/internal/gallery/_galleryModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_paginator.js","../node_modules/devexpress-reporting/viewer/parameters/multiValuesHelper.js","../node_modules/devexpress-reporting/viewer/parameters/parameterHelper.js","../node_modules/devexpress-reporting/viewer/parameters/previewParameterHelper.js","../node_modules/devexpress-reporting/viewer/parameters/previewParameterValueValidator.js","../node_modules/devexpress-reporting/viewer/parameters/previewParameter.js","../node_modules/devexpress-reporting/viewer/parameters/parameterPanelItemBase.js","../node_modules/devexpress-reporting/viewer/parameters/previewParametersViewModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_editorTemplates.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePreviewParameterHelper.js","../node_modules/devexpress-reporting/viewer/mobile/utils/_mobileActionList.js","../node_modules/devexpress-reporting/viewer/internal/_previewModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_mobilePreviewModel.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_parametersPopup.js","../node_modules/devexpress-reporting/viewer/mobile/constants.js","../node_modules/devexpress-reporting/viewer/internal/_sizeUtils.js","../node_modules/devexpress-reporting/viewer/internal/_progressBarUtils.js","../node_modules/devexpress-reporting/viewer/mobile/utils/_mobileInitializer.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_sizeUtils.js","../node_modules/devexpress-reporting/viewer/search/_utils.js","../node_modules/devexpress-reporting/viewer/internal/_actions.js","../node_modules/devexpress-reporting/viewer/internal/_initializer.js","../node_modules/devexpress-reporting/viewer/binding/jsReportViewerBinding.js","../node_modules/devexpress-reporting/viewer/accessibility/_dateRangeKeyboardHelper.js","../node_modules/devexpress-reporting/dx-reporting-svg-bindings.js","../node_modules/devexpress-reporting/dx-reporting-svg-templates.js","../node_modules/devexpress-reporting/dx-viewer-bindings.js","../node_modules/devexpress-reporting/dx-viewer-templates.js","../node_modules/devexpress-reporting/viewer/internal/_bindings.js","../node_modules/devexpress-reporting/viewer/search/_dxSearchEditor.js","../node_modules/devextreme/esm/ui/gallery.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_eventProcessor.js","../node_modules/devexpress-reporting/viewer/mobile/internal/_mobileBindings.js","../node_modules/devexpress-reporting/viewer/mobile/internal/gallery/_galleryComponent.js","../node_modules/devexpress-reporting/common/utils/_locker.js","../node_modules/devexpress-reporting/viewer/widgets/dateRange/dateRangeEditor.js","../node_modules/devexpress-reporting/viewer/widgets/_multiValueEditor.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_imagePainter.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_signaturePainter.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_painter.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorToolbarItem.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorActionProvider.js","../node_modules/devexpress-reporting/viewer/widgets/pictureEditor/_pictureEditorModel.js","../node_modules/devextreme/esm/ui/track_bar.js","../node_modules/devextreme/esm/ui/slider/slider_tooltip_position_controller.js","../node_modules/devextreme/esm/ui/slider/ui.slider_tooltip.js","../node_modules/devextreme/esm/ui/slider/ui.slider_handle.js","../node_modules/devextreme/esm/ui/slider/ui.slider.js","constants/CommonReportComponent.jsx","app/routing/PrivateRoutes.tsx","app/modules/errors/components/Error500.tsx","app/modules/errors/ErrorsPage.tsx","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/components/provider.js","_metronic/i18n/i18nProvider.tsx","_metronic/assets/ts/layout/ThemeMode.ts","_metronic/layout/MasterInit.tsx","_metronic/layout/components/toolbar/ToolBarContext.tsx","app/App.tsx","app/routing/AppRoutes.tsx","index.tsx"],"sourcesContent":["import axios from 'axios'\n/*\n Use this file to define your base URLs whether on localhost or on the ENP server\n */\n// export const ENP_URL = 'http://localhost:3001'\n// export const ENP_URL = 'https://cors-anywhere.herokuapp.com/https://app.sipconsult.net/SmWebApi/api'\n// https://app.sipconsult.net/\n// export const ENP_URL = 'https://app.sipconsult.net/SmWebApi/api'\n// export const ENP_HR = 'https://app.sipconsult.net/hrWebApi/api'\n// export const ENP_USERS = 'https://app.sipconsult.net/hrwebapi/api/Users'\n\nexport const BASE_URL = 'https://enp.sipconsult.net'\nexport const ENP_URL = `${BASE_URL}/SmWebApi/api`\nexport const ENP_HR = `${BASE_URL}/hrWebApi/api`\nexport const ENP_USERS = `${BASE_URL}/hrwebapi/api/Users`\n\n// export const ENP_URL = 'http://localhost:4192'\n\nexport const fetchEquips = () => {\n return axios.get(`${ENP_URL}/VmequpsApi`)\n}\nexport const fetchModels = () => {\n return axios.get(`${ENP_URL}/VmmodlsApi`)\n}\nexport const fetchBrands = () => {\n return axios.get(`${ENP_URL}/LubeBrands`)\n}\nexport const fetchHours = () => {\n return axios.get(`${ENP_URL}/HoursEntry`)\n}\nexport const fetchCompartments = () => {\n return axios.get(`${ENP_URL}/Compartment`)\n}\nexport const fetchLubeBrands = () => {\n return axios.get(`${ENP_URL}/LubeBrands`)\n}\nexport const fetchRefillTypes = () => {\n return axios.get(`${ENP_URL}/RefillType`)\n}\nexport const fetchLubeConfigs = () => {\n return axios.get(`${ENP_URL}/LubeConfigs`)\n}\nexport const fetchLubeGrade = () => {\n return axios.get(`${ENP_URL}/LubeGrades`)\n}\nexport const fetchSections = () => {\n return axios.get(`${ENP_URL}/Sections`)\n}\nexport const fetchServices = () => {\n return axios.get(`${ENP_URL}/Services`)\n}\nexport const fetchGroups = () => {\n return axios.get(`${ENP_URL}/Groups`)\n}\nexport const fetchItems = () => {\n return axios.get(`${ENP_URL}/Items`)\n}\nexport const fetchItemValue = () => {\n return axios.get(`${ENP_URL}/ItemValue`)\n}\n\nexport const fetchDashBoardData = () => {\n return axios.get(`${ENP_HR}/SortedData`)\n}\n\nexport function fetchDocument(url: string) {\n return axios.get(`${ENP_URL}/${url}`)\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_controlElementBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '../serializer/utils';\nimport { addDisposeCallback } from '../serializer/_internal';\nexport class AccessibilityControlElementBase extends Disposable {\n constructor(element) {\n super();\n this.element = element;\n this._eventListeners = [];\n }\n dispose() {\n super.dispose();\n this._eventListeners.forEach((item) => { item.element.removeEventListener(item.eventType, item.listener); });\n this._eventListeners.length = 0;\n this.element = null;\n }\n addListener(element, eventType, handler) {\n var listener = (e) => {\n handler.call(this, e);\n };\n element.addEventListener(eventType, listener);\n addDisposeCallback(element, function () {\n element.removeEventListener(eventType, listener);\n });\n this._eventListeners.push({ element: element, eventType: eventType, listener: listener });\n }\n setTabIndex(index) {\n this.element.setAttribute('tabindex', index);\n }\n setFocus() {\n this.element.focus();\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_controlElementWithParentHighlight.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nexport class ControlElementWithParentHighlight extends AccessibilityControlElementBase {\n constructor(element, _parentElement) {\n super(element);\n this.element = element;\n this._parentElement = _parentElement;\n this._borderCssClassName = ['dxd-border-accented', 'dx-accessibility-container-highlight'];\n this.toolbarItemHandleFocus = () => {\n this._parentElement.classList.add(...this._borderCssClassName);\n };\n this.toolbarItemHandleBlur = () => {\n this._parentElement.classList.remove(...this._borderCssClassName);\n };\n element.addEventListener('focus', this.toolbarItemHandleFocus);\n element.addEventListener('blur', this.toolbarItemHandleBlur);\n }\n dispose() {\n this.element.removeEventListener('focus', this.toolbarItemHandleFocus);\n this.element.removeEventListener('blur', this.toolbarItemHandleBlur);\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_internal.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createGlobalModuleVariableFunc } from '../serializer/_internal';\nexport var accessibilityFontSizeZoomFactor = createGlobalModuleVariableFunc(1);\nexport var calculateWithZoomFactor = function (value) {\n return value * accessibilityFontSizeZoomFactor();\n};\n","/**\r\n* DevExpress Analytics (accessibility\\_keyboardHelperBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { KeyboardHelperBase, KeyDownHandlersManager } from '../core/tools/_keyboardHelper';\nimport { findFirstItemMatchesCondition } from '../core/utils/_arrayutils';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nexport class AccessibilityKeyboardHelperBase extends KeyboardHelperBase {\n constructor() {\n super();\n this.childrenInitialized = false;\n this.accessibilityCompliantEnabled = false;\n this.focusFirstFocusableDescendant = false;\n this.controlElements = [];\n this._eventListeners = [];\n this.setTabIndexes = (index) => {\n this.controlElements.forEach(button => button.setTabIndex(index));\n };\n this.liveRegion = () => {\n if (!this.liveRegionId)\n return null;\n if (!this._liveRegion || !this._liveRegion.element) {\n this._liveRegion = {\n element: document.getElementById(this.liveRegionId),\n changeText: (text, timeout = 200) => {\n return setTimeout(() => {\n if (this._liveRegion.element)\n this._liveRegion.element.textContent = text;\n }, timeout);\n }\n };\n }\n return this._liveRegion;\n };\n this.shortcutMap = {\n Esc: (e) => { return this.handleEscKey(e); },\n Tab: (e) => {\n var shiftKey = !!(e && e.shiftKey);\n return shiftKey ? this.handleShiftTabKey(e) : this.handleTabKey(e);\n },\n Enter: (e) => { return this.handleEnterKey(e); },\n Space: (e) => { return this.handleSpaceKey(e); },\n End: (e) => { return this.handleEndKey(e); },\n Home: (e) => { return this.handleHomeKey(e); },\n Up: (e) => { return this.handleUpArrowKey(e); },\n Down: (e) => { return this.handleDownArrowKey(e); },\n Left: (e) => { return this.handleLeftArrowKey(e); },\n Right: (e) => { return this.handleRightArrowKey(e); },\n };\n this.childrenShortcutMap = {\n Tab: (e, index) => {\n var shiftKey = !!(e && e.shiftKey);\n return shiftKey ? this.itemHandleShiftTabKey(e, index) : this.itemHandleTabKey(e, index);\n },\n Enter: (e, index) => { return this.itemHandleEnterKey(e, index); },\n Space: (e, index) => { return this.itemHandleSpaceKey(e, index); },\n End: (e, index) => { return this.itemHandleEndKey(e, index); },\n Home: (e, index) => { return this.itemHandleHomeKey(e, index); },\n Up: (e, index) => { return this.itemHandleUpArrowKey(e, index); },\n Down: (e, index) => { return this.itemHandleDownArrowKey(e, index); },\n Left: (e, index) => { return this.itemHandleLeftArrowKey(e, index); },\n Right: (e, index) => { return this.itemHandleRightArrowKey(e, index); },\n Esc: (e, index) => { return this.itemHandleEscKey(e, index); },\n };\n }\n _disposeItems() {\n this._eventListeners.forEach((item) => { item.element.removeEventListener(item.eventType, item.listener); });\n this._eventListeners.length = 0;\n this.disposeArray(this.controlElements);\n this.controlElements.length = 0;\n }\n initialize(predicate) {\n this._disposeItems();\n if (!this._elementContainer)\n return;\n var htmlElements = Array.prototype.slice.call(this._elementContainer.querySelectorAll('.' + this.controlElementClassName));\n if (!htmlElements.length)\n return;\n if (predicate)\n htmlElements = htmlElements.filter(predicate);\n htmlElements.forEach((element, index) => {\n var newItem = this.createControlElement(element, index);\n if (newItem) {\n this.controlElements.push(newItem);\n }\n });\n this.controlElements.forEach((item, index) => {\n this.addListener(item.element, index, 'click', this.clickHandler);\n });\n this.childrenInitialized = true;\n }\n getIndexByElement(htmlElement) {\n return this.controlElements.map(element => element.element).indexOf(htmlElement);\n }\n createControlElement(element, index) {\n return new AccessibilityControlElementBase(element);\n }\n getContainer() {\n return this._elementContainer;\n }\n changeFocus(index, roundTrip = true) {\n var elCount = this.controlElements.length - 1;\n if (index < 0)\n index = roundTrip ? elCount : 0;\n if (index > elCount)\n index = roundTrip ? 0 : elCount;\n this.controlElements[index].setFocus();\n return index;\n }\n bindHandler(elementContainer) {\n this._elementContainer = elementContainer;\n var handlersManager = new KeyDownHandlersManager(this._elementContainer);\n this.initialize();\n var handler = (e) => {\n var target = e.target;\n if (findFirstItemMatchesCondition(Object.keys(target.classList), (key) => target.classList[key] === this.controlElementClassName) && this.processChildrenShortcut(e, this.getIndexByElement(target))\n || this.processShortcut(e)) {\n e.stopPropagation();\n e.preventDefault();\n }\n };\n handlersManager.bindHandler(this._elementContainer, handler);\n }\n handleEscKey(e, index) {\n if (this._prevActiveElement) {\n this._prevActiveElement.focus();\n return true;\n }\n return false;\n }\n handleTabKey(e) {\n return false;\n }\n handleShiftTabKey(e) {\n return false;\n }\n handleEnterKey(e) {\n return false;\n }\n handleSpaceKey(e) {\n return false;\n }\n handleEndKey(e) {\n return false;\n }\n handleHomeKey(e) {\n return false;\n }\n handleUpArrowKey(e) {\n return false;\n }\n handleDownArrowKey(e) {\n return false;\n }\n handleLeftArrowKey(e) {\n return false;\n }\n handleRightArrowKey(e) {\n return false;\n }\n itemHandleHomeKey(e, index) {\n this.changeFocus(0);\n return true;\n }\n itemHandleEndKey(e, index) {\n this.changeFocus(this.controlElements.length - 1);\n return true;\n }\n itemHandleLeftArrowKey(e, index) {\n return false;\n }\n itemHandleRightArrowKey(e, index) {\n return false;\n }\n itemHandleEnterKey(e, index) {\n return false;\n }\n itemHandleSpaceKey(e, index) {\n return false;\n }\n itemHandleUpArrowKey(e, index) {\n return false;\n }\n itemHandleDownArrowKey(e, index) {\n return false;\n }\n itemHandleTabKey(e, index) {\n return false;\n }\n itemHandleShiftTabKey(e, index) {\n return false;\n }\n itemHandleEscKey(e, index) {\n return false;\n }\n setFocusToPrevious(currentIndex, roundTrip = true) {\n return this.changeFocus(currentIndex - 1, roundTrip);\n }\n setFocusToNext(currentIndex, roundTrip = true) {\n return this.changeFocus(currentIndex + 1, roundTrip);\n }\n clickHandler(e, index) {\n this.changeFocus(index);\n }\n dispose() {\n super.dispose();\n this._disposeItems();\n this._elementContainer = null;\n this._prevActiveElement = null;\n }\n addListener(element, index, eventType, handler) {\n var listener = (e) => {\n handler.call(this, e, index);\n };\n element.addEventListener(eventType, listener);\n addDisposeCallback(element, function () {\n element.removeEventListener(eventType, listener);\n });\n this._eventListeners.push({ element: element, eventType: eventType, listener: listener });\n }\n focus(prevActiveElement) {\n if (!this.childrenInitialized && !this._elementContainer)\n return;\n this._prevActiveElement = (prevActiveElement || document.activeElement);\n if (this.childrenInitialized && !this.focusFirstFocusableDescendant) {\n this.changeFocus(this.startIndex || 0);\n }\n else {\n var focusable = this._elementContainer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\n focusable.length && focusable[0].focus();\n }\n }\n lastFocusItem() {\n return document.getElementById('dxrd-designer-last-focus-item-blank');\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_keyboardHelperWithArrowButtonBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class KeyboardHelperWithArrowButtonBase extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.startIndex = 0;\n }\n resetTabIndexes() {\n this.setTabIndexes('-1');\n }\n initialize() {\n super.initialize();\n this.resetTabIndexes();\n this.controlElements[this.startIndex] && this.controlElements[this.startIndex].element.setAttribute('tabindex', '0');\n }\n changeFocus(index, roundTrip = true) {\n this.resetTabIndexes();\n var nextIndex = super.changeFocus(index, roundTrip);\n this.controlElements[nextIndex].setTabIndex('0');\n this.controlElements[nextIndex].setFocus();\n this.startIndex = nextIndex;\n return nextIndex;\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_listKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ControlElementWithParentHighlight } from './_controlElementWithParentHighlight';\nimport { KeyboardHelperWithArrowButtonBase } from './_keyboardHelperWithArrowButtonBase';\nexport class ListKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-list-item';\n }\n createControlElement(element, index) {\n return new ControlElementWithParentHighlight(element, this.getContainer());\n }\n itemHandleUpArrowKey(e, index) {\n this.startIndex = this.setFocusToPrevious(index, false);\n return true;\n }\n itemHandleDownArrowKey(e, index) {\n this.startIndex = this.setFocusToNext(index, false);\n return true;\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_rightPanelKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class RightPanelKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor(_tabPanel) {\n super();\n this._tabPanel = _tabPanel;\n this.controlElementClassName = 'dx-accessibility-rightpanel-button';\n }\n bindHandler(el) {\n super.bindHandler(el);\n this._disposables.push(ko.computed(() => {\n this._tabPanel.tabs.forEach((tab) => { ko.unwrap(tab.visible); });\n this.initialize();\n }).extend(({ rateLimit: { timeout: 1, method: 'notifyWhenChangesStop' } })));\n }\n initialize() {\n super.initialize();\n this.setTabIndexes(0);\n }\n createControlElement(element, index) {\n if (ko.unwrap(this._tabPanel.tabs[index].visible))\n return new AccessibilityControlElementBase(element);\n }\n itemHandleDownArrowKey(e, index) {\n this.setFocusToNext(index, true);\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n this.setFocusToPrevious(index, true);\n return true;\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_accordionKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { AccessibilityKeyboardHelperBase } from './_keyboardHelperBase';\nexport class AccordionKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dxrd-accessibility-accordion-trigger';\n this.focusFirstFocusableDescendant = true;\n this._triggersParentMap = {};\n }\n _getElementsCount() {\n return Array\n .from(this.getContainer().querySelectorAll('.' + this.controlElementClassName))\n .filter(elt => this._filterPredicate(elt))\n .length;\n }\n _defferedInit() {\n setTimeout(() => {\n if (this.controlElements.length !== this._getElementsCount()) {\n this.initialize();\n }\n }, 20);\n }\n _collapseItem(item) {\n const collapsed = ko.dataFor(item).collapsed;\n const alwaysShow = ko.dataFor(item).alwaysShow;\n collapsed(alwaysShow() ? false : !collapsed());\n this._defferedInit();\n }\n _updateTriggersTree() {\n this._triggersParentMap = Array\n .from(this.getContainer().querySelectorAll(`.${this.controlElementClassName}`))\n .reduce((acc, trigger) => {\n var _a;\n const parentTriggerId = (_a = trigger === null || trigger === void 0 ? void 0 : trigger.closest('.dx-accordion-content')) === null || _a === void 0 ? void 0 : _a.getAttribute('aria-labelledby');\n acc[trigger.id] = parentTriggerId;\n return acc;\n }, {});\n }\n _filterPredicate(elt) {\n var _a;\n let curEltId = elt.id;\n while (this._triggersParentMap && this._triggersParentMap[curEltId]) {\n if ((_a = ko.dataFor(document.getElementById(this._triggersParentMap[curEltId]))) === null || _a === void 0 ? void 0 : _a.collapsed()) {\n return false;\n }\n curEltId = this._triggersParentMap[curEltId];\n }\n return true;\n }\n initialize() {\n this._updateTriggersTree();\n super.initialize(elt => this._filterPredicate(elt));\n this.setTabIndexes(0);\n }\n itemHandleUpArrowKey(e, index) {\n this.setFocusToPrevious(index);\n return true;\n }\n itemHandleDownArrowKey(e, index) {\n this.setFocusToNext(index);\n return true;\n }\n itemHandleEnterKey(e, index) {\n this._collapseItem(e.target);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n this._collapseItem(e.target);\n return true;\n }\n clickHandler(e, index) {\n this._defferedInit();\n super.clickHandler(e, index);\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_toolbarKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport dxSelectBox from 'devextreme/ui/select_box';\nimport dxMenu from 'devextreme/ui/menu';\nimport { KeyboardHelperWithArrowButtonBase } from './_keyboardHelperWithArrowButtonBase';\nimport { ControlElementWithParentHighlight } from './_controlElementWithParentHighlight';\nimport { getLocalization } from '../property-grid/localization/localization_utils';\nexport class ToolbarKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor(_buttonModels) {\n super();\n this._buttonModels = _buttonModels;\n this.controlElementClassName = 'dx-accessibility-toolbar-item';\n this.liveRegionId = 'dxrd-preview-toolbar-live-region';\n this._disposables.push(ko.computed(() => {\n this.buttonModels.forEach((button) => { ko.unwrap(button.visible); });\n setTimeout(() => this.initialize(), 100);\n }));\n }\n createControlElement(element, index) {\n if (ko.unwrap(this.buttonModels[index].visible))\n return new ToolbarItemElement(element, this.getContainer(), this.buttonModels[index], this.liveRegion.bind(this));\n }\n itemHandleEnterKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute();\n return true;\n }\n itemHandleSpaceKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute();\n return true;\n }\n itemHandleLeftArrowKey(e, index) {\n this.setFocusToPrevious(index);\n return true;\n }\n itemHandleRightArrowKey(e, index) {\n this.setFocusToNext(index);\n return true;\n }\n get buttonModels() {\n return ko.unwrap(this._buttonModels);\n }\n}\nclass ToolbarItemElement extends ControlElementWithParentHighlight {\n constructor(element, _toolbarElement, _toolbarItemModel, _liveRegion) {\n super(element, _toolbarElement);\n this.element = element;\n this._toolbarItemModel = _toolbarItemModel;\n this._liveRegion = _liveRegion;\n this._selectBox = dxSelectBox.getInstance(element.children[0]);\n this._menu = dxMenu.getInstance(element.children[0]);\n }\n _complexItem() {\n if (this._selectBox || this._menu)\n return true;\n return false;\n }\n dispose() {\n super.dispose();\n this._menu = null;\n this._selectBox = null;\n }\n setFocus() {\n if (this._complexItem() && this.element.getAttribute('aria-disabled') !== 'true')\n this._liveRegion().changeText(getLocalization('press Enter or Space to activate the editor', 'ASPxReportsStringId.WebDocumentViewer_AriaActivateEditor'), 200);\n else\n this._liveRegion().changeText('');\n return super.setFocus();\n }\n actionExecute() {\n if (this._complexItem()) {\n this._liveRegion().changeText(getLocalization('Press Alt ↓ or Alt ↑ to navigate the editor. Press Shift Tab to exit navigation mode.', 'ASPxReportsStringId.WebDocumentViewer_AriaEditorKeyboardNavigation'), 500);\n }\n if (this._selectBox) {\n this._selectBox.focus();\n return;\n }\n if (this._menu) {\n this._menu.focus();\n return;\n }\n if (!ko.unwrap(this._toolbarItemModel.disabled))\n this._toolbarItemModel.clickAction();\n }\n}\n","/**\r\n* DevExpress Analytics (accessibility\\_treeListKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { AccessibilityControlElementBase } from './_controlElementBase';\nimport { ListKeyboardHelper } from './_listKeyboardHelper';\nexport class TreeListKeyboardHelper extends ListKeyboardHelper {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-treelist-item';\n }\n _setFocusToParentNode(item, index) {\n var offset = 1;\n var parentItems = item.parent.items();\n var indexOfParent = parentItems.indexOf(item);\n var getChildCount = (item, _offset) => {\n if (item.hasItems && !item.collapsed()) {\n item.items().forEach(element => {\n _offset += getChildCount(element, 0);\n });\n }\n _offset += 1;\n return _offset;\n };\n for (var i = 0; i < indexOfParent; i++) {\n offset += getChildCount(parentItems[i], 0);\n }\n this.changeFocus(index - offset);\n }\n _toggleCollapsed(item, model) {\n this.startIndex = this.getIndexByElement(item);\n model.toggleCollapsed();\n }\n _toggleSelected(el) {\n this._getItemModel(el).toggleSelected();\n }\n _getItemModel(el) {\n return ko.dataFor(el);\n }\n createControlElement(element, index) {\n return new AccessibilityControlElementBase(element);\n }\n itemHandleLeftArrowKey(e, index) {\n var item = this._getItemModel(e.target);\n if (item.hasItems && !item.collapsed()) {\n this._toggleCollapsed(e.target, item);\n }\n else {\n this._setFocusToParentNode(item, index);\n }\n return true;\n }\n itemHandleRightArrowKey(e, index) {\n var item = this._getItemModel(e.target);\n if (item.hasItems) {\n if (item.collapsed())\n this._toggleCollapsed(e.target, item);\n else\n this.changeFocus(index + 1, false);\n }\n return true;\n }\n itemHandleEnterKey(e, index) {\n this._toggleSelected(e.target);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n this._toggleSelected(e.target);\n return true;\n }\n clickHandler(e, index) {\n super.clickHandler(e, index);\n this.startIndex = index;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_globalize.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Globalize } from '../../property-grid/localization/_localization';\nimport * as localization from 'devextreme/localization';\nexport function initGlobalize(settings) {\n var globalize = Globalize;\n if (globalize && settings) {\n settings.cldrSupplemental && globalize.load(settings.cldrSupplemental);\n settings.cldrData && globalize.load(settings.cldrData);\n if (settings.currentCulture) {\n globalize.locale(settings.currentCulture);\n localization['locale'] && localization['locale'](settings.currentCulture);\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_objectStructureControllers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nexport class ObjectStructureTreeListController extends Disposable {\n constructor(propertyNames, listPropertyNames) {\n super();\n this.selectedItem = null;\n this.itemsFilter = (item, path) => {\n var realPropertyName = item.name.split('.')[0];\n return propertyNames ? propertyNames.indexOf(realPropertyName) !== -1 || $.isNumeric(realPropertyName) : true;\n };\n this.hasItems = (item) => {\n var realPropertyName = item.name.split('.')[0];\n return item.isList || (listPropertyNames ? listPropertyNames.indexOf(realPropertyName) !== -1 : false);\n };\n this.getActions = (item) => {\n return item.data && item.data['innerActions'] || [];\n };\n this.select = (value) => {\n this.selectedItem && this.selectedItem.isSelected(false);\n this.selectedItem = value;\n value.isSelected(true);\n };\n this.showIconsForChildItems = () => true;\n }\n dispose() {\n this.selectedItem = null;\n }\n canSelect(value) {\n return true;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_objectStructureProviders.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport class ObjectStructureProviderBase extends Disposable {\n constructor() {\n super(...arguments);\n this.selectedPath = ko.observable('');\n this.selectedMember = ko.observable();\n }\n getClassName(instance) {\n if (instance.className && instance.className()) {\n return instance.className();\n }\n var funcNameRegex = /function (.{1,})\\(/;\n var results = (funcNameRegex).exec((instance).constructor.toString());\n return (results && results.length > 1) ? results[1] : '';\n }\n createItem(currentTarget, propertyName, propertyValue, result) {\n var targetInfo = currentTarget.getInfo && currentTarget.getInfo();\n var propertyInfo = targetInfo && targetInfo.filter(propertyInfo => { return propertyInfo.propertyName === propertyName; })[0], unwrapPropertyValue = ko.unwrap(propertyValue);\n if (propertyInfo && unwrapPropertyValue !== null && typeof unwrapPropertyValue === 'object') {\n result.push({\n name: propertyName,\n displayName: getLocalization(propertyInfo.displayName, propertyInfo.localizationId),\n specifics: propertyName,\n innerActions: unwrapPropertyValue['innerActions'],\n isList: !!unwrapPropertyValue.push\n });\n }\n }\n getMemberByPath(target, path) {\n var pathComponents = path.split('.'), currentTarget = target;\n pathComponents.splice(0, 1);\n pathComponents.forEach((member) => {\n if (currentTarget && currentTarget[member]) {\n currentTarget = ko.unwrap(currentTarget[member]);\n }\n });\n return currentTarget;\n }\n getObjectPropertiesForPath(target, path, propertyName) {\n var currentTarget = this.getMemberByPath(target, path), result = [];\n if (currentTarget) {\n if (currentTarget.push) {\n this.createArrayItem(currentTarget, result, propertyName);\n }\n else {\n for (var name in currentTarget) {\n this.createItem(currentTarget, name, currentTarget[name], result);\n }\n }\n }\n return result;\n }\n createArrayItem(currentTarget, result, propertyName) {\n for (var i = 0; i < currentTarget.length; i++) {\n var unwrapArrayValue = ko.unwrap(currentTarget[i]);\n result.push({\n name: propertyName ? propertyName + '.' + i.toString() : i.toString(),\n displayName: ko.unwrap(unwrapArrayValue['displayName'] || unwrapArrayValue['name']),\n specifics: this.getClassName(unwrapArrayValue),\n innerActions: unwrapArrayValue['innerActions'],\n isList: !!unwrapArrayValue.push\n });\n }\n }\n}\nexport class ObjectExplorerProvider extends ObjectStructureProviderBase {\n constructor(rootITems, listPropertyNames, member, getPathByMember) {\n super();\n this.path = ko.observable('');\n this.getPathByMember = getPathByMember;\n this.listPropertyNames = listPropertyNames || [];\n this.getItems = (pathRequest) => {\n var result = $.Deferred();\n if (!pathRequest.fullPath) {\n result.resolve((rootITems || []).map((item) => {\n return { name: item.name, displayName: getLocalization(item.displayName) || item.name, isList: true, specifics: item.className, dragData: { noDragable: true }, data: ko.unwrap(item.data) };\n }));\n }\n else {\n var target = rootITems.filter((item) => { return item.name === pathRequest.fullPath.split('.')[0]; })[0];\n result.resolve(this.getObjectPropertiesForPath(ko.unwrap(target.model), pathRequest.fullPath, target.name));\n }\n return result.promise();\n };\n this._disposables.push(this.selectedPath = ko.computed({\n read: () => {\n if (member()) {\n if (this.path.peek()) {\n return this.getPathByMember && this.getPathByMember(member()).substr(this.path.peek().length + 1);\n }\n else {\n return this.getPathByMember && this.getPathByMember(member());\n }\n }\n else {\n return null;\n }\n },\n write: (newVal) => {\n if (!!newVal) {\n var root = !!this.path() ? this.path().split('.')[0] : newVal.split('.')[0];\n var rootItem = rootITems.filter(x => x.name === root)[0];\n if (!!rootItem) {\n member(this.getMemberByPath(ko.unwrap(rootItem.model), this.path() ? [this.path(), newVal].join('.') : newVal));\n }\n }\n else {\n member(null);\n }\n }\n }));\n }\n createArrayItem(currentTarget, result, propertyName) {\n for (var i = 0; i < currentTarget.length; i++) {\n var unwrapArrayValue = ko.unwrap(currentTarget[i]), isList = false;\n this.listPropertyNames.forEach((name) => {\n if (!isList && unwrapArrayValue[name] && ko.unwrap(unwrapArrayValue[name]).length > 0) {\n isList = true;\n }\n });\n var specifics = this.getClassName(unwrapArrayValue);\n result.push({\n name: propertyName ? propertyName + '.' + i.toString() : i.toString(),\n displayName: ko.unwrap(unwrapArrayValue['displayName'] || unwrapArrayValue['name']),\n specifics: specifics,\n isList: isList,\n data: unwrapArrayValue,\n dragData: {\n noDragable: !((propertyName === 'bands' && (specifics === 'groupheaderband' || specifics === 'groupfooterband' || specifics === 'detailreportband' || specifics === 'subband')) ||\n propertyName === 'controls' ||\n propertyName === 'rows' ||\n (propertyName === 'cells' && specifics !== 'xrcrosstabcell') ||\n propertyName === 'subBands' ||\n propertyName === 'Styles' ||\n propertyName === 'Formatting Rules')\n }\n });\n }\n }\n createItem(currentTarget, propertyName, propertyValue, result) {\n var isAvailableListProperty = this.listPropertyNames.length > 0 ? this.listPropertyNames.indexOf(propertyName) > -1 : true;\n if (isAvailableListProperty && propertyValue && propertyValue.push) {\n this.createArrayItem(ko.unwrap(propertyValue), result, propertyName);\n }\n }\n}\nexport class ObjectStructureProvider extends ObjectStructureProviderBase {\n constructor(target, displayName, localizationId) {\n super();\n this.getItems = (pathRequest) => {\n var result = $.Deferred();\n if (!pathRequest.fullPath) {\n result.resolve([{ name: displayName || ko.unwrap(target['name']), displayName: getLocalization(displayName || ko.unwrap(target['name']), localizationId), isList: true, specifics: target.className && target.className(), dragData: { noDragable: true } }]);\n }\n else {\n result.resolve(this.getObjectPropertiesForPath(ko.unwrap(target), pathRequest.fullPath));\n }\n return result.promise();\n };\n this._disposables.push(this.selectedPath.subscribe((path) => {\n this.selectedMember(ko.unwrap(this.getMemberByPath(ko.unwrap(target), path)));\n }));\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_papperKindMapper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { roundingXDecimals } from '../utils/_units';\nvar papperKindMapper = {\n A2: { width: 4200, height: 5940, unit: 'TenthsOfAMillimeter' },\n A3: { width: 2970, height: 4200, unit: 'TenthsOfAMillimeter' },\n A3Extra: { width: 3220, height: 4450, unit: 'TenthsOfAMillimeter' },\n A3ExtraTransverse: { width: 3220, height: 4450, unit: 'TenthsOfAMillimeter' },\n A3Rotated: { width: 4200, height: 2970, unit: 'TenthsOfAMillimeter' },\n A3Transverse: { width: 2970, height: 4200, unit: 'TenthsOfAMillimeter' },\n A4: { width: 2100, height: 2970, unit: 'TenthsOfAMillimeter' },\n A4Extra: { width: 2360, height: 3220, unit: 'TenthsOfAMillimeter' },\n A4Plus: { width: 2100, height: 3300, unit: 'TenthsOfAMillimeter' },\n A4Rotated: { width: 2970, height: 2100, unit: 'TenthsOfAMillimeter' },\n A4Small: { width: 2100, height: 2970, unit: 'TenthsOfAMillimeter' },\n A4Transverse: { width: 2100, height: 2970, unit: 'TenthsOfAMillimeter' },\n A5: { width: 1480, height: 2100, unit: 'TenthsOfAMillimeter' },\n A5Extra: { width: 1740, height: 2350, unit: 'TenthsOfAMillimeter' },\n A5Rotated: { width: 2100, height: 1480, unit: 'TenthsOfAMillimeter' },\n A5Transverse: { width: 1480, height: 2100, unit: 'TenthsOfAMillimeter' },\n A6: { width: 1050, height: 1480, unit: 'TenthsOfAMillimeter' },\n A6Rotated: { width: 1480, height: 1050, unit: 'TenthsOfAMillimeter' },\n APlus: { width: 2270, height: 3560, unit: 'TenthsOfAMillimeter' },\n B4: { width: 2500, height: 3530, unit: 'TenthsOfAMillimeter' },\n B4Envelope: { width: 2500, height: 3530, unit: 'TenthsOfAMillimeter' },\n B4JisRotated: { width: 3640, height: 2570, unit: 'TenthsOfAMillimeter' },\n B5: { width: 1760, height: 2500, unit: 'TenthsOfAMillimeter' },\n B5Envelope: { width: 1760, height: 2500, unit: 'TenthsOfAMillimeter' },\n B5Extra: { width: 2010, height: 2760, unit: 'TenthsOfAMillimeter' },\n B5JisRotated: { width: 2570, height: 1820, unit: 'TenthsOfAMillimeter' },\n B5Transverse: { width: 1820, height: 2570, unit: 'TenthsOfAMillimeter' },\n B6Envelope: { width: 1760, height: 1250, unit: 'TenthsOfAMillimeter' },\n B6Jis: { width: 1280, height: 1820, unit: 'TenthsOfAMillimeter' },\n B6JisRotated: { width: 1820, height: 1280, unit: 'TenthsOfAMillimeter' },\n BPlus: { width: 3050, height: 4870, unit: 'TenthsOfAMillimeter' },\n C3Envelope: { width: 3240, height: 4580, unit: 'TenthsOfAMillimeter' },\n C4Envelope: { width: 2290, height: 3240, unit: 'TenthsOfAMillimeter' },\n C5Envelope: { width: 1620, height: 2290, unit: 'TenthsOfAMillimeter' },\n C65Envelope: { width: 1140, height: 2290, unit: 'TenthsOfAMillimeter' },\n C6Envelope: { width: 1140, height: 1620, unit: 'TenthsOfAMillimeter' },\n CSheet: { width: 1700, height: 2200, unit: 'HundredthsOfAnInch' },\n DLEnvelope: { width: 1100, height: 2200, unit: 'TenthsOfAMillimeter' },\n DSheet: { width: 2200, height: 3400, unit: 'HundredthsOfAnInch' },\n ESheet: { width: 3400, height: 4400, unit: 'HundredthsOfAnInch' },\n Executive: { width: 725, height: 1050, unit: 'HundredthsOfAnInch' },\n Folio: { width: 850, height: 1300, unit: 'HundredthsOfAnInch' },\n GermanLegalFanfold: { width: 850, height: 1300, unit: 'HundredthsOfAnInch' },\n GermanStandardFanfold: { width: 850, height: 1200, unit: 'HundredthsOfAnInch' },\n InviteEnvelope: { width: 2200, height: 2200, unit: 'TenthsOfAMillimeter' },\n IsoB4: { width: 2500, height: 3530, unit: 'TenthsOfAMillimeter' },\n ItalyEnvelope: { width: 1100, height: 2300, unit: 'TenthsOfAMillimeter' },\n JapaneseDoublePostcard: { width: 2000, height: 1480, unit: 'TenthsOfAMillimeter' },\n JapaneseDoublePostcardRotated: { width: 1480, height: 2000, unit: 'TenthsOfAMillimeter' },\n JapanesePostcard: { width: 1000, height: 1480, unit: 'TenthsOfAMillimeter' },\n Ledger: { width: 1700, height: 1100, unit: 'HundredthsOfAnInch' },\n Legal: { width: 850, height: 1400, unit: 'HundredthsOfAnInch' },\n LegalExtra: { width: 927.5, height: 1500, unit: 'HundredthsOfAnInch' },\n Letter: { width: 850, height: 1100, unit: 'HundredthsOfAnInch' },\n LetterExtra: { width: 927.5, height: 1200, unit: 'HundredthsOfAnInch' },\n LetterExtraTransverse: { width: 927.5, height: 1200, unit: 'HundredthsOfAnInch' },\n LetterPlus: { width: 850, height: 1269, unit: 'HundredthsOfAnInch' },\n LetterRotated: { width: 1100, height: 850, unit: 'HundredthsOfAnInch' },\n LetterSmall: { width: 850, height: 1100, unit: 'HundredthsOfAnInch' },\n LetterTransverse: { width: 827.5, height: 1100, unit: 'HundredthsOfAnInch' },\n MonarchEnvelope: { width: 387.5, height: 750, unit: 'HundredthsOfAnInch' },\n Note: { width: 850, height: 1100, unit: 'HundredthsOfAnInch' },\n Number10Envelope: { width: 412.5, height: 950, unit: 'HundredthsOfAnInch' },\n Number11Envelope: { width: 450, height: 1037.5, unit: 'HundredthsOfAnInch' },\n Number12Envelope: { width: 475, height: 1100, unit: 'HundredthsOfAnInch' },\n Number14Envelope: { width: 500, height: 1150, unit: 'HundredthsOfAnInch' },\n Number9Envelope: { width: 387.5, height: 887.5, unit: 'HundredthsOfAnInch' },\n PersonalEnvelope: { width: 362.5, height: 650, unit: 'HundredthsOfAnInch' },\n Prc16K: { width: 1460, height: 2150, unit: 'TenthsOfAMillimeter' },\n Prc16KRotated: { width: 1460, height: 2150, unit: 'TenthsOfAMillimeter' },\n Prc32K: { width: 970, height: 1510, unit: 'TenthsOfAMillimeter' },\n Prc32KBig: { width: 970, height: 1510, unit: 'TenthsOfAMillimeter' },\n Prc32KBigRotated: { width: 970, height: 1510, unit: 'TenthsOfAMillimeter' },\n Prc32KRotated: { width: 970, height: 1510, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber1: { width: 1020, height: 1650, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber10: { width: 3240, height: 4580, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber10Rotated: { width: 4580, height: 3240, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber1Rotated: { width: 1650, height: 1020, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber2: { width: 1020, height: 1760, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber2Rotated: { width: 1760, height: 1020, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber3: { width: 1250, height: 1760, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber3Rotated: { width: 1760, height: 1250, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber4: { width: 1100, height: 2080, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber4Rotated: { width: 2080, height: 1100, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber5: { width: 1100, height: 2200, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber5Rotated: { width: 2200, height: 1100, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber6: { width: 1200, height: 2300, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber6Rotated: { width: 2300, height: 1200, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber7: { width: 1600, height: 2300, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber7Rotated: { width: 2300, height: 1600, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber8: { width: 1200, height: 3090, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber8Rotated: { width: 3090, height: 1200, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber9: { width: 2290, height: 3240, unit: 'TenthsOfAMillimeter' },\n PrcEnvelopeNumber9Rotated: { width: 3240, height: 2290, unit: 'TenthsOfAMillimeter' },\n Quarto: { width: 2150, height: 2750, unit: 'TenthsOfAMillimeter' },\n Standard10x11: { width: 1000, height: 1100, unit: 'HundredthsOfAnInch' },\n Standard10x14: { width: 1000, height: 1400, unit: 'HundredthsOfAnInch' },\n Standard11x17: { width: 1100, height: 1700, unit: 'HundredthsOfAnInch' },\n Standard12x11: { width: 1200, height: 1100, unit: 'HundredthsOfAnInch' },\n Standard15x11: { width: 1500, height: 1100, unit: 'HundredthsOfAnInch' },\n Standard9x11: { width: 900, height: 1100, unit: 'HundredthsOfAnInch' },\n Statement: { width: 550, height: 850, unit: 'HundredthsOfAnInch' },\n Tabloid: { width: 1100, height: 1700, unit: 'HundredthsOfAnInch' },\n TabloidExtra: { width: 1169, height: 1800, unit: 'HundredthsOfAnInch' },\n USStandardFanfold: { width: 1487.5, height: 1100, unit: 'HundredthsOfAnInch' }\n};\nfunction calculateDimension(dimension, unit, precision) {\n var result = unit === 'HundredthsOfAnInch' ? dimension : dimension / 2.54;\n if (precision !== undefined) {\n return roundingXDecimals(result, false, precision);\n }\n return result;\n}\nexport function getPaperSize(kind, precision) {\n var size = papperKindMapper[kind];\n return {\n width: calculateDimension(size.width, size.unit, precision),\n height: calculateDimension(size.height, size.unit, precision),\n };\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_resizableBinding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { getControlRect, getControlNewAbsolutePositionOnResize } from './_surfaceHelpers';\nimport { Size } from '../elements/size';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { extend } from '../../serializer/_utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './_utils';\nimport { getResizeDirection, Resizable } from './_resizable';\nko.bindingHandlers['resizable'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var $element = $.fn.constructor(element), $parent = $element.closest('.dx-designer'), currentDirection = null, $selectedNodes = null, resizableDirections = { 'north': 'n', 'east': 'e', 'south': 's', 'west': 'w' }, calculateSizes = [], absolutePosition = null;\n var options = extend({\n handles: ko.isSubscribable(values.handles) ? values.handles : (values.handles || 'all'),\n ghost: false,\n stop: function (event) {\n $selectedNodes.each((_, el) => {\n var context = ko.contextFor(el), control = context.$data, surface = context.$root.surface(), $el = $.fn.constructor(el);\n var rect = control.rect();\n var newRect = getControlRect($el, control, surface);\n newRect = {\n top: currentDirection.indexOf(resizableDirections.north) !== -1 ? newRect.top : rect.top,\n left: currentDirection.indexOf(resizableDirections.west) !== -1 ? newRect.left : rect.left,\n width: currentDirection.indexOf(resizableDirections.east) !== -1 || currentDirection.indexOf(resizableDirections.west) !== -1 ? newRect.width : rect.width,\n height: currentDirection.indexOf(resizableDirections.south) !== -1 || currentDirection.indexOf(resizableDirections.north) !== -1 ? newRect.height : rect.height,\n };\n calculateSizes.push(() => {\n if (control.canSetRect && !control.canSetRect(newRect)) {\n if (el.dataset.originalLeftPosition && el.dataset.originalTopPosition) {\n $el.css('top', el.dataset.originalTopPosition);\n $el.css('left', el.dataset.originalLeftPosition);\n }\n if (el.dataset.originalWidth && el.dataset.originalHeight) {\n $el.css('width', el.dataset.originalWidth);\n $el.css('height', el.dataset.originalHeight);\n }\n }\n else {\n control.rect(newRect);\n if (JSON.stringify(rect) === JSON.stringify(newRect)) {\n $el.css({\n left: rect.left,\n top: rect.top,\n width: rect.width,\n height: rect.height\n });\n }\n }\n el.dataset.originalLeftPosition = void 0;\n el.dataset.originalTopPosition = void 0;\n el.dataset.originalWidth = void 0;\n el.dataset.originalHeight = void 0;\n });\n });\n calculateSizes.forEach(c => c());\n calculateSizes = [];\n currentDirection = null;\n values.stopped();\n values.started = false;\n if (values.snapHelper) {\n values.snapHelper.deactivateSnapLines();\n }\n },\n start: (event) => {\n currentDirection = getResizeDirection(event.target.classList);\n values.started = true;\n values.starting(event);\n $selectedNodes = values.$selectedNodes || $.fn.constructor('.dxrd-viewport .dxrd-selected').filter(':visible');\n $selectedNodes\n .each((_, el) => {\n var $el = $.fn.constructor(el);\n var bounds = el.getBoundingClientRect();\n el.dataset.originalLeftPosition = $el.css('left');\n el.dataset.originalTopPosition = $el.css('top');\n el.dataset.originalWidth = convertToCssPixelUnits(bounds.width);\n el.dataset.originalHeight = convertToCssPixelUnits(bounds.height);\n });\n var elementOffset = $element.offset();\n var ghostContainerOffset = $parent.find('.dxrd-ghost-container').offset();\n if (!ghostContainerOffset) {\n absolutePosition = elementOffset;\n }\n else {\n absolutePosition = {\n top: elementOffset.top - ghostContainerOffset.top,\n left: elementOffset.left - ghostContainerOffset.left\n };\n }\n if (values.snapHelper) {\n values.snapHelper.updateSnapLines(viewModel);\n }\n },\n resize: (event, element, boundsDiff) => {\n event.stopPropagation();\n const dw = boundsDiff.width;\n const dh = boundsDiff.height;\n const dx = boundsDiff.left;\n const dy = boundsDiff.top;\n if (values.forceResize) {\n values.forceResize({ size: new Size(element.offsetWidth, element.offsetHeight), delta: { dx: dx, dy: dy, dw: dw, dh: dh }, element });\n return;\n }\n if (!element.dataset.originalLeftPosition || !element.dataset.originalTopPosition || !element.dataset.originalWidth || !element.dataset.originalHeight)\n return;\n const mainSelectionOriginalSize = getOriginalSizeNum(element);\n const mainSelectionOriginalPosition = getOriginalPositionNum(element);\n if (event.altKey) {\n values.snapHelper && values.snapHelper.deactivateSnapLines();\n }\n else if (values.snapHelper && $selectedNodes.length === 1) {\n const newWidth = mainSelectionOriginalSize.width + dw;\n const newHeight = mainSelectionOriginalSize.height + dh;\n const elementSizeInfo = {\n originalSize: { width: mainSelectionOriginalSize.width, height: mainSelectionOriginalSize.height },\n size: { width: newWidth, height: newHeight }\n };\n const newAbsolutePosition = getControlNewAbsolutePositionOnResize(values.snapHelper, absolutePosition, elementSizeInfo, { x: dx, y: dy, width: dw, height: dh });\n values.snapHelper.activateSnapLines(newAbsolutePosition);\n const resizedBounds = getResizedBounds(mainSelectionOriginalPosition, mainSelectionOriginalSize, boundsDiff);\n const snapBounds = {\n left: mainSelectionOriginalPosition.left + newAbsolutePosition.left - absolutePosition.left,\n top: mainSelectionOriginalPosition.top + newAbsolutePosition.top - absolutePosition.top,\n width: newAbsolutePosition.right - newAbsolutePosition.left,\n height: newAbsolutePosition.bottom - newAbsolutePosition.top\n };\n if (!boundsAreEqual(snapBounds, resizedBounds)) {\n $element.css(snapBounds);\n return;\n }\n }\n $selectedNodes.each(function (key, el) {\n if (el === event.target)\n return;\n var resizedBounds = getResizedBounds(getOriginalPositionNum(el), getOriginalSizeNum(el), boundsDiff);\n el.style.left = convertToCssPixelUnits(resizedBounds.left);\n el.style.top = convertToCssPixelUnits(resizedBounds.top);\n el.style.width = convertToCssPixelUnits(resizedBounds.width);\n el.style.height = convertToCssPixelUnits(resizedBounds.height);\n });\n }\n }, ko.unwrap(values));\n var subscription = null;\n if (!values.disabled) {\n }\n var resizableElement = new Resizable(element, options).initialize();\n addDisposeCallback(element, () => {\n resizableElement.dispose();\n element = null;\n subscription && subscription.dispose();\n });\n },\n update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n const minWidthOption = ko.unwrap(valueAccessor().minimumWidth);\n if (minWidthOption) {\n element.style.minWidth = convertToCssPixelUnits(minWidthOption);\n }\n const minHeightOption = ko.unwrap(valueAccessor().minimumHeight);\n if (minHeightOption) {\n element.style.minHeight = convertToCssPixelUnits(minHeightOption);\n }\n const getElementHandles = (element) => Array.from(element.children).filter(function (child) {\n return child.classList.contains('ui-resizable-handle');\n });\n const maxWidth = ko.unwrap(valueAccessor().maximumWidth);\n if (maxWidth) {\n element.style.maxWidth = convertToCssPixelUnits(maxWidth);\n }\n const handleClassName = valueAccessor().handleClassName;\n handleClassName && getElementHandles(element).forEach((handle) => handle.classList.add(handleClassName));\n const disabled = !!(ko.unwrap(valueAccessor().disabled) || ko.unwrap(viewModel.locked));\n getElementHandles(element).forEach((handle) => handle.style.display = disabled ? 'none' : 'block');\n }\n};\nko.bindingHandlers['resizableReportMargins'] = {\n init: function (element, valueAccessor) {\n valueAccessor();\n }\n};\nfunction getOriginalPositionNum(element) {\n return {\n left: convertFromCssPixelUnits(element.dataset.originalLeftPosition),\n top: convertFromCssPixelUnits(element.dataset.originalTopPosition)\n };\n}\nfunction getOriginalSizeNum(element) {\n return {\n width: convertFromCssPixelUnits(element.dataset.originalWidth),\n height: convertFromCssPixelUnits(element.dataset.originalHeight)\n };\n}\nfunction getResizedBounds(originalPosition, originalSize, boundsDiff) {\n return {\n left: originalPosition.left + boundsDiff.left,\n top: originalPosition.top + boundsDiff.top,\n width: originalSize.width + boundsDiff.width,\n height: originalSize.height + boundsDiff.height\n };\n}\nfunction boundsAreEqual(bounds1, bounds2) {\n return bounds1.left === bounds2.left\n && bounds1.top === bounds2.top\n && bounds1.width === bounds2.width\n && bounds1.height === bounds2.height;\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\_buttonInlineEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/button';\nimport dxButton from 'devextreme/ui/button';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nvar editor_template = {\n render: function (options) {\n var $icon = $.fn.constructor('').addClass('dx-icon');\n if (!!options.model.iconClass) {\n $icon.addClass(options.model.iconClass);\n $icon.addClass('dx-icon-' + options.model.iconClass);\n $icon.addClass('dx-icon-dxrd');\n }\n else if (!!options.model.icon) {\n $icon.addClass(options.model.icon);\n }\n if (options.model.icon) {\n $icon.attr('data-bind', \"template: '\" + options.model.icon + \"'\");\n }\n var icon = $icon.get(0);\n $.fn.constructor(options.container).append(icon);\n if (options.model.text) {\n var $span = $.fn.constructor('').addClass('dx-button-text');\n $span.text(options.model.text);\n $.fn.constructor(options.container).append($span);\n }\n setTimeout(() => {\n if (!ko.dataFor(icon))\n ko.applyBindings(options.model, icon);\n }, 1);\n }\n};\nexport class dxButtonWithTemplate extends dxButton {\n constructor(element, options) {\n options['template'] = editor_template;\n super(element, options);\n }\n _patchOptionValues(options) {\n var patchedOptions = super['_patchOptionValues'].call(this, options);\n var optionsToExtend = { iconClass: options['iconClass'] };\n ko.utils.extend(patchedOptions.templateData, optionsToExtend);\n return patchedOptions;\n }\n}\nregisterComponent('dxButtonWithTemplate', dxButtonWithTemplate);\n","/**\r\n* DevExpress Analytics (core\\_actionProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../serializer/utils';\nexport class BaseActionsProvider extends Disposable {\n initActions(actions) {\n this.actions = actions;\n this.actions.forEach((action) => {\n if (!action.disabled)\n action.disabled = ko.observable(false);\n });\n }\n getActions(context) {\n if (this.condition(context)) {\n this.setDisabled && this.setDisabled(context);\n return this.actions;\n }\n return [];\n }\n condition(context) {\n return true;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\_searchHighlighting.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { findMatchesInString } from '../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../serializer/utils';\nimport { addDisposeCallback } from '../serializer/_internal';\nexport function cloneHtmlBinding(data, element, valueAccessor, allBindings, viewModel, bindingContext) {\n addDisposeCallback(element, function () {\n data.dispose();\n });\n setTimeout(() => {\n var isInitialized = false;\n ko.computed({\n read: () => {\n if (!isInitialized && ko.bindingHandlers['html'].init) {\n ko.bindingHandlers['html'].init(element, () => { return data.content; }, allBindings, viewModel, bindingContext);\n isInitialized = true;\n }\n if (ko.bindingHandlers['html'].update) {\n ko.bindingHandlers['html'].update(element, () => {\n data.update(valueAccessor());\n return data.content;\n }, allBindings, viewModel, bindingContext);\n }\n },\n disposeWhenNodeIsRemoved: element\n });\n }, 1);\n}\nexport class HighlightEngine extends Disposable {\n constructor(options) {\n super();\n this._$spanProtect = $.fn.constructor('');\n this._$spanSearch = $.fn.constructor('').addClass('dx-datagrid-search-text');\n this.content = ko.observable('');\n this._options = options;\n if (ko.isSubscribable(this._options.text)) {\n this._disposables.push(this._options.text.subscribe(newText => {\n this._update();\n }));\n }\n this._disposables.push(this._options.textToSearch.subscribe(newFind => {\n this._update();\n }));\n this._update();\n }\n _update() {\n this.content(this._getHighlightContent(ko.unwrap(this._options.text), ko.unwrap(this._options.textToSearch), ko.unwrap(this._options.searchOptions)));\n }\n update(options) {\n this._options = options;\n this._update();\n }\n _getHighlightContent(text, textToSearch, options) {\n var searchPattern = textToSearch;\n var result = text;\n if (searchPattern) {\n var match = findMatchesInString(result, searchPattern, options);\n if (match) {\n var newResult = '', curIndex = 0, subString = result;\n match.forEach((item, index) => {\n var itemIndex = subString.indexOf(item);\n var textBeforeMath = result.substr(curIndex, itemIndex);\n subString = subString.substr(itemIndex + item.length);\n if (textBeforeMath) {\n this._$spanProtect.text(textBeforeMath);\n newResult += this._$spanProtect[0].outerHTML;\n }\n this._$spanSearch.text(item);\n newResult += this._$spanSearch[0].outerHTML;\n curIndex = result.length - subString.length;\n if (index === match.length - 1) {\n if (subString) {\n this._$spanProtect.text(subString);\n newResult += this._$spanProtect[0].outerHTML;\n }\n }\n });\n return newResult;\n }\n }\n this._$spanProtect.text(result);\n result = this._$spanProtect[0].outerHTML;\n return result;\n }\n}\nko.bindingHandlers['searchHighlighting'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n cloneHtmlBinding(new HighlightEngine(valueAccessor()), element, valueAccessor, allBindings, viewModel, bindingContext);\n }\n};\n","/**\r\n* DevExpress Analytics (core\\tools\\_tabInfoWithPropertyGrid.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { ObjectProperties } from '../../property-grid/propertygrid';\nimport { TabInfo } from './tabInfo';\nexport class TabInfoWithPropertyGrid extends TabInfo {\n constructor(options) {\n super(options);\n this.propertyGrid = new ObjectProperties(ko.observable(options.model), undefined, undefined, undefined, true);\n this._disposables.push(ko.computed(() => {\n var someRendered = this.propertyGrid.getEditors().some(editor => editor.visible && editor.isRendered());\n if (someRendered) {\n this.keyboardHelper && this.keyboardHelper.initialize();\n this.focus();\n }\n }));\n this._disposables.push(this.propertyGrid);\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\bindingsCacheUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addToBindingsCache as addToBindingsCacheInternal, registerBaseBinding as registerBaseBindingInternal } from './internal/_bindingsCache';\nexport function registerBaseBinding(bindingName, optionsName) {\n registerBaseBindingInternal(bindingName, optionsName);\n}\nexport function addToBindingsCache(bindingText, value) {\n addToBindingsCacheInternal(bindingText, value);\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\textAlignmentEditor\\_textAlignmentEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/_localization';\nimport { Disposable } from '../../../serializer/utils';\nexport class TextAlignmentModel extends Disposable {\n constructor(object) {\n super();\n this.top = ko.observable(false);\n this.middle = ko.observable(false);\n this.bottom = ko.observable(false);\n this.left = ko.observable(false);\n this.right = ko.observable(false);\n this.center = ko.observable(false);\n this.justify = ko.observable(false);\n this.horizontalString = ko.observable(getLocalization('Horizontal', 'ASPxReportsStringId.ReportDesigner_TextAlignment_Horizontal'));\n this.verticalString = ko.observable(getLocalization('Vertical', 'ASPxReportsStringId.ReportDesigner_TextAlignment_Vertical'));\n this.disabled = object.disabled || ko.observable(false);\n this.value = object.value;\n this.updateModel(object.value());\n this._disposables.push(object.value.subscribe((newVal) => {\n this.updateModel(newVal);\n }));\n }\n _resetHorizontalValues() {\n this.left(false), this.right(false), this.center(false), this.justify(false);\n }\n _resetVerticalValues() {\n this.top(false), this.middle(false), this.bottom(false);\n }\n setValue(name, type) {\n if (this.disabled() || this[name]())\n return;\n if (type == 'Horizontal')\n this._resetHorizontalValues();\n else\n this._resetVerticalValues();\n this[name](true);\n this.updateValue();\n }\n updateModel(value) {\n var val = value || 'TopLeft';\n this.top(val.indexOf('Top') !== -1);\n this.middle(val.indexOf('Middle') !== -1);\n this.bottom(val.indexOf('Bottom') !== -1);\n this.left(val.indexOf('Left') !== -1);\n this.right(val.indexOf('Right') !== -1);\n this.center(val.indexOf('Center') !== -1);\n this.justify(val.indexOf('Justify') !== -1);\n }\n updateValue() {\n var result = [];\n this.top() ? result.push('Top') : null;\n this.middle() ? result.push('Middle') : null;\n this.bottom() ? result.push('Bottom') : null;\n this.left() ? result.push('Left') : null;\n this.right() ? result.push('Right') : null;\n this.center() ? result.push('Center') : null;\n this.justify() ? result.push('Justify') : null;\n this.value(result.join(''));\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\textAlignmentEditor\\_binding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { TextAlignmentModel } from './_textAlignmentEditor';\nimport { getTemplate } from '../../../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nko.bindingHandlers['dxTextAlignmentEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrd-textalignment-editor'), $element = $.fn.constructor(element).append(templateHtml);\n var model = new TextAlignmentModel(valueAccessor());\n ko.applyBindings({ value: model }, $element.children()[0]);\n addDisposeCallback(element, () => model.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (core\\widgets\\_fieldlistpicker.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/drop_down_box';\nimport dxDropDownBox from 'devextreme/ui/drop_down_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { extend } from '../../serializer/_utils';\nexport class dxFieldListPicker extends dxDropDownBox {\n constructor($element, options) {\n var _a, _b;\n super($element, extend(options, { showClearButton: true }));\n this._path = ko.observable('');\n this._value = ko.observable('');\n this._parentViewport = null;\n this._itemsProvider = ko.observable(null);\n this._hasDisplayNameOption = false;\n this._defaultPosition = null;\n var _$element = $.fn.constructor($element);\n _$element.addClass('dx-fieldlistpicker');\n this.option('path') && this._path((_a = this.option('path')) === null || _a === void 0 ? void 0 : _a.toString());\n this.option('value') && this._value(this.option('value'));\n this.option('itemsProvider') && this._itemsProvider(this.option('itemsProvider'));\n this.option('valueChangeEvent', 'change');\n this.option('openOnFieldClick', this.option('acceptCustomValue') === false);\n this._parentViewport = _$element.parents('.dx-designer-viewport');\n if ('displayValue' in options) {\n this._hasDisplayNameOption = true;\n this.option('displayValue', options.displayValue);\n this._setTitle((_b = this.option('displayValue')) === null || _b === void 0 ? void 0 : _b.toString());\n }\n }\n updateOptions(options) {\n options.showClearButton = true;\n }\n _showDropDown() {\n if (this['_popup']) {\n var $element = $.fn.constructor(this.element());\n this['_popup'].option('width', $element.width());\n var popupPosition = extend(true, {}, this._defaultPosition, { boundary: this._parentViewport[0], boundaryOffset: '0 20', collision: 'none flip' });\n this['_popup'].option('position', popupPosition);\n this['_popup'].option('height', 'auto');\n this['_popup'].option('maxHeight', this._getMaxHeight());\n this['_popup'].repaint();\n $.fn.constructor(this['_popup'].content())[0].style.height = 'auto';\n this['_popup']._renderPosition();\n }\n }\n _getMaxHeight() {\n var $element = $.fn.constructor(this.element()), offset = $element.offset(), windowHeight = $.fn.constructor(window).height(), maxHeight = Math.max(offset.top, windowHeight - offset.top - $element.outerHeight());\n return Math.min(.5 * windowHeight, maxHeight);\n }\n _closeOutsideDropDownHandler(e, ignoreContainerClicks) { super['_closeOutsideDropDownHandler'].apply(this, [e, true]); }\n _hideOnBlur() { return false; }\n _popupConfig() {\n var dxPolymorphWidget = this.option('integrationOptions')['templates']['dx-polymorph-widget'];\n var popuConfig = super['_popupConfig'].apply(this);\n this._defaultPosition = popuConfig.position;\n return extend(popuConfig, {\n container: this._parentViewport,\n contentTemplate: dxPolymorphWidget && dxPolymorphWidget._template,\n hideOnOutsideClick: true\n });\n }\n _setTitle(text) {\n if (this.option('openOnFieldClick')) {\n $.fn.constructor(this.element()).attr('title', text);\n }\n }\n _renderDisplayText(newValue) { super['_renderDisplayText'].apply(this, [newValue]); }\n _optionChanged(args) {\n var name = args.name, newValue = args.value;\n switch (name) {\n case 'value':\n this._value(newValue);\n if (!this._hasDisplayNameOption)\n this._renderDisplayText(newValue);\n setTimeout($.proxy(() => {\n this.option('opened', false);\n }, this), 50);\n break;\n case 'path':\n this._path(newValue);\n break;\n case 'itemsProvider':\n this._itemsProvider(newValue);\n break;\n case 'displayValue':\n this._renderDisplayText(newValue);\n this._setTitle(newValue);\n break;\n default:\n super['_optionChanged'].apply(this, arguments);\n if (name === 'opened' && newValue) {\n this['_showDropDown']();\n }\n }\n }\n _clearValueHandler() {\n $.fn.constructor(this['_input']()).val(null);\n super['_clearValueHandler'].apply(this, arguments);\n }\n _renderPopupContent() {\n super['_renderPopupContent'].apply(this, arguments);\n var selectedPath = ko.pureComputed({\n read: () => {\n return this._path() ? this._path() + '.' + this._value() : this._value();\n },\n write: (newVal) => {\n if (this._path() && this._path().length > 0) {\n this._value(newVal.substr(this._path().length + 1));\n this.option('value', this._value());\n }\n else {\n this._value(newVal);\n this.option('value', this._value());\n }\n }\n });\n var element = $.fn.constructor('
').addClass('dx-treelist-wrapper').get(0);\n var scroll = this['_createComponent'](element, 'dxScrollView', { scrollByThumb: true });\n var self = this;\n var $scrollContent = $.fn.constructor(scroll['content']());\n var $element = $.fn.constructor(this.element());\n $scrollContent.append($.fn.constructor('
')[0]);\n var context = ko.contextFor($element.get(0));\n var treeListController = this.option('treeListController');\n var options = ko.computed(() => {\n return {\n itemsProvider: this._itemsProvider(), onItemsVisibilityChanged: () => {\n if (self['_popup']) {\n self['_popup']._renderPosition();\n }\n }, selectedPath: selectedPath, treeListController: treeListController, path: this._path\n };\n });\n var childContext = context.createChildContext({ options });\n ko.applyBindingsToDescendants(childContext, $scrollContent.get(0));\n $.fn.constructor(this['_popup'].content()).append(element);\n }\n}\nregisterComponent('dxFieldListPicker', dxFieldListPicker);\n","/**\r\n* DevExpress Analytics (dx-analytics-core-bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addToBindingsCache } from './property-grid/widgets/internal/_bindingsCache';\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-none\\', css: { \\'dxd-state-active\\': (!bottom() && !left() && !top() && !right()), \\'dxrd-disabled-button\\': disabled }, click: function() { setNone() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-none'; }, 'css': function () { return { 'dxd-state-active': (!$context.$data.bottom() && !$context.$data.left() && !$context.$data.top() && !$context.$data.right()), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setNone(); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-all\\', css: { \\'dxd-state-active\\': (bottom() && left() && top() && right()), \\'dxrd-disabled-button\\': disabled }, click: function() { setAll() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-all'; }, 'css': function () { return { 'dxd-state-active': ($context.$data.bottom() && $context.$data.left() && $context.$data.top() && $context.$data.right()), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setAll(); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-left\\', css: { \\'dxd-state-active\\': left(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'left\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-left'; }, 'css': function () { return { 'dxd-state-active': $context.$data.left(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('left'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-top\\', css: { \\'dxd-state-active\\': top(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'top\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-top'; }, 'css': function () { return { 'dxd-state-active': $context.$data.top(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('top'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-right\\', css: { \\'dxd-state-active\\': right(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'right\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-right'; }, 'css': function () { return { 'dxd-state-active': $context.$data.right(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('right'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-bottom\\', css: { \\'dxd-state-active\\': bottom(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'bottom\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-bottom'; }, 'css': function () { return { 'dxd-state-active': $context.$data.bottom(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('bottom'); }; } }; });\naddToBindingsCache('with: value', function ($context, $element) { return { 'with': function () { return $context.$data.value; } }; });\naddToBindingsCache('dxBorderEditor: { value: value, disabled: disabled }', function ($context, $element) { return { 'dxBorderEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('dxColorBox: { value: displayValue, placeholder: $root.getLocalization(\\'(Not set)\\', \\'ReportStringId.UD_PropertyGrid_NotSetText\\'), editAlphaChannel: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flipfit\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } }, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }', function ($context, $element) { return { 'dxColorBox': function () { return { 'value': $context.$data.displayValue, 'placeholder': $context.$root.getLocalization('(Not set)', 'ReportStringId.UD_PropertyGrid_NotSetText'), 'editAlphaChannel': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flipfit', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } }, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }; } }; });\naddToBindingsCache('dxExpressionEditor: getOptions({ options: value, fieldListProvider: $root.dataBindingsProvider, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() })', function ($context, $element) { return { 'dxExpressionEditor': function () { return $context.$data.getOptions({ 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsProvider, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }); } }; });\naddToBindingsCache('if: $data.value()', function ($context, $element) { return { 'if': function () { return $context.$data.value(); } }; });\naddToBindingsCache('dxFieldListPicker: { path: path, acceptCustomValue: true, value: value, displayValue: $displayName, itemsProvider: $root.dataBindingsProvider, treeListController: treeListController, disabled: disabled, inputAttr: {id: editorInputId} }', function ($context, $element) { return { 'dxFieldListPicker': function () { return { 'path': $context.$data.path, 'acceptCustomValue': true, 'value': $context.$data.value, 'displayValue': $context.$data.$displayName, 'itemsProvider': $context.$root.dataBindingsProvider, 'treeListController': $context.$data.treeListController, 'disabled': $context.$data.disabled, 'inputAttr': { 'id': $context.$data.editorInputId } }; } }; });\naddToBindingsCache('displayNameExtender: { path: path, dataMember: value }', function ($context, $element) { return { 'displayNameExtender': function () { return { 'path': $context.$data.path, 'dataMember': $context.$data.value }; } }; });\naddToBindingsCache('if: visible', function ($context, $element) { return { 'if': function () { return $context.$data.visible; } }; });\naddToBindingsCache('dxFilterEditor: { options: value, fieldListProvider: $root.dataBindingsProvider, getDisplayNameByPath: $root.getDisplayNameByPath, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() }', function ($context, $element) { return { 'dxFilterEditor': function () { return { 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsProvider, 'getDisplayNameByPath': $context.$root.getDisplayNameByPath, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }; } }; });\naddToBindingsCache('dxFilterEditor: { options: value, fieldListProvider: $root.dataBindingsGroupProvider, getDisplayNameByPath: $root.getDisplayNameByPath, displayNameProvider: $root.displayNameProvider && $root.displayNameProvider() }', function ($context, $element) { return { 'dxFilterEditor': function () { return { 'options': $context.$data.value, 'fieldListProvider': $context.$root.dataBindingsGroupProvider, 'getDisplayNameByPath': $context.$root.getDisplayNameByPath, 'displayNameProvider': $context.$root.displayNameProvider && $context.$root.displayNameProvider() }; } }; });\naddToBindingsCache('dxFormatEditor: { value: value, disabled: disabled, actions: $data.actions, customPatterns: $data.customPatterns }', function ($context, $element) { return { 'dxFormatEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'actions': $context.$data.actions, 'customPatterns': $context.$data.customPatterns }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }), dxValidator: { validationRules: (validationRules || []) }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return { 'validationRules': ($context.$data.validationRules || []) }; } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: viewmodel }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data.viewmodel }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: ko.observable($data), level: $parent.level, textToSearch: $parent.textToSearch }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.ko.observable($context.$data), 'level': $context.$parent.level, 'textToSearch': $context.$parent.textToSearch }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: value, level: editor.level + 1, parentDisabled: editor.disabled }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.value, 'level': $context.$data.editor.level + 1, 'parentDisabled': $context.$data.editor.disabled }; } }; });\naddToBindingsCache('if: $data.visible() && $data.editorCreated()', function ($context, $element) { return { 'if': function () { return $context.$data.visible() && $context.$data.editorCreated(); } }; });\naddToBindingsCache('dxTextAlignmentEditor: { value: value, disabled: disabled }', function ($context, $element) { return { 'dxTextAlignmentEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('treelist: options', function ($context, $element) { return { 'treelist': function () { return $context.$data.options; } }; });\naddToBindingsCache('if: options', function ($context, $element) { return { 'if': function () { return $context.$data.options; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[0].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[0].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[1].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[1].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[2].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[2].transform() }; } }; });\naddToBindingsCache('style: { transform: snapLineSurfaces[3].transform() }', function ($context, $element) { return { 'style': function () { return { 'transform': $context.$data.snapLineSurfaces[3].transform() }; } }; });\naddToBindingsCache('template: templateName, click: function(_, e) { !$root.selection.disabled() && $root.selection.clickHandler($data, e); e.stopPropagation(); }', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; }, 'click': function () { return function (_, e) { !$context.$root.selection.disabled() && $context.$root.selection.clickHandler($context.$data, e); e.stopPropagation(); }; } }; });\naddToBindingsCache('cssArray: [surfaceClass($element), { \\'dx-accessibility\\': $data.accessibilityCompliant } ]', function ($context, $element) { return { 'cssArray': function () { return [$context.$data.surfaceClass($element), { 'dx-accessibility': $context.$data.accessibilityCompliant }]; } }; });\naddToBindingsCache('visible: (!$data.designMode || designMode()), cssArray: [$data.rootStyle, { \\'dx-rtl\\' : $data.rtl, \\'dx-ltr\\': !$data.rtl }]', function ($context, $element) { return { 'visible': function () { return (!$context.$data.designMode || $context.$data.designMode()); }, 'cssArray': function () { return [$context.$data.rootStyle, { 'dx-rtl': $context.$data.rtl, 'dx-ltr': !$context.$data.rtl }]; } }; });\naddToBindingsCache('ifnot: isLoading', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isLoading; } }; });\naddToBindingsCache('with: surface', function ($context, $element) { return { 'with': function () { return $context.$data.surface; } }; });\naddToBindingsCache('if: isLoading', function ($context, $element) { return { 'if': function () { return $context.$data.isLoading; } }; });\naddToBindingsCache('foreach: parts', function ($context, $element) { return { 'foreach': function () { return $context.$data.parts; } }; });\naddToBindingsCache('template: { name: templateName, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data.model }; } }; });\naddToBindingsCache('if: ($data.addOns)', function ($context, $element) { return { 'if': function () { return ($context.$data.addOns); } }; });\naddToBindingsCache('foreach: addOns', function ($context, $element) { return { 'foreach': function () { return $context.$data.addOns; } }; });\naddToBindingsCache('text: verticalString', function ($context, $element) { return { 'text': function () { return $context.$data.verticalString; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-top\\', css: { \\'dxd-state-active\\': top(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'top\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-top'; }, 'css': function () { return { 'dxd-state-active': $context.$data.top(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('top', 'Vertical'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-middle\\', css: { \\'dxd-state-active\\': middle(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'middle\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-middle'; }, 'css': function () { return { 'dxd-state-active': $context.$data.middle(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('middle', 'Vertical'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-bottom\\', css: { \\'dxd-state-active\\': bottom(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'bottom\\', \\'Vertical\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-bottom'; }, 'css': function () { return { 'dxd-state-active': $context.$data.bottom(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('bottom', 'Vertical'); }; } }; });\naddToBindingsCache('text: horizontalString', function ($context, $element) { return { 'text': function () { return $context.$data.horizontalString; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-left\\', css: { \\'dxd-state-active\\': left(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'left\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-left'; }, 'css': function () { return { 'dxd-state-active': $context.$data.left(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('left', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-center\\', css: { \\'dxd-state-active\\': center(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'center\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-center'; }, 'css': function () { return { 'dxd-state-active': $context.$data.center(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('center', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-right\\', css: { \\'dxd-state-active\\': right(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'right\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-right'; }, 'css': function () { return { 'dxd-state-active': $context.$data.right(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('right', 'Horizontal'); }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-justify\\', css: { \\'dxd-state-active\\': justify(), \\'dxrd-disabled-button\\': disabled }, click: function() { setValue(\\'justify\\', \\'Horizontal\\') }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-justify'; }, 'css': function () { return { 'dxd-state-active': $context.$data.justify(), 'dxrd-disabled-button': $context.$data.disabled }; }, 'click': function () { return function () { $context.$data.setValue('justify', 'Horizontal'); }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: togglePopoverVisible, disabled: disabled, icon: ko.unwrap($data.imageTemplateName), iconClass: ko.unwrap($data.imageClassName) }, attr: { id: id, title: text }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.togglePopoverVisible, 'disabled': $context.$data.disabled, 'icon': $context.ko.unwrap($context.$data.imageTemplateName), 'iconClass': $context.ko.unwrap($context.$data.imageClassName) }; }, 'attr': function () { return { 'id': $context.$data.id, 'title': $context.$data.text }; } }; });\naddToBindingsCache('dxPopup: { width: 235, height: \\'auto\\', position: { my: $root.rtl ? \\'left top\\': \\'right top\\', at: \\'bottom\\', of: (\\'#\\' + id) }, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, container: ($data.getContainer || function(_e, selector) { return selector; })($element, \\'.dxrd-action-items-container\\'), shading: false, visible: popoverVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 235, 'height': 'auto', 'position': { 'my': $context.$root.rtl ? 'left top' : 'right top', 'at': 'bottom', 'of': ('#' + $context.$data.id) }, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'container': ($context.$data.getContainer || function (_e, selector) { return selector; })($element, '.dxrd-action-items-container'), 'shading': false, 'visible': $context.$data.popoverVisible }; } }; });\naddToBindingsCache('dxclick: clickAction, css: { \\'dxrd-disabled-button\\': disabled }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.clickAction; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled }; } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: {name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('if: $data.contentTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.contentTemplate; } }; });\naddToBindingsCache('template: contentTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.contentTemplate; } }; });\naddToBindingsCache('if: !$data.contentTemplate', function ($context, $element) { return { 'if': function () { return !$context.$data.contentTemplate; } }; });\naddToBindingsCache('foreach: actions', function ($context, $element) { return { 'foreach': function () { return $context.$data.actions; } }; });\naddToBindingsCache('styleunit: { top: $data.top, left: $data.left, width: $data.width, height: $data.height }, css: { \\'dxrd-locked\\': $data.isLocked }', function ($context, $element) { return { 'styleunit': function () { return { 'top': $context.$data.top, 'left': $context.$data.left, 'width': $context.$data.width, 'height': $context.$data.height }; }, 'css': function () { return { 'dxrd-locked': $context.$data.isLocked }; } }; });\naddToBindingsCache('styleunit: { left: $data.left, top: $data.top, width: $data.width, height: $data.height }, css: $data.className', function ($context, $element) { return { 'styleunit': function () { return { 'left': $context.$data.left, 'top': $context.$data.top, 'width': $context.$data.width, 'height': $context.$data.height }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('template: { name: $data.template, data: $data.data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.template, 'data': $context.$data.data }; } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('text: text, attr: { title: text }', function ($context, $element) { return { 'text': function () { return $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('foreach: $data.controls()', function ($context, $element) { return { 'foreach': function () { return $context.$data.controls(); } }; });\naddToBindingsCache('with: $parent.customData()', function ($context, $element) { return { 'with': function () { return $context.$parent.customData(); } }; });\naddToBindingsCache('dxclick: function(e) { if(stopPropagation) { stopPropagation = false; } else { toggleAppMenu() } }, template: \\'dxrd-svg-menu-menu\\', css: {\\'dxd-state-active\\': appMenuVisible }', function ($context, $element) { return { 'dxclick': function () { return function (e) { if ($context.$data.stopPropagation) {\n $context.$data.stopPropagation = false;\n }\n else {\n $context.$data.toggleAppMenu();\n } }; }, 'template': function () { return 'dxrd-svg-menu-menu'; }, 'css': function () { return { 'dxd-state-active': $context.$data.appMenuVisible }; } }; });\naddToBindingsCache('dxPopup: { width: 250, wrapperAttr: { class: \\'dxd-menu-back-color dxd-back-primary2\\' }, height: \\'100%\\' , position: $data.rtl ? { my: \\'right top\\' , at: \\'left top\\' , offset: \\'-10 0\\' } : { my: \\'left top\\' , at: \\'right top\\' , offset: \\'10 0\\' }, showTitle: false, showCloseButton: false, container: getMenuPopupContainer($element), target: getMenuPopupTarget($element), animation: {}, hideOnOutsideClick: function(e) { var buttonClassName = \\'dxrd-menu-button-image\\'; var parentClassList = e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.classList; stopPropagation = (e.target.classList && e.target.classList.contains(buttonClassName)) || (parentClassList && parentClassList.contains(buttonClassName)); return true; }, shading: false, focusStateEnabled: false, visible: appMenuVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 250, 'wrapperAttr': { 'class': 'dxd-menu-back-color dxd-back-primary2' }, 'height': '100%', 'position': $context.$data.rtl ? { 'my': 'right top', 'at': 'left top', 'offset': '-10 0' } : { 'my': 'left top', 'at': 'right top', 'offset': '10 0' }, 'showTitle': false, 'showCloseButton': false, 'container': $context.$data.getMenuPopupContainer($element), 'target': $context.$data.getMenuPopupTarget($element), 'animation': {}, 'hideOnOutsideClick': function (e) { var buttonClassName = 'dxrd-menu-button-image'; var parentClassList = e.target.parentNode && e.target.parentNode.parentNode && e.target.parentNode.parentNode.classList; $context.$data.stopPropagation = (e.target.classList && e.target.classList.contains(buttonClassName)) || (parentClassList && parentClassList.contains(buttonClassName)); return true; }, 'shading': false, 'focusStateEnabled': false, 'visible': $context.$data.appMenuVisible }; } }; });\naddToBindingsCache('dxclick: function(e) { if(disabled && !disabled() || !disabled) { $root.toggleAppMenu(); clickAction($root.model(), e); }}, css: { \\'dxrd-disabled-button\\': disabled }, visible: visible', function ($context, $element) { return { 'dxclick': function () { return function (e) { if ($context.$data.disabled && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$root.toggleAppMenu();\n $context.$data.clickAction($context.$root.model(), e);\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled }; }, 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('text: $data.displayText && $data.displayText() || text, attr: { title: $data.displayText && $data.displayText() || text}', function ($context, $element) { return { 'text': function () { return $context.$data.displayText && $context.$data.displayText() || $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('visible: $data.hasSeparator', function ($context, $element) { return { 'visible': function () { return $context.$data.hasSeparator; } }; });\naddToBindingsCache('foreach: actionLists.menuItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.actionLists.menuItems; } }; });\naddToBindingsCache('dxdAccordion: { collapsed: collapsed }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed }; } }; });\naddToBindingsCache('css: { \\'dxrd-group-header-collapsed\\': collapsed() }', function ($context, $element) { return { 'css': function () { return { 'dxrd-group-header-collapsed': $context.$data.collapsed() }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-collapsed\\', css: { \\'dx-image-expanded\\': !collapsed() }', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-collapsed'; }, 'css': function () { return { 'dx-image-expanded': !$context.$data.collapsed() }; } }; });\naddToBindingsCache('text: $root.actionsGroupTitle()', function ($context, $element) { return { 'text': function () { return $context.$root.actionsGroupTitle(); } }; });\naddToBindingsCache('dxclick: function() { if($data.disabled && !$data.disabled() || !$data.disabled) { clickAction($root.editableObject()); } }, css: { \\'dxrd-disabled-button\\': $data.disabled && $data.disabled() }, visible: (ko.unwrap($data.visible) == undefined) || ko.unwrap($data.visible)', function ($context, $element) { return { 'dxclick': function () { return function () { if ($context.$data.disabled && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$data.clickAction($context.$root.editableObject());\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled && $context.$data.disabled() }; }, 'visible': function () { return ($context.ko.unwrap($context.$data.visible) == undefined) || $context.ko.unwrap($context.$data.visible); } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data }; } }; });\naddToBindingsCache('visible: items.some(x => !x.visible || ko.unwrap(x.visible))', function ($context, $element) { return { 'visible': function () { return $context.$data.items.some(x => !x.visible || $context.ko.unwrap(x.visible)); } }; });\naddToBindingsCache('text: group', function ($context, $element) { return { 'text': function () { return $context.$data.group; } }; });\naddToBindingsCache('if: popularVisible', function ($context, $element) { return { 'if': function () { return $context.$data.popularVisible; } }; });\naddToBindingsCache('foreach: (contextActions || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.contextActions || []); } }; });\naddToBindingsCache('if: $data.templateName', function ($context, $element) { return { 'if': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('template: templateName', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('if: !$data.templateName', function ($context, $element) { return { 'if': function () { return !$context.$data.templateName; } }; });\naddToBindingsCache('with: popularProperties', function ($context, $element) { return { 'with': function () { return $context.$data.popularProperties; } }; });\naddToBindingsCache('foreach: (groupActions || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.groupActions || []); } }; });\naddToBindingsCache('foreach: (items || [])', function ($context, $element) { return { 'foreach': function () { return ($context.$data.items || []); } }; });\naddToBindingsCache('template: { name: $data.templateName, if: $data.templateName }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'if': $context.$data.templateName }; } }; });\naddToBindingsCache('css: { \\'dx-property-grid-search-collapsed\\': !isSearching() }', function ($context, $element) { return { 'css': function () { return { 'dx-property-grid-search-collapsed': !$context.$data.isSearching() }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': isSearching }, dxButtonWithTemplate: { onClick: switchSearchBox, icon: \\'dxrd-svg-properties-search\\', iconClass: \\'image-search\\' }, attr: { title: $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\') }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.isSearching }; }, 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.switchSearchBox, 'icon': 'dxrd-svg-properties-search', 'iconClass': 'image-search' }; }, 'attr': function () { return { 'title': $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header') }; } }; });\naddToBindingsCache('dxTextBox: { value: textToSearch, valueChangeEvent: \\'keyup\\', placeholder: searchPlaceholder(), showClearButton: true }, cacheElement: { action: function(element) { searchBox(element); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.textToSearch, 'valueChangeEvent': 'keyup', 'placeholder': $context.$data.searchPlaceholder(), 'showClearButton': true }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.searchBox(element); } }; } }; });\naddToBindingsCache('visible: active() && visible()', function ($context, $element) { return { 'visible': function () { return $context.$data.active() && $context.$data.visible(); } }; });\naddToBindingsCache('text: text', function ($context, $element) { return { 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('css: { \\'dx-property-grid-search-collapsed\\': isSearching }', function ($context, $element) { return { 'css': function () { return { 'dx-property-grid-search-collapsed': $context.$data.isSearching }; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: $root.controlsStore.dataSource, value: focusedItem, displayExpr: displayExpr, dropDownOptions: { container: $root.getPopupContainer($element) }, useItemTextAsTitle: true }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$root.controlsStore.dataSource, 'value': $context.$data.focusedItem, 'displayExpr': $context.$data.displayExpr, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'useItemTextAsTitle': true }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active dxd-state-no-hover\\': !isSortingByGroups() }, dxButtonWithTemplate: { onClick: function() { $data.isSortingByGroups(false); }, icon: \\'dxrd-svg-properties-sortingbyalphabet\\', iconClass: \\'image-sortingbyalphabet\\' }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active dxd-state-no-hover': !$context.$data.isSortingByGroups() }; }, 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.isSortingByGroups(false); }, 'icon': 'dxrd-svg-properties-sortingbyalphabet', 'iconClass': 'image-sortingbyalphabet' }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active dxd-state-no-hover\\': isSortingByGroups }, dxButtonWithTemplate: { onClick: function() { $data.isSortingByGroups(true); }, icon: \\'dxrd-svg-properties-sortingbygroups\\', iconClass: \\'image-sortingbygroups\\' }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active dxd-state-no-hover': $context.$data.isSortingByGroups }; }, 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.isSortingByGroups(true); }, 'icon': 'dxrd-svg-properties-sortingbygroups', 'iconClass': 'image-sortingbygroups' }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('visible: isSortingByGroups', function ($context, $element) { return { 'visible': function () { return $context.$data.isSortingByGroups; } }; });\naddToBindingsCache('visible: visible', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('text: displayName()', function ($context, $element) { return { 'text': function () { return $context.$data.displayName(); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: !editorsCreated() }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': !$context.$data.editorsCreated() }; } }; });\naddToBindingsCache('visible: editorsCreated', function ($context, $element) { return { 'visible': function () { return $context.$data.editorsCreated; } }; });\naddToBindingsCache('visible: !isSortingByGroups()', function ($context, $element) { return { 'visible': function () { return !$context.$data.isSortingByGroups(); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: !allEditorsCreated() }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': !$context.$data.allEditorsCreated() }; } }; });\naddToBindingsCache('visible: allEditorsCreated', function ($context, $element) { return { 'visible': function () { return $context.$data.allEditorsCreated; } }; });\naddToBindingsCache('dxPopup: { width: 250, height: \\'auto\\', position: $data.rtl ? { my: \\'left top\\', at: \\'right top\\', of: popupService.target, collision: \\'flipfit\\' } : { my: \\'right top\\', at: \\'left top\\', of: popupService.target, collision: \\'flipfit\\' }, container: $root.getPopupContainer($element), target: popupService.target, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, shading: false, visible: popupService.visible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 250, 'height': 'auto', 'position': $context.$data.rtl ? { 'my': 'left top', 'at': 'right top', 'of': $context.$data.popupService.target, 'collision': 'flipfit' } : { 'my': 'right top', 'at': 'left top', 'of': $context.$data.popupService.target, 'collision': 'flipfit' }, 'container': $context.$root.getPopupContainer($element), 'target': $context.$data.popupService.target, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'shading': false, 'visible': $context.$data.popupService.visible }; } }; });\naddToBindingsCache('text: popupService.title, visible: popupService.title', function ($context, $element) { return { 'text': function () { return $context.$data.popupService.title; }, 'visible': function () { return $context.$data.popupService.title; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxd-button-back-color\\' }, disabled: popupService.disabled, dataSource: popupService.actions, displayExpr: \\'title\\', cssClass: \\'dxrd-editor-menu\\', orientation: \\'vertical\\', showFirstSubmenuMode: \\'onHover\\', onSubmenuShowing: function(e) { e.submenu._overlay.option(\\'container\\', $root.getPopupContainer($element)) } }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxd-button-back-color' }, 'disabled': $context.$data.popupService.disabled, 'dataSource': $context.$data.popupService.actions, 'displayExpr': 'title', 'cssClass': 'dxrd-editor-menu', 'orientation': 'vertical', 'showFirstSubmenuMode': 'onHover', 'onSubmenuShowing': function (e) { e.submenu._overlay.option('container', $context.$root.getPopupContainer($element)); } }; } }; });\naddToBindingsCache('dxclick: action', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; } }; });\naddToBindingsCache('attr: { title: title }, text: title', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$data.title }; }, 'text': function () { return $context.$data.title; } }; });\naddToBindingsCache('visible: $data.items && $data.items.length', function ($context, $element) { return { 'visible': function () { return $context.$data.items && $context.$data.items.length; } }; });\naddToBindingsCache('if: $data.innerTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.innerTemplate; } }; });\naddToBindingsCache('template: $data.innerTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.innerTemplate; } }; });\naddToBindingsCache('with: model', function ($context, $element) { return { 'with': function () { return $context.$data.model; } }; });\naddToBindingsCache('if: $root.controlsStore.visible()', function ($context, $element) { return { 'if': function () { return $context.$root.controlsStore.visible(); } }; });\naddToBindingsCache('template: \\'dx-propertygrid-searchbox\\'', function ($context, $element) { return { 'template': function () { return 'dx-propertygrid-searchbox'; } }; });\naddToBindingsCache('template: { name: \\'dxrd-group-actions\\', data: { groupActions: $root.contextGroupActions } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-group-actions', 'data': { 'groupActions': $context.$root.contextGroupActions } }; } }; });\naddToBindingsCache('template: { name: \\'dxrd-top-grid\\', data: { contextActions: $root.contextActions, popularProperties: $root.popularProperties, collapsed: ko.observable(false), popularVisible: $root.popularVisible() && isSortingByGroups(), actionsGroupTitle: $root.actionsGroupTitle } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-top-grid', 'data': { 'contextActions': $context.$root.contextActions, 'popularProperties': $context.$root.popularProperties, 'collapsed': $context.ko.observable(false), 'popularVisible': $context.$root.popularVisible() && $context.$data.isSortingByGroups(), 'actionsGroupTitle': $context.$root.actionsGroupTitle } }; } }; });\naddToBindingsCache('foreach: groups', function ($context, $element) { return { 'foreach': function () { return $context.$data.groups; } }; });\naddToBindingsCache('ifnot: editorsCreated', function ($context, $element) { return { 'ifnot': function () { return $context.$data.editorsCreated; } }; });\naddToBindingsCache('if: $data.editorsRendered()', function ($context, $element) { return { 'if': function () { return $context.$data.editorsRendered(); } }; });\naddToBindingsCache('foreach: editors', function ($context, $element) { return { 'foreach': function () { return $context.$data.editors; } }; });\naddToBindingsCache('template: editorTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.editorTemplate; } }; });\naddToBindingsCache('if: ($index() === $parent.editors().length - 1 && $parent.editorsCreated(true))', function ($context, $element) { return { 'if': function () { return ($context.$index() === $context.$parent.editors().length - 1 && $context.$parent.editorsCreated(true)); } }; });\naddToBindingsCache('foreach: $data.getEditors()', function ($context, $element) { return { 'foreach': function () { return $context.$data.getEditors(); } }; });\naddToBindingsCache('if: ($index() === $parent._editors().length - 1 && $parent.allEditorsCreated(true))', function ($context, $element) { return { 'if': function () { return ($context.$index() === $context.$parent._editors().length - 1 && $context.$parent.allEditorsCreated(true)); } }; });\naddToBindingsCache('template: \\'dx-propertygrid-popupservice\\'', function ($context, $element) { return { 'template': function () { return 'dx-propertygrid-popupservice'; } }; });\naddToBindingsCache('if: $data.itemTemplate', function ($context, $element) { return { 'if': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('template: $data.itemTemplate', function ($context, $element) { return { 'template': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('ifnot: $data.itemTemplate', function ($context, $element) { return { 'ifnot': function () { return $context.$data.itemTemplate; } }; });\naddToBindingsCache('dxTemplate: { name: \\'content\\' }', function () { return { dxTemplate: { name: 'content' } }; });\naddToBindingsCache('dxTemplate: { name: \\'item\\' }', function () { return { dxTemplate: { name: 'item' } }; });\naddToBindingsCache('styleunit: { width: tabPanel.width }, css: tabPanel.cssClasses(), resizable: tabPanel.getResizableOptions($element, 1, $root.calculateWithZoomFactor(325))', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.tabPanel.width }; }, 'css': function () { return $context.$data.tabPanel.cssClasses(); }, 'resizable': function () { return $context.$data.tabPanel.getResizableOptions($element, 1, $context.$root.calculateWithZoomFactor(325)); } }; });\naddToBindingsCache('styleunit: { width: $data.headerWidth }, css: $data.cssClasses({\\'dx-tab-panel-collapsed\\':$data.collapsed }), accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.headerWidth }; }, 'css': function () { return $context.$data.cssClasses({ 'dx-tab-panel-collapsed': $context.$data.collapsed }); }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('css: $data.cssClasses()', function ($context, $element) { return { 'css': function () { return $context.$data.cssClasses(); } }; });\naddToBindingsCache('dxAction: { model: $data, action: function(s) { $parent.toggleTabVisibility({ model: s }); }}, css: { \\'dxd-state-active dxd-state-no-hover\\': active, \\'dxrd-tab-item-disabled\\': disabled }, attr: { title: $data.text, \\'aria-label\\': $data.text, \\'aria-expanded\\': $data.active }, visible: visible', function ($context, $element) { return { 'dxAction': function () { return { 'model': $context.$data, 'action': function (s) { $context.$parent.toggleTabVisibility({ 'model': s }); } }; }, 'css': function () { return { 'dxd-state-active dxd-state-no-hover': $context.$data.active, 'dxrd-tab-item-disabled': $context.$data.disabled }; }, 'attr': function () { return { 'title': $context.$data.text, 'aria-label': $context.$data.text, 'aria-expanded': $context.$data.active }; }, 'visible': function () { return $context.$data.visible; } }; });\naddToBindingsCache('styleunit: { width: $data.width }, css: $data.cssClasses(), resizable: $data.getResizableOptions($element, 50, 396)', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width }; }, 'css': function () { return $context.$data.cssClasses(); }, 'resizable': function () { return $context.$data.getResizableOptions($element, 50, 396); } }; });\naddToBindingsCache('foreach: tabPanel.tabs', function ($context, $element) { return { 'foreach': function () { return $context.$data.tabPanel.tabs; } }; });\naddToBindingsCache('lazy: { template: $data.template }', function ($context, $element) { return { 'lazy': function () { return { 'template': $context.$data.template }; } }; });\naddToBindingsCache('with: tabPanel', function ($context, $element) { return { 'with': function () { return $context.$data.tabPanel; } }; });\naddToBindingsCache('foreach: $data.tabs', function ($context, $element) { return { 'foreach': function () { return $context.$data.tabs; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-edit\\', iconClass: \\'dx-image-edit\\', disabled: disabled, onClick: toogle, hint: title }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-edit', 'iconClass': 'dx-image-edit', 'disabled': $context.$data.disabled, 'onClick': $context.$data.toogle, 'hint': $context.$data.title }; } }; });\naddToBindingsCache('template: {name: \\'dxrd-toolbar-tmplt\\', data: actionLists.toolbarItems }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-toolbar-tmplt', 'data': $context.$data.actionLists.toolbarItems }; } }; });\naddToBindingsCache('visible: visible, class: \\'dxrd-toolbar-item-\\' + $index(), css: {\\'dxrd-toolbar-item-with-separator dxd-border-primary\\': $data.hasSeparator }', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'class': function () { return 'dxrd-toolbar-item-' + $context.$index(); }, 'css': function () { return { 'dxrd-toolbar-item-with-separator dxd-border-primary': $context.$data.hasSeparator }; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $data.displayText && $data.displayText() || text, \\'aria-disabled\\': ko.unwrap($data.disabled) ? \\'true\\' : \\'false\\', \\'aria-pressed\\': $data.selected ? ($data.selected() ? \\'true\\' : \\'false\\') : null }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$data.displayText && $context.$data.displayText() || $context.$data.text, 'aria-disabled': $context.ko.unwrap($context.$data.disabled) ? 'true' : 'false', 'aria-pressed': $context.$data.selected ? ($context.$data.selected() ? 'true' : 'false') : null }; } }; });\naddToBindingsCache('template: { name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}, attr: { class: \\'dxrd-toolbar-item-image dxd-state-normal dxd-icon-highlighted \\' + (ko.unwrap($data.imageClassName) || \\'\\'), title: $data.displayText && $data.displayText() || text }, }, dxclick: function() { if((typeof $data.disabled === \\'function\\') && !disabled() || !disabled) { clickAction($root.model && $root.model()); } }, css: {\\'dxrd-disabled-button\\': disabled, \\'dxd-button-back-color dxd-back-highlighted dxd-state-active\\': $data.selected }', function ($context, $element) { return { 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'class': 'dxrd-toolbar-item-image dxd-state-normal dxd-icon-highlighted ' + ($context.ko.unwrap($context.$data.imageClassName) || ''), 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; }, '}': function () { return undefined; }, 'dxclick': function () { return function () { if ((typeof $context.$data.disabled === 'function') && !$context.$data.disabled() || !$context.$data.disabled) {\n $context.$data.clickAction($context.$root.model && $context.$root.model());\n } }; }, 'css': function () { return { 'dxrd-disabled-button': $context.$data.disabled, 'dxd-button-back-color dxd-back-highlighted dxd-state-active': $context.$data.selected }; } }; });\naddToBindingsCache('foreach: $data', function ($context, $element) { return { 'foreach': function () { return $context.$data; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data.contentData || $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data.contentData || $context.$data }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', scrollByContent: false, bounceEnabled: false, useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'scrollByContent': false, 'bounceEnabled': false, 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('attr: { title: displayName }', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, css: $data.imageClassName, draggable: $root.toolboxDragHandler', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'css': function () { return $context.$data.imageClassName; }, 'draggable': function () { return $context.$root.toolboxDragHandler; } }; });\naddToBindingsCache('foreach: toolboxItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.toolboxItems; } }; });\naddToBindingsCache('foreach: groupedToolboxItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.groupedToolboxItems; } }; });\naddToBindingsCache('foreach: items', function ($context, $element) { return { 'foreach': function () { return $context.$data.items; } }; });\naddToBindingsCache('dxSelectBox: { items: zoomLevels, value: $data.zoom, displayExpr: function(val) { return Math.round((val || this.option(\\'value\\')) * 100) + \\'%\\'; }, displayCustomValue: true, acceptCustomValue: true, onCustomItemCreating: onCustomItemCreating, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) }, useItemTextAsTitle: true }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'items': $context.$data.zoomLevels, 'value': $context.$data.zoom, 'displayExpr': function (val) { return Math.round((val || this.option('value')) * 100) + '%'; }, 'displayCustomValue': true, 'acceptCustomValue': true, 'onCustomItemCreating': $context.$data.onCustomItemCreating, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'useItemTextAsTitle': true }; } }; });\naddToBindingsCache('dxclick: function(_, element) { showPopup(_, element) }, css: editorMenuButtonCss, attr: { title: hint }', function ($context, $element) { return { 'dxclick': function () { return function (_, element) { $context.$data.showPopup(_, element); }; }, 'css': function () { return $context.$data.editorMenuButtonCss; }, 'attr': function () { return { 'title': $context.$data.hint }; } }; });\naddToBindingsCache('dxclick: function(_, element) { showPopup(_, element) }, attr: { title: hint }, css: editorMenuButtonCss', function ($context, $element) { return { 'dxclick': function () { return function (_, element) { $context.$data.showPopup(_, element); }; }, 'attr': function () { return { 'title': $context.$data.hint }; }, 'css': function () { return $context.$data.editorMenuButtonCss; } }; });\naddToBindingsCache('template: { name: $data.imageTemplateName, if: ko.unwrap($data.imageTemplateName) }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': $context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('if: $data.visible', function ($context, $element) { return { 'if': function () { return $context.$data.visible; } }; });\naddToBindingsCache('template: $data.templateName', function ($context, $element) { return { 'template': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('ifnot: $data.templateName', function ($context, $element) { return { 'ifnot': function () { return $context.$data.templateName; } }; });\naddToBindingsCache('if: !ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'if': function () { return !$context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('if: ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'if': function () { return $context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('dxdAccordion: { collapsed: collapsed, alwaysShow: alwaysShow }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed, 'alwaysShow': $context.$data.alwaysShow }; } }; });\naddToBindingsCache('attr: { \\'aria-expanded\\': alwaysShow() || !collapsed() ? \\'true\\' : \\'false\\', \\'aria-owns\\': contentId, \\'id\\': headerId, }', function ($context, $element) { return { 'attr': function () { return { 'aria-expanded': $context.$data.alwaysShow() || !$context.$data.collapsed() ? 'true' : 'false', 'aria-owns': $context.$data.contentId, 'id': $context.$data.headerId }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: up, disabled: isDisabledButton(\\'up\\'), icon: \\'dxrd-svg-operations-moveup\\', iconClass: \\'dx-image-moveup\\' }, attr: { title: getDisplayTextButton(\\'up\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.up, 'disabled': $context.$data.isDisabledButton('up'), 'icon': 'dxrd-svg-operations-moveup', 'iconClass': 'dx-image-moveup' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('up') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: down, disabled: isDisabledButton(\\'down\\'), icon: \\'dxrd-svg-operations-movedown\\', iconClass: \\'dx-image-movedown\\' }, attr: { title: getDisplayTextButton(\\'down\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.down, 'disabled': $context.$data.isDisabledButton('down'), 'icon': 'dxrd-svg-operations-movedown', 'iconClass': 'dx-image-movedown' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('down') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: add, disabled: isDisabledButton(\\'add\\'), icon: \\'dxrd-svg-operations-add\\', iconClass: \\'dx-image-add\\' }, attr: { title: getDisplayTextButton(\\'add\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.add, 'disabled': $context.$data.isDisabledButton('add'), 'icon': 'dxrd-svg-operations-add', 'iconClass': 'dx-image-add' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('add') }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: remove, disabled: isDisabledButton(\\'delete\\'), icon: \\'dxrd-svg-operations-remove\\', iconClass: \\'dx-image-remove\\' }, attr: { title: getDisplayTextButton(\\'delete\\') }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': $context.$data.remove, 'disabled': $context.$data.isDisabledButton('delete'), 'icon': 'dxrd-svg-operations-remove', 'iconClass': 'dx-image-remove' }; }, 'attr': function () { return { 'title': $context.$data.getDisplayTextButton('delete') }; } }; });\naddToBindingsCache('styleunit: { \\'paddingLeft\\': padding }', function ($context, $element) { return { 'styleunit': function () { return { 'paddingLeft': $context.$data.padding }; } }; });\naddToBindingsCache('text: displayName, attr: { title: displayName }', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('attr: { \\'aria-hidden\\': !alwaysShow() && collapsed() ? \\'true\\' : \\'false\\', \\'aria-labelledby\\': headerId, \\'id\\': contentId }', function ($context, $element) { return { 'attr': function () { return { 'aria-hidden': !$context.$data.alwaysShow() && $context.$data.collapsed() ? 'true' : 'false', 'aria-labelledby': $context.$data.headerId, 'id': $context.$data.contentId }; } }; });\naddToBindingsCache('visible: !disabled(), dxScrollView: { showScrollbar: \\'onHover\\', disabled: !showScroll, useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'visible': function () { return !$context.$data.disabled(); }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'disabled': !$context.$data.showScroll, 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('text: getDisplayTextEmptyArray()', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayTextEmptyArray(); } }; });\naddToBindingsCache('foreach: values', function ($context, $element) { return { 'foreach': function () { return $context.$data.values; } }; });\naddToBindingsCache('with: $parent.createCollectionItemWrapper($parents[1], $index, $element)', function ($context, $element) { return { 'with': function () { return $context.$parent.createCollectionItemWrapper($context.$parents[1], $context.$index, $element); } }; });\naddToBindingsCache('attr: { \\'aria-selected\\': $parents[1].selectedIndex() === $index() }, dxAction: { model: $data, action: $parents[1].select }, css: { \\'dxd-state-selected\\' : $parents[1].selectedIndex() === $index() }', function ($context, $element) { return { 'attr': function () { return { 'aria-selected': $context.$parents[1].selectedIndex() === $context.$index() }; }, 'dxAction': function () { return { 'model': $context.$data, 'action': $context.$parents[1].select }; }, 'css': function () { return { 'dxd-state-selected': $context.$parents[1].selectedIndex() === $context.$index() }; } }; });\naddToBindingsCache('if: showButtons', function ($context, $element) { return { 'if': function () { return $context.$data.showButtons; } }; });\naddToBindingsCache('if: isVisibleButton(\\'up\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('up'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'down\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('down'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'add\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('add'); } }; });\naddToBindingsCache('if: isVisibleButton(\\'delete\\')', function ($context, $element) { return { 'if': function () { return $context.$data.isVisibleButton('delete'); } }; });\naddToBindingsCache('if: displayName', function ($context, $element) { return { 'if': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('if: values().length === 0 && showButtons', function ($context, $element) { return { 'if': function () { return $context.$data.values().length === 0 && $context.$data.showButtons; } }; });\naddToBindingsCache('if: values().length !== 0', function ($context, $element) { return { 'if': function () { return $context.$data.values().length !== 0; } }; });\naddToBindingsCache('dxCheckBox: getOptions({ value: value, disabled: disabled, elementAttr: { \\'aria-label\\': displayName } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxCheckBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'elementAttr': { 'aria-label': $context.$data.displayName } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: [ { val: true, text: $root.getLocalization(\\'Yes\\', \\'AnalyticsCoreStringId.ParametersPanel_True\\') }, { val: false, text: $root.getLocalization(\\'No\\', \\'AnalyticsCoreStringId.ParametersPanel_False\\') }], inputAttr: { \\'aria-label\\': displayName, id: editorInputId }, valueExpr: \\'val\\', displayExpr: \\'text\\', value: value, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) } }, dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': [{ 'val': true, 'text': $context.$root.getLocalization('Yes', 'AnalyticsCoreStringId.ParametersPanel_True') }, { 'val': false, 'text': $context.$root.getLocalization('No', 'AnalyticsCoreStringId.ParametersPanel_False') }], 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId }, 'valueExpr': 'val', 'displayExpr': 'text', 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) } }; }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxCollectionEditor: { values: value, displayName: displayName, level: level, info: info }', function ($context, $element) { return { 'dxCollectionEditor': function () { return { 'values': $context.$data.value, 'displayName': $context.$data.displayName, 'level': $context.$data.level, 'info': $context.$data.info }; } }; });\naddToBindingsCache('text: $data.display, attr: { title: $data.display }', function ($context, $element) { return { 'text': function () { return $context.$data.display; }, 'attr': function () { return { 'title': $context.$data.display }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName, id: editorInputId }}, dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: $data.validationRules || [] })', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }; }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('dxLocalizedSelectBox: { items: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', disabled: disabled, acceptCustomValue: true, onCustomItemCreating: function(arg) { return { value: arg.text, displayValue: arg.text }; }, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName, id: editorInputId }, useLocalizedTextAsValue: true }', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'items': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'disabled': $context.$data.disabled, 'acceptCustomValue': true, 'onCustomItemCreating': function (arg) { return { 'value': arg.text, 'displayValue': arg.text }; }, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId }, 'useLocalizedTextAsValue': true }; } }; });\naddToBindingsCache('dxLocalizedSelectBox: { dataSource: values, value: generateValue($root.undoEngine), valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element) }, inputAttr: { id: editorInputId } }, dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: validationRules || [] })', function ($context, $element) { return { 'dxLocalizedSelectBox': function () { return { 'dataSource': $context.$data.values, 'value': $context.$data.generateValue($context.$root.undoEngine), 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'id': $context.$data.editorInputId } }; }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('attr: { role: \\'treeitem\\', \\'id\\': isComplexEditor && headerId, \\'aria-owns\\': isComplexEditor && contentId, \\'aria-expanded\\': isComplexEditor && (alwaysShow() || !collapsed() ? \\'true\\' : \\'false\\') }, css: {\\'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented\\': isComplexEditor}', function ($context, $element) { return { 'attr': function () { return { 'role': 'treeitem', 'id': $context.$data.isComplexEditor && $context.$data.headerId, 'aria-owns': $context.$data.isComplexEditor && $context.$data.contentId, 'aria-expanded': $context.$data.isComplexEditor && ($context.$data.alwaysShow() || !$context.$data.collapsed() ? 'true' : 'false') }; }, 'css': function () { return { 'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented': $context.$data.isComplexEditor }; } }; });\naddToBindingsCache('styleunit: padding, css: { \\'dx-accordion-empty\\': templateName === \\'dx-emptyHeader\\' }', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-accordion-empty': $context.$data.templateName === 'dx-emptyHeader' }; } }; });\naddToBindingsCache('enable: templateName === \\'dx-emptyHeader\\'', function ($context, $element) { return { 'enable': function () { return $context.$data.templateName === 'dx-emptyHeader'; } }; });\naddToBindingsCache('searchHighlighting: { text: displayName, textToSearch: textToSearch }, attr: { \\'title\\': displayName }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayName, 'textToSearch': $context.$data.textToSearch }; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('text: displayName, attr: { \\'title\\': displayName }', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName }; } }; });\naddToBindingsCache('searchHighlighting: { text: displayName, textToSearch: textToSearch }, attr: { \\'title\\': displayName, \\'for\\': editorInputId }, css: { \\'dx-field-label-required\\': isRequired }, style: { fontWeight: isPropertyModified() ? \\'Bold\\' : \\'\\'}', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayName, 'textToSearch': $context.$data.textToSearch }; }, 'attr': function () { return { 'title': $context.$data.displayName, 'for': $context.$data.editorInputId }; }, 'css': function () { return { 'dx-field-label-required': $context.$data.isRequired }; }, 'style': function () { return { 'fontWeight': $context.$data.isPropertyModified() ? 'Bold' : '' }; } }; });\naddToBindingsCache('text: displayName, attr: { \\'title\\': displayName, \\'for\\': editorInputId }, css: { \\'dx-property-required\\': isRequired }, style: { fontWeight: isPropertyModified() ? \\'Bold\\' : \\'\\'}', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName, 'for': $context.$data.editorInputId }; }, 'css': function () { return { 'dx-property-required': $context.$data.isRequired }; }, 'style': function () { return { 'fontWeight': $context.$data.isPropertyModified() ? 'Bold' : '' }; } }; });\naddToBindingsCache('css: { \\'dxd-border-accented\\': $data.isPropertyHighlighted }', function ($context, $element) { return { 'css': function () { return { 'dxd-border-accented': $context.$data.isPropertyHighlighted }; } }; });\naddToBindingsCache('service: { name: \\'createEditorAddOn\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createEditorAddOn' }; } }; });\naddToBindingsCache('attr: { \\'aria-labelledby\\': headerId, \\'id\\': contentId, \\'aria-hidden\\': !alwaysShow() && collapsed() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'aria-labelledby': $context.$data.headerId, 'id': $context.$data.contentId, 'aria-hidden': !$context.$data.alwaysShow() && $context.$data.collapsed() ? 'true' : 'false' }; } }; });\naddToBindingsCache('if: isComplexEditor', function ($context, $element) { return { 'if': function () { return $context.$data.isComplexEditor; } }; });\naddToBindingsCache('if: !!$data.textToSearch', function ($context, $element) { return { 'if': function () { return !!$context.$data.textToSearch; } }; });\naddToBindingsCache('ifnot: !!$data.textToSearch', function ($context, $element) { return { 'ifnot': function () { return !!$context.$data.textToSearch; } }; });\naddToBindingsCache('if: !isComplexEditor', function ($context, $element) { return { 'if': function () { return !$context.$data.isComplexEditor; } }; });\naddToBindingsCache('if: templateName !== \\'dx-emptyHeader\\'', function ($context, $element) { return { 'if': function () { return $context.$data.templateName !== 'dx-emptyHeader'; } }; });\naddToBindingsCache('lazy: { innerBindings: { template: templateName }, isResolved: $data.isRendered }', function ($context, $element) { return { 'lazy': function () { return { 'innerBindings': { 'template': $context.$data.templateName }, 'isResolved': $context.$data.isRendered }; } }; });\naddToBindingsCache('if: (!$data.editorCreated || editorCreated)', function ($context, $element) { return { 'if': function () { return (!$context.$data.editorCreated || $context.$data.editorCreated); } }; });\naddToBindingsCache('template: contentTemplateName', function ($context, $element) { return { 'template': function () { return $context.$data.contentTemplateName; } }; });\naddToBindingsCache('dxDateBox: getOptions({ value: value, closeOnValueChange: true, type: \\'datetime\\', disabled: disabled, inputAttr: { \\'aria-label\\': displayName, id: editorInputId }, dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flip\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxDateBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'closeOnValueChange': true, 'type': 'datetime', 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId }, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flip', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxFileImagePicker: { value: value, placeholderId: \\'File\\', disabled: disabled }', function ($context, $element) { return { 'dxFileImagePicker': function () { return { 'value': $context.$data.value, 'placeholderId': 'File', 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': bold(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { bold(!bold()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.bold(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.bold(!$context.$data.bold());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': italic(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { italic(!italic()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.italic(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.italic(!$context.$data.italic());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': underline(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { underline(!underline()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.underline(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.underline(!$context.$data.underline());\n } }; } }; });\naddToBindingsCache('css: { \\'dxd-state-active\\': strikeout(), \\'dx-disabled-button\\': $parent.disabled }, click: function() { if(!$parent.disabled()) { strikeout(!strikeout()); } }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-active': $context.$data.strikeout(), 'dx-disabled-button': $context.$parent.disabled }; }, 'click': function () { return function () { if (!$context.$parent.disabled()) {\n $context.$data.strikeout(!$context.$data.strikeout());\n } }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-bold\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-bold'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-italic\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-italic'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-underline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-underline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-strikeout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-strikeout'; } }; });\naddToBindingsCache('dxFileImagePicker: { value: value, placeholderId: \\'Image\\', accept: \\'image/*\\', type: \\'img\\', disabled: disabled }', function ($context, $element) { return { 'dxFileImagePicker': function () { return { 'value': $context.$data.value, 'placeholderId': 'Image', 'accept': 'image/*', 'type': 'img', 'disabled': $context.$data.disabled }; } }; });\naddToBindingsCache('dxNumberBox: getOptions({ value:value, showSpinButtons:true, disabled:disabled, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxNumberBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'showSpinButtons': true, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }), dxValidator: { validationRules: validationRules || [] }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName, \\'id\\': editorInputId }}), dxValidator: getValidatorOptions($data.validatorOptions || { validationRules: validationRules || [] })', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return $context.$data.getValidatorOptions($context.$data.validatorOptions || { 'validationRules': $context.$data.validationRules || [] }); } }; });\naddToBindingsCache('dxTextBox: getOptions({ value: value, disabled: disabled, inputAttr: { \\'aria-label\\': displayName, \\'id\\': editorInputId }})', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getOptions({ 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); } }; });\naddToBindingsCache('value: value, disable: disabled', function ($context, $element) { return { 'value': function () { return $context.$data.value; }, 'disable': function () { return $context.$data.disabled; }, '_ko_property_writers': function () { return { 'value': function (_z) { $context.$data.value = _z; } }; } }; });\naddToBindingsCache('if: $data.validationRules', function ($context, $element) { return { 'if': function () { return $context.$data.validationRules; } }; });\naddToBindingsCache('if: !$data.validationRules', function ($context, $element) { return { 'if': function () { return !$context.$data.validationRules; } }; });\naddToBindingsCache('css: { \\'dx-rtl\\' : rtl }', function ($context, $element) { return { 'css': function () { return { 'dx-rtl': $context.$data.rtl }; } }; });\naddToBindingsCache('foreach: getEditors()', function ($context, $element) { return { 'foreach': function () { return $context.$data.getEditors(); } }; });\naddToBindingsCache('dxPopup: { showTitle: true, width: \\'750px\\', height: \\'475px\\', title: title(), rtlEnabled: rtl, visible: popupVisible, wrapperAttr: { class: className }, toolbarItems: buttonItems, showCloseButton: true, container: $root.getPopupContainer($element), position: { of: $root.getPopupContainer($element) }, }', function ($context, $element) { return { 'dxPopup': function () { return { 'showTitle': true, 'width': '750px', 'height': '475px', 'title': $context.$data.title(), 'rtlEnabled': $context.$data.rtl, 'visible': $context.$data.popupVisible, 'wrapperAttr': { 'class': $context.$data.className }, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$root.getPopupContainer($element), 'position': { 'of': $context.$root.getPopupContainer($element) } }; } }; });\naddToBindingsCache('dxDataGrid: queriesGrid', function ($context, $element) { return { 'dxDataGrid': function () { return $context.$data.queriesGrid; } }; });\naddToBindingsCache('dxDropDownButton: $data', function ($context, $element) { return { 'dxDropDownButton': function () { return $context.$data; } }; });\naddToBindingsCache('if: $data', function ($context, $element) { return { 'if': function () { return $context.$data; } }; });\naddToBindingsCache('template: { name: $data._queriesPopupHelper.template, data: _queriesPopupHelper }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data._queriesPopupHelper.template, 'data': $context.$data._queriesPopupHelper }; } }; });\naddToBindingsCache('foreach: $data.popupItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.popupItems; } }; });\naddToBindingsCache('template: { name: template, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.template, 'data': $context.$data.model }; } }; });\naddToBindingsCache('with: options', function ($context, $element) { return { 'with': function () { return $context.$data.options; } }; });\naddToBindingsCache('dxTextArea: { value: textAreaValue, isValid: isValid, spellcheck: false, onKeyUp: function() { isValid(true); } }, resizable: resizeHelper.resizable($root.resizeHandler, \\'s\\', $element)', function ($context, $element) { return { 'dxTextArea': function () { return { 'value': $context.$data.textAreaValue, 'isValid': $context.$data.isValid, 'spellcheck': false, 'onKeyUp': function () { $context.$data.isValid(true); } }; }, 'resizable': function () { return $context.$data.resizeHelper.resizable($context.$root.resizeHandler, 's', $element); } }; });\naddToBindingsCache('dxAceEditor: { value: textAreaValue, editorContainer: editorContainer, theme: theme, options: aceOptions, additionalOptions: additionalOptions, callbacks: callbacks }, resizable: resizeHelper.resizable($root.resizeHandler, \\'s\\', $element)', function ($context, $element) { return { 'dxAceEditor': function () { return { 'value': $context.$data.textAreaValue, 'editorContainer': $context.$data.editorContainer, 'theme': $context.$data.theme, 'options': $context.$data.aceOptions, 'additionalOptions': $context.$data.additionalOptions, 'callbacks': $context.$data.callbacks }; }, 'resizable': function () { return $context.$data.resizeHelper.resizable($context.$root.resizeHandler, 's', $element); } }; });\naddToBindingsCache('visible: visible, attr: { class: \\'dx-expressioneditor-tools-tab dxd-back-primary2 \\'+ ($data.templateName ? $data.templateName : \\'\\')}', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'attr': function () { return { 'class': 'dx-expressioneditor-tools-tab dxd-back-primary2 ' + ($context.$data.templateName ? $context.$data.templateName : '') }; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: displayValue, buttonAction: function() { popupVisible(true); }, disabled: disabled, isValid: modelValueValid, warningMessage: modelValueWarning, inputAttr: { id: editorInputId } }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.displayValue, 'buttonAction': function () { $context.$data.popupVisible(true); }, 'disabled': $context.$data.disabled, 'isValid': $context.$data.modelValueValid, 'warningMessage': $context.$data.modelValueWarning, 'inputAttr': { 'id': $context.$data.editorInputId } }; } }; });\naddToBindingsCache('dxPopup: { animation: { show: { type: \\'fadeIn\\', duration: 700 }, hide: { type: \\'fadeOut\\', duration: 700 } }, showTitle: true, wrapperAttr: { class: \\'dx-expressioneditor dx-popup-general\\' }, title: title(), visible: popupVisible, toolbarItems: buttonItems, showCloseButton: true, fullScreen: false, height: \\'615px\\', maxHeight: \\'90%\\', maxWidth: \\'90%\\', minHeight: 400, minWidth: 500, width: \\'645px\\', container: getPopupContainer($element), position: { of: getPopupContainer($element)}, onContentReady: onContentReady, onShowing: onShowing, onHiding: onHiding, onShown: onShown, resizeEnabled: true, onResize: function() { $data.resizeAceEditor() } }', function ($context, $element) { return { 'dxPopup': function () { return { 'animation': { 'show': { 'type': 'fadeIn', 'duration': 700 }, 'hide': { 'type': 'fadeOut', 'duration': 700 } }, 'showTitle': true, 'wrapperAttr': { 'class': 'dx-expressioneditor dx-popup-general' }, 'title': $context.$data.title(), 'visible': $context.$data.popupVisible, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'fullScreen': false, 'height': '615px', 'maxHeight': '90%', 'maxWidth': '90%', 'minHeight': 400, 'minWidth': 500, 'width': '645px', 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) }, 'onContentReady': $context.$data.onContentReady, 'onShowing': $context.$data.onShowing, 'onHiding': $context.$data.onHiding, 'onShown': $context.$data.onShown, 'resizeEnabled': true, 'onResize': function () { $context.$data.resizeAceEditor(); } }; } }; });\naddToBindingsCache('if: !aceAvailable', function ($context, $element) { return { 'if': function () { return !$context.$data.aceAvailable; } }; });\naddToBindingsCache('if: aceAvailable', function ($context, $element) { return { 'if': function () { return $context.$data.aceAvailable; } }; });\naddToBindingsCache('with: tools', function ($context, $element) { return { 'with': function () { return $context.$data.tools; } }; });\naddToBindingsCache('foreach: toolBox', function ($context, $element) { return { 'foreach': function () { return $context.$data.toolBox; } }; });\naddToBindingsCache('template: { name: $data.templateName }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName }; } }; });\naddToBindingsCache('template: \\'dx-expressioneditor-popup\\'', function ($context, $element) { return { 'template': function () { return 'dx-expressioneditor-popup'; } }; });\naddToBindingsCache('if: popupVisible', function ($context, $element) { return { 'if': function () { return $context.$data.popupVisible; } }; });\naddToBindingsCache('template: \"dx-expressioneditor-main\"', function ($context, $element) { return { 'template': function () { return 'dx-expressioneditor-main'; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }, resizable: $parents[1].resizeHelper.resizable($root.resizeHandler, \\'e\\')', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; }, 'resizable': function () { return $context.$parents[1].resizeHelper.resizable($context.$root.resizeHandler, 'e'); } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': content.isSelected }, text: displayName, dxclick: function() { $parent.click($data.content) }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.content.isSelected }; }, 'text': function () { return $context.$data.displayName; }, 'dxclick': function () { return function () { $context.$parent.click($context.$data.content); }; } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': $data.isSelected }, dxclick: function() { $data.updateContent($data.allItems(), $data.isSelected); $parent.click($data.content) }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.isSelected }; }, 'dxclick': function () { return function () { $context.$data.updateContent($context.$data.allItems(), $context.$data.isSelected); $context.$parent.click($context.$data.content); }; } }; });\naddToBindingsCache('text: displayName', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('css: {\\'dxd-state-selected\\': isSelected }, text: $data.display, dxclick: function() { $parent.updateContent($data.data, $data.isSelected); $parents[1].click($parent.content); }', function ($context, $element) { return { 'css': function () { return { 'dxd-state-selected': $context.$data.isSelected }; }, 'text': function () { return $context.$data.display; }, 'dxclick': function () { return function () { $context.$parent.updateContent($context.$data.data, $context.$data.isSelected); $context.$parents[1].click($context.$parent.content); }; } }; });\naddToBindingsCache('foreach: content', function ($context, $element) { return { 'foreach': function () { return $context.$data.content; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; } }; });\naddToBindingsCache('text: content', function ($context, $element) { return { 'text': function () { return $context.$data.content; } }; });\naddToBindingsCache('treeListSearchPanel: { controllers: [ ko.unwrap($data.parameters) ? ko.unwrap($data.parameters).treeListController : ko.unwrap($data.parameters), ko.unwrap($data.fields) ? ko.unwrap($data.fields).treeListController : ko.unwrap($data.fields) ] }', function ($context, $element) { return { 'treeListSearchPanel': function () { return { 'controllers': [$context.ko.unwrap($context.$data.parameters) ? $context.ko.unwrap($context.$data.parameters).treeListController : $context.ko.unwrap($context.$data.parameters), $context.ko.unwrap($context.$data.fields) ? $context.ko.unwrap($context.$data.fields).treeListController : $context.ko.unwrap($context.$data.fields)] }; } }; });\naddToBindingsCache('treelist: fields', function ($context, $element) { return { 'treelist': function () { return $context.$data.fields; } }; });\naddToBindingsCache('treelist: parameters', function ($context, $element) { return { 'treelist': function () { return $context.$data.parameters; } }; });\naddToBindingsCache('visible: visible, event: { dblclick: function() { actions[0].clickAction($element); }}, styleunit: padding, css: { \\'dx-treelist-item-selected dxd-state-selected\\': isSelected }', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'event': function () { return { 'dblclick': function () { $context.$data.actions[0].clickAction($element); } }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-treelist-item-selected dxd-state-selected': $context.$data.isSelected }; } }; });\naddToBindingsCache('css: nodeImageClass, template: \\'dxrd-svg-collapsed\\', click: toggleCollapsed', function ($context, $element) { return { 'css': function () { return $context.$data.nodeImageClass; }, 'template': function () { return 'dxrd-svg-collapsed'; }, 'click': function () { return $context.$data.toggleCollapsed; } }; });\naddToBindingsCache('css: $data.imageClassName, template: {name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, attr: { title: text }', function ($context, $element) { return { 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('click: toggleSelected', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; } }; });\naddToBindingsCache('if: fields', function ($context, $element) { return { 'if': function () { return $context.$data.fields; } }; });\naddToBindingsCache('if: $data.parameters', function ($context, $element) { return { 'if': function () { return $context.$data.parameters; } }; });\naddToBindingsCache('if: hasItems', function ($context, $element) { return { 'if': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('ifnot: hasItems', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('template: { name: \\'dx-treelist-item-text-content\\' }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist-item-text-content' }; } }; });\naddToBindingsCache('attr: { class: \\'dx-expressioneditor-tools-tab-item dxd-list-item-back-color dxd-text-primary dxd-back-highlighted \\' + ($data.class ? $data.class : \\'\\') }, text: $data.displayName || $data.text, css: { \\'dx-expressioneditor-state-selected dxd-state-selected\\': $parent.selectedItem() === $data }, dxclick: function() { $parent.selectedItem($data); $parents[2].click($data); }, event: { dblclick: function() { $parents[2].dblclick($data, $element); } }', function ($context, $element) { return { 'attr': function () { return { 'class': 'dx-expressioneditor-tools-tab-item dxd-list-item-back-color dxd-text-primary dxd-back-highlighted ' + ($context.$data.class ? $context.$data.class : '') }; }, 'text': function () { return $context.$data.displayName || $context.$data.text; }, 'css': function () { return { 'dx-expressioneditor-state-selected dxd-state-selected': $context.$parent.selectedItem() === $context.$data }; }, 'dxclick': function () { return function () { $context.$parent.selectedItem($context.$data); $context.$parents[2].click($context.$data); }; }, 'event': function () { return { 'dblclick': function () { $context.$parents[2].dblclick($context.$data, $element); } }; } }; });\naddToBindingsCache('dxTextBox: { value: textToSearch, showClearButton: true, valueChangeEvent: \\'keyup\\', placeholder: $parents[2].searchPlaceholder() }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.textToSearch, 'showClearButton': true, 'valueChangeEvent': 'keyup', 'placeholder': $context.$parents[2].searchPlaceholder() }; } }; });\naddToBindingsCache('css: { \\'dx-expressioneditor-state-selected dxd-state-selected\\': $parent.selectedItem() === $data }, dxclick: function() { $parent.selectedItem($data); $parents[2].click($data); }, event: { dblclick: function() { $parents[2].dblclick($data, $element); } }, searchHighlighting: { text: $data.displayName || $data.text, textToSearch: $parent.textToSearch }', function ($context, $element) { return { 'css': function () { return { 'dx-expressioneditor-state-selected dxd-state-selected': $context.$parent.selectedItem() === $context.$data }; }, 'dxclick': function () { return function () { $context.$parent.selectedItem($context.$data); $context.$parents[2].click($context.$data); }; }, 'event': function () { return { 'dblclick': function () { $context.$parents[2].dblclick($context.$data, $element); } }; }, 'searchHighlighting': function () { return { 'text': $context.$data.displayName || $context.$data.text, 'textToSearch': $context.$parent.textToSearch }; } }; });\naddToBindingsCache('with: content', function ($context, $element) { return { 'with': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: $data', function ($context, $element) { return { 'template': function () { return $context.$data; } }; });\naddToBindingsCache('foreach: availableItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.availableItems; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; } }; });\naddToBindingsCache('css: { \\'advanced\\': advancedMode }, visible: textVisible', function ($context, $element) { return { 'css': function () { return { 'advanced': $context.$data.advancedMode }; }, 'visible': function () { return $context.$data.textVisible; } }; });\naddToBindingsCache('css: $data.getTextCssClasses(), style: { height: textContentHeightPerc }', function ($context, $element) { return { 'css': function () { return $context.$data.getTextCssClasses(); }, 'style': function () { return { 'height': $context.$data.textContentHeightPerc }; } }; });\naddToBindingsCache('dxCheckBox: { value: advancedMode, text: advancedModeText }, style: $data.getCheckBoxStyles()', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.advancedMode, 'text': $context.$data.advancedModeText }; }, 'style': function () { return $context.$data.getCheckBoxStyles(); } }; });\naddToBindingsCache('style: $data.getContentStyles()', function ($context, $element) { return { 'style': function () { return $context.$data.getContentStyles(); } }; });\naddToBindingsCache('visible: $data.options().disabled()', function ($context, $element) { return { 'visible': function () { return $context.$data.options().disabled(); } }; });\naddToBindingsCache('dxTextArea: { value: displayValue, isValid: isValid, onInput: onInput, spellcheck: false }, cacheElement: { action: function(element) { cacheElement(element) } }', function ($context, $element) { return { 'dxTextArea': function () { return { 'value': $context.$data.displayValue, 'isValid': $context.$data.isValid, 'onInput': $context.$data.onInput, 'spellcheck': false }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.cacheElement(element); } }; } }; });\naddToBindingsCache('css: {\\'dx-invalid\\': !$data.isValid(), \\'dx-state-focused\\': textFocused }', function ($context, $element) { return { 'css': function () { return { 'dx-invalid': !$context.$data.isValid(), 'dx-state-focused': $context.$data.textFocused }; } }; });\naddToBindingsCache('dxAceEditor: { value: $data.displayValue, theme: helper.aceTheme, editorContainer: editorContainer, options: aceOptions, additionalOptions: additionalOptions }', function ($context, $element) { return { 'dxAceEditor': function () { return { 'value': $context.$data.displayValue, 'theme': $context.$data.helper.aceTheme, 'editorContainer': $context.$data.editorContainer, 'options': $context.$data.aceOptions, 'additionalOptions': $context.$data.additionalOptions }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', direction: \\'both\\' }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'direction': 'both' }; } }; });\naddToBindingsCache('dxclick: function() { $data.advancedMode(true); }', function ($context, $element) { return { 'dxclick': function () { return function () { $context.$data.advancedMode(true); }; } }; });\naddToBindingsCache('text: invalidMessage()', function ($context, $element) { return { 'text': function () { return $context.$data.invalidMessage(); } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-tree\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-tree'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-text\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-text'; } }; });\naddToBindingsCache('if: $data.advancedModeTop()', function ($context, $element) { return { 'if': function () { return $context.$data.advancedModeTop(); } }; });\naddToBindingsCache('template: \\'dx-filtereditor-plain-content-text\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-plain-content-text'; } }; });\naddToBindingsCache('ifnot: $data.advancedModeTop()', function ($context, $element) { return { 'ifnot': function () { return $context.$data.advancedModeTop(); } }; });\naddToBindingsCache('with: operandSurface', function ($context, $element) { return { 'with': function () { return $context.$data.operandSurface; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data, if: $parent.isSurfaceValid }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data, 'if': $context.$parent.isSurfaceValid }; } }; });\naddToBindingsCache('ifnot: isSurfaceValid', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isSurfaceValid; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: modelDisplayValue, isValid: modelValueIsValid, disabled: disabled, buttonAction: function() { popupVisible(true); }, inputAttr: { id: editorInputId } }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.modelDisplayValue, 'isValid': $context.$data.modelValueIsValid, 'disabled': $context.$data.disabled, 'buttonAction': function () { $context.$data.popupVisible(true); }, 'inputAttr': { 'id': $context.$data.editorInputId } }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.options().disabled() ? \\'none\\' : \\'\\' }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.options().disabled() ? 'none' : '' }; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-popup\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-popup'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-popups\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-popups'; } }; });\naddToBindingsCache('template: \\'dx-filtereditor-content-plain\\'', function ($context, $element) { return { 'template': function () { return 'dx-filtereditor-content-plain'; } }; });\naddToBindingsCache('service: { name: \\'createChangeType\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeType' }; } }; });\naddToBindingsCache('dxclick: function() { $data.remove && $data.remove(); }', function ($context, $element) { return { 'dxclick': function () { return function () { $context.$data.remove && $context.$data.remove(); }; } }; });\naddToBindingsCache('visible: !!$data.canRemove', function ($context, $element) { return { 'visible': function () { return !!$context.$data.canRemove; } }; });\naddToBindingsCache('with: property', function ($context, $element) { return { 'with': function () { return $context.$data.property; } }; });\naddToBindingsCache('template: { name: templateName, data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data }; } }; });\naddToBindingsCache('if: $data.aggregatedExpression()', function ($context, $element) { return { 'if': function () { return $context.$data.aggregatedExpression(); } }; });\naddToBindingsCache('with: aggregatedExpression', function ($context, $element) { return { 'with': function () { return $context.$data.aggregatedExpression; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-remove'; } }; });\naddToBindingsCache('template: { name: \\'dx-filtereditor-aggregate-common\\' }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-filtereditor-aggregate-common' }; } }; });\naddToBindingsCache('with: condition', function ($context, $element) { return { 'with': function () { return $context.$data.condition; } }; });\naddToBindingsCache('with: begin', function ($context, $element) { return { 'with': function () { return $context.$data.begin; } }; });\naddToBindingsCache('with: end', function ($context, $element) { return { 'with': function () { return $context.$data.end; } }; });\naddToBindingsCache('with: leftOperand', function ($context, $element) { return { 'with': function () { return $context.$data.leftOperand; } }; });\naddToBindingsCache('with: rightOperand', function ($context, $element) { return { 'with': function () { return $context.$data.rightOperand; } }; });\naddToBindingsCache('if: $data.leftPart && $data.leftPart.condition', function ($context, $element) { return { 'if': function () { return $context.$data.leftPart && $context.$data.leftPart.condition; } }; });\naddToBindingsCache('with: leftPart', function ($context, $element) { return { 'with': function () { return $context.$data.leftPart; } }; });\naddToBindingsCache('css: css', function ($context, $element) { return { 'css': function () { return $context.$data.css; } }; });\naddToBindingsCache('text: displayType', function ($context, $element) { return { 'text': function () { return $context.$data.displayType; } }; });\naddToBindingsCache('service: { name: \\'createChangeValueType\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeValueType' }; } }; });\naddToBindingsCache('template: { name: $data.leftPart.templateName, data: $data.leftPart }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.leftPart.templateName, 'data': $context.$data.leftPart }; } }; });\naddToBindingsCache('foreach: rightPart', function ($context, $element) { return { 'foreach': function () { return $context.$data.rightPart; } }; });\naddToBindingsCache('template: { name: $data.templateName, data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.templateName, 'data': $context.$data }; } }; });\naddToBindingsCache('service: { name: \\'createAddButton\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createAddButton' }; } }; });\naddToBindingsCache('foreach: operands', function ($context, $element) { return { 'foreach': function () { return $context.$data.operands; } }; });\naddToBindingsCache('dxclick: addValue', function ($context, $element) { return { 'dxclick': function () { return $context.$data.addValue; } }; });\naddToBindingsCache('with: criteriaOperator', function ($context, $element) { return { 'with': function () { return $context.$data.criteriaOperator; } }; });\naddToBindingsCache('if: $data.operands().length > 1', function ($context, $element) { return { 'if': function () { return $context.$data.operands().length > 1; } }; });\naddToBindingsCache('foreach: $data.operands()', function ($context, $element) { return { 'foreach': function () { return $context.$data.operands(); } }; });\naddToBindingsCache('if: $data.operands().length == 1', function ($context, $element) { return { 'if': function () { return $context.$data.operands().length == 1; } }; });\naddToBindingsCache('template: { name: $data.operands()[0].templateName, data: $data.operands()[0] }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.operands()[0].templateName, 'data': $context.$data.operands()[0] }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-add'; } }; });\naddToBindingsCache('service: { name: \\'createChangeParameter\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeParameter' }; } }; });\naddToBindingsCache('if: $data.canChange', function ($context, $element) { return { 'if': function () { return $context.$data.canChange; } }; });\naddToBindingsCache('service: { name: \\'createChangeProperty\\' }', function ($context, $element) { return { 'service': function () { return { 'name': 'createChangeProperty' }; } }; });\naddToBindingsCache('if: $data.operand().reverse', function ($context, $element) { return { 'if': function () { return $context.$data.operand().reverse; } }; });\naddToBindingsCache('template: {name: $data.operand().templateName, data: $data.operand() }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.operand().templateName, 'data': $context.$data.operand() }; } }; });\naddToBindingsCache('ifnot: $data.operand().reverse', function ($context, $element) { return { 'ifnot': function () { return $context.$data.operand().reverse; } }; });\naddToBindingsCache('with: operand', function ($context, $element) { return { 'with': function () { return $context.$data.operand; } }; });\naddToBindingsCache('visible: isEditable', function ($context, $element) { return { 'visible': function () { return $context.$data.isEditable; } }; });\naddToBindingsCache('dxTextBox: getStringEditorOptions($element), focus: { on: isEditable }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getStringEditorOptions($element); }, 'focus': function () { return { 'on': $context.$data.isEditable }; } }; });\naddToBindingsCache('focus: isEditable, dxLocalizedSelectBox: getBoolEditorOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxLocalizedSelectBox': function () { return $context.$data.getBoolEditorOptions($element, $context.$root); } }; });\naddToBindingsCache('focus: isEditable, dxDateBox: getDateEditorOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxDateBox': function () { return $context.$data.getDateEditorOptions($element, $context.$root); } }; });\naddToBindingsCache('dxTextBox: getNumberEditorOptions($element), focus: { on: isEditable }', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.getNumberEditorOptions($element); }, 'focus': function () { return { 'on': $context.$data.isEditable }; } }; });\naddToBindingsCache('focus: isEditable, dxSelectBox: getListEditOptions($element, $root)', function ($context, $element) { return { 'focus': function () { return $context.$data.isEditable; }, 'dxSelectBox': function () { return $context.$data.getListEditOptions($element, $context.$root); } }; });\naddToBindingsCache('visible: !isEditable()', function ($context, $element) { return { 'visible': function () { return !$context.$data.isEditable(); } }; });\naddToBindingsCache('text: value, click: function() { isEditable(true); }, css: { \\'default\\': $data.isDefaultDisplay() }', function ($context, $element) { return { 'text': function () { return $context.$data.value; }, 'click': function () { return function () { $context.$data.isEditable(true); }; }, 'css': function () { return { 'default': $context.$data.isDefaultDisplay() }; } }; });\naddToBindingsCache('if: $data.items.length === 0', function ($context, $element) { return { 'if': function () { return $context.$data.items.length === 0; } }; });\naddToBindingsCache('if: $data.specifics() === \"string\" || $data.specifics() === \"guid\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'string' || $context.$data.specifics() === 'guid'; } }; });\naddToBindingsCache('if: $data.specifics() === \"bool\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'bool'; } }; });\naddToBindingsCache('if: $data.specifics() === \"date\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() === 'date'; } }; });\naddToBindingsCache('if: $data.specifics() !== \"string\" && $data.specifics() !== \"bool\" && $data.specifics() !== \"date\" && $data.specifics() !== \"guid\"', function ($context, $element) { return { 'if': function () { return $context.$data.specifics() !== 'string' && $context.$data.specifics() !== 'bool' && $context.$data.specifics() !== 'date' && $context.$data.specifics() !== 'guid'; } }; });\naddToBindingsCache('if: $data.items.length > 0', function ($context, $element) { return { 'if': function () { return $context.$data.items.length > 0; } }; });\naddToBindingsCache('dxPopup: { animation: { show: { type: \\'fadeIn\\', duration: 700 }, hide: { type: \\'fadeOut\\', duration: 700 } }, showTitle: true, wrapperAttr: { class: \\'dx-filtereditor dx-popup-general\\' }, resizeEnabled: true, onResize: function() { $data.resizeAceEditor() }, width: 700, height: 500, maxHeight: \\'95%\\', maxWidth: \\'95%\\', minHeight: 300, minWidth: 400, title: options() && options().title(), visible: popupVisible, onShown: function() { $data.focusText() }, toolbarItems: buttonItems, showCloseButton: true, container: getPopupContainer($element), position: { of: getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'animation': { 'show': { 'type': 'fadeIn', 'duration': 700 }, 'hide': { 'type': 'fadeOut', 'duration': 700 } }, 'showTitle': true, 'wrapperAttr': { 'class': 'dx-filtereditor dx-popup-general' }, 'resizeEnabled': true, 'onResize': function () { $context.$data.resizeAceEditor(); }, 'width': 700, 'height': 500, 'maxHeight': '95%', 'maxWidth': '95%', 'minHeight': 300, 'minWidth': 400, 'title': $context.$data.options() && $context.$data.options().title(), 'visible': $context.$data.popupVisible, 'onShown': function () { $context.$data.focusText(); }, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) } }; } }; });\naddToBindingsCache('dxclick: showPopup', function ($context, $element) { return { 'dxclick': function () { return $context.$data.showPopup; } }; });\naddToBindingsCache('text: target.displayType, dxclick: showPopup, css: target.css', function ($context, $element) { return { 'text': function () { return $context.$data.target.displayType; }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return $context.$data.target.css; } }; });\naddToBindingsCache('text: target.parameterName(), dxclick: showPopup, css: { \\'dxd-state-selected\\': target.isSelected }', function ($context, $element) { return { 'text': function () { return $context.$data.target.parameterName(); }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return { 'dxd-state-selected': $context.$data.target.isSelected }; } }; });\naddToBindingsCache('text: target.displayName, dxclick: showPopup, css: { \\'dxd-state-selected\\': target.isSelected }', function ($context, $element) { return { 'text': function () { return $context.$data.target.displayName; }, 'dxclick': function () { return $context.$data.showPopup; }, 'css': function () { return { 'dxd-state-selected': $context.$data.target.isSelected }; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-edit'; } }; });\naddToBindingsCache('dxPopupWithAutoHeight: { minWidth:\\'170px\\', maxWidth:\\'500px\\', width: \\'auto\\', height: \\'300px\\', wrapperAttr: { class: \\'dx-selectbox-popup-wrapper dx-dropdownlist-popup-wrapper dx-filtereditor-criteriaoperator-popup dx-dropdowneditor-overlay\\' }, focusStateEnabled: false, position: $data.rtl ? { my: \\'right top\\', at: \\'right bottom\\', of: popupService.target} : { my: \\'left top\\', at: \\'left bottom\\', of: popupService.target }, container: $data.getPopupContainer($element), target: popupService.target, showTitle: false, showCloseButton: false, animation: {}, hideOnOutsideClick: true, shading: false, visible: popupService.visible }', function ($context, $element) { return { 'dxPopupWithAutoHeight': function () { return { 'minWidth': '170px', 'maxWidth': '500px', 'width': 'auto', 'height': '300px', 'wrapperAttr': { 'class': 'dx-selectbox-popup-wrapper dx-dropdownlist-popup-wrapper dx-filtereditor-criteriaoperator-popup dx-dropdowneditor-overlay' }, 'focusStateEnabled': false, 'position': $context.$data.rtl ? { 'my': 'right top', 'at': 'right bottom', 'of': $context.$data.popupService.target } : { 'my': 'left top', 'at': 'left bottom', 'of': $context.$data.popupService.target }, 'container': $context.$data.getPopupContainer($element), 'target': $context.$data.popupService.target, 'showTitle': false, 'showCloseButton': false, 'animation': {}, 'hideOnOutsideClick': true, 'shading': false, 'visible': $context.$data.popupService.visible }; } }; });\naddToBindingsCache('dxTextBox: { placeholder: searchPlaceholder(), value: ($data.value || $data.filterString), height: \\'100%\\', width: \\'100%\\', stylingMode: \\'underlined\\', valueChangeEvent: \\'keyup\\' }', function ($context, $element) { return { 'dxTextBox': function () { return { 'placeholder': $context.$data.searchPlaceholder(), 'value': ($context.$data.value || $context.$data.filterString), 'height': '100%', 'width': '100%', 'stylingMode': 'underlined', 'valueChangeEvent': 'keyup' }; } }; });\naddToBindingsCache('template: { name: \\'dx-filtereditor-search-panel\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-filtereditor-search-panel', 'data': $context.$data }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\' }, css: { \\'dx-filtereditor-filtered\\': isFiltered }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover' }; }, 'css': function () { return { 'dx-filtereditor-filtered': $context.$data.isFiltered }; } }; });\naddToBindingsCache('text: $data.displayText || $data.name, click: function() { $parent.click($data); }, attr: {\\'title\\': $data.displayText || $data.name }', function ($context, $element) { return { 'text': function () { return $context.$data.displayText || $context.$data.name; }, 'click': function () { return function () { $context.$parent.click($context.$data); }; }, 'attr': function () { return { 'title': $context.$data.displayText || $context.$data.name }; } }; });\naddToBindingsCache('searchHighlighting: { text: $data.displayText || $data.name, textToSearch: $parent.filterString }, click: function() { $parent.click($data); }, attr: {\\'title\\': $data.displayText || $data.name }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.displayText || $context.$data.name, 'textToSearch': $context.$parent.filterString }; }, 'click': function () { return function () { $context.$parent.click($context.$data); }; }, 'attr': function () { return { 'title': $context.$data.displayText || $context.$data.name }; } }; });\naddToBindingsCache('treeListSearchPanel: { controllers: data().treeListController, template: \\'dx-filtereditor-search-panel\\' }', function ($context, $element) { return { 'treeListSearchPanel': function () { return { 'controllers': $context.$data.data().treeListController, 'template': 'dx-filtereditor-search-panel' }; } }; });\naddToBindingsCache('treelist: data', function ($context, $element) { return { 'treelist': function () { return $context.$data.data; } }; });\naddToBindingsCache('with: popupService', function ($context, $element) { return { 'with': function () { return $context.$data.popupService; } }; });\naddToBindingsCache('with: data', function ($context, $element) { return { 'with': function () { return $context.$data.data; } }; });\naddToBindingsCache('template: template', function ($context, $element) { return { 'template': function () { return $context.$data.template; } }; });\naddToBindingsCache('if: $data.isFiltered', function ($context, $element) { return { 'if': function () { return $context.$data.isFiltered; } }; });\naddToBindingsCache('foreach: data', function ($context, $element) { return { 'foreach': function () { return $context.$data.data; } }; });\naddToBindingsCache('if: !$data.hidden', function ($context, $element) { return { 'if': function () { return !$context.$data.hidden; } }; });\naddToBindingsCache('ifnot: $parent.isFiltered', function ($context, $element) { return { 'ifnot': function () { return $context.$parent.isFiltered; } }; });\naddToBindingsCache('if: $parent.isFiltered', function ($context, $element) { return { 'if': function () { return $context.$parent.isFiltered; } }; });\naddToBindingsCache('dxList: { items: $data.items, selectedItems: $data.selectedItems, onItemClick: $data.action, selectionMode: \\'single\\', activeStateEnabled: false }', function ($context, $element) { return { 'dxList': function () { return { 'items': $context.$data.items, 'selectedItems': $context.$data.selectedItems, 'onItemClick': $context.$data.action, 'selectionMode': 'single', 'activeStateEnabled': false }; } }; });\naddToBindingsCache('click: $parent.removeItem, visible: $data.canRemove', function ($context, $element) { return { 'click': function () { return $context.$parent.removeItem; }, 'visible': function () { return $context.$data.canRemove; } }; });\naddToBindingsCache('text: $data.displayName', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; } }; });\naddToBindingsCache('text: getDisplayText(\\'types\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('types'); } }; });\naddToBindingsCache('dxButton:{ onClick: addCustomFormat, text: getDisplayText(\\'add\\'), disabled: !canAddCustomFormat() }', function ($context, $element) { return { 'dxButton': function () { return { 'onClick': $context.$data.addCustomFormat, 'text': $context.$data.getDisplayText('add'), 'disabled': !$context.$data.canAddCustomFormat() }; } }; });\naddToBindingsCache('dxTextBox: { value: formatResult, onInput: function(e) { updateInputText(\\'formatResult\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatResult, 'onInput': function (e) { $context.$data.updateInputText('formatResult', e.component); } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'prefix\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('prefix'); } }; });\naddToBindingsCache('dxTextBox: { value: formatPrefix, onInput: function(e) { updateInputText(\\'formatPrefix\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatPrefix, 'onInput': function (e) { $context.$data.updateInputText('formatPrefix', e.component); } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'suffix\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('suffix'); } }; });\naddToBindingsCache('dxTextBox: { value: formatSuffix, onInput: function(e) { updateInputText(\\'formatSuffix\\', e.component); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.formatSuffix, 'onInput': function (e) { $context.$data.updateInputText('formatSuffix', e.component); } }; } }; });\naddToBindingsCache('template: { name: \\'dx-format-string-list\\', data: { items: patternList, action: setFormat, removeItem: removeCustomFormat, selectedItems: selectedFormats } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-format-string-list', 'data': { 'items': $context.$data.patternList, 'action': $context.$data.setFormat, 'removeItem': $context.$data.removeCustomFormat, 'selectedItems': $context.$data.selectedFormats } }; } }; });\naddToBindingsCache('dxEllipsisEditor: { value: value, disabled: disabled, buttonAction: function() { popupVisible(true); } }', function ($context, $element) { return { 'dxEllipsisEditor': function () { return { 'value': $context.$data.value, 'disabled': $context.$data.disabled, 'buttonAction': function () { $context.$data.popupVisible(true); } }; } }; });\naddToBindingsCache('dxPopup: { wrapperAttr: { class: \\'dx-format-string dx-popup-general\\' }, showTitle: true, width: \\'95%\\', height: \\'95%\\', minWidth: 650, title: getDisplayText(\\'title\\'), visible: popupVisible, toolbarItems: buttonItems, showCloseButton: true, container: getPopupContainer($element), position: { of: getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'wrapperAttr': { 'class': 'dx-format-string dx-popup-general' }, 'showTitle': true, 'width': '95%', 'height': '95%', 'minWidth': 650, 'title': $context.$data.getDisplayText('title'), 'visible': $context.$data.popupVisible, 'toolbarItems': $context.$data.buttonItems, 'showCloseButton': true, 'container': $context.$data.getPopupContainer($element), 'position': { 'of': $context.$data.getPopupContainer($element) } }; } }; });\naddToBindingsCache('text: getDisplayText(\\'category\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('category'); } }; });\naddToBindingsCache('css: { \\'dx-format-general\\': isGeneralType }', function ($context, $element) { return { 'css': function () { return { 'dx-format-general': $context.$data.isGeneralType }; } }; });\naddToBindingsCache('text: getDisplayText(\\'preview\\')', function ($context, $element) { return { 'text': function () { return $context.$data.getDisplayText('preview'); } }; });\naddToBindingsCache('text: previewString', function ($context, $element) { return { 'text': function () { return $context.$data.previewString; } }; });\naddToBindingsCache('template: { name: \\'dx-format-string-list\\', data: { items: types, action: setType, selectedItems: selectedTypes } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-format-string-list', 'data': { 'items': $context.$data.types, 'action': $context.$data.setType, 'selectedItems': $context.$data.selectedTypes } }; } }; });\naddToBindingsCache('if: !isGeneralType', function ($context, $element) { return { 'if': function () { return !$context.$data.isGeneralType; } }; });\naddToBindingsCache('template: \\'dx-format-string-edit-area\\'', function ($context, $element) { return { 'template': function () { return 'dx-format-string-edit-area'; } }; });\naddToBindingsCache('if: isGeneralType', function ($context, $element) { return { 'if': function () { return $context.$data.isGeneralType; } }; });\naddToBindingsCache('template: \\'dx-format-string-edit-area-general\\'', function ($context, $element) { return { 'template': function () { return 'dx-format-string-edit-area-general'; } }; });\naddToBindingsCache('dxButtonWithTemplate: { onClick: function() { clickAction($parent); }, icon: ko.unwrap($data.imageTemplateName), iconClass: $data.imageClassName, visible: (ko.unwrap($data.visible) == undefined) || ko.unwrap($data.visible), disabled: $data.disabled && $data.disabled() }, attr: { title: $data.displayText && $data.displayText() || text }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'onClick': function () { $context.$data.clickAction($context.$parent); }, 'icon': $context.ko.unwrap($context.$data.imageTemplateName), 'iconClass': $context.$data.imageClassName, 'visible': ($context.ko.unwrap($context.$data.visible) == undefined) || $context.ko.unwrap($context.$data.visible), 'disabled': $context.$data.disabled && $context.$data.disabled() }; }, 'attr': function () { return { 'title': $context.$data.displayText && $context.$data.displayText() || $context.$data.text }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-edit\\', iconClass: \\'dx-image-edit\\', onClick: function() { $parent.collapsed(!$parent.collapsed()); } }, visible: $parent.hasContent, attr: { title: $data.displayText() }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-edit', 'iconClass': 'dx-image-edit', 'onClick': function () { $context.$parent.collapsed(!$context.$parent.collapsed()); } }; }, 'visible': function () { return $context.$parent.hasContent; }, 'attr': function () { return { 'title': $context.$data.displayText() }; } }; });\naddToBindingsCache('template: { name: \\'dx-treelist-edit-action\\', data: treeListEditAction() }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist-edit-action', 'data': $context.$data.treeListEditAction() }; } }; });\naddToBindingsCache('template: \\'dx-treelist-item-actions\\'', function ($context, $element) { return { 'template': function () { return 'dx-treelist-item-actions'; } }; });\naddToBindingsCache('styleunit: padding, click: renderNext', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'click': function () { return $context.$data.renderNext; } }; });\naddToBindingsCache('text: $data.text()', function ($context, $element) { return { 'text': function () { return $context.$data.text(); } }; });\naddToBindingsCache('dxdAccordionExt: { collapsed: collapsed, lazyContentRendering: true }', function ($context, $element) { return { 'dxdAccordionExt': function () { return { 'collapsed': $context.$data.collapsed, 'lazyContentRendering': true }; } }; });\naddToBindingsCache('visible: isSelected() || isHovered()', function ($context, $element) { return { 'visible': function () { return $context.$data.isSelected() || $context.$data.isHovered(); } }; });\naddToBindingsCache('event: { dblclick: function() { $data.dblClickHandler ? $data.dblClickHandler($data) : $data.toggleCollapsed() }, mouseenter: mouseenter, mouseleave: mouseleave }, styleunit: padding, css: $data.getCssRules(), attr: { \\'aria-expanded\\': (hasItems && (!collapsed() ? \\'true\\' : \\'false\\')), \\'aria-selected\\': (isSelected() || isMultiSelected()) ? \\'true\\' : \\'false\\', \\'aria-level\\':level + 1, \\'aria-label\\': text, \\'aria-setsize\\': parent ? parent.items().length : 0, \\'aria-posinset\\': parent ? parent.items.indexOf($data) + 1 : 0 }', function ($context, $element) { return { 'event': function () { return { 'dblclick': function () { $context.$data.dblClickHandler ? $context.$data.dblClickHandler($context.$data) : $context.$data.toggleCollapsed(); }, 'mouseenter': $context.$data.mouseenter, 'mouseleave': $context.$data.mouseleave }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return $context.$data.getCssRules(); }, 'attr': function () { return { 'aria-expanded': ($context.$data.hasItems && (!$context.$data.collapsed() ? 'true' : 'false')), 'aria-selected': ($context.$data.isSelected() || $context.$data.isMultiSelected()) ? 'true' : 'false', 'aria-level': $context.$data.level + 1, 'aria-label': $context.$data.text, 'aria-setsize': $context.$data.parent ? $context.$data.parent.items().length : 0, 'aria-posinset': $context.$data.parent ? $context.$data.parent.items.indexOf($context.$data) + 1 : 0 }; } }; });\naddToBindingsCache('style: { \\'padding-left\\': $data.hasItems ? \\'0px\\': \\'18px\\' }', function ($context, $element) { return { 'style': function () { return { 'padding-left': $context.$data.hasItems ? '0px' : '18px' }; } }; });\naddToBindingsCache('click: toggleSelected, draggable: dragDropHandler', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; }, 'draggable': function () { return $context.$data.dragDropHandler; } }; });\naddToBindingsCache('searchHighlighting: { text: text, textToSearch: treeListController.textToSearch, searchOptions: treeListController.searchOptions }, attr: { title: text }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.text, 'textToSearch': $context.$data.treeListController.textToSearch, 'searchOptions': $context.$data.treeListController.searchOptions }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('if: treeListController.searchEnabled', function ($context, $element) { return { 'if': function () { return $context.$data.treeListController.searchEnabled; } }; });\naddToBindingsCache('ifnot: treeListController.searchEnabled', function ($context, $element) { return { 'ifnot': function () { return $context.$data.treeListController.searchEnabled; } }; });\naddToBindingsCache('if: hasContent', function ($context, $element) { return { 'if': function () { return $context.$data.hasContent; } }; });\naddToBindingsCache('template: templates.accordionItem', function ($context, $element) { return { 'template': function () { return $context.$data.templates.accordionItem; } }; });\naddToBindingsCache('ifnot: hasContent', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hasContent; } }; });\naddToBindingsCache('template: templates.headerItem', function ($context, $element) { return { 'template': function () { return $context.$data.templates.headerItem; } }; });\naddToBindingsCache('template: { name: contenttemplate }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contenttemplate }; } }; });\naddToBindingsCache('template: actionsTemplate()', function ($context, $element) { return { 'template': function () { return $context.$data.actionsTemplate(); } }; });\naddToBindingsCache('if: $data.hasItems', function ($context, $element) { return { 'if': function () { return $context.$data.hasItems; } }; });\naddToBindingsCache('if: actions && actions.length > 0', function ($context, $element) { return { 'if': function () { return $context.$data.actions && $context.$data.actions.length > 0; } }; });\naddToBindingsCache('template: templates.actionsContainer', function ($context, $element) { return { 'template': function () { return $context.$data.templates.actionsContainer; } }; });\naddToBindingsCache('if: isDraggable', function ($context, $element) { return { 'if': function () { return $context.$data.isDraggable; } }; });\naddToBindingsCache('template: templates.headerItemContent', function ($context, $element) { return { 'template': function () { return $context.$data.templates.headerItemContent; } }; });\naddToBindingsCache('ifnot: isDraggable', function ($context, $element) { return { 'ifnot': function () { return $context.$data.isDraggable; } }; });\naddToBindingsCache('template: templates.itemTextContent', function ($context, $element) { return { 'template': function () { return $context.$data.templates.itemTextContent; } }; });\naddToBindingsCache('event: { dblclick: function() { $data.dblClickHandler ? $data.dblClickHandler($data) : $data.toggleCollapsed() }, mouseenter: mouseenter, mouseleave: mouseleave }, styleunit: padding, css: { \\'dx-treelist-item-selected dxd-state-selected dxd-back-secondary\\': isSelected() || isMultiSelected() }', function ($context, $element) { return { 'event': function () { return { 'dblclick': function () { $context.$data.dblClickHandler ? $context.$data.dblClickHandler($context.$data) : $context.$data.toggleCollapsed(); }, 'mouseenter': $context.$data.mouseenter, 'mouseleave': $context.$data.mouseleave }; }, 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-treelist-item-selected dxd-state-selected dxd-back-secondary': $context.$data.isSelected() || $context.$data.isMultiSelected() }; } }; });\naddToBindingsCache('css: nodeImageClass, template: \\'dxrd-svg-collapsed\\', click: toggleCollapsed, style: { \\'visibility\\': hasItems ? \\'visible\\' : \\'hidden\\' }', function ($context, $element) { return { 'css': function () { return $context.$data.nodeImageClass; }, 'template': function () { return 'dxrd-svg-collapsed'; }, 'click': function () { return $context.$data.toggleCollapsed; }, 'style': function () { return { 'visibility': $context.$data.hasItems ? 'visible' : 'hidden' }; } }; });\naddToBindingsCache('visible: $data.isSelected() || $data.isHovered()', function ($context, $element) { return { 'visible': function () { return $context.$data.isSelected() || $context.$data.isHovered(); } }; });\naddToBindingsCache('click: toggleSelected, draggable: isDraggable ? dragDropHandler : null', function ($context, $element) { return { 'click': function () { return $context.$data.toggleSelected; }, 'draggable': function () { return $context.$data.isDraggable ? $context.$data.dragDropHandler : null; } }; });\naddToBindingsCache('template: \"dx-treelist-accordion-item-with-hover\"', function ($context, $element) { return { 'template': function () { return 'dx-treelist-accordion-item-with-hover'; } }; });\naddToBindingsCache('template: \"dx-treelist-header-item-with-hover\"', function ($context, $element) { return { 'template': function () { return 'dx-treelist-header-item-with-hover'; } }; });\naddToBindingsCache('dxTextBox: { mode: \\'search\\', value:value, valueChangeEvent: \\'keyup\\', showClearButton: true, placeholder: searchPlaceholder()}', function ($context, $element) { return { 'dxTextBox': function () { return { 'mode': 'search', 'value': $context.$data.value, 'valueChangeEvent': 'keyup', 'showClearButton': true, 'placeholder': $context.$data.searchPlaceholder() }; } }; });\naddToBindingsCache('template: $data.visibleItems !== undefined ? \\'dx-treelist-paginate\\' : \\'dx-treelist-common\\'', function ($context, $element) { return { 'template': function () { return $context.$data.visibleItems !== undefined ? 'dx-treelist-paginate' : 'dx-treelist-common'; } }; });\naddToBindingsCache('lazy: { resolver: resolver, innerBindings: { template: templateName } }', function ($context, $element) { return { 'lazy': function () { return { 'resolver': $context.$data.resolver, 'innerBindings': { 'template': $context.$data.templateName } }; } }; });\naddToBindingsCache('if: !$data.collapsed()', function ($context, $element) { return { 'if': function () { return !$context.$data.collapsed(); } }; });\naddToBindingsCache('template: { name: \\'dx-treelist\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-treelist', 'data': $context.$data }; } }; });\naddToBindingsCache('foreach: visibleItems', function ($context, $element) { return { 'foreach': function () { return $context.$data.visibleItems; } }; });\n","/**\r\n* DevExpress Analytics (dx-analytics-core-svg-bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addToBindingsCache } from './property-grid/widgets/internal/_bindingsCache';\naddToBindingsCache('template: \\'dxrd-svg-collapsed\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-collapsed'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-ellipsis\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-ellipsis'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-error\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-error'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-addition\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-addition'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-and\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-and'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-division\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-division'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-greater\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-greater'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-greater_or_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-greater_or_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-less\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-less'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-less_or_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-less_or_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-modulus\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-modulus'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-multiplication\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-multiplication'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-not\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-not'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-not_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-not_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-or\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-or'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-parenthesis\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-parenthesis'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-expressioneditor-subtraction\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-expressioneditor-subtraction'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-array\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-array'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bitearray\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bitearray'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bool\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bool'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-booleanfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-booleanfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-column\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-column'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-date\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-date'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-datetimefield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-datetimefield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-doublefield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-doublefield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-enum\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-enum'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-float\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-float'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-guid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-guid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-integer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-integer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-integerfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-integerfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-listsource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-listsource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parameters\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parameters'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-range\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-range'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-string\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-string'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-stringfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-stringfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-table\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-table'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-view\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-view'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-add'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-filtereditor-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-filtereditor-remove'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-bold\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-bold'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-italic\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-italic'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-strikeout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-strikeout'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fontstyle-underline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fontstyle-underline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-menu\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-menu'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-open\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-open'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-save\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-save'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-saveas\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-saveas'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_calcfield\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_calcfield'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-add_query\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-add_query'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-arrowdown\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-arrowdown'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-arrowup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-arrowup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-ascending\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-ascending'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-descending\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-descending'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-edit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-edit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-movedown\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-movedown'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveleft_all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveleft_all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveright_all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveright_all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-moveup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-moveup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-rebuild_schema\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-rebuild_schema'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-recycle_bin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-recycle_bin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-recycle_bin_xl\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-recycle_bin_xl'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-remove\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-remove'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-rename\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-rename'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-operations-unsorted\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-operations-unsorted'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-all\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-all'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-bottom\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-bottom'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-borders-top\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-borders-top'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-propertyexpression\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-propertyexpression'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-sortingbyalphabet\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-sortingbyalphabet'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-sortingbygroups\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-sortingbygroups'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-bottom\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-bottom'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-justify\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-justify'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-middle\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-middle'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-properties-textAlignment-top\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-properties-textAlignment-top'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-aggregate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-aggregate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-data_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-data_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-group_by\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-group_by'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-select_statment\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-select_statment'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-sorting_asc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-sorting_asc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-queryBuilder-sorting_desc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-queryBuilder-sorting_desc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-properties\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-properties'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-copy\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-copy'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-cut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-cut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-delete\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-delete'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-paste\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-paste'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-redo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-redo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-undo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-undo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-validate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-validate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-zoomin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-zoomin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-zoomout\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-zoomout'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-Download\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-Download'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-expressions\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-expressions'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-FederationDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-FederationDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-JsonDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-JsonDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-NoDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-NoDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-ObjectDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-ObjectDataSource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-SqlDataSource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-SqlDataSource'; } }; });\n","/**\r\n* DevExpress Analytics (dx-analytics-core-svg-templates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from './property-grid/widgets/internal/_svgTemplateEngine';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-svg-collapsed': '',\n 'dxrd-svg-ellipsis': '',\n 'dxrd-svg-error': '',\n 'dxrd-svg-expressioneditor-addition': '',\n 'dxrd-svg-expressioneditor-and': '',\n 'dxrd-svg-expressioneditor-division': '',\n 'dxrd-svg-expressioneditor-edit': '',\n 'dxrd-svg-expressioneditor-equal': '',\n 'dxrd-svg-expressioneditor-greater': '',\n 'dxrd-svg-expressioneditor-greater_or_equal': '',\n 'dxrd-svg-expressioneditor-less': '',\n 'dxrd-svg-expressioneditor-less_or_equal': '',\n 'dxrd-svg-expressioneditor-modulus': '',\n 'dxrd-svg-expressioneditor-multiplication': '',\n 'dxrd-svg-expressioneditor-not': '',\n 'dxrd-svg-expressioneditor-not_equal': '',\n 'dxrd-svg-expressioneditor-or': '',\n 'dxrd-svg-expressioneditor-parenthesis': '',\n 'dxrd-svg-expressioneditor-subtraction': '',\n 'dxrd-svg-fieldlist-array': '',\n 'dxrd-svg-fieldlist-bitearray': '',\n 'dxrd-svg-fieldlist-bool': '',\n 'dxrd-svg-fieldlist-booleanfield': '',\n 'dxrd-svg-fieldlist-column': '',\n 'dxrd-svg-fieldlist-datasource': '',\n 'dxrd-svg-fieldlist-date': '',\n 'dxrd-svg-fieldlist-datetimefield': '',\n 'dxrd-svg-fieldlist-doublefield': '',\n 'dxrd-svg-fieldlist-enum': '',\n 'dxrd-svg-fieldlist-float': '',\n 'dxrd-svg-fieldlist-guid': '',\n 'dxrd-svg-fieldlist-integer': '',\n 'dxrd-svg-fieldlist-integerfield': '',\n 'dxrd-svg-fieldlist-listsource': '',\n 'dxrd-svg-fieldlist-none': '',\n 'dxrd-svg-fieldlist-parameters': '',\n 'dxrd-svg-fieldlist-range': '',\n 'dxrd-svg-fieldlist-string': '',\n 'dxrd-svg-fieldlist-stringfield': '',\n 'dxrd-svg-fieldlist-table': '',\n 'dxrd-svg-fieldlist-view': '',\n 'dxrd-svg-filtereditor-add': '',\n 'dxrd-svg-filtereditor-edit': '',\n 'dxrd-svg-filtereditor-remove': '',\n 'dxrd-svg-fontstyle-bold': '',\n 'dxrd-svg-fontstyle-italic': '',\n 'dxrd-svg-fontstyle-strikeout': '',\n 'dxrd-svg-fontstyle-underline': '',\n 'dxrd-svg-menu-menu': '',\n 'dxrd-svg-menu-open': '',\n 'dxrd-svg-menu-save': '',\n 'dxrd-svg-menu-saveas': '',\n 'dxrd-svg-operations-add': '',\n 'dxrd-svg-operations-add_calcfield': '',\n 'dxrd-svg-operations-add_datasource': '',\n 'dxrd-svg-operations-add_query': '',\n 'dxrd-svg-operations-arrowdown': '',\n 'dxrd-svg-operations-arrowup': '',\n 'dxrd-svg-operations-ascending': '',\n 'dxrd-svg-operations-descending': '',\n 'dxrd-svg-operations-edit': '\\',\n 'dxrd-svg-operations-movedown': '',\n 'dxrd-svg-operations-moveleft': '',\n 'dxrd-svg-operations-moveleft_all': '',\n 'dxrd-svg-operations-moveright': '',\n 'dxrd-svg-operations-moveright_all': '',\n 'dxrd-svg-operations-moveup': '',\n 'dxrd-svg-operations-rebuild_schema': '',\n 'dxrd-svg-operations-recycle_bin': '',\n 'dxrd-svg-operations-recycle_bin_xl': '',\n 'dxrd-svg-operations-remove': '',\n 'dxrd-svg-operations-rename': '',\n 'dxrd-svg-operations-unsorted': '',\n 'dxrd-svg-properties-borders-all': '',\n 'dxrd-svg-properties-borders-bottom': '',\n 'dxrd-svg-properties-borders-left': '',\n 'dxrd-svg-properties-borders-none': '',\n 'dxrd-svg-properties-borders-right': '',\n 'dxrd-svg-properties-borders-top': '',\n 'dxrd-svg-properties-propertyexpression': '',\n 'dxrd-svg-properties-search': '',\n 'dxrd-svg-properties-sortingbyalphabet': '',\n 'dxrd-svg-properties-sortingbygroups': '',\n 'dxrd-svg-properties-textAlignment-bottom': '',\n 'dxrd-svg-properties-textAlignment-center': '',\n 'dxrd-svg-properties-textAlignment-justify': '',\n 'dxrd-svg-properties-textAlignment-left': '',\n 'dxrd-svg-properties-textAlignment-middle': '',\n 'dxrd-svg-properties-textAlignment-right': '',\n 'dxrd-svg-properties-textAlignment-top': '',\n 'dxrd-svg-queryBuilder-aggregate': '',\n 'dxrd-svg-queryBuilder-data_preview': '',\n 'dxrd-svg-queryBuilder-group_by': '',\n 'dxrd-svg-queryBuilder-select_statment': '',\n 'dxrd-svg-queryBuilder-sorting_asc': '',\n 'dxrd-svg-queryBuilder-sorting_desc': '',\n 'dxrd-svg-tabs-properties': '',\n 'dxrd-svg-toolbar-copy': '',\n 'dxrd-svg-toolbar-cut': '',\n 'dxrd-svg-toolbar-delete': '',\n 'dxrd-svg-toolbar-paste': '',\n 'dxrd-svg-toolbar-redo': '',\n 'dxrd-svg-toolbar-undo': '',\n 'dxrd-svg-toolbar-validate': '',\n 'dxrd-svg-toolbar-zoomin': '',\n 'dxrd-svg-toolbar-zoomout': '',\n 'dxrd-svg-wizard-Download': '',\n 'dxrd-svg-wizard-expressions': '',\n 'dxrd-svg-wizard-FederationDataSource': '',\n 'dxrd-svg-wizard-JsonDataSource': '',\n 'dxrd-svg-wizard-NoDataSource': '',\n 'dxrd-svg-wizard-ObjectDataSource': '',\n 'dxrd-svg-wizard-SqlDataSource': '',\n});\n","/**\r\n* DevExpress Analytics (dx-analytics-core-templates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from './property-grid/widgets/internal/_svgTemplateEngine';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-bordereditor': '

',\n 'dxrd-borders': '
',\n 'dxrd-colorpicker': '
',\n 'dxrd-expressionstring': '
',\n 'dxrd-field': '
',\n 'dxrd-filterstring': '
',\n 'dxrd-filterstringgroup': '
',\n 'dxrd-formatstring': '
',\n 'dxrd-guid': '
',\n 'dxrd-emptyHeader': '',\n 'dxrd-objectEditorContent': '
',\n 'dxrd-objectEditor': '
',\n 'dxrd-commonCollectionItem': '
',\n 'dxrd-textalignment': '
',\n 'dxrd-objectVisitor': '
',\n 'dxd-snap-lines-holder': '
',\n 'dxrd-surface-template-base': '
',\n 'dxrd-designer': '
',\n 'dxrd-textalignment-editor': '

',\n 'dxrd-collectionactions-template': '
',\n 'dxrd-drag-helper-source': '
',\n 'dxrd-drag-helper-source-reorder-treelist': '
',\n 'dxrd-menubutton-template-base': '
',\n 'dxrd-top-grid': '
',\n 'dxrd-group-actions': '
!x.visible || ko.unwrap(x.visible))\">
',\n 'dx-propertygrid-searchbox': '
',\n 'dxrd-propertiestab': '
',\n 'dx-propertygrid-popupservice': '
',\n 'dx-right-panel-lightweight': '
',\n 'dxrd-right-panel-template-base': '
',\n 'dx-right-panel-switcher': '
',\n 'dxrd-toolbar-template-base': '
',\n 'dxrd-toolbar-tmplt': '
',\n 'dxrd-toolbox-template-base': '
',\n 'dxrd-grouped-toolbox-template-base': '
',\n 'dxrd-zoom-select-template': '
',\n 'dx-editor-addons': '
',\n 'dx-collectioneditor': '
',\n 'dx-boolean': '
',\n 'dx-boolean-select': '
',\n 'dx-commonCollection': '
',\n 'dx-commonCollectionItem': '
',\n 'item-with-title': '
',\n 'dx-combobox': '
',\n 'dx-combobox-editable': '
',\n 'dx-combobox-undo': '
',\n 'dx-property-editor': '
',\n 'dx-emptyHeader': '',\n 'dx-date': '
',\n 'dx-file': '
',\n 'dx-modificators': '
',\n 'dx-image': '
',\n 'dx-numeric': '
',\n 'dx-number-editor': '
',\n 'dx-text': '
',\n 'dx-string-array': '
',\n 'dx-propertieseditor': '
',\n 'dx-objectEditorContent': '
',\n 'dxrd-federated-manageQueries-editor': '
',\n 'dx-querybuilder-federation-popup-templates': ' ',\n 'dxrd-managequeries-selectbox': '
',\n 'dx-expressioneditor-main': '
',\n 'dx-expressioneditor': '
',\n 'dx-expressioneditor-popup': '
',\n 'dx-expressioneditor-categories': '
',\n 'dx-expressioneditor-category-accordion': '
',\n 'dx-expressioneditor-description': '
',\n 'dx-expressioneditor-fields': '
',\n 'dx-ee-treelist-item': '
',\n 'dx-expressioneditor-selectedcontent': ' ',\n 'dx-expressioneditor-collection': '
',\n 'dx-expressioneditor-collection-function': '
',\n 'dx-filtereditor-content': '
',\n 'dx-filtereditor-plain-content-text': '
',\n 'dx-filtereditor-content-plain': '
',\n 'dx-filtereditor-content-text': '
',\n 'dx-filtereditor-content-tree': '
',\n 'dx-filtereditor': '
',\n 'dx-filtereditor-advanced': '
',\n 'dx-filtereditor-plain': '
',\n 'dx-filtereditor-aggregate-common': '
(
)
',\n 'dx-filtereditor-aggregate': '
',\n 'dx-filtereditor-between': '
and
',\n 'dx-filtereditor-binary': '
',\n 'dx-filtereditor-common': '
',\n 'dx-filtereditor-function-lightweight': '
',\n 'dx-filtereditor-function': '
',\n 'dx-filtereditor-group': '
',\n 'dx-filtereditor-in': '
(
,
)
',\n 'dx-filtereditor-parameter': '
',\n 'dx-filtereditor-property': '
',\n 'dx-filtereditor-unary': '
',\n 'dx-filtereditor-not': ' ',\n 'dx-filtereditor-value': '
',\n 'dx-filtereditor-popup': '
',\n 'dx-filtereditor-create': '
',\n 'dx-filtereditor-change': '
',\n 'dx-filtereditor-changeParameter': '
',\n 'dx-filtereditor-changeProperty': '
',\n 'dx-filtereditor-changeValueType': '
',\n 'dx-filtereditor-content-popups': '
',\n 'dx-filtereditor-search-panel': '
',\n 'dx-filtereditor-popup-common': '
',\n 'dx-filtereditor-popup-treelist': '
',\n 'dx-format-string-list': '
',\n 'dx-format-string-edit-area': '
',\n 'dx-format-string-edit-area-general': '
',\n 'dx-format-string': '
',\n 'dx-treelist-item-actions': '
',\n 'dx-treelist-edit-action': '
',\n 'dx-treelist-item-actions-with-edit': ' ',\n 'dx-treelist-item-ellipsis': '
',\n 'dx-treelist-item': ' ',\n 'dx-treelist-accordion-item': '
',\n 'dx-treelist-item-actions-container': '
',\n 'dx-treelist-header-item': '
',\n 'dx-treelist-item-text-content': '
',\n 'dx-treelist-header-item-caption-content': '
',\n 'dx-treelist-item-with-hover': '
',\n 'dx-treelist-accordion-item-with-hover': '
',\n 'dx-treelist-header-item-with-hover': '
',\n 'dx-treelist': '
',\n 'dx-treelist-search-panel': '
',\n 'dx-treelist-common': ' ',\n 'dx-treelist-paginate': ' '\n});\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\ellipsiseditor\\_editor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/text_box';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { SvgTemplatesEngine } from '../internal/_svgTemplateEngine';\nimport { KeyboardEnum } from '../internal/_utils';\nvar editor_prefix = 'dx-ellipsiseditor', EDITOR_CLASS = editor_prefix + ' dx-dropdowneditor', EDITOR_BUTTON_CLASS = editor_prefix + '-button dx-widget dx-button-normal dx-dropdowneditor-button dx-ellipsis-button', EDITOR_BUTTON_ICON_CLASS = editor_prefix + '-icon dx-ellipsis-image dx-dropdowneditor-icon', EDITOR_BUTTON_ICON_TEMPLATE = 'dxrd-svg-ellipsis', EDITOR_WARNING_STATE_CLASS = 'dx-ellipsiseditor-warning';\nexport class dxEllipsisEditor extends dxTextBox {\n constructor(element, options) {\n super(element, options);\n }\n _init() {\n super['_init'].apply(this);\n if (!this._$element) {\n this._$element = $.fn.constructor(this.element());\n }\n this._$element.addClass(EDITOR_CLASS);\n this._koContext = ko.contextFor(this._$element.get(0));\n }\n _render() {\n super['_render'].apply(this);\n this._renderButton();\n this._updateWarningState();\n this._attachInputEvents();\n }\n _updateWarningState(value = this.option('warningMessage')) {\n if (value) {\n this._$element.attr('title', value.toString());\n this._$element.addClass(EDITOR_WARNING_STATE_CLASS);\n }\n else {\n this._$element.removeAttr('title');\n this._$element.removeClass(EDITOR_WARNING_STATE_CLASS);\n }\n }\n _renderButton() {\n this._$button = $.fn.constructor('
').addClass(EDITOR_BUTTON_CLASS);\n this._attachButtonEvents();\n this._$buttonIcon = $.fn.constructor('
').addClass(EDITOR_BUTTON_ICON_CLASS).height('100%').append(SvgTemplatesEngine.templates[EDITOR_BUTTON_ICON_TEMPLATE]).appendTo(this._$button);\n ko.applyBindingsToDescendants(this._koContext, this._$buttonIcon[0]);\n var buttonsContainer = this['_buttonsContainer']();\n this._$button.appendTo(buttonsContainer);\n }\n _updateButtonSize() {\n this._$buttonIcon.height($.fn.constructor(this.element()).height());\n }\n _attachButtonEvents() {\n var subscribeElements = [];\n if (!this._$input)\n this._$input = $.fn.constructor(this['_input']());\n this._$button.off('click');\n this._$input.off('click');\n if (!this.option('disabled'))\n subscribeElements.push(this._$button);\n if (this.option('openOnFieldClick'))\n subscribeElements.push(this._$input);\n subscribeElements.forEach(($element) => {\n $element.on('click', this.buttonAction.bind(this));\n });\n }\n _attachInputEvents() {\n var input = this['_input']()[0];\n if (!input)\n return;\n var handler = (e) => {\n if (e.key == KeyboardEnum.Enter || (e.key == KeyboardEnum.ArrowDown && e.altKey)) {\n this.buttonAction(e);\n }\n };\n input.addEventListener('keydown', handler);\n addDisposeCallback(input, function () {\n input.removeEventListener('keydown', handler);\n });\n }\n _optionChanged(args) {\n switch (args.name) {\n case 'disabled':\n this._attachButtonEvents();\n break;\n case 'warningMessage':\n this._updateWarningState(args.value);\n break;\n }\n super['_optionChanged'].apply(this, arguments);\n }\n buttonAction(e) {\n if (this.option('buttonAction')) {\n this.option('buttonAction')();\n e.stopPropagation();\n }\n }\n}\nregisterComponent('dxEllipsisEditor', dxEllipsisEditor);\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\fileimageeditor\\_editor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../../localization/localization_utils';\nimport { dxEllipsisEditor } from '../ellipsiseditor/_editor';\nimport { uploadFile } from '../internal/_utils';\nvar editor_prefix = 'dx-fileimage', EDITOR_INPUT_WRAPPER_CLASS = editor_prefix + '-input-wrapper';\nexport class dxFileImagePicker extends dxEllipsisEditor {\n constructor(element, options) {\n options.placeholder = options.placeholder || getLocalization('(none)', 'DxDesignerStringId.None');\n super(element, options);\n }\n _getDisplayValue() {\n var knownPlaceholders = {\n 'Image': 'AnalyticsCoreStringId.ImagePicker_Placeholder',\n 'File': 'AnalyticsCoreStringId.FilePicker_Placeholder'\n };\n var placeholderId = this.option('placeholderId');\n if (this.option('value') && placeholderId)\n return getLocalization(placeholderId, knownPlaceholders[placeholderId]);\n else\n return this.option('value');\n }\n _handleResult(result) {\n if (this.option('useFormat')) {\n this.option('format', result.format);\n }\n this.option('value', result.content);\n }\n _renderInput(inputContainer) {\n var $inputContainer = inputContainer && $.fn.constructor(inputContainer) || $.fn.constructor('
');\n $inputContainer.addClass(EDITOR_INPUT_WRAPPER_CLASS);\n this['_inputContainer'] = $inputContainer.get(0);\n $.fn.constructor(this.element()).append(this['_inputContainer']);\n super['_renderInput'].apply(this, [inputContainer]);\n }\n _attachButtonEvents() {\n this._$button.off('click');\n if (!this.option('disabled')) {\n this._$button.on('click', (e) => {\n var _a, _b;\n e.stopPropagation();\n e.preventDefault();\n uploadFile({\n accept: ((_a = this.option('accept')) === null || _a === void 0 ? void 0 : _a.toString()) || 'image/*',\n readMode: (_b = this.option('readMode')) === null || _b === void 0 ? void 0 : _b.toString()\n }).done((result) => {\n this._handleResult(result);\n });\n });\n }\n }\n _renderValue() {\n this.option('text', this._getDisplayValue());\n super['_renderValue'].apply(this);\n }\n}\nregisterComponent('dxFileImagePicker', dxFileImagePicker);\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\internal\\_extendedSvgTemplates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from './_svgTemplateEngine';\nexport var extendedTemplates = (templates) => ({\n 'dxrd-svg-fieldlist-list': templates['dxrd-svg-fieldlist-table'],\n 'dxrd-svg-fieldlist-default': templates['dxrd-svg-fieldlist-column']\n});\nSvgTemplatesEngine.addTemplates(extendedTemplates(SvgTemplatesEngine.templates));\n","/**\r\n* DevExpress Analytics (widgets\\internal\\_popupComponentBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class PopupComponentBase extends Disposable {\n constructor() {\n super(...arguments);\n this._component = ko.observable();\n this.onContentReady = (e) => {\n this._component(e.component);\n };\n this.hideOnOutsideClick = (e) => {\n var component = this.getComponent();\n var $content = component && $.fn.constructor(component.content());\n return !$content || !($content.has(e.target).length || $content.is(e.target));\n };\n }\n getComponent() {\n return ko.unwrap(this._component);\n }\n dispose() {\n super.dispose();\n var component = this._component();\n component && component.dispose();\n this._component(null);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\internal\\_popupwithautoheight.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport dxPopup from 'devextreme/ui/popup';\nexport class dxPopupWithAutoHeight extends dxPopup {\n _setContentHeight() {\n this['_$popupContent'].css({\n height: '100%'\n });\n }\n}\nregisterComponent('dxPopupWithAutoHeight', dxPopupWithAutoHeight);\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\_reorderTreeListDragDropHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Rectangle } from '../../core/elements/rectangle';\nimport { find } from '../../core/utils/_arrayutils';\nimport { Disposable } from '../../serializer/utils';\nimport * as $ from 'jquery';\nexport class ReorderTreeListDragDropHelper extends Disposable {\n constructor(dragHelperContent) {\n super();\n this.dragHelperContent = dragHelperContent;\n this.droppableClassName = 'dxrd-treelist-droppable';\n this.approveClassName = 'dxrd-drop-approve';\n this.classDropBefore = 'drop-before';\n this.classDropAfter = 'drop-after';\n this.started = false;\n }\n _getElementViewModel(item) {\n return item && item.data && item.data['data'];\n }\n dispose() {\n super.dispose();\n this._targetElement = null;\n this._target = null;\n this._draggable = null;\n }\n isDragToBottom() {\n return find(this._draggable.parent.items(), item => item === this._draggable || item === this._target) === this._draggable;\n }\n start(draggable) {\n this.started = true;\n this._draggable = draggable;\n this._draggableModel = this._getElementViewModel(draggable);\n }\n canDrop() {\n return this._draggable !== this._target && this._draggable.parent === this._target.parent;\n }\n reorderSiblings(isDragToBottom = this.isDragToBottom()) {\n var siblings = this.getSiblings();\n if (siblings) {\n var _siblings = siblings.peek();\n var index = _siblings.indexOf(this._draggableModel);\n if (index > -1)\n _siblings.splice(index, 1);\n _siblings.splice(_siblings.indexOf(this._targetModel) + (isDragToBottom ? 1 : 0), 0, this._draggableModel);\n siblings.valueHasMutated();\n }\n }\n clearDroppableClasses() {\n this._removeClass(this._targetElement);\n }\n getDroppablePosition() {\n return this.isDragToBottom() ? this.classDropAfter : this.classDropBefore;\n }\n drag(elementModel, element) {\n this.clearDroppableClasses();\n this._target = elementModel;\n this._targetElement = $.fn.constructor(element).closest('.dx-treelist-item').get(0);\n this._targetModel = this._getElementViewModel(this._target);\n }\n stop() {\n this.clearDroppableClasses();\n this.started = false;\n }\n helper(draggable, event) {\n var item = draggable;\n var target = $.fn.constructor(event.target).closest('.ui-draggable');\n var rect = new Rectangle(6, 6, null, target.height());\n rect.className = 'dxrd-image-ghost-report';\n this.dragHelperContent.reset();\n this.dragHelperContent.setContent(rect, {\n template: 'dxrd-drag-helper-source-reorder-treelist',\n data: {\n imageClassName: item.imageClassName,\n imageTemplateName: item.imageTemplateName,\n text: item.text\n }\n });\n }\n addDroppableClass() {\n var className = this.droppableClassName;\n if (this.canDrop()) {\n className = className + ' ' + this.approveClassName + ' ' + this.getDroppablePosition();\n }\n $.fn.constructor(this._targetElement).addClass(className);\n }\n _removeClass(target) {\n $.fn.constructor(target).removeClass(this.droppableClassName + ' ' + this.approveClassName + ' ' + this.classDropBefore + ' ' + this.classDropAfter);\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\guideditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Editor } from './editor';\nimport { guidValidationRules, guidRequiredValidationRules } from './internal/_internal';\nexport class GuidEditor extends Editor {\n _getEditorValidationRules() {\n var _a;\n return (super._getEditorValidationRules() || []).concat(guidValidationRules).concat(((_a = this.editorOptions) === null || _a === void 0 ? void 0 : _a.isNullable) ? [] : guidRequiredValidationRules);\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\editor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { FontModel } from './_model';\nimport { ObjectProperties, PropertyGridEditor } from '../../propertygrid';\nimport { fontInfo } from './metadata';\nexport class FontEditor extends PropertyGridEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n }\n createObjectProperties() {\n var model = new FontModel(this.value);\n this._disposables.push(model);\n return new ObjectProperties(ko.observable(model), { editors: fontInfo }, this.level + 1, this.disabled, undefined, this.textToSearch);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\filtereditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { UnaryOperator } from '../criteria/operators/unary';\nimport { UnaryOperandSurface } from './operators/unaryOperandSurface';\nimport { PopupService } from '../../property-grid/internal/_popupService';\nimport { DisplayExpressionConverter } from '../common/_displayNameProvider';\nimport { wrapExpressionValue } from '../expressioneditor/_expressioneditor';\nimport { FilterEditorCodeCompletor } from './helpers/_codeCompletor';\nimport { getParentContainer } from '../_utils';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport dxTextArea from 'devextreme/ui/text_area';\nimport { aceAvailable } from '../ace/_ace-available';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nimport { GroupOperator } from '../criteria/operators/group';\nimport { PopupEditorBase } from '../../core/widgets/_popupEditorBase';\nimport { GroupOperatorType } from '../criteria/operators/options/group';\nimport { criteriaCreator } from '../criteria/utils/criteriaOperatorPreprocessor';\nexport class FilterEditor extends PopupEditorBase {\n constructor(options, fieldListProvider, rtl = false, _displayNameProvider, editorInputId) {\n super();\n this.options = options;\n this._displayNameProvider = _displayNameProvider;\n this._advancedMode = ko.observable(false);\n this.textFocused = ko.observable(false);\n this.aceAvailable = aceAvailable();\n this.languageHelper = {\n getLanguageMode: () => 'ace/mode/criteria',\n createCompleters: (editor, bindingContext, viewModel) => {\n var path = ko.computed(() => { return this.path && this.path(); }), completor = new FilterEditorCodeCompletor({\n editor,\n bindingContext,\n fieldListProvider: viewModel.fieldListProvider(),\n path,\n getRealExpression: (path, expression) => {\n return this.displayExpressionConverter && this.displayExpressionConverter.toRealExpression(path, expression) || $.Deferred().resolve(expression).promise();\n }\n });\n completor._disposables.push(path);\n return [completor];\n }\n };\n this.aceOptions = {\n showLineNumbers: false,\n showPrintMargin: false,\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n showGutter: false\n };\n this.additionalOptions = {\n onChange: session => this.onValueChange(session.getValue()),\n changeTimeout: 200,\n onFocus: _ => this.onFocus(),\n onBlur: _ => this.onBlur()\n };\n this.editorContainer = ko.observable();\n this.textVisible = ko.observable(false);\n this.getPopupContainer = (el) => {\n return getParentContainer(el, this.options()['popupContainer']);\n };\n this.timeout = null;\n this.animationTimeout = null;\n this.advancedMode = ko.computed({\n read: () => {\n return this._advancedMode();\n },\n write: (newVal) => {\n this.timeout && clearTimeout(this.timeout);\n this.animationTimeout && clearTimeout(this.animationTimeout);\n if (newVal) {\n this.textVisible(true);\n this.timeout = setTimeout(() => {\n this._advancedMode(true);\n if (!this.options().disabled())\n this.focusText();\n }, 1);\n this.animationTimeout = setTimeout(() => {\n this.editorContainer() && this.editorContainer().resize && this.editorContainer().resize();\n }, 210);\n }\n else {\n this._advancedMode(false);\n this.timeout = setTimeout(() => {\n this.textVisible(false);\n }, 200);\n }\n },\n });\n this.invalidMessage = () => getLocalization('Cannot create a tree for this expression', 'AnalyticsCoreStringId.FilterEditor_TreeCreationError');\n this.advancedModeText = ko.observable(getLocalization('Advanced Mode', 'AnalyticsCoreStringId.FilterEditor_AdvancedMode'));\n this.operandSurface = ko.observable(null);\n this.operand = null;\n this.popupService = new PopupService();\n this.rtl = rtl;\n this.initializeInnerValue();\n options() && options().helper && (options().helper.rtl = rtl);\n this._disposables.push(this.disabled = ko.computed(() => {\n return ko.unwrap(this.options() && this.options().disabled());\n }));\n this.displayExpressionConverter = _displayNameProvider && new DisplayExpressionConverter(_displayNameProvider);\n this.save = () => {\n this.helper.onSave(this.value());\n if (this.operandSurface() && this.isSurfaceValid()) {\n var value = options().helper.serializer.serialize(this.operand, false);\n this.options().value(value);\n }\n else {\n this.options().value(this.value());\n }\n this.popupVisible(false);\n };\n this.displayValue = wrapExpressionValue(this.path, this.value, this.displayExpressionConverter, this._disposables);\n var modelValue = ko.computed({\n read: () => {\n var options = this.options();\n return options && options.value();\n },\n write: (newVal) => {\n var options = this.options();\n options && options.value(newVal);\n }\n });\n this.modelDisplayValue = wrapExpressionValue(this.path, modelValue, this.displayExpressionConverter, this._disposables);\n this.fieldListProvider = fieldListProvider;\n this.modelValueIsValid = ko.computed(() => {\n return options() && this._validateValue(options().value());\n });\n this.isValid = ko.computed(() => {\n return this._validateValue(this.value());\n });\n this.isSurfaceValid = ko.computed(() => {\n try {\n return this.options() && this.isValid() && this.options().helper.criteriaTreeValidator.validateModel(this.options().helper.serializer.deserialize(this.value()));\n }\n catch (e) {\n return false;\n }\n });\n this._disposables.push(modelValue);\n this._disposables.push(this.modelValueIsValid);\n this._disposables.push(this.isValid);\n this._disposables.push(this.isSurfaceValid);\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (newVal) {\n this.value(this.options().value());\n if (this.isSurfaceValid()) {\n this.operand = this._generateOperand(this.value());\n this.operandSurface(this._generateSurface(this.operand));\n }\n else {\n this.textVisible(true);\n this._advancedMode(true);\n this.editorContainer() && this.focusText();\n }\n options().helper.onChange = () => {\n this.value(options().helper.serializer.serialize(this.operand, false));\n };\n }\n else {\n this.helper.onClosing();\n this.value(null);\n this.operandSurface() && this.operandSurface().dispose();\n this.operandSurface(null);\n this.operand = null;\n }\n }));\n this.createAddButton = (criteria) => { return options().helper.handlers.create(criteria, this.popupService); };\n this.createChangeType = (criteria) => { return options().helper.handlers.change(criteria, this.popupService); };\n this.createChangeProperty = (criteria) => { return options().helper.handlers.changeProperty(criteria, this.popupService); };\n this.createChangeParameter = (criteria) => { return options().helper.handlers.changeParameter(criteria, this.popupService); };\n this.createChangeValueType = (criteria) => { return options().helper.handlers.changeValueType(criteria, this.popupService); };\n this._disposables.push(this.advancedMode);\n this.buttonItems.push({ toolbar: 'bottom', location: 'before', widget: 'dxCheckBox', options: { value: this.advancedMode, text: this.advancedModeText() } });\n this.editorInputId = editorInputId;\n }\n _generateOperand(value) {\n return this.options().helper.serializer.deserialize(value);\n }\n _generateSurface(operand) {\n var type = null;\n if (operand instanceof UnaryOperator) {\n type = this.options().helper.mapper.unary;\n }\n else {\n type = this.options().helper.mapper.group;\n }\n var surface = new type(operand, this, this.fieldListProvider, this.path);\n if (surface instanceof UnaryOperandSurface) {\n if (!(surface.model.operand instanceof GroupOperator)) {\n this.operand = new GroupOperator(GroupOperatorType.And, [this.operand]);\n surface.dispose();\n return this._generateSurface(this.operand);\n }\n surface.operand().canRemove = false;\n }\n surface.canRemove = false;\n return surface;\n }\n _validateValue(value) {\n try {\n if (this.options() && this.options().helper) {\n this.options().helper.serializer.deserialize(value);\n return true;\n }\n else {\n return false;\n }\n }\n catch (e) {\n return false;\n }\n }\n canSave() {\n return this.isValid();\n }\n initializeInnerValue() {\n this.value = ko.observable('');\n }\n change(type, surface) {\n this.operand = criteriaCreator.changeByType(type);\n this.operand.assignFrom(surface.model);\n var type = null;\n if (this.operand instanceof UnaryOperator) {\n type = this.options().helper.mapper.unary;\n }\n else {\n type = this.options().helper.mapper.group;\n }\n var surface = new type(this.operand, this, this.fieldListProvider, this.path);\n surface.canRemove = false;\n if (surface instanceof UnaryOperandSurface) {\n surface.operand().canRemove = false;\n }\n this.operandSurface(surface);\n }\n get helper() {\n return this.options() && this.options().helper;\n }\n get path() {\n return this.options() && this.options().path;\n }\n dispose() {\n super.dispose();\n this.editorContainer(null);\n this.operandSurface() && this.operandSurface().dispose();\n }\n onInput(s, e) {\n var self = this;\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n self.onValueChange(s.component.option('text'));\n }, 200);\n }\n onFocus() {\n this.textFocused(true);\n }\n onBlur() {\n this.textFocused(false);\n this.helper.onEditorFocusOut(this.operand);\n }\n cacheElement($element) {\n this.editorContainer(dxTextArea.getInstance($element.get(0)));\n }\n updateCriteria() {\n if (this.isSurfaceValid()) {\n var currentValue = this.operand && this.options().helper.serializer.serialize(this.operand, false);\n if (currentValue !== this.value()) {\n this.operand = this._generateOperand(this.value());\n this.operandSurface() && this.operandSurface().dispose();\n this.operandSurface(this._generateSurface(this.operand));\n }\n }\n }\n onValueChange(value) {\n if (this.displayValue() === value.trim())\n return;\n this.displayValue(value);\n if (this.displayExpressionConverter) {\n this.displayExpressionConverter.toRealExpression(this.path(), value).done((result) => {\n this.value(result);\n this.updateCriteria();\n }).fail(() => {\n this.value(value);\n this.updateCriteria();\n });\n }\n else {\n this.updateCriteria();\n }\n }\n focusText() {\n var focusFn = (editor) => {\n setTimeout(_ => {\n if (editor.renderer)\n editor.renderer.updateText();\n editor.focus();\n }, 1);\n };\n if (!this.editorContainer())\n var subscription = this.editorContainer.subscribe((editor) => {\n subscription.dispose();\n focusFn(editor);\n });\n else\n focusFn(this.editorContainer());\n }\n resizeAceEditor() {\n if (this.aceAvailable && this.editorContainer()) {\n this.editorContainer().resize();\n }\n }\n get cancelLocalization() {\n return getLocalization('Cancel', 'StringId.Cancel');\n }\n get saveLocalization() {\n return getLocalization('OK', 'StringId.OK');\n }\n}\nko.bindingHandlers['dxFilterEditor'] = {\n init: function (element, valueAccessor, bindings, viewModel) {\n $.fn.constructor(element).children().remove();\n $.fn.constructor(element).addClass('dx-popup-general');\n var templateHtml = getTemplate('dx-filtereditor'), $element = $.fn.constructor(element).append(templateHtml), values = valueAccessor();\n var itemsProvider = ko.observable(ko.unwrap(values.fieldListProvider));\n var computedFunctions = [];\n computedFunctions.push(ko.computed(() => {\n if (values.options() && values.options().itemsProvider) {\n itemsProvider(ko.unwrap(values.options().itemsProvider));\n }\n else {\n itemsProvider(ko.unwrap(values.fieldListProvider));\n }\n }));\n computedFunctions.push(ko.computed(() => {\n if (values.getDisplayNameByPath && values.options() && values.options().helper && !values.options().helper.getDisplayPropertyName) {\n values.options().helper.getDisplayPropertyName = values.getDisplayNameByPath;\n }\n }));\n var editor = new FilterEditor(values.options, itemsProvider, $.fn.constructor(element).closest('.dx-rtl').length > 0, values.displayNameProvider, viewModel.editorInputId);\n ko.applyBindingsToDescendants(editor, $element.children()[0]);\n addDisposeCallback($element.children()[0], () => {\n computedFunctions.forEach(x => x.dispose());\n editor.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\nexport class FilterEditorPlain extends FilterEditor {\n constructor(element, options, fieldListProvider, rtl = false, _displayNameProvider) {\n super(options, fieldListProvider, rtl, _displayNameProvider);\n this.element = element;\n this.advancedModeTop = () => this.advancedModePosition.indexOf('Top') !== -1;\n this.advancedModeLeft = () => this.advancedModePosition.indexOf('Left') !== -1;\n this.advancedModePosition = 'TopRight';\n this.advancedModePosition = options().advancedModePosition;\n }\n initializeInnerValue() {\n if (this.options().realTimeUpdate) {\n this.value = this.options().value;\n var valueUpdateTimeout = null;\n this._disposables.push(this.value.subscribe(() => {\n valueUpdateTimeout && clearTimeout(valueUpdateTimeout);\n valueUpdateTimeout = setTimeout(() => {\n this.updateCriteria();\n }, 100);\n }));\n }\n else {\n super.initializeInnerValue();\n }\n }\n getCheckBoxStyles() {\n var position = {};\n if (this.advancedModeTop())\n position['top'] = '0px';\n else\n position['bottom'] = '0px';\n if (this.advancedModeLeft())\n position['left'] = '0px';\n else\n position['right'] = '0px';\n return position;\n }\n getContentStyles() {\n var styles = {\n pointerEvents: this.options().disabled() ? 'none' : ''\n };\n if (!this.advancedModeTop())\n styles['top'] = '0px';\n return styles;\n }\n getTextCssClasses() {\n return {\n 'advanced': this.advancedMode(),\n 'dx-filtereditor-text-container-bottom': !this.advancedModeTop(),\n 'dx-filtereditor-text-container-top': this.advancedModeTop()\n };\n }\n}\nko.components.register('dx-filtereditor-plain', {\n viewModel: {\n createViewModel: (params, componentInfo) => {\n var viewModel = new FilterEditorPlain(componentInfo.element, params.options, ko.observable(params.fieldListProvider), undefined, params.displayNameProvider);\n viewModel.popupVisible(true);\n return viewModel;\n }\n },\n template: getTemplate('dx-filtereditor-plain')\n});\nko.components.register('dx-filtereditor-advanced', {\n viewModel: {\n createViewModel: (params, componentInfo) => {\n var viewModel = new FilterEditor(params.options, ko.observable(params.fieldListProvider), undefined, params.displayNameProvider);\n viewModel.advancedMode(true);\n viewModel.popupVisible(true);\n params.options().value.subscribe(() => {\n viewModel.popupVisible(false);\n viewModel.popupVisible(true);\n });\n return viewModel;\n }\n },\n template: getTemplate('dx-filtereditor-advanced')\n});\nko.bindingHandlers['cacheElement'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = valueAccessor();\n value.action($.fn.constructor(element));\n }\n};\n","/**\r\n* DevExpress Analytics (core\\widgets\\booleanEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Editor } from '../../property-grid/widgets/editor';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { extend } from 'jquery';\nexport class BooleanEditor extends Editor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n }\n _checkBoxInitializedHandler(element) {\n var _a;\n const checkBoxElement = (element.jquery || element.dxRenderer) ? element[0] : element;\n const labels = (_a = checkBoxElement === null || checkBoxElement === void 0 ? void 0 : checkBoxElement.closest('.dx-field')) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('label');\n const labelElement = Array.from(labels).filter(elt => elt.getAttribute('for') === this.editorInputId)[0];\n if (labelElement) {\n const eventType = 'click';\n const eventListener = () => checkBoxElement.dispatchEvent(new Event(eventType));\n labelElement.addEventListener(eventType, eventListener);\n addDisposeCallback(labelElement, () => labelElement.removeEventListener(eventType, eventListener));\n }\n }\n getOptions(templateOptions) {\n const extendedOptions = this.info.peek().editor.extendedOptions;\n const editorCustomization = { onInitialized: e => this._checkBoxInitializedHandler(e.element) };\n return extend(true, {}, templateOptions, this.editorOptions, extendedOptions, editorCustomization);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\colorPickerEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nexport class ColorPickerEditor extends Editor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n this._disposables.push(this.displayValue = ko.pureComputed({\n read: () => {\n var value = ko.unwrap(this.value);\n if (!value)\n return undefined;\n if (value && value.toLowerCase() === 'transparent') {\n return 'rgba(0,0,0,0)';\n }\n if ((/^rgba\\s*\\((\\s*[a-f\\d]+\\s*,){3}\\s*[a-f\\d]+\\s*\\)$/i).test(value))\n return value;\n var div = document.createElement('div');\n div.style.backgroundColor = value;\n return div.style.backgroundColor || 'rgba(0,0,0,1)';\n },\n write: (val) => {\n this.value(val);\n }\n }));\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\fieldListEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nimport { TreeListController } from '../../widgets/treelist/_treelistController';\nexport class FieldListEditor extends Editor {\n constructor(modelPropertyInfo, level, parentDisabled, textToSearch) {\n super(modelPropertyInfo, level, parentDisabled, textToSearch);\n this.path = ko.pureComputed(() => {\n return this._model() && this._model()['getPath'] && this._model()['getPath'](this.name) || '';\n });\n this.treeListController = new TreeListController();\n this._disposables.push(this.path);\n this._disposables.push(this.treeListController);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\dataMemberEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { FieldListEditor } from './fieldListEditor';\nimport { DataMemberTreeListController } from './_dataMemberEditor';\nexport class DataMemberEditor extends FieldListEditor {\n constructor(modelPropertyInfo, level, parentDisabled, textToSearch) {\n super(modelPropertyInfo, level, parentDisabled, textToSearch);\n this.treeListController = new DataMemberTreeListController();\n this._disposables.push(this.treeListController);\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\registerBaseEdtior.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from './editorsInfo';\nimport { FontEditor } from './fonteditor/editor';\nimport { PropertyGridEditor, PropertyGridEditorFlat } from '../propertygrid';\nimport { BooleanEditor } from '../../core/widgets/booleanEditor';\nexport function registerBaseEditors() {\n editorTemplates.registerEditors({\n 'bool': { header: 'dx-boolean', editorType: BooleanEditor },\n 'boolSelect': { header: 'dx-boolean-select' },\n 'numeric': { header: 'dx-numeric' },\n 'modificators': { custom: 'dx-modificators' },\n 'combobox': { header: 'dx-combobox' },\n 'comboboxEditable': { header: 'dx-combobox-editable' },\n 'text': { header: 'dx-text' },\n 'image': { header: 'dx-image' },\n 'file': { header: 'dx-file' },\n 'commonCollection': { custom: 'dx-commonCollection' },\n 'stringArray': { header: 'dx-emptyHeader', content: 'dx-string-array' },\n 'font': { header: 'dx-emptyHeader', content: 'dx-objectEditorContent', editorType: FontEditor },\n 'objecteditor': { header: 'dx-emptyHeader', content: 'dx-objectEditorContent', editorType: PropertyGridEditor },\n 'inplaceObjectEditor': { custom: 'dx-objectEditorContent', editorType: PropertyGridEditorFlat }\n });\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\registerDesignerEditors.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nimport { GuidEditor } from '../../property-grid/widgets/guideditor';\nimport { RequiredNullableEditor, createNumericEditor } from './_requiredNullableEditor';\nimport { PropertyGridEditor } from '../../property-grid/propertygrid';\nimport { FieldListEditor } from './fieldListEditor';\nimport { DataMemberEditor } from './dataMemberEditor';\nimport { ColorPickerEditor } from './colorPickerEditor';\nexport function registerDesignerEditors() {\n editorTemplates.registerEditors({\n guid: { header: 'dxrd-guid', editorType: GuidEditor },\n date: { header: 'dx-date', editorType: RequiredNullableEditor },\n borders: { header: 'dxrd-borders' },\n textAlignment: { header: 'dxrd-textalignment' },\n objecteditorCustom: { custom: 'dxrd-objectEditorContent', editorType: PropertyGridEditor },\n field: { header: 'dxrd-field', editorType: FieldListEditor },\n dataMember: { header: 'dxrd-field', editorType: DataMemberEditor },\n filterEditor: { header: 'dxrd-filterstring' },\n formatEditor: { header: 'dxrd-formatstring' },\n expressionEditor: { header: 'dxrd-expressionstring' },\n customColorEditor: { header: 'dxrd-colorpicker', editorType: ColorPickerEditor },\n sbyte: createNumericEditor('System.SByte', 'integer'),\n decimal: createNumericEditor('System.Decimal', 'float'),\n int64: createNumericEditor('System.Int64', 'integer'),\n int32: createNumericEditor('System.Int32', 'integer'),\n int16: createNumericEditor('System.Int16', 'integer'),\n single: createNumericEditor('System.Single', 'float'),\n double: createNumericEditor('System.Double', 'float'),\n byte: createNumericEditor('System.Byte', 'integer'),\n uint16: createNumericEditor('System.UInt16', 'integer'),\n uint32: createNumericEditor('System.UInt32', 'integer'),\n uint64: createNumericEditor('System.UInt64', 'integer')\n });\n}\n","/**\r\n* DevExpress Analytics (core\\_bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { KeyboardEnum } from '../property-grid/widgets/internal/_utils';\nimport { getTemplate } from '../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { extend } from '../serializer/_utils';\nimport { DragDropHandler } from './dragDrop/_dragDropHandler';\nimport { KeyDownHandlersManager } from './tools/_keyboardHelper';\nimport { cssTransform } from './utils/_utils';\nimport { Selectable } from './internal/selectable';\nimport { Draggable } from './internal/_draggable';\nimport { convertToCssPixelUnits } from './internal/_utils';\nko.bindingHandlers['cssArray'] = {\n 'update': function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = ko.utils.unwrapObservable(valueAccessor());\n for (var i = 0; i < value.length; i++) {\n ko.bindingHandlers['css'].update(element, () => { return value[i]; });\n }\n }\n};\nko.bindingHandlers['selectable'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var selection = ko.unwrap(values.selection), options = extend({ filter: '.dxd-selectable', distance: 1 }, ko.unwrap(values), {\n selecting: function (event, selectionElement) {\n var _event = { control: ko.dataFor(selectionElement), cancel: false, ctrlKey: event.ctrlKey };\n selection.selecting(_event);\n if (_event.cancel) {\n $.fn.constructor(selectionElement).removeClass('ui-selecting');\n }\n },\n start: (event, element) => {\n selection.clickHandler(null, event);\n selection.expectClick = true;\n selection.started = true;\n },\n stop: () => {\n selection.started = false;\n setTimeout(() => { selection.expectClick = false; }, 100);\n selection.applySelection();\n },\n unselecting: function (event, selectionElement) {\n selection.unselecting(ko.dataFor(selectionElement));\n }\n });\n const selectable = new Selectable(element, options);\n var subscriptions = [];\n if (selection.disabled && ko.isSubscribable(selection.disabled)) {\n subscriptions.push(selection.disabled.subscribe((newVal) => {\n return Selectable.disabled = newVal;\n }));\n }\n addDisposeCallback(element, () => {\n selectable.dispose();\n element = null;\n subscriptions.forEach(x => x.dispose());\n });\n }\n};\nko.bindingHandlers['updateTop'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = valueAccessor();\n var $element = $.fn.constructor(element);\n var updateTop = (value) => {\n var scaleY = element.getBoundingClientRect().height / element.offsetHeight;\n var top = (value === 0 || !!value) ? value : ($element.prev().position().top / scaleY) + $element.prev().outerHeight();\n $element.css('top', top + 'px');\n };\n var subscription = value.subscribe((newVal) => {\n updateTop(newVal);\n });\n updateTop(value());\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nfunction _getElementOffset(element, containment) {\n if (!element)\n return { top: 0, left: 0 };\n const containmentElement = _getContainment(element, containment);\n return {\n top: containmentElement.offset().top,\n left: containmentElement.offset().left\n };\n}\nfunction _getContainment(parent, containment) {\n return (containment === 'parent' || containment === parent) ? parent : parent.find(containment);\n}\nfunction _getBoundary($parent, $containment) {\n if (!$parent || !$containment)\n return null;\n var top = $parent.offset().top - $containment.offset().top;\n var left = $parent.offset().left - $containment.offset().left;\n return {\n left: left,\n top: top,\n right: left + $containment.width(),\n bottom: top + $containment.height()\n };\n}\nko.bindingHandlers['draggable'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var values = valueAccessor();\n if (!values)\n return;\n var $element = $.fn.constructor(element), $parent = values.parent && values.parent() || $element.closest('.dx-designer-viewport'), containment = values.containment || '.dxrd-ghost-container', $viewport, $ghostContainerOffset, $containmentOffset, initialScroll = { left: 0, top: 0 }, attachDelta = (ui) => {\n ui['delta'] = {\n left: (($ghostContainerOffset && $ghostContainerOffset.left || 0) - $containmentOffset.left),\n top: ($ghostContainerOffset && $ghostContainerOffset.top || 0) - $containmentOffset.top\n };\n ui['scroll'] = {\n left: $viewport.scrollLeft() - initialScroll.left,\n top: $viewport.scrollTop() - initialScroll.top\n };\n }, options = extend({}, ko.unwrap(values), {\n start: function (event, uiElement) {\n DragDropHandler.started(true);\n $viewport = $parent.find('.dxrd-viewport');\n $ghostContainerOffset = $parent.find('.dxrd-ghost-container').offset();\n $containmentOffset = _getContainment($parent, containment).offset();\n initialScroll.left = $viewport.scrollLeft();\n initialScroll.top = $viewport.scrollTop();\n values.startDrag && values.startDrag(ko.dataFor(uiElement));\n },\n stop: function (event, uiElement) {\n attachDelta(uiElement);\n values.stopDrag(uiElement, ko.dataFor(uiElement), event);\n DragDropHandler.started(false);\n },\n drag: function (event, uiElement) {\n attachDelta(uiElement);\n values.drag && values.drag(event, uiElement, ko.dataFor(uiElement));\n },\n helper: function (event, uiElement) {\n let $container;\n var parentOffset = _getElementOffset($parent, options.containment);\n if (values.helper) {\n $container = values.helper(ko.dataFor(uiElement), event);\n if ($container) {\n $container.css({ 'position': 'absolute' });\n $container[0].dataset.startLeftPosition = convertToCssPixelUnits(event.pageX - parentOffset.left);\n $container[0].dataset.startTopPosition = convertToCssPixelUnits(event.pageY - parentOffset.top);\n return $container;\n }\n }\n var templateHtml = getTemplate(bindingContext.$root.dragHelperContent.template);\n var draggableModel = ko.dataFor(uiElement);\n $container = $.fn.constructor(templateHtml).css({ 'display': values.helper ? 'block' : 'none', 'position': 'absolute' });\n $container[0].dataset.startLeftPosition = convertToCssPixelUnits(draggableModel.absolutePosition ? draggableModel.absolutePosition.x() : event.pageX - parentOffset.left);\n $container[0].dataset.startTopPosition = convertToCssPixelUnits(draggableModel.absolutePosition ? draggableModel.absolutePosition.y() : event.pageY - parentOffset.top);\n $container.prependTo(_getContainment($parent, options.containment));\n ko.applyBindingsToDescendants(bindingContext.$root.dragHelperContent, $container[0]);\n return $container;\n }\n });\n options.containment = _getContainment($parent, options.containment);\n setDragOffsetMode(element);\n var draggable = new Draggable(element, options);\n addDisposeCallback(element, () => {\n draggable.dispose();\n element = null;\n });\n }\n};\nvar trackCursorData = 'dxd-track-cursor-data';\nvar trackCursorClass = 'dxd-track-cursor';\nvar trackCursorSelector = '.' + trackCursorClass;\nvar dragHelperLineClass = 'dxrd-drag-helper-item';\nko.bindingHandlers['trackCursor'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var $element = $.fn.constructor(element);\n $element.addClass(trackCursorClass);\n var value = valueAccessor();\n var recalculateBounds = false;\n if (value['recalculateBounds']) {\n recalculateBounds = value['recalculateBounds'];\n value = value['underCursor'];\n }\n var bounds = element.getBoundingClientRect(), body = document.body, docElem = document.documentElement, overHandler = (event) => {\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n if (!value().isNotDropTarget) {\n bindingContext.$root.selection.dropTarget = bindingContext.$data;\n event.stopPropagation();\n }\n }\n }, enterHandler = (event) => {\n value(extend(value(), { isOver: true }));\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n bounds = element.getBoundingClientRect();\n }\n }, leaveHandler = (event) => {\n value(extend(value(), { isOver: false }));\n }, handler = (event) => {\n if (recalculateBounds)\n bounds = element.getBoundingClientRect();\n if (!(bindingContext.$root.selection.started && bindingContext.$root.resizeHandler.started)) {\n var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop, scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft, clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0, y = event.pageY - (bounds.top + scrollTop - clientTop), x = event.pageX - (bounds.left + scrollLeft - clientLeft);\n value(extend(value(), { x: x, y: y }));\n }\n };\n element.addEventListener('mousemove', handler);\n !recalculateBounds && element.addEventListener('mouseenter', enterHandler);\n element.addEventListener('mouseover', overHandler);\n element.addEventListener('mouseleave', leaveHandler);\n element.addEventListener('dragover', handler);\n addDisposeCallback(element, function () {\n element.removeEventListener('dragover', handler);\n element.removeEventListener('mousemove', handler);\n element.removeEventListener('mouseover', overHandler);\n element.removeEventListener('mouseleave', leaveHandler);\n !recalculateBounds && element.removeEventListener('mouseenter', enterHandler);\n $element.removeClass(trackCursorClass);\n });\n }\n};\nko.bindingHandlers['templates'] = {\n init: function (element, valueAccessor) {\n var templateHtml = $.fn.constructor(valueAccessor()).text(), $templateHtml = $.fn.constructor(templateHtml);\n $.fn.constructor(element).append($templateHtml);\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['zoom'] = {\n update: function (element, valueAccessor) {\n var value = ko.unwrap(valueAccessor() || {});\n for (var i = 0; i < cssTransform.length; i++) {\n element.style[cssTransform[i]] = 'scale(' + (value) + ')';\n }\n $.fn.constructor(element).addClass('dxrd-transform-origin-left-top');\n }\n};\nko.bindingHandlers['keyDownActions'] = (() => {\n var handlersManager = new KeyDownHandlersManager(window);\n return {\n init: function (element, valueAccessor) {\n var actionLists = valueAccessor(), handler = (e) => { actionLists.processShortcut(ko.unwrap(actionLists.toolbarItems), e); };\n if (ko.isSubscribable(actionLists.enabled)) {\n var subscribe = actionLists.enabled.subscribe((newVal) => {\n if (newVal)\n handlersManager.bindHandler(element, handler);\n });\n addDisposeCallback(element, () => subscribe.dispose());\n }\n if (ko.unwrap(actionLists.enabled))\n handlersManager.bindHandler(element, handler);\n }\n };\n})();\nko.bindingHandlers['accessibilityKeyboardHelper'] = (() => {\n return {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var handlersManager = valueAccessor();\n if (handlersManager && (bindingContext.$root.accessibilityCompliant || handlersManager.accessibilityCompliantEnabled)) {\n var subscription = ko.bindingEvent.subscribe(element, 'childrenComplete', function () {\n handlersManager.bindHandler(element);\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n }\n };\n})();\nko.bindingHandlers['dxAction'] = (() => {\n return {\n init: (element, valueAccessor) => {\n var values = valueAccessor();\n var clickHandler = function (e) {\n values.action.call(values.model, values.model, e);\n };\n var keyPressHandler = function (e) {\n if (e.key == KeyboardEnum.Enter || e.key == KeyboardEnum.Space) {\n values.action.call(values.model, values.model, e);\n }\n };\n element.addEventListener('click', clickHandler);\n element.addEventListener('keydown', keyPressHandler);\n addDisposeCallback(element, function () {\n element.removeEventListener('click', clickHandler);\n element.removeEventListener('keydown', keyPressHandler);\n });\n }\n };\n})();\nko.extenders.dxdnum = function (target, value) {\n target.subscribe((newValue) => {\n newValue = newValue || 0;\n if (!isNaN(value.max)) {\n target(Math.min(newValue, value.max));\n }\n else if (!isNaN(value.min)) {\n target(Math.max(newValue, value.min));\n }\n else {\n target(newValue);\n }\n });\n return target;\n};\nfunction setDragOffsetMode(element) {\n const startDragWithOffset = element.parentElement.classList.contains('dxrd-toolbox-item');\n if (startDragWithOffset) {\n element.dataset.startDragWithOffset = 'true';\n }\n}\n","/**\r\n* DevExpress Analytics (core\\_metadata.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '../property-grid/widgets/editorsInfo';\nexport var sizeFake = [\n { propertyName: 'height', displayName: 'Height', localizationId: 'AnalyticsCoreStringId.SizeF.Height', editor: editorTemplates.getEditor('numeric'), editorOptions: { min: 2 } },\n { propertyName: 'width', displayName: 'Width', localizationId: 'AnalyticsCoreStringId.SizeF.Width', editor: editorTemplates.getEditor('numeric'), editorOptions: { min: 2 } }\n];\nexport var locationFake = [\n { propertyName: 'x', displayName: 'X', editor: editorTemplates.getEditor('numeric') },\n { propertyName: 'y', displayName: 'Y', editor: editorTemplates.getEditor('numeric') }\n];\n","/**\r\n* DevExpress Analytics (core\\binding\\_jsDesignerBindingCommon.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { Disposable } from '../../serializer/utils';\nimport { _processError } from '../internal/_processError';\nimport { RequestHelper } from './_requestHelper';\nimport { troubleshootingPageWrapper } from '../utils/_troubleshootingHelpers';\nexport class JSDesignerBindingCommon extends Disposable {\n constructor(_options, _customEventRaiser) {\n super();\n this._options = _options;\n this._customEventRaiser = _customEventRaiser;\n this._templateHtml = getTemplate('dxrd-designer');\n this.developmentMode = _options.developmentMode;\n }\n dispose() {\n super.dispose();\n if (this.sender && this.sender instanceof Disposable)\n this.sender.dispose();\n this.removeProperties();\n }\n _fireEvent(eventName, args) {\n if (this._customEventRaiser) {\n this._customEventRaiser(eventName, args);\n return;\n }\n this._options && this._options.callbacks && this._options.callbacks[eventName] && this._options.callbacks[eventName](this.sender, args);\n }\n _warnForIncorrectCallbackName(publicName, privateName) {\n console.warn('The callback name must be different. Use \"' + publicName + '\" instead of \"' + privateName + '\" to call the function with the correct arguments.');\n }\n _checkCallbackName(availableEvents) {\n Object.keys(this._options.callbacks).forEach(callbackName => {\n availableEvents.forEach(event => {\n if (callbackName === event.privateName) {\n this._warnForIncorrectCallbackName(event.publicName, callbackName);\n }\n });\n });\n }\n _getServerActionUrl(host, uri) {\n return RequestHelper.generateUri(host, uri);\n }\n _generateCallbackDictionary(eventsArray, prefix) {\n var events = JSDesignerBindingCommon.convertCallbackArrayToDictionary(eventsArray);\n var result = events;\n if (prefix && this._options.callbacks[prefix]) {\n Object.keys(events).forEach(propertyName => {\n result[propertyName] = this._options.callbacks[prefix][propertyName] || events[propertyName];\n });\n }\n else {\n Object.keys(events).forEach(propertyName => {\n result[propertyName] = this._options.callbacks[propertyName] || events[propertyName];\n });\n }\n return result;\n }\n _getLocalizationRequest() {\n var deferred = $.Deferred();\n var requestOptions = this._options.requestOptions;\n if (requestOptions.getLocalizationAction) {\n var actionUrl = this._getServerActionUrl(requestOptions.host, requestOptions.getLocalizationAction);\n $.getJSON(actionUrl)\n .fail(function (jqXHR, textStatus, errorThrown) {\n try {\n _processError(errorThrown.message, $.Deferred(), jqXHR, textStatus);\n }\n finally {\n deferred.reject();\n }\n }).done((localization) => {\n deferred.resolve(localization);\n });\n }\n else {\n deferred.resolve();\n }\n return deferred.promise();\n }\n _createDisposeFunction(element) {\n addDisposeCallback(element, () => {\n this.dispose();\n });\n }\n static convertCallbackArrayToDictionary(callbackArray) {\n var callbacks = {};\n callbackArray.forEach((event) => { callbacks[event['privateName']] = event['callback']; });\n return callbacks;\n }\n}\nexport class DxAnalyticsComponentCommon {\n constructor(_element, _options) {\n this._element = _element;\n this._options = _options;\n }\n getBindingName() {\n return '';\n }\n render() {\n ko.cleanNode(this._element);\n this._element.setAttribute('data-bind', `${this.getBindingName()}: $data`);\n troubleshootingPageWrapper(() => ko.applyBindings(this._options, this._element), this._options.developmentMode, this._element);\n }\n dispose() {\n ko.cleanNode(this._element);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\binding\\_requestHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class RequestHelper {\n static generateUri(host, uri) {\n host = host || '';\n if (host && host[host.length - 1] === '/' && uri && uri[0] === '/') {\n return host + uri.substring(1);\n }\n return host + uri;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\dragDrop\\_dragDropHandler.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { Size } from '../elements/size';\nimport { findSurface } from '../internal/_surfaceHelpers';\nimport { unitsToPixel } from '../utils/_units';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from '../internal/_utils';\nexport class DragDropHandler extends Disposable {\n constructor(surface, selection, undoEngine, snapHelper, dragHelperContent) {\n super();\n this._snapDisabled = false;\n this._size = new Size(0, 0);\n this.alwaysAlt = false;\n this.surface = surface;\n this.selection = selection;\n this.snapHelper = snapHelper;\n this.dragHelperContent = dragHelperContent;\n this.stopDrag = (ui, draggable, event) => {\n undoEngine() && undoEngine().start();\n this.doStopDrag(ui, draggable, event);\n undoEngine() && undoEngine().end();\n snapHelper && snapHelper.deactivateSnapLines();\n };\n }\n dispose() {\n super.dispose();\n this.surface = null;\n this.selection = null;\n this.snapHelper = null;\n this.dragHelperContent = null;\n }\n getTarget(event) {\n return event['toElement'] || (ko.dataFor(event.relatedTarget) && event.relatedTarget) || (event && event.target) || null;\n }\n _getAbsoluteSurfacePosition(uiElement) {\n return { left: convertFromCssPixelUnits(uiElement.dataset.leftPosition) - uiElement['delta'].left, top: convertFromCssPixelUnits(uiElement.dataset.topPosition) - uiElement['delta'].top };\n }\n addControl(control, dropTargetSurface, size) {\n var targetWidth = (dropTargetSurface['width'] && dropTargetSurface['width']()) || (dropTargetSurface['_width'] && dropTargetSurface['_width']());\n var underCursor = dropTargetSurface.underCursor();\n if (underCursor.x < targetWidth) {\n dropTargetSurface.getControlModel().addChild(control);\n var controlSurface = findSurface(control);\n if (!controlSurface)\n return;\n var width = size.width(), height = size.height();\n var left = (underCursor.x + width > targetWidth) ? (targetWidth - width - 1) : underCursor.x;\n controlSurface.rect({ left: left, top: Math.max(underCursor.y, 0), width: width, height: height });\n this.selection.initialize(controlSurface);\n }\n }\n recalculateSize(size) {\n var surface = ko.unwrap(this.surface);\n this._size.width(unitsToPixel(ko.unwrap(size.width) * surface.dpi() / 100, surface.measureUnit(), surface.zoom()));\n this._size.height(unitsToPixel(ko.unwrap(size.height) * surface.dpi() / 100, surface.measureUnit(), surface.zoom()));\n }\n helper(draggable, event) {\n this.snapHelper && this.snapHelper.updateSnapLines(draggable || null);\n }\n canDrop(dropTarget, controlModel, metaData) {\n var locked = dropTarget.locked;\n if (metaData && metaData.canDrop) {\n locked = locked || !metaData.canDrop(dropTarget, controlModel);\n }\n return !locked;\n }\n startDrag(_) { }\n drag(event, uiElement, draggableModel) {\n var needToActivateSnapLines = !this._snapDisabled && event.altKey !== true;\n if (this.selection.dropTarget) {\n var dropTarget = this.selection.dropTarget.getControlModel().getMetaData().isContainer ? this.selection.dropTarget : (this.selection.dropTarget.parent || this.selection.dropTarget), controlModel = draggableModel.getControlModel && draggableModel.getControlModel(), metaData = controlModel && controlModel.getMetaData() || draggableModel.info;\n if (this.canDrop(dropTarget, controlModel, metaData)) {\n this.dragHelperContent && this.dragHelperContent.isLocked(false);\n }\n else {\n this.snapHelper && this.snapHelper.deactivateSnapLines();\n needToActivateSnapLines = false;\n this.dragHelperContent && this.dragHelperContent.isLocked(true);\n }\n }\n if (needToActivateSnapLines) {\n var position = this._getAbsoluteSurfacePosition(uiElement);\n var snapDelta = this.snapHelper && this.snapHelper.activateSnapLines({\n left: position.left,\n top: position.top,\n right: position.left + this._size.width(),\n bottom: position.top + this._size.height()\n });\n if (snapDelta && (snapDelta.left > 0 || snapDelta.top > 0)) {\n uiElement.dataset.leftPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.leftPosition) - snapDelta.left);\n uiElement.dataset.topPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.topPosition) - snapDelta.top);\n uiElement.ghostContainer.style.left = uiElement.dataset.leftPosition;\n uiElement.ghostContainer.style.top = uiElement.dataset.topPosition;\n }\n }\n }\n doStopDrag(uiElement, draggableModel, event) { }\n}\nDragDropHandler.started = ko.observable(false);\n","/**\r\n* DevExpress Analytics (core\\dragDrop\\_dragHelperContent.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Rectangle } from '../elements/rectangle';\nexport class DragHelperControlRectangle extends Rectangle {\n constructor(position, left, top, width, height) {\n super(left, top, width, height);\n this.position = position;\n }\n}\nexport class DragHelperContent extends Rectangle {\n constructor(selectionProvider) {\n super();\n this.controls = ko.observableArray([]);\n this.customData = ko.observable({});\n this.template = 'dxrd-drag-helper-source';\n this.isLocked = ko.observable(false);\n this._selectionProvider = selectionProvider;\n }\n get _isEmpty() {\n return this.controls().length === 0;\n }\n reset() {\n this.controls([]);\n this.customData({});\n }\n update(surface) {\n this.left(surface.absolutePosition.x());\n this.top(surface.absolutePosition.y());\n this.width(surface.rect().width);\n this.height(surface.rect().height);\n if (this._isEmpty) {\n var controls = [];\n this._selectionProvider.selectedItems.forEach((item, index) => {\n if (!item.locked && item.parent === surface.parent)\n controls.push(new DragHelperControlRectangle(index));\n });\n this.controls(controls);\n }\n this.controls().forEach((item) => {\n var surfaceElement = this._selectionProvider.selectedItems[item.position];\n item.left(surfaceElement.absolutePosition.x() - this.left());\n item.top(surfaceElement.absolutePosition.y() - this.top());\n item.width(surfaceElement.rect().width);\n item.height(surfaceElement.rect().height);\n });\n }\n setContent(area, customData = null) {\n if (this._isEmpty)\n this.controls([area]);\n this.left(area.left());\n this.top(area.top());\n this.width(area.width());\n this.height(area.height());\n this.customData(customData);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\dragDrop\\_selectionDragDropHandler.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { DragDropHandler } from './_dragDropHandler';\nimport { findSurface } from '../internal/_surfaceHelpers';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from '../internal/_utils';\nexport class SelectionDragDropHandler extends DragDropHandler {\n adjustDropTarget(dropTargetSurface) {\n var selectedItemInTree = dropTargetSurface;\n while (selectedItemInTree != null) {\n if (selectedItemInTree.selected && selectedItemInTree.selected()) {\n dropTargetSurface = selectedItemInTree.parent;\n break;\n }\n selectedItemInTree = selectedItemInTree.parent;\n }\n return dropTargetSurface;\n }\n constructor(surface, selection, undoEngine, snapHelper, dragHelperContent) {\n super(surface, selection, undoEngine, snapHelper, dragHelperContent);\n this.cursor = 'move';\n this.containment = '.dxrd-ghost-container';\n this['helper'] = (draggable) => {\n super.helper(draggable);\n if (this.selection.selectedItems.indexOf(draggable) === -1) {\n this.selection.updateSelection(draggable);\n }\n dragHelperContent.update(draggable);\n this._size.width(dragHelperContent.width());\n this._size.height(dragHelperContent.height());\n };\n }\n startDrag(control) {\n this.selection.swapFocusedItem(control);\n var focusedSurface = this.selection.focused();\n var baseOffsetX = focusedSurface.rect().left + focusedSurface.underCursor().x;\n var baseOffsetY = focusedSurface.rect().top + focusedSurface.underCursor().y;\n this.selection.selectedItems.filter((item) => { return !item.locked; }).forEach((item) => {\n if (item.parent === focusedSurface.parent) {\n item.underCursor().offsetX = item.rect().left - baseOffsetX;\n item.underCursor().offsetY = item.rect().top - baseOffsetY;\n }\n });\n }\n drag(event, uiElement, draggable) {\n uiElement.dataset.leftPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.leftPosition) + uiElement['scroll'].left);\n uiElement.dataset.topPosition = convertToCssPixelUnits(convertFromCssPixelUnits(uiElement.dataset.topPosition) + uiElement['scroll'].top);\n super.drag(event, uiElement, draggable);\n }\n getLocation(adjustedTarget, item) {\n var left = adjustedTarget.underCursor().x + item.underCursor().offsetX, top = adjustedTarget.underCursor().y + item.underCursor().offsetY;\n return { left: left > 0 ? left : 0, top: top > 0 ? top : 0 };\n }\n ajustLocation(adjustedTarget, item) {\n item.rect(this.getLocation(adjustedTarget, item));\n }\n doStopDrag(uiElement, _) {\n this.dragHelperContent.reset();\n if (this.dragHelperContent.isLocked())\n return;\n if (this.selection.dropTarget) {\n var dropTarget = this.selection.dropTarget.getControlModel(), dropTargetSurface = dropTarget.getNearestParent(dropTarget)['surface'];\n var focusedSurface = this.selection.focused();\n var adjustedTarget = this.adjustDropTarget(dropTargetSurface), focusedModel = focusedSurface.getControlModel(), parent = focusedModel.getNearestParent(adjustedTarget.getControlModel()), adjustedTarget = parent && findSurface(parent), changeParent = adjustedTarget !== focusedSurface.parent;\n if (!adjustedTarget || !adjustedTarget.canDrop()) {\n return;\n }\n var position = this._getAbsoluteSurfacePosition(uiElement);\n adjustedTarget.underCursor().x = position.left - (adjustedTarget['absolutePosition'] && adjustedTarget['absolutePosition'].x() || 0) - focusedSurface.underCursor().offsetX;\n adjustedTarget.underCursor().y = position.top - (adjustedTarget['absolutePosition'] && adjustedTarget['absolutePosition'].y() || 0) - focusedSurface.underCursor().offsetY;\n var itemsToDrop = this.selection.selectedItems\n .filter((item) => { return !item.locked && item.parent === focusedSurface.parent; })\n .map((item) => {\n return item.getControlModel();\n })\n .filter((item) => {\n return item.getMetaData().canDrop(adjustedTarget, item);\n });\n if (changeParent) {\n for (var i = 0; i < itemsToDrop.length; i++) {\n itemsToDrop[i].surface.rect({ top: 0, left: 0 });\n }\n focusedModel.parentModel().removeChilds(itemsToDrop);\n parent['addChilds'](itemsToDrop);\n for (var i = 0; i < itemsToDrop.length; i++) {\n this.ajustLocation(adjustedTarget, itemsToDrop[i].surface);\n }\n this.selection.focused(focusedSurface);\n this.selection.selectItems(itemsToDrop.map((item) => { return item.surface; }));\n }\n else {\n for (var i = 0; i < itemsToDrop.length; i++) {\n this.ajustLocation(adjustedTarget, itemsToDrop[i].surface);\n }\n }\n this.selection.expectClick = !changeParent;\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\dragDrop\\_toolboxDragDropHandler.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { DragDropHandler } from './_dragDropHandler';\nimport { Size } from '../elements/size';\nimport { Rectangle } from '../elements/rectangle';\nimport { findSurface } from '../internal/_surfaceHelpers';\nimport { extend } from '../../serializer/_utils';\nexport class ToolboxDragDropHandler extends DragDropHandler {\n constructor(surface, selection, undoEngine, snapHelper, dragHelperContent, controlsFactory) {\n super(surface, selection, undoEngine, snapHelper, dragHelperContent);\n this.cursor = 'arrow';\n this._controlsFactory = controlsFactory;\n this.containment = '.dxrd-designer';\n this['cursorAt'] = {\n top: 0,\n left: 0\n };\n }\n helper(draggable) {\n super.helper(draggable);\n var toolboxItem = draggable;\n var size = Size.fromString(toolboxItem.info['@SizeF'] || toolboxItem.info['size'] || '100,23');\n this.recalculateSize(size);\n this.dragHelperContent.setContent(new Rectangle(0, 0, this._size.width(), this._size.height()));\n }\n doStopDrag(uiElement, draggableModel) {\n this.dragHelperContent.reset();\n if (this.dragHelperContent.isLocked())\n return;\n if (this.selection.dropTarget) {\n var toolboxItem = draggableModel, control = this._controlsFactory.createControl(extend({}, toolboxItem.info), null), parent = control.getNearestParent(this.selection.dropTarget.getControlModel()), dropTargetSurface = findSurface(parent);\n if (!dropTargetSurface || !dropTargetSurface.canDrop()) {\n return;\n }\n var position = this._getAbsoluteSurfacePosition(uiElement);\n dropTargetSurface.underCursor().x = position.left - (dropTargetSurface['absolutePosition'] && dropTargetSurface['absolutePosition'].x() || 0);\n dropTargetSurface.underCursor().y = position.top - (dropTargetSurface['absolutePosition'] && dropTargetSurface['absolutePosition'].y() || 0);\n if (this.surface().isFit && this.surface().isFit(dropTargetSurface) || dropTargetSurface.underCursor().isOver) {\n this.addControl(control, dropTargetSurface, this._size);\n }\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\dragDrop\\_wizardDragDropHandler.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { DragDropHandler } from './_dragDropHandler';\nimport { Rectangle } from '../elements/rectangle';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nexport class WizardDragDropHandler extends DragDropHandler {\n constructor(options) {\n super(null, null, ko.observable(null), null, options.dragHelperContent);\n this.parent = () => $.fn.constructor(options.parent);\n this.containment = options.containment;\n this._target = options.target;\n this._addHandler = options.addHandler;\n }\n helper(draggable, event) {\n this._dropTarget = null;\n var item = draggable;\n var target = $.fn.constructor(event.target).closest('.ui-draggable');\n var rect = new Rectangle(6, 6, target.width(), target.height());\n rect.className = 'dxrd-image-ghost-report';\n this.dragHelperContent.reset();\n this.dragHelperContent.setContent(rect, {\n template: 'dxrd-drag-helper-source-reorder-treelist',\n data: {\n imageClassName: item.imageClassName,\n imageTemplateName: item.imageTemplateName,\n text: item.text\n }\n });\n var templateHtml = getTemplate(this.dragHelperContent.template);\n var $container = $.fn.constructor(templateHtml).css({ 'display': 'block' });\n $container.prependTo(this.parent());\n ko.applyBindingsToDescendants(this.dragHelperContent, $container[0]);\n return $container;\n }\n doStopDrag(uiElement, _) {\n this.dragHelperContent.reset();\n if (this._dropTarget) {\n this._addHandler(this._dropTarget, ko.dataFor(uiElement), this._getAbsoluteSurfacePosition(uiElement));\n }\n }\n drag(event, ui) {\n var $target = $.fn.constructor(this.getTarget(event));\n var page = $target.closest(this._target);\n this._dropTarget = null;\n if (page.length && (!this._target || $target.closest(this._target)[0])) {\n this._dropTarget = ko.dataFor(page.get(0));\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\elements\\baseSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { createUnitProperties } from '../utils/_units';\nimport { CssCalculator } from '../internal/_cssCalculator';\nimport { createObservableReverseArrayMapCollection, createObservableArrayMapCollection } from '../utils/_arrayutils';\nimport { HoverInfo } from '../internal/_hoverInfo';\nimport { Point } from './point';\nimport { extend } from '../../serializer/_utils';\nexport class SurfaceElementArea extends Disposable {\n constructor(control, context, unitProperties) {\n super();\n this._createSurface = (item) => {\n return item['surface'] || new (item.getControlFactory()).controlsMap[item.controlType].surfaceType(item, this._context);\n };\n this.preInitProperties(control, context, unitProperties);\n this._control = control;\n this._context = context;\n control['surface'] = this;\n if (this._context) {\n createUnitProperties(control, this, unitProperties, this._context.measureUnit, this._context.zoom, (property) => { this._disposables.push(property); });\n }\n this._x = this._x || ko.observable(0);\n this._y = this._y || ko.observable(0);\n this._width = this._width || ko.observable(0);\n this._height = this._height || ko.observable(0);\n var container = ko.pureComputed(() => this.container());\n this._disposables.push(container);\n this._container = container();\n this._disposables.push(container.subscribe((value) => {\n if (this._container !== value && this.rtlLayout()) {\n var x = this._getX();\n this._container = value;\n this._setX(x);\n }\n else {\n this._container = value;\n }\n }));\n var x = ko.computed({\n read: () => this._getX(),\n write: (value) => {\n this._setX(value);\n }\n }), y = this._y, width = this._width, height = this._height;\n this['position'] = {\n top: y,\n left: x,\n width: width,\n height: height,\n lineHeight: height\n };\n this._disposables.push(x);\n var _rect = ko.observable();\n this._disposables.push(ko.computed(() => {\n if (!this._control.update()) {\n _rect({ top: y(), left: x(), right: x() + width(), bottom: y() + height(), width: width(), height: height() });\n }\n }));\n this._disposables.push(this.rect = ko.pureComputed({\n read: () => {\n return _rect();\n },\n write: (newRect) => {\n newRect = this.beforeRectUpdated(newRect);\n this._control.update(true);\n try {\n if (newRect.left !== undefined) {\n this._setX(newRect.left, newRect.width);\n }\n else if (newRect.width !== undefined) {\n this._setX(x(), newRect.width);\n }\n if (newRect.top !== undefined) {\n y(newRect.top);\n }\n if (newRect.right !== undefined && newRect.left === undefined && newRect.width === undefined) {\n width(newRect.right - x());\n }\n if (newRect.bottom !== undefined && newRect.top === undefined) {\n height(newRect.bottom - y());\n }\n if (newRect.right !== undefined && newRect.left !== undefined && newRect.width === undefined) {\n width(newRect.right - newRect.left);\n }\n if (newRect.bottom !== undefined && newRect.top !== undefined) {\n height(newRect.bottom - newRect.top);\n }\n if (newRect.width !== undefined) {\n width(newRect.width);\n }\n if (newRect.height !== undefined) {\n height(newRect.height);\n }\n }\n finally {\n this._control.update(false);\n }\n }\n }));\n }\n _getX() {\n if (this.rtlLayout() && this._container) {\n return this._container.rect().width - this._x() - this._width();\n }\n else {\n return this._x();\n }\n }\n _setX(value, width) {\n width = width || this._width();\n if (this.rtlLayout() && this._container) {\n this._x(this._container.rect().width - value - width);\n }\n else {\n this._x(value);\n }\n }\n getRoot() {\n return this._context;\n }\n preInitProperties(control, context, unitProperties) { }\n container() {\n return this['parent'];\n }\n beforeRectUpdated(rect) {\n rect.left = rect.left < 0 ? 0 : rect.left;\n rect.top = rect.top < 0 ? 0 : rect.top;\n return rect;\n }\n rtlLayout() {\n return !!ko.unwrap(this._context.rtl);\n }\n getControlModel() {\n return this._control;\n }\n}\nexport class SurfaceElementBase extends SurfaceElementArea {\n constructor(control, context, unitProperties) {\n super(control, context, unitProperties);\n this._countSelectedChildren = ko.observable(0);\n this.focused = ko.observable(false);\n this.selected = ko.observable(false);\n this.underCursor = ko.observable(new HoverInfo());\n this.allowMultiselect = true;\n this.absolutePosition = new Point(0, 0);\n this.getControlModel = () => {\n return control;\n };\n this.cssCalculator = new CssCalculator(control, context.rtl);\n if (this._getChildrenHolderName() && control[this._getChildrenHolderName()]) {\n var collection = ko.observableArray();\n if (this._getChildrenHolderName() === 'controls') {\n this._disposables.push(createObservableReverseArrayMapCollection(control[this._getChildrenHolderName()], collection, this._createSurface));\n }\n else {\n this._disposables.push(createObservableArrayMapCollection(control[this._getChildrenHolderName()], collection, this._createSurface));\n }\n this[this._getChildrenHolderName()] = collection;\n this._disposables.push(this.isSelected = ko.pureComputed(() => {\n if (!(this.focused() || this.selected())) {\n return collection().some((item) => {\n return item.isSelected();\n });\n }\n return true;\n }));\n }\n else {\n this._disposables.push(this.isSelected = ko.pureComputed(() => {\n return this.focused() || this.selected();\n }));\n }\n this._disposables.push(this.css = ko.pureComputed(() => {\n return extend({}, this.cssCalculator.fontCss(), this.cssCalculator.foreColorCss(), this.cssCalculator.backGroundCss(), this.cssCalculator.textAlignmentCss());\n }));\n this._disposables.push(this.contentCss = ko.pureComputed(() => {\n return extend({}, this.cssCalculator.fontCss(), this.cssCalculator.foreColorCss(), this.cssCalculator.textAlignmentCss(), this.cssCalculator.angle(), this.cssCalculator.wordWrapCss(), this.cssCalculator.paddingsCss());\n }));\n this._disposables.push(ko.computed(() => {\n this.updateAbsolutePosition();\n }));\n this._disposables.push(this.absoluteRect = ko.pureComputed(() => {\n var controlRect = this.rect(), absolutePositionY = this.absolutePosition.y(), absolutePositionX = this.absolutePosition.x();\n return { top: absolutePositionY, left: absolutePositionX, right: absolutePositionX + controlRect.width, bottom: absolutePositionY + controlRect.height, width: controlRect.width, height: controlRect.height };\n }));\n this.locked = control['lockedInUserDesigner'] ? control['lockedInUserDesigner']() : false;\n }\n _getParent() {\n return this.getControlModel().parentModel() && this.getControlModel().parentModel().surface;\n }\n get parent() {\n return this._getParent();\n }\n checkParent(surfaceParent) {\n return this.parent === surfaceParent;\n }\n _getChildrenHolderName() { return 'controls'; }\n getChildrenCollection() {\n return this._getChildrenHolderName() && this[this._getChildrenHolderName()] || ko.observableArray([]);\n }\n updateAbsolutePosition() {\n if (this.parent && this.parent.absolutePosition) {\n var parentX = this.parent.absolutePosition.x(), parentY = this.parent.absolutePosition.y(), newX = parentX + this.rect().left, newY = parentY + this.rect().top;\n this.absolutePosition.x(newX);\n this.absolutePosition.y(newY);\n }\n else {\n this.absolutePosition.x(0);\n this.absolutePosition.y(0);\n }\n this.afterUpdateAbsolutePosition();\n }\n canDrop() { return !this.locked && this._control.getMetaData().isContainer; }\n afterUpdateAbsolutePosition() {\n }\n findNextSelection() {\n var parentSurface = this.parent;\n var targetSurface = parentSurface;\n if (parentSurface) {\n var childrenCollection = parentSurface.getChildrenCollection()();\n var indexInCollection = childrenCollection.indexOf(this);\n if (indexInCollection === -1 && childrenCollection.length > 0) {\n targetSurface = childrenCollection[childrenCollection.length - 1];\n }\n else if (childrenCollection.length > 1 && indexInCollection === childrenCollection.length - 1) {\n targetSurface = childrenCollection[indexInCollection - 1];\n }\n else if (childrenCollection.length > 1 && indexInCollection === 0) {\n targetSurface = childrenCollection[childrenCollection.length - 1];\n }\n else if (childrenCollection.length > 1) {\n targetSurface = childrenCollection[childrenCollection.length - 1];\n }\n else if (indexInCollection === -1 && targetSurface.parent && targetSurface.parent.getChildrenCollection()().indexOf(targetSurface) === -1) {\n targetSurface = targetSurface.findNextSelection();\n }\n }\n return targetSurface;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\elements\\elementViewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { ModelSerializer } from '../../serializer/serializer';\nimport { Disposable } from '../../serializer/utils';\nimport { compareObjects, copyObservables } from '../utils/_utils';\nexport class ElementViewModel extends Disposable {\n constructor(model, parent, serializer) {\n super();\n this.actions = [];\n this.actionProviders = [];\n this.update = ko.observable(false);\n this.controlType = this.controlType || this.getControlFactory().getControlType(model);\n this.preInitProperties(model, parent, serializer);\n this.parentModel = ko.observable(parent);\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n this._disposables.push(this['displayName'] = ko.pureComputed(() => {\n var result = this.name && this.name();\n if (!result) {\n result = 'unnamed ' + this.controlType;\n }\n return result;\n }));\n this.resetValue = (propertyName) => {\n this._resetProperty(propertyName);\n };\n this.actions.push({\n action: this.resetValue,\n id: 'dxd-reset',\n title: getLocalization('Reset', 'AnalyticsCoreStringId.PropertyGrid_PopupMenu_Reset'), visible: this.isResettableProperty,\n weight: 1000\n });\n }\n _resetProperty(propertyName) {\n if (this[propertyName].resetValue) {\n this[propertyName].resetValue();\n }\n else {\n var defaultValue = this.getPropertyDefaultValue(propertyName);\n if (ko.isObservable(this[propertyName])) {\n this[propertyName](defaultValue);\n }\n else {\n copyObservables(defaultValue, this[propertyName]);\n }\n }\n }\n getPropertyDefaultValue(propertyName) {\n var info = this.getPropertyInfo(propertyName);\n return ko.unwrap(info && new ModelSerializer().deserializeDefaultValue(info));\n }\n getPropertyInfo(propertyName) {\n return this.getInfo().filter((info) => { return info.propertyName === propertyName; })[0];\n }\n getInfo() {\n return this.getControlFactory().controlsMap[this.controlType].info;\n }\n createControl(model, serializer) {\n return this.getControlFactory().createControl(model, this, serializer);\n }\n dispose() {\n super.dispose();\n this.surface && this.surface.dispose();\n }\n preInitProperties(model, parent, serializer) { }\n getNearestParent(target) {\n return target.getMetaData().isContainer ? target : target.getNearestParent(target.parentModel());\n }\n getControlInfo() {\n return this.getControlFactory().controlsMap[this.controlType || 'Unknown'];\n }\n getMetaData() {\n var controlType = this.controlType ? this.controlType : 'Unknown', data = this.getControlFactory().controlsMap[controlType];\n return {\n isContainer: data.isContainer || false,\n isCopyDeny: data.isCopyDeny || false,\n isDeleteDeny: data.isDeleteDeny || false,\n canDrop: data.canDrop || (() => true),\n isPasteDeny: data.isPasteDeny || !data.isContainer\n };\n }\n _hasModifiedValue(name) {\n return this['_' + name] && this['_' + name]() && this.isPropertyModified(name);\n }\n createChild(info) {\n var newControl = this.getControlFactory().createControl(info, this);\n this.addChild(newControl);\n return newControl;\n }\n removeChilds(controls) {\n if (this['controls']) {\n var childs = this['controls']();\n for (var i = 0; i < controls.length; i++) {\n childs.splice(childs.indexOf(controls[i]), 1);\n }\n this['controls'].valueHasMutated();\n }\n }\n addChilds(controls) {\n if (this['controls']) {\n var childs = this['controls']();\n for (var i = 0; i < controls.length; i++) {\n childs.splice(0, 0, controls[i]);\n }\n this['controls'].valueHasMutated();\n }\n }\n removeChild(control) {\n if (this['controls']) {\n this['controls'].splice(this['controls']().indexOf(control), 1);\n control.onDelete();\n }\n }\n addChild(control) {\n if (this['controls'] && this['controls']().indexOf(control) === -1) {\n control.parentModel(this);\n this['controls'].splice(0, 0, control);\n }\n }\n isPropertyVisible(name) {\n return true;\n }\n isPropertyDisabled(name) {\n return false;\n }\n isPropertyModified(name) {\n var needName = this['_' + name] ? '_' + name : name;\n if (this[needName].isPropertyModified) {\n return this[needName].isPropertyModified();\n }\n else if (this[needName].isEmpty) {\n return !this[needName].isEmpty();\n }\n else {\n var defaultValue = this.getPropertyDefaultValue(name), propertyValue = ko.unwrap(this[needName]);\n if (defaultValue instanceof Object) {\n return !compareObjects(defaultValue, propertyValue);\n }\n else {\n return defaultValue !== propertyValue;\n }\n }\n }\n getControlFactory() {\n throw Error('Virtual method getControlFactory');\n }\n isResettableProperty(propertyName) {\n return ['name', 'size', 'location'].indexOf(propertyName) === -1;\n }\n _getRoot() {\n var root = this;\n while (root && root.parentModel()) {\n root = root.parentModel();\n }\n return root;\n }\n get root() {\n return this._getRoot();\n }\n rtl() {\n return false;\n }\n onDelete() { }\n}\n","/**\r\n* DevExpress Analytics (core\\elements\\margins.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { paddingSerializationsInfo } from './paddingModelMetaData';\nexport class Margins {\n constructor(left, right, top, bottom) {\n this.bottom = ko.observable(bottom);\n this.left = ko.observable(left);\n this.right = ko.observable(right);\n this.top = ko.observable(top);\n }\n getInfo() {\n return paddingSerializationsInfo;\n }\n isEmpty() {\n return this.toString() === Margins.defaultVal;\n }\n static fromString(value = Margins.defaultVal) {\n var components = value.split(',');\n return new Margins(parseFloat(components[0]), parseFloat(components[1]), parseFloat(components[2]), parseFloat(components[3]));\n }\n toString() {\n var result = this.left() + ', ' + this.right() + ', ' + this.top() + ', ' + this.bottom();\n return result;\n }\n}\nMargins.defaultVal = '100, 100, 100, 100';\nMargins.unitProperties = ['left', 'right'];\n","/**\r\n* DevExpress Analytics (core\\elements\\paddingModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { paddingSerializationsInfo } from './paddingModelMetaData';\nexport class PaddingModel extends Disposable {\n constructor(left = ko.observable(null), right = ko.observable(null), top = ko.observable(null), bottom = ko.observable(null), dpi = ko.observable(100)) {\n super();\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n this.dpi = dpi;\n ['left', 'right', 'top', 'bottom'].forEach((propertyName) => {\n this['_' + propertyName] = ko.observable(this[propertyName]());\n this._disposables.push(this[propertyName] = ko.computed({\n read: () => {\n return this['_' + propertyName]() || 0;\n },\n write: (newVal) => {\n this['_' + propertyName](newVal);\n }\n }));\n });\n var isUpdating = ko.observable(false);\n var oldValue = null;\n this._disposables.push(this.all = ko.computed({\n read: () => {\n if (isUpdating())\n return oldValue;\n if (['right', 'top', 'bottom'].every(propertyName => this[propertyName]() === this.left()))\n oldValue = this.left();\n else\n oldValue = null;\n return oldValue;\n },\n write: (newVal) => {\n isUpdating(true);\n ['left', 'right', 'top', 'bottom'].forEach((propertyName) => this[propertyName](newVal));\n isUpdating(false);\n }\n }));\n }\n getInfo() {\n return paddingSerializationsInfo;\n }\n resetValue() {\n ['left', 'right', 'top', 'bottom'].forEach(name => this['_' + name](null));\n }\n isEmpty() {\n return ['left', 'right', 'top', 'bottom'].map(x => ko.unwrap(this['_' + x])).every(x => x === null);\n }\n applyFromString(value) {\n if (value) {\n var components = (value || '').split(',');\n this.left(parseInt(components[0]) || 0);\n this.right(parseInt(components[1]) || 0);\n this.top(parseInt(components[2]) || 0);\n this.bottom(parseInt(components[3]) || 0);\n }\n return this;\n }\n static from(val) {\n return new PaddingModel().applyFromString(val);\n }\n toString() {\n if (this.isEmpty())\n return;\n return this._toString();\n }\n _toString(inner = false) {\n return ['left', 'right', 'top', 'bottom'].map(x => parseInt(ko.unwrap(this[x]))).concat(this.dpi()).join(', ');\n }\n}\nPaddingModel.defaultVal = '0, 0, 0, 0, 100';\nPaddingModel.unitProperties = ['left', 'right', 'top', 'bottom'];\n","/**\r\n* DevExpress Analytics (core\\elements\\paddingModelMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nexport var left = {\n propertyName: 'left', modelName: '@Left', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Left', displayName: 'Left', editor: editorTemplates.getEditor('numeric')\n}, right = { propertyName: 'right', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Right', modelName: '@Right', displayName: 'Right', editor: editorTemplates.getEditor('numeric') }, top = { propertyName: 'top', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Top', modelName: '@Top', displayName: 'Top', editor: editorTemplates.getEditor('numeric') }, bottom = { propertyName: 'bottom', localizationId: 'AnalyticsCoreStringId.PaddingInfo.Bottom', modelName: '@Bottom', displayName: 'Bottom', editor: editorTemplates.getEditor('numeric') }, all = { propertyName: 'all', localizationId: 'AnalyticsCoreStringId.PaddingInfo.All', displayName: 'All', editor: editorTemplates.getEditor('numeric') };\nexport var paddingSerializationsInfo = [all, left, right, top, bottom];\n","/**\r\n* DevExpress Analytics (core\\elements\\point.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { locationFake } from '../_metadata';\nexport class Point {\n constructor(x, y) {\n this.x = ko.observable(x).extend({ 'dxdnum': {} });\n this.y = ko.observable(y).extend({ 'dxdnum': {} });\n }\n getInfo() {\n return locationFake;\n }\n static fromString(value = '0, 0') {\n var components = value.split(',');\n return new Point(parseFloat(components[0]), parseFloat(components[1]));\n }\n toString() {\n return this.x() + ', ' + this.y();\n }\n}\nPoint.unitProperties = ['x', 'y'];\n","/**\r\n* DevExpress Analytics (core\\elements\\rectangle.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class Rectangle {\n constructor(left = 0, top = 0, width = 0, height = 0) {\n this.left = ko.observable(0);\n this.top = ko.observable(0);\n this.width = ko.observable(0);\n this.height = ko.observable(0);\n this.className = 'dxrd-drag-helper-item';\n this.left(left);\n this.top(top);\n this.width(width);\n this.height(height);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\elements\\size.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { sizeFake } from '../_metadata';\nexport class Size {\n constructor(width, height) {\n this.isPropertyDisabled = (name) => void 0;\n this.height = ko.observable(height).extend({ 'dxdnum': { min: 2 } });\n this.width = ko.observable(width).extend({ 'dxdnum': { min: 2 } });\n }\n getInfo() {\n return sizeFake;\n }\n static fromString(value = '0, 0') {\n var components = value.split(',');\n return new Size(parseFloat(components[0]), parseFloat(components[1]));\n }\n toString() {\n return this.width() + ', ' + this.height();\n }\n}\nSize.unitProperties = ['width', 'height'];\n","/**\r\n* DevExpress Analytics (core\\internal\\_ajaxRequestManager.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { extend } from '../../serializer/_utils';\nexport class AjaxRequestManager {\n constructor(ajaxSttingsFn) {\n this.getAjaxSettings = ajaxSttingsFn;\n }\n sendRequest(settings) {\n var requestSettings = this._prepareRequestSettings(settings);\n return $.ajax(requestSettings);\n }\n _prepareRequestSettings(settings) {\n return extend({}, this.getAjaxSettings(), settings);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_controlsHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { getUniqueNameForNamedObjectsArray } from './_getNameHelpers';\nimport { collectionsVisitor } from '../utils/_visitors';\nexport class DesignControlsHelper extends Disposable {\n constructor(target, handlers, collectionNames) {\n super();\n this.target = target;\n this.collectionNames = collectionNames;\n this._handlers = [];\n this._setText = false;\n this._visitedCollections = [];\n this._subscriptions = [];\n this.added = (value) => {\n this._setText = true;\n this._collectControls(value);\n this._setText = false;\n };\n this.deleted = (value) => {\n var allControls = this.allControls();\n var index = allControls.indexOf(value);\n allControls.splice(index, 1);\n collectionsVisitor(value, (collection) => {\n collection().forEach((item) => {\n allControls.splice(allControls.indexOf(item), 1);\n });\n });\n this.allControls.valueHasMutated();\n };\n this.allControls = ko.observableArray();\n var unwrappedTarget = target;\n if (ko.isSubscribable(target)) {\n this._disposables.push(target.subscribe((newTarget) => {\n this._visitedCollections = [];\n for (var i = 0, len = this._subscriptions.length; i < len; i++) {\n this._subscriptions[i].dispose();\n }\n this._subscriptions = [];\n this.allControls([]);\n if (newTarget) {\n this._collectControls(newTarget);\n }\n }));\n unwrappedTarget = target.peek();\n }\n this._disposables.push(this.allControls.subscribe((args) => {\n var addedItems = args.filter(x => x.status === 'added');\n for (var i = 0; i < addedItems.length; i++) {\n this._setName(addedItems[i].value);\n }\n }, null, 'arrayChange'));\n unwrappedTarget && this._collectControls(unwrappedTarget);\n this._handlers.push.apply(this._handlers, handlers);\n }\n getNameProperty(model) {\n return model.name;\n }\n getControlByName(name) {\n var control = null;\n this.allControls().some(x => {\n if (ko.unwrap(x.name) == name) {\n control = x;\n return true;\n }\n return false;\n });\n return control;\n }\n _setName(value) {\n var names = this.allControls().map((item) => { return ko.unwrap(this.getNameProperty(item)); });\n if (!this.getNameProperty(value)() || names.filter((x) => { return x === this.getNameProperty(value)(); }).length > 1) {\n var newName = getUniqueNameForNamedObjectsArray(this.allControls(), this._getNamePrefix(value), names);\n this.getNameProperty(value)(newName);\n this._setText && this._setDefaultText(value);\n }\n }\n _setDefaultText(value) {\n var initialText = value.getControlInfo && value.getControlInfo().defaultVal && value.getControlInfo().defaultVal['@Text'];\n if (this._setText && value['text'] && !value['text']() && (initialText === null || initialText === undefined)) {\n value['text'](this.getNameProperty(value)());\n }\n }\n _getNamePrefix(value) {\n var controlType = value.controlType || 'Unknown';\n return controlType.split('.').pop();\n }\n dispose() {\n super.dispose();\n this._subscriptions.forEach(subscription => subscription.dispose());\n this._subscriptions.splice(0);\n this._visitedCollections.splice(0);\n this._handlers.splice(0);\n this.target = null;\n this.allControls([]);\n }\n processCollection(collection) { }\n _collectControls(target) {\n var array = [target];\n collectionsVisitor(target, (collection, owner) => {\n if (this._visitedCollections.indexOf(collection) === -1) {\n this._visitedCollections.push(collection);\n var subscriptionsArray = this._subscriptions;\n if (owner instanceof Disposable) {\n subscriptionsArray = owner._disposables;\n }\n var subscription = collection.subscribe((args) => {\n args.forEach((changeSet) => {\n if (changeSet.moved != undefined)\n return;\n this[changeSet.status] && this[changeSet.status](changeSet.value);\n this._handlers.forEach((handler) => {\n handler[changeSet.status] && handler[changeSet.status](changeSet.value);\n });\n });\n }, null, 'arrayChange');\n subscriptionsArray.push({\n dispose: () => {\n subscription.dispose();\n subscription = null;\n this._visitedCollections.splice(this._visitedCollections.indexOf(collection), 1);\n }\n });\n }\n this.processCollection(collection());\n array.push.apply(array, collection());\n }, this.collectionNames);\n this.allControls.push.apply(this.allControls, array);\n }\n getControls(target) {\n var controls = ko.observableArray();\n collectionsVisitor(target, (collection) => {\n controls.push.apply(controls, collection());\n });\n return controls;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_cssCalculator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { unitsToPixel } from '../utils/_units';\nimport { PaddingModel } from '../elements/paddingModel';\nimport { extend } from '../../serializer/_utils';\nexport function patchPositionByRTL(position, rtl) {\n if (rtl) {\n if (position === 'Left')\n return 'Right';\n else if (position === 'Right')\n return 'Left';\n }\n return position;\n}\nexport class CssCalculator {\n constructor(control, _rtlLayout) {\n this._rtlLayout = _rtlLayout;\n this._control = control;\n this.borderCss = (zoom) => {\n var borderWidth = this._getBorderWidth(control, zoom);\n var borderDefault = control['borderDefault'] && control['borderDefault']();\n var borderColor = control['borderColor'] && control['borderColor']() || '';\n var borders = control['borders'] && control['borders']() || '';\n var borderStyle = control['borderDashStyle'] && control['borderDashStyle']() || '';\n return borderDefault ? this.createBorders(borderStyle, borderWidth, borderColor, borders, borderDefault) :\n this.createBorders(borderStyle, borderWidth, borderColor, borders);\n };\n this.backGroundCss = () => {\n return { backgroundColor: control['backColor'] && control['backColor']() || 'transparent' };\n };\n this.foreColorCss = () => {\n var color = (control['foreColor'] && control['foreColor']() || 'transparent') === 'transparent' ? 'black' : control['foreColor']();\n return { color: color };\n };\n this.fontCss = () => {\n return this.createFont(control['font'] && control['font']() || '');\n };\n this.wordWrapCss = () => {\n return this.createWordWrap(ko.unwrap(control['wordWrap']), ko.unwrap(control['multiline']));\n };\n this.paddingsCss = () => {\n var controlPaddings = ko.unwrap(control['paddingObj'] || control['padding']) || PaddingModel.from(PaddingModel.defaultVal);\n var paddings = {\n paddingLeft: this._getPixelValueFromUnit(controlPaddings.left(), control) + 'px',\n paddingTop: this._getPixelValueFromUnit(controlPaddings.top(), control) + 'px',\n paddingRight: this._getPixelValueFromUnit(controlPaddings.right(), control) + 'px',\n paddingBottom: this._getPixelValueFromUnit(controlPaddings.bottom(), control) + 'px'\n };\n return paddings;\n };\n this.textAlignmentCss = () => {\n var align = control['textAlignment'] && control['textAlignment']() || '';\n return extend(this.createVerticalAlignment(align), this.createHorizontalAlignment(align));\n };\n this.stroke = () => {\n var color = (control['foreColor'] && control['foreColor']() || 'transparent') === 'transparent' ? 'black' : control['foreColor']();\n return { 'stroke': color };\n };\n this.strokeWidth = () => {\n var lineWidth = control['lineWidth'] && control['lineWidth']() || '';\n return { 'strokeWidth': lineWidth };\n };\n this.strokeWidthWithWidth = () => {\n var lineWidth = control['width'] && control['width']() || '';\n return { 'strokeWidth': lineWidth };\n };\n this.strokeDashArray = () => {\n var dashArray = this.createStrokeDashArray(control['lineStyle'] && control['lineStyle']() || '', control['lineWidth'] && control['lineWidth']() || '');\n return { 'strokeDasharray': dashArray };\n };\n this.strokeDashArrayWithWidth = () => {\n var dashArray = this.createStrokeDashArray(control['lineStyle'] && control['lineStyle']() || '', control['width'] && control['width']() || '');\n return { 'strokeDasharray': dashArray };\n };\n this.crossBandBorder = (position) => {\n return this.createBorder(control['borderDashStyleCrossband'] && control['borderDashStyleCrossband']() || 'solid', this._getBorderWidth(control), control['borderColor'] && control['borderColor']() || '', control['borders'] && control['borders']() || '', position);\n };\n this.angle = () => {\n return this.createAngle(control['angle'] && control['angle']() || 0);\n };\n this.cellBorder = (position, zoom) => {\n return this.createControlBorder(control['borderDashStyle'] && control['borderDashStyle']() || 'solid', this._getBorderWidth(control, zoom), control['borderColor'] && control['borderColor']() || '', control['borders'] && control['borders']() || '', position);\n };\n this.zipCodeFontCss = (fontSize) => {\n return this.createZipCodeFont(fontSize || control['size']['height']());\n };\n this.zipCodeAlignment = () => {\n var align = 'TopLeft';\n return extend(this.createVerticalAlignment(align), this.createHorizontalAlignment(align));\n };\n }\n _getPixelValueFromUnit(value, control) {\n if (control['root'] && control['root'].measureUnit) {\n return unitsToPixel(value, control['root'].measureUnit());\n }\n return value;\n }\n _patchPosition(position) {\n return patchPositionByRTL(position, this._rtlLayout());\n }\n _getBorderWidth(control, zoom) {\n return control['borderWidth'] && typeof (control['borderWidth']()) == 'number' ? Math.floor(control['borderWidth']() * (zoom || 1)) : '';\n }\n createBorder(dashStyle, width, color, positions, position) {\n var line = {};\n positions = positions || 'All';\n line = { stroke: 'Silver', strokeWidth: 2 };\n var dash = this.createStrokeDashArray(dashStyle, width);\n if (positions.indexOf(position) !== -1 || positions.indexOf('All') !== -1) {\n line['stroke'] = color;\n line['strokeWidth'] = width;\n line['strokeDasharray'] = dash;\n }\n return line;\n }\n createControlBorder(borderStyle, width, color, positions, position, defaultColor = 'solid 1px Silver') {\n var border = {};\n positions = positions || '';\n if (borderStyle === 'Dash') {\n borderStyle = 'dashed';\n }\n else if (borderStyle === 'Dot') {\n borderStyle = 'dotted';\n }\n else if (borderStyle === 'Double') {\n borderStyle = 'double';\n }\n else {\n borderStyle = 'solid';\n }\n if (positions.indexOf(position) !== -1 || positions.indexOf('All') !== -1) {\n border['border' + this._patchPosition(position)] = borderStyle + ' ' + width + 'px ' + color;\n }\n else {\n border['border' + this._patchPosition(position)] = defaultColor;\n }\n return border;\n }\n createBorders(borderStyle, width, color, positions, defaultColor = CssCalculator.DEFAULT_BORDER) {\n var left = this.createControlBorder(borderStyle, width, color, positions, 'Left', defaultColor);\n var right = this.createControlBorder(borderStyle, width, color, positions, 'Right', defaultColor);\n var top = this.createControlBorder(borderStyle, width, color, positions, 'Top', defaultColor);\n var bottom = this.createControlBorder(borderStyle, width, color, positions, 'Bottom', defaultColor);\n var border = extend({}, left, right, top, bottom);\n return border;\n }\n createZipCodeFont(height) {\n var fontStyles = {};\n fontStyles['fontFamily'] = 'Impact';\n fontStyles['fontSize'] = height + 'px';\n return fontStyles;\n }\n createFont(fontString) {\n var fontStyles = {};\n fontString = fontString || '';\n var components = fontString.split(',');\n fontStyles['fontFamily'] = components[0] ? '\"' + components[0] + '\"' : '';\n fontStyles['fontSize'] = components[1];\n if (components.length > 2) {\n for (var i = 2; i < components.length; i++) {\n if (components[i].indexOf('Bold') !== -1)\n fontStyles['fontWeight'] = 'Bold';\n if (components[i].indexOf('Italic') !== -1)\n fontStyles['fontStyle'] = 'Italic';\n if (components[i].indexOf('Underline') != -1)\n fontStyles['textDecoration'] = 'Underline';\n if (components[i].indexOf('Strikeout') != -1)\n fontStyles['textDecoration'] = (fontStyles['textDecoration'] ? fontStyles['textDecoration'] + ' ' : '') + 'Line-through';\n }\n }\n if (!fontStyles['fontWeight']) {\n fontStyles['fontWeight'] = '';\n }\n if (!fontStyles['fontStyle']) {\n fontStyles['fontStyle'] = '';\n }\n if (!fontStyles['textDecoration']) {\n fontStyles['textDecoration'] = '';\n }\n return fontStyles;\n }\n createVerticalAlignment(alignment) {\n var result = {};\n if (alignment.indexOf('Top') !== -1) {\n result['verticalAlign'] = 'top';\n }\n if (alignment.indexOf('Middle') !== -1) {\n result['verticalAlign'] = 'middle';\n }\n if (alignment.indexOf('Bottom') !== -1) {\n result['verticalAlign'] = 'bottom';\n }\n return result;\n }\n createHorizontalAlignment(alignment) {\n var result = {};\n if (alignment.indexOf('Left') !== -1) {\n result['textAlign'] = patchPositionByRTL('Left', this._control.rtl()).toLowerCase();\n }\n if (alignment.indexOf('Right') !== -1) {\n result['textAlign'] = patchPositionByRTL('Right', this._control.rtl()).toLowerCase();\n }\n if (alignment.indexOf('Center') !== -1) {\n result['textAlign'] = 'center';\n }\n if (alignment.indexOf('Justify') !== -1) {\n result['textAlign'] = 'justify';\n }\n return result;\n }\n createStrokeDashArray(style, width) {\n if (style === 'Solid') {\n return '';\n }\n else if (style === 'Dot') {\n return [width, width * 2].join('px, ') + 'px';\n }\n else if (style === 'Dash') {\n return [width * 4, width * 4].join('px, ') + 'px';\n }\n else if (style === 'DashDot') {\n return [width * 4, width * 2, width, width * 2].join('px, ') + 'px';\n }\n else if (style === 'DashDotDot') {\n return [width * 4, width * 2, width, width * 2, width, width * 2].join('px, ') + 'px';\n }\n else {\n return '';\n }\n }\n createWordWrap(wordwrap, multiline) {\n var result = {};\n if (wordwrap === false && multiline === false) {\n result['white-space'] = 'nowrap';\n result['word-wrap'] = 'normal';\n }\n else if (wordwrap === true && multiline === false) {\n result['word-wrap'] = 'break-word';\n result['white-space'] = '';\n }\n else if (wordwrap === false && multiline === true) {\n result['word-wrap'] = 'normal';\n result['white-space'] = 'pre';\n }\n else if (wordwrap === true && multiline === true) {\n result['white-space'] = 'pre-wrap';\n result['word-wrap'] = 'break-word';\n }\n return result;\n }\n createAngle(angle) {\n angle = -angle;\n return {\n '-webkit-transform': 'rotate(' + angle + 'deg)',\n '-moz-transform': 'rotate(' + angle + 'deg)',\n '-o-transform': 'rotate(' + angle + 'deg)',\n '-ms-transform': 'rotate(' + angle + 'deg)',\n 'transform': 'rotate(' + angle + 'deg)'\n };\n }\n contentSizeCss(controlSurfaceWidth, controlSurfaceHeight, zoom, borders, paddings) {\n var result = { top: 1, left: 1, right: 1, bottom: 1, width: 1, height: 1 };\n borders = borders || this._control['borders'] && this._control['borders']() || '';\n var borderWidth = this._getBorderWidth(this._control, zoom);\n ['Left', 'Top', 'Right', 'Bottom'].forEach((item) => {\n var value = 0;\n if (borderWidth != '' && (borders.indexOf(item) !== -1 || borders.indexOf('All') !== -1)) {\n value += borderWidth;\n }\n if (paddings) {\n value += this._getPixelValueFromUnit(ko.unwrap(paddings[item.toLowerCase()]), this._control) * (zoom || 1);\n }\n if (value)\n result[this._patchPosition(item).toLowerCase()] = value;\n });\n result.width = controlSurfaceWidth - result.left - result.right;\n result.height = controlSurfaceHeight - result.top - result.bottom;\n return result;\n }\n}\nCssCalculator.DEFAULT_BORDER = 'none';\n","/**\r\n* DevExpress Analytics (core\\internal\\_draggable.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '../../serializer/utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './../internal/_utils';\nimport { Resizable } from './_resizable';\nexport class Draggable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this._bodyEvents = { move: null, up: null };\n this._windowEvents = { up: null };\n this._originalDragStartCoordinates = null;\n this._originalElementPosition = null;\n this._dragInitialized = false;\n this._scrollableContainer = null;\n this._draggableElementClass = 'ui-draggable';\n this._minDragDistance = 1;\n var mousedown = event => this._mouseDown(event);\n this._addClassToElement(this._draggableElementClass);\n this._element.addEventListener('mousedown', mousedown);\n this._disposables.push({\n dispose: () => {\n this._element.removeEventListener('mousedown', mousedown);\n mousedown = null;\n this._element = null;\n this._options = null;\n }\n });\n }\n _initScrollContainer() {\n var containment = this._options.containment;\n if (containment && containment[0].classList.contains('dxrd-ghost-container')) {\n this._scrollableContainer = containment.find('.dx-scrollable-container')[0];\n }\n }\n _initDrag(event) {\n this._startRect = {\n left: event.pageX,\n top: event.pageY\n };\n this._bodyEvents.move = event => this._mouseMove(event);\n this._windowEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n window.addEventListener('mouseup', this._windowEvents.up);\n this._initScrollContainer();\n }\n _addClassToElement(className) {\n this._element.classList.add(className);\n }\n _calculateElementPosition(dragDeltaLeft, dragDeltaTop) {\n var _a, _b;\n var left = this._originalElementPosition.left - dragDeltaLeft - (((_a = this._scrollableContainer) === null || _a === void 0 ? void 0 : _a.scrollLeft) || 0);\n var top = this._originalElementPosition.top - dragDeltaTop - (((_b = this._scrollableContainer) === null || _b === void 0 ? void 0 : _b.scrollTop) || 0);\n var boundary = this._options.boundary;\n if (boundary) {\n left = left < boundary.left ? boundary.left : left > boundary.right ? boundary.right : left;\n top = top < boundary.top ? boundary.top : top > boundary.bottom ? boundary.bottom : top;\n }\n return { left, top };\n }\n _mouseMove(event) {\n if (Resizable.inProcess || !this._startRect)\n return;\n const leftButtonPressed = event.which === 1;\n if (!leftButtonPressed || !this.shouldStartDrag(event))\n return;\n if (!this._dragInitialized) {\n this._dragInitialized = true;\n this._options.helper && (this._ghostContainer = this._options.helper(event, this._element));\n if (this._ghostContainer)\n this._element.ghostContainer = this._ghostContainer[0];\n this._originalDragStartCoordinates = { left: this._element.dataset.startDragWithOffset ? event.pageX : this._startRect.left, top: this._element.dataset.startDragWithOffset ? event.pageY : this._startRect.top };\n this._originalElementPosition = { left: this._ghostContainer ? convertFromCssPixelUnits(this._ghostContainer[0].dataset.startLeftPosition) : event.pageX, top: this._ghostContainer ? convertFromCssPixelUnits(this._ghostContainer[0].dataset.startTopPosition) : event.pageY };\n this._element.dataset.leftPosition = convertToCssPixelUnits(this._originalElementPosition.left);\n this._element.dataset.topPosition = convertToCssPixelUnits(this._originalElementPosition.top);\n this._options.start(event, this._element);\n }\n var dragDeltaLeft = this._originalDragStartCoordinates.left - event.pageX;\n var dragDeltaTop = this._originalDragStartCoordinates.top - event.pageY;\n const position = this._calculateElementPosition(dragDeltaLeft, dragDeltaTop);\n this._element.dataset.leftPosition = convertToCssPixelUnits(position.left);\n this._element.dataset.topPosition = convertToCssPixelUnits(position.top);\n if (this._ghostContainer) {\n this._ghostContainer[0].style.left = this._element.dataset.leftPosition;\n this._ghostContainer[0].style.top = this._element.dataset.topPosition;\n }\n this._options.drag(event, this._element);\n }\n shouldStartDrag(event) {\n return Math.abs(this._startRect.left - event.pageX) >= this._minDragDistance || Math.abs(this._startRect.top - event.pageY) >= this._minDragDistance;\n }\n _mouseUp(event) {\n if (Resizable.inProcess)\n return;\n Draggable.inProcess = false;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._windowEvents.up && window.removeEventListener('mouseup', this._windowEvents.up);\n if (this._dragInitialized) {\n this._dragInitialized = false;\n this._ghostContainer && this._ghostContainer.remove();\n this._ghostContainer = null;\n this._scrollableContainer = null;\n this._options.stop(event, this._element);\n }\n this._startRect = null;\n }\n _mouseDown(event) {\n event.stopPropagation();\n if (Resizable.inProcess)\n return;\n Draggable.inProcess = true;\n this._initDrag(event);\n }\n}\nDraggable.inProcess = false;\n","/**\r\n* DevExpress Analytics (core\\internal\\_editorTypeMapper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nexport const ExpressionType = 'DevExpress.DataAccess.Expression';\nexport function IsDataAccessExpression(type) {\n return type === ExpressionType;\n}\nexport var editorTypeMapper = {\n 'Enum': editorTemplates.getEditor('combobox'),\n 'System.String': editorTemplates.getEditor('text'),\n 'System.Guid': editorTemplates.getEditor('guid'),\n 'System.SByte': editorTemplates.getEditor('sbyte'),\n 'System.Decimal': editorTemplates.getEditor('decimal'),\n 'System.Int64': editorTemplates.getEditor('int64'),\n 'System.Int32': editorTemplates.getEditor('int32'),\n 'System.Int16': editorTemplates.getEditor('int16'),\n 'System.Single': editorTemplates.getEditor('single'),\n 'System.Double': editorTemplates.getEditor('double'),\n 'System.Byte': editorTemplates.getEditor('byte'),\n 'System.UInt16': editorTemplates.getEditor('uint16'),\n 'System.UInt32': editorTemplates.getEditor('uint32'),\n 'System.UInt64': editorTemplates.getEditor('uint64'),\n 'System.Boolean': editorTemplates.getEditor('boolSelect'),\n 'System.DateTime': editorTemplates.getEditor('date'),\n 'DevExpress.DataAccess.Expression': editorTemplates.getEditor('expressionEditor')\n};\nexport function getEditorType(typeString) {\n return editorTypeMapper[typeString] || editorTemplates.getEditor('text');\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_fetchRequestManager.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport * as $ from 'jquery';\nexport class FetchRequestManager {\n constructor(fetchSettingsFn) {\n this._executeRequest = (method, url, body, params, abortControler) => {\n const success = 'success';\n const responseDeferred = $.Deferred();\n const response = this._fetch(method, url, body, params, abortControler);\n response.then((response) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n const contentType = (_a = response.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.split(';')[0];\n let statusText = '';\n if (contentType === 'application/json') {\n try {\n const json = yield response.json();\n if (response.ok) {\n statusText = success;\n responseDeferred.resolve(json, statusText, Object.assign(Object.assign({}, responseDeferred.promise()), { responseJSON: json }));\n }\n else {\n statusText = json.statusText;\n responseDeferred.reject(Object.assign(Object.assign({}, responseDeferred.promise()), { responseJSON: json, statusText, status: response.status }), statusText);\n }\n }\n catch (error) {\n responseDeferred.reject(Object.assign(Object.assign({}, responseDeferred.promise()), { statusText: error.message, status: response.status }), error.message, error);\n throw error;\n }\n }\n else if (contentType) {\n responseDeferred.resolve({\n result: response,\n success: true\n });\n }\n else {\n responseDeferred.reject(response);\n }\n }));\n response.catch((error) => {\n responseDeferred.reject({ error: error, statusText: error.message, status: 0 }, error.message, error);\n });\n return responseDeferred.promise();\n };\n this._fetch = (method, url, body, params, abortControler) => {\n const settings = {\n method,\n cache: params === null || params === void 0 ? void 0 : params.cache,\n headers: params === null || params === void 0 ? void 0 : params.headers,\n body,\n signal: abortControler === null || abortControler === void 0 ? void 0 : abortControler.signal\n };\n const fetchSettings = this.getFetchSettings();\n fetchSettings && fetchSettings.beforeSend && fetchSettings.beforeSend(settings);\n return fetch(url, settings);\n };\n this.getFetchSettings = fetchSettingsFn || (() => ({}));\n }\n sendRequest(settings) {\n const { method, preparedUrl, body, params } = this._prepareParams(settings);\n return this._executeRequest(method, preparedUrl, body, params, settings.abortController);\n }\n _prepareParams(settings) {\n var _a;\n const GET = 'GET';\n const POST = 'POST';\n const method = settings.type;\n const data = settings.data;\n let preparedUrl = settings.url;\n let body = null;\n let cache = 'default';\n const queryParams = $.param(data);\n if (queryParams) {\n if (settings.type === GET) {\n preparedUrl += `?${queryParams}`;\n }\n else if (settings.type === POST) {\n body = new URLSearchParams(queryParams);\n }\n }\n const params = {\n cache,\n headers: Object.assign(Object.assign({}, settings.headers), (_a = this.getFetchSettings()) === null || _a === void 0 ? void 0 : _a.headers)\n };\n return { method, preparedUrl, body, params };\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_getNameHelpers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport function getTypeNameFromFullName(controlType) {\n return controlType.split(',')[0].trim();\n}\nexport function getShortTypeName(controlType) {\n var fullTypeName = getTypeNameFromFullName(controlType), typeNameParts = fullTypeName.split('.');\n return typeNameParts[typeNameParts.length - 1];\n}\nexport function getControlTypeName(value) {\n var controlType = value.displayType && value.displayType() || value.controlType;\n if (value.getControlFactory) {\n var info = value.getControlFactory().getControlInfo(controlType);\n if (info.displayName)\n controlType = info.displayName;\n }\n return controlType && getLocalization(getShortTypeName(controlType));\n}\nexport function getControlFullName(value) {\n if (!value)\n return '';\n var displayName = ko.unwrap(value.name) || ko.unwrap(value.displayName), controlType = getControlTypeName(value);\n return displayName + (controlType ? (' (' + controlType + ')') : '');\n}\nexport function getImageClassName(controlType, isTemplate = false) {\n var controlType = getTypeNameFromFullName(controlType || '').split('.').join('_'), name;\n if (controlType.indexOf('XR') === 0) {\n name = controlType.slice(2).toLowerCase();\n }\n else if (controlType === 'DevExpress_XtraReports_UI_XtraReport') {\n name = 'master_report';\n }\n return (isTemplate ? 'dxrd-svg-toolbox-' : 'dxrd-image-') + (name ? name : controlType.toLowerCase());\n}\nexport function getUniqueNameForNamedObjectsArray(objects, prefix, names) {\n if (prefix.indexOf('XR') === 0) {\n prefix = prefix[2].toLowerCase() + prefix.slice(3);\n }\n else {\n var indexBand = prefix.indexOf('Band');\n if (indexBand !== -1 && prefix !== 'SubBand') {\n prefix = prefix.slice(0, indexBand) + prefix.slice(indexBand + 4);\n }\n }\n return getUniqueName(names || objects.map((item) => { return ko.unwrap(item.name); }), prefix);\n}\nexport function getUniqueName(names, prefix, inculdeFirst = true) {\n var i = inculdeFirst ? 1 : 0, result = inculdeFirst ? (prefix + i) : prefix;\n while (names.filter((item) => { return item === result; }).length > 0) {\n i++;\n result = prefix + i;\n }\n return result;\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_hoverInfo.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class HoverInfo {\n constructor() {\n this._x = 0;\n this._y = 0;\n this.isOver = false;\n }\n get x() {\n return this._x;\n }\n set x(newX) {\n this._x = newX;\n }\n get y() {\n return this._y;\n }\n set y(newY) {\n this._y = newY;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_inlineTextEdit.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardEnum } from '../../property-grid/widgets/internal/_utils';\nexport function processTextEditorHotKeys(event, delegates) {\n if (!event || !delegates)\n return;\n if (event.key === KeyboardEnum.Esc && !!delegates['esc']) {\n delegates['esc']();\n }\n if (event.key === KeyboardEnum.Enter && event.ctrlKey && !!delegates['ctrlEnter']) {\n delegates['ctrlEnter']();\n }\n}\nexport class InlineTextEdit extends Disposable {\n constructor(selection) {\n super();\n this._showInline = ko.observable(false);\n this.text = ko.observable();\n var _controlText;\n this._disposables.push(selection.focused.subscribe(() => {\n if (this._showInline() && _controlText) {\n _controlText(this.text());\n this._showInline(false);\n }\n var controlModel = selection.focused() && selection.focused().getControlModel();\n _controlText = controlModel && (controlModel.textEditableProperty || controlModel.text || controlModel.alias);\n }));\n this._disposables.push(this.visible = ko.pureComputed({\n read: () => {\n return this._showInline();\n },\n write: (val) => {\n this._showInline(val);\n }\n }));\n this.show = (element) => {\n if (this._showInline()) {\n return;\n }\n var isSingleControlSelected = !!selection.selectedItems ? selection.selectedItems.length === 1 : !!selection.focused();\n if (isSingleControlSelected && _controlText && !selection.focused().locked) {\n this.text(_controlText());\n this._showInline(true);\n if (element) {\n var textarea = $.fn.constructor(element).find('textarea')[0];\n textarea && textarea['select']();\n }\n }\n else {\n this._showInline(false);\n }\n };\n this.keypressAction = (args) => {\n processTextEditorHotKeys(args.event, {\n esc: () => { this._showInline(false); },\n ctrlEnter: () => {\n _controlText(this.text());\n this._showInline(false);\n }\n });\n };\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_processError.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getErrorMessage, NotifyAboutWarning } from '../utils/_infoMessageHelpers';\nexport var _addErrorPrefix = true;\nexport function _processError(errorThrown, deferred, jqXHR, textStatus, processErrorCallback) {\n var message = errorThrown;\n var error = getErrorMessage(jqXHR);\n if (error && error !== message) {\n if (!_addErrorPrefix)\n message = error;\n else\n message += ': ' + error;\n }\n try {\n processErrorCallback ? processErrorCallback(message, jqXHR, textStatus) : NotifyAboutWarning(message);\n }\n finally {\n deferred.reject(jqXHR, textStatus, errorThrown);\n }\n}\nexport var _errorProcessor = {\n handlers: [],\n call: (e) => {\n for (var i = 0; i < _errorProcessor.handlers.length; i++) {\n _errorProcessor.handlers[i](e);\n }\n }\n};\nexport function processErrorEvent(func) {\n if (func) {\n _errorProcessor.handlers.push(func);\n }\n return {\n dispose: () => {\n func && _removeErrorEvent(func);\n }\n };\n}\nfunction _removeErrorEvent(func) {\n _errorProcessor.handlers.splice(_errorProcessor.handlers.indexOf(func), 1);\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_resizable.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { convertFromCssPixelUnits, convertToCssPixelUnits } from './_utils';\nexport class Resizable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this.handleClass = 'ui-resizable-handle';\n this.handleClassSelector = `.${this.handleClass}`;\n this.resizableElementClass = 'ui-resizable';\n this._defaultMinSize = 1;\n this._bodyEvents = {\n move: null,\n up: null\n };\n this._resizeDirection = null;\n this._resizeHandles = ['w', 'e', 's', 'n', 'se', 'sw', 'ne', 'nw'];\n }\n _initResize(event) {\n this._startResizeMousePosition = {\n left: event.pageX,\n top: event.pageY\n };\n this._resizeDirection = getResizeDirection(event.target.classList);\n this._addClassToElement('ui-resizable-resizing');\n var bounds = this._element.getBoundingClientRect();\n var $el = $.fn.constructor(this._element);\n this._element.dataset.originalLeftPosition = $el.css('left');\n this._element.dataset.originalTopPosition = $el.css('top');\n this._element.dataset.originalWidth = convertToCssPixelUnits(bounds.width);\n this._element.dataset.originalHeight = convertToCssPixelUnits(bounds.height);\n this._element.dataset.originalLeftMousePosition = convertToCssPixelUnits(event.pageX);\n this._element.dataset.originalTopMousePosition = convertToCssPixelUnits(event.pageY);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n _mouseMove(event) {\n const leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n const boundsDiff = this._getBoundsDiff(event);\n this._options.resize(event, this._element, boundsDiff);\n }\n }\n _mouseUp(event) {\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._options.stop();\n Resizable.inProcess = false;\n this._removeClassFromElement('ui-resizable-resizing');\n this._startResizeMousePosition = null;\n this._resizeDirection = null;\n }\n _mouseDown(event) {\n Resizable.inProcess = true;\n this._initResize(event);\n this._options.start(event, this._element);\n }\n _initResizeHandle(className, handleResizeEvent) {\n const handleDiv = document.createElement('div');\n handleDiv.classList.add(this.handleClass);\n handleDiv.style.zIndex = '95';\n handleDiv.classList.add(className);\n handleDiv.addEventListener('mousedown', handleResizeEvent);\n this._element.append(handleDiv);\n }\n _addClassToElement(className) {\n this._element.classList.add(className);\n }\n _removeClassFromElement(className) {\n this._element.classList.remove(className);\n }\n _getBoundsDiff(event) {\n let diffWidth = 0;\n let diffHeight = 0;\n let leftDiff = 0;\n let topDiff = 0;\n const originalHeight = convertFromCssPixelUnits(this._element.dataset.originalHeight);\n const originalWidth = convertFromCssPixelUnits(this._element.dataset.originalWidth);\n const updateHeightFunc = (resizeFromTop) => {\n const minHeight = this._element.style.minHeight ? convertFromCssPixelUnits(this._element.style.minHeight) : this._defaultMinSize;\n const resizeDistance = (this._startResizeMousePosition.top - event.pageY) * (resizeFromTop ? 1 : -1);\n const newHeightIsLessThanMinHeight = minHeight > originalHeight + resizeDistance;\n if (newHeightIsLessThanMinHeight) {\n var respectedDiff = originalHeight - minHeight;\n if (resizeFromTop)\n topDiff = respectedDiff;\n diffHeight = -respectedDiff;\n return;\n }\n diffHeight = resizeDistance;\n if (resizeFromTop) {\n topDiff = -diffHeight;\n }\n };\n const updateWidthFunc = (resizeFromLeft) => {\n const minWidth = this._element.style.minWidth ? convertFromCssPixelUnits(this._element.style.minWidth) : this._defaultMinSize;\n const resizeDistance = (this._startResizeMousePosition.left - event.pageX) * (resizeFromLeft ? 1 : -1);\n const newWidthIsLessThanMinWidth = minWidth > originalWidth + resizeDistance;\n if (newWidthIsLessThanMinWidth) {\n var respectedDiff = originalWidth - minWidth;\n if (resizeFromLeft)\n leftDiff = respectedDiff;\n diffWidth = -respectedDiff;\n return;\n }\n diffWidth = resizeDistance;\n if (resizeFromLeft) {\n leftDiff = -diffWidth;\n }\n };\n const updateHeight = this._resizeDirection && /sw|se|nw|ne|s|n/.test(this._resizeDirection);\n const updateWidth = this._resizeDirection && /sw|se|nw|ne|e|w/.test(this._resizeDirection);\n if (updateHeight)\n updateHeightFunc(/nw|ne|n/.test(this._resizeDirection));\n if (updateWidth)\n updateWidthFunc(/sw|nw|w/.test(this._resizeDirection));\n const boundsDiff = {\n width: diffWidth,\n height: diffHeight,\n left: leftDiff,\n top: topDiff\n };\n return boundsDiff;\n }\n initialize() {\n var mousedown = event => this._mouseDown(event);\n var addElementHandles = (handles) => {\n if (!handles)\n return;\n this._addClassToElement(this.resizableElementClass);\n $.fn.constructor(this._element).children(this.handleClassSelector).remove();\n const elementResizeHandles = handles === 'all' ? this._resizeHandles : handles.split(',');\n elementResizeHandles.forEach(handle => {\n this._initResizeHandle(`ui-resizable-${handle}`, mousedown);\n });\n };\n addElementHandles(ko.unwrap(this._options.handles));\n if (ko.isSubscribable(this._options.handles)) {\n var subscribe = this._options.handles.subscribe((newHandles) => {\n this._removeClassFromElement(this.resizableElementClass);\n var oldElementHandles = this._element.querySelectorAll(this.handleClassSelector);\n oldElementHandles.forEach(handle => handle.removeEventListener('mousedown', mousedown));\n $.fn.constructor(this._element).children(this.handleClassSelector).remove();\n addElementHandles(newHandles);\n });\n this._disposables.push(subscribe);\n }\n this._disposables.push({\n dispose: () => {\n addElementHandles = null;\n var elementHandles = this._element.querySelectorAll(this.handleClass);\n elementHandles.forEach(handle => handle.removeEventListener('mousedown', mousedown));\n this._element.removeEventListener('mousedown', mousedown);\n mousedown = null;\n this._element = null;\n this._options = null;\n }\n });\n return this;\n }\n}\nResizable.inProcess = false;\nexport function getResizeDirection(currentClassList) {\n for (var i = 0; i < currentClassList.length; i++) {\n if (currentClassList[i] !== 'ui-resizable-handle' && currentClassList[i].indexOf('ui-resizable-') === 0)\n return currentClassList[i].slice('ui-resizable-'.length, currentClassList[i].length);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_scrollProcessor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport { Disposable } from '../../serializer/utils';\nexport class dxScrollProcessor extends Disposable {\n constructor(_container, _updateTime = 10) {\n super();\n this._container = _container;\n this._updateTime = _updateTime;\n this._currentOffsetY = 0;\n this._currentOffsetX = 0;\n this._scroll = null;\n this._updateInterval = null;\n this._scroll = dxScrollView.getInstance(this._container);\n }\n dispose() {\n this._scroll = null;\n this._container = null;\n this._updateInterval && clearTimeout(this._updateInterval);\n this._updateInterval = null;\n }\n _startUpdateScrollPosition() {\n this._updateInterval && clearInterval(this._updateInterval);\n this._updateInterval = setInterval(() => this._scroll.scrollTo({\n top: this._scroll.scrollTop() + this._currentOffsetY,\n left: this._scroll.scrollLeft() + this._currentOffsetX\n }), this._updateTime);\n }\n _calculateOffset(screenPosition, containerRect, offsetProperty) {\n var sizeProperty = offsetProperty === 'y' ? 'height' : 'width';\n if (screenPosition[offsetProperty] > (containerRect[offsetProperty] + containerRect[sizeProperty] - 50)) {\n return 5;\n }\n else if (screenPosition[offsetProperty] < (containerRect[offsetProperty] + 50)) {\n return -5;\n }\n return 0;\n }\n getScrollOffset() {\n return this._scroll.scrollOffset();\n }\n processOffset(screenPosition) {\n var containerRect = this._container.getBoundingClientRect();\n this._currentOffsetY = this._calculateOffset(screenPosition, containerRect, 'y');\n this._currentOffsetX = this._calculateOffset(screenPosition, containerRect, 'x');\n if (!this._currentOffsetX && !this._currentOffsetY) {\n this._updateInterval && clearInterval(this._updateInterval);\n this._updateInterval = null;\n }\n else if (!this._updateInterval) {\n this._startUpdateScrollPosition();\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_stores.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport ArrayStore from 'devextreme/data/array_store';\nimport CustomStore from 'devextreme/data/custom_store';\nimport DataSource from 'devextreme/data/data_source';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class CustomSortedArrayStore extends CustomStore {\n static _sortItems(items, sortPropertyName) {\n return items.sort((a, b) => {\n var propA = ko.unwrap(a[sortPropertyName]), propB = ko.unwrap(b[sortPropertyName]);\n if (propA && propB) {\n var diff = propA - propB;\n if (!isNaN(diff))\n return diff;\n propA = propA.toLowerCase ? propA.toLowerCase() : propA;\n propB = propB.toLowerCase ? propB.toLowerCase() : propB;\n return (propA < propB) ? -1 : (propA > propB) ? 1 : 0;\n }\n });\n }\n static _createOptions(items, sortPropertyName) {\n items = this._sortItems(items, sortPropertyName);\n return {\n load: (options) => {\n var result = [].concat(items);\n if (options.take)\n result = result.splice(options.skip, options.take);\n return $.Deferred().resolve(result).promise();\n },\n byKey: (key) => {\n if (items.some(x => x === key))\n return key;\n }\n };\n }\n constructor(items, sortPropertyName = 'name') {\n super(CustomSortedArrayStore._createOptions(items, sortPropertyName));\n }\n}\nexport class SortedArrayStore extends ArrayStore {\n constructor(options, sortPropertyName = 'name') {\n if (options instanceof Array) {\n CustomSortedArrayStore._sortItems(options, sortPropertyName);\n }\n super(options);\n }\n}\nexport class ControlsStore extends Disposable {\n constructor(allControls) {\n super();\n this._filter = ko.observable(null);\n var dataSource = null;\n this._disposables.push(this.dataSource = ko.computed(() => {\n dataSource && dataSource.dispose();\n var items = this._filter() ? allControls().filter(this._filter()) : allControls();\n dataSource = new DataSource({\n store: new CustomSortedArrayStore(items),\n paginate: true,\n pageSize: 100\n });\n return dataSource;\n }));\n this._disposables.push(this.visible = ko.computed(() => {\n return allControls().length > 0;\n }));\n }\n getFilter() {\n return this._filter();\n }\n setFilter(filter) {\n this._filter(filter);\n }\n resetFilter() {\n this._filter(null);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_surfaceHelpers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nexport function findSurface(viewModel) {\n return !!viewModel ? viewModel['surface'] : null;\n}\nexport function getControlNewAbsolutePositionOnResize(snapHelper, absolutePosition, ui, delta) {\n var newAbsolutePosition = {\n top: absolutePosition.top + delta.y,\n left: absolutePosition.left + delta.x,\n bottom: absolutePosition.top + ui.originalSize.height,\n right: absolutePosition.left + ui.originalSize.width\n };\n if (delta.x !== 0) {\n newAbsolutePosition.left = snapHelper.snapPosition(newAbsolutePosition.left, false);\n }\n else if (delta.width !== 0) {\n newAbsolutePosition.right = snapHelper.snapPosition(absolutePosition.left + ui.size.width, false);\n }\n if (delta.y !== 0) {\n newAbsolutePosition.top = snapHelper.snapPosition(newAbsolutePosition.top, true);\n }\n else if (delta.height !== 0) {\n newAbsolutePosition.bottom = snapHelper.snapPosition(absolutePosition.top + ui.size.height, true);\n }\n return newAbsolutePosition;\n}\nfunction num(v) {\n return parseInt(v, 10) || 0;\n}\nexport function getControlRect(element, control, surface) {\n var curleft = num(element.css('left')), curtop = num(element.css('top'));\n if (surface.rtl()) {\n var posLeft = surface.pageWidth() - surface.margins.left() - element.width();\n if (curleft > posLeft) {\n curleft = posLeft;\n }\n }\n var bounds = element[0].getBoundingClientRect();\n return { top: curtop, left: curleft, width: bounds.width, height: bounds.height };\n}\nexport function minHeightWithoutScroll(element) {\n return Math.min(element.scrollHeight, element.offsetHeight, element.clientHeight) + element.offsetTop;\n}\nexport function chooseBetterPositionOf(html, designer) {\n return designer && (minHeightWithoutScroll(html) < minHeightWithoutScroll(designer) ? window : designer) || window;\n}\nexport function updateSurfaceContentSize(surfaceSize, root, rtl = false) {\n return () => {\n var $root = $.fn.constructor(root).find('.dxrd-designer').eq(0);\n var toolboxWidth = $root.find('.dxrd-toolbox-wrapper:visible').outerWidth() || 0;\n var rightAreaWidth = ($root.find('.dxrd-right-panel:visible').outerWidth() || 0) + ($root.find('.dxrd-right-tabs:visible').outerWidth() || 0);\n var otherWidth = rightAreaWidth + toolboxWidth, surfaceWidth = $root.width() - (otherWidth);\n $root.find('.dxrd-surface-wrapper').eq(0).css({\n 'left': rtl ? rightAreaWidth : toolboxWidth,\n 'right': !rtl ? rightAreaWidth : toolboxWidth,\n 'width': surfaceWidth,\n 'bottom': $root.find('.dxrd-navigation-panel-wrapper:visible').outerHeight() || 0\n });\n surfaceSize(surfaceWidth);\n };\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ToolboxItem } from '../tools/toolbox';\nexport function getToolboxItems(controlsMap, defaultGroup = '') {\n var toolboxItems = [];\n Object.keys(controlsMap).forEach((controlType) => {\n if (!controlsMap[controlType].nonToolboxItem) {\n var item = {\n '@ControlType': controlType,\n displayName: controlsMap[controlType].displayName,\n index: controlsMap[controlType].toolboxIndex || 0,\n canDrop: controlsMap[controlType].canDrop,\n group: controlsMap[controlType].group || defaultGroup\n };\n if (controlsMap[controlType].size) {\n item['size'] = controlsMap[controlType].size;\n }\n if (controlsMap[controlType].defaultVal) {\n Object.keys(controlsMap[controlType].defaultVal).forEach((name) => {\n item[name] = controlsMap[controlType].defaultVal[name];\n });\n }\n toolboxItems.push(new ToolboxItem(item));\n }\n });\n return toolboxItems.sort((item1, item2) => { return item1.index - item2.index; });\n}\nexport function blur(element) {\n try {\n element['blur'] && element['blur']();\n }\n catch (e) {\n document.body.blur();\n }\n}\nexport const convertToCssPixelUnits = (value) => `${value}px`;\nexport const convertFromCssPixelUnits = (value) => parseFloat(value.replace('px', ''));\nexport function isDefined(object) {\n return null !== object && void 0 !== object && Object.keys(object).length > 0;\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\_validation.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nconst restrictedNames = ['Name', 'Version'];\nexport function validateName(nameCandidate) {\n if (!nameCandidate)\n return false;\n var letter = '\\\\u0041-\\\\u005A\\\\u0061-\\\\u007A\\\\u00AA\\\\u00B5\\\\u00BA\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376-\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E-\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5-\\\\u06E6\\\\u06EE-\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F-\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC-\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0-\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F-\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32-\\\\u0A33\\\\u0A35-\\\\u0A36\\\\u0A38-\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2-\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0-\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F-\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32-\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C-\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99-\\\\u0B9A\\\\u0B9C\\\\u0B9E-\\\\u0B9F\\\\u0BA3-\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0-\\\\u0CE1\\\\u0CF1-\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32-\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81-\\\\u0E82\\\\u0E84\\\\u0E87-\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA-\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2-\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065-\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16F1-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE-\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5-\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2183-\\\\u2184\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3006\\\\u3031-\\\\u3035\\\\u303B-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A-\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6E5\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AD\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5-\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40-\\\\uFB41\\\\uFB43-\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC';\n var pattern = new RegExp('^[' + letter + '_][' + letter + '_\\\\d]*$');\n return pattern.test(nameCandidate) && restrictedNames.every(name => nameCandidate != name);\n}\nexport function replaceInvalidSymbols(text) {\n return text.replace(/[\\W_]+/g, '_');\n}\nexport var nameValidationRules = [\n {\n type: 'custom',\n validationCallback: (options) => { return validateName(options.value); },\n get message() {\n return getLocalization('Name is required and should be a valid identifier.', 'AnalyticsCoreStringId.NameIsRequired_Error');\n }\n }\n];\n","/**\r\n* DevExpress Analytics (core\\internal\\ajaxSetup.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from 'jquery';\nimport { _isFetchConfigured, requestManager } from './requestManager';\nexport var ajaxSetup = {\n ajaxSettings: {},\n sendRequest: function (settings) {\n if (!_isFetchConfigured())\n return requestManager.getInstance().sendRequest(extend({}, this.ajaxSettings, settings));\n const errorMessage = 'The request manager is currently configured as Fetch. Use either ajaxSetup or fetchSetup for configuration, but not both.';\n throw new Error(errorMessage);\n }\n};\n","/**\r\n* DevExpress Analytics (core\\internal\\dx-versions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as devextremeVersion from 'devextreme/core/version';\nimport { version as clientVersions } from '../../analytics-version';\nexport var dxversions = {\n analytics: clientVersions,\n devextreme: devextremeVersion.version || devextremeVersion\n};\n","/**\r\n* DevExpress Analytics (analytics-version.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport const version = '23.1.4';\n","/**\r\n* DevExpress Analytics (core\\internal\\fetchSetup.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var fetchSetup = {\n fetchSettings: {}\n};\n","/**\r\n* DevExpress Analytics (core\\internal\\requestManager.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AjaxRequestManager } from './_ajaxRequestManager';\nimport { FetchRequestManager } from './_fetchRequestManager';\nimport { isDefined } from './_utils';\nvar _requestManagerInstance = null;\nexport var requestManager = {\n getInstance: function (requestManagerSetup) {\n if (!_requestManagerInstance) {\n this.initialize(requestManagerSetup);\n }\n return _requestManagerInstance;\n },\n _initialize: function (requestManagerInstance) {\n _requestManagerInstance = requestManagerInstance;\n },\n initialize: function (requestManagerSetup) {\n const { ajaxSetup, fetchSetup } = requestManagerSetup !== null && requestManagerSetup !== void 0 ? requestManagerSetup : {};\n if (isDefined(ajaxSetup === null || ajaxSetup === void 0 ? void 0 : ajaxSetup.ajaxSettings) && isDefined(fetchSetup === null || fetchSetup === void 0 ? void 0 : fetchSetup.fetchSettings)) {\n throw new Error('You cannot configure more than one type of request manager. Use either ajaxSetup or fetchSetup for configuration, but not both.');\n }\n if (isDefined(ajaxSetup === null || ajaxSetup === void 0 ? void 0 : ajaxSetup.ajaxSettings)) {\n _requestManagerInstance = new AjaxRequestManager(() => ajaxSetup.ajaxSettings);\n return;\n }\n _requestManagerInstance = new FetchRequestManager(() => fetchSetup === null || fetchSetup === void 0 ? void 0 : fetchSetup.fetchSettings);\n }\n};\nexport function _isFetchConfigured() {\n return _requestManagerInstance instanceof FetchRequestManager;\n}\n","/**\r\n* DevExpress Analytics (core\\internal\\selectable.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport dxPopup from 'devextreme/ui/popup';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { DragDropHandler } from '../dragDrop/_dragDropHandler';\nimport { Draggable } from './_draggable';\nimport { Resizable } from './_resizable';\nfunction rectIntersection(r1, r2) {\n return !(r2.left > r1.right ||\n r2.right < r1.left ||\n r2.top > r1.bottom ||\n r2.bottom < r1.top);\n}\nexport class SelectableElement extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this.isSelected = false;\n this.bounds = _element.getBoundingClientRect();\n this._disposables.push({\n dispose: () => {\n this._element = null;\n this._options = null;\n this.bounds = null;\n }\n });\n }\n updateSelection(currentRect, event) {\n var isSelected = rectIntersection(this.bounds, currentRect);\n if (isSelected != this.isSelected) {\n isSelected ? this._options.selecting(event, this._element) : this._options.unselecting(event, this._element);\n this.isSelected = isSelected;\n }\n }\n}\nexport class Selectable extends Disposable {\n constructor(_element, _options) {\n super();\n this._element = _element;\n this._options = _options;\n this._elements = [];\n this._bodyEvents = {\n move: null,\n up: null\n };\n this._minSelectDistance = 2;\n var mousemove = event => this._mouseMove(event);\n var mouseup = event => this._mouseUp(event);\n var mousedown = event => this._mouseDown(event);\n this._element.addEventListener('mousemove', mousemove);\n this._element.addEventListener('mouseup', mouseup);\n this._element.addEventListener('mousedown', mousedown);\n this._$window = $.fn.constructor(window);\n this._disposables.push({\n dispose: () => {\n this._element.removeEventListener('mousemove', mousemove);\n this._element.removeEventListener('mouseup', mouseup);\n this._element.removeEventListener('mousedown', mousedown);\n mousemove = null;\n mouseup = null;\n mousedown = null;\n this._$window = null;\n this._element = null;\n this._options = null;\n }\n });\n }\n _clearElements() {\n this._elements.forEach(x => x.dispose());\n this._elements = [];\n }\n _collectElements() {\n this._clearElements();\n var elements = document.getElementsByClassName(this._options.filter.substr(1));\n for (var i = 0; i < elements.length; i++) {\n this._elements.push(new SelectableElement(elements[i], this._options));\n }\n }\n _updateSelectionContent(event) {\n if (this._startRect.left >= event.pageX) {\n this._$selectionContent.css('left', event.pageX);\n this._$selectionContent.css('right', this._startRect.right);\n }\n else {\n this._$selectionContent.css('left', this._startRect.left);\n this._$selectionContent.css('right', this._$window.width() - event.pageX);\n }\n if (this._startRect.top >= event.pageY) {\n this._$selectionContent.css('top', event.pageY);\n this._$selectionContent.css('bottom', this._startRect.bottom);\n }\n else {\n this._$selectionContent.css('top', this._startRect.top);\n this._$selectionContent.css('bottom', this._$window.height() - event.pageY);\n }\n const currentRect = this._$selectionContent[0].getBoundingClientRect();\n for (var i = 0; i < this._elements.length; i++) {\n this._elements[i].updateSelection(currentRect, event);\n }\n }\n _initStartRect(event) {\n this._startRect = {\n left: event.pageX,\n top: event.pageY,\n right: this._$window.width() - event.pageX,\n bottom: this._$window.height() - event.pageY\n };\n }\n _mouseMove(event) {\n setTimeout(() => {\n if (DragDropHandler.started() || Selectable.disabled || Resizable.inProcess || !this._startRect)\n return;\n var leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n if (!this._$selectionContent) {\n if (this.shouldStartSelect(event)) {\n this._options.start(event);\n Selectable.inProcess = true;\n this._$selectionContent = $.fn.constructor('
').appendTo(document.body);\n this._$selectionContent.addClass('dxrd-selection-content ui-selectable-helper');\n if (dxPopup.prototype['_zIndexInitValue'])\n this._$selectionContent.css('z-index', dxPopup.prototype['_zIndexInitValue']() + 100);\n this._updateSelectionContent(event);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n }\n else {\n this._updateSelectionContent(event);\n }\n }\n }, 1);\n }\n shouldStartSelect(event) {\n return Math.abs(this._startRect.left - event.pageX) >= this._minSelectDistance || Math.abs(this._startRect.top - event.pageY) >= this._minSelectDistance;\n }\n _mouseUp(event) {\n if (Selectable.disabled || Resizable.inProcess || Draggable.inProcess)\n return;\n this._options.stop();\n this._$selectionContent && this._$selectionContent.remove();\n this._$selectionContent = null;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._startRect = null;\n this._clearElements();\n Selectable.inProcess = false;\n }\n _mouseDown(event) {\n if (Selectable.disabled || Resizable.inProcess || Draggable.inProcess)\n return;\n this._initStartRect(event);\n this._collectElements();\n }\n}\nSelectable.inProcess = false;\nSelectable.disabled = false;\n","/**\r\n* DevExpress Analytics (core\\selection\\_combinedObj.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { extend, isEmptyObject } from '../../serializer/_utils';\nexport class CombinedObject {\n static getInfo(controls) {\n var infos = controls.map((item) => { return item['getInfo'](); });\n return () => {\n var info = [];\n for (var i = 0; i < infos[0].length; i++) {\n if (infos.filter((info) => { return info.filter((x) => { return x.propertyName === infos[0][i].propertyName; }).length > 0; }).length === infos.length) {\n info.push(infos[0][i]);\n }\n }\n return info;\n };\n }\n static isPropertyDisabled(controls) {\n return (name) => {\n for (var i = 0; i < controls.length; i++) {\n if (controls[i]['isPropertyDisabled'](name)) {\n return true;\n }\n }\n return false;\n };\n }\n static getPath(controls) {\n return (name) => {\n var result = '';\n for (var i = 0; i < controls.length; i++) {\n var currentPath = controls[i].getPath(name);\n if (i === 0) {\n result = currentPath;\n }\n else if (result !== currentPath) {\n result = '';\n break;\n }\n }\n return result;\n };\n }\n static isPropertyVisible(controls) {\n return (name) => {\n for (var i = 0; i < controls.length; i++) {\n if (!controls[i]['isPropertyVisible'](name)) {\n return false;\n }\n }\n return true;\n };\n }\n static mergeProperty(controls, propertyName, undoEngine, customMerge) {\n var property = controls[0][propertyName];\n var combinedObj = null;\n var subscriptions = null;\n if (controls.filter(x => !!x[propertyName]).length === controls.length) {\n combinedObj = customMerge && customMerge(propertyName, controls, undoEngine);\n if (!combinedObj) {\n if (ko.isObservable(property) && !property['push']) {\n if (!controls.every(control => ko.isObservable(control[propertyName])))\n return combinedObj;\n var combinedObservable = ko.observable(controls.every((control) => { return controls[0][propertyName].peek() === control[propertyName].peek(); }) ? controls[0][propertyName].peek() : null);\n combinedObj = {\n result: combinedObservable,\n subscriptions: [combinedObservable.subscribe((newVal) => {\n undoEngine && undoEngine().start();\n controls.forEach(control => { control[propertyName](newVal); });\n undoEngine && undoEngine().end();\n })]\n };\n }\n else if (typeof property === 'object' && !$.isArray(property)) {\n combinedObj = this._merge(controls.map(x => x[propertyName]), undoEngine, customMerge);\n }\n }\n }\n return combinedObj;\n }\n static _createProperty(result, propertyName, propertyValue) {\n if (propertyValue) {\n if (typeof propertyValue === 'object' && isEmptyObject(propertyValue))\n return;\n result[propertyName] = propertyValue;\n }\n }\n static _merge(controls, undoEngine, customMerge, ignoreProperties) {\n var result = {};\n var subscriptions = [];\n ['getInfo', 'isPropertyVisible', 'isPropertyDisabled', 'getPath'].forEach((propertyName) => {\n if (controls[0][propertyName])\n this._createProperty(result, propertyName, this[propertyName](controls));\n });\n if (ignoreProperties) {\n var oldPropertyDisabled = result['isPropertyDisabled'];\n result['isPropertyDisabled'] = (name) => {\n return (oldPropertyDisabled && oldPropertyDisabled(name)) || ignoreProperties.indexOf(name) !== -1;\n };\n }\n if (result && result['getInfo']) {\n result['getInfo']().map(x => x.propertyName).forEach((propertyName) => {\n var combinedObj = this.mergeProperty(controls, propertyName, undoEngine, customMerge);\n if (combinedObj) {\n subscriptions = [].concat.apply(subscriptions, combinedObj.subscriptions);\n this._createProperty(result, propertyName, combinedObj.result);\n }\n });\n }\n else {\n Object.keys(controls[0]).forEach((propertyName) => {\n var combinedObj = this.mergeProperty(controls, propertyName, undoEngine, customMerge);\n if (combinedObj) {\n subscriptions = [].concat.apply(subscriptions, combinedObj.subscriptions);\n this._createProperty(result, propertyName, combinedObj.result);\n }\n });\n }\n return { result, subscriptions };\n }\n static mergeControls(controls, undoEngine, customMerge, ignoreProperties) {\n var combinedObj = this._merge(controls, undoEngine, customMerge, ignoreProperties);\n return {\n result: extend(combinedObj.result, { controlType: 'multiselect', displayName: ko.observable('') }),\n subscriptions: combinedObj.subscriptions\n };\n }\n static getEditableObject(selectionProvider, undoEngine, customMerge) {\n var editableObject = ko.observable(null);\n var subscriptions = [];\n var subscription = selectionProvider.focused.subscribe((newVal) => {\n editableObject(newVal && newVal.getControlModel());\n });\n if (selectionProvider._disposables) {\n selectionProvider._disposables.push(subscription);\n selectionProvider._disposables.push({\n dispose: () => {\n subscriptions.forEach(x => x.dispose());\n subscriptions.splice(0);\n }\n });\n }\n return ko.pureComputed({\n read: () => {\n subscriptions.forEach(x => x.dispose());\n subscriptions = [];\n if (selectionProvider.selectedItems.length > 1) {\n var combinedObj = this.mergeControls(selectionProvider.selectedItems.map((item) => { return item.getControlModel(); }), undoEngine, customMerge, selectionProvider.ignoreMultiSelectProperties);\n subscriptions = combinedObj.subscriptions;\n return combinedObj.result;\n }\n else {\n return editableObject();\n }\n },\n write: (val) => {\n if (val && val.surface) {\n selectionProvider.focused(val.surface);\n }\n else {\n selectionProvider.updateSelection(null);\n editableObject(val);\n }\n }\n }).extend({ deferred: true });\n }\n}\n","/**\r\n* DevExpress Analytics (core\\selection\\_selection.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { blur } from '../internal/_utils';\nexport class SurfaceSelection extends Disposable {\n constructor(ignoreMultiSelectProperties = ['name']) {\n super();\n this.ignoreMultiSelectProperties = ignoreMultiSelectProperties;\n this._focused = ko.observable(null);\n this._selectedControls = ko.observableArray();\n this._selectedControlsInner = [];\n this.focused = ko.pureComputed({\n read: () => {\n return this._focused();\n },\n write: (val) => {\n if (val !== this._focused()) {\n if (!!val) {\n this._firstSelected = val;\n }\n this.updateSelection(this._firstSelected);\n }\n }\n });\n this.dropTarget = null;\n this.expectClick = false;\n this.disabled = ko.observable(false);\n this._disposables.push(this.focused);\n }\n dispose() {\n this.reset();\n super.dispose();\n }\n _removeFromSelection(control) {\n control.focused(false);\n control.selected(false);\n if (this._selectedControlsInner.indexOf(control) !== -1) {\n this._selectedControlsInner.splice(this._selectedControlsInner.indexOf(control), 1);\n }\n }\n _setFocused(control) {\n if (this._focused()) {\n this._removeFromSelection(this._focused());\n }\n this._focused(control);\n if (control) {\n control.focused(true);\n if (this._selectedControlsInner.indexOf(control) === -1) {\n this._selectedControlsInner.push(control);\n }\n control.selected(true);\n }\n }\n _resetTabPanelFocus() {\n var isTabPanelFocused = document.activeElement && $.fn.constructor(document.activeElement).closest('.dxrd-surface').length === 0;\n if (isTabPanelFocused) {\n blur(document.activeElement);\n }\n }\n get selectedItems() {\n return this._selectedControls();\n }\n clear() {\n this.focused(null);\n this._selectedControls([]);\n }\n reset() {\n this._focused(null);\n this._selectedControlsInner.splice(0);\n this._firstSelected = null;\n this._selectedControls([]);\n }\n applySelection() {\n this._selectedControls(this._selectedControlsInner);\n }\n selectItems(items) {\n this._selectedControlsInner = items;\n this._selectedControlsInner.forEach((selectedControl) => {\n if (!selectedControl.focused()) {\n selectedControl.selected(true);\n }\n });\n this.applySelection();\n }\n updateSelection(control) {\n this._selectedControlsInner.forEach((selectedControl) => {\n selectedControl.focused(false);\n selectedControl.selected(false);\n });\n this._selectedControlsInner = [];\n this._setFocused(control);\n this.applySelection();\n }\n swapFocusedItem(control) {\n if (this._focused() !== control) {\n this._focused().focused(false);\n this._focused(control);\n this._focused().focused(true);\n }\n }\n initialize(control) {\n control = control || this.dropTarget;\n this._firstSelected = !!(control && control['focused']) ? control : null;\n this.updateSelection(this._firstSelected);\n }\n clickHandler(control, event = { ctrlKey: false, metaKey: false }) {\n if (this.expectClick) {\n this.expectClick = false;\n return;\n }\n control = control || this.dropTarget;\n if (!event.ctrlKey && !event.metaKey) {\n if (this._selectedControlsInner.length > 1 && this._selectedControlsInner.indexOf(control) !== -1) {\n this.swapFocusedItem(control);\n }\n else {\n if (this._focused() !== control) {\n this.initialize(control);\n }\n }\n }\n else {\n this.selectionWithCtrl(control);\n this.applySelection();\n }\n this._resetTabPanelFocus();\n }\n selecting(event) {\n if (!this._focused()) {\n this._setFocused(event.control);\n }\n else {\n event.cancel = !event.control.checkParent(this._firstSelected);\n if (!event.cancel) {\n if (this._firstSelected && this._firstSelected.focused()) {\n this._setFocused(event.control);\n }\n else if (this._selectedControlsInner.indexOf(event.control) === -1) {\n event.control.selected(true);\n this._selectedControlsInner.push(event.control);\n }\n }\n }\n }\n unselecting(control) {\n if (this._focused() === control) {\n this._setFocused(null);\n if (this._selectedControlsInner.length === 0) {\n this._setFocused(this._firstSelected);\n }\n else {\n this._setFocused(this._selectedControlsInner[0]);\n }\n }\n else {\n this._removeFromSelection(control);\n }\n }\n selectionWithCtrl(control) {\n if (control && control.allowMultiselect) {\n var selectedControls = this._selectedControlsInner;\n if (selectedControls.length === 0 || (selectedControls.length === 1 && (!selectedControls[0].allowMultiselect))) {\n this.initialize(control);\n }\n else {\n if (this._selectedControlsInner.indexOf(control) === -1) {\n control.selected(true);\n this._selectedControlsInner.push(control);\n }\n else {\n if (this._selectedControlsInner.length > 1) {\n this.unselecting(control);\n }\n }\n }\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\selection\\_selectionHelpers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { UndoEngine } from '../../undo-engine/undoengine';\nexport function deleteSelection(selection, selectedObject) {\n var focused = selection.focused();\n if (!selectedObject) {\n selectedObject = focused.getControlModel();\n selection.selectedItems.forEach((item) => {\n var itemModel = item.getControlModel(), parent = itemModel.parentModel();\n if (!item.getControlModel().getMetaData().isDeleteDeny && parent && item !== focused) {\n parent.removeChild(itemModel);\n }\n });\n }\n var undo = UndoEngine.tryGetUndoEngine(selectedObject.parentModel());\n undo && undo.start();\n selectedObject.parentModel().removeChild(selectedObject);\n undo && undo.end();\n selection.focused(focused.findNextSelection());\n}\n","/**\r\n* DevExpress Analytics (core\\snapLines\\_snapLineSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class SnapLineSurface {\n constructor() {\n this._position = ko.observable(SnapLineSurface._blankPosition);\n }\n transform() {\n var position = this._position();\n return 'matrix(' + position.width + ', 0, 0, ' + position.height + ', ' + position.left + ', ' + position.top + ')';\n }\n updatePosition(position) {\n this._position(position);\n }\n reset() {\n this.updatePosition(SnapLineSurface._blankPosition);\n }\n}\nSnapLineSurface._blankPosition = { top: 0, left: 0, width: 0, height: 0, };\n","/**\r\n* DevExpress Analytics (core\\snapLines\\_snapLinesCollector.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { binaryIndexOf } from '../utils/_arrayutils';\nexport class SnapLinesCollector {\n constructor() {\n this._verticalSnapLines = [];\n this._horizontalSnapLines = [];\n this._snapTargetToIgnore = null;\n }\n _appendSnapLine(position, limitInf, limitSup, snapLines) {\n var line = {\n position: position,\n limitInf: limitInf,\n limSup: limitSup\n };\n var index = binaryIndexOf(snapLines, line, (a, b) => a.position - b.position);\n if (index > -1) {\n snapLines[index].limitInf = Math.min(snapLines[index].limitInf, limitInf);\n snapLines[index].limSup = Math.max(snapLines[index].limSup, limitSup);\n }\n else {\n snapLines.splice(~index, 0, line);\n }\n }\n _collectSnaplines(parent, parentAbsoluteProsition) {\n this._enumerateCollection(parent, parentAbsoluteProsition, (item, itemAbsoluteRect) => {\n if (item !== this._snapTargetToIgnore) {\n this._appendSnapLine(itemAbsoluteRect.left, itemAbsoluteRect.top, itemAbsoluteRect.bottom, this._verticalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.right, itemAbsoluteRect.top, itemAbsoluteRect.bottom, this._verticalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.top, itemAbsoluteRect.left, itemAbsoluteRect.right, this._horizontalSnapLines);\n this._appendSnapLine(itemAbsoluteRect.bottom, itemAbsoluteRect.left, itemAbsoluteRect.right, this._horizontalSnapLines);\n this._collectSnaplines(item, itemAbsoluteRect);\n }\n });\n }\n _getCollection(parent) {\n return parent['controls'] && parent['controls']();\n }\n _enumerateCollection(parent, parentAbsoluteProsition, callback) {\n var collection = this._getCollection(parent);\n if (!collection)\n return;\n for (var i = 0; i < collection.length; i++) {\n var itemRect = collection[i].rect && collection[i].rect();\n if (itemRect) {\n callback(collection[i], {\n top: itemRect.top + parentAbsoluteProsition.top,\n bottom: itemRect.bottom + parentAbsoluteProsition.top,\n left: itemRect.left + parentAbsoluteProsition.left,\n right: itemRect.right + parentAbsoluteProsition.left\n });\n }\n }\n }\n collectSnaplines(root, snapTargetToIgnore) {\n this._snapTargetToIgnore = snapTargetToIgnore;\n this._verticalSnapLines.splice(0);\n this._horizontalSnapLines.splice(0);\n this._collectSnaplines(root, { top: 0, left: 0 });\n return {\n vertical: this._verticalSnapLines,\n horizontal: this._horizontalSnapLines\n };\n }\n}\n","/**\r\n* DevExpress Analytics (core\\snapLines\\_snapLinesHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SnapLinesCollector } from './_snapLinesCollector';\nimport { SnapLineSurface } from './_snapLineSurface';\nimport { binaryIndexOf } from '../utils/_arrayutils';\nexport class SnapLinesHelper {\n constructor(surface = null, snapTolerance = SnapLinesHelper.snapTolerance, snapLinesCollector = new SnapLinesCollector()) {\n this.snapLineSurfaces = [new SnapLineSurface(), new SnapLineSurface(), new SnapLineSurface(), new SnapLineSurface()];\n this.verticalSnapLines = [];\n this.horizontalSnapLines = [];\n this._surfaceContext = surface;\n this._snapTolerance = snapTolerance;\n this._snapLinesCollector = snapLinesCollector;\n }\n _findClosestSnapLine(position, snapLines) {\n var line = {\n position: position,\n limitInf: 0,\n limSup: 0\n };\n var index = binaryIndexOf(snapLines, line, (a, b) => a.position - b.position);\n var snapLineCandidate;\n if (index > -1) {\n snapLineCandidate = {\n snapLine: snapLines[index],\n distance: position - snapLines[index].position\n };\n }\n else {\n index = ~index;\n var delta1 = snapLines[index] ? (position - snapLines[index].position) : Number.MAX_VALUE;\n var delta2 = snapLines[index - 1] ? (position - snapLines[index - 1].position) : Number.MAX_VALUE;\n snapLineCandidate = Math.abs(delta1) > Math.abs(delta2) ?\n { snapLine: snapLines[index - 1], distance: delta2 } :\n { snapLine: snapLines[index], distance: delta1 };\n }\n return snapLineCandidate;\n }\n _getActiveSnapLines(position1, position2, snapLines) {\n var line1 = this._findClosestSnapLine(position1, snapLines);\n var line2 = this._findClosestSnapLine(position2, snapLines);\n var result = {\n lines: [],\n distance: 0\n };\n if (Math.abs(line1.distance - line2.distance) >= 1) {\n var line = Math.abs(line1.distance) < Math.abs(line2.distance) ? line1 : line2;\n if (Math.abs(line.distance) <= this._snapTolerance) {\n result.lines = [line];\n result.distance = line.distance;\n }\n }\n else if (Math.abs(line1.distance) <= this._snapTolerance) {\n result.lines = [line1, line2];\n result.distance = line1.distance;\n }\n return result;\n }\n updateSnapLines(snapTargetToIgnore = null) {\n this.verticalSnapLines.splice(0);\n this.horizontalSnapLines.splice(0);\n var result = this._snapLinesCollector.collectSnaplines(this._surfaceContext(), snapTargetToIgnore);\n this.verticalSnapLines.push.apply(this.verticalSnapLines, result.vertical);\n this.horizontalSnapLines.push.apply(this.horizontalSnapLines, result.horizontal);\n }\n deactivateSnapLines() {\n this.snapLineSurfaces[0].reset();\n this.snapLineSurfaces[1].reset();\n this.snapLineSurfaces[2].reset();\n this.snapLineSurfaces[3].reset();\n }\n activateSnapLines(position) {\n var vertical = this._getActiveSnapLines(position.left, position.right, this.verticalSnapLines);\n var horizontal = this._getActiveSnapLines(position.top, position.bottom, this.horizontalSnapLines);\n for (var i = 0; i < 2; i++) {\n var line = vertical.lines[i];\n if (!line) {\n this.snapLineSurfaces[i].reset();\n }\n else {\n var top = Math.min(line.snapLine.limitInf, position.top);\n var bottom = Math.max(line.snapLine.limSup, position.bottom);\n if (position.top < line.snapLine.limitInf) {\n top -= horizontal.distance;\n }\n if (position.bottom > line.snapLine.limSup) {\n bottom -= horizontal.distance;\n }\n this.snapLineSurfaces[i].updatePosition({\n top: top,\n left: line.snapLine.position,\n height: bottom - top,\n width: 1\n });\n }\n }\n for (var i = 0; i < 2; i++) {\n var line = horizontal.lines[i];\n if (!line) {\n this.snapLineSurfaces[i + 2].reset();\n }\n else {\n var left = Math.min(line.snapLine.limitInf, position.left);\n var right = Math.max(line.snapLine.limSup, position.right);\n if (position.left < line.snapLine.limitInf) {\n left -= vertical.distance;\n }\n if (position.right > line.snapLine.limSup) {\n right -= vertical.distance;\n }\n this.snapLineSurfaces[i + 2].updatePosition({\n top: line.snapLine.position,\n left: left,\n width: right - left,\n height: 1\n });\n }\n }\n return {\n left: vertical.distance,\n top: horizontal.distance\n };\n }\n snapPosition(position, horizontal) {\n var line = this._findClosestSnapLine(position, horizontal ? this.horizontalSnapLines : this.verticalSnapLines);\n return (line && Math.abs(line.distance) <= this._snapTolerance) ? line.snapLine.position : position;\n }\n}\nSnapLinesHelper.snapTolerance = 10;\n","/**\r\n* DevExpress Analytics (core\\tools\\_actionList.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardHelper } from './_keyboardHelper';\nimport { CopyPasteHandler } from './_copyPaste';\nimport { ActionId } from './actionId';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { deleteSelection } from '../selection/_selectionHelpers';\nimport { parseZoom } from '../utils/_utils';\nexport class ActionListsBase extends Disposable {\n constructor(enabled) {\n super();\n this.toolbarItems = [];\n this.enabled = enabled || ko.observable(true);\n }\n processShortcut(actions, e) {\n for (var i = 0; i < actions.length; i++) {\n if (actions[i].hotKey && (actions[i].disabled && !actions[i].disabled() || !actions[i].disabled) && ($.isFunction(actions[i].visible) ? actions[i].visible() : actions[i].visible)) {\n if (actions[i].hotKey.ctrlKey === e.ctrlKey && actions[i].hotKey.keyCode === e.keyCode) {\n actions[i].clickAction();\n e.preventDefault();\n }\n }\n }\n }\n shouldIgnoreProcessing(e) {\n if (e.altKey || !this.enabled.peek())\n return true;\n var activeElement = $.fn.constructor(document.activeElement);\n if (activeElement.is('textarea') || activeElement.is(':input') && (['password', 'text', 'number'].indexOf(activeElement.attr('type')) != -1)) {\n return true;\n }\n return false;\n }\n}\nexport class ActionLists extends ActionListsBase {\n constructor(surfaceContext, selection, undoEngine, customizeActions, enabled, copyPasteStrategy, zoomStep = ko.observable(0.01), isLocked = (item) => false) {\n super(enabled);\n this.menuItems = [];\n var copyPasteHandler = new CopyPasteHandler(selection, copyPasteStrategy), actions = [];\n if (selection) {\n var selectionControlsLocked = ko.computed(() => {\n return selection.selectedItems.some(item => item.locked || isLocked(item));\n });\n this._disposables.push(selectionControlsLocked);\n this._keyboardHelper = new KeyboardHelper(selection, undoEngine);\n actions.push({\n id: ActionId.Cut,\n text: 'Cut',\n displayText: () => getLocalization('Cut', 'AnalyticsCoreStringId.EditCut'),\n imageClassName: 'dxrd-image-cut',\n imageTemplateName: 'dxrd-svg-toolbar-cut',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canCopy() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n undoEngine().start();\n copyPasteHandler.cut();\n undoEngine().end();\n },\n hotKey: { ctrlKey: true, keyCode: 'X'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Copy,\n text: 'Copy',\n displayText: () => getLocalization('Copy', 'AnalyticsCoreStringId.Cmd_Copy'),\n imageClassName: 'dxrd-image-copy',\n imageTemplateName: 'dxrd-svg-toolbar-copy',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canCopy() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n copyPasteHandler.copy();\n },\n hotKey: { ctrlKey: true, keyCode: 'C'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Paste,\n text: 'Paste',\n displayText: () => getLocalization('Paste', 'AnalyticsCoreStringId.Cmd_Paste'),\n imageClassName: 'dxrd-image-paste',\n imageTemplateName: 'dxrd-svg-toolbar-paste',\n disabled: ko.pureComputed(() => {\n return !surfaceContext() || !copyPasteHandler.canPaste() || selectionControlsLocked();\n }),\n visible: true,\n clickAction: () => {\n undoEngine().start();\n copyPasteHandler.paste();\n undoEngine().end();\n },\n hotKey: { ctrlKey: true, keyCode: 'V'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.Delete,\n text: 'Delete',\n displayText: () => getLocalization('Delete', 'AnalyticsCoreStringId.Cmd_Delete'),\n imageClassName: 'dxrd-image-delete',\n imageTemplateName: 'dxrd-svg-toolbar-delete',\n disabled: ko.pureComputed(() => {\n if (selection.focused()) {\n return selection.focused().getControlModel().getMetaData().isDeleteDeny || selectionControlsLocked();\n }\n else {\n return true;\n }\n }),\n visible: true,\n hotKey: { ctrlKey: false, keyCode: 46 },\n clickAction: () => {\n undoEngine().start();\n deleteSelection(selection);\n undoEngine().end();\n }\n });\n }\n actions.push({\n id: ActionId.Undo,\n text: 'Undo',\n displayText: () => getLocalization('Undo', 'AnalyticsCoreStringId.Undo'),\n imageClassName: 'dxrd-image-undo',\n imageTemplateName: 'dxrd-svg-toolbar-undo',\n disabled: ko.pureComputed(() => { return !surfaceContext() || !undoEngine() || (undoEngine() && !undoEngine().undoEnabled()); }),\n visible: true,\n clickAction: () => {\n undoEngine().undo();\n },\n hotKey: { ctrlKey: true, keyCode: 'Z'.charCodeAt(0) },\n hasSeparator: true\n });\n actions.push({\n id: ActionId.Redo,\n text: 'Redo',\n displayText: () => getLocalization('Redo', 'AnalyticsCoreStringId.Redo'),\n imageClassName: 'dxrd-image-redo',\n imageTemplateName: 'dxrd-svg-toolbar-redo',\n disabled: ko.pureComputed(() => { return !surfaceContext() || !undoEngine() || (undoEngine() && !undoEngine().redoEnabled()); }),\n visible: true,\n clickAction: () => {\n undoEngine().redo();\n },\n hotKey: { ctrlKey: true, keyCode: 'Y'.charCodeAt(0) }\n });\n actions.push({\n id: ActionId.ZoomOut,\n text: 'Zoom Out',\n displayText: () => getLocalization('Zoom Out', 'AnalyticsCoreStringId.ZoomOut'),\n imageClassName: 'dxrd-image-zoomout',\n imageTemplateName: 'dxrd-svg-toolbar-zoomout',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 109 },\n zoomStep: zoomStep,\n clickAction: () => {\n surfaceContext().zoom(Math.max(surfaceContext().zoom() - zoomStep(), 0.01));\n },\n hasSeparator: true\n });\n actions.push({\n id: ActionId.ZoomSelector,\n text: 'Zoom 100%',\n displayText: () => getLocalization('Zoom 100%'),\n imageClassName: 'dxrd-image-zoom',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 187 },\n clickAction: () => {\n surfaceContext().zoom(1);\n },\n templateName: 'dxrd-zoom-select-template',\n zoomLevels: ko.observableArray([5, 2, 1.5, 1, 0.75, 0.5, 0.25]),\n zoom: ko.pureComputed({\n read: () => { return surfaceContext() && surfaceContext().zoom(); },\n write: (val) => { surfaceContext().zoom(val); }\n }),\n onCustomItemCreating: (e) => {\n e.customItem = parseZoom(e.text);\n }\n });\n actions.push({\n id: ActionId.ZoomIn,\n text: 'Zoom In',\n displayText: () => getLocalization('Zoom In', 'AnalyticsCoreStringId.ZoomIn'),\n imageClassName: 'dxrd-image-zoomin',\n imageTemplateName: 'dxrd-svg-toolbar-zoomin',\n disabled: ko.pureComputed(() => {\n return !surfaceContext();\n }),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 107 },\n zoomStep: zoomStep,\n clickAction: () => {\n surfaceContext().zoom(surfaceContext().zoom() + zoomStep());\n }\n });\n if (customizeActions) {\n customizeActions(actions);\n }\n actions.forEach((action) => {\n Object.keys(action).forEach((name) => {\n if (ko.isComputed(action[name])) {\n this._disposables.push(action[name]);\n }\n });\n this._registerAction(action['container'] === 'menu' ? this.menuItems : ko.unwrap(this.toolbarItems), action);\n });\n }\n _registerAction(container, action) {\n if (action['index']) {\n container.splice(action['index'], 0, action);\n }\n else {\n container.push(action);\n }\n }\n processShortcut(actions, e) {\n if (this.shouldIgnoreProcessing(e)) {\n return;\n }\n if (!this._keyboardHelper.processShortcut(e)) {\n super.processShortcut(actions, e);\n }\n else {\n e.preventDefault();\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\tools\\_copyPaste.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Point } from '../elements/point';\nimport { ModelSerializer } from '../../serializer/serializer';\nimport { findSurface } from '../internal/_surfaceHelpers';\nexport var copyPasteStrategy = {\n createChild: (pasteTarget, info) => {\n return pasteTarget.createChild(info);\n },\n calculateDelta: (selection, pasteTargetSurface, minPoint) => {\n return {\n x: selection.rect().left - minPoint.x(),\n y: selection.rect().top - minPoint.y()\n };\n },\n canPaste: (pasteTarget, info) => true\n};\nexport class CopyPasteHandler {\n constructor(selectionProvider, _copyPasteStrategy = copyPasteStrategy) {\n this._copyPasteStrategy = _copyPasteStrategy;\n this._copyInfo = ko.observable(null);\n this.hasPasteInfo = ko.pureComputed(() => { return this._copyInfo() !== null; });\n this._selectionProvider = selectionProvider;\n }\n canCopy() {\n return this._selectionProvider.focused() !== null && !this._selectionProvider.focused().getControlModel().getMetaData().isCopyDeny;\n }\n canPaste() {\n var pasteTargetSurface = this._selectionProvider.focused();\n return pasteTargetSurface !== null\n && this.hasPasteInfo()\n && pasteTargetSurface.canDrop()\n && (!this._copyPasteStrategy.canPaste || this._copyPasteStrategy.canPaste(pasteTargetSurface.getControlModel(), this._copyInfo()))\n && !pasteTargetSurface.getControlModel().getMetaData().isPasteDeny;\n }\n copy() {\n if (this.canCopy()) {\n var serializer = new ModelSerializer(), copyInfo = {\n focused: this._selectionProvider.focused(),\n objects: $.map(this._selectionProvider.selectedItems, (item) => {\n return serializer.serialize(item.getControlModel());\n })\n };\n this._copyInfo(copyInfo);\n }\n }\n cut() {\n var serializer = new ModelSerializer(), focused = this._selectionProvider.focused(), objects = [];\n this._selectionProvider.selectedItems.forEach(item => {\n var control = item.getControlModel();\n control.parentModel().removeChild(control);\n objects.push(serializer.serialize(control));\n if (this._copyPasteStrategy.createSelfRestoringItems)\n objects.push(...this._copyPasteStrategy.createSelfRestoringItems(control, serializer));\n });\n var cutInfo = {\n focused: focused,\n objects: objects\n };\n this._copyInfo(cutInfo);\n }\n paste() {\n if (this.canPaste()) {\n var pasteTargetSurface = this._selectionProvider.focused(), pasteTarget = pasteTargetSurface.getControlModel(), newSelection = [];\n if (pasteTargetSurface === this._copyInfo().focused) {\n pasteTargetSurface = pasteTargetSurface.parent;\n pasteTarget = pasteTargetSurface.getControlModel();\n }\n if (!pasteTarget.getMetaData().isContainer) {\n pasteTargetSurface = pasteTargetSurface.parent;\n pasteTarget = pasteTargetSurface.getControlModel();\n }\n var minPoint = new Point(Number.MAX_VALUE, Number.MAX_VALUE), maxPoint = new Point(-1, -1);\n for (var i = 0; i < this._copyInfo().objects.length; i++) {\n var newControl = this._copyPasteStrategy.createChild(pasteTarget, this._copyInfo().objects[i]);\n var newControlSurface = findSurface(newControl);\n if (!newControlSurface)\n continue;\n var posMin = new Point(newControlSurface.rect().left, newControlSurface.rect().top);\n var posMax = new Point(newControlSurface.rect().left + newControlSurface.rect().width, newControlSurface.rect().top + newControlSurface.rect().height);\n if (minPoint.x() >= posMin.x())\n minPoint.x(posMin.x());\n if (maxPoint.x() <= posMax.x())\n maxPoint.x(posMax.x());\n if (minPoint.y() >= posMin.y())\n minPoint.y(posMin.y());\n if (maxPoint.y() <= posMax.y())\n maxPoint.y(posMax.y());\n newSelection.push(newControlSurface);\n }\n var newOriginPoint = new Point(((pasteTargetSurface.rect().width - pasteTargetSurface['_context'].margins.right()) / 2) - ((maxPoint.x() - minPoint.x()) / 2) + (pasteTargetSurface['rtlLayout']() ? pasteTargetSurface['_context'].margins.right() : 0), (pasteTargetSurface.rect().height / 2) - ((maxPoint.y() - minPoint.y()) / 2));\n for (var i = 0; i < newSelection.length; i++) {\n var delta = this._copyPasteStrategy.calculateDelta(newSelection[i], pasteTargetSurface, minPoint);\n newSelection[i].rect({ left: newOriginPoint.x() + delta.x, top: newOriginPoint.y() + delta.y });\n }\n this._selectionProvider.initialize();\n newSelection.forEach(newControlSurface => {\n this._selectionProvider.selecting({ control: newControlSurface, cancel: false });\n });\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\tools\\_keyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { Disposable } from '../../serializer/utils';\nimport { KeyboardCodesEnum } from '../../property-grid/widgets/internal/_utils';\nexport class KeyboardHelperBase extends Disposable {\n _processShortcut(map, e, index) {\n var method = map[KeyboardCodesEnum[e.keyCode]];\n if (method) {\n return method(e, index);\n }\n return false;\n }\n processShortcut(e, index) {\n return this._processShortcut(this.shortcutMap, e, index);\n }\n processChildrenShortcut(e, index) {\n return this._processShortcut(this.childrenShortcutMap, e, index);\n }\n}\nexport class KeyboardHelper extends KeyboardHelperBase {\n constructor(selection, undoEngine) {\n super();\n this._selection = selection;\n this._undoEngine = undoEngine;\n this.shortcutMap = {\n Esc: (e) => { this.processEsc(); return true; },\n Left: (e) => { this.moveSelectedControls(true, true, -1); return true; },\n Up: (e) => { this.moveSelectedControls(true, false, -1); return true; },\n Right: (e) => { this.moveSelectedControls(false, true, 1); return true; },\n Down: (e) => { this.moveSelectedControls(false, false, 1); return true; }\n };\n }\n processEsc() {\n var parent = this._selection.focused() && this._selection.focused().parent;\n parent && this._selection.focused(parent);\n }\n moveSelectedControls(leftUp, isHoriz, sign) {\n var focusedControl = this._selection.focused();\n if (!focusedControl || focusedControl && focusedControl.getControlModel().getMetaData().isCopyDeny) {\n return;\n }\n this._undoEngine && this._undoEngine().start();\n var distance = 1, axisProperty = isHoriz ? 'left' : 'top', lengthProperty = isHoriz ? 'width' : 'height', minAxis, maxSide, newAxis;\n if (focusedControl.rect) {\n minAxis = focusedControl.rect()[axisProperty];\n maxSide = focusedControl.rect()[axisProperty] + focusedControl.rect()[lengthProperty];\n }\n else {\n return;\n }\n this._selection.selectedItems.filter((item) => { return !item.locked; }).forEach((item) => {\n var axis = item.rect()[axisProperty];\n if (axis < minAxis) {\n minAxis = axis;\n }\n });\n this._selection.selectedItems.filter((item) => { return !item.locked; }).forEach((item) => {\n var side = item.rect()[axisProperty] + item.rect()[lengthProperty];\n if (side > maxSide) {\n maxSide = side;\n }\n });\n if ((leftUp && minAxis <= 0) || (!focusedControl.parent.rect || (!leftUp && maxSide.toFixed(5) >= focusedControl.parent.rect()[lengthProperty]))) {\n return;\n }\n else {\n this._selection.selectedItems.filter((item) => { return !item.locked; })\n .filter((item) => { return !!item.rect; })\n .forEach((item) => {\n var newVal = {}, itemAxisProperty = item.rect()[axisProperty], itemLengthProperty = item.rect()[lengthProperty], parentLengthProperty = item.parent.rect()[lengthProperty];\n newAxis = itemAxisProperty + sign * distance;\n if ((leftUp && newAxis >= 0) || (!leftUp && (newAxis + itemLengthProperty) <= parentLengthProperty)) {\n newVal[axisProperty] = newAxis;\n }\n if (!leftUp && (newAxis + itemLengthProperty) > parentLengthProperty) {\n newVal[axisProperty] = parentLengthProperty - itemLengthProperty;\n }\n if (leftUp && newAxis < 0 && itemAxisProperty > 0) {\n newVal[axisProperty] = 0;\n }\n item.rect(newVal);\n });\n }\n this._undoEngine && this._undoEngine().end();\n }\n}\nexport class KeyDownHandlersManager {\n constructor(targetElement) {\n this._handlers = [];\n this._targetElement = targetElement;\n }\n get _activeHandler() {\n return this._handlers.length > 0 ? this._handlers[this._handlers.length - 1] : null;\n }\n _removeHandler(handler, eventName) {\n var index = this._handlers.indexOf(handler);\n if (index < 0)\n return;\n this._handlers.splice(index, 1);\n if (index === this._handlers.length) {\n this._targetElement.removeEventListener(eventName, handler);\n if (this._activeHandler)\n this._targetElement.addEventListener(eventName, this._activeHandler);\n }\n }\n bindHandler(element, handler, eventName = 'keydown') {\n if (this._activeHandler)\n this._targetElement.removeEventListener(eventName, this._activeHandler);\n var _handler = (e) => {\n if ($.fn.constructor(this._targetElement).closest('.dx-designer').length > 0 ||\n $.fn.constructor(e.target).closest('.dx-designer').length > 0 ||\n e.target === document.body)\n handler(e);\n };\n this._handlers.push(_handler);\n this._targetElement.addEventListener(eventName, _handler);\n addDisposeCallback(element, () => { this._removeHandler(_handler, eventName); });\n }\n}\n","/**\r\n* DevExpress Analytics (core\\tools\\actionId.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var ActionId = {\n Cut: 'dxd-cut',\n Copy: 'dxd-copy',\n Paste: 'dxd-paste',\n Delete: 'dxd-delete',\n Undo: 'dxd-undo',\n Redo: 'dxd-redo',\n ZoomOut: 'dxd-zoom-out',\n ZoomSelector: 'dxd-zoom-selector',\n ZoomIn: 'dxd-zoom-in',\n};\n","/**\r\n* DevExpress Analytics (core\\tools\\tabInfo.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/_localization';\nimport { SvgTemplatesEngine } from '../../property-grid/widgets/internal/_svgTemplateEngine';\nimport { Disposable } from '../../serializer/utils';\nexport class TabInfo extends Disposable {\n constructor(options) {\n super();\n this.active = ko.observable(false);\n this.visible = ko.observable();\n this.disabled = ko.observable();\n var imageBaseName = options.imageClassName || options.text.toLowerCase();\n this._text = options.text;\n this.name = options.text;\n this._localizationId = options.localizationId;\n this._disposables.push(this.imageClassName = ko.pureComputed(() => {\n return 'dxrd-image-' + imageBaseName;\n }));\n this.imageTemplateName = options.imageTemplateName || SvgTemplatesEngine.getExistingTemplate('dxrd-svg-tabs-' + options.text.toLowerCase());\n this.template = options.template;\n this._disposables.push(options.model, options.keyboardHelper);\n var computedVisible = options.visible;\n var computedDisabled = options.disabled;\n this._disposables.push(this.visible = ko.pureComputed(() => { return computedVisible !== undefined ? computedVisible() : true; }));\n this._disposables.push(this.disabled = ko.pureComputed(() => { return computedDisabled !== undefined ? computedDisabled() : false; }));\n this._disposables.push(this.visible.subscribe((visibility) => {\n if (!visibility) {\n this.active(false);\n }\n }));\n computedVisible && this._disposables.push(computedVisible);\n computedDisabled && this._disposables.push(computedDisabled);\n this.model = options.model;\n this.keyboardHelper = options.keyboardHelper;\n if (this.keyboardHelper)\n this._disposables.push(ko.computed(() => {\n if (this.active() && this.collapsed && !this.collapsed())\n this.focus();\n }).extend({ rateLimit: 0 }));\n }\n focus() {\n this.keyboardHelper && this.keyboardHelper.focus(document.getElementsByClassName('dxrd-tab-item dxd-state-active')[0]);\n }\n get text() {\n return getLocalization(this._text, this._localizationId);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\tools\\tabPanel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nimport { getResizableOptions } from '../utils/_utils';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { extend } from '../../serializer/_utils';\nimport { accessibilityFontSizeZoomFactor } from '../../accessibility/_internal';\nimport { RightPanelKeyboardHelper } from '../../accessibility/_rightPanelKeyboardHelper';\nexport class TabPanel extends Disposable {\n constructor(options) {\n super();\n this.tabs = [];\n this.collapsed = ko.observable(false);\n this.position = ko.observable(TabPanel.Position.Right);\n this.toggleCollapsedText = ko.pureComputed(() => {\n var actionString = this.collapsed() ? 'Open' : 'Collapse';\n return getLocalization(actionString, 'ASPxReportsStringId.SidePanel_' + actionString);\n });\n this.cssClasses = (extendOptions) => {\n return extend({\n 'dxrd-tab-panel-left': this.position() === TabPanel.Position.Left,\n 'dxrd-tab-panel-right': this.position() === TabPanel.Position.Right,\n 'dxrd-tab-panel-empty': this.isEmpty()\n }, extendOptions);\n };\n var tabs = options.tabs;\n var autoSelectTab = options.autoSelectTab;\n if (options.rtl)\n this.position(TabPanel.Position.Left);\n var zoomFactor = accessibilityFontSizeZoomFactor();\n var _self = this;\n this.tabs = tabs;\n if (tabs && tabs.length) {\n this._disposables.push(this.isEmpty = ko.computed(() => this.tabs.every(tab => !tab.visible())));\n this.tabs.forEach(tab => {\n tab.collapsed = this.collapsed;\n });\n }\n else\n this.isEmpty = ko.observable(true);\n this._disposables.push(ko.computed(() => {\n var visibleTabs = tabs.filter((tab) => { return tab.visible(); });\n if (visibleTabs.length !== 0) {\n if (visibleTabs.filter((tab) => { return tab.active.peek(); }).length === 0) {\n visibleTabs[0].active(true);\n if (autoSelectTab) {\n this.collapsed(true);\n }\n }\n }\n else {\n this.collapsed(true);\n }\n }));\n this._disposables.push(ko.computed(() => {\n var disabledTabs = tabs.filter((tab) => { return tab.disabled(); });\n if (disabledTabs.length !== 0) {\n if (disabledTabs.filter((tab) => { return tab.active.peek(); }).length !== 0) {\n disabledTabs.forEach(t => t.active(false));\n var nextSelectedTab = tabs.filter((tab) => { return !tab.disabled.peek() && tab.visible.peek(); })[0];\n if (nextSelectedTab) {\n this.selectTab({ model: nextSelectedTab });\n }\n }\n }\n }));\n if (autoSelectTab) {\n this.tabs.forEach((tab) => {\n this._disposables.push(tab.active.subscribe((newVal) => {\n if (newVal) {\n this.selectTab({ model: tab });\n }\n }));\n });\n }\n this.toggleTabVisibility = (e) => {\n var selectedTab = e.model;\n var activeTab = this.tabs.filter((tab) => tab.active())[0];\n if (selectedTab === activeTab) {\n this.collapsed(!this.collapsed());\n }\n else {\n this.selectTab(e);\n }\n };\n this.selectTab = (e) => {\n var selectedTab = e.model;\n if (!selectedTab.disabled()) {\n this.tabs.forEach(function (tab) {\n tab.active(tab === selectedTab);\n });\n this.collapsed(false);\n }\n };\n var _width = ko.observable((options.width || 370) * zoomFactor);\n this._disposables.push(this.width = ko.pureComputed({\n read: () => { return this.collapsed() ? 0 : _width(); },\n write: (newWidth) => { _width(newWidth); }\n }));\n this._disposables.push(this.headerWidth = ko.pureComputed(() => { return this.isEmpty() ? 0 : (50 * zoomFactor + (this.collapsed() ? 0 : this.width())); }));\n this.getResizableOptions = ($element, panelOffset, minWidth) => {\n if (!this._resizableOptions || this._resizableOptions.$element !== $element) {\n this._resizableOptions = getResizableOptions($element, zoomFactor * panelOffset, minWidth, _self.position(), TabPanel.Position.Left, _self.width, _self.collapsed);\n _self._disposables.push(_self.position.subscribe((newVal) => {\n this._resizableOptions.handles(newVal === TabPanel.Position.Left ? 'e' : 'w');\n }));\n _self._disposables.push(_self.collapsed.subscribe((isCollapsed) => {\n this._resizableOptions.minimumWidth(isCollapsed ? 0 : minWidth);\n }));\n }\n return this._resizableOptions;\n };\n this._disposables.push({\n dispose: () => {\n this._resizableOptions = null;\n this.getResizableOptions = null;\n }\n });\n this._disposables.push(this.toggleCollapsedImage = ko.pureComputed(() => {\n var postfix = this.collapsed() ? '-expand' : '-collapse';\n return { class: 'dxrd-image-propertygrid' + postfix, template: 'dxrd-svg-tabs' + postfix };\n }));\n this.keyboardHelper = new RightPanelKeyboardHelper(this);\n this._disposables.push(this.toggleCollapsedText, this.keyboardHelper);\n }\n dispose() {\n super.dispose();\n this.disposeArray(this.tabs);\n }\n getTabByName(tabName) {\n return this.tabs.filter(x => x.name === tabName)[0];\n }\n}\nTabPanel.Position = {\n Left: 'Left',\n Right: 'Right'\n};\n","/**\r\n* DevExpress Analytics (core\\tools\\toolbox.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getTypeNameFromFullName, getImageClassName } from '../internal/_getNameHelpers';\nimport { SvgTemplatesEngine } from '../../property-grid/widgets/internal/_svgTemplateEngine';\nexport class ToolboxItem {\n constructor(info) {\n this.disabled = ko.observable(false);\n this.info = info;\n }\n get type() {\n return getTypeNameFromFullName(this.info['@ControlType']);\n }\n get imageClassName() {\n return [getImageClassName(this.type), this.disabled() ? 'dxrd-disabled-button' : ''].join(' ');\n }\n get imageTemplateName() {\n var _a;\n var _templateName = getImageClassName(this.type, true);\n return (_a = SvgTemplatesEngine.getExistingTemplate(_templateName)) !== null && _a !== void 0 ? _a : SvgTemplatesEngine.getExistingTemplate('dxrd-svg-toolbox-unknown');\n }\n get index() {\n return this.info.index;\n }\n get displayName() {\n return this.info.displayName || this.type;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_arrayutils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { knockoutArrayWrapper } from '../../serializer/_utils';\nexport function createObservableReverseArrayMapCollection(elementModels, target, createItem) {\n var array = target();\n elementModels.peek().forEach(item => {\n var surface = createItem(item);\n array.splice(0, 0, surface);\n });\n target.valueHasMutated();\n return elementModels.subscribe((args) => {\n var unwrapedTarget = target();\n var targetLength = unwrapedTarget.length;\n args.forEach((changeSet) => {\n if (changeSet.status === 'deleted') {\n unwrapedTarget.splice(unwrapedTarget.indexOf(changeSet.value.surface), 1);\n targetLength--;\n }\n });\n args.forEach((changeSet) => {\n if (changeSet.status === 'added') {\n unwrapedTarget.splice(targetLength - changeSet.index, 0, createItem(changeSet.value));\n targetLength++;\n }\n });\n target.valueHasMutated();\n }, null, 'arrayChange');\n}\nexport function createObservableArrayMapCollection(elementModels, target, createItem) {\n var array = target();\n elementModels.peek().forEach(item => {\n var surface = createItem(item);\n array.push(surface);\n });\n target.valueHasMutated();\n return elementModels.subscribe((args) => {\n var startIndex = target().length, deleteCount = 0, valuesToAdd = [];\n args.forEach((changeSet) => {\n if (changeSet.status === 'deleted') {\n deleteCount++;\n if (changeSet.index < startIndex) {\n startIndex = changeSet.index;\n }\n }\n });\n args.forEach((changeSet) => {\n if (changeSet.status === 'added') {\n if (changeSet.index < startIndex) {\n startIndex = changeSet.index;\n }\n valuesToAdd.push(createItem(changeSet.value));\n }\n });\n target.splice.apply(target, [startIndex, deleteCount].concat(valuesToAdd));\n }, null, 'arrayChange');\n}\nexport function deserializeChildArray(model, parent, creator) {\n var result = Object.keys(model || {}).map(propertyName => creator(model[propertyName]));\n return knockoutArrayWrapper(result, (array, event) => {\n if (event === 'beforeChange') {\n return;\n }\n if (event === 'arrayChange') {\n for (var i = 0; i < array.length; i++) {\n parent !== array[i].value.parentModel() && array[i].value.parentModel(parent);\n }\n }\n else {\n for (var i = 0; i < array.length; i++) {\n parent !== array[i].parentModel() && array[i].parentModel(parent);\n }\n }\n });\n}\nexport function getFirstItemByPropertyValue(array, propertyName, propertyValue, fromIndex) {\n var fromIndex = fromIndex || 0;\n for (var i = fromIndex; i < array.length; i++) {\n var value = ko.isObservable(array[i][propertyName]) ? array[i][propertyName].peek() : array[i][propertyName];\n if (value === propertyValue) {\n return array[i];\n }\n }\n return null;\n}\nexport function findFirstItemMatchesCondition(array, predicate) {\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i])) {\n return array[i];\n }\n }\n return null;\n}\nexport var find = findFirstItemMatchesCondition;\nexport function binaryIndexOf(ar, el, compare) {\n var m = 0;\n var n = ar.length - 1;\n while (m <= n) {\n var k = (n + m) >> 1;\n var cmp = compare(el, ar[k]);\n if (cmp > 0) {\n m = k + 1;\n }\n else if (cmp < 0) {\n n = k - 1;\n }\n else {\n return k;\n }\n }\n return ~m;\n}\nexport function compareArrays(array1, array2) {\n if (!array1 || !array2)\n return false;\n if (array1.length !== array2.length)\n return false;\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i])\n return false;\n }\n return true;\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_debug.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var DEBUG = false;\nexport function DebugMode(value) {\n DEBUG = value;\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_designerCreator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { ObjectProperties } from '../../property-grid/propertygrid';\nimport { Disposable } from '../../serializer/utils';\nimport { extend } from '../../serializer/_utils';\nimport { UndoEngine } from '../../undo-engine/undoengine';\nimport { DesignControlsHelper } from '../internal/_controlsHelper';\nimport { ControlsStore } from '../internal/_stores';\nimport { TabPanel } from '../tools/tabPanel';\nimport { ActionLists } from '../tools/_actionList';\nimport { ControlProperties } from '../widgets/propertygrid/_controlProperties';\nimport { collectGroupsFromFlatList, createActionWrappingFunction, generateDefaultParts } from './_utils';\nexport class DesignerContextGeneratorInternal {\n constructor(_context, _rtl) {\n this._context = _context;\n this._rtl = _rtl;\n }\n addElement(propertyName, model) {\n this._context[propertyName] = model;\n return this;\n }\n addUndoEngine(undoEngine = ko.observable(new UndoEngine(this._context.model))) {\n this._context.undoEngine = undoEngine;\n return this;\n }\n addSurface(surface) {\n this._context.surface = surface;\n return this;\n }\n getContext() {\n return this._context;\n }\n}\nexport class DesignerContextGenerator {\n constructor(_rtl) {\n this._rtl = _rtl;\n }\n addModel(model) {\n return new DesignerContextGeneratorInternal({ model: model }, this._rtl);\n }\n}\nexport class ResizeSettings extends Disposable {\n get handler() { return this._handler; }\n set handler(newVal) {\n this._disposables.push(newVal);\n this._handler = newVal;\n }\n generate() {\n var result = {};\n if (this.handler)\n result['resizeHandler'] = this.handler;\n return result;\n }\n}\nexport class ContextActionsSettings extends Disposable {\n _actionUndoEngineWrappingFunction(contextActions, undoEngine) {\n return createActionWrappingFunction('WrapWithUndoEngine', (model, handler) => {\n undoEngine().start();\n handler(model);\n undoEngine().end();\n })(contextActions);\n }\n _collectActions(editableObj, undoEngine) {\n var editable = editableObj(), contextActions = [];\n this.actionProviders.forEach(actionProvider => {\n contextActions.push.apply(contextActions, actionProvider.getActions(editable));\n });\n this._actionUndoEngineWrappingFunction(contextActions, undoEngine);\n return contextActions;\n }\n get actionProviders() {\n return this._actionProviders;\n }\n set actionProviders(val) {\n this._disposables.push.apply(this._disposables, val);\n this._actionProviders = val;\n }\n get actions() {\n return this._actions;\n }\n set actions(val) {\n this._disposables.push(val);\n this._actions = val;\n }\n get groupActions() {\n return this._groupActions;\n }\n set groupActions(val) {\n this._disposables.push(val);\n this._groupActions = val;\n }\n createDefaultActions(editableObj, undoEngine) {\n this.actions = ko.computed(() => {\n return this._collectActions(editableObj, undoEngine);\n });\n }\n createDefaultGroupAction(editableObj, undoEngine) {\n this.groupActions = ko.computed(() => {\n return collectGroupsFromFlatList(this._collectActions(editableObj, undoEngine), (x) => x.group && x.group());\n });\n }\n generate() {\n var result = {};\n if (this.actionProviders)\n result['contextActionProviders'] = this.actionProviders;\n if (this.actions)\n result['contextActions'] = this.actions;\n if (this.groupActions)\n result['contextGroupActions'] = this.groupActions;\n return result;\n }\n}\nexport class DragDropSettings extends Disposable {\n constructor() {\n super(...arguments);\n this._model = {};\n }\n get dragHelperContent() {\n return this._dragHelperContent;\n }\n set dragHelperContent(val) {\n this._disposables.push(val);\n this._dragHelperContent = val;\n }\n get dragDropStarted() {\n return this._dragDropStarted;\n }\n set dragDropStarted(val) {\n this._disposables.push(val);\n this._dragDropStarted = val;\n }\n addDragDropHandler(propertyName, handler) {\n this._disposables.push(handler);\n this._model[propertyName] = handler;\n }\n generate() {\n var result = this._model;\n if (this.dragHelperContent)\n result['dragHelperContent'] = this.dragHelperContent;\n if (this.dragDropStarted)\n result['dragDropStarted'] = this.dragDropStarted;\n return result;\n }\n}\nexport class ControlsHelperSettings extends Disposable {\n constructor(_selection, _context) {\n super();\n this._selection = _selection;\n this._context = _context;\n this._model = {};\n }\n generate() {\n var result = this._model;\n if (this.controlsHelper)\n result['controlsHelper'] = this.controlsHelper;\n return result;\n }\n addControlsHelper(helper) {\n this.controlsHelper = helper || new DesignControlsHelper(this._context.model, [{\n added: (control) => { },\n deleted: (control) => { control.surface === this._selection.focused() && this._selection.focused(control.surface.findNextSelection()); }\n }]);\n this._disposables.push(this.controlsHelper);\n return this;\n }\n addControlsStore(store) {\n store = store || new ControlsStore(this.controlsHelper.allControls);\n this._disposables.push(store);\n this._model['controlsStore'] = store;\n return this;\n }\n}\nexport class MenuSettings extends Disposable {\n constructor() {\n super(...arguments);\n this.stopPropagation = false;\n }\n generate() {\n var result = {};\n if (this.appMenuVisible)\n result['appMenuVisible'] = this.appMenuVisible;\n if (this.toggleAppMenu)\n result['toggleAppMenu'] = this.toggleAppMenu;\n if (this.getMenuPopupContainer)\n result['getMenuPopupContainer'] = this.getMenuPopupContainer;\n if (this.getMenuPopupTarget)\n result['getMenuPopupTarget'] = this.getMenuPopupTarget;\n result['stopPropagation'] = this.stopPropagation;\n return result;\n }\n get appMenuVisible() {\n return this._appMenuVisible;\n }\n set appMenuVisible(val) {\n this._disposables.push(val);\n this._appMenuVisible = val;\n }\n}\nexport class SelectionSettings extends Disposable {\n constructor() {\n super(...arguments);\n this._dragDropSettings = new DragDropSettings();\n this._resizeSettings = new ResizeSettings();\n }\n dispose() {\n this._editableObject(null);\n super.dispose();\n this.removeProperties();\n }\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._disposables.push(val);\n this._selection = val;\n }\n get snapHelper() {\n return this._snapHelper;\n }\n set snapHelper(val) {\n this._disposables.push(val);\n this._snapHelper = val;\n }\n get editableObject() {\n return this._editableObject;\n }\n set editableObject(val) {\n this._disposables.push(val);\n this._editableObject = val;\n }\n addDragDrop(func) {\n func(this._dragDropSettings);\n this._disposables.push(this._dragDropSettings);\n }\n addResize(func) {\n func(this._resizeSettings);\n this._disposables.push(this._resizeSettings);\n }\n generate() {\n var result = {};\n if (this.selection)\n result['selection'] = this.selection;\n if (this.snapHelper)\n result['snapHelper'] = this.snapHelper;\n if (this.editableObject)\n result['editableObject'] = this.editableObject;\n return extend(result, this._dragDropSettings.generate(), this._resizeSettings.generate());\n }\n}\nexport class CommonDesignerGenerator extends Disposable {\n constructor(_context, _rtl) {\n super();\n this._context = _context;\n this._rtl = _rtl;\n this._model = {};\n this._selectionSettings = new SelectionSettings();\n this._model.rtl = this._rtl;\n this._model.dispose = () => {\n this.dispose();\n };\n }\n _createPopularProperties(info, popularProperties) {\n var properties = [];\n popularProperties.forEach((name) => {\n var property = info.filter((propertyInfo) => { return propertyInfo.propertyName === name; })[0];\n if (property) {\n properties.push(property);\n }\n });\n return properties;\n }\n _resetModel() {\n Object.keys(this._model).forEach((propertyName) => {\n if (propertyName !== 'dispose')\n delete this._model[propertyName];\n });\n }\n get rtl() {\n return this._rtl;\n }\n set rtl(newVal) {\n this._rtl = newVal;\n this._model.rtl = newVal;\n }\n dispose() {\n super.dispose();\n this._resetModel();\n }\n initializeContext(context) {\n this._context = context;\n return this;\n }\n getPropertyByName(propertyName) {\n return this._model[propertyName];\n }\n addElement(propertyName, elementFunc) {\n this._model[propertyName] = elementFunc();\n this._disposables.push(this._model[propertyName]);\n return this;\n }\n mapOnContext() {\n this._model.model = this._context.model;\n this._model.surface = this._context.surface;\n this._model.undoEngine = this._context.undoEngine;\n return this;\n }\n addSelection(func) {\n func(this._selectionSettings);\n this._disposables.push(this._selectionSettings);\n extend(this._model, this._selectionSettings.generate());\n return this;\n }\n addPropertyGrid(propertyGrid, propertyName = 'propertyGrid') {\n this._model[propertyName] = propertyGrid && propertyGrid();\n this._disposables.push(this._model[propertyName]);\n return this;\n }\n addDisposableContainer() {\n this._model.disposableContainer = new Disposable();\n this._model.addDisposables = (...elem) => this._model.disposableContainer._disposables.push(...elem);\n return this;\n }\n addControlProperties(editors, groups, accessibilityProvider) {\n return this.addPropertyGrid(() => this.createControlProperties(editors, groups, accessibilityProvider));\n }\n createControlProperties(editors, groups, accessibilityProvider) {\n var properties = new ControlProperties(this._model.editableObject, { groups: groups, editors: editors }, null);\n if (accessibilityProvider)\n properties.registerAccessibilityProvider(accessibilityProvider);\n return properties;\n }\n addPopularProperties(controlsFactory, accessibilityProvider) {\n return this.addPropertyGrid(() => {\n var properties = new ObjectProperties(ko.pureComputed(() => {\n var popularPropertiesObject = { getInfo: () => { return []; } }, editable = this._model.editableObject();\n if (editable) {\n var controlInfo = controlsFactory.controlsMap[editable.controlType], propertiesInfo = this._createPopularProperties(controlInfo && controlInfo.info || [], controlInfo && controlInfo.popularProperties || []);\n (propertiesInfo).forEach(item => {\n if (item.propertyName in editable)\n popularPropertiesObject[item.propertyName] = editable[item.propertyName];\n });\n popularPropertiesObject.getInfo = () => {\n return propertiesInfo;\n };\n popularPropertiesObject['root'] = editable.root;\n popularPropertiesObject['actions'] = editable.actions;\n popularPropertiesObject['actionProviders'] = editable.actionProviders;\n popularPropertiesObject['getPath'] = (propertyName) => { return editable.getPath && editable.getPath(propertyName) || ''; };\n popularPropertiesObject['getModel'] = () => editable;\n popularPropertiesObject['isPropertyModified'] = (name) => {\n return editable.isPropertyModified ? editable.isPropertyModified(name) : false;\n };\n popularPropertiesObject['getActionClassName'] = (name) => {\n return editable['getActionClassName'] ? editable['getActionClassName'](name) : '';\n };\n popularPropertiesObject['getMenuBoxTemplate'] = (name) => {\n return editable['getMenuBoxTemplate'] ? editable['getMenuBoxTemplate'](name) : '';\n };\n popularPropertiesObject['isPropertyVisible'] = (propertyName) => {\n return propertiesInfo.some(x => x.propertyName === propertyName) && (editable['isPropertyVisible'] ? editable['isPropertyVisible'](propertyName, true) : true);\n };\n popularPropertiesObject['isPropertyHighlighted'] = (propertyName) => {\n return editable['isPropertyHighlighted'] ? editable['isPropertyHighlighted'](propertyName) : false;\n };\n popularPropertiesObject['isPropertyDisabled'] = (name) => {\n return editable.isPropertyDisabled ? editable.isPropertyDisabled(name) : false;\n };\n popularPropertiesObject['isSame'] = x => x === editable;\n ['name', 'displayName'].forEach((propertyName) => {\n if (propertyName in editable) {\n popularPropertiesObject[propertyName] = editable[propertyName];\n }\n });\n }\n return popularPropertiesObject;\n }), undefined, undefined, undefined);\n if (accessibilityProvider)\n properties.registerAccessibilityProvider(accessibilityProvider);\n return properties;\n }, 'popularProperties');\n }\n addToolboxItems(items) {\n this._model.toolboxItems = items && items();\n return this;\n }\n addGroupedToolboxItems() {\n this._model.groupedToolboxItems = collectGroupsFromFlatList(this._model.toolboxItems, (item) => item.info.group);\n return this;\n }\n addTabPanel(panel, addTabInfo = () => []) {\n var panelModel = panel && panel() || new TabPanel({ tabs: addTabInfo(), rtl: this._rtl, width: 396 });\n this._model.tabPanel = panelModel;\n this._disposables.push(panelModel);\n return this;\n }\n addIsLoading(isLoadingFunc = () => ko.observable(true)) {\n this._model.isLoading = isLoadingFunc();\n this._disposables.push(this._model.isLoading);\n return this;\n }\n addControlsHelper(func) {\n var settings = new ControlsHelperSettings(this._selectionSettings.selection, this._context);\n func(settings);\n this._disposables.push(settings);\n extend(this._model, settings.generate());\n return this;\n }\n addMenu(func) {\n var settings = new MenuSettings();\n func(settings);\n this._disposables.push(settings);\n extend(this._model, settings.generate());\n return this;\n }\n addContextActions(func) {\n var settings = new ContextActionsSettings();\n func(settings);\n this._disposables.push(settings);\n extend(this._model, settings.generate());\n return this;\n }\n addParts(func = (parts) => parts, useDefaults = true) {\n var parts = [];\n if (useDefaults)\n parts = generateDefaultParts(this._model);\n this._model.parts = func(parts);\n return this;\n }\n getModel() {\n return this._model;\n }\n addActionList(actionListsFunc) {\n var actionLists = actionListsFunc && actionListsFunc() || new ActionLists(this._context.surface, this._selectionSettings.selection, this._context.undoEngine, () => { });\n this._disposables.push(actionLists);\n this._model.actionLists = actionLists;\n return this;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_designerInitializer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { availableFonts } from '../../property-grid/widgets/fonteditor/_fonts';\nimport { DragDropHandler } from '../dragDrop/_dragDropHandler';\nimport { DragHelperContent } from '../dragDrop/_dragHelperContent';\nimport { SelectionDragDropHandler } from '../dragDrop/_selectionDragDropHandler';\nimport { ToolboxDragDropHandler } from '../dragDrop/_toolboxDragDropHandler';\nimport { InlineTextEdit } from '../internal/_inlineTextEdit';\nimport { getToolboxItems } from '../internal/_utils';\nimport { CombinedObject } from '../selection/_combinedObj';\nimport { SurfaceSelection } from '../selection/_selection';\nimport { SnapLinesCollector } from '../snapLines/_snapLinesCollector';\nimport { SnapLinesHelper } from '../snapLines/_snapLinesHelper';\nimport { TabInfo } from '../tools/tabInfo';\nimport { CommonDesignerGenerator, DesignerContextGenerator } from './_designerCreator';\nexport function createDesigner(model, surface, controlsFactory, groups = {}, editors = [], parts, rtl, selection, designControlsHelper, undoEngine, customMerge, snapLinesCollector, groupLocalizationIDs) {\n var context = new DesignerContextGenerator(rtl)\n .addModel(model)\n .addSurface(surface)\n .addUndoEngine(undoEngine)\n .getContext();\n var designerGenerator = new CommonDesignerGenerator(context, rtl);\n return designerGenerator\n .addDisposableContainer()\n .mapOnContext()\n .addSelection((settings) => {\n settings.selection = selection || new SurfaceSelection();\n settings.snapHelper = new SnapLinesHelper(surface, SnapLinesHelper.snapTolerance, snapLinesCollector || new SnapLinesCollector());\n settings.editableObject = CombinedObject.getEditableObject(settings.selection, context.undoEngine, customMerge).extend({ throttle: 1 });\n settings.addDragDrop((dragDropSettings) => {\n dragDropSettings.dragHelperContent = new DragHelperContent(settings.selection);\n dragDropSettings.dragDropStarted = DragDropHandler.started;\n dragDropSettings.addDragDropHandler('dragHandler', new SelectionDragDropHandler(context.surface, settings.selection, context.undoEngine, settings.snapHelper, dragDropSettings.dragHelperContent));\n dragDropSettings.addDragDropHandler('toolboxDragHandler', new ToolboxDragDropHandler(context.surface, settings.selection, context.undoEngine, settings.snapHelper, dragDropSettings.dragHelperContent, controlsFactory));\n });\n settings.addResize((resizeSettings) => {\n resizeSettings.handler = {\n starting: () => {\n selection.expectClick = true;\n context.undoEngine().start();\n },\n stopped: () => {\n context.undoEngine().end();\n setTimeout(() => { selection.expectClick = false; }, 100);\n },\n disabled: DragDropHandler.started,\n snapHelper: settings.snapHelper\n };\n });\n })\n .addToolboxItems(() => getToolboxItems(controlsFactory.controlsMap))\n .addIsLoading()\n .addControlProperties(editors, groups)\n .addPopularProperties(controlsFactory)\n .addControlsHelper((settings) => {\n settings\n .addControlsHelper(designControlsHelper)\n .addControlsStore();\n })\n .addTabPanel(undefined, () => {\n return [\n new TabInfo({\n text: 'Properties',\n template: 'dxrd-propertiestab',\n model: designerGenerator.getModel().propertyGrid,\n localizationId: 'AnalyticsCoreStringId.Cmd_Properties',\n visible: ko.pureComputed(() => { return !!model(); }),\n disabled: ko.pureComputed(() => { return designerGenerator.getModel().propertyGrid.focusedItem() instanceof Array; }).extend({ throttle: 100 })\n })\n ];\n })\n .addContextActions((settings) => {\n settings.actionProviders = [];\n settings.createDefaultActions(designerGenerator.getModel().editableObject, designerGenerator.getModel().undoEngine);\n })\n .addMenu((settings) => {\n settings.appMenuVisible = ko.observable(false);\n settings.toggleAppMenu = function () {\n settings.appMenuVisible(!settings.appMenuVisible());\n };\n settings.getMenuPopupContainer = (el) => $.fn.constructor(el).closest('.dxrd-menu-button').prev('.dxrd-menu-container');\n settings.getMenuPopupTarget = (el) => $.fn.constructor(el).closest('.dxrd-menu-button').find('.dxrd-menu-place');\n })\n .addElement('inlineTextEdit', () => new InlineTextEdit(designerGenerator.getModel().selection))\n .addElement('actionsGroupTitle', () => () => getLocalization('Actions', 'AnalyticsCoreStringId.Actions'))\n .addElement('updateFont', () => (values) => {\n availableFonts(Object.assign(Object.assign({}, availableFonts()), values));\n })\n .addElement('sortFont', () => () => {\n var sortedObj = {};\n var fonts = availableFonts.peek();\n Object.keys(fonts).sort((a, b) => { return a.localeCompare(b); }).forEach(key => sortedObj[key] = fonts[key]);\n availableFonts(sortedObj);\n })\n .addElement('surfaceSize', () => ko.observable(0))\n .addElement('popularVisible', () => ko.pureComputed(() => {\n return designerGenerator.getModel().popularProperties._editors().some((x) => { return x.visible(); }) ||\n designerGenerator.getModel().contextActions && designerGenerator.getModel().contextActions().length > 0;\n }))\n .addActionList()\n .addParts()\n .getModel();\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_fieldListProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nexport class FieldListProvider {\n constructor(fieldListCallback, rootItems, extenders, rootItemsNoDragable = false) {\n this.deferreds = [];\n this._extenders = extenders;\n this.getItems = (pathRequest) => {\n var result = $.Deferred();\n var items = [];\n if (this._beforeFieldListCallback(pathRequest, items)) {\n result.resolve(items);\n }\n else if (rootItems && !pathRequest.fullPath) {\n items.push.apply(items, $.map(rootItems(), (item) => {\n var _el = { name: item.id || item.ref, displayName: item.name, isList: true, specifics: item.specifics || 'ListSource', dragData: { noDragable: false } };\n if (rootItemsNoDragable)\n delete _el.dragData;\n return _el;\n }));\n this._afterFieldListCallBack(pathRequest, items);\n result.resolve(items);\n }\n else {\n this._patchRequest(pathRequest, rootItems);\n this.deferreds.push(result);\n fieldListCallback(pathRequest).done((fields) => {\n items.push.apply(items, fields);\n this._afterFieldListCallBack(pathRequest, items);\n result.resolve(items);\n })\n .fail((error) => result.reject(error))\n .always(() => this.deferreds.splice(this.deferreds.indexOf(result), 1));\n }\n return result.promise();\n };\n this.dispose = () => {\n this.getItems = null;\n fieldListCallback = null;\n this.deferreds.forEach(result => result.reject());\n };\n }\n _patchRequest(request, dataSources) {\n if (!dataSources) {\n return;\n }\n var dss = dataSources.peek();\n for (var i = 0; i < dss.length; i++) {\n if (dss[i].id === request.id && !!request.id) {\n request.ref = undefined;\n return;\n }\n if (dss[i].ref === request.ref && !!request.ref) {\n request.id = undefined;\n return;\n }\n }\n }\n _beforeFieldListCallback(request, items) {\n return !!this._extenders && this._extenders.some((extender) => { return extender.beforeItemsFilled(request, items); });\n }\n _afterFieldListCallBack(request, items) {\n this._extenders && this._extenders.forEach((extender) => { extender.afterItemsFilled && extender.afterItemsFilled(request, items); });\n }\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_infoMessageHelpers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport notify from 'devextreme/ui/notify';\nimport * as $ from 'jquery';\nimport { chooseBetterPositionOf } from '../internal/_surfaceHelpers';\nimport { DEBUG } from './_debug';\nexport var NotifyType = {\n info: 'info',\n warning: 'warning',\n error: 'error',\n success: 'success'\n};\nvar wrappedConsole = (console => {\n var getWrappedMethod = methodName => (function (...args) {\n if (console && $.isFunction(console[methodName])) {\n console[methodName].apply(console, arguments);\n }\n });\n return {\n info: getWrappedMethod('info'),\n warn: getWrappedMethod('warn'),\n error: getWrappedMethod('error')\n };\n})(window.console);\nexport function NotifyAboutWarning(msg, showForUser = false) {\n if (showForUser) {\n ShowMessage(msg);\n }\n if (DEBUG) {\n throw new Error(msg);\n }\n else {\n wrappedConsole.warn(msg);\n }\n}\nexport function getErrorMessage(deferredResult) {\n return deferredResult && deferredResult.responseJSON && deferredResult.responseJSON.error ? deferredResult.responseJSON.error : '';\n}\nvar _showMessage = (msg, type = 'error', displayTime, debugInfo, contentTemplate, containerElement) => {\n containerElement = containerElement || $.fn.constructor('.dx-designer-viewport')[0];\n notify({\n message: msg,\n type: type,\n maxWidth: containerElement ? containerElement.clientWidth : undefined,\n position: { boundary: containerElement, collision: 'fit', of: chooseBetterPositionOf(document.documentElement, containerElement), my: 'bottom', at: 'bottom', offset: '0 -10' },\n container: containerElement,\n hideOnOutsideClick: true,\n closeOnSwipe: false,\n displayTime: displayTime || (type === 'error' ? 60000 : 3000),\n contentTemplate: contentTemplate\n });\n};\nexport var ShowMessage = _showMessage;\nexport var _setShowMessageFunc = (func) => ShowMessage = func;\nexport var _resetShowMessageFunc = () => ShowMessage = _showMessage;\n","/**\r\n* DevExpress Analytics (core\\utils\\_troubleshootingHelpers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nimport { ShowMessage } from './_infoMessageHelpers';\nconst href = 'https://go.devexpress.com/Web_Reporting_Diagnostics_Tips.aspx';\nexport const showTroubleshootingMessage = () => {\n const link = `Reporting Application Diagnostics`;\n const popupMessage = 'Open the browser developer console to investigate the issue. Review the following help topic: ';\n const consoleMessage = `Review the following help topic to diagnose a problem: ${href}`;\n ShowMessage('', 'error', null, null, function () {\n return `
${popupMessage}${link}
`;\n });\n console.log(consoleMessage);\n};\nexport const assignTroubleshootingPage = (element) => {\n const page = getTroubleshootingPage();\n const _element = element instanceof Element ? element : element[0];\n _element.innerHTML = page;\n};\nexport const troubleshootingPageWrapper = (target, showErrorPage, element) => {\n try {\n return target();\n }\n catch (e) {\n if (showErrorPage && element) {\n assignTroubleshootingPage(element);\n }\n throw e;\n }\n};\nexport const getTroubleshootingPage = () => {\n const link = `following help topic`;\n const iconTemplate = getTemplate('dxrd-svg-error');\n const icon = iconTemplate ? `
${iconTemplate}
` : '';\n const title = 'Something went wrong';\n const message = `Review the ${link} to diagnose a problem.`;\n return `
${icon}
${title}
${message}
`;\n};\n","/**\r\n* DevExpress Analytics (core\\utils\\_units.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function roundingXDecimals(value, useFloor = false, x = 3) {\n return (useFloor ? Math.floor : Math.round)(value * Math.pow(10, x)) / Math.pow(10, x);\n}\nexport function unitsToPixel(val, measureUnit, zoom = 1) {\n var result;\n if (measureUnit === 'Pixels') {\n result = 1 * val;\n }\n else if (measureUnit === 'TenthsOfAMillimeter') {\n result = val * 3.78 / 10;\n }\n else {\n result = val * 96 / 100;\n }\n result = result * (zoom);\n return roundingXDecimals(result, true);\n}\nexport function pixelToUnits(val, measureUnit, zoom) {\n var result;\n if (measureUnit === 'Pixels') {\n result = 1 * val;\n }\n else if (measureUnit === 'TenthsOfAMillimeter') {\n result = val / 3.78 * 10;\n }\n else {\n result = val / 96 * 100;\n }\n result = result / (zoom);\n return roundingXDecimals(result);\n}\nexport function createUnitProperty(model, target, propertyName, property, measureUnit, zoom, afterCreation) {\n var lastVal = 0;\n target[propertyName] = ko.pureComputed({\n read: () => {\n var val = property(model)(), newVal = unitsToPixel(val, measureUnit.peek(), zoom());\n if (Math.abs(newVal - lastVal) > 0.2) {\n lastVal = newVal;\n return lastVal;\n }\n return lastVal;\n },\n write: (val) => {\n if (Math.abs(val - lastVal) <= 0.2)\n return;\n lastVal = val;\n var result = pixelToUnits(val, measureUnit.peek(), zoom());\n property(model)(result);\n }\n });\n afterCreation(target[propertyName]);\n}\nexport function createUnitProperties(model, target, properties, measureUnit, zoom, afterCreation) {\n if (!properties)\n return;\n Object.keys(properties).forEach(propertyName => {\n createUnitProperty(model, target, propertyName, properties[propertyName], measureUnit, zoom, afterCreation);\n });\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { calculateWithZoomFactor } from '../../accessibility/_internal';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { noDataText, searchPlaceholder, selectPlaceholder } from '../../property-grid/localization/_localization';\nimport { editorTemplates } from '../../property-grid/widgets/editorsInfo';\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nimport { extend } from '../../serializer/_utils';\nimport { getParentContainer } from '../../widgets/_utils';\nimport { ajaxSetup } from '../internal/ajaxSetup';\nimport { dxversions } from '../internal/dx-versions';\nimport { _errorProcessor, _processError } from '../internal/_processError';\nimport { convertFromCssPixelUnits } from '../internal/_utils';\nimport { getErrorMessage as igetErrorMessage } from './_infoMessageHelpers';\nimport { objectsVisitor } from './_visitors';\nimport { requestManager } from '../internal/requestManager';\nimport { fetchSetup } from '../internal/fetchSetup';\nexport function copyObservables(from, to) {\n Object.keys(from || {}).forEach((name) => {\n if (ko.isObservable(from[name])) {\n to[name](from[name]());\n }\n else if (!$.isFunction(from[name])) {\n copyObservables(from[name], to[name]);\n }\n });\n}\nexport function _wrapModelInObservable(model) {\n return ko.isWritableObservable(model) ? model : ko.observable(null);\n}\nexport function collectGroupsFromFlatList(list, getGroupId) {\n var temp = {};\n return list.reduce((res, val) => {\n var groupId = getGroupId(val);\n if (groupId) {\n if (temp[groupId])\n temp[groupId].push(val);\n else {\n var group = { group: groupId, items: [val] };\n res.push(group);\n temp[groupId] = group.items;\n }\n }\n return res;\n }, []);\n}\nexport function compareObjects(a, b) {\n var result = a && b && !(a instanceof Array) && !(b instanceof Array);\n result = result && (Object.getOwnPropertyNames(a).length === Object.getOwnPropertyNames(b).length);\n if (result) {\n Object.keys(a || {}).some((name) => {\n if (name.indexOf('_') !== 0 && (typeof a[name] !== 'function' || ko.isObservable(a[name]))) {\n if (ko.isObservable(a[name])) {\n result = ko.unwrap(a[name]) === ko.unwrap(b[name]);\n }\n else if (a[name] instanceof Array) {\n if ((b[name] instanceof Array) && a[name].length === b[name].length) {\n for (var i = 0; i < a[name].length; i++) {\n result = compareObjects(a[name][i], b[name][i]);\n if (result === false)\n break;\n }\n }\n else {\n result = false;\n }\n }\n else if (a[name] instanceof Object) {\n result = compareObjects(a[name], b[name]);\n }\n else {\n result = a[name] === b[name];\n }\n return !result;\n }\n });\n }\n return result;\n}\nexport var cssTransform = ['-webkit-transform', '-moz-transform', '-ms-transform', '-o-transform', 'transform'];\nexport function getFullPath(path, dataMember) {\n return path + (dataMember ? '.' + dataMember : '');\n}\nexport function loadTemplates() {\n var promises = $.fn.constructor(\"script[type='text/html']\").map(function (_, script) {\n if (script.src) {\n var deffered = $.Deferred();\n $.get(script.src)\n .done(function (tmpl) {\n script.text = tmpl;\n if (tmpl.indexOf('type=\"text/html\"') !== -1 || tmpl.indexOf(\"type='text/html'\") !== -1) {\n $.fn.constructor(document.body).append(tmpl);\n }\n deffered.resolve();\n })\n .fail(function (jqXHR, textStatus, errorThrown) {\n deffered.reject();\n });\n return deffered.promise();\n }\n });\n return $.when.apply($.when, promises);\n}\nexport function getSizeFactor(width) {\n if (width < 768) {\n return 'xs';\n }\n else if (width < 992) {\n return 'sm';\n }\n else if (width < 1200) {\n return 'md';\n }\n else if (width < 1380) {\n return 'lg';\n }\n else {\n return 'xl';\n }\n}\nexport var staticContext = {\n _static: {\n searchPlaceholder: () => searchPlaceholder(),\n selectPlaceholder: () => selectPlaceholder(),\n noDataText: () => noDataText(),\n ajaxSetup: ajaxSetup\n }\n};\nexport var _defaultStaticContext = createGlobalModuleVariableFunc({});\nexport function appendStaticContextToRootViewModel(root, dx = staticContext, className) {\n if (dx)\n root.dx = Object.assign(Object.assign({}, dx), _defaultStaticContext());\n root.getLocalization = function () {\n return getLocalization.apply(root, arguments);\n };\n root.getPopupContainer = getParentContainer;\n root.calculateWithZoomFactor = calculateWithZoomFactor;\n root.surfaceClass = (el) => 'dx-designer-viewport dx-designer-viewport-' + getSizeFactor(el.clientWidth) +\n ' ' + (!getParentContainer(el, '.dx-theme-generic').length ? ' dx-theme-generic' : '') +\n (className ? ' ' + className : '');\n}\nexport function _ajax(uri, action, arg, processErrorCallback, ignoreError, customOptions, isError = (data) => !data.success, getErrorMessage = igetErrorMessage, method = 'POST') {\n var deferred = $.Deferred();\n var requestData;\n if (action !== undefined && arg !== undefined) {\n requestData = {\n actionKey: action,\n arg: arg,\n dxversions: JSON.stringify(dxversions)\n };\n }\n const requestManagerSetup = {\n ajaxSetup,\n fetchSetup\n };\n requestManager.getInstance(requestManagerSetup).sendRequest(extend({}, {\n type: method,\n data: requestData,\n url: uri\n }, customOptions)).fail((jqXHR, textStatus, errorThrown) => {\n if (ignoreError && ignoreError()) {\n deferred.reject();\n return;\n }\n _errorProcessor.call({ jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown, getRequestDetails: () => requestData || uri });\n _processError(errorThrown, deferred, jqXHR, textStatus, processErrorCallback);\n })\n .done((data, textStatus, jqXHR) => {\n if (!data) {\n deferred.reject();\n return;\n }\n if (!isError(data)) {\n deferred.resolve(data.result);\n }\n else {\n if (ignoreError && ignoreError()) {\n deferred.reject();\n return;\n }\n _errorProcessor.call({ jqXHR: jqXHR, textStatus: textStatus, data: data, errorThrown: getErrorMessage(jqXHR), getRequestDetails: () => requestData || uri });\n _processError('Internal Server Error', deferred, jqXHR, textStatus, processErrorCallback);\n }\n });\n return deferred.promise();\n}\nexport function _ajaxWithOptions(options) {\n return _ajax(options.uri, options.action, options.arg, options.processErrorCallback, options.ignoreError, options.customOptions, options.isError, options.getErrorMessage, options.method);\n}\nexport var ajax = (...params) => {\n if (params.length > 1) {\n return _ajax.apply(this, params);\n }\n else {\n return _ajaxWithOptions(params[0]);\n }\n};\nexport function setAjax(newFunc) {\n ajax = newFunc;\n}\nexport function cutRefs(model) {\n objectsVisitor(model, (target) => {\n delete target['@Ref'];\n });\n return model;\n}\nexport var DesignerBaseElements = {\n MenuButton: 'dxrd-menubutton-template-base',\n Toolbar: 'dxrd-toolbar-template-base',\n Toolbox: 'dxrd-toolbox-template-base',\n GroupedToolbox: 'dxrd-grouped-toolbox-template-base',\n Surface: 'dxrd-surface-template-base',\n RightPanel: 'dxrd-right-panel-template-base'\n};\nexport function generateDefaultParts(model) {\n return [\n { id: DesignerBaseElements.MenuButton, templateName: DesignerBaseElements.MenuButton, model: model },\n { id: DesignerBaseElements.Toolbar, templateName: DesignerBaseElements.Toolbar, model: model },\n { id: DesignerBaseElements.Toolbox, templateName: DesignerBaseElements.Toolbox, model: model },\n { id: DesignerBaseElements.Surface, templateName: DesignerBaseElements.Surface, model: model },\n { id: DesignerBaseElements.RightPanel, templateName: DesignerBaseElements.RightPanel, model: model }\n ];\n}\nexport function createActionWrappingFunction(wrapperName, func) {\n return (actions) => {\n actions.forEach(action => {\n if (!action['wrappedWith'] || action['wrappedWith'].indexOf(wrapperName) === -1) {\n var oldClickHandler = action.clickAction;\n action.clickAction = (model) => {\n return func(model, oldClickHandler);\n };\n action['wrappedWith'] = action['wrappedWith'] || [];\n action['wrappedWith'].push(wrapperName);\n }\n });\n };\n}\nexport function localizeNoneString(noneValue) {\n var value = ko.unwrap(noneValue);\n if (value === 'none') {\n return getLocalization('none', 'DataAccessStringId.ParameterListEmpty');\n }\n else if (value === '(none)') {\n return (getLocalization('(none)', 'DxDesignerStringId.None') !== '(none)') ? getLocalization('(none)', 'DxDesignerStringId.None') : ('(' + getLocalization('none', 'DataAccessStringId.ParameterListEmpty') + ')');\n }\n return value;\n}\nexport function parseZoom(val) {\n var _value = Math.round(parseInt(val.replace('%', ''))) / 100;\n if (!_value)\n return 1;\n if (_value >= 5)\n return 5;\n if (_value <= 0.1)\n return 0.1;\n return _value;\n}\nexport function getResizableOptions($element, panelOffset, minWidth, position, startPosition, width, disabled) {\n const disabledOption = ko.unwrap(disabled);\n const minWidthOption = ko.unwrap(minWidth);\n return {\n starting: function (e) {\n $.fn.constructor($element).css(position === startPosition ? 'right' : 'left', '');\n },\n handles: ko.observable(position === startPosition ? 'e' : 'w'),\n stopped: $.noop,\n stop: $.noop,\n resize: function (event, element) {\n const startResizePosition = convertFromCssPixelUnits(element.dataset.originalLeftMousePosition);\n const originalWidth = convertFromCssPixelUnits(element.dataset.originalWidth);\n const sizeDiff = event.x - startResizePosition;\n $.fn.constructor($element).css({ left: position === startPosition ? panelOffset + 'px' : '', right: position === startPosition ? '' : panelOffset + 'px' });\n const newWidth = Math.min(Math.max(minWidthOption, position === startPosition ? originalWidth + sizeDiff : originalWidth - sizeDiff), 1000);\n width && ko.isObservable(width) && width(newWidth);\n },\n disabled: disabled || false,\n zoom: 1,\n minimumWidth: ko.observable(disabledOption ? 0 : minWidthOption),\n maximumWidth: 1000,\n $element: $element\n };\n}\nexport function createPasswordSerializationInfo(info, isNew = true) {\n info.editor = editorTemplates.getEditor('text');\n info.editorOptions = { mode: 'password' };\n if (isNew)\n info.editorOptions.inputAttr = { autocomplete: 'new-password' };\n return info;\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\_visitors.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function objectsVisitor(target, visitor, visited = [], skip = ['surface', 'reportSource']) {\n if (visited.indexOf(target) !== -1) {\n return;\n }\n if (target && target !== undefined) {\n var properties = [];\n Object.keys(target).forEach(propertyName => {\n if (visited.indexOf(target[propertyName]) === -1 && propertyName.indexOf('_') !== 0 && skip.indexOf(propertyName) === -1) {\n properties.push(target[propertyName]);\n }\n });\n visitor(target);\n visited.push(target);\n for (var i = 0; i < properties.length; i++) {\n properties[i] = ko.unwrap(properties[i]);\n if (typeof properties[i] === 'object') {\n objectsVisitor(properties[i], visitor, visited, skip);\n }\n }\n }\n}\nexport function collectionsVisitor(target, visitor, collectionsToProcess = ['controls', 'bands', 'subBands', 'crossBandControls', 'rows', 'cells', 'fields'], visited = []) {\n if (target && target !== undefined) {\n visited.push(target);\n for (var i = 0, len = collectionsToProcess.length; i < len; i++) {\n if (target[collectionsToProcess[i]]) {\n visitor(target[collectionsToProcess[i]], target);\n (target[collectionsToProcess[i]]() || []).forEach((item) => collectionsVisitor(item, visitor, collectionsToProcess, visited));\n }\n }\n }\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\controlsFactory.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { getLocalization } from '../../property-grid/localization/_localization';\nimport { extend } from '../../serializer/_utils';\nimport { ElementViewModel } from '../elements/elementViewModel';\nimport { getTypeNameFromFullName } from '../internal/_getNameHelpers';\nexport class ControlsFactory {\n constructor() {\n this.controlsMap = {};\n }\n getControlInfo(controlType) {\n var info = this.controlsMap[controlType] || null;\n return info;\n }\n getControlType(model) {\n var controlType = getTypeNameFromFullName(model['@ControlType'] || '');\n return this.controlsMap[controlType] ? controlType : 'Unknown';\n }\n createControl(model, parent, serializer) {\n var controlType = this.getControlType(model);\n return new (this.controlsMap[controlType] && this.controlsMap[controlType].type || ElementViewModel)(model, parent, serializer);\n }\n registerControl(typeName, metadata) {\n if (metadata.isToolboxItem !== undefined) {\n metadata.nonToolboxItem = !metadata.isToolboxItem;\n }\n Object.defineProperty(metadata, 'isToolboxItem', {\n get: () => {\n return !metadata.nonToolboxItem;\n },\n set: (newVal) => {\n metadata.nonToolboxItem = !newVal;\n },\n enumerable: true,\n configurable: true\n });\n this.controlsMap[typeName] = metadata;\n this.controlsMap[typeName].info = extend(true, [], metadata.info);\n }\n _getPropertyInfoByDisplayName(info, path, position) {\n return info.filter((x) => getLocalization(x.displayName, x.localizationId) === path[position])[0];\n }\n _getPropertyInfoByName(info, path, position) {\n return info.filter((x) => x.propertyName === path[position] || x.modelName === '@' + path[position] || x.modelName === path[position])[0];\n }\n _getPropertyInfo(info, path, position) {\n var propertyInfo = this._getPropertyInfoByDisplayName(info, path, position) || this._getPropertyInfoByName(info, path, position);\n if (position === path.length - 1) {\n return propertyInfo || null;\n }\n else {\n if (propertyInfo.info) {\n return this._getPropertyInfo(propertyInfo.info, path, position + 1);\n }\n else if (propertyInfo.from) {\n var object = null;\n try {\n object = propertyInfo.from({});\n }\n catch (e) {\n return null;\n }\n var newInfo = object.getInfo && object.getInfo();\n if (newInfo) {\n return this._getPropertyInfo(newInfo, path, position + 1);\n }\n }\n }\n return null;\n }\n getPropertyInfo(controlType, path) {\n var properties = path;\n if (!$.isArray(path)) {\n properties = path.split('.');\n }\n return this._getPropertyInfo(this.controlsMap[controlType].info, properties, 0);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\utils\\parsers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getShortTypeName } from '../internal/_getNameHelpers';\nexport function floatFromModel(val) {\n return ko.observable(val === undefined || val === null ? null : parseFloat(val));\n}\nexport function fromEnum(value) {\n var shotEnumValueKey = getShortTypeName(value);\n var valuesArrayItem = this.valuesArray && this.valuesArray.filter(item => item.value == shotEnumValueKey)[0];\n return ko.observable((this.values && this.values[shotEnumValueKey] !== undefined || valuesArrayItem) ? shotEnumValueKey : value);\n}\nexport function parseBool(val) {\n return ko.observable(val !== void 0 ? String(val).toLowerCase() === 'true' : val);\n}\nexport function colorFromString(val) {\n var color = (val || '').split(',');\n var result = ko.observable(val);\n if (color.length === 3) {\n result = ko.observable('rgb(' + color.join(', ') + ')');\n }\n else if (color.length === 4) {\n var alpha = Math.round(parseFloat(color[0]) / 255 * 100) / 100;\n color.shift();\n color.push(alpha.toString());\n result = ko.observable('rgba(' + color.join(', ') + ')');\n }\n return result;\n}\nexport function saveAsInt(val) {\n return Math.round(val).toString();\n}\nexport function colorToInt(color) {\n var colorAsString = colorToString(color).split(',');\n return (parseInt(colorAsString[0]) << 24) + (parseInt(colorAsString[1]) << 16) + (parseInt(colorAsString[2]) << 8) + (parseInt(colorAsString[3]));\n}\nexport function intToColor(color, hasAlpha = true) {\n var r = Math.round((color >> 16) & 0xff);\n var g = Math.round((color >> 8) & 0xff);\n var b = Math.round((color) & 0xff);\n if (hasAlpha) {\n var a = Math.round((color >> 24) & 0xff);\n return colorFromString([a, r, g, b].join(', '))();\n }\n else {\n return colorFromString([r, g, b].join(', '))();\n }\n}\nexport function colorToString(val) {\n var color = (val || '').split(', ');\n var result = val;\n if (color.length === 3) {\n color[0] = color[0].split('(')[1];\n color[2] = color[2].split(')')[0];\n result = color.join(',');\n }\n else if (color.length === 4) {\n var alpha = Math.round(parseFloat(color[3]) * 255);\n color.pop();\n color[0] = color[0].split('(')[1];\n result = alpha.toString() + ',' + color.join(',');\n }\n return result;\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\_dataMemberEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class DataMemberTreeListController {\n constructor() {\n this.selectedItem = null;\n this.suppressActions = true;\n }\n dispose() {\n this.selectedItem = null;\n }\n itemsFilter(item) {\n return item.specifics !== 'parameters' && (item.specifics === 'List' || item.specifics === 'ListSource' || item.isList === true || item.specifics === 'none');\n }\n hasItems(item) {\n return item.specifics !== 'none';\n }\n canSelect(value) {\n return (this.hasItems(value.data) && !!value.path && (value.data.specifics === 'List' || value.data.specifics === 'ListSource')) || value.data.specifics === 'none';\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem && this.selectedItem.isSelected(false);\n this.selectedItem = value;\n value.isSelected(true);\n }\n }\n isDraggable(item) {\n return false;\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\_popupEditorBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/_localization';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { Disposable } from '../../serializer/utils';\nexport class PopupEditorBase extends Disposable {\n constructor() {\n super();\n this.popupVisible = ko.observable(false);\n this.buttonItems = [];\n this._createMainPopupButtons();\n }\n _createMainPopupButtons() {\n var self = this;\n this._disposables.push(this._disableSaveButton = ko.pureComputed(() => !self.canSave()));\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: this.saveLocalization, type: 'default', stylingMode: 'contained', onClick: function (sender) { self.save(sender); }, disabled: this._disableSaveButton } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: this.cancelLocalization, type: 'normal', stylingMode: 'contained', onClick: function () { self.close(); } } }\n ];\n this._disposables.push(this._disableSaveButton);\n }\n canSave() {\n return true;\n }\n save(sender) {\n this.popupVisible(false);\n }\n close() {\n this.popupVisible(false);\n }\n get cancelLocalization() {\n return getLocalization('Cancel', StringId.DataAccessBtnCancel);\n }\n get saveLocalization() {\n return getLocalization('OK', StringId.DataAccessBtnOK);\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\_requiredNullableEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Editor } from '../../property-grid/widgets/editor';\nimport { requiredValidationRules } from '../../property-grid/widgets/internal/_internal';\nimport { ValueEditorHelper } from '../../widgets/internal/_valueEditorHelper';\nexport class RequiredNullableEditor extends Editor {\n _getEditorValidationRules() {\n var _a;\n return (super._getEditorValidationRules() || []).concat(ko.unwrap((_a = this.editorOptions) === null || _a === void 0 ? void 0 : _a.showClearButton) ? [] : requiredValidationRules);\n }\n}\nexport function createNumericEditor(dotNetTypeFullName, specifics) {\n class DynamicNumberEditor extends RequiredNullableEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n }\n getOptions(templateOptions) {\n var options = super.getOptions(templateOptions);\n return ValueEditorHelper.getNumberEditorOptions(dotNetTypeFullName, specifics, options);\n }\n }\n return {\n header: 'dx-number-editor',\n editorType: DynamicNumberEditor\n };\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\bordereditor\\_binding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { BordersModel } from './_bordereditor';\nimport { getTemplate } from '../../../property-grid/widgets/templateUtils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nko.bindingHandlers['dxBorderEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrd-bordereditor'), $element = $.fn.constructor(element).append(templateHtml);\n var model = new BordersModel(valueAccessor());\n ko.applyBindings({ value: model }, $element.children()[0]);\n addDisposeCallback(element, () => model.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (core\\widgets\\bordereditor\\_bordereditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nexport class BordersModel extends Disposable {\n constructor(object) {\n super();\n this.left = ko.observable(false);\n this.right = ko.observable(false);\n this.top = ko.observable(false);\n this.bottom = ko.observable(false);\n this.disabled = object.disabled || ko.observable(false);\n this.value = object.value;\n this.updateModel(object.value());\n this._disposables.push(object.value.subscribe((newVal) => {\n this.updateModel(newVal);\n }));\n }\n _setAllValues(value) {\n this.left(value), this.bottom(value), this.right(value), this.top(value);\n }\n setValue(name) {\n if (this.disabled())\n return;\n this[name](!this[name]());\n this.updateValue();\n }\n setAll() {\n if (this.disabled())\n return;\n this._setAllValues(true);\n this.updateValue();\n }\n setNone() {\n if (this.disabled())\n return;\n this._setAllValues(false);\n this.updateValue();\n }\n updateModel(value) {\n var val = value || 'None';\n if (val.indexOf('All') !== -1) {\n this._setAllValues(true);\n }\n else if (val.indexOf('None') !== -1) {\n this._setAllValues(false);\n }\n else {\n this.left(val.indexOf('Left') !== -1);\n this.top(val.indexOf('Top') !== -1);\n this.right(val.indexOf('Right') !== -1);\n this.bottom(val.indexOf('Bottom') !== -1);\n }\n }\n updateValue() {\n var result = [];\n if (this.left() && this.right() && this.top() && this.bottom()) {\n result.push('All');\n }\n else if (!this.left() && !this.right() && !this.top() && !this.bottom()) {\n result.push('None');\n }\n else {\n this.left() ? result.push('Left') : null;\n this.right() ? result.push('Right') : null;\n this.top() ? result.push('Top') : null;\n this.bottom() ? result.push('Bottom') : null;\n }\n this.value(result.join(','));\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\propertygrid\\_controlProperties.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { ObjectProperties } from '../../../property-grid/propertygrid';\nimport { Group } from './_group';\nimport { PopupService } from '../../../property-grid/internal/_popupService';\nimport { getImageClassName, getControlFullName } from '../../internal/_getNameHelpers';\nimport { searchPlaceholder } from '../../../property-grid/localization/_localization';\nimport dxTextBox from 'devextreme/ui/text_box';\nexport class ControlProperties extends ObjectProperties {\n constructor(target, editorsInfo, level = 0, useAddons = true) {\n super(target, editorsInfo, level, undefined, undefined, ko.observable(''), useAddons && new PopupService());\n this.focusedItem = ko.observable();\n this.editorsRendered = ko.observable(false);\n this.isSortingByGroups = ko.observable(true);\n this.isSearching = ko.observable(false);\n this.allEditorsCreated = ko.observable(false);\n this.textToSearch = ko.observable('');\n this._searchBox = null;\n this.searchPlaceholder = () => searchPlaceholder();\n this.switchSearchBox = () => {\n if (this.isSearching()) {\n this.isSearching(false);\n this.textToSearch('');\n }\n else {\n this.isSearching(true);\n this._searchBox && this._searchBox.focus();\n }\n };\n this.createGroups(editorsInfo.groups);\n this.update(target());\n this._disposables.push(this.focusedImageClassName = ko.pureComputed(() => {\n return getImageClassName(target() && target().controlType);\n }));\n var subscription = this.isSortingByGroups.subscribe((newVal) => {\n if (!newVal) {\n this.editorsRendered(true);\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n this.focusedItem = target;\n this._disposables.push(target.subscribe((newValue) => {\n if (this.isSearching() && !this.textToSearch())\n this.switchSearchBox();\n }));\n this.displayExpr = (value) => getControlFullName(value);\n var timeout = null;\n this._disposables.push(this.textToSearch.subscribe((newValue) => {\n timeout && clearTimeout(timeout);\n timeout = setTimeout(() => {\n this._textToSearch(newValue);\n newValue && this.groups.forEach(group => group.collapsed() && group.editors().some(editor => editor.isSearchedProperty()) && group.collapsed(false));\n }, 200);\n }));\n }\n getEditors() {\n var editors = super.getEditors();\n var editorNames = editors.map((editor) => { return editor.displayName(); }).sort();\n editors.sort((a, b) => {\n return editorNames.indexOf(a.displayName()) - editorNames.indexOf(b.displayName());\n });\n return editors;\n }\n _update(target, editorsInfo, recreateEditors) {\n this.groups && this.groups.forEach((group) => {\n if (group.editors().length === 0)\n group.recreate();\n });\n return super._update(target, editorsInfo, recreateEditors);\n }\n cleanEditors() {\n super.cleanEditors();\n this.groups.forEach(x => x.resetEditors());\n }\n dispose() {\n super.dispose();\n this.disposeArray(this.groups);\n this.disposeObservableArray(this._editors);\n this.resetObservableArray(this._editors);\n this.cleanSubscriptions();\n this._searchBox = null;\n this.focusedItem = null;\n }\n createGroups(groups) {\n this.groups = Object.keys(groups).map((name) => {\n return new Group(name, groups[name].info, (serializationInfo) => {\n return serializationInfo\n .filter(info => !!info.editor)\n .map(info => {\n var editor = this.findEditorByInfo(info);\n if (editor)\n return editor;\n editor = this.createEditor(info);\n this._editors.push(editor);\n return editor;\n });\n }, true, groups[name].displayName);\n });\n this._disposables.push.apply(this._disposables, this.groups);\n }\n registerAccessibilityProvider(accessibilityProvider) {\n super.registerAccessibilityProvider(accessibilityProvider);\n this.groups.forEach((group) => {\n group.registerAccessibilityProvider(accessibilityProvider);\n });\n }\n searchBox($element) {\n this._searchBox = dxTextBox.getInstance($element.get(0));\n }\n}\n","/**\r\n* DevExpress Analytics (core\\widgets\\propertygrid\\_group.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nexport class Group extends Disposable {\n constructor(name, serializationsInfo, createEditors, collapsed = true, displayName) {\n super();\n this.editors = ko.observableArray([]).extend({ deferred: true });\n this.editorsCreated = ko.observable(false);\n this.editorsRendered = ko.observable(false);\n this._displayName = name;\n this.displayName = displayName || (() => getLocalization(name));\n this._serializationsInfo = serializationsInfo;\n this.collapsed = ko.observable(collapsed);\n if (collapsed) {\n var subscription = this.collapsed.subscribe((newVal) => {\n subscription.dispose();\n this.editorsRendered(true);\n });\n this._disposables.push(subscription);\n }\n this.recreate = () => {\n this.editors(createEditors(serializationsInfo));\n if (this._accessibilityProvider) {\n this.editors().forEach((editor) => {\n editor.registerAccessibilityProvider(this._accessibilityProvider);\n });\n }\n };\n this.editors(createEditors(serializationsInfo));\n this.visible = ko.computed(() => {\n return this.editors().some(editor => editor.visible());\n });\n this._disposables.push(this.visible);\n }\n resetEditors() {\n this.disposeObservableArray(this.editors);\n this.resetObservableArray(this.editors);\n }\n dispose() {\n super.dispose();\n this.disposeObservableArray(this.editors);\n this.resetObservableArray(this.editors);\n }\n update(viewModel) {\n this._viewModel = viewModel;\n this.editors().forEach((editor) => {\n editor.update(this._viewModel);\n });\n }\n registerAccessibilityProvider(accessibilityProvider) {\n this._accessibilityProvider = accessibilityProvider;\n this.editors().forEach((editor) => {\n editor.registerAccessibilityProvider(accessibilityProvider);\n });\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\_propertiesAccessibilityProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class PropertiesAccessibilityProvider {\n isPropertyVisible(editor) {\n if (!editor._model())\n return false;\n var model = editor._model();\n var visible = model.isPropertyVisible ? model.isPropertyVisible(editor.name) : true;\n if (visible) {\n visible = this._calculateAccessibilityByPropertyInfo(model, editor.info().visible, true);\n }\n return visible;\n }\n isPropertyDisabled(editor) {\n if (!editor._model())\n return true;\n var model = editor._model();\n return model.isPropertyDisabled && model.isPropertyDisabled(editor.name) || this._calculateAccessibilityByPropertyInfo(model, editor.info().disabled, false);\n }\n _calculateAccessibilityByPropertyInfo(model, propertyInfo, defaultValue) {\n var result;\n if (ko.isObservable(propertyInfo)) {\n result = propertyInfo();\n }\n else if (typeof propertyInfo === 'function') {\n result = propertyInfo(model);\n }\n else {\n result = propertyInfo !== undefined ? propertyInfo : defaultValue;\n }\n return result;\n }\n}\nexport var defaultAccessibilityProvider = new PropertiesAccessibilityProvider();\n","/**\r\n* DevExpress Analytics (property-grid\\bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ObjectProperties } from './propertygrid';\nimport { addDisposeCallback } from '../serializer/_internal';\nimport { globalResolver } from './internal/_codeResolver';\nimport { selectPlaceholder, noDataText } from './localization/_localization';\nimport { getLocalization } from './localization/localization_utils';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport * as events from 'devextreme/events';\nimport { getTemplate } from './widgets/templateUtils';\nko.bindingHandlers['dxPropertyGrid'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-propertieseditor'), $element = $.fn.constructor(element).append(templateHtml);\n var value = valueAccessor();\n var model = new ObjectProperties(value.target, value.editorsInfo, value.level, value.parentDisabled, value.recreateEditors, value.textToSearch);\n element.setAttribute('role', 'tree');\n ko.applyBindings(bindingContext.createChildContext(model), $element.children()[0]);\n addDisposeCallback(element, function () {\n model.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\nko.virtualElements.allowedBindings['lazy'] = true;\nko.bindingHandlers['lazy'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var parsedBindings = valueAccessor();\n var resolver = parsedBindings.resolver || globalResolver;\n var isResolved = parsedBindings.isResolved || ko.observable(false);\n if (parsedBindings.innerBindings) {\n parsedBindings = parsedBindings.innerBindings;\n }\n var isDisposed = false;\n var tasks = [];\n $.each(parsedBindings, (innerBindingKey, innerBindingParameters) => {\n var innerBinding = ko.bindingHandlers[innerBindingKey];\n tasks.push(resolver.execute(() => {\n if (!isDisposed) {\n var isInitialized = false;\n ko.computed({\n read: () => {\n if (!isInitialized && innerBinding.init) {\n innerBinding.init(element, () => { return innerBindingParameters; }, allBindings, viewModel, bindingContext);\n isInitialized = true;\n }\n if (innerBinding.update) {\n innerBinding.update(element, () => { return innerBindingParameters; }, allBindings, viewModel, bindingContext);\n }\n },\n disposeWhenNodeIsRemoved: element\n });\n isResolved(true);\n }\n }, 1));\n });\n addDisposeCallback(element, function () {\n isDisposed = true;\n tasks.forEach(x => x.dispose());\n tasks = [];\n });\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['dxdAccordion'] = {\n init: function (element, valueAccessor) {\n var options = valueAccessor(), $element = $.fn.constructor(element), $accordionContent = $element.find('.dx-accordion-content').first(), scrollUpdateCallback = () => {\n var $scroll = $element.parents('.dx-scrollview');\n if ($scroll.length > 0) {\n var scrollView = dxScrollView.getInstance($scroll.get(0));\n scrollView && scrollView['update']();\n }\n };\n var accordionButton = $element\n .find('.dx-accordion-header,.dx-accordion-button').get(0);\n events.off(accordionButton, 'dxclick');\n events.on(accordionButton, 'dxclick', function () {\n options.collapsed(ko.unwrap(options.alwaysShow) ? false : !options.collapsed());\n $element.addClass('dx-transition-style');\n if (options.collapsed())\n $element.addClass('dx-accordion-collapsed');\n setTimeout(() => {\n $element.removeClass('dx-accordion-collapsed');\n if (!options.collapsed())\n $element.removeClass('dx-transition-style');\n }, 500);\n });\n options.collapsed() ? $accordionContent.hide() : $accordionContent.show();\n var subscription = options.collapsed.subscribe((newVal) => {\n $accordionContent.slideToggle(options.timeout, () => scrollUpdateCallback());\n });\n addDisposeCallback(element, () => subscription.dispose());\n }\n};\nko.bindingHandlers['dxdAccordionExt'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = valueAccessor(), $element = $.fn.constructor(element), scrollUpdateCallback = () => {\n var $scroll = $element.parents('.dx-scrollview');\n if ($scroll.length > 0) {\n var scrollView = dxScrollView.getInstance($scroll.get(0));\n scrollView && scrollView['update']();\n }\n }, $accordionContent = $element.find('.dx-accordion-content').first(), accordionContentHTML = null;\n if (options.collapsed() && options.lazyContentRendering === true) {\n accordionContentHTML = $accordionContent.html();\n $accordionContent.empty();\n }\n options.collapsed.subscribe((newVal) => {\n if (newVal) {\n $accordionContent.slideUp(options.timeout, () => {\n scrollUpdateCallback();\n });\n }\n else {\n if (accordionContentHTML) {\n $accordionContent.html(accordionContentHTML);\n ko.applyBindingsToDescendants(bindingContext, $accordionContent.get(0));\n accordionContentHTML = null;\n }\n $accordionContent.slideDown(options.timeout, () => {\n scrollUpdateCallback();\n });\n }\n });\n options.collapsed() ? $accordionContent.hide() : $accordionContent.show();\n }\n};\nko.bindingHandlers['dxLocalizedSelectBox'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = valueAccessor();\n var prevDisplayExpr = options.displayExpr;\n options['placeholder'] = options['placeholder'] || selectPlaceholder();\n options['noDataText'] = options['noDataText'] || noDataText();\n options['encodeNoDataText'] = true;\n options.displayExpr = function (value) {\n if (!value)\n return value;\n if (!prevDisplayExpr)\n return getLocalization(value, value.localizationId);\n return getLocalization($.isFunction(prevDisplayExpr) ? prevDisplayExpr(value) : value[prevDisplayExpr], value.localizationId);\n };\n options.itemTemplate = function (itemData, itemIndex, itemElement) {\n var context = bindingContext.createChildContext({\n display: options.displayExpr(itemData)\n });\n $.fn.constructor(itemElement).children().remove();\n var templateHtml = getTemplate('item-with-title'), $element = $.fn.constructor(itemElement).append(templateHtml);\n ko.applyBindingsToDescendants(context, $element[0]);\n return itemElement;\n };\n if (options.useLocalizedTextAsValue) {\n options.valueExpr = options.displayExpr;\n }\n var extendedOptions = viewModel.getOptions ? viewModel.getOptions(options) : options;\n ko.bindingHandlers['dxSelectBox'].init(element, () => { return extendedOptions; }, allBindings, viewModel, bindingContext);\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['styleunit'] = {\n 'update': function (element, valueAccessor) {\n var value = ko.utils.unwrapObservable(valueAccessor() || {});\n $.each(value, (styleName, styleValue) => {\n styleValue = ko.utils.unwrapObservable(styleValue) || 0;\n element.style[styleName] = styleValue + 'px';\n });\n }\n};\nko.bindingHandlers['service'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var value = ko.unwrap(valueAccessor() || {}), findService = (serviceName) => {\n var context = bindingContext.$parents.filter((item) => { return item[serviceName] !== undefined; })[0];\n if (context) {\n return context[serviceName];\n }\n return null;\n }, service = findService(value.name), entity = service && service(viewModel);\n if (entity) {\n var childContext = bindingContext.createChildContext(entity.data);\n ko.renderTemplate(entity.templateName, childContext, {}, element, 'replaceNode');\n }\n }\n};\n","/**\r\n* DevExpress Analytics (property-grid\\internal\\_addon.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../serializer/utils';\nexport class EditorAddOn extends Disposable {\n constructor(editor, popupService) {\n super();\n this.templateName = null;\n this._editor = editor;\n this._popupService = popupService;\n this._disposables.push(this._actions = ko.pureComputed(() => {\n return (editor.getPopupServiceActions() || []).filter(x => this.actionFilter(x));\n }));\n this._disposables.push(this.visible = ko.pureComputed(() => {\n return this._actions().length > 0;\n }));\n this._disposables.push(this.hint = ko.pureComputed(() => {\n var acc = [];\n this._actions().forEach(x => this._getTitles(x, [], acc));\n return acc.join('\\n');\n }));\n this._disposables.push(this.editorMenuButtonCss = ko.pureComputed(() => {\n var editorModel = editor._model();\n return editorModel && editorModel['getActionClassName'] && editorModel['getActionClassName'](editor.name) || '';\n }));\n this._disposables.push(this.imageTemplateName = ko.pureComputed(() => {\n var editorModel = editor._model();\n return editorModel && editorModel['getMenuBoxTemplate'] && editorModel['getMenuBoxTemplate'](editor.name) || '';\n }));\n }\n _updateActions(actions) {\n this._popupService.actions([]);\n if (!actions || !actions.length)\n return;\n actions\n .sort((x, y) => (x.title < y.title ? -1 : x.title > y.title ? 1 : 0))\n .sort((x, y) => (x.weight || 0) - (y.weight || 0));\n this._wrapVisibleItems(actions, this._editor.name).forEach(visibleItem => {\n this._popupService.actions.push(visibleItem);\n });\n }\n _getTitles(item, currentItemPath = [], acc = []) {\n var title = ko.unwrap(item.title);\n (item.items || []).forEach(x => {\n var nextPath = title ? currentItemPath.concat([title]) : currentItemPath;\n this._getTitles(x, nextPath, acc);\n });\n var hint = ko.unwrap(item.hint);\n if (!hint || !title)\n return;\n var resultTitle = currentItemPath.concat([title]).join('. ');\n acc.push(resultTitle + ':\\n' + hint + '\\n');\n return acc;\n }\n _wrapVisibleItems(actions, editorName) {\n if (!actions)\n return undefined;\n return actions.map(modelAction => this._wrapActionClick(modelAction, editorName)).filter(x => !!x);\n }\n _wrapActionClick(modelAction, editorName) {\n if (this.actionFilter(modelAction)) {\n return {\n id: modelAction.id,\n items: this._wrapVisibleItems(modelAction.items, editorName),\n innerTemplate: modelAction.innerTemplate,\n itemTemplate: modelAction.itemTemplate,\n action: () => {\n modelAction.action(editorName);\n this._popupService.visible(false);\n },\n title: modelAction.title,\n hint: modelAction.hint,\n visible: () => { return true; }\n };\n }\n else {\n return null;\n }\n }\n showPopup(_, element) {\n this._popupService.title(this._editor.displayName());\n this._updateActions(this._editor.getPopupServiceActions());\n this._popupService.target(element);\n this._popupService.visible(true);\n }\n actionFilter(action) {\n return action.visible(this._editor.name);\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\internal\\_codeResolver.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { guid } from '../../undo-engine/_utils';\nexport class CodeResolver {\n constructor() {\n this._queue = [];\n this._queueObj = {};\n this._done = [];\n this._doneOnce = [];\n }\n clear() {\n this._queue = [];\n this._queueObj = {};\n }\n done(callback) {\n this._done.push(callback);\n }\n doneOnce(callback) {\n this._doneOnce.push(callback);\n }\n _executeNext(id = this._queue[0]) {\n delete this._queueObj[id];\n while (this._queue.length > 0 && !this._queueObj[this._queue[0]]) {\n this._queue.splice(0, 1);\n }\n if (this._queue.length !== 0) {\n this._queueObj[this._queue[0]]();\n }\n else {\n for (var i = 0; i < this._done.length; i++) {\n this._done[i]();\n }\n do {\n var doOnceCallback = this._doneOnce.pop();\n doOnceCallback && doOnceCallback();\n } while (this._doneOnce.length);\n }\n }\n execute(func, time = 0) {\n var id = guid();\n var $deferred = $.Deferred();\n if (time) {\n this._queue.push(id);\n this._queueObj[id] = () => {\n if (!this._queueObj[id])\n return this._executeNext(id);\n setTimeout(() => {\n this._queueObj[id] && $deferred.resolve(func());\n this._executeNext(id);\n }, time);\n };\n if (this._queue.length === 1) {\n this._queueObj[this._queue[0]]();\n }\n }\n else {\n $deferred.resolve(func());\n }\n return {\n dispose: () => (delete this._queueObj[id], $deferred.reject()),\n force: () => (delete this._queueObj[id], $deferred.resolve(func())),\n doNext: () => (this._queue.splice(0, 0, id)),\n $promise: $deferred.promise()\n };\n }\n}\nexport var globalResolver = new CodeResolver();\n","/**\r\n* DevExpress Analytics (property-grid\\internal\\_popupService.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class PopupService {\n constructor() {\n this.data = ko.observable();\n this.title = ko.observable();\n this.visible = ko.observable(false);\n this.disabled = ko.observable(false);\n this.actions = ko.observableArray([]);\n this.target = ko.observable();\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\localization\\_localization.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as localization from 'devextreme/localization';\nimport * as $ from 'jquery';\nimport { deserializeDate } from '../../serializer/utils';\nimport { extend } from '../../serializer/_utils';\nexport function loadMessages(_messages) {\n extend(messages, _messages);\n}\nfunction _processLocalization(id, _removeWinSymbols = removeWinSymbols) {\n var text = localize(id);\n if (text && _removeWinSymbols) {\n if (text.indexOf('&') !== -1 ||\n text.indexOf('') !== -1 ||\n text.indexOf('') !== -1) {\n var obj = {};\n obj[id] = text.replace('&', '').replace('', '').replace('', '');\n loadMessages(obj);\n return obj[id];\n }\n }\n}\nfunction _getLocalization(text) {\n return localize(text) || text;\n}\nexport function getLocalization(text, id = null, _removeWinSymbols = removeWinSymbols) {\n var _localizedText = id && localize(id) || _getLocalization(text);\n _localizedText = id && _processLocalization(id, _removeWinSymbols) || _localizedText;\n if (isCustomizedWithUpdateLocalizationMethod(_localizedText)) {\n text = _localizedText;\n }\n if (!isCustomizedWithUpdateLocalizationMethod(text)) {\n return _localizedText;\n }\n return _getLocalization(text);\n}\nexport var removeWinSymbols = true;\nexport var Globalize = Globalize || window['Globalize'];\nexport var messages = {};\nexport var custom_localization_values = {};\nexport function selectPlaceholder() {\n return getLocalization('Select...', 'AnalyticsCoreStringId.PropertyGrid_Editor_EmptyText');\n}\nexport function noDataText() {\n return getLocalization('No data to display', 'AnalyticsCoreStringId.DataPreview_Empty');\n}\nexport function searchPlaceholder() {\n return getLocalization('Enter text to search...', 'AnalyticsCoreStringId.QueryBuilder_SearchBox_EmptyText');\n}\nexport function resolveFromPromises(promises, createModel) {\n var deferred = $.Deferred();\n if (promises.length > 0) {\n $.when(...promises).done((...messages) => {\n messages.forEach(x => loadMessages(x[0]));\n }).always(() => deferred.resolve(createModel()));\n }\n else {\n deferred.resolve(createModel());\n }\n return deferred;\n}\nexport function isCustomizedWithUpdateLocalizationMethod(text) {\n return !!custom_localization_values[text];\n}\nexport function localizeWithUpdateLocalizationMethod(oldText) {\n return isCustomizedWithUpdateLocalizationMethod(oldText) ? getLocalization(oldText) : false;\n}\nexport function localize(val) {\n return messages[val];\n}\nexport function formatDate(val) {\n return localization.formatDate(val, 'shortDate');\n}\nexport function parseDate(val, useDefault = true, format) {\n if (!useDefault)\n return format ? localization.parseDate(val, format) : localization.parseDate(val, undefined);\n if (val) {\n if (val instanceof Date)\n return val;\n return deserializeDate(val);\n }\n return null;\n}\n","/**\r\n* DevExpress Analytics (property-grid\\localization\\_localizationStringIds.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var StringId = {\n MasterDetailRelationsEditor: 'DataAccessUIStringId.MasterDetailEditorForm_Title',\n DataAccessBtnOK: 'DataAccessUIStringId.Button_OK',\n DataAccessBtnCancel: 'DataAccessUIStringId.Button_Cancel',\n DataSourceWizardTitle: 'DataAccessUIStringId.WizardTitleDatasource',\n WizardPageConfigureQuery: 'DataAccessUIStringId.WizardPageConfigureQuery'\n};\n","/**\r\n* DevExpress Analytics (property-grid\\localization\\localization.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { loadMessages as _loadMessages } from './_localization';\nexport function loadMessages(messages) { _loadMessages(messages); }\n","/**\r\n* DevExpress Analytics (property-grid\\localization\\localization_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from '../../serializer/_utils';\nimport { custom_localization_values, getLocalization as _getLocalization, messages, removeWinSymbols } from './_localization';\nexport function addCultureInfo(json) {\n extend(messages, json.messages);\n}\nexport function getLocalization(text, id, _removeWinSymblols) {\n return _getLocalization(text, id, removeWinSymbols);\n}\nexport function _stringEndsWith(value, searchString) {\n return value.indexOf(searchString, value.length - searchString.length) !== -1;\n}\nexport function updateLocalization(object) {\n extend(custom_localization_values, object);\n var messages = {};\n Object.keys(object).forEach(name => {\n messages[name] = object[name];\n });\n addCultureInfo({\n messages: messages\n });\n}\n","/**\r\n* DevExpress Analytics (property-grid\\propertygrid.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../serializer/utils';\nimport { defaultAccessibilityProvider } from './_propertiesAccessibilityProvider';\nimport { Editor } from './widgets/editor';\nimport { compareEditorInfo, findMatchesInString } from './widgets/internal/_utils';\nimport { EditorAddOn } from './internal/_addon';\nimport config from 'devextreme/core/config';\nimport { isEmptyObject } from '../serializer/_utils';\nexport class ObjectProperties extends Disposable {\n constructor(viewModel, editorsInfo, level = 0, parentDisabled = ko.observable(false), recreateEditors = false, textToSearch, popupService) {\n super();\n this._viewModelSubscription = null;\n this._infoSubscription = null;\n this._getInfoComputed = null;\n this._accessibilityProvider = defaultAccessibilityProvider;\n this.level = 0;\n this.rtl = config()['rtlEnabled'];\n if (popupService) {\n this.createEditorAddOn = (editor) => {\n var editorAddOn = new EditorAddOn(editor, this.popupService);\n editor._disposables.push(editorAddOn);\n return {\n templateName: 'dx-editor-addons',\n data: [editorAddOn]\n };\n };\n this.popupService = popupService;\n }\n this._editors = ko.observableArray([]).extend({ deferred: true });\n this.level = level;\n this._parentDisabled = parentDisabled;\n this._textToSearch = textToSearch;\n this._disposables.push(this.visible = ko.computed(() => {\n return this._editors().some(editor => editor.visible());\n }));\n this._viewModelSubscription = viewModel.subscribe((newVal) => {\n this._infoSubscription && this._infoSubscription.dispose();\n this._getInfoComputed && this._getInfoComputed.dispose();\n this._update(newVal, editorsInfo, recreateEditors);\n });\n this._update(viewModel(), editorsInfo, recreateEditors);\n }\n update(viewModel) {\n if (viewModel) {\n this._editors().forEach((editor) => {\n editor.update(viewModel);\n });\n }\n }\n _cleanEditorsSubscriptions() {\n this._editors().forEach((editor) => {\n editor.dispose();\n Object.keys(editor).forEach(name => {\n if (ko.isComputed(editor[name])) {\n editor[name].dispose();\n }\n });\n });\n }\n dispose() {\n super.dispose();\n this.disposeObservableArray(this._editors);\n this.resetObservableArray(this._editors);\n this.cleanSubscriptions();\n }\n cleanSubscriptions() {\n this._infoSubscription && this._infoSubscription.dispose();\n this._getInfoComputed && this._getInfoComputed.dispose();\n this._viewModelSubscription && this._viewModelSubscription.dispose();\n this._cleanEditorsSubscriptions();\n }\n cleanEditors() {\n this._cleanEditorsSubscriptions();\n this.resetObservableArray(this._editors);\n }\n findEditorByInfo(serializationInfo) {\n return this._editors().filter(editor => editor.name === serializationInfo.propertyName && compareEditorInfo(editor.info().editor, serializationInfo.editor))[0];\n }\n createEditor(modelPropertyInfo) {\n var editorType = modelPropertyInfo.editor && modelPropertyInfo.editor.editorType || Editor;\n var editor = new editorType(modelPropertyInfo, this.level, this._parentDisabled, this._textToSearch, this.popupService);\n editor.assignParent(this._parent);\n editor.registerAccessibilityProvider(this._accessibilityProvider);\n return editor;\n }\n createEditors(serializationInfo) {\n var self = this;\n return (serializationInfo || [])\n .filter(info => { return !!info.editor && !this.findEditorByInfo(info); })\n .map(info => { return this.createEditor(info); });\n }\n registerAccessibilityProvider(accessibilityProvider) {\n this._accessibilityProvider = accessibilityProvider;\n this._editors().forEach((editor) => {\n editor.registerAccessibilityProvider(accessibilityProvider);\n });\n }\n assignParent(parent) {\n this._parent = parent;\n this._editors().forEach((editor) => {\n editor.assignParent(parent);\n });\n }\n _createEditors(serializationInfo) {\n if (!serializationInfo || serializationInfo.length === 0)\n return false;\n var newEditors = this.createEditors(serializationInfo);\n if (!newEditors.length)\n return;\n var currentEditors = this._editors();\n if (currentEditors.length === 0) {\n currentEditors = newEditors;\n }\n else {\n newEditors.forEach((editor) => {\n var existEditorIndex = currentEditors.map(_editor => _editor.name).indexOf(editor.name);\n if (existEditorIndex !== -1)\n currentEditors.splice(existEditorIndex, 0, editor);\n else\n currentEditors.push(editor);\n });\n }\n this._editors(currentEditors);\n }\n _update(viewModel, editorsInfo, recreateEditors) {\n if (recreateEditors) {\n this.cleanEditors();\n }\n this._getInfoComputed = ko.computed(() => {\n return (editorsInfo && editorsInfo.editors && ko.unwrap(editorsInfo.editors))\n || (viewModel && viewModel['getInfo'] && viewModel['getInfo']());\n });\n this._infoSubscription = this._getInfoComputed.subscribe((newInfo) => {\n if (recreateEditors) {\n this.cleanEditors();\n }\n this._recreateEditors(viewModel, newInfo);\n });\n this._recreateEditors(viewModel, this._getInfoComputed());\n }\n _recreateEditors(viewModel, serializationInfo) {\n this._createEditors(serializationInfo);\n this.update(viewModel);\n }\n getEditors() {\n return this._editors();\n }\n}\nexport class PropertyGridEditor extends Editor {\n constructor(info, level, parentDisabled, textToSearch, _popupService) {\n super(info, level, parentDisabled, textToSearch);\n this._popupService = _popupService;\n this.editorCreated = ko.observable(false);\n this.viewmodel = this.createObjectProperties();\n if (!isEmptyObject(this.viewmodel)) {\n this.viewmodel.assignParent(this);\n }\n this._disposables.push(this.viewmodel);\n var subscription = this.collapsed.subscribe((newVal) => {\n if (!newVal) {\n subscription.dispose();\n this.editorCreated(true);\n }\n });\n this._disposables.push(subscription);\n if (textToSearch) {\n this._disposables.push(this.visibleByName = ko.computed(() => {\n var visible = !!findMatchesInString(this.displayName(), textToSearch());\n if (!isEmptyObject(this.viewmodel)) {\n this.viewmodel._editors().forEach((editor) => editor.isParentSearched(visible));\n }\n return visible;\n }));\n this.isSearchedProperty['dispose'] && this.isSearchedProperty['dispose']();\n this._disposables.push(this.isSearchedProperty = ko.computed(() => {\n if (this.visibleByName())\n return true;\n var visibleByEditors = this.viewmodel.visible();\n visibleByEditors && this.collapsed(false);\n return visibleByEditors;\n }));\n }\n }\n createObjectProperties() {\n return new ObjectProperties(this.value, { editors: ko.computed(() => { var _a, _b; return ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.getInfo) && ((_b = this.value()) === null || _b === void 0 ? void 0 : _b.getInfo()) || this.info().info; }) }, this.level + 1, this.disabled, undefined, this.textToSearch, this._popupService);\n }\n registerAccessibilityProvider(accessibilityProvider) {\n super.registerAccessibilityProvider(accessibilityProvider);\n this.viewmodel.registerAccessibilityProvider(accessibilityProvider);\n }\n}\nexport class PropertyGridEditorFlat extends PropertyGridEditor {\n createObjectProperties() {\n this.collapsed(false);\n this.editorCreated(true);\n this.level = -1;\n return super.createObjectProperties();\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\collectioneditor\\_bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { CollectionEditorViewModel } from './_editor';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { getTemplate } from '../templateUtils';\nko.bindingHandlers['dxCollectionEditor'] = {\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\n var values = valueAccessor(), gridViewModel = new CollectionEditorViewModel(values, viewModel.disabled), templateHtml = getTemplate(values.editorTemplate || '#dx-collectioneditor'), $templateHtml = $.fn.constructor(templateHtml), itemTemplateName = values.info && values.info() && values.info()['template'] || values.template;\n if (itemTemplateName) {\n var itemTemplateHtml = getTemplate(itemTemplateName);\n $templateHtml.find('.dx-collection-item').append($.fn.constructor(itemTemplateHtml));\n }\n else {\n $templateHtml.find('.dx-collection-item').append($.fn.constructor(element).children());\n }\n var $element = $.fn.constructor(element).append($templateHtml);\n var childContext = bindingContext.createChildContext(gridViewModel);\n ko.applyBindings(childContext, $element.children()[0]);\n addDisposeCallback(element, () => gridViewModel.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\collectioneditor\\_editor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { propertiesGridEditorsPaddingLeft } from '../internal/_internal';\nimport { getLocalization } from '../../localization/localization_utils';\nimport { addDisposeCallback } from '../../../serializer/_internal';\nimport { ListKeyboardHelper } from '../../../accessibility/_listKeyboardHelper';\nimport { guid } from '../../../undo-engine/_utils';\nexport class CollectionItemWrapper extends Disposable {\n constructor(editor, array, index, displayNameField = '') {\n super();\n this.collapsed = ko.observable(true);\n this.selected = ko.observable(false);\n this._disposables.push(this.value = ko.computed({\n read: () => {\n return array.peek()[index()];\n },\n write: (val) => {\n array.peek()[index()] = val;\n }\n }));\n this.editor = editor;\n this.index = index;\n this._disposables.push(this.name = ko.computed(() => {\n return displayNameField && this.value() && this.value()[displayNameField] ? ko.unwrap(this.value()[displayNameField]) : index();\n }));\n }\n}\nexport class CollectionEditorViewModel extends Disposable {\n constructor(options, disabled = ko.observable(false)) {\n super();\n this.buttonMap = {\n 'delete': { text: 'Delete', localizationId: 'AnalyticsCoreStringId.Cmd_Delete' },\n 'add': { text: 'Add', localizationId: 'DataAccessUIStringId.Button_Add' },\n 'down': { text: 'Move Down', localizationId: 'AnalyticsCoreStringId.Cmd_MoveDown' },\n 'up': { text: 'Move Up', localizationId: 'AnalyticsCoreStringId.Cmd_MoveUp' }\n };\n this.selectedIndex = ko.observable(null);\n this.alwaysShow = ko.observable(false);\n this.collapsed = ko.observable(options.collapsed !== false);\n var addHandler = () => (options.addHandler || options.info && options.info() && options.info()['addHandler']).call(this);\n var removeHandler = options.removeHandler;\n var hideButtons = options.hideButtons || options.info && options.info() && options.info()['hideButtons'];\n this._textEmptyArray = options.textEmptyArray || { text: 'To create an item click the Add button.', localizationId: 'AnalyticsCoreStringId.SqlDSWizard_PageConfigureParametersEmpty' };\n this.displayPropertyName = options.info && options.info() && options.info()['displayPropertyName'] || options.displayName;\n this._disposables.push(this.showButtons = ko.computed(() => {\n return !ko.unwrap(hideButtons) && !this.collapsed();\n }));\n this.showScroll = !!options.showScroll;\n var _isDisabled = (selectedIndex, name) => {\n if (options.isDisabledButton) {\n return options.isDisabledButton(selectedIndex, name);\n }\n else if (name === 'delete') {\n return selectedIndex === null;\n }\n else if (name === 'add') {\n return false;\n }\n else if (name === 'up') {\n return selectedIndex === null || selectedIndex === 0;\n }\n else if (name === 'down') {\n return selectedIndex === null || selectedIndex === (this.values().length - 1);\n }\n };\n this.isDisabledButton = (name) => {\n return disabled() || _isDisabled(this.selectedIndex(), name);\n };\n this.isVisibleButton = (name) => {\n if (!this.showButtons()) {\n return false;\n }\n else\n return options.isVisibleButton ? options.isVisibleButton(this.selectedIndex(), name) : true;\n };\n this.padding = options.level !== void 0 ? options.level * propertiesGridEditorsPaddingLeft() : 0;\n this.displayName = (options.info && options.info()) ? getLocalization(options.info().displayName, options.info().localizationId) : options.displayName;\n this.options = options;\n if (!options.displayName) {\n this.collapsed(false);\n this.alwaysShow(true);\n }\n if (options.alwaysShow)\n this.alwaysShow(true);\n this._disposables.push(this.values = ko.computed(() => {\n this._timeoutItemRendered && clearTimeout(this._timeoutItemRendered);\n this._timeoutItemRendered = setTimeout(() => {\n this.listKeyboardHelper && this.listKeyboardHelper.initialize();\n }, 100);\n return ko.unwrap(options.values());\n }));\n var selectedItem = ko.unwrap(options.selectedItem);\n if (selectedItem) {\n this._setSelectedIndex(selectedItem);\n this._disposables.push(options.selectedItem.subscribe((newVal) => {\n this._setSelectedIndex(newVal);\n }));\n }\n this.add = (model) => {\n model.event.stopPropagation();\n options.undoEngine && options.undoEngine().start();\n var item = addHandler();\n if (!item)\n return;\n var index = options.values().push(item);\n options.undoEngine && options.undoEngine().end();\n if (options.selectedItem) {\n this.select({ index: () => index - 1 });\n }\n };\n this.up = (model) => {\n this._move(options.values(), -1);\n model.event.stopPropagation();\n };\n this.down = (model) => {\n this._move(options.values(), 1);\n model.event.stopPropagation();\n };\n this.remove = (model) => {\n model.event.stopPropagation();\n if (this.selectedIndex() < 0)\n return;\n if (removeHandler) {\n options.undoEngine && options.undoEngine().start();\n var selectedItem = options.values()()[this.selectedIndex()];\n removeHandler(selectedItem);\n options.undoEngine && options.undoEngine().end();\n }\n else {\n options.values().splice(this.selectedIndex(), 1);\n }\n var valuesCount = options.values()().length;\n if (valuesCount > 0) {\n this.select({\n index: () => this.selectedIndex() >= valuesCount ? valuesCount - 1 : this.selectedIndex()\n }, true);\n }\n else {\n this.select({ index: () => null }, true);\n }\n };\n this.select = (model, force = false) => {\n if (this.selectedIndex() === model.index() && !force)\n return;\n this.selectedIndex(model.index());\n if (options.selectedItem) {\n options.selectedItem(this.selectedIndex() !== null ? this.values()[this.selectedIndex()] : null);\n }\n };\n this.disabled = disabled;\n this.listKeyboardHelper = new ListKeyboardHelper();\n this.headerId = `dxrd-ce-trigger-${guid()}`;\n this.contentId = `dxrd-ce-pannel-${guid()}`;\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n _move(array, offset) {\n if (this.selectedIndex() >= 0) {\n var old_index = this.selectedIndex(), new_index = old_index + offset;\n if ((new_index >= array().length) || (new_index < 0)) {\n return;\n }\n array.splice(new_index, 0, array.splice(old_index, 1)[0]);\n this.selectedIndex(new_index);\n }\n }\n _setSelectedIndex(selectedItem) {\n var index = this.values().indexOf(selectedItem);\n this.selectedIndex(index === -1 ? null : index);\n }\n getDisplayTextButton(key) {\n return getLocalization(this.buttonMap[key].text, this.buttonMap[key].localizationId);\n }\n getDisplayTextEmptyArray() {\n return getLocalization(this._textEmptyArray.text, this._textEmptyArray.localizationId);\n }\n createCollectionItemWrapper(grandfather, index, element) {\n var wrapper = new CollectionItemWrapper(grandfather, this.values, index, this.displayPropertyName);\n addDisposeCallback(element, () => wrapper.dispose());\n return wrapper;\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\editor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { findMatchesInString, compareEditorInfo } from './internal/_utils';\nimport { defaultAccessibilityProvider } from '../_propertiesAccessibilityProvider';\nimport { EditorValidator } from './editorValidator';\nimport { getLocalization } from '../localization/localization_utils';\nimport { propertiesGridEditorsPaddingLeft } from './internal/_internal';\nimport { editorTemplates } from './editorsInfo';\nimport config from 'devextreme/core/config';\nimport { extend } from '../../serializer/_utils';\nimport { roundingXDecimals } from '../../core/utils/_units';\nimport { guid } from '../../undo-engine/_utils';\nexport class Editor extends Disposable {\n constructor(modelPropertyInfo, level, parentDisabled = ko.observable(false), textToSearch = undefined) {\n super();\n this._model = ko.observable();\n this._parent = ko.observable(null);\n this.isSearchedProperty = ko.observable(true);\n this.isParentSearched = ko.observable(false);\n this.rtl = config().rtlEnabled;\n this._accessibilityProvider = ko.observable(defaultAccessibilityProvider);\n this._validator = new EditorValidator(this);\n this._cachedValue = undefined;\n this.isEditorSelected = ko.observable(false);\n this.isRequired = false;\n this.isRendered = ko.observable(false);\n this.collapsed = ko.observable(true);\n this.alwaysShow = ko.observable(false);\n this.info = ko.observable(modelPropertyInfo);\n this._disposables.push(this.displayName = ko.computed({\n read: () => {\n var info = this.info();\n return info && getLocalization(info.displayName, info['localizationId']);\n },\n write: (value) => { }\n }));\n if (textToSearch) {\n this.textToSearch = textToSearch;\n this._disposables.push(this.isSearchedProperty = ko.computed(() => {\n return this.isParentSearched() || !!findMatchesInString(this.displayName(), textToSearch());\n }));\n }\n this.padding = this._setPadding(this.rtl ? 'right' : 'left', level * propertiesGridEditorsPaddingLeft());\n var defaultValue = ko.observable(null), propertyName = modelPropertyInfo.propertyName;\n this._disposables.push(this._editorOptions = ko.pureComputed(() => this.info().editorOptions));\n this.validatorOptions = modelPropertyInfo.validatorOptions;\n this.isRequired = modelPropertyInfo.isRequired;\n if (modelPropertyInfo.defaultVal !== undefined) {\n defaultValue = ko.observable(modelPropertyInfo.defaultVal);\n }\n if (modelPropertyInfo.from) {\n defaultValue = modelPropertyInfo.from(modelPropertyInfo.defaultVal);\n }\n if (modelPropertyInfo.array) {\n defaultValue = ko.observableArray();\n }\n this._disposables.push(this.values = ko.computed(() => {\n var _values = this.info().valueStore || this.info().valuesArray;\n if (_values) {\n return _values;\n }\n _values = ko.unwrap(this.info().values);\n if (_values) {\n return $.map(_values, (displayValue, value) => {\n return { value: value, displayValue: displayValue };\n });\n }\n }));\n this.level = level;\n this._init(modelPropertyInfo.editor, defaultValue, propertyName);\n this._disposables.push(this.disabled = ko.computed(() => {\n return parentDisabled() || this._accessibilityProvider() && this._accessibilityProvider().isPropertyDisabled(this);\n }));\n this._disposables.push(this.visible = ko.computed(() => {\n return this.isSearchedProperty() && this._accessibilityProvider() && this._accessibilityProvider().isPropertyVisible(this);\n }));\n this._disposables.push(this.isPropertyModified = ko.computed(() => {\n return !!(this._model() && this._model().isPropertyModified && this._model().isPropertyModified(this.name));\n }));\n this._disposables.push(this.isPropertyHighlighted = ko.pureComputed(() => {\n if (this._shouldSkipHighlighting(this.name))\n return false;\n var controlModel = this._model();\n return !!(controlModel && controlModel.isPropertyHighlighted && controlModel.isPropertyHighlighted(this.name));\n }));\n this.headerId = `dxrd-accordion-trigger-${guid()}`;\n this.contentId = `dxrd-accordion-pannel-${guid()}`;\n this.editorInputId = `dxrd-editor-${guid()}`;\n }\n _setPadding(position, value) {\n var obj = {};\n obj['padding-' + position] = value;\n return obj;\n }\n dispose() {\n this._validator && this._validator.dispose();\n this._validator = null;\n super.dispose();\n this._cachedValue = null;\n this._model(null);\n }\n _shouldSkipHighlighting(propertyName) {\n return this.isComplexEditor;\n }\n _assignValue(modelValue, model, newValue, name) {\n if (ko.isObservable(modelValue)) {\n modelValue(newValue);\n }\n else {\n model[name] = newValue;\n }\n }\n _roundTwoDesemialsForUnitProperties(value, model, propertyName) {\n var properties = model && model['constructor'] && model['constructor'].unitProperties;\n if (!properties || properties.indexOf(propertyName) === -1)\n return value;\n return roundingXDecimals(value);\n }\n _init(editorTemplate, value, name) {\n editorTemplate = editorTemplate || editorTemplates.getEditor('text');\n this.templateName = editorTemplate.header;\n this.contentTemplateName = editorTemplate.content;\n this._cachedValue = undefined;\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var model = this._model();\n if (!model && this._cachedValue) {\n return this._cachedValue;\n }\n var modelValue = model && model[name] !== undefined ? model[name] : value;\n if (ko.isObservable(modelValue) && !modelValue['push']) {\n var hasValueInModel = modelValue() !== undefined && modelValue() !== null;\n this._cachedValue = hasValueInModel ? this._roundTwoDesemialsForUnitProperties(modelValue(), model, name) : this.defaultValue;\n return this._cachedValue;\n }\n else {\n this._cachedValue = modelValue;\n return this._cachedValue;\n }\n },\n write: (newValue) => {\n var model = this._model();\n if (!model) {\n return;\n }\n var modelValue = model[name];\n this._validator.assignWithValidation(newValue, () => {\n this._assignValue(modelValue, model, newValue, name);\n });\n }\n }));\n this.name = name;\n this.editorTemplate = editorTemplate && editorTemplate.custom || 'dx-property-editor';\n }\n _getInfoFromModel(viewModel) {\n if (!viewModel)\n return null;\n var modelInfo = viewModel['getInfo'] && viewModel['getInfo']();\n if (modelInfo) {\n return modelInfo.filter(property => property.propertyName === this.name)[0];\n }\n return null;\n }\n update(viewModel) {\n if (!!viewModel) {\n var propertyInfo = this._getInfoFromModel(viewModel);\n var isSameEditorType = propertyInfo && compareEditorInfo(propertyInfo.editor, this.info().editor);\n if (isSameEditorType && this.info() !== propertyInfo) {\n this.info(propertyInfo);\n }\n this._model(this.name in viewModel && (isSameEditorType || !propertyInfo) ? viewModel : null);\n }\n else {\n this._model(null);\n }\n }\n getOptions(templateOptions) {\n var extendedOptions = this.info.peek().editor.extendedOptions;\n return extend(true, {}, templateOptions, this.editorOptions, extendedOptions);\n }\n getValidatorOptions(templateValidatorOptions) {\n return this._validator && this._validator.getValidatorOptions(templateValidatorOptions);\n }\n registerAccessibilityProvider(accessibilityProvider) {\n if (this._accessibilityProvider() != accessibilityProvider)\n this._accessibilityProvider(accessibilityProvider);\n }\n assignParent(parent) {\n if (this._parent() != parent)\n this._parent(parent);\n }\n _getEditorValidationRules() {\n var info = ko.unwrap(this.info);\n if (!info)\n return;\n var validationRules = info.validationRules;\n return validationRules || (validationRules === null ? null : []);\n }\n getValidationRules() {\n return this._validator && this._validator.getValidationRules();\n }\n get validationRules() {\n return this.getValidationRules();\n }\n getPopupServiceActions() {\n if (!this._model()) {\n return;\n }\n var actions = (this._model().actions || []).concat();\n (this._model().actionProviders || [])\n .forEach((provider) => {\n var additionalActions = provider && provider.getActions(this.name) || [];\n additionalActions.forEach((action) => actions.push(action));\n });\n return actions;\n }\n get editorOptions() { return ko.unwrap(this._editorOptions); }\n get isComplexEditor() { return !!this.contentTemplateName; }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\editorValidator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '../../serializer/utils';\nimport validationEngine from 'devextreme/ui/validation_engine';\nimport { extend } from '../../serializer/_utils';\nexport class EditorValidator extends Disposable {\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._lastValidatorOptions = null;\n this._lastModelOverridableRules = null;\n this._onValidatedHandler = undefined;\n }\n dispose() {\n this.onValidatedHandler = null;\n this.validatorInstance && this.validatorInstance.dispose();\n this.validatorInstance = null;\n super.dispose();\n }\n _isValid(validationRules, newValue) {\n this.onValidatedHandler = undefined;\n if (this.validatorInstance) {\n (validationRules || []).forEach(rule => rule && (rule.validator = this.validatorInstance));\n return this.validatorInstance.validate();\n }\n else {\n return validationEngine['validate'](newValue, validationRules, this._editor.displayName());\n }\n }\n get validatorInstance() {\n return this._validatorInstance;\n }\n set validatorInstance(newValue) {\n if (this._validatorInstance && this.onValidatedHandler) {\n this._validatorInstance.off('validated', this._onValidatedHandler);\n }\n this._validatorInstance = newValue;\n }\n get onValidatedHandler() {\n return this._onValidatedHandler;\n }\n set onValidatedHandler(newValue) {\n if (this._onValidatedHandler && this.validatorInstance) {\n this.validatorInstance.off('validated', this._onValidatedHandler);\n this._onValidatedHandler = newValue;\n if (newValue) {\n this.validatorInstance.on('validated', this._onValidatedHandler);\n }\n }\n }\n getValidationRules() {\n var options = this.getValidatorOptions();\n var resultRules = (options || {}).validationRules;\n return resultRules || (resultRules === null ? null : []);\n }\n getValidatorOptions(templateValidatorOptions = {}) {\n var info = this._editor.info.peek();\n if (!info)\n return;\n var options = this._lastValidatorOptions;\n var modelOverridableRules = this._editor._getEditorValidationRules();\n if (options && !this.areRulesChanged(modelOverridableRules)) {\n return options;\n }\n this._lastModelOverridableRules = modelOverridableRules;\n var extendedValidationRules = this._concatValidationRules(info.validatorOptions, modelOverridableRules);\n var extendedValidatorOptions = info.editor.extendedOptions && info.editor.extendedOptions.validatorOptions;\n var options = extend({}, templateValidatorOptions, info.validatorOptions, { validationRules: extendedValidationRules }, extendedValidatorOptions);\n this._wrapValidatorEvents(options);\n this._lastValidatorOptions = options;\n return options;\n }\n areRulesChanged(overridableRuleSet) {\n if (!(this._lastModelOverridableRules && this._lastModelOverridableRules.length)) {\n return overridableRuleSet && overridableRuleSet.length;\n }\n else if (!overridableRuleSet || !overridableRuleSet.length) {\n return true;\n }\n else {\n return !overridableRuleSet.every(newRule => {\n return this._lastModelOverridableRules.some(rule => {\n return newRule.message === rule.message && newRule.validationCallback === rule.validationCallback && newRule.type === rule.type;\n });\n });\n }\n }\n wrapOnValidatorInitialized(options) {\n var onInitializedHandler = options.onInitialized;\n var _this = this;\n options.onInitialized = function (e) {\n _this._onValidatorInitialized(e);\n onInitializedHandler && onInitializedHandler.apply(this, arguments);\n };\n }\n _onValidatorInitialized(e) {\n this.validatorInstance = e && e.component;\n }\n _concatValidationRules(validatorOptions, validationRules) {\n if ((!validatorOptions || !validatorOptions.validationRules) && !validationRules) {\n return null;\n }\n return ((validatorOptions || {}).validationRules || []).concat(validationRules || []);\n }\n _wrapValidatorEvents(validatorOptions) {\n if (!validatorOptions || !validatorOptions.validationRules || !validatorOptions.validationRules.length) {\n return;\n }\n this.wrapOnValidatorInitialized(validatorOptions);\n return validatorOptions;\n }\n assignWithValidation(newValue, assignValueFunc) {\n var validationRules = this.getValidationRules();\n var assignValueFirst = !validationRules || validationRules.some(x => x.assignValueFirst);\n if (assignValueFirst) {\n assignValueFunc();\n }\n var validationResult = this._isValid(validationRules, newValue);\n if (!validationResult.isValid) {\n if (validationResult.brokenRule && validationResult.brokenRule['isDeferred']) {\n this.onValidatedHandler = (result) => {\n this.onValidatedHandler = undefined;\n if (!result.isValid)\n return;\n assignValueFunc();\n };\n }\n return;\n }\n if (!assignValueFirst) {\n assignValueFunc();\n }\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\editorsInfo.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from '../../serializer/_utils';\nexport class EditorTemplates {\n constructor(_useDeferredRegistration = true) {\n this._useDeferredRegistration = _useDeferredRegistration;\n this._editorTemplates = {};\n }\n register(name, editorInfo) {\n if (!!this._editorTemplates[name] && !this._editorTemplates[name]._deferred) {\n throw Error(`Editor with name ${name} is already exists`);\n }\n else if (!this._editorTemplates[name]) {\n this._editorTemplates[name] = editorInfo;\n }\n else {\n delete this._editorTemplates[name]._deferred;\n extend(this._editorTemplates[name], editorInfo);\n }\n }\n unregister(name) {\n delete this._editorTemplates[name];\n }\n registerEditors(editors) {\n for (var name in editors)\n this.register(name, editors[name]);\n }\n getEditor(name) {\n if (!this._editorTemplates[name] && this._useDeferredRegistration) {\n this._editorTemplates[name] = { _deferred: true };\n }\n return this._editorTemplates[name];\n }\n}\nexport var editorTemplates = new EditorTemplates();\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\_fonts.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport var availableFonts = ko.observable({});\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\_model.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { defaultFontSerialization } from '../internal/_internal';\nexport var availableUnits = [\n { value: 'pt', displayValue: 'Point', localizationId: 'DevExpress.ReportDesigner_FontOptions_Unit_Point' },\n { value: 'world', displayValue: 'World', localizationId: 'AnalyticsCoreStringId.FontOptions_Unit_World' },\n { value: 'px', displayValue: 'Pixel', localizationId: 'AnalyticsCoreStringId.FontOptions_Unit_Pixel' },\n { value: 'in', displayValue: 'Inch', localizationId: 'AnalyticsCoreStringId.Wizard_Inch' },\n { value: 'doc', displayValue: 'Document', localizationId: 'PreviewStringId.ReportDesigner_FontOptions_Unit_Document' },\n { value: 'mm', displayValue: 'Millimetr', localizationId: 'AnalyticsCoreStringId.Wizard_Millimeter' }\n];\nexport class FontModel extends Disposable {\n constructor(value) {\n super();\n this.family = ko.observable(null);\n this.unit = ko.observable(null);\n this.isUpdateModel = false;\n this.size = ko.observable(null);\n this.modificators = {\n bold: ko.observable(false),\n italic: ko.observable(false),\n strikeout: ko.observable(false),\n underline: ko.observable(false)\n };\n this.updateModel(value());\n this._disposables.push(value.subscribe((newVal) => {\n this.isUpdateModel = true;\n this.updateModel(newVal);\n this.isUpdateModel = false;\n }));\n this._disposables.push(this.modificators.bold.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.italic.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.strikeout.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.modificators.underline.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.family.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.size.subscribe((newVal) => this.updateValue(value)));\n this._disposables.push(this.unit.subscribe((newVal) => this.updateValue(value)));\n }\n _toString() {\n var leftPart = [this.family(), this.size() + this.unit()].join(', ');\n var modificators = [];\n if (this.modificators.bold())\n modificators.push('Bold');\n if (this.modificators.italic())\n modificators.push('Italic');\n if (this.modificators.underline())\n modificators.push('Underline');\n if (this.modificators.strikeout())\n modificators.push('Strikeout');\n var rightPart = modificators.join(', ');\n return !!rightPart ? [leftPart, rightPart].join(', style=') : leftPart;\n }\n updateModel(value) {\n if (!value)\n value = defaultFontSerialization();\n var components = value.split(',');\n this.family(components[0]);\n var self = this;\n availableUnits.forEach(function (element) {\n if (components[1].trim().indexOf(element.value) != -1) {\n self.size(parseFloat(components[1].split(element.value)[0]));\n self.unit(element.value);\n }\n });\n this.modificators.bold(value.indexOf('Bold') !== -1);\n this.modificators.italic(value.indexOf('Italic') !== -1);\n this.modificators.underline(value.indexOf('Underline') !== -1);\n this.modificators.strikeout(value.indexOf('Strikeout') !== -1);\n }\n updateValue(value) {\n if (!this.isUpdateModel) {\n value(this._toString());\n }\n }\n}\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\fonteditor\\metadata.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '../editorsInfo';\nimport { availableFonts } from './_fonts';\nimport { availableUnits } from './_model';\nexport var fontName = {\n propertyName: 'family', displayName: 'Font Name', localizationId: 'AnalyticsCoreStringId.FormatFontName',\n editor: editorTemplates.getEditor('combobox'), values: availableFonts, editorOptions: { searchEnabled: true }\n};\nexport var fontSize = {\n propertyName: 'size', displayName: 'Size', localizationId: 'AnalyticsCoreStringId.Font.Size', editor: editorTemplates.getEditor('numeric')\n};\nexport var fontSizeUnit = {\n propertyName: 'unit', displayName: 'Unit', localizationId: 'AnalyticsCoreStringId.Font.Unit', editor: editorTemplates.getEditor('combobox'),\n valuesArray: availableUnits\n};\nexport var fontInfo = [\n fontName,\n fontSize,\n fontSizeUnit,\n { propertyName: 'modificators', editor: editorTemplates.getEditor('modificators') },\n];\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\internal\\_bindingsCache.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport config from 'devextreme/core/config';\nimport * as ko from 'knockout';\nvar cache = {};\nfunction createBaseFunction(controlName, optionsName) {\n return function ($context, $index) {\n var obj = {};\n obj[controlName] = function () {\n if (optionsName === '$data')\n return $context.$data;\n return optionsName === undefined ? undefined : $context.$data[optionsName];\n };\n return obj;\n };\n}\nexport function registerBaseBinding(bindingName, optionsName) {\n addToBindingsCache(!optionsName ? bindingName : `${bindingName}: ${optionsName}`, createBaseFunction(bindingName, optionsName));\n}\nexport function addToBindingsCache(key, value) {\n cache[key] = value;\n}\nfunction getFromCache(key) {\n return cache[key];\n}\nregisterBaseBinding('svgAttrs');\nregisterBaseBinding('dxButtonWithTemplate', 'options');\nregisterBaseBinding('dxButton', 'options');\nregisterBaseBinding('dxCheckBox', 'options');\nregisterBaseBinding('dxToolbarBase', 'options');\nregisterBaseBinding('dxToolbar', 'options');\nregisterBaseBinding('treelist', 'options');\nvar currentParseBindingsString = ko.bindingProvider.prototype.parseBindingsString;\nko.utils.extend(ko.bindingProvider.prototype, {\n 'parseBindingsString': function (bindingsString, bindingContext, node, options) {\n try {\n var func = getFromCache(bindingsString.trim());\n if (func)\n return func(bindingContext, node);\n return currentParseBindingsString.call(ko.bindingProvider.instance, bindingsString, bindingContext, node, options);\n }\n catch (ex) {\n ex.message = 'Unable to parse bindings.\\nBindings value: ' + bindingsString + '\\nMessage: ' + ex.message;\n throw ex;\n }\n }\n});\nvar optionsParser = config()['optionsParser'];\nconfig({\n optionsParser: function (optionsString) {\n var func = getFromCache(optionsString.trim());\n if (func)\n return func();\n return optionsParser(optionsString);\n }\n});\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\internal\\_internal.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nimport { getLocalization } from '../../localization/localization_utils';\nexport var propertiesGridEditorsPaddingLeft = createGlobalModuleVariableFunc(19);\nexport var defaultFontSerialization = createGlobalModuleVariableFunc('Times New Roman, 9.75pt');\nfunction RegexGuid(guid) {\n return (/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(guid)\n || /^\\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\}$/.test(guid)\n || /^\\([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\\)$/.test(guid)\n || /^[0-9a-fA-F]{32}$/.test(guid));\n}\nexport function validateGuid(guid) {\n return guid && RegexGuid(guid);\n}\nexport function validateNullableGuid(guid) {\n return !guid || RegexGuid(guid);\n}\nvar guidValidationMessage = () => getLocalization('Guid is required and should have a valid format.', 'AnalyticsCoreStringId.GuidIsRequired_Error');\nexport var guidValidationRules = [{\n type: 'custom',\n validationCallback: (options) => { return validateNullableGuid(options.value); },\n get message() {\n return guidValidationMessage();\n }\n }];\nexport var guidRequiredValidationRules = [{\n type: 'required',\n get message() {\n return guidValidationMessage();\n }\n }];\nvar requiredValidationRule = {\n type: 'required',\n get message() {\n return getLocalization('The value cannot be empty', 'AnalyticsCoreStringId.ParametersPanel_DateTimeValueValidationError');\n }\n};\nexport var requiredValidationRules = [requiredValidationRule];\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\internal\\_svgTemplateEngine.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nclass SvgTemplateSource {\n constructor(template, _data, _templates) {\n this._data = _data;\n this._templates = _templates;\n this.templateName = template;\n }\n data(key, value) {\n this._data[this.templateName] = this._data[this.templateName] || {};\n if (arguments.length === 1) {\n return this._data[this.templateName][key];\n }\n this._data[this.templateName][key] = value;\n }\n text(value) {\n if (arguments.length === 0) {\n if (this.templateName in this._templates)\n return this._templates[this.templateName];\n else\n throw new Error('Cannot find template with ID ' + this.templateName);\n }\n this._templates[this.templateName] = value;\n }\n}\nexport class SvgTemplatesEngine {\n constructor() {\n this._hasTemplate = (name, findEverywhere) => {\n return findEverywhere && !!document.getElementById(name) || this._templates.hasOwnProperty(name);\n };\n this._data = {};\n this._templates = {};\n }\n static get Instance() {\n return this._instance || (this._instance = new this());\n }\n static get templates() {\n return SvgTemplatesEngine.Instance._templates;\n }\n static addTemplate(templateName, templateMarkup) {\n SvgTemplatesEngine.templates[templateName] = templateMarkup;\n }\n static addTemplates(templates) {\n ko.utils.extend(SvgTemplatesEngine.templates, templates);\n }\n static getExistingTemplate(name, findEverywhere = true) {\n return SvgTemplatesEngine.Instance._hasTemplate(name, findEverywhere) ? name : undefined;\n }\n}\nvar makeTemplateSource = ko.templateEngine.prototype['makeTemplateSource'];\nko.templateEngine.prototype['makeTemplateSource'] = function (template, doc) {\n if (typeof template === 'string' && SvgTemplatesEngine.getExistingTemplate(template, false) && !document.getElementById(template)) {\n return new SvgTemplateSource(template, SvgTemplatesEngine['_instance']['_data'], SvgTemplatesEngine.templates);\n }\n else {\n return makeTemplateSource.apply(this, [template, doc]);\n }\n};\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\internal\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { formatDate } from '../../localization/_localization';\nexport var SearchMode;\n(function (SearchMode) {\n SearchMode[SearchMode[\"contains\"] = 0] = \"contains\";\n SearchMode[SearchMode[\"startWith\"] = 1] = \"startWith\";\n})(SearchMode || (SearchMode = {}));\nexport function _getFileContent(content, readMode) {\n return readMode !== 'text' ? (content).replace(/(^data:[^,]+,)|(^data:)/, '') : content;\n}\nfunction _uploadFile(filesHolder, deferred, options) {\n try {\n var files = filesHolder.files;\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n if (options.type === 'img') {\n var imageType = /image.*/;\n if (!file.type.match(imageType)) {\n continue;\n }\n }\n var fr = new FileReader();\n var format = file.name.split('.').pop();\n fr.onload = () => {\n try {\n deferred.resolve({\n format: format,\n content: _getFileContent(fr.result, options.readMode)\n });\n }\n catch (e) {\n deferred.reject();\n }\n };\n options.readMode === 'text' || format === 'html' || format === 'htm' ? fr.readAsText(file) : fr.readAsDataURL(file);\n }\n }\n catch (e) {\n deferred.reject();\n }\n}\nvar fileUploaderId = 'dxd-fileuploader-input';\nfunction createFileUploaderElement() {\n var input = document.createElement('input');\n input.type = 'file';\n input.id = fileUploaderId;\n input.style.width = '0px';\n input.style.height = '0px';\n input.style.display = 'none';\n document.body.appendChild(input);\n return input;\n}\nexport var uploadFile = (options) => {\n var deferred = $.Deferred();\n var element = document.getElementById(fileUploaderId);\n if (!element) {\n element = createFileUploaderElement();\n }\n element.accept = options.accept;\n element.onchange = () => {\n _uploadFile(element, deferred, options);\n element.value = '';\n };\n element.click();\n return deferred.promise();\n};\nexport var _replaceUploadFile = (newFunc) => uploadFile = newFunc;\nexport function setUploadFile(newFunc) {\n uploadFile = newFunc;\n}\nexport function compareEditorInfo(editor1, editor2) {\n return !!editor1 && !!editor2 &&\n editor1.header === editor2.header\n && editor1.content === editor2.content\n && editor1.editorType === editor2.editorType;\n}\nexport function findMatchesInString(stringWhereSearch, searchPattern, options) {\n if (!options) {\n var searchExpr = escapeToRegExp(searchPattern);\n return !!stringWhereSearch && stringWhereSearch.match(new RegExp(searchExpr, 'gi'));\n }\n var searchExpr = !options.canUseRegex ? escapeToRegExp(searchPattern) : searchPattern;\n if (options.searchMode == SearchMode.startWith && !options.canUseRegex)\n searchExpr = '^' + searchExpr;\n var exprRule = '';\n if (!options.caseSensitive)\n exprRule = exprRule + 'i';\n if (options.globalMatch)\n exprRule = exprRule + 'g';\n return !!stringWhereSearch && stringWhereSearch.match(new RegExp(searchExpr, exprRule));\n}\nexport function escapeToRegExp(value) {\n return value.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\nexport function stringRemove(value, start, count) {\n count = count ? count : value.length - start;\n return value.slice(0, start) + value.slice(start + count, value.length);\n}\nexport function stringReplace(value, start, count, newChar = '') {\n var temp = value;\n temp = stringRemove(temp, start, count);\n temp = stringInsert(temp, start, Array(count + 1).join(newChar));\n return temp;\n}\nexport function stringInsert(value, pos, subStr) {\n return value.substring(0, pos) + subStr + value.substring(pos);\n}\nexport function formatUnicorn(format, ...args) {\n return format.replace(/{(\\d+)(:[^}]+)?}/g, (match, number, formatSpecifier) => {\n const value = args[parseInt(number)];\n if (value !== undefined && value !== null) {\n if (formatSpecifier) {\n switch (formatSpecifier.substring(1)) {\n case 'd':\n return formatDate(new Date(value));\n }\n }\n return value.toString();\n }\n else {\n return match;\n }\n });\n}\nexport var KeyboardEnum;\n(function (KeyboardEnum) {\n KeyboardEnum[\"Plus\"] = \"+\";\n KeyboardEnum[\"Minus\"] = \"-\";\n KeyboardEnum[\"Equal\"] = \"=\";\n KeyboardEnum[\"Tab\"] = \"Tab\";\n KeyboardEnum[\"Delete\"] = \"Delete\";\n KeyboardEnum[\"Enter\"] = \"Enter\";\n KeyboardEnum[\"Esc\"] = \"Escape\";\n KeyboardEnum[\"Space\"] = \" \";\n KeyboardEnum[\"End\"] = \"End\";\n KeyboardEnum[\"Home\"] = \"Home\";\n KeyboardEnum[\"PageUp\"] = \"PageUp\";\n KeyboardEnum[\"PageDown\"] = \"PageDown\";\n KeyboardEnum[\"ArrowLeft\"] = \"ArrowLeft\";\n KeyboardEnum[\"ArrowUp\"] = \"ArrowUp\";\n KeyboardEnum[\"ArrowRight\"] = \"ArrowRight\";\n KeyboardEnum[\"ArrowDown\"] = \"ArrowDown\";\n})(KeyboardEnum || (KeyboardEnum = {}));\nexport var KeyboardCodesEnum;\n(function (KeyboardCodesEnum) {\n KeyboardCodesEnum[KeyboardCodesEnum[\"Tab\"] = 9] = \"Tab\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Enter\"] = 13] = \"Enter\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Esc\"] = 27] = \"Esc\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Space\"] = 32] = \"Space\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"End\"] = 35] = \"End\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Home\"] = 36] = \"Home\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Left\"] = 37] = \"Left\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Up\"] = 38] = \"Up\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Right\"] = 39] = \"Right\";\n KeyboardCodesEnum[KeyboardCodesEnum[\"Down\"] = 40] = \"Down\";\n})(KeyboardCodesEnum || (KeyboardCodesEnum = {}));\n","/**\r\n* DevExpress Analytics (property-grid\\widgets\\templateUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from './internal/_svgTemplateEngine';\nexport function addTemplate(templateName, templateMarkup) {\n SvgTemplatesEngine.addTemplate(templateName, templateMarkup);\n}\nexport function getTemplate(id) {\n var id = id[0] === '#' ? id.substr(1) : id;\n var item = document.querySelector('#' + id);\n return item && item.innerHTML || SvgTemplatesEngine.templates[id];\n}\n","/**\r\n* DevExpress Analytics (serializer\\_internal.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function _defineProperty(legacyObject, realObject, propertyName, newPropertyName) {\n delete legacyObject[propertyName];\n newPropertyName = newPropertyName || propertyName;\n Object.defineProperty(legacyObject, propertyName, {\n get: () => { return realObject[newPropertyName]; },\n set: (newVal) => { realObject[newPropertyName] = newVal; },\n configurable: true\n });\n}\nexport function _definePropertyByString(rootObject, ...objectPathes) {\n var getAndCreateObject = (path, createNew = true) => {\n var pathParts = path.split('.');\n var foundedObject = rootObject;\n for (var i = 0; i < pathParts.length - 1; i++) {\n if (!foundedObject[pathParts[i]] && createNew) {\n foundedObject[pathParts[i]] = {};\n }\n foundedObject = foundedObject[pathParts[i]];\n }\n return {\n object: foundedObject,\n propertyName: pathParts[pathParts.length - 1]\n };\n };\n var realObjectPath = objectPathes[objectPathes.length - 1];\n var realObject = getAndCreateObject(objectPathes[objectPathes.length - 1]);\n for (var i = 0; i < objectPathes.length - 1; i++) {\n ((legacyObjectPath, legacyObject) => {\n Object.defineProperty(legacyObject.object, legacyObject.propertyName, {\n get: () => {\n console.warn('DevExpress.' + legacyObjectPath + ' is now deprecated and will be removed in future versions. Use DevExpress.' + realObjectPath + ' instead.');\n return realObject.object[realObject.propertyName];\n },\n set: (newVal) => {\n console.warn('DevExpress.' + legacyObjectPath + ' is now deprecated and will be removed in future versions. Use DevExpress.' + realObjectPath + ' instead.');\n realObject.object[realObject.propertyName] = newVal;\n },\n configurable: true\n });\n })(objectPathes[i], getAndCreateObject(objectPathes[i]));\n }\n}\nexport function addDisposeCallback(element, callback) {\n var disposeCallback = () => {\n ko.utils.domNodeDisposal.removeDisposeCallback(element, disposeCallback);\n callback && callback();\n disposeCallback = null;\n callback = null;\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, disposeCallback);\n}\nexport function createGlobalModuleVariableFunc(defaultVal) {\n var currentValue = defaultVal;\n return (newVal) => {\n if (newVal !== undefined)\n currentValue = newVal;\n return currentValue;\n };\n}\n","/**\r\n* DevExpress Analytics (serializer\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function knockoutArrayWrapper(items, ...onChange) {\n var array = ko.observableArray(items);\n var notifySubscribers = array.notifySubscribers;\n array.notifySubscribers = (valueToNotify, event) => {\n if (onChange) {\n for (var i = 0, len = onChange.length; i < len; i++) {\n onChange[i](valueToNotify, event);\n }\n }\n return notifySubscribers.call(array, valueToNotify, event);\n };\n return array;\n}\nfunction isWindow(obj) {\n return obj != null && obj === obj.window;\n}\nvar class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\n['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Object', 'Error'].forEach(name => class2type['[object ' + name + ']'] = name.toLowerCase());\nfunction type(obj) {\n if (obj == null) {\n return obj + '';\n }\n return typeof obj === 'object' || typeof obj === 'function' ?\n class2type[class2type.toString.call(obj)] || 'object' :\n typeof obj;\n}\nfunction isNumeric(obj) {\n return !Array.isArray(obj) && (obj - parseFloat(obj) + 1) >= 0;\n}\nexport function isPlainObject(obj) {\n if (type(obj) !== 'object' || obj.nodeType || isWindow(obj)) {\n return false;\n }\n return !(obj.constructor && !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'));\n}\nexport function isEmptyObject(obj) {\n if ((typeof obj) === 'string') {\n return false;\n }\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\nexport function isFunction(obj) {\n return type(obj) === 'function';\n}\nexport function extend(target, object1, ...objectN) {\n var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = false;\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n if (typeof target !== 'object' && !isFunction(target)) {\n target = {};\n }\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n }\n else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = extend(deep, clone, copy);\n }\n else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}\nexport function assignObj(obj, objectProps) {\n return Object.assign(Object.create(Object.getPrototypeOf(obj)), objectProps || obj);\n}\n","/**\r\n* DevExpress Analytics (serializer\\eventManager.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from './utils';\nexport class EventManager extends Disposable {\n constructor() {\n super(...arguments);\n this._handlers = [];\n }\n dispose() {\n this._handlers = [];\n }\n call(type, args) {\n this._handlers.filter(x => x.type === type).forEach(x => x.value(args));\n }\n addHandler(type, listener) {\n this._handlers.push({\n type: type,\n value: listener\n });\n }\n removeHandler(type, listener) {\n var item = this._handlers.filter(handler => handler.type === type && handler.value === listener)[0];\n var index = this._handlers.indexOf(item);\n if (index !== -1) {\n this._handlers.splice(index, 1);\n }\n }\n}\n","/**\r\n* DevExpress Analytics (serializer\\serializer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { extend, isPlainObject, isEmptyObject } from './_utils';\nimport { serializeDate } from './utils';\nexport class ModelSerializer {\n constructor(options) {\n this._refTable = {};\n this._linkTable = {};\n this._options = extend({\n useRefs: true,\n serializeDate: serializeDate\n }, options);\n }\n linkObjects() {\n Object.keys(this._linkTable).forEach((index) => {\n var val = this._refTable[index];\n if (val) {\n this._linkTable[index].splice(0).forEach(property => property(val));\n }\n });\n }\n _getModel(model, propertyPath) {\n var currentModel = model;\n propertyPath.forEach((name) => {\n currentModel = currentModel[name];\n });\n return currentModel;\n }\n _collectLinks(model, internalModel, propertyPath, propertyName) {\n var refVal = model[propertyName].slice('#Ref-'.length);\n var value = ko.observable();\n this._linkTable[refVal] = this._linkTable[refVal] || [];\n this._linkTable[refVal].push(value);\n if (!internalModel._restoreLinks)\n internalModel._restoreLinks = [];\n internalModel._restoreLinks.push((model) => {\n var currentModel = this._getModel(model, propertyPath);\n return {\n setRef: (ref) => {\n if (ref === -1)\n delete currentModel[propertyName];\n else\n currentModel[propertyName] = '#Ref-' + ref;\n },\n obj: value()\n };\n });\n }\n _enumRefs(internalModel, propertyPath, propertyName) {\n if (!internalModel._refs)\n internalModel._refs = [];\n internalModel._refs.push((model, ref) => {\n this._getModel(model, propertyPath)[propertyName] = ref;\n });\n }\n _collectLinksAndEnumRefs(model, internalModel = null, propertyPath = []) {\n var start = internalModel === null;\n internalModel = internalModel || model;\n Object.keys(model).forEach((propertyName) => {\n if (model[propertyName] instanceof Object) {\n this._collectLinksAndEnumRefs(model[propertyName], internalModel, [].concat(propertyPath, [propertyName]));\n }\n else if (model[propertyName].indexOf && model[propertyName].indexOf('#Ref-') === 0) {\n this._collectLinks(model, internalModel, propertyPath, propertyName);\n }\n else if (!start && propertyName === '@Ref') {\n this._enumRefs(internalModel, propertyPath, propertyName);\n }\n });\n if (start)\n this.linkObjects();\n }\n setLinks(refs) {\n refs.linkObjTable.forEach(item => {\n var refValue = refs.objects.indexOf(item.obj);\n item.setRef(refValue);\n });\n }\n deserializeProperty(modelPropertyInfo, model) {\n var propName = modelPropertyInfo.modelName;\n if (!propName) {\n return;\n }\n var modelValue = model[propName] !== undefined ? model[propName] : modelPropertyInfo.defaultVal;\n return this.deserializePropertyValue(modelPropertyInfo, modelValue);\n }\n deserializeDefaultValue(modelPropertyInfo) {\n var value = this.deserializePropertyValue(modelPropertyInfo, modelPropertyInfo.defaultVal, false);\n return value || modelPropertyInfo.defaultVal;\n }\n deserializePropertyValue(modelPropertyInfo, modelValue, strict = true) {\n if (typeof modelPropertyInfo === 'string') {\n return ko.observable(modelValue);\n }\n else if (modelPropertyInfo.link) {\n var value = ko.observable(null);\n if (modelValue) {\n var refVal = modelValue && modelValue.slice('#Ref-'.length);\n this._linkTable[refVal] = this._linkTable[refVal] || [];\n this._linkTable[refVal].push(value);\n }\n return value;\n }\n else if (modelPropertyInfo.array) {\n if (modelPropertyInfo.from) {\n return modelPropertyInfo.from(modelValue, this);\n }\n else if (modelPropertyInfo.info) {\n var result = Object.keys(modelValue || {}).map(propertyName => {\n var object = { getInfo: () => { return modelPropertyInfo.info; } };\n this.deserialize(object, modelValue[propertyName] || {});\n return object;\n });\n return ko.observableArray(result);\n }\n return;\n }\n else if (modelPropertyInfo.from) {\n return modelPropertyInfo.from(modelValue, this);\n }\n else if (modelPropertyInfo.type) {\n var ctorResult = new modelPropertyInfo.type(modelValue, this, modelPropertyInfo.info);\n if (!ctorResult._model) {\n this.deserialize(ctorResult, modelValue || {}, modelPropertyInfo.info);\n }\n return ctorResult;\n }\n else if (modelPropertyInfo.info) {\n var object = { getInfo: () => { return modelPropertyInfo.info; } };\n this.deserialize(object, modelValue || {});\n return object;\n }\n else if (modelPropertyInfo.modelName) {\n return ko.observable(modelValue);\n }\n if (strict) {\n throw new Error(\"Invalid info '\" + JSON.stringify(modelPropertyInfo) + \"'\");\n }\n return;\n }\n deserialize(viewModel, model, serializationsInfo = null) {\n if (!model) {\n return;\n }\n viewModel._model = extend({}, model);\n var serializationsInfo = viewModel.getInfo ? viewModel.getInfo() : serializationsInfo;\n var refValue = model['@Ref'];\n var proto = Object.getPrototypeOf(viewModel);\n serializationsInfo.forEach((modelPropertyInfo) => {\n var propertyName = modelPropertyInfo.propertyName, propName = modelPropertyInfo.modelName;\n if (model[propName] !== undefined) {\n delete viewModel._model[propName];\n }\n var property = this.deserializeProperty(modelPropertyInfo, model);\n var descriptor = Object.getOwnPropertyDescriptor(proto, propertyName);\n if (property !== undefined && (!descriptor || !!descriptor.set))\n viewModel[propertyName] = property;\n if (!(propertyName in viewModel) && property === undefined && modelPropertyInfo.array) {\n var currentArray = ko.observable(undefined);\n Object.defineProperty(viewModel, propertyName, {\n get: () => {\n return currentArray();\n },\n set: (val) => {\n currentArray(val);\n },\n enumerable: true\n });\n }\n });\n if (refValue) {\n this._refTable[refValue] = viewModel;\n }\n this.linkObjects();\n }\n serialize(viewModel, serializationsInfo, refs = null) {\n if (!serializationsInfo && !refs) {\n return this._serialize(viewModel, null, null);\n }\n return this._serialize(viewModel, serializationsInfo, refs);\n }\n _isSerializableValue(resultValue) {\n return (isPlainObject(resultValue) && !isEmptyObject(resultValue)) || (Array.isArray(resultValue) && resultValue['length'] > 0) || (!Array.isArray(resultValue) && !isPlainObject(resultValue));\n }\n serializeProperty(modelPropertyInfo, viewModel, serializationsInfo, refs, result) {\n var propertyName = modelPropertyInfo.propertyName, value = ko.unwrap(viewModel['_' + propertyName] || viewModel[propertyName]), defaultVal = modelPropertyInfo.defaultVal;\n if (modelPropertyInfo.beforeSerialize)\n value = modelPropertyInfo.beforeSerialize(value);\n if (!!modelPropertyInfo.from) {\n defaultVal = ko.unwrap(modelPropertyInfo.from(defaultVal, this));\n }\n var resultValue = {};\n if (!modelPropertyInfo.modelName) {\n return;\n }\n if (modelPropertyInfo.alwaysSerialize || ((value !== undefined && value !== null) && ((isPlainObject(value) || !isEmptyObject(value)) || (Array.isArray(value) && value.length > 0) || (!Array.isArray(value) && !isPlainObject(value))) && (value !== defaultVal))) {\n if (modelPropertyInfo.link) {\n refs.linkObjTable.push({\n obj: value,\n setRef: (index) => {\n if (index < 0) {\n delete result[modelPropertyInfo.modelName];\n }\n else {\n result[modelPropertyInfo.modelName] = '#Ref-' + index;\n }\n }\n });\n resultValue = undefined;\n }\n else if (modelPropertyInfo.array) {\n resultValue = {};\n var index = 1;\n value.forEach(item => {\n var info = modelPropertyInfo.info || null;\n var item_ = this._serialize(item, info, refs);\n if (this._isSerializableValue(item_) || modelPropertyInfo.alwaysSerialize) {\n resultValue['Item' + index] = item_;\n if (this._options.useRefs) {\n item_['@Ref'] = (refs.objects.push(item) - 1).toString();\n }\n index++;\n }\n });\n }\n else if (modelPropertyInfo.from) {\n if (value['isEmpty'] && value['isEmpty']()) {\n resultValue = {};\n }\n else {\n resultValue = modelPropertyInfo.toJsonObject ? modelPropertyInfo.toJsonObject(value, this, refs) : value.toString();\n }\n }\n else if (modelPropertyInfo.info || value['getInfo']) {\n resultValue = this._serialize(value, modelPropertyInfo.info, refs);\n }\n else if (modelPropertyInfo.modelName) {\n if (value instanceof Date) {\n resultValue = this._options.serializeDate(value);\n }\n else {\n resultValue = value;\n }\n }\n else {\n throw new Error(\"Invalid info '\" + serializationsInfo.stringify() + \"'\");\n }\n if (modelPropertyInfo.alwaysSerialize || this._isSerializableValue(resultValue)) {\n if (modelPropertyInfo.asRef) {\n resultValue['@Ref'] = (refs.objects.push(value) - 1).toString();\n }\n result[modelPropertyInfo.modelName] = resultValue;\n }\n }\n }\n _serialize(viewModel, serializationsInfo, refs) {\n var result = extend(true, {}, viewModel._model), isInitial = refs === null;\n refs = refs || { linkObjTable: [], objects: [] };\n if (result._restoreLinks) {\n refs.linkObjTable.push.apply(refs.linkObjTable, result._restoreLinks.map(x => x(result)));\n delete result._restoreLinks;\n }\n if (result._refs) {\n result._refs.forEach(x => x(result, (refs.objects.push('0') - 1).toString()));\n delete result._refs;\n }\n serializationsInfo = viewModel.getInfo ? viewModel.getInfo() : serializationsInfo;\n delete result['@Ref'];\n if (viewModel['isEmpty'] && viewModel['isEmpty']())\n return {};\n serializationsInfo.forEach((modelPropertyInfo) => {\n this.serializeProperty(modelPropertyInfo, viewModel, serializationsInfo, refs, result);\n });\n if (isInitial)\n this.setLinks(refs);\n return result;\n }\n}\n","/**\r\n* DevExpress Analytics (serializer\\utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class Disposable {\n constructor() {\n this._disposables = [];\n this.isDisposing = false;\n }\n disposeObservableArray(array) {\n if (array) {\n array().forEach((item) => { item.dispose && item.dispose(); });\n }\n }\n resetObservableArray(array) {\n if (array)\n array([]);\n }\n disposeArray(array) {\n if (array) {\n array.forEach((item) => { item.dispose && item.dispose(); });\n array.splice(0, array.length);\n }\n }\n dispose() {\n if (!this.isDisposing) {\n this.isDisposing = true;\n (this._disposables || []).reverse().forEach(x => x && x.dispose && x.dispose());\n this._disposables = [];\n }\n }\n removeProperties() {\n Object.keys(this).forEach((propertyName) => {\n delete this[propertyName];\n });\n }\n}\nexport function deserializeArray(model, creator) {\n var result = Object.keys(model || {}).map(propertyName => creator(model[propertyName]));\n return ko.observableArray(result);\n}\nfunction toStringWithDelimiter(values, delimiter) {\n return (values || []).map(value => {\n var str = value !== undefined && value !== null ? value.toString() : '00';\n if (str.length === 1) {\n str = '0' + str;\n }\n return str;\n }).join(delimiter);\n}\nexport function serializeDate(date, dateDelimiter) {\n var datePart = [date.getMonth() + 1, date.getDate(), date.getFullYear()];\n var timePart = toStringWithDelimiter([date.getHours(), date.getMinutes(), date.getSeconds()], ':');\n if (dateDelimiter === '-' || timePart === '00:00:00') {\n var datePartString = toStringWithDelimiter([datePart[2], datePart[0], datePart[1]], '-');\n return timePart === '00:00:00' ? datePartString : datePartString + ' ' + timePart;\n }\n return timePart === '00:00:00' ? toStringWithDelimiter([datePart[2], datePart[0], datePart[1]], '-')\n : toStringWithDelimiter(datePart, '/') + ' ' + timePart;\n}\nexport function deserializeDate(dateTime) {\n var dateTimeParts = dateTime.split(' ');\n var dateArgs = dateTimeParts[0].split('-');\n var timeArgs = [0, 0, 0];\n if (dateTimeParts.length > 1) {\n if (dateArgs.length !== 3) {\n dateArgs = dateTimeParts[0].split('/');\n dateArgs.splice(0, 0, dateArgs.splice(2, 1)[0]);\n }\n timeArgs = dateTimeParts[1].split(':').map(x => parseInt(x));\n if (timeArgs.length !== 3)\n return null;\n }\n if (dateArgs.length !== 3)\n return null;\n dateArgs = dateArgs.map(x => parseInt(x));\n return new Date(dateArgs[0], dateArgs[1] - 1, dateArgs[2], timeArgs[0], timeArgs[1], timeArgs[2]);\n}\n","/**\r\n* DevExpress Analytics (undo-engine\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function propertiesVisitor(target, visitor, visited = [], skip = ['surface']) {\n if (target && target !== undefined) {\n var properties = [];\n Object.keys(target).forEach((propertyName) => {\n if (propertyName.indexOf('_') !== 0 && skip.indexOf(propertyName) === -1) {\n var realPropertyName = propertyName;\n if (ko.isComputed(target[propertyName]) && ko.isWritableObservable(target['_' + propertyName])) {\n realPropertyName = '_' + realPropertyName;\n }\n if (visited.indexOf(target[realPropertyName]) === -1 && !ko.isComputed(target[realPropertyName])) {\n properties.push(target[realPropertyName]);\n }\n }\n });\n visitor(properties);\n visited.push.apply(visited, properties);\n properties.forEach((property) => {\n property = ko.unwrap(property);\n if (typeof property === 'object') {\n propertiesVisitor(property, visitor, visited, skip);\n }\n });\n }\n}\nexport function checkModelReady(model) {\n return model.isModelReady ? model.isModelReady() : true;\n}\nexport function guid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n","/**\r\n* DevExpress Analytics (undo-engine\\undoengine.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../serializer/utils';\nimport { checkModelReady, guid, propertiesVisitor } from './_utils';\nexport class _LatestChangeSet {\n constructor(changes, position) {\n this.changes = changes;\n this.position = position;\n }\n static Empty() {\n return new _LatestChangeSet(null, null);\n }\n equal(changeSet) {\n return this.changes === changeSet.changes && this.position === changeSet.position;\n }\n}\nvar activeEngines = [];\nexport class UndoEngine extends Disposable {\n constructor(target, _ignoredProperties = ['surface'], _getInfoMethodName, _alwaysSubscribeProperties = []) {\n super();\n this._ignoredProperties = _ignoredProperties;\n this._getInfoMethodName = _getInfoMethodName;\n this._alwaysSubscribeProperties = _alwaysSubscribeProperties;\n this._groupObservers = [];\n this._groupPosition = -1;\n this._observers = [];\n this._subscriptions = [];\n this._visited = [];\n this._position = ko.observable(-1);\n this._lockedPosition = ko.observable(-1);\n this._inUndoRedo = false;\n this._currentEngineName = UndoEngine._disposeUndoEngineSubscriptionsName + guid();\n this.redoEnabled = ko.observable(false);\n this.undoEnabled = ko.observable(false);\n this.isIngroup = -1;\n this.isDirty = ko.computed({\n read: () => { return this._position() !== this._lockedPosition(); },\n write: (value) => { value ? this._lockedPosition('forcibly marked as dirty') : this._lockedPosition(this._position()); }\n });\n activeEngines.push(this._currentEngineName);\n this._model = ko.unwrap(target);\n if (this._getInfoMethodName) {\n if (ko.isSubscribable(target)) {\n this._targetSubscription = this.subscribeProperty(target, true);\n }\n else {\n this._createDisposeFunction(target);\n }\n }\n else {\n var innerSubscriptions = this.subscribe(this._model);\n if (ko.isSubscribable(target)) {\n var prevVal = target();\n this._targetSubscription = target.subscribe((newTargetValue) => {\n this._removePropertiesSubscriptions();\n if (!this._inUndoRedo) {\n this.properyChanged({\n observable: target,\n propertyChanged: { oldVal: prevVal, val: newTargetValue }\n });\n prevVal = newTargetValue;\n }\n this._cleanSubscribtions(innerSubscriptions);\n this._model = newTargetValue;\n innerSubscriptions = this.subscribe(this._model);\n });\n }\n }\n this._disposables.push(this.isDirty);\n }\n static tryGetUndoEngine(object) {\n var undo = null;\n activeEngines.some(x => {\n undo = object[x] && object[x].instance;\n return !!undo;\n });\n return undo;\n }\n get _modelReady() {\n return checkModelReady(this._model);\n }\n _disposeObserver(record) {\n if (record.propertyChanged) {\n var value = record.propertyChanged.val;\n if (value && !value[this._currentEngineName]) {\n value.dispose && value.dispose();\n }\n }\n else if (record.arrayChanges) {\n record.arrayChanges.forEach(change => {\n if (change.status === 'added') {\n var value = change.value;\n if (value && !value[this._currentEngineName])\n value.dispose && value.dispose();\n }\n });\n }\n }\n _disposeRemovedRecord(record) {\n if (record.arrayChanges) {\n record.arrayChanges.forEach(change => {\n var _a, _b;\n if (change.status === 'deleted') {\n ((_a = change.value) === null || _a === void 0 ? void 0 : _a.dispose) && ((_b = change.value) === null || _b === void 0 ? void 0 : _b.dispose());\n }\n });\n }\n }\n _disposeObservers(removedItems, disposeRemovedRecords) {\n var disposalFunction = (disposeRemovedRecords ? this._disposeRemovedRecord : this._disposeObserver).bind(this);\n removedItems.forEach((changeSet) => {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => disposalFunction(item));\n }\n else {\n disposalFunction(changeSet);\n }\n });\n }\n properyChanged(undoRecord) {\n if (this._inUndoRedo) {\n return;\n }\n var currentPosition = this._position() + 1;\n if (currentPosition < this._observers.length) {\n var removedItems = this._observers.splice(currentPosition, this._observers.length);\n this._disposeObservers(removedItems, false);\n }\n this._observers.push(undoRecord);\n this._position(currentPosition);\n this.undoEnabled(true);\n this.redoEnabled(false);\n }\n visitProperties(target, info) {\n var subscribtions = [];\n if (target && info) {\n for (var i = 0; i < info.length; i++) {\n var alwaysSubscribeProperty = this._alwaysSubscribeProperties.some(x => x === info[i].propertyName);\n if (info[i].modelName || info[i].editor || info[i].info || alwaysSubscribeProperty) {\n var realPropertyName = alwaysSubscribeProperty ? info[i].propertyName : this.validatePropertyName(target, info[i].propertyName);\n if (realPropertyName) {\n if (!ko.isComputed(target[realPropertyName])) {\n if (!ko.isObservable(target[realPropertyName])) {\n subscribtions.push.apply([], this._createDisposeFunction(target[realPropertyName], info[i].info));\n }\n else {\n subscribtions.push(this.subscribeProperty(target[realPropertyName], !info[i].link));\n }\n }\n }\n }\n }\n }\n return subscribtions;\n }\n undoChangeSet(changeSet) {\n if (changeSet.propertyChanged) {\n changeSet.observable(changeSet.propertyChanged.oldVal);\n }\n else {\n var array = changeSet.observable();\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'added') {\n var addedIndex = array.indexOf(changeSet.arrayChanges[i].value);\n if (addedIndex != -1)\n array.splice(addedIndex, 1);\n }\n }\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'deleted') {\n array.splice(changeSet.arrayChanges[i].index, 0, changeSet.arrayChanges[i].value);\n }\n }\n if (ko.isObservable(changeSet.observable)) {\n changeSet.observable.valueHasMutated();\n }\n }\n }\n redoChangeSet(changeSet) {\n if (changeSet.propertyChanged) {\n changeSet.observable(changeSet.propertyChanged.val);\n }\n else {\n var array = changeSet.observable();\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'deleted') {\n array.splice(array.indexOf(changeSet.arrayChanges[i].value), 1);\n }\n }\n for (var i = 0; i < changeSet.arrayChanges.length; i++) {\n if (changeSet.arrayChanges[i].status === 'added') {\n array.splice(changeSet.arrayChanges[i].index, 0, changeSet.arrayChanges[i].value);\n }\n }\n if (ko.isObservable(changeSet.observable)) {\n changeSet.observable.valueHasMutated();\n }\n }\n }\n _disposeChilds(target, info) {\n if (target && info) {\n for (var i = 0; i < info.length; i++) {\n if (info[i].modelName || info[i].editor || info[i].info) {\n var propertyName = info[i].propertyName;\n if (propertyName.indexOf('_') !== 0) {\n var realPropertyName = propertyName;\n if (ko.isWritableObservable(target['_' + propertyName])) {\n realPropertyName = '_' + realPropertyName;\n }\n if (!ko.isComputed(target[realPropertyName])) {\n var val = ko.unwrap(target[realPropertyName]);\n if (!!val && typeof val === 'object') {\n if (!info[i].link) {\n this._callDisposeFunction(val);\n }\n }\n }\n }\n }\n }\n }\n }\n _createDisposeFunction(val, info) {\n var subscriptions = [];\n if (val && typeof val === 'object') {\n var objectInfo = info || (val[this._getInfoMethodName] && val[this._getInfoMethodName]());\n if (!!objectInfo) {\n if (val[this._currentEngineName]) {\n val[this._currentEngineName].inc++;\n }\n else {\n val[this._currentEngineName] = { inc: 1, instance: this };\n subscriptions = this.subscribe(val, objectInfo);\n val[this._currentEngineName]['func'] = () => {\n val[this._currentEngineName].inc--;\n this._disposeChilds(val, objectInfo);\n if (val[this._currentEngineName].inc === 0) {\n this._cleanSubscribtions(subscriptions);\n delete val[this._currentEngineName];\n }\n };\n }\n }\n }\n return subscriptions;\n }\n _callDisposeFunction(val) {\n if (val) {\n if (Array.isArray(val)) {\n for (var i = 0; i < val.length; i++) {\n val[i][this._currentEngineName] && val[i][this._currentEngineName].func();\n }\n }\n else {\n val[this._currentEngineName] && val[this._currentEngineName].func();\n }\n }\n }\n _cleanSubscribtions(subscribtionArray) {\n if (subscribtionArray) {\n if (subscribtionArray.length) {\n for (var i = 0; i < subscribtionArray.length; i++) {\n this._cleanSubscribtions(subscribtionArray[i]);\n }\n }\n else {\n subscribtionArray.dispose && subscribtionArray.dispose();\n }\n }\n }\n validatePropertyName(target, propertyName) {\n if ((!this._ignoredProperties || (this._ignoredProperties && this._ignoredProperties.every(x => x !== propertyName))) && propertyName[0] !== '_') {\n if (ko.isWritableObservable(target['_' + propertyName])) {\n return '_' + propertyName;\n }\n return propertyName;\n }\n return null;\n }\n subscribeProperty(property, subscribeChilds) {\n if (ko.isObservable(property)) {\n var prevVal = property();\n if (Array.isArray(prevVal)) {\n for (var i = 0; i < property().length; i++) {\n this._createDisposeFunction(property()[i]);\n }\n return property.subscribe((args) => {\n if (this._modelReady) {\n var addedItems = args.filter(x => x.status === 'added');\n var removedItems = args.filter(x => x.status === 'deleted');\n for (var i = 0; i < removedItems.length; i++) {\n this._callDisposeFunction(removedItems[i].value);\n }\n for (var i = 0; i < addedItems.length; i++) {\n this._createDisposeFunction(addedItems[i].value);\n }\n this.properyChanged({ observable: property, arrayChanges: args });\n }\n }, null, 'arrayChange');\n }\n else {\n if (ko.isWritableObservable(property)) {\n if (subscribeChilds) {\n this._createDisposeFunction(property());\n }\n return property.subscribe((val) => {\n if (this._modelReady) {\n if (subscribeChilds) {\n this._callDisposeFunction(prevVal);\n }\n this.properyChanged({\n observable: property, propertyChanged: { oldVal: prevVal, val: val }\n });\n prevVal = val;\n if (subscribeChilds) {\n this._createDisposeFunction(val);\n }\n }\n });\n }\n }\n }\n }\n subscribeProperties(properties) {\n properties.forEach((property) => {\n if (ko.isObservable(property)) {\n var prevVal = property();\n if (property['push']) {\n this._subscriptions.push(property.subscribe((args) => {\n if (this._modelReady) {\n if (!this._inUndoRedo) {\n this.properyChanged({ observable: property, arrayChanges: args });\n this.subscribe(args.map((item) => { return item.value; }));\n }\n }\n }, null, 'arrayChange'));\n }\n else {\n if (ko.isWritableObservable(property)) {\n this._subscriptions.push(property.subscribe((val) => {\n if (this._modelReady) {\n this.properyChanged({\n observable: property, propertyChanged: { oldVal: prevVal, val: val }\n });\n prevVal = property();\n }\n }));\n }\n }\n }\n });\n }\n subscribe(target, info) {\n if (this._getInfoMethodName) {\n return this.visitProperties(target, info || (target && target[this._getInfoMethodName] && target[this._getInfoMethodName]()));\n }\n else {\n propertiesVisitor(target, (properties) => { this.subscribeProperties(properties); }, this._visited, this._ignoredProperties);\n }\n }\n getCurrentChangeSet() {\n return new _LatestChangeSet(this._observers[this._position()], this._position());\n }\n _removePropertiesSubscriptions() {\n this._subscriptions.forEach(subscription => subscription.dispose());\n this._subscriptions = [];\n this._visited = [];\n }\n dispose() {\n super.dispose();\n this._disposeObservers(this._observers.splice(0, this._observers.length), true);\n this.removeTargetSubscription();\n var position = 0;\n activeEngines.some((x, index) => {\n if (x === this._currentEngineName) {\n position = index;\n return true;\n }\n return false;\n });\n activeEngines.splice(position, 1);\n }\n removeTargetSubscription() {\n this._targetSubscription && this._targetSubscription.dispose();\n this.reset();\n }\n undoAll() {\n if (this.undoEnabled()) {\n this.undo();\n this.undoAll();\n }\n }\n reset() {\n this._removePropertiesSubscriptions();\n this.clearHistory();\n }\n clearHistory() {\n this._groupObservers = [];\n this._observers = [];\n this.redoEnabled(false);\n this.undoEnabled(false);\n this._inUndoRedo = false;\n this._groupPosition = -1;\n this._position(-1);\n this._lockedPosition(this._position());\n }\n undo(removeNode = false) {\n try {\n this._inUndoRedo = true;\n if (this.undoEnabled()) {\n var changeSet = this._observers[this._position()];\n if (changeSet) {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => this.undoChangeSet(item));\n }\n else {\n this.undoChangeSet(changeSet);\n }\n if (removeNode) {\n this._observers.splice(this._position(), 1);\n }\n this._position(this._position() - 1);\n this.undoEnabled(this._observers.length !== 0 && this._position() >= 0);\n this.redoEnabled(this._position() < this._observers.length - 1);\n }\n }\n }\n finally {\n this._inUndoRedo = false;\n }\n }\n redo() {\n try {\n this._inUndoRedo = true;\n if (this.redoEnabled()) {\n var changeSet = this._observers[this._position() + 1];\n if (changeSet) {\n if (Array.isArray(changeSet)) {\n changeSet.reverse().forEach(item => this.redoChangeSet(item));\n }\n else {\n this.redoChangeSet(changeSet);\n }\n this._position(this._position() + 1);\n this.undoEnabled(this._observers.length !== 0 && this._position() >= 0);\n this.redoEnabled(this._position() + 1 < this._observers.length);\n }\n }\n }\n finally {\n this._inUndoRedo = false;\n }\n }\n _hasSessionChanges() {\n return this.isIngroup === 0 && this._observers.length > 0;\n }\n start() {\n this.isIngroup++;\n if (this.isIngroup !== 0)\n return;\n this._groupObservers = this._observers;\n this._observers = [];\n this._groupPosition = this._position();\n this._position(-1);\n this._lockedPosition(this._position());\n }\n end() {\n this.isIngroup--;\n if (this.isIngroup !== -1) {\n return;\n }\n if (this._observers.length > 0) {\n this._position(this._groupPosition + 1);\n var removedItems = this._groupObservers.splice(this._position(), this._groupObservers.length - this._position(), this._observers);\n this._disposeObservers(removedItems, false);\n }\n else {\n this._position(this._groupPosition);\n }\n this._observers = this._groupObservers;\n }\n}\nUndoEngine._disposeUndoEngineSubscriptionsName = '___dispose___UndoEngine___Subscriptions___';\n","/**\r\n* DevExpress Analytics (widgets\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport themes from 'devextreme/ui/themes';\nimport * as $ from 'jquery';\nimport { getLocalization } from '../property-grid/localization/localization_utils';\nimport { formatUnicorn } from '../property-grid/widgets/internal/_utils';\nimport { PathRequest } from './common/pathRequest';\nimport { OperandParameter } from './criteria/operators/parameter';\nimport { OperandProperty } from './criteria/operators/property';\nimport { criteriaForEach } from './criteria/utils/criteriaEnumeration';\nimport { CriteriaOperatorStateMachine } from './criteria/utils/criteriaOperatorStateMachine';\nimport { ValueEditorHelper } from './internal/_valueEditorHelper';\nexport function integerValueConverter(val, defaultValue, type) {\n var stringValue = '' + val;\n return ValueEditorHelper.isValid(type, 'integer', stringValue) ? stringValue : defaultValue;\n}\nexport function enumValueConverter(val, defaultValue, valuesList) {\n if (valuesList.filter((enumValue) => val === enumValue.value)[0])\n return val;\n var existingValue = valuesList.filter((enumValue) => val === enumValue.displayName || val === enumValue.name)[0];\n if (existingValue)\n return existingValue.value;\n return defaultValue;\n}\nexport function validateExpression(options) {\n var deferred = $.Deferred();\n try {\n var requests = [];\n var _pushRequest = (path, propertyName, isParameter = false) => {\n var message = formatUnicorn(getLocalization('{0} is not found', 'AnalyticsCoreStringId.WarningMessage_FieldNotFound'), isParameter ? ('?' + propertyName) : ('[' + propertyName + ']'));\n var propertyDeferred = $.Deferred();\n options.fieldListProvider.getItemByPath(new PathRequest(path))\n .done(_ => propertyDeferred.resolve({ success: true }))\n .fail(_ => {\n path === propertyName\n ? propertyDeferred.resolve({ success: false, message })\n : options.fieldListProvider.getItemByPath(new PathRequest([path.split('.')[0], propertyName].join('.')))\n .done(_ => propertyDeferred.resolve({ success: true }))\n .fail(_ => propertyDeferred.resolve({ success: false, message }));\n });\n requests.push(propertyDeferred);\n };\n var expression = CriteriaOperatorStateMachine.parse(options.expression);\n criteriaForEach(expression, (operator, innerPath) => {\n if (operator instanceof OperandProperty) {\n var propertyName = operator.propertyName.indexOf('^.') === 0 ? operator.propertyName.substring(2) : operator.propertyName;\n var path = propertyName;\n if ((options.rootItems || []).indexOf(propertyName.split('.')[0]) === -1 && innerPath) {\n path = propertyName ? [innerPath, propertyName].join('.') : innerPath;\n }\n _pushRequest(path, propertyName);\n }\n else if (operator instanceof OperandParameter) {\n var parameterName = operator.parameterName;\n var parameterPath = 'Parameters.' + parameterName;\n _pushRequest(parameterPath, parameterName, true);\n }\n }, options.path);\n $.when.apply($, requests).done((...responses) => deferred.resolve(responses.reduce((result, value) => {\n if (!value.success)\n result = result ? [result, value.message].join('\\n') : value.message;\n return result;\n }, '')));\n }\n catch (e) {\n deferred.reject();\n }\n return deferred.promise();\n}\nexport function floatValueConverter(val, defaultValue, type) {\n var stringValue = '' + val;\n return ValueEditorHelper.isValid(type, 'float', stringValue) ? stringValue : defaultValue;\n}\nfunction getCurrentTheme() {\n return themes.current();\n}\nexport var isDarkTheme = (theme) => {\n theme = theme || getCurrentTheme();\n return theme && ['dark', 'contrast'].some(x => theme.indexOf(x) !== -1);\n};\nexport function _setIsDarkTheme(callback) {\n isDarkTheme = callback;\n}\nexport function setCursorInFunctionParameter(paramCount, editor, insertValue) {\n if (!paramCount || paramCount <= 0)\n return;\n var cursorPosition = editor.getCursorPosition(), lastIndexOpeningBracket = insertValue.lastIndexOf('(');\n if (insertValue.charAt(lastIndexOpeningBracket + 1) === \"'\")\n lastIndexOpeningBracket++;\n editor.gotoLine(cursorPosition.row + 1, cursorPosition.column - (insertValue.length - 1 - lastIndexOpeningBracket));\n}\nexport function isList(data) {\n return data.isList === true || data.specifics === 'List' || data.specifics === 'ListSource';\n}\nexport function getParentContainer(el, container = '.dx-designer-viewport') {\n return $.fn.constructor(el).closest(container);\n}\nexport function isNullOrEmptyString(str) {\n return str == null || str === '';\n}\n","/**\r\n* DevExpress Analytics (widgets\\ace\\_ace-available.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport ace from 'ace-builds/src-noconflict/ace';\nexport var aceAvailable = createGlobalAceVariableFunc();\nfunction createGlobalAceVariableFunc() {\n var currentValue;\n return (newVal) => {\n if (newVal !== undefined)\n currentValue = newVal;\n return currentValue === undefined ? !!ace : currentValue;\n };\n}\n","/**\r\n* DevExpress Analytics (widgets\\bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { addDisposeCallback } from '../serializer/_internal';\nko.bindingHandlers['focus'] = {\n init: function (element, valueAccessor) {\n var visible = valueAccessor().on || valueAccessor();\n var subscription = visible.subscribe((newVal) => {\n if (newVal) {\n setTimeout(() => {\n $.fn.constructor(element).find(':input').focus();\n }, 1);\n }\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nko.bindingHandlers['svgAttrs'] = {\n update: function (element, valueAccessor, allBindingsAccessor, viewModel) {\n element.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n element.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n }\n};\n","/**\r\n* DevExpress Analytics (widgets\\common\\_codeCompletor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { functionDisplay } from '../expressioneditor/tools/_functions';\nimport { Disposable } from '../../serializer/utils';\nimport { isList, setCursorInFunctionParameter } from '../_utils';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { PathRequest } from './pathRequest';\nimport { RangeSpecific } from '../expressioneditor/_expressioneditor';\nimport { operatorNames } from '../expressioneditor/tools/_operatorNames';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nexport class CodeCompletor extends Disposable {\n constructor(_options) {\n super();\n this._options = _options;\n this._contextPath = null;\n this._isInContext = () => this._contextPath !== null;\n this._getPath = () => this._contextPath ? this._path() + '.' + this._contextPath : this._path();\n this.identifierRegexps = [/\\./, /\\[/];\n this._fieldListProvider = _options.fieldListProvider;\n this._path = _options.path;\n this._editor = _options.editor;\n this._functions = ko.computed(() => { return ko.unwrap(_options.functions) || functionDisplay(); });\n this._rootItems = _options.rootItems || [{ name: 'Parameters', needPrefix: true }];\n this._disposables.push(this._functions);\n }\n _previousSymbol() {\n var cursorPosition = this._editor.getCursorPosition();\n return this._editor.session.getLine(cursorPosition.row)[cursorPosition.column - 1];\n }\n beforeInsertMatch(editor, token, parentPrefix) {\n var cursorPosition = editor.getCursorPosition();\n if (parentPrefix === 'Parameters.') {\n token = token || !this['_isInContext']() && editor.session.getTokenAt(cursorPosition.row, cursorPosition.column);\n if (token) {\n if ((token.type === 'support.variable.other' || token.type === 'support.function')) {\n editor.session.remove({\n start: { column: token.start - 1 || 0, row: cursorPosition.row },\n end: { column: Math.max(token.start + token.value.length || 0, cursorPosition.column), row: cursorPosition.row }\n });\n }\n else if (token.type === 'support.variable.parameter') {\n editor.session.remove({\n start: { column: token.start || 0, row: cursorPosition.row },\n end: { column: Math.max(token.start + token.value.length + 1 || 0, cursorPosition.column), row: cursorPosition.row }\n });\n }\n else if (token.type === 'text' && token.value[token.value.length - 1] === '?') {\n editor.session.remove({\n start: { column: token.start + token.value.length - 1 || 0, row: cursorPosition.row },\n end: { column: token.start + token.value.length || 0, row: cursorPosition.row },\n });\n }\n }\n }\n else {\n token = token || editor.session.getTokenAt(cursorPosition.row, cursorPosition.column);\n if (!token)\n return;\n var endColumn = null;\n if (token.type === 'support.variable.other' || token.type === 'support.function') {\n endColumn = Math.max(token.start + token.value.length || 0, cursorPosition.column);\n }\n else if (token.type === 'support.context.start' && cursorPosition.column < token.start + token.value.length) {\n endColumn = token.start + token.value.length - 1 || 0;\n }\n if (endColumn !== null)\n editor.session.remove({\n start: { column: token.start || 0, row: cursorPosition.row },\n end: { column: endColumn, row: cursorPosition.row }\n });\n }\n }\n insertMatch(editor, parentPrefix, fieldName) {\n if (parentPrefix === 'Parameters.') {\n editor.insert('?' + fieldName);\n }\n else {\n editor.insert('[' + (parentPrefix || '') + fieldName + ']');\n }\n }\n generateFieldDisplayName(parentPrefix, displayName) {\n if (parentPrefix === 'Parameters.') {\n return '?' + displayName;\n }\n return '[' + displayName + ']';\n }\n _convertDataMemberInfoToCompletions(fields, getToken, parentPrefix = '') {\n return (fields || []).map(field => {\n var displayName = this.generateFieldDisplayName(parentPrefix, field.displayName);\n return {\n caption: field.displayName || field.name,\n snippet: displayName,\n meta: isList(field) && getLocalization('list', 'DxDesignerStringId.CodeCompletion_List') || getLocalization('field', 'DxDesignerStringId.CodeCompletion_Field'),\n score: isList(field) && 200 || 100,\n completer: {\n insertMatch: (editor, data) => {\n this.beforeInsertMatch(editor, getToken(), parentPrefix);\n this.insertMatch(editor, parentPrefix, this._options.getRealExpression ? (field.displayName || field.name) : field.name);\n }\n }\n };\n });\n }\n _combinePath(parentPrefix) {\n var path = this._getPath();\n if (parentPrefix) {\n var rootItem = this._rootItems.filter(item => parentPrefix.indexOf(item.name) === 0)[0];\n if (rootItem && rootItem.rootPath)\n path = [rootItem.rootPath, parentPrefix].join('.');\n else\n path = [path, parentPrefix].join('.');\n }\n return path;\n }\n _getParentPrefix(token) {\n var position = this._editor.getCursorPosition().column - token.start - 1;\n var dotIndex = token.value.lastIndexOf('.', position);\n var closeIndex = token.value.lastIndexOf(']', position);\n dotIndex = Math.max(closeIndex, dotIndex);\n var startIndex = token.type === 'support.variable.other' || token.type === 'support.context.start' ? 1 : 0;\n var parentPrefix = token.value.substring(startIndex, dotIndex);\n if (parentPrefix[0] === '[')\n parentPrefix = parentPrefix.substr(1);\n if (parentPrefix[parentPrefix.length - 1] === ']')\n parentPrefix = parentPrefix.substring(0, parentPrefix.length - 1);\n return parentPrefix;\n }\n _getRealPath(path) {\n var pathArray = path.split('.');\n var $deferred = $.Deferred();\n if (this._options.getRealExpression) {\n this._options.getRealExpression(pathArray[0], this.generateFieldDisplayName(null, pathArray.splice(1).join('.'))).done(result => {\n result = result.slice(1, result.length - 1);\n $deferred.resolve(result && [pathArray[0], result].join('.') || pathArray[0]);\n }).fail(() => { $deferred.resolve(path); });\n }\n else {\n $deferred.resolve(path);\n }\n return $deferred.promise();\n }\n _getFields(getToken = () => null, completions = [], ignorePrefix = false) {\n var $deferred = $.Deferred();\n var parentPrefix = undefined;\n var token = getToken();\n if (token && (token.type === 'support.variable.other' || token.type === 'support.function' || token.type === 'support.context.start')) {\n parentPrefix = this._getParentPrefix(token);\n }\n this._getRealPath(this._combinePath(parentPrefix)).done((path) => {\n var $fields = ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path))\n .done((fields) => {\n completions.push.apply(completions, this._convertDataMemberInfoToCompletions(CodeCompletor._cleanupFields(fields), getToken, ignorePrefix ? null : parentPrefix && parentPrefix + '.'));\n });\n var $deferreds = [$fields];\n var rootPathRequests = [];\n if (!parentPrefix) {\n this._rootItems.forEach(item => {\n var path = item.rootPath || item.name;\n if (rootPathRequests.indexOf(path) === -1) {\n rootPathRequests.push(path);\n $deferreds.push(ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path))\n .done((fields) => {\n this._processFields($deferreds, fields, completions, path, getToken, item.needPrefix ? item.name + '.' : '', true);\n }));\n }\n });\n }\n $.when($deferreds).always(() => { $deferred.resolve(completions); });\n });\n return $deferred.promise();\n }\n static _cleanupFields(fields = []) {\n return fields.filter(x => x.specifics !== 'parameters' && x.specifics !== 'none');\n }\n _processFields($deferreds, fields, completions, path, getToken, parentPrefix = '', needCleanup = false) {\n var pushToCompletions = (fields) => {\n completions.push.apply(completions, this._convertDataMemberInfoToCompletions(needCleanup ? CodeCompletor._cleanupFields(fields) : fields, getToken, parentPrefix));\n };\n fields.forEach(item => {\n if (item.specifics === RangeSpecific && isList(item)) {\n $deferreds.push(ko.unwrap(this._fieldListProvider).getItems(new PathRequest(path + '.' + item.name))\n .done((subFields) => {\n pushToCompletions(subFields);\n })\n .fail(() => {\n pushToCompletions([item]);\n }));\n }\n else {\n pushToCompletions([item]);\n }\n });\n }\n getFunctionsCompletions() {\n var functions = [];\n var functionsWithoutAggregates = ko.unwrap(this._functions).filter(fnDisplay => fnDisplay.category !== 'Aggregate');\n functionsWithoutAggregates.forEach(fnDisplay => {\n Object.keys(fnDisplay.items).forEach(fnKey => {\n if (fnDisplay.items[fnKey]) {\n functions.push(createFunctionCompletion(fnDisplay.items[fnKey][0], fnKey));\n }\n });\n });\n return functions;\n }\n getAggregateCompletions() {\n var functions = [];\n var aggregates = ko.unwrap(this._functions).filter(fnDisplay => fnDisplay.category === 'Aggregate')[0];\n if (aggregates)\n Object.keys(aggregates.items).forEach(fnKey => {\n if (aggregates.items[fnKey]) {\n functions.push(createFunctionCompletion(aggregates.items[fnKey][0], fnKey, fnKey + '()'));\n }\n });\n return functions;\n }\n getOperatorCompletions(prefix) {\n return operatorNames.map(operator => {\n return { caption: operator.text, snippet: prefix + operator.text, meta: getLocalization('operator', 'DxDesignerStringId.CodeCompletion_Operator') };\n });\n }\n _addFunctions(completions) {\n completions.push.apply(completions, this.getFunctionsCompletions());\n }\n _addAggregates(completions) {\n completions.push.apply(completions, this.getAggregateCompletions());\n }\n _addOperators(completions, text) {\n var prefix = /\\s/.test(text[text.length - 1]) ? '' : ' ';\n completions.push.apply(completions, this.getOperatorCompletions(prefix));\n }\n _addParameterOperators(completions, getToken) {\n var $deferred = $.Deferred();\n var $parametersPromises = [];\n var paramPath = 'Parameters';\n $parametersPromises.push(ko.unwrap(this['_fieldListProvider']).getItems(new PathRequest(paramPath))\n .done((fields) => {\n this._processFields($parametersPromises, fields, completions, paramPath, getToken, paramPath + '.');\n }));\n $.when($parametersPromises).always(() => { $deferred.resolve(completions); });\n return $deferred.promise();\n }\n _getOperands(getToken = () => null) {\n var result = [];\n this._addFunctions(result);\n return this._getFields(getToken, result);\n }\n _getOperandsOrOperators(getToken, text, completions) {\n var exceptionInfo;\n try {\n CriteriaOperatorStateMachine.parse(text);\n }\n catch (exception) {\n exceptionInfo = exception.hash;\n }\n var trimmedText = text.trim();\n var lastNonSpaceSymbol = trimmedText[trimmedText.length - 1];\n if (lastNonSpaceSymbol === '?' && text[text.length - 1] !== ' ') {\n this._addParameterOperators(completions, getToken);\n }\n else if (!exceptionInfo && trimmedText || (lastNonSpaceSymbol === ']' || lastNonSpaceSymbol === ')')) {\n this._addOperators(completions, text);\n }\n else {\n return this._getOperands();\n }\n }\n _findStartContextTokenPosition(tokens, index) {\n var blocks = 0;\n var path = [];\n for (var i = index; i > -1; i--) {\n if (tokens[i].type === 'support.context.end') {\n blocks++;\n }\n else if (tokens[i].type === 'support.context.start') {\n if (blocks > 0)\n blocks--;\n else\n return i;\n }\n }\n }\n _findOpenedStartContext(tokens, index) {\n var openedContextIndexes = [];\n var contextItems = tokens.filter((token, tokenIndex) => (token.type === 'support.context.start' || token.type === 'support.context.end') && tokenIndex < index);\n for (var i = 0; i < contextItems.length; i++) {\n if (contextItems[i].type === 'support.context.start') {\n openedContextIndexes.push(tokens.indexOf(contextItems[i]));\n }\n else {\n openedContextIndexes.pop();\n }\n }\n return openedContextIndexes;\n }\n _findOpenedAggregates(tokens, index) {\n var openedAggregatesIndexes = [];\n var aggregates = tokens.filter((token, tokenIndex) => token.type === 'support.other.aggregate' && tokenIndex < index);\n if (aggregates.length > 0) {\n var currentToken = tokens[index];\n var currentCursorPosition = this._editor.getCursorPosition().column - (currentToken && currentToken.start || 0);\n for (var i = aggregates.length - 1; i > -1; i--) {\n var aggregateIndex = tokens.indexOf(aggregates[i]);\n var openBrace = 0;\n var closeBrace = 0;\n var isClosedAggregate = false;\n if (aggregateIndex + 1 === index && tokens[aggregateIndex + 1].value.substr(0, currentCursorPosition).indexOf('()') !== -1 ||\n aggregateIndex + 1 < index && tokens[aggregateIndex + 1].value.indexOf('()') !== -1) {\n isClosedAggregate = true;\n index = aggregateIndex;\n continue;\n }\n for (var j = aggregateIndex; j < index; j++) {\n if (tokens[j].value.trim() === '(') {\n openBrace++;\n }\n else if (tokens[j].value.trim() === ')') {\n closeBrace++;\n }\n if (openBrace === closeBrace && openBrace !== 0) {\n isClosedAggregate = true;\n break;\n }\n }\n if (!isClosedAggregate)\n openedAggregatesIndexes.splice(0, 0, aggregateIndex);\n index = aggregateIndex;\n }\n }\n return openedAggregatesIndexes;\n }\n _getContextPath(tokens, currentPosition) {\n var path = [];\n var openedAggregatePositions = this._findOpenedAggregates(tokens, currentPosition);\n var openedContextPositions = this._findOpenedStartContext(tokens, currentPosition);\n var contextPath = openedContextPositions.concat(...openedAggregatePositions).sort((a, b) => { return a - b; });\n if (contextPath.length > 0) {\n for (var i = 0; i < contextPath.length; i++) {\n if (tokens[contextPath[i]].type === 'support.other.aggregate') {\n if (tokens[contextPath[i] - 1].type === 'support.context.end') {\n var startContextToken = this._findStartContextTokenPosition(tokens, contextPath[i] - 2);\n var member = trimBrackets(tokens[startContextToken].value.match(/^\\[(?:[^\\]\\)])*\\]/)[0]);\n path.push(member);\n }\n else if (tokens[contextPath[i] - 1].type === 'support.variable.other') {\n path.push(trimBrackets(tokens[contextPath[i] - 1].value));\n }\n }\n else {\n var member = trimBrackets(tokens[contextPath[i]].value.match(/^\\[(?:[^\\]\\)])*\\]/)[0]);\n path.push(member);\n }\n }\n }\n return path.filter(x => !!x).join('.');\n }\n _getCompletions(editor, session, pos, prefix) {\n var $deferred;\n var completions = [];\n var getToken = () => session.getTokenAt(pos.row, pos.column);\n var currentToken = getToken();\n var text = editor.session.getLine(pos.row).substring(0, pos.column);\n var tokens = session.getTokens(pos.row);\n var currentTokenIndex = currentToken ? currentToken.index : -1;\n this._contextPath = this._getContextPath(tokens, currentTokenIndex);\n if (!currentToken) {\n $deferred = this._getOperands();\n }\n else if (currentToken.type === 'support.context.start') {\n var ignorePrefix = this._editor.getCursorPosition().column - currentToken.start === currentToken.value.length;\n if (ignorePrefix) {\n var functions = [];\n this._addFunctions(functions);\n }\n $deferred = this._getFields(getToken, functions, ignorePrefix);\n }\n else if (currentToken.type === 'string.quoted.single') {\n }\n else if (currentToken.type.indexOf('support.variable') === 0) {\n $deferred = this._getFields(getToken);\n }\n else if (currentToken.type === 'support.function') {\n $deferred = this.defaultProcess(getToken, text.substring(0, currentToken.start), completions);\n }\n else if (currentToken.type === 'support.other.aggregate') {\n var previousToken = tokens[currentTokenIndex - 1];\n this._addAggregates(completions);\n if (previousToken && trimBrackets(previousToken.value).trim()) {\n $deferred = this._getFields(() => ({\n start: (currentToken.start - (previousToken.value || '').length) || 0,\n value: previousToken.value + currentToken.value,\n type: 'support.function'\n }), completions);\n }\n }\n else {\n if (!(currentToken.type.indexOf('comment') === 0)) {\n $deferred = this.defaultProcess(getToken, text, completions);\n }\n }\n return $deferred ? $deferred.promise() : $.Deferred().resolve(completions).promise();\n }\n defaultProcess(getToken, text, completions) {\n return this._getOperandsOrOperators(getToken, text, completions);\n }\n getCompletions(aceEditor, session, pos, prefix, callback) {\n this._getCompletions(aceEditor, session, pos, prefix).done(completions => {\n callback(null, completions);\n });\n }\n getDocTooltip(item) {\n if (item.tooltip && !item.docHTML) {\n item.docHTML = [\n item.tooltip\n ].join('');\n }\n }\n}\nexport function createFunctionCompletion(fnInfo, name, insertValue = null) {\n var insertValue = insertValue || fnInfo.text;\n return {\n caption: name,\n snippet: insertValue,\n meta: getLocalization('function', 'DxDesignerStringId.CodeCompletion_Function'),\n tooltip: fnInfo.description || getLocalization(fnInfo.text, fnInfo.descriptionStringId) || null,\n score: 10,\n completer: {\n insertMatch: (editor, data) => {\n var completions = editor.completer.completions;\n if (completions.filterText) {\n var ranges = editor.selection.getAllRanges();\n for (var i = 0, range; range = ranges[i]; i++) {\n range.start.column -= completions.filterText.length;\n editor.session.remove(range);\n }\n }\n if (insertValue.substr(0, 3) === '[].') {\n var ranges = editor.selection.getAllRanges();\n for (var i = 0, range; range = ranges[i]; i++) {\n range.start.column -= 2;\n if (editor.session.getTextRange(range) === '].')\n insertValue = insertValue.substr(3);\n }\n }\n editor.insert(insertValue);\n setCursorInFunctionParameter(fnInfo.paramCount, editor, insertValue);\n }\n }\n };\n}\nexport function trimBrackets(value) {\n return value.substring(value[0] === '[' ? 1 : 0, value[value.length - 1] === ']' ? value.length - 1 : value.length);\n}\n","/**\r\n* DevExpress Analytics (widgets\\common\\_displayNameProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { OperandProperty } from '../criteria/operators/property';\nimport { FilterEditorSerializer } from '../filtereditor/helpers/_serializer';\nimport { criteriaForEach } from '../criteria/utils/criteriaEnumeration';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nexport class DisplayExpressionConverter {\n constructor(displayNameProvider) {\n this.displayNameProvider = displayNameProvider;\n }\n _replaceNames(path, expression, getDisplayExpression) {\n var def = $.Deferred();\n if (!expression)\n return def.resolve('').promise();\n try {\n var expressionCriteria = CriteriaOperatorStateMachine.parse(expression, true);\n }\n catch (e) {\n return def.reject().promise();\n }\n var requests = [];\n var result = [];\n var serializer = new FilterEditorSerializer();\n criteriaForEach(expressionCriteria, (operator, innerPath) => {\n if (operator instanceof OperandProperty) {\n var isContainsParentRelationshipTraversalOperator = operator.propertyName.indexOf('^.') === 0;\n var propertyName = isContainsParentRelationshipTraversalOperator ? operator.propertyName.substring(2) : operator.propertyName;\n propertyName = innerPath ? [innerPath, propertyName].join('.') : propertyName;\n var request = getDisplayExpression ? this.displayNameProvider.getDisplayNameByPath(path, propertyName) :\n this.displayNameProvider.getRealName(path, propertyName);\n requests.push(request.done(data => {\n var convertedName = isContainsParentRelationshipTraversalOperator ? '^.' + data : data;\n convertedName = innerPath ? convertedName.split('.').slice(innerPath.split('.').length).join('.') : convertedName;\n result.push({\n operand: operator,\n convertedName\n });\n }));\n }\n });\n if (requests.length === 0) {\n def.resolve(expression);\n }\n else {\n var processedRequestsCount = 0;\n var onAlways = () => {\n if (++processedRequestsCount < requests.length)\n return;\n var lines = expression.split('\\n');\n for (var i = 0; i < lines.length; i++) {\n var operands = result.filter((value) => value.operand.startPosition.line === i).sort((a, b) => {\n return a.operand.startPosition.column - b.operand.startPosition.column;\n });\n for (var j = 0, delta = 0; j < operands.length; j++) {\n var column = operands[j].operand.startPosition.column;\n var propertyName = operands[j].operand.propertyName;\n var deltaName = 0;\n if (operands[j].operand.originalPropertyLength !== propertyName.length) {\n deltaName = Math.max(0, operands[j].operand.originalPropertyLength - serializer.serialize(operands[j].operand, false).length);\n }\n var convertedName = operands[j].convertedName;\n if (!propertyName || column < 0)\n continue;\n lines[i] = lines[i].substring(0, column + delta) + convertedName + lines[i].substring(column + propertyName.length + deltaName + delta);\n delta += convertedName.length - propertyName.length - deltaName;\n }\n }\n def.resolve(lines.join('\\n'));\n };\n requests.forEach(r => r.always(onAlways));\n }\n return def.promise();\n }\n toDisplayExpression(path, expression) {\n return this._replaceNames(path, expression, true);\n }\n toRealExpression(path, expression) {\n return this._replaceNames(path, expression, false);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\common\\pathRequest.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class PathRequest {\n constructor(fullPath, pathParts = []) {\n this.pathParts = pathParts;\n this.path = '';\n this.fullPath = fullPath;\n if (fullPath) {\n if (fullPath.indexOf('.') !== -1) {\n var pathComponents = fullPath.split('.');\n this.id = this.ref = pathComponents[0];\n pathComponents.splice(0, 1);\n this.path = pathComponents.join('.');\n }\n else {\n this.id = this.ref = fullPath;\n }\n }\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\aggregate.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { UnaryOperator } from './unary';\nimport { BinaryOperatorType } from './options/binary';\nimport { UnaryOperatorType } from './options/unary';\nimport { GroupOperatorType } from './options/group';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class AggregateOperand extends CriteriaOperator {\n constructor(property, aggregatedExpression, aggregateType, condition) {\n super();\n this.change = (operationType, item) => {\n var operator = null;\n if (operationType.type === GroupOperatorType) {\n operator = criteriaCreator.changeByType(operationType);\n if (operationType.type !== operator.enumType) {\n operator.leftPart.assignFrom(item);\n }\n else {\n operator.assignFrom(item);\n }\n this.condition = operator;\n }\n return operator;\n };\n this.assignLeftPart = (criteriaOperator) => {\n if (criteriaOperator.leftPart instanceof AggregateOperand) {\n this.assignFrom(criteriaOperator.leftPart);\n }\n else {\n if (criteriaOperator instanceof AggregateOperand) {\n this.property = criteriaOperator.property;\n if (this.aggregatedExpression && criteriaOperator.aggregatedExpression) {\n this.aggregatedExpression = criteriaOperator.aggregatedExpression;\n }\n this.condition = criteriaOperator.condition;\n }\n else {\n this.property = criteriaOperator.leftPart;\n }\n }\n };\n this.type = 'aggregate';\n this.property = property;\n if (!!condition && condition.type === 'group') {\n this.condition = condition;\n }\n else {\n if (condition instanceof UnaryOperator && condition.operatorType === UnaryOperatorType.Not) {\n if (condition.operand.type === 'group') {\n this.condition = criteriaCreator.process('unary', { operator: condition.operand, operatorType: UnaryOperatorType.Not });\n }\n else {\n this.condition = criteriaCreator.process('unary', {\n operator: criteriaCreator.process('group', {\n operation: GroupOperatorType.And,\n operands: condition.operand ? [condition.operand] : []\n }),\n operatorType: UnaryOperatorType.Not\n });\n }\n }\n else {\n this.condition = criteriaCreator.process('group', {\n operation: GroupOperatorType.And,\n operands: condition ? [condition] : []\n });\n }\n }\n this.operatorType = aggregateType;\n this.aggregatedExpression = aggregatedExpression;\n }\n get displayType() {\n return this.operatorType;\n }\n get enumType() {\n return AggregateOperand;\n }\n get leftPart() {\n return this.property;\n }\n children() {\n var operands = [];\n this.condition && operands.push(this.condition);\n this.aggregatedExpression && operands.push(this.aggregatedExpression);\n return operands;\n }\n accept(visitor) {\n return visitor.visitAggregateOperand\n ? visitor.visitAggregateOperand(this)\n : criteriaCreator.process('aggregate', {\n aggregateType: this.operatorType,\n aggregatedExpression: this.aggregatedExpression && this.aggregatedExpression.accept(visitor),\n condition: this.condition && this.condition.accept(visitor),\n property: this.property && this.property.accept(visitor)\n });\n }\n}\ncriteriaCreator.register('aggregate', (options) => {\n return new AggregateOperand(options.property, options.aggregatedExpression, options.aggregateType, options.condition);\n}, (operatorType) => {\n var options = {\n property: criteriaCreator.process('property'),\n aggregateType: operatorType.value,\n aggregatedExpression: null,\n condition: criteriaCreator.process('group', { operation: GroupOperatorType.And, operands: [] })\n };\n if (operatorType.value === 'Exists') {\n return criteriaCreator.process('aggregate', options);\n }\n else {\n if (operatorType.value !== 'Count') {\n options.aggregatedExpression = criteriaCreator.process('property');\n }\n return criteriaCreator.process('binary', {\n left: criteriaCreator.process('aggregate', options),\n right: criteriaCreator.process('value', { value: undefined }),\n operatorType: BinaryOperatorType.Equal\n });\n }\n});\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\between.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class BetweenOperator extends CriteriaOperator {\n constructor(property, begin, end) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.property = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.begin = criteriaOperator.rightPart[0];\n this.end = criteriaOperator.rightPart.length > 1 ? criteriaOperator.rightPart[1] : criteriaCreator.process('value');\n }\n else {\n this.begin = criteriaCreator.process('value');\n this.end = criteriaCreator.process('value');\n }\n }\n else {\n this.begin = criteriaOperator.rightPart;\n this.end = criteriaCreator.process('value');\n }\n };\n this.operatorType = 'Between';\n this.type = 'between';\n this.property = property;\n this.begin = begin || criteriaCreator.process('value');\n this.end = end || criteriaCreator.process('value');\n }\n get leftPart() {\n return this.property;\n }\n get rightPart() {\n return [this.begin, this.end];\n }\n get displayType() {\n return 'Between';\n }\n get enumType() {\n return BetweenOperator;\n }\n accept(visitor) {\n return visitor.visitBetweenOperator\n ? visitor.visitBetweenOperator(this)\n : new BetweenOperator(this.property && this.property.accept(visitor), this.begin && this.begin.accept(visitor), this.end && this.end.accept(visitor));\n }\n}\ncriteriaCreator.register('between', (options) => {\n return new BetweenOperator(options.property, options.begin, options.end);\n}, (operatorType) => (criteriaCreator.process('between', {\n property: criteriaCreator.process('property'),\n begin: criteriaCreator.process('value'),\n end: criteriaCreator.process('value')\n})));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\binary.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { operatorTokens } from '../utils/operatorTokens';\nimport { BinaryOperatorType } from './options/binary';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class BinaryOperator extends CriteriaOperator {\n constructor(left, right, operatorType) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.leftOperand = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.rightOperand = criteriaOperator.rightPart[0];\n }\n }\n else {\n this.rightOperand = criteriaOperator.rightPart;\n }\n };\n this.type = 'binary';\n this.leftOperand = left || criteriaCreator.process('default');\n this.rightOperand = right || criteriaCreator.process('default');\n this.operatorType = operatorType;\n }\n get leftPart() {\n return this.leftOperand;\n }\n get rightPart() {\n return this.rightOperand;\n }\n get displayType() {\n return operatorTokens[BinaryOperatorType[this.operatorType]] || BinaryOperatorType[this.operatorType];\n }\n get enumType() {\n return BinaryOperatorType;\n }\n accept(visitor) {\n return visitor.visitBinaryOperator\n ? visitor.visitBinaryOperator(this)\n : new BinaryOperator(this.leftOperand && this.leftOperand.accept(visitor), this.rightOperand && this.rightOperand.accept(visitor), this.operatorType);\n }\n}\ncriteriaCreator.register('binary', (options) => {\n return new BinaryOperator(options.left, options.right, options.operatorType);\n}, (operatorType) => criteriaCreator.process('binary', {\n left: criteriaCreator.process('property'),\n right: criteriaCreator.process('value'),\n operatorType: operatorType.value\n}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\constant.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nimport { OperandValue } from './value';\nexport class ConstantValue extends OperandValue {\n constructor(value) {\n super(value);\n this.type = 'value';\n }\n accept(visitor) {\n return visitor.visitConstantValue\n ? visitor.visitConstantValue(this)\n : new ConstantValue(this.value);\n }\n}\ncriteriaCreator.register('const', (options) => new ConstantValue((options === null || options === void 0 ? void 0 : options.value) || null));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\criteriaOperator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nimport { UnaryOperatorType } from './options/unary';\nexport class CriteriaOperator {\n constructor() {\n this.type = 'default';\n this.operands = null;\n this.changeValue = (operand, reverse, location) => {\n var result = reverse ? criteriaCreator.process('unary', { operatorType: UnaryOperatorType.Minus, operator: operand }) : operand;\n if (location.index !== null) {\n this[location.name][location.index] = result;\n }\n else {\n this[location.name] = result;\n }\n return result;\n };\n this.changeValueType = (type, location) => {\n var result = new type();\n if (location.index !== null) {\n this[location.name][location.index] = result;\n }\n else {\n this[location.name] = result;\n }\n return result;\n };\n this.assignLeftPart = (operator) => void 0;\n this.assignRightPart = (operator) => void 0;\n this.assignType = (type) => {\n this.operatorType = type;\n };\n }\n get displayType() {\n return this.operatorType;\n }\n get enumType() {\n return null;\n }\n get leftPart() { return null; }\n get rightPart() { return null; }\n assignFrom(criteriaOperator, incorrectSpecificsForAggregate = false, needAssignRightPart = true) {\n var operator = criteriaOperator;\n if (criteriaOperator.type === 'unary' && !Array.isArray(criteriaOperator.leftPart) && criteriaOperator.leftPart.type != 'property') {\n operator = criteriaOperator.leftPart;\n }\n if (incorrectSpecificsForAggregate) {\n this.assignLeftPart(operator.leftPart);\n }\n else {\n this.assignLeftPart(operator);\n }\n if (operator.rightPart) {\n needAssignRightPart && this.assignRightPart(operator);\n }\n }\n children() {\n var operands = [];\n if (this.leftPart)\n operands.push.apply(operands, Array.isArray(this.leftPart) ? this.leftPart : [this.leftPart]);\n if (this.rightPart)\n operands.push.apply(operands, Array.isArray(this.rightPart) ? this.rightPart : [this.rightPart]);\n return operands;\n }\n accept(visitor) { throw 'Not implemented'; }\n}\ncriteriaCreator.register('default', (options) => new CriteriaOperator());\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\function.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { operatorTokens } from '../utils/operatorTokens';\nimport { FunctionOperatorType } from './options/function';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class FunctionOperator extends CriteriaOperator {\n constructor(operatorType, operands) {\n super();\n this.toString = (reverse) => {\n var result = (operatorTokens[this.displayType] || this.displayType) + '(' + this.operands.map((operand) => {\n return operand.toString();\n }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n };\n this.assignLeftPart = (criteriaOperator) => {\n this.operands = [criteriaOperator.leftPart];\n };\n this.assignRightPart = (criteriaOperator) => {\n if (Array.isArray(criteriaOperator.rightPart)) {\n if (criteriaOperator.rightPart.length) {\n this.operands.push(criteriaOperator.rightPart[0]);\n }\n else {\n this.operands.push(criteriaCreator.process('value'));\n }\n }\n else {\n this.operands.push(criteriaOperator.rightPart);\n }\n };\n this.operands = [];\n this.type = 'function';\n this.operatorType = operatorType;\n operands = operands || [criteriaCreator.process('default')];\n operands.forEach(operand => this.operands.push(operand));\n }\n get leftPart() {\n return this.operands[0];\n }\n get rightPart() {\n return this.operands.filter((_, index) => { return index !== 0; });\n }\n get displayType() {\n return FunctionOperatorType[this.operatorType] || this.operatorType.toString();\n }\n get enumType() {\n return FunctionOperatorType;\n }\n accept(visitor) {\n return visitor.visitFunctionOperator\n ? visitor.visitFunctionOperator(this)\n : new FunctionOperator(this.operatorType, this.operands && this.operands.map(op => op.accept(visitor)));\n }\n}\ncriteriaCreator.register('function', (options) => {\n return new FunctionOperator(options.operatorType, options.operands);\n}, (operatorType) => new FunctionOperator(operatorType.value, [criteriaCreator.process('property')]));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\group.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nimport { GroupOperatorType } from './options/group';\nimport { BinaryOperatorType } from './options/binary';\nexport class GroupOperator extends CriteriaOperator {\n constructor(operation, operands) {\n super();\n this.create = (isGroup, property, specifics) => {\n var operator = criteriaCreator.process('binary', {\n left: property,\n right: criteriaCreator.process('value', { value: '' }),\n operatorType: BinaryOperatorType.Equal\n });\n if (isGroup) {\n operator = criteriaCreator.process('group', { operation: GroupOperatorType.And, operands: [] });\n }\n else if (specifics && specifics === 'list') {\n operator = criteriaCreator.process('aggregate', {\n aggregateType: 'Exisits',\n property: property,\n aggregatedExpression: null,\n condition: criteriaCreator.process('group', {\n operands: [],\n operation: GroupOperatorType.And\n })\n });\n }\n this.operands.push(operator);\n return this.operands[this.operands.indexOf(operator)];\n };\n this.change = (operationType, item, incorrectSpecificsForAggregate = false) => {\n var position = this.operands.indexOf(item);\n if (position !== -1) {\n var operator = criteriaCreator.changeByType(operationType);\n if (operationType.type !== operator.enumType && !Array.isArray(operator.leftPart)) {\n operator.leftPart.assignFrom(item, incorrectSpecificsForAggregate, !operationType.emptyRightPart);\n }\n else {\n operator.assignFrom(item, incorrectSpecificsForAggregate, !operationType.emptyRightPart);\n }\n this.operands[position] = operator;\n }\n else {\n throw Error('dont have this element in operands collection');\n }\n item = null;\n return this.operands[position];\n };\n this.remove = (operator) => {\n this.operands.splice(this.operands.indexOf(operator), 1);\n };\n this.assignLeftPart = (operator) => {\n this.operands = operator.operands;\n };\n this.operands = [];\n this.type = 'group';\n this.operatorType = operation;\n operands = operands || [criteriaCreator.process('default'), criteriaCreator.process('default')];\n operands.forEach(operand => this.operands.push(operand));\n }\n static combine(operation, operands) {\n var combinedOperands = [];\n (operands || []).forEach(operand => {\n if (operand.type === 'group' && operand.operatorType === operation) {\n combinedOperands.push.apply(combinedOperands, operand.operands);\n }\n else {\n combinedOperands.push(operand);\n }\n });\n if (combinedOperands.length === 1) {\n return combinedOperands[0];\n }\n return criteriaCreator.process('group', { operands: combinedOperands, operation: operation });\n }\n children() {\n return this.operands;\n }\n get displayType() {\n return GroupOperatorType[this.operatorType];\n }\n get enumType() {\n return GroupOperatorType;\n }\n accept(visitor) {\n return visitor.visitGroupOperator\n ? visitor.visitGroupOperator(this)\n : new GroupOperator(this.operatorType, this.operands && this.operands.map(op => op.accept(visitor)));\n }\n}\ncriteriaCreator.register('group', (options) => {\n return new GroupOperator(options.operation, options.operands);\n}, (operatorType) => criteriaCreator.process('group', {\n operation: operatorType.value,\n operands: []\n}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\in.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class InOperator extends CriteriaOperator {\n constructor(criteriaOperator, operands) {\n super();\n this.assignLeftPart = (criteriaOperator) => {\n this.criteriaOperator = criteriaOperator.leftPart;\n };\n this.assignRightPart = (criteriaOperator) => {\n this.operands = [].concat(criteriaOperator.rightPart);\n };\n this.operatorType = 'In';\n this.type = 'in';\n this.operands = [];\n this.criteriaOperator = criteriaOperator || criteriaCreator.process('default');\n (operands || []).forEach(operand => this.operands.push(operand));\n }\n get leftPart() {\n return this.criteriaOperator;\n }\n get rightPart() {\n return this.operands;\n }\n get displayType() {\n return 'In';\n }\n get enumType() {\n return InOperator;\n }\n accept(visitor) {\n return visitor.visitInOperator\n ? visitor.visitInOperator(this)\n : new InOperator(this.criteriaOperator && this.criteriaOperator.accept(visitor), this.operands && this.operands.map(op => op.accept(visitor)));\n }\n}\ncriteriaCreator.register('in', (options) => {\n return new InOperator(options.criteriaOperator, options.operands);\n}, (operatorType) => criteriaCreator.process('in', {\n criteriaOperator: criteriaCreator.process('property'),\n operands: [criteriaCreator.process('value')]\n}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\join.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class JoinOperand extends CriteriaOperator {\n constructor(joinTypeName, condition, type, aggregated) {\n super();\n this.type = 'join';\n this.joinTypeName = joinTypeName;\n this.condition = condition;\n this.operatorType = type;\n this.aggregatedExpression = aggregated;\n }\n static joinOrAggregate(collectionProperty, condition, type, aggregated) {\n if (collectionProperty === null || collectionProperty.propertyName.length < 2 || collectionProperty.propertyName[0] != '<' || collectionProperty.propertyName[collectionProperty.propertyName.length - 1] != '>') {\n return criteriaCreator.process('aggregate', {\n property: collectionProperty,\n aggregatedExpression: aggregated,\n aggregateType: type,\n condition: condition\n });\n }\n else {\n return criteriaCreator.process('join', {\n joinTypeName: collectionProperty.propertyName.substring(1, collectionProperty.propertyName.length - 2),\n condition: condition,\n type: type,\n aggregated: aggregated\n });\n }\n }\n accept(visitor) {\n return visitor.visitJoinOperand\n ? visitor.visitJoinOperand(this)\n : new JoinOperand(this.joinTypeName, this.condition && this.condition.accept(visitor), this.operatorType, this.aggregatedExpression && this.aggregatedExpression.accept(visitor));\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\options\\binary.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var BinaryOperatorType;\n(function (BinaryOperatorType) {\n BinaryOperatorType[BinaryOperatorType[\"Equal\"] = 0] = \"Equal\";\n BinaryOperatorType[BinaryOperatorType[\"NotEqual\"] = 1] = \"NotEqual\";\n BinaryOperatorType[BinaryOperatorType[\"Greater\"] = 2] = \"Greater\";\n BinaryOperatorType[BinaryOperatorType[\"Less\"] = 3] = \"Less\";\n BinaryOperatorType[BinaryOperatorType[\"LessOrEqual\"] = 4] = \"LessOrEqual\";\n BinaryOperatorType[BinaryOperatorType[\"GreaterOrEqual\"] = 5] = \"GreaterOrEqual\";\n BinaryOperatorType[BinaryOperatorType[\"Like\"] = 6] = \"Like\";\n BinaryOperatorType[BinaryOperatorType[\"BitwiseAnd\"] = 7] = \"BitwiseAnd\";\n BinaryOperatorType[BinaryOperatorType[\"BitwiseOr\"] = 8] = \"BitwiseOr\";\n BinaryOperatorType[BinaryOperatorType[\"BitwiseXor\"] = 9] = \"BitwiseXor\";\n BinaryOperatorType[BinaryOperatorType[\"Divide\"] = 10] = \"Divide\";\n BinaryOperatorType[BinaryOperatorType[\"Modulo\"] = 11] = \"Modulo\";\n BinaryOperatorType[BinaryOperatorType[\"Multiply\"] = 12] = \"Multiply\";\n BinaryOperatorType[BinaryOperatorType[\"Plus\"] = 13] = \"Plus\";\n BinaryOperatorType[BinaryOperatorType[\"Minus\"] = 14] = \"Minus\";\n})(BinaryOperatorType || (BinaryOperatorType = {}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\options\\function.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var FunctionOperatorType;\n(function (FunctionOperatorType) {\n FunctionOperatorType[FunctionOperatorType[\"None\"] = 0] = \"None\";\n FunctionOperatorType[FunctionOperatorType[\"Custom\"] = 1] = \"Custom\";\n FunctionOperatorType[FunctionOperatorType[\"CustomNonDeterministic\"] = 2] = \"CustomNonDeterministic\";\n FunctionOperatorType[FunctionOperatorType[\"Iif\"] = 3] = \"Iif\";\n FunctionOperatorType[FunctionOperatorType[\"InRange\"] = 4] = \"InRange\";\n FunctionOperatorType[FunctionOperatorType[\"IsNull\"] = 5] = \"IsNull\";\n FunctionOperatorType[FunctionOperatorType[\"IsNullOrEmpty\"] = 6] = \"IsNullOrEmpty\";\n FunctionOperatorType[FunctionOperatorType[\"Trim\"] = 7] = \"Trim\";\n FunctionOperatorType[FunctionOperatorType[\"Len\"] = 8] = \"Len\";\n FunctionOperatorType[FunctionOperatorType[\"Substring\"] = 9] = \"Substring\";\n FunctionOperatorType[FunctionOperatorType[\"Upper\"] = 10] = \"Upper\";\n FunctionOperatorType[FunctionOperatorType[\"Lower\"] = 11] = \"Lower\";\n FunctionOperatorType[FunctionOperatorType[\"Concat\"] = 12] = \"Concat\";\n FunctionOperatorType[FunctionOperatorType[\"Ascii\"] = 13] = \"Ascii\";\n FunctionOperatorType[FunctionOperatorType[\"Char\"] = 14] = \"Char\";\n FunctionOperatorType[FunctionOperatorType[\"ToStr\"] = 15] = \"ToStr\";\n FunctionOperatorType[FunctionOperatorType[\"Replace\"] = 16] = \"Replace\";\n FunctionOperatorType[FunctionOperatorType[\"Reverse\"] = 17] = \"Reverse\";\n FunctionOperatorType[FunctionOperatorType[\"Insert\"] = 18] = \"Insert\";\n FunctionOperatorType[FunctionOperatorType[\"CharIndex\"] = 19] = \"CharIndex\";\n FunctionOperatorType[FunctionOperatorType[\"Remove\"] = 20] = \"Remove\";\n FunctionOperatorType[FunctionOperatorType[\"Abs\"] = 21] = \"Abs\";\n FunctionOperatorType[FunctionOperatorType[\"Sqr\"] = 22] = \"Sqr\";\n FunctionOperatorType[FunctionOperatorType[\"Cos\"] = 23] = \"Cos\";\n FunctionOperatorType[FunctionOperatorType[\"Sin\"] = 24] = \"Sin\";\n FunctionOperatorType[FunctionOperatorType[\"Atn\"] = 25] = \"Atn\";\n FunctionOperatorType[FunctionOperatorType[\"Exp\"] = 26] = \"Exp\";\n FunctionOperatorType[FunctionOperatorType[\"Log\"] = 27] = \"Log\";\n FunctionOperatorType[FunctionOperatorType[\"Rnd\"] = 28] = \"Rnd\";\n FunctionOperatorType[FunctionOperatorType[\"Tan\"] = 29] = \"Tan\";\n FunctionOperatorType[FunctionOperatorType[\"Power\"] = 30] = \"Power\";\n FunctionOperatorType[FunctionOperatorType[\"Sign\"] = 31] = \"Sign\";\n FunctionOperatorType[FunctionOperatorType[\"Round\"] = 32] = \"Round\";\n FunctionOperatorType[FunctionOperatorType[\"Ceiling\"] = 33] = \"Ceiling\";\n FunctionOperatorType[FunctionOperatorType[\"Floor\"] = 34] = \"Floor\";\n FunctionOperatorType[FunctionOperatorType[\"Max\"] = 35] = \"Max\";\n FunctionOperatorType[FunctionOperatorType[\"Min\"] = 36] = \"Min\";\n FunctionOperatorType[FunctionOperatorType[\"Acos\"] = 37] = \"Acos\";\n FunctionOperatorType[FunctionOperatorType[\"Asin\"] = 38] = \"Asin\";\n FunctionOperatorType[FunctionOperatorType[\"Atn2\"] = 39] = \"Atn2\";\n FunctionOperatorType[FunctionOperatorType[\"BigMul\"] = 40] = \"BigMul\";\n FunctionOperatorType[FunctionOperatorType[\"Cosh\"] = 41] = \"Cosh\";\n FunctionOperatorType[FunctionOperatorType[\"Log10\"] = 42] = \"Log10\";\n FunctionOperatorType[FunctionOperatorType[\"Sinh\"] = 43] = \"Sinh\";\n FunctionOperatorType[FunctionOperatorType[\"Tanh\"] = 44] = \"Tanh\";\n FunctionOperatorType[FunctionOperatorType[\"PadLeft\"] = 45] = \"PadLeft\";\n FunctionOperatorType[FunctionOperatorType[\"PadRight\"] = 46] = \"PadRight\";\n FunctionOperatorType[FunctionOperatorType[\"StartsWith\"] = 47] = \"StartsWith\";\n FunctionOperatorType[FunctionOperatorType[\"EndsWith\"] = 48] = \"EndsWith\";\n FunctionOperatorType[FunctionOperatorType[\"Contains\"] = 49] = \"Contains\";\n FunctionOperatorType[FunctionOperatorType[\"ToInt\"] = 50] = \"ToInt\";\n FunctionOperatorType[FunctionOperatorType[\"ToLong\"] = 51] = \"ToLong\";\n FunctionOperatorType[FunctionOperatorType[\"ToFloat\"] = 52] = \"ToFloat\";\n FunctionOperatorType[FunctionOperatorType[\"ToDouble\"] = 53] = \"ToDouble\";\n FunctionOperatorType[FunctionOperatorType[\"ToDecimal\"] = 54] = \"ToDecimal\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeThisYear\"] = 55] = \"LocalDateTimeThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeThisMonth\"] = 56] = \"LocalDateTimeThisMonth\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeLastWeek\"] = 57] = \"LocalDateTimeLastWeek\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeThisWeek\"] = 58] = \"LocalDateTimeThisWeek\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeYesterday\"] = 59] = \"LocalDateTimeYesterday\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeToday\"] = 60] = \"LocalDateTimeToday\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeNow\"] = 61] = \"LocalDateTimeNow\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeTomorrow\"] = 62] = \"LocalDateTimeTomorrow\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeDayAfterTomorrow\"] = 63] = \"LocalDateTimeDayAfterTomorrow\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeNextWeek\"] = 64] = \"LocalDateTimeNextWeek\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeTwoWeeksAway\"] = 65] = \"LocalDateTimeTwoWeeksAway\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeNextMonth\"] = 66] = \"LocalDateTimeNextMonth\";\n FunctionOperatorType[FunctionOperatorType[\"LocalDateTimeNextYear\"] = 67] = \"LocalDateTimeNextYear\";\n FunctionOperatorType[FunctionOperatorType[\"InDateRange\"] = 68] = \"InDateRange\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalBeyondThisYear\"] = 69] = \"IsOutlookIntervalBeyondThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalLaterThisYear\"] = 70] = \"IsOutlookIntervalLaterThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalLaterThisMonth\"] = 71] = \"IsOutlookIntervalLaterThisMonth\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalNextWeek\"] = 72] = \"IsOutlookIntervalNextWeek\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalLaterThisWeek\"] = 73] = \"IsOutlookIntervalLaterThisWeek\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalTomorrow\"] = 74] = \"IsOutlookIntervalTomorrow\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalToday\"] = 75] = \"IsOutlookIntervalToday\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalYesterday\"] = 76] = \"IsOutlookIntervalYesterday\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalEarlierThisWeek\"] = 77] = \"IsOutlookIntervalEarlierThisWeek\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalLastWeek\"] = 78] = \"IsOutlookIntervalLastWeek\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalEarlierThisMonth\"] = 79] = \"IsOutlookIntervalEarlierThisMonth\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalEarlierThisYear\"] = 80] = \"IsOutlookIntervalEarlierThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsOutlookIntervalPriorThisYear\"] = 81] = \"IsOutlookIntervalPriorThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsLastMonth\"] = 82] = \"IsLastMonth\";\n FunctionOperatorType[FunctionOperatorType[\"IsLastYear\"] = 83] = \"IsLastYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsNextMonth\"] = 84] = \"IsNextMonth\";\n FunctionOperatorType[FunctionOperatorType[\"IsNextYear\"] = 85] = \"IsNextYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsThisWeek\"] = 86] = \"IsThisWeek\";\n FunctionOperatorType[FunctionOperatorType[\"IsThisMonth\"] = 87] = \"IsThisMonth\";\n FunctionOperatorType[FunctionOperatorType[\"IsThisYear\"] = 88] = \"IsThisYear\";\n FunctionOperatorType[FunctionOperatorType[\"IsJanuary\"] = 89] = \"IsJanuary\";\n FunctionOperatorType[FunctionOperatorType[\"IsFebruary\"] = 90] = \"IsFebruary\";\n FunctionOperatorType[FunctionOperatorType[\"IsMarch\"] = 91] = \"IsMarch\";\n FunctionOperatorType[FunctionOperatorType[\"IsApril\"] = 92] = \"IsApril\";\n FunctionOperatorType[FunctionOperatorType[\"IsMay\"] = 93] = \"IsMay\";\n FunctionOperatorType[FunctionOperatorType[\"IsJune\"] = 94] = \"IsJune\";\n FunctionOperatorType[FunctionOperatorType[\"IsJuly\"] = 95] = \"IsJuly\";\n FunctionOperatorType[FunctionOperatorType[\"IsAugust\"] = 96] = \"IsAugust\";\n FunctionOperatorType[FunctionOperatorType[\"IsSeptember\"] = 97] = \"IsSeptember\";\n FunctionOperatorType[FunctionOperatorType[\"IsOctober\"] = 98] = \"IsOctober\";\n FunctionOperatorType[FunctionOperatorType[\"IsNovember\"] = 99] = \"IsNovember\";\n FunctionOperatorType[FunctionOperatorType[\"IsDecember\"] = 100] = \"IsDecember\";\n FunctionOperatorType[FunctionOperatorType[\"IsSameDay\"] = 101] = \"IsSameDay\";\n FunctionOperatorType[FunctionOperatorType[\"IsYearToDate\"] = 102] = \"IsYearToDate\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffTick\"] = 103] = \"DateDiffTick\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffSecond\"] = 104] = \"DateDiffSecond\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffMilliSecond\"] = 105] = \"DateDiffMilliSecond\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffMinute\"] = 106] = \"DateDiffMinute\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffHour\"] = 107] = \"DateDiffHour\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffDay\"] = 108] = \"DateDiffDay\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffMonth\"] = 109] = \"DateDiffMonth\";\n FunctionOperatorType[FunctionOperatorType[\"DateDiffYear\"] = 110] = \"DateDiffYear\";\n FunctionOperatorType[FunctionOperatorType[\"DateTimeFromParts\"] = 111] = \"DateTimeFromParts\";\n FunctionOperatorType[FunctionOperatorType[\"GetDate\"] = 112] = \"GetDate\";\n FunctionOperatorType[FunctionOperatorType[\"GetMilliSecond\"] = 113] = \"GetMilliSecond\";\n FunctionOperatorType[FunctionOperatorType[\"GetSecond\"] = 114] = \"GetSecond\";\n FunctionOperatorType[FunctionOperatorType[\"GetMinute\"] = 115] = \"GetMinute\";\n FunctionOperatorType[FunctionOperatorType[\"GetHour\"] = 116] = \"GetHour\";\n FunctionOperatorType[FunctionOperatorType[\"GetDay\"] = 117] = \"GetDay\";\n FunctionOperatorType[FunctionOperatorType[\"GetMonth\"] = 118] = \"GetMonth\";\n FunctionOperatorType[FunctionOperatorType[\"GetYear\"] = 119] = \"GetYear\";\n FunctionOperatorType[FunctionOperatorType[\"GetDayOfWeek\"] = 120] = \"GetDayOfWeek\";\n FunctionOperatorType[FunctionOperatorType[\"GetDayOfYear\"] = 121] = \"GetDayOfYear\";\n FunctionOperatorType[FunctionOperatorType[\"GetTimeOfDay\"] = 122] = \"GetTimeOfDay\";\n FunctionOperatorType[FunctionOperatorType[\"Now\"] = 123] = \"Now\";\n FunctionOperatorType[FunctionOperatorType[\"UtcNow\"] = 124] = \"UtcNow\";\n FunctionOperatorType[FunctionOperatorType[\"Today\"] = 125] = \"Today\";\n FunctionOperatorType[FunctionOperatorType[\"AddTimeSpan\"] = 126] = \"AddTimeSpan\";\n FunctionOperatorType[FunctionOperatorType[\"AddTicks\"] = 127] = \"AddTicks\";\n FunctionOperatorType[FunctionOperatorType[\"AddMilliSeconds\"] = 128] = \"AddMilliSeconds\";\n FunctionOperatorType[FunctionOperatorType[\"AddSeconds\"] = 129] = \"AddSeconds\";\n FunctionOperatorType[FunctionOperatorType[\"AddMinutes\"] = 130] = \"AddMinutes\";\n FunctionOperatorType[FunctionOperatorType[\"AddHours\"] = 131] = \"AddHours\";\n FunctionOperatorType[FunctionOperatorType[\"AddDays\"] = 132] = \"AddDays\";\n FunctionOperatorType[FunctionOperatorType[\"AddMonths\"] = 133] = \"AddMonths\";\n FunctionOperatorType[FunctionOperatorType[\"AddYears\"] = 134] = \"AddYears\";\n FunctionOperatorType[FunctionOperatorType[\"OrderDescToken\"] = 135] = \"OrderDescToken\";\n})(FunctionOperatorType || (FunctionOperatorType = {}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\options\\group.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var GroupOperatorType;\n(function (GroupOperatorType) {\n GroupOperatorType[GroupOperatorType[\"And\"] = 0] = \"And\";\n GroupOperatorType[GroupOperatorType[\"Or\"] = 1] = \"Or\";\n})(GroupOperatorType || (GroupOperatorType = {}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\options\\unary.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var UnaryOperatorType;\n(function (UnaryOperatorType) {\n UnaryOperatorType[UnaryOperatorType[\"Minus\"] = 0] = \"Minus\";\n UnaryOperatorType[UnaryOperatorType[\"Plus\"] = 1] = \"Plus\";\n UnaryOperatorType[UnaryOperatorType[\"BitwiseNot\"] = 2] = \"BitwiseNot\";\n UnaryOperatorType[UnaryOperatorType[\"Not\"] = 3] = \"Not\";\n UnaryOperatorType[UnaryOperatorType[\"IsNull\"] = 4] = \"IsNull\";\n})(UnaryOperatorType || (UnaryOperatorType = {}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\parameter.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { OperandValue } from './value';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandParameter extends OperandValue {\n constructor(parameterName, value) {\n super(value);\n this.type = 'parameter';\n this.parameterName = parameterName || '';\n }\n get displayType() {\n return '?' + this.parameterName;\n }\n accept(visitor) {\n return visitor.visitOperandParameter\n ? visitor.visitOperandParameter(this)\n : new OperandParameter(this.parameterName, this.value);\n }\n}\ncriteriaCreator.register('parameter', (options) => {\n return new OperandParameter(options.parameterName, options.value);\n});\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\property.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandProperty extends CriteriaOperator {\n constructor(propertyName = '', startColumn = -1, startLine = -1, originalPropertyLength = 0, circumflex = false) {\n super();\n this.type = 'property';\n this.propertyName = propertyName;\n this.originalPropertyLength = originalPropertyLength;\n this.startPosition = { column: startColumn, line: startLine };\n this.circumflex = circumflex;\n }\n get displayType() {\n return '[' + this.propertyName + ']';\n }\n accept(visitor) {\n return visitor.visitOperandProperty\n ? visitor.visitOperandProperty(this)\n : criteriaCreator.process('property', { propertyName: this.propertyName });\n }\n}\ncriteriaCreator.register('property', (options) => {\n return new OperandProperty(options.propertyName, options.startColumn, options.startLine, options.originalPropertyLength, options.circumflex);\n});\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\unary.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { UnaryOperatorType } from './options/unary';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class UnaryOperator extends CriteriaOperator {\n constructor(operatorType, operand) {\n super();\n this.type = 'unary';\n this.operand = operand || criteriaCreator.process('default');\n this.operatorType = operatorType;\n }\n get leftPart() {\n return this.operand;\n }\n assignFrom(criteriaOperator) {\n if (this.operatorType === UnaryOperatorType.Not) {\n if (criteriaOperator instanceof UnaryOperator) {\n this.operand.assignFrom(criteriaOperator.operand);\n }\n else {\n this.operand.assignFrom(criteriaOperator);\n }\n }\n else {\n if (criteriaOperator instanceof UnaryOperator) {\n this.operand = criteriaOperator.operand.leftPart;\n }\n else {\n this.operand = (criteriaOperator.leftPart || criteriaOperator);\n }\n }\n }\n get displayType() {\n return UnaryOperatorType[this.operatorType];\n }\n get enumType() {\n return UnaryOperatorType;\n }\n accept(visitor) {\n return visitor.visitUnaryOperator\n ? visitor.visitUnaryOperator(this)\n : new UnaryOperator(this.operatorType, this.operand && this.operand.accept(visitor));\n }\n}\ncriteriaCreator.register('unary', (options) => {\n return new UnaryOperator(options.operatorType, options.operator);\n}, (operatorType) => criteriaCreator.process('unary', {\n operatorType: operatorType.value,\n operator: criteriaCreator.process('property')\n}));\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\operators\\value.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CriteriaOperator } from './criteriaOperator';\nimport { validateGuid } from '../../../property-grid/widgets/internal/_internal';\nimport { parseDate } from '../../../property-grid/localization/_localization';\nimport { criteriaCreator } from '../utils/criteriaOperatorPreprocessor';\nexport class OperandValue extends CriteriaOperator {\n constructor(value, isSomeType) {\n super();\n this.type = 'value';\n var result = value !== null && value !== undefined ? value : '';\n var isGuid = validateGuid(value);\n if (value && value['length'] && ((value[0] === \"'\" && value[value.length - 1] === \"'\") || isGuid)) {\n this.specifics = 'string';\n if (isGuid && value[0] === '{' && value[value.length - 1] === '}')\n this.specifics = 'guid';\n result = this._processStringValue(value);\n }\n else if (value && value['length'] && value[0] === '#' && value[value.length - 1] === '#' && !isSomeType) {\n result = value.slice(1, value.length - 1);\n result = parseDate(result);\n if (!result) {\n result = parseDate(value.slice(1, value.length - 1));\n }\n }\n else if (String(value).toLowerCase() === 'true' || String(value).toLowerCase() === 'false') {\n result = String(value).toLowerCase() === 'true' ? 'True' : 'False';\n }\n else if (isSomeType) {\n this.specifics = value.match(/\\#\\w+\\#/g)[0].replace(/\\#/g, '').toLowerCase();\n }\n this.value = result;\n }\n _processStringValue(value) {\n var result = value.slice(1, value.length - 1);\n result = result.replace(/''/g, \"'\");\n return result;\n }\n get displayType() {\n return this.value || '?';\n }\n}\ncriteriaCreator.register('value', (options) => {\n return new OperandValue(options === null || options === void 0 ? void 0 : options.value, options === null || options === void 0 ? void 0 : options.isSomeType);\n});\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\parser\\criteriaparser.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\n\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar criteriaCreator = require('../utils/criteriaOperatorPreprocessor').criteriaCreator;\r\nvar BinaryOperatorType = require('../operators/options/binary').BinaryOperatorType;\r\nvar UnaryOperatorType = require('../operators/options/unary').UnaryOperatorType;\r\nvar GroupOperator = require('../operators/group').GroupOperator;\r\nvar GroupOperatorType = require('../operators/options/group').GroupOperatorType;\r\nvar FunctionOperatorType = require('../operators/options/function').FunctionOperatorType;\r\nvar JoinOperand = require('../operators/join').JoinOperand;\r\n/* parser generated by jison 0.4.18 */\r\n/*\r\n Returns a Parser object of the following structure:\r\n\r\n Parser: {\r\n yy: {}\r\n }\r\n\r\n Parser.prototype: {\r\n yy: {},\r\n trace: function(),\r\n symbols_: {associative list: name ==> number},\r\n terminals_: {associative list: number ==> name},\r\n productions_: [...],\r\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\r\n table: [...],\r\n defaultActions: {...},\r\n parseError: function(str, hash),\r\n parse: function(input),\r\n\r\n lexer: {\r\n EOF: 1,\r\n parseError: function(str, hash),\r\n setInput: function(input),\r\n input: function(),\r\n unput: function(str),\r\n more: function(),\r\n less: function(n),\r\n pastInput: function(),\r\n upcomingInput: function(),\r\n showPosition: function(),\r\n test_match: function(regex_match_array, rule_index),\r\n next: function(),\r\n lex: function(),\r\n begin: function(condition),\r\n popState: function(),\r\n _currentRules: function(),\r\n topState: function(),\r\n pushState: function(condition),\r\n\r\n options: {\r\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\r\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\r\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\r\n },\r\n\r\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\r\n rules: [...],\r\n conditions: {associative list: name ==> set},\r\n }\r\n }\r\n\r\n\r\n token location info (@$, _$, etc.): {\r\n first_line: n,\r\n last_line: n,\r\n first_column: n,\r\n last_column: n,\r\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\r\n }\r\n\r\n\r\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\r\n text: (matched text)\r\n token: (the produced terminal token, if any)\r\n line: (yylineno)\r\n }\r\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\r\n loc: (yylloc)\r\n expected: (string describing the set of expected tokens)\r\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\r\n }\r\n*/\r\nvar criteriaparser = (function(){\r\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,8],$V2=[1,7],$V3=[1,24],$V4=[1,9],$V5=[1,10],$V6=[1,11],$V7=[1,12],$V8=[1,19],$V9=[1,13],$Va=[1,14],$Vb=[1,15],$Vc=[1,16],$Vd=[1,17],$Ve=[1,18],$Vf=[1,21],$Vg=[1,23],$Vh=[1,22],$Vi=[1,26],$Vj=[1,27],$Vk=[1,28],$Vl=[1,29],$Vm=[1,30],$Vn=[1,31],$Vo=[1,32],$Vp=[1,33],$Vq=[1,34],$Vr=[1,35],$Vs=[1,36],$Vt=[1,37],$Vu=[1,38],$Vv=[1,39],$Vw=[1,40],$Vx=[1,41],$Vy=[1,42],$Vz=[1,43],$VA=[1,44],$VB=[1,45],$VC=[1,46],$VD=[5,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,46],$VE=[5,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,45,46,47,51,52,53],$VF=[1,54],$VG=[5,15,16,17,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,46],$VH=[5,28,29,31,37,46],$VI=[1,93],$VJ=[1,94],$VK=[5,12,13,15,16,17,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,46],$VL=[5,20,21,26,27,28,29,31,32,37,46],$VM=[5,20,21,22,23,24,25,26,27,28,29,31,32,37,46],$VN=[31,37],$VO=[1,103],$VP=[1,105];\r\nvar parser = {trace: function trace () { },\r\nyy: {},\r\nsymbols_: {\"error\":2,\"expressions\":3,\"exp\":4,\"EOF\":5,\"const\":6,\"propertyWithAgg\":7,\"ENUM\":8,\"parameter\":9,\"*\":10,\"/\":11,\"+\":12,\"-\":13,\"%\":14,\"|\":15,\"&\":16,\"^\":17,\"!\":18,\"~\":19,\"OP_EQ\":20,\"OP_NE\":21,\"OP_GT\":22,\"OP_LT\":23,\"OP_GE\":24,\"OP_LE\":25,\"OP_LIKE\":26,\"NOT\":27,\"AND\":28,\"OR\":29,\"(\":30,\")\":31,\"IS\":32,\"NULL\":33,\"OP_IN\":34,\"arguments\":35,\"OP_BETWEEN\":36,\",\":37,\"NAME_SOFT\":38,\"STRING\":39,\"NUMBER\":40,\"OBJECT\":41,\"BOOLEAN\":42,\"GUID\":43,\"property\":44,\"[\":45,\"]\":46,\".\":47,\"agg\":48,\"Count\":49,\"Exists\":50,\"FIELD_END\":51,\"CH\":52,\"ESC_CH\":53,\"FIELD_START\":54,\"?\":55,\"commaseparated\":56,\"$accept\":0,\"$end\":1},\r\nterminals_: {2:\"error\",5:\"EOF\",8:\"ENUM\",10:\"*\",11:\"/\",12:\"+\",13:\"-\",14:\"%\",15:\"|\",16:\"&\",17:\"^\",18:\"!\",19:\"~\",20:\"OP_EQ\",21:\"OP_NE\",22:\"OP_GT\",23:\"OP_LT\",24:\"OP_GE\",25:\"OP_LE\",26:\"OP_LIKE\",27:\"NOT\",28:\"AND\",29:\"OR\",30:\"(\",31:\")\",32:\"IS\",33:\"NULL\",34:\"OP_IN\",36:\"OP_BETWEEN\",37:\",\",38:\"NAME_SOFT\",39:\"STRING\",40:\"NUMBER\",41:\"OBJECT\",42:\"BOOLEAN\",43:\"GUID\",45:\"[\",46:\"]\",47:\".\",49:\"Count\",50:\"Exists\",51:\"FIELD_END\",52:\"CH\",53:\"ESC_CH\",54:\"FIELD_START\",55:\"?\"},\r\nproductions_: [0,[3,2],[4,1],[4,1],[4,1],[4,1],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,4],[4,2],[4,3],[4,3],[4,3],[4,3],[4,4],[4,3],[4,7],[4,2],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[7,6],[7,5],[7,3],[7,4],[7,3],[7,1],[7,4],[48,3],[48,1],[48,1],[48,4],[44,2],[44,2],[44,2],[44,3],[44,3],[44,1],[44,1],[44,1],[9,2],[9,1],[35,2],[35,3],[56,1],[56,3]],\r\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\r\n/* this == yyval */\r\n\r\nvar $0 = $$.length - 1;\r\nswitch (yystate) {\r\ncase 1:\r\n return $$[$0-1]; \r\nbreak;\r\ncase 2:\r\n this.$ = criteriaCreator.process(\"const\", { value: $$[$0] }); \r\nbreak;\r\ncase 3: case 5: case 35: case 36: case 37: case 38: case 39:\r\n this.$ = $$[$0]; \r\nbreak;\r\ncase 4:\r\n this.$ = criteriaCreator.process(\"value\", { value: $$[$0], isSomeType: true }) \r\nbreak;\r\ncase 6:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Multiply }); \r\nbreak;\r\ncase 7:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Divide }); \r\nbreak;\r\ncase 8:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Plus }); \r\nbreak;\r\ncase 9:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Minus }); \r\nbreak;\r\ncase 10:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Modulo }); \r\nbreak;\r\ncase 11:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.BitwiseOr }); \r\nbreak;\r\ncase 12:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.BitwiseAnd }); \r\nbreak;\r\ncase 13:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.BitwiseXor }); \r\nbreak;\r\ncase 14:\r\n this.$ = criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.Minus, operator: $$[$0] }); \r\nbreak;\r\ncase 15:\r\n this.$ = criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.Plus, operator: $$[$0] }); \r\nbreak;\r\ncase 16: case 26:\r\n this.$ = criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.Not, operator: $$[$0] }); \r\nbreak;\r\ncase 17:\r\n this.$ = criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.BitwiseNot, operator: $$[$0] }); \r\nbreak;\r\ncase 18:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Equal }); \r\nbreak;\r\ncase 19:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.NotEqual }); \r\nbreak;\r\ncase 20:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Greater }); \r\nbreak;\r\ncase 21:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Less }); \r\nbreak;\r\ncase 22:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.GreaterOrEqual }); \r\nbreak;\r\ncase 23:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.LessOrEqual }); \r\nbreak;\r\ncase 24:\r\n this.$ = criteriaCreator.process(\"binary\", { left: $$[$0-2], right: $$[$0], operatorType: BinaryOperatorType.Like }); \r\nbreak;\r\ncase 25:\r\n\r\n this.$ = criteriaCreator.process(\"unary\", { \r\n operatorType: UnaryOperatorType.Not, \r\n operator: criteriaCreator.process(\"binary\", { left: $$[$0-3], right: $$[$0], operatorType: BinaryOperatorType.Like }) \r\n });\r\n \r\nbreak;\r\ncase 27:\r\n this.$ = GroupOperator.combine(GroupOperatorType.And, [$$[$0-2], $$[$0]]); \r\nbreak;\r\ncase 28:\r\n this.$ = GroupOperator.combine(GroupOperatorType.Or, [$$[$0-2], $$[$0]]); \r\nbreak;\r\ncase 29: case 52: case 63:\r\n this.$ = $$[$0-1]; \r\nbreak;\r\ncase 30:\r\n this.$ = criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.IsNull, operator: $$[$0-2] }); \r\nbreak;\r\ncase 31:\r\n \r\n this.$ = criteriaCreator.process(\"unary\", { \r\n operatorType: UnaryOperatorType.Not,\r\n operator: criteriaCreator.process(\"unary\", { operatorType: UnaryOperatorType.IsNull, operator: $$[$0-3] })\r\n }); \r\n \r\nbreak;\r\ncase 32:\r\n this.$ = criteriaCreator.process(\"in\", { criteriaOperator: $$[$0-2], operands: $$[$0] }); \r\nbreak;\r\ncase 33:\r\n this.$ = criteriaCreator.process(\"between\", { property: $$[$0-6], begin: $$[$0-3], end: $$[$0-1] }); \r\nbreak;\r\ncase 34:\r\n this.$ = criteriaCreator.process(\"function\", { operatorType: FunctionOperatorType[$$[$0-1]] || $$[$0-1], operands: $$[$0] }); \r\nbreak;\r\ncase 40:\r\n this.$ = null; \r\nbreak;\r\ncase 41:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { propertyName: $$[$0-5].name, startColumn: $$[$0-5].col, circumflex: $$[$0-5].circumflex, startLine: $$[$0-5].line, originalPropertyLength: _$[$0-5].last_column - _$[$0-5].first_column + 1 }), \r\n $$[$0-3], $$[$0].type, $$[$0].expr\r\n );\r\n \r\nbreak;\r\ncase 42:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { propertyName: $$[$0-4].name, startColumn: $$[$0-4].col, circumflex: $$[$0-4].circumflex, startLine: $$[$0-4].line, originalPropertyLength: _$[$0-4].last_column - _$[$0-4].first_column + 1 }), \r\n null, $$[$0].type, $$[$0].expr\r\n );\r\n \r\nbreak;\r\ncase 43:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { propertyName: $$[$0-2].name, startColumn: $$[$0-2].col, circumflex: $$[$0-2].circumflex, startLine: $$[$0-2].line, originalPropertyLength: _$[$0-2].last_column - _$[$0-2].first_column }), \r\n null, $$[$0].type, $$[$0].expr\r\n );\r\n \r\nbreak;\r\ncase 44:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { propertyName: $$[$0-3].name, startColumn: $$[$0-3].col, circumflex: $$[$0-3].circumflex, startLine: $$[$0-3].line, originalPropertyLength: _$[$0-3].last_column - _$[$0-3].first_column + 1 }), \r\n $$[$0-1], 'Exists', null\r\n );\r\n \r\nbreak;\r\ncase 45:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { propertyName: $$[$0-2].name, startColumn: $$[$0-2].col, circumflex: $$[$0-2].circumflex, startLine: $$[$0-2].line, originalPropertyLength: _$[$0-2].last_column - _$[$0-2].first_column + 1 }), \r\n null, 'Exists', null);\r\n \r\nbreak;\r\ncase 46:\r\n \r\n this.$ = criteriaCreator.process(\"property\", { propertyName: $$[$0].name, startColumn: $$[$0].col, circumflex: $$[$0].circumflex, startLine: $$[$0].line, originalPropertyLength: _$[$0].last_column - _$[$0].first_column });\r\n \r\nbreak;\r\ncase 47:\r\n \r\n this.$ = JoinOperand.joinOrAggregate(\r\n criteriaCreator.process(\"property\", { }), \r\n null, $$[$0].type, $$[$0].expr\r\n ); \r\n \r\nbreak;\r\ncase 48:\r\n this.$ = { type: $$[$0-2] }; \r\nbreak;\r\ncase 49:\r\n this.$ = { type: 'Count' }; \r\nbreak;\r\ncase 50:\r\n this.$ = { type: 'Exists' }; \r\nbreak;\r\ncase 51:\r\n this.$ = { type: $$[$0-3], expr: $$[$0-1] }; \r\nbreak;\r\ncase 53:\r\n this.$ = { name: $$[$0-1].name + $$[$0], line: $$[$0-1].line, circumflex: $$[$0-1].circumflex, col: $$[$0-1].col }; \r\nbreak;\r\ncase 54:\r\n this.$ = { name: $$[$0-1].name + $$[$0].substr(1), line: $$[$0-1].line, circumflex: $$[$0-1].circumflex, col: $$[$0-1].col }; \r\nbreak;\r\ncase 55:\r\n \r\n if($$[$0-2].circumflex && $$[$0-2].started) {\r\n this.$ = { name: '', line: $$[$0-2].line, circumflex: $$[$0-2].circumflex, col: $$[$0-2].col + 2 }; \r\n } else \r\n this.$ = { name: $$[$0-2].name + '.', line: $$[$0-2].line, circumflex: $$[$0-2].circumflex, col: $$[$0-2].col }; \r\n \r\nbreak;\r\ncase 56:\r\n \r\n if($$[$0-2].circumflex && $$[$0-2].started){ \r\n this.$ = { name: $$[$0], line: $$[$0-2].line, circumflex: $$[$0-2].circumflex, col: $$[$0-2].col + 1 }; \r\n } else \r\n this.$ = { name: $$[$0-2].name + '.' + $$[$0], line: $$[$0-2].line, circumflex: $$[$0-2].circumflex, col: $$[$0-2].col }; \r\n \r\nbreak;\r\ncase 57:\r\n this.$ = { name: \"\", line: _$[$0].first_line - 1, col: _$[$0].first_column + 1 }; \r\nbreak;\r\ncase 58:\r\n this.$ = { name: $$[$0], line: _$[$0].first_line - 1, col: _$[$0].first_column }; \r\nbreak;\r\ncase 59:\r\n this.$ = { circumflex: true, started: true, name: \"\", line: _$[$0].first_line - 1, col: _$[$0].first_column + 1 }; \r\nbreak;\r\ncase 60:\r\n this.$ = criteriaCreator.process(\"parameter\", { parameterName: $$[$0] }); \r\nbreak;\r\ncase 61:\r\n this.$ = criteriaCreator.process(\"value\", { }); \r\nbreak;\r\ncase 62:\r\n this.$ = []; \r\nbreak;\r\ncase 64:\r\n this.$ = [$$[$0]]; \r\nbreak;\r\ncase 65:\r\n this.$ = $$[$0-2].concat($$[$0]); \r\nbreak;\r\n}\r\n},\r\ntable: [{3:1,4:2,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{1:[3]},{5:[1,25],10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,32:$VA,34:$VB,36:$VC},o($VD,[2,2]),o($VD,[2,3]),o($VD,[2,4]),o($VD,[2,5]),{4:47,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:48,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:49,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:50,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:51,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:52,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VE,[2,58],{35:53,30:$VF}),o($VD,[2,35]),o($VD,[2,36]),o($VD,[2,37]),o($VD,[2,38]),o($VD,[2,39]),o($VD,[2,40]),o($VD,[2,46],{45:[1,55],47:[1,56],51:[1,57],52:[1,58],53:[1,59]}),{46:[1,60]},o($VD,[2,61],{38:[1,61]}),o($VE,[2,57]),o($VE,[2,59]),{1:[2,1]},{4:62,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:63,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:64,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:65,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:66,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:67,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:68,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:69,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:70,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:71,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:72,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:73,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:74,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:75,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:76,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{26:[1,77]},{4:78,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{4:79,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},{27:[1,81],33:[1,80]},{30:$VF,35:82},{30:[1,83]},o($VD,[2,14]),o($VD,[2,15]),o($VD,[2,16]),o($VG,[2,17],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm}),o($VH,[2,26],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,32:$VA,34:$VB,36:$VC}),{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,31:[1,84],32:$VA,34:$VB,36:$VC},o($VD,[2,34]),{4:87,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,31:[1,85],33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh,56:86},{4:88,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,46:[1,89],54:$Vg,55:$Vh},{38:[1,92],48:90,49:$VI,50:$VJ,54:[1,91]},o($VE,[2,52]),o($VE,[2,53]),o($VE,[2,54]),{47:[1,95]},o($VD,[2,60]),o($VD,[2,6]),o($VD,[2,7]),o($VK,[2,8],{10:$Vi,11:$Vj,14:$Vm}),o($VK,[2,9],{10:$Vi,11:$Vj,14:$Vm}),o($VD,[2,10]),o([5,15,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,46],[2,11],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,16:$Vo,17:$Vp}),o($VG,[2,12],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm}),o([5,15,17,20,21,22,23,24,25,26,27,28,29,31,32,34,36,37,46],[2,13],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,16:$Vo}),o($VL,[2,18],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,22:$Vs,23:$Vt,24:$Vu,25:$Vv,34:$VB,36:$VC}),o($VL,[2,19],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,22:$Vs,23:$Vt,24:$Vu,25:$Vv,34:$VB,36:$VC}),o($VM,[2,20],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,34:$VB,36:$VC}),o($VM,[2,21],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,34:$VB,36:$VC}),o($VM,[2,22],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,34:$VB,36:$VC}),o($VM,[2,23],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,34:$VB,36:$VC}),o($VL,[2,24],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,22:$Vs,23:$Vt,24:$Vu,25:$Vv,34:$VB,36:$VC}),{4:96,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VH,[2,27],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,32:$VA,34:$VB,36:$VC}),o([5,29,31,37,46],[2,28],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,32:$VA,34:$VB,36:$VC}),o($VD,[2,30]),{33:[1,97]},o($VD,[2,32]),{4:98,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VD,[2,29]),o($VD,[2,62]),{31:[1,99],37:[1,100]},o($VN,[2,64],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,32:$VA,34:$VB,36:$VC}),{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,32:$VA,34:$VB,36:$VC,46:[1,101]},o($VD,[2,45],{47:[1,102]}),o($VD,[2,43]),o($VE,[2,55]),o($VE,[2,56],{30:$VO}),o($VD,[2,49]),o($VD,[2,50]),{38:$VP,48:104,49:$VI,50:$VJ},o($VL,[2,25],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,22:$Vs,23:$Vt,24:$Vu,25:$Vv,34:$VB,36:$VC}),o($VD,[2,31]),{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,32:$VA,34:$VB,36:$VC,37:[1,106]},o($VD,[2,63]),{4:107,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VD,[2,44],{47:[1,108]}),{38:$VP,48:109,49:$VI,50:$VJ},{4:111,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,31:[1,110],33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VD,[2,47]),{30:$VO},{4:112,6:3,7:4,8:$V0,9:6,12:$V1,13:$V2,17:$V3,18:$V4,19:$V5,27:$V6,30:$V7,33:$V8,38:$V9,39:$Va,40:$Vb,41:$Vc,42:$Vd,43:$Ve,44:20,45:$Vf,54:$Vg,55:$Vh},o($VN,[2,65],{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,32:$VA,34:$VB,36:$VC}),{38:$VP,48:113,49:$VI,50:$VJ},o($VD,[2,42]),o($VD,[2,48]),{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,31:[1,114],32:$VA,34:$VB,36:$VC},{10:$Vi,11:$Vj,12:$Vk,13:$Vl,14:$Vm,15:$Vn,16:$Vo,17:$Vp,20:$Vq,21:$Vr,22:$Vs,23:$Vt,24:$Vu,25:$Vv,26:$Vw,27:$Vx,28:$Vy,29:$Vz,31:[1,115],32:$VA,34:$VB,36:$VC},o($VD,[2,41]),o($VD,[2,51]),o($VD,[2,33])],\r\ndefaultActions: {25:[2,1]},\r\nparseError: function parseError (str, hash) {\r\n if (hash.recoverable) {\r\n this.trace(str);\r\n } else {\r\n var error = new Error(str);\r\n error.hash = hash;\r\n throw error;\r\n }\r\n},\r\nparse: function parse(input) {\r\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\r\n var args = lstack.slice.call(arguments, 1);\r\n var lexer = Object.create(this.lexer);\r\n var sharedState = { yy: {} };\r\n for (var k in this.yy) {\r\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\r\n sharedState.yy[k] = this.yy[k];\r\n }\r\n }\r\n lexer.setInput(input, sharedState.yy);\r\n sharedState.yy.lexer = lexer;\r\n sharedState.yy.parser = this;\r\n if (typeof lexer.yylloc == 'undefined') {\r\n lexer.yylloc = {};\r\n }\r\n var yyloc = lexer.yylloc;\r\n lstack.push(yyloc);\r\n var ranges = lexer.options && lexer.options.ranges;\r\n if (typeof sharedState.yy.parseError === 'function') {\r\n this.parseError = sharedState.yy.parseError;\r\n } else {\r\n this.parseError = Object.getPrototypeOf(this).parseError;\r\n }\r\n function popStack(n) {\r\n stack.length = stack.length - 2 * n;\r\n vstack.length = vstack.length - n;\r\n lstack.length = lstack.length - n;\r\n }\r\n _token_stack:\r\n var lex = function () {\r\n var token;\r\n token = lexer.lex() || EOF;\r\n if (typeof token !== 'number') {\r\n token = self.symbols_[token] || token;\r\n }\r\n return token;\r\n };\r\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\r\n while (true) {\r\n state = stack[stack.length - 1];\r\n if (this.defaultActions[state]) {\r\n action = this.defaultActions[state];\r\n } else {\r\n if (symbol === null || typeof symbol == 'undefined') {\r\n symbol = lex();\r\n }\r\n action = table[state] && table[state][symbol];\r\n }\r\n if (typeof action === 'undefined' || !action.length || !action[0]) {\r\n var errStr = '';\r\n expected = [];\r\n for (p in table[state]) {\r\n if (this.terminals_[p] && p > TERROR) {\r\n expected.push('\\'' + this.terminals_[p] + '\\'');\r\n }\r\n }\r\n if (lexer.showPosition) {\r\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\r\n } else {\r\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\r\n }\r\n this.parseError(errStr, {\r\n text: lexer.match,\r\n token: this.terminals_[symbol] || symbol,\r\n line: lexer.yylineno,\r\n loc: yyloc,\r\n expected: expected\r\n });\r\n }\r\n if (action[0] instanceof Array && action.length > 1) {\r\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\r\n }\r\n switch (action[0]) {\r\n case 1:\r\n stack.push(symbol);\r\n vstack.push(lexer.yytext);\r\n lstack.push(lexer.yylloc);\r\n stack.push(action[1]);\r\n symbol = null;\r\n if (!preErrorSymbol) {\r\n yyleng = lexer.yyleng;\r\n yytext = lexer.yytext;\r\n yylineno = lexer.yylineno;\r\n yyloc = lexer.yylloc;\r\n if (recovering > 0) {\r\n recovering--;\r\n }\r\n } else {\r\n symbol = preErrorSymbol;\r\n preErrorSymbol = null;\r\n }\r\n break;\r\n case 2:\r\n len = this.productions_[action[1]][1];\r\n yyval.$ = vstack[vstack.length - len];\r\n yyval._$ = {\r\n first_line: lstack[lstack.length - (len || 1)].first_line,\r\n last_line: lstack[lstack.length - 1].last_line,\r\n first_column: lstack[lstack.length - (len || 1)].first_column,\r\n last_column: lstack[lstack.length - 1].last_column\r\n };\r\n if (ranges) {\r\n yyval._$.range = [\r\n lstack[lstack.length - (len || 1)].range[0],\r\n lstack[lstack.length - 1].range[1]\r\n ];\r\n }\r\n r = this.performAction.apply(yyval, [\r\n yytext,\r\n yyleng,\r\n yylineno,\r\n sharedState.yy,\r\n action[1],\r\n vstack,\r\n lstack\r\n ].concat(args));\r\n if (typeof r !== 'undefined') {\r\n return r;\r\n }\r\n if (len) {\r\n stack = stack.slice(0, -1 * len * 2);\r\n vstack = vstack.slice(0, -1 * len);\r\n lstack = lstack.slice(0, -1 * len);\r\n }\r\n stack.push(this.productions_[action[1]][0]);\r\n vstack.push(yyval.$);\r\n lstack.push(yyval._$);\r\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\r\n stack.push(newState);\r\n break;\r\n case 3:\r\n return true;\r\n }\r\n }\r\n return true;\r\n}};\r\n/* generated by jison-lex 0.3.4 */\r\nvar lexer = (function(){\r\nvar lexer = ({\r\n\r\nEOF:1,\r\n\r\nparseError:function parseError(str, hash) {\r\n if (this.yy.parser) {\r\n this.yy.parser.parseError(str, hash);\r\n } else {\r\n throw new Error(str);\r\n }\r\n },\r\n\r\n// resets the lexer, sets new input\r\nsetInput:function (input, yy) {\r\n this.yy = yy || this.yy || {};\r\n this._input = input;\r\n this._more = this._backtrack = this.done = false;\r\n this.yylineno = this.yyleng = 0;\r\n this.yytext = this.matched = this.match = '';\r\n this.conditionStack = ['INITIAL'];\r\n this.yylloc = {\r\n first_line: 1,\r\n first_column: 0,\r\n last_line: 1,\r\n last_column: 0\r\n };\r\n if (this.options.ranges) {\r\n this.yylloc.range = [0,0];\r\n }\r\n this.offset = 0;\r\n return this;\r\n },\r\n\r\n// consumes and returns one char from the input\r\ninput:function () {\r\n var ch = this._input[0];\r\n this.yytext += ch;\r\n this.yyleng++;\r\n this.offset++;\r\n this.match += ch;\r\n this.matched += ch;\r\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\r\n if (lines) {\r\n this.yylineno++;\r\n this.yylloc.last_line++;\r\n } else {\r\n this.yylloc.last_column++;\r\n }\r\n if (this.options.ranges) {\r\n this.yylloc.range[1]++;\r\n }\r\n\r\n this._input = this._input.slice(1);\r\n return ch;\r\n },\r\n\r\n// unshifts one char (or a string) into the input\r\nunput:function (ch) {\r\n var len = ch.length;\r\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\r\n\r\n this._input = ch + this._input;\r\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\r\n //this.yyleng -= len;\r\n this.offset -= len;\r\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\r\n this.match = this.match.substr(0, this.match.length - 1);\r\n this.matched = this.matched.substr(0, this.matched.length - 1);\r\n\r\n if (lines.length - 1) {\r\n this.yylineno -= lines.length - 1;\r\n }\r\n var r = this.yylloc.range;\r\n\r\n this.yylloc = {\r\n first_line: this.yylloc.first_line,\r\n last_line: this.yylineno + 1,\r\n first_column: this.yylloc.first_column,\r\n last_column: lines ?\r\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\r\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\r\n this.yylloc.first_column - len\r\n };\r\n\r\n if (this.options.ranges) {\r\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\r\n }\r\n this.yyleng = this.yytext.length;\r\n return this;\r\n },\r\n\r\n// When called from action, caches matched text and appends it on next action\r\nmore:function () {\r\n this._more = true;\r\n return this;\r\n },\r\n\r\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\r\nreject:function () {\r\n if (this.options.backtrack_lexer) {\r\n this._backtrack = true;\r\n } else {\r\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\r\n text: \"\",\r\n token: null,\r\n line: this.yylineno\r\n });\r\n\r\n }\r\n return this;\r\n },\r\n\r\n// retain first n characters of the match\r\nless:function (n) {\r\n this.unput(this.match.slice(n));\r\n },\r\n\r\n// displays already matched input, i.e. for error messages\r\npastInput:function () {\r\n var past = this.matched.substr(0, this.matched.length - this.match.length);\r\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\r\n },\r\n\r\n// displays upcoming input, i.e. for error messages\r\nupcomingInput:function () {\r\n var next = this.match;\r\n if (next.length < 20) {\r\n next += this._input.substr(0, 20-next.length);\r\n }\r\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\r\n },\r\n\r\n// displays the character position where the lexing error occurred, i.e. for error messages\r\nshowPosition:function () {\r\n var pre = this.pastInput();\r\n var c = new Array(pre.length + 1).join(\"-\");\r\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\r\n },\r\n\r\n// test the lexed token: return FALSE when not a match, otherwise return token\r\ntest_match:function(match, indexed_rule) {\r\n var token,\r\n lines,\r\n backup;\r\n\r\n if (this.options.backtrack_lexer) {\r\n // save context\r\n backup = {\r\n yylineno: this.yylineno,\r\n yylloc: {\r\n first_line: this.yylloc.first_line,\r\n last_line: this.last_line,\r\n first_column: this.yylloc.first_column,\r\n last_column: this.yylloc.last_column\r\n },\r\n yytext: this.yytext,\r\n match: this.match,\r\n matches: this.matches,\r\n matched: this.matched,\r\n yyleng: this.yyleng,\r\n offset: this.offset,\r\n _more: this._more,\r\n _input: this._input,\r\n yy: this.yy,\r\n conditionStack: this.conditionStack.slice(0),\r\n done: this.done\r\n };\r\n if (this.options.ranges) {\r\n backup.yylloc.range = this.yylloc.range.slice(0);\r\n }\r\n }\r\n\r\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\r\n if (lines) {\r\n this.yylineno += lines.length;\r\n }\r\n this.yylloc = {\r\n first_line: this.yylloc.last_line,\r\n last_line: this.yylineno + 1,\r\n first_column: this.yylloc.last_column,\r\n last_column: lines ?\r\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\r\n this.yylloc.last_column + match[0].length\r\n };\r\n this.yytext += match[0];\r\n this.match += match[0];\r\n this.matches = match;\r\n this.yyleng = this.yytext.length;\r\n if (this.options.ranges) {\r\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\r\n }\r\n this._more = false;\r\n this._backtrack = false;\r\n this._input = this._input.slice(match[0].length);\r\n this.matched += match[0];\r\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\r\n if (this.done && this._input) {\r\n this.done = false;\r\n }\r\n if (token) {\r\n return token;\r\n } else if (this._backtrack) {\r\n // recover context\r\n for (var k in backup) {\r\n this[k] = backup[k];\r\n }\r\n return false; // rule action called reject() implying the next rule should be tested instead.\r\n }\r\n return false;\r\n },\r\n\r\n// return next match in input\r\nnext:function () {\r\n if (this.done) {\r\n return this.EOF;\r\n }\r\n if (!this._input) {\r\n this.done = true;\r\n }\r\n\r\n var token,\r\n match,\r\n tempMatch,\r\n index;\r\n if (!this._more) {\r\n this.yytext = '';\r\n this.match = '';\r\n }\r\n var rules = this._currentRules();\r\n for (var i = 0; i < rules.length; i++) {\r\n tempMatch = this._input.match(this.rules[rules[i]]);\r\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\r\n match = tempMatch;\r\n index = i;\r\n if (this.options.backtrack_lexer) {\r\n token = this.test_match(tempMatch, rules[i]);\r\n if (token !== false) {\r\n return token;\r\n } else if (this._backtrack) {\r\n match = false;\r\n continue; // rule action called reject() implying a rule MISmatch.\r\n } else {\r\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\r\n return false;\r\n }\r\n } else if (!this.options.flex) {\r\n break;\r\n }\r\n }\r\n }\r\n if (match) {\r\n token = this.test_match(match, rules[index]);\r\n if (token !== false) {\r\n return token;\r\n }\r\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\r\n return false;\r\n }\r\n if (this._input === \"\") {\r\n return this.EOF;\r\n } else {\r\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\r\n text: \"\",\r\n token: null,\r\n line: this.yylineno\r\n });\r\n }\r\n },\r\n\r\n// return next match that has a token\r\nlex:function lex () {\r\n var r = this.next();\r\n if (r) {\r\n return r;\r\n } else {\r\n return this.lex();\r\n }\r\n },\r\n\r\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\r\nbegin:function begin (condition) {\r\n this.conditionStack.push(condition);\r\n },\r\n\r\n// pop the previously active lexer condition state off the condition stack\r\npopState:function popState () {\r\n var n = this.conditionStack.length - 1;\r\n if (n > 0) {\r\n return this.conditionStack.pop();\r\n } else {\r\n return this.conditionStack[0];\r\n }\r\n },\r\n\r\n// produce the lexer rule set which is active for the currently active lexer condition state\r\n_currentRules:function _currentRules () {\r\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\r\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\r\n } else {\r\n return this.conditions[\"INITIAL\"].rules;\r\n }\r\n },\r\n\r\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\r\ntopState:function topState (n) {\r\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\r\n if (n >= 0) {\r\n return this.conditionStack[n];\r\n } else {\r\n return \"INITIAL\";\r\n }\r\n },\r\n\r\n// alias for begin(condition)\r\npushState:function pushState (condition) {\r\n this.begin(condition);\r\n },\r\n\r\n// return the number of states currently on the stack\r\nstateStackSize:function stateStackSize() {\r\n return this.conditionStack.length;\r\n },\r\noptions: {\"case-insensitive\":true},\r\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\r\nvar YYSTATE=YY_START;\r\nswitch($avoiding_name_collisions) {\r\ncase 0: this.begin('INITIAL'); return 45; \r\nbreak;\r\ncase 1: this.begin('INITIAL'); return 51; \r\nbreak;\r\ncase 2:return 53;\r\nbreak;\r\ncase 3:return 52;\r\nbreak;\r\ncase 4:return 'INVALID';\r\nbreak;\r\ncase 5:return 39\r\nbreak;\r\ncase 6:return 43\r\nbreak;\r\ncase 7:return 8\r\nbreak;\r\ncase 8:return 41\r\nbreak;\r\ncase 9:return 40\r\nbreak;\r\ncase 10:return 42\r\nbreak;\r\ncase 11:return 42\r\nbreak;\r\ncase 12:/* skip whitespace */\r\nbreak;\r\ncase 13:return 36\r\nbreak;\r\ncase 14:return 34\r\nbreak;\r\ncase 15:return 27\r\nbreak;\r\ncase 16:return 32\r\nbreak;\r\ncase 17:return 33\r\nbreak;\r\ncase 18:return 10\r\nbreak;\r\ncase 19:return 11\r\nbreak;\r\ncase 20:return 13\r\nbreak;\r\ncase 21:return 12\r\nbreak;\r\ncase 22:return 17\r\nbreak;\r\ncase 23:return 19\r\nbreak;\r\ncase 24:return 21\r\nbreak;\r\ncase 25:return 18\r\nbreak;\r\ncase 26:return 14\r\nbreak;\r\ncase 27:return 21\r\nbreak;\r\ncase 28:return 24\r\nbreak;\r\ncase 29:return 25\r\nbreak;\r\ncase 30:return 22\r\nbreak;\r\ncase 31:return 23\r\nbreak;\r\ncase 32:return 29\r\nbreak;\r\ncase 33:return 28\r\nbreak;\r\ncase 34:return 20\r\nbreak;\r\ncase 35:return 20\r\nbreak;\r\ncase 36:return 26\r\nbreak;\r\ncase 37:return 28\r\nbreak;\r\ncase 38:return 29\r\nbreak;\r\ncase 39:return 16\r\nbreak;\r\ncase 40:return 15\r\nbreak;\r\ncase 41: this.begin('fieldname'); return 54; \r\nbreak;\r\ncase 42:return 46;\r\nbreak;\r\ncase 43:return 30\r\nbreak;\r\ncase 44:return 31\r\nbreak;\r\ncase 45:return 47\r\nbreak;\r\ncase 46:return 37\r\nbreak;\r\ncase 47:return 55\r\nbreak;\r\ncase 48:return 38\r\nbreak;\r\ncase 49:return 'INVALID'\r\nbreak;\r\ncase 50:return 5\r\nbreak;\r\n}\r\n},\r\nrules: [/^(?:\\]\\s*\\[)/i,/^(?:\\])/i,/^(?:\\\\.)/i,/^(?:.)/i,/^(?:$)/i,/^(?:'(?:[^\\']|(?:('')))*')/i,/^(?:\\{[0-9A-Fa-f]{8}[-]?(?:[0-9A-Fa-f]{4}[-]?){3}[0-9A-Fa-f]{12}\\})/i,/^(?:##\\w+#(?:[^\\#]|(?:\\.))*#)/i,/^(?:#(?:[^\\\\\\#]|(?:\\\\.))*#)/i,/^(?:[0-9]+(\\.[0-9]+([mfMF]{1})?|[bsiluBSILU]{1})?)/i,/^(?:True\\b)/i,/^(?:False\\b)/i,/^(?:\\s+)/i,/^(?:Between\\b)/i,/^(?:In\\b)/i,/^(?:Not\\b)/i,/^(?:Is\\b)/i,/^(?:Null\\b)/i,/^(?:\\*)/i,/^(?:\\/)/i,/^(?:-)/i,/^(?:\\+)/i,/^(?:\\^)/i,/^(?:~)/i,/^(?:!=)/i,/^(?:!)/i,/^(?:%)/i,/^(?:<>)/i,/^(?:>=)/i,/^(?:<=)/i,/^(?:>)/i,/^(?:<)/i,/^(?:\\|\\|)/i,/^(?:&&)/i,/^(?:==)/i,/^(?:=)/i,/^(?:Like\\b)/i,/^(?:And\\b)/i,/^(?:Or\\b)/i,/^(?:&)/i,/^(?:\\|)/i,/^(?:\\[)/i,/^(?:\\])/i,/^(?:\\()/i,/^(?:\\))/i,/^(?:\\.)/i,/^(?:,)/i,/^(?:\\?)/i,/^(?:[_\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60-\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA-\\u0EAB\\u0EAD-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5-\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC][\\d_\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376-\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06E5-\\u06E6\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4-\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60-\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E46\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA-\\u0EAB\\u0EAD-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5-\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183-\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3006\\u3031-\\u3035\\u303B-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]*)/i,/^(?:.)/i,/^(?:$)/i],\r\nconditions: {\"fieldname\":{\"rules\":[0,1,2,3,4],\"inclusive\":false},\"INITIAL\":{\"rules\":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],\"inclusive\":true}}\r\n});\r\nreturn lexer;\r\n})();\r\nparser.lexer = lexer;\r\nfunction Parser () {\r\n this.yy = {};\r\n}\r\nParser.prototype = parser;parser.Parser = Parser;\r\nreturn new Parser;\r\n})();\r\nexports.criteriaparser = criteriaparser;\r\nexports.parse = function(test) { return criteriaparser.parse(test) };\r\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\utils\\criteriaEnumeration.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AggregateOperand } from '../operators/aggregate';\nexport function criteriaForEach(operator, callback, path = '') {\n callback(operator, path);\n if (operator instanceof AggregateOperand) {\n operator.leftPart && criteriaForEach(operator.leftPart, callback, path);\n if (operator.leftPart && operator.leftPart['propertyName']) {\n path = path ? [path, operator.leftPart['propertyName']].join('.') : operator.leftPart['propertyName'];\n }\n }\n operator.children().forEach(item => criteriaForEach(item, callback, path));\n}\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\utils\\criteriaOperatorPreprocessor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { UnaryOperatorType } from '../operators/options/unary';\nexport class CriteriaOperatorPreprocessor {\n constructor() {\n this._func = [];\n this._factory = {};\n this._changeTypeFactory = {};\n }\n addListener(func) {\n var index = this._func.indexOf(func);\n if (index === -1) {\n this._func.push(func);\n }\n }\n removeListener(func) {\n var index = this._func.indexOf(func);\n if (index !== -1) {\n this._func.splice(index, 1);\n }\n }\n register(operatorType, create, changeType) {\n this._factory[operatorType] = create;\n if (changeType)\n this._changeTypeFactory[operatorType] = (changeOperator) => {\n var operand = changeType(changeOperator);\n if (changeOperator.reverse) {\n operand = this.process('unary', {\n operator: operand,\n operatorType: UnaryOperatorType.Not\n });\n }\n return operand;\n };\n }\n process(operatorType, options = {}) {\n var operand = operatorType in this._factory ? this._factory[operatorType](options) : this._factory['default']();\n this._func.forEach(func => { operand = func(operand, { operatorType: operatorType, options: options || {} }); });\n return operand;\n }\n changeByType(value) {\n if (this._changeTypeFactory[value._type]) {\n return this._changeTypeFactory[value._type](value);\n }\n return null;\n }\n}\nexport var criteriaCreator = new CriteriaOperatorPreprocessor();\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\utils\\criteriaOperatorStateMachine.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { stringReplace } from '../../../property-grid/widgets/internal/_utils';\nimport { parse } from '../parser/criteriaparser';\nexport class MachineState {\n constructor(tokenName, alphabet, startTerm, endTerm) {\n this.tokenName = tokenName;\n this.alphabet = alphabet;\n this.startTerm = startTerm;\n this.endTerm = endTerm;\n this.tokenLength = 0;\n this.isActiveState = false;\n this.tokens = [];\n }\n _isSubline(pos, term) {\n var result = (pos + term.length - 1 < this.alphabet.length);\n for (var i = pos; i < (pos + term.length) && result; i++)\n result = this.alphabet[i] == term[i - pos];\n return result;\n }\n _getToken(pos) {\n var token = {\n type: this.tokenName, start: pos - this.tokenLength + 1, end: pos + this.endTerm.length\n };\n token.val = this.alphabet.substring(token.start, token.end);\n return token;\n }\n processTransitionFunction(pos) {\n if (this.isActiveState) {\n this.tokenLength++;\n }\n if (this._isSubline(pos, this.startTerm) && !this.isActiveState) {\n this.isActiveState = true;\n this.tokenLength += this.startTerm.length;\n return this.startTerm.length - 1;\n }\n else if (this.isActiveState && this._isSubline(pos, this.endTerm)) {\n this.isActiveState = false;\n this.tokens.push(this._getToken(pos));\n this.tokenLength = 0;\n return this.endTerm.length - 1;\n }\n return 0;\n }\n}\nexport class CriteriaOperatorStateMachine {\n constructor(stringCriteria) {\n this.stringCriteria = stringCriteria;\n this.machineStates = [];\n this.machineStates.push(new MachineState('field', stringCriteria, '[', ']'));\n this.machineStates.push(new MachineState('value', stringCriteria, \"'\", \"'\"));\n this.machineStates.push(new MachineState('comment', stringCriteria, '/*', '*/'));\n this._inputStringCriteria = stringCriteria;\n }\n static parse(stringCriteria, saveOriginalStringLength = false) {\n if (stringCriteria && stringCriteria !== '') {\n if (saveOriginalStringLength)\n return new CriteriaOperatorStateMachine(stringCriteria).replaceCommentsToChar(' ').getCriteria();\n return new CriteriaOperatorStateMachine(stringCriteria).replaceCommentsToChar().getCriteria();\n }\n return null;\n }\n _tokenize() {\n for (var i = 0; i < this.stringCriteria.length; i++) {\n var step = 0;\n this.machineStates.forEach(state => {\n if (step)\n return;\n var anotherMachines = this.machineStates.filter(a => a != state && a.isActiveState);\n if (!anotherMachines.length)\n step = state.processTransitionFunction(i);\n });\n i += step;\n }\n var resultTokens = [];\n this.machineStates.forEach((state) => {\n resultTokens = resultTokens.concat(state.tokens);\n state.tokens = [];\n });\n return resultTokens;\n }\n _replaceTokenToAnotherToken(tokens, newTokenChar, tokenName) {\n var tempCriteria = this.stringCriteria;\n tokens = tokens.filter(a => a.type == tokenName).sort(a => a.start).reverse();\n tokens.forEach(token => {\n var lines = token.val.split('\\n');\n var start = token.start;\n var end = token.end;\n lines.forEach(line => {\n if (line.length + start !== token.end) {\n end = start + line.length;\n }\n else {\n end = token.end;\n }\n tempCriteria = stringReplace(tempCriteria, start, end - start, newTokenChar);\n start = (line.length * newTokenChar.length) + 1;\n });\n });\n return tempCriteria;\n }\n replaceCommentsToChar(char = '') {\n this._inputStringCriteria = this._replaceTokenToAnotherToken(this._tokenize(), char, 'comment');\n return this;\n }\n getCriteria() {\n return parse(this._inputStringCriteria);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\criteria\\utils\\operatorTokens.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var operatorTokens = {\n 'Plus': '+',\n 'Minus': '-',\n 'Equal': '=',\n 'NotEqual': '<>',\n 'Greater': '>',\n 'Less': '<',\n 'LessOrEqual': '<=',\n 'GreaterOrEqual': '>='\n};\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\_expressioneditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport var RangeSpecific = 'range';\nexport function createExpressionEditorCollectionToolOptions(collectionItems, toolName, displayToolName, showDescription) {\n return {\n displayName: getLocalization(toolName, displayToolName),\n content: {\n showDescription: showDescription,\n isSelected: ko.observable(false),\n data: {\n items: collectionItems,\n selectedItem: ko.observable(null)\n },\n name: 'dx-expressioneditor-collection'\n },\n dispose: () => void 0\n };\n}\nexport function wrapExpressionValue(path, value, converter, subscriptions) {\n if (!(converter && path))\n return value;\n var _displayValue = ko.observable(value());\n converter.toDisplayExpression(path(), value()).done((result) => {\n _displayValue(result);\n }).fail(() => {\n _displayValue(value());\n });\n var valueSubscription = value.subscribe((newValue) => {\n converter.toDisplayExpression(path(), newValue).done((result) => {\n _displayValue(result);\n }).fail(() => {\n _displayValue(newValue);\n });\n });\n var pathSubscription = path.subscribe(newPath => {\n converter.toDisplayExpression(newPath, value())\n .done(result => { _displayValue(result); })\n .fail(_ => { _displayValue(value()); });\n });\n var displayValue = ko.pureComputed({\n read: () => _displayValue(),\n write: (newValue) => {\n _displayValue(newValue);\n converter.toRealExpression(path(), newValue).done((result) => {\n value(result);\n }).fail(() => {\n value(newValue);\n });\n }\n });\n if (subscriptions)\n [displayValue, valueSubscription, pathSubscription].forEach(x => subscriptions.push(x));\n return displayValue;\n}\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ExpressionEditor } from './expressioneditor';\nimport { addDisposeCallback } from '../../serializer/_internal';\nko.bindingHandlers['dxExpressionEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var $element = $.fn.constructor(element);\n $element.children().remove();\n var values = valueAccessor();\n $.fn.constructor(element).addClass(values.wrapper ? 'dx-expressioneditor-content' : 'dx-popup-general');\n var templateName = values.editorTemplateName || 'dx-expressioneditor';\n var optionSubscription = null;\n var editor = new ExpressionEditor(ko.unwrap(values.options), values.fieldListProvider, viewModel.disabled, $.fn.constructor(element).closest('.dx-rtl').length > 0, values.displayNameProvider, values.popupVisible, viewModel.editorInputId);\n if (ko.isSubscribable(values.options)) {\n optionSubscription = values.options.subscribe(newOptions => {\n newOptions && editor.koOptions(newOptions);\n });\n }\n values.wrapper && values.wrapper.editor(editor);\n var childContext = bindingContext.createChildContext(editor);\n var child = document.createElement('div'), $element = $element.append(child);\n ko.renderTemplate(templateName, childContext, {}, child, 'replaceNode');\n var callback = () => {\n editor.dispose();\n editor = null;\n values.wrapper && values.wrapper.editor(null);\n optionSubscription && optionSubscription.dispose();\n };\n addDisposeCallback(element, callback);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\expressioneditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { Disposable } from '../../serializer/utils';\nimport { aceAvailable } from '../ace/_ace-available';\nimport { CodeCompletor } from '../common/_codeCompletor';\nimport { DisplayExpressionConverter } from '../common/_displayNameProvider';\nimport { CriteriaOperatorStateMachine } from '../criteria/utils/criteriaOperatorStateMachine';\nimport { ResizeHelper } from '../internal/_resizeHelper';\nimport { getParentContainer, isList, setCursorInFunctionParameter } from '../_utils';\nimport { Tools } from './tools/_tools';\nimport { ExpressionEditorParametersTreeListController, ExpressionEditorTreeListController } from './tools/_treeListControllers';\nimport { RangeSpecific, wrapExpressionValue } from './_expressioneditor';\nexport function getNotValidRange(value, errorMessage) {\n var start = 0;\n var end = 0;\n var parts = errorMessage.split('\\n');\n var errorText = parts[1];\n var errorLength = parts[2].length;\n if (errorText.indexOf('...') === 0) {\n errorText = errorText.split('...')[1];\n }\n var start = value.indexOf(errorText);\n var end = start + errorLength;\n return { start: start, end: end };\n}\nfunction createExpressionEditorFieldListProvider(originalProvider, fieldName) {\n return ko.computed(() => {\n var provider = ko.unwrap(originalProvider);\n var unwrappedFieldName = ko.unwrap(fieldName);\n return !unwrappedFieldName ? provider : {\n getItems: (path) => {\n var $deferred = $.Deferred();\n provider.getItems(path)\n .done((data) => {\n $deferred.resolve(data.filter(field => field.name !== unwrappedFieldName));\n })\n .fail(() => $deferred.reject());\n return $deferred.promise();\n },\n getValues: (path) => {\n return provider.getValues(path);\n }\n };\n });\n}\nexport class ExpressionEditor extends Disposable {\n constructor(options, fieldListProvider, disabled = ko.observable(false), rtl = false, _displayNameProvider, popupVisible = ko.observable(false), editorInputId) {\n super();\n this.options = options;\n this._displayNameProvider = _displayNameProvider;\n this.popupVisible = popupVisible;\n this._updateTextAreaValue = (item, element) => {\n var textArea = this._getTextArea(element), textAreaValue = this.textAreaValue().toString(), cursorPosition = textArea && textArea.selectionStart || textAreaValue.length, newAddedText = textAreaValue[cursorPosition - 1] == ' ' ? (item.val || item.text || item) + ' ' : ' ' + (item.val || item.text || item) + ' ';\n this.textAreaValue([textAreaValue.slice(0, cursorPosition), newAddedText, textAreaValue.slice(cursorPosition)].join(''));\n if (textArea && textArea.setSelectionRange) {\n textArea.focus();\n var posisition = cursorPosition + (newAddedText.indexOf('(') !== -1 ? newAddedText.indexOf('(') + 1 : newAddedText.length);\n textArea.setSelectionRange(posisition, posisition);\n }\n };\n this._updateAceValue = (item, element) => {\n var editor = this.editorContainer(), { row, column: col } = editor.getCursorPosition(), insertion = (item.val || item.text || item) + ' ';\n if (col && editor.getSession().getValue().split('\\n')[row][col - 1] !== ' ')\n insertion = ' ' + insertion;\n editor.insert(insertion);\n editor.focus();\n setCursorInFunctionParameter(item.paramCount, editor, insertion);\n };\n this._updateValue = (item, element) => {\n this.aceAvailable ? this._updateAceValue(item, $.fn.constructor(element)) : this._updateTextAreaValue(item, $.fn.constructor(element));\n };\n this.patchFieldName = (fieldName) => fieldName;\n this._parametersPutSelectionHandler = (selectedItemPath, element) => {\n var pathParts = selectedItemPath.split('.');\n var newAddedString = '?' + this.patchFieldName(pathParts[pathParts.length - 1]);\n this._updateValue(newAddedString, element);\n };\n this._fieldsPutSelectionHandler = (selectedItemPath, element) => {\n var path = this.koOptions.peek().path.peek();\n var proposedFieldName = selectedItemPath.substring(path.length + 1);\n var newAddedString = '[' + this.patchFieldName(proposedFieldName) + ']';\n if (this._displayNameProvider) {\n this.displayExpressionConverter.toDisplayExpression(path, newAddedString)\n .done((result) => { this._updateValue(result, element); })\n .fail(() => { this._updateValue(newAddedString, element); });\n }\n else {\n this._updateValue(newAddedString, element);\n }\n };\n this.aceAvailable = aceAvailable();\n this.title = () => getLocalization('Expression Editor', 'AnalyticsCoreStringId.ExpressionEditor_ExpressionCaption');\n this.value = ko.observable('');\n this.textAreaValue = ko.observable('');\n this.languageHelper = {\n getLanguageMode: () => 'ace/mode/criteria',\n createCompleters: (editor, bindingContext, viewModel) => {\n var path = ko.computed(() => { return viewModel.koOptions() && ko.unwrap(viewModel.koOptions().path) || ''; }), functions = ko.computed(() => { return viewModel.koOptions() && ko.unwrap(viewModel.koOptions().functions) || []; }), completor = new CodeCompletor({\n editor,\n bindingContext,\n fieldListProvider: viewModel.fieldListProvider,\n path,\n functions,\n rootItems: viewModel.options.rootItems,\n getRealExpression: (path, member) => {\n return this.displayExpressionConverter && this.displayExpressionConverter.toRealExpression(path, member) || $.Deferred().resolve(member).promise();\n }\n });\n [path, functions].forEach(x => completor._disposables.push(x));\n return [completor];\n }\n };\n this.aceOptions = {\n showLineNumbers: false,\n showPrintMargin: false,\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n showFoldWidgets: false,\n highlightActiveLine: false\n };\n this.additionalOptions = {\n onChange: (session) => {\n var value = session.getValue();\n try {\n var operator = CriteriaOperatorStateMachine.parse(value);\n if (this.koOptions().validate) {\n this.isValid(this.koOptions().validate(operator));\n }\n session.clearAnnotations();\n }\n catch (exception) {\n var row = exception.hash && exception.hash.line || 0;\n var column = 0;\n var lines = exception.message.split('\\n');\n var text = lines[1] + '\\n' + lines[2];\n session.setAnnotations([{ row, column, text, 'type': 'error' }]);\n }\n }\n };\n this.callbacks = {\n focus: $.noop\n };\n this.koOptions = ko.observable(null);\n this.editorContainer = ko.observable();\n this.isValid = ko.observable(true);\n this.buttonItems = [];\n this.rtl = false;\n this.modelValueValid = ko.computed(() => {\n var options = this.koOptions();\n return options && ko.isObservable(options.isValid) ? options.isValid() : true;\n });\n this.modelValueWarning = ko.computed(() => {\n var options = this.koOptions();\n return options && ko.unwrap(options.warningMessage) || '';\n });\n this.getPopupContainer = getParentContainer;\n this.koOptions(options);\n this.patchFieldName = (fieldName) => {\n return this.koOptions().patchFieldName && this.koOptions().patchFieldName(fieldName) || fieldName;\n };\n this.theme = this.koOptions() && this.koOptions().theme;\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var value = this.koOptions() && ko.unwrap(this.koOptions().value);\n return (value && value.toString()) || '';\n },\n write: (newVal) => this.koOptions() && this.koOptions().value(newVal)\n }));\n if (_displayNameProvider && options.path) {\n this.displayExpressionConverter = new DisplayExpressionConverter(_displayNameProvider);\n var pathFunc = ko.pureComputed(() => this.koOptions() && this.koOptions().path && this.koOptions().path());\n this.displayValue = wrapExpressionValue(pathFunc, this.value, this.displayExpressionConverter, this._disposables);\n this._disposables.push(pathFunc);\n }\n else {\n this.displayValue = this.value;\n }\n this.rtl = rtl;\n this.validate = (value, sender) => {\n try {\n CriteriaOperatorStateMachine.parse(value);\n this.isValid(true);\n return true;\n }\n catch (exception) {\n var result = getNotValidRange(value, exception.message);\n var textArea = this._getTextArea(sender && sender.element);\n textArea && textArea.setSelectionRange(result.start, result.end);\n this.isValid(false);\n }\n };\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (!newVal) {\n this.editorContainer(null);\n return;\n }\n this.initDisplayValue();\n }));\n var fieldName = ko.computed(() => { return this.koOptions() && this.koOptions().fieldName && this.koOptions().fieldName(); });\n this._disposables.push(this.fieldListProvider = createExpressionEditorFieldListProvider(fieldListProvider, fieldName));\n this.disabled = disabled;\n var self = this;\n this.save = (sender) => {\n var value = this.getValue();\n if (this.validate(value, sender)) {\n this.displayValue(value);\n this.popupVisible(false);\n }\n };\n var selectedItem = null;\n var selectionHandler = (item) => {\n var selectedItemType = ko.unwrap(item.data['type']);\n if (selectedItem)\n selectedItem.isSelected(false);\n selectedItem = item;\n item.isSelected(true);\n };\n var fieldsTreeListOptions = ko.pureComputed(() => {\n return this.koOptions() && this.koOptions().path && this.koOptions().path() && this._createToolsOptions(this.koOptions().path(), this.fieldListProvider(), new ExpressionEditorTreeListController(fieldName, (data, element) => { this._fieldsPutSelectionHandler(data.path, element); }, selectionHandler));\n });\n this.parametersTreeListController = new ExpressionEditorParametersTreeListController(this._parametersCustomFilter, this._parametersPutSelectionHandler, selectionHandler);\n var parametersTreeListOptions = ko.pureComputed(() => {\n return this._createToolsOptions('', this.fieldListProvider(), this.parametersTreeListController);\n });\n this._disposables.push(this.tools = new Tools(this._updateValue, parametersTreeListOptions, this.koOptions, fieldsTreeListOptions));\n this._disposables.push(this.modelValueValid, this.modelValueWarning);\n this._createMainPopupButtons();\n [fieldName, fieldsTreeListOptions, parametersTreeListOptions].forEach(x => this._disposables.push(x));\n this.resizeHelper = new ResizeHelper({\n onResize: () => this.resizeAceEditor()\n });\n this.editorInputId = editorInputId;\n }\n dispose() {\n super.dispose();\n this.koOptions(null);\n this.editorContainer(null);\n this.options = null;\n }\n _createMainPopupButtons() {\n var self = this;\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('OK', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained', onClick: function (sender) { self.save(sender); } } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('Cancel', StringId.DataAccessBtnCancel), type: 'normal', stylingMode: 'contained', onClick: function () { self.popupVisible(false); } } }\n ];\n }\n _getTextArea(element) {\n var $el = $.fn.constructor(element);\n return ($el && $el.parents('.dx-expressioneditor').find(':input')[0]);\n }\n _createToolsOptions(path, fieldListProvider, treeListController) {\n return {\n itemsProvider: fieldListProvider,\n selectedPath: ko.observable(''),\n path: ko.observable(path),\n templateName: 'dx-ee-treelist-item',\n treeListController: treeListController,\n rtl: this.rtl\n };\n }\n _parametersCustomFilter(item) {\n return item.specifics === 'parameters' || item.specifics === RangeSpecific || !isList(item);\n }\n onShown() {\n this.callbacks.focus();\n }\n onHiding(e) {\n var options = this.koOptions();\n return options && options.onHiding && options.onHiding(e);\n }\n onShowing(e) {\n var options = this.koOptions();\n return options && options.onShowing && options.onShowing(e);\n }\n onContentReady(e) {\n var options = this.koOptions();\n return options && options.onContentReady && options.onContentReady(e);\n }\n resizeAceEditor() {\n if (this.aceAvailable && this.editorContainer()) {\n this.editorContainer().resize();\n }\n }\n initDisplayValue() {\n this.tools.resetCategoriesSelection && this.tools.resetCategoriesSelection();\n this.textAreaValue(this.displayValue());\n if (!this.aceAvailable) {\n this.validate(this.value());\n }\n else {\n var editor = this.editorContainer();\n var session = editor && editor.getSession();\n session && session.setValue(this.textAreaValue());\n }\n }\n getValue() {\n var value = this.textAreaValue();\n if (this.aceAvailable) {\n var editor = this.editorContainer();\n var session = editor && editor.getSession();\n value = session && session.getValue();\n }\n return value;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_functions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from '../../../serializer/_utils';\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nvar defaultFunctionDisplay = [\n {\n display: 'Aggregate',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Aggregate',\n category: 'Aggregate',\n items: {\n Avg: [{ paramCount: 1, text: '[].Avg()', displayName: 'Avg()', descriptionStringId: 'ExpressionEditorStringId.Function_AvgAggregate' }],\n Count: [{ paramCount: 1, text: '[].Count()', displayName: 'Count()', descriptionStringId: 'ExpressionEditorStringId.Function_CountAggregate' }],\n Exists: [{ paramCount: 1, text: '[].Exists()', displayName: 'Exists()', descriptionStringId: 'ExpressionEditorStringId.Function_ExistsAggregate' }],\n Max: [{ paramCount: 1, text: '[].Max()', displayName: 'Max()', descriptionStringId: 'ExpressionEditorStringId.Function_MaxAggregate' }],\n Min: [{ paramCount: 1, text: '[].Min()', displayName: 'Min()', descriptionStringId: 'ExpressionEditorStringId.Function_MinAggregate' }],\n Single: [{ paramCount: 1, text: '[].Single()', displayName: 'Single()', descriptionStringId: 'ExpressionEditorStringId.Function_SingleAggregate' }],\n Sum: [{ paramCount: 1, text: '[].Sum()', displayName: 'Sum()', descriptionStringId: 'ExpressionEditorStringId.Function_SumAggregate' }],\n }\n }, {\n display: 'Date-Time',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_DateTime',\n items: {\n LocalDateTimeThisYear: [{ paramCount: 0, text: 'LocalDateTimeThisYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisYear' }],\n LocalDateTimeThisMonth: [{ paramCount: 0, text: 'LocalDateTimeThisMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisMonth' }],\n LocalDateTimeLastMonth: [{ paramCount: 0, text: 'LocalDateTimeLastMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastMonth' }],\n LocalDateTimeLastWeek: [{ paramCount: 0, text: 'LocalDateTimeLastWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastWeek' }],\n LocalDateTimeLastYear: [{ paramCount: 0, text: 'LocalDateTimeLastYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeLastYear' }],\n LocalDateTimeThisWeek: [{ paramCount: 0, text: 'LocalDateTimeThisWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeThisWeek' }],\n LocalDateTimeYesterday: [{ paramCount: 0, text: 'LocalDateTimeYesterday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeYesterday' }],\n LocalDateTimeToday: [{ paramCount: 0, text: 'LocalDateTimeToday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeToday' }],\n LocalDateTimeNow: [{ paramCount: 0, text: 'LocalDateTimeNow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNow' }],\n LocalDateTimeTomorrow: [{ paramCount: 0, text: 'LocalDateTimeTomorrow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTomorrow' }],\n LocalDateTimeDayAfterTomorrow: [{ paramCount: 0, text: 'LocalDateTimeDayAfterTomorrow()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeDayAfterTomorrow' }],\n LocalDateTimeNextWeek: [{ paramCount: 0, text: 'LocalDateTimeNextWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextWeek' }],\n LocalDateTimeTwoMonthsAway: [{ paramCount: 0, text: 'LocalDateTimeTwoMonthsAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoMonthsAway' }],\n LocalDateTimeTwoYearsAway: [{ paramCount: 0, text: 'LocalDateTimeTwoYearsAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoYearsAway' }],\n LocalDateTimeTwoWeeksAway: [{ paramCount: 0, text: 'LocalDateTimeTwoWeeksAway()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeTwoWeeksAway' }],\n LocalDateTimeNextMonth: [{ paramCount: 0, text: 'LocalDateTimeNextMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextMonth' }],\n LocalDateTimeNextYear: [{ paramCount: 0, text: 'LocalDateTimeNextYear()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeNextYear' }],\n LocalDateTimeYearBeforeToday: [{ paramCount: 0, text: 'LocalDateTimeYearBeforeToday()', descriptionStringId: 'ExpressionEditorStringId.Function_LocalDateTimeYearBeforeToday' }],\n InDateRange: [{ paramCount: 3, text: 'InDateRange(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_InDateRange' }],\n IsOutlookIntervalBeyondThisYear: null,\n IsOutlookIntervalNextWeek: null,\n IsOutlookIntervalTomorrow: null,\n IsOutlookIntervalToday: null,\n IsOutlookIntervalYesterday: null,\n IsOutlookIntervalLastWeek: null,\n IsOutlookIntervalPriorThisYear: null,\n IsLastMonth: [{ paramCount: 1, text: 'IsLastMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsLastMonth' }],\n IsLastYear: [{ paramCount: 1, text: 'IsLastYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsLastYear' }],\n IsNextMonth: [{ paramCount: 1, text: 'IsNextMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNextMonth' }],\n IsNextYear: [{ paramCount: 1, text: 'IsNextYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNextYear' }],\n IsThisWeek: [{ paramCount: 1, text: 'IsThisWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisWeek' }],\n IsThisMonth: [{ paramCount: 1, text: 'IsThisMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisMonth' }],\n IsThisYear: [{ paramCount: 1, text: 'IsThisYear()', descriptionStringId: 'ExpressionEditorStringId.Function_IsThisYear' }],\n IsJanuary: [{ paramCount: 1, text: 'IsJanuary()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJanuary' }],\n IsFebruary: [{ paramCount: 1, text: 'IsFebruary()', descriptionStringId: 'ExpressionEditorStringId.Function_IsFebruary' }],\n IsMarch: [{ paramCount: 1, text: 'IsMarch()', descriptionStringId: 'ExpressionEditorStringId.Function_IsMarch' }],\n IsApril: [{ paramCount: 1, text: 'IsApril()', descriptionStringId: 'ExpressionEditorStringId.Function_IsApril' }],\n IsMay: [{ paramCount: 1, text: 'IsMay()', descriptionStringId: 'ExpressionEditorStringId.Function_IsMay' }],\n IsJune: [{ paramCount: 1, text: 'IsJune()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJune' }],\n IsJuly: [{ paramCount: 1, text: 'IsJuly()', descriptionStringId: 'ExpressionEditorStringId.Function_IsJuly' }],\n IsAugust: [{ paramCount: 1, text: 'IsAugust()', descriptionStringId: 'ExpressionEditorStringId.Function_IsAugust' }],\n IsSeptember: [{ paramCount: 1, text: 'IsSeptember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsSeptember' }],\n IsOctober: [{ paramCount: 1, text: 'IsOctober()', descriptionStringId: 'ExpressionEditorStringId.Function_IsOctober' }],\n IsNovember: [{ paramCount: 1, text: 'IsNovember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNovember' }],\n IsDecember: [{ paramCount: 1, text: 'IsDecember()', descriptionStringId: 'ExpressionEditorStringId.Function_IsDecember' }],\n IsSameDay: [{ paramCount: 2, text: 'IsSameDay(, )', descriptionStringId: 'ExpressionEditorStringId.Function_IsSameDay' }],\n IsYearToDate: [{ paramCount: 1, text: 'IsYearToDate()', descriptionStringId: 'ExpressionEditorStringId.Function_IsYearToDate' }],\n DateDiffTick: [{ paramCount: 2, text: 'DateDiffTick(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffTick' }],\n DateDiffSecond: [{ paramCount: 2, text: 'DateDiffSecond(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffSecond' }],\n DateDiffMilliSecond: [{ paramCount: 2, text: 'DateDiffMilliSecond(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMilliSecond' }],\n DateDiffMinute: [{ paramCount: 2, text: 'DateDiffMinute(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMinute' }],\n DateDiffHour: [{ paramCount: 2, text: 'DateDiffHour(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffHour' }],\n DateDiffDay: [{ paramCount: 2, text: 'DateDiffDay(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffDay' }],\n DateDiffMonth: [{ paramCount: 2, text: 'DateDiffMonth(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffMonth' }],\n DateDiffYear: [{ paramCount: 2, text: 'DateDiffYear(, )', descriptionStringId: 'ExpressionEditorStringId.Function_DateDiffYear' }],\n DateTimeFromParts: [\n { paramCount: 3, text: 'DateTimeFromParts(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_DateTimeFromParts3' },\n { paramCount: 4, text: 'DateTimeFromParts(, , , )', descriptionStringId: 'ExpressionEditorStringId.Function_DateTimeFromParts4' },\n { paramCount: 5, text: 'DateTimeFromParts(, , , , )', descriptionStringId: 'ExpressionEditorStringId.Function_DateTimeFromParts5' },\n { paramCount: 6, text: 'DateTimeFromParts(, , , , , )', descriptionStringId: 'ExpressionEditorStringId.Function_DateTimeFromParts6' }\n ],\n GetDate: [{ paramCount: 1, text: 'GetDate()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDate' }],\n GetMilliSecond: [{ paramCount: 1, text: 'GetMilliSecond()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMilliSecond' }],\n GetSecond: [{ paramCount: 1, text: 'GetSecond()', descriptionStringId: 'ExpressionEditorStringId.Function_GetSecond' }],\n GetMinute: [{ paramCount: 1, text: 'GetMinute()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMinute' }],\n GetHour: [{ paramCount: 1, text: 'GetHour()', descriptionStringId: 'ExpressionEditorStringId.Function_GetHour' }],\n GetDay: [{ paramCount: 1, text: 'GetDay()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDay' }],\n GetMonth: [{ paramCount: 1, text: 'GetMonth()', descriptionStringId: 'ExpressionEditorStringId.Function_GetMonth' }],\n GetYear: [{ paramCount: 1, text: 'GetYear()', descriptionStringId: 'ExpressionEditorStringId.Function_GetYear' }],\n GetDayOfWeek: [{ paramCount: 1, text: 'GetDayOfWeek()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDayOfWeek' }],\n GetDayOfYear: [{ paramCount: 1, text: 'GetDayOfYear()', descriptionStringId: 'ExpressionEditorStringId.Function_GetDayOfYear' }],\n GetTimeOfDay: [{ paramCount: 1, text: 'GetTimeOfDay()', descriptionStringId: 'ExpressionEditorStringId.Function_GetTimeOfDay' }],\n Now: [{ paramCount: 0, text: 'Now()', descriptionStringId: 'ExpressionEditorStringId.Function_Now' }],\n UtcNow: [{ paramCount: 0, text: 'UtcNow()', descriptionStringId: 'ExpressionEditorStringId.Function_UtcNow' }],\n Today: [{ paramCount: 0, text: 'Today()', descriptionStringId: 'ExpressionEditorStringId.Function_Today' }],\n AddTimeSpan: [{ paramCount: 2, text: 'AddTimeSpan(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddTimeSpan' }],\n AddTicks: [{ paramCount: 2, text: 'AddTicks(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddTicks' }],\n AddMilliSeconds: [{ paramCount: 2, text: 'AddMilliSeconds(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMilliSeconds' }],\n AddSeconds: [{ paramCount: 2, text: 'AddSeconds(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddSeconds' }],\n AddMinutes: [{ paramCount: 2, text: 'AddMinutes(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMinutes' }],\n AddHours: [{ paramCount: 2, text: 'AddHours(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddHours' }],\n AddDays: [{ paramCount: 2, text: 'AddDays(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddDays' }],\n AddMonths: [{ paramCount: 2, text: 'AddMonths(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddMonths' }],\n AddYears: [{ paramCount: 2, text: 'AddYears(, )', descriptionStringId: 'ExpressionEditorStringId.Function_AddYears' }],\n },\n }, {\n display: 'Logical',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Logical',\n items: {\n Iif: [{ paramCount: 3, text: 'Iif(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_Iif' }],\n InRange: [{ paramCount: 3, text: 'InRange(, , )', descriptionStringId: 'ExpressionEditorStringId.Function_InRange' }],\n IsNull: [{ paramCount: 1, text: 'IsNull()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNull' }],\n IsNullOrEmpty: [{ paramCount: 1, text: 'IsNullOrEmpty()', descriptionStringId: 'ExpressionEditorStringId.Function_IsNullOrEmpty' }],\n }\n }, {\n display: 'Math',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Math',\n items: {\n Abs: [{ paramCount: 1, text: 'Abs()', descriptionStringId: 'ExpressionEditorStringId.Function_Abs' }],\n Sqr: [{ paramCount: 1, text: 'Sqr()', descriptionStringId: 'ExpressionEditorStringId.Function_Sqr' }],\n Cos: [{ paramCount: 1, text: 'Cos()', descriptionStringId: 'ExpressionEditorStringId.Function_Cos' }],\n Sin: [{ paramCount: 1, text: 'Sin()', descriptionStringId: 'ExpressionEditorStringId.Function_Sin' }],\n Atn: [{ paramCount: 1, text: 'Atn()', descriptionStringId: 'ExpressionEditorStringId.Function_Atn' }],\n Exp: [{ paramCount: 1, text: 'Exp()', descriptionStringId: 'ExpressionEditorStringId.Function_Exp' }],\n Log: [\n { paramCount: 1, text: 'Log()', descriptionStringId: 'ExpressionEditorStringId.Function_Log' },\n { paramCount: 2, text: 'Log(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Log_2' },\n ],\n Rnd: [{ paramCount: 0, text: 'Rnd()', descriptionStringId: 'ExpressionEditorStringId.Function_Rnd' }],\n Tan: [{ paramCount: 1, text: 'Tan()', descriptionStringId: 'ExpressionEditorStringId.Function_Tan' }],\n Power: [{ paramCount: 2, text: 'Power(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Power' }],\n Sign: [{ paramCount: 1, text: 'Sign()', descriptionStringId: 'ExpressionEditorStringId.Function_Sign' }],\n Round: [\n { paramCount: 1, text: 'Round()', descriptionStringId: 'ExpressionEditorStringId.Function_Round' },\n { paramCount: 2, text: 'Round(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Round_2' },\n ],\n Ceiling: [{ paramCount: 1, text: 'Ceiling()', descriptionStringId: 'ExpressionEditorStringId.Function_Ceiling' }],\n Floor: [{ paramCount: 1, text: 'Floor()', descriptionStringId: 'ExpressionEditorStringId.Function_Floor' }],\n Max: [{ paramCount: 2, text: 'Max(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Max' }],\n Min: [{ paramCount: 2, text: 'Min(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Min' }],\n Acos: [{ paramCount: 1, text: 'Acos()', descriptionStringId: 'ExpressionEditorStringId.Function_Acos' }],\n Asin: [{ paramCount: 1, text: 'Asin()', descriptionStringId: 'ExpressionEditorStringId.Function_Asin' }],\n Atn2: [{ paramCount: 2, text: 'Atn2(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Atn2' }],\n BigMul: [{ paramCount: 2, text: 'BigMul(, )', descriptionStringId: 'ExpressionEditorStringId.Function_BigMul' }],\n Cosh: [{ paramCount: 1, text: 'Cosh()', descriptionStringId: 'ExpressionEditorStringId.Function_Cosh' }],\n Log10: [{ paramCount: 1, text: 'Log10()', descriptionStringId: 'ExpressionEditorStringId.Function_Log10' }],\n Sinh: [{ paramCount: 1, text: 'Sinh()', descriptionStringId: 'ExpressionEditorStringId.Function_Sinh' }],\n Tanh: [{ paramCount: 1, text: 'Tanh()', descriptionStringId: 'ExpressionEditorStringId.Function_Tanh' }],\n ToInt: [{ paramCount: 1, text: 'ToInt()', descriptionStringId: 'ExpressionEditorStringId.Function_ToInt' }],\n ToLong: [{ paramCount: 1, text: 'ToLong()', descriptionStringId: 'ExpressionEditorStringId.Function_ToLong' }],\n ToFloat: [{ paramCount: 1, text: 'ToFloat()', descriptionStringId: 'ExpressionEditorStringId.Function_ToFloat' }],\n ToDouble: [{ paramCount: 1, text: 'ToDouble()', descriptionStringId: 'ExpressionEditorStringId.Function_ToDouble' }],\n ToDecimal: [{ paramCount: 1, text: 'ToDecimal()', descriptionStringId: 'ExpressionEditorStringId.Function_ToDecimal' }],\n }\n }, {\n display: 'String',\n localizationId: 'DataAccessStringId.ExpressionEditor_FunctionCategory_Text',\n items: {\n Trim: [{ paramCount: 1, text: 'Trim()', descriptionStringId: 'ExpressionEditorStringId.Function_Trim' }],\n Len: [{ paramCount: 1, text: 'Len()', descriptionStringId: 'ExpressionEditorStringId.Function_Len' }],\n Substring: [\n { paramCount: 3, text: \"Substring('', , )\", descriptionStringId: 'ExpressionEditorStringId.Function_Substring_3' },\n { paramCount: 2, text: \"Substring('', )\", descriptionStringId: 'ExpressionEditorStringId.Function_Substring' }\n ],\n Upper: [{ paramCount: 1, text: 'Upper()', descriptionStringId: 'ExpressionEditorStringId.Function_Upper' }],\n Lower: [{ paramCount: 1, text: 'Lower()', descriptionStringId: 'ExpressionEditorStringId.Function_Lower' }],\n Concat: [{ paramCount: Infinity, text: 'Concat(, )', descriptionStringId: 'ExpressionEditorStringId.Function_Concat' }],\n Ascii: [{ paramCount: 1, text: \"Ascii('')\", descriptionStringId: 'ExpressionEditorStringId.Function_Ascii' }],\n Char: [{ paramCount: 1, text: 'Char()', descriptionStringId: 'ExpressionEditorStringId.Function_Char' }],\n ToStr: [{ paramCount: 1, text: 'ToStr()', descriptionStringId: 'ExpressionEditorStringId.Function_ToStr' }],\n Replace: [{ paramCount: 3, text: \"Replace('','', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Replace' }],\n Reverse: [{ paramCount: 1, text: \"Reverse('')\", descriptionStringId: 'ExpressionEditorStringId.Function_Reverse' }],\n Insert: [{ paramCount: 3, text: \"Insert('', , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Insert' }],\n CharIndex: [\n { paramCount: 2, text: \"CharIndex('','')\", descriptionStringId: 'ExpressionEditorStringId.Function_CharIndex' },\n { paramCount: 3, text: \"CharIndex('','', )\", descriptionStringId: 'ExpressionEditorStringId.Function_CharIndex_3' }\n ],\n Remove: [\n { paramCount: 2, text: \"Remove('', )\", descriptionStringId: 'ExpressionEditorStringId.Function_Remove' },\n { paramCount: 3, text: \"Remove('', , )\", descriptionStringId: 'ExpressionEditorStringId.Function_Remove_3' }\n ],\n PadLeft: [\n { paramCount: 2, text: 'PadLeft(, )', descriptionStringId: 'ExpressionEditorStringId.Function_PadLeft' },\n { paramCount: 3, text: \"PadLeft(, , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_PadLeft_3' }\n ],\n PadRight: [\n { paramCount: 2, text: 'PadRight(, )', descriptionStringId: 'ExpressionEditorStringId.Function_PadRight' },\n { paramCount: 3, text: \"PadRight(, , '')\", descriptionStringId: 'ExpressionEditorStringId.Function_PadRight_3' }\n ],\n StartsWith: [{ paramCount: 2, text: \"StartsWith('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_StartsWith' }],\n EndsWith: [{ paramCount: 2, text: \"EndsWith('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_EndsWith' }],\n Contains: [{ paramCount: 0, text: \"Contains('', '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Contains' }],\n Join: [\n { paramCount: 1, text: 'Join()', descriptionStringId: 'ExpressionEditorStringId.Function_Join' },\n { paramCount: 2, text: \"Join(, '')\", descriptionStringId: 'ExpressionEditorStringId.Function_Join_2' }\n ],\n }\n }\n];\nexport var insertOrUpdateFunctions = (functions, addins) => {\n if (Array.isArray(addins)) {\n addins.forEach(addin => {\n const func = functions.find(x => x.display === addin.display);\n if (!!func) {\n func.items = Object.assign(Object.assign({}, func.items), addin.items);\n }\n else {\n functions.push(addin);\n }\n });\n return functions;\n }\n var result = [];\n functions.forEach(cat => {\n var ext = addins[cat.display];\n var items = extend({}, cat.items, ext);\n if (!Object.keys(items).length)\n return;\n result.push(ext ? {\n display: cat.display, category: cat.category, localizationId: cat.localizationId,\n items: items\n } : cat);\n });\n return result;\n};\nexport var functionDisplay = createGlobalModuleVariableFunc(defaultFunctionDisplay);\nexport var resetFunctionDisplay = () => functionDisplay(defaultFunctionDisplay);\nexport function combineFunctionDisplay(addins) {\n var functions = extend(true, [], functionDisplay());\n return insertOrUpdateFunctions(functions, addins);\n}\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_operatorNames.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var operatorNames = [\n { text: '+', image: 'addition', descriptionStringId: 'ExpressionEditorStringId.Operator_Plus' },\n { text: '-', image: 'subtraction', descriptionStringId: 'ExpressionEditorStringId.Operator_Minus' },\n { text: '*', image: 'multiplication', descriptionStringId: 'ExpressionEditorStringId.Operator_Multiply' },\n { text: '/', image: 'division', descriptionStringId: 'ExpressionEditorStringId.Operator_Divide' },\n { text: '%', image: 'modulus', hasSeparator: true, descriptionStringId: 'ExpressionEditorStringId.Operator_Modulo' },\n { text: '()', image: 'parenthesis', hasSeparator: true },\n { text: '|', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseOr' },\n { text: '&', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseAnd' },\n { text: '^', descriptionStringId: 'ExpressionEditorStringId.Operator_BitwiseXor' },\n { text: '==', image: 'equal', descriptionStringId: 'ExpressionEditorStringId.Operator_Equal' },\n { text: '!=', image: 'not_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_NotEqual' },\n { text: '<', image: 'less', descriptionStringId: 'ExpressionEditorStringId.Operator_Less' },\n { text: '<=', image: 'less_or_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_LessOrEqual' },\n { text: '>=', image: 'greater_or_equal', descriptionStringId: 'ExpressionEditorStringId.Operator_GreaterOrEqual' },\n { text: '>', hasSeparator: true, image: 'greater', descriptionStringId: 'ExpressionEditorStringId.Operator_Greater' },\n { text: 'In', descriptionStringId: 'ExpressionEditorStringId.Operator_In' },\n { text: 'Like', descriptionStringId: 'ExpressionEditorStringId.Operator_Like' },\n { text: 'Between', descriptionStringId: 'ExpressionEditorStringId.Operator_Between' },\n { text: 'And', image: 'and', descriptionStringId: 'ExpressionEditorStringId.Operator_And' },\n { text: 'Or', image: 'or', descriptionStringId: 'ExpressionEditorStringId.Operator_Or' },\n { text: 'Not', image: 'not', descriptionStringId: 'ExpressionEditorStringId.Operator_Not' }\n];\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_tools.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { searchPlaceholder } from '../../../property-grid/localization/_localization';\nimport { findMatchesInString } from '../../../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../../../serializer/utils';\nimport { createExpressionEditorCollectionToolOptions } from '../_expressioneditor';\nimport { functionDisplay } from './_functions';\nimport { operatorNames } from './_operatorNames';\nexport class Tools extends Disposable {\n constructor(onClick, parametersOptions, options, fieldListOptions) {\n super();\n this.searchPlaceholder = () => searchPlaceholder();\n this._categories = ko.observableArray([]);\n this.toolBox = [];\n this.description = ko.observable();\n this._defaultClick = onClick;\n operatorNames.filter((item) => { return !!item.descriptionStringId; }).forEach(item => this._initDescription(item));\n var functionGroups = ko.computed(() => {\n return options() && ko.unwrap(options().functions) || functionDisplay();\n }), functions = ko.computed(() => {\n return functionGroups().map((funtionGroup) => {\n return this._createFunctionsCategoryItem(funtionGroup.items, getLocalization(funtionGroup.display, funtionGroup.localizationId));\n });\n }), createDefaultCategories = () => {\n return [\n this._createFieldsCategory(fieldListOptions, parametersOptions),\n this._createConstantCategory(),\n this._createFunctionsCategory(functions),\n this._createOperatorsCategory(operatorNames)\n ];\n }, selectedContent = ko.observable(null), resetCategoriesSelection = () => {\n var firstItem = this._categories()[0].content;\n selectedContent() && selectedContent().isSelected(false);\n selectedContent(firstItem);\n firstItem.isSelected(true);\n }, updateCategories = (newOptions) => {\n this._disposeCategories();\n var defaultCategories = createDefaultCategories();\n newOptions && newOptions.customizeCategories && newOptions.customizeCategories(this, defaultCategories, onClick);\n this._categories(defaultCategories);\n resetCategoriesSelection();\n };\n this.resetCategoriesSelection = resetCategoriesSelection;\n [functionGroups, functions].forEach(x => this._disposables.push(x));\n this._disposables.push(options.subscribe((newOptions) => {\n updateCategories(newOptions);\n }));\n updateCategories(options());\n this._disposables.push(this.showDescription = ko.computed(() => { return selectedContent() && selectedContent().showDescription; }));\n this.toolBox = [\n this._generateTab(this._categories, 'dx-expressioneditor-categories', (item) => {\n if (item.data && item.data.selectedItem && item.data.selectedItem() && item.data.items.indexOf(item.data.selectedItem()) !== -1) {\n var contentItem = item.data.selectedItem();\n this.description(this._localizedExpressionEditorItem(contentItem));\n }\n else {\n this.description(undefined);\n }\n if (selectedContent() === item)\n return;\n selectedContent().isSelected(false);\n item.isSelected(true);\n selectedContent(item);\n }),\n this._generateTab(selectedContent, 'dx-expressioneditor-selectedcontent', (item) => { this.description(this._localizedExpressionEditorItem(item)); }, this._defaultClick),\n this._generateTab(this.description, 'dx-expressioneditor-description', undefined, undefined, this.showDescription)\n ];\n }\n _generateTab(content, templateName = null, click, dblclick, visible) {\n return {\n templateName,\n content,\n click,\n dblclick,\n visible: visible || true\n };\n }\n _localizedExpressionEditorItem(item) {\n return item.descriptionStringId ? getLocalization(item.text, item.descriptionStringId) : item.description ? item.description : item.text;\n }\n _initDescription(expressionEditorItem) {\n expressionEditorItem.description = this._localizedExpressionEditorItem(expressionEditorItem);\n }\n _createFieldsCategory(fields, parameters) {\n var category = {\n displayName: getLocalization('Fields', 'AnalyticsCoreStringId.ExpressionEditor_ItemInfo_Fields'),\n content: {\n showDescription: false,\n isSelected: ko.observable(false),\n data: { fields, parameters },\n name: 'dx-expressioneditor-fields'\n },\n dispose: () => void 0\n };\n return category;\n }\n _createConstantCategory() {\n var items = [\n { text: '?', descriptionStringId: 'ExpressionEditorStringId.Constant_Null' },\n { text: 'False', descriptionStringId: 'ExpressionEditorStringId.Constant_False' },\n { text: 'True', descriptionStringId: 'ExpressionEditorStringId.Constant_True' }\n ];\n return createExpressionEditorCollectionToolOptions(items, 'Constants', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Constants', true);\n }\n _createOperatorsCategory(data) {\n return createExpressionEditorCollectionToolOptions(data, 'Operators', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Operators', true);\n }\n _createFunctionsCategoryContent(textToSearch, isSelected, items) {\n return {\n showDescription: true,\n isSelected,\n data: {\n textToSearch,\n items,\n availableItems: ko.observableArray(items),\n selectedItem: ko.observable(null)\n },\n name: 'dx-expressioneditor-collection-function',\n };\n }\n _createFunctionsCategoryItem(functions, display) {\n var result = {\n display,\n isSelected: ko.observable(false),\n data: [],\n name: 'dx-expressioneditor-collection-function',\n };\n $.map(functions, (item => {\n if (item) {\n item.forEach((functionItem) => {\n this._initDescription(functionItem);\n result.data.push(functionItem);\n });\n }\n }));\n return result;\n }\n _createFunctionsCategory(items) {\n var textToSearch = ko.observable(''), disposables = [], isSelected = ko.observable(false), timeout = null, allItems = ko.computed(() => [].concat(...items().map(x => x.data))), content = this._createFunctionsCategoryContent(textToSearch, isSelected, allItems()), category = {\n displayName: getLocalization('Functions', 'DataAccessStringId.ExpressionEditor_DocumentationCategory_Functions'),\n items, allItems, isSelected, content,\n collapsed: ko.observable(true),\n updateContent: (items, isSelected) => {\n content.isSelected && content.isSelected(false);\n content.isSelected = isSelected;\n content.isSelected(true);\n content.data.items = items;\n content.data.availableItems(content.data.items.filter(x => !!findMatchesInString(x.text, textToSearch())));\n },\n templateName: 'dx-expressioneditor-category-accordion',\n dispose: () => {\n disposables.forEach(x => x.dispose());\n disposables.splice(0, disposables.length);\n }\n };\n disposables.push(allItems);\n disposables.push(textToSearch.subscribe((newVal) => {\n timeout && clearTimeout(timeout);\n timeout = setTimeout(() => {\n category.content.data.availableItems(category.content.data.items.filter(x => !!findMatchesInString(x.text, newVal)));\n }, 150);\n }));\n return category;\n }\n _disposeCategories() {\n this._categories().forEach(category => category.dispose && category.dispose());\n }\n dispose() {\n super.dispose();\n this._disposeCategories();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\expressioneditor\\tools\\_treeListControllers.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { TreeListController } from '../../treelist/_treelistController';\nexport class ExpressionEditorTreeListController extends TreeListController {\n constructor(fieldName, putSelectionHandler, selectionHandler, customFilter) {\n super();\n this.fieldName = fieldName;\n this.putSelectionHandler = putSelectionHandler;\n this.selectionHandler = selectionHandler;\n this.customFilter = customFilter;\n }\n itemsFilter(item, path) {\n return item.specifics !== 'none' && item.name !== 'ReportItems' && (!this.customFilter || this.customFilter(path));\n }\n select(value) {\n if (this.selectionHandler)\n this.selectionHandler(value);\n else\n super.select(value);\n }\n getActions(item) {\n return [{ clickAction: (element) => this.putSelectionHandler(item, $.fn.constructor(element)) }];\n }\n canSelect(value) {\n return true;\n }\n}\nexport class ExpressionEditorParametersTreeListController extends TreeListController {\n constructor(customFilter, putSelectionHandler, selectionHandler) {\n super();\n this.customFilter = customFilter;\n this.putSelectionHandler = putSelectionHandler;\n this.selectionHandler = selectionHandler;\n }\n itemsFilter(item) {\n return item.specifics !== 'none' && (!this.customFilter || this.customFilter(item));\n }\n select(value) {\n this.selectionHandler(value);\n }\n getActions(item) {\n return [{\n clickAction: (element) => {\n if (item && !item.hasItems)\n this.putSelectionHandler(item.path, $.fn.constructor(element));\n }\n }];\n }\n canSelect(value) {\n return true;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\filtereditoroptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { DefaultFilterEditorHelper } from './helpers/helper';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nexport class FilterStringOptions {\n constructor(filterString, dataMember, disabled, title) {\n this.popupContainer = '.dx-designer-viewport';\n this.itemsProvider = null;\n this.resetValue = () => {\n this.value('');\n };\n this.title = ko.pureComputed({\n read: () => {\n var title = this._title();\n return getLocalization(title.text, title.localizationId);\n },\n write: (value) => {\n this._title({ text: value });\n }\n });\n this.value = filterString;\n this.path = dataMember || ko.observable('');\n this.disabled = disabled || ko.observable(false);\n var filterEditorHelperType = DefaultFilterEditorHelper();\n this.helper = new filterEditorHelperType();\n this._title = ko.observable(title || { text: getLocalization('Filter Editor', 'DataAccessUIStringId.FiltersView') });\n }\n}\nexport class FilterStringPlainOptions extends FilterStringOptions {\n constructor() {\n super(...arguments);\n this.realTimeUpdate = true;\n this.advancedModePosition = 'TopRight';\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_addon.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { searchPlaceholder } from '../../../property-grid/localization/_localization';\nexport class FilterEditorAddOn extends Disposable {\n constructor(criteria, popupService, action, propertyName, templateName) {\n super();\n this._filterPlaceHolder = searchPlaceholder();\n this.showPopup = (_, element) => {\n this.dispose();\n this._disposables.splice(0);\n this._popupService.title('');\n this.target.isSelected(true);\n this._updateActions(this.target);\n this._popupService.target(element);\n setTimeout(() => {\n this._popupService.visible(true);\n }, 10);\n };\n this.popupContentTemplate = 'dx-filtereditor-popup-common';\n this.filterString = ko.observable('');\n this.isFiltered = ko.observable(false);\n this.target = criteria;\n this._action = action;\n this.propertyName = propertyName;\n this._popupService = popupService;\n this.popupContentTemplate = templateName || this.popupContentTemplate;\n }\n _updateActions(viewModel) {\n this._popupService.data(null);\n if (viewModel) {\n this._disposables.push(this._popupService.visible.subscribe((newVal) => {\n this.target.isSelected(newVal);\n this.filterString('');\n }));\n this._popupService['viewModel'] = viewModel;\n var data = viewModel[this.propertyName];\n this.isFiltered(false);\n if (data && data.length > 10) {\n this.isFiltered(true);\n this._disposables.push(data = ko.pureComputed(() => {\n if (!this.filterString())\n return viewModel[this.propertyName];\n return viewModel[this.propertyName].filter(x => (x.displayText || x.name).toLocaleLowerCase().indexOf(this.filterString().toLocaleLowerCase()) != -1);\n }));\n }\n this._popupService.data({\n data: data,\n template: this.popupContentTemplate,\n click: (data) => {\n viewModel[this._action](data);\n this._popupService.visible(false);\n },\n isFiltered: this.isFiltered,\n filterString: this.filterString,\n searchPlaceholder: () => searchPlaceholder()\n });\n }\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_codeCompletor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CodeCompletor, createFunctionCompletion } from '../../common/_codeCompletor';\nimport { FilterEditorHelper } from './helper';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class FilterEditorCodeCompletor extends CodeCompletor {\n constructor(options) {\n super(options);\n var helper = new FilterEditorHelper();\n var functions = [];\n var aggregate = [];\n var operators = [];\n var groups = Object.keys(helper.filterEditorOperators);\n groups.forEach((groupName) => {\n helper.filterEditorOperators[groupName].forEach((operator) => {\n if (operator.insertVal) {\n var name = operator.name, insertVal = operator.insertVal, paramCount = operator.paramCount;\n if (operator.type === FunctionOperatorType && functions.filter(x => x.name === name).length === 0) {\n functions.push({ name: name, insertVal: insertVal });\n }\n else if (operator.type === AggregateOperand && aggregate.filter(x => x.name === name).length === 0) {\n aggregate.push({ name: name, insertVal: insertVal });\n }\n else if (operator.type !== AggregateOperand && operator.type !== FunctionOperatorType && operators.filter(x => x.name === name).length === 0) {\n operators.push({ name: name, insertVal: insertVal, paramCount: paramCount });\n }\n }\n });\n });\n this.filterEditorAvailable = { operators, aggregate, functions };\n }\n getFunctionsCompletions() {\n var functions = [];\n this.filterEditorAvailable.functions.forEach(funcItem => {\n functions.push(createFunctionCompletion({ text: funcItem.name, paramCount: funcItem.insertVal.split(',').length }, funcItem.insertVal, funcItem.insertVal));\n });\n return functions;\n }\n getAggregateCompletions() {\n var functions = [];\n this.filterEditorAvailable.aggregate.forEach(funcItem => {\n functions.push(createFunctionCompletion({ text: funcItem.name, paramCount: 0 }, funcItem.insertVal, funcItem.insertVal));\n });\n return functions;\n }\n getOperatorCompletions(prefix) {\n var operators = [];\n this.filterEditorAvailable.operators.forEach(operator => {\n operators.push((operator.insertVal.match(new RegExp('\\\\([^\\\\(\\\\)]*\\\\)', 'g'))) ?\n createFunctionCompletion({ text: operator.name, paramCount: operator.paramCount || operator.insertVal.split(',').length }, operator.insertVal, operator.insertVal) :\n { caption: operator.insertVal, snippet: prefix + operator.insertVal, meta: 'operator' });\n });\n return operators;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_helper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nexport function initDisplayText(object) {\n object.displayText = getLocalization(object.name, object.localizationId);\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_serializer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { GroupOperator } from '../../criteria/operators/group';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { trimBrackets } from '../../common/_codeCompletor';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { validateGuid } from '../../../property-grid/widgets/internal/_internal';\nimport { serializeDate } from '../../../serializer/utils';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { BetweenOperator } from '../../criteria/operators/between';\nimport { InOperator } from '../../criteria/operators/in';\nimport { BinaryOperator } from '../../criteria/operators/binary';\nimport { UnaryOperator } from '../../criteria/operators/unary';\nimport { FunctionOperator } from '../../criteria/operators/function';\nimport { operatorTokens as iOperatorTokens } from '../../criteria/utils/operatorTokens';\nimport { ConstantValue } from '../../criteria/operators/constant';\nimport { CriteriaOperatorStateMachine } from '../../criteria/utils/criteriaOperatorStateMachine';\nimport { BinaryOperatorType } from '../../criteria/operators/options/binary';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nexport class FilterEditorSerializer {\n constructor(operatorTokens = iOperatorTokens, custom) {\n this.operatorTokens = operatorTokens;\n this.custom = custom;\n }\n serializeGroupOperand(groupOperator, reverse) {\n var result = groupOperator.operands.map((operand) => {\n if (operand instanceof GroupOperator) {\n return '(' + this.serialize(operand) + ')';\n }\n else {\n return this.serialize(operand);\n }\n }).filter((serialize) => { return serialize !== '' && serialize !== '()'; }).join(' ' + (this.operatorTokens[groupOperator.displayType] || groupOperator.displayType) + ' ');\n return reverse && result ? 'Not(' + result + ')' : result;\n }\n serializeAggregateOperand(aggregateOperand, reverse) {\n var operatorTypeSuffix = aggregateOperand.operatorType === 'Exists' ? '' : '.' + aggregateOperand.operatorType;\n var condition = aggregateOperand.condition ? this.serialize(aggregateOperand.condition) : '';\n var propertyResult = this.serialize(aggregateOperand.property);\n var conditionResult = '[' + condition + ']';\n var aggregateSuffix = aggregateOperand.operatorType !== 'Exists' ?\n '(' + (aggregateOperand.aggregatedExpression && this.serialize(aggregateOperand.aggregatedExpression) || '') + ')' : '';\n var result = propertyResult;\n if (!condition && !aggregateSuffix || condition) {\n result += conditionResult;\n }\n return result + operatorTypeSuffix + aggregateSuffix;\n }\n serializeOperandProperty(operandProperty) {\n if (!operandProperty.propertyName) {\n return operandProperty.circumflex ? '^' : '[]';\n }\n var value = operandProperty.displayType;\n if (value.length - trimBrackets(value).length === 2) {\n value = '[' + trimBrackets(value).replace(/\\\\/g, '\\\\\\\\').replace(/\\]/g, '\\\\]') + ']';\n }\n return operandProperty.circumflex ? '^.' + value : value;\n }\n serializeOperandValue(operandValue) {\n var result = operandValue.value;\n if (result !== null && result !== undefined && ($.isNumeric(result) || String(result).toLowerCase() === 'true' || String(result).toLowerCase() === 'false')) {\n if (operandValue.specifics === 'string')\n return \"'\" + result + \"'\";\n if (operandValue.specifics === 'guid' && validateGuid(result))\n return '{' + result + '}';\n return result;\n }\n else if (result && operandValue.value instanceof Date) {\n return '#' + serializeDate(result, '-') + '#';\n }\n else if (operandValue.specifics === 'integer' || operandValue.specifics === 'integer') {\n return result || '?';\n }\n else if (operandValue.specifics === 'guid' && validateGuid(result)) {\n return '{' + result + '}';\n }\n else if (operandValue.specifics === 'string') {\n result = result.replace(/'/g, \"''\");\n return result ? \"'\" + result + \"'\" : '?';\n }\n return result ? result : '?';\n }\n serializeOperandParameter(operandParameter) {\n return operandParameter.displayType;\n }\n serializeBetweenOperator(betweenOperator, reverse) {\n var result = this.serialize(betweenOperator.property) + ' ' + betweenOperator.displayType +\n '(' + this.serialize(betweenOperator.begin) + ', ' + this.serialize(betweenOperator.end) + ')';\n return reverse ? 'Not ' + result : result;\n }\n serializeInOperator(inOperator, reverse) {\n var result = this.serialize(inOperator.criteriaOperator) + ' ' + inOperator.displayType + '(' +\n inOperator.operands.map((operand) => { return this.serialize(operand); }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n }\n serializeBinaryOperator(binaryOperator, reverse) {\n if (binaryOperator.operatorType === BinaryOperatorType.Like) {\n var separator = reverse ? ' Not ' : ' ';\n return this.serialize(binaryOperator.leftOperand) + separator + (this.operatorTokens[binaryOperator.displayType] || binaryOperator.displayType) + ' ' + this.serialize(binaryOperator.rightOperand);\n }\n return (reverse ? 'Not ' : '') + this.serialize(binaryOperator.leftOperand) + ' ' + (this.operatorTokens[binaryOperator.displayType] || binaryOperator.displayType) + ' ' + this.serialize(binaryOperator.rightOperand);\n }\n serializeUnaryOperator(unaryOperator, reverse) {\n if (unaryOperator.operatorType === UnaryOperatorType.IsNull) {\n var separator = reverse ? ' Not ' : ' ';\n return this.serialize(unaryOperator.operand) + ' Is' + separator + 'Null';\n }\n else if (unaryOperator.operatorType === UnaryOperatorType.Not) {\n return this.serialize(unaryOperator.operand, true);\n }\n var result = (this.operatorTokens[unaryOperator.displayType] || unaryOperator.displayType) + this.serialize(unaryOperator.operand);\n return reverse ? 'Not ' + result : result;\n }\n serializeFunctionOperator(functionOperator, reverse) {\n var result = (this.operatorTokens[functionOperator.displayType] || functionOperator.displayType) + '(' + functionOperator.operands.map((operand) => {\n return this.serialize(operand);\n }).join(', ') + ')';\n return reverse ? 'Not ' + result : result;\n }\n serialize(criteriaOperator, reverse = false) {\n if (criteriaOperator instanceof AggregateOperand) {\n return this.serializeAggregateOperand(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof BetweenOperator) {\n return this.serializeBetweenOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof BinaryOperator) {\n return this.serializeBinaryOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof ConstantValue) {\n return this.serializeOperandValue(criteriaOperator);\n }\n if (criteriaOperator instanceof FunctionOperator) {\n return this.serializeFunctionOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof GroupOperator) {\n return this.serializeGroupOperand(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof InOperator) {\n return this.serializeInOperator(criteriaOperator, reverse);\n }\n if (criteriaOperator instanceof OperandParameter) {\n return this.serializeOperandParameter(criteriaOperator);\n }\n if (criteriaOperator instanceof OperandProperty) {\n return this.serializeOperandProperty(criteriaOperator);\n }\n if (criteriaOperator instanceof OperandValue) {\n return this.serializeOperandValue(criteriaOperator);\n }\n if (criteriaOperator instanceof UnaryOperator) {\n return this.serializeUnaryOperator(criteriaOperator, reverse);\n }\n if (this.custom) {\n return this.custom(criteriaOperator, reverse);\n }\n throw Error('Undefined type criteria operator');\n }\n deserialize(stringCriteria) {\n return this.deserializeOperand(CriteriaOperatorStateMachine.parse(stringCriteria));\n }\n deserializeOperand(operand) {\n if (operand instanceof GroupOperator) {\n return operand;\n }\n else if (operand instanceof UnaryOperator && operand.operatorType === UnaryOperatorType.Not) {\n var child = operand['operand'];\n if (child instanceof GroupOperator || child instanceof FunctionOperator || child instanceof BetweenOperator || child instanceof InOperator) {\n return operand;\n }\n else if (child instanceof UnaryOperator && operand.operatorType === UnaryOperatorType.Not\n && !(child.operand instanceof OperandProperty)) {\n return this.deserializeOperand(child.operand);\n }\n return new UnaryOperator(UnaryOperatorType.Not, new GroupOperator(GroupOperatorType.And, child ? [child] : []));\n }\n return new GroupOperator(GroupOperatorType.And, operand ? [operand] : []);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_treelistController.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { TreeListController } from '../../treelist/_treelistController';\nexport class FilterEditorTreeListController extends TreeListController {\n constructor(selectedItem) {\n super();\n this.selectedItem = selectedItem;\n }\n itemsFilter(item) {\n return true;\n }\n hasItems(item) {\n return item.specifics !== 'none' && (item.specifics !== 'List' && item.isList === true);\n }\n canSelect(value) {\n return !value.data.isList || (value.data.isList === true && value.data.specifics === 'List');\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem(value.data);\n value.isSelected(true);\n }\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\_validator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { ConstantValue } from '../../criteria/operators/constant';\nimport { UnaryOperator } from '../../criteria/operators/unary';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { GroupOperator } from '../../criteria/operators/group';\nexport var CriteriaSurfaceValidatorState;\n(function (CriteriaSurfaceValidatorState) {\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Left\"] = 0] = \"Left\";\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Right\"] = 1] = \"Right\";\n CriteriaSurfaceValidatorState[CriteriaSurfaceValidatorState[\"Unary\"] = 2] = \"Unary\";\n})(CriteriaSurfaceValidatorState || (CriteriaSurfaceValidatorState = {}));\nexport class CriteriaSurfaceValidator {\n customValidate(operator, from) {\n return false;\n }\n checkLeftPart(leftPart) {\n return leftPart instanceof OperandProperty || this.customValidate(leftPart, CriteriaSurfaceValidatorState.Left);\n }\n _checkRightPart(criteriaOperator) {\n return criteriaOperator instanceof OperandProperty\n || criteriaOperator instanceof OperandParameter\n || criteriaOperator instanceof OperandValue\n || criteriaOperator instanceof ConstantValue\n || (criteriaOperator instanceof UnaryOperator && this._checkRightPart(criteriaOperator.operand))\n || this.customValidate(criteriaOperator, CriteriaSurfaceValidatorState.Right);\n }\n checkRightPart(rigthPart) {\n if (Array.isArray(rigthPart)) {\n for (var i = 0; i < rigthPart.length; i++) {\n if (!this._checkRightPart(rigthPart[i])) {\n return false;\n }\n }\n return true;\n }\n else {\n return this._checkRightPart(rigthPart);\n }\n }\n aggregateIsValid(criteriaOperator) {\n return this.checkLeftPart(criteriaOperator.leftPart)\n && this.validateModel(criteriaOperator.condition)\n && (!!criteriaOperator.aggregatedExpression ?\n (criteriaOperator.aggregatedExpression instanceof OperandProperty ||\n this.validateModel(criteriaOperator.aggregatedExpression))\n : true);\n }\n commonOperandValid(criteriaOperator) {\n return criteriaOperator.leftPart instanceof AggregateOperand ?\n this.validateModel(criteriaOperator.leftPart) : this.checkLeftPart(criteriaOperator.leftPart)\n && this.checkRightPart(criteriaOperator.rightPart);\n }\n groupIsValid(criteriaOperator) {\n for (var i = 0; i < criteriaOperator.operands.length; i++) {\n if (!this.validateModel(criteriaOperator.operands[i])) {\n return false;\n }\n }\n return true;\n }\n unaryIsValid(criteriaOperator) {\n return criteriaOperator.operand instanceof OperandProperty || this.validateModel(criteriaOperator.operand) || this.customValidate(criteriaOperator.operand, CriteriaSurfaceValidatorState.Unary);\n }\n validateModel(criteriaOperator) {\n if (criteriaOperator instanceof AggregateOperand) {\n return this.aggregateIsValid(criteriaOperator);\n }\n else if (criteriaOperator instanceof GroupOperator) {\n return this.groupIsValid(criteriaOperator);\n }\n else if (criteriaOperator instanceof UnaryOperator) {\n return this.unaryIsValid(criteriaOperator);\n }\n else {\n return this.commonOperandValid(criteriaOperator);\n }\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\helpers\\helper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { createGlobalModuleVariableFunc } from '../../../serializer/_internal';\nimport { AggregateOperand } from '../../criteria/operators/aggregate';\nimport { BetweenOperator } from '../../criteria/operators/between';\nimport { InOperator } from '../../criteria/operators/in';\nimport { BinaryOperatorType } from '../../criteria/operators/options/binary';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { AggregateOperandSurface } from '../operators/aggregateOperandSurface';\nimport { BetweenOperandSurface } from '../operators/betweenOperandSurface';\nimport { BinaryOperandSurface } from '../operators/binaryOperandSurface';\nimport { CriteriaOperatorSurface } from '../operators/criteriaOperatorSurface';\nimport { FunctionOperandSurface } from '../operators/functionOperandSurface';\nimport { GroupOperandSurface } from '../operators/groupOperandSurface';\nimport { InOperandSurface } from '../operators/inOperandSurface';\nimport { OperandParameterSurface } from '../operators/operandParameterSurface';\nimport { OperandPropertySurface } from '../operators/operandPropertySurface';\nimport { OperandValueSurface } from '../operators/operandValueSurface';\nimport { UnaryOperandSurface } from '../operators/unaryOperandSurface';\nimport { FilterEditorAddOn } from './_addon';\nimport { initDisplayText } from './_helper';\nimport { FilterEditorSerializer } from './_serializer';\nimport { FilterEditorTreeListController } from './_treelistController';\nimport { CriteriaSurfaceValidator } from './_validator';\nexport class FilterEditorHelper {\n constructor(serializer) {\n this.rtl = false;\n this.parameters = ko.observable([]);\n this.canSelectLists = true;\n this.canCreateParameters = false;\n this.canChoiceParameters = true;\n this.canChoiceProperty = true;\n this.criteriaTreeValidator = new CriteriaSurfaceValidator();\n this.filterEditorOperators = {\n _common: [\n { name: 'Equals', _type: 'binary', insertVal: '==', value: BinaryOperatorType.Equal, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseEquals' },\n { name: 'Does not equal', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.Equal, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseDoesNotEqual' },\n { name: 'Does not equal', _type: 'binary', insertVal: '!=', value: BinaryOperatorType.NotEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseDoesNotEqual' },\n { name: 'Equals', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.NotEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseEquals' },\n { name: 'Is greater than', _type: 'binary', insertVal: '>', value: BinaryOperatorType.Greater, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is less than or equal to', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.Greater, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is greater than or equal to', _type: 'binary', insertVal: '>=', value: BinaryOperatorType.GreaterOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreaterOrEqual' },\n { name: 'Is less than', _type: 'binary', hidden: true, reverse: true, value: BinaryOperatorType.GreaterOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLess' },\n { name: 'Is less than', _type: 'binary', insertVal: '<', value: BinaryOperatorType.Less, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLess' },\n { name: 'Is greater than or equal to', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.Less, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreaterOrEqual' },\n { name: 'Is less than or equal to', _type: 'binary', insertVal: '<=', value: BinaryOperatorType.LessOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLessOrEqual' },\n { name: 'Is greater than', _type: 'binary', reverse: true, hidden: true, value: BinaryOperatorType.LessOrEqual, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseGreater' },\n { name: 'Is between', _type: 'between', value: 'Between', insertVal: 'Between(, )', paramCount: 1, type: BetweenOperator, localizationId: 'StringId.FilterClauseBetween' },\n { name: 'Is not between', _type: 'between', value: 'Between', insertVal: 'Between(, )', paramCount: 1, type: BetweenOperator, reverse: true, localizationId: 'StringId.FilterClauseNotBetween' }\n ],\n string: [],\n guid: [],\n integer: [],\n float: [],\n date: [],\n list: [],\n group: [],\n bool: []\n };\n this.onChange = () => { };\n this.onEditorFocusOut = (criteria) => { };\n this.onSave = (criteria) => { };\n this.onClosing = () => { };\n this.handlers = {\n create: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'create', 'createItems'),\n templateName: 'dx-filtereditor-create'\n };\n },\n change: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'change', 'items'),\n templateName: 'dx-filtereditor-change'\n };\n },\n changeProperty: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeProperty', 'items', 'dx-filtereditor-popup-treelist'),\n templateName: 'dx-filtereditor-changeProperty'\n };\n },\n changeValueType: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeValueType', 'changeTypeItems'),\n templateName: 'dx-filtereditor-changeValueType'\n };\n },\n changeParameter: (criteria, popupService) => {\n return {\n data: new FilterEditorAddOn(criteria, popupService, 'changeParameter', 'items'),\n templateName: 'dx-filtereditor-changeParameter'\n };\n }\n };\n this.mapper = {\n aggregate: AggregateOperandSurface,\n property: OperandPropertySurface,\n parameter: OperandParameterSurface,\n value: OperandValueSurface,\n group: GroupOperandSurface,\n between: BetweenOperandSurface,\n binary: BinaryOperandSurface,\n function: FunctionOperandSurface,\n in: InOperandSurface,\n unary: UnaryOperandSurface,\n default: CriteriaOperatorSurface\n };\n this.serializer = serializer || new FilterEditorSerializer();\n this.filterEditorOperators.string = [].concat(this.filterEditorOperators._common, [\n { name: 'Contains', _type: 'function', insertVal: 'Contains(, )', value: FunctionOperatorType.Contains, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseContains' },\n { name: 'Does not contain', _type: 'function', value: FunctionOperatorType.Contains, type: FunctionOperatorType, reverse: true, localizationId: 'StringId.FilterClauseDoesNotContain' },\n { name: 'Begins with', _type: 'function', insertVal: 'StartsWith(, )', value: FunctionOperatorType.StartsWith, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseBeginsWith' },\n { name: 'Ends with', _type: 'function', insertVal: 'StartsWith(, )', value: FunctionOperatorType.EndsWith, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseEndsWith' },\n { name: 'Is like', _type: 'binary', insertVal: 'Like', value: BinaryOperatorType.Like, type: BinaryOperatorType, localizationId: 'StringId.FilterClauseLike' },\n { name: 'Is not like', _type: 'binary', insertVal: 'Not Like', value: BinaryOperatorType.Like, type: BinaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseNotLike' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', paramCount: 1, type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n { name: 'Is blank', _type: 'function', insertVal: 'IsNullOrEmpty()', emptyRightPart: true, value: FunctionOperatorType.IsNullOrEmpty, type: FunctionOperatorType, localizationId: 'StringId.FilterClauseIsNullOrEmpty' },\n { name: 'Is not blank', _type: 'function', insertVal: 'Not IsNullOrEmpty()', emptyRightPart: true, value: FunctionOperatorType.IsNullOrEmpty, type: FunctionOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNullOrEmpty' }\n ]);\n this.filterEditorOperators.guid = this.filterEditorOperators.string;\n this.filterEditorOperators.integer = [].concat(this.filterEditorOperators._common, [\n { name: 'Is null', _type: 'unary', insertVal: 'Is Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, localizationId: 'StringId.FilterClauseIsNull' },\n { name: 'Is not null', _type: 'unary', insertVal: 'Is Not Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNull' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', paramCount: 1, type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n ]);\n this.filterEditorOperators.float = this.filterEditorOperators.integer;\n this.filterEditorOperators.bool = this.filterEditorOperators.integer;\n this.filterEditorOperators.date = [].concat(this.filterEditorOperators._common, [\n { name: 'Is null', _type: 'unary', insertVal: 'Is Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, localizationId: 'StringId.FilterClauseIsNull' },\n { name: 'Is not null', _type: 'unary', insertVal: 'Is Not Null', value: UnaryOperatorType.IsNull, type: UnaryOperatorType, reverse: true, localizationId: 'StringId.FilterClauseIsNotNull' },\n { name: 'Is any of', _type: 'in', value: 'In', insertVal: 'In()', type: InOperator, localizationId: 'StringId.FilterClauseAnyOf' },\n { name: 'Is none of', _type: 'in', value: 'In', type: InOperator, reverse: true, localizationId: 'StringId.FilterClauseNoneOf' },\n { name: 'Is beyond this year', _type: 'function', insertVal: 'IsOutlookIntervalBeyondThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalBeyondThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalBeyondThisYear' },\n { name: 'Is next week', _type: 'function', insertVal: 'IsOutlookIntervalNextWeek()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalNextWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalNextWeek' },\n { name: 'Is tomorrow', _type: 'function', insertVal: 'IsOutlookIntervalTomorrow()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalTomorrow, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalTomorrow' },\n { name: 'Is today', _type: 'function', insertVal: 'IsOutlookIntervalToday()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalToday, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalToday' },\n { name: 'Is yesterday', _type: 'function', insertVal: 'IsOutlookIntervalYesterday()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalYesterday, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalYesterday' },\n { name: 'Is last week', _type: 'function', insertVal: 'IsOutlookIntervalLastWeek()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalLastWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalLastWeek' },\n { name: 'Is prior this year', _type: 'function', insertVal: 'IsOutlookIntervalPriorThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsOutlookIntervalPriorThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOutlookIntervalPriorThisYear' },\n { name: 'Is same day', _type: 'function', insertVal: 'IsSameDay(, )', value: FunctionOperatorType.IsSameDay, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsSameDay' },\n { name: 'Is this month', _type: 'function', insertVal: 'IsThisMonth()', emptyRightPart: true, value: FunctionOperatorType.IsThisMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisMonth' },\n { name: 'Is this week', _type: 'function', insertVal: 'IsThisWeek()', emptyRightPart: true, value: FunctionOperatorType.IsThisWeek, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisWeek' },\n { name: 'Is this year', _type: 'function', insertVal: 'IsThisYear()', emptyRightPart: true, value: FunctionOperatorType.IsThisYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsThisYear' },\n { name: 'Is next month', _type: 'function', insertVal: 'IsNextMonth', emptyRightPart: true, value: FunctionOperatorType.IsNextMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNextMonth' },\n { name: 'Is next year', _type: 'function', insertVal: 'IsNextYear()', emptyRightPart: true, value: FunctionOperatorType.IsNextYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNextYear' },\n { name: 'Is last month', _type: 'function', insertVal: 'IsLastMonth()', emptyRightPart: true, value: FunctionOperatorType.IsLastMonth, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsLastMonth' },\n { name: 'Is last year', _type: 'function', insertVal: 'IsLastYear()', emptyRightPart: true, value: FunctionOperatorType.IsLastYear, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsLastYear' },\n { name: 'Is the year-to-date period', _type: 'function', insertVal: 'IsYearToDate()', emptyRightPart: true, value: FunctionOperatorType.IsYearToDate, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsYearToDate' },\n { name: 'Is January', _type: 'function', insertVal: 'IsJanuary()', emptyRightPart: true, value: FunctionOperatorType.IsJanuary, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJanuary' },\n { name: 'Is February', _type: 'function', insertVal: 'IsFebruary()', emptyRightPart: true, value: FunctionOperatorType.IsFebruary, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsFebruary' },\n { name: 'Is March', _type: 'function', insertVal: 'IsMarch()', emptyRightPart: true, value: FunctionOperatorType.IsMarch, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsMarch' },\n { name: 'Is April', _type: 'function', insertVal: 'IsApril()', emptyRightPart: true, value: FunctionOperatorType.IsApril, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsApril' },\n { name: 'Is May', _type: 'function', insertVal: 'IsMay()', emptyRightPart: true, value: FunctionOperatorType.IsMay, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsMay' },\n { name: 'Is June', _type: 'function', insertVal: 'IsJune()', emptyRightPart: true, value: FunctionOperatorType.IsJune, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJune' },\n { name: 'Is July', _type: 'function', insertVal: 'IsJuly()', emptyRightPart: true, value: FunctionOperatorType.IsJuly, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsJuly' },\n { name: 'Is August', _type: 'function', insertVal: 'IsAugust()', emptyRightPart: true, value: FunctionOperatorType.IsAugust, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsAugust' },\n { name: 'Is September', _type: 'function', insertVal: 'IsSeptember()', emptyRightPart: true, value: FunctionOperatorType.IsSeptember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsSeptember' },\n { name: 'Is October', _type: 'function', insertVal: 'IsOctober()', emptyRightPart: true, value: FunctionOperatorType.IsOctober, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsOctober' },\n { name: 'Is November', _type: 'function', insertVal: 'IsNovember()', emptyRightPart: true, value: FunctionOperatorType.IsNovember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsNovember' },\n { name: 'Is December', _type: 'function', insertVal: 'IsDecember()', emptyRightPart: true, value: FunctionOperatorType.IsDecember, type: FunctionOperatorType, localizationId: 'StringId.FilterCriteriaToStringFunctionIsDecember' },\n ]);\n this.filterEditorOperators.list = [\n { name: 'Exists', _type: 'aggregate', value: 'Exists', insertVal: 'Exists()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateExists' },\n { name: 'Count', _type: 'aggregate', value: 'Count', insertVal: 'Count()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateCount' },\n { name: 'Max', _type: 'aggregate', value: 'Max', insertVal: 'Max()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateMax' },\n { name: 'Min', _type: 'aggregate', value: 'Min', insertVal: 'Min()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateMin' },\n { name: 'Sum', _type: 'aggregate', value: 'Sum', insertVal: 'Sum()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateSum' },\n { name: 'Avg', _type: 'aggregate', value: 'Avg', insertVal: 'Avg()', type: AggregateOperand, localizationId: 'StringId.FilterAggregateAvg' }\n ];\n this.filterEditorOperators.group = [\n { name: 'And', _type: 'group', insertVal: 'And', value: GroupOperatorType.And, type: GroupOperatorType, localizationId: 'StringId.FilterGroupAnd' },\n { name: 'Or', _type: 'group', insertVal: 'Or', value: GroupOperatorType.Or, type: GroupOperatorType, localizationId: 'StringId.FilterGroupOr' },\n { name: 'Not And', _type: 'group', value: GroupOperatorType.And, reverse: true, type: GroupOperatorType, localizationId: 'StringId.FilterGroupNotAnd' },\n { name: 'Not Or', _type: 'group', value: GroupOperatorType.Or, reverse: true, type: GroupOperatorType, localizationId: 'StringId.FilterGroupNotOr' },\n ];\n this._initDisplayText();\n }\n get _allFilterEditorOperators() {\n var operators = [];\n Object.keys(this.filterEditorOperators).forEach(propertyName => {\n operators.push(...this.filterEditorOperators[propertyName]);\n });\n return operators;\n }\n _getFilterEditorOperator(item, items, reverse) {\n return items.filter(x => x.value === item.operatorType && x.type === item.enumType && x.reverse === reverse)[0];\n }\n _initDisplayText() {\n Object.keys(this.filterEditorOperators).forEach(specific => {\n this.filterEditorOperators[specific].forEach(initDisplayText);\n });\n }\n registrateOperator(specific, targetEnum, value, name, opreatorType = 'function', reverse = false, localizationId) {\n if (this.filterEditorOperators[specific]) {\n if (!targetEnum[value]) {\n var maxNumber = 0;\n var index = 0;\n $.each(targetEnum, (name, _) => {\n index = parseInt(name);\n if (!isNaN(index) && maxNumber < index) {\n maxNumber = index;\n }\n });\n maxNumber++;\n targetEnum[maxNumber] = value;\n targetEnum[value] = maxNumber;\n }\n var newOperator = { name: name, value: targetEnum[value], type: targetEnum, _type: opreatorType, reverse: reverse, displayText: getLocalization(name, localizationId) };\n this.filterEditorOperators[specific].push(newOperator);\n }\n }\n generateTreelistOptions(fieldListProvider, path) {\n var treeListOptions = ko.observable(null);\n var selected = ko.observable(null);\n return {\n subscription: ko.computed(() => {\n treeListOptions({\n itemsProvider: ko.unwrap(fieldListProvider),\n selectedPath: ko.observable(''),\n selected: selected,\n path: ko.unwrap(path),\n treeListController: new FilterEditorTreeListController(selected),\n rtl: this.rtl\n });\n }),\n options: treeListOptions\n };\n }\n}\nexport var DefaultFilterEditorHelper = createGlobalModuleVariableFunc(FilterEditorHelper);\nexport function _setDefaultFilterEditorHelper(helperType) {\n DefaultFilterEditorHelper(helperType);\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\aggregateOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nexport class AggregateOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-aggregate';\n this.property = ko.observable(null);\n this.aggregatedExpression = ko.observable(null);\n this.condition = ko.observable(null);\n this.property(this._createLeftPartProperty(operator.property));\n var childPath = ko.computed(() => {\n return this.path() + '.' + this.property().propertyName();\n });\n this._disposables.push(childPath);\n if (operator.aggregatedExpression) {\n this.aggregatedExpression(this.createChildSurface(operator.aggregatedExpression, childPath));\n this.templateName = 'dx-filtereditor-aggregate-common';\n }\n if (operator.operatorType === 'Count') {\n this.templateName = 'dx-filtereditor-aggregate-common';\n }\n var surface = this.createChildSurface(operator.condition, childPath);\n surface.canRemove = false;\n if (surface instanceof UnaryOperandSurface) {\n surface.operand().canRemove = false;\n }\n this.condition(surface);\n this.change = (type, surface) => {\n if (surface) {\n var newModel = this.model.change(type, surface.model);\n var condition = this.createChildSurface(newModel, childPath);\n condition.canRemove = false;\n if (condition instanceof UnaryOperandSurface) {\n condition.operand().canRemove = false;\n }\n this.condition(condition);\n }\n else {\n if (this.operatorType() === 'Exists' || this.operatorType() === 'Count') {\n this.parent.change(type, this);\n }\n else {\n if (type && (type.value === 'Exists' || type.value === 'Count')) {\n this.parent.change(type, this);\n }\n else {\n super.change(type, surface);\n }\n }\n }\n this.helper.onChange();\n };\n }\n get leftPart() {\n return this.property && this.property();\n }\n get rightPart() {\n return this.aggregatedExpression();\n }\n dispose() {\n this.property().dispose();\n this.condition().dispose();\n this.aggregatedExpression() && this.aggregatedExpression().dispose();\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\betweenOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nexport class BetweenOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.property = ko.observable(null);\n this.end = ko.observable(null);\n this.begin = ko.observable(null);\n this.contentTemplateName = 'dx-filtereditor-between';\n this.property(this._createLeftPartProperty(operator.property));\n this.begin(this.createChildSurface(operator.begin));\n this.end(this.createChildSurface(operator.end));\n }\n get leftPart() {\n return this.property && this.property();\n }\n get rightPart() {\n return [this.begin(), this.end()];\n }\n dispose() {\n this.property().dispose();\n this.begin().dispose();\n this.end().dispose();\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\binaryOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nexport class BinaryOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-binary';\n this.leftOperand = ko.observable(null);\n this.rightOperand = ko.observable(null);\n this.leftOperand(this._createLeftPartProperty(operator.leftOperand));\n this.rightOperand(this.createChildSurface(operator.rightOperand));\n }\n get leftPart() {\n return this.leftOperand();\n }\n get rightPart() {\n return this.rightOperand();\n }\n dispose() {\n this.leftOperand().dispose();\n this.rightOperand().dispose();\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\criteriaOperatorSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { Disposable } from '../../../serializer/utils';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class CriteriaOperatorSurface extends Disposable {\n constructor(operator, parent, fieldListProvider, path) {\n super();\n this.isUpdated = ko.observable(false);\n this.canRemove = true;\n this.operatorType = ko.observable(null);\n this.templateName = 'dx-filtereditor-common';\n this.isSelected = ko.observable(false);\n this.operatorClass = 'criteria-operator-item-operator dxd-filter-editor-operator-back-color dxd-filter-editor-text-color';\n this.popupService = parent.popupService || { visible: ko.observable(false) };\n this.model = operator;\n this.helper = parent.helper;\n this.fieldListProvider = fieldListProvider;\n this.path = path;\n this.parent = parent;\n this.operatorType(operator.operatorType);\n this._disposables.push(this.operatorType.subscribe((newVal) => {\n this.model.assignType(newVal);\n }));\n }\n _createLeftPartProperty(value) {\n if (value instanceof OperandProperty) {\n var surface = this.createChildSurface(value);\n }\n else {\n var surface = this.createChildSurface(value);\n var specifics = Object.keys(this.helper.filterEditorOperators).reduce((key, value) => {\n if (value !== '_common' && key === 'integer'\n && !!this.helper._getFilterEditorOperator(this.model, this.helper.filterEditorOperators[value], this.reverse)) {\n key = value;\n }\n return key;\n }, 'integer');\n surface.specifics = surface.specifics || ko.observable(specifics);\n }\n surface['canChange'] = false;\n surface.canRemove = false;\n if (surface && surface.model.type === 'aggregate') {\n this.specifics = ko.computed(() => {\n return surface['aggregatedExpression']() && surface['aggregatedExpression']().specifics() || 'integer';\n });\n this.dataType = ko.computed(() => {\n return surface['aggregatedExpression']() && surface['aggregatedExpression']().dataType() || 'integer';\n });\n this._disposables.push(this.specifics);\n this._disposables.push(this.dataType);\n }\n else {\n this.specifics = surface.specifics;\n this.dataType = surface.dataType;\n }\n this.isUpdated = surface.isUpdated;\n return surface;\n }\n createChildSurface(item, path, actions) {\n return new this.helper.mapper[item.type](item, this, this.fieldListProvider, path || this.path);\n }\n getDisplayType() {\n var type = this.operatorType && this.operatorType() || '';\n var item = this.helper._getFilterEditorOperator(this.model, this.items, this.reverse);\n return item && item.name && (item.displayText || getLocalization(item.name, item.localizationId)) || this.model.displayType || type;\n }\n get items() {\n return this.helper.filterEditorOperators[this.specifics()] || this.helper.filterEditorOperators._common;\n }\n get displayType() {\n return this.getDisplayType();\n }\n get leftPart() {\n return null;\n }\n get rightPart() {\n return null;\n }\n get css() {\n return this.operatorClass + (this.isSelected() ? ' selected' : '');\n }\n change(type, surface) {\n if (!surface && type && this.model.enumType === type.type && this.reverse === type.reverse && type.type !== FunctionOperatorType) {\n this.operatorType(type.value);\n }\n else {\n this.parent.change(type, this);\n }\n this.helper.onChange();\n }\n remove(surface) {\n this.parent.remove(this);\n this.helper.onChange();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\functionOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { FunctionOperatorType } from '../../criteria/operators/options/function';\nexport class FunctionOperandSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.canRemove = true;\n this.contentTemplateName = 'dx-filtereditor-function';\n this.operands = ko.observableArray([]);\n if (operator.operands.length === 0) {\n if (parent instanceof UnaryOperandSurface) {\n this.specifics = parent.parent.specifics;\n }\n else {\n this.specifics = parent.specifics;\n }\n this.contentTemplateName = 'dx-filtereditor-function-lightweight';\n this.canRemove = false;\n }\n else {\n this.operands.push(this._createLeftPartProperty(operator.operands[0]));\n for (var i = 1; i < operator.operands.length; i++) {\n this.operands.push(this.createChildSurface(operator.operands[i]));\n }\n }\n }\n get leftPart() {\n return this.operands && this.operands()[0];\n }\n get rightPart() {\n return this.operands && this.operands().filter((_, index) => { return index !== 0; });\n }\n get displayType() {\n var item = this.items.filter((item) => { return this.operatorType() === item.value && this.reverse === item.reverse && this.model.enumType === item.type; })[0];\n if (item && item.name) {\n return item.displayText || getLocalization(item.name, item.localizationId);\n }\n else {\n if (!isNaN(parseInt(this.operatorType()))) {\n return FunctionOperatorType[this.operatorType()];\n }\n else {\n return this.operatorType() || '';\n }\n }\n }\n dispose() {\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\groupOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { initDisplayText } from '../helpers/_helper';\nimport { AggregateOperandSurface } from './aggregateOperandSurface';\nimport { OperandProperty } from '../../criteria/operators/property';\nexport class GroupOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.templateName = 'dx-filtereditor-group';\n this.operatorClass = 'criteria-operator-item-group dxd-filter-editor-group-back-color dxd-filter-editor-text-color';\n this.operands = ko.observableArray([]);\n this.createItems = null;\n this.createItems = [\n { name: 'Add group', value: true, localizationId: 'StringId.FilterMenuGroupAdd' },\n { name: 'Add condition', value: false, localizationId: 'StringId.FilterMenuConditionAdd' }\n ];\n this.createItems.forEach(initDisplayText);\n this.operands((operator.operands || []).map((operand) => {\n return this.createChildSurface(operand);\n }));\n this.specifics = ko.observable('group');\n }\n change(type, surface) {\n if (surface) {\n var specifics = surface.specifics() || 'integer';\n var operators = this.helper.filterEditorOperators[specifics] || this.helper.filterEditorOperators._common;\n if (!type) {\n var item = operators.filter((item) => {\n return surface.operatorType() === item.value && surface.reverse === item.reverse && surface.model.enumType === item.type;\n })[0];\n if (item) {\n type = item;\n }\n else {\n type = operators[0];\n }\n }\n var newModel = this.model.change(type, surface.model, surface.leftPart instanceof AggregateOperandSurface && surface.leftPart.leftPart.specifics() !== 'list');\n var position = this.operands().indexOf(surface);\n var operand = this.createChildSurface(newModel);\n this.operands()[position].dispose();\n this.operands.splice(position, 1, operand);\n }\n else {\n super.change(type, surface);\n }\n this.helper.onChange();\n }\n remove(surface) {\n if (surface) {\n this.model.remove(surface.model);\n this.operands.remove(surface);\n surface.dispose();\n }\n else {\n this.parent.remove(this);\n this.dispose();\n }\n this.helper.onChange();\n }\n create(type) {\n var newModel = this.model.create(type.value, new OperandProperty());\n this.operands.push(this.createChildSurface(newModel));\n this.helper.onChange();\n }\n get rightPart() {\n return this.operands();\n }\n dispose() {\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\inOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { OperandValue } from '../../criteria/operators/value';\nexport class InOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-in';\n this.operands = ko.observableArray([]);\n this.criteriaOperator = ko.observable(null);\n this.criteriaOperator(this._createLeftPartProperty(operator.criteriaOperator));\n this.operands((operator.operands || []).map((operand) => {\n return this.createChildSurface(operand);\n }));\n this.addValue = () => {\n var value = new OperandValue(null);\n this.model.operands.push(value);\n this.operands.push(this.createChildSurface(value));\n };\n }\n get leftPart() {\n return this.criteriaOperator();\n }\n get rightPart() {\n return this.operands();\n }\n dispose() {\n this.criteriaOperator().dispose();\n this.operands().forEach(x => x.dispose());\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandParameterSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nexport class OperandParameterSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.changeParameter = (item) => {\n this.model.parameterName = item.name;\n this.parameterName(item.name);\n this.helper.onChange();\n };\n this.operatorClass = 'criteria-operator-item-parameter dxd-filter-editor-parameter-back-color dxd-filter-editor-text-color';\n this.parameterName = ko.observable('');\n this.templateName = 'dx-filtereditor-parameter';\n this.specifics = parent.specifics;\n this.parameterName(operator.parameterName);\n if (!this.parameterName() && this.items.length > 0) {\n this.changeParameter(this.items[0]);\n }\n this.specifics && this._disposables.push(this.specifics.subscribe((newVal) => {\n if (this.items.filter(x => ko.unwrap(x.name) == this.parameterName()).length == 0)\n this.items.length > 0 ? this.changeParameter(this.items[0]) : this.changeParameter({ name: '' });\n }));\n }\n get items() {\n return this.getConvertableParameters(this.specifics());\n }\n get displayType() {\n return null;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandPropertySurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { PathRequest } from '../../common/pathRequest';\nexport class OperandPropertySurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this._displayName = ko.observable('');\n this.propertyName = ko.observable('');\n this.specifics = ko.observable('integer');\n this.dataType = ko.observable('');\n this.valueType = ko.observable('');\n this.changeProperty = (item) => {\n this.fieldsOptions().selected(item);\n };\n this.templateName = 'dx-filtereditor-property';\n this.operatorClass = 'criteria-operator-item-field dxd-filter-editor-field-back-color dxd-filter-editor-field-back-color dxd-filter-editor-text-color';\n this.propertyName(operator.propertyName);\n var options = this.helper.generateTreelistOptions(fieldListProvider, path);\n if (options.options && options.subscription) {\n this.fieldsOptions = options.options;\n this._disposables.push(options.subscription);\n }\n else {\n this.fieldsOptions = options;\n }\n this._disposables.push(this.fieldsOptions().selectedPath.subscribe((newVal) => {\n var realName = this.fieldsOptions().selectedPath().substr(this.path && this.path().length > 0 ? this.path().length + 1 : 0);\n this.propertyName(realName);\n this.model.propertyName = realName;\n this.popupService.visible(false);\n }));\n this._disposables.push(this.fieldsOptions().selected.subscribe((newVal) => {\n this._updateDisplayName(path, this.propertyName(), newVal.displayName);\n var specifics = newVal.specifics.toLowerCase();\n if (specifics.indexOf('calc') === 0) {\n specifics = specifics.split('calc')[1];\n }\n if (this.specifics() !== specifics || this.dataType() !== newVal.dataType) {\n this.specifics(specifics);\n this.dataType(newVal.dataType);\n this.parent.change();\n }\n this.helper.onChange();\n }));\n this.fieldsOptions().selectedPath(this.path && !!ko.unwrap(this.path) ? [ko.unwrap(this.path), this.propertyName()].join('.') : this.propertyName());\n this._updateSpecifics();\n this._disposables.push(this.displayName = ko.computed(() => {\n return this._displayName() || this.propertyName();\n }));\n }\n _updateDisplayName(path, propertyName, displayName) {\n if (!!this.helper.getDisplayPropertyName) {\n this.helper.getDisplayPropertyName(ko.unwrap(path), propertyName).done((newVal) => {\n this._displayName(newVal);\n });\n }\n else {\n this._displayName(displayName);\n }\n }\n _updateSpecifics() {\n var self = this;\n var propertyPath = this.propertyName().split('.');\n var realPropertyName = propertyPath.pop();\n if (ko.unwrap(this.fieldsOptions).itemsProvider) {\n this.isUpdated(true);\n ko.unwrap(this.fieldsOptions).itemsProvider.getItems(new PathRequest([this.path()].concat(propertyPath).join('.'))).done((result) => {\n var notListProperties = result.filter((item) => { return item.specifics !== 'List' && !item.isList; });\n if (!this.propertyName() && notListProperties.length > 0) {\n this.model.propertyName = notListProperties[0].name;\n this.propertyName(notListProperties[0].name);\n realPropertyName = notListProperties[0].name;\n }\n var item = result.filter((item) => { return item.name === realPropertyName; })[0];\n if (item) {\n var specifics = item.specifics.toLowerCase();\n if (specifics.indexOf('calc') === 0) {\n specifics = specifics.split('calc')[1];\n }\n this.specifics(specifics);\n this.dataType(item.dataType);\n this._updateDisplayName(this.path, this.propertyName(), item.displayName);\n }\n }).always(() => {\n this.isUpdated(false);\n });\n }\n }\n get items() {\n return this.fieldsOptions;\n }\n get displayType() {\n return null;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandSurfaceBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nimport { OperandValue } from '../../criteria/operators/value';\nimport { OperandProperty } from '../../criteria/operators/property';\nimport { OperandParameter } from '../../criteria/operators/parameter';\nimport { initDisplayText } from '../helpers/_helper';\nexport class OperandSurfaceBase extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.canChange = true;\n this.canRemove = false;\n this.changeValueType = (type) => {\n var parent = this.getRealParent(this.parent);\n var property = this.getRealProperty(this);\n var propertyLocation = this.getPropertyName(parent, property);\n var model = parent.model.changeValueType(type.instance, propertyLocation);\n if (propertyLocation.index !== null) {\n parent[propertyLocation.name]()[propertyLocation.index].dispose();\n parent[propertyLocation.name].splice(propertyLocation.index, 1, parent.createChildSurface(model));\n }\n else {\n parent[propertyLocation.name]().dispose();\n parent[propertyLocation.name](parent.createChildSurface(model));\n }\n this.helper.onChange();\n };\n }\n getRealParent(parent) {\n if (parent instanceof UnaryOperandSurface) {\n return this.getRealParent(parent.parent);\n }\n else {\n return parent;\n }\n }\n getRealProperty(property) {\n if (property.parent instanceof UnaryOperandSurface) {\n return this.getRealProperty(property.parent);\n }\n else {\n return property;\n }\n }\n getPropertyName(parent, searchProperty) {\n var position = null;\n var name = null;\n $.each(parent, (propertyName, property) => {\n if (Array.isArray(ko.unwrap(property)) && ko.isObservable(property)) {\n var index = ko.unwrap(property).indexOf(searchProperty);\n if (index > -1) {\n position = index;\n name = propertyName;\n return;\n }\n }\n else if (searchProperty === ko.unwrap(property) && ko.isObservable(property)) {\n name = propertyName;\n return;\n }\n });\n return { index: position, name: name };\n }\n getConvertableParameters(destinationSpecifics) {\n if (!this.helper.parameters())\n return [];\n return this.helper.parameters().filter((item) => {\n var sourceSpecifics = item.specifics && item.specifics.toLowerCase();\n if (sourceSpecifics == null || destinationSpecifics == null)\n return false;\n if (sourceSpecifics === destinationSpecifics)\n return true;\n if (destinationSpecifics === 'default')\n return true;\n if (destinationSpecifics === 'string')\n return true;\n if (destinationSpecifics === 'float')\n return sourceSpecifics === 'integer';\n if (destinationSpecifics === 'enum')\n return sourceSpecifics === 'integer' || sourceSpecifics === 'string';\n return false;\n });\n }\n get changeTypeItems() {\n var items = [{ name: 'Value', instance: OperandValue, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Value' }];\n if (this.helper.canChoiceProperty) {\n items.push({ name: 'Property', instance: OperandProperty, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Property' });\n }\n if (this.helper.canChoiceParameters && (this.getConvertableParameters(this.parent.specifics()).length > 0 || this.helper.canCreateParameters)) {\n items.push({ name: 'Parameter', instance: OperandParameter, localizationId: 'AnalyticsCoreStringId.FilterEditor_Operand_Type_Parameter' });\n }\n items.forEach(initDisplayText);\n return items;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\operandValueSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport DataSource from 'devextreme/data/data_source';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport * as ko from 'knockout';\nimport { getLocalization } from '../../../property-grid/localization/localization_utils';\nimport { formatDate } from '../../../property-grid/localization/_localization';\nimport { PathRequest } from '../../common/pathRequest';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { ValueEditorHelper } from '../../internal/_valueEditorHelper';\nimport { isNullOrEmptyString } from '../../_utils';\nimport { OperandPropertySurface } from './operandPropertySurface';\nimport { OperandSurfaceBase } from './operandSurfaceBase';\nimport { UnaryOperandSurface } from './unaryOperandSurface';\nexport class OperandValueSurface extends OperandSurfaceBase {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this._value = ko.observable(null);\n this._scroll = null;\n this._updateDate = function (specifics) {\n if (specifics === 'date') {\n if (!(this._value() instanceof Date)) {\n this._value(new Date(new Date().setHours(0, 0, 0, 0)));\n }\n }\n else {\n this._value('');\n }\n };\n this.changeValue = () => {\n var parent = this.getRealParent(this.parent);\n var property = this.getRealProperty(this);\n var propertyLocation = this.getPropertyName(parent, property);\n var model = parent.model.changeValue(this.model, this.reverse, propertyLocation);\n if (propertyLocation.index !== null) {\n parent[propertyLocation.name]()[propertyLocation.index].dispose();\n parent[propertyLocation.name].splice(propertyLocation.index, 1, parent.createChildSurface(model));\n }\n else {\n parent[propertyLocation.name]().dispose();\n parent[propertyLocation.name](parent.createChildSurface(model));\n }\n };\n this.dataType = ko.observable('');\n this.values = ko.observable([]);\n this.isEditable = ko.observable(false);\n this.templateName = 'dx-filtereditor-value';\n this._getBaseOptions = (element) => {\n return {\n value: this._value,\n onFocusOut: () => this.isEditable(false),\n onFocusIn: () => this.scrollTo(element)\n };\n };\n this.getNumberEditorOptions = (element) => {\n return ValueEditorHelper.getNumberEditorOptions(this.dataType(), this.specifics(), this._getBaseOptions(element));\n };\n this.getStringEditorOptions = (element) => {\n return this._getBaseOptions(element);\n };\n this.getBoolEditorOptions = (element, $root) => {\n return Object.assign({ dataSource: [\n { val: 'True', text: 'Yes', localizationId: 'AnalyticsCoreStringId.ParametersPanel_True' },\n { val: 'False', text: 'No', localizationId: 'AnalyticsCoreStringId.ParametersPanel_False' }\n ], valueExpr: 'val', displayExpr: 'text', dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n this.getDateEditorOptions = (element, $root) => {\n return Object.assign({ closeOnValueChange: true, type: 'date', dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n this.getListEditOptions = (element, $root) => {\n var isCustomValue = typeof this.items[0] !== 'object';\n return Object.assign({ dataSource: this.dataSource, acceptCustomValue: isCustomValue, valueExpr: !isCustomValue ? 'value' : undefined, displayExpr: !isCustomValue ? 'display' : undefined, useItemTextAsTitle: true, searchEnabled: true, dropDownOptions: { container: $root.getPopupContainer(element) } }, this._getBaseOptions(element));\n };\n var dataSource = null;\n this._disposables.push(this.dataSource = ko.computed(() => {\n dataSource && dataSource.dispose();\n dataSource = new DataSource({\n store: this.values(),\n paginate: this.values().length > 200,\n pageSize: 100\n });\n return dataSource;\n }));\n if (parent instanceof UnaryOperandSurface) {\n this.specifics = parent.parent.specifics;\n this.isUpdated = parent.parent.isUpdated;\n this.dataType = parent.parent.dataType;\n if (parent.model.operatorType === UnaryOperatorType.Minus) {\n this.reverse = true;\n }\n }\n else {\n this.specifics = parent.specifics;\n this.isUpdated = parent.isUpdated;\n this.dataType = parent.dataType;\n }\n if (operator.specifics && ko.isWritableObservable(this.specifics))\n this.specifics(operator.specifics);\n this._disposables.push(this.specifics.subscribe((newVal) => {\n if (!this.isUpdated || !this.isUpdated()) {\n operator.specifics = newVal;\n this._updateDate(newVal);\n }\n }));\n this._value(operator.value);\n this._disposables.push(this._value.subscribe((newVal) => {\n this.model.value = newVal;\n this.helper.onChange();\n }));\n if (isNullOrEmptyString(this._value())) {\n this._updateDate(this.specifics());\n }\n this._disposables.push(this.value = ko.computed({\n read: () => {\n var value = this._value();\n if (value instanceof Date) {\n value = formatDate(value);\n }\n if (this.items.length > 0) {\n var result = this.items.filter((item) => { return String(item.value) === String(value); })[0];\n if (result) {\n return result.display;\n }\n }\n if (this.reverse) {\n value = '-' + value;\n }\n return value !== null && value !== undefined && value !== '' ? value : this.getDefaultValue();\n },\n write: (newVal) => {\n if (newVal > 0 && !this.reverse || newVal < 0 && this.reverse) {\n this._value(newVal);\n }\n else if (newVal > 0 && this.reverse || newVal < 0 && !this.reverse) {\n this.reverse = !this.reverse;\n this._value(newVal < 0 ? ('' + newVal).substring(1) : newVal);\n this.changeValue();\n }\n }\n }));\n this._disposables.push(ko.computed(() => {\n var itemsProvider = ko.unwrap(fieldListProvider);\n if (itemsProvider && itemsProvider.getValues && this.parent.leftPart instanceof OperandPropertySurface) {\n if (this.parent.leftPart.propertyName()) {\n itemsProvider.getValues(new PathRequest(ko.unwrap(this.path) + '.' + this.parent.leftPart.propertyName())).done((result) => {\n this.values(result);\n });\n }\n }\n }));\n operator.specifics = this.specifics();\n }\n get items() {\n return this.values();\n }\n get displayType() {\n return null;\n }\n isDefaultDisplay() {\n return this.value() === this.getDefaultValue();\n }\n getDefaultValue() {\n return OperandValueSurface._defaultValue ? OperandValueSurface._defaultValue :\n OperandValueSurface._defaultValue = getLocalization('Enter a value', 'StringId.FilterEmptyEnter');\n }\n scrollTo(element) {\n if (!this._scroll) {\n var scrollElement = element.closest('.dx-filtereditor-tree');\n this._scroll = dxScrollView.getInstance(scrollElement);\n }\n this._scroll.scrollToElement(element);\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\filtereditor\\operators\\unaryOperandSurface.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { CriteriaOperatorSurface } from './criteriaOperatorSurface';\nimport { GroupOperator } from '../../criteria/operators/group';\nimport { UnaryOperatorType } from '../../criteria/operators/options/unary';\nimport { GroupOperatorType } from '../../criteria/operators/options/group';\nexport class UnaryOperandSurface extends CriteriaOperatorSurface {\n constructor(operator, parent, fieldListProvider, path) {\n super(operator, parent, fieldListProvider, path);\n this.contentTemplateName = 'dx-filtereditor-unary';\n this.operand = ko.observable(null);\n var operand = this.createChildSurface(operator.operand);\n if (operator.operatorType === UnaryOperatorType.Not) {\n this.templateName = 'dx-filtereditor-not';\n operand.reverse = true;\n this.specifics = operand.specifics;\n }\n else {\n operand.dispose();\n operand = this._createLeftPartProperty(operator.operand);\n }\n this.operand(operand);\n }\n get leftPart() {\n var leftPart = this.operand();\n if (this.operand() && this.operand().reverse && this.operand().leftPart) {\n leftPart = this.operand().leftPart;\n }\n return leftPart;\n }\n get rightPart() {\n return this.operand() && this.operand().reverse ? this.operand().rightPart : null;\n }\n createChildSurface(item, path, actions) {\n if (this.operatorType() === UnaryOperatorType.Not && !this.helper._getFilterEditorOperator(item, this.helper._allFilterEditorOperators, true)) {\n this.model.operand = new GroupOperator(GroupOperatorType.And, [item]);\n }\n return super.createChildSurface(this.model.operand, path, actions);\n }\n dispose() {\n this.operand().dispose();\n super.dispose();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\formatstring\\_patterns.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var formatStringStandardPatterns = {\n 'DateTime': { type: 'System.DateTime', value: new Date(Date.now()), patterns: [] },\n 'Number': { type: 'System.Int32', value: '123456789', patterns: ['#.00', '#,#', '0.E+0.0', '0.e+0.0', 'n', 'n1', 'n2', 'e', 'e1', 'f', 'f1'] },\n 'Percent': { type: 'System.Int32', value: '100', patterns: ['0.00%', '0%'] },\n 'Currency': { type: 'System.Int32', value: '100', patterns: ['$0.00', '$0', 'c', 'c1', 'c2'] },\n 'Special': { type: 'System.Int32', value: '123456789', patterns: ['(###) ### - ####', '### - ## - ####'] },\n 'General': { type: 'System.String', value: '', patterns: ['General format have no specific number format'] }\n};\n","/**\r\n* DevExpress Analytics (widgets\\formatstring\\binding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { FormatStringEditor } from './formatstringeditor';\nimport { addDisposeCallback } from '../../serializer/_internal';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nko.bindingHandlers['dxFormatEditor'] = {\n init: function (element, valueAccessor) {\n $.fn.constructor(element).children().remove();\n $.fn.constructor(element).addClass('dx-popup-general');\n var templateHtml = getTemplate('dx-format-string'), $element = $.fn.constructor(element).append(templateHtml), values = valueAccessor();\n var formatEditor = new FormatStringEditor(values.value, values['disabled'], values['standardPatterns'], values['customPatterns'], values['actions'], values['rtl'], values['popupContainer']);\n ko.applyBindings(formatEditor, $element.children()[0]);\n addDisposeCallback(element, function () {\n formatEditor.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (widgets\\formatstring\\formatstringeditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '../../serializer/utils';\nimport { formatStringStandardPatterns } from './_patterns';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { StringId } from '../../property-grid/localization/_localizationStringIds';\nimport { PopupService } from '../../property-grid/internal/_popupService';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nexport class FormatStringEditor extends Disposable {\n constructor(value, disabled, defaultPatterns, customPatterns, actions, rtl, popupContainer) {\n super();\n this._isDisabled = ko.observable(false);\n this._timeout = null;\n this.currentType = ko.observable();\n this.patternList = ko.observableArray([]);\n this.canAddCustomFormat = ko.observable(false);\n this.formatPrefix = ko.observable('');\n this.formatSuffix = ko.observable('');\n this.previewString = ko.observable('Preview string');\n this.formatResult = ko.observable('');\n this.selectedFormats = ko.observable([]);\n this.selectedTypes = ko.observable([]);\n this.popupVisible = ko.observable(false);\n this.localizationIdMap = {\n 'title': { text: 'FormatString Editor', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Title' },\n 'category': { text: 'Category', localizationId: 'AnalyticsCoreStringId.Category' },\n 'preview': { text: 'Preview', localizationId: 'AnalyticsCoreStringId.TooltipButtons_Preview' },\n 'types': { text: 'Types', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Types' },\n 'add': { text: 'Add', localizationId: 'DataAccessUIStringId.Button_Add' },\n 'prefix': { text: 'Prefix', localizationId: 'AnalyticsCoreStringId.Prefix' },\n 'suffix': { text: 'Suffix', localizationId: 'AnalyticsCoreStringId.FormatStringEditor_Suffix' }\n };\n this.option('value', value);\n this.option('disabled', disabled || false);\n this.option('rtl', rtl || false);\n this.option('popupContainer', popupContainer || '.dx-designer-viewport');\n var self = this;\n this.popupService = new PopupService();\n this._standardPatternSource = defaultPatterns || formatStringStandardPatterns;\n this._customPatternSource = customPatterns || {};\n this.types = this._convertArray(Object.keys(this._standardPatternSource));\n this._disposables.push(this.currentType.subscribe((newVal) => {\n if (self.isGeneralType) {\n self.formatResult('');\n self.selectedFormats([]);\n }\n else {\n self._updateFormatList();\n }\n }));\n this.currentType(this.types[0].name);\n this._disposables.push(this.formatResult.subscribe((newVal) => {\n self._updateCanAddCustomFormat(newVal);\n self._updatePreview();\n }));\n this._disposables.push(this.formatPrefix.subscribe((newVal) => {\n self._updatePreview();\n }));\n this._disposables.push(this.formatSuffix.subscribe((newVal) => {\n self._updatePreview();\n }));\n this._disposables.push(this.popupVisible.subscribe((newVal) => {\n if (!newVal)\n return;\n self._initEditor(value());\n self.selectedTypes(self.types.filter((item) => { return item.name === self.currentType(); }));\n }));\n this._createMainPopupButtons();\n actions && actions.updatePreview && (this.updatePreview = actions.updatePreview);\n this.setType = (e) => {\n self.currentType(e.itemData.name);\n self._updateSelection();\n };\n this.setFormat = (e) => {\n self.formatResult(e.itemData.name);\n };\n this.addCustomFormat = () => {\n if (self.formatResult() && self.canAddCustomFormat()) {\n self.customPatterns.push(self.formatResult());\n self._updateFormatList();\n self._scrollToBottom();\n actions && actions.saveCustomPattern(self.currentType(), self.formatResult());\n self._updateSelection(self.patternList().length - 1);\n self.canAddCustomFormat(false);\n }\n };\n this.removeCustomFormat = (data) => {\n var currentSelection = self.selectedFormats()[0];\n var patternList = self.patternList();\n var removedItemIndex = patternList.map((item) => { return item.name; }).indexOf(data.name);\n self.customPatterns.splice(self.customPatterns.indexOf(data.name), 1);\n self._updateFormatList();\n actions && actions.removeCustomPattern(self.currentType(), data.name);\n if (currentSelection.name === data.name) {\n self._updateSelection(removedItemIndex === (patternList.length - 1) ? (self.patternList().length - 1) : removedItemIndex);\n }\n else {\n self.selectedFormats(self.patternList().filter((item) => { return item.name === currentSelection.name; }));\n }\n };\n }\n okAction() {\n var result = this.isGeneralType ? this._getGeneralPreview('{0}') : this._wrapFormat();\n this.option('value', result);\n this.popupVisible(false);\n }\n _createMainPopupButtons() {\n var self = this;\n this.buttonItems = [\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('OK', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained', disabled: this._isDisabled, onClick: function () { self.okAction(); } } },\n { toolbar: 'bottom', location: 'after', widget: 'dxButton', options: { text: getLocalization('Cancel', StringId.DataAccessBtnCancel), type: 'normal', stylingMode: 'contained', onClick: function () { self.popupVisible(false); } } }\n ];\n }\n _convertArray(array, canRemove) {\n return array.map(item => { return { name: item, displayName: getLocalization(item), canRemove: !!canRemove }; });\n }\n _scrollToBottom() {\n var $scrollView = $.fn.constructor('.dx-format-string .dx-format-string-formats').find('.dx-scrollview').filter(':visible');\n var scrollViewInstance = dxScrollView.getInstance($scrollView.get(0));\n scrollViewInstance && scrollViewInstance['scrollTo'] && scrollViewInstance['scrollTo'](scrollViewInstance['scrollHeight']());\n }\n _updateFormatList() {\n this.selectedFormats([]);\n var currentTypeInfo = this._standardPatternSource[this.currentType()];\n this.patternList(this._convertArray(currentTypeInfo.patterns).concat(this._convertArray(this.customPatterns, true)));\n }\n _updateSelection(selectedItemIndex) {\n var currectFormat = this.patternList()[selectedItemIndex || 0];\n if (currectFormat) {\n this.selectedFormats([currectFormat]);\n this.formatResult(currectFormat.name);\n }\n }\n _setPreviewString(previewString) {\n this.previewString(previewString);\n this._isDisabled(false);\n }\n _setErrorMessage(setDisabled) {\n this.previewString(getLocalization('Preview string is not available', 'AnalyticsCoreStringId.FormatStringEditor_PreviewNotAvailable_Text'));\n this._isDisabled(setDisabled);\n }\n _updatePreview() {\n this._timeout && clearTimeout(this._timeout);\n this._timeout = setTimeout(() => {\n if (this.isGeneralType) {\n this.previewString(this._getGeneralPreview(undefined));\n return;\n }\n var category = this._standardPatternSource[this.currentType()];\n var updatedPreviewPromise = this.updatePreview(category.value, category.type, this._wrapFormat());\n this._lastUpdatePreviewPromise = updatedPreviewPromise;\n updatedPreviewPromise\n .done((previewResult) => {\n if (this._lastUpdatePreviewPromise === updatedPreviewPromise) {\n if (previewResult.Result)\n this._setPreviewString(previewResult.Result);\n else\n this._setErrorMessage(previewResult.IsError);\n }\n }).fail((error) => {\n if (this._lastUpdatePreviewPromise === updatedPreviewPromise)\n this.previewString(getLocalization('Preview string is not available', 'AnalyticsCoreStringId.FormatStringEditor_PreviewNotAvailable_Text'));\n });\n }, 100);\n }\n _getGeneralPreview(value = '###') {\n return this.formatPrefix() + value + this.formatSuffix();\n }\n _wrapFormat(format) {\n var pattern = format || this.formatResult();\n if (pattern && pattern.indexOf('{0:') !== -1) {\n return pattern;\n }\n return pattern ? '{0:' + pattern + '}' : '';\n }\n _updateCanAddCustomFormat(newFormat) {\n if (!newFormat) {\n this.canAddCustomFormat(false);\n return;\n }\n var canAddCustomFormat = true;\n Object.keys(this._standardPatternSource).some((name) => {\n canAddCustomFormat = this._standardPatternSource[name].patterns.indexOf(newFormat) === -1;\n return !canAddCustomFormat;\n });\n this.canAddCustomFormat(canAddCustomFormat ? this.customPatterns.indexOf(newFormat) === -1 : canAddCustomFormat);\n }\n _initEditor(formatStringValue) {\n if (!formatStringValue) {\n this.setType({ itemData: this.types[0] });\n return;\n }\n if (formatStringValue.indexOf('{0}') !== -1) {\n this.currentType('General');\n this.formatPrefix(formatStringValue.substring(0, formatStringValue.indexOf('{0}')));\n this.formatSuffix(formatStringValue.substring(formatStringValue.indexOf('{0}') + 3));\n return;\n }\n var startIndex = formatStringValue.indexOf('{0:'), closingBracketIndex = formatStringValue.indexOf('}', startIndex), formatPattern = formatStringValue.substring(startIndex + 3, closingBracketIndex), isFormatPatternFind;\n var selectTypePatternPair = (name) => {\n this.currentType(name);\n if (startIndex === 0 && closingBracketIndex === (formatStringValue.length - 1)) {\n this.selectedFormats(this.patternList().filter((item) => { return item.name === formatPattern; }));\n this.formatResult(formatPattern);\n isFormatPatternFind = true;\n }\n };\n Object.keys(this._standardPatternSource).some((name) => {\n if (this._standardPatternSource[name].patterns.indexOf(formatPattern) !== -1) {\n selectTypePatternPair(name);\n return true;\n }\n var customPatterns = this._customPatternSource[this._standardPatternSource[name].type];\n if (customPatterns && customPatterns.indexOf(formatPattern) !== -1) {\n selectTypePatternPair(name);\n return true;\n }\n return false;\n });\n if (!isFormatPatternFind) {\n this.currentType(this.types[0].name);\n this.selectedFormats([]);\n this.formatResult(formatStringValue);\n }\n }\n updateInputText(propertyName, componentInstance) {\n this[propertyName](componentInstance.option('text'));\n }\n option(name, value) {\n if (value !== void 0) {\n if (ko.isObservable(this[name])) {\n this[name](value);\n }\n else {\n this[name] = value;\n }\n }\n return ko.unwrap(this[name]);\n }\n updatePreview(value, category, pattern) {\n return $.Deferred().resolve({ Result: value || 'preview string' }).promise();\n }\n get customPatterns() {\n var currentTypeInfo = this._standardPatternSource[this.currentType()];\n return this._customPatternSource[currentTypeInfo.type] = this._customPatternSource[currentTypeInfo.type] || [];\n }\n get isGeneralType() {\n return this.currentType() === 'General';\n }\n getDisplayText(key) {\n return getLocalization(this.localizationIdMap[key].text, this.localizationIdMap[key].localizationId);\n }\n getPopupContainer(el) {\n return $.fn.constructor(el).closest(this.option('popupContainer'));\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\internal\\_resizeHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from '../../serializer/_utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class ResizeHelper {\n constructor(options = {}) {\n this.options = options;\n this._resize = (deltaWidth, deltaHeight, oldDelta, element) => {\n if (this.options.resultSize) {\n this.options.resultSize(this.options.resultSize() - (deltaWidth || deltaHeight) + oldDelta);\n }\n else {\n if (element) {\n if (deltaWidth) {\n const newWidth = element.offsetWidth - deltaWidth + oldDelta;\n element.style.width = `${newWidth}px`;\n }\n else if (deltaHeight) {\n const newHeight = element.offsetHeight + deltaHeight - oldDelta;\n element.style.height = `${newHeight}px`;\n }\n }\n }\n return deltaWidth || deltaHeight;\n };\n }\n resizable(resizeHandler, handles) {\n if (!resizeHandler)\n resizeHandler = { starting: () => { }, stopped: () => { } };\n var oldDelta = 0;\n return extend({}, resizeHandler, {\n handles: handles,\n $selectedNodes: $.fn.constructor(),\n stopped: () => { oldDelta = 0; },\n resize: (event, element, boundsDiff) => {\n oldDelta = this._resize(-boundsDiff.width, boundsDiff.height, oldDelta, element);\n this.options.onResize && this.options.onResize();\n },\n handleClassName: 'dxd-back-secondary',\n disabled: this.options.disabled || ko.observable(false)\n });\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\internal\\_valueEditorHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { extend } from '../../serializer/_utils';\nexport class ValueEditorHelper {\n static _getCharFromKeyCode(e) {\n if (e.ctrlKey === false && e.key.length === 1)\n return e.key;\n return null;\n }\n static _getCaretPosition(el) {\n var start = -1, end = -1, normalizedValue, range, textInputRange, len, endRange;\n try {\n if (typeof el.selectionStart == 'number' && typeof el.selectionEnd == 'number') {\n start = el.selectionStart;\n end = el.selectionEnd;\n }\n else if (document['selection']) {\n range = document['selection'].createRange();\n if (range && range.parentElement() == el) {\n len = el.value.length;\n normalizedValue = el.value.replace(/\\r\\n/g, '\\n');\n textInputRange = el.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n endRange = el.createTextRange();\n endRange.collapse(false);\n if (textInputRange.compareEndPoints('StartToEnd', endRange) > -1) {\n start = end = len;\n }\n else {\n start = -textInputRange.moveStart('character', -len);\n start += normalizedValue.slice(0, start).split('\\n').length - 1;\n if (textInputRange.compareEndPoints('EndToEnd', endRange) > -1) {\n end = len;\n }\n else {\n end = -textInputRange.moveEnd('character', -len);\n end += normalizedValue.slice(0, end).split('\\n').length - 1;\n }\n }\n }\n }\n }\n catch (e) {\n }\n return {\n start: start,\n end: end\n };\n }\n static _validate(value, minValue, maxValue) {\n if (!/^(0|(-?(([1-9]\\d*)|(0\\.\\d+)|([1-9]\\d*\\.\\d+)|(\\d*\\.\\d+[eE][+\\-]?\\d+))))$/.test(value))\n return false;\n if (!maxValue)\n return true;\n var negative = value[0] === '-';\n var valModulo = negative ? value.substring(1) : value;\n if (negative && !minValue)\n return false;\n var boundModulo = negative ? minValue.substring(1) : maxValue;\n var valMantissa, valExp, boundMantissa, boundExp;\n [valMantissa, valExp] = valModulo.toLowerCase().split('e');\n [boundMantissa, boundExp] = boundModulo.toLowerCase().split('e');\n var valIntPart, valFracPart, boundIntPart, boundFracPart;\n [valIntPart, valFracPart] = valMantissa.split('.');\n [boundIntPart, boundFracPart] = boundMantissa.split('.');\n valIntPart = (valIntPart || '').replace(/^0+/, '');\n boundIntPart = (boundIntPart || '').replace(/^0+/, '');\n var valOrder = valIntPart.length;\n if (valExp)\n valOrder += parseInt(valExp);\n var boundOrder = boundIntPart.length;\n if (boundExp)\n boundOrder += parseInt(boundExp);\n if (valOrder < boundOrder)\n return true;\n if (valOrder > boundOrder)\n return false;\n valFracPart = valFracPart || '0';\n boundFracPart = boundFracPart || '0';\n if (valIntPart + valFracPart > boundIntPart + boundFracPart)\n return false;\n return true;\n }\n static validateWidgetValue(e, validate, defaultVal) {\n var currentValue = e.component.option('value');\n if (!validate(currentValue)) {\n e.component.option('value', defaultVal);\n }\n }\n static getNumberEditorOptions(id, specifics, extendOptions = {}) {\n var editorOptions = ValueEditorHelper.editors[id] || ValueEditorHelper.editors[specifics];\n return editorOptions ? ValueEditorHelper.getValueEditorOptions(editorOptions.regExpEditing, (value) => {\n return ValueEditorHelper._validate(value, editorOptions.minValue, editorOptions.maxValue);\n }, '', extendOptions) : extendOptions;\n }\n static getValueEditorOptions(regExpEditing, validate, defaultVal, extendOptions = {}) {\n var options = {\n onFocusIn: e => {\n ValueEditorHelper.validateWidgetValue(e, validate, defaultVal);\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onFocusIn', e);\n },\n onKeyDown: e => {\n var char = ValueEditorHelper._getCharFromKeyCode(e.event);\n if (!char)\n return;\n var $input = $.fn.constructor(e.element).find('input').eq(0);\n var caretPosition = ValueEditorHelper._getCaretPosition($input.get(0));\n var currentValue = $input.val();\n if (caretPosition.start < 0) {\n caretPosition = currentValue ? currentValue.length : 0;\n }\n var result = [currentValue.slice(0, caretPosition.start), char, currentValue.slice(caretPosition.end)].join('');\n if (!regExpEditing.test(result))\n e.event.preventDefault();\n $input = null;\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onKeyDown', e);\n },\n onPaste: e => {\n var clipboardData = e.event.originalEvent.clipboardData || window['clipboardData'] || {};\n var pastedData = clipboardData.getData && clipboardData.getData('Text');\n if (typeof pastedData !== 'string')\n return;\n var $input = $.fn.constructor(e.element).find('input').eq(0);\n var caretPosition = ValueEditorHelper._getCaretPosition($input.get(0));\n var currentValue = $input.val();\n if (caretPosition.start < 0) {\n caretPosition.end = caretPosition.start = currentValue ? currentValue.length : 0;\n }\n var result = [\n currentValue.slice(0, caretPosition.start), pastedData, currentValue.slice(caretPosition.end)\n ].join('');\n if (!regExpEditing.test(result))\n e.event.preventDefault();\n $input = null;\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onPaste', e);\n },\n onValueChanged: e => {\n if (e.value !== defaultVal)\n this.validateWidgetValue(e, validate, e.previousValue);\n ValueEditorHelper._invokeStandardHandler(extendOptions, 'onValueChanged', e);\n }\n };\n return extend({}, extendOptions, options);\n }\n static isValid(id, specifics, value) {\n var editorOptions = ValueEditorHelper.editors[id] || ValueEditorHelper.editors[specifics];\n return editorOptions.regExpEditing.test(value) && ValueEditorHelper._validate(value, editorOptions.minValue, editorOptions.maxValue);\n }\n static _invokeStandardHandler(extendOptions, name, e) {\n if ($.isFunction(extendOptions[name]))\n extendOptions[name](e);\n }\n}\nValueEditorHelper.editors = {\n 'integer': {\n regExpEditing: /^-?\\d*$/\n },\n 'float': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d+)?$/\n },\n 'System.Byte': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '255'\n },\n 'System.SByte': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-128',\n maxValue: '127'\n },\n 'System.Int16': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-32768',\n maxValue: '32767'\n },\n 'System.UInt16': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '65535'\n },\n 'System.Int32': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-2147483648',\n maxValue: '2147483647'\n },\n 'System.UInt32': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '4294967295'\n },\n 'System.Int64': {\n regExpEditing: /^-?\\d*$/,\n minValue: '-9223372036854775808',\n maxValue: '9223372036854775807'\n },\n 'System.UInt64': {\n regExpEditing: /^\\d*$/,\n minValue: null,\n maxValue: '18446744073709551615'\n },\n 'System.Single': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-3.40282347e+38',\n maxValue: '3.40282347e+38'\n },\n 'System.Double': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-1.7976931348623157e+308',\n maxValue: '1.7976931348623157e+308'\n },\n 'System.Decimal': {\n regExpEditing: /^-?(\\d+\\.?\\d*)?([eE][+\\-]?\\d*)?$/,\n minValue: '-79228162514264337593543950335',\n maxValue: '79228162514264337593543950335'\n }\n};\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\_binding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { DefaultTreeListItemFactory } from './_treelistItem';\nimport { TreeListController } from './_treelistController';\nimport { TreeListSearchOptions, TreeListSearchViewModel } from './_treeListSearchViewModel';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nimport { extend } from '../../serializer/_utils';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nko.bindingHandlers['treelist'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var treeListViewModel = null;\n var childContext = null;\n var callback = null;\n var values = valueAccessor(), options = ko.unwrap(values), pathArray, updateScrollBar = () => {\n var options = ko.unwrap(values);\n var scrollViewElt = $.fn.constructor(element).closest('.dx-scrollview').get(0);\n var scrollView = scrollViewElt && dxScrollView.getInstance(scrollViewElt);\n scrollView && scrollView['update']();\n if (options.onItemsVisibilityChanged) {\n options.onItemsVisibilityChanged();\n }\n }, updateTreeList = (options) => {\n pathArray && pathArray.dispose();\n var treeListController = options.treeListController || new TreeListController();\n options.treeListController = treeListController;\n treeListController.dragDropHandler = treeListController.dragDropHandler || bindingContext.$root.fieldDragHandler;\n options.factory = options.factory || new DefaultTreeListItemFactory();\n options.itemsProvider = ko.unwrap(options.itemsProvider);\n options.pageSize = options.pageSize || -1;\n treeListViewModel && treeListViewModel.dispose();\n if (!options || !options.itemsProvider)\n return;\n if (!options.rtl) {\n options.rtl = $.fn.constructor(element).closest('.dx-rtl').length > 0;\n }\n pathArray = ko.computed(() => {\n var result = ko.unwrap(options.path);\n if (!Array.isArray(result)) {\n return !!result ? result.split('.') : [];\n }\n return result;\n });\n treeListViewModel = options.factory.createRootItem(options, pathArray, updateScrollBar, options.rtl);\n var treeListTemplate = options.templateHtml || getTemplate('dx-treelist');\n if (treeListController.root) {\n treeListController.searchEnabled = true;\n treeListController.searchOptions = treeListController.searchOptions || new TreeListSearchOptions();\n treeListController.root(treeListViewModel);\n }\n var $element = $.fn.constructor(element).html(treeListTemplate);\n childContext = bindingContext.createChildContext(treeListViewModel);\n ko.applyBindings(childContext, $element.children()[0]);\n callback && ko.utils.domNodeDisposal.removeDisposeCallback(element, callback);\n callback = function () {\n treeListViewModel && treeListViewModel.dispose();\n treeListViewModel = null;\n subscription && subscription.dispose();\n pathArray && pathArray.dispose();\n callback = null;\n ko.utils.domNodeDisposal.removeDisposeCallback(element, callback);\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, callback);\n };\n updateTreeList(extend({}, options));\n var subscription = null;\n if (ko.isSubscribable(values)) {\n subscription = values.subscribe((newValue) => {\n newValue && updateTreeList(extend({}, newValue));\n });\n }\n else if (ko.isSubscribable(values.itemsProvider)) {\n subscription = values.itemsProvider.subscribe((newValue) => {\n newValue && updateTreeList(extend({}, values));\n });\n }\n return { controlsDescendantBindings: true };\n }\n};\nko.bindingHandlers['treeListSearchPanel'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor();\n var template = ko.unwrap(values.template);\n var modelType = ko.unwrap(values.modelType);\n var controllers = ko.unwrap(values.controllers);\n if (!Array.isArray(controllers))\n controllers = [controllers];\n TreeListSearchViewModel.createController(element, controllers, modelType, template);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\_treeListSearchViewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { SearchMode, findMatchesInString } from '../../property-grid/widgets/internal/_utils';\nimport { Disposable } from '../../serializer/utils';\nimport { searchPlaceholder } from '../../property-grid/localization/_localization';\nimport { getTemplate } from '../../property-grid/widgets/templateUtils';\nexport class TreeListSearchOptions {\n constructor() {\n this.globalMatch = true;\n this.autoLoadItems = true;\n this.canUseRegex = false;\n this.caseSensitive = false;\n this.searchMode = SearchMode.contains;\n this.searchTimeout = 500;\n this.searchExpr = 'displayName';\n this.searchBoxTemplate = 'dx-treelist-searchbox';\n }\n}\nexport class TreeListSearchViewModel extends Disposable {\n constructor() {\n super();\n this._processedNodes = [];\n this._currentProcess = [];\n this.searchTimeout = 500;\n this._roots = [];\n this.searchPlaceholder = () => searchPlaceholder();\n var _textToSearch = ko.observable('');\n var timeout = null;\n this._disposables.push(this.value = ko.computed({\n read: () => _textToSearch(),\n write: (newVal) => {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n _textToSearch(newVal);\n }, this.searchTimeout);\n }\n }));\n this._disposables.push(this.value.subscribe((newValue) => this.valueChanged(newValue)));\n }\n static createController(element, controllers, modelType = TreeListSearchViewModel, templateName = 'dx-treelist-search-panel') {\n var model = new modelType();\n var $element = $.fn.constructor(element);\n var subscriptions = [];\n controllers.forEach((controller) => {\n if (!controller)\n return;\n controller.root = controller.root || ko.observable();\n subscriptions.push(controller.root.subscribe((newRoot) => {\n model.addController(newRoot);\n model.valueChanged('');\n }));\n });\n model._disposables.push({\n dispose: () => {\n controllers.forEach(controller => {\n if (controller) {\n controller.root(null);\n delete controller.root;\n }\n });\n }\n });\n var template = getTemplate(templateName);\n $element.addClass('dxrd-treelist-search-panel-container').addClass('dxd-border-primary');\n $element.children().remove();\n $element.append(template);\n ko.cleanNode($element.children()[0]);\n ko.applyBindings(model, $element.children()[0]);\n var disposeCallback = () => {\n subscriptions.forEach(x => x.dispose());\n model && model.dispose();\n ko.utils.domNodeDisposal.removeDisposeCallback(element, disposeCallback);\n };\n ko.utils.domNodeDisposal.addDisposeCallback(element, disposeCallback);\n }\n dispose() {\n super.dispose();\n this.clearProcess();\n }\n clearProcess() {\n this._currentProcess.forEach(x => x.stop && x.stop());\n this._currentProcess = [];\n this._processedNodes = [];\n }\n valueChanged(newValue) {\n if (!newValue)\n this._processedNodes.forEach(x => x.setVisible(true));\n this.clearProcess();\n this._roots.forEach((root) => {\n root.treeListController.textToSearch(newValue);\n if (newValue) {\n this._currentProcess.push(root.walkOnTree((node) => {\n var regexResult = findMatchesInString(node.data[root.treeListController.searchOptions.searchExpr], newValue, root.treeListController.searchOptions);\n this._processedNodes.push(node);\n node.setVisible(!!regexResult);\n regexResult && this._collapseTreeBranch(node);\n }));\n }\n else {\n root.items.valueHasMutated();\n }\n });\n }\n _collapseTreeBranch(node) {\n if (node.parent) {\n if (node.parent.collapsed())\n node.parent.toggleCollapsed();\n this._collapseTreeBranch(node.parent);\n }\n }\n addController(root) {\n this._roots = this._roots.filter((a) => !a.isDisposing);\n root.treeListController.textToSearch = root.treeListController.textToSearch || ko.observable('');\n if (this._roots.indexOf(root) === -1)\n this._roots.push(root);\n this.searchTimeout = Math.max.apply(Math, this._roots.map(x => x.treeListController.searchOptions.searchTimeout)) || 500;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\_treelistController.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class TreeListController {\n constructor() {\n this.selectedItem = null;\n }\n dispose() {\n this.selectedItem = null;\n }\n itemsFilter(item, path) {\n return true;\n }\n hasItems(item) {\n return item.specifics !== 'none' && (item.specifics === 'List' || item.specifics === 'ListSource' || item.isList === true);\n }\n canSelect(value) {\n return !value.hasItems;\n }\n select(value) {\n if (this.canSelect(value)) {\n this.selectedItem && this.selectedItem.isSelected(false);\n this.selectedItem = value;\n value.isSelected(true);\n }\n }\n isDraggable(item) {\n return false;\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\_treelistItem.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { CodeResolver } from '../../property-grid/internal/_codeResolver';\nimport { getLocalization } from '../../property-grid/localization/localization_utils';\nimport { SvgTemplatesEngine } from '../../property-grid/widgets/internal/_svgTemplateEngine';\nimport { Disposable } from '../../serializer/utils';\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nimport { PathRequest } from '../common/pathRequest';\nimport { LoadChildItemsForCollapsedNodes } from './options';\nexport var maxSearchLevel = createGlobalModuleVariableFunc(5);\nexport var treeListEditAction = {\n templateName: 'dx-treelist-edit-action',\n imageClassName: '',\n text: 'Edit',\n clickAction: $.noop,\n displayText: () => getLocalization('Edit', 'AnalyticsCoreStringId.Group_Edit')\n};\nexport class DefaultTreeListItemFactory {\n createRootItem(options, path, onItemsVisibilityChanged, rtl) {\n return new TreeListRootItemViewModel(options, path, onItemsVisibilityChanged, rtl);\n }\n createItem(options, path, onItemsVisibilityChanged, rtl, resolver) {\n return new TreeListItemViewModel(options, path, onItemsVisibilityChanged, rtl, resolver);\n }\n}\nexport class TreeListEllipsisButton {\n constructor(_availableItemsCount, padding, pageSize) {\n this._availableItemsCount = _availableItemsCount;\n this.padding = padding;\n this.pageSize = pageSize;\n this.templateName = 'dx-treelist-item-ellipsis';\n this.collapsed = () => true;\n this.visibleItems = () => [];\n this.text = () => getLocalization('Show more...', 'AnalyticsCoreStringId.QueryBuilder_Tables_ShowMore');\n }\n renderNext() {\n this._availableItemsCount(this._availableItemsCount() + this.pageSize);\n }\n}\nexport class TreeListItemViewModel extends Disposable {\n constructor(options, path = [], onItemsVisibilityChanged = $.noop, rtl = false, resolver = new CodeResolver()) {\n super();\n this.resolver = resolver;\n this._rtl = false;\n this._data = ko.observable(null);\n this._actions = ko.observable([]);\n this._isVisible = ko.observable(true);\n this._pageSize = -1;\n this._walkCallback = null;\n this._isLoaded = ko.observable(false);\n this._actionsSubscription = null;\n this._subscriptions = [];\n this._visibleItemsCount = ko.observable(0);\n this._iconName = () => (ko.unwrap((this.data && this.data.icon) || (this.data && this.data.specifics)) || 'default').split('.').join('_').toLowerCase();\n this._nodeIsLocked = false;\n this.level = -1;\n this.items = ko.observableArray();\n this.collapsed = ko.observable(true);\n this.isSelected = ko.observable(false);\n this.isHovered = ko.observable(false);\n this.isMultiSelected = ko.observable(false);\n this.templates = {\n accordionItem: 'dx-treelist-accordion-item',\n headerItem: 'dx-treelist-header-item',\n headerItemContent: 'dx-treelist-header-item-caption-content',\n itemTextContent: 'dx-treelist-item-text-content',\n actionsContainer: 'dx-treelist-item-actions-container',\n };\n this._pageSize = options.pageSize || -1;\n this._path = path;\n this._rtl = rtl;\n if ('loadChildItemsForCollapsedNodes' in options)\n this._loadChildItemsForCollapsedNodes = options.loadChildItemsForCollapsedNodes;\n this._factory = options.factory || new DefaultTreeListItemFactory();\n this._treeListController = options.treeListController;\n this._templateName = options.templateName;\n this._onItemsVisibilityChanged = onItemsVisibilityChanged;\n this.dragDropHandler = options.treeListController.dragDropHandler;\n this._onItemsChangedCallback = options.onItemsChanged;\n this._visible = ko.computed(() => {\n if (this.data && this._treeListController.itemsFilter && !this._treeListController.itemsFilter(this.data, this.path, this))\n return false;\n return this._isVisible();\n });\n this.getItems = () => {\n if (this.items().length > 0)\n return $.Deferred().resolve(this.items()).promise();\n return this._loadItems(options);\n };\n this._initPaginate();\n this.toggleSelected = (_, event) => {\n if (event && (event.shiftKey || event.ctrlKey || event.metaKey) && this.selectedItems().length > 0 && this._treeListController.canMultiSelect && this._treeListController.canMultiSelect(this)) {\n options.selectedPath('');\n this._treeListController.multiSelect(this, event.shiftKey, event.ctrlKey || event.metaKey);\n }\n else if (this._treeListController.canSelect(this)) {\n options.treeListController.clickHandler && options.treeListController.clickHandler(this);\n options.selectedPath(this.path);\n }\n };\n if (options.treeListController.dblClickHandler) {\n this.dblClickHandler = (item) => {\n options.treeListController.dblClickHandler && options.treeListController.dblClickHandler(item);\n };\n }\n this.toggleCollapsed = () => {\n if (this.hasItems) {\n this.collapsed(!this.collapsed.peek());\n if (!this.collapsed.peek() && this.items().length === 0) {\n this._loadItems(options, this._getLoadChildItemsForCollapsedNodes()).always(() => { onItemsVisibilityChanged(); });\n }\n else if (this._getLoadChildItemsForCollapsedNodes()) {\n this.items().forEach((item) => {\n item._treeListController.hasItems(item.data) && item.items().length === 0 && item._loadItems(options);\n });\n onItemsVisibilityChanged();\n }\n }\n };\n this.nodeImageClass = this._getNodeImageClassName();\n this._subscriptions.push(this._visible.subscribe((newValue) => this._updataParentItemsVisibilityCount(newValue)));\n }\n _equal(obj1, obj2) {\n var ignore = ['innerActions', 'noDragable', 'dragData'];\n if (obj2 === obj1)\n return true;\n return Object.keys(obj2).filter(key => ignore.indexOf(key) === -1).every((key) => {\n return obj2[key] === obj1[key];\n });\n }\n _getImageClassName(showIcon) {\n return ko.computed(() => {\n return 'dx-image-fieldlist-'\n + this._iconName()\n + (!showIcon ? ' dx-treelist-image-empty' : '');\n });\n }\n _getImageTemplateName() {\n return ko.computed(() => {\n var _templateName = 'dxrd-svg-fieldlist-' + this._iconName();\n return SvgTemplatesEngine.getExistingTemplate(_templateName);\n });\n }\n _getNodeImageClassName() {\n return ko.computed({\n read: () => {\n var result = 'dx-collapsing-image';\n if (!this.hasItems) {\n return 'dx-image-leaf-node';\n }\n if (!this.collapsed())\n result += ' dx-image-expanded';\n return result;\n }\n });\n }\n _createItemsObj(items) {\n var obj = {};\n for (var i = 0; i < items.length; i++) {\n obj[items[i].name] = { item: items[i], index: i };\n }\n return obj;\n }\n _loadItems(options, loadInnerItems = false) {\n var deferred = $.Deferred();\n if (this._loader) {\n this._loader.dispose();\n }\n this._disposables.reverse().forEach(x => x.dispose && x.dispose());\n this._disposables.splice(0);\n var promise = ko.observable();\n var subscription = promise.subscribe((value) => {\n if (!value)\n return;\n value.done((data) => {\n if (this.isDisposing) {\n deferred.reject();\n return;\n }\n this._isLoaded(true);\n var _data = data;\n var items = this.items.peek();\n var dataObj = this._createItemsObj(_data);\n var isMutated = false;\n var splicedItems = 0;\n var tempItems = [].concat.apply([], items);\n for (var i = 0; i < tempItems.length; i++) {\n if (!dataObj[tempItems[i].data.name]) {\n tempItems[i].dispose();\n items.splice(i - splicedItems, 1);\n splicedItems++;\n isMutated = true;\n }\n }\n this._visibleItemsCount(this._visibleItemsCount() - splicedItems);\n var itemsObj = this._createItemsObj(items);\n var resorted = false;\n var showIconsForChildItems = !this._treeListController.showIconsForChildItems || this._treeListController.showIconsForChildItems(this);\n var showIconTemplate = this._treeListController.showIconsForChildItems && this._treeListController.showIconsForChildItems(this);\n _data.forEach((d, index) => {\n var currentItem = itemsObj[d.name];\n if (!currentItem) {\n isMutated = true;\n var newItem = this._factory.createItem(options, this.pathParts, this._onItemsVisibilityChanged, this._rtl, this.resolver);\n newItem.data = d;\n newItem.level = this.level + 1;\n newItem.parent = this;\n newItem.visible && this._visibleItemsCount(this._visibleItemsCount() + 1);\n newItem.padding = this._applyPadding(this._rtl ? 'right' : 'left', 20 * newItem.level + 12);\n newItem.imageClassName = newItem._getImageClassName(showIconsForChildItems);\n newItem.imageTemplateName = newItem._getImageTemplateName();\n newItem.showIcon = showIconTemplate;\n items.splice(index, 0, newItem);\n itemsObj[d.name] = { item: newItem, index: index };\n this._walkCallback && this._walkCallback(newItem);\n }\n else {\n if (!this._equal(d, currentItem.item.data))\n currentItem.item.data = d;\n if (!resorted)\n resorted = currentItem.index !== index;\n }\n });\n this._walkCallback = null;\n if (resorted) {\n var index = items.reduce((acc, x, index) => {\n var max = Math.abs(index - (dataObj[x.data.name] ? dataObj[x.data.name].index : -1));\n if (!acc || acc.max < max) {\n return { max, index };\n }\n return acc;\n }, null).index;\n var curItem = items[index];\n items.splice(index, 1);\n items.splice(dataObj[curItem.data.name] ? dataObj[curItem.data.name].index : -1, 0, curItem);\n isMutated = true;\n }\n dataObj = null;\n itemsObj = null;\n if (isMutated) {\n this.items.valueHasMutated();\n this._onItemsChanged();\n }\n if (!this.collapsed() || loadInnerItems) {\n var condition = (item) => item._treeListController.hasItems(item.data);\n if (this._loadChildItemsForCollapsedNodes !== undefined)\n condition = (item) => (!item.collapsed() || loadInnerItems) && item._treeListController.hasItems(item.data);\n this.items().forEach(item => {\n if (condition(item)) {\n item._loadItems(options);\n }\n });\n }\n deferred.resolve(this.items.peek());\n var selectedPath = options.selectedPath.peek();\n if (selectedPath) {\n var item2Select = this.items.peek().filter(item => { return selectedPath.indexOf(item.path) === 0; })[0];\n if (item2Select) {\n this._selectItem(item2Select.name + selectedPath.substring(item2Select.path.length));\n }\n }\n });\n });\n this._disposables.push({\n dispose: () => {\n subscription.dispose();\n promise(null);\n }\n });\n this._disposables.push(this._loader = ko.computed(() => {\n promise(options.itemsProvider.getItems(new PathRequest(this.path, this.pathParts)));\n }));\n return deferred.promise();\n }\n _onItemsChanged() {\n if (this._onItemsChangedCallback)\n this._onItemsChangedCallback(this.items());\n }\n _getTemplateName() {\n return this._templateName || this.data && this.data.templateName || 'dx-treelist-item';\n }\n _selectItem(itemPath) {\n if (!this.hasItems) {\n return;\n }\n var selectItemDelegate = () => {\n this._find(itemPath);\n if (this.collapsed.peek()) {\n this.toggleCollapsed();\n }\n };\n if (this.items.peek().length === 0) {\n this.getItems().done((items) => {\n selectItemDelegate();\n });\n }\n else {\n selectItemDelegate();\n }\n }\n _find(itemPath) {\n var item = itemPath && this.items.peek().filter(childItem => itemPath === childItem.name\n || itemPath.indexOf(childItem.name) === 0 && itemPath[childItem.name.length] === '.')[0];\n if (item) {\n if (itemPath.length > item.name.length) {\n item._selectItem(itemPath.substr(item.name.length + 1));\n }\n else {\n this._treeListController.select(item);\n }\n }\n }\n _getItemsWithLock() {\n var deffered = $.Deferred();\n if (this._nodeIsLocked)\n return deffered.reject().promise();\n this._nodeIsLocked = true;\n this.getItems().done(result => {\n this._nodeIsLocked = false;\n deffered.resolve(result);\n }).fail(() => {\n this._nodeIsLocked = false;\n deffered.reject();\n });\n return deffered.promise();\n }\n _applyPadding(position, value) {\n var padding = {};\n padding['padding-' + position] = value;\n return padding;\n }\n _getLoadChildItemsForCollapsedNodes() {\n return this._loadChildItemsForCollapsedNodes !== undefined ?\n this._loadChildItemsForCollapsedNodes : LoadChildItemsForCollapsedNodes();\n }\n _initPaginate() {\n if (this._pageSize === -1)\n return;\n this.maxItemsCount = ko.observable(this._pageSize);\n this.visibleItems = ko.computed(() => {\n if (this.items().length === 0)\n return [];\n var result = this.items().filter(x => x._isVisible.peek());\n if (result.length > this.maxItemsCount()) {\n result = result.slice(0, this.maxItemsCount());\n result.push(new TreeListEllipsisButton(this.maxItemsCount, result[0].padding, this._pageSize));\n }\n return result;\n });\n }\n _updataParentItemsVisibilityCount(visible) {\n var _a, _b;\n visible ? (_a = this.parent) === null || _a === void 0 ? void 0 : _a._visibleItemsCount(this.parent._visibleItemsCount() + 1)\n : (_b = this.parent) === null || _b === void 0 ? void 0 : _b._visibleItemsCount(Math.max(this.parent._visibleItemsCount() - 1, 0));\n }\n get hasItems() {\n if (!this.data) {\n return true;\n }\n var hasItems = this._treeListController.hasItems(this.data);\n if (this._loadChildItemsForCollapsedNodes != undefined) {\n return this._isLoaded() ?\n hasItems && this._visibleItemsCount() > 0 :\n hasItems;\n }\n return LoadChildItemsForCollapsedNodes() ?\n hasItems && this._visibleItemsCount() > 0 :\n hasItems;\n }\n get data() {\n return this._data();\n }\n set data(newVal) {\n this._data(newVal);\n this._actionsSubscription && this._actionsSubscription.dispose();\n this._actionsSubscription = ko.computed(() => {\n this._actions(this._treeListController && this._treeListController.getActions ? this._treeListController.getActions(this) : []);\n });\n }\n get name() {\n return ko.unwrap(this.data && this.data.name);\n }\n get path() {\n return this.pathParts.join('.');\n }\n get pathParts() {\n if (this.name) {\n return (ko.unwrap(this._path) || []).concat([this.name]);\n }\n else {\n return ko.unwrap(this._path);\n }\n }\n get text() {\n return this.data && this.data.displayName;\n }\n get templateName() {\n return this._getTemplateName();\n }\n actionsTemplate() {\n return this.data && ko.unwrap(this.data['actionsTemplate']) || 'dx-treelist-item-actions-with-edit';\n }\n treeListEditAction() {\n return treeListEditAction;\n }\n get hasContent() {\n return this.data && this.data['contenttemplate'];\n }\n get actions() {\n return this._actions();\n }\n get isDraggable() {\n if (this.data && this.data['dragData']) {\n return !this.data['dragData'].noDragable;\n }\n if (this._treeListController.isDraggable) {\n return this._treeListController.isDraggable(this);\n }\n return false;\n }\n get treeListController() {\n return this._treeListController;\n }\n dispose() {\n super.dispose();\n this._actions([]);\n this.visibleItems && this.visibleItems.dispose();\n this._actionsSubscription && this._actionsSubscription.dispose();\n this.disposeObservableArray(this.items);\n this.resetObservableArray(this.items);\n this._visibleItemsCount(0);\n this.parent = null;\n this._subscriptions.forEach(x => x.dispose());\n this._walkCallback = null;\n this._visible.dispose();\n }\n get visible() {\n return this._visible();\n }\n setVisible(value) {\n this._isVisible(value);\n if (value && this.parent && !this.parent.visible)\n this.parent.setVisible(true);\n }\n getCssRules() {\n return {\n 'dx-treelist-item-selected dxd-state-selected': this.isSelected() || this.isMultiSelected()\n };\n }\n mouseenter() {\n this.isHovered(true);\n }\n mouseleave() {\n this.isHovered(false);\n }\n selectedItems() {\n return this._treeListController.selectedItems && this._treeListController.selectedItems() || [];\n }\n}\nexport class TreeListRootItemViewModel extends TreeListItemViewModel {\n constructor(_options, path = [], onItemsVisibilityChanged = $.noop, rtl = false) {\n super(_options, path, onItemsVisibilityChanged, rtl);\n this._options = _options;\n this._resolver = new CodeResolver();\n this._selectedPathSubscription = null;\n this.resolver.done(() => {\n onItemsVisibilityChanged();\n });\n this._selectedPathSubscription = _options.selectedPath.subscribe((newPath) => {\n this._selectItem(!!this.path ? newPath.substr(this.path.length + 1) : newPath);\n });\n this._selectItem(!!this.path ? this.path + '.' + _options.selectedPath() : _options.selectedPath());\n }\n dispose() {\n super.dispose();\n this._resolver.clear();\n if (this._selectedPathSubscription) {\n this._selectedPathSubscription.dispose();\n this._selectedPathSubscription = null;\n }\n }\n walkOnTree(walkCallBack) {\n this._resolver.clear();\n this._visitNextNode(this, walkCallBack);\n if (this['_pageSize'] != -1)\n this._resolver.doneOnce(() => this.items.valueHasMutated());\n return { stop: () => this._resolver.clear() };\n }\n _visitNextNode(item, walkCallback = (_item) => { }) {\n var _a;\n if (item.data && !item.data.specifics)\n throw new Error('Specific should be set');\n if (item.level >= maxSearchLevel())\n return;\n var processItemsFunc = null;\n if (item.items().length > 0) {\n processItemsFunc = () => item.items().forEach(node => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n });\n }\n else if (!item.data || item.treeListController.hasItems(item.data)) {\n if ((_a = item.treeListController.searchOptions) === null || _a === void 0 ? void 0 : _a.autoLoadItems) {\n processItemsFunc = () => item._getItemsWithLock().done(result => {\n result.forEach((node) => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n });\n });\n }\n else {\n item['_walkCallback'] = (node) => {\n walkCallback(node);\n this._visitNextNode(node, walkCallback);\n };\n }\n }\n if (processItemsFunc)\n this._resolver.execute(processItemsFunc, 1);\n }\n _onItemsChanged() {\n if (this._options.expandRootItems)\n this.items().forEach(item => {\n item.collapsed(false);\n });\n super._onItemsChanged();\n }\n}\n","/**\r\n* DevExpress Analytics (widgets\\treelist\\options.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createGlobalModuleVariableFunc } from '../../serializer/_internal';\nexport var LoadChildItemsForCollapsedNodes = createGlobalModuleVariableFunc(true);\n","export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length) ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","import { Component } from 'inferno';\nlet contextId = 0;\nexport const createContext = function (defaultValue) {\n const id = contextId++;\n return {\n id,\n defaultValue,\n Provider: class extends Component {\n getChildContext() {\n return Object.assign(Object.assign({}, this.context), { [id]: this.props.value || defaultValue });\n }\n render() {\n return this.props.children;\n }\n },\n };\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.dependency = dependency;\n this.effect = effect;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nconst getContainer = (props) => { var _a, _b; return ((_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0)) || ((_b = props.item) === null || _b === void 0 ? void 0 : _b.get(0)); };\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n render(createElement(template, props), getContainer(props));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => {\n const value = properties[name];\n return !!value && typeof value !== 'string';\n};\n","const NUMBER_STYLES = new Set([\n 'animationIterationCount',\n 'borderImageOutset',\n 'borderImageSlice',\n 'border-imageWidth',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexNegative',\n 'flexOrder',\n 'flexPositive',\n 'flexShrink',\n 'floodOpacity',\n 'fontWeight',\n 'gridColumn',\n 'gridRow',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'stopOpacity',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n]);\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !Number.isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.has(style) ? value : `${value}px`);\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nexport function normalizeStyles(styles) {\n if (!(styles instanceof Object)) {\n return undefined;\n }\n return Object\n .entries(styles)\n .reduce((acc, [key, value]) => {\n acc[kebabCase(key)] = isNumeric(value)\n ? getNumberStyleValue(key, value)\n : value;\n return acc;\n }, {});\n}\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = Object.keys(tzData).reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (isNaN(number) || SameValue(number, -0)) {\n return 0;\n }\n if (isFinite(number)) {\n return number;\n }\n var integer = Math.floor(Math.abs(number));\n if (number < 0) {\n integer = -integer;\n }\n if (SameValue(integer, -0)) {\n return 0;\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!isFinite(time)) {\n return NaN;\n }\n if (Math.abs(time) > 8.64 * 1e15) {\n return NaN;\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return Date.UTC(y, 0);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n return new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n return typeof fn === 'function';\n}\n/**\n * The abstract operation OrdinaryHasInstance implements\n * the default algorithm for determining if an object O\n * inherits from the instance object inheritance path\n * provided by constructor C.\n * @param C class\n * @param O object\n * @param internalSlots internalSlots\n */\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n if (!IsCallable(C)) {\n return false;\n }\n if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {\n var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;\n return O instanceof BC;\n }\n if (typeof O !== 'object') {\n return false;\n }\n var P = C.prototype;\n if (typeof P !== 'object') {\n throw new TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');\n }\n return Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n return mod(t, MS_PER_SECOND);\n}\n","import { ToObject } from './262';\n/**\n * https://tc39.es/ecma402/#sec-coerceoptionstoobject\n * @param options\n * @returns\n */\nexport function CoerceOptionsToObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n return ToObject(options);\n}\n","export function DefaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(\"\".concat(val, \" is outside of range [\").concat(min, \", \").concat(max, \"]\"));\n }\n return Math.floor(val);\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n // @ts-expect-error\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n if (typeof opts !== 'object') {\n throw new TypeError('Options must be an object');\n }\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(\"\".concat(value, \" is not within \").concat(values.join(', ')));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getoptionsobject\n * @param options\n * @returns\n */\nexport function GetOptionsObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n if (typeof options === 'object') {\n return options;\n }\n throw new TypeError('Options must be an object');\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set();\n var linkNames = new Set();\n Object.keys(tzData)\n .map(function (z) { return z.toUpperCase(); })\n .forEach(function (z) { return zoneNames.add(z); });\n Object.keys(uppercaseLinks).forEach(function (linkName) {\n linkNames.add(linkName.toUpperCase());\n zoneNames.add(uppercaseLinks[linkName].toUpperCase());\n });\n return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n default: {\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","import { repeat, getMagnitude } from '../utils';\nexport function ToRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n var xToString = x.toString();\n // If xToString is formatted as scientific notation, the number is either very small or very\n // large. If the precision of the formatted string is lower that requested max precision, we\n // should still infer them from the formatted string, otherwise the formatted result might have\n // precision loss (e.g. 1e41 will not have 0 in every trailing digits).\n var xToStringExponentIndex = xToString.indexOf('e');\n var _a = xToString.split('e'), xToStringMantissa = _a[0], xToStringExponent = _a[1];\n var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace('.', '');\n if (xToStringExponentIndex >= 0 &&\n xToStringMantissaWithoutDecimalPoint.length <= p) {\n e = +xToStringExponent;\n m =\n xToStringMantissaWithoutDecimalPoint +\n repeat('0', p - xToStringMantissaWithoutDecimalPoint.length);\n xFinal = x;\n }\n else {\n e = getMagnitude(x);\n var decimalPlaceOffset = e - p + 1;\n // n is the integer containing the required precision digits. To derive the formatted string,\n // we will adjust its decimal place in the logic below.\n var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));\n // The rounding caused the change of magnitude, so we should increment `e` by 1.\n if (adjustDecimalPlace(n, p - 1) >= 10) {\n e = e + 1;\n // Divide n by 10 to swallow one precision.\n n = Math.floor(n / 10);\n }\n m = n.toString();\n // Equivalent of n * 10 ** (e - p + 1)\n xFinal = adjustDecimalPlace(n, p - 1 - e);\n }\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = \"\".concat(m.slice(0, e + 1), \".\").concat(m.slice(e + 1));\n int = e + 1;\n }\n else {\n m = \"0.\".concat(repeat('0', -e - 1)).concat(m);\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n // x / (10 ** magnitude), but try to preserve as much floating point precision as possible.\n function adjustDecimalPlace(x, magnitude) {\n return magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n }\n}\n","import { repeat } from '../utils';\n/**\n * TODO: dedup with intl-pluralrules and support BigInt\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction and integer between 0 and 20\n * @param maxFraction and integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n = Math.round(x * Math.pow(10, f));\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var _a = m.split('e'), mantissa = _a[0], exponent = _a[1];\n m = mantissa.replace('.', '');\n m = m + repeat('0', Math.max(+exponent - m.length + 1, 0));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = \"\".concat(a, \".\").concat(b);\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n","import { SameValue } from '../262';\nimport { ToRawPrecision } from './ToRawPrecision';\nimport { repeat } from '../utils';\nimport { ToRawFixed } from './ToRawFixed';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, x) {\n var isNegative = x < 0 || SameValue(x, -0);\n if (isNegative) {\n x = -x;\n }\n var result;\n var rourndingType = intlObject.roundingType;\n switch (rourndingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);\n break;\n default:\n result = ToRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = ToRawFixed(x, 0, 0);\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import { getMagnitude } from '../utils';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(numberFormat, x, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (x === 0) {\n return [0, 0];\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {\n getInternalSlots: getInternalSlots,\n });\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(getInternalSlots(numberFormat), x);\n if (formatNumberResult.roundedNumber === 0) {\n return [exponent, magnitude];\n }\n var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);\n if (newMagnitude === magnitude - exponent) {\n return [exponent, magnitude];\n }\n return [\n ComputeExponentForMagnitude(numberFormat, magnitude + 1, {\n getInternalSlots: getInternalSlots,\n }),\n magnitude + 1,\n ];\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","export var digitMapping = { \"adlm\": [\"𞥐\", \"𞥑\", \"𞥒\", \"𞥓\", \"𞥔\", \"𞥕\", \"𞥖\", \"𞥗\", \"𞥘\", \"𞥙\"], \"ahom\": [\"𑜰\", \"𑜱\", \"𑜲\", \"𑜳\", \"𑜴\", \"𑜵\", \"𑜶\", \"𑜷\", \"𑜸\", \"𑜹\"], \"arab\": [\"٠\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"], \"arabext\": [\"۰\", \"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\"], \"bali\": [\"᭐\", \"᭑\", \"᭒\", \"᭓\", \"᭔\", \"᭕\", \"᭖\", \"᭗\", \"᭘\", \"᭙\"], \"beng\": [\"০\", \"১\", \"২\", \"৩\", \"৪\", \"৫\", \"৬\", \"৭\", \"৮\", \"৯\"], \"bhks\": [\"𑱐\", \"𑱑\", \"𑱒\", \"𑱓\", \"𑱔\", \"𑱕\", \"𑱖\", \"𑱗\", \"𑱘\", \"𑱙\"], \"brah\": [\"𑁦\", \"𑁧\", \"𑁨\", \"𑁩\", \"𑁪\", \"𑁫\", \"𑁬\", \"𑁭\", \"𑁮\", \"𑁯\"], \"cakm\": [\"𑄶\", \"𑄷\", \"𑄸\", \"𑄹\", \"𑄺\", \"𑄻\", \"𑄼\", \"𑄽\", \"𑄾\", \"𑄿\"], \"cham\": [\"꩐\", \"꩑\", \"꩒\", \"꩓\", \"꩔\", \"꩕\", \"꩖\", \"꩗\", \"꩘\", \"꩙\"], \"deva\": [\"०\", \"१\", \"२\", \"३\", \"४\", \"५\", \"६\", \"७\", \"८\", \"९\"], \"diak\": [\"𑥐\", \"𑥑\", \"𑥒\", \"𑥓\", \"𑥔\", \"𑥕\", \"𑥖\", \"𑥗\", \"𑥘\", \"𑥙\"], \"fullwide\": [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"], \"gong\": [\"𑶠\", \"𑶡\", \"𑶢\", \"𑶣\", \"𑶤\", \"𑶥\", \"𑶦\", \"𑶧\", \"𑶨\", \"𑶩\"], \"gonm\": [\"𑵐\", \"𑵑\", \"𑵒\", \"𑵓\", \"𑵔\", \"𑵕\", \"𑵖\", \"𑵗\", \"𑵘\", \"𑵙\"], \"gujr\": [\"૦\", \"૧\", \"૨\", \"૩\", \"૪\", \"૫\", \"૬\", \"૭\", \"૮\", \"૯\"], \"guru\": [\"੦\", \"੧\", \"੨\", \"੩\", \"੪\", \"੫\", \"੬\", \"੭\", \"੮\", \"੯\"], \"hanidec\": [\"〇\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\"], \"hmng\": [\"𖭐\", \"𖭑\", \"𖭒\", \"𖭓\", \"𖭔\", \"𖭕\", \"𖭖\", \"𖭗\", \"𖭘\", \"𖭙\"], \"hmnp\": [\"𞅀\", \"𞅁\", \"𞅂\", \"𞅃\", \"𞅄\", \"𞅅\", \"𞅆\", \"𞅇\", \"𞅈\", \"𞅉\"], \"java\": [\"꧐\", \"꧑\", \"꧒\", \"꧓\", \"꧔\", \"꧕\", \"꧖\", \"꧗\", \"꧘\", \"꧙\"], \"kali\": [\"꤀\", \"꤁\", \"꤂\", \"꤃\", \"꤄\", \"꤅\", \"꤆\", \"꤇\", \"꤈\", \"꤉\"], \"khmr\": [\"០\", \"១\", \"២\", \"៣\", \"៤\", \"៥\", \"៦\", \"៧\", \"៨\", \"៩\"], \"knda\": [\"೦\", \"೧\", \"೨\", \"೩\", \"೪\", \"೫\", \"೬\", \"೭\", \"೮\", \"೯\"], \"lana\": [\"᪀\", \"᪁\", \"᪂\", \"᪃\", \"᪄\", \"᪅\", \"᪆\", \"᪇\", \"᪈\", \"᪉\"], \"lanatham\": [\"᪐\", \"᪑\", \"᪒\", \"᪓\", \"᪔\", \"᪕\", \"᪖\", \"᪗\", \"᪘\", \"᪙\"], \"laoo\": [\"໐\", \"໑\", \"໒\", \"໓\", \"໔\", \"໕\", \"໖\", \"໗\", \"໘\", \"໙\"], \"lepc\": [\"᪐\", \"᪑\", \"᪒\", \"᪓\", \"᪔\", \"᪕\", \"᪖\", \"᪗\", \"᪘\", \"᪙\"], \"limb\": [\"᥆\", \"᥇\", \"᥈\", \"᥉\", \"᥊\", \"᥋\", \"᥌\", \"᥍\", \"᥎\", \"᥏\"], \"mathbold\": [\"𝟎\", \"𝟏\", \"𝟐\", \"𝟑\", \"𝟒\", \"𝟓\", \"𝟔\", \"𝟕\", \"𝟖\", \"𝟗\"], \"mathdbl\": [\"𝟘\", \"𝟙\", \"𝟚\", \"𝟛\", \"𝟜\", \"𝟝\", \"𝟞\", \"𝟟\", \"𝟠\", \"𝟡\"], \"mathmono\": [\"𝟶\", \"𝟷\", \"𝟸\", \"𝟹\", \"𝟺\", \"𝟻\", \"𝟼\", \"𝟽\", \"𝟾\", \"𝟿\"], \"mathsanb\": [\"𝟬\", \"𝟭\", \"𝟮\", \"𝟯\", \"𝟰\", \"𝟱\", \"𝟲\", \"𝟳\", \"𝟴\", \"𝟵\"], \"mathsans\": [\"𝟢\", \"𝟣\", \"𝟤\", \"𝟥\", \"𝟦\", \"𝟧\", \"𝟨\", \"𝟩\", \"𝟪\", \"𝟫\"], \"mlym\": [\"൦\", \"൧\", \"൨\", \"൩\", \"൪\", \"൫\", \"൬\", \"൭\", \"൮\", \"൯\"], \"modi\": [\"𑙐\", \"𑙑\", \"𑙒\", \"𑙓\", \"𑙔\", \"𑙕\", \"𑙖\", \"𑙗\", \"𑙘\", \"𑙙\"], \"mong\": [\"᠐\", \"᠑\", \"᠒\", \"᠓\", \"᠔\", \"᠕\", \"᠖\", \"᠗\", \"᠘\", \"᠙\"], \"mroo\": [\"𖩠\", \"𖩡\", \"𖩢\", \"𖩣\", \"𖩤\", \"𖩥\", \"𖩦\", \"𖩧\", \"𖩨\", \"𖩩\"], \"mtei\": [\"꯰\", \"꯱\", \"꯲\", \"꯳\", \"꯴\", \"꯵\", \"꯶\", \"꯷\", \"꯸\", \"꯹\"], \"mymr\": [\"၀\", \"၁\", \"၂\", \"၃\", \"၄\", \"၅\", \"၆\", \"၇\", \"၈\", \"၉\"], \"mymrshan\": [\"႐\", \"႑\", \"႒\", \"႓\", \"႔\", \"႕\", \"႖\", \"႗\", \"႘\", \"႙\"], \"mymrtlng\": [\"꧰\", \"꧱\", \"꧲\", \"꧳\", \"꧴\", \"꧵\", \"꧶\", \"꧷\", \"꧸\", \"꧹\"], \"newa\": [\"𑑐\", \"𑑑\", \"𑑒\", \"𑑓\", \"𑑔\", \"𑑕\", \"𑑖\", \"𑑗\", \"𑑘\", \"𑑙\"], \"nkoo\": [\"߀\", \"߁\", \"߂\", \"߃\", \"߄\", \"߅\", \"߆\", \"߇\", \"߈\", \"߉\"], \"olck\": [\"᱐\", \"᱑\", \"᱒\", \"᱓\", \"᱔\", \"᱕\", \"᱖\", \"᱗\", \"᱘\", \"᱙\"], \"orya\": [\"୦\", \"୧\", \"୨\", \"୩\", \"୪\", \"୫\", \"୬\", \"୭\", \"୮\", \"୯\"], \"osma\": [\"𐒠\", \"𐒡\", \"𐒢\", \"𐒣\", \"𐒤\", \"𐒥\", \"𐒦\", \"𐒧\", \"𐒨\", \"𐒩\"], \"rohg\": [\"𐴰\", \"𐴱\", \"𐴲\", \"𐴳\", \"𐴴\", \"𐴵\", \"𐴶\", \"𐴷\", \"𐴸\", \"𐴹\"], \"saur\": [\"꣐\", \"꣑\", \"꣒\", \"꣓\", \"꣔\", \"꣕\", \"꣖\", \"꣗\", \"꣘\", \"꣙\"], \"segment\": [\"🯰\", \"🯱\", \"🯲\", \"🯳\", \"🯴\", \"🯵\", \"🯶\", \"🯷\", \"🯸\", \"🯹\"], \"shrd\": [\"𑇐\", \"𑇑\", \"𑇒\", \"𑇓\", \"𑇔\", \"𑇕\", \"𑇖\", \"𑇗\", \"𑇘\", \"𑇙\"], \"sind\": [\"𑋰\", \"𑋱\", \"𑋲\", \"𑋳\", \"𑋴\", \"𑋵\", \"𑋶\", \"𑋷\", \"𑋸\", \"𑋹\"], \"sinh\": [\"෦\", \"෧\", \"෨\", \"෩\", \"෪\", \"෫\", \"෬\", \"෭\", \"෮\", \"෯\"], \"sora\": [\"𑃰\", \"𑃱\", \"𑃲\", \"𑃳\", \"𑃴\", \"𑃵\", \"𑃶\", \"𑃷\", \"𑃸\", \"𑃹\"], \"sund\": [\"᮰\", \"᮱\", \"᮲\", \"᮳\", \"᮴\", \"᮵\", \"᮶\", \"᮷\", \"᮸\", \"᮹\"], \"takr\": [\"𑛀\", \"𑛁\", \"𑛂\", \"𑛃\", \"𑛄\", \"𑛅\", \"𑛆\", \"𑛇\", \"𑛈\", \"𑛉\"], \"talu\": [\"᧐\", \"᧑\", \"᧒\", \"᧓\", \"᧔\", \"᧕\", \"᧖\", \"᧗\", \"᧘\", \"᧙\"], \"tamldec\": [\"௦\", \"௧\", \"௨\", \"௩\", \"௪\", \"௫\", \"௬\", \"௭\", \"௮\", \"௯\"], \"telu\": [\"౦\", \"౧\", \"౨\", \"౩\", \"౪\", \"౫\", \"౬\", \"౭\", \"౮\", \"౯\"], \"thai\": [\"๐\", \"๑\", \"๒\", \"๓\", \"๔\", \"๕\", \"๖\", \"๗\", \"๘\", \"๙\"], \"tibt\": [\"༠\", \"༡\", \"༢\", \"༣\", \"༤\", \"༥\", \"༦\", \"༧\", \"༨\", \"༩\"], \"tirh\": [\"𑓐\", \"𑓑\", \"𑓒\", \"𑓓\", \"𑓔\", \"𑓕\", \"𑓖\", \"𑓗\", \"𑓘\", \"𑓙\"], \"vaii\": [\"ᘠ\", \"ᘡ\", \"ᘢ\", \"ᘣ\", \"ᘤ\", \"ᘥ\", \"ᘦ\", \"ᘧ\", \"ᘨ\", \"ᘩ\"], \"wara\": [\"𑣠\", \"𑣡\", \"𑣢\", \"𑣣\", \"𑣤\", \"𑣥\", \"𑣦\", \"𑣧\", \"𑣨\", \"𑣩\"], \"wcho\": [\"𞋰\", \"𞋱\", \"𞋲\", \"𞋳\", \"𞋴\", \"𞋵\", \"𞋶\", \"𞋷\", \"𞋸\", \"𞋹\"] };\n","// @generated from regex-gen.ts\nexport var S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEE0-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n","import { ToRawFixed } from './ToRawFixed';\nimport { digitMapping } from './digit-mapping.generated';\nimport { S_UNICODE_REGEX } from '../regex.generated';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\".concat(S_UNICODE_REGEX.source));\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(\"\".concat(S_UNICODE_REGEX.source, \"$\"));\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\".concat(afterCurrency, \"{0}\"));\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\".concat(beforeCurrency, \"\\u00A4\"));\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && options.useGrouping, decimalNumberPattern));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {\n var part = unitPatternParts_1[_a];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _b = unit.split('-per-'), numeratorUnit = _b[0], denominatorUnit = _b[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _c = 0, _d = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _c < _d.length; _c++) {\n var part = _d[_c];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (isNaN(x)) {\n return [{ type: 'nan', value: n }];\n }\n else if (!isFinite(x)) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n if (useGrouping && (notation !== 'compact' || x >= 10000)) {\n var groupSepSymbol = symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n result.push({ type: 'decimal', value: symbols.decimal }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n isFinite(x)) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(exponent, 0, 0);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = \"\".concat(pattern, \";-\").concat(pattern);\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\".concat(zeroPattern);\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","import { FormatNumericToString } from './FormatNumericToString';\nimport { SameValue } from '../262';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function PartitionNumberPattern(numberFormat, x, _a) {\n var _b;\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n var magnitude = 0;\n var exponent = 0;\n var n;\n if (isNaN(x)) {\n n = symbols.nan;\n }\n else if (!isFinite(x)) {\n n = symbols.infinity;\n }\n else {\n if (internalSlots.style === 'percent') {\n x *= 100;\n }\n ;\n _b = ComputeExponent(numberFormat, x, {\n getInternalSlots: getInternalSlots,\n }), exponent = _b[0], magnitude = _b[1];\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n n = formatNumberResult.formattedString;\n x = formatNumberResult.roundedNumber;\n }\n // Based on https://tc39.es/ecma402/#sec-getnumberformatpattern\n // We need to do this before `x` is rounded.\n var sign;\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n sign = 0;\n break;\n case 'auto':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 0;\n }\n else {\n sign = -1;\n }\n break;\n case 'always':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n break;\n default:\n // x === 0 -> x is 0 or x is -0\n if (x === 0 || isNaN(x)) {\n sign = 0;\n }\n else if (x > 0) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n }\n return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { ArrayCreate } from '../262';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(nf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(nf, options, _a) {\n if (options === void 0) { options = Object.create(null); }\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(nf);\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n internalSlots.style = style;\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !IsWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n if (style === 'currency' && currency === undefined) {\n throw TypeError('currency cannot be undefined');\n }\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !IsWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n if (style === 'unit' && unit === undefined) {\n throw TypeError('unit cannot be undefined');\n }\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n internalSlots.currency = currency.toUpperCase();\n internalSlots.currencyDisplay = currencyDisplay;\n internalSlots.currencySign = currencySign;\n }\n if (style === 'unit') {\n internalSlots.unit = unit;\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { GetNumberOption } from '../GetNumberOption';\nimport { DefaultNumberOption } from '../DefaultNumberOption';\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n internalSlots.minimumIntegerDigits = mnid;\n if (mnsd !== undefined || mxsd !== undefined) {\n internalSlots.roundingType = 'significantDigits';\n mnsd = DefaultNumberOption(mnsd, 1, 21, 1);\n mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);\n internalSlots.minimumSignificantDigits = mnsd;\n internalSlots.maximumSignificantDigits = mxsd;\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n internalSlots.roundingType = 'fractionDigits';\n mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n internalSlots.minimumFractionDigits = mnfd;\n internalSlots.maximumFractionDigits = mxfd;\n }\n else if (notation === 'compact') {\n internalSlots.roundingType = 'compactRounding';\n }\n else {\n internalSlots.roundingType = 'fractionDigits';\n internalSlots.minimumFractionDigits = mnfdDefault;\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { GetOption } from '../GetOption';\nimport { ResolveLocale } from '@formatjs/intl-localematcher';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { invariant } from '../utils';\nimport { CoerceOptionsToObject } from '../CoerceOptionsToObject';\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = CoerceOptionsToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \".concat(numberingSystem));\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(availableLocales, requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \".concat(r.dataLocale));\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots });\n var style = internalSlots.style;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n }\n var useGrouping = GetOption(options, 'useGrouping', 'boolean', undefined, true);\n internalSlots.useGrouping = useGrouping;\n var signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero'], 'auto');\n internalSlots.signDisplay = signDisplay;\n return nf;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \".concat(pattern));\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { ToObject } from './262';\nimport { GetOption } from './GetOption';\nimport { LookupSupportedLocales } from '@formatjs/intl-localematcher';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(availableLocales, requestedLocales);\n }\n return LookupSupportedLocales(availableLocales, requestedLocales);\n}\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (availableLocales.has(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nexport function UnicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\".concat(key, \"-\");\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\".concat(key);\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\n","import { LookupMatcher } from './LookupMatcher';\nimport { BestFitMatcher } from './BestFitMatcher';\nimport { invariant } from './utils';\nimport { UnicodeExtensionValue } from './UnicodeExtensionValue';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n else {\n r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n invariant(foundLocale in localeData, \"Missing locale data for \".concat(foundLocale));\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \".concat(key, \" must be an object\"));\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \".concat(key, \" must be an array\"));\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, \"value must be string or null but got \".concat(typeof value, \" in key \").concat(key));\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = UnicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\".concat(key, \"-\").concat(value);\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\".concat(key);\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = Intl.getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var minimizedAvailableLocaleMap = {};\n var availableLocaleMap = {};\n var canonicalizedLocaleMap = {};\n var minimizedAvailableLocales = new Set();\n availableLocales.forEach(function (locale) {\n var minimizedLocale = new Intl.Locale(locale)\n .minimize()\n .toString();\n var canonicalizedLocale = Intl.getCanonicalLocales(locale)[0] || locale;\n minimizedAvailableLocaleMap[minimizedLocale] = locale;\n availableLocaleMap[locale] = locale;\n canonicalizedLocaleMap[canonicalizedLocale] = locale;\n minimizedAvailableLocales.add(minimizedLocale);\n minimizedAvailableLocales.add(locale);\n minimizedAvailableLocales.add(canonicalizedLocale);\n });\n var foundLocale;\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var l = requestedLocales_1[_i];\n if (foundLocale) {\n break;\n }\n var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n if (availableLocales.has(noExtensionLocale)) {\n foundLocale = noExtensionLocale;\n break;\n }\n if (minimizedAvailableLocales.has(noExtensionLocale)) {\n foundLocale = noExtensionLocale;\n break;\n }\n var locale = new Intl.Locale(noExtensionLocale);\n var maximizedRequestedLocale = locale.maximize().toString();\n var minimizedRequestedLocale = locale.minimize().toString();\n // Check minimized locale\n if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {\n foundLocale = minimizedRequestedLocale;\n break;\n }\n // Lookup algo on maximized locale\n foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);\n }\n if (!foundLocale) {\n return { locale: getDefaultLocale() };\n }\n return {\n locale: availableLocaleMap[foundLocale] ||\n canonicalizedLocaleMap[foundLocale] ||\n minimizedAvailableLocaleMap[foundLocale] ||\n foundLocale,\n };\n}\n","export var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","import { CanonicalizeLocaleList } from './abstract/CanonicalizeLocaleList';\nimport { ResolveLocale } from './abstract/ResolveLocale';\nexport function match(requestedLocales, availableLocales, defaultLocale, opts) {\n var locales = availableLocales.reduce(function (all, l) {\n all.add(l);\n return all;\n }, new Set());\n return ResolveLocale(locales, CanonicalizeLocaleList(requestedLocales), {\n localeMatcher: (opts === null || opts === void 0 ? void 0 : opts.algorithm) || 'best fit',\n }, [], {}, function () { return defaultLocale; }).locale;\n}\nexport { LookupSupportedLocales } from './abstract/LookupSupportedLocales';\nexport { ResolveLocale } from './abstract/ResolveLocale';\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InitializeRelativeTimeFormat = void 0;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar NUMBERING_SYSTEM_REGEX = /^[a-z0-9]{3,8}(-[a-z0-9]{3,8})*$/i;\nfunction InitializeRelativeTimeFormat(rtf, locales, options, _a) {\n var getInternalSlots = _a.getInternalSlots, availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale;\n var internalSlots = getInternalSlots(rtf);\n internalSlots.initializedRelativeTimeFormat = true;\n var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);\n var opt = Object.create(null);\n var opts = (0, ecma402_abstract_1.CoerceOptionsToObject)(options);\n var matcher = (0, ecma402_abstract_1.GetOption)(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = (0, ecma402_abstract_1.GetOption)(opts, \n // @ts-expect-error TS option is wack\n 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined) {\n if (!NUMBERING_SYSTEM_REGEX.test(numberingSystem)) {\n throw new RangeError(\"Invalid numbering system \".concat(numberingSystem));\n }\n }\n opt.nu = numberingSystem;\n var r = (0, intl_localematcher_1.ResolveLocale)(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);\n var locale = r.locale, nu = r.nu;\n internalSlots.locale = locale;\n internalSlots.style = (0, ecma402_abstract_1.GetOption)(opts, 'style', 'string', ['long', 'narrow', 'short'], 'long');\n internalSlots.numeric = (0, ecma402_abstract_1.GetOption)(opts, 'numeric', 'string', ['always', 'auto'], 'always');\n var fields = localeData[r.dataLocale];\n (0, ecma402_abstract_1.invariant)(!!fields, \"Missing locale data for \".concat(r.dataLocale));\n internalSlots.fields = fields;\n internalSlots.numberFormat = new Intl.NumberFormat(locales);\n internalSlots.pluralRules = new Intl.PluralRules(locales);\n internalSlots.numberingSystem = nu;\n return rtf;\n}\nexports.InitializeRelativeTimeFormat = InitializeRelativeTimeFormat;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MakePartsList = void 0;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nfunction MakePartsList(pattern, unit, parts) {\n var patternParts = (0, ecma402_abstract_1.PartitionPattern)(pattern);\n var result = [];\n for (var _i = 0, patternParts_1 = patternParts; _i < patternParts_1.length; _i++) {\n var patternPart = patternParts_1[_i];\n if (patternPart.type === 'literal') {\n result.push({\n type: 'literal',\n value: patternPart.value,\n });\n }\n else {\n (0, ecma402_abstract_1.invariant)(patternPart.type === '0', \"Malformed pattern \".concat(pattern));\n for (var _a = 0, parts_1 = parts; _a < parts_1.length; _a++) {\n var part = parts_1[_a];\n result.push({\n type: part.type,\n value: part.value,\n unit: unit,\n });\n }\n }\n }\n return result;\n}\nexports.MakePartsList = MakePartsList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PartitionRelativeTimePattern = void 0;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar SingularRelativeTimeUnit_1 = require(\"./SingularRelativeTimeUnit\");\nvar MakePartsList_1 = require(\"./MakePartsList\");\nfunction PartitionRelativeTimePattern(rtf, value, unit, _a) {\n var getInternalSlots = _a.getInternalSlots;\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(value) === 'Number', \"value must be number, instead got \".concat(typeof value), TypeError);\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(unit) === 'String', \"unit must be number, instead got \".concat(typeof value), TypeError);\n if (isNaN(value) || !isFinite(value)) {\n throw new RangeError(\"Invalid value \".concat(value));\n }\n var resolvedUnit = (0, SingularRelativeTimeUnit_1.SingularRelativeTimeUnit)(unit);\n var _b = getInternalSlots(rtf), fields = _b.fields, style = _b.style, numeric = _b.numeric, pluralRules = _b.pluralRules, numberFormat = _b.numberFormat;\n var entry = resolvedUnit;\n if (style === 'short') {\n entry = \"\".concat(resolvedUnit, \"-short\");\n }\n else if (style === 'narrow') {\n entry = \"\".concat(resolvedUnit, \"-narrow\");\n }\n if (!(entry in fields)) {\n entry = resolvedUnit;\n }\n var patterns = fields[entry];\n if (numeric === 'auto') {\n if ((0, ecma402_abstract_1.ToString)(value) in patterns) {\n return [\n {\n type: 'literal',\n value: patterns[(0, ecma402_abstract_1.ToString)(value)],\n },\n ];\n }\n }\n var tl = 'future';\n if ((0, ecma402_abstract_1.SameValue)(value, -0) || value < 0) {\n tl = 'past';\n }\n var po = patterns[tl];\n var fv = typeof numberFormat.formatToParts === 'function'\n ? numberFormat.formatToParts(Math.abs(value))\n : // TODO: If formatToParts is not supported, we assume the whole formatted\n // number is a part\n [\n {\n type: 'literal',\n value: numberFormat.format(Math.abs(value)),\n unit: unit,\n },\n ];\n var pr = pluralRules.select(value);\n var pattern = po[pr];\n return (0, MakePartsList_1.MakePartsList)(pattern, resolvedUnit, fv);\n}\nexports.PartitionRelativeTimePattern = PartitionRelativeTimePattern;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingularRelativeTimeUnit = void 0;\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\n/**\n * https://tc39.es/proposal-intl-relative-time/#sec-singularrelativetimeunit\n * @param unit\n */\nfunction SingularRelativeTimeUnit(unit) {\n (0, ecma402_abstract_1.invariant)((0, ecma402_abstract_1.Type)(unit) === 'String', 'unit must be a string');\n if (unit === 'seconds')\n return 'second';\n if (unit === 'minutes')\n return 'minute';\n if (unit === 'hours')\n return 'hour';\n if (unit === 'days')\n return 'day';\n if (unit === 'weeks')\n return 'week';\n if (unit === 'months')\n return 'month';\n if (unit === 'quarters')\n return 'quarter';\n if (unit === 'years')\n return 'year';\n if (unit !== 'second' &&\n unit !== 'minute' &&\n unit !== 'hour' &&\n unit !== 'day' &&\n unit !== 'week' &&\n unit !== 'month' &&\n unit !== 'quarter' &&\n unit !== 'year') {\n throw new RangeError('invalid unit');\n }\n return unit;\n}\nexports.SingularRelativeTimeUnit = SingularRelativeTimeUnit;\n","\"use strict\";\n// Type-only circular import\n// eslint-disable-next-line import/no-cycle\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar internalSlotMap = new WeakMap();\nfunction getInternalSlots(x) {\n var internalSlots = internalSlotMap.get(x);\n if (!internalSlots) {\n internalSlots = Object.create(null);\n internalSlotMap.set(x, internalSlots);\n }\n return internalSlots;\n}\nexports.default = getInternalSlots;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar InitializeRelativeTimeFormat_1 = require(\"./abstract/InitializeRelativeTimeFormat\");\nvar PartitionRelativeTimePattern_1 = require(\"./abstract/PartitionRelativeTimePattern\");\nvar get_internal_slots_1 = (0, tslib_1.__importDefault)(require(\"./get_internal_slots\"));\nvar RelativeTimeFormat = /** @class */ (function () {\n function RelativeTimeFormat(locales, options) {\n // test262/test/intl402/RelativeTimeFormat/constructor/constructor/newtarget-undefined.js\n // Cannot use `new.target` bc of IE11 & TS transpiles it to something else\n var newTarget = this && this instanceof RelativeTimeFormat ? this.constructor : void 0;\n if (!newTarget) {\n throw new TypeError(\"Intl.RelativeTimeFormat must be called with 'new'\");\n }\n return (0, InitializeRelativeTimeFormat_1.InitializeRelativeTimeFormat)(this, locales, options, {\n getInternalSlots: get_internal_slots_1.default,\n availableLocales: RelativeTimeFormat.availableLocales,\n relevantExtensionKeys: RelativeTimeFormat.relevantExtensionKeys,\n localeData: RelativeTimeFormat.localeData,\n getDefaultLocale: RelativeTimeFormat.getDefaultLocale,\n });\n }\n RelativeTimeFormat.prototype.format = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('format was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('format was called on a invalid context');\n }\n return (0, PartitionRelativeTimePattern_1.PartitionRelativeTimePattern)(this, Number(value), (0, ecma402_abstract_1.ToString)(unit), {\n getInternalSlots: get_internal_slots_1.default,\n })\n .map(function (el) { return el.value; })\n .join('');\n };\n RelativeTimeFormat.prototype.formatToParts = function (value, unit) {\n if (typeof this !== 'object') {\n throw new TypeError('formatToParts was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('formatToParts was called on a invalid context');\n }\n return (0, PartitionRelativeTimePattern_1.PartitionRelativeTimePattern)(this, Number(value), (0, ecma402_abstract_1.ToString)(unit), { getInternalSlots: get_internal_slots_1.default });\n };\n RelativeTimeFormat.prototype.resolvedOptions = function () {\n if (typeof this !== 'object') {\n throw new TypeError('resolvedOptions was called on a non-object');\n }\n var internalSlots = (0, get_internal_slots_1.default)(this);\n if (!internalSlots.initializedRelativeTimeFormat) {\n throw new TypeError('resolvedOptions was called on a invalid context');\n }\n // test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/type.js\n return {\n locale: internalSlots.locale,\n style: internalSlots.style,\n numeric: internalSlots.numeric,\n numberingSystem: internalSlots.numberingSystem,\n };\n };\n RelativeTimeFormat.supportedLocalesOf = function (locales, options) {\n return (0, ecma402_abstract_1.SupportedLocales)(RelativeTimeFormat.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);\n };\n RelativeTimeFormat.__addLocaleData = function () {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var _b = data_1[_a], d = _b.data, locale = _b.locale;\n var minimizedLocale = new Intl.Locale(locale)\n .minimize()\n .toString();\n RelativeTimeFormat.localeData[locale] = RelativeTimeFormat.localeData[minimizedLocale] = d;\n RelativeTimeFormat.availableLocales.add(minimizedLocale);\n RelativeTimeFormat.availableLocales.add(locale);\n if (!RelativeTimeFormat.__defaultLocale) {\n RelativeTimeFormat.__defaultLocale = minimizedLocale;\n }\n }\n };\n RelativeTimeFormat.getDefaultLocale = function () {\n return RelativeTimeFormat.__defaultLocale;\n };\n RelativeTimeFormat.localeData = {};\n RelativeTimeFormat.availableLocales = new Set();\n RelativeTimeFormat.__defaultLocale = '';\n RelativeTimeFormat.relevantExtensionKeys = ['nu'];\n RelativeTimeFormat.polyfilled = true;\n return RelativeTimeFormat;\n}());\nexports.default = RelativeTimeFormat;\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(RelativeTimeFormat.prototype, Symbol.toStringTag, {\n value: 'Intl.RelativeTimeFormat',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/length.js\n Object.defineProperty(RelativeTimeFormat.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/master/test/intl402/RelativeTimeFormat/constructor/supportedLocalesOf/length.js\n Object.defineProperty(RelativeTimeFormat.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"dieses Jahr\",\"1\":\"nächstes Jahr\",\"future\":{\"one\":\"in {0} Jahr\",\"other\":\"in {0} Jahren\"},\"past\":{\"one\":\"vor {0} Jahr\",\"other\":\"vor {0} Jahren\"},\"-1\":\"letztes Jahr\"},\"year-short\":{\"0\":\"dieses Jahr\",\"1\":\"nächstes Jahr\",\"future\":{\"one\":\"in {0} Jahr\",\"other\":\"in {0} Jahren\"},\"past\":{\"one\":\"vor {0} Jahr\",\"other\":\"vor {0} Jahren\"},\"-1\":\"letztes Jahr\"},\"year-narrow\":{\"0\":\"dieses Jahr\",\"1\":\"nächstes Jahr\",\"future\":{\"one\":\"in {0} Jahr\",\"other\":\"in {0} Jahren\"},\"past\":{\"one\":\"vor {0} Jahr\",\"other\":\"vor {0} Jahren\"},\"-1\":\"letztes Jahr\"},\"quarter\":{\"0\":\"dieses Quartal\",\"1\":\"nächstes Quartal\",\"future\":{\"one\":\"in {0} Quartal\",\"other\":\"in {0} Quartalen\"},\"past\":{\"one\":\"vor {0} Quartal\",\"other\":\"vor {0} Quartalen\"},\"-1\":\"letztes Quartal\"},\"quarter-short\":{\"0\":\"dieses Quartal\",\"1\":\"nächstes Quartal\",\"future\":{\"one\":\"in {0} Quart.\",\"other\":\"in {0} Quart.\"},\"past\":{\"one\":\"vor {0} Quart.\",\"other\":\"vor {0} Quart.\"},\"-1\":\"letztes Quartal\"},\"quarter-narrow\":{\"0\":\"dieses Quartal\",\"1\":\"nächstes Quartal\",\"future\":{\"one\":\"in {0} Q\",\"other\":\"in {0} Q\"},\"past\":{\"one\":\"vor {0} Q\",\"other\":\"vor {0} Q\"},\"-1\":\"letztes Quartal\"},\"month\":{\"0\":\"diesen Monat\",\"1\":\"nächsten Monat\",\"future\":{\"one\":\"in {0} Monat\",\"other\":\"in {0} Monaten\"},\"past\":{\"one\":\"vor {0} Monat\",\"other\":\"vor {0} Monaten\"},\"-1\":\"letzten Monat\"},\"month-short\":{\"0\":\"diesen Monat\",\"1\":\"nächsten Monat\",\"future\":{\"one\":\"in {0} Monat\",\"other\":\"in {0} Monaten\"},\"past\":{\"one\":\"vor {0} Monat\",\"other\":\"vor {0} Monaten\"},\"-1\":\"letzten Monat\"},\"month-narrow\":{\"0\":\"diesen Monat\",\"1\":\"nächsten Monat\",\"future\":{\"one\":\"in {0} Monat\",\"other\":\"in {0} Monaten\"},\"past\":{\"one\":\"vor {0} Monat\",\"other\":\"vor {0} Monaten\"},\"-1\":\"letzten Monat\"},\"week\":{\"0\":\"diese Woche\",\"1\":\"nächste Woche\",\"future\":{\"one\":\"in {0} Woche\",\"other\":\"in {0} Wochen\"},\"past\":{\"one\":\"vor {0} Woche\",\"other\":\"vor {0} Wochen\"},\"-1\":\"letzte Woche\"},\"week-short\":{\"0\":\"diese Woche\",\"1\":\"nächste Woche\",\"future\":{\"one\":\"in {0} Woche\",\"other\":\"in {0} Wochen\"},\"past\":{\"one\":\"vor {0} Woche\",\"other\":\"vor {0} Wochen\"},\"-1\":\"letzte Woche\"},\"week-narrow\":{\"0\":\"diese Woche\",\"1\":\"nächste Woche\",\"future\":{\"one\":\"in {0} Wo.\",\"other\":\"in {0} Wo.\"},\"past\":{\"one\":\"vor {0} Wo.\",\"other\":\"vor {0} Wo.\"},\"-1\":\"letzte Woche\"},\"day\":{\"0\":\"heute\",\"1\":\"morgen\",\"2\":\"übermorgen\",\"future\":{\"one\":\"in {0} Tag\",\"other\":\"in {0} Tagen\"},\"past\":{\"one\":\"vor {0} Tag\",\"other\":\"vor {0} Tagen\"},\"-2\":\"vorgestern\",\"-1\":\"gestern\"},\"day-short\":{\"0\":\"heute\",\"1\":\"morgen\",\"2\":\"übermorgen\",\"future\":{\"one\":\"in {0} Tag\",\"other\":\"in {0} Tagen\"},\"past\":{\"one\":\"vor {0} Tag\",\"other\":\"vor {0} Tagen\"},\"-2\":\"vorgestern\",\"-1\":\"gestern\"},\"day-narrow\":{\"0\":\"heute\",\"1\":\"morgen\",\"2\":\"übermorgen\",\"future\":{\"one\":\"in {0} Tag\",\"other\":\"in {0} Tagen\"},\"past\":{\"one\":\"vor {0} Tag\",\"other\":\"vor {0} Tagen\"},\"-2\":\"vorgestern\",\"-1\":\"gestern\"},\"hour\":{\"0\":\"in dieser Stunde\",\"future\":{\"one\":\"in {0} Stunde\",\"other\":\"in {0} Stunden\"},\"past\":{\"one\":\"vor {0} Stunde\",\"other\":\"vor {0} Stunden\"}},\"hour-short\":{\"0\":\"in dieser Stunde\",\"future\":{\"one\":\"in {0} Std.\",\"other\":\"in {0} Std.\"},\"past\":{\"one\":\"vor {0} Std.\",\"other\":\"vor {0} Std.\"}},\"hour-narrow\":{\"0\":\"in dieser Stunde\",\"future\":{\"one\":\"in {0} Std.\",\"other\":\"in {0} Std.\"},\"past\":{\"one\":\"vor {0} Std.\",\"other\":\"vor {0} Std.\"}},\"minute\":{\"0\":\"in dieser Minute\",\"future\":{\"one\":\"in {0} Minute\",\"other\":\"in {0} Minuten\"},\"past\":{\"one\":\"vor {0} Minute\",\"other\":\"vor {0} Minuten\"}},\"minute-short\":{\"0\":\"in dieser Minute\",\"future\":{\"one\":\"in {0} Min.\",\"other\":\"in {0} Min.\"},\"past\":{\"one\":\"vor {0} Min.\",\"other\":\"vor {0} Min.\"}},\"minute-narrow\":{\"0\":\"in dieser Minute\",\"future\":{\"one\":\"in {0} m\",\"other\":\"in {0} m\"},\"past\":{\"one\":\"vor {0} m\",\"other\":\"vor {0} m\"}},\"second\":{\"0\":\"jetzt\",\"future\":{\"one\":\"in {0} Sekunde\",\"other\":\"in {0} Sekunden\"},\"past\":{\"one\":\"vor {0} Sekunde\",\"other\":\"vor {0} Sekunden\"}},\"second-short\":{\"0\":\"jetzt\",\"future\":{\"one\":\"in {0} Sek.\",\"other\":\"in {0} Sek.\"},\"past\":{\"one\":\"vor {0} Sek.\",\"other\":\"vor {0} Sek.\"}},\"second-narrow\":{\"0\":\"jetzt\",\"future\":{\"one\":\"in {0} s\",\"other\":\"in {0} s\"},\"past\":{\"one\":\"vor {0} s\",\"other\":\"vor {0} s\"}}},\"locale\":\"de\"}\n)\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"this year\",\"1\":\"next year\",\"future\":{\"one\":\"in {0} year\",\"other\":\"in {0} years\"},\"past\":{\"one\":\"{0} year ago\",\"other\":\"{0} years ago\"},\"-1\":\"last year\"},\"year-short\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"},\"-1\":\"last yr.\"},\"year-narrow\":{\"0\":\"this yr.\",\"1\":\"next yr.\",\"future\":{\"one\":\"in {0} yr.\",\"other\":\"in {0} yr.\"},\"past\":{\"one\":\"{0} yr. ago\",\"other\":\"{0} yr. ago\"},\"-1\":\"last yr.\"},\"quarter\":{\"0\":\"this quarter\",\"1\":\"next quarter\",\"future\":{\"one\":\"in {0} quarter\",\"other\":\"in {0} quarters\"},\"past\":{\"one\":\"{0} quarter ago\",\"other\":\"{0} quarters ago\"},\"-1\":\"last quarter\"},\"quarter-short\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"quarter-narrow\":{\"0\":\"this qtr.\",\"1\":\"next qtr.\",\"future\":{\"one\":\"in {0} qtr.\",\"other\":\"in {0} qtrs.\"},\"past\":{\"one\":\"{0} qtr. ago\",\"other\":\"{0} qtrs. ago\"},\"-1\":\"last qtr.\"},\"month\":{\"0\":\"this month\",\"1\":\"next month\",\"future\":{\"one\":\"in {0} month\",\"other\":\"in {0} months\"},\"past\":{\"one\":\"{0} month ago\",\"other\":\"{0} months ago\"},\"-1\":\"last month\"},\"month-short\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo.\"},\"month-narrow\":{\"0\":\"this mo.\",\"1\":\"next mo.\",\"future\":{\"one\":\"in {0} mo.\",\"other\":\"in {0} mo.\"},\"past\":{\"one\":\"{0} mo. ago\",\"other\":\"{0} mo. ago\"},\"-1\":\"last mo.\"},\"week\":{\"0\":\"this week\",\"1\":\"next week\",\"future\":{\"one\":\"in {0} week\",\"other\":\"in {0} weeks\"},\"past\":{\"one\":\"{0} week ago\",\"other\":\"{0} weeks ago\"},\"-1\":\"last week\"},\"week-short\":{\"0\":\"this wk.\",\"1\":\"next wk.\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wk.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wk. ago\"},\"-1\":\"last wk.\"},\"week-narrow\":{\"0\":\"this wk.\",\"1\":\"next wk.\",\"future\":{\"one\":\"in {0} wk.\",\"other\":\"in {0} wk.\"},\"past\":{\"one\":\"{0} wk. ago\",\"other\":\"{0} wk. ago\"},\"-1\":\"last wk.\"},\"day\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"day-short\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"day-narrow\":{\"0\":\"today\",\"1\":\"tomorrow\",\"future\":{\"one\":\"in {0} day\",\"other\":\"in {0} days\"},\"past\":{\"one\":\"{0} day ago\",\"other\":\"{0} days ago\"},\"-1\":\"yesterday\"},\"hour\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hour\",\"other\":\"in {0} hours\"},\"past\":{\"one\":\"{0} hour ago\",\"other\":\"{0} hours ago\"}},\"hour-short\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}},\"hour-narrow\":{\"0\":\"this hour\",\"future\":{\"one\":\"in {0} hr.\",\"other\":\"in {0} hr.\"},\"past\":{\"one\":\"{0} hr. ago\",\"other\":\"{0} hr. ago\"}},\"minute\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} minute\",\"other\":\"in {0} minutes\"},\"past\":{\"one\":\"{0} minute ago\",\"other\":\"{0} minutes ago\"}},\"minute-short\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}},\"minute-narrow\":{\"0\":\"this minute\",\"future\":{\"one\":\"in {0} min.\",\"other\":\"in {0} min.\"},\"past\":{\"one\":\"{0} min. ago\",\"other\":\"{0} min. ago\"}},\"second\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} second\",\"other\":\"in {0} seconds\"},\"past\":{\"one\":\"{0} second ago\",\"other\":\"{0} seconds ago\"}},\"second-short\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}},\"second-narrow\":{\"0\":\"now\",\"future\":{\"one\":\"in {0} sec.\",\"other\":\"in {0} sec.\"},\"past\":{\"one\":\"{0} sec. ago\",\"other\":\"{0} sec. ago\"}}},\"locale\":\"en\"}\n)\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} año\",\"other\":\"dentro de {0} años\"},\"past\":{\"one\":\"hace {0} año\",\"other\":\"hace {0} años\"},\"-1\":\"el año pasado\"},\"year-short\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} a\",\"other\":\"dentro de {0} a\"},\"past\":{\"one\":\"hace {0} a\",\"other\":\"hace {0} a\"},\"-1\":\"el año pasado\"},\"year-narrow\":{\"0\":\"este año\",\"1\":\"el próximo año\",\"future\":{\"one\":\"dentro de {0} a\",\"other\":\"dentro de {0} a\"},\"past\":{\"one\":\"hace {0} a\",\"other\":\"hace {0} a\"},\"-1\":\"el año pasado\"},\"quarter\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trimestre\",\"other\":\"dentro de {0} trimestres\"},\"past\":{\"one\":\"hace {0} trimestre\",\"other\":\"hace {0} trimestres\"},\"-1\":\"el trimestre pasado\"},\"quarter-short\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trim.\",\"other\":\"dentro de {0} trim.\"},\"past\":{\"one\":\"hace {0} trim.\",\"other\":\"hace {0} trim.\"},\"-1\":\"el trimestre pasado\"},\"quarter-narrow\":{\"0\":\"este trimestre\",\"1\":\"el próximo trimestre\",\"future\":{\"one\":\"dentro de {0} trim.\",\"other\":\"dentro de {0} trim.\"},\"past\":{\"one\":\"hace {0} trim.\",\"other\":\"hace {0} trim.\"},\"-1\":\"el trimestre pasado\"},\"month\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} mes\",\"other\":\"dentro de {0} meses\"},\"past\":{\"one\":\"hace {0} mes\",\"other\":\"hace {0} meses\"},\"-1\":\"el mes pasado\"},\"month-short\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} m\",\"other\":\"dentro de {0} m\"},\"past\":{\"one\":\"hace {0} m\",\"other\":\"hace {0} m\"},\"-1\":\"el mes pasado\"},\"month-narrow\":{\"0\":\"este mes\",\"1\":\"el próximo mes\",\"future\":{\"one\":\"dentro de {0} m\",\"other\":\"dentro de {0} m\"},\"past\":{\"one\":\"hace {0} m\",\"other\":\"hace {0} m\"},\"-1\":\"el mes pasado\"},\"week\":{\"0\":\"esta semana\",\"1\":\"la próxima semana\",\"future\":{\"one\":\"dentro de {0} semana\",\"other\":\"dentro de {0} semanas\"},\"past\":{\"one\":\"hace {0} semana\",\"other\":\"hace {0} semanas\"},\"-1\":\"la semana pasada\"},\"week-short\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. ant.\"},\"week-narrow\":{\"0\":\"esta sem.\",\"1\":\"próx. sem.\",\"future\":{\"one\":\"dentro de {0} sem.\",\"other\":\"dentro de {0} sem.\"},\"past\":{\"one\":\"hace {0} sem.\",\"other\":\"hace {0} sem.\"},\"-1\":\"sem. ant.\"},\"day\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} día\",\"other\":\"dentro de {0} días\"},\"past\":{\"one\":\"hace {0} día\",\"other\":\"hace {0} días\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-short\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} d\",\"other\":\"dentro de {0} d\"},\"past\":{\"one\":\"hace {0} d\",\"other\":\"hace {0} d\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"day-narrow\":{\"0\":\"hoy\",\"1\":\"mañana\",\"2\":\"pasado mañana\",\"future\":{\"one\":\"dentro de {0} d\",\"other\":\"dentro de {0} d\"},\"past\":{\"one\":\"hace {0} d\",\"other\":\"hace {0} d\"},\"-2\":\"anteayer\",\"-1\":\"ayer\"},\"hour\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} hora\",\"other\":\"dentro de {0} horas\"},\"past\":{\"one\":\"hace {0} hora\",\"other\":\"hace {0} horas\"}},\"hour-short\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} h\",\"other\":\"dentro de {0} h\"},\"past\":{\"one\":\"hace {0} h\",\"other\":\"hace {0} h\"}},\"hour-narrow\":{\"0\":\"esta hora\",\"future\":{\"one\":\"dentro de {0} h\",\"other\":\"dentro de {0} h\"},\"past\":{\"one\":\"hace {0} h\",\"other\":\"hace {0} h\"}},\"minute\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} minuto\",\"other\":\"dentro de {0} minutos\"},\"past\":{\"one\":\"hace {0} minuto\",\"other\":\"hace {0} minutos\"}},\"minute-short\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} min\",\"other\":\"dentro de {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"minute-narrow\":{\"0\":\"este minuto\",\"future\":{\"one\":\"dentro de {0} min\",\"other\":\"dentro de {0} min\"},\"past\":{\"one\":\"hace {0} min\",\"other\":\"hace {0} min\"}},\"second\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} segundo\",\"other\":\"dentro de {0} segundos\"},\"past\":{\"one\":\"hace {0} segundo\",\"other\":\"hace {0} segundos\"}},\"second-short\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} s\",\"other\":\"dentro de {0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}},\"second-narrow\":{\"0\":\"ahora\",\"future\":{\"one\":\"dentro de {0} s\",\"other\":\"dentro de {0} s\"},\"past\":{\"one\":\"hace {0} s\",\"other\":\"hace {0} s\"}}},\"locale\":\"es\"}\n)\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"cette année\",\"1\":\"l’année prochaine\",\"future\":{\"one\":\"dans {0} an\",\"other\":\"dans {0} ans\"},\"past\":{\"one\":\"il y a {0} an\",\"other\":\"il y a {0} ans\"},\"-1\":\"l’année dernière\"},\"year-short\":{\"0\":\"cette année\",\"1\":\"l’année prochaine\",\"future\":{\"one\":\"dans {0} a\",\"other\":\"dans {0} a\"},\"past\":{\"one\":\"il y a {0} a\",\"other\":\"il y a {0} a\"},\"-1\":\"l’année dernière\"},\"year-narrow\":{\"0\":\"cette année\",\"1\":\"l’année prochaine\",\"future\":{\"one\":\"+{0} a\",\"other\":\"+{0} a\"},\"past\":{\"one\":\"-{0} a\",\"other\":\"-{0} a\"},\"-1\":\"l’année dernière\"},\"quarter\":{\"0\":\"ce trimestre\",\"1\":\"le trimestre prochain\",\"future\":{\"one\":\"dans {0} trimestre\",\"other\":\"dans {0} trimestres\"},\"past\":{\"one\":\"il y a {0} trimestre\",\"other\":\"il y a {0} trimestres\"},\"-1\":\"le trimestre dernier\"},\"quarter-short\":{\"0\":\"ce trimestre\",\"1\":\"le trimestre prochain\",\"future\":{\"one\":\"dans {0} trim.\",\"other\":\"dans {0} trim.\"},\"past\":{\"one\":\"il y a {0} trim.\",\"other\":\"il y a {0} trim.\"},\"-1\":\"le trimestre dernier\"},\"quarter-narrow\":{\"0\":\"ce trimestre\",\"1\":\"le trimestre prochain\",\"future\":{\"one\":\"+{0} trim.\",\"other\":\"+{0} trim.\"},\"past\":{\"one\":\"-{0} trim.\",\"other\":\"-{0} trim.\"},\"-1\":\"le trimestre dernier\"},\"month\":{\"0\":\"ce mois-ci\",\"1\":\"le mois prochain\",\"future\":{\"one\":\"dans {0} mois\",\"other\":\"dans {0} mois\"},\"past\":{\"one\":\"il y a {0} mois\",\"other\":\"il y a {0} mois\"},\"-1\":\"le mois dernier\"},\"month-short\":{\"0\":\"ce mois-ci\",\"1\":\"le mois prochain\",\"future\":{\"one\":\"dans {0} m.\",\"other\":\"dans {0} m.\"},\"past\":{\"one\":\"il y a {0} m.\",\"other\":\"il y a {0} m.\"},\"-1\":\"le mois dernier\"},\"month-narrow\":{\"0\":\"ce mois-ci\",\"1\":\"le mois prochain\",\"future\":{\"one\":\"+{0} m.\",\"other\":\"+{0} m.\"},\"past\":{\"one\":\"-{0} m.\",\"other\":\"-{0} m.\"},\"-1\":\"le mois dernier\"},\"week\":{\"0\":\"cette semaine\",\"1\":\"la semaine prochaine\",\"future\":{\"one\":\"dans {0} semaine\",\"other\":\"dans {0} semaines\"},\"past\":{\"one\":\"il y a {0} semaine\",\"other\":\"il y a {0} semaines\"},\"-1\":\"la semaine dernière\"},\"week-short\":{\"0\":\"cette semaine\",\"1\":\"la semaine prochaine\",\"future\":{\"one\":\"dans {0} sem.\",\"other\":\"dans {0} sem.\"},\"past\":{\"one\":\"il y a {0} sem.\",\"other\":\"il y a {0} sem.\"},\"-1\":\"la semaine dernière\"},\"week-narrow\":{\"0\":\"cette semaine\",\"1\":\"la semaine prochaine\",\"future\":{\"one\":\"+{0} sem.\",\"other\":\"+{0} sem.\"},\"past\":{\"one\":\"-{0} sem.\",\"other\":\"-{0} sem.\"},\"-1\":\"la semaine dernière\"},\"day\":{\"0\":\"aujourd’hui\",\"1\":\"demain\",\"2\":\"après-demain\",\"future\":{\"one\":\"dans {0} jour\",\"other\":\"dans {0} jours\"},\"past\":{\"one\":\"il y a {0} jour\",\"other\":\"il y a {0} jours\"},\"-2\":\"avant-hier\",\"-1\":\"hier\"},\"day-short\":{\"0\":\"aujourd’hui\",\"1\":\"demain\",\"2\":\"après-demain\",\"future\":{\"one\":\"dans {0} j\",\"other\":\"dans {0} j\"},\"past\":{\"one\":\"il y a {0} j\",\"other\":\"il y a {0} j\"},\"-2\":\"avant-hier\",\"-1\":\"hier\"},\"day-narrow\":{\"0\":\"aujourd’hui\",\"1\":\"demain\",\"2\":\"après-demain\",\"future\":{\"one\":\"+{0} j\",\"other\":\"+{0} j\"},\"past\":{\"one\":\"-{0} j\",\"other\":\"-{0} j\"},\"-2\":\"avant-hier\",\"-1\":\"hier\"},\"hour\":{\"0\":\"cette heure-ci\",\"future\":{\"one\":\"dans {0} heure\",\"other\":\"dans {0} heures\"},\"past\":{\"one\":\"il y a {0} heure\",\"other\":\"il y a {0} heures\"}},\"hour-short\":{\"0\":\"cette heure-ci\",\"future\":{\"one\":\"dans {0} h\",\"other\":\"dans {0} h\"},\"past\":{\"one\":\"il y a {0} h\",\"other\":\"il y a {0} h\"}},\"hour-narrow\":{\"0\":\"cette heure-ci\",\"future\":{\"one\":\"+{0} h\",\"other\":\"+{0} h\"},\"past\":{\"one\":\"-{0} h\",\"other\":\"-{0} h\"}},\"minute\":{\"0\":\"cette minute-ci\",\"future\":{\"one\":\"dans {0} minute\",\"other\":\"dans {0} minutes\"},\"past\":{\"one\":\"il y a {0} minute\",\"other\":\"il y a {0} minutes\"}},\"minute-short\":{\"0\":\"cette minute-ci\",\"future\":{\"one\":\"dans {0} min\",\"other\":\"dans {0} min\"},\"past\":{\"one\":\"il y a {0} min\",\"other\":\"il y a {0} min\"}},\"minute-narrow\":{\"0\":\"cette minute-ci\",\"future\":{\"one\":\"+{0} min\",\"other\":\"+{0} min\"},\"past\":{\"one\":\"-{0} min\",\"other\":\"-{0} min\"}},\"second\":{\"0\":\"maintenant\",\"future\":{\"one\":\"dans {0} seconde\",\"other\":\"dans {0} secondes\"},\"past\":{\"one\":\"il y a {0} seconde\",\"other\":\"il y a {0} secondes\"}},\"second-short\":{\"0\":\"maintenant\",\"future\":{\"one\":\"dans {0} s\",\"other\":\"dans {0} s\"},\"past\":{\"one\":\"il y a {0} s\",\"other\":\"il y a {0} s\"}},\"second-narrow\":{\"0\":\"maintenant\",\"future\":{\"one\":\"+{0} s\",\"other\":\"+{0} s\"},\"past\":{\"one\":\"-{0} s\",\"other\":\"-{0} s\"}}},\"locale\":\"fr\"}\n)\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"今年\",\"1\":\"来年\",\"future\":{\"other\":\"{0} 年後\"},\"past\":{\"other\":\"{0} 年前\"},\"-1\":\"昨年\"},\"year-short\":{\"0\":\"今年\",\"1\":\"来年\",\"future\":{\"other\":\"{0} 年後\"},\"past\":{\"other\":\"{0} 年前\"},\"-1\":\"昨年\"},\"year-narrow\":{\"0\":\"今年\",\"1\":\"来年\",\"future\":{\"other\":\"{0}年後\"},\"past\":{\"other\":\"{0}年前\"},\"-1\":\"昨年\"},\"quarter\":{\"0\":\"今四半期\",\"1\":\"翌四半期\",\"future\":{\"other\":\"{0} 四半期後\"},\"past\":{\"other\":\"{0} 四半期前\"},\"-1\":\"前四半期\"},\"quarter-short\":{\"0\":\"今四半期\",\"1\":\"翌四半期\",\"future\":{\"other\":\"{0} 四半期後\"},\"past\":{\"other\":\"{0} 四半期前\"},\"-1\":\"前四半期\"},\"quarter-narrow\":{\"0\":\"今四半期\",\"1\":\"翌四半期\",\"future\":{\"other\":\"{0}四半期後\"},\"past\":{\"other\":\"{0}四半期前\"},\"-1\":\"前四半期\"},\"month\":{\"0\":\"今月\",\"1\":\"来月\",\"future\":{\"other\":\"{0} か月後\"},\"past\":{\"other\":\"{0} か月前\"},\"-1\":\"先月\"},\"month-short\":{\"0\":\"今月\",\"1\":\"来月\",\"future\":{\"other\":\"{0} か月後\"},\"past\":{\"other\":\"{0} か月前\"},\"-1\":\"先月\"},\"month-narrow\":{\"0\":\"今月\",\"1\":\"来月\",\"future\":{\"other\":\"{0}か月後\"},\"past\":{\"other\":\"{0}か月前\"},\"-1\":\"先月\"},\"week\":{\"0\":\"今週\",\"1\":\"来週\",\"future\":{\"other\":\"{0} 週間後\"},\"past\":{\"other\":\"{0} 週間前\"},\"-1\":\"先週\"},\"week-short\":{\"0\":\"今週\",\"1\":\"来週\",\"future\":{\"other\":\"{0} 週間後\"},\"past\":{\"other\":\"{0} 週間前\"},\"-1\":\"先週\"},\"week-narrow\":{\"0\":\"今週\",\"1\":\"来週\",\"future\":{\"other\":\"{0}週間後\"},\"past\":{\"other\":\"{0}週間前\"},\"-1\":\"先週\"},\"day\":{\"0\":\"今日\",\"1\":\"明日\",\"2\":\"明後日\",\"future\":{\"other\":\"{0} 日後\"},\"past\":{\"other\":\"{0} 日前\"},\"-2\":\"一昨日\",\"-1\":\"昨日\"},\"day-short\":{\"0\":\"今日\",\"1\":\"明日\",\"2\":\"明後日\",\"future\":{\"other\":\"{0} 日後\"},\"past\":{\"other\":\"{0} 日前\"},\"-2\":\"一昨日\",\"-1\":\"昨日\"},\"day-narrow\":{\"0\":\"今日\",\"1\":\"明日\",\"2\":\"明後日\",\"future\":{\"other\":\"{0}日後\"},\"past\":{\"other\":\"{0}日前\"},\"-2\":\"一昨日\",\"-1\":\"昨日\"},\"hour\":{\"0\":\"1 時間以内\",\"future\":{\"other\":\"{0} 時間後\"},\"past\":{\"other\":\"{0} 時間前\"}},\"hour-short\":{\"0\":\"1 時間以内\",\"future\":{\"other\":\"{0} 時間後\"},\"past\":{\"other\":\"{0} 時間前\"}},\"hour-narrow\":{\"0\":\"1 時間以内\",\"future\":{\"other\":\"{0}時間後\"},\"past\":{\"other\":\"{0}時間前\"}},\"minute\":{\"0\":\"1 分以内\",\"future\":{\"other\":\"{0} 分後\"},\"past\":{\"other\":\"{0} 分前\"}},\"minute-short\":{\"0\":\"1 分以内\",\"future\":{\"other\":\"{0} 分後\"},\"past\":{\"other\":\"{0} 分前\"}},\"minute-narrow\":{\"0\":\"1 分以内\",\"future\":{\"other\":\"{0}分後\"},\"past\":{\"other\":\"{0}分前\"}},\"second\":{\"0\":\"今\",\"future\":{\"other\":\"{0} 秒後\"},\"past\":{\"other\":\"{0} 秒前\"}},\"second-short\":{\"0\":\"今\",\"future\":{\"other\":\"{0} 秒後\"},\"past\":{\"other\":\"{0} 秒前\"}},\"second-narrow\":{\"0\":\"今\",\"future\":{\"other\":\"{0}秒後\"},\"past\":{\"other\":\"{0}秒前\"}}},\"locale\":\"ja\"}\n)\n}","/* @generated */\t\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\"data\":{\"nu\":[\"latn\"],\"year\":{\"0\":\"今年\",\"1\":\"明年\",\"future\":{\"other\":\"{0}年后\"},\"past\":{\"other\":\"{0}年前\"},\"-1\":\"去年\"},\"year-short\":{\"0\":\"今年\",\"1\":\"明年\",\"future\":{\"other\":\"{0}年后\"},\"past\":{\"other\":\"{0}年前\"},\"-1\":\"去年\"},\"year-narrow\":{\"0\":\"今年\",\"1\":\"明年\",\"future\":{\"other\":\"{0}年后\"},\"past\":{\"other\":\"{0}年前\"},\"-1\":\"去年\"},\"quarter\":{\"0\":\"本季度\",\"1\":\"下季度\",\"future\":{\"other\":\"{0}个季度后\"},\"past\":{\"other\":\"{0}个季度前\"},\"-1\":\"上季度\"},\"quarter-short\":{\"0\":\"本季度\",\"1\":\"下季度\",\"future\":{\"other\":\"{0}个季度后\"},\"past\":{\"other\":\"{0}个季度前\"},\"-1\":\"上季度\"},\"quarter-narrow\":{\"0\":\"本季度\",\"1\":\"下季度\",\"future\":{\"other\":\"{0}个季度后\"},\"past\":{\"other\":\"{0}个季度前\"},\"-1\":\"上季度\"},\"month\":{\"0\":\"本月\",\"1\":\"下个月\",\"future\":{\"other\":\"{0}个月后\"},\"past\":{\"other\":\"{0}个月前\"},\"-1\":\"上个月\"},\"month-short\":{\"0\":\"本月\",\"1\":\"下个月\",\"future\":{\"other\":\"{0}个月后\"},\"past\":{\"other\":\"{0}个月前\"},\"-1\":\"上个月\"},\"month-narrow\":{\"0\":\"本月\",\"1\":\"下个月\",\"future\":{\"other\":\"{0}个月后\"},\"past\":{\"other\":\"{0}个月前\"},\"-1\":\"上个月\"},\"week\":{\"0\":\"本周\",\"1\":\"下周\",\"future\":{\"other\":\"{0}周后\"},\"past\":{\"other\":\"{0}周前\"},\"-1\":\"上周\"},\"week-short\":{\"0\":\"本周\",\"1\":\"下周\",\"future\":{\"other\":\"{0}周后\"},\"past\":{\"other\":\"{0}周前\"},\"-1\":\"上周\"},\"week-narrow\":{\"0\":\"本周\",\"1\":\"下周\",\"future\":{\"other\":\"{0}周后\"},\"past\":{\"other\":\"{0}周前\"},\"-1\":\"上周\"},\"day\":{\"0\":\"今天\",\"1\":\"明天\",\"2\":\"后天\",\"future\":{\"other\":\"{0}天后\"},\"past\":{\"other\":\"{0}天前\"},\"-2\":\"前天\",\"-1\":\"昨天\"},\"day-short\":{\"0\":\"今天\",\"1\":\"明天\",\"2\":\"后天\",\"future\":{\"other\":\"{0}天后\"},\"past\":{\"other\":\"{0}天前\"},\"-2\":\"前天\",\"-1\":\"昨天\"},\"day-narrow\":{\"0\":\"今天\",\"1\":\"明天\",\"2\":\"后天\",\"future\":{\"other\":\"{0}天后\"},\"past\":{\"other\":\"{0}天前\"},\"-2\":\"前天\",\"-1\":\"昨天\"},\"hour\":{\"0\":\"这一时间 / 此时\",\"future\":{\"other\":\"{0}小时后\"},\"past\":{\"other\":\"{0}小时前\"}},\"hour-short\":{\"0\":\"这一时间 / 此时\",\"future\":{\"other\":\"{0}小时后\"},\"past\":{\"other\":\"{0}小时前\"}},\"hour-narrow\":{\"0\":\"这一时间 / 此时\",\"future\":{\"other\":\"{0}小时后\"},\"past\":{\"other\":\"{0}小时前\"}},\"minute\":{\"0\":\"此刻\",\"future\":{\"other\":\"{0}分钟后\"},\"past\":{\"other\":\"{0}分钟前\"}},\"minute-short\":{\"0\":\"此刻\",\"future\":{\"other\":\"{0}分钟后\"},\"past\":{\"other\":\"{0}分钟前\"}},\"minute-narrow\":{\"0\":\"此刻\",\"future\":{\"other\":\"{0}分钟后\"},\"past\":{\"other\":\"{0}分钟前\"}},\"second\":{\"0\":\"现在\",\"future\":{\"other\":\"{0}秒钟后\"},\"past\":{\"other\":\"{0}秒钟前\"}},\"second-short\":{\"0\":\"现在\",\"future\":{\"other\":\"{0}秒后\"},\"past\":{\"other\":\"{0}秒前\"}},\"second-narrow\":{\"0\":\"现在\",\"future\":{\"other\":\"{0}秒后\"},\"past\":{\"other\":\"{0}秒前\"}}},\"locale\":\"zh\"}\n)\n}","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar _1 = (0, tslib_1.__importDefault)(require(\"./\"));\nvar should_polyfill_1 = require(\"./should-polyfill\");\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n Object.defineProperty(Intl, 'RelativeTimeFormat', {\n value: _1.default,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldPolyfill = void 0;\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\nvar supported_locales_1 = require(\"./supported-locales\");\nfunction supportedLocalesOf(locale) {\n if (!locale) {\n return true;\n }\n var locales = Array.isArray(locale) ? locale : [locale];\n return (Intl.RelativeTimeFormat.supportedLocalesOf(locales).length ===\n locales.length);\n}\nfunction hasResolvedOptionsNumberingSystem(locale) {\n try {\n return ('numberingSystem' in\n new Intl.RelativeTimeFormat(locale || 'en', {\n numeric: 'auto',\n }).resolvedOptions());\n }\n catch (_) {\n return false;\n }\n}\nfunction shouldPolyfill(locale) {\n if (locale === void 0) { locale = 'en'; }\n if (!('RelativeTimeFormat' in Intl) ||\n !supportedLocalesOf(locale) ||\n !hasResolvedOptionsNumberingSystem(locale)) {\n return (0, intl_localematcher_1.match)([locale], supported_locales_1.supportedLocales, 'en');\n }\n}\nexports.shouldPolyfill = shouldPolyfill;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.supportedLocales = void 0;\n// This file is generated from supported-locales-gen.ts\nexports.supportedLocales = [\"af-NA\", \"af\", \"agq\", \"ak\", \"am\", \"ar-AE\", \"ar-BH\", \"ar-DJ\", \"ar-DZ\", \"ar-EG\", \"ar-EH\", \"ar-ER\", \"ar-IL\", \"ar-IQ\", \"ar-JO\", \"ar-KM\", \"ar-KW\", \"ar-LB\", \"ar-LY\", \"ar-MA\", \"ar-MR\", \"ar-OM\", \"ar-PS\", \"ar-QA\", \"ar-SA\", \"ar-SD\", \"ar-SO\", \"ar-SS\", \"ar-SY\", \"ar-TD\", \"ar-TN\", \"ar-YE\", \"ar\", \"as\", \"asa\", \"ast\", \"az-Cyrl\", \"az-Latn\", \"az\", \"bas\", \"be-tarask\", \"be\", \"bem\", \"bez\", \"bg\", \"bm\", \"bn-IN\", \"bn\", \"bo-IN\", \"bo\", \"br\", \"brx\", \"bs-Cyrl\", \"bs-Latn\", \"bs\", \"ca-AD\", \"ca-ES-valencia\", \"ca-FR\", \"ca-IT\", \"ca\", \"ccp-IN\", \"ccp\", \"ce\", \"ceb\", \"cgg\", \"chr\", \"ckb-IR\", \"ckb\", \"cs\", \"cy\", \"da-GL\", \"da\", \"dav\", \"de-AT\", \"de-BE\", \"de-CH\", \"de-IT\", \"de-LI\", \"de-LU\", \"de\", \"dje\", \"doi\", \"dsb\", \"dua\", \"dyo\", \"dz\", \"ebu\", \"ee-TG\", \"ee\", \"el-CY\", \"el\", \"en-001\", \"en-150\", \"en-AE\", \"en-AG\", \"en-AI\", \"en-AS\", \"en-AT\", \"en-AU\", \"en-BB\", \"en-BE\", \"en-BI\", \"en-BM\", \"en-BS\", \"en-BW\", \"en-BZ\", \"en-CA\", \"en-CC\", \"en-CH\", \"en-CK\", \"en-CM\", \"en-CX\", \"en-CY\", \"en-DE\", \"en-DG\", \"en-DK\", \"en-DM\", \"en-ER\", \"en-FI\", \"en-FJ\", \"en-FK\", \"en-FM\", \"en-GB\", \"en-GD\", \"en-GG\", \"en-GH\", \"en-GI\", \"en-GM\", \"en-GU\", \"en-GY\", \"en-HK\", \"en-IE\", \"en-IL\", \"en-IM\", \"en-IN\", \"en-IO\", \"en-JE\", \"en-JM\", \"en-KE\", \"en-KI\", \"en-KN\", \"en-KY\", \"en-LC\", \"en-LR\", \"en-LS\", \"en-MG\", \"en-MH\", \"en-MO\", \"en-MP\", \"en-MS\", \"en-MT\", \"en-MU\", \"en-MW\", \"en-MY\", \"en-NA\", \"en-NF\", \"en-NG\", \"en-NL\", \"en-NR\", \"en-NU\", \"en-NZ\", \"en-PG\", \"en-PH\", \"en-PK\", \"en-PN\", \"en-PR\", \"en-PW\", \"en-RW\", \"en-SB\", \"en-SC\", \"en-SD\", \"en-SE\", \"en-SG\", \"en-SH\", \"en-SI\", \"en-SL\", \"en-SS\", \"en-SX\", \"en-SZ\", \"en-TC\", \"en-TK\", \"en-TO\", \"en-TT\", \"en-TV\", \"en-TZ\", \"en-UG\", \"en-UM\", \"en-VC\", \"en-VG\", \"en-VI\", \"en-VU\", \"en-WS\", \"en-ZA\", \"en-ZM\", \"en-ZW\", \"en\", \"eo\", \"es-419\", \"es-AR\", \"es-BO\", \"es-BR\", \"es-BZ\", \"es-CL\", \"es-CO\", \"es-CR\", \"es-CU\", \"es-DO\", \"es-EA\", \"es-EC\", \"es-GQ\", \"es-GT\", \"es-HN\", \"es-IC\", \"es-MX\", \"es-NI\", \"es-PA\", \"es-PE\", \"es-PH\", \"es-PR\", \"es-PY\", \"es-SV\", \"es-US\", \"es-UY\", \"es-VE\", \"es\", \"et\", \"eu\", \"ewo\", \"fa-AF\", \"fa\", \"ff-Adlm-BF\", \"ff-Adlm-CM\", \"ff-Adlm-GH\", \"ff-Adlm-GM\", \"ff-Adlm-GW\", \"ff-Adlm-LR\", \"ff-Adlm-MR\", \"ff-Adlm-NE\", \"ff-Adlm-NG\", \"ff-Adlm-SL\", \"ff-Adlm-SN\", \"ff-Adlm\", \"ff-Latn-BF\", \"ff-Latn-CM\", \"ff-Latn-GH\", \"ff-Latn-GM\", \"ff-Latn-GN\", \"ff-Latn-GW\", \"ff-Latn-LR\", \"ff-Latn-MR\", \"ff-Latn-NE\", \"ff-Latn-NG\", \"ff-Latn-SL\", \"ff-Latn\", \"ff\", \"fi\", \"fil\", \"fo-DK\", \"fo\", \"fr-BE\", \"fr-BF\", \"fr-BI\", \"fr-BJ\", \"fr-BL\", \"fr-CA\", \"fr-CD\", \"fr-CF\", \"fr-CG\", \"fr-CH\", \"fr-CI\", \"fr-CM\", \"fr-DJ\", \"fr-DZ\", \"fr-GA\", \"fr-GF\", \"fr-GN\", \"fr-GP\", \"fr-GQ\", \"fr-HT\", \"fr-KM\", \"fr-LU\", \"fr-MA\", \"fr-MC\", \"fr-MF\", \"fr-MG\", \"fr-ML\", \"fr-MQ\", \"fr-MR\", \"fr-MU\", \"fr-NC\", \"fr-NE\", \"fr-PF\", \"fr-PM\", \"fr-RE\", \"fr-RW\", \"fr-SC\", \"fr-SN\", \"fr-SY\", \"fr-TD\", \"fr-TG\", \"fr-TN\", \"fr-VU\", \"fr-WF\", \"fr-YT\", \"fr\", \"fur\", \"fy\", \"ga-GB\", \"ga\", \"gd\", \"gl\", \"gsw-FR\", \"gsw-LI\", \"gsw\", \"gu\", \"guz\", \"gv\", \"ha-GH\", \"ha-NE\", \"ha\", \"haw\", \"he\", \"hi\", \"hr-BA\", \"hr\", \"hsb\", \"hu\", \"hy\", \"ia\", \"id\", \"ig\", \"ii\", \"is\", \"it-CH\", \"it-SM\", \"it-VA\", \"it\", \"ja\", \"jgo\", \"jmc\", \"jv\", \"ka\", \"kab\", \"kam\", \"kde\", \"kea\", \"kgp\", \"khq\", \"ki\", \"kk\", \"kkj\", \"kl\", \"kln\", \"km\", \"kn\", \"ko-KP\", \"ko\", \"kok\", \"ks-Arab\", \"ks\", \"ksb\", \"ksf\", \"ksh\", \"ku\", \"kw\", \"ky\", \"lag\", \"lb\", \"lg\", \"lkt\", \"ln-AO\", \"ln-CF\", \"ln-CG\", \"ln\", \"lo\", \"lrc-IQ\", \"lrc\", \"lt\", \"lu\", \"luo\", \"luy\", \"lv\", \"mai\", \"mas-TZ\", \"mas\", \"mer\", \"mfe\", \"mg\", \"mgh\", \"mgo\", \"mi\", \"mk\", \"ml\", \"mn\", \"mni-Beng\", \"mni\", \"mr\", \"ms-BN\", \"ms-ID\", \"ms-SG\", \"ms\", \"mt\", \"mua\", \"my\", \"mzn\", \"naq\", \"nb-SJ\", \"nb\", \"nd\", \"nds-NL\", \"nds\", \"ne-IN\", \"ne\", \"nl-AW\", \"nl-BE\", \"nl-BQ\", \"nl-CW\", \"nl-SR\", \"nl-SX\", \"nl\", \"nmg\", \"nn\", \"nnh\", \"no\", \"nus\", \"nyn\", \"om-KE\", \"om\", \"or\", \"os-RU\", \"os\", \"pa-Arab\", \"pa-Guru\", \"pa\", \"pcm\", \"pl\", \"ps-PK\", \"ps\", \"pt-AO\", \"pt-CH\", \"pt-CV\", \"pt-GQ\", \"pt-GW\", \"pt-LU\", \"pt-MO\", \"pt-MZ\", \"pt-PT\", \"pt-ST\", \"pt-TL\", \"pt\", \"qu-BO\", \"qu-EC\", \"qu\", \"rm\", \"rn\", \"ro-MD\", \"ro\", \"rof\", \"ru-BY\", \"ru-KG\", \"ru-KZ\", \"ru-MD\", \"ru-UA\", \"ru\", \"rw\", \"rwk\", \"sa\", \"sah\", \"saq\", \"sat-Olck\", \"sat\", \"sbp\", \"sc\", \"sd-Arab\", \"sd-Deva\", \"sd\", \"se-FI\", \"se-SE\", \"se\", \"seh\", \"ses\", \"sg\", \"shi-Latn\", \"shi-Tfng\", \"shi\", \"si\", \"sk\", \"sl\", \"smn\", \"sn\", \"so-DJ\", \"so-ET\", \"so-KE\", \"so\", \"sq-MK\", \"sq-XK\", \"sq\", \"sr-Cyrl-BA\", \"sr-Cyrl-ME\", \"sr-Cyrl-XK\", \"sr-Cyrl\", \"sr-Latn-BA\", \"sr-Latn-ME\", \"sr-Latn-XK\", \"sr-Latn\", \"sr\", \"su-Latn\", \"su\", \"sv-AX\", \"sv-FI\", \"sv\", \"sw-CD\", \"sw-KE\", \"sw-UG\", \"sw\", \"ta-LK\", \"ta-MY\", \"ta-SG\", \"ta\", \"te\", \"teo-KE\", \"teo\", \"tg\", \"th\", \"ti-ER\", \"ti\", \"tk\", \"to\", \"tr-CY\", \"tr\", \"tt\", \"twq\", \"tzm\", \"ug\", \"uk\", \"und\", \"ur-IN\", \"ur\", \"uz-Arab\", \"uz-Cyrl\", \"uz-Latn\", \"uz\", \"vai-Latn\", \"vai-Vaii\", \"vai\", \"vi\", \"vun\", \"wae\", \"wo\", \"xh\", \"xog\", \"yav\", \"yi\", \"yo-BJ\", \"yo\", \"yrl-CO\", \"yrl-VE\", \"yrl\", \"yue-Hans\", \"yue-Hant\", \"yue\", \"zgh\", \"zh-Hans-HK\", \"zh-Hans-MO\", \"zh-Hans-SG\", \"zh-Hans\", \"zh-Hant-HK\", \"zh-Hant-MO\", \"zh-Hant\", \"zh\", \"zu\"];\n","/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * Neither the name of Ajax.org B.V. nor the\n * names of its contributors may be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * ***** END LICENSE BLOCK ***** */\n\n/**\n * Define a module along with a payload\n * @param module a name for the payload\n * @param payload a function to call with (require, exports, module) params\n */\n\n(function() {\n\nvar ACE_NAMESPACE = \"ace\";\n\nvar global = (function() { return this; })();\nif (!global && typeof window != \"undefined\") global = window; // strict mode\n\n\nif (!ACE_NAMESPACE && typeof requirejs !== \"undefined\")\n return;\n\n\nvar define = function(module, deps, payload) {\n if (typeof module !== \"string\") {\n if (define.original)\n define.original.apply(this, arguments);\n else {\n console.error(\"dropping module because define wasn\\'t a string.\");\n console.trace();\n }\n return;\n }\n if (arguments.length == 2)\n payload = deps;\n if (!define.modules[module]) {\n define.payloads[module] = payload;\n define.modules[module] = null;\n }\n};\n\ndefine.modules = {};\ndefine.payloads = {};\n\n/**\n * Get at functionality define()ed using the function above\n */\nvar _require = function(parentId, module, callback) {\n if (typeof module === \"string\") {\n var payload = lookup(parentId, module);\n if (payload != undefined) {\n callback && callback();\n return payload;\n }\n } else if (Object.prototype.toString.call(module) === \"[object Array]\") {\n var params = [];\n for (var i = 0, l = module.length; i < l; ++i) {\n var dep = lookup(parentId, module[i]);\n if (dep == undefined && require.original)\n return;\n params.push(dep);\n }\n return callback && callback.apply(null, params) || true;\n }\n};\n\nvar require = function(module, callback) {\n var packagedModule = _require(\"\", module, callback);\n if (packagedModule == undefined && require.original)\n return require.original.apply(this, arguments);\n return packagedModule;\n};\n\nvar normalizeModule = function(parentId, moduleName) {\n // normalize plugin requires\n if (moduleName.indexOf(\"!\") !== -1) {\n var chunks = moduleName.split(\"!\");\n return normalizeModule(parentId, chunks[0]) + \"!\" + normalizeModule(parentId, chunks[1]);\n }\n // normalize relative requires\n if (moduleName.charAt(0) == \".\") {\n var base = parentId.split(\"/\").slice(0, -1).join(\"/\");\n moduleName = base + \"/\" + moduleName;\n\n while(moduleName.indexOf(\".\") !== -1 && previous != moduleName) {\n var previous = moduleName;\n moduleName = moduleName.replace(/\\/\\.\\//, \"/\").replace(/[^\\/]+\\/\\.\\.\\//, \"\");\n }\n }\n return moduleName;\n};\n\n/**\n * Internal function to lookup moduleNames and resolve them by calling the\n * definition function if needed.\n */\nvar lookup = function(parentId, moduleName) {\n moduleName = normalizeModule(parentId, moduleName);\n\n var module = define.modules[moduleName];\n if (!module) {\n module = define.payloads[moduleName];\n if (typeof module === 'function') {\n var exports = {};\n var mod = {\n id: moduleName,\n uri: '',\n exports: exports,\n packaged: true\n };\n\n var req = function(module, callback) {\n return _require(moduleName, module, callback);\n };\n\n var returnValue = module(req, exports, mod);\n exports = returnValue || mod.exports;\n define.modules[moduleName] = exports;\n delete define.payloads[moduleName];\n }\n module = define.modules[moduleName] = exports || module;\n }\n return module;\n};\n\nfunction exportAce(ns) {\n var root = global;\n if (ns) {\n if (!global[ns])\n global[ns] = {};\n root = global[ns];\n }\n\n if (!root.define || !root.define.packaged) {\n define.original = root.define;\n root.define = define;\n root.define.packaged = true;\n }\n\n if (!root.require || !root.require.packaged) {\n require.original = root.require;\n root.require = require;\n root.require.packaged = true;\n }\n}\n\nexportAce(ACE_NAMESPACE);\n\n})();\n\nace.define(\"ace/lib/es6-shim\",[\"require\",\"exports\",\"module\"], function(require, exports, module){function defineProp(obj, name, val) {\n Object.defineProperty(obj, name, {\n value: val,\n enumerable: false,\n writable: true,\n configurable: true\n });\n}\nif (!String.prototype.startsWith) {\n defineProp(String.prototype, \"startsWith\", function (searchString, position) {\n position = position || 0;\n return this.lastIndexOf(searchString, position) === position;\n });\n}\nif (!String.prototype.endsWith) {\n defineProp(String.prototype, \"endsWith\", function (searchString, position) {\n var subjectString = this;\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n });\n}\nif (!String.prototype.repeat) {\n defineProp(String.prototype, \"repeat\", function (count) {\n var result = \"\";\n var string = this;\n while (count > 0) {\n if (count & 1)\n result += string;\n if ((count >>= 1))\n string += string;\n }\n return result;\n });\n}\nif (!String.prototype.includes) {\n defineProp(String.prototype, \"includes\", function (str, position) {\n return this.indexOf(str, position) != -1;\n });\n}\nif (!Object.assign) {\n Object.assign = function (target) {\n if (target === undefined || target === null) {\n throw new TypeError(\"Cannot convert undefined or null to object\");\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n Object.keys(source).forEach(function (key) {\n output[key] = source[key];\n });\n }\n }\n return output;\n };\n}\nif (!Object.values) {\n Object.values = function (o) {\n return Object.keys(o).map(function (k) {\n return o[k];\n });\n };\n}\nif (!Array.prototype.find) {\n defineProp(Array.prototype, \"find\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return kValue;\n }\n }\n });\n}\nif (!Array.prototype.findIndex) {\n defineProp(Array.prototype, \"findIndex\", function (predicate) {\n var len = this.length;\n var thisArg = arguments[1];\n for (var k = 0; k < len; k++) {\n var kValue = this[k];\n if (predicate.call(thisArg, kValue, k, this)) {\n return k;\n }\n }\n });\n}\nif (!Array.prototype.includes) {\n defineProp(Array.prototype, \"includes\", function (item, position) {\n return this.indexOf(item, position) != -1;\n });\n}\nif (!Array.prototype.fill) {\n defineProp(Array.prototype, \"fill\", function (value) {\n var O = this;\n var len = O.length >>> 0;\n var start = arguments[1];\n var relativeStart = start >> 0;\n var k = relativeStart < 0\n ? Math.max(len + relativeStart, 0)\n : Math.min(relativeStart, len);\n var end = arguments[2];\n var relativeEnd = end === undefined ? len : end >> 0;\n var final = relativeEnd < 0\n ? Math.max(len + relativeEnd, 0)\n : Math.min(relativeEnd, len);\n while (k < final) {\n O[k] = value;\n k++;\n }\n return O;\n });\n}\nif (!Array.of) {\n defineProp(Array, \"of\", function () {\n return Array.prototype.slice.call(arguments);\n });\n}\n\n});\n\nace.define(\"ace/lib/fixoldbrowsers\",[\"require\",\"exports\",\"module\",\"ace/lib/es6-shim\"], function(require, exports, module){// vim:set ts=4 sts=4 sw=4 st:\n\"use strict\";\nrequire(\"./es6-shim\");\n\n});\n\nace.define(\"ace/lib/lang\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.last = function (a) {\n return a[a.length - 1];\n};\nexports.stringReverse = function (string) {\n return string.split(\"\").reverse().join(\"\");\n};\nexports.stringRepeat = function (string, count) {\n var result = '';\n while (count > 0) {\n if (count & 1)\n result += string;\n if (count >>= 1)\n string += string;\n }\n return result;\n};\nvar trimBeginRegexp = /^\\s\\s*/;\nvar trimEndRegexp = /\\s\\s*$/;\nexports.stringTrimLeft = function (string) {\n return string.replace(trimBeginRegexp, '');\n};\nexports.stringTrimRight = function (string) {\n return string.replace(trimEndRegexp, '');\n};\nexports.copyObject = function (obj) {\n var copy = {};\n for (var key in obj) {\n copy[key] = obj[key];\n }\n return copy;\n};\nexports.copyArray = function (array) {\n var copy = [];\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] && typeof array[i] == \"object\")\n copy[i] = this.copyObject(array[i]);\n else\n copy[i] = array[i];\n }\n return copy;\n};\nexports.deepCopy = function deepCopy(obj) {\n if (typeof obj !== \"object\" || !obj)\n return obj;\n var copy;\n if (Array.isArray(obj)) {\n copy = [];\n for (var key = 0; key < obj.length; key++) {\n copy[key] = deepCopy(obj[key]);\n }\n return copy;\n }\n if (Object.prototype.toString.call(obj) !== \"[object Object]\")\n return obj;\n copy = {};\n for (var key in obj)\n copy[key] = deepCopy(obj[key]);\n return copy;\n};\nexports.arrayToMap = function (arr) {\n var map = {};\n for (var i = 0; i < arr.length; i++) {\n map[arr[i]] = 1;\n }\n return map;\n};\nexports.createMap = function (props) {\n var map = Object.create(null);\n for (var i in props) {\n map[i] = props[i];\n }\n return map;\n};\nexports.arrayRemove = function (array, value) {\n for (var i = 0; i <= array.length; i++) {\n if (value === array[i]) {\n array.splice(i, 1);\n }\n }\n};\nexports.escapeRegExp = function (str) {\n return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\nexports.escapeHTML = function (str) {\n return (\"\" + str).replace(/&/g, \"&\").replace(/\"/g, \""\").replace(/'/g, \"'\").replace(/= 0)\n ? parseFloat((ua.match(/(?:MSIE |Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1])\n : parseFloat((ua.match(/(?:Trident\\/[0-9]+[\\.0-9]+;.*rv:)([0-9]+[\\.0-9]+)/) || [])[1]); // for ie\nexports.isOldIE = exports.isIE && exports.isIE < 9;\nexports.isGecko = exports.isMozilla = ua.match(/ Gecko\\/\\d+/);\nexports.isOpera = typeof opera == \"object\" && Object.prototype.toString.call(window.opera) == \"[object Opera]\";\nexports.isWebKit = parseFloat(ua.split(\"WebKit/\")[1]) || undefined;\nexports.isChrome = parseFloat(ua.split(\" Chrome/\")[1]) || undefined;\nexports.isEdge = parseFloat(ua.split(\" Edge/\")[1]) || undefined;\nexports.isAIR = ua.indexOf(\"AdobeAIR\") >= 0;\nexports.isAndroid = ua.indexOf(\"Android\") >= 0;\nexports.isChromeOS = ua.indexOf(\" CrOS \") >= 0;\nexports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream;\nif (exports.isIOS)\n exports.isMac = true;\nexports.isMobile = exports.isIOS || exports.isAndroid;\n\n});\n\nace.define(\"ace/lib/dom\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"./useragent\");\nvar XHTML_NS = \"http://www.w3.org/1999/xhtml\";\nexports.buildDom = function buildDom(arr, parent, refs) {\n if (typeof arr == \"string\" && arr) {\n var txt = document.createTextNode(arr);\n if (parent)\n parent.appendChild(txt);\n return txt;\n }\n if (!Array.isArray(arr)) {\n if (arr && arr.appendChild && parent)\n parent.appendChild(arr);\n return arr;\n }\n if (typeof arr[0] != \"string\" || !arr[0]) {\n var els = [];\n for (var i = 0; i < arr.length; i++) {\n var ch = buildDom(arr[i], parent, refs);\n ch && els.push(ch);\n }\n return els;\n }\n var el = document.createElement(arr[0]);\n var options = arr[1];\n var childIndex = 1;\n if (options && typeof options == \"object\" && !Array.isArray(options))\n childIndex = 2;\n for (var i = childIndex; i < arr.length; i++)\n buildDom(arr[i], el, refs);\n if (childIndex == 2) {\n Object.keys(options).forEach(function (n) {\n var val = options[n];\n if (n === \"class\") {\n el.className = Array.isArray(val) ? val.join(\" \") : val;\n }\n else if (typeof val == \"function\" || n == \"value\" || n[0] == \"$\") {\n el[n] = val;\n }\n else if (n === \"ref\") {\n if (refs)\n refs[val] = el;\n }\n else if (n === \"style\") {\n if (typeof val == \"string\")\n el.style.cssText = val;\n }\n else if (val != null) {\n el.setAttribute(n, val);\n }\n });\n }\n if (parent)\n parent.appendChild(el);\n return el;\n};\nexports.getDocumentHead = function (doc) {\n if (!doc)\n doc = document;\n return doc.head || doc.getElementsByTagName(\"head\")[0] || doc.documentElement;\n};\nexports.createElement = function (tag, ns) {\n return document.createElementNS ?\n document.createElementNS(ns || XHTML_NS, tag) :\n document.createElement(tag);\n};\nexports.removeChildren = function (element) {\n element.innerHTML = \"\";\n};\nexports.createTextNode = function (textContent, element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createTextNode(textContent);\n};\nexports.createFragment = function (element) {\n var doc = element ? element.ownerDocument : document;\n return doc.createDocumentFragment();\n};\nexports.hasCssClass = function (el, name) {\n var classes = (el.className + \"\").split(/\\s+/g);\n return classes.indexOf(name) !== -1;\n};\nexports.addCssClass = function (el, name) {\n if (!exports.hasCssClass(el, name)) {\n el.className += \" \" + name;\n }\n};\nexports.removeCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g);\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n classes.splice(index, 1);\n }\n el.className = classes.join(\" \");\n};\nexports.toggleCssClass = function (el, name) {\n var classes = el.className.split(/\\s+/g), add = true;\n while (true) {\n var index = classes.indexOf(name);\n if (index == -1) {\n break;\n }\n add = false;\n classes.splice(index, 1);\n }\n if (add)\n classes.push(name);\n el.className = classes.join(\" \");\n return add;\n};\nexports.setCssClass = function (node, className, include) {\n if (include) {\n exports.addCssClass(node, className);\n }\n else {\n exports.removeCssClass(node, className);\n }\n};\nexports.hasCssString = function (id, doc) {\n var index = 0, sheets;\n doc = doc || document;\n if ((sheets = doc.querySelectorAll(\"style\"))) {\n while (index < sheets.length) {\n if (sheets[index++].id === id) {\n return true;\n }\n }\n }\n};\nexports.removeElementById = function (id, doc) {\n doc = doc || document;\n if (doc.getElementById(id)) {\n doc.getElementById(id).remove();\n }\n};\nvar strictCSP;\nvar cssCache = [];\nexports.useStrictCSP = function (value) {\n strictCSP = value;\n if (value == false)\n insertPendingStyles();\n else if (!cssCache)\n cssCache = [];\n};\nfunction insertPendingStyles() {\n var cache = cssCache;\n cssCache = null;\n cache && cache.forEach(function (item) {\n importCssString(item[0], item[1]);\n });\n}\nfunction importCssString(cssText, id, target) {\n if (typeof document == \"undefined\")\n return;\n if (cssCache) {\n if (target) {\n insertPendingStyles();\n }\n else if (target === false) {\n return cssCache.push([cssText, id]);\n }\n }\n if (strictCSP)\n return;\n var container = target;\n if (!target || !target.getRootNode) {\n container = document;\n }\n else {\n container = target.getRootNode();\n if (!container || container == target)\n container = document;\n }\n var doc = container.ownerDocument || container;\n if (id && exports.hasCssString(id, container))\n return null;\n if (id)\n cssText += \"\\n/*# sourceURL=ace/css/\" + id + \" */\";\n var style = exports.createElement(\"style\");\n style.appendChild(doc.createTextNode(cssText));\n if (id)\n style.id = id;\n if (container == doc)\n container = exports.getDocumentHead(doc);\n container.insertBefore(style, container.firstChild);\n}\nexports.importCssString = importCssString;\nexports.importCssStylsheet = function (uri, doc) {\n exports.buildDom([\"link\", { rel: \"stylesheet\", href: uri }], exports.getDocumentHead(doc));\n};\nexports.scrollbarWidth = function (doc) {\n var inner = exports.createElement(\"ace_inner\");\n inner.style.width = \"100%\";\n inner.style.minWidth = \"0px\";\n inner.style.height = \"200px\";\n inner.style.display = \"block\";\n var outer = exports.createElement(\"ace_outer\");\n var style = outer.style;\n style.position = \"absolute\";\n style.left = \"-10000px\";\n style.overflow = \"hidden\";\n style.width = \"200px\";\n style.minWidth = \"0px\";\n style.height = \"150px\";\n style.display = \"block\";\n outer.appendChild(inner);\n var body = (doc && doc.documentElement) || (document && document.documentElement);\n if (!body)\n return 0;\n body.appendChild(outer);\n var noScrollbar = inner.offsetWidth;\n style.overflow = \"scroll\";\n var withScrollbar = inner.offsetWidth;\n if (noScrollbar === withScrollbar) {\n withScrollbar = outer.clientWidth;\n }\n body.removeChild(outer);\n return noScrollbar - withScrollbar;\n};\nexports.computedStyle = function (element, style) {\n return window.getComputedStyle(element, \"\") || {};\n};\nexports.setStyle = function (styles, property, value) {\n if (styles[property] !== value) {\n styles[property] = value;\n }\n};\nexports.HAS_CSS_ANIMATION = false;\nexports.HAS_CSS_TRANSFORMS = false;\nexports.HI_DPI = useragent.isWin\n ? typeof window !== \"undefined\" && window.devicePixelRatio >= 1.5\n : true;\nif (useragent.isChromeOS)\n exports.HI_DPI = false;\nif (typeof document !== \"undefined\") {\n var div = document.createElement(\"div\");\n if (exports.HI_DPI && div.style.transform !== undefined)\n exports.HAS_CSS_TRANSFORMS = true;\n if (!useragent.isEdge && typeof div.style.animationName !== \"undefined\")\n exports.HAS_CSS_ANIMATION = true;\n div = null;\n}\nif (exports.HAS_CSS_TRANSFORMS) {\n exports.translate = function (element, tx, ty) {\n element.style.transform = \"translate(\" + Math.round(tx) + \"px, \" + Math.round(ty) + \"px)\";\n };\n}\nelse {\n exports.translate = function (element, tx, ty) {\n element.style.top = Math.round(ty) + \"px\";\n element.style.left = Math.round(tx) + \"px\";\n };\n}\n\n});\n\nace.define(\"ace/lib/net\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){/*\n * based on code from:\n *\n * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/requirejs for details\n */\n\"use strict\";\nvar dom = require(\"./dom\");\nexports.get = function (url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n callback(xhr.responseText);\n }\n };\n xhr.send(null);\n};\nexports.loadScript = function (path, callback) {\n var head = dom.getDocumentHead();\n var s = document.createElement('script');\n s.src = path;\n head.appendChild(s);\n s.onload = s.onreadystatechange = function (_, isAbort) {\n if (isAbort || !s.readyState || s.readyState == \"loaded\" || s.readyState == \"complete\") {\n s = s.onload = s.onreadystatechange = null;\n if (!isAbort)\n callback();\n }\n };\n};\nexports.qualifyURL = function (url) {\n var a = document.createElement('a');\n a.href = url;\n return a.href;\n};\n\n});\n\nace.define(\"ace/lib/oop\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nexports.inherits = function (ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n};\nexports.mixin = function (obj, mixin) {\n for (var key in mixin) {\n obj[key] = mixin[key];\n }\n return obj;\n};\nexports.implement = function (proto, mixin) {\n exports.mixin(proto, mixin);\n};\n\n});\n\nace.define(\"ace/lib/event_emitter\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar EventEmitter = {};\nvar stopPropagation = function () { this.propagationStopped = true; };\nvar preventDefault = function () { this.defaultPrevented = true; };\nEventEmitter._emit =\n EventEmitter._dispatchEvent = function (eventName, e) {\n this._eventRegistry || (this._eventRegistry = {});\n this._defaultHandlers || (this._defaultHandlers = {});\n var listeners = this._eventRegistry[eventName] || [];\n var defaultHandler = this._defaultHandlers[eventName];\n if (!listeners.length && !defaultHandler)\n return;\n if (typeof e != \"object\" || !e)\n e = {};\n if (!e.type)\n e.type = eventName;\n if (!e.stopPropagation)\n e.stopPropagation = stopPropagation;\n if (!e.preventDefault)\n e.preventDefault = preventDefault;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](e, this);\n if (e.propagationStopped)\n break;\n }\n if (defaultHandler && !e.defaultPrevented)\n return defaultHandler(e, this);\n };\nEventEmitter._signal = function (eventName, e) {\n var listeners = (this._eventRegistry || {})[eventName];\n if (!listeners)\n return;\n listeners = listeners.slice();\n for (var i = 0; i < listeners.length; i++)\n listeners[i](e, this);\n};\nEventEmitter.once = function (eventName, callback) {\n var _self = this;\n this.on(eventName, function newCallback() {\n _self.off(eventName, newCallback);\n callback.apply(null, arguments);\n });\n if (!callback) {\n return new Promise(function (resolve) {\n callback = resolve;\n });\n }\n};\nEventEmitter.setDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n handlers = this._defaultHandlers = { _disabled_: {} };\n if (handlers[eventName]) {\n var old = handlers[eventName];\n var disabled = handlers._disabled_[eventName];\n if (!disabled)\n handlers._disabled_[eventName] = disabled = [];\n disabled.push(old);\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n handlers[eventName] = callback;\n};\nEventEmitter.removeDefaultHandler = function (eventName, callback) {\n var handlers = this._defaultHandlers;\n if (!handlers)\n return;\n var disabled = handlers._disabled_[eventName];\n if (handlers[eventName] == callback) {\n if (disabled)\n this.setDefaultHandler(eventName, disabled.pop());\n }\n else if (disabled) {\n var i = disabled.indexOf(callback);\n if (i != -1)\n disabled.splice(i, 1);\n }\n};\nEventEmitter.on =\n EventEmitter.addEventListener = function (eventName, callback, capturing) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n listeners = this._eventRegistry[eventName] = [];\n if (listeners.indexOf(callback) == -1)\n listeners[capturing ? \"unshift\" : \"push\"](callback);\n return callback;\n };\nEventEmitter.off =\n EventEmitter.removeListener =\n EventEmitter.removeEventListener = function (eventName, callback) {\n this._eventRegistry = this._eventRegistry || {};\n var listeners = this._eventRegistry[eventName];\n if (!listeners)\n return;\n var index = listeners.indexOf(callback);\n if (index !== -1)\n listeners.splice(index, 1);\n };\nEventEmitter.removeAllListeners = function (eventName) {\n if (!eventName)\n this._eventRegistry = this._defaultHandlers = undefined;\n if (this._eventRegistry)\n this._eventRegistry[eventName] = undefined;\n if (this._defaultHandlers)\n this._defaultHandlers[eventName] = undefined;\n};\nexports.EventEmitter = EventEmitter;\n\n});\n\nace.define(\"ace/lib/app_config\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"no use strict\";\nvar oop = require(\"./oop\");\nvar EventEmitter = require(\"./event_emitter\").EventEmitter;\nvar optionsProvider = {\n setOptions: function (optList) {\n Object.keys(optList).forEach(function (key) {\n this.setOption(key, optList[key]);\n }, this);\n },\n getOptions: function (optionNames) {\n var result = {};\n if (!optionNames) {\n var options = this.$options;\n optionNames = Object.keys(options).filter(function (key) {\n return !options[key].hidden;\n });\n }\n else if (!Array.isArray(optionNames)) {\n result = optionNames;\n optionNames = Object.keys(result);\n }\n optionNames.forEach(function (key) {\n result[key] = this.getOption(key);\n }, this);\n return result;\n },\n setOption: function (name, value) {\n if (this[\"$\" + name] === value)\n return;\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].setOption(name, value);\n if (!opt.handlesSet)\n this[\"$\" + name] = value;\n if (opt && opt.set)\n opt.set.call(this, value);\n },\n getOption: function (name) {\n var opt = this.$options[name];\n if (!opt) {\n return warn('misspelled option \"' + name + '\"');\n }\n if (opt.forwardTo)\n return this[opt.forwardTo] && this[opt.forwardTo].getOption(name);\n return opt && opt.get ? opt.get.call(this) : this[\"$\" + name];\n }\n};\nfunction warn(message) {\n if (typeof console != \"undefined\" && console.warn)\n console.warn.apply(console, arguments);\n}\nfunction reportError(msg, data) {\n var e = new Error(msg);\n e.data = data;\n if (typeof console == \"object\" && console.error)\n console.error(e);\n setTimeout(function () { throw e; });\n}\nvar messages;\nvar AppConfig = /** @class */ (function () {\n function AppConfig() {\n this.$defaultOptions = {};\n }\n AppConfig.prototype.defineOptions = function (obj, path, options) {\n if (!obj.$options)\n this.$defaultOptions[path] = obj.$options = {};\n Object.keys(options).forEach(function (key) {\n var opt = options[key];\n if (typeof opt == \"string\")\n opt = { forwardTo: opt };\n opt.name || (opt.name = key);\n obj.$options[opt.name] = opt;\n if (\"initialValue\" in opt)\n obj[\"$\" + opt.name] = opt.initialValue;\n });\n oop.implement(obj, optionsProvider);\n return this;\n };\n AppConfig.prototype.resetOptions = function (obj) {\n Object.keys(obj.$options).forEach(function (key) {\n var opt = obj.$options[key];\n if (\"value\" in opt)\n obj.setOption(key, opt.value);\n });\n };\n AppConfig.prototype.setDefaultValue = function (path, name, value) {\n if (!path) {\n for (path in this.$defaultOptions)\n if (this.$defaultOptions[path][name])\n break;\n if (!this.$defaultOptions[path][name])\n return false;\n }\n var opts = this.$defaultOptions[path] || (this.$defaultOptions[path] = {});\n if (opts[name]) {\n if (opts.forwardTo)\n this.setDefaultValue(opts.forwardTo, name, value);\n else\n opts[name].value = value;\n }\n };\n AppConfig.prototype.setDefaultValues = function (path, optionHash) {\n Object.keys(optionHash).forEach(function (key) {\n this.setDefaultValue(path, key, optionHash[key]);\n }, this);\n };\n AppConfig.prototype.setMessages = function (value) {\n messages = value;\n };\n AppConfig.prototype.nls = function (string, params) {\n if (messages && !messages[string]) {\n warn(\"No message found for '\" + string + \"' in the provided messages, falling back to default English message.\");\n }\n var translated = messages && messages[string] || string;\n if (params) {\n translated = translated.replace(/\\$(\\$|[\\d]+)/g, function (_, name) {\n if (name == \"$\")\n return \"$\";\n return params[name];\n });\n }\n return translated;\n };\n return AppConfig;\n}());\nAppConfig.prototype.warn = warn;\nAppConfig.prototype.reportError = reportError;\noop.implement(AppConfig.prototype, EventEmitter);\nexports.AppConfig = AppConfig;\n\n});\n\nace.define(\"ace/theme/textmate-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){module.exports = \".ace-tm .ace_gutter {\\n background: #f0f0f0;\\n color: #333;\\n}\\n\\n.ace-tm .ace_print-margin {\\n width: 1px;\\n background: #e8e8e8;\\n}\\n\\n.ace-tm .ace_fold {\\n background-color: #6B72E6;\\n}\\n\\n.ace-tm {\\n background-color: #FFFFFF;\\n color: black;\\n}\\n\\n.ace-tm .ace_cursor {\\n color: black;\\n}\\n \\n.ace-tm .ace_invisible {\\n color: rgb(191, 191, 191);\\n}\\n\\n.ace-tm .ace_storage,\\n.ace-tm .ace_keyword {\\n color: blue;\\n}\\n\\n.ace-tm .ace_constant {\\n color: rgb(197, 6, 11);\\n}\\n\\n.ace-tm .ace_constant.ace_buildin {\\n color: rgb(88, 72, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_language {\\n color: rgb(88, 92, 246);\\n}\\n\\n.ace-tm .ace_constant.ace_library {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_invalid {\\n background-color: rgba(255, 0, 0, 0.1);\\n color: red;\\n}\\n\\n.ace-tm .ace_support.ace_function {\\n color: rgb(60, 76, 114);\\n}\\n\\n.ace-tm .ace_support.ace_constant {\\n color: rgb(6, 150, 14);\\n}\\n\\n.ace-tm .ace_support.ace_type,\\n.ace-tm .ace_support.ace_class {\\n color: rgb(109, 121, 222);\\n}\\n\\n.ace-tm .ace_keyword.ace_operator {\\n color: rgb(104, 118, 135);\\n}\\n\\n.ace-tm .ace_string {\\n color: rgb(3, 106, 7);\\n}\\n\\n.ace-tm .ace_comment {\\n color: rgb(76, 136, 107);\\n}\\n\\n.ace-tm .ace_comment.ace_doc {\\n color: rgb(0, 102, 255);\\n}\\n\\n.ace-tm .ace_comment.ace_doc.ace_tag {\\n color: rgb(128, 159, 191);\\n}\\n\\n.ace-tm .ace_constant.ace_numeric {\\n color: rgb(0, 0, 205);\\n}\\n\\n.ace-tm .ace_variable {\\n color: rgb(49, 132, 149);\\n}\\n\\n.ace-tm .ace_xml-pe {\\n color: rgb(104, 104, 91);\\n}\\n\\n.ace-tm .ace_entity.ace_name.ace_function {\\n color: #0000A2;\\n}\\n\\n\\n.ace-tm .ace_heading {\\n color: rgb(12, 7, 255);\\n}\\n\\n.ace-tm .ace_list {\\n color:rgb(185, 6, 144);\\n}\\n\\n.ace-tm .ace_meta.ace_tag {\\n color:rgb(0, 22, 142);\\n}\\n\\n.ace-tm .ace_string.ace_regex {\\n color: rgb(255, 0, 0)\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selection {\\n background: rgb(181, 213, 255);\\n}\\n.ace-tm.ace_multiselect .ace_selection.ace_start {\\n box-shadow: 0 0 3px 0px white;\\n}\\n.ace-tm .ace_marker-layer .ace_step {\\n background: rgb(252, 255, 0);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_stack {\\n background: rgb(164, 229, 101);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_bracket {\\n margin: -1px 0 0 -1px;\\n border: 1px solid rgb(192, 192, 192);\\n}\\n\\n.ace-tm .ace_marker-layer .ace_active-line {\\n background: rgba(0, 0, 0, 0.07);\\n}\\n\\n.ace-tm .ace_gutter-active-line {\\n background-color : #dcdcdc;\\n}\\n\\n.ace-tm .ace_marker-layer .ace_selected-word {\\n background: rgb(250, 250, 255);\\n border: 1px solid rgb(200, 200, 250);\\n}\\n\\n.ace-tm .ace_indent-guide {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\n}\\n\\n.ace-tm .ace_indent-guide-active {\\n background: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC\\\") right repeat-y;\\n}\\n\";\n\n});\n\nace.define(\"ace/theme/textmate\",[\"require\",\"exports\",\"module\",\"ace/theme/textmate-css\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nexports.isDark = false;\nexports.cssClass = \"ace-tm\";\nexports.cssText = require(\"./textmate-css\");\nexports.$id = \"ace/theme/textmate\";\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n\n});\n\nace.define(\"ace/config\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/net\",\"ace/lib/dom\",\"ace/lib/app_config\",\"ace/theme/textmate\"], function(require, exports, module){\"no use strict\";\nvar lang = require(\"./lib/lang\");\nvar net = require(\"./lib/net\");\nvar dom = require(\"./lib/dom\");\nvar AppConfig = require(\"./lib/app_config\").AppConfig;\nmodule.exports = exports = new AppConfig();\nvar options = {\n packaged: false,\n workerPath: null,\n modePath: null,\n themePath: null,\n basePath: \"\",\n suffix: \".js\",\n $moduleUrls: {},\n loadWorkerFromBlob: true,\n sharedPopups: false,\n useStrictCSP: null\n};\nexports.get = function (key) {\n if (!options.hasOwnProperty(key))\n throw new Error(\"Unknown config key: \" + key);\n return options[key];\n};\nexports.set = function (key, value) {\n if (options.hasOwnProperty(key))\n options[key] = value;\n else if (this.setDefaultValue(\"\", key, value) == false)\n throw new Error(\"Unknown config key: \" + key);\n if (key == \"useStrictCSP\")\n dom.useStrictCSP(value);\n};\nexports.all = function () {\n return lang.copyObject(options);\n};\nexports.$modes = {};\nexports.moduleUrl = function (name, component) {\n if (options.$moduleUrls[name])\n return options.$moduleUrls[name];\n var parts = name.split(\"/\");\n component = component || parts[parts.length - 2] || \"\";\n var sep = component == \"snippets\" ? \"/\" : \"-\";\n var base = parts[parts.length - 1];\n if (component == \"worker\" && sep == \"-\") {\n var re = new RegExp(\"^\" + component + \"[\\\\-_]|[\\\\-_]\" + component + \"$\", \"g\");\n base = base.replace(re, \"\");\n }\n if ((!base || base == component) && parts.length > 1)\n base = parts[parts.length - 2];\n var path = options[component + \"Path\"];\n if (path == null) {\n path = options.basePath;\n }\n else if (sep == \"/\") {\n component = sep = \"\";\n }\n if (path && path.slice(-1) != \"/\")\n path += \"/\";\n return path + component + sep + base + this.get(\"suffix\");\n};\nexports.setModuleUrl = function (name, subst) {\n return options.$moduleUrls[name] = subst;\n};\nvar loader = function (moduleName, cb) {\n if (moduleName === \"ace/theme/textmate\" || moduleName === \"./theme/textmate\")\n return cb(null, require(\"./theme/textmate\"));\n if (customLoader)\n return customLoader(moduleName, cb);\n console.error(\"loader is not configured\");\n};\nvar customLoader;\nexports.setLoader = function (cb) {\n customLoader = cb;\n};\nexports.dynamicModules = Object.create(null);\nexports.$loading = {};\nexports.$loaded = {};\nexports.loadModule = function (moduleName, onLoad) {\n var loadedModule, moduleType;\n if (Array.isArray(moduleName)) {\n moduleType = moduleName[0];\n moduleName = moduleName[1];\n }\n var load = function (module) {\n if (module && !exports.$loading[moduleName])\n return onLoad && onLoad(module);\n if (!exports.$loading[moduleName])\n exports.$loading[moduleName] = [];\n exports.$loading[moduleName].push(onLoad);\n if (exports.$loading[moduleName].length > 1)\n return;\n var afterLoad = function () {\n loader(moduleName, function (err, module) {\n if (module)\n exports.$loaded[moduleName] = module;\n exports._emit(\"load.module\", { name: moduleName, module: module });\n var listeners = exports.$loading[moduleName];\n exports.$loading[moduleName] = null;\n listeners.forEach(function (onLoad) {\n onLoad && onLoad(module);\n });\n });\n };\n if (!exports.get(\"packaged\"))\n return afterLoad();\n net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad);\n reportErrorIfPathIsNotConfigured();\n };\n if (exports.dynamicModules[moduleName]) {\n exports.dynamicModules[moduleName]().then(function (module) {\n if (module.default) {\n load(module.default);\n }\n else {\n load(module);\n }\n });\n }\n else {\n try {\n loadedModule = this.$require(moduleName);\n }\n catch (e) { }\n load(loadedModule || exports.$loaded[moduleName]);\n }\n};\nexports.$require = function (moduleName) {\n if (typeof module.require == \"function\") {\n var req = \"require\";\n return module[req](moduleName);\n }\n};\nexports.setModuleLoader = function (moduleName, onLoad) {\n exports.dynamicModules[moduleName] = onLoad;\n};\nvar reportErrorIfPathIsNotConfigured = function () {\n if (!options.basePath && !options.workerPath\n && !options.modePath && !options.themePath\n && !Object.keys(options.$moduleUrls).length) {\n console.error(\"Unable to infer path to ace from script src,\", \"use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes\", \"or with webpack use ace/webpack-resolver\");\n reportErrorIfPathIsNotConfigured = function () { };\n }\n};\nexports.version = \"1.24.1\";\n\n});\n\nace.define(\"ace/loader_build\",[\"require\",\"exports\",\"module\",\"ace/lib/fixoldbrowsers\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nrequire(\"./lib/fixoldbrowsers\");\nvar config = require(\"./config\");\nconfig.setLoader(function(moduleName, cb) {\n require([moduleName], function(module) {\n cb(null, module);\n });\n});\n\nvar global = (function() {\n return this || typeof window != \"undefined\" && window;\n})();\n\nmodule.exports = function(ace) {\n config.init = init;\n config.$require = require;\n ace.require = require;\n\n if (typeof define === \"function\")\n ace.define = define;\n};\ninit(true);function init(packaged) {\n\n if (!global || !global.document)\n return;\n \n config.set(\"packaged\", packaged || require.packaged || module.packaged || (global.define && define.packaged));\n\n var scriptOptions = {};\n var scriptUrl = \"\";\n var currentScript = (document.currentScript || document._currentScript ); // native or polyfill\n var currentDocument = currentScript && currentScript.ownerDocument || document;\n \n if (currentScript && currentScript.src) {\n scriptUrl = currentScript.src.split(/[?#]/)[0].split(\"/\").slice(0, -1).join(\"/\") || \"\";\n }\n \n var scripts = currentDocument.getElementsByTagName(\"script\");\n for (var i=0; i [\" + this.end.row + \"/\" + this.end.column + \"]\");\n };\n Range.prototype.contains = function (row, column) {\n return this.compare(row, column) == 0;\n };\n Range.prototype.compareRange = function (range) {\n var cmp, end = range.end, start = range.start;\n cmp = this.compare(end.row, end.column);\n if (cmp == 1) {\n cmp = this.compare(start.row, start.column);\n if (cmp == 1) {\n return 2;\n }\n else if (cmp == 0) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (cmp == -1) {\n return -2;\n }\n else {\n cmp = this.compare(start.row, start.column);\n if (cmp == -1) {\n return -1;\n }\n else if (cmp == 1) {\n return 42;\n }\n else {\n return 0;\n }\n }\n };\n Range.prototype.comparePoint = function (p) {\n return this.compare(p.row, p.column);\n };\n Range.prototype.containsRange = function (range) {\n return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;\n };\n Range.prototype.intersects = function (range) {\n var cmp = this.compareRange(range);\n return (cmp == -1 || cmp == 0 || cmp == 1);\n };\n Range.prototype.isEnd = function (row, column) {\n return this.end.row == row && this.end.column == column;\n };\n Range.prototype.isStart = function (row, column) {\n return this.start.row == row && this.start.column == column;\n };\n Range.prototype.setStart = function (row, column) {\n if (typeof row == \"object\") {\n this.start.column = row.column;\n this.start.row = row.row;\n }\n else {\n this.start.row = row;\n this.start.column = column;\n }\n };\n Range.prototype.setEnd = function (row, column) {\n if (typeof row == \"object\") {\n this.end.column = row.column;\n this.end.row = row.row;\n }\n else {\n this.end.row = row;\n this.end.column = column;\n }\n };\n Range.prototype.inside = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column) || this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideStart = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isEnd(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.insideEnd = function (row, column) {\n if (this.compare(row, column) == 0) {\n if (this.isStart(row, column)) {\n return false;\n }\n else {\n return true;\n }\n }\n return false;\n };\n Range.prototype.compare = function (row, column) {\n if (!this.isMultiLine()) {\n if (row === this.start.row) {\n return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);\n }\n }\n if (row < this.start.row)\n return -1;\n if (row > this.end.row)\n return 1;\n if (this.start.row === row)\n return column >= this.start.column ? 0 : -1;\n if (this.end.row === row)\n return column <= this.end.column ? 0 : 1;\n return 0;\n };\n Range.prototype.compareStart = function (row, column) {\n if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareEnd = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.compareInside = function (row, column) {\n if (this.end.row == row && this.end.column == column) {\n return 1;\n }\n else if (this.start.row == row && this.start.column == column) {\n return -1;\n }\n else {\n return this.compare(row, column);\n }\n };\n Range.prototype.clipRows = function (firstRow, lastRow) {\n if (this.end.row > lastRow)\n var end = { row: lastRow + 1, column: 0 };\n else if (this.end.row < firstRow)\n var end = { row: firstRow, column: 0 };\n if (this.start.row > lastRow)\n var start = { row: lastRow + 1, column: 0 };\n else if (this.start.row < firstRow)\n var start = { row: firstRow, column: 0 };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.extend = function (row, column) {\n var cmp = this.compare(row, column);\n if (cmp == 0)\n return this;\n else if (cmp == -1)\n var start = { row: row, column: column };\n else\n var end = { row: row, column: column };\n return Range.fromPoints(start || this.start, end || this.end);\n };\n Range.prototype.isEmpty = function () {\n return (this.start.row === this.end.row && this.start.column === this.end.column);\n };\n Range.prototype.isMultiLine = function () {\n return (this.start.row !== this.end.row);\n };\n Range.prototype.clone = function () {\n return Range.fromPoints(this.start, this.end);\n };\n Range.prototype.collapseRows = function () {\n if (this.end.column == 0)\n return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row - 1), 0);\n else\n return new Range(this.start.row, 0, this.end.row, 0);\n };\n Range.prototype.toScreenRange = function (session) {\n var screenPosStart = session.documentToScreenPosition(this.start);\n var screenPosEnd = session.documentToScreenPosition(this.end);\n return new Range(screenPosStart.row, screenPosStart.column, screenPosEnd.row, screenPosEnd.column);\n };\n Range.prototype.moveBy = function (row, column) {\n this.start.row += row;\n this.start.column += column;\n this.end.row += row;\n this.end.column += column;\n };\n return Range;\n}());\nRange.fromPoints = function (start, end) {\n return new Range(start.row, start.column, end.row, end.column);\n};\nRange.comparePoints = comparePoints;\nRange.comparePoints = function (p1, p2) {\n return p1.row - p2.row || p1.column - p2.column;\n};\nexports.Range = Range;\n\n});\n\nace.define(\"ace/lib/keys\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\"], function(require, exports, module){/*! @license\n==========================================================================\nSproutCore -- JavaScript Application Framework\ncopyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n\nSproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.\n\nFor more information about SproutCore, visit http://www.sproutcore.com\n\n\n==========================================================================\n@license */\n\"use strict\";\nvar oop = require(\"./oop\");\nvar Keys = (function () {\n var ret = {\n MODIFIER_KEYS: {\n 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta',\n 91: 'MetaLeft', 92: 'MetaRight', 93: 'ContextMenu'\n },\n KEY_MODS: {\n \"ctrl\": 1, \"alt\": 2, \"option\": 2, \"shift\": 4,\n \"super\": 8, \"meta\": 8, \"command\": 8, \"cmd\": 8,\n \"control\": 1\n },\n FUNCTION_KEYS: {\n 8: \"Backspace\",\n 9: \"Tab\",\n 13: \"Return\",\n 19: \"Pause\",\n 27: \"Esc\",\n 32: \"Space\",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"Left\",\n 38: \"Up\",\n 39: \"Right\",\n 40: \"Down\",\n 44: \"Print\",\n 45: \"Insert\",\n 46: \"Delete\",\n 96: \"Numpad0\",\n 97: \"Numpad1\",\n 98: \"Numpad2\",\n 99: \"Numpad3\",\n 100: \"Numpad4\",\n 101: \"Numpad5\",\n 102: \"Numpad6\",\n 103: \"Numpad7\",\n 104: \"Numpad8\",\n 105: \"Numpad9\",\n '-13': \"NumpadEnter\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"Numlock\",\n 145: \"Scrolllock\"\n },\n PRINTABLE_KEYS: {\n 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\n 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\n 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\n 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\n 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\n 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\n 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\n 219: '[', 220: '\\\\', 221: ']', 222: \"'\", 111: '/', 106: '*'\n }\n };\n ret.PRINTABLE_KEYS[173] = '-';\n var name, i;\n for (i in ret.FUNCTION_KEYS) {\n name = ret.FUNCTION_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n for (i in ret.PRINTABLE_KEYS) {\n name = ret.PRINTABLE_KEYS[i].toLowerCase();\n ret[name] = parseInt(i, 10);\n }\n oop.mixin(ret, ret.MODIFIER_KEYS);\n oop.mixin(ret, ret.PRINTABLE_KEYS);\n oop.mixin(ret, ret.FUNCTION_KEYS);\n ret.enter = ret[\"return\"];\n ret.escape = ret.esc;\n ret.del = ret[\"delete\"];\n (function () {\n var mods = [\"cmd\", \"ctrl\", \"alt\", \"shift\"];\n for (var i = Math.pow(2, mods.length); i--;) {\n ret.KEY_MODS[i] = mods.filter(function (x) {\n return i & ret.KEY_MODS[x];\n }).join(\"-\") + \"-\";\n }\n })();\n ret.KEY_MODS[0] = \"\";\n ret.KEY_MODS[-1] = \"input-\";\n return ret;\n})();\noop.mixin(exports, Keys);\nexports.default = exports;\nexports.keyCodeToString = function (keyCode) {\n var keyString = Keys[keyCode];\n if (typeof keyString != \"string\")\n keyString = String.fromCharCode(keyCode);\n return keyString.toLowerCase();\n};\n\n});\n\nace.define(\"ace/lib/event\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar keys = require(\"./keys\");\nvar useragent = require(\"./useragent\");\nvar pressedKeys = null;\nvar ts = 0;\nvar activeListenerOptions;\nfunction detectListenerOptionsSupport() {\n activeListenerOptions = false;\n try {\n document.createComment(\"\").addEventListener(\"test\", function () { }, {\n get passive() {\n activeListenerOptions = { passive: false };\n }\n });\n }\n catch (e) { }\n}\nfunction getListenerOptions() {\n if (activeListenerOptions == undefined)\n detectListenerOptionsSupport();\n return activeListenerOptions;\n}\nfunction EventListener(elem, type, callback) {\n this.elem = elem;\n this.type = type;\n this.callback = callback;\n}\nEventListener.prototype.destroy = function () {\n removeListener(this.elem, this.type, this.callback);\n this.elem = this.type = this.callback = undefined;\n};\nvar addListener = exports.addListener = function (elem, type, callback, destroyer) {\n elem.addEventListener(type, callback, getListenerOptions());\n if (destroyer)\n destroyer.$toDestroy.push(new EventListener(elem, type, callback));\n};\nvar removeListener = exports.removeListener = function (elem, type, callback) {\n elem.removeEventListener(type, callback, getListenerOptions());\n};\nexports.stopEvent = function (e) {\n exports.stopPropagation(e);\n exports.preventDefault(e);\n return false;\n};\nexports.stopPropagation = function (e) {\n if (e.stopPropagation)\n e.stopPropagation();\n};\nexports.preventDefault = function (e) {\n if (e.preventDefault)\n e.preventDefault();\n};\nexports.getButton = function (e) {\n if (e.type == \"dblclick\")\n return 0;\n if (e.type == \"contextmenu\" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey)))\n return 2;\n return e.button;\n};\nexports.capture = function (el, eventHandler, releaseCaptureHandler) {\n var ownerDocument = el && el.ownerDocument || document;\n function onMouseUp(e) {\n eventHandler && eventHandler(e);\n releaseCaptureHandler && releaseCaptureHandler(e);\n removeListener(ownerDocument, \"mousemove\", eventHandler);\n removeListener(ownerDocument, \"mouseup\", onMouseUp);\n removeListener(ownerDocument, \"dragstart\", onMouseUp);\n }\n addListener(ownerDocument, \"mousemove\", eventHandler);\n addListener(ownerDocument, \"mouseup\", onMouseUp);\n addListener(ownerDocument, \"dragstart\", onMouseUp);\n return onMouseUp;\n};\nexports.addMouseWheelListener = function (el, callback, destroyer) {\n addListener(el, \"wheel\", function (e) {\n var factor = 0.15;\n var deltaX = e.deltaX || 0;\n var deltaY = e.deltaY || 0;\n switch (e.deltaMode) {\n case e.DOM_DELTA_PIXEL:\n e.wheelX = deltaX * factor;\n e.wheelY = deltaY * factor;\n break;\n case e.DOM_DELTA_LINE:\n var linePixels = 15;\n e.wheelX = deltaX * linePixels;\n e.wheelY = deltaY * linePixels;\n break;\n case e.DOM_DELTA_PAGE:\n var pagePixels = 150;\n e.wheelX = deltaX * pagePixels;\n e.wheelY = deltaY * pagePixels;\n break;\n }\n callback(e);\n }, destroyer);\n};\nexports.addMultiMouseDownListener = function (elements, timeouts, eventHandler, callbackName, destroyer) {\n var clicks = 0;\n var startX, startY, timer;\n var eventNames = {\n 2: \"dblclick\",\n 3: \"tripleclick\",\n 4: \"quadclick\"\n };\n function onMousedown(e) {\n if (exports.getButton(e) !== 0) {\n clicks = 0;\n }\n else if (e.detail > 1) {\n clicks++;\n if (clicks > 4)\n clicks = 1;\n }\n else {\n clicks = 1;\n }\n if (useragent.isIE) {\n var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5;\n if (!timer || isNewClick)\n clicks = 1;\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(function () { timer = null; }, timeouts[clicks - 1] || 600);\n if (clicks == 1) {\n startX = e.clientX;\n startY = e.clientY;\n }\n }\n e._clicks = clicks;\n eventHandler[callbackName](\"mousedown\", e);\n if (clicks > 4)\n clicks = 0;\n else if (clicks > 1)\n return eventHandler[callbackName](eventNames[clicks], e);\n }\n if (!Array.isArray(elements))\n elements = [elements];\n elements.forEach(function (el) {\n addListener(el, \"mousedown\", onMousedown, destroyer);\n });\n};\nvar getModifierHash = function (e) {\n return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0);\n};\nexports.getModifierString = function (e) {\n return keys.KEY_MODS[getModifierHash(e)];\n};\nfunction normalizeCommandKeys(callback, e, keyCode) {\n var hashId = getModifierHash(e);\n if (!useragent.isMac && pressedKeys) {\n if (e.getModifierState && (e.getModifierState(\"OS\") || e.getModifierState(\"Win\")))\n hashId |= 8;\n if (pressedKeys.altGr) {\n if ((3 & hashId) != 3)\n pressedKeys.altGr = 0;\n else\n return;\n }\n if (keyCode === 18 || keyCode === 17) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (keyCode === 17 && location === 1) {\n if (pressedKeys[keyCode] == 1)\n ts = e.timeStamp;\n }\n else if (keyCode === 18 && hashId === 3 && location === 2) {\n var dt = e.timeStamp - ts;\n if (dt < 50)\n pressedKeys.altGr = true;\n }\n }\n }\n if (keyCode in keys.MODIFIER_KEYS) {\n keyCode = -1;\n }\n if (!hashId && keyCode === 13) {\n var location = \"location\" in e ? e.location : e.keyLocation;\n if (location === 3) {\n callback(e, hashId, -keyCode);\n if (e.defaultPrevented)\n return;\n }\n }\n if (useragent.isChromeOS && hashId & 8) {\n callback(e, hashId, keyCode);\n if (e.defaultPrevented)\n return;\n else\n hashId &= ~8;\n }\n if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) {\n return false;\n }\n return callback(e, hashId, keyCode);\n}\nexports.addCommandKeyListener = function (el, callback, destroyer) {\n if (useragent.isOldGecko || (useragent.isOpera && !(\"KeyboardEvent\" in window))) {\n var lastKeyDownKeyCode = null;\n addListener(el, \"keydown\", function (e) {\n lastKeyDownKeyCode = e.keyCode;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n return normalizeCommandKeys(callback, e, lastKeyDownKeyCode);\n }, destroyer);\n }\n else {\n var lastDefaultPrevented = null;\n addListener(el, \"keydown\", function (e) {\n pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1;\n var result = normalizeCommandKeys(callback, e, e.keyCode);\n lastDefaultPrevented = e.defaultPrevented;\n return result;\n }, destroyer);\n addListener(el, \"keypress\", function (e) {\n if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) {\n exports.stopEvent(e);\n lastDefaultPrevented = null;\n }\n }, destroyer);\n addListener(el, \"keyup\", function (e) {\n pressedKeys[e.keyCode] = null;\n }, destroyer);\n if (!pressedKeys) {\n resetPressedKeys();\n addListener(window, \"focus\", resetPressedKeys);\n }\n }\n};\nfunction resetPressedKeys() {\n pressedKeys = Object.create(null);\n}\nif (typeof window == \"object\" && window.postMessage && !useragent.isOldIE) {\n var postMessageId = 1;\n exports.nextTick = function (callback, win) {\n win = win || window;\n var messageName = \"zero-timeout-message-\" + (postMessageId++);\n var listener = function (e) {\n if (e.data == messageName) {\n exports.stopPropagation(e);\n removeListener(win, \"message\", listener);\n callback();\n }\n };\n addListener(win, \"message\", listener);\n win.postMessage(messageName, \"*\");\n };\n}\nexports.$idleBlocked = false;\nexports.onIdle = function (cb, timeout) {\n return setTimeout(function handler() {\n if (!exports.$idleBlocked) {\n cb();\n }\n else {\n setTimeout(handler, 100);\n }\n }, timeout);\n};\nexports.$idleBlockId = null;\nexports.blockIdle = function (delay) {\n if (exports.$idleBlockId)\n clearTimeout(exports.$idleBlockId);\n exports.$idleBlocked = true;\n exports.$idleBlockId = setTimeout(function () {\n exports.$idleBlocked = false;\n }, delay || 100);\n};\nexports.nextFrame = typeof window == \"object\" && (window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || window.oRequestAnimationFrame);\nif (exports.nextFrame)\n exports.nextFrame = exports.nextFrame.bind(window);\nelse\n exports.nextFrame = function (callback) {\n setTimeout(callback, 17);\n };\n\n});\n\nace.define(\"ace/clipboard\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar $cancelT;\nmodule.exports = {\n lineMode: false,\n pasteCancelled: function () {\n if ($cancelT && $cancelT > Date.now() - 50)\n return true;\n return $cancelT = false;\n },\n cancel: function () {\n $cancelT = Date.now();\n }\n};\n\n});\n\nace.define(\"ace/keyboard/textinput\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/config\",\"ace/lib/useragent\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar nls = require(\"../config\").nls;\nvar useragent = require(\"../lib/useragent\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar clipboard = require(\"../clipboard\");\nvar BROKEN_SETDATA = useragent.isChrome < 18;\nvar USE_IE_MIME_TYPE = useragent.isIE;\nvar HAS_FOCUS_ARGS = useragent.isChrome > 63;\nvar MAX_LINE_LENGTH = 400;\nvar KEYS = require(\"../lib/keys\");\nvar MODS = KEYS.KEY_MODS;\nvar isIOS = useragent.isIOS;\nvar valueResetRegex = isIOS ? /\\s/ : /\\n/;\nvar isMobile = useragent.isMobile;\nvar TextInput = function (parentNode, host) {\n var text = dom.createElement(\"textarea\");\n text.className = \"ace_text-input\";\n text.setAttribute(\"wrap\", \"off\");\n text.setAttribute(\"autocorrect\", \"off\");\n text.setAttribute(\"autocapitalize\", \"off\");\n text.setAttribute(\"spellcheck\", false);\n text.style.opacity = \"0\";\n parentNode.insertBefore(text, parentNode.firstChild);\n var copied = false;\n var pasted = false;\n var inComposition = false;\n var sendingText = false;\n var tempStyle = '';\n if (!isMobile)\n text.style.fontSize = \"1px\";\n var commandMode = false;\n var ignoreFocusEvents = false;\n var lastValue = \"\";\n var lastSelectionStart = 0;\n var lastSelectionEnd = 0;\n var lastRestoreEnd = 0;\n var rowStart = Number.MAX_SAFE_INTEGER;\n var rowEnd = Number.MIN_SAFE_INTEGER;\n var numberOfExtraLines = 0;\n try {\n var isFocused = document.activeElement === text;\n }\n catch (e) { }\n this.setNumberOfExtraLines = function (number) {\n rowStart = Number.MAX_SAFE_INTEGER;\n rowEnd = Number.MIN_SAFE_INTEGER;\n if (number < 0) {\n numberOfExtraLines = 0;\n return;\n }\n numberOfExtraLines = number;\n };\n this.setAriaOptions = function (options) {\n if (options.activeDescendant) {\n text.setAttribute(\"aria-haspopup\", \"true\");\n text.setAttribute(\"aria-autocomplete\", options.inline ? \"both\" : \"list\");\n text.setAttribute(\"aria-activedescendant\", options.activeDescendant);\n }\n else {\n text.setAttribute(\"aria-haspopup\", \"false\");\n text.setAttribute(\"aria-autocomplete\", \"both\");\n text.removeAttribute(\"aria-activedescendant\");\n }\n if (options.role) {\n text.setAttribute(\"role\", options.role);\n }\n if (options.setLabel) {\n text.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n if (host.session) {\n var row = host.session.selection.cursor.row;\n text.setAttribute(\"aria-label\", nls(\"Cursor at row $0\", [row + 1]));\n }\n }\n };\n this.setAriaOptions({ role: \"textbox\" });\n event.addListener(text, \"blur\", function (e) {\n if (ignoreFocusEvents)\n return;\n host.onBlur(e);\n isFocused = false;\n }, host);\n event.addListener(text, \"focus\", function (e) {\n if (ignoreFocusEvents)\n return;\n isFocused = true;\n if (useragent.isEdge) {\n try {\n if (!document.hasFocus())\n return;\n }\n catch (e) { }\n }\n host.onFocus(e);\n if (useragent.isEdge)\n setTimeout(resetSelection);\n else\n resetSelection();\n }, host);\n this.$focusScroll = false;\n this.focus = function () {\n this.setAriaOptions({\n setLabel: host.renderer.enableKeyboardAccessibility\n });\n if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == \"browser\")\n return text.focus({ preventScroll: true });\n var top = text.style.top;\n text.style.position = \"fixed\";\n text.style.top = \"0px\";\n try {\n var isTransformed = text.getBoundingClientRect().top != 0;\n }\n catch (e) {\n return;\n }\n var ancestors = [];\n if (isTransformed) {\n var t = text.parentElement;\n while (t && t.nodeType == 1) {\n ancestors.push(t);\n t.setAttribute(\"ace_nocontext\", true);\n if (!t.parentElement && t.getRootNode)\n t = t.getRootNode().host;\n else\n t = t.parentElement;\n }\n }\n text.focus({ preventScroll: true });\n if (isTransformed) {\n ancestors.forEach(function (p) {\n p.removeAttribute(\"ace_nocontext\");\n });\n }\n setTimeout(function () {\n text.style.position = \"\";\n if (text.style.top == \"0px\")\n text.style.top = top;\n }, 0);\n };\n this.blur = function () {\n text.blur();\n };\n this.isFocused = function () {\n return isFocused;\n };\n host.on(\"beforeEndOperation\", function () {\n var curOp = host.curOp;\n var commandName = curOp && curOp.command && curOp.command.name;\n if (commandName == \"insertstring\")\n return;\n var isUserAction = commandName && (curOp.docChanged || curOp.selectionChanged);\n if (inComposition && isUserAction) {\n lastValue = text.value = \"\";\n onCompositionEnd();\n }\n resetSelection();\n });\n var positionToSelection = function (row, column) {\n var selection = column;\n for (var i = 1; i <= row - rowStart && i < 2 * numberOfExtraLines + 1; i++) {\n selection += host.session.getLine(row - i).length + 1;\n }\n return selection;\n };\n var resetSelection = isIOS\n ? function (value) {\n if (!isFocused || (copied && !value) || sendingText)\n return;\n if (!value)\n value = \"\";\n var newValue = \"\\n ab\" + value + \"cde fg\\n\";\n if (newValue != text.value)\n text.value = lastValue = newValue;\n var selectionStart = 4;\n var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1));\n if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) {\n text.setSelectionRange(selectionStart, selectionEnd);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n : function () {\n if (inComposition || sendingText)\n return;\n if (!isFocused && !afterContextMenu)\n return;\n inComposition = true;\n var selectionStart = 0;\n var selectionEnd = 0;\n var line = \"\";\n if (host.session) {\n var selection = host.selection;\n var range = selection.getRange();\n var row = selection.cursor.row;\n if (row === rowEnd + 1) {\n rowStart = rowEnd + 1;\n rowEnd = rowStart + 2 * numberOfExtraLines;\n }\n else if (row === rowStart - 1) {\n rowEnd = rowStart - 1;\n rowStart = rowEnd - 2 * numberOfExtraLines;\n }\n else if (row < rowStart - 1 || row > rowEnd + 1) {\n rowStart = row > numberOfExtraLines ? row - numberOfExtraLines : 0;\n rowEnd = row > numberOfExtraLines ? row + numberOfExtraLines : 2 * numberOfExtraLines;\n }\n var lines = [];\n for (var i = rowStart; i <= rowEnd; i++) {\n lines.push(host.session.getLine(i));\n }\n line = lines.join('\\n');\n selectionStart = positionToSelection(range.start.row, range.start.column);\n selectionEnd = positionToSelection(range.end.row, range.end.column);\n if (range.start.row < rowStart) {\n var prevLine = host.session.getLine(rowStart - 1);\n selectionStart = range.start.row < rowStart - 1 ? 0 : selectionStart;\n selectionEnd += prevLine.length + 1;\n line = prevLine + \"\\n\" + line;\n }\n else if (range.end.row > rowEnd) {\n var nextLine = host.session.getLine(rowEnd + 1);\n selectionEnd = range.end.row > rowEnd + 1 ? nextLine.length : range.end.column;\n selectionEnd += line.length + 1;\n line = line + \"\\n\" + nextLine;\n }\n else if (isMobile && row > 0) {\n line = \"\\n\" + line;\n selectionEnd += 1;\n selectionStart += 1;\n }\n if (line.length > MAX_LINE_LENGTH) {\n if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) {\n line = line.slice(0, MAX_LINE_LENGTH);\n }\n else {\n line = \"\\n\";\n if (selectionStart == selectionEnd) {\n selectionStart = selectionEnd = 0;\n }\n else {\n selectionStart = 0;\n selectionEnd = 1;\n }\n }\n }\n var newValue = line + \"\\n\\n\";\n if (newValue != lastValue) {\n text.value = lastValue = newValue;\n lastSelectionStart = lastSelectionEnd = newValue.length;\n }\n }\n if (afterContextMenu) {\n lastSelectionStart = text.selectionStart;\n lastSelectionEnd = text.selectionEnd;\n }\n if (lastSelectionEnd != selectionEnd\n || lastSelectionStart != selectionStart\n || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization\n ) {\n try {\n text.setSelectionRange(selectionStart, selectionEnd);\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n }\n catch (e) { }\n }\n inComposition = false;\n };\n this.resetSelection = resetSelection;\n if (isFocused)\n host.onFocus();\n var isAllSelected = function (text) {\n return text.selectionStart === 0 && text.selectionEnd >= lastValue.length\n && text.value === lastValue && lastValue\n && text.selectionEnd !== lastSelectionEnd;\n };\n var onSelect = function (e) {\n if (inComposition)\n return;\n if (copied) {\n copied = false;\n }\n else if (isAllSelected(text)) {\n host.selectAll();\n resetSelection();\n }\n else if (isMobile && text.selectionStart != lastSelectionStart) {\n resetSelection();\n }\n };\n var inputHandler = null;\n this.setInputHandler = function (cb) { inputHandler = cb; };\n this.getInputHandler = function () { return inputHandler; };\n var afterContextMenu = false;\n var sendText = function (value, fromInput) {\n if (afterContextMenu)\n afterContextMenu = false;\n if (pasted) {\n resetSelection();\n if (value)\n host.onPaste(value);\n pasted = false;\n return \"\";\n }\n else {\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var extendLeft = lastSelectionStart;\n var extendRight = lastValue.length - lastSelectionEnd;\n var inserted = value;\n var restoreStart = value.length - selectionStart;\n var restoreEnd = value.length - selectionEnd;\n var i = 0;\n while (extendLeft > 0 && lastValue[i] == value[i]) {\n i++;\n extendLeft--;\n }\n inserted = inserted.slice(i);\n i = 1;\n while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) {\n i++;\n extendRight--;\n }\n restoreStart -= i - 1;\n restoreEnd -= i - 1;\n var endIndex = inserted.length - i + 1;\n if (endIndex < 0) {\n extendLeft = -endIndex;\n endIndex = 0;\n }\n inserted = inserted.slice(0, endIndex);\n if (!fromInput && !inserted && !restoreStart && !extendLeft && !extendRight && !restoreEnd)\n return \"\";\n sendingText = true;\n var shouldReset = false;\n if (useragent.isAndroid && inserted == \". \") {\n inserted = \" \";\n shouldReset = true;\n }\n if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) {\n host.onTextInput(inserted);\n }\n else {\n host.onTextInput(inserted, {\n extendLeft: extendLeft,\n extendRight: extendRight,\n restoreStart: restoreStart,\n restoreEnd: restoreEnd\n });\n }\n sendingText = false;\n lastValue = value;\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n lastRestoreEnd = restoreEnd;\n return shouldReset ? \"\\n\" : inserted;\n }\n };\n var onInput = function (e) {\n if (inComposition)\n return onCompositionUpdate();\n if (e && e.inputType) {\n if (e.inputType == \"historyUndo\")\n return host.execCommand(\"undo\");\n if (e.inputType == \"historyRedo\")\n return host.execCommand(\"redo\");\n }\n var data = text.value;\n var inserted = sendText(data, true);\n if (data.length > MAX_LINE_LENGTH + 100\n || valueResetRegex.test(inserted)\n || isMobile && lastSelectionStart < 1 && lastSelectionStart == lastSelectionEnd) {\n resetSelection();\n }\n };\n var handleClipboardData = function (e, data, forceIEMime) {\n var clipboardData = e.clipboardData || window.clipboardData;\n if (!clipboardData || BROKEN_SETDATA)\n return;\n var mime = USE_IE_MIME_TYPE || forceIEMime ? \"Text\" : \"text/plain\";\n try {\n if (data) {\n return clipboardData.setData(mime, data) !== false;\n }\n else {\n return clipboardData.getData(mime);\n }\n }\n catch (e) {\n if (!forceIEMime)\n return handleClipboardData(e, data, true);\n }\n };\n var doCopy = function (e, isCut) {\n var data = host.getCopyText();\n if (!data)\n return event.preventDefault(e);\n if (handleClipboardData(e, data)) {\n if (isIOS) {\n resetSelection(data);\n copied = data;\n setTimeout(function () {\n copied = false;\n }, 10);\n }\n isCut ? host.onCut() : host.onCopy();\n event.preventDefault(e);\n }\n else {\n copied = true;\n text.value = data;\n text.select();\n setTimeout(function () {\n copied = false;\n resetSelection();\n isCut ? host.onCut() : host.onCopy();\n });\n }\n };\n var onCut = function (e) {\n doCopy(e, true);\n };\n var onCopy = function (e) {\n doCopy(e, false);\n };\n var onPaste = function (e) {\n var data = handleClipboardData(e);\n if (clipboard.pasteCancelled())\n return;\n if (typeof data == \"string\") {\n if (data)\n host.onPaste(data, e);\n if (useragent.isIE)\n setTimeout(resetSelection);\n event.preventDefault(e);\n }\n else {\n text.value = \"\";\n pasted = true;\n }\n };\n event.addCommandKeyListener(text, host.onCommandKey.bind(host), host);\n event.addListener(text, \"select\", onSelect, host);\n event.addListener(text, \"input\", onInput, host);\n event.addListener(text, \"cut\", onCut, host);\n event.addListener(text, \"copy\", onCopy, host);\n event.addListener(text, \"paste\", onPaste, host);\n if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) {\n event.addListener(parentNode, \"keydown\", function (e) {\n if ((useragent.isMac && !e.metaKey) || !e.ctrlKey)\n return;\n switch (e.keyCode) {\n case 67:\n onCopy(e);\n break;\n case 86:\n onPaste(e);\n break;\n case 88:\n onCut(e);\n break;\n }\n }, host);\n }\n var onCompositionStart = function (e) {\n if (inComposition || !host.onCompositionStart || host.$readOnly)\n return;\n inComposition = {};\n if (commandMode)\n return;\n if (e.data)\n inComposition.useTextareaForIME = false;\n setTimeout(onCompositionUpdate, 0);\n host._signal(\"compositionStart\");\n host.on(\"mousedown\", cancelComposition);\n var range = host.getSelectionRange();\n range.end.row = range.start.row;\n range.end.column = range.start.column;\n inComposition.markerRange = range;\n inComposition.selectionStart = lastSelectionStart;\n host.onCompositionStart(inComposition);\n if (inComposition.useTextareaForIME) {\n lastValue = text.value = \"\";\n lastSelectionStart = 0;\n lastSelectionEnd = 0;\n }\n else {\n if (text.msGetInputContext)\n inComposition.context = text.msGetInputContext();\n if (text.getInputContext)\n inComposition.context = text.getInputContext();\n }\n };\n var onCompositionUpdate = function () {\n if (!inComposition || !host.onCompositionUpdate || host.$readOnly)\n return;\n if (commandMode)\n return cancelComposition();\n if (inComposition.useTextareaForIME) {\n host.onCompositionUpdate(text.value);\n }\n else {\n var data = text.value;\n sendText(data);\n if (inComposition.markerRange) {\n if (inComposition.context) {\n inComposition.markerRange.start.column = inComposition.selectionStart\n = inComposition.context.compositionStartOffset;\n }\n inComposition.markerRange.end.column = inComposition.markerRange.start.column\n + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd;\n }\n }\n };\n var onCompositionEnd = function (e) {\n if (!host.onCompositionEnd || host.$readOnly)\n return;\n inComposition = false;\n host.onCompositionEnd();\n host.off(\"mousedown\", cancelComposition);\n if (e)\n onInput();\n };\n function cancelComposition() {\n ignoreFocusEvents = true;\n text.blur();\n text.focus();\n ignoreFocusEvents = false;\n }\n var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null);\n function onKeyup(e) {\n if (e.keyCode == 27 && text.value.length < text.selectionStart) {\n if (!inComposition)\n lastValue = text.value;\n lastSelectionStart = lastSelectionEnd = -1;\n resetSelection();\n }\n syncComposition();\n }\n event.addListener(text, \"compositionstart\", onCompositionStart, host);\n event.addListener(text, \"compositionupdate\", onCompositionUpdate, host);\n event.addListener(text, \"keyup\", onKeyup, host);\n event.addListener(text, \"keydown\", syncComposition, host);\n event.addListener(text, \"compositionend\", onCompositionEnd, host);\n this.getElement = function () {\n return text;\n };\n this.setCommandMode = function (value) {\n commandMode = value;\n text.readOnly = false;\n };\n this.setReadOnly = function (readOnly) {\n if (!commandMode)\n text.readOnly = readOnly;\n };\n this.setCopyWithEmptySelection = function (value) {\n };\n this.onContextMenu = function (e) {\n afterContextMenu = true;\n resetSelection();\n host._emit(\"nativecontextmenu\", { target: host, domEvent: e });\n this.moveToMouse(e, true);\n };\n this.moveToMouse = function (e, bringToFront) {\n if (!tempStyle)\n tempStyle = text.style.cssText;\n text.style.cssText = (bringToFront ? \"z-index:100000;\" : \"\")\n + (useragent.isIE ? \"opacity:0.1;\" : \"\")\n + \"text-indent: -\" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + \"px;\";\n var rect = host.container.getBoundingClientRect();\n var style = dom.computedStyle(host.container);\n var top = rect.top + (parseInt(style.borderTopWidth) || 0);\n var left = rect.left + (parseInt(rect.borderLeftWidth) || 0);\n var maxTop = rect.bottom - top - text.clientHeight - 2;\n var move = function (e) {\n dom.translate(text, e.clientX - left - 2, Math.min(e.clientY - top - 2, maxTop));\n };\n move(e);\n if (e.type != \"mousedown\")\n return;\n host.renderer.$isMousePressed = true;\n clearTimeout(closeTimeout);\n if (useragent.isWin)\n event.capture(host.container, move, onContextMenuClose);\n };\n this.onContextMenuClose = onContextMenuClose;\n var closeTimeout;\n function onContextMenuClose() {\n clearTimeout(closeTimeout);\n closeTimeout = setTimeout(function () {\n if (tempStyle) {\n text.style.cssText = tempStyle;\n tempStyle = '';\n }\n host.renderer.$isMousePressed = false;\n if (host.renderer.$keepTextAreaAtCursor)\n host.renderer.$moveTextAreaToCursor();\n }, 0);\n }\n var onContextMenu = function (e) {\n host.textInput.onContextMenu(e);\n onContextMenuClose();\n };\n event.addListener(text, \"mouseup\", onContextMenu, host);\n event.addListener(text, \"mousedown\", function (e) {\n e.preventDefault();\n onContextMenuClose();\n }, host);\n event.addListener(host.renderer.scroller, \"contextmenu\", onContextMenu, host);\n event.addListener(text, \"contextmenu\", onContextMenu, host);\n if (isIOS)\n addIosSelectionHandler(parentNode, host, text);\n function addIosSelectionHandler(parentNode, host, text) {\n var typingResetTimeout = null;\n var typing = false;\n text.addEventListener(\"keydown\", function (e) {\n if (typingResetTimeout)\n clearTimeout(typingResetTimeout);\n typing = true;\n }, true);\n text.addEventListener(\"keyup\", function (e) {\n typingResetTimeout = setTimeout(function () {\n typing = false;\n }, 100);\n }, true);\n var detectArrowKeys = function (e) {\n if (document.activeElement !== text)\n return;\n if (typing || inComposition || host.$mouseHandler.isMousePressed)\n return;\n if (copied) {\n return;\n }\n var selectionStart = text.selectionStart;\n var selectionEnd = text.selectionEnd;\n var key = null;\n var modifier = 0;\n if (selectionStart == 0) {\n key = KEYS.up;\n }\n else if (selectionStart == 1) {\n key = KEYS.home;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == \"\\n\") {\n key = KEYS.end;\n }\n else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == \" \") {\n key = KEYS.left;\n modifier = MODS.option;\n }\n else if (selectionStart < lastSelectionStart\n || (selectionStart == lastSelectionStart\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.left;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split(\"\\n\").length > 2) {\n key = KEYS.down;\n }\n else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == \" \") {\n key = KEYS.right;\n modifier = MODS.option;\n }\n else if (selectionEnd > lastSelectionEnd\n || (selectionEnd == lastSelectionEnd\n && lastSelectionEnd != lastSelectionStart\n && selectionStart == selectionEnd)) {\n key = KEYS.right;\n }\n if (selectionStart !== selectionEnd)\n modifier |= MODS.shift;\n if (key) {\n var result = host.onCommandKey({}, modifier, key);\n if (!result && host.commands) {\n key = KEYS.keyCodeToString(key);\n var command = host.commands.findKeyCommand(modifier, key);\n if (command)\n host.execCommand(command);\n }\n lastSelectionStart = selectionStart;\n lastSelectionEnd = selectionEnd;\n resetSelection(\"\");\n }\n };\n document.addEventListener(\"selectionchange\", detectArrowKeys);\n host.on(\"destroy\", function () {\n document.removeEventListener(\"selectionchange\", detectArrowKeys);\n });\n }\n this.destroy = function () {\n if (text.parentElement)\n text.parentElement.removeChild(text);\n };\n};\nexports.TextInput = TextInput;\nexports.$setUserAgentForTests = function (_isMobile, _isIOS) {\n isMobile = _isMobile;\n isIOS = _isIOS;\n};\n\n});\n\nace.define(\"ace/mouse/default_handlers\",[\"require\",\"exports\",\"module\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar useragent = require(\"../lib/useragent\");\nvar DRAG_OFFSET = 0; // pixels\nvar SCROLL_COOLDOWN_T = 550; // milliseconds\nvar DefaultHandlers = /** @class */ (function () {\n function DefaultHandlers(mouseHandler) {\n mouseHandler.$clickSelection = null;\n var editor = mouseHandler.editor;\n editor.setDefaultHandler(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n editor.setDefaultHandler(\"dblclick\", this.onDoubleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"tripleclick\", this.onTripleClick.bind(mouseHandler));\n editor.setDefaultHandler(\"quadclick\", this.onQuadClick.bind(mouseHandler));\n editor.setDefaultHandler(\"mousewheel\", this.onMouseWheel.bind(mouseHandler));\n var exports = [\"select\", \"startSelect\", \"selectEnd\", \"selectAllEnd\", \"selectByWordsEnd\",\n \"selectByLinesEnd\", \"dragWait\", \"dragWaitEnd\", \"focusWait\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, \"getLineRange\");\n mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, \"getWordRange\");\n }\n DefaultHandlers.prototype.onMouseDown = function (ev) {\n var inSelection = ev.inSelection();\n var pos = ev.getDocumentPosition();\n this.mousedownEvent = ev;\n var editor = this.editor;\n var button = ev.getButton();\n if (button !== 0) {\n var selectionRange = editor.getSelectionRange();\n var selectionEmpty = selectionRange.isEmpty();\n if (selectionEmpty || button == 1)\n editor.selection.moveToPosition(pos);\n if (button == 2) {\n editor.textInput.onContextMenu(ev.domEvent);\n if (!useragent.isMozilla)\n ev.preventDefault();\n }\n return;\n }\n this.mousedownEvent.time = Date.now();\n if (inSelection && !editor.isFocused()) {\n editor.focus();\n if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) {\n this.setState(\"focusWait\");\n this.captureMouse(ev);\n return;\n }\n }\n this.captureMouse(ev);\n this.startSelect(pos, ev.domEvent._clicks > 1);\n return ev.preventDefault();\n };\n DefaultHandlers.prototype.startSelect = function (pos, waitForClickSelection) {\n pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y);\n var editor = this.editor;\n if (!this.mousedownEvent)\n return;\n if (this.mousedownEvent.getShiftKey())\n editor.selection.selectToPosition(pos);\n else if (!waitForClickSelection)\n editor.selection.moveToPosition(pos);\n if (!waitForClickSelection)\n this.select();\n editor.setStyle(\"ace_selecting\");\n this.setState(\"select\");\n };\n DefaultHandlers.prototype.select = function () {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n if (this.$clickSelection) {\n var cmp = this.$clickSelection.comparePoint(cursor);\n if (cmp == -1) {\n anchor = this.$clickSelection.end;\n }\n else if (cmp == 1) {\n anchor = this.$clickSelection.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.extendSelectionBy = function (unitName) {\n var anchor, editor = this.editor;\n var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y);\n var range = editor.selection[unitName](cursor.row, cursor.column);\n if (this.$clickSelection) {\n var cmpStart = this.$clickSelection.comparePoint(range.start);\n var cmpEnd = this.$clickSelection.comparePoint(range.end);\n if (cmpStart == -1 && cmpEnd <= 0) {\n anchor = this.$clickSelection.end;\n if (range.end.row != cursor.row || range.end.column != cursor.column)\n cursor = range.start;\n }\n else if (cmpEnd == 1 && cmpStart >= 0) {\n anchor = this.$clickSelection.start;\n if (range.start.row != cursor.row || range.start.column != cursor.column)\n cursor = range.end;\n }\n else if (cmpStart == -1 && cmpEnd == 1) {\n cursor = range.end;\n anchor = range.start;\n }\n else {\n var orientedRange = calcRangeOrientation(this.$clickSelection, cursor);\n cursor = orientedRange.cursor;\n anchor = orientedRange.anchor;\n }\n editor.selection.setSelectionAnchor(anchor.row, anchor.column);\n }\n editor.selection.selectToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n };\n DefaultHandlers.prototype.selectByLinesEnd = function () {\n this.$clickSelection = null;\n this.editor.unsetStyle(\"ace_selecting\");\n };\n DefaultHandlers.prototype.focusWait = function () {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n var time = Date.now();\n if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout)\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n };\n DefaultHandlers.prototype.onDoubleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n var session = editor.session;\n var range = session.getBracketRange(pos);\n if (range) {\n if (range.isEmpty()) {\n range.start.column--;\n range.end.column++;\n }\n this.setState(\"select\");\n }\n else {\n range = editor.selection.getWordRange(pos.row, pos.column);\n this.setState(\"selectByWords\");\n }\n this.$clickSelection = range;\n this.select();\n };\n DefaultHandlers.prototype.onTripleClick = function (ev) {\n var pos = ev.getDocumentPosition();\n var editor = this.editor;\n this.setState(\"selectByLines\");\n var range = editor.getSelectionRange();\n if (range.isMultiLine() && range.contains(pos.row, pos.column)) {\n this.$clickSelection = editor.selection.getLineRange(range.start.row);\n this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end;\n }\n else {\n this.$clickSelection = editor.selection.getLineRange(pos.row);\n }\n this.select();\n };\n DefaultHandlers.prototype.onQuadClick = function (ev) {\n var editor = this.editor;\n editor.selectAll();\n this.$clickSelection = editor.getSelectionRange();\n this.setState(\"selectAll\");\n };\n DefaultHandlers.prototype.onMouseWheel = function (ev) {\n if (ev.getAccelKey())\n return;\n if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) {\n ev.wheelX = ev.wheelY;\n ev.wheelY = 0;\n }\n var editor = this.editor;\n if (!this.$lastScroll)\n this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 };\n var prevScroll = this.$lastScroll;\n var t = ev.domEvent.timeStamp;\n var dt = t - prevScroll.t;\n var vx = dt ? ev.wheelX / dt : prevScroll.vx;\n var vy = dt ? ev.wheelY / dt : prevScroll.vy;\n if (dt < SCROLL_COOLDOWN_T) {\n vx = (vx + prevScroll.vx) / 2;\n vy = (vy + prevScroll.vy) / 2;\n }\n var direction = Math.abs(vx / vy);\n var canScroll = false;\n if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0))\n canScroll = true;\n if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed))\n canScroll = true;\n if (canScroll) {\n prevScroll.allowed = t;\n }\n else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) {\n var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx)\n && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy);\n if (isSlower) {\n canScroll = true;\n prevScroll.allowed = t;\n }\n else {\n prevScroll.allowed = 0;\n }\n }\n prevScroll.t = t;\n prevScroll.vx = vx;\n prevScroll.vy = vy;\n if (canScroll) {\n editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed);\n return ev.stop();\n }\n };\n return DefaultHandlers;\n}());\nDefaultHandlers.prototype.selectEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectAllEnd = DefaultHandlers.prototype.selectByLinesEnd;\nDefaultHandlers.prototype.selectByWordsEnd = DefaultHandlers.prototype.selectByLinesEnd;\nexports.DefaultHandlers = DefaultHandlers;\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nfunction calcRangeOrientation(range, cursor) {\n if (range.start.row == range.end.row)\n var cmp = 2 * cursor.column - range.start.column - range.end.column;\n else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column)\n var cmp = cursor.column - 4;\n else\n var cmp = 2 * cursor.row - range.start.row - range.end.row;\n if (cmp < 0)\n return { cursor: range.start, anchor: range.end };\n else\n return { cursor: range.end, anchor: range.start };\n}\n\n});\n\nace.define(\"ace/tooltip\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar CLASSNAME = \"ace_tooltip\";\nvar Tooltip = /** @class */ (function () {\n function Tooltip(parentNode) {\n this.isOpen = false;\n this.$element = null;\n this.$parentNode = parentNode;\n }\n Tooltip.prototype.$init = function () {\n this.$element = dom.createElement(\"div\");\n this.$element.className = CLASSNAME;\n this.$element.style.display = \"none\";\n this.$parentNode.appendChild(this.$element);\n return this.$element;\n };\n Tooltip.prototype.getElement = function () {\n return this.$element || this.$init();\n };\n Tooltip.prototype.setText = function (text) {\n this.getElement().textContent = text;\n };\n Tooltip.prototype.setHtml = function (html) {\n this.getElement().innerHTML = html;\n };\n Tooltip.prototype.setPosition = function (x, y) {\n this.getElement().style.left = x + \"px\";\n this.getElement().style.top = y + \"px\";\n };\n Tooltip.prototype.setClassName = function (className) {\n dom.addCssClass(this.getElement(), className);\n };\n Tooltip.prototype.setTheme = function (theme) {\n this.$element.className = CLASSNAME + \" \" +\n (theme.isDark ? \"ace_dark \" : \"\") + (theme.cssClass || \"\");\n };\n Tooltip.prototype.show = function (text, x, y) {\n if (text != null)\n this.setText(text);\n if (x != null && y != null)\n this.setPosition(x, y);\n if (!this.isOpen) {\n this.getElement().style.display = \"block\";\n this.isOpen = true;\n }\n };\n Tooltip.prototype.hide = function () {\n if (this.isOpen) {\n this.getElement().style.display = \"none\";\n this.getElement().className = CLASSNAME;\n this.isOpen = false;\n }\n };\n Tooltip.prototype.getHeight = function () {\n return this.getElement().offsetHeight;\n };\n Tooltip.prototype.getWidth = function () {\n return this.getElement().offsetWidth;\n };\n Tooltip.prototype.destroy = function () {\n this.isOpen = false;\n if (this.$element && this.$element.parentNode) {\n this.$element.parentNode.removeChild(this.$element);\n }\n };\n return Tooltip;\n}());\nvar PopupManager = /** @class */ (function () {\n function PopupManager() {\n this.popups = [];\n }\n PopupManager.prototype.addPopup = function (popup) {\n this.popups.push(popup);\n this.updatePopups();\n };\n PopupManager.prototype.removePopup = function (popup) {\n var index = this.popups.indexOf(popup);\n if (index !== -1) {\n this.popups.splice(index, 1);\n this.updatePopups();\n }\n };\n PopupManager.prototype.updatePopups = function () {\n var e_1, _a, e_2, _b;\n this.popups.sort(function (a, b) { return b.priority - a.priority; });\n var visiblepopups = [];\n try {\n for (var _c = __values(this.popups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var popup = _d.value;\n var shouldDisplay = true;\n try {\n for (var visiblepopups_1 = (e_2 = void 0, __values(visiblepopups)), visiblepopups_1_1 = visiblepopups_1.next(); !visiblepopups_1_1.done; visiblepopups_1_1 = visiblepopups_1.next()) {\n var visiblePopup = visiblepopups_1_1.value;\n if (this.doPopupsOverlap(visiblePopup, popup)) {\n shouldDisplay = false;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (visiblepopups_1_1 && !visiblepopups_1_1.done && (_b = visiblepopups_1.return)) _b.call(visiblepopups_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (shouldDisplay) {\n visiblepopups.push(popup);\n }\n else {\n popup.hide();\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n PopupManager.prototype.doPopupsOverlap = function (popupA, popupB) {\n var rectA = popupA.getElement().getBoundingClientRect();\n var rectB = popupB.getElement().getBoundingClientRect();\n return (rectA.left < rectB.right && rectA.right > rectB.left && rectA.top < rectB.bottom && rectA.bottom\n > rectB.top);\n };\n return PopupManager;\n}());\nvar popupManager = new PopupManager();\nexports.popupManager = popupManager;\nexports.Tooltip = Tooltip;\nvar HoverTooltip = /** @class */ (function (_super) {\n __extends(HoverTooltip, _super);\n function HoverTooltip(parentNode) {\n if (parentNode === void 0) { parentNode = document.body; }\n var _this = _super.call(this, parentNode) || this;\n _this.timeout = undefined;\n _this.lastT = 0;\n _this.idleTime = 350;\n _this.lastEvent = undefined;\n _this.onMouseOut = _this.onMouseOut.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.waitForHover = _this.waitForHover.bind(_this);\n _this.hide = _this.hide.bind(_this);\n var el = _this.getElement();\n el.style.whiteSpace = \"pre-wrap\";\n el.style.pointerEvents = \"auto\";\n el.addEventListener(\"mouseout\", _this.onMouseOut);\n el.tabIndex = -1;\n el.addEventListener(\"blur\", function () {\n if (!el.contains(document.activeElement))\n this.hide();\n }.bind(_this));\n return _this;\n }\n HoverTooltip.prototype.addToEditor = function (editor) {\n editor.on(\"mousemove\", this.onMouseMove);\n editor.on(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().addEventListener(\"mouseout\", this.onMouseOut, true);\n };\n HoverTooltip.prototype.removeFromEditor = function (editor) {\n editor.off(\"mousemove\", this.onMouseMove);\n editor.off(\"mousedown\", this.hide);\n editor.renderer.getMouseEventTarget().removeEventListener(\"mouseout\", this.onMouseOut, true);\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n HoverTooltip.prototype.onMouseMove = function (e, editor) {\n this.lastEvent = e;\n this.lastT = Date.now();\n var isMousePressed = editor.$mouseHandler.isMousePressed;\n if (this.isOpen) {\n var pos = this.lastEvent && this.lastEvent.getDocumentPosition();\n if (!this.range\n || !this.range.contains(pos.row, pos.column)\n || isMousePressed\n || this.isOutsideOfText(this.lastEvent)) {\n this.hide();\n }\n }\n if (this.timeout || isMousePressed)\n return;\n this.lastEvent = e;\n this.timeout = setTimeout(this.waitForHover, this.idleTime);\n };\n HoverTooltip.prototype.waitForHover = function () {\n if (this.timeout)\n clearTimeout(this.timeout);\n var dt = Date.now() - this.lastT;\n if (this.idleTime - dt > 10) {\n this.timeout = setTimeout(this.waitForHover, this.idleTime - dt);\n return;\n }\n this.timeout = null;\n if (this.lastEvent && !this.isOutsideOfText(this.lastEvent)) {\n this.$gatherData(this.lastEvent, this.lastEvent.editor);\n }\n };\n HoverTooltip.prototype.isOutsideOfText = function (e) {\n var editor = e.editor;\n var docPos = e.getDocumentPosition();\n var line = editor.session.getLine(docPos.row);\n if (docPos.column == line.length) {\n var screenPos = editor.renderer.pixelToScreenCoordinates(e.clientX, e.clientY);\n var clippedPos = editor.session.documentToScreenPosition(docPos.row, docPos.column);\n if (clippedPos.column != screenPos.column\n || clippedPos.row != screenPos.row) {\n return true;\n }\n }\n return false;\n };\n HoverTooltip.prototype.setDataProvider = function (value) {\n this.$gatherData = value;\n };\n HoverTooltip.prototype.showForRange = function (editor, range, domNode, startingEvent) {\n if (startingEvent && startingEvent != this.lastEvent)\n return;\n if (this.isOpen && document.activeElement == this.getElement())\n return;\n var renderer = editor.renderer;\n if (!this.isOpen) {\n popupManager.addPopup(this);\n this.$registerCloseEvents();\n this.setTheme(renderer.theme);\n }\n this.isOpen = true;\n this.addMarker(range, editor.session);\n this.range = Range.fromPoints(range.start, range.end);\n var element = this.getElement();\n element.innerHTML = \"\";\n element.appendChild(domNode);\n element.style.display = \"block\";\n var position = renderer.textToScreenCoordinates(range.start.row, range.start.column);\n var cursorPos = editor.getCursorPosition();\n var labelHeight = element.clientHeight;\n var rect = renderer.scroller.getBoundingClientRect();\n var isTopdown = true;\n if (this.row > cursorPos.row) {\n isTopdown = true;\n }\n else if (this.row < cursorPos.row) {\n isTopdown = false;\n }\n if (position.pageY - labelHeight + renderer.lineHeight < rect.top) {\n isTopdown = true;\n }\n else if (position.pageY + labelHeight > rect.bottom) {\n isTopdown = false;\n }\n if (!isTopdown) {\n position.pageY -= labelHeight;\n }\n else {\n position.pageY += renderer.lineHeight;\n }\n element.style.maxWidth = rect.width - (position.pageX - rect.left) + \"px\";\n this.setPosition(position.pageX, position.pageY);\n };\n HoverTooltip.prototype.addMarker = function (range, session) {\n if (this.marker) {\n this.$markerSession.removeMarker(this.marker);\n }\n this.$markerSession = session;\n this.marker = session && session.addMarker(range, \"ace_highlight-marker\", \"text\");\n };\n HoverTooltip.prototype.hide = function (e) {\n if (!e && document.activeElement == this.getElement())\n return;\n if (e && e.target && (e.type != \"keydown\" || e.ctrlKey || e.metaKey) && this.$element.contains(e.target))\n return;\n this.lastEvent = null;\n if (this.timeout)\n clearTimeout(this.timeout);\n this.timeout = null;\n this.addMarker(null);\n if (this.isOpen) {\n this.$removeCloseEvents();\n this.getElement().style.display = \"none\";\n this.isOpen = false;\n popupManager.removePopup(this);\n }\n };\n HoverTooltip.prototype.$registerCloseEvents = function () {\n window.addEventListener(\"keydown\", this.hide, true);\n window.addEventListener(\"mousewheel\", this.hide, true);\n window.addEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.$removeCloseEvents = function () {\n window.removeEventListener(\"keydown\", this.hide, true);\n window.removeEventListener(\"mousewheel\", this.hide, true);\n window.removeEventListener(\"mousedown\", this.hide, true);\n };\n HoverTooltip.prototype.onMouseOut = function (e) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n this.lastEvent = null;\n if (!this.isOpen)\n return;\n if (!e.relatedTarget || e.relatedTarget == this.getElement())\n return;\n if (e && e.currentTarget.contains(e.relatedTarget))\n return;\n if (!e.relatedTarget.classList.contains(\"ace_content\"))\n this.hide();\n };\n return HoverTooltip;\n}(Tooltip));\nexports.HoverTooltip = HoverTooltip;\n\n});\n\nace.define(\"ace/mouse/default_gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/tooltip\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar Tooltip = require(\"../tooltip\").Tooltip;\nvar nls = require(\"../config\").nls;\nfunction GutterHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var gutter = editor.renderer.$gutterLayer;\n var tooltip = new GutterTooltip(editor);\n mouseHandler.editor.setDefaultHandler(\"guttermousedown\", function (e) {\n if (!editor.isFocused() || e.getButton() != 0)\n return;\n var gutterRegion = gutter.getRegion(e);\n if (gutterRegion == \"foldWidgets\")\n return;\n var row = e.getDocumentPosition().row;\n var selection = editor.session.selection;\n if (e.getShiftKey())\n selection.selectTo(row, 0);\n else {\n if (e.domEvent.detail == 2) {\n editor.selectAll();\n return e.preventDefault();\n }\n mouseHandler.$clickSelection = editor.selection.getLineRange(row);\n }\n mouseHandler.setState(\"selectByLines\");\n mouseHandler.captureMouse(e);\n return e.preventDefault();\n });\n var tooltipTimeout, mouseEvent;\n function showTooltip() {\n var row = mouseEvent.getDocumentPosition().row;\n var maxRow = editor.session.getLength();\n if (row == maxRow) {\n var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row;\n var pos = mouseEvent.$pos;\n if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column))\n return hideTooltip();\n }\n tooltip.showTooltip(row);\n if (!tooltip.isOpen)\n return;\n editor.on(\"mousewheel\", hideTooltip);\n if (mouseHandler.$tooltipFollowsMouse) {\n moveTooltip(mouseEvent);\n }\n else {\n var gutterRow = mouseEvent.getGutterRow();\n var gutterCell = gutter.$lines.get(gutterRow);\n if (gutterCell) {\n var gutterElement = gutterCell.element.querySelector(\".ace_gutter_annotation\");\n var rect = gutterElement.getBoundingClientRect();\n var style = tooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n }\n else {\n moveTooltip(mouseEvent);\n }\n }\n }\n function hideTooltip() {\n if (tooltipTimeout)\n tooltipTimeout = clearTimeout(tooltipTimeout);\n if (tooltip.isOpen) {\n tooltip.hideTooltip();\n editor.off(\"mousewheel\", hideTooltip);\n }\n }\n function moveTooltip(e) {\n tooltip.setPosition(e.x, e.y);\n }\n mouseHandler.editor.setDefaultHandler(\"guttermousemove\", function (e) {\n var target = e.domEvent.target || e.domEvent.srcElement;\n if (dom.hasCssClass(target, \"ace_fold-widget\"))\n return hideTooltip();\n if (tooltip.isOpen && mouseHandler.$tooltipFollowsMouse)\n moveTooltip(e);\n mouseEvent = e;\n if (tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n if (mouseEvent && !mouseHandler.isMousePressed)\n showTooltip();\n else\n hideTooltip();\n }, 50);\n });\n event.addListener(editor.renderer.$gutter, \"mouseout\", function (e) {\n mouseEvent = null;\n if (!tooltip.isOpen || tooltipTimeout)\n return;\n tooltipTimeout = setTimeout(function () {\n tooltipTimeout = null;\n hideTooltip();\n }, 50);\n }, editor);\n editor.on(\"changeSession\", hideTooltip);\n editor.on(\"input\", hideTooltip);\n}\nexports.GutterHandler = GutterHandler;\nvar GutterTooltip = /** @class */ (function (_super) {\n __extends(GutterTooltip, _super);\n function GutterTooltip(editor) {\n var _this = _super.call(this, editor.container) || this;\n _this.editor = editor;\n return _this;\n }\n GutterTooltip.prototype.setPosition = function (x, y) {\n var windowWidth = window.innerWidth || document.documentElement.clientWidth;\n var windowHeight = window.innerHeight || document.documentElement.clientHeight;\n var width = this.getWidth();\n var height = this.getHeight();\n x += 15;\n y += 15;\n if (x + width > windowWidth) {\n x -= (x + width) - windowWidth;\n }\n if (y + height > windowHeight) {\n y -= 20 + height;\n }\n Tooltip.prototype.setPosition.call(this, x, y);\n };\n Object.defineProperty(GutterTooltip, \"annotationLabels\", {\n get: function () {\n return {\n error: { singular: nls(\"error\"), plural: nls(\"errors\") },\n warning: { singular: nls(\"warning\"), plural: nls(\"warnings\") },\n info: { singular: nls(\"information message\"), plural: nls(\"information messages\") }\n };\n },\n enumerable: false,\n configurable: true\n });\n GutterTooltip.prototype.showTooltip = function (row) {\n var gutter = this.editor.renderer.$gutterLayer;\n var annotationsInRow = gutter.$annotations[row];\n var annotation;\n if (annotationsInRow)\n annotation = { text: Array.from(annotationsInRow.text), type: Array.from(annotationsInRow.type) };\n else\n annotation = { text: [], type: [] };\n var fold = gutter.session.getFoldLine(row);\n if (fold && gutter.$showFoldedAnnotations) {\n var annotationsInFold = { error: [], warning: [], info: [] };\n var mostSevereAnnotationInFoldType;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!gutter.$annotations[i])\n continue;\n for (var j = 0; j < gutter.$annotations[i].text.length; j++) {\n var annotationType = gutter.$annotations[i].type[j];\n annotationsInFold[annotationType].push(gutter.$annotations[i].text[j]);\n if (annotationType === \"error\") {\n mostSevereAnnotationInFoldType = \"error_fold\";\n continue;\n }\n if (annotationType === \"warning\") {\n mostSevereAnnotationInFoldType = \"warning_fold\";\n continue;\n }\n }\n }\n if (mostSevereAnnotationInFoldType === \"error_fold\" || mostSevereAnnotationInFoldType === \"warning_fold\") {\n var summaryFoldedAnnotations = \"\".concat(GutterTooltip.annotationsToSummaryString(annotationsInFold), \" in folded code.\");\n annotation.text.push(summaryFoldedAnnotations);\n annotation.type.push(mostSevereAnnotationInFoldType);\n }\n }\n if (annotation.text.length === 0)\n return this.hide();\n var annotationMessages = { error: [], warning: [], info: [] };\n var iconClassName = gutter.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n for (var i = 0; i < annotation.text.length; i++) {\n var line = \" \").concat(annotation.text[i]);\n annotationMessages[annotation.type[i].replace(\"_fold\", \"\")].push(line);\n }\n var tooltipContent = [].concat(annotationMessages.error, annotationMessages.warning, annotationMessages.info).join(\"
\");\n this.setHtml(tooltipContent);\n this.$element.setAttribute(\"aria-live\", \"polite\");\n if (!this.isOpen) {\n this.setTheme(this.editor.renderer.theme);\n this.setClassName(\"ace_gutter-tooltip\");\n }\n this.show();\n this.editor._signal(\"showGutterTooltip\", this);\n };\n GutterTooltip.prototype.hideTooltip = function () {\n this.$element.removeAttribute(\"aria-live\");\n this.hide();\n this.editor._signal(\"hideGutterTooltip\", this);\n };\n GutterTooltip.annotationsToSummaryString = function (annotations) {\n var e_1, _a;\n var summary = [];\n var annotationTypes = ['error', 'warning', 'info'];\n try {\n for (var annotationTypes_1 = __values(annotationTypes), annotationTypes_1_1 = annotationTypes_1.next(); !annotationTypes_1_1.done; annotationTypes_1_1 = annotationTypes_1.next()) {\n var annotationType = annotationTypes_1_1.value;\n if (!annotations[annotationType].length)\n continue;\n var label = annotations[annotationType].length === 1 ? GutterTooltip.annotationLabels[annotationType].singular : GutterTooltip.annotationLabels[annotationType].plural;\n summary.push(\"\".concat(annotations[annotationType].length, \" \").concat(label));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (annotationTypes_1_1 && !annotationTypes_1_1.done && (_a = annotationTypes_1.return)) _a.call(annotationTypes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return summary.join(\", \");\n };\n return GutterTooltip;\n}(Tooltip));\nexports.GutterTooltip = GutterTooltip;\n\n});\n\nace.define(\"ace/mouse/mouse_event\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar MouseEvent = /** @class */ (function () {\n function MouseEvent(domEvent, editor) {\n this.domEvent = domEvent;\n this.editor = editor;\n this.x = this.clientX = domEvent.clientX;\n this.y = this.clientY = domEvent.clientY;\n this.$pos = null;\n this.$inSelection = null;\n this.propagationStopped = false;\n this.defaultPrevented = false;\n }\n MouseEvent.prototype.stopPropagation = function () {\n event.stopPropagation(this.domEvent);\n this.propagationStopped = true;\n };\n MouseEvent.prototype.preventDefault = function () {\n event.preventDefault(this.domEvent);\n this.defaultPrevented = true;\n };\n MouseEvent.prototype.stop = function () {\n this.stopPropagation();\n this.preventDefault();\n };\n MouseEvent.prototype.getDocumentPosition = function () {\n if (this.$pos)\n return this.$pos;\n this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY);\n return this.$pos;\n };\n MouseEvent.prototype.getGutterRow = function () {\n var documentRow = this.getDocumentPosition().row;\n var screenRow = this.editor.session.documentToScreenRow(documentRow, 0);\n var screenTopRow = this.editor.session.documentToScreenRow(this.editor.renderer.$gutterLayer.$lines.get(0).row, 0);\n return screenRow - screenTopRow;\n };\n MouseEvent.prototype.inSelection = function () {\n if (this.$inSelection !== null)\n return this.$inSelection;\n var editor = this.editor;\n var selectionRange = editor.getSelectionRange();\n if (selectionRange.isEmpty())\n this.$inSelection = false;\n else {\n var pos = this.getDocumentPosition();\n this.$inSelection = selectionRange.contains(pos.row, pos.column);\n }\n return this.$inSelection;\n };\n MouseEvent.prototype.getButton = function () {\n return event.getButton(this.domEvent);\n };\n MouseEvent.prototype.getShiftKey = function () {\n return this.domEvent.shiftKey;\n };\n MouseEvent.prototype.getAccelKey = function () {\n return useragent.isMac ? this.domEvent.metaKey : this.domEvent.ctrlKey;\n };\n return MouseEvent;\n}());\nexports.MouseEvent = MouseEvent;\n\n});\n\nace.define(\"ace/mouse/dragdrop_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar AUTOSCROLL_DELAY = 200;\nvar SCROLL_CURSOR_DELAY = 200;\nvar SCROLL_CURSOR_HYSTERESIS = 5;\nfunction DragdropHandler(mouseHandler) {\n var editor = mouseHandler.editor;\n var dragImage = dom.createElement(\"div\");\n dragImage.style.cssText = \"top:-100px;position:absolute;z-index:2147483647;opacity:0.5\";\n dragImage.textContent = \"\\xa0\";\n var exports = [\"dragWait\", \"dragWaitEnd\", \"startDrag\", \"dragReadyEnd\", \"onMouseDrag\"];\n exports.forEach(function (x) {\n mouseHandler[x] = this[x];\n }, this);\n editor.on(\"mousedown\", this.onMouseDown.bind(mouseHandler));\n var mouseTarget = editor.container;\n var dragSelectionMarker, x, y;\n var timerId, range;\n var dragCursor, counter = 0;\n var dragOperation;\n var isInternal;\n var autoScrollStartTime;\n var cursorMovedTime;\n var cursorPointOnCaretMoved;\n this.onDragStart = function (e) {\n if (this.cancelDrag || !mouseTarget.draggable) {\n var self = this;\n setTimeout(function () {\n self.startSelect();\n self.captureMouse(e);\n }, 0);\n return e.preventDefault();\n }\n range = editor.getSelectionRange();\n var dataTransfer = e.dataTransfer;\n dataTransfer.effectAllowed = editor.getReadOnly() ? \"copy\" : \"copyMove\";\n editor.container.appendChild(dragImage);\n dataTransfer.setDragImage && dataTransfer.setDragImage(dragImage, 0, 0);\n setTimeout(function () {\n editor.container.removeChild(dragImage);\n });\n dataTransfer.clearData();\n dataTransfer.setData(\"Text\", editor.session.getTextRange());\n isInternal = true;\n this.setState(\"drag\");\n };\n this.onDragEnd = function (e) {\n mouseTarget.draggable = false;\n isInternal = false;\n this.setState(null);\n if (!editor.getReadOnly()) {\n var dropEffect = e.dataTransfer.dropEffect;\n if (!dragOperation && dropEffect == \"move\")\n editor.session.remove(editor.getSelectionRange());\n editor.$resetCursorStyle();\n }\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n };\n this.onDragEnter = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker)\n addDragMarker();\n counter++;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragOver = function (e) {\n if (editor.getReadOnly() || !canAccept(e.dataTransfer))\n return;\n x = e.clientX;\n y = e.clientY;\n if (!dragSelectionMarker) {\n addDragMarker();\n counter++;\n }\n if (onMouseMoveTimer !== null)\n onMouseMoveTimer = null;\n e.dataTransfer.dropEffect = dragOperation = getDropEffect(e);\n return event.preventDefault(e);\n };\n this.onDragLeave = function (e) {\n counter--;\n if (counter <= 0 && dragSelectionMarker) {\n clearDragMarker();\n dragOperation = null;\n return event.preventDefault(e);\n }\n };\n this.onDrop = function (e) {\n if (!dragCursor)\n return;\n var dataTransfer = e.dataTransfer;\n if (isInternal) {\n switch (dragOperation) {\n case \"move\":\n if (range.contains(dragCursor.row, dragCursor.column)) {\n range = {\n start: dragCursor,\n end: dragCursor\n };\n }\n else {\n range = editor.moveText(range, dragCursor);\n }\n break;\n case \"copy\":\n range = editor.moveText(range, dragCursor, true);\n break;\n }\n }\n else {\n var dropData = dataTransfer.getData('Text');\n range = {\n start: dragCursor,\n end: editor.session.insert(dragCursor, dropData)\n };\n editor.focus();\n dragOperation = null;\n }\n clearDragMarker();\n return event.preventDefault(e);\n };\n event.addListener(mouseTarget, \"dragstart\", this.onDragStart.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragend\", this.onDragEnd.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragenter\", this.onDragEnter.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragover\", this.onDragOver.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"dragleave\", this.onDragLeave.bind(mouseHandler), editor);\n event.addListener(mouseTarget, \"drop\", this.onDrop.bind(mouseHandler), editor);\n function scrollCursorIntoView(cursor, prevCursor) {\n var now = Date.now();\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n var hMovement = !prevCursor || cursor.column != prevCursor.column;\n if (!cursorMovedTime || vMovement || hMovement) {\n editor.moveCursorToPosition(cursor);\n cursorMovedTime = now;\n cursorPointOnCaretMoved = { x: x, y: y };\n }\n else {\n var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y);\n if (distance > SCROLL_CURSOR_HYSTERESIS) {\n cursorMovedTime = null;\n }\n else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) {\n editor.renderer.scrollCursorIntoView();\n cursorMovedTime = null;\n }\n }\n }\n function autoScroll(cursor, prevCursor) {\n var now = Date.now();\n var lineHeight = editor.renderer.layerConfig.lineHeight;\n var characterWidth = editor.renderer.layerConfig.characterWidth;\n var editorRect = editor.renderer.scroller.getBoundingClientRect();\n var offsets = {\n x: {\n left: x - editorRect.left,\n right: editorRect.right - x\n },\n y: {\n top: y - editorRect.top,\n bottom: editorRect.bottom - y\n }\n };\n var nearestXOffset = Math.min(offsets.x.left, offsets.x.right);\n var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom);\n var scrollCursor = { row: cursor.row, column: cursor.column };\n if (nearestXOffset / characterWidth <= 2) {\n scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2);\n }\n if (nearestYOffset / lineHeight <= 1) {\n scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1);\n }\n var vScroll = cursor.row != scrollCursor.row;\n var hScroll = cursor.column != scrollCursor.column;\n var vMovement = !prevCursor || cursor.row != prevCursor.row;\n if (vScroll || (hScroll && !vMovement)) {\n if (!autoScrollStartTime)\n autoScrollStartTime = now;\n else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY)\n editor.renderer.scrollCursorIntoView(scrollCursor);\n }\n else {\n autoScrollStartTime = null;\n }\n }\n function onDragInterval() {\n var prevCursor = dragCursor;\n dragCursor = editor.renderer.screenToTextCoordinates(x, y);\n scrollCursorIntoView(dragCursor, prevCursor);\n autoScroll(dragCursor, prevCursor);\n }\n function addDragMarker() {\n range = editor.selection.toOrientedRange();\n dragSelectionMarker = editor.session.addMarker(range, \"ace_selection\", editor.getSelectionStyle());\n editor.clearSelection();\n if (editor.isFocused())\n editor.renderer.$cursorLayer.setBlinking(false);\n clearInterval(timerId);\n onDragInterval();\n timerId = setInterval(onDragInterval, 20);\n counter = 0;\n event.addListener(document, \"mousemove\", onMouseMove);\n }\n function clearDragMarker() {\n clearInterval(timerId);\n editor.session.removeMarker(dragSelectionMarker);\n dragSelectionMarker = null;\n editor.selection.fromOrientedRange(range);\n if (editor.isFocused() && !isInternal)\n editor.$resetCursorStyle();\n range = null;\n dragCursor = null;\n counter = 0;\n autoScrollStartTime = null;\n cursorMovedTime = null;\n event.removeListener(document, \"mousemove\", onMouseMove);\n }\n var onMouseMoveTimer = null;\n function onMouseMove() {\n if (onMouseMoveTimer == null) {\n onMouseMoveTimer = setTimeout(function () {\n if (onMouseMoveTimer != null && dragSelectionMarker)\n clearDragMarker();\n }, 20);\n }\n }\n function canAccept(dataTransfer) {\n var types = dataTransfer.types;\n return !types || Array.prototype.some.call(types, function (type) {\n return type == 'text/plain' || type == 'Text';\n });\n }\n function getDropEffect(e) {\n var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized'];\n var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized'];\n var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey;\n var effectAllowed = \"uninitialized\";\n try {\n effectAllowed = e.dataTransfer.effectAllowed.toLowerCase();\n }\n catch (e) { }\n var dropEffect = \"none\";\n if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n else if (moveAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"move\";\n else if (copyAllowed.indexOf(effectAllowed) >= 0)\n dropEffect = \"copy\";\n return dropEffect;\n }\n}\n(function () {\n this.dragWait = function () {\n var interval = Date.now() - this.mousedownEvent.time;\n if (interval > this.editor.getDragDelay())\n this.startDrag();\n };\n this.dragWaitEnd = function () {\n var target = this.editor.container;\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n this.selectEnd();\n };\n this.dragReadyEnd = function (e) {\n this.editor.$resetCursorStyle();\n this.editor.unsetStyle(\"ace_dragging\");\n this.editor.renderer.setCursorStyle(\"\");\n this.dragWaitEnd();\n };\n this.startDrag = function () {\n this.cancelDrag = false;\n var editor = this.editor;\n var target = editor.container;\n target.draggable = true;\n editor.renderer.$cursorLayer.setBlinking(false);\n editor.setStyle(\"ace_dragging\");\n var cursorStyle = useragent.isWin ? \"default\" : \"move\";\n editor.renderer.setCursorStyle(cursorStyle);\n this.setState(\"dragReady\");\n };\n this.onMouseDrag = function (e) {\n var target = this.editor.container;\n if (useragent.isIE && this.state == \"dragReady\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 3)\n target.dragDrop();\n }\n if (this.state === \"dragWait\") {\n var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y);\n if (distance > 0) {\n target.draggable = false;\n this.startSelect(this.mousedownEvent.getDocumentPosition());\n }\n }\n };\n this.onMouseDown = function (e) {\n if (!this.$dragEnabled)\n return;\n this.mousedownEvent = e;\n var editor = this.editor;\n var inSelection = e.inSelection();\n var button = e.getButton();\n var clickCount = e.domEvent.detail || 1;\n if (clickCount === 1 && button === 0 && inSelection) {\n if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey()))\n return;\n this.mousedownEvent.time = Date.now();\n var eventTarget = e.domEvent.target || e.domEvent.srcElement;\n if (\"unselectable\" in eventTarget)\n eventTarget.unselectable = \"on\";\n if (editor.getDragDelay()) {\n if (useragent.isWebKit) {\n this.cancelDrag = true;\n var mouseTarget = editor.container;\n mouseTarget.draggable = true;\n }\n this.setState(\"dragWait\");\n }\n else {\n this.startDrag();\n }\n this.captureMouse(e, this.onMouseDrag.bind(this));\n e.defaultPrevented = true;\n }\n };\n}).call(DragdropHandler.prototype);\nfunction calcDistance(ax, ay, bx, by) {\n return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2));\n}\nexports.DragdropHandler = DragdropHandler;\n\n});\n\nace.define(\"ace/mouse/touch_handler\",[\"require\",\"exports\",\"module\",\"ace/mouse/mouse_event\",\"ace/lib/event\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar event = require(\"../lib/event\");\nvar dom = require(\"../lib/dom\");\nexports.addTouchListeners = function (el, editor) {\n var mode = \"scroll\";\n var startX;\n var startY;\n var touchStartT;\n var lastT;\n var longTouchTimer;\n var animationTimer;\n var animationSteps = 0;\n var pos;\n var clickCount = 0;\n var vX = 0;\n var vY = 0;\n var pressed;\n var contextMenu;\n function createContextMenu() {\n var clipboard = window.navigator && window.navigator.clipboard;\n var isOpen = false;\n var updateMenu = function () {\n var selected = editor.getCopyText();\n var hasUndo = editor.session.getUndoManager().hasUndo();\n contextMenu.replaceChild(dom.buildDom(isOpen ? [\"span\",\n !selected && [\"span\", { class: \"ace_mobile-button\", action: \"selectall\" }, \"Select All\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"copy\" }, \"Copy\"],\n selected && [\"span\", { class: \"ace_mobile-button\", action: \"cut\" }, \"Cut\"],\n clipboard && [\"span\", { class: \"ace_mobile-button\", action: \"paste\" }, \"Paste\"],\n hasUndo && [\"span\", { class: \"ace_mobile-button\", action: \"undo\" }, \"Undo\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"find\" }, \"Find\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"openCommandPallete\" }, \"Palette\"]\n ] : [\"span\"]), contextMenu.firstChild);\n };\n var handleClick = function (e) {\n var action = e.target.getAttribute(\"action\");\n if (action == \"more\" || !isOpen) {\n isOpen = !isOpen;\n return updateMenu();\n }\n if (action == \"paste\") {\n clipboard.readText().then(function (text) {\n editor.execCommand(action, text);\n });\n }\n else if (action) {\n if (action == \"cut\" || action == \"copy\") {\n if (clipboard)\n clipboard.writeText(editor.getCopyText());\n else\n document.execCommand(\"copy\");\n }\n editor.execCommand(action);\n }\n contextMenu.firstChild.style.display = \"none\";\n isOpen = false;\n if (action != \"openCommandPallete\")\n editor.focus();\n };\n contextMenu = dom.buildDom([\"div\",\n {\n class: \"ace_mobile-menu\",\n ontouchstart: function (e) {\n mode = \"menu\";\n e.stopPropagation();\n e.preventDefault();\n editor.textInput.focus();\n },\n ontouchend: function (e) {\n e.stopPropagation();\n e.preventDefault();\n handleClick(e);\n },\n onclick: handleClick\n },\n [\"span\"],\n [\"span\", { class: \"ace_mobile-button\", action: \"more\" }, \"...\"]\n ], editor.container);\n }\n function showContextMenu() {\n if (!contextMenu)\n createContextMenu();\n var cursor = editor.selection.cursor;\n var pagePos = editor.renderer.textToScreenCoordinates(cursor.row, cursor.column);\n var leftOffset = editor.renderer.textToScreenCoordinates(0, 0).pageX;\n var scrollLeft = editor.renderer.scrollLeft;\n var rect = editor.container.getBoundingClientRect();\n contextMenu.style.top = pagePos.pageY - rect.top - 3 + \"px\";\n if (pagePos.pageX - rect.left < rect.width - 70) {\n contextMenu.style.left = \"\";\n contextMenu.style.right = \"10px\";\n }\n else {\n contextMenu.style.right = \"\";\n contextMenu.style.left = leftOffset + scrollLeft - rect.left + \"px\";\n }\n contextMenu.style.display = \"\";\n contextMenu.firstChild.style.display = \"none\";\n editor.on(\"input\", hideContextMenu);\n }\n function hideContextMenu(e) {\n if (contextMenu)\n contextMenu.style.display = \"none\";\n editor.off(\"input\", hideContextMenu);\n }\n function handleLongTap() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n var range = editor.selection.getRange();\n var inSelection = range.contains(pos.row, pos.column);\n if (range.isEmpty() || !inSelection) {\n editor.selection.moveToPosition(pos);\n editor.selection.selectWord();\n }\n mode = \"wait\";\n showContextMenu();\n }\n function switchToSelectionMode() {\n longTouchTimer = null;\n clearTimeout(longTouchTimer);\n editor.selection.moveToPosition(pos);\n var range = clickCount >= 2\n ? editor.selection.getLineRange(pos.row)\n : editor.session.getBracketRange(pos);\n if (range && !range.isEmpty()) {\n editor.selection.setRange(range);\n }\n else {\n editor.selection.selectWord();\n }\n mode = \"wait\";\n }\n event.addListener(el, \"contextmenu\", function (e) {\n if (!pressed)\n return;\n var textarea = editor.textInput.getElement();\n textarea.focus();\n }, editor);\n event.addListener(el, \"touchstart\", function (e) {\n var touches = e.touches;\n if (longTouchTimer || touches.length > 1) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n touchStartT = -1;\n mode = \"zoom\";\n return;\n }\n pressed = editor.$mouseHandler.isMousePressed = true;\n var h = editor.renderer.layerConfig.lineHeight;\n var w = editor.renderer.layerConfig.lineHeight;\n var t = e.timeStamp;\n lastT = t;\n var touchObj = touches[0];\n var x = touchObj.clientX;\n var y = touchObj.clientY;\n if (Math.abs(startX - x) + Math.abs(startY - y) > h)\n touchStartT = -1;\n startX = e.clientX = x;\n startY = e.clientY = y;\n vX = vY = 0;\n var ev = new MouseEvent(e, editor);\n pos = ev.getDocumentPosition();\n if (t - touchStartT < 500 && touches.length == 1 && !animationSteps) {\n clickCount++;\n e.preventDefault();\n e.button = 0;\n switchToSelectionMode();\n }\n else {\n clickCount = 0;\n var cursor = editor.selection.cursor;\n var anchor = editor.selection.isEmpty() ? cursor : editor.selection.anchor;\n var cursorPos = editor.renderer.$cursorLayer.getPixelPosition(cursor, true);\n var anchorPos = editor.renderer.$cursorLayer.getPixelPosition(anchor, true);\n var rect = editor.renderer.scroller.getBoundingClientRect();\n var offsetTop = editor.renderer.layerConfig.offset;\n var offsetLeft = editor.renderer.scrollLeft;\n var weightedDistance = function (x, y) {\n x = x / w;\n y = y / h - 0.75;\n return x * x + y * y;\n };\n if (e.clientX < rect.left) {\n mode = \"zoom\";\n return;\n }\n var diff1 = weightedDistance(e.clientX - rect.left - cursorPos.left + offsetLeft, e.clientY - rect.top - cursorPos.top + offsetTop);\n var diff2 = weightedDistance(e.clientX - rect.left - anchorPos.left + offsetLeft, e.clientY - rect.top - anchorPos.top + offsetTop);\n if (diff1 < 3.5 && diff2 < 3.5)\n mode = diff1 > diff2 ? \"cursor\" : \"anchor\";\n if (diff2 < 3.5)\n mode = \"anchor\";\n else if (diff1 < 3.5)\n mode = \"cursor\";\n else\n mode = \"scroll\";\n longTouchTimer = setTimeout(handleLongTap, 450);\n }\n touchStartT = t;\n }, editor);\n event.addListener(el, \"touchend\", function (e) {\n pressed = editor.$mouseHandler.isMousePressed = false;\n if (animationTimer)\n clearInterval(animationTimer);\n if (mode == \"zoom\") {\n mode = \"\";\n animationSteps = 0;\n }\n else if (longTouchTimer) {\n editor.selection.moveToPosition(pos);\n animationSteps = 0;\n showContextMenu();\n }\n else if (mode == \"scroll\") {\n animate();\n hideContextMenu();\n }\n else {\n showContextMenu();\n }\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }, editor);\n event.addListener(el, \"touchmove\", function (e) {\n if (longTouchTimer) {\n clearTimeout(longTouchTimer);\n longTouchTimer = null;\n }\n var touches = e.touches;\n if (touches.length > 1 || mode == \"zoom\")\n return;\n var touchObj = touches[0];\n var wheelX = startX - touchObj.clientX;\n var wheelY = startY - touchObj.clientY;\n if (mode == \"wait\") {\n if (wheelX * wheelX + wheelY * wheelY > 4)\n mode = \"cursor\";\n else\n return e.preventDefault();\n }\n startX = touchObj.clientX;\n startY = touchObj.clientY;\n e.clientX = touchObj.clientX;\n e.clientY = touchObj.clientY;\n var t = e.timeStamp;\n var dt = t - lastT;\n lastT = t;\n if (mode == \"scroll\") {\n var mouseEvent = new MouseEvent(e, editor);\n mouseEvent.speed = 1;\n mouseEvent.wheelX = wheelX;\n mouseEvent.wheelY = wheelY;\n if (10 * Math.abs(wheelX) < Math.abs(wheelY))\n wheelX = 0;\n if (10 * Math.abs(wheelY) < Math.abs(wheelX))\n wheelY = 0;\n if (dt != 0) {\n vX = wheelX / dt;\n vY = wheelY / dt;\n }\n editor._emit(\"mousewheel\", mouseEvent);\n if (!mouseEvent.propagationStopped) {\n vX = vY = 0;\n }\n }\n else {\n var ev = new MouseEvent(e, editor);\n var pos = ev.getDocumentPosition();\n if (mode == \"cursor\")\n editor.selection.moveCursorToPosition(pos);\n else if (mode == \"anchor\")\n editor.selection.setSelectionAnchor(pos.row, pos.column);\n editor.renderer.scrollCursorIntoView(pos);\n e.preventDefault();\n }\n }, editor);\n function animate() {\n animationSteps += 60;\n animationTimer = setInterval(function () {\n if (animationSteps-- <= 0) {\n clearInterval(animationTimer);\n animationTimer = null;\n }\n if (Math.abs(vX) < 0.01)\n vX = 0;\n if (Math.abs(vY) < 0.01)\n vY = 0;\n if (animationSteps < 20)\n vX = 0.9 * vX;\n if (animationSteps < 20)\n vY = 0.9 * vY;\n var oldScrollTop = editor.session.getScrollTop();\n editor.renderer.scrollBy(10 * vX, 10 * vY);\n if (oldScrollTop == editor.session.getScrollTop())\n animationSteps = 0;\n }, 10);\n }\n};\n\n});\n\nace.define(\"ace/mouse/mouse_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/mouse/default_handlers\",\"ace/mouse/default_gutter_handler\",\"ace/mouse/mouse_event\",\"ace/mouse/dragdrop_handler\",\"ace/mouse/touch_handler\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar DefaultHandlers = require(\"./default_handlers\").DefaultHandlers;\nvar DefaultGutterHandler = require(\"./default_gutter_handler\").GutterHandler;\nvar MouseEvent = require(\"./mouse_event\").MouseEvent;\nvar DragdropHandler = require(\"./dragdrop_handler\").DragdropHandler;\nvar addTouchListeners = require(\"./touch_handler\").addTouchListeners;\nvar config = require(\"../config\");\nvar MouseHandler = /** @class */ (function () {\n function MouseHandler(editor) {\n var _self = this;\n this.editor = editor;\n new DefaultHandlers(this);\n new DefaultGutterHandler(this);\n new DragdropHandler(this);\n var focusEditor = function (e) {\n var windowBlurred = !document.hasFocus || !document.hasFocus()\n || !editor.isFocused() && document.activeElement == (editor.textInput && editor.textInput.getElement());\n if (windowBlurred)\n window.focus();\n editor.focus();\n setTimeout(function () {\n if (!editor.isFocused())\n editor.focus();\n });\n };\n var mouseTarget = editor.renderer.getMouseEventTarget();\n event.addListener(mouseTarget, \"click\", this.onMouseEvent.bind(this, \"click\"), editor);\n event.addListener(mouseTarget, \"mousemove\", this.onMouseMove.bind(this, \"mousemove\"), editor);\n event.addMultiMouseDownListener([\n mouseTarget,\n editor.renderer.scrollBarV && editor.renderer.scrollBarV.inner,\n editor.renderer.scrollBarH && editor.renderer.scrollBarH.inner,\n editor.textInput && editor.textInput.getElement()\n ].filter(Boolean), [400, 300, 250], this, \"onMouseEvent\", editor);\n event.addMouseWheelListener(editor.container, this.onMouseWheel.bind(this, \"mousewheel\"), editor);\n addTouchListeners(editor.container, editor);\n var gutterEl = editor.renderer.$gutter;\n event.addListener(gutterEl, \"mousedown\", this.onMouseEvent.bind(this, \"guttermousedown\"), editor);\n event.addListener(gutterEl, \"click\", this.onMouseEvent.bind(this, \"gutterclick\"), editor);\n event.addListener(gutterEl, \"dblclick\", this.onMouseEvent.bind(this, \"gutterdblclick\"), editor);\n event.addListener(gutterEl, \"mousemove\", this.onMouseEvent.bind(this, \"guttermousemove\"), editor);\n event.addListener(mouseTarget, \"mousedown\", focusEditor, editor);\n event.addListener(gutterEl, \"mousedown\", focusEditor, editor);\n if (useragent.isIE && editor.renderer.scrollBarV) {\n event.addListener(editor.renderer.scrollBarV.element, \"mousedown\", focusEditor, editor);\n event.addListener(editor.renderer.scrollBarH.element, \"mousedown\", focusEditor, editor);\n }\n editor.on(\"mousemove\", function (e) {\n if (_self.state || _self.$dragDelay || !_self.$dragEnabled)\n return;\n var character = editor.renderer.screenToTextCoordinates(e.x, e.y);\n var range = editor.session.selection.getRange();\n var renderer = editor.renderer;\n if (!range.isEmpty() && range.insideStart(character.row, character.column)) {\n renderer.setCursorStyle(\"default\");\n }\n else {\n renderer.setCursorStyle(\"\");\n }\n }, editor);\n }\n MouseHandler.prototype.onMouseEvent = function (name, e) {\n if (!this.editor.session)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseMove = function (name, e) {\n var listeners = this.editor._eventRegistry && this.editor._eventRegistry.mousemove;\n if (!listeners || !listeners.length)\n return;\n this.editor._emit(name, new MouseEvent(e, this.editor));\n };\n MouseHandler.prototype.onMouseWheel = function (name, e) {\n var mouseEvent = new MouseEvent(e, this.editor);\n mouseEvent.speed = this.$scrollSpeed * 2;\n mouseEvent.wheelX = e.wheelX;\n mouseEvent.wheelY = e.wheelY;\n this.editor._emit(name, mouseEvent);\n };\n MouseHandler.prototype.setState = function (state) {\n this.state = state;\n };\n MouseHandler.prototype.captureMouse = function (ev, mouseMoveHandler) {\n this.x = ev.x;\n this.y = ev.y;\n this.isMousePressed = true;\n var editor = this.editor;\n var renderer = this.editor.renderer;\n renderer.$isMousePressed = true;\n var self = this;\n var onMouseMove = function (e) {\n if (!e)\n return;\n if (useragent.isWebKit && !e.which && self.releaseMouse)\n return self.releaseMouse();\n self.x = e.clientX;\n self.y = e.clientY;\n mouseMoveHandler && mouseMoveHandler(e);\n self.mouseEvent = new MouseEvent(e, self.editor);\n self.$mouseMoved = true;\n };\n var onCaptureEnd = function (e) {\n editor.off(\"beforeEndOperation\", onOperationEnd);\n clearInterval(timerId);\n if (editor.session)\n onCaptureInterval();\n self[self.state + \"End\"] && self[self.state + \"End\"](e);\n self.state = \"\";\n self.isMousePressed = renderer.$isMousePressed = false;\n if (renderer.$keepTextAreaAtCursor)\n renderer.$moveTextAreaToCursor();\n self.$onCaptureMouseMove = self.releaseMouse = null;\n e && self.onMouseEvent(\"mouseup\", e);\n editor.endOperation();\n };\n var onCaptureInterval = function () {\n self[self.state] && self[self.state]();\n self.$mouseMoved = false;\n };\n if (useragent.isOldIE && ev.domEvent.type == \"dblclick\") {\n return setTimeout(function () { onCaptureEnd(ev); });\n }\n var onOperationEnd = function (e) {\n if (!self.releaseMouse)\n return;\n if (editor.curOp.command.name && editor.curOp.selectionChanged) {\n self[self.state + \"End\"] && self[self.state + \"End\"]();\n self.state = \"\";\n self.releaseMouse();\n }\n };\n editor.on(\"beforeEndOperation\", onOperationEnd);\n editor.startOperation({ command: { name: \"mouse\" } });\n self.$onCaptureMouseMove = onMouseMove;\n self.releaseMouse = event.capture(this.editor.container, onMouseMove, onCaptureEnd);\n var timerId = setInterval(onCaptureInterval, 20);\n };\n MouseHandler.prototype.cancelContextMenu = function () {\n var stop = function (e) {\n if (e && e.domEvent && e.domEvent.type != \"contextmenu\")\n return;\n this.editor.off(\"nativecontextmenu\", stop);\n if (e && e.domEvent)\n event.stopEvent(e.domEvent);\n }.bind(this);\n setTimeout(stop, 10);\n this.editor.on(\"nativecontextmenu\", stop);\n };\n MouseHandler.prototype.destroy = function () {\n if (this.releaseMouse)\n this.releaseMouse();\n };\n return MouseHandler;\n}());\nMouseHandler.prototype.releaseMouse = null;\nconfig.defineOptions(MouseHandler.prototype, \"mouseHandler\", {\n scrollSpeed: { initialValue: 2 },\n dragDelay: { initialValue: (useragent.isMac ? 150 : 0) },\n dragEnabled: { initialValue: true },\n focusTimeout: { initialValue: 0 },\n tooltipFollowsMouse: { initialValue: true }\n});\nexports.MouseHandler = MouseHandler;\n\n});\n\nace.define(\"ace/mouse/fold_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar FoldHandler = /** @class */ (function () {\n function FoldHandler(editor) {\n editor.on(\"click\", function (e) {\n var position = e.getDocumentPosition();\n var session = editor.session;\n var fold = session.getFoldAt(position.row, position.column, 1);\n if (fold) {\n if (e.getAccelKey())\n session.removeFold(fold);\n else\n session.expandFold(fold);\n e.stop();\n }\n var target = e.domEvent && e.domEvent.target;\n if (target && dom.hasCssClass(target, \"ace_inline_button\")) {\n if (dom.hasCssClass(target, \"ace_toggle_wrap\")) {\n session.setOption(\"wrap\", !session.getUseWrapMode());\n editor.renderer.scrollCursorIntoView();\n }\n }\n });\n editor.on(\"gutterclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n if (session.foldWidgets && session.foldWidgets[row])\n editor.session.onFoldWidgetClick(row, e);\n if (!editor.isFocused())\n editor.focus();\n e.stop();\n }\n });\n editor.on(\"gutterdblclick\", function (e) {\n var gutterRegion = editor.renderer.$gutterLayer.getRegion(e);\n if (gutterRegion == \"foldWidgets\") {\n var row = e.getDocumentPosition().row;\n var session = editor.session;\n var data = session.getParentFoldRangeData(row, true);\n var range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = session.getFoldAt(row, session.getLine(row).length, 1);\n if (fold) {\n session.removeFold(fold);\n }\n else {\n session.addFold(\"...\", range);\n editor.renderer.scrollCursorIntoView({ row: range.start.row, column: 0 });\n }\n }\n e.stop();\n }\n });\n }\n return FoldHandler;\n}());\nexports.FoldHandler = FoldHandler;\n\n});\n\nace.define(\"ace/keyboard/keybinding\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar keyUtil = require(\"../lib/keys\");\nvar event = require(\"../lib/event\");\nvar KeyBinding = /** @class */ (function () {\n function KeyBinding(editor) {\n this.$editor = editor;\n this.$data = { editor: editor };\n this.$handlers = [];\n this.setDefaultHandler(editor.commands);\n }\n KeyBinding.prototype.setDefaultHandler = function (kb) {\n this.removeKeyboardHandler(this.$defaultHandler);\n this.$defaultHandler = kb;\n this.addKeyboardHandler(kb, 0);\n };\n KeyBinding.prototype.setKeyboardHandler = function (kb) {\n var h = this.$handlers;\n if (h[h.length - 1] == kb)\n return;\n while (h[h.length - 1] && h[h.length - 1] != this.$defaultHandler)\n this.removeKeyboardHandler(h[h.length - 1]);\n this.addKeyboardHandler(kb, 1);\n };\n KeyBinding.prototype.addKeyboardHandler = function (kb, pos) {\n if (!kb)\n return;\n if (typeof kb == \"function\" && !kb.handleKeyboard)\n kb.handleKeyboard = kb;\n var i = this.$handlers.indexOf(kb);\n if (i != -1)\n this.$handlers.splice(i, 1);\n if (pos == undefined)\n this.$handlers.push(kb);\n else\n this.$handlers.splice(pos, 0, kb);\n if (i == -1 && kb.attach)\n kb.attach(this.$editor);\n };\n KeyBinding.prototype.removeKeyboardHandler = function (kb) {\n var i = this.$handlers.indexOf(kb);\n if (i == -1)\n return false;\n this.$handlers.splice(i, 1);\n kb.detach && kb.detach(this.$editor);\n return true;\n };\n KeyBinding.prototype.getKeyboardHandler = function () {\n return this.$handlers[this.$handlers.length - 1];\n };\n KeyBinding.prototype.getStatusText = function () {\n var data = this.$data;\n var editor = data.editor;\n return this.$handlers.map(function (h) {\n return h.getStatusText && h.getStatusText(editor, data) || \"\";\n }).filter(Boolean).join(\" \");\n };\n KeyBinding.prototype.$callKeyboardHandlers = function (hashId, keyString, keyCode, e) {\n var toExecute;\n var success = false;\n var commands = this.$editor.commands;\n for (var i = this.$handlers.length; i--;) {\n toExecute = this.$handlers[i].handleKeyboard(this.$data, hashId, keyString, keyCode, e);\n if (!toExecute || !toExecute.command)\n continue;\n if (toExecute.command == \"null\") {\n success = true;\n }\n else {\n success = commands.exec(toExecute.command, this.$editor, toExecute.args, e);\n }\n if (success && e && hashId != -1 &&\n toExecute.passEvent != true && toExecute.command.passEvent != true) {\n event.stopEvent(e);\n }\n if (success)\n break;\n }\n if (!success && hashId == -1) {\n toExecute = { command: \"insertstring\" };\n success = commands.exec(\"insertstring\", this.$editor, keyString);\n }\n if (success && this.$editor._signal)\n this.$editor._signal(\"keyboardActivity\", toExecute);\n return success;\n };\n KeyBinding.prototype.onCommandKey = function (e, hashId, keyCode) {\n var keyString = keyUtil.keyCodeToString(keyCode);\n return this.$callKeyboardHandlers(hashId, keyString, keyCode, e);\n };\n KeyBinding.prototype.onTextInput = function (text) {\n return this.$callKeyboardHandlers(-1, text);\n };\n return KeyBinding;\n}());\nexports.KeyBinding = KeyBinding;\n\n});\n\nace.define(\"ace/lib/bidiutil\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar ArabicAlefBetIntervalsBegine = ['\\u0621', '\\u0641'];\nvar ArabicAlefBetIntervalsEnd = ['\\u063A', '\\u064a'];\nvar dir = 0, hiLevel = 0;\nvar lastArabic = false, hasUBAT_AL = false, hasUBAT_B = false, hasUBAT_S = false, hasBlockSep = false, hasSegSep = false;\nvar impTab_LTR = [ [0, 3, 0, 1, 0, 0, 0], [0, 3, 0, 1, 2, 2, 0], [0, 3, 0, 0x11, 2, 0, 1], [0, 3, 5, 5, 4, 1, 0], [0, 3, 0x15, 0x15, 4, 0, 1], [0, 3, 5, 5, 4, 2, 0]\n];\nvar impTab_RTL = [ [2, 0, 1, 1, 0, 1, 0], [2, 0, 1, 1, 0, 2, 0], [2, 0, 2, 1, 3, 2, 0], [2, 0, 2, 0x21, 3, 1, 1]\n];\nvar LTR = 0, RTL = 1;\nvar L = 0;\nvar R = 1;\nvar EN = 2;\nvar AN = 3;\nvar ON = 4;\nvar B = 5;\nvar S = 6;\nvar AL = 7;\nvar WS = 8;\nvar CS = 9;\nvar ES = 10;\nvar ET = 11;\nvar NSM = 12;\nvar LRE = 13;\nvar RLE = 14;\nvar PDF = 15;\nvar LRO = 16;\nvar RLO = 17;\nvar BN = 18;\nvar UnicodeTBL00 = [\n BN, BN, BN, BN, BN, BN, BN, BN, BN, S, B, S, WS, B, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, B, B, B, S,\n WS, ON, ON, ET, ET, ET, ON, ON, ON, ON, ON, ES, CS, ES, CS, CS,\n EN, EN, EN, EN, EN, EN, EN, EN, EN, EN, CS, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, ON,\n ON, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L,\n L, L, L, L, L, L, L, L, L, L, L, ON, ON, ON, ON, BN,\n BN, BN, BN, BN, BN, B, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN, BN,\n CS, ON, ET, ET, ET, ET, ON, ON, ON, ON, L, ON, ON, BN, ON, ON,\n ET, ET, EN, EN, ON, L, ON, ON, ON, EN, L, ON, ON, ON, ON, ON\n];\nvar UnicodeTBL20 = [\n WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, WS, BN, BN, BN, L, R,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, WS, B, LRE, RLE, PDF, LRO, RLO, CS,\n ET, ET, ET, ET, ET, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, CS, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON,\n ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, ON, WS\n];\nfunction _computeLevels(chars, levels, len, charTypes) {\n var impTab = dir ? impTab_RTL : impTab_LTR, prevState = null, newClass = null, newLevel = null, newState = 0, action = null, cond = null, condPos = -1, i = null, ix = null, classes = [];\n if (!charTypes) {\n for (i = 0, charTypes = []; i < len; i++) {\n charTypes[i] = _getCharacterType(chars[i]);\n }\n }\n hiLevel = dir;\n lastArabic = false;\n hasUBAT_AL = false;\n hasUBAT_B = false;\n hasUBAT_S = false;\n for (ix = 0; ix < len; ix++) {\n prevState = newState;\n classes[ix] = newClass = _getCharClass(chars, charTypes, classes, ix);\n newState = impTab[prevState][newClass];\n action = newState & 0xF0;\n newState &= 0x0F;\n levels[ix] = newLevel = impTab[newState][5];\n if (action > 0) {\n if (action == 0x10) {\n for (i = condPos; i < ix; i++) {\n levels[i] = 1;\n }\n condPos = -1;\n }\n else {\n condPos = -1;\n }\n }\n cond = impTab[newState][6];\n if (cond) {\n if (condPos == -1) {\n condPos = ix;\n }\n }\n else {\n if (condPos > -1) {\n for (i = condPos; i < ix; i++) {\n levels[i] = newLevel;\n }\n condPos = -1;\n }\n }\n if (charTypes[ix] == B) {\n levels[ix] = 0;\n }\n hiLevel |= newLevel;\n }\n if (hasUBAT_S) {\n for (i = 0; i < len; i++) {\n if (charTypes[i] == S) {\n levels[i] = dir;\n for (var j = i - 1; j >= 0; j--) {\n if (charTypes[j] == WS) {\n levels[j] = dir;\n }\n else {\n break;\n }\n }\n }\n }\n }\n}\nfunction _invertLevel(lev, levels, _array) {\n if (hiLevel < lev) {\n return;\n }\n if (lev == 1 && dir == RTL && !hasUBAT_B) {\n _array.reverse();\n return;\n }\n var len = _array.length, start = 0, end, lo, hi, tmp;\n while (start < len) {\n if (levels[start] >= lev) {\n end = start + 1;\n while (end < len && levels[end] >= lev) {\n end++;\n }\n for (lo = start, hi = end - 1; lo < hi; lo++, hi--) {\n tmp = _array[lo];\n _array[lo] = _array[hi];\n _array[hi] = tmp;\n }\n start = end;\n }\n start++;\n }\n}\nfunction _getCharClass(chars, types, classes, ix) {\n var cType = types[ix], wType, nType, len, i;\n switch (cType) {\n case L:\n case R:\n lastArabic = false;\n case ON:\n case AN:\n return cType;\n case EN:\n return lastArabic ? AN : EN;\n case AL:\n lastArabic = true;\n hasUBAT_AL = true;\n return R;\n case WS:\n return ON;\n case CS:\n if (ix < 1 || (ix + 1) >= types.length ||\n ((wType = classes[ix - 1]) != EN && wType != AN) ||\n ((nType = types[ix + 1]) != EN && nType != AN)) {\n return ON;\n }\n if (lastArabic) {\n nType = AN;\n }\n return nType == wType ? nType : ON;\n case ES:\n wType = ix > 0 ? classes[ix - 1] : B;\n if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN) {\n return EN;\n }\n return ON;\n case ET:\n if (ix > 0 && classes[ix - 1] == EN) {\n return EN;\n }\n if (lastArabic) {\n return ON;\n }\n i = ix + 1;\n len = types.length;\n while (i < len && types[i] == ET) {\n i++;\n }\n if (i < len && types[i] == EN) {\n return EN;\n }\n return ON;\n case NSM:\n len = types.length;\n i = ix + 1;\n while (i < len && types[i] == NSM) {\n i++;\n }\n if (i < len) {\n var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E;\n wType = types[i];\n if (rtlCandidate && (wType == R || wType == AL)) {\n return R;\n }\n }\n if (ix < 1 || (wType = types[ix - 1]) == B) {\n return ON;\n }\n return classes[ix - 1];\n case B:\n lastArabic = false;\n hasUBAT_B = true;\n return dir;\n case S:\n hasUBAT_S = true;\n return ON;\n case LRE:\n case RLE:\n case LRO:\n case RLO:\n case PDF:\n lastArabic = false;\n case BN:\n return ON;\n }\n}\nfunction _getCharacterType(ch) {\n var uc = ch.charCodeAt(0), hi = uc >> 8;\n if (hi == 0) {\n return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]);\n }\n else if (hi == 5) {\n return (/[\\u0591-\\u05f4]/.test(ch) ? R : L);\n }\n else if (hi == 6) {\n if (/[\\u0610-\\u061a\\u064b-\\u065f\\u06d6-\\u06e4\\u06e7-\\u06ed]/.test(ch))\n return NSM;\n else if (/[\\u0660-\\u0669\\u066b-\\u066c]/.test(ch))\n return AN;\n else if (uc == 0x066A)\n return ET;\n else if (/[\\u06f0-\\u06f9]/.test(ch))\n return EN;\n else\n return AL;\n }\n else if (hi == 0x20 && uc <= 0x205F) {\n return UnicodeTBL20[uc & 0xFF];\n }\n else if (hi == 0xFE) {\n return (uc >= 0xFE70 ? AL : ON);\n }\n return ON;\n}\nfunction _isArabicDiacritics(ch) {\n return (ch >= '\\u064b' && ch <= '\\u0655');\n}\nexports.L = L;\nexports.R = R;\nexports.EN = EN;\nexports.ON_R = 3;\nexports.AN = 4;\nexports.R_H = 5;\nexports.B = 6;\nexports.RLE = 7;\nexports.DOT = \"\\xB7\";\nexports.doBidiReorder = function (text, textCharTypes, isRtl) {\n if (text.length < 2)\n return {};\n var chars = text.split(\"\"), logicalFromVisual = new Array(chars.length), bidiLevels = new Array(chars.length), levels = [];\n dir = isRtl ? RTL : LTR;\n _computeLevels(chars, levels, chars.length, textCharTypes);\n for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++)\n ;\n _invertLevel(2, levels, logicalFromVisual);\n _invertLevel(1, levels, logicalFromVisual);\n for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width\n if (textCharTypes[i] === AN) {\n levels[i] = exports.AN;\n }\n else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE)\n || textCharTypes[i] === ON || textCharTypes[i] === BN)) {\n levels[i] = exports.ON_R;\n }\n else if ((i > 0 && chars[i - 1] === '\\u0644') && /\\u0622|\\u0623|\\u0625|\\u0627/.test(chars[i])) {\n levels[i - 1] = levels[i] = exports.R_H;\n i++;\n }\n }\n if (chars[chars.length - 1] === exports.DOT)\n levels[chars.length - 1] = exports.B;\n if (chars[0] === '\\u202B')\n levels[0] = exports.RLE;\n for (var i = 0; i < logicalFromVisual.length; i++) {\n bidiLevels[i] = levels[logicalFromVisual[i]];\n }\n return { 'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels };\n};\nexports.hasBidiCharacters = function (text, textCharTypes) {\n var ret = false;\n for (var i = 0; i < text.length; i++) {\n textCharTypes[i] = _getCharacterType(text.charAt(i));\n if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN))\n ret = true;\n }\n return ret;\n};\nexports.getVisualFromLogicalIdx = function (logIdx, rowMap) {\n for (var i = 0; i < rowMap.logicalFromVisual.length; i++) {\n if (rowMap.logicalFromVisual[i] == logIdx)\n return i;\n }\n return 0;\n};\n\n});\n\nace.define(\"ace/bidihandler\",[\"require\",\"exports\",\"module\",\"ace/lib/bidiutil\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar bidiUtil = require(\"./lib/bidiutil\");\nvar lang = require(\"./lib/lang\");\nvar bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\u202B]/;\nvar BidiHandler = /** @class */ (function () {\n function BidiHandler(session) {\n this.session = session;\n this.bidiMap = {};\n this.currentRow = null;\n this.bidiUtil = bidiUtil;\n this.charWidths = [];\n this.EOL = \"\\xAC\";\n this.showInvisibles = true;\n this.isRtlDir = false;\n this.$isRtl = false;\n this.line = \"\";\n this.wrapIndent = 0;\n this.EOF = \"\\xB6\";\n this.RLE = \"\\u202B\";\n this.contentWidth = 0;\n this.fontMetrics = null;\n this.rtlLineOffset = 0;\n this.wrapOffset = 0;\n this.isMoveLeftOperation = false;\n this.seenBidi = bidiRE.test(session.getValue());\n }\n BidiHandler.prototype.isBidiRow = function (screenRow, docRow, splitIndex) {\n if (!this.seenBidi)\n return false;\n if (screenRow !== this.currentRow) {\n this.currentRow = screenRow;\n this.updateRowLine(docRow, splitIndex);\n this.updateBidiMap();\n }\n return this.bidiMap.bidiLevels;\n };\n BidiHandler.prototype.onChange = function (delta) {\n if (!this.seenBidi) {\n if (delta.action == \"insert\" && bidiRE.test(delta.lines.join(\"\\n\"))) {\n this.seenBidi = true;\n this.currentRow = null;\n }\n }\n else {\n this.currentRow = null;\n }\n };\n BidiHandler.prototype.getDocumentRow = function () {\n var docRow = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var index = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n if (index >= 0)\n docRow = this.session.$docRowCache[index];\n }\n return docRow;\n };\n BidiHandler.prototype.getSplitIndex = function () {\n var splitIndex = 0;\n var rowCache = this.session.$screenRowCache;\n if (rowCache.length) {\n var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow);\n while (this.currentRow - splitIndex > 0) {\n currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1);\n if (currentIndex !== prevIndex)\n break;\n prevIndex = currentIndex;\n splitIndex++;\n }\n }\n else {\n splitIndex = this.currentRow;\n }\n return splitIndex;\n };\n BidiHandler.prototype.updateRowLine = function (docRow, splitIndex) {\n if (docRow === undefined)\n docRow = this.getDocumentRow();\n var isLastRow = (docRow === this.session.getLength() - 1), endOfLine = isLastRow ? this.EOF : this.EOL;\n this.wrapIndent = 0;\n this.line = this.session.getLine(docRow);\n this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE;\n if (this.session.$useWrapMode) {\n var splits = this.session.$wrapData[docRow];\n if (splits) {\n if (splitIndex === undefined)\n splitIndex = this.getSplitIndex();\n if (splitIndex > 0 && splits.length) {\n this.wrapIndent = splits.indent;\n this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L];\n this.line = (splitIndex < splits.length) ?\n this.line.substring(splits[splitIndex - 1], splits[splitIndex]) :\n this.line.substring(splits[splits.length - 1]);\n }\n else {\n this.line = this.line.substring(0, splits[splitIndex]);\n }\n if (splitIndex == splits.length) {\n this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT;\n }\n }\n }\n else {\n this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT;\n }\n var session = this.session, shift = 0, size;\n this.line = this.line.replace(/\\t|[\\u1100-\\u2029, \\u202F-\\uFFE6]/g, function (ch, i) {\n if (ch === '\\t' || session.isFullWidth(ch.charCodeAt(0))) {\n size = (ch === '\\t') ? session.getScreenTabSize(i + shift) : 2;\n shift += size - 1;\n return lang.stringRepeat(bidiUtil.DOT, size);\n }\n return ch;\n });\n if (this.isRtlDir) {\n this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line;\n this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width;\n }\n };\n BidiHandler.prototype.updateBidiMap = function () {\n var textCharTypes = [];\n if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) {\n this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir);\n }\n else {\n this.bidiMap = {};\n }\n };\n BidiHandler.prototype.markAsDirty = function () {\n this.currentRow = null;\n };\n BidiHandler.prototype.updateCharacterWidths = function (fontMetrics) {\n if (this.characterWidth === fontMetrics.$characterSize.width)\n return;\n this.fontMetrics = fontMetrics;\n var characterWidth = this.characterWidth = fontMetrics.$characterSize.width;\n var bidiCharWidth = fontMetrics.$measureCharWidth(\"\\u05d4\");\n this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth;\n this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth;\n this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45;\n this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0;\n this.currentRow = null;\n };\n BidiHandler.prototype.setShowInvisibles = function (showInvisibles) {\n this.showInvisibles = showInvisibles;\n this.currentRow = null;\n };\n BidiHandler.prototype.setEolChar = function (eolChar) {\n this.EOL = eolChar;\n };\n BidiHandler.prototype.setContentWidth = function (width) {\n this.contentWidth = width;\n };\n BidiHandler.prototype.isRtlLine = function (row) {\n if (this.$isRtl)\n return true;\n if (row != undefined)\n return (this.session.getLine(row).charAt(0) == this.RLE);\n else\n return this.isRtlDir;\n };\n BidiHandler.prototype.setRtlDirection = function (editor, isRtlDir) {\n var cursor = editor.getCursorPosition();\n for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) {\n if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE)\n editor.session.doc.removeInLine(row, 0, 1);\n else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE)\n editor.session.doc.insert({ column: 0, row: row }, editor.session.$bidiHandler.RLE);\n }\n };\n BidiHandler.prototype.getPosLeft = function (col) {\n col -= this.wrapIndent;\n var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0;\n var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary;\n var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), levels = this.bidiMap.bidiLevels, left = 0;\n if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0)\n visualIdx++;\n for (var i = 0; i < visualIdx; i++) {\n left += this.charWidths[levels[i]];\n }\n if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0))\n left += this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n if (this.isRtlDir)\n left += this.rtlLineOffset;\n return left;\n };\n BidiHandler.prototype.getSelections = function (startCol, endCol) {\n var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, isSelected = false, isSelectedPrev = false, selectionStart = 0;\n if (this.wrapIndent)\n offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) {\n logIdx = map.logicalFromVisual[visIdx];\n level = levels[visIdx];\n isSelected = (logIdx >= selColMin) && (logIdx < selColMax);\n if (isSelected && !isSelectedPrev) {\n selectionStart = offset;\n }\n else if (!isSelected && isSelectedPrev) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n offset += this.charWidths[level];\n isSelectedPrev = isSelected;\n }\n if (isSelected && (visIdx === levels.length)) {\n selections.push({ left: selectionStart, width: offset - selectionStart });\n }\n if (this.isRtlDir) {\n for (var i = 0; i < selections.length; i++) {\n selections[i].left += this.rtlLineOffset;\n }\n }\n return selections;\n };\n BidiHandler.prototype.offsetToCol = function (posX) {\n if (this.isRtlDir)\n posX -= this.rtlLineOffset;\n var logicalIdx = 0, posX = Math.max(posX, 0), offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, charWidth = this.charWidths[levels[visualIdx]];\n if (this.wrapIndent)\n posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset;\n while (posX > offset + charWidth / 2) {\n offset += charWidth;\n if (visualIdx === levels.length - 1) {\n charWidth = 0;\n break;\n }\n charWidth = this.charWidths[levels[++visualIdx]];\n }\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)) {\n if (posX < offset)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)) {\n logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx]\n : this.bidiMap.logicalFromVisual[visualIdx - 1]);\n }\n else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0))\n || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))) {\n logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx];\n }\n else {\n if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0)\n visualIdx--;\n logicalIdx = this.bidiMap.logicalFromVisual[visualIdx];\n }\n if (logicalIdx === 0 && this.isRtlDir)\n logicalIdx++;\n return (logicalIdx + this.wrapIndent);\n };\n return BidiHandler;\n}());\nexports.BidiHandler = BidiHandler;\n\n});\n\nace.define(\"ace/selection\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Selection = function (session) {\n this.session = session;\n this.doc = session.getDocument();\n this.clearSelection();\n this.cursor = this.lead = this.doc.createAnchor(0, 0);\n this.anchor = this.doc.createAnchor(0, 0);\n this.$silent = false;\n var self = this;\n this.cursor.on(\"change\", function (e) {\n self.$cursorChanged = true;\n if (!self.$silent)\n self._emit(\"changeCursor\");\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column)\n self.$desiredColumn = null;\n });\n this.anchor.on(\"change\", function () {\n self.$anchorChanged = true;\n if (!self.$isEmpty && !self.$silent)\n self._emit(\"changeSelection\");\n });\n};\n(function () {\n oop.implement(this, EventEmitter);\n this.isEmpty = function () {\n return this.$isEmpty || (this.anchor.row == this.lead.row &&\n this.anchor.column == this.lead.column);\n };\n this.isMultiLine = function () {\n return !this.$isEmpty && this.anchor.row != this.cursor.row;\n };\n this.getCursor = function () {\n return this.lead.getPosition();\n };\n this.setAnchor = function (row, column) {\n this.$isEmpty = false;\n this.anchor.setPosition(row, column);\n };\n this.setSelectionAnchor = this.setAnchor;\n this.getAnchor = function () {\n if (this.$isEmpty)\n return this.getSelectionLead();\n return this.anchor.getPosition();\n };\n this.getSelectionAnchor = this.getAnchor;\n this.getSelectionLead = function () {\n return this.lead.getPosition();\n };\n this.isBackwards = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column));\n };\n this.getRange = function () {\n var anchor = this.anchor;\n var lead = this.lead;\n if (this.$isEmpty)\n return Range.fromPoints(lead, lead);\n return this.isBackwards()\n ? Range.fromPoints(lead, anchor)\n : Range.fromPoints(anchor, lead);\n };\n this.clearSelection = function () {\n if (!this.$isEmpty) {\n this.$isEmpty = true;\n this._emit(\"changeSelection\");\n }\n };\n this.selectAll = function () {\n this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);\n };\n this.setRange =\n this.setSelectionRange = function (range, reverse) {\n var start = reverse ? range.end : range.start;\n var end = reverse ? range.start : range.end;\n this.$setSelection(start.row, start.column, end.row, end.column);\n };\n this.$setSelection = function (anchorRow, anchorColumn, cursorRow, cursorColumn) {\n if (this.$silent)\n return;\n var wasEmpty = this.$isEmpty;\n var wasMultiselect = this.inMultiSelectMode;\n this.$silent = true;\n this.$cursorChanged = this.$anchorChanged = false;\n this.anchor.setPosition(anchorRow, anchorColumn);\n this.cursor.setPosition(cursorRow, cursorColumn);\n this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor);\n this.$silent = false;\n if (this.$cursorChanged)\n this._emit(\"changeCursor\");\n if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect)\n this._emit(\"changeSelection\");\n };\n this.$moveSelection = function (mover) {\n var lead = this.lead;\n if (this.$isEmpty)\n this.setSelectionAnchor(lead.row, lead.column);\n mover.call(this);\n };\n this.selectTo = function (row, column) {\n this.$moveSelection(function () {\n this.moveCursorTo(row, column);\n });\n };\n this.selectToPosition = function (pos) {\n this.$moveSelection(function () {\n this.moveCursorToPosition(pos);\n });\n };\n this.moveTo = function (row, column) {\n this.clearSelection();\n this.moveCursorTo(row, column);\n };\n this.moveToPosition = function (pos) {\n this.clearSelection();\n this.moveCursorToPosition(pos);\n };\n this.selectUp = function () {\n this.$moveSelection(this.moveCursorUp);\n };\n this.selectDown = function () {\n this.$moveSelection(this.moveCursorDown);\n };\n this.selectRight = function () {\n this.$moveSelection(this.moveCursorRight);\n };\n this.selectLeft = function () {\n this.$moveSelection(this.moveCursorLeft);\n };\n this.selectLineStart = function () {\n this.$moveSelection(this.moveCursorLineStart);\n };\n this.selectLineEnd = function () {\n this.$moveSelection(this.moveCursorLineEnd);\n };\n this.selectFileEnd = function () {\n this.$moveSelection(this.moveCursorFileEnd);\n };\n this.selectFileStart = function () {\n this.$moveSelection(this.moveCursorFileStart);\n };\n this.selectWordRight = function () {\n this.$moveSelection(this.moveCursorWordRight);\n };\n this.selectWordLeft = function () {\n this.$moveSelection(this.moveCursorWordLeft);\n };\n this.getWordRange = function (row, column) {\n if (typeof column == \"undefined\") {\n var cursor = row || this.lead;\n row = cursor.row;\n column = cursor.column;\n }\n return this.session.getWordRange(row, column);\n };\n this.selectWord = function () {\n this.setSelectionRange(this.getWordRange());\n };\n this.selectAWord = function () {\n var cursor = this.getCursor();\n var range = this.session.getAWordRange(cursor.row, cursor.column);\n this.setSelectionRange(range);\n };\n this.getLineRange = function (row, excludeLastChar) {\n var rowStart = typeof row == \"number\" ? row : this.lead.row;\n var rowEnd;\n var foldLine = this.session.getFoldLine(rowStart);\n if (foldLine) {\n rowStart = foldLine.start.row;\n rowEnd = foldLine.end.row;\n }\n else {\n rowEnd = rowStart;\n }\n if (excludeLastChar === true)\n return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length);\n else\n return new Range(rowStart, 0, rowEnd + 1, 0);\n };\n this.selectLine = function () {\n this.setSelectionRange(this.getLineRange());\n };\n this.moveCursorUp = function () {\n this.moveCursorBy(-1, 0);\n };\n this.moveCursorDown = function () {\n this.moveCursorBy(1, 0);\n };\n this.wouldMoveIntoSoftTab = function (cursor, tabSize, direction) {\n var start = cursor.column;\n var end = cursor.column + tabSize;\n if (direction < 0) {\n start = cursor.column - tabSize;\n end = cursor.column;\n }\n return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(\" \").length - 1 == tabSize;\n };\n this.moveCursorLeft = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n }\n else if (cursor.column === 0) {\n if (cursor.row > 0) {\n this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, -tabSize);\n }\n else {\n this.moveCursorBy(0, -1);\n }\n }\n };\n this.moveCursorRight = function () {\n var cursor = this.lead.getPosition(), fold;\n if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n }\n else if (this.lead.column == this.doc.getLine(this.lead.row).length) {\n if (this.lead.row < this.doc.getLength() - 1) {\n this.moveCursorTo(this.lead.row + 1, 0);\n }\n }\n else {\n var tabSize = this.session.getTabSize();\n var cursor = this.lead;\n if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) {\n this.moveCursorBy(0, tabSize);\n }\n else {\n this.moveCursorBy(0, 1);\n }\n }\n };\n this.moveCursorLineStart = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var screenRow = this.session.documentToScreenRow(row, column);\n var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0);\n var beforeCursor = this.session.getDisplayLine(row, null, firstColumnPosition.row, firstColumnPosition.column);\n var leadingSpace = beforeCursor.match(/^\\s*/);\n if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart)\n firstColumnPosition.column += leadingSpace[0].length;\n this.moveCursorToPosition(firstColumnPosition);\n };\n this.moveCursorLineEnd = function () {\n var lead = this.lead;\n var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column);\n if (this.lead.column == lineEnd.column) {\n var line = this.session.getLine(lineEnd.row);\n if (lineEnd.column == line.length) {\n var textEnd = line.search(/\\s+$/);\n if (textEnd > 0)\n lineEnd.column = textEnd;\n }\n }\n this.moveCursorTo(lineEnd.row, lineEnd.column);\n };\n this.moveCursorFileEnd = function () {\n var row = this.doc.getLength() - 1;\n var column = this.doc.getLine(row).length;\n this.moveCursorTo(row, column);\n };\n this.moveCursorFileStart = function () {\n this.moveCursorTo(0, 0);\n };\n this.moveCursorLongWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n this.moveCursorTo(fold.end.row, fold.end.column);\n return;\n }\n if (this.session.nonTokenRe.exec(rightOfCursor)) {\n column += this.session.nonTokenRe.lastIndex;\n this.session.nonTokenRe.lastIndex = 0;\n rightOfCursor = line.substring(column);\n }\n if (column >= line.length) {\n this.moveCursorTo(row, line.length);\n this.moveCursorRight();\n if (row < this.doc.getLength() - 1)\n this.moveCursorWordRight();\n return;\n }\n if (this.session.tokenRe.exec(rightOfCursor)) {\n column += this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n this.moveCursorLongWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1)) {\n this.moveCursorTo(fold.start.row, fold.start.column);\n return;\n }\n var str = this.session.getFoldStringAt(row, column, -1);\n if (str == null) {\n str = this.doc.getLine(row).substring(0, column);\n }\n var leftOfCursor = lang.stringReverse(str);\n this.session.nonTokenRe.lastIndex = 0;\n this.session.tokenRe.lastIndex = 0;\n if (this.session.nonTokenRe.exec(leftOfCursor)) {\n column -= this.session.nonTokenRe.lastIndex;\n leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex);\n this.session.nonTokenRe.lastIndex = 0;\n }\n if (column <= 0) {\n this.moveCursorTo(row, 0);\n this.moveCursorLeft();\n if (row > 0)\n this.moveCursorWordLeft();\n return;\n }\n if (this.session.tokenRe.exec(leftOfCursor)) {\n column -= this.session.tokenRe.lastIndex;\n this.session.tokenRe.lastIndex = 0;\n }\n this.moveCursorTo(row, column);\n };\n this.$shortWordEndIndex = function (rightOfCursor) {\n var index = 0, ch;\n var whitespaceRe = /\\s/;\n var tokenRe = this.session.tokenRe;\n tokenRe.lastIndex = 0;\n if (this.session.tokenRe.exec(rightOfCursor)) {\n index = this.session.tokenRe.lastIndex;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index < 1) {\n tokenRe.lastIndex = 0;\n while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) {\n tokenRe.lastIndex = 0;\n index++;\n if (whitespaceRe.test(ch)) {\n if (index > 2) {\n index--;\n break;\n }\n else {\n while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch))\n index++;\n if (index > 2)\n break;\n }\n }\n }\n }\n }\n tokenRe.lastIndex = 0;\n return index;\n };\n this.moveCursorShortWordRight = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var line = this.doc.getLine(row);\n var rightOfCursor = line.substring(column);\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold)\n return this.moveCursorTo(fold.end.row, fold.end.column);\n if (column == line.length) {\n var l = this.doc.getLength();\n do {\n row++;\n rightOfCursor = this.doc.getLine(row);\n } while (row < l && /^\\s*$/.test(rightOfCursor));\n if (!/^\\s+/.test(rightOfCursor))\n rightOfCursor = \"\";\n column = 0;\n }\n var index = this.$shortWordEndIndex(rightOfCursor);\n this.moveCursorTo(row, column + index);\n };\n this.moveCursorShortWordLeft = function () {\n var row = this.lead.row;\n var column = this.lead.column;\n var fold;\n if (fold = this.session.getFoldAt(row, column, -1))\n return this.moveCursorTo(fold.start.row, fold.start.column);\n var line = this.session.getLine(row).substring(0, column);\n if (column === 0) {\n do {\n row--;\n line = this.doc.getLine(row);\n } while (row > 0 && /^\\s*$/.test(line));\n column = line.length;\n if (!/\\s+$/.test(line))\n line = \"\";\n }\n var leftOfCursor = lang.stringReverse(line);\n var index = this.$shortWordEndIndex(leftOfCursor);\n return this.moveCursorTo(row, column - index);\n };\n this.moveCursorWordRight = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordRight();\n else\n this.moveCursorShortWordRight();\n };\n this.moveCursorWordLeft = function () {\n if (this.session.$selectLongWords)\n this.moveCursorLongWordLeft();\n else\n this.moveCursorShortWordLeft();\n };\n this.moveCursorBy = function (rows, chars) {\n var screenPos = this.session.documentToScreenPosition(this.lead.row, this.lead.column);\n var offsetX;\n if (chars === 0) {\n if (rows !== 0) {\n if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) {\n offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column);\n screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]);\n }\n else {\n offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0];\n }\n }\n if (this.$desiredColumn)\n screenPos.column = this.$desiredColumn;\n else\n this.$desiredColumn = screenPos.column;\n }\n if (rows != 0 && this.session.lineWidgets && this.session.lineWidgets[this.lead.row]) {\n var widget = this.session.lineWidgets[this.lead.row];\n if (rows < 0)\n rows -= widget.rowsAbove || 0;\n else if (rows > 0)\n rows += widget.rowCount - (widget.rowsAbove || 0);\n }\n var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX);\n if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) {\n }\n this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0);\n };\n this.moveCursorToPosition = function (position) {\n this.moveCursorTo(position.row, position.column);\n };\n this.moveCursorTo = function (row, column, keepDesiredColumn) {\n var fold = this.session.getFoldAt(row, column, 1);\n if (fold) {\n row = fold.start.row;\n column = fold.start.column;\n }\n this.$keepDesiredColumnOnChange = true;\n var line = this.session.getLine(row);\n if (/[\\uDC00-\\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) {\n if (this.lead.row == row && this.lead.column == column + 1)\n column = column - 1;\n else\n column = column + 1;\n }\n this.lead.setPosition(row, column);\n this.$keepDesiredColumnOnChange = false;\n if (!keepDesiredColumn)\n this.$desiredColumn = null;\n };\n this.moveCursorToScreen = function (row, column, keepDesiredColumn) {\n var pos = this.session.screenToDocumentPosition(row, column);\n this.moveCursorTo(pos.row, pos.column, keepDesiredColumn);\n };\n this.detach = function () {\n this.lead.detach();\n this.anchor.detach();\n };\n this.fromOrientedRange = function (range) {\n this.setSelectionRange(range, range.cursor == range.start);\n this.$desiredColumn = range.desiredColumn || this.$desiredColumn;\n };\n this.toOrientedRange = function (range) {\n var r = this.getRange();\n if (range) {\n range.start.column = r.start.column;\n range.start.row = r.start.row;\n range.end.column = r.end.column;\n range.end.row = r.end.row;\n }\n else {\n range = r;\n }\n range.cursor = this.isBackwards() ? range.start : range.end;\n range.desiredColumn = this.$desiredColumn;\n return range;\n };\n this.getRangeOfMovements = function (func) {\n var start = this.getCursor();\n try {\n func(this);\n var end = this.getCursor();\n return Range.fromPoints(start, end);\n }\n catch (e) {\n return Range.fromPoints(start, start);\n }\n finally {\n this.moveCursorToPosition(start);\n }\n };\n this.toJSON = function () {\n if (this.rangeCount) {\n var data = this.ranges.map(function (r) {\n var r1 = r.clone();\n r1.isBackwards = r.cursor == r.start;\n return r1;\n });\n }\n else {\n var data = this.getRange();\n data.isBackwards = this.isBackwards();\n }\n return data;\n };\n this.fromJSON = function (data) {\n if (data.start == undefined) {\n if (this.rangeList && data.length > 1) {\n this.toSingleRange(data[0]);\n for (var i = data.length; i--;) {\n var r = Range.fromPoints(data[i].start, data[i].end);\n if (data[i].isBackwards)\n r.cursor = r.start;\n this.addRange(r, true);\n }\n return;\n }\n else {\n data = data[0];\n }\n }\n if (this.rangeList)\n this.toSingleRange(data);\n this.setSelectionRange(data, data.isBackwards);\n };\n this.isEqual = function (data) {\n if ((data.length || this.rangeCount) && data.length != this.rangeCount)\n return false;\n if (!data.length || !this.ranges)\n return this.getRange().isEqual(data);\n for (var i = this.ranges.length; i--;) {\n if (!this.ranges[i].isEqual(data[i]))\n return false;\n }\n return true;\n };\n}).call(Selection.prototype);\nexports.Selection = Selection;\n\n});\n\nace.define(\"ace/tokenizer\",[\"require\",\"exports\",\"module\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar config = require(\"./config\");\nvar MAX_TOKEN_COUNT = 2000;\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(rules) {\n this.states = rules;\n this.regExps = {};\n this.matchMappings = {};\n for (var key in this.states) {\n var state = this.states[key];\n var ruleRegExps = [];\n var matchTotal = 0;\n var mapping = this.matchMappings[key] = { defaultToken: \"text\" };\n var flag = \"g\";\n var splitterRurles = [];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.defaultToken)\n mapping.defaultToken = rule.defaultToken;\n if (rule.caseInsensitive && flag.indexOf(\"i\") === -1)\n flag += \"i\";\n if (rule.unicode && flag.indexOf(\"u\") === -1)\n flag += \"u\";\n if (rule.regex == null)\n continue;\n if (rule.regex instanceof RegExp)\n rule.regex = rule.regex.toString().slice(1, -1);\n var adjustedregex = rule.regex;\n var matchcount = new RegExp(\"(?:(\" + adjustedregex + \")|(.))\").exec(\"a\").length - 2;\n if (Array.isArray(rule.token)) {\n if (rule.token.length == 1 || matchcount == 1) {\n rule.token = rule.token[0];\n }\n else if (matchcount - 1 != rule.token.length) {\n this.reportError(\"number of classes and regexp groups doesn't match\", {\n rule: rule,\n groupCount: matchcount - 1\n });\n rule.token = rule.token[0];\n }\n else {\n rule.tokenArray = rule.token;\n rule.token = null;\n rule.onMatch = this.$arrayTokens;\n }\n }\n else if (typeof rule.token == \"function\" && !rule.onMatch) {\n if (matchcount > 1)\n rule.onMatch = this.$applyToken;\n else\n rule.onMatch = rule.token;\n }\n if (matchcount > 1) {\n if (/\\\\\\d/.test(rule.regex)) {\n adjustedregex = rule.regex.replace(/\\\\([0-9]+)/g, function (match, digit) {\n return \"\\\\\" + (parseInt(digit, 10) + matchTotal + 1);\n });\n }\n else {\n matchcount = 1;\n adjustedregex = this.removeCapturingGroups(rule.regex);\n }\n if (!rule.splitRegex && typeof rule.token != \"string\")\n splitterRurles.push(rule); // flag will be known only at the very end\n }\n mapping[matchTotal] = i;\n matchTotal += matchcount;\n ruleRegExps.push(adjustedregex);\n if (!rule.onMatch)\n rule.onMatch = null;\n }\n if (!ruleRegExps.length) {\n mapping[0] = 0;\n ruleRegExps.push(\"$\");\n }\n splitterRurles.forEach(function (rule) {\n rule.splitRegex = this.createSplitterRegexp(rule.regex, flag);\n }, this);\n this.regExps[key] = new RegExp(\"(\" + ruleRegExps.join(\")|(\") + \")|($)\", flag);\n }\n }\n Tokenizer.prototype.$setMaxTokenCount = function (m) {\n MAX_TOKEN_COUNT = m | 0;\n };\n Tokenizer.prototype.$applyToken = function (str) {\n var values = this.splitRegex.exec(str).slice(1);\n var types = this.token.apply(this, values);\n if (typeof types === \"string\")\n return [{ type: types, value: str }];\n var tokens = [];\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.$arrayTokens = function (str) {\n if (!str)\n return [];\n var values = this.splitRegex.exec(str);\n if (!values)\n return \"text\";\n var tokens = [];\n var types = this.tokenArray;\n for (var i = 0, l = types.length; i < l; i++) {\n if (values[i + 1])\n tokens[tokens.length] = {\n type: types[i],\n value: values[i + 1]\n };\n }\n return tokens;\n };\n Tokenizer.prototype.removeCapturingGroups = function (src) {\n var r = src.replace(/\\\\.|\\[(?:\\\\.|[^\\\\\\]])*|\\(\\?[:=!<]|(\\()/g, function (x, y) { return y ? \"(?:\" : x; });\n return r;\n };\n Tokenizer.prototype.createSplitterRegexp = function (src, flag) {\n if (src.indexOf(\"(?=\") != -1) {\n var stack = 0;\n var inChClass = false;\n var lastCapture = {};\n src.replace(/(\\\\.)|(\\((?:\\?[=!])?)|(\\))|([\\[\\]])/g, function (m, esc, parenOpen, parenClose, square, index) {\n if (inChClass) {\n inChClass = square != \"]\";\n }\n else if (square) {\n inChClass = true;\n }\n else if (parenClose) {\n if (stack == lastCapture.stack) {\n lastCapture.end = index + 1;\n lastCapture.stack = -1;\n }\n stack--;\n }\n else if (parenOpen) {\n stack++;\n if (parenOpen.length != 1) {\n lastCapture.stack = stack;\n lastCapture.start = index;\n }\n }\n return m;\n });\n if (lastCapture.end != null && /^\\)*$/.test(src.substr(lastCapture.end)))\n src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end);\n }\n if (src.charAt(0) != \"^\")\n src = \"^\" + src;\n if (src.charAt(src.length - 1) != \"$\")\n src += \"$\";\n return new RegExp(src, (flag || \"\").replace(\"g\", \"\"));\n };\n Tokenizer.prototype.getLineTokens = function (line, startState) {\n if (startState && typeof startState != \"string\") {\n var stack = startState.slice(0);\n startState = stack[0];\n if (startState === \"#tmp\") {\n stack.shift();\n startState = stack.shift();\n }\n }\n else\n var stack = [];\n var currentState = startState || \"start\";\n var state = this.states[currentState];\n if (!state) {\n currentState = \"start\";\n state = this.states[currentState];\n }\n var mapping = this.matchMappings[currentState];\n var re = this.regExps[currentState];\n re.lastIndex = 0;\n var match, tokens = [];\n var lastIndex = 0;\n var matchAttempts = 0;\n var token = { type: null, value: \"\" };\n while (match = re.exec(line)) {\n var type = mapping.defaultToken;\n var rule = null;\n var value = match[0];\n var index = re.lastIndex;\n if (index - value.length > lastIndex) {\n var skipped = line.substring(lastIndex, index - value.length);\n if (token.type == type) {\n token.value += skipped;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: skipped };\n }\n }\n for (var i = 0; i < match.length - 2; i++) {\n if (match[i + 1] === undefined)\n continue;\n rule = state[mapping[i]];\n if (rule.onMatch)\n type = rule.onMatch(value, currentState, stack, line);\n else\n type = rule.token;\n if (rule.next) {\n if (typeof rule.next == \"string\") {\n currentState = rule.next;\n }\n else {\n currentState = rule.next(currentState, stack);\n }\n state = this.states[currentState];\n if (!state) {\n this.reportError(\"state doesn't exist\", currentState);\n currentState = \"start\";\n state = this.states[currentState];\n }\n mapping = this.matchMappings[currentState];\n lastIndex = index;\n re = this.regExps[currentState];\n re.lastIndex = index;\n }\n if (rule.consumeLineEnd)\n lastIndex = index;\n break;\n }\n if (value) {\n if (typeof type === \"string\") {\n if ((!rule || rule.merge !== false) && token.type === type) {\n token.value += value;\n }\n else {\n if (token.type)\n tokens.push(token);\n token = { type: type, value: value };\n }\n }\n else if (type) {\n if (token.type)\n tokens.push(token);\n token = { type: null, value: \"\" };\n for (var i = 0; i < type.length; i++)\n tokens.push(type[i]);\n }\n }\n if (lastIndex == line.length)\n break;\n lastIndex = index;\n if (matchAttempts++ > MAX_TOKEN_COUNT) {\n if (matchAttempts > 2 * line.length) {\n this.reportError(\"infinite loop with in ace tokenizer\", {\n startState: startState,\n line: line\n });\n }\n while (lastIndex < line.length) {\n if (token.type)\n tokens.push(token);\n token = {\n value: line.substring(lastIndex, lastIndex += 500),\n type: \"overflow\"\n };\n }\n currentState = \"start\";\n stack = [];\n break;\n }\n }\n if (token.type)\n tokens.push(token);\n if (stack.length > 1) {\n if (stack[0] !== currentState)\n stack.unshift(\"#tmp\", currentState);\n }\n return {\n tokens: tokens,\n state: stack.length ? stack : currentState\n };\n };\n return Tokenizer;\n}());\nTokenizer.prototype.reportError = config.reportError;\nexports.Tokenizer = Tokenizer;\n\n});\n\nace.define(\"ace/mode/text_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar TextHighlightRules = function () {\n this.$rules = {\n \"start\": [{\n token: \"empty_line\",\n regex: '^$'\n }, {\n defaultToken: \"text\"\n }]\n };\n};\n(function () {\n this.addRules = function (rules, prefix) {\n if (!prefix) {\n for (var key in rules)\n this.$rules[key] = rules[key];\n return;\n }\n for (var key in rules) {\n var state = rules[key];\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n if (rule.next || rule.onMatch) {\n if (typeof rule.next == \"string\") {\n if (rule.next.indexOf(prefix) !== 0)\n rule.next = prefix + rule.next;\n }\n if (rule.nextState && rule.nextState.indexOf(prefix) !== 0)\n rule.nextState = prefix + rule.nextState;\n }\n }\n this.$rules[prefix + key] = state;\n }\n };\n this.getRules = function () {\n return this.$rules;\n };\n this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) {\n var embedRules = typeof HighlightRules == \"function\"\n ? new HighlightRules().getRules()\n : HighlightRules;\n if (states) {\n for (var i = 0; i < states.length; i++)\n states[i] = prefix + states[i];\n }\n else {\n states = [];\n for (var key in embedRules)\n states.push(prefix + key);\n }\n this.addRules(embedRules, prefix);\n if (escapeRules) {\n var addRules = Array.prototype[append ? \"push\" : \"unshift\"];\n for (var i = 0; i < states.length; i++)\n addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules));\n }\n if (!this.$embeds)\n this.$embeds = [];\n this.$embeds.push(prefix);\n };\n this.getEmbeds = function () {\n return this.$embeds;\n };\n var pushState = function (currentState, stack) {\n if (currentState != \"start\" || stack.length)\n stack.unshift(this.nextState, currentState);\n return this.nextState;\n };\n var popState = function (currentState, stack) {\n stack.shift();\n return stack.shift() || \"start\";\n };\n this.normalizeRules = function () {\n var id = 0;\n var rules = this.$rules;\n function processState(key) {\n var state = rules[key];\n state.processed = true;\n for (var i = 0; i < state.length; i++) {\n var rule = state[i];\n var toInsert = null;\n if (Array.isArray(rule)) {\n toInsert = rule;\n rule = {};\n }\n if (!rule.regex && rule.start) {\n rule.regex = rule.start;\n if (!rule.next)\n rule.next = [];\n rule.next.push({\n defaultToken: rule.token\n }, {\n token: rule.token + \".end\",\n regex: rule.end || rule.start,\n next: \"pop\"\n });\n rule.token = rule.token + \".start\";\n rule.push = true;\n }\n var next = rule.next || rule.push;\n if (next && Array.isArray(next)) {\n var stateName = rule.stateName;\n if (!stateName) {\n stateName = rule.token;\n if (typeof stateName != \"string\")\n stateName = stateName[0] || \"\";\n if (rules[stateName])\n stateName += id++;\n }\n rules[stateName] = next;\n rule.next = stateName;\n processState(stateName);\n }\n else if (next == \"pop\") {\n rule.next = popState;\n }\n if (rule.push) {\n rule.nextState = rule.next || rule.push;\n rule.next = pushState;\n delete rule.push;\n }\n if (rule.rules) {\n for (var r in rule.rules) {\n if (rules[r]) {\n if (rules[r].push)\n rules[r].push.apply(rules[r], rule.rules[r]);\n }\n else {\n rules[r] = rule.rules[r];\n }\n }\n }\n var includeName = typeof rule == \"string\" ? rule : rule.include;\n if (includeName) {\n if (includeName === \"$self\")\n includeName = \"start\";\n if (Array.isArray(includeName))\n toInsert = includeName.map(function (x) { return rules[x]; });\n else\n toInsert = rules[includeName];\n }\n if (toInsert) {\n var args = [i, 1].concat(toInsert);\n if (rule.noEscape)\n args = args.filter(function (x) { return !x.next; });\n state.splice.apply(state, args);\n i--;\n }\n if (rule.keywordMap) {\n rule.token = this.createKeywordMapper(rule.keywordMap, rule.defaultToken || \"text\", rule.caseInsensitive);\n delete rule.defaultToken;\n }\n }\n }\n Object.keys(rules).forEach(processState, this);\n };\n this.createKeywordMapper = function (map, defaultToken, ignoreCase, splitChar) {\n var keywords = Object.create(null);\n this.$keywordList = [];\n Object.keys(map).forEach(function (className) {\n var a = map[className];\n var list = a.split(splitChar || \"|\");\n for (var i = list.length; i--;) {\n var word = list[i];\n this.$keywordList.push(word);\n if (ignoreCase)\n word = word.toLowerCase();\n keywords[word] = className;\n }\n }, this);\n map = null;\n return ignoreCase\n ? function (value) { return keywords[value.toLowerCase()] || defaultToken; }\n : function (value) { return keywords[value] || defaultToken; };\n };\n this.getKeywords = function () {\n return this.$keywords;\n };\n}).call(TextHighlightRules.prototype);\nexports.TextHighlightRules = TextHighlightRules;\n\n});\n\nace.define(\"ace/mode/behaviour\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar Behaviour = function () {\n this.$behaviours = {};\n};\n(function () {\n this.add = function (name, action, callback) {\n switch (undefined) {\n case this.$behaviours:\n this.$behaviours = {};\n case this.$behaviours[name]:\n this.$behaviours[name] = {};\n }\n this.$behaviours[name][action] = callback;\n };\n this.addBehaviours = function (behaviours) {\n for (var key in behaviours) {\n for (var action in behaviours[key]) {\n this.add(key, action, behaviours[key][action]);\n }\n }\n };\n this.remove = function (name) {\n if (this.$behaviours && this.$behaviours[name]) {\n delete this.$behaviours[name];\n }\n };\n this.inherit = function (mode, filter) {\n if (typeof mode === \"function\") {\n var behaviours = new mode().getBehaviours(filter);\n }\n else {\n var behaviours = mode.getBehaviours(filter);\n }\n this.addBehaviours(behaviours);\n };\n this.getBehaviours = function (filter) {\n if (!filter) {\n return this.$behaviours;\n }\n else {\n var ret = {};\n for (var i = 0; i < filter.length; i++) {\n if (this.$behaviours[filter[i]]) {\n ret[filter[i]] = this.$behaviours[filter[i]];\n }\n }\n return ret;\n }\n };\n}).call(Behaviour.prototype);\nexports.Behaviour = Behaviour;\n\n});\n\nace.define(\"ace/token_iterator\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar TokenIterator = /** @class */ (function () {\n function TokenIterator(session, initialRow, initialColumn) {\n this.$session = session;\n this.$row = initialRow;\n this.$rowTokens = session.getTokens(initialRow);\n var token = session.getTokenAt(initialRow, initialColumn);\n this.$tokenIndex = token ? token.index : -1;\n }\n TokenIterator.prototype.stepBackward = function () {\n this.$tokenIndex -= 1;\n while (this.$tokenIndex < 0) {\n this.$row -= 1;\n if (this.$row < 0) {\n this.$row = 0;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = this.$rowTokens.length - 1;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.stepForward = function () {\n this.$tokenIndex += 1;\n var rowCount;\n while (this.$tokenIndex >= this.$rowTokens.length) {\n this.$row += 1;\n if (!rowCount)\n rowCount = this.$session.getLength();\n if (this.$row >= rowCount) {\n this.$row = rowCount - 1;\n return null;\n }\n this.$rowTokens = this.$session.getTokens(this.$row);\n this.$tokenIndex = 0;\n }\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentToken = function () {\n return this.$rowTokens[this.$tokenIndex];\n };\n TokenIterator.prototype.getCurrentTokenRow = function () {\n return this.$row;\n };\n TokenIterator.prototype.getCurrentTokenColumn = function () {\n var rowTokens = this.$rowTokens;\n var tokenIndex = this.$tokenIndex;\n var column = rowTokens[tokenIndex].start;\n if (column !== undefined)\n return column;\n column = 0;\n while (tokenIndex > 0) {\n tokenIndex -= 1;\n column += rowTokens[tokenIndex].value.length;\n }\n return column;\n };\n TokenIterator.prototype.getCurrentTokenPosition = function () {\n return { row: this.$row, column: this.getCurrentTokenColumn() };\n };\n TokenIterator.prototype.getCurrentTokenRange = function () {\n var token = this.$rowTokens[this.$tokenIndex];\n var column = this.getCurrentTokenColumn();\n return new Range(this.$row, column, this.$row, column + token.value.length);\n };\n return TokenIterator;\n}());\nexports.TokenIterator = TokenIterator;\n\n});\n\nace.define(\"ace/mode/behaviour/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Behaviour = require(\"../behaviour\").Behaviour;\nvar TokenIterator = require(\"../../token_iterator\").TokenIterator;\nvar lang = require(\"../../lib/lang\");\nvar SAFE_INSERT_IN_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\"];\nvar SAFE_INSERT_BEFORE_TOKENS = [\"text\", \"paren.rparen\", \"rparen\", \"paren\", \"punctuation.operator\", \"comment\"];\nvar context;\nvar contextCache = {};\nvar defaultQuotes = { '\"': '\"', \"'\": \"'\" };\nvar initContext = function (editor) {\n var id = -1;\n if (editor.multiSelect) {\n id = editor.selection.index;\n if (contextCache.rangeCount != editor.multiSelect.rangeCount)\n contextCache = { rangeCount: editor.multiSelect.rangeCount };\n }\n if (contextCache[id])\n return context = contextCache[id];\n context = contextCache[id] = {\n autoInsertedBrackets: 0,\n autoInsertedRow: -1,\n autoInsertedLineEnd: \"\",\n maybeInsertedBrackets: 0,\n maybeInsertedRow: -1,\n maybeInsertedLineStart: \"\",\n maybeInsertedLineEnd: \"\"\n };\n};\nvar getWrapped = function (selection, selected, opening, closing) {\n var rowDiff = selection.end.row - selection.start.row;\n return {\n text: opening + selected + closing,\n selection: [\n 0,\n selection.start.column + 1,\n rowDiff,\n selection.end.column + (rowDiff ? 0 : 1)\n ]\n };\n};\nvar CstyleBehaviour = function (options) {\n options = options || {};\n this.add(\"braces\", \"insertion\", function (state, action, editor, session, text) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (text == '{') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && selected !== \"{\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '{', '}');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n if (/[\\]\\}\\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options.braces) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"}\");\n return {\n text: '{}',\n selection: [1, 1]\n };\n }\n else {\n CstyleBehaviour.recordMaybeInsert(editor, session, \"{\");\n return {\n text: '{',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == '}') {\n initContext(editor);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == '}') {\n var matching = session.$findOpeningBracket('}', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n else if (text == \"\\n\" || text == \"\\r\\n\") {\n initContext(editor);\n var closing = \"\";\n if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) {\n closing = lang.stringRepeat(\"}\", context.maybeInsertedBrackets);\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === '}') {\n var openBracePos = session.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 }, '}');\n if (!openBracePos)\n return null;\n var next_indent = this.$getIndent(session.getLine(openBracePos.row));\n }\n else if (closing) {\n var next_indent = this.$getIndent(line);\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n return;\n }\n var indent = next_indent + session.getTabString();\n return {\n text: '\\n' + indent + '\\n' + next_indent + closing,\n selection: [1, indent.length, 1, indent.length]\n };\n }\n else {\n CstyleBehaviour.clearMaybeInsertedClosing();\n }\n });\n this.add(\"braces\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '{') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar == '}') {\n range.end.column++;\n return range;\n }\n else {\n context.maybeInsertedBrackets--;\n }\n }\n });\n this.add(\"parens\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '(') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '(', ')');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \")\");\n return {\n text: '()',\n selection: [1, 1]\n };\n }\n }\n else if (text == ')') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ')') {\n var matching = session.$findOpeningBracket(')', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"parens\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '(') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ')') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"brackets\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '[') {\n initContext(editor);\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, '[', ']');\n }\n else if (CstyleBehaviour.isSaneInsertion(editor, session)) {\n CstyleBehaviour.recordAutoInsert(editor, session, \"]\");\n return {\n text: '[]',\n selection: [1, 1]\n };\n }\n }\n else if (text == ']') {\n initContext(editor);\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar == ']') {\n var matching = session.$findOpeningBracket(']', { column: cursor.column + 1, row: cursor.row });\n if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) {\n CstyleBehaviour.popAutoInsertedClosing();\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n }\n });\n this.add(\"brackets\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected == '[') {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == ']') {\n range.end.column++;\n return range;\n }\n }\n });\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n if (text.length == 1 && quotes[text]) {\n if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1)\n return;\n initContext(editor);\n var quote = text;\n var selection = editor.getSelectionRange();\n var selected = session.doc.getTextRange(selection);\n if (selected !== \"\" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) {\n return getWrapped(selection, selected, quote, quote);\n }\n else if (!selected) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var leftChar = line.substring(cursor.column - 1, cursor.column);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var token = session.getTokenAt(cursor.row, cursor.column);\n var rightToken = session.getTokenAt(cursor.row, cursor.column + 1);\n if (leftChar == \"\\\\\" && token && /escape/.test(token.type))\n return null;\n var stringBefore = token && /string|escape/.test(token.type);\n var stringAfter = !rightToken || /string|escape/.test(rightToken.type);\n var pair;\n if (rightChar == quote) {\n pair = stringBefore !== stringAfter;\n if (pair && /string\\.end/.test(rightToken.type))\n pair = false;\n }\n else {\n if (stringBefore && !stringAfter)\n return null; // wrap string with different quote\n if (stringBefore && stringAfter)\n return null; // do not pair quotes inside strings\n var wordRe = session.$mode.tokenRe;\n wordRe.lastIndex = 0;\n var isWordBefore = wordRe.test(leftChar);\n wordRe.lastIndex = 0;\n var isWordAfter = wordRe.test(rightChar);\n var pairQuotesAfter = session.$mode.$pairQuotesAfter;\n var shouldPairQuotes = pairQuotesAfter && pairQuotesAfter[quote] && pairQuotesAfter[quote].test(leftChar);\n if ((!shouldPairQuotes && isWordBefore) || isWordAfter)\n return null; // before or after alphanumeric\n if (rightChar && !/[\\s;,.})\\]\\\\]/.test(rightChar))\n return null; // there is rightChar and it isn't closing\n var charBefore = line[cursor.column - 2];\n if (leftChar == quote && (charBefore == quote || wordRe.test(charBefore)))\n return null;\n pair = true;\n }\n return {\n text: pair ? quote + quote : \"\",\n selection: [1, 1]\n };\n }\n }\n });\n this.add(\"string_dquotes\", \"deletion\", function (state, action, editor, session, range) {\n var quotes = session.$mode.$quotes || defaultQuotes;\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) {\n initContext(editor);\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n if (options.closeDocComment !== false) {\n this.add(\"doc comment end\", \"insertion\", function (state, action, editor, session, text) {\n if (state === \"doc-start\" && (text === \"\\n\" || text === \"\\r\\n\") && editor.selection.isEmpty()) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var nextLine = session.doc.getLine(cursor.row + 1);\n var indent = this.$getIndent(line);\n if (/\\s*\\*/.test(nextLine)) {\n if (/^\\s*\\*/.test(line)) {\n return {\n text: text + indent + \"* \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n else {\n return {\n text: text + indent + \" * \",\n selection: [1, 3 + indent.length, 1, 3 + indent.length]\n };\n }\n }\n if (/\\/\\*\\*/.test(line.substring(0, cursor.column))) {\n return {\n text: text + indent + \" * \" + text + \" \" + indent + \"*/\",\n selection: [1, 4 + indent.length, 1, 4 + indent.length]\n };\n }\n }\n });\n }\n};\nCstyleBehaviour.isSaneInsertion = function (editor, session) {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n if (!this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS)) {\n if (/[)}\\]]/.test(editor.session.getLine(cursor.row)[cursor.column]))\n return true;\n var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1);\n if (!this.$matchTokenType(iterator2.getCurrentToken() || \"text\", SAFE_INSERT_IN_TOKENS))\n return false;\n }\n iterator.stepForward();\n return iterator.getCurrentTokenRow() !== cursor.row ||\n this.$matchTokenType(iterator.getCurrentToken() || \"text\", SAFE_INSERT_BEFORE_TOKENS);\n};\nCstyleBehaviour.$matchTokenType = function (token, types) {\n return types.indexOf(token.type || token) > -1;\n};\nCstyleBehaviour.recordAutoInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0]))\n context.autoInsertedBrackets = 0;\n context.autoInsertedRow = cursor.row;\n context.autoInsertedLineEnd = bracket + line.substr(cursor.column);\n context.autoInsertedBrackets++;\n};\nCstyleBehaviour.recordMaybeInsert = function (editor, session, bracket) {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n if (!this.isMaybeInsertedClosing(cursor, line))\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = cursor.row;\n context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket;\n context.maybeInsertedLineEnd = line.substr(cursor.column);\n context.maybeInsertedBrackets++;\n};\nCstyleBehaviour.isAutoInsertedClosing = function (cursor, line, bracket) {\n return context.autoInsertedBrackets > 0 &&\n cursor.row === context.autoInsertedRow &&\n bracket === context.autoInsertedLineEnd[0] &&\n line.substr(cursor.column) === context.autoInsertedLineEnd;\n};\nCstyleBehaviour.isMaybeInsertedClosing = function (cursor, line) {\n return context.maybeInsertedBrackets > 0 &&\n cursor.row === context.maybeInsertedRow &&\n line.substr(cursor.column) === context.maybeInsertedLineEnd &&\n line.substr(0, cursor.column) == context.maybeInsertedLineStart;\n};\nCstyleBehaviour.popAutoInsertedClosing = function () {\n context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1);\n context.autoInsertedBrackets--;\n};\nCstyleBehaviour.clearMaybeInsertedClosing = function () {\n if (context) {\n context.maybeInsertedBrackets = 0;\n context.maybeInsertedRow = -1;\n }\n};\noop.inherits(CstyleBehaviour, Behaviour);\nexports.CstyleBehaviour = CstyleBehaviour;\n\n});\n\nace.define(\"ace/unicode\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nvar wordChars = [48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30, 2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0, 2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0, 8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7, 61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15, 53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7, 6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3, 3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2, 1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8, 15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2, 2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2, 5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4, 2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3, 9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0, 9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0, 5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3, 1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2, 2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2, 0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73, 7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3, 40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3, 3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22, 12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29, 4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4, 11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62, 2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11, 71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3, 37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4, 2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0, 14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4, 4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1, 2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22, 10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0, 470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6, 40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68, 45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1, 38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4, 0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9, 7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13, 22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2, 12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53, 41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8, 25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2];\nvar code = 0;\nvar str = [];\nfor (var i = 0; i < wordChars.length; i += 2) {\n str.push(code += wordChars[i]);\n if (wordChars[i + 1])\n str.push(45, code += wordChars[i + 1]);\n}\nexports.wordChars = String.fromCharCode.apply(null, str);\n\n});\n\nace.define(\"ace/mode/text\",[\"require\",\"exports\",\"module\",\"ace/config\",\"ace/tokenizer\",\"ace/mode/text_highlight_rules\",\"ace/mode/behaviour/cstyle\",\"ace/unicode\",\"ace/lib/lang\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar config = require(\"../config\");\nvar Tokenizer = require(\"../tokenizer\").Tokenizer;\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar unicode = require(\"../unicode\");\nvar lang = require(\"../lib/lang\");\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nvar Mode = function () {\n this.HighlightRules = TextHighlightRules;\n};\n(function () {\n this.$defaultBehaviour = new CstyleBehaviour();\n this.tokenRe = new RegExp(\"^[\" + unicode.wordChars + \"\\\\$_]+\", \"g\");\n this.nonTokenRe = new RegExp(\"^(?:[^\" + unicode.wordChars + \"\\\\$_]|\\\\s])+\", \"g\");\n this.getTokenizer = function () {\n if (!this.$tokenizer) {\n this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig);\n this.$tokenizer = new Tokenizer(this.$highlightRules.getRules());\n }\n return this.$tokenizer;\n };\n this.lineCommentStart = \"\";\n this.blockComment = \"\";\n this.toggleCommentLines = function (state, session, startRow, endRow) {\n var doc = session.doc;\n var ignoreBlankLines = true;\n var shouldRemove = true;\n var minIndent = Infinity;\n var tabSize = session.getTabSize();\n var insertAtTabStop = false;\n if (!this.lineCommentStart) {\n if (!this.blockComment)\n return false;\n var lineCommentStart = this.blockComment.start;\n var lineCommentEnd = this.blockComment.end;\n var regexpStart = new RegExp(\"^(\\\\s*)(?:\" + lang.escapeRegExp(lineCommentStart) + \")\");\n var regexpEnd = new RegExp(\"(?:\" + lang.escapeRegExp(lineCommentEnd) + \")\\\\s*$\");\n var comment = function (line, i) {\n if (testRemove(line, i))\n return;\n if (!ignoreBlankLines || /\\S/.test(line)) {\n doc.insertInLine({ row: i, column: line.length }, lineCommentEnd);\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var uncomment = function (line, i) {\n var m;\n if (m = line.match(regexpEnd))\n doc.removeInLine(i, line.length - m[0].length, line.length);\n if (m = line.match(regexpStart))\n doc.removeInLine(i, m[1].length, m[0].length);\n };\n var testRemove = function (line, row) {\n if (regexpStart.test(line))\n return true;\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].type === \"comment\")\n return true;\n }\n };\n }\n else {\n if (Array.isArray(this.lineCommentStart)) {\n var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join(\"|\");\n var lineCommentStart = this.lineCommentStart[0];\n }\n else {\n var regexpStart = lang.escapeRegExp(this.lineCommentStart);\n var lineCommentStart = this.lineCommentStart;\n }\n regexpStart = new RegExp(\"^(\\\\s*)(?:\" + regexpStart + \") ?\");\n insertAtTabStop = session.getUseSoftTabs();\n var uncomment = function (line, i) {\n var m = line.match(regexpStart);\n if (!m)\n return;\n var start = m[1].length, end = m[0].length;\n if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == \" \")\n end--;\n doc.removeInLine(i, start, end);\n };\n var commentWithSpace = lineCommentStart + \" \";\n var comment = function (line, i) {\n if (!ignoreBlankLines || /\\S/.test(line)) {\n if (shouldInsertSpace(line, minIndent, minIndent))\n doc.insertInLine({ row: i, column: minIndent }, commentWithSpace);\n else\n doc.insertInLine({ row: i, column: minIndent }, lineCommentStart);\n }\n };\n var testRemove = function (line, i) {\n return regexpStart.test(line);\n };\n var shouldInsertSpace = function (line, before, after) {\n var spaces = 0;\n while (before-- && line.charAt(before) == \" \")\n spaces++;\n if (spaces % tabSize != 0)\n return false;\n var spaces = 0;\n while (line.charAt(after++) == \" \")\n spaces++;\n if (tabSize > 2)\n return spaces % tabSize != tabSize - 1;\n else\n return spaces % tabSize == 0;\n };\n }\n function iter(fun) {\n for (var i = startRow; i <= endRow; i++)\n fun(doc.getLine(i), i);\n }\n var minEmptyLength = Infinity;\n iter(function (line, i) {\n var indent = line.search(/\\S/);\n if (indent !== -1) {\n if (indent < minIndent)\n minIndent = indent;\n if (shouldRemove && !testRemove(line, i))\n shouldRemove = false;\n }\n else if (minEmptyLength > line.length) {\n minEmptyLength = line.length;\n }\n });\n if (minIndent == Infinity) {\n minIndent = minEmptyLength;\n ignoreBlankLines = false;\n shouldRemove = false;\n }\n if (insertAtTabStop && minIndent % tabSize != 0)\n minIndent = Math.floor(minIndent / tabSize) * tabSize;\n iter(shouldRemove ? uncomment : comment);\n };\n this.toggleBlockComment = function (state, session, range, cursor) {\n var comment = this.blockComment;\n if (!comment)\n return;\n if (!comment.start && comment[0])\n comment = comment[0];\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n var sel = session.selection;\n var initialRange = session.selection.toOrientedRange();\n var startRow, colDiff;\n if (token && /comment/.test(token.type)) {\n var startRange, endRange;\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.start);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n startRange = new Range(row, column, row, column + comment.start.length);\n break;\n }\n token = iterator.stepBackward();\n }\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n while (token && /comment/.test(token.type)) {\n var i = token.value.indexOf(comment.end);\n if (i != -1) {\n var row = iterator.getCurrentTokenRow();\n var column = iterator.getCurrentTokenColumn() + i;\n endRange = new Range(row, column, row, column + comment.end.length);\n break;\n }\n token = iterator.stepForward();\n }\n if (endRange)\n session.remove(endRange);\n if (startRange) {\n session.remove(startRange);\n startRow = startRange.start.row;\n colDiff = -comment.start.length;\n }\n }\n else {\n colDiff = comment.start.length;\n startRow = range.start.row;\n session.insert(range.end, comment.end);\n session.insert(range.start, comment.start);\n }\n if (initialRange.start.row == startRow)\n initialRange.start.column += colDiff;\n if (initialRange.end.row == startRow)\n initialRange.end.column += colDiff;\n session.selection.fromOrientedRange(initialRange);\n };\n this.getNextLineIndent = function (state, line, tab) {\n return this.$getIndent(line);\n };\n this.checkOutdent = function (state, line, input) {\n return false;\n };\n this.autoOutdent = function (state, doc, row) {\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n this.createWorker = function (session) {\n return null;\n };\n this.createModeDelegates = function (mapping) {\n this.$embeds = [];\n this.$modes = {};\n for (var i in mapping) {\n if (mapping[i]) {\n var Mode = mapping[i];\n var id = Mode.prototype.$id;\n var mode = config.$modes[id];\n if (!mode)\n config.$modes[id] = mode = new Mode();\n if (!config.$modes[i])\n config.$modes[i] = mode;\n this.$embeds.push(i);\n this.$modes[i] = mode;\n }\n }\n var delegations = [\"toggleBlockComment\", \"toggleCommentLines\", \"getNextLineIndent\",\n \"checkOutdent\", \"autoOutdent\", \"transformAction\", \"getCompletions\"];\n for (var i = 0; i < delegations.length; i++) {\n (function (scope) {\n var functionName = delegations[i];\n var defaultHandler = scope[functionName];\n scope[delegations[i]] = function () {\n return this.$delegator(functionName, arguments, defaultHandler);\n };\n }(this));\n }\n };\n this.$delegator = function (method, args, defaultHandler) {\n var state = args[0] || \"start\";\n if (typeof state != \"string\") {\n if (Array.isArray(state[2])) {\n var language = state[2][state[2].length - 1];\n var mode = this.$modes[language];\n if (mode)\n return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1)));\n }\n state = state[0] || \"start\";\n }\n for (var i = 0; i < this.$embeds.length; i++) {\n if (!this.$modes[this.$embeds[i]])\n continue;\n var split = state.split(this.$embeds[i]);\n if (!split[0] && split[1]) {\n args[0] = split[1];\n var mode = this.$modes[this.$embeds[i]];\n return mode[method].apply(mode, args);\n }\n }\n var ret = defaultHandler.apply(this, args);\n return defaultHandler ? ret : undefined;\n };\n this.transformAction = function (state, action, editor, session, param) {\n if (this.$behaviour) {\n var behaviours = this.$behaviour.getBehaviours();\n for (var key in behaviours) {\n if (behaviours[key][action]) {\n var ret = behaviours[key][action].apply(this, arguments);\n if (ret) {\n return ret;\n }\n }\n }\n }\n };\n this.getKeywords = function (append) {\n if (!this.completionKeywords) {\n var rules = this.$tokenizer.rules;\n var completionKeywords = [];\n for (var rule in rules) {\n var ruleItr = rules[rule];\n for (var r = 0, l = ruleItr.length; r < l; r++) {\n if (typeof ruleItr[r].token === \"string\") {\n if (/keyword|support|storage/.test(ruleItr[r].token))\n completionKeywords.push(ruleItr[r].regex);\n }\n else if (typeof ruleItr[r].token === \"object\") {\n for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) {\n if (/keyword|support|storage/.test(ruleItr[r].token[a])) {\n var rule = ruleItr[r].regex.match(/\\(.+?\\)/g)[a];\n completionKeywords.push(rule.substr(1, rule.length - 2));\n }\n }\n }\n }\n }\n this.completionKeywords = completionKeywords;\n }\n if (!append)\n return this.$keywordList;\n return completionKeywords.concat(this.$keywordList || []);\n };\n this.$createKeywordList = function () {\n if (!this.$highlightRules)\n this.getTokenizer();\n return this.$keywordList = this.$highlightRules.$keywordList || [];\n };\n this.getCompletions = function (state, session, pos, prefix) {\n var keywords = this.$keywordList || this.$createKeywordList();\n return keywords.map(function (word) {\n return {\n name: word,\n value: word,\n score: 0,\n meta: \"keyword\"\n };\n });\n };\n this.$id = \"ace/mode/text\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n});\n\nace.define(\"ace/apply_delta\",[\"require\",\"exports\",\"module\"], function(require, exports, module){\"use strict\";\nfunction throwDeltaError(delta, errorText) {\n console.log(\"Invalid Delta:\", delta);\n throw \"Invalid Delta: \" + errorText;\n}\nfunction positionInDocument(docLines, position) {\n return position.row >= 0 && position.row < docLines.length &&\n position.column >= 0 && position.column <= docLines[position.row].length;\n}\nfunction validateDelta(docLines, delta) {\n if (delta.action != \"insert\" && delta.action != \"remove\")\n throwDeltaError(delta, \"delta.action must be 'insert' or 'remove'\");\n if (!(delta.lines instanceof Array))\n throwDeltaError(delta, \"delta.lines must be an Array\");\n if (!delta.start || !delta.end)\n throwDeltaError(delta, \"delta.start/end must be an present\");\n var start = delta.start;\n if (!positionInDocument(docLines, delta.start))\n throwDeltaError(delta, \"delta.start must be contained in document\");\n var end = delta.end;\n if (delta.action == \"remove\" && !positionInDocument(docLines, end))\n throwDeltaError(delta, \"delta.end must contained in document for 'remove' actions\");\n var numRangeRows = end.row - start.row;\n var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0));\n if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars)\n throwDeltaError(delta, \"delta.range must match delta lines\");\n}\nexports.applyDelta = function (docLines, delta, doNotValidate) {\n var row = delta.start.row;\n var startColumn = delta.start.column;\n var line = docLines[row] || \"\";\n switch (delta.action) {\n case \"insert\":\n var lines = delta.lines;\n if (lines.length === 1) {\n docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn);\n }\n else {\n var args = [row, 1].concat(delta.lines);\n docLines.splice.apply(docLines, args);\n docLines[row] = line.substring(0, startColumn) + docLines[row];\n docLines[row + delta.lines.length - 1] += line.substring(startColumn);\n }\n break;\n case \"remove\":\n var endColumn = delta.end.column;\n var endRow = delta.end.row;\n if (row === endRow) {\n docLines[row] = line.substring(0, startColumn) + line.substring(endColumn);\n }\n else {\n docLines.splice(row, endRow - row + 1, line.substring(0, startColumn) + docLines[endRow].substring(endColumn));\n }\n break;\n }\n};\n\n});\n\nace.define(\"ace/anchor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Anchor = /** @class */ (function () {\n function Anchor(doc, row, column) {\n this.$onChange = this.onChange.bind(this);\n this.attach(doc);\n if (typeof column == \"undefined\")\n this.setPosition(row.row, row.column);\n else\n this.setPosition(row, column);\n }\n Anchor.prototype.getPosition = function () {\n return this.$clipPositionToDocument(this.row, this.column);\n };\n Anchor.prototype.getDocument = function () {\n return this.document;\n };\n Anchor.prototype.onChange = function (delta) {\n if (delta.start.row == delta.end.row && delta.start.row != this.row)\n return;\n if (delta.start.row > this.row)\n return;\n var point = $getTransformedPoint(delta, { row: this.row, column: this.column }, this.$insertRight);\n this.setPosition(point.row, point.column, true);\n };\n Anchor.prototype.setPosition = function (row, column, noClip) {\n var pos;\n if (noClip) {\n pos = {\n row: row,\n column: column\n };\n }\n else {\n pos = this.$clipPositionToDocument(row, column);\n }\n if (this.row == pos.row && this.column == pos.column)\n return;\n var old = {\n row: this.row,\n column: this.column\n };\n this.row = pos.row;\n this.column = pos.column;\n this._signal(\"change\", {\n old: old,\n value: pos\n });\n };\n Anchor.prototype.detach = function () {\n this.document.off(\"change\", this.$onChange);\n };\n Anchor.prototype.attach = function (doc) {\n this.document = doc || this.document;\n this.document.on(\"change\", this.$onChange);\n };\n Anchor.prototype.$clipPositionToDocument = function (row, column) {\n var pos = {};\n if (row >= this.document.getLength()) {\n pos.row = Math.max(0, this.document.getLength() - 1);\n pos.column = this.document.getLine(pos.row).length;\n }\n else if (row < 0) {\n pos.row = 0;\n pos.column = 0;\n }\n else {\n pos.row = row;\n pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));\n }\n if (column < 0)\n pos.column = 0;\n return pos;\n };\n return Anchor;\n}());\nAnchor.prototype.$insertRight = false;\noop.implement(Anchor.prototype, EventEmitter);\nfunction $pointsInOrder(point1, point2, equalPointsInOrder) {\n var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column;\n return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);\n}\nfunction $getTransformedPoint(delta, point, moveIfEqual) {\n var deltaIsInsert = delta.action == \"insert\";\n var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);\n var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);\n var deltaStart = delta.start;\n var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.\n if ($pointsInOrder(point, deltaStart, moveIfEqual)) {\n return {\n row: point.row,\n column: point.column\n };\n }\n if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) {\n return {\n row: point.row + deltaRowShift,\n column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0)\n };\n }\n return {\n row: deltaStart.row,\n column: deltaStart.column\n };\n}\nexports.Anchor = Anchor;\n\n});\n\nace.define(\"ace/document\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/apply_delta\",\"ace/lib/event_emitter\",\"ace/range\",\"ace/anchor\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar applyDelta = require(\"./apply_delta\").applyDelta;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Range = require(\"./range\").Range;\nvar Anchor = require(\"./anchor\").Anchor;\nvar Document = /** @class */ (function () {\n function Document(textOrLines) {\n this.$lines = [\"\"];\n if (textOrLines.length === 0) {\n this.$lines = [\"\"];\n }\n else if (Array.isArray(textOrLines)) {\n this.insertMergedLines({ row: 0, column: 0 }, textOrLines);\n }\n else {\n this.insert({ row: 0, column: 0 }, textOrLines);\n }\n }\n Document.prototype.setValue = function (text) {\n var len = this.getLength() - 1;\n this.remove(new Range(0, 0, len, this.getLine(len).length));\n this.insert({ row: 0, column: 0 }, text || \"\");\n };\n Document.prototype.getValue = function () {\n return this.getAllLines().join(this.getNewLineCharacter());\n };\n Document.prototype.createAnchor = function (row, column) {\n return new Anchor(this, row, column);\n };\n Document.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r\\n|\\r|\\n)/m);\n this.$autoNewLine = match ? match[1] : \"\\n\";\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineCharacter = function () {\n switch (this.$newLineMode) {\n case \"windows\":\n return \"\\r\\n\";\n case \"unix\":\n return \"\\n\";\n default:\n return this.$autoNewLine || \"\\n\";\n }\n };\n Document.prototype.setNewLineMode = function (newLineMode) {\n if (this.$newLineMode === newLineMode)\n return;\n this.$newLineMode = newLineMode;\n this._signal(\"changeNewLineMode\");\n };\n Document.prototype.getNewLineMode = function () {\n return this.$newLineMode;\n };\n Document.prototype.isNewLine = function (text) {\n return (text == \"\\r\\n\" || text == \"\\r\" || text == \"\\n\");\n };\n Document.prototype.getLine = function (row) {\n return this.$lines[row] || \"\";\n };\n Document.prototype.getLines = function (firstRow, lastRow) {\n return this.$lines.slice(firstRow, lastRow + 1);\n };\n Document.prototype.getAllLines = function () {\n return this.getLines(0, this.getLength());\n };\n Document.prototype.getLength = function () {\n return this.$lines.length;\n };\n Document.prototype.getTextRange = function (range) {\n return this.getLinesForRange(range).join(this.getNewLineCharacter());\n };\n Document.prototype.getLinesForRange = function (range) {\n var lines;\n if (range.start.row === range.end.row) {\n lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)];\n }\n else {\n lines = this.getLines(range.start.row, range.end.row);\n lines[0] = (lines[0] || \"\").substring(range.start.column);\n var l = lines.length - 1;\n if (range.end.row - range.start.row == l)\n lines[l] = lines[l].substring(0, range.end.column);\n }\n return lines;\n };\n Document.prototype.insertLines = function (row, lines) {\n console.warn(\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\");\n return this.insertFullLines(row, lines);\n };\n Document.prototype.removeLines = function (firstRow, lastRow) {\n console.warn(\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\");\n return this.removeFullLines(firstRow, lastRow);\n };\n Document.prototype.insertNewLine = function (position) {\n console.warn(\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\");\n return this.insertMergedLines(position, [\"\", \"\"]);\n };\n Document.prototype.insert = function (position, text) {\n if (this.getLength() <= 1)\n this.$detectNewLine(text);\n return this.insertMergedLines(position, this.$split(text));\n };\n Document.prototype.insertInLine = function (position, text) {\n var start = this.clippedPos(position.row, position.column);\n var end = this.pos(position.row, position.column + text.length);\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: [text]\n }, true);\n return this.clonePos(end);\n };\n Document.prototype.clippedPos = function (row, column) {\n var length = this.getLength();\n if (row === undefined) {\n row = length;\n }\n else if (row < 0) {\n row = 0;\n }\n else if (row >= length) {\n row = length - 1;\n column = undefined;\n }\n var line = this.getLine(row);\n if (column == undefined)\n column = line.length;\n column = Math.min(Math.max(column, 0), line.length);\n return { row: row, column: column };\n };\n Document.prototype.clonePos = function (pos) {\n return { row: pos.row, column: pos.column };\n };\n Document.prototype.pos = function (row, column) {\n return { row: row, column: column };\n };\n Document.prototype.$clipPosition = function (position) {\n var length = this.getLength();\n if (position.row >= length) {\n position.row = Math.max(0, length - 1);\n position.column = this.getLine(length - 1).length;\n }\n else {\n position.row = Math.max(0, position.row);\n position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length);\n }\n return position;\n };\n Document.prototype.insertFullLines = function (row, lines) {\n row = Math.min(Math.max(row, 0), this.getLength());\n var column = 0;\n if (row < this.getLength()) {\n lines = lines.concat([\"\"]);\n column = 0;\n }\n else {\n lines = [\"\"].concat(lines);\n row--;\n column = this.$lines[row].length;\n }\n this.insertMergedLines({ row: row, column: column }, lines);\n };\n Document.prototype.insertMergedLines = function (position, lines) {\n var start = this.clippedPos(position.row, position.column);\n var end = {\n row: start.row + lines.length - 1,\n column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length\n };\n this.applyDelta({\n start: start,\n end: end,\n action: \"insert\",\n lines: lines\n });\n return this.clonePos(end);\n };\n Document.prototype.remove = function (range) {\n var start = this.clippedPos(range.start.row, range.start.column);\n var end = this.clippedPos(range.end.row, range.end.column);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n });\n return this.clonePos(start);\n };\n Document.prototype.removeInLine = function (row, startColumn, endColumn) {\n var start = this.clippedPos(row, startColumn);\n var end = this.clippedPos(row, endColumn);\n this.applyDelta({\n start: start,\n end: end,\n action: \"remove\",\n lines: this.getLinesForRange({ start: start, end: end })\n }, true);\n return this.clonePos(start);\n };\n Document.prototype.removeFullLines = function (firstRow, lastRow) {\n firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1);\n lastRow = Math.min(Math.max(0, lastRow), this.getLength() - 1);\n var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0;\n var deleteLastNewLine = lastRow < this.getLength() - 1;\n var startRow = (deleteFirstNewLine ? firstRow - 1 : firstRow);\n var startCol = (deleteFirstNewLine ? this.getLine(startRow).length : 0);\n var endRow = (deleteLastNewLine ? lastRow + 1 : lastRow);\n var endCol = (deleteLastNewLine ? 0 : this.getLine(endRow).length);\n var range = new Range(startRow, startCol, endRow, endCol);\n var deletedLines = this.$lines.slice(firstRow, lastRow + 1);\n this.applyDelta({\n start: range.start,\n end: range.end,\n action: \"remove\",\n lines: this.getLinesForRange(range)\n });\n return deletedLines;\n };\n Document.prototype.removeNewLine = function (row) {\n if (row < this.getLength() - 1 && row >= 0) {\n this.applyDelta({\n start: this.pos(row, this.getLine(row).length),\n end: this.pos(row + 1, 0),\n action: \"remove\",\n lines: [\"\", \"\"]\n });\n }\n };\n Document.prototype.replace = function (range, text) {\n if (!(range instanceof Range))\n range = Range.fromPoints(range.start, range.end);\n if (text.length === 0 && range.isEmpty())\n return range.start;\n if (text == this.getTextRange(range))\n return range.end;\n this.remove(range);\n var end;\n if (text) {\n end = this.insert(range.start, text);\n }\n else {\n end = range.start;\n }\n return end;\n };\n Document.prototype.applyDeltas = function (deltas) {\n for (var i = 0; i < deltas.length; i++) {\n this.applyDelta(deltas[i]);\n }\n };\n Document.prototype.revertDeltas = function (deltas) {\n for (var i = deltas.length - 1; i >= 0; i--) {\n this.revertDelta(deltas[i]);\n }\n };\n Document.prototype.applyDelta = function (delta, doNotValidate) {\n var isInsert = delta.action == \"insert\";\n if (isInsert ? delta.lines.length <= 1 && !delta.lines[0]\n : !Range.comparePoints(delta.start, delta.end)) {\n return;\n }\n if (isInsert && delta.lines.length > 20000) {\n this.$splitAndapplyLargeDelta(delta, 20000);\n }\n else {\n applyDelta(this.$lines, delta, doNotValidate);\n this._signal(\"change\", delta);\n }\n };\n Document.prototype.$safeApplyDelta = function (delta) {\n var docLength = this.$lines.length;\n if (delta.action == \"remove\" && delta.start.row < docLength && delta.end.row < docLength\n || delta.action == \"insert\" && delta.start.row <= docLength) {\n this.applyDelta(delta);\n }\n };\n Document.prototype.$splitAndapplyLargeDelta = function (delta, MAX) {\n var lines = delta.lines;\n var l = lines.length - MAX + 1;\n var row = delta.start.row;\n var column = delta.start.column;\n for (var from = 0, to = 0; from < l; from = to) {\n to += MAX - 1;\n var chunk = lines.slice(from, to);\n chunk.push(\"\");\n this.applyDelta({\n start: this.pos(row + from, column),\n end: this.pos(row + to, column = 0),\n action: delta.action,\n lines: chunk\n }, true);\n }\n delta.lines = lines.slice(from);\n delta.start.row = row + from;\n delta.start.column = column;\n this.applyDelta(delta, true);\n };\n Document.prototype.revertDelta = function (delta) {\n this.$safeApplyDelta({\n start: this.clonePos(delta.start),\n end: this.clonePos(delta.end),\n action: (delta.action == \"insert\" ? \"remove\" : \"insert\"),\n lines: delta.lines.slice()\n });\n };\n Document.prototype.indexToPosition = function (index, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n for (var i = startRow || 0, l = lines.length; i < l; i++) {\n index -= lines[i].length + newlineLength;\n if (index < 0)\n return { row: i, column: index + lines[i].length + newlineLength };\n }\n return { row: l - 1, column: index + lines[l - 1].length + newlineLength };\n };\n Document.prototype.positionToIndex = function (pos, startRow) {\n var lines = this.$lines || this.getAllLines();\n var newlineLength = this.getNewLineCharacter().length;\n var index = 0;\n var row = Math.min(pos.row, lines.length);\n for (var i = startRow || 0; i < row; ++i)\n index += lines[i].length + newlineLength;\n return index + pos.column;\n };\n Document.prototype.$split = function (text) {\n return text.split(/\\r\\n|\\r|\\n/);\n };\n return Document;\n}());\nDocument.prototype.$autoNewLine = \"\";\nDocument.prototype.$newLineMode = \"auto\";\noop.implement(Document.prototype, EventEmitter);\nexports.Document = Document;\n\n});\n\nace.define(\"ace/background_tokenizer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar BackgroundTokenizer = /** @class */ (function () {\n function BackgroundTokenizer(tokenizer, editor) {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.tokenizer = tokenizer;\n var self = this;\n this.$worker = function () {\n if (!self.running) {\n return;\n }\n var workerStart = new Date();\n var currentLine = self.currentLine;\n var endLine = -1;\n var doc = self.doc;\n var startLine = currentLine;\n while (self.lines[currentLine])\n currentLine++;\n var len = doc.getLength();\n var processedLines = 0;\n self.running = false;\n while (currentLine < len) {\n self.$tokenizeRow(currentLine);\n endLine = currentLine;\n do {\n currentLine++;\n } while (self.lines[currentLine]);\n processedLines++;\n if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) {\n self.running = setTimeout(self.$worker, 20);\n break;\n }\n }\n self.currentLine = currentLine;\n if (endLine == -1)\n endLine = currentLine;\n if (startLine <= endLine)\n self.fireUpdateEvent(startLine, endLine);\n };\n }\n BackgroundTokenizer.prototype.setTokenizer = function (tokenizer) {\n this.tokenizer = tokenizer;\n this.lines = [];\n this.states = [];\n this.start(0);\n };\n BackgroundTokenizer.prototype.setDocument = function (doc) {\n this.doc = doc;\n this.lines = [];\n this.states = [];\n this.stop();\n };\n BackgroundTokenizer.prototype.fireUpdateEvent = function (firstRow, lastRow) {\n var data = {\n first: firstRow,\n last: lastRow\n };\n this._signal(\"update\", { data: data });\n };\n BackgroundTokenizer.prototype.start = function (startRow) {\n this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength());\n this.lines.splice(this.currentLine, this.lines.length);\n this.states.splice(this.currentLine, this.states.length);\n this.stop();\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.scheduleStart = function () {\n if (!this.running)\n this.running = setTimeout(this.$worker, 700);\n };\n BackgroundTokenizer.prototype.$updateOnChange = function (delta) {\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n this.lines[startRow] = null;\n }\n else if (delta.action == \"remove\") {\n this.lines.splice(startRow, len + 1, null);\n this.states.splice(startRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(startRow, 1);\n this.lines.splice.apply(this.lines, args);\n this.states.splice.apply(this.states, args);\n }\n this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength());\n this.stop();\n };\n BackgroundTokenizer.prototype.stop = function () {\n if (this.running)\n clearTimeout(this.running);\n this.running = false;\n };\n BackgroundTokenizer.prototype.getTokens = function (row) {\n return this.lines[row] || this.$tokenizeRow(row);\n };\n BackgroundTokenizer.prototype.getState = function (row) {\n if (this.currentLine == row)\n this.$tokenizeRow(row);\n return this.states[row] || \"start\";\n };\n BackgroundTokenizer.prototype.$tokenizeRow = function (row) {\n var line = this.doc.getLine(row);\n var state = this.states[row - 1];\n var data = this.tokenizer.getLineTokens(line, state, row);\n if (this.states[row] + \"\" !== data.state + \"\") {\n this.states[row] = data.state;\n this.lines[row + 1] = null;\n if (this.currentLine > row + 1)\n this.currentLine = row + 1;\n }\n else if (this.currentLine == row) {\n this.currentLine = row + 1;\n }\n return this.lines[row] = data.tokens;\n };\n BackgroundTokenizer.prototype.cleanup = function () {\n this.running = false;\n this.lines = [];\n this.states = [];\n this.currentLine = 0;\n this.removeAllListeners();\n };\n return BackgroundTokenizer;\n}());\noop.implement(BackgroundTokenizer.prototype, EventEmitter);\nexports.BackgroundTokenizer = BackgroundTokenizer;\n\n});\n\nace.define(\"ace/search_highlight\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar SearchHighlight = /** @class */ (function () {\n function SearchHighlight(regExp, clazz, type) {\n if (type === void 0) { type = \"text\"; }\n this.setRegexp(regExp);\n this.clazz = clazz;\n this.type = type;\n }\n SearchHighlight.prototype.setRegexp = function (regExp) {\n if (this.regExp + \"\" == regExp + \"\")\n return;\n this.regExp = regExp;\n this.cache = [];\n };\n SearchHighlight.prototype.update = function (html, markerLayer, session, config) {\n if (!this.regExp)\n return;\n var start = config.firstRow, end = config.lastRow;\n var renderedMarkerRanges = {};\n for (var i = start; i <= end; i++) {\n var ranges = this.cache[i];\n if (ranges == null) {\n ranges = lang.getMatchOffsets(session.getLine(i), this.regExp);\n if (ranges.length > this.MAX_RANGES)\n ranges = ranges.slice(0, this.MAX_RANGES);\n ranges = ranges.map(function (match) {\n return new Range(i, match.offset, i, match.offset + match.length);\n });\n this.cache[i] = ranges.length ? ranges : \"\";\n }\n for (var j = ranges.length; j--;) {\n var rangeToAddMarkerTo = ranges[j].toScreenRange(session);\n var rangeAsString = rangeToAddMarkerTo.toString();\n if (renderedMarkerRanges[rangeAsString])\n continue;\n renderedMarkerRanges[rangeAsString] = true;\n markerLayer.drawSingleLineMarker(html, rangeToAddMarkerTo, this.clazz, config);\n }\n }\n };\n return SearchHighlight;\n}());\nSearchHighlight.prototype.MAX_RANGES = 500;\nexports.SearchHighlight = SearchHighlight;\n\n});\n\nace.define(\"ace/edit_session/fold_line\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = /** @class */ (function () {\n function FoldLine(foldData, folds) {\n this.foldData = foldData;\n if (Array.isArray(folds)) {\n this.folds = folds;\n }\n else {\n folds = this.folds = [folds];\n }\n var last = folds[folds.length - 1];\n this.range = new Range(folds[0].start.row, folds[0].start.column, last.end.row, last.end.column);\n this.start = this.range.start;\n this.end = this.range.end;\n this.folds.forEach(function (fold) {\n fold.setFoldLine(this);\n }, this);\n }\n FoldLine.prototype.shiftRow = function (shift) {\n this.start.row += shift;\n this.end.row += shift;\n this.folds.forEach(function (fold) {\n fold.start.row += shift;\n fold.end.row += shift;\n });\n };\n FoldLine.prototype.addFold = function (fold) {\n if (fold.sameRow) {\n if (fold.start.row < this.startRow || fold.endRow > this.endRow) {\n throw new Error(\"Can't add a fold to this FoldLine as it has no connection\");\n }\n this.folds.push(fold);\n this.folds.sort(function (a, b) {\n return -a.range.compareEnd(b.start.row, b.start.column);\n });\n if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) {\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) {\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n }\n else if (fold.start.row == this.end.row) {\n this.folds.push(fold);\n this.end.row = fold.end.row;\n this.end.column = fold.end.column;\n }\n else if (fold.end.row == this.start.row) {\n this.folds.unshift(fold);\n this.start.row = fold.start.row;\n this.start.column = fold.start.column;\n }\n else {\n throw new Error(\"Trying to add fold to FoldRow that doesn't have a matching row\");\n }\n fold.foldLine = this;\n };\n FoldLine.prototype.containsRow = function (row) {\n return row >= this.start.row && row <= this.end.row;\n };\n FoldLine.prototype.walk = function (callback, endRow, endColumn) {\n var lastEnd = 0, folds = this.folds, fold, cmp, stop, isNewRow = true;\n if (endRow == null) {\n endRow = this.end.row;\n endColumn = this.end.column;\n }\n for (var i = 0; i < folds.length; i++) {\n fold = folds[i];\n cmp = fold.range.compareStart(endRow, endColumn);\n if (cmp == -1) {\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n return;\n }\n stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow);\n stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd);\n if (stop || cmp === 0) {\n return;\n }\n isNewRow = !fold.sameRow;\n lastEnd = fold.end.column;\n }\n callback(null, endRow, endColumn, lastEnd, isNewRow);\n };\n FoldLine.prototype.getNextFoldTo = function (row, column) {\n var fold, cmp;\n for (var i = 0; i < this.folds.length; i++) {\n fold = this.folds[i];\n cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n return {\n fold: fold,\n kind: \"after\"\n };\n }\n else if (cmp === 0) {\n return {\n fold: fold,\n kind: \"inside\"\n };\n }\n }\n return null;\n };\n FoldLine.prototype.addRemoveChars = function (row, column, len) {\n var ret = this.getNextFoldTo(row, column), fold, folds;\n if (ret) {\n fold = ret.fold;\n if (ret.kind == \"inside\"\n && fold.start.column != column\n && fold.start.row != row) {\n window.console && window.console.log(row, column, fold);\n }\n else if (fold.start.row == row) {\n folds = this.folds;\n var i = folds.indexOf(fold);\n if (i === 0) {\n this.start.column += len;\n }\n for (i; i < folds.length; i++) {\n fold = folds[i];\n fold.start.column += len;\n if (!fold.sameRow) {\n return;\n }\n fold.end.column += len;\n }\n this.end.column += len;\n }\n }\n };\n FoldLine.prototype.split = function (row, column) {\n var pos = this.getNextFoldTo(row, column);\n if (!pos || pos.kind == \"inside\")\n return null;\n var fold = pos.fold;\n var folds = this.folds;\n var foldData = this.foldData;\n var i = folds.indexOf(fold);\n var foldBefore = folds[i - 1];\n this.end.row = foldBefore.end.row;\n this.end.column = foldBefore.end.column;\n folds = folds.splice(i, folds.length - i);\n var newFoldLine = new FoldLine(foldData, folds);\n foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine);\n return newFoldLine;\n };\n FoldLine.prototype.merge = function (foldLineNext) {\n var folds = foldLineNext.folds;\n for (var i = 0; i < folds.length; i++) {\n this.addFold(folds[i]);\n }\n var foldData = this.foldData;\n foldData.splice(foldData.indexOf(foldLineNext), 1);\n };\n FoldLine.prototype.toString = function () {\n var ret = [this.range.toString() + \": [\"];\n this.folds.forEach(function (fold) {\n ret.push(\" \" + fold.toString());\n });\n ret.push(\"]\");\n return ret.join(\"\\n\");\n };\n FoldLine.prototype.idxToPosition = function (idx) {\n var lastFoldEndColumn = 0;\n for (var i = 0; i < this.folds.length; i++) {\n var fold = this.folds[i];\n idx -= fold.start.column - lastFoldEndColumn;\n if (idx < 0) {\n return {\n row: fold.start.row,\n column: fold.start.column + idx\n };\n }\n idx -= fold.placeholder.length;\n if (idx < 0) {\n return fold.start;\n }\n lastFoldEndColumn = fold.end.column;\n }\n return {\n row: this.end.row,\n column: this.end.column + idx\n };\n };\n return FoldLine;\n}());\nexports.FoldLine = FoldLine;\n\n});\n\nace.define(\"ace/range_list\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar comparePoints = Range.comparePoints;\nvar RangeList = /** @class */ (function () {\n function RangeList() {\n this.ranges = [];\n this.$bias = 1;\n }\n RangeList.prototype.pointIndex = function (pos, excludeEdges, startIndex) {\n var list = this.ranges;\n for (var i = startIndex || 0; i < list.length; i++) {\n var range = list[i];\n var cmpEnd = comparePoints(pos, range.end);\n if (cmpEnd > 0)\n continue;\n var cmpStart = comparePoints(pos, range.start);\n if (cmpEnd === 0)\n return excludeEdges && cmpStart !== 0 ? -i - 2 : i;\n if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges))\n return i;\n return -i - 1;\n }\n return -i - 1;\n };\n RangeList.prototype.add = function (range) {\n var excludeEdges = !range.isEmpty();\n var startIndex = this.pointIndex(range.start, excludeEdges);\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex(range.end, excludeEdges, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n else\n endIndex++;\n return this.ranges.splice(startIndex, endIndex - startIndex, range);\n };\n RangeList.prototype.addList = function (list) {\n var removed = [];\n for (var i = list.length; i--;) {\n removed.push.apply(removed, this.add(list[i]));\n }\n return removed;\n };\n RangeList.prototype.substractPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges.splice(i, 1);\n };\n RangeList.prototype.merge = function () {\n var removed = [];\n var list = this.ranges;\n list = list.sort(function (a, b) {\n return comparePoints(a.start, b.start);\n });\n var next = list[0], range;\n for (var i = 1; i < list.length; i++) {\n range = next;\n next = list[i];\n var cmp = comparePoints(range.end, next.start);\n if (cmp < 0)\n continue;\n if (cmp == 0 && !range.isEmpty() && !next.isEmpty())\n continue;\n if (comparePoints(range.end, next.end) < 0) {\n range.end.row = next.end.row;\n range.end.column = next.end.column;\n }\n list.splice(i, 1);\n removed.push(next);\n next = range;\n i--;\n }\n this.ranges = list;\n return removed;\n };\n RangeList.prototype.contains = function (row, column) {\n return this.pointIndex({ row: row, column: column }) >= 0;\n };\n RangeList.prototype.containsPoint = function (pos) {\n return this.pointIndex(pos) >= 0;\n };\n RangeList.prototype.rangeAtPoint = function (pos) {\n var i = this.pointIndex(pos);\n if (i >= 0)\n return this.ranges[i];\n };\n RangeList.prototype.clipRows = function (startRow, endRow) {\n var list = this.ranges;\n if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow)\n return [];\n var startIndex = this.pointIndex({ row: startRow, column: 0 });\n if (startIndex < 0)\n startIndex = -startIndex - 1;\n var endIndex = this.pointIndex({ row: endRow, column: 0 }, startIndex);\n if (endIndex < 0)\n endIndex = -endIndex - 1;\n var clipped = [];\n for (var i = startIndex; i < endIndex; i++) {\n clipped.push(list[i]);\n }\n return clipped;\n };\n RangeList.prototype.removeAll = function () {\n return this.ranges.splice(0, this.ranges.length);\n };\n RangeList.prototype.attach = function (session) {\n if (this.session)\n this.detach();\n this.session = session;\n this.onChange = this.$onChange.bind(this);\n this.session.on('change', this.onChange);\n };\n RangeList.prototype.detach = function () {\n if (!this.session)\n return;\n this.session.removeListener('change', this.onChange);\n this.session = null;\n };\n RangeList.prototype.$onChange = function (delta) {\n var start = delta.start;\n var end = delta.end;\n var startRow = start.row;\n var endRow = end.row;\n var ranges = this.ranges;\n for (var i = 0, n = ranges.length; i < n; i++) {\n var r = ranges[i];\n if (r.end.row >= startRow)\n break;\n }\n if (delta.action == \"insert\") {\n var lineDif = endRow - startRow;\n var colDiff = -start.column + end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > startRow)\n break;\n if (r.start.row == startRow && r.start.column >= start.column) {\n if (r.start.column == start.column && this.$bias <= 0) {\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n if (r.end.row == startRow && r.end.column >= start.column) {\n if (r.end.column == start.column && this.$bias < 0) {\n continue;\n }\n if (r.end.column == start.column && colDiff > 0 && i < n - 1) {\n if (r.end.column > r.start.column && r.end.column == ranges[i + 1].start.column)\n r.end.column -= colDiff;\n }\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n }\n else {\n var lineDif = startRow - endRow;\n var colDiff = start.column - end.column;\n for (; i < n; i++) {\n var r = ranges[i];\n if (r.start.row > endRow)\n break;\n if (r.end.row < endRow\n && (startRow < r.end.row\n || startRow == r.end.row && start.column < r.end.column)) {\n r.end.row = startRow;\n r.end.column = start.column;\n }\n else if (r.end.row == endRow) {\n if (r.end.column <= end.column) {\n if (lineDif || r.end.column > start.column) {\n r.end.column = start.column;\n r.end.row = start.row;\n }\n }\n else {\n r.end.column += colDiff;\n r.end.row += lineDif;\n }\n }\n else if (r.end.row > endRow) {\n r.end.row += lineDif;\n }\n if (r.start.row < endRow\n && (startRow < r.start.row\n || startRow == r.start.row && start.column < r.start.column)) {\n r.start.row = startRow;\n r.start.column = start.column;\n }\n else if (r.start.row == endRow) {\n if (r.start.column <= end.column) {\n if (lineDif || r.start.column > start.column) {\n r.start.column = start.column;\n r.start.row = start.row;\n }\n }\n else {\n r.start.column += colDiff;\n r.start.row += lineDif;\n }\n }\n else if (r.start.row > endRow) {\n r.start.row += lineDif;\n }\n }\n }\n if (lineDif != 0 && i < n) {\n for (; i < n; i++) {\n var r = ranges[i];\n r.start.row += lineDif;\n r.end.row += lineDif;\n }\n }\n };\n return RangeList;\n}());\nRangeList.prototype.comparePoints = comparePoints;\nexports.RangeList = RangeList;\n\n});\n\nace.define(\"ace/edit_session/fold\",[\"require\",\"exports\",\"module\",\"ace/range_list\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RangeList = require(\"../range_list\").RangeList;\nvar Fold = /** @class */ (function (_super) {\n __extends(Fold, _super);\n function Fold(range, placeholder) {\n var _this = _super.call(this) || this;\n _this.foldLine = null;\n _this.placeholder = placeholder;\n _this.range = range;\n _this.start = range.start;\n _this.end = range.end;\n _this.sameRow = range.start.row == range.end.row;\n _this.subFolds = _this.ranges = [];\n return _this;\n }\n Fold.prototype.toString = function () {\n return '\"' + this.placeholder + '\" ' + this.range.toString();\n };\n Fold.prototype.setFoldLine = function (foldLine) {\n this.foldLine = foldLine;\n this.subFolds.forEach(function (fold) {\n fold.setFoldLine(foldLine);\n });\n };\n Fold.prototype.clone = function () {\n var range = this.range.clone();\n var fold = new Fold(range, this.placeholder);\n this.subFolds.forEach(function (subFold) {\n fold.subFolds.push(subFold.clone());\n });\n fold.collapseChildren = this.collapseChildren;\n return fold;\n };\n Fold.prototype.addSubFold = function (fold) {\n if (this.range.isEqual(fold))\n return;\n consumeRange(fold, this.start);\n var row = fold.start.row, column = fold.start.column;\n for (var i = 0, cmp = -1; i < this.subFolds.length; i++) {\n cmp = this.subFolds[i].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n var afterStart = this.subFolds[i];\n var firstConsumed = 0;\n if (cmp == 0) {\n if (afterStart.range.containsRange(fold))\n return afterStart.addSubFold(fold);\n else\n firstConsumed = 1;\n }\n var row = fold.range.end.row, column = fold.range.end.column;\n for (var j = i, cmp = -1; j < this.subFolds.length; j++) {\n cmp = this.subFolds[j].range.compare(row, column);\n if (cmp != 1)\n break;\n }\n if (cmp == 0)\n j++;\n var consumedFolds = this.subFolds.splice(i, j - i, fold);\n var last = cmp == 0 ? consumedFolds.length - 1 : consumedFolds.length;\n for (var k = firstConsumed; k < last; k++) {\n fold.addSubFold(consumedFolds[k]);\n }\n fold.setFoldLine(this.foldLine);\n return fold;\n };\n Fold.prototype.restoreRange = function (range) {\n return restoreRange(range, this.start);\n };\n return Fold;\n}(RangeList));\nfunction consumePoint(point, anchor) {\n point.row -= anchor.row;\n if (point.row == 0)\n point.column -= anchor.column;\n}\nfunction consumeRange(range, anchor) {\n consumePoint(range.start, anchor);\n consumePoint(range.end, anchor);\n}\nfunction restorePoint(point, anchor) {\n if (point.row == 0)\n point.column += anchor.column;\n point.row += anchor.row;\n}\nfunction restoreRange(range, anchor) {\n restorePoint(range.start, anchor);\n restorePoint(range.end, anchor);\n}\nexports.Fold = Fold;\n\n});\n\nace.define(\"ace/edit_session/folding\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/edit_session/fold_line\",\"ace/edit_session/fold\",\"ace/token_iterator\",\"ace/mouse/mouse_event\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar FoldLine = require(\"./fold_line\").FoldLine;\nvar Fold = require(\"./fold\").Fold;\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar MouseEvent = require(\"../mouse/mouse_event\").MouseEvent;\nfunction Folding() {\n this.getFoldAt = function (row, column, side) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine)\n return null;\n var folds = foldLine.folds;\n for (var i = 0; i < folds.length; i++) {\n var range = folds[i].range;\n if (range.contains(row, column)) {\n if (side == 1 && range.isEnd(row, column) && !range.isEmpty()) {\n continue;\n }\n else if (side == -1 && range.isStart(row, column) && !range.isEmpty()) {\n continue;\n }\n return folds[i];\n }\n }\n };\n this.getFoldsInRange = function (range) {\n var start = range.start;\n var end = range.end;\n var foldLines = this.$foldData;\n var foundFolds = [];\n start.column += 1;\n end.column -= 1;\n for (var i = 0; i < foldLines.length; i++) {\n var cmp = foldLines[i].range.compareRange(range);\n if (cmp == 2) {\n continue;\n }\n else if (cmp == -2) {\n break;\n }\n var folds = foldLines[i].folds;\n for (var j = 0; j < folds.length; j++) {\n var fold = folds[j];\n cmp = fold.range.compareRange(range);\n if (cmp == -2) {\n break;\n }\n else if (cmp == 2) {\n continue;\n }\n else \n if (cmp == 42) {\n break;\n }\n foundFolds.push(fold);\n }\n }\n start.column -= 1;\n end.column += 1;\n return foundFolds;\n };\n this.getFoldsInRangeList = function (ranges) {\n if (Array.isArray(ranges)) {\n var folds = [];\n ranges.forEach(function (range) {\n folds = folds.concat(this.getFoldsInRange(range));\n }, this);\n }\n else {\n var folds = this.getFoldsInRange(ranges);\n }\n return folds;\n };\n this.getAllFolds = function () {\n var folds = [];\n var foldLines = this.$foldData;\n for (var i = 0; i < foldLines.length; i++)\n for (var j = 0; j < foldLines[i].folds.length; j++)\n folds.push(foldLines[i].folds[j]);\n return folds;\n };\n this.getFoldStringAt = function (row, column, trim, foldLine) {\n foldLine = foldLine || this.getFoldLine(row);\n if (!foldLine)\n return null;\n var lastFold = {\n end: { column: 0 }\n };\n var str, fold;\n for (var i = 0; i < foldLine.folds.length; i++) {\n fold = foldLine.folds[i];\n var cmp = fold.range.compareEnd(row, column);\n if (cmp == -1) {\n str = this\n .getLine(fold.start.row)\n .substring(lastFold.end.column, fold.start.column);\n break;\n }\n else if (cmp === 0) {\n return null;\n }\n lastFold = fold;\n }\n if (!str)\n str = this.getLine(fold.start.row).substring(lastFold.end.column);\n if (trim == -1)\n return str.substring(0, column - lastFold.end.column);\n else if (trim == 1)\n return str.substring(column - lastFold.end.column);\n else\n return str;\n };\n this.getFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) {\n return foldLine;\n }\n else if (foldLine.end.row > docRow) {\n return null;\n }\n }\n return null;\n };\n this.getNextFoldLine = function (docRow, startFoldLine) {\n var foldData = this.$foldData;\n var i = 0;\n if (startFoldLine)\n i = foldData.indexOf(startFoldLine);\n if (i == -1)\n i = 0;\n for (i; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (foldLine.end.row >= docRow) {\n return foldLine;\n }\n }\n return null;\n };\n this.getFoldedRowCount = function (first, last) {\n var foldData = this.$foldData, rowCount = last - first + 1;\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i], end = foldLine.end.row, start = foldLine.start.row;\n if (end >= last) {\n if (start < last) {\n if (start >= first)\n rowCount -= last - start;\n else\n rowCount = 0; // in one fold\n }\n break;\n }\n else if (end >= first) {\n if (start >= first) // fold inside range\n rowCount -= end - start;\n else\n rowCount -= end - first + 1;\n }\n }\n return rowCount;\n };\n this.$addFoldLine = function (foldLine) {\n this.$foldData.push(foldLine);\n this.$foldData.sort(function (a, b) {\n return a.start.row - b.start.row;\n });\n return foldLine;\n };\n this.addFold = function (placeholder, range) {\n var foldData = this.$foldData;\n var added = false;\n var fold;\n if (placeholder instanceof Fold)\n fold = placeholder;\n else {\n fold = new Fold(range, placeholder);\n fold.collapseChildren = range.collapseChildren;\n }\n this.$clipRangeToDocument(fold.range);\n var startRow = fold.start.row;\n var startColumn = fold.start.column;\n var endRow = fold.end.row;\n var endColumn = fold.end.column;\n var startFold = this.getFoldAt(startRow, startColumn, 1);\n var endFold = this.getFoldAt(endRow, endColumn, -1);\n if (startFold && endFold == startFold)\n return startFold.addSubFold(fold);\n if (startFold && !startFold.range.isStart(startRow, startColumn))\n this.removeFold(startFold);\n if (endFold && !endFold.range.isEnd(endRow, endColumn))\n this.removeFold(endFold);\n var folds = this.getFoldsInRange(fold.range);\n if (folds.length > 0) {\n this.removeFolds(folds);\n if (!fold.collapseChildren) {\n folds.forEach(function (subFold) {\n fold.addSubFold(subFold);\n });\n }\n }\n for (var i = 0; i < foldData.length; i++) {\n var foldLine = foldData[i];\n if (endRow == foldLine.start.row) {\n foldLine.addFold(fold);\n added = true;\n break;\n }\n else if (startRow == foldLine.end.row) {\n foldLine.addFold(fold);\n added = true;\n if (!fold.sameRow) {\n var foldLineNext = foldData[i + 1];\n if (foldLineNext && foldLineNext.start.row == endRow) {\n foldLine.merge(foldLineNext);\n break;\n }\n }\n break;\n }\n else if (endRow <= foldLine.start.row) {\n break;\n }\n }\n if (!added)\n foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold));\n if (this.$useWrapMode)\n this.$updateWrapData(foldLine.start.row, foldLine.start.row);\n else\n this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row);\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"add\" });\n return fold;\n };\n this.addFolds = function (folds) {\n folds.forEach(function (fold) {\n this.addFold(fold);\n }, this);\n };\n this.removeFold = function (fold) {\n var foldLine = fold.foldLine;\n var startRow = foldLine.start.row;\n var endRow = foldLine.end.row;\n var foldLines = this.$foldData;\n var folds = foldLine.folds;\n if (folds.length == 1) {\n foldLines.splice(foldLines.indexOf(foldLine), 1);\n }\n else \n if (foldLine.range.isEnd(fold.end.row, fold.end.column)) {\n folds.pop();\n foldLine.end.row = folds[folds.length - 1].end.row;\n foldLine.end.column = folds[folds.length - 1].end.column;\n }\n else \n if (foldLine.range.isStart(fold.start.row, fold.start.column)) {\n folds.shift();\n foldLine.start.row = folds[0].start.row;\n foldLine.start.column = folds[0].start.column;\n }\n else \n if (fold.sameRow) {\n folds.splice(folds.indexOf(fold), 1);\n }\n else \n {\n var newFoldLine = foldLine.split(fold.start.row, fold.start.column);\n folds = newFoldLine.folds;\n folds.shift();\n newFoldLine.start.row = folds[0].start.row;\n newFoldLine.start.column = folds[0].start.column;\n }\n if (!this.$updating) {\n if (this.$useWrapMode)\n this.$updateWrapData(startRow, endRow);\n else\n this.$updateRowLengthCache(startRow, endRow);\n }\n this.$modified = true;\n this._signal(\"changeFold\", { data: fold, action: \"remove\" });\n };\n this.removeFolds = function (folds) {\n var cloneFolds = [];\n for (var i = 0; i < folds.length; i++) {\n cloneFolds.push(folds[i]);\n }\n cloneFolds.forEach(function (fold) {\n this.removeFold(fold);\n }, this);\n this.$modified = true;\n };\n this.expandFold = function (fold) {\n this.removeFold(fold);\n fold.subFolds.forEach(function (subFold) {\n fold.restoreRange(subFold);\n this.addFold(subFold);\n }, this);\n if (fold.collapseChildren > 0) {\n this.foldAll(fold.start.row + 1, fold.end.row, fold.collapseChildren - 1);\n }\n fold.subFolds = [];\n };\n this.expandFolds = function (folds) {\n folds.forEach(function (fold) {\n this.expandFold(fold);\n }, this);\n };\n this.unfold = function (location, expandInner) {\n var range, folds;\n if (location == null) {\n range = new Range(0, 0, this.getLength(), 0);\n if (expandInner == null)\n expandInner = true;\n }\n else if (typeof location == \"number\") {\n range = new Range(location, 0, location, this.getLine(location).length);\n }\n else if (\"row\" in location) {\n range = Range.fromPoints(location, location);\n }\n else if (Array.isArray(location)) {\n folds = [];\n location.forEach(function (range) {\n folds = folds.concat(this.unfold(range));\n }, this);\n return folds;\n }\n else {\n range = location;\n }\n folds = this.getFoldsInRangeList(range);\n var outermostFolds = folds;\n while (folds.length == 1\n && Range.comparePoints(folds[0].start, range.start) < 0\n && Range.comparePoints(folds[0].end, range.end) > 0) {\n this.expandFolds(folds);\n folds = this.getFoldsInRangeList(range);\n }\n if (expandInner != false) {\n this.removeFolds(folds);\n }\n else {\n this.expandFolds(folds);\n }\n if (outermostFolds.length)\n return outermostFolds;\n };\n this.isRowFolded = function (docRow, startFoldRow) {\n return !!this.getFoldLine(docRow, startFoldRow);\n };\n this.getRowFoldEnd = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.end.row : docRow;\n };\n this.getRowFoldStart = function (docRow, startFoldRow) {\n var foldLine = this.getFoldLine(docRow, startFoldRow);\n return foldLine ? foldLine.start.row : docRow;\n };\n this.getFoldDisplayLine = function (foldLine, endRow, endColumn, startRow, startColumn) {\n if (startRow == null)\n startRow = foldLine.start.row;\n if (startColumn == null)\n startColumn = 0;\n if (endRow == null)\n endRow = foldLine.end.row;\n if (endColumn == null)\n endColumn = this.getLine(endRow).length;\n var doc = this.doc;\n var textLine = \"\";\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n if (row < startRow)\n return;\n if (row == startRow) {\n if (column < startColumn)\n return;\n lastColumn = Math.max(startColumn, lastColumn);\n }\n if (placeholder != null) {\n textLine += placeholder;\n }\n else {\n textLine += doc.getLine(row).substring(lastColumn, column);\n }\n }, endRow, endColumn);\n return textLine;\n };\n this.getDisplayLine = function (row, endColumn, startRow, startColumn) {\n var foldLine = this.getFoldLine(row);\n if (!foldLine) {\n var line;\n line = this.doc.getLine(row);\n return line.substring(startColumn || 0, endColumn || line.length);\n }\n else {\n return this.getFoldDisplayLine(foldLine, row, endColumn, startRow, startColumn);\n }\n };\n this.$cloneFoldData = function () {\n var fd = [];\n fd = this.$foldData.map(function (foldLine) {\n var folds = foldLine.folds.map(function (fold) {\n return fold.clone();\n });\n return new FoldLine(fd, folds);\n });\n return fd;\n };\n this.toggleFold = function (tryToUnfold) {\n var selection = this.selection;\n var range = selection.getRange();\n var fold;\n var bracketPos;\n if (range.isEmpty()) {\n var cursor = range.start;\n fold = this.getFoldAt(cursor.row, cursor.column);\n if (fold) {\n this.expandFold(fold);\n return;\n }\n else if (bracketPos = this.findMatchingBracket(cursor)) {\n if (range.comparePoint(bracketPos) == 1) {\n range.end = bracketPos;\n }\n else {\n range.start = bracketPos;\n range.start.column++;\n range.end.column--;\n }\n }\n else if (bracketPos = this.findMatchingBracket({ row: cursor.row, column: cursor.column + 1 })) {\n if (range.comparePoint(bracketPos) == 1)\n range.end = bracketPos;\n else\n range.start = bracketPos;\n range.start.column++;\n }\n else {\n range = this.getCommentFoldRange(cursor.row, cursor.column) || range;\n }\n }\n else {\n var folds = this.getFoldsInRange(range);\n if (tryToUnfold && folds.length) {\n this.expandFolds(folds);\n return;\n }\n else if (folds.length == 1) {\n fold = folds[0];\n }\n }\n if (!fold)\n fold = this.getFoldAt(range.start.row, range.start.column);\n if (fold && fold.range.toString() == range.toString()) {\n this.expandFold(fold);\n return;\n }\n var placeholder = \"...\";\n if (!range.isMultiLine()) {\n placeholder = this.getTextRange(range);\n if (placeholder.length < 4)\n return;\n placeholder = placeholder.trim().substring(0, 2) + \"..\";\n }\n this.addFold(placeholder, range);\n };\n this.getCommentFoldRange = function (row, column, dir) {\n var iterator = new TokenIterator(this, row, column);\n var token = iterator.getCurrentToken();\n var type = token && token.type;\n if (token && /^comment|string/.test(type)) {\n type = type.match(/comment|string/)[0];\n if (type == \"comment\")\n type += \"|doc-start|\\\\.doc\";\n var re = new RegExp(type);\n var range = new Range();\n if (dir != 1) {\n do {\n token = iterator.stepBackward();\n } while (token && re.test(token.type) && !/^comment.end/.test(token.type));\n token = iterator.stepForward();\n }\n range.start.row = iterator.getCurrentTokenRow();\n range.start.column = iterator.getCurrentTokenColumn() + (/^comment.start/.test(token.type) ? token.value.length : 2);\n iterator = new TokenIterator(this, row, column);\n if (dir != -1) {\n var lastRow = -1;\n do {\n token = iterator.stepForward();\n if (lastRow == -1) {\n var state = this.getState(iterator.$row);\n if (!re.test(state))\n lastRow = iterator.$row;\n }\n else if (iterator.$row > lastRow) {\n break;\n }\n } while (token && re.test(token.type) && !/^comment.start/.test(token.type));\n token = iterator.stepBackward();\n }\n else\n token = iterator.getCurrentToken();\n range.end.row = iterator.getCurrentTokenRow();\n range.end.column = iterator.getCurrentTokenColumn();\n if (!/^comment.end/.test(token.type)) {\n range.end.column += token.value.length - 2;\n }\n return range;\n }\n };\n this.foldAll = function (startRow, endRow, depth, test) {\n if (depth == undefined)\n depth = 100000; // JSON.stringify doesn't hanle Infinity\n var foldWidgets = this.foldWidgets;\n if (!foldWidgets)\n return; // mode doesn't support folding\n endRow = endRow || this.getLength();\n startRow = startRow || 0;\n for (var row = startRow; row < endRow; row++) {\n if (foldWidgets[row] == null)\n foldWidgets[row] = this.getFoldWidget(row);\n if (foldWidgets[row] != \"start\")\n continue;\n if (test && !test(row))\n continue;\n var range = this.getFoldWidgetRange(row);\n if (range && range.isMultiLine()\n && range.end.row <= endRow\n && range.start.row >= startRow) {\n row = range.end.row;\n range.collapseChildren = depth;\n this.addFold(\"...\", range);\n }\n }\n };\n this.foldToLevel = function (level) {\n this.foldAll();\n while (level-- > 0)\n this.unfold(null, false);\n };\n this.foldAllComments = function () {\n var session = this;\n this.foldAll(null, null, null, function (row) {\n var tokens = session.getTokens(row);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type == \"text\" && /^\\s+$/.test(token.value))\n continue;\n if (/comment/.test(token.type))\n return true;\n return false;\n }\n });\n };\n this.$foldStyles = {\n \"manual\": 1,\n \"markbegin\": 1,\n \"markbeginend\": 1\n };\n this.$foldStyle = \"markbegin\";\n this.setFoldStyle = function (style) {\n if (!this.$foldStyles[style])\n throw new Error(\"invalid fold style: \" + style + \"[\" + Object.keys(this.$foldStyles).join(\", \") + \"]\");\n if (this.$foldStyle == style)\n return;\n this.$foldStyle = style;\n if (style == \"manual\")\n this.unfold();\n var mode = this.$foldMode;\n this.$setFolding(null);\n this.$setFolding(mode);\n };\n this.$setFolding = function (foldMode) {\n if (this.$foldMode == foldMode)\n return;\n this.$foldMode = foldMode;\n this.off('change', this.$updateFoldWidgets);\n this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n this._signal(\"changeAnnotation\");\n if (!foldMode || this.$foldStyle == \"manual\") {\n this.foldWidgets = null;\n return;\n }\n this.foldWidgets = [];\n this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle);\n this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle);\n this.$updateFoldWidgets = this.updateFoldWidgets.bind(this);\n this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this);\n this.on('change', this.$updateFoldWidgets);\n this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets);\n };\n this.getParentFoldRangeData = function (row, ignoreCurrent) {\n var fw = this.foldWidgets;\n if (!fw || (ignoreCurrent && fw[row]))\n return {};\n var i = row - 1, firstRange;\n while (i >= 0) {\n var c = fw[i];\n if (c == null)\n c = fw[i] = this.getFoldWidget(i);\n if (c == \"start\") {\n var range = this.getFoldWidgetRange(i);\n if (!firstRange)\n firstRange = range;\n if (range && range.end.row >= row)\n break;\n }\n i--;\n }\n return {\n range: i !== -1 && range,\n firstRange: firstRange\n };\n };\n this.onFoldWidgetClick = function (row, e) {\n if (e instanceof MouseEvent)\n e = e.domEvent;\n var options = {\n children: e.shiftKey,\n all: e.ctrlKey || e.metaKey,\n siblings: e.altKey\n };\n var range = this.$toggleFoldWidget(row, options);\n if (!range) {\n var el = (e.target || e.srcElement);\n if (el && /ace_fold-widget/.test(el.className))\n el.className += \" ace_invalid\";\n }\n };\n this.$toggleFoldWidget = function (row, options) {\n if (!this.getFoldWidget)\n return;\n var type = this.getFoldWidget(row);\n var line = this.getLine(row);\n var dir = type === \"end\" ? -1 : 1;\n var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir);\n if (fold) {\n if (options.children || options.all)\n this.removeFold(fold);\n else\n this.expandFold(fold);\n return fold;\n }\n var range = this.getFoldWidgetRange(row, true);\n if (range && !range.isMultiLine()) {\n fold = this.getFoldAt(range.start.row, range.start.column, 1);\n if (fold && range.isEqual(fold.range)) {\n this.removeFold(fold);\n return fold;\n }\n }\n if (options.siblings) {\n var data = this.getParentFoldRangeData(row);\n if (data.range) {\n var startRow = data.range.start.row + 1;\n var endRow = data.range.end.row;\n }\n this.foldAll(startRow, endRow, options.all ? 10000 : 0);\n }\n else if (options.children) {\n endRow = range ? range.end.row : this.getLength();\n this.foldAll(row + 1, endRow, options.all ? 10000 : 0);\n }\n else if (range) {\n if (options.all)\n range.collapseChildren = 10000;\n this.addFold(\"...\", range);\n }\n return range;\n };\n this.toggleFoldWidget = function (toggleParent) {\n var row = this.selection.getCursor().row;\n row = this.getRowFoldStart(row);\n var range = this.$toggleFoldWidget(row, {});\n if (range)\n return;\n var data = this.getParentFoldRangeData(row, true);\n range = data.range || data.firstRange;\n if (range) {\n row = range.start.row;\n var fold = this.getFoldAt(row, this.getLine(row).length, 1);\n if (fold) {\n this.removeFold(fold);\n }\n else {\n this.addFold(\"...\", range);\n }\n }\n };\n this.updateFoldWidgets = function (delta) {\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n this.foldWidgets[firstRow] = null;\n }\n else if (delta.action == 'remove') {\n this.foldWidgets.splice(firstRow, len + 1, null);\n }\n else {\n var args = Array(len + 1);\n args.unshift(firstRow, 1);\n this.foldWidgets.splice.apply(this.foldWidgets, args);\n }\n };\n this.tokenizerUpdateFoldWidgets = function (e) {\n var rows = e.data;\n if (rows.first != rows.last) {\n if (this.foldWidgets.length > rows.first)\n this.foldWidgets.splice(rows.first, this.foldWidgets.length);\n }\n };\n}\nexports.Folding = Folding;\n\n});\n\nace.define(\"ace/edit_session/bracket_match\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar TokenIterator = require(\"../token_iterator\").TokenIterator;\nvar Range = require(\"../range\").Range;\nfunction BracketMatch() {\n this.findMatchingBracket = function (position, chr) {\n if (position.column == 0)\n return null;\n var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column - 1);\n if (charBeforeCursor == \"\")\n return null;\n var match = charBeforeCursor.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match)\n return null;\n if (match[1])\n return this.$findClosingBracket(match[1], position);\n else\n return this.$findOpeningBracket(match[2], position);\n };\n this.getBracketRange = function (pos) {\n var line = this.getLine(pos.row);\n var before = true, range;\n var chr = line.charAt(pos.column - 1);\n var match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n if (!match) {\n chr = line.charAt(pos.column);\n pos = { row: pos.row, column: pos.column + 1 };\n match = chr && chr.match(/([\\(\\[\\{])|([\\)\\]\\}])/);\n before = false;\n }\n if (!match)\n return null;\n if (match[1]) {\n var bracketPos = this.$findClosingBracket(match[1], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(pos, bracketPos);\n if (!before) {\n range.end.column++;\n range.start.column--;\n }\n range.cursor = range.end;\n }\n else {\n var bracketPos = this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return null;\n range = Range.fromPoints(bracketPos, pos);\n if (!before) {\n range.start.column++;\n range.end.column--;\n }\n range.cursor = range.start;\n }\n return range;\n };\n this.getMatchingBracketRanges = function (pos, isBackwards) {\n var line = this.getLine(pos.row);\n var bracketsRegExp = /([\\(\\[\\{])|([\\)\\]\\}])/;\n var chr = !isBackwards && line.charAt(pos.column - 1);\n var match = chr && chr.match(bracketsRegExp);\n if (!match) {\n chr = (isBackwards === undefined || isBackwards) && line.charAt(pos.column);\n pos = {\n row: pos.row,\n column: pos.column + 1\n };\n match = chr && chr.match(bracketsRegExp);\n }\n if (!match)\n return null;\n var startRange = new Range(pos.row, pos.column - 1, pos.row, pos.column);\n var bracketPos = match[1] ? this.$findClosingBracket(match[1], pos)\n : this.$findOpeningBracket(match[2], pos);\n if (!bracketPos)\n return [startRange];\n var endRange = new Range(bracketPos.row, bracketPos.column, bracketPos.row, bracketPos.column + 1);\n return [startRange, endRange];\n };\n this.$brackets = {\n \")\": \"(\",\n \"(\": \")\",\n \"]\": \"[\",\n \"[\": \"]\",\n \"{\": \"}\",\n \"}\": \"{\",\n \"<\": \">\",\n \">\": \"<\"\n };\n this.$findOpeningBracket = function (bracket, position, typeRe) {\n var openBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"rparen\", \".paren\")\n .replace(/\\b(?:end)\\b/, \"(?:start|begin|end)\")\n .replace(/-close\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2;\n var value = token.value;\n while (true) {\n while (valueIndex >= 0) {\n var chr = value.charAt(valueIndex);\n if (chr == openBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex -= 1;\n }\n do {\n token = iterator.stepBackward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n value = token.value;\n valueIndex = value.length - 1;\n }\n return null;\n };\n this.$findClosingBracket = function (bracket, position, typeRe) {\n var closingBracket = this.$brackets[bracket];\n var depth = 1;\n var iterator = new TokenIterator(this, position.row, position.column);\n var token = iterator.getCurrentToken();\n if (!token)\n token = iterator.stepForward();\n if (!token)\n return;\n if (!typeRe) {\n typeRe = new RegExp(\"(\\\\.?\" +\n token.type.replace(\".\", \"\\\\.\").replace(\"lparen\", \".paren\")\n .replace(/\\b(?:start|begin)\\b/, \"(?:start|begin|end)\")\n .replace(/-open\\b/, \"-(close|open)\")\n + \")+\");\n }\n var valueIndex = position.column - iterator.getCurrentTokenColumn();\n while (true) {\n var value = token.value;\n var valueLength = value.length;\n while (valueIndex < valueLength) {\n var chr = value.charAt(valueIndex);\n if (chr == closingBracket) {\n depth -= 1;\n if (depth == 0) {\n return { row: iterator.getCurrentTokenRow(),\n column: valueIndex + iterator.getCurrentTokenColumn() };\n }\n }\n else if (chr == bracket) {\n depth += 1;\n }\n valueIndex += 1;\n }\n do {\n token = iterator.stepForward();\n } while (token && !typeRe.test(token.type));\n if (token == null)\n break;\n valueIndex = 0;\n }\n return null;\n };\n this.getMatchingTags = function (pos) {\n var iterator = new TokenIterator(this, pos.row, pos.column);\n var token = this.$findTagName(iterator);\n if (!token)\n return;\n var prevToken = iterator.stepBackward();\n if (prevToken.value === '<') {\n return this.$findClosingTag(iterator, token);\n }\n else {\n return this.$findOpeningTag(iterator, token);\n }\n };\n this.$findTagName = function (iterator) {\n var token = iterator.getCurrentToken();\n var found = false;\n var backward = false;\n if (token && token.type.indexOf('tag-name') === -1) {\n do {\n if (backward)\n token = iterator.stepBackward();\n else\n token = iterator.stepForward();\n if (token) {\n if (token.value === \"/>\") {\n backward = true;\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n found = true;\n }\n }\n } while (token && !found);\n }\n return token;\n };\n this.$findClosingTag = function (iterator, token) {\n var prevToken;\n var currentTag = token.value;\n var tag = token.value;\n var depth = 0;\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1);\n token = iterator.stepForward();\n var openTagName = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + token.value.length);\n var foundOpenTagEnd = false;\n do {\n prevToken = token;\n token = iterator.stepForward();\n if (token) {\n if (token.value === '>' && !foundOpenTagEnd) {\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for `>`\n foundOpenTagEnd = true;\n }\n if (token.type.indexOf('tag-name') !== -1) {\n currentTag = token.value;\n if (tag === currentTag) {\n if (prevToken.value === '<') {\n depth++;\n }\n else if (prevToken.value === '') {\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n else {\n return;\n }\n }\n }\n }\n }\n else if (tag === currentTag && token.value === '/>') { // self-closing tag\n depth--;\n if (depth < 0) { //found self-closing tag end\n var closeTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 2);\n var closeTagName = closeTagStart;\n var closeTagEnd = closeTagName;\n var openTagEnd = new Range(openTagName.end.row, openTagName.end.column, openTagName.end.row, openTagName.end.column + 1);\n }\n }\n }\n } while (token && depth >= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n this.$findOpeningTag = function (iterator, token) {\n var prevToken = iterator.getCurrentToken();\n var tag = token.value;\n var depth = 0;\n var startRow = iterator.getCurrentTokenRow();\n var startColumn = iterator.getCurrentTokenColumn();\n var endColumn = startColumn + 2;\n var closeTagStart = new Range(startRow, startColumn, startRow, endColumn); //Range for \")\n return;\n var closeTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n iterator.stepBackward();\n iterator.stepBackward();\n do {\n token = prevToken;\n startRow = iterator.getCurrentTokenRow();\n startColumn = iterator.getCurrentTokenColumn();\n endColumn = startColumn + token.value.length;\n prevToken = iterator.stepBackward();\n if (token) {\n if (token.type.indexOf('tag-name') !== -1) {\n if (tag === token.value) {\n if (prevToken.value === '<') {\n depth++;\n if (depth > 0) { //found opening tag\n var openTagName = new Range(startRow, startColumn, startRow, endColumn);\n var openTagStart = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for <\n do {\n token = iterator.stepForward();\n } while (token && token.value !== '>');\n var openTagEnd = new Range(iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn(), iterator.getCurrentTokenRow(), iterator.getCurrentTokenColumn() + 1); //Range for >\n }\n }\n else if (prevToken.value === '') { // self-closing tag\n var stepCount = 0;\n var tmpToken = prevToken;\n while (tmpToken) {\n if (tmpToken.type.indexOf('tag-name') !== -1 && tmpToken.value === tag) {\n depth--;\n break;\n }\n else if (tmpToken.value === '<') {\n break;\n }\n tmpToken = iterator.stepBackward();\n stepCount++;\n }\n for (var i = 0; i < stepCount; i++) {\n iterator.stepForward();\n }\n }\n }\n } while (prevToken && depth <= 0);\n if (openTagStart && openTagEnd && closeTagStart && closeTagEnd && openTagName && closeTagName) {\n return {\n openTag: new Range(openTagStart.start.row, openTagStart.start.column, openTagEnd.end.row, openTagEnd.end.column),\n closeTag: new Range(closeTagStart.start.row, closeTagStart.start.column, closeTagEnd.end.row, closeTagEnd.end.column),\n openTagName: openTagName,\n closeTagName: closeTagName\n };\n }\n };\n}\nexports.BracketMatch = BracketMatch;\n\n});\n\nace.define(\"ace/edit_session\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/bidihandler\",\"ace/config\",\"ace/lib/event_emitter\",\"ace/selection\",\"ace/mode/text\",\"ace/range\",\"ace/document\",\"ace/background_tokenizer\",\"ace/search_highlight\",\"ace/edit_session/folding\",\"ace/edit_session/bracket_match\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar lang = require(\"./lib/lang\");\nvar BidiHandler = require(\"./bidihandler\").BidiHandler;\nvar config = require(\"./config\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar Selection = require(\"./selection\").Selection;\nvar TextMode = require(\"./mode/text\").Mode;\nvar Range = require(\"./range\").Range;\nvar Document = require(\"./document\").Document;\nvar BackgroundTokenizer = require(\"./background_tokenizer\").BackgroundTokenizer;\nvar SearchHighlight = require(\"./search_highlight\").SearchHighlight;\nvar EditSession = /** @class */ (function () {\n function EditSession(text, mode) {\n this.$breakpoints = [];\n this.$decorations = [];\n this.$frontMarkers = {};\n this.$backMarkers = {};\n this.$markerId = 1;\n this.$undoSelect = true;\n this.$foldData = [];\n this.id = \"session\" + (++EditSession.$uid);\n this.$foldData.toString = function () {\n return this.join(\"\\n\");\n };\n this.bgTokenizer = new BackgroundTokenizer((new TextMode()).getTokenizer(), this);\n var _self = this;\n this.bgTokenizer.on(\"update\", function (e) {\n _self._signal(\"tokenizerUpdate\", e);\n });\n this.on(\"changeFold\", this.onChangeFold.bind(this));\n this.$onChange = this.onChange.bind(this);\n if (typeof text != \"object\" || !text.getLine)\n text = new Document(text);\n this.setDocument(text);\n this.selection = new Selection(this);\n this.$bidiHandler = new BidiHandler(this);\n config.resetOptions(this);\n this.setMode(mode);\n config._signal(\"session\", this);\n this.destroyed = false;\n }\n EditSession.prototype.setDocument = function (doc) {\n if (this.doc)\n this.doc.off(\"change\", this.$onChange);\n this.doc = doc;\n doc.on(\"change\", this.$onChange, true);\n this.bgTokenizer.setDocument(this.getDocument());\n this.resetCaches();\n };\n EditSession.prototype.getDocument = function () {\n return this.doc;\n };\n EditSession.prototype.$resetRowCache = function (docRow) {\n if (!docRow) {\n this.$docRowCache = [];\n this.$screenRowCache = [];\n return;\n }\n var l = this.$docRowCache.length;\n var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1;\n if (l > i) {\n this.$docRowCache.splice(i, l);\n this.$screenRowCache.splice(i, l);\n }\n };\n EditSession.prototype.$getRowCacheIndex = function (cacheArray, val) {\n var low = 0;\n var hi = cacheArray.length - 1;\n while (low <= hi) {\n var mid = (low + hi) >> 1;\n var c = cacheArray[mid];\n if (val > c)\n low = mid + 1;\n else if (val < c)\n hi = mid - 1;\n else\n return mid;\n }\n return low - 1;\n };\n EditSession.prototype.resetCaches = function () {\n this.$modified = true;\n this.$wrapData = [];\n this.$rowLengthCache = [];\n this.$resetRowCache(0);\n if (!this.destroyed)\n this.bgTokenizer.start(0);\n };\n EditSession.prototype.onChangeFold = function (e) {\n var fold = e.data;\n this.$resetRowCache(fold.start.row);\n };\n EditSession.prototype.onChange = function (delta) {\n this.$modified = true;\n this.$bidiHandler.onChange(delta);\n this.$resetRowCache(delta.start.row);\n var removedFolds = this.$updateInternalDataOnChange(delta);\n if (!this.$fromUndo && this.$undoManager) {\n if (removedFolds && removedFolds.length) {\n this.$undoManager.add({\n action: \"removeFolds\",\n folds: removedFolds\n }, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n }\n this.$undoManager.add(delta, this.mergeUndoDeltas);\n this.mergeUndoDeltas = true;\n this.$informUndoManager.schedule();\n }\n this.bgTokenizer.$updateOnChange(delta);\n this._signal(\"change\", delta);\n };\n EditSession.prototype.setValue = function (text) {\n this.doc.setValue(text);\n this.selection.moveTo(0, 0);\n this.$resetRowCache(0);\n this.setUndoManager(this.$undoManager);\n this.getUndoManager().reset();\n };\n EditSession.prototype.toString = function () {\n return this.doc.getValue();\n };\n EditSession.prototype.getSelection = function () {\n return this.selection;\n };\n EditSession.prototype.getState = function (row) {\n return this.bgTokenizer.getState(row);\n };\n EditSession.prototype.getTokens = function (row) {\n return this.bgTokenizer.getTokens(row);\n };\n EditSession.prototype.getTokenAt = function (row, column) {\n var tokens = this.bgTokenizer.getTokens(row);\n var token, c = 0;\n if (column == null) {\n var i = tokens.length - 1;\n c = this.getLine(row).length;\n }\n else {\n for (var i = 0; i < tokens.length; i++) {\n c += tokens[i].value.length;\n if (c >= column)\n break;\n }\n }\n token = tokens[i];\n if (!token)\n return null;\n token.index = i;\n token.start = c - token.value.length;\n return token;\n };\n EditSession.prototype.setUndoManager = function (undoManager) {\n this.$undoManager = undoManager;\n if (this.$informUndoManager)\n this.$informUndoManager.cancel();\n if (undoManager) {\n var self = this;\n undoManager.addSession(this);\n this.$syncInformUndoManager = function () {\n self.$informUndoManager.cancel();\n self.mergeUndoDeltas = false;\n };\n this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager);\n }\n else {\n this.$syncInformUndoManager = function () { };\n }\n };\n EditSession.prototype.markUndoGroup = function () {\n if (this.$syncInformUndoManager)\n this.$syncInformUndoManager();\n };\n EditSession.prototype.getUndoManager = function () {\n return this.$undoManager || this.$defaultUndoManager;\n };\n EditSession.prototype.getTabString = function () {\n if (this.getUseSoftTabs()) {\n return lang.stringRepeat(\" \", this.getTabSize());\n }\n else {\n return \"\\t\";\n }\n };\n EditSession.prototype.setUseSoftTabs = function (val) {\n this.setOption(\"useSoftTabs\", val);\n };\n EditSession.prototype.getUseSoftTabs = function () {\n return this.$useSoftTabs && !this.$mode.$indentWithTabs;\n };\n EditSession.prototype.setTabSize = function (tabSize) {\n this.setOption(\"tabSize\", tabSize);\n };\n EditSession.prototype.getTabSize = function () {\n return this.$tabSize;\n };\n EditSession.prototype.isTabStop = function (position) {\n return this.$useSoftTabs && (position.column % this.$tabSize === 0);\n };\n EditSession.prototype.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) {\n this.setOption(\"navigateWithinSoftTabs\", navigateWithinSoftTabs);\n };\n EditSession.prototype.getNavigateWithinSoftTabs = function () {\n return this.$navigateWithinSoftTabs;\n };\n EditSession.prototype.setOverwrite = function (overwrite) {\n this.setOption(\"overwrite\", overwrite);\n };\n EditSession.prototype.getOverwrite = function () {\n return this.$overwrite;\n };\n EditSession.prototype.toggleOverwrite = function () {\n this.setOverwrite(!this.$overwrite);\n };\n EditSession.prototype.addGutterDecoration = function (row, className) {\n if (!this.$decorations[row])\n this.$decorations[row] = \"\";\n this.$decorations[row] += \" \" + className;\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.removeGutterDecoration = function (row, className) {\n this.$decorations[row] = (this.$decorations[row] || \"\").replace(\" \" + className, \"\");\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.getBreakpoints = function () {\n return this.$breakpoints;\n };\n EditSession.prototype.setBreakpoints = function (rows) {\n this.$breakpoints = [];\n for (var i = 0; i < rows.length; i++) {\n this.$breakpoints[rows[i]] = \"ace_breakpoint\";\n }\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoints = function () {\n this.$breakpoints = [];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.setBreakpoint = function (row, className) {\n if (className === undefined)\n className = \"ace_breakpoint\";\n if (className)\n this.$breakpoints[row] = className;\n else\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.clearBreakpoint = function (row) {\n delete this.$breakpoints[row];\n this._signal(\"changeBreakpoint\", {});\n };\n EditSession.prototype.addMarker = function (range, clazz, type, inFront) {\n var id = this.$markerId++;\n var marker = {\n range: range,\n type: type || \"line\",\n renderer: typeof type == \"function\" ? type : null,\n clazz: clazz,\n inFront: !!inFront,\n id: id\n };\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return id;\n };\n EditSession.prototype.addDynamicMarker = function (marker, inFront) {\n if (!marker.update)\n return;\n var id = this.$markerId++;\n marker.id = id;\n marker.inFront = !!inFront;\n if (inFront) {\n this.$frontMarkers[id] = marker;\n this._signal(\"changeFrontMarker\");\n }\n else {\n this.$backMarkers[id] = marker;\n this._signal(\"changeBackMarker\");\n }\n return marker;\n };\n EditSession.prototype.removeMarker = function (markerId) {\n var marker = this.$frontMarkers[markerId] || this.$backMarkers[markerId];\n if (!marker)\n return;\n var markers = marker.inFront ? this.$frontMarkers : this.$backMarkers;\n delete (markers[markerId]);\n this._signal(marker.inFront ? \"changeFrontMarker\" : \"changeBackMarker\");\n };\n EditSession.prototype.getMarkers = function (inFront) {\n return inFront ? this.$frontMarkers : this.$backMarkers;\n };\n EditSession.prototype.highlight = function (re) {\n if (!this.$searchHighlight) {\n var highlight = new SearchHighlight(null, \"ace_selected-word\", \"text\");\n this.$searchHighlight = this.addDynamicMarker(highlight);\n }\n this.$searchHighlight.setRegexp(re);\n };\n EditSession.prototype.highlightLines = function (startRow, endRow, clazz, inFront) {\n if (typeof endRow != \"number\") {\n clazz = endRow;\n endRow = startRow;\n }\n if (!clazz)\n clazz = \"ace_step\";\n var range = new Range(startRow, 0, endRow, Infinity);\n range.id = this.addMarker(range, clazz, \"fullLine\", inFront);\n return range;\n };\n EditSession.prototype.setAnnotations = function (annotations) {\n this.$annotations = annotations;\n this._signal(\"changeAnnotation\", {});\n };\n EditSession.prototype.getAnnotations = function () {\n return this.$annotations || [];\n };\n EditSession.prototype.clearAnnotations = function () {\n this.setAnnotations([]);\n };\n EditSession.prototype.$detectNewLine = function (text) {\n var match = text.match(/^.*?(\\r?\\n)/m);\n if (match) {\n this.$autoNewLine = match[1];\n }\n else {\n this.$autoNewLine = \"\\n\";\n }\n };\n EditSession.prototype.getWordRange = function (row, column) {\n var line = this.getLine(row);\n var inToken = false;\n if (column > 0)\n inToken = !!line.charAt(column - 1).match(this.tokenRe);\n if (!inToken)\n inToken = !!line.charAt(column).match(this.tokenRe);\n if (inToken)\n var re = this.tokenRe;\n else if (/^\\s+$/.test(line.slice(column - 1, column + 1)))\n var re = /\\s/;\n else\n var re = this.nonTokenRe;\n var start = column;\n if (start > 0) {\n do {\n start--;\n } while (start >= 0 && line.charAt(start).match(re));\n start++;\n }\n var end = column;\n while (end < line.length && line.charAt(end).match(re)) {\n end++;\n }\n return new Range(row, start, row, end);\n };\n EditSession.prototype.getAWordRange = function (row, column) {\n var wordRange = this.getWordRange(row, column);\n var line = this.getLine(wordRange.end.row);\n while (line.charAt(wordRange.end.column).match(/[ \\t]/)) {\n wordRange.end.column += 1;\n }\n return wordRange;\n };\n EditSession.prototype.setNewLineMode = function (newLineMode) {\n this.doc.setNewLineMode(newLineMode);\n };\n EditSession.prototype.getNewLineMode = function () {\n return this.doc.getNewLineMode();\n };\n EditSession.prototype.setUseWorker = function (useWorker) { this.setOption(\"useWorker\", useWorker); };\n EditSession.prototype.getUseWorker = function () { return this.$useWorker; };\n EditSession.prototype.onReloadTokenizer = function (e) {\n var rows = e.data;\n this.bgTokenizer.start(rows.first);\n this._signal(\"tokenizerUpdate\", e);\n };\n EditSession.prototype.setMode = function (mode, cb) {\n if (mode && typeof mode === \"object\") {\n if (mode.getTokenizer)\n return this.$onChangeMode(mode);\n var options = mode;\n var path = options.path;\n }\n else {\n path = mode || \"ace/mode/text\";\n }\n if (!this.$modes[\"ace/mode/text\"])\n this.$modes[\"ace/mode/text\"] = new TextMode();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n cb && cb();\n return;\n }\n this.$modeId = path;\n config.loadModule([\"mode\", path], function (m) {\n if (this.$modeId !== path)\n return cb && cb();\n if (this.$modes[path] && !options) {\n this.$onChangeMode(this.$modes[path]);\n }\n else if (m && m.Mode) {\n m = new m.Mode(options);\n if (!options) {\n this.$modes[path] = m;\n m.$id = path;\n }\n this.$onChangeMode(m);\n }\n cb && cb();\n }.bind(this));\n if (!this.$mode)\n this.$onChangeMode(this.$modes[\"ace/mode/text\"], true);\n };\n EditSession.prototype.$onChangeMode = function (mode, $isPlaceholder) {\n if (!$isPlaceholder)\n this.$modeId = mode.$id;\n if (this.$mode === mode)\n return;\n var oldMode = this.$mode;\n this.$mode = mode;\n this.$stopWorker();\n if (this.$useWorker)\n this.$startWorker();\n var tokenizer = mode.getTokenizer();\n if (tokenizer.on !== undefined) {\n var onReloadTokenizer = this.onReloadTokenizer.bind(this);\n tokenizer.on(\"update\", onReloadTokenizer);\n }\n this.bgTokenizer.setTokenizer(tokenizer);\n this.bgTokenizer.setDocument(this.getDocument());\n this.tokenRe = mode.tokenRe;\n this.nonTokenRe = mode.nonTokenRe;\n if (!$isPlaceholder) {\n if (mode.attachToSession)\n mode.attachToSession(this);\n this.$options.wrapMethod.set.call(this, this.$wrapMethod);\n this.$setFolding(mode.foldingRules);\n this.bgTokenizer.start(0);\n this._emit(\"changeMode\", { oldMode: oldMode, mode: mode });\n }\n };\n EditSession.prototype.$stopWorker = function () {\n if (this.$worker) {\n this.$worker.terminate();\n this.$worker = null;\n }\n };\n EditSession.prototype.$startWorker = function () {\n try {\n this.$worker = this.$mode.createWorker(this);\n }\n catch (e) {\n config.warn(\"Could not load worker\", e);\n this.$worker = null;\n }\n };\n EditSession.prototype.getMode = function () {\n return this.$mode;\n };\n EditSession.prototype.setScrollTop = function (scrollTop) {\n if (this.$scrollTop === scrollTop || isNaN(scrollTop))\n return;\n this.$scrollTop = scrollTop;\n this._signal(\"changeScrollTop\", scrollTop);\n };\n EditSession.prototype.getScrollTop = function () {\n return this.$scrollTop;\n };\n EditSession.prototype.setScrollLeft = function (scrollLeft) {\n if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft))\n return;\n this.$scrollLeft = scrollLeft;\n this._signal(\"changeScrollLeft\", scrollLeft);\n };\n EditSession.prototype.getScrollLeft = function () {\n return this.$scrollLeft;\n };\n EditSession.prototype.getScreenWidth = function () {\n this.$computeWidth();\n if (this.lineWidgets)\n return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth);\n return this.screenWidth;\n };\n EditSession.prototype.getLineWidgetMaxWidth = function () {\n if (this.lineWidgetsWidth != null)\n return this.lineWidgetsWidth;\n var width = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.screenWidth > width)\n width = w.screenWidth;\n });\n return this.lineWidgetWidth = width;\n };\n EditSession.prototype.$computeWidth = function (force) {\n if (this.$modified || force) {\n this.$modified = false;\n if (this.$useWrapMode)\n return this.screenWidth = this.$wrapLimit;\n var lines = this.doc.getAllLines();\n var cache = this.$rowLengthCache;\n var longestScreenLine = 0;\n var foldIndex = 0;\n var foldLine = this.$foldData[foldIndex];\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n if (i > foldStart) {\n i = foldLine.end.row + 1;\n if (i >= len)\n break;\n foldLine = this.$foldData[foldIndex++];\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (cache[i] == null)\n cache[i] = this.$getStringScreenWidth(lines[i])[0];\n if (cache[i] > longestScreenLine)\n longestScreenLine = cache[i];\n }\n this.screenWidth = longestScreenLine;\n }\n };\n EditSession.prototype.getLine = function (row) {\n return this.doc.getLine(row);\n };\n EditSession.prototype.getLines = function (firstRow, lastRow) {\n return this.doc.getLines(firstRow, lastRow);\n };\n EditSession.prototype.getLength = function () {\n return this.doc.getLength();\n };\n EditSession.prototype.getTextRange = function (range) {\n return this.doc.getTextRange(range || this.selection.getRange());\n };\n EditSession.prototype.insert = function (position, text) {\n return this.doc.insert(position, text);\n };\n EditSession.prototype.remove = function (range) {\n return this.doc.remove(range);\n };\n EditSession.prototype.removeFullLines = function (firstRow, lastRow) {\n return this.doc.removeFullLines(firstRow, lastRow);\n };\n EditSession.prototype.undoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = deltas.length - 1; i != -1; i--) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.revertDelta(delta);\n }\n else if (delta.folds) {\n this.addFolds(delta.folds);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionBefore)\n this.selection.fromJSON(deltas.selectionBefore);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, true));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.redoChanges = function (deltas, dontSelect) {\n if (!deltas.length)\n return;\n this.$fromUndo = true;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (delta.action == \"insert\" || delta.action == \"remove\") {\n this.doc.$safeApplyDelta(delta);\n }\n }\n if (!dontSelect && this.$undoSelect) {\n if (deltas.selectionAfter)\n this.selection.fromJSON(deltas.selectionAfter);\n else\n this.selection.setRange(this.$getUndoSelection(deltas, false));\n }\n this.$fromUndo = false;\n };\n EditSession.prototype.setUndoSelect = function (enable) {\n this.$undoSelect = enable;\n };\n EditSession.prototype.$getUndoSelection = function (deltas, isUndo) {\n function isInsert(delta) {\n return isUndo ? delta.action !== \"insert\" : delta.action === \"insert\";\n }\n var range, point;\n for (var i = 0; i < deltas.length; i++) {\n var delta = deltas[i];\n if (!delta.start)\n continue; // skip folds\n if (!range) {\n if (isInsert(delta)) {\n range = Range.fromPoints(delta.start, delta.end);\n }\n else {\n range = Range.fromPoints(delta.start, delta.start);\n }\n continue;\n }\n if (isInsert(delta)) {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range.setStart(point);\n }\n point = delta.end;\n if (range.compare(point.row, point.column) == 1) {\n range.setEnd(point);\n }\n }\n else {\n point = delta.start;\n if (range.compare(point.row, point.column) == -1) {\n range = Range.fromPoints(delta.start, delta.start);\n }\n }\n }\n return range;\n };\n EditSession.prototype.replace = function (range, text) {\n return this.doc.replace(range, text);\n };\n EditSession.prototype.moveText = function (fromRange, toPosition, copy) {\n var text = this.getTextRange(fromRange);\n var folds = this.getFoldsInRange(fromRange);\n var toRange = Range.fromPoints(toPosition, toPosition);\n if (!copy) {\n this.remove(fromRange);\n var rowDiff = fromRange.start.row - fromRange.end.row;\n var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column;\n if (collDiff) {\n if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column)\n toRange.start.column += collDiff;\n if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column)\n toRange.end.column += collDiff;\n }\n if (rowDiff && toRange.start.row >= fromRange.end.row) {\n toRange.start.row += rowDiff;\n toRange.end.row += rowDiff;\n }\n }\n toRange.end = this.insert(toRange.start, text);\n if (folds.length) {\n var oldStart = fromRange.start;\n var newStart = toRange.start;\n var rowDiff = newStart.row - oldStart.row;\n var collDiff = newStart.column - oldStart.column;\n this.addFolds(folds.map(function (x) {\n x = x.clone();\n if (x.start.row == oldStart.row)\n x.start.column += collDiff;\n if (x.end.row == oldStart.row)\n x.end.column += collDiff;\n x.start.row += rowDiff;\n x.end.row += rowDiff;\n return x;\n }));\n }\n return toRange;\n };\n EditSession.prototype.indentRows = function (startRow, endRow, indentString) {\n indentString = indentString.replace(/\\t/g, this.getTabString());\n for (var row = startRow; row <= endRow; row++)\n this.doc.insertInLine({ row: row, column: 0 }, indentString);\n };\n EditSession.prototype.outdentRows = function (range) {\n var rowRange = range.collapseRows();\n var deleteRange = new Range(0, 0, 0, 0);\n var size = this.getTabSize();\n for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) {\n var line = this.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n for (var j = 0; j < size; ++j)\n if (line.charAt(j) != ' ')\n break;\n if (j < size && line.charAt(j) == '\\t') {\n deleteRange.start.column = j;\n deleteRange.end.column = j + 1;\n }\n else {\n deleteRange.start.column = 0;\n deleteRange.end.column = j;\n }\n this.remove(deleteRange);\n }\n };\n EditSession.prototype.$moveLines = function (firstRow, lastRow, dir) {\n firstRow = this.getRowFoldStart(firstRow);\n lastRow = this.getRowFoldEnd(lastRow);\n if (dir < 0) {\n var row = this.getRowFoldStart(firstRow + dir);\n if (row < 0)\n return 0;\n var diff = row - firstRow;\n }\n else if (dir > 0) {\n var row = this.getRowFoldEnd(lastRow + dir);\n if (row > this.doc.getLength() - 1)\n return 0;\n var diff = row - lastRow;\n }\n else {\n firstRow = this.$clipRowToDocument(firstRow);\n lastRow = this.$clipRowToDocument(lastRow);\n var diff = lastRow - firstRow + 1;\n }\n var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE);\n var folds = this.getFoldsInRange(range).map(function (x) {\n x = x.clone();\n x.start.row += diff;\n x.end.row += diff;\n return x;\n });\n var lines = dir == 0\n ? this.doc.getLines(firstRow, lastRow)\n : this.doc.removeFullLines(firstRow, lastRow);\n this.doc.insertFullLines(firstRow + diff, lines);\n folds.length && this.addFolds(folds);\n return diff;\n };\n EditSession.prototype.moveLinesUp = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, -1);\n };\n EditSession.prototype.moveLinesDown = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 1);\n };\n EditSession.prototype.duplicateLines = function (firstRow, lastRow) {\n return this.$moveLines(firstRow, lastRow, 0);\n };\n EditSession.prototype.$clipRowToDocument = function (row) {\n return Math.max(0, Math.min(row, this.doc.getLength() - 1));\n };\n EditSession.prototype.$clipColumnToRow = function (row, column) {\n if (column < 0)\n return 0;\n return Math.min(this.doc.getLine(row).length, column);\n };\n EditSession.prototype.$clipPositionToDocument = function (row, column) {\n column = Math.max(0, column);\n if (row < 0) {\n row = 0;\n column = 0;\n }\n else {\n var len = this.doc.getLength();\n if (row >= len) {\n row = len - 1;\n column = this.doc.getLine(len - 1).length;\n }\n else {\n column = Math.min(this.doc.getLine(row).length, column);\n }\n }\n return {\n row: row,\n column: column\n };\n };\n EditSession.prototype.$clipRangeToDocument = function (range) {\n if (range.start.row < 0) {\n range.start.row = 0;\n range.start.column = 0;\n }\n else {\n range.start.column = this.$clipColumnToRow(range.start.row, range.start.column);\n }\n var len = this.doc.getLength() - 1;\n if (range.end.row > len) {\n range.end.row = len;\n range.end.column = this.doc.getLine(len).length;\n }\n else {\n range.end.column = this.$clipColumnToRow(range.end.row, range.end.column);\n }\n return range;\n };\n EditSession.prototype.setUseWrapMode = function (useWrapMode) {\n if (useWrapMode != this.$useWrapMode) {\n this.$useWrapMode = useWrapMode;\n this.$modified = true;\n this.$resetRowCache(0);\n if (useWrapMode) {\n var len = this.getLength();\n this.$wrapData = Array(len);\n this.$updateWrapData(0, len - 1);\n }\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.getUseWrapMode = function () {\n return this.$useWrapMode;\n };\n EditSession.prototype.setWrapLimitRange = function (min, max) {\n if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) {\n this.$wrapLimitRange = { min: min, max: max };\n this.$modified = true;\n this.$bidiHandler.markAsDirty();\n if (this.$useWrapMode)\n this._signal(\"changeWrapMode\");\n }\n };\n EditSession.prototype.adjustWrapLimit = function (desiredLimit, $printMargin) {\n var limits = this.$wrapLimitRange;\n if (limits.max < 0)\n limits = { min: $printMargin, max: $printMargin };\n var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max);\n if (wrapLimit != this.$wrapLimit && wrapLimit > 1) {\n this.$wrapLimit = wrapLimit;\n this.$modified = true;\n if (this.$useWrapMode) {\n this.$updateWrapData(0, this.getLength() - 1);\n this.$resetRowCache(0);\n this._signal(\"changeWrapLimit\");\n }\n return true;\n }\n return false;\n };\n EditSession.prototype.$constrainWrapLimit = function (wrapLimit, min, max) {\n if (min)\n wrapLimit = Math.max(min, wrapLimit);\n if (max)\n wrapLimit = Math.min(max, wrapLimit);\n return wrapLimit;\n };\n EditSession.prototype.getWrapLimit = function () {\n return this.$wrapLimit;\n };\n EditSession.prototype.setWrapLimit = function (limit) {\n this.setWrapLimitRange(limit, limit);\n };\n EditSession.prototype.getWrapLimitRange = function () {\n return {\n min: this.$wrapLimitRange.min,\n max: this.$wrapLimitRange.max\n };\n };\n EditSession.prototype.$updateInternalDataOnChange = function (delta) {\n var useWrapMode = this.$useWrapMode;\n var action = delta.action;\n var start = delta.start;\n var end = delta.end;\n var firstRow = start.row;\n var lastRow = end.row;\n var len = lastRow - firstRow;\n var removedFolds = null;\n this.$updating = true;\n if (len != 0) {\n if (action === \"remove\") {\n this[useWrapMode ? \"$wrapData\" : \"$rowLengthCache\"].splice(firstRow, len);\n var foldLines = this.$foldData;\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n var foldLine = this.getFoldLine(end.row);\n var idx = 0;\n if (foldLine) {\n foldLine.addRemoveChars(end.row, end.column, start.column - end.column);\n foldLine.shiftRow(-len);\n var foldLineBefore = this.getFoldLine(firstRow);\n if (foldLineBefore && foldLineBefore !== foldLine) {\n foldLineBefore.merge(foldLine);\n foldLine = foldLineBefore;\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= end.row) {\n foldLine.shiftRow(-len);\n }\n }\n lastRow = firstRow;\n }\n else {\n var args = Array(len);\n args.unshift(firstRow, 0);\n var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache;\n arr.splice.apply(arr, args);\n var foldLines = this.$foldData;\n var foldLine = this.getFoldLine(firstRow);\n var idx = 0;\n if (foldLine) {\n var cmp = foldLine.range.compareInside(start.row, start.column);\n if (cmp == 0) {\n foldLine = foldLine.split(start.row, start.column);\n if (foldLine) {\n foldLine.shiftRow(len);\n foldLine.addRemoveChars(lastRow, 0, end.column - start.column);\n }\n }\n else \n if (cmp == -1) {\n foldLine.addRemoveChars(firstRow, 0, end.column - start.column);\n foldLine.shiftRow(len);\n }\n idx = foldLines.indexOf(foldLine) + 1;\n }\n for (idx; idx < foldLines.length; idx++) {\n var foldLine = foldLines[idx];\n if (foldLine.start.row >= firstRow) {\n foldLine.shiftRow(len);\n }\n }\n }\n }\n else {\n len = Math.abs(delta.start.column - delta.end.column);\n if (action === \"remove\") {\n removedFolds = this.getFoldsInRange(delta);\n this.removeFolds(removedFolds);\n len = -len;\n }\n var foldLine = this.getFoldLine(firstRow);\n if (foldLine) {\n foldLine.addRemoveChars(firstRow, start.column, len);\n }\n }\n if (useWrapMode && this.$wrapData.length != this.doc.getLength()) {\n console.error(\"doc.getLength() and $wrapData.length have to be the same!\");\n }\n this.$updating = false;\n if (useWrapMode)\n this.$updateWrapData(firstRow, lastRow);\n else\n this.$updateRowLengthCache(firstRow, lastRow);\n return removedFolds;\n };\n EditSession.prototype.$updateRowLengthCache = function (firstRow, lastRow, b) {\n this.$rowLengthCache[firstRow] = null;\n this.$rowLengthCache[lastRow] = null;\n };\n EditSession.prototype.$updateWrapData = function (firstRow, lastRow) {\n var lines = this.doc.getAllLines();\n var tabSize = this.getTabSize();\n var wrapData = this.$wrapData;\n var wrapLimit = this.$wrapLimit;\n var tokens;\n var foldLine;\n var row = firstRow;\n lastRow = Math.min(lastRow, lines.length - 1);\n while (row <= lastRow) {\n foldLine = this.getFoldLine(row, foldLine);\n if (!foldLine) {\n tokens = this.$getDisplayTokens(lines[row]);\n wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row++;\n }\n else {\n tokens = [];\n foldLine.walk(function (placeholder, row, column, lastColumn) {\n var walkTokens;\n if (placeholder != null) {\n walkTokens = this.$getDisplayTokens(placeholder, tokens.length);\n walkTokens[0] = PLACEHOLDER_START;\n for (var i = 1; i < walkTokens.length; i++) {\n walkTokens[i] = PLACEHOLDER_BODY;\n }\n }\n else {\n walkTokens = this.$getDisplayTokens(lines[row].substring(lastColumn, column), tokens.length);\n }\n tokens = tokens.concat(walkTokens);\n }.bind(this), foldLine.end.row, lines[foldLine.end.row].length + 1);\n wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize);\n row = foldLine.end.row + 1;\n }\n }\n };\n EditSession.prototype.$computeWrapSplits = function (tokens, wrapLimit, tabSize) {\n if (tokens.length == 0) {\n return [];\n }\n var splits = [];\n var displayLength = tokens.length;\n var lastSplit = 0, lastDocSplit = 0;\n var isCode = this.$wrapAsCode;\n var indentedSoftWrap = this.$indentedSoftWrap;\n var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8)\n || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2);\n function getWrapIndent() {\n var indentation = 0;\n if (maxIndent === 0)\n return indentation;\n if (indentedSoftWrap) {\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token == SPACE)\n indentation += 1;\n else if (token == TAB)\n indentation += tabSize;\n else if (token == TAB_SPACE)\n continue;\n else\n break;\n }\n }\n if (isCode && indentedSoftWrap !== false)\n indentation += tabSize;\n return Math.min(indentation, maxIndent);\n }\n function addSplit(screenPos) {\n var len = screenPos - lastSplit;\n for (var i = lastSplit; i < screenPos; i++) {\n var ch = tokens[i];\n if (ch === 12 || ch === 2)\n len -= 1;\n }\n if (!splits.length) {\n indent = getWrapIndent();\n splits.indent = indent;\n }\n lastDocSplit += len;\n splits.push(lastDocSplit);\n lastSplit = screenPos;\n }\n var indent = 0;\n while (displayLength - lastSplit > wrapLimit - indent) {\n var split = lastSplit + wrapLimit - indent;\n if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) {\n addSplit(split);\n continue;\n }\n if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) {\n for (split; split != lastSplit - 1; split--) {\n if (tokens[split] == PLACEHOLDER_START) {\n break;\n }\n }\n if (split > lastSplit) {\n addSplit(split);\n continue;\n }\n split = lastSplit + wrapLimit;\n for (split; split < tokens.length; split++) {\n if (tokens[split] != PLACEHOLDER_BODY) {\n break;\n }\n }\n if (split == tokens.length) {\n break; // Breaks the while-loop.\n }\n addSplit(split);\n continue;\n }\n var minSplit = Math.max(split - (wrapLimit - (wrapLimit >> 2)), lastSplit - 1);\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n if (isCode) {\n while (split > minSplit && tokens[split] < PLACEHOLDER_START) {\n split--;\n }\n while (split > minSplit && tokens[split] == PUNCTUATION) {\n split--;\n }\n }\n else {\n while (split > minSplit && tokens[split] < SPACE) {\n split--;\n }\n }\n if (split > minSplit) {\n addSplit(++split);\n continue;\n }\n split = lastSplit + wrapLimit;\n if (tokens[split] == CHAR_EXT)\n split--;\n addSplit(split - indent);\n }\n return splits;\n };\n EditSession.prototype.$getDisplayTokens = function (str, offset) {\n var arr = [];\n var tabSize;\n offset = offset || 0;\n for (var i = 0; i < str.length; i++) {\n var c = str.charCodeAt(i);\n if (c == 9) {\n tabSize = this.getScreenTabSize(arr.length + offset);\n arr.push(TAB);\n for (var n = 1; n < tabSize; n++) {\n arr.push(TAB_SPACE);\n }\n }\n else if (c == 32) {\n arr.push(SPACE);\n }\n else if ((c > 39 && c < 48) || (c > 57 && c < 64)) {\n arr.push(PUNCTUATION);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n arr.push(CHAR, CHAR_EXT);\n }\n else {\n arr.push(CHAR);\n }\n }\n return arr;\n };\n EditSession.prototype.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn == 0)\n return [0, 0];\n if (maxScreenColumn == null)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charCodeAt(column);\n if (c == 9) {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else if (c >= 0x1100 && isFullWidth(c)) {\n screenColumn += 2;\n }\n else {\n screenColumn += 1;\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n EditSession.prototype.getRowLength = function (row) {\n var h = 1;\n if (this.lineWidgets)\n h += this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n if (!this.$useWrapMode || !this.$wrapData[row])\n return h;\n else\n return this.$wrapData[row].length + h;\n };\n EditSession.prototype.getRowLineCount = function (row) {\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1;\n }\n else {\n return this.$wrapData[row].length + 1;\n }\n };\n EditSession.prototype.getRowWrapIndent = function (screenRow) {\n if (this.$useWrapMode) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n var splits = this.$wrapData[pos.row];\n return splits.length && splits[0] < pos.column ? splits.indent : 0;\n }\n else {\n return 0;\n }\n };\n EditSession.prototype.getScreenLastRowColumn = function (screenRow) {\n var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE);\n return this.documentToScreenColumn(pos.row, pos.column);\n };\n EditSession.prototype.getDocumentLastRowColumn = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.getScreenLastRowColumn(screenRow);\n };\n EditSession.prototype.getDocumentLastRowColumnPosition = function (docRow, docColumn) {\n var screenRow = this.documentToScreenRow(docRow, docColumn);\n return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10);\n };\n EditSession.prototype.getRowSplitData = function (row) {\n if (!this.$useWrapMode) {\n return undefined;\n }\n else {\n return this.$wrapData[row];\n }\n };\n EditSession.prototype.getScreenTabSize = function (screenColumn) {\n return this.$tabSize - (screenColumn % this.$tabSize | 0);\n };\n EditSession.prototype.screenToDocumentRow = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).row;\n };\n EditSession.prototype.screenToDocumentColumn = function (screenRow, screenColumn) {\n return this.screenToDocumentPosition(screenRow, screenColumn).column;\n };\n EditSession.prototype.screenToDocumentPosition = function (screenRow, screenColumn, offsetX) {\n if (screenRow < 0)\n return { row: 0, column: 0 };\n var line;\n var docRow = 0;\n var docColumn = 0;\n var column;\n var row = 0;\n var rowLength = 0;\n var rowCache = this.$screenRowCache;\n var i = this.$getRowCacheIndex(rowCache, screenRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var docRow = this.$docRowCache[i];\n var doCache = screenRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var maxRow = this.getLength() - 1;\n var foldLine = this.getNextFoldLine(docRow);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row <= screenRow) {\n rowLength = this.getRowLength(docRow);\n if (row + rowLength > screenRow || docRow >= maxRow) {\n break;\n }\n else {\n row += rowLength;\n docRow++;\n if (docRow > foldStart) {\n docRow = foldLine.end.row + 1;\n foldLine = this.getNextFoldLine(docRow, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n }\n if (doCache) {\n this.$docRowCache.push(docRow);\n this.$screenRowCache.push(row);\n }\n }\n if (foldLine && foldLine.start.row <= docRow) {\n line = this.getFoldDisplayLine(foldLine);\n docRow = foldLine.start.row;\n }\n else if (row + rowLength <= screenRow || docRow > maxRow) {\n return {\n row: maxRow,\n column: this.getLine(maxRow).length\n };\n }\n else {\n line = this.getLine(docRow);\n foldLine = null;\n }\n var wrapIndent = 0, splitIndex = Math.floor(screenRow - row);\n if (this.$useWrapMode) {\n var splits = this.$wrapData[docRow];\n if (splits) {\n column = splits[splitIndex];\n if (splitIndex > 0 && splits.length) {\n wrapIndent = splits.indent;\n docColumn = splits[splitIndex - 1] || splits[splits.length - 1];\n line = line.substring(docColumn);\n }\n }\n }\n if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex))\n screenColumn = this.$bidiHandler.offsetToCol(offsetX);\n docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1];\n if (this.$useWrapMode && docColumn >= column)\n docColumn = column - 1;\n if (foldLine)\n return foldLine.idxToPosition(docColumn);\n return { row: docRow, column: docColumn };\n };\n EditSession.prototype.documentToScreenPosition = function (docRow, docColumn) {\n if (typeof docColumn === \"undefined\")\n var pos = this.$clipPositionToDocument(docRow.row, docRow.column);\n else\n pos = this.$clipPositionToDocument(docRow, docColumn);\n docRow = pos.row;\n docColumn = pos.column;\n var screenRow = 0;\n var foldStartRow = null;\n var fold = null;\n fold = this.getFoldAt(docRow, docColumn, 1);\n if (fold) {\n docRow = fold.start.row;\n docColumn = fold.start.column;\n }\n var rowEnd, row = 0;\n var rowCache = this.$docRowCache;\n var i = this.$getRowCacheIndex(rowCache, docRow);\n var l = rowCache.length;\n if (l && i >= 0) {\n var row = rowCache[i];\n var screenRow = this.$screenRowCache[i];\n var doCache = docRow > rowCache[l - 1];\n }\n else {\n var doCache = !l;\n }\n var foldLine = this.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (row < docRow) {\n if (row >= foldStart) {\n rowEnd = foldLine.end.row + 1;\n if (rowEnd > docRow)\n break;\n foldLine = this.getNextFoldLine(rowEnd, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n else {\n rowEnd = row + 1;\n }\n screenRow += this.getRowLength(row);\n row = rowEnd;\n if (doCache) {\n this.$docRowCache.push(row);\n this.$screenRowCache.push(screenRow);\n }\n }\n var textLine = \"\";\n if (foldLine && row >= foldStart) {\n textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn);\n foldStartRow = foldLine.start.row;\n }\n else {\n textLine = this.getLine(docRow).substring(0, docColumn);\n foldStartRow = docRow;\n }\n var wrapIndent = 0;\n if (this.$useWrapMode) {\n var wrapRow = this.$wrapData[foldStartRow];\n if (wrapRow) {\n var screenRowOffset = 0;\n while (textLine.length >= wrapRow[screenRowOffset]) {\n screenRow++;\n screenRowOffset++;\n }\n textLine = textLine.substring(wrapRow[screenRowOffset - 1] || 0, textLine.length);\n wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0;\n }\n }\n if (this.lineWidgets && this.lineWidgets[row] && this.lineWidgets[row].rowsAbove)\n screenRow += this.lineWidgets[row].rowsAbove;\n return {\n row: screenRow,\n column: wrapIndent + this.$getStringScreenWidth(textLine)[0]\n };\n };\n EditSession.prototype.documentToScreenColumn = function (row, docColumn) {\n return this.documentToScreenPosition(row, docColumn).column;\n };\n EditSession.prototype.documentToScreenRow = function (docRow, docColumn) {\n return this.documentToScreenPosition(docRow, docColumn).row;\n };\n EditSession.prototype.getScreenLength = function () {\n var screenRows = 0;\n var fold = null;\n if (!this.$useWrapMode) {\n screenRows = this.getLength();\n var foldData = this.$foldData;\n for (var i = 0; i < foldData.length; i++) {\n fold = foldData[i];\n screenRows -= fold.end.row - fold.start.row;\n }\n }\n else {\n var lastRow = this.$wrapData.length;\n var row = 0, i = 0;\n var fold = this.$foldData[i++];\n var foldStart = fold ? fold.start.row : Infinity;\n while (row < lastRow) {\n var splits = this.$wrapData[row];\n screenRows += splits ? splits.length + 1 : 1;\n row++;\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = this.$foldData[i++];\n foldStart = fold ? fold.start.row : Infinity;\n }\n }\n }\n if (this.lineWidgets)\n screenRows += this.$getWidgetScreenLength();\n return screenRows;\n };\n EditSession.prototype.$setFontMetrics = function (fm) {\n if (!this.$enableVarChar)\n return;\n this.$getStringScreenWidth = function (str, maxScreenColumn, screenColumn) {\n if (maxScreenColumn === 0)\n return [0, 0];\n if (!maxScreenColumn)\n maxScreenColumn = Infinity;\n screenColumn = screenColumn || 0;\n var c, column;\n for (column = 0; column < str.length; column++) {\n c = str.charAt(column);\n if (c === \"\\t\") {\n screenColumn += this.getScreenTabSize(screenColumn);\n }\n else {\n screenColumn += fm.getCharacterWidth(c);\n }\n if (screenColumn > maxScreenColumn) {\n break;\n }\n }\n return [screenColumn, column];\n };\n };\n EditSession.prototype.destroy = function () {\n if (!this.destroyed) {\n this.bgTokenizer.setDocument(null);\n this.bgTokenizer.cleanup();\n this.destroyed = true;\n }\n this.$stopWorker();\n this.removeAllListeners();\n if (this.doc) {\n this.doc.off(\"change\", this.$onChange);\n }\n this.selection.detach();\n };\n return EditSession;\n}());\nEditSession.$uid = 0;\nEditSession.prototype.$modes = config.$modes;\nEditSession.prototype.getValue = EditSession.prototype.toString;\nEditSession.prototype.$defaultUndoManager = {\n undo: function () { },\n redo: function () { },\n hasUndo: function () { },\n hasRedo: function () { },\n reset: function () { },\n add: function () { },\n addSelection: function () { },\n startNewGroup: function () { },\n addSession: function () { }\n};\nEditSession.prototype.$overwrite = false;\nEditSession.prototype.$mode = null;\nEditSession.prototype.$modeId = null;\nEditSession.prototype.$scrollTop = 0;\nEditSession.prototype.$scrollLeft = 0;\nEditSession.prototype.$wrapLimit = 80;\nEditSession.prototype.$useWrapMode = false;\nEditSession.prototype.$wrapLimitRange = {\n min: null,\n max: null\n};\nEditSession.prototype.lineWidgets = null;\nEditSession.prototype.isFullWidth = isFullWidth;\noop.implement(EditSession.prototype, EventEmitter);\nvar CHAR = 1, CHAR_EXT = 2, PLACEHOLDER_START = 3, PLACEHOLDER_BODY = 4, PUNCTUATION = 9, SPACE = 10, TAB = 11, TAB_SPACE = 12;\nfunction isFullWidth(c) {\n if (c < 0x1100)\n return false;\n return c >= 0x1100 && c <= 0x115F ||\n c >= 0x11A3 && c <= 0x11A7 ||\n c >= 0x11FA && c <= 0x11FF ||\n c >= 0x2329 && c <= 0x232A ||\n c >= 0x2E80 && c <= 0x2E99 ||\n c >= 0x2E9B && c <= 0x2EF3 ||\n c >= 0x2F00 && c <= 0x2FD5 ||\n c >= 0x2FF0 && c <= 0x2FFB ||\n c >= 0x3000 && c <= 0x303E ||\n c >= 0x3041 && c <= 0x3096 ||\n c >= 0x3099 && c <= 0x30FF ||\n c >= 0x3105 && c <= 0x312D ||\n c >= 0x3131 && c <= 0x318E ||\n c >= 0x3190 && c <= 0x31BA ||\n c >= 0x31C0 && c <= 0x31E3 ||\n c >= 0x31F0 && c <= 0x321E ||\n c >= 0x3220 && c <= 0x3247 ||\n c >= 0x3250 && c <= 0x32FE ||\n c >= 0x3300 && c <= 0x4DBF ||\n c >= 0x4E00 && c <= 0xA48C ||\n c >= 0xA490 && c <= 0xA4C6 ||\n c >= 0xA960 && c <= 0xA97C ||\n c >= 0xAC00 && c <= 0xD7A3 ||\n c >= 0xD7B0 && c <= 0xD7C6 ||\n c >= 0xD7CB && c <= 0xD7FB ||\n c >= 0xF900 && c <= 0xFAFF ||\n c >= 0xFE10 && c <= 0xFE19 ||\n c >= 0xFE30 && c <= 0xFE52 ||\n c >= 0xFE54 && c <= 0xFE66 ||\n c >= 0xFE68 && c <= 0xFE6B ||\n c >= 0xFF01 && c <= 0xFF60 ||\n c >= 0xFFE0 && c <= 0xFFE6;\n}\nrequire(\"./edit_session/folding\").Folding.call(EditSession.prototype);\nrequire(\"./edit_session/bracket_match\").BracketMatch.call(EditSession.prototype);\nconfig.defineOptions(EditSession.prototype, \"session\", {\n wrap: {\n set: function (value) {\n if (!value || value == \"off\")\n value = false;\n else if (value == \"free\")\n value = true;\n else if (value == \"printMargin\")\n value = -1;\n else if (typeof value == \"string\")\n value = parseInt(value, 10) || false;\n if (this.$wrap == value)\n return;\n this.$wrap = value;\n if (!value) {\n this.setUseWrapMode(false);\n }\n else {\n var col = typeof value == \"number\" ? value : null;\n this.setWrapLimitRange(col, col);\n this.setUseWrapMode(true);\n }\n },\n get: function () {\n if (this.getUseWrapMode()) {\n if (this.$wrap == -1)\n return \"printMargin\";\n if (!this.getWrapLimitRange().min)\n return \"free\";\n return this.$wrap;\n }\n return \"off\";\n },\n handlesSet: true\n },\n wrapMethod: {\n set: function (val) {\n val = val == \"auto\"\n ? this.$mode.type != \"text\"\n : val != \"text\";\n if (val != this.$wrapAsCode) {\n this.$wrapAsCode = val;\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n }\n },\n initialValue: \"auto\"\n },\n indentedSoftWrap: {\n set: function () {\n if (this.$useWrapMode) {\n this.$useWrapMode = false;\n this.setUseWrapMode(true);\n }\n },\n initialValue: true\n },\n firstLineNumber: {\n set: function () { this._signal(\"changeBreakpoint\"); },\n initialValue: 1\n },\n useWorker: {\n set: function (useWorker) {\n this.$useWorker = useWorker;\n this.$stopWorker();\n if (useWorker)\n this.$startWorker();\n },\n initialValue: true\n },\n useSoftTabs: { initialValue: true },\n tabSize: {\n set: function (tabSize) {\n tabSize = parseInt(tabSize);\n if (tabSize > 0 && this.$tabSize !== tabSize) {\n this.$modified = true;\n this.$rowLengthCache = [];\n this.$tabSize = tabSize;\n this._signal(\"changeTabSize\");\n }\n },\n initialValue: 4,\n handlesSet: true\n },\n navigateWithinSoftTabs: { initialValue: false },\n foldStyle: {\n set: function (val) { this.setFoldStyle(val); },\n handlesSet: true\n },\n overwrite: {\n set: function (val) { this._signal(\"changeOverwrite\"); },\n initialValue: false\n },\n newLineMode: {\n set: function (val) { this.doc.setNewLineMode(val); },\n get: function () { return this.doc.getNewLineMode(); },\n handlesSet: true\n },\n mode: {\n set: function (val) { this.setMode(val); },\n get: function () { return this.$modeId; },\n handlesSet: true\n }\n});\nexports.EditSession = EditSession;\n\n});\n\nace.define(\"ace/search\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/lib/oop\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"./lib/lang\");\nvar oop = require(\"./lib/oop\");\nvar Range = require(\"./range\").Range;\nvar Search = /** @class */ (function () {\n function Search() {\n this.$options = {};\n }\n Search.prototype.set = function (options) {\n oop.mixin(this.$options, options);\n return this;\n };\n Search.prototype.getOptions = function () {\n return lang.copyObject(this.$options);\n };\n Search.prototype.setOptions = function (options) {\n this.$options = options;\n };\n Search.prototype.find = function (session) {\n var options = this.$options;\n var iterator = this.$matchIterator(session, options);\n if (!iterator)\n return false;\n var firstRange = null;\n iterator.forEach(function (sr, sc, er, ec) {\n firstRange = new Range(sr, sc, er, ec);\n if (sc == ec && options.start && options.start.start\n && options.skipCurrent != false && firstRange.isEqual(options.start)) {\n firstRange = null;\n return false;\n }\n return true;\n });\n return firstRange;\n };\n Search.prototype.findAll = function (session) {\n var options = this.$options;\n if (!options.needle)\n return [];\n this.$assembleRegExp(options);\n var range = options.range;\n var lines = range\n ? session.getLines(range.start.row, range.end.row)\n : session.doc.getAllLines();\n var ranges = [];\n var re = options.re;\n if (options.$isMultiLine) {\n var len = re.length;\n var maxRow = lines.length - len;\n var prevRange;\n outer: for (var row = re.offset || 0; row <= maxRow; row++) {\n for (var j = 0; j < len; j++)\n if (lines[row + j].search(re[j]) == -1)\n continue outer;\n var startLine = lines[row];\n var line = lines[row + len - 1];\n var startIndex = startLine.length - startLine.match(re[0])[0].length;\n var endIndex = line.match(re[len - 1])[0].length;\n if (prevRange && prevRange.end.row === row &&\n prevRange.end.column > startIndex) {\n continue;\n }\n ranges.push(prevRange = new Range(row, startIndex, row + len - 1, endIndex));\n if (len > 2)\n row = row + len - 2;\n }\n }\n else {\n for (var i = 0; i < lines.length; i++) {\n var matches = lang.getMatchOffsets(lines[i], re);\n for (var j = 0; j < matches.length; j++) {\n var match = matches[j];\n ranges.push(new Range(i, match.offset, i, match.offset + match.length));\n }\n }\n }\n if (range) {\n var startColumn = range.start.column;\n var endColumn = range.end.column;\n var i = 0, j = ranges.length - 1;\n while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == 0)\n i++;\n var endRow = range.end.row - range.start.row;\n while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == endRow)\n j--;\n ranges = ranges.slice(i, j + 1);\n for (i = 0, j = ranges.length; i < j; i++) {\n ranges[i].start.row += range.start.row;\n ranges[i].end.row += range.start.row;\n }\n }\n return ranges;\n };\n Search.prototype.replace = function (input, replacement) {\n var options = this.$options;\n var re = this.$assembleRegExp(options);\n if (options.$isMultiLine)\n return replacement;\n if (!re)\n return;\n var match = re.exec(input);\n if (!match || match[0].length != input.length)\n return null;\n replacement = input.replace(re, replacement);\n if (options.preserveCase) {\n replacement = replacement.split(\"\");\n for (var i = Math.min(input.length, input.length); i--;) {\n var ch = input[i];\n if (ch && ch.toLowerCase() != ch)\n replacement[i] = replacement[i].toUpperCase();\n else\n replacement[i] = replacement[i].toLowerCase();\n }\n replacement = replacement.join(\"\");\n }\n return replacement;\n };\n Search.prototype.$assembleRegExp = function (options, $disableFakeMultiline) {\n if (options.needle instanceof RegExp)\n return options.re = options.needle;\n var needle = options.needle;\n if (!options.needle)\n return options.re = false;\n if (options.$supportsUnicodeFlag === undefined) {\n options.$supportsUnicodeFlag = lang.supportsUnicodeFlag();\n }\n try {\n new RegExp(needle, \"u\");\n }\n catch (e) {\n options.$supportsUnicodeFlag = false; //left for backward compatibility with previous versions for cases like /ab\\{2}/gu\n }\n if (!options.regExp)\n needle = lang.escapeRegExp(needle);\n if (options.wholeWord)\n needle = addWordBoundary(needle, options);\n var modifier = options.caseSensitive ? \"gm\" : \"gmi\";\n if (options.$supportsUnicodeFlag) {\n modifier += \"u\";\n }\n options.$isMultiLine = !$disableFakeMultiline && /[\\n\\r]/.test(needle);\n if (options.$isMultiLine)\n return options.re = this.$assembleMultilineRegExp(needle, modifier);\n try {\n var re = new RegExp(needle, modifier);\n }\n catch (e) {\n re = false;\n }\n return options.re = re;\n };\n Search.prototype.$assembleMultilineRegExp = function (needle, modifier) {\n var parts = needle.replace(/\\r\\n|\\r|\\n/g, \"$\\n^\").split(\"\\n\");\n var re = [];\n for (var i = 0; i < parts.length; i++)\n try {\n re.push(new RegExp(parts[i], modifier));\n }\n catch (e) {\n return false;\n }\n return re;\n };\n Search.prototype.$matchIterator = function (session, options) {\n var re = this.$assembleRegExp(options);\n if (!re)\n return false;\n var backwards = options.backwards == true;\n var skipCurrent = options.skipCurrent != false;\n var range = options.range;\n var start = options.start;\n if (!start)\n start = range ? range[backwards ? \"end\" : \"start\"] : session.selection.getRange();\n if (start.start)\n start = start[skipCurrent != backwards ? \"end\" : \"start\"];\n var firstRow = range ? range.start.row : 0;\n var lastRow = range ? range.end.row : session.getLength() - 1;\n if (backwards) {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row--; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = lastRow, firstRow = start.row; row >= firstRow; row--)\n if (forEachInLine(row, Number.MAX_VALUE, callback))\n return;\n };\n }\n else {\n var forEach = function (callback) {\n var row = start.row;\n if (forEachInLine(row, start.column, callback))\n return;\n for (row = row + 1; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n if (options.wrap == false)\n return;\n for (row = firstRow, lastRow = start.row; row <= lastRow; row++)\n if (forEachInLine(row, 0, callback))\n return;\n };\n }\n if (options.$isMultiLine) {\n var len = re.length;\n var forEachInLine = function (row, offset, callback) {\n var startRow = backwards ? row - len + 1 : row;\n if (startRow < 0 || startRow + len > session.getLength())\n return;\n var line = session.getLine(startRow);\n var startIndex = line.search(re[0]);\n if (!backwards && startIndex < offset || startIndex === -1)\n return;\n for (var i = 1; i < len; i++) {\n line = session.getLine(startRow + i);\n if (line.search(re[i]) == -1)\n return;\n }\n var endIndex = line.match(re[len - 1])[0].length;\n if (backwards && endIndex > offset)\n return;\n if (callback(startRow, startIndex, startRow + len - 1, endIndex))\n return true;\n };\n }\n else if (backwards) {\n var forEachInLine = function (row, endIndex, callback) {\n var line = session.getLine(row);\n var matches = [];\n var m, last = 0;\n re.lastIndex = 0;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (!length) {\n if (last >= line.length)\n break;\n re.lastIndex = last += 1;\n }\n if (m.index + length > endIndex)\n break;\n matches.push(m.index, length);\n }\n for (var i = matches.length - 1; i >= 0; i -= 2) {\n var column = matches[i - 1];\n var length = matches[i];\n if (callback(row, column, row, column + length))\n return true;\n }\n };\n }\n else {\n var forEachInLine = function (row, startIndex, callback) {\n var line = session.getLine(row);\n var last;\n var m;\n re.lastIndex = startIndex;\n while ((m = re.exec(line))) {\n var length = m[0].length;\n last = m.index;\n if (callback(row, last, row, last + length))\n return true;\n if (!length) {\n re.lastIndex = last += 1;\n if (last >= line.length)\n return false;\n }\n }\n };\n }\n return { forEach: forEach };\n };\n return Search;\n}());\nfunction addWordBoundary(needle, options) {\n var supportsLookbehind = lang.supportsLookbehind();\n function wordBoundary(c, firstChar) {\n if (firstChar === void 0) { firstChar = true; }\n var wordRegExp = supportsLookbehind && options.$supportsUnicodeFlag ? new RegExp(\"[\\\\p{L}\\\\p{N}_]\", \"u\") : new RegExp(\"\\\\w\");\n if (wordRegExp.test(c) || options.regExp) {\n if (supportsLookbehind && options.$supportsUnicodeFlag) {\n if (firstChar)\n return \"(?<=^|[^\\\\p{L}\\\\p{N}_])\";\n return \"(?=[^\\\\p{L}\\\\p{N}_]|$)\";\n }\n return \"\\\\b\";\n }\n return \"\";\n }\n var needleArray = Array.from(needle);\n var firstChar = needleArray[0];\n var lastChar = needleArray[needleArray.length - 1];\n return wordBoundary(firstChar) + needle + wordBoundary(lastChar, false);\n}\nexports.Search = Search;\n\n});\n\nace.define(\"ace/keyboard/hash_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar keyUtil = require(\"../lib/keys\");\nvar useragent = require(\"../lib/useragent\");\nvar KEY_MODS = keyUtil.KEY_MODS;\nvar MultiHashHandler = /** @class */ (function () {\n function MultiHashHandler(config, platform) {\n this.$init(config, platform, false);\n }\n MultiHashHandler.prototype.$init = function (config, platform, $singleCommand) {\n this.platform = platform || (useragent.isMac ? \"mac\" : \"win\");\n this.commands = {};\n this.commandKeyBinding = {};\n this.addCommands(config);\n this.$singleCommand = $singleCommand;\n };\n MultiHashHandler.prototype.addCommand = function (command) {\n if (this.commands[command.name])\n this.removeCommand(command);\n this.commands[command.name] = command;\n if (command.bindKey)\n this._buildKeyHash(command);\n };\n MultiHashHandler.prototype.removeCommand = function (command, keepCommand) {\n var name = command && (typeof command === 'string' ? command : command.name);\n command = this.commands[name];\n if (!keepCommand)\n delete this.commands[name];\n var ckb = this.commandKeyBinding;\n for (var keyId in ckb) {\n var cmdGroup = ckb[keyId];\n if (cmdGroup == command) {\n delete ckb[keyId];\n }\n else if (Array.isArray(cmdGroup)) {\n var i = cmdGroup.indexOf(command);\n if (i != -1) {\n cmdGroup.splice(i, 1);\n if (cmdGroup.length == 1)\n ckb[keyId] = cmdGroup[0];\n }\n }\n }\n };\n MultiHashHandler.prototype.bindKey = function (key, command, position) {\n if (typeof key == \"object\" && key) {\n if (position == undefined)\n position = key.position;\n key = key[this.platform];\n }\n if (!key)\n return;\n if (typeof command == \"function\")\n return this.addCommand({ exec: command, bindKey: key, name: command.name || key });\n key.split(\"|\").forEach(function (keyPart) {\n var chain = \"\";\n if (keyPart.indexOf(\" \") != -1) {\n var parts = keyPart.split(/\\s+/);\n keyPart = parts.pop();\n parts.forEach(function (keyPart) {\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n chain += (chain ? \" \" : \"\") + id;\n this._addCommandToBinding(chain, \"chainKeys\");\n }, this);\n chain += \" \";\n }\n var binding = this.parseKeys(keyPart);\n var id = KEY_MODS[binding.hashId] + binding.key;\n this._addCommandToBinding(chain + id, command, position);\n }, this);\n };\n MultiHashHandler.prototype._addCommandToBinding = function (keyId, command, position) {\n var ckb = this.commandKeyBinding, i;\n if (!command) {\n delete ckb[keyId];\n }\n else if (!ckb[keyId] || this.$singleCommand) {\n ckb[keyId] = command;\n }\n else {\n if (!Array.isArray(ckb[keyId])) {\n ckb[keyId] = [ckb[keyId]];\n }\n else if ((i = ckb[keyId].indexOf(command)) != -1) {\n ckb[keyId].splice(i, 1);\n }\n if (typeof position != \"number\") {\n position = getPosition(command);\n }\n var commands = ckb[keyId];\n for (i = 0; i < commands.length; i++) {\n var other = commands[i];\n var otherPos = getPosition(other);\n if (otherPos > position)\n break;\n }\n commands.splice(i, 0, command);\n }\n };\n MultiHashHandler.prototype.addCommands = function (commands) {\n commands && Object.keys(commands).forEach(function (name) {\n var command = commands[name];\n if (!command)\n return;\n if (typeof command === \"string\")\n return this.bindKey(command, name);\n if (typeof command === \"function\")\n command = { exec: command };\n if (typeof command !== \"object\")\n return;\n if (!command.name)\n command.name = name;\n this.addCommand(command);\n }, this);\n };\n MultiHashHandler.prototype.removeCommands = function (commands) {\n Object.keys(commands).forEach(function (name) {\n this.removeCommand(commands[name]);\n }, this);\n };\n MultiHashHandler.prototype.bindKeys = function (keyList) {\n Object.keys(keyList).forEach(function (key) {\n this.bindKey(key, keyList[key]);\n }, this);\n };\n MultiHashHandler.prototype._buildKeyHash = function (command) {\n this.bindKey(command.bindKey, command);\n };\n MultiHashHandler.prototype.parseKeys = function (keys) {\n var parts = keys.toLowerCase().split(/[\\-\\+]([\\-\\+])?/).filter(function (x) { return x; });\n var key = parts.pop();\n var keyCode = keyUtil[key];\n if (keyUtil.FUNCTION_KEYS[keyCode])\n key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase();\n else if (!parts.length)\n return { key: key, hashId: -1 };\n else if (parts.length == 1 && parts[0] == \"shift\")\n return { key: key.toUpperCase(), hashId: -1 };\n var hashId = 0;\n for (var i = parts.length; i--;) {\n var modifier = keyUtil.KEY_MODS[parts[i]];\n if (modifier == null) {\n if (typeof console != \"undefined\")\n console.error(\"invalid modifier \" + parts[i] + \" in \" + keys);\n return false;\n }\n hashId |= modifier;\n }\n return { key: key, hashId: hashId };\n };\n MultiHashHandler.prototype.findKeyCommand = function (hashId, keyString) {\n var key = KEY_MODS[hashId] + keyString;\n return this.commandKeyBinding[key];\n };\n MultiHashHandler.prototype.handleKeyboard = function (data, hashId, keyString, keyCode) {\n if (keyCode < 0)\n return;\n var key = KEY_MODS[hashId] + keyString;\n var command = this.commandKeyBinding[key];\n if (data.$keyChain) {\n data.$keyChain += \" \" + key;\n command = this.commandKeyBinding[data.$keyChain] || command;\n }\n if (command) {\n if (command == \"chainKeys\" || command[command.length - 1] == \"chainKeys\") {\n data.$keyChain = data.$keyChain || key;\n return { command: \"null\" };\n }\n }\n if (data.$keyChain) {\n if ((!hashId || hashId == 4) && keyString.length == 1)\n data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input\n else if (hashId == -1 || keyCode > 0)\n data.$keyChain = \"\"; // reset keyChain\n }\n return { command: command };\n };\n MultiHashHandler.prototype.getStatusText = function (editor, data) {\n return data.$keyChain || \"\";\n };\n return MultiHashHandler;\n}());\nfunction getPosition(command) {\n return typeof command == \"object\" && command.bindKey\n && command.bindKey.position\n || (command.isDefault ? -100 : 0);\n}\nvar HashHandler = /** @class */ (function (_super) {\n __extends(HashHandler, _super);\n function HashHandler(config, platform) {\n var _this = _super.call(this, config, platform) || this;\n _this.$singleCommand = true;\n return _this;\n }\n return HashHandler;\n}(MultiHashHandler));\nHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, true);\n};\nMultiHashHandler.call = function (thisArg, config, platform) {\n MultiHashHandler.prototype.$init.call(thisArg, config, platform, false);\n};\nexports.HashHandler = HashHandler;\nexports.MultiHashHandler = MultiHashHandler;\n\n});\n\nace.define(\"ace/commands/command_manager\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/keyboard/hash_handler\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"../lib/oop\");\nvar MultiHashHandler = require(\"../keyboard/hash_handler\").MultiHashHandler;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager(platform, commands) {\n var _this = _super.call(this, commands, platform) || this;\n _this.byName = _this.commands;\n _this.setDefaultHandler(\"exec\", function (e) {\n if (!e.args) {\n return e.command.exec(e.editor, {}, e.event, true);\n }\n return e.command.exec(e.editor, e.args, e.event, false);\n });\n return _this;\n }\n CommandManager.prototype.exec = function (command, editor, args) {\n if (Array.isArray(command)) {\n for (var i = command.length; i--;) {\n if (this.exec(command[i], editor, args))\n return true;\n }\n return false;\n }\n if (typeof command === \"string\")\n command = this.commands[command];\n if (!command)\n return false;\n if (editor && editor.$readOnly && !command.readOnly)\n return false;\n if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor))\n return false;\n var e = { editor: editor, command: command, args: args };\n e.returnValue = this._emit(\"exec\", e);\n this._signal(\"afterExec\", e);\n return e.returnValue === false ? false : true;\n };\n CommandManager.prototype.toggleRecording = function (editor) {\n if (this.$inReplay)\n return;\n editor && editor._emit(\"changeStatus\");\n if (this.recording) {\n this.macro.pop();\n this.off(\"exec\", this.$addCommandToMacro);\n if (!this.macro.length)\n this.macro = this.oldMacro;\n return this.recording = false;\n }\n if (!this.$addCommandToMacro) {\n this.$addCommandToMacro = function (e) {\n this.macro.push([e.command, e.args]);\n }.bind(this);\n }\n this.oldMacro = this.macro;\n this.macro = [];\n this.on(\"exec\", this.$addCommandToMacro);\n return this.recording = true;\n };\n CommandManager.prototype.replay = function (editor) {\n if (this.$inReplay || !this.macro)\n return;\n if (this.recording)\n return this.toggleRecording(editor);\n try {\n this.$inReplay = true;\n this.macro.forEach(function (x) {\n if (typeof x == \"string\")\n this.exec(x, editor);\n else\n this.exec(x[0], editor, x[1]);\n }, this);\n }\n finally {\n this.$inReplay = false;\n }\n };\n CommandManager.prototype.trimMacro = function (m) {\n return m.map(function (x) {\n if (typeof x[0] != \"string\")\n x[0] = x[0].name;\n if (!x[1])\n x = x[0];\n return x;\n });\n };\n return CommandManager;\n}(MultiHashHandler));\noop.implement(CommandManager.prototype, EventEmitter);\nexports.CommandManager = CommandManager;\n\n});\n\nace.define(\"ace/commands/default_commands\",[\"require\",\"exports\",\"module\",\"ace/lib/lang\",\"ace/config\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar lang = require(\"../lib/lang\");\nvar config = require(\"../config\");\nvar Range = require(\"../range\").Range;\nfunction bindKey(win, mac) {\n return { win: win, mac: mac };\n}\nexports.commands = [{\n name: \"showSettingsMenu\",\n description: \"Show settings menu\",\n bindKey: bindKey(\"Ctrl-,\", \"Command-,\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/settings_menu\", function (module) {\n module.init(editor);\n editor.showSettingsMenu();\n });\n },\n readOnly: true\n }, {\n name: \"goToNextError\",\n description: \"Go to next error\",\n bindKey: bindKey(\"Alt-E\", \"F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, 1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"goToPreviousError\",\n description: \"Go to previous error\",\n bindKey: bindKey(\"Alt-Shift-E\", \"Shift-F4\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/error_marker\", function (module) {\n module.showErrorMarker(editor, -1);\n });\n },\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selectall\",\n description: \"Select all\",\n bindKey: bindKey(\"Ctrl-A\", \"Command-A\"),\n exec: function (editor) { editor.selectAll(); },\n readOnly: true\n }, {\n name: \"centerselection\",\n description: \"Center selection\",\n bindKey: bindKey(null, \"Ctrl-L\"),\n exec: function (editor) { editor.centerSelection(); },\n readOnly: true\n }, {\n name: \"gotoline\",\n description: \"Go to line...\",\n bindKey: bindKey(\"Ctrl-L\", \"Command-L\"),\n exec: function (editor, line) {\n if (typeof line === \"number\" && !isNaN(line))\n editor.gotoLine(line);\n editor.prompt({ $type: \"gotoLine\" });\n },\n readOnly: true\n }, {\n name: \"fold\",\n bindKey: bindKey(\"Alt-L|Ctrl-F1\", \"Command-Alt-L|Command-F1\"),\n exec: function (editor) { editor.session.toggleFold(false); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfold\",\n bindKey: bindKey(\"Alt-Shift-L|Ctrl-Shift-F1\", \"Command-Alt-Shift-L|Command-Shift-F1\"),\n exec: function (editor) { editor.session.toggleFold(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleFoldWidget\",\n description: \"Toggle fold widget\",\n bindKey: bindKey(\"F2\", \"F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"toggleParentFoldWidget\",\n description: \"Toggle parent fold widget\",\n bindKey: bindKey(\"Alt-F2\", \"Alt-F2\"),\n exec: function (editor) { editor.session.toggleFoldWidget(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldall\",\n description: \"Fold all\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAll(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldAllComments\",\n description: \"Fold all comments\",\n bindKey: bindKey(null, \"Ctrl-Command-Option-0\"),\n exec: function (editor) { editor.session.foldAllComments(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"foldOther\",\n description: \"Fold other\",\n bindKey: bindKey(\"Alt-0\", \"Command-Option-0\"),\n exec: function (editor) {\n editor.session.foldAll();\n editor.session.unfold(editor.selection.getAllRanges());\n },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"unfoldall\",\n description: \"Unfold all\",\n bindKey: bindKey(\"Alt-Shift-0\", \"Command-Option-Shift-0\"),\n exec: function (editor) { editor.session.unfold(); },\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findnext\",\n description: \"Find next\",\n bindKey: bindKey(\"Ctrl-K\", \"Command-G\"),\n exec: function (editor) { editor.findNext(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"findprevious\",\n description: \"Find previous\",\n bindKey: bindKey(\"Ctrl-Shift-K\", \"Command-Shift-G\"),\n exec: function (editor) { editor.findPrevious(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"center\",\n readOnly: true\n }, {\n name: \"selectOrFindNext\",\n description: \"Select or find next\",\n bindKey: bindKey(\"Alt-K\", \"Ctrl-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findNext();\n },\n readOnly: true\n }, {\n name: \"selectOrFindPrevious\",\n description: \"Select or find previous\",\n bindKey: bindKey(\"Alt-Shift-K\", \"Ctrl-Shift-G\"),\n exec: function (editor) {\n if (editor.selection.isEmpty())\n editor.selection.selectWord();\n else\n editor.findPrevious();\n },\n readOnly: true\n }, {\n name: \"find\",\n description: \"Find\",\n bindKey: bindKey(\"Ctrl-F\", \"Command-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor); });\n },\n readOnly: true\n }, {\n name: \"overwrite\",\n description: \"Overwrite\",\n bindKey: \"Insert\",\n exec: function (editor) { editor.toggleOverwrite(); },\n readOnly: true\n }, {\n name: \"selecttostart\",\n description: \"Select to start\",\n bindKey: bindKey(\"Ctrl-Shift-Home\", \"Command-Shift-Home|Command-Shift-Up\"),\n exec: function (editor) { editor.getSelection().selectFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotostart\",\n description: \"Go to start\",\n bindKey: bindKey(\"Ctrl-Home\", \"Command-Home|Command-Up\"),\n exec: function (editor) { editor.navigateFileStart(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectup\",\n description: \"Select up\",\n bindKey: bindKey(\"Shift-Up\", \"Shift-Up|Ctrl-Shift-P\"),\n exec: function (editor) { editor.getSelection().selectUp(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golineup\",\n description: \"Go line up\",\n bindKey: bindKey(\"Up\", \"Up|Ctrl-P\"),\n exec: function (editor, args) { editor.navigateUp(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttoend\",\n description: \"Select to end\",\n bindKey: bindKey(\"Ctrl-Shift-End\", \"Command-Shift-End|Command-Shift-Down\"),\n exec: function (editor) { editor.getSelection().selectFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"gotoend\",\n description: \"Go to end\",\n bindKey: bindKey(\"Ctrl-End\", \"Command-End|Command-Down\"),\n exec: function (editor) { editor.navigateFileEnd(); },\n multiSelectAction: \"forEach\",\n readOnly: true,\n scrollIntoView: \"animate\",\n aceCommandGroup: \"fileJump\"\n }, {\n name: \"selectdown\",\n description: \"Select down\",\n bindKey: bindKey(\"Shift-Down\", \"Shift-Down|Ctrl-Shift-N\"),\n exec: function (editor) { editor.getSelection().selectDown(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"golinedown\",\n description: \"Go line down\",\n bindKey: bindKey(\"Down\", \"Down|Ctrl-N\"),\n exec: function (editor, args) { editor.navigateDown(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordleft\",\n description: \"Select word left\",\n bindKey: bindKey(\"Ctrl-Shift-Left\", \"Option-Shift-Left\"),\n exec: function (editor) { editor.getSelection().selectWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordleft\",\n description: \"Go to word left\",\n bindKey: bindKey(\"Ctrl-Left\", \"Option-Left\"),\n exec: function (editor) { editor.navigateWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolinestart\",\n description: \"Select to line start\",\n bindKey: bindKey(\"Alt-Shift-Left\", \"Command-Shift-Left|Ctrl-Shift-A\"),\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolinestart\",\n description: \"Go to line start\",\n bindKey: bindKey(\"Alt-Left|Home\", \"Command-Left|Home|Ctrl-A\"),\n exec: function (editor) { editor.navigateLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectleft\",\n description: \"Select left\",\n bindKey: bindKey(\"Shift-Left\", \"Shift-Left|Ctrl-Shift-B\"),\n exec: function (editor) { editor.getSelection().selectLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoleft\",\n description: \"Go to left\",\n bindKey: bindKey(\"Left\", \"Left|Ctrl-B\"),\n exec: function (editor, args) { editor.navigateLeft(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectwordright\",\n description: \"Select word right\",\n bindKey: bindKey(\"Ctrl-Shift-Right\", \"Option-Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotowordright\",\n description: \"Go to word right\",\n bindKey: bindKey(\"Ctrl-Right\", \"Option-Right\"),\n exec: function (editor) { editor.navigateWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selecttolineend\",\n description: \"Select to line end\",\n bindKey: bindKey(\"Alt-Shift-Right\", \"Command-Shift-Right|Shift-End|Ctrl-Shift-E\"),\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotolineend\",\n description: \"Go to line end\",\n bindKey: bindKey(\"Alt-Right|End\", \"Command-Right|End|Ctrl-E\"),\n exec: function (editor) { editor.navigateLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectright\",\n description: \"Select right\",\n bindKey: bindKey(\"Shift-Right\", \"Shift-Right\"),\n exec: function (editor) { editor.getSelection().selectRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"gotoright\",\n description: \"Go to right\",\n bindKey: bindKey(\"Right\", \"Right|Ctrl-F\"),\n exec: function (editor, args) { editor.navigateRight(args.times); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectpagedown\",\n description: \"Select page down\",\n bindKey: \"Shift-PageDown\",\n exec: function (editor) { editor.selectPageDown(); },\n readOnly: true\n }, {\n name: \"pagedown\",\n description: \"Page down\",\n bindKey: bindKey(null, \"Option-PageDown\"),\n exec: function (editor) { editor.scrollPageDown(); },\n readOnly: true\n }, {\n name: \"gotopagedown\",\n description: \"Go to page down\",\n bindKey: bindKey(\"PageDown\", \"PageDown|Ctrl-V\"),\n exec: function (editor) { editor.gotoPageDown(); },\n readOnly: true\n }, {\n name: \"selectpageup\",\n description: \"Select page up\",\n bindKey: \"Shift-PageUp\",\n exec: function (editor) { editor.selectPageUp(); },\n readOnly: true\n }, {\n name: \"pageup\",\n description: \"Page up\",\n bindKey: bindKey(null, \"Option-PageUp\"),\n exec: function (editor) { editor.scrollPageUp(); },\n readOnly: true\n }, {\n name: \"gotopageup\",\n description: \"Go to page up\",\n bindKey: \"PageUp\",\n exec: function (editor) { editor.gotoPageUp(); },\n readOnly: true\n }, {\n name: \"scrollup\",\n description: \"Scroll up\",\n bindKey: bindKey(\"Ctrl-Up\", null),\n exec: function (e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"scrolldown\",\n description: \"Scroll down\",\n bindKey: bindKey(\"Ctrl-Down\", null),\n exec: function (e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); },\n readOnly: true\n }, {\n name: \"selectlinestart\",\n description: \"Select line start\",\n bindKey: \"Shift-Home\",\n exec: function (editor) { editor.getSelection().selectLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectlineend\",\n description: \"Select line end\",\n bindKey: \"Shift-End\",\n exec: function (editor) { editor.getSelection().selectLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"togglerecording\",\n description: \"Toggle recording\",\n bindKey: bindKey(\"Ctrl-Alt-E\", \"Command-Option-E\"),\n exec: function (editor) { editor.commands.toggleRecording(editor); },\n readOnly: true\n }, {\n name: \"replaymacro\",\n description: \"Replay macro\",\n bindKey: bindKey(\"Ctrl-Shift-E\", \"Command-Shift-E\"),\n exec: function (editor) { editor.commands.replay(editor); },\n readOnly: true\n }, {\n name: \"jumptomatching\",\n description: \"Jump to matching\",\n bindKey: bindKey(\"Ctrl-\\\\|Ctrl-P\", \"Command-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"selecttomatching\",\n description: \"Select to matching\",\n bindKey: bindKey(\"Ctrl-Shift-\\\\|Ctrl-Shift-P\", \"Command-Shift-\\\\\"),\n exec: function (editor) { editor.jumpToMatching(true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"expandToMatching\",\n description: \"Expand to matching\",\n bindKey: bindKey(\"Ctrl-Shift-M\", \"Ctrl-Shift-M\"),\n exec: function (editor) { editor.jumpToMatching(true, true); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"animate\",\n readOnly: true\n }, {\n name: \"passKeysToBrowser\",\n description: \"Pass keys to browser\",\n bindKey: bindKey(null, null),\n exec: function () { },\n passEvent: true,\n readOnly: true\n }, {\n name: \"copy\",\n description: \"Copy\",\n exec: function (editor) {\n },\n readOnly: true\n },\n {\n name: \"cut\",\n description: \"Cut\",\n exec: function (editor) {\n var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty();\n var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange();\n editor._emit(\"cut\", range);\n if (!range.isEmpty())\n editor.session.remove(range);\n editor.clearSelection();\n },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"paste\",\n description: \"Paste\",\n exec: function (editor, args) {\n editor.$handlePaste(args);\n },\n scrollIntoView: \"cursor\"\n }, {\n name: \"removeline\",\n description: \"Remove line\",\n bindKey: bindKey(\"Ctrl-D\", \"Command-D\"),\n exec: function (editor) { editor.removeLines(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"duplicateSelection\",\n description: \"Duplicate selection\",\n bindKey: bindKey(\"Ctrl-Shift-D\", \"Command-Shift-D\"),\n exec: function (editor) { editor.duplicateSelection(); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"sortlines\",\n description: \"Sort lines\",\n bindKey: bindKey(\"Ctrl-Alt-S\", \"Command-Alt-S\"),\n exec: function (editor) { editor.sortLines(); },\n scrollIntoView: \"selection\",\n multiSelectAction: \"forEachLine\"\n }, {\n name: \"togglecomment\",\n description: \"Toggle comment\",\n bindKey: bindKey(\"Ctrl-/\", \"Command-/\"),\n exec: function (editor) { editor.toggleCommentLines(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"toggleBlockComment\",\n description: \"Toggle block comment\",\n bindKey: bindKey(\"Ctrl-Shift-/\", \"Command-Shift-/\"),\n exec: function (editor) { editor.toggleBlockComment(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"modifyNumberUp\",\n description: \"Modify number up\",\n bindKey: bindKey(\"Ctrl-Shift-Up\", \"Alt-Shift-Up\"),\n exec: function (editor) { editor.modifyNumber(1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"modifyNumberDown\",\n description: \"Modify number down\",\n bindKey: bindKey(\"Ctrl-Shift-Down\", \"Alt-Shift-Down\"),\n exec: function (editor) { editor.modifyNumber(-1); },\n scrollIntoView: \"cursor\",\n multiSelectAction: \"forEach\"\n }, {\n name: \"replace\",\n description: \"Replace\",\n bindKey: bindKey(\"Ctrl-H\", \"Command-Option-F\"),\n exec: function (editor) {\n config.loadModule(\"ace/ext/searchbox\", function (e) { e.Search(editor, true); });\n }\n }, {\n name: \"undo\",\n description: \"Undo\",\n bindKey: bindKey(\"Ctrl-Z\", \"Command-Z\"),\n exec: function (editor) { editor.undo(); }\n }, {\n name: \"redo\",\n description: \"Redo\",\n bindKey: bindKey(\"Ctrl-Shift-Z|Ctrl-Y\", \"Command-Shift-Z|Command-Y\"),\n exec: function (editor) { editor.redo(); }\n }, {\n name: \"copylinesup\",\n description: \"Copy lines up\",\n bindKey: bindKey(\"Alt-Shift-Up\", \"Command-Option-Up\"),\n exec: function (editor) { editor.copyLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesup\",\n description: \"Move lines up\",\n bindKey: bindKey(\"Alt-Up\", \"Option-Up\"),\n exec: function (editor) { editor.moveLinesUp(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"copylinesdown\",\n description: \"Copy lines down\",\n bindKey: bindKey(\"Alt-Shift-Down\", \"Command-Option-Down\"),\n exec: function (editor) { editor.copyLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"movelinesdown\",\n description: \"Move lines down\",\n bindKey: bindKey(\"Alt-Down\", \"Option-Down\"),\n exec: function (editor) { editor.moveLinesDown(); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"del\",\n description: \"Delete\",\n bindKey: bindKey(\"Delete\", \"Delete|Ctrl-D|Shift-Delete\"),\n exec: function (editor) { editor.remove(\"right\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"backspace\",\n description: \"Backspace\",\n bindKey: bindKey(\"Shift-Backspace|Backspace\", \"Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H\"),\n exec: function (editor) { editor.remove(\"left\"); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"cut_or_delete\",\n description: \"Cut or delete\",\n bindKey: bindKey(\"Shift-Delete\", null),\n exec: function (editor) {\n if (editor.selection.isEmpty()) {\n editor.remove(\"left\");\n }\n else {\n return false;\n }\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestart\",\n description: \"Remove to line start\",\n bindKey: bindKey(\"Alt-Backspace\", \"Command-Backspace\"),\n exec: function (editor) { editor.removeToLineStart(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineend\",\n description: \"Remove to line end\",\n bindKey: bindKey(\"Alt-Delete\", \"Ctrl-K|Command-Delete\"),\n exec: function (editor) { editor.removeToLineEnd(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolinestarthard\",\n description: \"Remove to line start hard\",\n bindKey: bindKey(\"Ctrl-Shift-Backspace\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = 0;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removetolineendhard\",\n description: \"Remove to line end hard\",\n bindKey: bindKey(\"Ctrl-Shift-Delete\", null),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.end.column = Number.MAX_VALUE;\n editor.session.remove(range);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordleft\",\n description: \"Remove word left\",\n bindKey: bindKey(\"Ctrl-Backspace\", \"Alt-Backspace|Ctrl-Alt-Backspace\"),\n exec: function (editor) { editor.removeWordLeft(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"removewordright\",\n description: \"Remove word right\",\n bindKey: bindKey(\"Ctrl-Delete\", \"Alt-Delete\"),\n exec: function (editor) { editor.removeWordRight(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"outdent\",\n description: \"Outdent\",\n bindKey: bindKey(\"Shift-Tab\", \"Shift-Tab\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"indent\",\n description: \"Indent\",\n bindKey: bindKey(\"Tab\", \"Tab\"),\n exec: function (editor) { editor.indent(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockoutdent\",\n description: \"Block outdent\",\n bindKey: bindKey(\"Ctrl-[\", \"Ctrl-[\"),\n exec: function (editor) { editor.blockOutdent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"blockindent\",\n description: \"Block indent\",\n bindKey: bindKey(\"Ctrl-]\", \"Ctrl-]\"),\n exec: function (editor) { editor.blockIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"selectionPart\"\n }, {\n name: \"insertstring\",\n description: \"Insert string\",\n exec: function (editor, str) { editor.insert(str); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"inserttext\",\n description: \"Insert text\",\n exec: function (editor, args) {\n editor.insert(lang.stringRepeat(args.text || \"\", args.times || 1));\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"splitline\",\n description: \"Split line\",\n bindKey: bindKey(null, \"Ctrl-O\"),\n exec: function (editor) { editor.splitLine(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"transposeletters\",\n description: \"Transpose letters\",\n bindKey: bindKey(\"Alt-Shift-X\", \"Ctrl-T\"),\n exec: function (editor) { editor.transposeLetters(); },\n multiSelectAction: function (editor) { editor.transposeSelections(1); },\n scrollIntoView: \"cursor\"\n }, {\n name: \"touppercase\",\n description: \"To uppercase\",\n bindKey: bindKey(\"Ctrl-U\", \"Ctrl-U\"),\n exec: function (editor) { editor.toUpperCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"tolowercase\",\n description: \"To lowercase\",\n bindKey: bindKey(\"Ctrl-Shift-U\", \"Ctrl-Shift-U\"),\n exec: function (editor) { editor.toLowerCase(); },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"autoindent\",\n description: \"Auto Indent\",\n bindKey: bindKey(null, null),\n exec: function (editor) { editor.autoIndent(); },\n multiSelectAction: \"forEachLine\",\n scrollIntoView: \"animate\"\n }, {\n name: \"expandtoline\",\n description: \"Expand to line\",\n bindKey: bindKey(\"Ctrl-Shift-L\", \"Command-Shift-L\"),\n exec: function (editor) {\n var range = editor.selection.getRange();\n range.start.column = range.end.column = 0;\n range.end.row++;\n editor.selection.setRange(range, false);\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"openlink\",\n bindKey: bindKey(\"Ctrl+F3\", \"F3\"),\n exec: function (editor) { editor.openLink(); }\n }, {\n name: \"joinlines\",\n description: \"Join lines\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var isBackwards = editor.selection.isBackwards();\n var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor();\n var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead();\n var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length;\n var selectedText = editor.session.doc.getTextRange(editor.selection.getRange());\n var selectedCount = selectedText.replace(/\\n\\s*/, \" \").length;\n var insertLine = editor.session.doc.getLine(selectionStart.row);\n for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) {\n var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i)));\n if (curLine.length !== 0) {\n curLine = \" \" + curLine;\n }\n insertLine += curLine;\n }\n if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) {\n insertLine += editor.session.doc.getNewLineCharacter();\n }\n editor.clearSelection();\n editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine);\n if (selectedCount > 0) {\n editor.selection.moveCursorTo(selectionStart.row, selectionStart.column);\n editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount);\n }\n else {\n firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol;\n editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol);\n }\n },\n multiSelectAction: \"forEach\",\n readOnly: true\n }, {\n name: \"invertSelection\",\n description: \"Invert selection\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n var endRow = editor.session.doc.getLength() - 1;\n var endCol = editor.session.doc.getLine(endRow).length;\n var ranges = editor.selection.rangeList.ranges;\n var newRanges = [];\n if (ranges.length < 1) {\n ranges = [editor.selection.getRange()];\n }\n for (var i = 0; i < ranges.length; i++) {\n if (i == (ranges.length - 1)) {\n if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) {\n newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol));\n }\n }\n if (i === 0) {\n if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) {\n newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column));\n }\n }\n else {\n newRanges.push(new Range(ranges[i - 1].end.row, ranges[i - 1].end.column, ranges[i].start.row, ranges[i].start.column));\n }\n }\n editor.exitMultiSelectMode();\n editor.clearSelection();\n for (var i = 0; i < newRanges.length; i++) {\n editor.selection.addRange(newRanges[i], false);\n }\n },\n readOnly: true,\n scrollIntoView: \"none\"\n }, {\n name: \"addLineAfter\",\n description: \"Add new line after the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n editor.navigateLineEnd();\n editor.insert(\"\\n\");\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"addLineBefore\",\n description: \"Add new line before the current line\",\n exec: function (editor) {\n editor.selection.clearSelection();\n var cursor = editor.getCursorPosition();\n editor.selection.moveTo(cursor.row - 1, Number.MAX_VALUE);\n editor.insert(\"\\n\");\n if (cursor.row === 0)\n editor.navigateUp();\n },\n multiSelectAction: \"forEach\",\n scrollIntoView: \"cursor\"\n }, {\n name: \"openCommandPallete\",\n description: \"Open command palette\",\n bindKey: bindKey(\"F1\", \"F1\"),\n exec: function (editor) {\n editor.prompt({ $type: \"commands\" });\n },\n readOnly: true\n }, {\n name: \"modeSelect\",\n description: \"Change language mode...\",\n bindKey: bindKey(null, null),\n exec: function (editor) {\n editor.prompt({ $type: \"modes\" });\n },\n readOnly: true\n }];\nfor (var i = 1; i < 9; i++) {\n exports.commands.push({\n name: \"foldToLevel\" + i,\n description: \"Fold To Level \" + i,\n level: i,\n exec: function (editor) { editor.session.foldToLevel(this.level); },\n scrollIntoView: \"center\",\n readOnly: true\n });\n}\n\n});\n\nace.define(\"ace/line_widgets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar LineWidgets = /** @class */ (function () {\n function LineWidgets(session) {\n this.session = session;\n this.session.widgetManager = this;\n this.session.getRowLength = this.getRowLength;\n this.session.$getWidgetScreenLength = this.$getWidgetScreenLength;\n this.updateOnChange = this.updateOnChange.bind(this);\n this.renderWidgets = this.renderWidgets.bind(this);\n this.measureWidgets = this.measureWidgets.bind(this);\n this.session._changedWidgets = [];\n this.$onChangeEditor = this.$onChangeEditor.bind(this);\n this.session.on(\"change\", this.updateOnChange);\n this.session.on(\"changeFold\", this.updateOnFold);\n this.session.on(\"changeEditor\", this.$onChangeEditor);\n }\n LineWidgets.prototype.getRowLength = function (row) {\n var h;\n if (this.lineWidgets)\n h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0;\n else\n h = 0;\n if (!this.$useWrapMode || !this.$wrapData[row]) {\n return 1 + h;\n }\n else {\n return this.$wrapData[row].length + 1 + h;\n }\n };\n LineWidgets.prototype.$getWidgetScreenLength = function () {\n var screenRows = 0;\n this.lineWidgets.forEach(function (w) {\n if (w && w.rowCount && !w.hidden)\n screenRows += w.rowCount;\n });\n return screenRows;\n };\n LineWidgets.prototype.$onChangeEditor = function (e) {\n this.attach(e.editor);\n };\n LineWidgets.prototype.attach = function (editor) {\n if (editor && editor.widgetManager && editor.widgetManager != this)\n editor.widgetManager.detach();\n if (this.editor == editor)\n return;\n this.detach();\n this.editor = editor;\n if (editor) {\n editor.widgetManager = this;\n editor.renderer.on(\"beforeRender\", this.measureWidgets);\n editor.renderer.on(\"afterRender\", this.renderWidgets);\n }\n };\n LineWidgets.prototype.detach = function (e) {\n var editor = this.editor;\n if (!editor)\n return;\n this.editor = null;\n editor.widgetManager = null;\n editor.renderer.off(\"beforeRender\", this.measureWidgets);\n editor.renderer.off(\"afterRender\", this.renderWidgets);\n var lineWidgets = this.session.lineWidgets;\n lineWidgets && lineWidgets.forEach(function (w) {\n if (w && w.el && w.el.parentNode) {\n w._inDocument = false;\n w.el.parentNode.removeChild(w.el);\n }\n });\n };\n LineWidgets.prototype.updateOnFold = function (e, session) {\n var lineWidgets = session.lineWidgets;\n if (!lineWidgets || !e.action)\n return;\n var fold = e.data;\n var start = fold.start.row;\n var end = fold.end.row;\n var hide = e.action == \"add\";\n for (var i = start + 1; i < end; i++) {\n if (lineWidgets[i])\n lineWidgets[i].hidden = hide;\n }\n if (lineWidgets[end]) {\n if (hide) {\n if (!lineWidgets[start])\n lineWidgets[start] = lineWidgets[end];\n else\n lineWidgets[end].hidden = hide;\n }\n else {\n if (lineWidgets[start] == lineWidgets[end])\n lineWidgets[start] = undefined;\n lineWidgets[end].hidden = hide;\n }\n }\n };\n LineWidgets.prototype.updateOnChange = function (delta) {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var startRow = delta.start.row;\n var len = delta.end.row - startRow;\n if (len === 0) {\n }\n else if (delta.action == \"remove\") {\n var removed = lineWidgets.splice(startRow + 1, len);\n if (!lineWidgets[startRow] && removed[removed.length - 1]) {\n lineWidgets[startRow] = removed.pop();\n }\n removed.forEach(function (w) {\n w && this.removeLineWidget(w);\n }, this);\n this.$updateRows();\n }\n else {\n var args = new Array(len);\n if (lineWidgets[startRow] && lineWidgets[startRow].column != null) {\n if (delta.start.column > lineWidgets[startRow].column)\n startRow++;\n }\n args.unshift(startRow, 0);\n lineWidgets.splice.apply(lineWidgets, args);\n this.$updateRows();\n }\n };\n LineWidgets.prototype.$updateRows = function () {\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var noWidgets = true;\n lineWidgets.forEach(function (w, i) {\n if (w) {\n noWidgets = false;\n w.row = i;\n while (w.$oldWidget) {\n w.$oldWidget.row = i;\n w = w.$oldWidget;\n }\n }\n });\n if (noWidgets)\n this.session.lineWidgets = null;\n };\n LineWidgets.prototype.$registerLineWidget = function (w) {\n if (!this.session.lineWidgets)\n this.session.lineWidgets = new Array(this.session.getLength());\n var old = this.session.lineWidgets[w.row];\n if (old) {\n w.$oldWidget = old;\n if (old.el && old.el.parentNode) {\n old.el.parentNode.removeChild(old.el);\n old._inDocument = false;\n }\n }\n this.session.lineWidgets[w.row] = w;\n return w;\n };\n LineWidgets.prototype.addLineWidget = function (w) {\n this.$registerLineWidget(w);\n w.session = this.session;\n if (!this.editor)\n return w;\n var renderer = this.editor.renderer;\n if (w.html && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.innerHTML = w.html;\n }\n if (w.text && !w.el) {\n w.el = dom.createElement(\"div\");\n w.el.textContent = w.text;\n }\n if (w.el) {\n dom.addCssClass(w.el, \"ace_lineWidgetContainer\");\n if (w.className) {\n dom.addCssClass(w.el, w.className);\n }\n w.el.style.position = \"absolute\";\n w.el.style.zIndex = 5;\n renderer.container.appendChild(w.el);\n w._inDocument = true;\n if (!w.coverGutter) {\n w.el.style.zIndex = 3;\n }\n if (w.pixelHeight == null) {\n w.pixelHeight = w.el.offsetHeight;\n }\n }\n if (w.rowCount == null) {\n w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight;\n }\n var fold = this.session.getFoldAt(w.row, 0);\n w.$fold = fold;\n if (fold) {\n var lineWidgets = this.session.lineWidgets;\n if (w.row == fold.end.row && !lineWidgets[fold.start.row])\n lineWidgets[fold.start.row] = w;\n else\n w.hidden = true;\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n this.renderWidgets(null, renderer);\n this.onWidgetChanged(w);\n return w;\n };\n LineWidgets.prototype.removeLineWidget = function (w) {\n w._inDocument = false;\n w.session = null;\n if (w.el && w.el.parentNode)\n w.el.parentNode.removeChild(w.el);\n if (w.editor && w.editor.destroy)\n try {\n w.editor.destroy();\n }\n catch (e) { }\n if (this.session.lineWidgets) {\n var w1 = this.session.lineWidgets[w.row];\n if (w1 == w) {\n this.session.lineWidgets[w.row] = w.$oldWidget;\n if (w.$oldWidget)\n this.onWidgetChanged(w.$oldWidget);\n }\n else {\n while (w1) {\n if (w1.$oldWidget == w) {\n w1.$oldWidget = w.$oldWidget;\n break;\n }\n w1 = w1.$oldWidget;\n }\n }\n }\n this.session._emit(\"changeFold\", { data: { start: { row: w.row } } });\n this.$updateRows();\n };\n LineWidgets.prototype.getWidgetsAtRow = function (row) {\n var lineWidgets = this.session.lineWidgets;\n var w = lineWidgets && lineWidgets[row];\n var list = [];\n while (w) {\n list.push(w);\n w = w.$oldWidget;\n }\n return list;\n };\n LineWidgets.prototype.onWidgetChanged = function (w) {\n this.session._changedWidgets.push(w);\n this.editor && this.editor.renderer.updateFull();\n };\n LineWidgets.prototype.measureWidgets = function (e, renderer) {\n var changedWidgets = this.session._changedWidgets;\n var config = renderer.layerConfig;\n if (!changedWidgets || !changedWidgets.length)\n return;\n var min = Infinity;\n for (var i = 0; i < changedWidgets.length; i++) {\n var w = changedWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.session != this.session)\n continue;\n if (!w._inDocument) {\n if (this.session.lineWidgets[w.row] != w)\n continue;\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n w.h = w.el.offsetHeight;\n if (!w.fixedWidth) {\n w.w = w.el.offsetWidth;\n w.screenWidth = Math.ceil(w.w / config.characterWidth);\n }\n var rowCount = w.h / config.lineHeight;\n if (w.coverLine) {\n rowCount -= this.session.getRowLineCount(w.row);\n if (rowCount < 0)\n rowCount = 0;\n }\n if (w.rowCount != rowCount) {\n w.rowCount = rowCount;\n if (w.row < min)\n min = w.row;\n }\n }\n if (min != Infinity) {\n this.session._emit(\"changeFold\", { data: { start: { row: min } } });\n this.session.lineWidgetWidth = null;\n }\n this.session._changedWidgets = [];\n };\n LineWidgets.prototype.renderWidgets = function (e, renderer) {\n var config = renderer.layerConfig;\n var lineWidgets = this.session.lineWidgets;\n if (!lineWidgets)\n return;\n var first = Math.min(this.firstRow, config.firstRow);\n var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length);\n while (first > 0 && !lineWidgets[first])\n first--;\n this.firstRow = config.firstRow;\n this.lastRow = config.lastRow;\n renderer.$cursorLayer.config = config;\n for (var i = first; i <= last; i++) {\n var w = lineWidgets[i];\n if (!w || !w.el)\n continue;\n if (w.hidden) {\n w.el.style.top = -100 - (w.pixelHeight || 0) + \"px\";\n continue;\n }\n if (!w._inDocument) {\n w._inDocument = true;\n renderer.container.appendChild(w.el);\n }\n var top = renderer.$cursorLayer.getPixelPosition({ row: i, column: 0 }, true).top;\n if (!w.coverLine)\n top += config.lineHeight * this.session.getRowLineCount(w.row);\n w.el.style.top = top - config.offset + \"px\";\n var left = w.coverGutter ? 0 : renderer.gutterWidth;\n if (!w.fixedWidth)\n left -= renderer.scrollLeft;\n w.el.style.left = left + \"px\";\n if (w.fullWidth && w.screenWidth) {\n w.el.style.minWidth = config.width + 2 * config.padding + \"px\";\n }\n if (w.fixedWidth) {\n w.el.style.right = renderer.scrollBar.getWidth() + \"px\";\n }\n else {\n w.el.style.right = \"\";\n }\n }\n };\n return LineWidgets;\n}());\nexports.LineWidgets = LineWidgets;\n\n});\n\nace.define(\"ace/keyboard/gutter_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/keys\",\"ace/mouse/default_gutter_handler\"], function(require, exports, module){\"use strict\";\nvar keys = require('../lib/keys');\nvar GutterTooltip = require(\"../mouse/default_gutter_handler\").GutterTooltip;\nvar GutterKeyboardHandler = /** @class */ (function () {\n function GutterKeyboardHandler(editor) {\n this.editor = editor;\n this.gutterLayer = editor.renderer.$gutterLayer;\n this.element = editor.renderer.$gutter;\n this.lines = editor.renderer.$gutterLayer.$lines;\n this.activeRowIndex = null;\n this.activeLane = null;\n this.annotationTooltip = new GutterTooltip(this.editor);\n }\n GutterKeyboardHandler.prototype.addListener = function () {\n this.element.addEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.addEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.on(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.removeListener = function () {\n this.element.removeEventListener(\"keydown\", this.$onGutterKeyDown.bind(this));\n this.element.removeEventListener(\"focusout\", this.$blurGutter.bind(this));\n this.editor.off(\"mousewheel\", this.$blurGutter.bind(this));\n };\n GutterKeyboardHandler.prototype.$onGutterKeyDown = function (e) {\n if (this.annotationTooltip.isOpen) {\n e.preventDefault();\n if (e.keyCode === keys[\"escape\"])\n this.annotationTooltip.hideTooltip();\n return;\n }\n if (e.target === this.element) {\n if (e.keyCode != keys[\"enter\"]) {\n return;\n }\n e.preventDefault();\n var row = this.editor.getCursorPosition().row;\n if (!this.editor.isRowVisible(row))\n this.editor.scrollToLine(row, true, true);\n setTimeout(function () {\n var index = this.$rowToRowIndex(this.gutterLayer.$cursorCell.row);\n var nearestFoldIndex = this.$findNearestFoldWidget(index);\n var nearestAnnotationIndex = this.$findNearestAnnotation(index);\n if (nearestFoldIndex === null && nearestAnnotationIndex === null)\n return;\n if (nearestFoldIndex === null && nearestAnnotationIndex !== null) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n if (nearestFoldIndex !== null && nearestAnnotationIndex === null) {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n if (Math.abs(nearestAnnotationIndex - index) < Math.abs(nearestFoldIndex - index)) {\n this.activeRowIndex = nearestAnnotationIndex;\n this.activeLane = \"annotation\";\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n else {\n this.activeRowIndex = nearestFoldIndex;\n this.activeLane = \"fold\";\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }.bind(this), 10);\n return;\n }\n this.$handleGutterKeyboardInteraction(e);\n setTimeout(function () {\n this.editor._signal(\"gutterkeydown\", new GutterKeyboardEvent(e, this));\n }.bind(this), 10);\n };\n GutterKeyboardHandler.prototype.$handleGutterKeyboardInteraction = function (e) {\n if (e.keyCode === keys[\"tab\"]) {\n e.preventDefault();\n return;\n }\n if (e.keyCode === keys[\"escape\"]) {\n e.preventDefault();\n this.$blurGutter();\n this.element.focus();\n this.lane = null;\n return;\n }\n if (e.keyCode === keys[\"up\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetUp();\n break;\n case \"annotation\":\n this.$moveAnnotationUp();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"down\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n this.$moveFoldWidgetDown();\n break;\n case \"annotation\":\n this.$moveAnnotationDown();\n break;\n }\n return;\n }\n if (e.keyCode === keys[\"left\"]) {\n e.preventDefault();\n this.$switchLane(\"annotation\");\n return;\n }\n if (e.keyCode === keys[\"right\"]) {\n e.preventDefault();\n this.$switchLane(\"fold\");\n return;\n }\n if (e.keyCode === keys[\"enter\"] || e.keyCode === keys[\"space\"]) {\n e.preventDefault();\n switch (this.activeLane) {\n case \"fold\":\n if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'start') {\n var rowFoldingWidget = this.$rowIndexToRow(this.activeRowIndex);\n this.editor.session.onFoldWidgetClick(this.$rowIndexToRow(this.activeRowIndex), e);\n setTimeout(function () {\n if (this.$rowIndexToRow(this.activeRowIndex) !== rowFoldingWidget) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = this.$rowToRowIndex(rowFoldingWidget);\n this.$focusFoldWidget(this.activeRowIndex);\n }\n }.bind(this), 10);\n break;\n }\n else if (this.gutterLayer.session.foldWidgets[this.$rowIndexToRow(this.activeRowIndex)] === 'end') {\n break;\n }\n return;\n case \"annotation\":\n var gutterElement = this.lines.cells[this.activeRowIndex].element.childNodes[2];\n var rect = gutterElement.getBoundingClientRect();\n var style = this.annotationTooltip.getElement().style;\n style.left = rect.right + \"px\";\n style.top = rect.bottom + \"px\";\n this.annotationTooltip.showTooltip(this.$rowIndexToRow(this.activeRowIndex));\n break;\n }\n return;\n }\n };\n GutterKeyboardHandler.prototype.$blurGutter = function () {\n if (this.activeRowIndex !== null) {\n switch (this.activeLane) {\n case \"fold\":\n this.$blurFoldWidget(this.activeRowIndex);\n break;\n case \"annotation\":\n this.$blurAnnotation(this.activeRowIndex);\n break;\n }\n }\n if (this.annotationTooltip.isOpen)\n this.annotationTooltip.hideTooltip();\n return;\n };\n GutterKeyboardHandler.prototype.$isFoldWidgetVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getFoldWidget(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$isAnnotationVisible = function (index) {\n var isRowFullyVisible = this.editor.isRowFullyVisible(this.$rowIndexToRow(index));\n var isIconVisible = this.$getAnnotation(index).style.display !== \"none\";\n return isRowFullyVisible && isIconVisible;\n };\n GutterKeyboardHandler.prototype.$getFoldWidget = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[1];\n };\n GutterKeyboardHandler.prototype.$getAnnotation = function (index) {\n var cell = this.lines.get(index);\n var element = cell.element;\n return element.childNodes[2];\n };\n GutterKeyboardHandler.prototype.$findNearestFoldWidget = function (index) {\n if (this.$isFoldWidgetVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isFoldWidgetVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isFoldWidgetVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$findNearestAnnotation = function (index) {\n if (this.$isAnnotationVisible(index))\n return index;\n var i = 0;\n while (index - i > 0 || index + i < this.lines.getLength() - 1) {\n i++;\n if (index - i >= 0 && this.$isAnnotationVisible(index - i))\n return index - i;\n if (index + i <= this.lines.getLength() - 1 && this.$isAnnotationVisible(index + i))\n return index + i;\n }\n return null;\n };\n GutterKeyboardHandler.prototype.$focusFoldWidget = function (index) {\n if (index == null)\n return;\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.add(this.editor.renderer.keyboardFocusClassName);\n foldWidget.focus();\n };\n GutterKeyboardHandler.prototype.$focusAnnotation = function (index) {\n if (index == null)\n return;\n var annotation = this.$getAnnotation(index);\n annotation.classList.add(this.editor.renderer.keyboardFocusClassName);\n annotation.focus();\n };\n GutterKeyboardHandler.prototype.$blurFoldWidget = function (index) {\n var foldWidget = this.$getFoldWidget(index);\n foldWidget.classList.remove(this.editor.renderer.keyboardFocusClassName);\n foldWidget.blur();\n };\n GutterKeyboardHandler.prototype.$blurAnnotation = function (index) {\n var annotation = this.$getAnnotation(index);\n annotation.classList.remove(this.editor.renderer.keyboardFocusClassName);\n annotation.blur();\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveFoldWidgetDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isFoldWidgetVisible(index)) {\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusFoldWidget(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationUp = function () {\n var index = this.activeRowIndex;\n while (index > 0) {\n index--;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$moveAnnotationDown = function () {\n var index = this.activeRowIndex;\n while (index < this.lines.getLength() - 1) {\n index++;\n if (this.$isAnnotationVisible(index)) {\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = index;\n this.$focusAnnotation(this.activeRowIndex);\n return;\n }\n }\n return;\n };\n GutterKeyboardHandler.prototype.$switchLane = function (desinationLane) {\n switch (desinationLane) {\n case \"annotation\":\n if (this.activeLane === \"annotation\") {\n break;\n }\n var annotationIndex = this.$findNearestAnnotation(this.activeRowIndex);\n if (annotationIndex == null) {\n break;\n }\n this.activeLane = \"annotation\";\n this.$blurFoldWidget(this.activeRowIndex);\n this.activeRowIndex = annotationIndex;\n this.$focusAnnotation(this.activeRowIndex);\n break;\n case \"fold\":\n if (this.activeLane === \"fold\") {\n break;\n }\n var foldWidgetIndex = this.$findNearestFoldWidget(this.activeRowIndex);\n if (foldWidgetIndex == null) {\n break;\n }\n this.activeLane = \"fold\";\n this.$blurAnnotation(this.activeRowIndex);\n this.activeRowIndex = foldWidgetIndex;\n this.$focusFoldWidget(this.activeRowIndex);\n break;\n }\n return;\n };\n GutterKeyboardHandler.prototype.$rowIndexToRow = function (index) {\n var cell = this.lines.get(index);\n if (cell)\n return cell.row;\n return null;\n };\n GutterKeyboardHandler.prototype.$rowToRowIndex = function (row) {\n for (var i = 0; i < this.lines.getLength(); i++) {\n var cell = this.lines.get(i);\n if (cell.row == row)\n return i;\n }\n return null;\n };\n return GutterKeyboardHandler;\n}());\nexports.GutterKeyboardHandler = GutterKeyboardHandler;\nvar GutterKeyboardEvent = /** @class */ (function () {\n function GutterKeyboardEvent(domEvent, gutterKeyboardHandler) {\n this.gutterKeyboardHandler = gutterKeyboardHandler;\n this.domEvent = domEvent;\n }\n GutterKeyboardEvent.prototype.getKey = function () {\n return keys.keyCodeToString(this.domEvent.keyCode);\n };\n GutterKeyboardEvent.prototype.getRow = function () {\n return this.gutterKeyboardHandler.$rowIndexToRow(this.gutterKeyboardHandler.activeRowIndex);\n };\n GutterKeyboardEvent.prototype.isInAnnotationLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"annotation\";\n };\n GutterKeyboardEvent.prototype.isInFoldLane = function () {\n return this.gutterKeyboardHandler.activeLane === \"fold\";\n };\n return GutterKeyboardEvent;\n}());\nexports.GutterKeyboardEvent = GutterKeyboardEvent;\n\n});\n\nace.define(\"ace/editor\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/useragent\",\"ace/keyboard/textinput\",\"ace/mouse/mouse_handler\",\"ace/mouse/fold_handler\",\"ace/keyboard/keybinding\",\"ace/edit_session\",\"ace/search\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/commands/command_manager\",\"ace/commands/default_commands\",\"ace/config\",\"ace/token_iterator\",\"ace/line_widgets\",\"ace/keyboard/gutter_handler\",\"ace/config\",\"ace/clipboard\",\"ace/lib/keys\"], function(require, exports, module){\"use strict\";\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar useragent = require(\"./lib/useragent\");\nvar TextInput = require(\"./keyboard/textinput\").TextInput;\nvar MouseHandler = require(\"./mouse/mouse_handler\").MouseHandler;\nvar FoldHandler = require(\"./mouse/fold_handler\").FoldHandler;\nvar KeyBinding = require(\"./keyboard/keybinding\").KeyBinding;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar Search = require(\"./search\").Search;\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar CommandManager = require(\"./commands/command_manager\").CommandManager;\nvar defaultCommands = require(\"./commands/default_commands\").commands;\nvar config = require(\"./config\");\nvar TokenIterator = require(\"./token_iterator\").TokenIterator;\nvar LineWidgets = require(\"./line_widgets\").LineWidgets;\nvar GutterKeyboardHandler = require(\"./keyboard/gutter_handler\").GutterKeyboardHandler;\nvar nls = require(\"./config\").nls;\nvar clipboard = require(\"./clipboard\");\nvar keys = require('./lib/keys');\nvar Editor = /** @class */ (function () {\n function Editor(renderer, session, options) {\n this.$toDestroy = [];\n var container = renderer.getContainerElement();\n this.container = container;\n this.renderer = renderer;\n this.id = \"editor\" + (++Editor.$uid);\n this.commands = new CommandManager(useragent.isMac ? \"mac\" : \"win\", defaultCommands);\n if (typeof document == \"object\") {\n this.textInput = new TextInput(renderer.getTextAreaContainer(), this);\n this.renderer.textarea = this.textInput.getElement();\n this.$mouseHandler = new MouseHandler(this);\n new FoldHandler(this);\n }\n this.keyBinding = new KeyBinding(this);\n this.$search = new Search().set({\n wrap: true\n });\n this.$historyTracker = this.$historyTracker.bind(this);\n this.commands.on(\"exec\", this.$historyTracker);\n this.$initOperationListeners();\n this._$emitInputEvent = lang.delayedCall(function () {\n this._signal(\"input\", {});\n if (this.session && !this.session.destroyed)\n this.session.bgTokenizer.scheduleStart();\n }.bind(this));\n this.on(\"change\", function (_, _self) {\n _self._$emitInputEvent.schedule(31);\n });\n this.setSession(session || options && options.session || new EditSession(\"\"));\n config.resetOptions(this);\n if (options)\n this.setOptions(options);\n config._signal(\"editor\", this);\n }\n Editor.prototype.$initOperationListeners = function () {\n this.commands.on(\"exec\", this.startOperation.bind(this), true);\n this.commands.on(\"afterExec\", this.endOperation.bind(this), true);\n this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true));\n this.on(\"change\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.docChanged = true;\n }.bind(this), true);\n this.on(\"changeSelection\", function () {\n if (!this.curOp) {\n this.startOperation();\n this.curOp.selectionBefore = this.$lastSel;\n }\n this.curOp.selectionChanged = true;\n }.bind(this), true);\n };\n Editor.prototype.startOperation = function (commandEvent) {\n if (this.curOp) {\n if (!commandEvent || this.curOp.command)\n return;\n this.prevOp = this.curOp;\n }\n if (!commandEvent) {\n this.previousCommand = null;\n commandEvent = {};\n }\n this.$opResetTimer.schedule();\n this.curOp = this.session.curOp = {\n command: commandEvent.command || {},\n args: commandEvent.args,\n scrollTop: this.renderer.scrollTop\n };\n this.curOp.selectionBefore = this.selection.toJSON();\n };\n Editor.prototype.endOperation = function (e) {\n if (this.curOp && this.session) {\n if (e && e.returnValue === false || !this.session)\n return (this.curOp = null);\n if (e == true && this.curOp.command && this.curOp.command.name == \"mouse\")\n return;\n this._signal(\"beforeEndOperation\");\n if (!this.curOp)\n return;\n var command = this.curOp.command;\n var scrollIntoView = command && command.scrollIntoView;\n if (scrollIntoView) {\n switch (scrollIntoView) {\n case \"center-animate\":\n scrollIntoView = \"animate\";\n case \"center\":\n this.renderer.scrollCursorIntoView(null, 0.5);\n break;\n case \"animate\":\n case \"cursor\":\n this.renderer.scrollCursorIntoView();\n break;\n case \"selectionPart\":\n var range = this.selection.getRange();\n var config = this.renderer.layerConfig;\n if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) {\n this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead);\n }\n break;\n default:\n break;\n }\n if (scrollIntoView == \"animate\")\n this.renderer.animateScrolling(this.curOp.scrollTop);\n }\n var sel = this.selection.toJSON();\n this.curOp.selectionAfter = sel;\n this.$lastSel = this.selection.toJSON();\n this.session.getUndoManager().addSelection(sel);\n this.prevOp = this.curOp;\n this.curOp = null;\n }\n };\n Editor.prototype.$historyTracker = function (e) {\n if (!this.$mergeUndoDeltas)\n return;\n var prev = this.prevOp;\n var mergeableCommands = this.$mergeableCommands;\n var shouldMerge = prev.command && (e.command.name == prev.command.name);\n if (e.command.name == \"insertstring\") {\n var text = e.args;\n if (this.mergeNextCommand === undefined)\n this.mergeNextCommand = true;\n shouldMerge = shouldMerge\n && this.mergeNextCommand // previous command allows to coalesce with\n && (!/\\s/.test(text) || /\\s/.test(prev.args)); // previous insertion was of same type\n this.mergeNextCommand = true;\n }\n else {\n shouldMerge = shouldMerge\n && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable\n }\n if (this.$mergeUndoDeltas != \"always\"\n && Date.now() - this.sequenceStartTime > 2000) {\n shouldMerge = false; // the sequence is too long\n }\n if (shouldMerge)\n this.session.mergeUndoDeltas = true;\n else if (mergeableCommands.indexOf(e.command.name) !== -1)\n this.sequenceStartTime = Date.now();\n };\n Editor.prototype.setKeyboardHandler = function (keyboardHandler, cb) {\n if (keyboardHandler && typeof keyboardHandler === \"string\" && keyboardHandler != \"ace\") {\n this.$keybindingId = keyboardHandler;\n var _self = this;\n config.loadModule([\"keybinding\", keyboardHandler], function (module) {\n if (_self.$keybindingId == keyboardHandler)\n _self.keyBinding.setKeyboardHandler(module && module.handler);\n cb && cb();\n });\n }\n else {\n this.$keybindingId = null;\n this.keyBinding.setKeyboardHandler(keyboardHandler);\n cb && cb();\n }\n };\n Editor.prototype.getKeyboardHandler = function () {\n return this.keyBinding.getKeyboardHandler();\n };\n Editor.prototype.setSession = function (session) {\n if (this.session == session)\n return;\n if (this.curOp)\n this.endOperation();\n this.curOp = {};\n var oldSession = this.session;\n if (oldSession) {\n this.session.off(\"change\", this.$onDocumentChange);\n this.session.off(\"changeMode\", this.$onChangeMode);\n this.session.off(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.session.off(\"changeTabSize\", this.$onChangeTabSize);\n this.session.off(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.session.off(\"changeWrapMode\", this.$onChangeWrapMode);\n this.session.off(\"changeFold\", this.$onChangeFold);\n this.session.off(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.session.off(\"changeBackMarker\", this.$onChangeBackMarker);\n this.session.off(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.session.off(\"changeAnnotation\", this.$onChangeAnnotation);\n this.session.off(\"changeOverwrite\", this.$onCursorChange);\n this.session.off(\"changeScrollTop\", this.$onScrollTopChange);\n this.session.off(\"changeScrollLeft\", this.$onScrollLeftChange);\n var selection = this.session.getSelection();\n selection.off(\"changeCursor\", this.$onCursorChange);\n selection.off(\"changeSelection\", this.$onSelectionChange);\n }\n this.session = session;\n if (session) {\n this.$onDocumentChange = this.onDocumentChange.bind(this);\n session.on(\"change\", this.$onDocumentChange);\n this.renderer.setSession(session);\n this.$onChangeMode = this.onChangeMode.bind(this);\n session.on(\"changeMode\", this.$onChangeMode);\n this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this);\n session.on(\"tokenizerUpdate\", this.$onTokenizerUpdate);\n this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer);\n session.on(\"changeTabSize\", this.$onChangeTabSize);\n this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this);\n session.on(\"changeWrapLimit\", this.$onChangeWrapLimit);\n this.$onChangeWrapMode = this.onChangeWrapMode.bind(this);\n session.on(\"changeWrapMode\", this.$onChangeWrapMode);\n this.$onChangeFold = this.onChangeFold.bind(this);\n session.on(\"changeFold\", this.$onChangeFold);\n this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this);\n this.session.on(\"changeFrontMarker\", this.$onChangeFrontMarker);\n this.$onChangeBackMarker = this.onChangeBackMarker.bind(this);\n this.session.on(\"changeBackMarker\", this.$onChangeBackMarker);\n this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this);\n this.session.on(\"changeBreakpoint\", this.$onChangeBreakpoint);\n this.$onChangeAnnotation = this.onChangeAnnotation.bind(this);\n this.session.on(\"changeAnnotation\", this.$onChangeAnnotation);\n this.$onCursorChange = this.onCursorChange.bind(this);\n this.session.on(\"changeOverwrite\", this.$onCursorChange);\n this.$onScrollTopChange = this.onScrollTopChange.bind(this);\n this.session.on(\"changeScrollTop\", this.$onScrollTopChange);\n this.$onScrollLeftChange = this.onScrollLeftChange.bind(this);\n this.session.on(\"changeScrollLeft\", this.$onScrollLeftChange);\n this.selection = session.getSelection();\n this.selection.on(\"changeCursor\", this.$onCursorChange);\n this.$onSelectionChange = this.onSelectionChange.bind(this);\n this.selection.on(\"changeSelection\", this.$onSelectionChange);\n this.onChangeMode();\n this.onCursorChange();\n this.onScrollTopChange();\n this.onScrollLeftChange();\n this.onSelectionChange();\n this.onChangeFrontMarker();\n this.onChangeBackMarker();\n this.onChangeBreakpoint();\n this.onChangeAnnotation();\n this.session.getUseWrapMode() && this.renderer.adjustWrapLimit();\n this.renderer.updateFull();\n }\n else {\n this.selection = null;\n this.renderer.setSession(session);\n }\n this._signal(\"changeSession\", {\n session: session,\n oldSession: oldSession\n });\n this.curOp = null;\n oldSession && oldSession._signal(\"changeEditor\", { oldEditor: this });\n session && session._signal(\"changeEditor\", { editor: this });\n if (session && !session.destroyed)\n session.bgTokenizer.scheduleStart();\n };\n Editor.prototype.getSession = function () {\n return this.session;\n };\n Editor.prototype.setValue = function (val, cursorPos) {\n this.session.doc.setValue(val);\n if (!cursorPos)\n this.selectAll();\n else if (cursorPos == 1)\n this.navigateFileEnd();\n else if (cursorPos == -1)\n this.navigateFileStart();\n return val;\n };\n Editor.prototype.getValue = function () {\n return this.session.getValue();\n };\n Editor.prototype.getSelection = function () {\n return this.selection;\n };\n Editor.prototype.resize = function (force) {\n this.renderer.onResize(force);\n };\n Editor.prototype.setTheme = function (theme, cb) {\n this.renderer.setTheme(theme, cb);\n };\n Editor.prototype.getTheme = function () {\n return this.renderer.getTheme();\n };\n Editor.prototype.setStyle = function (style) {\n this.renderer.setStyle(style);\n };\n Editor.prototype.unsetStyle = function (style) {\n this.renderer.unsetStyle(style);\n };\n Editor.prototype.getFontSize = function () {\n return this.getOption(\"fontSize\") ||\n dom.computedStyle(this.container).fontSize;\n };\n Editor.prototype.setFontSize = function (size) {\n this.setOption(\"fontSize\", size);\n };\n Editor.prototype.$highlightBrackets = function () {\n if (this.$highlightPending) {\n return;\n }\n var self = this;\n this.$highlightPending = true;\n setTimeout(function () {\n self.$highlightPending = false;\n var session = self.session;\n if (!session || session.destroyed)\n return;\n if (session.$bracketHighlight) {\n session.$bracketHighlight.markerIds.forEach(function (id) {\n session.removeMarker(id);\n });\n session.$bracketHighlight = null;\n }\n var pos = self.getCursorPosition();\n var handler = self.getKeyboardHandler();\n var isBackwards = handler && handler.$getDirectionForHighlight && handler.$getDirectionForHighlight(self);\n var ranges = session.getMatchingBracketRanges(pos, isBackwards);\n if (!ranges) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n if (token && /\\b(?:tag-open|tag-name)/.test(token.type)) {\n var tagNamesRanges = session.getMatchingTags(pos);\n if (tagNamesRanges)\n ranges = [tagNamesRanges.openTagName, tagNamesRanges.closeTagName];\n }\n }\n if (!ranges && session.$mode.getMatching)\n ranges = session.$mode.getMatching(self.session);\n if (!ranges) {\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n return;\n }\n var markerType = \"ace_bracket\";\n if (!Array.isArray(ranges)) {\n ranges = [ranges];\n }\n else if (ranges.length == 1) {\n markerType = \"ace_error_bracket\";\n }\n if (ranges.length == 2) {\n if (Range.comparePoints(ranges[0].end, ranges[1].start) == 0)\n ranges = [Range.fromPoints(ranges[0].start, ranges[1].end)];\n else if (Range.comparePoints(ranges[0].start, ranges[1].end) == 0)\n ranges = [Range.fromPoints(ranges[1].start, ranges[0].end)];\n }\n session.$bracketHighlight = {\n ranges: ranges,\n markerIds: ranges.map(function (range) {\n return session.addMarker(range, markerType, \"text\");\n })\n };\n if (self.getHighlightIndentGuides())\n self.renderer.$textLayer.$highlightIndentGuide();\n }, 50);\n };\n Editor.prototype.focus = function () {\n this.textInput.focus();\n };\n Editor.prototype.isFocused = function () {\n return this.textInput.isFocused();\n };\n Editor.prototype.blur = function () {\n this.textInput.blur();\n };\n Editor.prototype.onFocus = function (e) {\n if (this.$isFocused)\n return;\n this.$isFocused = true;\n this.renderer.showCursor();\n this.renderer.visualizeFocus();\n this._emit(\"focus\", e);\n };\n Editor.prototype.onBlur = function (e) {\n if (!this.$isFocused)\n return;\n this.$isFocused = false;\n this.renderer.hideCursor();\n this.renderer.visualizeBlur();\n this._emit(\"blur\", e);\n };\n Editor.prototype.$cursorChange = function () {\n this.renderer.updateCursor();\n this.$highlightBrackets();\n this.$updateHighlightActiveLine();\n };\n Editor.prototype.onDocumentChange = function (delta) {\n var wrap = this.session.$useWrapMode;\n var lastRow = (delta.start.row == delta.end.row ? delta.end.row : Infinity);\n this.renderer.updateLines(delta.start.row, lastRow, wrap);\n this._signal(\"change\", delta);\n this.$cursorChange();\n };\n Editor.prototype.onTokenizerUpdate = function (e) {\n var rows = e.data;\n this.renderer.updateLines(rows.first, rows.last);\n };\n Editor.prototype.onScrollTopChange = function () {\n this.renderer.scrollToY(this.session.getScrollTop());\n };\n Editor.prototype.onScrollLeftChange = function () {\n this.renderer.scrollToX(this.session.getScrollLeft());\n };\n Editor.prototype.onCursorChange = function () {\n this.$cursorChange();\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$updateHighlightActiveLine = function () {\n var session = this.getSession();\n var highlight;\n if (this.$highlightActiveLine) {\n if (this.$selectionStyle != \"line\" || !this.selection.isMultiLine())\n highlight = this.getCursorPosition();\n if (this.renderer.theme && this.renderer.theme.$selectionColorConflict && !this.selection.isEmpty())\n highlight = false;\n if (this.renderer.$maxLines && this.session.getLength() === 1 && !(this.renderer.$minLines > 1))\n highlight = false;\n }\n if (session.$highlightLineMarker && !highlight) {\n session.removeMarker(session.$highlightLineMarker.id);\n session.$highlightLineMarker = null;\n }\n else if (!session.$highlightLineMarker && highlight) {\n var range = new Range(highlight.row, highlight.column, highlight.row, Infinity);\n range.id = session.addMarker(range, \"ace_active-line\", \"screenLine\");\n session.$highlightLineMarker = range;\n }\n else if (highlight) {\n session.$highlightLineMarker.start.row = highlight.row;\n session.$highlightLineMarker.end.row = highlight.row;\n session.$highlightLineMarker.start.column = highlight.column;\n session._signal(\"changeBackMarker\");\n }\n };\n Editor.prototype.onSelectionChange = function (e) {\n var session = this.session;\n if (session.$selectionMarker) {\n session.removeMarker(session.$selectionMarker);\n }\n session.$selectionMarker = null;\n if (!this.selection.isEmpty()) {\n var range = this.selection.getRange();\n var style = this.getSelectionStyle();\n session.$selectionMarker = session.addMarker(range, \"ace_selection\", style);\n }\n else {\n this.$updateHighlightActiveLine();\n }\n var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp();\n this.session.highlight(re);\n this._signal(\"changeSelection\");\n };\n Editor.prototype.$getSelectionHighLightRegexp = function () {\n var session = this.session;\n var selection = this.getSelectionRange();\n if (selection.isEmpty() || selection.isMultiLine())\n return;\n var startColumn = selection.start.column;\n var endColumn = selection.end.column;\n var line = session.getLine(selection.start.row);\n var needle = line.substring(startColumn, endColumn);\n if (needle.length > 5000 || !/[\\w\\d]/.test(needle))\n return;\n var re = this.$search.$assembleRegExp({\n wholeWord: true,\n caseSensitive: true,\n needle: needle\n });\n var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1);\n if (!re.test(wordWithBoundary))\n return;\n return re;\n };\n Editor.prototype.onChangeFrontMarker = function () {\n this.renderer.updateFrontMarkers();\n };\n Editor.prototype.onChangeBackMarker = function () {\n this.renderer.updateBackMarkers();\n };\n Editor.prototype.onChangeBreakpoint = function () {\n this.renderer.updateBreakpoints();\n };\n Editor.prototype.onChangeAnnotation = function () {\n this.renderer.setAnnotations(this.session.getAnnotations());\n };\n Editor.prototype.onChangeMode = function (e) {\n this.renderer.updateText();\n this._emit(\"changeMode\", e);\n };\n Editor.prototype.onChangeWrapLimit = function () {\n this.renderer.updateFull();\n };\n Editor.prototype.onChangeWrapMode = function () {\n this.renderer.onResize(true);\n };\n Editor.prototype.onChangeFold = function () {\n this.$updateHighlightActiveLine();\n this.renderer.updateFull();\n };\n Editor.prototype.getSelectedText = function () {\n return this.session.getTextRange(this.getSelectionRange());\n };\n Editor.prototype.getCopyText = function () {\n var text = this.getSelectedText();\n var nl = this.session.doc.getNewLineCharacter();\n var copyLine = false;\n if (!text && this.$copyWithEmptySelection) {\n copyLine = true;\n var ranges = this.selection.getAllRanges();\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (i && ranges[i - 1].start.row == range.start.row)\n continue;\n text += this.session.getLine(range.start.row) + nl;\n }\n }\n var e = { text: text };\n this._signal(\"copy\", e);\n clipboard.lineMode = copyLine ? e.text : false;\n return e.text;\n };\n Editor.prototype.onCopy = function () {\n this.commands.exec(\"copy\", this);\n };\n Editor.prototype.onCut = function () {\n this.commands.exec(\"cut\", this);\n };\n Editor.prototype.onPaste = function (text, event) {\n var e = { text: text, event: event };\n this.commands.exec(\"paste\", this, e);\n };\n Editor.prototype.$handlePaste = function (e) {\n if (typeof e == \"string\")\n e = { text: e };\n this._signal(\"paste\", e);\n var text = e.text;\n var lineMode = text === clipboard.lineMode;\n var session = this.session;\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode) {\n if (lineMode)\n session.insert({ row: this.selection.lead.row, column: 0 }, text);\n else\n this.insert(text);\n }\n else if (lineMode) {\n this.selection.rangeList.ranges.forEach(function (range) {\n session.insert({ row: range.start.row, column: 0 }, text);\n });\n }\n else {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var ranges = this.selection.rangeList.ranges;\n var isFullLine = lines.length == 2 && (!lines[0] || !lines[1]);\n if (lines.length != ranges.length || isFullLine)\n return this.commands.exec(\"insertstring\", this, text);\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.isEmpty())\n session.remove(range);\n session.insert(range.start, lines[i]);\n }\n }\n };\n Editor.prototype.execCommand = function (command, args) {\n return this.commands.exec(command, this, args);\n };\n Editor.prototype.insert = function (text, pasted) {\n var session = this.session;\n var mode = session.getMode();\n var cursor = this.getCursorPosition();\n if (this.getBehavioursEnabled() && !pasted) {\n var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text);\n if (transform) {\n if (text !== transform.text) {\n if (!this.inVirtualSelectionMode) {\n this.session.mergeUndoDeltas = false;\n this.mergeNextCommand = false;\n }\n }\n text = transform.text;\n }\n }\n if (text == \"\\t\")\n text = this.session.getTabString();\n if (!this.selection.isEmpty()) {\n var range = this.getSelectionRange();\n cursor = this.session.remove(range);\n this.clearSelection();\n }\n else if (this.session.getOverwrite() && text.indexOf(\"\\n\") == -1) {\n var range = new Range.fromPoints(cursor, cursor);\n range.end.column += text.length;\n this.session.remove(range);\n }\n if (text == \"\\n\" || text == \"\\r\\n\") {\n var line = session.getLine(cursor.row);\n if (cursor.column > line.search(/\\S|$/)) {\n var d = line.substr(cursor.column).search(/\\S|$/);\n session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d);\n }\n }\n this.clearSelection();\n var start = cursor.column;\n var lineState = session.getState(cursor.row);\n var line = session.getLine(cursor.row);\n var shouldOutdent = mode.checkOutdent(lineState, line, text);\n session.insert(cursor, text);\n if (transform && transform.selection) {\n if (transform.selection.length == 2) { // Transform relative to the current column\n this.selection.setSelectionRange(new Range(cursor.row, start + transform.selection[0], cursor.row, start + transform.selection[1]));\n }\n else { // Transform relative to the current row.\n this.selection.setSelectionRange(new Range(cursor.row + transform.selection[0], transform.selection[1], cursor.row + transform.selection[2], transform.selection[3]));\n }\n }\n if (this.$enableAutoIndent) {\n if (session.getDocument().isNewLine(text)) {\n var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString());\n session.insert({ row: cursor.row + 1, column: 0 }, lineIndent);\n }\n if (shouldOutdent)\n mode.autoOutdent(lineState, session, cursor.row);\n }\n };\n Editor.prototype.autoIndent = function () {\n var session = this.session;\n var mode = session.getMode();\n var startRow, endRow;\n if (this.selection.isEmpty()) {\n startRow = 0;\n endRow = session.doc.getLength() - 1;\n }\n else {\n var selectedRange = this.getSelectionRange();\n startRow = selectedRange.start.row;\n endRow = selectedRange.end.row;\n }\n var prevLineState = \"\";\n var prevLine = \"\";\n var lineIndent = \"\";\n var line, currIndent, range;\n var tab = session.getTabString();\n for (var row = startRow; row <= endRow; row++) {\n if (row > 0) {\n prevLineState = session.getState(row - 1);\n prevLine = session.getLine(row - 1);\n lineIndent = mode.getNextLineIndent(prevLineState, prevLine, tab);\n }\n line = session.getLine(row);\n currIndent = mode.$getIndent(line);\n if (lineIndent !== currIndent) {\n if (currIndent.length > 0) {\n range = new Range(row, 0, row, currIndent.length);\n session.remove(range);\n }\n if (lineIndent.length > 0) {\n session.insert({ row: row, column: 0 }, lineIndent);\n }\n }\n mode.autoOutdent(prevLineState, session, row);\n }\n };\n Editor.prototype.onTextInput = function (text, composition) {\n if (!composition)\n return this.keyBinding.onTextInput(text);\n this.startOperation({ command: { name: \"insertstring\" } });\n var applyComposition = this.applyComposition.bind(this, text, composition);\n if (this.selection.rangeCount)\n this.forEachSelection(applyComposition);\n else\n applyComposition();\n this.endOperation();\n };\n Editor.prototype.applyComposition = function (text, composition) {\n if (composition.extendLeft || composition.extendRight) {\n var r = this.selection.getRange();\n r.start.column -= composition.extendLeft;\n r.end.column += composition.extendRight;\n if (r.start.column < 0) {\n r.start.row--;\n r.start.column += this.session.getLine(r.start.row).length + 1;\n }\n this.selection.setRange(r);\n if (!text && !r.isEmpty())\n this.remove();\n }\n if (text || !this.selection.isEmpty())\n this.insert(text, true);\n if (composition.restoreStart || composition.restoreEnd) {\n var r = this.selection.getRange();\n r.start.column -= composition.restoreStart;\n r.end.column -= composition.restoreEnd;\n this.selection.setRange(r);\n }\n };\n Editor.prototype.onCommandKey = function (e, hashId, keyCode) {\n return this.keyBinding.onCommandKey(e, hashId, keyCode);\n };\n Editor.prototype.setOverwrite = function (overwrite) {\n this.session.setOverwrite(overwrite);\n };\n Editor.prototype.getOverwrite = function () {\n return this.session.getOverwrite();\n };\n Editor.prototype.toggleOverwrite = function () {\n this.session.toggleOverwrite();\n };\n Editor.prototype.setScrollSpeed = function (speed) {\n this.setOption(\"scrollSpeed\", speed);\n };\n Editor.prototype.getScrollSpeed = function () {\n return this.getOption(\"scrollSpeed\");\n };\n Editor.prototype.setDragDelay = function (dragDelay) {\n this.setOption(\"dragDelay\", dragDelay);\n };\n Editor.prototype.getDragDelay = function () {\n return this.getOption(\"dragDelay\");\n };\n Editor.prototype.setSelectionStyle = function (val) {\n this.setOption(\"selectionStyle\", val);\n };\n Editor.prototype.getSelectionStyle = function () {\n return this.getOption(\"selectionStyle\");\n };\n Editor.prototype.setHighlightActiveLine = function (shouldHighlight) {\n this.setOption(\"highlightActiveLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightActiveLine = function () {\n return this.getOption(\"highlightActiveLine\");\n };\n Editor.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n Editor.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n Editor.prototype.setHighlightSelectedWord = function (shouldHighlight) {\n this.setOption(\"highlightSelectedWord\", shouldHighlight);\n };\n Editor.prototype.getHighlightSelectedWord = function () {\n return this.$highlightSelectedWord;\n };\n Editor.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.renderer.setAnimatedScroll(shouldAnimate);\n };\n Editor.prototype.getAnimatedScroll = function () {\n return this.renderer.getAnimatedScroll();\n };\n Editor.prototype.setShowInvisibles = function (showInvisibles) {\n this.renderer.setShowInvisibles(showInvisibles);\n };\n Editor.prototype.getShowInvisibles = function () {\n return this.renderer.getShowInvisibles();\n };\n Editor.prototype.setDisplayIndentGuides = function (display) {\n this.renderer.setDisplayIndentGuides(display);\n };\n Editor.prototype.getDisplayIndentGuides = function () {\n return this.renderer.getDisplayIndentGuides();\n };\n Editor.prototype.setHighlightIndentGuides = function (highlight) {\n this.renderer.setHighlightIndentGuides(highlight);\n };\n Editor.prototype.getHighlightIndentGuides = function () {\n return this.renderer.getHighlightIndentGuides();\n };\n Editor.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.renderer.setShowPrintMargin(showPrintMargin);\n };\n Editor.prototype.getShowPrintMargin = function () {\n return this.renderer.getShowPrintMargin();\n };\n Editor.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.renderer.setPrintMarginColumn(showPrintMargin);\n };\n Editor.prototype.getPrintMarginColumn = function () {\n return this.renderer.getPrintMarginColumn();\n };\n Editor.prototype.setReadOnly = function (readOnly) {\n this.setOption(\"readOnly\", readOnly);\n };\n Editor.prototype.getReadOnly = function () {\n return this.getOption(\"readOnly\");\n };\n Editor.prototype.setBehavioursEnabled = function (enabled) {\n this.setOption(\"behavioursEnabled\", enabled);\n };\n Editor.prototype.getBehavioursEnabled = function () {\n return this.getOption(\"behavioursEnabled\");\n };\n Editor.prototype.setWrapBehavioursEnabled = function (enabled) {\n this.setOption(\"wrapBehavioursEnabled\", enabled);\n };\n Editor.prototype.getWrapBehavioursEnabled = function () {\n return this.getOption(\"wrapBehavioursEnabled\");\n };\n Editor.prototype.setShowFoldWidgets = function (show) {\n this.setOption(\"showFoldWidgets\", show);\n };\n Editor.prototype.getShowFoldWidgets = function () {\n return this.getOption(\"showFoldWidgets\");\n };\n Editor.prototype.setFadeFoldWidgets = function (fade) {\n this.setOption(\"fadeFoldWidgets\", fade);\n };\n Editor.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n Editor.prototype.remove = function (dir) {\n if (this.selection.isEmpty()) {\n if (dir == \"left\")\n this.selection.selectLeft();\n else\n this.selection.selectRight();\n }\n var range = this.getSelectionRange();\n if (this.getBehavioursEnabled()) {\n var session = this.session;\n var state = session.getState(range.start.row);\n var new_range = session.getMode().transformAction(state, 'deletion', this, session, range);\n if (range.end.column === 0) {\n var text = session.getTextRange(range);\n if (text[text.length - 1] == \"\\n\") {\n var line = session.getLine(range.end.row);\n if (/^\\s+$/.test(line)) {\n range.end.column = line.length;\n }\n }\n }\n if (new_range)\n range = new_range;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.removeWordRight = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordRight();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeWordLeft = function () {\n if (this.selection.isEmpty())\n this.selection.selectWordLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineStart = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineStart();\n if (this.selection.isEmpty())\n this.selection.selectLeft();\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n };\n Editor.prototype.removeToLineEnd = function () {\n if (this.selection.isEmpty())\n this.selection.selectLineEnd();\n var range = this.getSelectionRange();\n if (range.start.column == range.end.column && range.start.row == range.end.row) {\n range.end.column = 0;\n range.end.row++;\n }\n this.session.remove(range);\n this.clearSelection();\n };\n Editor.prototype.splitLine = function () {\n if (!this.selection.isEmpty()) {\n this.session.remove(this.getSelectionRange());\n this.clearSelection();\n }\n var cursor = this.getCursorPosition();\n this.insert(\"\\n\");\n this.moveCursorToPosition(cursor);\n };\n Editor.prototype.setGhostText = function (text, position) {\n if (!this.session.widgetManager) {\n this.session.widgetManager = new LineWidgets(this.session);\n this.session.widgetManager.attach(this);\n }\n this.renderer.setGhostText(text, position);\n };\n Editor.prototype.removeGhostText = function () {\n if (!this.session.widgetManager)\n return;\n this.renderer.removeGhostText();\n };\n Editor.prototype.transposeLetters = function () {\n if (!this.selection.isEmpty()) {\n return;\n }\n var cursor = this.getCursorPosition();\n var column = cursor.column;\n if (column === 0)\n return;\n var line = this.session.getLine(cursor.row);\n var swap, range;\n if (column < line.length) {\n swap = line.charAt(column) + line.charAt(column - 1);\n range = new Range(cursor.row, column - 1, cursor.row, column + 1);\n }\n else {\n swap = line.charAt(column - 1) + line.charAt(column - 2);\n range = new Range(cursor.row, column - 2, cursor.row, column);\n }\n this.session.replace(range, swap);\n this.session.selection.moveToPosition(range.end);\n };\n Editor.prototype.toLowerCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toLowerCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.toUpperCase = function () {\n var originalRange = this.getSelectionRange();\n if (this.selection.isEmpty()) {\n this.selection.selectWord();\n }\n var range = this.getSelectionRange();\n var text = this.session.getTextRange(range);\n this.session.replace(range, text.toUpperCase());\n this.selection.setSelectionRange(originalRange);\n };\n Editor.prototype.indent = function () {\n var session = this.session;\n var range = this.getSelectionRange();\n if (range.start.row < range.end.row) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n else if (range.start.column < range.end.column) {\n var text = session.getTextRange(range);\n if (!/^\\s+$/.test(text)) {\n var rows = this.$getSelectedRows();\n session.indentRows(rows.first, rows.last, \"\\t\");\n return;\n }\n }\n var line = session.getLine(range.start.row);\n var position = range.start;\n var size = session.getTabSize();\n var column = session.documentToScreenColumn(position.row, position.column);\n if (this.session.getUseSoftTabs()) {\n var count = (size - column % size);\n var indentString = lang.stringRepeat(\" \", count);\n }\n else {\n var count = column % size;\n while (line[range.start.column - 1] == \" \" && count) {\n range.start.column--;\n count--;\n }\n this.selection.setSelectionRange(range);\n indentString = \"\\t\";\n }\n return this.insert(indentString);\n };\n Editor.prototype.blockIndent = function () {\n var rows = this.$getSelectedRows();\n this.session.indentRows(rows.first, rows.last, \"\\t\");\n };\n Editor.prototype.blockOutdent = function () {\n var selection = this.session.getSelection();\n this.session.outdentRows(selection.getRange());\n };\n Editor.prototype.sortLines = function () {\n var rows = this.$getSelectedRows();\n var session = this.session;\n var lines = [];\n for (var i = rows.first; i <= rows.last; i++)\n lines.push(session.getLine(i));\n lines.sort(function (a, b) {\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n return 0;\n });\n var deleteRange = new Range(0, 0, 0, 0);\n for (var i = rows.first; i <= rows.last; i++) {\n var line = session.getLine(i);\n deleteRange.start.row = i;\n deleteRange.end.row = i;\n deleteRange.end.column = line.length;\n session.replace(deleteRange, lines[i - rows.first]);\n }\n };\n Editor.prototype.toggleCommentLines = function () {\n var state = this.session.getState(this.getCursorPosition().row);\n var rows = this.$getSelectedRows();\n this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last);\n };\n Editor.prototype.toggleBlockComment = function () {\n var cursor = this.getCursorPosition();\n var state = this.session.getState(cursor.row);\n var range = this.getSelectionRange();\n this.session.getMode().toggleBlockComment(state, this.session, range, cursor);\n };\n Editor.prototype.getNumberAt = function (row, column) {\n var _numberRx = /[\\-]?[0-9]+(?:\\.[0-9]+)?/g;\n _numberRx.lastIndex = 0;\n var s = this.session.getLine(row);\n while (_numberRx.lastIndex < column) {\n var m = _numberRx.exec(s);\n if (m.index <= column && m.index + m[0].length >= column) {\n var number = {\n value: m[0],\n start: m.index,\n end: m.index + m[0].length\n };\n return number;\n }\n }\n return null;\n };\n Editor.prototype.modifyNumber = function (amount) {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n var charRange = new Range(row, column - 1, row, column);\n var c = this.session.getTextRange(charRange);\n if (!isNaN(parseFloat(c)) && isFinite(c)) {\n var nr = this.getNumberAt(row, column);\n if (nr) {\n var fp = nr.value.indexOf(\".\") >= 0 ? nr.start + nr.value.indexOf(\".\") + 1 : nr.end;\n var decimals = nr.start + nr.value.length - fp;\n var t = parseFloat(nr.value);\n t *= Math.pow(10, decimals);\n if (fp !== nr.end && column < fp) {\n amount *= Math.pow(10, nr.end - column - 1);\n }\n else {\n amount *= Math.pow(10, nr.end - column);\n }\n t += amount;\n t /= Math.pow(10, decimals);\n var nnr = t.toFixed(decimals);\n var replaceRange = new Range(row, nr.start, row, nr.end);\n this.session.replace(replaceRange, nnr);\n this.moveCursorTo(row, Math.max(nr.start + 1, column + nnr.length - nr.value.length));\n }\n }\n else {\n this.toggleWord();\n }\n };\n Editor.prototype.toggleWord = function () {\n var row = this.selection.getCursor().row;\n var column = this.selection.getCursor().column;\n this.selection.selectWord();\n var currentState = this.getSelectedText();\n var currWordStart = this.selection.getWordRange().start.column;\n var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\\s/);\n var delta = column - currWordStart - 1;\n if (delta < 0)\n delta = 0;\n var curLength = 0, itLength = 0;\n var that = this;\n if (currentState.match(/[A-Za-z0-9_]+/)) {\n wordParts.forEach(function (item, i) {\n itLength = curLength + item.length;\n if (delta >= curLength && delta <= itLength) {\n currentState = item;\n that.selection.clearSelection();\n that.moveCursorTo(row, curLength + currWordStart);\n that.selection.selectTo(row, itLength + currWordStart);\n }\n curLength = itLength;\n });\n }\n var wordPairs = this.$toggleWordPairs;\n var reg;\n for (var i = 0; i < wordPairs.length; i++) {\n var item = wordPairs[i];\n for (var j = 0; j <= 1; j++) {\n var negate = +!j;\n var firstCondition = currentState.match(new RegExp('^\\\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\\\s?$', 'i'));\n if (firstCondition) {\n var secondCondition = currentState.match(new RegExp('([_]|^|\\\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\\\s)', 'g'));\n if (secondCondition) {\n reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) {\n var res = item[negate];\n if (result.toUpperCase() == result) {\n res = res.toUpperCase();\n }\n else if (result.charAt(0).toUpperCase() == result.charAt(0)) {\n res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1);\n }\n return res;\n });\n this.insert(reg);\n reg = \"\";\n }\n }\n }\n }\n };\n Editor.prototype.findLinkAt = function (row, column) {\n var e_1, _a;\n var line = this.session.getLine(row);\n var wordParts = line.split(/((?:https?|ftp):\\/\\/[\\S]+)/);\n var columnPosition = column;\n if (columnPosition < 0)\n columnPosition = 0;\n var previousPosition = 0, currentPosition = 0, match;\n try {\n for (var wordParts_1 = __values(wordParts), wordParts_1_1 = wordParts_1.next(); !wordParts_1_1.done; wordParts_1_1 = wordParts_1.next()) {\n var item = wordParts_1_1.value;\n currentPosition = previousPosition + item.length;\n if (columnPosition >= previousPosition && columnPosition <= currentPosition) {\n if (item.match(/((?:https?|ftp):\\/\\/[\\S]+)/)) {\n match = item.replace(/[\\s:.,'\";}\\]]+$/, \"\");\n break;\n }\n }\n previousPosition = currentPosition;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (wordParts_1_1 && !wordParts_1_1.done && (_a = wordParts_1.return)) _a.call(wordParts_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return match;\n };\n Editor.prototype.openLink = function () {\n var cursor = this.selection.getCursor();\n var url = this.findLinkAt(cursor.row, cursor.column);\n if (url)\n window.open(url, '_blank');\n return url != null;\n };\n Editor.prototype.removeLines = function () {\n var rows = this.$getSelectedRows();\n this.session.removeFullLines(rows.first, rows.last);\n this.clearSelection();\n };\n Editor.prototype.duplicateSelection = function () {\n var sel = this.selection;\n var doc = this.session;\n var range = sel.getRange();\n var reverse = sel.isBackwards();\n if (range.isEmpty()) {\n var row = range.start.row;\n doc.duplicateLines(row, row);\n }\n else {\n var point = reverse ? range.start : range.end;\n var endPoint = doc.insert(point, doc.getTextRange(range), false);\n range.start = point;\n range.end = endPoint;\n sel.setSelectionRange(range, reverse);\n }\n };\n Editor.prototype.moveLinesDown = function () {\n this.$moveLines(1, false);\n };\n Editor.prototype.moveLinesUp = function () {\n this.$moveLines(-1, false);\n };\n Editor.prototype.moveText = function (range, toPosition, copy) {\n return this.session.moveText(range, toPosition, copy);\n };\n Editor.prototype.copyLinesUp = function () {\n this.$moveLines(-1, true);\n };\n Editor.prototype.copyLinesDown = function () {\n this.$moveLines(1, true);\n };\n Editor.prototype.$moveLines = function (dir, copy) {\n var rows, moved;\n var selection = this.selection;\n if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) {\n var range = selection.toOrientedRange();\n rows = this.$getSelectedRows(range);\n moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir);\n if (copy && dir == -1)\n moved = 0;\n range.moveBy(moved, 0);\n selection.fromOrientedRange(range);\n }\n else {\n var ranges = selection.rangeList.ranges;\n selection.rangeList.detach(this.session);\n this.inVirtualSelectionMode = true;\n var diff = 0;\n var totalDiff = 0;\n var l = ranges.length;\n for (var i = 0; i < l; i++) {\n var rangeIndex = i;\n ranges[i].moveBy(diff, 0);\n rows = this.$getSelectedRows(ranges[i]);\n var first = rows.first;\n var last = rows.last;\n while (++i < l) {\n if (totalDiff)\n ranges[i].moveBy(totalDiff, 0);\n var subRows = this.$getSelectedRows(ranges[i]);\n if (copy && subRows.first != last)\n break;\n else if (!copy && subRows.first > last + 1)\n break;\n last = subRows.last;\n }\n i--;\n diff = this.session.$moveLines(first, last, copy ? 0 : dir);\n if (copy && dir == -1)\n rangeIndex = i + 1;\n while (rangeIndex <= i) {\n ranges[rangeIndex].moveBy(diff, 0);\n rangeIndex++;\n }\n if (!copy)\n diff = 0;\n totalDiff += diff;\n }\n selection.fromOrientedRange(selection.ranges[0]);\n selection.rangeList.attach(this.session);\n this.inVirtualSelectionMode = false;\n }\n };\n Editor.prototype.$getSelectedRows = function (range) {\n range = (range || this.getSelectionRange()).collapseRows();\n return {\n first: this.session.getRowFoldStart(range.start.row),\n last: this.session.getRowFoldEnd(range.end.row)\n };\n };\n Editor.prototype.onCompositionStart = function (compositionState) {\n this.renderer.showComposition(compositionState);\n };\n Editor.prototype.onCompositionUpdate = function (text) {\n this.renderer.setCompositionText(text);\n };\n Editor.prototype.onCompositionEnd = function () {\n this.renderer.hideComposition();\n };\n Editor.prototype.getFirstVisibleRow = function () {\n return this.renderer.getFirstVisibleRow();\n };\n Editor.prototype.getLastVisibleRow = function () {\n return this.renderer.getLastVisibleRow();\n };\n Editor.prototype.isRowVisible = function (row) {\n return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow());\n };\n Editor.prototype.isRowFullyVisible = function (row) {\n return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow());\n };\n Editor.prototype.$getVisibleRowCount = function () {\n return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1;\n };\n Editor.prototype.$moveByPage = function (dir, select) {\n var renderer = this.renderer;\n var config = this.renderer.layerConfig;\n var rows = dir * Math.floor(config.height / config.lineHeight);\n if (select === true) {\n this.selection.$moveSelection(function () {\n this.moveCursorBy(rows, 0);\n });\n }\n else if (select === false) {\n this.selection.moveCursorBy(rows, 0);\n this.selection.clearSelection();\n }\n var scrollTop = renderer.scrollTop;\n renderer.scrollBy(0, rows * config.lineHeight);\n if (select != null)\n renderer.scrollCursorIntoView(null, 0.5);\n renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.selectPageDown = function () {\n this.$moveByPage(1, true);\n };\n Editor.prototype.selectPageUp = function () {\n this.$moveByPage(-1, true);\n };\n Editor.prototype.gotoPageDown = function () {\n this.$moveByPage(1, false);\n };\n Editor.prototype.gotoPageUp = function () {\n this.$moveByPage(-1, false);\n };\n Editor.prototype.scrollPageDown = function () {\n this.$moveByPage(1);\n };\n Editor.prototype.scrollPageUp = function () {\n this.$moveByPage(-1);\n };\n Editor.prototype.scrollToRow = function (row) {\n this.renderer.scrollToRow(row);\n };\n Editor.prototype.scrollToLine = function (line, center, animate, callback) {\n this.renderer.scrollToLine(line, center, animate, callback);\n };\n Editor.prototype.centerSelection = function () {\n var range = this.getSelectionRange();\n var pos = {\n row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2),\n column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2)\n };\n this.renderer.alignCursor(pos, 0.5);\n };\n Editor.prototype.getCursorPosition = function () {\n return this.selection.getCursor();\n };\n Editor.prototype.getCursorPositionScreen = function () {\n return this.session.documentToScreenPosition(this.getCursorPosition());\n };\n Editor.prototype.getSelectionRange = function () {\n return this.selection.getRange();\n };\n Editor.prototype.selectAll = function () {\n this.selection.selectAll();\n };\n Editor.prototype.clearSelection = function () {\n this.selection.clearSelection();\n };\n Editor.prototype.moveCursorTo = function (row, column) {\n this.selection.moveCursorTo(row, column);\n };\n Editor.prototype.moveCursorToPosition = function (pos) {\n this.selection.moveCursorToPosition(pos);\n };\n Editor.prototype.jumpToMatching = function (select, expand) {\n var cursor = this.getCursorPosition();\n var iterator = new TokenIterator(this.session, cursor.row, cursor.column);\n var prevToken = iterator.getCurrentToken();\n var tokenCount = 0;\n if (prevToken && prevToken.type.indexOf('tag-name') !== -1) {\n prevToken = iterator.stepBackward();\n }\n var token = prevToken || iterator.stepForward();\n if (!token)\n return;\n var matchType;\n var found = false;\n var depth = {};\n var i = cursor.column - token.start;\n var bracketType;\n var brackets = {\n \")\": \"(\",\n \"(\": \"(\",\n \"]\": \"[\",\n \"[\": \"[\",\n \"{\": \"{\",\n \"}\": \"{\"\n };\n do {\n if (token.value.match(/[{}()\\[\\]]/g)) {\n for (; i < token.value.length && !found; i++) {\n if (!brackets[token.value[i]]) {\n continue;\n }\n bracketType = brackets[token.value[i]] + '.' + token.type.replace(\"rparen\", \"lparen\");\n if (isNaN(depth[bracketType])) {\n depth[bracketType] = 0;\n }\n switch (token.value[i]) {\n case '(':\n case '[':\n case '{':\n depth[bracketType]++;\n break;\n case ')':\n case ']':\n case '}':\n depth[bracketType]--;\n if (depth[bracketType] === -1) {\n matchType = 'bracket';\n found = true;\n }\n break;\n }\n }\n }\n else if (token.type.indexOf('tag-name') !== -1) {\n if (isNaN(depth[token.value])) {\n depth[token.value] = 0;\n }\n if (prevToken.value === '<' && tokenCount > 1) {\n depth[token.value]++;\n }\n else if (prevToken.value === '= 0; --i) {\n if (this.$tryReplace(ranges[i], replacement)) {\n replaced++;\n }\n }\n this.selection.setSelectionRange(selection);\n return replaced;\n };\n Editor.prototype.$tryReplace = function (range, replacement) {\n var input = this.session.getTextRange(range);\n replacement = this.$search.replace(input, replacement);\n if (replacement !== null) {\n range.end = this.session.replace(range, replacement);\n return range;\n }\n else {\n return null;\n }\n };\n Editor.prototype.getLastSearchOptions = function () {\n return this.$search.getOptions();\n };\n Editor.prototype.find = function (needle, options, animate) {\n if (!options)\n options = {};\n if (typeof needle == \"string\" || needle instanceof RegExp)\n options.needle = needle;\n else if (typeof needle == \"object\")\n oop.mixin(options, needle);\n var range = this.selection.getRange();\n if (options.needle == null) {\n needle = this.session.getTextRange(range)\n || this.$search.$options.needle;\n if (!needle) {\n range = this.session.getWordRange(range.start.row, range.start.column);\n needle = this.session.getTextRange(range);\n }\n this.$search.set({ needle: needle });\n }\n this.$search.set(options);\n if (!options.start)\n this.$search.set({ start: range });\n var newRange = this.$search.find(this.session);\n if (options.preventScroll)\n return newRange;\n if (newRange) {\n this.revealRange(newRange, animate);\n return newRange;\n }\n if (options.backwards)\n range.start = range.end;\n else\n range.end = range.start;\n this.selection.setRange(range);\n };\n Editor.prototype.findNext = function (options, animate) {\n this.find({ skipCurrent: true, backwards: false }, options, animate);\n };\n Editor.prototype.findPrevious = function (options, animate) {\n this.find(options, { skipCurrent: true, backwards: true }, animate);\n };\n Editor.prototype.revealRange = function (range, animate) {\n this.session.unfold(range);\n this.selection.setSelectionRange(range);\n var scrollTop = this.renderer.scrollTop;\n this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5);\n if (animate !== false)\n this.renderer.animateScrolling(scrollTop);\n };\n Editor.prototype.undo = function () {\n this.session.getUndoManager().undo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.redo = function () {\n this.session.getUndoManager().redo(this.session);\n this.renderer.scrollCursorIntoView(null, 0.5);\n };\n Editor.prototype.destroy = function () {\n if (this.$toDestroy) {\n this.$toDestroy.forEach(function (el) {\n el.destroy();\n });\n this.$toDestroy = null;\n }\n if (this.$mouseHandler)\n this.$mouseHandler.destroy();\n this.renderer.destroy();\n this._signal(\"destroy\", this);\n if (this.session)\n this.session.destroy();\n if (this._$emitInputEvent)\n this._$emitInputEvent.cancel();\n this.removeAllListeners();\n };\n Editor.prototype.setAutoScrollEditorIntoView = function (enable) {\n if (!enable)\n return;\n var rect;\n var self = this;\n var shouldScroll = false;\n if (!this.$scrollAnchor)\n this.$scrollAnchor = document.createElement(\"div\");\n var scrollAnchor = this.$scrollAnchor;\n scrollAnchor.style.cssText = \"position:absolute\";\n this.container.insertBefore(scrollAnchor, this.container.firstChild);\n var onChangeSelection = this.on(\"changeSelection\", function () {\n shouldScroll = true;\n });\n var onBeforeRender = this.renderer.on(\"beforeRender\", function () {\n if (shouldScroll)\n rect = self.renderer.container.getBoundingClientRect();\n });\n var onAfterRender = this.renderer.on(\"afterRender\", function () {\n if (shouldScroll && rect && (self.isFocused()\n || self.searchBox && self.searchBox.isFocused())) {\n var renderer = self.renderer;\n var pos = renderer.$cursorLayer.$pixelPos;\n var config = renderer.layerConfig;\n var top = pos.top - config.offset;\n if (pos.top >= 0 && top + rect.top < 0) {\n shouldScroll = true;\n }\n else if (pos.top < config.height &&\n pos.top + rect.top + config.lineHeight > window.innerHeight) {\n shouldScroll = false;\n }\n else {\n shouldScroll = null;\n }\n if (shouldScroll != null) {\n scrollAnchor.style.top = top + \"px\";\n scrollAnchor.style.left = pos.left + \"px\";\n scrollAnchor.style.height = config.lineHeight + \"px\";\n scrollAnchor.scrollIntoView(shouldScroll);\n }\n shouldScroll = rect = null;\n }\n });\n this.setAutoScrollEditorIntoView = function (enable) {\n if (enable)\n return;\n delete this.setAutoScrollEditorIntoView;\n this.off(\"changeSelection\", onChangeSelection);\n this.renderer.off(\"afterRender\", onAfterRender);\n this.renderer.off(\"beforeRender\", onBeforeRender);\n };\n };\n Editor.prototype.$resetCursorStyle = function () {\n var style = this.$cursorStyle || \"ace\";\n var cursorLayer = this.renderer.$cursorLayer;\n if (!cursorLayer)\n return;\n cursorLayer.setSmoothBlinking(/smooth/.test(style));\n cursorLayer.isBlinking = !this.$readOnly && style != \"wide\";\n dom.setCssClass(cursorLayer.element, \"ace_slim-cursors\", /slim/.test(style));\n };\n Editor.prototype.prompt = function (message, options, callback) {\n var editor = this;\n config.loadModule(\"ace/ext/prompt\", function (module) {\n module.prompt(editor, message, options, callback);\n });\n };\n return Editor;\n}());\nEditor.$uid = 0;\nEditor.prototype.curOp = null;\nEditor.prototype.prevOp = {};\nEditor.prototype.$mergeableCommands = [\"backspace\", \"del\", \"insertstring\"];\nEditor.prototype.$toggleWordPairs = [\n [\"first\", \"last\"],\n [\"true\", \"false\"],\n [\"yes\", \"no\"],\n [\"width\", \"height\"],\n [\"top\", \"bottom\"],\n [\"right\", \"left\"],\n [\"on\", \"off\"],\n [\"x\", \"y\"],\n [\"get\", \"set\"],\n [\"max\", \"min\"],\n [\"horizontal\", \"vertical\"],\n [\"show\", \"hide\"],\n [\"add\", \"remove\"],\n [\"up\", \"down\"],\n [\"before\", \"after\"],\n [\"even\", \"odd\"],\n [\"in\", \"out\"],\n [\"inside\", \"outside\"],\n [\"next\", \"previous\"],\n [\"increase\", \"decrease\"],\n [\"attach\", \"detach\"],\n [\"&&\", \"||\"],\n [\"==\", \"!=\"]\n];\noop.implement(Editor.prototype, EventEmitter);\nconfig.defineOptions(Editor.prototype, \"editor\", {\n selectionStyle: {\n set: function (style) {\n this.onSelectionChange();\n this._signal(\"changeSelectionStyle\", { data: style });\n },\n initialValue: \"line\"\n },\n highlightActiveLine: {\n set: function () { this.$updateHighlightActiveLine(); },\n initialValue: true\n },\n highlightSelectedWord: {\n set: function (shouldHighlight) { this.$onSelectionChange(); },\n initialValue: true\n },\n readOnly: {\n set: function (readOnly) {\n this.textInput.setReadOnly(readOnly);\n this.$resetCursorStyle();\n },\n initialValue: false\n },\n copyWithEmptySelection: {\n set: function (value) {\n this.textInput.setCopyWithEmptySelection(value);\n },\n initialValue: false\n },\n cursorStyle: {\n set: function (val) { this.$resetCursorStyle(); },\n values: [\"ace\", \"slim\", \"smooth\", \"wide\"],\n initialValue: \"ace\"\n },\n mergeUndoDeltas: {\n values: [false, true, \"always\"],\n initialValue: true\n },\n behavioursEnabled: { initialValue: true },\n wrapBehavioursEnabled: { initialValue: true },\n enableAutoIndent: { initialValue: true },\n autoScrollEditorIntoView: {\n set: function (val) { this.setAutoScrollEditorIntoView(val); }\n },\n keyboardHandler: {\n set: function (val) { this.setKeyboardHandler(val); },\n get: function () { return this.$keybindingId; },\n handlesSet: true\n },\n value: {\n set: function (val) { this.session.setValue(val); },\n get: function () { return this.getValue(); },\n handlesSet: true,\n hidden: true\n },\n session: {\n set: function (val) { this.setSession(val); },\n get: function () { return this.session; },\n handlesSet: true,\n hidden: true\n },\n showLineNumbers: {\n set: function (show) {\n this.renderer.$gutterLayer.setShowLineNumbers(show);\n this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER);\n if (show && this.$relativeLineNumbers)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n },\n initialValue: true\n },\n relativeLineNumbers: {\n set: function (value) {\n if (this.$showLineNumbers && value)\n relativeNumberRenderer.attach(this);\n else\n relativeNumberRenderer.detach(this);\n }\n },\n placeholder: {\n set: function (message) {\n if (!this.$updatePlaceholder) {\n this.$updatePlaceholder = function () {\n var hasValue = this.session && (this.renderer.$composition ||\n this.session.getLength() > 1 || this.session.getLine(0).length > 0);\n if (hasValue && this.renderer.placeholderNode) {\n this.renderer.off(\"afterRender\", this.$updatePlaceholder);\n dom.removeCssClass(this.container, \"ace_hasPlaceholder\");\n this.renderer.placeholderNode.remove();\n this.renderer.placeholderNode = null;\n }\n else if (!hasValue && !this.renderer.placeholderNode) {\n this.renderer.on(\"afterRender\", this.$updatePlaceholder);\n dom.addCssClass(this.container, \"ace_hasPlaceholder\");\n var el = dom.createElement(\"div\");\n el.className = \"ace_placeholder\";\n el.textContent = this.$placeholder || \"\";\n this.renderer.placeholderNode = el;\n this.renderer.content.appendChild(this.renderer.placeholderNode);\n }\n else if (!hasValue && this.renderer.placeholderNode) {\n this.renderer.placeholderNode.textContent = this.$placeholder || \"\";\n }\n }.bind(this);\n this.on(\"input\", this.$updatePlaceholder);\n }\n this.$updatePlaceholder();\n }\n },\n enableKeyboardAccessibility: {\n set: function (value) {\n var blurCommand = {\n name: \"blurTextInput\",\n description: \"Set focus to the editor content div to allow tabbing through the page\",\n bindKey: \"Esc\",\n exec: function (editor) {\n editor.blur();\n editor.renderer.scroller.focus();\n },\n readOnly: true\n };\n var focusOnEnterKeyup = function (e) {\n if (e.target == this.renderer.scroller && e.keyCode === keys['enter']) {\n e.preventDefault();\n var row = this.getCursorPosition().row;\n if (!this.isRowVisible(row))\n this.scrollToLine(row, true, true);\n this.focus();\n }\n };\n var gutterKeyboardHandler;\n if (value) {\n this.renderer.enableKeyboardAccessibility = true;\n this.renderer.keyboardFocusClassName = \"ace_keyboard-focus\";\n this.textInput.getElement().setAttribute(\"tabindex\", -1);\n this.textInput.setNumberOfExtraLines(useragent.isWin ? 3 : 0);\n this.renderer.scroller.setAttribute(\"tabindex\", 0);\n this.renderer.scroller.setAttribute(\"role\", \"group\");\n this.renderer.scroller.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.setAttribute(\"aria-label\", nls(\"Editor content, press Enter to start editing, press Escape to exit\"));\n this.renderer.scroller.addEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.addCommand(blurCommand);\n this.renderer.$gutter.setAttribute(\"tabindex\", 0);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", false);\n this.renderer.$gutter.setAttribute(\"role\", \"group\");\n this.renderer.$gutter.setAttribute(\"aria-roledescription\", nls(\"editor\"));\n this.renderer.$gutter.setAttribute(\"aria-label\", nls(\"Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit\"));\n this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName);\n this.renderer.content.setAttribute(\"aria-hidden\", true);\n if (!gutterKeyboardHandler)\n gutterKeyboardHandler = new GutterKeyboardHandler(this);\n gutterKeyboardHandler.addListener();\n }\n else {\n this.renderer.enableKeyboardAccessibility = false;\n this.textInput.getElement().setAttribute(\"tabindex\", 0);\n this.textInput.setNumberOfExtraLines(0);\n this.renderer.scroller.setAttribute(\"tabindex\", -1);\n this.renderer.scroller.removeAttribute(\"role\");\n this.renderer.scroller.removeAttribute(\"aria-roledescription\");\n this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName);\n this.renderer.scroller.removeAttribute(\"aria-label\");\n this.renderer.scroller.removeEventListener(\"keyup\", focusOnEnterKeyup.bind(this));\n this.commands.removeCommand(blurCommand);\n this.renderer.content.removeAttribute(\"aria-hidden\");\n this.renderer.$gutter.setAttribute(\"tabindex\", -1);\n this.renderer.$gutter.setAttribute(\"aria-hidden\", true);\n this.renderer.$gutter.removeAttribute(\"role\");\n this.renderer.$gutter.removeAttribute(\"aria-roledescription\");\n this.renderer.$gutter.removeAttribute(\"aria-label\");\n this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName);\n if (gutterKeyboardHandler)\n gutterKeyboardHandler.removeListener();\n }\n },\n initialValue: false\n },\n customScrollbar: \"renderer\",\n hScrollBarAlwaysVisible: \"renderer\",\n vScrollBarAlwaysVisible: \"renderer\",\n highlightGutterLine: \"renderer\",\n animatedScroll: \"renderer\",\n showInvisibles: \"renderer\",\n showPrintMargin: \"renderer\",\n printMarginColumn: \"renderer\",\n printMargin: \"renderer\",\n fadeFoldWidgets: \"renderer\",\n showFoldWidgets: \"renderer\",\n displayIndentGuides: \"renderer\",\n highlightIndentGuides: \"renderer\",\n showGutter: \"renderer\",\n fontSize: \"renderer\",\n fontFamily: \"renderer\",\n maxLines: \"renderer\",\n minLines: \"renderer\",\n scrollPastEnd: \"renderer\",\n fixedWidthGutter: \"renderer\",\n theme: \"renderer\",\n hasCssTransforms: \"renderer\",\n maxPixelHeight: \"renderer\",\n useTextareaForIME: \"renderer\",\n useResizeObserver: \"renderer\",\n useSvgGutterIcons: \"renderer\",\n showFoldedAnnotations: \"renderer\",\n scrollSpeed: \"$mouseHandler\",\n dragDelay: \"$mouseHandler\",\n dragEnabled: \"$mouseHandler\",\n focusTimeout: \"$mouseHandler\",\n tooltipFollowsMouse: \"$mouseHandler\",\n firstLineNumber: \"session\",\n overwrite: \"session\",\n newLineMode: \"session\",\n useWorker: \"session\",\n useSoftTabs: \"session\",\n navigateWithinSoftTabs: \"session\",\n tabSize: \"session\",\n wrap: \"session\",\n indentedSoftWrap: \"session\",\n foldStyle: \"session\",\n mode: \"session\"\n});\nvar relativeNumberRenderer = {\n getText: function (session, row) {\n return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? \"\\xb7\" : \"\"))) + \"\";\n },\n getWidth: function (session, lastLineNumber, config) {\n return Math.max(lastLineNumber.toString().length, (config.lastRow + 1).toString().length, 2) * config.characterWidth;\n },\n update: function (e, editor) {\n editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER);\n },\n attach: function (editor) {\n editor.renderer.$gutterLayer.$renderer = this;\n editor.on(\"changeSelection\", this.update);\n this.update(null, editor);\n },\n detach: function (editor) {\n if (editor.renderer.$gutterLayer.$renderer == this)\n editor.renderer.$gutterLayer.$renderer = null;\n editor.off(\"changeSelection\", this.update);\n this.update(null, editor);\n }\n};\nexports.Editor = Editor;\n\n});\n\nace.define(\"ace/undomanager\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar UndoManager = /** @class */ (function () {\n function UndoManager() {\n this.$maxRev = 0;\n this.$fromUndo = false;\n this.$undoDepth = Infinity;\n this.reset();\n }\n UndoManager.prototype.addSession = function (session) {\n this.$session = session;\n };\n UndoManager.prototype.add = function (delta, allowMerge, session) {\n if (this.$fromUndo)\n return;\n if (delta == this.$lastDelta)\n return;\n if (!this.$keepRedoStack)\n this.$redoStack.length = 0;\n if (allowMerge === false || !this.lastDeltas) {\n this.lastDeltas = [];\n var undoStackLength = this.$undoStack.length;\n if (undoStackLength > this.$undoDepth - 1) {\n this.$undoStack.splice(0, undoStackLength - this.$undoDepth + 1);\n }\n this.$undoStack.push(this.lastDeltas);\n delta.id = this.$rev = ++this.$maxRev;\n }\n if (delta.action == \"remove\" || delta.action == \"insert\")\n this.$lastDelta = delta;\n this.lastDeltas.push(delta);\n };\n UndoManager.prototype.addSelection = function (selection, rev) {\n this.selections.push({\n value: selection,\n rev: rev || this.$rev\n });\n };\n UndoManager.prototype.startNewGroup = function () {\n this.lastDeltas = null;\n return this.$rev;\n };\n UndoManager.prototype.markIgnored = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id <= from)\n break;\n if (delta.id < to)\n delta.ignore = true;\n }\n this.lastDeltas = null;\n };\n UndoManager.prototype.getSelection = function (rev, after) {\n var stack = this.selections;\n for (var i = stack.length; i--;) {\n var selection = stack[i];\n if (selection.rev < rev) {\n if (after)\n selection = stack[i + 1];\n return selection;\n }\n }\n };\n UndoManager.prototype.getRevision = function () {\n return this.$rev;\n };\n UndoManager.prototype.getDeltas = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n var stack = this.$undoStack;\n var end = null, start = 0;\n for (var i = stack.length; i--;) {\n var delta = stack[i][0];\n if (delta.id < to && !end)\n end = i + 1;\n if (delta.id <= from) {\n start = i + 1;\n break;\n }\n }\n return stack.slice(start, end);\n };\n UndoManager.prototype.getChangedRanges = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.getChangedLines = function (from, to) {\n if (to == null)\n to = this.$rev + 1;\n };\n UndoManager.prototype.undo = function (session, dontSelect) {\n this.lastDeltas = null;\n var stack = this.$undoStack;\n if (!rearrangeUndoStack(stack, stack.length))\n return;\n if (!session)\n session = this.$session;\n if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length)\n this.$redoStack = [];\n this.$fromUndo = true;\n var deltaSet = stack.pop();\n var undoSelectionRange = null;\n if (deltaSet) {\n undoSelectionRange = session.undoChanges(deltaSet, dontSelect);\n this.$redoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return undoSelectionRange;\n };\n UndoManager.prototype.redo = function (session, dontSelect) {\n this.lastDeltas = null;\n if (!session)\n session = this.$session;\n this.$fromUndo = true;\n if (this.$redoStackBaseRev != this.$rev) {\n var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1);\n rebaseRedoStack(this.$redoStack, diff);\n this.$redoStackBaseRev = this.$rev;\n this.$redoStack.forEach(function (x) {\n x[0].id = ++this.$maxRev;\n }, this);\n }\n var deltaSet = this.$redoStack.pop();\n var redoSelectionRange = null;\n if (deltaSet) {\n redoSelectionRange = session.redoChanges(deltaSet, dontSelect);\n this.$undoStack.push(deltaSet);\n this.$syncRev();\n }\n this.$fromUndo = false;\n return redoSelectionRange;\n };\n UndoManager.prototype.$syncRev = function () {\n var stack = this.$undoStack;\n var nextDelta = stack[stack.length - 1];\n var id = nextDelta && nextDelta[0].id || 0;\n this.$redoStackBaseRev = id;\n this.$rev = id;\n };\n UndoManager.prototype.reset = function () {\n this.lastDeltas = null;\n this.$lastDelta = null;\n this.$undoStack = [];\n this.$redoStack = [];\n this.$rev = 0;\n this.mark = 0;\n this.$redoStackBaseRev = this.$rev;\n this.selections = [];\n };\n UndoManager.prototype.canUndo = function () {\n return this.$undoStack.length > 0;\n };\n UndoManager.prototype.canRedo = function () {\n return this.$redoStack.length > 0;\n };\n UndoManager.prototype.bookmark = function (rev) {\n if (rev == undefined)\n rev = this.$rev;\n this.mark = rev;\n };\n UndoManager.prototype.isAtBookmark = function () {\n return this.$rev === this.mark;\n };\n UndoManager.prototype.toJSON = function () {\n };\n UndoManager.prototype.fromJSON = function () {\n };\n UndoManager.prototype.$prettyPrint = function (delta) {\n if (delta)\n return stringifyDelta(delta);\n return stringifyDelta(this.$undoStack) + \"\\n---\\n\" + stringifyDelta(this.$redoStack);\n };\n return UndoManager;\n}());\nUndoManager.prototype.hasUndo = UndoManager.prototype.canUndo;\nUndoManager.prototype.hasRedo = UndoManager.prototype.canRedo;\nUndoManager.prototype.isClean = UndoManager.prototype.isAtBookmark;\nUndoManager.prototype.markClean = UndoManager.prototype.bookmark;\nfunction rearrangeUndoStack(stack, pos) {\n for (var i = pos; i--;) {\n var deltaSet = stack[i];\n if (deltaSet && !deltaSet[0].ignore) {\n while (i < pos - 1) {\n var swapped = swapGroups(stack[i], stack[i + 1]);\n stack[i] = swapped[0];\n stack[i + 1] = swapped[1];\n i++;\n }\n return true;\n }\n }\n}\nvar Range = require(\"./range\").Range;\nvar cmp = Range.comparePoints;\nvar comparePoints = Range.comparePoints;\nfunction $updateMarkers(delta) {\n var isInsert = delta.action == \"insert\";\n var start = delta.start;\n var end = delta.end;\n var rowShift = (end.row - start.row) * (isInsert ? 1 : -1);\n var colShift = (end.column - start.column) * (isInsert ? 1 : -1);\n if (isInsert)\n end = start;\n for (var i in this.marks) {\n var point = this.marks[i];\n var cmp = comparePoints(point, start);\n if (cmp < 0) {\n continue; // delta starts after the range\n }\n if (cmp === 0) {\n if (isInsert) {\n if (point.bias == 1) {\n cmp = 1;\n }\n else {\n point.bias == -1;\n continue;\n }\n }\n }\n var cmp2 = isInsert ? cmp : comparePoints(point, end);\n if (cmp2 > 0) {\n point.row += rowShift;\n point.column += point.row == end.row ? colShift : 0;\n continue;\n }\n if (!isInsert && cmp2 <= 0) {\n point.row = start.row;\n point.column = start.column;\n if (cmp2 === 0)\n point.bias = 1;\n }\n }\n}\nfunction clonePos(pos) {\n return { row: pos.row, column: pos.column };\n}\nfunction cloneDelta(d) {\n return {\n start: clonePos(d.start),\n end: clonePos(d.end),\n action: d.action,\n lines: d.lines.slice()\n };\n}\nfunction stringifyDelta(d) {\n d = d || this;\n if (Array.isArray(d)) {\n return d.map(stringifyDelta).join(\"\\n\");\n }\n var type = \"\";\n if (d.action) {\n type = d.action == \"insert\" ? \"+\" : \"-\";\n type += \"[\" + d.lines + \"]\";\n }\n else if (d.value) {\n if (Array.isArray(d.value)) {\n type = d.value.map(stringifyRange).join(\"\\n\");\n }\n else {\n type = stringifyRange(d.value);\n }\n }\n if (d.start) {\n type += stringifyRange(d);\n }\n if (d.id || d.rev) {\n type += \"\\t(\" + (d.id || d.rev) + \")\";\n }\n return type;\n}\nfunction stringifyRange(r) {\n return r.start.row + \":\" + r.start.column\n + \"=>\" + r.end.row + \":\" + r.end.column;\n}\nfunction swap(d1, d2) {\n var i1 = d1.action == \"insert\";\n var i2 = d2.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (i1 && !i2) {\n if (cmp(d2.start, d1.end) >= 0) {\n shift(d2, d1, -1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.start, d1.start) <= 0) {\n shift(d1, d2, +1);\n }\n else {\n return null;\n }\n }\n else if (!i1 && !i2) {\n if (cmp(d2.start, d1.start) >= 0) {\n shift(d2, d1, +1);\n }\n else if (cmp(d2.end, d1.start) <= 0) {\n shift(d1, d2, -1);\n }\n else {\n return null;\n }\n }\n return [d2, d1];\n}\nfunction swapGroups(ds1, ds2) {\n for (var i = ds1.length; i--;) {\n for (var j = 0; j < ds2.length; j++) {\n if (!swap(ds1[i], ds2[j])) {\n while (i < ds1.length) {\n while (j--) {\n swap(ds2[j], ds1[i]);\n }\n j = ds2.length;\n i++;\n }\n return [ds1, ds2];\n }\n }\n }\n ds1.selectionBefore = ds2.selectionBefore =\n ds1.selectionAfter = ds2.selectionAfter = null;\n return [ds2, ds1];\n}\nfunction xform(d1, c1) {\n var i1 = d1.action == \"insert\";\n var i2 = c1.action == \"insert\";\n if (i1 && i2) {\n if (cmp(d1.start, c1.start) < 0) {\n shift(c1, d1, 1);\n }\n else {\n shift(d1, c1, 1);\n }\n }\n else if (i1 && !i2) {\n if (cmp(d1.start, c1.end) >= 0) {\n shift(d1, c1, -1);\n }\n else if (cmp(d1.start, c1.start) <= 0) {\n shift(c1, d1, +1);\n }\n else {\n shift(d1, Range.fromPoints(c1.start, d1.start), -1);\n shift(c1, d1, +1);\n }\n }\n else if (!i1 && i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.start, d1.start) <= 0) {\n shift(d1, c1, +1);\n }\n else {\n shift(c1, Range.fromPoints(d1.start, c1.start), -1);\n shift(d1, c1, +1);\n }\n }\n else if (!i1 && !i2) {\n if (cmp(c1.start, d1.end) >= 0) {\n shift(c1, d1, -1);\n }\n else if (cmp(c1.end, d1.start) <= 0) {\n shift(d1, c1, -1);\n }\n else {\n var before, after;\n if (cmp(d1.start, c1.start) < 0) {\n before = d1;\n d1 = splitDelta(d1, c1.start);\n }\n if (cmp(d1.end, c1.end) > 0) {\n after = splitDelta(d1, c1.end);\n }\n shiftPos(c1.end, d1.start, d1.end, -1);\n if (after && !before) {\n d1.lines = after.lines;\n d1.start = after.start;\n d1.end = after.end;\n after = d1;\n }\n return [c1, before, after].filter(Boolean);\n }\n }\n return [c1, d1];\n}\nfunction shift(d1, d2, dir) {\n shiftPos(d1.start, d2.start, d2.end, dir);\n shiftPos(d1.end, d2.start, d2.end, dir);\n}\nfunction shiftPos(pos, start, end, dir) {\n if (pos.row == (dir == 1 ? start : end).row) {\n pos.column += dir * (end.column - start.column);\n }\n pos.row += dir * (end.row - start.row);\n}\nfunction splitDelta(c, pos) {\n var lines = c.lines;\n var end = c.end;\n c.end = clonePos(pos);\n var rowsBefore = c.end.row - c.start.row;\n var otherLines = lines.splice(rowsBefore, lines.length);\n var col = rowsBefore ? pos.column : pos.column - c.start.column;\n lines.push(otherLines[0].substring(0, col));\n otherLines[0] = otherLines[0].substr(col);\n var rest = {\n start: clonePos(pos),\n end: end,\n lines: otherLines,\n action: c.action\n };\n return rest;\n}\nfunction moveDeltasByOne(redoStack, d) {\n d = cloneDelta(d);\n for (var j = redoStack.length; j--;) {\n var deltaSet = redoStack[j];\n for (var i = 0; i < deltaSet.length; i++) {\n var x = deltaSet[i];\n var xformed = xform(x, d);\n d = xformed[0];\n if (xformed.length != 2) {\n if (xformed[2]) {\n deltaSet.splice(i + 1, 1, xformed[1], xformed[2]);\n i++;\n }\n else if (!xformed[1]) {\n deltaSet.splice(i, 1);\n i--;\n }\n }\n }\n if (!deltaSet.length) {\n redoStack.splice(j, 1);\n }\n }\n return redoStack;\n}\nfunction rebaseRedoStack(redoStack, deltaSets) {\n for (var i = 0; i < deltaSets.length; i++) {\n var deltas = deltaSets[i];\n for (var j = 0; j < deltas.length; j++) {\n moveDeltasByOne(redoStack, deltas[j]);\n }\n }\n}\nexports.UndoManager = UndoManager;\n\n});\n\nace.define(\"ace/layer/lines\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Lines = /** @class */ (function () {\n function Lines(element, canvasHeight) {\n this.element = element;\n this.canvasHeight = canvasHeight || 500000;\n this.element.style.height = (this.canvasHeight * 2) + \"px\";\n this.cells = [];\n this.cellCache = [];\n this.$offsetCoefficient = 0;\n }\n Lines.prototype.moveContainer = function (config) {\n dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient);\n };\n Lines.prototype.pageChanged = function (oldConfig, newConfig) {\n return (Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !==\n Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight));\n };\n Lines.prototype.computeLineTop = function (row, config, session) {\n var screenTop = config.firstRowScreen * config.lineHeight;\n var screenPage = Math.floor(screenTop / this.canvasHeight);\n var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight;\n return lineTop - (screenPage * this.canvasHeight);\n };\n Lines.prototype.computeLineHeight = function (row, config, session) {\n return config.lineHeight * session.getRowLineCount(row);\n };\n Lines.prototype.getLength = function () {\n return this.cells.length;\n };\n Lines.prototype.get = function (index) {\n return this.cells[index];\n };\n Lines.prototype.shift = function () {\n this.$cacheCell(this.cells.shift());\n };\n Lines.prototype.pop = function () {\n this.$cacheCell(this.cells.pop());\n };\n Lines.prototype.push = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.push.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n this.element.appendChild(fragment);\n }\n else {\n this.cells.push(cell);\n this.element.appendChild(cell.element);\n }\n };\n Lines.prototype.unshift = function (cell) {\n if (Array.isArray(cell)) {\n this.cells.unshift.apply(this.cells, cell);\n var fragment = dom.createFragment(this.element);\n for (var i = 0; i < cell.length; i++) {\n fragment.appendChild(cell[i].element);\n }\n if (this.element.firstChild)\n this.element.insertBefore(fragment, this.element.firstChild);\n else\n this.element.appendChild(fragment);\n }\n else {\n this.cells.unshift(cell);\n this.element.insertAdjacentElement(\"afterbegin\", cell.element);\n }\n };\n Lines.prototype.last = function () {\n if (this.cells.length)\n return this.cells[this.cells.length - 1];\n else\n return null;\n };\n Lines.prototype.$cacheCell = function (cell) {\n if (!cell)\n return;\n cell.element.remove();\n this.cellCache.push(cell);\n };\n Lines.prototype.createCell = function (row, config, session, initElement) {\n var cell = this.cellCache.pop();\n if (!cell) {\n var element = dom.createElement(\"div\");\n if (initElement)\n initElement(element);\n this.element.appendChild(element);\n cell = {\n element: element,\n text: \"\",\n row: row\n };\n }\n cell.row = row;\n return cell;\n };\n return Lines;\n}());\nexports.Lines = Lines;\n\n});\n\nace.define(\"ace/layer/gutter\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/lib/event_emitter\",\"ace/layer/lines\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar lang = require(\"../lib/lang\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Lines = require(\"./lines\").Lines;\nvar nls = require(\"../config\").nls;\nvar Gutter = /** @class */ (function () {\n function Gutter(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_gutter-layer\";\n parentEl.appendChild(this.element);\n this.setShowFoldWidgets(this.$showFoldWidgets);\n this.gutterWidth = 0;\n this.$annotations = [];\n this.$updateAnnotations = this.$updateAnnotations.bind(this);\n this.$lines = new Lines(this.element);\n this.$lines.$offsetCoefficient = 1;\n }\n Gutter.prototype.setSession = function (session) {\n if (this.session)\n this.session.off(\"change\", this.$updateAnnotations);\n this.session = session;\n if (session)\n session.on(\"change\", this.$updateAnnotations);\n };\n Gutter.prototype.addGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.addGutterDecoration\");\n this.session.addGutterDecoration(row, className);\n };\n Gutter.prototype.removeGutterDecoration = function (row, className) {\n if (window.console)\n console.warn && console.warn(\"deprecated use session.removeGutterDecoration\");\n this.session.removeGutterDecoration(row, className);\n };\n Gutter.prototype.setAnnotations = function (annotations) {\n this.$annotations = [];\n for (var i = 0; i < annotations.length; i++) {\n var annotation = annotations[i];\n var row = annotation.row;\n var rowInfo = this.$annotations[row];\n if (!rowInfo)\n rowInfo = this.$annotations[row] = { text: [], type: [] };\n var annoText = annotation.text;\n var annoType = annotation.type;\n annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || \"\";\n if (rowInfo.text.indexOf(annoText) === -1) {\n rowInfo.text.push(annoText);\n rowInfo.type.push(annoType);\n }\n var className = annotation.className;\n if (className)\n rowInfo.className = className;\n else if (annoType == \"error\")\n rowInfo.className = \" ace_error\";\n else if (annoType == \"warning\" && rowInfo.className != \" ace_error\")\n rowInfo.className = \" ace_warning\";\n else if (annoType == \"info\" && (!rowInfo.className))\n rowInfo.className = \" ace_info\";\n }\n };\n Gutter.prototype.$updateAnnotations = function (delta) {\n if (!this.$annotations.length)\n return;\n var firstRow = delta.start.row;\n var len = delta.end.row - firstRow;\n if (len === 0) {\n }\n else if (delta.action == 'remove') {\n this.$annotations.splice(firstRow, len + 1, null);\n }\n else {\n var args = new Array(len + 1);\n args.unshift(firstRow, 1);\n this.$annotations.splice.apply(this.$annotations, args);\n }\n };\n Gutter.prototype.update = function (config) {\n this.config = config;\n var session = this.session;\n var firstRow = config.firstRow;\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n session.getLength() - 1);\n this.oldLastRow = lastRow;\n this.config = config;\n this.$lines.moveContainer(config);\n this.$updateCursorRow();\n var fold = session.getNextFoldLine(firstRow);\n var foldStart = fold ? fold.start.row : Infinity;\n var cell = null;\n var index = -1;\n var row = firstRow;\n while (true) {\n if (row > foldStart) {\n row = fold.end.row + 1;\n fold = session.getNextFoldLine(row, fold);\n foldStart = fold ? fold.start.row : Infinity;\n }\n if (row > lastRow) {\n while (this.$lines.getLength() > index + 1)\n this.$lines.pop();\n break;\n }\n cell = this.$lines.get(++index);\n if (cell) {\n cell.row = row;\n }\n else {\n cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$lines.push(cell);\n }\n this.$renderCell(cell, config, fold, row);\n row++;\n }\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$updateGutterWidth = function (config) {\n var session = this.session;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var firstLineNumber = session.$firstLineNumber;\n var lastLineText = this.$lines.last() ? this.$lines.last().text : \"\";\n if (this.$fixedWidth || session.$useWrapMode)\n lastLineText = session.getLength() + firstLineNumber - 1;\n var gutterWidth = gutterRenderer\n ? gutterRenderer.getWidth(session, lastLineText, config)\n : lastLineText.toString().length * config.characterWidth;\n var padding = this.$padding || this.$computePadding();\n gutterWidth += padding.left + padding.right;\n if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) {\n this.gutterWidth = gutterWidth;\n this.element.parentNode.style.width =\n this.element.style.width = Math.ceil(this.gutterWidth) + \"px\";\n this._signal(\"changeGutterWidth\", gutterWidth);\n }\n };\n Gutter.prototype.$updateCursorRow = function () {\n if (!this.$highlightGutterLine)\n return;\n var position = this.session.selection.getCursor();\n if (this.$cursorRow === position.row)\n return;\n this.$cursorRow = position.row;\n };\n Gutter.prototype.updateLineHighlight = function () {\n if (!this.$highlightGutterLine)\n return;\n var row = this.session.selection.cursor.row;\n this.$cursorRow = row;\n if (this.$cursorCell && this.$cursorCell.row == row)\n return;\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n var cells = this.$lines.cells;\n this.$cursorCell = null;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.row >= this.$cursorRow) {\n if (cell.row > this.$cursorRow) {\n var fold = this.session.getFoldLine(this.$cursorRow);\n if (i > 0 && fold && fold.start.row == cells[i - 1].row)\n cell = cells[i - 1];\n else\n break;\n }\n cell.element.className = \"ace_gutter-active-line \" + cell.element.className;\n this.$cursorCell = cell;\n break;\n }\n }\n };\n Gutter.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n this.$updateCursorRow();\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar\n this.session.getLength() - 1);\n var oldLastRow = this.oldLastRow;\n this.oldLastRow = lastRow;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldLastRow > lastRow)\n for (var row = this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (lastRow > oldLastRow) {\n this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow));\n }\n this.updateLineHighlight();\n this._signal(\"afterRender\");\n this.$updateGutterWidth(config);\n };\n Gutter.prototype.$renderLines = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var cell = this.$lines.createCell(row, config, this.session, onCreateCell);\n this.$renderCell(cell, config, foldLine, row);\n fragment.push(cell);\n row++;\n }\n return fragment;\n };\n Gutter.prototype.$renderCell = function (cell, config, fold, row) {\n var element = cell.element;\n var session = this.session;\n var textNode = element.childNodes[0];\n var foldWidget = element.childNodes[1];\n var annotationNode = element.childNodes[2];\n var annotationIconNode = annotationNode.firstChild;\n var firstLineNumber = session.$firstLineNumber;\n var breakpoints = session.$breakpoints;\n var decorations = session.$decorations;\n var gutterRenderer = session.gutterRenderer || this.$renderer;\n var foldWidgets = this.$showFoldWidgets && session.foldWidgets;\n var foldStart = fold ? fold.start.row : Number.MAX_VALUE;\n var lineHeight = config.lineHeight + \"px\";\n var className = this.$useSvgGutterIcons ? \"ace_gutter-cell_svg-icons \" : \"ace_gutter-cell \";\n var iconClassName = this.$useSvgGutterIcons ? \"ace_icon_svg\" : \"ace_icon\";\n var rowText = (gutterRenderer\n ? gutterRenderer.getText(session, row)\n : row + firstLineNumber).toString();\n if (this.$highlightGutterLine) {\n if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) {\n className += \"ace_gutter-active-line \";\n if (this.$cursorCell != cell) {\n if (this.$cursorCell)\n this.$cursorCell.element.className = this.$cursorCell.element.className.replace(\"ace_gutter-active-line \", \"\");\n this.$cursorCell = cell;\n }\n }\n }\n if (breakpoints[row])\n className += breakpoints[row];\n if (decorations[row])\n className += decorations[row];\n if (this.$annotations[row] && row !== foldStart)\n className += this.$annotations[row].className;\n if (foldWidgets) {\n var c = foldWidgets[row];\n if (c == null)\n c = foldWidgets[row] = session.getFoldWidget(row);\n }\n if (c) {\n var foldClass = \"ace_fold-widget ace_\" + c;\n var isClosedFold = c == \"start\" && row == foldStart && row < fold.end.row;\n if (isClosedFold) {\n foldClass += \" ace_closed\";\n var foldAnnotationClass = '';\n var annotationInFold = false;\n for (var i = row + 1; i <= fold.end.row; i++) {\n if (!this.$annotations[i])\n continue;\n if (this.$annotations[i].className === \" ace_error\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_error_fold\";\n break;\n }\n if (this.$annotations[i].className === \" ace_warning\") {\n annotationInFold = true;\n foldAnnotationClass = \" ace_warning_fold\";\n continue;\n }\n }\n className += foldAnnotationClass;\n }\n else\n foldClass += \" ace_open\";\n if (foldWidget.className != foldClass)\n foldWidget.className = foldClass;\n dom.setStyle(foldWidget.style, \"height\", lineHeight);\n dom.setStyle(foldWidget.style, \"display\", \"inline-block\");\n foldWidget.setAttribute(\"role\", \"button\");\n foldWidget.setAttribute(\"tabindex\", \"-1\");\n var foldRange = session.getFoldWidgetRange(row);\n if (foldRange)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [foldRange.start.row + 1, foldRange.end.row + 1]));\n else {\n if (fold)\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, rows $0 through $1\", [fold.start.row + 1, fold.end.row + 1]));\n else\n foldWidget.setAttribute(\"aria-label\", nls(\"Toggle code folding, row $0\", [row + 1]));\n }\n if (isClosedFold) {\n foldWidget.setAttribute(\"aria-expanded\", \"false\");\n foldWidget.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n else {\n foldWidget.setAttribute(\"aria-expanded\", \"true\");\n foldWidget.setAttribute(\"title\", nls(\"Fold code\"));\n }\n }\n else {\n if (foldWidget) {\n dom.setStyle(foldWidget.style, \"display\", \"none\");\n foldWidget.setAttribute(\"tabindex\", \"0\");\n foldWidget.removeAttribute(\"role\");\n foldWidget.removeAttribute(\"aria-label\");\n }\n }\n if (annotationInFold && this.$showFoldedAnnotations) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n annotationIconNode.className += foldAnnotationClass;\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else if (this.$annotations[row]) {\n annotationNode.className = \"ace_gutter_annotation\";\n annotationIconNode.className = iconClassName;\n if (this.$useSvgGutterIcons)\n annotationIconNode.className += this.$annotations[row].className;\n else\n element.classList.add(this.$annotations[row].className.replace(\" \", \"\"));\n dom.setStyle(annotationIconNode.style, \"height\", lineHeight);\n dom.setStyle(annotationNode.style, \"display\", \"block\");\n dom.setStyle(annotationNode.style, \"height\", lineHeight);\n annotationNode.setAttribute(\"aria-label\", nls(\"Read annotations row $0\", [rowText]));\n annotationNode.setAttribute(\"tabindex\", \"-1\");\n annotationNode.setAttribute(\"role\", \"button\");\n }\n else {\n dom.setStyle(annotationNode.style, \"display\", \"none\");\n annotationNode.removeAttribute(\"aria-label\");\n annotationNode.removeAttribute(\"role\");\n annotationNode.setAttribute(\"tabindex\", \"0\");\n }\n if (rowText !== textNode.data) {\n textNode.data = rowText;\n }\n if (element.className != className)\n element.className = className;\n dom.setStyle(cell.element.style, \"height\", this.$lines.computeLineHeight(row, config, session) + \"px\");\n dom.setStyle(cell.element.style, \"top\", this.$lines.computeLineTop(row, config, session) + \"px\");\n cell.text = rowText;\n if (annotationNode.style.display === \"none\" && foldWidget.style.display === \"none\")\n cell.element.setAttribute(\"aria-hidden\", true);\n else\n cell.element.setAttribute(\"aria-hidden\", false);\n return cell;\n };\n Gutter.prototype.setHighlightGutterLine = function (highlightGutterLine) {\n this.$highlightGutterLine = highlightGutterLine;\n };\n Gutter.prototype.setShowLineNumbers = function (show) {\n this.$renderer = !show && {\n getWidth: function () { return 0; },\n getText: function () { return \"\"; }\n };\n };\n Gutter.prototype.getShowLineNumbers = function () {\n return this.$showLineNumbers;\n };\n Gutter.prototype.setShowFoldWidgets = function (show) {\n if (show)\n dom.addCssClass(this.element, \"ace_folding-enabled\");\n else\n dom.removeCssClass(this.element, \"ace_folding-enabled\");\n this.$showFoldWidgets = show;\n this.$padding = null;\n };\n Gutter.prototype.getShowFoldWidgets = function () {\n return this.$showFoldWidgets;\n };\n Gutter.prototype.$computePadding = function () {\n if (!this.element.firstChild)\n return { left: 0, right: 0 };\n var style = dom.computedStyle(this.element.firstChild);\n this.$padding = {};\n this.$padding.left = (parseInt(style.borderLeftWidth) || 0)\n + (parseInt(style.paddingLeft) || 0) + 1;\n this.$padding.right = (parseInt(style.borderRightWidth) || 0)\n + (parseInt(style.paddingRight) || 0);\n return this.$padding;\n };\n Gutter.prototype.getRegion = function (point) {\n var padding = this.$padding || this.$computePadding();\n var rect = this.element.getBoundingClientRect();\n if (point.x < padding.left + rect.left)\n return \"markers\";\n if (this.$showFoldWidgets && point.x > rect.right - padding.right)\n return \"foldWidgets\";\n };\n return Gutter;\n}());\nGutter.prototype.$fixedWidth = false;\nGutter.prototype.$highlightGutterLine = true;\nGutter.prototype.$renderer = \"\";\nGutter.prototype.$showLineNumbers = true;\nGutter.prototype.$showFoldWidgets = true;\noop.implement(Gutter.prototype, EventEmitter);\nfunction onCreateCell(element) {\n var textNode = document.createTextNode('');\n element.appendChild(textNode);\n var foldWidget = dom.createElement(\"span\");\n element.appendChild(foldWidget);\n var annotationNode = dom.createElement(\"span\");\n element.appendChild(annotationNode);\n var annotationIconNode = dom.createElement(\"span\");\n annotationNode.appendChild(annotationIconNode);\n return element;\n}\nexports.Gutter = Gutter;\n\n});\n\nace.define(\"ace/layer/marker\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar dom = require(\"../lib/dom\");\nvar Marker = /** @class */ (function () {\n function Marker(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_marker-layer\";\n parentEl.appendChild(this.element);\n }\n Marker.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Marker.prototype.setSession = function (session) {\n this.session = session;\n };\n Marker.prototype.setMarkers = function (markers) {\n this.markers = markers;\n };\n Marker.prototype.elt = function (className, css) {\n var x = this.i != -1 && this.element.childNodes[this.i];\n if (!x) {\n x = document.createElement(\"div\");\n this.element.appendChild(x);\n this.i = -1;\n }\n else {\n this.i++;\n }\n x.style.cssText = css;\n x.className = className;\n };\n Marker.prototype.update = function (config) {\n if (!config)\n return;\n this.config = config;\n this.i = 0;\n var html;\n for (var key in this.markers) {\n var marker = this.markers[key];\n if (!marker.range) {\n marker.update(html, this, this.session, config);\n continue;\n }\n var range = marker.range.clipRows(config.firstRow, config.lastRow);\n if (range.isEmpty())\n continue;\n range = range.toScreenRange(this.session);\n if (marker.renderer) {\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n marker.renderer(html, range, left, top, config);\n }\n else if (marker.type == \"fullLine\") {\n this.drawFullLineMarker(html, range, marker.clazz, config);\n }\n else if (marker.type == \"screenLine\") {\n this.drawScreenLineMarker(html, range, marker.clazz, config);\n }\n else if (range.isMultiLine()) {\n if (marker.type == \"text\")\n this.drawTextMarker(html, range, marker.clazz, config);\n else\n this.drawMultiLineMarker(html, range, marker.clazz, config);\n }\n else {\n this.drawSingleLineMarker(html, range, marker.clazz + \" ace_start\" + \" ace_br15\", config);\n }\n }\n if (this.i != -1) {\n while (this.i < this.element.childElementCount)\n this.element.removeChild(this.element.lastChild);\n }\n };\n Marker.prototype.$getTop = function (row, layerConfig) {\n return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight;\n };\n Marker.prototype.drawTextMarker = function (stringBuilder, range, clazz, layerConfig, extraStyle) {\n var session = this.session;\n var start = range.start.row;\n var end = range.end.row;\n var row = start;\n var prev = 0;\n var curr = 0;\n var next = session.getScreenLastRowColumn(row);\n var lineRange = new Range(row, range.start.column, row, curr);\n for (; row <= end; row++) {\n lineRange.start.row = lineRange.end.row = row;\n lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row);\n lineRange.end.column = next;\n prev = curr;\n curr = next;\n next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column;\n this.drawSingleLineMarker(stringBuilder, lineRange, clazz + (row == start ? \" ace_start\" : \"\") + \" ace_br\"\n + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), layerConfig, row == end ? 0 : 1, extraStyle);\n }\n };\n Marker.prototype.drawMultiLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var padding = this.$padding;\n var height = config.lineHeight;\n var top = this.$getTop(range.start.row, config);\n var left = padding + range.start.column * config.characterWidth;\n extraStyle = extraStyle || \"\";\n if (this.session.$bidiHandler.isBidiRow(range.start.row)) {\n var range1 = range.clone();\n range1.end.row = range1.start.row;\n range1.end.column = this.session.getLine(range1.start.row).length;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br1 ace_start\", config, null, extraStyle);\n }\n else {\n this.elt(clazz + \" ace_br1 ace_start\", \"height:\" + height + \"px;\" + \"right:0;\" + \"top:\" + top + \"px;left:\" + left + \"px;\" + (extraStyle || \"\"));\n }\n if (this.session.$bidiHandler.isBidiRow(range.end.row)) {\n var range1 = range.clone();\n range1.start.row = range1.end.row;\n range1.start.column = 0;\n this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + \" ace_br12\", config, null, extraStyle);\n }\n else {\n top = this.$getTop(range.end.row, config);\n var width = range.end.column * config.characterWidth;\n this.elt(clazz + \" ace_br12\", \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n }\n height = (range.end.row - range.start.row - 1) * config.lineHeight;\n if (height <= 0)\n return;\n top = this.$getTop(range.start.row + 1, config);\n var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8);\n this.elt(clazz + (radiusClass ? \" ace_br\" + radiusClass : \"\"), \"height:\" + height + \"px;\" +\n \"right:0;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + padding + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n if (this.session.$bidiHandler.isBidiRow(range.start.row))\n return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle);\n var height = config.lineHeight;\n var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth;\n var top = this.$getTop(range.start.row, config);\n var left = this.$padding + range.start.column * config.characterWidth;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + width + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + left + \"px;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawBidiSingleLineMarker = function (stringBuilder, range, clazz, config, extraLength, extraStyle) {\n var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding;\n var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column);\n selections.forEach(function (selection) {\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"width:\" + (selection.width + (extraLength || 0)) + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:\" + (padding + selection.left) + \"px;\" + (extraStyle || \"\"));\n }, this);\n };\n Marker.prototype.drawFullLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n if (range.start.row != range.end.row)\n height += this.$getTop(range.end.row, config) - top;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n Marker.prototype.drawScreenLineMarker = function (stringBuilder, range, clazz, config, extraStyle) {\n var top = this.$getTop(range.start.row, config);\n var height = config.lineHeight;\n this.elt(clazz, \"height:\" + height + \"px;\" +\n \"top:\" + top + \"px;\" +\n \"left:0;right:0;\" + (extraStyle || \"\"));\n };\n return Marker;\n}());\nMarker.prototype.$padding = 0;\nfunction getBorderClass(tl, tr, br, bl) {\n return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0);\n}\nexports.Marker = Marker;\n\n});\n\nace.define(\"ace/layer/text\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/layer/lines\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar Lines = require(\"./lines\").Lines;\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar nls = require(\"../config\").nls;\nvar Text = /** @class */ (function () {\n function Text(parentEl) {\n this.dom = dom;\n this.element = this.dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_text-layer\";\n parentEl.appendChild(this.element);\n this.$updateEolChar = this.$updateEolChar.bind(this);\n this.$lines = new Lines(this.element);\n }\n Text.prototype.$updateEolChar = function () {\n var doc = this.session.doc;\n var unixMode = doc.getNewLineCharacter() == \"\\n\" && doc.getNewLineMode() != \"windows\";\n var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF;\n if (this.EOL_CHAR != EOL_CHAR) {\n this.EOL_CHAR = EOL_CHAR;\n return true;\n }\n };\n Text.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.element.style.margin = \"0 \" + padding + \"px\";\n };\n Text.prototype.getLineHeight = function () {\n return this.$fontMetrics.$characterSize.height || 0;\n };\n Text.prototype.getCharacterWidth = function () {\n return this.$fontMetrics.$characterSize.width || 0;\n };\n Text.prototype.$setFontMetrics = function (measure) {\n this.$fontMetrics = measure;\n this.$fontMetrics.on(\"changeCharacterSize\", function (e) {\n this._signal(\"changeCharacterSize\", e);\n }.bind(this));\n this.$pollSizeChanges();\n };\n Text.prototype.checkForSizeChanges = function () {\n this.$fontMetrics.checkForSizeChanges();\n };\n Text.prototype.$pollSizeChanges = function () {\n return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges();\n };\n Text.prototype.setSession = function (session) {\n this.session = session;\n if (session)\n this.$computeTabString();\n };\n Text.prototype.setShowInvisibles = function (showInvisibles) {\n if (this.showInvisibles == showInvisibles)\n return false;\n this.showInvisibles = showInvisibles;\n if (typeof showInvisibles == \"string\") {\n this.showSpaces = /tab/i.test(showInvisibles);\n this.showTabs = /space/i.test(showInvisibles);\n this.showEOL = /eol/i.test(showInvisibles);\n }\n else {\n this.showSpaces = this.showTabs = this.showEOL = showInvisibles;\n }\n this.$computeTabString();\n return true;\n };\n Text.prototype.setDisplayIndentGuides = function (display) {\n if (this.displayIndentGuides == display)\n return false;\n this.displayIndentGuides = display;\n this.$computeTabString();\n return true;\n };\n Text.prototype.setHighlightIndentGuides = function (highlight) {\n if (this.$highlightIndentGuides === highlight)\n return false;\n this.$highlightIndentGuides = highlight;\n return highlight;\n };\n Text.prototype.$computeTabString = function () {\n var tabSize = this.session.getTabSize();\n this.tabSize = tabSize;\n var tabStr = this.$tabStrings = [0];\n for (var i = 1; i < tabSize + 1; i++) {\n if (this.showTabs) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_tab\";\n span.textContent = lang.stringRepeat(this.TAB_CHAR, i);\n tabStr.push(span);\n }\n else {\n tabStr.push(this.dom.createTextNode(lang.stringRepeat(\" \", i), this.element));\n }\n }\n if (this.displayIndentGuides) {\n this.$indentGuideRe = /\\s\\S| \\t|\\t |\\s$/;\n var className = \"ace_indent-guide\";\n var spaceClass = this.showSpaces ? \" ace_invisible ace_invisible_space\" : \"\";\n var spaceContent = this.showSpaces\n ? lang.stringRepeat(this.SPACE_CHAR, this.tabSize)\n : lang.stringRepeat(\" \", this.tabSize);\n var tabClass = this.showTabs ? \" ace_invisible ace_invisible_tab\" : \"\";\n var tabContent = this.showTabs\n ? lang.stringRepeat(this.TAB_CHAR, this.tabSize)\n : spaceContent;\n var span = this.dom.createElement(\"span\");\n span.className = className + spaceClass;\n span.textContent = spaceContent;\n this.$tabStrings[\" \"] = span;\n var span = this.dom.createElement(\"span\");\n span.className = className + tabClass;\n span.textContent = tabContent;\n this.$tabStrings[\"\\t\"] = span;\n }\n };\n Text.prototype.updateLines = function (config, firstRow, lastRow) {\n if (this.config.lastRow != config.lastRow ||\n this.config.firstRow != config.firstRow) {\n return this.update(config);\n }\n this.config = config;\n var first = Math.max(firstRow, config.firstRow);\n var last = Math.min(lastRow, config.lastRow);\n var lineElements = this.element.childNodes;\n var lineElementsIdx = 0;\n for (var row = config.firstRow; row < first; row++) {\n var foldLine = this.session.getFoldLine(row);\n if (foldLine) {\n if (foldLine.containsRow(first)) {\n first = foldLine.start.row;\n break;\n }\n else {\n row = foldLine.end.row;\n }\n }\n lineElementsIdx++;\n }\n var heightChanged = false;\n var row = first;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > last)\n break;\n var lineElement = lineElements[lineElementsIdx++];\n if (lineElement) {\n this.dom.removeChildren(lineElement);\n this.$renderLine(lineElement, row, row == foldStart ? foldLine : false);\n if (heightChanged)\n lineElement.style.top = this.$lines.computeLineTop(row, config, this.session) + \"px\";\n var height = (config.lineHeight * this.session.getRowLength(row)) + \"px\";\n if (lineElement.style.height != height) {\n heightChanged = true;\n lineElement.style.height = height;\n }\n }\n row++;\n }\n if (heightChanged) {\n while (lineElementsIdx < this.$lines.cells.length) {\n var cell = this.$lines.cells[lineElementsIdx++];\n cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + \"px\";\n }\n }\n };\n Text.prototype.scrollLines = function (config) {\n var oldConfig = this.config;\n this.config = config;\n if (this.$lines.pageChanged(oldConfig, config))\n return this.update(config);\n this.$lines.moveContainer(config);\n var lastRow = config.lastRow;\n var oldLastRow = oldConfig ? oldConfig.lastRow : -1;\n if (!oldConfig || oldLastRow < config.firstRow)\n return this.update(config);\n if (lastRow < oldConfig.firstRow)\n return this.update(config);\n if (!oldConfig || oldConfig.lastRow < config.firstRow)\n return this.update(config);\n if (config.lastRow < oldConfig.firstRow)\n return this.update(config);\n if (oldConfig.firstRow < config.firstRow)\n for (var row = this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row > 0; row--)\n this.$lines.shift();\n if (oldConfig.lastRow > config.lastRow)\n for (var row = this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row > 0; row--)\n this.$lines.pop();\n if (config.firstRow < oldConfig.firstRow) {\n this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1));\n }\n if (config.lastRow > oldConfig.lastRow) {\n this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow));\n }\n this.$highlightIndentGuide();\n };\n Text.prototype.$renderLinesFragment = function (config, firstRow, lastRow) {\n var fragment = [];\n var row = firstRow;\n var foldLine = this.session.getNextFoldLine(row);\n var foldStart = foldLine ? foldLine.start.row : Infinity;\n while (true) {\n if (row > foldStart) {\n row = foldLine.end.row + 1;\n foldLine = this.session.getNextFoldLine(row, foldLine);\n foldStart = foldLine ? foldLine.start.row : Infinity;\n }\n if (row > lastRow)\n break;\n var line = this.$lines.createCell(row, config, this.session);\n var lineEl = line.element;\n this.dom.removeChildren(lineEl);\n dom.setStyle(lineEl.style, \"height\", this.$lines.computeLineHeight(row, config, this.session) + \"px\");\n dom.setStyle(lineEl.style, \"top\", this.$lines.computeLineTop(row, config, this.session) + \"px\");\n this.$renderLine(lineEl, row, row == foldStart ? foldLine : false);\n if (this.$useLineGroups()) {\n lineEl.className = \"ace_line_group\";\n }\n else {\n lineEl.className = \"ace_line\";\n }\n fragment.push(line);\n row++;\n }\n return fragment;\n };\n Text.prototype.update = function (config) {\n this.$lines.moveContainer(config);\n this.config = config;\n var firstRow = config.firstRow;\n var lastRow = config.lastRow;\n var lines = this.$lines;\n while (lines.getLength())\n lines.pop();\n lines.push(this.$renderLinesFragment(config, firstRow, lastRow));\n };\n Text.prototype.$renderToken = function (parent, screenColumn, token, value) {\n var self = this;\n var re = /(\\t)|( +)|([\\x00-\\x1f\\x80-\\xa0\\xad\\u1680\\u180E\\u2000-\\u200f\\u2028\\u2029\\u202F\\u205F\\uFEFF\\uFFF9-\\uFFFC\\u2066\\u2067\\u2068\\u202A\\u202B\\u202D\\u202E\\u202C\\u2069]+)|(\\u3000)|([\\u1100-\\u115F\\u11A3-\\u11A7\\u11FA-\\u11FF\\u2329-\\u232A\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3001-\\u303E\\u3041-\\u3096\\u3099-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u3190-\\u31BA\\u31C0-\\u31E3\\u31F0-\\u321E\\u3220-\\u3247\\u3250-\\u32FE\\u3300-\\u4DBF\\u4E00-\\uA48C\\uA490-\\uA4C6\\uA960-\\uA97C\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFAFF\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFF01-\\uFF60\\uFFE0-\\uFFE6]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF])/g;\n var valueFragment = this.dom.createFragment(this.element);\n var m;\n var i = 0;\n while (m = re.exec(value)) {\n var tab = m[1];\n var simpleSpace = m[2];\n var controlCharacter = m[3];\n var cjkSpace = m[4];\n var cjk = m[5];\n if (!self.showSpaces && simpleSpace)\n continue;\n var before = i != m.index ? value.slice(i, m.index) : \"\";\n i = m.index + m[0].length;\n if (before) {\n valueFragment.appendChild(this.dom.createTextNode(before, this.element));\n }\n if (tab) {\n var tabSize = self.session.getScreenTabSize(screenColumn + m.index);\n valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true));\n screenColumn += tabSize - 1;\n }\n else if (simpleSpace) {\n if (self.showSpaces) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length);\n valueFragment.appendChild(span);\n }\n else {\n valueFragment.appendChild(this.com.createTextNode(simpleSpace, this.element));\n }\n }\n else if (controlCharacter) {\n var span = this.dom.createElement(\"span\");\n span.className = \"ace_invisible ace_invisible_space ace_invalid\";\n span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length);\n valueFragment.appendChild(span);\n }\n else if (cjkSpace) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = self.showSpaces ? \"ace_cjk ace_invisible ace_invisible_space\" : \"ace_cjk\";\n span.textContent = self.showSpaces ? self.SPACE_CHAR : cjkSpace;\n valueFragment.appendChild(span);\n }\n else if (cjk) {\n screenColumn += 1;\n var span = this.dom.createElement(\"span\");\n span.style.width = (self.config.characterWidth * 2) + \"px\";\n span.className = \"ace_cjk\";\n span.textContent = cjk;\n valueFragment.appendChild(span);\n }\n }\n valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element));\n if (!this.$textToken[token.type]) {\n var classes = \"ace_\" + token.type.replace(/\\./g, \" ace_\");\n var span = this.dom.createElement(\"span\");\n if (token.type == \"fold\") {\n span.style.width = (token.value.length * this.config.characterWidth) + \"px\";\n span.setAttribute(\"title\", nls(\"Unfold code\"));\n }\n span.className = classes;\n span.appendChild(valueFragment);\n parent.appendChild(span);\n }\n else {\n parent.appendChild(valueFragment);\n }\n return screenColumn + value.length;\n };\n Text.prototype.renderIndentGuide = function (parent, value, max) {\n var cols = value.search(this.$indentGuideRe);\n if (cols <= 0 || cols >= max)\n return value;\n if (value[0] == \" \") {\n cols -= cols % this.tabSize;\n var count = cols / this.tabSize;\n for (var i = 0; i < count; i++) {\n parent.appendChild(this.$tabStrings[\" \"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n else if (value[0] == \"\\t\") {\n for (var i = 0; i < cols; i++) {\n parent.appendChild(this.$tabStrings[\"\\t\"].cloneNode(true));\n }\n this.$highlightIndentGuide();\n return value.substr(cols);\n }\n this.$highlightIndentGuide();\n return value;\n };\n Text.prototype.$highlightIndentGuide = function () {\n if (!this.$highlightIndentGuides || !this.displayIndentGuides)\n return;\n this.$highlightIndentGuideMarker = {\n indentLevel: undefined,\n start: undefined,\n end: undefined,\n dir: undefined\n };\n var lines = this.session.doc.$lines;\n if (!lines)\n return;\n var cursor = this.session.selection.getCursor();\n var initialIndent = /^\\s*/.exec(this.session.doc.getLine(cursor.row))[0].length;\n var elementIndentLevel = Math.floor(initialIndent / this.tabSize);\n this.$highlightIndentGuideMarker = {\n indentLevel: elementIndentLevel,\n start: cursor.row\n };\n var bracketHighlight = this.session.$bracketHighlight;\n if (bracketHighlight) {\n var ranges = this.session.$bracketHighlight.ranges;\n for (var i = 0; i < ranges.length; i++) {\n if (cursor.row !== ranges[i].start.row) {\n this.$highlightIndentGuideMarker.end = ranges[i].start.row;\n if (cursor.row > ranges[i].start.row) {\n this.$highlightIndentGuideMarker.dir = -1;\n }\n else {\n this.$highlightIndentGuideMarker.dir = 1;\n }\n break;\n }\n }\n }\n if (!this.$highlightIndentGuideMarker.end) {\n if (lines[cursor.row] !== '' && cursor.column === lines[cursor.row].length) {\n this.$highlightIndentGuideMarker.dir = 1;\n for (var i = cursor.row + 1; i < lines.length; i++) {\n var line = lines[i];\n var currentIndent = /^\\s*/.exec(line)[0].length;\n if (line !== '') {\n this.$highlightIndentGuideMarker.end = i;\n if (currentIndent <= initialIndent)\n break;\n }\n }\n }\n }\n this.$renderHighlightIndentGuide();\n };\n Text.prototype.$clearActiveIndentGuide = function () {\n var cells = this.$lines.cells;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var childNodes = cell.element.childNodes;\n if (childNodes.length > 0) {\n for (var j = 0; j < childNodes.length; j++) {\n if (childNodes[j].classList && childNodes[j].classList.contains(\"ace_indent-guide-active\")) {\n childNodes[j].classList.remove(\"ace_indent-guide-active\");\n break;\n }\n }\n }\n }\n };\n Text.prototype.$setIndentGuideActive = function (cell, indentLevel) {\n var line = this.session.doc.getLine(cell.row);\n if (line !== \"\") {\n var childNodes = cell.element.childNodes;\n if (childNodes) {\n var node = childNodes[indentLevel - 1];\n if (node && node.classList && node.classList.contains(\"ace_indent-guide\"))\n node.classList.add(\"ace_indent-guide-active\");\n }\n }\n };\n Text.prototype.$renderHighlightIndentGuide = function () {\n if (!this.$lines)\n return;\n var cells = this.$lines.cells;\n this.$clearActiveIndentGuide();\n var indentLevel = this.$highlightIndentGuideMarker.indentLevel;\n if (indentLevel !== 0) {\n if (this.$highlightIndentGuideMarker.dir === 1) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row >= this.$highlightIndentGuideMarker.start\n + 1) {\n if (cell.row >= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n else {\n for (var i = cells.length - 1; i >= 0; i--) {\n var cell = cells[i];\n if (this.$highlightIndentGuideMarker.end && cell.row < this.$highlightIndentGuideMarker.start) {\n if (cell.row <= this.$highlightIndentGuideMarker.end)\n break;\n this.$setIndentGuideActive(cell, indentLevel);\n }\n }\n }\n }\n };\n Text.prototype.$createLineElement = function (parent) {\n var lineEl = this.dom.createElement(\"div\");\n lineEl.className = \"ace_line\";\n lineEl.style.height = this.config.lineHeight + \"px\";\n return lineEl;\n };\n Text.prototype.$renderWrappedLine = function (parent, tokens, splits) {\n var chars = 0;\n var split = 0;\n var splitChars = splits[0];\n var screenColumn = 0;\n var lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n chars = value.length;\n value = this.renderIndentGuide(lineEl, value, splitChars);\n if (!value)\n continue;\n chars -= value.length;\n }\n if (chars + value.length < splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n chars += value.length;\n }\n else {\n while (chars + value.length >= splitChars) {\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value.substring(0, splitChars - chars));\n value = value.substring(splitChars - chars);\n chars = splitChars;\n lineEl = this.$createLineElement();\n parent.appendChild(lineEl);\n lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat(\"\\xa0\", splits.indent), this.element));\n split++;\n screenColumn = 0;\n splitChars = splits[split] || Number.MAX_VALUE;\n }\n if (value.length != 0) {\n chars += value.length;\n screenColumn = this.$renderToken(lineEl, screenColumn, token, value);\n }\n }\n }\n if (splits[splits.length - 1] > this.MAX_LINE_LENGTH)\n this.$renderOverflowMessage(lineEl, screenColumn, null, \"\", true);\n };\n Text.prototype.$renderSimpleLine = function (parent, tokens) {\n var screenColumn = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n var value = token.value;\n if (i == 0 && this.displayIndentGuides) {\n value = this.renderIndentGuide(parent, value);\n if (!value)\n continue;\n }\n if (screenColumn + value.length > this.MAX_LINE_LENGTH)\n return this.$renderOverflowMessage(parent, screenColumn, token, value);\n screenColumn = this.$renderToken(parent, screenColumn, token, value);\n }\n };\n Text.prototype.$renderOverflowMessage = function (parent, screenColumn, token, value, hide) {\n token && this.$renderToken(parent, screenColumn, token, value.slice(0, this.MAX_LINE_LENGTH - screenColumn));\n var overflowEl = this.dom.createElement(\"span\");\n overflowEl.className = \"ace_inline_button ace_keyword ace_toggle_wrap\";\n overflowEl.textContent = hide ? \"\" : \"\";\n parent.appendChild(overflowEl);\n };\n Text.prototype.$renderLine = function (parent, row, foldLine) {\n if (!foldLine && foldLine != false)\n foldLine = this.session.getFoldLine(row);\n if (foldLine)\n var tokens = this.$getFoldLineTokens(row, foldLine);\n else\n var tokens = this.session.getTokens(row);\n var lastLineEl = parent;\n if (tokens.length) {\n var splits = this.session.getRowSplitData(row);\n if (splits && splits.length) {\n this.$renderWrappedLine(parent, tokens, splits);\n var lastLineEl = parent.lastChild;\n }\n else {\n var lastLineEl = parent;\n if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n this.$renderSimpleLine(lastLineEl, tokens);\n }\n }\n else if (this.$useLineGroups()) {\n lastLineEl = this.$createLineElement();\n parent.appendChild(lastLineEl);\n }\n if (this.showEOL && lastLineEl) {\n if (foldLine)\n row = foldLine.end.row;\n var invisibleEl = this.dom.createElement(\"span\");\n invisibleEl.className = \"ace_invisible ace_invisible_eol\";\n invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR;\n lastLineEl.appendChild(invisibleEl);\n }\n };\n Text.prototype.$getFoldLineTokens = function (row, foldLine) {\n var session = this.session;\n var renderTokens = [];\n function addTokens(tokens, from, to) {\n var idx = 0, col = 0;\n while ((col + tokens[idx].value.length) < from) {\n col += tokens[idx].value.length;\n idx++;\n if (idx == tokens.length)\n return;\n }\n if (col != from) {\n var value = tokens[idx].value.substring(from - col);\n if (value.length > (to - from))\n value = value.substring(0, to - from);\n renderTokens.push({\n type: tokens[idx].type,\n value: value\n });\n col = from + value.length;\n idx += 1;\n }\n while (col < to && idx < tokens.length) {\n var value = tokens[idx].value;\n if (value.length + col > to) {\n renderTokens.push({\n type: tokens[idx].type,\n value: value.substring(0, to - col)\n });\n }\n else\n renderTokens.push(tokens[idx]);\n col += value.length;\n idx += 1;\n }\n }\n var tokens = session.getTokens(row);\n foldLine.walk(function (placeholder, row, column, lastColumn, isNewRow) {\n if (placeholder != null) {\n renderTokens.push({\n type: \"fold\",\n value: placeholder\n });\n }\n else {\n if (isNewRow)\n tokens = session.getTokens(row);\n if (tokens.length)\n addTokens(tokens, lastColumn, column);\n }\n }, foldLine.end.row, this.session.getLine(foldLine.end.row).length);\n return renderTokens;\n };\n Text.prototype.$useLineGroups = function () {\n return this.session.getUseWrapMode();\n };\n return Text;\n}());\nText.prototype.$textToken = {\n \"text\": true,\n \"rparen\": true,\n \"lparen\": true\n};\nText.prototype.EOF_CHAR = \"\\xB6\";\nText.prototype.EOL_CHAR_LF = \"\\xAC\";\nText.prototype.EOL_CHAR_CRLF = \"\\xa4\";\nText.prototype.EOL_CHAR = Text.prototype.EOL_CHAR_LF;\nText.prototype.TAB_CHAR = \"\\u2014\"; //\"\\u21E5\";\nText.prototype.SPACE_CHAR = \"\\xB7\";\nText.prototype.$padding = 0;\nText.prototype.MAX_LINE_LENGTH = 10000;\nText.prototype.showInvisibles = false;\nText.prototype.showSpaces = false;\nText.prototype.showTabs = false;\nText.prototype.showEOL = false;\nText.prototype.displayIndentGuides = true;\nText.prototype.$highlightIndentGuides = true;\nText.prototype.$tabStrings = [];\nText.prototype.destroy = {};\nText.prototype.onChangeTabSize = Text.prototype.$computeTabString;\noop.implement(Text.prototype, EventEmitter);\nexports.Text = Text;\n\n});\n\nace.define(\"ace/layer/cursor\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar Cursor = /** @class */ (function () {\n function Cursor(parentEl) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_layer ace_cursor-layer\";\n parentEl.appendChild(this.element);\n this.isVisible = false;\n this.isBlinking = true;\n this.blinkInterval = 1000;\n this.smoothBlinking = false;\n this.cursors = [];\n this.cursor = this.addCursor();\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.$updateCursors = this.$updateOpacity.bind(this);\n }\n Cursor.prototype.$updateOpacity = function (val) {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n dom.setStyle(cursors[i].style, \"opacity\", val ? \"\" : \"0\");\n };\n Cursor.prototype.$startCssAnimation = function () {\n var cursors = this.cursors;\n for (var i = cursors.length; i--;)\n cursors[i].style.animationDuration = this.blinkInterval + \"ms\";\n this.$isAnimating = true;\n setTimeout(function () {\n if (this.$isAnimating) {\n dom.addCssClass(this.element, \"ace_animate-blinking\");\n }\n }.bind(this));\n };\n Cursor.prototype.$stopCssAnimation = function () {\n this.$isAnimating = false;\n dom.removeCssClass(this.element, \"ace_animate-blinking\");\n };\n Cursor.prototype.setPadding = function (padding) {\n this.$padding = padding;\n };\n Cursor.prototype.setSession = function (session) {\n this.session = session;\n };\n Cursor.prototype.setBlinking = function (blinking) {\n if (blinking != this.isBlinking) {\n this.isBlinking = blinking;\n this.restartTimer();\n }\n };\n Cursor.prototype.setBlinkInterval = function (blinkInterval) {\n if (blinkInterval != this.blinkInterval) {\n this.blinkInterval = blinkInterval;\n this.restartTimer();\n }\n };\n Cursor.prototype.setSmoothBlinking = function (smoothBlinking) {\n if (smoothBlinking != this.smoothBlinking) {\n this.smoothBlinking = smoothBlinking;\n dom.setCssClass(this.element, \"ace_smooth-blinking\", smoothBlinking);\n this.$updateCursors(true);\n this.restartTimer();\n }\n };\n Cursor.prototype.addCursor = function () {\n var el = dom.createElement(\"div\");\n el.className = \"ace_cursor\";\n this.element.appendChild(el);\n this.cursors.push(el);\n return el;\n };\n Cursor.prototype.removeCursor = function () {\n if (this.cursors.length > 1) {\n var el = this.cursors.pop();\n el.parentNode.removeChild(el);\n return el;\n }\n };\n Cursor.prototype.hideCursor = function () {\n this.isVisible = false;\n dom.addCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.showCursor = function () {\n this.isVisible = true;\n dom.removeCssClass(this.element, \"ace_hidden-cursors\");\n this.restartTimer();\n };\n Cursor.prototype.restartTimer = function () {\n var update = this.$updateCursors;\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n this.$stopCssAnimation();\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = false;\n dom.removeCssClass(this.element, \"ace_smooth-blinking\");\n }\n update(true);\n if (!this.isBlinking || !this.blinkInterval || !this.isVisible) {\n this.$stopCssAnimation();\n return;\n }\n if (this.smoothBlinking) {\n this.$isSmoothBlinking = true;\n setTimeout(function () {\n if (this.$isSmoothBlinking) {\n dom.addCssClass(this.element, \"ace_smooth-blinking\");\n }\n }.bind(this));\n }\n if (dom.HAS_CSS_ANIMATION) {\n this.$startCssAnimation();\n }\n else {\n var blink = function () {\n this.timeoutId = setTimeout(function () {\n update(false);\n }, 0.6 * this.blinkInterval);\n }.bind(this);\n this.intervalId = setInterval(function () {\n update(true);\n blink();\n }, this.blinkInterval);\n blink();\n }\n };\n Cursor.prototype.getPixelPosition = function (position, onScreen) {\n if (!this.config || !this.session)\n return { left: 0, top: 0 };\n if (!position)\n position = this.session.selection.getCursor();\n var pos = this.session.documentToScreenPosition(position);\n var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : pos.column * this.config.characterWidth);\n var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) *\n this.config.lineHeight;\n return { left: cursorLeft, top: cursorTop };\n };\n Cursor.prototype.isCursorInView = function (pixelPos, config) {\n return pixelPos.top >= 0 && pixelPos.top < config.maxHeight;\n };\n Cursor.prototype.update = function (config) {\n this.config = config;\n var selections = this.session.$selectionMarkers;\n var i = 0, cursorIndex = 0;\n if (selections === undefined || selections.length === 0) {\n selections = [{ cursor: null }];\n }\n for (var i = 0, n = selections.length; i < n; i++) {\n var pixelPos = this.getPixelPosition(selections[i].cursor, true);\n if ((pixelPos.top > config.height + config.offset ||\n pixelPos.top < 0) && i > 1) {\n continue;\n }\n var element = this.cursors[cursorIndex++] || this.addCursor();\n var style = element.style;\n if (!this.drawCursor) {\n if (!this.isCursorInView(pixelPos, config)) {\n dom.setStyle(style, \"display\", \"none\");\n }\n else {\n dom.setStyle(style, \"display\", \"block\");\n dom.translate(element, pixelPos.left, pixelPos.top);\n dom.setStyle(style, \"width\", Math.round(config.characterWidth) + \"px\");\n dom.setStyle(style, \"height\", config.lineHeight + \"px\");\n }\n }\n else {\n this.drawCursor(element, pixelPos, config, selections[i], this.session);\n }\n }\n while (this.cursors.length > cursorIndex)\n this.removeCursor();\n var overwrite = this.session.getOverwrite();\n this.$setOverwrite(overwrite);\n this.$pixelPos = pixelPos;\n this.restartTimer();\n };\n Cursor.prototype.$setOverwrite = function (overwrite) {\n if (overwrite != this.overwrite) {\n this.overwrite = overwrite;\n if (overwrite)\n dom.addCssClass(this.element, \"ace_overwrite-cursors\");\n else\n dom.removeCssClass(this.element, \"ace_overwrite-cursors\");\n }\n };\n Cursor.prototype.destroy = function () {\n clearInterval(this.intervalId);\n clearTimeout(this.timeoutId);\n };\n return Cursor;\n}());\nCursor.prototype.$padding = 0;\nCursor.prototype.drawCursor = null;\nexports.Cursor = Cursor;\n\n});\n\nace.define(\"ace/scrollbar\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar MAX_SCROLL_H = 0x8000;\nvar Scrollbar = /** @class */ (function () {\n function Scrollbar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_scrollbar ace_scrollbar\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"ace_scrollbar-inner\";\n this.inner.textContent = \"\\xa0\";\n this.element.appendChild(this.inner);\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addListener(this.element, \"scroll\", this.onScroll.bind(this));\n event.addListener(this.element, \"mousedown\", event.preventDefault);\n }\n Scrollbar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return Scrollbar;\n}());\noop.implement(Scrollbar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n renderer.$scrollbarWidth =\n _this.width = dom.scrollbarWidth(parent.ownerDocument);\n _this.inner.style.width =\n _this.element.style.width = (_this.width || 15) + 5 + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollTop = this.element.scrollTop;\n if (this.coeff != 1) {\n var h = this.element.clientHeight / this.scrollHeight;\n this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h);\n }\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n this.skipEvent = false;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.element.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollHeight = function (height) {\n this.scrollHeight = height;\n if (height > MAX_SCROLL_H) {\n this.coeff = MAX_SCROLL_H / height;\n height = MAX_SCROLL_H;\n }\n else if (this.coeff != 1) {\n this.coeff = 1;\n }\n this.inner.style.height = height + \"px\";\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n if (this.scrollTop != scrollTop) {\n this.skipEvent = true;\n this.scrollTop = scrollTop;\n this.element.scrollTop = scrollTop * this.coeff;\n }\n };\n return VScrollBar;\n}(Scrollbar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.height = renderer.$scrollbarWidth;\n _this.inner.style.height =\n _this.element.style.height = (_this.height || 15) + 5 + \"px\";\n return _this;\n }\n HScrollBar.prototype.onScroll = function () {\n if (!this.skipEvent) {\n this.scrollLeft = this.element.scrollLeft;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n this.skipEvent = false;\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.element.style.width = width + \"px\";\n };\n HScrollBar.prototype.setInnerWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollWidth = function (width) {\n this.inner.style.width = width + \"px\";\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n if (this.scrollLeft != scrollLeft) {\n this.skipEvent = true;\n this.scrollLeft = this.element.scrollLeft = scrollLeft;\n }\n };\n return HScrollBar;\n}(Scrollbar));\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/scrollbar_custom\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/event\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar event = require(\"./lib/event\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\ndom.importCssString(\".ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{\\n position: absolute;\\n background: rgba(128, 128, 128, 0.6);\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n border: 1px solid #bbb;\\n border-radius: 2px;\\n z-index: 8;\\n}\\n.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {\\n position: absolute;\\n z-index: 6;\\n background: none;\\n overflow: hidden!important;\\n}\\n.ace_editor>.ace_sb-v {\\n z-index: 6;\\n right: 0;\\n top: 0;\\n width: 12px;\\n}\\n.ace_editor>.ace_sb-v div {\\n z-index: 8;\\n right: 0;\\n width: 100%;\\n}\\n.ace_editor>.ace_sb-h {\\n bottom: 0;\\n left: 0;\\n height: 12px;\\n}\\n.ace_editor>.ace_sb-h div {\\n bottom: 0;\\n height: 100%;\\n}\\n.ace_editor>.ace_sb_grabbed {\\n z-index: 8;\\n background: #000;\\n}\", \"ace_scrollbar.css\", false);\nvar ScrollBar = /** @class */ (function () {\n function ScrollBar(parent, classSuffix) {\n this.element = dom.createElement(\"div\");\n this.element.className = \"ace_sb\" + classSuffix;\n this.inner = dom.createElement(\"div\");\n this.inner.className = \"\";\n this.element.appendChild(this.inner);\n this.VScrollWidth = 12;\n this.HScrollHeight = 12;\n parent.appendChild(this.element);\n this.setVisible(false);\n this.skipEvent = false;\n event.addMultiMouseDownListener(this.element, [500, 300, 300], this, \"onMouseDown\");\n }\n ScrollBar.prototype.setVisible = function (isVisible) {\n this.element.style.display = isVisible ? \"\" : \"none\";\n this.isVisible = isVisible;\n this.coeff = 1;\n };\n return ScrollBar;\n}());\noop.implement(ScrollBar.prototype, EventEmitter);\nvar VScrollBar = /** @class */ (function (_super) {\n __extends(VScrollBar, _super);\n function VScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-v') || this;\n _this.scrollTop = 0;\n _this.scrollHeight = 0;\n _this.parent = parent;\n _this.width = _this.VScrollWidth;\n _this.renderer = renderer;\n _this.inner.style.width = _this.element.style.width = (_this.width || 15) + \"px\";\n _this.$minWidth = 0;\n return _this;\n }\n VScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageY = e.clientY;\n var onMouseMove = function (e) {\n mousePageY = e.clientY;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startY = e.clientY;\n var startTop = this.thumbTop;\n var onScrollInterval = function () {\n if (mousePageY === undefined)\n return;\n var scrollTop = self.scrollTopFromThumbTop(startTop + mousePageY - startY);\n if (scrollTop === self.scrollTop)\n return;\n self._emit(\"scroll\", { data: scrollTop });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var top = e.clientY - this.element.getBoundingClientRect().top - this.thumbHeight / 2;\n this._emit(\"scroll\", { data: this.scrollTopFromThumbTop(top) });\n return event.preventDefault(e);\n };\n VScrollBar.prototype.getHeight = function () {\n return this.height;\n };\n VScrollBar.prototype.scrollTopFromThumbTop = function (thumbTop) {\n var scrollTop = thumbTop * (this.pageHeight - this.viewHeight) / (this.slideHeight - this.thumbHeight);\n scrollTop = scrollTop >> 0;\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n else if (scrollTop > this.pageHeight - this.viewHeight) {\n scrollTop = this.pageHeight - this.viewHeight;\n }\n return scrollTop;\n };\n VScrollBar.prototype.getWidth = function () {\n return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0);\n };\n VScrollBar.prototype.setHeight = function (height) {\n this.height = Math.max(0, height);\n this.slideHeight = this.height;\n this.viewHeight = this.height;\n this.setScrollHeight(this.pageHeight, true);\n };\n VScrollBar.prototype.setScrollHeight = function (height, force) {\n if (this.pageHeight === height && !force)\n return;\n this.pageHeight = height;\n this.thumbHeight = this.slideHeight * this.viewHeight / this.pageHeight;\n if (this.thumbHeight > this.slideHeight)\n this.thumbHeight = this.slideHeight;\n if (this.thumbHeight < 15)\n this.thumbHeight = 15;\n this.inner.style.height = this.thumbHeight + \"px\";\n if (this.scrollTop > (this.pageHeight - this.viewHeight)) {\n this.scrollTop = (this.pageHeight - this.viewHeight);\n if (this.scrollTop < 0)\n this.scrollTop = 0;\n this._emit(\"scroll\", { data: this.scrollTop });\n }\n };\n VScrollBar.prototype.setScrollTop = function (scrollTop) {\n this.scrollTop = scrollTop;\n if (scrollTop < 0)\n scrollTop = 0;\n this.thumbTop = scrollTop * (this.slideHeight - this.thumbHeight) / (this.pageHeight - this.viewHeight);\n this.inner.style.top = this.thumbTop + \"px\";\n };\n return VScrollBar;\n}(ScrollBar));\nVScrollBar.prototype.setInnerHeight = VScrollBar.prototype.setScrollHeight;\nvar HScrollBar = /** @class */ (function (_super) {\n __extends(HScrollBar, _super);\n function HScrollBar(parent, renderer) {\n var _this = _super.call(this, parent, '-h') || this;\n _this.scrollLeft = 0;\n _this.scrollWidth = 0;\n _this.height = _this.HScrollHeight;\n _this.inner.style.height = _this.element.style.height = (_this.height || 12) + \"px\";\n _this.renderer = renderer;\n return _this;\n }\n HScrollBar.prototype.onMouseDown = function (eType, e) {\n if (eType !== \"mousedown\")\n return;\n if (event.getButton(e) !== 0 || e.detail === 2) {\n return;\n }\n if (e.target === this.inner) {\n var self = this;\n var mousePageX = e.clientX;\n var onMouseMove = function (e) {\n mousePageX = e.clientX;\n };\n var onMouseUp = function () {\n clearInterval(timerId);\n };\n var startX = e.clientX;\n var startLeft = this.thumbLeft;\n var onScrollInterval = function () {\n if (mousePageX === undefined)\n return;\n var scrollLeft = self.scrollLeftFromThumbLeft(startLeft + mousePageX - startX);\n if (scrollLeft === self.scrollLeft)\n return;\n self._emit(\"scroll\", { data: scrollLeft });\n };\n event.capture(this.inner, onMouseMove, onMouseUp);\n var timerId = setInterval(onScrollInterval, 20);\n return event.preventDefault(e);\n }\n var left = e.clientX - this.element.getBoundingClientRect().left - this.thumbWidth / 2;\n this._emit(\"scroll\", { data: this.scrollLeftFromThumbLeft(left) });\n return event.preventDefault(e);\n };\n HScrollBar.prototype.getHeight = function () {\n return this.isVisible ? this.height : 0;\n };\n HScrollBar.prototype.scrollLeftFromThumbLeft = function (thumbLeft) {\n var scrollLeft = thumbLeft * (this.pageWidth - this.viewWidth) / (this.slideWidth - this.thumbWidth);\n scrollLeft = scrollLeft >> 0;\n if (scrollLeft < 0) {\n scrollLeft = 0;\n }\n else if (scrollLeft > this.pageWidth - this.viewWidth) {\n scrollLeft = this.pageWidth - this.viewWidth;\n }\n return scrollLeft;\n };\n HScrollBar.prototype.setWidth = function (width) {\n this.width = Math.max(0, width);\n this.element.style.width = this.width + \"px\";\n this.slideWidth = this.width;\n this.viewWidth = this.width;\n this.setScrollWidth(this.pageWidth, true);\n };\n HScrollBar.prototype.setScrollWidth = function (width, force) {\n if (this.pageWidth === width && !force)\n return;\n this.pageWidth = width;\n this.thumbWidth = this.slideWidth * this.viewWidth / this.pageWidth;\n if (this.thumbWidth > this.slideWidth)\n this.thumbWidth = this.slideWidth;\n if (this.thumbWidth < 15)\n this.thumbWidth = 15;\n this.inner.style.width = this.thumbWidth + \"px\";\n if (this.scrollLeft > (this.pageWidth - this.viewWidth)) {\n this.scrollLeft = (this.pageWidth - this.viewWidth);\n if (this.scrollLeft < 0)\n this.scrollLeft = 0;\n this._emit(\"scroll\", { data: this.scrollLeft });\n }\n };\n HScrollBar.prototype.setScrollLeft = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n if (scrollLeft < 0)\n scrollLeft = 0;\n this.thumbLeft = scrollLeft * (this.slideWidth - this.thumbWidth) / (this.pageWidth - this.viewWidth);\n this.inner.style.left = (this.thumbLeft) + \"px\";\n };\n return HScrollBar;\n}(ScrollBar));\nHScrollBar.prototype.setInnerWidth = HScrollBar.prototype.setScrollWidth;\nexports.ScrollBar = VScrollBar; // backward compatibility\nexports.ScrollBarV = VScrollBar; // backward compatibility\nexports.ScrollBarH = HScrollBar; // backward compatibility\nexports.VScrollBar = VScrollBar;\nexports.HScrollBar = HScrollBar;\n\n});\n\nace.define(\"ace/renderloop\",[\"require\",\"exports\",\"module\",\"ace/lib/event\"], function(require, exports, module){\"use strict\";\nvar event = require(\"./lib/event\");\nvar RenderLoop = /** @class */ (function () {\n function RenderLoop(onRender, win) {\n this.onRender = onRender;\n this.pending = false;\n this.changes = 0;\n this.$recursionLimit = 2;\n this.window = win || window;\n var _self = this;\n this._flush = function (ts) {\n _self.pending = false;\n var changes = _self.changes;\n if (changes) {\n event.blockIdle(100);\n _self.changes = 0;\n _self.onRender(changes);\n }\n if (_self.changes) {\n if (_self.$recursionLimit-- < 0)\n return;\n _self.schedule();\n }\n else {\n _self.$recursionLimit = 2;\n }\n };\n }\n RenderLoop.prototype.schedule = function (change) {\n this.changes = this.changes | change;\n if (this.changes && !this.pending) {\n event.nextFrame(this._flush);\n this.pending = true;\n }\n };\n RenderLoop.prototype.clear = function (change) {\n var changes = this.changes;\n this.changes = 0;\n return changes;\n };\n return RenderLoop;\n}());\nexports.RenderLoop = RenderLoop;\n\n});\n\nace.define(\"ace/layer/font_metrics\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/lib/event\",\"ace/lib/useragent\",\"ace/lib/event_emitter\"], function(require, exports, module){var oop = require(\"../lib/oop\");\nvar dom = require(\"../lib/dom\");\nvar lang = require(\"../lib/lang\");\nvar event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar CHAR_COUNT = 512;\nvar USE_OBSERVER = typeof ResizeObserver == \"function\";\nvar L = 200;\nvar FontMetrics = /** @class */ (function () {\n function FontMetrics(parentEl) {\n this.el = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.el.style, true);\n this.$main = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$main.style);\n this.$measureNode = dom.createElement(\"div\");\n this.$setMeasureNodeStyles(this.$measureNode.style);\n this.el.appendChild(this.$main);\n this.el.appendChild(this.$measureNode);\n parentEl.appendChild(this.el);\n this.$measureNode.textContent = lang.stringRepeat(\"X\", CHAR_COUNT);\n this.$characterSize = { width: 0, height: 0 };\n if (USE_OBSERVER)\n this.$addObserver();\n else\n this.checkForSizeChanges();\n }\n FontMetrics.prototype.$setMeasureNodeStyles = function (style, isRoot) {\n style.width = style.height = \"auto\";\n style.left = style.top = \"0px\";\n style.visibility = \"hidden\";\n style.position = \"absolute\";\n style.whiteSpace = \"pre\";\n if (useragent.isIE < 8) {\n style[\"font-family\"] = \"inherit\";\n }\n else {\n style.font = \"inherit\";\n }\n style.overflow = isRoot ? \"hidden\" : \"visible\";\n };\n FontMetrics.prototype.checkForSizeChanges = function (size) {\n if (size === undefined)\n size = this.$measureSizes();\n if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) {\n this.$measureNode.style.fontWeight = \"bold\";\n var boldSize = this.$measureSizes();\n this.$measureNode.style.fontWeight = \"\";\n this.$characterSize = size;\n this.charSizes = Object.create(null);\n this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height;\n this._emit(\"changeCharacterSize\", { data: size });\n }\n };\n FontMetrics.prototype.$addObserver = function () {\n var self = this;\n this.$observer = new window.ResizeObserver(function (e) {\n self.checkForSizeChanges();\n });\n this.$observer.observe(this.$measureNode);\n };\n FontMetrics.prototype.$pollSizeChanges = function () {\n if (this.$pollSizeChangesTimer || this.$observer)\n return this.$pollSizeChangesTimer;\n var self = this;\n return this.$pollSizeChangesTimer = event.onIdle(function cb() {\n self.checkForSizeChanges();\n event.onIdle(cb, 500);\n }, 500);\n };\n FontMetrics.prototype.setPolling = function (val) {\n if (val) {\n this.$pollSizeChanges();\n }\n else if (this.$pollSizeChangesTimer) {\n clearInterval(this.$pollSizeChangesTimer);\n this.$pollSizeChangesTimer = 0;\n }\n };\n FontMetrics.prototype.$measureSizes = function (node) {\n var size = {\n height: (node || this.$measureNode).clientHeight,\n width: (node || this.$measureNode).clientWidth / CHAR_COUNT\n };\n if (size.width === 0 || size.height === 0)\n return null;\n return size;\n };\n FontMetrics.prototype.$measureCharWidth = function (ch) {\n this.$main.textContent = lang.stringRepeat(ch, CHAR_COUNT);\n var rect = this.$main.getBoundingClientRect();\n return rect.width / CHAR_COUNT;\n };\n FontMetrics.prototype.getCharacterWidth = function (ch) {\n var w = this.charSizes[ch];\n if (w === undefined) {\n w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width;\n }\n return w;\n };\n FontMetrics.prototype.destroy = function () {\n clearInterval(this.$pollSizeChangesTimer);\n if (this.$observer)\n this.$observer.disconnect();\n if (this.el && this.el.parentNode)\n this.el.parentNode.removeChild(this.el);\n };\n FontMetrics.prototype.$getZoom = function (element) {\n if (!element || !element.parentElement)\n return 1;\n return (window.getComputedStyle(element).zoom || 1) * this.$getZoom(element.parentElement);\n };\n FontMetrics.prototype.$initTransformMeasureNodes = function () {\n var t = function (t, l) {\n return [\"div\", {\n style: \"position: absolute;top:\" + t + \"px;left:\" + l + \"px;\"\n }];\n };\n this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el);\n };\n FontMetrics.prototype.transformCoordinates = function (clientPos, elPos) {\n if (clientPos) {\n var zoom = this.$getZoom(this.el);\n clientPos = mul(1 / zoom, clientPos);\n }\n function solve(l1, l2, r) {\n var det = l1[1] * l2[0] - l1[0] * l2[1];\n return [\n (-l2[1] * r[0] + l2[0] * r[1]) / det,\n (+l1[1] * r[0] - l1[0] * r[1]) / det\n ];\n }\n function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; }\n function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; }\n function mul(a, b) { return [a * b[0], a * b[1]]; }\n if (!this.els)\n this.$initTransformMeasureNodes();\n function p(el) {\n var r = el.getBoundingClientRect();\n return [r.left, r.top];\n }\n var a = p(this.els[0]);\n var b = p(this.els[1]);\n var c = p(this.els[2]);\n var d = p(this.els[3]);\n var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a)));\n var m1 = mul(1 + h[0], sub(b, a));\n var m2 = mul(1 + h[1], sub(c, a));\n if (elPos) {\n var x = elPos;\n var k = h[0] * x[0] / L + h[1] * x[1] / L + 1;\n var ut = add(mul(x[0], m1), mul(x[1], m2));\n return add(mul(1 / k / L, ut), a);\n }\n var u = sub(clientPos, a);\n var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u);\n return mul(L, f);\n };\n return FontMetrics;\n}());\nFontMetrics.prototype.$characterSize = { width: 0, height: 0 };\noop.implement(FontMetrics.prototype, EventEmitter);\nexports.FontMetrics = FontMetrics;\n\n});\n\nace.define(\"ace/css/editor-css\",[\"require\",\"exports\",\"module\"], function(require, exports, module){/*\nstyles = []\nfor (var i = 1; i < 16; i++) {\n styles.push(\".ace_br\" + i + \"{\" + (\n [\"top-left\", \"top-right\", \"bottom-right\", \"bottom-left\"]\n ).map(function(x, j) {\n return i & (1< .ace_line, .ace_text-layer > .ace_line_group {\\n contain: style size layout;\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.ace_hidpi .ace_text-layer,\\n.ace_hidpi .ace_gutter-layer,\\n.ace_hidpi .ace_content,\\n.ace_hidpi .ace_gutter {\\n contain: strict;\\n}\\n.ace_hidpi .ace_text-layer > .ace_line, \\n.ace_hidpi .ace_text-layer > .ace_line_group {\\n contain: strict;\\n}\\n\\n.ace_cjk {\\n display: inline-block;\\n text-align: center;\\n}\\n\\n.ace_cursor-layer {\\n z-index: 4;\\n}\\n\\n.ace_cursor {\\n z-index: 4;\\n position: absolute;\\n box-sizing: border-box;\\n border-left: 2px solid;\\n /* workaround for smooth cursor repaintng whole screen in chrome */\\n transform: translatez(0);\\n}\\n\\n.ace_multiselect .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_slim-cursors .ace_cursor {\\n border-left-width: 1px;\\n}\\n\\n.ace_overwrite-cursors .ace_cursor {\\n border-left-width: 0;\\n border-bottom: 1px solid;\\n}\\n\\n.ace_hidden-cursors .ace_cursor {\\n opacity: 0.2;\\n}\\n\\n.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {\\n opacity: 0;\\n}\\n\\n.ace_smooth-blinking .ace_cursor {\\n transition: opacity 0.18s;\\n}\\n\\n.ace_animate-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: step-end;\\n animation-name: blink-ace-animate;\\n animation-iteration-count: infinite;\\n}\\n\\n.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\\n animation-duration: 1000ms;\\n animation-timing-function: ease-in-out;\\n animation-name: blink-ace-animate-smooth;\\n}\\n \\n@keyframes blink-ace-animate {\\n from, to { opacity: 1; }\\n 60% { opacity: 0; }\\n}\\n\\n@keyframes blink-ace-animate-smooth {\\n from, to { opacity: 1; }\\n 45% { opacity: 1; }\\n 60% { opacity: 0; }\\n 85% { opacity: 0; }\\n}\\n\\n.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\\n position: absolute;\\n z-index: 3;\\n}\\n\\n.ace_marker-layer .ace_selection {\\n position: absolute;\\n z-index: 5;\\n}\\n\\n.ace_marker-layer .ace_bracket {\\n position: absolute;\\n z-index: 6;\\n}\\n\\n.ace_marker-layer .ace_error_bracket {\\n position: absolute;\\n border-bottom: 1px solid #DE5555;\\n border-radius: 0;\\n}\\n\\n.ace_marker-layer .ace_active-line {\\n position: absolute;\\n z-index: 2;\\n}\\n\\n.ace_marker-layer .ace_selected-word {\\n position: absolute;\\n z-index: 4;\\n box-sizing: border-box;\\n}\\n\\n.ace_line .ace_fold {\\n box-sizing: border-box;\\n\\n display: inline-block;\\n height: 11px;\\n margin-top: -2px;\\n vertical-align: middle;\\n\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\\\");\\n background-repeat: no-repeat, repeat-x;\\n background-position: center center, top left;\\n color: transparent;\\n\\n border: 1px solid black;\\n border-radius: 2px;\\n\\n cursor: pointer;\\n pointer-events: auto;\\n}\\n\\n.ace_dark .ace_fold {\\n}\\n\\n.ace_fold:hover{\\n background-image:\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\\\"),\\n url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\\\");\\n}\\n\\n.ace_tooltip {\\n background-color: #f5f5f5;\\n border: 1px solid gray;\\n border-radius: 1px;\\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\\n color: black;\\n max-width: 100%;\\n padding: 3px 4px;\\n position: fixed;\\n z-index: 999999;\\n box-sizing: border-box;\\n cursor: default;\\n white-space: pre;\\n word-wrap: break-word;\\n line-height: normal;\\n font-style: normal;\\n font-weight: normal;\\n letter-spacing: normal;\\n pointer-events: none;\\n}\\n\\n.ace_tooltip.ace_dark {\\n background-color: #636363;\\n color: #fff;\\n}\\n\\n.ace_tooltip:focus {\\n outline: 1px solid #5E9ED6;\\n}\\n\\n.ace_icon {\\n display: inline-block;\\n width: 18px;\\n vertical-align: top;\\n}\\n\\n.ace_icon_svg {\\n display: inline-block;\\n width: 12px;\\n vertical-align: top;\\n -webkit-mask-repeat: no-repeat;\\n -webkit-mask-size: 12px;\\n -webkit-mask-position: center;\\n}\\n\\n.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {\\n padding-right: 13px;\\n}\\n\\n.ace_fold-widget {\\n box-sizing: border-box;\\n\\n margin: 0 -12px 0 1px;\\n display: none;\\n width: 11px;\\n vertical-align: top;\\n\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n\\n border-radius: 3px;\\n \\n border: 1px solid transparent;\\n cursor: pointer;\\n}\\n\\n.ace_folding-enabled .ace_fold-widget {\\n display: inline-block; \\n}\\n\\n.ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\\\");\\n}\\n\\n.ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\\\");\\n}\\n\\n.ace_fold-widget:hover {\\n border: 1px solid rgba(0, 0, 0, 0.3);\\n background-color: rgba(255, 255, 255, 0.2);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\\n}\\n\\n.ace_fold-widget:active {\\n border: 1px solid rgba(0, 0, 0, 0.4);\\n background-color: rgba(0, 0, 0, 0.05);\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\\n}\\n/**\\n * Dark version for fold widgets\\n */\\n.ace_dark .ace_fold-widget {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_end {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget.ace_closed {\\n background-image: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\\\");\\n}\\n.ace_dark .ace_fold-widget:hover {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n background-color: rgba(255, 255, 255, 0.1);\\n}\\n.ace_dark .ace_fold-widget:active {\\n box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\\n}\\n\\n.ace_inline_button {\\n border: 1px solid lightgray;\\n display: inline-block;\\n margin: -1px 8px;\\n padding: 0 5px;\\n pointer-events: auto;\\n cursor: pointer;\\n}\\n.ace_inline_button:hover {\\n border-color: gray;\\n background: rgba(200,200,200,0.2);\\n display: inline-block;\\n pointer-events: auto;\\n}\\n\\n.ace_fold-widget.ace_invalid {\\n background-color: #FFB4B4;\\n border-color: #DE5555;\\n}\\n\\n.ace_fade-fold-widgets .ace_fold-widget {\\n transition: opacity 0.4s ease 0.05s;\\n opacity: 0;\\n}\\n\\n.ace_fade-fold-widgets:hover .ace_fold-widget {\\n transition: opacity 0.05s ease 0.05s;\\n opacity:1;\\n}\\n\\n.ace_underline {\\n text-decoration: underline;\\n}\\n\\n.ace_bold {\\n font-weight: bold;\\n}\\n\\n.ace_nobold .ace_bold {\\n font-weight: normal;\\n}\\n\\n.ace_italic {\\n font-style: italic;\\n}\\n\\n\\n.ace_error-marker {\\n background-color: rgba(255, 0, 0,0.2);\\n position: absolute;\\n z-index: 9;\\n}\\n\\n.ace_highlight-marker {\\n background-color: rgba(255, 255, 0,0.2);\\n position: absolute;\\n z-index: 8;\\n}\\n\\n.ace_mobile-menu {\\n position: absolute;\\n line-height: 1.5;\\n border-radius: 4px;\\n -ms-user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n background: white;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #dcdcdc;\\n color: black;\\n}\\n.ace_dark > .ace_mobile-menu {\\n background: #333;\\n color: #ccc;\\n box-shadow: 1px 3px 2px grey;\\n border: 1px solid #444;\\n\\n}\\n.ace_mobile-button {\\n padding: 2px;\\n cursor: pointer;\\n overflow: hidden;\\n}\\n.ace_mobile-button:hover {\\n background-color: #eee;\\n opacity:1;\\n}\\n.ace_mobile-button:active {\\n background-color: #ddd;\\n}\\n\\n.ace_placeholder {\\n font-family: arial;\\n transform: scale(0.9);\\n transform-origin: left;\\n white-space: pre;\\n opacity: 0.7;\\n margin: 0 10px;\\n}\\n\\n.ace_ghost_text {\\n opacity: 0.5;\\n font-style: italic;\\n white-space: pre;\\n}\";\n\n});\n\nace.define(\"ace/layer/decorators\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\"], function(require, exports, module){\"use strict\";\nvar dom = require(\"../lib/dom\");\nvar oop = require(\"../lib/oop\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar Decorator = /** @class */ (function () {\n function Decorator(parent, renderer) {\n this.canvas = dom.createElement(\"canvas\");\n this.renderer = renderer;\n this.pixelRatio = 1;\n this.maxHeight = renderer.layerConfig.maxHeight;\n this.lineHeight = renderer.layerConfig.lineHeight;\n this.canvasHeight = parent.parent.scrollHeight;\n this.heightRatio = this.canvasHeight / this.maxHeight;\n this.canvasWidth = parent.width;\n this.minDecorationHeight = (2 * this.pixelRatio) | 0;\n this.halfMinDecorationHeight = (this.minDecorationHeight / 2) | 0;\n this.canvas.width = this.canvasWidth;\n this.canvas.height = this.canvasHeight;\n this.canvas.style.top = 0 + \"px\";\n this.canvas.style.right = 0 + \"px\";\n this.canvas.style.zIndex = 7 + \"px\";\n this.canvas.style.position = \"absolute\";\n this.colors = {};\n this.colors.dark = {\n \"error\": \"rgba(255, 18, 18, 1)\",\n \"warning\": \"rgba(18, 136, 18, 1)\",\n \"info\": \"rgba(18, 18, 136, 1)\"\n };\n this.colors.light = {\n \"error\": \"rgb(255,51,51)\",\n \"warning\": \"rgb(32,133,72)\",\n \"info\": \"rgb(35,68,138)\"\n };\n parent.element.appendChild(this.canvas);\n }\n Decorator.prototype.$updateDecorators = function (config) {\n var colors = (this.renderer.theme.isDark === true) ? this.colors.dark : this.colors.light;\n if (config) {\n this.maxHeight = config.maxHeight;\n this.lineHeight = config.lineHeight;\n this.canvasHeight = config.height;\n var allLineHeight = (config.lastRow + 1) * this.lineHeight;\n if (allLineHeight < this.canvasHeight) {\n this.heightRatio = 1;\n }\n else {\n this.heightRatio = this.canvasHeight / this.maxHeight;\n }\n }\n var ctx = this.canvas.getContext(\"2d\");\n function compare(a, b) {\n if (a.priority < b.priority)\n return -1;\n if (a.priority > b.priority)\n return 1;\n return 0;\n }\n var annotations = this.renderer.session.$annotations;\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n if (annotations) {\n var priorities = {\n \"info\": 1,\n \"warning\": 2,\n \"error\": 3\n };\n annotations.forEach(function (item) {\n item.priority = priorities[item.type] || null;\n });\n annotations = annotations.sort(compare);\n var foldData = this.renderer.session.$foldData;\n for (var i = 0; i < annotations.length; i++) {\n var row = annotations[i].row;\n var compensateFold = this.compensateFoldRows(row, foldData);\n var currentY = Math.round((row - compensateFold) * this.lineHeight * this.heightRatio);\n var y1 = Math.round(((row - compensateFold) * this.lineHeight * this.heightRatio));\n var y2 = Math.round((((row - compensateFold) * this.lineHeight + this.lineHeight) * this.heightRatio));\n var height = y2 - y1;\n if (height < this.minDecorationHeight) {\n var yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < this.halfMinDecorationHeight) {\n yCenter = this.halfMinDecorationHeight;\n }\n else if (yCenter + this.halfMinDecorationHeight > this.canvasHeight) {\n yCenter = this.canvasHeight - this.halfMinDecorationHeight;\n }\n y1 = Math.round(yCenter - this.halfMinDecorationHeight);\n y2 = Math.round(yCenter + this.halfMinDecorationHeight);\n }\n ctx.fillStyle = colors[annotations[i].type] || null;\n ctx.fillRect(0, currentY, this.canvasWidth, y2 - y1);\n }\n }\n var cursor = this.renderer.session.selection.getCursor();\n if (cursor) {\n var compensateFold = this.compensateFoldRows(cursor.row, foldData);\n var currentY = Math.round((cursor.row - compensateFold) * this.lineHeight * this.heightRatio);\n ctx.fillStyle = \"rgba(0, 0, 0, 0.5)\";\n ctx.fillRect(0, currentY, this.canvasWidth, 2);\n }\n };\n Decorator.prototype.compensateFoldRows = function (row, foldData) {\n var compensateFold = 0;\n if (foldData && foldData.length > 0) {\n for (var j = 0; j < foldData.length; j++) {\n if (row > foldData[j].start.row && row < foldData[j].end.row) {\n compensateFold += row - foldData[j].start.row;\n }\n else if (row >= foldData[j].end.row) {\n compensateFold += foldData[j].end.row - foldData[j].start.row;\n }\n }\n }\n return compensateFold;\n };\n return Decorator;\n}());\noop.implement(Decorator.prototype, EventEmitter);\nexports.Decorator = Decorator;\n\n});\n\nace.define(\"ace/virtual_renderer\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/dom\",\"ace/lib/lang\",\"ace/config\",\"ace/layer/gutter\",\"ace/layer/marker\",\"ace/layer/text\",\"ace/layer/cursor\",\"ace/scrollbar\",\"ace/scrollbar\",\"ace/scrollbar_custom\",\"ace/scrollbar_custom\",\"ace/renderloop\",\"ace/layer/font_metrics\",\"ace/lib/event_emitter\",\"ace/css/editor-css\",\"ace/layer/decorators\",\"ace/lib/useragent\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar config = require(\"./config\");\nvar GutterLayer = require(\"./layer/gutter\").Gutter;\nvar MarkerLayer = require(\"./layer/marker\").Marker;\nvar TextLayer = require(\"./layer/text\").Text;\nvar CursorLayer = require(\"./layer/cursor\").Cursor;\nvar HScrollBar = require(\"./scrollbar\").HScrollBar;\nvar VScrollBar = require(\"./scrollbar\").VScrollBar;\nvar HScrollBarCustom = require(\"./scrollbar_custom\").HScrollBar;\nvar VScrollBarCustom = require(\"./scrollbar_custom\").VScrollBar;\nvar RenderLoop = require(\"./renderloop\").RenderLoop;\nvar FontMetrics = require(\"./layer/font_metrics\").FontMetrics;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar editorCss = require(\"./css/editor-css\");\nvar Decorator = require(\"./layer/decorators\").Decorator;\nvar useragent = require(\"./lib/useragent\");\ndom.importCssString(editorCss, \"ace_editor.css\", false);\nvar VirtualRenderer = /** @class */ (function () {\n function VirtualRenderer(container, theme) {\n var _self = this;\n this.container = container || dom.createElement(\"div\");\n dom.addCssClass(this.container, \"ace_editor\");\n if (dom.HI_DPI)\n dom.addCssClass(this.container, \"ace_hidpi\");\n this.setTheme(theme);\n if (config.get(\"useStrictCSP\") == null)\n config.set(\"useStrictCSP\", false);\n this.$gutter = dom.createElement(\"div\");\n this.$gutter.className = \"ace_gutter\";\n this.container.appendChild(this.$gutter);\n this.$gutter.setAttribute(\"aria-hidden\", true);\n this.scroller = dom.createElement(\"div\");\n this.scroller.className = \"ace_scroller\";\n this.container.appendChild(this.scroller);\n this.content = dom.createElement(\"div\");\n this.content.className = \"ace_content\";\n this.scroller.appendChild(this.content);\n this.$gutterLayer = new GutterLayer(this.$gutter);\n this.$gutterLayer.on(\"changeGutterWidth\", this.onGutterResize.bind(this));\n this.$markerBack = new MarkerLayer(this.content);\n var textLayer = this.$textLayer = new TextLayer(this.content);\n this.canvas = textLayer.element;\n this.$markerFront = new MarkerLayer(this.content);\n this.$cursorLayer = new CursorLayer(this.content);\n this.$horizScroll = false;\n this.$vScroll = false;\n this.scrollBar =\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.on(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.scrollTop = 0;\n this.scrollLeft = 0;\n this.cursorPos = {\n row: 0,\n column: 0\n };\n this.$fontMetrics = new FontMetrics(this.container);\n this.$textLayer.$setFontMetrics(this.$fontMetrics);\n this.$textLayer.on(\"changeCharacterSize\", function (e) {\n _self.updateCharacterSize();\n _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height);\n _self._signal(\"changeCharacterSize\", e);\n });\n this.$size = {\n width: 0,\n height: 0,\n scrollerHeight: 0,\n scrollerWidth: 0,\n $dirty: true\n };\n this.layerConfig = {\n width: 1,\n padding: 0,\n firstRow: 0,\n firstRowScreen: 0,\n lastRow: 0,\n lineHeight: 0,\n characterWidth: 0,\n minHeight: 1,\n maxHeight: 1,\n offset: 0,\n height: 1,\n gutterOffset: 1\n };\n this.scrollMargin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.margin = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n v: 0,\n h: 0\n };\n this.$keepTextAreaAtCursor = !useragent.isIOS;\n this.$loop = new RenderLoop(this.$renderChanges.bind(this), this.container.ownerDocument.defaultView);\n this.$loop.schedule(this.CHANGE_FULL);\n this.updateCharacterSize();\n this.setPadding(4);\n this.$addResizeObserver();\n config.resetOptions(this);\n config._signal(\"renderer\", this);\n }\n VirtualRenderer.prototype.updateCharacterSize = function () {\n if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) {\n this.$allowBoldFonts = this.$textLayer.allowBoldFonts;\n this.setStyle(\"ace_nobold\", !this.$allowBoldFonts);\n }\n this.layerConfig.characterWidth =\n this.characterWidth = this.$textLayer.getCharacterWidth();\n this.layerConfig.lineHeight =\n this.lineHeight = this.$textLayer.getLineHeight();\n this.$updatePrintMargin();\n dom.setStyle(this.scroller.style, \"line-height\", this.lineHeight + \"px\");\n };\n VirtualRenderer.prototype.setSession = function (session) {\n if (this.session)\n this.session.doc.off(\"changeNewLineMode\", this.onChangeNewLineMode);\n this.session = session;\n if (session && this.scrollMargin.top && session.getScrollTop() <= 0)\n session.setScrollTop(-this.scrollMargin.top);\n this.$cursorLayer.setSession(session);\n this.$markerBack.setSession(session);\n this.$markerFront.setSession(session);\n this.$gutterLayer.setSession(session);\n this.$textLayer.setSession(session);\n if (!session)\n return;\n this.$loop.schedule(this.CHANGE_FULL);\n this.session.$setFontMetrics(this.$fontMetrics);\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this);\n this.onChangeNewLineMode();\n this.session.doc.on(\"changeNewLineMode\", this.onChangeNewLineMode);\n };\n VirtualRenderer.prototype.updateLines = function (firstRow, lastRow, force) {\n if (lastRow === undefined)\n lastRow = Infinity;\n if (!this.$changedLines) {\n this.$changedLines = {\n firstRow: firstRow,\n lastRow: lastRow\n };\n }\n else {\n if (this.$changedLines.firstRow > firstRow)\n this.$changedLines.firstRow = firstRow;\n if (this.$changedLines.lastRow < lastRow)\n this.$changedLines.lastRow = lastRow;\n }\n if (this.$changedLines.lastRow < this.layerConfig.firstRow) {\n if (force)\n this.$changedLines.lastRow = this.layerConfig.lastRow;\n else\n return;\n }\n if (this.$changedLines.firstRow > this.layerConfig.lastRow)\n return;\n this.$loop.schedule(this.CHANGE_LINES);\n };\n VirtualRenderer.prototype.onChangeNewLineMode = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n this.$textLayer.$updateEolChar();\n this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR);\n };\n VirtualRenderer.prototype.onChangeTabSize = function () {\n this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER);\n this.$textLayer.onChangeTabSize();\n };\n VirtualRenderer.prototype.updateText = function () {\n this.$loop.schedule(this.CHANGE_TEXT);\n };\n VirtualRenderer.prototype.updateFull = function (force) {\n if (force)\n this.$renderChanges(this.CHANGE_FULL, true);\n else\n this.$loop.schedule(this.CHANGE_FULL);\n };\n VirtualRenderer.prototype.updateFontSize = function () {\n this.$textLayer.checkForSizeChanges();\n };\n VirtualRenderer.prototype.$updateSizeAsync = function () {\n if (this.$loop.pending)\n this.$size.$dirty = true;\n else\n this.onResize();\n };\n VirtualRenderer.prototype.onResize = function (force, gutterWidth, width, height) {\n if (this.resizing > 2)\n return;\n else if (this.resizing > 0)\n this.resizing++;\n else\n this.resizing = force ? 1 : 0;\n var el = this.container;\n if (!height)\n height = el.clientHeight || el.scrollHeight;\n if (!width)\n width = el.clientWidth || el.scrollWidth;\n var changes = this.$updateCachedSize(force, gutterWidth, width, height);\n if (this.$resizeTimer)\n this.$resizeTimer.cancel();\n if (!this.$size.scrollerHeight || (!width && !height))\n return this.resizing = 0;\n if (force)\n this.$gutterLayer.$padding = null;\n if (force)\n this.$renderChanges(changes | this.$changes, true);\n else\n this.$loop.schedule(changes | this.$changes);\n if (this.resizing)\n this.resizing = 0;\n this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null;\n if (this.$customScrollbar) {\n this.$updateCustomScrollbar(true);\n }\n };\n VirtualRenderer.prototype.$updateCachedSize = function (force, gutterWidth, width, height) {\n height -= (this.$extraHeight || 0);\n var changes = 0;\n var size = this.$size;\n var oldSize = {\n width: size.width,\n height: size.height,\n scrollerHeight: size.scrollerHeight,\n scrollerWidth: size.scrollerWidth\n };\n if (height && (force || size.height != height)) {\n size.height = height;\n changes |= this.CHANGE_SIZE;\n size.scrollerHeight = size.height;\n if (this.$horizScroll)\n size.scrollerHeight -= this.scrollBarH.getHeight();\n this.scrollBarV.setHeight(size.scrollerHeight);\n this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + \"px\";\n changes = changes | this.CHANGE_SCROLL;\n }\n if (width && (force || size.width != width)) {\n changes |= this.CHANGE_SIZE;\n size.width = width;\n if (gutterWidth == null)\n gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0;\n this.gutterWidth = gutterWidth;\n dom.setStyle(this.scrollBarH.element.style, \"left\", gutterWidth + \"px\");\n dom.setStyle(this.scroller.style, \"left\", gutterWidth + this.margin.left + \"px\");\n size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h);\n dom.setStyle(this.$gutter.style, \"left\", this.margin.left + \"px\");\n var right = this.scrollBarV.getWidth() + \"px\";\n dom.setStyle(this.scrollBarH.element.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"right\", right);\n dom.setStyle(this.scroller.style, \"bottom\", this.scrollBarH.getHeight());\n this.scrollBarH.setWidth(size.scrollerWidth);\n if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) {\n changes |= this.CHANGE_FULL;\n }\n }\n size.$dirty = !width || !height;\n if (changes)\n this._signal(\"resize\", oldSize);\n return changes;\n };\n VirtualRenderer.prototype.onGutterResize = function (width) {\n var gutterWidth = this.$showGutter ? width : 0;\n if (gutterWidth != this.gutterWidth)\n this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height);\n if (this.session.getUseWrapMode() && this.adjustWrapLimit()) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else if (this.$size.$dirty) {\n this.$loop.schedule(this.CHANGE_FULL);\n }\n else {\n this.$computeLayerConfig();\n }\n };\n VirtualRenderer.prototype.adjustWrapLimit = function () {\n var availableWidth = this.$size.scrollerWidth - this.$padding * 2;\n var limit = Math.floor(availableWidth / this.characterWidth);\n return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn);\n };\n VirtualRenderer.prototype.setAnimatedScroll = function (shouldAnimate) {\n this.setOption(\"animatedScroll\", shouldAnimate);\n };\n VirtualRenderer.prototype.getAnimatedScroll = function () {\n return this.$animatedScroll;\n };\n VirtualRenderer.prototype.setShowInvisibles = function (showInvisibles) {\n this.setOption(\"showInvisibles\", showInvisibles);\n this.session.$bidiHandler.setShowInvisibles(showInvisibles);\n };\n VirtualRenderer.prototype.getShowInvisibles = function () {\n return this.getOption(\"showInvisibles\");\n };\n VirtualRenderer.prototype.getDisplayIndentGuides = function () {\n return this.getOption(\"displayIndentGuides\");\n };\n VirtualRenderer.prototype.setDisplayIndentGuides = function (display) {\n this.setOption(\"displayIndentGuides\", display);\n };\n VirtualRenderer.prototype.getHighlightIndentGuides = function () {\n return this.getOption(\"highlightIndentGuides\");\n };\n VirtualRenderer.prototype.setHighlightIndentGuides = function (highlight) {\n this.setOption(\"highlightIndentGuides\", highlight);\n };\n VirtualRenderer.prototype.setShowPrintMargin = function (showPrintMargin) {\n this.setOption(\"showPrintMargin\", showPrintMargin);\n };\n VirtualRenderer.prototype.getShowPrintMargin = function () {\n return this.getOption(\"showPrintMargin\");\n };\n VirtualRenderer.prototype.setPrintMarginColumn = function (showPrintMargin) {\n this.setOption(\"printMarginColumn\", showPrintMargin);\n };\n VirtualRenderer.prototype.getPrintMarginColumn = function () {\n return this.getOption(\"printMarginColumn\");\n };\n VirtualRenderer.prototype.getShowGutter = function () {\n return this.getOption(\"showGutter\");\n };\n VirtualRenderer.prototype.setShowGutter = function (show) {\n return this.setOption(\"showGutter\", show);\n };\n VirtualRenderer.prototype.getFadeFoldWidgets = function () {\n return this.getOption(\"fadeFoldWidgets\");\n };\n VirtualRenderer.prototype.setFadeFoldWidgets = function (show) {\n this.setOption(\"fadeFoldWidgets\", show);\n };\n VirtualRenderer.prototype.setHighlightGutterLine = function (shouldHighlight) {\n this.setOption(\"highlightGutterLine\", shouldHighlight);\n };\n VirtualRenderer.prototype.getHighlightGutterLine = function () {\n return this.getOption(\"highlightGutterLine\");\n };\n VirtualRenderer.prototype.$updatePrintMargin = function () {\n if (!this.$showPrintMargin && !this.$printMarginEl)\n return;\n if (!this.$printMarginEl) {\n var containerEl = dom.createElement(\"div\");\n containerEl.className = \"ace_layer ace_print-margin-layer\";\n this.$printMarginEl = dom.createElement(\"div\");\n this.$printMarginEl.className = \"ace_print-margin\";\n containerEl.appendChild(this.$printMarginEl);\n this.content.insertBefore(containerEl, this.content.firstChild);\n }\n var style = this.$printMarginEl.style;\n style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + \"px\";\n style.visibility = this.$showPrintMargin ? \"visible\" : \"hidden\";\n if (this.session && this.session.$wrap == -1)\n this.adjustWrapLimit();\n };\n VirtualRenderer.prototype.getContainerElement = function () {\n return this.container;\n };\n VirtualRenderer.prototype.getMouseEventTarget = function () {\n return this.scroller;\n };\n VirtualRenderer.prototype.getTextAreaContainer = function () {\n return this.container;\n };\n VirtualRenderer.prototype.$moveTextAreaToCursor = function () {\n if (this.$isMousePressed)\n return;\n var style = this.textarea.style;\n var composition = this.$composition;\n if (!this.$keepTextAreaAtCursor && !composition) {\n dom.translate(this.textarea, -100, 0);\n return;\n }\n var pixelPos = this.$cursorLayer.$pixelPos;\n if (!pixelPos)\n return;\n if (composition && composition.markerRange)\n pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true);\n var config = this.layerConfig;\n var posTop = pixelPos.top;\n var posLeft = pixelPos.left;\n posTop -= config.offset;\n var h = composition && composition.useTextareaForIME || useragent.isMobile ? this.lineHeight : 1;\n if (posTop < 0 || posTop > config.height - h) {\n dom.translate(this.textarea, 0, 0);\n return;\n }\n var w = 1;\n var maxTop = this.$size.height - h;\n if (!composition) {\n posTop += this.lineHeight;\n }\n else {\n if (composition.useTextareaForIME) {\n var val = this.textarea.value;\n w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]);\n }\n else {\n posTop += this.lineHeight + 2;\n }\n }\n posLeft -= this.scrollLeft;\n if (posLeft > this.$size.scrollerWidth - w)\n posLeft = this.$size.scrollerWidth - w;\n posLeft += this.gutterWidth + this.margin.left;\n dom.setStyle(style, \"height\", h + \"px\");\n dom.setStyle(style, \"width\", w + \"px\");\n dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, maxTop));\n };\n VirtualRenderer.prototype.getFirstVisibleRow = function () {\n return this.layerConfig.firstRow;\n };\n VirtualRenderer.prototype.getFirstFullyVisibleRow = function () {\n return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1);\n };\n VirtualRenderer.prototype.getLastFullyVisibleRow = function () {\n var config = this.layerConfig;\n var lastRow = config.lastRow;\n var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight;\n if (top - this.session.getScrollTop() > config.height - config.lineHeight)\n return lastRow - 1;\n return lastRow;\n };\n VirtualRenderer.prototype.getLastVisibleRow = function () {\n return this.layerConfig.lastRow;\n };\n VirtualRenderer.prototype.setPadding = function (padding) {\n this.$padding = padding;\n this.$textLayer.setPadding(padding);\n this.$cursorLayer.setPadding(padding);\n this.$markerFront.setPadding(padding);\n this.$markerBack.setPadding(padding);\n this.$loop.schedule(this.CHANGE_FULL);\n this.$updatePrintMargin();\n };\n VirtualRenderer.prototype.setScrollMargin = function (top, bottom, left, right) {\n var sm = this.scrollMargin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n if (sm.top && this.scrollTop <= 0 && this.session)\n this.session.setScrollTop(-sm.top);\n this.updateFull();\n };\n VirtualRenderer.prototype.setMargin = function (top, bottom, left, right) {\n var sm = this.margin;\n sm.top = top | 0;\n sm.bottom = bottom | 0;\n sm.right = right | 0;\n sm.left = left | 0;\n sm.v = sm.top + sm.bottom;\n sm.h = sm.left + sm.right;\n this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height);\n this.updateFull();\n };\n VirtualRenderer.prototype.getHScrollBarAlwaysVisible = function () {\n return this.$hScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setHScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"hScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.getVScrollBarAlwaysVisible = function () {\n return this.$vScrollBarAlwaysVisible;\n };\n VirtualRenderer.prototype.setVScrollBarAlwaysVisible = function (alwaysVisible) {\n this.setOption(\"vScrollBarAlwaysVisible\", alwaysVisible);\n };\n VirtualRenderer.prototype.$updateScrollBarV = function () {\n var scrollHeight = this.layerConfig.maxHeight;\n var scrollerHeight = this.$size.scrollerHeight;\n if (!this.$maxLines && this.$scrollPastEnd) {\n scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd;\n if (this.scrollTop > scrollHeight - scrollerHeight) {\n scrollHeight = this.scrollTop + scrollerHeight;\n this.scrollBarV.scrollTop = null;\n }\n }\n this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v);\n this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top);\n };\n VirtualRenderer.prototype.$updateScrollBarH = function () {\n this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h);\n this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left);\n };\n VirtualRenderer.prototype.freeze = function () {\n this.$frozen = true;\n };\n VirtualRenderer.prototype.unfreeze = function () {\n this.$frozen = false;\n };\n VirtualRenderer.prototype.$renderChanges = function (changes, force) {\n if (this.$changes) {\n changes |= this.$changes;\n this.$changes = 0;\n }\n if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) {\n this.$changes |= changes;\n return;\n }\n if (this.$size.$dirty) {\n this.$changes |= changes;\n return this.onResize(true);\n }\n if (!this.lineHeight) {\n this.$textLayer.checkForSizeChanges();\n }\n this._signal(\"beforeRender\", changes);\n if (this.session && this.session.$bidiHandler)\n this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);\n var config = this.layerConfig;\n if (changes & this.CHANGE_FULL ||\n changes & this.CHANGE_SIZE ||\n changes & this.CHANGE_TEXT ||\n changes & this.CHANGE_LINES ||\n changes & this.CHANGE_SCROLL ||\n changes & this.CHANGE_H_SCROLL) {\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) {\n var st = this.scrollTop + (config.firstRow - Math.max(this.layerConfig.firstRow, 0)) * this.lineHeight;\n if (st > 0) {\n this.scrollTop = st;\n changes = changes | this.CHANGE_SCROLL;\n changes |= this.$computeLayerConfig() | this.$loop.clear();\n }\n }\n config = this.layerConfig;\n this.$updateScrollBarV();\n if (changes & this.CHANGE_H_SCROLL)\n this.$updateScrollBarH();\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n var width = config.width + 2 * this.$padding + \"px\";\n var height = config.minHeight + \"px\";\n dom.setStyle(this.content.style, \"width\", width);\n dom.setStyle(this.content.style, \"height\", height);\n }\n if (changes & this.CHANGE_H_SCROLL) {\n dom.translate(this.content, -this.scrollLeft, -config.offset);\n this.scroller.className = this.scrollLeft <= 0 ? \"ace_scroller \" : \"ace_scroller ace_scroll-left \";\n if (this.enableKeyboardAccessibility)\n this.scroller.className += this.keyboardFocusClassName;\n }\n if (changes & this.CHANGE_FULL) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_SCROLL) {\n this.$changedLines = null;\n if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES)\n this.$textLayer.update(config);\n else\n this.$textLayer.scrollLines(config);\n if (this.$showGutter) {\n if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES)\n this.$gutterLayer.update(config);\n else\n this.$gutterLayer.scrollLines(config);\n }\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n this.$markerBack.update(config);\n this.$markerFront.update(config);\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n this._signal(\"afterRender\", changes);\n return;\n }\n if (changes & this.CHANGE_TEXT) {\n this.$changedLines = null;\n this.$textLayer.update(config);\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_LINES) {\n if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) {\n if (this.$showGutter)\n this.$gutterLayer.update(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n else if (changes & this.CHANGE_CURSOR) {\n if (this.$highlightGutterLine)\n this.$gutterLayer.updateLineHighlight(config);\n if (this.$customScrollbar) {\n this.$scrollDecorator.$updateDecorators(config);\n }\n }\n if (changes & this.CHANGE_CURSOR) {\n this.$cursorLayer.update(config);\n this.$moveTextAreaToCursor();\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) {\n this.$markerFront.update(config);\n }\n if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) {\n this.$markerBack.update(config);\n }\n this._signal(\"afterRender\", changes);\n };\n VirtualRenderer.prototype.$autosize = function () {\n var height = this.session.getScreenLength() * this.lineHeight;\n var maxHeight = this.$maxLines * this.lineHeight;\n var desiredHeight = Math.min(maxHeight, Math.max((this.$minLines || 1) * this.lineHeight, height)) + this.scrollMargin.v + (this.$extraHeight || 0);\n if (this.$horizScroll)\n desiredHeight += this.scrollBarH.getHeight();\n if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight)\n desiredHeight = this.$maxPixelHeight;\n var hideScrollbars = desiredHeight <= 2 * this.lineHeight;\n var vScroll = !hideScrollbars && height > maxHeight;\n if (desiredHeight != this.desiredHeight ||\n this.$size.height != this.desiredHeight || vScroll != this.$vScroll) {\n if (vScroll != this.$vScroll) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var w = this.container.clientWidth;\n this.container.style.height = desiredHeight + \"px\";\n this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight);\n this.desiredHeight = desiredHeight;\n this._signal(\"autosize\");\n }\n };\n VirtualRenderer.prototype.$computeLayerConfig = function () {\n var session = this.session;\n var size = this.$size;\n var hideScrollbars = size.height <= 2 * this.lineHeight;\n var screenLines = this.session.getScreenLength();\n var maxHeight = screenLines * this.lineHeight;\n var longestLine = this.$getLongestLine();\n var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible ||\n size.scrollerWidth - longestLine - 2 * this.$padding < 0);\n var hScrollChanged = this.$horizScroll !== horizScroll;\n if (hScrollChanged) {\n this.$horizScroll = horizScroll;\n this.scrollBarH.setVisible(horizScroll);\n }\n var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine\n if (this.$maxLines && this.lineHeight > 1)\n this.$autosize();\n var minHeight = size.scrollerHeight + this.lineHeight;\n var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd\n ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd\n : 0;\n maxHeight += scrollPastEnd;\n var sm = this.scrollMargin;\n this.session.setScrollTop(Math.max(-sm.top, Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom)));\n this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, longestLine + 2 * this.$padding - size.scrollerWidth + sm.right)));\n var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible ||\n size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top);\n var vScrollChanged = vScrollBefore !== vScroll;\n if (vScrollChanged) {\n this.$vScroll = vScroll;\n this.scrollBarV.setVisible(vScroll);\n }\n var offset = this.scrollTop % this.lineHeight;\n var lineCount = Math.ceil(minHeight / this.lineHeight) - 1;\n var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight));\n var lastRow = firstRow + lineCount;\n var firstRowScreen, firstRowHeight;\n var lineHeight = this.lineHeight;\n firstRow = session.screenToDocumentRow(firstRow, 0);\n var foldLine = session.getFoldLine(firstRow);\n if (foldLine) {\n firstRow = foldLine.start.row;\n }\n firstRowScreen = session.documentToScreenRow(firstRow, 0);\n firstRowHeight = session.getRowLength(firstRow) * lineHeight;\n lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1);\n minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight +\n firstRowHeight;\n offset = this.scrollTop - firstRowScreen * lineHeight;\n var changes = 0;\n if (this.layerConfig.width != longestLine || hScrollChanged)\n changes = this.CHANGE_H_SCROLL;\n if (hScrollChanged || vScrollChanged) {\n changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height);\n this._signal(\"scrollbarVisibilityChanged\");\n if (vScrollChanged)\n longestLine = this.$getLongestLine();\n }\n this.layerConfig = {\n width: longestLine,\n padding: this.$padding,\n firstRow: firstRow,\n firstRowScreen: firstRowScreen,\n lastRow: lastRow,\n lineHeight: lineHeight,\n characterWidth: this.characterWidth,\n minHeight: minHeight,\n maxHeight: maxHeight,\n offset: offset,\n gutterOffset: lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0,\n height: this.$size.scrollerHeight\n };\n if (this.session.$bidiHandler)\n this.session.$bidiHandler.setContentWidth(longestLine - this.$padding);\n return changes;\n };\n VirtualRenderer.prototype.$updateLines = function () {\n if (!this.$changedLines)\n return;\n var firstRow = this.$changedLines.firstRow;\n var lastRow = this.$changedLines.lastRow;\n this.$changedLines = null;\n var layerConfig = this.layerConfig;\n if (firstRow > layerConfig.lastRow + 1) {\n return;\n }\n if (lastRow < layerConfig.firstRow) {\n return;\n }\n if (lastRow === Infinity) {\n if (this.$showGutter)\n this.$gutterLayer.update(layerConfig);\n this.$textLayer.update(layerConfig);\n return;\n }\n this.$textLayer.updateLines(layerConfig, firstRow, lastRow);\n return true;\n };\n VirtualRenderer.prototype.$getLongestLine = function () {\n var charCount = this.session.getScreenWidth();\n if (this.showInvisibles && !this.session.$useWrapMode)\n charCount += 1;\n if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH)\n charCount = this.$textLayer.MAX_LINE_LENGTH + 30;\n return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth));\n };\n VirtualRenderer.prototype.updateFrontMarkers = function () {\n this.$markerFront.setMarkers(this.session.getMarkers(true));\n this.$loop.schedule(this.CHANGE_MARKER_FRONT);\n };\n VirtualRenderer.prototype.updateBackMarkers = function () {\n this.$markerBack.setMarkers(this.session.getMarkers());\n this.$loop.schedule(this.CHANGE_MARKER_BACK);\n };\n VirtualRenderer.prototype.addGutterDecoration = function (row, className) {\n this.$gutterLayer.addGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.removeGutterDecoration = function (row, className) {\n this.$gutterLayer.removeGutterDecoration(row, className);\n };\n VirtualRenderer.prototype.updateBreakpoints = function (rows) {\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.setAnnotations = function (annotations) {\n this.$gutterLayer.setAnnotations(annotations);\n this.$loop.schedule(this.CHANGE_GUTTER);\n };\n VirtualRenderer.prototype.updateCursor = function () {\n this.$loop.schedule(this.CHANGE_CURSOR);\n };\n VirtualRenderer.prototype.hideCursor = function () {\n this.$cursorLayer.hideCursor();\n };\n VirtualRenderer.prototype.showCursor = function () {\n this.$cursorLayer.showCursor();\n };\n VirtualRenderer.prototype.scrollSelectionIntoView = function (anchor, lead, offset) {\n this.scrollCursorIntoView(anchor, offset);\n this.scrollCursorIntoView(lead, offset);\n };\n VirtualRenderer.prototype.scrollCursorIntoView = function (cursor, offset, $viewMargin) {\n if (this.$size.scrollerHeight === 0)\n return;\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var newLeft = pos.left;\n var newTop = pos.top;\n var topMargin = $viewMargin && $viewMargin.top || 0;\n var bottomMargin = $viewMargin && $viewMargin.bottom || 0;\n if (this.$scrollAnimation) {\n this.$stopAnimation = true;\n }\n var currentTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop;\n if (currentTop + topMargin > newTop) {\n if (offset && currentTop + topMargin > newTop + this.lineHeight)\n newTop -= offset * this.$size.scrollerHeight;\n if (newTop === 0)\n newTop = -this.scrollMargin.top;\n this.session.setScrollTop(newTop);\n }\n else if (currentTop + this.$size.scrollerHeight - bottomMargin < newTop + this.lineHeight) {\n if (offset && currentTop + this.$size.scrollerHeight - bottomMargin < newTop - this.lineHeight)\n newTop += offset * this.$size.scrollerHeight;\n this.session.setScrollTop(newTop + this.lineHeight + bottomMargin - this.$size.scrollerHeight);\n }\n var currentLeft = this.scrollLeft;\n var twoCharsWidth = 2 * this.layerConfig.characterWidth;\n if (newLeft - twoCharsWidth < currentLeft) {\n newLeft -= twoCharsWidth;\n if (newLeft < this.$padding + twoCharsWidth) {\n newLeft = -this.scrollMargin.left;\n }\n this.session.setScrollLeft(newLeft);\n }\n else {\n newLeft += twoCharsWidth;\n if (currentLeft + this.$size.scrollerWidth < newLeft + this.characterWidth) {\n this.session.setScrollLeft(Math.round(newLeft + this.characterWidth - this.$size.scrollerWidth));\n }\n else if (currentLeft <= this.$padding && newLeft - currentLeft < this.characterWidth) {\n this.session.setScrollLeft(0);\n }\n }\n };\n VirtualRenderer.prototype.getScrollTop = function () {\n return this.session.getScrollTop();\n };\n VirtualRenderer.prototype.getScrollLeft = function () {\n return this.session.getScrollLeft();\n };\n VirtualRenderer.prototype.getScrollTopRow = function () {\n return this.scrollTop / this.lineHeight;\n };\n VirtualRenderer.prototype.getScrollBottomRow = function () {\n return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1);\n };\n VirtualRenderer.prototype.scrollToRow = function (row) {\n this.session.setScrollTop(row * this.lineHeight);\n };\n VirtualRenderer.prototype.alignCursor = function (cursor, alignment) {\n if (typeof cursor == \"number\")\n cursor = { row: cursor, column: 0 };\n var pos = this.$cursorLayer.getPixelPosition(cursor);\n var h = this.$size.scrollerHeight - this.lineHeight;\n var offset = pos.top - h * (alignment || 0);\n this.session.setScrollTop(offset);\n return offset;\n };\n VirtualRenderer.prototype.$calcSteps = function (fromValue, toValue) {\n var i = 0;\n var l = this.STEPS;\n var steps = [];\n var func = function (t, x_min, dx) {\n return dx * (Math.pow(t - 1, 3) + 1) + x_min;\n };\n for (i = 0; i < l; ++i)\n steps.push(func(i / this.STEPS, fromValue, toValue - fromValue));\n return steps;\n };\n VirtualRenderer.prototype.scrollToLine = function (line, center, animate, callback) {\n var pos = this.$cursorLayer.getPixelPosition({ row: line, column: 0 });\n var offset = pos.top;\n if (center)\n offset -= this.$size.scrollerHeight / 2;\n var initialScroll = this.scrollTop;\n this.session.setScrollTop(offset);\n if (animate !== false)\n this.animateScrolling(initialScroll, callback);\n };\n VirtualRenderer.prototype.animateScrolling = function (fromValue, callback) {\n var toValue = this.scrollTop;\n if (!this.$animatedScroll)\n return;\n var _self = this;\n if (fromValue == toValue)\n return;\n if (this.$scrollAnimation) {\n var oldSteps = this.$scrollAnimation.steps;\n if (oldSteps.length) {\n fromValue = oldSteps[0];\n if (fromValue == toValue)\n return;\n }\n }\n var steps = _self.$calcSteps(fromValue, toValue);\n this.$scrollAnimation = { from: fromValue, to: toValue, steps: steps };\n clearInterval(this.$timer);\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n function endAnimation() {\n _self.$timer = clearInterval(_self.$timer);\n _self.$scrollAnimation = null;\n _self.$stopAnimation = false;\n callback && callback();\n }\n this.$timer = setInterval(function () {\n if (_self.$stopAnimation) {\n endAnimation();\n return;\n }\n if (!_self.session)\n return clearInterval(_self.$timer);\n if (steps.length) {\n _self.session.setScrollTop(steps.shift());\n _self.session.$scrollTop = toValue;\n }\n else if (toValue != null) {\n _self.session.$scrollTop = -1;\n _self.session.setScrollTop(toValue);\n toValue = null;\n }\n else {\n endAnimation();\n }\n }, 10);\n };\n VirtualRenderer.prototype.scrollToY = function (scrollTop) {\n if (this.scrollTop !== scrollTop) {\n this.$loop.schedule(this.CHANGE_SCROLL);\n this.scrollTop = scrollTop;\n }\n };\n VirtualRenderer.prototype.scrollToX = function (scrollLeft) {\n if (this.scrollLeft !== scrollLeft)\n this.scrollLeft = scrollLeft;\n this.$loop.schedule(this.CHANGE_H_SCROLL);\n };\n VirtualRenderer.prototype.scrollTo = function (x, y) {\n this.session.setScrollTop(y);\n this.session.setScrollLeft(x);\n };\n VirtualRenderer.prototype.scrollBy = function (deltaX, deltaY) {\n deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY);\n deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX);\n };\n VirtualRenderer.prototype.isScrollableBy = function (deltaX, deltaY) {\n if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top)\n return true;\n if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight\n - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom)\n return true;\n if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left)\n return true;\n if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth\n - this.layerConfig.width < -1 + this.scrollMargin.right)\n return true;\n };\n VirtualRenderer.prototype.pixelToScreenCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n return { row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX };\n };\n VirtualRenderer.prototype.screenToTextCoordinates = function (x, y) {\n var canvasPos;\n if (this.$hasCssTransforms) {\n canvasPos = { top: 0, left: 0 };\n var p = this.$fontMetrics.transformCoordinates([x, y]);\n x = p[1] - this.gutterWidth - this.margin.left;\n y = p[0];\n }\n else {\n canvasPos = this.scroller.getBoundingClientRect();\n }\n var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding;\n var offset = offsetX / this.characterWidth;\n var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset);\n var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight);\n return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX);\n };\n VirtualRenderer.prototype.textToScreenCoordinates = function (row, column) {\n var canvasPos = this.scroller.getBoundingClientRect();\n var pos = this.session.documentToScreenPosition(row, column);\n var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row)\n ? this.session.$bidiHandler.getPosLeft(pos.column)\n : Math.round(pos.column * this.characterWidth));\n var y = pos.row * this.lineHeight;\n return {\n pageX: canvasPos.left + x - this.scrollLeft,\n pageY: canvasPos.top + y - this.scrollTop\n };\n };\n VirtualRenderer.prototype.visualizeFocus = function () {\n dom.addCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.visualizeBlur = function () {\n dom.removeCssClass(this.container, \"ace_focus\");\n };\n VirtualRenderer.prototype.showComposition = function (composition) {\n this.$composition = composition;\n if (!composition.cssText) {\n composition.cssText = this.textarea.style.cssText;\n }\n if (composition.useTextareaForIME == undefined)\n composition.useTextareaForIME = this.$useTextareaForIME;\n if (this.$useTextareaForIME) {\n dom.addCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = \"\";\n this.$moveTextAreaToCursor();\n this.$cursorLayer.element.style.display = \"none\";\n }\n else {\n composition.markerId = this.session.addMarker(composition.markerRange, \"ace_composition_marker\", \"text\");\n }\n };\n VirtualRenderer.prototype.setCompositionText = function (text) {\n var cursor = this.session.selection.cursor;\n this.addToken(text, \"composition_placeholder\", cursor.row, cursor.column);\n this.$moveTextAreaToCursor();\n };\n VirtualRenderer.prototype.hideComposition = function () {\n if (!this.$composition)\n return;\n if (this.$composition.markerId)\n this.session.removeMarker(this.$composition.markerId);\n dom.removeCssClass(this.textarea, \"ace_composition\");\n this.textarea.style.cssText = this.$composition.cssText;\n var cursor = this.session.selection.cursor;\n this.removeExtraToken(cursor.row, cursor.column);\n this.$composition = null;\n this.$cursorLayer.element.style.display = \"\";\n };\n VirtualRenderer.prototype.setGhostText = function (text, position) {\n var cursor = this.session.selection.cursor;\n var insertPosition = position || { row: cursor.row, column: cursor.column };\n this.removeGhostText();\n var textLines = text.split(\"\\n\");\n this.addToken(textLines[0], \"ghost_text\", insertPosition.row, insertPosition.column);\n this.$ghostText = {\n text: text,\n position: {\n row: insertPosition.row,\n column: insertPosition.column\n }\n };\n if (textLines.length > 1) {\n this.$ghostTextWidget = {\n text: textLines.slice(1).join(\"\\n\"),\n row: insertPosition.row,\n column: insertPosition.column,\n className: \"ace_ghost_text\"\n };\n this.session.widgetManager.addLineWidget(this.$ghostTextWidget);\n }\n };\n VirtualRenderer.prototype.removeGhostText = function () {\n if (!this.$ghostText)\n return;\n var position = this.$ghostText.position;\n this.removeExtraToken(position.row, position.column);\n if (this.$ghostTextWidget) {\n this.session.widgetManager.removeLineWidget(this.$ghostTextWidget);\n this.$ghostTextWidget = null;\n }\n this.$ghostText = null;\n };\n VirtualRenderer.prototype.addToken = function (text, type, row, column) {\n var session = this.session;\n session.bgTokenizer.lines[row] = null;\n var newToken = { type: type, value: text };\n var tokens = session.getTokens(row);\n if (column == null || !tokens.length) {\n tokens.push(newToken);\n }\n else {\n var l = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n l += token.value.length;\n if (column <= l) {\n var diff = token.value.length - (l - column);\n var before = token.value.slice(0, diff);\n var after = token.value.slice(diff);\n tokens.splice(i, 1, { type: token.type, value: before }, newToken, { type: token.type, value: after });\n break;\n }\n }\n }\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.removeExtraToken = function (row, column) {\n this.session.bgTokenizer.lines[row] = null;\n this.updateLines(row, row);\n };\n VirtualRenderer.prototype.setTheme = function (theme, cb) {\n var _self = this;\n this.$themeId = theme;\n _self._dispatchEvent('themeChange', { theme: theme });\n if (!theme || typeof theme == \"string\") {\n var moduleName = theme || this.$options.theme.initialValue;\n config.loadModule([\"theme\", moduleName], afterLoad);\n }\n else {\n afterLoad(theme);\n }\n function afterLoad(module) {\n if (_self.$themeId != theme)\n return cb && cb();\n if (!module || !module.cssClass)\n throw new Error(\"couldn't load module \" + theme + \" or it didn't call define\");\n if (module.$id)\n _self.$themeId = module.$id;\n dom.importCssString(module.cssText, module.cssClass, _self.container);\n if (_self.theme)\n dom.removeCssClass(_self.container, _self.theme.cssClass);\n var padding = \"padding\" in module ? module.padding\n : \"padding\" in (_self.theme || {}) ? 4 : _self.$padding;\n if (_self.$padding && padding != _self.$padding)\n _self.setPadding(padding);\n _self.$theme = module.cssClass;\n _self.theme = module;\n dom.addCssClass(_self.container, module.cssClass);\n dom.setCssClass(_self.container, \"ace_dark\", module.isDark);\n if (_self.$size) {\n _self.$size.width = 0;\n _self.$updateSizeAsync();\n }\n _self._dispatchEvent('themeLoaded', { theme: module });\n cb && cb();\n }\n };\n VirtualRenderer.prototype.getTheme = function () {\n return this.$themeId;\n };\n VirtualRenderer.prototype.setStyle = function (style, include) {\n dom.setCssClass(this.container, style, include !== false);\n };\n VirtualRenderer.prototype.unsetStyle = function (style) {\n dom.removeCssClass(this.container, style);\n };\n VirtualRenderer.prototype.setCursorStyle = function (style) {\n dom.setStyle(this.scroller.style, \"cursor\", style);\n };\n VirtualRenderer.prototype.setMouseCursor = function (cursorStyle) {\n dom.setStyle(this.scroller.style, \"cursor\", cursorStyle);\n };\n VirtualRenderer.prototype.attachToShadowRoot = function () {\n dom.importCssString(editorCss, \"ace_editor.css\", this.container);\n };\n VirtualRenderer.prototype.destroy = function () {\n this.freeze();\n this.$fontMetrics.destroy();\n this.$cursorLayer.destroy();\n this.removeAllListeners();\n this.container.textContent = \"\";\n this.setOption(\"useResizeObserver\", false);\n };\n VirtualRenderer.prototype.$updateCustomScrollbar = function (val) {\n var _self = this;\n this.$horizScroll = this.$vScroll = null;\n this.scrollBarV.element.remove();\n this.scrollBarH.element.remove();\n if (this.$scrollDecorator) {\n delete this.$scrollDecorator;\n }\n if (val === true) {\n this.scrollBarV = new VScrollBarCustom(this.container, this);\n this.scrollBarH = new HScrollBarCustom(this.container, this);\n this.scrollBarV.setHeight(this.$size.scrollerHeight);\n this.scrollBarH.setWidth(this.$size.scrollerWidth);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n this.$scrollDecorator = new Decorator(this.scrollBarV, this);\n this.$scrollDecorator.$updateDecorators();\n }\n else {\n this.scrollBarV = new VScrollBar(this.container, this);\n this.scrollBarH = new HScrollBar(this.container, this);\n this.scrollBarV.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollTop(e.data - _self.scrollMargin.top);\n });\n this.scrollBarH.addEventListener(\"scroll\", function (e) {\n if (!_self.$scrollAnimation)\n _self.session.setScrollLeft(e.data - _self.scrollMargin.left);\n });\n }\n };\n VirtualRenderer.prototype.$addResizeObserver = function () {\n if (!window.ResizeObserver || this.$resizeObserver)\n return;\n var self = this;\n this.$resizeTimer = lang.delayedCall(function () {\n if (!self.destroyed)\n self.onResize();\n }, 50);\n this.$resizeObserver = new window.ResizeObserver(function (e) {\n var w = e[0].contentRect.width;\n var h = e[0].contentRect.height;\n if (Math.abs(self.$size.width - w) > 1\n || Math.abs(self.$size.height - h) > 1) {\n self.$resizeTimer.delay();\n }\n else {\n self.$resizeTimer.cancel();\n }\n });\n this.$resizeObserver.observe(this.container);\n };\n return VirtualRenderer;\n}());\nVirtualRenderer.prototype.CHANGE_CURSOR = 1;\nVirtualRenderer.prototype.CHANGE_MARKER = 2;\nVirtualRenderer.prototype.CHANGE_GUTTER = 4;\nVirtualRenderer.prototype.CHANGE_SCROLL = 8;\nVirtualRenderer.prototype.CHANGE_LINES = 16;\nVirtualRenderer.prototype.CHANGE_TEXT = 32;\nVirtualRenderer.prototype.CHANGE_SIZE = 64;\nVirtualRenderer.prototype.CHANGE_MARKER_BACK = 128;\nVirtualRenderer.prototype.CHANGE_MARKER_FRONT = 256;\nVirtualRenderer.prototype.CHANGE_FULL = 512;\nVirtualRenderer.prototype.CHANGE_H_SCROLL = 1024;\nVirtualRenderer.prototype.$changes = 0;\nVirtualRenderer.prototype.$padding = null;\nVirtualRenderer.prototype.$frozen = false;\nVirtualRenderer.prototype.STEPS = 8;\noop.implement(VirtualRenderer.prototype, EventEmitter);\nconfig.defineOptions(VirtualRenderer.prototype, \"renderer\", {\n useResizeObserver: {\n set: function (value) {\n if (!value && this.$resizeObserver) {\n this.$resizeObserver.disconnect();\n this.$resizeTimer.cancel();\n this.$resizeTimer = this.$resizeObserver = null;\n }\n else if (value && !this.$resizeObserver) {\n this.$addResizeObserver();\n }\n }\n },\n animatedScroll: { initialValue: false },\n showInvisibles: {\n set: function (value) {\n if (this.$textLayer.setShowInvisibles(value))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: false\n },\n showPrintMargin: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: true\n },\n printMarginColumn: {\n set: function () { this.$updatePrintMargin(); },\n initialValue: 80\n },\n printMargin: {\n set: function (val) {\n if (typeof val == \"number\")\n this.$printMarginColumn = val;\n this.$showPrintMargin = !!val;\n this.$updatePrintMargin();\n },\n get: function () {\n return this.$showPrintMargin && this.$printMarginColumn;\n }\n },\n showGutter: {\n set: function (show) {\n this.$gutter.style.display = show ? \"block\" : \"none\";\n this.$loop.schedule(this.CHANGE_FULL);\n this.onGutterResize();\n },\n initialValue: true\n },\n useSvgGutterIcons: {\n set: function (value) {\n this.$gutterLayer.$useSvgGutterIcons = value;\n },\n initialValue: false\n },\n showFoldedAnnotations: {\n set: function (value) {\n this.$gutterLayer.$showFoldedAnnotations = value;\n },\n initialValue: false\n },\n fadeFoldWidgets: {\n set: function (show) {\n dom.setCssClass(this.$gutter, \"ace_fade-fold-widgets\", show);\n },\n initialValue: false\n },\n showFoldWidgets: {\n set: function (show) {\n this.$gutterLayer.setShowFoldWidgets(show);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n displayIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setDisplayIndentGuides(show))\n this.$loop.schedule(this.CHANGE_TEXT);\n },\n initialValue: true\n },\n highlightIndentGuides: {\n set: function (show) {\n if (this.$textLayer.setHighlightIndentGuides(show) == true) {\n this.$textLayer.$highlightIndentGuide();\n }\n else {\n this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells);\n }\n },\n initialValue: true\n },\n highlightGutterLine: {\n set: function (shouldHighlight) {\n this.$gutterLayer.setHighlightGutterLine(shouldHighlight);\n this.$loop.schedule(this.CHANGE_GUTTER);\n },\n initialValue: true\n },\n hScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n vScrollBarAlwaysVisible: {\n set: function (val) {\n if (!this.$vScrollBarAlwaysVisible || !this.$vScroll)\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: false\n },\n fontSize: {\n set: function (size) {\n if (typeof size == \"number\")\n size = size + \"px\";\n this.container.style.fontSize = size;\n this.updateFontSize();\n },\n initialValue: 12\n },\n fontFamily: {\n set: function (name) {\n this.container.style.fontFamily = name;\n this.updateFontSize();\n }\n },\n maxLines: {\n set: function (val) {\n this.updateFull();\n }\n },\n minLines: {\n set: function (val) {\n if (!(this.$minLines < 0x1ffffffffffff))\n this.$minLines = 0;\n this.updateFull();\n }\n },\n maxPixelHeight: {\n set: function (val) {\n this.updateFull();\n },\n initialValue: 0\n },\n scrollPastEnd: {\n set: function (val) {\n val = +val || 0;\n if (this.$scrollPastEnd == val)\n return;\n this.$scrollPastEnd = val;\n this.$loop.schedule(this.CHANGE_SCROLL);\n },\n initialValue: 0,\n handlesSet: true\n },\n fixedWidthGutter: {\n set: function (val) {\n this.$gutterLayer.$fixedWidth = !!val;\n this.$loop.schedule(this.CHANGE_GUTTER);\n }\n },\n customScrollbar: {\n set: function (val) {\n this.$updateCustomScrollbar(val);\n },\n initialValue: false\n },\n theme: {\n set: function (val) { this.setTheme(val); },\n get: function () { return this.$themeId || this.theme; },\n initialValue: \"./theme/textmate\",\n handlesSet: true\n },\n hasCssTransforms: {},\n useTextareaForIME: {\n initialValue: !useragent.isMobile && !useragent.isIE\n }\n});\nexports.VirtualRenderer = VirtualRenderer;\n\n});\n\nace.define(\"ace/worker/worker_client\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/net\",\"ace/lib/event_emitter\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar net = require(\"../lib/net\");\nvar EventEmitter = require(\"../lib/event_emitter\").EventEmitter;\nvar config = require(\"../config\");\n\nfunction $workerBlob(workerUrl) {\n var script = \"importScripts('\" + net.qualifyURL(workerUrl) + \"');\";\n try {\n return new Blob([script], {\"type\": \"application/javascript\"});\n } catch (e) { // Backwards-compatibility\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;\n var blobBuilder = new BlobBuilder();\n blobBuilder.append(script);\n return blobBuilder.getBlob(\"application/javascript\");\n }\n}\n\nfunction createWorker(workerUrl) {\n if (typeof Worker == \"undefined\")\n return { postMessage: function() {}, terminate: function() {} };\n if (config.get(\"loadWorkerFromBlob\")) {\n var blob = $workerBlob(workerUrl);\n var URL = window.URL || window.webkitURL;\n var blobURL = URL.createObjectURL(blob);\n return new Worker(blobURL);\n }\n return new Worker(workerUrl);\n}\n\nvar WorkerClient = function(worker) {\n if (!worker.postMessage)\n worker = this.$createWorkerFromOldConfig.apply(this, arguments);\n\n this.$worker = worker;\n this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.onMessage = this.onMessage.bind(this);\n\n this.callbackId = 1;\n this.callbacks = {};\n\n this.$worker.onmessage = this.onMessage;\n};\n\n(function(){\n\n oop.implement(this, EventEmitter);\n\n this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) {\n if (require.nameToUrl && !require.toUrl)\n require.toUrl = require.nameToUrl;\n\n if (config.get(\"packaged\") || !require.toUrl) {\n workerUrl = workerUrl || config.moduleUrl(mod, \"worker\");\n } else {\n var normalizePath = this.$normalizePath;\n workerUrl = workerUrl || normalizePath(require.toUrl(\"ace/worker/worker.js\", null, \"_\"));\n\n var tlns = {};\n topLevelNamespaces.forEach(function(ns) {\n tlns[ns] = normalizePath(require.toUrl(ns, null, \"_\").replace(/(\\.js)?(\\?.*)?$/, \"\"));\n });\n }\n\n this.$worker = createWorker(workerUrl);\n if (importScripts) {\n this.send(\"importScripts\", importScripts);\n }\n this.$worker.postMessage({\n init : true,\n tlns : tlns,\n module : mod,\n classname : classname\n });\n return this.$worker;\n };\n\n this.onMessage = function(e) {\n var msg = e.data;\n switch (msg.type) {\n case \"event\":\n this._signal(msg.name, {data: msg.data});\n break;\n case \"call\":\n var callback = this.callbacks[msg.id];\n if (callback) {\n callback(msg.data);\n delete this.callbacks[msg.id];\n }\n break;\n case \"error\":\n this.reportError(msg.data);\n break;\n case \"log\":\n window.console && console.log && console.log.apply(console, msg.data);\n break;\n }\n };\n \n this.reportError = function(err) {\n window.console && console.error && console.error(err);\n };\n\n this.$normalizePath = function(path) {\n return net.qualifyURL(path);\n };\n\n this.terminate = function() {\n this._signal(\"terminate\", {});\n this.deltaQueue = null;\n this.$worker.terminate();\n this.$worker.onerror = function(e) {\n e.preventDefault();\n };\n this.$worker = null;\n if (this.$doc)\n this.$doc.off(\"change\", this.changeListener);\n this.$doc = null;\n };\n\n this.send = function(cmd, args) {\n this.$worker.postMessage({command: cmd, args: args});\n };\n\n this.call = function(cmd, args, callback) {\n if (callback) {\n var id = this.callbackId++;\n this.callbacks[id] = callback;\n args.push(id);\n }\n this.send(cmd, args);\n };\n\n this.emit = function(event, data) {\n try {\n if (data.data && data.data.err)\n data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code};\n this.$worker && this.$worker.postMessage({event: event, data: {data: data.data}});\n }\n catch(ex) {\n console.error(ex.stack);\n }\n };\n\n this.attachToDocument = function(doc) {\n if (this.$doc)\n this.terminate();\n\n this.$doc = doc;\n this.call(\"setValue\", [doc.getValue()]);\n doc.on(\"change\", this.changeListener, true);\n };\n\n this.changeListener = function(delta) {\n if (!this.deltaQueue) {\n this.deltaQueue = [];\n setTimeout(this.$sendDeltaQueue, 0);\n }\n if (delta.action == \"insert\")\n this.deltaQueue.push(delta.start, delta.lines);\n else\n this.deltaQueue.push(delta.start, delta.end);\n };\n\n this.$sendDeltaQueue = function() {\n var q = this.deltaQueue;\n if (!q) return;\n this.deltaQueue = null;\n if (q.length > 50 && q.length > this.$doc.getLength() >> 1) {\n this.call(\"setValue\", [this.$doc.getValue()]);\n } else\n this.emit(\"change\", {data: q});\n };\n\n}).call(WorkerClient.prototype);\n\n\nvar UIWorkerClient = function(topLevelNamespaces, mod, classname) {\n var main = null;\n var emitSync = false;\n var sender = Object.create(EventEmitter);\n\n var messageBuffer = [];\n var workerClient = new WorkerClient({\n messageBuffer: messageBuffer,\n terminate: function() {},\n postMessage: function(e) {\n messageBuffer.push(e);\n if (!main) return;\n if (emitSync)\n setTimeout(processNext);\n else\n processNext();\n }\n });\n\n workerClient.setEmitSync = function(val) { emitSync = val; };\n\n var processNext = function() {\n var msg = messageBuffer.shift();\n if (msg.command)\n main[msg.command].apply(main, msg.args);\n else if (msg.event)\n sender._signal(msg.event, msg.data);\n };\n\n sender.postMessage = function(msg) {\n workerClient.onMessage({data: msg});\n };\n sender.callback = function(data, callbackId) {\n this.postMessage({type: \"call\", id: callbackId, data: data});\n };\n sender.emit = function(name, data) {\n this.postMessage({type: \"event\", name: name, data: data});\n };\n\n config.loadModule([\"worker\", mod], function(Main) {\n main = new Main[classname](sender);\n while (messageBuffer.length)\n processNext();\n });\n\n return workerClient;\n};\n\nexports.UIWorkerClient = UIWorkerClient;\nexports.WorkerClient = WorkerClient;\nexports.createWorker = createWorker;\n\n\n});\n\nace.define(\"ace/placeholder\",[\"require\",\"exports\",\"module\",\"ace/range\",\"ace/lib/event_emitter\",\"ace/lib/oop\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"./range\").Range;\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar oop = require(\"./lib/oop\");\nvar PlaceHolder = /** @class */ (function () {\n function PlaceHolder(session, length, pos, others, mainClass, othersClass) {\n var _self = this;\n this.length = length;\n this.session = session;\n this.doc = session.getDocument();\n this.mainClass = mainClass;\n this.othersClass = othersClass;\n this.$onUpdate = this.onUpdate.bind(this);\n this.doc.on(\"change\", this.$onUpdate, true);\n this.$others = others;\n this.$onCursorChange = function () {\n setTimeout(function () {\n _self.onCursorChange();\n });\n };\n this.$pos = pos;\n var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || { length: -1 };\n this.$undoStackDepth = undoStack.length;\n this.setup();\n session.selection.on(\"changeCursor\", this.$onCursorChange);\n }\n PlaceHolder.prototype.setup = function () {\n var _self = this;\n var doc = this.doc;\n var session = this.session;\n this.selectionBefore = session.selection.toJSON();\n if (session.selection.inMultiSelectMode)\n session.selection.toSingleRange();\n this.pos = doc.createAnchor(this.$pos.row, this.$pos.column);\n var pos = this.pos;\n pos.$insertRight = true;\n pos.detach();\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false);\n this.others = [];\n this.$others.forEach(function (other) {\n var anchor = doc.createAnchor(other.row, other.column);\n anchor.$insertRight = true;\n anchor.detach();\n _self.others.push(anchor);\n });\n session.setUndoSelect(false);\n };\n PlaceHolder.prototype.showOtherMarkers = function () {\n if (this.othersActive)\n return;\n var session = this.session;\n var _self = this;\n this.othersActive = true;\n this.others.forEach(function (anchor) {\n anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column + _self.length), _self.othersClass, null, false);\n });\n };\n PlaceHolder.prototype.hideOtherMarkers = function () {\n if (!this.othersActive)\n return;\n this.othersActive = false;\n for (var i = 0; i < this.others.length; i++) {\n this.session.removeMarker(this.others[i].markerId);\n }\n };\n PlaceHolder.prototype.onUpdate = function (delta) {\n if (this.$updating)\n return this.updateAnchors(delta);\n var range = delta;\n if (range.start.row !== range.end.row)\n return;\n if (range.start.row !== this.pos.row)\n return;\n this.$updating = true;\n var lengthDiff = delta.action === \"insert\" ? range.end.column - range.start.column : range.start.column - range.end.column;\n var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1;\n var distanceFromStart = range.start.column - this.pos.column;\n this.updateAnchors(delta);\n if (inMainRange)\n this.length += lengthDiff;\n if (inMainRange && !this.session.$fromUndo) {\n if (delta.action === 'insert') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.insertMergedLines(newPos, delta.lines);\n }\n }\n else if (delta.action === 'remove') {\n for (var i = this.others.length - 1; i >= 0; i--) {\n var otherPos = this.others[i];\n var newPos = { row: otherPos.row, column: otherPos.column + distanceFromStart };\n this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff));\n }\n }\n }\n this.$updating = false;\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateAnchors = function (delta) {\n this.pos.onChange(delta);\n for (var i = this.others.length; i--;)\n this.others[i].onChange(delta);\n this.updateMarkers();\n };\n PlaceHolder.prototype.updateMarkers = function () {\n if (this.$updating)\n return;\n var _self = this;\n var session = this.session;\n var updateMarker = function (pos, className) {\n session.removeMarker(pos.markerId);\n pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + _self.length), className, null, false);\n };\n updateMarker(this.pos, this.mainClass);\n for (var i = this.others.length; i--;)\n updateMarker(this.others[i], this.othersClass);\n };\n PlaceHolder.prototype.onCursorChange = function (event) {\n if (this.$updating || !this.session)\n return;\n var pos = this.session.selection.getCursor();\n if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) {\n this.showOtherMarkers();\n this._emit(\"cursorEnter\", event);\n }\n else {\n this.hideOtherMarkers();\n this._emit(\"cursorLeave\", event);\n }\n };\n PlaceHolder.prototype.detach = function () {\n this.session.removeMarker(this.pos && this.pos.markerId);\n this.hideOtherMarkers();\n this.doc.off(\"change\", this.$onUpdate);\n this.session.selection.off(\"changeCursor\", this.$onCursorChange);\n this.session.setUndoSelect(true);\n this.session = null;\n };\n PlaceHolder.prototype.cancel = function () {\n if (this.$undoStackDepth === -1)\n return;\n var undoManager = this.session.getUndoManager();\n var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth;\n for (var i = 0; i < undosRequired; i++) {\n undoManager.undo(this.session, true);\n }\n if (this.selectionBefore)\n this.session.selection.fromJSON(this.selectionBefore);\n };\n return PlaceHolder;\n}());\noop.implement(PlaceHolder.prototype, EventEmitter);\nexports.PlaceHolder = PlaceHolder;\n\n});\n\nace.define(\"ace/mouse/multi_select_handler\",[\"require\",\"exports\",\"module\",\"ace/lib/event\",\"ace/lib/useragent\"], function(require, exports, module){var event = require(\"../lib/event\");\nvar useragent = require(\"../lib/useragent\");\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nfunction onMouseDown(e) {\n var ev = e.domEvent;\n var alt = ev.altKey;\n var shift = ev.shiftKey;\n var ctrl = ev.ctrlKey;\n var accel = e.getAccelKey();\n var button = e.getButton();\n if (ctrl && useragent.isMac)\n button = ev.button;\n if (e.editor.inMultiSelectMode && button == 2) {\n e.editor.textInput.onContextMenu(e.domEvent);\n return;\n }\n if (!ctrl && !alt && !accel) {\n if (button === 0 && e.editor.inMultiSelectMode)\n e.editor.exitMultiSelectMode();\n return;\n }\n if (button !== 0)\n return;\n var editor = e.editor;\n var selection = editor.selection;\n var isMultiSelect = editor.inMultiSelectMode;\n var pos = e.getDocumentPosition();\n var cursor = selection.getCursor();\n var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor));\n var mouseX = e.x, mouseY = e.y;\n var onMouseSelection = function (e) {\n mouseX = e.clientX;\n mouseY = e.clientY;\n };\n var session = editor.session;\n var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var screenCursor = screenAnchor;\n var selectionMode;\n if (editor.$mouseHandler.$enableJumpToDef) {\n if (ctrl && alt || accel && alt)\n selectionMode = shift ? \"block\" : \"add\";\n else if (alt && editor.$blockSelectEnabled)\n selectionMode = \"block\";\n }\n else {\n if (accel && !alt) {\n selectionMode = \"add\";\n if (!isMultiSelect && shift)\n return;\n }\n else if (alt && editor.$blockSelectEnabled) {\n selectionMode = \"block\";\n }\n }\n if (selectionMode && useragent.isMac && ev.ctrlKey) {\n editor.$mouseHandler.cancelContextMenu();\n }\n if (selectionMode == \"add\") {\n if (!isMultiSelect && inSelection)\n return; // dragging\n if (!isMultiSelect) {\n var range = selection.toOrientedRange();\n editor.addSelectionMarker(range);\n }\n var oldRange = selection.rangeList.rangeAtPoint(pos);\n editor.inVirtualSelectionMode = true;\n if (shift) {\n oldRange = null;\n range = selection.ranges[0] || range;\n editor.removeSelectionMarker(range);\n }\n editor.once(\"mouseup\", function () {\n var tmpSel = selection.toOrientedRange();\n if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))\n selection.substractPoint(tmpSel.cursor);\n else {\n if (shift) {\n selection.substractPoint(range.cursor);\n }\n else if (range) {\n editor.removeSelectionMarker(range);\n selection.addRange(range);\n }\n selection.addRange(tmpSel);\n }\n editor.inVirtualSelectionMode = false;\n });\n }\n else if (selectionMode == \"block\") {\n e.stop();\n editor.inVirtualSelectionMode = true;\n var initialRange;\n var rectSel = [];\n var blockSelect = function () {\n var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY);\n var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX);\n if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead))\n return;\n screenCursor = newCursor;\n editor.selection.moveToPosition(cursor);\n editor.renderer.scrollCursorIntoView();\n editor.removeSelectionMarkers(rectSel);\n rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor);\n if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty())\n rectSel[0] = editor.$mouseHandler.$clickSelection.clone();\n rectSel.forEach(editor.addSelectionMarker, editor);\n editor.updateSelectionMarkers();\n };\n if (isMultiSelect && !accel) {\n selection.toSingleRange();\n }\n else if (!isMultiSelect && accel) {\n initialRange = selection.toOrientedRange();\n editor.addSelectionMarker(initialRange);\n }\n if (shift)\n screenAnchor = session.documentToScreenPosition(selection.lead);\n else\n selection.moveToPosition(pos);\n screenCursor = { row: -1, column: -1 };\n var onMouseSelectionEnd = function (e) {\n blockSelect();\n clearInterval(timerId);\n editor.removeSelectionMarkers(rectSel);\n if (!rectSel.length)\n rectSel = [selection.toOrientedRange()];\n if (initialRange) {\n editor.removeSelectionMarker(initialRange);\n selection.toSingleRange(initialRange);\n }\n for (var i = 0; i < rectSel.length; i++)\n selection.addRange(rectSel[i]);\n editor.inVirtualSelectionMode = false;\n editor.$mouseHandler.$clickSelection = null;\n };\n var onSelectionInterval = blockSelect;\n event.capture(editor.container, onMouseSelection, onMouseSelectionEnd);\n var timerId = setInterval(function () { onSelectionInterval(); }, 20);\n return e.preventDefault();\n }\n}\nexports.onMouseDown = onMouseDown;\n\n});\n\nace.define(\"ace/commands/multi_select_commands\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\"], function(require, exports, module){// commands to enter multiselect mode\nexports.defaultCommands = [{\n name: \"addCursorAbove\",\n description: \"Add cursor above\",\n exec: function (editor) { editor.selectMoreLines(-1); },\n bindKey: { win: \"Ctrl-Alt-Up\", mac: \"Ctrl-Alt-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelow\",\n description: \"Add cursor below\",\n exec: function (editor) { editor.selectMoreLines(1); },\n bindKey: { win: \"Ctrl-Alt-Down\", mac: \"Ctrl-Alt-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorAboveSkipCurrent\",\n description: \"Add cursor above (skip current)\",\n exec: function (editor) { editor.selectMoreLines(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Up\", mac: \"Ctrl-Alt-Shift-Up\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"addCursorBelowSkipCurrent\",\n description: \"Add cursor below (skip current)\",\n exec: function (editor) { editor.selectMoreLines(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Down\", mac: \"Ctrl-Alt-Shift-Down\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreBefore\",\n description: \"Select more before\",\n exec: function (editor) { editor.selectMore(-1); },\n bindKey: { win: \"Ctrl-Alt-Left\", mac: \"Ctrl-Alt-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectMoreAfter\",\n description: \"Select more after\",\n exec: function (editor) { editor.selectMore(1); },\n bindKey: { win: \"Ctrl-Alt-Right\", mac: \"Ctrl-Alt-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextBefore\",\n description: \"Select next before\",\n exec: function (editor) { editor.selectMore(-1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Left\", mac: \"Ctrl-Alt-Shift-Left\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"selectNextAfter\",\n description: \"Select next after\",\n exec: function (editor) { editor.selectMore(1, true); },\n bindKey: { win: \"Ctrl-Alt-Shift-Right\", mac: \"Ctrl-Alt-Shift-Right\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }, {\n name: \"toggleSplitSelectionIntoLines\",\n description: \"Split selection into lines\",\n exec: function (editor) {\n if (editor.multiSelect.rangeCount > 1)\n editor.multiSelect.joinSelections();\n else\n editor.multiSelect.splitIntoLines();\n },\n bindKey: { win: \"Ctrl-Alt-L\", mac: \"Ctrl-Alt-L\" },\n readOnly: true\n }, {\n name: \"splitSelectionIntoLines\",\n description: \"Split into lines\",\n exec: function (editor) { editor.multiSelect.splitIntoLines(); },\n readOnly: true\n }, {\n name: \"alignCursors\",\n description: \"Align cursors\",\n exec: function (editor) { editor.alignCursors(); },\n bindKey: { win: \"Ctrl-Alt-A\", mac: \"Ctrl-Alt-A\" },\n scrollIntoView: \"cursor\"\n }, {\n name: \"findAll\",\n description: \"Find all\",\n exec: function (editor) { editor.findAll(); },\n bindKey: { win: \"Ctrl-Alt-K\", mac: \"Ctrl-Alt-G\" },\n scrollIntoView: \"cursor\",\n readOnly: true\n }];\nexports.multiSelectCommands = [{\n name: \"singleSelection\",\n description: \"Single selection\",\n bindKey: \"esc\",\n exec: function (editor) { editor.exitMultiSelectMode(); },\n scrollIntoView: \"cursor\",\n readOnly: true,\n isAvailable: function (editor) { return editor && editor.inMultiSelectMode; }\n }];\nvar HashHandler = require(\"../keyboard/hash_handler\").HashHandler;\nexports.keyboardHandler = new HashHandler(exports.multiSelectCommands);\n\n});\n\nace.define(\"ace/multi_select\",[\"require\",\"exports\",\"module\",\"ace/range_list\",\"ace/range\",\"ace/selection\",\"ace/mouse/multi_select_handler\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/commands/multi_select_commands\",\"ace/search\",\"ace/edit_session\",\"ace/editor\",\"ace/config\"], function(require, exports, module){var RangeList = require(\"./range_list\").RangeList;\nvar Range = require(\"./range\").Range;\nvar Selection = require(\"./selection\").Selection;\nvar onMouseDown = require(\"./mouse/multi_select_handler\").onMouseDown;\nvar event = require(\"./lib/event\");\nvar lang = require(\"./lib/lang\");\nvar commands = require(\"./commands/multi_select_commands\");\nexports.commands = commands.defaultCommands.concat(commands.multiSelectCommands);\nvar Search = require(\"./search\").Search;\nvar search = new Search();\nfunction find(session, needle, dir) {\n search.$options.wrap = true;\n search.$options.needle = needle;\n search.$options.backwards = dir == -1;\n return search.find(session);\n}\nvar EditSession = require(\"./edit_session\").EditSession;\n(function () {\n this.getSelectionMarkers = function () {\n return this.$selectionMarkers;\n };\n}).call(EditSession.prototype);\n(function () {\n this.ranges = null;\n this.rangeList = null;\n this.addRange = function (range, $blockChangeEvents) {\n if (!range)\n return;\n if (!this.inMultiSelectMode && this.rangeCount === 0) {\n var oldRange = this.toOrientedRange();\n this.rangeList.add(oldRange);\n this.rangeList.add(range);\n if (this.rangeList.ranges.length != 2) {\n this.rangeList.removeAll();\n return $blockChangeEvents || this.fromOrientedRange(range);\n }\n this.rangeList.removeAll();\n this.rangeList.add(oldRange);\n this.$onAddRange(oldRange);\n }\n if (!range.cursor)\n range.cursor = range.end;\n var removed = this.rangeList.add(range);\n this.$onAddRange(range);\n if (removed.length)\n this.$onRemoveRange(removed);\n if (this.rangeCount > 1 && !this.inMultiSelectMode) {\n this._signal(\"multiSelect\");\n this.inMultiSelectMode = true;\n this.session.$undoSelect = false;\n this.rangeList.attach(this.session);\n }\n return $blockChangeEvents || this.fromOrientedRange(range);\n };\n this.toSingleRange = function (range) {\n range = range || this.ranges[0];\n var removed = this.rangeList.removeAll();\n if (removed.length)\n this.$onRemoveRange(removed);\n range && this.fromOrientedRange(range);\n };\n this.substractPoint = function (pos) {\n var removed = this.rangeList.substractPoint(pos);\n if (removed) {\n this.$onRemoveRange(removed);\n return removed[0];\n }\n };\n this.mergeOverlappingRanges = function () {\n var removed = this.rangeList.merge();\n if (removed.length)\n this.$onRemoveRange(removed);\n };\n this.$onAddRange = function (range) {\n this.rangeCount = this.rangeList.ranges.length;\n this.ranges.unshift(range);\n this._signal(\"addRange\", { range: range });\n };\n this.$onRemoveRange = function (removed) {\n this.rangeCount = this.rangeList.ranges.length;\n if (this.rangeCount == 1 && this.inMultiSelectMode) {\n var lastRange = this.rangeList.ranges.pop();\n removed.push(lastRange);\n this.rangeCount = 0;\n }\n for (var i = removed.length; i--;) {\n var index = this.ranges.indexOf(removed[i]);\n this.ranges.splice(index, 1);\n }\n this._signal(\"removeRange\", { ranges: removed });\n if (this.rangeCount === 0 && this.inMultiSelectMode) {\n this.inMultiSelectMode = false;\n this._signal(\"singleSelect\");\n this.session.$undoSelect = true;\n this.rangeList.detach(this.session);\n }\n lastRange = lastRange || this.ranges[0];\n if (lastRange && !lastRange.isEqual(this.getRange()))\n this.fromOrientedRange(lastRange);\n };\n this.$initRangeList = function () {\n if (this.rangeList)\n return;\n this.rangeList = new RangeList();\n this.ranges = [];\n this.rangeCount = 0;\n };\n this.getAllRanges = function () {\n return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()];\n };\n this.splitIntoLines = function () {\n var ranges = this.ranges.length ? this.ranges : [this.getRange()];\n var newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var row = range.start.row;\n var endRow = range.end.row;\n if (row === endRow) {\n newRanges.push(range.clone());\n }\n else {\n newRanges.push(new Range(row, range.start.column, row, this.session.getLine(row).length));\n while (++row < endRow)\n newRanges.push(this.getLineRange(row, true));\n newRanges.push(new Range(endRow, 0, endRow, range.end.column));\n }\n if (i == 0 && !this.isBackwards())\n newRanges = newRanges.reverse();\n }\n this.toSingleRange();\n for (var i = newRanges.length; i--;)\n this.addRange(newRanges[i]);\n };\n this.joinSelections = function () {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n };\n this.toggleBlockSelection = function () {\n if (this.rangeCount > 1) {\n var ranges = this.rangeList.ranges;\n var lastRange = ranges[ranges.length - 1];\n var range = Range.fromPoints(ranges[0].start, lastRange.end);\n this.toSingleRange();\n this.setSelectionRange(range, lastRange.cursor == lastRange.start);\n }\n else {\n var cursor = this.session.documentToScreenPosition(this.cursor);\n var anchor = this.session.documentToScreenPosition(this.anchor);\n var rectSel = this.rectangularRangeBlock(cursor, anchor);\n rectSel.forEach(this.addRange, this);\n }\n };\n this.rectangularRangeBlock = function (screenCursor, screenAnchor, includeEmptyLines) {\n var rectSel = [];\n var xBackwards = screenCursor.column < screenAnchor.column;\n if (xBackwards) {\n var startColumn = screenCursor.column;\n var endColumn = screenAnchor.column;\n var startOffsetX = screenCursor.offsetX;\n var endOffsetX = screenAnchor.offsetX;\n }\n else {\n var startColumn = screenAnchor.column;\n var endColumn = screenCursor.column;\n var startOffsetX = screenAnchor.offsetX;\n var endOffsetX = screenCursor.offsetX;\n }\n var yBackwards = screenCursor.row < screenAnchor.row;\n if (yBackwards) {\n var startRow = screenCursor.row;\n var endRow = screenAnchor.row;\n }\n else {\n var startRow = screenAnchor.row;\n var endRow = screenCursor.row;\n }\n if (startColumn < 0)\n startColumn = 0;\n if (startRow < 0)\n startRow = 0;\n if (startRow == endRow)\n includeEmptyLines = true;\n var docEnd;\n for (var row = startRow; row <= endRow; row++) {\n var range = Range.fromPoints(this.session.screenToDocumentPosition(row, startColumn, startOffsetX), this.session.screenToDocumentPosition(row, endColumn, endOffsetX));\n if (range.isEmpty()) {\n if (docEnd && isSamePoint(range.end, docEnd))\n break;\n docEnd = range.end;\n }\n range.cursor = xBackwards ? range.start : range.end;\n rectSel.push(range);\n }\n if (yBackwards)\n rectSel.reverse();\n if (!includeEmptyLines) {\n var end = rectSel.length - 1;\n while (rectSel[end].isEmpty() && end > 0)\n end--;\n if (end > 0) {\n var start = 0;\n while (rectSel[start].isEmpty())\n start++;\n }\n for (var i = end; i >= start; i--) {\n if (rectSel[i].isEmpty())\n rectSel.splice(i, 1);\n }\n }\n return rectSel;\n };\n}).call(Selection.prototype);\nvar Editor = require(\"./editor\").Editor;\n(function () {\n this.updateSelectionMarkers = function () {\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.addSelectionMarker = function (orientedRange) {\n if (!orientedRange.cursor)\n orientedRange.cursor = orientedRange.end;\n var style = this.getSelectionStyle();\n orientedRange.marker = this.session.addMarker(orientedRange, \"ace_selection\", style);\n this.session.$selectionMarkers.push(orientedRange);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n return orientedRange;\n };\n this.removeSelectionMarker = function (range) {\n if (!range.marker)\n return;\n this.session.removeMarker(range.marker);\n var index = this.session.$selectionMarkers.indexOf(range);\n if (index != -1)\n this.session.$selectionMarkers.splice(index, 1);\n this.session.selectionMarkerCount = this.session.$selectionMarkers.length;\n };\n this.removeSelectionMarkers = function (ranges) {\n var markerList = this.session.$selectionMarkers;\n for (var i = ranges.length; i--;) {\n var range = ranges[i];\n if (!range.marker)\n continue;\n this.session.removeMarker(range.marker);\n var index = markerList.indexOf(range);\n if (index != -1)\n markerList.splice(index, 1);\n }\n this.session.selectionMarkerCount = markerList.length;\n };\n this.$onAddRange = function (e) {\n this.addSelectionMarker(e.range);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onRemoveRange = function (e) {\n this.removeSelectionMarkers(e.ranges);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onMultiSelect = function (e) {\n if (this.inMultiSelectMode)\n return;\n this.inMultiSelectMode = true;\n this.setStyle(\"ace_multiselect\");\n this.keyBinding.addKeyboardHandler(commands.keyboardHandler);\n this.commands.setDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n };\n this.$onSingleSelect = function (e) {\n if (this.session.multiSelect.inVirtualMode)\n return;\n this.inMultiSelectMode = false;\n this.unsetStyle(\"ace_multiselect\");\n this.keyBinding.removeKeyboardHandler(commands.keyboardHandler);\n this.commands.removeDefaultHandler(\"exec\", this.$onMultiSelectExec);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n this._emit(\"changeSelection\");\n };\n this.$onMultiSelectExec = function (e) {\n var command = e.command;\n var editor = e.editor;\n if (!editor.multiSelect)\n return;\n if (!command.multiSelectAction) {\n var result = command.exec(editor, e.args || {});\n editor.multiSelect.addRange(editor.multiSelect.toOrientedRange());\n editor.multiSelect.mergeOverlappingRanges();\n }\n else if (command.multiSelectAction == \"forEach\") {\n result = editor.forEachSelection(command, e.args);\n }\n else if (command.multiSelectAction == \"forEachLine\") {\n result = editor.forEachSelection(command, e.args, true);\n }\n else if (command.multiSelectAction == \"single\") {\n editor.exitMultiSelectMode();\n result = command.exec(editor, e.args || {});\n }\n else {\n result = command.multiSelectAction(editor, e.args || {});\n }\n return result;\n };\n this.forEachSelection = function (cmd, args, options) {\n if (this.inVirtualSelectionMode)\n return;\n var keepOrder = options && options.keepOrder;\n var $byLines = options == true || options && options.$byLines;\n var session = this.session;\n var selection = this.selection;\n var rangeList = selection.rangeList;\n var ranges = (keepOrder ? selection : rangeList).ranges;\n var result;\n if (!ranges.length)\n return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n var reg = selection._eventRegistry;\n selection._eventRegistry = {};\n var tmpSel = new Selection(session);\n this.inVirtualSelectionMode = true;\n for (var i = ranges.length; i--;) {\n if ($byLines) {\n while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row)\n i--;\n }\n tmpSel.fromOrientedRange(ranges[i]);\n tmpSel.index = i;\n this.selection = session.selection = tmpSel;\n var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {});\n if (!result && cmdResult !== undefined)\n result = cmdResult;\n tmpSel.toOrientedRange(ranges[i]);\n }\n tmpSel.detach();\n this.selection = session.selection = selection;\n this.inVirtualSelectionMode = false;\n selection._eventRegistry = reg;\n selection.mergeOverlappingRanges();\n if (selection.ranges[0])\n selection.fromOrientedRange(selection.ranges[0]);\n var anim = this.renderer.$scrollAnimation;\n this.onCursorChange();\n this.onSelectionChange();\n if (anim && anim.from == anim.to)\n this.renderer.animateScrolling(anim.from);\n return result;\n };\n this.exitMultiSelectMode = function () {\n if (!this.inMultiSelectMode || this.inVirtualSelectionMode)\n return;\n this.multiSelect.toSingleRange();\n };\n this.getSelectedText = function () {\n var text = \"\";\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var ranges = this.multiSelect.rangeList.ranges;\n var buf = [];\n for (var i = 0; i < ranges.length; i++) {\n buf.push(this.session.getTextRange(ranges[i]));\n }\n var nl = this.session.getDocument().getNewLineCharacter();\n text = buf.join(nl);\n if (text.length == (buf.length - 1) * nl.length)\n text = \"\";\n }\n else if (!this.selection.isEmpty()) {\n text = this.session.getTextRange(this.getSelectionRange());\n }\n return text;\n };\n this.$checkMultiselectChange = function (e, anchor) {\n if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {\n var range = this.multiSelect.ranges[0];\n if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor)\n return;\n var pos = anchor == this.multiSelect.anchor\n ? range.cursor == range.start ? range.end : range.start\n : range.cursor;\n if (pos.row != anchor.row\n || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column)\n this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange());\n else\n this.multiSelect.mergeOverlappingRanges();\n }\n };\n this.findAll = function (needle, options, additive) {\n options = options || {};\n options.needle = needle || options.needle;\n if (options.needle == undefined) {\n var range = this.selection.isEmpty()\n ? this.selection.getWordRange()\n : this.selection.getRange();\n options.needle = this.session.getTextRange(range);\n }\n this.$search.set(options);\n var ranges = this.$search.findAll(this.session);\n if (!ranges.length)\n return 0;\n var selection = this.multiSelect;\n if (!additive)\n selection.toSingleRange(ranges[0]);\n for (var i = ranges.length; i--;)\n selection.addRange(ranges[i], true);\n if (range && selection.rangeList.rangeAtPoint(range.start))\n selection.addRange(range, true);\n return ranges.length;\n };\n this.selectMoreLines = function (dir, skip) {\n var range = this.selection.toOrientedRange();\n var isBackwards = range.cursor == range.end;\n var screenLead = this.session.documentToScreenPosition(range.cursor);\n if (this.selection.$desiredColumn)\n screenLead.column = this.selection.$desiredColumn;\n var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column);\n if (!range.isEmpty()) {\n var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start);\n var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column);\n }\n else {\n var anchor = lead;\n }\n if (isBackwards) {\n var newRange = Range.fromPoints(lead, anchor);\n newRange.cursor = newRange.start;\n }\n else {\n var newRange = Range.fromPoints(anchor, lead);\n newRange.cursor = newRange.end;\n }\n newRange.desiredColumn = screenLead.column;\n if (!this.selection.inMultiSelectMode) {\n this.selection.addRange(range);\n }\n else {\n if (skip)\n var toRemove = range.cursor;\n }\n this.selection.addRange(newRange);\n if (toRemove)\n this.selection.substractPoint(toRemove);\n };\n this.transposeSelections = function (dir) {\n var session = this.session;\n var sel = session.multiSelect;\n var all = sel.ranges;\n for (var i = all.length; i--;) {\n var range = all[i];\n if (range.isEmpty()) {\n var tmp = session.getWordRange(range.start.row, range.start.column);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n range.end.row = tmp.end.row;\n range.end.column = tmp.end.column;\n }\n }\n sel.mergeOverlappingRanges();\n var words = [];\n for (var i = all.length; i--;) {\n var range = all[i];\n words.unshift(session.getTextRange(range));\n }\n if (dir < 0)\n words.unshift(words.pop());\n else\n words.push(words.shift());\n for (var i = all.length; i--;) {\n var range = all[i];\n var tmp = range.clone();\n session.replace(range, words[i]);\n range.start.row = tmp.start.row;\n range.start.column = tmp.start.column;\n }\n sel.fromOrientedRange(sel.ranges[0]);\n };\n this.selectMore = function (dir, skip, stopAtFirst) {\n var session = this.session;\n var sel = session.multiSelect;\n var range = sel.toOrientedRange();\n if (range.isEmpty()) {\n range = session.getWordRange(range.start.row, range.start.column);\n range.cursor = dir == -1 ? range.start : range.end;\n this.multiSelect.addRange(range);\n if (stopAtFirst)\n return;\n }\n var needle = session.getTextRange(range);\n var newRange = find(session, needle, dir);\n if (newRange) {\n newRange.cursor = dir == -1 ? newRange.start : newRange.end;\n this.session.unfold(newRange);\n this.multiSelect.addRange(newRange);\n this.renderer.scrollCursorIntoView(null, 0.5);\n }\n if (skip)\n this.multiSelect.substractPoint(range.cursor);\n };\n this.alignCursors = function () {\n var session = this.session;\n var sel = session.multiSelect;\n var ranges = sel.ranges;\n var row = -1;\n var sameRowRanges = ranges.filter(function (r) {\n if (r.cursor.row == row)\n return true;\n row = r.cursor.row;\n });\n if (!ranges.length || sameRowRanges.length == ranges.length - 1) {\n var range = this.selection.getRange();\n var fr = range.start.row, lr = range.end.row;\n var guessRange = fr == lr;\n if (guessRange) {\n var max = this.session.getLength();\n var line;\n do {\n line = this.session.getLine(lr);\n } while (/[=:]/.test(line) && ++lr < max);\n do {\n line = this.session.getLine(fr);\n } while (/[=:]/.test(line) && --fr > 0);\n if (fr < 0)\n fr = 0;\n if (lr >= max)\n lr = max - 1;\n }\n var lines = this.session.removeFullLines(fr, lr);\n lines = this.$reAlignText(lines, guessRange);\n this.session.insert({ row: fr, column: 0 }, lines.join(\"\\n\") + \"\\n\");\n if (!guessRange) {\n range.start.column = 0;\n range.end.column = lines[lines.length - 1].length;\n }\n this.selection.setRange(range);\n }\n else {\n sameRowRanges.forEach(function (r) {\n sel.substractPoint(r.cursor);\n });\n var maxCol = 0;\n var minSpace = Infinity;\n var spaceOffsets = ranges.map(function (r) {\n var p = r.cursor;\n var line = session.getLine(p.row);\n var spaceOffset = line.substr(p.column).search(/\\S/g);\n if (spaceOffset == -1)\n spaceOffset = 0;\n if (p.column > maxCol)\n maxCol = p.column;\n if (spaceOffset < minSpace)\n minSpace = spaceOffset;\n return spaceOffset;\n });\n ranges.forEach(function (r, i) {\n var p = r.cursor;\n var l = maxCol - p.column;\n var d = spaceOffsets[i] - minSpace;\n if (l > d)\n session.insert(p, lang.stringRepeat(\" \", l - d));\n else\n session.remove(new Range(p.row, p.column, p.row, p.column - l + d));\n r.start.column = r.end.column = maxCol;\n r.start.row = r.end.row = p.row;\n r.cursor = r.end;\n });\n sel.fromOrientedRange(ranges[0]);\n this.renderer.updateCursor();\n this.renderer.updateBackMarkers();\n }\n };\n this.$reAlignText = function (lines, forceLeft) {\n var isLeftAligned = true, isRightAligned = true;\n var startW, textW, endW;\n return lines.map(function (line) {\n var m = line.match(/(\\s*)(.*?)(\\s*)([=:].*)/);\n if (!m)\n return [line];\n if (startW == null) {\n startW = m[1].length;\n textW = m[2].length;\n endW = m[3].length;\n return m;\n }\n if (startW + textW + endW != m[1].length + m[2].length + m[3].length)\n isRightAligned = false;\n if (startW != m[1].length)\n isLeftAligned = false;\n if (startW > m[1].length)\n startW = m[1].length;\n if (textW < m[2].length)\n textW = m[2].length;\n if (endW > m[3].length)\n endW = m[3].length;\n return m;\n }).map(forceLeft ? alignLeft :\n isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign);\n function spaces(n) {\n return lang.stringRepeat(\" \", n);\n }\n function alignLeft(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(textW - m[2].length + endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function alignRight(m) {\n return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n function unAlign(m) {\n return !m[2] ? m[0] : spaces(startW) + m[2]\n + spaces(endW)\n + m[4].replace(/^([=:])\\s+/, \"$1 \");\n }\n };\n}).call(Editor.prototype);\nfunction isSamePoint(p1, p2) {\n return p1.row == p2.row && p1.column == p2.column;\n}\nexports.onSessionChange = function (e) {\n var session = e.session;\n if (session && !session.multiSelect) {\n session.$selectionMarkers = [];\n session.selection.$initRangeList();\n session.multiSelect = session.selection;\n }\n this.multiSelect = session && session.multiSelect;\n var oldSession = e.oldSession;\n if (oldSession) {\n oldSession.multiSelect.off(\"addRange\", this.$onAddRange);\n oldSession.multiSelect.off(\"removeRange\", this.$onRemoveRange);\n oldSession.multiSelect.off(\"multiSelect\", this.$onMultiSelect);\n oldSession.multiSelect.off(\"singleSelect\", this.$onSingleSelect);\n oldSession.multiSelect.lead.off(\"change\", this.$checkMultiselectChange);\n oldSession.multiSelect.anchor.off(\"change\", this.$checkMultiselectChange);\n }\n if (session) {\n session.multiSelect.on(\"addRange\", this.$onAddRange);\n session.multiSelect.on(\"removeRange\", this.$onRemoveRange);\n session.multiSelect.on(\"multiSelect\", this.$onMultiSelect);\n session.multiSelect.on(\"singleSelect\", this.$onSingleSelect);\n session.multiSelect.lead.on(\"change\", this.$checkMultiselectChange);\n session.multiSelect.anchor.on(\"change\", this.$checkMultiselectChange);\n }\n if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) {\n if (session.selection.inMultiSelectMode)\n this.$onMultiSelect();\n else\n this.$onSingleSelect();\n }\n};\nfunction MultiSelect(editor) {\n if (editor.$multiselectOnSessionChange)\n return;\n editor.$onAddRange = editor.$onAddRange.bind(editor);\n editor.$onRemoveRange = editor.$onRemoveRange.bind(editor);\n editor.$onMultiSelect = editor.$onMultiSelect.bind(editor);\n editor.$onSingleSelect = editor.$onSingleSelect.bind(editor);\n editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor);\n editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor);\n editor.$multiselectOnSessionChange(editor);\n editor.on(\"changeSession\", editor.$multiselectOnSessionChange);\n editor.on(\"mousedown\", onMouseDown);\n editor.commands.addCommands(commands.defaultCommands);\n addAltCursorListeners(editor);\n}\nfunction addAltCursorListeners(editor) {\n if (!editor.textInput)\n return;\n var el = editor.textInput.getElement();\n var altCursor = false;\n event.addListener(el, \"keydown\", function (e) {\n var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey);\n if (editor.$blockSelectEnabled && altDown) {\n if (!altCursor) {\n editor.renderer.setMouseCursor(\"crosshair\");\n altCursor = true;\n }\n }\n else if (altCursor) {\n reset();\n }\n }, editor);\n event.addListener(el, \"keyup\", reset, editor);\n event.addListener(el, \"blur\", reset, editor);\n function reset(e) {\n if (altCursor) {\n editor.renderer.setMouseCursor(\"\");\n altCursor = false;\n }\n }\n}\nexports.MultiSelect = MultiSelect;\nrequire(\"./config\").defineOptions(Editor.prototype, \"editor\", {\n enableMultiselect: {\n set: function (val) {\n MultiSelect(this);\n if (val) {\n this.on(\"mousedown\", onMouseDown);\n }\n else {\n this.off(\"mousedown\", onMouseDown);\n }\n },\n value: true\n },\n enableBlockSelect: {\n set: function (val) {\n this.$blockSelectEnabled = val;\n },\n value: true\n }\n});\n\n});\n\nace.define(\"ace/mode/folding/fold_mode\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\n(function () {\n this.foldingStartMarker = null;\n this.foldingStopMarker = null;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.foldingStartMarker.test(line))\n return \"start\";\n if (foldStyle == \"markbeginend\"\n && this.foldingStopMarker\n && this.foldingStopMarker.test(line))\n return \"end\";\n return \"\";\n };\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n return null;\n };\n this.indentationBlock = function (session, row, column) {\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1)\n return;\n var startColumn = column || line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n var level = session.getLine(row).search(re);\n if (level == -1)\n continue;\n if (level <= startLevel) {\n var token = session.getTokenAt(row, 0);\n if (!token || token.type !== \"string\")\n break;\n }\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.openingBracketBlock = function (session, bracket, row, column, typeRe) {\n var start = { row: row, column: column + 1 };\n var end = session.$findClosingBracket(bracket, start, typeRe);\n if (!end)\n return;\n var fw = session.foldWidgets[end.row];\n if (fw == null)\n fw = session.getFoldWidget(end.row);\n if (fw == \"start\" && end.row > start.row) {\n end.row--;\n end.column = session.getLine(end.row).length;\n }\n return Range.fromPoints(start, end);\n };\n this.closingBracketBlock = function (session, bracket, row, column, typeRe) {\n var end = { row: row, column: column };\n var start = session.$findOpeningBracket(bracket, end);\n if (!start)\n return;\n start.column++;\n end.column--;\n return Range.fromPoints(start, end);\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/ext/error_marker\",[\"require\",\"exports\",\"module\",\"ace/line_widgets\",\"ace/lib/dom\",\"ace/range\",\"ace/config\"], function(require, exports, module){\"use strict\";\nvar LineWidgets = require(\"../line_widgets\").LineWidgets;\nvar dom = require(\"../lib/dom\");\nvar Range = require(\"../range\").Range;\nvar nls = require(\"../config\").nls;\nfunction binarySearch(array, needle, comparator) {\n var first = 0;\n var last = array.length - 1;\n while (first <= last) {\n var mid = (first + last) >> 1;\n var c = comparator(needle, array[mid]);\n if (c > 0)\n first = mid + 1;\n else if (c < 0)\n last = mid - 1;\n else\n return mid;\n }\n return -(first + 1);\n}\nfunction findAnnotations(session, row, dir) {\n var annotations = session.getAnnotations().sort(Range.comparePoints);\n if (!annotations.length)\n return;\n var i = binarySearch(annotations, { row: row, column: -1 }, Range.comparePoints);\n if (i < 0)\n i = -i - 1;\n if (i >= annotations.length)\n i = dir > 0 ? 0 : annotations.length - 1;\n else if (i === 0 && dir < 0)\n i = annotations.length - 1;\n var annotation = annotations[i];\n if (!annotation || !dir)\n return;\n if (annotation.row === row) {\n do {\n annotation = annotations[i += dir];\n } while (annotation && annotation.row === row);\n if (!annotation)\n return annotations.slice();\n }\n var matched = [];\n row = annotation.row;\n do {\n matched[dir < 0 ? \"unshift\" : \"push\"](annotation);\n annotation = annotations[i += dir];\n } while (annotation && annotation.row == row);\n return matched.length && matched;\n}\nexports.showErrorMarker = function (editor, dir) {\n var session = editor.session;\n if (!session.widgetManager) {\n session.widgetManager = new LineWidgets(session);\n session.widgetManager.attach(editor);\n }\n var pos = editor.getCursorPosition();\n var row = pos.row;\n var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function (w) {\n return w.type == \"errorMarker\";\n })[0];\n if (oldWidget) {\n oldWidget.destroy();\n }\n else {\n row -= dir;\n }\n var annotations = findAnnotations(session, row, dir);\n var gutterAnno;\n if (annotations) {\n var annotation = annotations[0];\n pos.column = (annotation.pos && typeof annotation.column != \"number\"\n ? annotation.pos.sc\n : annotation.column) || 0;\n pos.row = annotation.row;\n gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row];\n }\n else if (oldWidget) {\n return;\n }\n else {\n gutterAnno = {\n text: [nls(\"Looks good!\")],\n className: \"ace_ok\"\n };\n }\n editor.session.unfold(pos.row);\n editor.selection.moveToPosition(pos);\n var w = {\n row: pos.row,\n fixedWidth: true,\n coverGutter: true,\n el: dom.createElement(\"div\"),\n type: \"errorMarker\"\n };\n var el = w.el.appendChild(dom.createElement(\"div\"));\n var arrow = w.el.appendChild(dom.createElement(\"div\"));\n arrow.className = \"error_widget_arrow \" + gutterAnno.className;\n var left = editor.renderer.$cursorLayer\n .getPixelPosition(pos).left;\n arrow.style.left = left + editor.renderer.gutterWidth - 5 + \"px\";\n w.el.className = \"error_widget_wrapper\";\n el.className = \"error_widget \" + gutterAnno.className;\n el.innerHTML = gutterAnno.text.join(\"
\");\n el.appendChild(dom.createElement(\"div\"));\n var kb = function (_, hashId, keyString) {\n if (hashId === 0 && (keyString === \"esc\" || keyString === \"return\")) {\n w.destroy();\n return { command: \"null\" };\n }\n };\n w.destroy = function () {\n if (editor.$mouseHandler.isMousePressed)\n return;\n editor.keyBinding.removeKeyboardHandler(kb);\n session.widgetManager.removeLineWidget(w);\n editor.off(\"changeSelection\", w.destroy);\n editor.off(\"changeSession\", w.destroy);\n editor.off(\"mouseup\", w.destroy);\n editor.off(\"change\", w.destroy);\n };\n editor.keyBinding.addKeyboardHandler(kb);\n editor.on(\"changeSelection\", w.destroy);\n editor.on(\"changeSession\", w.destroy);\n editor.on(\"mouseup\", w.destroy);\n editor.on(\"change\", w.destroy);\n editor.session.widgetManager.addLineWidget(w);\n w.el.onmousedown = editor.focus.bind(editor);\n editor.renderer.scrollCursorIntoView(null, 0.5, { bottom: w.el.offsetHeight });\n};\ndom.importCssString(\"\\n .error_widget_wrapper {\\n background: inherit;\\n color: inherit;\\n border:none\\n }\\n .error_widget {\\n border-top: solid 2px;\\n border-bottom: solid 2px;\\n margin: 5px 0;\\n padding: 10px 40px;\\n white-space: pre-wrap;\\n }\\n .error_widget.ace_error, .error_widget_arrow.ace_error{\\n border-color: #ff5a5a\\n }\\n .error_widget.ace_warning, .error_widget_arrow.ace_warning{\\n border-color: #F1D817\\n }\\n .error_widget.ace_info, .error_widget_arrow.ace_info{\\n border-color: #5a5a5a\\n }\\n .error_widget.ace_ok, .error_widget_arrow.ace_ok{\\n border-color: #5aaa5a\\n }\\n .error_widget_arrow {\\n position: absolute;\\n border: solid 5px;\\n border-top-color: transparent!important;\\n border-right-color: transparent!important;\\n border-left-color: transparent!important;\\n top: -5px;\\n }\\n\", \"error_marker.css\", false);\n\n});\n\nace.define(\"ace/ace\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/range\",\"ace/editor\",\"ace/edit_session\",\"ace/undomanager\",\"ace/virtual_renderer\",\"ace/worker/worker_client\",\"ace/keyboard/hash_handler\",\"ace/placeholder\",\"ace/multi_select\",\"ace/mode/folding/fold_mode\",\"ace/theme/textmate\",\"ace/ext/error_marker\",\"ace/config\",\"ace/loader_build\"], function(require, exports, module){/**\n * The main class required to set up an Ace instance in the browser.\n *\n * @class Ace\n **/\n\"use strict\";\nrequire(\"./loader_build\")(exports)\nvar dom = require(\"./lib/dom\");\nvar Range = require(\"./range\").Range;\nvar Editor = require(\"./editor\").Editor;\nvar EditSession = require(\"./edit_session\").EditSession;\nvar UndoManager = require(\"./undomanager\").UndoManager;\nvar Renderer = require(\"./virtual_renderer\").VirtualRenderer;\nrequire(\"./worker/worker_client\");\nrequire(\"./keyboard/hash_handler\");\nrequire(\"./placeholder\");\nrequire(\"./multi_select\");\nrequire(\"./mode/folding/fold_mode\");\nrequire(\"./theme/textmate\");\nrequire(\"./ext/error_marker\");\nexports.config = require(\"./config\");\nexports.edit = function (el, options) {\n if (typeof el == \"string\") {\n var _id = el;\n el = document.getElementById(_id);\n if (!el)\n throw new Error(\"ace.edit can't find div #\" + _id);\n }\n if (el && el.env && el.env.editor instanceof Editor)\n return el.env.editor;\n var value = \"\";\n if (el && /input|textarea/i.test(el.tagName)) {\n var oldNode = el;\n value = oldNode.value;\n el = dom.createElement(\"pre\");\n oldNode.parentNode.replaceChild(el, oldNode);\n }\n else if (el) {\n value = el.textContent;\n el.innerHTML = \"\";\n }\n var doc = exports.createEditSession(value);\n var editor = new Editor(new Renderer(el), doc, options);\n var env = {\n document: doc,\n editor: editor,\n onResize: editor.resize.bind(editor, null)\n };\n if (oldNode)\n env.textarea = oldNode;\n editor.on(\"destroy\", function () {\n env.editor.container.env = null; // prevent memory leak on old ie\n });\n editor.container.env = editor.env = env;\n return editor;\n};\nexports.createEditSession = function (text, mode) {\n var doc = new EditSession(text, mode);\n doc.setUndoManager(new UndoManager());\n return doc;\n};\nexports.Range = Range;\nexports.Editor = Editor;\nexports.EditSession = EditSession;\nexports.UndoManager = UndoManager;\nexports.VirtualRenderer = Renderer;\nexports.version = exports.config.version;\n\n}); (function() {\n ace.require([\"ace/ace\"], function(a) {\n if (a) {\n a.config.init(true);\n a.define = ace.define;\n }\n var global = (function () {\n return this;\n })();\n if (!global && typeof window != \"undefined\") global = window; // can happen in strict mode\n if (!global && typeof self != \"undefined\") global = self; // can happen in webworker\n \n if (!global.ace)\n global.ace = a;\n for (var key in a) if (a.hasOwnProperty(key))\n global.ace[key] = a[key];\n global.ace[\"default\"] = global.ace;\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = global.ace;\n }\n });\n })();\n ","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar transitionalDefaults = require('../defaults/transitional');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new Cancel('canceled');\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar enhanceError = require('../core/enhanceError');\nvar transitionalDefaults = require('./transitional');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.26.1\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","/**\r\n * DevExtreme (esm/__internal/m_draggable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../core/templates/empty_template\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../core/utils/common\";\r\nimport {\r\n Deferred,\r\n fromPromise,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n quadToObject\r\n} from \"../core/utils/string\";\r\nimport {\r\n isFunction,\r\n isNumeric,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave,\r\n move as dragEventMove,\r\n start as dragEventStart\r\n} from \"../events/drag\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n addNamespace,\r\n needSkipEvent\r\n} from \"../events/utils/index\";\r\nimport Animator from \"../ui/scroll_view/animator\";\r\nvar window = getWindow();\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventStart, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = addNamespace(dragEventMove, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = addNamespace(dragEventEnd, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = addNamespace(dragEventEnter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = addNamespace(dragEventLeave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, DRAGGABLE);\r\nvar KEYDOWN_EVENT_NAME = addNamespace(KEYDOWN_EVENT, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = event => ({\r\n x: event.pageX - $(window).scrollLeft(),\r\n y: event.pageY - $(window).scrollTop()\r\n});\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nclass ScrollHelper {\r\n constructor(orientation, component) {\r\n this._$scrollableAtPointer = null;\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n updateScrollable(elements, mousePosition) {\r\n var isScrollableFound = false;\r\n elements.some(element => {\r\n var $element = $(element);\r\n var isTargetOverOverlayWrapper = $element.hasClass(OVERLAY_WRAPPER_CLASS);\r\n var isTargetOverOverlayContent = $element.hasClass(OVERLAY_CONTENT_CLASS);\r\n if (isTargetOverOverlayWrapper || isTargetOverOverlayContent) {\r\n return true\r\n }\r\n isScrollableFound = this._trySetScrollable(element, mousePosition);\r\n return isScrollableFound\r\n });\r\n if (!isScrollableFound) {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0\r\n }\r\n }\r\n isScrolling() {\r\n return !!this._scrollSpeed\r\n }\r\n isScrollable($element) {\r\n return (\"auto\" === $element.css(this._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(this._scrollSizeProp) > Math.ceil(\"width\" === this._sizeAttr ? getWidth($element) : getHeight($element))\r\n }\r\n _trySetScrollable(element, mousePosition) {\r\n var $element = $(element);\r\n var distanceToBorders;\r\n var sensitivity = this._component.option(\"scrollSensitivity\");\r\n var isScrollable = this.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = this._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[this._limitProps.start]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = -this._calculateScrollSpeed(distanceToBorders[this._limitProps.start]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else if (sensitivity > distanceToBorders[this._limitProps.end]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = this._calculateScrollSpeed(distanceToBorders[this._limitProps.end]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n this._preventScroll = false\r\n }\r\n }\r\n return isScrollable\r\n }\r\n _calculateDistanceToBorders($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = getBoundingRect(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n }\r\n return {}\r\n }\r\n _calculateScrollSpeed(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(Math.pow((sensitivity - distance) / sensitivity, 2) * maxSpeed)\r\n }\r\n scrollByStep() {\r\n if (this._$scrollableAtPointer && this._scrollSpeed) {\r\n if (this._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = this._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[this._limitProps.start] + this._scrollSpeed;\r\n scrollableInstance.scrollTo({\r\n [this._limitProps.start]: nextScrollPosition\r\n })\r\n }\r\n } else {\r\n var _nextScrollPosition = this._$scrollableAtPointer[this._scrollValue]() + this._scrollSpeed;\r\n this._$scrollableAtPointer[this._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = this._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n this._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n }\r\n reset() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n }\r\n isOutsideScrollable($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = getBoundingRect($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n }\r\n}\r\nvar ScrollAnimator = Animator.inherit({\r\n ctor(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = DOMComponent.inherit({\r\n reset: noop,\r\n dragMove: noop,\r\n dragEnter: noop,\r\n dragLeave: noop,\r\n dragEnd(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return Deferred().resolve()\r\n },\r\n _fireRemoveEvent: noop,\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDragCancel: null,\r\n onCancelByEsc: false,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase.apply(this, arguments);\r\n extend(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this);\r\n this._initScrollTop = 0;\r\n this._initScrollLeft = 0\r\n },\r\n _normalizeCursorOffset(offset) {\r\n if (isObject(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = splitPair(offset).map(value => parseFloat(value));\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset(offset, options) {\r\n if (isFunction(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var {\r\n event: event\r\n } = options;\r\n var $element = $(options.itemElement);\r\n var $dragElement = $(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = locate($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition(options) {\r\n var $dragElement = $(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = locate($dragElement)\r\n },\r\n _startAnimator() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix(className) {\r\n var componentName = this.NAME;\r\n return dasherize(componentName) + (className ? \"-\".concat(className) : \"\")\r\n },\r\n _getItemsSelector() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: ($target, event) => {\r\n var targetGroup = this.option(\"group\");\r\n var sourceGroup = this._getSourceDraggable().option(\"group\");\r\n var $scrollable = this._getScrollable($target);\r\n if (this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n eventsEngine.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n eventsEngine.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n eventsEngine.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n eventsEngine.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this));\r\n if (this.option(\"onCancelByEsc\")) {\r\n eventsEngine.on($element, KEYDOWN_EVENT_NAME, this._keydownHandler.bind(this))\r\n }\r\n },\r\n _dragElementIsCloned() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs($element, $container) {\r\n return {\r\n container: getPublicElement($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: getPublicElement($element)\r\n }\r\n }\r\n },\r\n _createDragElement($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = $(\"
\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else if (clone) {\r\n result = $(\"
\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers() {\r\n eventsEngine.off(this._$content(), \".\".concat(DRAGGABLE));\r\n eventsEngine.off(this._getArea(), \".\".concat(DRAGGABLE))\r\n },\r\n _move(position, $element) {\r\n move($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = $(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler(e) {\r\n if (needSkipEvent(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + locate($element).left - getWidth($element) / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + locate($element).top - getHeight($element) / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = $(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler(e) {\r\n var $element = this._getDraggableElement(e);\r\n this.dragInProgress = true;\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n if (!this._hasClonedDraggable() && this.option(\"autoScroll\")) {\r\n this._initScrollTop = this._getScrollableScrollTop();\r\n this._initScrollLeft = this._getScrollableScrollLeft();\r\n initialOffset = this._getDraggableElementOffset(initialOffset.left, initialOffset.top)\r\n }\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition(extend({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n this._getAction(\"onDraggableElementShown\")(_extends(_extends({}, dragStartArgs), {\r\n dragElement: $dragElement\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = getOuterWidth($area);\r\n var areaHeight = getOuterHeight($area);\r\n var elementWidth = getWidth($dragElement);\r\n var elementHeight = getHeight($dragElement);\r\n var startOffset_left = $dragElement.offset().left - areaOffset.left,\r\n startOffset_top = $dragElement.offset().top - areaOffset.top;\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset_left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset_left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset_top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset_top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset($area) {\r\n var offset = $area && positionUtils.offset($area);\r\n return offset || {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor($element) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if (isFunction(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return quadToObject(boundOffset)\r\n },\r\n _getArea() {\r\n var area = this.option(\"boundary\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n return $(area)\r\n },\r\n _getContainer() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = viewPort()\r\n }\r\n return $(container)\r\n },\r\n _getDraggableElementOffset(initialOffsetX, initialOffsetY) {\r\n var _a, _b, _c, _d;\r\n var initScrollTop = this._initScrollTop;\r\n var initScrollLeft = this._initScrollLeft;\r\n var scrollTop = this._getScrollableScrollTop();\r\n var scrollLeft = this._getScrollableScrollLeft();\r\n var elementPosition = $(this.element()).css(\"position\");\r\n var isFixedPosition = \"fixed\" === elementPosition;\r\n var result = {\r\n left: (null !== (_b = null === (_a = this._startPosition) || void 0 === _a ? void 0 : _a.left) && void 0 !== _b ? _b : 0) + initialOffsetX,\r\n top: (null !== (_d = null === (_c = this._startPosition) || void 0 === _c ? void 0 : _c.top) && void 0 !== _d ? _d : 0) + initialOffsetY\r\n };\r\n if (isFixedPosition || this._hasClonedDraggable()) {\r\n return result\r\n }\r\n return {\r\n left: isNumeric(scrollLeft) ? result.left + scrollLeft - initScrollLeft : result.left,\r\n top: isNumeric(scrollTop) ? result.top + scrollTop - initScrollTop : result.top\r\n }\r\n },\r\n _hasClonedDraggable() {\r\n return this.option(\"clone\") || this.option(\"dragTemplate\")\r\n },\r\n _dragMoveHandler(e) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = this._getDraggableElementOffset(e.offset.x, e.offset.y);\r\n this._move(offset);\r\n this._updateScrollable(e);\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable(e) {\r\n if (this.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.$element().get(0));\r\n this._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n this._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n _getScrollable($element) {\r\n var $scrollable;\r\n $element.parents().toArray().some(parent => {\r\n var $parent = $(parent);\r\n if (this._horizontalScrollHelper.isScrollable($parent) || this._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n return false\r\n });\r\n return $scrollable\r\n },\r\n _getScrollableScrollTop() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollTop()) && void 0 !== _b ? _b : 0\r\n },\r\n _getScrollableScrollLeft() {\r\n var _a, _b;\r\n return null !== (_b = null === (_a = this._getScrollable($(this.element()))) || void 0 === _a ? void 0 : _a.scrollLeft()) && void 0 !== _b ? _b : 0\r\n },\r\n _defaultActionArgs() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: getPublicElement(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler(e) {\r\n var d = Deferred();\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n this.dragInProgress = false;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n when(fromPromise(dragEndEventArgs.cancel)).done(cancel => {\r\n if (!cancel) {\r\n if (targetDraggable !== this) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n when(fromPromise(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(() => {\r\n if (needRevertPosition) {\r\n this._revertItemToInitialPosition()\r\n }\r\n this._resetDragOptions(targetDraggable)\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.element());\r\n var firstWidgetElement = elements.filter(element => {\r\n var $element = $(element);\r\n if ($element.hasClass(this._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n return false\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = $(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _keydownHandler(e) {\r\n if (this.dragInProgress && \"Escape\" === e.key) {\r\n this._keydownEscapeHandler(e)\r\n }\r\n },\r\n _keydownEscapeHandler(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if (!$sourceElement) {\r\n return\r\n }\r\n var dragCancelEventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragCancel\")(dragCancelEventArgs);\r\n if (dragCancelEventArgs.cancel) {\r\n return\r\n }\r\n this.dragInProgress = false;\r\n null === sourceDraggable || void 0 === sourceDraggable ? void 0 : sourceDraggable._toggleDraggingClass(false);\r\n this._detachEventHandlers();\r\n this._revertItemToInitialPosition();\r\n var targetDraggable = this._getTargetDraggable();\r\n this._resetDragOptions(targetDraggable);\r\n this._attachEventHandlers()\r\n },\r\n _getAction(name) {\r\n return this[\"_\".concat(name, \"Action\")] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: () => ANONYMOUS_TEMPLATE_NAME,\r\n _initTemplates() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n $(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n case \"onDragCancel\":\r\n case \"onDraggableElementShown\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"onCancelByEsc\":\r\n this._keydownHandler();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable() {\r\n targetDraggable = null\r\n },\r\n _resetDragOptions(targetDraggable) {\r\n this.reset();\r\n targetDraggable.reset();\r\n this._stopAnimator();\r\n this._horizontalScrollHelper.reset();\r\n this._verticalScrollHelper.reset();\r\n this._resetDragElement();\r\n this._resetSourceElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable()\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\nregisterComponent(DRAGGABLE, Draggable);\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n setStyle\r\n} from \"../core/utils/style\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw) {\r\n return pairToObject(raw)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"
\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if (of.preventDefault) {\r\n h.atLocation = of.pageX;\r\n v.atLocation = of.pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $(of);\r\n if (isWindow(of [0])) {\r\n h.atLocation = of.scrollLeft();\r\n v.atLocation = of.scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth(of);\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight(of)\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth(of);\r\n v.atSize = getHeight(of)\r\n } else {\r\n var ofRect = getBoundingRect(of.get(0));\r\n var o = getOffsetWithoutScale(of);\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth(of));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight(of))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary && !isWindow(boundary)) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n var newStyleValue = isEmpty ? styleAttr.replace(scale, \"\") : styleAttr;\r\n if (stylePropIsValid) {\r\n setStyle(element, newStyleValue, false)\r\n } else {\r\n var styleAttributeNode = domAdapter.createAttribute(\"style\");\r\n styleAttributeNode.value = newStyleValue;\r\n element.setAttributeNode(styleAttributeNode)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/color.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar standardColorNames = {\r\n aliceblue: \"f0f8ff\",\r\n antiquewhite: \"faebd7\",\r\n aqua: \"00ffff\",\r\n aquamarine: \"7fffd4\",\r\n azure: \"f0ffff\",\r\n beige: \"f5f5dc\",\r\n bisque: \"ffe4c4\",\r\n black: \"000000\",\r\n blanchedalmond: \"ffebcd\",\r\n blue: \"0000ff\",\r\n blueviolet: \"8a2be2\",\r\n brown: \"a52a2a\",\r\n burlywood: \"deb887\",\r\n cadetblue: \"5f9ea0\",\r\n chartreuse: \"7fff00\",\r\n chocolate: \"d2691e\",\r\n coral: \"ff7f50\",\r\n cornflowerblue: \"6495ed\",\r\n cornsilk: \"fff8dc\",\r\n crimson: \"dc143c\",\r\n cyan: \"00ffff\",\r\n darkblue: \"00008b\",\r\n darkcyan: \"008b8b\",\r\n darkgoldenrod: \"b8860b\",\r\n darkgray: \"a9a9a9\",\r\n darkgreen: \"006400\",\r\n darkgrey: \"a9a9a9\",\r\n darkkhaki: \"bdb76b\",\r\n darkmagenta: \"8b008b\",\r\n darkolivegreen: \"556b2f\",\r\n darkorange: \"ff8c00\",\r\n darkorchid: \"9932cc\",\r\n darkred: \"8b0000\",\r\n darksalmon: \"e9967a\",\r\n darkseagreen: \"8fbc8f\",\r\n darkslateblue: \"483d8b\",\r\n darkslategray: \"2f4f4f\",\r\n darkslategrey: \"2f4f4f\",\r\n darkturquoise: \"00ced1\",\r\n darkviolet: \"9400d3\",\r\n deeppink: \"ff1493\",\r\n deepskyblue: \"00bfff\",\r\n dimgray: \"696969\",\r\n dimgrey: \"696969\",\r\n dodgerblue: \"1e90ff\",\r\n feldspar: \"d19275\",\r\n firebrick: \"b22222\",\r\n floralwhite: \"fffaf0\",\r\n forestgreen: \"228b22\",\r\n fuchsia: \"ff00ff\",\r\n gainsboro: \"dcdcdc\",\r\n ghostwhite: \"f8f8ff\",\r\n gold: \"ffd700\",\r\n goldenrod: \"daa520\",\r\n gray: \"808080\",\r\n green: \"008000\",\r\n greenyellow: \"adff2f\",\r\n grey: \"808080\",\r\n honeydew: \"f0fff0\",\r\n hotpink: \"ff69b4\",\r\n indianred: \"cd5c5c\",\r\n indigo: \"4b0082\",\r\n ivory: \"fffff0\",\r\n khaki: \"f0e68c\",\r\n lavender: \"e6e6fa\",\r\n lavenderblush: \"fff0f5\",\r\n lawngreen: \"7cfc00\",\r\n lemonchiffon: \"fffacd\",\r\n lightblue: \"add8e6\",\r\n lightcoral: \"f08080\",\r\n lightcyan: \"e0ffff\",\r\n lightgoldenrodyellow: \"fafad2\",\r\n lightgray: \"d3d3d3\",\r\n lightgreen: \"90ee90\",\r\n lightgrey: \"d3d3d3\",\r\n lightpink: \"ffb6c1\",\r\n lightsalmon: \"ffa07a\",\r\n lightseagreen: \"20b2aa\",\r\n lightskyblue: \"87cefa\",\r\n lightslateblue: \"8470ff\",\r\n lightslategray: \"778899\",\r\n lightslategrey: \"778899\",\r\n lightsteelblue: \"b0c4de\",\r\n lightyellow: \"ffffe0\",\r\n lime: \"00ff00\",\r\n limegreen: \"32cd32\",\r\n linen: \"faf0e6\",\r\n magenta: \"ff00ff\",\r\n maroon: \"800000\",\r\n mediumaquamarine: \"66cdaa\",\r\n mediumblue: \"0000cd\",\r\n mediumorchid: \"ba55d3\",\r\n mediumpurple: \"9370d8\",\r\n mediumseagreen: \"3cb371\",\r\n mediumslateblue: \"7b68ee\",\r\n mediumspringgreen: \"00fa9a\",\r\n mediumturquoise: \"48d1cc\",\r\n mediumvioletred: \"c71585\",\r\n midnightblue: \"191970\",\r\n mintcream: \"f5fffa\",\r\n mistyrose: \"ffe4e1\",\r\n moccasin: \"ffe4b5\",\r\n navajowhite: \"ffdead\",\r\n navy: \"000080\",\r\n oldlace: \"fdf5e6\",\r\n olive: \"808000\",\r\n olivedrab: \"6b8e23\",\r\n orange: \"ffa500\",\r\n orangered: \"ff4500\",\r\n orchid: \"da70d6\",\r\n palegoldenrod: \"eee8aa\",\r\n palegreen: \"98fb98\",\r\n paleturquoise: \"afeeee\",\r\n palevioletred: \"d87093\",\r\n papayawhip: \"ffefd5\",\r\n peachpuff: \"ffdab9\",\r\n peru: \"cd853f\",\r\n pink: \"ffc0cb\",\r\n plum: \"dda0dd\",\r\n powderblue: \"b0e0e6\",\r\n purple: \"800080\",\r\n rebeccapurple: \"663399\",\r\n red: \"ff0000\",\r\n rosybrown: \"bc8f8f\",\r\n royalblue: \"4169e1\",\r\n saddlebrown: \"8b4513\",\r\n salmon: \"fa8072\",\r\n sandybrown: \"f4a460\",\r\n seagreen: \"2e8b57\",\r\n seashell: \"fff5ee\",\r\n sienna: \"a0522d\",\r\n silver: \"c0c0c0\",\r\n skyblue: \"87ceeb\",\r\n slateblue: \"6a5acd\",\r\n slategray: \"708090\",\r\n slategrey: \"708090\",\r\n snow: \"fffafa\",\r\n springgreen: \"00ff7f\",\r\n steelblue: \"4682b4\",\r\n tan: \"d2b48c\",\r\n teal: \"008080\",\r\n thistle: \"d8bfd8\",\r\n tomato: \"ff6347\",\r\n turquoise: \"40e0d0\",\r\n violet: \"ee82ee\",\r\n violetred: \"d02090\",\r\n wheat: \"f5deb3\",\r\n white: \"ffffff\",\r\n whitesmoke: \"f5f5f5\",\r\n yellow: \"ffff00\",\r\n yellowgreen: \"9acd32\"\r\n};\r\nvar standardColorTypes = [{\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10)]\r\n }\r\n}, {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d*\\.*\\d+)\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10), parseFloat(colorString[4])]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16), Number((parseInt(colorString[4], 16) / 255).toFixed(2))]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16), Number((parseInt(colorString[4] + colorString[4], 16) / 255).toFixed(2))]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^hsv\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var v = parseInt(colorString[3], 10);\r\n var rgb = hsvToRgb(h, s, v);\r\n return [rgb[0], rgb[1], rgb[2], 1, [h, s, v]]\r\n }\r\n}, {\r\n re: /^hsl\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var l = parseInt(colorString[3], 10);\r\n var rgb = hslToRgb(h, s, l);\r\n return [rgb[0], rgb[1], rgb[2], 1, null, [h, s, l]]\r\n }\r\n}];\r\nvar _round = Math.round;\r\n\r\nfunction Color(value) {\r\n this.baseColor = value;\r\n var color;\r\n if (value) {\r\n color = String(value).toLowerCase().replace(/ /g, \"\");\r\n color = standardColorNames[color] ? \"#\" + standardColorNames[color] : color;\r\n color = parseColor(color)\r\n }\r\n if (!color) {\r\n this.colorIsInvalid = true\r\n }\r\n color = color || {};\r\n this.r = normalize(color[0]);\r\n this.g = normalize(color[1]);\r\n this.b = normalize(color[2]);\r\n this.a = normalize(color[3], 1, 1);\r\n if (color[4]) {\r\n this.hsv = {\r\n h: color[4][0],\r\n s: color[4][1],\r\n v: color[4][2]\r\n }\r\n } else {\r\n this.hsv = toHsvFromRgb(this.r, this.g, this.b)\r\n }\r\n if (color[5]) {\r\n this.hsl = {\r\n h: color[5][0],\r\n s: color[5][1],\r\n l: color[5][2]\r\n }\r\n } else {\r\n this.hsl = toHslFromRgb(this.r, this.g, this.b)\r\n }\r\n}\r\n\r\nfunction parseColor(color) {\r\n if (\"transparent\" === color) {\r\n return [0, 0, 0, 0]\r\n }\r\n var i = 0;\r\n var ii = standardColorTypes.length;\r\n var str;\r\n for (; i < ii; ++i) {\r\n str = standardColorTypes[i].re.exec(color);\r\n if (str) {\r\n return standardColorTypes[i].process(str)\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction normalize(colorComponent, def, max) {\r\n def = def || 0;\r\n max = max || 255;\r\n return colorComponent < 0 || isNaN(colorComponent) ? def : colorComponent > max ? max : colorComponent\r\n}\r\n\r\nfunction toHexFromRgb(r, g, b) {\r\n return \"#\" + (16777216 | r << 16 | g << 8 | b).toString(16).slice(1)\r\n}\r\n\r\nfunction toHsvFromRgb(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var delta = max - min;\r\n var H;\r\n var S;\r\n var V = max;\r\n S = 0 === max ? 0 : 1 - min / max;\r\n if (max === min) {\r\n H = 0\r\n } else {\r\n switch (max) {\r\n case r:\r\n H = (g - b) / delta * 60;\r\n if (g < b) {\r\n H += 360\r\n }\r\n break;\r\n case g:\r\n H = (b - r) / delta * 60 + 120;\r\n break;\r\n case b:\r\n H = (r - g) / delta * 60 + 240\r\n }\r\n }\r\n S *= 100;\r\n V *= 100 / 255;\r\n return {\r\n h: Math.round(H),\r\n s: Math.round(S),\r\n v: Math.round(V)\r\n }\r\n}\r\n\r\nfunction hsvToRgb(h, s, v) {\r\n var index = Math.floor(h % 360 / 60);\r\n var vMin = (100 - s) * v / 100;\r\n var a = h % 60 / 60 * (v - vMin);\r\n var vInc = vMin + a;\r\n var vDec = v - a;\r\n var r;\r\n var g;\r\n var b;\r\n switch (index) {\r\n case 0:\r\n r = v;\r\n g = vInc;\r\n b = vMin;\r\n break;\r\n case 1:\r\n r = vDec;\r\n g = v;\r\n b = vMin;\r\n break;\r\n case 2:\r\n r = vMin;\r\n g = v;\r\n b = vInc;\r\n break;\r\n case 3:\r\n r = vMin;\r\n g = vDec;\r\n b = v;\r\n break;\r\n case 4:\r\n r = vInc;\r\n g = vMin;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = vMin;\r\n b = vDec\r\n }\r\n return [Math.round(2.55 * r), Math.round(2.55 * g), Math.round(2.55 * b)]\r\n}\r\n\r\nfunction calculateHue(r, g, b, delta) {\r\n var max = Math.max(r, g, b);\r\n switch (max) {\r\n case r:\r\n return (g - b) / delta + (g < b ? 6 : 0);\r\n case g:\r\n return (b - r) / delta + 2;\r\n case b:\r\n return (r - g) / delta + 4\r\n }\r\n}\r\n\r\nfunction toHslFromRgb(r, g, b) {\r\n r = convertTo01Bounds(r, 255);\r\n g = convertTo01Bounds(g, 255);\r\n b = convertTo01Bounds(b, 255);\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var maxMinSum = max + min;\r\n var h;\r\n var s;\r\n var l = maxMinSum / 2;\r\n if (max === min) {\r\n h = s = 0\r\n } else {\r\n var delta = max - min;\r\n if (l > .5) {\r\n s = delta / (2 - maxMinSum)\r\n } else {\r\n s = delta / maxMinSum\r\n }\r\n h = calculateHue(r, g, b, delta);\r\n h /= 6\r\n }\r\n return {\r\n h: _round(360 * h),\r\n s: _round(100 * s),\r\n l: _round(100 * l)\r\n }\r\n}\r\n\r\nfunction makeColorTint(colorPart, h) {\r\n var colorTint = h;\r\n if (\"r\" === colorPart) {\r\n colorTint = h + 1 / 3\r\n }\r\n if (\"b\" === colorPart) {\r\n colorTint = h - 1 / 3\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction modifyColorTint(colorTint) {\r\n if (colorTint < 0) {\r\n colorTint += 1\r\n }\r\n if (colorTint > 1) {\r\n colorTint -= 1\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction hueToRgb(p, q, colorTint) {\r\n colorTint = modifyColorTint(colorTint);\r\n if (colorTint < 1 / 6) {\r\n return p + 6 * (q - p) * colorTint\r\n }\r\n if (colorTint < .5) {\r\n return q\r\n }\r\n if (colorTint < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - colorTint) * 6\r\n }\r\n return p\r\n}\r\n\r\nfunction hslToRgb(h, s, l) {\r\n var r;\r\n var g;\r\n var b;\r\n h = convertTo01Bounds(h, 360);\r\n s = convertTo01Bounds(s, 100);\r\n l = convertTo01Bounds(l, 100);\r\n if (0 === s) {\r\n r = g = b = l\r\n } else {\r\n var q = l < .5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hueToRgb(p, q, makeColorTint(\"r\", h));\r\n g = hueToRgb(p, q, makeColorTint(\"g\", h));\r\n b = hueToRgb(p, q, makeColorTint(\"b\", h))\r\n }\r\n return [_round(255 * r), _round(255 * g), _round(255 * b)]\r\n}\r\n\r\nfunction convertTo01Bounds(n, max) {\r\n n = Math.min(max, Math.max(0, parseFloat(n)));\r\n if (Math.abs(n - max) < 1e-6) {\r\n return 1\r\n }\r\n return n % max / parseFloat(max)\r\n}\r\n\r\nfunction isIntegerBetweenMinAndMax(number, min, max) {\r\n min = min || 0;\r\n max = max || 255;\r\n if (number % 1 !== 0 || number < min || number > max || \"number\" !== typeof number || isNaN(number)) {\r\n return false\r\n }\r\n return true\r\n}\r\nColor.prototype = {\r\n constructor: Color,\r\n highlight: function(step) {\r\n step = step || 10;\r\n return this.alter(step).toHex()\r\n },\r\n darken: function(step) {\r\n step = step || 10;\r\n return this.alter(-step).toHex()\r\n },\r\n alter: function(step) {\r\n var result = new Color;\r\n result.r = normalize(this.r + step);\r\n result.g = normalize(this.g + step);\r\n result.b = normalize(this.b + step);\r\n return result\r\n },\r\n blend: function(blendColor, opacity) {\r\n var other = blendColor instanceof Color ? blendColor : new Color(blendColor);\r\n var result = new Color;\r\n result.r = normalize(_round(this.r * (1 - opacity) + other.r * opacity));\r\n result.g = normalize(_round(this.g * (1 - opacity) + other.g * opacity));\r\n result.b = normalize(_round(this.b * (1 - opacity) + other.b * opacity));\r\n return result\r\n },\r\n toHex: function() {\r\n return toHexFromRgb(this.r, this.g, this.b)\r\n },\r\n getPureColor: function() {\r\n var rgb = hsvToRgb(this.hsv.h, 100, 100);\r\n return new Color(\"rgb(\" + rgb.join(\",\") + \")\")\r\n },\r\n isValidHex: function(hex) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)\r\n },\r\n isValidRGB: function(r, g, b) {\r\n if (!isIntegerBetweenMinAndMax(r) || !isIntegerBetweenMinAndMax(g) || !isIntegerBetweenMinAndMax(b)) {\r\n return false\r\n }\r\n return true\r\n },\r\n isValidAlpha: function(a) {\r\n if (isNaN(a) || a < 0 || a > 1 || \"number\" !== typeof a) {\r\n return false\r\n }\r\n return true\r\n },\r\n colorIsInvalid: false,\r\n fromHSL: function(hsl) {\r\n var color = new Color;\r\n var rgb = hslToRgb(hsl.h, hsl.s, hsl.l);\r\n color.r = rgb[0];\r\n color.g = rgb[1];\r\n color.b = rgb[2];\r\n return color\r\n }\r\n};\r\nexport default Color;\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/class.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"./errors\";\r\nimport {\r\n isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n defaultUseCurrencyAccountingStyle: true,\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return JSON.parse(optionsString)\r\n } catch (ex) {\r\n try {\r\n return JSON.parse(normalizeToJSONString(optionsString))\r\n } catch (exNormalize) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n }\r\n};\r\nvar normalizeToJSONString = optionsString => optionsString.replace(/'/g, '\"').replace(/,\\s*([\\]}])/g, \"$1\").replace(/([{,])\\s*([^\":\\s]+)\\s*:/g, '$1\"$2\":');\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getShadowElementsFromPoint\r\n} from \"./utils/shadow_dom\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar DOCUMENT_FRAGMENT_NODE = 11;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n createAttribute(text, context) {\r\n context = context || this._document;\r\n return context.createAttribute(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n isDocumentFragment: element => element && element.nodeType === DOCUMENT_FRAGMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n if (\"style\" === name) {\r\n element.style.cssText = value\r\n } else {\r\n element.setAttribute(name, value)\r\n }\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement(element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n return activeElementHolder.activeElement\r\n },\r\n getRootNode(element) {\r\n var _element$getRootNode, _element$getRootNode2;\r\n return null !== (_element$getRootNode = null === element || void 0 === element ? void 0 : null === (_element$getRootNode2 = element.getRootNode) || void 0 === _element$getRootNode2 ? void 0 : _element$getRootNode2.call(element)) && void 0 !== _element$getRootNode ? _element$getRootNode : this._document\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y, element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n if (activeElementHolder.host) {\r\n return getShadowElementsFromPoint(x, y, activeElementHolder)\r\n }\r\n return activeElementHolder.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend(config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option(optionName)\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"
\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n addShadowDomStyles\r\n} from \"./utils/shadow_dom\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options)\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers();\r\n addShadowDomStyles(this.$element())\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (synchronizableOptions.includes(name)) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/core/element_data.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/errors.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2'\r\n});\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value && false !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element) || domAdapter.isDocumentFragment(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n var _element$host;\r\n element = null !== (_element$host = element.host) && void 0 !== _element$host ? _element$host : element;\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.select = function() {\r\n for (var i = 0; i < this.length; i += 1) {\r\n this[i].select && this[i].select()\r\n }\r\n return this\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result;\r\n if (options.renovated && options.transclude && this._element) {\r\n $result = $(\"
\").append(this._element).contents()\r\n } else {\r\n $result = this._renderCore(options)\r\n }\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\n\r\nfunction createOccurrenceMap(array) {\r\n return array.reduce((map, value) => {\r\n var _map$get;\r\n var count = (null !== (_map$get = map.get(value)) && void 0 !== _map$get ? _map$get : 0) + 1;\r\n map.set(value, count);\r\n return map\r\n }, new Map)\r\n}\r\nexport var wrapToArray = function(item) {\r\n return Array.isArray(item) ? item : [item]\r\n};\r\nexport var getUniqueValues = function(values) {\r\n return [...new Set(values)]\r\n};\r\nexport var getIntersection = function(firstArray, secondArray) {\r\n var toRemoveMap = createOccurrenceMap(secondArray);\r\n return firstArray.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return occurrencesCount\r\n })\r\n};\r\nexport var removeDuplicates = function() {\r\n var from = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var toRemove = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\r\n var toRemoveMap = createOccurrenceMap(toRemove);\r\n return from.filter(value => {\r\n var occurrencesCount = toRemoveMap.get(value);\r\n occurrencesCount && toRemoveMap.set(value, occurrencesCount - 1);\r\n return !occurrencesCount\r\n })\r\n};\r\nexport var normalizeIndexes = function(items, indexPropName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var {\r\n useLegacyVisibleIndex: useLegacyVisibleIndex\r\n } = config();\r\n var currentIndex = 0;\r\n var shouldUpdateIndex = item => !isDefined(item[indexPropName]) && (!needIndexCallback || needIndexCallback(item));\r\n items.forEach(item => {\r\n var index = item[indexPropName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexPropName] = void 0\r\n }\r\n });\r\n if (!useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n while (indexedItems[currentIndex]) {\r\n currentIndex++\r\n }\r\n indexedItems[currentIndex] = [item];\r\n currentIndex++\r\n }\r\n })\r\n }\r\n currentIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n items.forEach(item => {\r\n if (index >= 0) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }\r\n};\r\nexport var groupBy = (array, getGroupName) => array.reduce((groupedResult, item) => {\r\n var _groupedResult$groupN;\r\n var groupName = getGroupName(item);\r\n groupedResult[groupName] = null !== (_groupedResult$groupN = groupedResult[groupName]) && void 0 !== _groupedResult$groupN ? _groupedResult$groupN : [];\r\n groupedResult[groupName].push(item);\r\n return groupedResult\r\n}, {});\r\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar compareArrays = (array1, array2, depth, options) => {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n return !array1.some((item, idx) => !compareByValue(item, array2[idx], depth + 1, _extends({}, options, {\r\n strict: true\r\n })))\r\n};\r\nvar compareObjects = (object1, object2, depth, options) => {\r\n var keys1 = Object.keys(object1);\r\n var keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false\r\n }\r\n var keys2Set = new Set(keys2);\r\n return !keys1.some(key => !keys2Set.has(key) || !compareByValue(object1[key], object2[key], depth + 1, options))\r\n};\r\nvar DEFAULT_EQUAL_BY_VALUE_OPTS = {\r\n maxDepth: 3,\r\n strict: true\r\n};\r\nvar compareByValue = (value1, value2, depth, options) => {\r\n var {\r\n strict: strict,\r\n maxDepth: maxDepth\r\n } = options;\r\n var comparable1 = toComparable(value1, true);\r\n var comparable2 = toComparable(value2, true);\r\n var comparisonResult = strict ? comparable1 === comparable2 : comparable1 == comparable2;\r\n switch (true) {\r\n case comparisonResult:\r\n case depth >= maxDepth:\r\n return true;\r\n case isObject(comparable1) && isObject(comparable2):\r\n return compareObjects(comparable1, comparable2, depth, options);\r\n case Array.isArray(comparable1) && Array.isArray(comparable2):\r\n return compareArrays(comparable1, comparable2, depth, options);\r\n default:\r\n return false\r\n }\r\n};\r\nexport var equalByValue = function(value1, value2) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : DEFAULT_EQUAL_BY_VALUE_OPTS;\r\n var compareOptions = _extends({}, DEFAULT_EQUAL_BY_VALUE_OPTS, options);\r\n return compareByValue(value1, value2, 0, compareOptions)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/console.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n log: getConsoleMethod(\"log\"),\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n var _options$collatorOpti;\r\n if (\"base\" === (null === options || void 0 === options ? void 0 : null === (_options$collatorOpti = options.collatorOptions) || void 0 === _options$collatorOpti ? void 0 : _options$collatorOpti.sensitivity)) {\r\n var REMOVE_DIACRITICAL_MARKS_REGEXP = /[\\u0300-\\u036f]/g;\r\n value = value.normalize(\"NFD\").replace(REMOVE_DIACRITICAL_MARKS_REGEXP, \"\")\r\n }\r\n return null !== options && void 0 !== options && options.locale ? value.toLocaleLowerCase(options.locale) : value.toLowerCase()\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/date/toMilliseconds.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar timeIntervals = {\r\n millisecond: 1,\r\n second: 1e3,\r\n minute: 6e4,\r\n hour: 36e5,\r\n day: 864e5,\r\n week: 6048e5,\r\n month: 2592e6,\r\n quarter: 7776e6,\r\n year: 31536e6\r\n};\r\nexport function toMilliseconds(value) {\r\n return timeIntervals[value]\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject,\r\n isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport {\r\n toMilliseconds\r\n} from \"../../renovation/ui/common/utils/date/index\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar THURSDAY_WEEK_NUMBER = 4;\r\nvar SUNDAY_WEEK_NUMBER = 7;\r\nvar USUAL_WEEK_COUNT_IN_YEAR = 52;\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\n\r\nfunction sameHoursAndMinutes(date1, date2) {\r\n return date1 && date2 && date1.getHours() === date2.getHours() && date1.getMinutes() === date2.getMinutes()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + DAYS_IN_WEEK) % DAYS_IN_WEEK;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\n\r\nfunction getUTCTime(date) {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\r\n}\r\n\r\nfunction getDayNumber(date) {\r\n var ms = getUTCTime(date) - getUTCTime(getFirstDateInYear(date.getFullYear()));\r\n return 1 + Math.floor(ms / toMilliseconds(\"day\"))\r\n}\r\n\r\nfunction getFirstDateInYear(year) {\r\n return new Date(year, 0, 1)\r\n}\r\n\r\nfunction getLastDateInYear(year) {\r\n return new Date(year, 11, 31)\r\n}\r\n\r\nfunction getDayWeekNumber(date, firstDayOfWeek) {\r\n var day = date.getDay() - firstDayOfWeek + 1;\r\n if (day <= 0) {\r\n day += DAYS_IN_WEEK\r\n }\r\n return day\r\n}\r\n\r\nfunction getWeekNumber(date, firstDayOfWeek, rule) {\r\n var firstWeekDayInYear = getDayWeekNumber(getFirstDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var lastWeekDayInYear = getDayWeekNumber(getLastDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var daysInFirstWeek = DAYS_IN_WEEK - firstWeekDayInYear + 1;\r\n var weekNumber = Math.ceil((getDayNumber(date) - daysInFirstWeek) / 7);\r\n switch (rule) {\r\n case \"fullWeek\":\r\n if (daysInFirstWeek === DAYS_IN_WEEK) {\r\n weekNumber++\r\n }\r\n if (0 === weekNumber) {\r\n var lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber;\r\n case \"firstDay\":\r\n if (daysInFirstWeek > 0) {\r\n weekNumber++\r\n }\r\n var isSunday = firstWeekDayInYear === SUNDAY_WEEK_NUMBER || lastWeekDayInYear === SUNDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isSunday || 54 === weekNumber) {\r\n weekNumber = 1\r\n }\r\n return weekNumber;\r\n case \"firstFourDays\":\r\n if (daysInFirstWeek > 3) {\r\n weekNumber++\r\n }\r\n var isThursday = firstWeekDayInYear === THURSDAY_WEEK_NUMBER || lastWeekDayInYear === THURSDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isThursday) {\r\n weekNumber = 1\r\n }\r\n if (0 === weekNumber) {\r\n var _lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(_lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber\r\n }\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameHoursAndMinutes: sameHoursAndMinutes,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n getWeekNumber: getWeekNumber,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/deferred.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = Callbacks();\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args)\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow,\r\n isString\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nvar getRootNodeHost = element => {\r\n if (!element.getRootNode) {\r\n return\r\n }\r\n var host = element.getRootNode().host;\r\n if (isString(host)) {\r\n return\r\n }\r\n return host\r\n};\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"
\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"
\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains(element) || contains(container, getRootNodeHost(element))\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"
\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\nexport var isElementInDom = $element => {\r\n var element = null === $element || void 0 === $element ? void 0 : $element.get(0);\r\n var shadowHost = null === element || void 0 === element ? void 0 : element.getRootNode().host;\r\n return !!$(shadowHost || element).closest(getWindow().document).length\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"http://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n return format.apply(this, [\"{0} - {1}. See:\\n{2}\", id, details, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/extend.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"\",\r\n endTags: \"
\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return [...container.childNodes]\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction getExponentialNotation(value) {\r\n var parts = value.toExponential().split(\"e\");\r\n var mantissa = parseFloat(parts[0]);\r\n var exponent = parseInt(parts[1]);\r\n return {\r\n exponent: exponent,\r\n mantissa: mantissa\r\n }\r\n}\r\n\r\nfunction multiplyInExponentialForm(value, exponentShift) {\r\n var exponentialNotation = getExponentialNotation(value);\r\n return parseFloat(\"\".concat(exponentialNotation.mantissa, \"e\").concat(exponentialNotation.exponent + exponentShift))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision,\r\n multiplyInExponentialForm\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var forceCombinedFilter = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if ((forceCombinedFilter || isSelectAll) && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/shadow_dom.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar DX_RULE_PREFIX = \"dx-\";\r\nvar ownerDocumentStyleSheet = null;\r\n\r\nfunction createConstructedStyleSheet(rootNode) {\r\n try {\r\n return new CSSStyleSheet\r\n } catch (err) {\r\n var styleElement = rootNode.ownerDocument.createElement(\"style\");\r\n rootNode.appendChild(styleElement);\r\n return styleElement.sheet\r\n }\r\n}\r\n\r\nfunction processRules(targetStyleSheet, styleSheets, needApplyAllStyles) {\r\n for (var i = 0; i < styleSheets.length; i++) {\r\n var sheet = styleSheets[i];\r\n try {\r\n for (var j = 0; j < sheet.cssRules.length; j++) {\r\n insertRule(targetStyleSheet, sheet.cssRules[j], needApplyAllStyles)\r\n }\r\n } catch (err) {}\r\n }\r\n}\r\n\r\nfunction insertRule(targetStyleSheet, rule, needApplyAllStyles) {\r\n var _rule$selectorText, _rule$cssRules, _rule$cssRules$, _rule$cssRules$$selec, _rule$name, _rule$style;\r\n var isDxRule = needApplyAllStyles || (null === (_rule$selectorText = rule.selectorText) || void 0 === _rule$selectorText ? void 0 : _rule$selectorText.includes(DX_RULE_PREFIX)) || (null === (_rule$cssRules = rule.cssRules) || void 0 === _rule$cssRules ? void 0 : null === (_rule$cssRules$ = _rule$cssRules[0]) || void 0 === _rule$cssRules$ ? void 0 : null === (_rule$cssRules$$selec = _rule$cssRules$.selectorText) || void 0 === _rule$cssRules$$selec ? void 0 : _rule$cssRules$$selec.includes(DX_RULE_PREFIX)) || (null === (_rule$name = rule.name) || void 0 === _rule$name ? void 0 : _rule$name.startsWith(DX_RULE_PREFIX)) || \"DXIcons\" === (null === (_rule$style = rule.style) || void 0 === _rule$style ? void 0 : _rule$style.fontFamily);\r\n if (isDxRule) {\r\n targetStyleSheet.insertRule(rule.cssText, targetStyleSheet.cssRules.length)\r\n }\r\n}\r\nexport function addShadowDomStyles($element) {\r\n var _el$getRootNode;\r\n var el = $element.get(0);\r\n var root = null === (_el$getRootNode = el.getRootNode) || void 0 === _el$getRootNode ? void 0 : _el$getRootNode.call(el);\r\n if (!(null !== root && void 0 !== root && root.host)) {\r\n return\r\n }\r\n if (!ownerDocumentStyleSheet) {\r\n ownerDocumentStyleSheet = createConstructedStyleSheet(root);\r\n processRules(ownerDocumentStyleSheet, el.ownerDocument.styleSheets, false)\r\n }\r\n var currentShadowDomStyleSheet = createConstructedStyleSheet(root);\r\n processRules(currentShadowDomStyleSheet, root.styleSheets, true);\r\n root.adoptedStyleSheets = [ownerDocumentStyleSheet, currentShadowDomStyleSheet]\r\n}\r\n\r\nfunction isPositionInElementRectangle(element, x, y) {\r\n var rect = element.getBoundingClientRect();\r\n return rect && x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom\r\n}\r\n\r\nfunction createQueue() {\r\n var shiftIndex = 0;\r\n var items = [];\r\n return {\r\n push(item) {\r\n items.push(item);\r\n return this\r\n },\r\n shift() {\r\n shiftIndex++;\r\n return items[shiftIndex - 1]\r\n },\r\n get length() {\r\n return items.length - shiftIndex\r\n },\r\n get items() {\r\n return items\r\n }\r\n }\r\n}\r\nexport function getShadowElementsFromPoint(x, y, root) {\r\n var elementQueue = createQueue().push(root);\r\n while (elementQueue.length) {\r\n var el = elementQueue.shift();\r\n for (var i = 0; i < el.childNodes.length; i++) {\r\n var childNode = el.childNodes[i];\r\n if (childNode.nodeType === Node.ELEMENT_NODE && isPositionInElementRectangle(childNode, x, y) && \"none\" !== getComputedStyle(childNode).pointerEvents) {\r\n elementQueue.push(childNode)\r\n }\r\n }\r\n }\r\n var result = elementQueue.items.reverse();\r\n result.pop();\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container, element) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n } else if (element && value.indexOf(\"em\") > 0) {\r\n value = parseFloat(value.replace(\"em\", \"\")) * parseFloat(window.getComputedStyle(element).fontSize)\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/string.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var replaceAll = function(text, searchToken, replacementToken) {\r\n return text.replace(new RegExp(\"(\" + (str = searchToken, (str + \"\").replace(/([+*?.[^\\]$(){}><|=!:])/g, \"\\\\$1\")) + \")\", \"gi\"), replacementToken);\r\n var str\r\n};\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nvar setStyle = function(element, styleString) {\r\n var resetStyle = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : true;\r\n if (resetStyle) {\r\n var styleList = [].slice.call(element.style);\r\n styleList.forEach(propertyName => {\r\n element.style.removeProperty(propertyName)\r\n })\r\n }\r\n styleString.split(\";\").forEach(style => {\r\n var parts = style.split(\":\").map(stylePart => stylePart.trim());\r\n if (2 === parts.length) {\r\n var [property, value] = parts;\r\n element.style[property] = value\r\n }\r\n })\r\n};\r\nexport {\r\n styleProp,\r\n setStyle,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n mac: isMac\r\n } = devices.real();\r\n var isNativeScrollDevice = \"ios\" === platform || \"android\" === platform || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\" normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"
\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/type.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar types = {\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object Object]\": \"object\",\r\n \"[object String]\": \"string\"\r\n};\r\nvar type = function(object) {\r\n if (null === object) {\r\n return \"null\"\r\n }\r\n var typeOfObject = Object.prototype.toString.call(object);\r\n return \"object\" === typeof object ? types[typeOfObject] || \"object\" : typeof object\r\n};\r\nvar isBoolean = function(object) {\r\n return \"boolean\" === typeof object\r\n};\r\nvar isExponential = function(value) {\r\n return isNumeric(value) && -1 !== value.toString().indexOf(\"e\")\r\n};\r\nvar isDate = function(object) {\r\n return \"date\" === type(object)\r\n};\r\nvar isDefined = function(object) {\r\n return null !== object && void 0 !== object\r\n};\r\nvar isFunction = function(object) {\r\n return \"function\" === typeof object\r\n};\r\nvar isString = function(object) {\r\n return \"string\" === typeof object\r\n};\r\nvar isNumeric = function(object) {\r\n return \"number\" === typeof object && isFinite(object) || !isNaN(object - parseFloat(object))\r\n};\r\nvar isObject = function(object) {\r\n return \"object\" === type(object)\r\n};\r\nvar isEmptyObject = function(object) {\r\n var property;\r\n for (property in object) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar isPlainObject = function(object) {\r\n if (!object || \"object\" !== type(object)) {\r\n return false\r\n }\r\n var proto = Object.getPrototypeOf(object);\r\n if (!proto) {\r\n return true\r\n }\r\n var ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\r\n return \"function\" === typeof ctor && Object.toString.call(ctor) === Object.toString.call(Object)\r\n};\r\nvar isPrimitive = function(value) {\r\n return -1 === [\"object\", \"array\", \"function\"].indexOf(type(value))\r\n};\r\nvar isWindow = function(object) {\r\n return null != object && object === object.window\r\n};\r\nvar isRenderer = function(object) {\r\n return !!object && !!(object.jquery || object.dxRenderer)\r\n};\r\nvar isPromise = function(object) {\r\n return !!object && isFunction(object.then)\r\n};\r\nvar isDeferred = function(object) {\r\n return !!object && isFunction(object.done) && isFunction(object.fail)\r\n};\r\nvar isEvent = function(object) {\r\n return !!(object && object.preventDefault)\r\n};\r\nexport {\r\n isBoolean,\r\n isExponential,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isNumeric,\r\n isObject,\r\n isEmptyObject,\r\n isPlainObject,\r\n isPrimitive,\r\n isWindow,\r\n isRenderer,\r\n isPromise,\r\n isDeferred,\r\n type,\r\n isEvent\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/variable_wrapper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"23.1.4\";\r\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n _langParams: {},\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _clearCache: noop,\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n if (!isEmptyObject(this._langParams)) {\r\n options = options || {};\r\n options._langParams = _extends({}, this._langParams, options._langParams)\r\n }\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue, options) {\r\n if (isString(xValue) && isString(yValue) && (null !== options && void 0 !== options && options.locale || null !== options && void 0 !== options && options.collatorOptions)) {\r\n return new Intl.Collator((null === options || void 0 === options ? void 0 : options.locale) || void 0, (null === options || void 0 === options ? void 0 : options.collatorOptions) || void 0).compare(xValue, yValue)\r\n }\r\n xValue = toComparable(xValue, false, options);\r\n yValue = toComparable(yValue, false, options);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n this.langParams = iter.langParams;\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap);\r\n iter.langParams = this.langParams\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare,\r\n langParams: this.langParams\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _getDefaultCompare: langParams => (xValue, yValue) => defaultCompare(xValue, yValue, langParams),\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || this._getDefaultCompare(rule.langParams);\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var langParams = {};\r\n var _toComparable = value => toComparable(value, false, langParams);\r\n var toString = function(value) {\r\n var _langParams;\r\n return isDefined(value) ? null !== (_langParams = langParams) && void 0 !== _langParams && _langParams.locale ? value.toLocaleString(langParams.locale) : value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = _toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit, options) {\r\n langParams = options || {};\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this, langParams));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1], langParams);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = _toComparable(value);\r\n var compare = (obj, operatorFn) => {\r\n obj = _toComparable(getter(obj));\r\n return (null == value || null == obj) && value !== obj ? false : operatorFn(obj, value)\r\n };\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return obj => compare(obj, (a, b) => a > b);\r\n case \"<\":\r\n return obj => compare(obj, (a, b) => a < b);\r\n case \">=\":\r\n return obj => compare(obj, (a, b) => a >= b);\r\n case \"<=\":\r\n return obj => compare(obj, (a, b) => a <= b);\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === _toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = _toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return _toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === _toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.langParams = iter.langParams;\r\n this.criteria = compileCriteria(criteria, this.langParams)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n if (queryOptions.langParams) {\r\n iter.langParams = queryOptions.langParams\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n setLangParams(options) {\r\n iter.langParams = options\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstanceWithChangedPaths(instance, changes, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = _extends({}, instance);\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var name in instanceWithoutPrototype) {\r\n var value = instanceWithoutPrototype[name];\r\n var change = null === changes || void 0 === changes ? void 0 : changes[name];\r\n if (isObject(value) && !isPlainObject(value) && isObject(change) && !clonedInstances.has(value)) {\r\n result[name] = cloneInstanceWithChangedPaths(value, change, clonedInstances)\r\n }\r\n }\r\n for (var _name in result) {\r\n var prop = result[_name];\r\n if (isObject(prop) && clonedInstances.has(prop)) {\r\n result[_name] = clonedInstances.get(prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstanceWithChangedPaths(target, changes);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError,\r\n skipCopying: skipCopying\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError, skipCopying);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError, skipCopying) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) && !skipCopying ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n _clearCache() {\r\n delete this.__rawData\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n this._clearCache()\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/**\r\n * DevExtreme (esm/data/data_source.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data_source/data_source\";\r\nexport default DataSource;\r\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"langParams\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n var isEmptyArray = Array.isArray(data) && !data.length;\r\n if (!isDefined(data) || isEmptyArray) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n var changingArgs = {\r\n changes: changes\r\n };\r\n this._eventsStrategy.fireEvent(\"changing\", [changingArgs]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n if (changingArgs.postProcessChanges) {\r\n dataSourceChanges = changingArgs.postProcessChanges(dataSourceChanges)\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n if (this._store && !isEmptyObject(null === storeLoadOptions || void 0 === storeLoadOptions ? void 0 : storeLoadOptions.langParams)) {\r\n this._store._langParams = _extends({}, this._store._langParams, storeLoadOptions.langParams)\r\n }\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n store._clearCache();\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n var _options;\r\n options = options || {};\r\n var filter = options.filter;\r\n if (null !== (_options = options) && void 0 !== _options && _options.langParams) {\r\n var _query$setLangParams, _query;\r\n null === (_query$setLangParams = (_query = query).setLangParams) || void 0 === _query$setLangParams ? void 0 : _query$setLangParams.call(_query, options.langParams)\r\n }\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], {\r\n strict: false\r\n })) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, {\r\n strict: false\r\n })\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n return function() {\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n func.call(this)\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/data_controller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataControllerMock = {\r\n load: () => Deferred().reject(),\r\n loadSingle: () => Deferred().reject(),\r\n loadFromStore: () => Deferred().reject(),\r\n loadNextPage: () => Deferred().reject(),\r\n loadOptions: noop,\r\n userData: noop,\r\n cancel: noop,\r\n cancelAll: noop,\r\n filter: noop,\r\n addSearchFilter: noop,\r\n group: noop,\r\n paginate: noop,\r\n pageSize: noop,\r\n pageIndex: noop,\r\n resetDataSourcePageIndex: noop,\r\n totalCount: noop,\r\n isLastPage: noop,\r\n isLoading: noop,\r\n isLoaded: noop,\r\n searchValue: noop,\r\n searchOperation: noop,\r\n searchExpr: noop,\r\n select: noop,\r\n key: noop,\r\n keyOf: noop,\r\n store: noop,\r\n items: noop,\r\n applyMapFunction: noop,\r\n getDataSource: noop,\r\n reload: noop,\r\n on: noop,\r\n off: noop\r\n};\r\nclass DataController {\r\n constructor(dataSource) {\r\n if (!dataSource) {\r\n return DataControllerMock\r\n }\r\n this._dataSource = dataSource\r\n }\r\n load() {\r\n return this._dataSource.load()\r\n }\r\n loadSingle(propName, propValue) {\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = this.key()\r\n }\r\n return this._dataSource.loadSingle(propName, propValue)\r\n }\r\n loadFromStore(loadOptions) {\r\n return this.store().load(loadOptions)\r\n }\r\n loadNextPage() {\r\n this.pageIndex(1 + this.pageIndex());\r\n return this.load()\r\n }\r\n loadOptions() {\r\n return this._dataSource.loadOptions()\r\n }\r\n userData() {\r\n return this._dataSource._userData\r\n }\r\n cancel(operationId) {\r\n this._dataSource.cancel(operationId)\r\n }\r\n cancelAll() {\r\n this._dataSource.cancelAll()\r\n }\r\n filter(filter) {\r\n return this._dataSource.filter(filter)\r\n }\r\n addSearchFilter(storeLoadOptions) {\r\n this._dataSource._addSearchFilter(storeLoadOptions)\r\n }\r\n group(group) {\r\n return this._dataSource.group(group)\r\n }\r\n paginate() {\r\n return this._dataSource.paginate()\r\n }\r\n pageSize() {\r\n return this._dataSource._pageSize\r\n }\r\n pageIndex(pageIndex) {\r\n return this._dataSource.pageIndex(pageIndex)\r\n }\r\n resetDataSourcePageIndex() {\r\n if (this.pageIndex()) {\r\n this.pageIndex(0);\r\n this.load()\r\n }\r\n }\r\n totalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n isLastPage() {\r\n return this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded()\r\n }\r\n searchValue(value) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchValue()\r\n }\r\n return this._dataSource.searchValue(value)\r\n }\r\n searchOperation(operation) {\r\n return this._dataSource.searchOperation(operation)\r\n }\r\n searchExpr(expr) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchExpr()\r\n }\r\n return this._dataSource.searchExpr(expr)\r\n }\r\n select() {\r\n return this._dataSource.select(...arguments)\r\n }\r\n key() {\r\n return this._dataSource.key()\r\n }\r\n keyOf(item) {\r\n return this.store().keyOf(item)\r\n }\r\n store() {\r\n return this._dataSource.store()\r\n }\r\n items() {\r\n return this._dataSource.items()\r\n }\r\n applyMapFunction(data) {\r\n return this._dataSource._applyMapFunction(data)\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n reload() {\r\n return this._dataSource.reload()\r\n }\r\n on(event, handler) {\r\n this._dataSource.on(event, handler)\r\n }\r\n off(event, handler) {\r\n this._dataSource.off(event, handler)\r\n }\r\n}\r\nexport default DataController;\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nimport DataController from \"./ui/collection/data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n },\r\n _initDataController: function() {\r\n var _this$option;\r\n var dataController = null === (_this$option = this.option) || void 0 === _this$option ? void 0 : _this$option.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar prevented = null;\r\nvar lastFiredEvent = null;\r\nvar onNodeRemove = () => {\r\n lastFiredEvent = null\r\n};\r\nvar clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n eventsEngine.on(this.getElement(), \"click\", clickHandler)\r\n },\r\n start: function(e) {\r\n prevented = null\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n});\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && (element = $target, $(element).is(\"input, textarea, select, button ,:focus, :focus *\"))) {\r\n resetActiveElement()\r\n }\r\n var element;\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = activeEmitters.indexOf(emitter);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var _element$parentNode;\r\n var parent = null !== (_element$parentNode = element.parentNode) && void 0 !== _element$parentNode ? _element$parentNode : element.host;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var focusTargets = $(this._focusTarget).toArray();\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && !focusTargets.includes(e.target);\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = knownDropTargets.includes(element);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = knownDropTargets.indexOf(element);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (!knownDropTargetSelectors[index].includes(selector)) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = knownDropTargets.indexOf(element);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (knownDropTargetSelectors[dropTargetIndex].includes(void 0)) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n if (e.targetElements || null === e.targetElements) {\r\n var dropTargets = wrapToArray(e.targetElements || []);\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n } else {\r\n this._dropTargets = knownDropTargets\r\n }\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"
\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n var _this$immediateTimeou;\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n if (0 === this.immediateTimeout) {\r\n this._immediateAccepted = true;\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), null !== (_this$immediateTimeou = this.immediateTimeout) && void 0 !== _this$immediateTimeou ? _this$immediateTimeou : IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n addNamespace,\r\n isDxMouseWheelEvent,\r\n isMouseEvent,\r\n eventData,\r\n eventDelta\r\n} from \"../../events/utils/index\";\r\nimport GestureEmitter from \"../../events/gesture/emitter.gesture\";\r\nimport registerEmitter from \"../../events/core/emitter_registrator\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nimport devices from \"../../core/devices\";\r\nvar realDevice = devices.real();\r\nvar SCROLL_EVENT = \"scroll\";\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = Class.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = addNamespace(SCROLL_EVENT, \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n this._proxiedScroll = e => {\r\n if (!this._disposed) {\r\n this._scroll(e)\r\n }\r\n };\r\n eventsEngine.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n this._disposed = true;\r\n eventsEngine.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit({\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout((function() {\r\n that._clearTimer()\r\n }), this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n});\r\nvar WheelLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!isDxMouseWheelEvent(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n});\r\nvar PointerLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400)\r\n }\r\n});\r\n! function() {\r\n var {\r\n ios: isIos,\r\n android: isAndroid\r\n } = realDevice;\r\n if (!(isIos || isAndroid)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit({\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n cancelAnimationFrame(this._scrollFrame);\r\n this._scrollFrame = requestAnimationFrame((function() {\r\n that._locked = false\r\n }))\r\n },\r\n check: function(e, callback) {\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = requestAnimationFrame((function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n }))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame)\r\n }\r\n })\r\n}();\r\nvar ScrollEmitter = GestureEmitter.inherit(function() {\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if (isDxMouseWheelEvent(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && isMouseEvent(e);\r\n if (!isDxMouseWheelEvent(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = eventData(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: eventDelta(this._prevEventData, currentEventData)\r\n });\r\n var delta = eventDelta(this._savedEventData, currentEventData);\r\n if (delta.time > 200) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = eventData(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = eventDelta(this._prevEventData, eventData(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!isDxMouseWheelEvent(e) && endEventDelta.time < 100) {\r\n var delta = eventDelta(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nregisterEmitter({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nexport default {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT,\r\n scroll: SCROLL_EVENT\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n immediateTimeout: IMMEDIATE_TIMEOUT,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\"),\r\n immediateTimeout: this.option(\"immediateTimeout\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n","/**\r\n * DevExtreme (esm/events/index.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nexport var on = eventsEngine.on;\r\nexport var one = eventsEngine.one;\r\nexport var off = eventsEngine.off;\r\nexport var trigger = eventsEngine.trigger;\r\nexport var triggerHandler = eventsEngine.triggerHandler;\r\nexport var Event = eventsEngine.Event;\r\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var _originalEvent$target;\r\n var delegateTarget = this._getDelegateTarget(e);\r\n var event = {\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n };\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _originalEvent$target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n event.target = path[0]\r\n }\r\n return this._fireEvent(event)\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = device;\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n if (false !== e.cancelable) {\r\n e.preventDefault()\r\n }\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/**\r\n * DevExtreme (esm/events/transform.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign as mathSign,\r\n fitIntoRange\r\n} from \"../core/utils/math\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n hasTouches\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DX_PREFIX = \"dx\";\r\nvar TRANSFORM = \"transform\";\r\nvar TRANSLATE = \"translate\";\r\nvar PINCH = \"pinch\";\r\nvar ROTATE = \"rotate\";\r\nvar START_POSTFIX = \"start\";\r\nvar UPDATE_POSTFIX = \"\";\r\nvar END_POSTFIX = \"end\";\r\nvar eventAliases = [];\r\nvar addAlias = function(eventName, eventArgs) {\r\n eventAliases.push({\r\n name: eventName,\r\n args: eventArgs\r\n })\r\n};\r\naddAlias(TRANSFORM, {\r\n scale: true,\r\n deltaScale: true,\r\n rotation: true,\r\n deltaRotation: true,\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(TRANSLATE, {\r\n translation: true,\r\n deltaTranslation: true\r\n});\r\naddAlias(PINCH, {\r\n scale: true,\r\n deltaScale: true\r\n});\r\naddAlias(ROTATE, {\r\n rotation: true,\r\n deltaRotation: true\r\n});\r\nvar getVector = function(first, second) {\r\n return {\r\n x: second.pageX - first.pageX,\r\n y: -second.pageY + first.pageY,\r\n centerX: .5 * (second.pageX + first.pageX),\r\n centerY: .5 * (second.pageY + first.pageY)\r\n }\r\n};\r\nvar getEventVector = function(e) {\r\n var pointers = e.pointers;\r\n return getVector(pointers[0], pointers[1])\r\n};\r\nvar getDistance = function(vector) {\r\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y)\r\n};\r\nvar getScale = function(firstVector, secondVector) {\r\n return getDistance(firstVector) / getDistance(secondVector)\r\n};\r\nvar getRotation = function(firstVector, secondVector) {\r\n var scalarProduct = firstVector.x * secondVector.x + firstVector.y * secondVector.y;\r\n var distanceProduct = getDistance(firstVector) * getDistance(secondVector);\r\n if (0 === distanceProduct) {\r\n return 0\r\n }\r\n var sign = mathSign(firstVector.x * secondVector.y - secondVector.x * firstVector.y);\r\n var angle = Math.acos(fitIntoRange(scalarProduct / distanceProduct, -1, 1));\r\n return sign * angle\r\n};\r\nvar getTranslation = function(firstVector, secondVector) {\r\n return {\r\n x: firstVector.centerX - secondVector.centerX,\r\n y: firstVector.centerY - secondVector.centerY\r\n }\r\n};\r\nvar TransformEmitter = Emitter.inherit({\r\n validatePointers: function(e) {\r\n return hasTouches(e) > 1\r\n },\r\n start: function(e) {\r\n this._accept(e);\r\n var startVector = getEventVector(e);\r\n this._startVector = startVector;\r\n this._prevVector = startVector;\r\n this._fireEventAliases(START_POSTFIX, e)\r\n },\r\n move: function(e) {\r\n var currentVector = getEventVector(e);\r\n var eventArgs = this._getEventArgs(currentVector);\r\n this._fireEventAliases(UPDATE_POSTFIX, e, eventArgs);\r\n this._prevVector = currentVector\r\n },\r\n end: function(e) {\r\n var eventArgs = this._getEventArgs(this._prevVector);\r\n this._fireEventAliases(END_POSTFIX, e, eventArgs)\r\n },\r\n _getEventArgs: function(vector) {\r\n return {\r\n scale: getScale(vector, this._startVector),\r\n deltaScale: getScale(vector, this._prevVector),\r\n rotation: getRotation(vector, this._startVector),\r\n deltaRotation: getRotation(vector, this._prevVector),\r\n translation: getTranslation(vector, this._startVector),\r\n deltaTranslation: getTranslation(vector, this._prevVector)\r\n }\r\n },\r\n _fireEventAliases: function(eventPostfix, originalEvent, eventArgs) {\r\n eventArgs = eventArgs || {};\r\n iteratorUtils.each(eventAliases, function(_, eventAlias) {\r\n var args = {};\r\n iteratorUtils.each(eventAlias.args, (function(name) {\r\n if (name in eventArgs) {\r\n args[name] = eventArgs[name]\r\n }\r\n }));\r\n this._fireEvent(DX_PREFIX + eventAlias.name + eventPostfix, originalEvent, args)\r\n }.bind(this))\r\n }\r\n});\r\nvar eventNames = eventAliases.reduce((result, eventAlias) => {\r\n [START_POSTFIX, UPDATE_POSTFIX, END_POSTFIX].forEach(eventPostfix => {\r\n result.push(DX_PREFIX + eventAlias.name + eventPostfix)\r\n });\r\n return result\r\n}, []);\r\nregisterEmitter({\r\n emitter: TransformEmitter,\r\n events: eventNames\r\n});\r\nvar exportNames = {};\r\niteratorUtils.each(eventNames, (function(_, eventName) {\r\n exportNames[eventName.substring(DX_PREFIX.length)] = eventName\r\n}));\r\nexport var {\r\n transformstart: transformstart,\r\n transform: transform,\r\n transformend: transformend,\r\n translatestart: translatestart,\r\n translate: translate,\r\n translateend: translateend,\r\n zoomstart: zoomstart,\r\n zoom: zoom,\r\n zoomend: zoomend,\r\n pinchstart: pinchstart,\r\n pinch: pinch,\r\n pinchend: pinchend,\r\n rotatestart: rotatestart,\r\n rotate: rotate,\r\n rotateend: rotateend\r\n} = exportNames;\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var normalizedKey = KEY_MAP[null === key || void 0 === key ? void 0 : key.toLowerCase()] || key;\r\n var normalizedKeyFromWhich = LEGACY_KEY_CODES[which];\r\n if (normalizedKeyFromWhich && normalizedKey === key) {\r\n return normalizedKeyFromWhich\r\n } else if (!normalizedKey && which) {\r\n return String.fromCharCode(which)\r\n }\r\n return normalizedKey\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/integration/knockout/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport $ from \"../../core/renderer\";\r\nexport var getClosestNodeWithContext = node => {\r\n var context = ko.contextFor(node);\r\n if (!context && node.parentNode) {\r\n return getClosestNodeWithContext(node.parentNode)\r\n }\r\n return node\r\n};\r\nexport var getClosestNodeWithKoCreation = node => {\r\n var $el = $(node);\r\n var data = $el.data();\r\n var hasFlag = data && data.dxKoCreation;\r\n if (hasFlag) {\r\n return node\r\n }\r\n if (node.parentNode) {\r\n return getClosestNodeWithKoCreation(node.parentNode)\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/integration/knockout/template.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport ko from \"knockout\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n TemplateBase\r\n} from \"../../core/templates/template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getClosestNodeWithContext\r\n} from \"./utils\";\r\nvar getParentContext = function(data) {\r\n var parentNode = domAdapter.createElement(\"div\");\r\n ko.applyBindingsToNode(parentNode, null, data);\r\n var parentContext = ko.contextFor(parentNode);\r\n ko.cleanNode(parentNode);\r\n return parentContext\r\n};\r\nexport var KoTemplate = class extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element;\r\n this._template = $(\"
\").append(normalizeTemplateElement(element));\r\n this._registerKoTemplate()\r\n }\r\n _registerKoTemplate() {\r\n var template = this._template.get(0);\r\n new ko.templateSources.anonymousTemplate(template).nodes(template)\r\n }\r\n _prepareDataForContainer(data, container) {\r\n if (container && container.length) {\r\n var node = getClosestNodeWithContext(container.get(0));\r\n var containerContext = ko.contextFor(node);\r\n data = void 0 !== data ? data : ko.dataFor(node) || {};\r\n if (containerContext) {\r\n return data === containerContext.$data ? containerContext : containerContext.createChildContext(data)\r\n }\r\n }\r\n return getParentContext(data).createChildContext(data)\r\n }\r\n _renderCore(options) {\r\n var model = this._prepareDataForContainer(options.model, $(options.container));\r\n if (isDefined(options.index)) {\r\n model.$index = options.index\r\n }\r\n var $placeholder = $(\"
\").appendTo(options.container);\r\n var $result;\r\n ko.renderTemplate(this._template.get(0), model, {\r\n afterRender: function(nodes) {\r\n $result = $(nodes)\r\n }\r\n }, $placeholder.get(0), \"replaceNode\");\r\n return $result\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n dispose() {\r\n this._template.remove()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/locker.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nvar Locker = function() {\r\n var info = {};\r\n var currentCount = function(lockName) {\r\n return info[lockName] || 0\r\n };\r\n return {\r\n obtain: function(lockName) {\r\n info[lockName] = currentCount(lockName) + 1\r\n },\r\n release: function(lockName) {\r\n var count = currentCount(lockName);\r\n if (count < 1) {\r\n throw errors.Error(\"E0014\")\r\n }\r\n if (1 === count) {\r\n delete info[lockName]\r\n } else {\r\n info[lockName] = count - 1\r\n }\r\n },\r\n locked: function(lockName) {\r\n return currentCount(lockName) > 0\r\n }\r\n }\r\n};\r\nexport default Locker;\r\n","/**\r\n * DevExtreme (esm/integration/knockout/component_registrator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport ko from \"knockout\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport registerComponentCallbacks from \"../../core/component_registrator_callbacks\";\r\nimport Widget from \"../../ui/widget/ui.widget\";\r\nimport VizWidget from \"../../viz/core/base_widget\";\r\nimport ComponentWrapper from \"../../renovation/component_wrapper/common/component\";\r\nimport Draggable from \"../../ui/draggable\";\r\nimport ScrollView from \"../../ui/scroll_view\";\r\nimport {\r\n KoTemplate\r\n} from \"./template\";\r\nimport Editor from \"../../ui/editor/editor\";\r\nimport Locker from \"../../core/utils/locker\";\r\nimport {\r\n getClosestNodeWithContext\r\n} from \"./utils\";\r\nimport config from \"../../core/config\";\r\nif (ko) {\r\n var LOCKS_DATA_KEY = \"dxKoLocks\";\r\n var CREATED_WITH_KO_DATA_KEY = \"dxKoCreation\";\r\n var editorsBindingHandlers = [];\r\n var registerComponentKoBinding = function(componentName, componentClass) {\r\n if (Editor.isEditor(componentClass.prototype)) {\r\n editorsBindingHandlers.push(componentName)\r\n }\r\n ko.bindingHandlers[componentName] = {\r\n init: function(domNode, valueAccessor) {\r\n var $element = $(domNode);\r\n var optionChangedCallbacks = Callbacks();\r\n var optionsByReference = {};\r\n var component;\r\n var knockoutConfig = config().knockout;\r\n var isBindingPropertyPredicateName = knockoutConfig && knockoutConfig.isBindingPropertyPredicateName;\r\n var isBindingPropertyPredicate;\r\n var ctorOptions = {\r\n onInitializing: function(options) {\r\n optionsByReference = this._getOptionsByReference();\r\n ko.computed(() => {\r\n var model = ko.unwrap(valueAccessor());\r\n if (component) {\r\n component.beginUpdate()\r\n }\r\n isBindingPropertyPredicate = isBindingPropertyPredicateName && model && model[isBindingPropertyPredicateName];\r\n unwrapModel(model);\r\n if (component) {\r\n component.endUpdate()\r\n } else {\r\n var _model$onInitializing;\r\n null === model || void 0 === model ? void 0 : null === (_model$onInitializing = model.onInitializing) || void 0 === _model$onInitializing ? void 0 : _model$onInitializing.call(this, options)\r\n }\r\n }, null, {\r\n disposeWhenNodeIsRemoved: domNode\r\n });\r\n component = this\r\n },\r\n modelByElement: function($element) {\r\n if ($element.length) {\r\n var node = getClosestNodeWithContext($element.get(0));\r\n return ko.dataFor(node)\r\n }\r\n },\r\n nestedComponentOptions: function(component) {\r\n return {\r\n modelByElement: component.option(\"modelByElement\"),\r\n nestedComponentOptions: component.option(\"nestedComponentOptions\")\r\n }\r\n },\r\n _optionChangedCallbacks: optionChangedCallbacks,\r\n integrationOptions: {\r\n watchMethod: function(fn, callback, options) {\r\n options = options || {};\r\n var skipCallback = options.skipImmediate;\r\n var watcher = ko.computed((function() {\r\n var newValue = ko.unwrap(fn());\r\n if (!skipCallback) {\r\n callback(newValue)\r\n }\r\n skipCallback = false\r\n }));\r\n return function() {\r\n watcher.dispose()\r\n }\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": {\r\n render: function(options) {\r\n var widgetName = ko.utils.unwrapObservable(options.model.widget);\r\n if (!widgetName) {\r\n return\r\n }\r\n var markup = $(\"
\").attr(\"data-bind\", widgetName + \": options\").get(0);\r\n $(options.container).append(markup);\r\n ko.applyBindings(options.model, markup)\r\n }\r\n }\r\n },\r\n createTemplate: function(element) {\r\n return new KoTemplate(element)\r\n }\r\n }\r\n };\r\n var optionNameToModelMap = {};\r\n var applyModelValueToOption = function(optionName, modelValue, unwrap) {\r\n var locks = $element.data(LOCKS_DATA_KEY);\r\n var optionValue = unwrap ? ko.unwrap(modelValue) : modelValue;\r\n if (ko.isWriteableObservable(modelValue)) {\r\n optionNameToModelMap[optionName] = modelValue\r\n }\r\n if (component) {\r\n if (locks.locked(optionName)) {\r\n return\r\n }\r\n locks.obtain(optionName);\r\n try {\r\n if (ko.ignoreDependencies) {\r\n ko.ignoreDependencies(component.option, component, [optionName, optionValue])\r\n } else {\r\n component.option(optionName, optionValue)\r\n }\r\n } finally {\r\n locks.release(optionName)\r\n }\r\n } else {\r\n ctorOptions[optionName] = optionValue\r\n }\r\n };\r\n var handleOptionChanged = function(args) {\r\n var optionName = args.fullName;\r\n var optionValue = args.value;\r\n if (!(optionName in optionNameToModelMap)) {\r\n return\r\n }\r\n var $element = this._$element;\r\n var locks = $element.data(LOCKS_DATA_KEY);\r\n if (locks.locked(optionName)) {\r\n return\r\n }\r\n locks.obtain(optionName);\r\n try {\r\n optionNameToModelMap[optionName](optionValue)\r\n } finally {\r\n locks.release(optionName)\r\n }\r\n };\r\n var unwrapModelValue = function(currentModel, propertyName, propertyPath) {\r\n if (propertyPath === isBindingPropertyPredicateName) {\r\n return\r\n }\r\n if (!isBindingPropertyPredicate || isBindingPropertyPredicate(propertyPath, propertyName, currentModel)) {\r\n var unwrappedPropertyValue;\r\n ko.computed((function() {\r\n var propertyValue = currentModel[propertyName];\r\n applyModelValueToOption(propertyPath, propertyValue, true);\r\n unwrappedPropertyValue = ko.unwrap(propertyValue)\r\n }), null, {\r\n disposeWhenNodeIsRemoved: domNode\r\n });\r\n if (isPlainObject(unwrappedPropertyValue)) {\r\n if (!optionsByReference[propertyPath]) {\r\n unwrapModel(unwrappedPropertyValue, propertyPath)\r\n }\r\n }\r\n } else {\r\n applyModelValueToOption(propertyPath, currentModel[propertyName], false)\r\n }\r\n };\r\n\r\n function unwrapModel(model, propertyPath) {\r\n for (var propertyName in model) {\r\n if (Object.prototype.hasOwnProperty.call(model, propertyName)) {\r\n unwrapModelValue(model, propertyName, propertyPath ? [propertyPath, propertyName].join(\".\") : propertyName)\r\n }\r\n }\r\n }! function() {\r\n optionChangedCallbacks.add(handleOptionChanged);\r\n $element.data(CREATED_WITH_KO_DATA_KEY, true).data(LOCKS_DATA_KEY, new Locker);\r\n new componentClass($element, ctorOptions);\r\n ctorOptions = null\r\n }();\r\n return {\r\n controlsDescendantBindings: componentClass.subclassOf(Widget) || componentClass.subclassOf(VizWidget) || componentClass.subclassOf(ComponentWrapper) && !(component instanceof ScrollView) || component instanceof Draggable\r\n }\r\n }\r\n };\r\n if (\"dxValidator\" === componentName) {\r\n ko.bindingHandlers.dxValidator.after = editorsBindingHandlers\r\n }\r\n };\r\n registerComponentCallbacks.add((function(name, componentClass) {\r\n registerComponentKoBinding(name, componentClass)\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/event_registrator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport ko from \"knockout\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport eventRegistratorCallbacks from \"../../events/core/event_registrator_callbacks\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nif (ko) {\r\n eventRegistratorCallbacks.add((function(name) {\r\n var koBindingEventName = addNamespace(name, name + \"Binding\");\r\n ko.bindingHandlers[name] = {\r\n update: function(element, valueAccessor, allBindingsAccessor, viewModel) {\r\n var $element = $(element);\r\n var unwrappedValue = ko.utils.unwrapObservable(valueAccessor());\r\n var eventSource = unwrappedValue.execute ? unwrappedValue.execute : unwrappedValue;\r\n eventsEngine.off($element, koBindingEventName);\r\n eventsEngine.on($element, koBindingEventName, isPlainObject(unwrappedValue) ? unwrappedValue : {}, (function(e) {\r\n eventSource.call(viewModel, viewModel, e)\r\n }))\r\n }\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/components.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nif (ko) {\r\n ko.bindingHandlers.dxControlsDescendantBindings = {\r\n init: function(_, valueAccessor) {\r\n return {\r\n controlsDescendantBindings: ko.unwrap(valueAccessor())\r\n }\r\n }\r\n };\r\n ko.bindingHandlers.dxIcon = {\r\n init: function(element, valueAccessor) {\r\n var options = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n var iconElement = getImageContainer(options);\r\n ko.virtualElements.emptyNode(element);\r\n if (iconElement) {\r\n ko.virtualElements.prepend(element, iconElement.get(0))\r\n }\r\n },\r\n update: function(element, valueAccessor) {\r\n var options = ko.utils.unwrapObservable(valueAccessor()) || {};\r\n var iconElement = getImageContainer(options);\r\n ko.virtualElements.emptyNode(element);\r\n if (iconElement) {\r\n ko.virtualElements.prepend(element, iconElement.get(0))\r\n }\r\n }\r\n };\r\n ko.virtualElements.allowedBindings.dxIcon = true\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/validation.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Guid from \"../../core/guid\";\r\nimport ko from \"knockout\";\r\nif (ko) {\r\n var VALIDATION_STATUS_VALID = \"valid\";\r\n var VALIDATION_STATUS_PENDING = \"pending\";\r\n var koDxValidator = Class.inherit({\r\n ctor(target, _ref) {\r\n var {\r\n name: name,\r\n validationRules: validationRules\r\n } = _ref;\r\n this.target = target;\r\n this.name = name;\r\n this.isValid = ko.observable(true);\r\n this.validationError = ko.observable();\r\n this.validationErrors = ko.observable();\r\n this.validationStatus = ko.observable(VALIDATION_STATUS_VALID);\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.validationRules = map(validationRules, (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }));\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n validate() {\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n var value = this.target();\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result = ValidationEngine.validate(value, this.validationRules, this.name);\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n this.target(null);\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._applyValidationResult(result);\r\n return result\r\n },\r\n _applyValidationResult(result) {\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n this.target.dxValidator.isValid(this._validationInfo.result.isValid);\r\n this.target.dxValidator.validationError(this._validationInfo.result.brokenRule);\r\n this.target.dxValidator.validationErrors(this._validationInfo.result.brokenRules);\r\n this.target.dxValidator.validationStatus(this._validationInfo.result.status);\r\n if (result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (result.status !== VALIDATION_STATUS_PENDING) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result]);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n });\r\n ko.extenders.dxValidator = function(target, option) {\r\n target.dxValidator = new koDxValidator(target, option);\r\n target.subscribe(target.dxValidator.validate.bind(target.dxValidator));\r\n return target\r\n };\r\n ValidationEngine.registerModelForValidation = function(model) {\r\n each(model, (function(name, member) {\r\n if (ko.isObservable(member) && member.dxValidator) {\r\n ValidationEngine.registerValidatorInGroup(model, member.dxValidator)\r\n }\r\n }))\r\n };\r\n ValidationEngine.unregisterModelForValidation = function(model) {\r\n each(model, (function(name, member) {\r\n if (ko.isObservable(member) && member.dxValidator) {\r\n ValidationEngine.removeRegisteredValidator(model, member.dxValidator)\r\n }\r\n }))\r\n };\r\n ValidationEngine.validateModel = ValidationEngine.validateGroup\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/variable_wrapper_utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nif (ko) {\r\n variableWrapper.inject({\r\n isWrapped: ko.isObservable,\r\n isWritableWrapped: ko.isWritableObservable,\r\n wrap: ko.observable,\r\n unwrap: function(value) {\r\n if (ko.isObservable(value)) {\r\n return ko.utils.unwrapObservable(value)\r\n }\r\n return this.callBase(value)\r\n },\r\n assign: function(variable, value) {\r\n if (ko.isObservable(variable)) {\r\n variable(value)\r\n } else {\r\n this.callBase(variable, value)\r\n }\r\n }\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/clean_node.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n afterCleanData,\r\n strategyChanging,\r\n cleanData\r\n} from \"../../core/element_data\";\r\nimport ko from \"knockout\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getClosestNodeWithKoCreation\r\n} from \"./utils\";\r\nif (ko) {\r\n var originalKOCleanExternalData = ko.utils.domNodeDisposal.cleanExternalData;\r\n var patchCleanData = function() {\r\n afterCleanData((function(nodes) {\r\n var i;\r\n for (i = 0; i < nodes.length; i++) {\r\n nodes[i].cleanedByJquery = true\r\n }\r\n for (i = 0; i < nodes.length; i++) {\r\n if (!nodes[i].cleanedByKo) {\r\n ko.cleanNode(nodes[i])\r\n }\r\n delete nodes[i].cleanedByKo\r\n }\r\n for (i = 0; i < nodes.length; i++) {\r\n delete nodes[i].cleanedByJquery\r\n }\r\n }));\r\n ko.utils.domNodeDisposal.cleanExternalData = function(node) {\r\n node.cleanedByKo = true;\r\n if (getClosestNodeWithKoCreation(node)) {\r\n if (!node.cleanedByJquery) {\r\n cleanData([node])\r\n }\r\n }\r\n }\r\n };\r\n var restoreOriginCleanData = function() {\r\n afterCleanData((function() {}));\r\n ko.utils.domNodeDisposal.cleanExternalData = originalKOCleanExternalData\r\n };\r\n patchCleanData();\r\n strategyChanging.add((function(strategy) {\r\n var isJQuery = !!strategy.fn;\r\n if (isJQuery && compareVersion(strategy.fn.jquery, [2, 0]) < 0) {\r\n restoreOriginCleanData()\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout/clean_node_old.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../../core/utils/version\";\r\nimport {\r\n strategyChanging\r\n} from \"../../core/element_data\";\r\nif (ko) {\r\n var patchCleanData = function(jQuery) {\r\n var cleanKoData = function(element, andSelf) {\r\n var cleanNode = function() {\r\n ko.cleanNode(this)\r\n };\r\n if (andSelf) {\r\n element.each(cleanNode)\r\n } else {\r\n element.find(\"*\").each(cleanNode)\r\n }\r\n };\r\n var originalEmpty = jQuery.fn.empty;\r\n jQuery.fn.empty = function() {\r\n cleanKoData(this, false);\r\n return originalEmpty.apply(this, arguments)\r\n };\r\n var originalRemove = jQuery.fn.remove;\r\n jQuery.fn.remove = function(selector, keepData) {\r\n if (!keepData) {\r\n var subject = this;\r\n if (selector) {\r\n subject = subject.filter(selector)\r\n }\r\n cleanKoData(subject, true)\r\n }\r\n return originalRemove.call(this, selector, keepData)\r\n };\r\n var originalHtml = jQuery.fn.html;\r\n jQuery.fn.html = function(value) {\r\n if (\"string\" === typeof value) {\r\n cleanKoData(this, false)\r\n }\r\n return originalHtml.apply(this, arguments)\r\n };\r\n var originalReplaceWith = jQuery.fn.replaceWith;\r\n jQuery.fn.replaceWith = function() {\r\n var result = originalReplaceWith.apply(this, arguments);\r\n if (!this.parent().length) {\r\n cleanKoData(this, true)\r\n }\r\n return result\r\n }\r\n };\r\n strategyChanging.add((function(strategy) {\r\n var isJQuery = !!strategy.fn;\r\n if (isJQuery && compareVersion(strategy.fn.jquery, [2, 0]) < 0) {\r\n patchCleanData(strategy)\r\n }\r\n }))\r\n}\r\n","/**\r\n * DevExtreme (esm/integration/knockout.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ko from \"knockout\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n compare as compareVersion\r\n} from \"../core/utils/version\";\r\nif (ko) {\r\n if (compareVersion(ko.version, [2, 3]) < 0) {\r\n throw errors.Error(\"E0013\")\r\n }\r\n}\r\nimport \"./knockout/component_registrator\";\r\nimport \"./knockout/event_registrator\";\r\nimport \"./knockout/components\";\r\nimport \"./knockout/validation\";\r\nimport \"./knockout/variable_wrapper_utils\";\r\nimport \"./knockout/clean_node\";\r\nimport \"./knockout/clean_node_old\";\r\n","/**\r\n * DevExtreme (esm/localization.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./localization/core\";\r\nimport message from \"./localization/message\";\r\nimport number from \"./localization/number\";\r\nimport date from \"./localization/date\";\r\nimport \"./localization/currency\";\r\nexport var locale = core.locale.bind(core);\r\nexport var loadMessages = message.load.bind(message);\r\nexport var formatMessage = message.format.bind(message);\r\nexport var formatNumber = number.format.bind(number);\r\nexport var parseNumber = number.parse.bind(number);\r\nexport var formatDate = date.format.bind(date);\r\nexport var parseDate = date.parse.bind(date);\r\nexport {\r\n message,\r\n number,\r\n date\r\n};\r\nexport function disableIntl() {\r\n if (\"intl\" === number.engine()) {\r\n number.resetInjection()\r\n }\r\n if (\"intl\" === date.engine()) {\r\n date.resetInjection()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/currency.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nexport default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar NARROW_NO_BREAK_SPACE_REGEX = /[\\u202F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\").replace(NARROW_NO_BREAK_SPACE_REGEX, \" \")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange,\r\n multiplyInExponentialForm\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\nvar PERCENT_EXPONENT_SHIFT = 2;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n if (isPercentFormat(numberFormat)) {\r\n value = multiplyInExponentialForm(value, PERCENT_EXPONENT_SHIFT)\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(\"%\", \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => localeData[locale] || {};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport var defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxDateRangeBox-invalidStartDateMessage\": \"Start value must be a date\",\r\n \"dxDateRangeBox-invalidEndDateMessage\": \"End value must be a date\",\r\n \"dxDateRangeBox-startDateOutOfRangeMessage\": \"Start date is out of range\",\r\n \"dxDateRangeBox-endDateOutOfRangeMessage\": \"End date is out of range\",\r\n \"dxDateRangeBox-startDateLabel\": \"Start Date\",\r\n \"dxDateRangeBox-endDateLabel\": \"End Date\",\r\n \"dxFileUploader-selectFile\": \"Select a file\",\r\n \"dxFileUploader-dropFile\": \"or Drop a file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"kb\",\r\n \"dxFileUploader-Mb\": \"Mb\",\r\n \"dxFileUploader-Gb\": \"Gb\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserText\": \"Use {0} to display columns\",\r\n \"dxDataGrid-emptyHeaderWithGroupPanelText\": \"Drag a column from the group panel here\",\r\n \"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\": \"Use {0} or drag a column from the group panel\",\r\n \"dxDataGrid-emptyHeaderColumnChooserText\": \"column chooser\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-ariaSearchBox\": \"Search box\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows to {0}\",\r\n \"dxDataGrid-exportAll\": \"Export all data to {0}\",\r\n \"dxDataGrid-headerFilterLabel\": \"Filter options\",\r\n \"dxDataGrid-headerFilterIndicatorLabel\": \"Show filter options for column '{0}'\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid with {0} rows and {1} columns\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSize\": \"Items per page: {0}\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPager-page\": \"Page {0}\",\r\n \"dxPager-prevPage\": \"Previous Page\",\r\n \"dxPager-nextPage\": \"Next Page\",\r\n \"dxPager-ariaLabel\": \"Page Navigation\",\r\n \"dxPager-ariaPageSize\": \"Page size\",\r\n \"dxPager-ariaPageNumber\": \"Page number\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxCalendar-ariaHotKeysInfo\": \"To navigate between views, press Control, and then Left Arrow or Right Arrow. To zoom in on a view, press Control, and then Down Arrow. To zoom out, press Control, and then Up Arrow.\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-dialogUpdateImageCaption\": \"Update Image\",\r\n \"dxHtmlEditor-dialogImageUpdateButton\": \"Update\",\r\n \"dxHtmlEditor-dialogImageAddButton\": \"Add\",\r\n \"dxHtmlEditor-dialogImageSpecifyUrl\": \"From the Web\",\r\n \"dxHtmlEditor-dialogImageSelectFile\": \"From This Device\",\r\n \"dxHtmlEditor-dialogImageKeepAspectRatio\": \"Keep Aspect Ratio\",\r\n \"dxHtmlEditor-dialogImageEncodeToBase64\": \"Encode to Base64\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-editingDownloadSingleItemErrorMessage\": \"Item was not downloaded\",\r\n \"dxFileManager-editingDownloadMultipleItemsErrorMessage\": \"{0} items were not downloaded\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop a file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. How would you like to proceed?\",\r\n \"dxGantt-dialogDeleteDependenciesMessage\": \"Delete the dependency relations\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\": \"Move the task and keep the dependencies\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n// !!! AUTO-GENERATED FILE, DO NOT EDIT\r\nexport default {\r\n af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar CURRENCY_STYLES = [\"standard\", \"accounting\"];\r\nvar MAX_FRACTION_DIGITS = 20;\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n var fractionDigits = String(value).split(\".\")[1];\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: fractionDigits && fractionDigits.length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n var _formatConfig$useCurr;\r\n var useAccountingStyle = null !== (_formatConfig$useCurr = formatConfig.useCurrencyAccountingStyle) && void 0 !== _formatConfig$useCurr ? _formatConfig$useCurr : dxConfig().defaultUseCurrencyAccountingStyle;\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency;\r\n config.currencySign = CURRENCY_STYLES[+useAccountingStyle]\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: MAX_FRACTION_DIGITS\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/open_xml_currency_format.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (NUMERIC_FORMATS.includes(value)) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replace(new RegExp(\"\\\\\".concat(char), \"g\"), \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(/ /g, \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(/1/g, \".*\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = Object.keys(LargeNumberFormatPostfixes).find(power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign,\r\n multiplyInExponentialForm\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var intermediateValue = multiplyInExponentialForm(value, precision);\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n var nextSibling = element.nextSibling;\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.insertBefore(element, nextSibling);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/mutations_recording.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction isChildNode(node) {\r\n return \"function\" === typeof node.remove\r\n}\r\n\r\nfunction revertMutation(_ref) {\r\n var {\r\n addedNodes: addedNodes,\r\n type: type\r\n } = _ref;\r\n switch (type) {\r\n case \"childList\":\r\n addedNodes.forEach(n => isChildNode(n) && n.remove())\r\n }\r\n}\r\nexport function recordMutations(target, func) {\r\n var observer = new MutationObserver(() => {});\r\n observer.observe(target, {\r\n childList: true,\r\n subtree: false\r\n });\r\n func();\r\n var mutations = observer.takeRecords();\r\n observer.disconnect();\r\n return () => mutations.forEach(revertMutation)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"isEqual\"];\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n recordMutations\r\n} from \"./mutations_recording\";\r\n\r\nfunction isDxElementWrapper(element) {\r\n return !!element.toArray\r\n}\r\nexport function buildTemplateArgs(model, template) {\r\n var _model$data;\r\n var args = {\r\n template: template,\r\n model: _extends({}, model)\r\n };\r\n var _ref = null !== (_model$data = model.data) && void 0 !== _model$data ? _model$data : {},\r\n {\r\n isEqual: isEqual\r\n } = _ref,\r\n data = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n if (isEqual) {\r\n args.model.data = data;\r\n args.isEqual = isEqual\r\n }\r\n return args\r\n}\r\n\r\nfunction buildTemplateContent(props, container) {\r\n var _props$model;\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_props$model = props.model) && void 0 !== _props$model ? _props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var rendered = props.template.render(_extends({\r\n container: container,\r\n transclude: props.transclude\r\n }, {\r\n renovated: props.renovated\r\n }, !props.transclude ? {\r\n model: data\r\n } : {}, !props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {}));\r\n if (void 0 === rendered) {\r\n return []\r\n }\r\n return isDxElementWrapper(rendered) ? rendered.toArray() : [$(rendered).get(0)]\r\n}\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.cleanParent = noop;\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var node = findDOMfromVNode(this.$LI, true);\r\n var container = node.parentElement;\r\n this.cleanParent();\r\n this.cleanParent = recordMutations(container, () => {\r\n var content = buildTemplateContent(this.props, getPublicElement($(container)));\r\n if (0 !== content.length && !(1 === content.length && content[0] === container)) {\r\n node.after(...content)\r\n }\r\n })\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n isEqual: isEqual,\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var equalityComparer = null !== isEqual && void 0 !== isEqual ? isEqual : shallowEquals;\r\n if (template !== nextTemplate) {\r\n return true\r\n }\r\n if (!isDefined(model) || !isDefined(nextModel)) {\r\n return model !== nextModel\r\n }\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n if (index !== nextIndex) {\r\n return true\r\n }\r\n return !equalityComparer(data, nextData)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {\r\n this.cleanParent()\r\n }\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper,\r\n buildTemplateArgs\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/core/emitter.feedback\";\r\nimport \"../../../events/hover\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n return extend(true, super._getDefaultOptions(), viewDefaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: viewDefaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var viewDefaultProps = this._getViewComponentDefaultProps();\r\n var defaultWidgetPropsKeys = Object.keys(viewDefaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, buildTemplateArgs(model, template))\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n _getViewComponentDefaultProps() {\r\n return this._viewComponent.defaultProps || {}\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nvar defaultNotDeepCopyArrays = [\"dataSource\", \"selectedRowKeys\"];\r\nvar propsToIgnore = {\r\n integrationOptions: true\r\n};\r\n\r\nfunction getDiffItem(key, value, previousValue) {\r\n return {\r\n path: key,\r\n value: value,\r\n previousValue: previousValue\r\n }\r\n}\r\n\r\nfunction compare(resultPaths, item1, item2, key, fullPropName, notDeepCopyArrays) {\r\n if (propsToIgnore[key]) {\r\n return\r\n }\r\n var type1 = type(item1);\r\n var type2 = type(item2);\r\n if (item1 === item2) {\r\n return\r\n }\r\n if (type1 !== type2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (\"object\" === type1) {\r\n if (!isPlainObject(item2)) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n resultPaths.push(...diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key, \".\").concat(item.path)\r\n })))\r\n }\r\n } else if (\"array\" === type1) {\r\n var notDeepCopy = notDeepCopyArrays.some(prop => fullPropName.includes(prop));\r\n if (notDeepCopy && item1 !== item2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (item1.length !== item2.length) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var _diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n [].push.apply(resultPaths, _diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key).concat(item.path)\r\n })))\r\n }\r\n } else {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n }\r\n}\r\nvar objectDiffsFiltered = propsEnumerator => (oldProps, props, fullPropName, notDeepCopyArrays) => {\r\n var resultPaths = [];\r\n var processItem = !Array.isArray(oldProps) ? propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], propName, \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n } : propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], \"[\".concat(propName, \"]\"), \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n };\r\n propsEnumerator(oldProps).forEach(processItem);\r\n Object.keys(props).filter(propName => !Object.prototype.hasOwnProperty.call(oldProps, propName) && oldProps[propName] !== props[propName]).forEach(propName => {\r\n resultPaths.push({\r\n path: propName,\r\n value: props[propName],\r\n previousValue: oldProps[propName]\r\n })\r\n });\r\n return resultPaths\r\n};\r\nvar objectDiffs = objectDiffsFiltered(oldProps => Object.keys(oldProps));\r\nvar reactProps = {\r\n key: true,\r\n ref: true,\r\n children: true,\r\n style: true\r\n};\r\nvar objectDiffsWithoutReactProps = objectDiffsFiltered(prop => Object.keys(prop).filter(p => !reactProps[p]));\r\nexport function getUpdatedOptions(oldProps, props) {\r\n var notDeepCopyArrays = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : defaultNotDeepCopyArrays;\r\n return objectDiffsWithoutReactProps(oldProps, props, \"\", notDeepCopyArrays)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"templateNames\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderTemplate,\r\n hasTemplate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n getUpdatedOptions\r\n} from \"./utils/get_updated_options\";\r\nvar normalizeProps = props => Object.keys(props).reduce((accumulator, key) => {\r\n if (void 0 !== props[key]) {\r\n accumulator[key] = props[key]\r\n }\r\n return accumulator\r\n}, {});\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config, this.props.templateNames])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config, this.props.templateNames])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n updateWidget() {\r\n var instance = this.getInstance();\r\n if (!instance) {\r\n return\r\n }\r\n var updatedOptions = getUpdatedOptions(this.prevProps || {}, this.properties);\r\n if (updatedOptions.length) {\r\n instance.beginUpdate();\r\n updatedOptions.forEach(_ref2 => {\r\n var {\r\n path: path,\r\n value: value\r\n } = _ref2;\r\n instance.option(path, value)\r\n });\r\n instance.endUpdate()\r\n }\r\n this.prevProps = this.properties\r\n }\r\n get properties() {\r\n var _this$config;\r\n var normalizedProps = normalizeProps(this.props.componentProps);\r\n var {\r\n valueChange: valueChange\r\n } = normalizedProps, restProps = _objectWithoutPropertiesLoose(normalizedProps, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: !!(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled),\r\n isRenovated: true\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n return valueChange(value)\r\n }\r\n }\r\n var templates = this.props.templateNames;\r\n templates.forEach(name => {\r\n if (hasTemplate(name, properties, this)) {\r\n properties[name] = (item, index, container) => {\r\n renderTemplate(this.props.componentProps[name], {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, this)\r\n }\r\n }\r\n });\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = DomComponentWrapperProps;\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"./config_context\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n [ConfigContext.id]: this.config || ConfigContext.defaultValue\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dxClick,\r\n focus,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n subscribeToDxActiveEvent,\r\n subscribeToDxInactiveEvent,\r\n subscribeToDxHoverStartEvent,\r\n subscribeToDxHoverEndEvent,\r\n subscribeToDxFocusInEvent,\r\n subscribeToDxFocusOutEvent\r\n} from \"../../utils/subscribe_to_event\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n aria: Object.freeze({}),\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.inactiveEffect = this.inactiveEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusInEffect = this.focusInEffect.bind(this);\r\n this.focusOutEffect = this.focusOutEffect.bind(this);\r\n this.hoverStartEffect = this.hoverStartEffect.bind(this);\r\n this.hoverEndEffect = this.hoverEndEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.bind(this)\r\n }\r\n get config() {\r\n if (this.context[ConfigContext.id]) {\r\n return this.context[ConfigContext.id]\r\n }\r\n return ConfigContext.defaultValue\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]), new InfernoEffect(this.inactiveEffect, [this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusInEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]), new InfernoEffect(this.focusOutEffect, [this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]), new InfernoEffect(this.hoverStartEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.hoverEndEffect, [this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10, _this$_effects$11, _this$_effects$12, _this$_effects$13;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$11 = this._effects[11]) || void 0 === _this$_effects$11 ? void 0 : _this$_effects$11.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$12 = this._effects[12]) || void 0 === _this$_effects$12 ? void 0 : _this$_effects$12.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$13 = this._effects[13]) || void 0 === _this$_effects$13 ? void 0 : _this$_effects$13.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxActiveEvent(this.widgetElementRef.current, event => {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, {\r\n timeout: _feedbackShowTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n inactiveEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n return subscribeToDxInactiveEvent(this.widgetElementRef.current, event => {\r\n if (this.state.active) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }\r\n }, {\r\n timeout: _feedbackHideTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusInEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxFocusInEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n }, null, namespace)\r\n }\r\n }\r\n return\r\n }\r\n focusOutEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n return subscribeToDxFocusOutEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented() && this.state.focused) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(event)\r\n }\r\n }, null, namespace)\r\n }\r\n return\r\n }\r\n hoverStartEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxHoverStartEvent(this.widgetElementRef.current, event => {\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n hoverEndEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n return subscribeToDxHoverEndEvent(this.widgetElementRef.current, event => {\r\n if (this.state.hovered) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement(this.widgetElementRef.current);\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"boundary\", \"className\", \"contentId\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"mode\", \"offset\", \"onClick\", \"onKeyDown\", \"positionSide\", \"rtlEnabled\", \"tabIndex\", \"target\", \"validationErrors\", \"visible\", \"visualContainer\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyValidationMessage from \"../../../ui/validation_message\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../common/base_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyValidationMessage,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var ValidationMessageProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n mode: \"auto\",\r\n positionSide: \"top\",\r\n offset: Object.freeze({\r\n h: 0,\r\n v: 0\r\n }),\r\n isReactComponentWrapper: true\r\n})));\r\nexport class ValidationMessage extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get componentProps() {\r\n return this.props\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nValidationMessage.defaultProps = ValidationMessageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"inputAttr\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n Widget,\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../../common/base_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n ValidationMessage\r\n} from \"../../overlays/validation_message\";\r\nvar getCssClasses = model => {\r\n var {\r\n classes: classes,\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = model;\r\n var classesMap = {\r\n \"dx-state-readonly\": !!readOnly,\r\n \"dx-invalid\": !isValid,\r\n [\"\".concat(classes)]: !!classes\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n isValidationMessageVisible: isValidationMessageVisible,\r\n onFocusIn: onFocusIn,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n children: children,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rootElementRef: rootElementRef,\r\n validationErrors: validationErrors,\r\n validationMessageGuid: validationMessageGuid,\r\n validationMessageTarget: validationMessageTarget,\r\n widgetRef: widgetRef\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: rootElementRef,\r\n aria: aria,\r\n classes: classes,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n accessKey: accessKey,\r\n className: className,\r\n rtlEnabled: rtlEnabled,\r\n hint: hint,\r\n disabled: disabled,\r\n height: height,\r\n width: width,\r\n onFocusIn: onFocusIn,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n tabIndex: tabIndex,\r\n visible: visible\r\n }, restAttributes, {\r\n children: createFragment([children, isValidationMessageVisible && createComponentVNode(2, ValidationMessage, {\r\n validationErrors: validationErrors,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n rtlEnabled: rtlEnabled,\r\n target: validationMessageTarget,\r\n boundary: validationMessageTarget,\r\n visualContainer: validationMessageTarget,\r\n contentId: validationMessageGuid\r\n })], 0)\r\n }), null, widgetRef))\r\n};\r\nexport var EditorProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n readOnly: false,\r\n name: \"\",\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationStatus: \"valid\",\r\n isValid: true,\r\n inputAttr: Object.freeze({}),\r\n defaultValue: null,\r\n valueChange: () => {}\r\n})));\r\nexport var EditorPropsType = {\r\n get readOnly() {\r\n return EditorProps.readOnly\r\n },\r\n get name() {\r\n return EditorProps.name\r\n },\r\n get validationError() {\r\n return EditorProps.validationError\r\n },\r\n get validationErrors() {\r\n return EditorProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return EditorProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return EditorProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\r\n },\r\n get inputAttr() {\r\n return EditorProps.inputAttr\r\n },\r\n get defaultValue() {\r\n return EditorProps.defaultValue\r\n },\r\n get valueChange() {\r\n return EditorProps.valueChange\r\n },\r\n get className() {\r\n return EditorProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return EditorProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return EditorProps.tabIndex\r\n },\r\n get visible() {\r\n return EditorProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n },\r\n get classes() {\r\n return WidgetProps.classes\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Editor extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetRef = infernoCreateRef();\r\n this.rootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.state = {\r\n validationMessageGuid: \"dx-\".concat(new Guid),\r\n isValidationMessageVisible: false,\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.updateValidationMessageVisibility = this.updateValidationMessageVisibility.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onFocusIn = this.onFocusIn.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateValidationMessageVisibility, [this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors])\r\n }\r\n updateValidationMessageVisibility() {\r\n this.setState(__state_argument => ({\r\n isValidationMessageVisible: this.shouldShowValidationMessage\r\n }))\r\n }\r\n onFocusIn(event) {\r\n var {\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n get cssClasses() {\r\n return \"\".concat(getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })))\r\n }\r\n get shouldShowValidationMessage() {\r\n var _this$validationError;\r\n var {\r\n isValid: isValid,\r\n validationStatus: validationStatus\r\n } = this.props;\r\n var validationErrors = null !== (_this$validationError = this.validationErrors) && void 0 !== _this$validationError ? _this$validationError : [];\r\n var isEditorValid = isValid && \"invalid\" !== validationStatus;\r\n return !isEditorValid && validationErrors.length > 0\r\n }\r\n get aria() {\r\n var {\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = this.props;\r\n var result = {\r\n readonly: readOnly ? \"true\" : \"false\",\r\n invalid: !isValid ? \"true\" : \"false\"\r\n };\r\n if (this.shouldShowValidationMessage) {\r\n result.describedBy = this.state.validationMessageGuid\r\n }\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get validationErrors() {\r\n if (void 0 !== this.__getterCache.validationErrors) {\r\n return this.__getterCache.validationErrors\r\n }\r\n return this.__getterCache.validationErrors = (() => {\r\n var {\r\n validationError: validationError,\r\n validationErrors: validationErrors\r\n } = this.props;\r\n var allValidationErrors = validationErrors && [...validationErrors];\r\n if (!allValidationErrors && validationError) {\r\n allValidationErrors = [_extends({}, validationError)]\r\n }\r\n return allValidationErrors\r\n })()\r\n }\r\n get validationMessageTarget() {\r\n var _this$rootElementRef;\r\n return null === (_this$rootElementRef = this.rootElementRef) || void 0 === _this$rootElementRef ? void 0 : _this$rootElementRef.current\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n blur() {\r\n this.widgetRef.current.blur()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.validationError !== nextProps.validationError || this.props.validationErrors !== nextProps.validationErrors) {\r\n this.__getterCache.validationErrors = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n validationMessageGuid: this.state.validationMessageGuid,\r\n isValidationMessageVisible: this.state.isValidationMessageVisible,\r\n rootElementRef: this.rootElementRef,\r\n widgetRef: this.widgetRef,\r\n onFocusIn: this.onFocusIn,\r\n cssClasses: this.cssClasses,\r\n shouldShowValidationMessage: this.shouldShowValidationMessage,\r\n aria: this.aria,\r\n validationErrors: this.validationErrors,\r\n validationMessageTarget: this.validationMessageTarget,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nEditor.defaultProps = EditorPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Editor.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Editor.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var SCROLL_LINE_HEIGHT = 40;\r\nexport var DIRECTION_VERTICAL = \"vertical\";\r\nexport var DIRECTION_HORIZONTAL = \"horizontal\";\r\nexport var DIRECTION_BOTH = \"both\";\r\nexport var SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nexport var SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nexport var SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nexport var SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nexport var SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nexport var SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nexport var SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nexport var SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nexport var SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nexport var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"dx-scrollable-scrollbar-active\";\r\nexport var SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nexport var SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nexport var HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nexport var SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport var SCROLLVIEW_TOP_POCKET_CLASS = \"dx-scrollview-top-pocket\";\r\nexport var SCROLLVIEW_PULLDOWN = \"dx-scrollview-pull-down\";\r\nexport var SCROLLVIEW_PULLDOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nexport var SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nexport var SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nexport var SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nexport var SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nexport var SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nexport var PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nexport var SCROLLVIEW_BOTTOM_POCKET_CLASS = \"dx-scrollview-bottom-pocket\";\r\nexport var SCROLLVIEW_REACHBOTTOM_CLASS = \"dx-scrollview-scrollbottom\";\r\nexport var SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"dx-scrollview-scrollbottom-indicator\";\r\nexport var SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"dx-scrollview-scrollbottom-text\";\r\nexport var TopPocketState = {\r\n STATE_RELEASED: 0,\r\n STATE_READY: 1,\r\n STATE_REFRESHING: 2,\r\n STATE_LOADING: 3,\r\n STATE_TOUCHED: 4,\r\n STATE_PULLED: 5\r\n};\r\nexport var ShowScrollbarMode = {\r\n HOVER: \"onHover\",\r\n ALWAYS: \"always\",\r\n NEVER: \"never\",\r\n SCROLL: \"onScroll\"\r\n};\r\nexport var KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\"\r\n};\r\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElementClass, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var element = sourceElement;\r\n while (null !== (_element = element) && void 0 !== _element && _element.offsetParent && !element.classList.contains(targetElementClass)) {\r\n var _element;\r\n var parentElement = element.offsetParent;\r\n var elementRect = element.getBoundingClientRect();\r\n var parentElementRect = parentElement.getBoundingClientRect();\r\n offset.left += elementRect.left - parentElementRect.left;\r\n offset.top += elementRect.top - parentElementRect.top;\r\n element = element.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nexport default function getElementComputedStyle(el) {\r\n var _window$getComputedSt;\r\n var window = getWindow();\r\n return el ? null === (_window$getComputedSt = window.getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport * as clickEvent from \"../../events/click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler, eventData, namespace) => {\r\n var event = namespace ? addNamespace(eventName, namespace) : eventName;\r\n if (handler) {\r\n eventsEngine.on(element, event, eventData, handler);\r\n return () => {\r\n eventsEngine.off(element, event, handler)\r\n }\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(scrollEvents.scroll);\r\nexport var subscribeToScrollInitEvent = subscribeToEvent(scrollEvents.init);\r\nexport var subscribeToDXScrollStartEvent = subscribeToEvent(scrollEvents.start);\r\nexport var subscribeToDXScrollMoveEvent = subscribeToEvent(scrollEvents.move);\r\nexport var subscribeToDXScrollEndEvent = subscribeToEvent(scrollEvents.end);\r\nexport var subscribeToDXScrollStopEvent = subscribeToEvent(scrollEvents.stop);\r\nexport var subscribeToDXScrollCancelEvent = subscribeToEvent(scrollEvents.cancel);\r\nexport var subscribeToDXPointerDownEvent = subscribeToEvent(pointerEvents.down);\r\nexport var subscribeToDXPointerUpEvent = subscribeToEvent(pointerEvents.up);\r\nexport var subscribeToDXPointerMoveEvent = subscribeToEvent(pointerEvents.move);\r\nexport var subscribeToMouseEnterEvent = subscribeToEvent(\"mouseenter\");\r\nexport var subscribeToMouseLeaveEvent = subscribeToEvent(\"mouseleave\");\r\nexport var subscribeToKeyDownEvent = subscribeToEvent(\"keydown\");\r\nexport var subscribeToDxActiveEvent = subscribeToEvent(\"dxactive\");\r\nexport var subscribeToDxInactiveEvent = subscribeToEvent(\"dxinactive\");\r\nexport var subscribeToDxHoverStartEvent = subscribeToEvent(\"dxhoverstart\");\r\nexport var subscribeToDxHoverEndEvent = subscribeToEvent(\"dxhoverend\");\r\nexport var subscribeToDxFocusInEvent = subscribeToEvent(\"focusin\");\r\nexport var subscribeToDxFocusOutEvent = subscribeToEvent(\"focusout\");\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix,\r\n setStyle\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_FLEX_CLASS = \"dx-box-flex\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar SHRINK = 1;\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n setStyle(element, styleExpr, false)\r\n }\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass LayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(BOX_FLEX_CLASS);\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = new LayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements())\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\");\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n config: Object.freeze({})\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport errors from \"../../core/errors\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), new InfernoEffect(this.checkDeprecation, [this.props.type]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.onSubmit, this.props.useSubmitBehavior]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.type])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n type: type\r\n } = this.props;\r\n if (\"back\" === type) {\r\n errors.log(\"W0016\", \"type\", \"back\", \"22.2\", \"Use the 'back' icon instead\")\r\n }\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = null !== text && void 0 !== text ? text : \"\";\r\n if (!text && icon) {\r\n var iconSource = getImageSourceType(icon);\r\n switch (iconSource) {\r\n case \"image\":\r\n var isPathToImage = !icon.includes(\"base64\") && /^(?!(?:https?:\\/\\/)|(?:ftp:\\/\\/)|(?:www\\.))[^\\s]+$/.test(icon);\r\n label = isPathToImage ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"\";\r\n break;\r\n case \"dxIcon\":\r\n label = messageLocalization.format(camelize(icon, true)) || icon;\r\n break;\r\n case \"fontIcon\":\r\n label = icon;\r\n break;\r\n case \"svg\":\r\n var _titleRegexp$exec$, _titleRegexp$exec;\r\n var title = null !== (_titleRegexp$exec$ = null === (_titleRegexp$exec = /(.*?)<\\/title>/.exec(icon)) || void 0 === _titleRegexp$exec ? void 0 : _titleRegexp$exec[1]) && void 0 !== _titleRegexp$exec$ ? _titleRegexp$exec$ : \"\";\r\n label = title\r\n }\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon,\r\n type: type\r\n } = this.props;\r\n if (icon || \"back\" === type) {\r\n return (null !== icon && void 0 !== icon ? icon : \"\") || \"back\"\r\n }\r\n return \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.props;\r\n return !text && icon || \"back\" === type ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text || this.props.type !== nextProps.type) {\r\n this.__getterCache.inkRippleConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/button.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nclass Navigator extends Widget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n type: \"normal\",\r\n stylingMode: \"outlined\",\r\n text: \"\"\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n type: \"default\",\r\n stylingMode: \"text\"\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this._initActions()\r\n }\r\n _initActions() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n }\r\n _renderButtons() {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n type: type,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n this._prevButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: false,\r\n icon: rtlEnabled ? \"chevronright\" : \"chevronleft\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: -1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: false,\r\n icon: rtlEnabled ? \"chevronleft\" : \"chevronright\",\r\n onClick: e => {\r\n this._clickAction({\r\n direction: 1,\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"<div>\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this._captionClickAction({\r\n event: e\r\n })\r\n },\r\n type: type,\r\n stylingMode: stylingMode,\r\n template: (_, content) => {\r\n var {\r\n text: text\r\n } = this.option();\r\n var viewCaptionTexts = text.split(\" - \");\r\n viewCaptionTexts.forEach(captionText => {\r\n $(content).append($(\"<span>\").addClass(BUTTON_TEXT_CLASS).text(captionText))\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n }\r\n _renderCaption() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n }\r\n toggleButton(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n}\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n start as hoverStartEventName\r\n} from \"../../events/hover\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_CELL_START_CLASS = \"dx-calendar-cell-start\";\r\nvar CALENDAR_CELL_END_CLASS = \"dx-calendar-cell-end\";\r\nvar CALENDAR_CELL_START_IN_ROW_CLASS = \"dx-calendar-cell-start-in-row\";\r\nvar CALENDAR_CELL_END_IN_ROW_CLASS = \"dx-calendar-cell-end-in-row\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CELL_IN_RANGE_CLASS = \"dx-calendar-cell-in-range\";\r\nvar CALENDAR_CELL_RANGE_HOVER_CLASS = \"dx-calendar-cell-range-hover\";\r\nvar CALENDAR_CELL_RANGE_HOVER_START_CLASS = \"dx-calendar-cell-range-hover-start\";\r\nvar CALENDAR_CELL_RANGE_HOVER_END_CLASS = \"dx-calendar-cell-range-hover-end\";\r\nvar CALENDAR_RANGE_START_DATE_CLASS = \"dx-calendar-range-start-date\";\r\nvar CALENDAR_RANGE_END_DATE_CLASS = \"dx-calendar-range-end-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar NOT_WEEK_CELL_SELECTOR = \"td:not(.\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS, \")\");\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DXHOVERSTART_EVENT_NAME = addNamespace(hoverStartEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n onCellHover: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderRange();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"<table>\");\r\n var localizedWidgetName = messageLocalization.format(\"dxCalendar-ariaWidgetName\");\r\n var localizedHotKeysInfo = messageLocalization.format(\"dxCalendar-ariaHotKeysInfo\");\r\n this.setAria({\r\n label: \"\".concat(localizedWidgetName, \". \").concat(localizedHotKeysInfo),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"<tbody>\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n this._renderWeekNumberCell(rowData)\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _createCell: function(cellDate, cellIndex) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate, cellIndex);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate, cellIndex);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n $(row).append(cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate, cellIndex) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n if (0 === cellIndex) {\r\n className += \" \".concat(CALENDAR_CELL_START_IN_ROW_CLASS)\r\n }\r\n if (cellIndex === this.option(\"colCount\") - 1) {\r\n className += \" \".concat(CALENDAR_CELL_END_IN_ROW_CLASS)\r\n }\r\n if (this._isStartDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_START_CLASS)\r\n }\r\n if (this._isEndDayOfMonth(cellDate)) {\r\n className += \" \".concat(CALENDAR_CELL_END_CLASS)\r\n }\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n var isDateCell = cellDate instanceof Date;\r\n var text = isDateCell ? this._getCellText(cellDate) : cellDate;\r\n var date = isDateCell ? cellDate : void 0;\r\n var view = this._getViewName();\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n view: view\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n });\r\n eventsEngine.off(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME);\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n this._createCellHoverAction();\r\n eventsEngine.on(this._$table, CALENDAR_DXHOVERSTART_EVENT_NAME, NOT_WEEK_CELL_SELECTOR, e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellHoverAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n }\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createCellHoverAction: function() {\r\n this._cellHoverAction = this._createActionByOption(\"onCellHover\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _isStartDayOfMonth: abstract,\r\n _isEndDayOfMonth: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n if (contouredDate) {\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n }\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n if (!Array.isArray(value)) {\r\n value = [value]\r\n }\r\n this._updateSelectedClass(value)\r\n },\r\n _updateSelectedClass: function(value) {\r\n var _this$_$selectedCells;\r\n null === (_this$_$selectedCells = this._$selectedCells) || void 0 === _this$_$selectedCells ? void 0 : _this$_$selectedCells.forEach($cell => {\r\n $cell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n });\r\n this._$selectedCells = value.map(value => this._getCellByDate(value));\r\n this._$selectedCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_SELECTED_DATE_CLASS)\r\n })\r\n },\r\n _renderRange: function() {\r\n var _this$_$rangeCells, _this$_$hoveredRangeC, _this$_$rangeStartHov, _this$_$rangeEndHover, _this$_$rangeStartDat, _this$_$rangeEndDateC, _this$_$rangeStartDat2, _this$_$rangeEndDateC2;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n selectionMode: selectionMode,\r\n value: value,\r\n range: range\r\n } = this.option();\r\n if (!allowValueSelection || \"range\" !== selectionMode) {\r\n return\r\n }\r\n null === (_this$_$rangeCells = this._$rangeCells) || void 0 === _this$_$rangeCells ? void 0 : _this$_$rangeCells.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_this$_$hoveredRangeC = this._$hoveredRangeCells) || void 0 === _this$_$hoveredRangeC ? void 0 : _this$_$hoveredRangeC.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov ? void 0 : _this$_$rangeStartHov.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover ? void 0 : _this$_$rangeEndHover.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n null === (_this$_$rangeStartDat = this._$rangeStartDateCell) || void 0 === _this$_$rangeStartDat ? void 0 : _this$_$rangeStartDat.removeClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_this$_$rangeEndDateC = this._$rangeEndDateCell) || void 0 === _this$_$rangeEndDateC ? void 0 : _this$_$rangeEndDateC.removeClass(CALENDAR_RANGE_END_DATE_CLASS);\r\n this._$rangeCells = range.map(value => this._getCellByDate(value));\r\n this._$rangeStartDateCell = this._getCellByDate(value[0]);\r\n this._$rangeEndDateCell = this._getCellByDate(value[1]);\r\n this._$rangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_IN_RANGE_CLASS)\r\n });\r\n null === (_this$_$rangeStartDat2 = this._$rangeStartDateCell) || void 0 === _this$_$rangeStartDat2 ? void 0 : _this$_$rangeStartDat2.addClass(CALENDAR_RANGE_START_DATE_CLASS);\r\n null === (_this$_$rangeEndDateC2 = this._$rangeEndDateCell) || void 0 === _this$_$rangeEndDateC2 ? void 0 : _this$_$rangeEndDateC2.addClass(CALENDAR_RANGE_END_DATE_CLASS)\r\n },\r\n _renderHoveredRange() {\r\n var _this$_$hoveredRangeC2, _this$_$rangeStartHov2, _this$_$rangeEndHover2, _this$_$rangeStartHov3, _this$_$rangeEndHover3;\r\n var {\r\n allowValueSelection: allowValueSelection,\r\n selectionMode: selectionMode,\r\n hoveredRange: hoveredRange\r\n } = this.option();\r\n if (!allowValueSelection || \"range\" !== selectionMode) {\r\n return\r\n }\r\n null === (_this$_$hoveredRangeC2 = this._$hoveredRangeCells) || void 0 === _this$_$hoveredRangeC2 ? void 0 : _this$_$hoveredRangeC2.forEach($cell => {\r\n $cell.removeClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov2 = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov2 ? void 0 : _this$_$rangeStartHov2.removeClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover2 = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover2 ? void 0 : _this$_$rangeEndHover2.removeClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS);\r\n this._$hoveredRangeCells = hoveredRange.map(value => this._getCellByDate(value));\r\n this._$rangeStartHoverCell = this._getCellByDate(hoveredRange[0]);\r\n this._$rangeEndHoverCell = this._getCellByDate(hoveredRange[hoveredRange.length - 1]);\r\n this._$hoveredRangeCells.forEach($cell => {\r\n $cell.addClass(CALENDAR_CELL_RANGE_HOVER_CLASS)\r\n });\r\n null === (_this$_$rangeStartHov3 = this._$rangeStartHoverCell) || void 0 === _this$_$rangeStartHov3 ? void 0 : _this$_$rangeStartHov3.addClass(CALENDAR_CELL_RANGE_HOVER_START_CLASS);\r\n null === (_this$_$rangeEndHover3 = this._$rangeEndHoverCell) || void 0 === _this$_$rangeEndHover3 ? void 0 : _this$_$rangeEndHover3.addClass(CALENDAR_CELL_RANGE_HOVER_END_CLASS)\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getViewFirstCellDate(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"range\":\r\n this._renderRange();\r\n break;\r\n case \"hoveredRange\":\r\n this._renderHoveredRange();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"onCellHover\":\r\n this._createCellHoverAction();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport BaseView from \"./ui.calendar.base_view\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"<tr>\");\r\n var $header = $(\"<thead>\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n if (this.option(\"showWeekNumbers\")) {\r\n this._renderWeekHeaderCell($headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(firstDayOfWeek + cellIndex);\r\n var $cell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n $headerRow.append($cell)\r\n },\r\n _renderWeekHeaderCell: function($headerRow) {\r\n var $weekNumberHeaderCell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: \"WeekNumber\",\r\n class: \"dx-week-number-header\"\r\n });\r\n $headerRow.prepend($weekNumberHeaderCell)\r\n },\r\n _renderWeekNumberCell: function(rowData) {\r\n var {\r\n showWeekNumbers: showWeekNumbers,\r\n cellTemplate: cellTemplate\r\n } = this.option();\r\n if (!showWeekNumbers) {\r\n return\r\n }\r\n var weekNumber = this._getWeekNumber(rowData.prevCellDate);\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = CALENDAR_WEEK_NUMBER_CELL_CLASS;\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(weekNumber, -1, $cell))\r\n } else {\r\n cell.innerHTML = weekNumber\r\n }\r\n rowData.row.prepend(cell);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: \"Week \".concat(weekNumber)\r\n }, $cell)\r\n },\r\n _getWeekNumber: function(date) {\r\n var {\r\n weekNumberRule: weekNumberRule,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n if (\"auto\" === weekNumberRule) {\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, 1 === firstDayOfWeek ? \"firstFourDays\" : \"firstDay\")\r\n }\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, weekNumberRule)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _isStartDayOfMonth: function(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getFirstMonthDate(this.option(\"date\")))\r\n },\r\n _isEndDayOfMonth: function(cellDate) {\r\n return dateUtils.sameDate(cellDate, dateUtils.getLastMonthDate(this.option(\"date\")))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = firstDayOfWeek - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _isStartDayOfMonth: function() {\r\n return false\r\n },\r\n _isEndDayOfMonth: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.selection.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nclass CalendarSelectionStrategy {\r\n constructor(component) {\r\n this.calendar = component\r\n }\r\n dateOption(optionName) {\r\n return this.calendar._dateOption(optionName)\r\n }\r\n dateValue(value, e) {\r\n this.calendar._dateValue(value, e)\r\n }\r\n skipNavigate() {\r\n this.calendar._skipNavigate = true\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n this.calendar._updateAriaSelected(value, previousValue);\r\n if (value[0] && this.calendar.option(\"currentDate\").getTime() === value[0].getTime()) {\r\n this.calendar._updateAriaId(value[0])\r\n }\r\n }\r\n processValueChanged(value, previousValue) {\r\n var _value, _previousValue;\r\n value = (null === (_value = value) || void 0 === _value ? void 0 : _value.map(item => this._convertToDate(item))) || [];\r\n previousValue = (null === (_previousValue = previousValue) || void 0 === _previousValue ? void 0 : _previousValue.map(item => this._convertToDate(item))) || [];\r\n this._updateViewsValue(value);\r\n this.updateAriaSelected(value, previousValue);\r\n if (!this._currentDateChanged) {\r\n this.calendar._initCurrentDate()\r\n }\r\n this._currentDateChanged = false\r\n }\r\n _getLowestDateInArray(dates) {\r\n if (dates.length) {\r\n return new Date(Math.min(...dates))\r\n }\r\n }\r\n _convertToDate(value) {\r\n return this.calendar._convertToDate(value)\r\n }\r\n _isMaxZoomLevel() {\r\n return this.calendar._isMaxZoomLevel()\r\n }\r\n _updateViewsOption(optionName, optionValue) {\r\n this.calendar._updateViewsOption(optionName, optionValue)\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value)\r\n }\r\n _updateCurrentDate(value) {\r\n this.calendar.option(\"currentDate\", null !== value && void 0 !== value ? value : new Date)\r\n }\r\n}\r\nexport default CalendarSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.single.selection.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nclass CalendarSingleSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"SingleSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"value\"),\r\n range: [],\r\n selectionMode: \"single\"\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n this.skipNavigate();\r\n this.dateValue(selectedValue, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = [this.dateOption(\"value\")];\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n return this.dateOption(\"value\")\r\n }\r\n _updateViewsValue(value) {\r\n this._updateViewsOption(\"value\", value[0])\r\n }\r\n}\r\nexport default CalendarSingleSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.multi.selection.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nclass CalendarMultiSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"MultiSelection\"\r\n }\r\n getViewOptions() {\r\n return {\r\n value: this.dateOption(\"values\"),\r\n range: [],\r\n selectionMode: \"multi\"\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var values = [...this.dateOption(\"values\")];\r\n var alreadySelectedIndex = values.findIndex(date => (null === date || void 0 === date ? void 0 : date.toDateString()) === selectedValue.toDateString());\r\n if (alreadySelectedIndex > -1) {\r\n values.splice(alreadySelectedIndex, 1)\r\n } else {\r\n values.push(selectedValue)\r\n }\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n this.dateValue(values, e)\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = this.dateOption(\"values\");\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n getDefaultCurrentDate() {\r\n var dates = this.dateOption(\"values\").filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n}\r\nexport default CalendarMultiSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.range.selection.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport CalendarSelectionStrategy from \"./ui.calendar.selection.strategy\";\r\nvar DAY_INTERVAL = 864e5;\r\nvar RANGE_OFFSET = 120 * DAY_INTERVAL;\r\nclass CalendarRangeSelectionStrategy extends CalendarSelectionStrategy {\r\n constructor(component) {\r\n super(component);\r\n this.NAME = \"RangeSelection\"\r\n }\r\n getViewOptions() {\r\n var value = this._getValues();\r\n var range = this._getDaysInRange(value[0], value[1]);\r\n return {\r\n value: value,\r\n range: range,\r\n selectionMode: \"range\",\r\n onCellHover: this._cellHoverHandler.bind(this)\r\n }\r\n }\r\n selectValue(selectedValue, e) {\r\n var [startDate, endDate] = this._getValues();\r\n this.skipNavigate();\r\n this._updateCurrentDate(selectedValue);\r\n this._currentDateChanged = true;\r\n if (true === this.calendar.option(\"_allowChangeSelectionOrder\")) {\r\n this.calendar._valueSelected = true;\r\n if (\"startDate\" === this.calendar.option(\"_currentSelection\")) {\r\n if (this.calendar._convertToDate(selectedValue) > this.calendar._convertToDate(endDate)) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue([selectedValue, endDate], e)\r\n }\r\n } else if (this.calendar._convertToDate(selectedValue) >= this.calendar._convertToDate(startDate)) {\r\n this.dateValue([startDate, selectedValue], e)\r\n } else {\r\n this.dateValue([selectedValue, null], e)\r\n }\r\n } else if (!startDate || endDate) {\r\n this.dateValue([selectedValue, null], e)\r\n } else {\r\n this.dateValue(startDate < selectedValue ? [startDate, selectedValue] : [selectedValue, startDate], e)\r\n }\r\n }\r\n updateAriaSelected(value, previousValue) {\r\n var _value, _previousValue;\r\n null !== (_value = value) && void 0 !== _value ? _value : value = this._getValues();\r\n null !== (_previousValue = previousValue) && void 0 !== _previousValue ? _previousValue : previousValue = [];\r\n super.updateAriaSelected(value, previousValue)\r\n }\r\n processValueChanged(value, previousValue) {\r\n super.processValueChanged(value, previousValue);\r\n var range = this._getRange();\r\n this._updateViewsOption(\"range\", range)\r\n }\r\n getDefaultCurrentDate() {\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n var values = this.dateOption(\"values\");\r\n if (_allowChangeSelectionOrder) {\r\n if (\"startDate\" === _currentSelection && values[0]) {\r\n return values[0]\r\n }\r\n if (\"endDate\" === _currentSelection && values[1]) {\r\n return values[1]\r\n }\r\n }\r\n var dates = values.filter(value => value);\r\n return this._getLowestDateInArray(dates)\r\n }\r\n _getValues() {\r\n var values = this.dateOption(\"values\");\r\n if (!values.length) {\r\n return values\r\n }\r\n var [startDate, endDate] = values;\r\n if (startDate && endDate && startDate > endDate) {\r\n [startDate, endDate] = [endDate, startDate]\r\n }\r\n return [startDate, endDate]\r\n }\r\n _getRange() {\r\n var [startDate, endDate] = this._getValues();\r\n return this._getDaysInRange(startDate, endDate)\r\n }\r\n _getDaysInRange(startDate, endDate) {\r\n if (!startDate || !endDate) {\r\n return []\r\n }\r\n var currentDate = this.calendar.option(\"currentDate\").getTime();\r\n var rangeStartDate = new Date(Math.max(currentDate - RANGE_OFFSET, startDate));\r\n var rangeEndDate = new Date(Math.min(currentDate + RANGE_OFFSET, endDate));\r\n return [...dateUtils.getDatesOfInterval(rangeStartDate, rangeEndDate, DAY_INTERVAL), rangeEndDate]\r\n }\r\n _cellHoverHandler(e) {\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n var [startDate, endDate] = this._getValues();\r\n var {\r\n _allowChangeSelectionOrder: _allowChangeSelectionOrder,\r\n _currentSelection: _currentSelection\r\n } = this.calendar.option();\r\n if (isMaxZoomLevel) {\r\n var skipHoveredRange = _allowChangeSelectionOrder && \"startDate\" === _currentSelection;\r\n if (startDate && !endDate && !skipHoveredRange) {\r\n if (e.value > startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(startDate, e.value));\r\n return\r\n }\r\n } else if (!startDate && endDate && !(_allowChangeSelectionOrder && \"endDate\" === _currentSelection)) {\r\n if (e.value < endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, endDate));\r\n return\r\n }\r\n } else if (startDate && endDate) {\r\n if (\"startDate\" === _currentSelection && e.value < startDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(e.value, startDate));\r\n return\r\n } else if (\"endDate\" === _currentSelection && e.value > endDate) {\r\n this._updateViewsOption(\"hoveredRange\", this._getDaysInRange(endDate, e.value));\r\n return\r\n }\r\n }\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n }\r\n }\r\n}\r\nexport default CalendarRangeSelectionStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed,\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport CalendarSingleSelectionStrategy from \"./ui.calendar.single.selection.strategy\";\r\nimport CalendarMultiSelectionStrategy from \"./ui.calendar.multi.selection.strategy\";\r\nimport CalendarRangeSelectionStrategy from \"./ui.calendar.range.selection.strategy\";\r\nimport {\r\n end as hoverEndEventName\r\n} from \"../../events/hover\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar CALENDAR_MULTIVIEW_CLASS = \"dx-calendar-multiview\";\r\nvar CALENDAR_RANGE_CLASS = \"dx-calendar-range\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar CALENDAR_DXHOVEREND_EVENT_NAME = addNamespace(hoverEndEventName, \"dxCalendar\");\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\nvar SELECTION_STRATEGIES = {\r\n SingleSelection: CalendarSingleSelectionStrategy,\r\n MultiSelection: CalendarMultiSelectionStrategy,\r\n RangeSelection: CalendarRangeSelectionStrategy\r\n};\r\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n values: [],\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n viewsCount: 1,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n selectionMode: \"single\",\r\n showTodayButton: false,\r\n showWeekNumbers: false,\r\n weekNumberRule: \"auto\",\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: this._enterKeyHandler\r\n })\r\n },\r\n _enterKeyHandler: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._selectionStrategy.selectValue(value, e)\r\n }\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n var optionName = Array.isArray(value) ? \"values\" : \"value\";\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(optionName, value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n var _this$option;\r\n var values = null !== (_this$option = this.option(\"values\")) && void 0 !== _this$option ? _this$option : [];\r\n return \"values\" === optionName ? values.map(value => this._convertToDate(value)) : this._convertToDate(this.option(optionName))\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n var serializedValue = \"values\" === optionName ? (null === optionValue || void 0 === optionValue ? void 0 : optionValue.map(value => dateSerialization.serializeDate(value, serializationFormat))) || [] : dateSerialization.serializeDate(optionValue, serializationFormat);\r\n this.option(optionName, serializedValue)\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this._skipNavigate = true;\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initSelectionStrategy();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _initSelectionStrategy: function() {\r\n var strategyName = this._getSelectionStrategyName();\r\n var strategy = SELECTION_STRATEGIES[strategyName];\r\n if (!this._selectionStrategy || this._selectionStrategy.NAME !== strategyName) {\r\n this._selectionStrategy = new strategy(this)\r\n }\r\n },\r\n _refreshSelectionStrategy: function() {\r\n this._initSelectionStrategy();\r\n this._refresh()\r\n },\r\n _getSelectionStrategyName: function() {\r\n var selectionMode = this.option(\"selectionMode\");\r\n switch (selectionMode) {\r\n case \"multi\":\r\n return \"MultiSelection\";\r\n case \"range\":\r\n return \"RangeSelection\";\r\n default:\r\n return \"SingleSelection\"\r\n }\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var _this$_getNormalizedD;\r\n var currentDate = null !== (_this$_getNormalizedD = this._getNormalizedDate(this._selectionStrategy.getDefaultCurrentDate())) && void 0 !== _this$_getNormalizedD ? _this$_getNormalizedD : this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"<span>\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n if (this._additionalView) {\r\n if (offset > 2 || offset < -1) {\r\n this._refreshViews();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate);\r\n this._renderNavigator()\r\n } else if (1 === offset && this._skipNavigate) {\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._navigate(offset, normalizedDate)\r\n }\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n this._skipNavigate = false\r\n },\r\n _isAdditionalViewDate(date) {\r\n if (!this._additionalView) {\r\n return false\r\n }\r\n return date >= this._additionalView._getFirstAvailableDate()\r\n },\r\n _getActiveView: function(date) {\r\n return this._isAdditionalViewDate(date) ? this._additionalView : this._view\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || elementHasFocus(this._focusTarget())) {\r\n var _this$_additionalView;\r\n this._view.option(\"contouredDate\", null);\r\n null === (_this$_additionalView = this._additionalView) || void 0 === _this$_additionalView ? void 0 : _this$_additionalView.option(\"contouredDate\", null);\r\n var view = this._isAdditionalViewDate(date) ? this._additionalView : this._view;\r\n view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n var _rangeMin = this.option(\"_rangeMin\");\r\n if (_rangeMin) {\r\n return _rangeMin\r\n }\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n var _rangeMax = this.option(\"_rangeMax\");\r\n if (_rangeMax) {\r\n return _rangeMax\r\n }\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n $element.toggleClass(CALENDAR_RANGE_CLASS, \"range\" === this.option(\"selectionMode\"));\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderEvents();\r\n this._renderNavigator();\r\n $element.prepend(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._selectionStrategy.updateAriaSelected();\r\n this._updateAriaId();\r\n this.setAria(\"role\", \"application\");\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"<div>\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"<div>\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this.$element().toggleClass(CALENDAR_MULTIVIEW_CLASS, viewsCount > 1);\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(viewsCount, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n if (viewsCount > 1) {\r\n this._additionalView = this._renderSpecificView(this._getDateByOffset(1, currentDate))\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var {\r\n zoomLevel: zoomLevel\r\n } = this.option();\r\n var specificView = Views[zoomLevel];\r\n var $view = $(\"<div>\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n var view = this._createComponent($view, specificView, config);\r\n return view\r\n },\r\n _viewConfig: function(date) {\r\n var _this$option2;\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return _extends({}, this._selectionStrategy.getViewOptions(), {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: null !== (_this$option2 = this.option(\"firstDayOfWeek\")) && void 0 !== _this$option2 ? _this$option2 : dateLocalization.firstDayOfWeekIndex(),\r\n showWeekNumbers: this.option(\"showWeekNumbers\"),\r\n weekNumberRule: this.option(\"weekNumberRule\"),\r\n zoomLevel: this.option(\"zoomLevel\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n })\r\n },\r\n _renderEvents() {\r\n eventsEngine.off(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME);\r\n if (\"range\" === this.option(\"selectionMode\")) {\r\n eventsEngine.on(this._$viewsWrapper, CALENDAR_DXHOVEREND_EVENT_NAME, null, e => {\r\n this._updateViewsOption(\"hoveredRange\", [])\r\n })\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._moveViewElement(this._beforeView, -1);\r\n this._moveViewElement(this._afterView, viewsCount);\r\n this._moveViewElement(this._additionalView, 1)\r\n },\r\n _moveViewElement(view, coefficient) {\r\n view && move(view.$element(), {\r\n left: this._getViewPosition(coefficient),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._selectionStrategy.selectValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"<div>\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(this._view, this._additionalView));\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return {\r\n text: this._getViewsCaption(this._view, this._additionalView),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: rtlEnabled\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var {\r\n currentDate: currentDate,\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var offset = e.direction;\r\n if (viewsCount > 1) {\r\n var additionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = additionalViewActive && offset < 0 || !additionalViewActive && offset > 0;\r\n if (shouldDoubleOffset) {\r\n offset *= 2\r\n }\r\n }\r\n var newCurrentDate = this._getDateByOffset(offset, currentDate);\r\n this._moveToClosestAvailableDate(newCurrentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._afterView));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._beforeView))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n this._toggleGestureCoverCursor(\"grabbing\");\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 / viewsCount : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 / viewsCount : 0\r\n },\r\n _toggleGestureCoverCursor: function(cursor) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", cursor)\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n this._toggleGestureCoverCursor(\"auto\");\r\n var {\r\n currentDate: currentDate,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n var isAdditionalViewActive = this._isAdditionalViewDate(currentDate);\r\n var shouldDoubleOffset = isAdditionalViewActive && (rtlEnabled ? -1 === moveOffset : 1 === moveOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var offset = -moveOffset * this._getRtlCorrection() * (shouldDoubleOffset ? 2 : 1);\r\n var date = this._getDateByOffset(offset);\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element()) / this.option(\"viewsCount\")\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var isMultiView = this.option(\"viewsCount\") > 1;\r\n var view;\r\n var additionalView;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView;\r\n additionalView = isMultiView && this._view\r\n } else if (offset < -.5 && this._afterView) {\r\n view = isMultiView ? this._additionalView : this._afterView;\r\n additionalView = isMultiView ? this._afterView : null\r\n } else {\r\n view = this._view;\r\n additionalView = isMultiView ? this._additionalView : null\r\n }\r\n this._navigator.option(\"text\", this._getViewsCaption(view, additionalView))\r\n },\r\n _getViewsCaption: function(view, additionalView) {\r\n var caption = view.getNavigatorCaption();\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n if (viewsCount > 1 && additionalView) {\r\n var additionalViewCaption = additionalView.getNavigatorCaption();\r\n caption = \"\".concat(caption, \" - \").concat(additionalViewCaption)\r\n }\r\n return caption\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"<div>\"), Button, {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: args => {\r\n this._toTodayView(args)\r\n },\r\n type: \"default\",\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"<div>\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW);\r\n if (this.option(\"viewsCount\") > 1) {\r\n fx.stop(this._additionalView.$element(), true);\r\n this._popAnimationView(this._additionalView, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW)\r\n }\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._selectionStrategy.selectValue(today, args.event);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._selectionStrategy.selectValue(today, args.event);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate);\r\n this._selectionStrategy.updateAriaSelected()\r\n },\r\n _rearrangeViews: function(offset) {\r\n var _this$viewToRemoveKey;\r\n if (0 === offset) {\r\n return\r\n }\r\n var {\r\n viewsCount: viewsCount\r\n } = this.option();\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n var viewBeforeCreateKey;\r\n var viewAfterRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\";\r\n viewBeforeCreateKey = \"_view\";\r\n viewAfterRemoveKey = 1 === viewsCount ? \"_view\" : \"_additionalView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\";\r\n viewBeforeCreateKey = 1 === viewsCount ? \"_view\" : \"_additionalView\";\r\n viewAfterRemoveKey = \"_view\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n null === (_this$viewToRemoveKey = this[viewToRemoveKey]) || void 0 === _this$viewToRemoveKey ? void 0 : _this$viewToRemoveKey.$element().remove();\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset * viewsCount, destinationDate));\r\n this[viewAfterRemoveKey].$element().remove();\r\n if (1 === viewsCount) {\r\n this[viewAfterRemoveKey] = this[viewToCreateKey]\r\n } else {\r\n this[viewAfterRemoveKey] = this[viewBeforeCreateKey];\r\n this[viewBeforeCreateKey] = this[viewToCreateKey]\r\n }\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._additionalView && this._additionalView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._additionalView;\r\n delete this._beforeView;\r\n delete this._afterView;\r\n delete this._skipNavigate\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._resetActiveState();\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n var _this$_additionalView2;\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null);\r\n null === (_this$_additionalView2 = this._additionalView) || void 0 === _this$_additionalView2 ? void 0 : _this$_additionalView2.option(\"contouredDate\", null)\r\n },\r\n _updateViewsOption: function(optionName, newValue) {\r\n var _this$_additionalView3, _this$_beforeView, _this$_afterView;\r\n this._view.option(optionName, newValue);\r\n null === (_this$_additionalView3 = this._additionalView) || void 0 === _this$_additionalView3 ? void 0 : _this$_additionalView3.option(optionName, newValue);\r\n null === (_this$_beforeView = this._beforeView) || void 0 === _this$_beforeView ? void 0 : _this$_beforeView.option(optionName, newValue);\r\n null === (_this$_afterView = this._afterView) || void 0 === _this$_afterView ? void 0 : _this$_afterView.option(optionName, newValue)\r\n },\r\n _setViewsMinOption: function(min) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMin\", this._convertToDate(min));\r\n this._updateViewsOption(\"min\", this._getMinDate())\r\n },\r\n _setViewsMaxOption: function(max) {\r\n this._restoreViewsMinMaxOptions();\r\n this.option(\"_rangeMax\", this._convertToDate(max));\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _restoreViewsMinMaxOptions: function() {\r\n this.option({\r\n _rangeMin: null,\r\n _rangeMax: null\r\n });\r\n this._updateViewsOption(\"min\", this._getMinDate());\r\n this._updateViewsOption(\"max\", this._getMaxDate())\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._view._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._view._getCellByDate(item))\r\n });\r\n if (this.option(\"viewsCount\") > 1) {\r\n previousValue.forEach(item => {\r\n this.setAria(\"selected\", void 0, this._additionalView._getCellByDate(item))\r\n });\r\n value.forEach(item => {\r\n this.setAria(\"selected\", true, this._additionalView._getCellByDate(item))\r\n })\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var view = this._getActiveView(value);\r\n var $newCell = view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"selectionMode\":\r\n this._refreshSelectionStrategy();\r\n this._initCurrentDate();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n this._selectionStrategy.processValueChanged([value], [previousValue])\r\n }\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"values\":\r\n if (\"single\" !== this.option(\"selectionMode\")) {\r\n this._selectionStrategy.processValueChanged(value, previousValue)\r\n }\r\n this._raiseValueChangeAction(value, previousValue);\r\n this._saveValueChangeEvent(void 0);\r\n break;\r\n case \"viewsCount\":\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n case \"showWeekNumbers\":\r\n case \"weekNumberRule\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport Component from \"../common/component\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport OldEditor from \"../../../ui/editor/editor\";\r\nimport {\r\n querySelectorInSameDocument\r\n} from \"../../utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nexport default class Editor extends Component {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onFocusIn = () => {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = $(querySelectorInSameDocument(this.element(), \".dx-invalid-message.dx-overlay-wrapper\"));\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n reset() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/dom.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function querySelectorInSameDocument(el, selector) {\r\n var _el$getRootNode, _el$getRootNode2;\r\n var root = null !== (_el$getRootNode = null === (_el$getRootNode2 = el.getRootNode) || void 0 === _el$getRootNode2 ? void 0 : _el$getRootNode2.call(el)) && void 0 !== _el$getRootNode ? _el$getRootNode : document;\r\n return root.querySelector(selector)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"./editor\";\r\nexport default class CheckBox extends Editor {\r\n _useTemplates() {\r\n return false\r\n }\r\n _isFocused() {\r\n var focusTarget = this.$element()[0];\r\n return focusTarget.classList.contains(\"dx-state-focused\")\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n if (null !== props.value) {\r\n props.value = Boolean(props.value)\r\n }\r\n return props\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../../../ui/themes\";\r\nvar defaultIconSizes = [\r\n [22, 16],\r\n [18, 16]\r\n];\r\nvar defaultFontSizes = [\r\n [\r\n [12, 8],\r\n [20, 18]\r\n ],\r\n [\r\n [16, 10],\r\n [16, 14]\r\n ]\r\n];\r\n\r\nfunction getThemeType() {\r\n var theme = current();\r\n return {\r\n isMaterialTheme: isMaterial(theme),\r\n isCompactTheme: isCompact(theme)\r\n }\r\n}\r\n\r\nfunction getDefaultIconSize() {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultIconSizes[+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getDefaultFontSize(isChecked) {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultFontSizes[+isChecked][+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getFontSizeByIconSize(iconSize, isChecked) {\r\n var defaultFontSize = getDefaultFontSize(isChecked);\r\n var defaultIconSize = getDefaultIconSize();\r\n var fontToIconSizeRatio = defaultFontSize / defaultIconSize;\r\n return Math.ceil(fontToIconSizeRatio * iconSize)\r\n}\r\nexport {\r\n getDefaultFontSize,\r\n getDefaultIconSize,\r\n getFontSizeByIconSize\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box_icon.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"className\", \"defaultValue\", \"disabled\", \"enableThreeStateBehavior\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"inputAttr\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n Editor,\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n CheckBoxIcon\r\n} from \"./check_box_icon\";\r\nimport {\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nvar getCssClasses = model => {\r\n var {\r\n text: text,\r\n value: value\r\n } = model;\r\n var checked = value;\r\n var indeterminate = null === checked;\r\n var classesMap = {\r\n \"dx-checkbox\": true,\r\n \"dx-checkbox-checked\": true === checked,\r\n \"dx-checkbox-has-text\": !!text,\r\n \"dx-checkbox-indeterminate\": indeterminate\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n editorRef: editorRef,\r\n keyDown: onKeyDown,\r\n onWidgetClick: onClick,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n iconSize: iconSize,\r\n isValid: isValid,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n readOnly: readOnly,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n text: text,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n value: value,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Editor, _extends({\r\n aria: aria,\r\n classes: classes,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n readOnly: readOnly,\r\n hint: hint,\r\n height: height,\r\n width: width,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n visible: visible,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n isValid: isValid,\r\n onFocusIn: onFocusIn\r\n }, restAttributes, {\r\n children: createFragment([normalizeProps(createVNode(64, \"input\", null, null, 1, _extends({\r\n type: \"hidden\",\r\n value: \"\".concat(value)\r\n }, name && {\r\n name: name\r\n }))), createVNode(1, \"div\", \"dx-checkbox-container\", [createComponentVNode(2, CheckBoxIcon, {\r\n size: iconSize,\r\n isChecked: true === value\r\n }), text && createVNode(1, \"span\", \"dx-checkbox-text\", text, 0)], 0)], 4)\r\n }), null, editorRef))\r\n};\r\nexport var CheckBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n text: \"\",\r\n enableThreeStateBehavior: false,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n defaultValue: false,\r\n valueChange: () => {}\r\n})));\r\nexport var CheckBoxPropsType = {\r\n get text() {\r\n return CheckBoxProps.text\r\n },\r\n get enableThreeStateBehavior() {\r\n return CheckBoxProps.enableThreeStateBehavior\r\n },\r\n get activeStateEnabled() {\r\n return CheckBoxProps.activeStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return CheckBoxProps.hoverStateEnabled\r\n },\r\n get focusStateEnabled() {\r\n return CheckBoxProps.focusStateEnabled\r\n },\r\n get defaultValue() {\r\n return CheckBoxProps.defaultValue\r\n },\r\n get valueChange() {\r\n return CheckBoxProps.valueChange\r\n },\r\n get readOnly() {\r\n return CheckBoxProps.readOnly\r\n },\r\n get name() {\r\n return CheckBoxProps.name\r\n },\r\n get validationError() {\r\n return CheckBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return CheckBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return CheckBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return CheckBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\r\n },\r\n get inputAttr() {\r\n return CheckBoxProps.inputAttr\r\n },\r\n get className() {\r\n return CheckBoxProps.className\r\n },\r\n get disabled() {\r\n return CheckBoxProps.disabled\r\n },\r\n get tabIndex() {\r\n return CheckBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return CheckBoxProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBox extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.editorRef = infernoCreateRef();\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n enableThreeStateBehavior: enableThreeStateBehavior,\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n if (enableThreeStateBehavior) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = null === (void 0 !== this.props.value ? this.props.value : __state_argument.value) || (!(void 0 !== this.props.value ? this.props.value : __state_argument.value) ? null : false);\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n var _ref;\r\n _newValue = !(null !== (_ref = void 0 !== this.props.value ? this.props.value : __state_argument.value) && void 0 !== _ref ? _ref : false);\r\n return {\r\n value: _newValue\r\n }\r\n });\r\n this.props.valueChange(_newValue)\r\n }\r\n }\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get cssClasses() {\r\n return getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }))\r\n }\r\n get aria() {\r\n var checked = true === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var indeterminate = null === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var result = {\r\n role: \"checkbox\",\r\n checked: indeterminate ? \"mixed\" : \"\".concat(checked)\r\n };\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.editorRef.current.focus()\r\n }\r\n blur() {\r\n this.editorRef.current.blur()\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n editorRef: this.editorRef,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n cssClasses: this.cssClasses,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nCheckBox.defaultProps = CheckBoxPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n CheckBox.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CheckBox.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.j.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/editors/check_box\";\r\nimport {\r\n CheckBox as CheckBoxComponent,\r\n defaultOptions\r\n} from \"./check_box\";\r\nexport default class CheckBox extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n blur() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.blur(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onFocusIn: {},\r\n onClick: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"value\", \"defaultValue\", \"valueChange\"]\r\n ],\r\n allowNull: [\"defaultValue\", \"validationError\", \"validationErrors\", \"value\"],\r\n elements: [],\r\n templates: [],\r\n props: [\"text\", \"iconSize\", \"enableThreeStateBehavior\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"isValid\", \"inputAttr\", \"onFocusIn\", \"className\", \"accessKey\", \"disabled\", \"height\", \"hint\", \"onClick\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\", \"aria\", \"value\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return CheckBoxComponent\r\n }\r\n}\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nCheckBox.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/check_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/editors/check_box/check_box.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"<div>\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._$element.attr(\"aria-disabled\", !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._enterKeyHandler(e)\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _enterKeyHandler: function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n var itemData = this._getItemData($itemElement);\r\n if (null !== itemData && void 0 !== itemData && itemData.onClick) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements)\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _isDisabled: $element => $element && \"true\" === $($element).attr(\"aria-disabled\"),\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n var {\r\n selectOnFocus: selectOnFocus\r\n } = this.option();\r\n var isTargetDisabled = this._isDisabled($target);\r\n if (selectOnFocus && !isTargetDisabled) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _getPointerEvent: () => pointerEvents.down,\r\n _attachClickEvent() {\r\n var itemSelector = this._itemSelector();\r\n var pointerEvent = this._getPointerEvent();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerEventNamespace = addNamespace(pointerEvent, this.NAME);\r\n var pointerAction = new Action(args => {\r\n var {\r\n event: event\r\n } = args;\r\n this._itemPointerDownHandler(event)\r\n });\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, e => this._itemClickHandler(e));\r\n eventsEngine.on(this._itemContainer(), pointerEventNamespace, itemSelector, e => {\r\n pointerAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n })\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"<div>\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: this._onItemTemplateRendered(itemTemplate, renderArgs)\r\n })\r\n },\r\n _onItemTemplateRendered: function() {\r\n return noop\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"<div>\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataController.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n var _dataController$loadO;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_dataController$loadO = dataController.loadOptions()) || void 0 === _dataController$loadO ? void 0 : _dataController$loadO.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataController.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === (_itemSelectPromise = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelectionAttribute($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelectionAttribute: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return this._getPlainItems().indexOf(itemData)\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidget from \"./ui.collection_widget.edit\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n var _this$_dataController;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, null === (_this$_dataController = this._dataController) || void 0 === _this$_dataController ? void 0 : _this$_dataController.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/color_box/color_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Color from \"../../color\";\r\nimport ColorView from \"./color_view\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport Guid from \"../../core/guid\";\r\nvar COLOR_BOX_CLASS = \"dx-colorbox\";\r\nvar COLOR_BOX_INPUT_CLASS = COLOR_BOX_CLASS + \"-input\";\r\nvar COLOR_BOX_INPUT_CONTAINER_CLASS = COLOR_BOX_INPUT_CLASS + \"-container\";\r\nvar COLOR_BOX_COLOR_RESULT_PREVIEW_CLASS = COLOR_BOX_CLASS + \"-color-result-preview\";\r\nvar COLOR_BOX_COLOR_IS_NOT_DEFINED = COLOR_BOX_CLASS + \"-color-is-not-defined\";\r\nvar COLOR_BOX_OVERLAY_CLASS = COLOR_BOX_CLASS + \"-overlay\";\r\nvar COLOR_BOX_CONTAINER_CELL_CLASS = \"dx-colorview-container-cell\";\r\nvar COLOR_BOX_BUTTON_CELL_CLASS = \"dx-colorview-button-cell\";\r\nvar COLOR_BOX_BUTTONS_CONTAINER_CLASS = \"dx-colorview-buttons-container\";\r\nvar COLOR_BOX_APPLY_BUTTON_CLASS = \"dx-colorview-apply-button\";\r\nvar COLOR_BOX_CANCEL_BUTTON_CLASS = \"dx-colorview-cancel-button\";\r\nvar colorEditorPrototype = ColorView.prototype;\r\nvar colorUtils = {\r\n makeTransparentBackground: colorEditorPrototype._makeTransparentBackground.bind(colorEditorPrototype),\r\n makeRgba: colorEditorPrototype._makeRgba.bind(colorEditorPrototype)\r\n};\r\nvar ColorBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var arrowHandler = function(e) {\r\n e.stopPropagation();\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n },\r\n enter: this._enterKeyHandler,\r\n leftArrow: arrowHandler,\r\n rightArrow: arrowHandler,\r\n upArrow: function(e) {\r\n if (!this.option(\"opened\")) {\r\n e.preventDefault();\r\n return false\r\n }\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!this.option(\"opened\") && !e.altKey) {\r\n e.preventDefault();\r\n return false\r\n }\r\n if (!this.option(\"opened\") && e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n editAlphaChannel: false,\r\n applyValueMode: \"useButtons\",\r\n keyStep: 1,\r\n fieldTemplate: null,\r\n buttonsLocation: \"bottom after\"\r\n })\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n this._updateColorViewValue(this.option(\"value\"))\r\n }\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n width: \"\"\r\n })\r\n },\r\n _contentReadyHandler: function() {\r\n this._createColorView();\r\n this._addPopupBottomClasses()\r\n },\r\n _addPopupBottomClasses: function() {\r\n var $popupBottom = this._popup.bottomToolbar();\r\n if ($popupBottom) {\r\n $popupBottom.addClass(COLOR_BOX_CONTAINER_CELL_CLASS).addClass(COLOR_BOX_BUTTON_CELL_CLASS).find(\".dx-toolbar-items-container\").addClass(COLOR_BOX_BUTTONS_CONTAINER_CLASS);\r\n $popupBottom.find(\".dx-popup-done\").addClass(COLOR_BOX_APPLY_BUTTON_CLASS);\r\n $popupBottom.find(\".dx-popup-cancel\").addClass(COLOR_BOX_CANCEL_BUTTON_CLASS)\r\n }\r\n },\r\n _createColorView: function() {\r\n this._popup.$overlayContent().addClass(COLOR_BOX_OVERLAY_CLASS);\r\n var $colorView = $(\"<div>\").appendTo(this._popup.$content());\r\n this._colorView = this._createComponent($colorView, ColorView, this._colorViewConfig());\r\n this._colorView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this));\r\n eventsEngine.on($colorView, \"focus\", function() {\r\n this.focus()\r\n }.bind(this))\r\n },\r\n _escapeHandler: function() {\r\n this.close();\r\n this.focus()\r\n },\r\n _getFirstPopupElement: function() {\r\n return $(this._colorView._rgbInputs[0].element()).find(\"input\")\r\n },\r\n _applyNewColor: function(value) {\r\n this.option(\"value\", value);\r\n if (value) {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, value)\r\n }\r\n if (this._colorViewEnterKeyPressed) {\r\n this.close();\r\n this._colorViewEnterKeyPressed = false\r\n }\r\n },\r\n _colorViewConfig: function() {\r\n var that = this;\r\n return {\r\n value: that.option(\"value\"),\r\n matchValue: that.option(\"value\"),\r\n editAlphaChannel: that.option(\"editAlphaChannel\"),\r\n applyValueMode: that.option(\"applyValueMode\"),\r\n focusStateEnabled: that.option(\"focusStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n ariaId: this._ariaId,\r\n onEnterKeyPressed: function(_ref) {\r\n var {\r\n event: event\r\n } = _ref;\r\n that._colorViewEnterKeyPressed = true;\r\n if (that._colorView.option(\"value\") !== that.option(\"value\")) {\r\n that._saveValueChangeEvent(event);\r\n that._applyNewColor(that._colorView.option(\"value\"));\r\n that.close()\r\n }\r\n },\r\n onValueChanged: function(_ref2) {\r\n var {\r\n event: event,\r\n value: value,\r\n previousValue: previousValue\r\n } = _ref2;\r\n var instantlyMode = \"instantly\" === that.option(\"applyValueMode\");\r\n var isOldValue = colorUtils.makeRgba(value) === previousValue;\r\n var changesApplied = instantlyMode || that._colorViewEnterKeyPressed;\r\n var valueCleared = that._shouldSaveEmptyValue;\r\n if (isOldValue || !changesApplied || valueCleared) {\r\n return\r\n }\r\n if (event) {\r\n that._saveValueChangeEvent(event)\r\n }\r\n that._applyNewColor(value)\r\n }\r\n }\r\n },\r\n _enterKeyHandler: function(e) {\r\n var newValue = this._input().val();\r\n var {\r\n value: value,\r\n editAlphaChannel: editAlphaChannel\r\n } = this.option();\r\n var oldValue = value && editAlphaChannel ? colorUtils.makeRgba(value) : value;\r\n if (!newValue) {\r\n return false\r\n }\r\n var color = new Color(newValue);\r\n if (color.colorIsInvalid) {\r\n this._input().val(oldValue);\r\n return\r\n }\r\n if (newValue !== oldValue) {\r\n this._applyColorFromInput(newValue);\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this.option(\"editAlphaChannel\") ? colorUtils.makeRgba(newValue) : newValue)\r\n }\r\n if (this._colorView) {\r\n var colorViewValue = this._colorView.option(\"value\");\r\n if (value !== colorViewValue) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", colorViewValue)\r\n }\r\n }\r\n this.close();\r\n return false\r\n },\r\n _applyButtonHandler: function(e) {\r\n this._saveValueChangeEvent(e.event);\r\n this._applyNewColor(this._colorView.option(\"value\"));\r\n this.callBase()\r\n },\r\n _cancelButtonHandler: function() {\r\n this._resetInputValue();\r\n this.callBase()\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._colorView])\r\n },\r\n _init: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(COLOR_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._ariaId = \"dx-\".concat(new Guid);\r\n this.setAria(\"activedescendant\", this._ariaId);\r\n this._input().addClass(COLOR_BOX_INPUT_CLASS);\r\n this._renderColorPreview()\r\n },\r\n _renderColorPreview: function() {\r\n this.$element().wrapInner($(\"<div>\").addClass(COLOR_BOX_INPUT_CONTAINER_CLASS));\r\n this._$colorBoxInputContainer = this.$element().children().eq(0);\r\n this._$colorResultPreview = $(\"<div>\").addClass(COLOR_BOX_COLOR_RESULT_PREVIEW_CLASS).appendTo(this._$textEditorInputContainer);\r\n if (!this.option(\"value\")) {\r\n this._$colorBoxInputContainer.addClass(COLOR_BOX_COLOR_IS_NOT_DEFINED)\r\n } else {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, this.option(\"value\"))\r\n }\r\n },\r\n _renderValue: function() {\r\n var {\r\n value: value,\r\n editAlphaChannel: editAlphaChannel\r\n } = this.option();\r\n var shouldConvertToColor = value && editAlphaChannel;\r\n var text = shouldConvertToColor ? colorUtils.makeRgba(value) : value;\r\n this.option(\"text\", text);\r\n return this.callBase()\r\n },\r\n _resetInputValue: function() {\r\n var $input = this._input();\r\n var value = this.option(\"value\");\r\n $input.val(value);\r\n this._updateColorViewValue(value)\r\n },\r\n _updateColorViewValue: function(value) {\r\n if (this._colorView) {\r\n this._colorView.option({\r\n value: value,\r\n matchValue: value\r\n })\r\n }\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var value = this._input().val();\r\n if (value) {\r\n value = this._applyColorFromInput(value);\r\n this._updateColorViewValue(value)\r\n }\r\n this.callBase(e, value)\r\n },\r\n _applyColorFromInput: function(value) {\r\n var newColor = new Color(value);\r\n if (newColor.colorIsInvalid) {\r\n this._resetInputValue();\r\n value = this.option(\"value\")\r\n }\r\n return value\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._shouldSaveEmptyValue\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var name = args.name;\r\n switch (name) {\r\n case \"value\":\r\n this._$colorBoxInputContainer.toggleClass(COLOR_BOX_COLOR_IS_NOT_DEFINED, !value);\r\n if (value) {\r\n colorUtils.makeTransparentBackground(this._$colorResultPreview, value)\r\n } else {\r\n this._$colorResultPreview.removeAttr(\"style\")\r\n }\r\n if (null === value) {\r\n this._shouldSaveEmptyValue = true\r\n }\r\n this._updateColorViewValue(value);\r\n this._shouldSaveEmptyValue = false;\r\n this.callBase(args);\r\n break;\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n this.callBase(args);\r\n this._popup && this._addPopupBottomClasses();\r\n break;\r\n case \"editAlphaChannel\":\r\n case \"keyStep\":\r\n if (this._colorView) {\r\n this._colorView.option(name, value)\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxColorBox\", ColorBox);\r\nexport default ColorBox;\r\n","/**\r\n * DevExtreme (esm/ui/color_box/color_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Color from \"../../color\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport TextBox from \"../text_box\";\r\nimport Draggable from \"../draggable\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Guid from \"../../core/guid\";\r\nvar COLOR_VIEW_CLASS = \"dx-colorview\";\r\nvar COLOR_VIEW_CONTAINER_CLASS = \"dx-colorview-container\";\r\nvar COLOR_VIEW_ROW_CLASS = \"dx-colorview-container-row\";\r\nvar COLOR_VIEW_CELL_CLASS = \"dx-colorview-container-cell\";\r\nvar COLOR_VIEW_PALETTE_CLASS = \"dx-colorview-palette\";\r\nvar COLOR_VIEW_PALETTE_CELL_CLASS = \"dx-colorview-palette-cell\";\r\nvar COLOR_VIEW_PALETTE_HANDLE_CLASS = \"dx-colorview-palette-handle\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_CLASS = \"dx-colorview-palette-gradient\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS = \"dx-colorview-palette-gradient-white\";\r\nvar COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS = \"dx-colorview-palette-gradient-black\";\r\nvar COLOR_VIEW_HUE_SCALE_CLASS = \"dx-colorview-hue-scale\";\r\nvar COLOR_VIEW_HUE_SCALE_CELL_CLASS = \"dx-colorview-hue-scale-cell\";\r\nvar COLOR_VIEW_HUE_SCALE_HANDLE_CLASS = \"dx-colorview-hue-scale-handle\";\r\nvar COLOR_VIEW_HUE_SCALE_WRAPPER_CLASS = \"dx-colorview-hue-scale-wrapper\";\r\nvar COLOR_VIEW_CONTROLS_CONTAINER_CLASS = \"dx-colorview-controls-container\";\r\nvar COLOR_VIEW_RED_LABEL_CLASS = \"dx-colorview-label-red\";\r\nvar COLOR_VIEW_GREEN_LABEL_CLASS = \"dx-colorview-label-green\";\r\nvar COLOR_VIEW_BLUE_LABEL_CLASS = \"dx-colorview-label-blue\";\r\nvar COLOR_VIEW_HEX_LABEL_CLASS = \"dx-colorview-label-hex\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_SCALE_CLASS = \"dx-colorview-alpha-channel-scale\";\r\nvar COLOR_VIEW_APLHA_CHANNEL_ROW_CLASS = \"dx-colorview-alpha-channel-row\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_SCALE_WRAPPER_CLASS = \"dx-colorview-alpha-channel-wrapper\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_LABEL_CLASS = \"dx-colorview-alpha-channel-label\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_HANDLE_CLASS = \"dx-colorview-alpha-channel-handle\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_CELL_CLASS = \"dx-colorview-alpha-channel-cell\";\r\nvar COLOR_VIEW_ALPHA_CHANNEL_BORDER_CLASS = \"dx-colorview-alpha-channel-border\";\r\nvar COLOR_VIEW_COLOR_PREVIEW = \"dx-colorview-color-preview\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_CONTAINER_CLASS = \"dx-colorview-color-preview-container\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_CONTAINER_INNER_CLASS = \"dx-colorview-color-preview-container-inner\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT = \"dx-colorview-color-preview-color-current\";\r\nvar COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW = \"dx-colorview-color-preview-color-new\";\r\nvar TEXT_EDITOR_INPUT = \"dx-texteditor-input\";\r\nvar BLACK_COLOR = \"#000000\";\r\nvar ColorView = Editor.inherit({\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var that = this;\r\n var getHorizontalPaletteStep = function(e) {\r\n var step = 100 / that._paletteWidth;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return Math.round(step)\r\n };\r\n var updateHorizontalPaletteValue = function(step) {\r\n var value = that._currentColor.hsv.s + step;\r\n if (value > 100) {\r\n value = 100\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n that._currentColor.hsv.s = value;\r\n updatePaletteValue()\r\n };\r\n var getVerticalPaletteStep = function(e) {\r\n var step = 100 / that._paletteHeight;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return Math.round(step)\r\n };\r\n var updateVerticalPaletteValue = function(step) {\r\n var value = that._currentColor.hsv.v + step;\r\n if (value > 100) {\r\n value = 100\r\n } else if (value < 0) {\r\n value = 0\r\n }\r\n that._currentColor.hsv.v = value;\r\n updatePaletteValue()\r\n };\r\n\r\n function updatePaletteValue() {\r\n that._placePaletteHandle();\r\n that._updateColorFromHsv(that._currentColor.hsv.h, that._currentColor.hsv.s, that._currentColor.hsv.v)\r\n }\r\n var getHueScaleStep = function(e) {\r\n var step = 360 / (that._hueScaleWrapperHeight - that._hueScaleHandleHeight);\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > 1 ? step : 1;\r\n return step\r\n };\r\n var updateHueScaleValue = function(step) {\r\n that._currentColor.hsv.h += step;\r\n that._placeHueScaleHandle();\r\n var handleLocation = locate(that._$hueScaleHandle);\r\n that._updateColorHue(handleLocation.top + that._hueScaleHandleHeight / 2)\r\n };\r\n var getAlphaScaleStep = function(e) {\r\n var step = 1 / that._alphaChannelScaleWorkWidth;\r\n if (e.shiftKey) {\r\n step *= that.option(\"keyStep\")\r\n }\r\n step = step > .01 ? step : .01;\r\n step = isRTL ? -step : step;\r\n return step\r\n };\r\n var updateAlphaScaleValue = function(step) {\r\n that._currentColor.a += step;\r\n that._placeAlphaChannelHandle();\r\n var handleLocation = locate(that._$alphaChannelHandle);\r\n that._calculateColorTransparencyByScaleWidth(handleLocation.left + that._alphaChannelHandleWidth / 2)\r\n };\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (this._currentColor.hsv.h <= 360 && !this._isTopColorHue) {\r\n this._saveValueChangeEvent(e);\r\n updateHueScaleValue(getHueScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.v < 100) {\r\n this._saveValueChangeEvent(e);\r\n updateVerticalPaletteValue(getVerticalPaletteStep(e))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (this._currentColor.hsv.h >= 0) {\r\n if (this._isTopColorHue) {\r\n this._currentColor.hsv.h = 360\r\n }\r\n this._saveValueChangeEvent(e);\r\n updateHueScaleValue(-getHueScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.v > 0) {\r\n this._saveValueChangeEvent(e);\r\n updateVerticalPaletteValue(-getVerticalPaletteStep(e))\r\n }\r\n },\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (isRTL ? this._currentColor.a < 1 : this._currentColor.a > 0 && this.option(\"editAlphaChannel\")) {\r\n this._saveValueChangeEvent(e);\r\n updateAlphaScaleValue(-getAlphaScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.s < 100) {\r\n this._saveValueChangeEvent(e);\r\n updateHorizontalPaletteValue(getHorizontalPaletteStep(e))\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (isCommandKeyPressed(e)) {\r\n if (isRTL ? this._currentColor.a > 0 : this._currentColor.a < 1 && this.option(\"editAlphaChannel\")) {\r\n this._saveValueChangeEvent(e);\r\n updateAlphaScaleValue(getAlphaScaleStep(e))\r\n }\r\n } else if (this._currentColor.hsv.s > 0) {\r\n this._saveValueChangeEvent(e);\r\n updateHorizontalPaletteValue(-getHorizontalPaletteStep(e))\r\n }\r\n },\r\n enter: function(e) {\r\n this._fireEnterKeyPressed(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n matchValue: null,\r\n onEnterKeyPressed: void 0,\r\n editAlphaChannel: false,\r\n keyStep: 1,\r\n stylingMode: void 0\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initColorAndOpacity();\r\n this._initEnterKeyPressedAction()\r\n },\r\n _initEnterKeyPressedAction: function() {\r\n this._onEnterKeyPressedAction = this._createActionByOption(\"onEnterKeyPressed\")\r\n },\r\n _fireEnterKeyPressed: function(e) {\r\n if (!this._onEnterKeyPressedAction) {\r\n return\r\n }\r\n this._onEnterKeyPressedAction({\r\n event: e\r\n })\r\n },\r\n _initColorAndOpacity: function() {\r\n this._setCurrentColor(this.option(\"value\"))\r\n },\r\n _setCurrentColor: function(value) {\r\n value = value || BLACK_COLOR;\r\n var newColor = new Color(value);\r\n if (!newColor.colorIsInvalid) {\r\n if (!this._currentColor || this._makeRgba(this._currentColor) !== this._makeRgba(newColor)) {\r\n this._currentColor = newColor;\r\n if (this._$currentColor) {\r\n this._makeTransparentBackground(this._$currentColor, newColor)\r\n }\r\n }\r\n } else {\r\n if (!this._currentColor) {\r\n this._currentColor = new Color(BLACK_COLOR)\r\n }\r\n this.option(\"value\", this._currentColor.baseColor)\r\n }\r\n },\r\n _setBaseColor: function(value) {\r\n var color = value || BLACK_COLOR;\r\n var newColor = new Color(color);\r\n if (!newColor.colorIsInvalid) {\r\n var isBaseColorChanged = this._makeRgba(this.option(\"matchValue\") !== this._makeRgba(newColor));\r\n if (isBaseColorChanged) {\r\n if (this._$baseColor) {\r\n this._makeTransparentBackground(this._$baseColor, newColor)\r\n }\r\n }\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(COLOR_VIEW_CLASS);\r\n this._renderColorPickerContainer()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderPalette();\r\n this._renderHueScale();\r\n this._renderControlsContainer();\r\n this._renderControls();\r\n this._renderAlphaChannelElements()\r\n },\r\n _makeTransparentBackground: function($el, color) {\r\n if (!(color instanceof Color)) {\r\n color = new Color(color)\r\n }\r\n $el.css(\"backgroundColor\", this._makeRgba(color))\r\n },\r\n _makeRgba: function(color) {\r\n if (!(color instanceof Color)) {\r\n color = new Color(color)\r\n }\r\n return \"rgba(\" + [color.r, color.g, color.b, color.a].join(\", \") + \")\"\r\n },\r\n _renderValue: function() {\r\n this.callBase(this.option(\"editAlphaChannel\") ? this._makeRgba(this._currentColor) : this.option(\"value\"))\r\n },\r\n _renderColorPickerContainer: function() {\r\n var $parent = this.$element();\r\n this._$colorPickerContainer = $(\"<div>\").addClass(COLOR_VIEW_CONTAINER_CLASS).appendTo($parent);\r\n this._renderHtmlRows()\r\n },\r\n _renderHtmlRows: function(updatedOption) {\r\n var $renderedRows = this._$colorPickerContainer.find(\".\" + COLOR_VIEW_ROW_CLASS);\r\n var renderedRowsCount = $renderedRows.length;\r\n var rowCount = this.option(\"editAlphaChannel\") ? 2 : 1;\r\n var delta = renderedRowsCount - rowCount;\r\n if (delta > 0) {\r\n $renderedRows.eq(-1).remove()\r\n }\r\n if (delta < 0) {\r\n delta = Math.abs(delta);\r\n var rows = [];\r\n var i;\r\n for (i = 0; i < delta; i++) {\r\n rows.push($(\"<div>\").addClass(COLOR_VIEW_ROW_CLASS))\r\n }\r\n if (renderedRowsCount) {\r\n for (i = 0; i < rows.length; i++) {\r\n $renderedRows.eq(0).after(rows[i])\r\n }\r\n } else {\r\n this._$colorPickerContainer.append(rows)\r\n }\r\n }\r\n },\r\n _renderHtmlCellInsideRow: function(index, $rowParent, additionalClass) {\r\n return $(\"<div>\").addClass(COLOR_VIEW_CELL_CLASS).addClass(additionalClass).appendTo($rowParent.find(\".\" + COLOR_VIEW_ROW_CLASS).eq(index))\r\n },\r\n _renderPalette: function() {\r\n var $paletteCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, COLOR_VIEW_PALETTE_CELL_CLASS);\r\n var $paletteGradientWhite = $(\"<div>\").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS].join(\" \"));\r\n var $paletteGradientBlack = $(\"<div>\").addClass([COLOR_VIEW_PALETTE_GRADIENT_CLASS, COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS].join(\" \"));\r\n this._$palette = $(\"<div>\").addClass(COLOR_VIEW_PALETTE_CLASS).css(\"backgroundColor\", this._currentColor.getPureColor().toHex()).appendTo($paletteCell);\r\n this._paletteHeight = getHeight(this._$palette);\r\n this._paletteWidth = getWidth(this._$palette);\r\n this._renderPaletteHandle();\r\n this._$palette.append([$paletteGradientWhite, $paletteGradientBlack])\r\n },\r\n _renderPaletteHandle: function() {\r\n this._$paletteHandle = $(\"<div>\").addClass(COLOR_VIEW_PALETTE_HANDLE_CLASS).appendTo(this._$palette);\r\n var handleAria = {\r\n id: this.option(\"ariaId\"),\r\n role: \"application\"\r\n };\r\n this.setAria(handleAria, this._$paletteHandle);\r\n this._createComponent(this._$paletteHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: this._$palette,\r\n allowMoveByClick: true,\r\n boundOffset: function() {\r\n return -this._paletteHandleHeight / 2\r\n }.bind(this),\r\n onDragMove: _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n var paletteHandlePosition = locate(this._$paletteHandle);\r\n this._updateByDrag = true;\r\n this._saveValueChangeEvent(event);\r\n this._updateColorFromHsv(this._currentColor.hsv.h, this._calculateColorSaturation(paletteHandlePosition), this._calculateColorValue(paletteHandlePosition))\r\n }\r\n });\r\n this._paletteHandleWidth = getWidth(this._$paletteHandle);\r\n this._paletteHandleHeight = getHeight(this._$paletteHandle);\r\n this._placePaletteHandle()\r\n },\r\n _placePaletteHandle: function() {\r\n move(this._$paletteHandle, {\r\n left: Math.round(this._paletteWidth * this._currentColor.hsv.s / 100 - this._paletteHandleWidth / 2),\r\n top: Math.round(this._paletteHeight - this._paletteHeight * this._currentColor.hsv.v / 100 - this._paletteHandleHeight / 2)\r\n })\r\n },\r\n _calculateColorValue: function(paletteHandlePosition) {\r\n var value = Math.floor(paletteHandlePosition.top + this._paletteHandleHeight / 2);\r\n return 100 - Math.round(100 * value / this._paletteHeight)\r\n },\r\n _calculateColorSaturation: function(paletteHandlePosition) {\r\n var saturation = Math.floor(paletteHandlePosition.left + this._paletteHandleWidth / 2);\r\n return Math.round(100 * saturation / this._paletteWidth)\r\n },\r\n _updateColorFromHsv: function(hue, saturation, value) {\r\n var a = this._currentColor.a;\r\n this._currentColor = new Color(\"hsv(\" + [hue, saturation, value].join(\",\") + \")\");\r\n this._currentColor.a = a;\r\n this._updateColorParamsAndColorPreview();\r\n this.applyColor()\r\n },\r\n _renderHueScale: function() {\r\n var $hueScaleCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer, COLOR_VIEW_HUE_SCALE_CELL_CLASS);\r\n this._$hueScaleWrapper = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_WRAPPER_CLASS).appendTo($hueScaleCell);\r\n this._$hueScale = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_CLASS).appendTo(this._$hueScaleWrapper);\r\n this._hueScaleHeight = getHeight(this._$hueScale);\r\n this._hueScaleWrapperHeight = getOuterHeight(this._$hueScaleWrapper);\r\n this._renderHueScaleHandle()\r\n },\r\n _renderHueScaleHandle: function() {\r\n this._$hueScaleHandle = $(\"<div>\").addClass(COLOR_VIEW_HUE_SCALE_HANDLE_CLASS).appendTo(this._$hueScaleWrapper);\r\n this._createComponent(this._$hueScaleHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: this._$hueScaleWrapper,\r\n allowMoveByClick: true,\r\n dragDirection: \"vertical\",\r\n onDragMove: _ref2 => {\r\n var {\r\n event: event\r\n } = _ref2;\r\n this._updateByDrag = true;\r\n this._saveValueChangeEvent(event);\r\n this._updateColorHue(locate(this._$hueScaleHandle).top + this._hueScaleHandleHeight / 2)\r\n }\r\n });\r\n this._hueScaleHandleHeight = getHeight(this._$hueScaleHandle);\r\n this._placeHueScaleHandle()\r\n },\r\n _placeHueScaleHandle: function() {\r\n var hueScaleHeight = this._hueScaleWrapperHeight;\r\n var handleHeight = this._hueScaleHandleHeight;\r\n var top = (hueScaleHeight - handleHeight) * (360 - this._currentColor.hsv.h) / 360;\r\n if (hueScaleHeight < top + handleHeight) {\r\n top = hueScaleHeight - handleHeight\r\n }\r\n if (top < 0) {\r\n top = 0\r\n }\r\n move(this._$hueScaleHandle, {\r\n top: Math.round(top)\r\n })\r\n },\r\n _updateColorHue: function(handlePosition) {\r\n var hue = 360 - Math.round(360 * (handlePosition - this._hueScaleHandleHeight / 2) / (this._hueScaleWrapperHeight - this._hueScaleHandleHeight));\r\n var saturation = this._currentColor.hsv.s;\r\n var value = this._currentColor.hsv.v;\r\n this._isTopColorHue = false;\r\n hue = hue < 0 ? 0 : hue;\r\n if (hue >= 360) {\r\n this._isTopColorHue = true;\r\n hue = 0\r\n }\r\n this._updateColorFromHsv(hue, saturation, value);\r\n this._$palette.css(\"backgroundColor\", this._currentColor.getPureColor().toHex())\r\n },\r\n _renderControlsContainer: function() {\r\n var $controlsContainerCell = this._renderHtmlCellInsideRow(0, this._$colorPickerContainer);\r\n this._$controlsContainer = $(\"<div>\").addClass(COLOR_VIEW_CONTROLS_CONTAINER_CLASS).appendTo($controlsContainerCell)\r\n },\r\n _renderControls: function() {\r\n this._renderColorsPreview();\r\n this._renderRgbInputs();\r\n this._renderHexInput()\r\n },\r\n _renderColorsPreview: function() {\r\n var $colorsPreviewContainer = $(\"<div>\").addClass(COLOR_VIEW_COLOR_PREVIEW_CONTAINER_CLASS).appendTo(this._$controlsContainer);\r\n var $colorsPreviewContainerInner = $(\"<div>\").addClass(COLOR_VIEW_COLOR_PREVIEW_CONTAINER_INNER_CLASS).appendTo($colorsPreviewContainer);\r\n this._$currentColor = $(\"<div>\").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW].join(\" \"));\r\n this._$baseColor = $(\"<div>\").addClass([COLOR_VIEW_COLOR_PREVIEW, COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT].join(\" \"));\r\n this._makeTransparentBackground(this._$baseColor, this.option(\"matchValue\"));\r\n this._makeTransparentBackground(this._$currentColor, this._currentColor);\r\n $colorsPreviewContainerInner.append([this._$baseColor, this._$currentColor])\r\n },\r\n _renderAlphaChannelElements: function() {\r\n if (this.option(\"editAlphaChannel\")) {\r\n this._$colorPickerContainer.find(\".\" + COLOR_VIEW_ROW_CLASS).eq(1).addClass(COLOR_VIEW_APLHA_CHANNEL_ROW_CLASS);\r\n this._renderAlphaChannelScale();\r\n this._renderAlphaChannelInput()\r\n }\r\n },\r\n _renderRgbInputs: function() {\r\n this._rgbInputsWithLabels = [this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.r,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"R\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaRed\"),\r\n labelClass: COLOR_VIEW_RED_LABEL_CLASS\r\n }), this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.g,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"G\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaGreen\"),\r\n labelClass: COLOR_VIEW_GREEN_LABEL_CLASS\r\n }), this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.b,\r\n onValueChanged: this._updateColor.bind(this, false),\r\n labelText: \"B\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaBlue\"),\r\n labelClass: COLOR_VIEW_BLUE_LABEL_CLASS\r\n })];\r\n this._$controlsContainer.append(this._rgbInputsWithLabels);\r\n this._rgbInputs = [this._rgbInputsWithLabels[0].find(\".dx-numberbox\").dxNumberBox(\"instance\"), this._rgbInputsWithLabels[1].find(\".dx-numberbox\").dxNumberBox(\"instance\"), this._rgbInputsWithLabels[2].find(\".dx-numberbox\").dxNumberBox(\"instance\")]\r\n },\r\n _renderEditorWithLabel: function(options) {\r\n var $editor = $(\"<div>\");\r\n var $label = $(\"<label>\").addClass(options.labelClass).text(options.labelText + \":\").append($editor);\r\n eventsEngine.off($label, clickEventName);\r\n eventsEngine.on($label, clickEventName, (function(e) {\r\n e.preventDefault()\r\n }));\r\n var editorType = options.editorType;\r\n var editorOptions = extend({\r\n value: options.value,\r\n onValueChanged: options.onValueChanged,\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, {\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n if (editorType === NumberBox) {\r\n editorOptions.min = options.min || 0;\r\n editorOptions.max = options.max || 255;\r\n editorOptions.step = options.step || 1\r\n }\r\n var editor = new editorType($editor, editorOptions);\r\n editor.registerKeyHandler(\"enter\", function(e) {\r\n this._fireEnterKeyPressed(e)\r\n }.bind(this));\r\n this.setAria(\"label\", options.labelAriaText, $editor);\r\n return $label\r\n },\r\n hexInputOptions: function() {\r\n return {\r\n editorType: TextBox,\r\n value: this._currentColor.toHex().replace(\"#\", \"\"),\r\n onValueChanged: this._updateColor.bind(this, true),\r\n labelClass: COLOR_VIEW_HEX_LABEL_CLASS,\r\n labelText: \"#\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaHex\")\r\n }\r\n },\r\n _renderHexInput: function() {\r\n this._hexInput = TextBox.getInstance(this._renderEditorWithLabel(this.hexInputOptions()).appendTo(this._$controlsContainer).find(\".dx-textbox\"));\r\n var inputId = \"dx-\".concat(new Guid);\r\n var $hexInput = this._$controlsContainer.find(\".\".concat(COLOR_VIEW_HEX_LABEL_CLASS)).find(\".\".concat(TEXT_EDITOR_INPUT));\r\n this.setAria(\"id\", inputId, $hexInput);\r\n this.setAria(\"labelledby\", inputId, this._$paletteHandle)\r\n },\r\n _renderAlphaChannelScale: function() {\r\n var $alphaChannelScaleCell = this._renderHtmlCellInsideRow(1, this._$colorPickerContainer, COLOR_VIEW_ALPHA_CHANNEL_CELL_CLASS);\r\n var $alphaChannelBorder = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_BORDER_CLASS).appendTo($alphaChannelScaleCell);\r\n var $alphaChannelScaleWrapper = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_SCALE_WRAPPER_CLASS).appendTo($alphaChannelBorder);\r\n this._$alphaChannelScale = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_SCALE_CLASS).appendTo($alphaChannelScaleWrapper);\r\n this._makeCSSLinearGradient(this._$alphaChannelScale);\r\n this._renderAlphaChannelHandle($alphaChannelScaleCell)\r\n },\r\n _makeCSSLinearGradient: function($el) {\r\n var color = this._currentColor;\r\n var colorAsRgb = \"\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var startColor = \"rgba(\".concat(colorAsRgb, \", \").concat(rtlEnabled ? \"1\" : \"0\", \")\");\r\n var finishColor = \"rgba(\".concat(colorAsRgb, \", \").concat(rtlEnabled ? \"0\" : \"1\", \")\");\r\n var backgroundImage = \"linear-gradient(-90deg, \".concat(startColor, \", \").concat(finishColor, \")\");\r\n $el.css(\"backgroundImage\", backgroundImage)\r\n },\r\n _renderAlphaChannelInput: function() {\r\n var that = this;\r\n var $alphaChannelInputCell = this._renderHtmlCellInsideRow(1, this._$colorPickerContainer);\r\n that._alphaChannelInput = this._renderEditorWithLabel({\r\n editorType: NumberBox,\r\n value: this._currentColor.a,\r\n max: 1,\r\n step: .1,\r\n onValueChanged: function(args) {\r\n var value = args.value;\r\n value = that._currentColor.isValidAlpha(value) ? value : that._currentColor.a;\r\n args.event && that._saveValueChangeEvent(args.event);\r\n that._updateColorTransparency(value);\r\n that._placeAlphaChannelHandle()\r\n },\r\n labelClass: COLOR_VIEW_ALPHA_CHANNEL_LABEL_CLASS,\r\n labelText: \"Alpha\",\r\n labelAriaText: messageLocalization.format(\"dxColorView-ariaAlpha\")\r\n }).appendTo($alphaChannelInputCell).find(\".dx-numberbox\").dxNumberBox(\"instance\")\r\n },\r\n _updateColorTransparency: function(transparency) {\r\n this._currentColor.a = transparency;\r\n this.applyColor()\r\n },\r\n _renderAlphaChannelHandle: function($parent) {\r\n this._$alphaChannelHandle = $(\"<div>\").addClass(COLOR_VIEW_ALPHA_CHANNEL_HANDLE_CLASS).appendTo($parent);\r\n this._createComponent(this._$alphaChannelHandle, Draggable, {\r\n contentTemplate: null,\r\n boundary: $parent,\r\n allowMoveByClick: true,\r\n dragDirection: \"horizontal\",\r\n onDragMove: _ref3 => {\r\n var {\r\n event: event\r\n } = _ref3;\r\n this._updateByDrag = true;\r\n var $alphaChannelHandle = this._$alphaChannelHandle;\r\n var alphaChannelHandlePosition = locate($alphaChannelHandle).left + this._alphaChannelHandleWidth / 2;\r\n this._saveValueChangeEvent(event);\r\n this._calculateColorTransparencyByScaleWidth(alphaChannelHandlePosition)\r\n }\r\n });\r\n this._alphaChannelHandleWidth = getWidth(this._$alphaChannelHandle);\r\n this._alphaChannelScaleWorkWidth = getWidth($parent) - this._alphaChannelHandleWidth;\r\n this._placeAlphaChannelHandle()\r\n },\r\n _calculateColorTransparencyByScaleWidth: function(handlePosition) {\r\n var transparency = (handlePosition - this._alphaChannelHandleWidth / 2) / this._alphaChannelScaleWorkWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n transparency = rtlEnabled ? transparency : 1 - transparency;\r\n if (handlePosition >= this._alphaChannelScaleWorkWidth + this._alphaChannelHandleWidth / 2) {\r\n transparency = rtlEnabled ? 1 : 0\r\n } else if (transparency < 1) {\r\n transparency = transparency.toFixed(2)\r\n }\r\n var previousTransparency = this._alphaChannelInput.option(\"value\");\r\n transparency = Math.max(transparency, 0);\r\n transparency = Math.min(transparency, 1);\r\n if (transparency === previousTransparency) {\r\n this._updateByDrag = false\r\n } else {\r\n this._alphaChannelInput.option(\"value\", transparency)\r\n }\r\n },\r\n _placeAlphaChannelHandle: function() {\r\n var left = this._alphaChannelScaleWorkWidth * (1 - this._currentColor.a);\r\n if (left < 0) {\r\n left = 0\r\n }\r\n if (this._alphaChannelScaleWorkWidth < left) {\r\n left = this._alphaChannelScaleWorkWidth\r\n }\r\n move(this._$alphaChannelHandle, {\r\n left: this.option(\"rtlEnabled\") ? this._alphaChannelScaleWorkWidth - left : left\r\n })\r\n },\r\n applyColor: function() {\r\n var previousValue = this.option(\"value\");\r\n var colorValue = this.option(\"editAlphaChannel\") ? this._makeRgba(this._currentColor) : this._currentColor.toHex();\r\n this._makeTransparentBackground(this._$currentColor, this._currentColor);\r\n if (colorValue === previousValue) {\r\n this._updateByDrag = false\r\n } else {\r\n this.option(\"value\", colorValue)\r\n }\r\n },\r\n cancelColor: function() {\r\n this._initColorAndOpacity();\r\n this._refreshMarkup()\r\n },\r\n _updateColor: function(isHex, args) {\r\n var rgba;\r\n var newColor;\r\n if (isHex) {\r\n newColor = this._validateHex(\"#\" + this._hexInput.option(\"value\"))\r\n } else {\r\n rgba = this._validateRgb();\r\n if (this._alphaChannelInput) {\r\n rgba.push(this._alphaChannelInput.option(\"value\"));\r\n newColor = \"rgba(\" + rgba.join(\", \") + \")\"\r\n } else {\r\n newColor = \"rgb(\" + rgba.join(\", \") + \")\"\r\n }\r\n }\r\n if (!this._suppressEditorsValueUpdating) {\r\n this._currentColor = new Color(newColor);\r\n this._saveValueChangeEvent(args.event);\r\n this.applyColor();\r\n this._refreshMarkup()\r\n }\r\n },\r\n _validateHex: function(hex) {\r\n return this._currentColor.isValidHex(hex) ? hex : this._currentColor.toHex()\r\n },\r\n _validateRgb: function() {\r\n var r = this._rgbInputs[0].option(\"value\");\r\n var g = this._rgbInputs[1].option(\"value\");\r\n var b = this._rgbInputs[2].option(\"value\");\r\n if (!this._currentColor.isValidRGB(r, g, b)) {\r\n r = this._currentColor.r;\r\n g = this._currentColor.g;\r\n b = this._currentColor.b\r\n }\r\n return [r, g, b]\r\n },\r\n _refreshMarkup: function() {\r\n this._placeHueScaleHandle();\r\n this._placePaletteHandle();\r\n this._updateColorParamsAndColorPreview();\r\n this._$palette.css(\"backgroundColor\", this._currentColor.getPureColor().toHex());\r\n if (this._$alphaChannelHandle) {\r\n this._updateColorTransparency(this._currentColor.a);\r\n this._placeAlphaChannelHandle()\r\n }\r\n },\r\n _updateColorParamsAndColorPreview: function() {\r\n this._suppressEditorsValueUpdating = true;\r\n this._hexInput.option(\"value\", this._currentColor.toHex().replace(\"#\", \"\"));\r\n this._rgbInputs[0].option(\"value\", this._currentColor.r);\r\n this._rgbInputs[1].option(\"value\", this._currentColor.g);\r\n this._rgbInputs[2].option(\"value\", this._currentColor.b);\r\n this._suppressEditorsValueUpdating = false;\r\n if (this.option(\"editAlphaChannel\")) {\r\n this._makeCSSLinearGradient.call(this, this._$alphaChannelScale);\r\n this._alphaChannelInput.option(\"value\", this._currentColor.a)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"value\":\r\n this._setCurrentColor(value);\r\n if (!this._updateByDrag) {\r\n this._refreshMarkup()\r\n }\r\n this._updateByDrag = false;\r\n this.callBase(args);\r\n break;\r\n case \"matchValue\":\r\n this._setBaseColor(value);\r\n break;\r\n case \"onEnterKeyPressed\":\r\n this._initEnterKeyPressedAction();\r\n break;\r\n case \"editAlphaChannel\":\r\n if (this._$colorPickerContainer) {\r\n this._renderHtmlRows(\"editAlphaChannel\");\r\n this._renderAlphaChannelElements()\r\n }\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"stylingMode\":\r\n this._renderControls();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxColorView\", ColorView);\r\nexport default ColorView;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"<div>\").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"<div>\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\");\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar DX_MENU_ITEM_CAPTION_URL_CLASS = \"\".concat(DX_MENU_ITEM_CAPTION_CLASS, \"-with-url\");\r\nvar DX_ICON_WITH_URL_CLASS = \"dx-icon-with-url\";\r\nvar DX_ITEM_URL_CLASS = \"dx-item-url\";\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelectionAttribute() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getLinkContainer(iconContainer, textContainer, _ref) {\r\n var {\r\n linkAttr: linkAttr,\r\n url: url\r\n } = _ref;\r\n null === iconContainer || void 0 === iconContainer ? void 0 : iconContainer.addClass(DX_ICON_WITH_URL_CLASS);\r\n null === textContainer || void 0 === textContainer ? void 0 : textContainer.addClass(DX_MENU_ITEM_CAPTION_URL_CLASS);\r\n var linkAttributes = isObject(linkAttr) ? linkAttr : {};\r\n return $(\"<a>\").addClass(DX_ITEM_URL_CLASS).attr(_extends({}, linkAttributes, {\r\n href: url\r\n })).append(iconContainer).append(textContainer)\r\n }\r\n _addContent($container, itemData) {\r\n var {\r\n html: html,\r\n url: url\r\n } = itemData;\r\n var iconContainer = this._getIconContainer(itemData);\r\n var textContainer = this._getTextContainer(itemData);\r\n $container.html(html);\r\n if (url) {\r\n var link = this._getLinkContainer(iconContainer, textContainer, itemData);\r\n $container.append(link)\r\n } else {\r\n $container.append(iconContainer).append(textContainer)\r\n }\r\n $container.append(this._getPopoutContainer(itemData));\r\n this._addContentClasses(itemData, $container.parent())\r\n }\r\n _getTextContainer(itemData) {\r\n var {\r\n text: text\r\n } = itemData;\r\n var $itemContainer = $(\"<span>\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemText = isPlainObject(itemData) ? text : String(itemData);\r\n return text && $itemContainer.text(itemText)\r\n }\r\n _getItemExtraPropNames() {\r\n return [\"url\", \"linkAttr\"]\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"<div>\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"<span>\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"<ul>\");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"<li>\");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelectionAttribute($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelectionAttribute($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelectionAttribute($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"<li>\").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n beforeExecute: this._itemClick,\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _itemClick(actionArgs) {\r\n var args = actionArgs.args[0];\r\n var link = args.event.target.getElementsByClassName(DX_ITEM_URL_CLASS)[0];\r\n if (args.itemData.url && link) {\r\n link.click()\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectAllowed(item) {\r\n var isSelectByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function() {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop()\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 12\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"<input>\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"<div>\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\")\r\n })\r\n },\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _getTodayButtonConfig() {\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var isButtonsLocationDefault = \"default\" === buttonsLocation;\r\n var position = isButtonsLocationDefault ? [\"bottom\", \"center\"] : splitPair(buttonsLocation);\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: this.dateBox.option(\"todayButtonText\"),\r\n type: \"today\"\r\n }\r\n }\r\n },\r\n _isCalendarVisible: function() {\r\n var {\r\n calendarOptions: calendarOptions\r\n } = this.dateBox.option();\r\n return isEmptyObject(calendarOptions) || false !== calendarOptions.visible\r\n },\r\n _getPopupToolbarItems(toolbarItems) {\r\n var useButtons = \"useButtons\" === this.dateBox.option(\"applyValueMode\");\r\n var shouldRenderTodayButton = useButtons && this._isCalendarVisible();\r\n if (shouldRenderTodayButton) {\r\n var todayButton = this._getTodayButtonConfig();\r\n return [todayButton, ...toolbarItems]\r\n }\r\n return toolbarItems\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return extend(true, _popupConfig, {\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"<div>\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"<div>\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"<div>\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"<div>\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"<div>\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"<div>\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"<div>\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"<div>\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"<div>\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"<div>\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"<div>\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"<div>\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"<div>\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n return extend(calendarPopupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true,\r\n _showValidationIcon: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._updatePopupWidth();\r\n this._updatePopupHeight()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase();\r\n this._updatePopupHeight()\r\n },\r\n _updatePopupHeight: function() {\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon && this.option(\"_showValidationIcon\"));\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _getPopupToolbarItems() {\r\n var _this$_strategy$_getP, _this$_strategy$_getP2, _this$_strategy2;\r\n var defaultItems = this.callBase();\r\n return null !== (_this$_strategy$_getP = null === (_this$_strategy$_getP2 = (_this$_strategy2 = this._strategy)._getPopupToolbarItems) || void 0 === _this$_strategy$_getP2 ? void 0 : _this$_strategy$_getP2.call(_this$_strategy2, defaultItems)) && void 0 !== _this$_strategy$_getP ? _this$_strategy$_getP : defaultItems\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n this._recallInternalValidation(currentValue, validationError);\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _recallInternalValidation(value, validationError) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(value);\r\n this._applyCustomValidation(value)\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this._updateInternalValidationState(isValid, validationMessage);\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _updateInternalValidationState(isValid, validationMessage) {\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n })\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy3;\r\n this.callBase();\r\n null === (_this$_strategy3 = this._strategy) || void 0 === _this$_strategy3 ? void 0 : _this$_strategy3.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"todayButtonText\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n case \"_showValidationIcon\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, () => {\r\n this._enterHandler()\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler() {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD)\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateBox from \"./date_box/ui.date_box\";\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/draggable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Draggable from \"../__internal/m_draggable\";\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DropDownEditor from \"./drop_down_editor/ui.drop_down_editor\";\r\nimport DataExpressionMixin from \"./editor/ui.data_expression\";\r\nimport {\r\n noop,\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n tabbable\r\n} from \"./widget/selectors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../ui/overlay/utils\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n keyboard\r\n} from \"../events/short\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nvar getActiveElement = domAdapter.getActiveElement;\r\nvar DROP_DOWN_BOX_CLASS = \"dx-dropdownbox\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar realDevice = devices.real();\r\nvar DropDownBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n var $tabbableElements = this._getTabbableElements();\r\n var $focusableElement = e.shiftKey ? $tabbableElements.last() : $tabbableElements.first();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _getTabbableElements: function() {\r\n return this._getElements().filter(tabbable)\r\n },\r\n _getElements: function() {\r\n return $(this.content()).find(\"*\")\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n acceptCustomValue: false,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n openOnFieldClick: true,\r\n displayValueFormatter: function(value) {\r\n return Array.isArray(value) ? value.join(\", \") : value\r\n },\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this.callBase()\r\n },\r\n _initMarkup: function() {\r\n this._initDataExpressions();\r\n this.$element().addClass(DROP_DOWN_BOX_CLASS);\r\n this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _renderInputValue: function() {\r\n this._rejectValueLoading();\r\n var values = [];\r\n if (!this._dataSource) {\r\n this.callBase(values);\r\n return (new Deferred).resolve()\r\n }\r\n var currentValue = this._getCurrentValue();\r\n var keys = null !== currentValue && void 0 !== currentValue ? currentValue : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n var itemLoadDeferreds = map(keys, key => {\r\n var deferred = new Deferred;\r\n this._loadItem(key).always(item => {\r\n var displayValue = this._displayGetter(item);\r\n if (isDefined(displayValue)) {\r\n values.push(displayValue)\r\n } else if (this.option(\"acceptCustomValue\")) {\r\n values.push(key)\r\n }\r\n deferred.resolve()\r\n });\r\n return deferred\r\n });\r\n var callBase = this.callBase.bind(this);\r\n return when.apply(this, itemLoadDeferreds).always(() => {\r\n this.option(\"displayValue\", values);\r\n callBase(values.length && values)\r\n })\r\n },\r\n _loadItem: function(value) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var selectedItem = grep(this.option(\"items\") || [], function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0];\r\n if (void 0 !== selectedItem) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n this._loadValue(value).done((function(item) {\r\n deferred.resolve(item)\r\n })).fail((function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n if (that.option(\"acceptCustomValue\")) {\r\n deferred.resolve(value)\r\n } else {\r\n deferred.reject()\r\n }\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _popupElementTabHandler: function(e) {\r\n if (\"tab\" !== normalizeKeyName(e)) {\r\n return\r\n }\r\n var $firstTabbable = this._getTabbableElements().first().get(0);\r\n var $lastTabbable = this._getTabbableElements().last().get(0);\r\n var $target = e.originalEvent.target;\r\n var moveBackward = !!($target === $firstTabbable && e.shift);\r\n var moveForward = !!($target === $lastTabbable && !e.shift);\r\n if (moveBackward || moveForward) {\r\n this.close();\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n if (moveBackward) {\r\n e.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _renderPopup: function(e) {\r\n this.callBase();\r\n if (this.option(\"focusStateEnabled\")) {\r\n keyboard.on(this.content(), null, e => this._popupElementTabHandler(e))\r\n }\r\n },\r\n _renderPopupContent: function() {\r\n if (this.option(\"contentTemplate\") === ANONYMOUS_TEMPLATE_NAME) {\r\n return\r\n }\r\n var contentTemplate = this._getTemplateByOption(\"contentTemplate\");\r\n if (!(contentTemplate && this.option(\"contentTemplate\"))) {\r\n return\r\n }\r\n var $popupContent = this._popup.$content();\r\n var templateData = {\r\n value: this._fieldRenderData(),\r\n component: this\r\n };\r\n $popupContent.empty();\r\n contentTemplate.render({\r\n container: getPublicElement($popupContent),\r\n model: templateData\r\n })\r\n },\r\n _canShowVirtualKeyboard: function() {\r\n return realDevice.mac\r\n },\r\n _isNestedElementActive: function() {\r\n var activeElement = getActiveElement();\r\n return activeElement && this._popup.$content().get(0).contains(activeElement)\r\n },\r\n _shouldHideOnParentScroll: function() {\r\n return \"desktop\" === realDevice.deviceType && this._canShowVirtualKeyboard() && this._isNestedElementActive()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._popupPosition = void 0\r\n },\r\n _popupPositionedHandler: function(e) {\r\n this.callBase(e);\r\n this._popupPosition = e.position\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this.callBase(isRtlEnabled);\r\n return {\r\n my: my,\r\n at: at,\r\n offset: {\r\n v: -1\r\n },\r\n collision: \"flipfit\"\r\n }\r\n },\r\n _popupConfig: function() {\r\n var {\r\n focusStateEnabled: focusStateEnabled\r\n } = this.option();\r\n return extend(this.callBase(), {\r\n tabIndex: -1,\r\n dragEnabled: false,\r\n focusStateEnabled: focusStateEnabled,\r\n contentTemplate: ANONYMOUS_TEMPLATE_NAME,\r\n hideOnParentScroll: this._shouldHideOnParentScroll.bind(this),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n onKeyboardHandled: opts => this.option(\"focusStateEnabled\") && this._popupElementTabHandler(opts),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: function() {\r\n var _this$_popupPosition;\r\n var popupLocation = null === (_this$_popupPosition = this._popupPosition) || void 0 === _this$_popupPosition ? void 0 : _this$_popupPosition.v.location;\r\n return getElementMaxHeightByWindow(this.$element(), popupLocation)\r\n }.bind(this)\r\n })\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n var $firstElement = this._getTabbableElements().first();\r\n eventsEngine.trigger($firstElement, \"focus\")\r\n },\r\n _setCollectionWidgetOption: noop,\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"dataSource\":\r\n this._renderInputValue();\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n break;\r\n case \"contentTemplate\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin);\r\nregisterComponent(\"dxDropDownBox\", DropDownBox);\r\nexport default DropDownBox;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport Button from \"../button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n var _editor$_shouldCallOp;\r\n if (null !== (_editor$_shouldCallOp = editor._shouldCallOpenHandler) && void 0 !== _editor$_shouldCallOp && _editor$_shouldCallOp.call(editor)) {\r\n editor._openHandler(e);\r\n return\r\n }!editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport DropDownButton from \"./ui.drop_down_button\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./utils\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n if ($focusableElement) {\r\n eventsEngine.trigger($focusableElement, \"focus\");\r\n $focusableElement.select()\r\n }\r\n e.preventDefault()\r\n },\r\n escape: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false,\r\n validationMessagePosition: \"auto\"\r\n })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n var isGeneric = \"generic\" === _device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER).first()\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions: function() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner($(\"<div>\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _renderTemplatedField: function(fieldTemplate, data) {\r\n var _this$_fieldRenderQue;\r\n this._fieldRenderQueueLength = (null !== (_this$_fieldRenderQue = this._fieldRenderQueueLength) && void 0 !== _this$_fieldRenderQue ? _this$_fieldRenderQue : 0) + 1;\r\n var isFocused = focused(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = $(\"<div>\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n this._fieldRenderQueueLength--;\r\n if (0 !== this._fieldRenderQueueLength) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n });\r\n this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler: function() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler: function() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = this._isTargetOutOfComponent(newTarget);\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _isTargetOutOfComponent: function(newTarget) {\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY)) : this._$popup;\r\n var isTargetOutsidePopup = 0 === $(newTarget).closest(\".\".concat(DROP_DOWN_EDITOR_OVERLAY), popupWrapper).length;\r\n return isTargetOutsidePopup\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : e => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition: function() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _getControlsAria() {\r\n return this._popup && this._popupContentId\r\n },\r\n _renderOpenedState: function() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n var arias = {\r\n expanded: opened,\r\n controls: this._getControlsAria()\r\n };\r\n this.setAria(arias);\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup: function() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n delete popupConfig.closeOnOutsideClick;\r\n if (popupConfig.elementAttr && !Object.keys(popupConfig.elementAttr).length) {\r\n delete popupConfig.elementAttr\r\n }\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig: function() {\r\n return {\r\n onInitialized: this._popupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null,\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY,\r\n _ignorePreventScrollEventsDeprecation: true\r\n }\r\n },\r\n _popupInitializedHandler: function() {\r\n if (!this.option(\"onPopupInitialized\")) {\r\n return null\r\n }\r\n return e => {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (hasWindow() && !this.$element().is(\":visible\")) {\r\n this.close();\r\n return\r\n }\r\n this._updatePopupWidth()\r\n },\r\n _updatePopupWidth: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler: function(e) {\r\n var _e$position, _e$position$v;\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n if (!this._popup) {\r\n return\r\n }\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = null === (_e$position = e.position) || void 0 === _e$position ? void 0 : null === (_e$position$v = _e$position.v) || void 0 === _e$position$v ? void 0 : _e$position$v.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _getValidationMessagePositionSide: function() {\r\n var validationMessagePosition = this.option(\"validationMessagePosition\");\r\n if (\"auto\" !== validationMessagePosition) {\r\n return validationMessagePosition\r\n }\r\n var positionSide = \"bottom\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionSide = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"bottom\" : \"top\"\r\n }\r\n return positionSide\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean: function() {\r\n delete this._openOnFieldClickAction;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-done.dx-button\")\r\n },\r\n _getLastPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-cancel.dx-button\")\r\n },\r\n _popupElementTabHandler: function(e) {\r\n var $element = $(e.currentTarget);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement()) || !e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupElementEscHandler: function() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _popupButtonInitializedHandler: function(e) {\r\n e.component.registerKeyHandler(\"tab\", this._popupElementTabHandler.bind(this));\r\n e.component.registerKeyHandler(\"escape\", this._popupElementEscHandler.bind(this))\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (function(_, element) {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n }))\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n if (isDefined(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return getPublicElement(this._input())\r\n },\r\n content: function() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessagePosition: \"positionSide\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {},\r\n _showValidationMessage: true\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow() || false === this.option(\"_showValidationMessage\")) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"<div>\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionSide: this._getValidationMessagePosition(),\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessagePosition: function() {\r\n return this.option(\"validationMessagePosition\")\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessagePosition\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n case \"_showValidationMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject as isObjectType,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n });\r\n this._initDataController()\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail((function() {\r\n deferred.reject()\r\n }));\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading: function() {\r\n var _this$_loadValueDefer;\r\n null === (_this$_loadValueDefer = this._loadValueDeferred) || void 0 === _this$_loadValueDefer ? void 0 : _this$_loadValueDefer.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return toComparable(value1, true) === toComparable(value2, true)\r\n },\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../core/utils/type\";\r\nvar DataConverter = Class.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n each(items, (function(_, item) {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n }))\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n }))\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (function(_, node) {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n }));\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n each(data, (function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n }));\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n }))\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n }))\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../ui/widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport query from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport HierarchicalDataConverter from \"./ui.data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n }));\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n }))\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, (function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n }))\r\n }\r\n }))\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n }))\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, (function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }))\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n }))\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, (function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n }))\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n each(keys, (function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n }))\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n }))\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n }));\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return query(this._dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n }));\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n }));\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure, {\r\n langParams: this.options.langParams\r\n }).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n ! function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort,\r\n langParams: this.options.langParams\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n }));\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport HierarchicalDataAdapter from \"./ui.data_adapter\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _getItemExtraPropNames: noop,\r\n _initDynamicTemplates: function() {\r\n var fields = [\"text\", \"html\", \"items\", \"icon\"].concat(this._getItemExtraPropNames());\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(this._addContent.bind(this), fields, this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _addContent: function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData))\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? getImageContainer(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return $(\"<span>\").text(itemData.text)\r\n },\r\n _initAccessors: function() {\r\n var that = this;\r\n each(this._getAccessors(), (function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n }));\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n }));\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n } else if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n }));\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_menu_helper.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar EditDecoratorMenuHelperMixin = {\r\n _menuEnabled: function() {\r\n return !!this._menuItems().length\r\n },\r\n _menuItems: function() {\r\n return this._list.option(\"menuItems\")\r\n },\r\n _deleteEnabled: function() {\r\n return this._list.option(\"allowItemDeleting\")\r\n },\r\n _fireMenuAction: function($itemElement, action) {\r\n this._list._itemEventHandlerByHandler($itemElement, action, {}, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n};\r\nexport default EditDecoratorMenuHelperMixin;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.context.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar CONTEXTMENU_CLASS = \"dx-list-context-menu\";\r\nvar CONTEXTMENU_MENUCONTENT_CLASS = \"dx-list-context-menucontent\";\r\nregisterDecorator(\"menu\", \"context\", EditDecorator.inherit({\r\n _init: function() {\r\n var $menu = $(\"<div>\").addClass(CONTEXTMENU_CLASS);\r\n this._list.$element().append($menu);\r\n this._menu = this._renderOverlay($menu)\r\n },\r\n _renderOverlay: function($element) {\r\n return this._list._createComponent($element, Overlay, {\r\n shading: false,\r\n deferRendering: true,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: function(e) {\r\n return !$(e.target).closest(\".\" + CONTEXTMENU_CLASS).length\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n height: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n height: function() {\r\n return getOuterHeight(this._$menuList)\r\n }.bind(this),\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 0,\r\n from: {\r\n opacity: 1\r\n },\r\n to: {\r\n opacity: 0\r\n }\r\n }\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n height: function() {\r\n return this._$menuList ? getOuterHeight(this._$menuList) : 0\r\n }.bind(this),\r\n width: function() {\r\n return getOuterWidth(this._list.$element())\r\n }.bind(this),\r\n onContentReady: this._renderMenuContent.bind(this)\r\n })\r\n },\r\n _renderMenuContent: function(e) {\r\n var $overlayContent = e.component.$content();\r\n var items = this._menuItems().slice();\r\n if (this._deleteEnabled()) {\r\n items.push({\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n action: this._deleteItem.bind(this)\r\n })\r\n }\r\n this._$menuList = $(\"<div>\");\r\n this._list._createComponent(this._$menuList, ListBase, {\r\n items: items,\r\n onItemClick: this._menuItemClickHandler.bind(this),\r\n height: \"auto\",\r\n integrationOptions: {}\r\n });\r\n $overlayContent.addClass(CONTEXTMENU_MENUCONTENT_CLASS);\r\n $overlayContent.append(this._$menuList)\r\n },\r\n _menuItemClickHandler: function(args) {\r\n this._menu.hide();\r\n this._fireMenuAction(this._$itemWithMenu, args.itemData.action)\r\n },\r\n _deleteItem: function() {\r\n this._list.deleteItem(this._$itemWithMenu)\r\n },\r\n handleContextMenu: function($itemElement) {\r\n this._$itemWithMenu = $itemElement;\r\n this._menu.option({\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: $itemElement,\r\n collision: \"flip\"\r\n }\r\n });\r\n this._menu.show();\r\n return true\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar abstract = EditDecorator.abstract;\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar POINTER_DOWN_EVENT_NAME = addNamespace(pointerEvents.down, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar LIST_ITEM_CONTENT_CLASS = \"dx-list-item-content\";\r\nvar SWITCHABLE_DELETE_READY_CLASS = \"dx-list-switchable-delete-ready\";\r\nvar SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-shield-positioning\";\r\nvar SWITCHABLE_DELETE_TOP_SHIELD_CLASS = \"dx-list-switchable-delete-top-shield\";\r\nvar SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS = \"dx-list-switchable-delete-bottom-shield\";\r\nvar SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS = \"dx-list-switchable-menu-item-shield-positioning\";\r\nvar SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS = \"dx-list-switchable-delete-item-content-shield\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SwitchableEditDecorator = EditDecorator.inherit({\r\n _init: function() {\r\n this._$topShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_TOP_SHIELD_CLASS);\r\n this._$bottomShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_BOTTOM_SHIELD_CLASS);\r\n this._$itemContentShield = $(\"<div>\").addClass(SWITCHABLE_DELETE_ITEM_CONTENT_SHIELD_CLASS);\r\n eventsEngine.on(this._$topShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n eventsEngine.on(this._$bottomShield, POINTER_DOWN_EVENT_NAME, this._cancelDeleteReadyItem.bind(this));\r\n this._list.$element().append(this._$topShield.toggle(false)).append(this._$bottomShield.toggle(false))\r\n },\r\n handleClick: function() {\r\n return this._cancelDeleteReadyItem()\r\n },\r\n _cancelDeleteReadyItem: function() {\r\n if (!this._$readyToDeleteItem) {\r\n return false\r\n }\r\n this._cancelDelete(this._$readyToDeleteItem);\r\n return true\r\n },\r\n _cancelDelete: function($itemElement) {\r\n this._toggleDeleteReady($itemElement, false)\r\n },\r\n _toggleDeleteReady: function($itemElement, readyToDelete) {\r\n if (void 0 === readyToDelete) {\r\n readyToDelete = !this._isReadyToDelete($itemElement)\r\n }\r\n this._toggleShields($itemElement, readyToDelete);\r\n this._toggleScrolling(readyToDelete);\r\n this._cacheReadyToDeleteItem($itemElement, readyToDelete);\r\n this._animateToggleDelete($itemElement, readyToDelete)\r\n },\r\n _isReadyToDelete: function($itemElement) {\r\n return $itemElement.hasClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _toggleShields: function($itemElement, enabled) {\r\n this._list.$element().toggleClass(SWITCHABLE_MENU_SHIELD_POSITIONING_CLASS, enabled);\r\n this._$topShield.toggle(enabled);\r\n this._$bottomShield.toggle(enabled);\r\n if (enabled) {\r\n this._updateShieldsHeight($itemElement)\r\n }\r\n this._toggleContentShield($itemElement, enabled)\r\n },\r\n _updateShieldsHeight: function($itemElement) {\r\n var $list = this._list.$element();\r\n var listTopOffset = $list.offset().top;\r\n var listHeight = getOuterHeight($list);\r\n var itemTopOffset = $itemElement.offset().top;\r\n var itemHeight = getOuterHeight($itemElement);\r\n var dirtyTopShieldHeight = itemTopOffset - listTopOffset;\r\n var dirtyBottomShieldHeight = listHeight - itemHeight - dirtyTopShieldHeight;\r\n setHeight(this._$topShield, Math.max(dirtyTopShieldHeight, 0));\r\n setHeight(this._$bottomShield, Math.max(dirtyBottomShieldHeight, 0))\r\n },\r\n _toggleContentShield: function($itemElement, enabled) {\r\n if (enabled) {\r\n $itemElement.find(\".\" + LIST_ITEM_CONTENT_CLASS).first().append(this._$itemContentShield)\r\n } else {\r\n this._$itemContentShield.detach()\r\n }\r\n },\r\n _toggleScrolling: function(readyToDelete) {\r\n var scrollView = this._list.$element().dxScrollView(\"instance\");\r\n if (readyToDelete) {\r\n scrollView.on(\"start\", this._cancelScrolling)\r\n } else {\r\n scrollView.off(\"start\", this._cancelScrolling)\r\n }\r\n },\r\n _cancelScrolling: function(args) {\r\n args.event.cancel = true\r\n },\r\n _cacheReadyToDeleteItem: function($itemElement, cache) {\r\n if (cache) {\r\n this._$readyToDeleteItem = $itemElement\r\n } else {\r\n delete this._$readyToDeleteItem\r\n }\r\n },\r\n _animateToggleDelete: function($itemElement, readyToDelete) {\r\n if (readyToDelete) {\r\n this._enablePositioning($itemElement);\r\n this._prepareDeleteReady($itemElement);\r\n this._animatePrepareDeleteReady($itemElement);\r\n eventsEngine.off($itemElement, pointerEvents.up)\r\n } else {\r\n this._forgetDeleteReady($itemElement);\r\n this._animateForgetDeleteReady($itemElement).done(this._disablePositioning.bind(this, $itemElement))\r\n }\r\n },\r\n _enablePositioning: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.on($itemElement, ACTIVE_EVENT_NAME, noop);\r\n eventsEngine.one($itemElement, pointerEvents.up, this._disablePositioning.bind(this, $itemElement))\r\n },\r\n _disablePositioning: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS);\r\n eventsEngine.off($itemElement, ACTIVE_EVENT_NAME)\r\n },\r\n _prepareDeleteReady: function($itemElement) {\r\n $itemElement.addClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _forgetDeleteReady: function($itemElement) {\r\n $itemElement.removeClass(SWITCHABLE_DELETE_READY_CLASS)\r\n },\r\n _animatePrepareDeleteReady: abstract,\r\n _animateForgetDeleteReady: abstract,\r\n _getDeleteButtonContainer: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n return $itemElement.children(\".\" + SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS)\r\n },\r\n _deleteItem: function($itemElement) {\r\n $itemElement = $itemElement || this._$readyToDeleteItem;\r\n this._getDeleteButtonContainer($itemElement).detach();\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement).always(this._cancelDelete.bind(this, $itemElement))\r\n },\r\n _isRtlEnabled: function() {\r\n return this._list.option(\"rtlEnabled\")\r\n },\r\n dispose: function() {\r\n if (this._$topShield) {\r\n this._$topShield.remove()\r\n }\r\n if (this._$bottomShield) {\r\n this._$bottomShield.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nexport default SwitchableEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport fx from \"../../animation/fx\";\r\nimport Button from \"../button\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nvar SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-switchable-delete-button-container\";\r\nvar SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS = \"dx-list-switchable-delete-button-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS = \"dx-list-switchable-delete-button-inner-wrapper\";\r\nvar SWITCHABLE_DELETE_BUTTON_CLASS = \"dx-list-switchable-delete-button\";\r\nvar SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION = 200;\r\nvar SwitchableButtonEditDecorator = SwitchableEditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $buttonContainer = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS);\r\n var $buttonWrapper = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS);\r\n var $buttonInnerWrapper = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS);\r\n var $button = $(\"<div>\").addClass(SWITCHABLE_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n text: messageLocalization.format(\"dxListEditDecorator-delete\"),\r\n type: \"danger\",\r\n onClick: function(e) {\r\n this._deleteItem();\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $buttonContainer.append($buttonWrapper);\r\n $buttonWrapper.append($buttonInnerWrapper);\r\n $buttonInnerWrapper.append($button);\r\n this._$buttonContainer = $buttonContainer\r\n },\r\n _enablePositioning: function($itemElement) {\r\n this.callBase.apply(this, arguments);\r\n fx.stop(this._$buttonContainer, true);\r\n this._$buttonContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = getWidth(this._list.$element());\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth : -buttonWidth;\r\n var toValue = rtl ? listWidth - buttonWidth : 0;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _animateForgetDeleteReady: function() {\r\n var rtl = this._isRtlEnabled();\r\n var listWidth = getWidth(this._list.$element());\r\n var buttonWidth = this._buttonWidth();\r\n var fromValue = rtl ? listWidth - buttonWidth : 0;\r\n var toValue = rtl ? listWidth : -buttonWidth;\r\n return fx.animate(this._$buttonContainer, {\r\n type: \"custom\",\r\n duration: SWITCHABLE_DELETE_BUTTON_ANIMATION_DURATION,\r\n from: {\r\n right: fromValue\r\n },\r\n to: {\r\n right: toValue\r\n }\r\n })\r\n },\r\n _buttonWidth: function() {\r\n if (!this._buttonContainerWidth) {\r\n this._buttonContainerWidth = getOuterWidth(this._$buttonContainer)\r\n }\r\n return this._buttonContainerWidth\r\n },\r\n dispose: function() {\r\n if (this._$buttonContainer) {\r\n this._$buttonContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n});\r\nvar TOGGLE_DELETE_SWITCH_CONTAINER_CLASS = \"dx-list-toggle-delete-switch-container\";\r\nvar TOGGLE_DELETE_SWITCH_CLASS = \"dx-list-toggle-delete-switch\";\r\nregisterDecorator(\"delete\", \"toggle\", SwitchableButtonEditDecorator.inherit({\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $toggle = $(\"<div>\").addClass(TOGGLE_DELETE_SWITCH_CLASS);\r\n this._list._createComponent($toggle, Button, {\r\n icon: \"toggle-delete\",\r\n onClick: function(e) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement);\r\n e.event.stopPropagation()\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(TOGGLE_DELETE_SWITCH_CONTAINER_CLASS);\r\n $container.append($toggle)\r\n }\r\n}));\r\nregisterDecorator(\"delete\", \"slideButton\", SwitchableButtonEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _swipeEndHandler: function($itemElement, args) {\r\n if (0 !== args.targetOffset) {\r\n fx.stop(this._$buttonContainer, false);\r\n this._toggleDeleteReady($itemElement)\r\n }\r\n return true\r\n }\r\n}));\r\nexport default SwitchableButtonEditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/action_sheet.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Button from \"./button\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport Popover from \"./popover/ui.popover\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar ACTION_SHEET_CLASS = \"dx-actionsheet\";\r\nvar ACTION_SHEET_CONTAINER_CLASS = \"dx-actionsheet-container\";\r\nvar ACTION_SHEET_POPUP_WRAPPER_CLASS = \"dx-actionsheet-popup-wrapper\";\r\nvar ACTION_SHEET_POPOVER_WRAPPER_CLASS = \"dx-actionsheet-popover-wrapper\";\r\nvar ACTION_SHEET_CANCEL_BUTTON_CLASS = \"dx-actionsheet-cancel\";\r\nvar ACTION_SHEET_ITEM_CLASS = \"dx-actionsheet-item\";\r\nvar ACTION_SHEET_ITEM_DATA_KEY = \"dxActionSheetItemData\";\r\nvar ACTION_SHEET_WITHOUT_TITLE_CLASS = \"dx-actionsheet-without-title\";\r\nvar ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE = \"outlined\";\r\nvar ActionSheet = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n usePopover: false,\r\n target: null,\r\n title: \"\",\r\n showTitle: true,\r\n showCancelButton: true,\r\n cancelText: messageLocalization.format(\"Cancel\"),\r\n onCancelClick: null,\r\n visible: false,\r\n noDataText: \"\",\r\n focusStateEnabled: false,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\",\r\n tablet: true\r\n },\r\n options: {\r\n usePopover: true\r\n }\r\n }])\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate((function($container, data) {\r\n var button = new Button($(\"<div>\"), extend({\r\n onClick: data && data.click,\r\n stylingMode: data && data.stylingMode || ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE\r\n }, data));\r\n $container.append(button.$element())\r\n }), [\"disabled\", \"icon\", \"text\", \"type\", \"onClick\", \"click\", \"stylingMode\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemClass: function() {\r\n return ACTION_SHEET_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ACTION_SHEET_ITEM_DATA_KEY\r\n },\r\n _toggleVisibility: noop,\r\n _renderDimensions: noop,\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(ACTION_SHEET_CLASS);\r\n this._createItemContainer()\r\n },\r\n _render: function() {\r\n this._renderPopup()\r\n },\r\n _createItemContainer: function() {\r\n this._$itemContainer = $(\"<div>\").addClass(ACTION_SHEET_CONTAINER_CLASS);\r\n this._renderDisabled()\r\n },\r\n _renderDisabled: function() {\r\n this._$itemContainer.toggleClass(\"dx-state-disabled\", this.option(\"disabled\"))\r\n },\r\n _renderPopup: function() {\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n this._isPopoverMode() ? this._createPopover() : this._createPopup();\r\n this._renderPopupTitle();\r\n this._mapPopupOption(\"visible\")\r\n },\r\n _mapPopupOption: function(optionName) {\r\n this._popup && this._popup.option(optionName, this.option(optionName))\r\n },\r\n _isPopoverMode: function() {\r\n return this.option(\"usePopover\") && this.option(\"target\")\r\n },\r\n _renderPopupTitle: function() {\r\n this._mapPopupOption(\"showTitle\");\r\n this._popup && this._popup.$wrapper().toggleClass(ACTION_SHEET_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"))\r\n },\r\n _clean: function() {\r\n if (this._$popup) {\r\n this._$popup.remove()\r\n }\r\n this.callBase()\r\n },\r\n _overlayConfig: function() {\r\n return {\r\n onInitialized: function(args) {\r\n this._popup = args.component\r\n }.bind(this),\r\n disabled: false,\r\n showTitle: true,\r\n title: this.option(\"title\"),\r\n deferRendering: !window.angular,\r\n onContentReady: this._popupContentReadyAction.bind(this),\r\n onHidden: this.hide.bind(this)\r\n }\r\n },\r\n _createPopover: function() {\r\n this._createComponent(this._$popup, Popover, extend(this._overlayConfig(), {\r\n width: this.option(\"width\") || 200,\r\n height: this.option(\"height\") || \"auto\",\r\n target: this.option(\"target\")\r\n }));\r\n this._popup.$overlayContent().attr(\"role\", \"dialog\");\r\n this._popup.$wrapper().addClass(ACTION_SHEET_POPOVER_WRAPPER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this._createComponent(this._$popup, Popup, extend(this._overlayConfig(), {\r\n dragEnabled: false,\r\n width: this.option(\"width\") || \"100%\",\r\n height: this.option(\"height\") || \"auto\",\r\n showCloseButton: false,\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }));\r\n this._popup.$wrapper().addClass(ACTION_SHEET_POPUP_WRAPPER_CLASS)\r\n },\r\n _popupContentReadyAction: function() {\r\n this._popup.$content().append(this._$itemContainer);\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._prepareContent();\r\n this._renderContent();\r\n this._renderCancelButton()\r\n },\r\n _renderCancelButton: function() {\r\n if (this._isPopoverMode()) {\r\n return\r\n }\r\n if (this._$cancelButton) {\r\n this._$cancelButton.remove()\r\n }\r\n if (this.option(\"showCancelButton\")) {\r\n var cancelClickAction = this._createActionByOption(\"onCancelClick\") || noop;\r\n var that = this;\r\n this._$cancelButton = $(\"<div>\").addClass(ACTION_SHEET_CANCEL_BUTTON_CLASS).appendTo(this._popup && this._popup.$content());\r\n this._createComponent(this._$cancelButton, Button, {\r\n disabled: false,\r\n stylingMode: ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE,\r\n text: this.option(\"cancelText\"),\r\n onClick: function(e) {\r\n var hidingArgs = {\r\n event: e,\r\n cancel: false\r\n };\r\n cancelClickAction(hidingArgs);\r\n if (!hidingArgs.cancel) {\r\n that.hide()\r\n }\r\n },\r\n integrationOptions: {}\r\n })\r\n }\r\n },\r\n _attachItemClickEvent: noop,\r\n _itemClickHandler: function(e) {\r\n this.callBase(e);\r\n if (!$(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _itemHoldHandler: function(e) {\r\n this.callBase(e);\r\n if (!$(e.target).is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n this.hide()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n case \"visible\":\r\n case \"title\":\r\n this._mapPopupOption(args.name);\r\n break;\r\n case \"disabled\":\r\n this._renderDisabled();\r\n break;\r\n case \"showTitle\":\r\n this._renderPopupTitle();\r\n break;\r\n case \"showCancelButton\":\r\n case \"onCancelClick\":\r\n case \"cancelText\":\r\n this._renderCancelButton();\r\n break;\r\n case \"target\":\r\n case \"usePopover\":\r\n case \"items\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n var that = this;\r\n var d = new Deferred;\r\n that._popup.toggle(showing).done((function() {\r\n that.option(\"visible\", showing);\r\n d.resolveWith(that)\r\n }));\r\n return d.promise()\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n }\r\n});\r\nregisterComponent(\"dxActionSheet\", ActionSheet);\r\nexport default ActionSheet;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.switchable.slide.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n active\r\n} from \"../../events/core/emitter.feedback\";\r\nimport EditDecoratorMenuHelperMixin from \"./ui.list.edit.decorator_menu_helper\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport SwitchableEditDecorator from \"./ui.list.edit.decorator.switchable\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport ActionSheet from \"../action_sheet\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, LIST_EDIT_DECORATOR);\r\nvar ACTIVE_EVENT_NAME = addNamespace(active, LIST_EDIT_DECORATOR);\r\nvar SLIDE_MENU_CLASS = \"dx-list-slide-menu\";\r\nvar SLIDE_MENU_WRAPPER_CLASS = \"dx-list-slide-menu-wrapper\";\r\nvar SLIDE_MENU_CONTENT_CLASS = \"dx-list-slide-menu-content\";\r\nvar SLIDE_MENU_BUTTONS_CONTAINER_CLASS = \"dx-list-slide-menu-buttons-container\";\r\nvar SLIDE_MENU_BUTTONS_CLASS = \"dx-list-slide-menu-buttons\";\r\nvar SLIDE_MENU_BUTTON_CLASS = \"dx-list-slide-menu-button\";\r\nvar SLIDE_MENU_BUTTON_MENU_CLASS = \"dx-list-slide-menu-button-menu\";\r\nvar SLIDE_MENU_BUTTON_DELETE_CLASS = \"dx-list-slide-menu-button-delete\";\r\nvar SLIDE_MENU_ANIMATION_DURATION = 400;\r\nvar SLIDE_MENU_ANIMATION_EASING = \"cubic-bezier(0.075, 0.82, 0.165, 1)\";\r\nregisterDecorator(\"menu\", \"slide\", SwitchableEditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer = $(\"<div>\").addClass(SLIDE_MENU_BUTTONS_CONTAINER_CLASS);\r\n eventsEngine.on(this._$buttonsContainer, ACTIVE_EVENT_NAME, noop);\r\n this._$buttons = $(\"<div>\").addClass(SLIDE_MENU_BUTTONS_CLASS).appendTo(this._$buttonsContainer);\r\n this._renderMenu();\r\n this._renderDeleteButton()\r\n },\r\n _renderMenu: function() {\r\n if (!this._menuEnabled()) {\r\n return\r\n }\r\n var menuItems = this._menuItems();\r\n if (1 === menuItems.length) {\r\n var menuItem = menuItems[0];\r\n this._renderMenuButton(menuItem.text, function(e) {\r\n e.stopPropagation();\r\n this._fireAction(menuItem)\r\n }.bind(this))\r\n } else {\r\n var $menu = $(\"<div>\").addClass(SLIDE_MENU_CLASS);\r\n this._menu = this._list._createComponent($menu, ActionSheet, {\r\n showTitle: false,\r\n items: menuItems,\r\n onItemClick: function(args) {\r\n this._fireAction(args.itemData)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $menu.appendTo(this._list.$element());\r\n var $menuButton = this._renderMenuButton(messageLocalization.format(\"dxListEditDecorator-more\"), function(e) {\r\n e.stopPropagation();\r\n this._menu.show()\r\n }.bind(this));\r\n this._menu.option(\"target\", $menuButton)\r\n }\r\n },\r\n _renderMenuButton: function(text, action) {\r\n var $menuButton = $(\"<div>\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_MENU_CLASS).text(text);\r\n this._$buttons.append($menuButton);\r\n eventsEngine.on($menuButton, CLICK_EVENT_NAME, action);\r\n return $menuButton\r\n },\r\n _renderDeleteButton: function() {\r\n if (!this._deleteEnabled()) {\r\n return\r\n }\r\n var $deleteButton = $(\"<div>\").addClass(SLIDE_MENU_BUTTON_CLASS).addClass(SLIDE_MENU_BUTTON_DELETE_CLASS).text(isMaterial() ? \"\" : messageLocalization.format(\"dxListEditDecorator-delete\"));\r\n eventsEngine.on($deleteButton, CLICK_EVENT_NAME, function(e) {\r\n e.stopPropagation();\r\n this._deleteItem()\r\n }.bind(this));\r\n this._$buttons.append($deleteButton)\r\n },\r\n _fireAction: function(menuItem) {\r\n this._fireMenuAction($(this._cachedNode), menuItem.action);\r\n this._cancelDeleteReadyItem()\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n $itemElement.addClass(SLIDE_MENU_WRAPPER_CLASS);\r\n var $slideMenuContent = $(\"<div>\").addClass(SLIDE_MENU_CONTENT_CLASS);\r\n $itemElement.wrapInner($slideMenuContent)\r\n },\r\n _getDeleteButtonContainer: function() {\r\n return this._$buttonsContainer\r\n },\r\n handleClick: function(_, e) {\r\n if ($(e.target).closest(\".\" + SLIDE_MENU_CONTENT_CLASS).length) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return false\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._enablePositioning($itemElement);\r\n this._cacheItemData($itemElement);\r\n this._setPositions(this._getPositions(0))\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var isItemReadyToDelete = this._isReadyToDelete($itemElement);\r\n var moveJustStarted = this._getCurrentPositions().content === this._getStartPositions().content;\r\n if (moveJustStarted && !isItemReadyToDelete && args.offset * signCorrection > 0) {\r\n args.cancel = true;\r\n return\r\n }\r\n var offset = this._cachedItemWidth * args.offset;\r\n var startOffset = isItemReadyToDelete ? -this._cachedButtonWidth * signCorrection : 0;\r\n var correctedOffset = (offset + startOffset) * signCorrection;\r\n var percent = correctedOffset < 0 ? Math.abs((offset + startOffset) / this._cachedButtonWidth) : 0;\r\n this._setPositions(this._getPositions(percent));\r\n return true\r\n },\r\n _getStartPositions: function() {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n return {\r\n content: 0,\r\n buttonsContainer: rtl ? -this._cachedButtonWidth : this._cachedItemWidth,\r\n buttons: -this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getPositions: function(percent) {\r\n var rtl = this._isRtlEnabled();\r\n var signCorrection = rtl ? -1 : 1;\r\n var startPositions = this._getStartPositions();\r\n return {\r\n content: startPositions.content - percent * this._cachedButtonWidth * signCorrection,\r\n buttonsContainer: startPositions.buttonsContainer - Math.min(percent, 1) * this._cachedButtonWidth * signCorrection,\r\n buttons: startPositions.buttons + Math.min(percent, 1) * this._cachedButtonWidth * signCorrection\r\n }\r\n },\r\n _getCurrentPositions: function() {\r\n return {\r\n content: locate(this._$cachedContent).left,\r\n buttonsContainer: locate(this._$buttonsContainer).left,\r\n buttons: locate(this._$buttons).left\r\n }\r\n },\r\n _setPositions: function(positions) {\r\n move(this._$cachedContent, {\r\n left: positions.content\r\n });\r\n move(this._$buttonsContainer, {\r\n left: positions.buttonsContainer\r\n });\r\n move(this._$buttons, {\r\n left: positions.buttons\r\n })\r\n },\r\n _cacheItemData: function($itemElement) {\r\n if ($itemElement[0] === this._cachedNode) {\r\n return\r\n }\r\n this._$cachedContent = $itemElement.find(\".\" + SLIDE_MENU_CONTENT_CLASS);\r\n this._cachedItemWidth = getOuterWidth($itemElement);\r\n this._cachedButtonWidth = this._cachedButtonWidth || getOuterWidth(this._$buttons);\r\n setWidth(this._$buttonsContainer, this._cachedButtonWidth);\r\n if (this._$cachedContent.length) {\r\n this._cachedNode = $itemElement[0]\r\n }\r\n },\r\n _minButtonContainerLeftOffset: function() {\r\n return this._cachedItemWidth - this._cachedButtonWidth\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n this._cacheItemData($itemElement);\r\n var signCorrection = this._isRtlEnabled() ? 1 : -1;\r\n var offset = this._cachedItemWidth * args.offset;\r\n var endedAtReadyToDelete = !this._isReadyToDelete($itemElement) && offset * signCorrection > .2 * this._cachedButtonWidth;\r\n var readyToDelete = args.targetOffset === signCorrection && endedAtReadyToDelete;\r\n this._toggleDeleteReady($itemElement, readyToDelete);\r\n return true\r\n },\r\n _enablePositioning: function($itemElement) {\r\n fx.stop(this._$cachedContent, true);\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.appendTo($itemElement)\r\n },\r\n _disablePositioning: function() {\r\n this.callBase.apply(this, arguments);\r\n this._$buttonsContainer.detach()\r\n },\r\n _animatePrepareDeleteReady: function() {\r\n return this._animateToPositions(this._getPositions(1))\r\n },\r\n _animateForgetDeleteReady: function($itemElement) {\r\n this._cacheItemData($itemElement);\r\n return this._animateToPositions(this._getPositions(0))\r\n },\r\n _animateToPositions: function(positions) {\r\n var that = this;\r\n var currentPosition = this._getCurrentPositions();\r\n var durationTimePart = Math.min(Math.abs(currentPosition.content - positions.content) / this._cachedButtonWidth, 1);\r\n return fx.animate(this._$cachedContent, {\r\n from: currentPosition,\r\n to: positions,\r\n easing: SLIDE_MENU_ANIMATION_EASING,\r\n duration: SLIDE_MENU_ANIMATION_DURATION * durationTimePart,\r\n strategy: \"frame\",\r\n draw: function(positions) {\r\n that._setPositions(positions)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n if (this._menu) {\r\n this._menu.$element().remove()\r\n }\r\n if (this._$buttonsContainer) {\r\n this._$buttonsContainer.remove()\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n}).include(EditDecoratorMenuHelperMixin));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.static.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Button from \"../button\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar STATIC_DELETE_BUTTON_CONTAINER_CLASS = \"dx-list-static-delete-button-container\";\r\nvar STATIC_DELETE_BUTTON_CLASS = \"dx-list-static-delete-button\";\r\nregisterDecorator(\"delete\", \"static\", EditDecorator.inherit({\r\n afterBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container;\r\n var $button = $(\"<div>\").addClass(STATIC_DELETE_BUTTON_CLASS);\r\n this._list._createComponent($button, Button, {\r\n icon: \"remove\",\r\n onClick: function(args) {\r\n args.event.stopPropagation();\r\n this._deleteItem($itemElement)\r\n }.bind(this),\r\n integrationOptions: {}\r\n });\r\n $container.addClass(STATIC_DELETE_BUTTON_CONTAINER_CLASS).append($button)\r\n },\r\n _deleteItem: function($itemElement) {\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n this._list.deleteItem($itemElement)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.swipe.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nregisterDecorator(\"delete\", \"swipe\", EditDecorator.inherit({\r\n _shouldHandleSwipe: true,\r\n _renderItemPosition: function($itemElement, offset, animate) {\r\n var deferred = new Deferred;\r\n var itemOffset = offset * this._itemElementWidth;\r\n if (animate) {\r\n fx.animate($itemElement, {\r\n to: {\r\n left: itemOffset\r\n },\r\n type: \"slide\",\r\n complete: function() {\r\n deferred.resolve($itemElement, offset)\r\n }\r\n })\r\n } else {\r\n move($itemElement, {\r\n left: itemOffset\r\n });\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _swipeStartHandler: function($itemElement) {\r\n this._itemElementWidth = getWidth($itemElement);\r\n return true\r\n },\r\n _swipeUpdateHandler: function($itemElement, args) {\r\n this._renderItemPosition($itemElement, args.offset);\r\n return true\r\n },\r\n _swipeEndHandler: function($itemElement, args) {\r\n var offset = args.targetOffset;\r\n this._renderItemPosition($itemElement, offset, true).done(function($itemElement, offset) {\r\n if (Math.abs(offset)) {\r\n this._list.deleteItem($itemElement).fail(function() {\r\n this._renderItemPosition($itemElement, 0, true)\r\n }.bind(this))\r\n }\r\n }.bind(this));\r\n return true\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.reorder.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isMouseEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nimport Sortable from \"../sortable\";\r\nvar REORDER_HANDLE_CONTAINER_CLASS = \"dx-list-reorder-handle-container\";\r\nvar REORDER_HANDLE_CLASS = \"dx-list-reorder-handle\";\r\nvar REORDERING_ITEM_GHOST_CLASS = \"dx-list-item-ghost-reordering\";\r\nvar STATE_HOVER_CLASS = \"dx-state-hover\";\r\nregisterDecorator(\"reorder\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n var list = this._list;\r\n this._groupedEnabled = this._list.option(\"grouped\");\r\n this._lockedDrag = false;\r\n var filter = this._groupedEnabled ? \"> .dx-list-group > .dx-list-group-body > .dx-list-item\" : \"> .dx-list-item\";\r\n this._sortable = list._createComponent(list._scrollView.content(), Sortable, extend({\r\n component: list,\r\n contentTemplate: null,\r\n allowReordering: false,\r\n filter: filter,\r\n container: list.$element(),\r\n dragDirection: list.option(\"itemDragging.group\") ? \"both\" : \"vertical\",\r\n handle: \".\".concat(REORDER_HANDLE_CLASS),\r\n dragTemplate: this._dragTemplate,\r\n onDragStart: this._dragStartHandler.bind(this),\r\n onDragChange: this._dragChangeHandler.bind(this),\r\n onReorder: this._reorderHandler.bind(this)\r\n }, list.option(\"itemDragging\")))\r\n },\r\n afterRender: function() {\r\n this._sortable.update()\r\n },\r\n _dragTemplate: function(e) {\r\n var result = $(e.itemElement).clone().addClass(REORDERING_ITEM_GHOST_CLASS).addClass(STATE_HOVER_CLASS);\r\n setWidth(result, getWidth(e.itemElement));\r\n return result\r\n },\r\n _dragStartHandler: function(e) {\r\n if (this._lockedDrag) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _dragChangeHandler: function(e) {\r\n if (this._groupedEnabled && !this._sameParent(e.fromIndex, e.toIndex)) {\r\n e.cancel = true;\r\n return\r\n }\r\n },\r\n _sameParent: function(fromIndex, toIndex) {\r\n var $dragging = this._list.getItemElementByFlatIndex(fromIndex);\r\n var $over = this._list.getItemElementByFlatIndex(toIndex);\r\n return $over.parent().get(0) === $dragging.parent().get(0)\r\n },\r\n _reorderHandler: function(e) {\r\n var $targetElement = this._list.getItemElementByFlatIndex(e.toIndex);\r\n this._list.reorderItem($(e.itemElement), $targetElement)\r\n },\r\n afterBag: function(config) {\r\n var $handle = $(\"<div>\").addClass(REORDER_HANDLE_CLASS);\r\n eventsEngine.on($handle, \"dxpointerdown\", e => {\r\n this._lockedDrag = !isMouseEvent(e)\r\n });\r\n eventsEngine.on($handle, \"dxhold\", {\r\n timeout: 30\r\n }, e => {\r\n e.cancel = true;\r\n this._lockedDrag = false\r\n });\r\n config.$container.addClass(REORDER_HANDLE_CONTAINER_CLASS).append($handle)\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport List from \"./list_light\";\r\nimport \"./list/modules/selection\";\r\nimport \"./list/modules/deleting\";\r\nimport \"./list/modules/dragging\";\r\nimport \"./list/modules/context\";\r\nimport \"./list/modules/search\";\r\nexport default List;\r\n","/**\r\n * DevExtreme (esm/ui/list/modules/search.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../text_box\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"<div>\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataController = list._dataController;\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && !dataController.group()) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"<div>\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nimport {\r\n getElementMargin\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_style\";\r\nimport Guid from \"../../core/guid\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n selectByClick: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataController.getDataSource();\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"<div>\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var dataController = this._dataController;\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !dataController.isLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !dataController.isLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._clearSelectedItems();\r\n dataController.pageIndex(0);\r\n dataController.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (!dataController.isLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState(true);\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"list\"\r\n }, this.$element());\r\n this._setListAria()\r\n },\r\n _setListAria() {\r\n var {\r\n items: items\r\n } = this.option();\r\n var listArea = null !== items && void 0 !== items && items.length ? {\r\n role: \"listbox\",\r\n label: \"Items\"\r\n } : {\r\n role: void 0,\r\n label: void 0\r\n };\r\n this.setAria(listArea)\r\n },\r\n _focusTarget: function() {\r\n return this._itemContainer()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"<div>\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var id = \"dx-\".concat((new Guid).toString());\r\n var groupAria = {\r\n role: \"group\",\r\n labelledby: id\r\n };\r\n this.setAria(groupAria, $groupElement);\r\n var $groupHeaderElement = $(\"<div>\").addClass(LIST_GROUP_HEADER_CLASS).attr(\"id\", id).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"<div>\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"<div>\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataController = this._dataController;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataController.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"<div>\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"<div>\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState(true);\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }));\r\n if (index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n }));\r\n if (-1 !== index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataController = this._collectionWidget._dataController;\r\n var group = dataController.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (function(_, key) {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), (function() {\r\n return \"menu\"\r\n}), (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var _registry$type;\r\n var foundDecorator = null === (_registry$type = registry[type]) || void 0 === _registry$type ? void 0 : _registry$type[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = $(\"<div>\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"<div>\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._dataController.isLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataController.pageIndex(0);\r\n this._dataController.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var dataController = this._dataController;\r\n var storeLoadOptions = {\r\n filter: dataController.filter()\r\n };\r\n dataController.addSearchFilter(storeLoadOptions);\r\n var filter = storeLoadOptions.filter;\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n var dataController = this._dataController;\r\n value && value.length && dataController.searchValue(value);\r\n mode.length && dataController.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && dataController.searchExpr(expr)\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nvar navigator = getNavigator();\r\nimport {\r\n animation\r\n} from \"../core/utils/support\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isGeneric\r\n} from \"./themes\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Widget from \"./widget/ui.widget\";\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: function() {\r\n return isGeneric(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = $(\"<div>\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n if (animation() && !this.option(\"viaImage\") && !this.option(\"indicatorSrc\")) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation: function() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"<div>\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = $(\"<div>\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"<div>\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage: function() {\r\n var indicatorSrc = this.option(\"indicatorSrc\");\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n if (indicatorSrc) {\r\n this._$wrapper.css(\"backgroundImage\", \"url(\" + indicatorSrc + \")\")\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = getWidth(this.$element());\r\n height = getHeight(this.$element());\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/load_panel.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true,\r\n preventScrollEvents: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"<div>\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"<div>\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"<div>\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.submenu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n setWidth,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nclass Submenu extends ContextMenu {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: noop\r\n })\r\n }\r\n _initDataAdapter() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n super._initDataAdapter()\r\n }\r\n }\r\n _renderContentImpl() {\r\n this._renderContextMenuOverlay();\r\n super._renderContentImpl();\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n }\r\n _renderDelimiter() {\r\n this.$contentDelimiter = $(\"<div>\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n }\r\n _getOverlayOptions() {\r\n return extend(super._getOverlayOptions(), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n }\r\n _overlayPositionedActionHandler(arg) {\r\n this._showDelimiter(arg)\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _hoverStartHandler(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n super._hoverStartHandler(e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n }\r\n _drawSubmenu($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._drawSubmenu($rootItem);\r\n this._actions.onShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _hideSubmenu($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._hideSubmenu($rootItem);\r\n this._actions.onHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _showDelimiter(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = getWidth($rootItem);\r\n var rootHeight = getHeight($rootItem);\r\n var submenuWidth = getWidth($submenu);\r\n var submenuHeight = getHeight($submenu);\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n setWidth(this.$contentDelimiter, this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n setHeight(this.$contentDelimiter, this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n setHeight(this.$contentDelimiter, 5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n animationPosition.setup(this.$contentDelimiter, position)\r\n }\r\n _getContextMenuPosition() {\r\n return this.option(\"position\")\r\n }\r\n isOverlayVisible() {\r\n return this._overlay.option(\"visible\")\r\n }\r\n getOverlayContent() {\r\n return this._overlay.$content()\r\n }\r\n}\r\nexport default Submenu;\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.menu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport MenuBase from \"../context_menu/ui.menu_base\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Submenu from \"./ui.submenu\";\r\nimport Button from \"../button\";\r\nimport TreeView from \"../tree_view\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nclass Menu extends MenuBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _itemElements() {\r\n var rootMenuElements = super._itemElements();\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n }\r\n _submenuItemElements() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n }\r\n _getItemsNavigationOperation(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n }\r\n _getKeyboardNavigationAction(operation, argument) {\r\n var action = noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n }\r\n _clean() {\r\n super._clean();\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n }\r\n _isAdaptivityEnabled() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _updateItemsWidthCache() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n }\r\n _dimensionChanged() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = getOuterWidth(this.$element());\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n }\r\n _init() {\r\n super._init();\r\n this._submenus = []\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action)\r\n })\r\n }\r\n _initMarkup() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n super._initMarkup();\r\n this._addCustomCssClass(this.$element());\r\n this.setAria(\"role\", \"menubar\")\r\n }\r\n _render() {\r\n super._render();\r\n this._initAdaptivity()\r\n }\r\n _renderHamburgerButton() {\r\n this._hamburger = new Button($(\"<div>\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n }\r\n _toggleTreeView(state) {\r\n if (isPlainObject(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n }\r\n _toggleHamburgerActiveState(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n }\r\n _toggleAdaptiveMode(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n }\r\n _removeAdaptivity() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n }\r\n _treeviewItemClickHandler(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n }\r\n _getAdaptiveOverlayOptions() {\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(this.$element()),\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n hideOnParentScroll: true,\r\n onHidden: () => {\r\n this._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n hideOnOutsideClick: e => !$(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length,\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n }\r\n _getTreeViewOptions() {\r\n var menuOptions = {};\r\n each([\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"], (_, option) => {\r\n menuOptions[option] = this.option(option)\r\n });\r\n each([\"onItemContextMenu\", \"onSelectionChanged\", \"onItemRendered\"], (_, actionName) => {\r\n menuOptions[actionName] = e => {\r\n this._actions[actionName](e)\r\n }\r\n });\r\n return extend(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n }\r\n _initAdaptivity() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = $(\"<div>\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent($(\"<div>\"), TreeView, this._getTreeViewOptions());\r\n this._overlay = this._createComponent($(\"<div>\"), Overlay, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n }\r\n _getDelay(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return isObject(delay) ? delay[delayType] : delay\r\n }\r\n }\r\n _keyboardHandler(e) {\r\n return super._keyboardHandler(e, !!this._visibleSubmenu)\r\n }\r\n _renderContainer() {\r\n var $wrapper = $(\"<div>\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return super._renderContainer($wrapper)\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat(this._visibleSubmenu)\r\n }\r\n _createSubmenu(node, $rootItem) {\r\n var $submenuContainer = $(\"<div>\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var subMenu = this._createComponent($submenuContainer, Submenu, extend(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, subMenu);\r\n return subMenu\r\n }\r\n _getSubmenuOptions() {\r\n var $submenuTarget = $(\"<div>\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: e => {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n this.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n }\r\n _getShowFirstSubmenuMode() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n }\r\n _moveMainMenuFocus(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n }\r\n _nestedItemOnSelectionChangedHandler(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = Submenu.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n }\r\n _clearSelectionInSubmenus(item, targetSubmenu) {\r\n var cleanAllSubmenus = !arguments.length;\r\n each(this._submenus, (index, submenu) => {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(this._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(this._selectedItemClass());\r\n var selectedItemData = this._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n }\r\n _clearRootSelection() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n }\r\n _nestedItemOnItemClickHandler(e) {\r\n this._actions.onItemClick(e)\r\n }\r\n _nestedItemOnItemRenderedHandler(e) {\r\n this._actions.onItemRendered(e)\r\n }\r\n _attachSubmenuHandlers($rootItem, submenu) {\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = addNamespace(hoverEventEnd, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n each(submenus, (index, submenu) => {\r\n eventsEngine.off(submenu, submenuMouseLeaveName);\r\n eventsEngine.on(submenu, submenuMouseLeaveName, null, this._submenuMouseLeaveHandler.bind(this, $rootItem))\r\n })\r\n }\r\n _submenuOnShowingHandler($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _submenuOnShownHandler($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuOnHidingHandler($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = getPublicElement($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n }\r\n _submenuOnHiddenHandler($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuMouseLeaveHandler($rootItem, eventArgs) {\r\n var target = $(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideSubmenuAfterTimeout() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = $(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n }\r\n _getSubmenuByRootElement($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && Submenu.getInstance($submenu)\r\n }\r\n getSubmenuPosition($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n }\r\n _renderBorderElement($item) {\r\n $(\"<div>\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n }\r\n _itemPointerDownHandler(e) {\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n super._itemPointerDownHandler(e)\r\n }\r\n _hoverStartHandler(e) {\r\n var mouseMoveEventName = addNamespace(pointerEvents.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = isDefined(e.buttons) && 1 === e.buttons || !isDefined(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n eventsEngine.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n eventsEngine.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n }\r\n _hoverEndHandler(eventArg) {\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = $(eventArg.relatedTarget);\r\n super._hoverEndHandler(eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(() => {\r\n this._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideVisibleSubmenu() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n }\r\n _showSubmenu($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n this.focus();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n }\r\n _hideSubmenu(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n }\r\n _itemMouseMoveHandler(e) {\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = $(e.currentTarget);\r\n if (!isDefined(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(() => {\r\n var submenu = this._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n this._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n }\r\n _clearTimeouts() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n }\r\n _getSubmenuByElement($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = $(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled() && (args.name === args.fullName || \"items\" === args.name)) {\r\n this._treeView.option(args.fullName, args.value)\r\n }\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeSubmenusOption(name, value) {\r\n each(this._submenus, (index, submenu) => {\r\n submenu.option(name, value)\r\n })\r\n }\r\n selectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n unselectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n}\r\nregisterComponent(\"dxMenu\", Menu);\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/menu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Menu from \"./menu/ui.menu\";\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/notify.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport Toast from \"./toast\";\r\nvar window = getWindow();\r\nvar $notify = null;\r\nvar $containers = {};\r\n\r\nfunction notify(message, typeOrStack, displayTime) {\r\n var options = isPlainObject(message) ? message : {\r\n message: message\r\n };\r\n var stack = isPlainObject(typeOrStack) ? typeOrStack : void 0;\r\n var type = isPlainObject(typeOrStack) ? void 0 : typeOrStack;\r\n var {\r\n onHidden: userOnHidden\r\n } = options;\r\n if (null !== stack && void 0 !== stack && stack.position) {\r\n var {\r\n position: position\r\n } = stack;\r\n var direction = stack.direction || getDefaultDirection(position);\r\n var containerKey = isString(position) ? position : \"\".concat(position.top, \"-\").concat(position.left, \"-\").concat(position.bottom, \"-\").concat(position.right);\r\n var {\r\n onShowing: userOnShowing\r\n } = options;\r\n var $container = getStackContainer(containerKey);\r\n setContainerClasses($container, direction);\r\n extend(options, {\r\n container: $container,\r\n onShowing: function(args) {\r\n setContainerStyles($container, direction, position);\r\n null === userOnShowing || void 0 === userOnShowing ? void 0 : userOnShowing(args)\r\n }\r\n })\r\n }\r\n extend(options, {\r\n type: type,\r\n displayTime: displayTime,\r\n onHidden: function(args) {\r\n $(args.element).remove();\r\n null === userOnHidden || void 0 === userOnHidden ? void 0 : userOnHidden(args)\r\n }\r\n });\r\n $notify = $(\"<div>\").appendTo(viewPort());\r\n new Toast($notify, options).show()\r\n}\r\nvar getDefaultDirection = position => isString(position) && position.includes(\"top\") ? \"down-push\" : \"up-push\";\r\nvar createStackContainer = key => {\r\n var $container = $(\"<div>\").appendTo(viewPort());\r\n $containers[key] = $container;\r\n return $container\r\n};\r\nvar getStackContainer = key => {\r\n var $container = $containers[key];\r\n return $container ? $container : createStackContainer(key)\r\n};\r\nvar setContainerClasses = (container, direction) => {\r\n var containerClasses = \"dx-toast-stack dx-toast-stack-\".concat(direction, \"-direction\");\r\n container.removeAttr(\"class\").addClass(containerClasses)\r\n};\r\nvar setContainerStyles = (container, direction, position) => {\r\n var {\r\n offsetWidth: toastWidth,\r\n offsetHeight: toastHeight\r\n } = container.children().first().get(0);\r\n var dimensions = {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: window.innerHeight,\r\n windowWidth: window.innerWidth\r\n };\r\n var coordinates = isString(position) ? getCoordinatesByAlias(position, dimensions) : position;\r\n var styles = getPositionStylesByCoordinates(direction, coordinates, dimensions);\r\n container.css(styles)\r\n};\r\nvar getCoordinatesByAlias = (alias, _ref) => {\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = _ref;\r\n switch (alias) {\r\n case \"top left\":\r\n return {\r\n top: 10, left: 10\r\n };\r\n case \"top right\":\r\n return {\r\n top: 10, right: 10\r\n };\r\n case \"bottom left\":\r\n return {\r\n bottom: 10, left: 10\r\n };\r\n case \"bottom right\":\r\n return {\r\n bottom: 10, right: 10\r\n };\r\n case \"top center\":\r\n return {\r\n top: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"left center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: 10\r\n };\r\n case \"right center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), right: 10\r\n };\r\n case \"center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"bottom center\":\r\n default:\r\n return {\r\n bottom: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n }\r\n }\r\n};\r\nvar getPositionStylesByCoordinates = (direction, coordinates, dimensions) => {\r\n var _coordinates$bottom, _coordinates$left, _coordinates$right, _coordinates$top, _coordinates$left2, _coordinates$right2, _coordinates$right3, _coordinates$top2, _coordinates$bottom2, _coordinates$left3, _coordinates$top3, _coordinates$bottom3;\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = dimensions;\r\n switch (direction.replace(/-push|-stack/g, \"\")) {\r\n case \"up\":\r\n return {\r\n bottom: null !== (_coordinates$bottom = coordinates.bottom) && void 0 !== _coordinates$bottom ? _coordinates$bottom : windowHeight - toastHeight - coordinates.top, top: \"\", left: null !== (_coordinates$left = coordinates.left) && void 0 !== _coordinates$left ? _coordinates$left : \"\", right: null !== (_coordinates$right = coordinates.right) && void 0 !== _coordinates$right ? _coordinates$right : \"\"\r\n };\r\n case \"down\":\r\n return {\r\n top: null !== (_coordinates$top = coordinates.top) && void 0 !== _coordinates$top ? _coordinates$top : windowHeight - toastHeight - coordinates.bottom, bottom: \"\", left: null !== (_coordinates$left2 = coordinates.left) && void 0 !== _coordinates$left2 ? _coordinates$left2 : \"\", right: null !== (_coordinates$right2 = coordinates.right) && void 0 !== _coordinates$right2 ? _coordinates$right2 : \"\"\r\n };\r\n case \"left\":\r\n return {\r\n right: null !== (_coordinates$right3 = coordinates.right) && void 0 !== _coordinates$right3 ? _coordinates$right3 : windowWidth - toastWidth - coordinates.left, left: \"\", top: null !== (_coordinates$top2 = coordinates.top) && void 0 !== _coordinates$top2 ? _coordinates$top2 : \"\", bottom: null !== (_coordinates$bottom2 = coordinates.bottom) && void 0 !== _coordinates$bottom2 ? _coordinates$bottom2 : \"\"\r\n };\r\n case \"right\":\r\n return {\r\n left: null !== (_coordinates$left3 = coordinates.left) && void 0 !== _coordinates$left3 ? _coordinates$left3 : windowWidth - toastWidth - coordinates.right, right: \"\", top: null !== (_coordinates$top3 = coordinates.top) && void 0 !== _coordinates$top3 ? _coordinates$top3 : \"\", bottom: null !== (_coordinates$bottom3 = coordinates.bottom) && void 0 !== _coordinates$bottom3 ? _coordinates$bottom3 : \"\"\r\n }\r\n }\r\n};\r\nexport default notify;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"<div>\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"<div>\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"<div>\").appendTo($spinContainer);\r\n var $spinDown = $(\"<div>\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n if (this._input().length) {\r\n this._renderValue()\r\n }\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue();\r\n var shouldTriggerInputEvent = this.option(\"valueChangeEvent\").split(\" \").includes(\"input\");\r\n if (shouldTriggerInputEvent) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue) || 0 === newValue) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/overlay_position_controller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isWindow,\r\n isEvent\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport swatch from \"../widget/swatch_container\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$visualContainer = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position);\r\n this.updateVisualContainer(visualContainer)\r\n }\r\n get $container() {\r\n this.updateContainer();\r\n return this._$markupContainer\r\n }\r\n get $visualContainer() {\r\n return this._$visualContainer\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n updatePosition(positionProp) {\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp);\r\n this.updateVisualContainer()\r\n }\r\n updateContainer() {\r\n var containerProp = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.container;\r\n this._props.container = containerProp;\r\n this._$markupContainer = containerProp ? $(containerProp) : swatch.getSwatchContainer(this._$root);\r\n this.updateVisualContainer(this._props.visualContainer)\r\n }\r\n updateVisualContainer() {\r\n var visualContainer = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.visualContainer;\r\n this._props.visualContainer = visualContainer;\r\n this._$visualContainer = this._getVisualContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$visualContainer) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$visualContainer\r\n })\r\n }\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = isWindow(this.$visualContainer.get(0)) || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this._initialPosition = resultPosition;\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _renderBoundaryOffset() {\r\n var _this$_position;\r\n var boundaryOffset = null !== (_this$_position = this._position) && void 0 !== _this$_position ? _this$_position : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getVisualContainer() {\r\n var _this$_props$position, _this$_props$position2;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_this$_props$position = this._props.position) || void 0 === _this$_props$position ? void 0 : _this$_props$position.of) ? this._props.position.of.target : null === (_this$_props$position2 = this._props.position) || void 0 === _this$_props$position2 ? void 0 : _this$_props$position2.of;\r\n if (visualContainerProp) {\r\n return $(visualContainerProp)\r\n }\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (positionOf) {\r\n return $(positionOf)\r\n }\r\n return $(window)\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n return defaultPositionConfig\r\n }\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n if (!callbacks.includes(callback)) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = callbacks.indexOf(callback);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport fx from \"../../animation/fx\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport errors from \"../../core/errors\";\r\nimport uiErrors from \"../widget/ui.errors\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n move as dragEventMove\r\n} from \"../../events/drag\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../mobile/hide_callback\";\r\nimport {\r\n tabbable\r\n} from \"../widget/selectors\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as zIndexPool from \"./z_index\";\r\nimport {\r\n OverlayPositionController,\r\n OVERLAY_POSITION_ALIASES\r\n} from \"./overlay_position_controller\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n position: extend({}, OVERLAY_POSITION_ALIASES.center),\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n }\r\n }\r\n },\r\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: false,\r\n _ignorePreventScrollEventsDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n innerOverlay: false,\r\n restorePosition: true,\r\n container: void 0,\r\n visualContainer: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n preventScrollEvents: true,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget: function() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.1\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n if (options) {\r\n if (options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n this._logDeprecatedOptionWarning(\"copyRootClassesToWrapper\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (options.elementAttr && !options._ignoreElementAttrDeprecation) {\r\n this._logDeprecatedOptionWarning(\"elementAttr\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (\"preventScrollEvents\" in options && !options._ignorePreventScrollEventsDeprecation) {\r\n this._logDeprecatedPreventScrollEventsInfo()\r\n }\r\n }\r\n },\r\n _logDeprecatedPreventScrollEventsInfo() {\r\n this._logDeprecatedOptionWarning(\"preventScrollEvents\", {\r\n since: \"23.1\",\r\n message: \"If you enable this option, end-users may experience scrolling issues.\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions();\r\n this._initHideOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"<div>\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"<div>\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._hideOnParentsScrollHandler(e)\r\n }\r\n };\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initInnerOverlayClass: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: function() {\r\n return [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"]\r\n },\r\n _initActions: function() {\r\n this._actions = {};\r\n var actions = this._getActionsList();\r\n each(actions, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initHideOnOutsideClickHandler: function() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && this._shouldHideOnOutsideClick(e)) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _shouldHideOnOutsideClick: function(e) {\r\n var {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay: function() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: function() {\r\n return OVERLAY_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return Overlay.baseZIndex()\r\n },\r\n _toggleViewPortSubscription: function(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler: function() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig: function() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _toggleBodyScroll: noop,\r\n _animateShowing: function() {\r\n var _this$_getAnimationCo, _showAnimation$start, _showAnimation$comple, _this3 = this;\r\n var animation = null !== (_this$_getAnimationCo = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo ? _this$_getAnimationCo : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_showAnimation$start = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _showAnimation$start ? _showAnimation$start : noop;\r\n var completeShowAnimation = null !== (_showAnimation$comple = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _showAnimation$comple ? _showAnimation$comple : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _processShowingHidingCancel: function(cancelArg, applyFunction, cancelFunction) {\r\n if (isPromise(cancelArg)) {\r\n cancelArg.then(shouldCancel => {\r\n if (shouldCancel) {\r\n cancelFunction()\r\n } else {\r\n applyFunction()\r\n }\r\n }).catch(() => applyFunction())\r\n } else {\r\n cancelArg ? cancelFunction() : applyFunction()\r\n }\r\n },\r\n _show: function() {\r\n this._showingDeferred = new Deferred;\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.reject()\r\n } else {\r\n var show = () => {\r\n this._toggleBodyScroll(this.option(\"enableBodyScroll\"));\r\n this._stopAnimation();\r\n this._toggleVisibility(true);\r\n this._$content.css(\"visibility\", \"hidden\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, false);\r\n this._updateZIndexStackPosition(true);\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n this._processShowingHidingCancel(showingArgs.cancel, () => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n }, () => {\r\n this._toggleVisibility(false);\r\n this._$content.css(\"visibility\", \"\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._isShowingActionCanceled = true;\r\n this._moveFromContainer();\r\n this.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation: function(showHideConfig, direction) {\r\n if (showHideConfig) {\r\n showHideConfig = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, showHideConfig);\r\n if (isObject(showHideConfig[direction])) {\r\n extend(showHideConfig[direction], {\r\n position: this._positionController.position\r\n })\r\n }\r\n }\r\n return showHideConfig\r\n },\r\n _animateHiding: function() {\r\n var _this$_getAnimationCo2, _hideAnimation$start, _hideAnimation$comple, _this4 = this;\r\n var animation = null !== (_this$_getAnimationCo2 = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo2 ? _this$_getAnimationCo2 : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_hideAnimation$start = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _hideAnimation$start ? _hideAnimation$start : noop;\r\n var completeHideAnimation = null !== (_hideAnimation$comple = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _hideAnimation$comple ? _hideAnimation$comple : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _this4$_actions;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_this4$_actions = _this4._actions) || void 0 === _this4$_actions ? void 0 : _this4$_actions.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide: function() {\r\n if (!this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = new Deferred;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._hidingDeferred.reject()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n this._toggleBodyScroll(true);\r\n this._processShowingHidingCancel(hidingArgs.cancel, () => {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }, () => {\r\n this._isHidingActionCanceled = true;\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate: function(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation: function() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility: function(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n if (visible) {\r\n this._checkContainerExists();\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition: function(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = overlayStack.indexOf(this);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading: function(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler: function() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator: function(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds: function() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler: function(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions: function(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback: function(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleHideOnParentsScrollSubscription: function(needSubscribe) {\r\n var _this$_parentsScrollS;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_this$_parentsScrollS = this._parentsScrollSubscriptionInfo) && void 0 !== _this$_parentsScrollS ? _this$_parentsScrollS : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && closeOnScroll) {\r\n var $parents = this._hideOnParentScrollTarget().parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _hideOnParentsScrollHandler: function(e) {\r\n var closeHandled = false;\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(closeOnScroll)) {\r\n closeHandled = closeOnScroll(e)\r\n }\r\n if (!closeHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return this._$wrapper\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement: function() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent: function() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden: function() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((function() {\r\n var $element = $(this);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n }));\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl: function() {\r\n var whenContentRendered = new Deferred;\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n });\r\n this._toggleWrapperScrollEventsSubscription(this.option(\"preventScrollEvents\"));\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n container: container,\r\n visualContainer: visualContainer,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition\r\n } = this.option();\r\n return {\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _toggleWrapperScrollEventsSubscription: function(enabled) {\r\n var eventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off(this._$wrapper, eventName);\r\n if (enabled) {\r\n eventsEngine.on(this._$wrapper, eventName, {\r\n validate: function() {\r\n return true\r\n },\r\n getDirection: function() {\r\n return \"both\"\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var originalEvent = e.originalEvent.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _moveFromContainer: function() {\r\n this._$content.appendTo(this.$element());\r\n this._$wrapper.detach()\r\n },\r\n _checkContainerExists() {\r\n var $wrapperContainer = this._positionController.$container;\r\n if (void 0 === $wrapperContainer) {\r\n return\r\n }\r\n var containerExists = $wrapperContainer.length > 0;\r\n if (!containerExists) {\r\n uiErrors.log(\"W1021\", this.NAME)\r\n }\r\n },\r\n _moveToContainer: function() {\r\n var $wrapperContainer = this._positionController.$container;\r\n this._$wrapper.appendTo($wrapperContainer);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._stopAnimation();\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered: function() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling: function() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var $visualContainer = this._positionController.$visualContainer;\r\n var documentElement = domAdapter.getDocumentElement();\r\n var isVisualContainerWindow = isWindow($visualContainer.get(0));\r\n var wrapperWidth = isVisualContainerWindow ? documentElement.clientWidth : getOuterWidth($visualContainer);\r\n var wrapperHeight = isVisualContainerWindow ? window.innerHeight : getOuterHeight($visualContainer);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions: function() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents: function() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler: function(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible: function() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry()\r\n },\r\n _clean: function() {\r\n var options = this.option();\r\n if (!this._contentAlreadyRendered && !options.isRenovated) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n this.option(\"visible\") && zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection: function(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n if (this._getActionsList().includes(name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (name) {\r\n case \"animation\":\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n var _this$_animateDeferre;\r\n return null === (_this$_animateDeferre = this._animateDeferred) || void 0 === _this$_animateDeferre ? void 0 : _this$_animateDeferre.resolveWith(this)\r\n }).fail(() => {\r\n var _this$_animateDeferre2;\r\n return null === (_this$_animateDeferre2 = this._animateDeferred) || void 0 === _this$_animateDeferre2 ? void 0 : _this$_animateDeferre2.reject()\r\n });\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visualContainer\":\r\n this._positionController.updateVisualContainer(value);\r\n this._renderWrapper();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n this._toggleHideOnParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = value;\r\n break;\r\n case \"preventScrollEvents\":\r\n this._logDeprecatedPreventScrollEventsInfo();\r\n this._toggleWrapperScrollEventsSubscription(value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = new Deferred;\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = new Deferred;\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n }).fail(() => {\r\n delete this._animateDeferred;\r\n result.reject()\r\n });\r\n return result.promise()\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint: function() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getInnerHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nexport var getElementMaxHeightByWindow = ($element, startLocation) => {\r\n var $window = $(getWindow());\r\n var {\r\n top: elementOffset\r\n } = $element.offset();\r\n var actualOffset;\r\n if (isNumeric(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = getInnerHeight($window) - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = getInnerHeight($window) - offsetTop - getOuterHeight($element);\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/z_index.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var length = zIndexStack.length;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var isLastZIndexInStack = zIndex => zIndexStack.length && zIndexStack[zIndexStack.length - 1] === zIndex;\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.full.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popover from \"../popover/ui.popover\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default class PopoverFull extends Popover {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n preventScrollEvents: false\r\n })\r\n }\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopoverFull.defaultOptions = function(rule) {\r\n Popover.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopover\", PopoverFull);\r\n","/**\r\n * DevExtreme (esm/ui/popover.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popover from \"./popover/ui.popover.full\";\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/resizable/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getInnerHeight,\r\n getOffset\r\n} from \"../../../core/utils/size\";\r\nexport var borderWidthStyles = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\n\r\nfunction getBorderWidth(el, direction) {\r\n if (!isWindow(el)) {\r\n var borderWidth = el.style[borderWidthStyles[direction]];\r\n return parseInt(borderWidth, 10) || 0\r\n }\r\n return 0\r\n}\r\nvar correctGeometry = function(area, mainEl) {\r\n var el = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\r\n var {\r\n height: height,\r\n offset: offset,\r\n width: width\r\n } = area;\r\n var {\r\n left: left,\r\n top: top\r\n } = offset;\r\n var areaBorderLeft = el ? getBorderWidth(el, \"left\") : 0;\r\n var areaBorderTop = el ? getBorderWidth(el, \"top\") : 0;\r\n return {\r\n width: width - getOuterWidth(mainEl) - getInnerWidth(mainEl),\r\n height: height - getOuterHeight(mainEl) - getInnerHeight(mainEl),\r\n offset: {\r\n left: left + areaBorderLeft + getBorderWidth(mainEl, \"left\"),\r\n top: top + areaBorderTop + getBorderWidth(mainEl, \"top\")\r\n }\r\n }\r\n};\r\nexport var getAreaFromElement = (el, mainEl) => correctGeometry({\r\n width: getInnerWidth(el),\r\n height: getInnerHeight(el),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow(el) ? {} : getOffset(el))\r\n}, mainEl, el);\r\nexport var getAreaFromObject = (_ref, mainEl) => {\r\n var {\r\n bottom: bottom,\r\n left: left,\r\n right: right,\r\n top: top\r\n } = _ref;\r\n return correctGeometry({\r\n width: right - left,\r\n height: bottom - top,\r\n offset: {\r\n left: left,\r\n top: top\r\n }\r\n }, mainEl)\r\n};\r\nexport var getMovingSides = el => {\r\n var {\r\n className: className\r\n } = el;\r\n var hasCornerTopLeftClass = className.includes(\"dx-resizable-handle-corner-top-left\");\r\n var hasCornerTopRightClass = className.includes(\"dx-resizable-handle-corner-top-right\");\r\n var hasCornerBottomLeftClass = className.includes(\"dx-resizable-handle-corner-bottom-left\");\r\n var hasCornerBottomRightClass = className.includes(\"dx-resizable-handle-corner-bottom-right\");\r\n return {\r\n top: className.includes(\"dx-resizable-handle-top\") || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: className.includes(\"dx-resizable-handle-left\") || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: className.includes(\"dx-resizable-handle-bottom\") || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: className.includes(\"dx-resizable-handle-right\") || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n};\r\nexport function getDragOffsets(area, handleEl, areaProp) {\r\n var hWidth = getOuterWidth(handleEl);\r\n var hHeight = getOuterHeight(handleEl);\r\n var hOffset = getOffset(handleEl);\r\n var areaOffset = area.offset;\r\n var isAreaWindow = isWindow(areaProp);\r\n var scrollOffset_scrollX = isAreaWindow ? areaProp.pageXOffset : 0,\r\n scrollOffset_scrollY = isAreaWindow ? areaProp.pageYOffset : 0;\r\n return {\r\n maxLeftOffset: hOffset.left - areaOffset.left - scrollOffset_scrollX,\r\n maxRightOffset: areaOffset.left + area.width - hOffset.left - hWidth + scrollOffset_scrollX,\r\n maxTopOffset: hOffset.top - areaOffset.top - scrollOffset_scrollY,\r\n maxBottomOffset: areaOffset.top + area.height - hOffset.top - hHeight + scrollOffset_scrollY\r\n }\r\n}\r\nexport var filterOffsets = (offset, handleEl) => {\r\n var sides = getMovingSides(handleEl);\r\n var offsetX = !sides.left && !sides.right ? 0 : offset.x;\r\n var offsetY = !sides.top && !sides.bottom ? 0 : offset.y;\r\n return {\r\n x: offsetX,\r\n y: offsetY\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/popover_position_controller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"shading\", \"target\", \"$arrow\"];\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n pairToObject\r\n} from \"../../core/utils/common\";\r\nimport {\r\n borderWidthStyles\r\n} from \"../../renovation/ui/resizable/utils\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POPOVER_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar POPOVER_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 10,\r\n v: 10\r\n};\r\nclass PopoverPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n shading: shading,\r\n target: target,\r\n $arrow: $arrow\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n shading: shading,\r\n target: target\r\n });\r\n this._$arrow = $arrow;\r\n this._positionSide = void 0;\r\n this.updatePosition(this._props.position)\r\n }\r\n positionWrapper() {\r\n if (this._props.shading) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position)\r\n }\r\n _renderBoundaryOffset() {}\r\n _getContainerPosition() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var {\r\n h: hOffset,\r\n v: vOffset\r\n } = offset;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? getHeight(this._$arrow) : getWidth(this._$arrow);\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n }\r\n _getContentBorderWidth(side) {\r\n var borderWidth = this._$content.css(borderWidthStyles[side]);\r\n return parseInt(borderWidth) || 0\r\n }\r\n _isPopoverInside() {\r\n var my = positionUtils.setup.normalizeAlign(this._position.my);\r\n var at = positionUtils.setup.normalizeAlign(this._position.at);\r\n return my.h === at.h && my.v === at.v\r\n }\r\n _isVerticalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n }\r\n _isHorizontalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n }\r\n _getDisplaySide(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n of: this._props.target,\r\n boundaryOffset: POPOVER_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n var resultPosition;\r\n if (isDefined(positionProp)) {\r\n resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n resultPosition = defaultPositionConfig\r\n }\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, POPOVER_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n} from \"./popover_position_controller\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var {\r\n target: target,\r\n shading: shading,\r\n disabled: disabled,\r\n hideEvent: hideEvent\r\n } = that.option();\r\n var isSelector = isString(target);\r\n var shouldIgnoreHideEvent = shading && \"hide\" === name;\r\n var event = shouldIgnoreHideEvent ? null : getEventName(that, \"\".concat(name, \"Event\"));\r\n if (shouldIgnoreHideEvent && hideEvent) {\r\n errors.log(\"W1020\")\r\n }\r\n if (!event || disabled) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout((function() {\r\n that[name]()\r\n }), delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n target: void 0,\r\n shading: false,\r\n position: extend({}, POPOVER_POSITION_ALIASES.bottom),\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n hideOnParentScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n _fixWrapperPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n var _this$option;\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS);\r\n var isInteractive = null === (_this$option = this.option(\"toolbarItems\")) || void 0 === _this$option ? void 0 : _this$option.length;\r\n this.setAria(\"role\", isInteractive ? \"dialog\" : \"tooltip\")\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = $(\"<div>\").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n var shouldUpdateDimensions = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n this.callBase();\r\n this._renderOverlayPosition(shouldUpdateDimensions);\r\n this._actions.onPositioned()\r\n },\r\n _renderOverlayPosition: function(shouldUpdateDimensions) {\r\n this._resetOverlayPosition(shouldUpdateDimensions);\r\n this._updateContentSize(shouldUpdateDimensions);\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function(shouldUpdateDimensions) {\r\n this._setContentHeight(shouldUpdateDimensions);\r\n this._togglePositionClass(\"dx-position-\" + this._positionController._positionSide);\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function(shouldUpdateDimensions) {\r\n if (!this.$content() || !shouldUpdateDimensions) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = getWidth(this.$overlayContent()) - containerLocation.h.oversize;\r\n setWidth(this.$overlayContent(), newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = getHeight(this.$overlayContent()) - containerLocation.v.oversize;\r\n var newPopupContentHeight = getHeight(this.$content()) - containerLocation.v.oversize;\r\n setHeight(this.$overlayContent(), newOverlayContentHeight);\r\n setHeight(this.$content(), newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n return this._positionController._getContainerPosition()\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return $(this._positionController._position.of || this.callBase())\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionController._positionSide] : this._positionController._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._positionController._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetElement = $target.get(0);\r\n var targetSize = targetElement && !targetElement.preventDefault ? getBoundingRect(targetElement)[sizeProperty] : 0;\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._positionController._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n return this._positionController._isPopoverInside()\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n shading: shading,\r\n target: target\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n target: target,\r\n shading: shading,\r\n $arrow: this._$arrow\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopoverPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _isVerticalSide: function(side) {\r\n return this._positionController._isVerticalSide(side)\r\n },\r\n _isHorizontalSide: function(side) {\r\n return this._positionController._isHorizontalSide(side)\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this._positionController.updateTarget(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.full.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport default class PopupFull extends Popup {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n preventScrollEvents: false\r\n })\r\n }\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nPopupFull.defaultOptions = function(rule) {\r\n Popup.defaultOptions(rule)\r\n};\r\nregisterComponent(\"dxPopup\", PopupFull);\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup.full\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_drag.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"<div>\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._updateDragResizeContainer()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n super.positionContent()\r\n }\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(true)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_overflow_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar overflowManagerMock = {\r\n setOverflow: noop,\r\n restoreOverflow: noop\r\n};\r\nexport var createBodyOverflowManager = () => {\r\n if (!hasWindow()) {\r\n return overflowManagerMock\r\n }\r\n var window = getWindow();\r\n var documentElement = domAdapter.getDocument().documentElement;\r\n var body = domAdapter.getBody();\r\n var isIosDevice = \"ios\" === devices.real().platform;\r\n var prevSettings = {\r\n overflow: null,\r\n overflowX: null,\r\n overflowY: null,\r\n paddingRight: null,\r\n position: null,\r\n top: null,\r\n left: null\r\n };\r\n var setBodyPaddingRight = () => {\r\n var scrollBarWidth = window.innerWidth - documentElement.clientWidth;\r\n if (prevSettings.paddingRight || scrollBarWidth <= 0) {\r\n return\r\n }\r\n var paddingRight = window.getComputedStyle(body).getPropertyValue(\"padding-right\");\r\n var computedBodyPaddingRight = parseInt(paddingRight, 10);\r\n prevSettings.paddingRight = computedBodyPaddingRight;\r\n body.style.setProperty(\"padding-right\", \"\".concat(computedBodyPaddingRight + scrollBarWidth, \"px\"))\r\n };\r\n var restoreBodyPaddingRight = () => {\r\n if (!isDefined(prevSettings.paddingRight)) {\r\n return\r\n }\r\n if (prevSettings.paddingRight) {\r\n body.style.setProperty(\"padding-right\", \"\".concat(prevSettings.paddingRight, \"px\"))\r\n } else {\r\n body.style.removeProperty(\"padding-right\")\r\n }\r\n prevSettings.paddingRight = null\r\n };\r\n return {\r\n setOverflow: isIosDevice ? () => {\r\n if (isDefined(prevSettings.position) || \"fixed\" === body.style.position) {\r\n return\r\n }\r\n var {\r\n scrollY: scrollY,\r\n scrollX: scrollX\r\n } = window;\r\n prevSettings.position = body.style.position;\r\n prevSettings.top = body.style.top;\r\n prevSettings.left = body.style.left;\r\n body.style.setProperty(\"position\", \"fixed\");\r\n body.style.setProperty(\"top\", \"\".concat(-scrollY, \"px\"));\r\n body.style.setProperty(\"left\", \"\".concat(-scrollX, \"px\"))\r\n } : () => {\r\n setBodyPaddingRight();\r\n if (prevSettings.overflow || \"hidden\" === body.style.overflow) {\r\n return\r\n }\r\n prevSettings.overflow = body.style.overflow;\r\n prevSettings.overflowX = body.style.overflowX;\r\n prevSettings.overflowY = body.style.overflowY;\r\n body.style.setProperty(\"overflow\", \"hidden\")\r\n },\r\n restoreOverflow: isIosDevice ? () => {\r\n if (!isDefined(prevSettings.position)) {\r\n return\r\n }\r\n var scrollY = -parseInt(body.style.top, 10);\r\n var scrollX = -parseInt(body.style.left, 10);\r\n [\"position\", \"top\", \"left\"].forEach(property => {\r\n if (prevSettings[property]) {\r\n body.style.setProperty(property, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(property)\r\n }\r\n });\r\n window.scrollTo(scrollX, scrollY);\r\n prevSettings.position = null\r\n } : () => {\r\n restoreBodyPaddingRight();\r\n [\"overflow\", \"overflowX\", \"overflowY\"].forEach(property => {\r\n if (!isDefined(prevSettings[property])) {\r\n return\r\n }\r\n var propertyInKebabCase = property.replace(/(X)|(Y)/, symbol => \"-\".concat(symbol.toLowerCase()));\r\n if (prevSettings[property]) {\r\n body.style.setProperty(propertyInKebabCase, prevSettings[property])\r\n } else {\r\n body.style.removeProperty(propertyInKebabCase)\r\n }\r\n prevSettings[property] = null\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nimport {\r\n createBodyOverflowManager\r\n} from \"./popup_overflow_manager\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar POPUP_CONTENT_SCROLLABLE_CLASS = \"dx-popup-content-scrollable\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n enableBodyScroll: true,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n var popupWrapperClassExternal = this.option(\"_wrapperClassExternal\");\r\n var popupWrapperClasses = popupWrapperClassExternal ? \"\".concat(POPUP_WRAPPER_CLASS, \" \").concat(popupWrapperClassExternal) : POPUP_WRAPPER_CLASS;\r\n this.callBase();\r\n this._createBodyOverflowManager();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(popupWrapperClasses);\r\n this._$popupContent = this._$content.wrapInner($(\"<div>\").addClass(POPUP_CONTENT_CLASS)).children().eq(0);\r\n this._toggleContentScrollClass();\r\n this.$overlayContent().attr(\"role\", \"dialog\")\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _createBodyOverflowManager: function() {\r\n this._bodyOverflowManager = createBodyOverflowManager()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._observeContentResize(true)\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"<div>\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: this._getToolbarName(),\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _getToolbarName: function() {\r\n return \"dxToolbarBase\"\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n return this.callBase(visible)\r\n },\r\n _hide() {\r\n this._observeContentResize(false);\r\n return this.callBase()\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"<div>\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"<div>\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"<div>\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _toggleContentScrollClass() {\r\n var isNativeScrollingEnabled = !this.option(\"preventScrollEvents\");\r\n this.$content().toggleClass(POPUP_CONTENT_SCROLLABLE_CLASS, isNativeScrollingEnabled)\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._renderPosition(false)\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._toggleBodyScroll(true)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n _toggleSafariScrolling() {\r\n if (!this.option(\"enableBodyScroll\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _toggleBodyScroll: function(enabled) {\r\n if (!this._bodyOverflowManager) {\r\n return\r\n }\r\n var {\r\n setOverflow: setOverflow,\r\n restoreOverflow: restoreOverflow\r\n } = this._bodyOverflowManager;\r\n if (enabled) {\r\n restoreOverflow()\r\n } else {\r\n setOverflow()\r\n }\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var {\r\n value: value,\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"enableBodyScroll\":\r\n this._toggleBodyScroll(value);\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(name, value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = value;\r\n this._toggleFullScreenClass(value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n case \"preventScrollEvents\":\r\n this.callBase(args);\r\n this._toggleContentScrollClass();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_group.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n deferRender\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_GROUP_HORIZONTAL_CLASS = \"dx-radiogroup-horizontal\";\r\nvar RADIO_GROUP_VERTICAL_CLASS = \"dx-radiogroup-vertical\";\r\nvar RADIO_VALUE_CONTAINER_CLASS = \"dx-radio-value-container\";\r\nvar RADIO_GROUP_CLASS = \"dx-radiogroup\";\r\nvar RADIO_FEEDBACK_HIDE_TIMEOUT = 100;\r\nclass RadioCollection extends CollectionWidget {\r\n _focusTarget() {\r\n return this.$element().parent()\r\n }\r\n _nullValueSelectionSupported() {\r\n return true\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n _itemAttributes: {\r\n role: \"radio\"\r\n }\r\n })\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n deferRender(() => {\r\n this.itemElements().addClass(RADIO_BUTTON_CLASS)\r\n })\r\n }\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n }\r\n _postprocessRenderItem(args) {\r\n var {\r\n itemData: {\r\n html: html\r\n },\r\n itemElement: itemElement\r\n } = args;\r\n if (!html) {\r\n var $radio = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo($radio);\r\n var $radioContainer = $(\"<div>\").append($radio).addClass(RADIO_VALUE_CONTAINER_CLASS);\r\n $(itemElement).prepend($radioContainer)\r\n }\r\n super._postprocessRenderItem(args)\r\n }\r\n _processSelectableItem($itemElement, isSelected) {\r\n super._processSelectableItem($itemElement, isSelected);\r\n $itemElement.toggleClass(RADIO_BUTTON_CHECKED_CLASS, isSelected).find(\".\".concat(RADIO_BUTTON_ICON_CLASS)).first().toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, isSelected);\r\n this.setAria(\"checked\", isSelected, $itemElement)\r\n }\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n }\r\n _supportedKeys() {\r\n var parent = super._supportedKeys();\r\n return extend({}, parent, {\r\n enter: function(e) {\r\n e.preventDefault();\r\n return parent.enter.apply(this, arguments)\r\n },\r\n space: function(e) {\r\n e.preventDefault();\r\n return parent.space.apply(this, arguments)\r\n }\r\n })\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _setAriaSelectionAttribute() {}\r\n}\r\nclass RadioGroup extends Editor {\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _defaultOptionsRules() {\r\n var defaultOptionsRules = super._defaultOptionsRules();\r\n return defaultOptionsRules.concat([{\r\n device: {\r\n tablet: true\r\n },\r\n options: {\r\n layout: \"horizontal\"\r\n }\r\n }, {\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n }\r\n _fireContentReadyAction(force) {\r\n force && super._fireContentReadyAction()\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _getDefaultOptions() {\r\n var defaultOptions = super._getDefaultOptions();\r\n return extend(defaultOptions, extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n layout: \"vertical\"\r\n }))\r\n }\r\n _getItemValue(item) {\r\n return this._valueGetter ? this._valueGetter(item) : item.text\r\n }\r\n _getSubmitElement() {\r\n return this._$submitElement\r\n }\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(RADIO_BUTTON_CLASS);\r\n this._feedbackHideTimeout = RADIO_FEEDBACK_HIDE_TIMEOUT;\r\n this._initDataExpressions()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(RADIO_GROUP_CLASS);\r\n this._renderSubmitElement();\r\n this.setAria(\"role\", \"radiogroup\");\r\n this._renderRadios();\r\n this._renderLayout();\r\n super._initMarkup()\r\n }\r\n _itemClickHandler(_ref) {\r\n var {\r\n itemElement: itemElement,\r\n event: event,\r\n itemData: itemData\r\n } = _ref;\r\n if (this.itemElements().is(itemElement)) {\r\n var newValue = this._getItemValue(itemData);\r\n if (newValue !== this.option(\"value\")) {\r\n this._saveValueChangeEvent(event);\r\n this.option(\"value\", newValue)\r\n }\r\n }\r\n }\r\n _getSelectedItemKeys() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"value\");\r\n var isNullSelectable = \"this\" !== this.option(\"valueExpr\");\r\n var shouldSelectValue = isNullSelectable && null === value || isDefined(value);\r\n return shouldSelectValue ? [value] : []\r\n }\r\n _setSelection(currentValue) {\r\n var value = this._unwrappedValue(currentValue);\r\n this._setCollectionWidgetOption(\"selectedItemKeys\", this._getSelectedItemKeys(value))\r\n }\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n this._dataExpressionOptionChanged(args);\r\n switch (name) {\r\n case \"dataSource\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"accessKey\":\r\n case \"tabIndex\":\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"disabled\":\r\n super._optionChanged(args);\r\n this._setCollectionWidgetOption(name, value);\r\n break;\r\n case \"valueExpr\":\r\n this._setCollectionWidgetOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"value\":\r\n this._setSelection(value);\r\n this._setSubmitValue(value);\r\n super._optionChanged(args);\r\n break;\r\n case \"items\":\r\n this._setSelection(this.option(\"value\"));\r\n break;\r\n case \"itemTemplate\":\r\n case \"displayExpr\":\r\n break;\r\n case \"layout\":\r\n this._renderLayout();\r\n this._updateItemsSize();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _render() {\r\n super._render();\r\n this._updateItemsSize()\r\n }\r\n _renderLayout() {\r\n var layout = this.option(\"layout\");\r\n var $element = this.$element();\r\n $element.toggleClass(RADIO_GROUP_VERTICAL_CLASS, \"vertical\" === layout);\r\n $element.toggleClass(RADIO_GROUP_HORIZONTAL_CLASS, \"horizontal\" === layout)\r\n }\r\n _renderRadios() {\r\n this._areRadiosCreated = new Deferred;\r\n var $radios = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._createComponent($radios, RadioCollection, {\r\n onInitialized: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n this._radios = component\r\n },\r\n onContentReady: e => {\r\n this._fireContentReadyAction(true)\r\n },\r\n onItemClick: this._itemClickHandler.bind(this),\r\n displayExpr: displayExpr,\r\n accessKey: accessKey,\r\n dataSource: this._dataSource,\r\n focusStateEnabled: focusStateEnabled,\r\n itemTemplate: itemTemplate,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n noDataText: \"\",\r\n scrollingEnabled: false,\r\n selectByClick: false,\r\n selectionMode: \"single\",\r\n selectedItemKeys: this._getSelectedItemKeys(),\r\n tabIndex: tabIndex\r\n });\r\n this._areRadiosCreated.resolve()\r\n }\r\n _renderSubmitElement() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue()\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n value: true\r\n })\r\n }\r\n _setSubmitValue(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var submitValue = \"this\" === this.option(\"valueExpr\") ? this._displayGetter(value) : value;\r\n this._$submitElement.val(submitValue)\r\n }\r\n _setCollectionWidgetOption() {\r\n this._areRadiosCreated.done(this._setWidgetOption.bind(this, \"_radios\", arguments))\r\n }\r\n _updateItemsSize() {\r\n if (\"horizontal\" === this.option(\"layout\")) {\r\n this.itemElements().css(\"height\", \"auto\")\r\n } else {\r\n var itemsCount = this.option(\"items\").length;\r\n this.itemElements().css(\"height\", 100 / itemsCount + \"%\")\r\n }\r\n }\r\n focus() {\r\n var _this$_radios;\r\n null === (_this$_radios = this._radios) || void 0 === _this$_radios ? void 0 : _this$_radios.focus()\r\n }\r\n itemElements() {\r\n var _this$_radios2;\r\n return null === (_this$_radios2 = this._radios) || void 0 === _this$_radios2 ? void 0 : _this$_radios2.itemElements()\r\n }\r\n}\r\nRadioGroup.include(DataExpressionMixin);\r\nregisterComponent(\"dxRadioGroup\", RadioGroup);\r\nexport default RadioGroup;\r\n","/**\r\n * DevExtreme (esm/ui/radio_group.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport RadioGroup from \"./radio_group/radio_group\";\r\nexport default RadioGroup;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n this._$icon = $(\"<div>\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"<div>\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"<div>\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"<div>\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$reachBottomText = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"<div>\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nvar Animator = Class.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n nativeScrolling,\r\n touch\r\n} from \"../../core/utils/support\";\r\nexport var deviceDependentOptions = function() {\r\n return [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"./ui.scrollable.old\";\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport Class from \"../../core/class\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$content = scrollable.$content();\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable);\r\n this._isRtlNativeStrategy = scrollable._isRtlNativeStrategy.bind(scrollable)\r\n },\r\n render: function() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(SCROLLABLE_NATIVE_CLASS + \"-\" + deviceType).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._isScrollbarVisible());\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateRtlPosition: function(isFirstRender) {\r\n if (isFirstRender && this.option(\"rtlEnabled\")) {\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._moveScrollbars()\r\n }\r\n }\r\n },\r\n _renderScrollbars: function() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar: function(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"<div>\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: noop,\r\n handleStart: noop,\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: noop,\r\n handleCancel: noop,\r\n handleStop: noop,\r\n _eachScrollbar: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (function(direction, scrollbar) {\r\n callback(scrollbar, direction)\r\n }))\r\n },\r\n createActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n left: left,\r\n top: top\r\n } = this.location();\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isRtlNativeStrategy() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isRtlNativeStrategy() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? Math.round(top) >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.round(Math.abs(top) - this._getMaxOffset().top) >= 0 : void 0\r\n }\r\n },\r\n _getScrollOffset: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this.location();\r\n return {\r\n top: -top,\r\n left: this._normalizeOffsetLeft(-left)\r\n }\r\n },\r\n _normalizeOffsetLeft(scrollLeft) {\r\n if (this._isRtlNativeStrategy()) {\r\n return this._getMaxOffset().left + scrollLeft\r\n }\r\n return scrollLeft\r\n },\r\n _isReachedLeft: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible: function() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll: function(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.moveTo({\r\n top: -top,\r\n left: -left\r\n });\r\n scrollbar.option(\"visible\", true)\r\n }));\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars: function() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.option(\"visible\", false)\r\n }))\r\n }.bind(this), HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location: function() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: -this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: noop,\r\n update: function() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update: function() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions: function() {\r\n this._containerSize = {\r\n height: getHeight(this._$container),\r\n width: getWidth(this._$container)\r\n };\r\n this._componentContentSize = {\r\n height: getHeight(this._component.$content()),\r\n width: getWidth(this._component.$content())\r\n };\r\n this._contentSize = {\r\n height: getHeight(this._$content),\r\n width: getWidth(this._$content)\r\n }\r\n },\r\n _updateScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose: function() {\r\n var className = this._$element.get(0).className;\r\n var scrollableNativeRegexp = new RegExp(SCROLLABLE_NATIVE_CLASS + \"\\\\S*\", \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n eventsEngine.off(this._$element, \".\" + SCROLLABLE_NATIVE);\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE_NATIVE);\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.$element().remove()\r\n }))\r\n },\r\n scrollBy: function(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate: function(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (isDxMouseWheelEvent(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n return result\r\n },\r\n getDirection: function() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.old.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./ui.scrollable.device\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_location_internal\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"<div>\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"<div>\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"<div>\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition: function(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset: function() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = $(this.container()).get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers: function() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate: function(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._moveIsAllowed(e)\r\n },\r\n _moveIsAllowed(e) {\r\n return this._strategy.validate(e)\r\n },\r\n handleMove(e) {\r\n this._strategy.handleMove(e)\r\n },\r\n _prepareDirections(value) {\r\n this._strategy._prepareDirections(value)\r\n },\r\n _initHandler: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n case \"scrollByContent\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection: function() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp: function() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n } else {\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n }\r\n },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection: function() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection: function() {\r\n return this._allowedDirectionValue\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n container: function() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset: function() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy: function() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight: function() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth: function() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth: function() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isRtlNativeStrategy()) {\r\n location.left = location.left - this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollToElement: function(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition: function($element, direction, offset) {\r\n var scrollOffset = this.scrollOffset();\r\n return getElementLocationInternal($element.get(0), direction, $(this.container()).get(0), scrollOffset, offset)\r\n },\r\n _updateIfNeed: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n isRenovated: function() {\r\n return !!Scrollable.IS_RENOVATED_WIDGET\r\n }\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getRelativeOffset\r\n} from \"./get_relative_offset\";\r\nimport {\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../common/consts\";\r\nexport function getElementLocationInternal(targetElement, direction, containerElement, scrollOffset, offset) {\r\n var additionalOffset = _extends({\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0\r\n }, offset);\r\n var isVertical = direction === DIRECTION_VERTICAL;\r\n var prop = isVertical ? \"top\" : \"left\";\r\n var inverseProp = isVertical ? \"bottom\" : \"right\";\r\n var dimension = isVertical ? \"height\" : \"width\";\r\n var containerOffsetSize = containerElement[\"offset\".concat(titleize(dimension))];\r\n var containerClientSize = containerElement[\"client\".concat(titleize(dimension))];\r\n var containerSize = containerElement.getBoundingClientRect()[dimension];\r\n var elementSize = targetElement.getBoundingClientRect()[dimension];\r\n var scale = 1;\r\n if (Math.abs(containerSize - containerOffsetSize) > 1) {\r\n scale = containerSize / containerOffsetSize\r\n }\r\n var relativeElementOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement)[prop] / scale;\r\n var containerScrollOffset = scrollOffset[prop];\r\n var relativeStartOffset = containerScrollOffset - relativeElementOffset + additionalOffset[prop];\r\n var relativeEndOffset = containerScrollOffset - relativeElementOffset - elementSize / scale + containerClientSize - additionalOffset[inverseProp];\r\n if (relativeStartOffset <= 0 && relativeEndOffset >= 0) {\r\n return containerScrollOffset\r\n }\r\n return containerScrollOffset - (Math.abs(relativeStartOffset) > Math.abs(relativeEndOffset) ? relativeEndOffset : relativeStartOffset)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n titleize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport Class from \"../../core/class\";\r\nimport Animator from \"./animator\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n addNamespace as addEventNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferUpdate,\r\n deferUpdater,\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = SCROLLABLE_SIMULATED + \"Cursor\";\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = SCROLLABLE_SIMULATED + \"Keyboard\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - Math.pow(ACCELERATION, BOUNCE_FRAMES)) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = Animator.inherit({\r\n ctor: function(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step: function() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration: function() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._scrollComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: function() {\r\n return ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nexport var Scroller = Class.inherit({\r\n ctor: function(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions: function(options) {\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n each(options, (optionName, optionValue) => {\r\n this[\"_\" + optionName] = optionValue\r\n })\r\n },\r\n _initAnimators: function() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar: function() {\r\n this._scrollbar = new Scrollbar($(\"<div>\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: function(mode) {\r\n return true === mode ? \"onScroll\" : false === mode ? \"never\" : mode\r\n },\r\n _scrollStep: function(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n eventsEngine.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce: function() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move: function(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent: function() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio: function() {\r\n if (hasWindow() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: function(element, dimension) {\r\n return Math.round(getBoundingRect(element)[dimension])\r\n },\r\n _getBaseDimension: function(element, dimension) {\r\n var dimensionName = \"offset\" + titleize(dimension);\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator: function(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (0 === translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds: function() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce: function() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep: function() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler: function(e) {\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e)\r\n },\r\n _stopScrolling: deferRenderer((function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n })),\r\n _prepareThumbScrolling: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n return\r\n }\r\n var $target = $(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler: function($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation: function(e) {\r\n var mouseLocation = e[\"page\" + this._axis.toUpperCase()] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - getHeight(this._$container) / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _startHandler: function() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler: function(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy: function(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler: function(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio: function() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler: function(velocity) {\r\n this._completeDeferred = new Deferred;\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler: function() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia: function() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling: function() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler: function() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler: function() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler: function() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update: function() {\r\n this._stopScrolling();\r\n return deferUpdate(() => {\r\n this._resetScaleRatio();\r\n this._updateLocation();\r\n this._updateBounds();\r\n this._updateScrollbar();\r\n deferRender(() => {\r\n this._moveScrollbar();\r\n this._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio: function() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation: function() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds: function() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return 0\r\n },\r\n _getMinOffset: function() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: deferUpdater((function() {\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n deferRender(() => {\r\n this._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n })\r\n })),\r\n _moveToBounds: deferRenderer(deferUpdater(deferRenderer((function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n })))),\r\n _createActionsHandler: function(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar: function() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar: function() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize: function() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize: function() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\" + this._axis.toUpperCase());\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\" + titleize(this._dimension)] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent: function(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb: function($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar: function($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin: function() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax: function() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler: function() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler: function() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: noop\r\n});\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nexport var SimulatedStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable.$content();\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render: function() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers: function() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"))\r\n },\r\n _createScroller: function(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio: function(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if (isDefined(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling: function($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((function(isThumbScrollingVertical, isThumbScrollingHorizontal) {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n }));\r\n return result\r\n },\r\n handleInit: function(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller((function(scroller, direction) {\r\n var $target = $(e.originalEvent.target);\r\n var isValid = scroller._validateEvent(e) || this.option(\"scrollByContent\") && this._isContent($target);\r\n this._validDirections[direction] = isValid\r\n }))\r\n },\r\n _isContent: function($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections: function(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (function(direction, scroller) {\r\n callback(scroller, direction)\r\n }))\r\n },\r\n handleStart: function(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive: function() {\r\n activeScrollable = this\r\n },\r\n _resetActive: function() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance: function(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && isDxMouseWheelEvent(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio: function() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd: function(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel: function(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop: function() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll: function() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler: function(e) {\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(() => {\r\n if (normalizeKeyName(e) === KEY_CODES.TAB) {\r\n this._eachScroller(scroller => {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(domAdapter.getActiveElement(this._$container.get(0)))) {\r\n return\r\n }\r\n var handled = true;\r\n switch (normalizeKeyName(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine: function(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage: function(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = page * -getter(this._$container);\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: function(prop) {\r\n return \"left\" === prop ? \"width\" : \"height\"\r\n },\r\n _getPropByDirection: function(direction) {\r\n return direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _scrollToHome: function() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd: function() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = getter(this._$content) - getter(this._$container);\r\n this._component.scrollTo(distance)\r\n },\r\n createActions: function() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions: function() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler: function(optionName) {\r\n var actionHandler = this._createActionByOption(optionName);\r\n return () => {\r\n actionHandler(extend(this._createActionArgs(), arguments))\r\n }\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n horizontal: scrollerX,\r\n vertical: scrollerY\r\n } = this._scrollers;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _getScrollOffset() {\r\n return {\r\n top: -this.location().top,\r\n left: -this.location().left\r\n }\r\n },\r\n _eventHandler: function(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\" + eventName + \"Handler\"].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location: function() {\r\n var location = locate(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged: function() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode: function() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler: function(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler: function(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState: function(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = $(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update: function() {\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return when(result, deferUpdate(() => {\r\n var allowedDirections = this._allowedDirections();\r\n deferRender(() => {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n this._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return when().promise()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n _updateBounds: function() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled: function() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition: function(needInitializeRtlConfig) {\r\n if (needInitializeRtlConfig) {\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._$container.get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n }\r\n }\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n var scrollLeft = this._getMaxOffset().left - this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left\r\n }\r\n if (this._getScrollOffset().left !== scrollLeft) {\r\n this._rtlConfig.skipUpdating = true;\r\n this._component.scrollTo({\r\n left: scrollLeft\r\n });\r\n this._rtlConfig.skipUpdating = false\r\n }\r\n }\r\n },\r\n _updateRtlConfig: function() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var {\r\n clientWidth: clientWidth,\r\n scrollLeft: scrollLeft\r\n } = this._$container.get(0);\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _getWindowDevicePixelRatio: function() {\r\n return hasWindow() ? getWindow().devicePixelRatio : 1\r\n },\r\n scrollBy: function(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction();\r\n this._updateRtlConfig()\r\n },\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && isCommandKeyPressed(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return isDxMouseWheelEvent(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel: function(e) {\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(() => {\r\n this._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove: function(e) {\r\n if (!this.option(\"scrollByContent\") && !$(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection: function(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp: function() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection: function(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n dispose: function() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallback from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferRenderer\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup: function() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb: function() {\r\n this._$thumb = $(\"<div>\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"<div>\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb: function($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode: function() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection: function() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\" + direction);\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler: function() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn: function() {\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff: function() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter: function() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave: function() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions: function() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility: function(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility: function(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo: function(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if (isPlainObject(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n move(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition: function(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update: function() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden: function() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar: function() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio: function() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize: function(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\" + SCROLLBAR)\r\n },\r\n _optionChanged: function(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: deferRenderer((function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n }))\r\n});\r\nreadyCallback.add((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), (function() {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n }))\r\n}));\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_list.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isWindow,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DropDownEditor from \"./ui.drop_down_editor\";\r\nimport List from \"../list_light\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport devices from \"../../core/devices\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../core/templates/child_default_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab: function(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: false\r\n }))\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items: function() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem: function(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer: function() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, function(i, parent) {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n } else if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant() {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n })\r\n },\r\n _setSelectedItem: function(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, itemElement) {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._initDataController();\r\n this._setListOption(\"_dataController\", this._dataController);\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new Guid)._value;\r\n var $list = $(\"<div>\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._$list = $list;\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _getControlsAria() {\r\n return this._list && this._listId\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria(\"owns\", this._popup && this._popupContentId)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === devices.real().deviceType\r\n },\r\n _listConfig: function() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n encodeNoDataText: this.option(\"encodeNoDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _dataController: this._dataController,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._updatePopupWidth();\r\n this._updateListDimensions();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return this._dataController.isLoaded() && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return addNamespace(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getCompositionStartEvent: function() {\r\n return addNamespace(\"compositionstart\", this.NAME + \"CompositionStart\")\r\n },\r\n _getCompositionEndEvent: function() {\r\n return addNamespace(\"compositionend\", this.NAME + \"CompositionEnd\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return addNamespace(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress: function(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler: function(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled: function() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource: function() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataController = this._dataController;\r\n dataController.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataController.searchOperation(this.option(\"searchMode\"));\r\n dataController.searchValue(searchValue);\r\n dataController.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n },\r\n _clearFilter: function() {\r\n var dataController = this._dataController;\r\n dataController.searchValue() && dataController.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataController.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow: function() {\r\n var dataController = this._dataController;\r\n var resultItems = dataController.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase();\r\n this._updateListDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n var dataController = this._dataController;\r\n var currentPageIndex = dataController.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || dataController.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updateListDimensions: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean: function() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/ui/select_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport errors from \"../core/errors\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport \"./list/modules/selection\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.reset()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n customItemCreateEvent: \"change\",\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.2\",\r\n alias: \"customItemCreateEvent\"\r\n }\r\n })\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var _items$indexOf;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_items$indexOf = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _items$indexOf ? _items$indexOf : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataController.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataController.isLoaded() ? (new Deferred).resolve() : this._dataController.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataController.pageSize();\r\n var isLastPage = this._dataController.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataController.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n each(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataController.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataController.getDataSource()) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updatePopupWidth();\r\n this._updateListDimensions()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _valueChangeEventIncludesBlur: function() {\r\n var valueChangeEvent = this.option(this._getValueChangeEventOptionName());\r\n return valueChangeEvent.includes(\"blur\")\r\n },\r\n _isPreventedFocusOutEvent: function(e) {\r\n return this._preventNestedFocusEvent(e) || this._valueChangeEventIncludesBlur()\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._isPreventedFocusOutEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n var shouldRestoreValue = selectedItem && \"\" !== selectedItemText;\r\n if (shouldRestoreValue) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = domAdapter.getActiveElement(this.element());\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"customItemCreateEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"customItemCreateEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class SelectionStrategy {\r\n constructor(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n }\r\n _clearItemKeys() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n }\r\n validate() {}\r\n _setOption(name, value) {\r\n this.options[name] = value\r\n }\r\n onSelectionChanged() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n }\r\n equalKeys(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n }\r\n getSelectableItems(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n }\r\n _clearSelection(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n }\r\n _removeTemplateProperty(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n }\r\n _loadFilteredData(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done((function(items) {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n })).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n }\r\n updateSelectedItemKeyHash(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n }\r\n _isAnyItemSelected(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n }\r\n _getFullSelectAllState() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null !== item && void 0 !== item && item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n }\r\n _getVisibleSelectAllState() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default class DeferredStrategy extends SelectionStrategy {\r\n getSelectedItems() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n }\r\n getSelectedItemKeys() {\r\n var d = new Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i], isSelectAll, !preserve)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n setSelectedItems(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n isItemDataSelected(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n }\r\n isItemKeySelected(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n }\r\n _getKeyExpr() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n }\r\n _normalizeKey(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n }\r\n _getFilterByKey(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n }\r\n addSelectedItem(key, isSelectAll, skipFilter) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter, isSelectAll, skipFilter)\r\n }\r\n removeSelectedItem(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n }\r\n validate() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n }\r\n _findSubFilter(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _isLastSubFilter(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n }\r\n _addFilterOperator(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n }\r\n _denormalizeFilter(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n }\r\n _isOnlyNegativeFiltersLeft(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n } else {\r\n return \"and\" === filterItem\r\n }\r\n })\r\n }\r\n _addSelectionFilter(isDeselect, filter, isSelectAll, skipFilter) {\r\n var _selectionFilter;\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (null !== (_selectionFilter = selectionFilter) && void 0 !== _selectionFilter && _selectionFilter.length && !skipFilter) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved\r\n }\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation);\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n }\r\n _normalizeFilter(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n }\r\n _removeFilterByIndex(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n }\r\n _isSimpleKeyFilter(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n }\r\n _isKeyFilter(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n }\r\n _hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n _removeSameFilter(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n }\r\n getSelectAllState() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var componentFilter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n var filter = componentFilter ? [componentFilter, \"and\", selectionFilter] : selectionFilter;\r\n return this._loadFilteredData(filter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.standard.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n getUniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default class StandardStrategy extends SelectionStrategy {\r\n constructor(options) {\r\n super(options);\r\n this._initSelectedItemKeyHash()\r\n }\r\n _initSelectedItemKeyHash() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n }\r\n getSelectedItemKeys() {\r\n return this.options.selectedItemKeys.slice(0)\r\n }\r\n getSelectedItems() {\r\n return this.options.selectedItems.slice(0)\r\n }\r\n _preserveSelectionUpdate(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n }\r\n _batchRemoveSelectedItems(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n _loadSelectedItemsCore(keys, isDeselect, isSelectAll, filter) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var deferred = new Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter, forceCombinedFilter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n }\r\n _replaceSelectionUpdate(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n }\r\n _warnOnIncorrectKeys(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n }\r\n _isMultiSelectEnabled() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n }\r\n _requestInProgress() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n }\r\n _concatRequestsItems(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n }\r\n _collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n }\r\n _updateKeysByLastRequestData(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n }\r\n _loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : false;\r\n var that = this;\r\n var deferred = new Deferred;\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter, forceCombinedFilter).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var forceCombinedFilter = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : false;\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys, forceCombinedFilter);\r\n deferred.done((function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n }));\r\n return deferred\r\n }\r\n addSelectedItem(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n }\r\n _getSelectedIndexByKey(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n }\r\n _getSelectedIndexByHash(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n }\r\n _indexOfSelectedItemKey(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n }\r\n _shiftSelectedKeyIndices(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n }\r\n removeSelectedItem(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n }\r\n _updateAddedItemKeys(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n }\r\n _updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n }\r\n _isItemSelectionInProgress(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n }\r\n _getKeyHash(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n }\r\n setSelectedItems(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n }\r\n isItemDataSelected(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n }\r\n isItemKeySelected(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n }\r\n getSelectAllState(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n loadSelectedItemsWithFilter() {\r\n var keyExpr = this.options.key();\r\n var keys = this.getSelectedItemKeys();\r\n var filter = this.options.filter();\r\n if (!keys.length) {\r\n return Deferred().resolve([])\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(keyExpr, filter, true);\r\n return this._loadFilteredData(combinedFilter)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport default class Selection {\r\n constructor(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n }\r\n _getDefaultOptions() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n }\r\n validate() {\r\n this._selectionStrategy.validate()\r\n }\r\n getSelectedItemKeys() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n }\r\n getSelectedItems() {\r\n return this._selectionStrategy.getSelectedItems()\r\n }\r\n selectionFilter(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n }\r\n setSelection(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n }\r\n select(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n }\r\n deselect(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n _addSelectedItem(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n }\r\n _removeSelectedItem(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n }\r\n _setSelectedItems(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n }\r\n onSelectionChanged() {\r\n this._selectionStrategy.onSelectionChanged()\r\n }\r\n changeItemSelection(itemIndex, keys, setFocusOnly) {\r\n var _this$options$allowLo, _this$options;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var allowLoadByRange = null === (_this$options$allowLo = (_this$options = this.options).allowLoadByRange) || void 0 === _this$options$allowLo ? void 0 : _this$options$allowLo.call(_this$options);\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (allowLoadByRange && isDefined(item)) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex;\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n }\r\n isDataItem(item) {\r\n return this.options.isSelectableItem(item)\r\n }\r\n isSelectable() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n }\r\n isItemDataSelected(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n }\r\n isItemSelected(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n }\r\n _resetItemSelectionWhenShiftKeyPressed() {\r\n delete this._shiftFocusedItemIndex\r\n }\r\n _resetFocusedItemIndex() {\r\n this._focusedItemIndex = -1\r\n }\r\n changeItemSelectionWhenShiftKeyInVirtualPaging(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = new Deferred;\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n }\r\n changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n }\r\n clearSelectedItems() {\r\n this._setSelectedItems([], [])\r\n }\r\n selectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n }\r\n deselectAll(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n }\r\n _onePageSelectAll(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n }\r\n getSelectAllState(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selectionStrategy.loadSelectedItemsWithFilter()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/m_sortable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport Draggable from \"./m_draggable\";\r\nvar window = getWindow();\r\nvar SORTABLE = \"dxSortable\";\r\nvar PLACEHOLDER_CLASS = \"placeholder\";\r\nvar CLONE_CLASS = \"clone\";\r\nvar isElementVisible = itemElement => $(itemElement).is(\":visible\");\r\nvar animate = (element, config) => {\r\n var _a, _b;\r\n if (!element) {\r\n return\r\n }\r\n var left = (null === (_a = config.to) || void 0 === _a ? void 0 : _a.left) || 0;\r\n var top = (null === (_b = config.to) || void 0 === _b ? void 0 : _b.top) || 0;\r\n element.style.transform = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\r\n element.style.transition = fx.off ? \"\" : \"transform \".concat(config.duration, \"ms \").concat(config.easing)\r\n};\r\nvar stopAnimation = element => {\r\n if (!element) {\r\n return\r\n }\r\n element.style.transform = \"\";\r\n element.style.transition = \"\"\r\n};\r\n\r\nfunction getScrollableBoundary($scrollable) {\r\n var offset = $scrollable.offset();\r\n var {\r\n style: style\r\n } = $scrollable[0];\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var paddingRight = parseFloat(style.paddingRight) || 0;\r\n var paddingTop = parseFloat(style.paddingTop) || 0;\r\n var width = $scrollable[0].clientWidth - (paddingLeft + paddingRight);\r\n var height = getHeight($scrollable);\r\n var left = offset.left + paddingLeft;\r\n var top = offset.top + paddingTop;\r\n return {\r\n left: left,\r\n right: left + width,\r\n top: top,\r\n bottom: top + height\r\n }\r\n}\r\nvar Sortable = Draggable.inherit({\r\n _init() {\r\n this.callBase();\r\n this._sourceScrollHandler = this._handleSourceScroll.bind(this);\r\n this._sourceScrollableInfo = null\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n clone: true,\r\n filter: \"> *\",\r\n itemOrientation: \"vertical\",\r\n dropFeedbackMode: \"push\",\r\n allowDropInsideItem: false,\r\n allowReordering: true,\r\n moveItemOnDrop: false,\r\n onDragChange: null,\r\n onAdd: null,\r\n onRemove: null,\r\n onReorder: null,\r\n onPlaceholderPrepared: null,\r\n animation: {\r\n type: \"slide\",\r\n duration: 300,\r\n easing: \"ease\"\r\n },\r\n fromIndex: null,\r\n toIndex: null,\r\n dropInsideItem: false,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n offset: 0,\r\n autoUpdate: false,\r\n draggableElementSize: 0\r\n })\r\n },\r\n reset() {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null,\r\n fromIndex: null,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n draggableElementSize: 0\r\n });\r\n if (this._$placeholderElement) {\r\n this._$placeholderElement.remove()\r\n }\r\n this._$placeholderElement = null;\r\n if (!this._isIndicateMode() && this._$modifiedItem) {\r\n this._$modifiedItem.css(\"marginBottom\", this._modifiedItemMargin);\r\n this._$modifiedItem = null\r\n }\r\n },\r\n _getPrevVisibleItem: (items, index) => items.slice(0, index).reverse().filter(isElementVisible)[0],\r\n _dragStartHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (true === e.cancel) {\r\n return\r\n }\r\n var $sourceElement = this._getSourceElement();\r\n this._updateItemPoints();\r\n this._subscribeToSourceScroll(e);\r\n this.option(\"fromIndex\", this._getElementIndex($sourceElement));\r\n this.option(\"fromIndexOffset\", this.option(\"offset\"))\r\n },\r\n _subscribeToSourceScroll(e) {\r\n var $scrollable = this._getScrollable($(e.target));\r\n if ($scrollable) {\r\n this._sourceScrollableInfo = {\r\n element: $scrollable,\r\n scrollLeft: $scrollable.scrollLeft(),\r\n scrollTop: $scrollable.scrollTop()\r\n };\r\n eventsEngine.off($scrollable, \"scroll\", this._sourceScrollHandler);\r\n eventsEngine.on($scrollable, \"scroll\", this._sourceScrollHandler)\r\n }\r\n },\r\n _unsubscribeFromSourceScroll() {\r\n if (this._sourceScrollableInfo) {\r\n eventsEngine.off(this._sourceScrollableInfo.element, \"scroll\", this._sourceScrollHandler);\r\n this._sourceScrollableInfo = null\r\n }\r\n },\r\n _handleSourceScroll(e) {\r\n var sourceScrollableInfo = this._sourceScrollableInfo;\r\n if (sourceScrollableInfo) {\r\n [\"scrollLeft\", \"scrollTop\"].forEach(scrollProp => {\r\n if (e.target[scrollProp] !== sourceScrollableInfo[scrollProp]) {\r\n var scrollBy = e.target[scrollProp] - sourceScrollableInfo[scrollProp];\r\n this._correctItemPoints(scrollBy);\r\n this._movePlaceholder();\r\n sourceScrollableInfo[scrollProp] = e.target[scrollProp]\r\n }\r\n })\r\n }\r\n },\r\n _dragEnterHandler(e) {\r\n this.callBase.apply(this, arguments);\r\n if (this === this._getSourceDraggable()) {\r\n return\r\n }\r\n this._subscribeToSourceScroll(e);\r\n this._updateItemPoints();\r\n this.option(\"fromIndex\", -1);\r\n if (!this._isIndicateMode()) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n var lastItemPoint = itemPoints[itemPoints.length - 1];\r\n if (lastItemPoint) {\r\n var $element = this.$element();\r\n var $sourceElement = this._getSourceElement();\r\n var isVertical = this._isVerticalOrientation();\r\n var sourceElementSize = isVertical ? getOuterHeight($sourceElement, true) : getOuterWidth($sourceElement, true);\r\n var scrollSize = $element.get(0)[isVertical ? \"scrollHeight\" : \"scrollWidth\"];\r\n var scrollPosition = $element.get(0)[isVertical ? \"scrollTop\" : \"scrollLeft\"];\r\n var positionProp = isVertical ? \"top\" : \"left\";\r\n var lastPointPosition = lastItemPoint[positionProp];\r\n var elementPosition = $element.offset()[positionProp];\r\n var freeSize = elementPosition + scrollSize - scrollPosition - lastPointPosition;\r\n if (freeSize < sourceElementSize) {\r\n if (isVertical) {\r\n var items = this._getItems();\r\n var $lastItem = $(this._getPrevVisibleItem(items));\r\n this._$modifiedItem = $lastItem;\r\n this._modifiedItemMargin = $lastItem.get(0).style.marginBottom;\r\n $lastItem.css(\"marginBottom\", sourceElementSize - freeSize);\r\n var $sortable = $lastItem.closest(\".dx-sortable\");\r\n var sortable = $sortable.data(\"dxScrollable\") || $sortable.data(\"dxScrollView\");\r\n sortable && sortable.update()\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _dragLeaveHandler() {\r\n this.callBase.apply(this, arguments);\r\n if (this !== this._getSourceDraggable()) {\r\n this._unsubscribeFromSourceScroll()\r\n }\r\n },\r\n dragEnter() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", -1)\r\n }\r\n },\r\n dragLeave() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", this.option(\"fromIndex\"))\r\n }\r\n },\r\n _allowDrop(event) {\r\n var targetDraggable = this._getTargetDraggable();\r\n var $targetDraggable = targetDraggable.$element();\r\n var $scrollable = this._getScrollable($targetDraggable);\r\n if ($scrollable) {\r\n var {\r\n left: left,\r\n right: right,\r\n top: top,\r\n bottom: bottom\r\n } = getScrollableBoundary($scrollable);\r\n var toIndex = this.option(\"toIndex\");\r\n var itemPoints = this.option(\"itemPoints\");\r\n var itemPoint = null === itemPoints || void 0 === itemPoints ? void 0 : itemPoints.filter(item => item.index === toIndex)[0];\r\n if (itemPoint && void 0 !== itemPoint.top) {\r\n var isVertical = this._isVerticalOrientation();\r\n if (isVertical) {\r\n return top <= Math.ceil(itemPoint.top) && Math.floor(itemPoint.top) <= bottom\r\n }\r\n return left <= Math.ceil(itemPoint.left) && Math.floor(itemPoint.left) <= right\r\n }\r\n }\r\n return true\r\n },\r\n dragEnd(sourceEvent) {\r\n this._unsubscribeFromSourceScroll();\r\n var $sourceElement = this._getSourceElement();\r\n var sourceDraggable = this._getSourceDraggable();\r\n var isSourceDraggable = sourceDraggable.NAME !== this.NAME;\r\n var toIndex = this.option(\"toIndex\");\r\n var {\r\n event: event\r\n } = sourceEvent;\r\n var allowDrop = this._allowDrop(event);\r\n if (null !== toIndex && toIndex >= 0 && allowDrop) {\r\n var cancelAdd;\r\n var cancelRemove;\r\n if (sourceDraggable !== this) {\r\n cancelAdd = this._fireAddEvent(event);\r\n if (!cancelAdd) {\r\n cancelRemove = this._fireRemoveEvent(event)\r\n }\r\n }\r\n if (isSourceDraggable) {\r\n resetPosition($sourceElement)\r\n }\r\n if (this.option(\"moveItemOnDrop\")) {\r\n !cancelAdd && this._moveItem($sourceElement, toIndex, cancelRemove)\r\n }\r\n if (sourceDraggable === this) {\r\n return this._fireReorderEvent(event)\r\n }\r\n }\r\n return Deferred().resolve()\r\n },\r\n dragMove(e) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (!itemPoints) {\r\n return\r\n }\r\n var isVertical = this._isVerticalOrientation();\r\n var axisName = isVertical ? \"top\" : \"left\";\r\n var cursorPosition = isVertical ? e.pageY : e.pageX;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var itemPoint;\r\n for (var i = itemPoints.length - 1; i >= 0; i--) {\r\n var centerPosition = itemPoints[i + 1] && (itemPoints[i][axisName] + itemPoints[i + 1][axisName]) / 2;\r\n if ((!isVertical && rtlEnabled ? cursorPosition > centerPosition : centerPosition > cursorPosition) || void 0 === centerPosition) {\r\n itemPoint = itemPoints[i]\r\n } else {\r\n break\r\n }\r\n }\r\n if (itemPoint) {\r\n this._updatePlaceholderPosition(e, itemPoint);\r\n if (this._verticalScrollHelper.isScrolling() && this._isIndicateMode()) {\r\n this._movePlaceholder()\r\n }\r\n }\r\n },\r\n _isIndicateMode() {\r\n return \"indicate\" === this.option(\"dropFeedbackMode\") || this.option(\"allowDropInsideItem\")\r\n },\r\n _createPlaceholder() {\r\n var $placeholderContainer;\r\n if (this._isIndicateMode()) {\r\n $placeholderContainer = $(\"<div>\").addClass(this._addWidgetPrefix(PLACEHOLDER_CLASS)).insertBefore(this._getSourceDraggable()._$dragElement)\r\n }\r\n this._$placeholderElement = $placeholderContainer;\r\n return $placeholderContainer\r\n },\r\n _getItems() {\r\n var itemsSelector = this._getItemsSelector();\r\n return this._$content().find(itemsSelector).not(\".\".concat(this._addWidgetPrefix(PLACEHOLDER_CLASS))).not(\".\".concat(this._addWidgetPrefix(CLONE_CLASS))).toArray()\r\n },\r\n _allowReordering() {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return sourceDraggable !== targetDraggable || this.option(\"allowReordering\")\r\n },\r\n _isValidPoint(visibleIndex, draggableVisibleIndex, dropInsideItem) {\r\n var allowDropInsideItem = this.option(\"allowDropInsideItem\");\r\n var allowReordering = dropInsideItem || this._allowReordering();\r\n if (!allowReordering && (0 !== visibleIndex || !allowDropInsideItem)) {\r\n return false\r\n }\r\n if (!this._isIndicateMode()) {\r\n return true\r\n }\r\n return -1 === draggableVisibleIndex || visibleIndex !== draggableVisibleIndex && (dropInsideItem || visibleIndex !== draggableVisibleIndex + 1)\r\n },\r\n _getItemPoints() {\r\n var result = [];\r\n var $item;\r\n var offset;\r\n var itemWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVertical = this._isVerticalOrientation();\r\n var itemElements = this._getItems();\r\n var visibleItemElements = itemElements.filter(isElementVisible);\r\n var visibleItemCount = visibleItemElements.length;\r\n var $draggableItem = this._getDraggableElement();\r\n var draggableVisibleIndex = visibleItemElements.indexOf($draggableItem.get(0));\r\n if (visibleItemCount) {\r\n for (var i = 0; i <= visibleItemCount; i++) {\r\n var needCorrectLeftPosition = !isVertical && rtlEnabled ^ i === visibleItemCount;\r\n var needCorrectTopPosition = isVertical && i === visibleItemCount;\r\n if (i < visibleItemCount) {\r\n $item = $(visibleItemElements[i]);\r\n offset = $item.offset();\r\n itemWidth = getOuterWidth($item)\r\n }\r\n result.push({\r\n dropInsideItem: false,\r\n left: offset.left + (needCorrectLeftPosition ? itemWidth : 0),\r\n top: offset.top + (needCorrectTopPosition ? result[i - 1].height : 0),\r\n index: i === visibleItemCount ? itemElements.length : itemElements.indexOf($item.get(0)),\r\n $item: $item,\r\n width: getOuterWidth($item),\r\n height: getOuterHeight($item),\r\n isValid: this._isValidPoint(i, draggableVisibleIndex)\r\n })\r\n }\r\n if (this.option(\"allowDropInsideItem\")) {\r\n var points = result;\r\n result = [];\r\n for (var _i = 0; _i < points.length; _i++) {\r\n result.push(points[_i]);\r\n if (points[_i + 1]) {\r\n result.push(extend({}, points[_i], {\r\n dropInsideItem: true,\r\n top: Math.floor((points[_i].top + points[_i + 1].top) / 2),\r\n left: Math.floor((points[_i].left + points[_i + 1].left) / 2),\r\n isValid: this._isValidPoint(_i, draggableVisibleIndex, true)\r\n }))\r\n }\r\n }\r\n }\r\n } else {\r\n result.push({\r\n dropInsideItem: false,\r\n index: 0,\r\n isValid: true\r\n })\r\n }\r\n return result\r\n },\r\n _updateItemPoints(forceUpdate) {\r\n if (forceUpdate || this.option(\"autoUpdate\") || !this.option(\"itemPoints\")) {\r\n this.option(\"itemPoints\", this._getItemPoints())\r\n }\r\n },\r\n _correctItemPoints(scrollBy) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (scrollBy && itemPoints && !this.option(\"autoUpdate\")) {\r\n var isVertical = this._isVerticalOrientation();\r\n var positionPropName = isVertical ? \"top\" : \"left\";\r\n itemPoints.forEach(itemPoint => {\r\n itemPoint[positionPropName] -= scrollBy\r\n })\r\n }\r\n },\r\n _getElementIndex($itemElement) {\r\n return this._getItems().indexOf($itemElement.get(0))\r\n },\r\n _getDragTemplateArgs($element) {\r\n var args = this.callBase.apply(this, arguments);\r\n args.model.fromIndex = this._getElementIndex($element);\r\n return args\r\n },\r\n _togglePlaceholder(value) {\r\n this._$placeholderElement && this._$placeholderElement.toggle(value)\r\n },\r\n _isVerticalOrientation() {\r\n return \"vertical\" === this.option(\"itemOrientation\")\r\n },\r\n _normalizeToIndex(toIndex, skipOffsetting) {\r\n var isAnotherDraggable = this._getSourceDraggable() !== this._getTargetDraggable();\r\n var fromIndex = this._getActualFromIndex();\r\n if (null === toIndex) {\r\n return fromIndex\r\n }\r\n return Math.max(isAnotherDraggable || fromIndex >= toIndex || skipOffsetting ? toIndex : toIndex - 1, 0)\r\n },\r\n _updatePlaceholderPosition(e, itemPoint) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var toIndex = this._normalizeToIndex(itemPoint.index, itemPoint.dropInsideItem);\r\n var eventArgs = extend(this._getEventArgs(e), {\r\n toIndex: toIndex,\r\n dropInsideItem: itemPoint.dropInsideItem\r\n });\r\n itemPoint.isValid && this._getAction(\"onDragChange\")(eventArgs);\r\n if (eventArgs.cancel || !itemPoint.isValid) {\r\n if (!itemPoint.isValid) {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null\r\n })\r\n }\r\n return\r\n }\r\n this.option({\r\n dropInsideItem: itemPoint.dropInsideItem,\r\n toIndex: itemPoint.index\r\n });\r\n this._getAction(\"onPlaceholderPrepared\")(extend(this._getEventArgs(e), {\r\n placeholderElement: getPublicElement(this._$placeholderElement),\r\n dragElement: getPublicElement(sourceDraggable._$dragElement)\r\n }));\r\n this._updateItemPoints()\r\n },\r\n _makeWidthCorrection($item, width) {\r\n this._$scrollable = this._getScrollable($item);\r\n if (this._$scrollable) {\r\n var scrollableWidth = getWidth(this._$scrollable);\r\n var overflowLeft = this._$scrollable.offset().left - $item.offset().left;\r\n var overflowRight = getOuterWidth($item) - overflowLeft - scrollableWidth;\r\n if (overflowLeft > 0) {\r\n width -= overflowLeft\r\n }\r\n if (overflowRight > 0) {\r\n width -= overflowRight\r\n }\r\n }\r\n return width\r\n },\r\n _updatePlaceholderSizes($placeholderElement, itemElement) {\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var $item = $(itemElement);\r\n var isVertical = this._isVerticalOrientation();\r\n var width = \"\";\r\n var height = \"\";\r\n $placeholderElement.toggleClass(this._addWidgetPrefix(\"placeholder-inside\"), dropInsideItem);\r\n if (isVertical || dropInsideItem) {\r\n width = getOuterWidth($item)\r\n }\r\n if (!isVertical || dropInsideItem) {\r\n height = getOuterHeight($item)\r\n }\r\n width = this._makeWidthCorrection($item, width);\r\n $placeholderElement.css({\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _moveItem($itemElement, index, cancelRemove) {\r\n var $prevTargetItemElement;\r\n var $itemElements = this._getItems();\r\n var $targetItemElement = $itemElements[index];\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (cancelRemove) {\r\n $itemElement = $itemElement.clone();\r\n sourceDraggable._toggleDragSourceClass(false, $itemElement)\r\n }\r\n if (!$targetItemElement) {\r\n $prevTargetItemElement = $itemElements[index - 1]\r\n }\r\n this._moveItemCore($itemElement, $targetItemElement, $prevTargetItemElement)\r\n },\r\n _moveItemCore($targetItem, item, prevItem) {\r\n if (!item && !prevItem) {\r\n $targetItem.appendTo(this.$element())\r\n } else if (prevItem) {\r\n $targetItem.insertAfter($(prevItem))\r\n } else {\r\n $targetItem.insertBefore($(item))\r\n }\r\n },\r\n _getDragStartArgs(e, $itemElement) {\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: this._getElementIndex($itemElement)\r\n })\r\n },\r\n _getEventArgs(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n var dropInsideItem = targetDraggable.option(\"dropInsideItem\");\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: sourceDraggable.option(\"fromIndex\"),\r\n toIndex: this._normalizeToIndex(targetDraggable.option(\"toIndex\"), dropInsideItem),\r\n dropInsideItem: dropInsideItem\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name\r\n } = args;\r\n switch (name) {\r\n case \"onDragChange\":\r\n case \"onPlaceholderPrepared\":\r\n case \"onAdd\":\r\n case \"onRemove\":\r\n case \"onReorder\":\r\n this[\"_\".concat(name, \"Action\")] = this._createActionByOption(name);\r\n break;\r\n case \"itemOrientation\":\r\n case \"allowDropInsideItem\":\r\n case \"moveItemOnDrop\":\r\n case \"dropFeedbackMode\":\r\n case \"itemPoints\":\r\n case \"animation\":\r\n case \"allowReordering\":\r\n case \"fromIndexOffset\":\r\n case \"offset\":\r\n case \"draggableElementSize\":\r\n case \"autoUpdate\":\r\n break;\r\n case \"fromIndex\":\r\n [false, true].forEach(isDragSource => {\r\n var fromIndex = isDragSource ? args.value : args.previousValue;\r\n if (null !== fromIndex) {\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n this._toggleDragSourceClass(isDragSource, $fromElement)\r\n }\r\n });\r\n break;\r\n case \"dropInsideItem\":\r\n this._optionChangedDropInsideItem(args);\r\n break;\r\n case \"toIndex\":\r\n this._optionChangedToIndex(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _optionChangedDropInsideItem() {\r\n if (this._isIndicateMode() && this._$placeholderElement) {\r\n this._movePlaceholder()\r\n }\r\n },\r\n _isPositionVisible(position) {\r\n var $element = this.$element();\r\n var scrollContainer;\r\n if (\"hidden\" !== $element.css(\"overflow\")) {\r\n scrollContainer = $element.get(0)\r\n } else {\r\n $element.parents().each((function() {\r\n if (\"visible\" !== $(this).css(\"overflow\")) {\r\n scrollContainer = this;\r\n return false\r\n }\r\n return\r\n }))\r\n }\r\n if (scrollContainer) {\r\n var clientRect = getBoundingRect(scrollContainer);\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var start = isVerticalOrientation ? \"top\" : \"left\";\r\n var end = isVerticalOrientation ? \"bottom\" : \"right\";\r\n var pageOffset = isVerticalOrientation ? window.pageYOffset : window.pageXOffset;\r\n if (position[start] < clientRect[start] + pageOffset || position[start] > clientRect[end] + pageOffset) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _optionChangedToIndex(args) {\r\n var toIndex = args.value;\r\n if (this._isIndicateMode()) {\r\n var showPlaceholder = null !== toIndex && toIndex >= 0;\r\n this._togglePlaceholder(showPlaceholder);\r\n if (showPlaceholder) {\r\n this._movePlaceholder()\r\n }\r\n } else {\r\n this._moveItems(args.previousValue, args.value, args.fullUpdate)\r\n }\r\n },\r\n update() {\r\n if (null === this.option(\"fromIndex\") && null === this.option(\"toIndex\")) {\r\n return\r\n }\r\n this._updateItemPoints(true);\r\n this._updateDragSourceClass();\r\n var toIndex = this.option(\"toIndex\");\r\n this._optionChangedToIndex({\r\n value: toIndex,\r\n fullUpdate: true\r\n })\r\n },\r\n _updateDragSourceClass() {\r\n var fromIndex = this._getActualFromIndex();\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n if ($fromElement.length) {\r\n this._$sourceElement = $fromElement;\r\n this._toggleDragSourceClass(true, $fromElement)\r\n }\r\n },\r\n _makeLeftCorrection(left) {\r\n var $scrollable = this._$scrollable;\r\n if ($scrollable && this._isVerticalOrientation()) {\r\n var overflowLeft = $scrollable.offset().left - left;\r\n if (overflowLeft > 0) {\r\n left += overflowLeft\r\n }\r\n }\r\n return left\r\n },\r\n _movePlaceholder() {\r\n var $placeholderElement = this._$placeholderElement || this._createPlaceholder();\r\n if (!$placeholderElement) {\r\n return\r\n }\r\n var items = this._getItems();\r\n var toIndex = this.option(\"toIndex\");\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var position = null;\r\n var itemElement = items[toIndex];\r\n if (itemElement) {\r\n var $itemElement = $(itemElement);\r\n position = $itemElement.offset();\r\n if (!isVerticalOrientation && rtlEnabled && !dropInsideItem) {\r\n position.left += getOuterWidth($itemElement, true)\r\n }\r\n } else {\r\n var prevVisibleItemElement = itemElement = this._getPrevVisibleItem(items, toIndex);\r\n if (prevVisibleItemElement) {\r\n position = $(prevVisibleItemElement).offset();\r\n if (isVerticalOrientation) {\r\n position.top += getOuterHeight(prevVisibleItemElement, true)\r\n } else if (!rtlEnabled) {\r\n position.left += getOuterWidth(prevVisibleItemElement, true)\r\n }\r\n }\r\n }\r\n this._updatePlaceholderSizes($placeholderElement, itemElement);\r\n if (position && !this._isPositionVisible(position)) {\r\n position = null\r\n }\r\n if (position) {\r\n var isLastVerticalPosition = isVerticalOrientation && toIndex === items.length;\r\n var outerPlaceholderHeight = getOuterHeight($placeholderElement);\r\n position.left = this._makeLeftCorrection(position.left);\r\n position.top = isLastVerticalPosition && position.top >= outerPlaceholderHeight ? position.top - outerPlaceholderHeight : position.top;\r\n this._move(position, $placeholderElement)\r\n }\r\n $placeholderElement.toggle(!!position)\r\n },\r\n _getPositions(items, elementSize, fromIndex, toIndex) {\r\n var positions = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var position = 0;\r\n if (null === toIndex || null === fromIndex) {\r\n positions.push(position);\r\n continue\r\n }\r\n if (-1 === fromIndex) {\r\n if (i >= toIndex) {\r\n position = elementSize\r\n }\r\n } else if (-1 === toIndex) {\r\n if (i > fromIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex < toIndex) {\r\n if (i > fromIndex && i < toIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex > toIndex) {\r\n if (i >= toIndex && i < fromIndex) {\r\n position = elementSize\r\n }\r\n }\r\n positions.push(position)\r\n }\r\n return positions\r\n },\r\n _getDraggableElementSize(isVerticalOrientation) {\r\n var $draggableItem = this._getDraggableElement();\r\n var size = this.option(\"draggableElementSize\");\r\n if (!size) {\r\n size = isVerticalOrientation ? (getOuterHeight($draggableItem) + getOuterHeight($draggableItem, true)) / 2 : (getOuterWidth($draggableItem) + getOuterWidth($draggableItem, true)) / 2;\r\n if (!this.option(\"autoUpdate\")) {\r\n this.option(\"draggableElementSize\", size)\r\n }\r\n }\r\n return size\r\n },\r\n _getActualFromIndex() {\r\n var {\r\n fromIndex: fromIndex,\r\n fromIndexOffset: fromIndexOffset,\r\n offset: offset\r\n } = this.option();\r\n return null == fromIndex ? null : fromIndex + fromIndexOffset - offset\r\n },\r\n _moveItems(prevToIndex, toIndex, fullUpdate) {\r\n var fromIndex = this._getActualFromIndex();\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var positionPropName = isVerticalOrientation ? \"top\" : \"left\";\r\n var elementSize = this._getDraggableElementSize(isVerticalOrientation);\r\n var items = this._getItems();\r\n var prevPositions = this._getPositions(items, elementSize, fromIndex, prevToIndex);\r\n var positions = this._getPositions(items, elementSize, fromIndex, toIndex);\r\n var animationConfig = this.option(\"animation\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n for (var i = 0; i < items.length; i++) {\r\n var itemElement = items[i];\r\n var prevPosition = prevPositions[i];\r\n var position = positions[i];\r\n if (null === toIndex || null === fromIndex) {\r\n stopAnimation(itemElement)\r\n } else if (prevPosition !== position || fullUpdate && position) {\r\n animate(itemElement, extend({}, animationConfig, {\r\n to: {\r\n [positionPropName]: !isVerticalOrientation && rtlEnabled ? -position : position\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n _toggleDragSourceClass(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n this.callBase.apply(this, arguments);\r\n if (!this._isIndicateMode()) {\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source-hidden\"), value)\r\n }\r\n },\r\n _dispose() {\r\n this.reset();\r\n this.callBase()\r\n },\r\n _fireAddEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onAdd\")(args);\r\n return args.cancel\r\n },\r\n _fireRemoveEvent(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var args = this._getEventArgs(sourceEvent);\r\n sourceDraggable._getAction(\"onRemove\")(args);\r\n return args.cancel\r\n },\r\n _fireReorderEvent(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onReorder\")(args);\r\n return args.promise || Deferred().resolve()\r\n }\r\n});\r\nregisterComponent(SORTABLE, Sortable);\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/ui/sortable.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Sortable from \"../__internal/m_sortable\";\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/ui/tag_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport devices from \"../core/devices\";\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nimport {\r\n SelectionFilterCreator as FilterCreator\r\n} from \"../core/utils/selection_filter\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n removeDuplicates,\r\n getIntersection\r\n} from \"../core/utils/array\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nimport {\r\n name as clickEvent\r\n} from \"../events/click\";\r\nimport caret from \"./text_box/utils.caret\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../data/data_source/utils\";\r\nimport Guid from \"../core/guid\";\r\nimport SelectBox from \"./select_box\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n allowScroll\r\n} from \"./text_box/utils.scroll\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar TAGBOX_TAG_DATA_KEY = \"dxTagData\";\r\nvar TAGBOX_CLASS = \"dx-tagbox\";\r\nvar TAGBOX_TAG_CONTAINER_CLASS = \"dx-tag-container\";\r\nvar TAGBOX_TAG_CLASS = \"dx-tag\";\r\nvar TAGBOX_MULTI_TAG_CLASS = \"dx-tagbox-multi-tag\";\r\nvar TAGBOX_CUSTOM_TAG_CLASS = \"dx-tag-custom\";\r\nvar TAGBOX_TAG_REMOVE_BUTTON_CLASS = \"dx-tag-remove-button\";\r\nvar TAGBOX_ONLY_SELECT_CLASS = \"dx-tagbox-only-select\";\r\nvar TAGBOX_SINGLE_LINE_CLASS = \"dx-tagbox-single-line\";\r\nvar TAGBOX_POPUP_WRAPPER_CLASS = \"dx-tagbox-popup-wrapper\";\r\nvar TAGBOX_TAG_CONTENT_CLASS = \"dx-tag-content\";\r\nvar TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS = \"dx-tagbox-default-template\";\r\nvar TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS = \"dx-tagbox-custom-template\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER = -.3;\r\nvar TagBox = SelectBox.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n var sendToList = options => this._list._keyboardHandler(options);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n return extend({}, parent, {\r\n backspace: function(e) {\r\n if (!this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag || this._tagElements().last();\r\n if (this._$focusedTag) {\r\n this._moveTagFocus(\"prev\", true)\r\n }\r\n if (0 === $tagToDelete.length) {\r\n return\r\n }\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n upArrow: (e, opts) => e.altKey || !this._list ? parent.upArrow.call(this, e) : sendToList(opts),\r\n downArrow: (e, opts) => e.altKey || !this._list ? parent.downArrow.call(this, e) : sendToList(opts),\r\n del: function(e) {\r\n if (!this._$focusedTag || !this._isCaretAtTheStart()) {\r\n return\r\n }\r\n this._processKeyboardEvent(e);\r\n this._isTagRemoved = true;\r\n var $tagToDelete = this._$focusedTag;\r\n this._moveTagFocus(\"next\", true);\r\n this._preserveFocusedTag = true;\r\n this._removeTagElement($tagToDelete);\r\n delete this._preserveFocusedTag\r\n },\r\n enter: function(e, options) {\r\n var isListItemFocused = this._list && null !== this._list.option(\"focusedElement\");\r\n var isCustomItem = this.option(\"acceptCustomValue\") && !isListItemFocused;\r\n if (isCustomItem) {\r\n e.preventDefault();\r\n \"\" !== this._searchValue() && this._customItemAddedHandler(e);\r\n return\r\n }\r\n if (this.option(\"opened\")) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n space: function(e, options) {\r\n var isOpened = this.option(\"opened\");\r\n var isInputActive = this._shouldRenderSearchEvent();\r\n if (isOpened && !isInputActive) {\r\n this._saveValueChangeEvent(e);\r\n sendToList(options);\r\n e.preventDefault()\r\n }\r\n },\r\n leftArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"next\" : \"prev\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n },\r\n rightArrow: function(e) {\r\n if (!this._isCaretAtTheStart() || this._isEmpty() || this._isEditable() && !rtlEnabled && !this._$focusedTag) {\r\n return\r\n }\r\n e.preventDefault();\r\n var direction = rtlEnabled ? \"prev\" : \"next\";\r\n this._moveTagFocus(direction);\r\n !this.option(\"multiline\") && this._scrollContainer(direction)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _isEmpty: function() {\r\n return 0 === this._getValue().length\r\n },\r\n _updateTagsContainer: function($element) {\r\n this._$tagsContainer = $element.addClass(TAGBOX_TAG_CONTAINER_CLASS)\r\n },\r\n _allowSelectItemByTab: function() {\r\n return false\r\n },\r\n _isCaretAtTheStart: function() {\r\n var position = caret(this._input());\r\n return 0 === position.start && 0 === position.end\r\n },\r\n _updateInputAriaActiveDescendant(id) {\r\n this.setAria(\"activedescendant\", id, this._input())\r\n },\r\n _moveTagFocus: function(direction, clearOnBoundary) {\r\n if (!this._$focusedTag) {\r\n var tagElements = this._tagElements();\r\n this._$focusedTag = \"next\" === direction ? tagElements.first() : tagElements.last();\r\n this._toggleFocusClass(true, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant(this._$focusedTag.attr(\"id\"));\r\n return\r\n }\r\n var $nextFocusedTag = this._$focusedTag[direction](\".\".concat(TAGBOX_TAG_CLASS));\r\n if ($nextFocusedTag.length > 0) {\r\n this._replaceFocusedTag($nextFocusedTag);\r\n this._updateInputAriaActiveDescendant($nextFocusedTag.attr(\"id\"))\r\n } else if (clearOnBoundary || \"next\" === direction && this._isEditable()) {\r\n this._clearTagFocus();\r\n this._updateInputAriaActiveDescendant()\r\n }\r\n },\r\n _replaceFocusedTag: function($nextFocusedTag) {\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._$focusedTag = $nextFocusedTag;\r\n this._toggleFocusClass(true, this._$focusedTag)\r\n },\r\n _clearTagFocus: function() {\r\n if (!this._$focusedTag) {\r\n return\r\n }\r\n this._toggleFocusClass(false, this._$focusedTag);\r\n this._updateInputAriaActiveDescendant();\r\n delete this._$focusedTag\r\n },\r\n _focusClassTarget: function($element) {\r\n if ($element && $element.length && $element[0] !== this._focusTarget()[0]) {\r\n return $element\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelContainer: function() {\r\n return this._$tagsContainer\r\n },\r\n _getFieldElement() {\r\n return this._input()\r\n },\r\n _scrollContainer: function(direction) {\r\n if (this.option(\"multiline\") || !hasWindow()) {\r\n return\r\n }\r\n if (!this._$tagsContainer) {\r\n return\r\n }\r\n var scrollPosition = this._getScrollPosition(direction);\r\n this._$tagsContainer.scrollLeft(scrollPosition)\r\n },\r\n _getScrollPosition: function(direction) {\r\n if (\"start\" === direction || \"end\" === direction) {\r\n return this._getBorderPosition(direction)\r\n }\r\n return this._$focusedTag ? this._getFocusedTagPosition(direction) : this._getBorderPosition(\"end\")\r\n },\r\n _getBorderPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"end\" === direction ^ rtlEnabled;\r\n var scrollSign = rtlEnabled ? -1 : 1;\r\n return isScrollLeft ^ !rtlEnabled ? 0 : scrollSign * (this._$tagsContainer.get(0).scrollWidth - getOuterWidth(this._$tagsContainer))\r\n },\r\n _getFocusedTagPosition: function(direction) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isScrollLeft = \"next\" === direction ^ rtlEnabled;\r\n var {\r\n left: scrollOffset\r\n } = this._$focusedTag.position();\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n if (isScrollLeft) {\r\n scrollOffset += getOuterWidth(this._$focusedTag, true) - getOuterWidth(this._$tagsContainer)\r\n }\r\n if (isScrollLeft ^ scrollOffset < 0) {\r\n scrollLeft += scrollOffset\r\n }\r\n return scrollLeft\r\n },\r\n _setNextValue: noop,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: [],\r\n showDropDownButton: false,\r\n maxFilterQueryLength: 1500,\r\n tagTemplate: \"tag\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n hideSelectedItems: false,\r\n selectedItems: [],\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n maxDisplayedTags: void 0,\r\n showMultiTagOnly: true,\r\n onMultiTagPreparing: null,\r\n multiline: true,\r\n useSubmitBehavior: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._selectedItems = [];\r\n this._initSelectAllValueChangedAction()\r\n },\r\n _initActions: function() {\r\n this.callBase();\r\n this._initMultiTagPreparingAction()\r\n },\r\n _initMultiTagPreparingAction: function() {\r\n this._multiTagPreparingAction = this._createActionByOption(\"onMultiTagPreparing\", {\r\n beforeExecute: function(e) {\r\n this._multiTagPreparingHandler(e.args[0])\r\n }.bind(this),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _multiTagPreparingHandler: function(args) {\r\n var {\r\n length: selectedCount\r\n } = this._getValue();\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-moreSelected\")(selectedCount - this.option(\"maxDisplayedTags\") + 1)\r\n } else {\r\n args.text = messageLocalization.getFormatter(\"dxTagBox-selected\")(selectedCount)\r\n }\r\n },\r\n _initDynamicTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n tag: new BindableTemplate(($container, data) => {\r\n var _data$text;\r\n var $tagContent = $(\"<div>\").addClass(TAGBOX_TAG_CONTENT_CLASS);\r\n $(\"<span>\").text(null !== (_data$text = data.text) && void 0 !== _data$text ? _data$text : data).appendTo($tagContent);\r\n $(\"<div>\").addClass(TAGBOX_TAG_REMOVE_BUTTON_CLASS).appendTo($tagContent);\r\n $container.append($tagContent)\r\n }, [\"text\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter\r\n })\r\n })\r\n },\r\n _toggleSubmitElement: function(enabled) {\r\n if (enabled) {\r\n this._renderSubmitElement();\r\n this._setSubmitValue()\r\n } else {\r\n this._$submitElement && this._$submitElement.remove();\r\n delete this._$submitElement\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n this._$submitElement = $(\"<select>\").attr({\r\n multiple: \"multiple\",\r\n \"aria-label\": \"Selected items\"\r\n }).css(\"display\", \"none\").appendTo(this.$element())\r\n },\r\n _setSubmitValue: function() {\r\n if (!this.option(\"useSubmitBehavior\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var $options = [];\r\n for (var i = 0, n = value.length; i < n; i++) {\r\n var useDisplayText = this._shouldUseDisplayValue(value[i]);\r\n $options.push($(\"<option>\").val(useDisplayText ? this._displayGetter(value[i]) : value[i]).attr(\"selected\", \"selected\"))\r\n }\r\n this._getSubmitElement().empty().append($options)\r\n },\r\n _initMarkup: function() {\r\n this._tagElementsCache = $();\r\n var isSingleLineMode = !this.option(\"multiline\");\r\n this.$element().addClass(TAGBOX_CLASS).toggleClass(TAGBOX_ONLY_SELECT_CLASS, !(this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\"))).toggleClass(TAGBOX_SINGLE_LINE_CLASS, isSingleLineMode);\r\n this.setAria({\r\n role: \"group\",\r\n roledescription: \"tagbox\"\r\n }, this.$element());\r\n this._initTagTemplate();\r\n this.callBase()\r\n },\r\n _getNewLabelId(actualId, newId, shouldRemove) {\r\n if (!actualId) {\r\n return newId\r\n }\r\n if (shouldRemove) {\r\n if (actualId === newId) {\r\n return\r\n }\r\n return actualId.split(\" \").filter(id => id !== newId).join(\" \")\r\n }\r\n return \"\".concat(actualId, \" \").concat(newId)\r\n },\r\n _updateElementAria(id, shouldRemove) {\r\n var shouldClearLabel = !id;\r\n if (shouldClearLabel) {\r\n this.setAria(\"labelledby\", void 0, this.$element());\r\n return\r\n }\r\n var labelId = this.$element().attr(\"aria-labelledby\");\r\n var newLabelId = this._getNewLabelId(labelId, id, shouldRemove);\r\n this.setAria(\"labelledby\", newLabelId, this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderTagRemoveAction();\r\n this._renderSingleLineScroll();\r\n this._scrollContainer(\"start\")\r\n },\r\n _initTagTemplate: function() {\r\n this._tagTemplate = this._getTemplateByOption(\"tagTemplate\")\r\n },\r\n _renderField: function() {\r\n var isDefaultFieldTemplate = !isDefined(this.option(\"fieldTemplate\"));\r\n this.$element().toggleClass(TAGBOX_DEFAULT_FIELD_TEMPLATE_CLASS, isDefaultFieldTemplate).toggleClass(TAGBOX_CUSTOM_FIELD_TEMPLATE_CLASS, !isDefaultFieldTemplate);\r\n this.callBase()\r\n },\r\n _renderTagRemoveAction: function() {\r\n var tagRemoveAction = this._createAction(this._removeTagHandler.bind(this));\r\n var eventName = addNamespace(clickEvent, \"dxTagBoxTagRemove\");\r\n eventsEngine.off(this._$tagsContainer, eventName);\r\n eventsEngine.on(this._$tagsContainer, eventName, \".\".concat(TAGBOX_TAG_REMOVE_BUTTON_CLASS), event => {\r\n tagRemoveAction({\r\n event: event\r\n })\r\n })\r\n },\r\n _renderSingleLineScroll: function() {\r\n var mouseWheelEvent = addNamespace(\"dxmousewheel\", this.NAME);\r\n var $element = this.$element();\r\n var isMultiline = this.option(\"multiline\");\r\n eventsEngine.off($element, mouseWheelEvent);\r\n if (\"desktop\" !== devices.real().deviceType) {\r\n this._$tagsContainer && this._$tagsContainer.css(\"overflowX\", isMultiline ? \"\" : \"auto\");\r\n return\r\n }\r\n if (isMultiline) {\r\n return\r\n }\r\n eventsEngine.on($element, mouseWheelEvent, this._tagContainerMouseWheelHandler.bind(this))\r\n },\r\n _tagContainerMouseWheelHandler: function(e) {\r\n var scrollLeft = this._$tagsContainer.scrollLeft();\r\n var delta = e.delta * TAGBOX_MOUSE_WHEEL_DELTA_MULTIPLIER;\r\n if (!isCommandKeyPressed(e) && allowScroll(this._$tagsContainer, delta, true)) {\r\n this._$tagsContainer.scrollLeft(scrollLeft + delta);\r\n return false\r\n }\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n var input = this._input();\r\n var namespace = addNamespace(\"keydown\", this.NAME);\r\n eventsEngine.on(input, namespace, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (!this._isControlKey(keyName) && this._isEditable()) {\r\n this._clearTagFocus()\r\n }\r\n })\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + TAGBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderPreventBlurOnInputClick()\r\n },\r\n _renderPreventBlurOnInputClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxTagBox\");\r\n eventsEngine.off(this._inputWrapper(), eventName);\r\n eventsEngine.on(this._inputWrapper(), eventName, e => {\r\n if (e.target !== this._input()[0] && this._isFocused()) {\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _renderInputValueImpl: function() {\r\n return this._renderMultiSelect()\r\n },\r\n _loadInputValue: function() {\r\n return when()\r\n },\r\n _clearTextValue: function() {\r\n this._input().val(\"\");\r\n this._toggleEmptinessEventHandler();\r\n this.option(\"text\", \"\")\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this.callBase(e)\r\n },\r\n _renderInputValue: function() {\r\n this.option(\"displayValue\", this._searchValue());\r\n return this.callBase()\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (!saveEditingValue) {\r\n this._clearTextValue()\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this._clearTagFocus();\r\n this._scrollContainer(\"start\")\r\n }\r\n this.callBase(e)\r\n },\r\n _getFirstPopupElement: function() {\r\n return this.option(\"showSelectionControls\") ? this._list._focusTarget() : this.callBase()\r\n },\r\n _initSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangeAction = this._createActionByOption(\"onSelectAllValueChanged\")\r\n },\r\n _renderList: function() {\r\n this.callBase();\r\n this._setListDataSourceFilter();\r\n if (this.option(\"showSelectionControls\")) {\r\n this._list.registerKeyHandler(\"tab\", e => this._popupElementTabHandler(e));\r\n this._list.registerKeyHandler(\"escape\", e => this._popupElementEscHandler(e))\r\n }\r\n },\r\n _canListHaveFocus: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\")\r\n },\r\n _listConfig: function() {\r\n var selectionMode = this.option(\"showSelectionControls\") ? \"all\" : \"multiple\";\r\n return extend(this.callBase(), {\r\n selectionMode: selectionMode,\r\n selectAllText: this.option(\"selectAllText\"),\r\n onSelectAllValueChanged: _ref => {\r\n var {\r\n value: value\r\n } = _ref;\r\n this._selectAllValueChangeAction({\r\n value: value\r\n })\r\n },\r\n selectAllMode: this.option(\"selectAllMode\"),\r\n selectedItems: this._selectedItems,\r\n onFocusedItemChanged: null\r\n })\r\n },\r\n _renderMultiSelect: function() {\r\n var d = new Deferred;\r\n this._updateTagsContainer(this._$textEditorInputContainer);\r\n this._renderInputSize();\r\n this._renderTags().done(() => {\r\n this._popup && this._popup.refreshPosition();\r\n d.resolve()\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _listItemClickHandler: function(e) {\r\n !this.option(\"showSelectionControls\") && this._clearTextValue();\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n this.callBase(e);\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _shouldClearFilter: function() {\r\n var shouldClearFilter = this.callBase();\r\n var showSelectionControls = this.option(\"showSelectionControls\");\r\n return !showSelectionControls && shouldClearFilter\r\n },\r\n _renderInputSize: function() {\r\n var $input = this._input();\r\n var value = $input.val();\r\n var isEmptyInput = isString(value) && value;\r\n var width = \"\";\r\n var size = \"\";\r\n var canTypeText = this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\");\r\n if (isEmptyInput && canTypeText) {\r\n var $calculationElement = createTextElementHiddenCopy($input, value, {\r\n includePaddings: true\r\n });\r\n $calculationElement.insertAfter($input);\r\n width = getOuterWidth($calculationElement) + 5;\r\n $calculationElement.remove()\r\n } else if (!value) {\r\n size = 1\r\n }\r\n $input.css(\"width\", width);\r\n $input.attr(\"size\", size)\r\n },\r\n _renderInputSubstitution: function() {\r\n this.callBase();\r\n this._updateWidgetHeight()\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || []\r\n },\r\n _multiTagRequired: function() {\r\n var values = this._getValue();\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n return isDefined(maxDisplayedTags) && values.length > maxDisplayedTags\r\n },\r\n _renderMultiTag: function($input) {\r\n var $tag = $(\"<div>\").addClass(TAGBOX_TAG_CLASS).addClass(TAGBOX_MULTI_TAG_CLASS);\r\n var args = {\r\n multiTagElement: getPublicElement($tag),\r\n selectedItems: this.option(\"selectedItems\")\r\n };\r\n this._multiTagPreparingAction(args);\r\n if (args.cancel) {\r\n return false\r\n }\r\n $tag.data(TAGBOX_TAG_DATA_KEY, args.text);\r\n $tag.insertBefore($input);\r\n this._tagTemplate.render({\r\n model: args.text,\r\n container: getPublicElement($tag)\r\n });\r\n return $tag\r\n },\r\n _getFilter: function(creator) {\r\n var dataSourceFilter = this._dataController.filter();\r\n var filterExpr = creator.getCombinedFilter(this.option(\"valueExpr\"), dataSourceFilter);\r\n var filterQueryLength = encodeURI(JSON.stringify(filterExpr)).length;\r\n var maxFilterQueryLength = this.option(\"maxFilterQueryLength\");\r\n if (filterQueryLength <= maxFilterQueryLength) {\r\n return filterExpr\r\n }\r\n errors.log(\"W1019\", maxFilterQueryLength)\r\n },\r\n _getFilteredItems: function(values) {\r\n var _this$_loadFilteredIt, _this$_list;\r\n null === (_this$_loadFilteredIt = this._loadFilteredItemsPromise) || void 0 === _this$_loadFilteredIt ? void 0 : _this$_loadFilteredIt.reject();\r\n var creator = new FilterCreator(values);\r\n var listSelectedItems = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.option(\"selectedItems\");\r\n var isListItemsLoaded = !!listSelectedItems && this._list._dataController.isLoaded();\r\n var selectedItems = listSelectedItems || this.option(\"selectedItems\");\r\n var clientFilterFunction = creator.getLocalFilter(this._valueGetter);\r\n var filteredItems = selectedItems.filter(clientFilterFunction);\r\n var selectedItemsAlreadyLoaded = filteredItems.length === values.length;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n if ((!this._isDataSourceChanged || isListItemsLoaded) && selectedItemsAlreadyLoaded) {\r\n return d.resolve(filteredItems).promise()\r\n } else {\r\n var {\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n } = dataController.loadOptions();\r\n var filter = this._getFilter(creator);\r\n dataController.loadFromStore({\r\n filter: filter,\r\n customQueryParams: customQueryParams,\r\n expand: expand,\r\n select: select\r\n }).done((data, extra) => {\r\n this._isDataSourceChanged = false;\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n var {\r\n data: items\r\n } = normalizeLoadResult(data, extra);\r\n var mappedItems = dataController.applyMapFunction(items);\r\n d.resolve(mappedItems.filter(clientFilterFunction))\r\n }).fail(d.reject);\r\n this._loadFilteredItemsPromise = d;\r\n return d.promise()\r\n }\r\n },\r\n _createTagsData: function(values, filteredItems) {\r\n var items = [];\r\n var cache = {};\r\n var isValueExprSpecified = \"this\" === this._valueGetterExpr();\r\n var filteredValues = {};\r\n filteredItems.forEach(filteredItem => {\r\n var filteredItemValue = isValueExprSpecified ? JSON.stringify(filteredItem) : this._valueGetter(filteredItem);\r\n filteredValues[filteredItemValue] = filteredItem\r\n });\r\n var loadItemPromises = [];\r\n values.forEach((value, index) => {\r\n var currentItem = filteredValues[isValueExprSpecified ? JSON.stringify(value) : value];\r\n if (isValueExprSpecified && !isDefined(currentItem)) {\r\n loadItemPromises.push(this._loadItem(value, cache).always(item => {\r\n var newItem = this._createTagData(items, item, value, index);\r\n items.splice(index, 0, newItem)\r\n }))\r\n } else {\r\n var newItem = this._createTagData(items, currentItem, value, index);\r\n items.splice(index, 0, newItem)\r\n }\r\n });\r\n var d = new Deferred;\r\n when.apply(this, loadItemPromises).always((function() {\r\n d.resolve(items)\r\n }));\r\n return d.promise()\r\n },\r\n _createTagData: function(items, item, value, valueIndex) {\r\n if (isDefined(item)) {\r\n this._selectedItems.push(item);\r\n return item\r\n } else {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var customItem = this._valueGetter(selectedItem) === value ? selectedItem : value;\r\n return customItem\r\n }\r\n },\r\n _isGroupedData: function() {\r\n return this.option(\"grouped\") && !this._dataController.group()\r\n },\r\n _getItemsByValues: function(values) {\r\n var resultItems = [];\r\n values.forEach(function(value) {\r\n var item = this._getItemFromPlain(value);\r\n if (isDefined(item)) {\r\n resultItems.push(item)\r\n }\r\n }.bind(this));\r\n return resultItems\r\n },\r\n _getFilteredGroupedItems: function(values) {\r\n var selectedItems = new Deferred;\r\n if (this._filteredGroupedItemsLoadPromise) {\r\n this._dataController.cancel(this._filteredGroupedItemsLoadPromise.operationId)\r\n }\r\n if (!this._dataController.items().length) {\r\n this._filteredGroupedItemsLoadPromise = this._dataController.load().done(() => {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }).fail(() => {\r\n selectedItems.resolve([])\r\n }).always(() => {\r\n this._filteredGroupedItemsLoadPromise = void 0\r\n })\r\n } else {\r\n selectedItems.resolve(this._getItemsByValues(values))\r\n }\r\n return selectedItems.promise()\r\n },\r\n _loadTagsData: function() {\r\n var values = this._getValue();\r\n var tagData = new Deferred;\r\n this._selectedItems = [];\r\n var filteredItemsPromise = this._isGroupedData() ? this._getFilteredGroupedItems(values) : this._getFilteredItems(values);\r\n filteredItemsPromise.done(filteredItems => {\r\n var items = this._createTagsData(values, filteredItems);\r\n items.always((function(data) {\r\n tagData.resolve(data)\r\n }))\r\n }).fail(tagData.reject.bind(this));\r\n return tagData.promise()\r\n },\r\n _renderTags: function() {\r\n var d = new Deferred;\r\n var isPlainDataUsed = false;\r\n if (this._shouldGetItemsFromPlain(this._valuesToUpdate)) {\r\n this._selectedItems = this._getItemsFromPlain(this._valuesToUpdate);\r\n if (this._selectedItems.length === this._valuesToUpdate.length) {\r\n this._renderTagsImpl(this._selectedItems);\r\n isPlainDataUsed = true;\r\n d.resolve()\r\n }\r\n }\r\n if (!isPlainDataUsed) {\r\n this._loadTagsData().done(items => {\r\n if (this._disposed) {\r\n d.reject();\r\n return\r\n }\r\n this._renderTagsImpl(items);\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _renderTagsImpl: function(items) {\r\n this._renderTagsCore(items);\r\n this._renderEmptyState();\r\n if (!this._preserveFocusedTag) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _shouldGetItemsFromPlain: function(values) {\r\n return values && this._dataController.isLoaded() && values.length <= this._getPlainItems().length\r\n },\r\n _getItemsFromPlain: function(values) {\r\n var selectedItems = this._getSelectedItemsFromList(values);\r\n var needFilterPlainItems = 0 === selectedItems.length && values.length > 0 || selectedItems.length < values.length;\r\n if (needFilterPlainItems) {\r\n var plainItems = this._getPlainItems();\r\n selectedItems = this._filterSelectedItems(plainItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _getSelectedItemsFromList: function(values) {\r\n var _this$_list2;\r\n var listSelectedItems = null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"selectedItems\");\r\n var selectedItems = [];\r\n if (values.length === (null === listSelectedItems || void 0 === listSelectedItems ? void 0 : listSelectedItems.length)) {\r\n selectedItems = this._filterSelectedItems(listSelectedItems, values)\r\n }\r\n return selectedItems\r\n },\r\n _filterSelectedItems: function(plainItems, values) {\r\n var selectedItems = plainItems.filter(dataItem => {\r\n var currentValue;\r\n for (var i = 0; i < values.length; i++) {\r\n currentValue = values[i];\r\n if (isObject(currentValue)) {\r\n if (this._isValueEquals(dataItem, currentValue)) {\r\n return true\r\n }\r\n } else if (this._isValueEquals(this._valueGetter(dataItem), currentValue)) {\r\n return true\r\n }\r\n }\r\n return false\r\n }, this);\r\n return selectedItems\r\n },\r\n _integrateInput: function() {\r\n this._isInputReady.resolve();\r\n this.callBase();\r\n var tagsContainer = this.$element().find(\".\".concat(TEXTEDITOR_INPUT_CONTAINER_CLASS));\r\n this._updateTagsContainer(tagsContainer);\r\n this._renderTagRemoveAction()\r\n },\r\n _renderTagsCore: function(items) {\r\n var _this$_isInputReady;\r\n null === (_this$_isInputReady = this._isInputReady) || void 0 === _this$_isInputReady ? void 0 : _this$_isInputReady.reject();\r\n this._isInputReady = new Deferred;\r\n this._renderField();\r\n this.option(\"selectedItems\", this._selectedItems.slice());\r\n this._cleanTags();\r\n if (this._input().length > 0) {\r\n this._isInputReady.resolve()\r\n }\r\n when(this._isInputReady).done(() => {\r\n this._renderTagsElements(items)\r\n })\r\n },\r\n _renderTagsElements(items) {\r\n var $multiTag = this._multiTagRequired() && this._renderMultiTag(this._input());\r\n var showMultiTagOnly = this.option(\"showMultiTagOnly\");\r\n var maxDisplayedTags = this.option(\"maxDisplayedTags\");\r\n items.forEach((item, index) => {\r\n if ($multiTag && showMultiTagOnly || $multiTag && !showMultiTagOnly && index - maxDisplayedTags >= -1) {\r\n return false\r\n }\r\n this._renderTag(item, $multiTag || this._input())\r\n });\r\n if (this._isFocused()) {\r\n this._scrollContainer(\"end\")\r\n }\r\n this._refreshTagElements()\r\n },\r\n _cleanTags: function() {\r\n if (this._multiTagRequired()) {\r\n this._tagElements().remove()\r\n } else {\r\n var $tags = this._tagElements();\r\n var values = this._getValue();\r\n each($tags, (function(_, tag) {\r\n var $tag = $(tag);\r\n var tagData = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n if (!(null !== values && void 0 !== values && values.includes(tagData))) {\r\n $tag.remove()\r\n }\r\n }))\r\n }\r\n this._updateElementAria()\r\n },\r\n _renderEmptyState: function() {\r\n var isEmpty = !(this._getValue().length || this._selectedItems.length || this._searchValue());\r\n this._toggleEmptiness(isEmpty);\r\n this._renderDisplayText()\r\n },\r\n _renderDisplayText: function() {\r\n this._renderInputSize()\r\n },\r\n _refreshTagElements: function() {\r\n this._tagElementsCache = this.$element().find(\".\".concat(TAGBOX_TAG_CLASS))\r\n },\r\n _tagElements: function() {\r\n return this._tagElementsCache\r\n },\r\n _applyTagTemplate: function(item, $tag) {\r\n this._tagTemplate.render({\r\n model: item,\r\n container: getPublicElement($tag)\r\n })\r\n },\r\n _renderTag: function(item, $input) {\r\n var value = this._valueGetter(item);\r\n if (!isDefined(value)) {\r\n return\r\n }\r\n var $tag = this._getTag(value);\r\n var displayValue = this._displayGetter(item);\r\n var itemModel = this._getItemModel(item, displayValue);\r\n if ($tag) {\r\n if (isDefined(displayValue)) {\r\n $tag.empty();\r\n this._applyTagTemplate(itemModel, $tag)\r\n }\r\n $tag.removeClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._updateElementAria($tag.attr(\"id\"))\r\n } else {\r\n var tagId = \"dx-\".concat(new Guid);\r\n $tag = this._createTag(value, $input, tagId);\r\n if (isDefined(item)) {\r\n this._applyTagTemplate(itemModel, $tag)\r\n } else {\r\n $tag.addClass(TAGBOX_CUSTOM_TAG_CLASS);\r\n this._applyTagTemplate(value, $tag)\r\n }\r\n this._updateElementAria(tagId)\r\n }\r\n },\r\n _getItemModel: function(item, displayValue) {\r\n if (isObject(item) && isDefined(displayValue)) {\r\n return item\r\n } else {\r\n return ensureDefined(displayValue, \"\")\r\n }\r\n },\r\n _getTag: function(value) {\r\n var $tags = this._tagElements();\r\n var tagsLength = $tags.length;\r\n var result = false;\r\n for (var i = 0; i < tagsLength; i++) {\r\n var $tag = $tags[i];\r\n var tagData = elementData($tag, TAGBOX_TAG_DATA_KEY);\r\n if (value === tagData || equalByValue(value, tagData)) {\r\n result = $($tag);\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _createTag: function(value, $input, tagId) {\r\n return $(\"<div>\").attr(\"id\", tagId).addClass(TAGBOX_TAG_CLASS).data(TAGBOX_TAG_DATA_KEY, value).insertBefore($input)\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n this._toggleEmptiness(!this._getValue().length && !this._searchValue().length)\r\n },\r\n _customItemAddedHandler: function(e) {\r\n this.callBase(e);\r\n this._clearTextValue()\r\n },\r\n _removeTagHandler: function(args) {\r\n var e = args.event;\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n var $tag = $(e.target).closest(\".\".concat(TAGBOX_TAG_CLASS));\r\n this._removeTagElement($tag)\r\n },\r\n _removeTagElement: function($tag) {\r\n if ($tag.hasClass(TAGBOX_MULTI_TAG_CLASS)) {\r\n if (!this.option(\"showMultiTagOnly\")) {\r\n this.option(\"value\", this._getValue().slice(0, this.option(\"maxDisplayedTags\")))\r\n } else {\r\n this.reset()\r\n }\r\n return\r\n }\r\n var itemValue = $tag.data(TAGBOX_TAG_DATA_KEY);\r\n var itemId = $tag.attr(\"id\");\r\n this._removeTagWithUpdate(itemValue);\r\n this._updateElementAria(itemId, true);\r\n this._refreshTagElements()\r\n },\r\n _updateField: noop,\r\n _removeTagWithUpdate: function(itemValue) {\r\n var value = this._getValue().slice();\r\n this._removeTag(value, itemValue);\r\n this.option(\"value\", value);\r\n if (0 === value.length) {\r\n this._clearTagFocus()\r\n }\r\n },\r\n _getCurrentValue: function() {\r\n return this._lastValue()\r\n },\r\n _selectionChangeHandler: function(e) {\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var value = this._getValue().slice();\r\n each(e.removedItems || [], (_, removedItem) => {\r\n this._removeTag(value, this._valueGetter(removedItem))\r\n });\r\n each(e.addedItems || [], (_, addedItem) => {\r\n this._addTag(value, this._valueGetter(addedItem))\r\n });\r\n this._updateWidgetHeight();\r\n if (!equalByValue(this._list.option(\"selectedItemKeys\"), this.option(\"value\"))) {\r\n var listSelectionChangeEvent = this._list._getSelectionChangeEvent();\r\n listSelectionChangeEvent && this._saveValueChangeEvent(listSelectionChangeEvent);\r\n this.option(\"value\", value)\r\n }\r\n this._list._saveSelectionChangeEvent(void 0)\r\n },\r\n _removeTag: function(value, item) {\r\n var index = this._valueIndex(item, value);\r\n if (index >= 0) {\r\n value.splice(index, 1)\r\n }\r\n },\r\n _addTag: function(value, item) {\r\n var index = this._valueIndex(item);\r\n if (index < 0) {\r\n value.push(item)\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n return this._selectedItems.slice()\r\n },\r\n _completeSelection: function(value) {\r\n if (!this.option(\"showSelectionControls\")) {\r\n this._setValue(value)\r\n }\r\n },\r\n _setValue: function(value) {\r\n if (null === value) {\r\n return\r\n }\r\n var useButtons = \"useButtons\" === this.option(\"applyValueMode\");\r\n var valueIndex = this._valueIndex(value);\r\n var values = (useButtons ? this._list.option(\"selectedItemKeys\") : this._getValue()).slice();\r\n if (valueIndex >= 0) {\r\n values.splice(valueIndex, 1)\r\n } else {\r\n values.push(value)\r\n }\r\n if (\"useButtons\" === this.option(\"applyValueMode\")) {\r\n this._list.option(\"selectedItemKeys\", values)\r\n } else {\r\n this.option(\"value\", values)\r\n }\r\n },\r\n _isSelectedValue: function(value, cache) {\r\n return this._valueIndex(value, null, cache) > -1\r\n },\r\n _valueIndex: function(value, values, cache) {\r\n var result = -1;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.indexByValues) {\r\n cache.indexByValues = {};\r\n values = values || this._getValue();\r\n values.forEach((function(value, index) {\r\n cache.indexByValues[value] = index\r\n }))\r\n }\r\n if (value in cache.indexByValues) {\r\n return cache.indexByValues[value]\r\n }\r\n }\r\n values = values || this._getValue();\r\n each(values, (index, selectedValue) => {\r\n if (this._isValueEquals(value, selectedValue)) {\r\n result = index;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _lastValue: function() {\r\n var values = this._getValue();\r\n var lastValue = values[values.length - 1];\r\n return null !== lastValue && void 0 !== lastValue ? lastValue : null\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\") || this.option(\"acceptCustomValue\")\r\n },\r\n _searchHandler: function(e) {\r\n if (this.option(\"searchEnabled\") && !!e && !this._isTagRemoved) {\r\n this.callBase(arguments);\r\n this._setListDataSourceFilter()\r\n }\r\n this._updateWidgetHeight();\r\n delete this._isTagRemoved\r\n },\r\n _updateWidgetHeight: function() {\r\n var element = this.$element();\r\n var originalHeight = getHeight(element);\r\n this._renderInputSize();\r\n var currentHeight = getHeight(element);\r\n if (this._popup && this.option(\"opened\") && this._isEditable() && currentHeight !== originalHeight) {\r\n this._popup.repaint()\r\n }\r\n },\r\n _refreshSelected: function() {\r\n var _this$_list3;\r\n (null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.getDataSource()) && this._list.option(\"selectedItems\", this._selectedItems)\r\n },\r\n _resetListDataSourceFilter: function() {\r\n var dataController = this._dataController;\r\n delete this._userFilter;\r\n dataController.filter(null);\r\n dataController.reload()\r\n },\r\n _setListDataSourceFilter: function() {\r\n if (!this.option(\"hideSelectedItems\") || !this._list) {\r\n return\r\n }\r\n var dataController = this._dataController;\r\n var valueGetterExpr = this._valueGetterExpr();\r\n if (isString(valueGetterExpr) && \"this\" !== valueGetterExpr) {\r\n var filter = this._dataSourceFilterExpr();\r\n if (void 0 === this._userFilter) {\r\n this._userFilter = dataController.filter() || null\r\n }\r\n this._userFilter && filter.push(this._userFilter);\r\n filter.length ? dataController.filter(filter) : dataController.filter(null)\r\n } else {\r\n dataController.filter(this._dataSourceFilterFunction.bind(this))\r\n }\r\n dataController.load()\r\n },\r\n _dataSourceFilterExpr: function() {\r\n var filter = [];\r\n this._getValue().forEach(value => filter.push([\"!\", [this._valueGetterExpr(), value]]));\r\n return filter\r\n },\r\n _dataSourceFilterFunction: function(itemData) {\r\n var itemValue = this._valueGetter(itemData);\r\n var result = true;\r\n each(this._getValue(), (index, value) => {\r\n if (this._isValueEquals(value, itemValue)) {\r\n result = false;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function() {\r\n this._isDataSourceChanged = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyButtonHandler: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n this.option(\"value\", this._getSortedListValues());\r\n this._clearTextValue();\r\n this.callBase();\r\n this._cancelSearchIfNeed()\r\n },\r\n _getSortedListValues: function() {\r\n var listValues = this._getListValues();\r\n var currentValue = this.option(\"value\") || [];\r\n var existedItems = listValues.length ? getIntersection(currentValue, listValues) : [];\r\n var newItems = existedItems.length ? removeDuplicates(listValues, currentValue) : listValues;\r\n return existedItems.concat(newItems)\r\n },\r\n _getListValues: function() {\r\n if (!this._list) {\r\n return []\r\n }\r\n return this._getPlainItems(this._list.option(\"selectedItems\")).map(item => this._valueGetter(item))\r\n },\r\n _setListDataSource: function() {\r\n var currentValue = this._getValue();\r\n this.callBase();\r\n if (currentValue !== this.option(\"value\")) {\r\n this.option(\"value\", currentValue)\r\n }\r\n this._refreshSelected()\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (\"useButtons\" === this.option(\"applyValueMode\") && !this.option(\"opened\")) {\r\n this._refreshSelected()\r\n }\r\n },\r\n reset: function() {\r\n this._restoreInputText();\r\n var defaultValue = this._getDefaultOptions().value;\r\n var currentValue = this.option(\"value\");\r\n if (defaultValue && 0 === defaultValue.length && currentValue && defaultValue.length === currentValue.length) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._defaultTagTemplate;\r\n delete this._valuesToUpdate;\r\n delete this._tagTemplate\r\n },\r\n _getSelectedItemsDifference(newItems, previousItems) {\r\n if (!newItems.length) {\r\n return {\r\n addedItems: [],\r\n removedItems: previousItems.slice()\r\n }\r\n }\r\n if (!previousItems.length) {\r\n return {\r\n addedItems: newItems.slice(),\r\n removedItems: []\r\n }\r\n }\r\n var previousItemsValuesMap = previousItems.reduce((map, item) => {\r\n var value = this._valueGetter(item);\r\n map[value] = item;\r\n return map\r\n }, {});\r\n var addedItems = [];\r\n newItems.forEach(item => {\r\n var value = this._valueGetter(item);\r\n if (!previousItemsValuesMap[value]) {\r\n addedItems.push(item)\r\n }\r\n delete previousItemsValuesMap[value]\r\n });\r\n return {\r\n addedItems: addedItems,\r\n removedItems: Object.values(previousItemsValuesMap)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"onSelectAllValueChanged\":\r\n this._initSelectAllValueChangedAction();\r\n break;\r\n case \"onMultiTagPreparing\":\r\n this._initMultiTagPreparingAction();\r\n this._renderTags();\r\n break;\r\n case \"hideSelectedItems\":\r\n if (value) {\r\n this._setListDataSourceFilter()\r\n } else {\r\n this._resetListDataSourceFilter()\r\n }\r\n break;\r\n case \"useSubmitBehavior\":\r\n this._toggleSubmitElement(value);\r\n break;\r\n case \"displayExpr\":\r\n this.callBase(args);\r\n this._initTemplates();\r\n this._invalidate();\r\n break;\r\n case \"tagTemplate\":\r\n this._initTagTemplate();\r\n this._invalidate();\r\n break;\r\n case \"selectAllText\":\r\n this._setListOption(\"selectAllText\", this.option(\"selectAllText\"));\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this.callBase(args);\r\n !value && this._refreshEvents();\r\n break;\r\n case \"value\":\r\n this._valuesToUpdate = value;\r\n this.callBase(args);\r\n this._valuesToUpdate = void 0;\r\n this._setListDataSourceFilter();\r\n break;\r\n case \"maxDisplayedTags\":\r\n case \"showMultiTagOnly\":\r\n this._renderTags();\r\n break;\r\n case \"selectAllMode\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"selectedItems\":\r\n this._selectionChangedAction(this._getSelectedItemsDifference(value, previousValue));\r\n break;\r\n case \"multiline\":\r\n this.$element().toggleClass(TAGBOX_SINGLE_LINE_CLASS, !value);\r\n this._renderSingleLineScroll();\r\n break;\r\n case \"maxFilterQueryLength\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getActualSearchValue: function() {\r\n return this.callBase() || this._searchValue()\r\n },\r\n _popupHidingHandler: function() {\r\n this.callBase();\r\n this._clearFilter()\r\n }\r\n});\r\nregisterComponent(\"dxTagBox\", TagBox);\r\nexport default TagBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_area.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n addNamespace,\r\n eventData\r\n} from \"../events/utils/index\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport scrollEvents from \"../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n getVerticalOffsets,\r\n getElementBoxParams,\r\n parseHeight,\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n allowScroll,\r\n prepareScrollData\r\n} from \"./text_box/utils.scroll\";\r\nimport TextBox from \"./text_box\";\r\nvar TEXTAREA_CLASS = \"dx-textarea\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE = \"dx-texteditor-input-auto-resize\";\r\nvar TextArea = TextBox.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n spellcheck: true,\r\n minHeight: void 0,\r\n maxHeight: void 0,\r\n autoResizeEnabled: false\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTAREA_CLASS);\r\n this.callBase();\r\n this.setAria(\"multiline\", \"true\")\r\n },\r\n _renderContentImpl: function() {\r\n this._updateInputHeight();\r\n this.callBase()\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderScrollHandler()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"<textarea>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n this._updateInputAutoResizeAppearance($input);\r\n return $input\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n $input.attr(customAttributes).addClass(TEXTEDITOR_INPUT_CLASS)\r\n },\r\n _renderScrollHandler: function() {\r\n this._eventY = 0;\r\n var $input = this._input();\r\n var initScrollData = prepareScrollData($input, true);\r\n eventsEngine.on($input, addNamespace(scrollEvents.init, this.NAME), initScrollData, noop);\r\n eventsEngine.on($input, addNamespace(pointerEvents.down, this.NAME), this._pointerDownHandler.bind(this));\r\n eventsEngine.on($input, addNamespace(pointerEvents.move, this.NAME), this._pointerMoveHandler.bind(this))\r\n },\r\n _pointerDownHandler: function(e) {\r\n this._eventY = eventData(e).y\r\n },\r\n _pointerMoveHandler: function(e) {\r\n var currentEventY = eventData(e).y;\r\n var delta = this._eventY - currentEventY;\r\n if (allowScroll(this._input(), delta)) {\r\n e.isScrollingEvent = true;\r\n e.stopPropagation()\r\n }\r\n this._eventY = currentEventY\r\n },\r\n _renderDimensions: function() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n var minHeight = this.option(\"minHeight\");\r\n var maxHeight = this.option(\"maxHeight\");\r\n $element.css({\r\n minHeight: void 0 !== minHeight ? minHeight : \"\",\r\n maxHeight: void 0 !== maxHeight ? maxHeight : \"\",\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _resetDimensions: function() {\r\n this.$element().css({\r\n height: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n },\r\n _renderEvents: function() {\r\n if (this.option(\"autoResizeEnabled\")) {\r\n eventsEngine.on(this._input(), addNamespace(\"input paste\", this.NAME), this._updateInputHeight.bind(this))\r\n }\r\n this.callBase()\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), addNamespace(\"input paste\", this.NAME));\r\n this.callBase()\r\n },\r\n _getHeightDifference($input) {\r\n return getVerticalOffsets(this._$element.get(0), false) + getVerticalOffsets(this._$textEditorContainer.get(0), false) + getVerticalOffsets(this._$textEditorInputContainer.get(0), false) + getElementBoxParams(\"height\", getWindow().getComputedStyle($input.get(0))).margin\r\n },\r\n _updateInputHeight: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var $input = this._input();\r\n var height = this.option(\"height\");\r\n var autoHeightResizing = void 0 === height && this.option(\"autoResizeEnabled\");\r\n var shouldCalculateInputHeight = autoHeightResizing || void 0 === height && this.option(\"minHeight\");\r\n if (!shouldCalculateInputHeight) {\r\n $input.css(\"height\", \"\");\r\n return\r\n }\r\n this._resetDimensions();\r\n this._$element.css(\"height\", getOuterHeight(this._$element));\r\n $input.css(\"height\", 0);\r\n var heightDifference = this._getHeightDifference($input);\r\n this._renderDimensions();\r\n var minHeight = this._getBoundaryHeight(\"minHeight\");\r\n var maxHeight = this._getBoundaryHeight(\"maxHeight\");\r\n var inputHeight = $input[0].scrollHeight;\r\n if (void 0 !== minHeight) {\r\n inputHeight = Math.max(inputHeight, minHeight - heightDifference)\r\n }\r\n if (void 0 !== maxHeight) {\r\n var adjustedMaxHeight = maxHeight - heightDifference;\r\n var needScroll = inputHeight > adjustedMaxHeight;\r\n inputHeight = Math.min(inputHeight, adjustedMaxHeight);\r\n this._updateInputAutoResizeAppearance($input, !needScroll)\r\n }\r\n $input.css(\"height\", inputHeight);\r\n if (autoHeightResizing) {\r\n this._$element.css(\"height\", \"auto\")\r\n }\r\n },\r\n _getBoundaryHeight: function(optionName) {\r\n var boundaryValue = this.option(optionName);\r\n if (isDefined(boundaryValue)) {\r\n return \"number\" === typeof boundaryValue ? boundaryValue : parseHeight(boundaryValue, this.$element().get(0).parentElement, this._$element.get(0))\r\n }\r\n },\r\n _renderInputType: noop,\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _updateInputAutoResizeAppearance: function($input, isAutoResizeEnabled) {\r\n if ($input) {\r\n var autoResizeEnabled = ensureDefined(isAutoResizeEnabled, this.option(\"autoResizeEnabled\"));\r\n $input.toggleClass(TEXTEDITOR_INPUT_CLASS_AUTO_RESIZE, autoResizeEnabled)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this.option(\"visible\")) {\r\n this._updateInputHeight()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"autoResizeEnabled\":\r\n this._updateInputAutoResizeAppearance(this._input(), args.value);\r\n this._refreshEvents();\r\n this._updateInputHeight();\r\n break;\r\n case \"value\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._updateInputHeight();\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderDimensions();\r\n this._updateInputHeight();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n args.value && this._updateInputHeight();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTextArea\", TextArea);\r\nexport default TextArea;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"<div>\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"<div>\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"<span>\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"<span>\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"<div>\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(_ref) {\r\n var {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n } = _ref;\r\n this._props = {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n };\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"<div>\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"<span>\");\r\n this._$label = $(\"<div>\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"<div>\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"<div>\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach()\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass)\r\n }\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n this._$before.css({\r\n width: this._props.beforeWidth\r\n })\r\n }\r\n _updateMaxWidth() {\r\n this._$label.css({\r\n maxWidth: this._props.containerWidth\r\n })\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var themeName = current();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"filled\",\r\n labelMode: \"floating\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"<div>\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"<div>\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"<div>\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"<input>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _getFieldElement() {\r\n return this._getLabelContainer()\r\n },\r\n _setFieldAria() {\r\n var _this$_$placeholder;\r\n var labelId = this._label.getId();\r\n var placeholderId = null === (_this$_$placeholder = this._$placeholder) || void 0 === _this$_$placeholder ? void 0 : _this$_$placeholder.attr(\"id\");\r\n var value = [labelId, placeholderId].filter(Boolean).join(\" \");\r\n var aria = {\r\n labelledby: value || void 0\r\n };\r\n this.setAria(aria, this._getFieldElement())\r\n },\r\n _renderLabel: function() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n } = this.option();\r\n var labelConfig = {\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n containerWidth: this._getLabelContainerWidth(),\r\n beforeWidth: this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setFieldAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholder = this.option(\"placeholder\");\r\n var placeholderAttributes = {\r\n id: placeholder ? \"dx-\".concat(new Guid) : void 0,\r\n \"data-dx_placeholder\": placeholder\r\n };\r\n var $placeholder = this._$placeholder = $(\"<div>\").attr(placeholderAttributes);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"valueChangeEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(this._getValueChangeEventOptionName()), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n this._setFieldAria();\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setFieldAria();\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n this._setFieldAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nvar DELETE_INPUT_TYPES = [\"deleteContentBackward\", \"deleteSoftLineBackward\", \"deleteContent\", \"deleteHardLineBackward\"];\r\nvar HISTORY_INPUT_TYPES = [\"historyUndo\", \"historyRedo\"];\r\nvar EVENT_NAMES = [\"focusIn\", \"focusOut\", \"input\", \"paste\", \"cut\", \"drop\", \"beforeInput\"];\r\n\r\nfunction getEmptyString(length) {\r\n return EMPTY_CHAR.repeat(length)\r\n}\r\nexport default class MaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor\r\n }\r\n _editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n _editorInput() {\r\n return this.editor._input()\r\n }\r\n _editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n _attachChangeEventHandler() {\r\n if (!this._editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n var $input = this._editorInput();\r\n var namespace = addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, e => {\r\n this.editor._changeHandler(e)\r\n })\r\n }\r\n _beforeInputHandler() {\r\n this._previousText = this._editorOption(\"text\");\r\n this._prevCaret = this._editorCaret()\r\n }\r\n _inputHandler(event) {\r\n var {\r\n originalEvent: originalEvent\r\n } = event;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType\r\n } = originalEvent;\r\n if (HISTORY_INPUT_TYPES.includes(inputType)) {\r\n this._handleHistoryInputEvent()\r\n } else if (DELETE_INPUT_TYPES.includes(inputType)) {\r\n this._handleBackwardDeleteInputEvent()\r\n } else {\r\n var currentCaret = this._editorCaret();\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._clearSelectedText();\r\n this._autoFillHandler(originalEvent);\r\n this._editorCaret(currentCaret);\r\n this._handleInsertTextInputEvent(originalEvent.data)\r\n }\r\n if (this._editorOption(\"text\") === this._previousText) {\r\n event.stopImmediatePropagation()\r\n }\r\n }\r\n _handleHistoryInputEvent() {\r\n var caret = this._editorCaret();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: caret.end - caret.start,\r\n text: \"\"\r\n });\r\n this._editorCaret(this._prevCaret)\r\n }\r\n _handleBackwardDeleteInputEvent() {\r\n this._clearSelectedText();\r\n var caret = this._editorCaret();\r\n this.editor.setForwardDirection();\r\n this.editor._adjustCaret();\r\n var adjustedForwardCaret = this._editorCaret();\r\n if (adjustedForwardCaret.start !== caret.start) {\r\n this.editor.setBackwardDirection();\r\n this.editor._adjustCaret()\r\n }\r\n }\r\n _clearSelectedText() {\r\n var _this$_prevCaret, _this$_prevCaret2;\r\n var length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start) || 1;\r\n var caret = this._editorCaret();\r\n if (!this._isAutoFill()) {\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: caret.start,\r\n length: length,\r\n text: getEmptyString(length)\r\n })\r\n }\r\n }\r\n _handleInsertTextInputEvent(data) {\r\n var _this$_prevCaret$star, _this$_prevCaret3;\r\n var text = null !== data && void 0 !== data ? data : \"\";\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null !== (_this$_prevCaret$star = null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start) && void 0 !== _this$_prevCaret$star ? _this$_prevCaret$star : 0,\r\n length: text.length || 1,\r\n text: text\r\n });\r\n if (!hasValidChars) {\r\n this._editorCaret(this._prevCaret)\r\n }\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var processedCharsCount = this.editor._handleChain(args);\r\n this.editor._displayMask();\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this._editorCaret();\r\n var correction = processedCharsCount - textLength;\r\n var hasSkippedStub = processedCharsCount > 1;\r\n if (hasSkippedStub && 1 === textLength) {\r\n this._editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor._adjustCaret()\r\n }\r\n return !!processedCharsCount\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor.setForwardDirection();\r\n if (!this.editor._isValueEmpty() && this._editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(() => {\r\n this._editorCaret({\r\n start: caret,\r\n end: caret\r\n })\r\n }, 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this._editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this._editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => {\r\n if (!editor._hasSelection()) {\r\n editor._handleKey(EMPTY_CHAR)\r\n }\r\n })\r\n }\r\n _cutHandler(event) {\r\n var caret = this._editorCaret();\r\n var selectedText = this._editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(() => {\r\n var value = this.editor._convertToValue(this._editorInput().val());\r\n this._editorOption(\"value\", value)\r\n })\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n if (this._editorOption(\"disabled\")) {\r\n return\r\n }\r\n var caret = this._editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this._editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n if (this._isAutoFill()) {\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this._editorInput();\r\n if (browser.webkit) {\r\n var _input$matches;\r\n var input = $input.get(0);\r\n return null !== (_input$matches = null === input || void 0 === input ? void 0 : input.matches(\":-webkit-autofill\")) && void 0 !== _input$matches ? _input$matches : false\r\n }\r\n return false\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n getHandler(handlerName) {\r\n return args => {\r\n var _this;\r\n null === (_this = this[\"_\".concat(handlerName, \"Handler\")]) || void 0 === _this ? void 0 : _this.call(this, args)\r\n }\r\n }\r\n attachEvents() {\r\n var $input = this._editorInput();\r\n EVENT_NAMES.forEach(eventName => {\r\n var namespace = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, namespace, this.getHandler(eventName))\r\n });\r\n this._attachChangeEventHandler()\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this._editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport MaskStrategy from \"./ui.text_editor.mask.strategy\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = new MaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n eventsEngine.trigger(this._input(), \"input\")\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.scroll.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nvar allowScroll = function(container, delta, shiftKey) {\r\n var $container = $(container);\r\n var scrollTopPos = shiftKey ? $container.scrollLeft() : $container.scrollTop();\r\n var prop = shiftKey ? \"Width\" : \"Height\";\r\n var scrollSize = $container.prop(\"scroll\".concat(prop));\r\n var clientSize = $container.prop(\"client\".concat(prop));\r\n var scrollBottomPos = scrollSize - clientSize - scrollTopPos | 0;\r\n if (0 === scrollTopPos && 0 === scrollBottomPos) {\r\n return false\r\n }\r\n var isScrollFromTop = 0 === scrollTopPos && delta >= 0;\r\n var isScrollFromBottom = 0 === scrollBottomPos && delta <= 0;\r\n var isScrollFromMiddle = scrollTopPos > 0 && scrollBottomPos > 0;\r\n if (isScrollFromTop || isScrollFromBottom || isScrollFromMiddle) {\r\n return true\r\n }\r\n};\r\nvar prepareScrollData = function(container, validateTarget) {\r\n var $container = $(container);\r\n return {\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && (eventTarget = e.target, validateTarget ? $(eventTarget).is(container) : true)) {\r\n if (allowScroll($container, -e.delta, e.shiftKey)) {\r\n e._needSkipEvent = true;\r\n return true\r\n }\r\n return false\r\n }\r\n var eventTarget\r\n }\r\n }\r\n};\r\nexport {\r\n allowScroll,\r\n prepareScrollData\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"<div>\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"<link rel=stylesheet>\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"<div>\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = Callbacks();\r\n","/**\r\n * DevExtreme (esm/ui/toast/ui.toast.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar ready = readyCallbacks.add;\r\nvar TOAST_CLASS = \"dx-toast\";\r\nvar TOAST_CLASS_PREFIX = TOAST_CLASS + \"-\";\r\nvar TOAST_WRAPPER_CLASS = TOAST_CLASS_PREFIX + \"wrapper\";\r\nvar TOAST_CONTENT_CLASS = TOAST_CLASS_PREFIX + \"content\";\r\nvar TOAST_MESSAGE_CLASS = TOAST_CLASS_PREFIX + \"message\";\r\nvar TOAST_ICON_CLASS = TOAST_CLASS_PREFIX + \"icon\";\r\nvar WIDGET_NAME = \"dxToast\";\r\nvar toastTypes = [\"info\", \"warning\", \"error\", \"success\"];\r\nvar TOAST_STACK = [];\r\nvar FIRST_Z_INDEX_OFFSET = 8e3;\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n bottom: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: null,\r\n offset: \"0 -20\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n right: {\r\n my: \"center right\",\r\n at: \"center right\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n left: {\r\n my: \"center left\",\r\n at: \"center left\",\r\n of: null,\r\n offset: \"0 0\"\r\n }\r\n};\r\nvar DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nready((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, (function(e) {\r\n for (var i = TOAST_STACK.length - 1; i >= 0; i--) {\r\n if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n }))\r\n}));\r\nvar Toast = Overlay.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: \"\",\r\n type: \"info\",\r\n displayTime: 2e3,\r\n position: \"bottom center\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n shading: false,\r\n height: \"auto\",\r\n hideTopOverlayHandler: null,\r\n preventScrollEvents: false,\r\n closeOnSwipe: true,\r\n closeOnClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n hideOnOutsideClick: true,\r\n width: \"auto\",\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 200,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 200,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n var isPhone = \"phone\" === _device.deviceType;\r\n var isAndroid = \"android\" === _device.platform;\r\n return isPhone && isAndroid\r\n },\r\n options: {\r\n width: \"100vw\",\r\n position: {\r\n at: \"bottom center\",\r\n my: \"bottom center\",\r\n offset: \"0 0\"\r\n }\r\n }\r\n }, {\r\n device: function(_device2) {\r\n return \"phone\" === _device2.deviceType\r\n },\r\n options: {\r\n width: \"100vw\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n minWidth: 344,\r\n maxWidth: 568,\r\n displayTime: 4e3\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._posStringToObject()\r\n },\r\n _renderContentImpl: function() {\r\n this._message = $(\"<div>\").addClass(TOAST_MESSAGE_CLASS).text(this.option(\"message\")).appendTo(this.$content());\r\n this.setAria(\"role\", \"alert\", this._message);\r\n if (toastTypes.includes(this.option(\"type\").toLowerCase())) {\r\n this.$content().prepend($(\"<div>\").addClass(TOAST_ICON_CLASS))\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(TOAST_CLASS);\r\n this.$wrapper().addClass(TOAST_WRAPPER_CLASS);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(this.option(\"type\")).toLowerCase());\r\n this.$content().addClass(TOAST_CONTENT_CLASS);\r\n this._toggleCloseEvents(\"Swipe\");\r\n this._toggleCloseEvents(\"Click\")\r\n },\r\n _toggleCloseEvents: function(event) {\r\n var dxEvent = \"dx\" + event.toLowerCase();\r\n eventsEngine.off(this.$content(), dxEvent);\r\n this.option(\"closeOn\" + event) && eventsEngine.on(this.$content(), dxEvent, this.hide.bind(this))\r\n },\r\n _posStringToObject: function() {\r\n if (!isString(this.option(\"position\"))) {\r\n return\r\n }\r\n var verticalPosition = this.option(\"position\").split(\" \")[0];\r\n var horizontalPosition = this.option(\"position\").split(\" \")[1];\r\n this.option(\"position\", extend({\r\n boundaryOffset: DEFAULT_BOUNDARY_OFFSET\r\n }, POSITION_ALIASES[verticalPosition]));\r\n switch (horizontalPosition) {\r\n case \"center\":\r\n case \"left\":\r\n case \"right\":\r\n this.option(\"position\").at += \" \" + horizontalPosition;\r\n this.option(\"position\").my += \" \" + horizontalPosition\r\n }\r\n },\r\n _show: function() {\r\n return this.callBase.apply(this, arguments).always(function() {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = setTimeout(this.hide.bind(this), this.option(\"displayTime\"))\r\n }.bind(this))\r\n },\r\n _overlayStack: function() {\r\n return TOAST_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return this.callBase() + FIRST_Z_INDEX_OFFSET\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._hideTimeout);\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"type\":\r\n this.$content().removeClass(TOAST_CLASS_PREFIX + args.previousValue);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(args.value).toLowerCase());\r\n break;\r\n case \"message\":\r\n if (this._message) {\r\n this._message.text(args.value)\r\n }\r\n break;\r\n case \"closeOnSwipe\":\r\n this._toggleCloseEvents(\"Swipe\");\r\n break;\r\n case \"closeOnClick\":\r\n this._toggleCloseEvents(\"Click\");\r\n break;\r\n case \"displayTime\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(WIDGET_NAME, Toast);\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/toast.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toast from \"./toast/ui.toast\";\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n var _$focusTarget;\r\n $focusTarget = null !== (_$focusTarget = $focusTarget) && void 0 !== _$focusTarget ? _$focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", null !== tabIndex && void 0 !== tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.multiline.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nexport class MultiLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {}\r\n _updateMenuVisibility() {}\r\n _renderMenuItems() {}\r\n _renderItem() {}\r\n _getMenuItems() {}\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth(this._toolbar.itemElements(), true)\r\n }\r\n _arrangeItems() {\r\n var $label = this._toolbar._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n if (!$label.length) {\r\n return\r\n }\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", elementWidth - labelPaddings)\r\n }\r\n _hideOverflowItems() {}\r\n _dimensionChanged() {}\r\n _itemOptionChanged() {}\r\n _optionChanged() {}\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.list.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_CUSTOM_CLASS = \"dx-toolbar-menu-custom\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nvar SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport default class ToolbarMenuList extends ListBase {\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(TOOLBAR_MENU_ACTION_CLASS, \":not(.\").concat(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS, \")\")\r\n }\r\n _initMarkup() {\r\n this._renderSections();\r\n super._initMarkup();\r\n this._setMenuRole()\r\n }\r\n _getSections() {\r\n return this._itemContainer().children()\r\n }\r\n _itemElements() {\r\n return this._getSections().children(this._itemSelector())\r\n }\r\n _renderSections() {\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (_, section) => {\r\n var sectionName = \"_$\".concat(section, \"Section\");\r\n if (!this[sectionName]) {\r\n this[sectionName] = $(\"<div>\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n this[sectionName].appendTo($container)\r\n })\r\n }\r\n _renderItems() {\r\n super._renderItems.apply(this, arguments);\r\n this._updateSections()\r\n }\r\n _setMenuRole() {\r\n var $menuContainer = this.$element().find(\".\".concat(SCROLLVIEW_CONTENT_CLASS));\r\n $menuContainer.attr(\"role\", \"menu\")\r\n }\r\n _updateSections() {\r\n var $sections = this.$element().find(\".\".concat(TOOLBAR_MENU_SECTION_CLASS));\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"menu\";\r\n var $container = this[\"_$\".concat(location, \"Section\")];\r\n var itemElement = super._renderItem(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(TOOLBAR_MENU_CUSTOM_CLASS)\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _getItemTemplateName(args) {\r\n var template = super._getItemTemplateName(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _itemClickHandler(e, args, config) {\r\n if ($(e.target).closest(\".\".concat(TOOLBAR_MENU_ACTION_CLASS)).length) {\r\n super._itemClickHandler(e, args, config)\r\n }\r\n }\r\n _clean() {\r\n this._getSections().empty();\r\n super._clean()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Widget from \"../../widget/ui.widget\";\r\nimport Button from \"../../button\";\r\nimport ToolbarMenuList from \"./ui.toolbar.menu.list\";\r\nimport {\r\n isMaterial\r\n} from \"../../themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../ui.toolbar.utils\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport \"../../popup\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_BOUNDARY_VERTICAL_OFFSET = 10;\r\nvar POPUP_VERTICAL_OFFSET = 3;\r\nexport default class DropDownMenu extends Widget {\r\n _supportedKeys() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n onButtonClick: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n onItemRendered: null,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n }\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _initButtonClickAction() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n super._initTemplates()\r\n }\r\n _initMarkup() {\r\n this._renderButton();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this.setAria({\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n }\r\n _renderContentImpl() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n }\r\n _clean() {\r\n this._cleanFocusState();\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove();\r\n delete this._list;\r\n delete this._popup\r\n }\r\n _renderButton() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n template: \"content\",\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }\r\n })\r\n }\r\n _toggleActiveState($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n }\r\n _toggleMenuVisibility(opened) {\r\n var state = null !== opened && void 0 !== opened ? opened : !this._popup.option(\"visible\");\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n }\r\n _renderPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n container: container,\r\n animation: animation\r\n } = this.option();\r\n this._popup = this._createComponent(this._$popup, \"dxPopup\", {\r\n onInitialized(_ref) {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).addClass(DROP_DOWN_MENU_POPUP_CLASS)\r\n },\r\n deferRendering: false,\r\n contentTemplate: contentElement => this._renderList(contentElement),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => this._getMaxHeight(),\r\n position: {\r\n my: \"top \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n at: \"bottom \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n collision: \"fit flip\",\r\n offset: {\r\n v: POPUP_VERTICAL_OFFSET\r\n },\r\n of: this.$element()\r\n },\r\n animation: animation,\r\n onOptionChanged: _ref2 => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n if (\"visible\" === name) {\r\n this.option(\"opened\", value)\r\n }\r\n },\r\n container: container,\r\n autoResizeEnabled: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n hideOnParentScroll: true,\r\n shading: false,\r\n dragEnabled: false,\r\n showTitle: false,\r\n fullScreen: false,\r\n _fixWrapperPosition: true\r\n })\r\n }\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var offsetTop = $element.offset().top;\r\n var windowHeight = getOuterHeight(getWindow());\r\n var maxHeight = Math.max(offsetTop, windowHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(windowHeight, maxHeight - POPUP_VERTICAL_OFFSET - POPUP_BOUNDARY_VERTICAL_OFFSET)\r\n }\r\n _closeOutsideDropDownHandler(e) {\r\n var isOutsideClick = !$(e.target).closest(this.$element()).length;\r\n return isOutsideClick\r\n }\r\n _renderList(contentElement) {\r\n var $content = $(contentElement);\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, ToolbarMenuList, {\r\n dataSource: this._getListDataSource(),\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: e => {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n },\r\n tabIndex: -1,\r\n focusStateEnabled: false,\r\n activeStateEnabled: true,\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n })\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"dataSource\")) && void 0 !== _this$option ? _this$option : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _this$_list2;\r\n null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"dataSource\", this._getListDataSource());\r\n delete this._deferRendering\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat([this._list])\r\n }\r\n _toggleVisibility(visible) {\r\n super._toggleVisibility(visible);\r\n this._button.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _this$_list3, _this$_list4, _this$_list5;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (!this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.option(name, this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n null === (_this$_list4 = this._list) || void 0 === _this$_list4 ? void 0 : _this$_list4.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_this$_list5 = this._list) || void 0 === _this$_list5 ? void 0 : _this$_list5.option(name, value);\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(name, value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.singleline.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DropDownMenu from \"../internal/ui.toolbar.menu\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nexport class SingleLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {\r\n deferRender(() => {\r\n this._renderOverflowMenu();\r\n this._renderMenuItems()\r\n })\r\n }\r\n _renderOverflowMenu() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"<div>\").appendTo(this._overflowMenuContainer());\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var menuItemTemplate = this._toolbar._getTemplateByOption(\"menuItemTemplate\");\r\n this._menu = this._toolbar._createComponent($menu, DropDownMenu, {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: () => menuItemTemplate,\r\n onItemClick: e => {\r\n itemClickAction(e)\r\n },\r\n container: this._toolbar.option(\"menuContainer\"),\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n }\r\n })\r\n }\r\n renderMenuItems() {\r\n if (!this._menu) {\r\n this._renderOverflowMenu()\r\n }\r\n this._menu && this._menu.option(\"items\", this._getMenuItems());\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.option(\"opened\", false)\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n this._$overflowMenuContainer = $(\"<div>\").appendTo(this._toolbar._$afterSection).addClass(TOOLBAR_BUTTON_CLASS).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _overflowMenuContainer() {\r\n return this._$overflowMenuContainer\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = null !== menuItems && void 0 !== menuItems ? menuItems : this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._overflowMenuContainer()) {\r\n return\r\n }\r\n this._overflowMenuContainer().toggleClass(INVISIBLE_STATE_CLASS, !value)\r\n }\r\n _renderMenuItems() {\r\n deferRender(() => {\r\n this.renderMenuItems()\r\n })\r\n }\r\n _dimensionChanged() {\r\n this.renderMenuItems()\r\n }\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return grep(null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : [], item => !this._toolbar._isMenuItem(item))\r\n }\r\n _getMenuItems() {\r\n var _this$_toolbar$option2, _this$_restoreItems;\r\n var menuItems = grep(null !== (_this$_toolbar$option2 = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option2 ? _this$_toolbar$option2 : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._toolbar._itemContainer().children(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS, \".\").concat(TOOLBAR_HIDDEN_ITEM)).not(\".\".concat(INVISIBLE_STATE_CLASS));\r\n this._restoreItems = null !== (_this$_restoreItems = this._restoreItems) && void 0 !== _this$_restoreItems ? _this$_restoreItems : [];\r\n var overflowItems = [].slice.call($hiddenItems).map(item => {\r\n var itemData = this._toolbar._getItemData(item);\r\n var $itemContainer = $(item);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: () => {\r\n this._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"<div>\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = null !== items && void 0 !== items ? items : this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _arrangeItems() {\r\n var _this$_restoreItems2;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_this$_restoreItems2 = this._restoreItems) && void 0 !== _this$_restoreItems2 ? _this$_restoreItems2 : [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n this._hideOverflowItems(elementWidth);\r\n return elementWidth\r\n }\r\n _hideOverflowItems(elementWidth) {\r\n var _elementWidth;\r\n var overflowItems = this._toolbar.$element().find(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS));\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this._toolbar.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth([this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n var _this$_menu;\r\n null === (_this$_menu = this._menu) || void 0 === _this$_menu ? void 0 : _this$_menu._itemOptionChanged(item, property, value);\r\n return\r\n }\r\n }\r\n this.renderMenuItems()\r\n }\r\n _renderItem(item, itemElement) {\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n }\r\n _optionChanged(name, value) {\r\n var _this$_menu2, _this$_menu3, _this$_menu4, _this$_menu5, _this$_menu6;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_this$_menu2 = this._menu) || void 0 === _this$_menu2 ? void 0 : _this$_menu2.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_this$_menu3 = this._menu) || void 0 === _this$_menu3 ? void 0 : _this$_menu3.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_this$_menu4 = this._menu) || void 0 === _this$_menu4 ? void 0 : _this$_menu4.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_this$_menu5 = this._menu) || void 0 === _this$_menu5 ? void 0 : _this$_menu5.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_this$_menu6 = this._menu) || void 0 === _this$_menu6 ? void 0 : _this$_menu6.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ToolbarBase from \"./ui.toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./ui.toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/toolbar.singleline\";\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nclass Toolbar extends ToolbarBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false,\r\n multiline: false\r\n })\r\n }\r\n _isMultiline() {\r\n return this.option(\"multiline\")\r\n }\r\n _dimensionChanged(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n super._dimensionChanged();\r\n this._layoutStrategy._dimensionChanged()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._updateFocusableItemsTabIndex();\r\n this._layoutStrategy._initMarkup()\r\n }\r\n _renderToolbar() {\r\n super._renderToolbar();\r\n this._renderLayoutStrategy()\r\n }\r\n _itemContainer() {\r\n if (this._isMultiline()) {\r\n return this._$toolbarItemsContainer\r\n }\r\n return super._itemContainer()\r\n }\r\n _renderLayoutStrategy() {\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, this._isMultiline());\r\n this._layoutStrategy = this._isMultiline() ? new MultiLineStrategy(this) : new SingleLineStrategy(this)\r\n }\r\n _renderSections() {\r\n if (this._isMultiline()) {\r\n return\r\n }\r\n return super._renderSections()\r\n }\r\n _postProcessRenderItems() {\r\n this._layoutStrategy._hideOverflowItems();\r\n this._layoutStrategy._updateMenuVisibility();\r\n super._postProcessRenderItems();\r\n this._layoutStrategy._renderMenuItems()\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var itemElement = super._renderItem(index, item, itemContainer, $after);\r\n this._layoutStrategy._renderItem(item, itemElement);\r\n var {\r\n widget: widget,\r\n showText: showText\r\n } = item;\r\n if (\"dxButton\" === widget && \"inMenu\" === showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n }\r\n _getItemsWidth() {\r\n return this._layoutStrategy._getItemsWidth()\r\n }\r\n _getMenuItems() {\r\n return this._layoutStrategy._getMenuItems()\r\n }\r\n _getToolbarItems() {\r\n return this._layoutStrategy._getToolbarItems()\r\n }\r\n _arrangeItems() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n var elementWidth = this._layoutStrategy._arrangeItems();\r\n if (!this._isMultiline()) {\r\n super._arrangeItems(elementWidth)\r\n }\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n this._layoutStrategy._itemOptionChanged(item, property, value);\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n }\r\n _isMenuItem(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n }\r\n _isToolbarItem(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n this._layoutStrategy._optionChanged(name, value);\r\n switch (name) {\r\n case \"menuContainer\":\r\n case \"menuItemTemplate\":\r\n case \"overflowMenuVisible\":\r\n break;\r\n case \"multiline\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n super._optionChanged.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n updateDimensions() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toolbar from \"./toolbar/ui.toolbar\";\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _onItemTemplateRendered: function(itemTemplate, renderArgs) {\r\n return () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ANIMATION_TIMEOUT = 15;\r\nclass ToolbarBase extends AsyncCollectionWidget {\r\n _getSynchronizableOptionsForCreateComponent() {\r\n return super._getSynchronizableOptionsForCreateComponent().filter(item => \"disabled\" !== item)\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n var {\r\n text: text,\r\n html: html,\r\n widget: widget\r\n } = data;\r\n if (text) {\r\n $container.text(text).wrapInner(\"<div>\")\r\n }\r\n if (html) {\r\n $container.html(html)\r\n }\r\n if (\"dxDropDownButton\" === widget) {\r\n var _data$options;\r\n data.options = null !== (_data$options = data.options) && void 0 !== _data$options ? _data$options : {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n var _data$options2, _data$options$styling;\r\n data.options = null !== (_data$options2 = data.options) && void 0 !== _data$options2 ? _data$options2 : {};\r\n data.options.stylingMode = null !== (_data$options$styling = data.options.stylingMode) && void 0 !== _data$options$styling ? _data$options$styling : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n var _data$options3, _data$options$type;\r\n data.options = null !== (_data$options3 = data.options) && void 0 !== _data$options3 ? _data$options3 : {};\r\n data.options.type = null !== (_data$options$type = data.options.type) && void 0 !== _data$options$type ? _data$options$type : DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n }\r\n _itemContainer() {\r\n return this._$toolbarItemsContainer.find([\".\".concat(TOOLBAR_BEFORE_CLASS), \".\".concat(TOOLBAR_CENTER_CLASS), \".\".concat(TOOLBAR_AFTER_CLASS)].join(\",\"))\r\n }\r\n _itemClass() {\r\n return TOOLBAR_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n }\r\n _dimensionChanged() {\r\n if (this._disposed) {\r\n return\r\n }\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n }\r\n _initMarkup() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderItemsAsync();\r\n this._updateDimensionsInMaterial()\r\n }\r\n _postProcessRenderItems() {\r\n this._arrangeItems()\r\n }\r\n _renderToolbar() {\r\n this.$element().addClass(TOOLBAR_CLASS);\r\n this._$toolbarItemsContainer = $(\"<div>\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element());\r\n this.setAria(\"role\", \"toolbar\")\r\n }\r\n _renderSections() {\r\n var $container = this._$toolbarItemsContainer;\r\n each([\"before\", \"center\", \"after\"], (_, section) => {\r\n var sectionClass = \"dx-toolbar-\".concat(section);\r\n var $section = $container.find(\".\".concat(sectionClass));\r\n if (!$section.length) {\r\n this[\"_$\".concat(section, \"Section\")] = $(\"<div>\").addClass(sectionClass).appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(elementWidth) {\r\n var _elementWidth;\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(\".\".concat(TOOLBAR_LABEL_CLASS)).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n }\r\n _alignCenterSection(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n }\r\n _alignSection($section, maxWidth) {\r\n var $labels = $section.find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n }\r\n _alignSectionLabels(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n }\r\n _applyCompactMode() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n }\r\n _getCurrentLabelsWidth(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n }\r\n _getCurrentLabelsPaddings(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location, _item$text;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_item$text = item.text) && void 0 !== _item$text ? _item$text : item.html);\r\n var itemElement = super._renderItem(index, item, container, $after);\r\n itemElement.toggleClass(TOOLBAR_BUTTON_CLASS, !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _renderGroupedItems() {\r\n each(this.option(\"items\"), (groupIndex, group) => {\r\n var _group$location;\r\n var groupItems = group.items;\r\n var $container = $(\"<div>\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_group$location = group.location) && void 0 !== _group$location ? _group$location : \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (itemIndex, item) => {\r\n this._renderItem(itemIndex, item, $container, null)\r\n });\r\n this._$toolbarItemsContainer.find(\".dx-toolbar-\".concat(location)).append($container)\r\n })\r\n }\r\n _renderItems(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : super._renderItems(items)\r\n }\r\n _getToolbarItems() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"items\")) && void 0 !== _this$option ? _this$option : []\r\n }\r\n _renderContentImpl() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n }\r\n _renderEmptyMessage() {}\r\n _clean() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty();\r\n delete this._$beforeSection;\r\n delete this._$centerSection;\r\n delete this._$afterSection\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n }\r\n _isVisible() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n }\r\n _getIndexByItem(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n super._itemOptionChanged.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n _dispose() {\r\n super._dispose();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n _updateDimensionsInMaterial() {\r\n if (isMaterial()) {\r\n Promise.all([(() => new Promise(resolve => {\r\n var check = () => {\r\n var readyToResolve = true;\r\n this.$element().parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => check() || runCheck(), ANIMATION_TIMEOUT)\r\n };\r\n runCheck()\r\n }))(), (() => {\r\n var $labels = this.$element().find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n })()]).then(() => {\r\n this._dimensionChanged()\r\n })\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip/tooltip.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popover from \"../popover/ui.popover\";\r\nvar TOOLTIP_CLASS = \"dx-tooltip\";\r\nvar TOOLTIP_WRAPPER_CLASS = \"dx-tooltip-wrapper\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nvar Tooltip = Popover.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n enableBodyScroll: true,\r\n showTitle: false,\r\n title: null,\r\n titleTemplate: null,\r\n onTitleRendered: null,\r\n bottomTemplate: null,\r\n preventScrollEvents: false,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _render: function() {\r\n this.$element().addClass(TOOLTIP_CLASS);\r\n this.$wrapper().addClass(TOOLTIP_WRAPPER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContent: function() {\r\n this.callBase();\r\n this._contentId = \"dx-\" + new Guid;\r\n this.$overlayContent().attr({\r\n id: this._contentId\r\n });\r\n this._toggleAriaDescription(true)\r\n },\r\n _toggleAriaDescription: function(showing) {\r\n var $target = $(this.option(\"target\"));\r\n var label = showing ? this._contentId : void 0;\r\n if (!isWindow($target.get(0))) {\r\n this.setAria(\"describedby\", label, $target)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTooltip\", Tooltip);\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"./tooltip/tooltip\";\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n case \"expandIcon\":\r\n case \"collapseIcon\":\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"<div>\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"<div>\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n var _this$_dataSource, _this$_dataSource$loa, _this$_dataSource$loa2;\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort(),\r\n langParams: null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : null === (_this$_dataSource$loa = _this$_dataSource.loadOptions) || void 0 === _this$_dataSource$loa ? void 0 : null === (_this$_dataSource$loa2 = _this$_dataSource$loa.call(_this$_dataSource)) || void 0 === _this$_dataSource$loa2 ? void 0 : _this$_dataSource$loa2.langParams\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"<div>\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"<ul>\").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var _node$internalFields, _node$internalFields$;\r\n var $node = $(\"<li>\").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n var attrs = {\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n level: this._getLevel($nodeContainer)\r\n };\r\n var hasChildNodes = !!(null !== node && void 0 !== node && null !== (_node$internalFields = node.internalFields) && void 0 !== _node$internalFields && null !== (_node$internalFields$ = _node$internalFields.childrenKeys) && void 0 !== _node$internalFields$ && _node$internalFields$.length);\r\n if (hasChildNodes) {\r\n attrs.expanded = node.internalFields.expanded || false\r\n }\r\n this.setAria(attrs, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _hasCustomExpanderIcons: function() {\r\n return this.option(\"expandIcon\") || this.option(\"collapseIcon\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n if (this._hasCustomExpanderIcons()) {\r\n $node.addClass(ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS);\r\n $nodeContainer.addClass(CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS)\r\n }\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n if (nodeData.disabled) {\r\n this.setAria(\"disabled\", nodeData.disabled, $node)\r\n }\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelectionAttribute: noop,\r\n _renderChildren: function($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n if (this._hasCustomExpanderIcons()) {\r\n this._renderCustomExpanderIcons($node, node)\r\n } else {\r\n this._renderDefaultExpanderIcons($node, node)\r\n }\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var deferred = new Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n eventsEngine.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n eventsEngine.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = $(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (!currentState && !this._nodeHasRenderedChildren($node)) {\r\n this._createLoadIndicator($node)\r\n }\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _nodeHasRenderedChildren($node) {\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n return $nodeContainer.not(\":empty\").length\r\n },\r\n _createLoadIndicator: function($node) {\r\n this._createComponent($(\"<div>\").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($node);\r\n var $icon = $node.children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS, \",.\").concat(CUSTOM_EXPAND_ICON_CLASS));\r\n $icon.hide()\r\n },\r\n _renderExpanderIcon: function($node, node, $icon, iconClass) {\r\n $icon.appendTo($node);\r\n $icon.addClass(iconClass);\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderDefaultExpanderIcons: function($node, node) {\r\n var $icon = $(\"<div>\").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderCustomExpanderIcons: function($node, node) {\r\n var {\r\n expandIcon: expandIcon,\r\n collapseIcon: collapseIcon\r\n } = this.option();\r\n var $expandIcon = getImageContainer(null !== expandIcon && void 0 !== expandIcon ? expandIcon : collapseIcon);\r\n var $collapseIcon = getImageContainer(null !== collapseIcon && void 0 !== collapseIcon ? collapseIcon : expandIcon);\r\n this._renderExpanderIcon($node, node, $expandIcon, CUSTOM_EXPAND_ICON_CLASS);\r\n this._renderExpanderIcon($node, node, $collapseIcon, CUSTOM_COLLAPSE_ICON_CLASS);\r\n var isNodeExpanded = node.internalFields.expanded;\r\n if (isNodeExpanded) {\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n this._toggleCustomExpanderIcons($expandIcon, $collapseIcon, isNodeExpanded)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _toggleCustomExpanderIcons: function($expandIcon, $collapseIcon, isNodeExpanded) {\r\n $collapseIcon.toggle(isNodeExpanded);\r\n $expandIcon.toggle(!isNodeExpanded)\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n if (!this._hasCustomExpanderIcons()) {\r\n var $icon = $node.children(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state)\r\n } else if (this._nodeHasRenderedChildren($node)) {\r\n var $childExpandIcons = $node.children(\".\".concat(CUSTOM_EXPAND_ICON_CLASS));\r\n var $childCollapseIcons = $node.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS));\r\n this._toggleCustomExpanderIcons($childExpandIcons, $childCollapseIcons, state)\r\n }\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n completionCallback.resolve();\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = getHeight($nodeContainer);\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this.getScrollable().update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node) || this._skipContentReadyAndItemExpanded) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n if ($loadIndicator.length) {\r\n var _LoadIndicator$getIns;\r\n null === (_LoadIndicator$getIns = LoadIndicator.getInstance($loadIndicator)) || void 0 === _LoadIndicator$getIns ? void 0 : _LoadIndicator$getIns.option(\"visible\", false)\r\n }\r\n var $toggleItem = $node.children(\".\".concat(CUSTOM_COLLAPSE_ICON_CLASS, \",.\").concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n if (hasNewItems) {\r\n $toggleItem.show();\r\n return\r\n }\r\n $toggleItem.removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n var scrollable = this.getScrollable();\r\n return scrollable ? $(scrollable.content()) : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"<div>\").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n elementAttr: {\r\n \"aria-label\": \"Select All\"\r\n },\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = $(\"<div>\").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n elementAttr: {\r\n \"aria-label\": \"Check State\"\r\n },\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = $(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEvent = addNamespace(pointerEvents.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n eventsEngine.off($itemContainer, eventName, clickSelector);\r\n eventsEngine.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n eventsEngine.on($itemContainer, eventName, clickSelector, (function(e) {\r\n that._itemClickHandler(e, $(this))\r\n }));\r\n eventsEngine.on($itemContainer, pointerDownEvent, pointerDownSelector, (function(e) {\r\n that._itemPointerDownHandler(e)\r\n }))\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n focus: function() {\r\n if (this._selectAllEnabled()) {\r\n eventsEngine.trigger(this._$selectAllItem, \"focus\");\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _focusInHandler: function(e) {\r\n this._updateFocusState(e, true);\r\n var isSelectAllItem = $(e.target).hasClass(SELECT_ALL_ITEM_CLASS);\r\n if (isSelectAllItem || this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n var element = isSelectAllItem ? getPublicElement(this._$selectAllItem) : $(this.option(\"focusedElement\"));\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n this._setFocusedItem(element)\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not((function() {\r\n return $(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n }))\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._nodeElements();\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this.getScrollable().scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this.getScrollable().scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return isString(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return isString(value) ? decodeURI(value) : value\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n updateDimensions: function() {\r\n var deferred = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n scrollable.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n _allItemsExpandedHandler: function() {\r\n this._skipContentReadyAndItemExpanded = false;\r\n this._fireContentReadyAction()\r\n },\r\n expandAll: function() {\r\n var nodes = this._dataAdapter.getData();\r\n var expandingPromises = [];\r\n this._skipContentReadyAndItemExpanded = true;\r\n nodes.forEach(node => expandingPromises.push(this._toggleExpandedState(node.internalFields.key, true)));\r\n Promise.allSettled(expandingPromises).then(() => {\r\n var _this$_allItemsExpand;\r\n return null === (_this$_allItemsExpand = this._allItemsExpanded) || void 0 === _this$_allItemsExpand ? void 0 : _this$_allItemsExpand.call(this)\r\n })\r\n },\r\n collapseAll: function() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this.scrollToElementTopLeft($element.get(0));\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n scrollToElementTopLeft: function(targetElement) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n scrollDirection: scrollDirection,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetLocation = {\r\n top: 0,\r\n left: 0\r\n };\r\n var relativeOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement);\r\n if (scrollDirection !== DIRECTION_VERTICAL) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n targetLocation.left = rtlEnabled ? relativeOffset.left + targetElement.offsetWidth - containerElement.clientWidth : relativeOffset.left\r\n }\r\n if (scrollDirection !== DIRECTION_HORIZONTAL) {\r\n targetLocation.top = relativeOffset.top\r\n }\r\n scrollable.scrollTo(targetLocation)\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var resultCallback = new Deferred;\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout);\r\n this._allItemsExpandedHandler = null\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.search.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n this.option(\"focusedElement\", null);\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _getNodeContainer: function() {\r\n return this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first()\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this._getNodeContainer();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _focusTarget: function() {\r\n return this._itemContainer(this.option(\"searchEnabled\"))\r\n },\r\n _cleanItemContainer: function() {\r\n this.$element().empty()\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._selectAllEnabled()) {\r\n return this._getNodeContainer()\r\n }\r\n if (this._scrollable && isSearchMode) {\r\n return $(this._scrollable.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeView from \"./tree_view/ui.tree_view.search\";\r\nexport default TreeView;\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n } else {\r\n return isNumeric(value)\r\n }\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n }));\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, (function(val) {\r\n return val === validator\r\n }))[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = this._pendingValidators.indexOf(validator);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n }));\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = this.validators.indexOf(validator);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (!this.validators.includes(validator)) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (function(_, validator) {\r\n validator.reset()\r\n }));\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _$element$data, _$element$data$dxComp;\r\n var hasValidationGroup = null === (_$element$data = $element.data()) || void 0 === _$element$data ? void 0 : null === (_$element$data$dxComp = _$element$data.dxComponents) || void 0 === _$element$data$dxComp ? void 0 : _$element$data$dxComp.includes(\"dxValidationGroup\");\r\n var validationGroup = hasValidationGroup && $element.dxValidationGroup(\"instance\");\r\n if (validationGroup) {\r\n return validationGroup\r\n }\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = this.groups.indexOf(config);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _rules$;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _result$brokenRules;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","/**\r\n * DevExtreme (esm/ui/validation_group.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport ValidationSummary from \"./validation_summary\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport Validator from \"./validator\";\r\nvar VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nclass ValidationGroup extends DOMComponent {\r\n _getDefaultOptions() {\r\n return super._getDefaultOptions()\r\n }\r\n _init() {\r\n super._init();\r\n ValidationEngine.addGroup(this)\r\n }\r\n _initMarkup() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each((function(_, validatorContainer) {\r\n Validator.getInstance($(validatorContainer))._initGroupRegistration()\r\n }));\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each((function(_, summaryContainer) {\r\n ValidationSummary.getInstance($(summaryContainer)).refreshValidationGroup()\r\n }));\r\n super._initMarkup()\r\n }\r\n validate() {\r\n return ValidationEngine.validateGroup(this)\r\n }\r\n reset() {\r\n return ValidationEngine.resetGroup(this)\r\n }\r\n _dispose() {\r\n ValidationEngine.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n super._dispose()\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxValidationGroup\", ValidationGroup);\r\nexport default ValidationGroup;\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n preventScrollEvents: false,\r\n positionSide: \"top\",\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget: function() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"<br />\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _getPositionsArray: function(positionSide, rtlSide) {\r\n switch (positionSide) {\r\n case \"top\":\r\n return [\"\".concat(rtlSide, \" bottom\"), \"\".concat(rtlSide, \" top\")];\r\n case \"left\":\r\n return [\"right\", \"left\"];\r\n case \"right\":\r\n return [\"left\", \"right\"];\r\n default:\r\n return [\"\".concat(rtlSide, \" top\"), \"\".concat(rtlSide, \" bottom\")]\r\n }\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionSide: positionSide,\r\n rtlEnabled: rtlEnabled,\r\n offset: componentOffset,\r\n boundary: boundary\r\n } = this.option();\r\n var rtlSide = getDefaultAlignment(rtlEnabled);\r\n var positions = this._getPositionsArray(positionSide, rtlSide);\r\n var offset = _extends({}, componentOffset);\r\n this.$element().addClass(\"dx-invalid-message-\".concat(positionSide));\r\n if (rtlEnabled && \"left\" !== positionSide && \"right\" !== positionSide) {\r\n offset.h = -offset.h\r\n }\r\n if (\"top\" === positionSide) {\r\n offset.v = -offset.v\r\n }\r\n if (\"left\" === positionSide) {\r\n offset.h = -offset.h\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positions[0],\r\n at: positions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this._updatePositionByTarget();\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionSide\":\r\n this.$element().removeClass(\"dx-invalid-message-\".concat(previousValue));\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/validation_summary.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = VALIDATION_SUMMARY_CLASS + \"-item\";\r\nvar ITEM_DATA_KEY = VALIDATION_SUMMARY_CLASS + \"-item-data\";\r\nvar ValidationSummary = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element));\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup() {\r\n var groupConfig = ValidationEngine.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems(validators, items) {\r\n var orderedItems = [];\r\n each(validators, (function(_, validator) {\r\n var foundItems = grep(items, (function(item) {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n }));\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n }));\r\n return orderedItems\r\n },\r\n _groupValidationHandler(params) {\r\n var items = this._getOrderedItems(params.validators, map(params.brokenRules, (function(rule) {\r\n return {\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n }\r\n })));\r\n this.validators = params.validators;\r\n each(this.validators, (_, validator) => {\r\n if (validator._validationSummary !== this) {\r\n var handler = this._itemValidationHandler.bind(this);\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", (function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n }));\r\n validator._validationSummary = this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler(_ref) {\r\n var {\r\n isValid: isValid,\r\n validator: validator,\r\n brokenRules: brokenRules\r\n } = _ref;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = grep(brokenRules || [], (function(rule) {\r\n return rule.index === item.index\r\n }))[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return \"continue\"\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n var _ret = _loop();\r\n if (\"continue\" === _ret) {\r\n continue\r\n }\r\n }\r\n each(brokenRules, (function(_, rule) {\r\n var foundItem = grep(items, (function(item) {\r\n return item.validator === validator && item.index === rule.index\r\n }))[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n }));\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _postprocessRenderItem(params) {\r\n eventsEngine.on(params.itemElement, \"click\", (function() {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n }))\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n },\r\n refreshValidationGroup() {\r\n this._initGroupRegistration()\r\n }\r\n});\r\nregisterComponent(\"dxValidationSummary\", ValidationSummary);\r\nexport default ValidationSummary;\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.reset()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement(element) === element\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"<div>\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" must be earlier than the \"endDayHour\"',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1015: 'The \"cellDuration\" should divide the range from the \"startDayHour\" to the \"endDayHour\" into even intervals',\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\",\r\n W1021: \"The '{0}' is not rendered because none of the DOM elements match the value of the \\\"container\\\" property.\",\r\n W1022: \"{0} JSON parsing error: '{1}'\",\r\n W1023: \"Appointments require unique keys. Otherwise, the agenda view may not work correctly.\"\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"<div>\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n errors.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _cleanAria: function() {\r\n var $element = this.$element();\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $element);\r\n $element.attr(\"tabIndex\", null)\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._cleanAria()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n },\r\n setEditorClass: function(value) {\r\n EditorClass = value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _isFocusTarget: function(element) {\r\n var focusTargets = $(this._focusTarget()).toArray();\r\n return focusTargets.includes(element)\r\n },\r\n _findActiveTarget($element) {\r\n return $element.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return this._findActiveTarget(activeElement)\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (this._isFocusTarget(target)) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"<div>\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"<div>\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/palette.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar _floor = Math.floor;\r\nvar _ceil = Math.ceil;\r\nimport _Color from \"../color\";\r\nvar _isArray = Array.isArray;\r\nimport {\r\n isString as _isString\r\n} from \"../core/utils/type\";\r\nvar HIGHLIGHTING_STEP = 50;\r\nvar DEFAULT_PALETTE = \"material\";\r\nvar officePalette = {\r\n simpleSet: [\"#5f8b95\", \"#ba4d51\", \"#af8a53\", \"#955f71\", \"#859666\", \"#7e688c\"],\r\n indicatingSet: [\"#a3b97c\", \"#e1b676\", \"#ec7f83\"],\r\n gradientSet: [\"#5f8b95\", \"#ba4d51\"],\r\n accentColor: \"#ba4d51\"\r\n};\r\nvar palettes = {\r\n [DEFAULT_PALETTE]: {\r\n simpleSet: [\"#1db2f5\", \"#f5564a\", \"#97c95c\", \"#ffc720\", \"#eb3573\", \"#a63db8\"],\r\n indicatingSet: [\"#97c95c\", \"#ffc720\", \"#f5564a\"],\r\n gradientSet: [\"#1db2f5\", \"#97c95c\"],\r\n accentColor: \"#1db2f5\"\r\n },\r\n office: officePalette,\r\n \"harmony light\": {\r\n simpleSet: [\"#fcb65e\", \"#679ec5\", \"#ad79ce\", \"#7abd5c\", \"#e18e92\", \"#b6d623\", \"#b7abea\", \"#85dbd5\"],\r\n indicatingSet: [\"#b6d623\", \"#fcb65e\", \"#e18e92\"],\r\n gradientSet: [\"#7abd5c\", \"#fcb65e\"],\r\n accentColor: \"#679ec5\"\r\n },\r\n \"soft pastel\": {\r\n simpleSet: [\"#60a69f\", \"#78b6d9\", \"#6682bb\", \"#a37182\", \"#eeba69\", \"#90ba58\", \"#456c68\", \"#7565a4\"],\r\n indicatingSet: [\"#90ba58\", \"#eeba69\", \"#a37182\"],\r\n gradientSet: [\"#78b6d9\", \"#eeba69\"],\r\n accentColor: \"#60a69f\"\r\n },\r\n pastel: {\r\n simpleSet: [\"#bb7862\", \"#70b3a1\", \"#bb626a\", \"#057d85\", \"#ab394b\", \"#dac599\", \"#153459\", \"#b1d2c6\"],\r\n indicatingSet: [\"#70b3a1\", \"#dac599\", \"#bb626a\"],\r\n gradientSet: [\"#bb7862\", \"#70b3a1\"],\r\n accentColor: \"#bb7862\"\r\n },\r\n bright: {\r\n simpleSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\", \"#e97f02\", \"#9d419c\", \"#7e4452\", \"#9ab57e\", \"#36a3a6\"],\r\n indicatingSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\"],\r\n gradientSet: [\"#e97f02\", \"#f8ca00\"],\r\n accentColor: \"#e97f02\"\r\n },\r\n soft: {\r\n simpleSet: [\"#cbc87b\", \"#9ab57e\", \"#e55253\", \"#7e4452\", \"#e8c267\", \"#565077\", \"#6babac\", \"#ad6082\"],\r\n indicatingSet: [\"#9ab57e\", \"#e8c267\", \"#e55253\"],\r\n gradientSet: [\"#9ab57e\", \"#e8c267\"],\r\n accentColor: \"#565077\"\r\n },\r\n ocean: {\r\n simpleSet: [\"#75c099\", \"#acc371\", \"#378a8a\", \"#5fa26a\", \"#064970\", \"#38c5d2\", \"#00a7c6\", \"#6f84bb\"],\r\n indicatingSet: [\"#c8e394\", \"#7bc59d\", \"#397c8b\"],\r\n gradientSet: [\"#acc371\", \"#38c5d2\"],\r\n accentColor: \"#378a8a\"\r\n },\r\n vintage: {\r\n simpleSet: [\"#dea484\", \"#efc59c\", \"#cb715e\", \"#eb9692\", \"#a85c4c\", \"#f2c0b5\", \"#c96374\", \"#dd956c\"],\r\n indicatingSet: [\"#ffe5c6\", \"#f4bb9d\", \"#e57660\"],\r\n gradientSet: [\"#efc59c\", \"#cb715e\"],\r\n accentColor: \"#cb715e\"\r\n },\r\n violet: {\r\n simpleSet: [\"#d1a1d1\", \"#eeacc5\", \"#7b5685\", \"#7e7cad\", \"#a13d73\", \"#5b41ab\", \"#e287e2\", \"#689cc1\"],\r\n indicatingSet: [\"#d8e2f6\", \"#d0b2da\", \"#d56a8a\"],\r\n gradientSet: [\"#eeacc5\", \"#7b5685\"],\r\n accentColor: \"#7b5685\"\r\n },\r\n carmine: {\r\n simpleSet: [\"#fb7764\", \"#73d47f\", \"#fed85e\", \"#d47683\", \"#dde392\", \"#757ab2\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#fb7764\", \"#73d47f\"],\r\n accentColor: \"#f05b41\"\r\n },\r\n \"dark moon\": {\r\n simpleSet: [\"#4ddac1\", \"#f4c99a\", \"#80dd9b\", \"#f998b3\", \"#4aaaa0\", \"#a5aef1\"],\r\n indicatingSet: [\"#59d8a4\", \"#f0ad4e\", \"#f9517e\"],\r\n gradientSet: [\"#4ddac1\", \"#f4c99a\"],\r\n accentColor: \"#3debd3\"\r\n },\r\n \"soft blue\": {\r\n simpleSet: [\"#7ab8eb\", \"#97da97\", \"#facb86\", \"#e78683\", \"#839bda\", \"#4db7be\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#7ab8eb\", \"#97da97\"],\r\n accentColor: \"#7ab8eb\"\r\n },\r\n \"dark violet\": {\r\n simpleSet: [\"#9c63ff\", \"#64c064\", \"#eead51\", \"#d2504b\", \"#4b6bbf\", \"#2da7b0\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#9c63ff\", \"#64c064\"],\r\n accentColor: \"#9c63ff\"\r\n },\r\n \"green mist\": {\r\n simpleSet: [\"#3cbab2\", \"#8ed962\", \"#5b9d95\", \"#efcc7c\", \"#f1929f\", \"#4d8dab\"],\r\n indicatingSet: [\"#72d63c\", \"#ffc852\", \"#f74a5e\"],\r\n gradientSet: [\"#3cbab2\", \"#8ed962\"],\r\n accentColor: \"#3cbab2\"\r\n }\r\n};\r\nvar currentPaletteName;\r\nexport function currentPalette(name) {\r\n if (void 0 === name) {\r\n return currentPaletteName || DEFAULT_PALETTE\r\n } else {\r\n name = normalizeEnum(name);\r\n currentPaletteName = name in palettes ? name : void 0\r\n }\r\n}\r\nexport function generateColors(palette, count) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\r\n keepLastColorInEnd: false\r\n };\r\n options.type = options.baseColorSet;\r\n options.extensionMode = options.paletteExtensionMode;\r\n return createPalette(palette, options).generateColors(count)\r\n}\r\nexport function getPalette(palette, parameters) {\r\n parameters = parameters || {};\r\n palette = palette || (void 0 === currentPaletteName ? parameters.themeDefault : currentPalette());\r\n var result;\r\n var type = parameters.type;\r\n if (_isArray(palette)) {\r\n return palette.slice(0)\r\n } else {\r\n if (_isString(palette)) {\r\n result = palettes[normalizeEnum(palette)]\r\n }\r\n if (!result) {\r\n result = palettes[currentPalette()]\r\n }\r\n }\r\n return type ? result[type].slice(0) : result\r\n}\r\nexport function registerPalette(name, palette) {\r\n var item = {};\r\n var paletteName;\r\n if (_isArray(palette)) {\r\n item.simpleSet = palette.slice(0)\r\n } else if (palette) {\r\n item.simpleSet = _isArray(palette.simpleSet) ? palette.simpleSet.slice(0) : void 0;\r\n item.indicatingSet = _isArray(palette.indicatingSet) ? palette.indicatingSet.slice(0) : void 0;\r\n item.gradientSet = _isArray(palette.gradientSet) ? palette.gradientSet.slice(0) : void 0;\r\n item.accentColor = palette.accentColor\r\n }\r\n if (!item.accentColor) {\r\n item.accentColor = item.simpleSet && item.simpleSet[0]\r\n }\r\n if (item.simpleSet || item.indicatingSet || item.gradientSet) {\r\n paletteName = normalizeEnum(name);\r\n extend(palettes[paletteName] = palettes[paletteName] || {}, item)\r\n }\r\n}\r\nexport function getAccentColor(palette, themeDefault) {\r\n palette = getPalette(palette, {\r\n themeDefault: themeDefault\r\n });\r\n return palette.accentColor || palette[0]\r\n}\r\n\r\nfunction RingBuf(buf) {\r\n var ind = 0;\r\n this.next = function() {\r\n var res = buf[ind++];\r\n if (ind === buf.length) {\r\n this.reset()\r\n }\r\n return res\r\n };\r\n this.reset = function() {\r\n ind = 0\r\n }\r\n}\r\n\r\nfunction getAlternateColorsStrategy(palette, parameters) {\r\n var stepHighlight = parameters.useHighlight ? HIGHLIGHTING_STEP : 0;\r\n var paletteSteps = new RingBuf([0, stepHighlight, -stepHighlight]);\r\n var currentPalette = [];\r\n\r\n function _reset() {\r\n var step = paletteSteps.next();\r\n currentPalette = step ? getAlteredPalette(palette, step) : palette.slice(0)\r\n }\r\n return {\r\n getColor: function(index) {\r\n var color = currentPalette[index % palette.length];\r\n if (index % palette.length === palette.length - 1) {\r\n _reset()\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i))\r\n }\r\n return colors\r\n },\r\n reset: function() {\r\n paletteSteps.reset();\r\n _reset()\r\n }\r\n }\r\n}\r\n\r\nfunction getExtrapolateColorsStrategy(palette, parameters) {\r\n return {\r\n getColor: function(index, count) {\r\n var paletteCount = palette.length;\r\n var cycles = _floor((count - 1) / paletteCount + 1);\r\n var color = palette[index % paletteCount];\r\n if (cycles > 1) {\r\n return function(color, cycleIndex, cycleCount) {\r\n var hsl = new _Color(color).hsl;\r\n var l = hsl.l / 100;\r\n var diapason = cycleCount - 1 / cycleCount;\r\n var minL = l - .5 * diapason;\r\n var maxL = l + .5 * diapason;\r\n var cycleMiddle = (cycleCount - 1) / 2;\r\n var cycleDiff = cycleIndex - cycleMiddle;\r\n if (minL < Math.min(.5, .9 * l)) {\r\n minL = Math.min(.5, .9 * l)\r\n }\r\n if (maxL > Math.max(.8, l + .15 * (1 - l))) {\r\n maxL = Math.max(.8, l + .15 * (1 - l))\r\n }\r\n if (cycleDiff < 0) {\r\n l -= (minL - l) * cycleDiff / cycleMiddle\r\n } else {\r\n l += cycleDiff / cycleMiddle * (maxL - l)\r\n }\r\n hsl.l = 100 * l;\r\n return _Color.prototype.fromHSL(hsl).toHex()\r\n }(color, _floor(index / paletteCount), cycles)\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i, count))\r\n }\r\n return colors\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction getColorMixer(palette, parameters) {\r\n var paletteCount = palette.length;\r\n var extendedPalette = [];\r\n\r\n function distributeColors(count, colorsCount, startIndex, distribution) {\r\n var groupSize = Math.floor(count / colorsCount);\r\n var extraItems = count - colorsCount * groupSize;\r\n var i = startIndex;\r\n var middleIndex;\r\n var size;\r\n while (i < startIndex + count) {\r\n size = groupSize;\r\n if (extraItems > 0) {\r\n size += 1;\r\n extraItems--\r\n }\r\n middleIndex = size > 2 ? Math.floor(size / 2) : 0;\r\n distribution.push(i + middleIndex);\r\n i += size\r\n }\r\n return distribution.sort((function(a, b) {\r\n return a - b\r\n }))\r\n }\r\n\r\n function getColorAndDistance(arr, startIndex, count) {\r\n startIndex = (count + startIndex) % count;\r\n var distance = 0;\r\n for (var i = startIndex; i < 2 * count; i += 1) {\r\n var index = (count + i) % count;\r\n if (arr[index]) {\r\n return [arr[index], distance]\r\n }\r\n distance++\r\n }\r\n }\r\n\r\n function extendPalette(count) {\r\n if (count <= paletteCount) {\r\n return palette\r\n }\r\n var result = [];\r\n var colorInGroups = paletteCount - 2;\r\n var currentColorIndex = 0;\r\n var cleanColorIndices = [];\r\n if (parameters.keepLastColorInEnd) {\r\n cleanColorIndices = distributeColors(count - 2, colorInGroups, 1, [0, count - 1])\r\n } else {\r\n cleanColorIndices = distributeColors(count - 1, paletteCount - 1, 1, [0])\r\n }\r\n for (var i = 0; i < count; i++) {\r\n if (cleanColorIndices.indexOf(i) > -1) {\r\n result[i] = palette[currentColorIndex++]\r\n }\r\n }\r\n result = function(paletteWithEmptyColors, paletteLength) {\r\n for (var i = 0; i < paletteLength; i++) {\r\n var color = paletteWithEmptyColors[i];\r\n if (!color) {\r\n var color1 = paletteWithEmptyColors[i - 1];\r\n if (!color1) {\r\n continue\r\n } else {\r\n var c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength);\r\n var color2 = new _Color(c2[0]);\r\n color1 = new _Color(color1);\r\n for (var j = 0; j < c2[1]; j++, i++) {\r\n paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex()\r\n }\r\n }\r\n }\r\n }\r\n return paletteWithEmptyColors\r\n }(result, count);\r\n return result\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n count = count || parameters.count || paletteCount;\r\n if (extendedPalette.length !== count) {\r\n extendedPalette = extendPalette(count)\r\n }\r\n return extendedPalette[index % count]\r\n },\r\n generateColors: function(count, repeat) {\r\n count = count || parameters.count || paletteCount;\r\n if (repeat && count > paletteCount) {\r\n var colors = extendPalette(paletteCount);\r\n for (var i = 0; i < count - paletteCount; i++) {\r\n colors.push(colors[i])\r\n }\r\n return colors\r\n } else {\r\n return paletteCount > 0 ? extendPalette(count).slice(0, count) : []\r\n }\r\n },\r\n reset: function() {}\r\n }\r\n}\r\nexport function createPalette(palette, parameters, themeDefaultPalette) {\r\n var paletteObj = {\r\n dispose() {\r\n this._extensionStrategy = null\r\n },\r\n getNextColor(count) {\r\n return this._extensionStrategy.getColor(this._currentColor++, count)\r\n },\r\n generateColors(count, parameters) {\r\n return this._extensionStrategy.generateColors(count, (parameters || {}).repeat)\r\n },\r\n reset() {\r\n this._currentColor = 0;\r\n this._extensionStrategy.reset();\r\n return this\r\n }\r\n };\r\n parameters = parameters || {};\r\n var extensionMode = (parameters.extensionMode || \"\").toLowerCase();\r\n var colors = getPalette(palette, {\r\n type: parameters.type || \"simpleSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n if (\"alternate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getAlternateColorsStrategy(colors, parameters)\r\n } else if (\"extrapolate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getExtrapolateColorsStrategy(colors, parameters)\r\n } else {\r\n paletteObj._extensionStrategy = getColorMixer(colors, parameters)\r\n }\r\n paletteObj.reset();\r\n return paletteObj\r\n}\r\n\r\nfunction getAlteredPalette(originalPalette, step) {\r\n var palette = [];\r\n var i;\r\n var ii = originalPalette.length;\r\n for (i = 0; i < ii; ++i) {\r\n palette.push(getNewColor(originalPalette[i], step))\r\n }\r\n return palette\r\n}\r\n\r\nfunction getNewColor(currentColor, step) {\r\n var newColor = new _Color(currentColor).alter(step);\r\n var lightness = getLightness(newColor);\r\n if (lightness > 200 || lightness < 55) {\r\n newColor = new _Color(currentColor).alter(-step / 2)\r\n }\r\n return newColor.toHex()\r\n}\r\n\r\nfunction getLightness(color) {\r\n return .3 * color.r + .59 * color.g + .11 * color.b\r\n}\r\nexport function getDiscretePalette(source, size, themeDefaultPalette) {\r\n var palette = size > 0 ? createDiscreteColors(getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n }), size) : [];\r\n return {\r\n getColor: function(index) {\r\n return palette[index] || null\r\n }\r\n }\r\n}\r\n\r\nfunction createDiscreteColors(source, count) {\r\n var colorCount = count - 1;\r\n var sourceCount = source.length - 1;\r\n var colors = [];\r\n var gradient = [];\r\n var i;\r\n\r\n function addColor(pos) {\r\n var k = sourceCount * pos;\r\n var kl = _floor(k);\r\n var kr = _ceil(k);\r\n gradient.push(colors[kl].blend(colors[kr], k - kl).toHex())\r\n }\r\n for (i = 0; i <= sourceCount; ++i) {\r\n colors.push(new _Color(source[i]))\r\n }\r\n if (colorCount > 0) {\r\n for (i = 0; i <= colorCount; ++i) {\r\n addColor(i / colorCount)\r\n }\r\n } else {\r\n addColor(.5)\r\n }\r\n return gradient\r\n}\r\nexport function getGradientPalette(source, themeDefaultPalette) {\r\n var palette = getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n var color1 = new _Color(palette[0]);\r\n var color2 = new _Color(palette[1]);\r\n return {\r\n getColor: function(ratio) {\r\n return 0 <= ratio && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/base_theme_manager.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString as _isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n createPalette as getPalette,\r\n getDiscretePalette,\r\n getGradientPalette,\r\n getAccentColor as accentColor\r\n} from \"../palette\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport {\r\n getTheme,\r\n addCacheItem,\r\n removeCacheItem\r\n} from \"../themes\";\r\nvar _getTheme = getTheme;\r\nvar _addCacheItem = addCacheItem;\r\nvar _removeCacheItem = removeCacheItem;\r\nvar _extend = extend;\r\nvar _each = each;\r\n\r\nfunction getThemePart(theme, path) {\r\n var _theme = theme;\r\n path && _each(path.split(\".\"), (function(_, pathItem) {\r\n return _theme = _theme[pathItem]\r\n }));\r\n return _theme\r\n}\r\nexport var BaseThemeManager = Class.inherit({\r\n ctor: function(options) {\r\n this._themeSection = options.themeSection;\r\n this._fontFields = options.fontFields || [];\r\n _addCacheItem(this)\r\n },\r\n dispose: function() {\r\n _removeCacheItem(this);\r\n this._callback = this._theme = this._font = null;\r\n return this\r\n },\r\n setCallback: function(callback) {\r\n this._callback = callback;\r\n return this\r\n },\r\n setTheme: function(theme, rtl) {\r\n this._current = theme;\r\n this._rtl = rtl;\r\n return this.refresh()\r\n },\r\n refresh: function() {\r\n var current = this._current || {};\r\n var theme = _getTheme(current.name || current);\r\n this._themeName = theme.name;\r\n this._defaultPalette = theme.defaultPalette;\r\n this._font = _extend({}, theme.font, current.font);\r\n this._themeSection && _each(this._themeSection.split(\".\"), (function(_, path) {\r\n theme = _extend(true, {}, theme[path])\r\n }));\r\n this._theme = _extend(true, {}, theme, _isString(current) ? {} : current);\r\n this._initializeTheme();\r\n if (_parseScalar(this._rtl, this._theme.rtlEnabled)) {\r\n _extend(true, this._theme, this._theme._rtl)\r\n }\r\n this._callback();\r\n return this\r\n },\r\n theme: function(path) {\r\n return getThemePart(this._theme, path)\r\n },\r\n themeName: function() {\r\n return this._themeName\r\n },\r\n createPalette: function(palette, options) {\r\n return getPalette(palette, options, this._defaultPalette)\r\n },\r\n createDiscretePalette: function(palette, count) {\r\n return getDiscretePalette(palette, count, this._defaultPalette)\r\n },\r\n createGradientPalette: function(palette) {\r\n return getGradientPalette(palette, this._defaultPalette)\r\n },\r\n getAccentColor: function(palette) {\r\n return accentColor(palette, this._defaultPalette)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n _each(that._fontFields || [], (function(_, path) {\r\n that._initializeFont(getThemePart(that._theme, path))\r\n }))\r\n },\r\n _initializeFont: function(font) {\r\n _extend(font, this._font, _extend({}, font))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/errors_warnings.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E2001: \"Invalid data source\",\r\n E2002: \"Axis type and data type are incompatible\",\r\n E2003: 'The \"{0}\" data source field contains data of unsupported type',\r\n E2004: 'The \"{0}\" data source field is inconsistent',\r\n E2005: 'The value field \"{0}\" is absent in the data source or all its values are negative',\r\n E2006: \"A cycle is detected in provided data\",\r\n E2007: 'The value field \"{0}\" is absent in the data source',\r\n E2008: 'The value field \"{0}\" must be a string',\r\n E2009: 'The value field \"{0}\" must be a positive numeric value',\r\n E2101: \"Unknown series type: {0}\",\r\n E2102: \"Ambiguity occurred between two value axes with the same name\",\r\n E2103: 'The \"{0}\" option is given an invalid value. Assign a function instead',\r\n E2104: \"Invalid logarithm base\",\r\n E2105: 'Invalid value of a \"{0}\"',\r\n E2202: \"Invalid {0} scale value\",\r\n E2203: \"The range you are trying to set is invalid\",\r\n W2002: \"The {0} series cannot be drawn because the {1} data field is missing\",\r\n W2003: \"Tick interval is too small\",\r\n W2101: 'The \"{0}\" pane does not exist; the last pane is used by default',\r\n W2102: 'A value axis with the \"{0}\" name was created automatically',\r\n W2103: \"The chart title was hidden due to the container size\",\r\n W2104: \"The legend was hidden due to the container size\",\r\n W2105: 'The title of the \"{0}\" axis was hidden due to the container size',\r\n W2106: 'The labels of the \"{0}\" axis were hidden due to the container size',\r\n W2107: \"The export menu was hidden due to the container size\",\r\n W2108: \"The browser does not support exporting images to {0} format.\",\r\n W2301: \"Invalid value range\"\r\n});\r\n","/**\r\n * DevExtreme (esm/viz/core/layout.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeEnum as _normalizeEnum\r\n} from \"./utils\";\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nvar ALIGN_START = 0;\r\nvar ALIGN_MIDDLE = 1;\r\nvar ALIGN_END = 2;\r\nvar horizontalAlignmentMap = {\r\n left: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n right: ALIGN_END\r\n};\r\nvar verticalAlignmentMap = {\r\n top: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n bottom: ALIGN_END\r\n};\r\nvar sideMap = {\r\n horizontal: 0,\r\n vertical: 1\r\n};\r\nvar slicersMap = {};\r\nvar BBOX_CEIL_CORRECTION = 2;\r\nslicersMap[ALIGN_START] = function(a, b, size) {\r\n return [a, _min(b, a + size)]\r\n};\r\nslicersMap[ALIGN_MIDDLE] = function(a, b, size) {\r\n return [_max(a, (a + b - size) / 2), _min(b, (a + b + size) / 2)]\r\n};\r\nslicersMap[ALIGN_END] = function(a, b, size) {\r\n return [_max(a, b - size), b]\r\n};\r\n\r\nfunction pickValue(value, map, defaultValue) {\r\n var val = _normalizeEnum(value);\r\n return val in map ? map[val] : defaultValue\r\n}\r\n\r\nfunction normalizeLayoutOptions(options) {\r\n var side = pickValue(options.side, sideMap, 1);\r\n var alignment = [pickValue(options.horizontalAlignment, horizontalAlignmentMap, ALIGN_MIDDLE), pickValue(options.verticalAlignment, verticalAlignmentMap, ALIGN_START)];\r\n return {\r\n side: side,\r\n primary: bringToEdge(alignment[side]),\r\n secondary: alignment[1 - side],\r\n weak: options.weak,\r\n priority: options.priority || 0,\r\n header: options.header,\r\n position: options.position\r\n }\r\n}\r\n\r\nfunction bringToEdge(primary) {\r\n return primary < 2 ? 0 : 2\r\n}\r\n\r\nfunction getConjugateSide(side) {\r\n return 1 - side\r\n}\r\n\r\nfunction getSlice(alignment, a, b, size) {\r\n return slicersMap[alignment](a, b, size)\r\n}\r\n\r\nfunction getShrink(alignment, size) {\r\n return (alignment > 0 ? -1 : 1) * size\r\n}\r\n\r\nfunction processForward(item, rect, minSize) {\r\n var side = item.side;\r\n var size = item.element.measure([rect[2] - rect[0], rect[3] - rect[1]]);\r\n var minSide = \"indside\" === item.position ? 0 : minSize[side];\r\n var isValid = size[side] < rect[2 + side] - rect[side] - minSide;\r\n if (isValid) {\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + side] += getShrink(item.primary, size[side])\r\n }\r\n item.size = size\r\n }\r\n return isValid\r\n}\r\n\r\nfunction processRectBackward(item, rect, alignmentRect) {\r\n var primarySide = item.side;\r\n var secondarySide = getConjugateSide(primarySide);\r\n var itemRect = [];\r\n var secondary = getSlice(item.secondary, alignmentRect[secondarySide], alignmentRect[2 + secondarySide], item.size[secondarySide]);\r\n itemRect[primarySide] = _round(itemRect[2 + primarySide] = rect[item.primary + primarySide] + (\"inside\" === item.position ? getShrink(item.primary, item.size[primarySide]) : 0));\r\n itemRect[item.primary + primarySide] = _round(rect[item.primary + primarySide] - getShrink(item.primary, item.size[primarySide]));\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + primarySide] = itemRect[item.primary + primarySide]\r\n }\r\n itemRect[secondarySide] = _round(secondary[0]);\r\n itemRect[2 + secondarySide] = _round(secondary[1]);\r\n return itemRect\r\n}\r\n\r\nfunction processBackward(item, rect, alignmentRect, fitRect, size, targetRect) {\r\n var itemRect = processRectBackward(item, rect, alignmentRect);\r\n var itemFitRect = processRectBackward(item, fitRect, fitRect);\r\n if (size[item.side] > 0) {\r\n size[item.side] -= item.size[item.side];\r\n targetRect[item.primary + item.side] = itemRect[item.primary + item.side];\r\n item.element.freeSpace()\r\n } else {\r\n item.element.move(itemRect, itemFitRect)\r\n }\r\n}\r\n\r\nfunction Layout() {\r\n this._targets = []\r\n}\r\nLayout.prototype = {\r\n constructor: Layout,\r\n dispose: function() {\r\n this._targets = null\r\n },\r\n add: function(target) {\r\n this._targets.push(target)\r\n },\r\n forward: function(targetRect, minSize) {\r\n var rect = targetRect.slice();\r\n var targets = createTargets(this._targets);\r\n var i;\r\n var ii = targets.length;\r\n var cache = [];\r\n for (i = 0; i < ii; ++i) {\r\n if (processForward(targets[i], rect, minSize)) {\r\n cache.push(targets[i])\r\n } else {\r\n targets[i].element.freeSpace()\r\n }\r\n }\r\n this._cache = cache.reverse();\r\n return rect\r\n },\r\n backward: function(targetRect, alignmentRect) {\r\n var size = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [0, 0];\r\n var backwardRect = targetRect.slice();\r\n var fitRect = targetRect.slice();\r\n var targets = this._cache;\r\n var targetSide = 0;\r\n var target;\r\n var i;\r\n var ii = targets.length;\r\n for (i = 0; i < ii; ++i) {\r\n target = targets[i];\r\n if (target.side !== targetSide) {\r\n backwardRect = targetRect.slice()\r\n }\r\n processBackward(target, backwardRect, alignmentRect, fitRect, size, targetRect);\r\n targetSide = target.side\r\n }\r\n return size\r\n }\r\n};\r\n\r\nfunction createTargets(targets) {\r\n var i;\r\n var ii = targets.length;\r\n var collection = [];\r\n var layout;\r\n for (i = 0; i < ii; ++i) {\r\n layout = targets[i].layoutOptions();\r\n if (layout) {\r\n layout = normalizeLayoutOptions(layout);\r\n layout.element = targets[i];\r\n collection.push(layout)\r\n }\r\n }\r\n collection.sort((function(a, b) {\r\n return b.side - a.side || a.priority - b.priority\r\n }));\r\n collection = processWeakItems(collection);\r\n return collection\r\n}\r\n\r\nfunction processWeakItems(collection) {\r\n var weakItem = collection.filter((function(item) {\r\n return true === item.weak\r\n }))[0];\r\n var headerItem;\r\n if (weakItem) {\r\n headerItem = collection.filter((function(item) {\r\n return weakItem.primary === item.primary && item.side === weakItem.side && item !== weakItem\r\n }))[0]\r\n }\r\n if (weakItem && headerItem) {\r\n return [makeHeader(headerItem, weakItem)].concat(collection.filter((function(item) {\r\n return !(item === headerItem || item === weakItem)\r\n })))\r\n }\r\n return collection\r\n}\r\n\r\nfunction processBackwardHeaderRect(element, rect) {\r\n var rectCopy = rect.slice();\r\n var itemRect = processRectBackward(element, rectCopy, rectCopy);\r\n itemRect[element.side] = rect[element.side];\r\n itemRect[2 + element.side] = rect[2 + element.side];\r\n return itemRect\r\n}\r\n\r\nfunction makeHeader(header, weakElement) {\r\n var side = header.side;\r\n var primary = header.primary;\r\n var secondary = header.secondary;\r\n return {\r\n side: side,\r\n primary: primary,\r\n secondary: secondary,\r\n priority: 0,\r\n element: {\r\n measure: function(targetSize) {\r\n var result = targetSize.slice();\r\n var weakSize = weakElement.element.measure(targetSize.slice());\r\n targetSize[primary] -= weakSize[primary];\r\n var headerSize = header.element.measure(targetSize.slice());\r\n result[side] = weakSize[side] = headerSize[side] = Math.max(headerSize[side], weakSize[side]);\r\n weakElement.size = weakSize;\r\n header.size = headerSize;\r\n return result\r\n },\r\n move: function(rect, fitRect) {\r\n if (fitRect[2] - fitRect[0] < header.size[0] + weakElement.size[0] - BBOX_CEIL_CORRECTION) {\r\n this.freeSpace();\r\n return\r\n }\r\n var weakRect = processBackwardHeaderRect(weakElement, fitRect);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, fitRect);\r\n if (fitRect[2 + weakElement.primary] < rect[2 + weakElement.primary] && header.size[header.primary] > rect[2 + header.primary] - rect[header.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary]\r\n }\r\n var headerRect = processBackwardHeaderRect(header, rect);\r\n if (headerRect[2 + weakElement.primary] > fitRect[2 + weakElement.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary];\r\n headerRect = processBackwardHeaderRect(header, rect)\r\n }\r\n weakElement.element.move(weakRect);\r\n header.element.move(headerRect, headerFitReact)\r\n },\r\n freeSpace: function() {\r\n header.element.freeSpace();\r\n weakElement.element.freeSpace()\r\n }\r\n }\r\n }\r\n}\r\nexport default Layout;\r\n","/**\r\n * DevExtreme (esm/common/charts.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getNextDefsSvgId\r\n} from \"../viz/core/utils\";\r\nvar graphicObjects = {};\r\nexport var registerPattern = options => {\r\n var id = getNextDefsSvgId();\r\n graphicObjects[id] = _extends({\r\n type: \"pattern\"\r\n }, options);\r\n return id\r\n};\r\nexport var registerGradient = (type, options) => {\r\n var id = getNextDefsSvgId();\r\n graphicObjects[id] = _extends({\r\n type: type\r\n }, options);\r\n return id\r\n};\r\nexport var getGraphicObjects = () => graphicObjects;\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../../core/version\";\r\nimport {\r\n format as _stringFormat\r\n} from \"../../core/utils/string\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport _windowResizeCallbacks from \"../../core/utils/resize_callbacks\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport {\r\n normalizeEnum\r\n} from \"./utils\";\r\nvar ERROR_MESSAGES = warnings.ERROR_MESSAGES;\r\nexport function createEventTrigger(eventsMap, callbackGetter) {\r\n var triggers = {};\r\n each(eventsMap, (function(name, info) {\r\n if (info.name) {\r\n createEvent(name)\r\n }\r\n }));\r\n var changes;\r\n triggerEvent.change = function(name) {\r\n var eventInfo = eventsMap[name];\r\n if (eventInfo) {\r\n (changes = changes || {})[name] = eventInfo\r\n }\r\n return !!eventInfo\r\n };\r\n triggerEvent.applyChanges = function() {\r\n if (changes) {\r\n each(changes, (function(name, eventInfo) {\r\n createEvent(eventInfo.newName || name)\r\n }));\r\n changes = null\r\n }\r\n };\r\n triggerEvent.dispose = function() {\r\n eventsMap = callbackGetter = triggers = null\r\n };\r\n return triggerEvent;\r\n\r\n function createEvent(name) {\r\n var eventInfo = eventsMap[name];\r\n triggers[eventInfo.name] = callbackGetter(name, eventInfo.actionSettings)\r\n }\r\n\r\n function triggerEvent(name, arg, complete) {\r\n triggers[name](arg);\r\n complete && complete()\r\n }\r\n}\r\nexport var createIncidentOccurred = function(widgetName, eventTrigger) {\r\n return function(id, args) {\r\n eventTrigger(\"incidentOccurred\", {\r\n target: {\r\n id: id,\r\n type: \"E\" === id[0] ? \"error\" : \"warning\",\r\n args: args,\r\n text: _stringFormat.apply(null, [ERROR_MESSAGES[id]].concat(args || [])),\r\n widget: widgetName,\r\n version: version\r\n }\r\n })\r\n }\r\n};\r\n\r\nfunction getResizeManager(resizeCallback) {\r\n return (observe, unsubscribe) => {\r\n var {\r\n handler: handler,\r\n dispose: dispose\r\n } = createDeferredHandler(resizeCallback, unsubscribe);\r\n observe(handler);\r\n return dispose\r\n }\r\n}\r\n\r\nfunction createDeferredHandler(callback, unsubscribe) {\r\n var timeout;\r\n var handler = function() {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(callback, 100)\r\n };\r\n return {\r\n handler: handler,\r\n dispose() {\r\n clearTimeout(timeout);\r\n unsubscribe(handler)\r\n }\r\n }\r\n}\r\nexport function createResizeHandler(contentElement, redrawOnResize, resize) {\r\n var disposeHandler;\r\n var resizeManager = getResizeManager(resize);\r\n if (\"windowonly\" === normalizeEnum(redrawOnResize)) {\r\n disposeHandler = resizeManager(handler => _windowResizeCallbacks.add(handler), handler => _windowResizeCallbacks.remove(handler))\r\n } else if (true === redrawOnResize) {\r\n disposeHandler = resizeManager(handler => resizeObserverSingleton.observe(contentElement, handler), () => resizeObserverSingleton.unobserve(contentElement))\r\n }\r\n return disposeHandler\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/base_widget.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isObject as _isObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n BaseThemeManager\r\n} from \"../core/base_theme_manager\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n changes,\r\n replaceInherit\r\n} from \"./helpers\";\r\nimport {\r\n parseScalar as _parseScalar\r\n} from \"./utils\";\r\nimport warnings from \"./errors_warnings\";\r\nimport {\r\n Renderer\r\n} from \"./renderers/renderer\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport _Layout from \"./layout\";\r\nimport devices from \"../../core/devices\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getGraphicObjects\r\n} from \"../../common/charts\";\r\nimport {\r\n createEventTrigger,\r\n createResizeHandler,\r\n createIncidentOccurred\r\n} from \"./base_widget.utils\";\r\nvar _floor = Math.floor;\r\nvar _log = warnings.log;\r\nvar SIZE_CHANGING_THRESHOLD = 1;\r\nvar OPTION_RTL_ENABLED = \"rtlEnabled\";\r\nvar SIZED_ELEMENT_CLASS = \"dx-sized-element\";\r\nvar _option = DOMComponent.prototype.option;\r\n\r\nfunction getTrue() {\r\n return true\r\n}\r\n\r\nfunction getFalse() {\r\n return false\r\n}\r\n\r\nfunction areCanvasesDifferent(canvas1, canvas2) {\r\n return !(Math.abs(canvas1.width - canvas2.width) < SIZE_CHANGING_THRESHOLD && Math.abs(canvas1.height - canvas2.height) < SIZE_CHANGING_THRESHOLD && canvas1.left === canvas2.left && canvas1.top === canvas2.top && canvas1.right === canvas2.right && canvas1.bottom === canvas2.bottom)\r\n}\r\n\r\nfunction defaultOnIncidentOccurred(e) {\r\n if (!e.component._eventsStrategy.hasEvent(\"incidentOccurred\")) {\r\n _log.apply(null, [e.target.id].concat(e.target.args || []))\r\n }\r\n}\r\n\r\nfunction pickPositiveValue(values) {\r\n return values.reduce((function(result, value) {\r\n return value > 0 && !result ? value : result\r\n }), 0)\r\n}\r\nvar getEmptyComponent = function() {\r\n var emptyComponentConfig = {\r\n _initTemplates() {},\r\n ctor(element, options) {\r\n this.callBase(element, options);\r\n var sizedElement = domAdapter.createElement(\"div\");\r\n var width = options && isNumeric(options.width) ? options.width + \"px\" : \"100%\";\r\n var height = options && isNumeric(options.height) ? options.height + \"px\" : this._getDefaultSize().height + \"px\";\r\n domAdapter.setStyle(sizedElement, \"width\", width);\r\n domAdapter.setStyle(sizedElement, \"height\", height);\r\n domAdapter.setClass(sizedElement, SIZED_ELEMENT_CLASS);\r\n domAdapter.insertElement(element, sizedElement)\r\n }\r\n };\r\n var EmptyComponent = DOMComponent.inherit(emptyComponentConfig);\r\n var originalInherit = EmptyComponent.inherit;\r\n EmptyComponent.inherit = function(config) {\r\n for (var field in config) {\r\n if (isFunction(config[field]) && \"_\" !== field.substr(0, 1) && \"option\" !== field || \"_dispose\" === field || \"_optionChanged\" === field) {\r\n config[field] = noop\r\n }\r\n }\r\n return originalInherit.call(this, config)\r\n };\r\n return EmptyComponent\r\n};\r\n\r\nfunction callForEach(functions) {\r\n functions.forEach(c => c())\r\n}\r\n\r\nfunction floorCanvasDimensions(canvas) {\r\n return _extends({}, canvas, {\r\n height: _floor(canvas.height),\r\n width: _floor(canvas.width)\r\n })\r\n}\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction sizeIsValid(value) {\r\n return isDefined(value) && value > 0\r\n}\r\nvar baseWidget = isServerSide ? getEmptyComponent() : DOMComponent.inherit({\r\n _eventsMap: {\r\n onIncidentOccurred: {\r\n name: \"incidentOccurred\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n },\r\n onDrawn: {\r\n name: \"drawn\",\r\n actionSettings: {\r\n excludeValidators: [\"disabled\"]\r\n }\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onIncidentOccurred: defaultOnIncidentOccurred\r\n })\r\n },\r\n _useLinks: true,\r\n _init: function() {\r\n var that = this;\r\n that._$element.children(\".\" + SIZED_ELEMENT_CLASS).remove();\r\n that._graphicObjects = {};\r\n that.callBase.apply(that, arguments);\r\n that._changesLocker = 0;\r\n that._optionChangedLocker = 0;\r\n that._asyncFirstDrawing = true;\r\n that._changes = changes();\r\n that._suspendChanges();\r\n that._themeManager = that._createThemeManager();\r\n that._themeManager.setCallback((function() {\r\n that._requestChange(that._themeDependentChanges)\r\n }));\r\n that._renderElementAttributes();\r\n that._initRenderer();\r\n var linkTarget = that._useLinks && that._renderer.root;\r\n linkTarget && linkTarget.enableLinks().virtualLink(\"core\").virtualLink(\"peripheral\");\r\n that._renderVisibilityChange();\r\n that._attachVisibilityChangeHandlers();\r\n that._toggleParentsScrollSubscription(this._isVisible());\r\n that._initEventTrigger();\r\n that._incidentOccurred = createIncidentOccurred(that.NAME, that._eventTrigger);\r\n that._layout = new _Layout;\r\n linkTarget && linkTarget.linkAfter(\"core\");\r\n that._initPlugins();\r\n that._initCore();\r\n linkTarget && linkTarget.linkAfter();\r\n that._change(that._initialChanges)\r\n },\r\n _createThemeManager() {\r\n return new BaseThemeManager(this._getThemeManagerOptions())\r\n },\r\n _getThemeManagerOptions() {\r\n return {\r\n themeSection: this._themeSection,\r\n fontFields: this._fontFields\r\n }\r\n },\r\n _initialChanges: [\"LAYOUT\", \"RESIZE_HANDLER\", \"THEME\", \"DISABLED\"],\r\n _initPlugins: function() {\r\n var that = this;\r\n each(that._plugins, (function(_, plugin) {\r\n plugin.init.call(that)\r\n }))\r\n },\r\n _disposePlugins: function() {\r\n var that = this;\r\n each(that._plugins.slice().reverse(), (function(_, plugin) {\r\n plugin.dispose.call(that)\r\n }))\r\n },\r\n _change: function(codes) {\r\n this._changes.add(codes)\r\n },\r\n _suspendChanges: function() {\r\n ++this._changesLocker\r\n },\r\n _resumeChanges: function() {\r\n if (0 === --this._changesLocker && this._changes.count() > 0 && !this._applyingChanges) {\r\n this._renderer.lock();\r\n this._applyingChanges = true;\r\n this._applyChanges();\r\n this._changes.reset();\r\n this._applyingChanges = false;\r\n this._changesApplied();\r\n this._renderer.unlock();\r\n if (this._optionsQueue) {\r\n this._applyQueuedOptions()\r\n }\r\n this.resolveItemsDeferred(this._legend ? [this._legend] : []);\r\n this._optionChangedLocker++;\r\n this._notify();\r\n this._optionChangedLocker--\r\n }\r\n },\r\n resolveItemsDeferred(items) {\r\n this._resolveDeferred(this._getTemplatesItems(items))\r\n },\r\n _collectTemplatesFromItems: items => items.reduce((prev, i) => ({\r\n items: prev.items.concat(i.getTemplatesDef()),\r\n groups: prev.groups.concat(i.getTemplatesGroups())\r\n }), {\r\n items: [],\r\n groups: []\r\n }),\r\n _getTemplatesItems(items) {\r\n var elements = this._collectTemplatesFromItems(items);\r\n var extraItems = this._getExtraTemplatesItems();\r\n return {\r\n items: extraItems.items.concat(elements.items),\r\n groups: extraItems.groups.concat(elements.groups),\r\n launchRequest: [extraItems.launchRequest],\r\n doneRequest: [extraItems.doneRequest]\r\n }\r\n },\r\n _getExtraTemplatesItems: () => ({\r\n items: [],\r\n groups: [],\r\n launchRequest: () => {},\r\n doneRequest: () => {}\r\n }),\r\n _resolveDeferred(_ref) {\r\n var {\r\n items: items,\r\n launchRequest: launchRequest,\r\n doneRequest: doneRequest,\r\n groups: groups\r\n } = _ref;\r\n var that = this;\r\n that._setGroupsVisibility(groups, \"hidden\");\r\n if (that._changesApplying) {\r\n that._changesApplying = false;\r\n callForEach(doneRequest);\r\n return\r\n }\r\n var syncRendering = true;\r\n when.apply(that, items).done(() => {\r\n if (syncRendering) {\r\n that._setGroupsVisibility(groups, \"visible\");\r\n return\r\n }\r\n callForEach(launchRequest);\r\n that._changesApplying = true;\r\n var changes = [\"LAYOUT\", \"FULL_RENDER\"];\r\n if (that._asyncFirstDrawing) {\r\n changes.push(\"FORCE_FIRST_DRAWING\");\r\n that._asyncFirstDrawing = false\r\n } else {\r\n changes.push(\"FORCE_DRAWING\")\r\n }\r\n that._requestChange(changes);\r\n that._setGroupsVisibility(groups, \"visible\")\r\n });\r\n syncRendering = false\r\n },\r\n _setGroupsVisibility(groups, visibility) {\r\n groups.forEach(g => g.attr({\r\n visibility: visibility\r\n }))\r\n },\r\n _applyQueuedOptions: function() {\r\n var queue = this._optionsQueue;\r\n this._optionsQueue = null;\r\n this.beginUpdate();\r\n each(queue, (function(_, action) {\r\n action()\r\n }));\r\n this.endUpdate()\r\n },\r\n _requestChange: function(codes) {\r\n this._suspendChanges();\r\n this._change(codes);\r\n this._resumeChanges()\r\n },\r\n _applyChanges: function() {\r\n var changes = this._changes;\r\n var order = this._totalChangesOrder;\r\n var i;\r\n var ii = order.length;\r\n for (i = 0; i < ii; ++i) {\r\n if (changes.has(order[i])) {\r\n this[\"_change_\" + order[i]]()\r\n }\r\n }\r\n },\r\n _optionChangesOrder: [\"EVENTS\", \"THEME\", \"RENDERER\", \"RESIZE_HANDLER\"],\r\n _layoutChangesOrder: [\"ELEMENT_ATTR\", \"CONTAINER_SIZE\", \"LAYOUT\"],\r\n _customChangesOrder: [\"DISABLED\"],\r\n _change_EVENTS: function() {\r\n this._eventTrigger.applyChanges()\r\n },\r\n _change_THEME: function() {\r\n this._setThemeAndRtl()\r\n },\r\n _change_RENDERER: function() {\r\n this._setRendererOptions()\r\n },\r\n _change_RESIZE_HANDLER: function() {\r\n this._setupResizeHandler()\r\n },\r\n _change_ELEMENT_ATTR: function() {\r\n this._renderElementAttributes();\r\n this._change([\"CONTAINER_SIZE\"])\r\n },\r\n _change_CONTAINER_SIZE: function() {\r\n this._updateSize()\r\n },\r\n _change_LAYOUT: function() {\r\n this._setContentSize()\r\n },\r\n _change_DISABLED: function() {\r\n var renderer = this._renderer;\r\n var root = renderer.root;\r\n if (this.option(\"disabled\")) {\r\n this._initDisabledState = root.attr(\"pointer-events\");\r\n root.attr({\r\n \"pointer-events\": \"none\",\r\n filter: renderer.getGrayScaleFilter().id\r\n })\r\n } else if (\"none\" === root.attr(\"pointer-events\")) {\r\n root.attr({\r\n \"pointer-events\": isDefined(this._initDisabledState) ? this._initDisabledState : null,\r\n filter: null\r\n })\r\n }\r\n },\r\n _themeDependentChanges: [\"RENDERER\"],\r\n _initRenderer: function() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._renderer = new Renderer({\r\n cssClass: this._rootClassPrefix + \" \" + this._rootClass,\r\n pathModified: this.option(\"pathModified\"),\r\n container: this._$element[0]\r\n });\r\n this._renderer.resize(this._canvas.width, this._canvas.height)\r\n },\r\n _disposeRenderer: function() {\r\n this._renderer.dispose()\r\n },\r\n _disposeGraphicObjects: function() {\r\n for (var id in this._graphicObjects) {\r\n this._graphicObjects[id].dispose()\r\n }\r\n this._graphicObjects = null\r\n },\r\n _getAnimationOptions: noop,\r\n render: function() {\r\n this._requestChange([\"CONTAINER_SIZE\"]);\r\n var visible = this._isVisible();\r\n this._toggleParentsScrollSubscription(visible);\r\n !visible && this._stopCurrentHandling()\r\n },\r\n _toggleParentsScrollSubscription: function(subscribe) {\r\n var $parents = $(this._renderer.root.element).parents();\r\n if (\"generic\" === devices.real().platform) {\r\n $parents = $parents.add(getWindow())\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || function() {\r\n this._stopCurrentHandling()\r\n }.bind(this);\r\n eventsEngine.off($().add(this._$prevRootParents), \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n if (subscribe) {\r\n eventsEngine.on($parents, \"scroll.viz_widgets\", this._proxiedTargetParentsScrollHandler);\r\n this._$prevRootParents = $parents\r\n }\r\n },\r\n _stopCurrentHandling: noop,\r\n _dispose: function() {\r\n var that = this;\r\n if (this._disposed) {\r\n return\r\n }\r\n that.callBase.apply(that, arguments);\r\n that._toggleParentsScrollSubscription(false);\r\n that._removeResizeHandler();\r\n that._layout.dispose();\r\n that._eventTrigger.dispose();\r\n that._disposeCore();\r\n that._disposePlugins();\r\n that._disposeGraphicObjects();\r\n that._disposeRenderer();\r\n that._themeManager.dispose();\r\n that._themeManager = that._renderer = that._eventTrigger = null\r\n },\r\n _initEventTrigger: function() {\r\n var that = this;\r\n that._eventTrigger = createEventTrigger(that._eventsMap, (function(name, actionSettings) {\r\n return that._createActionByOption(name, actionSettings)\r\n }))\r\n },\r\n _calculateRawCanvas: function() {\r\n var that = this;\r\n var size = that.option(\"size\") || {};\r\n var margin = that.option(\"margin\") || {};\r\n var defaultCanvas = that._getDefaultSize() || {};\r\n var getSizeOfSide = (size, side, getter) => {\r\n if (sizeIsValid(size[side]) || !hasWindow()) {\r\n return 0\r\n }\r\n var elementSize = getter(that._$element);\r\n return elementSize <= 1 ? 0 : elementSize\r\n };\r\n var elementWidth = getSizeOfSide(size, \"width\", x => getWidth(x));\r\n var elementHeight = getSizeOfSide(size, \"height\", x => getHeight(x));\r\n var canvas = {\r\n width: size.width <= 0 ? 0 : pickPositiveValue([size.width, elementWidth, defaultCanvas.width]),\r\n height: size.height <= 0 ? 0 : pickPositiveValue([size.height, elementHeight, defaultCanvas.height]),\r\n left: pickPositiveValue([margin.left, defaultCanvas.left]),\r\n top: pickPositiveValue([margin.top, defaultCanvas.top]),\r\n right: pickPositiveValue([margin.right, defaultCanvas.right]),\r\n bottom: pickPositiveValue([margin.bottom, defaultCanvas.bottom])\r\n };\r\n if (canvas.width - canvas.left - canvas.right <= 0 || canvas.height - canvas.top - canvas.bottom <= 0) {\r\n canvas = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return canvas\r\n },\r\n _updateSize: function() {\r\n var rawCanvas = this._calculateRawCanvas();\r\n if (areCanvasesDifferent(this._canvas, rawCanvas) || this.__forceRender) {\r\n this._canvas = floorCanvasDimensions(rawCanvas);\r\n this._recreateSizeDependentObjects(true);\r\n this._renderer.resize(this._canvas.width, this._canvas.height);\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n _recreateSizeDependentObjects: noop,\r\n _getMinSize: function() {\r\n return [0, 0]\r\n },\r\n _getAlignmentRect: noop,\r\n _setContentSize: function() {\r\n var canvas = this._canvas;\r\n var layout = this._layout;\r\n var rect = canvas.width > 0 && canvas.height > 0 ? [canvas.left, canvas.top, canvas.width - canvas.right, canvas.height - canvas.bottom] : [0, 0, 0, 0];\r\n rect = layout.forward(rect, this._getMinSize());\r\n var nextRect = this._applySize(rect) || rect;\r\n layout.backward(nextRect, this._getAlignmentRect() || nextRect)\r\n },\r\n _getOption: function(name, isScalar) {\r\n var theme = this._themeManager.theme(name);\r\n var option = this.option(name);\r\n return isScalar ? void 0 !== option ? option : theme : extend(true, {}, theme, option)\r\n },\r\n _setupResizeHandler: function() {\r\n var that = this;\r\n var redrawOnResize = _parseScalar(that._getOption(\"redrawOnResize\", true), true);\r\n if (that._disposeResizeHandler) {\r\n that._removeResizeHandler()\r\n }\r\n that._disposeResizeHandler = createResizeHandler(that._$element[0], redrawOnResize, () => that._requestChange([\"CONTAINER_SIZE\"]))\r\n },\r\n _removeResizeHandler: function() {\r\n if (this._disposeResizeHandler) {\r\n this._disposeResizeHandler();\r\n this._disposeResizeHandler = null\r\n }\r\n },\r\n _onBeginUpdate: noop,\r\n beginUpdate: function() {\r\n var that = this;\r\n if (that._initialized && that._isUpdateAllowed()) {\r\n that._onBeginUpdate();\r\n that._suspendChanges()\r\n }\r\n that.callBase.apply(that, arguments);\r\n return that\r\n },\r\n endUpdate: function() {\r\n this.callBase();\r\n this._isUpdateAllowed() && this._resumeChanges();\r\n return this\r\n },\r\n option: function(name) {\r\n var that = this;\r\n if (that._initialized && that._applyingChanges && (arguments.length > 1 || _isObject(name))) {\r\n that._optionsQueue = that._optionsQueue || [];\r\n that._optionsQueue.push(that._getActionForUpdating(arguments))\r\n } else {\r\n return _option.apply(that, arguments)\r\n }\r\n },\r\n _getActionForUpdating: function(args) {\r\n var that = this;\r\n return function() {\r\n _option.apply(that, args)\r\n }\r\n },\r\n _clean: noop,\r\n _render: noop,\r\n _optionChanged: function(arg) {\r\n var that = this;\r\n if (that._optionChangedLocker) {\r\n return\r\n }\r\n var partialChanges = that.getPartialChangeOptionsName(arg);\r\n var changes = [];\r\n if (partialChanges.length > 0) {\r\n partialChanges.forEach(pc => changes.push(that._partialOptionChangesMap[pc]))\r\n } else {\r\n changes.push(that._optionChangesMap[arg.name])\r\n }\r\n changes = changes.filter(c => !!c);\r\n if (that._eventTrigger.change(arg.name)) {\r\n that._change([\"EVENTS\"])\r\n } else if (changes.length > 0) {\r\n that._change(changes)\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n _notify: noop,\r\n _changesApplied: noop,\r\n _optionChangesMap: {\r\n size: \"CONTAINER_SIZE\",\r\n margin: \"CONTAINER_SIZE\",\r\n redrawOnResize: \"RESIZE_HANDLER\",\r\n theme: \"THEME\",\r\n rtlEnabled: \"THEME\",\r\n encodeHtml: \"THEME\",\r\n elementAttr: \"ELEMENT_ATTR\",\r\n disabled: \"DISABLED\"\r\n },\r\n _partialOptionChangesMap: {},\r\n _partialOptionChangesPath: {},\r\n getPartialChangeOptionsName: function(changedOption) {\r\n var that = this;\r\n var fullName = changedOption.fullName;\r\n var sections = fullName.split(/[.]/);\r\n var name = changedOption.name;\r\n var value = changedOption.value;\r\n var options = this._partialOptionChangesPath[name];\r\n var partialChangeOptionsName = [];\r\n if (options) {\r\n if (true === options) {\r\n partialChangeOptionsName.push(name)\r\n } else {\r\n options.forEach(op => {\r\n fullName.indexOf(op) >= 0 && partialChangeOptionsName.push(op)\r\n });\r\n if (1 === sections.length) {\r\n if (\"object\" === type(value)) {\r\n that._addOptionsNameForPartialUpdate(value, options, partialChangeOptionsName)\r\n } else if (\"array\" === type(value)) {\r\n if (value.length > 0 && value.every(item => that._checkOptionsForPartialUpdate(item, options))) {\r\n value.forEach(item => that._addOptionsNameForPartialUpdate(item, options, partialChangeOptionsName))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return partialChangeOptionsName.filter((value, index, self) => self.indexOf(value) === index)\r\n },\r\n _checkOptionsForPartialUpdate: function(optionObject, options) {\r\n return !Object.keys(optionObject).some(key => -1 === options.indexOf(key))\r\n },\r\n _addOptionsNameForPartialUpdate: function(optionObject, options, partialChangeOptionsName) {\r\n var optionKeys = Object.keys(optionObject);\r\n if (this._checkOptionsForPartialUpdate(optionObject, options)) {\r\n optionKeys.forEach(key => options.indexOf(key) > -1 && partialChangeOptionsName.push(key))\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.render()\r\n },\r\n _setThemeAndRtl: function() {\r\n this._themeManager.setTheme(this.option(\"theme\"), this.option(OPTION_RTL_ENABLED))\r\n },\r\n _getRendererOptions: function() {\r\n return {\r\n rtl: this.option(OPTION_RTL_ENABLED),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n animation: this._getAnimationOptions()\r\n }\r\n },\r\n _setRendererOptions: function() {\r\n this._renderer.setOptions(this._getRendererOptions())\r\n },\r\n svg: function() {\r\n return this._renderer.svg()\r\n },\r\n getSize: function() {\r\n var canvas = this._canvas || {};\r\n return {\r\n width: canvas.width,\r\n height: canvas.height\r\n }\r\n },\r\n isReady: getFalse,\r\n _dataIsReady: getTrue,\r\n _resetIsReady: function() {\r\n this.isReady = getFalse\r\n },\r\n _renderGraphicObjects: function() {\r\n var renderer = this._renderer;\r\n var graphics = getGraphicObjects();\r\n for (var id in graphics) {\r\n if (!this._graphicObjects[id]) {\r\n var {\r\n type: _type,\r\n colors: colors,\r\n rotationAngle: rotationAngle,\r\n template: template,\r\n width: width,\r\n height: height\r\n } = graphics[id];\r\n switch (_type) {\r\n case \"linear\":\r\n this._graphicObjects[id] = renderer.linearGradient(colors, id, rotationAngle);\r\n break;\r\n case \"radial\":\r\n this._graphicObjects[id] = renderer.radialGradient(colors, id);\r\n break;\r\n case \"pattern\":\r\n this._graphicObjects[id] = renderer.customPattern(id, this._getTemplate(template), width, height)\r\n }\r\n }\r\n }\r\n },\r\n _drawn: function() {\r\n var that = this;\r\n that.isReady = getFalse;\r\n if (that._dataIsReady()) {\r\n that._renderer.onEndAnimation((function() {\r\n that.isReady = getTrue\r\n }))\r\n }\r\n that._eventTrigger(\"drawn\", {})\r\n }\r\n});\r\nexport default baseWidget;\r\nreplaceInherit(baseWidget);\r\n","/**\r\n * DevExtreme (esm/viz/core/helpers.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend as _extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar isServerSide = !hasWindow();\r\n\r\nfunction Flags() {\r\n this.reset()\r\n}\r\nFlags.prototype = {\r\n constructor: Flags,\r\n add: function(codes) {\r\n var i;\r\n var ii = codes.length;\r\n var flags = this._flags;\r\n for (i = 0; i < ii; ++i) {\r\n flags[codes[i]] = 1\r\n }\r\n },\r\n has: function(code) {\r\n return this._flags[code] > 0\r\n },\r\n count: function() {\r\n return Object.keys(this._flags).length\r\n },\r\n reset: function() {\r\n this._flags = {}\r\n }\r\n};\r\n\r\nfunction combineMaps(baseMap, thisMap) {\r\n return baseMap !== thisMap ? _extend({}, baseMap, thisMap) : _extend({}, baseMap)\r\n}\r\n\r\nfunction combineLists(baseList, thisList) {\r\n return baseList !== thisList ? baseList.concat(thisList) : baseList.slice()\r\n}\r\n\r\nfunction buildTotalChanges(proto) {\r\n proto._totalChangesOrder = proto._optionChangesOrder.concat(proto._layoutChangesOrder, proto._customChangesOrder)\r\n}\r\n\r\nfunction addChange(settings) {\r\n var proto = this.prototype;\r\n var code = settings.code;\r\n proto[\"_change_\" + code] = settings.handler;\r\n if (settings.isThemeDependent) {\r\n proto._themeDependentChanges.push(code)\r\n }\r\n if (settings.option) {\r\n proto._optionChangesMap[settings.option] = code\r\n }(settings.isOptionChange ? proto._optionChangesOrder : proto._customChangesOrder).push(code);\r\n buildTotalChanges(proto)\r\n}\r\n\r\nfunction createChainExecutor() {\r\n var executeChain = function executeChain() {\r\n var i;\r\n var ii = executeChain._chain.length;\r\n var result;\r\n for (i = 0; i < ii; ++i) {\r\n result = executeChain._chain[i].apply(this, arguments)\r\n }\r\n return result\r\n };\r\n executeChain._chain = [];\r\n executeChain.add = function(item) {\r\n executeChain._chain.push(item)\r\n };\r\n executeChain.copy = function(executor) {\r\n executeChain._chain = executor._chain.slice()\r\n };\r\n return executeChain\r\n}\r\nexport function expand(target, name, expander) {\r\n var current = target[name];\r\n if (!current) {\r\n current = expander\r\n } else if (!current.add) {\r\n current = createChainExecutor();\r\n current.add(target[name]);\r\n current.add(expander)\r\n } else {\r\n if (false === Object.prototype.hasOwnProperty.call(target, name)) {\r\n current = createChainExecutor();\r\n current.copy(target[name])\r\n }\r\n current.add(expander)\r\n }\r\n target[name] = current\r\n}\r\n\r\nfunction addPlugin(plugin) {\r\n var proto = this.prototype;\r\n proto._plugins.push(plugin);\r\n plugin.fontFields && proto._fontFields.push.apply(proto._fontFields, plugin.fontFields);\r\n if (plugin.members) {\r\n _extend(this.prototype, plugin.members)\r\n }\r\n if (plugin.customize) {\r\n plugin.customize(this)\r\n }\r\n if (plugin.extenders) {\r\n Object.keys(plugin.extenders).forEach((function(key) {\r\n var func = plugin.extenders[key];\r\n expand(proto, key, func)\r\n }), this)\r\n }\r\n}\r\nexport var replaceInherit = isServerSide ? function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var result = _inherit.apply(this, arguments);\r\n var proto = result.prototype;\r\n [\"_plugins\", \"_eventsMap\", \"_initialChanges\", \"_themeDependentChanges\", \"_optionChangesMap\", \"_optionChangesOrder\", \"_layoutChangesOrder\", \"_customChangesOrder\", \"_totalChangesOrder\"].forEach((function(key) {\r\n proto[key] = {}\r\n }));\r\n result.addPlugin = noop;\r\n return result\r\n };\r\n widget.addChange = noop;\r\n widget.addPlugin = noop\r\n} : function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var proto = this.prototype;\r\n var plugins = proto._plugins;\r\n var fontFields = proto._fontFields;\r\n var eventsMap = proto._eventsMap;\r\n var initialChanges = proto._initialChanges;\r\n var themeDependentChanges = proto._themeDependentChanges;\r\n var optionChangesMap = proto._optionChangesMap;\r\n var partialOptionChangesMap = proto._partialOptionChangesMap;\r\n var partialOptionChangesPath = proto._partialOptionChangesPath;\r\n var optionChangesOrder = proto._optionChangesOrder;\r\n var layoutChangesOrder = proto._layoutChangesOrder;\r\n var customChangesOrder = proto._customChangesOrder;\r\n var result = _inherit.apply(this, arguments);\r\n proto = result.prototype;\r\n proto._plugins = combineLists(plugins, proto._plugins);\r\n proto._fontFields = combineLists(fontFields, proto._fontFields);\r\n proto._eventsMap = combineMaps(eventsMap, proto._eventsMap);\r\n proto._initialChanges = combineLists(initialChanges, proto._initialChanges);\r\n proto._themeDependentChanges = combineLists(themeDependentChanges, proto._themeDependentChanges);\r\n proto._optionChangesMap = combineMaps(optionChangesMap, proto._optionChangesMap);\r\n proto._partialOptionChangesMap = combineMaps(partialOptionChangesMap, proto._partialOptionChangesMap);\r\n proto._partialOptionChangesPath = combineMaps(partialOptionChangesPath, proto._partialOptionChangesPath);\r\n proto._optionChangesOrder = combineLists(optionChangesOrder, proto._optionChangesOrder);\r\n proto._layoutChangesOrder = combineLists(layoutChangesOrder, proto._layoutChangesOrder);\r\n proto._customChangesOrder = combineLists(customChangesOrder, proto._customChangesOrder);\r\n buildTotalChanges(proto);\r\n result.addPlugin = addPlugin;\r\n return result\r\n };\r\n widget.prototype._plugins = [];\r\n widget.prototype._fontFields = [];\r\n widget.addChange = addChange;\r\n widget.addPlugin = addPlugin\r\n};\r\nexport function changes() {\r\n return new Flags\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/animation.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../../animation/frame\";\r\nvar noop = function() {};\r\nexport var easingFunctions = {\r\n easeOutCubic: function(pos, start, end) {\r\n return 1 === pos ? end : (1 - Math.pow(1 - pos, 3)) * (end - start) + +start\r\n },\r\n linear: function(pos, start, end) {\r\n return 1 === pos ? end : pos * (end - start) + +start\r\n }\r\n};\r\nexport var animationSvgStep = {\r\n segments: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var curSeg;\r\n var seg;\r\n var i;\r\n var j;\r\n var segments = [];\r\n for (i = 0; i < from.length; i++) {\r\n curSeg = from[i];\r\n seg = [curSeg[0]];\r\n if (curSeg.length > 1) {\r\n for (j = 1; j < curSeg.length; j++) {\r\n seg.push(easing(progress, curSeg[j], to[i][j]))\r\n }\r\n }\r\n segments.push(seg)\r\n }\r\n currentParams.segments = params.end && 1 === progress ? params.end : segments;\r\n elem.attr({\r\n segments: segments\r\n })\r\n },\r\n arc: function(elem, params, progress, easing) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n transform: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = currentParams[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n base: function(elem, params, progress, easing, currentParams, attributeName) {\r\n var obj = {};\r\n obj[attributeName] = currentParams[attributeName] = easing(progress, params.from, params.to);\r\n elem.attr(obj)\r\n },\r\n _: noop,\r\n complete: function(element, currentSettings) {\r\n element.attr(currentSettings)\r\n }\r\n};\r\n\r\nfunction step(now) {\r\n var animateStep = this._animateStep;\r\n var attrName;\r\n this._progress = this._calcProgress(now);\r\n for (attrName in this.params) {\r\n var anim = animateStep[attrName] || animateStep.base;\r\n anim(this.element, this.params[attrName], this._progress, this._easing, this._currentParams, attrName)\r\n }\r\n this.options.step && this.options.step(this._easing(this._progress, 0, 1), this._progress);\r\n if (1 === this._progress) {\r\n return this.stop()\r\n }\r\n return true\r\n}\r\n\r\nfunction delayTick(now) {\r\n if (now - this._startTime >= this.delay) {\r\n this.tick = step\r\n }\r\n return true\r\n}\r\n\r\nfunction start(now) {\r\n this._startTime = now;\r\n this.tick = this.delay ? delayTick : step;\r\n return true\r\n}\r\n\r\nfunction Animation(element, params, options) {\r\n this._progress = 0;\r\n this.element = element;\r\n this.params = params;\r\n this.options = options;\r\n this.duration = options.partitionDuration ? options.duration * options.partitionDuration : options.duration;\r\n this.delay = options.delay && options.duration * options.delay || 0;\r\n this._animateStep = options.animateStep || animationSvgStep;\r\n this._easing = easingFunctions[options.easing] || easingFunctions.easeOutCubic;\r\n this._currentParams = {};\r\n this.tick = start\r\n}\r\nAnimation.prototype = {\r\n _calcProgress: function(now) {\r\n return Math.min(1, (now - this.delay - this._startTime) / this.duration)\r\n },\r\n stop: function(disableComplete) {\r\n var options = this.options;\r\n var animateStep = this._animateStep;\r\n this.stop = this.tick = noop;\r\n animateStep.complete && animateStep.complete(this.element, this._currentParams);\r\n options.complete && !disableComplete && options.complete()\r\n }\r\n};\r\nexport function AnimationController(element) {\r\n this._animationCount = 0;\r\n this._timerId = null;\r\n this._animations = {};\r\n this.element = element\r\n}\r\nAnimationController.prototype = {\r\n _loop: function() {\r\n var that = this;\r\n var animations = that._animations;\r\n var activeAnimation = 0;\r\n var now = (new Date).getTime();\r\n var an;\r\n var endAnimation = that._endAnimation;\r\n for (an in animations) {\r\n if (!animations[an].tick(now)) {\r\n delete animations[an]\r\n }\r\n activeAnimation++\r\n }\r\n if (0 === activeAnimation) {\r\n that.stop();\r\n that._endAnimationTimer = endAnimation && setTimeout((function() {\r\n if (0 === that._animationCount) {\r\n endAnimation();\r\n that._endAnimation = null\r\n }\r\n }));\r\n return\r\n }\r\n that._timerId = requestAnimationFrame.call(null, (function() {\r\n that._loop()\r\n }), that.element)\r\n },\r\n addAnimation: function(animation) {\r\n var that = this;\r\n that._animations[that._animationCount++] = animation;\r\n clearTimeout(that._endAnimationTimer);\r\n if (!that._timerId) {\r\n clearTimeout(that._startDelay);\r\n that._startDelay = setTimeout((function() {\r\n that._timerId = 1;\r\n that._loop()\r\n }), 0)\r\n }\r\n },\r\n animateElement: function(elem, params, options) {\r\n if (elem && params && options) {\r\n elem.animation && elem.animation.stop();\r\n this.addAnimation(elem.animation = new Animation(elem, params, options))\r\n }\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationCount ? this._endAnimation = endAnimation : endAnimation()\r\n },\r\n dispose: function() {\r\n this.stop();\r\n this.element = null\r\n },\r\n stop: function() {\r\n this._animations = {};\r\n this._animationCount = 0;\r\n cancelAnimationFrame(this._timerId);\r\n clearTimeout(this._startDelay);\r\n clearTimeout(this._endAnimationTimer);\r\n this._timerId = null\r\n },\r\n lock: function() {\r\n var an;\r\n var animations = this._animations;\r\n var unstoppable;\r\n var hasUnstoppableInAnimations;\r\n for (an in animations) {\r\n unstoppable = animations[an].options.unstoppable;\r\n hasUnstoppableInAnimations = hasUnstoppableInAnimations || unstoppable;\r\n if (!unstoppable) {\r\n animations[an].stop(true);\r\n delete animations[an]\r\n }\r\n }!hasUnstoppableInAnimations && this.stop()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/renderers/renderer.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport callOnce from \"../../../core/utils/call_once\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n getSvgMarkup\r\n} from \"../../../core/utils/svg\";\r\nimport {\r\n AnimationController\r\n} from \"./animation\";\r\nimport {\r\n normalizeBBox,\r\n rotateBBox,\r\n normalizeEnum,\r\n normalizeArcParams,\r\n getNextDefsSvgId\r\n} from \"../utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nvar window = getWindow();\r\nvar {\r\n max: max,\r\n round: round\r\n} = Math;\r\nvar SHARPING_CORRECTION = .5;\r\nvar ARC_COORD_PREC = 5;\r\nvar LIGHTENING_HASH = \"@filter::lightening\";\r\nvar pxAddingExceptions = {\r\n \"column-count\": true,\r\n \"fill-opacity\": true,\r\n \"flex-grow\": true,\r\n \"flex-shrink\": true,\r\n \"font-weight\": true,\r\n \"line-height\": true,\r\n opacity: true,\r\n order: true,\r\n orphans: true,\r\n widows: true,\r\n \"z-index\": true,\r\n zoom: true\r\n};\r\nvar KEY_TEXT = \"text\";\r\nvar KEY_STROKE = \"stroke\";\r\nvar KEY_STROKE_WIDTH = \"stroke-width\";\r\nvar KEY_STROKE_OPACITY = \"stroke-opacity\";\r\nvar KEY_FONT_SIZE = \"font-size\";\r\nvar KEY_FONT_STYLE = \"font-style\";\r\nvar KEY_FONT_WEIGHT = \"font-weight\";\r\nvar KEY_TEXT_DECORATION = \"text-decoration\";\r\nvar KEY_TEXTS_ALIGNMENT = \"textsAlignment\";\r\nvar NONE = \"none\";\r\nvar DEFAULT_FONT_SIZE = 12;\r\nvar ELLIPSIS = \"...\";\r\nvar objectCreate = function() {\r\n if (!Object.create) {\r\n return function(proto) {\r\n var F = function() {};\r\n F.prototype = proto;\r\n return new F\r\n }\r\n } else {\r\n return function(proto) {\r\n return Object.create(proto)\r\n }\r\n }\r\n}();\r\nvar DEFAULTS = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n \"pointer-events\": null\r\n};\r\nvar getBackup = callOnce((function() {\r\n var backupContainer = domAdapter.createElement(\"div\");\r\n backupContainer.style.left = \"-9999px\";\r\n backupContainer.style.position = \"absolute\";\r\n return {\r\n backupContainer: backupContainer,\r\n backupCounter: 0\r\n }\r\n}));\r\n\r\nfunction backupRoot(root) {\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().appendChild(getBackup().backupContainer)\r\n }++getBackup().backupCounter;\r\n root.append({\r\n element: getBackup().backupContainer\r\n })\r\n}\r\n\r\nfunction restoreRoot(root, container) {\r\n root.append({\r\n element: container\r\n });\r\n --getBackup().backupCounter;\r\n if (0 === getBackup().backupCounter) {\r\n domAdapter.getBody().removeChild(getBackup().backupContainer)\r\n }\r\n}\r\n\r\nfunction isObjectArgument(value) {\r\n return value && \"string\" !== typeof value\r\n}\r\n\r\nfunction createElement(tagName) {\r\n return domAdapter.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\r\n}\r\nexport function getFuncIri(id, pathModified) {\r\n return null !== id ? \"url(\" + (pathModified ? window.location.href.split(\"#\")[0] : \"\") + \"#\" + id + \")\" : id\r\n}\r\n\r\nfunction extend(target, source) {\r\n var key;\r\n for (key in source) {\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\nvar preserveAspectRatioMap = {\r\n full: NONE,\r\n lefttop: \"xMinYMin\",\r\n leftcenter: \"xMinYMid\",\r\n leftbottom: \"xMinYMax\",\r\n centertop: \"xMidYMin\",\r\n center: \"xMidYMid\",\r\n centerbottom: \"xMidYMax\",\r\n righttop: \"xMaxYMin\",\r\n rightcenter: \"xMaxYMid\",\r\n rightbottom: \"xMaxYMax\"\r\n};\r\nexport function processHatchingAttrs(element, attrs) {\r\n if (attrs.hatching && \"none\" !== normalizeEnum(attrs.hatching.direction)) {\r\n attrs = extend({}, attrs);\r\n attrs.fill = element._hatching = element.renderer.lockDefsElements({\r\n color: attrs.fill,\r\n hatching: attrs.hatching\r\n }, element._hatching, \"pattern\");\r\n delete attrs.filter\r\n } else if (element._hatching) {\r\n element.renderer.releaseDefsElements(element._hatching);\r\n element._hatching = null;\r\n delete attrs.filter\r\n } else if (attrs.filter) {\r\n attrs = extend({}, attrs);\r\n attrs.filter = element._filter = element.renderer.lockDefsElements({}, element._filter, \"filter\")\r\n } else if (element._filter) {\r\n element.renderer.releaseDefsElements(element._filter);\r\n element._filter = null\r\n }\r\n delete attrs.hatching;\r\n return attrs\r\n}\r\nvar buildArcPath = function(x, y, innerR, outerR, startAngleCos, startAngleSin, endAngleCos, endAngleSin, isCircle, longFlag) {\r\n return [\"M\", (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC), \"A\", outerR.toFixed(ARC_COORD_PREC), outerR.toFixed(ARC_COORD_PREC), 0, longFlag, 0, (x + outerR * endAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * endAngleSin).toFixed(ARC_COORD_PREC), isCircle ? \"M\" : \"L\", (x + innerR * endAngleCos).toFixed(5), (y - innerR * endAngleSin).toFixed(ARC_COORD_PREC), \"A\", innerR.toFixed(ARC_COORD_PREC), innerR.toFixed(ARC_COORD_PREC), 0, longFlag, 1, (x + innerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - innerR * startAngleSin).toFixed(ARC_COORD_PREC), \"Z\"].join(\" \")\r\n};\r\n\r\nfunction buildPathSegments(points, type) {\r\n var list = [\r\n [\"M\", 0, 0]\r\n ];\r\n switch (type) {\r\n case \"line\":\r\n list = buildLineSegments(points);\r\n break;\r\n case \"area\":\r\n list = buildLineSegments(points, true);\r\n break;\r\n case \"bezier\":\r\n list = buildCurveSegments(points);\r\n break;\r\n case \"bezierarea\":\r\n list = buildCurveSegments(points, true)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildLineSegments(points, close) {\r\n return buildSegments(points, buildSimpleLineSegment, close)\r\n}\r\n\r\nfunction buildCurveSegments(points, close) {\r\n return buildSegments(points, buildSimpleCurveSegment, close)\r\n}\r\n\r\nfunction buildSegments(points, buildSimpleSegment, close) {\r\n var _points$;\r\n var i;\r\n var ii;\r\n var list = [];\r\n if (null !== (_points$ = points[0]) && void 0 !== _points$ && _points$.length) {\r\n for (i = 0, ii = points.length; i < ii; ++i) {\r\n buildSimpleSegment(points[i], close, list)\r\n }\r\n } else {\r\n buildSimpleSegment(points, close, list)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildSimpleLineSegment(points, close, list) {\r\n var i = 0;\r\n var k0 = list.length;\r\n var k = k0;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i].x, points[i++].y]\r\n }\r\n } else {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i++], points[i++]]\r\n }\r\n }\r\n list[k0][0] = \"M\"\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction buildSimpleCurveSegment(points, close, list) {\r\n var i;\r\n var k = list.length;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n list[k++] = [\"M\", points[0].x, points[0].y];\r\n for (i = 1; i < ii;) {\r\n list[k++] = [\"C\", points[i].x, points[i++].y, points[i].x, points[i++].y, points[i].x, points[i++].y]\r\n }\r\n } else {\r\n list[k++] = [\"M\", points[0], points[1]];\r\n for (i = 2; i < ii;) {\r\n list[k++] = [\"C\", points[i++], points[i++], points[i++], points[i++], points[i++], points[i++]]\r\n }\r\n }\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction combinePathParam(segments) {\r\n var d = [];\r\n var k = 0;\r\n var i;\r\n var ii = segments.length;\r\n var segment;\r\n var j;\r\n var jj;\r\n for (i = 0; i < ii; ++i) {\r\n segment = segments[i];\r\n for (j = 0, jj = segment.length; j < jj; ++j) {\r\n d[k++] = segment[j]\r\n }\r\n }\r\n return d.join(\" \")\r\n}\r\n\r\nfunction compensateSegments(oldSegments, newSegments, type) {\r\n var oldLength = oldSegments.length;\r\n var newLength = newSegments.length;\r\n var i;\r\n var originalNewSegments;\r\n var makeEqualSegments = -1 !== type.indexOf(\"area\") ? makeEqualAreaSegments : makeEqualLineSegments;\r\n if (0 === oldLength) {\r\n for (i = 0; i < newLength; i++) {\r\n oldSegments.push(newSegments[i].slice(0))\r\n }\r\n } else if (oldLength < newLength) {\r\n makeEqualSegments(oldSegments, newSegments, type)\r\n } else if (oldLength > newLength) {\r\n originalNewSegments = newSegments.slice(0);\r\n makeEqualSegments(newSegments, oldSegments, type)\r\n }\r\n return originalNewSegments\r\n}\r\n\r\nfunction prepareConstSegment(constSeg, type) {\r\n var x = constSeg[constSeg.length - 2];\r\n var y = constSeg[constSeg.length - 1];\r\n switch (type) {\r\n case \"line\":\r\n case \"area\":\r\n constSeg[0] = \"L\";\r\n break;\r\n case \"bezier\":\r\n case \"bezierarea\":\r\n constSeg[0] = \"C\";\r\n constSeg[1] = constSeg[3] = constSeg[5] = x;\r\n constSeg[2] = constSeg[4] = constSeg[6] = y\r\n }\r\n}\r\n\r\nfunction makeEqualLineSegments(short, long, type) {\r\n var constSeg = short[short.length - 1].slice();\r\n var i = short.length;\r\n prepareConstSegment(constSeg, type);\r\n for (; i < long.length; i++) {\r\n short[i] = constSeg.slice(0)\r\n }\r\n}\r\n\r\nfunction makeEqualAreaSegments(short, long, type) {\r\n var i;\r\n var head;\r\n var shortLength = short.length;\r\n var longLength = long.length;\r\n var constsSeg1;\r\n var constsSeg2;\r\n if ((shortLength - 1) % 2 === 0 && (longLength - 1) % 2 === 0) {\r\n i = (shortLength - 1) / 2 - 1;\r\n head = short.slice(0, i + 1);\r\n constsSeg1 = head[head.length - 1].slice(0);\r\n constsSeg2 = short.slice(i + 1)[0].slice(0);\r\n prepareConstSegment(constsSeg1, type);\r\n prepareConstSegment(constsSeg2, type);\r\n for (var j = i; j < (longLength - 1) / 2 - 1; j++) {\r\n short.splice(j + 1, 0, constsSeg1);\r\n short.splice(j + 3, 0, constsSeg2)\r\n }\r\n }\r\n}\r\n\r\nfunction baseCss(that, styles) {\r\n var elemStyles = that._styles;\r\n var key;\r\n var value;\r\n styles = styles || {};\r\n for (key in styles) {\r\n value = styles[key];\r\n if (isDefined(value)) {\r\n value += \"number\" === typeof value && !pxAddingExceptions[key] ? \"px\" : \"\";\r\n elemStyles[key] = \"\" !== value ? value : null\r\n }\r\n }\r\n for (key in elemStyles) {\r\n value = elemStyles[key];\r\n if (value) {\r\n that.element.style[key] = value\r\n } else if (null === value) {\r\n that.element.style[key] = \"\"\r\n }\r\n }\r\n return that\r\n}\r\n\r\nfunction fixFuncIri(wrapper, attribute) {\r\n var element = wrapper.element;\r\n var id = wrapper.attr(attribute);\r\n if (id && -1 !== id.indexOf(\"DevExpress\")) {\r\n element.removeAttribute(attribute);\r\n element.setAttribute(attribute, getFuncIri(id, wrapper.renderer.pathModified))\r\n }\r\n}\r\n\r\nfunction baseAttr(that, attrs) {\r\n attrs = attrs || {};\r\n var settings = that._settings;\r\n var attributes = {};\r\n var key;\r\n var value;\r\n var elem = that.element;\r\n var renderer = that.renderer;\r\n var rtl = renderer.rtl;\r\n var hasTransformations;\r\n var recalculateDashStyle;\r\n var sw;\r\n var i;\r\n if (!isObjectArgument(attrs)) {\r\n if (attrs in settings) {\r\n return settings[attrs]\r\n }\r\n if (attrs in DEFAULTS) {\r\n return DEFAULTS[attrs]\r\n }\r\n return 0\r\n }\r\n extend(attributes, attrs);\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n settings[key] = value;\r\n if (\"align\" === key) {\r\n key = \"text-anchor\";\r\n value = {\r\n left: rtl ? \"end\" : \"start\",\r\n center: \"middle\",\r\n right: rtl ? \"start\" : \"end\"\r\n } [value] || null\r\n } else if (\"dashStyle\" === key) {\r\n recalculateDashStyle = true;\r\n continue\r\n } else if (key === KEY_STROKE_WIDTH) {\r\n recalculateDashStyle = true\r\n } else if (value && (\"fill\" === key || \"clip-path\" === key || \"filter\" === key) && 0 === value.indexOf(\"DevExpress\")) {\r\n that._addFixIRICallback();\r\n value = getFuncIri(value, renderer.pathModified)\r\n } else if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y)|sharp|sharpDirection)$/i.test(key)) {\r\n hasTransformations = true;\r\n continue\r\n } else if (/^(x|y|d)$/i.test(key)) {\r\n hasTransformations = true\r\n }\r\n if (null === value) {\r\n elem.removeAttribute(key)\r\n } else {\r\n elem.setAttribute(key, value)\r\n }\r\n }\r\n if (recalculateDashStyle && \"dashStyle\" in settings) {\r\n value = settings.dashStyle;\r\n sw = (\"_originalSW\" in that ? that._originalSW : settings[KEY_STROKE_WIDTH]) || 1;\r\n key = \"stroke-dasharray\";\r\n value = null === value ? \"\" : normalizeEnum(value);\r\n if (\"\" === value || \"solid\" === value || value === NONE) {\r\n that.element.removeAttribute(key)\r\n } else {\r\n value = value.replace(/longdash/g, \"8,3,\").replace(/dash/g, \"4,3,\").replace(/dot/g, \"1,3,\").replace(/,$/, \"\").split(\",\");\r\n i = value.length;\r\n while (i--) {\r\n value[i] = parseInt(value[i]) * sw\r\n }\r\n that.element.setAttribute(key, value.join(\",\"))\r\n }\r\n }\r\n if (hasTransformations) {\r\n that._applyTransformation()\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAttr(attrs) {\r\n var segments;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n segments = attrs.segments;\r\n if (\"points\" in attrs) {\r\n segments = buildPathSegments(attrs.points, this.type);\r\n delete attrs.points\r\n }\r\n if (segments) {\r\n attrs.d = combinePathParam(segments);\r\n this.segments = segments;\r\n delete attrs.segments\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction arcAttr(attrs) {\r\n var settings = this._settings;\r\n var x;\r\n var y;\r\n var innerRadius;\r\n var outerRadius;\r\n var startAngle;\r\n var endAngle;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (\"x\" in attrs || \"y\" in attrs || \"innerRadius\" in attrs || \"outerRadius\" in attrs || \"startAngle\" in attrs || \"endAngle\" in attrs) {\r\n settings.x = x = \"x\" in attrs ? attrs.x : settings.x;\r\n delete attrs.x;\r\n settings.y = y = \"y\" in attrs ? attrs.y : settings.y;\r\n delete attrs.y;\r\n settings.innerRadius = innerRadius = \"innerRadius\" in attrs ? attrs.innerRadius : settings.innerRadius;\r\n delete attrs.innerRadius;\r\n settings.outerRadius = outerRadius = \"outerRadius\" in attrs ? attrs.outerRadius : settings.outerRadius;\r\n delete attrs.outerRadius;\r\n settings.startAngle = startAngle = \"startAngle\" in attrs ? attrs.startAngle : settings.startAngle;\r\n delete attrs.startAngle;\r\n settings.endAngle = endAngle = \"endAngle\" in attrs ? attrs.endAngle : settings.endAngle;\r\n delete attrs.endAngle;\r\n attrs.d = buildArcPath.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle))\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction rectAttr(attrs) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var sw;\r\n var maxSW;\r\n var newSW;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (void 0 !== attrs.x || void 0 !== attrs.y || void 0 !== attrs.width || void 0 !== attrs.height || void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n void 0 !== attrs.x ? x = this._originalX = attrs.x : x = this._originalX || 0;\r\n void 0 !== attrs.y ? y = this._originalY = attrs.y : y = this._originalY || 0;\r\n void 0 !== attrs.width ? width = this._originalWidth = attrs.width : width = this._originalWidth || 0;\r\n void 0 !== attrs.height ? height = this._originalHeight = attrs.height : height = this._originalHeight || 0;\r\n void 0 !== attrs[KEY_STROKE_WIDTH] ? sw = this._originalSW = attrs[KEY_STROKE_WIDTH] : sw = this._originalSW;\r\n maxSW = ~~((width < height ? width : height) / 2);\r\n newSW = (sw || 0) < maxSW ? sw || 0 : maxSW;\r\n attrs.x = x + newSW / 2;\r\n attrs.y = y + newSW / 2;\r\n attrs.width = width - newSW;\r\n attrs.height = height - newSW;\r\n ((sw || 0) !== newSW || !(0 === newSW && void 0 === sw)) && (attrs[KEY_STROKE_WIDTH] = newSW)\r\n }\r\n if (\"sharp\" in attrs) {\r\n delete attrs.sharp\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction textAttr(attrs) {\r\n var isResetRequired;\r\n if (!isObjectArgument(attrs)) {\r\n return baseAttr(this, attrs)\r\n }\r\n attrs = extend({}, attrs);\r\n var settings = this._settings;\r\n var wasStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n if (void 0 !== attrs[KEY_TEXT]) {\r\n settings[KEY_TEXT] = attrs[KEY_TEXT];\r\n delete attrs[KEY_TEXT];\r\n isResetRequired = true\r\n }\r\n if (void 0 !== attrs[KEY_STROKE]) {\r\n settings[KEY_STROKE] = attrs[KEY_STROKE];\r\n delete attrs[KEY_STROKE]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n settings[KEY_STROKE_WIDTH] = attrs[KEY_STROKE_WIDTH];\r\n delete attrs[KEY_STROKE_WIDTH]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_OPACITY]) {\r\n settings[KEY_STROKE_OPACITY] = attrs[KEY_STROKE_OPACITY];\r\n delete attrs[KEY_STROKE_OPACITY]\r\n }\r\n if (void 0 !== attrs[KEY_TEXTS_ALIGNMENT]) {\r\n alignTextNodes(this, attrs[KEY_TEXTS_ALIGNMENT]);\r\n delete attrs[KEY_TEXTS_ALIGNMENT]\r\n }\r\n var isStroked = isDefined(settings[KEY_STROKE]) && isDefined(settings[KEY_STROKE_WIDTH]);\r\n baseAttr(this, attrs);\r\n isResetRequired = isResetRequired || isStroked !== wasStroked && settings[KEY_TEXT];\r\n if (isResetRequired) {\r\n createTextNodes(this, settings.text, isStroked);\r\n this._hasEllipsis = false\r\n }\r\n if (isResetRequired || void 0 !== attrs.x || void 0 !== attrs.y) {\r\n locateTextNodes(this)\r\n }\r\n if (isStroked) {\r\n strokeTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction textCss(styles) {\r\n styles = styles || {};\r\n baseCss(this, styles);\r\n if (KEY_FONT_SIZE in styles) {\r\n locateTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction orderHtmlTree(list, line, node, parentStyle, parentClassName) {\r\n var style;\r\n var realStyle;\r\n var i;\r\n var ii;\r\n var nodes;\r\n if (void 0 !== node.wholeText) {\r\n list.push({\r\n value: node.wholeText,\r\n style: parentStyle,\r\n className: parentClassName,\r\n line: line,\r\n height: parentStyle[KEY_FONT_SIZE] || 0\r\n })\r\n } else if (\"BR\" === node.tagName) {\r\n ++line\r\n } else if (domAdapter.isElementNode(node)) {\r\n extend(style = {}, parentStyle);\r\n switch (node.tagName) {\r\n case \"B\":\r\n case \"STRONG\":\r\n style[KEY_FONT_WEIGHT] = \"bold\";\r\n break;\r\n case \"I\":\r\n case \"EM\":\r\n style[KEY_FONT_STYLE] = \"italic\";\r\n break;\r\n case \"U\":\r\n style[KEY_TEXT_DECORATION] = \"underline\"\r\n }\r\n realStyle = node.style;\r\n realStyle.color && (style.fill = realStyle.color);\r\n realStyle.fontSize && (style[KEY_FONT_SIZE] = realStyle.fontSize);\r\n realStyle.fontStyle && (style[KEY_FONT_STYLE] = realStyle.fontStyle);\r\n realStyle.fontWeight && (style[KEY_FONT_WEIGHT] = realStyle.fontWeight);\r\n realStyle.textDecoration && (style[KEY_TEXT_DECORATION] = realStyle.textDecoration);\r\n for (i = 0, nodes = node.childNodes, ii = nodes.length; i < ii; ++i) {\r\n line = orderHtmlTree(list, line, nodes[i], style, node.className || parentClassName)\r\n }\r\n }\r\n return line\r\n}\r\n\r\nfunction adjustLineHeights(items) {\r\n var i;\r\n var ii;\r\n var currentItem = items[0];\r\n var item;\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (item.line === currentItem.line) {\r\n currentItem.height = maxLengthFontSize(currentItem.height, item.height);\r\n currentItem.inherits = currentItem.inherits || 0 === parseFloat(item.height);\r\n item.height = NaN\r\n } else {\r\n currentItem = item\r\n }\r\n }\r\n}\r\n\r\nfunction removeExtraAttrs(html) {\r\n var findStyleAndClassAttrs = /(style|class)\\s*=\\s*([\"'])(?:(?!\\2).)*\\2\\s?/gi;\r\n return html.replace(/(?:(<[a-z0-9]+\\s*))([\\s\\S]*?)(>|\\/>)/gi, (function(allTagAttrs, p1, p2, p3) {\r\n p2 = (p2 && p2.match(findStyleAndClassAttrs) || []).map((function(str) {\r\n return str\r\n })).join(\" \");\r\n return p1 + p2 + p3\r\n }))\r\n}\r\n\r\nfunction parseHTML(text) {\r\n var items = [];\r\n var div = domAdapter.createElement(\"div\");\r\n div.innerHTML = text.replace(/\\r/g, \"\").replace(/\\n/g, \"<br/>\").replace(/style=/g, \"data-style=\");\r\n div.querySelectorAll(\"[data-style]\").forEach(element => {\r\n element.style = element.getAttribute(\"data-style\");\r\n element.removeAttribute(\"data-style\")\r\n });\r\n orderHtmlTree(items, 0, div, {}, \"\");\r\n adjustLineHeights(items);\r\n return items\r\n}\r\n\r\nfunction parseMultiline(text) {\r\n var texts = text.replace(/\\r/g, \"\").split(/\\n/g);\r\n var i = 0;\r\n var items = [];\r\n for (; i < texts.length; i++) {\r\n items.push({\r\n value: texts[i].trim(),\r\n height: 0,\r\n line: i\r\n })\r\n }\r\n return items\r\n}\r\n\r\nfunction createTspans(items, element, fieldName) {\r\n var i;\r\n var ii;\r\n var item;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n item[fieldName] = createElement(\"tspan\");\r\n item[fieldName].appendChild(domAdapter.createTextNode(item.value));\r\n item.style && baseCss({\r\n element: item[fieldName],\r\n _styles: {}\r\n }, item.style);\r\n item.className && item[fieldName].setAttribute(\"class\", item.className);\r\n element.appendChild(item[fieldName])\r\n }\r\n}\r\n\r\nfunction restoreText() {\r\n if (this._hasEllipsis) {\r\n this.attr({\r\n text: this._settings.text\r\n })\r\n }\r\n}\r\n\r\nfunction applyEllipsis(maxWidth) {\r\n var lines;\r\n var hasEllipsis = false;\r\n var i;\r\n var ii;\r\n var lineParts;\r\n var j;\r\n var jj;\r\n var text;\r\n restoreText.call(this);\r\n var ellipsis = this.renderer.text(ELLIPSIS).attr(this._styles).append(this.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n if (this._getElementBBox().width > maxWidth) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n maxWidth = 0\r\n } else {\r\n maxWidth -= ellipsisWidth\r\n }\r\n lines = prepareLines(this.element, this._texts, maxWidth);\r\n for (i = 0, ii = lines.length; i < ii; ++i) {\r\n lineParts = lines[i].parts;\r\n if (1 === lines[i].commonLength) {\r\n continue\r\n }\r\n for (j = 0, jj = lineParts.length; j < jj; ++j) {\r\n text = lineParts[j];\r\n if (isDefined(text.endIndex)) {\r\n setNewText(text, text.endIndex);\r\n hasEllipsis = true\r\n } else if (text.startBox > maxWidth) {\r\n removeTextSpan(text)\r\n }\r\n }\r\n }\r\n }\r\n ellipsis.remove();\r\n this._hasEllipsis = hasEllipsis;\r\n return hasEllipsis\r\n}\r\n\r\nfunction cloneAndRemoveAttrs(node) {\r\n var clone;\r\n if (node) {\r\n clone = node.cloneNode();\r\n clone.removeAttribute(\"y\");\r\n clone.removeAttribute(\"x\")\r\n }\r\n return clone || node\r\n}\r\n\r\nfunction detachTitleElements(element) {\r\n var titleElements = domAdapter.querySelectorAll(element, \"title\");\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.removeChild(titleElements[i])\r\n }\r\n return titleElements\r\n}\r\n\r\nfunction detachAndStoreTitleElements(element) {\r\n var titleElements = detachTitleElements(element);\r\n return () => {\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.appendChild(titleElements[i])\r\n }\r\n }\r\n}\r\n\r\nfunction setMaxSize(maxWidth, maxHeight) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n var lines = [];\r\n var textChanged = false;\r\n var textIsEmpty = false;\r\n var ellipsisMaxWidth = maxWidth;\r\n restoreText.call(that);\r\n var restoreTitleElement = detachAndStoreTitleElements(this.element);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n var {\r\n width: width,\r\n height: height\r\n } = that._getElementBBox();\r\n if ((width || height) && (width > maxWidth || maxHeight && height > maxHeight)) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n ellipsisMaxWidth = 0\r\n } else {\r\n ellipsisMaxWidth -= ellipsisWidth\r\n }\r\n lines = applyOverflowRules(that.element, that._texts, maxWidth, ellipsisMaxWidth, options);\r\n lines = setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, parseFloat(this._getLineHeight()));\r\n this._texts = lines.reduce((texts, line) => texts.concat(line.parts), []).filter(t => \"\" !== t.value).map(t => {\r\n t.stroke && t.tspan.parentNode.appendChild(t.stroke);\r\n return t\r\n }).map(t => {\r\n t.tspan.parentNode.appendChild(t.tspan);\r\n return t\r\n });\r\n !this._texts.length && (this._texts = null);\r\n textChanged = true;\r\n if (this._texts) {\r\n locateTextNodes(this)\r\n } else {\r\n this.element.textContent = \"\";\r\n textIsEmpty = true\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = textChanged;\r\n restoreTitleElement();\r\n return {\r\n rowCount: lines.length,\r\n textChanged: textChanged,\r\n textIsEmpty: textIsEmpty\r\n }\r\n}\r\n\r\nfunction getIndexForEllipsis(text, maxWidth, startBox, endBox) {\r\n var k;\r\n var kk;\r\n if (startBox <= maxWidth && endBox > maxWidth) {\r\n for (k = 1, kk = text.value.length; k <= kk; ++k) {\r\n if (startBox + text.tspan.getSubStringLength(0, k) > maxWidth) {\r\n return k - 1\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTextWidth(text) {\r\n return text.value.length ? text.tspan.getSubStringLength(0, text.value.length) : 0\r\n}\r\n\r\nfunction prepareLines(element, texts, maxWidth) {\r\n var lines = [];\r\n var i;\r\n var ii;\r\n var text;\r\n var startBox;\r\n var endBox;\r\n if (texts) {\r\n for (i = 0, ii = texts.length; i < ii; ++i) {\r\n text = texts[i];\r\n if (!lines[text.line]) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n lines[text.line].parts.push(text);\r\n lines[text.line].commonLength += text.value.length\r\n }\r\n endBox = startBox + text.tspan.getSubStringLength(0, text.value.length);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n startBox = endBox\r\n }\r\n } else {\r\n text = {\r\n value: element.textContent,\r\n tspan: element\r\n };\r\n text.startBox = startBox = 0;\r\n endBox = startBox + getTextWidth(text);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n lines = [{\r\n commonLength: element.textContent.length,\r\n parts: [text]\r\n }]\r\n }\r\n return lines\r\n}\r\n\r\nfunction getSpaceBreakIndex(text, maxWidth) {\r\n var initialIndices = text.startBox > 0 ? [0] : [];\r\n var spaceIndices = text.value.split(\"\").reduce((indices, char, index) => {\r\n if (\" \" === char) {\r\n indices.push(index)\r\n }\r\n return indices\r\n }, initialIndices);\r\n var spaceIndex = 0;\r\n while (void 0 !== spaceIndices[spaceIndex + 1] && text.startBox + text.tspan.getSubStringLength(0, spaceIndices[spaceIndex + 1]) < maxWidth) {\r\n spaceIndex++\r\n }\r\n return spaceIndices[spaceIndex]\r\n}\r\n\r\nfunction getWordBreakIndex(text, maxWidth) {\r\n for (var i = 0; i < text.value.length - 1; i++) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i + 1) > maxWidth) {\r\n return i\r\n }\r\n }\r\n}\r\n\r\nfunction getEllipsisString(ellipsisMaxWidth, _ref) {\r\n var {\r\n hideOverflowEllipsis: hideOverflowEllipsis\r\n } = _ref;\r\n return hideOverflowEllipsis && 0 === ellipsisMaxWidth ? \"\" : ELLIPSIS\r\n}\r\n\r\nfunction setEllipsis(text, ellipsisMaxWidth, options) {\r\n var ellipsis = getEllipsisString(ellipsisMaxWidth, options);\r\n if (text.value.length && text.tspan.parentNode) {\r\n for (var i = text.value.length - 1; i >= 1; i--) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i) < ellipsisMaxWidth) {\r\n setNewText(text, i, ellipsis);\r\n break\r\n } else if (1 === i) {\r\n setNewText(text, 0, ellipsis)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction wordWrap(text, maxWidth, ellipsisMaxWidth, options, lastStepBreakIndex) {\r\n var wholeText = text.value;\r\n var breakIndex;\r\n if (\"none\" !== options.wordWrap) {\r\n breakIndex = \"normal\" === options.wordWrap ? getSpaceBreakIndex(text, maxWidth) : getWordBreakIndex(text, maxWidth)\r\n }\r\n var restLines = [];\r\n var restText;\r\n if (isFinite(breakIndex) && !(0 === lastStepBreakIndex && 0 === breakIndex)) {\r\n setNewText(text, breakIndex, \"\");\r\n var newTextOffset = \" \" === wholeText[breakIndex] ? 1 : 0;\r\n var restString = wholeText.slice(breakIndex + newTextOffset);\r\n if (restString.length) {\r\n var restTspan = cloneAndRemoveAttrs(text.tspan);\r\n restTspan.textContent = restString;\r\n text.tspan.parentNode.appendChild(restTspan);\r\n restText = extend(extend({}, text), {\r\n value: restString,\r\n startBox: 0,\r\n height: 0,\r\n tspan: restTspan,\r\n stroke: cloneAndRemoveAttrs(text.stroke),\r\n endBox: restTspan.getSubStringLength(0, restString.length)\r\n });\r\n restText.stroke && (restText.stroke.textContent = restString);\r\n if (restText.endBox > maxWidth) {\r\n restLines = wordWrap(restText, maxWidth, ellipsisMaxWidth, options, breakIndex);\r\n if (!restLines.length) {\r\n return []\r\n }\r\n }\r\n }\r\n }\r\n if (text.value.length) {\r\n if (\"ellipsis\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n if (\"hide\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n return []\r\n }\r\n } else {\r\n text.tspan.parentNode.removeChild(text.tspan)\r\n }\r\n var parts = [];\r\n if (restText) {\r\n parts.push(restText)\r\n }\r\n return [{\r\n commonLength: wholeText.length,\r\n parts: parts\r\n }].concat(restLines)\r\n}\r\n\r\nfunction calculateLineHeight(line, lineHeight) {\r\n return line.parts.reduce((height, text) => max(height, getItemLineHeight(text, lineHeight)), 0)\r\n}\r\n\r\nfunction setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, lineHeight) {\r\n var textOverflow = options.textOverflow;\r\n if (!isFinite(maxHeight) || 0 === Number(maxHeight) || \"none\" === textOverflow) {\r\n return lines\r\n }\r\n var result = lines.reduce((_ref2, l, index, arr) => {\r\n var [lines, commonHeight] = _ref2;\r\n var height = calculateLineHeight(l, lineHeight);\r\n commonHeight += height;\r\n if (commonHeight < maxHeight) {\r\n lines.push(l)\r\n } else {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n });\r\n if (\"ellipsis\" === textOverflow) {\r\n var prevLine = arr[index - 1];\r\n if (prevLine) {\r\n var text = prevLine.parts[prevLine.parts.length - 1];\r\n if (!text.hasEllipsis) {\r\n if (0 === ellipsisMaxWidth || text.endBox < ellipsisMaxWidth) {\r\n setNewText(text, text.value.length, getEllipsisString(ellipsisMaxWidth, options))\r\n } else {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return [lines, commonHeight]\r\n }, [\r\n [], 0\r\n ]);\r\n if (\"hide\" === textOverflow && result[1] > maxHeight) {\r\n result[0].forEach(l => {\r\n l.parts.forEach(item => {\r\n removeTextSpan(item)\r\n })\r\n });\r\n return []\r\n }\r\n return result[0]\r\n}\r\n\r\nfunction applyOverflowRules(element, texts, maxWidth, ellipsisMaxWidth, options) {\r\n if (!texts) {\r\n var textValue = element.textContent;\r\n var text = {\r\n value: textValue,\r\n height: 0,\r\n line: 0\r\n };\r\n element.textContent = \"\";\r\n createTspans([text], element, \"tspan\");\r\n texts = [text]\r\n }\r\n return texts.reduce((_ref3, text) => {\r\n var [lines, startBox, endBox, stop, lineNumber] = _ref3;\r\n var line = lines[lines.length - 1];\r\n if (stop) {\r\n return [lines, startBox, endBox, stop]\r\n }\r\n if (!line || text.line !== lineNumber) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n if (startBox > ellipsisMaxWidth && \"none\" === options.wordWrap && \"ellipsis\" === options.textOverflow) {\r\n removeTextSpan(text);\r\n return [lines, startBox, endBox, stop, lineNumber]\r\n }\r\n line.parts.push(text);\r\n line.commonLength += text.value.length\r\n }\r\n text.endBox = endBox = startBox + getTextWidth(text);\r\n startBox = endBox;\r\n if (isDefined(maxWidth) && endBox > maxWidth) {\r\n var wordWrapLines = wordWrap(text, maxWidth, ellipsisMaxWidth, options);\r\n if (!wordWrapLines.length) {\r\n lines = [];\r\n stop = true\r\n } else {\r\n lines = lines.concat(wordWrapLines.filter(l => l.parts.length > 0))\r\n }\r\n }\r\n return [lines, startBox, endBox, stop, text.line]\r\n }, [\r\n [], 0, 0, false, 0\r\n ])[0]\r\n}\r\n\r\nfunction setNewText(text, index) {\r\n var insertString = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ELLIPSIS;\r\n var newText = text.value.substr(0, index) + insertString;\r\n text.value = text.tspan.textContent = newText;\r\n text.stroke && (text.stroke.textContent = newText);\r\n if (insertString === ELLIPSIS) {\r\n text.hasEllipsis = true\r\n }\r\n}\r\n\r\nfunction removeTextSpan(text) {\r\n text.tspan.parentNode && text.tspan.parentNode.removeChild(text.tspan);\r\n text.stroke && text.stroke.parentNode && text.stroke.parentNode.removeChild(text.stroke)\r\n}\r\n\r\nfunction createTextNodes(wrapper, text, isStroked) {\r\n var items;\r\n var parsedHtml;\r\n wrapper._texts = null;\r\n wrapper.clear();\r\n if (null === text) {\r\n return\r\n }\r\n text = \"\" + text;\r\n if (!wrapper.renderer.encodeHtml && (/<[a-z][\\s\\S]*>/i.test(text) || -1 !== text.indexOf(\"&\"))) {\r\n parsedHtml = removeExtraAttrs(text);\r\n items = parseHTML(parsedHtml)\r\n } else if (/\\n/g.test(text)) {\r\n items = parseMultiline(text)\r\n } else if (isStroked) {\r\n items = [{\r\n value: text.trim(),\r\n height: 0\r\n }]\r\n }\r\n if (items) {\r\n if (items.length) {\r\n wrapper._texts = items;\r\n if (isStroked) {\r\n createTspans(items, wrapper.element, KEY_STROKE)\r\n }\r\n createTspans(items, wrapper.element, \"tspan\")\r\n }\r\n } else {\r\n wrapper.element.appendChild(domAdapter.createTextNode(text))\r\n }\r\n}\r\n\r\nfunction setTextNodeAttribute(item, name, value) {\r\n item.tspan.setAttribute(name, value);\r\n item.stroke && item.stroke.setAttribute(name, value)\r\n}\r\n\r\nfunction getItemLineHeight(item, defaultValue) {\r\n return item.inherits ? maxLengthFontSize(item.height, defaultValue) : item.height || defaultValue\r\n}\r\n\r\nfunction locateTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var x = wrapper._settings.x;\r\n var lineHeight = wrapper._getLineHeight();\r\n var i;\r\n var ii;\r\n var item = items[0];\r\n setTextNodeAttribute(item, \"x\", x);\r\n setTextNodeAttribute(item, \"y\", wrapper._settings.y);\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (parseFloat(item.height) >= 0) {\r\n setTextNodeAttribute(item, \"x\", x);\r\n var height = getItemLineHeight(item, lineHeight);\r\n setTextNodeAttribute(item, \"dy\", height)\r\n }\r\n }\r\n}\r\n\r\nfunction alignTextNodes(wrapper, alignment) {\r\n if (!wrapper._texts || \"center\" === alignment) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var direction = \"left\" === alignment ? -1 : 1;\r\n var maxTextWidth = Math.max.apply(Math, items.map(t => getTextWidth(t)));\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var textWidth = getTextWidth(item);\r\n if (0 !== maxTextWidth && maxTextWidth !== textWidth) {\r\n setTextNodeAttribute(item, \"dx\", direction * round((maxTextWidth - textWidth) / 2 * 10) / 10)\r\n }\r\n }\r\n}\r\n\r\nfunction maxLengthFontSize(fontSize1, fontSize2) {\r\n var parsedHeight1 = parseFloat(fontSize1);\r\n var parsedHeight2 = parseFloat(fontSize2);\r\n var height1 = parsedHeight1 || DEFAULT_FONT_SIZE;\r\n var height2 = parsedHeight2 || DEFAULT_FONT_SIZE;\r\n return height1 > height2 ? !isNaN(parsedHeight1) ? fontSize1 : height1 : !isNaN(parsedHeight2) ? fontSize2 : height2\r\n}\r\n\r\nfunction strokeTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var stroke = wrapper._settings[KEY_STROKE];\r\n var strokeWidth = wrapper._settings[KEY_STROKE_WIDTH];\r\n var strokeOpacity = wrapper._settings[KEY_STROKE_OPACITY] || 1;\r\n var tspan;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n tspan = items[i].stroke;\r\n tspan.setAttribute(KEY_STROKE, stroke);\r\n tspan.setAttribute(KEY_STROKE_WIDTH, strokeWidth);\r\n tspan.setAttribute(KEY_STROKE_OPACITY, strokeOpacity);\r\n tspan.setAttribute(\"stroke-linejoin\", \"round\")\r\n }\r\n}\r\n\r\nfunction baseAnimate(that, params, options, complete) {\r\n options = options || {};\r\n var key;\r\n var value;\r\n var renderer = that.renderer;\r\n var settings = that._settings;\r\n var animationParams = {};\r\n var defaults = {\r\n translateX: 0,\r\n translateY: 0,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotate: 0,\r\n rotateX: 0,\r\n rotateY: 0\r\n };\r\n if (complete) {\r\n options.complete = complete\r\n }\r\n if (renderer.animationEnabled()) {\r\n for (key in params) {\r\n value = params[key];\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y))$/i.test(key)) {\r\n animationParams.transform = animationParams.transform || {\r\n from: {},\r\n to: {}\r\n };\r\n animationParams.transform.from[key] = key in settings ? Number(settings[key].toFixed(3)) : defaults[key];\r\n animationParams.transform.to[key] = value\r\n } else if (\"arc\" === key || \"segments\" === key) {\r\n animationParams[key] = value\r\n } else {\r\n animationParams[key] = {\r\n from: key in settings ? settings[key] : parseFloat(that.element.getAttribute(key) || 0),\r\n to: value\r\n }\r\n }\r\n }\r\n renderer.animateElement(that, animationParams, extend(extend({}, renderer._animation), options))\r\n } else {\r\n options.step && options.step.call(that, 1, 1);\r\n options.complete && options.complete.call(that);\r\n that.attr(params)\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAnimate(params, options, complete) {\r\n var curSegments = this.segments || [];\r\n var newSegments;\r\n var endSegments;\r\n if (this.renderer.animationEnabled() && \"points\" in params) {\r\n newSegments = buildPathSegments(params.points, this.type);\r\n endSegments = compensateSegments(curSegments, newSegments, this.type);\r\n params.segments = {\r\n from: curSegments,\r\n to: newSegments,\r\n end: endSegments\r\n };\r\n delete params.points\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction arcAnimate(params, options, complete) {\r\n var settings = this._settings;\r\n var arcParams = {\r\n from: {},\r\n to: {}\r\n };\r\n if (this.renderer.animationEnabled() && (\"x\" in params || \"y\" in params || \"innerRadius\" in params || \"outerRadius\" in params || \"startAngle\" in params || \"endAngle\" in params)) {\r\n arcParams.from.x = settings.x || 0;\r\n arcParams.from.y = settings.y || 0;\r\n arcParams.from.innerRadius = settings.innerRadius || 0;\r\n arcParams.from.outerRadius = settings.outerRadius || 0;\r\n arcParams.from.startAngle = settings.startAngle || 0;\r\n arcParams.from.endAngle = settings.endAngle || 0;\r\n arcParams.to.x = \"x\" in params ? params.x : settings.x;\r\n delete params.x;\r\n arcParams.to.y = \"y\" in params ? params.y : settings.y;\r\n delete params.y;\r\n arcParams.to.innerRadius = \"innerRadius\" in params ? params.innerRadius : settings.innerRadius;\r\n delete params.innerRadius;\r\n arcParams.to.outerRadius = \"outerRadius\" in params ? params.outerRadius : settings.outerRadius;\r\n delete params.outerRadius;\r\n arcParams.to.startAngle = \"startAngle\" in params ? params.startAngle : settings.startAngle;\r\n delete params.startAngle;\r\n arcParams.to.endAngle = \"endAngle\" in params ? params.endAngle : settings.endAngle;\r\n delete params.endAngle;\r\n params.arc = arcParams\r\n }\r\n return baseAnimate(this, params, options, complete)\r\n}\r\n\r\nfunction buildLink(target, parameters) {\r\n var obj = {\r\n is: false,\r\n name: parameters.name || parameters,\r\n after: parameters.after\r\n };\r\n if (target) {\r\n obj.to = target\r\n } else {\r\n obj.virtual = true\r\n }\r\n return obj\r\n}\r\nexport var SvgElement = function(renderer, tagName, type) {\r\n this.renderer = renderer;\r\n this.element = createElement(tagName);\r\n this._settings = {};\r\n this._styles = {};\r\n if (\"path\" === tagName) {\r\n this.type = type || \"line\"\r\n }\r\n};\r\n\r\nfunction removeFuncIriCallback(callback) {\r\n fixFuncIriCallbacks.remove(callback)\r\n}\r\nSvgElement.prototype = {\r\n constructor: SvgElement,\r\n _getJQElement: function() {\r\n return this._$element || (this._$element = $(this.element))\r\n },\r\n _addFixIRICallback: function() {\r\n var that = this;\r\n var fn = function() {\r\n fixFuncIri(that, \"fill\");\r\n fixFuncIri(that, \"clip-path\");\r\n fixFuncIri(that, \"filter\")\r\n };\r\n that.element._fixFuncIri = fn;\r\n fn.renderer = that.renderer;\r\n fixFuncIriCallbacks.add(fn);\r\n that._addFixIRICallback = function() {}\r\n },\r\n _clearChildrenFuncIri: function() {\r\n ! function clearChildren(element) {\r\n var i;\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n removeFuncIriCallback(element.childNodes[i]._fixFuncIri);\r\n clearChildren(element.childNodes[i])\r\n }\r\n }(this.element)\r\n },\r\n dispose: function() {\r\n removeFuncIriCallback(this.element._fixFuncIri);\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().remove();\r\n return this\r\n },\r\n append: function(parent) {\r\n (parent || this.renderer.root).element.appendChild(this.element);\r\n return this\r\n },\r\n remove: function() {\r\n var element = this.element;\r\n element.parentNode && element.parentNode.removeChild(element);\r\n return this\r\n },\r\n enableLinks: function() {\r\n this._links = [];\r\n return this\r\n },\r\n virtualLink: function(parameters) {\r\n linkItem({\r\n _link: buildLink(null, parameters)\r\n }, this);\r\n return this\r\n },\r\n linkAfter: function(name) {\r\n this._linkAfter = name;\r\n return this\r\n },\r\n linkOn: function(target, parameters) {\r\n this._link = buildLink(target, parameters);\r\n linkItem(this, target);\r\n return this\r\n },\r\n linkOff: function() {\r\n unlinkItem(this);\r\n this._link = null;\r\n return this\r\n },\r\n linkAppend: function() {\r\n var link = this._link;\r\n var items = link.to._links;\r\n var i;\r\n var next;\r\n for (i = link.i + 1;\r\n (next = items[i]) && !next._link.is; ++i) {}\r\n this._insert(link.to, next);\r\n link.is = true;\r\n return this\r\n },\r\n _insert: function(parent, next) {\r\n parent.element.insertBefore(this.element, next ? next.element : null)\r\n },\r\n linkRemove: function() {\r\n this.remove();\r\n this._link.is = false;\r\n return this\r\n },\r\n clear: function() {\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().empty();\r\n return this\r\n },\r\n toBackground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.insertBefore(elem, parent.firstChild);\r\n return this\r\n },\r\n toForeground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.appendChild(elem);\r\n return this\r\n },\r\n attr: function(attrs) {\r\n return baseAttr(this, attrs)\r\n },\r\n smartAttr: function(attrs) {\r\n return this.attr(processHatchingAttrs(this, attrs))\r\n },\r\n css: function(styles) {\r\n return baseCss(this, styles)\r\n },\r\n animate: function(params, options, complete) {\r\n return baseAnimate(this, params, options, complete)\r\n },\r\n sharp(pos, sharpDirection) {\r\n return this.attr({\r\n sharp: pos || true,\r\n sharpDirection: sharpDirection\r\n })\r\n },\r\n _applyTransformation() {\r\n var tr = this._settings;\r\n var rotateX;\r\n var rotateY;\r\n var transformations = [];\r\n var sharpMode = tr.sharp;\r\n var trDirection = tr.sharpDirection || 1;\r\n var strokeOdd = tr[KEY_STROKE_WIDTH] % 2;\r\n var correctionX = strokeOdd && (\"h\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n var correctionY = strokeOdd && (\"v\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n transformations.push(\"translate(\" + ((tr.translateX || 0) + correctionX) + \",\" + ((tr.translateY || 0) + correctionY) + \")\");\r\n if (tr.rotate) {\r\n if (\"rotateX\" in tr) {\r\n rotateX = tr.rotateX\r\n } else {\r\n rotateX = tr.x\r\n }\r\n if (\"rotateY\" in tr) {\r\n rotateY = tr.rotateY\r\n } else {\r\n rotateY = tr.y\r\n }\r\n transformations.push(\"rotate(\" + tr.rotate + \",\" + (rotateX || 0) + \",\" + (rotateY || 0) + \")\")\r\n }\r\n var scaleXDefined = isDefined(tr.scaleX);\r\n var scaleYDefined = isDefined(tr.scaleY);\r\n if (scaleXDefined || scaleYDefined) {\r\n transformations.push(\"scale(\" + (scaleXDefined ? tr.scaleX : 1) + \",\" + (scaleYDefined ? tr.scaleY : 1) + \")\")\r\n }\r\n if (transformations.length) {\r\n this.element.setAttribute(\"transform\", transformations.join(\" \"))\r\n }\r\n },\r\n move: function(x, y, animate, animOptions) {\r\n var obj = {};\r\n isDefined(x) && (obj.translateX = x);\r\n isDefined(y) && (obj.translateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n rotate: function(angle, x, y, animate, animOptions) {\r\n var obj = {\r\n rotate: angle || 0\r\n };\r\n isDefined(x) && (obj.rotateX = x);\r\n isDefined(y) && (obj.rotateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n _getElementBBox: function() {\r\n var elem = this.element;\r\n var bBox;\r\n try {\r\n bBox = elem.getBBox && elem.getBBox()\r\n } catch (e) {}\r\n return bBox || {\r\n x: 0,\r\n y: 0,\r\n width: elem.offsetWidth || 0,\r\n height: elem.offsetHeight || 0\r\n }\r\n },\r\n getBBox: function() {\r\n var transformation = this._settings;\r\n var bBox = this._getElementBBox();\r\n if (transformation.rotate) {\r\n bBox = rotateBBox(bBox, [(\"rotateX\" in transformation ? transformation.rotateX : transformation.x) || 0, (\"rotateY\" in transformation ? transformation.rotateY : transformation.y) || 0], -transformation.rotate)\r\n } else {\r\n bBox = normalizeBBox(bBox)\r\n }\r\n return bBox\r\n },\r\n markup: function() {\r\n return getSvgMarkup(this.element)\r\n },\r\n getOffset: function() {\r\n return this._getJQElement().offset()\r\n },\r\n stopAnimation: function(disableComplete) {\r\n var animation = this.animation;\r\n animation && animation.stop(disableComplete);\r\n return this\r\n },\r\n setTitle: function(text) {\r\n var titleElem = createElement(\"title\");\r\n titleElem.textContent = text || \"\";\r\n this.element.appendChild(titleElem)\r\n },\r\n removeTitle() {\r\n detachTitleElements(this.element)\r\n },\r\n data: function(obj, val) {\r\n var elem = this.element;\r\n var key;\r\n if (void 0 !== val) {\r\n elem[obj] = val\r\n } else {\r\n for (key in obj) {\r\n elem[key] = obj[key]\r\n }\r\n }\r\n return this\r\n },\r\n on: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.on.apply(eventsEngine, args);\r\n return this\r\n },\r\n off: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.off.apply(eventsEngine, args);\r\n return this\r\n },\r\n trigger: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n eventsEngine.trigger.apply(eventsEngine, args);\r\n return this\r\n }\r\n};\r\nexport var PathSvgElement = function(renderer, type) {\r\n SvgElement.call(this, renderer, \"path\", type)\r\n};\r\nPathSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(PathSvgElement.prototype, {\r\n constructor: PathSvgElement,\r\n attr: pathAttr,\r\n animate: pathAnimate\r\n});\r\nexport var ArcSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"path\", \"arc\")\r\n};\r\nArcSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(ArcSvgElement.prototype, {\r\n constructor: ArcSvgElement,\r\n attr: arcAttr,\r\n animate: arcAnimate\r\n});\r\nexport var RectSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"rect\")\r\n};\r\nRectSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(RectSvgElement.prototype, {\r\n constructor: RectSvgElement,\r\n attr: rectAttr\r\n});\r\nexport var TextSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"text\");\r\n this.css({\r\n \"white-space\": \"pre\"\r\n })\r\n};\r\nTextSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(TextSvgElement.prototype, {\r\n constructor: TextSvgElement,\r\n attr: textAttr,\r\n css: textCss,\r\n applyEllipsis: applyEllipsis,\r\n setMaxSize: setMaxSize,\r\n restoreText: restoreText,\r\n _getLineHeight() {\r\n return !isNaN(parseFloat(this._styles[KEY_FONT_SIZE])) ? this._styles[KEY_FONT_SIZE] : DEFAULT_FONT_SIZE\r\n }\r\n});\r\n\r\nfunction updateIndexes(items, k) {\r\n var i;\r\n var item;\r\n for (i = k; item = items[i]; ++i) {\r\n item._link.i = i\r\n }\r\n}\r\n\r\nfunction linkItem(target, container) {\r\n var items = container._links;\r\n var key = target._link.after = target._link.after || container._linkAfter;\r\n var i;\r\n var item;\r\n if (key) {\r\n for (i = 0;\r\n (item = items[i]) && item._link.name !== key; ++i) {}\r\n if (item) {\r\n for (++i;\r\n (item = items[i]) && item._link.after === key; ++i) {}\r\n }\r\n } else {\r\n i = items.length\r\n }\r\n items.splice(i, 0, target);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction unlinkItem(target) {\r\n var i;\r\n var items = target._link.to._links;\r\n for (i = 0; items[i] !== target; ++i) {}\r\n items.splice(i, 1);\r\n updateIndexes(items, i)\r\n}\r\nexport function Renderer(options) {\r\n this.root = this._createElement(\"svg\", {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n version: \"1.1\",\r\n fill: NONE,\r\n stroke: NONE,\r\n \"stroke-width\": 0\r\n }).attr({\r\n class: options.cssClass\r\n }).css({\r\n \"line-height\": \"normal\",\r\n \"-ms-user-select\": NONE,\r\n \"-moz-user-select\": NONE,\r\n \"-webkit-user-select\": NONE,\r\n \"-webkit-tap-highlight-color\": \"rgba(0, 0, 0, 0)\",\r\n display: \"block\",\r\n overflow: \"hidden\"\r\n });\r\n this._init();\r\n this.pathModified = !!options.pathModified;\r\n this._$container = $(options.container);\r\n this.root.append({\r\n element: options.container\r\n });\r\n this._locker = 0;\r\n this._backed = false\r\n}\r\nRenderer.prototype = {\r\n constructor: Renderer,\r\n _init: function() {\r\n this._defs = this._createElement(\"defs\").append(this.root);\r\n this._animationController = new AnimationController(this.root.element);\r\n this._animation = {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }\r\n },\r\n setOptions: function(options) {\r\n this.rtl = !!options.rtl;\r\n this.encodeHtml = !!options.encodeHtml;\r\n this.updateAnimationOptions(options.animation || {});\r\n this.root.attr({\r\n direction: this.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n _createElement: function(tagName, attr, type) {\r\n var elem = new SvgElement(this, tagName, type);\r\n attr && elem.attr(attr);\r\n return elem\r\n },\r\n lock: function() {\r\n if (0 === this._locker) {\r\n this._backed = !this._$container.is(\":visible\");\r\n if (this._backed) {\r\n backupRoot(this.root)\r\n }\r\n }++this._locker;\r\n return this\r\n },\r\n unlock: function() {\r\n --this._locker;\r\n if (0 === this._locker) {\r\n if (this._backed) {\r\n restoreRoot(this.root, this._$container[0])\r\n }\r\n this._backed = false\r\n }\r\n return this\r\n },\r\n resize: function(width, height) {\r\n if (width >= 0 && height >= 0) {\r\n this.root.attr({\r\n width: width,\r\n height: height\r\n })\r\n }\r\n return this\r\n },\r\n dispose: function() {\r\n var key;\r\n this.root.dispose();\r\n this._defs.dispose();\r\n this._animationController.dispose();\r\n fixFuncIriCallbacks.removeByRenderer(this);\r\n for (key in this) {\r\n this[key] = null\r\n }\r\n return this\r\n },\r\n animationEnabled: function() {\r\n return !!this._animation.enabled\r\n },\r\n updateAnimationOptions: function(newOptions) {\r\n extend(this._animation, newOptions);\r\n return this\r\n },\r\n stopAllAnimations: function(lock) {\r\n this._animationController[lock ? \"lock\" : \"stop\"]();\r\n return this\r\n },\r\n animateElement: function(element, params, options) {\r\n this._animationController.animateElement(element, params, options);\r\n return this\r\n },\r\n svg: function() {\r\n return this.root.markup()\r\n },\r\n getRootOffset: function() {\r\n return this.root.getOffset()\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationController.onEndAnimation(endAnimation)\r\n },\r\n rect: function(x, y, width, height) {\r\n var elem = new RectSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n })\r\n },\r\n simpleRect: function() {\r\n return this._createElement(\"rect\")\r\n },\r\n circle: function(x, y, r) {\r\n return this._createElement(\"circle\", {\r\n cx: x || 0,\r\n cy: y || 0,\r\n r: r || 0\r\n })\r\n },\r\n g: function() {\r\n return this._createElement(\"g\")\r\n },\r\n image: function(x, y, w, h, href, location) {\r\n var image = this._createElement(\"image\", {\r\n x: x || 0,\r\n y: y || 0,\r\n width: w || 0,\r\n height: h || 0,\r\n preserveAspectRatio: preserveAspectRatioMap[normalizeEnum(location)] || NONE\r\n });\r\n image.element.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", href || \"\");\r\n return image\r\n },\r\n path: function(points, type) {\r\n var elem = new PathSvgElement(this, type);\r\n return elem.attr({\r\n points: points || []\r\n })\r\n },\r\n arc: function(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var elem = new ArcSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n innerRadius: innerRadius || 0,\r\n outerRadius: outerRadius || 0,\r\n startAngle: startAngle || 0,\r\n endAngle: endAngle || 0\r\n })\r\n },\r\n text: function(_text, x, y) {\r\n var elem = new TextSvgElement(this);\r\n return elem.attr({\r\n text: _text,\r\n x: x || 0,\r\n y: y || 0\r\n })\r\n },\r\n linearGradient: function(stops) {\r\n var id = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : getNextDefsSvgId();\r\n var rotationAngle = arguments.length > 2 ? arguments[2] : void 0;\r\n var gradient = this._createElement(\"linearGradient\", {\r\n id: id,\r\n gradientTransform: \"rotate(\".concat(rotationAngle || 0, \")\")\r\n }).append(this._defs);\r\n gradient.id = id;\r\n this._createGradientStops(stops, gradient);\r\n return gradient\r\n },\r\n radialGradient: function(stops, id) {\r\n var gradient = this._createElement(\"radialGradient\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createGradientStops(stops, gradient);\r\n return gradient\r\n },\r\n _createGradientStops: function(stops, group) {\r\n stops.forEach(stop => {\r\n var _stop$stopColor;\r\n this._createElement(\"stop\", {\r\n offset: stop.offset,\r\n \"stop-color\": null !== (_stop$stopColor = stop[\"stop-color\"]) && void 0 !== _stop$stopColor ? _stop$stopColor : stop.color,\r\n \"stop-opacity\": stop.opacity\r\n }).append(group)\r\n })\r\n },\r\n pattern: function(color, hatching, _id) {\r\n hatching = hatching || {};\r\n var step = hatching.step || 6;\r\n var stepTo2 = step / 2;\r\n var stepBy15 = 1.5 * step;\r\n var id = _id || getNextDefsSvgId();\r\n var d = \"right\" === normalizeEnum(hatching.direction) ? \"M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + -stepTo2 + \" \" + stepTo2 + \" M 0 \" + step + \" L \" + step + \" 0 M \" + stepBy15 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 : \"M 0 0 L \" + step + \" \" + step + \" M \" + -stepTo2 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 + \" M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + stepBy15 + \" \" + stepTo2;\r\n var pattern = this._createElement(\"pattern\", {\r\n id: id,\r\n width: step,\r\n height: step,\r\n patternUnits: \"userSpaceOnUse\"\r\n }).append(this._defs);\r\n pattern.id = id;\r\n this.rect(0, 0, step, step).attr({\r\n fill: color,\r\n opacity: hatching.opacity\r\n }).append(pattern);\r\n new PathSvgElement(this).attr({\r\n d: d,\r\n \"stroke-width\": hatching.width || 1,\r\n stroke: color\r\n }).append(pattern);\r\n return pattern\r\n },\r\n customPattern: function(id, template, width, height) {\r\n var option = {\r\n id: id,\r\n width: width,\r\n height: height,\r\n patternContentUnits: \"userSpaceOnUse\",\r\n patternUnits: this._getPatternUnits(width, height)\r\n };\r\n var pattern = this._createElement(\"pattern\", option).append(this._defs);\r\n template.render({\r\n container: pattern.element\r\n });\r\n return pattern\r\n },\r\n _getPatternUnits: function(width, height) {\r\n if (Number(width) && Number(height)) {\r\n return \"userSpaceOnUse\"\r\n }\r\n },\r\n _getPointsWithYOffset: function(points, offset) {\r\n return points.map((function(point, index) {\r\n if (index % 2 !== 0) {\r\n return point + offset\r\n }\r\n return point\r\n }))\r\n },\r\n clipShape: function(method, methodArgs) {\r\n var id = getNextDefsSvgId();\r\n var clipPath = this._createElement(\"clipPath\", {\r\n id: id\r\n }).append(this._defs);\r\n var shape = method.apply(this, methodArgs).append(clipPath);\r\n shape.id = id;\r\n shape.remove = function() {\r\n throw \"Not implemented\"\r\n };\r\n shape.dispose = function() {\r\n clipPath.dispose();\r\n clipPath = null;\r\n return this\r\n };\r\n return shape\r\n },\r\n clipRect(x, y, width, height) {\r\n return this.clipShape(this.rect, arguments)\r\n },\r\n clipCircle(x, y, radius) {\r\n return this.clipShape(this.circle, arguments)\r\n },\r\n shadowFilter: function(x, y, width, height, offsetX, offsetY, blur, color, opacity) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id,\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n }).append(this._defs);\r\n var gaussianBlur = this._createElement(\"feGaussianBlur\", {\r\n in: \"SourceGraphic\",\r\n result: \"gaussianBlurResult\",\r\n stdDeviation: blur || 0\r\n }).append(filter);\r\n var offset = this._createElement(\"feOffset\", {\r\n in: \"gaussianBlurResult\",\r\n result: \"offsetResult\",\r\n dx: offsetX || 0,\r\n dy: offsetY || 0\r\n }).append(filter);\r\n var flood = this._createElement(\"feFlood\", {\r\n result: \"floodResult\",\r\n \"flood-color\": color || \"\",\r\n \"flood-opacity\": opacity\r\n }).append(filter);\r\n var composite = this._createElement(\"feComposite\", {\r\n in: \"floodResult\",\r\n in2: \"offsetResult\",\r\n operator: \"in\",\r\n result: \"compositeResult\"\r\n }).append(filter);\r\n var finalComposite = this._createElement(\"feComposite\", {\r\n in: \"SourceGraphic\",\r\n in2: \"compositeResult\",\r\n operator: \"over\"\r\n }).append(filter);\r\n filter.id = id;\r\n filter.gaussianBlur = gaussianBlur;\r\n filter.offset = offset;\r\n filter.flood = flood;\r\n filter.composite = composite;\r\n filter.finalComposite = finalComposite;\r\n filter.attr = function(attrs) {\r\n var filterAttrs = {};\r\n var offsetAttrs = {};\r\n var floodAttrs = {};\r\n \"x\" in attrs && (filterAttrs.x = attrs.x);\r\n \"y\" in attrs && (filterAttrs.y = attrs.y);\r\n \"width\" in attrs && (filterAttrs.width = attrs.width);\r\n \"height\" in attrs && (filterAttrs.height = attrs.height);\r\n baseAttr(this, filterAttrs);\r\n \"blur\" in attrs && this.gaussianBlur.attr({\r\n stdDeviation: attrs.blur\r\n });\r\n \"offsetX\" in attrs && (offsetAttrs.dx = attrs.offsetX);\r\n \"offsetY\" in attrs && (offsetAttrs.dy = attrs.offsetY);\r\n this.offset.attr(offsetAttrs);\r\n \"color\" in attrs && (floodAttrs[\"flood-color\"] = attrs.color);\r\n \"opacity\" in attrs && (floodAttrs[\"flood-opacity\"] = attrs.opacity);\r\n this.flood.attr(floodAttrs);\r\n return this\r\n };\r\n return filter\r\n },\r\n brightFilter: function(type, slope) {\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n var componentTransferElement = this._createElement(\"feComponentTransfer\").append(filter);\r\n var attrs = {\r\n type: type,\r\n slope: slope\r\n };\r\n filter.id = id;\r\n this._createElement(\"feFuncR\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncG\", attrs).append(componentTransferElement);\r\n this._createElement(\"feFuncB\", attrs).append(componentTransferElement);\r\n return filter\r\n },\r\n getGrayScaleFilter: function() {\r\n if (this._grayScaleFilter) {\r\n return this._grayScaleFilter\r\n }\r\n var id = getNextDefsSvgId();\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\").attr({\r\n type: \"matrix\",\r\n values: \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 0.6 0\"\r\n }).append(filter);\r\n filter.id = id;\r\n this._grayScaleFilter = filter;\r\n return filter\r\n },\r\n lightenFilter: function(id) {\r\n var filter = this._createElement(\"filter\", {\r\n id: id\r\n }).append(this._defs);\r\n this._createElement(\"feColorMatrix\", {\r\n type: \"matrix\",\r\n values: \"\".concat(1.3, \" 0 0 0 0 0 \").concat(1.3, \" 0 0 0 0 0 \").concat(1.3, \" 0 0 0 0 0 1 0\")\r\n }).append(filter);\r\n filter.id = id;\r\n return filter\r\n },\r\n initDefsElements: function() {\r\n var storage = this._defsElementsStorage = this._defsElementsStorage || {\r\n byHash: {},\r\n baseId: getNextDefsSvgId()\r\n };\r\n var byHash = storage.byHash;\r\n var name;\r\n for (name in byHash) {\r\n byHash[name].pattern.dispose()\r\n }\r\n storage.byHash = {};\r\n storage.refToHash = {};\r\n storage.nextId = 0\r\n },\r\n drawPattern: function(_ref4, storageId, nextId) {\r\n var {\r\n color: color,\r\n hatching: hatching\r\n } = _ref4;\r\n return this.pattern(color, hatching, \"\".concat(storageId, \"-hatching-\").concat(nextId++))\r\n },\r\n drawFilter: function(_, storageId, nextId) {\r\n return this.lightenFilter(\"\".concat(storageId, \"-lightening-\").concat(nextId++))\r\n },\r\n lockDefsElements: function(attrs, ref, type) {\r\n var storage = this._defsElementsStorage;\r\n var storageItem;\r\n var hash = \"pattern\" === type ? getHatchingHash(attrs) : LIGHTENING_HASH;\r\n var method = \"pattern\" === type ? this.drawPattern : this.drawFilter;\r\n var pattern;\r\n if (storage.refToHash[ref] !== hash) {\r\n if (ref) {\r\n this.releaseDefsElements(ref)\r\n }\r\n storageItem = storage.byHash[hash];\r\n if (!storageItem) {\r\n pattern = method.call(this, attrs, storage.baseId, storage.nextId++);\r\n storageItem = storage.byHash[hash] = {\r\n pattern: pattern,\r\n count: 0\r\n };\r\n storage.refToHash[pattern.id] = hash\r\n }++storageItem.count;\r\n ref = storageItem.pattern.id\r\n }\r\n return ref\r\n },\r\n releaseDefsElements: function(ref) {\r\n var storage = this._defsElementsStorage;\r\n var hash = storage.refToHash[ref];\r\n var storageItem = storage.byHash[hash];\r\n if (storageItem && 0 === --storageItem.count) {\r\n storageItem.pattern.dispose();\r\n delete storage.byHash[hash];\r\n delete storage.refToHash[ref]\r\n }\r\n }\r\n};\r\n\r\nfunction getHatchingHash(_ref5) {\r\n var {\r\n color: color,\r\n hatching: hatching\r\n } = _ref5;\r\n return \"@\" + color + \"::\" + hatching.step + \":\" + hatching.width + \":\" + hatching.opacity + \":\" + hatching.direction\r\n}\r\nvar fixFuncIriCallbacks = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(fn) {\r\n callbacks.push(fn)\r\n },\r\n remove: function(fn) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el !== fn\r\n }))\r\n },\r\n removeByRenderer: function(renderer) {\r\n callbacks = callbacks.filter((function(el) {\r\n return el.renderer !== renderer\r\n }))\r\n },\r\n fire: function() {\r\n callbacks.forEach((function(fn) {\r\n fn()\r\n }))\r\n }\r\n }\r\n}();\r\nexport var refreshPaths = function() {\r\n fixFuncIriCallbacks.fire()\r\n};\r\n","/**\r\n * DevExtreme (esm/viz/core/utils.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isExponential,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n adjust,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Color from \"../../color\";\r\nvar {\r\n PI: PI,\r\n LN10: LN10,\r\n abs: abs,\r\n log: log,\r\n floor: floor,\r\n ceil: ceil,\r\n pow: pow,\r\n sqrt: sqrt,\r\n atan2: atan2\r\n} = Math;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _cos = Math.cos;\r\nvar _sin = Math.sin;\r\nvar _round = Math.round;\r\nvar dateToMilliseconds = dateUtils.dateToMilliseconds;\r\nvar MAX_PIXEL_COUNT = 1e10;\r\nvar PI_DIV_180 = PI / 180;\r\nvar _isNaN = isNaN;\r\nvar _Number = Number;\r\nvar _NaN = NaN;\r\nvar numDefsSvgElements = 1;\r\nexport var PANE_PADDING = 10;\r\nexport var getLog = function(value, base) {\r\n if (!value) {\r\n return _NaN\r\n }\r\n return log(value) / log(base)\r\n};\r\nexport var getAdjustedLog10 = function(value) {\r\n return adjust(getLog(value, 10))\r\n};\r\nexport var raiseTo = function(power, base) {\r\n return pow(base, power)\r\n};\r\nexport var normalizeAngle = function(angle) {\r\n return (angle % 360 + 360) % 360\r\n};\r\nexport var convertAngleToRendererSpace = function(angle) {\r\n return 90 - angle\r\n};\r\nexport var degreesToRadians = function(value) {\r\n return PI * value / 180\r\n};\r\nexport var getCosAndSin = function(angle) {\r\n var angleInRadians = degreesToRadians(angle);\r\n return {\r\n cos: _cos(angleInRadians),\r\n sin: _sin(angleInRadians)\r\n }\r\n};\r\nvar DECIMAL_ORDER_THRESHOLD = 1e-14;\r\nexport var getDistance = function(x1, y1, x2, y2) {\r\n var diffX = x2 - x1;\r\n var diffY = y2 - y1;\r\n return sqrt(diffY * diffY + diffX * diffX)\r\n};\r\nexport var getDecimalOrder = function(number) {\r\n var n = abs(number);\r\n var cn;\r\n if (!_isNaN(n)) {\r\n if (n > 0) {\r\n n = log(n) / LN10;\r\n cn = ceil(n);\r\n return cn - n < DECIMAL_ORDER_THRESHOLD ? cn : floor(n)\r\n }\r\n return 0\r\n }\r\n return _NaN\r\n};\r\nexport var getAppropriateFormat = function(start, end, count) {\r\n var order = _max(getDecimalOrder(start), getDecimalOrder(end));\r\n var precision = -getDecimalOrder(abs(end - start) / count);\r\n var format;\r\n if (!_isNaN(order) && !_isNaN(precision)) {\r\n if (abs(order) <= 4) {\r\n format = \"fixedPoint\";\r\n precision < 0 && (precision = 0);\r\n precision > 4 && (precision = 4)\r\n } else {\r\n format = \"exponential\";\r\n precision += order - 1;\r\n precision > 3 && (precision = 3)\r\n }\r\n return {\r\n type: format,\r\n precision: precision\r\n }\r\n }\r\n return null\r\n};\r\nexport var roundValue = function(value, precision) {\r\n if (precision > 20) {\r\n precision = 20\r\n }\r\n if (isNumeric(value)) {\r\n if (isExponential(value)) {\r\n return _Number(value.toExponential(precision))\r\n } else {\r\n return _Number(value.toFixed(precision))\r\n }\r\n }\r\n};\r\nexport var getPower = function(value) {\r\n return value.toExponential().split(\"e\")[1]\r\n};\r\nexport function map(array, callback) {\r\n var i = 0;\r\n var len = array.length;\r\n var result = [];\r\n var value;\r\n while (i < len) {\r\n value = callback(array[i], i);\r\n if (null !== value) {\r\n result.push(value)\r\n }\r\n i++\r\n }\r\n return result\r\n}\r\n\r\nfunction selectByKeys(object, keys) {\r\n return map(keys, key => object[key] ? object[key] : null)\r\n}\r\n\r\nfunction decreaseFields(object, keys, eachDecrease, decrease) {\r\n var dec = decrease;\r\n each(keys, (_, key) => {\r\n if (object[key]) {\r\n object[key] -= eachDecrease;\r\n dec -= eachDecrease\r\n }\r\n });\r\n return dec\r\n}\r\nexport function normalizeEnum(value) {\r\n return String(value).toLowerCase()\r\n}\r\nexport function setCanvasValues(canvas) {\r\n if (canvas) {\r\n canvas.originalTop = canvas.top;\r\n canvas.originalBottom = canvas.bottom;\r\n canvas.originalLeft = canvas.left;\r\n canvas.originalRight = canvas.right\r\n }\r\n return canvas\r\n}\r\n\r\nfunction normalizeBBoxField(value) {\r\n return -MAX_PIXEL_COUNT < value && value < +MAX_PIXEL_COUNT ? value : 0\r\n}\r\nexport function normalizeBBox(bBox) {\r\n var xl = normalizeBBoxField(floor(bBox.x));\r\n var yt = normalizeBBoxField(floor(bBox.y));\r\n var xr = normalizeBBoxField(ceil(bBox.width + bBox.x));\r\n var yb = normalizeBBoxField(ceil(bBox.height + bBox.y));\r\n var result = {\r\n x: xl,\r\n y: yt,\r\n width: xr - xl,\r\n height: yb - yt\r\n };\r\n result.isEmpty = !result.x && !result.y && !result.width && !result.height;\r\n return result\r\n}\r\nexport function rotateBBox(bBox, center, angle) {\r\n var cos = _Number(_cos(angle * PI_DIV_180).toFixed(3));\r\n var sin = _Number(_sin(angle * PI_DIV_180).toFixed(3));\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n var centerX = bBox.x + w2;\r\n var centerY = bBox.y + h2;\r\n var w2_ = abs(w2 * cos) + abs(h2 * sin);\r\n var h2_ = abs(w2 * sin) + abs(h2 * cos);\r\n var centerX_ = center[0] + (centerX - center[0]) * cos + (centerY - center[1]) * sin;\r\n var centerY_ = center[1] - (centerX - center[0]) * sin + (centerY - center[1]) * cos;\r\n return normalizeBBox({\r\n x: centerX_ - w2_,\r\n y: centerY_ - h2_,\r\n width: 2 * w2_,\r\n height: 2 * h2_\r\n })\r\n}\r\nexport var decreaseGaps = function(object, keys, decrease) {\r\n var arrayGaps;\r\n do {\r\n arrayGaps = selectByKeys(object, keys);\r\n arrayGaps.push(ceil(decrease / arrayGaps.length));\r\n decrease = decreaseFields(object, keys, _min.apply(null, arrayGaps), decrease)\r\n } while (decrease > 0 && arrayGaps.length > 1);\r\n return decrease\r\n};\r\nexport var parseScalar = function(value, defaultValue) {\r\n return void 0 !== value ? value : defaultValue\r\n};\r\nexport var enumParser = function(values) {\r\n var stored = {};\r\n var i;\r\n var ii;\r\n for (i = 0, ii = values.length; i < ii; ++i) {\r\n stored[normalizeEnum(values[i])] = 1\r\n }\r\n return function(value, defaultValue) {\r\n var _value = normalizeEnum(value);\r\n return stored[_value] ? _value : defaultValue\r\n }\r\n};\r\nexport var patchFontOptions = function(options) {\r\n var fontOptions = {};\r\n each(options || {}, (function(key, value) {\r\n if (/^(cursor)$/i.test(key)) {} else if (\"opacity\" === key) {\r\n value = null\r\n } else if (\"color\" === key) {\r\n key = \"fill\";\r\n if (\"opacity\" in options) {\r\n var color = new Color(value);\r\n value = \"rgba(\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b, \",\").concat(options.opacity, \")\")\r\n }\r\n } else {\r\n key = \"font-\" + key\r\n }\r\n fontOptions[key] = value\r\n }));\r\n return fontOptions\r\n};\r\nexport function convertPolarToXY(centerCoords, startAngle, angle, radius) {\r\n var normalizedRadius = radius > 0 ? radius : 0;\r\n angle = isDefined(angle) ? angle + startAngle - 90 : 0;\r\n var cosSin = getCosAndSin(angle);\r\n return {\r\n x: _round(centerCoords.x + normalizedRadius * cosSin.cos),\r\n y: _round(centerCoords.y + normalizedRadius * cosSin.sin)\r\n }\r\n}\r\nexport var convertXYToPolar = function(centerCoords, x, y) {\r\n var radius = getDistance(centerCoords.x, centerCoords.y, x, y);\r\n var angle = atan2(y - centerCoords.y, x - centerCoords.x);\r\n return {\r\n phi: _round(normalizeAngle(180 * angle / PI)),\r\n r: _round(radius)\r\n }\r\n};\r\nexport var processSeriesTemplate = function(seriesTemplate, items) {\r\n var customizeSeries = isFunction(seriesTemplate.customizeSeries) ? seriesTemplate.customizeSeries : noop;\r\n var nameField = seriesTemplate.nameField;\r\n var generatedSeries = {};\r\n var seriesOrder = [];\r\n var series;\r\n var i = 0;\r\n var length;\r\n var data;\r\n items = items || [];\r\n for (length = items.length; i < length; i++) {\r\n data = items[i];\r\n if (nameField in data) {\r\n series = generatedSeries[data[nameField]];\r\n if (!series) {\r\n series = generatedSeries[data[nameField]] = {\r\n name: data[nameField],\r\n nameFieldValue: data[nameField]\r\n };\r\n seriesOrder.push(series.name)\r\n }\r\n }\r\n }\r\n return map(seriesOrder, (function(orderedName) {\r\n var group = generatedSeries[orderedName];\r\n return extend(group, customizeSeries.call(null, group.name))\r\n }))\r\n};\r\nexport var getCategoriesInfo = function(categories, startValue, endValue) {\r\n if (0 === categories.length) {\r\n return {\r\n categories: []\r\n }\r\n }\r\n startValue = isDefined(startValue) ? startValue : categories[0];\r\n endValue = isDefined(endValue) ? endValue : categories[categories.length - 1];\r\n var categoriesValue = map(categories, category => null === category || void 0 === category ? void 0 : category.valueOf());\r\n var indexStartValue = categoriesValue.indexOf(startValue.valueOf());\r\n var indexEndValue = categoriesValue.indexOf(endValue.valueOf());\r\n var swapBuf;\r\n var inverted = false;\r\n indexStartValue < 0 && (indexStartValue = 0);\r\n indexEndValue < 0 && (indexEndValue = categories.length - 1);\r\n if (indexEndValue < indexStartValue) {\r\n swapBuf = indexEndValue;\r\n indexEndValue = indexStartValue;\r\n indexStartValue = swapBuf;\r\n inverted = true\r\n }\r\n var visibleCategories = categories.slice(indexStartValue, indexEndValue + 1);\r\n var lastIdx = visibleCategories.length - 1;\r\n return {\r\n categories: visibleCategories,\r\n start: visibleCategories[inverted ? lastIdx : 0],\r\n end: visibleCategories[inverted ? 0 : lastIdx],\r\n inverted: inverted\r\n }\r\n};\r\nexport function isRelativeHeightPane(pane) {\r\n return !(pane.unit % 2)\r\n}\r\nexport function normalizePanesHeight(panes) {\r\n panes.forEach(pane => {\r\n var height = pane.height;\r\n var unit = 0;\r\n var parsedHeight = parseFloat(height) || void 0;\r\n if (isString(height) && height.indexOf(\"px\") > -1 || isNumeric(height) && height > 1) {\r\n parsedHeight = _round(parsedHeight);\r\n unit = 1\r\n }\r\n if (!unit && parsedHeight) {\r\n if (isString(height) && height.indexOf(\"%\") > -1) {\r\n parsedHeight /= 100;\r\n unit = 2\r\n } else if (parsedHeight < 0) {\r\n parsedHeight = parsedHeight < -1 ? 1 : abs(parsedHeight)\r\n }\r\n }\r\n pane.height = parsedHeight;\r\n pane.unit = unit\r\n });\r\n var relativeHeightPanes = panes.filter(isRelativeHeightPane);\r\n var weightSum = relativeHeightPanes.reduce((prev, next) => prev + (next.height || 0), 0);\r\n var weightHeightCount = relativeHeightPanes.length;\r\n var emptyHeightPanes = relativeHeightPanes.filter(pane => !pane.height);\r\n var emptyHeightCount = emptyHeightPanes.length;\r\n if (weightSum < 1 && emptyHeightCount) {\r\n emptyHeightPanes.forEach(pane => pane.height = (1 - weightSum) / emptyHeightCount)\r\n } else if (weightSum > 1 || weightSum < 1 && !emptyHeightCount || 1 === weightSum && emptyHeightCount) {\r\n if (emptyHeightCount) {\r\n var weightForEmpty = weightSum / weightHeightCount;\r\n var emptyWeightSum = emptyHeightCount * weightForEmpty;\r\n relativeHeightPanes.filter(pane => pane.height).forEach(pane => pane.height *= (weightSum - emptyWeightSum) / weightSum);\r\n emptyHeightPanes.forEach(pane => pane.height = weightForEmpty)\r\n }\r\n relativeHeightPanes.forEach(pane => pane.height *= 1 / weightSum)\r\n }\r\n}\r\nexport function updatePanesCanvases(panes, canvas, rotated) {\r\n var distributedSpace = 0;\r\n var padding = PANE_PADDING;\r\n var paneSpace = rotated ? canvas.width - canvas.left - canvas.right : canvas.height - canvas.top - canvas.bottom;\r\n var totalCustomSpace = panes.reduce((prev, cur) => prev + (!isRelativeHeightPane(cur) ? cur.height : 0), 0);\r\n var usefulSpace = paneSpace - padding * (panes.length - 1) - totalCustomSpace;\r\n var startName = rotated ? \"left\" : \"top\";\r\n var endName = rotated ? \"right\" : \"bottom\";\r\n panes.forEach(pane => {\r\n var calcLength = !isRelativeHeightPane(pane) ? pane.height : _round(pane.height * usefulSpace);\r\n pane.canvas = pane.canvas || {};\r\n extend(pane.canvas, canvas);\r\n pane.canvas[startName] = canvas[startName] + distributedSpace;\r\n pane.canvas[endName] = canvas[endName] + (paneSpace - calcLength - distributedSpace);\r\n distributedSpace = distributedSpace + calcLength + padding;\r\n setCanvasValues(pane.canvas)\r\n })\r\n}\r\nexport var unique = function(array) {\r\n var values = {};\r\n return map(array, (function(item) {\r\n var result = !values[item] ? item : null;\r\n values[item] = true;\r\n return result\r\n }))\r\n};\r\nexport var getVerticallyShiftedAngularCoords = function(bBox, dy, center) {\r\n var isPositive = bBox.x + bBox.width / 2 >= center.x;\r\n var horizontalOffset1 = (isPositive ? bBox.x : bBox.x + bBox.width) - center.x;\r\n var verticalOffset1 = bBox.y - center.y;\r\n var verticalOffset2 = verticalOffset1 + dy;\r\n var horizontalOffset2 = _round(sqrt(horizontalOffset1 * horizontalOffset1 + verticalOffset1 * verticalOffset1 - verticalOffset2 * verticalOffset2));\r\n var dx = (isPositive ? +horizontalOffset2 : -horizontalOffset2) || horizontalOffset1;\r\n return {\r\n x: center.x + (isPositive ? dx : dx - bBox.width),\r\n y: bBox.y + dy\r\n }\r\n};\r\nexport function mergeMarginOptions(opt1, opt2) {\r\n return {\r\n checkInterval: opt1.checkInterval || opt2.checkInterval,\r\n size: _max(opt1.size || 0, opt2.size || 0),\r\n percentStick: opt1.percentStick || opt2.percentStick,\r\n sizePointNormalState: _max(opt1.sizePointNormalState || 0, opt2.sizePointNormalState || 0)\r\n }\r\n}\r\nexport function getVizRangeObject(value) {\r\n if (Array.isArray(value)) {\r\n return {\r\n startValue: value[0],\r\n endValue: value[1]\r\n }\r\n } else {\r\n return value || {}\r\n }\r\n}\r\nexport function normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var isCircle;\r\n var noArc = true;\r\n var angleDiff = roundValue(endAngle, 3) - roundValue(startAngle, 3);\r\n if (angleDiff) {\r\n if (abs(angleDiff) % 360 === 0) {\r\n startAngle = 0;\r\n endAngle = 360;\r\n isCircle = true;\r\n endAngle -= .01\r\n }\r\n if (startAngle > 360) {\r\n startAngle %= 360\r\n }\r\n if (endAngle > 360) {\r\n endAngle %= 360\r\n }\r\n if (startAngle > endAngle) {\r\n startAngle -= 360\r\n }\r\n noArc = false\r\n }\r\n startAngle *= PI_DIV_180;\r\n endAngle *= PI_DIV_180;\r\n return [x, y, Math.min(outerRadius, innerRadius), Math.max(outerRadius, innerRadius), Math.cos(startAngle), Math.sin(startAngle), Math.cos(endAngle), Math.sin(endAngle), isCircle, floor(abs(endAngle - startAngle) / PI) % 2 ? \"1\" : \"0\", noArc]\r\n}\r\nexport function convertVisualRangeObject(visualRange, convertToVisualRange) {\r\n if (convertToVisualRange) {\r\n return visualRange\r\n }\r\n return [visualRange.startValue, visualRange.endValue]\r\n}\r\nexport function getAddFunction(range, correctZeroLevel) {\r\n if (\"datetime\" === range.dataType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n return new Date(rangeValue.getTime() + sign * marginValue)\r\n }\r\n }\r\n if (\"logarithmic\" === range.axisType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var log = getLogExt(rangeValue, range.base) + sign * marginValue;\r\n return raiseToExt(log, range.base)\r\n }\r\n }\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var newValue = rangeValue + sign * marginValue;\r\n return correctZeroLevel && newValue * rangeValue <= 0 ? 0 : newValue\r\n }\r\n}\r\nexport function adjustVisualRange(options, visualRange, wholeRange, dataRange) {\r\n var minDefined = isDefined(visualRange.startValue);\r\n var maxDefined = isDefined(visualRange.endValue);\r\n var nonDiscrete = \"discrete\" !== options.axisType;\r\n dataRange = dataRange || wholeRange;\r\n var add = getAddFunction(options, false);\r\n var min = minDefined ? visualRange.startValue : dataRange.min;\r\n var max = maxDefined ? visualRange.endValue : dataRange.max;\r\n var rangeLength = visualRange.length;\r\n var categories = dataRange.categories;\r\n if (nonDiscrete && !isDefined(min) && !isDefined(max)) {\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n }\r\n if (isDefined(rangeLength)) {\r\n if (nonDiscrete) {\r\n if (\"datetime\" === options.dataType && !isNumeric(rangeLength)) {\r\n rangeLength = dateToMilliseconds(rangeLength)\r\n }\r\n if (maxDefined && !minDefined || !maxDefined && !minDefined) {\r\n isDefined(wholeRange.max) && (max = max > wholeRange.max ? wholeRange.max : max);\r\n min = add(max, rangeLength, -1)\r\n } else if (minDefined && !maxDefined) {\r\n isDefined(wholeRange.min) && (min = min < wholeRange.min ? wholeRange.min : min);\r\n max = add(min, rangeLength)\r\n }\r\n } else {\r\n rangeLength = parseInt(rangeLength);\r\n if (!isNaN(rangeLength) && isFinite(rangeLength)) {\r\n rangeLength--;\r\n if (!maxDefined && !minDefined) {\r\n max = categories[categories.length - 1];\r\n min = categories[categories.length - 1 - rangeLength]\r\n } else if (minDefined && !maxDefined) {\r\n var categoriesInfo = getCategoriesInfo(categories, min, void 0);\r\n max = categoriesInfo.categories[rangeLength]\r\n } else if (!minDefined && maxDefined) {\r\n var _categoriesInfo = getCategoriesInfo(categories, void 0, max);\r\n min = _categoriesInfo.categories[_categoriesInfo.categories.length - 1 - rangeLength]\r\n }\r\n }\r\n }\r\n }\r\n if (nonDiscrete) {\r\n if (isDefined(wholeRange.max) && max > wholeRange.max) {\r\n max = wholeRange.max\r\n }\r\n if (isDefined(wholeRange.min) && min < wholeRange.min) {\r\n min = wholeRange.min\r\n }\r\n }\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n}\r\nexport function getLogExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return getLog(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = getLog(abs(value), base) - (linearThreshold - 1);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold - 1).toFixed(abs(linearThreshold))))\r\n}\r\nexport function raiseToExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return raiseTo(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = raiseTo(abs(value) + (linearThreshold - 1), base);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return adjust(sign(value) * transformValue, Number(pow(base, linearThreshold).toFixed(abs(linearThreshold))))\r\n}\r\nexport function rangesAreEqual(range, rangeFromOptions) {\r\n if (Array.isArray(rangeFromOptions)) {\r\n return range.length === rangeFromOptions.length && range.every((item, i) => valueOf(item) === valueOf(rangeFromOptions[i]))\r\n } else {\r\n return valueOf(range.startValue) === valueOf(rangeFromOptions.startValue) && valueOf(range.endValue) === valueOf(rangeFromOptions.endValue)\r\n }\r\n}\r\nexport function valueOf(value) {\r\n return value && value.valueOf()\r\n}\r\nexport function pointInCanvas(canvas, x, y) {\r\n return x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom\r\n}\r\nexport var getNextDefsSvgId = () => \"DevExpress_\".concat(numDefsSvgElements++);\r\nexport function extractColor(color, isBase) {\r\n if (isString(color) || !color) {\r\n return color\r\n } else if (isBase) {\r\n return color.base\r\n } else {\r\n return color.fillId || color.base\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.light.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar LIGHT_GREY = \"#d3d3d3\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RED = \"#ff0000\";\r\nvar PRIMARY_TITLE_COLOR = \"#232323\";\r\nvar SECONDARY_TITLE_COLOR = \"#767676\";\r\nvar NONE = \"none\";\r\nvar SOLID = \"solid\";\r\nvar TOP = \"top\";\r\nvar RIGHT = \"right\";\r\nvar BOTTOM = \"bottom\";\r\nvar LEFT = \"left\";\r\nvar CENTER = \"center\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.light\",\r\n isDefault: true,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n family: \"'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 400,\r\n size: 12,\r\n cursor: \"default\"\r\n },\r\n redrawOnResize: true,\r\n backgroundColor: WHITE,\r\n primaryTitleColor: PRIMARY_TITLE_COLOR,\r\n secondaryTitleColor: SECONDARY_TITLE_COLOR,\r\n gridColor: LIGHT_GREY,\r\n axisColor: SECONDARY_TITLE_COLOR,\r\n title: {\r\n backgroundColor: WHITE,\r\n font: {\r\n size: 28,\r\n family: \"'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n },\r\n offset: 0,\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n loadingIndicator: {\r\n text: \"Loading...\"\r\n },\r\n export: {\r\n backgroundColor: WHITE,\r\n margin: 10,\r\n font: {\r\n size: 14,\r\n color: PRIMARY_TITLE_COLOR,\r\n weight: 400\r\n },\r\n button: {\r\n margin: {\r\n top: 8,\r\n left: 10,\r\n right: 10,\r\n bottom: 8\r\n },\r\n default: {\r\n color: \"#333\",\r\n borderColor: \"#ddd\",\r\n backgroundColor: WHITE\r\n },\r\n hover: {\r\n color: \"#333\",\r\n borderColor: \"#bebebe\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: BLACK,\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: \"#333\",\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n },\r\n shadowColor: LIGHT_GREY\r\n },\r\n tooltip: {\r\n enabled: false,\r\n border: {\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n font: {\r\n color: PRIMARY_TITLE_COLOR\r\n },\r\n color: WHITE,\r\n arrowLength: 10,\r\n paddingLeftRight: 18,\r\n paddingTopBottom: 15,\r\n textAlignment: \"center\",\r\n shared: false,\r\n location: CENTER,\r\n shadow: {\r\n opacity: .4,\r\n offsetX: 0,\r\n offsetY: 4,\r\n blur: 2,\r\n color: BLACK\r\n },\r\n interactive: false\r\n },\r\n legend: {\r\n hoverMode: \"includePoints\",\r\n verticalAlignment: TOP,\r\n horizontalAlignment: RIGHT,\r\n position: OUTSIDE,\r\n visible: true,\r\n margin: 10,\r\n markerSize: 12,\r\n border: {\r\n visible: false,\r\n width: 1,\r\n cornerRadius: 0,\r\n dashStyle: SOLID\r\n },\r\n paddingLeftRight: 20,\r\n paddingTopBottom: 15,\r\n columnCount: 0,\r\n rowCount: 0,\r\n columnItemSpacing: 20,\r\n rowItemSpacing: 8,\r\n title: {\r\n backgroundColor: WHITE,\r\n margin: {\r\n left: 0,\r\n bottom: 9,\r\n right: 0,\r\n top: 0\r\n },\r\n font: {\r\n size: 18,\r\n weight: 200\r\n },\r\n subtitle: {\r\n offset: 0,\r\n font: {\r\n size: 14\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n \"chart:common\": {\r\n animation: {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\",\r\n maxPointCountSupported: 300\r\n },\r\n commonSeriesSettings: {\r\n border: {\r\n visible: false,\r\n width: 2\r\n },\r\n showInLegend: true,\r\n visible: true,\r\n hoverMode: \"nearestPoint\",\r\n selectionMode: \"includePoints\",\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n valueErrorBar: {\r\n displayMode: \"auto\",\r\n value: 1,\r\n color: BLACK,\r\n lineWidth: 2,\r\n edgeLength: 8\r\n },\r\n label: {\r\n visible: false,\r\n alignment: CENTER,\r\n rotationAngle: 0,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n radialOffset: 0,\r\n showForZeroValues: true,\r\n customizeText: void 0,\r\n maxLabelCount: void 0,\r\n position: OUTSIDE,\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: false,\r\n width: 1\r\n }\r\n }\r\n },\r\n seriesSelectionMode: \"single\",\r\n pointSelectionMode: \"single\",\r\n equalRowHeight: true,\r\n dataPrepareSettings: {\r\n checkTypeForAllData: false,\r\n convertToAxisDataType: true,\r\n sortingMethod: true\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n resolveLabelOverlapping: NONE\r\n },\r\n \"chart:common:axis\": {\r\n visible: true,\r\n valueMarginsEnabled: true,\r\n placeholderSize: null,\r\n logarithmBase: 10,\r\n discreteAxisDivisionMode: \"betweenLabels\",\r\n aggregatedPointsPosition: \"betweenTicks\",\r\n width: 1,\r\n label: {\r\n visible: true\r\n },\r\n grid: {\r\n visible: false,\r\n width: 1\r\n },\r\n minorGrid: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3\r\n },\r\n tick: {\r\n visible: true,\r\n width: 1,\r\n length: 7,\r\n shift: 3\r\n },\r\n minorTick: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3,\r\n length: 7,\r\n shift: 3\r\n },\r\n stripStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 5\r\n },\r\n constantLineStyle: {\r\n width: 1,\r\n color: BLACK,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: true,\r\n position: INSIDE\r\n }\r\n },\r\n marker: {\r\n label: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#333333\"\r\n },\r\n tooltipEnabled: true,\r\n border: {\r\n width: 1,\r\n color: \"#dddddd\",\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n color: WHITE,\r\n opacity: .9,\r\n arrowLength: 14,\r\n arrowWidth: 14,\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10,\r\n shadow: {\r\n opacity: .15,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 4,\r\n color: BLACK\r\n },\r\n image: {\r\n width: 30,\r\n height: 30\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\",\r\n allowDragging: false\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n type: \"line\",\r\n stack: \"default\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stepline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n steparea: {\r\n border: {\r\n visible: true,\r\n width: 2\r\n },\r\n point: {\r\n visible: false\r\n },\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n opacity: .5\r\n },\r\n spline: {\r\n width: 2,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n splinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n stackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n fullstackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n rangebar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n rangearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n rangesplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bubble: {\r\n opacity: .5,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n candlestick: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3,\r\n highlight: false\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n },\r\n stock: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n },\r\n highlight: false\r\n },\r\n selectionStyle: {\r\n width: 3,\r\n highlight: false\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n }\r\n },\r\n crosshair: {\r\n enabled: false,\r\n color: \"#f05b41\",\r\n width: 1,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: false,\r\n font: {\r\n color: WHITE,\r\n size: 12\r\n }\r\n },\r\n verticalLine: {\r\n visible: true\r\n },\r\n horizontalLine: {\r\n visible: true\r\n }\r\n },\r\n commonAxisSettings: {\r\n multipleAxesSpacing: 5,\r\n forceUserTickInterval: false,\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n label: {\r\n displayMode: \"standard\",\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 10,\r\n wordWrap: \"normal\",\r\n textOverflow: \"none\"\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 6,\r\n alignment: CENTER\r\n },\r\n constantLineStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10\r\n }\r\n },\r\n horizontalAxis: {\r\n position: BOTTOM,\r\n axisDivisionFactor: 70,\r\n label: {\r\n rotationAngle: 90,\r\n staggeringSpacing: 5,\r\n alignment: CENTER\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: RIGHT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n verticalAxis: {\r\n position: LEFT,\r\n axisDivisionFactor: 40,\r\n label: {\r\n alignment: RIGHT\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: CENTER\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n argumentAxis: {\r\n endOnTick: false,\r\n aggregateByCategory: true,\r\n workWeek: [1, 2, 3, 4, 5]\r\n },\r\n valueAxis: {\r\n grid: {\r\n visible: true\r\n },\r\n autoBreaksEnabled: false,\r\n maxAutoBreakCount: 4\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: NONE,\r\n border: {\r\n color: LIGHT_GREY,\r\n width: 1,\r\n visible: false,\r\n top: true,\r\n bottom: true,\r\n left: true,\r\n right: true,\r\n dashStyle: SOLID\r\n }\r\n },\r\n scrollBar: {\r\n visible: false,\r\n offset: 5,\r\n color: \"gray\",\r\n width: 10\r\n },\r\n adjustOnZoom: true,\r\n autoHidePointMarkers: true,\r\n rotated: false,\r\n synchronizeMultiAxes: true,\r\n stickyHovering: true,\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: \"#2a2a2a\",\r\n opacity: .2\r\n },\r\n panKey: \"shift\",\r\n allowMouseWheel: true,\r\n allowTouchGestures: true\r\n }\r\n },\r\n pie: {\r\n innerRadius: .5,\r\n minDiameter: .5,\r\n type: \"pie\",\r\n dataPrepareSettings: {\r\n _skipArgumentSorting: true\r\n },\r\n commonSeriesSettings: {\r\n pie: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n doughnut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n donut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n highlight: true,\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\"\r\n }\r\n },\r\n legend: {\r\n hoverMode: \"allArgumentPoints\",\r\n backgroundColor: NONE\r\n },\r\n adaptiveLayout: {\r\n keepLabels: false\r\n }\r\n },\r\n gauge: {\r\n scale: {\r\n tick: {\r\n visible: true,\r\n length: 5,\r\n width: 2,\r\n opacity: 1\r\n },\r\n minorTick: {\r\n visible: false,\r\n length: 3,\r\n width: 1,\r\n opacity: 1\r\n },\r\n label: {\r\n visible: true,\r\n alignment: CENTER,\r\n hideFirstOrLast: \"last\",\r\n overlappingBehavior: \"hide\"\r\n },\r\n position: TOP,\r\n endOnTick: false\r\n },\r\n rangeContainer: {\r\n offset: 0,\r\n width: 5,\r\n backgroundColor: \"#808080\"\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: \"#c2c2c2\"\r\n },\r\n rangebar: {\r\n space: 2,\r\n size: 10,\r\n color: \"#cbc5cf\",\r\n backgroundColor: NONE,\r\n text: {\r\n indent: 0,\r\n font: {\r\n size: 14,\r\n color: null\r\n }\r\n }\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#e18e92\"\r\n },\r\n trianglemarker: {\r\n space: 2,\r\n length: 14,\r\n width: 13,\r\n color: \"#8798a5\"\r\n },\r\n textcloud: {\r\n arrowLength: 5,\r\n horizontalOffset: 6,\r\n verticalOffset: 3,\r\n color: \"#679ec5\",\r\n text: {\r\n font: {\r\n color: WHITE,\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n },\r\n _circular: {\r\n scale: {\r\n scaleDivisionFactor: 17,\r\n orientation: OUTSIDE,\r\n label: {\r\n indentFromTick: 10\r\n }\r\n },\r\n rangeContainer: {\r\n orientation: OUTSIDE\r\n },\r\n valueIndicatorType: \"rectangleneedle\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangleneedle\",\r\n _default: {\r\n offset: 20,\r\n indentFromCenter: 0,\r\n width: 2,\r\n spindleSize: 14,\r\n spindleGapSize: 10,\r\n beginAdaptingAtRadius: 50\r\n },\r\n triangleneedle: {\r\n width: 4\r\n },\r\n twocolorneedle: {\r\n space: 2,\r\n secondFraction: .4\r\n },\r\n rangebar: {\r\n offset: 30\r\n },\r\n trianglemarker: {\r\n offset: 6\r\n },\r\n textcloud: {\r\n offset: -6\r\n }\r\n }\r\n },\r\n _linear: {\r\n scale: {\r\n scaleDivisionFactor: 25,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM,\r\n label: {\r\n indentFromTick: -10\r\n }\r\n },\r\n rangeContainer: {\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n valueIndicatorType: \"rangebar\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangle\",\r\n _default: {\r\n offset: 2.5,\r\n length: 15,\r\n width: 15\r\n },\r\n rectangle: {\r\n width: 10\r\n },\r\n rangebar: {\r\n offset: 10,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n trianglemarker: {\r\n offset: 10,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n },\r\n textcloud: {\r\n offset: -1,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#e0e0e0\",\r\n relativeInnerRadius: .3,\r\n barSpacing: 4,\r\n resolveLabelOverlapping: \"hide\",\r\n label: {\r\n indent: 20,\r\n connectorWidth: 2,\r\n font: {\r\n size: 16\r\n }\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n valueMarginsEnabled: true,\r\n width: 1,\r\n color: BLACK,\r\n opacity: .1,\r\n showCustomBoundaryTicks: true,\r\n aggregateByCategory: true,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n alignment: CENTER,\r\n visible: true,\r\n topIndent: 7,\r\n font: {\r\n size: 11\r\n }\r\n },\r\n tick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .17,\r\n visible: true,\r\n length: 12\r\n },\r\n minorTick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .05,\r\n visible: true,\r\n length: 12\r\n },\r\n marker: {\r\n width: 1,\r\n color: \"#000000\",\r\n opacity: .1,\r\n visible: true,\r\n separatorHeight: 33,\r\n topIndent: 10,\r\n textLeftIndent: 7,\r\n textTopIndent: 11,\r\n label: {}\r\n },\r\n logarithmBase: 10,\r\n workWeek: [1, 2, 3, 4, 5],\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n endOnTick: false\r\n },\r\n selectedRangeColor: \"#606060\",\r\n sliderMarker: {\r\n visible: true,\r\n paddingTopBottom: 2,\r\n paddingLeftRight: 4,\r\n color: \"#606060\",\r\n invalidRangeColor: RED,\r\n font: {\r\n color: WHITE,\r\n size: 11\r\n }\r\n },\r\n sliderHandle: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .2\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: \"#c0bae1\",\r\n visible: true,\r\n image: {\r\n location: \"full\"\r\n }\r\n },\r\n behavior: {\r\n snapToTicks: true,\r\n animationEnabled: true,\r\n moveSelectedRangeByClick: true,\r\n manualRangeSelectionEnabled: true,\r\n allowSlidersSwap: true,\r\n valueChangeMode: \"onHandleRelease\"\r\n },\r\n redrawOnResize: true,\r\n chart: {\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n topIndent: .1,\r\n bottomIndent: 0,\r\n valueAxis: {\r\n inverted: false,\r\n logarithmBase: 10\r\n },\r\n commonSeriesSettings: {\r\n type: \"area\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: false\r\n },\r\n scatter: {\r\n point: {\r\n visible: true\r\n }\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n title: {\r\n margin: 10\r\n },\r\n background: {\r\n borderWidth: 1,\r\n borderColor: \"#cacaca\"\r\n },\r\n layer: {\r\n label: {\r\n enabled: false,\r\n stroke: WHITE,\r\n \"stroke-width\": 1,\r\n \"stroke-opacity\": .7,\r\n font: {\r\n color: SOME_GREY,\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderWidth: 1,\r\n borderColor: WHITE,\r\n color: \"#d2d2d2\",\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN,\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n borderWidth: 2,\r\n color: \"#ba8365\",\r\n hoveredColor: \"#a94813\",\r\n selectedBorderWidth: 3,\r\n selectedColor: \"#e55100\",\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:marker\": {\r\n label: {\r\n enabled: true,\r\n \"stroke-width\": 1,\r\n font: {\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:marker:dot\": {\r\n borderWidth: 2,\r\n borderColor: WHITE,\r\n size: 8,\r\n selectedStep: 2,\r\n backStep: 18,\r\n backColor: WHITE,\r\n backOpacity: .32,\r\n shadow: true\r\n },\r\n \"layer:marker:bubble\": {\r\n minSize: 20,\r\n maxSize: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:pie\": {\r\n size: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:image\": {\r\n size: 20\r\n },\r\n legend: {\r\n verticalAlignment: BOTTOM,\r\n horizontalAlignment: RIGHT,\r\n position: INSIDE,\r\n backgroundOpacity: .65,\r\n border: {\r\n visible: true\r\n },\r\n paddingLeftRight: 16,\r\n paddingTopBottom: 12\r\n },\r\n controlBar: {\r\n borderColor: \"#5d5d5d\",\r\n borderWidth: 3,\r\n color: WHITE,\r\n margin: 20,\r\n opacity: .3\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n border: {\r\n width: 1,\r\n opacity: .2,\r\n color: \"#000000\"\r\n },\r\n color: \"#5f8b95\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {\r\n opacity: 1\r\n }\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: \"#ffffff\",\r\n weight: 600\r\n },\r\n shadow: {\r\n opacity: .6,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 2,\r\n color: \"#000000\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n group: {\r\n padding: 4,\r\n border: {\r\n width: 1\r\n },\r\n color: \"#eeeeee\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n weight: 600\r\n },\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n title: {\r\n subtitle: {}\r\n },\r\n tooltip: {},\r\n loadingIndicator: {}\r\n },\r\n sparkline: {\r\n lineColor: \"#666666\",\r\n lineWidth: 2,\r\n areaOpacity: .2,\r\n minColor: \"#e8c267\",\r\n maxColor: \"#e55253\",\r\n barPositiveColor: \"#a9a9a9\",\r\n barNegativeColor: \"#d7d7d7\",\r\n winColor: \"#a9a9a9\",\r\n lossColor: \"#d7d7d7\",\r\n firstLastColor: \"#666666\",\r\n pointSymbol: \"circle\",\r\n pointColor: WHITE,\r\n pointSize: 4,\r\n type: \"line\",\r\n argumentField: \"arg\",\r\n valueField: \"val\",\r\n winlossThreshold: 0,\r\n showFirstLast: true,\r\n showMinMax: false,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n bullet: {\r\n color: \"#e8c267\",\r\n targetColor: \"#666666\",\r\n targetWidth: 4,\r\n showTarget: true,\r\n showZeroLevel: true,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n polar: {\r\n commonSeriesSettings: {\r\n type: \"scatter\",\r\n closed: true,\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedline: {\r\n width: 2\r\n },\r\n bar: {\r\n opacity: .8\r\n },\r\n stackedbar: {\r\n opacity: .8\r\n }\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n barGroupPadding: .3,\r\n commonAxisSettings: {\r\n visible: true,\r\n forceUserTickInterval: false,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 5\r\n },\r\n grid: {\r\n visible: true\r\n },\r\n minorGrid: {\r\n visible: true\r\n },\r\n tick: {\r\n visible: true\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 10\r\n }\r\n },\r\n argumentAxis: {\r\n startAngle: 0,\r\n firstPointOnStartAngle: false,\r\n period: void 0\r\n },\r\n valueAxis: {\r\n endOnTick: false,\r\n tick: {\r\n visible: false\r\n }\r\n },\r\n horizontalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 50,\r\n label: {\r\n alignment: CENTER\r\n }\r\n },\r\n verticalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 30,\r\n label: {\r\n alignment: RIGHT\r\n }\r\n }\r\n },\r\n funnel: {\r\n sortData: true,\r\n valueField: \"val\",\r\n colorField: \"color\",\r\n argumentField: \"arg\",\r\n hoverEnabled: true,\r\n selectionMode: \"single\",\r\n item: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n tooltip: {\r\n customizeTooltip: function(info) {\r\n return {\r\n text: info.item.argument + \" \" + info.valueText\r\n }\r\n }\r\n },\r\n inverted: false,\r\n algorithm: \"dynamicSlope\",\r\n neckWidth: 0,\r\n neckHeight: 0,\r\n resolveLabelOverlapping: \"shift\",\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\",\r\n visible: true,\r\n horizontalAlignment: RIGHT,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n showForZeroValues: false,\r\n customizeText: function(info) {\r\n return info.item.argument + \" \" + info.valueText\r\n },\r\n position: \"columns\",\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: true,\r\n width: 1,\r\n opacity: .5\r\n }\r\n }\r\n },\r\n sankey: {\r\n sourceField: \"source\",\r\n targetField: \"target\",\r\n weightField: \"weight\",\r\n hoverEnabled: true,\r\n alignment: CENTER,\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n label: {\r\n visible: true,\r\n horizontalOffset: 8,\r\n verticalOffset: 0,\r\n overlappingBehavior: \"ellipsis\",\r\n useNodeColors: false,\r\n font: {\r\n color: BLACK,\r\n weight: 500\r\n },\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n customizeText: function(info) {\r\n return info.title\r\n },\r\n shadow: {\r\n opacity: .2,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 1,\r\n color: WHITE\r\n }\r\n },\r\n title: {\r\n margin: 10,\r\n font: {\r\n size: 28,\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n tooltip: {\r\n enabled: true\r\n },\r\n node: {\r\n padding: 30,\r\n width: 8,\r\n opacity: 1,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n colorMode: \"none\",\r\n opacity: .3,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n opacity: .5,\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: void 0\r\n}, {\r\n theme: {\r\n name: \"generic.light.compact\"\r\n },\r\n baseThemeName: \"generic.light\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.carmine.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#f05b41\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#8899a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#dee1e3\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.carmine\",\r\n defaultPalette: \"Carmine\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#f5e7e4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f74d61\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.carmine.compact\"\r\n },\r\n baseThemeName: \"generic.carmine\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.dark.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar BORDER_COLOR = \"#494949\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.dark\",\r\n font: {\r\n color: \"#808080\"\r\n },\r\n backgroundColor: \"#2a2a2a\",\r\n primaryTitleColor: \"#dedede\",\r\n secondaryTitleColor: \"#a3a3a3\",\r\n gridColor: \"#555555\",\r\n axisColor: \"#a3a3a3\",\r\n export: {\r\n backgroundColor: \"#2a2a2a\",\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: \"#2e2e2e\"\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#444\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#444444\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#555555\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n tooltip: {\r\n color: SOME_GREY,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: \"#929292\"\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#929292\"\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: SOME_GREY,\r\n shadow: {\r\n opacity: .008,\r\n offsetY: 4,\r\n blur: 8\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: GREY_GREEN\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: SOME_GREY,\r\n opacity: .9\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: GREY_GREEN,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: GREY_GREEN\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: GREY_GREEN\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n border: {\r\n color: \"#2a2a2a\"\r\n },\r\n hoverStyle: {\r\n color: \"#bbbbbb\"\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.dark.compact\"\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.contrast.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar CONTRAST_ACTIVE = \"#cf00da\";\r\nvar MARKER_COLOR = \"#f8ca00\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.contrast\",\r\n defaultPalette: \"Bright\",\r\n font: {\r\n color: WHITE\r\n },\r\n backgroundColor: BLACK,\r\n primaryTitleColor: WHITE,\r\n secondaryTitleColor: WHITE,\r\n gridColor: WHITE,\r\n axisColor: WHITE,\r\n export: {\r\n backgroundColor: BLACK,\r\n font: {\r\n color: WHITE\r\n },\r\n button: {\r\n default: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n hover: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: \"#cf00d7\"\r\n },\r\n focus: {\r\n color: WHITE,\r\n borderColor: \"#cf00d7\",\r\n backgroundColor: BLACK\r\n },\r\n active: {\r\n color: BLACK,\r\n borderColor: WHITE,\r\n backgroundColor: WHITE\r\n }\r\n },\r\n borderColor: WHITE,\r\n menuButtonColor: BLACK,\r\n activeBackgroundColor: WHITE,\r\n activeColor: BLACK,\r\n selectedBorderColor: CONTRAST_ACTIVE,\r\n selectedColor: CONTRAST_ACTIVE,\r\n shadowColor: \"none\"\r\n },\r\n tooltip: {\r\n border: {\r\n color: WHITE\r\n },\r\n font: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n valueErrorBar: {\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n },\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n chart: {\r\n commonSeriesSettings: {},\r\n crosshair: {\r\n color: \"#cf00d7\"\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: BLACK,\r\n border: {\r\n color: WHITE\r\n }\r\n },\r\n scrollBar: {\r\n color: WHITE\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE,\r\n opacity: .7\r\n }\r\n }\r\n },\r\n pie: {\r\n commonSeriesSettings: {\r\n pie: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n doughnut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n donut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: WHITE\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: WHITE\r\n },\r\n rangebar: {\r\n color: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n twocolorneedle: {\r\n secondColor: WHITE\r\n },\r\n trianglemarker: {\r\n color: WHITE\r\n },\r\n textcloud: {\r\n color: WHITE,\r\n text: {\r\n font: {\r\n color: BLACK\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .4\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .12\r\n },\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n selectedRangeColor: CONTRAST_ACTIVE,\r\n sliderMarker: {\r\n color: CONTRAST_ACTIVE\r\n },\r\n sliderHandle: {\r\n color: CONTRAST_ACTIVE,\r\n opacity: 1\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: BLACK\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: WHITE\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: BLACK,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE,\r\n label: {\r\n font: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n color: \"#267cff\",\r\n hoveredColor: \"#f613ff\",\r\n selectedColor: WHITE\r\n },\r\n \"layer:marker:dot\": {\r\n borderColor: BLACK,\r\n color: MARKER_COLOR,\r\n backColor: BLACK,\r\n backOpacity: .32\r\n },\r\n \"layer:marker:bubble\": {\r\n color: MARKER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n controlBar: {\r\n borderColor: WHITE,\r\n color: BLACK,\r\n opacity: .3\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n color: \"#70c92f\"\r\n },\r\n group: {\r\n color: \"#797979\",\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BLACK\r\n },\r\n bullet: {},\r\n polar: {\r\n commonSeriesSettings: {}\r\n },\r\n funnel: {\r\n label: {\r\n connector: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n }\r\n },\r\n link: {\r\n opacity: .5,\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n opacity: .9\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.contrast.compact\"\r\n },\r\n baseThemeName: \"generic.contrast\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkmoon.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3debd3\";\r\nvar BACKGROUND_COLOR = \"#465672\";\r\nvar TITLE_COLOR = \"#fff\";\r\nvar SUBTITLE_COLOR = \"#919bac\";\r\nvar TEXT_COLOR = \"#c7ccd4\";\r\nvar BORDER_COLOR = \"#596980\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkmoon\",\r\n defaultPalette: \"Dark Moon\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7a889e\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#9da8b8\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#6b80a4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#62789e\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: \"#62789e\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR,\r\n text: {\r\n font: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#526280\"\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f9517e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: BORDER_COLOR\r\n },\r\n \"layer:area\": {\r\n color: \"#97a3b6\",\r\n borderColor: BACKGROUND_COLOR\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#000\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkmoon.compact\"\r\n },\r\n baseThemeName: \"generic.darkmoon\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.darkviolet.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#9c63ff\";\r\nvar BACKGROUND_COLOR = \"#17171f\";\r\nvar TITLE_COLOR = \"#f5f6f7\";\r\nvar SUBTITLE_COLOR = \"#fff\";\r\nvar TEXT_COLOR = \"#b2b2b6\";\r\nvar BORDER_COLOR = \"#343840\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.darkviolet\",\r\n defaultPalette: \"Dark Violet\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#414152\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5c5c74\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#3c3c51\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: \"#414152\"\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: \"#414152\"\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#fff\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.dark\"\r\n}, {\r\n theme: {\r\n name: \"generic.darkviolet.compact\"\r\n },\r\n baseThemeName: \"generic.darkviolet\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.greenmist.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#3cbab2\";\r\nvar BACKGROUND_COLOR = \"#f5f5f5\";\r\nvar TITLE_COLOR = \"#28484f\";\r\nvar SUBTITLE_COLOR = \"#7eb2be\";\r\nvar TEXT_COLOR = \"#657c80\";\r\nvar BORDER_COLOR = \"#dedede\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.greenmist\",\r\n defaultPalette: \"Green Mist\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a2b4b8\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7f989e\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.8)\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#ffc852\",\r\n maxColor: \"#f74a5e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.greenmist.compact\"\r\n },\r\n baseThemeName: \"generic.greenmist\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/generic.softblue.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar ACCENT_COLOR = \"#7ab8eb\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#99a1a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#e8eaeb\";\r\nexport default [{\r\n theme: {\r\n name: \"generic.softblue\",\r\n defaultPalette: \"Soft Blue\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n export: {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n default: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c9d0d4\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a7b2b9\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"generic.softblue.compact\"\r\n },\r\n baseThemeName: \"generic.softblue\"\r\n}];\r\n","/**\r\n * DevExtreme (esm/viz/core/themes/material.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar FONT_FAMILY = \"'Roboto', 'RobotoFallback', 'Helvetica', 'Arial', sans-serif\";\r\nvar LIGHT_TITLE_COLOR = \"rgba(0,0,0,0.87)\";\r\nvar LIGHT_LABEL_COLOR = \"rgba(0,0,0,0.54)\";\r\nvar DARK_TITLE_COLOR = \"rgba(255,255,255,0.87)\";\r\nvar DARK_LABEL_COLOR = \"rgba(255,255,255,0.54)\";\r\nvar DARK_BACKGROUND_COLOR = \"#363640\";\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar LABEL_BORDER_COLOR = \"#494949\";\r\nvar BREAK_STYLE_COLOR = \"#818181\";\r\nvar themes = [{\r\n theme: {\r\n name: \"material\",\r\n defaultPalette: \"Material\",\r\n font: {\r\n family: FONT_FAMILY\r\n },\r\n title: {\r\n margin: {\r\n top: 20,\r\n bottom: 20,\r\n left: 0,\r\n right: 0\r\n },\r\n font: {\r\n size: 20,\r\n family: FONT_FAMILY,\r\n weight: 500\r\n },\r\n horizontalAlignment: \"left\",\r\n subtitle: {\r\n font: {\r\n size: 14\r\n },\r\n horizontalAlignment: \"left\"\r\n }\r\n },\r\n tooltip: {\r\n shadow: {\r\n opacity: 0\r\n },\r\n border: {\r\n visible: false\r\n },\r\n paddingLeftRight: 8,\r\n paddingTopBottom: 6,\r\n arrowLength: 0,\r\n location: \"edge\",\r\n color: \"#616161\",\r\n font: {\r\n color: WHITE\r\n },\r\n cornerRadius: 4\r\n },\r\n chart: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n },\r\n label: {\r\n font: {\r\n size: 11\r\n }\r\n }\r\n },\r\n commonAnnotationSettings: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: \"#616161\"\r\n },\r\n color: \"#616161\",\r\n arrowLength: 14,\r\n arrowWidth: 0,\r\n shadow: {\r\n opacity: .08,\r\n offsetY: 4,\r\n blur: 8\r\n },\r\n cornerRadius: 4\r\n }\r\n },\r\n pie: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n polar: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n }\r\n },\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n sliderHandle: {\r\n opacity: .5\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n label: {\r\n font: {\r\n weight: 500\r\n }\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"generic.light\"\r\n}, {\r\n theme: {\r\n name: \"material.light\",\r\n gridColor: \"#e0e0e0\",\r\n axisColor: LIGHT_LABEL_COLOR,\r\n primaryTitleColor: LIGHT_TITLE_COLOR,\r\n legend: {\r\n font: {\r\n color: LIGHT_LABEL_COLOR\r\n }\r\n },\r\n chart: {\r\n scrollBar: {\r\n color: \"#bfbfbf\",\r\n opacity: .7\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: \"rgba(0,0,0,0.2)\"\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#efefef\"\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}, {\r\n theme: {\r\n name: \"material.dark\",\r\n gridColor: \"#515159\",\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n axisColor: DARK_LABEL_COLOR,\r\n font: {\r\n color: DARK_LABEL_COLOR\r\n },\r\n primaryTitleColor: DARK_TITLE_COLOR,\r\n secondaryTitleColor: DARK_TITLE_COLOR,\r\n tooltip: {\r\n color: \"#000\"\r\n },\r\n export: {\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n default: {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: DARK_BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#3f3f4b\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n border: {\r\n color: \"#000\"\r\n },\r\n color: \"#000\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: WHITE,\r\n opacity: .1\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: DARK_BACKGROUND_COLOR,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: DARK_BACKGROUND_COLOR\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material\"\r\n}];\r\n\r\nfunction getMaterialColorScheme(accentName, themeName, accentColor) {\r\n return {\r\n theme: {\r\n name: \"material.\" + accentName + \".\" + themeName,\r\n rangeSelector: {\r\n selectedRangeColor: accentColor,\r\n sliderMarker: {\r\n color: accentColor\r\n },\r\n sliderHandle: {\r\n color: accentColor\r\n }\r\n },\r\n map: {\r\n \"layer:marker:dot\": {\r\n color: accentColor\r\n },\r\n \"layer:marker:bubble\": {\r\n color: accentColor\r\n },\r\n legend: {\r\n markerColor: accentColor\r\n }\r\n },\r\n bullet: {\r\n color: accentColor\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: accentColor\r\n },\r\n textcloud: {\r\n color: accentColor\r\n }\r\n }\r\n }\r\n },\r\n baseThemeName: \"material.\" + themeName\r\n }\r\n}\r\nvar materialAccents = {\r\n blue: \"#03a9f4\",\r\n lime: \"#cddc39\",\r\n orange: \"#ff5722\",\r\n purple: \"#9c27b0\",\r\n teal: \"#009688\"\r\n};\r\nfor (var accent in materialAccents) {\r\n if (Object.prototype.hasOwnProperty.call(materialAccents, accent)) {\r\n var color = materialAccents[accent];\r\n themes.push(getMaterialColorScheme(accent, \"light\", color), getMaterialColorScheme(accent, \"dark\", color), {\r\n theme: {\r\n name: \"material.\".concat(accent, \".light.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".light\")\r\n }, {\r\n theme: {\r\n name: \"material.\".concat(accent, \".dark.compact\")\r\n },\r\n baseThemeName: \"material.\".concat(accent, \".dark\")\r\n })\r\n }\r\n}\r\nexport default themes;\r\n","/**\r\n * DevExtreme (esm/viz/themes.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n normalizeEnum\r\n} from \"./core/utils\";\r\nimport {\r\n current as getCurrentTheme\r\n} from \"../ui/themes\";\r\nimport {\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport lightThemes from \"./core/themes/generic.light\";\r\nimport carmineThemes from \"./core/themes/generic.carmine\";\r\nimport darkThemes from \"./core/themes/generic.dark\";\r\nimport contrastThemes from \"./core/themes/generic.contrast\";\r\nimport darkMoonThemes from \"./core/themes/generic.darkmoon\";\r\nimport darkVioletThemes from \"./core/themes/generic.darkviolet\";\r\nimport greenMistThemes from \"./core/themes/generic.greenmist\";\r\nimport softBlueThemes from \"./core/themes/generic.softblue\";\r\nimport materialThemes from \"./core/themes/material\";\r\nvar themes = {};\r\nvar themesMapping = {};\r\nvar themesSchemeMapping = {};\r\nvar _extend = extend;\r\nvar _each = each;\r\nvar currentThemeName = null;\r\nvar defaultTheme;\r\nvar nextCacheUid = 0;\r\nvar widgetsCache = {};\r\nexport function getTheme(themeName) {\r\n var name = normalizeEnum(themeName);\r\n return themes[name] || themes[themesMapping[name] || currentTheme()]\r\n}\r\n\r\nfunction findThemeNameByName(name, scheme) {\r\n return themesMapping[name + \".\" + scheme] || themesSchemeMapping[name + \".\" + scheme] || themesMapping[name]\r\n}\r\n\r\nfunction findThemeNameByPlatform(platform, version, scheme) {\r\n return findThemeNameByName(platform + version, scheme) || findThemeNameByName(platform, scheme)\r\n}\r\nexport function currentTheme(themeName, colorScheme) {\r\n if (!arguments.length) {\r\n return currentThemeName || findThemeNameByName(getCurrentTheme()) || defaultTheme\r\n }\r\n var scheme = normalizeEnum(colorScheme);\r\n currentThemeName = (themeName && themeName.platform ? findThemeNameByPlatform(normalizeEnum(themeName.platform), themeName.version, scheme) : findThemeNameByName(normalizeEnum(themeName), scheme)) || currentThemeName;\r\n return this\r\n}\r\n\r\nfunction getThemeInfo(themeName, splitter) {\r\n var k = themeName.indexOf(splitter);\r\n return k > 0 ? {\r\n name: themeName.substring(0, k),\r\n scheme: themeName.substring(k + 1)\r\n } : null\r\n}\r\n\r\nfunction registerThemeName(themeName, targetThemeName) {\r\n var themeInfo = getThemeInfo(themeName, \".\") || {\r\n name: themeName\r\n };\r\n var name = themeInfo.name;\r\n var scheme = themeInfo.scheme;\r\n if (scheme) {\r\n themesMapping[name] = themesMapping[name] || targetThemeName;\r\n themesMapping[name + \".\" + scheme] = targetThemeName\r\n } else {\r\n themesMapping[name] = targetThemeName\r\n }\r\n}\r\nexport function registerTheme(theme, baseThemeName) {\r\n var themeName = normalizeEnum(theme && theme.name);\r\n if (themeName) {\r\n theme.isDefault && (defaultTheme = themeName);\r\n registerThemeName(themeName, themeName);\r\n themes[themeName] = _extend(true, {}, getTheme(baseThemeName), patchTheme(theme))\r\n }\r\n}\r\nexport function registerThemeSchemeAlias(from, to) {\r\n themesSchemeMapping[from] = to\r\n}\r\n\r\nfunction mergeScalar(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value && void 0 === target[field]) {\r\n target[field] = _value\r\n }\r\n}\r\n\r\nfunction mergeObject(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value) {\r\n target[field] = _extend(true, {}, _value, target[field])\r\n }\r\n}\r\n\r\nfunction patchTheme(theme) {\r\n theme = _extend(true, {\r\n loadingIndicator: {\r\n font: {}\r\n },\r\n export: {\r\n font: {}\r\n },\r\n legend: {\r\n font: {},\r\n border: {}\r\n },\r\n title: {\r\n font: {}\r\n },\r\n tooltip: {\r\n font: {}\r\n },\r\n \"chart:common\": {},\r\n \"chart:common:axis\": {\r\n grid: {},\r\n minorGrid: {},\r\n tick: {},\r\n minorTick: {},\r\n title: {\r\n font: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {},\r\n border: {}\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n candlestick: {}\r\n }\r\n },\r\n pie: {},\r\n polar: {},\r\n gauge: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n barGauge: {},\r\n funnel: {},\r\n sankey: {},\r\n map: {\r\n background: {}\r\n },\r\n treeMap: {\r\n tile: {\r\n selectionStyle: {\r\n border: {}\r\n }\r\n },\r\n group: {\r\n border: {},\r\n selectionStyle: {\r\n border: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n },\r\n chart: {}\r\n },\r\n sparkline: {},\r\n bullet: {}\r\n }, theme);\r\n mergeScalar(theme.loadingIndicator, \"backgroundColor\", theme);\r\n mergeScalar(theme.chart.commonSeriesSettings.candlestick, \"innerColor\", null, theme.backgroundColor);\r\n mergeScalar(theme.map.background, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.title.font, \"color\", null, theme.primaryTitleColor);\r\n mergeObject(theme.title, \"subtitle\", null, theme.title);\r\n mergeScalar(theme.legend.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.legend.border, \"color\", null, theme.gridColor);\r\n patchAxes(theme);\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sparkline\", \"bullet\", \"sankey\"], (function(_, section) {\r\n mergeScalar(theme[section], \"redrawOnResize\", theme);\r\n mergeScalar(theme[section], \"containerBackgroundColor\", null, theme.backgroundColor);\r\n mergeObject(theme[section], \"tooltip\", theme);\r\n mergeObject(theme[section], \"export\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sankey\"], (function(_, section) {\r\n mergeObject(theme[section], \"loadingIndicator\", theme);\r\n mergeObject(theme[section], \"legend\", theme);\r\n mergeObject(theme[section], \"title\", theme)\r\n }));\r\n _each([\"chart\", \"pie\", \"polar\"], (function(_, section) {\r\n mergeObject(theme, section, null, theme[\"chart:common\"])\r\n }));\r\n _each([\"chart\", \"polar\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAxisSettings\", null, theme[\"chart:common:axis\"])\r\n }));\r\n _each([\"chart\", \"polar\", \"map\", \"pie\"], (function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAnnotationSettings\", null, theme[\"chart:common:annotation\"])\r\n }));\r\n mergeObject(theme.rangeSelector.chart, \"commonSeriesSettings\", theme.chart);\r\n mergeObject(theme.rangeSelector.chart, \"dataPrepareSettings\", theme.chart);\r\n mergeScalar(theme.treeMap.group.border, \"color\", null, theme.gridColor);\r\n mergeScalar(theme.treeMap.tile.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.treeMap.group.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.map.legend, \"backgroundColor\", theme);\r\n patchMapLayers(theme);\r\n return theme\r\n}\r\n\r\nfunction patchAxes(theme) {\r\n var commonAxisSettings = theme[\"chart:common:axis\"];\r\n _each([commonAxisSettings.grid, commonAxisSettings.minorGrid], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.gridColor)\r\n }));\r\n _each([commonAxisSettings, commonAxisSettings.tick, commonAxisSettings.minorTick, commonAxisSettings.label.font], (function(_, obj) {\r\n mergeScalar(obj, \"color\", null, theme.axisColor)\r\n }));\r\n mergeScalar(commonAxisSettings.title.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.gauge.scale.label.font, \"color\", null, theme.axisColor);\r\n mergeScalar(theme.gauge.scale.tick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.gauge.scale.minorTick, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.rangeSelector.scale.label.font, \"color\", null, theme.axisColor)\r\n}\r\n\r\nfunction patchMapLayers(theme) {\r\n var map = theme.map;\r\n _each([\"area\", \"line\", \"marker\"], (function(_, section) {\r\n mergeObject(map, \"layer:\" + section, null, map.layer)\r\n }));\r\n _each([\"dot\", \"bubble\", \"pie\", \"image\"], (function(_, section) {\r\n mergeObject(map, \"layer:marker:\" + section, null, map[\"layer:marker\"])\r\n }))\r\n}\r\nexport function addCacheItem(target) {\r\n var cacheUid = ++nextCacheUid;\r\n target._cache = cacheUid;\r\n widgetsCache[cacheUid] = target\r\n}\r\nexport function removeCacheItem(target) {\r\n delete widgetsCache[target._cache]\r\n}\r\nexport function refreshTheme() {\r\n _each(widgetsCache, (function() {\r\n this.refresh()\r\n }));\r\n return this\r\n}\r\nif (isEmptyObject(themes) && isEmptyObject(themesMapping) && !defaultTheme) {\r\n [].concat(lightThemes, carmineThemes, darkThemes, contrastThemes, darkMoonThemes, darkVioletThemes, greenMistThemes, softBlueThemes, materialThemes).forEach(t => {\r\n registerTheme(t.theme, t.baseThemeName)\r\n })\r\n}\r\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","/*!\n * jQuery JavaScript Library v3.7.0\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-05-11T18:29Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.0\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (see trac-13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented\n// as part of Sizzle so let's maintain them in the 3.x line\n// for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/*!\n * Knockout JavaScript library v3.5.1\n * (c) The Knockout.js team - http://knockoutjs.com/\n * License: MIT (http://www.opensource.org/licenses/mit-license.php)\n */\n\n(function() {(function(n){var A=this||(0,eval)(\"this\"),w=A.document,R=A.navigator,v=A.jQuery,H=A.JSON;v||\"undefined\"===typeof jQuery||(v=jQuery);(function(n){\"function\"===typeof define&&define.amd?define([\"exports\",\"require\"],n):\"object\"===typeof exports&&\"object\"===typeof module?n(module.exports||exports):n(A.ko={})})(function(S,T){function K(a,c){return null===a||typeof a in W?a===c:!1}function X(b,c){var d;return function(){d||(d=a.a.setTimeout(function(){d=n;b()},c))}}function Y(b,c){var d;return function(){clearTimeout(d);\nd=a.a.setTimeout(b,c)}}function Z(a,c){c&&\"change\"!==c?\"beforeChange\"===c?this.pc(a):this.gb(a,c):this.qc(a)}function aa(a,c){null!==c&&c.s&&c.s()}function ba(a,c){var d=this.qd,e=d[r];e.ra||(this.Qb&&this.mb[c]?(d.uc(c,a,this.mb[c]),this.mb[c]=null,--this.Qb):e.I[c]||d.uc(c,a,e.J?{da:a}:d.$c(a)),a.Ja&&a.gd())}var a=\"undefined\"!==typeof S?S:{};a.b=function(b,c){for(var d=b.split(\".\"),e=a,f=0;f<d.length-1;f++)e=e[d[f]];e[d[d.length-1]]=c};a.L=function(a,c,d){a[c]=d};a.version=\"3.5.1\";a.b(\"version\",\na.version);a.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1};a.a=function(){function b(a,b){for(var c in a)f.call(a,c)&&b(c,a[c])}function c(a,b){if(b)for(var c in b)f.call(b,c)&&(a[c]=b[c]);return a}function d(a,b){a.__proto__=b;return a}function e(b,c,d,e){var l=b[c].match(q)||[];a.a.D(d.match(q),function(b){a.a.Na(l,b,e)});b[c]=l.join(\" \")}var f=Object.prototype.hasOwnProperty,g={__proto__:[]}instanceof Array,h=\"function\"===typeof Symbol,m={},k={};m[R&&/Firefox\\/2/i.test(R.userAgent)?\n\"KeyboardEvent\":\"UIEvents\"]=[\"keyup\",\"keydown\",\"keypress\"];m.MouseEvents=\"click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave\".split(\" \");b(m,function(a,b){if(b.length)for(var c=0,d=b.length;c<d;c++)k[b[c]]=a});var l={propertychange:!0},p=w&&function(){for(var a=3,b=w.createElement(\"div\"),c=b.getElementsByTagName(\"i\");b.innerHTML=\"\\x3c!--[if gt IE \"+ ++a+\"]><i></i><![endif]--\\x3e\",c[0];);return 4<a?a:n}(),q=/\\S+/g,t;return{Jc:[\"authenticity_token\",/^__RequestVerificationToken(_.*)?$/],\nD:function(a,b,c){for(var d=0,e=a.length;d<e;d++)b.call(c,a[d],d,a)},A:\"function\"==typeof Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b)}:function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},Lb:function(a,b,c){for(var d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a))return a[d];return n},Pa:function(b,c){var d=a.a.A(b,c);0<d?b.splice(d,1):0===d&&b.shift()},wc:function(b){var c=[];b&&a.a.D(b,function(b){0>a.a.A(c,b)&&c.push(b)});return c},Mb:function(a,\nb,c){var d=[];if(a)for(var e=0,l=a.length;e<l;e++)d.push(b.call(c,a[e],e));return d},jb:function(a,b,c){var d=[];if(a)for(var e=0,l=a.length;e<l;e++)b.call(c,a[e],e)&&d.push(a[e]);return d},Nb:function(a,b){if(b instanceof Array)a.push.apply(a,b);else for(var c=0,d=b.length;c<d;c++)a.push(b[c]);return a},Na:function(b,c,d){var e=a.a.A(a.a.bc(b),c);0>e?d&&b.push(c):d||b.splice(e,1)},Ba:g,extend:c,setPrototypeOf:d,Ab:g?d:c,P:b,Ga:function(a,b,c){if(!a)return a;var d={},e;for(e in a)f.call(a,e)&&(d[e]=\nb.call(c,a[e],e,a));return d},Tb:function(b){for(;b.firstChild;)a.removeNode(b.firstChild)},Yb:function(b){b=a.a.la(b);for(var c=(b[0]&&b[0].ownerDocument||w).createElement(\"div\"),d=0,e=b.length;d<e;d++)c.appendChild(a.oa(b[d]));return c},Ca:function(b,c){for(var d=0,e=b.length,l=[];d<e;d++){var k=b[d].cloneNode(!0);l.push(c?a.oa(k):k)}return l},va:function(b,c){a.a.Tb(b);if(c)for(var d=0,e=c.length;d<e;d++)b.appendChild(c[d])},Xc:function(b,c){var d=b.nodeType?[b]:b;if(0<d.length){for(var e=d[0],\nl=e.parentNode,k=0,f=c.length;k<f;k++)l.insertBefore(c[k],e);k=0;for(f=d.length;k<f;k++)a.removeNode(d[k])}},Ua:function(a,b){if(a.length){for(b=8===b.nodeType&&b.parentNode||b;a.length&&a[0].parentNode!==b;)a.splice(0,1);for(;1<a.length&&a[a.length-1].parentNode!==b;)a.length--;if(1<a.length){var c=a[0],d=a[a.length-1];for(a.length=0;c!==d;)a.push(c),c=c.nextSibling;a.push(d)}}return a},Zc:function(a,b){7>p?a.setAttribute(\"selected\",b):a.selected=b},Db:function(a){return null===a||a===n?\"\":a.trim?\na.trim():a.toString().replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,\"\")},Ud:function(a,b){a=a||\"\";return b.length>a.length?!1:a.substring(0,b.length)===b},vd:function(a,b){if(a===b)return!0;if(11===a.nodeType)return!1;if(b.contains)return b.contains(1!==a.nodeType?a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode;return!!a},Sb:function(b){return a.a.vd(b,b.ownerDocument.documentElement)},kd:function(b){return!!a.a.Lb(b,a.a.Sb)},R:function(a){return a&&\na.tagName&&a.tagName.toLowerCase()},Ac:function(b){return a.onError?function(){try{return b.apply(this,arguments)}catch(c){throw a.onError&&a.onError(c),c;}}:b},setTimeout:function(b,c){return setTimeout(a.a.Ac(b),c)},Gc:function(b){setTimeout(function(){a.onError&&a.onError(b);throw b;},0)},B:function(b,c,d){var e=a.a.Ac(d);d=l[c];if(a.options.useOnlyNativeEvents||d||!v)if(d||\"function\"!=typeof b.addEventListener)if(\"undefined\"!=typeof b.attachEvent){var k=function(a){e.call(b,a)},f=\"on\"+c;b.attachEvent(f,\nk);a.a.K.za(b,function(){b.detachEvent(f,k)})}else throw Error(\"Browser doesn't support addEventListener or attachEvent\");else b.addEventListener(c,e,!1);else t||(t=\"function\"==typeof v(b).on?\"on\":\"bind\"),v(b)[t](c,e)},Fb:function(b,c){if(!b||!b.nodeType)throw Error(\"element must be a DOM node when calling triggerEvent\");var d;\"input\"===a.a.R(b)&&b.type&&\"click\"==c.toLowerCase()?(d=b.type,d=\"checkbox\"==d||\"radio\"==d):d=!1;if(a.options.useOnlyNativeEvents||!v||d)if(\"function\"==typeof w.createEvent)if(\"function\"==\ntypeof b.dispatchEvent)d=w.createEvent(k[c]||\"HTMLEvents\"),d.initEvent(c,!0,!0,A,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(d);else throw Error(\"The supplied element doesn't support dispatchEvent\");else if(d&&b.click)b.click();else if(\"undefined\"!=typeof b.fireEvent)b.fireEvent(\"on\"+c);else throw Error(\"Browser doesn't support triggering events\");else v(b).trigger(c)},f:function(b){return a.O(b)?b():b},bc:function(b){return a.O(b)?b.v():b},Eb:function(b,c,d){var l;c&&(\"object\"===typeof b.classList?\n(l=b.classList[d?\"add\":\"remove\"],a.a.D(c.match(q),function(a){l.call(b.classList,a)})):\"string\"===typeof b.className.baseVal?e(b.className,\"baseVal\",c,d):e(b,\"className\",c,d))},Bb:function(b,c){var d=a.a.f(c);if(null===d||d===n)d=\"\";var e=a.h.firstChild(b);!e||3!=e.nodeType||a.h.nextSibling(e)?a.h.va(b,[b.ownerDocument.createTextNode(d)]):e.data=d;a.a.Ad(b)},Yc:function(a,b){a.name=b;if(7>=p)try{var c=a.name.replace(/[&<>'\"]/g,function(a){return\"&#\"+a.charCodeAt(0)+\";\"});a.mergeAttributes(w.createElement(\"<input name='\"+\nc+\"'/>\"),!1)}catch(d){}},Ad:function(a){9<=p&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},wd:function(a){if(p){var b=a.style.width;a.style.width=0;a.style.width=b}},Pd:function(b,c){b=a.a.f(b);c=a.a.f(c);for(var d=[],e=b;e<=c;e++)d.push(e);return d},la:function(a){for(var b=[],c=0,d=a.length;c<d;c++)b.push(a[c]);return b},Da:function(a){return h?Symbol(a):a},Zd:6===p,$d:7===p,W:p,Lc:function(b,c){for(var d=a.a.la(b.getElementsByTagName(\"input\")).concat(a.a.la(b.getElementsByTagName(\"textarea\"))),\ne=\"string\"==typeof c?function(a){return a.name===c}:function(a){return c.test(a.name)},l=[],k=d.length-1;0<=k;k--)e(d[k])&&l.push(d[k]);return l},Nd:function(b){return\"string\"==typeof b&&(b=a.a.Db(b))?H&&H.parse?H.parse(b):(new Function(\"return \"+b))():null},hc:function(b,c,d){if(!H||!H.stringify)throw Error(\"Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js\");\nreturn H.stringify(a.a.f(b),c,d)},Od:function(c,d,e){e=e||{};var l=e.params||{},k=e.includeFields||this.Jc,f=c;if(\"object\"==typeof c&&\"form\"===a.a.R(c))for(var f=c.action,h=k.length-1;0<=h;h--)for(var g=a.a.Lc(c,k[h]),m=g.length-1;0<=m;m--)l[g[m].name]=g[m].value;d=a.a.f(d);var p=w.createElement(\"form\");p.style.display=\"none\";p.action=f;p.method=\"post\";for(var q in d)c=w.createElement(\"input\"),c.type=\"hidden\",c.name=q,c.value=a.a.hc(a.a.f(d[q])),p.appendChild(c);b(l,function(a,b){var c=w.createElement(\"input\");\nc.type=\"hidden\";c.name=a;c.value=b;p.appendChild(c)});w.body.appendChild(p);e.submitter?e.submitter(p):p.submit();setTimeout(function(){p.parentNode.removeChild(p)},0)}}}();a.b(\"utils\",a.a);a.b(\"utils.arrayForEach\",a.a.D);a.b(\"utils.arrayFirst\",a.a.Lb);a.b(\"utils.arrayFilter\",a.a.jb);a.b(\"utils.arrayGetDistinctValues\",a.a.wc);a.b(\"utils.arrayIndexOf\",a.a.A);a.b(\"utils.arrayMap\",a.a.Mb);a.b(\"utils.arrayPushAll\",a.a.Nb);a.b(\"utils.arrayRemoveItem\",a.a.Pa);a.b(\"utils.cloneNodes\",a.a.Ca);a.b(\"utils.createSymbolOrString\",\na.a.Da);a.b(\"utils.extend\",a.a.extend);a.b(\"utils.fieldsIncludedWithJsonPost\",a.a.Jc);a.b(\"utils.getFormFields\",a.a.Lc);a.b(\"utils.objectMap\",a.a.Ga);a.b(\"utils.peekObservable\",a.a.bc);a.b(\"utils.postJson\",a.a.Od);a.b(\"utils.parseJson\",a.a.Nd);a.b(\"utils.registerEventHandler\",a.a.B);a.b(\"utils.stringifyJson\",a.a.hc);a.b(\"utils.range\",a.a.Pd);a.b(\"utils.toggleDomNodeCssClass\",a.a.Eb);a.b(\"utils.triggerEvent\",a.a.Fb);a.b(\"utils.unwrapObservable\",a.a.f);a.b(\"utils.objectForEach\",a.a.P);a.b(\"utils.addOrRemoveItem\",\na.a.Na);a.b(\"utils.setTextContent\",a.a.Bb);a.b(\"unwrap\",a.a.f);Function.prototype.bind||(Function.prototype.bind=function(a){var c=this;if(1===arguments.length)return function(){return c.apply(a,arguments)};var d=Array.prototype.slice.call(arguments,1);return function(){var e=d.slice(0);e.push.apply(e,arguments);return c.apply(a,e)}});a.a.g=new function(){var b=0,c=\"__ko__\"+(new Date).getTime(),d={},e,f;a.a.W?(e=function(a,e){var f=a[c];if(!f||\"null\"===f||!d[f]){if(!e)return n;f=a[c]=\"ko\"+b++;d[f]=\n{}}return d[f]},f=function(a){var b=a[c];return b?(delete d[b],a[c]=null,!0):!1}):(e=function(a,b){var d=a[c];!d&&b&&(d=a[c]={});return d},f=function(a){return a[c]?(delete a[c],!0):!1});return{get:function(a,b){var c=e(a,!1);return c&&c[b]},set:function(a,b,c){(a=e(a,c!==n))&&(a[b]=c)},Ub:function(a,b,c){a=e(a,!0);return a[b]||(a[b]=c)},clear:f,Z:function(){return b++ +c}}};a.b(\"utils.domData\",a.a.g);a.b(\"utils.domData.clear\",a.a.g.clear);a.a.K=new function(){function b(b,c){var d=a.a.g.get(b,e);\nd===n&&c&&(d=[],a.a.g.set(b,e,d));return d}function c(c){var e=b(c,!1);if(e)for(var e=e.slice(0),k=0;k<e.length;k++)e[k](c);a.a.g.clear(c);a.a.K.cleanExternalData(c);g[c.nodeType]&&d(c.childNodes,!0)}function d(b,d){for(var e=[],l,f=0;f<b.length;f++)if(!d||8===b[f].nodeType)if(c(e[e.length]=l=b[f]),b[f]!==l)for(;f--&&-1==a.a.A(e,b[f]););}var e=a.a.g.Z(),f={1:!0,8:!0,9:!0},g={1:!0,9:!0};return{za:function(a,c){if(\"function\"!=typeof c)throw Error(\"Callback must be a function\");b(a,!0).push(c)},yb:function(c,\nd){var f=b(c,!1);f&&(a.a.Pa(f,d),0==f.length&&a.a.g.set(c,e,n))},oa:function(b){a.u.G(function(){f[b.nodeType]&&(c(b),g[b.nodeType]&&d(b.getElementsByTagName(\"*\")))});return b},removeNode:function(b){a.oa(b);b.parentNode&&b.parentNode.removeChild(b)},cleanExternalData:function(a){v&&\"function\"==typeof v.cleanData&&v.cleanData([a])}}};a.oa=a.a.K.oa;a.removeNode=a.a.K.removeNode;a.b(\"cleanNode\",a.oa);a.b(\"removeNode\",a.removeNode);a.b(\"utils.domNodeDisposal\",a.a.K);a.b(\"utils.domNodeDisposal.addDisposeCallback\",\na.a.K.za);a.b(\"utils.domNodeDisposal.removeDisposeCallback\",a.a.K.yb);(function(){var b=[0,\"\",\"\"],c=[1,\"<table>\",\"</table>\"],d=[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],e=[1,\"<select multiple='multiple'>\",\"</select>\"],f={thead:c,tbody:c,tfoot:c,tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:d,th:d,option:e,optgroup:e},g=8>=a.a.W;a.a.ua=function(c,d){var e;if(v)if(v.parseHTML)e=v.parseHTML(c,d)||[];else{if((e=v.clean([c],d))&&e[0]){for(var l=e[0];l.parentNode&&11!==l.parentNode.nodeType;)l=l.parentNode;\nl.parentNode&&l.parentNode.removeChild(l)}}else{(e=d)||(e=w);var l=e.parentWindow||e.defaultView||A,p=a.a.Db(c).toLowerCase(),q=e.createElement(\"div\"),t;t=(p=p.match(/^(?:\\x3c!--.*?--\\x3e\\s*?)*?<([a-z]+)[\\s>]/))&&f[p[1]]||b;p=t[0];t=\"ignored<div>\"+t[1]+c+t[2]+\"</div>\";\"function\"==typeof l.innerShiv?q.appendChild(l.innerShiv(t)):(g&&e.body.appendChild(q),q.innerHTML=t,g&&q.parentNode.removeChild(q));for(;p--;)q=q.lastChild;e=a.a.la(q.lastChild.childNodes)}return e};a.a.Md=function(b,c){var d=a.a.ua(b,\nc);return d.length&&d[0].parentElement||a.a.Yb(d)};a.a.fc=function(b,c){a.a.Tb(b);c=a.a.f(c);if(null!==c&&c!==n)if(\"string\"!=typeof c&&(c=c.toString()),v)v(b).html(c);else for(var d=a.a.ua(c,b.ownerDocument),e=0;e<d.length;e++)b.appendChild(d[e])}})();a.b(\"utils.parseHtmlFragment\",a.a.ua);a.b(\"utils.setHtml\",a.a.fc);a.aa=function(){function b(c,e){if(c)if(8==c.nodeType){var f=a.aa.Uc(c.nodeValue);null!=f&&e.push({ud:c,Kd:f})}else if(1==c.nodeType)for(var f=0,g=c.childNodes,h=g.length;f<h;f++)b(g[f],\ne)}var c={};return{Xb:function(a){if(\"function\"!=typeof a)throw Error(\"You can only pass a function to ko.memoization.memoize()\");var b=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);c[b]=a;return\"\\x3c!--[ko_memo:\"+b+\"]--\\x3e\"},bd:function(a,b){var f=c[a];if(f===n)throw Error(\"Couldn't find any memo with ID \"+a+\". Perhaps it's already been unmemoized.\");try{return f.apply(null,b||[]),!0}finally{delete c[a]}},cd:function(c,e){var f=\n[];b(c,f);for(var g=0,h=f.length;g<h;g++){var m=f[g].ud,k=[m];e&&a.a.Nb(k,e);a.aa.bd(f[g].Kd,k);m.nodeValue=\"\";m.parentNode&&m.parentNode.removeChild(m)}},Uc:function(a){return(a=a.match(/^\\[ko_memo\\:(.*?)\\]$/))?a[1]:null}}}();a.b(\"memoization\",a.aa);a.b(\"memoization.memoize\",a.aa.Xb);a.b(\"memoization.unmemoize\",a.aa.bd);a.b(\"memoization.parseMemoText\",a.aa.Uc);a.b(\"memoization.unmemoizeDomNodeAndDescendants\",a.aa.cd);a.na=function(){function b(){if(f)for(var b=f,c=0,d;h<f;)if(d=e[h++]){if(h>b){if(5E3<=\n++c){h=f;a.a.Gc(Error(\"'Too much recursion' after processing \"+c+\" task groups.\"));break}b=f}try{d()}catch(p){a.a.Gc(p)}}}function c(){b();h=f=e.length=0}var d,e=[],f=0,g=1,h=0;A.MutationObserver?d=function(a){var b=w.createElement(\"div\");(new MutationObserver(a)).observe(b,{attributes:!0});return function(){b.classList.toggle(\"foo\")}}(c):d=w&&\"onreadystatechange\"in w.createElement(\"script\")?function(a){var b=w.createElement(\"script\");b.onreadystatechange=function(){b.onreadystatechange=null;w.documentElement.removeChild(b);\nb=null;a()};w.documentElement.appendChild(b)}:function(a){setTimeout(a,0)};return{scheduler:d,zb:function(b){f||a.na.scheduler(c);e[f++]=b;return g++},cancel:function(a){a=a-(g-f);a>=h&&a<f&&(e[a]=null)},resetForTesting:function(){var a=f-h;h=f=e.length=0;return a},Sd:b}}();a.b(\"tasks\",a.na);a.b(\"tasks.schedule\",a.na.zb);a.b(\"tasks.runEarly\",a.na.Sd);a.Ta={throttle:function(b,c){b.throttleEvaluation=c;var d=null;return a.$({read:b,write:function(e){clearTimeout(d);d=a.a.setTimeout(function(){b(e)},\nc)}})},rateLimit:function(a,c){var d,e,f;\"number\"==typeof c?d=c:(d=c.timeout,e=c.method);a.Hb=!1;f=\"function\"==typeof e?e:\"notifyWhenChangesStop\"==e?Y:X;a.ub(function(a){return f(a,d,c)})},deferred:function(b,c){if(!0!==c)throw Error(\"The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.\");b.Hb||(b.Hb=!0,b.ub(function(c){var e,f=!1;return function(){if(!f){a.na.cancel(e);e=a.na.zb(c);try{f=!0,b.notifySubscribers(n,\"dirty\")}finally{f=\n!1}}}}))},notify:function(a,c){a.equalityComparer=\"always\"==c?null:K}};var W={undefined:1,\"boolean\":1,number:1,string:1};a.b(\"extenders\",a.Ta);a.ic=function(b,c,d){this.da=b;this.lc=c;this.mc=d;this.Ib=!1;this.fb=this.Jb=null;a.L(this,\"dispose\",this.s);a.L(this,\"disposeWhenNodeIsRemoved\",this.l)};a.ic.prototype.s=function(){this.Ib||(this.fb&&a.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)};a.ic.prototype.l=function(b){this.Jb=b;a.a.K.za(b,this.fb=this.s.bind(this))};\na.T=function(){a.a.Ab(this,D);D.qb(this)};var D={qb:function(a){a.U={change:[]};a.sc=1},subscribe:function(b,c,d){var e=this;d=d||\"change\";var f=new a.ic(e,c?b.bind(c):b,function(){a.a.Pa(e.U[d],f);e.hb&&e.hb(d)});e.Qa&&e.Qa(d);e.U[d]||(e.U[d]=[]);e.U[d].push(f);return f},notifySubscribers:function(b,c){c=c||\"change\";\"change\"===c&&this.Gb();if(this.Wa(c)){var d=\"change\"===c&&this.ed||this.U[c].slice(0);try{a.u.xc();for(var e=0,f;f=d[e];++e)f.Ib||f.lc(b)}finally{a.u.end()}}},ob:function(){return this.sc},\nDd:function(a){return this.ob()!==a},Gb:function(){++this.sc},ub:function(b){var c=this,d=a.O(c),e,f,g,h,m;c.gb||(c.gb=c.notifySubscribers,c.notifySubscribers=Z);var k=b(function(){c.Ja=!1;d&&h===c&&(h=c.nc?c.nc():c());var a=f||m&&c.sb(g,h);m=f=e=!1;a&&c.gb(g=h)});c.qc=function(a,b){b&&c.Ja||(m=!b);c.ed=c.U.change.slice(0);c.Ja=e=!0;h=a;k()};c.pc=function(a){e||(g=a,c.gb(a,\"beforeChange\"))};c.rc=function(){m=!0};c.gd=function(){c.sb(g,c.v(!0))&&(f=!0)}},Wa:function(a){return this.U[a]&&this.U[a].length},\nBd:function(b){if(b)return this.U[b]&&this.U[b].length||0;var c=0;a.a.P(this.U,function(a,b){\"dirty\"!==a&&(c+=b.length)});return c},sb:function(a,c){return!this.equalityComparer||!this.equalityComparer(a,c)},toString:function(){return\"[object Object]\"},extend:function(b){var c=this;b&&a.a.P(b,function(b,e){var f=a.Ta[b];\"function\"==typeof f&&(c=f(c,e)||c)});return c}};a.L(D,\"init\",D.qb);a.L(D,\"subscribe\",D.subscribe);a.L(D,\"extend\",D.extend);a.L(D,\"getSubscriptionsCount\",D.Bd);a.a.Ba&&a.a.setPrototypeOf(D,\nFunction.prototype);a.T.fn=D;a.Qc=function(a){return null!=a&&\"function\"==typeof a.subscribe&&\"function\"==typeof a.notifySubscribers};a.b(\"subscribable\",a.T);a.b(\"isSubscribable\",a.Qc);a.S=a.u=function(){function b(a){d.push(e);e=a}function c(){e=d.pop()}var d=[],e,f=0;return{xc:b,end:c,cc:function(b){if(e){if(!a.Qc(b))throw Error(\"Only subscribable things can act as dependencies\");e.od.call(e.pd,b,b.fd||(b.fd=++f))}},G:function(a,d,e){try{return b(),a.apply(d,e||[])}finally{c()}},qa:function(){if(e)return e.o.qa()},\nVa:function(){if(e)return e.o.Va()},Ya:function(){if(e)return e.Ya},o:function(){if(e)return e.o}}}();a.b(\"computedContext\",a.S);a.b(\"computedContext.getDependenciesCount\",a.S.qa);a.b(\"computedContext.getDependencies\",a.S.Va);a.b(\"computedContext.isInitial\",a.S.Ya);a.b(\"computedContext.registerDependency\",a.S.cc);a.b(\"ignoreDependencies\",a.Yd=a.u.G);var I=a.a.Da(\"_latestValue\");a.ta=function(b){function c(){if(0<arguments.length)return c.sb(c[I],arguments[0])&&(c.ya(),c[I]=arguments[0],c.xa()),this;\na.u.cc(c);return c[I]}c[I]=b;a.a.Ba||a.a.extend(c,a.T.fn);a.T.fn.qb(c);a.a.Ab(c,F);a.options.deferUpdates&&a.Ta.deferred(c,!0);return c};var F={equalityComparer:K,v:function(){return this[I]},xa:function(){this.notifySubscribers(this[I],\"spectate\");this.notifySubscribers(this[I])},ya:function(){this.notifySubscribers(this[I],\"beforeChange\")}};a.a.Ba&&a.a.setPrototypeOf(F,a.T.fn);var G=a.ta.Ma=\"__ko_proto__\";F[G]=a.ta;a.O=function(b){if((b=\"function\"==typeof b&&b[G])&&b!==F[G]&&b!==a.o.fn[G])throw Error(\"Invalid object that looks like an observable; possibly from another Knockout instance\");\nreturn!!b};a.Za=function(b){return\"function\"==typeof b&&(b[G]===F[G]||b[G]===a.o.fn[G]&&b.Nc)};a.b(\"observable\",a.ta);a.b(\"isObservable\",a.O);a.b(\"isWriteableObservable\",a.Za);a.b(\"isWritableObservable\",a.Za);a.b(\"observable.fn\",F);a.L(F,\"peek\",F.v);a.L(F,\"valueHasMutated\",F.xa);a.L(F,\"valueWillMutate\",F.ya);a.Ha=function(b){b=b||[];if(\"object\"!=typeof b||!(\"length\"in b))throw Error(\"The argument passed when initializing an observable array must be an array, or null, or undefined.\");b=a.ta(b);a.a.Ab(b,\na.Ha.fn);return b.extend({trackArrayChanges:!0})};a.Ha.fn={remove:function(b){for(var c=this.v(),d=[],e=\"function\"!=typeof b||a.O(b)?function(a){return a===b}:b,f=0;f<c.length;f++){var g=c[f];if(e(g)){0===d.length&&this.ya();if(c[f]!==g)throw Error(\"Array modified during remove; cannot remove item\");d.push(g);c.splice(f,1);f--}}d.length&&this.xa();return d},removeAll:function(b){if(b===n){var c=this.v(),d=c.slice(0);this.ya();c.splice(0,c.length);this.xa();return d}return b?this.remove(function(c){return 0<=\na.a.A(b,c)}):[]},destroy:function(b){var c=this.v(),d=\"function\"!=typeof b||a.O(b)?function(a){return a===b}:b;this.ya();for(var e=c.length-1;0<=e;e--){var f=c[e];d(f)&&(f._destroy=!0)}this.xa()},destroyAll:function(b){return b===n?this.destroy(function(){return!0}):b?this.destroy(function(c){return 0<=a.a.A(b,c)}):[]},indexOf:function(b){var c=this();return a.a.A(c,b)},replace:function(a,c){var d=this.indexOf(a);0<=d&&(this.ya(),this.v()[d]=c,this.xa())},sorted:function(a){var c=this().slice(0);\nreturn a?c.sort(a):c.sort()},reversed:function(){return this().slice(0).reverse()}};a.a.Ba&&a.a.setPrototypeOf(a.Ha.fn,a.ta.fn);a.a.D(\"pop push reverse shift sort splice unshift\".split(\" \"),function(b){a.Ha.fn[b]=function(){var a=this.v();this.ya();this.zc(a,b,arguments);var d=a[b].apply(a,arguments);this.xa();return d===a?this:d}});a.a.D([\"slice\"],function(b){a.Ha.fn[b]=function(){var a=this();return a[b].apply(a,arguments)}});a.Pc=function(b){return a.O(b)&&\"function\"==typeof b.remove&&\"function\"==\ntypeof b.push};a.b(\"observableArray\",a.Ha);a.b(\"isObservableArray\",a.Pc);a.Ta.trackArrayChanges=function(b,c){function d(){function c(){if(m){var d=[].concat(b.v()||[]),e;if(b.Wa(\"arrayChange\")){if(!f||1<m)f=a.a.Pb(k,d,b.Ob);e=f}k=d;f=null;m=0;e&&e.length&&b.notifySubscribers(e,\"arrayChange\")}}e?c():(e=!0,h=b.subscribe(function(){++m},null,\"spectate\"),k=[].concat(b.v()||[]),f=null,g=b.subscribe(c))}b.Ob={};c&&\"object\"==typeof c&&a.a.extend(b.Ob,c);b.Ob.sparse=!0;if(!b.zc){var e=!1,f=null,g,h,m=0,\nk,l=b.Qa,p=b.hb;b.Qa=function(a){l&&l.call(b,a);\"arrayChange\"===a&&d()};b.hb=function(a){p&&p.call(b,a);\"arrayChange\"!==a||b.Wa(\"arrayChange\")||(g&&g.s(),h&&h.s(),h=g=null,e=!1,k=n)};b.zc=function(b,c,d){function l(a,b,c){return k[k.length]={status:a,value:b,index:c}}if(e&&!m){var k=[],p=b.length,g=d.length,h=0;switch(c){case \"push\":h=p;case \"unshift\":for(c=0;c<g;c++)l(\"added\",d[c],h+c);break;case \"pop\":h=p-1;case \"shift\":p&&l(\"deleted\",b[h],h);break;case \"splice\":c=Math.min(Math.max(0,0>d[0]?p+d[0]:\nd[0]),p);for(var p=1===g?p:Math.min(c+(d[1]||0),p),g=c+g-2,h=Math.max(p,g),U=[],L=[],n=2;c<h;++c,++n)c<p&&L.push(l(\"deleted\",b[c],c)),c<g&&U.push(l(\"added\",d[n],c));a.a.Kc(L,U);break;default:return}f=k}}}};var r=a.a.Da(\"_state\");a.o=a.$=function(b,c,d){function e(){if(0<arguments.length){if(\"function\"===typeof f)f.apply(g.nb,arguments);else throw Error(\"Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.\");return this}g.ra||\na.u.cc(e);(g.ka||g.J&&e.Xa())&&e.ha();return g.X}\"object\"===typeof b?d=b:(d=d||{},b&&(d.read=b));if(\"function\"!=typeof d.read)throw Error(\"Pass a function that returns the value of the ko.computed\");var f=d.write,g={X:n,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:d.read,nb:c||d.owner,l:d.disposeWhenNodeIsRemoved||d.l||null,Sa:d.disposeWhen||d.Sa,Rb:null,I:{},V:0,Ic:null};e[r]=g;e.Nc=\"function\"===typeof f;a.a.Ba||a.a.extend(e,a.T.fn);a.T.fn.qb(e);a.a.Ab(e,C);d.pure?(g.wb=!0,g.J=!0,a.a.extend(e,da)):\nd.deferEvaluation&&a.a.extend(e,ea);a.options.deferUpdates&&a.Ta.deferred(e,!0);g.l&&(g.jc=!0,g.l.nodeType||(g.l=null));g.J||d.deferEvaluation||e.ha();g.l&&e.ja()&&a.a.K.za(g.l,g.Rb=function(){e.s()});return e};var C={equalityComparer:K,qa:function(){return this[r].V},Va:function(){var b=[];a.a.P(this[r].I,function(a,d){b[d.Ka]=d.da});return b},Vb:function(b){if(!this[r].V)return!1;var c=this.Va();return-1!==a.a.A(c,b)?!0:!!a.a.Lb(c,function(a){return a.Vb&&a.Vb(b)})},uc:function(a,c,d){if(this[r].wb&&\nc===this)throw Error(\"A 'pure' computed must not be called recursively\");this[r].I[a]=d;d.Ka=this[r].V++;d.La=c.ob()},Xa:function(){var a,c,d=this[r].I;for(a in d)if(Object.prototype.hasOwnProperty.call(d,a)&&(c=d[a],this.Ia&&c.da.Ja||c.da.Dd(c.La)))return!0},Jd:function(){this.Ia&&!this[r].rb&&this.Ia(!1)},ja:function(){var a=this[r];return a.ka||0<a.V},Rd:function(){this.Ja?this[r].ka&&(this[r].sa=!0):this.Hc()},$c:function(a){if(a.Hb){var c=a.subscribe(this.Jd,this,\"dirty\"),d=a.subscribe(this.Rd,\nthis);return{da:a,s:function(){c.s();d.s()}}}return a.subscribe(this.Hc,this)},Hc:function(){var b=this,c=b.throttleEvaluation;c&&0<=c?(clearTimeout(this[r].Ic),this[r].Ic=a.a.setTimeout(function(){b.ha(!0)},c)):b.Ia?b.Ia(!0):b.ha(!0)},ha:function(b){var c=this[r],d=c.Sa,e=!1;if(!c.rb&&!c.ra){if(c.l&&!a.a.Sb(c.l)||d&&d()){if(!c.jc){this.s();return}}else c.jc=!1;c.rb=!0;try{e=this.zd(b)}finally{c.rb=!1}return e}},zd:function(b){var c=this[r],d=!1,e=c.wb?n:!c.V,d={qd:this,mb:c.I,Qb:c.V};a.u.xc({pd:d,\nod:ba,o:this,Ya:e});c.I={};c.V=0;var f=this.yd(c,d);c.V?d=this.sb(c.X,f):(this.s(),d=!0);d&&(c.J?this.Gb():this.notifySubscribers(c.X,\"beforeChange\"),c.X=f,this.notifySubscribers(c.X,\"spectate\"),!c.J&&b&&this.notifySubscribers(c.X),this.rc&&this.rc());e&&this.notifySubscribers(c.X,\"awake\");return d},yd:function(b,c){try{var d=b.Wc;return b.nb?d.call(b.nb):d()}finally{a.u.end(),c.Qb&&!b.J&&a.a.P(c.mb,aa),b.sa=b.ka=!1}},v:function(a){var c=this[r];(c.ka&&(a||!c.V)||c.J&&this.Xa())&&this.ha();return c.X},\nub:function(b){a.T.fn.ub.call(this,b);this.nc=function(){this[r].J||(this[r].sa?this.ha():this[r].ka=!1);return this[r].X};this.Ia=function(a){this.pc(this[r].X);this[r].ka=!0;a&&(this[r].sa=!0);this.qc(this,!a)}},s:function(){var b=this[r];!b.J&&b.I&&a.a.P(b.I,function(a,b){b.s&&b.s()});b.l&&b.Rb&&a.a.K.yb(b.l,b.Rb);b.I=n;b.V=0;b.ra=!0;b.sa=!1;b.ka=!1;b.J=!1;b.l=n;b.Sa=n;b.Wc=n;this.Nc||(b.nb=n)}},da={Qa:function(b){var c=this,d=c[r];if(!d.ra&&d.J&&\"change\"==b){d.J=!1;if(d.sa||c.Xa())d.I=null,d.V=\n0,c.ha()&&c.Gb();else{var e=[];a.a.P(d.I,function(a,b){e[b.Ka]=a});a.a.D(e,function(a,b){var e=d.I[a],m=c.$c(e.da);m.Ka=b;m.La=e.La;d.I[a]=m});c.Xa()&&c.ha()&&c.Gb()}d.ra||c.notifySubscribers(d.X,\"awake\")}},hb:function(b){var c=this[r];c.ra||\"change\"!=b||this.Wa(\"change\")||(a.a.P(c.I,function(a,b){b.s&&(c.I[a]={da:b.da,Ka:b.Ka,La:b.La},b.s())}),c.J=!0,this.notifySubscribers(n,\"asleep\"))},ob:function(){var b=this[r];b.J&&(b.sa||this.Xa())&&this.ha();return a.T.fn.ob.call(this)}},ea={Qa:function(a){\"change\"!=\na&&\"beforeChange\"!=a||this.v()}};a.a.Ba&&a.a.setPrototypeOf(C,a.T.fn);var N=a.ta.Ma;C[N]=a.o;a.Oc=function(a){return\"function\"==typeof a&&a[N]===C[N]};a.Fd=function(b){return a.Oc(b)&&b[r]&&b[r].wb};a.b(\"computed\",a.o);a.b(\"dependentObservable\",a.o);a.b(\"isComputed\",a.Oc);a.b(\"isPureComputed\",a.Fd);a.b(\"computed.fn\",C);a.L(C,\"peek\",C.v);a.L(C,\"dispose\",C.s);a.L(C,\"isActive\",C.ja);a.L(C,\"getDependenciesCount\",C.qa);a.L(C,\"getDependencies\",C.Va);a.xb=function(b,c){if(\"function\"===typeof b)return a.o(b,\nc,{pure:!0});b=a.a.extend({},b);b.pure=!0;return a.o(b,c)};a.b(\"pureComputed\",a.xb);(function(){function b(a,f,g){g=g||new d;a=f(a);if(\"object\"!=typeof a||null===a||a===n||a instanceof RegExp||a instanceof Date||a instanceof String||a instanceof Number||a instanceof Boolean)return a;var h=a instanceof Array?[]:{};g.save(a,h);c(a,function(c){var d=f(a[c]);switch(typeof d){case \"boolean\":case \"number\":case \"string\":case \"function\":h[c]=d;break;case \"object\":case \"undefined\":var l=g.get(d);h[c]=l!==\nn?l:b(d,f,g)}});return h}function c(a,b){if(a instanceof Array){for(var c=0;c<a.length;c++)b(c);\"function\"==typeof a.toJSON&&b(\"toJSON\")}else for(c in a)b(c)}function d(){this.keys=[];this.values=[]}a.ad=function(c){if(0==arguments.length)throw Error(\"When calling ko.toJS, pass the object you want to convert.\");return b(c,function(b){for(var c=0;a.O(b)&&10>c;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.ad(b);return a.a.hc(b,c,d)};d.prototype={constructor:d,save:function(b,c){var d=a.a.A(this.keys,\nb);0<=d?this.values[d]=c:(this.keys.push(b),this.values.push(c))},get:function(b){b=a.a.A(this.keys,b);return 0<=b?this.values[b]:n}}})();a.b(\"toJS\",a.ad);a.b(\"toJSON\",a.toJSON);a.Wd=function(b,c,d){function e(c){var e=a.xb(b,d).extend({ma:\"always\"}),h=e.subscribe(function(a){a&&(h.s(),c(a))});e.notifySubscribers(e.v());return h}return\"function\"!==typeof Promise||c?e(c.bind(d)):new Promise(e)};a.b(\"when\",a.Wd);(function(){a.w={M:function(b){switch(a.a.R(b)){case \"option\":return!0===b.__ko__hasDomDataOptionValue__?\na.a.g.get(b,a.c.options.$b):7>=a.a.W?b.getAttributeNode(\"value\")&&b.getAttributeNode(\"value\").specified?b.value:b.text:b.value;case \"select\":return 0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex]):n;default:return b.value}},cb:function(b,c,d){switch(a.a.R(b)){case \"option\":\"string\"===typeof c?(a.a.g.set(b,a.c.options.$b,n),\"__ko__hasDomDataOptionValue__\"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=c):(a.a.g.set(b,a.c.options.$b,c),b.__ko__hasDomDataOptionValue__=!0,b.value=\"number\"===\ntypeof c?c:\"\");break;case \"select\":if(\"\"===c||null===c)c=n;for(var e=-1,f=0,g=b.options.length,h;f<g;++f)if(h=a.w.M(b.options[f]),h==c||\"\"===h&&c===n){e=f;break}if(d||0<=e||c===n&&1<b.size)b.selectedIndex=e,6===a.a.W&&a.a.setTimeout(function(){b.selectedIndex=e},0);break;default:if(null===c||c===n)c=\"\";b.value=c}}}})();a.b(\"selectExtensions\",a.w);a.b(\"selectExtensions.readValue\",a.w.M);a.b(\"selectExtensions.writeValue\",a.w.cb);a.m=function(){function b(b){b=a.a.Db(b);123===b.charCodeAt(0)&&(b=b.slice(1,\n-1));b+=\"\\n,\";var c=[],d=b.match(e),p,q=[],h=0;if(1<d.length){for(var x=0,B;B=d[x];++x){var u=B.charCodeAt(0);if(44===u){if(0>=h){c.push(p&&q.length?{key:p,value:q.join(\"\")}:{unknown:p||q.join(\"\")});p=h=0;q=[];continue}}else if(58===u){if(!h&&!p&&1===q.length){p=q.pop();continue}}else if(47===u&&1<B.length&&(47===B.charCodeAt(1)||42===B.charCodeAt(1)))continue;else 47===u&&x&&1<B.length?(u=d[x-1].match(f))&&!g[u[0]]&&(b=b.substr(b.indexOf(B)+1),d=b.match(e),x=-1,B=\"/\"):40===u||123===u||91===u?++h:\n41===u||125===u||93===u?--h:p||q.length||34!==u&&39!==u||(B=B.slice(1,-1));q.push(B)}if(0<h)throw Error(\"Unbalanced parentheses, braces, or brackets\");}return c}var c=[\"true\",\"false\",\"null\",\"undefined\"],d=/^(?:[$_a-z][$\\w]*|(.+)(\\.\\s*[$_a-z][$\\w]*|\\[.+\\]))$/i,e=RegExp(\"\\\"(?:\\\\\\\\.|[^\\\"])*\\\"|'(?:\\\\\\\\.|[^'])*'|`(?:\\\\\\\\.|[^`])*`|/\\\\*(?:[^*]|\\\\*+[^*/])*\\\\*+/|//.*\\n|/(?:\\\\\\\\.|[^/])+/w*|[^\\\\s:,/][^,\\\"'`{}()/:[\\\\]]*[^\\\\s,\\\"'`{}()/:[\\\\]]|[^\\\\s]\",\"g\"),f=/[\\])\"'A-Za-z0-9_$]+$/,g={\"in\":1,\"return\":1,\"typeof\":1},\nh={};return{Ra:[],wa:h,ac:b,vb:function(e,f){function l(b,e){var f;if(!x){var k=a.getBindingHandler(b);if(k&&k.preprocess&&!(e=k.preprocess(e,b,l)))return;if(k=h[b])f=e,0<=a.a.A(c,f)?f=!1:(k=f.match(d),f=null===k?!1:k[1]?\"Object(\"+k[1]+\")\"+k[2]:f),k=f;k&&q.push(\"'\"+(\"string\"==typeof h[b]?h[b]:b)+\"':function(_z){\"+f+\"=_z}\")}g&&(e=\"function(){return \"+e+\" }\");p.push(\"'\"+b+\"':\"+e)}f=f||{};var p=[],q=[],g=f.valueAccessors,x=f.bindingParams,B=\"string\"===typeof e?b(e):e;a.a.D(B,function(a){l(a.key||a.unknown,\na.value)});q.length&&l(\"_ko_property_writers\",\"{\"+q.join(\",\")+\" }\");return p.join(\",\")},Id:function(a,b){for(var c=0;c<a.length;c++)if(a[c].key==b)return!0;return!1},eb:function(b,c,d,e,f){if(b&&a.O(b))!a.Za(b)||f&&b.v()===e||b(e);else if((b=c.get(\"_ko_property_writers\"))&&b[d])b[d](e)}}}();a.b(\"expressionRewriting\",a.m);a.b(\"expressionRewriting.bindingRewriteValidators\",a.m.Ra);a.b(\"expressionRewriting.parseObjectLiteral\",a.m.ac);a.b(\"expressionRewriting.preProcessBindings\",a.m.vb);a.b(\"expressionRewriting._twoWayBindings\",\na.m.wa);a.b(\"jsonExpressionRewriting\",a.m);a.b(\"jsonExpressionRewriting.insertPropertyAccessorsIntoJson\",a.m.vb);(function(){function b(a){return 8==a.nodeType&&g.test(f?a.text:a.nodeValue)}function c(a){return 8==a.nodeType&&h.test(f?a.text:a.nodeValue)}function d(d,e){for(var f=d,h=1,g=[];f=f.nextSibling;){if(c(f)&&(a.a.g.set(f,k,!0),h--,0===h))return g;g.push(f);b(f)&&h++}if(!e)throw Error(\"Cannot find closing comment tag to match: \"+d.nodeValue);return null}function e(a,b){var c=d(a,b);return c?\n0<c.length?c[c.length-1].nextSibling:a.nextSibling:null}var f=w&&\"\\x3c!--test--\\x3e\"===w.createComment(\"test\").text,g=f?/^\\x3c!--\\s*ko(?:\\s+([\\s\\S]+))?\\s*--\\x3e$/:/^\\s*ko(?:\\s+([\\s\\S]+))?\\s*$/,h=f?/^\\x3c!--\\s*\\/ko\\s*--\\x3e$/:/^\\s*\\/ko\\s*$/,m={ul:!0,ol:!0},k=\"__ko_matchedEndComment__\";a.h={ea:{},childNodes:function(a){return b(a)?d(a):a.childNodes},Ea:function(c){if(b(c)){c=a.h.childNodes(c);for(var d=0,e=c.length;d<e;d++)a.removeNode(c[d])}else a.a.Tb(c)},va:function(c,d){if(b(c)){a.h.Ea(c);for(var e=\nc.nextSibling,f=0,k=d.length;f<k;f++)e.parentNode.insertBefore(d[f],e)}else a.a.va(c,d)},Vc:function(a,c){var d;b(a)?(d=a.nextSibling,a=a.parentNode):d=a.firstChild;d?c!==d&&a.insertBefore(c,d):a.appendChild(c)},Wb:function(c,d,e){e?(e=e.nextSibling,b(c)&&(c=c.parentNode),e?d!==e&&c.insertBefore(d,e):c.appendChild(d)):a.h.Vc(c,d)},firstChild:function(a){if(b(a))return!a.nextSibling||c(a.nextSibling)?null:a.nextSibling;if(a.firstChild&&c(a.firstChild))throw Error(\"Found invalid end comment, as the first child of \"+\na);return a.firstChild},nextSibling:function(d){b(d)&&(d=e(d));if(d.nextSibling&&c(d.nextSibling)){var f=d.nextSibling;if(c(f)&&!a.a.g.get(f,k))throw Error(\"Found end comment without a matching opening comment, as child of \"+d);return null}return d.nextSibling},Cd:b,Vd:function(a){return(a=(f?a.text:a.nodeValue).match(g))?a[1]:null},Sc:function(d){if(m[a.a.R(d)]){var f=d.firstChild;if(f){do if(1===f.nodeType){var k;k=f.firstChild;var h=null;if(k){do if(h)h.push(k);else if(b(k)){var g=e(k,!0);g?k=\ng:h=[k]}else c(k)&&(h=[k]);while(k=k.nextSibling)}if(k=h)for(h=f.nextSibling,g=0;g<k.length;g++)h?d.insertBefore(k[g],h):d.appendChild(k[g])}while(f=f.nextSibling)}}}}})();a.b(\"virtualElements\",a.h);a.b(\"virtualElements.allowedBindings\",a.h.ea);a.b(\"virtualElements.emptyNode\",a.h.Ea);a.b(\"virtualElements.insertAfter\",a.h.Wb);a.b(\"virtualElements.prepend\",a.h.Vc);a.b(\"virtualElements.setDomNodeChildren\",a.h.va);(function(){a.ga=function(){this.nd={}};a.a.extend(a.ga.prototype,{nodeHasBindings:function(b){switch(b.nodeType){case 1:return null!=\nb.getAttribute(\"data-bind\")||a.j.getComponentNameForNode(b);case 8:return a.h.Cd(b);default:return!1}},getBindings:function(b,c){var d=this.getBindingsString(b,c),d=d?this.parseBindingsString(d,c,b):null;return a.j.tc(d,b,c,!1)},getBindingAccessors:function(b,c){var d=this.getBindingsString(b,c),d=d?this.parseBindingsString(d,c,b,{valueAccessors:!0}):null;return a.j.tc(d,b,c,!0)},getBindingsString:function(b){switch(b.nodeType){case 1:return b.getAttribute(\"data-bind\");case 8:return a.h.Vd(b);default:return null}},\nparseBindingsString:function(b,c,d,e){try{var f=this.nd,g=b+(e&&e.valueAccessors||\"\"),h;if(!(h=f[g])){var m,k=\"with($context){with($data||{}){return{\"+a.m.vb(b,e)+\"}}}\";m=new Function(\"$context\",\"$element\",k);h=f[g]=m}return h(c,d)}catch(l){throw l.message=\"Unable to parse bindings.\\nBindings value: \"+b+\"\\nMessage: \"+l.message,l;}}});a.ga.instance=new a.ga})();a.b(\"bindingProvider\",a.ga);(function(){function b(b){var c=(b=a.a.g.get(b,z))&&b.N;c&&(b.N=null,c.Tc())}function c(c,d,e){this.node=c;this.yc=\nd;this.kb=[];this.H=!1;d.N||a.a.K.za(c,b);e&&e.N&&(e.N.kb.push(c),this.Kb=e)}function d(a){return function(){return a}}function e(a){return a()}function f(b){return a.a.Ga(a.u.G(b),function(a,c){return function(){return b()[c]}})}function g(b,c,e){return\"function\"===typeof b?f(b.bind(null,c,e)):a.a.Ga(b,d)}function h(a,b){return f(this.getBindings.bind(this,a,b))}function m(b,c){var d=a.h.firstChild(c);if(d){var e,f=a.ga.instance,l=f.preprocessNode;if(l){for(;e=d;)d=a.h.nextSibling(e),l.call(f,e);\nd=a.h.firstChild(c)}for(;e=d;)d=a.h.nextSibling(e),k(b,e)}a.i.ma(c,a.i.H)}function k(b,c){var d=b,e=1===c.nodeType;e&&a.h.Sc(c);if(e||a.ga.instance.nodeHasBindings(c))d=p(c,null,b).bindingContextForDescendants;d&&!u[a.a.R(c)]&&m(d,c)}function l(b){var c=[],d={},e=[];a.a.P(b,function ca(f){if(!d[f]){var k=a.getBindingHandler(f);k&&(k.after&&(e.push(f),a.a.D(k.after,function(c){if(b[c]){if(-1!==a.a.A(e,c))throw Error(\"Cannot combine the following bindings, because they have a cyclic dependency: \"+e.join(\", \"));\nca(c)}}),e.length--),c.push({key:f,Mc:k}));d[f]=!0}});return c}function p(b,c,d){var f=a.a.g.Ub(b,z,{}),k=f.hd;if(!c){if(k)throw Error(\"You cannot apply bindings multiple times to the same element.\");f.hd=!0}k||(f.context=d);f.Zb||(f.Zb={});var g;if(c&&\"function\"!==typeof c)g=c;else{var p=a.ga.instance,q=p.getBindingAccessors||h,m=a.$(function(){if(g=c?c(d,b):q.call(p,b,d)){if(d[t])d[t]();if(d[B])d[B]()}return g},null,{l:b});g&&m.ja()||(m=null)}var x=d,u;if(g){var J=function(){return a.a.Ga(m?m():\ng,e)},r=m?function(a){return function(){return e(m()[a])}}:function(a){return g[a]};J.get=function(a){return g[a]&&e(r(a))};J.has=function(a){return a in g};a.i.H in g&&a.i.subscribe(b,a.i.H,function(){var c=(0,g[a.i.H])();if(c){var d=a.h.childNodes(b);d.length&&c(d,a.Ec(d[0]))}});a.i.pa in g&&(x=a.i.Cb(b,d),a.i.subscribe(b,a.i.pa,function(){var c=(0,g[a.i.pa])();c&&a.h.firstChild(b)&&c(b)}));f=l(g);a.a.D(f,function(c){var d=c.Mc.init,e=c.Mc.update,f=c.key;if(8===b.nodeType&&!a.h.ea[f])throw Error(\"The binding '\"+\nf+\"' cannot be used with virtual elements\");try{\"function\"==typeof d&&a.u.G(function(){var a=d(b,r(f),J,x.$data,x);if(a&&a.controlsDescendantBindings){if(u!==n)throw Error(\"Multiple bindings (\"+u+\" and \"+f+\") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.\");u=f}}),\"function\"==typeof e&&a.$(function(){e(b,r(f),J,x.$data,x)},null,{l:b})}catch(k){throw k.message='Unable to process binding \"'+f+\": \"+g[f]+'\"\\nMessage: '+k.message,\nk;}})}f=u===n;return{shouldBindDescendants:f,bindingContextForDescendants:f&&x}}function q(b,c){return b&&b instanceof a.fa?b:new a.fa(b,n,n,c)}var t=a.a.Da(\"_subscribable\"),x=a.a.Da(\"_ancestorBindingInfo\"),B=a.a.Da(\"_dataDependency\");a.c={};var u={script:!0,textarea:!0,template:!0};a.getBindingHandler=function(b){return a.c[b]};var J={};a.fa=function(b,c,d,e,f){function k(){var b=p?h():h,f=a.a.f(b);c?(a.a.extend(l,c),x in c&&(l[x]=c[x])):(l.$parents=[],l.$root=f,l.ko=a);l[t]=q;g?f=l.$data:(l.$rawData=\nb,l.$data=f);d&&(l[d]=f);e&&e(l,c,f);if(c&&c[t]&&!a.S.o().Vb(c[t]))c[t]();m&&(l[B]=m);return l.$data}var l=this,g=b===J,h=g?n:b,p=\"function\"==typeof h&&!a.O(h),q,m=f&&f.dataDependency;f&&f.exportDependencies?k():(q=a.xb(k),q.v(),q.ja()?q.equalityComparer=null:l[t]=n)};a.fa.prototype.createChildContext=function(b,c,d,e){!e&&c&&\"object\"==typeof c&&(e=c,c=e.as,d=e.extend);if(c&&e&&e.noChildContext){var f=\"function\"==typeof b&&!a.O(b);return new a.fa(J,this,null,function(a){d&&d(a);a[c]=f?b():b},e)}return new a.fa(b,\nthis,c,function(a,b){a.$parentContext=b;a.$parent=b.$data;a.$parents=(b.$parents||[]).slice(0);a.$parents.unshift(a.$parent);d&&d(a)},e)};a.fa.prototype.extend=function(b,c){return new a.fa(J,this,null,function(c){a.a.extend(c,\"function\"==typeof b?b(c):b)},c)};var z=a.a.g.Z();c.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)};c.prototype.sd=function(b){a.a.Pa(this.kb,b);!this.kb.length&&this.H&&this.Cc()};c.prototype.Cc=function(){this.H=!0;this.yc.N&&!this.kb.length&&(this.yc.N=\nnull,a.a.K.yb(this.node,b),a.i.ma(this.node,a.i.pa),this.Tc())};a.i={H:\"childrenComplete\",pa:\"descendantsComplete\",subscribe:function(b,c,d,e,f){var k=a.a.g.Ub(b,z,{});k.Fa||(k.Fa=new a.T);f&&f.notifyImmediately&&k.Zb[c]&&a.u.G(d,e,[b]);return k.Fa.subscribe(d,e,c)},ma:function(b,c){var d=a.a.g.get(b,z);if(d&&(d.Zb[c]=!0,d.Fa&&d.Fa.notifySubscribers(b,c),c==a.i.H))if(d.N)d.N.Cc();else if(d.N===n&&d.Fa&&d.Fa.Wa(a.i.pa))throw Error(\"descendantsComplete event not supported for bindings on this node\");\n},Cb:function(b,d){var e=a.a.g.Ub(b,z,{});e.N||(e.N=new c(b,e,d[x]));return d[x]==e?d:d.extend(function(a){a[x]=e})}};a.Td=function(b){return(b=a.a.g.get(b,z))&&b.context};a.ib=function(b,c,d){1===b.nodeType&&a.h.Sc(b);return p(b,c,q(d))};a.ld=function(b,c,d){d=q(d);return a.ib(b,g(c,d,b),d)};a.Oa=function(a,b){1!==b.nodeType&&8!==b.nodeType||m(q(a),b)};a.vc=function(a,b,c){!v&&A.jQuery&&(v=A.jQuery);if(2>arguments.length){if(b=w.body,!b)throw Error(\"ko.applyBindings: could not find document.body; has the document been loaded?\");\n}else if(!b||1!==b.nodeType&&8!==b.nodeType)throw Error(\"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node\");k(q(a,c),b)};a.Dc=function(b){return!b||1!==b.nodeType&&8!==b.nodeType?n:a.Td(b)};a.Ec=function(b){return(b=a.Dc(b))?b.$data:n};a.b(\"bindingHandlers\",a.c);a.b(\"bindingEvent\",a.i);a.b(\"bindingEvent.subscribe\",a.i.subscribe);a.b(\"bindingEvent.startPossiblyAsyncContentBinding\",a.i.Cb);a.b(\"applyBindings\",a.vc);a.b(\"applyBindingsToDescendants\",a.Oa);\na.b(\"applyBindingAccessorsToNode\",a.ib);a.b(\"applyBindingsToNode\",a.ld);a.b(\"contextFor\",a.Dc);a.b(\"dataFor\",a.Ec)})();(function(b){function c(c,e){var k=Object.prototype.hasOwnProperty.call(f,c)?f[c]:b,l;k?k.subscribe(e):(k=f[c]=new a.T,k.subscribe(e),d(c,function(b,d){var e=!(!d||!d.synchronous);g[c]={definition:b,Gd:e};delete f[c];l||e?k.notifySubscribers(b):a.na.zb(function(){k.notifySubscribers(b)})}),l=!0)}function d(a,b){e(\"getConfig\",[a],function(c){c?e(\"loadComponent\",[a,c],function(a){b(a,\nc)}):b(null,null)})}function e(c,d,f,l){l||(l=a.j.loaders.slice(0));var g=l.shift();if(g){var q=g[c];if(q){var t=!1;if(q.apply(g,d.concat(function(a){t?f(null):null!==a?f(a):e(c,d,f,l)}))!==b&&(t=!0,!g.suppressLoaderExceptions))throw Error(\"Component loaders must supply values by invoking the callback, not by returning values synchronously.\");}else e(c,d,f,l)}else f(null)}var f={},g={};a.j={get:function(d,e){var f=Object.prototype.hasOwnProperty.call(g,d)?g[d]:b;f?f.Gd?a.u.G(function(){e(f.definition)}):\na.na.zb(function(){e(f.definition)}):c(d,e)},Bc:function(a){delete g[a]},oc:e};a.j.loaders=[];a.b(\"components\",a.j);a.b(\"components.get\",a.j.get);a.b(\"components.clearCachedDefinition\",a.j.Bc)})();(function(){function b(b,c,d,e){function g(){0===--B&&e(h)}var h={},B=2,u=d.template;d=d.viewModel;u?f(c,u,function(c){a.j.oc(\"loadTemplate\",[b,c],function(a){h.template=a;g()})}):g();d?f(c,d,function(c){a.j.oc(\"loadViewModel\",[b,c],function(a){h[m]=a;g()})}):g()}function c(a,b,d){if(\"function\"===typeof b)d(function(a){return new b(a)});\nelse if(\"function\"===typeof b[m])d(b[m]);else if(\"instance\"in b){var e=b.instance;d(function(){return e})}else\"viewModel\"in b?c(a,b.viewModel,d):a(\"Unknown viewModel value: \"+b)}function d(b){switch(a.a.R(b)){case \"script\":return a.a.ua(b.text);case \"textarea\":return a.a.ua(b.value);case \"template\":if(e(b.content))return a.a.Ca(b.content.childNodes)}return a.a.Ca(b.childNodes)}function e(a){return A.DocumentFragment?a instanceof DocumentFragment:a&&11===a.nodeType}function f(a,b,c){\"string\"===typeof b.require?\nT||A.require?(T||A.require)([b.require],function(a){a&&\"object\"===typeof a&&a.Xd&&a[\"default\"]&&(a=a[\"default\"]);c(a)}):a(\"Uses require, but no AMD loader is present\"):c(b)}function g(a){return function(b){throw Error(\"Component '\"+a+\"': \"+b);}}var h={};a.j.register=function(b,c){if(!c)throw Error(\"Invalid configuration for \"+b);if(a.j.tb(b))throw Error(\"Component \"+b+\" is already registered\");h[b]=c};a.j.tb=function(a){return Object.prototype.hasOwnProperty.call(h,a)};a.j.unregister=function(b){delete h[b];\na.j.Bc(b)};a.j.Fc={getConfig:function(b,c){c(a.j.tb(b)?h[b]:null)},loadComponent:function(a,c,d){var e=g(a);f(e,c,function(c){b(a,e,c,d)})},loadTemplate:function(b,c,f){b=g(b);if(\"string\"===typeof c)f(a.a.ua(c));else if(c instanceof Array)f(c);else if(e(c))f(a.a.la(c.childNodes));else if(c.element)if(c=c.element,A.HTMLElement?c instanceof HTMLElement:c&&c.tagName&&1===c.nodeType)f(d(c));else if(\"string\"===typeof c){var h=w.getElementById(c);h?f(d(h)):b(\"Cannot find element with ID \"+c)}else b(\"Unknown element type: \"+\nc);else b(\"Unknown template value: \"+c)},loadViewModel:function(a,b,d){c(g(a),b,d)}};var m=\"createViewModel\";a.b(\"components.register\",a.j.register);a.b(\"components.isRegistered\",a.j.tb);a.b(\"components.unregister\",a.j.unregister);a.b(\"components.defaultLoader\",a.j.Fc);a.j.loaders.push(a.j.Fc);a.j.dd=h})();(function(){function b(b,e){var f=b.getAttribute(\"params\");if(f){var f=c.parseBindingsString(f,e,b,{valueAccessors:!0,bindingParams:!0}),f=a.a.Ga(f,function(c){return a.o(c,null,{l:b})}),g=a.a.Ga(f,\nfunction(c){var e=c.v();return c.ja()?a.o({read:function(){return a.a.f(c())},write:a.Za(e)&&function(a){c()(a)},l:b}):e});Object.prototype.hasOwnProperty.call(g,\"$raw\")||(g.$raw=f);return g}return{$raw:{}}}a.j.getComponentNameForNode=function(b){var c=a.a.R(b);if(a.j.tb(c)&&(-1!=c.indexOf(\"-\")||\"[object HTMLUnknownElement]\"==\"\"+b||8>=a.a.W&&b.tagName===c))return c};a.j.tc=function(c,e,f,g){if(1===e.nodeType){var h=a.j.getComponentNameForNode(e);if(h){c=c||{};if(c.component)throw Error('Cannot use the \"component\" binding on a custom element matching a component');\nvar m={name:h,params:b(e,f)};c.component=g?function(){return m}:m}}return c};var c=new a.ga;9>a.a.W&&(a.j.register=function(a){return function(b){return a.apply(this,arguments)}}(a.j.register),w.createDocumentFragment=function(b){return function(){var c=b(),f=a.j.dd,g;for(g in f);return c}}(w.createDocumentFragment))})();(function(){function b(b,c,d){c=c.template;if(!c)throw Error(\"Component '\"+b+\"' has no template\");b=a.a.Ca(c);a.h.va(d,b)}function c(a,b,c){var d=a.createViewModel;return d?d.call(a,\nb,c):b}var d=0;a.c.component={init:function(e,f,g,h,m){function k(){var a=l&&l.dispose;\"function\"===typeof a&&a.call(l);q&&q.s();p=l=q=null}var l,p,q,t=a.a.la(a.h.childNodes(e));a.h.Ea(e);a.a.K.za(e,k);a.o(function(){var g=a.a.f(f()),h,u;\"string\"===typeof g?h=g:(h=a.a.f(g.name),u=a.a.f(g.params));if(!h)throw Error(\"No component name specified\");var n=a.i.Cb(e,m),z=p=++d;a.j.get(h,function(d){if(p===z){k();if(!d)throw Error(\"Unknown component '\"+h+\"'\");b(h,d,e);var f=c(d,u,{element:e,templateNodes:t});\nd=n.createChildContext(f,{extend:function(a){a.$component=f;a.$componentTemplateNodes=t}});f&&f.koDescendantsComplete&&(q=a.i.subscribe(e,a.i.pa,f.koDescendantsComplete,f));l=f;a.Oa(d,e)}})},null,{l:e});return{controlsDescendantBindings:!0}}};a.h.ea.component=!0})();var V={\"class\":\"className\",\"for\":\"htmlFor\"};a.c.attr={update:function(b,c){var d=a.a.f(c())||{};a.a.P(d,function(c,d){d=a.a.f(d);var g=c.indexOf(\":\"),g=\"lookupNamespaceURI\"in b&&0<g&&b.lookupNamespaceURI(c.substr(0,g)),h=!1===d||null===\nd||d===n;h?g?b.removeAttributeNS(g,c):b.removeAttribute(c):d=d.toString();8>=a.a.W&&c in V?(c=V[c],h?b.removeAttribute(c):b[c]=d):h||(g?b.setAttributeNS(g,c,d):b.setAttribute(c,d));\"name\"===c&&a.a.Yc(b,h?\"\":d)})}};(function(){a.c.checked={after:[\"value\",\"attr\"],init:function(b,c,d){function e(){var e=b.checked,f=g();if(!a.S.Ya()&&(e||!m&&!a.S.qa())){var k=a.u.G(c);if(l){var q=p?k.v():k,z=t;t=f;z!==f?e&&(a.a.Na(q,f,!0),a.a.Na(q,z,!1)):a.a.Na(q,f,e);p&&a.Za(k)&&k(q)}else h&&(f===n?f=e:e||(f=n)),a.m.eb(k,\nd,\"checked\",f,!0)}}function f(){var d=a.a.f(c()),e=g();l?(b.checked=0<=a.a.A(d,e),t=e):b.checked=h&&e===n?!!d:g()===d}var g=a.xb(function(){if(d.has(\"checkedValue\"))return a.a.f(d.get(\"checkedValue\"));if(q)return d.has(\"value\")?a.a.f(d.get(\"value\")):b.value}),h=\"checkbox\"==b.type,m=\"radio\"==b.type;if(h||m){var k=c(),l=h&&a.a.f(k)instanceof Array,p=!(l&&k.push&&k.splice),q=m||l,t=l?g():n;m&&!b.name&&a.c.uniqueName.init(b,function(){return!0});a.o(e,null,{l:b});a.a.B(b,\"click\",e);a.o(f,null,{l:b});\nk=n}}};a.m.wa.checked=!0;a.c.checkedValue={update:function(b,c){b.value=a.a.f(c())}}})();a.c[\"class\"]={update:function(b,c){var d=a.a.Db(a.a.f(c()));a.a.Eb(b,b.__ko__cssValue,!1);b.__ko__cssValue=d;a.a.Eb(b,d,!0)}};a.c.css={update:function(b,c){var d=a.a.f(c());null!==d&&\"object\"==typeof d?a.a.P(d,function(c,d){d=a.a.f(d);a.a.Eb(b,c,d)}):a.c[\"class\"].update(b,c)}};a.c.enable={update:function(b,c){var d=a.a.f(c());d&&b.disabled?b.removeAttribute(\"disabled\"):d||b.disabled||(b.disabled=!0)}};a.c.disable=\n{update:function(b,c){a.c.enable.update(b,function(){return!a.a.f(c())})}};a.c.event={init:function(b,c,d,e,f){var g=c()||{};a.a.P(g,function(g){\"string\"==typeof g&&a.a.B(b,g,function(b){var k,l=c()[g];if(l){try{var p=a.a.la(arguments);e=f.$data;p.unshift(e);k=l.apply(e,p)}finally{!0!==k&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===d.get(g+\"Bubble\")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.c.foreach={Rc:function(b){return function(){var c=b(),d=a.a.bc(c);\nif(!d||\"number\"==typeof d.length)return{foreach:c,templateEngine:a.ba.Ma};a.a.f(c);return{foreach:d.data,as:d.as,noChildContext:d.noChildContext,includeDestroyed:d.includeDestroyed,afterAdd:d.afterAdd,beforeRemove:d.beforeRemove,afterRender:d.afterRender,beforeMove:d.beforeMove,afterMove:d.afterMove,templateEngine:a.ba.Ma}}},init:function(b,c){return a.c.template.init(b,a.c.foreach.Rc(c))},update:function(b,c,d,e,f){return a.c.template.update(b,a.c.foreach.Rc(c),d,e,f)}};a.m.Ra.foreach=!1;a.h.ea.foreach=\n!0;a.c.hasfocus={init:function(b,c,d){function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if(\"activeElement\"in f){var g;try{g=f.activeElement}catch(l){g=f.body}e=g===b}f=c();a.m.eb(f,d,\"hasfocus\",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var f=e.bind(null,!0),g=e.bind(null,!1);a.a.B(b,\"focus\",f);a.a.B(b,\"focusin\",f);a.a.B(b,\"blur\",g);a.a.B(b,\"focusout\",g);b.__ko_hasfocusLastValue=!1},update:function(b,c){var d=!!a.a.f(c());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===\nd||(d?b.focus():b.blur(),!d&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),a.u.G(a.a.Fb,null,[b,d?\"focusin\":\"focusout\"]))}};a.m.wa.hasfocus=!0;a.c.hasFocus=a.c.hasfocus;a.m.wa.hasFocus=\"hasfocus\";a.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.fc(b,c())}};(function(){function b(b,d,e){a.c[b]={init:function(b,c,h,m,k){var l,p,q={},t,x,n;if(d){m=h.get(\"as\");var u=h.get(\"noChildContext\");n=!(m&&u);q={as:m,noChildContext:u,exportDependencies:n}}x=(t=\n\"render\"==h.get(\"completeOn\"))||h.has(a.i.pa);a.o(function(){var h=a.a.f(c()),m=!e!==!h,u=!p,r;if(n||m!==l){x&&(k=a.i.Cb(b,k));if(m){if(!d||n)q.dataDependency=a.S.o();r=d?k.createChildContext(\"function\"==typeof h?h:c,q):a.S.qa()?k.extend(null,q):k}u&&a.S.qa()&&(p=a.a.Ca(a.h.childNodes(b),!0));m?(u||a.h.va(b,a.a.Ca(p)),a.Oa(r,b)):(a.h.Ea(b),t||a.i.ma(b,a.i.H));l=m}},null,{l:b});return{controlsDescendantBindings:!0}}};a.m.Ra[b]=!1;a.h.ea[b]=!0}b(\"if\");b(\"ifnot\",!1,!0);b(\"with\",!0)})();a.c.let={init:function(b,\nc,d,e,f){c=f.extend(c);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.let=!0;var Q={};a.c.options={init:function(b){if(\"select\"!==a.a.R(b))throw Error(\"options binding applies only to SELECT elements\");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:function(b,c,d){function e(){return a.a.jb(b.options,function(a){return a.selected})}function f(a,b,c){var d=typeof b;return\"function\"==d?b(a):\"string\"==d?a[b]:c}function g(c,d){if(x&&l)a.i.ma(b,a.i.H);else if(t.length){var e=\n0<=a.a.A(t,a.w.M(d[0]));a.a.Zc(d[0],e);x&&!e&&a.u.G(a.a.Fb,null,[b,\"change\"])}}var h=b.multiple,m=0!=b.length&&h?b.scrollTop:null,k=a.a.f(c()),l=d.get(\"valueAllowUnset\")&&d.has(\"value\"),p=d.get(\"optionsIncludeDestroyed\");c={};var q,t=[];l||(h?t=a.a.Mb(e(),a.w.M):0<=b.selectedIndex&&t.push(a.w.M(b.options[b.selectedIndex])));k&&(\"undefined\"==typeof k.length&&(k=[k]),q=a.a.jb(k,function(b){return p||b===n||null===b||!a.a.f(b._destroy)}),d.has(\"optionsCaption\")&&(k=a.a.f(d.get(\"optionsCaption\")),null!==\nk&&k!==n&&q.unshift(Q)));var x=!1;c.beforeRemove=function(a){b.removeChild(a)};k=g;d.has(\"optionsAfterRender\")&&\"function\"==typeof d.get(\"optionsAfterRender\")&&(k=function(b,c){g(0,c);a.u.G(d.get(\"optionsAfterRender\"),null,[c[0],b!==Q?b:n])});a.a.ec(b,q,function(c,e,g){g.length&&(t=!l&&g[0].selected?[a.w.M(g[0])]:[],x=!0);e=b.ownerDocument.createElement(\"option\");c===Q?(a.a.Bb(e,d.get(\"optionsCaption\")),a.w.cb(e,n)):(g=f(c,d.get(\"optionsValue\"),c),a.w.cb(e,a.a.f(g)),c=f(c,d.get(\"optionsText\"),g),\na.a.Bb(e,c));return[e]},c,k);if(!l){var B;h?B=t.length&&e().length<t.length:B=t.length&&0<=b.selectedIndex?a.w.M(b.options[b.selectedIndex])!==t[0]:t.length||0<=b.selectedIndex;B&&a.u.G(a.a.Fb,null,[b,\"change\"])}(l||a.S.Ya())&&a.i.ma(b,a.i.H);a.a.wd(b);m&&20<Math.abs(m-b.scrollTop)&&(b.scrollTop=m)}};a.c.options.$b=a.a.g.Z();a.c.selectedOptions={init:function(b,c,d){function e(){var e=c(),f=[];a.a.D(b.getElementsByTagName(\"option\"),function(b){b.selected&&f.push(a.w.M(b))});a.m.eb(e,d,\"selectedOptions\",\nf)}function f(){var d=a.a.f(c()),e=b.scrollTop;d&&\"number\"==typeof d.length&&a.a.D(b.getElementsByTagName(\"option\"),function(b){var c=0<=a.a.A(d,a.w.M(b));b.selected!=c&&a.a.Zc(b,c)});b.scrollTop=e}if(\"select\"!=a.a.R(b))throw Error(\"selectedOptions binding applies only to SELECT elements\");var g;a.i.subscribe(b,a.i.H,function(){g?e():(a.a.B(b,\"change\",e),g=a.o(f,null,{l:b}))},null,{notifyImmediately:!0})},update:function(){}};a.m.wa.selectedOptions=!0;a.c.style={update:function(b,c){var d=a.a.f(c()||\n{});a.a.P(d,function(c,d){d=a.a.f(d);if(null===d||d===n||!1===d)d=\"\";if(v)v(b).css(c,d);else if(/^--/.test(c))b.style.setProperty(c,d);else{c=c.replace(/-(\\w)/g,function(a,b){return b.toUpperCase()});var g=b.style[c];b.style[c]=d;d===g||b.style[c]!=g||isNaN(d)||(b.style[c]=d+\"px\")}})}};a.c.submit={init:function(b,c,d,e,f){if(\"function\"!=typeof c())throw Error(\"The value for a submit binding must be a function\");a.a.B(b,\"submit\",function(a){var d,e=c();try{d=e.call(f.$data,b)}finally{!0!==d&&(a.preventDefault?\na.preventDefault():a.returnValue=!1)}})}};a.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(b,c){a.a.Bb(b,c())}};a.h.ea.text=!0;(function(){if(A&&A.navigator){var b=function(a){if(a)return parseFloat(a[1])},c=A.navigator.userAgent,d,e,f,g,h;(d=A.opera&&A.opera.version&&parseInt(A.opera.version()))||(h=b(c.match(/Edge\\/([^ ]+)$/)))||b(c.match(/Chrome\\/([^ ]+)/))||(e=b(c.match(/Version\\/([^ ]+) Safari/)))||(f=b(c.match(/Firefox\\/([^ ]+)/)))||(g=a.a.W||b(c.match(/MSIE ([^ ]+)/)))||\n(g=b(c.match(/rv:([^ )]+)/)))}if(8<=g&&10>g)var m=a.a.g.Z(),k=a.a.g.Z(),l=function(b){var c=this.activeElement;(c=c&&a.a.g.get(c,k))&&c(b)},p=function(b,c){var d=b.ownerDocument;a.a.g.get(d,m)||(a.a.g.set(d,m,!0),a.a.B(d,\"selectionchange\",l));a.a.g.set(b,k,c)};a.c.textInput={init:function(b,c,k){function l(c,d){a.a.B(b,c,d)}function m(){var d=a.a.f(c());if(null===d||d===n)d=\"\";L!==n&&d===L?a.a.setTimeout(m,4):b.value!==d&&(y=!0,b.value=d,y=!1,v=b.value)}function r(){w||(L=b.value,w=a.a.setTimeout(z,\n4))}function z(){clearTimeout(w);L=w=n;var d=b.value;v!==d&&(v=d,a.m.eb(c(),k,\"textInput\",d))}var v=b.value,w,L,A=9==a.a.W?r:z,y=!1;g&&l(\"keypress\",z);11>g&&l(\"propertychange\",function(a){y||\"value\"!==a.propertyName||A(a)});8==g&&(l(\"keyup\",z),l(\"keydown\",z));p&&(p(b,A),l(\"dragend\",r));(!g||9<=g)&&l(\"input\",A);5>e&&\"textarea\"===a.a.R(b)?(l(\"keydown\",r),l(\"paste\",r),l(\"cut\",r)):11>d?l(\"keydown\",r):4>f?(l(\"DOMAutoComplete\",z),l(\"dragdrop\",z),l(\"drop\",z)):h&&\"number\"===b.type&&l(\"keydown\",r);l(\"change\",\nz);l(\"blur\",z);a.o(m,null,{l:b})}};a.m.wa.textInput=!0;a.c.textinput={preprocess:function(a,b,c){c(\"textInput\",a)}}})();a.c.uniqueName={init:function(b,c){if(c()){var d=\"ko_unique_\"+ ++a.c.uniqueName.rd;a.a.Yc(b,d)}}};a.c.uniqueName.rd=0;a.c.using={init:function(b,c,d,e,f){var g;d.has(\"as\")&&(g={as:d.get(\"as\"),noChildContext:d.get(\"noChildContext\")});c=f.createChildContext(c,g);a.Oa(c,b);return{controlsDescendantBindings:!0}}};a.h.ea.using=!0;a.c.value={init:function(b,c,d){var e=a.a.R(b),f=\"input\"==\ne;if(!f||\"checkbox\"!=b.type&&\"radio\"!=b.type){var g=[],h=d.get(\"valueUpdate\"),m=!1,k=null;h&&(\"string\"==typeof h?g=[h]:g=a.a.wc(h),a.a.Pa(g,\"change\"));var l=function(){k=null;m=!1;var e=c(),f=a.w.M(b);a.m.eb(e,d,\"value\",f)};!a.a.W||!f||\"text\"!=b.type||\"off\"==b.autocomplete||b.form&&\"off\"==b.form.autocomplete||-1!=a.a.A(g,\"propertychange\")||(a.a.B(b,\"propertychange\",function(){m=!0}),a.a.B(b,\"focus\",function(){m=!1}),a.a.B(b,\"blur\",function(){m&&l()}));a.a.D(g,function(c){var d=l;a.a.Ud(c,\"after\")&&\n(d=function(){k=a.w.M(b);a.a.setTimeout(l,0)},c=c.substring(5));a.a.B(b,c,d)});var p;p=f&&\"file\"==b.type?function(){var d=a.a.f(c());null===d||d===n||\"\"===d?b.value=\"\":a.u.G(l)}:function(){var f=a.a.f(c()),g=a.w.M(b);if(null!==k&&f===k)a.a.setTimeout(p,0);else if(f!==g||g===n)\"select\"===e?(g=d.get(\"valueAllowUnset\"),a.w.cb(b,f,g),g||f===a.w.M(b)||a.u.G(l)):a.w.cb(b,f)};if(\"select\"===e){var q;a.i.subscribe(b,a.i.H,function(){q?d.get(\"valueAllowUnset\")?p():l():(a.a.B(b,\"change\",l),q=a.o(p,null,{l:b}))},\nnull,{notifyImmediately:!0})}else a.a.B(b,\"change\",l),a.o(p,null,{l:b})}else a.ib(b,{checkedValue:c})},update:function(){}};a.m.wa.value=!0;a.c.visible={update:function(b,c){var d=a.a.f(c()),e=\"none\"!=b.style.display;d&&!e?b.style.display=\"\":!d&&e&&(b.style.display=\"none\")}};a.c.hidden={update:function(b,c){a.c.visible.update(b,function(){return!a.a.f(c())})}};(function(b){a.c[b]={init:function(c,d,e,f,g){return a.c.event.init.call(this,c,function(){var a={};a[b]=d();return a},e,f,g)}}})(\"click\");\na.ca=function(){};a.ca.prototype.renderTemplateSource=function(){throw Error(\"Override renderTemplateSource\");};a.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error(\"Override createJavaScriptEvaluatorBlock\");};a.ca.prototype.makeTemplateSource=function(b,c){if(\"string\"==typeof b){c=c||w;var d=c.getElementById(b);if(!d)throw Error(\"Cannot find template with ID \"+b);return new a.C.F(d)}if(1==b.nodeType||8==b.nodeType)return new a.C.ia(b);throw Error(\"Unknown template type: \"+b);};a.ca.prototype.renderTemplate=\nfunction(a,c,d,e){a=this.makeTemplateSource(a,e);return this.renderTemplateSource(a,c,d,e)};a.ca.prototype.isTemplateRewritten=function(a,c){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(a,c).data(\"isRewritten\")};a.ca.prototype.rewriteTemplate=function(a,c,d){a=this.makeTemplateSource(a,d);c=c(a.text());a.text(c);a.data(\"isRewritten\",!0)};a.b(\"templateEngine\",a.ca);a.kc=function(){function b(b,c,d,h){b=a.m.ac(b);for(var m=a.m.Ra,k=0;k<b.length;k++){var l=b[k].key;if(Object.prototype.hasOwnProperty.call(m,\nl)){var p=m[l];if(\"function\"===typeof p){if(l=p(b[k].value))throw Error(l);}else if(!p)throw Error(\"This template engine does not support the '\"+l+\"' binding within its templates\");}}d=\"ko.__tr_ambtns(function($context,$element){return(function(){return{ \"+a.m.vb(b,{valueAccessors:!0})+\" } })()},'\"+d.toLowerCase()+\"')\";return h.createJavaScriptEvaluatorBlock(d)+c}var c=/(<([a-z]+\\d*)(?:\\s+(?!data-bind\\s*=\\s*)[a-z0-9\\-]+(?:=(?:\\\"[^\\\"]*\\\"|\\'[^\\']*\\'|[^>]*))?)*\\s+)data-bind\\s*=\\s*([\"'])([\\s\\S]*?)\\3/gi,\nd=/\\x3c!--\\s*ko\\b\\s*([\\s\\S]*?)\\s*--\\x3e/g;return{xd:function(b,c,d){c.isTemplateRewritten(b,d)||c.rewriteTemplate(b,function(b){return a.kc.Ld(b,c)},d)},Ld:function(a,f){return a.replace(c,function(a,c,d,e,l){return b(l,c,d,f)}).replace(d,function(a,c){return b(c,\"\\x3c!-- ko --\\x3e\",\"#comment\",f)})},md:function(b,c){return a.aa.Xb(function(d,h){var m=d.nextSibling;m&&m.nodeName.toLowerCase()===c&&a.ib(m,b,h)})}}}();a.b(\"__tr_ambtns\",a.kc.md);(function(){a.C={};a.C.F=function(b){if(this.F=b){var c=\na.a.R(b);this.ab=\"script\"===c?1:\"textarea\"===c?2:\"template\"==c&&b.content&&11===b.content.nodeType?3:4}};a.C.F.prototype.text=function(){var b=1===this.ab?\"text\":2===this.ab?\"value\":\"innerHTML\";if(0==arguments.length)return this.F[b];var c=arguments[0];\"innerHTML\"===b?a.a.fc(this.F,c):this.F[b]=c};var b=a.a.g.Z()+\"_\";a.C.F.prototype.data=function(c){if(1===arguments.length)return a.a.g.get(this.F,b+c);a.a.g.set(this.F,b+c,arguments[1])};var c=a.a.g.Z();a.C.F.prototype.nodes=function(){var b=this.F;\nif(0==arguments.length){var e=a.a.g.get(b,c)||{},f=e.lb||(3===this.ab?b.content:4===this.ab?b:n);if(!f||e.jd){var g=this.text();g&&g!==e.bb&&(f=a.a.Md(g,b.ownerDocument),a.a.g.set(b,c,{lb:f,bb:g,jd:!0}))}return f}e=arguments[0];this.ab!==n&&this.text(\"\");a.a.g.set(b,c,{lb:e})};a.C.ia=function(a){this.F=a};a.C.ia.prototype=new a.C.F;a.C.ia.prototype.constructor=a.C.ia;a.C.ia.prototype.text=function(){if(0==arguments.length){var b=a.a.g.get(this.F,c)||{};b.bb===n&&b.lb&&(b.bb=b.lb.innerHTML);return b.bb}a.a.g.set(this.F,\nc,{bb:arguments[0]})};a.b(\"templateSources\",a.C);a.b(\"templateSources.domElement\",a.C.F);a.b(\"templateSources.anonymousTemplate\",a.C.ia)})();(function(){function b(b,c,d){var e;for(c=a.h.nextSibling(c);b&&(e=b)!==c;)b=a.h.nextSibling(e),d(e,b)}function c(c,d){if(c.length){var e=c[0],f=c[c.length-1],g=e.parentNode,h=a.ga.instance,m=h.preprocessNode;if(m){b(e,f,function(a,b){var c=a.previousSibling,d=m.call(h,a);d&&(a===e&&(e=d[0]||b),a===f&&(f=d[d.length-1]||c))});c.length=0;if(!e)return;e===f?c.push(e):\n(c.push(e,f),a.a.Ua(c,g))}b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.vc(d,b)});b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.aa.cd(b,[d])});a.a.Ua(c,g)}}function d(a){return a.nodeType?a:0<a.length?a[0]:null}function e(b,e,f,h,m){m=m||{};var n=(b&&d(b)||f||{}).ownerDocument,B=m.templateEngine||g;a.kc.xd(f,B,n);f=B.renderTemplate(f,h,m,n);if(\"number\"!=typeof f.length||0<f.length&&\"number\"!=typeof f[0].nodeType)throw Error(\"Template engine must return an array of DOM nodes\");n=!1;switch(e){case \"replaceChildren\":a.h.va(b,\nf);n=!0;break;case \"replaceNode\":a.a.Xc(b,f);n=!0;break;case \"ignoreTargetNode\":break;default:throw Error(\"Unknown renderMode: \"+e);}n&&(c(f,h),m.afterRender&&a.u.G(m.afterRender,null,[f,h[m.as||\"$data\"]]),\"replaceChildren\"==e&&a.i.ma(b,a.i.H));return f}function f(b,c,d){return a.O(b)?b():\"function\"===typeof b?b(c,d):b}var g;a.gc=function(b){if(b!=n&&!(b instanceof a.ca))throw Error(\"templateEngine must inherit from ko.templateEngine\");g=b};a.dc=function(b,c,h,m,t){h=h||{};if((h.templateEngine||g)==\nn)throw Error(\"Set a template engine before calling renderTemplate\");t=t||\"replaceChildren\";if(m){var x=d(m);return a.$(function(){var g=c&&c instanceof a.fa?c:new a.fa(c,null,null,null,{exportDependencies:!0}),n=f(b,g.$data,g),g=e(m,t,n,g,h);\"replaceNode\"==t&&(m=g,x=d(m))},null,{Sa:function(){return!x||!a.a.Sb(x)},l:x&&\"replaceNode\"==t?x.parentNode:x})}return a.aa.Xb(function(d){a.dc(b,c,h,d,\"replaceNode\")})};a.Qd=function(b,d,g,h,m){function x(b,c){a.u.G(a.a.ec,null,[h,b,u,g,r,c]);a.i.ma(h,a.i.H)}\nfunction r(a,b){c(b,v);g.afterRender&&g.afterRender(b,a);v=null}function u(a,c){v=m.createChildContext(a,{as:z,noChildContext:g.noChildContext,extend:function(a){a.$index=c;z&&(a[z+\"Index\"]=c)}});var d=f(b,a,v);return e(h,\"ignoreTargetNode\",d,v,g)}var v,z=g.as,w=!1===g.includeDestroyed||a.options.foreachHidesDestroyed&&!g.includeDestroyed;if(w||g.beforeRemove||!a.Pc(d))return a.$(function(){var b=a.a.f(d)||[];\"undefined\"==typeof b.length&&(b=[b]);w&&(b=a.a.jb(b,function(b){return b===n||null===b||\n!a.a.f(b._destroy)}));x(b)},null,{l:h});x(d.v());var A=d.subscribe(function(a){x(d(),a)},null,\"arrayChange\");A.l(h);return A};var h=a.a.g.Z(),m=a.a.g.Z();a.c.template={init:function(b,c){var d=a.a.f(c());if(\"string\"==typeof d||\"name\"in d)a.h.Ea(b);else if(\"nodes\"in d){d=d.nodes||[];if(a.O(d))throw Error('The \"nodes\" option must be a plain, non-observable array.');var e=d[0]&&d[0].parentNode;e&&a.a.g.get(e,m)||(e=a.a.Yb(d),a.a.g.set(e,m,!0));(new a.C.ia(b)).nodes(e)}else if(d=a.h.childNodes(b),0<d.length)e=\na.a.Yb(d),(new a.C.ia(b)).nodes(e);else throw Error(\"Anonymous template defined, but no template content was provided\");return{controlsDescendantBindings:!0}},update:function(b,c,d,e,f){var g=c();c=a.a.f(g);d=!0;e=null;\"string\"==typeof c?c={}:(g=\"name\"in c?c.name:b,\"if\"in c&&(d=a.a.f(c[\"if\"])),d&&\"ifnot\"in c&&(d=!a.a.f(c.ifnot)),d&&!g&&(d=!1));\"foreach\"in c?e=a.Qd(g,d&&c.foreach||[],c,b,f):d?(d=f,\"data\"in c&&(d=f.createChildContext(c.data,{as:c.as,noChildContext:c.noChildContext,exportDependencies:!0})),\ne=a.dc(g,d,c,b)):a.h.Ea(b);f=e;(c=a.a.g.get(b,h))&&\"function\"==typeof c.s&&c.s();a.a.g.set(b,h,!f||f.ja&&!f.ja()?n:f)}};a.m.Ra.template=function(b){b=a.m.ac(b);return 1==b.length&&b[0].unknown||a.m.Id(b,\"name\")?null:\"This template engine does not support anonymous templates nested within its templates\"};a.h.ea.template=!0})();a.b(\"setTemplateEngine\",a.gc);a.b(\"renderTemplate\",a.dc);a.a.Kc=function(a,c,d){if(a.length&&c.length){var e,f,g,h,m;for(e=f=0;(!d||e<d)&&(h=a[f]);++f){for(g=0;m=c[g];++g)if(h.value===\nm.value){h.moved=m.index;m.moved=h.index;c.splice(g,1);e=g=0;break}e+=g}}};a.a.Pb=function(){function b(b,d,e,f,g){var h=Math.min,m=Math.max,k=[],l,p=b.length,q,n=d.length,r=n-p||1,v=p+n+1,u,w,z;for(l=0;l<=p;l++)for(w=u,k.push(u=[]),z=h(n,l+r),q=m(0,l-1);q<=z;q++)u[q]=q?l?b[l-1]===d[q-1]?w[q-1]:h(w[q]||v,u[q-1]||v)+1:q+1:l+1;h=[];m=[];r=[];l=p;for(q=n;l||q;)n=k[l][q]-1,q&&n===k[l][q-1]?m.push(h[h.length]={status:e,value:d[--q],index:q}):l&&n===k[l-1][q]?r.push(h[h.length]={status:f,value:b[--l],index:l}):\n(--q,--l,g.sparse||h.push({status:\"retained\",value:d[q]}));a.a.Kc(r,m,!g.dontLimitMoves&&10*p);return h.reverse()}return function(a,d,e){e=\"boolean\"===typeof e?{dontLimitMoves:e}:e||{};a=a||[];d=d||[];return a.length<d.length?b(a,d,\"added\",\"deleted\",e):b(d,a,\"deleted\",\"added\",e)}}();a.b(\"utils.compareArrays\",a.a.Pb);(function(){function b(b,c,d,h,m){var k=[],l=a.$(function(){var l=c(d,m,a.a.Ua(k,b))||[];0<k.length&&(a.a.Xc(k,l),h&&a.u.G(h,null,[d,l,m]));k.length=0;a.a.Nb(k,l)},null,{l:b,Sa:function(){return!a.a.kd(k)}});\nreturn{Y:k,$:l.ja()?l:n}}var c=a.a.g.Z(),d=a.a.g.Z();a.a.ec=function(e,f,g,h,m,k){function l(b){y={Aa:b,pb:a.ta(w++)};v.push(y);r||F.push(y)}function p(b){y=t[b];w!==y.pb.v()&&D.push(y);y.pb(w++);a.a.Ua(y.Y,e);v.push(y)}function q(b,c){if(b)for(var d=0,e=c.length;d<e;d++)a.a.D(c[d].Y,function(a){b(a,d,c[d].Aa)})}f=f||[];\"undefined\"==typeof f.length&&(f=[f]);h=h||{};var t=a.a.g.get(e,c),r=!t,v=[],u=0,w=0,z=[],A=[],C=[],D=[],F=[],y,I=0;if(r)a.a.D(f,l);else{if(!k||t&&t._countWaitingForRemove){var E=\na.a.Mb(t,function(a){return a.Aa});k=a.a.Pb(E,f,{dontLimitMoves:h.dontLimitMoves,sparse:!0})}for(var E=0,G,H,K;G=k[E];E++)switch(H=G.moved,K=G.index,G.status){case \"deleted\":for(;u<K;)p(u++);H===n&&(y=t[u],y.$&&(y.$.s(),y.$=n),a.a.Ua(y.Y,e).length&&(h.beforeRemove&&(v.push(y),I++,y.Aa===d?y=null:C.push(y)),y&&z.push.apply(z,y.Y)));u++;break;case \"added\":for(;w<K;)p(u++);H!==n?(A.push(v.length),p(H)):l(G.value)}for(;w<f.length;)p(u++);v._countWaitingForRemove=I}a.a.g.set(e,c,v);q(h.beforeMove,D);a.a.D(z,\nh.beforeRemove?a.oa:a.removeNode);var M,O,P;try{P=e.ownerDocument.activeElement}catch(N){}if(A.length)for(;(E=A.shift())!=n;){y=v[E];for(M=n;E;)if((O=v[--E].Y)&&O.length){M=O[O.length-1];break}for(f=0;u=y.Y[f];M=u,f++)a.h.Wb(e,u,M)}for(E=0;y=v[E];E++){y.Y||a.a.extend(y,b(e,g,y.Aa,m,y.pb));for(f=0;u=y.Y[f];M=u,f++)a.h.Wb(e,u,M);!y.Ed&&m&&(m(y.Aa,y.Y,y.pb),y.Ed=!0,M=y.Y[y.Y.length-1])}P&&e.ownerDocument.activeElement!=P&&P.focus();q(h.beforeRemove,C);for(E=0;E<C.length;++E)C[E].Aa=d;q(h.afterMove,D);\nq(h.afterAdd,F)}})();a.b(\"utils.setDomNodeChildrenFromArrayMapping\",a.a.ec);a.ba=function(){this.allowTemplateRewriting=!1};a.ba.prototype=new a.ca;a.ba.prototype.constructor=a.ba;a.ba.prototype.renderTemplateSource=function(b,c,d,e){if(c=(9>a.a.W?0:b.nodes)?b.nodes():null)return a.a.la(c.cloneNode(!0).childNodes);b=b.text();return a.a.ua(b,e)};a.ba.Ma=new a.ba;a.gc(a.ba.Ma);a.b(\"nativeTemplateEngine\",a.ba);(function(){a.$a=function(){var a=this.Hd=function(){if(!v||!v.tmpl)return 0;try{if(0<=v.tmpl.tag.tmpl.open.toString().indexOf(\"__\"))return 2}catch(a){}return 1}();\nthis.renderTemplateSource=function(b,e,f,g){g=g||w;f=f||{};if(2>a)throw Error(\"Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.\");var h=b.data(\"precompiled\");h||(h=b.text()||\"\",h=v.template(null,\"{{ko_with $item.koBindingContext}}\"+h+\"{{/ko_with}}\"),b.data(\"precompiled\",h));b=[e.$data];e=v.extend({koBindingContext:e},f.templateOptions);e=v.tmpl(h,b,e);e.appendTo(g.createElement(\"div\"));v.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return\"{{ko_code ((function() { return \"+\na+\" })()) }}\"};this.addTemplate=function(a,b){w.write(\"<script type='text/html' id='\"+a+\"'>\"+b+\"\\x3c/script>\")};0<a&&(v.tmpl.tag.ko_code={open:\"__.push($1 || '');\"},v.tmpl.tag.ko_with={open:\"with($1) {\",close:\"} \"})};a.$a.prototype=new a.ca;a.$a.prototype.constructor=a.$a;var b=new a.$a;0<b.Hd&&a.gc(b);a.b(\"jqueryTmplTemplateEngine\",a.$a)})()})})();})();\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nmodule.exports = mapKeys;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ba=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var ca=new Set,da={};function ea(a,b){fa(a,b);fa(a+\"Capture\",b)}\nfunction fa(a,b){da[a]=b;for(a=0;a<b.length;a++)ca.add(b[a])}\nvar ha=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ia=Object.prototype.hasOwnProperty,ja=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ka=\n{},la={};function ma(a){if(ia.call(la,a))return!0;if(ia.call(ka,a))return!1;if(ja.test(a))return la[a]=!0;ka[a]=!0;return!1}function na(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction oa(a,b,c,d){if(null===b||\"undefined\"===typeof b||na(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new q(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new q(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new q(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new q(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new q(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new q(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new q(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new q(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new q(a,5,!1,a.toLowerCase(),null,!1,!1)});var pa=/[\\-:]([a-z])/g;function qa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(pa,\nqa);z[b]=new q(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(pa,qa);z[b]=new q(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new q(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new q(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ra(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])oa(b,c,e,d)&&(c=null),d||null===e?ma(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar sa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ta=Symbol.for(\"react.element\"),ua=Symbol.for(\"react.portal\"),va=Symbol.for(\"react.fragment\"),wa=Symbol.for(\"react.strict_mode\"),xa=Symbol.for(\"react.profiler\"),ya=Symbol.for(\"react.provider\"),Aa=Symbol.for(\"react.context\"),Ba=Symbol.for(\"react.forward_ref\"),Ca=Symbol.for(\"react.suspense\"),Da=Symbol.for(\"react.suspense_list\"),Ea=Symbol.for(\"react.memo\"),Fa=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ga=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ha=Symbol.iterator;function Ia(a){if(null===a||\"object\"!==typeof a)return null;a=Ha&&a[Ha]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,Ja;function Ka(a){if(void 0===Ja)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ja=b&&b[1]||\"\"}return\"\\n\"+Ja+a}var La=!1;\nfunction Ma(a,b){if(!a||La)return\"\";La=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{La=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ka(a):\"\"}\nfunction Na(a){switch(a.tag){case 5:return Ka(a.type);case 16:return Ka(\"Lazy\");case 13:return Ka(\"Suspense\");case 19:return Ka(\"SuspenseList\");case 0:case 2:case 15:return a=Ma(a.type,!1),a;case 11:return a=Ma(a.type.render,!1),a;case 1:return a=Ma(a.type,!0),a;default:return\"\"}}\nfunction Oa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case va:return\"Fragment\";case ua:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ca:return\"Suspense\";case Da:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Aa:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Ba:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ea:return b=a.displayName||null,null!==b?b:Oa(a.type)||\"Memo\";case Fa:b=a._payload;a=a._init;try{return Oa(a(b))}catch(c){}}return null}\nfunction Pa(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Oa(b);case 8:return b===wa?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Qa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ra(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Sa(a){var b=Ra(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Ta(a){a._valueTracker||(a._valueTracker=Sa(a))}function Ua(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ra(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Va(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Wa(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Xa(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Qa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Ya(a,b){b=b.checked;null!=b&&ra(a,\"checked\",b,!1)}\nfunction Za(a,b){Ya(a,b);var c=Qa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?$a(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&$a(a,b.type,Qa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction ab(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction $a(a,b,c){if(\"number\"!==b||Va(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var bb=Array.isArray;\nfunction cb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Qa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction db(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function eb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(bb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Qa(c)}}\nfunction fb(a,b){var c=Qa(b.value),d=Qa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function gb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function hb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction ib(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?hb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar jb,kb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{jb=jb||document.createElement(\"div\");jb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=jb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction lb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar mb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},nb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(mb).forEach(function(a){nb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});function ob(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(\"\"+b).trim():b+\"px\"}\nfunction pb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ob(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var qb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction rb(a,b){if(b){if(qb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction sb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var tb=null;function ub(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var vb=null,wb=null,xb=null;\nfunction yb(a){if(a=zb(a)){if(\"function\"!==typeof vb)throw Error(p(280));var b=a.stateNode;b&&(b=Ab(b),vb(a.stateNode,a.type,b))}}function Bb(a){wb?xb?xb.push(a):xb=[a]:wb=a}function Cb(){if(wb){var a=wb,b=xb;xb=wb=null;yb(a);if(b)for(a=0;a<b.length;a++)yb(b[a])}}function Db(a,b){return a(b)}function Eb(){}var Fb=!1;function Gb(a,b,c){if(Fb)return a(b,c);Fb=!0;try{return Db(a,b,c)}finally{if(Fb=!1,null!==wb||null!==xb)Eb(),Cb()}}\nfunction Hb(a,b){var c=a.stateNode;if(null===c)return null;var d=Ab(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Ib=!1;if(ha)try{var Jb={};Object.defineProperty(Jb,\"passive\",{get:function(){Ib=!0}});window.addEventListener(\"test\",Jb,Jb);window.removeEventListener(\"test\",Jb,Jb)}catch(a){Ib=!1}function Kb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Lb=!1,Mb=null,Nb=!1,Ob=null,Pb={onError:function(a){Lb=!0;Mb=a}};function Qb(a,b,c,d,e,f,g,h,k){Lb=!1;Mb=null;Kb.apply(Pb,arguments)}\nfunction Rb(a,b,c,d,e,f,g,h,k){Qb.apply(this,arguments);if(Lb){if(Lb){var l=Mb;Lb=!1;Mb=null}else throw Error(p(198));Nb||(Nb=!0,Ob=l)}}function Sb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Tb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Ub(a){if(Sb(a)!==a)throw Error(p(188));}\nfunction Vb(a){var b=a.alternate;if(!b){b=Sb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Ub(e),a;if(f===d)return Ub(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Wb(a){a=Vb(a);return null!==a?Xb(a):null}function Xb(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=Xb(a);if(null!==b)return b;a=a.sibling}return null}\nvar Yb=ba.unstable_scheduleCallback,Zb=ba.unstable_cancelCallback,$b=ba.unstable_shouldYield,ac=ba.unstable_requestPaint,D=ba.unstable_now,bc=ba.unstable_getCurrentPriorityLevel,cc=ba.unstable_ImmediatePriority,dc=ba.unstable_UserBlockingPriority,ec=ba.unstable_NormalPriority,fc=ba.unstable_LowPriority,gc=ba.unstable_IdlePriority,hc=null,ic=null;function jc(a){if(ic&&\"function\"===typeof ic.onCommitFiberRoot)try{ic.onCommitFiberRoot(hc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar lc=Math.clz32?Math.clz32:kc,mc=Math.log,nc=Math.LN2;function kc(a){a>>>=0;return 0===a?32:31-(mc(a)/nc|0)|0}var oc=64,pc=4194304;\nfunction qc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function rc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=qc(h):(f&=g,0!==f&&(d=qc(f)))}else g=c&~e,0!==g?d=qc(g):0!==f&&(d=qc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-lc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction sc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction tc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-lc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=sc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function uc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function vc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}function wc(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-lc(b);a[b]=c}\nfunction xc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-lc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}function yc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-lc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var E=0;function zc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}\nvar Ac,Bc,Cc,Dc,Ec,Fc=!1,Gc=[],Hc=null,Ic=null,Jc=null,Kc=new Map,Lc=new Map,Mc=[],Nc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Oc(a,b){switch(a){case \"focusin\":case \"focusout\":Hc=null;break;case \"dragenter\":case \"dragleave\":Ic=null;break;case \"mouseover\":case \"mouseout\":Jc=null;break;case \"pointerover\":case \"pointerout\":Kc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Lc.delete(b.pointerId)}}\nfunction Pc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=zb(b),null!==b&&Bc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Qc(a,b,c,d,e){switch(b){case \"focusin\":return Hc=Pc(Hc,a,b,c,d,e),!0;case \"dragenter\":return Ic=Pc(Ic,a,b,c,d,e),!0;case \"mouseover\":return Jc=Pc(Jc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Kc.set(f,Pc(Kc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Lc.set(f,Pc(Lc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Rc(a){var b=Sc(a.target);if(null!==b){var c=Sb(b);if(null!==c)if(b=c.tag,13===b){if(b=Tb(c),null!==b){a.blockedOn=b;Ec(a.priority,function(){Cc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Tc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Uc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);tb=d;c.target.dispatchEvent(d);tb=null}else return b=zb(c),null!==b&&Bc(b),a.blockedOn=c,!1;b.shift()}return!0}function Vc(a,b,c){Tc(a)&&c.delete(b)}function Wc(){Fc=!1;null!==Hc&&Tc(Hc)&&(Hc=null);null!==Ic&&Tc(Ic)&&(Ic=null);null!==Jc&&Tc(Jc)&&(Jc=null);Kc.forEach(Vc);Lc.forEach(Vc)}\nfunction Xc(a,b){a.blockedOn===b&&(a.blockedOn=null,Fc||(Fc=!0,ba.unstable_scheduleCallback(ba.unstable_NormalPriority,Wc)))}\nfunction Yc(a){function b(b){return Xc(b,a)}if(0<Gc.length){Xc(Gc[0],a);for(var c=1;c<Gc.length;c++){var d=Gc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Hc&&Xc(Hc,a);null!==Ic&&Xc(Ic,a);null!==Jc&&Xc(Jc,a);Kc.forEach(b);Lc.forEach(b);for(c=0;c<Mc.length;c++)d=Mc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Mc.length&&(c=Mc[0],null===c.blockedOn);)Rc(c),null===c.blockedOn&&Mc.shift()}var Zc=sa.ReactCurrentBatchConfig;\nfunction $c(a,b,c,d){var e=E,f=Zc.transition;Zc.transition=null;try{E=1,ad(a,b,c,d)}finally{E=e,Zc.transition=f}}function bd(a,b,c,d){var e=E,f=Zc.transition;Zc.transition=null;try{E=4,ad(a,b,c,d)}finally{E=e,Zc.transition=f}}\nfunction ad(a,b,c,d){var e=Uc(a,b,c,d);if(null===e)cd(a,b,d,dd,c),Oc(a,d);else if(Qc(e,a,b,c,d))d.stopPropagation();else if(Oc(a,d),b&4&&-1<Nc.indexOf(a)){for(;null!==e;){var f=zb(e);null!==f&&Ac(f);f=Uc(a,b,c,d);null===f&&cd(a,b,d,dd,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else cd(a,b,d,null,c)}var dd=null;\nfunction Uc(a,b,c,d){dd=null;a=ub(d);a=Sc(a);if(null!==a)if(b=Sb(a),null===b)a=null;else if(c=b.tag,13===c){a=Tb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);dd=a;return null}\nfunction ed(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(bc()){case cc:return 1;case dc:return 4;case ec:case fc:return 16;case gc:return 536870912;default:return 16}default:return 16}}var fd=null,gd=null,hd=null;function id(){if(hd)return hd;var a,b=gd,c=b.length,d,e=\"value\"in fd?fd.value:fd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return hd=e.slice(a,1<d?1-d:void 0)}\nfunction jd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function kd(){return!0}function ld(){return!1}\nfunction md(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?kd:ld;this.isPropagationStopped=ld;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=kd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=kd)},persist:function(){},isPersistent:kd});return b}\nvar nd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},od=md(nd),pd=A({},nd,{view:0,detail:0}),qd=md(pd),rd,sd,td,vd=A({},pd,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ud,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==td&&(td&&\"mousemove\"===a.type?(rd=a.screenX-td.screenX,sd=a.screenY-td.screenY):sd=rd=0,td=a);return rd},movementY:function(a){return\"movementY\"in a?a.movementY:sd}}),wd=md(vd),xd=A({},vd,{dataTransfer:0}),yd=md(xd),zd=A({},pd,{relatedTarget:0}),Ad=md(zd),Bd=A({},nd,{animationName:0,elapsedTime:0,pseudoElement:0}),Cd=md(Bd),Dd=A({},nd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Ed=md(Dd),Fd=A({},nd,{data:0}),Gd=md(Fd),Hd={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Id={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Jd={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Kd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Jd[a])?!!b[a]:!1}function ud(){return Kd}\nvar Ld=A({},pd,{key:function(a){if(a.key){var b=Hd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=jd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Id[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ud,charCode:function(a){return\"keypress\"===a.type?jd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?jd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Md=md(Ld),Nd=A({},vd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Od=md(Nd),Pd=A({},pd,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ud}),Qd=md(Pd),Rd=A({},nd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Sd=md(Rd),Td=A({},vd,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Ud=md(Td),Vd=[9,13,27,32],Wd=ha&&\"CompositionEvent\"in window,Xd=null;ha&&\"documentMode\"in document&&(Xd=document.documentMode);var Yd=ha&&\"TextEvent\"in window&&!Xd,Zd=ha&&(!Wd||Xd&&8<Xd&&11>=Xd),$d=String.fromCharCode(32),ae=!1;\nfunction be(a,b){switch(a){case \"keyup\":return-1!==Vd.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function ce(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var de=!1;function ee(a,b){switch(a){case \"compositionend\":return ce(b);case \"keypress\":if(32!==b.which)return null;ae=!0;return $d;case \"textInput\":return a=b.data,a===$d&&ae?null:a;default:return null}}\nfunction fe(a,b){if(de)return\"compositionend\"===a||!Wd&&be(a,b)?(a=id(),hd=gd=fd=null,de=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return Zd&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ge={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function he(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!ge[a.type]:\"textarea\"===b?!0:!1}function ie(a,b,c,d){Bb(d);b=je(b,\"onChange\");0<b.length&&(c=new od(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var ke=null,le=null;function me(a){ne(a,0)}function oe(a){var b=pe(a);if(Ua(b))return a}\nfunction qe(a,b){if(\"change\"===a)return b}var re=!1;if(ha){var se;if(ha){var te=\"oninput\"in document;if(!te){var ue=document.createElement(\"div\");ue.setAttribute(\"oninput\",\"return;\");te=\"function\"===typeof ue.oninput}se=te}else se=!1;re=se&&(!document.documentMode||9<document.documentMode)}function ve(){ke&&(ke.detachEvent(\"onpropertychange\",we),le=ke=null)}function we(a){if(\"value\"===a.propertyName&&oe(le)){var b=[];ie(b,le,a,ub(a));Gb(me,b)}}\nfunction xe(a,b,c){\"focusin\"===a?(ve(),ke=b,le=c,ke.attachEvent(\"onpropertychange\",we)):\"focusout\"===a&&ve()}function ye(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return oe(le)}function ze(a,b){if(\"click\"===a)return oe(b)}function Ae(a,b){if(\"input\"===a||\"change\"===a)return oe(b)}function Be(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var Ce=\"function\"===typeof Object.is?Object.is:Be;\nfunction De(a,b){if(Ce(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ia.call(b,e)||!Ce(a[e],b[e]))return!1}return!0}function Ee(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Fe(a,b){var c=Ee(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ee(c)}}function Ge(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ge(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction He(){for(var a=window,b=Va();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Va(a.document)}return b}function Ie(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Je(a){var b=He(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Ge(c.ownerDocument.documentElement,c)){if(null!==d&&Ie(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Fe(c,f);var g=Fe(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Ke=ha&&\"documentMode\"in document&&11>=document.documentMode,Le=null,Me=null,Ne=null,Oe=!1;\nfunction Pe(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Oe||null==Le||Le!==Va(d)||(d=Le,\"selectionStart\"in d&&Ie(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Ne&&De(Ne,d)||(Ne=d,d=je(Me,\"onSelect\"),0<d.length&&(b=new od(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Le)))}\nfunction Qe(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Re={animationend:Qe(\"Animation\",\"AnimationEnd\"),animationiteration:Qe(\"Animation\",\"AnimationIteration\"),animationstart:Qe(\"Animation\",\"AnimationStart\"),transitionend:Qe(\"Transition\",\"TransitionEnd\")},Se={},Te={};\nha&&(Te=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Re.animationend.animation,delete Re.animationiteration.animation,delete Re.animationstart.animation),\"TransitionEvent\"in window||delete Re.transitionend.transition);function Ue(a){if(Se[a])return Se[a];if(!Re[a])return a;var b=Re[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Te)return Se[a]=b[c];return a}var Ve=Ue(\"animationend\"),We=Ue(\"animationiteration\"),Xe=Ue(\"animationstart\"),Ye=Ue(\"transitionend\"),Ze=new Map,$e=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction af(a,b){Ze.set(a,b);ea(b,[a])}for(var bf=0;bf<$e.length;bf++){var cf=$e[bf],df=cf.toLowerCase(),ef=cf[0].toUpperCase()+cf.slice(1);af(df,\"on\"+ef)}af(Ve,\"onAnimationEnd\");af(We,\"onAnimationIteration\");af(Xe,\"onAnimationStart\");af(\"dblclick\",\"onDoubleClick\");af(\"focusin\",\"onFocus\");af(\"focusout\",\"onBlur\");af(Ye,\"onTransitionEnd\");fa(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);fa(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);fa(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nfa(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);ea(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));ea(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));ea(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);ea(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));ea(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nea(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var ff=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),gf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(ff));\nfunction hf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Rb(d,b,void 0,a);a.currentTarget=null}\nfunction ne(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;hf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;hf(e,h,l);f=k}}}if(Nb)throw a=Ob,Nb=!1,Ob=null,a;}\nfunction F(a,b){var c=b[jf];void 0===c&&(c=b[jf]=new Set);var d=a+\"__bubble\";c.has(d)||(kf(b,a,2,!1),c.add(d))}function lf(a,b,c){var d=0;b&&(d|=4);kf(c,a,d,b)}var mf=\"_reactListening\"+Math.random().toString(36).slice(2);function nf(a){if(!a[mf]){a[mf]=!0;ca.forEach(function(b){\"selectionchange\"!==b&&(gf.has(b)||lf(b,!1,a),lf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[mf]||(b[mf]=!0,lf(\"selectionchange\",!1,b))}}\nfunction kf(a,b,c,d){switch(ed(b)){case 1:var e=$c;break;case 4:e=bd;break;default:e=ad}c=e.bind(null,b,c,a);e=void 0;!Ib||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction cd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Sc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Gb(function(){var d=f,e=ub(c),g=[];\na:{var h=Ze.get(a);if(void 0!==h){var k=od,n=a;switch(a){case \"keypress\":if(0===jd(c))break a;case \"keydown\":case \"keyup\":k=Md;break;case \"focusin\":n=\"focus\";k=Ad;break;case \"focusout\":n=\"blur\";k=Ad;break;case \"beforeblur\":case \"afterblur\":k=Ad;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=wd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nyd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Qd;break;case Ve:case We:case Xe:k=Cd;break;case Ye:k=Sd;break;case \"scroll\":k=qd;break;case \"wheel\":k=Ud;break;case \"copy\":case \"cut\":case \"paste\":k=Ed;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Od}var v=0!==(b&4),C=!v&&\"scroll\"===a,t=v?null!==h?h+\"Capture\":null:h;v=[];for(var r=d,x;null!==\nr;){x=r;var B=x.stateNode;5===x.tag&&null!==B&&(x=B,null!==t&&(B=Hb(r,t),null!=B&&v.push(of(r,B,x))));if(C)break;r=r.return}0<v.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:v}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==tb&&(n=c.relatedTarget||c.fromElement)&&(Sc(n)||n[pf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Sc(n):null,null!==\nn&&(C=Sb(n),n!==C||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){v=wd;B=\"onMouseLeave\";t=\"onMouseEnter\";r=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)v=Od,B=\"onPointerLeave\",t=\"onPointerEnter\",r=\"pointer\";C=null==k?h:pe(k);x=null==n?h:pe(n);h=new v(B,r+\"leave\",k,c,e);h.target=C;h.relatedTarget=x;B=null;Sc(e)===d&&(v=new v(t,r+\"enter\",n,c,e),v.target=x,v.relatedTarget=C,B=v);C=B;if(k&&n)b:{v=k;t=n;r=0;for(x=v;x;x=qf(x))r++;x=0;for(B=t;B;B=qf(B))x++;for(;0<r-x;)v=qf(v),r--;for(;0<x-r;)t=\nqf(t),x--;for(;r--;){if(v===t||null!==t&&v===t.alternate)break b;v=qf(v);t=qf(t)}v=null}else v=null;null!==k&&rf(g,h,k,v,!1);null!==n&&null!==C&&rf(g,C,n,v,!0)}}}a:{h=d?pe(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var O=qe;else if(he(h))if(re)O=Ae;else{O=ye;var T=xe}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(O=ze);if(O&&(O=O(a,d))){ie(g,O,c,e);break a}T&&T(a,h,d);\"focusout\"===a&&(T=h._wrapperState)&&\nT.controlled&&\"number\"===h.type&&$a(h,\"number\",h.value)}T=d?pe(d):window;switch(a){case \"focusin\":if(he(T)||\"true\"===T.contentEditable)Le=T,Me=d,Ne=null;break;case \"focusout\":Ne=Me=Le=null;break;case \"mousedown\":Oe=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Oe=!1;Pe(g,c,e);break;case \"selectionchange\":if(Ke)break;case \"keydown\":case \"keyup\":Pe(g,c,e)}var za;if(Wd)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else de?be(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(Zd&&\"ko\"!==c.locale&&(de||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&de&&(za=id()):(fd=e,gd=\"value\"in fd?fd.value:fd.textContent,de=!0)),T=je(d,L),0<T.length&&(L=new Gd(L,a,null,c,e),g.push({event:L,listeners:T}),za?L.data=za:(za=ce(c),null!==za&&(L.data=za))));if(za=Yd?ee(a,c):fe(a,c))d=je(d,\"onBeforeInput\"),0<d.length&&(e=new Gd(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=za)}ne(g,b)})}function of(a,b,c){return{instance:a,listener:b,currentTarget:c}}function je(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Hb(a,c),null!=f&&d.unshift(of(a,f,e)),f=Hb(a,b),null!=f&&d.push(of(a,f,e)));a=a.return}return d}function qf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction rf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Hb(c,f),null!=k&&g.unshift(of(c,k,h))):e||(k=Hb(c,f),null!=k&&g.push(of(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var sf=/\\r\\n?/g,tf=/\\u0000|\\uFFFD/g;function uf(a){return(\"string\"===typeof a?a:\"\"+a).replace(sf,\"\\n\").replace(tf,\"\")}function vf(a,b,c){b=uf(b);if(uf(a)!==b&&c)throw Error(p(425));}function wf(){}\nvar xf=null;function yf(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar zf=\"function\"===typeof setTimeout?setTimeout:void 0,Af=\"function\"===typeof clearTimeout?clearTimeout:void 0,Bf=\"function\"===typeof Promise?Promise:void 0,Df=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Bf?function(a){return Bf.resolve(null).then(a).catch(Cf)}:zf;function Cf(a){setTimeout(function(){throw a;})}\nfunction Ef(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);Yc(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);Yc(b)}function Ff(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Gf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Hf=Math.random().toString(36).slice(2),If=\"__reactFiber$\"+Hf,Jf=\"__reactProps$\"+Hf,pf=\"__reactContainer$\"+Hf,jf=\"__reactEvents$\"+Hf,Kf=\"__reactListeners$\"+Hf,Lf=\"__reactHandles$\"+Hf;\nfunction Sc(a){var b=a[If];if(b)return b;for(var c=a.parentNode;c;){if(b=c[pf]||c[If]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Gf(a);null!==a;){if(c=a[If])return c;a=Gf(a)}return b}a=c;c=a.parentNode}return null}function zb(a){a=a[If]||a[pf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function pe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Ab(a){return a[Jf]||null}var Mf=[],Nf=-1;function Of(a){return{current:a}}\nfunction G(a){0>Nf||(a.current=Mf[Nf],Mf[Nf]=null,Nf--)}function H(a,b){Nf++;Mf[Nf]=a.current;a.current=b}var Pf={},I=Of(Pf),Qf=Of(!1),Rf=Pf;function Sf(a,b){var c=a.type.contextTypes;if(!c)return Pf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Tf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Uf(){G(Qf);G(I)}function Vf(a,b,c){if(I.current!==Pf)throw Error(p(168));H(I,b);H(Qf,c)}function Wf(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Pa(a)||\"Unknown\",e));return A({},c,d)}\nfunction Xf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Pf;Rf=I.current;H(I,a);H(Qf,Qf.current);return!0}function Yf(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=Wf(a,b,Rf),d.__reactInternalMemoizedMergedChildContext=a,G(Qf),G(I),H(I,a)):G(Qf);H(Qf,c)}var Zf=null,$f=!1,ag=!1;function bg(a){null===Zf?Zf=[a]:Zf.push(a)}function cg(a){$f=!0;bg(a)}\nfunction dg(){if(!ag&&null!==Zf){ag=!0;var a=0,b=E;try{var c=Zf;for(E=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}Zf=null;$f=!1}catch(e){throw null!==Zf&&(Zf=Zf.slice(a+1)),Yb(cc,dg),e;}finally{E=b,ag=!1}}return null}var eg=sa.ReactCurrentBatchConfig;function fg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var gg=Of(null),hg=null,ig=null,jg=null;function kg(){jg=ig=hg=null}\nfunction lg(a){var b=gg.current;G(gg);a._currentValue=b}function mg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function ng(a,b){hg=a;jg=ig=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(og=!0),a.firstContext=null)}\nfunction pg(a){var b=a._currentValue;if(jg!==a)if(a={context:a,memoizedValue:b,next:null},null===ig){if(null===hg)throw Error(p(308));ig=a;hg.dependencies={lanes:0,firstContext:a}}else ig=ig.next=a;return b}var qg=null,rg=!1;function sg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction tg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ug(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction vg(a,b){var c=a.updateQueue;null!==c&&(c=c.shared,null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=c.interleaved,null===a?(b.next=b,null===qg?qg=[c]:qg.push(c)):(b.next=a.next,a.next=b),c.interleaved=b):(a=c.pending,null===a?b.next=b:(b.next=a.next,a.next=b),c.pending=b))}function wg(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nfunction xg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction yg(a,b,c,d){var e=a.updateQueue;rg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var w=e.baseState;g=0;m=l=k=null;h=f;do{var u=h.lane,y=h.eventTime;if((d&u)===u){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,v=h;u=b;y=c;switch(v.tag){case 1:n=v.payload;if(\"function\"===typeof n){w=n.call(y,w,u);break a}w=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=v.payload;u=\"function\"===typeof n?n.call(y,w,u):n;if(null===u||void 0===u)break a;w=A({},w,u);break a;case 2:rg=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,u=e.effects,null===u?e.effects=[h]:u.push(h))}else y={eventTime:y,lane:u,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=w):m=m.next=y,g|=u;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else u=h,h=u.next,u.next=null,e.lastBaseUpdate=u,e.shared.pending=null}while(1);null===m&&(k=w);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);zg|=g;a.lanes=g;a.memoizedState=w}}\nfunction Ag(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var Bg=(new aa.Component).refs;function Cg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Fg={isMounted:function(a){return(a=a._reactInternals)?Sb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=M(),e=Dg(a),f=ug(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);vg(a,f);b=Eg(a,e,d);null!==b&&wg(b,a,e)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=M(),e=Dg(a),f=ug(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);vg(a,f);b=Eg(a,e,d);null!==b&&wg(b,a,e)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=M(),d=Dg(a),e=ug(c,\nd);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);vg(a,e);b=Eg(a,d,c);null!==b&&wg(b,a,d)}};function Gg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!De(c,d)||!De(e,f):!0}\nfunction Hg(a,b,c){var d=!1,e=Pf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=pg(f):(e=Tf(b)?Rf:I.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Sf(a,e):Pf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Fg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ig(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Fg.enqueueReplaceState(b,b.state,null)}\nfunction Jg(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Bg;sg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=pg(f):(f=Tf(b)?Rf:I.current,e.context=Sf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Cg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Fg.enqueueReplaceState(e,e.state,null),yg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}var Kg=[],Lg=0,Mg=null,Ng=0,Og=[],Pg=0,Qg=null,Rg=1,Sg=\"\";function Tg(a,b){Kg[Lg++]=Ng;Kg[Lg++]=Mg;Mg=a;Ng=b}\nfunction Ug(a,b,c){Og[Pg++]=Rg;Og[Pg++]=Sg;Og[Pg++]=Qg;Qg=a;var d=Rg;a=Sg;var e=32-lc(d)-1;d&=~(1<<e);c+=1;var f=32-lc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;Rg=1<<32-lc(b)+e|c<<e|d;Sg=f+a}else Rg=1<<f|c<<e|d,Sg=a}function Vg(a){null!==a.return&&(Tg(a,1),Ug(a,1,0))}function Wg(a){for(;a===Mg;)Mg=Kg[--Lg],Kg[Lg]=null,Ng=Kg[--Lg],Kg[Lg]=null;for(;a===Qg;)Qg=Og[--Pg],Og[Pg]=null,Sg=Og[--Pg],Og[Pg]=null,Rg=Og[--Pg],Og[Pg]=null}var Xg=null,Yg=null,N=!1,Zg=null;\nfunction $g(a,b){var c=ah(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction bh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,Xg=a,Yg=Ff(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,Xg=a,Yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==Qg?{id:Rg,overflow:Sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=ah(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,Xg=a,Yg=\nnull,!0):!1;default:return!1}}function ch(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function dh(a){if(N){var b=Yg;if(b){var c=b;if(!bh(a,b)){if(ch(a))throw Error(p(418));b=Ff(c.nextSibling);var d=Xg;b&&bh(a,b)?$g(d,c):(a.flags=a.flags&-4097|2,N=!1,Xg=a)}}else{if(ch(a))throw Error(p(418));a.flags=a.flags&-4097|2;N=!1;Xg=a}}}function eh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Xg=a}\nfunction fh(a){if(a!==Xg)return!1;if(!N)return eh(a),N=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!yf(a.type,a.memoizedProps));if(b&&(b=Yg)){if(ch(a)){for(a=Yg;a;)a=Ff(a.nextSibling);throw Error(p(418));}for(;b;)$g(a,b),b=Ff(b.nextSibling)}eh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){Yg=Ff(a.nextSibling);break a}b--}else\"$\"!==c&&\n\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}Yg=null}}else Yg=Xg?Ff(a.stateNode.nextSibling):null;return!0}function gh(){Yg=Xg=null;N=!1}function hh(a){null===Zg?Zg=[a]:Zg.push(a)}\nfunction ih(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===Bg&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction jh(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function kh(a){var b=a._init;return b(a._payload)}\nfunction lh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=mh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=nh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===va)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Fa&&kh(f)===b.type))return d=e(b,c.props),d.ref=ih(a,b,c),d.return=a,d;d=oh(c.type,c.key,c.props,null,a.mode,d);d.ref=ih(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=ph(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=qh(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function w(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=nh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case ta:return c=oh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=ih(a,null,b),c.return=a,c;case ua:return b=ph(b,a.mode,c),b.return=a,b;case Fa:var d=b._init;return w(a,d(b._payload),c)}if(bb(b)||Ia(b))return b=qh(b,a.mode,c,null),b.return=a,b;jh(a,b)}return null}function u(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case ta:return c.key===e?k(a,b,c,d):null;case ua:return c.key===e?l(a,b,c,d):null;case Fa:return e=c._init,u(a,\nb,e(c._payload),d)}if(bb(c)||Ia(c))return null!==e?null:m(a,b,c,d,null);jh(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case ta:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case ua:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Fa:var f=d._init;return y(a,b,c,f(d._payload),e)}if(bb(d)||Ia(d))return a=a.get(c)||null,m(b,a,d,e,null);jh(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,n=null,m=g,r=g=0,x=null;null!==m&&r<h.length;r++){m.index>r?(x=m,m=null):x=m.sibling;var t=u(e,m,h[r],k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,r);null===n?l=t:n.sibling=t;n=t;m=x}if(r===h.length)return c(e,m),N&&Tg(e,r),l;if(null===m){for(;r<h.length;r++)m=w(e,h[r],k),null!==m&&(g=f(m,g,r),null===n?l=m:n.sibling=m,n=m);N&&Tg(e,r);return l}for(m=d(e,m);r<h.length;r++)x=y(m,e,r,h[r],k),null!==x&&(a&&null!==x.alternate&&m.delete(null===\nx.key?r:x.key),g=f(x,g,r),null===n?l=x:n.sibling=x,n=x);a&&m.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function v(e,g,h,k){var l=Ia(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var m=l=null,n=g,r=g=0,x=null,t=h.next();null!==n&&!t.done;r++,t=h.next()){n.index>r?(x=n,n=null):x=n.sibling;var v=u(e,n,t.value,k);if(null===v){null===n&&(n=x);break}a&&n&&null===v.alternate&&b(e,n);g=f(v,g,r);null===m?l=v:m.sibling=v;m=v;n=x}if(t.done)return c(e,\nn),N&&Tg(e,r),l;if(null===n){for(;!t.done;r++,t=h.next())t=w(e,t.value,k),null!==t&&(g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);N&&Tg(e,r);return l}for(n=d(e,n);!t.done;r++,t=h.next())t=y(n,e,r,t.value,k),null!==t&&(a&&null!==t.alternate&&n.delete(null===t.key?r:t.key),g=f(t,g,r),null===m?l=t:m.sibling=t,m=t);a&&n.forEach(function(a){return b(e,a)});N&&Tg(e,r);return l}function C(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===va&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case ta:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===va){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Fa&&kh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=ih(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===va?(d=qh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=oh(f.type,f.key,f.props,null,a.mode,h),h.ref=ih(a,d,f),h.return=a,a=h)}return g(a);case ua:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=ph(f,a.mode,h);d.return=a;a=d}return g(a);case Fa:return l=f._init,C(a,d,l(f._payload),h)}if(bb(f))return n(a,d,f,h);if(Ia(f))return v(a,d,f,h);jh(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=nh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return C}var rh=lh(!0),sh=lh(!1),th={},uh=Of(th),vh=Of(th),wh=Of(th);function xh(a){if(a===th)throw Error(p(174));return a}function yh(a,b){H(wh,b);H(vh,a);H(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:ib(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=ib(b,a)}G(uh);H(uh,b)}function zh(){G(uh);G(vh);G(wh)}\nfunction Ah(a){xh(wh.current);var b=xh(uh.current);var c=ib(b,a.type);b!==c&&(H(vh,a),H(uh,c))}function Bh(a){vh.current===a&&(G(uh),G(vh))}var P=Of(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=sa.ReactCurrentDispatcher,Gh=sa.ReactCurrentBatchConfig,Hh=0,Q=null,R=null,S=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function U(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!Ce(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;Q=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;S=R=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==R&&null!==R.next;Hh=0;S=R=Q=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===S?Q.memoizedState=S=a:S=S.next=a;return S}function Uh(){if(null===R){var a=Q.alternate;a=null!==a?a.memoizedState:null}else a=R.next;var b=null===S?Q.memoizedState:S.next;if(null!==b)S=b,R=a;else{if(null===a)throw Error(p(310));R=a;a={memoizedState:R.memoizedState,baseState:R.baseState,baseQueue:R.baseQueue,queue:R.queue,next:null};null===S?Q.memoizedState=S=a:S=S.next=a}return S}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=R,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var w={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=w,g=d):k=k.next=w;Q.lanes|=m;zg|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;Ce(d,b.memoizedState)||(og=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,Q.lanes|=f,zg|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);Ce(f,b.memoizedState)||(og=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=Q,d=Uh(),e=b(),f=!Ce(d.memoizedState,e);f&&(d.memoizedState=e,og=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==S&&S.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===J)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=Q.updateQueue;null===b?(b={lastEffect:null,stores:null},Q.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&Eg(a,1,-1)}function ai(a,b,c){return c(function(){ei(b)&&Eg(a,1,-1)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!Ce(a,c)}catch(d){return!0}}function fi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=gi.bind(null,Q,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=Q.updateQueue;null===b?(b={lastEffect:null,stores:null},Q.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function hi(){return Uh().memoizedState}function ii(a,b,c,d){var e=Th();Q.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction ji(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==R){var g=R.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}Q.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function ki(a,b){return ii(8390656,8,a,b)}function $h(a,b){return ji(2048,8,a,b)}function li(a,b){return ji(4,2,a,b)}function mi(a,b){return ji(4,4,a,b)}\nfunction ni(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function oi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ji(4,4,ni.bind(null,b,a),c)}function pi(){}function qi(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ri(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function si(a,b){var c=E;E=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{E=c,Gh.transition=d}}function ti(){return Uh().memoizedState}function ui(a,b,c){var d=Dg(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};vi(a)?wi(b,c):(xi(a,b,c),c=M(),a=Eg(a,d,c),null!==a&&yi(a,b,d))}\nfunction gi(a,b,c){var d=Dg(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(vi(a))wi(b,e);else{xi(a,b,e);var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(Ce(h,g))return}catch(k){}finally{}c=M();a=Eg(a,d,c);null!==a&&yi(a,b,d)}}function vi(a){var b=a.alternate;return a===Q||null!==b&&b===Q}\nfunction wi(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function xi(a,b,c){null!==J&&0!==(a.mode&1)&&0===(K&2)?(a=b.interleaved,null===a?(c.next=c,null===qg?qg=[b]:qg.push(b)):(c.next=a.next,a.next=c),b.interleaved=c):(a=b.pending,null===a?c.next=c:(c.next=a.next,a.next=c),b.pending=c)}function yi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;yc(a,c)}}\nvar Rh={readContext:pg,useCallback:U,useContext:U,useEffect:U,useImperativeHandle:U,useInsertionEffect:U,useLayoutEffect:U,useMemo:U,useReducer:U,useRef:U,useState:U,useDebugValue:U,useDeferredValue:U,useTransition:U,useMutableSource:U,useSyncExternalStore:U,useId:U,unstable_isNewReconciler:!1},Oh={readContext:pg,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:pg,useEffect:ki,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ii(4194308,\n4,ni.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ii(4194308,4,a,b)},useInsertionEffect:function(a,b){return ii(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=ui.bind(null,Q,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:fi,useDebugValue:pi,useDeferredValue:function(a){var b=fi(a),c=b[0],d=b[1];ki(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=fi(!1),b=a[0];a=si.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=Q,e=Th();if(N){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===J)throw Error(p(349));\n0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;ki(ai.bind(null,d,f,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=J.identifierPrefix;if(N){var c=Sg;var d=Rg;c=(d&~(1<<32-lc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:pg,useCallback:qi,useContext:pg,useEffect:$h,useImperativeHandle:oi,\nuseInsertionEffect:li,useLayoutEffect:mi,useMemo:ri,useReducer:Wh,useRef:hi,useState:function(){return Wh(Vh)},useDebugValue:pi,useDeferredValue:function(a){var b=Wh(Vh),c=b[0],d=b[1];$h(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:ti,unstable_isNewReconciler:!1},Qh={readContext:pg,useCallback:qi,useContext:pg,useEffect:$h,\nuseImperativeHandle:oi,useInsertionEffect:li,useLayoutEffect:mi,useMemo:ri,useReducer:Xh,useRef:hi,useState:function(){return Xh(Vh)},useDebugValue:pi,useDeferredValue:function(a){var b=Xh(Vh),c=b[0],d=b[1];$h(function(){var b=Gh.transition;Gh.transition={};try{d(a)}finally{Gh.transition=b}},[a]);return c},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:ti,unstable_isNewReconciler:!1};\nfunction zi(a,b){try{var c=\"\",d=b;do c+=Na(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ai(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Bi=\"function\"===typeof WeakMap?WeakMap:Map;function Ci(a,b,c){c=ug(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Di||(Di=!0,Ei=d);Ai(a,b)};return c}\nfunction Fi(a,b,c){c=ug(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Ai(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Ai(a,b);\"function\"!==typeof d&&(null===Gi?Gi=new Set([this]):Gi.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Hi(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Bi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ii.bind(null,a,b,c),b.then(a,a))}function Ji(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Ki(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ug(-1,1),b.tag=2,vg(c,b))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Li,Mi,Ni,Oi;\nLi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Mi=function(){};\nNi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Wa(a,e);d=Wa(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=db(a,e);d=db(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=wf)}rb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(da.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(da.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&F(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Oi=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Pi(a,b){if(!N)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction V(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Qi(a,b,c){var d=b.pendingProps;Wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return V(b),null;case 1:return Tf(b.type)&&Uf(),V(b),null;case 3:d=b.stateNode;zh();G(Qf);G(I);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)fh(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==Zg&&(Ri(Zg),Zg=null));Mi(a,b);V(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Ni(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));V(b);return null}a=xh(uh.current);if(fh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[If]=b;d[Jf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":F(\"cancel\",d);F(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<ff.length;e++)F(ff[e],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",\nd);F(\"load\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Xa(d,f);F(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};F(\"invalid\",d);break;case \"textarea\":eb(d,f),F(\"invalid\",d)}rb(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(vf(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(vf(d.textContent,h,a),e=[\"children\",\"\"+h]):da.hasOwnProperty(g)&&null!=h&&\"onScroll\"===\ng&&F(\"scroll\",d)}switch(c){case \"input\":Ta(d);ab(d,f,!0);break;case \"textarea\":Ta(d);gb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=wf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=hb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):\n(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[If]=b;a[Jf]=d;Li(a,b,!1,!1);b.stateNode=a;a:{g=sb(c,d);switch(c){case \"dialog\":F(\"cancel\",a);F(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":F(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<ff.length;e++)F(ff[e],a);e=d;break;case \"source\":F(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);e=d;break;case \"details\":F(\"toggle\",\na);e=d;break;case \"input\":Xa(a,d);e=Wa(a,d);F(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});F(\"invalid\",a);break;case \"textarea\":eb(a,d);e=db(a,d);F(\"invalid\",a);break;default:e=d}rb(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?pb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&kb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&lb(a,k):\"number\"===typeof k&&lb(a,\n\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(da.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&F(\"scroll\",a):null!=k&&ra(a,f,k,g))}switch(c){case \"input\":Ta(a);ab(a,d,!1);break;case \"textarea\":Ta(a);gb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Qa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?cb(a,!!d.multiple,f,!1):null!=d.defaultValue&&cb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&\n(a.onclick=wf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}V(b);return null;case 6:if(a&&null!=b.stateNode)Oi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(fh(b)){d=b.stateNode;c=b.memoizedProps;d[If]=b;if(f=d.nodeValue!==c)if(a=Xg,null!==a)switch(g=0!==(a.mode&1),a.tag){case 3:vf(d.nodeValue,\nc,g);break;case 5:!0!==a.memoizedProps[void 0]&&vf(d.nodeValue,c,g)}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[If]=b,b.stateNode=d}V(b);return null;case 13:G(P);d=b.memoizedState;if(N&&null!==Yg&&0!==(b.mode&1)&&0===(b.flags&128)){for(d=Yg;d;)d=Ff(d.nextSibling);gh();b.flags|=98560;return b}if(null!==d&&null!==d.dehydrated){d=fh(b);if(null===a){if(!d)throw Error(p(318));d=b.memoizedState;d=null!==d?d.dehydrated:null;if(!d)throw Error(p(317));d[If]=b}else gh(),0===\n(b.flags&128)&&(b.memoizedState=null),b.flags|=4;V(b);return null}null!==Zg&&(Ri(Zg),Zg=null);if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;c=!1;null===a?fh(b):c=null!==a.memoizedState;d&&!c&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(P.current&1)?0===W&&(W=3):Si()));null!==b.updateQueue&&(b.flags|=4);V(b);return null;case 4:return zh(),Mi(a,b),null===a&&nf(b.stateNode.containerInfo),V(b),null;case 10:return lg(b.type._context),V(b),null;case 17:return Tf(b.type)&&Uf(),V(b),null;case 19:G(P);\nf=b.memoizedState;if(null===f)return V(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Pi(f,!1);else{if(0!==W||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Pi(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,\nf.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;H(P,P.current&1|2);return b.child}a=a.sibling}null!==f.tail&&D()>Ti&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,\nnull!==c&&(b.updateQueue=c,b.flags|=4),Pi(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!N)return V(b),null}else 2*D()-f.renderingStartTime>Ti&&1073741824!==c&&(b.flags|=128,d=!0,Pi(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=b,f.tail=b.sibling,f.renderingStartTime=D(),b.sibling=null,c=P.current,H(P,d?c&1|2:c&1),b;V(b);return null;case 22:case 23:return Ui(),d=null!==\nb.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(Vi&1073741824)&&(V(b),b.subtreeFlags&6&&(b.flags|=8192)):V(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}var Wi=sa.ReactCurrentOwner,og=!1;function Xi(a,b,c,d){b.child=null===a?sh(b,null,c,d):rh(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ng(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&c&&Vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=oh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:De;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=mh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a&&De(a.memoizedProps,d)&&a.ref===b.ref)if(og=!1,0!==(a.lanes&e))0!==(a.flags&131072)&&(og=!0);else return b.lanes=a.lanes,Zi(a,b,e);return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null},H(ej,Vi),Vi|=c;else if(0!==(c&1073741824))b.memoizedState={baseLanes:0,cachePool:null},d=null!==f?f.baseLanes:c,H(ej,Vi),Vi|=d;else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null},b.updateQueue=null,H(ej,Vi),Vi|=a,null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):\nd=c,H(ej,Vi),Vi|=d;Xi(a,b,e,c);return b.child}function fj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Tf(c)?Rf:I.current;f=Sf(b,f);ng(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!og)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);N&&d&&Vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction gj(a,b,c,d,e){if(Tf(c)){var f=!0;Xf(b)}else f=!1;ng(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Hg(b,c,d),Jg(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=pg(l):(l=Tf(c)?Rf:I.current,l=Sf(b,l));var m=c.getDerivedStateFromProps,w=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;w||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ig(b,g,d,l);rg=!1;var u=b.memoizedState;g.state=u;yg(b,d,g,e);k=b.memoizedState;h!==d||u!==k||Qf.current||rg?(\"function\"===typeof m&&(Cg(b,c,m,d),k=b.memoizedState),(h=rg||Gg(b,c,h,d,u,k,l))?(w||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4194308)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;tg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:fg(b.type,h);g.props=l;w=b.pendingProps;u=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=pg(k):(k=Tf(c)?Rf:I.current,k=Sf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===\ntypeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==w||u!==k)&&Ig(b,g,d,k);rg=!1;u=b.memoizedState;g.state=u;yg(b,d,g,e);var n=b.memoizedState;h!==w||u!==n||Qf.current||rg?(\"function\"===typeof y&&(Cg(b,c,y,d),n=b.memoizedState),(l=rg||Gg(b,c,l,d,u,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&\ng.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=\nk,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&u===a.memoizedState||(b.flags|=1024),d=!1)}return hj(a,b,c,d,f,e)}\nfunction hj(a,b,c,d,e,f){fj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&Yf(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=rh(b,a.child,null,f),b.child=rh(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&Yf(b,c,!0);return b.child}function ij(a){var b=a.stateNode;b.pendingContext?Vf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Vf(a,b.context,!1);yh(a,b.containerInfo)}\nfunction jj(a,b,c,d,e){gh();hh(e);b.flags|=256;Xi(a,b,c,d);return b.child}var kj={dehydrated:null,treeContext:null,retryLane:0};function lj(a){return{baseLanes:a,cachePool:null}}\nfunction mj(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;H(P,e&1);if(null===a){dh(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;e=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,e={mode:\"hidden\",children:e},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ne):f=nj(e,d,0,null),a=qh(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=lj(c),b.memoizedState=kj,a):oj(b,e)}e=a.memoizedState;if(null!==e){h=e.dehydrated;if(null!==h){if(g){if(b.flags&256)return b.flags&=-257,pj(a,b,c,Error(p(422)));if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=nj({mode:\"visible\",children:d.children},e,0,null);f=qh(f,e,c,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&rh(b,a.child,\nnull,c);b.child.memoizedState=lj(c);b.memoizedState=kj;return f}if(0===(b.mode&1))b=pj(a,b,c,null);else if(\"$!\"===h.data)b=pj(a,b,c,Error(p(419)));else if(d=0!==(c&a.childLanes),og||d){d=J;if(null!==d){switch(c&-c){case 4:f=2;break;case 16:f=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=\n268435456;break;default:f=0}d=0!==(f&(d.suspendedLanes|c))?0:f;0!==d&&d!==e.retryLane&&(e.retryLane=d,Eg(a,d,-1))}Si();b=pj(a,b,c,Error(p(421)))}else\"$?\"===h.data?(b.flags|=128,b.child=a.child,b=qj.bind(null,a),h._reactRetry=b,b=null):(c=e.treeContext,Yg=Ff(h.nextSibling),Xg=b,N=!0,Zg=null,null!==c&&(Og[Pg++]=Rg,Og[Pg++]=Sg,Og[Pg++]=Qg,Rg=c.id,Sg=c.overflow,Qg=b),b=oj(b,b.pendingProps.children),b.flags|=4096);return b}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,\nf.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=rj(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?lj(c):{baseLanes:e.baseLanes|c,cachePool:null},f.childLanes=a.childLanes&~c,b.memoizedState=kj,d;c=sj(a,b,d.children,c);b.memoizedState=null;return c}\nfunction oj(a,b){b=nj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){var e=a.child;a=e.sibling;c=mh(e,{mode:\"visible\",children:c});0===(b.mode&1)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(d=b.deletions,null===d?(b.deletions=[a],b.flags|=16):d.push(a));return b.child=c}\nfunction rj(a,b,c,d,e){var f=b.mode;a=a.child;var g=a.sibling,h={mode:\"hidden\",children:c};0===(f&1)&&b.child!==a?(c=b.child,c.childLanes=0,c.pendingProps=h,b.deletions=null):(c=mh(a,h),c.subtreeFlags=a.subtreeFlags&14680064);null!==g?d=mh(g,d):(d=qh(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function pj(a,b,c,d){null!==d&&hh(d);rh(b,a.child,null,c);a=oj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction tj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);mg(a.return,b,c)}function uj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction vj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&tj(a,c,b);else if(19===a.tag)tj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}H(P,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);uj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}uj(b,!0,c,null,f);break;case \"together\":uj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);zg|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=mh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=mh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction wj(a,b,c){switch(b.tag){case 3:ij(b);gh();break;case 5:Ah(b);break;case 1:Tf(b.type)&&Xf(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;H(gg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return H(P,P.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return mj(a,b,c);H(P,P.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}H(P,P.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return vj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);H(P,P.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}\nfunction xj(a,b){Wg(b);switch(b.tag){case 1:return Tf(b.type)&&Uf(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),G(Qf),G(I),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:G(P);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));gh()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return G(P),null;case 4:return zh(),null;case 10:return lg(b.type._context),null;case 22:case 23:return Ui(),\nnull;case 24:return null;default:return null}}var yj=!1,zj=!1,Aj=\"function\"===typeof WeakSet?WeakSet:Set,X=null;function Bj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){Cj(a,b,d)}else c.current=null}function Dj(a,b,c){try{c()}catch(d){Cj(a,b,d)}}var Ej=!1;\nfunction Fj(a,b){a=He();if(Ie(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(O){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,w=a,u=null;b:for(;;){for(var y;;){w!==c||0!==e&&3!==w.nodeType||(h=g+e);w!==f||0!==d&&3!==w.nodeType||(k=g+d);3===w.nodeType&&(g+=w.nodeValue.length);\nif(null===(y=w.firstChild))break;u=w;w=y}for(;;){if(w===a)break b;u===c&&++l===e&&(h=g);u===f&&++m===d&&(k=g);if(null!==(y=w.nextSibling))break;w=u;u=w.parentNode}w=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;xf={focusedElem:a,selectionRange:c};for(X=b;null!==X;)if(b=X,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,X=a;else for(;null!==X;){b=X;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;case 1:if(null!==\nn){var v=n.memoizedProps,C=n.memoizedState,t=b.stateNode,r=t.getSnapshotBeforeUpdate(b.elementType===b.type?v:fg(b.type,v),C);t.__reactInternalSnapshotBeforeUpdate=r}break;case 3:var x=b.stateNode.containerInfo;if(1===x.nodeType)x.textContent=\"\";else if(9===x.nodeType){var B=x.body;null!=B&&(B.textContent=\"\")}break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(O){Cj(b,b.return,O)}a=b.sibling;if(null!==a){a.return=b.return;X=a;break}X=b.return}n=Ej;Ej=!1;return n}\nfunction Gj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Dj(b,c,f)}e=e.next}while(e!==d)}}function Hj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Ij(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Jj(a,b,c){if(ic&&\"function\"===typeof ic.onCommitFiberUnmount)try{ic.onCommitFiberUnmount(hc,b)}catch(g){}switch(b.tag){case 0:case 11:case 14:case 15:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a=a.next;do{var e=d,f=e.destroy;e=e.tag;void 0!==f&&(0!==(e&2)?Dj(b,c,f):0!==(e&4)&&Dj(b,c,f));d=d.next}while(d!==a)}break;case 1:Bj(b,c);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(g){Cj(b,\nc,g)}break;case 5:Bj(b,c);break;case 4:Kj(a,b,c)}}function Lj(a){var b=a.alternate;null!==b&&(a.alternate=null,Lj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[If],delete b[Jf],delete b[jf],delete b[Kf],delete b[Lf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Mj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Nj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Mj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Oj(a){a:{for(var b=a.return;null!==b;){if(Mj(b))break a;b=b.return}throw Error(p(160));}var c=b;switch(c.tag){case 5:b=c.stateNode;c.flags&32&&(lb(b,\"\"),c.flags&=-33);c=Nj(a);Pj(a,c,b);break;case 3:case 4:b=c.stateNode.containerInfo;c=Nj(a);Qj(a,c,b);break;default:throw Error(p(161));}}\nfunction Qj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=wf));else if(4!==d&&(a=a.child,null!==a))for(Qj(a,b,c),a=a.sibling;null!==a;)Qj(a,b,c),a=a.sibling}\nfunction Pj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Pj(a,b,c),a=a.sibling;null!==a;)Pj(a,b,c),a=a.sibling}\nfunction Kj(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(p(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Jj(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(18===d.tag)g?(h=f,k=d.stateNode,8===h.nodeType?Ef(h.parentNode,k):1===h.nodeType&&Ef(h,k),Yc(h)):Ef(f,d.stateNode);else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Jj(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&\n(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Rj(a,b){switch(b.tag){case 0:case 11:case 14:case 15:Gj(3,b,b.return);Hj(3,b);Gj(5,b,b.return);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Ya(c,d);sb(a,e);b=sb(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?pb(c,h):\"dangerouslySetInnerHTML\"===g?kb(c,h):\"children\"===g?lb(c,h):ra(c,g,h,b)}switch(a){case \"input\":Za(c,\nd);break;case \"textarea\":fb(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?cb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?cb(c,!!d.multiple,d.defaultValue,!0):cb(c,!!d.multiple,d.multiple?[]:\"\",!1))}c[Jf]=d}}return;case 6:if(null===b.stateNode)throw Error(p(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:null!==a&&a.memoizedState.isDehydrated&&Yc(b.stateNode.containerInfo);return;case 12:return;case 13:Sj(b);\nreturn;case 19:Sj(b);return;case 17:return}throw Error(p(163));}function Sj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Aj);b.forEach(function(b){var d=Tj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction Uj(a,b){for(X=b;null!==X;){b=X;var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{Kj(a,e,b);var f=e.alternate;null!==f&&(f.return=null);e.return=null}catch(L){Cj(e,b,L)}}c=b.child;if(0!==(b.subtreeFlags&12854)&&null!==c)c.return=b,X=c;else for(;null!==X;){b=X;try{var g=b.flags;g&32&&lb(b.stateNode,\"\");if(g&512){var h=b.alternate;if(null!==h){var k=h.ref;null!==k&&(\"function\"===typeof k?k(null):k.current=null)}}if(g&8192)switch(b.tag){case 13:if(null!==b.memoizedState){var l=\nb.alternate;if(null===l||null===l.memoizedState)Vj=D()}break;case 22:var m=null!==b.memoizedState,w=b.alternate,u=null!==w&&null!==w.memoizedState;c=b;a:{d=c;e=m;for(var y=null,n=d;;){if(5===n.tag){if(null===y){y=n;var v=n.stateNode;if(e){var C=v.style;\"function\"===typeof C.setProperty?C.setProperty(\"display\",\"none\",\"important\"):C.display=\"none\"}else{var t=n.stateNode,r=n.memoizedProps.style,x=void 0!==r&&null!==r&&r.hasOwnProperty(\"display\")?r.display:null;t.style.display=ob(\"display\",x)}}}else if(6===\nn.tag)null===y&&(n.stateNode.nodeValue=e?\"\":n.memoizedProps);else if((22!==n.tag&&23!==n.tag||null===n.memoizedState||n===d)&&null!==n.child){n.child.return=n;n=n.child;continue}if(n===d)break;for(;null===n.sibling;){if(null===n.return||n.return===d)break a;y===n&&(y=null);n=n.return}y===n&&(y=null);n.sibling.return=n.return;n=n.sibling}}if(m&&!u&&0!==(c.mode&1)){X=c;for(var B=c.child;null!==B;){for(c=X=B;null!==X;){d=X;var O=d.child;switch(d.tag){case 0:case 11:case 14:case 15:Gj(4,d,d.return);break;\ncase 1:Bj(d,d.return);var T=d.stateNode;if(\"function\"===typeof T.componentWillUnmount){var za=d.return;try{T.props=d.memoizedProps,T.state=d.memoizedState,T.componentWillUnmount()}catch(L){Cj(d,za,L)}}break;case 5:Bj(d,d.return);break;case 22:if(null!==d.memoizedState){Wj(c);continue}}null!==O?(O.return=d,X=O):Wj(c)}B=B.sibling}}}switch(g&4102){case 2:Oj(b);b.flags&=-3;break;case 6:Oj(b);b.flags&=-3;Rj(b.alternate,b);break;case 4096:b.flags&=-4097;break;case 4100:b.flags&=-4097;Rj(b.alternate,b);\nbreak;case 4:Rj(b.alternate,b)}}catch(L){Cj(b,b.return,L)}c=b.sibling;if(null!==c){c.return=b.return;X=c;break}X=b.return}}}function Xj(a,b,c){X=a;Yj(a,b,c)}\nfunction Yj(a,b,c){for(var d=0!==(a.mode&1);null!==X;){var e=X,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||yj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||zj;h=yj;var l=zj;yj=g;if((zj=k)&&!l)for(X=e;null!==X;)g=X,k=g.child,22===g.tag&&null!==g.memoizedState?Zj(e):null!==k?(k.return=g,X=k):Zj(e);for(;null!==f;)X=f,Yj(f,b,c),f=f.sibling;X=e;yj=h;zj=l}ak(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,X=f):ak(a,b,c)}}\nfunction ak(a){for(;null!==X;){var b=X;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:zj||Hj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!zj)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:fg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&Ag(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}Ag(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var w=m.dehydrated;null!==w&&Yc(w)}}}break;case 19:case 17:case 21:case 22:case 23:break;\ndefault:throw Error(p(163));}zj||b.flags&512&&Ij(b)}catch(u){Cj(b,b.return,u)}}if(b===a){X=null;break}c=b.sibling;if(null!==c){c.return=b.return;X=c;break}X=b.return}}function Wj(a){for(;null!==X;){var b=X;if(b===a){X=null;break}var c=b.sibling;if(null!==c){c.return=b.return;X=c;break}X=b.return}}\nfunction Zj(a){for(;null!==X;){var b=X;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Hj(4,b)}catch(k){Cj(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){Cj(b,e,k)}}var f=b.return;try{Ij(b)}catch(k){Cj(b,f,k)}break;case 5:var g=b.return;try{Ij(b)}catch(k){Cj(b,g,k)}}}catch(k){Cj(b,b.return,k)}if(b===a){X=null;break}var h=b.sibling;if(null!==h){h.return=b.return;X=h;break}X=b.return}}\nvar bk=Math.ceil,ck=sa.ReactCurrentDispatcher,dk=sa.ReactCurrentOwner,ek=sa.ReactCurrentBatchConfig,K=0,J=null,Y=null,Z=0,Vi=0,ej=Of(0),W=0,fk=null,zg=0,gk=0,hk=0,ik=null,jk=null,Vj=0,Ti=Infinity,Di=!1,Ei=null,Gi=null,kk=!1,lk=null,mk=0,nk=0,ok=null,pk=-1,qk=0;function M(){return 0!==(K&6)?D():-1!==pk?pk:pk=D()}\nfunction Dg(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==eg.transition)return 0===qk&&(a=oc,oc<<=1,0===(oc&4194240)&&(oc=64),qk=a),qk;a=E;if(0!==a)return a;a=window.event;a=void 0===a?16:ed(a.type);return a}function Eg(a,b,c){if(50<nk)throw nk=0,ok=null,Error(p(185));var d=rk(a,b);if(null===d)return null;wc(d,b,c);if(0===(K&2)||d!==J)d===J&&(0===(K&2)&&(gk|=b),4===W&&sk(d,Z)),tk(d,c),1===b&&0===K&&0===(a.mode&1)&&(Ti=D()+500,$f&&dg());return d}\nfunction rk(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction tk(a,b){var c=a.callbackNode;tc(a,b);var d=rc(a,a===J?Z:0);if(0===d)null!==c&&Zb(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&Zb(c);if(1===b)0===a.tag?cg(uk.bind(null,a)):bg(uk.bind(null,a)),Df(function(){0===K&&dg()}),c=null;else{switch(zc(d)){case 1:c=cc;break;case 4:c=dc;break;case 16:c=ec;break;case 536870912:c=gc;break;default:c=ec}c=vk(c,wk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction wk(a,b){pk=-1;qk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(xk()&&a.callbackNode!==c)return null;var d=rc(a,a===J?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=yk(a,d);else{b=d;var e=K;K|=2;var f=zk();if(J!==a||Z!==b)Ti=D()+500,Ak(a,b);do try{Bk();break}catch(h){Ck(a,h)}while(1);kg();ck.current=f;K=e;null!==Y?b=0:(J=null,Z=0,b=W)}if(0!==b){2===b&&(e=uc(a),0!==e&&(d=e,b=Dk(a,e)));if(1===b)throw c=fk,Ak(a,0),sk(a,d),tk(a,D()),c;if(6===b)sk(a,d);else{e=\na.current.alternate;if(0===(d&30)&&!Ek(e)&&(b=yk(a,d),2===b&&(f=uc(a),0!==f&&(d=f,b=Dk(a,f))),1===b))throw c=fk,Ak(a,0),sk(a,d),tk(a,D()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Fk(a,jk);break;case 3:sk(a,d);if((d&130023424)===d&&(b=Vj+500-D(),10<b)){if(0!==rc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){M();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=zf(Fk.bind(null,a,jk),b);break}Fk(a,jk);break;case 4:sk(a,d);if((d&4194240)===d)break;b=\na.eventTimes;for(e=-1;0<d;){var g=31-lc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=D()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bk(d/1960))-d;if(10<d){a.timeoutHandle=zf(Fk.bind(null,a,jk),d);break}Fk(a,jk);break;case 5:Fk(a,jk);break;default:throw Error(p(329));}}}tk(a,D());return a.callbackNode===c?wk.bind(null,a):null}function Dk(a,b){var c=ik;a.current.memoizedState.isDehydrated&&(Ak(a,b).flags|=256);a=yk(a,b);2!==a&&(b=jk,jk=c,null!==b&&Ri(b));return a}\nfunction Ri(a){null===jk?jk=a:jk.push.apply(jk,a)}function Ek(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!Ce(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction sk(a,b){b&=~hk;b&=~gk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-lc(b),d=1<<c;a[c]=-1;b&=~d}}function uk(a){if(0!==(K&6))throw Error(p(327));xk();var b=rc(a,0);if(0===(b&1))return tk(a,D()),null;var c=yk(a,b);if(0!==a.tag&&2===c){var d=uc(a);0!==d&&(b=d,c=Dk(a,d))}if(1===c)throw c=fk,Ak(a,0),sk(a,b),tk(a,D()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Fk(a,jk);tk(a,D());return null}\nfunction Gk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Ti=D()+500,$f&&dg())}}function Hk(a){null!==lk&&0===lk.tag&&0===(K&6)&&xk();var b=K;K|=1;var c=ek.transition,d=E;try{if(ek.transition=null,E=1,a)return a()}finally{E=d,ek.transition=c,K=b,0===(K&6)&&dg()}}function Ui(){Vi=ej.current;G(ej)}\nfunction Ak(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Af(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;Wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Uf();break;case 3:zh();G(Qf);G(I);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:G(P);break;case 19:G(P);break;case 10:lg(d.type._context);break;case 22:case 23:Ui()}c=c.return}J=a;Y=a=mh(a.current,null);Z=Vi=b;W=0;fk=null;hk=gk=zg=0;jk=ik=null;if(null!==qg){for(b=\n0;b<qg.length;b++)if(c=qg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}qg=null}return a}\nfunction Ck(a,b){do{var c=Y;try{kg();Fh.current=Rh;if(Ih){for(var d=Q.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;S=R=Q=null;Jh=!1;Kh=0;dk.current=null;if(null===c||null===c.return){W=1;fk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,w=m.tag;if(0===(m.mode&1)&&(0===w||11===w||15===w)){var u=m.alternate;u?(m.updateQueue=u.updateQueue,m.memoizedState=u.memoizedState,\nm.lanes=u.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ji(g);if(null!==y){y.flags&=-257;Ki(y,g,h,f,b);y.mode&1&&Hi(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var v=new Set;v.add(k);b.updateQueue=v}else n.add(k);break a}else{if(0===(b&1)){Hi(f,l,b);Si();break a}k=Error(p(426))}}else if(N&&h.mode&1){var C=Ji(g);if(null!==C){0===(C.flags&65536)&&(C.flags|=256);Ki(C,g,h,f,b);hh(k);break a}}f=k;4!==W&&(W=2);null===ik?ik=[f]:ik.push(f);k=zi(k,h);h=g;do{switch(h.tag){case 3:h.flags|=65536;\nb&=-b;h.lanes|=b;var t=Ci(h,k,b);xg(h,t);break a;case 1:f=k;var r=h.type,x=h.stateNode;if(0===(h.flags&128)&&(\"function\"===typeof r.getDerivedStateFromError||null!==x&&\"function\"===typeof x.componentDidCatch&&(null===Gi||!Gi.has(x)))){h.flags|=65536;b&=-b;h.lanes|=b;var B=Fi(h,f,b);xg(h,B);break a}}h=h.return}while(null!==h)}Ik(c)}catch(O){b=O;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function zk(){var a=ck.current;ck.current=Rh;return null===a?Rh:a}\nfunction Si(){if(0===W||3===W||2===W)W=4;null===J||0===(zg&268435455)&&0===(gk&268435455)||sk(J,Z)}function yk(a,b){var c=K;K|=2;var d=zk();J===a&&Z===b||Ak(a,b);do try{Jk();break}catch(e){Ck(a,e)}while(1);kg();K=c;ck.current=d;if(null!==Y)throw Error(p(261));J=null;Z=0;return W}function Jk(){for(;null!==Y;)Kk(Y)}function Bk(){for(;null!==Y&&!$b();)Kk(Y)}function Kk(a){var b=Lk(a.alternate,a,Vi);a.memoizedProps=a.pendingProps;null===b?Ik(a):Y=b;dk.current=null}\nfunction Ik(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Qi(c,b,Vi),null!==c){Y=c;return}}else{c=xj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{W=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===W&&(W=5)}function Fk(a,b){var c=E,d=ek.transition;try{ek.transition=null,E=1,Mk(a,b,c)}finally{ek.transition=d,E=c}return null}\nfunction Mk(a,b,c){do xk();while(null!==lk);if(0!==(K&6))throw Error(p(327));var d=a.finishedWork,e=a.finishedLanes;if(null===d)return null;a.finishedWork=null;a.finishedLanes=0;if(d===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=d.lanes|d.childLanes;xc(a,f);a===J&&(Y=J=null,Z=0);0===(d.subtreeFlags&2064)&&0===(d.flags&2064)||kk||(kk=!0,vk(ec,function(){xk();return null}));f=0!==(d.flags&15990);if(0!==(d.subtreeFlags&15990)||f){f=ek.transition;ek.transition=null;var g=\nE;E=1;var h=K;K|=4;dk.current=null;Fj(a,d);Uj(a,d,e);Je(xf);xf=null;a.current=d;Xj(d,a,e);ac();K=h;E=g;ek.transition=f}else a.current=d;kk&&(kk=!1,lk=a,mk=e);f=a.pendingLanes;0===f&&(Gi=null);jc(d.stateNode,c);tk(a,D());if(null!==b)for(c=a.onRecoverableError,d=0;d<b.length;d++)c(b[d]);if(Di)throw Di=!1,a=Ei,Ei=null,a;0!==(mk&1)&&0!==a.tag&&xk();f=a.pendingLanes;0!==(f&1)?a===ok?nk++:(nk=0,ok=a):nk=0;dg();return null}\nfunction xk(){if(null!==lk){var a=zc(mk),b=ek.transition,c=E;try{ek.transition=null;E=16>a?16:a;if(null===lk)var d=!1;else{a=lk;lk=null;mk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(X=a.current;null!==X;){var f=X,g=f.child;if(0!==(X.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(X=l;null!==X;){var m=X;switch(m.tag){case 0:case 11:case 15:Gj(8,m,f)}var w=m.child;if(null!==w)w.return=m,X=w;else for(;null!==X;){m=X;var u=m.sibling,y=m.return;Lj(m);if(m===\nl){X=null;break}if(null!==u){u.return=y;X=u;break}X=y}}}var n=f.alternate;if(null!==n){var v=n.child;if(null!==v){n.child=null;do{var C=v.sibling;v.sibling=null;v=C}while(null!==v)}}X=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,X=g;else b:for(;null!==X;){f=X;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Gj(9,f,f.return)}var t=f.sibling;if(null!==t){t.return=f.return;X=t;break b}X=f.return}}var r=a.current;for(X=r;null!==X;){g=X;var x=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nx)x.return=g,X=x;else b:for(g=r;null!==X;){h=X;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Hj(9,h)}}catch(O){Cj(h,h.return,O)}if(h===g){X=null;break b}var B=h.sibling;if(null!==B){B.return=h.return;X=B;break b}X=h.return}}K=e;dg();if(ic&&\"function\"===typeof ic.onPostCommitFiberRoot)try{ic.onPostCommitFiberRoot(hc,a)}catch(O){}d=!0}return d}finally{E=c,ek.transition=b}}return!1}function Nk(a,b,c){b=zi(c,b);b=Ci(a,b,1);vg(a,b);b=M();a=rk(a,1);null!==a&&(wc(a,1,b),tk(a,b))}\nfunction Cj(a,b,c){if(3===a.tag)Nk(a,a,c);else for(;null!==b;){if(3===b.tag){Nk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Gi||!Gi.has(d))){a=zi(c,a);a=Fi(b,a,1);vg(b,a);a=M();b=rk(b,1);null!==b&&(wc(b,1,a),tk(b,a));break}}b=b.return}}\nfunction Ii(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=M();a.pingedLanes|=a.suspendedLanes&c;J===a&&(Z&c)===c&&(4===W||3===W&&(Z&130023424)===Z&&500>D()-Vj?Ak(a,0):hk|=c);tk(a,b)}function Ok(a,b){0===b&&(0===(a.mode&1)?b=1:(b=pc,pc<<=1,0===(pc&130023424)&&(pc=4194304)));var c=M();a=rk(a,b);null!==a&&(wc(a,b,c),tk(a,c))}function qj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Ok(a,c)}\nfunction Tj(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Ok(a,c)}var Lk;\nLk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Qf.current)og=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return og=!1,wj(a,b,c);og=0!==(a.flags&131072)?!0:!1}else og=!1,N&&0!==(b.flags&1048576)&&Ug(b,Ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;var e=Sf(b,I.current);ng(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?\n(b.tag=1,b.memoizedState=null,b.updateQueue=null,Tf(d)?(f=!0,Xf(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,sg(b),e.updater=Fg,b.stateNode=e,e._reactInternals=b,Jg(b,d,a,c),b=hj(null,b,d,!0,f,c)):(b.tag=0,N&&f&&Vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Pk(d);a=fg(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=gj(null,b,\nd,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,fg(d.type,a),c);break a}throw Error(p(306,d,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),gj(a,b,d,e,c);case 3:a:{ij(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;tg(a,b);yg(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,\ncache:g.cache,transitions:g.transitions},b.updateQueue.baseState=f,b.memoizedState=f,b.flags&256){e=Error(p(423));b=jj(a,b,d,c,e);break a}else if(d!==e){e=Error(p(424));b=jj(a,b,d,c,e);break a}else for(Yg=Ff(b.stateNode.containerInfo.firstChild),Xg=b,N=!0,Zg=null,c=sh(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{gh();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&dh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,\nyf(d,e)?g=null:null!==f&&yf(d,f)&&(b.flags|=32),fj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&dh(b),null;case 13:return mj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=rh(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=\nb.type._context;e=b.pendingProps;f=b.memoizedProps;g=e.value;H(gg,d._currentValue);d._currentValue=g;if(null!==f)if(Ce(f.value,g)){if(f.children===e.children&&!Qf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ug(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=\nc;k=f.alternate;null!==k&&(k.lanes|=c);mg(f.return,c,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);mg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,\nng(b,c),e=pg(e),d=d(e),b.flags|=1,Xi(a,b,d,c),b.child;case 14:return d=b.type,e=fg(d,b.pendingProps),e=fg(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:fg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Tf(d)?(a=!0,Xf(b)):a=!1,ng(b,c),Hg(b,d,e),Jg(b,d,e,c),hj(null,b,d,!0,a,c);case 19:return vj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function vk(a,b){return Yb(a,b)}\nfunction Qk(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function ah(a,b,c,d){return new Qk(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Pk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Ba)return 11;if(a===Ea)return 14}return 2}\nfunction mh(a,b){var c=a.alternate;null===c?(c=ah(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction oh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case va:return qh(c.children,e,f,b);case wa:g=8;e|=8;break;case xa:return a=ah(12,c,b,e|2),a.elementType=xa,a.lanes=f,a;case Ca:return a=ah(13,c,b,e),a.elementType=Ca,a.lanes=f,a;case Da:return a=ah(19,c,b,e),a.elementType=Da,a.lanes=f,a;case Ga:return nj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case Aa:g=9;break a;case Ba:g=11;\nbreak a;case Ea:g=14;break a;case Fa:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=ah(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function qh(a,b,c,d){a=ah(7,a,d,b);a.lanes=c;return a}function nj(a,b,c,d){a=ah(22,a,d,b);a.elementType=Ga;a.lanes=c;a.stateNode={};return a}function nh(a,b,c){a=ah(6,a,null,b);a.lanes=c;return a}\nfunction ph(a,b,c){b=ah(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction Rk(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=vc(0);this.expirationTimes=vc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=vc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function Sk(a,b,c,d,e,f,g,h,k){a=new Rk(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=ah(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null};sg(f);return a}function Tk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ua,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction Uk(a){if(!a)return Pf;a=a._reactInternals;a:{if(Sb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Tf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Tf(c))return Wf(a,c,b)}return b}\nfunction Vk(a,b,c,d,e,f,g,h,k){a=Sk(c,d,!0,a,e,f,g,h,k);a.context=Uk(null);c=a.current;d=M();e=Dg(c);f=ug(d,e);f.callback=void 0!==b&&null!==b?b:null;vg(c,f);a.current.lanes=e;wc(a,e,d);tk(a,d);return a}function Wk(a,b,c,d){var e=b.current,f=M(),g=Dg(e);c=Uk(c);null===b.context?b.context=c:b.pendingContext=c;b=ug(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);vg(e,b);a=Eg(e,g,f);null!==a&&wg(a,e,g);return g}\nfunction Xk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Yk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function Zk(a,b){Yk(a,b);(a=a.alternate)&&Yk(a,b)}function $k(){return null}var al=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function bl(a){this._internalRoot=a}\ncl.prototype.render=bl.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));Wk(a,b,null,null)};cl.prototype.unmount=bl.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Hk(function(){Wk(null,a,null,null)});b[pf]=null}};function cl(a){this._internalRoot=a}\ncl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Dc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Mc.length&&0!==b&&b<Mc[c].priority;c++);Mc.splice(c,0,a);0===c&&Rc(a)}};function dl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function el(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function fl(){}\nfunction gl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=Xk(g);f.call(a)}}var g=Vk(b,d,a,0,null,!1,!1,\"\",fl);a._reactRootContainer=g;a[pf]=g.current;nf(8===a.nodeType?a.parentNode:a);Hk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=Xk(k);h.call(a)}}var k=Sk(a,0,!1,null,null,!1,!1,\"\",fl);a._reactRootContainer=k;a[pf]=k.current;nf(8===a.nodeType?a.parentNode:a);Hk(function(){Wk(b,k,c,d)});return k}\nfunction hl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=Xk(g);h.call(a)}}Wk(b,g,a,e)}else g=gl(c,b,a,e,d);return Xk(g)}Ac=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=qc(b.pendingLanes);0!==c&&(yc(b,c|1),tk(b,D()),0===(K&6)&&(Ti=D()+500,dg()))}break;case 13:var d=M();Hk(function(){return Eg(a,1,d)});Zk(a,1)}};Bc=function(a){if(13===a.tag){var b=M();Eg(a,134217728,b);Zk(a,134217728)}};\nCc=function(a){if(13===a.tag){var b=M(),c=Dg(a);Eg(a,c,b);Zk(a,c)}};Dc=function(){return E};Ec=function(a,b){var c=E;try{return E=a,b()}finally{E=c}};\nvb=function(a,b,c){switch(b){case \"input\":Za(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Ab(d);if(!e)throw Error(p(90));Ua(d);Za(d,e)}}}break;case \"textarea\":fb(a,c);break;case \"select\":b=c.value,null!=b&&cb(a,!!c.multiple,b,!1)}};Db=Gk;Eb=Hk;\nvar il={usingClientEntryPoint:!1,Events:[zb,pe,Ab,Bb,Cb,Gk]},jl={findFiberByHostInstance:Sc,bundleType:0,version:\"18.0.0-fc46dba67-20220329\",rendererPackageName:\"react-dom\"};\nvar kl={bundleType:jl.bundleType,version:jl.version,rendererPackageName:jl.rendererPackageName,rendererConfig:jl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:sa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Wb(a);return null===a?null:a.stateNode},findFiberByHostInstance:jl.findFiberByHostInstance||\n$k,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.0.0-fc46dba67-20220329\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ll=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ll.isDisabled&&ll.supportsFiber)try{hc=ll.inject(kl),ic=ll}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=il;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!dl(b))throw Error(p(200));return Tk(a,b,null,c)};exports.createRoot=function(a,b){if(!dl(a))throw Error(p(299));var c=!1,d=\"\",e=al;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=Sk(a,1,!1,null,null,c,!1,d,e);a[pf]=b.current;nf(8===a.nodeType?a.parentNode:a);return new bl(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Wb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Hk(a)};exports.hydrate=function(a,b,c){if(!el(b))throw Error(p(200));return hl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!dl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=al;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=Vk(b,null,a,1,null!=c?c:null,e,!1,f,g);a[pf]=b.current;nf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new cl(b)};exports.render=function(a,b,c){if(!el(b))throw Error(p(200));return hl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!el(a))throw Error(p(40));return a._reactRootContainer?(Hk(function(){hl(null,null,a,!1,function(){a._reactRootContainer=null;a[pf]=null})}),!0):!1};exports.unstable_batchedUpdates=Gk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!el(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return hl(a,b,c,!1,d)};exports.version=\"18.0.0-fc46dba67-20220329\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","if (process.env.NODE_ENV !== 'development') {\n module.exports = {\n ReactQueryDevtools: function () {\n return null\n },\n ReactQueryDevtoolsPanel: function () {\n return null\n },\n }\n} else {\n module.exports = require('./development')\n}\n","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};","// @flow\n\nvar React = require(\"react\");\n\n// topbar require window, so here is an universal workaround\nvar topbar =\n typeof window === \"undefined\"\n ? {\n show: function() {},\n hide: function() {},\n config: function() {}\n }\n : require(\"topbar\");\n\nvar semaphore /*: number*/ = 0;\n\n/*::\ntype Props = {\n topbar?: typeof topbar\n};\n*/\n\nvar getTopBar = function(props /*: Props*/) /*: typeof topbar*/ {\n return props.topbar || topbar;\n};\n\nfunction TopBar(props /*: Props */) {\n React.useEffect(function() {\n if (semaphore === 0) {\n getTopBar(props).show();\n }\n semaphore++;\n\n return function() {\n semaphore--;\n if (semaphore === 0) {\n getTopBar(props).hide();\n }\n };\n }, []);\n\n return null;\n}\n\nTopBar.config = topbar.config;\n\nmodule.exports = TopBar;\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.0.0-fc46dba67-20220329\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","/*! topbar 0.1.4, 2020-04-27\n * http://buunguyen.github.io/topbar\n * Copyright (c) 2019 Buu Nguyen\n * Licensed under the MIT License */\n;(function(window, document) {\n 'use strict'\n\n // https://gist.github.com/paulirish/1579671\n ;(function() {\n var lastTime = 0;\n var vendors = ['ms', 'moz', 'webkit', 'o'];\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n || window[vendors[x]+'CancelRequestAnimationFrame'];\n }\n if (!window.requestAnimationFrame)\n window.requestAnimationFrame = function(callback, element) {\n var currTime = new Date().getTime();\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n timeToCall);\n lastTime = currTime + timeToCall;\n return id;\n };\n if (!window.cancelAnimationFrame)\n window.cancelAnimationFrame = function(id) {\n clearTimeout(id);\n };\n }());\n\n var canvas, progressTimerId, fadeTimerId, currentProgress, showing,\n addEvent = function(elem, type, handler) {\n if (elem.addEventListener) elem.addEventListener(type, handler, false)\n else if (elem.attachEvent) elem.attachEvent('on' + type, handler)\n else elem['on' + type] = handler\n },\n options = {\n autoRun : true,\n barThickness : 3,\n barColors : {\n '0' : 'rgba(26, 188, 156, .9)',\n '.25' : 'rgba(52, 152, 219, .9)',\n '.50' : 'rgba(241, 196, 15, .9)',\n '.75' : 'rgba(230, 126, 34, .9)',\n '1.0' : 'rgba(211, 84, 0, .9)'\n },\n shadowBlur : 10,\n shadowColor : 'rgba(0, 0, 0, .6)',\n className : null,\n },\n repaint = function() {\n canvas.width = window.innerWidth\n canvas.height = options.barThickness * 5 // need space for shadow\n\n var ctx = canvas.getContext('2d')\n ctx.shadowBlur = options.shadowBlur\n ctx.shadowColor = options.shadowColor\n\n var lineGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n for (var stop in options.barColors)\n lineGradient.addColorStop(stop, options.barColors[stop])\n ctx.lineWidth = options.barThickness\n ctx.beginPath()\n ctx.moveTo(0, options.barThickness/2)\n ctx.lineTo(Math.ceil(currentProgress * canvas.width), options.barThickness/2)\n ctx.strokeStyle = lineGradient\n ctx.stroke()\n },\n createCanvas = function() {\n canvas = document.createElement('canvas')\n var style = canvas.style\n style.position = 'fixed'\n style.top = style.left = style.right = style.margin = style.padding = 0\n style.zIndex = 100001\n style.display = 'none'\n if (options.className)\n canvas.classList.add(options.className)\n document.body.appendChild(canvas)\n addEvent(window, 'resize', repaint)\n },\n topbar = {\n config: function(opts) {\n for (var key in opts)\n if (options.hasOwnProperty(key))\n options[key] = opts[key]\n },\n show: function() {\n if (showing) return\n showing = true\n if (fadeTimerId !== null)\n window.cancelAnimationFrame(fadeTimerId)\n if (!canvas) createCanvas()\n canvas.style.opacity = 1\n canvas.style.display = 'block'\n topbar.progress(0)\n if (options.autoRun) {\n (function loop() {\n progressTimerId = window.requestAnimationFrame(loop)\n topbar.progress('+' + (.05 * Math.pow(1-Math.sqrt(currentProgress), 2)))\n })()\n }\n },\n progress: function(to) {\n if (typeof to === \"undefined\")\n return currentProgress\n if (typeof to === \"string\") {\n to = (to.indexOf('+') >= 0 || to.indexOf('-') >= 0 ? currentProgress : 0) + parseFloat(to)\n }\n currentProgress = to > 1 ? 1 : to\n repaint()\n return currentProgress\n },\n hide: function() {\n if (!showing) return\n showing = false\n if (progressTimerId != null) {\n window.cancelAnimationFrame(progressTimerId)\n progressTimerId = null\n }\n (function loop() {\n if (topbar.progress('+.1') >= 1) {\n canvas.style.opacity -= .05\n if (canvas.style.opacity <= .05) {\n canvas.style.display = 'none'\n fadeTimerId = null\n return\n }\n }\n fadeTimerId = window.requestAnimationFrame(loop)\n })()\n }\n }\n\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = topbar\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return topbar })\n } else {\n this.topbar = topbar\n }\n}).call(this, window, document)\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return {\n value: void 0,\n done: !0\n };\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable || \"\" === iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n throw new TypeError(_typeof(iterable) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"858\":\"210d7b86\",\"956\":\"3a6b7a79\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"ipsl-mgt-dashboard:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/ipsl-mgt-dashboard/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkipsl_mgt_dashboard\"] = self[\"webpackChunkipsl_mgt_dashboard\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","/*!\n * Chart.js v3.7.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _toLeftRightCenter as $, _rlookupByKey as A, getAngleFromPoint as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, _isDomSupported as K, log10 as L, _factorize as M, finiteOrDefault as N, callback as O, PI as P, _addGrace as Q, toDegrees as R, _measureText as S, TAU as T, _int16Range as U, _alignPixel as V, clipArea as W, renderText as X, unclipArea as Y, toFont as Z, _arrayUnique as _, resolve as a, _angleDiff as a$, _alignStartEnd as a0, overrides as a1, merge as a2, _capitalize as a3, descriptors as a4, isFunction as a5, _attachContext as a6, _createResolver as a7, _descriptors as a8, mergeIf as a9, restoreTextDirection as aA, noop as aB, distanceBetweenPoints as aC, _setMinAndMaxByKey as aD, niceNum as aE, almostWhole as aF, almostEquals as aG, _decimalPlaces as aH, _longestText as aI, _filterBetween as aJ, _lookup as aK, getHoverColor as aL, clone$1 as aM, _merger as aN, _mergerIf as aO, _deprecated as aP, toFontString as aQ, splineCurve as aR, splineCurveMonotone as aS, getStyle as aT, fontString as aU, toLineHeight as aV, PITAU as aW, INFINITY as aX, RAD_PER_DEG as aY, QUARTER_PI as aZ, TWO_THIRDS_PI as a_, uid as aa, debounce as ab, retinaScale as ac, clearCanvas as ad, setsEqual as ae, _elementsEqual as af, _isClickEvent as ag, _isBetween as ah, _readValueToProps as ai, _updateBezierControlPoints as aj, _computeSegments as ak, _boundSegments as al, _steppedInterpolation as am, _bezierInterpolation as an, _pointInLine as ao, _steppedLineTo as ap, _bezierCurveTo as aq, drawPoint as ar, addRoundedRectPath as as, toTRBL as at, toTRBLCorners as au, _boundSegment as av, _normalizeAngle as aw, getRtlAdapter as ax, overrideTextDirection as ay, _textX as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","/*!\n * Chart.js v3.7.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as getAngleFromPoint, C as toPadding, D as each, E as getMaximumSize, F as _getParentNode, G as readUsedSize, I as throttled, J as supportsEventListenerOptions, K as _isDomSupported, L as log10, M as _factorize, N as finiteOrDefault, O as callback, Q as _addGrace, R as toDegrees, S as _measureText, U as _int16Range, V as _alignPixel, W as clipArea, X as renderText, Y as unclipArea, Z as toFont, $ as _toLeftRightCenter, a0 as _alignStartEnd, a1 as overrides, a2 as merge, a3 as _capitalize, a4 as descriptors, a5 as isFunction, a6 as _attachContext, a7 as _createResolver, a8 as _descriptors, a9 as mergeIf, aa as uid, ab as debounce, ac as retinaScale, ad as clearCanvas, ae as setsEqual, af as _elementsEqual, ag as _isClickEvent, ah as _isBetween, ai as _readValueToProps, aj as _updateBezierControlPoints, ak as _computeSegments, al as _boundSegments, am as _steppedInterpolation, an as _bezierInterpolation, ao as _pointInLine, ap as _steppedLineTo, aq as _bezierCurveTo, ar as drawPoint, as as addRoundedRectPath, at as toTRBL, au as toTRBLCorners, av as _boundSegment, aw as _normalizeAngle, ax as getRtlAdapter, ay as overrideTextDirection, az as _textX, aA as restoreTextDirection, aB as noop, aC as distanceBetweenPoints, aD as _setMinAndMaxByKey, aE as niceNum, aF as almostWhole, aG as almostEquals, aH as _decimalPlaces, aI as _longestText, aJ as _filterBetween, aK as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const dataset = this.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const dataset = this.getDataset();\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = _isPointInArea(center, chart.chartArea, chart._minPadding);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition);\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'x', intersect: options.intersect}, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'y', intersect: options.intersect}, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.7.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: _isPointInArea(e, this.chartArea, this._minPadding)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","import React, {FC, createContext, useContext} from 'react'\nimport {WithChildren} from '../helpers'\n\nconst I18N_CONFIG_KEY = process.env.REACT_APP_I18N_CONFIG_KEY || 'i18nConfig'\n\ntype Props = {\n selectedLang: 'de' | 'en' | 'es' | 'fr' | 'ja' | 'zh'\n}\nconst initialState: Props = {\n selectedLang: 'en',\n}\n\nfunction getConfig(): Props {\n const ls = localStorage.getItem(I18N_CONFIG_KEY)\n if (ls) {\n try {\n return JSON.parse(ls) as Props\n } catch (er) {\n console.error(er)\n }\n }\n return initialState\n}\n\n// Side effect\nexport function setLanguage(lang: string) {\n localStorage.setItem(I18N_CONFIG_KEY, JSON.stringify({selectedLang: lang}))\n window.location.reload()\n}\n\nconst I18nContext = createContext<Props>(initialState)\n\nconst useLang = () => {\n return useContext(I18nContext).selectedLang\n}\n\nconst MetronicI18nProvider: FC<WithChildren> = ({children}) => {\n const lang = getConfig()\n return <I18nContext.Provider value={lang}>{children}</I18nContext.Provider>\n}\n\nexport {MetronicI18nProvider, useLang}\n","var instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n // eslint-disable-next-line\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getValue(nameSpace, obj) {\n // eslint-disable-next-line\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n // eslint-disable-next-line\n var start = obj || {};\n // eslint-disable-next-line\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\n// eslint-disable-next-line\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\n// eslint-disable-next-line\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\n// eslint-disable-next-line\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getEnumValue(enumObject, enumValue) {\n // eslint-disable-next-line\n return enumObject[enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n // eslint-disable-next-line\n if (!arguments_1[i]) {\n return \"continue\";\n }\n // eslint-disable-next-line\n var obj1 = arguments_1[i];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n // eslint-disable-next-line\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n // eslint-disable-next-line\n if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n // eslint-disable-next-line\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n var arguments_1 = arguments;\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {Object} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {Object} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n // eslint-disable-next-line\n var out;\n return function () {\n var _this = this;\n // eslint-disable-next-line\n var args = arguments;\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\n// eslint-disable-next-line\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n // eslint-disable-next-line\n throw e.message + '\\n' + e.stack;\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write('<!DOCTYPE html> <html><head>' + reference + '</head><body>' + div.innerHTML +\n '<script> (function() { window.ready = true; })(); </script>' + '</body></html>');\n printWindow.document.close();\n printWindow.focus();\n // eslint-disable-next-line\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getInstance(element, component) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n // eslint-disable-next-line\n if (!res.hasOwnProperty(prop[key])) {\n // eslint-disable-next-line\n res[prop[key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n return new RegExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n // eslint-disable-next-line\n ret[prop[key]] = defaultNumberSymbols[key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n // eslint-disable-next-line\n return obj[str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n ret.numberParseRegex = new RegExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n // eslint-disable-next-line\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n // eslint-disable-next-line\n ret.mapper[i] = digits[i];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.‏',\n 'BHD': 'د.ب.‏',\n 'DZD': 'د.ج.‏',\n 'EGP': 'ج.م.‏',\n 'ILS': '₪',\n 'IQD': 'د.ع.‏',\n 'JOD': 'د.ا.‏',\n 'KMF': 'CF',\n 'KWD': 'د.ك.‏',\n 'LBP': 'ل.ل.‏',\n 'LYD': 'د.ل.‏',\n 'MAD': 'د.م.‏',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.‏',\n 'QAR': 'ر.ق.‏',\n 'SAR': 'ر.س.‏',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.‏',\n 'TND': 'د.ت.‏',\n 'YER': 'ر.ي.‏',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100.);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631. / 30.;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/* tslint:disable no-any */\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G':\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n // eslint-disable-next-line\n ret += options.month[curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n // eslint-disable-next-line\n ret += options.weekday[weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n // eslint-disable-next-line\n curvalstr = value[timeSetter[char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n // eslint-disable-next-line\n curval = value[timeSetter[char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a':\n // eslint-disable-next-line\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n // eslint-disable-next-line\n ret += options.designator[desig];\n break;\n case 'G':\n // eslint-disable-next-line\n var dec = value.getFullYear() < 0 ? 0 : 1;\n // eslint-disable-next-line\n var retu = options.era[dec];\n if (isNullOrUndefined(retu)) {\n // eslint-disable-next-line\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z':\n // eslint-disable-next-line\n var timezone = value.getTimezoneOffset();\n // eslint-disable-next-line\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n case ':':\n // eslint-disable-next-line\n ret += options.numMapper.numberSymbols[timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar integerError = 'minimumIntegerDigits';\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar spaceRegex = /\\s/;\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\nvar infinity = 'infinity';\nvar nan = 'nan';\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n // eslint-disable-next-line\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === \"#,###,,;(#,###,,)\" ? this.customPivotFormat(parseInt(fValue)) : fValue;\n if (curData.useGrouping) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n return value + '';\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split(\".\"), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return \"\";\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/* tslint:disable no-any */\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n // eslint-disable-next-line\n var numMapper = isBlazor() ? dependable.parserObject.numbers :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n // eslint-disable-next-line\n var charKey = datePartMatcher[char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c':\n // eslint-disable-next-line\n var weekData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n weekData = getValue('days.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n weekData = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n var weekObject = parser.reverseObject(weekData);\n // tslint:enable\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n // eslint-disable-next-line\n monthData = getValue('months.' + base.monthIndex[len], dependable.dateObject);\n }\n else {\n // eslint-disable-next-line\n monthData = dependable.dateObject[month][standalone][base.monthIndex[len]];\n }\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(monthData);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W':\n // eslint-disable-next-line\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a':\n canUpdate = true;\n // eslint-disable-next-line\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(periodValur);\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\n break;\n case 'G':\n canUpdate = true;\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n // eslint-disable-next-line\n parseOptions[charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n // eslint-disable-next-line\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)';\n break;\n case 'z':\n // eslint-disable-next-line\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n // eslint-disable-next-line\n parseOptions[charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n // eslint-disable-next-line\n var tzone = parseOptions[charKey];\n hourOnly = (len < 4);\n // eslint-disable-next-line\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n case '\\'':\n // eslint-disable-next-line\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n // tslint:disable-next-line\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /* tslint:disable */\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n // eslint-disable-next-line\n var tValue = options[key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n // eslint-disable-next-line\n res[timeSetter[key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n // eslint-disable-next-line\n retOptions[prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n // eslint-disable-next-line\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n // eslint-disable-next-line\n retOptions[prop] = parseOptions[prop][matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n var splitStr;\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n // eslint-disable-next-line\n splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar parseRegex = /^([^0-9]*)(([0-9,]*[0-9]+)(\\.[0-9]+)?)([Ee][+-]?[0-9]+)?([^0-9]*)$/;\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numOptions;\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n // eslint-disable-next-line\n numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n // eslint-disable-next-line\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n // eslint-disable-next-line\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n // eslint-disable-next-line\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n // eslint-disable-next-line\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n // eslint-disable-next-line\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n // eslint-disable-next-line\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","import { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line\nexport var IntlBase;\n(function (IntlBase) {\n // tslint:disable-next-line:max-line-length\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0#\\ ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = /(^[ncpae]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.currencyFormatRegex = /(^[ca]{1})([0-1]?[0-9]|20)?$/i;\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n /* tslint:disable:quotemark */\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n /* tslint:enable:quotemark */\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n // eslint-disable-next-line\n ret.type = IntlBase.patternMatcher[pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n return val.replace(IntlBase.defaultCurrency, sym);\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n // eslint-disable-next-line\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/\\ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/\\ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n // eslint-disable-next-line\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n // eslint-disable-next-line\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n // eslint-disable-next-line\n options[typeMapper[actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line\n return patternMatch[pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n // eslint-disable-next-line\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n // eslint-disable-next-line\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @return {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders;\n var header;\n // eslint-disable-next-line\n responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n // eslint-disable-next-line\n header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n * <div id=\"Eventdiv\"> </div>\n * <script>\n * let node: HTMLElement = document.querySelector(\"#Eventdiv\");\n * EventHandler.addEventListener(node, \"click\", function(){\n * // click handler function code\n * });\n * EventHandler.addEventListener(node, \"onmouseover\", function(){\n * // mouseover handler function code\n * });\n * EventHandler.removeEventListener(node, \"click\", function(){\n * // click handler function code\n * });\n * eventObj.clearEvents();\n * </script>\n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData;\n var copyData;\n // eslint-disable-next-line\n eventData = EventHandler.addOrGetEventData(element);\n // eslint-disable-next-line\n copyData = extend([], copyData, eventData);\n for (var i = 0; i < copyData.length; i++) {\n element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new RegExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\n// eslint-disable-next-line\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\n// eslint-disable-next-line\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n // eslint-disable-next-line\n element.style[key] = attrs[key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n // eslint-disable-next-line\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n // eslint-disable-next-line\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\n// eslint-disable-next-line\nfunction getObject(instance, curKey, defaultValue, type) {\n // eslint-disable-next-line\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\n// eslint-disable-next-line\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n // eslint-disable-next-line\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (this.properties.hasOwnProperty(curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n // eslint-disable-next-line\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n /* tslint:disable no-function-expression */\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n Array.prototype[\"\" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);\n this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop':\n Array.prototype[\"\" + dFunc].apply(prop);\n // eslint-disable-next-line\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n// eslint-disable-next-line\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * ```\n * @Property('TypeScript')\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex<Type>({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * ```\n * @NotifyPropertyChanges\n * class DemoClass implements INotifyPropertyChanged {\n *\n * @Property()\n * property1: string;\n *\n * dataBind: () => void;\n *\n * constructor() { }\n *\n * onPropertyChanged(newProp: any, oldProp: any) {\n * // Called when property changed\n * }\n * }\n * ```\n * @private\n */\n// eslint-disable-next-line\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n // eslint-disable-next-line\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n // eslint-disable-next-line\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n // eslint-disable-next-line\n if (!builderFunction.prototype.hasOwnProperty('create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n // eslint-disable-next-line\n if (context.hasOwnProperty('parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @return {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable') {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n * <div id='ripple'></div>\n * <script>\n * rippleEffect(document.getElementById('ripple'));\n * </script>\n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n /* tslint:disable:align */\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode = '';\n/**\n * Method for set the Global animation modes for Syncfusion Blazor components.\n *\n * @param {string} value - Specifies the animation mode.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n","/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '20.4';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats/i;\n this.errors = {\n noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.</span>',\n trailExpired: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.</span>',\n versionMismatched: '<span>The included Syncfusion license key is invalid.</span>',\n platformMismatched: '<span>The included Syncfusion license key is invalid.</span>',\n invalidKey: '<span>The included Syncfusion license key is invalid.</span>'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : \"https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjAuNA==\";\n var errorDiv = createElement('div', {\n innerHTML: \"<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style=\\\"top: 6px;\\n position: absolute;\\n left: 16px;\\n width: 24px;\\n height: 24px;\\\"/>\" + validateMsg + ' ' + '<a style=\"text-decoration: none;color: #0D6EFD;font-weight: 500;\" href=' + accountURL + '>Claim your free account</a>'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string}\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n <div style=\\\"\\n position: fixed;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n background-color: rgba(0, 0, 0, 0.5);\\n z-index: 99999;\\n \\\">\\n <div style=\\\"\\n background: #FFFFFF;\\n height: 455px;\\n width: 840px;\\n font-family: Helvetica Neue, Helvetica, Arial;\\n color: #000000;\\n box-shadow: 0px 4.8px 14.4px rgb(0 0 0 / 18%), 0px 25.6px 57.6px rgb(0 0 0 / 22%);\\n display: block;\\n margin: 8% auto;\\n border-radius: 20px;\\n \\\">\\n <div style=\\\"\\n position: absolute;\\nwidth: 838px;\\nheight: 62px;\\nbackground-color: #F9F9F9;\\nborder: 1px solid #EEEEEE;\\nborder-top-left-radius: 20px;\\nborder-top-right-radius: 20px;\\n\\\">\\n <img src=\\\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTQ2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDAuNTk2NSAxNS4wMDc4SDMyLjQyNUMzMS41NTU3IDE1LjAwNzggMzAuOTAzNyAxNS4xODEyIDMwLjUxMjUgMTUuNDg0NkMzMC4xMjEzIDE1LjgzMTQgMjkuOTA0IDE2LjMwODIgMjkuOTA0IDE3LjA0NTFDMjkuOTA0IDE3LjYwODYgMzAuMDc3OCAxOC4wNDIxIDMwLjQyNTYgMTguMzAyMkMzMC43NzMzIDE4LjYwNTYgMzEuMjk0OSAxOC43MzU2IDMxLjk5MDMgMTguNzM1NkgzNi4zMzY5QzM4LjExODkgMTguNzM1NiAzOS40MjI5IDE5LjA4MjQgNDAuMTYxOCAxOS43MzI2QzQwLjk0NDIgMjAuNDI2MiA0MS4yOTE5IDIxLjU1MzIgNDEuMjkxOSAyMy4xMTM3QzQxLjI5MTkgMjQuNzE3NiA0MC44NTcyIDI1Ljg4OCAzOS45ODc5IDI2LjY2ODJDMzkuMTE4NiAyNy40MDUxIDM3LjcyNzcgMjcuNzk1MyAzNS44NTg3IDI3Ljc5NTNIMjcuMDc4N1YyNS4wMjFIMzUuMzM3MkMzNi4yOTM0IDI1LjAyMSAzNi45NDU0IDI0Ljg5MSAzNy4zMzY2IDI0LjYzMDlDMzcuNzI3NyAyNC4zNzA4IDM3LjkwMTYgMjMuODk0IDM3LjkwMTYgMjMuMjg3MUMzNy45MDE2IDIyLjYzNjkgMzcuNzI3NyAyMi4xNjAxIDM3LjM4IDIxLjlDMzcuMDMyMyAyMS42Mzk5IDM2LjQyMzggMjEuNDY2NSAzNS41NTQ1IDIxLjQ2NjVIMzEuNjQyNkMyOS44NjA1IDIxLjQ2NjUgMjguNTEzMSAyMS4xMTk4IDI3LjY4NzMgMjAuMzgyOEMyNi44NjE0IDE5LjY0NTkgMjYuNDI2OCAxOC41MTg5IDI2LjQyNjggMTcuMDAxN0MyNi40MjY4IDE1LjM1NDUgMjYuODYxNCAxNC4xNDA4IDI3LjczMDcgMTMuMzYwNkMyOC42IDEyLjU4MDMgMjkuOTkwOSAxMi4yMzM1IDMxLjkwMzQgMTIuMjMzNUg0MC41OTY1VjE1LjAwNzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik00OC4wNzI3IDI1LjI4MTFINTAuNTA2OFYxNi4zOTQ5SDUzLjU0OTNWMjcuNTM1MkM1My41NDkzIDI5LjA1MjQgNTMuMjAxNiAzMC4xNzk0IDUyLjUwNjIgMzAuOTE2M0M1MS44MTA3IDMxLjY1MzIgNTAuNzI0MSAzMiA0OS4yNDYzIDMySDQzLjMzNVYyOS42NTkySDQ4LjcyNDdDNDkuMjg5NyAyOS42NTkyIDQ5Ljc2NzkgMjkuNTI5MiA1MC4wNzIxIDI5LjIyNThDNTAuMzc2NCAyOC45NjU3IDUwLjU1MDIgMjguNTMyMiA1MC41NTAyIDI4LjAxMlYyNy44Mzg2SDQ3Ljg5ODlDNDYuMjAzNyAyNy44Mzg2IDQ0Ljk0MzIgMjcuNDkxOSA0NC4yNDc4IDI2Ljg0MTZDNDMuNTA4OSAyNi4xNDgxIDQzLjE2MTEgMjUuMDY0NCA0My4xNjExIDIzLjQ2MDVWMTYuMzk0OUg0Ni4xNjAyVjIzLjIwMDVDNDYuMTYwMiAyNC4wNjc0IDQ2LjI5MDYgMjQuNjMwOSA0Ni41NTE0IDI0Ljg5MUM0Ni43MjUzIDI1LjE1MTEgNDcuMjQ2OSAyNS4yODExIDQ4LjA3MjcgMjUuMjgxMVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTU1Ljg5NjUgMTYuMzk0OUg2MS41OTA0QzYzLjMyOTEgMTYuMzk0OSA2NC41NDYxIDE2LjY5ODMgNjUuMjg1IDE3LjM0ODVDNjYuMDIzOSAxNy45OTg4IDY2LjM3MTYgMTkuMDgyNCA2Ni4zNzE2IDIwLjU1NjNWMjcuNzk1M0g2My4zMjkxVjIwLjk0NjRDNjMuMzI5MSAyMC4wNzk0IDYzLjE5ODcgMTkuNTE1OSA2Mi45Mzc5IDE5LjI5OTJDNjIuNjc3MSAxOS4wMzkxIDYyLjE1NTUgMTguOTA5MSA2MS4zMjk3IDE4LjkwOTFINTguODk1NlYyNy44Mzg2SDU1Ljg1M1YxNi4zOTQ5SDU1Ljg5NjVaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03NC45MzQyIDI1LjM2NzhINzguMTUwNlYyNy43OTUySDc0LjAyMTRDNzIuOTc4MiAyNy43OTUyIDcyLjEwODkgMjcuNjY1MiA3MS40NTcgMjcuNDkxOEM3MC44MDUgMjcuMjc1IDcwLjE5NjUgMjYuOTI4MyA2OS43MTgzIDI2LjQ1MTRDNjkuMTk2OCAyNS45MzEzIDY4Ljc2MjEgMjUuMjgxMSA2OC40NTc4IDI0LjU0NDJDNjguMTUzNiAyMy44MDcyIDY4LjAyMzIgMjIuOTgzNiA2OC4wMjMyIDIyLjE2QzY4LjAyMzIgMjEuMjkzMSA2OC4xNTM2IDIwLjQ2OTUgNjguNDU3OCAxOS42ODkyQzY4Ljc2MjEgMTguOTA5IDY5LjE1MzMgMTguMzAyMSA2OS43MTgzIDE3Ljc4MTlDNzAuMjM5OSAxNy4zMDUxIDcwLjgwNSAxNi45NTgzIDcxLjUwMDQgMTYuNzQxNkM3Mi4xOTU5IDE2LjUyNDkgNzMuMDIxNyAxNi40MzgyIDc0LjA2NDkgMTYuNDM4Mkg3OC4xOTQxVjE4LjkwOUg3NC45MzQyQzczLjQ5OTggMTguOTA5IDcyLjU0MzYgMTkuMTY5MSA3MS45Nzg1IDE5LjY0NTlDNzEuNDU2OSAyMC4xMjI3IDcxLjE1MjcgMjAuOTg5NyA3MS4xNTI3IDIyLjIwMzRDNzEuMTUyNyAyMi44OTY5IDcxLjI4MzEgMjMuNDYwNSA3MS41MDA0IDIzLjkzNzNDNzEuNzE3NyAyNC40MTQxIDcyLjA2NTUgMjQuNzYwOSA3Mi41MDAxIDI1LjA2NDNDNzIuNzE3NCAyNS4xOTQ0IDcyLjk3ODIgMjUuMjgxMSA3My4yODI1IDI1LjM2NzhDNzMuNjMwMiAyNS4zMjQ0IDc0LjE1MTggMjUuMzY3OCA3NC45MzQyIDI1LjM2NzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik04MC44NDU2IDE4LjY0ODlINzguNjcyNFYxNi4zNTE1SDgwLjg0NTZWMTUuMTgxMUM4MC44NDU2IDE0LjAxMDggODEuMDYzIDEzLjIzMDUgODEuNDk3NiAxMi44NDA0QzgxLjkzMjMgMTIuNDUwMyA4Mi43NTgxIDEyLjIzMzUgODMuOTc1MSAxMi4yMzM1SDg2Ljg0MzhWMTQuNDAwOUg4NS40MDk1Qzg0Ljg4NzkgMTQuNDAwOSA4NC41NDAyIDE0LjQ4NzYgODQuMzIyOSAxNC42NjFDODQuMTA1NSAxNC44MzQ0IDgzLjk3NTEgMTUuMDk0NSA4My45NzUxIDE1LjQ0MTJWMTYuMzUxNUg4Ni44NDM4VjE4LjY0ODlIODMuOTc1MVYyNy43OTUzSDgwLjg0NTZWMTguNjQ4OVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTk4LjQwNTYgMjcuNzk1M0g5Mi43MTE2QzkxLjAxNjUgMjcuNzk1MyA4OS44NDI5IDI3LjQ0ODUgODkuMDYwNSAyNi43OTgzQzg4LjMyMTYgMjYuMTQ4MSA4Ny45MzA0IDI1LjA2NDQgODcuOTMwNCAyMy41OTA2VjE2LjM5NDlIOTAuOTI5NVYyMy40MTcyQzkwLjkyOTUgMjQuMTk3NCA5MS4wNTk5IDI0LjY3NDMgOTEuMzIwNyAyNC45MzQ0QzkxLjU4MTUgMjUuMTk0NCA5Mi4xMDMxIDI1LjMyNDUgOTIuOTI4OSAyNS4zMjQ1SDk1LjM2M1YxNi4zOTQ5SDk4LjQwNTZWMjcuNzk1M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTEwMC42MjIgMjUuNDExMkgxMDcuMDExQzEwNy41NzcgMjUuNDExMiAxMDguMDExIDI1LjMyNDUgMTA4LjI3MiAyNS4xNTExQzEwOC41MzMgMjQuOTc3NyAxMDguNjYzIDI0LjY3NDMgMTA4LjY2MyAyNC4zMjc1QzEwOC42NjMgMjMuOTM3NCAxMDguNTMzIDIzLjY3NzMgMTA4LjI3MiAyMy40NjA1QzEwOC4wMTEgMjMuMjg3MSAxMDcuNTc3IDIzLjIwMDUgMTA3LjA1NSAyMy4yMDA1SDEwNC40NDdDMTAyLjg4MiAyMy4yMDA1IDEwMS44MzkgMjIuOTgzNyAxMDEuMzE4IDIyLjUwNjlDMTAwLjc1MiAyMi4wMzAxIDEwMC40OTIgMjEuMjA2NSAxMDAuNDkyIDE5Ljk5MjdDMTAwLjQ5MiAxOC43NzkgMTAwLjgzOSAxNy44Njg3IDEwMS40OTEgMTcuMjYxOEMxMDIuMTQzIDE2LjY5ODMgMTAzLjE4NyAxNi4zOTQ5IDEwNC41MzQgMTYuMzk0OUgxMTEuMDU0VjE4Ljc3OUgxMDUuNzA4QzEwNC44MzggMTguNzc5IDEwNC4yNzMgMTguODY1NyAxMDQuMDEyIDE4Ljk5NTdDMTAzLjc1MiAxOS4xNjkxIDEwMy42MjEgMTkuNDI5MiAxMDMuNjIxIDE5LjgxOTRDMTAzLjYyMSAyMC4xNjYxIDEwMy43NTIgMjAuNDI2MiAxMDMuOTY5IDIwLjU5OTZDMTA0LjE4NiAyMC43NzMgMTA0LjU3NyAyMC44NTk3IDEwNS4wNTYgMjAuODU5N0gxMDcuNzk0QzEwOS4wNTQgMjAuODU5NyAxMTAuMDExIDIxLjE2MzEgMTEwLjY2MyAyMS43MjY2QzExMS4zMTUgMjIuMjkwMiAxMTEuNjYyIDIzLjE1NzEgMTExLjY2MiAyNC4yNDA4QzExMS42NjIgMjUuMjgxMSAxMTEuMzU4IDI2LjE0ODEgMTEwLjc5MyAyNi43OTgzQzExMC4yMjggMjcuNDQ4NSAxMDkuNDQ2IDI3Ljc5NTMgMTA4LjUzMyAyNy43OTUzSDEwMC43MDlWMjUuNDExMkgxMDAuNjIyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTE2LjU3NCAxNS4wOTQ0SDExMy40MDFWMTIuMjc2OUgxMTYuNTc0VjE1LjA5NDRaTTExNi41NzQgMjcuNzk1M0gxMTMuNDAxVjE2LjM5NDlIMTE2LjU3NFYyNy43OTUzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMwLjMwOSAyMi4xMTY3QzEzMC4zMDkgMjMuODkzOSAxMjkuNzQ0IDI1LjMyNDQgMTI4LjY1NyAyNi40MDgxQzEyNy41NzEgMjcuNDkxOCAxMjYuMDkzIDI4LjAxMiAxMjQuMjI0IDI4LjAxMkMxMjIuMzU1IDI4LjAxMiAxMjAuODc3IDI3LjQ5MTggMTE5Ljc5IDI2LjQwODFDMTE4LjcwNCAyNS4zMjQ0IDExOC4xMzkgMjMuODkzOSAxMTguMTM5IDIyLjExNjdDMTE4LjEzOSAyMC4zMzk0IDExOC43MDQgMTguOTA5IDExOS43OSAxNy44MjUzQzEyMC44NzcgMTYuNzQxNiAxMjIuMzk4IDE2LjIyMTQgMTI0LjIyNCAxNi4yMjE0QzEyNi4wNDkgMTYuMjIxNCAxMjcuNTI3IDE2Ljc0MTYgMTI4LjY1NyAxNy44MjUzQzEyOS43NDQgMTguODY1NiAxMzAuMzA5IDIwLjI5NjEgMTMwLjMwOSAyMi4xMTY3Wk0xMjEuMjY4IDIyLjExNjdDMTIxLjI2OCAyMy4yMDA0IDEyMS41MjkgMjQuMDY3MyAxMjIuMDUxIDI0LjY3NDJDMTIyLjU3MiAyNS4yODExIDEyMy4yNjggMjUuNTg0NSAxMjQuMTggMjUuNTg0NUMxMjUuMDkzIDI1LjU4NDUgMTI1Ljc4OSAyNS4yODExIDEyNi4zMSAyNC42NzQyQzEyNi44MzIgMjQuMDY3MyAxMjcuMDkzIDIzLjIwMDQgMTI3LjA5MyAyMi4xMTY3QzEyNy4wOTMgMjEuMDMzIDEyNi44MzIgMjAuMTY2MSAxMjYuMzEgMTkuNjAyNUMxMjUuNzg5IDE4Ljk5NTcgMTI1LjA5MyAxOC42OTIyIDEyNC4xMzcgMTguNjkyMkMxMjMuMjI0IDE4LjY5MjIgMTIyLjUyOSAxOC45OTU3IDEyMi4wMDcgMTkuNjAyNUMxMjEuNTI5IDIwLjE2NjEgMTIxLjI2OCAyMS4wMzMgMTIxLjI2OCAyMi4xMTY3WiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMxLjc4NyAxNi4zOTQ5SDEzNy40ODFDMTM5LjIxOSAxNi4zOTQ5IDE0MC40MzYgMTYuNjk4MyAxNDEuMTc1IDE3LjM0ODVDMTQxLjkxNCAxNy45OTg4IDE0Mi4yNjIgMTkuMDgyNCAxNDIuMjYyIDIwLjU1NjNWMjcuNzk1M0gxMzkuMjE5VjIwLjk0NjRDMTM5LjIxOSAyMC4wNzk0IDEzOS4wODkgMTkuNTE1OSAxMzguODI4IDE5LjI5OTJDMTM4LjU2NyAxOS4wMzkxIDEzOC4wNDYgMTguOTA5MSAxMzcuMjIgMTguOTA5MUgxMzQuNzg2VjI3LjgzODZIMTMxLjc0M1YxNi4zOTQ5SDEzMS43ODdaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDMuNzM3NDNIMFYxMC44NDY0SDcuMTI4MzFWMy43Mzc0M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTIzLjI1MTMgLTIuMTU3MjVlLTA1TDE4LjU1MTMgNS41MTY4NUwyNC4wODMxIDEwLjIwNDFMMjguNzgzMSA0LjY4NzI1TDIzLjI1MTMgLTIuMTU3MjVlLTA1WiIgZmlsbD0iI0ZGODYwMCIvPgo8cGF0aCBkPSJNMTUuNjA0MSAzLjczNzQzSDguNDc1ODNWMTAuODQ2NEgxNS42MDQxVjMuNzM3NDNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDEyLjE5MDJIMFYxOS4yOTkySDcuMTI4MzFWMTIuMTkwMloiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMTIuMTkwMkg4LjQ3NTgzVjE5LjI5OTJIMTUuNjA0MVYxMi4xOTAyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMDc5NyAxMi4xOTAySDE2Ljk1MTRWMTkuMjk5MkgyNC4wNzk3VjEyLjE5MDJaIiBmaWxsPSIjRkY4NjAwIi8+CjxwYXRoIGQ9Ik03LjEyODMxIDIwLjY4NjNIMFYyNy43OTUzSDcuMTI4MzFWMjAuNjg2M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMjAuNjg2M0g4LjQ3NTgzVjI3Ljc5NTNIMTUuNjA0MVYyMC42ODYzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMTIzMiAyMC42ODYzSDE2Ljk5NDlWMjcuNzk1M0gyNC4xMjMyVjIwLjY4NjNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik0xNDYgMTUuODMxM0MxNDYgMTYuODcxNyAxNDUuMTc0IDE3LjY5NTMgMTQ0LjEzMSAxNy42OTUzQzE0My4wODggMTcuNjk1MyAxNDIuMjYyIDE2Ljg3MTcgMTQyLjI2MiAxNS44MzEzQzE0Mi4yNjIgMTQuNzkxIDE0My4wODggMTQuMDEwNyAxNDQuMTMxIDE0LjAxMDdDMTQ1LjEzMSAxMy45Njc0IDE0NiAxNC43OTEgMTQ2IDE1LjgzMTNaTTE0Mi45NTcgMTQuNzkxQzE0Mi42OTcgMTUuMDUxMSAxNDIuNTY2IDE1LjQ0MTIgMTQyLjU2NiAxNS44MzEzQzE0Mi41NjYgMTYuNjk4MyAxNDMuMjYyIDE3LjM5MTggMTQ0LjEzMSAxNy4zOTE4QzE0NSAxNy4zOTE4IDE0NS42OTYgMTYuNjk4MyAxNDUuNjk2IDE1LjgzMTNDMTQ1LjY5NiAxNS4wMDc3IDE0NSAxNC4yNzA4IDE0NC4xNzQgMTQuMjcwOEMxNDMuNjUzIDE0LjI3MDggMTQzLjI2MiAxNC40NDQyIDE0Mi45NTcgMTQuNzkxWk0xNDQuODcgMTYuOTE1SDE0NC40NzlMMTQzLjkxNCAxNi4wOTE0VjE2LjkxNUgxNDMuNjA5VjE0Ljc0NzZIMTQzLjk1N0MxNDQuNDM1IDE0Ljc0NzYgMTQ0LjY1MyAxNC45NjQ0IDE0NC42NTMgMTUuMzU0NUMxNDQuNjUzIDE1LjY1NzkgMTQ0LjQ3OSAxNS44NzQ3IDE0NC4xNzQgMTUuOTYxNEwxNDQuODcgMTYuOTE1Wk0xNDQuMDQ0IDE1LjY1NzlDMTQ0LjI2MSAxNS42NTc5IDE0NC4zOTIgMTUuNTI3OSAxNDQuMzkyIDE1LjM1NDVDMTQ0LjM5MiAxNS4xMzc4IDE0NC4yNjEgMTUuMDUxMSAxNDQuMDAxIDE1LjA1MTFIMTQzLjkxNFYxNS42NTc5SDE0NC4wNDRaIiBmaWxsPSIjMzU0M0E4Ii8+Cjwvc3ZnPgo=\\\" style=\\\"\\n text-align: left;\\n width: 146px;\\n position: absolute;\\n top: 14px;\\n left: 31px;\\n\\\">\\n </div>\\n <div style=\\\"\\n position: relative;\\n top: 80px;\\n left: 32px;\\n font-size: 20px;\\n text-align: left;\\n font-weight: 700;\\n letter-spacing: 0.02em;\\n font-style: normal;\\n line-height: 125%;\\n \\\">Claim your FREE account and get a key in less than a minute</div>\\n <ul style=\\\"\\n font-size: 15px;\\n font-weight: 400;\\n color: #333333;\\n letter-spacing: 0.01em;\\n position: relative;\\n left: 32px;\\n top: 88px;\\n line-height: 180%;\\n \\\">\\n <li><span>Access to a 30-day free trial of any of our products.</span></li>\\n <li><span>Access to 24x5 support by developers via the <a href=\\\"https://support.syncfusion.com/create\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">support tickets</a>, <a href=\\\"https://www.syncfusion.com/forums\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">forum</a>, <a href=\\\"https://www.syncfusion.com/feedback\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">feature & feedback page</a> and chat.</span></li>\\n <li><span>200+ <a href=\\\"https://www.syncfusion.com/succinctly-free-ebooks\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">ebooks </a>on the latest technologies, industry trends, and research topics.</span>\\n </li>\\n <li><span>Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion <a href=\\\"https://www.syncfusion.com/succinctly-free-ebooks\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">Metro Studio.</a></span></li>\\n <li><span>Free and unlimited access to Syncfusion technical <a href=\\\"https://www.syncfusion.com/blogs/\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">blogs</a> and <a href=\\\"https://www.syncfusion.com/resources/techportal/whitepapers\\\" style=\\\"text-decoration: none;\\n color: #0D6EFD;\\n font-weight: 500;\\\">whitepapers.</a></span></li>\\n </ul>\\n <div style=\\\"\\n font-size: 18px;\\n font-weight: 700;\\n position: relative;\\n line-height: 125%;\\n letter-spacing: 0.02em;\\n top: 90px;\\n left: 32px;\\n \\\">Syncfusion is trusted by 29,000+ businesses worldwide</div>\\n <img src=\\\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODIwIiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgODIwIDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MjcuNjE3IDIyLjU2NTlWMjQuNzIyNkM0MjYuNTU4IDI0LjM2MzggNDI1LjM5OCAyNC4xNTQ0IDQyNC40NzQgMjQuMTU0NEM0MjMuMzMzIDI0LjE1NDQgNDIyLjY5OCAyNC40OTEyIDQyMi42OTggMjUuMDk2M0M0MjIuNjk4IDI1LjQ4MjQgNDIyLjk3NiAyNS43MzgzIDQyMy43NzMgMjYuMDg1NEw0MjUuOTE3IDI3LjAxNzRDNDI3LjYzMyAyNy43NjM5IDQyOC40OTcgMjguODUzIDQyOC40OTcgMzAuMjY4MUM0MjguNDk3IDMyLjQ1MjIgNDI2LjU0NiAzMy44MyA0MjMuNDUyIDMzLjgzQzQyMi4zMjQgMzMuODMgNDIxLjAxOCAzMy42NzM2IDQxOS42MzYgMzMuMzcwOVYzMS4xNDE2QzQyMS4wMDYgMzEuNTAyOCA0MjIuMjYyIDMxLjY5NTcgNDIzLjIzOSAzMS42OTU3QzQyNC41MTggMzEuNjk1NyA0MjUuMjAzIDMxLjM1MDYgNDI1LjIwMyAzMC43MDc0QzQyNS4yMDMgMzAuMzIwOCA0MjQuOTM1IDMwLjAzNjcgNDI0LjMyMiAyOS43NzE3TDQyMS45NzUgMjguNzU5M0M0MjAuMjM2IDI4LjAwNzggNDE5LjQzMyAyNi45OTU0IDQxOS40MzMgMjUuNTUyMUM0MTkuNDMzIDIzLjQ4MzcgNDIxLjMxNCAyMi4xNjQ5IDQyNC4yNjUgMjIuMTY0OUM0MjUuMjk4IDIyLjE2NDkgNDI2LjU3IDIyLjMxNzEgNDI3LjYxNyAyMi41NjU5VjIyLjU2NTlaTTQzMC4xNjcgMjIuMzkwOUg0MzMuNjM1VjMzLjYwMzlINDMwLjE2N1YyMi4zOTA5Wk00NDQuOTExIDIyLjM5MDlWMjQuNDQ1MUg0MzkuNjc1VjI2Ljk3NDJINDQ0LjI0OVYyOC44MzIzSDQzOS42NzVWMzEuNDU0M0g0NDQuOTc4VjMzLjYwMzlINDM2LjMwNVYyMi4zOTA5SDQ0NC45MTFaTTQ2MS4yOTQgMjIuMzkwOVYzMy42MDM5SDQ1Ny45MzlWMjYuMjIzNkw0NTQuNjUyIDMzLjY5MTVINDUyLjUzMUw0NDkuMjY2IDI2LjIyMzZWMzMuNjAzOUg0NDYuOTQ5VjIyLjM5MDlINDUxLjE4NEw0NTQuMTc4IDI5LjIxMTRMNDU3LjE1NiAyMi4zOTA5SDQ2MS4yOTRWMjIuMzkwOVpNNDcyLjU3OSAyMi4zOTA5VjI0LjQ0NTFINDY3LjMzNVYyNi45NzQySDQ3MS45MDhWMjguODMyM0g0NjcuMzM1VjMxLjQ1NDNINDcyLjYzOFYzMy42MDM5SDQ2My45NTdWMjIuMzkwOUg0NzIuNTc5Wk00ODQuNzk0IDIyLjM5MDlWMzMuNjAzOUg0ODEuMDkzTDQ3Ni45MjYgMjYuNDEyM1YzMy42MDM5SDQ3NC42MDhWMjIuMzkwOUg0NzguNDA3TDQ4Mi40ODQgMjkuNDg3NlYyMi4zOTA5SDQ4NC43OTRaTTQ5NC44NTggMjIuNTY1OVYyNC43MjI2QzQ5My44MDcgMjQuMzY2MyA0OTIuNjQgMjQuMTU0NCA0OTEuNzMyIDI0LjE1NDRDNDkwLjU3MyAyNC4xNTQ0IDQ4OS45MzkgMjQuNDg1OCA0ODkuOTM5IDI1LjA5M0M0ODkuOTM5IDI1LjQ4ODYgNDkwLjE5OCAyNS43MjUgNDkxLjAyMyAyNi4wODU5TDQ5My4xNTcgMjcuMDE3OEM0OTQuODg1IDI3Ljc3MjIgNDk1LjczOSAyOC44NTE4IDQ5NS43MzkgMzAuMjgzNUM0OTUuNzM5IDMyLjQ1NTkgNDkzLjc4NiAzMy44MzA4IDQ5MC42OTkgMzMuODMwOEM0ODkuNTY5IDMzLjgzMDggNDg4LjI1OSAzMy42NzM2IDQ4Ni44NzggMzMuMzcxN1YzMS4xNDI0QzQ4OC4yNDcgMzEuNTAyOCA0ODkuNDk5IDMxLjY5NjUgNDkwLjQ3IDMxLjY5NjVDNDkxLjc0IDMxLjY5NjUgNDkyLjQ0NCAzMS4zNTE1IDQ5Mi40NDQgMzAuNzI4NUM0OTIuNDQ0IDMwLjMxNjMgNDkyLjE5NyAzMC4wNTA0IDQ5MS41NTUgMjkuNzcyNUw0ODkuMjE4IDI4Ljc2MDFDNDg3LjQ2NyAyOC4wMDI4IDQ4Ni42NzQgMjcuMDAyIDQ4Ni42NzQgMjUuNTUzM0M0ODYuNjc0IDIzLjQ4NjIgNDg4LjU1NiAyMi4xNjY1IDQ5MS41IDIyLjE2NjVDNDkyLjUzNiAyMi4xNjUzIDQ5My44MTMgMjIuMzE3MSA0OTQuODU4IDIyLjU2NTlWMjIuNTY1OVoiIGZpbGw9IiMwMEEwQjAiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzUyLjQxMyAyNi44MTlDMzUwLjk5MiAyNS4yNzU5IDM0OS42MzggMjMuODMxNSAzNDguMzQ5IDIyLjE1NzRMMzQ3LjkyIDIxLjU5OTVDMzQ5LjQwNiAyMS4zNjkzIDM1MC42OTUgMjAuMzg0OCAzNTAuNjk1IDE4Ljc0MzNDMzUwLjY5NSAxNy4yMzMxIDM0OS41MzkgMTYuMjQ4MiAzNDcuODIxIDE2LjI0ODJDMzQ2LjU5OCAxNi4yNDgyIDM0NS43MDYgMTYuMzEzNyAzNDUuMjQzIDE2LjMxMzdDMzQ0LjcxNSAxNi4zMTM3IDM0NC4yODUgMTYuMzEzNyAzNDMuNzkgMTYuMjgwOEMzNDMuODU2IDE4LjE1MjEgMzQzLjg4OSAxOC4yODM0IDM0My44ODkgMTkuNDMyMlYyMy42MzQzQzM0My44ODkgMjQuNDU1MyAzNDMuODU2IDI1LjI3NTkgMzQzLjc5IDI2LjgxODZDMzQ0LjE1MyAyNi43MjAyIDM0NC41MTcgMjYuNzIwMiAzNDQuNzgxIDI2LjcyMDJDMzQ1LjA0NSAyNi43MjAyIDM0NS40MDkgMjYuNzUzMSAzNDUuNzA2IDI2LjgxODZDMzQ1LjY0IDI1Ljc2NzkgMzQ1LjYwNyAyNC4wMjgzIDM0NS42MDcgMjMuNjM0M1YyMS4yMDUxQzM0Ny4xNiAyMy4yMDc3IDM0OS4yMDkgMjUuNjY5NSAzNTAuMDAxIDI2LjgxODZDMzUwLjM5OCAyNi43MjAyIDM1MC43MjggMjYuNzIwMiAzNTEuMTI0IDI2LjcyMDJDMzUxLjQ1NSAyNi43MjA2IDM1MS45MTggMjYuNzIwNiAzNTIuNDEzIDI2LjgxOVYyNi44MTlaTTM0OC44NzggMTkuMDA2QzM0OC44NzggMjAuMDIzNCAzNDguMzE3IDIxLjIwNTQgMzQ2Ljc5NyAyMS4yMDU0QzM0Ni40IDIxLjIwNTQgMzQ2LjAwMyAyMS4yMDU0IDM0NS42MDcgMjEuMTcyNVYxNy4wNjg4QzM0Ni4wMDMgMTYuOTcwNCAzNDYuNDk5IDE2LjkwNDYgMzQ2Ljc2MyAxNi45MDQ2QzM0OC4wODUgMTYuOTA0OSAzNDguODc4IDE3LjY2IDM0OC44NzggMTkuMDA2VjE5LjAwNlpNMzgyLjM4IDI2Ljg4NDVDMzgxLjgxOSAyNi4yOTM2IDM4MC45NiAyNS4zNDE3IDM4MC4xMzQgMjQuNDIyM0MzODAuODI4IDIzLjY2NzIgMzgxLjU1NSAyMi41NTEgMzgxLjk4NCAyMS41OTkxQzM4MS43MTkgMjEuNDY3OCAzODEuMzU2IDIxLjIwNTEgMzgxLjA5MiAyMC45NzUzQzM4MC45OTMgMjEuNzk1OSAzODAuNDMyIDIyLjg3OTIgMzc5LjYzOSAyMy44MzE1QzM3OC41MTUgMjIuNTE4NSAzNzguMjE4IDIyLjE1NzQgMzc3LjE5MyAyMC43Nzg1QzM3OC41ODEgMTkuODkyMSAzNzkuMjQyIDE4Ljg3NDMgMzc5LjI0MiAxOC4wNTM3QzM3OS4yNDIgMTcuMTAxNyAzNzguNTgxIDE2LjExNjkgMzc2Ljk2MiAxNi4xMTY5QzM3NS4yMTEgMTYuMTE2OSAzNzQuMzUyIDE3LjIwMDIgMzc0LjM1MiAxOC40ODAzQzM3NC4zNTIgMTkuMjM1NCAzNzQuNTUgMTkuODkxNyAzNzUuMzc2IDIwLjk3NTNDMzc0LjA1NCAyMS42OTc1IDM3Mi43NjYgMjIuNzQ3OSAzNzIuNzY2IDI0LjQyMjNDMzcyLjc2NiAyNi4wNjM5IDM3NC4wODcgMjYuOTE3NCAzNzUuNzA3IDI2LjkxNzRDMzc3LjE5MyAyNi45MTc0IDM3OC4xNTEgMjYuMzI2NiAzNzguOTEyIDI1LjYzNjlMMzc5LjkwMiAyNi44MTlDMzgwLjIgMjYuNzg2MSAzODAuNTMxIDI2LjcyMDYgMzgwLjg2MSAyNi43MjA2QzM4MS4zMjQgMjYuNzIwNiAzODEuODUyIDI2Ljc4NjEgMzgyLjM4IDI2Ljg4NDVWMjYuODg0NVpNMzgzLjM3MiA0MC4wMTU4QzM4MS45MTggMzguNDczIDM4MC41OTcgMzcuMDYxMiAzNzkuMzA4IDM1LjM4NzFMMzc4Ljg3OCAzNC44Mjg4QzM4MC4zMzIgMzQuNTk5MSAzODEuNjU0IDMzLjYxNSAzODEuNjU0IDMxLjk0MDFDMzgxLjY1NCAzMC40NjMyIDM4MC40OTggMjkuNDQ1NCAzNzguNzc5IDI5LjQ0NTRDMzc3LjU1NyAyOS40NDU0IDM3Ni42MzIgMjkuNTQzNSAzNzYuMTY5IDI5LjU0MzVDMzc1LjY3MyAyOS41NDM1IDM3NS4yNDQgMjkuNTQzNSAzNzQuNzQ4IDI5LjQ3NzZDMzc0LjgxNCAzMS4zODIyIDM3NC44NDggMzEuNDgwMiAzNzQuODQ4IDMyLjYyOTRWMzYuODMxMUMzNzQuODQ4IDM3LjY1MjQgMzc0LjgxNCAzOC41MDUyIDM3NC43NDggNDAuMDE1NEMzNzUuMTEyIDM5Ljk0OTYgMzc1LjQ3NSAzOS45NDk2IDM3NS43MDcgMzkuOTQ5NkMzNzYuMDA0IDM5Ljk0OTYgMzc2LjM2OCAzOS45NDk2IDM3Ni42MzIgNDAuMDE1NEMzNzYuNTY1IDM4Ljk5OCAzNzYuNTMzIDM3LjI1ODEgMzc2LjUzMyAzNi44MzExVjM0LjQzNDhDMzc4LjExOSAzNi40MDQyIDM4MC4xNjcgMzguODk5NiAzODAuOTYgNDAuMDE1NEMzODEuMzU2IDM5Ljk0OTYgMzgxLjY4NyAzOS45NDk2IDM4Mi4wODMgMzkuOTQ5NkMzODIuMzggMzkuOTUgMzgyLjg3NiAzOS45NSAzODMuMzcyIDQwLjAxNThaTTM2Mi4xNiAyNi44MTlDMzYwLjk3MSAyNS41NzE1IDM1OC44ODkgMjIuOTc4IDM1OC4wNjMgMjEuOTkzNUwzNTcuMjM3IDIwLjk3NTdDMzU4LjA5NiAxOS45NTgzIDM1OC42OSAxOS4zMzQxIDM1OS4zMTkgMTguNTc5QzM2MC4wNDUgMTcuNzkxIDM2MC43MDYgMTYuOTcwNCAzNjEuNDk5IDE2LjI0ODJDMzYxLjEzNiAxNi4zMTM3IDM2MC45MzcgMTYuMzEzNyAzNjAuNzM5IDE2LjMxMzdDMzYwLjU0MSAxNi4zMTM3IDM2MC4zNDMgMTYuMzEzNyAzNjAuMTQ0IDE2LjI0ODJDMzU5LjkxMyAxNi42MDkzIDM1OS41NSAxNy4wNjg4IDM1OS4xNTMgMTcuNTI4N0MzNTguNzU2IDE3Ljk1NTYgMzU4LjM2IDE4LjM4MjIgMzU4LjA2MyAxOC43NDMzQzM1Ny4yMzYgMTkuNjk1MiAzNTYuNzc0IDIwLjE1NDcgMzU1LjU4NSAyMS4yNzA5VjE5LjQ2NTVDMzU1LjU4NSAxOC40MTUxIDM1NS41ODUgMTcuNzI1NSAzNTUuNjUxIDE2LjI0ODJDMzU1LjMyMSAxNi4zMTM3IDM1NC45NTcgMTYuMzEzNyAzNTQuNzI2IDE2LjMxMzdDMzU0LjQ2MSAxNi4zMTM3IDM1NC4wMzIgMTYuMzEzNyAzNTMuNzY4IDE2LjI0ODJDMzUzLjgzMyAxNy44MjM5IDM1My44NjcgMTguMjgzNCAzNTMuODY3IDE5LjQzMjVWMjMuNjM0N0MzNTMuODY3IDI0LjY4NSAzNTMuODMzIDI1LjMwODggMzUzLjc2OCAyNi44MTlDMzU0LjE2NCAyNi43MjA2IDM1NC40OTUgMjYuNzIwNiAzNTQuNzI2IDI2LjcyMDZDMzU0Ljk1NyAyNi43MjA2IDM1NS4zNTMgMjYuNzUzNSAzNTUuNjUxIDI2LjgxOUMzNTUuNTg1IDI1LjE0NDkgMzU1LjU4NSAyNC4xNTk3IDM1NS41ODUgMjMuNjM0N1YyMS40MzUyQzM1Ni44MDcgMjIuODc5NiAzNTguNjkgMjUuMjQzMyAzNTkuNzQ4IDI2LjgxOUMzNjAuMTMgMjYuNzU2MyAzNjAuNTE3IDI2LjcyMzQgMzYwLjkwNSAyNi43MjA2QzM2MS4yMDIgMjYuNzIwNiAzNjEuNjY1IDI2LjcyMDYgMzYyLjE2IDI2LjgxOVYyNi44MTlaTTM3Mi42MDEgNDAuMDE1OEMzNzIuNTY4IDM5Ljg1MTkgMzcyLjUzNSAzOS43MjA2IDM3Mi41MzUgMzkuNTIzNEMzNzIuNTM1IDM5LjM5MjggMzcyLjU2OCAzOS4yMjgxIDM3Mi42MDEgMzkuMDk2NEMzNzEuMjggMzkuMTI5NyAzNjguOTAxIDM5LjE5NTIgMzY4LjM3MiAzOS4xOTUyVjM0LjY2NDlDMzY5LjY5NCAzNC42NjQ5IDM3MC45ODIgMzQuNjY0OSAzNzIuMjcgMzQuNzk2M0MzNzIuMjM4IDM0LjYzMjQgMzcyLjIwNCAzNC40Njc3IDM3Mi4yMDQgMzQuMzM2NEMzNzIuMjA0IDM0LjIwNTggMzcyLjIwNCAzNC4wNDE5IDM3Mi4yNyAzMy44NDQ3QzM3MS4zNDYgMzMuOTQyOCAzNjkuMTk4IDMzLjk3NiAzNjguMzcyIDMzLjk3NlYzMC4yNjZDMzY5LjgyNiAzMC4yNjYgMzcwLjY4NSAzMC4yNjYgMzcxLjE4IDMwLjI5OTNMMzcyLjUwMiAzMC4zNjUxQzM3Mi40MzYgMzAuMTY3OSAzNzIuNDM2IDMwLjA2OTIgMzcyLjQzNiAyOS45MDUzQzM3Mi40MzYgMjkuNzQxNCAzNzIuNDM2IDI5LjcwODEgMzcyLjUwMiAyOS40NDU4QzM3MS40MTEgMjkuNDc4MyAzNjkuOTI1IDI5LjU0MzggMzY5LjI2NCAyOS41NDM4QzM2OC44MDIgMjkuNTQzOCAzNjcuMzQ4IDI5LjUxMTMgMzY2LjU4NyAyOS40NDU4QzM2Ni42NTQgMzAuMjY2NCAzNjYuNjg2IDMxLjYxMjMgMzY2LjY4NiAzMi41NjQyVjM2Ljg2NTFDMzY2LjY4NiAzNy40ODg1IDM2Ni42MiAzOC43MzU3IDM2Ni41ODcgNDAuMDE2MkMzNjcuNTEzIDM5Ljk1MDMgMzY4LjgwMiAzOS45NTAzIDM2OS4yNjQgMzkuOTUwM0MzNzAuMDI0IDM5Ljk1IDM3MS42NDMgMzkuOTUgMzcyLjYwMSA0MC4wMTU4Wk0zNjQuNjA1IDM5LjEyOTRDMzY0LjQ0IDM4LjgwMDggMzY0LjM0MSAzOC4zMDg4IDM2NC4yNzUgMzguMDQ2MUMzNjIuOTIgMzkuMTYxOSAzNjEuOTk1IDM5LjM5MjQgMzYwLjkzOCAzOS4zOTI0QzM1OC41OTIgMzkuMzkyNCAzNTcuMzM3IDM3LjI5MTMgMzU3LjMzNyAzNC42NjQ5QzM1Ny4zMzcgMzEuNzQzNiAzNTguNzU3IDMwLjAzNjIgMzYxLjE2OSAzMC4wMzYyQzM2Mi40MjUgMzAuMDM2MiAzNjMuNjE0IDMwLjU5NDUgMzY0LjE3NiAzMS4xNTI4QzM2NC4yMDggMzAuODg5OCAzNjQuMzA4IDMwLjM2NDggMzY0LjQ3MyAzMC4wNjg4QzM2My4zMTYgMjkuNTExMyAzNjIuMjU5IDI5LjM0NjYgMzYxLjEwMiAyOS4zNDY2QzM1Ny4yMzcgMjkuMzQ2NiAzNTUuNDUzIDMxLjc0MzYgMzU1LjQ1MyAzNC44Mjg4QzM1NS40NTMgMzguMzA5MSAzNTcuNzk4IDQwLjE0NzEgMzYwLjczOSA0MC4xNDcxQzM2Mi40MjUgNDAuMTQ3MSAzNjMuODEyIDM5LjYyMjIgMzY0LjYwNSAzOS4xMjk0VjM5LjEyOTRaTTM0Mi4zMDMgMjYuODE5QzM0MC41MTkgMjMuNDA0OSAzMzguOCAxOS4xMzczIDMzNy41NzggMTYuMTE2OUgzMzcuMzhDMzM2LjU4NyAxOC4wMjA3IDMzNS4xMzMgMjEuMjcwOSAzMzQuNzM3IDIyLjE4OTlDMzM0LjI3NCAyMy4zMDYxIDMzMy4yNSAyNS41MDU2IDMzMi41ODkgMjYuODE4NkMzMzIuODAzIDI2Ljc1MzggMzMzLjAyNiAyNi43MjA2IDMzMy4yNSAyNi43MjAyQzMzMy40NDggMjYuNzIwMiAzMzMuNjEzIDI2Ljc1MzEgMzMzLjg0NSAyNi44MTg2QzMzNC4xNzUgMjUuOTMyMiAzMzQuNjM4IDI0LjgxNiAzMzUuMTMzIDIzLjYzNDNDMzM1Ljc5NCAyMy42MDE0IDMzNi4zODkgMjMuNTY4OCAzMzYuOTg0IDIzLjU2ODhDMzM3LjYxMiAyMy41Njg4IDMzOC4yNzIgMjMuNjAxNCAzMzguOTMzIDIzLjYzNDNMMzM5LjU5NCAyNS4yMUwzNDAuMjU1IDI2LjgxODZDMzQwLjcxNyAyNi43MjAyIDM0MS4wOCAyNi43MjAyIDM0MS4zMTIgMjYuNzIwMkMzNDEuNjA5IDI2LjcyMDYgMzQxLjg3MyAyNi43MjA2IDM0Mi4zMDMgMjYuODE5VjI2LjgxOVpNMzUzLjYzNiAyOS40NDU0QzM1My40MzggMjkuNTExMyAzNTMuMjczIDI5LjU0MzUgMzUzLjEwNyAyOS41NDM1QzM1Mi45MDkgMjkuNTQzNSAzNTIuNzQ0IDI5LjUxMDkgMzUyLjU0NiAyOS40NDU0QzM1Mi42NDQgMzAuNzU4NCAzNTIuNjc4IDMyLjA3MTQgMzUyLjY3OCAzMy4zNTE5VjM2LjczMzRDMzUyLjE0OSAzNi4yNzM2IDM1MC44NiAzNS4wOTE5IDM0OS4zNzQgMzMuNzEzQzM0Ny44NiAzMi4zMDc0IDM0Ni4zOTQgMzAuODUxMSAzNDQuOTc5IDI5LjM0NjZIMzQ0Ljc0OEMzNDQuNzgxIDMwLjgyNDMgMzQ0LjgxNCAzMi40IDM0NC44MTQgMzMuODExNFYzNS44Nzk5QzM0NC44MTQgMzcuNjUyOCAzNDQuODE0IDM4LjYwNDcgMzQ0LjcxNSA0MC4wMTYyQzM0NC45OCAzOS45NTAzIDM0NS4xMTIgMzkuOTUwMyAzNDUuMzEgMzkuOTUwM0MzNDUuNDQyIDM5Ljk1MDMgMzQ1LjU3NSAzOS45NTAzIDM0NS44MDYgNDAuMDE2MkMzNDUuNzQgMzguNjcwNiAzNDUuNzA3IDM2LjQ3MDggMzQ1LjcwNyAzNS44Nzk5VjMyLjU5NjhDMzQ4LjE4NSAzNC44NjI1IDM1MS4yMjQgMzcuODgyNiAzNTMuNDcxIDQwLjE0NzVIMzUzLjYwM0MzNTMuNjAzIDM4LjkzMjkgMzUzLjUzNyAzNy43MTc5IDM1My41MzcgMzYuNTA0VjM0LjYzMjdDMzUzLjUzNiAzMi40MzI1IDM1My41MzYgMzEuMzQ5MyAzNTMuNjM2IDI5LjQ0NTRaTTM0Mi41NjcgNDAuMDE1OEMzNDIuNTM0IDM5Ljg1MTkgMzQyLjUwMSAzOS43MjA2IDM0Mi41MDEgMzkuNTIzNEMzNDIuNTAxIDM5LjM5MjggMzQyLjUzNCAzOS4yMjgxIDM0Mi41NjcgMzkuMDk2NEMzNDEuMjQ2IDM5LjEyOTcgMzM4Ljg2NyAzOS4xOTUyIDMzOC4zNzEgMzkuMTk1MlYzNC42NjQ5QzMzOS42NiAzNC42NjQ5IDM0MC45NDggMzQuNjY0OSAzNDIuMjM3IDM0Ljc5NjNDMzQyLjIwNCAzNC42MzI0IDM0Mi4xNzEgMzQuNDY3NyAzNDIuMTcxIDM0LjMzNjRDMzQyLjE3MSAzNC4yMDU4IDM0Mi4xNzEgMzQuMDQxOSAzNDIuMjM3IDMzLjg0NDdDMzQxLjMxMiAzMy45NDI4IDMzOS4xOTcgMzMuOTc2IDMzOC4zNzEgMzMuOTc2VjMwLjI2NkMzMzkuNzkyIDMwLjI2NiAzNDAuNjUxIDMwLjI2NiAzNDEuMTc5IDMwLjI5OTNMMzQyLjQ2OCAzMC4zNjUxQzM0Mi40MzUgMzAuMTY3OSAzNDIuNDM1IDMwLjA2OTIgMzQyLjQzNSAyOS45MDUzQzM0Mi40MzUgMjkuNzQxNCAzNDIuNDM1IDI5LjY3NTUgMzQyLjQ2OCAyOS40NDU4QzM0MS4zNzggMjkuNDc4MyAzMzkuODkxIDI5LjU0MzggMzM5LjIzIDI5LjU0MzhDMzM4Ljc2NyAyOS41NDM4IDMzNy4zMTQgMjkuNTExMyAzMzYuNTU0IDI5LjQ0NThDMzM2LjYyIDMwLjI2NjQgMzM2LjY1MyAzMS42MTIzIDMzNi42NTMgMzIuNTY0MlYzNi44NjUxQzMzNi42NTMgMzcuNDg4NSAzMzYuNTg3IDM4LjczNTcgMzM2LjU1NCA0MC4wMTYyQzMzNy41MTIgMzkuOTUwMyAzMzguNzY3IDM5Ljk1MDMgMzM5LjIzIDM5Ljk1MDNDMzM5Ljk5IDM5Ljk1IDM0MS42NDIgMzkuOTUgMzQyLjU2NyA0MC4wMTU4VjQwLjAxNThaTTMzMS4yMDEgMjYuODE5QzMzMC42NzMgMjMuMjQwNiAzMzAuMjEgMTkuNDk4NCAzMjkuODQ3IDE2LjExNjlDMzI5Ljc0OCAxNi4xNDk4IDMyOS43MTQgMTYuMTQ5OCAzMjkuNjQ5IDE2LjExNjlDMzI4Ljk1NSAxNy4zMzE1IDMyOC4xNjIgMTguNjQ0NSAzMjcuNTY3IDE5LjU2MzlDMzI3LjAwNiAyMC40NTAzIDMyNi4zNDUgMjEuNTAwNyAzMjUuNTg1IDIyLjYxNjlDMzIzLjk5OSAyMC41ODE3IDMyMi4zNDcgMTguMDIxMSAzMjEuMjU2IDE2LjExNjlDMzIxLjE5IDE2LjE0OTggMzIxLjE1NyAxNi4xMTY5IDMyMS4wOTEgMTYuMTE2OUMzMjAuNzI4IDE5LjQ5OCAzMjAuMjMyIDIzLjI3MzIgMzE5LjczNiAyNi44MTlDMzIwLjAwMSAyNi43MjA2IDMyMC4xNjYgMjYuNzIwNiAzMjAuMjk4IDI2LjcyMDZDMzIwLjQ5NiAyNi43MjA2IDMyMC42MjggMjYuNzUzNSAzMjAuODU5IDI2LjgxOUMzMjAuOTkyIDI0LjQ1NTMgMzIxLjI1NiAyMi4xMjQ0IDMyMS41NTMgMTkuNjYyM0MzMjIuODQyIDIxLjUzMzYgMzIzLjk2NSAyMy4xNDIyIDMyNS4yMjEgMjQuODQ5M0MzMjYuMjc4IDIzLjIwNzcgMzI3LjM2OCAyMS40MzQ4IDMyOC41NTggMTkuNjI5NEMzMjguODg4IDIyLjE1NyAzMjkuMTg2IDI0LjQ1NTMgMzI5LjM1MSAyNi44MTlDMzI5Ljc4IDI2LjcyMDYgMzMwLjA3OCAyNi43MjA2IDMzMC4yNzYgMjYuNzIwNkMzMzAuNTQgMjYuNzIwNiAzMzAuODA1IDI2LjcyMDYgMzMxLjIwMSAyNi44MTlWMjYuODE5Wk0zMzQuOTY4IDMyLjIwMjhDMzM0Ljk2OCAzMC4yOTg5IDMzMy40NDggMjkuNDQ1NCAzMzEuNTk4IDI5LjQ0NTRDMzMwLjc3MiAyOS40NDU0IDMyOS44OCAyOS41NDM1IDMyOS4yNTIgMjkuNTQzNUMzMjkuMDIxIDI5LjU0MzUgMzI4LjUyNSAyOS41NDM1IDMyNy45OTcgMjkuNDc3NkMzMjguMDMgMzAuNTI4MyAzMjguMDk2IDMxLjQxNDggMzI4LjA5NiAzMi40MzIyVjM2LjkyOTVDMzI4LjA5NiAzNy45MTQ4IDMyOC4wMyAzOC45OTggMzI3Ljk5NyA0MC4wMTU0QzMyOC40MjYgMzkuOTQ5NiAzMjguNzI0IDM5Ljk0OTYgMzI4LjkyMiAzOS45NDk2QzMyOS4xNTMgMzkuOTQ5NiAzMjkuNDg0IDM5Ljk0OTYgMzI5Ljg4IDQwLjAxNTRDMzI5LjgxNSAzOS4wMzE5IDMyOS43ODIgMzguMDQ2NSAzMjkuNzgxIDM3LjA2MDlWMzUuNDJDMzMwLjE0NSAzNS40NTI2IDMzMC41MDggMzUuNDUyNiAzMzAuOTA1IDM1LjQ1MjZDMzMyLjgyIDM1LjQ1MjYgMzM0Ljk2OCAzNC43MzA0IDMzNC45NjggMzIuMjAyOFYzMi4yMDI4Wk0zMjYuMDE0IDM2Ljg5NzNDMzI2LjAxNCAzNS4yNTU4IDMyNC45MjQgMzQuNTMzNiAzMjMuMDQgMzMuNzQ1NkMzMjEuNjg2IDMzLjE4OCAzMjAuOTkyIDMyLjY5NTYgMzIwLjk5MiAzMS42NDQ1QzMyMC45OTIgMzAuNjYgMzIxLjc1MiAzMC4wMzYyIDMyMy4wMDggMzAuMDM2MkMzMjMuODM0IDMwLjAzNjIgMzI0LjU2MSAzMC4zMzE1IDMyNS4yMjIgMzAuODU2OEMzMjUuMjg3IDMwLjQ5NTcgMzI1LjQ1MyAzMC4xMzQ3IDMyNS42NTEgMjkuODM5NEMzMjQuODU4IDI5LjQ3ODMgMzIzLjk5OSAyOS4zNDcgMzIzLjA3NCAyOS4zNDdDMzIwLjM2NSAyOS4zNDcgMzE5LjUwNSAzMC44OTA1IDMxOS41MDUgMzIuMjAzNUMzMTkuNTA1IDMzLjgxMTggMzIwLjI5OSAzNC41NjcyIDMyMi4zNDcgMzUuMzU1M0MzMjMuNjM2IDM1Ljg0NyAzMjQuMjk2IDM2LjQ3MTEgMzI0LjI5NiAzNy41NTQ0QzMyNC4yOTYgMzguNzAzNSAzMjMuNDM3IDM5LjQyNTcgMzIyLjI0OCAzOS40MjU3QzMyMS41NTQgMzkuNDI1NyAzMjAuMzY1IDM5LjA2NDYgMzE5LjUzOSAzOC4zMDk5QzMxOS41MDUgMzguNzM2MSAzMTkuNTA1IDM5LjEzMDQgMzE5LjM3MyAzOS40OTE1QzMxOS45MDIgMzkuNzU0NiAzMjEuMTI1IDQwLjE0NzkgMzIyLjIxNSA0MC4xNDc5QzMyNC45OSA0MC4xNDcxIDMyNi4wMTQgMzguNDM5NyAzMjYuMDE0IDM2Ljg5NzNWMzYuODk3M1pNMzc4LjE1MiAxNy45ODgyQzM3OC4xNTIgMTguOTczIDM3Ny40NTggMTkuNjYyMyAzNzYuNzY0IDIwLjIyMDJDMzc2LjMwMSAxOS41NjM5IDM3NS43NCAxOC42NzcxIDM3NS43NCAxNy45ODgyQzM3NS43NCAxNy4yMzMxIDM3Ni4yNjggMTYuODA2MSAzNzYuOTk1IDE2LjgwNjFDMzc3Ljk4NyAxNi44MDY1IDM3OC4xNTIgMTcuNjkyNiAzNzguMTUyIDE3Ljk4ODJWMTcuOTg4MlpNMzc4LjQ4MiAyNS4wMTMyQzM3OC4xMTkgMjUuMzQxNyAzNzcuMjYgMjUuOTY1NSAzNzYuNTMzIDI1Ljk2NTVDMzc1LjU3NCAyNS45NjU1IDM3NC40MTggMjUuMjc1OSAzNzQuNDE4IDIzLjc5ODZDMzc0LjQxOCAyMi40ODU1IDM3NS4yNzcgMjEuODk0NyAzNzUuODA2IDIxLjU2NjVDMzc3LjAyOCAyMy4yNDA2IDM3Ny4wOTUgMjMuMzM5MSAzNzguNDgyIDI1LjAxMzJaTTM3OS44MDQgMzIuMjAyOEMzNzkuODA0IDMzLjI1MzUgMzc5LjI3NSAzNC40MDI2IDM3Ny43NTUgMzQuNDAyNkMzNzcuMzI2IDM0LjQwMjYgMzc2LjkyOSAzNC40MDI2IDM3Ni41MzMgMzQuMzY5M1YzMC4yNjU2QzM3Ni45MjkgMzAuMTY3NiAzNzcuNDI1IDMwLjEzNDMgMzc3LjcyMiAzMC4xMzQzQzM3OS4wMTEgMzAuMTM0MyAzNzkuODA0IDMwLjg4OTggMzc5LjgwNCAzMi4yMDI4Wk0zMzguNjAyIDIyLjgxNDFDMzM3LjkwOSAyMi44NDY2IDMzNy41NDUgMjIuODQ2NiAzMzcuMDgyIDIyLjg0NjZDMzM2LjUyMSAyMi44NDY2IDMzNi4xOSAyMi44NDY2IDMzNS40NjMgMjIuODE0MUwzMzcuMDgyIDE5LjAwNkwzMzguNjAyIDIyLjgxNDFaTTMzMy4xNTEgMzIuMzAwOEMzMzMuMTUxIDMzLjgxMTEgMzMyLjI1OCAzNC43OTU5IDMzMC44MDUgMzQuNzk1OUMzMzAuNTA3IDM0Ljc5NTkgMzMwLjE3NyAzNC43OTU5IDMyOS43OCAzNC43MzAxVjMwLjIzMjdDMzMwLjI0MyAzMC4xNjY5IDMzMC42MzkgMzAuMTMzOSAzMzEuMDM2IDMwLjEzMzlDMzMyLjQyNCAzMC4xMzQzIDMzMy4xNTEgMzEuMDIxMSAzMzMuMTUxIDMyLjMwMDhaTTM2OS41MjggMjMuNjY3NkMzNjkuNTI4IDIyLjAyNiAzNjguNDM4IDIxLjMwMzkgMzY2LjU1NSAyMC41MTYyQzM2NS4yIDE5Ljk1ODMgMzY0LjUwNiAxOS40OTg4IDM2NC41MDYgMTguNDE1MUMzNjQuNTA2IDE3LjQ2MzIgMzY1LjI2NiAxNi44MDY1IDM2Ni41MjEgMTYuODA2NUMzNjcuMzQ4IDE2LjgwNjUgMzY4LjA3NSAxNy4xMDE3IDM2OC43MzUgMTcuNjI3NUMzNjguODAyIDE3LjI2NjQgMzY4Ljk2NyAxNi45MDQ5IDM2OS4xMzEgMTYuNjQyMkMzNjguMzcyIDE2LjI4MTEgMzY3LjQ3OSAxNi4xMTcyIDM2Ni41ODcgMTYuMTE3MkMzNjMuOTQ0IDE2LjExNzIgMzYyLjk4NiAxNy42NiAzNjIuOTg2IDE5LjAwNkMzNjIuOTg2IDIwLjU4MTcgMzYzLjgxMiAyMS4zMzY4IDM2NS44NjEgMjIuMTI0NEMzNjcuMTQ5IDIyLjYxNjkgMzY3LjgxIDIzLjI0MDYgMzY3LjgxIDI0LjM1NjhDMzY3LjgxIDI1LjQ3MyAzNjYuOTUxIDI2LjE5NTIgMzY1Ljc2MiAyNi4xOTUyQzM2NS4wMzUgMjYuMTk1MiAzNjMuODc5IDI1LjgzNDEgMzYzLjA1MiAyNS4xMTE5QzM2My4wMiAyNS41Mzg5IDM2Mi45ODYgMjUuOSAzNjIuODg3IDI2LjI2MTFDMzYzLjM4MyAyNi41MjM4IDM2NC42MDYgMjYuOTE3NCAzNjUuNzI5IDI2LjkxNzRDMzY4LjUwNCAyNi45MTc0IDM2OS41MjggMjUuMjQzMyAzNjkuNTI4IDIzLjY2NzZWMjMuNjY3NloiIGZpbGw9IiMwMzY1NTUiLz4NCjxwYXRoIGQ9Ik02NDAuNDE2IDIwLjU1NzNDNjM4LjY3MSAxOS44MzU0IDYzNy42MzEgMTkuNTU1MSA2MzYuNTk4IDE5LjU1NTFDNjM1LjUxNCAxOS41NTUxIDYzNC44MTkgMTkuOTE3IDYzNC44MTkgMjAuNDc2NUM2MzQuODE5IDIyLjE2NDUgNjQwLjk2MiAyMS42ODkzIDY0MC45NjIgMjUuNTkzNkM2NDAuOTYyIDI3Ljc0NjQgNjM5LjAyNCAyOC45OTc0IDYzNi4zMzIgMjguOTk3NEM2MzQuMjIgMjguOTk3NCA2MzMuMTggMjguNDg4IDYzMS45ODMgMjcuOTExNlYyNS40OTYyQzYzMy43MSAyNi41NjM1IDYzNC43NjggMjYuOTQwMSA2MzYuMTAxIDI2Ljk0MDFDNjM3LjI1NiAyNi45NDAxIDYzNy44NzkgMjYuNTYzNSA2MzcuODc5IDI1LjkwNjNDNjM3Ljg3OSAyNC4wNjg1IDYzMS43MzcgMjQuNzQxNSA2MzEuNzM3IDIwLjcyMTNDNjMxLjczNyAxOC43ODI3IDYzMy41MzQgMTcuNDk5IDYzNi4zMzIgMTcuNDk5QzYzNy42ODIgMTcuNDk5IDYzOC45MDEgMTcuNzYzNSA2NDAuNDE2IDE4LjM3MDdWMjAuNTU3M1pNNjQ5LjAxNiAyOC40ODQxQzY0Ny45OTIgMjguODMwNiA2NDcuMTI2IDI4Ljk5NTQgNjQ2LjI2MiAyOC45OTU0QzY0My40MDIgMjguOTk1NCA2NDEuNTUyIDI3LjQ0MjIgNjQxLjU1MiAyNS4wNzkyQzY0MS41NTIgMjIuNzU5NCA2NDMuNDczIDIxLjEyMDIgNjQ2LjE1NiAyMS4xMjAyQzY0Ni45ODUgMjEuMTIwMiA2NDguMDQ0IDIxLjMxODIgNjQ4Ljg5MSAyMS42MTIzVjIzLjM4ODFDNjQ4LjIyMSAyMy4wNTYyIDY0Ny40NDQgMjIuODc0MSA2NDYuODA5IDIyLjg3NDFDNjQ1LjI3MyAyMi44NzQxIDY0NC4yODYgMjMuNzM0MyA2NDQuMjg2IDI1LjA2MTlDNjQ0LjI4NiAyNi40MDggNjQ1LjI1NiAyNy4yOTQgNjQ2LjcyIDI3LjI5NEM2NDcuMzM3IDI3LjI5NCA2NDcuODg2IDI3LjE2MjMgNjQ5LjAxNiAyNi43NjhMNjQ5LjAxNiAyOC40ODQxWk02NzEuMzIgMjQuMjA5QzY3MS40MjUgMjMuMTU0OCA2NzIuMDgxIDIyLjU0NTcgNjczLjA4NyAyMi41NDU3QzY3NC4wNzYgMjIuNTQ1NyA2NzQuNzQ2IDIzLjE3MjEgNjc0Ljg1MiAyNC4yMDlINjcxLjMyWk02NzIuOTEgMjEuMTIyOUM2NzAuNCAyMS4xMjI5IDY2OC42MTQgMjIuNzc1NSA2NjguNjE0IDI1LjEwMTJDNjY4LjYxNCAyNy40NDQxIDY3MC40NzEgMjguOTk1NCA2NzMuMzM1IDI4Ljk5NTRDNjczLjk3IDI4Ljk5NTQgNjc1LjUwNCAyOC45OTU0IDY3Ni45NjYgMjcuOTg3VjI2LjUwNDJDNjc1Ljc2OSAyNy4yOTkzIDY3NC45NzcgMjcuNTczMSA2NzMuOTU1IDI3LjU3MzFDNjcyLjM0MSAyNy41NzMxIDY3MS4zNTQgMjYuNzk0OSA2NzEuMjY1IDI1LjQ2NjZINjc3LjExQzY3Ny4yMzIgMjIuNjkzOSA2NzUuMjc5IDIxLjEyMjkgNjcyLjkxIDIxLjEyMjlWMjEuMTIyOVpNNjc4LjA5OSAyOC44NTcySDY4MC42NTRWMjEuMjYyN0g2NzguMDk5VjI4Ljg1NzJaTTY4Ny43NjcgMjYuNzgxNUM2ODcuMjM0IDI3LjIyODEgNjg2Ljc5MiAyNy40MDcyIDY4Ni4yNDYgMjcuNDA3MkM2ODUuMDQzIDI3LjQwNzIgNjg0LjI4MSAyNi40ODM4IDY4NC4yODEgMjUuMTAwNEM2ODQuMjgxIDIzLjU4NDEgNjg1LjA0MyAyMi43MTAxIDY4Ni4zMzEgMjIuNzEwMUM2ODYuNzkyIDIyLjcxMDEgNjg3LjM5NCAyMi45MDggNjg3Ljc2NyAyMy4xNTU5VjI2Ljc4MTVaTTY4Ny43NjcgMTcuNjM5MVYyMS41OTU4QzY4Ny4wNzYgMjEuMjg0NyA2ODYuMzg4IDIxLjEyMDIgNjg1LjY0NCAyMS4xMjAyQzY4My4zMTMgMjEuMTIwMiA2ODEuNyAyMi43MjY2IDY4MS43IDI1LjA1MDdDNjgxLjcgMjcuMzI0OCA2ODMuMzEzIDI4Ljk5NzQgNjg1LjUgMjguOTk3NEM2ODYuMzY3IDI4Ljk5NzQgNjg3LjAzNyAyOC43ODU2IDY4Ny43NjcgMjguMjQzNVYyOC44NTQ5SDY5MC4zMjJWMTcuNjM5MUg2ODcuNzY3Wk02OTQuMTA1IDI0LjIwOUM2OTQuMjExIDIzLjE1NDggNjk0Ljg2NCAyMi41NDU3IDY5NS44NjggMjIuNTQ1N0M2OTYuODU4IDIyLjU0NTcgNjk3LjUzNSAyMy4xNzIxIDY5Ny42NDEgMjQuMjA5SDY5NC4xMDVaTTY5NS42OTQgMjEuMTIyOUM2OTMuMTg0IDIxLjEyMjkgNjkxLjQgMjIuNzc1NSA2OTEuNCAyNS4xMDEyQzY5MS40IDI3LjQ0NDEgNjkzLjI1OSAyOC45OTU0IDY5Ni4xMTkgMjguOTk1NEM2OTYuNzUzIDI4Ljk5NTQgNjk4LjI5IDI4Ljk5NTQgNjk5Ljc1NSAyNy45ODdWMjYuNTA0MkM2OTguNTU3IDI3LjI5OTMgNjk3Ljc2MyAyNy41NzMxIDY5Ni43MzYgMjcuNTczMUM2OTUuMTMxIDI3LjU3MzEgNjk0LjE0IDI2Ljc5NDkgNjk0LjA1MSAyNS40NjY2SDY5OS44OTRDNzAwLjAxNSAyMi42OTM5IDY5OC4wNjEgMjEuMTIyOSA2OTUuNjk0IDIxLjEyMjkiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik03MDMuNzIxIDIzLjQzNjhINzAzLjc1OEM3MDQuNTE3IDIxLjg1NjIgNzA1LjM2NiAyMS4xMTUgNzA2LjM1MiAyMS4xMTVDNzA2Ljg2MiAyMS4xMTUgNzA3LjMwMyAyMS4yOTY0IDcwOC4wNDQgMjEuODA3Nkw3MDcuMzQxIDIzLjkxMzNDNzA2LjY3IDIzLjUxODYgNzA2LjIyOSAyMy4zNTM1IDcwNS44MjMgMjMuMzUzNUM3MDQuODg2IDIzLjM1MzUgNzA0LjI4NiAyNC4xNzc1IDcwMy43MjEgMjUuNTcwNFYyOC44NDY2SDcwMS4xNjJWMjEuMjU0MUg3MDMuNzIxVjIzLjQzNjhaTTY4MC43NzUgMTguMDY3NEM2ODEuMDE1IDE4LjY1NzUgNjgwLjU4MyAxOS40ODA1IDY3OS44MTQgMTkuOTA0QzY3OS4wNDEgMjAuMzI3MSA2NzguMjI0IDIwLjE5MjggNjc3Ljk4NiAxOS42MDI3QzY3Ny43NDMgMTkuMDExNyA2NzguMTczIDE4LjE4NzcgNjc4Ljk0NSAxNy43NjY2QzY3OS43MTYgMTcuMzQxMSA2ODAuNTMzIDE3LjQ3NTkgNjgwLjc3NSAxOC4wNjc0WiIgZmlsbD0iIzAwOUU0RCIvPg0KPHBhdGggZD0iTTY1OC4yMiAyNC4wMjMxQzY1OC4yMiAyMS45NjUxIDY1Ni43MTkgMjEuMTIyNiA2NTUuMjM5IDIxLjEyMjZDNjU0LjIzMiAyMS4xMjI2IDY1My40MDQgMjEuNTE4NCA2NTIuNjY0IDIyLjM5MjFINjUyLjYyOVYxNy42MzkySDY1MC4wNzFWMjguODM1M0g2NTIuNjI5VjI0LjAyMzFDNjUzLjIyOCAyMy4yMTYxIDY1My43MzggMjIuODcxMSA2NTQuMzM4IDIyLjg3MTFDNjU1LjEzNCAyMi44NzExIDY1NS42NjIgMjMuMzk4NiA2NTUuNjYyIDI0LjUzMjlWMjcuMjAwOEM2NTYuNTIgMjYuNzg5NiA2NTcuMzkzIDI2LjUzNzQgNjU4LjIyIDI2LjQ0MzhWMjQuMDIzMVpNNjY0LjYzNiAyMS4xMTk5QzY2My41OTQgMjEuMTE5OSA2NjIuNzk5IDIxLjQ4MTEgNjYxLjk4NCAyMi4zNDkzVjIxLjI2MjRINjU5LjQyOFYyNi40MjM0QzY2MC4zMTMgMjYuNTA1OCA2NjEuNDQzIDI2Ljg4NDcgNjYxLjk4NCAyNy41MTA0VjIzLjk2MzRDNjYyLjY1NyAyMy4wMjMyIDY2My4xMzQgMjIuNzA5NyA2NjMuNzcgMjIuNzA5N0M2NjQuNDk0IDIyLjcwOTcgNjY1LjA0NSAyMy4xNTU2IDY2NS4wNDUgMjQuMjI2NFYyOC44MzcySDY2Ny42MDJWMjQuMDI4OUM2NjcuNjAyIDIxLjc5MjYgNjY1LjkwOCAyMS4xMTk5IDY2NC42MzYgMjEuMTE5OVYyMS4xMTk5Wk02NjkuMDE1IDMxLjAxODFINjY2LjA0M1YzMi45ODY0SDY2OC45MDlWMzMuODMxMkg2NjYuMDQzVjM1Ljg2MTlINjY5LjEwM1YzNi43MDU1SDY2NS4wNDZWMzAuMTc1Mkg2NjkuMDE1TDY2OS4wMTUgMzEuMDE4MVpNNjcxLjQ0MiAzNi43MDkzSDY3Mi4zNTJWMzAuMTczM0g2NzEuNDQyVjM2LjcwOTNaTTY3Ni44NTkgMzMuMDQ4NEM2NzcuNTA0IDMzLjA0ODQgNjc3LjkwNCAzMy40NjMxIDY3Ny45MzUgMzQuMTE0Mkg2NzUuNjE2QzY3NS43NDIgMzMuNDM0MiA2NzYuMTYxIDMzLjA0ODQgNjc2Ljg1OSAzMy4wNDg0Wk02NzUuNiAzNC42ODFINjc4Ljg0MkM2NzguODQyIDMzLjA4NjkgNjc4LjA2MiAzMi4zMTggNjc2LjgzOCAzMi4zMThDNjc1LjU2OSAzMi4zMTggNjc0LjY4OCAzMy4xOTI0IDY3NC42ODggMzQuNDk2OUM2NzQuNjg4IDM1LjY4OSA2NzUuNDg0IDM2Ljc4OTggNjc2LjkxNyAzNi43ODk4QzY3Ny42OTggMzYuNzg5OCA2NzguMjAzIDM2LjYyODEgNjc4Ljc2MyAzNi4yODJWMzUuNDU2QzY3OC4yMjIgMzUuNzg1NiA2NzcuNjk4IDM1Ljk3NTggNjc3LjE0NyAzNS45NzU4QzY3Ni4yNjUgMzUuOTc1OCA2NzUuNzQyIDM1LjUzNSA2NzUuNiAzNC42ODA2VjM0LjY4MVpNNjg0Ljc4NiAzMy41MzA5QzY4NC4yNjMgMzMuMTk2NiA2ODMuOTE0IDMzLjA5ODUgNjgzLjUxNSAzMy4wOTg1QzY4Mi42ODIgMzMuMDk4NSA2ODIuMTA1IDMzLjY5NDUgNjgyLjEwNSAzNC41NjdDNjgyLjEwNSAzNS40NTYgNjgyLjcxOSAzNS45OTE2IDY4My42NjggMzUuOTkxNkM2ODQuMDU4IDM1Ljk5MTYgNjg0LjQzIDM1Ljg5NzMgNjg0Ljg4OCAzNS43MDU5VjM2LjU0MjZDNjg0LjU4MiAzNi42Nzc0IDY4My45OTcgMzYuNzg5OCA2ODMuNTE1IDM2Ljc4OThDNjgyLjEzNiAzNi43ODk4IDY4MS4xOCAzNS45MDYyIDY4MS4xOCAzNC42NDMyQzY4MS4xOCAzMy4yMTc4IDY4Mi4wNTQgMzIuMzE4IDY4My40NTMgMzIuMzE4QzY4My45ODcgMzIuMzE4IDY4NC4zNDYgMzIuNDMzOSA2ODQuNzg3IDMyLjYxNDVMNjg0Ljc4NiAzMy41MzA5Wk02ODguOTM0IDMyLjQwMDRINjkwLjM5NVYzMy4xNjUxSDY4OC45MzRWMzUuMzc1MkM2ODguOTM0IDM1Ljg4MTEgNjg5LjMyNyAzNi4wMjc0IDY4OS41OTMgMzYuMDI3NEM2ODkuOTIyIDM2LjAyNzQgNjkwLjI2MiAzNS45MiA2OTAuNjMgMzUuNzA3OVYzNi41MDM3QzY5MC4zMSAzNi42Njc4IDY4OS44MiAzNi43ODk4IDY4OS41MTkgMzYuNzg5OEM2ODguNTI4IDM2Ljc4OTggNjg4LjAyNyAzNi4yMTYxIDY4OC4wMjcgMzUuNDM5MVYzMy4xNjUxSDY4Ny4yMjRWMzMuMDcwM0w2ODguOTM0IDMxLjUxMDJWMzIuNDAwNFpNNjkzLjg3NiAzMi40MDA0VjMzLjM5NjlINjkzLjg5NUM2OTQuMzU5IDMyLjYzNDUgNjk0LjggMzIuMzE4IDY5NS4yMyAzMi4zMThDNjk1LjYwMSAzMi4zMTggNjk1Ljk0NyAzMi40ODAxIDY5Ni4zMjkgMzIuODE2Nkw2OTUuODQ3IDMzLjU2NDRDNjk1LjU3IDMzLjMwOTEgNjk1LjIxMSAzMy4xMzMxIDY5NC45OTUgMzMuMTMzMUM2OTQuMzY4IDMzLjEzMzEgNjkzLjg3NiAzMy43MjY4IDY5My44NzYgMzQuNDYyNlYzNi43MDkzSDY5Mi45NjdWMzIuNDAwNEg2OTMuODc2Wk03MDUuNjU3IDMzLjUzMDlDNzA1LjEzMSAzMy4xOTY2IDcwNC43ODIgMzMuMDk4NSA3MDQuMzgxIDMzLjA5ODVDNzAzLjU0OSAzMy4wOTg1IDcwMi45NzcgMzMuNjk0NSA3MDIuOTc3IDM0LjU2N0M3MDIuOTc3IDM1LjQ1NiA3MDMuNTkyIDM1Ljk5MTYgNzA0LjUzNSAzNS45OTE2QzcwNC45MjUgMzUuOTkxNiA3MDUuMjk1IDM1Ljg5NzMgNzA1Ljc2IDM1LjcwNTlWMzYuNTQyNkM3MDUuNDQ3IDM2LjY3NzQgNzA0Ljg2MiAzNi43ODk4IDcwNC4zOCAzNi43ODk4QzcwMy4wMDQgMzYuNzg5OCA3MDIuMDQ0IDM1LjkwNjIgNzAyLjA0NCAzNC42NDMyQzcwMi4wNDQgMzMuMjE3OCA3MDIuOTIyIDMyLjMxOCA3MDQuMzIgMzIuMzE4QzcwNC44NTUgMzIuMzE4IDcwNS4yMTIgMzIuNDMzOSA3MDUuNjU3IDMyLjYxNDVMNzA1LjY1NyAzMy41MzA5Wk02OTguNzQyIDM2LjcwOTNINjk5LjY1MlYzMi40MDA4SDY5OC43NDJWMzYuNzA5M1oiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik02OTkuNjg0IDMwLjg1MjVDNjk5Ljc3MyAzMS4wNjA0IDY5OS42MTggMzEuMzU0NCA2OTkuMzQ0IDMxLjUwNDFDNjk5LjA2OCAzMS42NTQzIDY5OC43NzYgMzEuNjA2MiA2OTguNjkzIDMxLjM5NzhDNjk4LjYxIDMxLjE4NzQgNjk4Ljc2MSAzMC44OTU4IDY5OS4wMzggMzAuNzQ1NkM2OTkuMzExIDMwLjU5MzUgNjk5LjYwMSAzMC42NDIxIDY5OS42ODQgMzAuODUyNVYzMC44NTI1Wk02NTguOTQgMzEuMjAwOUM2NTguNzc5IDMxLjIwMDkgNjU4LjcxMSAzMS4yMjU1IDY1OC42NDYgMzEuMjkzOEM2NTguNjIgMzEuMzIwMyA2NTguNjEgMzEuMzQ3MiA2NTguNiAzMS40MDExTDY1Ny43ODQgMzQuMjg3QzY1Ny41OTMgMzUuMjk5MiA2NTYuMjU5IDM2LjMwOTkgNjU0LjUyMSAzNi4zMDk5SDY1Mi4xMDRMNjUyLjUyMyAzNC44MjdINjU0LjA3NkM2NTQuMjM0IDM0LjgyNyA2NTQuMzU4IDM0Ljc3MjEgNjU0LjQ2MiAzNC42NjQzQzY1NC41IDM0LjYyMjUgNjU0LjU1IDM0LjU1NyA2NTQuNTU2IDM0LjQ4OTZMNjU1LjIwMSAzMS45NjgxQzY1NS4zOTEgMzAuOTU1NSA2NTYuNTM4IDI5LjgzNjkgNjU4LjI3NiAyOS44MzY5SDY2MC43NTFMNjYwLjQzNSAzMS4yMDA5SDY1OC45NFpNNjU5LjQ5NyAzMi45NTk2TDY1OS43NzMgMzIuMDI1OUg2NjIuMjg4QzY2Mi41OTggMzAuNjcyIDY2Mi4zNTQgMjkuNDE3NyA2NjEuNDczIDI4LjU5NjFDNjU5LjY4OSAyNi45MzMyIDY1NS45NTcgMjcuNDk4MyA2NTMuMTc3IDI5Ljk3NzlDNjUyLjc0MyAzMC4zNjMgNjUyLjM3NiAzMC43NzkzIDY1Mi4wNDIgMzEuMjA0OEg2NTMuNTU2TDY1My4yMDQgMzIuMTQwNEg2NTEuMzk1QzY1MS4yMjIgMzIuNDM1NCA2NTEuMDYgMzIuNzI4MSA2NTAuOTM2IDMzLjAyNUg2NTMuMDgxTDY1Mi43MzcgMzMuOTYwN0g2NTAuNjNDNjUwLjI2OSAzNS4zOTAxIDY1MC40OTkgMzYuNzIzMyA2NTEuNDA2IDM3LjU2OTlDNjUzLjE2NyAzOS4yMTE2IDY1Ni44ODggMzguNjM0NiA2NTkuNjY3IDM2LjE1NTRDNjYwLjE1MyAzNS43MjQyIDY2MC41NTUgMzUuMjU4NyA2NjAuOTE4IDM0Ljc4MDhINjU4Ljk3M0w2NTkuMjY5IDMzLjg0NzFINjYxLjU0M0M2NjEuNzEgMzMuNTUwMSA2NjEuODYzIDMzLjI1NjUgNjYxLjk4MyAzMi45NTk2SDY1OS40OTdaIiBmaWxsPSIjMDA5RTREIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNThfMTExKSI+DQo8cGF0aCBkPSJNNzc1LjA2OCA0MS4yMjc0Qzc2Ni4yODUgNDIuMDQ2MyA3NTcuMTMxIDQwLjc1NjQgNzU1Ljg0OCAzMy44MTlDNzU1LjIyMSAzMC4zOTkgNzU2Ljc2NSAyNi43NzI1IDc1OC44MSAyNC41MTg0VjIzLjMxNDhDNzU1LjEyNiAyNi41OCA3NTMuMTMgMzAuNzExNSA3NTQuMjggMzUuNTkyQzc1NS43NDggNDEuODUxOCA3NjMuNjAzIDQ1LjM5NjcgNzc1LjU5NSA0NC4yMTk1Qzc4MC4zNDIgNDMuNzU0NSA3ODYuNTUgNDIuMjEyIDc5MC44NjkgMzkuODE0NFYzNi40MTA5Qzc4Ni45NDkgMzguNzcxMyA3ODAuNDY4IDQwLjcyMTEgNzc1LjA2OCA0MS4yMjc0VjQxLjIyNzRaTTc5OC4yMDUgMjMuMjMzNUM3OTYuMTIyIDEyLjk1MzMgNzc2LjM3MyAxMi4zMDE2IDc2My42NDMgMjAuMTMzOFYyMC45OTg5Qzc3Ni4zNTkgMTQuMzkxNSA3OTQuMzk1IDE0LjQzMTcgNzk2LjAzNyAyMy45MDE2Qzc5Ni41ODkgMjcuMDM0MiA3OTQuODQzIDMwLjI5NzggNzkxLjcyMyAzMi4xNzdWMzQuNjM0MkM3OTUuNDc2IDMzLjI0MzIgNzk5LjMyNCAyOC43NDQyIDc5OC4yMDUgMjMuMjMzNVYyMy4yMzM1WiIgZmlsbD0iIzBFN0RDMiIvPg0KPHBhdGggZD0iTTc5MC4xNTkgMjEuNzM2OEg3ODcuODU2VjMyLjEwM0M3ODcuODU2IDMzLjMxNzkgNzg4LjQzNyAzNC4zNzQ0IDc5MC4xNTkgMzQuNTQzMlYyMS43MzY4Wk03NjIuNzM5IDI1LjUyMTdINzYwLjQzMkw3NjAuNDMxIDMyLjI5NDNDNzYwLjQzMSAzMy41MTM0IDc2MS4wMTMgMzQuNTY4OCA3NjIuNzM5IDM0LjczNDRWMjUuNTIxN1YyNS41MjE3Wk03NjAuNDMyIDIyLjA1MjFINzYyLjczMlYyNC4yNTg0SDc2MC40MzJWMjIuMDUyMVpNNzc2LjUzIDM0LjYyNzJDNzc0LjY2NiAzNC42MjcyIDc3My44NzcgMzMuMzE3NyA3NzMuODc3IDMyLjAyOFYyMy4wMzU1SDc3Ni4xNlYyNS41MjE3SDc3Ny44NzlWMjcuMzg1M0g3NzYuMTZWMzEuODg1NEM3NzYuMTYgMzIuNDExMyA3NzYuNDA3IDMyLjcwNDQgNzc2Ljk1IDMyLjcwNDRINzc3Ljg3OVYzNC42MjcyTDc3Ni41MyAzNC42MjcyVjM0LjYyNzJaTTc4MC43MzEgMzAuNzk2MUM3ODAuNzMxIDMxLjk3NjggNzgxLjQ2MSAzMi44NDQ2IDc4Mi43NTQgMzIuODQ0NkM3ODMuNzY2IDMyLjg0NDYgNzg0LjI2NiAzMi41NjA1IDc4NC44NSAzMS45NzY4TDc4Ni4yNjEgMzMuMzM0OUM3ODUuMzU3IDM0LjIzNzkgNzg0LjQwOSAzNC43ODcgNzgyLjczNyAzNC43ODdDNzgwLjU1MiAzNC43ODcgNzc4LjQ1OSAzMy41ODE5IDc3OC40NTkgMzAuMDY4NkM3NzguNDU5IDI3LjA2NTEgNzgwLjI4OCAyNS4zNjczIDc4Mi42ODYgMjUuMzY3M0M3ODUuMTI0IDI1LjM2NzMgNzg2LjUyNSAyNy4zNTQ5IDc4Ni41MjUgMjkuOTYzOVYzMC43OTYzSDc4MC43MzFWMzAuNzk2MVpNNzgyLjU4NiAyNy4yNzU2Qzc4MS44MDUgMjcuMjc1NiA3ODEuMjA0IDI3LjY4MjMgNzgwLjk1IDI4LjIzMDlDNzgwLjgwMiAyOC41NjA3IDc4MC43NDcgMjguODE3NyA3ODAuNzMxIDI5LjIyMjlINzg0LjI0OUM3ODQuMjA0IDI4LjIzMDkgNzgzLjc1OSAyNy4yNzU2IDc4Mi41ODYgMjcuMjc1NlpNNzY4LjkzOSAyNy4zODUzQzc2OS42MDggMjcuMzg1MyA3NjkuODg3IDI3LjcxOTggNzY5Ljg4NyAyOC4yNjI2VjM0LjY0MDZINzcyLjE3VjI4LjI0OTJDNzcyLjE3IDI2Ljk1NDIgNzcxLjQ4NyAyNS41MjQxIDc2OS40ODIgMjUuNTI0MUw3NjQuNzY2IDI1LjUyMTdWMzQuNjQwNkg3NjcuMDVWMjcuMzg1M0g3NjguOTM5VjI3LjM4NTNaTTc5Mi42MzcgMjMuNTg5MUM3OTIuMTI5IDIzLjU4OTEgNzkxLjcyNCAyMy4xNzU0IDc5MS43MjQgMjIuNjYyOUM3OTEuNzI0IDIyLjE1MjkgNzkyLjEyOSAyMS43MzY4IDc5Mi42MzcgMjEuNzM2OEM3OTMuMTQyIDIxLjczNjggNzkzLjU1NiAyMi4xNTI5IDc5My41NTYgMjIuNjYyOUM3OTMuNTU2IDIzLjE3NTQgNzkzLjE0MiAyMy41ODkxIDc5Mi42MzcgMjMuNTg5MVpNNzkyLjYzNyAyMS44OTEyQzc5Mi4yMTggMjEuODkxMiA3OTEuODgyIDIyLjI0MDcgNzkxLjg4MiAyMi42NjI5Qzc5MS44ODIgMjMuMDg3NiA3OTIuMjE4IDIzLjQzMDkgNzkyLjYzNyAyMy40MzA5Qzc5My4wNTUgMjMuNDMwOSA3OTMuNDAyIDIzLjA4NzYgNzkzLjQwMiAyMi42NjI5Qzc5My40MDIgMjIuMjQwNyA3OTMuMDU1IDIxLjg5MTIgNzkyLjYzNyAyMS44OTEyWk03OTMuMDQzIDIzLjIxOEg3OTIuODcyQzc5Mi44NjQgMjMuMjE3OSA3OTIuODU3IDIzLjIxNTcgNzkyLjg1MSAyMy4yMTE2Qzc5Mi44NDUgMjMuMjA3NSA3OTIuODQgMjMuMjAxNyA3OTIuODM3IDIzLjE5NDlMNzkyLjYwNSAyMi43OTdDNzkyLjU5OCAyMi43ODg1IDc5Mi41NzkgMjIuNzc4OCA3OTIuNTczIDIyLjc3ODhINzkyLjQ2N1YyMy4xNzU0Qzc5Mi40NjcgMjMuMTk1IDc5Mi40NTMgMjMuMjE4MSA3OTIuNDI4IDIzLjIxODFINzkyLjI3NEM3OTIuMjUxIDIzLjIxODEgNzkyLjIzNSAyMy4xOTUgNzkyLjIzNSAyMy4xNzU0VjIyLjE3NDlDNzkyLjIzNSAyMi4xMTY0IDc5Mi4yNTQgMjIuMDkyNCA3OTIuMzA1IDIyLjA4NUM3OTIuMzYxIDIyLjA3OSA3OTIuNTA1IDIyLjA3MTYgNzkyLjU4NiAyMi4wNzE2Qzc5Mi44NzIgMjIuMDcxNiA3OTMuMDM5IDIyLjE1NjYgNzkzLjAzOSAyMi40MjQ0VjIyLjQ0NEM3OTMuMDM5IDIyLjYwOTQgNzkyLjk1OSAyMi42OTk1IDc5Mi44MzMgMjIuNzM5N0w3OTMuMDc0IDIzLjE1NDdDNzkzLjA3OCAyMy4xNjQgNzkzLjA4IDIzLjE3MzkgNzkzLjA4IDIzLjE4NEM3OTMuMDggMjMuMTk5NyA3OTMuMDcyIDIzLjIxOCA3OTMuMDQzIDIzLjIxOFYyMy4yMThaTTc5Mi44MjEgMjIuNDI0NEM3OTIuODIxIDIyLjMxMjcgNzkyLjc1MiAyMi4yNzczIDc5Mi42MDUgMjIuMjc3M0g3OTIuNDU5VjIyLjU5NDdDNzkyLjQ4MiAyMi41OTQ3IDc5Mi41ODYgMjIuNTk5NiA3OTIuNjA1IDIyLjU5OTZDNzkyLjc1MiAyMi41OTk2IDc5Mi44MjEgMjIuNTUgNzkyLjgyMSAyMi40NDRWMjIuNDI0NFoiIGZpbGw9IiMwRTdEQzIiLz4NCjwvZz4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMV81OF8xMTEpIj4NCjxwYXRoIGQ9Ik01MzMuNzczIDIwLjk5MTFDNTI5LjI2MyAyMC45OTExIDUyNS41OTkgMjQuNjU0NyA1MjUuNTk5IDI5LjE2NDRDNTI1LjU5OSAzMy42NzQxIDUyOS4yNjMgMzcuMzM3NyA1MzMuNzczIDM3LjMzNzdDNTM4LjI4MiAzNy4zMzc3IDU0MS45NDYgMzMuNjc0MSA1NDEuOTQ2IDI5LjE2NDRDNTQxLjk0NiAyNC42NTQ3IDUzOC4yODIgMjAuOTkxMSA1MzMuNzczIDIwLjk5MTFaTTUzMy43NzMgMzYuNTE4NkM1MjkuNzEzIDM2LjUxODYgNTI2LjQxOSAzMy4yMTUgNTI2LjQxOSAyOS4xNjQ0QzUyNi40MTkgMjUuMTEzNyA1MjkuNzEzIDIxLjgxMDIgNTMzLjc3MyAyMS44MTAyQzUzNy44MzIgMjEuODEwMiA1NDEuMTI3IDI1LjExMzcgNTQxLjEyNyAyOS4xNjQ0QzU0MS4xMjcgMzMuMjE1IDUzNy44MzIgMzYuNTE4NiA1MzMuNzczIDM2LjUxODZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTUzNi42OSAyMy45MjUyQzUzNi42NjMgMjMuOTA3MiA1MzYuNjI3IDIzLjg5ODIgNTM2LjU5MSAyMy44OTgyQzUzNi40ODMgMjMuODk4MiA1MzYuNDAyIDIzLjk3OTIgNTM2LjQwMiAyNC4wODczVjI2LjY0MzdDNTM2LjQwMiAyNi43MzM3IDUzNi4zMyAyNi44MDU3IDUzNi4yNCAyNi44MDU3SDUzMS4yOUM1MzEuMiAyNi44MDU3IDUzMS4xMzcgMjYuNzMzNyA1MzEuMTI4IDI2LjY0MzdWMjQuMDg3M0M1MzEuMTI4IDI0LjA1MTMgNTMxLjExOSAyNC4wMjQyIDUzMS4xMDEgMjMuOTg4MkM1MzEuMDQ3IDIzLjg5ODIgNTMwLjkzIDIzLjg3MTIgNTMwLjgzOSAyMy45MjUyQzUyOS4wMTIgMjUuMDUwNCA1MjcuOTA1IDI3LjAwMzcgNTI3LjkwNSAyOS4xNjQxQzUyNy45MDUgMzEuMzI0NCA1MjkuMDEyIDMzLjI3NzcgNTMwLjg1NyAzNC40MDI5QzUzMC44ODUgMzQuNDIwOSA1MzAuOTIxIDM0LjQyOTkgNTMwLjk1NyAzNC40Mjk5QzUzMS4wNjUgMzQuNDI5OSA1MzEuMTQ2IDM0LjM0ODkgNTMxLjE0NiAzNC4yNDA5VjMxLjY4NDVDNTMxLjE0NiAzMS41OTQ0IDUzMS4yMTggMzEuNTMxNCA1MzEuMzA4IDMxLjUyMjRINTM2LjI1OEM1MzYuMzQ4IDMxLjUyMjQgNTM2LjQyIDMxLjU5NDQgNTM2LjQyIDMxLjY4NDVWMzQuMjQwOUM1MzYuNDIgMzQuMjc2OSA1MzYuNDI5IDM0LjMwMzkgNTM2LjQ0NyAzNC4zMzk5QzUzNi41MDEgMzQuNDI5OSA1MzYuNjE4IDM0LjQ1NjkgNTM2LjcwOCAzNC40MDI5QzUzOC41NTQgMzMuMjc3NyA1MzkuNjYxIDMxLjMyNDQgNTM5LjY2MSAyOS4xNjQxQzUzOS42NjEgMjcuMDAzNyA1MzguNTM2IDI1LjA1MDQgNTM2LjY5IDIzLjkyNTJWMjMuOTI1MlpNNTMwLjE5MSAzMi4zNjg2TDUzMC4yMTggMzIuNjc0Nkw1MzAuMDIgMzIuNDMxNkM1MjguNDk5IDMwLjUxNDMgNTI4LjQ5OSAyNy44MDQ4IDUzMC4wMiAyNS44ODc1TDUzMC4xOTEgMjUuNjcxNUw1MzAuMjE4IDI1LjY0NDVMNTMwLjE5MSAyNS45NTk2QzUzMC4xNjQgMjYuMjExNiA1MzAuMTU1IDI2LjQ3MjYgNTMwLjE1NSAyNi43MzM3VjMxLjU4NTRDNTMwLjE1NSAzMS44NDY1IDUzMC4xNzMgMzIuMTA3NSA1MzAuMTkxIDMyLjM2ODZaTTUzNi40MDIgMzAuMzg4M0M1MzYuNDAyIDMwLjQ3ODMgNTM2LjMzIDMwLjU1MDMgNTM2LjI0IDMwLjU1MDNINTMxLjI5QzUzMS4yIDMwLjU1MDMgNTMxLjEzNyAzMC40NzgzIDUzMS4xMjggMzAuMzg4M1YyNy45Mzk5QzUzMS4xMjggMjcuODQ5OSA1MzEuMiAyNy43Nzc4IDUzMS4yOSAyNy43Nzc4SDUzNi4yNEM1MzYuMzMgMjcuNzc3OCA1MzYuNDAyIDI3Ljg0OTkgNTM2LjQwMiAyNy45Mzk5VjMwLjM4ODNaTTUzNy41MTkgMzIuNDMxNkw1MzcuMzIxIDMyLjY3NDZMNTM3LjM0OCAzMi4zNjg2QzUzNy4zNzUgMzIuMTE2NSA1MzcuMzg0IDMxLjg1NTUgNTM3LjM4NCAzMS41OTQ0VjI2LjczMzdDNTM3LjM4NCAyNi40NzI2IDUzNy4zNzUgMjYuMjExNiA1MzcuMzQ4IDI1Ljk1OTZMNTM3LjMzOSAyNS44MjQ1TDUzNy4zMyAyNS42ODA1VjI1LjY0NDVMNTM3LjUxOSAyNS44ODc1QzUzOC4yNTcgMjYuODA1NyA1MzguNjYyIDI3Ljk3NTkgNTM4LjY2MiAyOS4xNTUxQzUzOC42NjIgMzAuMzM0MiA1MzguMjU3IDMxLjUxMzQgNTM3LjUxOSAzMi40MzE2VjMyLjQzMTZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTU1NC4yNzYgMjkuMDIwMkM1NTQuMjMxIDI5LjAwMjIgNTU0LjE3NyAyOC45ODQyIDU1NC4xNzcgMjguOTMwMkM1NTQuMTc3IDI4Ljg5NDIgNTU0LjE5NSAyOC44NjcyIDU1NC4yMzEgMjguODQ5MkM1NTQuMjk0IDI4LjgyMjIgNTU1Ljg1MSAyOC4yNjQxIDU1NS44NTEgMjYuNDI3OEM1NTUuODUxIDI0LjM4NDUgNTU0LjQ3NCAyMy4xNjkzIDU1Mi4xNTIgMjMuMTY5M0g1NDYuNTI2VjM1LjE3NzJINTUyLjY2NUM1NTQuNDU2IDM1LjE3NzIgNTU2LjM4MiAzMy45MDggNTU2LjM4MiAzMS44NjQ2QzU1Ni4zODIgMjkuOTExMyA1NTQuOTA2IDI5LjIyNzIgNTU0LjI3NiAyOS4wMjAyVjI5LjAyMDJaTTU0OS4zNjEgMjUuNjI2N0M1NDkuMzYxIDI1LjU4MTcgNTQ5LjM5NyAyNS41NDU2IDU0OS40NDIgMjUuNTQ1Nkg1NTEuNjc1QzU1Mi40MTMgMjUuNTQ1NiA1NTIuOTE3IDI2LjA0MDcgNTUyLjkxNyAyNi43Nzg4QzU1Mi45MTcgMjcuMzU0OSA1NTIuNDY3IDI3Ljk3NiA1NTEuNjIxIDI3Ljk3Nkg1NDkuNDQyQzU0OS4zOTcgMjcuOTc2IDU0OS4zNjEgMjcuOTQgNTQ5LjM2MSAyNy44OTVWMjUuNjI2N1pNNTUxLjY3NSAzMi44MDk4SDU0OS40NDJDNTQ5LjM5NyAzMi44MDk4IDU0OS4zNjEgMzIuNzczOCA1NDkuMzYxIDMyLjcyODhWMzAuMzM0NEM1NDkuMzYxIDMwLjI4OTQgNTQ5LjM5NyAzMC4yNTM0IDU0OS40NDIgMzAuMjUzNEg1NTEuNjIxQzU1Mi42OTIgMzAuMjUzNCA1NTMuMzA0IDMwLjcxMjUgNTUzLjMwNCAzMS41MjI2QzU1My4zMDQgMzIuMzU5NyA1NTIuNzM3IDMyLjgwOTggNTUxLjY3NSAzMi44MDk4VjMyLjgwOThaTTU3NS4zODQgMjcuOTQ5TDU3NC45NTIgMjcuODU5QzU3My45OCAyNy42NTIgNTczLjAzNSAyNy4zOTA5IDU3My4wMzUgMjYuNTUzOEM1NzMuMDM1IDI1LjcxNjcgNTczLjgxOCAyNS4zMzg2IDU3NC41OTIgMjUuMzM4NkM1NzUuNTAxIDI1LjMzODYgNTc2LjQwMSAyNS43NDM3IDU3Ny4wODYgMjYuNDQ1OEw1NzguODY4IDI0LjY4MTVDNTc4LjEwMyAyMy44MzU0IDU3Ni43NDQgMjIuODYzMiA1NzQuNTQ3IDIyLjg2MzJDNTcxLjkwMSAyMi44NjMyIDU3MC4xMTggMjQuMzY2NSA1NzAuMTE4IDI2LjYwNzhDNTcwLjExOCAyOC45NzUyIDU3MS45ODIgMjkuODY2MyA1NzMuNTQ4IDMwLjE5OTRMNTczLjk3MSAzMC4yODk0QzU3NS40OTIgMzAuNjEzNSA1NzYuMjEyIDMwLjg1NjUgNTc2LjIxMiAzMS43MjA2QzU3Ni4yMTIgMzIuNDk0NyA1NzUuNTE5IDMzLjAwNzggNTc0LjQ5MyAzMy4wMDc4QzU3My4yODcgMzMuMDA3OCA1NzIuMjE2IDMyLjQ3NjcgNTcxLjQwNiAzMS40Nzc2TDU2OS41NzggMzMuMjY4OUM1NzAuNTUxIDM0LjQyMTEgNTcxLjgzOCAzNS40NjUyIDU3NC41MjkgMzUuNDY1MkM1NzYuODI1IDM1LjQ2NTIgNTc5LjE1NiAzNC4xMzMgNTc5LjE1NiAzMS41NzY2QzU3OS4xNDcgMjguOTU3MiA1NzcuMzY1IDI4LjM2MzEgNTc1LjM4NCAyNy45NDlWMjcuOTQ5Wk01OTkuMTAzIDIzLjE2OTNWMjcuNTYyQzU5OS4xMDMgMjcuNjA3IDU5OS4wNjcgMjcuNjQzIDU5OS4wMjIgMjcuNjQzSDU5NS4zMzFDNTk1LjI4NiAyNy42NDMgNTk1LjI1IDI3LjYwNyA1OTUuMjUgMjcuNTYyVjIzLjE2OTNINTkyLjIyNlYzNS4xNzcySDU5NS4yNVYzMC40NjA0QzU5NS4yNSAzMC40MTU0IDU5NS4yODYgMzAuMzc5NCA1OTUuMzMxIDMwLjM3OTRINTk5LjAyMkM1OTkuMDY3IDMwLjM3OTQgNTk5LjEwMyAzMC40MTU0IDU5OS4xMDMgMzAuNDYwNFYzNS4xNzcySDYwMi4xNDZWMjMuMTY5M0g1OTkuMTAzWk01ODYuMTQxIDMyLjcxOThDNTg0Ljc4MiAzMi43MTk4IDU4My4zMTUgMzEuNTg1NiA1ODMuMzE1IDI5LjA5MjJDNTgzLjMxNSAyNi44MTQ4IDU4NC42OTIgMjUuNjI2NyA1ODYuMDUxIDI1LjYyNjdDNTg3LjA0MSAyNS42MjY3IDU4Ny43MzQgMjYuMDQwNyA1ODguMjgzIDI2Ljk1ODlMNTkwLjYwNiAyNS40MTk2QzU4OS40MTggMjMuNjczMyA1ODguMDA0IDIyLjg4MTIgNTg2LjAzMyAyMi44ODEyQzU4Mi4xNzEgMjIuODgxMiA1ODAuNDQzIDI2LjAwNDcgNTgwLjQ0MyAyOS4wOTIyQzU4MC40NDMgMzIuODQ1OCA1ODIuNzI5IDM1LjQ2NTIgNTg1Ljk5NyAzNS40NjUyQzU4OC40MjcgMzUuNDY1MiA1ODkuNTM1IDM0LjU3NDEgNTkwLjY5NiAzMi45MjY4TDU4OC4zNTUgMzEuMzUxNkM1ODcuODMzIDMyLjE5NzcgNTg3LjI2NiAzMi43MTk4IDU4Ni4xNDEgMzIuNzE5OFpNNTYzLjE3OCAyMi44NjMyQzU1OS44NzUgMjIuODYzMiA1NTcuNjYxIDI1LjM5MjYgNTU3LjY2MSAyOS4xNjQyQzU1Ny42NjEgMzIuOTM1OCA1NTkuODc1IDM1LjQ2NTIgNTYzLjE3OCAzNS40NjUyQzU2Ni40ODIgMzUuNDY1MiA1NjguNjk2IDMyLjkzNTggNTY4LjY5NiAyOS4xNjQyQzU2OC42OTYgMjUuMzkyNiA1NjYuNDgyIDIyLjg2MzIgNTYzLjE3OCAyMi44NjMyVjIyLjg2MzJaTTU2My4xNzggMzIuNzE5OEM1NjEuNTU4IDMyLjcxOTggNTYwLjUxNCAzMS4zMjQ2IDU2MC41MTQgMjkuMTY0MkM1NjAuNTE0IDI3LjAxMjkgNTYxLjU1OCAyNS42MjY3IDU2My4xNzggMjUuNjI2N0M1NjQuODA4IDI1LjYyNjcgNTY1Ljg2MSAyNy4wMTI5IDU2NS44NjEgMjkuMTY0MkM1NjUuODYxIDMxLjMyNDYgNTY0LjgwOCAzMi43MTk4IDU2My4xNzggMzIuNzE5OFoiIGZpbGw9IiNGODAwMDAiLz4NCjwvZz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQ2LjM0NCAyMi4xODExQzE0Ny41OTUgMjIuMjg1NCAxNDguODQ1IDIxLjU1NTMgMTQ5LjYyNyAyMC42Mjk4QzE1MC4zOTUgMTkuNjc4MSAxNTAuOTAzIDE4LjQwMDUgMTUwLjc3MyAxNy4wOTY5QzE0OS42NjYgMTcuMTQ5MSAxNDguMjk4IDE3LjgyNjkgMTQ3LjUxNyAxOC43Nzg2QzE0Ni44IDE5LjU5OTkgMTQ2LjE4OCAyMC45Mjk2IDE0Ni4zNDQgMjIuMTgxMVpNMTQ3Ljg0MSAyMy4wNzk3QzE0OC42NTMgMjIuNzYwNiAxNDkuNjU4IDIyLjM2NTYgMTUwLjc2IDIyLjQyOTFDMTUxLjQ2MyAyMi40ODEyIDE1My40OTUgMjIuNjg5OCAxNTQuNzk4IDI0LjYxOTJDMTU0Ljc5MiAyNC42MjM3IDE1NC43NzggMjQuNjMyMyAxNTQuNzU5IDI0LjY0NUMxNTQuNDM2IDI0Ljg1NDggMTUyLjM5IDI2LjE4NzEgMTUyLjQxNCAyOC44MTY5QzE1Mi40MzkgMzEuOTQ5OSAxNTQuOTg4IDMzLjExODMgMTU1LjMyMiAzMy4yNzExQzE1NS4zNDQgMzMuMjgxMSAxNTUuMzU2IDMzLjI4NjcgMTU1LjM1OCAzMy4yODgzQzE1NS4zNTYgMzMuMjkyNiAxNTUuMzU0IDMzLjMwMSAxNTUuMzUgMzMuMzEzM0MxNTUuMjgzIDMzLjUyODggMTU0Ljg0NSAzNC45NDg5IDE1My44NDcgMzYuNDA0QzE1Mi45MjIgMzcuNzU5OCAxNTEuOTcxIDM5LjA4OTUgMTUwLjQ2IDM5LjExNTZDMTQ5Ljc0OSAzOS4xMjgzIDE0OS4yNyAzOC45MjExIDE0OC43NzIgMzguNzA1NEMxNDguMjQ3IDM4LjQ3ODUgMTQ3LjcwMSAzOC4yNDIyIDE0Ni44NCAzOC4yNDIyQzE0NS45NDcgMzguMjQyMiAxNDUuMzc2IDM4LjQ4NDggMTQ0LjgyNiAzOC43MTg0QzE0NC4zNDggMzguOTIxNCAxNDMuODg3IDM5LjExNzQgMTQzLjI0NSAzOS4xNDE3QzE0MS43ODYgMzkuMTkzOCAxNDAuNjc5IDM3LjcwNzcgMTM5Ljc1NCAzNi4zNTE5QzEzNy44NjYgMzMuNjE0MyAxMzYuNDIgMjguNjM0NCAxMzguMzc0IDI1LjI3MUMxMzkuMzI1IDIzLjU4OTMgMTQxLjA1NyAyMi41MzM0IDE0Mi45MTkgMjIuNTA3M0MxNDMuNzMyIDIyLjQ5MjUgMTQ0LjUwNyAyMi44MDA2IDE0NS4xODQgMjMuMDcwMUMxNDUuNzAyIDIzLjI3NTggMTQ2LjE2MiAyMy40NTg5IDE0Ni41NCAyMy40NTg5QzE0Ni44NzcgMjMuNDU4OSAxNDcuMzE5IDIzLjI4NTEgMTQ3Ljg0MSAyMy4wNzk3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0zNi44NTg3IDM3LjUyNDFIMzEuOTg3NEwzNS4wMzQyIDE5LjY2NjhIMzkuOTA1MkwzNi44NTg3IDM3LjUyNDFaIiBmaWxsPSIjMDA1NzlGIi8+DQo8cGF0aCBkPSJNNTQuNTE1NyAyMC4xMDQxQzUzLjU1NDkgMTkuNzQyOCA1Mi4wMzA5IDE5LjM0MzggNTAuMTQ2NiAxOS4zNDM4QzQ1LjMzNjEgMTkuMzQzOCA0MS45NDg2IDIxLjc3NTMgNDEuOTI3OCAyNS4yNTE2QzQxLjg4NzggMjcuODE2NSA0NC4zNTMxIDI5LjI0MSA0Ni4xOTcgMzAuMDk2MkM0OC4wODE2IDMwLjk3MDEgNDguNzIyMyAzMS41NDA1IDQ4LjcyMjMgMzIuMzE5NEM0OC43MDMxIDMzLjUxNTcgNDcuMTk5NCAzNC4wNjcyIDQ1Ljc5NjkgMzQuMDY3MkM0My44NTIxIDM0LjA2NzIgNDIuODEgMzMuNzgyOSA0MS4yMjY0IDMzLjExNzNMNDAuNTg1IDMyLjgzMkwzOS45MDMzIDM2Ljg0MDZDNDEuMDQ1OCAzNy4zMzM5IDQzLjE1MDcgMzcuNzcxNyA0NS4zMzYxIDM3Ljc5MDlDNTAuNDQ3MyAzNy43OTA5IDUzLjc3NDkgMzUuMzk3MSA1My44MTQzIDMxLjY5MjVDNTMuODMzOCAyOS42NTk3IDUyLjUzMiAyOC4xMDIgNDkuNzI1NCAyNi44MjkyQzQ4LjAyMTcgMjYuMDEyMSA0Ni45NzgzIDI1LjQ2MTIgNDYuOTc4MyAyNC42MjUyQzQ2Ljk5ODMgMjMuODY1MiA0Ny44NjA4IDIzLjA4NjggNDkuNzg0IDIzLjA4NjhDNTEuMzY3NyAyMy4wNDg2IDUyLjUzMTIgMjMuNDA5NCA1My40MTI2IDIzLjc3MDVMNTMuODUzMiAyMy45NjAxTDU0LjUxNTcgMjAuMTA0MVoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik02MC45OTI0IDMxLjE5NzlDNjEuMzkzNiAzMC4xNzIgNjIuOTM3MiAyNi4yMDE2IDYyLjkzNzIgMjYuMjAxNkM2Mi45MTcgMjYuMjM5NyA2My4zMzc2IDI1LjE1NjggNjMuNTc4MSAyNC40OTE5TDYzLjkxODYgMjYuMDMwNkM2My45MTg2IDI2LjAzMDYgNjQuODQxIDMwLjMwNTEgNjUuMDQxNCAzMS4xOTc5QzY0LjI4IDMxLjE5NzkgNjEuOTU0NiAzMS4xOTc5IDYwLjk5MjQgMzEuMTk3OVpNNjcuMDA1NCAxOS42NjY4SDYzLjIzNzRDNjIuMDc1NSAxOS42NjY4IDYxLjE5MjcgMTkuOTg5NSA2MC42OTE0IDIxLjE0ODRMNTMuNDU1OCAzNy41MjM5SDU4LjU2NzFDNTguNTY3MSAzNy41MjM5IDU5LjQwODUgMzUuMzE5OSA1OS41ODk0IDM0Ljg0NTJDNjAuMTUwMSAzNC44NDUyIDY1LjEyMjMgMzQuODQ1MiA2NS44NDM3IDM0Ljg0NTJDNjUuOTgzNSAzNS40NzIxIDY2LjQyNDkgMzcuNTIzOSA2Ni40MjQ5IDM3LjUyMzlINzAuOTM1Mkw2Ny4wMDU0IDE5LjY2NjhWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0yNy45MTggMTkuNjY2OEwyMy4xNDc1IDMxLjg0MzhMMjIuNjI2MiAyOS4zNzQxQzIxLjc0NDIgMjYuNTI0NSAxOC45NzgxIDIzLjQyODQgMTUuODkxNCAyMS44ODlMMjAuMjYxIDM3LjUwNTJIMjUuNDEyMkwzMy4wNjkgMTkuNjY2OEgyNy45MThWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0xOC43MTg0IDE5LjY2NjhIMTAuODgxMUwxMC44MDA5IDIwLjAyNzZDMTYuOTE0NSAyMS41MDk1IDIwLjk2MzUgMjUuMDgxNSAyMi42MjcgMjkuMzc0OUwyMC45MjMyIDIxLjE2NzlDMjAuNjQyNyAyMC4wMjc0IDE5Ljc4MDcgMTkuNzA0NCAxOC43MTg0IDE5LjY2NjhaIiBmaWxsPSIjRkFBNjFBIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDJfNThfMTExKSI+DQo8cGF0aCBkPSJNMjIxLjE1OCAxNy40OTlWMTguOTM1NkgyMzEuMzA2VjE3LjQ5OUgyMjEuMTU4Wk0yMzIuNzQ0IDE3LjQ5OVYxOC45MzU2SDI0Ny4yMDZDMjQ3LjIwNiAxOC45MzU2IDI0NS43MjkgMTcuNDk5IDI0My43NzMgMTcuNDk5SDIzMi43NDRaTTI1MC4wNDMgMTcuNDk5VjE4LjkzNTZIMjU4Ljc5M0wyNTguMjczIDE3LjQ5OUgyNTAuMDQzWk0yNjUuMDY1IDE3LjQ5OUwyNjQuNTQ2IDE4LjkzNTZIMjczLjIxNlYxNy40OTlIMjY1LjA2NVpNMjIxLjE1OCAyMC4yOTI5VjIxLjcyOTZIMjMxLjMwNlYyMC4yOTI5SDIyMS4xNThaTTIzMi43NDQgMjAuMjk1VjIxLjcyOTdIMjQ4Ljg4NEMyNDguODg0IDIxLjcyOTcgMjQ4LjY5NiAyMC42MjM5IDI0OC4zNjcgMjAuMjk1SDIzMi43NDRaTTI1MC4wNDMgMjAuMjk1VjIxLjcyOTdIMjU5Ljc1MkwyNTkuMjcxIDIwLjI5NUgyNTAuMDQzWk0yNjQuMDI3IDIwLjI5NUwyNjMuNTQ2IDIxLjcyOTdIMjczLjIxNlYyMC4yOTVIMjY0LjAyN1YyMC4yOTVaTTIyNC4wNzQgMjMuMDg2OVYyNC41MjU3SDIyOC40NjlWMjMuMDg2OUgyMjQuMDc0VjIzLjA4NjlaTTIzNS42NjEgMjMuMDg2OVYyNC41MjU3SDI0MC4wNTZWMjMuMDg2OUgyMzUuNjYxVjIzLjA4NjlaTTI0NC4zMzEgMjMuMDg2OVYyNC41MjU3SDI0OC43MjZDMjQ4LjcyNiAyNC41MjU3IDI0OS4wMDUgMjMuNzY1OSAyNDkuMDA1IDIzLjA4NjlIMjQ0LjMzMVYyMy4wODY5Wk0yNTIuOTYgMjMuMDg2OVYyNC41MjU3SDI2MC43NTJMMjYwLjIzMiAyMy4wODY5SDI1Mi45NlYyMy4wODY5Wk0yNjMuMDY5IDIzLjA4NjlMMjYyLjU0OCAyNC41MjU3SDI3MC4zNzlWMjMuMDg2OUgyNjMuMDY5VjIzLjA4NjlaTTIyNC4wNzQgMjUuODgzVjI3LjMxOTdIMjI4LjQ2OVYyNS44ODNIMjI0LjA3NFYyNS44ODNaTTIzNS42NjEgMjUuODgzVjI3LjMxOTdIMjQ2Ljg4N0MyNDYuODg3IDI3LjMxOTcgMjQ3LjgyNiAyNi41ODI1IDI0OC4xMjUgMjUuODgzSDIzNS42NjFaTTI1Mi45NiAyNS44ODNWMjcuMzE5N0gyNTcuMzU1VjI2LjUyTDI1Ny42MzQgMjcuMzE5N0gyNjUuNjg0TDI2NS45ODQgMjYuNTJWMjcuMzE5N0gyNzAuMzc5VjI1Ljg4M0gyNjIuMTI5TDI2MS42OTEgMjcuMDk5OUwyNjEuMjUxIDI1Ljg4M0gyNTIuOTZaTTIyNC4wNzQgMjguNjc3VjMwLjExMzdIMjI4LjQ2OVYyOC42NzdIMjI0LjA3NFpNMjM1LjY2MSAyOC42NzdWMzAuMTEzN0gyNDguMTI1QzI0Ny44MjYgMjkuNDE2NSAyNDYuODg3IDI4LjY3NyAyNDYuODg3IDI4LjY3N0gyMzUuNjYxWk0yNTIuOTYgMjguNjc3VjMwLjExMzdIMjU3LjM1NVYyOC42NzdIMjUyLjk2Wk0yNTguMTUzIDI4LjY3N0wyNTguNjg1IDMwLjExMzdIMjY0LjcyMUwyNjUuMjI2IDI4LjY3N0gyNTguMTUzWk0yNjUuOTg0IDI4LjY3N1YzMC4xMTM3SDI3MC4zNzlWMjguNjc3SDI2NS45ODRaTTIyNC4wNzQgMzEuNDcxVjMyLjkwNzZIMjI4LjQ2OVYzMS40NzFIMjI0LjA3NFpNMjM1LjY2MSAzMS40NzFWMzIuOTA3NkgyNDAuMDU2VjMxLjQ3MUgyMzUuNjYxWk0yNDQuMzMxIDMxLjQ3MVYzMi45MDc2SDI0OS4wMDVDMjQ5LjAwNSAzMi4yMjk2IDI0OC43MjYgMzEuNDcxIDI0OC43MjYgMzEuNDcxSDI0NC4zMzFWMzEuNDcxWk0yNTIuOTYgMzEuNDcxVjMyLjkwNzZIMjU3LjM1NVYzMS40NzFIMjUyLjk2Wk0yNTkuMTUxIDMxLjQ3MUwyNTkuNjY2IDMyLjkwNzZIMjYzLjcxM0wyNjQuMjMyIDMxLjQ3MUgyNTkuMTUxWk0yNjUuOTg0IDMxLjQ3MVYzMi45MDc2SDI3MC4zNzlWMzEuNDcxSDI2NS45ODRaTTIyMS4yMzcgMzQuMjY1VjM1LjcwMzdIMjMxLjM4NlYzNC4yNjVIMjIxLjIzN1pNMjMyLjc0NCAzNC4yNjVWMzUuNzAzN0gyNDguMzY3QzI0OC42OTYgMzUuMzc0MyAyNDguODg0IDM0LjI2NSAyNDguODg0IDM0LjI2NUgyMzIuNzQ0VjM0LjI2NVpNMjUwLjEyMyAzNC4yNjVWMzUuNzAzN0gyNTcuMzU1VjM0LjI2NUgyNTAuMTIzWk0yNjAuMTUxIDM0LjI2NUwyNjAuNjggMzUuNzAzN0gyNjIuNzM5TDI2My4yMzYgMzQuMjY1SDI2MC4xNTFaTTI2NS45ODQgMzQuMjY1VjM1LjcwMzdIMjczLjI5NVYzNC4yNjVIMjY1Ljk4NFpNMjIxLjIzNyAzNy4wNjFWMzguNDk3N0gyMzEuMzg2VjM3LjA2MUgyMjEuMjM3Wk0yMzIuNzQ0IDM3LjA2MVYzOC40OTU2SDI0My43NzNDMjQ1LjcyOSAzOC40OTU2IDI0Ny4yMDYgMzcuMDYxIDI0Ny4yMDYgMzcuMDYxSDIzMi43NDRaTTI1MC4xMjMgMzcuMDYxVjM4LjQ5NzdIMjU3LjM1NVYzNy4wNjFIMjUwLjEyM1pNMjYxLjE1NSAzNy4wNjFMMjYxLjY2NCAzOC40OTM2TDI2MS43NTIgMzguNDk1NkwyNjIuMjY5IDM3LjA2MUgyNjEuMTU1VjM3LjA2MVpNMjY1Ljk4NCAzNy4wNjFWMzguNDk3N0gyNzMuMjk1VjM3LjA2MUgyNjUuOTg0WiIgZmlsbD0iIzFGNzBDMSIvPg0KPC9nPg0KPGRlZnM+DQo8Y2xpcFBhdGggaWQ9ImNsaXAwXzU4XzExMSI+DQo8cmVjdCB3aWR0aD0iNDQuNDQ3MyIgaGVpZ2h0PSIyOS42MzE1IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUzLjk1NSAxNC44MTU1KSIvPg0KPC9jbGlwUGF0aD4NCjxjbGlwUGF0aCBpZD0iY2xpcDFfNThfMTExIj4NCjxyZWN0IHdpZHRoPSI3Ni41NDgxIiBoZWlnaHQ9IjE2LjM1MDciIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MjUuNTk5IDIwLjk4ODkpIi8+DQo8L2NsaXBQYXRoPg0KPGNsaXBQYXRoIGlkPSJjbGlwMl81OF8xMTEiPg0KPHJlY3Qgd2lkdGg9IjUyLjEzNzIiIGhlaWdodD0iMjAuOTk4NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMS4xNTggMTcuNDk5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg0K\\\" style=\\\"\\n width: 742.5px;\\n position: relative;\\n top: 107px;\\n left: 32px;\\n \\\">\\n <a href=\" + accountURL + \" style=\\\"\\n float: left;\\n border-radius: 56px;\\n background: #0D6EFD;\\n padding-top: 8px;\\n width: 280px;\\n height: 38px;\\n text-align: center;\\n position: relative;\\n top: 127px;\\n left: 274px;\\n font-size: 16px;\\n color: white;\\n text-decoration: none;\\n letter-spacing: 0.02em;\\n \\\">Claim your FREE account</a>\\n <div style=\\\"\\n font-size: 14px;\\n position: relative;\\n top: 180px;\\n left: 19px;\\n letter-spacing: 0.02em;\\n font-weight: 500;\\n line-height: 125%;\\n\\\">have a Syncfusion account? <a href=\\\"https://www.syncfusion.com/account/login?ReturnUrl=/account/login\\\" style=\\\"text-decoration: none;\\ncolor: #0D6EFD;\\nfont-weight: 500;\\\">Sign In</a></div>\\n </div>\\n </div>\";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","import { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n // eslint-disable-next-line\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n // tslint:disable-next-line:no-function-constructor-with-string-args\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n // eslint-disable-next-line\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Checked weather cases are valid or not. If control leads to more than five counts \n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n // eslint-disable-next-line\n window[sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n // tslint: enable: no-any\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n // eslint-disable-next-line\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n // eslint-disable-next-line\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = void 0;\n // eslint-disable-next-line\n objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n // eslint-disable-next-line\n var value = obj[key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n return new RegExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar positionProp = ['offsetLeft', 'offsetTop'];\nvar axisMapper = ['x', 'y'];\nvar axisValueMapper = ['left', 'top'];\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n * <div id='drag'>Draggable</div>\n * <script>\n * var ele = document.getElementById('drag');\n * var drag:Draggable = new Draggable(ele,{\n * clone:false,\n * drag: function(e) {\n * //drag handler code.\n * },\n * handle:'.class'\n * });\n * </script>\n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n /* tslint:disable no-any */\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n // tslint:disable-next-line:max-func-body-length\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n /* tslint:disable no-any */\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n /* tslint:disable no-any */\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n /* tslint:disable no-any */\n Draggable.prototype.getScrollParent = function (node, reverse) {\n /* tslint:disable no-any */\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n /* tslint:disable no-any */\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (this.element && this.element.classList.length > 0 && this.element.classList.value.indexOf(\"e-dialog\") === -1 && document.scrollingElement) {\n var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;\n var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n * <div id='drop'>Droppable</div>\n * <script>\n * let ele:HTMLElement = document.getElementById('drop');\n * var drag:Droppable = new Droppable(ele,{\n * accept:'.drop',\n * drop: function(e) {\n * //drop handler code.\n * }\n * });\n * </script>\n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n // eslint-disable-next-line\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n * <div id='testEle'> </div>;\n * <script>\n * let node: HTMLElement = document.querySelector('#testEle');\n * let kbInstance = new KeyboardEvents({\n * element: node,\n * keyConfigs:{ selectAll : 'ctrl+a' },\n * keyAction: function (e:KeyboardEvent, action:string) {\n * // handler function code\n * }\n * });\n * </script>\n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var eSwipeArgs = void 0;\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n // eslint-disable-next-line\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n var eTapArgs;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n // eslint-disable-next-line\n eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n // eslint-disable-next-line\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n // eslint-disable-next-line\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\\\"' + evalExpResult + '\\\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, \n // eslint-disable-next-line\n function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n // eslint-disable-next-line\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n // tslint:disable-next-line\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n // eslint-disable-next-line\n var fNameSpace = (helper && helper.hasOwnProperty(fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n // tslint:disable-next-line\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n // eslint-disable-next-line\n }\n else if (!!cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : ' ';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix) ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n// eslint-disable-next-line\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n // eslint-disable-next-line\n tempStr = tempStr;\n }\n else {\n tempStr = tempStr.replace(SINGLE_SLASH, double);\n }\n return tempStr;\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+<tr|^<tr/;\nvar HAS_SVG = /^[\\n\\r.]+<svg|^<path|^<g/;\nexport var blazorTemplates = {};\n/**\n *\n * @returns {string} ?\n */\nexport function getRandomId() {\n return '-' + Math.random().toString(36).substr(2, 5);\n}\n/**\n * Compile the template string into template function.\n *\n * @param {string} templateString - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {NodeList} ?\n * @private\n */\n// eslint-disable-next-line\nexport function compile(templateString, helper, ignorePrefix) {\n var compiler = engineObj.compile(templateString, helper, ignorePrefix);\n // eslint-disable-next-line\n return function (data, component, propName, templateId, isStringTemplate, index, element, root) {\n var result = compiler(data, component, propName, element, root);\n var blazorTemplateId = 'BlazorTemplateId';\n if (isBlazor() && !isStringTemplate) {\n var randomId = getRandomId();\n var blazorId = templateId + randomId;\n if (!blazorTemplates[\"\" + templateId]) {\n blazorTemplates[\"\" + templateId] = [];\n }\n if (!isNullOrUndefined(index)) {\n var keys = Object.keys(blazorTemplates[\"\" + templateId][parseInt(index.toString(), 10)]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (key !== blazorTemplateId && data[\"\" + key]) {\n blazorTemplates[\"\" + templateId][parseInt(index.toString(), 10)][\"\" + key] = data[\"\" + key];\n }\n if (key === blazorTemplateId) {\n blazorId = blazorTemplates[\"\" + templateId][parseInt(index.toString(), 10)][\"\" + key];\n }\n }\n }\n else {\n data[\"\" + blazorTemplateId] = blazorId;\n blazorTemplates[\"\" + templateId].push(data);\n }\n // eslint-disable-next-line\n return propName === 'rowTemplate' ? [createElement('tr', { id: blazorId, className: 'e-blazor-template' })] :\n // eslint-disable-next-line\n [createElement('div', { id: blazorId, className: 'e-blazor-template' })];\n }\n if (typeof result === 'string') {\n if (HAS_SVG.test(result)) {\n var ele = createElement('svg', { innerHTML: result });\n return ele.childNodes;\n }\n else {\n var ele = createElement((HAS_ROW.test(result) ? 'table' : 'div'), { innerHTML: result });\n return ele.childNodes;\n }\n }\n else {\n return result;\n }\n };\n}\n/**\n *\n * @param {string} templateId ?\n * @param {string} templateName ?\n * @param {string} comp ?\n * @param {boolean} isEmpty ?\n * @param {Function} callBack ?\n * @returns {void} ?\n */\nexport function updateBlazorTemplate(templateId, templateName, comp, isEmpty, callBack) {\n if (isBlazor()) {\n var ejsIntrop = 'sfBlazor';\n window[\"\" + ejsIntrop].updateTemplate(templateName, blazorTemplates[\"\" + templateId], templateId, comp, callBack);\n if (isEmpty !== false) {\n blazorTemplates[\"\" + templateId] = [];\n }\n }\n}\n/**\n *\n * @param {string} templateId ?\n * @param {string} templateName ?\n * @param {number} index ?\n * @returns {void} ?\n */\nexport function resetBlazorTemplate(templateId, templateName, index) {\n var templateDiv = document.getElementById(templateId);\n if (templateDiv) {\n // eslint-disable-next-line\n var innerTemplates = templateDiv.getElementsByClassName('blazor-inner-template');\n for (var i = 0; i < innerTemplates.length; i++) {\n var tempId = ' ';\n if (!isNullOrUndefined(index)) {\n tempId = innerTemplates[parseInt(index.toString(), 10)].getAttribute('data-templateId');\n }\n else {\n tempId = innerTemplates[parseInt(i.toString(), 10)].getAttribute('data-templateId');\n }\n var tempElement = document.getElementById(tempId);\n if (tempElement) {\n var length_1 = tempElement.childNodes.length;\n for (var j = 0; j < length_1; j++) {\n if (!isNullOrUndefined(index)) {\n innerTemplates[parseInt(index.toString(), 10)].appendChild(tempElement.childNodes[0]);\n i = innerTemplates.length;\n }\n else {\n innerTemplates[parseInt(i.toString(), 10)].appendChild(tempElement.childNodes[0]);\n }\n }\n }\n }\n }\n}\n/**\n * Set your custom template engine for template rendering.\n *\n * @param {ITemplateEngine} classObj - Class object for custom template.\n * @returns {void} ?\n * @private\n */\nexport function setTemplateEngine(classObj) {\n engineObj.compile = classObj.compile;\n}\n/**\n * Get current template engine for template rendering\n *\n * @returns {string} ?\n * @private\n */\nexport function getTemplateEngine() {\n return engineObj.compile;\n}\n//Default Engine Class\nvar Engine = /** @class */ (function () {\n function Engine() {\n }\n // eslint-disable-next-line\n Engine.prototype.compile = function (templateString, helper, ignorePrefix) {\n if (helper === void 0) { helper = {}; }\n return render(templateString, helper);\n };\n return Engine;\n}());\nvar engineObj = { compile: new Engine().compile };\n","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {\n // Do nothing;\n}\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\", modernUnmount(container));\n case 2:\n legacyUnmount(container);\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","/**\n * SanitizeHtmlHelper for sanitize the value.\n */\nimport { detach } from './dom';\nvar removeTags = [\n 'script',\n 'style',\n 'iframe[src]',\n 'link[href*=\"javascript:\"]',\n 'object[type=\"text/x-scriptlet\"]',\n 'object[data^=\"data:text/html;base64\"]',\n 'img[src^=\"data:text/html;base64\"]',\n '[src^=\"javascript:\"]',\n '[dynsrc^=\"javascript:\"]',\n '[lowsrc^=\"javascript:\"]',\n '[type^=\"application/x-shockwave-flash\"]'\n];\nvar removeAttrs = [\n { attribute: 'href', selector: '[href*=\"javascript:\"]' },\n { attribute: 'background', selector: '[background^=\"javascript:\"]' },\n { attribute: 'style', selector: '[style*=\"javascript:\"]' },\n { attribute: 'style', selector: '[style*=\"expression(\"]' },\n { attribute: 'href', selector: 'a[href^=\"data:text/html;base64\"]' }\n];\nvar jsEvents = ['onchange',\n 'onclick',\n 'onmouseover',\n 'onmouseout',\n 'onkeydown',\n 'onload',\n 'onerror',\n 'onblur',\n 'onfocus',\n 'onbeforeload',\n 'onbeforeunload',\n 'onkeyup',\n 'onsubmit',\n 'onafterprint',\n 'onbeforeonload',\n 'onbeforeprint',\n 'onblur',\n 'oncanplay',\n 'oncanplaythrough',\n 'onchange',\n 'onclick',\n 'oncontextmenu',\n 'ondblclick',\n 'ondrag',\n 'ondragend',\n 'ondragenter',\n 'ondragleave',\n 'ondragover',\n 'ondragstart',\n 'ondrop',\n 'ondurationchange',\n 'onemptied',\n 'onended',\n 'onerror',\n 'onerror',\n 'onfocus',\n 'onformchange',\n 'onforminput',\n 'onhaschange',\n 'oninput',\n 'oninvalid',\n 'onkeydown',\n 'onkeypress',\n 'onkeyup',\n 'onload',\n 'onloadeddata',\n 'onloadedmetadata',\n 'onloadstart',\n 'onmessage',\n 'onmousedown',\n 'onmousemove',\n 'onmouseout',\n 'onmouseover',\n 'onmouseup',\n 'onmousewheel',\n 'onoffline',\n 'onoine',\n 'ononline',\n 'onpagehide',\n 'onpageshow',\n 'onpause',\n 'onplay',\n 'onplaying',\n 'onpopstate',\n 'onprogress',\n 'onratechange',\n 'onreadystatechange',\n 'onredo',\n 'onresize',\n 'onscroll',\n 'onseeked',\n 'onseeking',\n 'onselect',\n 'onstalled',\n 'onstorage',\n 'onsubmit',\n 'onsuspend',\n 'ontimeupdate',\n 'onundo',\n 'onunload',\n 'onvolumechange',\n 'onwaiting',\n 'onmouseenter',\n 'onmouseleave',\n 'onmousewheel',\n 'onstart',\n 'onpropertychange'\n];\nvar SanitizeHtmlHelper = /** @class */ (function () {\n function SanitizeHtmlHelper() {\n }\n SanitizeHtmlHelper.beforeSanitize = function () {\n return {\n selectors: {\n tags: removeTags,\n attributes: removeAttrs\n }\n };\n };\n SanitizeHtmlHelper.sanitize = function (value) {\n var item = this.beforeSanitize();\n var output = this.serializeValue(item, value);\n return output;\n };\n SanitizeHtmlHelper.serializeValue = function (item, value) {\n this.removeAttrs = item.selectors.attributes;\n this.removeTags = item.selectors.tags;\n this.wrapElement = document.createElement('div');\n this.wrapElement.innerHTML = value;\n this.removeXssTags();\n this.removeJsEvents();\n this.removeXssAttrs();\n var tempEleValue = this.wrapElement.innerHTML;\n this.removeElement();\n return tempEleValue.replace('&', '&');\n };\n SanitizeHtmlHelper.removeElement = function () {\n // Removes an element's attibute to avoid html tag validation\n var nodes = this.wrapElement.children;\n for (var j = 0; j < nodes.length; j++) {\n var attribute = nodes[parseInt(j.toString(), 10)].attributes;\n for (var i = 0; i < attribute.length; i++) {\n this.wrapElement.children[parseInt(j.toString(), 10)].removeAttribute(attribute[parseInt(i.toString(), 10)].localName);\n }\n }\n };\n SanitizeHtmlHelper.removeXssTags = function () {\n var elements = this.wrapElement.querySelectorAll(this.removeTags.join(','));\n if (elements.length > 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n // eslint-disable-next-line\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n return cacheRef.current.value;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n preWarningFns.push(fn);\n};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n }, message);\n if (finalMessage) {\n console.error(\"Warning: \".concat(finalMessage));\n }\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n }, message);\n if (finalMessage) {\n console.warn(\"Note: \".concat(finalMessage));\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;\n/* eslint-enable */","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n var refSet = new Set();\n function deepEqual(a, b) {\n var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var circular = refSet.has(a);\n warning(!circular, 'Warning: There may be circular references');\n if (circular) {\n return false;\n }\n if (a === b) {\n return true;\n }\n if (shallow && level > 1) {\n return false;\n }\n refSet.add(a);\n var newLevel = level + 1;\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], newLevel)) {\n return false;\n }\n }\n return true;\n }\n if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n return keys.every(function (key) {\n return deepEqual(a[key], b[key], newLevel);\n });\n }\n // other\n return false;\n }\n return deepEqual(obj1, obj2);\n}\nexport default isEqual;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// [times, realValue]\n\nvar SPLIT = '%';\nvar Entity = /*#__PURE__*/function () {\n function Entity(instanceId) {\n _classCallCheck(this, Entity);\n _defineProperty(this, \"instanceId\", void 0);\n /** @private Internal cache map. Do not access this directly */\n _defineProperty(this, \"cache\", new Map());\n this.instanceId = instanceId;\n }\n _createClass(Entity, [{\n key: \"get\",\n value: function get(keys) {\n return this.cache.get(keys.join(SPLIT)) || null;\n }\n }, {\n key: \"update\",\n value: function update(keys, valueFn) {\n var path = keys.join(SPLIT);\n var prevValue = this.cache.get(path);\n var nextValue = valueFn(prevValue);\n if (nextValue === null) {\n this.cache.delete(path);\n } else {\n this.cache.set(path, nextValue);\n }\n }\n }]);\n return Entity;\n}();\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_CACHE_PATH = 'data-cache-path';\n\n// Mark css-in-js instance in style element\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n var cssinjsInstanceId = Math.random().toString(12).slice(2);\n\n // Tricky SSR: Move all inline style to the head.\n // PS: We do not recommend tricky mode.\n if (typeof document !== 'undefined' && document.head && document.body) {\n var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n var firstChild = document.head.firstChild;\n Array.from(styles).forEach(function (style) {\n style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n\n // Not force move if no head\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n document.head.insertBefore(style, firstChild);\n }\n });\n\n // Deduplicate of moved styles\n var styleHash = {};\n Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n var hash = style.getAttribute(ATTR_MARK);\n if (styleHash[hash]) {\n if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n } else {\n styleHash[hash] = true;\n }\n });\n }\n return new CacheEntity(cssinjsInstanceId);\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n hashPriority: 'low',\n cache: createCache(),\n defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n var children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var parentContext = React.useContext(StyleContext);\n var context = useMemo(function () {\n var mergedContext = _objectSpread({}, parentContext);\n Object.keys(restProps).forEach(function (key) {\n var value = restProps[key];\n if (restProps[key] !== undefined) {\n mergedContext[key] = value;\n }\n });\n var cache = restProps.cache;\n mergedContext.cache = mergedContext.cache || createCache();\n mergedContext.defaultCache = !cache && parentContext.defaultCache;\n return mergedContext;\n }, [parentContext, restProps], function (prev, next) {\n return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n });\n return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n value: context\n }, children);\n};\nexport default StyleContext;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n var head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!canUseDom()) {\n return null;\n }\n var csp = option.csp,\n prepend = option.prepend,\n _option$priority = option.priority,\n priority = _option$priority === void 0 ? 0 : _option$priority;\n var mergedOrder = getOrder(prepend);\n var isPrependQueue = mergedOrder === 'prependQueue';\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n }\n if (csp !== null && csp !== void 0 && csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n var existStyle = findStyles(container).filter(function (node) {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\nexport function removeCSS(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n if (existNode) {\n var container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option);\n\n // Sync real parent\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n if (existNode) {\n var _option$csp, _option$csp2;\n if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n var node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\n\nexport function sameDerivativeOption(left, right) {\n if (left.length !== right.length) {\n return false;\n }\n for (var i = 0; i < left.length; i++) {\n if (left[i] !== right[i]) {\n return false;\n }\n }\n return true;\n}\nvar ThemeCache = /*#__PURE__*/function () {\n function ThemeCache() {\n _classCallCheck(this, ThemeCache);\n _defineProperty(this, \"cache\", void 0);\n _defineProperty(this, \"keys\", void 0);\n _defineProperty(this, \"cacheCallTimes\", void 0);\n this.cache = new Map();\n this.keys = [];\n this.cacheCallTimes = 0;\n }\n _createClass(ThemeCache, [{\n key: \"size\",\n value: function size() {\n return this.keys.length;\n }\n }, {\n key: \"internalGet\",\n value: function internalGet(derivativeOption) {\n var _cache2, _cache3;\n var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var cache = {\n map: this.cache\n };\n derivativeOption.forEach(function (derivative) {\n if (!cache) {\n cache = undefined;\n } else {\n var _cache, _cache$map;\n cache = (_cache = cache) === null || _cache === void 0 ? void 0 : (_cache$map = _cache.map) === null || _cache$map === void 0 ? void 0 : _cache$map.get(derivative);\n }\n });\n if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n cache.value[1] = this.cacheCallTimes++;\n }\n return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n }\n }, {\n key: \"get\",\n value: function get(derivativeOption) {\n var _this$internalGet;\n return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n }\n }, {\n key: \"has\",\n value: function has(derivativeOption) {\n return !!this.internalGet(derivativeOption);\n }\n }, {\n key: \"set\",\n value: function set(derivativeOption, value) {\n var _this = this;\n // New cache\n if (!this.has(derivativeOption)) {\n if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n var _this$keys$reduce = this.keys.reduce(function (result, key) {\n var _result = _slicedToArray(result, 2),\n callTimes = _result[1];\n if (_this.internalGet(key)[1] < callTimes) {\n return [key, _this.internalGet(key)[1]];\n }\n return result;\n }, [this.keys[0], this.cacheCallTimes]),\n _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n targetKey = _this$keys$reduce2[0];\n this.delete(targetKey);\n }\n this.keys.push(derivativeOption);\n }\n var cache = this.cache;\n derivativeOption.forEach(function (derivative, index) {\n if (index === derivativeOption.length - 1) {\n cache.set(derivative, {\n value: [value, _this.cacheCallTimes++]\n });\n } else {\n var cacheValue = cache.get(derivative);\n if (!cacheValue) {\n cache.set(derivative, {\n map: new Map()\n });\n } else if (!cacheValue.map) {\n cacheValue.map = new Map();\n }\n cache = cache.get(derivative).map;\n }\n });\n }\n }, {\n key: \"deleteByPath\",\n value: function deleteByPath(currentCache, derivatives) {\n var cache = currentCache.get(derivatives[0]);\n if (derivatives.length === 1) {\n var _cache$value;\n if (!cache.map) {\n currentCache.delete(derivatives[0]);\n } else {\n currentCache.set(derivatives[0], {\n map: cache.map\n });\n }\n return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n }\n var result = this.deleteByPath(cache.map, derivatives.slice(1));\n if ((!cache.map || cache.map.size === 0) && !cache.value) {\n currentCache.delete(derivatives[0]);\n }\n return result;\n }\n }, {\n key: \"delete\",\n value: function _delete(derivativeOption) {\n // If cache exists\n if (this.has(derivativeOption)) {\n this.keys = this.keys.filter(function (item) {\n return !sameDerivativeOption(item, derivativeOption);\n });\n return this.deleteByPath(this.cache, derivativeOption);\n }\n return undefined;\n }\n }]);\n return ThemeCache;\n}();\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nvar Theme = /*#__PURE__*/function () {\n function Theme(derivatives) {\n _classCallCheck(this, Theme);\n _defineProperty(this, \"derivatives\", void 0);\n _defineProperty(this, \"id\", void 0);\n this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n this.id = uuid;\n if (derivatives.length === 0) {\n warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n }\n uuid += 1;\n }\n _createClass(Theme, [{\n key: \"getDerivativeToken\",\n value: function getDerivativeToken(token) {\n return this.derivatives.reduce(function (result, derivative) {\n return derivative(token, result);\n }, undefined);\n }\n }]);\n return Theme;\n}();\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n // Create new theme if not exist\n if (!cacheThemes.has(derivativeArr)) {\n cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n }\n\n // Get theme from cache and return\n return cacheThemes.get(derivativeArr);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { Theme } from \"./theme\";\nexport function flattenToken(token) {\n var str = '';\n Object.keys(token).forEach(function (key) {\n var value = token[key];\n str += key;\n if (value instanceof Theme) {\n str += value.id;\n } else if (value && _typeof(value) === 'object') {\n str += flattenToken(value);\n } else {\n str += value;\n }\n });\n return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n if (canUseDom()) {\n var _getComputedStyle$con, _ele$parentNode;\n updateCSS(styleStr, randomSelectorKey);\n var _ele = document.createElement('div');\n _ele.style.position = 'fixed';\n _ele.style.left = '0';\n _ele.style.top = '0';\n handleElement === null || handleElement === void 0 ? void 0 : handleElement(_ele);\n document.body.appendChild(_ele);\n if (process.env.NODE_ENV !== 'production') {\n _ele.innerHTML = 'Test';\n _ele.style.zIndex = '9999999';\n }\n var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 ? void 0 : _ele$parentNode.removeChild(_ele);\n removeCSS(randomSelectorKey);\n return support;\n }\n return false;\n}\nvar canLayer = undefined;\nexport function supportLayer() {\n if (canLayer === undefined) {\n canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canLayer;\n}\nvar canWhere = undefined;\nexport function supportWhere() {\n if (canWhere === undefined) {\n canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n });\n }\n return canWhere;\n}\nvar canLogic = undefined;\nexport function supportLogicProps() {\n if (canLogic === undefined) {\n canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n ele.className = randomSelectorKey;\n }, function (ele) {\n return getComputedStyle(ele).bottom === '93px';\n });\n }\n return canLogic;\n}","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n var firstMountRef = React.useRef(true);\n useInternalLayoutEffect(function () {\n return callback(firstMountRef.current);\n }, deps);\n\n // We tell react that first mount has passed\n useInternalLayoutEffect(function () {\n firstMountRef.current = false;\n return function () {\n firstMountRef.current = true;\n };\n }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n useLayoutEffect(function (firstMount) {\n if (!firstMount) {\n return callback();\n }\n }, deps);\n};\nexport default useLayoutEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// import canUseDom from 'rc-util/lib/Dom/canUseDom';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\n\n// We need fully clone React function here\n// to avoid webpack warning React 17 do not export `useId`\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n/**\n * Polyfill `useInsertionEffect` for React < 18\n * @param renderEffect will be executed in `useMemo`, and do not have callback\n * @param effect will be executed in `useLayoutEffect`\n * @param deps\n */\nvar useInsertionEffectPolyfill = function useInsertionEffectPolyfill(renderEffect, effect, deps) {\n React.useMemo(renderEffect, deps);\n useLayoutEffect(function () {\n return effect(true);\n }, deps);\n};\n\n/**\n * Compatible `useInsertionEffect`\n * will use `useInsertionEffect` if React version >= 18,\n * otherwise use `useInsertionEffectPolyfill`.\n */\nvar useCompatibleInsertionEffect = useInsertionEffect ? function (renderEffect, effect, deps) {\n return useInsertionEffect(function () {\n renderEffect();\n return effect();\n }, deps);\n} : useInsertionEffectPolyfill;\nexport default useCompatibleInsertionEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n\n// DO NOT register functions in useEffect cleanup function, or functions that registered will never be called.\nvar useCleanupRegister = function useCleanupRegister(deps) {\n var effectCleanups = [];\n var cleanupFlag = false;\n function register(fn) {\n if (cleanupFlag) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '[Ant Design CSS-in-JS] You are registering a cleanup function after unmount, which will not have any effect.');\n }\n return;\n }\n effectCleanups.push(fn);\n }\n React.useEffect(function () {\n // Compatible with strict mode\n cleanupFlag = false;\n return function () {\n cleanupFlag = true;\n if (effectCleanups.length) {\n effectCleanups.forEach(function (fn) {\n return fn();\n });\n }\n };\n }, deps);\n return register;\n};\nvar useRun = function useRun() {\n return function (fn) {\n fn();\n };\n};\n\n// Only enable register in React 18\nvar useEffectCleanupRegister = typeof useInsertionEffect !== 'undefined' ? useCleanupRegister : useRun;\nexport default useEffectCleanupRegister;","function useProdHMR() {\n return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n var win = window;\n if (typeof win.webpackHotUpdate === 'function') {\n var originWebpackHotUpdate = win.webpackHotUpdate;\n win.webpackHotUpdate = function () {\n webpackHMR = true;\n setTimeout(function () {\n webpackHMR = false;\n }, 0);\n return originWebpackHotUpdate.apply(void 0, arguments);\n };\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport StyleContext from \"../StyleContext\";\nimport useCompatibleInsertionEffect from \"./useCompatibleInsertionEffect\";\nimport useEffectCleanupRegister from \"./useEffectCleanupRegister\";\nimport useHMR from \"./useHMR\";\nexport default function useGlobalCache(prefix, keyPath, cacheFn, onCacheRemove,\n// Add additional effect trigger by `useInsertionEffect`\nonCacheEffect) {\n var _React$useContext = React.useContext(StyleContext),\n globalCache = _React$useContext.cache;\n var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n var deps = fullPath.join('_');\n var register = useEffectCleanupRegister([deps]);\n var HMRUpdate = useHMR();\n var buildCache = function buildCache(updater) {\n globalCache.update(fullPath, function (prevCache) {\n var _ref = prevCache || [],\n _ref2 = _slicedToArray(_ref, 2),\n _ref2$ = _ref2[0],\n times = _ref2$ === void 0 ? 0 : _ref2$,\n cache = _ref2[1];\n\n // HMR should always ignore cache since developer may change it\n var tmpCache = cache;\n if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(tmpCache, HMRUpdate);\n tmpCache = null;\n }\n var mergedCache = tmpCache || cacheFn();\n var data = [times, mergedCache];\n\n // Call updater if need additional logic\n return updater ? updater(data) : data;\n });\n };\n\n // Create cache\n React.useMemo(function () {\n buildCache();\n }, /* eslint-disable react-hooks/exhaustive-deps */\n [deps]\n /* eslint-enable */);\n\n var cacheEntity = globalCache.get(fullPath);\n\n // HMR clean the cache but not trigger `useMemo` again\n // Let's fallback of this\n // ref https://github.com/ant-design/cssinjs/issues/127\n if (process.env.NODE_ENV !== 'production' && !cacheEntity) {\n buildCache();\n cacheEntity = globalCache.get(fullPath);\n }\n var cacheContent = cacheEntity[1];\n\n // Remove if no need anymore\n useCompatibleInsertionEffect(function () {\n onCacheEffect === null || onCacheEffect === void 0 ? void 0 : onCacheEffect(cacheContent);\n }, function (polyfill) {\n // It's bad to call build again in effect.\n // But we have to do this since StrictMode will call effect twice\n // which will clear cache on the first time.\n buildCache(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n times = _ref4[0],\n cache = _ref4[1];\n if (polyfill && times === 0) {\n onCacheEffect === null || onCacheEffect === void 0 ? void 0 : onCacheEffect(cacheContent);\n }\n return [times + 1, cache];\n });\n return function () {\n globalCache.update(fullPath, function (prevCache) {\n var _ref5 = prevCache || [],\n _ref6 = _slicedToArray(_ref5, 2),\n _ref6$ = _ref6[0],\n times = _ref6$ === void 0 ? 0 : _ref6$,\n cache = _ref6[1];\n var nextCount = times - 1;\n if (nextCount === 0) {\n // Always remove styles in useEffect callback\n register(function () {\n return onCacheRemove === null || onCacheRemove === void 0 ? void 0 : onCacheRemove(cache, false);\n });\n return null;\n }\n return [times - 1, cache];\n });\n };\n }, [deps]);\n return cacheContent;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, token2key } from \"../util\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n if (typeof document !== 'undefined') {\n var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n styles.forEach(function (style) {\n if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n var _style$parentNode;\n (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 ? void 0 : _style$parentNode.removeChild(style);\n }\n });\n }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n var tokenKeyList = Array.from(tokenKeys.keys());\n var cleanableKeyList = tokenKeyList.filter(function (key) {\n var count = tokenKeys.get(key) || 0;\n return count <= 0;\n });\n\n // Should keep tokens under threshold for not to insert style too often\n if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n cleanableKeyList.forEach(function (key) {\n removeStyleTags(key, instanceId);\n tokenKeys.delete(key);\n });\n }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n var derivativeToken = theme.getDerivativeToken(originToken);\n\n // Merge with override\n var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n // Format if needed\n if (format) {\n mergedDerivativeToken = format(mergedDerivativeToken);\n }\n return mergedDerivativeToken;\n};\n\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _useContext = useContext(StyleContext),\n instanceId = _useContext.cache.instanceId;\n var _option$salt = option.salt,\n salt = _option$salt === void 0 ? '' : _option$salt,\n _option$override = option.override,\n override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n formatToken = option.formatToken,\n compute = option.getComputedToken;\n\n // Basic - We do basic cache here\n var mergedToken = React.useMemo(function () {\n return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n }, [tokens]);\n var tokenStr = React.useMemo(function () {\n return flattenToken(mergedToken);\n }, [mergedToken]);\n var overrideTokenStr = React.useMemo(function () {\n return flattenToken(override);\n }, [override]);\n var cachedToken = useGlobalCache('token', [salt, theme.id, tokenStr, overrideTokenStr], function () {\n var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n // Optimize for `useStyleRegister` performance\n var tokenKey = token2key(mergedDerivativeToken, salt);\n mergedDerivativeToken._tokenKey = tokenKey;\n recordCleanToken(tokenKey);\n var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n mergedDerivativeToken._hashId = hashId; // Not used\n\n return [mergedDerivativeToken, hashId];\n }, function (cache) {\n // Remove token will remove all related style\n cleanTokenStyle(cache[0]._tokenKey, instanceId);\n });\n return cachedToken;\n}","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import { lintWarning } from \"./utils\";\nfunction isConcatSelector(selector) {\n var _selector$match;\n var notContent = ((_selector$match = selector.match(/:not\\(([^)]*)\\)/)) === null || _selector$match === void 0 ? void 0 : _selector$match[1]) || '';\n\n // split selector. e.g.\n // `h1#a.b` => ['h1', #a', '.b']\n var splitCells = notContent.split(/(\\[[^[]*])|(?=[.#])/).filter(function (str) {\n return str;\n });\n return splitCells.length > 1;\n}\nfunction parsePath(info) {\n return info.parentSelectors.reduce(function (prev, cur) {\n if (!prev) {\n return cur;\n }\n return cur.includes('&') ? cur.replace(/&/g, prev) : \"\".concat(prev, \" \").concat(cur);\n }, '');\n}\nvar linter = function linter(key, value, info) {\n var parentSelectorPath = parsePath(info);\n var notList = parentSelectorPath.match(/:not\\([^)]*\\)/g) || [];\n if (notList.length > 0 && notList.some(isConcatSelector)) {\n lintWarning(\"Concat ':not' selector not support in legacy browsers.\", info);\n }\n};\nexport default linter;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { ATTR_MARK } from \"../../StyleContext\";\nexport var ATTR_CACHE_MAP = 'data-ant-cssinjs-cache-path';\n\n/**\n * This marks style from the css file.\n * Which means not exist in `<style />` tag.\n */\nexport var CSS_FILE_STYLE = '_FILE_STYLE__';\nexport function serialize(cachePathMap) {\n return Object.keys(cachePathMap).map(function (path) {\n var hash = cachePathMap[path];\n return \"\".concat(path, \":\").concat(hash);\n }).join(';');\n}\nvar cachePathMap;\nvar fromCSSFile = true;\n\n/**\n * @private Test usage only. Can save remove if no need.\n */\nexport function reset(mockCache) {\n var fromFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n cachePathMap = mockCache;\n fromCSSFile = fromFile;\n}\nexport function prepare() {\n if (!cachePathMap) {\n cachePathMap = {};\n if (canUseDom()) {\n var div = document.createElement('div');\n div.className = ATTR_CACHE_MAP;\n div.style.position = 'fixed';\n div.style.visibility = 'hidden';\n div.style.top = '-9999px';\n document.body.appendChild(div);\n var content = getComputedStyle(div).content || '';\n content = content.replace(/^\"/, '').replace(/\"$/, '');\n\n // Fill data\n content.split(';').forEach(function (item) {\n var _item$split = item.split(':'),\n _item$split2 = _slicedToArray(_item$split, 2),\n path = _item$split2[0],\n hash = _item$split2[1];\n cachePathMap[path] = hash;\n });\n\n // Remove inline record style\n var inlineMapStyle = document.querySelector(\"style[\".concat(ATTR_CACHE_MAP, \"]\"));\n if (inlineMapStyle) {\n var _inlineMapStyle$paren;\n fromCSSFile = false;\n (_inlineMapStyle$paren = inlineMapStyle.parentNode) === null || _inlineMapStyle$paren === void 0 ? void 0 : _inlineMapStyle$paren.removeChild(inlineMapStyle);\n }\n document.body.removeChild(div);\n }\n }\n}\nexport function existPath(path) {\n prepare();\n return !!cachePathMap[path];\n}\nexport function getStyleAndHash(path) {\n var hash = cachePathMap[path];\n var styleStr = null;\n if (hash && canUseDom()) {\n if (fromCSSFile) {\n styleStr = CSS_FILE_STYLE;\n } else {\n var _style = document.querySelector(\"style[\".concat(ATTR_MARK, \"=\\\"\").concat(cachePathMap[path], \"\\\"]\"));\n if (_style) {\n styleStr = _style.innerHTML;\n } else {\n // Clean up since not exist anymore\n delete cachePathMap[path];\n }\n }\n }\n return [styleStr, hash];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react';\n// @ts-ignore\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../../linters\";\nimport StyleContext, { ATTR_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../../StyleContext\";\nimport { supportLayer } from \"../../util\";\nimport useGlobalCache from \"../useGlobalCache\";\nimport { ATTR_CACHE_MAP, CSS_FILE_STYLE, existPath, getStyleAndHash, serialize as serializeCacheMap } from \"./cacheMapUtil\";\nvar isClientSide = canUseDom();\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// == Parser ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n var serialized = serialize(compile(styleStr), stringify);\n return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n return _typeof(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n if (!hashId) {\n return key;\n }\n var hashClassName = \".\".concat(hashId);\n var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n // 注入 hashId\n var keys = key.split(',').map(function (k) {\n var _firstPath$match;\n var fullPath = k.trim().split(/\\s+/);\n\n // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n var firstPath = fullPath[0] || '';\n var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n });\n return keys.join(',');\n}\n// Parse CSSObject to style content\nexport var parseStyle = function parseStyle(interpolation) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n root: true,\n parentSelectors: []\n },\n root = _ref.root,\n injectHash = _ref.injectHash,\n parentSelectors = _ref.parentSelectors;\n var hashId = config.hashId,\n layer = config.layer,\n path = config.path,\n hashPriority = config.hashPriority,\n _config$transformers = config.transformers,\n transformers = _config$transformers === void 0 ? [] : _config$transformers,\n _config$linters = config.linters,\n linters = _config$linters === void 0 ? [] : _config$linters;\n var styleStr = '';\n var effectStyle = {};\n function parseKeyframes(keyframes) {\n var animationName = keyframes.getName(hashId);\n if (!effectStyle[animationName]) {\n var _parseStyle = parseStyle(keyframes.style, config, {\n root: false,\n parentSelectors: parentSelectors\n }),\n _parseStyle2 = _slicedToArray(_parseStyle, 1),\n _parsedStr = _parseStyle2[0];\n effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n }\n }\n function flattenList(list) {\n var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n list.forEach(function (item) {\n if (Array.isArray(item)) {\n flattenList(item, fullList);\n } else if (item) {\n fullList.push(item);\n }\n });\n return fullList;\n }\n var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n flattenStyleList.forEach(function (originStyle) {\n // Only root level can use raw string\n var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n if (typeof style === 'string') {\n styleStr += \"\".concat(style, \"\\n\");\n } else if (style._keyframe) {\n // Keyframe\n parseKeyframes(style);\n } else {\n var mergedStyle = transformers.reduce(function (prev, trans) {\n var _trans$visit;\n return (trans === null || trans === void 0 ? void 0 : (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n }, style);\n\n // Normal CSSObject\n Object.keys(mergedStyle).forEach(function (key) {\n var value = mergedStyle[key];\n if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n var subInjectHash = false;\n\n // 当成嵌套对象来处理\n var mergedKey = key.trim();\n // Whether treat child as root. In most case it is false.\n var nextRoot = false;\n\n // 拆分多个选择器\n if ((root || injectHash) && hashId) {\n if (mergedKey.startsWith('@')) {\n // 略过媒体查询,交给子节点继续插入 hashId\n subInjectHash = true;\n } else {\n // 注入 hashId\n mergedKey = injectSelectorHash(key, hashId, hashPriority);\n }\n } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n // But it does not conform to stylis syntax,\n // and finally we will get `{color:red;}` as css, which is wrong.\n // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n mergedKey = '';\n nextRoot = true;\n }\n var _parseStyle3 = parseStyle(value, config, {\n root: nextRoot,\n injectHash: subInjectHash,\n parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n }),\n _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n _parsedStr2 = _parseStyle4[0],\n childEffectStyle = _parseStyle4[1];\n effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n } else {\n var _value;\n function appendStyle(cssKey, cssValue) {\n if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n return linter(cssKey, cssValue, {\n path: path,\n hashId: hashId,\n parentSelectors: parentSelectors\n });\n });\n }\n\n // 如果是样式则直接插入\n var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n return \"-\".concat(match.toLowerCase());\n });\n\n // Auto suffix with px\n var formatValue = cssValue;\n if (!unitless[cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n formatValue = \"\".concat(formatValue, \"px\");\n }\n\n // handle animationName & Keyframe value\n if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n parseKeyframes(cssValue);\n formatValue = cssValue.getName(hashId);\n }\n styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n }\n var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n if (_typeof(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n actualValue.forEach(function (item) {\n appendStyle(key, item);\n });\n } else {\n appendStyle(key, actualValue);\n }\n }\n });\n }\n });\n if (!root) {\n styleStr = \"{\".concat(styleStr, \"}\");\n } else if (layer && supportLayer()) {\n var layerCells = layer.split(',');\n var layerName = layerCells[layerCells.length - 1].trim();\n styleStr = \"@layer \".concat(layerName, \" {\").concat(styleStr, \"}\");\n\n // Order of layer if needed\n if (layerCells.length > 1) {\n // zombieJ: stylis do not support layer order, so we need to handle it manually.\n styleStr = \"@layer \".concat(layer, \"{%%%:%}\").concat(styleStr);\n }\n }\n return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// == Register ==\n// ============================================================================\nfunction uniqueHash(path, styleStr) {\n return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n return null;\n}\n\n/**\n * Register a style to the global style sheet.\n */\nexport default function useStyleRegister(info, styleFn) {\n var token = info.token,\n path = info.path,\n hashId = info.hashId,\n layer = info.layer,\n nonce = info.nonce,\n clientOnly = info.clientOnly,\n _info$order = info.order,\n order = _info$order === void 0 ? 0 : _info$order;\n var _React$useContext = React.useContext(StyleContext),\n autoClear = _React$useContext.autoClear,\n mock = _React$useContext.mock,\n defaultCache = _React$useContext.defaultCache,\n hashPriority = _React$useContext.hashPriority,\n container = _React$useContext.container,\n ssrInline = _React$useContext.ssrInline,\n transformers = _React$useContext.transformers,\n linters = _React$useContext.linters,\n cache = _React$useContext.cache;\n var tokenKey = token._tokenKey;\n var fullPath = [tokenKey].concat(_toConsumableArray(path));\n\n // Check if need insert style\n var isMergedClientSide = isClientSide;\n if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n isMergedClientSide = mock === 'client';\n }\n var _useGlobalCache = useGlobalCache('style', fullPath,\n // Create cache if needed\n function () {\n var cachePath = fullPath.join('|');\n\n // Get style from SSR inline style directly\n if (existPath(cachePath)) {\n var _getStyleAndHash = getStyleAndHash(cachePath),\n _getStyleAndHash2 = _slicedToArray(_getStyleAndHash, 2),\n inlineCacheStyleStr = _getStyleAndHash2[0],\n styleHash = _getStyleAndHash2[1];\n if (inlineCacheStyleStr) {\n return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n }\n }\n\n // Generate style\n var styleObj = styleFn();\n var _parseStyle5 = parseStyle(styleObj, {\n hashId: hashId,\n hashPriority: hashPriority,\n layer: layer,\n path: path.join('-'),\n transformers: transformers,\n linters: linters\n }),\n _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n parsedStyle = _parseStyle6[0],\n effectStyle = _parseStyle6[1];\n var styleStr = normalizeStyle(parsedStyle);\n var styleId = uniqueHash(fullPath, styleStr);\n return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n },\n // Remove cache if no need\n function (_ref2, fromHMR) {\n var _ref3 = _slicedToArray(_ref2, 3),\n styleId = _ref3[2];\n if ((fromHMR || autoClear) && isClientSide) {\n removeCSS(styleId, {\n mark: ATTR_MARK\n });\n }\n },\n // Effect: Inject style here\n function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 4),\n styleStr = _ref5[0],\n _ = _ref5[1],\n styleId = _ref5[2],\n effectStyle = _ref5[3];\n if (isMergedClientSide && styleStr !== CSS_FILE_STYLE) {\n var mergedCSSConfig = {\n mark: ATTR_MARK,\n prepend: 'queue',\n attachTo: container,\n priority: order\n };\n var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n if (nonceStr) {\n mergedCSSConfig.csp = {\n nonce: nonceStr\n };\n }\n var _style = updateCSS(styleStr, styleId, mergedCSSConfig);\n _style[CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n // Used for `useCacheToken` to remove on batch when token removed\n _style.setAttribute(ATTR_TOKEN, tokenKey);\n\n // Debug usage. Dev only\n if (process.env.NODE_ENV !== 'production') {\n _style.setAttribute(ATTR_CACHE_PATH, fullPath.join('|'));\n }\n\n // Inject client side effect style\n Object.keys(effectStyle).forEach(function (effectKey) {\n updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n });\n }\n }),\n _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n cachedStyleStr = _useGlobalCache2[0],\n cachedTokenKey = _useGlobalCache2[1],\n cachedStyleId = _useGlobalCache2[2];\n return function (node) {\n var styleNode;\n if (!ssrInline || isMergedClientSide || !defaultCache) {\n styleNode = /*#__PURE__*/React.createElement(Empty, null);\n } else {\n var _ref6;\n styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref6 = {}, _defineProperty(_ref6, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref6, ATTR_MARK, cachedStyleId), _ref6), {\n dangerouslySetInnerHTML: {\n __html: cachedStyleStr\n }\n }));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n };\n}\n\n// ============================================================================\n// == SSR ==\n// ============================================================================\nexport function extractStyle(cache) {\n var plain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var matchPrefix = \"style%\";\n\n // prefix with `style` is used for `useStyleRegister` to cache style context\n var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n return key.startsWith(matchPrefix);\n });\n\n // Common effect styles like animation\n var effectStyles = {};\n\n // Mapping of cachePath to style hash\n var cachePathMap = {};\n var styleText = '';\n function toStyleStr(style, tokenKey, styleId) {\n var _objectSpread2;\n var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var attrs = _objectSpread(_objectSpread({}, customizeAttrs), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, ATTR_TOKEN, tokenKey), _defineProperty(_objectSpread2, ATTR_MARK, styleId), _objectSpread2));\n var attrStr = Object.keys(attrs).map(function (attr) {\n var val = attrs[attr];\n return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n }).filter(function (v) {\n return v;\n }).join(' ');\n return plain ? style : \"<style \".concat(attrStr, \">\").concat(style, \"</style>\");\n }\n\n // ====================== Fill Style ======================\n\n var orderStyles = styleKeys.map(function (key) {\n var cachePath = key.slice(matchPrefix.length).replace(/%/g, '|');\n var _2 = _slicedToArray(cache.cache.get(key)[1], 6),\n styleStr = _2[0],\n tokenKey = _2[1],\n styleId = _2[2],\n effectStyle = _2[3],\n clientOnly = _2[4],\n order = _2[5];\n\n // Skip client only style\n if (clientOnly) {\n return null;\n }\n\n // ====================== Style ======================\n // Used for rc-util\n var sharedAttrs = {\n 'data-rc-order': 'prependQueue',\n 'data-rc-priority': \"\".concat(order)\n };\n var keyStyleText = toStyleStr(styleStr, tokenKey, styleId, sharedAttrs);\n\n // Save cache path with hash mapping\n cachePathMap[cachePath] = styleId;\n\n // =============== Create effect style ===============\n if (effectStyle) {\n Object.keys(effectStyle).forEach(function (effectKey) {\n // Effect style can be reused\n if (!effectStyles[effectKey]) {\n effectStyles[effectKey] = true;\n keyStyleText += toStyleStr(normalizeStyle(effectStyle[effectKey]), tokenKey, \"_effect-\".concat(effectKey), sharedAttrs);\n }\n });\n }\n var ret = [order, keyStyleText];\n return ret;\n }).filter(function (o) {\n return o;\n });\n orderStyles.sort(function (o1, o2) {\n return o1[0] - o2[0];\n }).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n style = _ref8[1];\n styleText += style;\n });\n\n // ==================== Fill Cache Path ====================\n styleText += toStyleStr(\".\".concat(ATTR_CACHE_MAP, \"{content:\\\"\").concat(serializeCacheMap(cachePathMap), \"\\\";}\"), undefined, undefined, _defineProperty({}, ATTR_CACHE_MAP, ATTR_CACHE_MAP));\n return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar Keyframe = /*#__PURE__*/function () {\n function Keyframe(name, style) {\n _classCallCheck(this, Keyframe);\n _defineProperty(this, \"name\", void 0);\n _defineProperty(this, \"style\", void 0);\n _defineProperty(this, \"_keyframe\", true);\n this.name = name;\n this.style = style;\n }\n _createClass(Keyframe, [{\n key: \"getName\",\n value: function getName() {\n var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n }\n }]);\n return Keyframe;\n}();\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction splitValues(value) {\n if (typeof value === 'number') {\n return [[value], false];\n }\n var rawStyle = String(value).trim();\n var importantCells = rawStyle.match(/(.*)(!important)/);\n var splitStyle = (importantCells ? importantCells[1] : rawStyle).trim().split(/\\s+/);\n\n // Combine styles split in brackets, like `calc(1px + 2px)`\n var temp = '';\n var brackets = 0;\n return [splitStyle.reduce(function (list, item) {\n if (item.includes('(')) {\n temp += item;\n brackets += item.split('(').length - 1;\n } else if (item.includes(')')) {\n temp += item;\n brackets -= item.split(')').length - 1;\n if (brackets === 0) {\n list.push(temp);\n temp = '';\n }\n } else if (brackets > 0) {\n temp += item;\n } else {\n list.push(item);\n }\n return list;\n }, []), !!importantCells];\n}\nfunction noSplit(list) {\n list.notSplit = true;\n return list;\n}\nvar keyMap = {\n // Inset\n inset: ['top', 'right', 'bottom', 'left'],\n insetBlock: ['top', 'bottom'],\n insetBlockStart: ['top'],\n insetBlockEnd: ['bottom'],\n insetInline: ['left', 'right'],\n insetInlineStart: ['left'],\n insetInlineEnd: ['right'],\n // Margin\n marginBlock: ['marginTop', 'marginBottom'],\n marginBlockStart: ['marginTop'],\n marginBlockEnd: ['marginBottom'],\n marginInline: ['marginLeft', 'marginRight'],\n marginInlineStart: ['marginLeft'],\n marginInlineEnd: ['marginRight'],\n // Padding\n paddingBlock: ['paddingTop', 'paddingBottom'],\n paddingBlockStart: ['paddingTop'],\n paddingBlockEnd: ['paddingBottom'],\n paddingInline: ['paddingLeft', 'paddingRight'],\n paddingInlineStart: ['paddingLeft'],\n paddingInlineEnd: ['paddingRight'],\n // Border\n borderBlock: noSplit(['borderTop', 'borderBottom']),\n borderBlockStart: noSplit(['borderTop']),\n borderBlockEnd: noSplit(['borderBottom']),\n borderInline: noSplit(['borderLeft', 'borderRight']),\n borderInlineStart: noSplit(['borderLeft']),\n borderInlineEnd: noSplit(['borderRight']),\n // Border width\n borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n borderBlockStartWidth: ['borderTopWidth'],\n borderBlockEndWidth: ['borderBottomWidth'],\n borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n borderInlineStartWidth: ['borderLeftWidth'],\n borderInlineEndWidth: ['borderRightWidth'],\n // Border style\n borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n borderBlockStartStyle: ['borderTopStyle'],\n borderBlockEndStyle: ['borderBottomStyle'],\n borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n borderInlineStartStyle: ['borderLeftStyle'],\n borderInlineEndStyle: ['borderRightStyle'],\n // Border color\n borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n borderBlockStartColor: ['borderTopColor'],\n borderBlockEndColor: ['borderBottomColor'],\n borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n borderInlineStartColor: ['borderLeftColor'],\n borderInlineEndColor: ['borderRightColor'],\n // Border radius\n borderStartStartRadius: ['borderTopLeftRadius'],\n borderStartEndRadius: ['borderTopRightRadius'],\n borderEndStartRadius: ['borderBottomLeftRadius'],\n borderEndEndRadius: ['borderBottomRightRadius']\n};\nfunction wrapImportantAndSkipCheck(value, important) {\n var parsedValue = value;\n if (important) {\n parsedValue = \"\".concat(parsedValue, \" !important\");\n }\n return {\n _skip_check_: true,\n value: parsedValue\n };\n}\n\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\nvar transform = {\n visit: function visit(cssObj) {\n var clone = {};\n Object.keys(cssObj).forEach(function (key) {\n var value = cssObj[key];\n var matchValue = keyMap[key];\n if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n var _splitValues = splitValues(value),\n _splitValues2 = _slicedToArray(_splitValues, 2),\n _values = _splitValues2[0],\n _important = _splitValues2[1];\n if (matchValue.length && matchValue.notSplit) {\n // not split means always give same value like border\n matchValue.forEach(function (matchKey) {\n clone[matchKey] = wrapImportantAndSkipCheck(value, _important);\n });\n } else if (matchValue.length === 1) {\n // Handle like `marginBlockStart` => `marginTop`\n clone[matchValue[0]] = wrapImportantAndSkipCheck(value, _important);\n } else if (matchValue.length === 2) {\n // Handle like `marginBlock` => `marginTop` & `marginBottom`\n matchValue.forEach(function (matchKey, index) {\n var _values$index;\n clone[matchKey] = wrapImportantAndSkipCheck((_values$index = _values[index]) !== null && _values$index !== void 0 ? _values$index : _values[0], _important);\n });\n } else if (matchValue.length === 4) {\n // Handle like `inset` => `top` & `right` & `bottom` & `left`\n matchValue.forEach(function (matchKey, index) {\n var _ref, _values$index2;\n clone[matchKey] = wrapImportantAndSkipCheck((_ref = (_values$index2 = _values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : _values[index - 2]) !== null && _ref !== void 0 ? _ref : _values[0], _important);\n });\n } else {\n clone[key] = value;\n }\n } else {\n clone[key] = value;\n }\n });\n return clone;\n }\n};\nexport default transform;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * respect https://github.com/cuth/postcss-pxtorem\n */\nimport unitless from '@emotion/unitless';\nvar pxRegex = /url\\([^)]+\\)|var\\([^)]+\\)|(\\d*\\.?\\d+)px/g;\nfunction toFixed(number, precision) {\n var multiplier = Math.pow(10, precision + 1),\n wholeNumber = Math.floor(number * multiplier);\n return Math.round(wholeNumber / 10) * 10 / multiplier;\n}\nvar transform = function transform() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$rootValue = options.rootValue,\n rootValue = _options$rootValue === void 0 ? 16 : _options$rootValue,\n _options$precision = options.precision,\n precision = _options$precision === void 0 ? 5 : _options$precision,\n _options$mediaQuery = options.mediaQuery,\n mediaQuery = _options$mediaQuery === void 0 ? false : _options$mediaQuery;\n var pxReplace = function pxReplace(m, $1) {\n if (!$1) return m;\n var pixels = parseFloat($1);\n // covenant: pixels <= 1, not transform to rem @zombieJ\n if (pixels <= 1) return m;\n var fixedVal = toFixed(pixels / rootValue, precision);\n return \"\".concat(fixedVal, \"rem\");\n };\n var visit = function visit(cssObj) {\n var clone = _objectSpread({}, cssObj);\n Object.entries(cssObj).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (typeof value === 'string' && value.includes('px')) {\n var newValue = value.replace(pxRegex, pxReplace);\n clone[key] = newValue;\n }\n\n // no unit\n if (!unitless[key] && typeof value === 'number' && value !== 0) {\n clone[key] = \"\".concat(value, \"px\").replace(pxRegex, pxReplace);\n }\n\n // Media queries\n var mergedKey = key.trim();\n if (mergedKey.startsWith('@') && mergedKey.includes('px') && mediaQuery) {\n var newKey = key.replace(pxRegex, pxReplace);\n clone[newKey] = clone[key];\n delete clone[key];\n }\n });\n return clone;\n };\n return {\n visit: visit\n };\n};\nexport default transform;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","export default function get(entity, path) {\n var current = entity;\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n current = current[path[i]];\n }\n return current;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n var clone;\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n }\n\n // Delete prop if `removeIfUndefined` and value is undefined\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n return clone;\n}\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n var clone = createEmpty(sources[0]);\n sources.forEach(function (src) {\n function internalMerge(path, parentLoopSet) {\n var loopSet = new Set(parentLoopSet);\n var value = get(src, path);\n var isArr = Array.isArray(value);\n if (isArr || isObject(value)) {\n // Only add not loop obj\n if (!loopSet.has(value)) {\n loopSet.add(value);\n var originValue = get(clone, path);\n if (isArr) {\n // Array will always be override\n clone = set(clone, path, []);\n } else if (!originValue || _typeof(originValue) !== 'object') {\n // Init container if not exist\n clone = set(clone, path, createEmpty(value));\n }\n keys(value).forEach(function (key) {\n internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n });\n }\n } else {\n clone = set(clone, path, value);\n }\n }\n internalMerge([]);\n });\n return clone;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","const locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n lang: Object.assign({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n locale: 'en',\n Pagination,\n DatePicker,\n TimePicker,\n Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Tour: {\n Next: 'Next',\n Previous: 'Previous',\n Finish: 'Finish'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n default: 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n enum: '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n },\n QRCode: {\n expired: 'QR code expired',\n refresh: 'Refresh'\n },\n ColorPicker: {\n presetEmpty: 'Empty'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nlet localeList = [];\nconst generateLocale = () => localeList.reduce((merged, locale) => Object.assign(Object.assign({}, merged), locale), defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n const cloneLocale = Object.assign({}, newLocale);\n localeList.push(cloneLocale);\n runtimeLocale = generateLocale();\n return () => {\n localeList = localeList.filter(locale => locale !== cloneLocale);\n runtimeLocale = generateLocale();\n };\n }\n runtimeLocale = Object.assign({}, defaultLocale.Modal);\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","'use client';\n\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n const {\n locale = {},\n children,\n _ANT_MARK__\n } = props;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(() => {\n const clearLocale = changeConfirmLocale(locale && locale.Modal);\n return clearLocale;\n }, [locale]);\n const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n exist: true\n }), [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","/* eslint-disable @typescript-eslint/no-redundant-type-constituents */\nimport { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}];\n\n// Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nexport default function generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}","import generate from \"./generate\";\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1677FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\nvar gray = presetPalettes.grey;\nexport { generate, presetPalettes, presetDarkPalettes, presetPrimaryColors, red, volcano, orange, gold, yellow, lime, green, cyan, blue, geekblue, purple, magenta, grey, gray };","const genControlHeight = token => {\n const {\n controlHeight\n } = token;\n return {\n controlHeightSM: controlHeight * 0.75,\n controlHeightXS: controlHeight * 0.5,\n controlHeightLG: controlHeight * 1.25\n };\n};\nexport default genControlHeight;","export const defaultPresetColors = {\n blue: '#1677ff',\n purple: '#722ED1',\n cyan: '#13C2C2',\n green: '#52C41A',\n magenta: '#EB2F96',\n pink: '#eb2f96',\n red: '#F5222D',\n orange: '#FA8C16',\n yellow: '#FADB14',\n volcano: '#FA541C',\n geekblue: '#2F54EB',\n gold: '#FAAD14',\n lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n // Color\n colorPrimary: '#1677ff',\n colorSuccess: '#52c41a',\n colorWarning: '#faad14',\n colorError: '#ff4d4f',\n colorInfo: '#1677ff',\n colorLink: '',\n colorTextBase: '',\n colorBgBase: '',\n // Font\n fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n fontSize: 14,\n // Line\n lineWidth: 1,\n lineType: 'solid',\n // Motion\n motionUnit: 0.1,\n motionBase: 0,\n motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n // Radius\n borderRadius: 6,\n // Size\n sizeUnit: 4,\n sizeStep: 4,\n sizePopupArrow: 16,\n // Control Base\n controlHeight: 32,\n // zIndex\n zIndexBase: 0,\n zIndexPopupBase: 1000,\n // Image\n opacityImage: 1,\n // Wireframe\n wireframe: false,\n // Motion\n motion: true\n});\nexport default seedToken;","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns whether the color is monochrome.\n */\n TinyColor.prototype.isMonochrome = function () {\n var s = this.toHsl().s;\n return s === 0;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # prefixed.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # prefixed.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.\n * @param allowShortChar will shorten hex value to 3 or 4 char if possible\n */\n TinyColor.prototype.toHexShortString = function (allowShortChar) {\n if (allowShortChar === void 0) { allowShortChar = false; }\n return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n var alpha = fg.a + bg.a * (1 - fg.a);\n return new TinyColor({\n r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,\n g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,\n b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,\n a: alpha,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","import { TinyColor } from '@ctrl/tinycolor';\nexport default function genColorMapToken(seed, _ref) {\n let {\n generateColorPalettes,\n generateNeutralColorPalettes\n } = _ref;\n const {\n colorSuccess: colorSuccessBase,\n colorWarning: colorWarningBase,\n colorError: colorErrorBase,\n colorInfo: colorInfoBase,\n colorPrimary: colorPrimaryBase,\n colorBgBase,\n colorTextBase\n } = seed;\n const primaryColors = generateColorPalettes(colorPrimaryBase);\n const successColors = generateColorPalettes(colorSuccessBase);\n const warningColors = generateColorPalettes(colorWarningBase);\n const errorColors = generateColorPalettes(colorErrorBase);\n const infoColors = generateColorPalettes(colorInfoBase);\n const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n // Color Link\n const colorLink = seed.colorLink || seed.colorInfo;\n const linkColors = generateColorPalettes(colorLink);\n return Object.assign(Object.assign({}, neutralColors), {\n colorPrimaryBg: primaryColors[1],\n colorPrimaryBgHover: primaryColors[2],\n colorPrimaryBorder: primaryColors[3],\n colorPrimaryBorderHover: primaryColors[4],\n colorPrimaryHover: primaryColors[5],\n colorPrimary: primaryColors[6],\n colorPrimaryActive: primaryColors[7],\n colorPrimaryTextHover: primaryColors[8],\n colorPrimaryText: primaryColors[9],\n colorPrimaryTextActive: primaryColors[10],\n colorSuccessBg: successColors[1],\n colorSuccessBgHover: successColors[2],\n colorSuccessBorder: successColors[3],\n colorSuccessBorderHover: successColors[4],\n colorSuccessHover: successColors[4],\n colorSuccess: successColors[6],\n colorSuccessActive: successColors[7],\n colorSuccessTextHover: successColors[8],\n colorSuccessText: successColors[9],\n colorSuccessTextActive: successColors[10],\n colorErrorBg: errorColors[1],\n colorErrorBgHover: errorColors[2],\n colorErrorBorder: errorColors[3],\n colorErrorBorderHover: errorColors[4],\n colorErrorHover: errorColors[5],\n colorError: errorColors[6],\n colorErrorActive: errorColors[7],\n colorErrorTextHover: errorColors[8],\n colorErrorText: errorColors[9],\n colorErrorTextActive: errorColors[10],\n colorWarningBg: warningColors[1],\n colorWarningBgHover: warningColors[2],\n colorWarningBorder: warningColors[3],\n colorWarningBorderHover: warningColors[4],\n colorWarningHover: warningColors[4],\n colorWarning: warningColors[6],\n colorWarningActive: warningColors[7],\n colorWarningTextHover: warningColors[8],\n colorWarningText: warningColors[9],\n colorWarningTextActive: warningColors[10],\n colorInfoBg: infoColors[1],\n colorInfoBgHover: infoColors[2],\n colorInfoBorder: infoColors[3],\n colorInfoBorderHover: infoColors[4],\n colorInfoHover: infoColors[4],\n colorInfo: infoColors[6],\n colorInfoActive: infoColors[7],\n colorInfoTextHover: infoColors[8],\n colorInfoText: infoColors[9],\n colorInfoTextActive: infoColors[10],\n colorLinkHover: linkColors[4],\n colorLink: linkColors[6],\n colorLinkActive: linkColors[7],\n colorBgMask: new TinyColor('#000').setAlpha(0.45).toRgbString(),\n colorWhite: '#fff'\n });\n}","const genRadius = radiusBase => {\n let radiusLG = radiusBase;\n let radiusSM = radiusBase;\n let radiusXS = radiusBase;\n let radiusOuter = radiusBase;\n // radiusLG\n if (radiusBase < 6 && radiusBase >= 5) {\n radiusLG = radiusBase + 1;\n } else if (radiusBase < 16 && radiusBase >= 6) {\n radiusLG = radiusBase + 2;\n } else if (radiusBase >= 16) {\n radiusLG = 16;\n }\n // radiusSM\n if (radiusBase < 7 && radiusBase >= 5) {\n radiusSM = 4;\n } else if (radiusBase < 8 && radiusBase >= 7) {\n radiusSM = 5;\n } else if (radiusBase < 14 && radiusBase >= 8) {\n radiusSM = 6;\n } else if (radiusBase < 16 && radiusBase >= 14) {\n radiusSM = 7;\n } else if (radiusBase >= 16) {\n radiusSM = 8;\n }\n // radiusXS\n if (radiusBase < 6 && radiusBase >= 2) {\n radiusXS = 1;\n } else if (radiusBase >= 6) {\n radiusXS = 2;\n }\n // radiusOuter\n if (radiusBase > 4 && radiusBase < 8) {\n radiusOuter = 4;\n } else if (radiusBase >= 8) {\n radiusOuter = 6;\n }\n return {\n borderRadius: radiusBase > 16 ? 16 : radiusBase,\n borderRadiusXS: radiusXS,\n borderRadiusSM: radiusSM,\n borderRadiusLG: radiusLG,\n borderRadiusOuter: radiusOuter\n };\n};\nexport default genRadius;","import { TinyColor } from '@ctrl/tinycolor';\nexport const getAlphaColor = (baseColor, alpha) => new TinyColor(baseColor).setAlpha(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n const instance = new TinyColor(baseColor);\n return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n const colors = generate(baseColor);\n return {\n 1: colors[0],\n 2: colors[1],\n 3: colors[2],\n 4: colors[3],\n 5: colors[4],\n 6: colors[5],\n 7: colors[6],\n 8: colors[4],\n 9: colors[5],\n 10: colors[6]\n // 8: colors[7],\n // 9: colors[8],\n // 10: colors[9],\n };\n};\n\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n const colorBgBase = bgBaseColor || '#fff';\n const colorTextBase = textBaseColor || '#000';\n return {\n colorBgBase,\n colorTextBase,\n colorText: getAlphaColor(colorTextBase, 0.88),\n colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n colorFill: getAlphaColor(colorTextBase, 0.15),\n colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n colorBgLayout: getSolidColor(colorBgBase, 4),\n colorBgContainer: getSolidColor(colorBgBase, 0),\n colorBgElevated: getSolidColor(colorBgBase, 0),\n colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n colorBorder: getSolidColor(colorBgBase, 15),\n colorBorderSecondary: getSolidColor(colorBgBase, 6)\n };\n};","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n const fontSizePairs = genFontSizes(fontSize);\n const fontSizes = fontSizePairs.map(pair => pair.size);\n const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n return {\n fontSizeSM: fontSizes[0],\n fontSize: fontSizes[1],\n fontSizeLG: fontSizes[2],\n fontSizeXL: fontSizes[3],\n fontSizeHeading1: fontSizes[6],\n fontSizeHeading2: fontSizes[5],\n fontSizeHeading3: fontSizes[4],\n fontSizeHeading4: fontSizes[3],\n fontSizeHeading5: fontSizes[2],\n lineHeight: lineHeights[1],\n lineHeightLG: lineHeights[2],\n lineHeightSM: lineHeights[0],\n lineHeightHeading1: lineHeights[6],\n lineHeightHeading2: lineHeights[5],\n lineHeightHeading3: lineHeights[4],\n lineHeightHeading4: lineHeights[3],\n lineHeightHeading5: lineHeights[2]\n };\n};\nexport default genFontMapToken;","// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n const fontSizes = new Array(10).fill(null).map((_, index) => {\n const i = index - 1;\n const baseSize = base * Math.pow(2.71828, i / 5);\n const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n // Convert to even\n return Math.floor(intSize / 2) * 2;\n });\n fontSizes[1] = base;\n return fontSizes.map(size => {\n const height = size + 8;\n return {\n size,\n lineHeight: height / size\n };\n });\n}","import { generate } from '@ant-design/colors';\nimport genControlHeight from '../shared/genControlHeight';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nimport genFontMapToken from '../shared/genFontMapToken';\nexport default function derivative(token) {\n const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n const colors = generate(token[colorKey]);\n return new Array(10).fill(1).reduce((prev, _, i) => {\n prev[`${colorKey}-${i + 1}`] = colors[i];\n prev[`${colorKey}${i + 1}`] = colors[i];\n return prev;\n }, {});\n }).reduce((prev, cur) => {\n prev = Object.assign(Object.assign({}, prev), cur);\n return prev;\n }, {});\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n generateColorPalettes,\n generateNeutralColorPalettes\n })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","export default function genSizeMapToken(token) {\n const {\n sizeUnit,\n sizeStep\n } = token;\n return {\n sizeXXL: sizeUnit * (sizeStep + 8),\n sizeXL: sizeUnit * (sizeStep + 4),\n sizeLG: sizeUnit * (sizeStep + 2),\n sizeMD: sizeUnit * (sizeStep + 1),\n sizeMS: sizeUnit * sizeStep,\n size: sizeUnit * sizeStep,\n sizeSM: sizeUnit * (sizeStep - 1),\n sizeXS: sizeUnit * (sizeStep - 2),\n sizeXXS: sizeUnit * (sizeStep - 3) // 4\n };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n const {\n motionUnit,\n motionBase,\n borderRadius,\n lineWidth\n } = token;\n return Object.assign({\n // motion\n motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n // line\n lineWidthBold: lineWidth + 1\n }, genRadius(borderRadius));\n}","import { createTheme } from '@ant-design/cssinjs';\nimport React from 'react';\nimport defaultDerivative from './themes/default';\nimport defaultSeedToken from './themes/seed';\nexport const defaultTheme = createTheme(defaultDerivative);\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n token: defaultSeedToken,\n hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);","import * as React from 'react';\nexport const defaultIconPrefixCls = 'anticon';\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `ant-${suffixCls}` : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls,\n iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n Consumer: ConfigConsumer\n} = ConfigContext;","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n const variables = {};\n const formatColor = (color, updater) => {\n let clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n const fillColor = (colorVal, type) => {\n const baseColor = new TinyColor(colorVal);\n const colorPalettes = generate(baseColor.toRgbString());\n variables[`${type}-color`] = formatColor(baseColor);\n variables[`${type}-color-disabled`] = colorPalettes[1];\n variables[`${type}-color-hover`] = colorPalettes[4];\n variables[`${type}-color-active`] = colorPalettes[6];\n variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n const primaryColor = new TinyColor(theme.primaryColor);\n const primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach((color, index) => {\n variables[`primary-${index + 1}`] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setAlpha(c.getAlpha() * 0.12));\n const primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setAlpha(c.getAlpha() * 0.3));\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n return `\n :root {\n ${cssList.join('\\n')}\n }\n `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n const style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n let {\n children,\n disabled\n } = _ref;\n const originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n let {\n children,\n size\n } = _ref;\n const originSize = React.useContext(SizeContext);\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n};\nexport default SizeContext;","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n const componentDisabled = useContext(DisabledContext);\n const componentSize = useContext(SizeContext);\n return {\n componentDisabled,\n componentSize\n };\n}\nexport default useConfig;","import React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element\n // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n if (isDOM(node)) {\n return node;\n }\n if (node instanceof React.Component) {\n return ReactDOM.findDOMNode(node);\n }\n return null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable no-param-reassign */\n\nimport { isValidElement } from 'react';\nimport { isFragment, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n var refList = refs.filter(function (ref) {\n return ref;\n });\n if (refList.length <= 1) {\n return refList[0];\n }\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length !== next.length || prev.every(function (ref, i) {\n return ref !== next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n // Function component node\n if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render)) {\n return false;\n }\n\n // Class component\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render)) {\n return false;\n }\n return true;\n}\nexport function supportNodeRef(node) {\n if (! /*#__PURE__*/isValidElement(node)) {\n return false;\n }\n if (isFragment(node)) {\n return false;\n }\n return supportRef(node);\n}\n/* eslint-enable */","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: props\n }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n setValue(updater);\n }\n return [value, safeSetState];\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n var prefixMap = vendorPrefixes[eventName];\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (callback) {\n var cacheElementRef = useRef();\n\n // Cache callback\n var callbackRef = useRef(callback);\n callbackRef.current = callback;\n\n // Internal motion event handler\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []);\n\n // Remove events\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n }\n\n // Patch events\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd);\n\n // Save as cache in case dom removed trigger by `motionDeadline`\n cacheElementRef.current = element;\n }\n }\n\n // Clean up when removed\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id);\n\n // Trigger\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n });\n\n // Bind real raf id\n rafIds.set(id, realId);\n }\n }\n callRef(times);\n return id;\n};\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};\nexport default wrapperRaf;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else if (nextStep) {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null);\n\n // =========================== Dom Node ===========================\n function getDomElement() {\n return getElement();\n }\n\n // ========================== Motion End ==========================\n var activeRef = useRef(false);\n\n /**\n * Clean up status & style\n */\n function updateMotionEndStatus() {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n var currentActive = activeRef.current;\n var canEnd;\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n }\n\n // Only update status when `canEnd` and not destroyed\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n updateMotionEndStatus();\n }\n }\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0];\n\n // ============================= Step =============================\n var getEventHandlers = function getEventHandlers(targetStatus) {\n var _ref2, _ref3, _ref4;\n switch (targetStatus) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n default:\n return {};\n }\n };\n var eventHandlers = React.useMemo(function () {\n return getEventHandlers(status);\n }, [status]);\n var _useStepQueue = useStepQueue(status, !supportMotion, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n if (!onPrepare) {\n return SkipStep;\n }\n return onPrepare(getDomElement());\n }\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n if (step === STEP_PREPARED) {\n updateMotionEndStatus();\n }\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n var active = isActive(step);\n activeRef.current = active;\n\n // ============================ Status ============================\n // Update with new status\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n // if (!supportMotion) {\n // return;\n // }\n\n var nextStatus;\n\n // Appear\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n }\n\n // Enter\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n }\n\n // Leave\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n }\n var nextEventHandlers = getEventHandlers(nextStatus);\n\n // Update to next status\n if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n setStatus(nextStatus);\n startStep();\n } else {\n // Set back in case no motion but prev status has prepare step\n setStatus(STATUS_NONE);\n }\n }, [visible]);\n\n // ============================ Effect ============================\n // Reset when motion changed\n useEffect(function () {\n if (\n // Cancel appear\n status === STATUS_APPEAR && !motionAppear ||\n // Cancel enter\n status === STATUS_ENTER && !motionEnter ||\n // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []);\n\n // Trigger `onVisibleChanged`\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]);\n\n // ============================ Styles ============================\n var mergedStyle = style;\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n function isSupportTransition(props, contextMotion) {\n return !!(props.motionName && transitionSupport && contextMotion !== false);\n }\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var _React$useContext = React.useContext(Context),\n contextMotion = _React$useContext.motion;\n var supportMotion = isSupportTransition(props, contextMotion);\n\n // Ref to the react node, it may be a HTMLElement\n var nodeRef = useRef();\n // Ref to the dom wrapper in case ref can not pass to HTMLElement\n var wrapperNodeRef = useRef();\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3];\n\n // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n var renderedRef = React.useRef(mergedVisible);\n if (mergedVisible) {\n renderedRef.current = true;\n }\n\n // ====================== Refs ======================\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]);\n\n // ===================== Render =====================\n var motionChildren;\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender || !removeOnLeave && !leavedClassName) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n // In motion\n var statusSuffix;\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, motionCls, motionCls && statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n }\n\n // Auto inject ref if child node not have `ref` props\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _ref = motionChildren,\n originNodeRef = _ref.ref;\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys);\n\n // Check prev keys to insert or keep\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n }\n\n // If not hit, it means key is removed\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n });\n\n // Add rest to the list\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n });\n\n // Update `STATUS_ADD` to `STATUS_KEEP`\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { supportTransition } from \"./util/motion\";\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from \"./util/diff\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n var _super = _createSuper(CSSMotionList);\n function CSSMotionList() {\n var _this;\n _classCallCheck(this, CSSMotionList);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: []\n });\n _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n _this.setState({\n keyEntities: nextKeyEntities\n });\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n });\n return _this;\n }\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var keyEntities = this.state.keyEntities;\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n });\n\n // Remove if already mark as removed\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n return true;\n })\n };\n }\n\n // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n }]);\n return CSSMotionList;\n }(React.Component);\n _defineProperty(CSSMotionList, \"defaultProps\", {\n component: 'div'\n });\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","import { TinyColor } from '@ctrl/tinycolor';\nfunction isStableColor(color) {\n return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n const {\n r: fR,\n g: fG,\n b: fB,\n a: originAlpha\n } = new TinyColor(frontColor).toRgb();\n if (originAlpha < 1) {\n return frontColor;\n }\n const {\n r: bR,\n g: bG,\n b: bB\n } = new TinyColor(backgroundColor).toRgb();\n for (let fA = 0.01; fA <= 1; fA += 0.01) {\n const r = Math.round((fR - bR * (1 - fA)) / fA);\n const g = Math.round((fG - bG * (1 - fA)) / fA);\n const b = Math.round((fB - bB * (1 - fA)) / fA);\n if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n return new TinyColor({\n r,\n g,\n b,\n a: Math.round(fA * 100) / 100\n }).toRgbString();\n }\n }\n // fallback\n /* istanbul ignore next */\n return new TinyColor({\n r: fR,\n g: fG,\n b: fB,\n a: 1\n }).toRgbString();\n}\nexport default getAlphaColor;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { TinyColor } from '@ctrl/tinycolor';\nimport seedToken from '../themes/seed';\nimport getAlphaColor from './getAlphaColor';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n const {\n override\n } = derivativeToken,\n restToken = __rest(derivativeToken, [\"override\"]);\n const overrideTokens = Object.assign({}, override);\n Object.keys(seedToken).forEach(token => {\n delete overrideTokens[token];\n });\n const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n const screenXS = 480;\n const screenSM = 576;\n const screenMD = 768;\n const screenLG = 992;\n const screenXL = 1200;\n const screenXXL = 1600;\n // Motion\n if (mergedToken.motion === false) {\n const fastDuration = '0s';\n mergedToken.motionDurationFast = fastDuration;\n mergedToken.motionDurationMid = fastDuration;\n mergedToken.motionDurationSlow = fastDuration;\n }\n // Generate alias token\n const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n // ============== Background ============== //\n colorFillContent: mergedToken.colorFillSecondary,\n colorFillContentHover: mergedToken.colorFill,\n colorFillAlter: mergedToken.colorFillQuaternary,\n colorBgContainerDisabled: mergedToken.colorFillTertiary,\n // ============== Split ============== //\n colorBorderBg: mergedToken.colorBgContainer,\n colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n // ============== Text ============== //\n colorTextPlaceholder: mergedToken.colorTextQuaternary,\n colorTextDisabled: mergedToken.colorTextQuaternary,\n colorTextHeading: mergedToken.colorText,\n colorTextLabel: mergedToken.colorTextSecondary,\n colorTextDescription: mergedToken.colorTextTertiary,\n colorTextLightSolid: mergedToken.colorWhite,\n colorHighlight: mergedToken.colorError,\n colorBgTextHover: mergedToken.colorFillSecondary,\n colorBgTextActive: mergedToken.colorFill,\n colorIcon: mergedToken.colorTextTertiary,\n colorIconHover: mergedToken.colorText,\n colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n // Font\n fontSizeIcon: mergedToken.fontSizeSM,\n // Line\n lineWidthFocus: mergedToken.lineWidth * 4,\n // Control\n lineWidth: mergedToken.lineWidth,\n controlOutlineWidth: mergedToken.lineWidth * 2,\n // Checkbox size and expand icon size\n controlInteractiveSize: mergedToken.controlHeight / 2,\n controlItemBgHover: mergedToken.colorFillTertiary,\n controlItemBgActive: mergedToken.colorPrimaryBg,\n controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n controlItemBgActiveDisabled: mergedToken.colorFill,\n controlTmpOutline: mergedToken.colorFillQuaternary,\n controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n lineType: mergedToken.lineType,\n borderRadius: mergedToken.borderRadius,\n borderRadiusXS: mergedToken.borderRadiusXS,\n borderRadiusSM: mergedToken.borderRadiusSM,\n borderRadiusLG: mergedToken.borderRadiusLG,\n fontWeightStrong: 600,\n opacityLoading: 0.65,\n linkDecoration: 'none',\n linkHoverDecoration: 'none',\n linkFocusDecoration: 'none',\n controlPaddingHorizontal: 12,\n controlPaddingHorizontalSM: 8,\n paddingXXS: mergedToken.sizeXXS,\n paddingXS: mergedToken.sizeXS,\n paddingSM: mergedToken.sizeSM,\n padding: mergedToken.size,\n paddingMD: mergedToken.sizeMD,\n paddingLG: mergedToken.sizeLG,\n paddingXL: mergedToken.sizeXL,\n paddingContentHorizontalLG: mergedToken.sizeLG,\n paddingContentVerticalLG: mergedToken.sizeMS,\n paddingContentHorizontal: mergedToken.sizeMS,\n paddingContentVertical: mergedToken.sizeSM,\n paddingContentHorizontalSM: mergedToken.size,\n paddingContentVerticalSM: mergedToken.sizeXS,\n marginXXS: mergedToken.sizeXXS,\n marginXS: mergedToken.sizeXS,\n marginSM: mergedToken.sizeSM,\n margin: mergedToken.size,\n marginMD: mergedToken.sizeMD,\n marginLG: mergedToken.sizeLG,\n marginXL: mergedToken.sizeXL,\n marginXXL: mergedToken.sizeXXL,\n boxShadow: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowSecondary: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTertiary: `\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,\n screenXS,\n screenXSMin: screenXS,\n screenXSMax: screenSM - 1,\n screenSM,\n screenSMMin: screenSM,\n screenSMMax: screenMD - 1,\n screenMD,\n screenMDMin: screenMD,\n screenMDMax: screenLG - 1,\n screenLG,\n screenLGMin: screenLG,\n screenLGMax: screenXL - 1,\n screenXL,\n screenXLMin: screenXL,\n screenXLMax: screenXXL - 1,\n screenXXL,\n screenXXLMin: screenXXL,\n boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n boxShadowCard: `\n 0 1px 2px -2px ${new TinyColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n 0 3px 6px 0 ${new TinyColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n 0 5px 12px 4px ${new TinyColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n `,\n boxShadowDrawerRight: `\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerLeft: `\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerUp: `\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowDrawerDown: `\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,\n boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n }), overrideTokens);\n return aliasToken;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useCacheToken } from '@ant-design/cssinjs';\nimport React from 'react';\nimport version from '../version';\nimport { defaultTheme, DesignTokenContext } from './context';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nexport const getComputedToken = (originToken, overrideToken, theme) => {\n const derivativeToken = theme.getDerivativeToken(originToken);\n const {\n override\n } = overrideToken,\n components = __rest(overrideToken, [\"override\"]);\n // Merge with override\n let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {\n override\n });\n // Format if needed\n mergedDerivativeToken = formatToken(mergedDerivativeToken);\n if (components) {\n Object.entries(components).forEach(_ref => {\n let [key, value] = _ref;\n const {\n theme: componentTheme\n } = value,\n componentTokens = __rest(value, [\"theme\"]);\n let mergedComponentToken = componentTokens;\n if (componentTheme) {\n mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {\n override: componentTokens\n }, componentTheme);\n }\n mergedDerivativeToken[key] = mergedComponentToken;\n });\n }\n return mergedDerivativeToken;\n};\n// ================================== Hook ==================================\nexport default function useToken() {\n const {\n token: rootDesignToken,\n hashed,\n theme,\n components\n } = React.useContext(DesignTokenContext);\n const salt = `${version}-${hashed || ''}`;\n const mergedTheme = theme || defaultTheme;\n const [token, hashId] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n salt,\n override: Object.assign({\n override: rootDesignToken\n }, components),\n getComputedToken,\n // formatToken will not be consumed after 1.15.0 with getComputedToken.\n // But token will break if @ant-design/cssinjs is under 1.15.0 without it\n formatToken\n });\n return [mergedTheme, token, hashed ? hashId : ''];\n}","export default '5.8.4';","import { Provider as MotionProvider } from 'rc-motion';\nimport * as React from 'react';\nimport { useToken } from '../theme/internal';\nexport default function MotionWrapper(props) {\n const {\n children\n } = props;\n const [, token] = useToken();\n const {\n motion\n } = token;\n const needWrapMotionProviderRef = React.useRef(false);\n needWrapMotionProviderRef.current = needWrapMotionProviderRef.current || motion === false;\n if (needWrapMotionProviderRef.current) {\n return /*#__PURE__*/React.createElement(MotionProvider, {\n motion: motion\n }, children);\n }\n return children;\n}","'use client';\n\nexport { operationUnit } from './operationUnit';\nexport { roundedArrow } from './roundedArrow';\nexport const textEllipsis = {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n};\nexport const resetComponent = token => ({\n boxSizing: 'border-box',\n margin: 0,\n padding: 0,\n color: token.colorText,\n fontSize: token.fontSize,\n // font-variant: @font-variant-base;\n lineHeight: token.lineHeight,\n listStyle: 'none',\n // font-feature-settings: @font-feature-settings-base;\n fontFamily: token.fontFamily\n});\nexport const resetIcon = () => ({\n display: 'inline-flex',\n alignItems: 'center',\n color: 'inherit',\n fontStyle: 'normal',\n lineHeight: 0,\n textAlign: 'center',\n textTransform: 'none',\n // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n verticalAlign: '-0.125em',\n textRendering: 'optimizeLegibility',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n '> *': {\n lineHeight: 1\n },\n svg: {\n display: 'inline-block'\n }\n});\nexport const clearFix = () => ({\n // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n '&::before': {\n display: 'table',\n content: '\"\"'\n },\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/21864\n display: 'table',\n clear: 'both',\n content: '\"\"'\n }\n});\nexport const genLinkStyle = token => ({\n a: {\n color: token.colorLink,\n textDecoration: token.linkDecoration,\n backgroundColor: 'transparent',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '-webkit-text-decoration-skip': 'objects',\n '&:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n },\n [`&:active,\n &:hover`]: {\n textDecoration: token.linkHoverDecoration,\n outline: 0\n },\n // https://github.com/ant-design/ant-design/issues/22503\n '&:focus': {\n textDecoration: token.linkFocusDecoration,\n outline: 0\n },\n '&[disabled]': {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n }\n }\n});\nexport const genCommonStyle = (token, componentPrefixCls) => {\n const {\n fontFamily,\n fontSize\n } = token;\n const rootPrefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n return {\n [rootPrefixSelector]: {\n fontFamily,\n fontSize,\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n },\n [rootPrefixSelector]: {\n boxSizing: 'border-box',\n '&::before, &::after': {\n boxSizing: 'border-box'\n }\n }\n }\n };\n};\nexport const genFocusOutline = token => ({\n outline: `${token.lineWidthFocus}px solid ${token.colorPrimaryBorder}`,\n outlineOffset: 1,\n transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = token => ({\n '&:focus-visible': Object.assign({}, genFocusOutline(token))\n});","'use client';\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { createTheme } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { DesignTokenContext } from '../theme/internal';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport MotionWrapper from './MotionWrapper';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nimport { defaultTheme } from '../theme/context';\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme, we record the\n * theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigConsumer, ConfigContext, defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form', 'select', 'button'];\nexport const defaultPrefixCls = 'ant';\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nlet globalTheme;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nfunction isLegacyTheme(theme) {\n return Object.keys(theme).some(key => key.endsWith('Color'));\n}\nconst setGlobalConfig = _ref => {\n let {\n prefixCls,\n iconPrefixCls,\n theme\n } = _ref;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n if (isLegacyTheme(theme)) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', '`config` of css variable theme is not work in v5. Please use new `theme` config instead.') : void 0;\n registerTheme(getGlobalPrefixCls(), theme);\n } else {\n globalTheme = theme;\n }\n }\n};\nexport const globalConfig = () => ({\n getPrefixCls: (suffixCls, customizePrefixCls) => {\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: () => {\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n },\n getTheme: () => globalTheme\n});\nconst ProviderChildren = props => {\n const {\n children,\n csp: customCsp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n form,\n locale,\n componentSize,\n direction,\n space,\n virtual,\n dropdownMatchSelectWidth,\n popupMatchSelectWidth,\n popupOverflow,\n legacyLocale,\n parentContext,\n iconPrefixCls: customIconPrefixCls,\n theme,\n componentDisabled,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n input,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n wave\n } = props;\n // =================================== Warning ===================================\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(dropdownMatchSelectWidth === undefined, 'ConfigProvider', '`dropdownMatchSelectWidth` is deprecated. Please use `popupMatchSelectWidth` instead.') : void 0;\n }\n // =================================== Context ===================================\n const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n const {\n prefixCls\n } = props;\n if (customizePrefixCls) {\n return customizePrefixCls;\n }\n const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n const shouldWrapSSR = iconPrefixCls !== parentContext.iconPrefixCls;\n const csp = customCsp || parentContext.csp;\n const wrapSSR = useStyle(iconPrefixCls, csp);\n const mergedTheme = useTheme(theme, parentContext.theme);\n if (process.env.NODE_ENV !== 'production') {\n existThemeConfig = existThemeConfig || !!mergedTheme;\n }\n const baseConfig = {\n csp,\n autoInsertSpaceInButton,\n alert,\n anchor,\n locale: locale || legacyLocale,\n direction,\n space,\n virtual,\n popupMatchSelectWidth: popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth,\n popupOverflow,\n getPrefixCls,\n iconPrefixCls,\n theme: mergedTheme,\n segmented,\n statistic,\n spin,\n calendar,\n carousel,\n cascader,\n collapse,\n typography,\n checkbox,\n descriptions,\n divider,\n drawer,\n skeleton,\n steps,\n image,\n input,\n layout,\n list,\n mentions,\n modal,\n progress,\n result,\n slider,\n breadcrumb,\n menu,\n pagination,\n empty,\n badge,\n radio,\n rate,\n switch: SWITCH,\n transfer,\n avatar,\n message,\n tag,\n table,\n card,\n tabs,\n timeline,\n timePicker,\n upload,\n notification,\n tree,\n colorPicker,\n datePicker,\n wave\n };\n const config = Object.assign({}, parentContext);\n Object.keys(baseConfig).forEach(key => {\n if (baseConfig[key] !== undefined) {\n config[key] = baseConfig[key];\n }\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(propName => {\n const propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n const prevKeys = Object.keys(prevConfig);\n const currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n });\n const memoIconContextValue = React.useMemo(() => ({\n prefixCls: iconPrefixCls,\n csp\n }), [iconPrefixCls, csp]);\n let childNode = shouldWrapSSR ? wrapSSR(children) : children;\n const validateMessages = React.useMemo(() => {\n var _a, _b, _c, _d;\n return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n value: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n // =================================== Motion ===================================\n childNode = /*#__PURE__*/React.createElement(MotionWrapper, null, childNode);\n // ================================ Dynamic theme ================================\n const memoTheme = React.useMemo(() => {\n const _a = mergedTheme || {},\n {\n algorithm,\n token,\n components\n } = _a,\n rest = __rest(_a, [\"algorithm\", \"token\", \"components\"]);\n const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : defaultTheme;\n const parsedComponents = {};\n Object.entries(components || {}).forEach(_ref2 => {\n let [componentName, componentToken] = _ref2;\n const parsedToken = Object.assign({}, componentToken);\n if ('algorithm' in parsedToken) {\n if (parsedToken.algorithm === true) {\n parsedToken.theme = themeObj;\n } else if (Array.isArray(parsedToken.algorithm) || typeof parsedToken.algorithm === 'function') {\n parsedToken.theme = createTheme(parsedToken.algorithm);\n }\n delete parsedToken.algorithm;\n }\n parsedComponents[componentName] = parsedToken;\n });\n return Object.assign(Object.assign({}, rest), {\n theme: themeObj,\n token: Object.assign(Object.assign({}, defaultSeedToken), token),\n components: parsedComponents\n });\n }, [mergedTheme]);\n if (theme) {\n childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n value: memoTheme\n }, childNode);\n }\n // =================================== Render ===================================\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nconst ConfigProvider = props => {\n const context = React.useContext(ConfigContext);\n const antLocale = React.useContext(LocaleContext);\n return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n parentContext: context,\n legacyLocale: antLocale\n }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n get: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n return SizeContext;\n }\n});\nif (process.env.NODE_ENV !== 'production') {\n ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { useToken } from '../../theme/internal';\nconst useStyle = (iconPrefixCls, csp) => {\n const [theme, token] = useToken();\n // Generate style for icons\n return useStyleRegister({\n theme,\n token,\n hashId: '',\n path: ['ant-design-icons', iconPrefixCls],\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce\n }, () => [{\n [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n display: 'block'\n }\n })\n }]);\n};\nexport default useStyle;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { defaultConfig } from '../../theme/internal';\nexport default function useTheme(theme, parentTheme) {\n const themeConfig = theme || {};\n const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? defaultConfig : parentTheme;\n return useMemo(() => {\n if (!theme) {\n return parentTheme;\n }\n // Override\n const mergedComponents = Object.assign({}, parentThemeConfig.components);\n Object.keys(theme.components || {}).forEach(componentName => {\n mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n });\n // Base token\n return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n components: mergedComponents\n });\n }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n const nextTheme = next[index];\n return !isEqual(prevTheme, nextTheme, true);\n }));\n}","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","function getRoot(ele) {\n var _ele$getRootNode;\n return ele === null || ele === void 0 ? void 0 : (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport camelCase from 'lodash.camelcase';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n var _useContext = useContext(IconContext),\n csp = _useContext.csp,\n prefixCls = _useContext.prefixCls;\n var mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n useEffect(function () {\n var ele = eleRef.current;\n var shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var svgRef = React.useRef();\n var colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n if (!isIconDefinition(icon)) {\n return null;\n }\n var target = icon;\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps), {}, {\n ref: svgRef\n }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n rootClassName = _React$useContext.rootClassName;\n var classString = classNames(rootClassName, prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CheckCircleFilled.displayName = 'CheckCircleFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CloseCircleFilled.displayName = 'CloseCircleFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n ExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n InfoCircleFilled.displayName = 'InfoCircleFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n LoadingOutlined.displayName = 'LoadingOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n /**\n * MAC_ENTER\n */\n MAC_ENTER: 3,\n /**\n * BACKSPACE\n */\n BACKSPACE: 8,\n /**\n * TAB\n */\n TAB: 9,\n /**\n * NUMLOCK on FF/Safari Mac\n */\n NUM_CENTER: 12,\n // NUMLOCK on FF/Safari Mac\n /**\n * ENTER\n */\n ENTER: 13,\n /**\n * SHIFT\n */\n SHIFT: 16,\n /**\n * CTRL\n */\n CTRL: 17,\n /**\n * ALT\n */\n ALT: 18,\n /**\n * PAUSE\n */\n PAUSE: 19,\n /**\n * CAPS_LOCK\n */\n CAPS_LOCK: 20,\n /**\n * ESC\n */\n ESC: 27,\n /**\n * SPACE\n */\n SPACE: 32,\n /**\n * PAGE_UP\n */\n PAGE_UP: 33,\n // also NUM_NORTH_EAST\n /**\n * PAGE_DOWN\n */\n PAGE_DOWN: 34,\n // also NUM_SOUTH_EAST\n /**\n * END\n */\n END: 35,\n // also NUM_SOUTH_WEST\n /**\n * HOME\n */\n HOME: 36,\n // also NUM_NORTH_WEST\n /**\n * LEFT\n */\n LEFT: 37,\n // also NUM_WEST\n /**\n * UP\n */\n UP: 38,\n // also NUM_NORTH\n /**\n * RIGHT\n */\n RIGHT: 39,\n // also NUM_EAST\n /**\n * DOWN\n */\n DOWN: 40,\n // also NUM_SOUTH\n /**\n * PRINT_SCREEN\n */\n PRINT_SCREEN: 44,\n /**\n * INSERT\n */\n INSERT: 45,\n // also NUM_INSERT\n /**\n * DELETE\n */\n DELETE: 46,\n // also NUM_DELETE\n /**\n * ZERO\n */\n ZERO: 48,\n /**\n * ONE\n */\n ONE: 49,\n /**\n * TWO\n */\n TWO: 50,\n /**\n * THREE\n */\n THREE: 51,\n /**\n * FOUR\n */\n FOUR: 52,\n /**\n * FIVE\n */\n FIVE: 53,\n /**\n * SIX\n */\n SIX: 54,\n /**\n * SEVEN\n */\n SEVEN: 55,\n /**\n * EIGHT\n */\n EIGHT: 56,\n /**\n * NINE\n */\n NINE: 57,\n /**\n * QUESTION_MARK\n */\n QUESTION_MARK: 63,\n // needs localization\n /**\n * A\n */\n A: 65,\n /**\n * B\n */\n B: 66,\n /**\n * C\n */\n C: 67,\n /**\n * D\n */\n D: 68,\n /**\n * E\n */\n E: 69,\n /**\n * F\n */\n F: 70,\n /**\n * G\n */\n G: 71,\n /**\n * H\n */\n H: 72,\n /**\n * I\n */\n I: 73,\n /**\n * J\n */\n J: 74,\n /**\n * K\n */\n K: 75,\n /**\n * L\n */\n L: 76,\n /**\n * M\n */\n M: 77,\n /**\n * N\n */\n N: 78,\n /**\n * O\n */\n O: 79,\n /**\n * P\n */\n P: 80,\n /**\n * Q\n */\n Q: 81,\n /**\n * R\n */\n R: 82,\n /**\n * S\n */\n S: 83,\n /**\n * T\n */\n T: 84,\n /**\n * U\n */\n U: 85,\n /**\n * V\n */\n V: 86,\n /**\n * W\n */\n W: 87,\n /**\n * X\n */\n X: 88,\n /**\n * Y\n */\n Y: 89,\n /**\n * Z\n */\n Z: 90,\n /**\n * META\n */\n META: 91,\n // WIN_KEY_LEFT\n /**\n * WIN_KEY_RIGHT\n */\n WIN_KEY_RIGHT: 92,\n /**\n * CONTEXT_MENU\n */\n CONTEXT_MENU: 93,\n /**\n * NUM_ZERO\n */\n NUM_ZERO: 96,\n /**\n * NUM_ONE\n */\n NUM_ONE: 97,\n /**\n * NUM_TWO\n */\n NUM_TWO: 98,\n /**\n * NUM_THREE\n */\n NUM_THREE: 99,\n /**\n * NUM_FOUR\n */\n NUM_FOUR: 100,\n /**\n * NUM_FIVE\n */\n NUM_FIVE: 101,\n /**\n * NUM_SIX\n */\n NUM_SIX: 102,\n /**\n * NUM_SEVEN\n */\n NUM_SEVEN: 103,\n /**\n * NUM_EIGHT\n */\n NUM_EIGHT: 104,\n /**\n * NUM_NINE\n */\n NUM_NINE: 105,\n /**\n * NUM_MULTIPLY\n */\n NUM_MULTIPLY: 106,\n /**\n * NUM_PLUS\n */\n NUM_PLUS: 107,\n /**\n * NUM_MINUS\n */\n NUM_MINUS: 109,\n /**\n * NUM_PERIOD\n */\n NUM_PERIOD: 110,\n /**\n * NUM_DIVISION\n */\n NUM_DIVISION: 111,\n /**\n * F1\n */\n F1: 112,\n /**\n * F2\n */\n F2: 113,\n /**\n * F3\n */\n F3: 114,\n /**\n * F4\n */\n F4: 115,\n /**\n * F5\n */\n F5: 116,\n /**\n * F6\n */\n F6: 117,\n /**\n * F7\n */\n F7: 118,\n /**\n * F8\n */\n F8: 119,\n /**\n * F9\n */\n F9: 120,\n /**\n * F10\n */\n F10: 121,\n /**\n * F11\n */\n F11: 122,\n /**\n * F12\n */\n F12: 123,\n /**\n * NUMLOCK\n */\n NUMLOCK: 144,\n /**\n * SEMICOLON\n */\n SEMICOLON: 186,\n // needs localization\n /**\n * DASH\n */\n DASH: 189,\n // needs localization\n /**\n * EQUALS\n */\n EQUALS: 187,\n // needs localization\n /**\n * COMMA\n */\n COMMA: 188,\n // needs localization\n /**\n * PERIOD\n */\n PERIOD: 190,\n // needs localization\n /**\n * SLASH\n */\n SLASH: 191,\n // needs localization\n /**\n * APOSTROPHE\n */\n APOSTROPHE: 192,\n // needs localization\n /**\n * SINGLE_QUOTE\n */\n SINGLE_QUOTE: 222,\n // needs localization\n /**\n * OPEN_SQUARE_BRACKET\n */\n OPEN_SQUARE_BRACKET: 219,\n // needs localization\n /**\n * BACKSLASH\n */\n BACKSLASH: 220,\n // needs localization\n /**\n * CLOSE_SQUARE_BRACKET\n */\n CLOSE_SQUARE_BRACKET: 221,\n // needs localization\n /**\n * WIN_KEY\n */\n WIN_KEY: 224,\n /**\n * MAC_FF_META\n */\n MAC_FF_META: 224,\n // Firefox (Gecko) fires this for the meta key instead of 91\n /**\n * WIN_IME\n */\n WIN_IME: 229,\n // ======================== Function ========================\n /**\n * whether text and modified key is entered at the same time.\n */\n isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n var keyCode = e.keyCode;\n if (e.altKey && !e.ctrlKey || e.metaKey ||\n // Function keys don't generate text\n keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n return false;\n }\n\n // The following keys are quite harmless, even in combination with\n // CTRL, ALT or SHIFT.\n switch (keyCode) {\n case KeyCode.ALT:\n case KeyCode.CAPS_LOCK:\n case KeyCode.CONTEXT_MENU:\n case KeyCode.CTRL:\n case KeyCode.DOWN:\n case KeyCode.END:\n case KeyCode.ESC:\n case KeyCode.HOME:\n case KeyCode.INSERT:\n case KeyCode.LEFT:\n case KeyCode.MAC_FF_META:\n case KeyCode.META:\n case KeyCode.NUMLOCK:\n case KeyCode.NUM_CENTER:\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAUSE:\n case KeyCode.PRINT_SCREEN:\n case KeyCode.RIGHT:\n case KeyCode.SHIFT:\n case KeyCode.UP:\n case KeyCode.WIN_KEY:\n case KeyCode.WIN_KEY_RIGHT:\n return false;\n default:\n return true;\n }\n },\n /**\n * whether character is entered.\n */\n isCharacterKey: function isCharacterKey(keyCode) {\n if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n return true;\n }\n if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n return true;\n }\n if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n return true;\n }\n\n // Safari sends zero key code for non-latin characters.\n if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n return true;\n }\n switch (keyCode) {\n case KeyCode.SPACE:\n case KeyCode.QUESTION_MARK:\n case KeyCode.NUM_PLUS:\n case KeyCode.NUM_MINUS:\n case KeyCode.NUM_PERIOD:\n case KeyCode.NUM_DIVISION:\n case KeyCode.SEMICOLON:\n case KeyCode.DASH:\n case KeyCode.EQUALS:\n case KeyCode.COMMA:\n case KeyCode.PERIOD:\n case KeyCode.SLASH:\n case KeyCode.APOSTROPHE:\n case KeyCode.SINGLE_QUOTE:\n case KeyCode.OPEN_SQUARE_BRACKET:\n case KeyCode.BACKSLASH:\n case KeyCode.CLOSE_SQUARE_BRACKET:\n return true;\n default:\n return false;\n }\n }\n};\nexport default KeyCode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nvar Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n style = props.style,\n className = props.className,\n _props$duration = props.duration,\n duration = _props$duration === void 0 ? 4.5 : _props$duration,\n eventKey = props.eventKey,\n content = props.content,\n closable = props.closable,\n _props$closeIcon = props.closeIcon,\n closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,\n divProps = props.props,\n onClick = props.onClick,\n onNoticeClose = props.onNoticeClose,\n times = props.times;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hovering = _React$useState2[0],\n setHovering = _React$useState2[1];\n // ======================== Close =========================\n var onInternalClose = function onInternalClose() {\n onNoticeClose(eventKey);\n };\n var onCloseKeyDown = function onCloseKeyDown(e) {\n if (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === KeyCode.ENTER) {\n onInternalClose();\n }\n };\n // ======================== Effect ========================\n React.useEffect(function () {\n if (!hovering && duration > 0) {\n var timeout = setTimeout(function () {\n onInternalClose();\n }, duration * 1000);\n return function () {\n clearTimeout(timeout);\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration, hovering, times]);\n // ======================== Render ========================\n var noticePrefixCls = \"\".concat(prefixCls, \"-notice\");\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, divProps, {\n ref: ref,\n className: classNames(noticePrefixCls, className, _defineProperty({}, \"\".concat(noticePrefixCls, \"-closable\"), closable)),\n style: style,\n onMouseEnter: function onMouseEnter() {\n setHovering(true);\n },\n onMouseLeave: function onMouseLeave() {\n setHovering(false);\n },\n onClick: onClick\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(noticePrefixCls, \"-content\")\n }, content), closable && /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n className: \"\".concat(noticePrefixCls, \"-close\"),\n onKeyDown: onCloseKeyDown,\n onClick: function onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n onInternalClose();\n }\n }, closeIcon));\n});\nexport default Notify;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { CSSMotionList } from 'rc-motion';\nimport classNames from 'classnames';\nimport Notice from './Notice';\n// ant-notification ant-notification-topRight\nvar Notifications = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-notification' : _props$prefixCls,\n container = props.container,\n motion = props.motion,\n maxCount = props.maxCount,\n className = props.className,\n style = props.style,\n onAllRemoved = props.onAllRemoved;\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n configList = _React$useState2[0],\n setConfigList = _React$useState2[1];\n // ======================== Close =========================\n var onNoticeClose = function onNoticeClose(key) {\n var _config$onClose;\n // Trigger close event\n var config = configList.find(function (item) {\n return item.key === key;\n });\n config === null || config === void 0 ? void 0 : (_config$onClose = config.onClose) === null || _config$onClose === void 0 ? void 0 : _config$onClose.call(config);\n setConfigList(function (list) {\n return list.filter(function (item) {\n return item.key !== key;\n });\n });\n };\n // ========================= Refs =========================\n React.useImperativeHandle(ref, function () {\n return {\n open: function open(config) {\n setConfigList(function (list) {\n var clone = _toConsumableArray(list);\n // Replace if exist\n var index = clone.findIndex(function (item) {\n return item.key === config.key;\n });\n var innerConfig = _objectSpread({}, config);\n if (index >= 0) {\n var _list$index;\n innerConfig.times = (((_list$index = list[index]) === null || _list$index === void 0 ? void 0 : _list$index.times) || 0) + 1;\n clone[index] = innerConfig;\n } else {\n innerConfig.times = 0;\n clone.push(innerConfig);\n }\n if (maxCount > 0 && clone.length > maxCount) {\n clone = clone.slice(-maxCount);\n }\n return clone;\n });\n },\n close: function close(key) {\n onNoticeClose(key);\n },\n destroy: function destroy() {\n setConfigList([]);\n }\n };\n });\n // ====================== Placements ======================\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n placements = _React$useState4[0],\n setPlacements = _React$useState4[1];\n React.useEffect(function () {\n var nextPlacements = {};\n configList.forEach(function (config) {\n var _config$placement = config.placement,\n placement = _config$placement === void 0 ? 'topRight' : _config$placement;\n if (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n nextPlacements[placement].push(config);\n }\n });\n // Fill exist placements to avoid empty list causing remove without motion\n Object.keys(placements).forEach(function (placement) {\n nextPlacements[placement] = nextPlacements[placement] || [];\n });\n setPlacements(nextPlacements);\n }, [configList]);\n // Clean up container if all notices fade out\n var onAllNoticeRemoved = function onAllNoticeRemoved(placement) {\n setPlacements(function (originPlacements) {\n var clone = _objectSpread({}, originPlacements);\n var list = clone[placement] || [];\n if (!list.length) {\n delete clone[placement];\n }\n return clone;\n });\n };\n // Effect tell that placements is empty now\n var emptyRef = React.useRef(false);\n React.useEffect(function () {\n if (Object.keys(placements).length > 0) {\n emptyRef.current = true;\n } else if (emptyRef.current) {\n // Trigger only when from exist to empty\n onAllRemoved === null || onAllRemoved === void 0 ? void 0 : onAllRemoved();\n emptyRef.current = false;\n }\n }, [placements]);\n // ======================== Render ========================\n if (!container) {\n return null;\n }\n var placementList = Object.keys(placements);\n return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, placementList.map(function (placement) {\n var placementConfigList = placements[placement];\n var keys = placementConfigList.map(function (config) {\n return {\n config: config,\n key: config.key\n };\n });\n var placementMotion = typeof motion === 'function' ? motion(placement) : motion;\n return /*#__PURE__*/React.createElement(CSSMotionList, _extends({\n key: placement,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(placement), className === null || className === void 0 ? void 0 : className(placement)),\n style: style === null || style === void 0 ? void 0 : style(placement),\n keys: keys,\n motionAppear: true\n }, placementMotion, {\n onAllRemoved: function onAllRemoved() {\n onAllNoticeRemoved(placement);\n }\n }), function (_ref, nodeRef) {\n var config = _ref.config,\n motionClassName = _ref.className,\n motionStyle = _ref.style;\n var key = config.key,\n times = config.times;\n var configClassName = config.className,\n configStyle = config.style;\n return /*#__PURE__*/React.createElement(Notice, _extends({}, config, {\n ref: nodeRef,\n prefixCls: prefixCls,\n className: classNames(motionClassName, configClassName),\n style: _objectSpread(_objectSpread({}, motionStyle), configStyle),\n times: times,\n key: key,\n eventKey: key,\n onNoticeClose: onNoticeClose\n }));\n });\n })), container);\n});\nif (process.env.NODE_ENV !== 'production') {\n Notifications.displayName = 'Notifications';\n}\nexport default Notifications;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"getContainer\", \"motion\", \"prefixCls\", \"maxCount\", \"className\", \"style\", \"onAllRemoved\"];\nimport * as React from 'react';\nimport Notifications from './Notifications';\nvar defaultGetContainer = function defaultGetContainer() {\n return document.body;\n};\nvar uniqueKey = 0;\nfunction mergeConfig() {\n var clone = {};\n for (var _len = arguments.length, objList = new Array(_len), _key = 0; _key < _len; _key++) {\n objList[_key] = arguments[_key];\n }\n objList.forEach(function (obj) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (val !== undefined) {\n clone[key] = val;\n }\n });\n }\n });\n return clone;\n}\nexport default function useNotification() {\n var rootConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _rootConfig$getContai = rootConfig.getContainer,\n getContainer = _rootConfig$getContai === void 0 ? defaultGetContainer : _rootConfig$getContai,\n motion = rootConfig.motion,\n prefixCls = rootConfig.prefixCls,\n maxCount = rootConfig.maxCount,\n className = rootConfig.className,\n style = rootConfig.style,\n onAllRemoved = rootConfig.onAllRemoved,\n shareConfig = _objectWithoutProperties(rootConfig, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n container = _React$useState2[0],\n setContainer = _React$useState2[1];\n var notificationsRef = React.useRef();\n var contextHolder = /*#__PURE__*/React.createElement(Notifications, {\n container: container,\n ref: notificationsRef,\n prefixCls: prefixCls,\n motion: motion,\n maxCount: maxCount,\n className: className,\n style: style,\n onAllRemoved: onAllRemoved\n });\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n taskQueue = _React$useState4[0],\n setTaskQueue = _React$useState4[1];\n // ========================= Refs =========================\n var api = React.useMemo(function () {\n return {\n open: function open(config) {\n var mergedConfig = mergeConfig(shareConfig, config);\n if (mergedConfig.key === null || mergedConfig.key === undefined) {\n mergedConfig.key = \"rc-notification-\".concat(uniqueKey);\n uniqueKey += 1;\n }\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'open',\n config: mergedConfig\n }]);\n });\n },\n close: function close(key) {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'close',\n key: key\n }]);\n });\n },\n destroy: function destroy() {\n setTaskQueue(function (queue) {\n return [].concat(_toConsumableArray(queue), [{\n type: 'destroy'\n }]);\n });\n }\n };\n }, []);\n // ======================= Container ======================\n // React 18 should all in effect that we will check container in each render\n // Which means getContainer should be stable.\n React.useEffect(function () {\n setContainer(getContainer());\n });\n // ======================== Effect ========================\n React.useEffect(function () {\n // Flush task when node ready\n if (notificationsRef.current && taskQueue.length) {\n taskQueue.forEach(function (task) {\n switch (task.type) {\n case 'open':\n notificationsRef.current.open(task.config);\n break;\n case 'close':\n notificationsRef.current.close(task.key);\n break;\n case 'destroy':\n notificationsRef.current.destroy();\n break;\n }\n });\n // React 17 will mix order of effect & setState in async\n // - open: setState[0]\n // - effect[0]\n // - open: setState[1]\n // - effect setState([]) * here will clean up [0, 1] in React 17\n setTaskQueue(function (oriQueue) {\n return oriQueue.filter(function (task) {\n return !taskQueue.includes(task);\n });\n });\n }\n }, [taskQueue]);\n // ======================== Return ========================\n return [api, contextHolder];\n}","import * as React from 'react';\nexport default function useEvent(callback) {\n var fnRef = React.useRef();\n fnRef.current = callback;\n var memoFn = React.useCallback(function () {\n var _fnRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n }, []);\n return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n var _ref = option || {},\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n onChange = _ref.onChange,\n postState = _ref.postState;\n\n // ======================= Init =======================\n var _useState = useState(function () {\n if (hasValue(value)) {\n return value;\n } else if (hasValue(defaultValue)) {\n return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n } else {\n return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n }\n }),\n _useState2 = _slicedToArray(_useState, 2),\n innerValue = _useState2[0],\n setInnerValue = _useState2[1];\n var mergedValue = value !== undefined ? value : innerValue;\n var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n // ====================== Change ======================\n var onChangeFn = useEvent(onChange);\n var _useState3 = useState([mergedValue]),\n _useState4 = _slicedToArray(_useState3, 2),\n prevValue = _useState4[0],\n setPrevValue = _useState4[1];\n useLayoutUpdateEffect(function () {\n var prev = prevValue[0];\n if (innerValue !== prev) {\n onChangeFn(innerValue, prev);\n }\n }, [prevValue]);\n\n // Sync value back to `undefined` when it from control to un-control\n useLayoutUpdateEffect(function () {\n if (!hasValue(value)) {\n setInnerValue(value);\n }\n }, [value]);\n\n // ====================== Update ======================\n var triggerChange = useEvent(function (updater, ignoreDestroy) {\n setInnerValue(updater, ignoreDestroy);\n setPrevValue([mergedValue], ignoreDestroy);\n });\n return [postMergedValue, triggerChange];\n}","const enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nlet recording = true;\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n objs[_key] = arguments[_key];\n }\n /* istanbul ignore next */\n if (!enableStatistic) {\n return Object.assign.apply(Object, [{}].concat(objs));\n }\n recording = false;\n const ret = {};\n objs.forEach(obj => {\n const keys = Object.keys(obj);\n keys.forEach(key => {\n Object.defineProperty(ret, key, {\n configurable: true,\n enumerable: true,\n get: () => obj[key]\n });\n });\n });\n recording = true;\n return ret;\n}\n/** @internal Internal Usage. Not use in your production. */\nexport const statistic = {};\n/** @internal Internal Usage. Not use in your production. */\n// eslint-disable-next-line camelcase\nexport const _statistic_build_ = {};\n/* istanbul ignore next */\nfunction noop() {}\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nexport default function statisticToken(token) {\n let tokenKeys;\n let proxy = token;\n let flush = noop;\n if (enableStatistic) {\n tokenKeys = new Set();\n proxy = new Proxy(token, {\n get(obj, prop) {\n if (recording) {\n tokenKeys.add(prop);\n }\n return obj[prop];\n }\n });\n flush = (componentName, componentToken) => {\n statistic[componentName] = {\n global: Array.from(tokenKeys),\n component: componentToken\n };\n };\n }\n return {\n token: proxy,\n keys: tokenKeys,\n flush\n };\n}","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { warning } from 'rc-util';\nimport { useContext } from 'react';\nimport { ConfigContext } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle } from '../../style';\nimport useToken from '../useToken';\nimport statisticToken, { merge as mergeToken } from './statistic';\nexport default function genComponentStyleHook(component, styleFn, getDefaultToken, options) {\n return prefixCls => {\n const [theme, token, hashId] = useToken();\n const {\n getPrefixCls,\n iconPrefixCls,\n csp\n } = useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n // Shared config\n const sharedConfig = {\n theme,\n token,\n hashId,\n nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce,\n clientOnly: options === null || options === void 0 ? void 0 : options.clientOnly,\n // antd is always at top of styles\n order: -999\n };\n // Generate style for all a tags in antd component.\n useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n clientOnly: false,\n path: ['Shared', rootPrefixCls]\n }), () => [{\n // Link\n '&': genLinkStyle(token)\n }]);\n return [useStyleRegister(Object.assign(Object.assign({}, sharedConfig), {\n path: [component, prefixCls, iconPrefixCls]\n }), () => {\n const {\n token: proxyToken,\n flush\n } = statisticToken(token);\n const customComponentToken = Object.assign({}, token[component]);\n if (options === null || options === void 0 ? void 0 : options.deprecatedTokens) {\n const {\n deprecatedTokens\n } = options;\n deprecatedTokens.forEach(_ref => {\n let [oldTokenKey, newTokenKey] = _ref;\n var _a;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey]), `The token '${String(oldTokenKey)}' of ${component} had deprecated, use '${String(newTokenKey)}' instead.`) : void 0;\n }\n // Should wrap with `if` clause, or there will be `undefined` in object.\n if ((customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey]) || (customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[newTokenKey])) {\n (_a = customComponentToken[newTokenKey]) !== null && _a !== void 0 ? _a : customComponentToken[newTokenKey] = customComponentToken === null || customComponentToken === void 0 ? void 0 : customComponentToken[oldTokenKey];\n }\n });\n }\n const defaultComponentToken = typeof getDefaultToken === 'function' ? getDefaultToken(mergeToken(proxyToken, customComponentToken !== null && customComponentToken !== void 0 ? customComponentToken : {})) : getDefaultToken;\n const mergedComponentToken = Object.assign(Object.assign({}, defaultComponentToken), customComponentToken);\n const componentCls = `.${prefixCls}`;\n const mergedToken = mergeToken(proxyToken, {\n componentCls,\n prefixCls,\n iconCls: `.${iconPrefixCls}`,\n antCls: `.${rootPrefixCls}`\n }, mergedComponentToken);\n const styleInterpolation = styleFn(mergedToken, {\n hashId,\n prefixCls,\n rootPrefixCls,\n iconPrefixCls,\n overrideComponentToken: customComponentToken\n });\n flush(component, mergedComponentToken);\n return [(options === null || options === void 0 ? void 0 : options.resetStyle) === false ? null : genCommonStyle(token, prefixCls), styleInterpolation];\n }), hashId];\n };\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nconst genMessageStyle = token => {\n const {\n componentCls,\n iconCls,\n boxShadow,\n colorText,\n colorSuccess,\n colorError,\n colorWarning,\n colorInfo,\n fontSizeLG,\n motionEaseInOutCirc,\n motionDurationSlow,\n marginXS,\n paddingXS,\n borderRadiusLG,\n zIndexPopup,\n // Custom token\n contentPadding,\n contentBg\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const messageMoveIn = new Keyframes('MessageMoveIn', {\n '0%': {\n padding: 0,\n transform: 'translateY(-100%)',\n opacity: 0\n },\n '100%': {\n padding: paddingXS,\n transform: 'translateY(0)',\n opacity: 1\n }\n });\n const messageMoveOut = new Keyframes('MessageMoveOut', {\n '0%': {\n maxHeight: token.height,\n padding: paddingXS,\n opacity: 1\n },\n '100%': {\n maxHeight: 0,\n padding: 0,\n opacity: 0\n }\n });\n const noticeStyle = {\n padding: paddingXS,\n textAlign: 'center',\n [`${componentCls}-custom-content > ${iconCls}`]: {\n verticalAlign: 'text-bottom',\n marginInlineEnd: marginXS,\n fontSize: fontSizeLG\n },\n [`${noticeCls}-content`]: {\n display: 'inline-block',\n padding: contentPadding,\n background: contentBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n pointerEvents: 'all'\n },\n [`${componentCls}-success > ${iconCls}`]: {\n color: colorSuccess\n },\n [`${componentCls}-error > ${iconCls}`]: {\n color: colorError\n },\n [`${componentCls}-warning > ${iconCls}`]: {\n color: colorWarning\n },\n [`${componentCls}-info > ${iconCls},\n ${componentCls}-loading > ${iconCls}`]: {\n color: colorInfo\n }\n };\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: colorText,\n position: 'fixed',\n top: marginXS,\n width: '100%',\n pointerEvents: 'none',\n zIndex: zIndexPopup,\n [`${componentCls}-move-up`]: {\n animationFillMode: 'forwards'\n },\n [`\n ${componentCls}-move-up-appear,\n ${componentCls}-move-up-enter\n `]: {\n animationName: messageMoveIn,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`\n ${componentCls}-move-up-appear${componentCls}-move-up-appear-active,\n ${componentCls}-move-up-enter${componentCls}-move-up-enter-active\n `]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-move-up-leave`]: {\n animationName: messageMoveOut,\n animationDuration: motionDurationSlow,\n animationPlayState: 'paused',\n animationTimingFunction: motionEaseInOutCirc\n },\n [`${componentCls}-move-up-leave${componentCls}-move-up-leave-active`]: {\n animationPlayState: 'running'\n },\n '&-rtl': {\n direction: 'rtl',\n span: {\n direction: 'rtl'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [noticeCls]: Object.assign({}, noticeStyle)\n }\n },\n // ============================= Pure =============================\n {\n [`${componentCls}-notice-pure-panel`]: Object.assign(Object.assign({}, noticeStyle), {\n padding: 0,\n textAlign: 'start'\n })\n }];\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Message', token => {\n // Gen-style functions here\n const combinedToken = mergeToken(token, {\n height: 150\n });\n return [genMessageStyle(combinedToken)];\n}, token => ({\n zIndexPopup: token.zIndexPopupBase + 10,\n contentBg: token.colorBgElevated,\n contentPadding: `${(token.controlHeightLG - token.fontSize * token.lineHeight) / 2}px ${token.paddingSM}px`\n}), {\n clientOnly: true\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport const PureContent = _ref => {\n let {\n prefixCls,\n type,\n icon,\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-custom-content`, `${prefixCls}-${type}`)\n }, icon || TypeIcon[type], /*#__PURE__*/React.createElement(\"span\", null, children));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n type,\n icon,\n content\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"type\", \"icon\", \"content\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n return /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n className: classNames(className, hashId, `${prefixCls}-notice-pure-panel`),\n eventKey: \"pure\",\n duration: null,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content)\n }));\n};\nexport default PurePanel;","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CloseOutlined.displayName = 'CloseOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","export function getMotion(prefixCls, transitionName) {\n return {\n motionName: transitionName !== null && transitionName !== void 0 ? transitionName : `${prefixCls}-move-up`\n };\n}\n/** Wrap message open with promise like function */\nexport function wrapPromiseFn(openFn) {\n let closeFn;\n const closePromise = new Promise(resolve => {\n closeFn = openFn(() => {\n resolve(true);\n });\n });\n const result = () => {\n closeFn === null || closeFn === void 0 ? void 0 : closeFn();\n };\n result.then = (filled, rejected) => closePromise.then(filled, rejected);\n result.promise = closePromise;\n return result;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { useNotification as useRcNotification } from 'rc-notification';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, wrapPromiseFn } from './util';\nconst DEFAULT_OFFSET = 8;\nconst DEFAULT_DURATION = 3;\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n duration = DEFAULT_DURATION,\n rtl,\n transitionName,\n onAllRemoved\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n message\n } = React.useContext(ConfigContext);\n const prefixCls = staticPrefixCls || getPrefixCls('message');\n const [, hashId] = useStyle(prefixCls);\n // =============================== Style ===============================\n const getStyle = () => ({\n left: '50%',\n transform: 'translateX(-50%)',\n top: top !== null && top !== void 0 ? top : DEFAULT_OFFSET\n });\n const getClassName = () => classNames(hashId, {\n [`${prefixCls}-rtl`]: rtl\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls, transitionName);\n // ============================ Close Icon =============================\n const mergedCloseIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-x`\n }, /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n }));\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: false,\n closeIcon: mergedCloseIcon,\n duration,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n onAllRemoved\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n hashId,\n message\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nlet keyIndex = 0;\nexport function useInternalMessage(messageConfig) {\n const holderRef = React.useRef(null);\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> close\n const close = key => {\n var _a;\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n };\n // >>> Open\n const open = config => {\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Message', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n const fakeResult = () => {};\n fakeResult.then = () => {};\n return fakeResult;\n }\n const {\n open: originOpen,\n prefixCls,\n hashId,\n message\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n content,\n icon,\n type,\n key,\n className,\n style,\n onClose\n } = config,\n restConfig = __rest(config, [\"content\", \"icon\", \"type\", \"key\", \"className\", \"style\", \"onClose\"]);\n let mergedKey = key;\n if (mergedKey === undefined || mergedKey === null) {\n keyIndex += 1;\n mergedKey = `antd-message-${keyIndex}`;\n }\n return wrapPromiseFn(resolve => {\n originOpen(Object.assign(Object.assign({}, restConfig), {\n key: mergedKey,\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: prefixCls,\n type: type,\n icon: icon\n }, content),\n placement: 'top',\n className: classNames(type && `${noticePrefixCls}-${type}`, hashId, className, message === null || message === void 0 ? void 0 : message.className),\n style: Object.assign(Object.assign({}, message === null || message === void 0 ? void 0 : message.style), style),\n onClose: () => {\n onClose === null || onClose === void 0 ? void 0 : onClose();\n resolve();\n }\n }));\n // Return close function\n return () => {\n close(mergedKey);\n };\n });\n };\n // >>> destroy\n const destroy = key => {\n var _a;\n if (key !== undefined) {\n close(key);\n } else {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['info', 'success', 'warning', 'error', 'loading'];\n keys.forEach(type => {\n const typeOpen = (jointContent, duration, onClose) => {\n let config;\n if (jointContent && typeof jointContent === 'object' && 'content' in jointContent) {\n config = jointContent;\n } else {\n config = {\n content: jointContent\n };\n }\n // Params\n let mergedDuration;\n let mergedOnClose;\n if (typeof duration === 'function') {\n mergedOnClose = duration;\n } else {\n mergedDuration = duration;\n mergedOnClose = onClose;\n }\n const mergedConfig = Object.assign(Object.assign({\n onClose: mergedOnClose,\n duration: mergedDuration\n }, config), {\n type\n });\n return open(mergedConfig);\n };\n clone[type] = typeOpen;\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"message-holder\"\n }, messageConfig, {\n ref: holderRef\n }))];\n}\nexport default function useMessage(messageConfig) {\n return useInternalMessage(messageConfig);\n}","'use client';\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { render } from \"rc-util/es/React/render\";\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig, warnContext } from '../config-provider';\nimport PurePanel from './PurePanel';\nimport useMessage, { useInternalMessage } from './useMessage';\nimport { wrapPromiseFn } from './util';\nlet message = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n prefixCls: globalPrefixCls,\n getContainer: globalGetContainer,\n duration,\n rtl,\n maxCount,\n top\n } = defaultGlobalConfig;\n const mergedPrefixCls = globalPrefixCls !== null && globalPrefixCls !== void 0 ? globalPrefixCls : globalConfig().getPrefixCls('message');\n const mergedContainer = (globalGetContainer === null || globalGetContainer === void 0 ? void 0 : globalGetContainer()) || document.body;\n return {\n prefixCls: mergedPrefixCls,\n container: mergedContainer,\n duration,\n rtl,\n maxCount,\n top\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((_, ref) => {\n const initializeMessageConfig = () => {\n const {\n prefixCls,\n container,\n maxCount,\n duration,\n rtl,\n top\n } = getGlobalContext();\n return {\n prefixCls,\n getContainer: () => container,\n maxCount,\n duration,\n rtl,\n top\n };\n };\n const [messageConfig, setMessageConfig] = React.useState(initializeMessageConfig);\n const [api, holder] = useInternalMessage(messageConfig);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const sync = () => {\n setMessageConfig(initializeMessageConfig);\n };\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, holder);\n});\nfunction flushNotice() {\n if (!message) {\n const holderFragment = document.createDocumentFragment();\n const newMessage = {\n fragment: holderFragment\n };\n message = newMessage;\n // Delay render to avoid sync issue\n act(() => {\n render( /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n // React 18 test env will throw if call immediately in ref\n Promise.resolve().then(() => {\n if (!newMessage.instance && instance) {\n newMessage.instance = instance;\n newMessage.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!message.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n const {\n type,\n skipped\n } = task;\n // Only `skipped` when user call notice but cancel it immediately\n // and instance not ready\n if (!skipped) {\n switch (type) {\n case 'open':\n {\n act(() => {\n const closeFn = message.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n break;\n }\n case 'destroy':\n act(() => {\n message === null || message === void 0 ? void 0 : message.instance.destroy(task.key);\n });\n break;\n // Other type open\n default:\n {\n act(() => {\n var _message$instance;\n const closeFn = (_message$instance = message.instance)[type].apply(_message$instance, _toConsumableArray(task.args));\n closeFn === null || closeFn === void 0 ? void 0 : closeFn.then(task.resolve);\n task.setCloseFn(closeFn);\n });\n }\n }\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setMessageGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = message === null || message === void 0 ? void 0 : message.sync) === null || _a === void 0 ? void 0 : _a.call(message);\n });\n}\nfunction open(config) {\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type: 'open',\n config,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction typeOpen(type, args) {\n // Warning if exist theme\n if (process.env.NODE_ENV !== 'production') {\n warnContext('message');\n }\n const result = wrapPromiseFn(resolve => {\n let closeFn;\n const task = {\n type,\n args,\n resolve,\n setCloseFn: fn => {\n closeFn = fn;\n }\n };\n taskQueue.push(task);\n return () => {\n if (closeFn) {\n act(() => {\n closeFn();\n });\n } else {\n task.skipped = true;\n }\n };\n });\n flushNotice();\n return result;\n}\nfunction destroy(key) {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n}\nconst methods = ['success', 'info', 'warning', 'error', 'loading'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setMessageGlobalConfig,\n useMessage,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return typeOpen(type, args);\n };\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n message = null;\n };\n}\nexport default staticMethods;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nimport {message} from 'antd'\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n)\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href)\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config)\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n )\n })\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config)\n }\n })\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing\n if (installingWorker == null) {\n return\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n )\n message.success(\n 'New content is available and will be used when all tabs for this page are closed'\n )\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration)\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.')\n message.success('Content is cached for offline use.')\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration)\n }\n }\n }\n }\n }\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error)\n message.error('Error during service worker registration')\n })\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: {'Service-Worker': 'script'},\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type')\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload()\n })\n })\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config)\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.')\n message.error('No internet connection found. App is running in offline mode.')\n })\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister()\n })\n .catch((error) => {\n console.error(error.message)\n message.error(error.message)\n })\n }\n}\n","import * as React from \"react\";\nimport type { History, Location } from \"history\";\nimport { Action as NavigationType } from \"history\";\n\nimport type { RouteMatch } from \"./router\";\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level <Router> API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport type Navigator = Pick<History, \"go\" | \"push\" | \"replace\" | \"createHref\">;\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\ninterface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n","import type { Location, Path, To } from \"history\";\nimport { parsePath } from \"history\";\n\nexport function invariant(cond: any, message: string): asserts cond {\n if (!cond) throw new Error(message);\n}\n\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\nexport function warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n\ntype ParamParseFailed = { failed: true };\n\ntype ParamParseSegment<Segment extends string> =\n // Check here if there exists a forward slash in the string.\n Segment extends `${infer LeftSegment}/${infer RightSegment}`\n ? // If there is a forward slash, then attempt to parse each side of the\n // forward slash.\n ParamParseSegment<LeftSegment> extends infer LeftResult\n ? ParamParseSegment<RightSegment> extends infer RightResult\n ? LeftResult extends string\n ? // If the left side is successfully parsed as a param, then check if\n // the right side can be successfully parsed as well. If both sides\n // can be parsed, then the result is a union of the two sides\n // (read: \"foo\" | \"bar\").\n RightResult extends string\n ? LeftResult | RightResult\n : LeftResult\n : // If the left side is not successfully parsed as a param, then check\n // if only the right side can be successfully parse as a param. If it\n // can, then the result is just right, else it's a failure.\n RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If the left side didn't parse into a param, then just check the right\n // side.\n ParamParseSegment<RightSegment> extends infer RightResult\n ? RightResult extends string\n ? RightResult\n : ParamParseFailed\n : ParamParseFailed\n : // If there's no forward slash, then check if this segment starts with a\n // colon. If it does, then this is a dynamic segment, so the result is\n // just the remainder of the string. Otherwise, it's a failure.\n Segment extends `:${infer Remaining}`\n ? Remaining\n : ParamParseFailed;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n ParamParseSegment<Segment> extends string\n ? ParamParseSegment<Segment>\n : string;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport interface RouteObject {\n caseSensitive?: boolean;\n children?: RouteObject[];\n element?: React.ReactNode;\n index?: boolean;\n path?: string;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nexport function generatePath(path: string, params: Params = {}): string {\n return path\n .replace(/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, `Missing \":${key}\" param`);\n return params[key]!;\n })\n .replace(/\\/*\\*$/, (_) =>\n params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\")\n );\n}\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface RouteMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObject;\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nexport function matchRoutes(\n routes: RouteObject[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): RouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\ninterface RouteMeta {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObject;\n}\n\ninterface RouteBranch {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes(\n routes: RouteObject[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n routes.forEach((route, index) => {\n let meta: RouteMeta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({ path, score: computeScore(path, route.index), routesMeta });\n });\n\n return branches;\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<ParamKey extends string = string>(\n branch: RouteBranch,\n pathname: string\n): RouteMatch<ParamKey>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: RouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce<Mutable<Params>>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end\n ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string\n): Path {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname;\n\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n let from: string;\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how <a href> works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original to value had one.\n if (\n toPathname &&\n toPathname !== \"/\" &&\n toPathname.endsWith(\"/\") &&\n !path.pathname.endsWith(\"/\")\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\n\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\nconst normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n","import * as React from \"react\";\nimport type { Location, Path, To } from \"history\";\nimport { Action as NavigationType, parsePath } from \"history\";\n\nimport { LocationContext, NavigationContext, RouteContext } from \"./context\";\nimport type {\n ParamParseKey,\n Params,\n PathMatch,\n PathPattern,\n RouteMatch,\n RouteObject,\n} from \"./router\";\nimport {\n getToPathname,\n invariant,\n joinPaths,\n matchPath,\n matchRoutes,\n resolveTo,\n warning,\n warningOnce,\n} from \"./router\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\nexport function useHref(to: To): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to);\n\n let joinedPathname = pathname;\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname =\n pathname === \"/\"\n ? basename + (endsWithSlash ? \"/\" : \"\")\n : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a <Router>.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * <NavLink>.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Returns an imperative method for changing the location. Used by <Link>s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nexport function useNavigate(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(\n activeRef.current,\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`\n );\n\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname\n );\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state\n );\n },\n [basename, navigator, routePathnamesJson, locationPathname]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by <Outlet> to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\nexport function useResolvedPath(to: To): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n matches.map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname),\n [to, routePathnamesJson, locationPathname]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an <Outlet> to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element. ` +\n `This means it will render an <Outlet /> with a null value by default resulting in an \"empty\" page.`\n );\n }\n\n return _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([parentPathnameBase, match.pathnameBase]),\n })\n ),\n parentMatches\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = []\n): React.ReactElement | null {\n if (matches == null) return null;\n\n return matches.reduceRight((outlet, match, index) => {\n return (\n <RouteContext.Provider\n children={\n match.route.element !== undefined ? match.route.element : outlet\n }\n value={{\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1)),\n }}\n />\n );\n }, null as React.ReactElement | null);\n}\n","import * as React from \"react\";\nimport type { InitialEntry, Location, MemoryHistory, To } from \"history\";\nimport {\n Action as NavigationType,\n createMemoryHistory,\n parsePath,\n} from \"history\";\n\nimport { LocationContext, NavigationContext, Navigator } from \"./context\";\nimport {\n useInRouterContext,\n useNavigate,\n useOutlet,\n useRoutes,\n _renderMatches,\n} from \"./hooks\";\nimport type { RouteMatch, RouteObject } from \"./router\";\nimport { invariant, normalizePathname, stripBasename, warning } from \"./router\";\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n}\n\n/**\n * A <Router> that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({ initialEntries, initialIndex });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nexport function Navigate({ to, replace, state }: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n warning(\n !React.useContext(NavigationContext).static,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let navigate = useNavigate();\n React.useEffect(() => {\n navigate(to, { replace, state });\n });\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface RouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: boolean;\n path?: string;\n}\n\nexport interface PathRouteProps {\n caseSensitive?: boolean;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n index?: false;\n path: string;\n}\n\nexport interface LayoutRouteProps {\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n}\n\nexport interface IndexRouteProps {\n element?: React.ReactNode | null;\n index: true;\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nexport function Route(\n _props: PathRouteProps | LayoutRouteProps | IndexRouteProps\n): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a <Router> directly. Instead, you'll render a\n * router that is more specific to your environment such as a <BrowserRouter>\n * in web browsers or a <StaticRouter> for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n let basename = normalizePathname(basenameProp);\n let navigationContext = React.useMemo(\n () => ({ basename, navigator, static: staticProp }),\n [basename, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let location = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n };\n }, [basename, pathname, search, hash, state, key]);\n\n warning(\n location != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (location == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider\n children={children}\n value={{ location, navigationType }}\n />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of <Route> elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n let route: RouteObject = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport type { BrowserHistory, HashHistory, History } from \"history\";\nimport { createBrowserHistory, createHashHistory } from \"history\";\nimport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n resolvePath,\n renderMatches,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n} from \"react-router\";\nimport type { To } from \"react-router\";\n\nfunction warning(cond: boolean, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// RE-EXPORTS\n////////////////////////////////////////////////////////////////////////////////\n\n// Note: Keep in sync with react-router exports!\nexport {\n MemoryRouter,\n Navigate,\n Outlet,\n Route,\n Router,\n Routes,\n createRoutesFromChildren,\n generatePath,\n matchRoutes,\n matchPath,\n createPath,\n parsePath,\n renderMatches,\n resolvePath,\n useHref,\n useInRouterContext,\n useLocation,\n useMatch,\n useNavigate,\n useNavigationType,\n useOutlet,\n useParams,\n useResolvedPath,\n useRoutes,\n useOutletContext,\n};\n\nexport { NavigationType } from \"react-router\";\nexport type {\n Hash,\n Location,\n Path,\n To,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigator,\n OutletProps,\n Params,\n PathMatch,\n RouteMatch,\n RouteObject,\n RouteProps,\n PathRouteProps,\n LayoutRouteProps,\n IndexRouteProps,\n RouterProps,\n Pathname,\n Search,\n RoutesProps,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n} from \"react-router\";\n\n////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({ basename, children, window }: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window });\n }\n\n let history = historyRef.current;\n let [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({ basename, children, history }: HistoryRouterProps) {\n const [state, setState] = React.useState({\n action: history.action,\n location: history.location,\n });\n\n React.useLayoutEffect(() => history.listen(setState), [history]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nfunction isModifiedEvent(event: React.MouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n to: To;\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n { onClick, reloadDocument, replace = false, state, target, to, ...rest },\n ref\n ) {\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, { replace, state, target });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={href}\n onClick={handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?:\n | React.ReactNode\n | ((props: { isActive: boolean }) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: { isActive: boolean }) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: { isActive: boolean }) => React.CSSProperties);\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children,\n ...rest\n },\n ref\n ) {\n let location = useLocation();\n let path = useResolvedPath(to);\n\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(toPathname.length) === \"/\");\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp({ isActive });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp({ isActive }) : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n >\n {typeof children === \"function\" ? children({ isActive }) : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here.\n let replace =\n !!replaceProp || createPath(location) === createPath(path);\n\n navigate(to, { replace, state });\n }\n },\n [location, navigate, path, replaceProp, state, target, to]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(defaultInit?: URLSearchParamsInit) {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params\\n\\n` +\n `If you're unsure how to load polyfills, we recommend you check out ` +\n `https://polyfill.io/v3/ which provides some recommendations about how ` +\n `to load polyfills only for users that need them, instead of for every ` +\n `user.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n\n let location = useLocation();\n let searchParams = React.useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback(\n (\n nextInit: URLSearchParamsInit,\n navigateOptions?: { replace?: boolean; state?: any }\n ) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n },\n [navigate]\n );\n\n return [searchParams, setSearchParams] as const;\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n","// This icon file is generated automatically.\nvar WarningFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"warning\", \"theme\": \"filled\" };\nexport default WarningFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport WarningFilledSvg from \"@ant-design/icons-svg/es/asn/WarningFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar WarningFilled = function WarningFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: WarningFilledSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n WarningFilled.displayName = 'WarningFilled';\n}\nexport default /*#__PURE__*/React.forwardRef(WarningFilled);","import * as React from 'react';\nconst NoFound = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"252\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .387h251.772v251.772H0z\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .012)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 127.32v-2.095C0 56.279 55.892.387 124.838.387h2.096c68.946 0 124.838 55.892 124.838 124.838v2.096c0 68.946-55.892 124.838-124.838 124.838h-2.096C55.892 252.16 0 196.267 0 127.321\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.755 130.84a8.276 8.276 0 1 1-16.468-1.66 8.276 8.276 0 0 1 16.468 1.66\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.975 134.297l10.482 5.943M48.373 146.508l-12.648 10.788\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.875 159.352a5.667 5.667 0 1 1-11.277-1.136 5.667 5.667 0 0 1 11.277 1.136M57.588 143.247a5.708 5.708 0 1 1-11.358-1.145 5.708 5.708 0 0 1 11.358 1.145M99.018 26.875l29.82-.014a4.587 4.587 0 1 0-.003-9.175l-29.82.013a4.587 4.587 0 1 0 .003 9.176M110.424 45.211l29.82-.013a4.588 4.588 0 0 0-.004-9.175l-29.82.013a4.587 4.587 0 1 0 .004 9.175\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.798 26.861v-.002l15.784-.006a4.588 4.588 0 1 0 .003 9.175l-15.783.007v-.002a4.586 4.586 0 0 0-.004-9.172M184.523 135.668c-.553 5.485-5.447 9.483-10.931 8.93-5.485-.553-9.483-5.448-8.93-10.932.552-5.485 5.447-9.483 10.932-8.93 5.485.553 9.483 5.447 8.93 10.932\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M179.26 141.75l12.64 7.167M193.006 156.477l-15.255 13.011\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M184.668 170.057a6.835 6.835 0 1 1-13.6-1.372 6.835 6.835 0 0 1 13.6 1.372M203.34 153.325a6.885 6.885 0 1 1-13.7-1.382 6.885 6.885 0 0 1 13.7 1.382\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.931 192.324a2.222 2.222 0 1 1-4.444 0 2.222 2.222 0 0 1 4.444 0zM225.27 116.056a2.222 2.222 0 1 1-4.445 0 2.222 2.222 0 0 1 4.444 0zM216.38 151.08a2.223 2.223 0 1 1-4.446-.001 2.223 2.223 0 0 1 4.446 0zM176.917 107.636a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM195.291 92.165a2.223 2.223 0 1 1-4.445 0 2.223 2.223 0 0 1 4.445 0zM202.058 180.711a2.223 2.223 0 1 1-4.446 0 2.223 2.223 0 0 1 4.446 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M214.404 153.302l-1.912 20.184-10.928 5.99M173.661 174.792l-6.356 9.814h-11.36l-4.508 6.484M174.941 125.168v-15.804M220.824 117.25l-12.84 7.901-15.31-7.902V94.39\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.588 65.936h-3.951a4.756 4.756 0 0 1-4.743-4.742 4.756 4.756 0 0 1 4.743-4.743h3.951a4.756 4.756 0 0 1 4.743 4.743 4.756 4.756 0 0 1-4.743 4.742\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M174.823 30.03c0-16.281 13.198-29.48 29.48-29.48 16.28 0 29.48 13.199 29.48 29.48 0 16.28-13.2 29.48-29.48 29.48-16.282 0-29.48-13.2-29.48-29.48\",\n fill: \"#1677ff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.952 38.387c.5.5.785 1.142.785 1.928s-.286 1.465-.785 1.964c-.572.5-1.214.75-2 .75-.785 0-1.429-.285-1.929-.785-.572-.5-.82-1.143-.82-1.929s.248-1.428.82-1.928c.5-.5 1.144-.75 1.93-.75.785 0 1.462.25 1.999.75m4.285-19.463c1.428 1.249 2.143 2.963 2.143 5.142 0 1.712-.427 3.13-1.219 4.25-.067.096-.137.18-.218.265-.416.429-1.41 1.346-2.956 2.699a5.07 5.07 0 0 0-1.428 1.75 5.207 5.207 0 0 0-.536 2.357v.5h-4.107v-.5c0-1.357.215-2.536.714-3.5.464-.964 1.857-2.464 4.178-4.536l.43-.5c.643-.785.964-1.643.964-2.535 0-1.18-.358-2.108-1-2.785-.678-.68-1.643-1.001-2.858-1.001-1.536 0-2.642.464-3.357 1.43-.37.5-.621 1.135-.76 1.904a1.999 1.999 0 0 1-1.971 1.63h-.004c-1.277 0-2.257-1.183-1.98-2.43.337-1.518 1.02-2.78 2.073-3.784 1.536-1.5 3.607-2.25 6.25-2.25 2.32 0 4.214.607 5.642 1.894\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.04 76.131s21.81 5.36 27.307 15.945c5.575 10.74-6.352 9.26-15.73 4.935-10.86-5.008-24.7-11.822-11.577-20.88\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.483 67.504l-.449 2.893c-.753.49-4.748-2.663-4.748-2.663l-1.645.748-1.346-5.684s6.815-4.589 8.917-5.018c2.452-.501 9.884.94 10.7 2.278 0 0 1.32.486-2.227.69-3.548.203-5.043.447-6.79 3.132-1.747 2.686-2.412 3.624-2.412 3.624\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.055 111.367c-2.627-7.724-6.15-13.18-8.917-15.478-3.5-2.906-9.34-2.225-11.366-4.187-1.27-1.231-3.215-1.197-3.215-1.197s-14.98-3.158-16.828-3.479c-2.37-.41-2.124-.714-6.054-1.405-1.57-1.907-2.917-1.122-2.917-1.122l-7.11-1.383c-.853-1.472-2.423-1.023-2.423-1.023l-2.468-.897c-1.645 9.976-7.74 13.796-7.74 13.796 1.795 1.122 15.703 8.3 15.703 8.3l5.107 37.11s-3.321 5.694 1.346 9.109c0 0 19.883-3.743 34.921-.329 0 0 3.047-2.546.972-8.806.523-3.01 1.394-8.263 1.736-11.622.385.772 2.019 1.918 3.14 3.477 0 0 9.407-7.365 11.052-14.012-.832-.723-1.598-1.585-2.267-2.453-.567-.736-.358-2.056-.765-2.717-.669-1.084-1.804-1.378-1.907-1.682\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.09 289.998s4.295 2.041 7.354 1.021c2.821-.94 4.53.668 7.08 1.178 2.55.51 6.874 1.1 11.686-1.26-.103-5.51-6.889-3.98-11.96-6.713-2.563-1.38-3.784-4.722-3.598-8.799h-9.402s-1.392 10.52-1.16 14.573\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.067 289.826s2.428 1.271 6.759.653c3.058-.437 3.712.481 7.423 1.031 3.712.55 10.724-.069 11.823-.894.413 1.1-.343 2.063-.343 2.063s-1.512.603-4.812.824c-2.03.136-5.8.291-7.607-.503-1.787-1.375-5.247-1.903-5.728-.241-3.918.95-7.355-.286-7.355-.286l-.16-2.647z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.341 276.044h3.094s-.103 6.702 4.536 8.558c-4.64.618-8.558-2.303-7.63-8.558\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.542 272.401s-2.107 7.416-4.485 12.306c-1.798 3.695-4.225 7.492 5.465 7.492 6.648 0 8.953-.48 7.423-6.599-1.53-6.12.266-13.199.266-13.199h-8.669z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.476 289.793s2.097 1.169 6.633 1.169c6.083 0 8.249-1.65 8.249-1.65s.602 1.114-.619 2.165c-.993.855-3.597 1.591-7.39 1.546-4.145-.048-5.832-.566-6.736-1.168-.825-.55-.687-1.58-.137-2.062\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.419 274.304s.033 1.519-.314 2.93c-.349 1.42-1.078 3.104-1.13 4.139-.058 1.151 4.537 1.58 5.155.034.62-1.547 1.294-6.427 1.913-7.252.619-.825-4.903-2.119-5.624.15\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.66 278.514l13.378.092s1.298-54.52 1.853-64.403c.554-9.882 3.776-43.364 1.002-63.128l-12.547-.644-22.849.78s-.434 3.966-1.195 9.976c-.063.496-.682.843-.749 1.365-.075.585.423 1.354.32 1.966-2.364 14.08-6.377 33.104-8.744 46.677-.116.666-1.234 1.009-1.458 2.691-.04.302.211 1.525.112 1.795-6.873 18.744-10.949 47.842-14.277 61.885l14.607-.014s2.197-8.57 4.03-16.97c2.811-12.886 23.111-85.01 23.111-85.01l3.016-.521 1.043 46.35s-.224 1.234.337 2.02c.56.785-.56 1.123-.392 2.244l.392 1.794s-.449 7.178-.898 11.89c-.448 4.71-.092 39.165-.092 39.165\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.085 221.626c1.153.094 4.038-2.019 6.955-4.935M106.36 225.142s2.774-1.11 6.103-3.883\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.275 222.1s2.773-1.11 6.102-3.884\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74.74 224.767s2.622-.591 6.505-3.365M86.03 151.634c-.27 3.106.3 8.525-4.336 9.123M103.625 149.88s.11 14.012-1.293 15.065c-2.219 1.664-2.99 1.944-2.99 1.944M99.79 150.438s.035 12.88-1.196 24.377M93.673 175.911s7.212-1.664 9.431-1.664M74.31 205.861a212.013 212.013 0 0 1-.979 4.56s-1.458 1.832-1.009 3.776c.449 1.944-.947 2.045-4.985 15.355-1.696 5.59-4.49 18.591-6.348 27.597l-.231 1.12M75.689 197.807a320.934 320.934 0 0 1-.882 4.754M82.591 152.233L81.395 162.7s-1.097.15-.5 2.244c.113 1.346-2.674 15.775-5.18 30.43M56.12 274.418h13.31\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M116.241 148.22s-17.047-3.104-35.893.2c.158 2.514-.003 4.15-.003 4.15s14.687-2.818 35.67-.312c.252-2.355.226-4.038.226-4.038\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.322 151.165l.003-4.911a.81.81 0 0 0-.778-.815c-2.44-.091-5.066-.108-7.836-.014a.818.818 0 0 0-.789.815l-.003 4.906a.81.81 0 0 0 .831.813c2.385-.06 4.973-.064 7.73.017a.815.815 0 0 0 .842-.81\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.207 150.233l.002-3.076a.642.642 0 0 0-.619-.646 94.321 94.321 0 0 0-5.866-.01.65.65 0 0 0-.63.647v3.072a.64.64 0 0 0 .654.644 121.12 121.12 0 0 1 5.794.011c.362.01.665-.28.665-.642\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.263 275.415h12.338M101.436 270.53c.006 3.387.042 5.79.111 6.506M101.451 264.548a915.75 915.75 0 0 0-.015 4.337M100.986 174.965l.898 44.642s.673 1.57-.225 2.692c-.897 1.122 2.468.673.898 2.243-1.57 1.57.897 1.122 0 3.365-.596 1.489-.994 21.1-1.096 35.146\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.876 83.427s-.516 6.045 7.223 5.552c11.2-.712 9.218-9.345 31.54-21.655-.786-2.708-2.447-4.744-2.447-4.744s-11.068 3.11-22.584 8.046c-6.766 2.9-13.395 6.352-13.732 12.801M104.46 91.057l.941-5.372-8.884-11.43-5.037 5.372-1.74 7.834a.321.321 0 0 0 .108.32c.965.8 6.5 5.013 14.347 3.544a.332.332 0 0 0 .264-.268\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M93.942 79.387s-4.533-2.853-2.432-6.855c1.623-3.09 4.513 1.133 4.513 1.133s.52-3.642 3.121-3.642c.52-1.04 1.561-4.162 1.561-4.162s11.445 2.601 13.526 3.121c0 5.203-2.304 19.424-7.84 19.861-8.892.703-12.449-9.456-12.449-9.456\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.874 73.446c2.601-2.081 3.47-9.722 3.47-9.722s-2.479-.49-6.64-2.05c-4.683-2.081-12.798-4.747-17.48.976-9.668 3.223-2.05 19.823-2.05 19.823l2.713-3.021s-3.935-3.287-2.08-6.243c2.17-3.462 3.92 1.073 3.92 1.073s.637-2.387 3.581-3.342c.355-.71 1.036-2.674 1.432-3.85a1.073 1.073 0 0 1 1.263-.704c2.4.558 8.677 2.019 11.356 2.662.522.125.871.615.82 1.15l-.305 3.248z\",\n fill: \"#520038\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.977 76.064c-.103.61-.582 1.038-1.07.956-.489-.083-.801-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.644.698 1.254M112.132 77.694c-.103.61-.582 1.038-1.07.956-.488-.083-.8-.644-.698-1.254.103-.61.582-1.038 1.07-.956.488.082.8.643.698 1.254\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M110.13 74.84l-.896 1.61-.298 4.357h-2.228\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.846 74.481s1.79-.716 2.506.537\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.386 74.282s.477-1.114 1.113-.716c.637.398 1.274 1.433.558 1.99-.717.556.159 1.67.159 1.67\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.287 72.93s1.83 1.113 4.137.954\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.685 81.762s2.227 1.193 4.376 1.193M104.64 84.308s.954.398 1.511.318M94.693 81.205s2.308 7.4 10.424 7.639\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.118\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.45 89.384s.45 5.647-4.935 12.787M69 82.654s-.726 9.282-8.204 14.206\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.405 122.865s-5.272 7.403-9.422 10.768\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.306 107.329s.452 4.366-2.127 32.062\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.028 151.232h-49.837a1.01 1.01 0 0 1-1.01-1.01v-31.688c0-.557.452-1.01 1.01-1.01h49.837c.558 0 1.01.453 1.01 1.01v31.688a1.01 1.01 0 0 1-1.01 1.01\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.29 151.232h-19.863v-33.707h20.784v32.786a.92.92 0 0 1-.92.92\",\n fill: \"#F4D19D\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.554 127.896H92.917a.518.518 0 0 1-.425-.816l6.38-9.113c.193-.277.51-.442.85-.442h31.092l-7.26 10.371z\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M123.689 128.447H99.25v-.519h24.169l7.183-10.26.424.298z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.298 127.896h-18.669a2.073 2.073 0 0 1-1.659-.83l-7.156-9.541h19.965c.49 0 .95.23 1.244.622l6.69 8.92a.519.519 0 0 1-.415.83\",\n fill: \"#F4D19D\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M157.847 128.479h-19.384l-7.857-10.475.415-.31 7.7 10.266h19.126zM130.554 150.685l-.032-8.177.519-.002.032 8.177z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#CC9B6E\",\n d: \"M130.511 139.783l-.08-21.414.519-.002.08 21.414zM111.876 140.932l-.498-.143 1.479-5.167.498.143zM108.437 141.06l-2.679-2.935 2.665-3.434.41.318-2.397 3.089 2.384 2.612zM116.607 141.06l-.383-.35 2.383-2.612-2.397-3.089.41-.318 2.665 3.434z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M154.316 131.892l-3.114-1.96.038 3.514-1.043.092c-1.682.115-3.634.23-4.789.23-1.902 0-2.693 2.258 2.23 2.648l-2.645-.596s-2.168 1.317.504 2.3c0 0-1.58 1.217.561 2.58-.584 3.504 5.247 4.058 7.122 3.59 1.876-.47 4.233-2.359 4.487-5.16.28-3.085-.89-5.432-3.35-7.238\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M153.686 133.577s-6.522.47-8.36.372c-1.836-.098-1.904 2.19 2.359 2.264 3.739.15 5.451-.044 5.451-.044\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M145.16 135.877c-1.85 1.346.561 2.355.561 2.355s3.478.898 6.73.617\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M151.89 141.71s-6.28.111-6.73-2.132c-.223-1.346.45-1.402.45-1.402M146.114 140.868s-1.103 3.16 5.44 3.533M151.202 129.932v3.477M52.838 89.286c3.533-.337 8.423-1.248 13.582-7.754\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.567 248.318a6.647 6.647 0 0 1-6.647-6.647v-66.466a6.647 6.647 0 1 1 13.294 0v66.466a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#5BA02E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.543 247.653a6.647 6.647 0 0 1-6.646-6.647v-33.232a6.647 6.647 0 1 1 13.293 0v33.232a6.647 6.647 0 0 1-6.647 6.647\",\n fill: \"#92C110\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M186.443 293.613H158.92a3.187 3.187 0 0 1-3.187-3.187v-46.134a3.187 3.187 0 0 1 3.187-3.187h27.524a3.187 3.187 0 0 1 3.187 3.187v46.134a3.187 3.187 0 0 1-3.187 3.187\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.979 89.48s7.776 5.384 16.6 2.842\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.101\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n})));\nexport default NoFound;","import * as React from 'react';\nconst ServerError = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"254\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 .335h253.49v253.49H0z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 293.665h253.49V.401H0z\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 .067)\"\n}, /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 128.134v-2.11C0 56.608 56.273.334 125.69.334h2.11c69.416 0 125.69 56.274 125.69 125.69v2.11c0 69.417-56.274 125.69-125.69 125.69h-2.11C56.273 253.824 0 197.551 0 128.134\",\n fill: \"#E4EBF7\",\n mask: \"url(#b)\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.989 132.108a8.332 8.332 0 1 1-16.581-1.671 8.332 8.332 0 0 1 16.58 1.671\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.19 135.59l10.553 5.983M48.665 147.884l-12.734 10.861\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.11 160.816a5.706 5.706 0 1 1-11.354-1.145 5.706 5.706 0 0 1 11.354 1.145M57.943 144.6a5.747 5.747 0 1 1-11.436-1.152 5.747 5.747 0 0 1 11.436 1.153M99.656 27.434l30.024-.013a4.619 4.619 0 1 0-.004-9.238l-30.024.013a4.62 4.62 0 0 0 .004 9.238M111.14 45.896l30.023-.013a4.62 4.62 0 1 0-.004-9.238l-30.024.013a4.619 4.619 0 1 0 .004 9.238\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M113.53 27.421v-.002l15.89-.007a4.619 4.619 0 1 0 .005 9.238l-15.892.007v-.002a4.618 4.618 0 0 0-.004-9.234M150.167 70.091h-3.979a4.789 4.789 0 0 1-4.774-4.775 4.788 4.788 0 0 1 4.774-4.774h3.979a4.789 4.789 0 0 1 4.775 4.774 4.789 4.789 0 0 1-4.775 4.775\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.687 30.234c0-16.392 13.289-29.68 29.681-29.68 16.392 0 29.68 13.288 29.68 29.68 0 16.393-13.288 29.681-29.68 29.681s-29.68-13.288-29.68-29.68\",\n fill: \"#FF603B\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.557 19.435l-.676 15.035a1.514 1.514 0 0 1-3.026 0l-.675-15.035a2.19 2.19 0 1 1 4.377 0m-.264 19.378c.513.477.77 1.1.77 1.87s-.257 1.393-.77 1.907c-.55.476-1.21.733-1.943.733a2.545 2.545 0 0 1-1.87-.77c-.55-.514-.806-1.136-.806-1.87 0-.77.256-1.393.806-1.87.513-.513 1.137-.733 1.87-.733.77 0 1.43.22 1.943.733\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.3 133.275c4.426-.598 3.612-1.204 4.079-4.778.675-5.18-3.108-16.935-8.262-25.118-1.088-10.72-12.598-11.24-12.598-11.24s4.312 4.895 4.196 16.199c1.398 5.243.804 14.45.804 14.45s5.255 11.369 11.78 10.487\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.944 91.61s1.463-.583 3.211.582c8.08 1.398 10.368 6.706 11.3 11.368 1.864 1.282 1.864 2.33 1.864 3.496.365.777 1.515 3.03 1.515 3.03s-7.225 1.748-10.954 6.758c-1.399-6.41-6.936-25.235-6.936-25.235\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.008 90.5l1.019-5.815-9.23-11.874-5.233 5.581-2.593 9.863s8.39 5.128 16.037 2.246\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.931 78.216s-4.557-2.868-2.445-6.892c1.632-3.107 4.537 1.139 4.537 1.139s.524-3.662 3.139-3.662c.523-1.046 1.569-4.184 1.569-4.184s11.507 2.615 13.6 3.138c-.001 5.23-2.317 19.529-7.884 19.969-8.94.706-12.516-9.508-12.516-9.508\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.971 72.243c2.616-2.093 3.489-9.775 3.489-9.775s-2.492-.492-6.676-2.062c-4.708-2.092-12.867-4.771-17.575.982-9.54 4.41-2.062 19.93-2.062 19.93l2.729-3.037s-3.956-3.304-2.092-6.277c2.183-3.48 3.943 1.08 3.943 1.08s.64-2.4 3.6-3.36c.356-.714 1.04-2.69 1.44-3.872a1.08 1.08 0 0 1 1.27-.707c2.41.56 8.723 2.03 11.417 2.676.524.126.876.619.825 1.156l-.308 3.266z\",\n fill: \"#520038\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.22 76.514c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.961.491.083.805.647.702 1.26M94.26 75.074c-.104.613-.585 1.044-1.076.96-.49-.082-.805-.646-.702-1.26.104-.613.585-1.044 1.076-.96.491.082.805.646.702 1.26\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M99.206 73.644l-.9 1.62-.3 4.38h-2.24\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.926 73.284s1.8-.72 2.52.54\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.367 73.084s.48-1.12 1.12-.72c.64.4 1.28 1.44.56 2s.16 1.68.16 1.68\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.326 71.724s1.84 1.12 4.16.96\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.117\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M92.726 80.604s2.24 1.2 4.4 1.2M93.686 83.164s.96.4 1.52.32M83.687 80.044s1.786 6.547 9.262 7.954\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.063\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.548 91.663s-1.068 2.821-8.298 2.105c-7.23-.717-10.29-5.044-10.29-5.044\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.136\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.126 87.478s6.526 4.972 16.47 2.486c0 0 9.577 1.02 11.536 5.322 5.36 11.77.543 36.835 0 39.962 3.496 4.055-.466 8.483-.466 8.483-15.624-3.548-35.81-.6-35.81-.6-4.849-3.546-1.223-9.044-1.223-9.044L62.38 110.32c-2.485-15.227.833-19.803 3.549-20.743 3.03-1.049 8.04-1.282 8.04-1.282.496-.058 1.08-.076 1.37-.233 2.36-1.282 2.787-.583 2.787-.583\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M65.828 89.81s-6.875.465-7.59 8.156c-.466 8.857 3.03 10.954 3.03 10.954s6.075 22.102 16.796 22.957c8.39-2.176 4.758-6.702 4.661-11.42-.233-11.304-7.108-16.897-7.108-16.897s-4.212-13.75-9.789-13.75\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.716 124.225s.855 11.264 9.828 6.486c4.765-2.536 7.581-13.828 9.789-22.568 1.456-5.768 2.58-12.197 2.58-12.197l-4.973-1.709s-2.408 5.516-7.769 12.275c-4.335 5.467-9.144 11.11-9.455 17.713\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.463 105.191s1.747 2.724-2.331 30.535c2.376 2.216 1.053 6.012-.233 7.51\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.262 131.527s-.427 2.732-11.77 1.981c-15.187-1.006-25.326-3.25-25.326-3.25l.933-5.8s.723.215 9.71-.068c11.887-.373 18.714-6.07 24.964-1.022 4.039 3.263 1.489 8.16 1.489 8.16\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.24 90.974s-5.593-4.739-11.054 2.68c-3.318 7.223.517 15.284 2.664 19.578-.31 3.729 2.33 4.311 2.33 4.311s.108.895 1.516 2.68c4.078-7.03 6.72-9.166 13.711-12.546-.328-.656-1.877-3.265-1.825-3.767.175-1.69-1.282-2.623-1.282-2.623s-.286-.156-1.165-2.738c-.788-2.313-2.036-5.177-4.895-7.575\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.232 288.027s4.855 2.308 8.313 1.155c3.188-1.063 5.12.755 8.002 1.331 2.881.577 7.769 1.243 13.207-1.424-.117-6.228-7.786-4.499-13.518-7.588-2.895-1.56-4.276-5.336-4.066-9.944H91.544s-1.573 11.89-1.312 16.47\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.207 287.833s2.745 1.437 7.639.738c3.456-.494 3.223.66 7.418 1.282 4.195.621 13.092-.194 14.334-1.126.466 1.242-.388 2.33-.388 2.33s-1.709.682-5.438.932c-2.295.154-8.098.276-10.14-.621-2.02-1.554-4.894-1.515-6.06-.234-4.427 1.075-7.184-.31-7.184-.31l-.181-2.991z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.429 272.257h3.496s-.117 7.574 5.127 9.671c-5.244.7-9.672-2.602-8.623-9.671\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.425 272.046s-2.208 7.774-4.702 12.899c-1.884 3.874-4.428 7.854 5.729 7.854 6.97 0 9.385-.503 7.782-6.917-1.604-6.415.279-13.836.279-13.836h-9.088z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.066 290.277s2.198 1.225 6.954 1.225c6.376 0 8.646-1.73 8.646-1.73s.63 1.168-.649 2.27c-1.04.897-3.77 1.668-7.745 1.621-4.347-.05-6.115-.593-7.062-1.224-.864-.577-.72-1.657-.144-2.162\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.344 274.041s.035 1.592-.329 3.07c-.365 1.49-1.13 3.255-1.184 4.34-.061 1.206 4.755 1.657 5.403.036.65-1.622 1.357-6.737 2.006-7.602.648-.865-5.14-2.222-5.896.156\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.476 277.57l13.899.095s1.349-56.643 1.925-66.909c.576-10.267 3.923-45.052 1.042-65.585l-13.037-.669-23.737.81s-.452 4.12-1.243 10.365c-.065.515-.708.874-.777 1.417-.078.608.439 1.407.332 2.044-2.455 14.627-5.797 32.736-8.256 46.837-.121.693-1.282 1.048-1.515 2.796-.042.314.22 1.584.116 1.865-7.14 19.473-12.202 52.601-15.66 67.19l15.176-.015s2.282-10.145 4.185-18.871c2.922-13.389 24.012-88.32 24.012-88.32l3.133-.954-.158 48.568s-.233 1.282.35 2.098c.583.815-.581 1.167-.408 2.331l.408 1.864s-.466 7.458-.932 12.352c-.467 4.895 1.145 40.69 1.145 40.69\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.57 218.881c1.197.099 4.195-2.097 7.225-5.127M96.024 222.534s2.881-1.152 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.973 219.373s2.882-1.153 6.34-4.034\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.032\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.172 222.144s2.724-.614 6.759-3.496M74.903 146.166c-.281 3.226.31 8.856-4.506 9.478M93.182 144.344s.115 14.557-1.344 15.65c-2.305 1.73-3.107 2.02-3.107 2.02M89.197 144.923s.269 13.144-1.01 25.088M83.525 170.71s6.81-1.051 9.116-1.051M46.026 270.045l-.892 4.538M46.937 263.289l-.815 4.157M62.725 202.503c-.33 1.618-.102 1.904-.449 3.438 0 0-2.756 1.903-2.29 3.923.466 2.02-.31 3.424-4.505 17.252-1.762 5.807-4.233 18.922-6.165 28.278-.03.144-.521 2.646-1.14 5.8M64.158 194.136c-.295 1.658-.6 3.31-.917 4.938M71.33 146.787l-1.244 10.877s-1.14.155-.519 2.33c.117 1.399-2.778 16.39-5.382 31.615M44.242 273.727H58.07\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.18 142.117c-3.028-.489-18.825-2.744-36.219.2a.625.625 0 0 0-.518.644c.063 1.307.044 2.343.015 2.995a.617.617 0 0 0 .716.636c3.303-.534 17.037-2.412 35.664-.266.347.04.66-.214.692-.56.124-1.347.16-2.425.17-3.029a.616.616 0 0 0-.52-.62\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.398 145.264l.003-5.102a.843.843 0 0 0-.809-.847 114.104 114.104 0 0 0-8.141-.014.85.85 0 0 0-.82.847l-.003 5.097c0 .476.388.857.864.845 2.478-.064 5.166-.067 8.03.017a.848.848 0 0 0 .876-.843\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M95.239 144.296l.002-3.195a.667.667 0 0 0-.643-.672c-1.9-.061-3.941-.073-6.094-.01a.675.675 0 0 0-.654.672l-.002 3.192c0 .376.305.677.68.669 1.859-.042 3.874-.043 6.02.012.376.01.69-.291.691-.668\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90.102 273.522h12.819M91.216 269.761c.006 3.519-.072 5.55 0 6.292M90.923 263.474c-.009 1.599-.016 2.558-.016 4.505M90.44 170.404l.932 46.38s.7 1.631-.233 2.796c-.932 1.166 2.564.7.932 2.33-1.63 1.633.933 1.166 0 3.497-.618 1.546-1.031 21.921-1.138 36.513\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.736 98.665l2.214 4.312s2.098.816 1.865 2.68l.816 2.214M64.297 116.611c.233-.932 2.176-7.147 12.585-10.488M77.598 90.042s7.691 6.137 16.547 2.72\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.974 86.954s5.476-.816 7.574-4.545c1.297-.345.72 2.212-.33 3.671-.7.971-1.01 1.554-1.01 1.554s.194.31.155.816c-.053.697-.175.653-.272 1.048-.081.335.108.657 0 1.049-.046.17-.198.5-.382.878-.12.249-.072.687-.2.948-.231.469-1.562 1.87-2.622 2.855-3.826 3.554-5.018 1.644-6.001-.408-.894-1.865-.661-5.127-.874-6.875-.35-2.914-2.622-3.03-1.923-4.429.343-.685 2.87.69 3.263 1.748.757 2.04 2.952 1.807 2.622 1.69\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.8 82.429c-.465.077-.35.272-.97 1.243-.622.971-4.817 2.932-6.39 3.224-2.589.48-2.278-1.56-4.254-2.855-1.69-1.107-3.562-.638-1.398 1.398.99.932.932 1.107 1.398 3.205.335 1.506-.64 3.67.7 5.593\",\n stroke: \"#DB836E\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.543 108.673c-2.1 2.926-4.266 6.175-5.557 8.762\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.72 124.768s-2.098-1.942-5.127-2.719c-3.03-.777-3.574-.155-5.516.078-1.942.233-3.885-.932-3.652.7.233 1.63 5.05 1.01 5.206 2.097.155 1.087-6.37 2.796-8.313 2.175-.777.777.466 1.864 2.02 2.175.233 1.554 2.253 1.554 2.253 1.554s.699 1.01 2.641 1.088c2.486 1.32 8.934-.7 10.954-1.554 2.02-.855-.466-5.594-.466-5.594\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.425 122.826s.66 1.127 3.167 1.418c2.315.27 2.563.583 2.563.583s-2.545 2.894-9.07 2.272M72.416 129.274s3.826.097 4.933-.718M74.98 130.75s1.961.136 3.36-.505M77.232 131.916s1.748.019 2.914-.505M73.328 122.321s-.595-1.032 1.262-.427c1.671.544 2.833.055 5.128.155 1.389.061 3.067-.297 3.982.15 1.606.784 3.632 2.181 3.632 2.181s10.526 1.204 19.033-1.127M78.864 108.104s-8.39 2.758-13.168 12.12\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.278 112.533s3.38-3.613 7.575-4.662\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.085\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.375 123.006s9.697-2.745 11.445-.88\",\n stroke: \"#E59788\",\n strokeWidth: \".774\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M194.605 83.656l3.971-3.886M187.166 90.933l3.736-3.655M191.752 84.207l-4.462-4.56M198.453 91.057l-4.133-4.225M129.256 163.074l3.718-3.718M122.291 170.039l3.498-3.498M126.561 163.626l-4.27-4.27M132.975 170.039l-3.955-3.955\",\n stroke: \"#BFCDDD\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M190.156 211.779h-1.604a4.023 4.023 0 0 1-4.011-4.011V175.68a4.023 4.023 0 0 1 4.01-4.01h1.605a4.023 4.023 0 0 1 4.011 4.01v32.088a4.023 4.023 0 0 1-4.01 4.01\",\n fill: \"#A3B4C6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M237.824 212.977a4.813 4.813 0 0 1-4.813 4.813h-86.636a4.813 4.813 0 0 1 0-9.626h86.636a4.813 4.813 0 0 1 4.813 4.813\",\n fill: \"#A3B4C6\"\n}), /*#__PURE__*/React.createElement(\"mask\", {\n fill: \"#fff\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#A3B4C6\",\n mask: \"url(#d)\",\n d: \"M154.098 190.096h70.513v-84.617h-70.513z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 190.096H153.78a3.219 3.219 0 0 1-3.208-3.209V167.92a3.219 3.219 0 0 1 3.208-3.21h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.219 3.219 0 0 1-3.21 3.209M224.928 130.832H153.78a3.218 3.218 0 0 1-3.208-3.208v-18.968a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.21v18.967a3.218 3.218 0 0 1-3.21 3.208\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 120.546a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 120.546h-22.461a.802.802 0 0 1-.802-.802v-3.208c0-.443.359-.803.802-.803h22.46c.444 0 .803.36.803.803v3.208c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M224.928 160.464H153.78a3.218 3.218 0 0 1-3.208-3.209v-18.967a3.219 3.219 0 0 1 3.208-3.209h71.148a3.219 3.219 0 0 1 3.209 3.209v18.967a3.218 3.218 0 0 1-3.21 3.209\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.455 130.832h49.301M164.984 130.832h6.089M155.952 130.832h6.75M173.837 160.613h49.3M165.365 160.613h6.089M155.57 160.613h6.751\",\n stroke: \"#7C90A5\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M159.563 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M166.98 151.038a2.407 2.407 0 1 1 0-4.814 2.407 2.407 0 0 1 0 4.814M174.397 151.038a2.407 2.407 0 1 1 .001-4.814 2.407 2.407 0 0 1 0 4.814M222.539 151.038h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802M159.563 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M166.98 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M174.397 179.987a2.407 2.407 0 1 1 0-4.813 2.407 2.407 0 0 1 0 4.813M222.539 179.987h-22.461a.802.802 0 0 1-.802-.802v-3.209c0-.443.359-.802.802-.802h22.46c.444 0 .803.36.803.802v3.209c0 .443-.36.802-.802.802\",\n fill: \"#FFF\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M203.04 221.108h-27.372a2.413 2.413 0 0 1-2.406-2.407v-11.448a2.414 2.414 0 0 1 2.406-2.407h27.372a2.414 2.414 0 0 1 2.407 2.407V218.7a2.413 2.413 0 0 1-2.407 2.407\",\n fill: \"#BFCDDD\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.259 207.217v11.52M201.05 207.217v11.52\",\n stroke: \"#A3B4C6\",\n strokeWidth: \"1.124\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.873 267.894a9.422 9.422 0 0 1-9.422-9.422v-14.82a9.423 9.423 0 0 1 18.845 0v14.82a9.423 9.423 0 0 1-9.423 9.422\",\n fill: \"#5BA02E\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M171.22 267.83a9.422 9.422 0 0 1-9.422-9.423v-3.438a9.423 9.423 0 0 1 18.845 0v3.438a9.423 9.423 0 0 1-9.422 9.423\",\n fill: \"#92C110\",\n mask: \"url(#d)\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M181.31 293.666h-27.712a3.209 3.209 0 0 1-3.209-3.21V269.79a3.209 3.209 0 0 1 3.209-3.21h27.711a3.209 3.209 0 0 1 3.209 3.21v20.668a3.209 3.209 0 0 1-3.209 3.209\",\n fill: \"#F2D7AD\",\n mask: \"url(#d)\"\n})));\nexport default ServerError;","import * as React from 'react';\nconst Unauthorized = () => /*#__PURE__*/React.createElement(\"svg\", {\n width: \"251\",\n height: \"294\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 129.023v-2.084C0 58.364 55.591 2.774 124.165 2.774h2.085c68.574 0 124.165 55.59 124.165 124.165v2.084c0 68.575-55.59 124.166-124.165 124.166h-2.085C55.591 253.189 0 197.598 0 129.023\",\n fill: \"#E4EBF7\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.417 132.92a8.231 8.231 0 1 1-16.38-1.65 8.231 8.231 0 0 1 16.38 1.65\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38.652 136.36l10.425 5.91M49.989 148.505l-12.58 10.73\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M41.536 161.28a5.636 5.636 0 1 1-11.216-1.13 5.636 5.636 0 0 1 11.216 1.13M59.154 145.261a5.677 5.677 0 1 1-11.297-1.138 5.677 5.677 0 0 1 11.297 1.138M100.36 29.516l29.66-.013a4.562 4.562 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 0 0 .005 9.126M111.705 47.754l29.659-.013a4.563 4.563 0 1 0-.004-9.126l-29.66.013a4.563 4.563 0 1 0 .005 9.126\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.066 29.503V29.5l15.698-.007a4.563 4.563 0 1 0 .004 9.126l-15.698.007v-.002a4.562 4.562 0 0 0-.004-9.122M185.405 137.723c-.55 5.455-5.418 9.432-10.873 8.882-5.456-.55-9.432-5.418-8.882-10.873.55-5.455 5.418-9.432 10.873-8.882 5.455.55 9.432 5.418 8.882 10.873\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.17 143.772l12.572 7.129M193.841 158.42L178.67 171.36\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.55 171.926a6.798 6.798 0 1 1-13.528-1.363 6.798 6.798 0 0 1 13.527 1.363M204.12 155.285a6.848 6.848 0 1 1-13.627-1.375 6.848 6.848 0 0 1 13.626 1.375\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M152.988 194.074a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0zM225.931 118.217a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM217.09 153.051a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.42 0zM177.84 109.842a2.21 2.21 0 1 1-4.422 0 2.21 2.21 0 0 1 4.421 0zM196.114 94.454a2.21 2.21 0 1 1-4.421 0 2.21 2.21 0 0 1 4.421 0zM202.844 182.523a2.21 2.21 0 1 1-4.42 0 2.21 2.21 0 0 1 4.42 0z\",\n stroke: \"#FFF\",\n strokeWidth: \"2\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#FFF\",\n strokeWidth: \"2\",\n d: \"M215.125 155.262l-1.902 20.075-10.87 5.958M174.601 176.636l-6.322 9.761H156.98l-4.484 6.449M175.874 127.28V111.56M221.51 119.404l-12.77 7.859-15.228-7.86V96.668\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M180.68 29.32C180.68 13.128 193.806 0 210 0c16.193 0 29.32 13.127 29.32 29.32 0 16.194-13.127 29.322-29.32 29.322-16.193 0-29.32-13.128-29.32-29.321\",\n fill: \"#A26EF4\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.45 41.706l-21.563-.125a1.744 1.744 0 0 1-1.734-1.754l.071-12.23a1.744 1.744 0 0 1 1.754-1.734l21.562.125c.964.006 1.74.791 1.735 1.755l-.071 12.229a1.744 1.744 0 0 1-1.754 1.734\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M215.106 29.192c-.015 2.577-2.049 4.654-4.543 4.64-2.494-.014-4.504-2.115-4.489-4.693l.04-6.925c.016-2.577 2.05-4.654 4.543-4.64 2.494.015 4.504 2.116 4.49 4.693l-.04 6.925zm-4.53-14.074a6.877 6.877 0 0 0-6.916 6.837l-.043 7.368a6.877 6.877 0 0 0 13.754.08l.042-7.368a6.878 6.878 0 0 0-6.837-6.917zM167.566 68.367h-3.93a4.73 4.73 0 0 1-4.717-4.717 4.73 4.73 0 0 1 4.717-4.717h3.93a4.73 4.73 0 0 1 4.717 4.717 4.73 4.73 0 0 1-4.717 4.717\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.214 248.838a6.611 6.611 0 0 1-6.61-6.611v-66.108a6.611 6.611 0 0 1 13.221 0v66.108a6.611 6.611 0 0 1-6.61 6.61\",\n fill: \"#5BA02E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.147 248.176a6.611 6.611 0 0 1-6.61-6.61v-33.054a6.611 6.611 0 1 1 13.221 0v33.053a6.611 6.611 0 0 1-6.61 6.611\",\n fill: \"#92C110\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M185.994 293.89h-27.376a3.17 3.17 0 0 1-3.17-3.17v-45.887a3.17 3.17 0 0 1 3.17-3.17h27.376a3.17 3.17 0 0 1 3.17 3.17v45.886a3.17 3.17 0 0 1-3.17 3.17\",\n fill: \"#F2D7AD\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M81.972 147.673s6.377-.927 17.566-1.28c11.729-.371 17.57 1.086 17.57 1.086s3.697-3.855.968-8.424c1.278-12.077 5.982-32.827.335-48.273-1.116-1.339-3.743-1.512-7.536-.62-1.337.315-7.147-.149-7.983-.1l-15.311-.347s-3.487-.17-8.035-.508c-1.512-.113-4.227-1.683-5.458-.338-.406.443-2.425 5.669-1.97 16.077l8.635 35.642s-3.141 3.61 1.219 7.085\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.768 73.325l-.9-6.397 11.982-6.52s7.302-.118 8.038 1.205c.737 1.324-5.616.993-5.616.993s-1.836 1.388-2.615 2.5c-1.654 2.363-.986 6.471-8.318 5.986-1.708.284-2.57 2.233-2.57 2.233\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.44 77.672s14.217 9.406 24.973 14.444c1.061.497-2.094 16.183-11.892 11.811-7.436-3.318-20.162-8.44-21.482-14.496-.71-3.258 2.543-7.643 8.401-11.76M141.862 80.113s-6.693 2.999-13.844 6.876c-3.894 2.11-10.137 4.704-12.33 7.988-6.224 9.314 3.536 11.22 12.947 7.503 6.71-2.651 28.999-12.127 13.227-22.367\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.166 66.36l3.06 3.881s-2.783 2.67-6.31 5.747c-7.103 6.195-12.803 14.296-15.995 16.44-3.966 2.662-9.754 3.314-12.177-.118-3.553-5.032.464-14.628 31.422-25.95\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.674 85.116s-2.34 8.413-8.912 14.447c.652.548 18.586 10.51 22.144 10.056 5.238-.669 6.417-18.968 1.145-20.531-.702-.208-5.901-1.286-8.853-2.167-.87-.26-1.611-1.71-3.545-.936l-1.98-.869zM128.362 85.826s5.318 1.956 7.325 13.734c-.546.274-17.55 12.35-21.829 7.805-6.534-6.94-.766-17.393 4.275-18.61 4.646-1.121 5.03-1.37 10.23-2.929\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.18 94.656s.911 7.41-4.914 13.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.397 94.68s3.124 2.572 10.263 2.572c7.14 0 9.074-3.437 9.074-3.437\",\n stroke: \"#E4EBF7\",\n strokeWidth: \".932\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.184 68.639l-6.781-6.177s-5.355-4.314-9.223-.893c-3.867 3.422 4.463 2.083 5.653 4.165 1.19 2.082.848 1.143-2.083.446-5.603-1.331-2.082.893 2.975 5.355 2.091 1.845 6.992.955 6.992.955l2.467-3.851z\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.282 91.315l-.297-10.937-15.918-.027-.53 10.45c-.026.403.17.788.515.999 2.049 1.251 9.387 5.093 15.799.424.287-.21.443-.554.431-.91\",\n fill: \"#FFB594\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.573 74.24c.817-1.147.982-9.118 1.015-11.928a1.046 1.046 0 0 0-.965-1.055l-4.62-.365c-7.71-1.044-17.071.624-18.253 6.346-5.482 5.813-.421 13.244-.421 13.244s1.963 3.566 4.305 6.791c.756 1.041.398-3.731 3.04-5.929 5.524-4.594 15.899-7.103 15.899-7.103\",\n fill: \"#5C2552\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.426 83.206s2.685 6.202 11.602 6.522c7.82.28 8.973-7.008 7.434-17.505l-.909-5.483c-6.118-2.897-15.478.54-15.478.54s-.576 2.044-.19 5.504c-2.276 2.066-1.824 5.618-1.824 5.618s-.905-1.922-1.98-2.321c-.86-.32-1.897.089-2.322 1.98-1.04 4.632 3.667 5.145 3.667 5.145\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M100.843 77.099l1.701-.928-1.015-4.324.674-1.406\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.546 74.092c-.022.713-.452 1.279-.96 1.263-.51-.016-.904-.607-.882-1.32.021-.713.452-1.278.96-1.263.51.016.904.607.882 1.32M97.592 74.349c-.022.713-.452 1.278-.961 1.263-.509-.016-.904-.607-.882-1.32.022-.713.452-1.279.961-1.263.51.016.904.606.882 1.32\",\n fill: \"#552950\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.132 86.786s5.269 4.957 12.679 2.327\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.776 81.903s-3.592.232-1.44-2.79c1.59-1.496 4.897-.46 4.897-.46s1.156 3.906-3.457 3.25\",\n fill: \"#DB836E\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.88 70.6s2.483.84 3.402.715M93.883 71.975s2.492-1.144 4.778-1.073\",\n stroke: \"#5C2552\",\n strokeWidth: \"1.526\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.32 77.374s.961.879 1.458 2.106c-.377.48-1.033 1.152-.236 1.809M99.337 83.719s1.911.151 2.509-.254\",\n stroke: \"#DB836E\",\n strokeWidth: \"1.145\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M87.782 115.821l15.73-3.012M100.165 115.821l10.04-2.008\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66.508 86.763s-1.598 8.83-6.697 14.078\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.114\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M128.31 87.934s3.013 4.121 4.06 11.785\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.09 84.816s-6.03 9.912-13.607 9.903\",\n stroke: \"#DB836E\",\n strokeWidth: \".795\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.366 65.909l-.142 5.32s5.993 4.472 11.945 9.202c4.482 3.562 8.888 7.455 10.985 8.662 4.804 2.766 8.9 3.355 11.076 1.808 4.071-2.894 4.373-9.878-8.136-15.263-4.271-1.838-16.144-6.36-25.728-9.73\",\n fill: \"#FFC6A0\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M130.532 85.488s4.588 5.757 11.619 6.214\",\n stroke: \"#DB836E\",\n strokeWidth: \".75\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.708 105.73s-.393 8.564-1.34 13.612\",\n stroke: \"#E4EBF7\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M115.784 161.512s-3.57-1.488-2.678-7.14\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.52 290.246s4.326 2.057 7.408 1.03c2.842-.948 4.564.673 7.132 1.186 2.57.514 6.925 1.108 11.772-1.269-.104-5.551-6.939-4.01-12.048-6.763-2.582-1.39-3.812-4.757-3.625-8.863h-9.471s-1.402 10.596-1.169 14.68\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.496 290.073s2.447 1.281 6.809.658c3.081-.44 3.74.485 7.479 1.039 3.739.554 10.802-.07 11.91-.9.415 1.108-.347 2.077-.347 2.077s-1.523.608-4.847.831c-2.045.137-5.843.293-7.663-.507-1.8-1.385-5.286-1.917-5.77-.243-3.947.958-7.41-.288-7.41-.288l-.16-2.667z\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.824 276.19h3.116s-.103 6.751 4.57 8.62c-4.673.624-8.62-2.32-7.686-8.62\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.65 272.52s-2.122 7.47-4.518 12.396c-1.811 3.724-4.255 7.548 5.505 7.548 6.698 0 9.02-.483 7.479-6.648-1.541-6.164.268-13.296.268-13.296H57.65z\",\n fill: \"#CBD1D1\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.54 290.04s2.111 1.178 6.682 1.178c6.128 0 8.31-1.662 8.31-1.662s.605 1.122-.624 2.18c-1 .862-3.624 1.603-7.444 1.559-4.177-.049-5.876-.57-6.786-1.177-.831-.554-.692-1.593-.138-2.078\",\n fill: \"#2B0849\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.533 274.438s.034 1.529-.315 2.95c-.352 1.431-1.087 3.127-1.139 4.17-.058 1.16 4.57 1.592 5.194.035.623-1.559 1.303-6.475 1.927-7.306.622-.831-4.94-2.135-5.667.15\",\n fill: \"#A4AABA\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.885 277.015l13.306.092s1.291-54.228 1.843-64.056c.552-9.828 3.756-43.13.997-62.788l-12.48-.64-22.725.776s-.433 3.944-1.19 9.921c-.062.493-.677.838-.744 1.358-.075.582.42 1.347.318 1.956-2.35 14.003-6.343 32.926-8.697 46.425-.116.663-1.227 1.004-1.45 2.677-.04.3.21 1.516.112 1.785-6.836 18.643-10.89 47.584-14.2 61.551l14.528-.014s2.185-8.524 4.008-16.878c2.796-12.817 22.987-84.553 22.987-84.553l3-.517 1.037 46.1s-.223 1.228.334 2.008c.558.782-.556 1.117-.39 2.233l.39 1.784s-.446 7.14-.892 11.826c-.446 4.685-.092 38.954-.092 38.954\",\n fill: \"#7BB2F9\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.438 220.434c1.146.094 4.016-2.008 6.916-4.91M107.55 223.931s2.758-1.103 6.069-3.862\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.459 220.905s2.759-1.104 6.07-3.863\",\n stroke: \"#648BD8\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.099 223.557s2.608-.587 6.47-3.346M87.33 150.82c-.27 3.088.297 8.478-4.315 9.073M104.829 149.075s.11 13.936-1.286 14.983c-2.207 1.655-2.975 1.934-2.975 1.934M101.014 149.63s.035 12.81-1.19 24.245M94.93 174.965s7.174-1.655 9.38-1.655M75.671 204.754c-.316 1.55-.64 3.067-.973 4.535 0 0-1.45 1.822-1.003 3.756.446 1.934-.943 2.034-4.96 15.273-1.686 5.559-4.464 18.49-6.313 27.447-.078.38-4.018 18.06-4.093 18.423M77.043 196.743a313.269 313.269 0 0 1-.877 4.729M83.908 151.414l-1.19 10.413s-1.091.148-.496 2.23c.111 1.34-2.66 15.692-5.153 30.267M57.58 272.94h13.238\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117.377 147.423s-16.955-3.087-35.7.199c.157 2.501-.002 4.128-.002 4.128s14.607-2.802 35.476-.31c.251-2.342.226-4.017.226-4.017\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.511 150.353l.004-4.885a.807.807 0 0 0-.774-.81c-2.428-.092-5.04-.108-7.795-.014a.814.814 0 0 0-.784.81l-.003 4.88c0 .456.371.82.827.808a140.76 140.76 0 0 1 7.688.017.81.81 0 0 0 .837-.806\",\n fill: \"#FFF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.402 149.426l.002-3.06a.64.64 0 0 0-.616-.643 94.135 94.135 0 0 0-5.834-.009.647.647 0 0 0-.626.643l-.001 3.056c0 .36.291.648.651.64 1.78-.04 3.708-.041 5.762.012.36.009.662-.279.662-.64\",\n fill: \"#192064\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.485 273.933h12.272M102.652 269.075c.006 3.368.04 5.759.11 6.47M102.667 263.125c-.009 1.53-.015 2.98-.016 4.313M102.204 174.024l.893 44.402s.669 1.561-.224 2.677c-.892 1.116 2.455.67.893 2.231-1.562 1.562.893 1.116 0 3.347-.592 1.48-.988 20.987-1.09 34.956\",\n stroke: \"#648BD8\",\n strokeWidth: \"1.051\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n})));\nexport default Unauthorized;","import { genComponentStyleHook, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nconst genBaseStyle = token => {\n const {\n componentCls,\n lineHeightHeading3,\n iconCls,\n padding,\n paddingXL,\n paddingXS,\n paddingLG,\n marginXS,\n lineHeight\n } = token;\n return {\n // Result\n [componentCls]: {\n padding: `${paddingLG * 2}px ${paddingXL}px`,\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n },\n // Exception Status image\n [`${componentCls} ${componentCls}-image`]: {\n width: token.imageWidth,\n height: token.imageHeight,\n margin: 'auto'\n },\n [`${componentCls} ${componentCls}-icon`]: {\n marginBottom: paddingLG,\n textAlign: 'center',\n [`& > ${iconCls}`]: {\n fontSize: token.iconFontSize\n }\n },\n [`${componentCls} ${componentCls}-title`]: {\n color: token.colorTextHeading,\n fontSize: token.titleFontSize,\n lineHeight: lineHeightHeading3,\n marginBlock: marginXS,\n textAlign: 'center'\n },\n [`${componentCls} ${componentCls}-subtitle`]: {\n color: token.colorTextDescription,\n fontSize: token.subtitleFontSize,\n lineHeight,\n textAlign: 'center'\n },\n [`${componentCls} ${componentCls}-content`]: {\n marginTop: paddingLG,\n padding: `${paddingLG}px ${padding * 2.5}px`,\n backgroundColor: token.colorFillAlter\n },\n [`${componentCls} ${componentCls}-extra`]: {\n margin: token.extraMargin,\n textAlign: 'center',\n '& > *': {\n marginInlineEnd: paddingXS,\n '&:last-child': {\n marginInlineEnd: 0\n }\n }\n }\n };\n};\nconst genStatusIconStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-success ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultSuccessIconColor\n },\n [`${componentCls}-error ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultErrorIconColor\n },\n [`${componentCls}-info ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultInfoIconColor\n },\n [`${componentCls}-warning ${componentCls}-icon > ${iconCls}`]: {\n color: token.resultWarningIconColor\n }\n };\n};\nconst genResultStyle = token => [genBaseStyle(token), genStatusIconStyle(token)];\n// ============================== Export ==============================\nconst getStyle = token => genResultStyle(token);\nexport default genComponentStyleHook('Result', token => {\n const resultInfoIconColor = token.colorInfo;\n const resultErrorIconColor = token.colorError;\n const resultSuccessIconColor = token.colorSuccess;\n const resultWarningIconColor = token.colorWarning;\n const resultToken = mergeToken(token, {\n resultInfoIconColor,\n resultErrorIconColor,\n resultSuccessIconColor,\n resultWarningIconColor,\n imageWidth: 250,\n imageHeight: 295\n });\n return [getStyle(resultToken)];\n}, token => ({\n titleFontSize: token.fontSizeHeading3,\n subtitleFontSize: token.fontSize,\n iconFontSize: token.fontSizeHeading3 * 3,\n extraMargin: `${token.paddingLG}px 0 0 0`\n}));","'use client';\n\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport WarningFilled from \"@ant-design/icons/es/icons/WarningFilled\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport noFound from './noFound';\nimport serverError from './serverError';\nimport unauthorized from './unauthorized';\nimport useStyle from './style';\nexport const IconMap = {\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n info: ExclamationCircleFilled,\n warning: WarningFilled\n};\nexport const ExceptionMap = {\n '404': noFound,\n '500': serverError,\n '403': unauthorized\n};\n// ExceptionImageMap keys\nconst ExceptionStatus = Object.keys(ExceptionMap);\nconst Icon = _ref => {\n let {\n prefixCls,\n icon,\n status\n } = _ref;\n const className = classNames(`${prefixCls}-icon`);\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'Result', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n if (ExceptionStatus.includes(`${status}`)) {\n const SVGComponent = ExceptionMap[status];\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${className} ${prefixCls}-image`\n }, /*#__PURE__*/React.createElement(SVGComponent, null));\n }\n const iconNode = /*#__PURE__*/React.createElement(IconMap[status]);\n if (icon === null || icon === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, icon || iconNode);\n};\nconst Extra = _ref2 => {\n let {\n prefixCls,\n extra\n } = _ref2;\n if (!extra) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-extra`\n }, extra);\n};\nconst Result = _ref3 => {\n let {\n prefixCls: customizePrefixCls,\n className: customizeClassName,\n rootClassName,\n subTitle,\n title,\n style,\n children,\n status = 'info',\n icon,\n extra\n } = _ref3;\n const {\n getPrefixCls,\n direction,\n result\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('result', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const className = classNames(prefixCls, `${prefixCls}-${status}`, customizeClassName, result === null || result === void 0 ? void 0 : result.className, rootClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, hashId);\n const mergedStyle = Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Icon, {\n prefixCls: prefixCls,\n status: status,\n icon: icon\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), subTitle && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-subtitle`\n }, subTitle), /*#__PURE__*/React.createElement(Extra, {\n prefixCls: prefixCls,\n extra: extra\n }), children && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-content`\n }, children)));\n};\nResult.PRESENTED_IMAGE_403 = ExceptionMap['403'];\nResult.PRESENTED_IMAGE_404 = ExceptionMap['404'];\nResult.PRESENTED_IMAGE_500 = ExceptionMap['500'];\nif (process.env.NODE_ENV !== 'production') {\n Result.displayName = 'Result';\n}\nexport default Result;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Result } from 'antd';\nimport React from 'react';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inherits(ErrorBoundary, _React$Component);\n var _super = _createSuper(ErrorBoundary);\n function ErrorBoundary() {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n hasError: false,\n errorInfo: ''\n });\n return _this;\n }\n _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return /*#__PURE__*/_jsx(Result, {\n status: \"error\",\n title: \"Something went wrong.\",\n extra: this.state.errorInfo\n });\n }\n return this.props.children;\n }\n }], [{\n key: \"getDerivedStateFromError\",\n value: function getDerivedStateFromError(error) {\n return {\n hasError: true,\n errorInfo: error.message\n };\n }\n }]);\n return ErrorBoundary;\n}(React.Component);\nexport { ErrorBoundary };","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","export const toAbsoluteUrl = (pathname: string) => process.env.PUBLIC_URL + pathname\n","export function getCurrentUrl(pathname: string) {\n return pathname.split(/[?#]/)[0]\n}\n\nexport function checkIsActive(pathname: string, url: string) {\n const current = getCurrentUrl(pathname)\n if (!current || !url) {\n return false\n }\n\n if (current === url) {\n return true\n }\n\n if (current.indexOf(url) > -1) {\n return true\n }\n\n return false\n}\n","export const styleToObject = (input: string): Record<string, any> => {\n const attributes = input.split(/ ?; ?/);\n\n return attributes.reduce((acc: Record<string, any>, d: string) => {\n const [key, value] = d.split(/ ?: ?/);\n\n if (key && value) {\n acc[key.replace(/-(\\w)/g, (_$0, $1) => $1.toUpperCase())] = Number.isNaN(Number(value))\n ? value\n : Number(value);\n }\n\n return acc;\n }, {});\n};\n\n/* istanbul ignore next */\nexport function randomString(length = 6): string {\n const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n let result = '';\n\n for (let index = length; index > 0; --index) {\n result += characters[Math.round(Math.random() * (characters.length - 1))];\n }\n\n return result;\n}\n\nexport const noTextChildNodes = [\n 'br',\n 'col',\n 'colgroup',\n 'dl',\n 'hr',\n 'iframe',\n 'img',\n 'input',\n 'link',\n 'menuitem',\n 'meta',\n 'ol',\n 'param',\n 'select',\n 'table',\n 'tbody',\n 'tfoot',\n 'thead',\n 'tr',\n 'ul',\n 'wbr',\n];\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// Taken from https://raw.githubusercontent.com/facebook/react/baff5cc2f69d30589a5dc65b089e47765437294b/packages/react-dom/src/shared/possibleStandardNames.js\n// tslint:disable:object-literal-sort-keys\nexport const possibleStandardNames: Record<string, any> = {\n // HTML\n 'accept-charset': 'acceptCharset',\n acceptcharset: 'acceptCharset',\n accesskey: 'accessKey',\n allowfullscreen: 'allowFullScreen',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n charset: 'charSet',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n colspan: 'colSpan',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controlslist: 'controlsList',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n datetime: 'dateTime',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n enctype: 'encType',\n for: 'htmlFor',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n maxlength: 'maxLength',\n mediagroup: 'mediaGroup',\n minlength: 'minLength',\n nomodule: 'noModule',\n novalidate: 'noValidate',\n playsinline: 'playsInline',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rowspan: 'rowSpan',\n spellcheck: 'spellCheck',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n tabindex: 'tabIndex',\n typemustmatch: 'typeMustMatch',\n usemap: 'useMap',\n\n // SVG\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n diffuseconstant: 'diffuseConstant',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n edgemode: 'edgeMode',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n externalresourcesrequired: 'externalResourcesRequired',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan',\n\n // event handlers\n onblur: 'onBlur',\n onchange: 'onChange',\n onclick: 'onClick',\n oncontextmenu: 'onContextMenu',\n ondoubleclick: 'onDoubleClick',\n ondrag: 'onDrag',\n ondragend: 'onDragEnd',\n ondragenter: 'onDragEnter',\n ondragexit: 'onDragExit',\n ondragleave: 'onDragLeave',\n ondragover: 'onDragOver',\n ondragstart: 'onDragStart',\n ondrop: 'onDrop',\n onerror: 'onError',\n onfocus: 'onFocus',\n oninput: 'onInput',\n oninvalid: 'onInvalid',\n onkeydown: 'onKeyDown',\n onkeypress: 'onKeyPress',\n onkeyup: 'onKeyUp',\n onload: 'onLoad',\n onmousedown: 'onMouseDown',\n onmouseenter: 'onMouseEnter',\n onmouseleave: 'onMouseLeave',\n onmousemove: 'onMouseMove',\n onmouseout: 'onMouseOut',\n onmouseover: 'onMouseOver',\n onmouseup: 'onMouseUp',\n onscroll: 'onScroll',\n onsubmit: 'onSubmit',\n ontouchcancel: 'onTouchCancel',\n ontouchend: 'onTouchEnd',\n ontouchmove: 'onTouchMove',\n ontouchstart: 'onTouchStart',\n onwheel: 'onWheel',\n};\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport * as React from 'react';\n\nimport { noTextChildNodes, possibleStandardNames, randomString, styleToObject } from './helpers';\n\nexport interface Options {\n actions?: Action[];\n index?: number;\n level?: number;\n nodeOnly?: boolean;\n randomKey?: boolean;\n selector?: string;\n type?: string;\n}\n\ninterface Attributes {\n [index: string]: any;\n\n key: string;\n}\n\nexport interface Action {\n // If this returns true, the two following functions are called if they are defined\n condition: (node: Node, key: string, level: number) => boolean;\n\n // Use this to inject a component or remove the node\n // It must return something that can be rendered by React\n post?: (node: Node, key: string, level: number) => React.ReactNode;\n\n // Use this to update or replace the node\n // e.g. for removing or adding attributes, changing the node type\n pre?: (node: Node, key: string, level: number) => Node;\n}\n\nfunction parseAttributes(node: Node, reactKey: string): Attributes {\n const attributes: Attributes = {\n key: reactKey,\n };\n\n /* istanbul ignore else */\n if (node instanceof Element) {\n const nodeClassNames = node.getAttribute('class');\n\n if (nodeClassNames) {\n attributes.className = nodeClassNames;\n }\n\n [...node.attributes].forEach(d => {\n switch (d.name) {\n // this is manually handled above, so break;\n case 'class':\n break;\n case 'style':\n attributes[d.name] = styleToObject(d.value);\n break;\n case 'allowfullscreen':\n case 'allowpaymentrequest':\n case 'async':\n case 'autofocus':\n case 'autoplay':\n case 'checked':\n case 'controls':\n case 'default':\n case 'defer':\n case 'disabled':\n case 'formnovalidate':\n case 'hidden':\n case 'ismap':\n case 'itemscope':\n case 'loop':\n case 'multiple':\n case 'muted':\n case 'nomodule':\n case 'novalidate':\n case 'open':\n case 'readonly':\n case 'required':\n case 'reversed':\n case 'selected':\n case 'typemustmatch':\n attributes[possibleStandardNames[d.name] || d.name] = true;\n break;\n default:\n attributes[possibleStandardNames[d.name] || d.name] = d.value;\n }\n });\n }\n\n return attributes;\n}\n\nfunction parseChildren(childNodeList: NodeList, level: number, options: Options) {\n const children: React.ReactNode[] = [...childNodeList]\n .map((node, index) =>\n convertFromNode(node, {\n ...options,\n index,\n level: level + 1,\n }),\n )\n .filter(Boolean);\n\n if (!children.length) {\n return null;\n }\n\n return children;\n}\n\nfunction parseName(nodeName: string) {\n if (/[a-z]+[A-Z]+[a-z]+/.test(nodeName)) {\n return nodeName;\n }\n\n return nodeName.toLowerCase();\n}\n\nexport function convertFromNode(input: Node, options: Options = {}): React.ReactNode {\n if (!input || !(input instanceof Node)) {\n return null;\n }\n\n const { actions = [], index = 0, level = 0, randomKey } = options;\n\n let node = input;\n let key = `${level}-${index}`;\n const result: React.ReactNode[] = [];\n\n if (randomKey && level === 0) {\n key = `${randomString()}-${key}`;\n }\n\n /* istanbul ignore else */\n if (Array.isArray(actions)) {\n actions.forEach((action: Action) => {\n if (action.condition(node, key, level)) {\n if (typeof action.pre === 'function') {\n node = action.pre(node, key, level);\n\n if (!(node instanceof Node)) {\n node = input;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n 'The `pre` method always must return a valid DomNode (instanceof Node) - your modification will be ignored (Hint: if you want to render a React-component, use the `post` method instead)',\n );\n }\n }\n }\n\n if (typeof action.post === 'function') {\n result.push(action.post(node, key, level));\n }\n }\n });\n }\n\n if (result.length) {\n return result;\n }\n\n switch (node.nodeType) {\n case 1: {\n // regular dom-node\n return React.createElement(\n parseName(node.nodeName),\n parseAttributes(node, key),\n parseChildren(node.childNodes, level, options),\n );\n }\n case 3: {\n // textnode\n const nodeText = node.nodeValue?.toString() || '';\n\n /* istanbul ignore else */\n if (/^\\s+$/.test(nodeText) && !/[\\u00A0\\u202F]/.test(nodeText)) {\n return null;\n }\n\n /* istanbul ignore next */\n if (!node.parentNode) {\n return nodeText;\n }\n\n const parentNodeName = node.parentNode.nodeName.toLowerCase();\n\n if (noTextChildNodes.includes(parentNodeName)) {\n /* istanbul ignore else */\n if (/\\S/.test(nodeText)) {\n // eslint-disable-next-line no-console\n console.warn(\n `A textNode is not allowed inside '${parentNodeName}'. Your text \"${nodeText}\" will be ignored`,\n );\n }\n\n return null;\n }\n\n return nodeText;\n }\n case 8: {\n // html-comment\n return null;\n }\n /* istanbul ignore next */\n default: {\n return null;\n }\n }\n}\n\nexport function convertFromString(input: string, options: Options = {}): React.ReactNode | Node {\n if (!input || typeof input !== 'string') {\n return null;\n }\n\n const { nodeOnly = false, selector = 'body > *', type = 'text/html' } = options;\n\n try {\n const parser = new DOMParser();\n const document = parser.parseFromString(input, type as DOMParserSupportedType);\n const node = document.querySelector(selector);\n\n if (!(node instanceof Node)) {\n throw new TypeError('Error parsing input');\n }\n\n if (nodeOnly) {\n return node;\n }\n\n return convertFromNode(node, options);\n } catch (error) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n\n return null;\n}\n\nexport default function convert(\n input: Node | string,\n options: Options = {},\n): React.ReactNode | Node {\n if (typeof input === 'string') {\n return convertFromString(input, options);\n }\n\n if (input instanceof Node) {\n return convertFromNode(input, options);\n }\n\n return null;\n}\n","import { canUseDOM as canUseDOMFlag } from 'exenv';\n\nimport { PlainObject } from './types';\n\nexport const STATUS = {\n FAILED: 'failed',\n LOADED: 'loaded',\n LOADING: 'loading',\n PENDING: 'pending',\n READY: 'ready',\n UNSUPPORTED: 'unsupported',\n};\n\nexport function canUseDOM(): boolean {\n return canUseDOMFlag;\n}\n\nexport function isSupportedEnvironment(): boolean {\n return supportsInlineSVG() && typeof window !== 'undefined' && window !== null;\n}\n\nexport function supportsInlineSVG(): boolean {\n /* istanbul ignore next */\n if (!document) {\n return false;\n }\n\n const div = document.createElement('div');\n\n div.innerHTML = '<svg />';\n const svg = div.firstChild as SVGSVGElement;\n\n return !!svg && svg.namespaceURI === 'http://www.w3.org/2000/svg';\n}\n\nfunction randomCharacter(character: string) {\n return character[Math.floor(Math.random() * character.length)];\n}\n\nexport function randomString(length: number): string {\n const letters = 'abcdefghijklmnopqrstuvwxyz';\n const numbers = '1234567890';\n const charset = `${letters}${letters.toUpperCase()}${numbers}`;\n\n let R = '';\n\n for (let index = 0; index < length; index++) {\n R += randomCharacter(charset);\n }\n\n return R;\n}\n\n/**\n * Remove properties from an object\n */\nexport function omit<T extends PlainObject, K extends keyof T>(\n input: T,\n ...filter: K[]\n): Omit<T, K> {\n const output: any = {};\n\n for (const key in input) {\n /* istanbul ignore else */\n if ({}.hasOwnProperty.call(input, key)) {\n if (!filter.includes(key as unknown as K)) {\n output[key] = input[key];\n }\n }\n }\n\n return output as Omit<T, K>;\n}\n","import * as React from 'react';\nimport convert from 'react-from-dom';\n\nimport { canUseDOM, isSupportedEnvironment, omit, randomString, STATUS } from './helpers';\nimport { FetchError, Props, State, StorageItem } from './types';\n\nexport const cacheStore: { [key: string]: StorageItem } = Object.create(null);\n\nexport default class InlineSVG extends React.PureComponent<Props, State> {\n private isActive = false;\n private readonly hash: string;\n\n public static defaultProps = {\n cacheRequests: true,\n uniquifyIDs: false,\n };\n\n constructor(props: Props) {\n super(props);\n\n this.state = {\n content: '',\n element: null,\n hasCache: !!props.cacheRequests && !!cacheStore[props.src],\n status: STATUS.PENDING,\n };\n\n this.hash = props.uniqueHash || randomString(8);\n }\n\n public componentDidMount(): void {\n this.isActive = true;\n\n if (!canUseDOM()) {\n return;\n }\n\n const { status } = this.state;\n const { src } = this.props;\n\n try {\n /* istanbul ignore else */\n if (status === STATUS.PENDING) {\n /* istanbul ignore else */\n if (!isSupportedEnvironment()) {\n throw new Error('Browser does not support SVG');\n }\n\n /* istanbul ignore else */\n if (!src) {\n throw new Error('Missing src');\n }\n\n this.load();\n }\n } catch (error: any) {\n this.handleError(error);\n }\n }\n\n public componentDidUpdate(previousProps: Props, previousState: State): void {\n if (!canUseDOM()) {\n return;\n }\n\n const { hasCache, status } = this.state;\n const { onLoad, src } = this.props;\n\n if (previousState.status !== STATUS.READY && status === STATUS.READY) {\n /* istanbul ignore else */\n if (onLoad) {\n onLoad(src, hasCache);\n }\n }\n\n if (previousProps.src !== src) {\n if (!src) {\n this.handleError(new Error('Missing src'));\n\n return;\n }\n\n this.load();\n }\n }\n\n public componentWillUnmount(): void {\n this.isActive = false;\n }\n\n private getNode() {\n const { description, title } = this.props;\n\n try {\n const svgText = this.processSVG();\n const node = convert(svgText, { nodeOnly: true });\n\n if (!node || !(node instanceof SVGSVGElement)) {\n throw new Error('Could not convert the src to a DOM Node');\n }\n\n const svg = this.updateSVGAttributes(node);\n\n if (description) {\n const originalDesc = svg.querySelector('desc');\n\n if (originalDesc && originalDesc.parentNode) {\n originalDesc.parentNode.removeChild(originalDesc);\n }\n\n const descElement = document.createElement('desc');\n\n descElement.innerHTML = description;\n svg.prepend(descElement);\n }\n\n if (title) {\n const originalTitle = svg.querySelector('title');\n\n if (originalTitle && originalTitle.parentNode) {\n originalTitle.parentNode.removeChild(originalTitle);\n }\n\n const titleElement = document.createElement('title');\n\n titleElement.innerHTML = title;\n svg.prepend(titleElement);\n }\n\n return svg;\n } catch (error: any) {\n return this.handleError(error);\n }\n }\n\n private getElement() {\n try {\n const node = this.getNode() as Node;\n const element = convert(node);\n\n if (!element || !React.isValidElement(element)) {\n throw new Error('Could not convert the src to a React element');\n }\n\n this.setState({\n element,\n status: STATUS.READY,\n });\n } catch (error: any) {\n this.handleError(new Error(error.message));\n }\n }\n\n private handleLoad = (content: string) => {\n /* istanbul ignore else */\n if (this.isActive) {\n this.setState(\n {\n content,\n status: STATUS.LOADED,\n },\n this.getElement,\n );\n }\n };\n\n private handleError = (error: Error | FetchError) => {\n const { onError } = this.props;\n const status =\n error.message === 'Browser does not support SVG' ? STATUS.UNSUPPORTED : STATUS.FAILED;\n\n /* istanbul ignore else */\n if (this.isActive) {\n this.setState({ status }, () => {\n /* istanbul ignore else */\n if (typeof onError === 'function') {\n onError(error);\n }\n });\n }\n };\n\n private request = () => {\n const { cacheRequests, fetchOptions, src } = this.props;\n\n try {\n if (cacheRequests) {\n cacheStore[src] = { content: '', status: STATUS.LOADING };\n }\n\n return fetch(src, fetchOptions)\n .then(response => {\n const contentType = response.headers.get('content-type');\n const [fileType] = (contentType || '').split(/ ?; ?/);\n\n if (response.status > 299) {\n throw new Error('Not found');\n }\n\n if (!['image/svg+xml', 'text/plain'].some(d => fileType.includes(d))) {\n throw new Error(`Content type isn't valid: ${fileType}`);\n }\n\n return response.text();\n })\n .then(content => {\n const { src: currentSrc } = this.props;\n\n // the current src don't match the previous one, skipping...\n if (src !== currentSrc) {\n if (cacheStore[src].status === STATUS.LOADING) {\n delete cacheStore[src];\n }\n\n return;\n }\n\n this.handleLoad(content);\n\n /* istanbul ignore else */\n if (cacheRequests) {\n const cache = cacheStore[src];\n\n /* istanbul ignore else */\n if (cache) {\n cache.content = content;\n cache.status = STATUS.LOADED;\n }\n }\n })\n .catch(error => {\n this.handleError(error);\n\n /* istanbul ignore else */\n if (cacheRequests) {\n const cache = cacheStore[src];\n\n /* istanbul ignore else */\n if (cache) {\n delete cacheStore[src];\n }\n }\n });\n } catch (error: any) {\n return this.handleError(new Error(error.message));\n }\n };\n\n private load() {\n /* istanbul ignore else */\n if (this.isActive) {\n this.setState(\n {\n content: '',\n element: null,\n status: STATUS.LOADING,\n },\n () => {\n const { cacheRequests, src } = this.props;\n const cache = cacheRequests && cacheStore[src];\n\n if (cache && cache.status === STATUS.LOADED) {\n this.handleLoad(cache.content);\n\n return;\n }\n\n const dataURI = src.match(/data:image\\/svg[^,]*?(;base64)?,(.*)/);\n let inlineSrc;\n\n if (dataURI) {\n inlineSrc = dataURI[1] ? window.atob(dataURI[2]) : decodeURIComponent(dataURI[2]);\n } else if (src.includes('<svg')) {\n inlineSrc = src;\n }\n\n if (inlineSrc) {\n this.handleLoad(inlineSrc);\n\n return;\n }\n\n this.request();\n },\n );\n }\n }\n\n private updateSVGAttributes(node: SVGSVGElement): SVGSVGElement {\n const { baseURL = '', uniquifyIDs } = this.props;\n const replaceableAttributes = ['id', 'href', 'xlink:href', 'xlink:role', 'xlink:arcrole'];\n const linkAttributes = ['href', 'xlink:href'];\n const isDataValue = (name: string, value: string) =>\n linkAttributes.includes(name) && (value ? !value.includes('#') : false);\n\n if (!uniquifyIDs) {\n return node;\n }\n\n [...node.children].map(d => {\n if (d.attributes && d.attributes.length) {\n const attributes = Object.values(d.attributes).map(a => {\n const attribute = a;\n const match = a.value.match(/url\\((.*?)\\)/);\n\n if (match && match[1]) {\n attribute.value = a.value.replace(match[0], `url(${baseURL}${match[1]}__${this.hash})`);\n }\n\n return attribute;\n });\n\n replaceableAttributes.forEach(r => {\n const attribute = attributes.find(a => a.name === r);\n\n if (attribute && !isDataValue(r, attribute.value)) {\n attribute.value = `${attribute.value}__${this.hash}`;\n }\n });\n }\n\n if (d.children.length) {\n return this.updateSVGAttributes(d as SVGSVGElement);\n }\n\n return d;\n });\n\n return node;\n }\n\n private processSVG() {\n const { content } = this.state;\n const { preProcessor } = this.props;\n\n if (preProcessor) {\n return preProcessor(content);\n }\n\n return content;\n }\n\n public render(): React.ReactNode {\n const { element, status } = this.state;\n const { children = null, innerRef, loader = null } = this.props;\n const elementProps = omit(\n this.props,\n 'baseURL',\n 'cacheRequests',\n 'children',\n 'description',\n 'fetchOptions',\n 'innerRef',\n 'loader',\n 'onError',\n 'onLoad',\n 'preProcessor',\n 'src',\n 'title',\n 'uniqueHash',\n 'uniquifyIDs',\n );\n\n if (!canUseDOM()) {\n return loader;\n }\n\n if (element) {\n return React.cloneElement(element as React.ReactElement, { ref: innerRef, ...elementProps });\n }\n\n if ([STATUS.UNSUPPORTED, STATUS.FAILED].includes(status)) {\n return children;\n }\n\n return loader;\n }\n}\n\nexport * from './types';\n","import React from 'react'\nimport SVG from 'react-inlinesvg'\nimport {toAbsoluteUrl} from '../AssetHelpers'\ntype Props = {\n className?: string\n path: string\n svgClassName?: string\n}\n\nconst KTSVG: React.FC<Props> = ({className = '', path, svgClassName = 'mh-50px'}) => {\n return (\n <span className={`svg-icon ${className}`}>\n <SVG src={toAbsoluteUrl(path)} className={svgClassName} />\n </span>\n )\n}\n\nexport {KTSVG}\n","import {ILayout} from './LayoutModels'\n\nexport const DefaultLayoutConfig: ILayout = {\n main: {\n type: 'default',\n primaryColor: '#009EF7',\n darkSkinEnabled: true,\n },\n loader: {\n display: true,\n type: 'default', // Set default|spinner-message|spinner-logo to hide or show page loader\n },\n scrolltop: {\n display: false,\n },\n header: {\n display: true, // Set true|false to show or hide Header\n width: 'fluid', // Set fixed|fluid to change width type\n left: 'menu',\n fixed: {\n desktop: true, // Set true|false to set fixed Header for desktop mode\n tabletAndMobile: true, // Set true|false to set fixed Header for tablet and mobile modes\n },\n menuIcon: 'svg',\n },\n megaMenu: {\n display: false, // Set true|false to show or hide Mega Menu\n },\n aside: {\n display: false,\n theme: 'dark',\n menu: 'main',\n fixed: false,\n minimized: true,\n minimize: true,\n hoverable: true,\n menuIcon: 'svg',\n },\n content: {\n width: 'fluid', // Set fixed|fluid to change width\n layout: 'default',\n },\n toolbar: {\n display: true, // Display toolbar\n width: 'fluid', // Set fixed|fluid to change width type,\n fixed: {\n desktop: true,\n tabletAndMobileMode: true,\n },\n layout: 'toolbar1',\n layouts: {\n toolbar1: {\n height: '55px',\n heightAndTabletMobileMode: '55px',\n },\n toolbar2: {\n height: '75px',\n heightAndTabletMobileMode: '65px',\n },\n toolbar3: {\n height: '55px',\n heightAndTabletMobileMode: '55px',\n },\n toolbar4: {\n height: '65px',\n heightAndTabletMobileMode: '65px',\n },\n toolbar5: {\n height: '75px',\n heightAndTabletMobileMode: '65px',\n },\n },\n },\n footer: {\n width: 'fluid', // Set fixed|fluid to change width type\n },\n pageTitle: {\n display: true,\n breadCrumbs: true,\n description: false,\n layout: 'default',\n direction: 'row',\n responsive: true,\n responsiveBreakpoint: 'lg',\n responsiveTarget: '#kt_toolbar_container',\n },\n}\n","import {\n IAside,\n IContent,\n IFooter,\n IHeader,\n IToolbar,\n ILayout,\n ILayoutCSSClasses,\n ILayoutHTMLAttributes,\n ILayoutCSSVariables,\n IPageTitle,\n} from './LayoutModels'\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\n\nconst LAYOUT_CONFIG_KEY = process.env.REACT_APP_BASE_LAYOUT_CONFIG_KEY || 'LayoutConfig'\n\nexport function getLayout(): ILayout {\n const ls = localStorage.getItem(LAYOUT_CONFIG_KEY)\n if (ls) {\n try {\n return JSON.parse(ls) as ILayout\n } catch (er) {\n console.error(er)\n }\n }\n return DefaultLayoutConfig\n}\n\nfunction setLayout(config: ILayout): void {\n try {\n localStorage.setItem(LAYOUT_CONFIG_KEY, JSON.stringify(config))\n } catch (er) {\n console.error(er)\n }\n}\n\nexport function getEmptyCssClasses() {\n return {\n header: [],\n headerContainer: [],\n headerMobile: [],\n headerMenu: [],\n aside: [],\n asideMenu: [],\n asideToggle: [],\n toolbar: [],\n toolbarContainer: [],\n content: [],\n contentContainer: [],\n footerContainer: [],\n sidebar: [],\n pageTitle: [],\n }\n}\n\nexport function getEmptyHTMLAttributes() {\n return {\n asideMenu: new Map(),\n headerMobile: new Map(),\n headerMenu: new Map(),\n headerContainer: new Map(),\n pageTitle: new Map(),\n }\n}\n\nexport function getEmptyCSSVariables() {\n return {\n body: new Map(),\n }\n}\n\nexport class LayoutSetup {\n public static isLoaded: boolean = false\n public static config: ILayout = getLayout()\n public static classes: ILayoutCSSClasses = getEmptyCssClasses()\n public static attributes: ILayoutHTMLAttributes = getEmptyHTMLAttributes()\n public static cssVariables: ILayoutCSSVariables = getEmptyCSSVariables()\n\n private static initCSSClasses(): void {\n LayoutSetup.classes = getEmptyCssClasses()\n }\n\n private static initHTMLAttributes(): void {\n LayoutSetup.attributes = Object.assign({}, getEmptyHTMLAttributes())\n }\n\n private static initCSSVariables(): void {\n LayoutSetup.cssVariables = getEmptyCSSVariables()\n }\n\n private static initLayout(config: ILayout): void {\n Array.from(document.body.attributes).forEach((attr) => {\n document.body.removeAttribute(attr.name)\n })\n document.body.setAttribute('style', '')\n document.body.setAttribute('id', 'kt_body')\n if (config.main?.body?.backgroundImage) {\n document.body.style.backgroundImage = `url('${config.main.body.backgroundImage}')`\n }\n\n if (config.main?.body?.class) {\n document.body.classList.add(config.main.body.class)\n }\n\n // if (config.loader.display) {\n // document.body.classList.add('page-loading')\n // document.body.classList.add('page-loading-enabled')\n // }\n }\n\n private static initHeader(config: IHeader): void {\n LayoutSetup.classes.headerContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n\n if (config.fixed.desktop) {\n document.body.classList.add('header-fixed')\n }\n\n if (config.fixed.tabletAndMobile) {\n document.body.classList.add('header-tablet-and-mobile-fixed')\n }\n }\n\n private static initToolbar(config: IToolbar): void {\n if (!config.display) {\n return\n }\n\n document.body.classList.add('toolbar-enabled')\n LayoutSetup.classes.toolbarContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n\n if (config.fixed.desktop) {\n document.body.classList.add('toolbar-fixed')\n }\n\n if (config.fixed.tabletAndMobileMode) {\n document.body.classList.add('toolbar-tablet-and-mobile-fixed')\n }\n\n // Height setup\n const type = config.layout\n const typeOptions = config.layouts[type]\n if (typeOptions) {\n let bodyStyles: string = ''\n if (typeOptions.height) {\n bodyStyles += ` --kt-toolbar-height: ${typeOptions.height};`\n }\n\n if (typeOptions.heightAndTabletMobileMode) {\n bodyStyles += ` --kt-toolbar-height-tablet-and-mobile: ${typeOptions.heightAndTabletMobileMode};`\n }\n document.body.setAttribute('style', bodyStyles)\n }\n }\n\n private static initPageTitle(config: IPageTitle): void {\n if (!config.display) {\n return\n }\n\n if (config.direction === 'column') {\n this.classes.pageTitle.push('flex-column')\n this.classes.pageTitle.push('align-items-start')\n } else {\n this.classes.pageTitle.push('align-items-center')\n this.classes.pageTitle.push('flex-wrap')\n }\n this.classes.pageTitle.push('me-3')\n\n if (config.responsive) {\n this.classes.pageTitle.push('mb-5')\n this.classes.pageTitle.push('mb-lg-0')\n\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper', true)\n LayoutSetup.attributes.pageTitle.set('data-kt-swapper-mode', 'prepend')\n LayoutSetup.attributes.pageTitle.set(\n 'data-kt-swapper-parent',\n `{ default: '#kt_content_container', '${config.responsiveBreakpoint}': '${config.responsiveTarget}'}`\n )\n }\n }\n\n private static initContent(config: IContent): void {\n LayoutSetup.classes.contentContainer.push(\n config.width === 'fluid' ? 'container-fluid' : 'container'\n )\n // if (Theme::getOption('layout', 'content/container-class')) {\n // \tTheme::addHtmlClass('content-container', Theme::getOption('layout', 'content/container-class'));\n // }\n }\n\n private static initAside(config: IAside): void {\n // Check if aside is displayed\n if (!config.display) {\n return\n }\n\n // Enable Aside\n document.body.classList.add('aside-enabled')\n LayoutSetup.classes.aside.push(`aside-${config.theme}`)\n\n // Fixed Aside\n if (config.fixed) {\n document.body.classList.add('aside-fixed')\n }\n\n // Default minimized\n if (config.minimized) {\n document.body.setAttribute('data-kt-aside-minimize', 'on')\n }\n\n // Hoverable on minimize\n if (config.hoverable) {\n LayoutSetup.classes.aside.push('aside-hoverable')\n }\n }\n\n private static initAsideMenu(config: IAside): void {\n // if (Theme::getOption('layout', 'aside/menu') === 'documentation') {\n // \tself::$menu = new Menu( Theme::getOption('menu', 'documentation'), Theme::getPagePath() );\n // } else {\n // \tself::$menu = new Menu( Theme::getOption('menu', 'main'), Theme::getPagePath() );\n // }\n // if (Theme::getOption('layout', 'aside/menu-icons-display') === false) {\n // \tself::$menu->displayIcons(false);\n // }\n // self::$menu->setIconType(Theme::getOption('layout', 'aside/menu-icon'));\n }\n\n // private static initSidebar(sidebarConfig: ISidebarConfig): void {\n // // / Set Sidebar enabled class\n // if (sidebarConfig.display) {\n // document.body.classList.add('sidebar-enabled')\n // } else {\n // return\n // }\n\n // // Set Sidebar shown status\n // if (sidebarConfig.shown) {\n // document.body.setAttribute('data-sidebar', 'on')\n // }\n\n // // Set Sidebar background color class\n // ThemeSetup.classes.sidebar.push(sidebarConfig.bgColor)\n // }\n\n private static initFooter(config: IFooter): void {\n LayoutSetup.classes.footerContainer.push(`container${config.width === 'fluid' ? '-fluid' : ''}`)\n }\n\n private static initConfig(config: ILayout): void {\n if (config.main?.darkSkinEnabled) {\n document.body.classList.add('dark-skin')\n }\n\n // Init layout\n LayoutSetup.initLayout(config)\n if (config.main?.type !== 'default') {\n return\n }\n\n LayoutSetup.initHeader(config.header)\n LayoutSetup.initPageTitle(config.pageTitle as IPageTitle)\n LayoutSetup.initToolbar(config.toolbar)\n LayoutSetup.initContent(config.content)\n LayoutSetup.initAside(config.aside)\n LayoutSetup.initFooter(config.footer)\n LayoutSetup.initAsideMenu(config.aside)\n }\n\n public static updatePartialConfig(fieldsToUpdate: Partial<ILayout>): ILayout {\n const config = LayoutSetup.config\n const updatedConfig = {...config, ...fieldsToUpdate}\n LayoutSetup.initCSSClasses()\n LayoutSetup.initCSSVariables()\n LayoutSetup.initHTMLAttributes()\n LayoutSetup.isLoaded = false\n LayoutSetup.config = updatedConfig\n LayoutSetup.initConfig(Object.assign({}, updatedConfig))\n LayoutSetup.isLoaded = true // remove loading there\n return updatedConfig\n }\n\n public static setConfig(config: ILayout): void {\n setLayout(config)\n }\n\n public static bootstrap = (() => {\n LayoutSetup.updatePartialConfig(LayoutSetup.config)\n })()\n}\n","import {FC, createContext, useContext, useState, useEffect} from 'react'\nimport {DefaultLayoutConfig} from './DefaultLayoutConfig'\nimport {\n getEmptyCssClasses,\n getEmptyCSSVariables,\n getEmptyHTMLAttributes,\n LayoutSetup,\n} from './LayoutSetup'\nimport {\n ILayout,\n ILayoutCSSVariables,\n ILayoutCSSClasses,\n ILayoutHTMLAttributes,\n} from './LayoutModels'\nimport {WithChildren} from '../../helpers'\n\nexport interface LayoutContextModel {\n config: ILayout\n classes: ILayoutCSSClasses\n attributes: ILayoutHTMLAttributes\n cssVariables: ILayoutCSSVariables\n setLayout: (config: LayoutSetup) => void\n}\n\nconst LayoutContext = createContext<LayoutContextModel>({\n config: DefaultLayoutConfig,\n classes: getEmptyCssClasses(),\n attributes: getEmptyHTMLAttributes(),\n cssVariables: getEmptyCSSVariables(),\n setLayout: (config: LayoutSetup) => {},\n})\n\nconst enableSplashScreen = () => {\n const splashScreen = document.getElementById('splash-screen')\n if (splashScreen) {\n splashScreen.style.setProperty('display', 'flex')\n }\n}\n\nconst disableSplashScreen = () => {\n const splashScreen = document.getElementById('splash-screen')\n if (splashScreen) {\n splashScreen.style.setProperty('display', 'none')\n }\n}\n\nconst LayoutProvider: FC<WithChildren> = ({children}) => {\n const [config, setConfig] = useState(LayoutSetup.config)\n const [classes, setClasses] = useState(LayoutSetup.classes)\n const [attributes, setAttributes] = useState(LayoutSetup.attributes)\n const [cssVariables, setCSSVariables] = useState(LayoutSetup.cssVariables)\n const setLayout = (_themeConfig: Partial<ILayout>) => {\n enableSplashScreen()\n const bodyClasses = Array.from(document.body.classList)\n bodyClasses.forEach((cl) => document.body.classList.remove(cl))\n LayoutSetup.updatePartialConfig(_themeConfig)\n setConfig(Object.assign({}, LayoutSetup.config))\n setClasses(LayoutSetup.classes)\n setAttributes(LayoutSetup.attributes)\n setCSSVariables(LayoutSetup.cssVariables)\n setTimeout(() => {\n disableSplashScreen()\n }, 500)\n }\n const value: LayoutContextModel = {\n config,\n classes,\n attributes,\n cssVariables,\n setLayout,\n }\n\n useEffect(() => {\n disableSplashScreen()\n }, [])\n\n return <LayoutContext.Provider value={value}>{children}</LayoutContext.Provider>\n}\n\nexport {LayoutContext, LayoutProvider}\n\nexport function useLayout() {\n return useContext(LayoutContext)\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, {FC, createContext, useContext, useEffect, useState} from 'react'\nimport {WithChildren} from '../../helpers'\n\nexport interface PageLink {\n title: string\n path: string\n isActive: boolean\n isSeparator?: boolean\n}\n\nexport interface PageDataContextModel {\n pageTitle?: string\n setPageTitle: (_title: string) => void\n pageDescription?: string\n setPageDescription: (_description: string) => void\n pageBreadcrumbs?: Array<PageLink>\n setPageBreadcrumbs: (_breadcrumbs: Array<PageLink>) => void\n}\n\nconst PageDataContext = createContext<PageDataContextModel>({\n setPageTitle: (_title: string) => {},\n setPageBreadcrumbs: (_breadcrumbs: Array<PageLink>) => {},\n setPageDescription: (_description: string) => {},\n})\n\nconst PageDataProvider: FC<WithChildren> = ({children}) => {\n const [pageTitle, setPageTitle] = useState<string>('')\n const [pageDescription, setPageDescription] = useState<string>('')\n const [pageBreadcrumbs, setPageBreadcrumbs] = useState<Array<PageLink>>([])\n const value: PageDataContextModel = {\n pageTitle,\n setPageTitle,\n pageDescription,\n setPageDescription,\n pageBreadcrumbs,\n setPageBreadcrumbs,\n }\n return <PageDataContext.Provider value={value}>{children}</PageDataContext.Provider>\n}\n\nfunction usePageData() {\n return useContext(PageDataContext)\n}\n\ntype Props = {\n description?: string\n breadcrumbs?: Array<PageLink>\n}\n\nconst PageTitle: FC<Props & WithChildren> = ({children, description, breadcrumbs}) => {\n const {setPageTitle, setPageDescription, setPageBreadcrumbs} = usePageData()\n useEffect(() => {\n if (children) {\n setPageTitle(children.toString())\n }\n return () => {\n setPageTitle('')\n }\n }, [children])\n\n useEffect(() => {\n if (description) {\n setPageDescription(description)\n }\n return () => {\n setPageDescription('')\n }\n }, [description])\n\n useEffect(() => {\n if (breadcrumbs) {\n setPageBreadcrumbs(breadcrumbs)\n }\n return () => {\n setPageBreadcrumbs([])\n }\n }, [breadcrumbs])\n\n return <></>\n}\n\nconst PageDescription: FC<WithChildren> = ({children}) => {\n const {setPageDescription} = usePageData()\n useEffect(() => {\n if (children) {\n setPageDescription(children.toString())\n }\n return () => {\n setPageDescription('')\n }\n }, [children])\n return <></>\n}\n\nexport {PageDescription, PageTitle, PageDataProvider, usePageData}\n","import React, {\n FC,\n createContext,\n useContext,\n useState,\n useEffect,\n SetStateAction,\n Dispatch,\n} from 'react'\nimport {WithChildren} from '../../helpers'\n\nconst MetronicSplashScreenContext = createContext<Dispatch<SetStateAction<number>> | undefined>(\n undefined\n)\n\nconst MetronicSplashScreenProvider: FC<WithChildren> = ({children}) => {\n const [count, setCount] = useState(0)\n let visible = count > 0\n\n useEffect(() => {\n const splashScreen = document.getElementById('splash-screen')\n\n // Show SplashScreen\n if (splashScreen && visible) {\n splashScreen.classList.remove('hidden')\n\n return () => {\n splashScreen.classList.add('hidden')\n }\n }\n\n // Hide SplashScreen\n let timeout: number\n if (splashScreen && !visible) {\n timeout = window.setTimeout(() => {\n splashScreen.classList.add('hidden')\n }, 3000)\n }\n\n return () => {\n clearTimeout(timeout)\n }\n }, [visible])\n\n return (\n <MetronicSplashScreenContext.Provider value={setCount}>\n {children}\n </MetronicSplashScreenContext.Provider>\n )\n}\n\nconst LayoutSplashScreen: FC<{visible?: boolean}> = ({visible = true}) => {\n // Everything are ready - remove splashscreen\n const setCount = useContext(MetronicSplashScreenContext)\n\n useEffect(() => {\n if (!visible) {\n return\n }\n\n if (setCount) {\n setCount((prev) => {\n return prev + 1\n })\n }\n\n return () => {\n if (setCount) {\n setCount((prev) => {\n return prev - 1\n })\n }\n }\n }, [setCount, visible])\n\n return null\n}\n\nexport {MetronicSplashScreenProvider, LayoutSplashScreen}\n","import React from 'react'\r\nimport {MenuItem} from './MenuItem'\r\nimport {useIntl} from 'react-intl'\r\nimport {ABSOLUTE_PUBLIC_PATH} from 'mini-css-extract-plugin/types/utils'\r\nimport {Finance} from './Finance'\r\n\r\nexport function MenuInner() {\r\n \r\n return (\r\n <>\r\n\r\n \r\n {/* <MenuItem title={'Report'} to='/report' />\r\n <MenuItem title='Finance' to='/finance' /> */}\r\n\r\n {/*<Finance*/}\r\n {/* title={'Finance'}*/}\r\n {/* to={''}*/}\r\n {/* onClick={() => {*/}\r\n {/* window.open('http://208.117.44.15:81', '_blank')*/}\r\n {/* }}*/}\r\n {/*/>*/}\r\n{/* \r\n <MenuItem title={'Supply Chain'} to={'/supply-chain'} />\r\n <MenuItem title='Equip. Srvc and Maintenance' to='/svc-manager' />\r\n <MenuItem title='Production' to='/production' />\r\n <MenuItem title='HR' to='/hr' />\r\n <MenuItem title={'Payroll'} to={'/payroll'} />\r\n <MenuItem title={'General'} to='/dashboard' /> */}\r\n\r\n \r\n </>\r\n )\r\n}\r\n","import React, {FC} from 'react'\nimport {MenuInner} from './MenuInner'\n\nconst Header: FC = () => {\n return (\n <div\n className='header-menu align-items-stretch'\n data-kt-drawer='true'\n data-kt-drawer-name='header-menu'\n data-kt-drawer-activate='{default: true, lg: false}'\n data-kt-drawer-overlay='true'\n data-kt-drawer-width=\"{default:'200px', '300px': '250px'}\"\n data-kt-drawer-direction='end'\n data-kt-drawer-toggle='#kt_header_menu_mobile_toggle'\n data-kt-swapper='true'\n data-kt-swapper-mode='prepend'\n data-kt-swapper-parent=\"{default: '#kt_body', lg: '#kt_header_nav'}\"\n >\n <div\n className='menu menu-lg-rounded menu-column menu-lg-row menu-state-bg menu-title-gray-700 menu-state-title-primary menu-state-icon-primary menu-state-bullet-primary menu-arrow-gray-400 fw-bold my-5 my-lg-0 align-items-stretch'\n id='#kt_header_menu'\n data-kt-menu='true'\n >\n <MenuInner />\n </div>\n \n </div>\n )\n}\n\nexport {Header}\n","import clsx from 'clsx'\nimport React, {FC} from 'react'\nimport {Link} from 'react-router-dom'\nimport {useLayout} from '../../../core/LayoutProvider'\nimport {usePageData} from '../../../core/PageData'\n\nconst DefaultTitle: FC = () => {\n const {pageTitle, pageDescription, pageBreadcrumbs} = usePageData()\n const {config, classes} = useLayout()\n return (\n <div\n id='kt_page_title'\n data-kt-swapper='true'\n data-kt-swapper-mode='prepend'\n data-kt-swapper-parent=\"{default: '#kt_content_container', 'lg': '#kt_toolbar_container'}\"\n className={clsx('page-title d-flex', classes.pageTitle.join(' '))}\n >\n {/* begin::Title */}\n {pageTitle && (\n <h1 className='d-flex align-items-center text-dark fw-bolder my-1 fs-3'>\n {pageTitle}\n {pageDescription && config.pageTitle && config.pageTitle.description && (\n <>\n <span className='h-20px border-gray-200 border-start ms-3 mx-2'></span>\n <small className='text-muted fs-7 fw-bold my-1 ms-1'>{pageDescription}</small>\n </>\n )}\n </h1>\n )}\n {/* end::Title */}\n\n {pageBreadcrumbs &&\n pageBreadcrumbs.length > 0 &&\n config.pageTitle &&\n config.pageTitle.breadCrumbs && (\n <>\n {config.pageTitle.direction === 'row' && (\n <span className='h-20px border-gray-200 border-start mx-4'></span>\n )}\n <ul className='breadcrumb breadcrumb-separatorless fw-bold fs-7 my-1'>\n {Array.from(pageBreadcrumbs).map((item, index) => (\n <li\n className={clsx('breadcrumb-item', {\n 'text-dark': !item.isSeparator && item.isActive,\n 'text-muted': !item.isSeparator && !item.isActive,\n })}\n key={`${item.path}${index}`}\n >\n {!item.isSeparator ? (\n <Link className='text-muted text-hover-primary' to={item.path}>\n {item.title}\n </Link>\n ) : (\n <span className='bullet bg-gray-200 w-5px h-2px'></span>\n )}\n </li>\n ))}\n <li className='breadcrumb-item text-dark'>{pageTitle}</li>\n </ul>\n </>\n )}\n </div>\n )\n}\n\nexport {DefaultTitle}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import {AuthModel} from './_models'\n\nconst AUTH_LOCAL_STORAGE_KEY = 'kt-auth-react-v'\nconst getAuth = (): AuthModel | undefined => {\n if (!localStorage) {\n return\n }\n\n const lsValue: string | null = localStorage.getItem(AUTH_LOCAL_STORAGE_KEY)\n if (!lsValue) {\n return\n }\n\n try {\n const auth: AuthModel = JSON.parse(lsValue) as AuthModel\n if (auth) {\n // You can easily check auth_token expiration also\n return auth\n }\n } catch (error) {\n console.error('AUTH LOCAL STORAGE PARSE ERROR', error)\n }\n}\n\nconst setAuth = (auth: AuthModel) => {\n if (!localStorage) {\n return\n }\n\n try {\n const lsValue = JSON.stringify(auth)\n localStorage.setItem(AUTH_LOCAL_STORAGE_KEY, lsValue)\n } catch (error) {\n console.error('AUTH LOCAL STORAGE SAVE ERROR', error)\n }\n}\n\nconst removeAuth = () => {\n if (!localStorage) {\n return\n }\n\n try {\n localStorage.removeItem(AUTH_LOCAL_STORAGE_KEY)\n } catch (error) {\n console.error('AUTH LOCAL STORAGE REMOVE ERROR', error)\n }\n}\n\nexport function setupAxios(axios: any) {\n axios.defaults.headers.Accept = 'application/json'\n axios.interceptors.request.use(\n (config: {headers: {Authorization: string}}) => {\n const auth = getAuth()\n if (auth && auth.jwtToken) {\n config.headers.Authorization = `Bearer ${auth.jwtToken}`\n }\n\n return config\n },\n (err: any) => Promise.reject(err)\n )\n}\n\nexport {getAuth, setAuth, removeAuth, AUTH_LOCAL_STORAGE_KEY}\n","import axios from 'axios'\nimport {AuthModel} from './_models'\nimport {ENP_USERS} from '../../../../url'\n\nconst API_URL = ENP_USERS\n\nexport const GET_USER_BY_ACCESSTOKEN_URL = `${API_URL}/verify_token`\nexport const LOGIN_URL = `${API_URL}/Login`\nexport const REGISTER_URL = `${API_URL}/register`\nexport const REQUEST_PASSWORD_URL = `${API_URL}/forgot_password`\n\n// Server should return AuthModel\nexport function login(username: string, password: string) {\n return axios.post<AuthModel>(LOGIN_URL, {\n username,\n password,\n })\n}\n\n// Server should return AuthModel\nexport function register(\n email: string,\n firstname: string,\n lastname: string,\n password: string,\n password_confirmation: string\n) {\n return axios.post(REGISTER_URL, {\n email,\n first_name: firstname,\n last_name: lastname,\n password,\n password_confirmation,\n })\n}\n\n// Server should return object => { result: boolean } (Is Email in DB)\nexport function requestPassword(email: string) {\n return axios.post<{result: boolean}>(REQUEST_PASSWORD_URL, {\n email,\n })\n}\n\nexport function getUserByToken(token: string) {\n if (!token) {\n return\n }\n\n const parts: string[] = token?.split('.')\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts')\n }\n return JSON.parse(window.atob(parts[1]))\n}\n// export function getUserByToken(token: string) {\n// return axios.post<UserModel>(GET_USER_BY_ACCESSTOKEN_URL, {\n// api_token: token,\n// })\n// }\n","import {\n FC,\n useState,\n useEffect,\n createContext,\n useContext,\n useRef,\n Dispatch,\n SetStateAction,\n} from 'react'\nimport {LayoutSplashScreen} from '../../../../_metronic/layout/core'\nimport {AuthModel, UserModel} from './_models'\nimport * as authHelper from './AuthHelpers'\nimport {getUserByToken} from './_requests'\nimport {WithChildren} from '../../../../_metronic/helpers'\n\ntype AuthContextProps = {\n auth: AuthModel | undefined\n saveAuth: (auth: AuthModel | undefined) => void\n currentUser: UserModel | undefined\n setCurrentUser: Dispatch<SetStateAction<UserModel | undefined>>\n logout: () => void\n}\n\nconst initAuthContextPropsState = {\n auth: authHelper.getAuth(),\n saveAuth: () => {},\n currentUser: undefined,\n setCurrentUser: () => {},\n logout: () => {},\n}\n\nconst AuthContext = createContext<AuthContextProps>(initAuthContextPropsState)\n\nconst useAuth = () => {\n return useContext(AuthContext)\n}\n\nconst AuthProvider: FC<WithChildren> = ({children}) => {\n const [auth, setAuth] = useState<AuthModel | undefined>(authHelper.getAuth())\n const [currentUser, setCurrentUser] = useState<UserModel | undefined>()\n const saveAuth = (auth: AuthModel | undefined) => {\n setAuth(auth)\n if (auth) {\n authHelper.setAuth(auth)\n } else {\n authHelper.removeAuth()\n }\n }\n\n const logout = () => {\n saveAuth(undefined)\n setCurrentUser(undefined)\n }\n\n return (\n <AuthContext.Provider value={{auth, saveAuth, currentUser, setCurrentUser, logout}}>\n {children}\n </AuthContext.Provider>\n )\n}\n\nconst AuthInit: FC<WithChildren> = ({children}) => {\n const {auth, logout, setCurrentUser} = useAuth()\n const didRequest = useRef(false)\n const [showSplashScreen, setShowSplashScreen] = useState(true)\n // We should request user by authToken (IN OUR EXAMPLE IT'S API_TOKEN) before rendering the application\n useEffect(() => {\n const requestUser = async (apiToken: string) => {\n try {\n if (!didRequest.current) {\n const data: any = await getUserByToken(apiToken)\n if (data) {\n \n setCurrentUser(data)\n }\n }\n } catch (error) {\n console.error(error)\n if (!didRequest.current) {\n logout()\n }\n } finally {\n setShowSplashScreen(false)\n }\n\n return () => (didRequest.current = true)\n }\n\n if (auth && auth.jwtToken) {\n requestUser(auth.jwtToken)\n } else {\n logout()\n setShowSplashScreen(false)\n }\n // eslint-disable-next-line\n }, [])\n\n return showSplashScreen ? <LayoutSplashScreen /> : <>{children}</>\n}\n\nexport {AuthProvider, AuthInit, useAuth}\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike<any> =>\n isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent<any> =>\n value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n obj: any,\n key: string | string[],\n def?: any,\n p: number = 0\n) {\n const path = toPath(key);\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n let res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n let pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] =\n isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues<T>(\n object: any,\n value: any,\n visited: any = new WeakMap(),\n response: any = {}\n): T {\n for (let k of Object.keys(object)) {\n const val = object[k];\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true);\n // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext<FormikContextType<any>>(\n undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext<Values>() {\n const formik = React.useContext<FormikContextType<Values>>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a <Formik> component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage<Values> =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched<Values> }\n | { type: 'SET_ERRORS'; payload: FormikErrors<Values> }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState<Values>) => FormikState<Values>;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState<Values>;\n };\n\n// State reducer\nfunction formikReducer<Values>(\n state: FormikState<Values>,\n msg: FormikMessage<Values>\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues<FormikTouched<Values>>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors<unknown> = {};\nconst emptyTouched: FormikTouched<unknown> = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise<string> | undefined;\n };\n}\n\nexport function useFormik<Values extends FormikValues = FormikValues>({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig<Values>) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef<boolean>(false);\n const fieldRegistry = React.useRef<FieldRegistry>({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer<FormikState<Values>, FormikMessage<Values>>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise<any>).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in <Formik validate />`,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise<FormikErrors<Values>> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in <Formik validationSchema />`,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise<string> => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise<FormikErrors<Values>> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise<string>[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all<FormikErrors<Values>>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial<FormikState<Values>>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise<any>).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched<Values>, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors<Values>) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction<Values>, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent<any>, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent<any>).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent<any>).target\n : (eventOrTextValue as React.ChangeEvent<any>).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : options && multiple // <select multiple>\n ? getSelectedValues(options)\n : value;\n }\n\n if (field) {\n // Set form fields by name\n setFieldValue(field, val);\n }\n },\n [setFieldValue, state.values]\n );\n\n const handleChange = useEventCallback<FormikHandlers['handleChange']>(\n (\n eventOrPath: string | React.ChangeEvent<any>\n ): void | ((eventOrTextValue: string | React.ChangeEvent<any>) => void) => {\n if (isString(eventOrPath)) {\n return event => executeChange(event, eventOrPath);\n } else {\n executeChange(eventOrPath);\n }\n }\n );\n\n const setFieldTouched = useEventCallback(\n (field: string, touched: boolean = true, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_TOUCHED',\n payload: {\n field,\n value: touched,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const executeBlur = React.useCallback(\n (e: any, path?: string) => {\n if (e.persist) {\n e.persist();\n }\n const { name, id, outerHTML } = e.target;\n const field = path ? path : name ? name : id;\n\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handleblur-e-any--void',\n handlerName: 'handleBlur',\n });\n }\n\n setFieldTouched(field, true);\n },\n [setFieldTouched]\n );\n\n const handleBlur = useEventCallback<FormikHandlers['handleBlur']>(\n (eventOrString: any): void | ((e: any) => void) => {\n if (isString(eventOrString)) {\n return event => executeBlur(event, eventOrString);\n } else {\n executeBlur(eventOrString);\n }\n }\n );\n\n const setFormikState = React.useCallback(\n (\n stateOrCb:\n | FormikState<Values>\n | ((state: FormikState<Values>) => FormikState<Values>)\n ): void => {\n if (isFunction(stateOrCb)) {\n dispatch({ type: 'SET_FORMIK_STATE', payload: stateOrCb });\n } else {\n dispatch({ type: 'SET_FORMIK_STATE', payload: () => stateOrCb });\n }\n },\n []\n );\n\n const setStatus = React.useCallback((status: any) => {\n dispatch({ type: 'SET_STATUS', payload: status });\n }, []);\n\n const setSubmitting = React.useCallback((isSubmitting: boolean) => {\n dispatch({ type: 'SET_ISSUBMITTING', payload: isSubmitting });\n }, []);\n\n const submitForm = useEventCallback(() => {\n dispatch({ type: 'SUBMIT_ATTEMPT' });\n return validateFormWithHighPriority().then(\n (combinedErrors: FormikErrors<Values>) => {\n // In case an error was thrown and passed to the resolved Promise,\n // `combinedErrors` can be an instance of an Error. We need to check\n // that and abort the submit.\n // If we don't do that, calling `Object.keys(new Error())` yields an\n // empty array, which causes the validation to pass and the form\n // to be submitted.\n\n const isInstanceOfError = combinedErrors instanceof Error;\n const isActuallyValid =\n !isInstanceOfError && Object.keys(combinedErrors).length === 0;\n if (isActuallyValid) {\n // Proceed with submit...\n //\n // To respect sync submit fns, we can't simply wrap executeSubmit in a promise and\n // _always_ dispatch SUBMIT_SUCCESS because isSubmitting would then always be false.\n // This would be fine in simple cases, but make it impossible to disable submit\n // buttons where people use callbacks or promises as side effects (which is basically\n // all of v1 Formik code). Instead, recall that we are inside of a promise chain already,\n // so we can try/catch executeSubmit(), if it returns undefined, then just bail.\n // If there are errors, throw em. Otherwise, wrap executeSubmit in a promise and handle\n // cleanup of isSubmitting on behalf of the consumer.\n let promiseOrUndefined;\n try {\n promiseOrUndefined = executeSubmit();\n // Bail if it's sync, consumer is responsible for cleaning up\n // via setSubmitting(false)\n if (promiseOrUndefined === undefined) {\n return;\n }\n } catch (error) {\n throw error;\n }\n\n return Promise.resolve(promiseOrUndefined)\n .then(result => {\n if (!!isMounted.current) {\n dispatch({ type: 'SUBMIT_SUCCESS' });\n }\n return result;\n })\n .catch(_errors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SUBMIT_FAILURE' });\n // This is a legit error rejected by the onSubmit fn\n // so we don't want to break the promise chain\n throw _errors;\n }\n });\n } else if (!!isMounted.current) {\n // ^^^ Make sure Formik is still mounted before updating state\n dispatch({ type: 'SUBMIT_FAILURE' });\n // throw combinedErrors;\n if (isInstanceOfError) {\n throw combinedErrors;\n }\n }\n return;\n }\n );\n });\n\n const handleSubmit = useEventCallback(\n (e?: React.FormEvent<HTMLFormElement>) => {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n // Warn if form submission is triggered by a <button> without a\n // specified `type` attribute during development. This mitigates\n // a common gotcha in forms with both reset and submit buttons,\n // where the dev forgets to add type=\"button\" to the reset button.\n if (__DEV__ && typeof document !== 'undefined') {\n // Safely get the active element (works with IE)\n const activeElement = getActiveElement();\n if (\n activeElement !== null &&\n activeElement instanceof HTMLButtonElement\n ) {\n invariant(\n activeElement.attributes &&\n activeElement.attributes.getNamedItem('type'),\n 'You submitted a Formik form using a button with an unspecified `type` attribute. Most browsers default button elements to `type=\"submit\"`. If this is not a submit button, please add `type=\"button\"`.'\n );\n }\n }\n\n submitForm().catch(reason => {\n console.warn(\n `Warning: An unhandled error was caught from submitForm()`,\n reason\n );\n });\n }\n );\n\n const imperativeMethods: FormikHelpers<Values> = {\n resetForm,\n validateForm: validateFormWithHighPriority,\n validateField,\n setErrors,\n setFieldError,\n setFieldTouched,\n setFieldValue,\n setStatus,\n setSubmitting,\n setTouched,\n setValues,\n setFormikState,\n submitForm,\n };\n\n const executeSubmit = useEventCallback(() => {\n return onSubmit(state.values, imperativeMethods);\n });\n\n const handleReset = useEventCallback(e => {\n if (e && e.preventDefault && isFunction(e.preventDefault)) {\n e.preventDefault();\n }\n\n if (e && e.stopPropagation && isFunction(e.stopPropagation)) {\n e.stopPropagation();\n }\n\n resetForm();\n });\n\n const getFieldMeta = React.useCallback(\n (name: string): FieldMetaProps<any> => {\n return {\n value: getIn(state.values, name),\n error: getIn(state.errors, name),\n touched: !!getIn(state.touched, name),\n initialValue: getIn(initialValues.current, name),\n initialTouched: !!getIn(initialTouched.current, name),\n initialError: getIn(initialErrors.current, name),\n };\n },\n [state.errors, state.touched, state.values]\n );\n\n const getFieldHelpers = React.useCallback(\n (name: string): FieldHelperProps<any> => {\n return {\n setValue: (value: any, shouldValidate?: boolean) =>\n setFieldValue(name, value, shouldValidate),\n setTouched: (value: boolean, shouldValidate?: boolean) =>\n setFieldTouched(name, value, shouldValidate),\n setError: (value: any) => setFieldError(name, value),\n };\n },\n [setFieldValue, setFieldTouched, setFieldError]\n );\n\n const getFieldProps = React.useCallback(\n (nameOrOptions): FieldInputProps<any> => {\n const isAnObject = isObject(nameOrOptions);\n const name = isAnObject ? nameOrOptions.name : nameOrOptions;\n const valueState = getIn(state.values, name);\n\n const field: FieldInputProps<any> = {\n name,\n value: valueState,\n onChange: handleChange,\n onBlur: handleBlur,\n };\n if (isAnObject) {\n const {\n type,\n value: valueProp, // value is special for checkboxes\n as: is,\n multiple,\n } = nameOrOptions;\n\n if (type === 'checkbox') {\n if (valueProp === undefined) {\n field.checked = !!valueState;\n } else {\n field.checked = !!(\n Array.isArray(valueState) && ~valueState.indexOf(valueProp)\n );\n field.value = valueProp;\n }\n } else if (type === 'radio') {\n field.checked = valueState === valueProp;\n field.value = valueProp;\n } else if (is === 'select' && multiple) {\n field.value = field.value || [];\n field.multiple = true;\n }\n }\n return field;\n },\n [handleBlur, handleChange, state.values]\n );\n\n const dirty = React.useMemo(\n () => !isEqual(initialValues.current, state.values),\n [initialValues.current, state.values]\n );\n\n const isValid = React.useMemo(\n () =>\n typeof isInitialValid !== 'undefined'\n ? dirty\n ? state.errors && Object.keys(state.errors).length === 0\n : isInitialValid !== false && isFunction(isInitialValid)\n ? (isInitialValid as (props: FormikConfig<Values>) => boolean)(props)\n : (isInitialValid as boolean)\n : state.errors && Object.keys(state.errors).length === 0,\n [isInitialValid, dirty, state.errors, props]\n );\n\n const ctx = {\n ...state,\n initialValues: initialValues.current,\n initialErrors: initialErrors.current,\n initialTouched: initialTouched.current,\n initialStatus: initialStatus.current,\n handleBlur,\n handleChange,\n handleReset,\n handleSubmit,\n resetForm,\n setErrors,\n setFormikState,\n setFieldTouched,\n setFieldValue,\n setFieldError,\n setStatus,\n setSubmitting,\n setTouched,\n setValues,\n submitForm,\n validateForm: validateFormWithHighPriority,\n validateField,\n isValid,\n dirty,\n unregisterField,\n registerField,\n getFieldProps,\n getFieldMeta,\n getFieldHelpers,\n validateOnBlur,\n validateOnChange,\n validateOnMount,\n };\n\n return ctx;\n}\n\nexport function Formik<\n Values extends FormikValues = FormikValues,\n ExtraProps = {}\n>(props: FormikConfig<Values> & ExtraProps) {\n const formikbag = useFormik<Values>(props);\n const { component, children, render, innerRef } = props;\n\n // This allows folks to pass a ref to <Formik />\n React.useImperativeHandle(innerRef, () => formikbag);\n\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n !props.render,\n `<Formik render> has been deprecated and will be removed in future versions of Formik. Please use a child callback function instead. To get rid of this warning, replace <Formik render={(props) => ...} /> with <Formik>{(props) => ...}</Formik>`\n );\n // eslint-disable-next-line\n }, []);\n }\n return (\n <FormikProvider value={formikbag}>\n {component\n ? React.createElement(component as any, formikbag)\n : render\n ? render(formikbag)\n : children // children come last, always called\n ? isFunction(children)\n ? (children as (bag: FormikProps<Values>) => React.ReactNode)(\n formikbag as FormikProps<Values>\n )\n : !isEmptyChildren(children)\n ? React.Children.only(children)\n : null\n : null}\n </FormikProvider>\n );\n}\n\nfunction warnAboutMissingIdentifier({\n htmlContent,\n documentationAnchorLink,\n handlerName,\n}: {\n htmlContent: string;\n documentationAnchorLink: string;\n handlerName: string;\n}) {\n console.warn(\n `Warning: Formik called \\`${handlerName}\\`, but you forgot to pass an \\`id\\` or \\`name\\` attribute to your input:\n ${htmlContent}\n Formik cannot determine which value to update. For more info see https://formik.org/docs/api/formik#${documentationAnchorLink}\n `\n );\n}\n\n/**\n * Transform Yup ValidationError to a more usable object\n */\nexport function yupToFormErrors<Values>(yupError: any): FormikErrors<Values> {\n let errors: FormikErrors<Values> = {};\n if (yupError.inner) {\n if (yupError.inner.length === 0) {\n return setIn(errors, yupError.path, yupError.message);\n }\n for (let err of yupError.inner) {\n if (!getIn(errors, err.path)) {\n errors = setIn(errors, err.path, err.message);\n }\n }\n }\n return errors;\n}\n\n/**\n * Validate a yup schema.\n */\nexport function validateYupSchema<T extends FormikValues>(\n values: T,\n schema: any,\n sync: boolean = false,\n context: any = {}\n): Promise<Partial<T>> {\n const validateData: FormikValues = prepareDataForValidation(values);\n return schema[sync ? 'validateSync' : 'validate'](validateData, {\n abortEarly: false,\n context: context,\n });\n}\n\n/**\n * Recursively prepare values.\n */\nexport function prepareDataForValidation<T extends FormikValues>(\n values: T\n): FormikValues {\n let data: FormikValues = Array.isArray(values) ? [] : {};\n for (let k in values) {\n if (Object.prototype.hasOwnProperty.call(values, k)) {\n const key = String(k);\n if (Array.isArray(values[key]) === true) {\n data[key] = values[key].map((value: any) => {\n if (Array.isArray(value) === true || isPlainObject(value)) {\n return prepareDataForValidation(value);\n } else {\n return value !== '' ? value : undefined;\n }\n });\n } else if (isPlainObject(values[key])) {\n data[key] = prepareDataForValidation(values[key]);\n } else {\n data[key] = values[key] !== '' ? values[key] : undefined;\n }\n }\n }\n return data;\n}\n\n/**\n * deepmerge array merging algorithm\n * https://github.com/KyleAMathews/deepmerge#combine-array\n */\nfunction arrayMerge(target: any[], source: any[], options: any): any[] {\n const destination = target.slice();\n\n source.forEach(function merge(e: any, i: number) {\n if (typeof destination[i] === 'undefined') {\n const cloneRequested = options.clone !== false;\n const shouldClone = cloneRequested && options.isMergeableObject(e);\n destination[i] = shouldClone\n ? deepmerge(Array.isArray(e) ? [] : {}, e, options)\n : e;\n } else if (options.isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, options);\n } else if (target.indexOf(e) === -1) {\n destination.push(e);\n }\n });\n return destination;\n}\n\n/** Return multi select values based on an array of options */\nfunction getSelectedValues(options: any[]) {\n return Array.from(options)\n .filter(el => el.selected)\n .map(el => el.value);\n}\n\n/** Return the next value for a checkbox */\nfunction getValueForCheckbox(\n currentValue: string | any[],\n checked: boolean,\n valueProp: any\n) {\n // If the current value was a boolean, return a boolean\n if (typeof currentValue === 'boolean') {\n return Boolean(checked);\n }\n\n // If the currentValue was not a boolean we want to return an array\n let currentArrayOfValues = [];\n let isValueInArray = false;\n let index = -1;\n\n if (!Array.isArray(currentValue)) {\n // eslint-disable-next-line eqeqeq\n if (!valueProp || valueProp == 'true' || valueProp == 'false') {\n return Boolean(checked);\n }\n } else {\n // If the current value is already an array, use it\n currentArrayOfValues = currentValue;\n index = currentValue.indexOf(valueProp);\n isValueInArray = index >= 0;\n }\n\n // If the checkbox was checked and the value is not already present in the aray we want to add the new value to the array of values\n if (checked && valueProp && !isValueInArray) {\n return currentArrayOfValues.concat(valueProp);\n }\n\n // If the checkbox was unchecked and the value is not in the array, simply return the already existing array of values\n if (!isValueInArray) {\n return currentArrayOfValues;\n }\n\n // If the checkbox was unchecked and the value is in the array, remove the value and return the array\n return currentArrayOfValues\n .slice(0, index)\n .concat(currentArrayOfValues.slice(index + 1));\n}\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n// @see https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect;\n\nfunction useEventCallback<T extends (...args: any[]) => any>(fn: T): T {\n const ref: any = React.useRef(fn);\n\n // we copy a ref to the callback scoped to the current state/props on each render\n useIsomorphicLayoutEffect(() => {\n ref.current = fn;\n });\n\n return React.useCallback(\n (...args: any[]) => ref.current.apply(void 0, args),\n []\n ) as T;\n}\n","import * as React from 'react';\nimport { useFormikContext } from './FormikContext';\n\nexport type FormikFormProps = Pick<\n React.FormHTMLAttributes<HTMLFormElement>,\n Exclude<\n keyof React.FormHTMLAttributes<HTMLFormElement>,\n 'onReset' | 'onSubmit'\n >\n>;\n\ntype FormProps = React.ComponentPropsWithoutRef<'form'>;\n\n// @todo tests\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props: FormikFormProps, ref) => {\n // iOS needs an \"action\" attribute for nice input: https://stackoverflow.com/a/39485162/406725\n // We default the action to \"#\" in case the preventDefault fails (just updates the URL hash)\n const { action, ...rest } = props;\n const _action = action ?? '#';\n const { handleReset, handleSubmit } = useFormikContext();\n return (\n <form\n onSubmit={handleSubmit}\n ref={ref}\n onReset={handleReset}\n action={_action}\n {...rest}\n />\n );\n }\n);\n\nForm.displayName = 'Form';\n","import * as React from 'react';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { connect } from './connect';\nimport {\n FormikContextType,\n FormikState,\n SharedRenderProps,\n FormikProps,\n} from './types';\nimport {\n getIn,\n isEmptyChildren,\n isFunction,\n setIn,\n isEmptyArray,\n} from './utils';\nimport isEqual from 'react-fast-compare';\n\nexport type FieldArrayRenderProps = ArrayHelpers & {\n form: FormikProps<any>;\n name: string;\n};\n\nexport type FieldArrayConfig = {\n /** Really the path to the array field to be updated */\n name: string;\n /** Should field array validate the form AFTER array updates/changes? */\n validateOnChange?: boolean;\n} & SharedRenderProps<FieldArrayRenderProps>;\nexport interface ArrayHelpers {\n /** Imperatively add a value to the end of an array */\n push: (obj: any) => void;\n /** Curried fn to add a value to the end of an array */\n handlePush: (obj: any) => () => void;\n /** Imperatively swap two values in an array */\n swap: (indexA: number, indexB: number) => void;\n /** Curried fn to swap two values in an array */\n handleSwap: (indexA: number, indexB: number) => () => void;\n /** Imperatively move an element in an array to another index */\n move: (from: number, to: number) => void;\n /** Imperatively move an element in an array to another index */\n handleMove: (from: number, to: number) => () => void;\n /** Imperatively insert an element at a given index into the array */\n insert: (index: number, value: any) => void;\n /** Curried fn to insert an element at a given index into the array */\n handleInsert: (index: number, value: any) => () => void;\n /** Imperatively replace a value at an index of an array */\n replace: (index: number, value: any) => void;\n /** Curried fn to replace an element at a given index into the array */\n handleReplace: (index: number, value: any) => () => void;\n /** Imperatively add an element to the beginning of an array and return its length */\n unshift: (value: any) => number;\n /** Curried fn to add an element to the beginning of an array */\n handleUnshift: (value: any) => () => void;\n /** Curried fn to remove an element at an index of an array */\n handleRemove: (index: number) => () => void;\n /** Curried fn to remove a value from the end of the array */\n handlePop: () => () => void;\n /** Imperatively remove and element at an index of an array */\n remove<T>(index: number): T | undefined;\n /** Imperatively remove and return value from the end of the array */\n pop<T>(): T | undefined;\n}\n\n/**\n * Some array helpers!\n */\nexport const move = (array: any[], from: number, to: number) => {\n const copy = copyArrayLike(array);\n const value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n};\n\nexport const swap = (\n arrayLike: ArrayLike<any>,\n indexA: number,\n indexB: number\n) => {\n const copy = copyArrayLike(arrayLike);\n const a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n};\n\nexport const insert = (\n arrayLike: ArrayLike<any>,\n index: number,\n value: any\n) => {\n const copy = copyArrayLike(arrayLike);\n copy.splice(index, 0, value);\n return copy;\n};\n\nexport const replace = (\n arrayLike: ArrayLike<any>,\n index: number,\n value: any\n) => {\n const copy = copyArrayLike(arrayLike);\n copy[index] = value;\n return copy;\n};\n\nconst copyArrayLike = (arrayLike: ArrayLike<any>) => {\n if (!arrayLike) {\n return [];\n } else if (Array.isArray(arrayLike)) {\n return [...arrayLike];\n } else {\n const maxIndex = Object.keys(arrayLike)\n .map(key => parseInt(key))\n .reduce((max, el) => (el > max ? el : max), 0);\n return Array.from({ ...arrayLike, length: maxIndex + 1 });\n }\n};\n\nclass FieldArrayInner<Values = {}> extends React.Component<\n FieldArrayConfig & { formik: FormikContextType<Values> },\n {}\n> {\n static defaultProps = {\n validateOnChange: true,\n };\n\n constructor(props: FieldArrayConfig & { formik: FormikContextType<Values> }) {\n super(props);\n // We need TypeScript generics on these, so we'll bind them in the constructor\n // @todo Fix TS 3.2.1\n this.remove = this.remove.bind(this) as any;\n this.pop = this.pop.bind(this) as any;\n }\n\n componentDidUpdate(\n prevProps: FieldArrayConfig & { formik: FormikContextType<Values> }\n ) {\n if (\n this.props.validateOnChange &&\n this.props.formik.validateOnChange &&\n !isEqual(\n getIn(prevProps.formik.values, prevProps.name),\n getIn(this.props.formik.values, this.props.name)\n )\n ) {\n this.props.formik.validateForm(this.props.formik.values);\n }\n }\n\n updateArrayField = (\n fn: Function,\n alterTouched: boolean | Function,\n alterErrors: boolean | Function\n ) => {\n const {\n name,\n\n formik: { setFormikState },\n } = this.props;\n setFormikState((prevState: FormikState<any>) => {\n let updateErrors = typeof alterErrors === 'function' ? alterErrors : fn;\n let updateTouched =\n typeof alterTouched === 'function' ? alterTouched : fn;\n\n // values fn should be executed before updateErrors and updateTouched,\n // otherwise it causes an error with unshift.\n let values = setIn(\n prevState.values,\n name,\n fn(getIn(prevState.values, name))\n );\n\n let fieldError = alterErrors\n ? updateErrors(getIn(prevState.errors, name))\n : undefined;\n let fieldTouched = alterTouched\n ? updateTouched(getIn(prevState.touched, name))\n : undefined;\n\n if (isEmptyArray(fieldError)) {\n fieldError = undefined;\n }\n if (isEmptyArray(fieldTouched)) {\n fieldTouched = undefined;\n }\n\n return {\n ...prevState,\n values,\n errors: alterErrors\n ? setIn(prevState.errors, name, fieldError)\n : prevState.errors,\n touched: alterTouched\n ? setIn(prevState.touched, name, fieldTouched)\n : prevState.touched,\n };\n });\n };\n\n push = (value: any) =>\n this.updateArrayField(\n (arrayLike: ArrayLike<any>) => [\n ...copyArrayLike(arrayLike),\n cloneDeep(value),\n ],\n false,\n false\n );\n\n handlePush = (value: any) => () => this.push(value);\n\n swap = (indexA: number, indexB: number) =>\n this.updateArrayField(\n (array: any[]) => swap(array, indexA, indexB),\n true,\n true\n );\n\n handleSwap = (indexA: number, indexB: number) => () =>\n this.swap(indexA, indexB);\n\n move = (from: number, to: number) =>\n this.updateArrayField((array: any[]) => move(array, from, to), true, true);\n\n handleMove = (from: number, to: number) => () => this.move(from, to);\n\n insert = (index: number, value: any) =>\n this.updateArrayField(\n (array: any[]) => insert(array, index, value),\n (array: any[]) => insert(array, index, null),\n (array: any[]) => insert(array, index, null)\n );\n\n handleInsert = (index: number, value: any) => () => this.insert(index, value);\n\n replace = (index: number, value: any) =>\n this.updateArrayField(\n (array: any[]) => replace(array, index, value),\n false,\n false\n );\n\n handleReplace = (index: number, value: any) => () =>\n this.replace(index, value);\n\n unshift = (value: any) => {\n let length = -1;\n this.updateArrayField(\n (array: any[]) => {\n const arr = array ? [value, ...array] : [value];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n },\n (array: any[]) => {\n const arr = array ? [null, ...array] : [null];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n },\n (array: any[]) => {\n const arr = array ? [null, ...array] : [null];\n if (length < 0) {\n length = arr.length;\n }\n return arr;\n }\n );\n return length;\n };\n\n handleUnshift = (value: any) => () => this.unshift(value);\n\n remove<T>(index: number): T {\n // We need to make sure we also remove relevant pieces of `touched` and `errors`\n let result: any;\n this.updateArrayField(\n // so this gets call 3 times\n (array?: any[]) => {\n const copy = array ? copyArrayLike(array) : [];\n if (!result) {\n result = copy[index];\n }\n if (isFunction(copy.splice)) {\n copy.splice(index, 1);\n }\n return copy;\n },\n true,\n true\n );\n\n return result as T;\n }\n\n handleRemove = (index: number) => () => this.remove<any>(index);\n\n pop<T>(): T {\n // Remove relevant pieces of `touched` and `errors` too!\n let result: any;\n this.updateArrayField(\n // so this gets call 3 times\n (array: any[]) => {\n const tmp = array;\n if (!result) {\n result = tmp && tmp.pop && tmp.pop();\n }\n return tmp;\n },\n true,\n true\n );\n\n return result as T;\n }\n\n handlePop = () => () => this.pop<any>();\n\n render() {\n const arrayHelpers: ArrayHelpers = {\n push: this.push,\n pop: this.pop,\n swap: this.swap,\n move: this.move,\n insert: this.insert,\n replace: this.replace,\n unshift: this.unshift,\n remove: this.remove,\n handlePush: this.handlePush,\n handlePop: this.handlePop,\n handleSwap: this.handleSwap,\n handleMove: this.handleMove,\n handleInsert: this.handleInsert,\n handleReplace: this.handleReplace,\n handleUnshift: this.handleUnshift,\n handleRemove: this.handleRemove,\n };\n\n const {\n component,\n render,\n children,\n name,\n formik: {\n validate: _validate,\n validationSchema: _validationSchema,\n ...restOfFormik\n },\n } = this.props;\n\n const props: FieldArrayRenderProps = {\n ...arrayHelpers,\n form: restOfFormik,\n name,\n };\n\n return component\n ? React.createElement(component as any, props)\n : render\n ? (render as any)(props)\n : children // children come last, always called\n ? typeof children === 'function'\n ? (children as any)(props)\n : !isEmptyChildren(children)\n ? React.Children.only(children)\n : null\n : null;\n }\n}\n\nexport const FieldArray = connect<FieldArrayConfig, any>(FieldArrayInner);\n","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport { getIn, isFunction } from './utils';\nimport { connect } from './connect';\n\nexport interface ErrorMessageProps {\n name: string;\n className?: string;\n component?: string | React.ComponentType;\n children?: (errorMessage: string) => React.ReactNode;\n render?: (errorMessage: string) => React.ReactNode;\n}\n\nclass ErrorMessageImpl extends React.Component<\n ErrorMessageProps & { formik: FormikContextType<any> }\n> {\n shouldComponentUpdate(\n props: ErrorMessageProps & { formik: FormikContextType<any> }\n ) {\n if (\n getIn(this.props.formik.errors, this.props.name) !==\n getIn(props.formik.errors, this.props.name) ||\n getIn(this.props.formik.touched, this.props.name) !==\n getIn(props.formik.touched, this.props.name) ||\n Object.keys(this.props).length !== Object.keys(props).length\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n render() {\n let { component, formik, render, children, name, ...rest } = this.props;\n\n const touch = getIn(formik.touched, name);\n const error = getIn(formik.errors, name);\n\n return !!touch && !!error\n ? render\n ? isFunction(render)\n ? render(error)\n : null\n : children\n ? isFunction(children)\n ? children(error)\n : null\n : component\n ? React.createElement(component, rest as any, error)\n : error\n : null;\n }\n}\n\nexport const ErrorMessage = connect<\n ErrorMessageProps,\n ErrorMessageProps & { formik: FormikContextType<any> }\n>(ErrorMessageImpl);\n","import * as React from 'react';\n\nimport {\n FormikProps,\n GenericFieldHTMLAttributes,\n FormikContextType,\n FieldMetaProps,\n FieldInputProps,\n} from './types';\nimport invariant from 'tiny-warning';\nimport { getIn, isEmptyChildren, isFunction } from './utils';\nimport { FieldConfig } from './Field';\nimport { connect } from './connect';\n\ntype $FixMe = any;\n\nexport interface FastFieldProps<V = any> {\n field: FieldInputProps<V>;\n meta: FieldMetaProps<V>;\n form: FormikProps<V>; // if ppl want to restrict this for a given form, let them.\n}\n\nexport type FastFieldConfig<T> = FieldConfig & {\n /** Override FastField's default shouldComponentUpdate */\n shouldUpdate?: (\n nextProps: T & GenericFieldHTMLAttributes,\n props: {}\n ) => boolean;\n};\n\nexport type FastFieldAttributes<T> = GenericFieldHTMLAttributes &\n FastFieldConfig<T> &\n T;\n\ntype FastFieldInnerProps<Values = {}, Props = {}> = FastFieldAttributes<\n Props\n> & { formik: FormikContextType<Values> };\n\n/**\n * Custom Field component for quickly hooking into Formik\n * context and wiring up forms.\n */\nclass FastFieldInner<Values = {}, Props = {}> extends React.Component<\n FastFieldInnerProps<Values, Props>,\n {}\n> {\n constructor(props: FastFieldInnerProps<Values, Props>) {\n super(props);\n const { render, children, component, as: is, name } = props;\n invariant(\n !render,\n `<FastField render> has been deprecated. Please use a child callback function instead: <FastField name={${name}}>{props => ...}</FastField> instead.`\n );\n invariant(\n !(component && render),\n 'You should not use <FastField component> and <FastField render> in the same <FastField> component; <FastField component> will be ignored'\n );\n\n invariant(\n !(is && children && isFunction(children)),\n 'You should not use <FastField as> and <FastField children> as a function in the same <FastField> component; <FastField as> will be ignored.'\n );\n\n invariant(\n !(component && children && isFunction(children)),\n 'You should not use <FastField component> and <FastField children> as a function in the same <FastField> component; <FastField component> will be ignored.'\n );\n\n invariant(\n !(render && children && !isEmptyChildren(children)),\n 'You should not use <FastField render> and <FastField children> in the same <FastField> component; <FastField children> will be ignored'\n );\n }\n\n shouldComponentUpdate(props: FastFieldInnerProps<Values, Props>) {\n if (this.props.shouldUpdate) {\n return this.props.shouldUpdate(props, this.props);\n } else if (\n props.name !== this.props.name ||\n getIn(props.formik.values, this.props.name) !==\n getIn(this.props.formik.values, this.props.name) ||\n getIn(props.formik.errors, this.props.name) !==\n getIn(this.props.formik.errors, this.props.name) ||\n getIn(props.formik.touched, this.props.name) !==\n getIn(this.props.formik.touched, this.props.name) ||\n Object.keys(this.props).length !== Object.keys(props).length ||\n props.formik.isSubmitting !== this.props.formik.isSubmitting\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n componentDidMount() {\n // Register the Field with the parent Formik. Parent will cycle through\n // registered Field's validate fns right prior to submit\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate,\n });\n }\n\n componentDidUpdate(prevProps: FastFieldAttributes<Props>) {\n if (this.props.name !== prevProps.name) {\n this.props.formik.unregisterField(prevProps.name);\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate,\n });\n }\n\n if (this.props.validate !== prevProps.validate) {\n this.props.formik.registerField(this.props.name, {\n validate: this.props.validate,\n });\n }\n }\n\n componentWillUnmount() {\n this.props.formik.unregisterField(this.props.name);\n }\n\n render() {\n const {\n validate,\n name,\n render,\n as: is,\n children,\n component,\n shouldUpdate,\n formik,\n ...props\n } = this.props as FastFieldInnerProps<Values, Props>;\n\n const {\n validate: _validate,\n validationSchema: _validationSchema,\n ...restOfFormik\n } = formik;\n const field = formik.getFieldProps({ name, ...props });\n const meta = {\n value: getIn(formik.values, name),\n error: getIn(formik.errors, name),\n touched: !!getIn(formik.touched, name),\n initialValue: getIn(formik.initialValues, name),\n initialTouched: !!getIn(formik.initialTouched, name),\n initialError: getIn(formik.initialErrors, name),\n };\n\n const bag = { field, meta, form: restOfFormik };\n\n if (render) {\n return (render as any)(bag);\n }\n\n if (isFunction(children)) {\n return (children as (props: FastFieldProps<any>) => React.ReactNode)(bag);\n }\n\n if (component) {\n // This behavior is backwards compat with earlier Formik 0.9 to 1.x\n if (typeof component === 'string') {\n const { innerRef, ...rest } = props;\n return React.createElement(\n component,\n { ref: innerRef, ...field, ...(rest as $FixMe) },\n children\n );\n }\n // We don't pass `meta` for backwards compat\n return React.createElement(\n component as React.ComponentClass<$FixMe>,\n { field, form: formik, ...props },\n children\n );\n }\n\n // default to input here so we can check for both `as` and `children` above\n const asElement = is || 'input';\n\n if (typeof asElement === 'string') {\n const { innerRef, ...rest } = props;\n return React.createElement(\n asElement,\n { ref: innerRef, ...field, ...(rest as $FixMe) },\n children\n );\n }\n\n return React.createElement(\n asElement as React.ComponentClass,\n { ...field, ...props },\n children\n );\n }\n}\n\nexport const FastField = connect<FastFieldAttributes<any>, any>(FastFieldInner);\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","const isSchema = obj => obj && obj.__isYupSchema__;\n\nexport default isSchema;","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n }).catch(cb);\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = void 0;\n this.refs = void 0;\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n resolveAll(resolve) {\n return this.toArray().reduce((acc, e) => acc.concat(Reference.isRef(e) ? resolve(e) : e), []);\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nimport toArray from './util/toArray'; // const UNSET = 'unset' as const;\n\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this._typeError = void 0;\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext<TContext extends AnyObject>(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n let finalTests = [];\n if (this._whitelistError) finalTests.push(this._whitelistError);\n if (this._blacklistError) finalTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests.concat(finalTests),\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n let next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n let next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n let next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n let next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: valids.toArray().join(', '),\n resolved\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: invalids.toArray().join(', '),\n resolved\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n} // eslint-disable-next-line @typescript-eslint/no-unused-vars\n\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","const isAbsent = value => value == null;\n\nexport default isAbsent;","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n nodes.add(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(Array.from(nodes), edges).reverse();\n}","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields, this._excludedEdges));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n // this is a convenience for when users only supply a single pair\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n next._excludedEdges = [...next._excludedEdges, ...excludes];\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = void 0;\n this.innerType = type;\n this.withMutation(() => {\n this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n });\n }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array<typeof T>\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//","export class ElementStyleUtil {\n public static set(element: HTMLElement, property: string, value?: any, important?: boolean) {\n if (important) {\n element.style.setProperty(property, value, 'important')\n } else {\n element.style.setProperty(property, value)\n }\n }\n\n public static get(element: HTMLElement, attributeName: string) {\n return element.style.getPropertyValue(attributeName)\n }\n\n public static remove(element: HTMLElement, attibuteName: string) {\n element.style.removeProperty(attibuteName)\n }\n}\n","export class DataUtil {\n static store: Map<HTMLElement, Map<string, unknown>> = new Map()\n\n public static set(instance: HTMLElement | undefined, key: string, data: unknown): void {\n if (!instance) {\n return\n }\n\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n const newMap = new Map().set(key, data)\n DataUtil.store.set(instance, newMap)\n return\n }\n\n instanceData.set(key, data)\n }\n\n public static get(instance: HTMLElement, key: string): unknown | undefined {\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n return\n }\n\n return instanceData.get(key)\n }\n\n public static remove(instance: HTMLElement, key: string): void {\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n return\n }\n\n instanceData.delete(key)\n }\n\n public static removeOne(instance: HTMLElement, key: string, eventId: string) {\n const instanceData = DataUtil.store.get(instance)\n if (!instanceData) {\n return\n }\n\n const eventsIds = instanceData.get(key)\n if (!eventsIds) {\n return\n }\n\n const updateEventsIds = (eventsIds as string[]).filter((f) => f !== eventId)\n DataUtil.set(instance, key, updateEventsIds)\n }\n\n public static has(instance: HTMLElement, key: string): boolean {\n const instanceData = DataUtil.store.get(instance)\n if (instanceData) {\n return instanceData.has(key)\n }\n\n return false\n }\n\n public static getAllInstancesByKey(key: string) {\n const result: any[] = []\n DataUtil.store.forEach((val) => {\n val.forEach((v, k) => {\n if (k === key) {\n result.push(v)\n }\n })\n })\n return result\n }\n}\n","function getObjectPropertyValueByKey(obj: any, key: string): any | undefined {\n const map = new Map(Object.entries(obj))\n if (obj.hasOwnProperty(key) && map) {\n return map.get(key)\n }\n}\n\n/**\n * Generates unique ID for give prefix.\n * @param {string} prefix Prefix for generated ID\n * @returns {boolean}\n */\nfunction getUniqueIdWithPrefix(prefix: string | undefined): string {\n const result = Math.floor(Math.random() * new Date().getTime()).toString()\n if (!prefix) {\n return result\n }\n\n return `${prefix}${result}`\n}\n\n/* eslint-disable no-useless-escape */\nfunction stringSnakeToCamel(str: string): string {\n return str.replace(/(\\-\\w)/g, function (m) {\n return m[1].toUpperCase()\n })\n}\n\nfunction toJSON(value: string | JSON): JSON | undefined {\n if (typeof value !== 'string') {\n return value\n }\n\n if (!value) {\n return undefined\n }\n\n // (\"'\" => \"\\\"\");\n const result = value\n .toString()\n .split('')\n .map((el) => (el !== \"'\" ? el : '\"'))\n .join('')\n var jsonStr = result.replace(/(\\w+:)|(\\w+ :)/g, function (matched) {\n return '\"' + matched.substring(0, matched.length - 1) + '\":'\n })\n try {\n return JSON.parse(jsonStr)\n } catch {\n return undefined\n }\n}\n\nexport {getObjectPropertyValueByKey, getUniqueIdWithPrefix, stringSnakeToCamel, toJSON}\n","import {getUniqueIdWithPrefix} from './_TypesHelpers'\n\nexport class DOMEventHandlerUtil {\n public static store = new Map()\n\n public static on(\n element: HTMLElement,\n selector: string,\n eventName: string,\n callBack: any\n ): string {\n const eventId = getUniqueIdWithPrefix('DOMEvent')\n DOMEventHandlerUtil.store.set(eventId, (e: Event) => {\n const targets = element.querySelectorAll(selector)\n let target: HTMLElement | null = e.target as HTMLElement\n while (target && target !== element) {\n for (let i = 0; i < targets.length; i++) {\n if (target === targets[i]) {\n callBack.call(target, e)\n }\n }\n\n if (target.parentElement) {\n target = target.parentElement\n } else {\n target = null\n }\n }\n })\n element.addEventListener(eventName, DOMEventHandlerUtil.store.get(eventId))\n return eventId\n }\n\n public static off(element: HTMLElement, eventName: string, eventId: string): void {\n const funcFromStore = DOMEventHandlerUtil.store.get(eventId)\n if (!funcFromStore) {\n return\n }\n\n element.removeEventListener(eventName, funcFromStore)\n DOMEventHandlerUtil.store.delete(eventId)\n }\n\n public static one(element: HTMLElement, eventName: string, callBack: Function): void {\n element.addEventListener(eventName, function calee(e) {\n // remove event\n if (e.target && e.target.removeEventListener) {\n e.target.removeEventListener(e.type, calee)\n }\n\n if (element && e && e.currentTarget) {\n // if (element && element.removeEventListener && e && e.currentTarget) {\n e.currentTarget.removeEventListener(e.type, calee)\n }\n\n // call hander\n return callBack(e)\n })\n }\n}\n","import {DOMEventHandlerUtil} from './_DOMEventHandlerUtil'\nimport {ElementStyleUtil} from './_ElementStyleUtil'\nimport {getElementOffset} from './DomHelpers'\n\nexport class ElementAnimateUtil {\n public static animate(\n from: number,\n to: number,\n duration: number,\n update: Function,\n complete?: Function\n ) {\n /**\n * TinyAnimate.easings\n * Adapted from jQuery Easing\n */\n const easings = {\n linear: function (t: number, b: number, c: number, d: number) {\n return (c * t) / d + b\n },\n }\n\n // Create mock done() function if necessary\n if (!complete) {\n complete = function () {}\n }\n\n // Animation loop\n // let canceled = false;\n const change = to - from\n\n function loop(timestamp: number) {\n var time = (timestamp || +new Date()) - start\n\n if (time >= 0) {\n update(easings.linear(time, from, change, duration))\n }\n if (time >= 0 && time >= duration) {\n update(to)\n if (complete) {\n complete()\n }\n } else {\n window.requestAnimationFrame(loop)\n }\n }\n\n update(from)\n\n // Start animation loop\n const start =\n window.performance && window.performance.now ? window.performance.now() : +new Date()\n\n window.requestAnimationFrame(loop)\n }\n\n public static animateClass(\n element: HTMLElement,\n animationName: string,\n callBack?: Function\n ): void {\n const animateClasses = animationName.split(' ')\n animateClasses.forEach((cssClass) => element.classList.add(cssClass))\n DOMEventHandlerUtil.one(element, 'animationend', function () {\n animateClasses.forEach((cssClass) => element.classList.remove(cssClass))\n })\n\n if (callBack) {\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\n }\n }\n\n public static transitionEnd(element: HTMLElement, callBack: Function) {\n DOMEventHandlerUtil.one(element, 'transitionend', callBack)\n }\n\n public static animationEnd(element: HTMLElement, callBack: Function) {\n DOMEventHandlerUtil.one(element, 'animationend', callBack)\n }\n\n public static animationDelay(element: HTMLElement, value: string) {\n ElementStyleUtil.set(element, 'animation-delay', value)\n }\n\n public static animationDuration(element: HTMLElement, value: string) {\n ElementStyleUtil.set(element, 'animation-duration', value)\n }\n\n public static scrollTo(element: HTMLElement | null, offset: number, duration: number = 500) {\n let targetPos = element ? getElementOffset(element).top : 0\n let scrollPos =\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n\n if (offset) {\n scrollPos += offset\n targetPos = targetPos - offset\n }\n\n const from = scrollPos\n const to = targetPos\n\n ElementAnimateUtil.animate(from, to, duration, function (value: number) {\n document.documentElement.scrollTop = value\n // document.body.parentNode.scrollTop = value;\n document.body.scrollTop = value\n }) //, easing, done\n }\n public static scrollTop(offset: number, duration: number) {\n ElementAnimateUtil.scrollTo(null, offset, duration)\n }\n}\n","import {OffsetModel} from './models/OffsetModel'\nimport {ViewPortModel} from './models/ViewPortModel'\nimport {ElementStyleUtil} from './_ElementStyleUtil'\nimport {DataUtil} from './_DataUtil'\nimport {ElementAnimateUtil} from './ElementAnimateUtil'\nimport {getObjectPropertyValueByKey, toJSON} from './_TypesHelpers'\n\nfunction getCSS(el: HTMLElement, styleProp: string) {\n const defaultView = (el.ownerDocument || document).defaultView\n\n if (!defaultView) {\n return ''\n }\n\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\n\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\n}\n\nfunction getCSSVariableValue(variableName: string) {\n let hex = getComputedStyle(document.documentElement).getPropertyValue(variableName)\n if (hex && hex.length > 0) {\n hex = hex.trim()\n }\n\n return hex\n}\n\nfunction getElementActualCss(el: HTMLElement, prop: any, cache: boolean) {\n let css = ''\n\n if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {\n let value\n\n // the element is hidden so:\n // making the el block so we can meassure its height but still be hidden\n css = el.style.cssText\n el.style.cssText = 'position: absolute; visibility: hidden; display: block;'\n\n if (prop === 'width') {\n value = el.offsetWidth\n } else if (prop === 'height') {\n value = el.offsetHeight\n }\n\n el.style.cssText = css\n\n // store it in cache\n if (value !== undefined) {\n el.setAttribute('kt-hidden-' + prop, value.toString())\n return parseFloat(value.toString())\n }\n return 0\n } else {\n // store it in cache\n const attributeValue = el.getAttribute('kt-hidden-' + prop)\n if (attributeValue || attributeValue === '0') {\n return parseFloat(attributeValue)\n }\n }\n}\n\nfunction getElementActualHeight(el: HTMLElement) {\n return getElementActualCss(el, 'height', false)\n}\n\nfunction getElementActualWidth(el: HTMLElement, cache?: boolean) {\n return getElementActualCss(el, 'width', false)\n}\n\nfunction getElementIndex(element: HTMLElement) {\n if (element.parentNode) {\n const c = element.parentNode.children\n for (let i = 0; i < c.length; i++) {\n if (c[i] === element) return i\n }\n }\n return -1\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\nfunction getElementMatches(element: HTMLElement, selector: string) {\n const p = Element.prototype\n const f = p.matches || p.webkitMatchesSelector\n\n if (element && element.tagName) {\n return f.call(element, selector)\n } else {\n return false\n }\n}\n\nfunction getElementOffset(el: HTMLElement): OffsetModel {\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n if (!el.getClientRects().length) {\n return {top: 0, left: 0}\n }\n\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n const rect = el.getBoundingClientRect()\n const win = el.ownerDocument.defaultView\n if (win) {\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n }\n }\n\n return rect\n}\n\nfunction getElementParents(element: Element, selector: string) {\n // Element.matches() polyfill\n if (!Element.prototype.matches) {\n Element.prototype.matches = function (s) {\n const matches = (document || this.ownerDocument).querySelectorAll(s)\n let i = matches.length\n while (--i >= 0 && matches.item(i) !== this) {}\n return i > -1\n }\n }\n\n // Set up a parent array\n const parents: Array<Element> = []\n\n let el: Element | null = element\n\n // Push each parent element to the array\n for (; el && el !== document.body; el = el.parentElement) {\n if (selector) {\n if (el.matches(selector)) {\n parents.push(el)\n }\n continue\n }\n parents.push(el)\n }\n\n // Return our parent array\n return parents\n}\n\nfunction getHighestZindex(el: HTMLElement) {\n let bufferNode: Node | null = el as Node\n let buffer = el\n while (bufferNode && bufferNode !== document) {\n // Ignore z-index if position is set to a value where z-index is ignored by the browser\n // This makes behavior of this function consistent across browsers\n // WebKit always returns auto if the element is positioned\n const position = buffer.style.getPropertyValue('position')\n if (position === 'absolute' || position === 'relative' || position === 'fixed') {\n // IE returns 0 when zIndex is not specified\n // other browsers return a string\n // we ignore the case of nested elements with an explicit value of 0\n // <div style=\"z-index: -10;\"><div style=\"z-index: 0;\"></div></div>\n const value = parseInt(buffer.style.getPropertyValue('z-index'))\n if (!isNaN(value) && value !== 0) {\n return value\n }\n }\n\n bufferNode = bufferNode.parentNode\n buffer = bufferNode as HTMLElement\n }\n return null\n}\n\nfunction getScrollTop(): number {\n return (document.scrollingElement || document.documentElement).scrollTop\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth\nfunction getViewPort(): ViewPortModel {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n}\n\nfunction insertAfterElement(el: HTMLElement, referenceNode: HTMLElement) {\n return referenceNode.parentNode?.insertBefore(el, referenceNode.nextSibling)\n}\n\nfunction isElementHasClasses(element: HTMLElement, classesStr: string): boolean {\n const classes = classesStr.split(' ')\n for (let i = 0; i < classes.length; i++) {\n if (!element.classList.contains(classes[i])) {\n return false\n }\n }\n\n return true\n}\n\nfunction isVisibleElement(element: HTMLElement): boolean {\n return !(element.offsetWidth === 0 && element.offsetHeight === 0)\n}\n\n// Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds\nfunction throttle(timer: number | undefined, func: Function, delay?: number) {\n // If setTimeout is already scheduled, no need to do anything\n if (timer) {\n return\n }\n\n // Schedule a setTimeout after delay seconds\n timer = window.setTimeout(function () {\n func()\n\n // Once setTimeout function execution is finished, timerId = undefined so that in <br>\n // the next scroll event function execution can be scheduled by the setTimeout\n timer = undefined\n }, delay)\n}\n\nfunction getElementChildren(element: HTMLElement, selector: string): Array<HTMLElement> | null {\n if (!element || !element.childNodes) {\n return null\n }\n\n const result: Array<HTMLElement> = []\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n // child.nodeType == 1 => Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference\n if (child.nodeType === 1 && getElementMatches(child as HTMLElement, selector)) {\n result.push(child as HTMLElement)\n }\n }\n\n return result\n}\n\nfunction getElementChild(element: HTMLElement, selector: string): HTMLElement | null {\n const children = getElementChildren(element, selector)\n return children ? children[0] : null\n}\n\nfunction isMobileDevice(): boolean {\n let test = getViewPort().width < +getBreakpoint('lg') ? true : false\n\n if (test === false) {\n // For use within normal web clients\n test = navigator.userAgent.match(/iPad/i) != null\n }\n\n return test\n}\n\nfunction slide(el: HTMLElement, dir: string, speed: number, callback: any) {\n if (\n !el ||\n (dir === 'up' && isVisibleElement(el) === false) ||\n (dir === 'down' && isVisibleElement(el) === true)\n ) {\n return\n }\n\n speed = speed ? speed : 600\n let calcHeight = getElementActualHeight(el)\n let calcPaddingTop: number = 0\n let calcPaddingBottom: number = 0\n\n if (ElementStyleUtil.get(el, 'padding-top') && DataUtil.get(el, 'slide-padding-top') !== true) {\n DataUtil.set(el, 'slide-padding-top', ElementStyleUtil.get(el, 'padding-top'))\n }\n\n if (\n ElementStyleUtil.get(el, 'padding-bottom') &&\n DataUtil.has(el, 'slide-padding-bottom') !== true\n ) {\n DataUtil.set(el, 'slide-padding-bottom', ElementStyleUtil.get(el, 'padding-bottom'))\n }\n\n if (DataUtil.has(el, 'slide-padding-top')) {\n const data = DataUtil.get(el, 'slide-padding-top') as string\n calcPaddingTop = parseInt(data as string)\n }\n\n if (DataUtil.has(el, 'slide-padding-bottom')) {\n const data = DataUtil.get(el, 'slide-padding-bottom') as string\n calcPaddingBottom = parseInt(data)\n }\n\n if (dir === 'up') {\n // up\n el.style.cssText = 'display: block; overflow: hidden;'\n\n if (calcPaddingTop) {\n ElementAnimateUtil.animate(0, calcPaddingTop, speed, function (value: number) {\n el.style.paddingTop = calcPaddingTop - value + 'px'\n })\n }\n\n if (calcPaddingBottom) {\n ElementAnimateUtil.animate(0, calcPaddingBottom, speed, function (value: number) {\n el.style.paddingBottom = calcPaddingBottom - value + 'px'\n })\n }\n\n ElementAnimateUtil.animate(\n 0,\n calcHeight || 0,\n speed,\n function (value: number) {\n el.style.height = (calcHeight || 0) - value + 'px'\n },\n function () {\n el.style.height = ''\n el.style.display = 'none'\n\n if (typeof callback === 'function') {\n callback()\n }\n }\n )\n } else if (dir === 'down') {\n // down\n el.style.cssText = 'display: block; overflow: hidden;'\n\n if (calcPaddingTop) {\n ElementAnimateUtil.animate(\n 0,\n calcPaddingTop,\n speed,\n function (value: number) {\n //\n el.style.paddingTop = value + 'px'\n },\n function () {\n el.style.paddingTop = ''\n }\n )\n }\n\n if (calcPaddingBottom) {\n ElementAnimateUtil.animate(\n 0,\n calcPaddingBottom,\n speed,\n function (value: number) {\n el.style.paddingBottom = value + 'px'\n },\n function () {\n el.style.paddingBottom = ''\n }\n )\n }\n\n ElementAnimateUtil.animate(\n 0,\n calcHeight || 0,\n speed,\n function (value: number) {\n el.style.height = value + 'px'\n },\n function () {\n el.style.height = ''\n el.style.display = ''\n el.style.overflow = ''\n\n if (typeof callback === 'function') {\n callback()\n }\n }\n )\n }\n}\n\nfunction slideUp(el: HTMLElement, speed: number, callback: any) {\n slide(el, 'up', speed, callback)\n}\n\nfunction slideDown(el: HTMLElement, speed: number, callback: any) {\n slide(el, 'down', speed, callback)\n}\n\nfunction getBreakpoint(breakpoint: string) {\n let value: number | string = getCSSVariableValue('--kt-' + breakpoint)\n if (value) {\n value = parseInt(value.trim())\n }\n\n return value\n}\n\nfunction getAttributeValueByBreakpoint(incomingAttr: string): string | JSON {\n let value = toJSON(incomingAttr)\n if (typeof value !== 'object') {\n return incomingAttr\n }\n\n const width = getViewPort().width\n let resultKey\n let resultBreakpoint = -1\n let breakpoint\n\n for (let key in value) {\n if (key === 'default') {\n breakpoint = 0\n } else {\n breakpoint = getBreakpoint(key) ? +getBreakpoint(key) : parseInt(key)\n }\n\n if (breakpoint <= width && breakpoint > resultBreakpoint) {\n resultKey = key\n resultBreakpoint = breakpoint\n }\n }\n\n return resultKey ? getObjectPropertyValueByKey(value, resultKey) : value\n}\n\nfunction colorLighten(color: string, amount: number) {\n const addLight = (_color: string, _amount: number) => {\n const cc = parseInt(_color, 16) + _amount\n const cNum = cc > 255 ? 255 : cc\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\n return c\n }\n\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\n amount = parseInt(((255 * amount) / 100).toString())\n return (color = `#${addLight(color.substring(0, 2), amount)}${addLight(\n color.substring(2, 4),\n amount\n )}${addLight(color.substring(4, 6), amount)}`)\n}\n\nfunction colorDarken(color: string, amount: number) {\n const subtractLight = (_color: string, _amount: number) => {\n const cc = parseInt(color, 16) - amount\n const cNum = cc < 0 ? 0 : cc\n const c = cNum.toString(16).length > 1 ? cNum.toString(16) : `0${cNum.toString(16)}`\n return c\n }\n\n color = color.indexOf('#') >= 0 ? color.substring(1, color.length) : color\n amount = parseInt(((255 * amount) / 100).toString())\n\n return (color = `#${subtractLight(color.substring(0, 2), amount)}${subtractLight(\n color.substring(2, 4),\n amount\n )}${subtractLight(color.substring(4, 6), amount)}`)\n}\n\nexport {\n getBreakpoint,\n getCSS,\n getCSSVariableValue,\n getElementActualCss,\n getElementActualHeight,\n getElementActualWidth,\n getElementIndex,\n getElementMatches,\n getElementOffset,\n getElementParents,\n getHighestZindex,\n getScrollTop,\n getViewPort,\n insertAfterElement,\n isElementHasClasses,\n isVisibleElement,\n throttle,\n getElementChildren,\n getElementChild,\n isMobileDevice,\n slide,\n slideUp,\n slideDown,\n getAttributeValueByBreakpoint,\n colorLighten,\n colorDarken,\n}\n","import {DataUtil} from './_DataUtil'\nimport {getUniqueIdWithPrefix} from './_TypesHelpers'\n\nexport interface EventMeta {\n name: string\n callback: Function\n one: boolean\n fired: boolean\n}\n\nexport class EventHandlerUtil {\n static store: {\n [name: string]: {\n [handlerId: string]: EventMeta\n }\n } = {}\n\n private static setEventMetasByName(\n name: string,\n handlers: {\n [handlerId: string]: EventMeta\n }\n ): void {\n EventHandlerUtil.store[name] = handlers\n }\n\n private static getEventMetaByName(name: string):\n | {\n [handlerId: string]: EventMeta\n }\n | undefined {\n return EventHandlerUtil.store[name]\n }\n\n private static setEventMetaByNameAndHandlerId(\n name: string,\n handlerId: string,\n meta: EventMeta\n ): void {\n if (EventHandlerUtil.store[name]) {\n EventHandlerUtil.store[name][handlerId] = meta\n return\n }\n EventHandlerUtil.store[name] = {}\n EventHandlerUtil.store[name][handlerId] = meta\n }\n\n private static getEventMetaByHandlerId(name: string, handlerId: string): EventMeta | undefined {\n const handlersIds = EventHandlerUtil.store[name]\n if (!handlersIds) {\n return\n }\n return handlersIds[handlerId]\n }\n\n private static setFiredByNameAndHandlerId(name: string, handerId: string, fired: boolean): void {\n const meta = EventHandlerUtil.getEventMetaByHandlerId(name, handerId)\n if (!meta) {\n return\n }\n\n meta.fired = fired\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handerId, meta)\n }\n\n private static addEvent(\n element: HTMLElement,\n name: string,\n callback: Function,\n one: boolean = false\n ): string {\n const handlerId = getUniqueIdWithPrefix('event')\n const data = DataUtil.get(element, name)\n const handlersIds = data ? (data as string[]) : []\n handlersIds.push(handlerId)\n\n DataUtil.set(element, name, handlersIds)\n\n const meta: EventMeta = {\n name: name,\n callback: callback,\n one: one,\n fired: false,\n }\n\n EventHandlerUtil.setEventMetaByNameAndHandlerId(name, handlerId, meta)\n return handlerId\n }\n\n private static removeEvent(element: HTMLElement, name: string, handerId: string) {\n DataUtil.removeOne(element, name, handerId)\n const handlersIds = EventHandlerUtil.store[name]\n if (handlersIds) {\n return\n }\n\n delete EventHandlerUtil.store[name][handerId]\n }\n\n public static trigger(element: HTMLElement, name: string, target?: any, e?: Event): boolean {\n let returnValue = true\n if (!DataUtil.has(element, name)) {\n return returnValue\n }\n\n let eventValue\n let handlerId\n const data = DataUtil.get(element, name)\n const handlersIds = data ? (data as string[]) : []\n for (let i = 0; i < handlersIds.length; i++) {\n handlerId = handlersIds[i]\n if (EventHandlerUtil.store[name] && EventHandlerUtil.store[name][handlerId]) {\n const handler = EventHandlerUtil.store[name][handlerId]\n if (handler.name === name) {\n if (handler.one) {\n if (handler.fired) {\n EventHandlerUtil.store[name][handlerId].fired = true\n eventValue = handler.callback.call(this, target)\n }\n } else {\n eventValue = handler.callback.call(this, target)\n }\n\n if (eventValue === false) {\n returnValue = false\n }\n }\n }\n }\n return returnValue\n }\n\n public static on = function (element: HTMLElement, name: string, callBack: Function): void {\n EventHandlerUtil.addEvent(element, name, callBack, false)\n }\n\n public static one(element: HTMLElement, name: string, callBack: Function): void {\n EventHandlerUtil.addEvent(element, name, callBack, true)\n }\n\n public static off(element: HTMLElement, name: string, handerId: string): void {\n EventHandlerUtil.removeEvent(element, name, handerId)\n }\n}\n","import {\n EventHandlerUtil,\n getUniqueIdWithPrefix,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getAttributeValueByBreakpoint,\n throttle,\n getCSS,\n DOMEventHandlerUtil,\n ElementStyleUtil,\n} from '../_utils/index'\n\nexport class DrawerStore {\n static store: Map<string, DrawerComponent> = new Map()\n\n public static set(instanceId: string, drawerComponentObj: DrawerComponent): void {\n if (DrawerStore.has(instanceId)) {\n return\n }\n\n DrawerStore.store.set(instanceId, drawerComponentObj)\n }\n\n public static get(instanceId: string): DrawerComponent | undefined {\n if (!DrawerStore.has(instanceId)) {\n return\n }\n return DrawerStore.store.get(instanceId)\n }\n\n public static remove(instanceId: string): void {\n if (!DrawerStore.has(instanceId)) {\n return\n }\n\n DrawerStore.store.delete(instanceId)\n }\n\n public static has(instanceId: string): boolean {\n return DrawerStore.store.has(instanceId)\n }\n\n public static getAllInstances() {\n return DrawerStore.store\n }\n}\n\nexport interface DrawerOptions {\n overlay: boolean\n baseClass: string\n overlayClass: string\n direction: string\n}\n\nconst defaultDrawerOptions: DrawerOptions = {\n overlay: true,\n baseClass: 'drawer',\n overlayClass: 'drawer-overlay',\n direction: 'end',\n}\n\nclass DrawerComponent {\n element: HTMLElement\n overlayElement: HTMLElement | null = null\n toggleElement: HTMLElement | null = null\n options: DrawerOptions\n instanceUid: string\n name: string = ''\n shown: boolean = false\n lastWidth: number = 0\n closeElement: HTMLElement | null = null\n\n constructor(_element: HTMLElement, options: DrawerOptions) {\n this.element = _element\n this.options = Object.assign(defaultDrawerOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('drawer')\n this.overlayElement = null\n this.name = this.element.getAttribute('data-kt-drawer-name') || ''\n this.shown = false\n this.toggleElement = null\n // Event Handlers\n this._handlers()\n // Update Instance\n this._update()\n // Bind Instance\n DrawerStore.set(this.element.id, this)\n }\n\n private _handlers = () => {\n const togglers = this._getOption('toggle') as string\n const closers = this._getOption('close') as string\n\n if (togglers !== null && togglers.length > 0) {\n DOMEventHandlerUtil.on(document.body, togglers, 'click', (e: Event) => {\n e.preventDefault()\n this.toggleElement = document.getElementById(togglers)\n this._toggle()\n })\n }\n\n if (closers !== null && closers.length > 0) {\n DOMEventHandlerUtil.on(document.body, closers, 'click', (e: Event) => {\n e.preventDefault()\n this.closeElement = document.getElementById(closers)\n\n this._hide()\n })\n }\n }\n\n private _update = () => {\n const width = String(this._getOption('width'))\n const direction = String(this._getOption('direction'))\n\n // Reset state\n const hasBaseClass = this.element.classList.contains(`${this.options.baseClass}-on`)\n const bodyCanvasAttr = String(document.body.getAttribute(`data-kt-drawer-${this.name}-`))\n\n if (hasBaseClass === true && bodyCanvasAttr === 'on') {\n this.shown = true\n } else {\n this.shown = false\n }\n\n // Activate/deactivate\n if (this._getOption('activate') === true) {\n this.element.classList.add(this.options.baseClass)\n this.element.classList.add(`${this.options.baseClass}-${direction}`)\n ElementStyleUtil.set(this.element, 'width', width, true)\n\n this.lastWidth = parseInt(width)\n } else {\n ElementStyleUtil.set(this.element, 'width', '')\n this.element.classList.remove(this.options.baseClass)\n this.element.classList.remove(`${this.options.baseClass}-${direction}`)\n this._hide()\n }\n }\n\n private _getOption = (name: string) => {\n const attr = this.element.getAttribute(`data-kt-drawer-${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n return true\n } else {\n if (value !== null && String(value) === 'false') {\n return false\n }\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n private _toggle = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.toggle') === false) {\n return\n }\n\n if (this.shown) {\n this._hide()\n } else {\n this._show()\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.toggled')\n }\n\n private _hide = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.hide') === false) {\n return\n }\n\n this.shown = false\n this._deleteOverlay()\n document.body.removeAttribute(`data-kt-drawer-${this.name}`)\n document.body.removeAttribute(`data-kt-drawer`)\n this.element.classList.remove(`${this.options.baseClass}-on`)\n if (this.toggleElement != null) {\n this.toggleElement.classList.remove('active')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.after.hidden')\n }\n\n private _show = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.drawer.show') === false) {\n return\n }\n\n this.shown = true\n this._createOverlay()\n document.body.setAttribute(`data-kt-drawer-${this.name}`, 'on')\n document.body.setAttribute('data-kt-drawer', 'on')\n this.element.classList.add(`${this.options.baseClass}-on`)\n if (this.toggleElement !== null) {\n this.toggleElement.classList.add('active')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.drawer.shown')\n }\n\n private _createOverlay = () => {\n if (this._getOption('overlay') === true) {\n this.overlayElement = document.createElement('DIV')\n const elementZIndex = getCSS(this.element, 'z-index')\n if (elementZIndex) {\n const overlayZindex = parseInt(elementZIndex) - 1\n ElementStyleUtil.set(this.overlayElement, 'z-index', overlayZindex) // update\n }\n document.body.append(this.overlayElement)\n const overlayClassOption = this._getOption('overlay-class')\n if (overlayClassOption) {\n this.overlayElement.classList.add(overlayClassOption.toString())\n }\n this.overlayElement.addEventListener('click', (e) => {\n e.preventDefault()\n this._hide()\n })\n }\n }\n\n private _deleteOverlay = () => {\n if (this.overlayElement !== null && this.overlayElement.parentNode) {\n this.overlayElement.parentNode.removeChild(this.overlayElement)\n }\n }\n\n private _getDirection = () => {\n return String(this._getOption('direction')) === 'left' ? 'left' : 'right'\n }\n\n private _getWidth = () => {\n let width = this._getOption('width')\n if (width && width === 'auto') {\n width = getCSS(this.element, 'width')\n }\n\n return width\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public toggle = () => {\n this._toggle()\n }\n\n public show = () => {\n this._show()\n }\n\n public hide = () => {\n this._hide()\n }\n\n public isShown = () => {\n return this.shown\n }\n\n public update = () => {\n this._update()\n }\n\n public goElement = () => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handerId: string) => {\n return EventHandlerUtil.off(this.element, name, handerId)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static hasInstace = (elementId: string): boolean => {\n return DrawerStore.has(elementId)\n }\n\n public static getInstance = (elementId: string) => {\n return DrawerStore.get(elementId)\n }\n\n public static hideAll = () => {\n const oldInstances = DrawerStore.getAllInstances()\n oldInstances.forEach((dr) => {\n dr.hide()\n })\n }\n\n public static updateAll = () => {\n const oldInstances = DrawerStore.getAllInstances()\n oldInstances.forEach((dr) => {\n dr.update()\n })\n }\n\n // Create Instances\n public static createInstances(selector: string): void {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let drawer = DrawerComponent.getInstance(item.id)\n if (!drawer) {\n drawer = new DrawerComponent(item, defaultDrawerOptions)\n }\n drawer.element = item\n drawer.hide()\n })\n }\n\n // Dismiss instances\n public static handleDismiss = () => {\n // External drawer toggle handler\n DOMEventHandlerUtil.on(document.body, '[data-kt-drawer-dismiss=\"true\"]', 'click', () => {\n /* @ts-ignore */\n const element = this.closest('[data-kt-drawer=\"true\"]')\n if (element) {\n const drawer = DrawerComponent.getInstance(element)\n if (drawer && drawer.isShown()) {\n drawer.hide()\n }\n }\n })\n }\n\n // Global Initialization\n public static initGlobalHandlers(): void {\n // Window Resize Handling\n window.addEventListener('resize', function () {\n let timer: number | undefined\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n const elements = document.body.querySelectorAll('[data-kt-drawer=\"true\"]')\n elements.forEach((el) => {\n const item = el as HTMLElement\n const instance = DrawerComponent.getInstance(item.id)\n if (instance) {\n instance.element = item\n instance.update()\n }\n })\n },\n 200\n )\n })\n }\n\n public static bootstrap = () => {\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\n DrawerComponent.initGlobalHandlers()\n DrawerComponent.handleDismiss()\n }\n\n public static reinitialization = () => {\n DrawerComponent.createInstances('[data-kt-drawer=\"true\"]')\n DrawerComponent.hideAll()\n DrawerComponent.updateAll()\n DrawerComponent.handleDismiss()\n }\n}\n\nexport {DrawerComponent, defaultDrawerOptions}\n","import {\n DataUtil,\n ElementStyleUtil,\n EventHandlerUtil,\n getUniqueIdWithPrefix,\n getAttributeValueByBreakpoint,\n} from '../_utils/index'\n\nexport interface FeedbackOptions {\n width?: number\n placement?: string\n content?: string\n type?: string\n}\n\nconst defaultFeedbackOptions: FeedbackOptions = {\n width: 100,\n placement: 'top-center',\n content: '',\n type: 'popup',\n}\n\nclass FeedbackComponent {\n element: HTMLElement\n options: FeedbackOptions\n instanceUid: string\n shown: boolean\n\n constructor(_element: HTMLElement, options: FeedbackOptions) {\n this.element = _element\n this.options = Object.assign(defaultFeedbackOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('feedback')\n this.shown = false\n\n // Event handlers\n this._handlers() // will add in the show popup\n DataUtil.set(this.element, 'feedback', this)\n }\n\n private _handlers = () => {\n this.element.addEventListener('click', (e: Event) => {\n e.preventDefault()\n this._go()\n })\n }\n\n private _go = () => {}\n\n private showPopup = () => {\n this.element = document.createElement('DIV')\n\n this.element.classList.add('feedback feedback-popup')\n this.element.innerHTML = this.options.content || ''\n\n if (this.options.placement === 'top-center') {\n this.setPopupTopCenterPosition()\n }\n\n document.body.appendChild(this.element)\n this.element.classList.add('feedback-shown')\n this.shown = true\n }\n\n private setPopupTopCenterPosition = () => {\n const width = getAttributeValueByBreakpoint(this.options.width?.toString() || '0')\n const height = ElementStyleUtil.get(this.element, 'height')\n this.element.classList.add('feedback-top-center')\n ElementStyleUtil.set(this.element, 'width', width)\n ElementStyleUtil.set(this.element, 'left', '50%')\n ElementStyleUtil.set(this.element, 'top', '-' + height)\n }\n\n private hidePopup = () => {\n this.element.remove()\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public show = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.show') === false) {\n return\n }\n\n if (this.options.type === 'popup') {\n this.showPopup()\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.feedback.shown')\n\n return this\n }\n\n public hide = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.feedback.hide') === false) {\n return\n }\n\n if (this.options.type === 'popup') {\n this.hidePopup()\n }\n\n this.shown = false\n EventHandlerUtil.trigger(this.element, 'kt.feedback.hidden')\n return this\n }\n\n public isShown = () => {\n return this.isShown\n }\n\n public getElement = () => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handerId: string) => {\n return EventHandlerUtil.off(this.element, name, handerId)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Create Instances\n public static createInstances(selector: string) {\n throw new Error('not implemented')\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement) {\n throw new Error('not implemented')\n }\n\n public static getInstance(element: HTMLElement) {\n throw new Error('not implemented')\n }\n\n public static bootstrap(attr: string = '[data-Feedback]') {\n throw new Error('not implemented')\n }\n}\n\nexport {FeedbackComponent, defaultFeedbackOptions}\n","import {EventHandlerUtil, DataUtil, getUniqueIdWithPrefix, getCSS} from '../_utils/index'\n\nexport interface IImageInputOptions {}\n\nexport interface IImageInputQueries {\n componentName: string\n instanseQuery: string\n inputQuery: string\n wrapperQuery: string\n cancelQuery: string\n removeQuery: string\n hiddenQuery: string\n}\n\nconst defaultImageInputOptions = {}\n\nconst defaultImageInputQueires: IImageInputQueries = {\n componentName: 'image-input',\n instanseQuery: '[data-kt-image-input]',\n inputQuery: 'input[type=\"file\"]',\n wrapperQuery: '.image-input-wrapper',\n cancelQuery: '[data-kt-image-input-action=\"cancel\"]',\n removeQuery: '[data-kt-image-input-action=\"remove\"]',\n hiddenQuery: 'input[type=\"hidden\"]',\n}\n\nclass ImageInputComponent {\n element: HTMLElement\n inputElement: HTMLInputElement | null\n wrapperElement: HTMLElement | null\n cancelElement: HTMLElement | null\n removeElement: HTMLElement | null\n hiddenElement: HTMLInputElement | null\n src: string = ''\n options: IImageInputOptions\n queries: IImageInputQueries\n uid: string\n value: string = ''\n\n constructor(_element: HTMLElement, _options: IImageInputOptions, _queries: IImageInputQueries) {\n // Variables\n this.options = Object.assign(defaultImageInputOptions, _options)\n this.queries = _queries\n this.uid = getUniqueIdWithPrefix(this.queries.componentName)\n\n // Elements\n this.element = _element\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\n this.wrapperElement = this.element.querySelector(this.queries.wrapperQuery)\n this.cancelElement = this.element.querySelector(this.queries.cancelQuery)\n this.removeElement = this.element.querySelector(this.queries.removeQuery)\n this.hiddenElement = this.element.querySelector(this.queries.hiddenQuery)\n if (this.wrapperElement) {\n this.src = getCSS(this.wrapperElement, 'backgroundImage')\n }\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private handlers(): void {\n this.element.addEventListener('change', this._change)\n if (this.cancelElement) {\n this.cancelElement.addEventListener('click', this._cancel)\n }\n\n if (this.removeElement) {\n this.removeElement.addEventListener('click', this._cancel)\n }\n }\n\n // Event Handlers\n private _change = (e: Event) => {\n e.preventDefault()\n\n if (this.inputElement !== null && this.inputElement.files && this.inputElement.files[0]) {\n // Fire change event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.change', e) === false) {\n return\n }\n\n const reader = new FileReader()\n\n reader.onload = (e: ProgressEvent<FileReader>) => {\n if (this.wrapperElement && e.target) {\n this.wrapperElement.style.setProperty('background-image', `url('${e.target.result}')`)\n }\n }\n\n reader.readAsDataURL(this.inputElement.files[0])\n this.element.classList.add('image-input-changed')\n this.element.classList.remove('image-input-empty')\n\n // Fire removed event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.changed', e)\n }\n }\n\n private _cancel = (e: Event) => {\n e.preventDefault()\n\n // Fire cancel event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.cancel', e) === false) {\n return\n }\n\n this.element.classList.remove('image-input-changed')\n this.element.classList.remove('image-input-empty')\n this.element.style.setProperty('background-image', this.src)\n if (this.inputElement) {\n this.inputElement.value = ''\n }\n\n if (this.hiddenElement !== null) {\n this.hiddenElement.value = '0'\n }\n\n // Fire canceled event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.canceled', e)\n }\n\n private _remove = (e: Event) => {\n e.preventDefault()\n\n // Fire remove event\n if (EventHandlerUtil.trigger(this.element, 'kt.imageinput.remove', e) === false) {\n return\n }\n\n this.element.classList.remove('image-input-changed')\n this.element.classList.add('image-input-empty')\n if (this.wrapperElement) {\n this.wrapperElement.style.setProperty('background-image', 'none')\n }\n\n if (this.inputElement) {\n this.inputElement.value = ''\n }\n\n if (this.hiddenElement !== null) {\n this.hiddenElement.value = '1'\n }\n\n // Fire removed event\n EventHandlerUtil.trigger(this.element, 'kt.imageinput.removed', e)\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public getInputElement(): HTMLInputElement | null {\n return this.inputElement\n }\n\n public getElement(): HTMLElement {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultImageInputQueires.componentName\n ): ImageInputComponent | undefined => {\n const ImageInput = DataUtil.get(el, componentName)\n if (ImageInput) {\n return ImageInput as ImageInputComponent\n }\n }\n\n public static createInstances = (\n selector: string = defaultImageInputQueires.instanseQuery,\n options: IImageInputOptions = defaultImageInputOptions,\n queries: IImageInputQueries = defaultImageInputQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let ImageInput = ImageInputComponent.getInstance(item)\n if (!ImageInput) {\n ImageInput = new ImageInputComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultImageInputQueires.instanseQuery,\n options: IImageInputOptions = defaultImageInputOptions,\n queries: IImageInputQueries = defaultImageInputQueires\n ): ImageInputComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let ImageInput = ImageInputComponent.getInstance(item)\n if (!ImageInput) {\n ImageInput = new ImageInputComponent(item, options, queries)\n }\n return ImageInput\n }\n\n public static bootstrap = (selector: string = defaultImageInputQueires.instanseQuery) => {\n ImageInputComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultImageInputQueires.instanseQuery) => {\n ImageInputComponent.createInstances(selector)\n }\n}\nexport {ImageInputComponent, defaultImageInputOptions, defaultImageInputQueires}\n","/* eslint-disable no-useless-escape */\n// DOCS: https://javascript.info/cookie\nexport class CookieComponent {\n /**\n * Returns the cookie with the given name, or undefined if not found\n *\n * @param {string} name - cookie name\n * @returns string | null\n */\n public static get(name: string): string | undefined {\n let matches = document.cookie.match(\n new RegExp('(?:^|; )' + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + '=([^;]*)')\n )\n return matches ? decodeURIComponent(matches[1]) : undefined\n }\n\n /**\n * Please note that a cookie value is encoded,\n * so getCookie uses a built-in decodeURIComponent function to decode it.\n *\n * @param {string} name - cookie name\n * @param {string | number | boolean} value - cookie value\n * @param {any} cookieOptions - cookie options\n * @returns void\n */\n public static set(name: string, value: string | number | boolean, cookieOptions: any): void {\n const options = {\n path: '/',\n // add other defaults here if necessary\n ...cookieOptions,\n }\n\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString()\n }\n\n let updatedCookie = encodeURIComponent(name) + '=' + encodeURIComponent(value)\n\n for (let optionKey in options) {\n updatedCookie += '; ' + optionKey\n let optionValue = options[optionKey]\n if (optionValue !== true) {\n updatedCookie += '=' + optionValue\n }\n }\n\n document.cookie = updatedCookie\n }\n\n /**\n * To delete a cookie, we can call it with a negative expiration date\n *\n * @param {string} name\n */\n public static delete(name: string): void {\n CookieComponent.set(name, '', {\n 'max-age': -1,\n })\n }\n}\n","import {\n DataUtil,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getAttributeValueByBreakpoint,\n getViewPort,\n isVisibleElement,\n throttle,\n getCSS,\n ElementStyleUtil,\n} from '../_utils/index'\nimport {CookieComponent} from './_CookieComponent'\n\nexport interface ScrollOptions {\n saveState?: boolean\n}\n\nconst defaultScrollOptions: ScrollOptions = {\n saveState: true,\n}\n\nclass ScrollComponent {\n element: HTMLElement\n options: ScrollOptions\n id: string\n\n constructor(_element: HTMLElement, options: ScrollOptions) {\n this.element = _element\n this.options = Object.assign(defaultScrollOptions, options)\n this.id = this.element.getAttribute('id') || ''\n this.update()\n // this.element.setAttribute('data-kt-scrolltop', 'true')\n DataUtil.set(this.element, 'scroll', this)\n }\n\n private getOption = (name: string) => {\n if (this.element.hasAttribute('data-kt-scroll-' + name) === true) {\n const attr = this.element.getAttribute('data-kt-scroll-' + name) || ''\n let value: string | JSON | boolean = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n value = true\n } else if (value !== null && String(value) === 'false') {\n value = false\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n private getHeightType = () => {\n if (this.getOption('height')) {\n return 'height'\n }\n if (this.getOption('min-height')) {\n return 'min-height'\n }\n if (this.getOption('max-height')) {\n return 'max-height'\n }\n }\n\n private getAutoHeight = () => {\n let height: number | string = getViewPort().height\n const dependencies = this.getOption('dependencies')\n const wrappers = this.getOption('wrappers')\n const offset = this.getOption('offset')\n\n // Height dependencies\n if (dependencies !== null) {\n const elements = document.querySelectorAll(dependencies as string)\n if (elements && elements.length > 0) {\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i] as HTMLElement\n if (isVisibleElement(element) === false) {\n continue\n }\n\n height = height - parseInt(getCSS(element, 'height'))\n height = height - parseInt(getCSS(element, 'margin-top'))\n height = height - parseInt(getCSS(element, 'margin-bottom'))\n\n const borderTop = getCSS(element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n }\n }\n }\n\n // Wrappers\n if (wrappers !== null) {\n var elements = document.querySelectorAll(wrappers as string)\n if (elements && elements.length > 0) {\n for (let i = 0, len = elements.length; i < len; i++) {\n const element = elements[i] as HTMLElement\n\n if (!isVisibleElement(element)) {\n continue\n }\n\n height = height - parseInt(getCSS(element, 'margin-top'))\n height = height - parseInt(getCSS(element, 'margin-bottom'))\n height = height - parseInt(getCSS(element, 'padding-top'))\n height = height - parseInt(getCSS(element, 'padding-bottom'))\n\n const borderTop = getCSS(element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n }\n }\n }\n\n // Custom offset\n if (offset !== null) {\n height = height - parseInt(offset as string)\n }\n\n height = height - parseInt(getCSS(this.element, 'margin-top'))\n height = height - parseInt(getCSS(this.element, 'margin-bottom'))\n\n const borderTop = getCSS(this.element, 'border-top')\n if (borderTop) {\n height = height - parseInt(borderTop)\n }\n\n const borderBottom = getCSS(this.element, 'border-bottom')\n if (borderBottom) {\n height = height - parseInt(borderBottom)\n }\n\n height = String(height) + 'px'\n\n return height\n }\n\n private setupHeight = () => {\n let height = this.getHeight()\n let heightType = this.getHeightType() as string\n\n // Set height\n if (height !== null && height.length > 0) {\n ElementStyleUtil.set(this.element, heightType, height)\n } else {\n ElementStyleUtil.set(this.element, heightType, '')\n }\n }\n\n private setupState = () => {\n if (this.getOption('save-state') === true && this.id) {\n const cookie = CookieComponent.get(this.id + 'st')\n if (cookie) {\n var pos = parseInt(cookie)\n\n if (pos > 0) {\n this.element.scrollTop = pos\n }\n }\n }\n }\n\n private setupScrollHandler = () => {\n if (this.getOption('save-state') === true && this.id) {\n this.element.addEventListener('scroll', this.scrollHandler)\n } else {\n this.element.removeEventListener('scroll', this.scrollHandler)\n }\n }\n\n private scrollHandler = () => {\n const cookieId = this.id + 'st'\n CookieComponent.set(cookieId, this.element.scrollTop, {})\n }\n\n private destroyScrollHandler = () => {\n this.element.removeEventListener('scroll', this.scrollHandler)\n }\n\n private resetHeight = () => {\n const heghtType = this.getHeightType()\n if (heghtType) {\n ElementStyleUtil.set(this.element, heghtType, '')\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public update = () => {\n // Activate/deactivate\n if (\n this.getOption('activate') === true ||\n !this.element.hasAttribute('data-kt-scroll-activate')\n ) {\n this.setupHeight()\n this.setupScrollHandler()\n this.setupState()\n } else {\n this.resetHeight()\n this.destroyScrollHandler()\n }\n }\n\n public getHeight = () => {\n const heightType = this.getHeightType()\n const height = this.getOption(heightType || '')\n if (height instanceof Function) {\n return height.call(height)\n } else if (height !== null && typeof height === 'string' && height.toLowerCase() === 'auto') {\n return this.getAutoHeight()\n } else {\n return height\n }\n }\n\n public getElement = () => {\n return this.element\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement) {\n return DataUtil.has(element, 'scroll')\n }\n\n public static getInstance(element: HTMLElement): ScrollComponent | undefined {\n if (element !== null && ScrollComponent.hasInstace(element)) {\n const data = DataUtil.get(element, 'scroll')\n if (data) {\n return data as ScrollComponent\n }\n }\n }\n\n // Create Instances\n public static createInstances(selector: string) {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element: Element) => {\n const item = element as HTMLElement\n let scroll = ScrollComponent.getInstance(item)\n if (!scroll) {\n scroll = new ScrollComponent(item, defaultScrollOptions)\n }\n })\n }\n\n public static destroyAll(attr: string = '[data-kt-scroll=\"true\"]') {}\n\n public static bootstrap(attr: string = '[data-kt-scroll=\"true\"]') {\n ScrollComponent.createInstances(attr)\n ScrollComponent.resize()\n }\n\n public static createInstance = (\n element: HTMLElement,\n options: ScrollOptions = defaultScrollOptions\n ): ScrollComponent | undefined => {\n let scroll = ScrollComponent.getInstance(element)\n if (!scroll) {\n scroll = new ScrollComponent(element, options)\n }\n return scroll\n }\n\n public static reinitialization(attr: string = '[data-kt-scroll=\"true\"]') {\n ScrollComponent.createInstances(attr)\n }\n\n public static updateAll() {\n const elements = document.body.querySelectorAll('[data-kt-scroll=\"true\"]')\n elements.forEach((element: Element) => {\n const instance = ScrollComponent.getInstance(element as HTMLElement)\n if (instance) {\n instance.update()\n }\n })\n }\n\n public static resize() {\n // Window Resize Handling\n window.addEventListener('resize', function () {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n ScrollComponent.updateAll()\n },\n 200\n )\n })\n }\n}\n\nexport {ScrollComponent, defaultScrollOptions}\n","import {\n getScrollTop,\n getAttributeValueByBreakpoint,\n throttle,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getUniqueIdWithPrefix,\n DataUtil,\n ElementAnimateUtil,\n} from '../_utils/index'\n\nexport interface IScrollTopOptions {\n offset: number\n speed: number\n}\n\nconst defaultScrollTopOptions: IScrollTopOptions = {\n offset: 200,\n speed: 600,\n}\n\nclass ScrollTopComponent {\n element: HTMLElement\n options: IScrollTopOptions\n instanceUid: string\n\n constructor(_element: HTMLElement, options: IScrollTopOptions) {\n this.element = _element\n this.options = Object.assign(defaultScrollTopOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('scrolltop')\n\n // Event Handlers\n this._handlers()\n\n // Bind Instance\n DataUtil.set(this.element, 'scrolltop', this)\n }\n\n private _handlers = () => {\n let timer: number\n window.addEventListener('scroll', () => {\n throttle(timer, () => {\n this._scroll()\n })\n })\n\n this.element.addEventListener('click', (e: Event) => {\n e.preventDefault()\n this._go()\n })\n }\n\n private _scroll = () => {\n const offset = parseInt(this._getOption('offset') as string)\n const pos = getScrollTop() // current vertical position\n if (pos > offset) {\n if (!document.body.hasAttribute('data-kt-scrolltop')) {\n document.body.setAttribute('data-kt-scrolltop', 'on')\n }\n } else {\n if (document.body.hasAttribute('data-kt-scrolltop')) {\n document.body.removeAttribute('data-kt-scrolltop')\n }\n }\n }\n\n private _go = () => {\n const speed = parseInt(this._getOption('speed') as string)\n ElementAnimateUtil.scrollTop(0, speed)\n }\n\n private _getOption = (name: string) => {\n const attr = this.element.getAttribute(`data-kt-scrolltop-${name}`)\n if (attr) {\n const value = getAttributeValueByBreakpoint(attr)\n return value !== null && String(value) === 'true'\n }\n\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n }\n\n return null\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n\n // Plugin API\n public go = () => {\n return this._go()\n }\n\n public getElement = () => {\n return this.element\n }\n\n // Static methods\n public static getInstance = (el: HTMLElement): ScrollTopComponent | undefined => {\n const scrollTop = DataUtil.get(el, 'scrolltop')\n if (scrollTop) {\n return scrollTop as ScrollTopComponent\n }\n }\n\n public static createInstances = (selector: string) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let scrollTop = ScrollTopComponent.getInstance(item)\n if (!scrollTop) {\n scrollTop = new ScrollTopComponent(item, defaultScrollTopOptions)\n }\n })\n }\n\n public static createInsance = (\n selector: string,\n options: IScrollTopOptions = defaultScrollTopOptions\n ): ScrollTopComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let scrollTop = ScrollTopComponent.getInstance(item)\n if (!scrollTop) {\n scrollTop = new ScrollTopComponent(item, options)\n }\n return scrollTop\n }\n\n public static bootstrap = () => {\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\n }\n\n public static reinitialization = () => {\n ScrollTopComponent.createInstances('[data-kt-scrolltop=\"true\"]')\n }\n\n public static goTop = () => {\n ElementAnimateUtil.scrollTop(0, defaultScrollTopOptions.speed)\n }\n}\nexport {ScrollTopComponent, defaultScrollTopOptions}\n","import {\n getElementIndex,\n getUniqueIdWithPrefix,\n ElementAnimateUtil,\n EventHandlerUtil,\n DataUtil,\n DOMEventHandlerUtil,\n ElementStyleUtil,\n} from '../_utils/index'\n\nexport interface IStepperOptions {\n startIndex: number\n animation: boolean\n animationSpeed: string\n animationNextClass: string\n animationPreviousClass: string\n}\n\nconst defaultStepperOptions: IStepperOptions = {\n startIndex: 1,\n animation: false,\n animationSpeed: '0.3s',\n animationNextClass: 'animate__animated animate__slideInRight animate__fast',\n animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast',\n}\n\nclass StepperComponent {\n element: HTMLElement\n options: IStepperOptions\n instanceUid: string\n steps: NodeListOf<HTMLElement>\n btnNext: HTMLElement | null\n btnPrev: HTMLElement | null\n btnSubmit: HTMLElement | null\n totatStepsNumber: number = 0\n passedStepIndex: number = 0\n currentStepIndex: number = 1\n\n constructor(_element: HTMLElement, options: IStepperOptions) {\n this.element = _element\n this.options = Object.assign(defaultStepperOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('stepper')\n\n // Elements\n this.steps = this.element.querySelectorAll('[data-kt-stepper-element=\"nav\"]')\n this.btnNext = this.element.querySelector('[data-kt-stepper-action=\"next\"]')\n this.btnPrev = this.element.querySelector('[data-kt-stepper-action=\"previous\"]')\n this.btnSubmit = this.element.querySelector('[data-kt-stepper-action=\"submit\"]')\n\n // Variables\n this.totatStepsNumber = this.steps?.length | 0\n this.passedStepIndex = 0\n this.currentStepIndex = 1\n\n // Set Current Step\n if (this.options.startIndex > 1) {\n this._goTo(this.options.startIndex)\n }\n\n // Event Handlers\n this.initHandlers()\n\n // Bind Instance\n DataUtil.set(this.element, 'stepper', this)\n }\n\n private _goTo = (index: number) => {\n EventHandlerUtil.trigger(this.element, 'kt.stepper.change')\n // Skip if this step is already shown\n if (index === this.currentStepIndex || index > this.totatStepsNumber || index < 0) {\n return\n }\n\n // Validate step number\n index = parseInt(index.toString())\n // Set current step\n this.passedStepIndex = this.currentStepIndex\n this.currentStepIndex = index\n\n // Refresh elements\n this.refreshUI()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.changed')\n }\n\n private initHandlers = () => {\n this.btnNext?.addEventListener('click', (e: Event) => {\n e.preventDefault()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.next', e)\n })\n\n this.btnPrev?.addEventListener('click', (e: Event) => {\n e.preventDefault()\n\n EventHandlerUtil.trigger(this.element, 'kt.stepper.previous', e)\n })\n\n DOMEventHandlerUtil.on(this.element, '[data-kt-stepper-action=\"step\"]', 'click', (e: Event) => {\n e.preventDefault()\n\n if (this.steps && this.steps.length > 0) {\n for (let i = 0; i < this.steps.length; i++) {\n if ((this.steps[i] as HTMLElement) === this.element) {\n let index = i + 1\n\n const stepDirection = this._getStepDirection(index)\n EventHandlerUtil.trigger(this.element, `stepper.${stepDirection}`, e)\n return\n }\n }\n }\n })\n }\n\n private _getStepDirection = (index: number) => {\n return index > this.currentStepIndex ? 'next' : 'previous'\n }\n\n private getStepContent = (index: number) => {\n const content = this.element.querySelectorAll('[data-kt-stepper-element=\"content\"]')\n if (!content) {\n return false\n }\n\n if (content[index - 1]) {\n return content[index - 1]\n }\n\n return false\n }\n\n private getLastStepIndex = () => {\n return this.totatStepsNumber\n }\n\n private getTotalStepsNumber = () => {\n return this.totatStepsNumber\n }\n\n private refreshUI = () => {\n let state = ''\n\n if (this.isLastStep()) {\n state = 'last'\n } else if (this.isFirstStep()) {\n state = 'first'\n } else {\n state = 'between'\n }\n\n // Set state class\n this.element.classList.remove('last')\n this.element.classList.remove('first')\n this.element.classList.remove('between')\n\n this.element.classList.add(state)\n\n // Step Items\n const elements = this.element.querySelectorAll(\n '[data-kt-stepper-element=\"nav\"], [data-kt-stepper-element=\"content\"], [data-kt-stepper-element=\"info\"]'\n )\n\n if (!elements || elements.length <= 0) {\n return\n }\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var element = elements[i] as HTMLElement\n var index = getElementIndex(element) + 1\n\n element.classList.remove('current')\n element.classList.remove('completed')\n element.classList.remove('pending')\n\n if (index === this.currentStepIndex) {\n element.classList.add('current')\n\n if (\n this.options.animation !== false &&\n element.getAttribute('data-kt-stepper-element') === 'content'\n ) {\n ElementStyleUtil.set(element, 'animationDuration', this.options.animationSpeed)\n\n const animation =\n this._getStepDirection(this.passedStepIndex) === 'previous'\n ? this.options.animationPreviousClass\n : this.options.animationNextClass\n ElementAnimateUtil.animateClass(element, animation)\n }\n } else {\n if (index < this.currentStepIndex) {\n element.classList.add('completed')\n } else {\n element.classList.add('pending')\n }\n }\n }\n }\n\n private isLastStep = () => {\n return this.currentStepIndex === this.totatStepsNumber\n }\n\n private isFirstStep = () => {\n return this.currentStepIndex === 1\n }\n\n private isBetweenStep = () => {\n return this.isLastStep() === false && this.isFirstStep() === false\n }\n\n // ///////////////////////\n // // ** Public API ** //\n // ///////////////////////\n\n // // Plugin API\n public goto = (index: number) => {\n return this._goTo(index)\n }\n\n public goNext = () => {\n return this.goto(this.getNextStepIndex())\n }\n\n public goPrev = () => {\n return this.goto(this.getPrevStepIndex())\n }\n\n public goFirst = () => {\n return this.goto(1)\n }\n\n public goLast = () => {\n return this.goto(this.getLastStepIndex())\n }\n\n public getCurrentStepIndex = () => {\n return this.currentStepIndex\n }\n\n public getNextStepIndex = () => {\n if (this.totatStepsNumber >= this.currentStepIndex + 1) {\n return this.currentStepIndex + 1\n } else {\n return this.totatStepsNumber\n }\n }\n\n public getPassedStepIndex = () => {\n return this.passedStepIndex\n }\n\n public getPrevStepIndex = () => {\n if (this.currentStepIndex - 1 > 1) {\n return this.currentStepIndex - 1\n } else {\n return 1\n }\n }\n\n public getElement = (index: number) => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n public destroy = () => {\n console.log('destroy stepper')\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement): boolean {\n return DataUtil.has(element, 'stepper')\n }\n\n public static getInstance(element: HTMLElement): StepperComponent | undefined {\n if (element !== null && StepperComponent.hasInstace(element)) {\n const data = DataUtil.get(element, 'stepper')\n if (data) {\n return data as StepperComponent\n }\n }\n }\n\n // Create Instances\n public static createInstances(selector: string): void {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let stepper = StepperComponent.getInstance(item)\n if (!stepper) {\n stepper = new StepperComponent(item, defaultStepperOptions)\n }\n })\n }\n\n public static createInsance = (\n element: HTMLElement,\n options: IStepperOptions = defaultStepperOptions\n ): StepperComponent | null => {\n if (!element) {\n return null\n }\n let stepper = StepperComponent.getInstance(element)\n if (!stepper) {\n stepper = new StepperComponent(element, options)\n }\n return stepper\n }\n\n public static bootstrap(attr: string = '[data-kt-stepper]') {\n StepperComponent.createInstances(attr)\n }\n}\n\nexport {StepperComponent, defaultStepperOptions}\n","import {\n getElementOffset,\n getScrollTop,\n getAttributeValueByBreakpoint,\n getUniqueIdWithPrefix,\n getObjectPropertyValueByKey,\n stringSnakeToCamel,\n getCSS,\n DataUtil,\n ElementAnimateUtil,\n ElementStyleUtil,\n EventHandlerUtil,\n} from '../_utils/index'\n\nexport interface StickyOptions {\n offset: number\n reverse: boolean\n animation: boolean\n animationSpeed: string\n animationClass: string\n}\n\nconst defaultStickyOptions: StickyOptions = {\n offset: 200,\n reverse: false,\n animation: true,\n animationSpeed: '0.3s',\n animationClass: 'animation-slide-in-down',\n}\n\nclass StickyComponent {\n element: HTMLElement\n options: StickyOptions\n instanceUid: string\n instanceName: string | null = ''\n attributeName: string\n eventTriggerState: boolean\n lastScrollTop: number\n\n constructor(_element: HTMLElement, options: StickyOptions) {\n this.element = _element\n this.options = Object.assign(defaultStickyOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('sticky')\n this.instanceName = this.element.getAttribute('data-kt-sticky-name')\n this.attributeName = 'data-kt-sticky-' + this.instanceName\n this.eventTriggerState = true\n this.lastScrollTop = 0\n\n // Event Handlers\n window.addEventListener('scroll', this.scroll)\n\n // Initial Launch\n this.scroll()\n\n DataUtil.set(this.element, 'sticky', this)\n }\n\n private scroll = () => {\n let offset = this.getOption('offset')\n let reverse = this.getOption('reverse')\n\n // Exit if false\n if (offset === false) {\n return\n }\n\n let offsetNum = 0\n if (typeof offset === 'string') {\n offsetNum = parseInt(offset)\n }\n\n const st = getScrollTop()\n\n // Reverse scroll mode\n if (reverse === true) {\n // Release on reverse scroll mode\n if (st > offsetNum && this.lastScrollTop < st) {\n if (document.body.hasAttribute(this.attributeName) === false) {\n this.enable()\n document.body.setAttribute(this.attributeName, 'on')\n }\n\n if (this.eventTriggerState === true) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n\n this.eventTriggerState = false\n }\n } else {\n // Back scroll mode\n if (document.body.hasAttribute(this.attributeName)) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n }\n\n if (this.eventTriggerState === false) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n\n this.eventTriggerState = true\n }\n }\n\n this.lastScrollTop = st\n return\n }\n\n // Classic scroll mode\n if (st > offsetNum) {\n if (document.body.hasAttribute(this.attributeName) === false) {\n this.enable()\n document.body.setAttribute(this.attributeName, 'on')\n }\n\n if (this.eventTriggerState === true) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.on')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n this.eventTriggerState = false\n }\n } else {\n // back scroll mode\n if (document.body.hasAttribute(this.attributeName) === true) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n }\n\n if (this.eventTriggerState === false) {\n EventHandlerUtil.trigger(this.element, 'kt.sticky.off')\n EventHandlerUtil.trigger(this.element, 'kt.sticky.change')\n this.eventTriggerState = true\n }\n }\n }\n\n private getOption = (name: string) => {\n const dataStickyAttr = 'data-kt-sticky-' + name\n if (this.element.hasAttribute(dataStickyAttr) === true) {\n const attrValueInStr = this.element.getAttribute(dataStickyAttr)\n const attrValue = getAttributeValueByBreakpoint(attrValueInStr || '')\n if (attrValue !== null && String(attrValue) === 'true') {\n return true\n } else if (attrValue !== null && String(attrValue) === 'false') {\n return false\n }\n\n return attrValue\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n }\n }\n }\n\n private disable = () => {\n ElementStyleUtil.remove(this.element, 'top')\n ElementStyleUtil.remove(this.element, 'width')\n ElementStyleUtil.remove(this.element, 'left')\n ElementStyleUtil.remove(this.element, 'right')\n ElementStyleUtil.remove(this.element, 'z-index')\n ElementStyleUtil.remove(this.element, 'position')\n }\n\n private enable = (update: boolean = false) => {\n const top = this.getOption('top')\n const left = this.getOption('left')\n // const right = this.getOption(\"right\");\n let width = this.getOption('width')\n const zindex = this.getOption('zindex')\n\n if (update !== true && this.getOption('animation') === true) {\n ElementStyleUtil.set(this.element, 'animationDuration', this.getOption('animationSpeed'))\n ElementAnimateUtil.animateClass(this.element, 'animation ' + this.getOption('animationClass'))\n }\n\n if (zindex !== null) {\n ElementStyleUtil.set(this.element, 'z-index', zindex)\n ElementStyleUtil.set(this.element, 'position', 'fixed')\n }\n\n if (top !== null) {\n ElementStyleUtil.set(this.element, 'top', top)\n }\n\n if (width !== null && width !== undefined) {\n const widthTarget = getObjectPropertyValueByKey(width, 'target')\n if (widthTarget) {\n const targetElement = document.querySelector(widthTarget)\n if (targetElement) {\n width = getCSS(targetElement, 'width')\n }\n }\n ElementStyleUtil.set(this.element, 'width', width)\n }\n\n if (left !== null) {\n if (String(left).toLowerCase() === 'auto') {\n var offsetLeft = getElementOffset(this.element).left\n\n if (offsetLeft > 0) {\n ElementStyleUtil.set(this.element, 'left', String(offsetLeft) + 'px')\n }\n }\n }\n }\n\n public update = () => {\n if (document.body.hasAttribute(this.attributeName) === true) {\n this.disable()\n document.body.removeAttribute(this.attributeName)\n this.enable(true)\n document.body.setAttribute(this.attributeName, 'on')\n }\n }\n\n // Event API\n public on = (name: string, callBack: Function) => {\n return EventHandlerUtil.on(this.element, name, callBack)\n }\n\n public one = (name: string, callback: Function) => {\n return EventHandlerUtil.one(this.element, name, callback)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n public trigger = (name: string) => {\n return EventHandlerUtil.trigger(this.element, name)\n }\n\n // Static methods\n public static hasInstace(element: HTMLElement) {\n return DataUtil.has(element, 'sticky')\n }\n\n public static getInstance(element: HTMLElement): StickyComponent | undefined {\n if (element !== null && StickyComponent.hasInstace(element)) {\n const data = DataUtil.get(element, 'sticky')\n if (data) {\n return data as StickyComponent\n }\n }\n }\n\n // Create Instances\n public static createInstances(selector: string) {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((element) => {\n const item = element as HTMLElement\n let sticky = StickyComponent.getInstance(item)\n if (!sticky) {\n sticky = new StickyComponent(item, defaultStickyOptions)\n }\n })\n }\n\n public static createInsance = (\n selector: string,\n options: StickyOptions = defaultStickyOptions\n ): StickyComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let sticky = StickyComponent.getInstance(item)\n if (!sticky) {\n sticky = new StickyComponent(item, options)\n }\n return sticky\n }\n\n public static bootstrap(attr: string = '[data-kt-sticky=\"true\"]') {\n StickyComponent.createInstances(attr)\n }\n\n public static reInitialization(attr: string = '[data-kt-sticky=\"true\"]') {\n StickyComponent.createInstances(attr)\n }\n}\n\nexport {StickyComponent, defaultStickyOptions}\n","import {DataUtil, getUniqueIdWithPrefix, EventHandlerUtil} from '../_utils/index'\n// Helpers\nimport {CookieComponent} from './_CookieComponent'\n\nexport interface ToggleOptions {\n saveState: boolean\n targetState?: string\n toggleState?: string\n targetToggleMode?: string\n}\n\nconst defaultToggleOptions: ToggleOptions = {\n saveState: false,\n}\n\nclass ToggleComponent {\n element: HTMLElement\n instanceUid: string\n options: ToggleOptions\n state: string = ''\n mode: string = ''\n target: HTMLElement | null = null\n attribute: string = ''\n\n constructor(_element: HTMLElement, options: ToggleOptions) {\n this.options = Object.assign(defaultToggleOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('toggle')\n this.element = _element\n\n const elementTargetAttr = this.element.getAttribute('data-kt-toggle-target')\n if (elementTargetAttr) {\n this.target = document.querySelector(elementTargetAttr)\n }\n const elementToggleAttr = this.element.getAttribute('data-kt-toggle-state')\n this.state = elementToggleAttr || ''\n const elementModeAttr = this.element.getAttribute('data-kt-toggle-mode')\n this.mode = elementModeAttr || ''\n this.attribute = 'data-kt-' + this.element.getAttribute('data-kt-toggle-name')\n\n // Event Handlers\n this._handlers()\n\n // Update Instance\n // Bind Instance\n DataUtil.set(this.element, 'toggle', this)\n }\n\n private _handlers = () => {\n this.element.addEventListener('click', (e: Event) => {\n e.preventDefault()\n\n if (this.mode === '') {\n this._toggle()\n return\n }\n\n if (this.mode === 'off' && !this._isEnabled()) {\n this._toggle()\n } else if (this.mode === 'on' && this._isEnabled()) {\n this._toggle()\n }\n })\n }\n\n // Event handlers\n private _toggle = () => {\n // Trigger \"after.toggle\" event\n EventHandlerUtil.trigger(this.element, 'kt.toggle.change')\n\n if (this._isEnabled()) {\n this._disable()\n } else {\n this._enable()\n }\n\n // Trigger \"before.toggle\" event\n EventHandlerUtil.trigger(this.element, 'kt.toggle.changed')\n return this\n }\n\n private _enable = () => {\n if (this._isEnabled()) {\n return\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enable')\n this.target?.setAttribute(this.attribute, 'on')\n if (this.state.length > 0) {\n this.element.classList.add(this.state)\n }\n\n if (this.options.saveState) {\n CookieComponent.set(this.attribute, 'on', {})\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.enabled')\n return this\n }\n\n private _disable = () => {\n if (!this._isEnabled()) {\n return false\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disable')\n this.target?.removeAttribute(this.attribute)\n\n if (this.state.length > 0) {\n this.element.classList.remove(this.state)\n }\n\n if (this.options.saveState) {\n CookieComponent.delete(this.attribute)\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.toggle.disabled')\n return this\n }\n\n private _isEnabled = () => {\n if (!this.target) {\n return false\n }\n\n return String(this.target.getAttribute(this.attribute)).toLowerCase() === 'on'\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n\n // Plugin API\n // Plugin API\n public toggle = () => {\n return this._toggle()\n }\n\n public enable = () => {\n return this._enable()\n }\n\n public disable = () => {\n return this._disable()\n }\n\n public isEnabled = () => {\n return this._isEnabled()\n }\n\n public goElement = () => {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n public trigger = (name: string, event?: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (el: HTMLElement) => {\n const toggleElement = DataUtil.get(el, 'toggle')\n if (toggleElement) {\n return toggleElement\n }\n\n return null\n }\n\n public static createInstances = (selector: string) => {\n const elements = document.body.querySelectorAll<HTMLElement>(selector)\n elements.forEach((el) => {\n let toggle = ToggleComponent.getInstance(el)\n if (!toggle) {\n toggle = new ToggleComponent(el, defaultToggleOptions)\n }\n })\n }\n\n public static reinitialization = () => {\n ToggleComponent.createInstances('[data-kt-toggle]')\n }\n\n public static bootstrap = () => {\n ToggleComponent.createInstances('[data-kt-toggle]')\n }\n}\n\nexport {ToggleComponent, defaultToggleOptions}\n","/* eslint-disable array-callback-return */\n/* eslint-disable no-useless-escape */\nimport {DataUtil} from '../_utils/index'\n\nexport interface IPasswordMeterOptions {\n minLength: number\n checkUppercase: boolean\n checkLowercase: boolean\n checkDigit: boolean\n checkChar: boolean\n scoreHighlightClass: string\n}\n\nexport interface IPasswordMeterQueries {\n componentName: string\n instanseQuery: string\n inputQuery: string\n visibilityQuery: string\n highlightQuery: string\n}\n\nconst defaultPasswordMeterOptions = {\n minLength: 8,\n checkUppercase: true,\n checkLowercase: true,\n checkDigit: true,\n checkChar: true,\n scoreHighlightClass: 'active',\n}\n\nconst defaultPasswordMeterQueires: IPasswordMeterQueries = {\n componentName: 'password-meter',\n instanseQuery: '[data-kt-password-meter]',\n inputQuery: 'input[type]',\n visibilityQuery: '[data-kt-password-meter-control=\"visibility\"]',\n highlightQuery: '[data-kt-password-meter-control=\"highlight\"]',\n}\n\nclass PasswordMeterComponent {\n element: HTMLElement\n inputElement: HTMLInputElement | null\n visibilityElement: HTMLElement | null\n highlightElement: HTMLElement | null\n options: IPasswordMeterOptions\n queries: IPasswordMeterQueries\n score: number\n checkSteps: number\n\n constructor(\n _element: HTMLElement,\n _options: IPasswordMeterOptions,\n _queries: IPasswordMeterQueries\n ) {\n this.element = _element\n this.options = Object.assign(defaultPasswordMeterOptions, _options)\n this.queries = _queries\n this.score = 0\n this.checkSteps = 5\n\n // Elements\n this.inputElement = this.element.querySelector(this.queries.inputQuery)\n this.visibilityElement = this.element.querySelector(this.queries.visibilityQuery)\n this.highlightElement = this.element.querySelector(this.queries.highlightQuery)\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private handlers(): void {\n if (this.inputElement) {\n this.inputElement.addEventListener('input', () => {\n this.check()\n })\n }\n\n if (this.visibilityElement) {\n this.visibilityElement.addEventListener('click', () => {\n this.visitbility()\n })\n }\n }\n\n private visitbility() {\n if (this.visibilityElement && this.inputElement) {\n const visibleIcon = this.visibilityElement.querySelector(\n 'i:not(.d-none), .svg-icon:not(.d-none)'\n )\n\n const hiddenIcon = this.visibilityElement.querySelector('i.d-none, .svg-icon.d-none')\n\n const typeAttr = this.inputElement.getAttribute('type') || ''\n\n if (typeAttr === 'password') {\n this.inputElement.setAttribute('type', 'text')\n } else {\n this.inputElement.setAttribute('type', 'password')\n }\n\n visibleIcon?.classList.add('d-none')\n hiddenIcon?.classList.remove('d-none')\n\n this.inputElement.focus()\n }\n }\n\n private checkScore(): number {\n return 0\n }\n\n private checkLength(): boolean {\n if (this.inputElement) {\n return this.inputElement.value.length >= this.options.minLength // 20 score\n }\n\n return false\n }\n\n private checkLowerCase(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[a-z]/.test(val) // 20 score\n }\n\n private checkUppercase(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[A-Z]/.test(val) // 20 score\n }\n\n private checkDigit(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[0-9]/.test(val) // 20 score\n }\n\n private checkChar(): boolean {\n const val = this.inputElement ? this.inputElement.value : ''\n return /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g.test(val) // 20 score\n }\n\n private getCheckScore(): number {\n let count = 1\n if (this.options.checkUppercase) {\n count++\n }\n\n if (this.options.checkLowercase) {\n count++\n }\n\n if (this.options.checkDigit) {\n count++\n }\n\n if (this.options.checkChar) {\n count++\n }\n\n this.checkSteps = count\n return 100 / this.checkSteps\n }\n\n private highlight() {\n const items = this.highlightElement\n ? [].slice.call(this.highlightElement.querySelectorAll('div'))\n : []\n const total = items.length\n let index = 0\n const checkScore = this.getCheckScore()\n const score = this.getScore()\n\n items.map((item: HTMLElement) => {\n index++\n if (checkScore * index * (this.checkSteps / total) <= score) {\n item.classList.add('active')\n } else {\n item.classList.remove('active')\n }\n })\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public reset = () => {\n this.score = 0\n this.highlight()\n }\n\n public getScore() {\n return this.score\n }\n\n public check() {\n let score = 0\n const checkScore = this.getCheckScore()\n if (this.checkLength()) {\n score = score + checkScore\n }\n\n if (this.options.checkUppercase && this.checkLowerCase()) {\n score = score + checkScore\n }\n\n if (this.options.checkLowercase && this.checkUppercase()) {\n score = score + checkScore\n }\n\n if (this.options.checkDigit && this.checkDigit()) {\n score = score + checkScore\n }\n\n if (this.options.checkChar && this.checkChar()) {\n score = score + checkScore\n }\n\n this.score = score\n this.highlight()\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultPasswordMeterQueires.componentName\n ): PasswordMeterComponent | undefined => {\n const passwordMeter = DataUtil.get(el, componentName)\n if (passwordMeter) {\n return passwordMeter as PasswordMeterComponent\n }\n }\n\n public static createInstances = (\n selector: string = defaultPasswordMeterQueires.instanseQuery,\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let passwordMeter = PasswordMeterComponent.getInstance(item)\n if (!passwordMeter) {\n passwordMeter = new PasswordMeterComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultPasswordMeterQueires.instanseQuery,\n options: IPasswordMeterOptions = defaultPasswordMeterOptions,\n queries: IPasswordMeterQueries = defaultPasswordMeterQueires\n ): PasswordMeterComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let passwordMeter = PasswordMeterComponent.getInstance(item)\n if (!passwordMeter) {\n passwordMeter = new PasswordMeterComponent(item, options, queries)\n }\n return passwordMeter\n }\n\n public static bootstrap = (selector: string = defaultPasswordMeterQueires.instanseQuery) => {\n PasswordMeterComponent.createInstances(selector)\n }\n\n public static reinitialization = (\n selector: string = defaultPasswordMeterQueires.instanseQuery\n ) => {\n PasswordMeterComponent.createInstances(selector)\n }\n}\nexport {PasswordMeterComponent, defaultPasswordMeterOptions, defaultPasswordMeterQueires}\n","import {\n getAttributeValueByBreakpoint,\n stringSnakeToCamel,\n getObjectPropertyValueByKey,\n EventHandlerUtil,\n throttle,\n} from '../_utils/index'\n\nexport class SwapperStore {\n static store: Map<string, SwapperComponent> = new Map()\n\n public static set(instanceId: string, drawerComponentObj: SwapperComponent): void {\n if (SwapperStore.has(instanceId)) {\n return\n }\n\n SwapperStore.store.set(instanceId, drawerComponentObj)\n }\n\n public static get(instanceId: string): SwapperComponent | undefined {\n if (!SwapperStore.has(instanceId)) {\n return\n }\n return SwapperStore.store.get(instanceId)\n }\n\n public static remove(instanceId: string): void {\n if (!SwapperStore.has(instanceId)) {\n return\n }\n\n SwapperStore.store.delete(instanceId)\n }\n\n public static has(instanceId: string): boolean {\n return SwapperStore.store.has(instanceId)\n }\n\n public static getAllInstances() {\n return SwapperStore.store\n }\n}\n\nexport interface ISwapperOptions {\n mode: string\n}\n\nexport interface ISwapperQueries {\n componentName: string\n instanseQuery: string\n attrQuery: string\n}\n\nconst defaultSwapperOptions: ISwapperOptions = {\n mode: 'append',\n}\n\nconst defaultSwapperQueires: ISwapperQueries = {\n componentName: 'swapper',\n instanseQuery: '[data-kt-swapper=\"true\"]',\n attrQuery: 'data-kt-swapper-',\n}\n\nclass SwapperComponent {\n element: HTMLElement\n options: ISwapperOptions\n queries: ISwapperQueries\n\n constructor(_element: HTMLElement, _options: ISwapperOptions, _queries: ISwapperQueries) {\n this.element = _element\n this.options = Object.assign(defaultSwapperOptions, _options)\n this.queries = _queries\n\n // Initial update\n this.update()\n\n SwapperStore.set(this.element.id, this)\n }\n\n private getOption(name: string) {\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n if (attr != null && String(value) === 'true') {\n return true\n } else if (value !== null && String(value) === 'false') {\n return false\n }\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public update = () => {\n const parentSelector = this.getOption('parent')?.toString()\n const mode = this.getOption('mode')\n const parentElement = parentSelector ? document.querySelector(parentSelector) : null\n\n if (parentElement && this.element.parentNode !== parentElement) {\n if (mode === 'prepend') {\n parentElement.prepend(this.element)\n } else if (mode === 'append') {\n parentElement.append(this.element)\n }\n }\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n public trigger = (name: string, event: Event) => {\n return EventHandlerUtil.trigger(this.element, name, event)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultSwapperQueires.componentName\n ): SwapperComponent | null => {\n const place = SwapperStore.get(el.id)\n if (place) {\n return place as SwapperComponent\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultSwapperQueires.instanseQuery,\n options: ISwapperOptions = defaultSwapperOptions,\n queries: ISwapperQueries = defaultSwapperQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let place = SwapperComponent.getInstance(item)\n if (!place) {\n place = new SwapperComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultSwapperQueires.instanseQuery,\n options: ISwapperOptions = defaultSwapperOptions,\n queries: ISwapperQueries = defaultSwapperQueires\n ): SwapperComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let place = SwapperComponent.getInstance(item)\n if (!place) {\n place = new SwapperComponent(item, options, queries)\n }\n return place\n }\n\n public static bootstrap = (selector: string = defaultSwapperQueires.instanseQuery) => {\n SwapperComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultSwapperQueires.instanseQuery) => {\n SwapperComponent.createInstances(selector)\n }\n}\n\n// Window resize handler\nwindow.addEventListener('resize', function () {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Offcanvas instances on window resize\n const elements = document.querySelectorAll(defaultSwapperQueires.instanseQuery)\n elements.forEach((el) => {\n const place = SwapperComponent.getInstance(el as HTMLElement)\n if (place) {\n place.update()\n }\n })\n },\n 200\n )\n})\n\nexport {SwapperComponent, defaultSwapperOptions, defaultSwapperQueires}\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","import { isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import {createPopper, VirtualElement} from '@popperjs/core'\nimport {\n getElementChild,\n getElementParents,\n getAttributeValueByBreakpoint,\n getUniqueIdWithPrefix,\n DataUtil,\n ElementStyleUtil,\n EventHandlerUtil,\n insertAfterElement,\n slideUp,\n slideDown,\n DOMEventHandlerUtil,\n throttle,\n getHighestZindex,\n} from '../_utils/index'\n\nexport interface MenuOptions {\n dropdown: {\n hoverTimeout: number\n zindex: number\n }\n accordion: {\n slideSpeed: number\n expand: boolean\n }\n}\n\nconst defaultMenuOptions: MenuOptions = {\n dropdown: {\n hoverTimeout: 200,\n zindex: 105,\n },\n accordion: {\n slideSpeed: 250,\n expand: false,\n },\n}\n\ntype PopperPlacement =\n | 'right'\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'bottom'\n | 'left'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end'\n | undefined\n\nclass MenuComponent {\n element: HTMLElement\n options: MenuOptions\n instanceUid: string\n triggerElement: HTMLElement | null = null\n\n constructor(_element: HTMLElement, options: MenuOptions) {\n this.element = _element\n this.options = Object.assign(defaultMenuOptions, options)\n this.instanceUid = getUniqueIdWithPrefix('menu')\n // this.element.setAttribute('data-kt-menu', 'true')\n this._setTriggerElement()\n this._update()\n DataUtil.set(this.element, 'menu', this)\n return this\n }\n\n // Set external trigger element\n private _setTriggerElement = () => {\n const target = document.querySelector(\n `[data-kt-menu-target=\"#${this.element.getAttribute('id')}\"`\n )\n\n if (target) {\n this.triggerElement = target as HTMLElement\n } else if (this.element.closest('[data-kt-menu-trigger]')) {\n this.triggerElement = this.element.closest('[data-kt-menu-trigger]') as HTMLElement\n } else if (\n this.element.parentNode &&\n getElementChild(this.element.parentNode as HTMLElement, '[data-kt-menu-trigger]')\n ) {\n const child = getElementChild(\n this.element.parentNode as HTMLElement,\n '[data-kt-menu-trigger]'\n )\n if (child) {\n this.triggerElement = child\n }\n }\n\n if (this.triggerElement) {\n DataUtil.set(this.triggerElement, 'menu', this)\n }\n }\n\n // Test if menu has external trigger element\n private _isTriggerElement = (item: HTMLElement) => {\n return this.triggerElement === item\n }\n\n // Get item option(through html attributes)\n private _getItemOption = (item: HTMLElement, name: string) => {\n let value: string | JSON | null | boolean = null\n if (item && item.hasAttribute('data-kt-menu-' + name)) {\n const attr = item.getAttribute('data-kt-menu-' + name) || ''\n value = getAttributeValueByBreakpoint(attr)\n if (value !== null && String(value) === 'true') {\n value = true\n } else if (value !== null && String(value) === 'false') {\n value = false\n }\n }\n return value\n }\n\n // Get item element\n private _getItemElement = (_element: HTMLElement): HTMLElement | undefined => {\n // Element is the external trigger element\n if (this._isTriggerElement(_element)) {\n return _element\n }\n\n // Element has item toggler attribute\n if (_element.hasAttribute('data-kt-menu-trigger')) {\n return _element\n }\n\n // Element has item DOM reference in it's data storage\n const itemElement = DataUtil.get(_element, 'item')\n if (itemElement) {\n return itemElement as HTMLElement\n }\n\n // Item is parent of element\n const item = _element.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')\n if (item) {\n return item\n }\n\n // Element's parent has item DOM reference in it's data storage\n const sub = _element.closest('.menu-sub')\n if (sub) {\n const subItem = DataUtil.get(sub as HTMLElement, 'item')\n if (subItem) {\n return subItem as HTMLElement\n }\n }\n }\n\n // Get item parent element\n private _getItemParentElement = (item: HTMLElement) => {\n const sub = item.closest<HTMLElement>('.menu-sub')\n if (!sub) {\n return null\n }\n\n const subItem = DataUtil.get(sub, 'item')\n if (subItem) {\n return subItem as HTMLElement\n }\n\n const parentItem = sub.closest<HTMLElement>('.menu-item[data-kt-menu-trigger]')\n if (sub && parentItem) {\n return parentItem\n }\n\n return null\n }\n\n // Get item parent elements\n private _getItemParentElements = (item: HTMLElement) => {\n const parents: Array<HTMLElement> = []\n let parent: HTMLElement | null\n let i = 0\n let buffer: HTMLElement = item\n\n do {\n parent = this._getItemParentElement(buffer)\n if (parent) {\n parents.push(parent)\n buffer = parent as HTMLElement\n }\n\n i++\n } while (parent !== null && i < 20)\n\n if (this.triggerElement) {\n parents.unshift(this.triggerElement)\n }\n\n return parents\n }\n\n // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)\n private _getDropdownPopperConfig = (item: HTMLElement) => {\n // Placement\n const placementOption = this._getItemOption(item, 'placement')\n let placement: PopperPlacement = 'right'\n if (placementOption) {\n placement = placementOption as PopperPlacement\n }\n\n // Flip\n // const flipValue = this._getItemOption(item, 'flip')\n // const flip = flipValue ? flipValue.toString().split(',') : []\n\n // Offset\n const offsetValue = this._getItemOption(item, 'offset')\n const offset = offsetValue ? offsetValue.toString().split(',') : []\n\n // Strategy\n const strategy: 'absolute' | 'fixed' | undefined =\n this._getItemOption(item, 'overflow') === true ? 'absolute' : 'fixed'\n\n return {\n placement: placement,\n strategy: strategy,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: offset,\n },\n },\n {\n name: 'preventOverflow',\n },\n {\n name: 'flip',\n options: {\n // altBoundary: true,\n // fallbackPlacements: flip,\n flipVariations: false,\n },\n },\n ],\n }\n }\n\n // Get item child element\n private _getItemChildElement = (item: HTMLElement): HTMLElement | null => {\n let selector = item\n\n const subItem = DataUtil.get(item, 'sub')\n if (subItem) {\n selector = subItem as HTMLElement\n }\n\n if (selector) {\n //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');\n const element = selector.querySelector<HTMLElement>('.menu-item[data-kt-menu-trigger]')\n if (element) {\n return element\n }\n }\n return null\n }\n\n // Get item child elements\n private _getItemChildElements = (item: HTMLElement) => {\n const children: Array<HTMLElement> = []\n let child: HTMLElement | null\n let i = 0\n let buffer = item\n do {\n child = this._getItemChildElement(buffer)\n if (child) {\n children.push(child)\n buffer = child as HTMLElement\n }\n\n i++\n } while (child !== null && i < 20)\n\n return children\n }\n\n // Get item sub element\n private _getItemSubElement = (item: HTMLElement): HTMLElement | null => {\n if (!item) {\n return null\n }\n\n if (this._isTriggerElement(item)) {\n return this.element\n }\n\n if (item.classList.contains('menu-sub')) {\n return item\n } else if (DataUtil.has(item, 'sub')) {\n const itemSub = DataUtil.get(item, 'sub')\n return itemSub ? (itemSub as HTMLElement) : null\n } else {\n return getElementChild(item, '.menu-sub')\n }\n }\n\n private _getCss = (el: HTMLElement, styleProp: string) => {\n const defaultView = (el.ownerDocument || document).defaultView\n if (!defaultView) {\n return ''\n }\n\n // sanitize property name to css notation\n // (hyphen separated words eg. font-Size)\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase()\n\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp)\n }\n\n // Get item sub type\n private _getItemSubType = (element: HTMLElement) => {\n const sub = this._getItemSubElement(element)\n if (sub && parseInt(this._getCss(sub as HTMLElement, 'z-index')) > 0) {\n return 'dropdown'\n } else {\n return 'accordion'\n }\n }\n\n // Test if item's sub is shown\n private _isItemSubShown = (item: HTMLElement) => {\n let sub = this._getItemSubElement(item)\n if (sub) {\n if (this._getItemSubType(item) === 'dropdown') {\n const subHTMLElement = sub as HTMLElement\n return (\n subHTMLElement.classList.contains('show') &&\n subHTMLElement.hasAttribute('data-popper-placement')\n )\n } else {\n return item.classList.contains('show')\n }\n }\n\n return false\n }\n\n // Test if item dropdown is permanent\n private _isItemDropdownPermanent = (item: HTMLElement) => {\n return this._getItemOption(item, 'permanent') === true\n }\n\n // Test if item's parent is shown\n private _isItemParentShown = (item: HTMLElement) => {\n return getElementParents(item, '.menu-item.show').length > 0\n }\n\n // Test of it is item sub element\n private _isItemSubElement = (item: HTMLElement) => {\n return item.classList.contains('menu-sub')\n }\n\n // Test if item has sub\n private _hasItemSub = (item: HTMLElement) => {\n return item.classList.contains('menu-item') && item.hasAttribute('data-kt-menu-trigger')\n }\n\n // Get link element\n private _getItemLinkElement = (item: HTMLElement) => {\n return getElementChild(item, '.menu-link')\n }\n\n // Get toggle element\n private _getItemToggleElement = (item: HTMLElement) => {\n if (this.triggerElement) {\n return this.triggerElement\n }\n\n return this._getItemLinkElement(item)\n }\n\n // Show item dropdown\n private _showDropdown = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.show') === false) {\n return\n }\n\n // Hide all currently shown dropdowns except current one\n MenuComponent.hideDropdowns(item)\n\n // const toggle = this._isTriggerElement(item) ? item : this._getItemLinkElement(item);\n const sub = this._getItemSubElement(item)\n const width = this._getItemOption(item, 'width')\n const height = this._getItemOption(item, 'height')\n\n let zindex = this.options.dropdown.zindex\n const parentZindex = getHighestZindex(item) // update\n // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update\n if (parentZindex !== null && parentZindex >= zindex) {\n zindex = parentZindex + 1\n }\n\n if (zindex && sub) {\n ElementStyleUtil.set(sub, 'z-index', zindex)\n }\n\n if (width && sub) {\n ElementStyleUtil.set(sub, 'width', width)\n }\n\n if (height && sub) {\n ElementStyleUtil.set(sub, 'height', height)\n }\n\n this.initDropdownPopper(item, sub as HTMLElement)\n\n item.classList.add('show')\n item.classList.add('menu-dropdown')\n sub?.classList.add('show')\n\n // Append the sub the the root of the menu\n if (this._getItemOption(item, 'overflow') === true) {\n if (sub) {\n document.body.appendChild(sub)\n DataUtil.set(item, 'sub', sub)\n DataUtil.set(sub, 'item', item)\n DataUtil.set(sub, 'menu', this)\n }\n } else {\n if (sub) {\n DataUtil.set(sub, 'item', item)\n }\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.shown')\n }\n\n // Init dropdown popper(new)\n private initDropdownPopper = (item: HTMLElement, sub: HTMLElement) => {\n // Setup popper instance\n let reference\n const attach = this._getItemOption(item, 'attach') as string\n\n if (attach) {\n if (attach === 'parent') {\n reference = item.parentNode\n } else {\n reference = document.querySelector(attach)\n }\n } else {\n reference = item\n }\n\n if (reference) {\n const popper = createPopper(\n reference as Element | VirtualElement,\n sub,\n this._getDropdownPopperConfig(item)\n )\n DataUtil.set(item, 'popper', popper)\n }\n }\n\n // Hide item dropdown\n private _hideDropdown = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hide') === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n if (sub) {\n ElementStyleUtil.set(sub, 'z-index', '')\n ElementStyleUtil.set(sub, 'width', '')\n ElementStyleUtil.set(sub, 'height', '')\n }\n\n item.classList.remove('show')\n item.classList.remove('menu-dropdown')\n if (sub) {\n sub.classList.remove('show')\n }\n\n // Append the sub back to it's parent\n if (this._getItemOption(item, 'overflow') === true) {\n if (item.classList.contains('menu-item')) {\n if (sub) {\n item.appendChild(sub)\n }\n } else {\n insertAfterElement(this.element, item)\n }\n\n if (sub) {\n DataUtil.remove(item, 'sub')\n DataUtil.remove(sub, 'item')\n DataUtil.remove(sub, 'menu')\n }\n }\n\n if (DataUtil.has(item, 'popper') === true) {\n // @ts-ignore\n DataUtil.get(item, 'popper').destroy()\n DataUtil.remove(item, 'popper')\n }\n\n // Destroy popper(new)\n this.destroyDropdownPopper(item)\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\n }\n\n // Destroy dropdown popper(new)\n private destroyDropdownPopper = (item: HTMLElement) => {\n if (DataUtil.has(item, 'popper') === true) {\n // @ts-ignore\n DataUtil.get(item, 'popper').destroy()\n DataUtil.remove(item, 'popper')\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.menu.dropdown.hidden')\n }\n\n private _showAccordion = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.show') === false) {\n return\n }\n\n if (this.options.accordion.expand === false) {\n this._hideAccordions(item)\n }\n\n if (DataUtil.has(item, 'popper') === true) {\n this._hideDropdown(item)\n }\n\n item.classList.add('hover') // updateWW\n item.classList.add('showing')\n\n const subElement = this._getItemSubElement(item)\n if (subElement) {\n const sub = subElement as HTMLElement\n slideDown(sub, this.options.accordion.slideSpeed, () => {\n item.classList.remove('showing')\n item.classList.add('show')\n sub.classList.add('show')\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.shown')\n })\n }\n }\n\n private _hideAccordion = (item: HTMLElement) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hide') === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n item.classList.add('hiding')\n\n if (sub) {\n slideUp(sub, this.options.accordion.slideSpeed, () => {\n item.classList.remove('hiding')\n item.classList.remove('show')\n sub.classList.remove('show')\n item.classList.remove('hover') // update\n EventHandlerUtil.trigger(this.element, 'kt.menu.accordion.hidden')\n })\n }\n }\n\n // Hide all shown accordions of item\n private _hideAccordions = (item: HTMLElement) => {\n const itemsToHide = this.element.querySelectorAll('.show[data-kt-menu-trigger]')\n if (itemsToHide && itemsToHide.length > 0) {\n for (var i = 0, len = itemsToHide.length; i < len; i++) {\n const itemToHide = itemsToHide[i] as HTMLElement\n\n if (\n this._getItemSubType(itemToHide) === 'accordion' &&\n itemToHide !== item &&\n item.contains(itemToHide) === false &&\n itemToHide.contains(item) === false\n ) {\n this._hideAccordion(itemToHide)\n }\n }\n }\n }\n\n // Event Handlers\n // Reset item state classes if item sub type changed\n private _reset = (item: HTMLElement) => {\n if (this._hasItemSub(item) === false) {\n return\n }\n\n const sub = this._getItemSubElement(item)\n\n // Reset sub state if sub type is changed during the window resize\n if (DataUtil.has(item, 'type') && DataUtil.get(item, 'type') !== this._getItemSubType(item)) {\n // updated\n item.classList.remove('hover')\n item.classList.remove('show')\n item.classList.remove('show')\n if (sub) {\n sub.classList.remove('show')\n }\n } // updated\n }\n\n // TODO: not done\n private _destroy = () => {}\n\n // Update all item state classes if item sub type changed\n private _update = () => {\n const items = this.element.querySelectorAll('.menu-item[data-kt-menu-trigger]')\n items.forEach((el) => this._reset(el as HTMLElement))\n }\n\n // Hide item sub\n private _hide = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === false) {\n return\n }\n\n if (this._getItemSubType(item) === 'dropdown') {\n this._hideDropdown(item)\n } else if (this._getItemSubType(item) === 'accordion') {\n this._hideAccordion(item)\n }\n }\n\n // Show item sub\n private _show = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === true) {\n return\n }\n\n if (this._getItemSubType(item) === 'dropdown') {\n this._showDropdown(item) // // show current dropdown\n } else if (this._getItemSubType(item) === 'accordion') {\n this._showAccordion(item)\n }\n\n // Remember last submenu type\n\n DataUtil.set(item, 'type', this._getItemSubType(item)) // updated\n }\n\n // Toggle item sub\n private _toggle = (item: HTMLElement) => {\n if (!item) {\n return\n }\n\n if (this._isItemSubShown(item) === true) {\n this._hide(item)\n } else {\n this._show(item)\n }\n }\n\n // Mouseout handle\n private _mouseout = (element: HTMLElement, e: MouseEvent) => {\n const item = this._getItemElement(element)\n if (!item) {\n return\n }\n\n if (this._getItemOption(item, 'trigger') !== 'hover') {\n return\n }\n\n const timeout = setTimeout(() => {\n if (DataUtil.get(item, 'hover') === '1') {\n this._hide(item)\n }\n }, this.options.dropdown.hoverTimeout)\n\n DataUtil.set(item, 'hover', '1')\n DataUtil.set(item, 'timeout', timeout)\n }\n\n // Mouseover handle\n private _mouseover = (element: HTMLElement, e: MouseEvent) => {\n const item = this._getItemElement(element)\n if (!item) {\n return\n }\n\n if (this._getItemOption(item, 'trigger') !== 'hover') {\n return\n }\n\n if (DataUtil.get(item, 'hover') === '1') {\n const timeout = DataUtil.get(item, 'timeout')\n if (timeout) {\n clearTimeout(timeout as number)\n }\n DataUtil.remove(item, 'hover')\n DataUtil.remove(item, 'timeout')\n }\n\n this._show(item)\n }\n\n // Dismiss handler\n private _dismiss = (element: HTMLElement, e: Event) => {\n const item = this._getItemElement(element)\n if (!item) {\n return\n }\n const items = this._getItemChildElements(item)\n //if ( item !== null && _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\n const itemSubType = this._getItemSubType(item)\n if (item !== null && itemSubType === 'dropdown') {\n this._hide(item) // hide items dropdown\n\n // Hide all child elements as well\n if (items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n //if ( _getItemOption(item, 'trigger') === 'click' && _getItemSubType(item) === 'dropdown' ) {\n if (items[i] !== null && this._getItemSubType(items[i] as HTMLElement) === 'dropdown') {\n this._hide(items[i] as HTMLElement)\n }\n }\n }\n }\n }\n\n // Link handler\n private _link = (element: HTMLElement, e: Event) => {\n if (EventHandlerUtil.trigger(this.element, 'kt.menu.link.click') === false) {\n return\n }\n\n // Dismiss all shown dropdowns\n MenuComponent.hideDropdowns(undefined)\n EventHandlerUtil.trigger(this.element, 'kt.menu.link.clicked')\n }\n\n private _click = (element: HTMLElement, e: Event) => {\n e.preventDefault()\n const item = this._getItemElement(element)\n if (item) {\n if (this._getItemOption(item, 'trigger') !== 'click') {\n return\n }\n\n if (this._getItemOption(item, 'toggle') === false) {\n this._show(item)\n } else {\n this._toggle(item)\n }\n }\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n public click = (element: HTMLElement, e: Event) => {\n return this._click(element, e)\n }\n\n public link = (element: HTMLElement, e: Event) => {\n return this._link(element, e)\n }\n\n public dismiss = (element: HTMLElement, e: Event) => {\n return this._dismiss(element, e)\n }\n\n public mouseover = (element: HTMLElement, e: Event) => {\n return this._mouseover(element, e as MouseEvent)\n }\n\n public mouseout = (element: HTMLElement, e: Event) => {\n return this._mouseout(element, e as MouseEvent)\n }\n\n // General Methods\n public getItemTriggerType = (item: HTMLElement) => {\n return this._getItemOption(item, 'trigger')\n }\n\n public getItemSubType = (element: HTMLElement) => {\n return this._getItemSubType(element)\n }\n\n public show = (item: HTMLElement) => {\n return this._show(item)\n }\n\n public hide = (item: HTMLElement) => {\n return this._hide(item)\n }\n\n public reset = (item: HTMLElement) => {\n return this._reset(item)\n }\n\n public update = () => {\n return this._update()\n }\n\n public getElement = () => {\n return this.element\n }\n\n public getItemLinkElement = (item: HTMLElement) => {\n return this._getItemLinkElement(item)\n }\n\n public getItemToggleElement = (item: HTMLElement) => {\n return this._getItemToggleElement(item)\n }\n\n public getItemSubElement = (item: HTMLElement) => {\n return this._getItemSubElement(item)\n }\n\n public getItemParentElements = (item: HTMLElement) => {\n return this._getItemParentElements(item)\n }\n\n public isItemSubShown = (item: HTMLElement) => {\n return this._isItemSubShown(item)\n }\n\n public isItemParentShown = (item: HTMLElement) => {\n return this._isItemParentShown(item)\n }\n\n public getTriggerElement = () => {\n return this.triggerElement\n }\n\n public isItemDropdownPermanent = (item: HTMLElement) => {\n return this._isItemDropdownPermanent(item)\n }\n\n // Accordion Mode Methods\n public hideAccordions = (item: HTMLElement) => {\n return this._hideAccordions(item)\n }\n\n // Event API\n public on = (name: string, handler: any) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: any) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n // public static methods\n // Get KTMenu instance by element\n public static getInstance = (element: HTMLElement): MenuComponent | null => {\n // Element has menu DOM reference in it's DATA storage\n const elementMenu = DataUtil.get(element, 'menu')\n if (elementMenu) {\n return elementMenu as MenuComponent\n }\n\n // Element has .menu parent\n const menu = element.closest('.menu')\n if (menu) {\n const menuData = DataUtil.get(menu as HTMLElement, 'menu')\n if (menuData) {\n return menuData as MenuComponent\n }\n }\n\n // Element has a parent with DOM reference to .menu in it's DATA storage\n if (element.classList.contains('menu-link')) {\n const sub = element.closest('.menu-sub')\n if (sub) {\n const subMenu = DataUtil.get(sub as HTMLElement, 'menu')\n if (subMenu) {\n return subMenu as MenuComponent\n }\n }\n }\n\n return null\n }\n\n // Hide all dropdowns and skip one if provided\n public static hideDropdowns = (skip: HTMLElement | undefined) => {\n const items = document.querySelectorAll<HTMLElement>(\n '.show.menu-dropdown[data-kt-menu-trigger]'\n )\n\n if (items && items.length > 0) {\n for (let i = 0, len = items.length; i < len; i++) {\n const item = items[i]\n const menu = MenuComponent.getInstance(item as HTMLElement)\n\n if (menu && menu.getItemSubType(item) === 'dropdown') {\n if (skip) {\n if (\n // @ts-ignore\n menu.getItemSubElement(item).contains(skip) === false &&\n item.contains(skip) === false &&\n item !== skip\n ) {\n menu.hide(item)\n }\n } else {\n menu.hide(item)\n }\n }\n }\n }\n }\n\n public static updateDropdowns = () => {\n const items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\n if (items && items.length > 0) {\n for (var i = 0, len = items.length; i < len; i++) {\n var item = items[i]\n\n if (DataUtil.has(item as HTMLElement, 'popper')) {\n // @ts-ignore\n DataUtil.get(item as HTMLElement, 'popper').forceUpdate()\n }\n }\n }\n }\n\n // Global handlers\n public static createInstances = (selector: string) => {\n // Initialize menus\n document.querySelectorAll(selector).forEach((el) => {\n const menuItem = el as HTMLElement\n let menuInstance = MenuComponent.getInstance(menuItem)\n if (!menuInstance) {\n menuInstance = new MenuComponent(el as HTMLElement, defaultMenuOptions)\n }\n })\n }\n\n public static initGlobalHandlers = () => {\n // Dropdown handler\n document.addEventListener('click', (e) => {\n const menuItems = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]')\n if (menuItems && menuItems.length > 0) {\n for (let i = 0; i < menuItems.length; i++) {\n const item = menuItems[i] as HTMLElement\n const menuObj = MenuComponent.getInstance(item) as MenuComponent\n if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const menu = menuObj.getElement()\n const sub = menuObj.getItemSubElement(item) as HTMLElement\n if (item === e.target || item.contains(e.target as HTMLElement)) {\n continue\n }\n\n if (sub && (sub === e.target || sub.contains(e.target as HTMLElement))) {\n continue\n }\n menuObj.hide(item)\n }\n }\n }\n })\n\n // Sub toggle handler\n DOMEventHandlerUtil.on(\n document.body,\n '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger=\"auto\"])',\n 'click',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu) {\n return menu.click(this, e)\n }\n }\n )\n\n // // Link handler\n DOMEventHandlerUtil.on(\n document.body,\n '.menu-item:not([data-kt-menu-trigger]) > .menu-link',\n 'click',\n function (this: HTMLElement, e: Event) {\n e.stopPropagation()\n const menu = MenuComponent.getInstance(this)\n if (menu && menu.link) {\n return menu.link(this, e)\n }\n }\n )\n\n // Dismiss handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-dismiss=\"true\"]',\n 'click',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu) {\n return menu.dismiss(this, e)\n }\n }\n )\n\n // Mouseover handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-trigger], .menu-sub',\n 'mouseover',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu && menu.getItemSubType(this) === 'dropdown') {\n return menu.mouseover(this, e)\n }\n }\n )\n\n // Mouseout handler\n DOMEventHandlerUtil.on(\n document.body,\n '[data-kt-menu-trigger], .menu-sub',\n 'mouseout',\n function (this: HTMLElement, e: Event) {\n const menu = MenuComponent.getInstance(this) as MenuComponent\n if (menu && menu.getItemSubType(this) === 'dropdown') {\n return menu.mouseout(this, e)\n }\n }\n )\n\n // Resize handler\n window.addEventListener('resize', () => {\n let timer\n throttle(\n timer,\n () => {\n // Locate and update Drawer instances on window resize\n const elements = document.querySelectorAll('[data-kt-menu=\"true\"]')\n elements.forEach((el) => {\n const menu = MenuComponent.getInstance(el as HTMLElement)\n if (menu) {\n menu.update()\n }\n })\n },\n 200\n )\n })\n }\n\n public static bootstrap = () => {\n MenuComponent.initGlobalHandlers()\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\n }\n\n public static reinitialization = () => {\n MenuComponent.createInstances('[data-kt-menu=\"true\"]')\n }\n\n public static createInsance = (\n selector: string,\n options: MenuOptions = defaultMenuOptions\n ): MenuComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let menu = MenuComponent.getInstance(item)\n if (!menu) {\n menu = new MenuComponent(item, options)\n }\n return menu\n }\n}\n\nexport {MenuComponent, defaultMenuOptions}\n","import {\n EventHandlerUtil,\n DataUtil,\n getBreakpoint,\n getAttributeValueByBreakpoint,\n stringSnakeToCamel,\n getObjectPropertyValueByKey,\n getViewPort,\n isVisibleElement,\n throttle,\n} from '../_utils/index'\n\nimport {MenuComponent, defaultMenuOptions} from './MenuComponent'\n\nexport interface ISearchOptions {\n minLength: number // Miniam text lenght to query search\n keypress: boolean // Enable search on keypress\n enter: boolean // Enable search on enter key press\n layout: 'menu' | 'inline' // Use 'menu' or 'inline' layout options to display search results\n responsive?: number // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value\n showOnFocus: boolean // Always show menu on input focus\n}\n\nexport interface ISearchQueries {\n componentName: string\n instanseQuery: string\n attrQuery: string\n}\n\nconst defaultSearchOptions: ISearchOptions = {\n minLength: 2, // Miniam text lenght to query search\n keypress: true, // Enable search on keypress\n enter: true, // Enable search on enter key press\n layout: 'menu', // Use 'menu' or 'inline' layout options to display search results\n showOnFocus: true, // Always show menu on input focus\n}\n\nconst defaultSearchQueires: ISearchQueries = {\n componentName: 'search',\n instanseQuery: '[data-kt-search]',\n attrQuery: 'data-kt-search-',\n}\n\nclass SearchComponent {\n element: HTMLElement\n contentElement: HTMLElement\n formElement: HTMLFormElement\n inputElement: HTMLInputElement\n spinnerElement: HTMLElement\n clearElement: HTMLElement\n toggleElement: HTMLElement\n submitElement: HTMLElement\n toolbarElement: HTMLElement\n resultsElement: HTMLElement\n suggestionElement: HTMLElement\n emptyElement: HTMLElement\n layout: any\n\n options: ISearchOptions\n queries: ISearchQueries\n\n processing: boolean = false\n menuObject: MenuComponent | undefined\n\n constructor(_element: HTMLElement, _options: ISearchOptions, _queries: ISearchQueries) {\n // Variables\n this.options = Object.assign(defaultSearchOptions, _options)\n this.queries = _queries\n\n // Elements\n this.element = _element\n this.contentElement = this._getElement('content') as HTMLElement\n this.formElement = this._getElement('form') as HTMLFormElement\n this.inputElement = this._getElement('input') as HTMLInputElement\n this.spinnerElement = this._getElement('spinner') as HTMLElement\n this.clearElement = this._getElement('clear') as HTMLElement\n this.toggleElement = this._getElement('toggle') as HTMLElement\n this.submitElement = this._getElement('submit') as HTMLElement\n this.toolbarElement = this._getElement('toolbar') as HTMLElement\n\n this.resultsElement = this._getElement('results') as HTMLElement\n this.suggestionElement = this._getElement('suggestion') as HTMLElement\n this.emptyElement = this._getElement('empty') as HTMLElement\n\n // Layout\n this.layout = this.getOption('layout')\n if (this.layout === 'menu') {\n this.menuObject = new MenuComponent(this.contentElement, defaultMenuOptions)\n }\n\n // Update\n this.update()\n\n // Event Handlers\n this.handlers()\n\n DataUtil.set(this.element, this.queries.componentName, this)\n }\n\n private _getElement = (name: string) => {\n return this.element.querySelector('[data-kt-search-element=\"' + name + '\"]')\n }\n\n // Get option\n private getOption = (name: string) => {\n const attr = this.element.getAttribute(`${this.queries.attrQuery}${name}`)\n if (attr) {\n let value = getAttributeValueByBreakpoint(attr)\n\n if (value !== null && String(value) === 'true') {\n return true\n } else if (value !== null && String(value) === 'false') {\n return false\n }\n\n return value\n } else {\n const optionName = stringSnakeToCamel(name)\n\n const option = getObjectPropertyValueByKey(this.options, optionName)\n if (option) {\n return getAttributeValueByBreakpoint(option)\n } else {\n return null\n }\n }\n }\n\n // Check if responsive form mode is enabled\n private getResponsiveFormMode = () => {\n const responsive = this.getOption('responsive') as string\n const width = getViewPort().width\n\n if (!responsive) {\n return null\n }\n\n const breakpoint = getBreakpoint(responsive)\n let breakPointNum = -1\n if (!breakpoint) {\n breakPointNum = parseInt(responsive)\n } else {\n breakPointNum = +breakpoint\n }\n\n if (width < breakPointNum) {\n return 'on'\n } else {\n return 'off'\n }\n }\n\n // Focus\n private focus = () => {\n this.element.classList.add('focus')\n\n if (\n this.getOption('show-on-focus') === true ||\n this.inputElement.value.length >= this.options.minLength\n ) {\n this.show()\n }\n }\n\n // Blur\n private blur = () => {\n this.element.classList.remove('focus')\n }\n\n // Enter\n private enter = (e: KeyboardEvent) => {\n const key = e.charCode || e.keyCode || 0\n\n if (key === 13) {\n e.preventDefault()\n\n this.search()\n }\n }\n\n // Input\n private input = () => {\n if (this.getOption('min-length')) {\n const minLength = parseInt(this.getOption('min-length') as string)\n\n if (this.inputElement.value.length >= minLength) {\n this.search()\n } else if (this.inputElement.value.length === 0) {\n this.clear()\n }\n }\n }\n\n private handlers(): void {\n const context = this\n\n // Focus\n this.inputElement.addEventListener('focus', this.focus)\n\n // Blur\n this.inputElement.addEventListener('blur', this.blur)\n\n // Keypress\n if (this.getOption('keypress') === true) {\n this.inputElement.addEventListener('input', this.input)\n }\n\n // Submit\n if (this.submitElement) {\n this.submitElement.addEventListener('click', this.search)\n }\n\n // Enter\n if (this.getOption('enter') === true) {\n this.inputElement.addEventListener('keypress', this.enter)\n }\n\n // Clear\n if (this.clearElement) {\n this.clearElement.addEventListener('click', this.clear)\n }\n\n // Menu\n if (this.menuObject) {\n // Toggle menu\n if (this.toggleElement) {\n this.toggleElement.addEventListener('click', this.show)\n\n this.menuObject.on('kt.menu.dropdown.show', function () {\n // @ts-ignore\n if (isVisibleElement(context.toggleElement)) {\n // @ts-ignore\n context.toggleElement.classList.add('active')\n // @ts-ignore\n context.toggleElement.classList.add('show')\n }\n })\n\n this.menuObject.on('kt.menu.dropdown.hide', function () {\n // @ts-ignore\n if (isVisibleElement(context.toggleElement)) {\n // @ts-ignore\n context.toggleElement.classList.remove('active')\n // @ts-ignore\n context.toggleElement.classList.remove('show')\n }\n })\n }\n\n this.menuObject.on('kt.menu.dropdown.shown', function () {\n // @ts-ignore\n context.inputElement.focus()\n })\n }\n\n // Window resize handling\n window.addEventListener('resize', () => {\n let timer\n\n throttle(\n timer,\n () => {\n this.update()\n },\n 200\n )\n })\n }\n\n ///////////////////////\n // ** Public API ** //\n ///////////////////////\n // Update\n public update = () => {\n // Handle responsive form\n if (this.layout === 'menu') {\n let responsiveFormMode = this.getResponsiveFormMode()\n\n if (responsiveFormMode === 'on' && !this.contentElement.contains(this.formElement)) {\n this.contentElement.prepend(this.formElement)\n this.formElement.classList.remove('d-none')\n } else if (responsiveFormMode === 'off' && this.contentElement.contains(this.formElement)) {\n this.element.prepend(this.formElement)\n this.formElement.classList.add('d-none')\n }\n }\n }\n\n // Show menu\n public show = () => {\n if (this.menuObject) {\n this.update()\n\n this.menuObject.show(this.element)\n }\n }\n\n // Hide menu\n public hide = () => {\n if (this.menuObject) {\n this.update()\n\n this.menuObject.hide(this.element)\n }\n }\n\n // Search\n public search = () => {\n if (!this.processing) {\n // Show search spinner\n if (this.spinnerElement) {\n this.spinnerElement.classList.remove('d-none')\n }\n\n // Hide search clear button\n if (this.clearElement) {\n this.clearElement.classList.add('d-none')\n }\n\n // Hide search toolbar\n if (this.toolbarElement) {\n this.toolbarElement.classList.add('d-none')\n }\n\n // Focus input\n this.inputElement.focus()\n\n this.processing = true\n EventHandlerUtil.trigger(this.element, 'kt.search.process', this)\n }\n }\n\n // Complete\n public complete = () => {\n if (this.spinnerElement) {\n this.spinnerElement.classList.add('d-none')\n }\n\n // Show search toolbar\n if (this.clearElement) {\n this.clearElement.classList.remove('d-none')\n }\n\n if (this.inputElement.value.length === 0) {\n this.clear()\n }\n\n // Focus input\n this.inputElement.focus()\n\n this.show()\n\n this.processing = false\n }\n\n // Clear\n public clear = () => {\n if (EventHandlerUtil.trigger(this.element, 'kt.search.clear') === false) {\n return\n }\n\n // Clear and focus input\n this.inputElement.value = ''\n this.inputElement.focus()\n\n // Hide clear icon\n if (this.clearElement) {\n this.clearElement.classList.add('d-none')\n }\n\n // Show search toolbar\n if (this.toolbarElement) {\n this.toolbarElement.classList.remove('d-none')\n }\n\n // Hide menu\n if (this.getOption('show-on-focus') === false) {\n this.hide()\n }\n\n EventHandlerUtil.trigger(this.element, 'kt.search.cleared')\n }\n\n public isProcessing = () => {\n return this.processing\n }\n\n public getQuery = () => {\n return this.inputElement.value\n }\n\n public getMenu = () => {\n return this.menuObject\n }\n\n public getFormElement = () => {\n return this.formElement\n }\n\n public getInputElement(): HTMLInputElement {\n return this.inputElement\n }\n\n public getContentElement(): HTMLElement {\n return this.contentElement\n }\n\n public getElement(): HTMLElement {\n return this.element\n }\n\n // Event API\n public on = (name: string, handler: Function) => {\n return EventHandlerUtil.on(this.element, name, handler)\n }\n\n public one = (name: string, handler: Function) => {\n return EventHandlerUtil.one(this.element, name, handler)\n }\n\n public off = (name: string, handlerId: string) => {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n\n // Static methods\n public static getInstance = (\n el: HTMLElement,\n componentName: string = defaultSearchQueires.componentName\n ) => {\n const Search = DataUtil.get(el, componentName)\n if (Search) {\n return Search as SearchComponent\n }\n\n return null\n }\n\n public static createInstances = (\n selector: string = defaultSearchQueires.instanseQuery,\n options: ISearchOptions = defaultSearchOptions,\n queries: ISearchQueries = defaultSearchQueires\n ) => {\n const elements = document.body.querySelectorAll(selector)\n elements.forEach((el) => {\n const item = el as HTMLElement\n let Search = SearchComponent.getInstance(item)\n if (!Search) {\n Search = new SearchComponent(item, options, queries)\n }\n })\n }\n\n public static createInsance = (\n selector: string = defaultSearchQueires.instanseQuery,\n options: ISearchOptions = defaultSearchOptions,\n queries: ISearchQueries = defaultSearchQueires\n ): SearchComponent | undefined => {\n const element = document.body.querySelector(selector)\n if (!element) {\n return\n }\n const item = element as HTMLElement\n let Search = SearchComponent.getInstance(item)\n if (!Search) {\n Search = new SearchComponent(item, options, queries)\n }\n return Search\n }\n\n public static bootstrap = (selector: string = defaultSearchQueires.instanseQuery) => {\n SearchComponent.createInstances(selector)\n }\n\n public static reinitialization = (selector: string = defaultSearchQueires.instanseQuery) => {\n SearchComponent.createInstances(selector)\n }\n}\nexport {SearchComponent, defaultSearchOptions, defaultSearchQueires}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {useState, useEffect} from 'react'\nimport {useFormik} from 'formik'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport {getUserByToken, register} from '../core/_requests'\nimport {Link} from 'react-router-dom'\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\nimport {PasswordMeterComponent} from '../../../../_metronic/assets/ts/components'\nimport {useAuth} from '../core/Auth'\n\nconst initialValues = {\n firstname: '',\n lastname: '',\n email: '',\n password: '',\n changepassword: '',\n acceptTerms: false,\n}\n\nconst registrationSchema = Yup.object().shape({\n firstname: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('First name is required'),\n email: Yup.string()\n .email('Wrong email format')\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Email is required'),\n lastname: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Last name is required'),\n password: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Password is required'),\n changepassword: Yup.string()\n .required('Password confirmation is required')\n .when('password', {\n is: (val: string) => (val && val.length > 0 ? true : false),\n then: Yup.string().oneOf([Yup.ref('password')], \"Password and Confirm Password didn't match\"),\n }),\n acceptTerms: Yup.bool().required('You must accept the terms and conditions'),\n})\n\nexport function Registration() {\n const [loading, setLoading] = useState(false)\n const {saveAuth, setCurrentUser} = useAuth()\n const formik = useFormik({\n initialValues,\n validationSchema: registrationSchema,\n onSubmit: async (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n try {\n const {data: auth} = await register(\n values.email,\n values.firstname,\n values.lastname,\n values.password,\n values.changepassword\n )\n saveAuth(auth)\n const {data: user} = await getUserByToken(auth.jwtToken)\n setCurrentUser(user)\n } catch (error) {\n console.error(error)\n saveAuth(undefined)\n setStatus('The registration details is incorrect')\n setSubmitting(false)\n setLoading(false)\n }\n },\n })\n\n useEffect(() => {\n PasswordMeterComponent.bootstrap()\n }, [])\n\n return (\n <form\n className='form w-100 fv-plugins-bootstrap5 fv-plugins-framework'\n noValidate\n id='kt_login_signup_form'\n onSubmit={formik.handleSubmit}\n >\n {/* begin::Heading */}\n <div className='mb-10 text-center'>\n {/* begin::Title */}\n <h1 className='text-dark mb-3'>Create an Account</h1>\n {/* end::Title */}\n\n {/* begin::Link */}\n <div className='text-gray-400 fw-bold fs-4'>\n Already have an account?\n <Link to='/auth/login' className='link-primary fw-bolder' style={{marginLeft: '5px'}}>\n Forgot Password ?\n </Link>\n </div>\n {/* end::Link */}\n </div>\n {/* end::Heading */}\n\n {/* begin::Action */}\n <button type='button' className='btn btn-light-primary fw-bolder w-100 mb-10'>\n <img\n alt='Logo'\n src={toAbsoluteUrl('/media/svg/brand-logos/google-icon.svg')}\n className='h-20px me-3'\n />\n Sign in with Google\n </button>\n {/* end::Action */}\n\n <div className='d-flex align-items-center mb-10'>\n <div className='border-bottom border-gray-300 mw-50 w-100'></div>\n <span className='fw-bold text-gray-400 fs-7 mx-2'>OR</span>\n <div className='border-bottom border-gray-300 mw-50 w-100'></div>\n </div>\n\n {formik.status && (\n <div className='mb-lg-15 alert alert-danger'>\n <div className='alert-text font-weight-bold'>{formik.status}</div>\n </div>\n )}\n\n {/* begin::Form group Firstname */}\n <div className='row fv-row mb-7'>\n <div className='col-xl-6'>\n <label className='class=\"form-label fw-bolder text-dark fs-6'>First name</label>\n <input\n placeholder='First name'\n type='text'\n autoComplete='off'\n {...formik.getFieldProps('firstname')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {\n 'is-invalid': formik.touched.firstname && formik.errors.firstname,\n },\n {\n 'is-valid': formik.touched.firstname && !formik.errors.firstname,\n }\n )}\n />\n {formik.touched.firstname && formik.errors.firstname && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.firstname}</span>\n </div>\n </div>\n )}\n </div>\n <div className='col-xl-6'>\n {/* begin::Form group Lastname */}\n <div className='fv-row mb-5'>\n <label className='form-label fw-bolder text-dark fs-6'>Last name</label>\n <input\n placeholder='Last name'\n type='text'\n autoComplete='off'\n {...formik.getFieldProps('lastname')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {\n 'is-invalid': formik.touched.lastname && formik.errors.lastname,\n },\n {\n 'is-valid': formik.touched.lastname && !formik.errors.lastname,\n }\n )}\n />\n {formik.touched.lastname && formik.errors.lastname && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.lastname}</span>\n </div>\n </div>\n )}\n </div>\n {/* end::Form group */}\n </div>\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group Email */}\n <div className='fv-row mb-7'>\n <label className='form-label fw-bolder text-dark fs-6'>Email</label>\n <input\n placeholder='Email'\n type='email'\n autoComplete='off'\n {...formik.getFieldProps('email')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {'is-invalid': formik.touched.email && formik.errors.email},\n {\n 'is-valid': formik.touched.email && !formik.errors.email,\n }\n )}\n />\n {formik.touched.email && formik.errors.email && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.email}</span>\n </div>\n </div>\n )}\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group Password */}\n <div className='mb-10 fv-row' data-kt-password-meter='true'>\n <div className='mb-1'>\n <label className='form-label fw-bolder text-dark fs-6'>Password</label>\n <div className='position-relative mb-3'>\n <input\n type='password'\n placeholder='Password'\n autoComplete='off'\n {...formik.getFieldProps('password')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {\n 'is-invalid': formik.touched.password && formik.errors.password,\n },\n {\n 'is-valid': formik.touched.password && !formik.errors.password,\n }\n )}\n />\n {formik.touched.password && formik.errors.password && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.password}</span>\n </div>\n </div>\n )}\n </div>\n {/* begin::Meter */}\n <div\n className='d-flex align-items-center mb-3'\n data-kt-password-meter-control='highlight'\n >\n <div className='flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2'></div>\n <div className='flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2'></div>\n <div className='flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2'></div>\n <div className='flex-grow-1 bg-secondary bg-active-success rounded h-5px'></div>\n </div>\n {/* end::Meter */}\n </div>\n <div className='text-muted'>\n Use 8 or more characters with a mix of letters, numbers & symbols.\n </div>\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group Confirm password */}\n <div className='fv-row mb-5'>\n <label className='form-label fw-bolder text-dark fs-6'>Confirm Password</label>\n <input\n type='password'\n placeholder='Password confirmation'\n autoComplete='off'\n {...formik.getFieldProps('changepassword')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {\n 'is-invalid': formik.touched.changepassword && formik.errors.changepassword,\n },\n {\n 'is-valid': formik.touched.changepassword && !formik.errors.changepassword,\n }\n )}\n />\n {formik.touched.changepassword && formik.errors.changepassword && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.changepassword}</span>\n </div>\n </div>\n )}\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group */}\n <div className='fv-row mb-10'>\n <div className='form-check form-check-custom form-check-solid'>\n <input\n className='form-check-input'\n type='checkbox'\n id='kt_login_toc_agree'\n {...formik.getFieldProps('acceptTerms')}\n />\n <label\n className='form-check-label fw-bold text-gray-700 fs-6'\n htmlFor='kt_login_toc_agree'\n >\n I Agree the{' '}\n <Link to='/auth/terms' className='ms-1 link-primary'>\n terms and conditions\n </Link>\n .\n </label>\n {formik.touched.acceptTerms && formik.errors.acceptTerms && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.acceptTerms}</span>\n </div>\n </div>\n )}\n </div>\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group */}\n <div className='text-center'>\n <button\n type='submit'\n id='kt_sign_up_submit'\n className='btn btn-lg btn-primary w-100 mb-5'\n disabled={formik.isSubmitting || !formik.isValid || !formik.values.acceptTerms}\n >\n {!loading && <span className='indicator-label'>Submit</span>}\n {loading && (\n <span className='indicator-progress' style={{display: 'block'}}>\n Please wait...{' '}\n <span className='spinner-border spinner-border-sm align-middle ms-2'></span>\n </span>\n )}\n </button>\n <Link to='/auth/login'>\n <button\n type='button'\n id='kt_login_signup_form_cancel_button'\n className='btn btn-lg btn-light-primary w-100 mb-5'\n >\n Cancel\n </button>\n </Link>\n </div>\n {/* end::Form group */}\n </form>\n )\n}\n","import React, {useState} from 'react'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport {Link} from 'react-router-dom'\nimport {useFormik} from 'formik'\nimport {requestPassword} from '../core/_requests'\n\nconst initialValues = {\n email: 'admin@demo.com',\n}\n\nconst forgotPasswordSchema = Yup.object().shape({\n email: Yup.string()\n .email('Wrong email format')\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Email is required'),\n})\n\nexport function ForgotPassword() {\n const [loading, setLoading] = useState(false)\n const [hasErrors, setHasErrors] = useState<boolean | undefined>(undefined)\n const formik = useFormik({\n initialValues,\n validationSchema: forgotPasswordSchema,\n onSubmit: (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n setHasErrors(undefined)\n setTimeout(() => {\n requestPassword(values.email)\n .then(({data: {result}}) => {\n setHasErrors(false)\n setLoading(false)\n })\n .catch(() => {\n setHasErrors(true)\n setLoading(false)\n setSubmitting(false)\n setStatus('The login detail is incorrect')\n })\n }, 1000)\n },\n })\n\n return (\n <>\n <form\n className='form w-100 fv-plugins-bootstrap5 fv-plugins-framework'\n noValidate\n id='kt_login_password_reset_form'\n onSubmit={formik.handleSubmit}\n >\n <div className='text-center mb-10'>\n {/* begin::Title */}\n <h1 className='text-dark mb-3'>Forgot Password ?</h1>\n {/* end::Title */}\n\n {/* begin::Link */}\n <div className='text-gray-400 fw-bold fs-4'>Enter your email to reset your password.</div>\n {/* end::Link */}\n </div>\n\n {/* begin::Title */}\n {hasErrors === true && (\n <div className='mb-lg-15 alert alert-danger'>\n <div className='alert-text font-weight-bold'>\n Sorry, looks like there are some errors detected, please try again.\n </div>\n </div>\n )}\n\n {hasErrors === false && (\n <div className='mb-10 bg-light-info p-8 rounded'>\n <div className='text-info'>Sent password reset. Please check your email</div>\n </div>\n )}\n {/* end::Title */}\n\n {/* begin::Form group */}\n <div className='fv-row mb-10'>\n <label className='form-label fw-bolder text-gray-900 fs-6'>Email</label>\n <input\n type='email'\n placeholder=''\n autoComplete='off'\n {...formik.getFieldProps('email')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {'is-invalid': formik.touched.email && formik.errors.email},\n {\n 'is-valid': formik.touched.email && !formik.errors.email,\n }\n )}\n />\n {formik.touched.email && formik.errors.email && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.email}</span>\n </div>\n </div>\n )}\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group */}\n <div className='d-flex flex-wrap justify-content-center pb-lg-0'>\n <button\n type='submit'\n id='kt_password_reset_submit'\n className='btn btn-lg btn-primary fw-bolder me-4'\n >\n <span className='indicator-label'>Submit</span>\n {loading && (\n <span className='indicator-progress'>\n Please wait...\n <span className='spinner-border spinner-border-sm align-middle ms-2'></span>\n </span>\n )}\n </button>\n <Link to='/auth/login'>\n <button\n type='button'\n id='kt_login_password_reset_form_cancel_button'\n className='btn btn-lg btn-light-primary fw-bolder'\n disabled={formik.isSubmitting || !formik.isValid}\n >\n Cancel\n </button>\n </Link>{' '}\n </div>\n {/* end::Form group */}\n </form>\n </>\n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React, {useState} from 'react'\nimport * as Yup from 'yup'\nimport clsx from 'clsx'\nimport {useFormik} from 'formik'\nimport {getUserByToken, login} from '../core/_requests'\nimport {useAuth} from '../core/Auth'\n\nconst loginSchema = Yup.object().shape({\n email: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Username is required'),\n password: Yup.string()\n .min(3, 'Minimum 3 symbols')\n .max(50, 'Maximum 50 symbols')\n .required('Password is required'),\n // option: Yup.string().required('Company is required'),\n})\n\nconst initialValues = {\n email: '',\n password: '',\n}\n\n/*\n Formik+YUP+Typescript:\n https://jaredpalmer.com/formik/docs/tutorial#getfieldprops\n https://medium.com/@maurice.de.beijer/yup-validation-and-typescript-and-formik-6c342578a20e\n*/\n\nexport function Login() {\n const [loading, setLoading] = useState(false)\n const {saveAuth, setCurrentUser} = useAuth()\n\n const formik = useFormik({\n initialValues,\n validationSchema: loginSchema,\n onSubmit: async (values, {setStatus, setSubmitting}) => {\n setLoading(true)\n try {\n const {data: auth} = await login(values.email, values.password)\n saveAuth(auth)\n const user: any = await getUserByToken(auth.jwtToken)\n setCurrentUser(user)\n } catch (error) {\n console.error(error)\n console.log('error', error)\n saveAuth(undefined)\n setStatus('The login detail is incorrect')\n setSubmitting(false)\n setLoading(false)\n }\n },\n })\n\n return (\n <form\n className='form w-100'\n onSubmit={formik.handleSubmit}\n noValidate\n id='kt_login_signin_form'\n >\n {/*/!* begin::Heading *!/*/}\n {/*<div className='text-center mb-10'>*/}\n {/* <h1 className='text-dark mb-3'>Sign In to Metronic</h1>*/}\n {/* <div className='text-gray-400 fw-bold fs-4'>*/}\n {/* New Here?{' '}*/}\n {/* <Link to='/auth/registration' className='link-primary fw-bolder'>*/}\n {/* Create an Account*/}\n {/* </Link>*/}\n {/* </div>*/}\n {/*</div>*/}\n {/*/!* begin::Heading *!/*/}\n\n {formik.status ? (\n <div className='mb-lg-15 alert alert-danger'>\n <div className='alert-text font-weight-bold'>{formik.status}</div>\n </div>\n ) : null}\n\n {/* begin::Form group */}\n <div className='fv-row mb-10'>\n <label className='form-label fs-6 fw-bolder text-dark'>USER ID</label>\n <input\n placeholder='User ID'\n {...formik.getFieldProps('email')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {'is-invalid': formik.touched.email && formik.errors.email},\n {\n 'is-valid': formik.touched.email && !formik.errors.email,\n }\n )}\n type='text'\n name='email'\n autoComplete='off'\n />\n {formik.touched.email && formik.errors.email && (\n <div className='fv-plugins-message-container'>\n <span role='alert'>{formik.errors.email}</span>\n </div>\n )}\n </div>\n {/* end::Form group */}\n\n {/* begin::Form group */}\n <div className='fv-row mb-10'>\n <div className='d-flex justify-content-between mt-n5'>\n <div className='d-flex flex-stack mb-2'>\n {/* begin::Label */}\n <label className='form-label fw-bolder text-dark fs-6 mb-0'>Password</label>\n {/* end::Label */}\n {/* begin::Link */}\n {/*<Link*/}\n {/* to='/auth/forgot-password'*/}\n {/* className='link-primary fs-6 fw-bolder'*/}\n {/* style={{marginLeft: '5px'}}*/}\n {/*>*/}\n {/* Forgot Password ?*/}\n {/*</Link>*/}\n {/* end::Link */}\n </div>\n </div>\n <input\n type='password'\n autoComplete='off'\n {...formik.getFieldProps('password')}\n className={clsx(\n 'form-control form-control-lg form-control-solid',\n {\n 'is-invalid': formik.touched.password && formik.errors.password,\n },\n {\n 'is-valid': formik.touched.password && !formik.errors.password,\n }\n )}\n />\n {formik.touched.password && formik.errors.password && (\n <div className='fv-plugins-message-container'>\n <div className='fv-help-block'>\n <span role='alert'>{formik.errors.password}</span>\n </div>\n </div>\n )}\n </div>\n {/*<div className='fv-row mb-10'>*/}\n {/* <div className='mb-10'>*/}\n {/* <label className='form-label fw-bold'>Company:</label>*/}\n {/* <div>*/}\n {/* <select*/}\n {/* className='form-select form-select-solid'*/}\n {/* data-kt-select2='true'*/}\n {/* data-placeholder='Select option'*/}\n {/* data-allow-clear='true'*/}\n {/* defaultValue={''}*/}\n {/* {...formik.getFieldProps('option')}*/}\n {/* >*/}\n {/* <option></option>*/}\n {/* <option value='damangDivision'>Engineers and Planners - DAMANG DIVISION</option>*/}\n {/* <option value='dzataDivision'>Engineers and Planners - DZATA DIVISION</option>*/}\n {/* <option value='mpohorDivision'>Engineers and Planners - MPOHOR DIVISION</option>*/}\n {/* <option value='headOffice'>Engineers and Planners - HEAD OFFICE</option>*/}\n {/* <option value='salagaDivision'>Engineers and Planners - SALAGA DIVISION</option>*/}\n {/* <option value='tarkwaDivision'>Engineers and Planners - TARKWA DIVISION</option>*/}\n {/* </select>*/}\n {/* </div>*/}\n {/* </div>*/}\n {/*</div>*/}\n\n {/* end::Form group */}\n\n {/* begin::Action */}\n <div className='text-center'>\n <button\n type='submit'\n id='kt_sign_in_submit'\n className='btn btn-lg btn-primary w-100 mb-5'\n disabled={formik.isSubmitting || !formik.isValid}\n >\n {!loading && <span className='indicator-label'>Continue</span>}\n {loading && (\n <span className='indicator-progress' style={{display: 'block'}}>\n Please wait...\n <span className='spinner-border spinner-border-sm align-middle ms-2'></span>\n </span>\n )}\n </button>\n\n {/* begin::Separator */}\n {/*<div className='text-center text-muted text-uppercase fw-bolder mb-5'>or</div>*/}\n {/* end::Separator */}\n\n {/*/!* begin::Google link *!/*/}\n {/*<a href='#' className='btn btn-flex flex-center btn-light btn-lg w-100 mb-5'>*/}\n {/* <img*/}\n {/* alt='Logo'*/}\n {/* src={toAbsoluteUrl('/media/svg/brand-logos/google-icon.svg')}*/}\n {/* className='h-20px me-3'*/}\n {/* />*/}\n {/* Continue with Google*/}\n {/*</a>*/}\n {/*/!* end::Google link *!/*/}\n\n {/*/!* begin::Google link *!/*/}\n {/*<a href='#' className='btn btn-flex flex-center btn-light btn-lg w-100 mb-5'>*/}\n {/* <img*/}\n {/* alt='Logo'*/}\n {/* src={toAbsoluteUrl('/media/svg/brand-logos/facebook-4.svg')}*/}\n {/* className='h-20px me-3'*/}\n {/* />*/}\n {/* Continue with Facebook*/}\n {/*</a>*/}\n {/*/!* end::Google link *!/*/}\n\n {/*/!* begin::Google link *!/*/}\n {/*<a href='#' className='btn btn-flex flex-center btn-light btn-lg w-100'>*/}\n {/* <img*/}\n {/* alt='Logo'*/}\n {/* src={toAbsoluteUrl('/media/svg/brand-logos/apple-black.svg')}*/}\n {/* className='h-20px me-3'*/}\n {/* />*/}\n {/* Continue with Apple*/}\n {/*</a>*/}\n {/*/!* end::Google link *!/*/}\n </div>\n {/*end::Action */}\n </form>\n )\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport {useEffect} from 'react'\r\nimport {Outlet, Route, Routes} from 'react-router-dom'\r\nimport {Registration} from './components/Registration'\r\nimport {ForgotPassword} from './components/ForgotPassword'\r\nimport {Login} from './components/Login'\r\nimport {toAbsoluteUrl} from '../../../_metronic/helpers'\r\n\r\nconst AuthLayout = () => {\r\n useEffect(() => {\r\n document.body.classList.add('bg-body')\r\n return () => {\r\n document.body.classList.remove('bg-body')\r\n }\r\n }, [])\r\n\r\n return (\r\n <div\r\n className='d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed'\r\n // style={{\r\n // backgroundImage: `url(${toAbsoluteUrl('/media/illustrations/sketchy-1/14.png')})`,\r\n // }}\r\n >\r\n {/* begin::Content */}\r\n <div className='d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20'>\r\n {/* begin::Logo */}\r\n <a href='#' className='mb-12'>\r\n <img alt='Logo' src={toAbsoluteUrl('/media/reports-logos/ipsl.jpg')} className='h-45px' />\r\n </a>\r\n <h1 className='mb-12'>Sign in to Management Dashboard</h1>\r\n {/* end::Logo */}\r\n {/* begin::Wrapper */}\r\n <div className='w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto'>\r\n <Outlet />\r\n </div>\r\n {/* end::Wrapper */}\r\n </div>\r\n {/* end::Content */}\r\n {/* begin::Footer */}\r\n {/*<div className='d-flex flex-center flex-column-auto p-10'>*/}\r\n {/* <div className='d-flex align-items-center fw-bold fs-6'>*/}\r\n {/* <a href='#' className='text-muted text-hover-primary px-2'>*/}\r\n {/* About*/}\r\n {/* </a>*/}\r\n\r\n {/* <a href='#' className='text-muted text-hover-primary px-2'>*/}\r\n {/* Contact*/}\r\n {/* </a>*/}\r\n\r\n {/* <a href='#' className='text-muted text-hover-primary px-2'>*/}\r\n {/* Contact Us*/}\r\n {/* </a>*/}\r\n {/* </div>*/}\r\n {/*</div>*/}\r\n {/* end::Footer */}\r\n </div>\r\n )\r\n}\r\n\r\nconst AuthPage = () => (\r\n <Routes>\r\n <Route element={<AuthLayout />}>\r\n <Route path='login' element={<Login />} />\r\n <Route path='registration' element={<Registration />} />\r\n <Route path='forgot-password' element={<ForgotPassword />} />\r\n <Route index element={<Login />} />\r\n </Route>\r\n </Routes>\r\n)\r\n\r\nexport {AuthPage}\r\n","import {useEffect} from 'react'\nimport {Navigate, Routes} from 'react-router-dom'\nimport {useAuth} from './core/Auth'\n\nexport function Logout() {\n const {logout} = useAuth()\n useEffect(() => {\n logout()\n document.location.reload()\n }, [logout])\n\n return (\n <Routes>\n <Navigate to='/auth/login' />\n </Routes>\n )\n}\n","import {FC} from 'react'\r\nimport {useAuth} from '../../../../app/modules/auth'\r\nimport {toAbsoluteUrl} from '../../../helpers'\r\n\r\nconst HeaderUserMenu: FC = () => {\r\n const {currentUser, logout} = useAuth()\r\n return (\r\n <div\r\n className='menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg menu-state-primary fw-bold py-4 fs-6 w-275px'\r\n data-kt-menu='true'\r\n >\r\n <div className='menu-item px-3'>\r\n <div className='menu-content d-flex align-items-center px-3'>\r\n <div className='symbol symbol-50px me-5'>\r\n <img alt='Logo' src={toAbsoluteUrl('/media/reports-logos/blank.png')} />\r\n </div>\r\n\r\n <div className='d-flex flex-column'>\r\n <div className='fw-bolder d-flex align-items-center fs-5'>\r\n {currentUser?.firstName} {currentUser?.surname}\r\n {/*<span className='badge badge-light-success fw-bolder fs-8 px-2 py-1 ms-2'>Pro</span>*/}\r\n </div>\r\n <a href='#' className='fw-bold text-muted text-hover-primary fs-7'>\r\n {currentUser?.email}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className='separator my-2'></div>\r\n\r\n {/*<div className='menu-item px-5'>*/}\r\n {/* <Link to={'/crafted/pages/profile'} className='menu-link px-5'>*/}\r\n {/* My Profile*/}\r\n {/* </Link>*/}\r\n {/*</div>*/}\r\n\r\n {/*<div className='menu-item px-5'>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* <span className='menu-text'>My Projects</span>*/}\r\n {/* <span className='menu-badge'>*/}\r\n {/* <span className='badge badge-light-danger badge-circle fw-bolder fs-7'>3</span>*/}\r\n {/* </span>*/}\r\n {/* </a>*/}\r\n {/*</div>*/}\r\n\r\n {/*<div*/}\r\n {/* className='menu-item px-5'*/}\r\n {/* data-kt-menu-trigger='hover'*/}\r\n {/* data-kt-menu-placement='left-start'*/}\r\n {/* data-kt-menu-flip='bottom'*/}\r\n {/*>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* <span className='menu-title'>My Subscription</span>*/}\r\n {/* <span className='menu-arrow'></span>*/}\r\n {/* </a>*/}\r\n\r\n {/* <div className='menu-sub menu-sub-dropdown w-175px py-4'>*/}\r\n {/* <div className='menu-item px-3'>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* Referrals*/}\r\n {/* </a>*/}\r\n {/* </div>*/}\r\n\r\n {/* <div className='menu-item px-3'>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* Billing*/}\r\n {/* </a>*/}\r\n {/* </div>*/}\r\n\r\n {/* <div className='menu-item px-3'>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* Payments*/}\r\n {/* </a>*/}\r\n {/* </div>*/}\r\n\r\n {/* <div className='menu-item px-3'>*/}\r\n {/* <a href='#' className='menu-link d-flex flex-stack px-5'>*/}\r\n {/* Statements*/}\r\n {/* <i*/}\r\n {/* className='fas fa-exclamation-circle ms-2 fs-7'*/}\r\n {/* data-bs-toggle='tooltip'*/}\r\n {/* title='View your statements'*/}\r\n {/* ></i>*/}\r\n {/* </a>*/}\r\n {/* </div>*/}\r\n\r\n {/* <div className='separator my-2'></div>*/}\r\n\r\n {/* <div className='menu-item px-3'>*/}\r\n {/* <div className='menu-content px-3'>*/}\r\n {/* <label className='form-check form-switch form-check-custom form-check-solid'>*/}\r\n {/* <input*/}\r\n {/* className='form-check-input w-30px h-20px'*/}\r\n {/* type='checkbox'*/}\r\n {/* value='1'*/}\r\n {/* defaultChecked={true}*/}\r\n {/* name='notifications'*/}\r\n {/* />*/}\r\n {/* <span className='form-check-label text-muted fs-7'>Notifications</span>*/}\r\n {/* </label>*/}\r\n {/* </div>*/}\r\n {/* </div>*/}\r\n {/* </div>*/}\r\n {/*</div>*/}\r\n\r\n {/*<div className='menu-item px-5'>*/}\r\n {/* <a href='#' className='menu-link px-5'>*/}\r\n {/* My Statements*/}\r\n {/* </a>*/}\r\n {/*</div>*/}\r\n\r\n {/*<div className='separator my-2'></div>*/}\r\n\r\n {/*<Languages />*/}\r\n\r\n {/*<div className='menu-item px-5 my-1'>*/}\r\n {/* <Link to='/crafted/account/settings' className='menu-link px-5'>*/}\r\n {/* Account Settings*/}\r\n {/* </Link>*/}\r\n {/*</div>*/}\r\n\r\n <div className='menu-item px-5'>\r\n <a onClick={logout} className='menu-link px-5'>\r\n Sign Out\r\n </a>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport {HeaderUserMenu}\r\n","import clsx from 'clsx'\r\nimport React, {FC} from 'react'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {HeaderUserMenu} from '../../../partials'\r\nimport {useLayout} from '../../core'\r\n\r\nconst toolbarButtonMarginClass = 'ms-1 ms-lg-3',\r\n toolbarButtonHeightClass = 'w-30px h-30px w-md-40px h-md-40px',\r\n toolbarUserAvatarHeightClass = 'symbol-30px symbol-md-40px',\r\n toolbarButtonIconSizeClass = 'svg-icon-1'\r\n\r\nconst Topbar: FC = () => {\r\n const {config} = useLayout()\r\n\r\n return (\r\n <div className='d-flex align-items-stretch flex-shrink-0'>\r\n {/* Search */}\r\n {/* <div className={clsx('d-flex align-items-stretch', toolbarButtonMarginClass)}>\r\n <Search />\r\n </div> */}\r\n {/* Activities */}\r\n {/* <div className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}> */}\r\n {/* begin::Drawer toggle */}\r\n {/* <div\r\n className={clsx(\r\n 'btn btn-icon btn-active-light-primary btn-custom',\r\n toolbarButtonHeightClass\r\n )}\r\n id='kt_activities_toggle'\r\n >\r\n <KTSVG\r\n path='/media/icons/duotune/general/gen032.svg'\r\n className={toolbarButtonIconSizeClass}\r\n />\r\n </div> */}\r\n {/* end::Drawer toggle */}\r\n {/* </div> */}\r\n\r\n {/* NOTIFICATIONS */}\r\n {/* <div className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}> */}\r\n {/* begin::Menu- wrapper */}\r\n {/* <div\r\n className={clsx(\r\n 'btn btn-icon btn-active-light-primary btn-custom',\r\n toolbarButtonHeightClass\r\n )}\r\n data-kt-menu-trigger='click'\r\n data-kt-menu-attach='parent'\r\n data-kt-menu-placement='bottom-end'\r\n data-kt-menu-flip='bottom'\r\n >\r\n <KTSVG\r\n path='/media/icons/duotune/general/gen022.svg'\r\n className={toolbarButtonIconSizeClass}\r\n />\r\n </div> */}\r\n {/* <HeaderNotificationsMenu /> */}\r\n {/* end::Menu wrapper */}\r\n {/* </div> */}\r\n\r\n {/* CHAT */}\r\n {/* <div className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}> */}\r\n {/* begin::Menu wrapper */}\r\n {/* <div\r\n className={clsx(\r\n 'btn btn-icon btn-active-light-primary btn-custom position-relative',\r\n toolbarButtonHeightClass\r\n )}\r\n id='kt_drawer_chat_toggle'\r\n >\r\n <KTSVG\r\n path='/media/icons/duotune/communication/com012.svg'\r\n className={toolbarButtonIconSizeClass}\r\n />\r\n\r\n <span className='bullet bullet-dot bg-success h-6px w-6px position-absolute translate-middle top-0 start-50 animation-blink'></span>\r\n </div> */}\r\n {/* end::Menu wrapper */}\r\n {/* </div> */}\r\n\r\n {/* Quick links */}\r\n {/*<div className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}>*/}\r\n {/* begin::Menu wrapper */}\r\n {/*<div*/}\r\n {/* className={clsx(*/}\r\n {/* 'btn btn-icon btn-active-light-primary btn-custom',*/}\r\n {/* toolbarButtonHeightClass*/}\r\n {/* )}*/}\r\n {/* data-kt-menu-trigger='click'*/}\r\n {/* data-kt-menu-attach='parent'*/}\r\n {/* data-kt-menu-placement='bottom-end'*/}\r\n {/* data-kt-menu-flip='bottom'*/}\r\n {/*>*/}\r\n {/* <KTSVG*/}\r\n {/* path='/media/icons/duotune/general/gen025.svg'*/}\r\n {/* className={toolbarButtonIconSizeClass}*/}\r\n {/* />*/}\r\n {/*</div>*/}\r\n {/* <QuickLinks /> */}\r\n {/* end::Menu wrapper */}\r\n {/*</div>*/}\r\n\r\n {/* begin::Theme mode */}\r\n {/*<div className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}>*/}\r\n {/* <ThemeModeSwitcher*/}\r\n {/* toggleBtnClass={clsx('btn-active-light-primary btn-custom', toolbarButtonHeightClass)}*/}\r\n {/* />*/}\r\n {/*</div>*/}\r\n {/* end::Theme mode */}\r\n\r\n {/* begin::User */}\r\n <div\r\n className={clsx('d-flex align-items-center', toolbarButtonMarginClass)}\r\n id='kt_header_user_menu_toggle'\r\n >\r\n {/* begin::Toggle */}\r\n <div\r\n className={clsx('cursor-pointer symbol', toolbarUserAvatarHeightClass)}\r\n data-kt-menu-trigger='click'\r\n data-kt-menu-attach='parent'\r\n data-kt-menu-placement='bottom-end'\r\n data-kt-menu-flip='bottom'\r\n >\r\n <img src={toAbsoluteUrl('/media/reports-logos/blank.png')} alt='metronic' />\r\n </div>\r\n <HeaderUserMenu />\r\n {/* end::Toggle */}\r\n </div>\r\n {/* end::User */}\r\n\r\n {/* begin::Aside Toggler */}\r\n {config.header.left === 'menu' && (\r\n <div className='d-flex align-items-center d-lg-none ms-2 me-n3' title='Show header menu'>\r\n <div\r\n className='btn btn-icon btn-active-light-primary w-30px h-30px w-md-40px h-md-40px'\r\n id='kt_header_menu_mobile_toggle'\r\n >\r\n <KTSVG path='/media/icons/duotune/text/txt001.svg' className='svg-icon-1' />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport {Topbar}\r\n","import React from 'react'\nimport {Link} from 'react-router-dom'\nimport {useLocation} from 'react-router'\nimport clsx from 'clsx'\nimport {checkIsActive, KTSVG} from '../../../helpers'\n\ntype Props = {\n to: string\n title: string\n icon?: string\n fontIcon?: string\n hasArrow?: boolean\n hasBullet?: boolean\n onClick?: () => void\n}\n\nconst Finance: React.FC<Props> = ({\n to,\n title,\n icon,\n fontIcon,\n hasArrow = false,\n hasBullet = false,\n onClick,\n}) => {\n const {pathname} = useLocation()\n const moveTo = () => {\n if (onClick) {\n onClick()\n }\n }\n return (\n <div className='menu-item me-lg-1'>\n <Link\n className={clsx('menu-link py-3', {\n active: checkIsActive(pathname, to),\n })}\n to={to}\n onClick={moveTo}\n >\n {hasBullet && (\n <span className='menu-bullet'>\n <span className='bullet bullet-dot'></span>\n </span>\n )}\n\n {icon && (\n <span className='menu-icon'>\n <KTSVG path={icon} className='svg-icon-2' />\n </span>\n )}\n\n {fontIcon && (\n <span className='menu-icon'>\n <i className={clsx('bi fs-3', fontIcon)}></i>\n </span>\n )}\n\n <span className='menu-title'>{title}</span>\n\n {hasArrow && <span className='menu-arrow'></span>}\n </Link>\n </div>\n )\n}\n\nexport {Finance}\n","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckOutlined = function CheckOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CheckOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CheckOutlined.displayName = 'CheckOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CheckOutlined);","// This icon file is generated automatically.\nvar CopyOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\" } }] }, \"name\": \"copy\", \"theme\": \"outlined\" };\nexport default CopyOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CopyOutlinedSvg from \"@ant-design/icons-svg/es/asn/CopyOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CopyOutlined = function CopyOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CopyOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n CopyOutlined.displayName = 'CopyOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(CopyOutlined);","// This icon file is generated automatically.\nvar EditOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\" } }] }, \"name\": \"edit\", \"theme\": \"outlined\" };\nexport default EditOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EditOutlinedSvg from \"@ant-design/icons-svg/es/asn/EditOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EditOutlined = function EditOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EditOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EditOutlined.displayName = 'EditOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EditOutlined);","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n entities.forEach(function (entity) {\n var _elementListeners$get;\n var target = entity.target;\n (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 ? void 0 : _elementListeners$get.forEach(function (listener) {\n return listener(target);\n });\n });\n}\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n if (!elementListeners.has(element)) {\n elementListeners.set(element, new Set());\n resizeObserver.observe(element);\n }\n elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n if (elementListeners.has(element)) {\n elementListeners.get(element).delete(callback);\n if (!elementListeners.get(element).size) {\n resizeObserver.unobserve(element);\n elementListeners.delete(element);\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n var _super = _createSuper(DomWrapper);\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n var children = _ref.children,\n onBatchResize = _ref.onBatchResize;\n var resizeIdRef = React.useRef(0);\n var resizeInfosRef = React.useRef([]);\n var onCollectionResize = React.useContext(CollectionContext);\n var onResize = React.useCallback(function (size, element, data) {\n resizeIdRef.current += 1;\n var currentId = resizeIdRef.current;\n resizeInfosRef.current.push({\n size: size,\n element: element,\n data: data\n });\n Promise.resolve().then(function () {\n if (currentId === resizeIdRef.current) {\n onBatchResize === null || onBatchResize === void 0 ? void 0 : onBatchResize(resizeInfosRef.current);\n resizeInfosRef.current = [];\n }\n });\n // Continue bubbling if parent exist\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(size, element, data);\n }, [onBatchResize, onCollectionResize]);\n return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n value: onResize\n }, children);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { observe, unobserve } from '../utils/observerUtil';\nimport DomWrapper from './DomWrapper';\nimport { CollectionContext } from '../Collection';\nfunction SingleObserver(props, ref) {\n var children = props.children,\n disabled = props.disabled;\n var elementRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n var onCollectionResize = React.useContext(CollectionContext);\n // =========================== Children ===========================\n var isRenderProps = typeof children === 'function';\n var mergedChildren = isRenderProps ? children(elementRef) : children;\n // ============================= Size =============================\n var sizeRef = React.useRef({\n width: -1,\n height: -1,\n offsetWidth: -1,\n offsetHeight: -1\n });\n // ============================= Ref ==============================\n var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n var originRef = canRef ? mergedChildren.ref : null;\n var mergedRef = React.useMemo(function () {\n return composeRef(originRef, elementRef);\n }, [originRef, elementRef]);\n var getDom = function getDom() {\n return findDOMNode(elementRef.current) || findDOMNode(wrapperRef.current);\n };\n React.useImperativeHandle(ref, function () {\n return getDom();\n });\n // =========================== Observe ============================\n var propsRef = React.useRef(props);\n propsRef.current = props;\n // Handler\n var onInternalResize = React.useCallback(function (target) {\n var _propsRef$current = propsRef.current,\n onResize = _propsRef$current.onResize,\n data = _propsRef$current.data;\n var _target$getBoundingCl = target.getBoundingClientRect(),\n width = _target$getBoundingCl.width,\n height = _target$getBoundingCl.height;\n var offsetWidth = target.offsetWidth,\n offsetHeight = target.offsetHeight;\n /**\n * Resize observer trigger when content size changed.\n * In most case we just care about element size,\n * let's use `boundary` instead of `contentRect` here to avoid shaking.\n */\n var fixedWidth = Math.floor(width);\n var fixedHeight = Math.floor(height);\n if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n var size = {\n width: fixedWidth,\n height: fixedHeight,\n offsetWidth: offsetWidth,\n offsetHeight: offsetHeight\n };\n sizeRef.current = size;\n // IE is strange, right?\n var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n offsetWidth: mergedOffsetWidth,\n offsetHeight: mergedOffsetHeight\n });\n // Let collection know what happened\n onCollectionResize === null || onCollectionResize === void 0 ? void 0 : onCollectionResize(sizeInfo, target, data);\n if (onResize) {\n // defer the callback but not defer to next frame\n Promise.resolve().then(function () {\n onResize(sizeInfo, target);\n });\n }\n }\n }, []);\n // Dynamic observe\n React.useEffect(function () {\n var currentElement = getDom();\n if (currentElement && !disabled) {\n observe(currentElement, onInternalResize);\n }\n return function () {\n return unobserve(currentElement, onInternalResize);\n };\n }, [elementRef.current, disabled]);\n // ============================ Render ============================\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperRef\n }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n ref: mergedRef\n }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from './SingleObserver';\nimport { Collection } from './Collection';\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from './utils/observerUtil';\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n var children = props.children;\n var childNodes = typeof children === 'function' ? [children] : toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childNodes.length > 1) {\n warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n } else if (childNodes.length === 0) {\n warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n }\n }\n return childNodes.map(function (child, index) {\n var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n key: key,\n ref: index === 0 ? ref : undefined\n }), child);\n });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nexport default function omit(obj, fields) {\n var clone = _objectSpread({}, obj);\n if (Array.isArray(fields)) {\n fields.forEach(function (key) {\n delete clone[key];\n });\n }\n return clone;\n}","import canUseDom from \"./canUseDom\";\nvar isStyleNameSupport = function isStyleNameSupport(styleName) {\n if (canUseDom() && window.document.documentElement) {\n var styleNameList = Array.isArray(styleName) ? styleName : [styleName];\n var documentElement = window.document.documentElement;\n return styleNameList.some(function (name) {\n return name in documentElement.style;\n });\n }\n return false;\n};\nvar isStyleValueSupport = function isStyleValueSupport(styleName, value) {\n if (!isStyleNameSupport(styleName)) {\n return false;\n }\n var ele = document.createElement('div');\n var origin = ele.style[styleName];\n ele.style[styleName] = value;\n return ele.style[styleName] !== origin;\n};\nexport function isStyleSupport(styleName, styleValue) {\n if (!Array.isArray(styleName) && styleValue !== undefined) {\n return isStyleValueSupport(styleName, styleValue);\n }\n return isStyleNameSupport(styleName);\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n *\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nconst inlineStyle = {\n border: 0,\n background: 'transparent',\n padding: 0,\n lineHeight: 'inherit',\n display: 'inline-block'\n};\nconst TransButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n const onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.preventDefault();\n }\n };\n const onKeyUp = event => {\n const {\n keyCode\n } = event;\n const {\n onClick\n } = props;\n if (keyCode === KeyCode.ENTER && onClick) {\n onClick();\n }\n };\n const {\n style,\n noStyle,\n disabled\n } = props,\n restProps = __rest(props, [\"style\", \"noStyle\", \"disabled\"]);\n let mergedStyle = {};\n if (!noStyle) {\n mergedStyle = Object.assign({}, inlineStyle);\n }\n if (disabled) {\n mergedStyle.pointerEvents = 'none';\n }\n mergedStyle = Object.assign(Object.assign({}, mergedStyle), style);\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n role: \"button\",\n tabIndex: 0,\n ref: ref\n }, restProps, {\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n style: mergedStyle\n }));\n});\nexport default TransButton;","/* eslint-disable no-param-reassign */\n\nvar cached;\nexport default function getScrollBarSize(fresh) {\n if (typeof document === 'undefined') {\n return 0;\n }\n if (fresh || cached === undefined) {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n var outer = document.createElement('div');\n var outerStyle = outer.style;\n outerStyle.position = 'absolute';\n outerStyle.top = '0';\n outerStyle.left = '0';\n outerStyle.pointerEvents = 'none';\n outerStyle.visibility = 'hidden';\n outerStyle.width = '200px';\n outerStyle.height = '150px';\n outerStyle.overflow = 'hidden';\n outer.appendChild(inner);\n document.body.appendChild(outer);\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n document.body.removeChild(outer);\n cached = widthContained - widthScroll;\n }\n return cached;\n}\nfunction ensureSize(str) {\n var match = str.match(/^(.*)px$/);\n var value = Number(match === null || match === void 0 ? void 0 : match[1]);\n return Number.isNaN(value) ? getScrollBarSize() : value;\n}\nexport function getTargetScrollBarSize(target) {\n if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n return {\n width: 0,\n height: 0\n };\n }\n var _getComputedStyle = getComputedStyle(target, '::-webkit-scrollbar'),\n width = _getComputedStyle.width,\n height = _getComputedStyle.height;\n return {\n width: ensureSize(width),\n height: ensureSize(height)\n };\n}","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n const fullLocale = React.useContext(LocaleContext);\n const getLocale = React.useMemo(() => {\n var _a;\n const locale = defaultLocale || defaultLocaleData[componentName];\n const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, fullLocale]);\n const getLocaleCode = React.useMemo(() => {\n const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [fullLocale]);\n return [getLocale, getLocaleCode];\n};\nexport default useLocale;","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n var _React$useState = React.useState(function () {\n if (!canUseDom()) {\n return null;\n }\n var defaultEle = document.createElement('div');\n if (process.env.NODE_ENV !== 'production' && debug) {\n defaultEle.setAttribute('data-debug', debug);\n }\n return defaultEle;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n ele = _React$useState2[0];\n\n // ========================== Order ==========================\n var appendedRef = React.useRef(false);\n var queueCreate = React.useContext(OrderContext);\n var _React$useState3 = React.useState(EMPTY_LIST),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n queue = _React$useState4[0],\n setQueue = _React$useState4[1];\n var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n setQueue(function (origin) {\n var newQueue = [appendFn].concat(_toConsumableArray(origin));\n return newQueue;\n });\n });\n\n // =========================== DOM ===========================\n function append() {\n if (!ele.parentElement) {\n document.body.appendChild(ele);\n }\n appendedRef.current = true;\n }\n function cleanup() {\n var _ele$parentElement;\n (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n appendedRef.current = false;\n }\n useLayoutEffect(function () {\n if (render) {\n if (queueCreate) {\n queueCreate(append);\n } else {\n append();\n }\n } else {\n cleanup();\n }\n return cleanup;\n }, [render]);\n useLayoutEffect(function () {\n if (queue.length) {\n queue.forEach(function (appendFn) {\n return appendFn();\n });\n setQueue(EMPTY_LIST);\n }\n }, [queue]);\n return [ele, mergedQueueCreate];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n var mergedLock = !!lock;\n var _React$useState = React.useState(function () {\n uuid += 1;\n return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n useLayoutEffect(function () {\n if (mergedLock) {\n var scrollbarSize = getTargetScrollBarSize(document.body).width;\n var isOverflow = isBodyOverflowing();\n updateCSS(\"\\nhtml body {\\n overflow-y: hidden;\\n \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n } else {\n removeCSS(id);\n }\n return function () {\n removeCSS(id);\n };\n }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n if (typeof nextInline === 'boolean') {\n inline = nextInline;\n }\n return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n if (getContainer === false) {\n return false;\n }\n if (!canUseDom() || !getContainer) {\n return null;\n }\n if (typeof getContainer === 'string') {\n return document.querySelector(getContainer);\n }\n if (typeof getContainer === 'function') {\n return getContainer();\n }\n return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var open = props.open,\n autoLock = props.autoLock,\n getContainer = props.getContainer,\n debug = props.debug,\n _props$autoDestroy = props.autoDestroy,\n autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n children = props.children;\n var _React$useState = React.useState(open),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n shouldRender = _React$useState2[0],\n setShouldRender = _React$useState2[1];\n var mergedRender = shouldRender || open;\n\n // ========================= Warning =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n }\n\n // ====================== Should Render ======================\n React.useEffect(function () {\n if (autoDestroy || open) {\n setShouldRender(open);\n }\n }, [open, autoDestroy]);\n\n // ======================== Container ========================\n var _React$useState3 = React.useState(function () {\n return getPortalContainer(getContainer);\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n innerContainer = _React$useState4[0],\n setInnerContainer = _React$useState4[1];\n React.useEffect(function () {\n var customizeContainer = getPortalContainer(getContainer);\n\n // Tell component that we check this in effect which is safe to be `null`\n setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n });\n var _useDom = useDom(mergedRender && !innerContainer, debug),\n _useDom2 = _slicedToArray(_useDom, 2),\n defaultContainer = _useDom2[0],\n queueCreate = _useDom2[1];\n var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n // ========================= Locker ==========================\n useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n // =========================== Ref ===========================\n var childRef = null;\n if (children && supportRef(children) && ref) {\n var _ref = children;\n childRef = _ref.ref;\n }\n var mergedRef = useComposeRef(childRef, ref);\n\n // ========================= Render ==========================\n // Do not render when nothing need render\n // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n return null;\n }\n\n // Render inline\n var renderInline = mergedContainer === false || inlineMock();\n var reffedChildren = children;\n if (ref) {\n reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n });\n }\n return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n value: queueCreate\n }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n var fullClone = _objectSpread({}, React);\n return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n if (process.env.NODE_ENV !== 'production') {\n uuid = 0;\n }\n}\nexport default function useId(id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState('ssr-id'),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n var useOriginId = getUseId();\n var reactNativeId = useOriginId === null || useOriginId === void 0 ? void 0 : useOriginId();\n React.useEffect(function () {\n if (!useOriginId) {\n var nextId = uuid;\n uuid += 1;\n setInnerId(\"rc_unique_\".concat(nextId));\n }\n }, []);\n\n // Developer passed id is single source of truth\n if (id) {\n return id;\n }\n\n // Test env always return mock id\n if (process.env.NODE_ENV === 'test') {\n return 'test-id';\n }\n\n // Return react native id or inner id\n return reactNativeId || innerId;\n}","export default (function () {\n if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n return false;\n }\n var agent = navigator.userAgent || navigator.vendor || window.opera;\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n return React.useMemo(function () {\n var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n var showActionSet = new Set(mergedShowAction);\n var hideActionSet = new Set(mergedHideAction);\n if (mobile) {\n if (showActionSet.has('hover')) {\n showActionSet.delete('hover');\n showActionSet.add('click');\n }\n if (hideActionSet.has('hover')) {\n hideActionSet.delete('hover');\n hideActionSet.add('click');\n }\n }\n return [showActionSet, hideActionSet];\n }, [mobile, action, showAction, hideAction]);\n}","export default (function (element) {\n if (!element) {\n return false;\n }\n if (element instanceof Element) {\n if (element.offsetParent) {\n return true;\n }\n if (element.getBBox) {\n var _getBBox = element.getBBox(),\n width = _getBBox.width,\n height = _getBBox.height;\n if (width || height) {\n return true;\n }\n }\n if (element.getBoundingClientRect) {\n var _element$getBoundingC = element.getBoundingClientRect(),\n _width = _element$getBoundingC.width,\n _height = _element$getBoundingC.height;\n if (_width || _height) {\n return true;\n }\n }\n }\n return false;\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n var placements = Object.keys(builtinPlacements);\n for (var i = 0; i < placements.length; i += 1) {\n var _builtinPlacements$pl;\n var placement = placements[i];\n if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n }\n }\n return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n if (motion) {\n return motion;\n }\n if (animation) {\n return {\n motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n };\n }\n if (transitionName) {\n return {\n motionName: transitionName\n };\n }\n return null;\n}\nexport function getWin(ele) {\n return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele The element to be detected\n * @param areaOnly Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n var scrollerList = [];\n var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n while (current) {\n var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n overflowX = _getWin$getComputedSt.overflowX,\n overflowY = _getWin$getComputedSt.overflowY,\n overflow = _getWin$getComputedSt.overflow;\n if ([overflowX, overflowY, overflow].some(function (o) {\n return scrollStyle.includes(o);\n })) {\n scrollerList.push(current);\n }\n current = current.parentElement;\n }\n return scrollerList;\n}\nexport function toNum(num) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n * **************************************\n * * Border *\n * * ************************** *\n * * * * * *\n * * B * * S * B *\n * * o * * c * o *\n * * r * Content * r * r *\n * * d * * o * d *\n * * e * * l * e *\n * * r ******************** l * r *\n * * * Scroll * *\n * * ************************** *\n * * Border *\n * **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n var visibleArea = _objectSpread({}, initArea);\n (scrollerList || []).forEach(function (ele) {\n if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n return;\n }\n\n // Skip if static position which will not affect visible area\n var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n overflow = _getWin$getComputedSt2.overflow,\n overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n var eleRect = ele.getBoundingClientRect();\n var eleOutHeight = ele.offsetHeight,\n eleInnerHeight = ele.clientHeight,\n eleOutWidth = ele.offsetWidth,\n eleInnerWidth = ele.clientWidth;\n var borderTopNum = getPxValue(borderTopWidth);\n var borderBottomNum = getPxValue(borderBottomWidth);\n var borderLeftNum = getPxValue(borderLeftWidth);\n var borderRightNum = getPxValue(borderRightWidth);\n var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n // Original visible area\n var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n // Cut border size\n var scaledBorderTopWidth = borderTopNum * scaleY;\n var scaledBorderBottomWidth = borderBottomNum * scaleY;\n var scaledBorderLeftWidth = borderLeftNum * scaleX;\n var scaledBorderRightWidth = borderRightNum * scaleX;\n\n // Clip margin\n var clipMarginWidth = 0;\n var clipMarginHeight = 0;\n if (overflow === 'clip') {\n var clipNum = getPxValue(overflowClipMargin);\n clipMarginWidth = clipNum * scaleX;\n clipMarginHeight = clipNum * scaleY;\n }\n\n // Region\n var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n visibleArea.left = Math.max(visibleArea.left, eleLeft);\n visibleArea.top = Math.max(visibleArea.top, eleTop);\n visibleArea.right = Math.min(visibleArea.right, eleRight);\n visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n });\n return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var offsetStr = \"\".concat(offset);\n var cells = offsetStr.match(/^(.*)\\%$/);\n if (cells) {\n return size * (parseFloat(cells[1]) / 100);\n }\n return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n var _ref = offset || [],\n _ref2 = _slicedToArray(_ref, 2),\n offsetX = _ref2[0],\n offsetY = _ref2[1];\n return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n var topBottom = points[0];\n var leftRight = points[1];\n var x;\n var y;\n\n // Top & Bottom\n if (topBottom === 't') {\n y = rect.y;\n } else if (topBottom === 'b') {\n y = rect.y + rect.height;\n } else {\n y = rect.y + rect.height / 2;\n }\n\n // Left & Right\n if (leftRight === 'l') {\n x = rect.x;\n } else if (leftRight === 'r') {\n x = rect.x + rect.width;\n } else {\n x = rect.x + rect.width / 2;\n }\n return {\n x: x,\n y: y\n };\n}\nfunction reversePoints(points, index) {\n var reverseMap = {\n t: 'b',\n b: 't',\n l: 'r',\n r: 'l'\n };\n return points.map(function (point, i) {\n if (i === index) {\n return reverseMap[point] || 'c';\n }\n return point;\n }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n var _React$useState = React.useState({\n ready: false,\n offsetX: 0,\n offsetY: 0,\n offsetR: 0,\n offsetB: 0,\n arrowX: 0,\n arrowY: 0,\n scaleX: 1,\n scaleY: 1,\n align: builtinPlacements[placement] || {}\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n offsetInfo = _React$useState2[0],\n setOffsetInfo = _React$useState2[1];\n var alignCountRef = React.useRef(0);\n var scrollerList = React.useMemo(function () {\n if (!popupEle) {\n return [];\n }\n return collectScroller(popupEle);\n }, [popupEle]);\n\n // ========================= Flip ==========================\n // We will memo flip info.\n // If size change to make flip, it will memo the flip info and use it in next align.\n var prevFlipRef = React.useRef({});\n var resetFlipCache = function resetFlipCache() {\n prevFlipRef.current = {};\n };\n if (!open) {\n resetFlipCache();\n }\n\n // ========================= Align =========================\n var onAlign = useEvent(function () {\n if (popupEle && target && open) {\n var _popupElement$parentE, _popupElement$parentE2;\n var popupElement = popupEle;\n var doc = popupElement.ownerDocument;\n var win = getWin(popupElement);\n var _win$getComputedStyle = win.getComputedStyle(popupElement),\n width = _win$getComputedStyle.width,\n height = _win$getComputedStyle.height,\n popupPosition = _win$getComputedStyle.position;\n var originLeft = popupElement.style.left;\n var originTop = popupElement.style.top;\n var originRight = popupElement.style.right;\n var originBottom = popupElement.style.bottom;\n\n // Placement\n var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n // placeholder element\n var placeholderElement = doc.createElement('div');\n (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 ? void 0 : _popupElement$parentE.appendChild(placeholderElement);\n placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n placeholderElement.style.position = popupPosition;\n placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n // Reset first\n popupElement.style.left = '0';\n popupElement.style.top = '0';\n popupElement.style.right = 'auto';\n popupElement.style.bottom = 'auto';\n\n // Calculate align style, we should consider `transform` case\n var targetRect;\n if (Array.isArray(target)) {\n targetRect = {\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n };\n } else {\n var rect = target.getBoundingClientRect();\n targetRect = {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n };\n }\n var popupRect = popupElement.getBoundingClientRect();\n var _doc$documentElement = doc.documentElement,\n clientWidth = _doc$documentElement.clientWidth,\n clientHeight = _doc$documentElement.clientHeight,\n scrollWidth = _doc$documentElement.scrollWidth,\n scrollHeight = _doc$documentElement.scrollHeight,\n scrollTop = _doc$documentElement.scrollTop,\n scrollLeft = _doc$documentElement.scrollLeft;\n var popupHeight = popupRect.height;\n var popupWidth = popupRect.width;\n var targetHeight = targetRect.height;\n var targetWidth = targetRect.width;\n\n // Get bounding of visible area\n var visibleRegion = {\n left: 0,\n top: 0,\n right: clientWidth,\n bottom: clientHeight\n };\n var scrollRegion = {\n left: -scrollLeft,\n top: -scrollTop,\n right: scrollWidth - scrollLeft,\n bottom: scrollHeight - scrollTop\n };\n var htmlRegion = placementInfo.htmlRegion;\n var VISIBLE = 'visible';\n var VISIBLE_FIRST = 'visibleFirst';\n if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n htmlRegion = VISIBLE;\n }\n var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n // When set to `visibleFirst`,\n // the check `adjust` logic will use `visibleRegion` for check first.\n var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n // Record right & bottom align data\n popupElement.style.left = 'auto';\n popupElement.style.top = 'auto';\n popupElement.style.right = '0';\n popupElement.style.bottom = '0';\n var popupMirrorRect = popupElement.getBoundingClientRect();\n\n // Reset back\n popupElement.style.left = originLeft;\n popupElement.style.top = originTop;\n popupElement.style.right = originRight;\n popupElement.style.bottom = originBottom;\n (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 ? void 0 : _popupElement$parentE2.removeChild(placeholderElement);\n\n // Calculate scale\n var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n // No need to align since it's not visible in view\n if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n return;\n }\n\n // Offset\n var offset = placementInfo.offset,\n targetOffset = placementInfo.targetOffset;\n var _getNumberOffset = getNumberOffset(popupRect, offset),\n _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n popupOffsetX = _getNumberOffset2[0],\n popupOffsetY = _getNumberOffset2[1];\n var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n targetOffsetX = _getNumberOffset4[0],\n targetOffsetY = _getNumberOffset4[1];\n targetRect.x -= targetOffsetX;\n targetRect.y -= targetOffsetY;\n\n // Points\n var _ref3 = placementInfo.points || [],\n _ref4 = _slicedToArray(_ref3, 2),\n popupPoint = _ref4[0],\n targetPoint = _ref4[1];\n var targetPoints = splitPoints(targetPoint);\n var popupPoints = splitPoints(popupPoint);\n var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n // Real align info may not same as origin one\n var nextAlignInfo = _objectSpread({}, placementInfo);\n\n // Next Offset\n var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n // ============== Intersection ===============\n // Get area by position. Used for check if flip area is better\n function getIntersectionVisibleArea(offsetX, offsetY) {\n var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n var l = popupRect.x + offsetX;\n var t = popupRect.y + offsetY;\n var r = l + popupWidth;\n var b = t + popupHeight;\n var visibleL = Math.max(l, area.left);\n var visibleT = Math.max(t, area.top);\n var visibleR = Math.min(r, area.right);\n var visibleB = Math.min(b, area.bottom);\n return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n }\n var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n // As `visibleFirst`, we prepare this for check\n var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n // ========================== Overflow ===========================\n var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n var overflow = placementInfo.overflow || {};\n var adjustX = overflow.adjustX,\n adjustY = overflow.adjustY,\n shiftX = overflow.shiftX,\n shiftY = overflow.shiftY;\n var supportAdjust = function supportAdjust(val) {\n if (typeof val === 'boolean') {\n return val;\n }\n return val >= 0;\n };\n\n // Prepare position\n var nextPopupY;\n var nextPopupBottom;\n var nextPopupX;\n var nextPopupRight;\n function syncNextPopupPosition() {\n nextPopupY = popupRect.y + nextOffsetY;\n nextPopupBottom = nextPopupY + popupHeight;\n nextPopupX = popupRect.x + nextOffsetX;\n nextPopupRight = nextPopupX + popupWidth;\n }\n syncNextPopupPosition();\n\n // >>>>>>>>>> Top & Bottom\n var needAdjustY = supportAdjust(adjustY);\n var sameTB = popupPoints[0] === targetPoints[0];\n\n // Bottom to Top\n if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n var tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n tmpNextOffsetY -= popupHeight - targetHeight;\n } else {\n tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n }\n var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.bt = true;\n nextOffsetY = tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.bt = false;\n }\n }\n\n // Top to Bottom\n if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n var _tmpNextOffsetY = nextOffsetY;\n if (sameTB) {\n _tmpNextOffsetY += popupHeight - targetHeight;\n } else {\n _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n }\n var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n prevFlipRef.current.tb = true;\n nextOffsetY = _tmpNextOffsetY;\n popupOffsetY = -popupOffsetY;\n nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n } else {\n prevFlipRef.current.tb = false;\n }\n }\n\n // >>>>>>>>>> Left & Right\n var needAdjustX = supportAdjust(adjustX);\n\n // >>>>> Flip\n var sameLR = popupPoints[1] === targetPoints[1];\n\n // Right to Left\n if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n var tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n tmpNextOffsetX -= popupWidth - targetWidth;\n } else {\n tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n }\n var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.rl = true;\n nextOffsetX = tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.rl = false;\n }\n }\n\n // Left to Right\n if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n var _tmpNextOffsetX = nextOffsetX;\n if (sameLR) {\n _tmpNextOffsetX += popupWidth - targetWidth;\n } else {\n _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n }\n var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n if (\n // Of course use larger one\n _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n // Choose recommend one\n _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n prevFlipRef.current.lr = true;\n nextOffsetX = _tmpNextOffsetX;\n popupOffsetX = -popupOffsetX;\n nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n } else {\n prevFlipRef.current.lr = false;\n }\n }\n\n // ============================ Shift ============================\n syncNextPopupPosition();\n var numShiftX = shiftX === true ? 0 : shiftX;\n if (typeof numShiftX === 'number') {\n // Left\n if (nextPopupX < visibleRegionArea.left) {\n nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n }\n }\n\n // Right\n if (nextPopupRight > visibleRegionArea.right) {\n nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n if (targetRect.x > visibleRegionArea.right - numShiftX) {\n nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n }\n }\n }\n var numShiftY = shiftY === true ? 0 : shiftY;\n if (typeof numShiftY === 'number') {\n // Top\n if (nextPopupY < visibleRegionArea.top) {\n nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n // When target if far away from visible area\n // Stop shift\n if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n }\n }\n\n // Bottom\n if (nextPopupBottom > visibleRegionArea.bottom) {\n nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n }\n }\n }\n\n // ============================ Arrow ============================\n // Arrow center align\n var popupLeft = popupRect.x + nextOffsetX;\n var popupRight = popupLeft + popupWidth;\n var popupTop = popupRect.y + nextOffsetY;\n var popupBottom = popupTop + popupHeight;\n var targetLeft = targetRect.x;\n var targetRight = targetLeft + targetWidth;\n var targetTop = targetRect.y;\n var targetBottom = targetTop + targetHeight;\n var maxLeft = Math.max(popupLeft, targetLeft);\n var minRight = Math.min(popupRight, targetRight);\n var xCenter = (maxLeft + minRight) / 2;\n var nextArrowX = xCenter - popupLeft;\n var maxTop = Math.max(popupTop, targetTop);\n var minBottom = Math.min(popupBottom, targetBottom);\n var yCenter = (maxTop + minBottom) / 2;\n var nextArrowY = yCenter - popupTop;\n onPopupAlign === null || onPopupAlign === void 0 ? void 0 : onPopupAlign(popupEle, nextAlignInfo);\n\n // Additional calculate right & bottom position\n var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n setOffsetInfo({\n ready: true,\n offsetX: nextOffsetX / _scaleX,\n offsetY: nextOffsetY / _scaleY,\n offsetR: offsetX4Right / _scaleX,\n offsetB: offsetY4Bottom / _scaleY,\n arrowX: nextArrowX / _scaleX,\n arrowY: nextArrowY / _scaleY,\n scaleX: _scaleX,\n scaleY: _scaleY,\n align: nextAlignInfo\n });\n }\n });\n var triggerAlign = function triggerAlign() {\n alignCountRef.current += 1;\n var id = alignCountRef.current;\n\n // Merge all align requirement into one frame\n Promise.resolve().then(function () {\n if (alignCountRef.current === id) {\n onAlign();\n }\n });\n };\n\n // Reset ready status when placement & open changed\n var resetReady = function resetReady() {\n setOffsetInfo(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n ready: false\n });\n });\n };\n useLayoutEffect(resetReady, [placement]);\n useLayoutEffect(function () {\n if (!open) {\n resetReady();\n }\n }, [open]);\n return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n useLayoutEffect(function () {\n if (open && target && popup) {\n var targetElement = target;\n var popupElement = popup;\n var targetScrollList = collectScroller(targetElement);\n var popupScrollList = collectScroller(popupElement);\n var win = getWin(popupElement);\n var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n function notifyScroll() {\n onAlign();\n onScroll();\n }\n mergedList.forEach(function (scroller) {\n scroller.addEventListener('scroll', notifyScroll, {\n passive: true\n });\n });\n win.addEventListener('resize', notifyScroll, {\n passive: true\n });\n\n // First time always do align\n onAlign();\n return function () {\n mergedList.forEach(function (scroller) {\n scroller.removeEventListener('scroll', notifyScroll);\n win.removeEventListener('resize', notifyScroll);\n });\n };\n }\n }, [open, target, popup]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from 'rc-util';\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n var openRef = React.useRef(open);\n\n // Window click to hide should be lock to avoid trigger lock immediately\n var lockRef = React.useRef(false);\n if (openRef.current !== open) {\n lockRef.current = true;\n openRef.current = open;\n }\n React.useEffect(function () {\n var id = raf(function () {\n lockRef.current = false;\n });\n return function () {\n raf.cancel(id);\n };\n }, [open]);\n\n // Click to hide is special action since click popup element should not hide\n React.useEffect(function () {\n if (clickToHide && popupEle && (!mask || maskClosable)) {\n var genClickEvents = function genClickEvents() {\n var clickInside = false;\n\n // User may mouseDown inside and drag out of popup and mouse up\n // Record here to prevent close\n var onWindowMouseDown = function onWindowMouseDown(_ref) {\n var target = _ref.target;\n clickInside = inPopupOrChild(target);\n };\n var onWindowClick = function onWindowClick(_ref2) {\n var target = _ref2.target;\n if (!lockRef.current && openRef.current && !clickInside && !inPopupOrChild(target)) {\n triggerOpen(false);\n }\n };\n return [onWindowMouseDown, onWindowClick];\n };\n\n // Events\n var _genClickEvents = genClickEvents(),\n _genClickEvents2 = _slicedToArray(_genClickEvents, 2),\n onWinMouseDown = _genClickEvents2[0],\n onWinClick = _genClickEvents2[1];\n var _genClickEvents3 = genClickEvents(),\n _genClickEvents4 = _slicedToArray(_genClickEvents3, 2),\n onShadowMouseDown = _genClickEvents4[0],\n onShadowClick = _genClickEvents4[1];\n var win = getWin(popupEle);\n win.addEventListener('mousedown', onWinMouseDown, true);\n win.addEventListener('click', onWinClick, true);\n win.addEventListener('contextmenu', onWinClick, true);\n\n // shadow root\n var targetShadowRoot = getShadowRoot(targetEle);\n if (targetShadowRoot) {\n targetShadowRoot.addEventListener('mousedown', onShadowMouseDown, true);\n targetShadowRoot.addEventListener('click', onShadowClick, true);\n targetShadowRoot.addEventListener('contextmenu', onShadowClick, true);\n }\n\n // Warning if target and popup not in same root\n if (process.env.NODE_ENV !== 'production') {\n var _targetEle$getRootNod, _popupEle$getRootNode;\n var targetRoot = targetEle === null || targetEle === void 0 ? void 0 : (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n }\n return function () {\n win.removeEventListener('mousedown', onWinMouseDown, true);\n win.removeEventListener('click', onWinClick, true);\n win.removeEventListener('contextmenu', onWinClick, true);\n if (targetShadowRoot) {\n targetShadowRoot.removeEventListener('mousedown', onShadowMouseDown, true);\n targetShadowRoot.removeEventListener('click', onShadowClick, true);\n targetShadowRoot.removeEventListener('contextmenu', onShadowClick, true);\n }\n };\n }\n }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n}","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n var prefixCls = props.prefixCls,\n align = props.align,\n arrow = props.arrow,\n arrowPos = props.arrowPos;\n var _ref = arrow || {},\n className = _ref.className,\n content = _ref.content;\n var _arrowPos$x = arrowPos.x,\n x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n _arrowPos$y = arrowPos.y,\n y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n var arrowRef = React.useRef();\n\n // Skip if no align\n if (!align || !align.points) {\n return null;\n }\n var alignStyle = {\n position: 'absolute'\n };\n\n // Skip if no need to align\n if (align.autoArrow !== false) {\n var popupPoints = align.points[0];\n var targetPoints = align.points[1];\n var popupTB = popupPoints[0];\n var popupLR = popupPoints[1];\n var targetTB = targetPoints[0];\n var targetLR = targetPoints[1];\n\n // Top & Bottom\n if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n alignStyle.top = y;\n } else if (popupTB === 't') {\n alignStyle.top = 0;\n } else {\n alignStyle.bottom = 0;\n }\n\n // Left & Right\n if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n alignStyle.left = x;\n } else if (popupLR === 'l') {\n alignStyle.left = 0;\n } else {\n alignStyle.right = 0;\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n style: alignStyle\n }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n var prefixCls = props.prefixCls,\n open = props.open,\n zIndex = props.zIndex,\n mask = props.mask,\n motion = props.motion;\n if (!mask) {\n return null;\n }\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n motionAppear: true,\n visible: open,\n removeOnLeave: true\n }), function (_ref) {\n var className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n zIndex: zIndex\n },\n className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n });\n });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n var children = _ref.children;\n return children;\n}, function (_, next) {\n return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var popup = props.popup,\n className = props.className,\n prefixCls = props.prefixCls,\n style = props.style,\n target = props.target,\n _onVisibleChanged = props.onVisibleChanged,\n open = props.open,\n keepDom = props.keepDom,\n onClick = props.onClick,\n mask = props.mask,\n arrow = props.arrow,\n arrowPos = props.arrowPos,\n align = props.align,\n motion = props.motion,\n maskMotion = props.maskMotion,\n forceRender = props.forceRender,\n getPopupContainer = props.getPopupContainer,\n autoDestroy = props.autoDestroy,\n Portal = props.portal,\n zIndex = props.zIndex,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onPointerEnter = props.onPointerEnter,\n ready = props.ready,\n offsetX = props.offsetX,\n offsetY = props.offsetY,\n offsetR = props.offsetR,\n offsetB = props.offsetB,\n onAlign = props.onAlign,\n onPrepare = props.onPrepare,\n stretch = props.stretch,\n targetWidth = props.targetWidth,\n targetHeight = props.targetHeight;\n var childNode = typeof popup === 'function' ? popup() : popup;\n\n // We can not remove holder only when motion finished.\n var isNodeVisible = open || keepDom;\n\n // ======================= Container ========================\n var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n show = _React$useState2[0],\n setShow = _React$useState2[1];\n\n // Delay to show since `getPopupContainer` need target element\n useLayoutEffect(function () {\n if (!show && getPopupContainerNeedParams && target) {\n setShow(true);\n }\n }, [show, getPopupContainerNeedParams, target]);\n\n // ========================= Render =========================\n if (!show) {\n return null;\n }\n\n // >>>>> Offset\n var AUTO = 'auto';\n var offsetStyle = {\n left: '-1000vw',\n top: '-1000vh',\n right: AUTO,\n bottom: AUTO\n };\n\n // Set align style\n if (ready || !open) {\n var points = align.points,\n _experimental = align._experimental;\n var dynamicInset = _experimental === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset;\n var alignRight = dynamicInset && points[0][1] === 'r';\n var alignBottom = dynamicInset && points[0][0] === 'b';\n if (alignRight) {\n offsetStyle.right = offsetR;\n offsetStyle.left = AUTO;\n } else {\n offsetStyle.left = offsetX;\n offsetStyle.right = AUTO;\n }\n if (alignBottom) {\n offsetStyle.bottom = offsetB;\n offsetStyle.top = AUTO;\n } else {\n offsetStyle.top = offsetY;\n offsetStyle.bottom = AUTO;\n }\n }\n\n // >>>>> Misc\n var miscStyle = {};\n if (stretch) {\n if (stretch.includes('height') && targetHeight) {\n miscStyle.height = targetHeight;\n } else if (stretch.includes('minHeight') && targetHeight) {\n miscStyle.minHeight = targetHeight;\n }\n if (stretch.includes('width') && targetWidth) {\n miscStyle.width = targetWidth;\n } else if (stretch.includes('minWidth') && targetWidth) {\n miscStyle.minWidth = targetWidth;\n }\n }\n if (!open) {\n miscStyle.pointerEvents = 'none';\n }\n return /*#__PURE__*/React.createElement(Portal, {\n open: forceRender || isNodeVisible,\n getContainer: getPopupContainer && function () {\n return getPopupContainer(target);\n },\n autoDestroy: autoDestroy\n }, /*#__PURE__*/React.createElement(Mask, {\n prefixCls: prefixCls,\n open: open,\n zIndex: zIndex,\n mask: mask,\n motion: maskMotion\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onAlign,\n disabled: !open\n }, function (resizeObserverRef) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n motionAppear: true,\n motionEnter: true,\n motionLeave: true,\n removeOnLeave: false,\n forceRender: forceRender,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }, motion, {\n onAppearPrepare: onPrepare,\n onEnterPrepare: onPrepare,\n visible: open,\n onVisibleChanged: function onVisibleChanged(nextVisible) {\n var _motion$onVisibleChan;\n motion === null || motion === void 0 ? void 0 : (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 ? void 0 : _motion$onVisibleChan.call(motion, nextVisible);\n _onVisibleChanged(nextVisible);\n }\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n var cls = classNames(prefixCls, motionClassName, className);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: composeRef(resizeObserverRef, ref, motionRef),\n className: cls,\n style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n }, offsetStyle), miscStyle), motionStyle), {}, {\n boxSizing: 'border-box',\n zIndex: zIndex\n }, style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onPointerEnter: onPointerEnter,\n onClick: onClick\n }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n prefixCls: prefixCls,\n arrow: arrow,\n arrowPos: arrowPos,\n align: align\n }), /*#__PURE__*/React.createElement(PopupContent, {\n cache: !open\n }, childNode));\n });\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n getTriggerDOMNode = props.getTriggerDOMNode;\n var canUseRef = supportRef(children);\n\n // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n var setRef = React.useCallback(function (node) {\n fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n }, [getTriggerDOMNode]);\n var mergedRef = useComposeRef(setRef, children.ref);\n return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n ref: mergedRef\n }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\nexport function generateTrigger() {\n var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n children = props.children,\n _props$action = props.action,\n action = _props$action === void 0 ? 'hover' : _props$action,\n showAction = props.showAction,\n hideAction = props.hideAction,\n popupVisible = props.popupVisible,\n defaultPopupVisible = props.defaultPopupVisible,\n onPopupVisibleChange = props.onPopupVisibleChange,\n afterPopupVisibleChange = props.afterPopupVisibleChange,\n mouseEnterDelay = props.mouseEnterDelay,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n focusDelay = props.focusDelay,\n blurDelay = props.blurDelay,\n mask = props.mask,\n _props$maskClosable = props.maskClosable,\n maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n getPopupContainer = props.getPopupContainer,\n forceRender = props.forceRender,\n autoDestroy = props.autoDestroy,\n destroyPopupOnHide = props.destroyPopupOnHide,\n popup = props.popup,\n popupClassName = props.popupClassName,\n popupStyle = props.popupStyle,\n popupPlacement = props.popupPlacement,\n _props$builtinPlaceme = props.builtinPlacements,\n builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n popupAlign = props.popupAlign,\n zIndex = props.zIndex,\n stretch = props.stretch,\n getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n alignPoint = props.alignPoint,\n onPopupClick = props.onPopupClick,\n onPopupAlign = props.onPopupAlign,\n arrow = props.arrow,\n popupMotion = props.popupMotion,\n maskMotion = props.maskMotion,\n popupTransitionName = props.popupTransitionName,\n popupAnimation = props.popupAnimation,\n maskTransitionName = props.maskTransitionName,\n maskAnimation = props.maskAnimation,\n className = props.className,\n getTriggerDOMNode = props.getTriggerDOMNode,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n // =========================== Mobile ===========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobile = _React$useState2[0],\n setMobile = _React$useState2[1];\n useLayoutEffect(function () {\n setMobile(isMobile());\n }, []);\n\n // ========================== Context ===========================\n var subPopupElements = React.useRef({});\n var parentContext = React.useContext(TriggerContext);\n var context = React.useMemo(function () {\n return {\n registerSubPopup: function registerSubPopup(id, subPopupEle) {\n subPopupElements.current[id] = subPopupEle;\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, subPopupEle);\n }\n };\n }, [parentContext]);\n\n // =========================== Popup ============================\n var id = useId();\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n popupEle = _React$useState4[0],\n setPopupEle = _React$useState4[1];\n var setPopupRef = useEvent(function (node) {\n if (isDOM(node) && popupEle !== node) {\n setPopupEle(node);\n }\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerSubPopup(id, node);\n });\n\n // =========================== Target ===========================\n // Use state to control here since `useRef` update not trigger render\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n targetEle = _React$useState6[0],\n setTargetEle = _React$useState6[1];\n var setTargetRef = useEvent(function (node) {\n if (isDOM(node) && targetEle !== node) {\n setTargetEle(node);\n }\n });\n\n // ========================== Children ==========================\n var child = React.Children.only(children);\n var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n var cloneProps = {};\n var inPopupOrChild = useEvent(function (ele) {\n var _getShadowRoot, _getShadowRoot2;\n var childDOM = targetEle;\n return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n });\n });\n\n // =========================== Motion ===========================\n var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n // ============================ Open ============================\n var _React$useState7 = React.useState(defaultPopupVisible || false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalOpen = _React$useState8[0],\n setInternalOpen = _React$useState8[1];\n\n // Render still use props as first priority\n var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n // We use effect sync here in case `popupVisible` back to `undefined`\n var setMergedOpen = useEvent(function (nextOpen) {\n if (popupVisible === undefined) {\n setInternalOpen(nextOpen);\n }\n });\n useLayoutEffect(function () {\n setInternalOpen(popupVisible || false);\n }, [popupVisible]);\n var openRef = React.useRef(mergedOpen);\n openRef.current = mergedOpen;\n var internalTriggerOpen = useEvent(function (nextOpen) {\n // Enter or Pointer will both trigger open state change\n // We only need take one to avoid duplicated change event trigger\n flushSync(function () {\n if (mergedOpen !== nextOpen) {\n setMergedOpen(nextOpen);\n onPopupVisibleChange === null || onPopupVisibleChange === void 0 ? void 0 : onPopupVisibleChange(nextOpen);\n }\n });\n });\n\n // Trigger for delay\n var delayRef = React.useRef();\n var clearDelay = function clearDelay() {\n clearTimeout(delayRef.current);\n };\n var triggerOpen = function triggerOpen(nextOpen) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n clearDelay();\n if (delay === 0) {\n internalTriggerOpen(nextOpen);\n } else {\n delayRef.current = setTimeout(function () {\n internalTriggerOpen(nextOpen);\n }, delay * 1000);\n }\n };\n React.useEffect(function () {\n return clearDelay;\n }, []);\n\n // ========================== Motion ============================\n var _React$useState9 = React.useState(false),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inMotion = _React$useState10[0],\n setInMotion = _React$useState10[1];\n useLayoutEffect(function (firstMount) {\n if (!firstMount || mergedOpen) {\n setInMotion(true);\n }\n }, [mergedOpen]);\n var _React$useState11 = React.useState(null),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n motionPrepareResolve = _React$useState12[0],\n setMotionPrepareResolve = _React$useState12[1];\n\n // =========================== Align ============================\n var _React$useState13 = React.useState([0, 0]),\n _React$useState14 = _slicedToArray(_React$useState13, 2),\n mousePos = _React$useState14[0],\n setMousePos = _React$useState14[1];\n var setMousePosByEvent = function setMousePosByEvent(event) {\n setMousePos([event.clientX, event.clientY]);\n };\n var _useAlign = useAlign(mergedOpen, popupEle, alignPoint ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n _useAlign2 = _slicedToArray(_useAlign, 11),\n ready = _useAlign2[0],\n offsetX = _useAlign2[1],\n offsetY = _useAlign2[2],\n offsetR = _useAlign2[3],\n offsetB = _useAlign2[4],\n arrowX = _useAlign2[5],\n arrowY = _useAlign2[6],\n scaleX = _useAlign2[7],\n scaleY = _useAlign2[8],\n alignInfo = _useAlign2[9],\n onAlign = _useAlign2[10];\n var _useAction = useAction(mobile, action, showAction, hideAction),\n _useAction2 = _slicedToArray(_useAction, 2),\n showActions = _useAction2[0],\n hideActions = _useAction2[1];\n var clickToShow = showActions.has('click');\n var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n var triggerAlign = useEvent(function () {\n if (!inMotion) {\n onAlign();\n }\n });\n var onScroll = function onScroll() {\n if (openRef.current && alignPoint && clickToHide) {\n triggerOpen(false);\n }\n };\n useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n useLayoutEffect(function () {\n triggerAlign();\n }, [mousePos, popupPlacement]);\n\n // When no builtinPlacements and popupAlign changed\n useLayoutEffect(function () {\n if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n triggerAlign();\n }\n }, [JSON.stringify(popupAlign)]);\n var alignedClassName = React.useMemo(function () {\n var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n React.useImperativeHandle(ref, function () {\n return {\n forceAlign: triggerAlign\n };\n });\n\n // ========================== Stretch ===========================\n var _React$useState15 = React.useState(0),\n _React$useState16 = _slicedToArray(_React$useState15, 2),\n targetWidth = _React$useState16[0],\n setTargetWidth = _React$useState16[1];\n var _React$useState17 = React.useState(0),\n _React$useState18 = _slicedToArray(_React$useState17, 2),\n targetHeight = _React$useState18[0],\n setTargetHeight = _React$useState18[1];\n var syncTargetSize = function syncTargetSize() {\n if (stretch && targetEle) {\n var rect = targetEle.getBoundingClientRect();\n setTargetWidth(rect.width);\n setTargetHeight(rect.height);\n }\n };\n var onTargetResize = function onTargetResize() {\n syncTargetSize();\n triggerAlign();\n };\n\n // ========================== Motion ============================\n var onVisibleChanged = function onVisibleChanged(visible) {\n setInMotion(false);\n onAlign();\n afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 ? void 0 : afterPopupVisibleChange(visible);\n };\n\n // We will trigger align when motion is in prepare\n var onPrepare = function onPrepare() {\n return new Promise(function (resolve) {\n syncTargetSize();\n setMotionPrepareResolve(function () {\n return resolve;\n });\n });\n };\n useLayoutEffect(function () {\n if (motionPrepareResolve) {\n onAlign();\n motionPrepareResolve();\n setMotionPrepareResolve(null);\n }\n }, [motionPrepareResolve]);\n\n // =========================== Action ===========================\n /**\n * Util wrapper for trigger action\n */\n function wrapperAction(eventName, nextOpen, delay, preEvent) {\n cloneProps[eventName] = function (event) {\n var _originChildProps$eve;\n preEvent === null || preEvent === void 0 ? void 0 : preEvent(event);\n triggerOpen(nextOpen, delay);\n\n // Pass to origin\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 ? void 0 : _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n };\n }\n\n // ======================= Action: Click ========================\n if (clickToShow || clickToHide) {\n cloneProps.onClick = function (event) {\n var _originChildProps$onC;\n if (openRef.current && clickToHide) {\n triggerOpen(false);\n } else if (!openRef.current && clickToShow) {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n\n // Pass to origin\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 ? void 0 : _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n };\n }\n\n // Click to hide is special action since click popup element should not hide\n useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n // ======================= Action: Hover ========================\n var hoverToShow = showActions.has('hover');\n var hoverToHide = hideActions.has('hover');\n var onPopupMouseEnter;\n var onPopupMouseLeave;\n if (hoverToShow) {\n // Compatible with old browser which not support pointer event\n wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n setMousePosByEvent(event);\n });\n onPopupMouseEnter = function onPopupMouseEnter() {\n // Only trigger re-open when popup is visible\n if (mergedOpen || inMotion) {\n triggerOpen(true, mouseEnterDelay);\n }\n };\n\n // Align Point\n if (alignPoint) {\n cloneProps.onMouseMove = function (event) {\n var _originChildProps$onM;\n // setMousePosByEvent(event);\n (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 ? void 0 : _originChildProps$onM.call(originChildProps, event);\n };\n }\n }\n if (hoverToHide) {\n wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n onPopupMouseLeave = function onPopupMouseLeave() {\n triggerOpen(false, mouseLeaveDelay);\n };\n }\n\n // ======================= Action: Focus ========================\n if (showActions.has('focus')) {\n wrapperAction('onFocus', true, focusDelay);\n }\n if (hideActions.has('focus')) {\n wrapperAction('onBlur', false, blurDelay);\n }\n\n // ==================== Action: ContextMenu =====================\n if (showActions.has('contextMenu')) {\n cloneProps.onContextMenu = function (event) {\n var _originChildProps$onC2;\n if (openRef.current && hideActions.has('contextMenu')) {\n triggerOpen(false);\n } else {\n setMousePosByEvent(event);\n triggerOpen(true);\n }\n event.preventDefault();\n\n // Pass to origin\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 ? void 0 : _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n };\n }\n\n // ========================= ClassName ==========================\n if (className) {\n cloneProps.className = classNames(originChildProps.className, className);\n }\n\n // =========================== Render ===========================\n var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n // Pass props into cloneProps for nest usage\n var passedProps = {};\n var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n passedEventList.forEach(function (eventName) {\n if (restProps[eventName]) {\n passedProps[eventName] = function () {\n var _mergedChildrenProps$;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 ? void 0 : _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n restProps[eventName].apply(restProps, args);\n };\n }\n });\n\n // Child Node\n var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n var arrowPos = {\n x: arrowX,\n y: arrowY\n };\n var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n // Render\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n disabled: !mergedOpen,\n ref: setTargetRef,\n onResize: onTargetResize\n }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n getTriggerDOMNode: getTriggerDOMNode\n }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Popup, {\n portal: PortalComponent,\n ref: setPopupRef,\n prefixCls: prefixCls,\n popup: popup,\n className: classNames(popupClassName, alignedClassName),\n style: popupStyle,\n target: targetEle,\n onMouseEnter: onPopupMouseEnter,\n onMouseLeave: onPopupMouseLeave\n // https://github.com/ant-design/ant-design/issues/43924\n ,\n onPointerEnter: onPopupMouseEnter,\n zIndex: zIndex\n // Open\n ,\n open: mergedOpen,\n keepDom: inMotion\n // Click\n ,\n onClick: onPopupClick\n // Mask\n ,\n mask: mask\n // Motion\n ,\n motion: mergePopupMotion,\n maskMotion: mergeMaskMotion,\n onVisibleChanged: onVisibleChanged,\n onPrepare: onPrepare\n // Portal\n ,\n forceRender: forceRender,\n autoDestroy: mergedAutoDestroy,\n getPopupContainer: getPopupContainer\n // Arrow\n ,\n align: alignInfo,\n arrow: innerArrow,\n arrowPos: arrowPos\n // Align\n ,\n ready: ready,\n offsetX: offsetX,\n offsetY: offsetY,\n offsetR: offsetR,\n offsetB: offsetB,\n onAlign: triggerAlign\n // Stretch\n ,\n stretch: stretch,\n targetWidth: targetWidth / scaleX,\n targetHeight: targetHeight / scaleY\n })));\n });\n if (process.env.NODE_ENV !== 'production') {\n Trigger.displayName = 'Trigger';\n }\n return Trigger;\n}\nexport default generateTrigger(Portal);","var autoAdjustOverflowTopBottom = {\n shiftX: 64,\n adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n adjustX: 1,\n shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n left: {\n points: ['cr', 'cl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n right: {\n points: ['cl', 'cr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [4, 0],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflowTopBottom,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflowLeftRight,\n offset: [-4, 0],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n var children = props.children,\n prefixCls = props.prefixCls,\n id = props.id,\n overlayInnerStyle = props.overlayInnerStyle,\n className = props.className,\n style = props.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n style: style\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n id: id,\n role: \"tooltip\",\n style: overlayInnerStyle\n }, typeof children === 'function' ? children() : children));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\"];\nimport Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nvar Tooltip = function Tooltip(props, ref) {\n var overlayClassName = props.overlayClassName,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n _props$mouseEnterDela = props.mouseEnterDelay,\n mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n _props$mouseLeaveDela = props.mouseLeaveDelay,\n mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n overlayStyle = props.overlayStyle,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n afterVisibleChange = props.afterVisibleChange,\n transitionName = props.transitionName,\n animation = props.animation,\n motion = props.motion,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'right' : _props$placement,\n _props$align = props.align,\n align = _props$align === void 0 ? {} : _props$align,\n _props$destroyTooltip = props.destroyTooltipOnHide,\n destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n defaultVisible = props.defaultVisible,\n getTooltipContainer = props.getTooltipContainer,\n overlayInnerStyle = props.overlayInnerStyle,\n arrowContent = props.arrowContent,\n overlay = props.overlay,\n id = props.id,\n _props$showArrow = props.showArrow,\n showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n restProps = _objectWithoutProperties(props, _excluded);\n var triggerRef = useRef(null);\n useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var extraProps = _objectSpread({}, restProps);\n if ('visible' in props) {\n extraProps.popupVisible = props.visible;\n }\n var getPopupElement = function getPopupElement() {\n return /*#__PURE__*/React.createElement(Popup, {\n key: \"content\",\n prefixCls: prefixCls,\n id: id,\n overlayInnerStyle: overlayInnerStyle\n }, overlay);\n };\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n popupClassName: overlayClassName,\n prefixCls: prefixCls,\n popup: getPopupElement,\n action: trigger,\n builtinPlacements: placements,\n popupPlacement: placement,\n ref: triggerRef,\n popupAlign: align,\n getPopupContainer: getTooltipContainer,\n onPopupVisibleChange: onVisibleChange,\n afterPopupVisibleChange: afterVisibleChange,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupMotion: motion,\n defaultPopupVisible: defaultVisible,\n autoDestroy: destroyTooltipOnHide,\n mouseLeaveDelay: mouseLeaveDelay,\n popupStyle: overlayStyle,\n mouseEnterDelay: mouseEnterDelay,\n arrow: showArrow\n }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Tooltip from \"./Tooltip\";\nimport Popup from \"./Popup\";\nexport { Popup };\nexport default Tooltip;","// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n height: 0,\n opacity: 0\n});\nconst getRealHeight = node => {\n const {\n scrollHeight\n } = node;\n return {\n height: scrollHeight,\n opacity: 1\n };\n};\nconst getCurrentHeight = node => ({\n height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ant';\n return {\n motionName: `${rootCls}-motion-collapse`,\n onAppearStart: getCollapsedHeight,\n onEnterStart: getCollapsedHeight,\n onAppearActive: getRealHeight,\n onEnterActive: getRealHeight,\n onLeaveStart: getCurrentHeight,\n onLeaveActive: getCollapsedHeight,\n onAppearEnd: skipOpacityTransition,\n onEnterEnd: skipOpacityTransition,\n onLeaveEnd: skipOpacityTransition,\n motionDeadline: 500\n };\n};\nconst SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n if (transitionName !== undefined) {\n return transitionName;\n }\n return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName };\nexport default initCollapseMotion;","export const roundedArrow = (width, innerRadius, outerRadius, bgColor, boxShadow) => {\n const unitWidth = width / 2;\n const ax = 0;\n const ay = unitWidth;\n const bx = outerRadius * 1 / Math.sqrt(2);\n const by = unitWidth - outerRadius * (1 - 1 / Math.sqrt(2));\n const cx = unitWidth - innerRadius * (1 / Math.sqrt(2));\n const cy = outerRadius * (Math.sqrt(2) - 1) + innerRadius * (1 / Math.sqrt(2));\n const dx = 2 * unitWidth - cx;\n const dy = cy;\n const ex = 2 * unitWidth - bx;\n const ey = by;\n const fx = 2 * unitWidth - ax;\n const fy = ay;\n const shadowWidth = unitWidth * Math.sqrt(2) + outerRadius * (Math.sqrt(2) - 2);\n const polygonOffset = outerRadius * (Math.sqrt(2) - 1);\n return {\n pointerEvents: 'none',\n width,\n height: width,\n overflow: 'hidden',\n '&::before': {\n position: 'absolute',\n bottom: 0,\n insetInlineStart: 0,\n width,\n height: width / 2,\n background: bgColor,\n clipPath: {\n _multi_value_: true,\n value: [`polygon(${polygonOffset}px 100%, 50% ${polygonOffset}px, ${2 * unitWidth - polygonOffset}px 100%, ${polygonOffset}px 100%)`, `path('M ${ax} ${ay} A ${outerRadius} ${outerRadius} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${innerRadius} ${innerRadius} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${outerRadius} ${outerRadius} 0 0 0 ${fx} ${fy} Z')`]\n },\n content: '\"\"'\n },\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: shadowWidth,\n height: shadowWidth,\n bottom: 0,\n insetInline: 0,\n margin: 'auto',\n borderRadius: {\n _skip_check_: true,\n value: `0 0 ${innerRadius}px 0`\n },\n transform: 'translateY(50%) rotate(-135deg)',\n boxShadow,\n zIndex: 0,\n background: 'transparent'\n }\n };\n};","import { roundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffset(options) {\n const maxVerticalContentRadius = MAX_VERTICAL_CONTENT_RADIUS;\n const {\n contentRadius,\n limitVerticalRadius\n } = options;\n const dropdownArrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n const dropdownArrowOffsetVertical = limitVerticalRadius ? maxVerticalContentRadius : dropdownArrowOffset;\n return {\n dropdownArrowOffset,\n dropdownArrowOffsetVertical\n };\n}\nfunction isInject(valid, code) {\n if (!valid) return {};\n return code;\n}\nexport default function getArrowStyle(token, options) {\n const {\n componentCls,\n sizePopupArrow,\n borderRadiusXS,\n borderRadiusOuter,\n boxShadowPopoverArrow\n } = token;\n const {\n colorBg,\n contentRadius = token.borderRadiusLG,\n limitVerticalRadius,\n arrowDistance = 0,\n arrowPlacement = {\n left: true,\n right: true,\n top: true,\n bottom: true\n }\n } = options;\n const {\n dropdownArrowOffsetVertical,\n dropdownArrowOffset\n } = getArrowOffset({\n contentRadius,\n limitVerticalRadius\n });\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n // ============================ Basic ============================\n [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'block'\n }, roundedArrow(sizePopupArrow, borderRadiusXS, borderRadiusOuter, colorBg, boxShadowPopoverArrow)), {\n '&:before': {\n background: colorBg\n }\n })]\n }, isInject(!!arrowPlacement.top, {\n [[`&-placement-top ${componentCls}-arrow`, `&-placement-topLeft ${componentCls}-arrow`, `&-placement-topRight ${componentCls}-arrow`].join(',')]: {\n bottom: arrowDistance,\n transform: 'translateY(100%) rotate(180deg)'\n },\n [`&-placement-top ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n },\n [`&-placement-topLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-topRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.bottom, {\n [[`&-placement-bottom ${componentCls}-arrow`, `&-placement-bottomLeft ${componentCls}-arrow`, `&-placement-bottomRight ${componentCls}-arrow`].join(',')]: {\n top: arrowDistance,\n transform: `translateY(-100%)`\n },\n [`&-placement-bottom ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: '50%'\n },\n transform: `translateX(-50%) translateY(-100%)`\n },\n [`&-placement-bottomLeft ${componentCls}-arrow`]: {\n left: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n },\n [`&-placement-bottomRight ${componentCls}-arrow`]: {\n right: {\n _skip_check_: true,\n value: dropdownArrowOffset\n }\n }\n })), isInject(!!arrowPlacement.left, {\n [[`&-placement-left ${componentCls}-arrow`, `&-placement-leftTop ${componentCls}-arrow`, `&-placement-leftBottom ${componentCls}-arrow`].join(',')]: {\n right: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(100%) rotate(90deg)'\n },\n [`&-placement-left ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n },\n [`&-placement-leftTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-leftBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n })), isInject(!!arrowPlacement.right, {\n [[`&-placement-right ${componentCls}-arrow`, `&-placement-rightTop ${componentCls}-arrow`, `&-placement-rightBottom ${componentCls}-arrow`].join(',')]: {\n left: {\n _skip_check_: true,\n value: arrowDistance\n },\n transform: 'translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-right ${componentCls}-arrow`]: {\n top: {\n _skip_check_: true,\n value: '50%'\n },\n transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n },\n [`&-placement-rightTop ${componentCls}-arrow`]: {\n top: dropdownArrowOffsetVertical\n },\n [`&-placement-rightBottom ${componentCls}-arrow`]: {\n bottom: dropdownArrowOffsetVertical\n }\n }))\n };\n}","import { getArrowOffset } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n if (autoAdjustOverflow === false) {\n return {\n adjustX: false,\n adjustY: false\n };\n }\n const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n const baseOverflow = {};\n switch (placement) {\n case 'top':\n case 'bottom':\n baseOverflow.shiftX = arrowOffset.dropdownArrowOffset * 2 + arrowWidth;\n break;\n case 'left':\n case 'right':\n baseOverflow.shiftY = arrowOffset.dropdownArrowOffsetVertical * 2 + arrowWidth;\n break;\n }\n const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n // Support auto shift\n if (!mergedOverflow.shiftX) {\n mergedOverflow.adjustX = true;\n }\n if (!mergedOverflow.shiftY) {\n mergedOverflow.adjustY = true;\n }\n return mergedOverflow;\n}\nconst PlacementAlignMap = {\n left: {\n points: ['cr', 'cl']\n },\n right: {\n points: ['cl', 'cr']\n },\n top: {\n points: ['bc', 'tc']\n },\n bottom: {\n points: ['tc', 'bc']\n },\n topLeft: {\n points: ['bl', 'tl']\n },\n leftTop: {\n points: ['tr', 'tl']\n },\n topRight: {\n points: ['br', 'tr']\n },\n rightTop: {\n points: ['tl', 'tr']\n },\n bottomRight: {\n points: ['tr', 'br']\n },\n rightBottom: {\n points: ['bl', 'br']\n },\n bottomLeft: {\n points: ['tl', 'bl']\n },\n leftBottom: {\n points: ['br', 'bl']\n }\n};\nconst ArrowCenterPlacementAlignMap = {\n topLeft: {\n points: ['bl', 'tc']\n },\n leftTop: {\n points: ['tr', 'cl']\n },\n topRight: {\n points: ['br', 'tc']\n },\n rightTop: {\n points: ['tl', 'cr']\n },\n bottomRight: {\n points: ['tr', 'bc']\n },\n rightBottom: {\n points: ['bl', 'cr']\n },\n bottomLeft: {\n points: ['tl', 'bc']\n },\n leftBottom: {\n points: ['br', 'cl']\n }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n const {\n arrowWidth,\n autoAdjustOverflow,\n arrowPointAtCenter,\n offset,\n borderRadius,\n visibleFirst\n } = config;\n const halfArrowWidth = arrowWidth / 2;\n const placementMap = {};\n Object.keys(PlacementAlignMap).forEach(key => {\n const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n const placementInfo = Object.assign(Object.assign({}, template), {\n offset: [0, 0]\n });\n placementMap[key] = placementInfo;\n // Disable autoArrow since design is fixed position\n if (DisableAutoArrowList.has(key)) {\n placementInfo.autoArrow = false;\n }\n // Static offset\n switch (key) {\n case 'top':\n case 'topLeft':\n case 'topRight':\n placementInfo.offset[1] = -halfArrowWidth - offset;\n break;\n case 'bottom':\n case 'bottomLeft':\n case 'bottomRight':\n placementInfo.offset[1] = halfArrowWidth + offset;\n break;\n case 'left':\n case 'leftTop':\n case 'leftBottom':\n placementInfo.offset[0] = -halfArrowWidth - offset;\n break;\n case 'right':\n case 'rightTop':\n case 'rightBottom':\n placementInfo.offset[0] = halfArrowWidth + offset;\n break;\n }\n // Dynamic offset\n const arrowOffset = getArrowOffset({\n contentRadius: borderRadius,\n limitVerticalRadius: true\n });\n if (arrowPointAtCenter) {\n switch (key) {\n case 'topLeft':\n case 'bottomLeft':\n placementInfo.offset[0] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'topRight':\n case 'bottomRight':\n placementInfo.offset[0] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n case 'leftTop':\n case 'rightTop':\n placementInfo.offset[1] = -arrowOffset.dropdownArrowOffset - halfArrowWidth;\n break;\n case 'leftBottom':\n case 'rightBottom':\n placementInfo.offset[1] = arrowOffset.dropdownArrowOffset + halfArrowWidth;\n break;\n }\n }\n // Overflow\n placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n // VisibleFirst\n if (visibleFirst) {\n placementInfo.htmlRegion = 'visibleFirst';\n }\n });\n return placementMap;\n}","import * as React from 'react';\nexport const {\n isValidElement\n} = React;\nexport function isFragment(child) {\n return child && isValidElement(child) && child.type === React.Fragment;\n}\nexport function replaceElement(element, replacement, props) {\n if (!isValidElement(element)) {\n return replacement;\n }\n return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n}\nexport function cloneElement(element, props) {\n return replaceElement(element, element, props);\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const compactItemClassnames = React.useMemo(() => {\n if (!compactItemContext) {\n return '';\n }\n const {\n compactDirection,\n isFirstItem,\n isLastItem\n } = compactItemContext;\n const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n return classNames(`${prefixCls}-compact${separator}item`, {\n [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n });\n }, [prefixCls, direction, compactItemContext]);\n return {\n compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n compactItemClassnames\n };\n};\nexport const NoCompactStyle = _ref => {\n let {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: null\n }, children);\n};\nconst CompactItem = _a => {\n var {\n children\n } = _a,\n otherProps = __rest(_a, [\"children\"]);\n return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n value: otherProps\n }, children);\n};\nconst Compact = props => {\n const {\n getPrefixCls,\n direction: directionConfig\n } = React.useContext(ConfigContext);\n const {\n size,\n direction,\n block,\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children\n } = props,\n restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n const mergedSize = useSize(ctx => size !== null && size !== void 0 ? size : ctx);\n const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const clx = classNames(prefixCls, hashId, {\n [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n [`${prefixCls}-block`]: block,\n [`${prefixCls}-vertical`]: direction === 'vertical'\n }, className, rootClassName);\n const compactItemContext = React.useContext(SpaceCompactItemContext);\n const childNodes = toArray(children);\n const nodes = React.useMemo(() => childNodes.map((child, i) => {\n const key = child && child.key || `${prefixCls}-item-${i}`;\n return /*#__PURE__*/React.createElement(CompactItem, {\n key: key,\n compactSize: mergedSize,\n compactDirection: direction,\n isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n }, child);\n }), [size, childNodes, compactItemContext]);\n // =========================== Render ===========================\n if (childNodes.length === 0) {\n return null;\n }\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: clx\n }, restProps), nodes));\n};\nexport default Compact;","'use client';\n\n/* eslint-disable import/prefer-default-export */\nimport getDesignToken from './getDesignToken';\nimport { defaultConfig, useToken as useInternalToken } from './internal';\nimport compactAlgorithm from './themes/compact';\nimport darkAlgorithm from './themes/dark';\nimport defaultAlgorithm from './themes/default';\n// ZombieJ: We export as object to user but array in internal.\n// This is used to minimize the bundle size for antd package but safe to refactor as object also.\n// Please do not export internal `useToken` directly to avoid something export unexpected.\n/** Get current context Design Token. Will be different if you are using nest theme config. */\nfunction useToken() {\n const [theme, token, hashId] = useInternalToken();\n return {\n theme,\n token,\n hashId\n };\n}\nexport default {\n /** @private Test Usage. Do not use in production. */\n defaultConfig,\n /** Default seedToken */\n defaultSeed: defaultConfig.token,\n useToken,\n defaultAlgorithm,\n darkAlgorithm,\n compactAlgorithm,\n getDesignToken\n};","const initMotionCommon = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n animationDuration: duration,\n animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const sameLevelPrefix = sameLevel ? '&' : '';\n return {\n [`\n ${sameLevelPrefix}${motionCls}-enter,\n ${sameLevelPrefix}${motionCls}-appear\n `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n animationPlayState: 'paused'\n }),\n [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n animationPlayState: 'paused'\n }),\n [`\n ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n `]: {\n animationName: inKeyframes,\n animationPlayState: 'running'\n },\n [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n animationName: outKeyframes,\n animationPlayState: 'running',\n pointerEvents: 'none'\n }\n };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n '0%': {\n transform: 'scale(0.2)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.2)',\n opacity: 0\n }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n '0%': {\n transform: 'scale(0.8)',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 1\n }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n '0%': {\n transform: 'scale(1)'\n },\n '100%': {\n transform: 'scale(0.8)',\n opacity: 0\n }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 0%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 0%',\n opacity: 0\n }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '0% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '0% 50%',\n opacity: 0\n }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '100% 50%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '100% 50%',\n opacity: 0\n }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n '0%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n '0%': {\n transform: 'scale(1)',\n transformOrigin: '50% 100%'\n },\n '100%': {\n transform: 'scale(0.8)',\n transformOrigin: '50% 100%',\n opacity: 0\n }\n});\nconst zoomMotion = {\n zoom: {\n inKeyframes: zoomIn,\n outKeyframes: zoomOut\n },\n 'zoom-big': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-big-fast': {\n inKeyframes: zoomBigIn,\n outKeyframes: zoomBigOut\n },\n 'zoom-left': {\n inKeyframes: zoomLeftIn,\n outKeyframes: zoomLeftOut\n },\n 'zoom-right': {\n inKeyframes: zoomRightIn,\n outKeyframes: zoomRightOut\n },\n 'zoom-up': {\n inKeyframes: zoomUpIn,\n outKeyframes: zoomUpOut\n },\n 'zoom-down': {\n inKeyframes: zoomDownIn,\n outKeyframes: zoomDownOut\n }\n};\nexport const initZoomMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = zoomMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutCirc,\n '&-prepare': {\n transform: 'none'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInOutCirc\n }\n }];\n};","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n return PresetColors.reduce((prev, colorKey) => {\n const lightColor = token[`${colorKey}1`];\n const lightBorderColor = token[`${colorKey}3`];\n const darkColor = token[`${colorKey}6`];\n const textColor = token[`${colorKey}7`];\n return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n lightColor,\n lightBorderColor,\n darkColor,\n textColor\n }));\n }, {});\n}","import { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { genComponentStyleHook, genPresetColor, mergeToken } from '../../theme/internal';\nconst genTooltipStyle = token => {\n const {\n componentCls,\n // ant-tooltip\n tooltipMaxWidth,\n tooltipColor,\n tooltipBg,\n tooltipBorderRadius,\n zIndexPopup,\n controlHeight,\n boxShadowSecondary,\n paddingSM,\n paddingXS,\n tooltipRadiusOuter\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n zIndex: zIndexPopup,\n display: 'block',\n width: 'max-content',\n maxWidth: tooltipMaxWidth,\n visibility: 'visible',\n transformOrigin: `var(--arrow-x, 50%) var(--arrow-y, 50%)`,\n '&-hidden': {\n display: 'none'\n },\n '--antd-arrow-background-color': tooltipBg,\n // Wrapper for the tooltip content\n [`${componentCls}-inner`]: {\n minWidth: controlHeight,\n minHeight: controlHeight,\n padding: `${paddingSM / 2}px ${paddingXS}px`,\n color: tooltipColor,\n textAlign: 'start',\n textDecoration: 'none',\n wordWrap: 'break-word',\n backgroundColor: tooltipBg,\n borderRadius: tooltipBorderRadius,\n boxShadow: boxShadowSecondary,\n boxSizing: 'border-box'\n },\n // Limit left and right placement radius\n [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n [`${componentCls}-inner`]: {\n borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n }\n },\n [`${componentCls}-content`]: {\n position: 'relative'\n }\n }), genPresetColor(token, (colorKey, _ref) => {\n let {\n darkColor\n } = _ref;\n return {\n [`&${componentCls}-${colorKey}`]: {\n [`${componentCls}-inner`]: {\n backgroundColor: darkColor\n },\n [`${componentCls}-arrow`]: {\n '--antd-arrow-background-color': darkColor\n }\n }\n };\n })), {\n // RTL\n '&-rtl': {\n direction: 'rtl'\n }\n })\n },\n // Arrow Style\n getArrowStyle(mergeToken(token, {\n borderRadiusOuter: tooltipRadiusOuter\n }), {\n colorBg: 'var(--antd-arrow-background-color)',\n contentRadius: tooltipBorderRadius,\n limitVerticalRadius: true\n }),\n // Pure Render\n {\n [`${componentCls}-pure`]: {\n position: 'relative',\n maxWidth: 'none',\n margin: token.sizePopupArrow\n }\n }];\n};\n// ============================== Export ==============================\nexport default ((prefixCls, injectStyle) => {\n const useOriginHook = genComponentStyleHook('Tooltip', token => {\n // Popover use Tooltip as internal component. We do not need to handle this.\n if (injectStyle === false) {\n return [];\n }\n const {\n borderRadius,\n colorTextLightSolid,\n colorBgDefault,\n borderRadiusOuter\n } = token;\n const TooltipToken = mergeToken(token, {\n // default variables\n tooltipMaxWidth: 250,\n tooltipColor: colorTextLightSolid,\n tooltipBorderRadius: borderRadius,\n tooltipBg: colorBgDefault,\n tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter\n });\n return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n }, _ref2 => {\n let {\n zIndexPopupBase,\n colorBgSpotlight\n } = _ref2;\n return {\n zIndexPopup: zIndexPopupBase + 70,\n colorBgDefault: colorBgSpotlight\n };\n }, {\n resetStyle: false\n });\n return useOriginHook(prefixCls);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (includeInverse) {\n return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n }\n return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n return PresetStatusColorTypes.includes(color);\n}","/* eslint-disable import/prefer-default-export */\nimport classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n const isInternalColor = isPresetColor(color);\n const className = classNames({\n [`${prefixCls}-${color}`]: color && isInternalColor\n });\n const overlayStyle = {};\n const arrowStyle = {};\n if (color && !isInternalColor) {\n overlayStyle.background = color;\n // @ts-ignore\n arrowStyle['--antd-arrow-background-color'] = color;\n }\n return {\n className,\n overlayStyle,\n arrowStyle\n };\n}","import classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n placement = 'top',\n title,\n color,\n overlayInnerStyle\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls, true);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const cls = classNames(hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: cls,\n style: arrowContentStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-arrow`\n }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n className: hashId,\n prefixCls: prefixCls,\n overlayInnerStyle: formattedOverlayInnerStyle\n }), title)));\n};\nexport default PurePanel;","'use client';\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment, isValidElement } from '../_util/reactNode';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { NoCompactStyle } from '../space/Compact';\nimport theme from '../theme';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst {\n useToken\n} = theme;\nconst splitObject = (obj, keys) => {\n const picked = {};\n const omitted = Object.assign({}, obj);\n keys.forEach(key => {\n if (obj && key in obj) {\n picked[key] = obj[key];\n delete omitted[key];\n }\n });\n return {\n picked,\n omitted\n };\n};\n// Fix Tooltip won't hide at disabled button\n// mouse events don't trigger at disabled button in Chrome\n// https://github.com/react-component/tooltip/issues/18\nfunction getDisabledCompatibleChildren(element, prefixCls) {\n const elementType = element.type;\n if ((elementType.__ANT_BUTTON === true || element.type === 'button') && element.props.disabled || elementType.__ANT_SWITCH === true && (element.props.disabled || element.props.loading) || elementType.__ANT_RADIO === true && element.props.disabled) {\n // Pick some layout related style properties up to span\n // Prevent layout bugs like https://github.com/ant-design/ant-design/issues/5254\n const {\n picked,\n omitted\n } = splitObject(element.props.style, ['position', 'left', 'right', 'top', 'bottom', 'float', 'display', 'zIndex']);\n const spanStyle = Object.assign(Object.assign({\n display: 'inline-block'\n }, picked), {\n cursor: 'not-allowed',\n width: element.props.block ? '100%' : undefined\n });\n const buttonStyle = Object.assign(Object.assign({}, omitted), {\n pointerEvents: 'none'\n });\n const child = cloneElement(element, {\n style: buttonStyle,\n className: null\n });\n return /*#__PURE__*/React.createElement(\"span\", {\n style: spanStyle,\n className: classNames(element.props.className, `${prefixCls}-disabled-compatible-wrapper`)\n }, child);\n }\n return element;\n}\nconst Tooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n openClassName,\n getTooltipContainer,\n overlayClassName,\n color,\n overlayInnerStyle,\n children,\n afterOpenChange,\n afterVisibleChange,\n destroyTooltipOnHide,\n arrow = true,\n title,\n overlay,\n builtinPlacements,\n arrowPointAtCenter = false,\n autoAdjustOverflow = true\n } = props;\n const mergedShowArrow = !!arrow;\n const {\n token\n } = useToken();\n const {\n getPopupContainer: getContextPopupContainer,\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ============================== Ref ===============================\n const tooltipRef = React.useRef(null);\n const forceAlign = () => {\n var _a;\n (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n };\n React.useImperativeHandle(ref, () => ({\n forceAlign,\n forcePopupAlign: () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Tooltip', '`forcePopupAlign` is align to `forceAlign` instead.') : void 0;\n forceAlign();\n }\n }));\n // ============================== Warn ==============================\n if (process.env.NODE_ENV !== 'production') {\n [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow={{ pointAtCenter: true }}']].forEach(_ref => {\n let [deprecatedName, newName] = _ref;\n process.env.NODE_ENV !== \"production\" ? warning(!(deprecatedName in props), 'Tooltip', `\\`${deprecatedName}\\` is deprecated, please use \\`${newName}\\` instead.`) : void 0;\n });\n process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'Tooltip', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'Tooltip', '`arrowPointAtCenter` in `arrow` is deprecated, please use `pointAtCenter` instead.') : void 0;\n }\n // ============================== Open ==============================\n const [open, setOpen] = useMergedState(false, {\n value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n });\n const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n const onOpenChange = vis => {\n var _a, _b;\n setOpen(noTitle ? false : vis);\n if (!noTitle) {\n (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n }\n };\n const tooltipPlacements = React.useMemo(() => {\n var _a, _b;\n let mergedArrowPointAtCenter = arrowPointAtCenter;\n if (typeof arrow === 'object') {\n mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n }\n return builtinPlacements || getPlacements({\n arrowPointAtCenter: mergedArrowPointAtCenter,\n autoAdjustOverflow,\n arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n borderRadius: token.borderRadius,\n offset: token.marginXXS,\n visibleFirst: true\n });\n }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n const memoOverlay = React.useMemo(() => {\n if (title === 0) {\n return title;\n }\n return overlay || title || '';\n }, [overlay, title]);\n const memoOverlayWrapper = /*#__PURE__*/React.createElement(NoCompactStyle, null, typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay);\n const {\n getPopupContainer,\n placement = 'top',\n mouseEnterDelay = 0.1,\n mouseLeaveDelay = 0.1,\n overlayStyle,\n rootClassName\n } = props,\n otherProps = __rest(props, [\"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\"]);\n const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const injectFromPopover = props['data-popover-inject'];\n let tempOpen = open;\n // Hide tooltip when there is no title\n if (!('open' in props) && !('visible' in props) && noTitle) {\n tempOpen = false;\n }\n // ============================= Render =============================\n const child = getDisabledCompatibleChildren(isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children), prefixCls);\n const childProps = child.props;\n const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls, !injectFromPopover);\n // Color\n const colorInfo = parseColor(prefixCls, color);\n const arrowContentStyle = colorInfo.arrowStyle;\n const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n const customOverlayClassName = classNames(overlayClassName, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, colorInfo.className, rootClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, otherProps, {\n showArrow: mergedShowArrow,\n placement: placement,\n mouseEnterDelay: mouseEnterDelay,\n mouseLeaveDelay: mouseLeaveDelay,\n prefixCls: prefixCls,\n overlayClassName: customOverlayClassName,\n overlayStyle: Object.assign(Object.assign({}, arrowContentStyle), overlayStyle),\n getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n ref: tooltipRef,\n builtinPlacements: tooltipPlacements,\n overlay: memoOverlayWrapper,\n visible: tempOpen,\n onVisibleChange: onOpenChange,\n afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n overlayInnerStyle: formattedOverlayInnerStyle,\n arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-arrow-content`\n }),\n motion: {\n motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n motionDeadline: 1000\n },\n destroyTooltipOnHide: !!destroyTooltipOnHide\n }), tempOpen ? cloneElement(child, {\n className: childCls\n }) : child));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","// This icon file is generated automatically.\nvar EnterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"enter\", \"theme\": \"outlined\" };\nexport default EnterOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EnterOutlinedSvg from \"@ant-design/icons-svg/es/asn/EnterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EnterOutlined = function EnterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EnterOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EnterOutlined.displayName = 'EnterOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EnterOutlined);","export function hasAddon(props) {\n return !!(props.addonBefore || props.addonAfter);\n}\nexport function hasPrefixSuffix(props) {\n return !!(props.prefix || props.suffix || props.allowClear);\n}\nexport function resolveOnChange(target, e, onChange, targetValue) {\n if (!onChange) {\n return;\n }\n var event = e;\n if (e.type === 'click') {\n // Clone a new target for event.\n // Avoid the following usage, the setQuery method gets the original value.\n //\n // const [query, setQuery] = React.useState('');\n // <Input\n // allowClear\n // value={query}\n // onChange={(e)=> {\n // setQuery((prevStatus) => e.target.value);\n // }}\n // />\n\n var currentTarget = target.cloneNode(true);\n\n // click clear icon\n event = Object.create(e, {\n target: {\n value: currentTarget\n },\n currentTarget: {\n value: currentTarget\n }\n });\n currentTarget.value = '';\n onChange(event);\n return;\n }\n\n // Trigger by composition event, this means we need force change the input value\n if (targetValue !== undefined) {\n event = Object.create(e, {\n target: {\n value: target\n },\n currentTarget: {\n value: target\n }\n });\n target.value = targetValue;\n onChange(event);\n return;\n }\n onChange(event);\n}\nexport function triggerFocus(element, option) {\n if (!element) return;\n element.focus(option);\n\n // Selection content\n var _ref = option || {},\n cursor = _ref.cursor;\n if (cursor) {\n var len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n }\n }\n}\nexport function fixControlledValue(value) {\n if (typeof value === 'undefined' || value === null) {\n return '';\n }\n return String(value);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport clsx from 'classnames';\nimport React, { cloneElement, useRef } from 'react';\nimport { hasAddon, hasPrefixSuffix } from \"./utils/commonUtils\";\nvar BaseInput = function BaseInput(props) {\n var _inputElement$props, _inputElement$props2;\n var inputElement = props.inputElement,\n prefixCls = props.prefixCls,\n prefix = props.prefix,\n suffix = props.suffix,\n addonBefore = props.addonBefore,\n addonAfter = props.addonAfter,\n className = props.className,\n style = props.style,\n disabled = props.disabled,\n readOnly = props.readOnly,\n focused = props.focused,\n triggerFocus = props.triggerFocus,\n allowClear = props.allowClear,\n value = props.value,\n handleReset = props.handleReset,\n hidden = props.hidden,\n classes = props.classes,\n classNames = props.classNames,\n dataAttrs = props.dataAttrs,\n styles = props.styles,\n components = props.components;\n var AffixWrapperComponent = (components === null || components === void 0 ? void 0 : components.affixWrapper) || 'span';\n var GroupWrapperComponent = (components === null || components === void 0 ? void 0 : components.groupWrapper) || 'span';\n var WrapperComponent = (components === null || components === void 0 ? void 0 : components.wrapper) || 'span';\n var GroupAddonComponent = (components === null || components === void 0 ? void 0 : components.groupAddon) || 'span';\n var containerRef = useRef(null);\n var onInputClick = function onInputClick(e) {\n var _containerRef$current;\n if ((_containerRef$current = containerRef.current) !== null && _containerRef$current !== void 0 && _containerRef$current.contains(e.target)) {\n triggerFocus === null || triggerFocus === void 0 ? void 0 : triggerFocus();\n }\n };\n\n // ================== Clear Icon ================== //\n var getClearIcon = function getClearIcon() {\n var _clsx;\n if (!allowClear) {\n return null;\n }\n var needClear = !disabled && !readOnly && value;\n var clearIconCls = \"\".concat(prefixCls, \"-clear-icon\");\n var iconNode = _typeof(allowClear) === 'object' && allowClear !== null && allowClear !== void 0 && allowClear.clearIcon ? allowClear.clearIcon : '✖';\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: handleReset\n // Do not trigger onBlur when clear input\n // https://github.com/ant-design/ant-design/issues/31200\n ,\n onMouseDown: function onMouseDown(e) {\n return e.preventDefault();\n },\n className: clsx(clearIconCls, (_clsx = {}, _defineProperty(_clsx, \"\".concat(clearIconCls, \"-hidden\"), !needClear), _defineProperty(_clsx, \"\".concat(clearIconCls, \"-has-suffix\"), !!suffix), _clsx)),\n role: \"button\",\n tabIndex: -1\n }, iconNode);\n };\n var element = /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: hidden,\n className: clsx((_inputElement$props = inputElement.props) === null || _inputElement$props === void 0 ? void 0 : _inputElement$props.className, !hasPrefixSuffix(props) && !hasAddon(props) && className) || null,\n style: _objectSpread(_objectSpread({}, (_inputElement$props2 = inputElement.props) === null || _inputElement$props2 === void 0 ? void 0 : _inputElement$props2.style), !hasPrefixSuffix(props) && !hasAddon(props) ? style : {})\n });\n\n // ================== Prefix & Suffix ================== //\n if (hasPrefixSuffix(props)) {\n var _clsx2;\n var affixWrapperPrefixCls = \"\".concat(prefixCls, \"-affix-wrapper\");\n var affixWrapperCls = clsx(affixWrapperPrefixCls, (_clsx2 = {}, _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-disabled\"), disabled), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-focused\"), focused), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-readonly\"), readOnly), _defineProperty(_clsx2, \"\".concat(affixWrapperPrefixCls, \"-input-with-clear-btn\"), suffix && allowClear && value), _clsx2), !hasAddon(props) && className, classes === null || classes === void 0 ? void 0 : classes.affixWrapper, classNames === null || classNames === void 0 ? void 0 : classNames.affixWrapper);\n var suffixNode = (suffix || allowClear) && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-suffix\"), classNames === null || classNames === void 0 ? void 0 : classNames.suffix),\n style: styles === null || styles === void 0 ? void 0 : styles.suffix\n }, getClearIcon(), suffix);\n element = /*#__PURE__*/React.createElement(AffixWrapperComponent, _extends({\n className: affixWrapperCls,\n style: _objectSpread(_objectSpread({}, !hasAddon(props) ? style : undefined), styles === null || styles === void 0 ? void 0 : styles.affixWrapper),\n hidden: !hasAddon(props) && hidden,\n onClick: onInputClick\n }, dataAttrs === null || dataAttrs === void 0 ? void 0 : dataAttrs.affixWrapper, {\n ref: containerRef\n }), prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-prefix\"), classNames === null || classNames === void 0 ? void 0 : classNames.prefix),\n style: styles === null || styles === void 0 ? void 0 : styles.prefix\n }, prefix), /*#__PURE__*/cloneElement(inputElement, {\n value: value,\n hidden: null\n }), suffixNode);\n }\n\n // ================== Addon ================== //\n if (hasAddon(props)) {\n var wrapperCls = \"\".concat(prefixCls, \"-group\");\n var addonCls = \"\".concat(wrapperCls, \"-addon\");\n var mergedWrapperClassName = clsx(\"\".concat(prefixCls, \"-wrapper\"), wrapperCls, classes === null || classes === void 0 ? void 0 : classes.wrapper);\n var mergedGroupClassName = clsx(\"\".concat(prefixCls, \"-group-wrapper\"), className, classes === null || classes === void 0 ? void 0 : classes.group);\n\n // Need another wrapper for changing display:table to display:inline-block\n // and put style prop in wrapper\n return /*#__PURE__*/React.createElement(GroupWrapperComponent, {\n className: mergedGroupClassName,\n style: style,\n hidden: hidden\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: mergedWrapperClassName\n }, addonBefore && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n className: addonCls\n }, addonBefore), /*#__PURE__*/cloneElement(element, {\n hidden: null\n }), addonAfter && /*#__PURE__*/React.createElement(GroupAddonComponent, {\n className: addonCls\n }, addonAfter)));\n }\n return element;\n};\nexport default BaseInput;","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\n\n/**\n * calculateNodeHeight(uiTextNode, useCache = false)\n */\n\nvar HIDDEN_TEXTAREA_STYLE = \"\\n min-height:0 !important;\\n max-height:none !important;\\n height:0 !important;\\n visibility:hidden !important;\\n overflow:hidden !important;\\n position:absolute !important;\\n z-index:-1000 !important;\\n top:0 !important;\\n right:0 !important;\\n pointer-events: none !important;\\n\";\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'font-variant', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing', 'word-break', 'white-space'];\nvar computedStyleCache = {};\nvar hiddenTextarea;\nexport function calculateNodeStyling(node) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var nodeRef = node.getAttribute('id') || node.getAttribute('data-reactid') || node.getAttribute('name');\n if (useCache && computedStyleCache[nodeRef]) {\n return computedStyleCache[nodeRef];\n }\n var style = window.getComputedStyle(node);\n var boxSizing = style.getPropertyValue('box-sizing') || style.getPropertyValue('-moz-box-sizing') || style.getPropertyValue('-webkit-box-sizing');\n var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n var sizingStyle = SIZING_STYLE.map(function (name) {\n return \"\".concat(name, \":\").concat(style.getPropertyValue(name));\n }).join(';');\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n if (useCache && nodeRef) {\n computedStyleCache[nodeRef] = nodeInfo;\n }\n return nodeInfo;\n}\nexport default function calculateAutoSizeStyle(uiTextNode) {\n var useCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var minRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var maxRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tab-index', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n document.body.appendChild(hiddenTextarea);\n }\n\n // Fix wrap=\"off\" issue\n // https://github.com/ant-design/ant-design/issues/6577\n if (uiTextNode.getAttribute('wrap')) {\n hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap'));\n } else {\n hiddenTextarea.removeAttribute('wrap');\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var _calculateNodeStyling = calculateNodeStyling(uiTextNode, useCache),\n paddingSize = _calculateNodeStyling.paddingSize,\n borderSize = _calculateNodeStyling.borderSize,\n boxSizing = _calculateNodeStyling.boxSizing,\n sizingStyle = _calculateNodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n hiddenTextarea.setAttribute('style', \"\".concat(sizingStyle, \";\").concat(HIDDEN_TEXTAREA_STYLE));\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\n var minHeight = undefined;\n var maxHeight = undefined;\n var overflowY;\n var height = hiddenTextarea.scrollHeight;\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height += borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height -= paddingSize;\n }\n if (minRows !== null || maxRows !== null) {\n // measure height of a textarea with a single row\n hiddenTextarea.value = ' ';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n overflowY = height > maxHeight ? '' : 'hidden';\n height = Math.min(maxHeight, height);\n }\n }\n var style = {\n height: height,\n overflowY: overflowY,\n resize: 'none'\n };\n if (minHeight) {\n style.minHeight = minHeight;\n }\n if (maxHeight) {\n style.maxHeight = maxHeight;\n }\n return style;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"onPressEnter\", \"defaultValue\", \"value\", \"autoSize\", \"onResize\", \"className\", \"style\", \"disabled\", \"onChange\", \"onInternalAutoSize\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport calculateAutoSizeStyle from \"./calculateNodeHeight\";\nvar RESIZE_START = 0;\nvar RESIZE_MEASURING = 1;\nvar RESIZE_STABLE = 2;\nvar ResizableTextArea = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _ref = props,\n prefixCls = _ref.prefixCls,\n onPressEnter = _ref.onPressEnter,\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n autoSize = _ref.autoSize,\n onResize = _ref.onResize,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n onChange = _ref.onChange,\n onInternalAutoSize = _ref.onInternalAutoSize,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n // =============================== Value ================================\n var _useMergedState = useMergedState(defaultValue, {\n value: value,\n postState: function postState(val) {\n return val !== null && val !== void 0 ? val : '';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedValue = _useMergedState2[0],\n setMergedValue = _useMergedState2[1];\n var onInternalChange = function onInternalChange(event) {\n setMergedValue(event.target.value);\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n };\n\n // ================================ Ref =================================\n var textareaRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n textArea: textareaRef.current\n };\n });\n\n // ============================== AutoSize ==============================\n var _React$useMemo = React.useMemo(function () {\n if (autoSize && _typeof(autoSize) === 'object') {\n return [autoSize.minRows, autoSize.maxRows];\n }\n return [];\n }, [autoSize]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n minRows = _React$useMemo2[0],\n maxRows = _React$useMemo2[1];\n var needAutoSize = !!autoSize;\n\n // =============================== Scroll ===============================\n // https://github.com/ant-design/ant-design/issues/21870\n var fixFirefoxAutoScroll = function fixFirefoxAutoScroll() {\n try {\n // FF has bug with jump of scroll to top. We force back here.\n if (document.activeElement === textareaRef.current) {\n var _textareaRef$current = textareaRef.current,\n selectionStart = _textareaRef$current.selectionStart,\n selectionEnd = _textareaRef$current.selectionEnd,\n scrollTop = _textareaRef$current.scrollTop;\n\n // Fix Safari bug which not rollback when break line\n // This makes Chinese IME can't input. Do not fix this\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n textareaRef.current.scrollTop = scrollTop;\n }\n } catch (e) {\n // Fix error in Chrome:\n // Failed to read the 'selectionStart' property from 'HTMLInputElement'\n // http://stackoverflow.com/q/21177489/3040605\n }\n };\n\n // =============================== Resize ===============================\n var _React$useState = React.useState(RESIZE_STABLE),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n resizeState = _React$useState2[0],\n setResizeState = _React$useState2[1];\n var _React$useState3 = React.useState(),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n autoSizeStyle = _React$useState4[0],\n setAutoSizeStyle = _React$useState4[1];\n var startResize = function startResize() {\n setResizeState(RESIZE_START);\n if (process.env.NODE_ENV === 'test') {\n onInternalAutoSize === null || onInternalAutoSize === void 0 ? void 0 : onInternalAutoSize();\n }\n };\n\n // Change to trigger resize measure\n useLayoutEffect(function () {\n if (needAutoSize) {\n startResize();\n }\n }, [value, minRows, maxRows, needAutoSize]);\n useLayoutEffect(function () {\n if (resizeState === RESIZE_START) {\n setResizeState(RESIZE_MEASURING);\n } else if (resizeState === RESIZE_MEASURING) {\n var textareaStyles = calculateAutoSizeStyle(textareaRef.current, false, minRows, maxRows);\n\n // Safari has bug that text will keep break line on text cut when it's prev is break line.\n // ZombieJ: This not often happen. So we just skip it.\n // const { selectionStart, selectionEnd, scrollTop } = textareaRef.current;\n // const { value: tmpValue } = textareaRef.current;\n // textareaRef.current.value = '';\n // textareaRef.current.value = tmpValue;\n\n // if (document.activeElement === textareaRef.current) {\n // textareaRef.current.scrollTop = scrollTop;\n // textareaRef.current.setSelectionRange(selectionStart, selectionEnd);\n // }\n\n setResizeState(RESIZE_STABLE);\n setAutoSizeStyle(textareaStyles);\n } else {\n fixFirefoxAutoScroll();\n }\n }, [resizeState]);\n\n // We lock resize trigger by raf to avoid Safari warning\n var resizeRafRef = React.useRef();\n var cleanRaf = function cleanRaf() {\n raf.cancel(resizeRafRef.current);\n };\n var onInternalResize = function onInternalResize(size) {\n if (resizeState === RESIZE_STABLE) {\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if (autoSize) {\n cleanRaf();\n resizeRafRef.current = raf(function () {\n startResize();\n });\n }\n }\n };\n React.useEffect(function () {\n return cleanRaf;\n }, []);\n\n // =============================== Render ===============================\n var mergedAutoSizeStyle = needAutoSize ? autoSizeStyle : null;\n var mergedStyle = _objectSpread(_objectSpread({}, style), mergedAutoSizeStyle);\n if (resizeState === RESIZE_START || resizeState === RESIZE_MEASURING) {\n mergedStyle.overflowY = 'hidden';\n mergedStyle.overflowX = 'hidden';\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onInternalResize,\n disabled: !(autoSize || onResize)\n }, /*#__PURE__*/React.createElement(\"textarea\", _extends({}, restProps, {\n ref: textareaRef,\n style: mergedStyle,\n className: classNames(prefixCls, className, _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), disabled)),\n disabled: disabled,\n value: mergedValue,\n onChange: onInternalChange\n })));\n});\nexport default ResizableTextArea;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"defaultValue\", \"value\", \"onFocus\", \"onBlur\", \"onChange\", \"allowClear\", \"maxLength\", \"onCompositionStart\", \"onCompositionEnd\", \"suffix\", \"prefixCls\", \"classes\", \"showCount\", \"className\", \"style\", \"disabled\", \"hidden\", \"classNames\", \"styles\", \"onResize\"];\nimport clsx from 'classnames';\nimport { BaseInput } from 'rc-input';\nimport { fixControlledValue, resolveOnChange } from \"rc-input/es/utils/commonUtils\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport ResizableTextArea from \"./ResizableTextArea\";\nfunction fixEmojiLength(value, maxLength) {\n return _toConsumableArray(value || '').slice(0, maxLength).join('');\n}\nfunction setTriggerValue(isCursorInEnd, preValue, triggerValue, maxLength) {\n var newTriggerValue = triggerValue;\n if (isCursorInEnd) {\n // 光标在尾部,直接截断\n newTriggerValue = fixEmojiLength(triggerValue, maxLength);\n } else if (_toConsumableArray(preValue || '').length < triggerValue.length && _toConsumableArray(triggerValue || '').length > maxLength) {\n // 光标在中间,如果最后的值超过最大值,则采用原先的值\n newTriggerValue = preValue;\n }\n return newTriggerValue;\n}\nvar TextArea = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var _clsx;\n var defaultValue = _ref.defaultValue,\n customValue = _ref.value,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n onChange = _ref.onChange,\n allowClear = _ref.allowClear,\n maxLength = _ref.maxLength,\n onCompositionStart = _ref.onCompositionStart,\n onCompositionEnd = _ref.onCompositionEnd,\n suffix = _ref.suffix,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-textarea' : _ref$prefixCls,\n classes = _ref.classes,\n showCount = _ref.showCount,\n className = _ref.className,\n style = _ref.style,\n disabled = _ref.disabled,\n hidden = _ref.hidden,\n classNames = _ref.classNames,\n styles = _ref.styles,\n onResize = _ref.onResize,\n rest = _objectWithoutProperties(_ref, _excluded);\n var _useMergedState = useMergedState(defaultValue, {\n value: customValue,\n defaultValue: defaultValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n value = _useMergedState2[0],\n setValue = _useMergedState2[1];\n var resizableTextAreaRef = useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n compositing = _React$useState4[0],\n setCompositing = _React$useState4[1];\n var oldCompositionValueRef = React.useRef();\n var oldSelectionStartRef = React.useRef(0);\n var _React$useState5 = React.useState(null),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n textareaResized = _React$useState6[0],\n setTextareaResized = _React$useState6[1];\n var focus = function focus() {\n var _resizableTextAreaRef;\n (_resizableTextAreaRef = resizableTextAreaRef.current) === null || _resizableTextAreaRef === void 0 ? void 0 : _resizableTextAreaRef.textArea.focus();\n };\n useImperativeHandle(ref, function () {\n return {\n resizableTextArea: resizableTextAreaRef.current,\n focus: focus,\n blur: function blur() {\n var _resizableTextAreaRef2;\n (_resizableTextAreaRef2 = resizableTextAreaRef.current) === null || _resizableTextAreaRef2 === void 0 ? void 0 : _resizableTextAreaRef2.textArea.blur();\n }\n };\n });\n useEffect(function () {\n setFocused(function (prev) {\n return !disabled && prev;\n });\n }, [disabled]);\n\n // =========================== Value Update ===========================\n // Max length value\n var hasMaxLength = Number(maxLength) > 0;\n var onInternalCompositionStart = function onInternalCompositionStart(e) {\n setCompositing(true);\n // 拼音输入前保存一份旧值\n oldCompositionValueRef.current = value;\n // 保存旧的光标位置\n oldSelectionStartRef.current = e.currentTarget.selectionStart;\n onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);\n };\n var onInternalCompositionEnd = function onInternalCompositionEnd(e) {\n setCompositing(false);\n var triggerValue = e.currentTarget.value;\n if (hasMaxLength) {\n var _oldCompositionValueR;\n var isCursorInEnd = oldSelectionStartRef.current >= maxLength + 1 || oldSelectionStartRef.current === ((_oldCompositionValueR = oldCompositionValueRef.current) === null || _oldCompositionValueR === void 0 ? void 0 : _oldCompositionValueR.length);\n triggerValue = setTriggerValue(isCursorInEnd, oldCompositionValueRef.current, triggerValue, maxLength);\n }\n // Patch composition onChange when value changed\n if (triggerValue !== value) {\n setValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n }\n onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);\n };\n var handleChange = function handleChange(e) {\n var triggerValue = e.target.value;\n if (!compositing && hasMaxLength) {\n // 1. 复制粘贴超过maxlength的情况 2.未超过maxlength的情况\n var isCursorInEnd = e.target.selectionStart >= maxLength + 1 || e.target.selectionStart === triggerValue.length || !e.target.selectionStart;\n triggerValue = setTriggerValue(isCursorInEnd, value, triggerValue, maxLength);\n }\n setValue(triggerValue);\n resolveOnChange(e.currentTarget, e, onChange, triggerValue);\n };\n var handleKeyDown = function handleKeyDown(e) {\n var onPressEnter = rest.onPressEnter,\n onKeyDown = rest.onKeyDown;\n if (e.key === 'Enter' && onPressEnter) {\n onPressEnter(e);\n }\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n };\n var handleFocus = function handleFocus(e) {\n setFocused(true);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n var handleBlur = function handleBlur(e) {\n setFocused(false);\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n\n // ============================== Reset ===============================\n var handleReset = function handleReset(e) {\n var _resizableTextAreaRef3;\n setValue('');\n focus();\n resolveOnChange((_resizableTextAreaRef3 = resizableTextAreaRef.current) === null || _resizableTextAreaRef3 === void 0 ? void 0 : _resizableTextAreaRef3.textArea, e, onChange);\n };\n var val = fixControlledValue(value);\n if (!compositing && hasMaxLength && (customValue === null || customValue === undefined)) {\n // fix #27612 将value转为数组进行截取,解决 '😂'.length === 2 等emoji表情导致的截取乱码的问题\n val = fixEmojiLength(val, maxLength);\n }\n var suffixNode = suffix;\n var dataCount;\n if (showCount) {\n var valueLength = _toConsumableArray(val).length;\n if (_typeof(showCount) === 'object') {\n dataCount = showCount.formatter({\n value: val,\n count: valueLength,\n maxLength: maxLength\n });\n } else {\n dataCount = \"\".concat(valueLength).concat(hasMaxLength ? \" / \".concat(maxLength) : '');\n }\n suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, suffixNode, /*#__PURE__*/React.createElement(\"span\", {\n className: clsx(\"\".concat(prefixCls, \"-data-count\"), classNames === null || classNames === void 0 ? void 0 : classNames.count),\n style: styles === null || styles === void 0 ? void 0 : styles.count\n }, dataCount));\n }\n var handleResize = function handleResize(size) {\n var _resizableTextAreaRef4;\n onResize === null || onResize === void 0 ? void 0 : onResize(size);\n if ((_resizableTextAreaRef4 = resizableTextAreaRef.current) !== null && _resizableTextAreaRef4 !== void 0 && _resizableTextAreaRef4.textArea.style.height) {\n setTextareaResized(true);\n }\n };\n var isPureTextArea = !rest.autoSize && !showCount && !allowClear;\n var textarea = /*#__PURE__*/React.createElement(BaseInput, {\n value: val,\n allowClear: allowClear,\n handleReset: handleReset,\n suffix: suffixNode,\n prefixCls: prefixCls,\n classes: {\n affixWrapper: clsx(classes === null || classes === void 0 ? void 0 : classes.affixWrapper, (_clsx = {}, _defineProperty(_clsx, \"\".concat(prefixCls, \"-show-count\"), showCount), _defineProperty(_clsx, \"\".concat(prefixCls, \"-textarea-allow-clear\"), allowClear), _clsx))\n },\n disabled: disabled,\n focused: focused,\n className: className,\n style: _objectSpread(_objectSpread({}, style), textareaResized && !isPureTextArea ? {\n height: 'auto'\n } : {}),\n dataAttrs: {\n affixWrapper: {\n 'data-count': typeof dataCount === 'string' ? dataCount : undefined\n }\n },\n hidden: hidden,\n inputElement: /*#__PURE__*/React.createElement(ResizableTextArea, _extends({}, rest, {\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onCompositionStart: onInternalCompositionStart,\n onCompositionEnd: onInternalCompositionEnd,\n className: classNames === null || classNames === void 0 ? void 0 : classNames.textarea,\n style: _objectSpread(_objectSpread({}, styles === null || styles === void 0 ? void 0 : styles.textarea), {}, {\n resize: style === null || style === void 0 ? void 0 : style.resize\n }),\n disabled: disabled,\n prefixCls: prefixCls,\n onResize: handleResize,\n ref: resizableTextAreaRef\n }))\n });\n return textarea;\n});\nexport default TextArea;","import TextArea from \"./TextArea\";\nexport { default as ResizableTextArea } from \"./ResizableTextArea\";\nexport default TextArea;","import classNames from 'classnames';\nconst InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n return classNames({\n [`${prefixCls}-status-success`]: status === 'success',\n [`${prefixCls}-status-warning`]: status === 'warning',\n [`${prefixCls}-status-error`]: status === 'error',\n [`${prefixCls}-status-validating`]: status === 'validating',\n [`${prefixCls}-has-feedback`]: hasFeedback\n });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","import React from 'react';\nimport SizeContext from '../SizeContext';\nconst useSize = customSize => {\n const size = React.useContext(SizeContext);\n const mergedSize = React.useMemo(() => {\n if (!customSize) {\n return size;\n }\n if (typeof customSize === 'string') {\n return customSize !== null && customSize !== void 0 ? customSize : size;\n }\n if (customSize instanceof Function) {\n return customSize(size);\n }\n return size;\n }, [customSize, size]);\n return mergedSize;\n};\nexport default useSize;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n return form && !!form._init;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return {\n value: void 0,\n done: !0\n };\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable || \"\" === iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n throw new TypeError(_typeof(iterable) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record<string, ValidateError[]> {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record<string, RuleValuePackage[]>) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record<string, ValidateError[]>;\n\n constructor(\n errors: ValidateError[],\n fields: Record<string, ValidateError[]>,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record<string, RuleValuePackage[]>,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise<Values> {\n if (option.first) {\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge<T extends object>(target: T, source: Partial<T>): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record<string, RuleItem[]> = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise<Values>;\n validate(source: Values, callback: ValidateCallback): Promise<Values>;\n validate(source: Values): Promise<Values>;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise<Values> {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record<string, RuleValuePackage[]> = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record<string, Rule> = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record<string, RuleItem[]> = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise<void>).then) {\n (res as Promise<void>).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { merge } from \"rc-util/es/utils/set\";\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n AsyncValidator.warning = function () {\n return void 0;\n };\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = merge(defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 10;\n _context2.next = 13;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 13:\n _context2.next = 18;\n break;\n case 15:\n _context2.prev = 15;\n _context2.t0 = _context2[\"catch\"](10);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 18:\n if (!(!result.length && subRuleField)) {\n _context2.next = 23;\n break;\n }\n _context2.next = 21;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 21:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 23:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 26:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[10, 15]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nexport { getValue, setValue };\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport ListContext from './ListContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n _this.touched = false;\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n _this.dirty = false;\n _this.validatePromise = void 0;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n // ================================== Utils ==================================\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n // Event should only trigger when meta changed\n _this.metaCache = null;\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n if (onMetaChange) {\n var meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n });\n if (!isEqual(_this.metaCache, meta)) {\n onMetaChange(meta);\n }\n _this.metaCache = meta;\n } else {\n _this.metaCache = null;\n }\n };\n // ========================= Field Entity Interfaces =========================\n // Trigger by store update. Check if need update the component\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = undefined;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example <List name=\"list\"><Field name={['list', 0]}></List>\n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n var _ref2 = options || {},\n triggerName = _ref2.triggerName,\n _ref2$validateOnly = _ref2.validateOnly,\n validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n if (validateOnly) {\n return rootPromise;\n }\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n // ============================= Child Component =============================\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath(),\n validated: _this.validatePromise === null\n };\n return meta;\n };\n // Only return validate child node. If invalidate, will do nothing about field.\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n // ============================== Field Control ==============================\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var listContext = React.useContext(ListContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath,\n isListField: !!listContext\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nfunction List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger,\n isListField = _ref.isListField;\n var context = React.useContext(FieldContext);\n var wrapperListContext = React.useContext(ListContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true,\n isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport { merge } from \"rc-util/es/utils/set\";\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n // ======================== Internal Hooks ========================\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n /**\n * Record prev Form unmount fieldEntities which config preserve false.\n * This need to be refill with initialValues instead of store value.\n */\n this.prevWithoutPreserves = null;\n /**\n * First time `setInitialValues` should update store with initial value\n */\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = merge(initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? merge(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n // ============================= Watch ============================\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n var allValues = _this.getFieldsValue(true);\n _this.watchList.forEach(function (callback) {\n callback(values, allValues, namePath);\n });\n }\n };\n // ========================== Dev Warning =========================\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n // ============================ Store =============================\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n // ============================ Fields ============================\n /**\n * Get registered field entities.\n * @param pure Only return field which has a `name`. Default: false\n */\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n // Fill args\n var mergedNameList;\n var mergedFilterFunc;\n var mergedStrict;\n if (nameList === true || Array.isArray(nameList)) {\n mergedNameList = nameList;\n mergedFilterFunc = filterFunc;\n } else if (nameList && _typeof(nameList) === 'object') {\n mergedStrict = nameList.strict;\n mergedFilterFunc = nameList.filter;\n }\n if (mergedNameList === true && !mergedFilterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (mergedStrict) {\n var _entity$isList;\n if ((_entity$isList = entity.isList) === null || _entity$isList === void 0 ? void 0 : _entity$isList.call(entity)) {\n return;\n }\n } else if (!mergedNameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!mergedFilterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (mergedFilterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n /**\n * Reset Field with field `initialValue` prop.\n * Can pass `entities` or `namePathList` or just nothing.\n */\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(merge(_this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n // =========================== Observer ===========================\n /**\n * This only trigger when a field is on constructor to avoid we get initialValue too late\n */\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n /**\n * Notify dependencies children with parent update\n * We need delay to trigger validate in case Field is under render props\n */\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n // Let all child Field get update.\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = merge(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n if (changedFields.length) {\n onFieldsChange(changedFields, fields);\n }\n }\n };\n // =========================== Validate ===========================\n this.validateFields = function (arg1, arg2) {\n _this.warningUnhooked();\n var nameList;\n var options;\n if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n nameList = arg1;\n options = arg2;\n } else {\n options = arg1;\n }\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n // We temp save the path which need trigger for `onFieldsChange`\n var TMP_SPLIT = String(Date.now());\n var validateNamePathList = new Set();\n _this.getFieldEntities(true).forEach(function (field) {\n var _options;\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n if (((_options = options) === null || _options === void 0 ? void 0 : _options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n if (\n // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n // `validating` changed. Trigger `onFieldsChange`\n var triggerNamePathList = namePathList.filter(function (namePath) {\n return validateNamePathList.has(namePath.join(TMP_SPLIT));\n });\n _this.triggerOnFieldsChange(triggerNamePathList);\n return returnPromise;\n };\n // ============================ Submit ============================\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode));\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nimport { isFormInstance } from './utils/typeUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n var nameStrRef = useRef(fullyStr);\n warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n _args$2 = args[1],\n _form = _args$2 === void 0 ? {} : _args$2;\n var options = isFormInstance(_form) ? {\n form: _form\n } : _form;\n var form = options.form;\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useWatchWarning(namePath);\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (values, allValues) {\n var newValue = getValue(options.preserve ? allValues : values, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(options.preserve ? getFieldsValue(true) : getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { useContext, useMemo } from 'react';\nexport const FormContext = /*#__PURE__*/React.createContext({\n labelAlign: 'right',\n vertical: false,\n itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n const providerProps = omit(props, ['prefixCls']);\n return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nexport const NoFormStyle = _ref => {\n let {\n children,\n status,\n override\n } = _ref;\n const formItemInputContext = useContext(FormItemInputContext);\n const newFormItemInputContext = useMemo(() => {\n const newContext = Object.assign({}, formItemInputContext);\n if (override) {\n delete newContext.isFormItemInput;\n }\n if (status) {\n delete newContext.status;\n delete newContext.hasFeedback;\n delete newContext.feedbackIcon;\n }\n return newContext;\n }, [status, override, formItemInputContext]);\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: newFormItemInputContext\n }, children);\n};","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n const {\n focusElCls,\n focus,\n borderElCls\n } = options;\n const childCombinator = borderElCls ? '> *' : '';\n const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n return {\n [`&-item:not(${parentCls}-last-item)`]: {\n marginInlineEnd: -token.lineWidth\n },\n '&-item': Object.assign(Object.assign({\n [hoverEffects]: {\n zIndex: 2\n }\n }, focusElCls ? {\n [`&${focusElCls}`]: {\n zIndex: 2\n }\n } : {}), {\n [`&[disabled] ${childCombinator}`]: {\n zIndex: 0\n }\n })\n };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n const {\n borderElCls\n } = options;\n const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n return {\n [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n borderRadius: 0\n },\n [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n };\n}\nexport function genCompactItemStyle(token) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n focus: true\n };\n const {\n componentCls\n } = token;\n const compactCls = `${componentCls}-compact`;\n return {\n [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n };\n}","import { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nexport const genPlaceholderStyle = color => ({\n // Firefox\n '&::-moz-placeholder': {\n opacity: 1\n },\n '&::placeholder': {\n color,\n userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n },\n\n '&:placeholder-shown': {\n textOverflow: 'ellipsis'\n }\n});\nexport const genHoverStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n borderInlineEndWidth: token.lineWidth\n});\nexport const genActiveStyle = token => ({\n borderColor: token.inputBorderHoverColor,\n boxShadow: `0 0 0 ${token.controlOutlineWidth}px ${token.controlOutline}`,\n borderInlineEndWidth: token.lineWidth,\n outline: 0\n});\nexport const genDisabledStyle = token => ({\n color: token.colorTextDisabled,\n backgroundColor: token.colorBgContainerDisabled,\n borderColor: token.colorBorder,\n boxShadow: 'none',\n cursor: 'not-allowed',\n opacity: 1,\n '&:hover': Object.assign({}, genHoverStyle(mergeToken(token, {\n inputBorderHoverColor: token.colorBorder\n })))\n});\nconst genInputLargeStyle = token => {\n const {\n inputPaddingVerticalLG,\n fontSizeLG,\n lineHeightLG,\n borderRadiusLG,\n inputPaddingHorizontalLG\n } = token;\n return {\n padding: `${inputPaddingVerticalLG}px ${inputPaddingHorizontalLG}px`,\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG,\n borderRadius: borderRadiusLG\n };\n};\nexport const genInputSmallStyle = token => ({\n padding: `${token.inputPaddingVerticalSM}px ${token.controlPaddingHorizontalSM - 1}px`,\n borderRadius: token.borderRadiusSM\n});\nexport const genStatusStyle = (token, parentCls) => {\n const {\n componentCls,\n colorError,\n colorWarning,\n colorErrorOutline,\n colorWarningOutline,\n colorErrorBorderHover,\n colorWarningBorderHover\n } = token;\n return {\n [`&-status-error:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorError,\n '&:hover': {\n borderColor: colorErrorBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorError,\n inputBorderHoverColor: colorError,\n controlOutline: colorErrorOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorError\n }\n },\n [`&-status-warning:not(${parentCls}-disabled):not(${parentCls}-borderless)${parentCls}`]: {\n borderColor: colorWarning,\n '&:hover': {\n borderColor: colorWarningBorderHover\n },\n '&:focus, &-focused': Object.assign({}, genActiveStyle(mergeToken(token, {\n inputBorderActiveColor: colorWarning,\n inputBorderHoverColor: colorWarning,\n controlOutline: colorWarningOutline\n }))),\n [`${componentCls}-prefix, ${componentCls}-suffix`]: {\n color: colorWarning\n }\n }\n };\n};\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n minWidth: 0,\n padding: `${token.inputPaddingVertical}px ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n backgroundColor: token.colorBgContainer,\n backgroundImage: 'none',\n borderWidth: token.lineWidth,\n borderStyle: token.lineType,\n borderColor: token.colorBorder,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n '&:hover': Object.assign({}, genHoverStyle(token)),\n '&:focus, &-focused': Object.assign({}, genActiveStyle(token)),\n '&-disabled, &[disabled]': Object.assign({}, genDisabledStyle(token)),\n '&-borderless': {\n '&, &:hover, &:focus, &-focused, &-disabled, &[disabled]': {\n backgroundColor: 'transparent',\n border: 'none',\n boxShadow: 'none'\n }\n },\n // Reset height for `textarea`s\n 'textarea&': {\n maxWidth: '100%',\n height: 'auto',\n minHeight: token.controlHeight,\n lineHeight: token.lineHeight,\n verticalAlign: 'bottom',\n transition: `all ${token.motionDurationSlow}, height 0s`,\n resize: 'vertical'\n },\n // Size\n '&-lg': Object.assign({}, genInputLargeStyle(token)),\n '&-sm': Object.assign({}, genInputSmallStyle(token)),\n // RTL\n '&-rtl': {\n direction: 'rtl'\n },\n '&-textarea-rtl': {\n direction: 'rtl'\n }\n});\nexport const genInputGroupStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n return {\n position: 'relative',\n display: 'table',\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0,\n // Undo padding and float of grid classes\n [`&[class*='col-']`]: {\n paddingInlineEnd: token.paddingXS,\n '&:last-child': {\n paddingInlineEnd: 0\n }\n },\n // Sizing options\n [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n // Fix https://github.com/ant-design/ant-design/issues/5754\n [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightLG\n },\n [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n height: token.controlHeightSM\n },\n [`> ${componentCls}`]: {\n display: 'table-cell',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n [`${componentCls}-group`]: {\n [`&-addon, &-wrap`]: {\n display: 'table-cell',\n width: 1,\n whiteSpace: 'nowrap',\n verticalAlign: 'middle',\n '&:not(:first-child):not(:last-child)': {\n borderRadius: 0\n }\n },\n '&-wrap > *': {\n display: 'block !important'\n },\n '&-addon': {\n position: 'relative',\n padding: `0 ${token.inputPaddingHorizontal}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n textAlign: 'center',\n backgroundColor: token.colorFillAlter,\n border: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`,\n lineHeight: 1,\n // Reset Select's style in addon\n [`${antCls}-select`]: {\n margin: `-${token.inputPaddingVertical + 1}px -${token.inputPaddingHorizontal}px`,\n [`&${antCls}-select-single:not(${antCls}-select-customize-input)`]: {\n [`${antCls}-select-selector`]: {\n backgroundColor: 'inherit',\n border: `${token.lineWidth}px ${token.lineType} transparent`,\n boxShadow: 'none'\n }\n },\n '&-open, &-focused': {\n [`${antCls}-select-selector`]: {\n color: token.colorPrimary\n }\n }\n },\n // https://github.com/ant-design/ant-design/issues/31333\n [`${antCls}-cascader-picker`]: {\n margin: `-9px -${token.inputPaddingHorizontal}px`,\n backgroundColor: 'transparent',\n [`${antCls}-cascader-input`]: {\n textAlign: 'start',\n border: 0,\n boxShadow: 'none'\n }\n }\n },\n '&-addon:first-child': {\n borderInlineEnd: 0\n },\n '&-addon:last-child': {\n borderInlineStart: 0\n }\n },\n [`${componentCls}`]: {\n width: '100%',\n marginBottom: 0,\n textAlign: 'inherit',\n '&:focus': {\n zIndex: 1,\n borderInlineEndWidth: 1\n },\n '&:hover': {\n zIndex: 1,\n borderInlineEndWidth: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }\n },\n // Reset rounded corners\n [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}-affix-wrapper`]: {\n [`&:not(:first-child) ${componentCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n },\n [`&:not(:last-child) ${componentCls}`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n // Reset Select's style in addon\n [`${antCls}-select ${antCls}-select-selector`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n '&:not(:last-child)': {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n [`${componentCls}-search &`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n }\n },\n [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n },\n [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n display: 'block'\n }, clearFix()), {\n [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n '&:not(:first-child):not(:last-child)': {\n borderInlineEndWidth: token.lineWidth,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n }\n },\n '& > *': {\n display: 'inline-block',\n float: 'none',\n verticalAlign: 'top',\n borderRadius: 0\n },\n [`\n & > ${componentCls}-affix-wrapper,\n & > ${componentCls}-number-affix-wrapper,\n & > ${antCls}-picker-range\n `]: {\n display: 'inline-flex'\n },\n '& > *:not(:last-child)': {\n marginInlineEnd: -token.lineWidth,\n borderInlineEndWidth: token.lineWidth\n },\n // Undo float for .ant-input-group .ant-input\n [`${componentCls}`]: {\n float: 'none'\n },\n // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n [`& > ${antCls}-select > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete ${componentCls},\n & > ${antCls}-cascader-picker ${componentCls},\n & > ${componentCls}-group-wrapper ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderRadius: 0,\n '&:hover': {\n zIndex: 1\n },\n '&:focus': {\n zIndex: 1\n }\n },\n [`& > ${antCls}-select-focused`]: {\n zIndex: 1\n },\n // update z-index for arrow icon\n [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n },\n [`& > *:first-child,\n & > ${antCls}-select:first-child > ${antCls}-select-selector,\n & > ${antCls}-select-auto-complete:first-child ${componentCls},\n & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderEndStartRadius: token.borderRadius\n },\n [`& > *:last-child,\n & > ${antCls}-select:last-child > ${antCls}-select-selector,\n & > ${antCls}-cascader-picker:last-child ${componentCls},\n & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n borderInlineEndWidth: token.lineWidth,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius\n },\n // https://github.com/ant-design/ant-design/issues/12493\n [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n verticalAlign: 'top'\n },\n [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n marginInlineStart: -token.lineWidth,\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`${componentCls}-group-wrapper:not(:last-child)`]: {\n [`&${componentCls}-search > ${componentCls}-group`]: {\n [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n borderRadius: 0\n },\n [`& > ${componentCls}`]: {\n borderStartStartRadius: token.borderRadius,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0,\n borderEndStartRadius: token.borderRadius\n }\n }\n }\n })\n };\n};\nconst genInputStyle = token => {\n const {\n componentCls,\n controlHeightSM,\n lineWidth\n } = token;\n const FIXED_CHROME_COLOR_HEIGHT = 16;\n const colorSmallPadding = (controlHeightSM - lineWidth * 2 - FIXED_CHROME_COLOR_HEIGHT) / 2;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genStatusStyle(token, componentCls)), {\n '&[type=\"color\"]': {\n height: token.controlHeight,\n [`&${componentCls}-lg`]: {\n height: token.controlHeightLG\n },\n [`&${componentCls}-sm`]: {\n height: controlHeightSM,\n paddingTop: colorSmallPadding,\n paddingBottom: colorSmallPadding\n }\n },\n '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n '-webkit-appearance': 'none'\n }\n })\n };\n};\nconst genAllowClearStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ========================= Input =========================\n [`${componentCls}-clear-icon`]: {\n margin: 0,\n color: token.colorTextQuaternary,\n fontSize: token.fontSizeIcon,\n verticalAlign: -1,\n // https://github.com/ant-design/ant-design/pull/18151\n // https://codesandbox.io/s/wizardly-sun-u10br\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextTertiary\n },\n '&:active': {\n color: token.colorText\n },\n '&-hidden': {\n visibility: 'hidden'\n },\n '&-has-suffix': {\n margin: `0 ${token.inputAffixPadding}px`\n }\n }\n };\n};\nconst genAffixStyle = token => {\n const {\n componentCls,\n inputAffixPadding,\n colorTextDescription,\n motionDurationSlow,\n colorIcon,\n colorIconHover,\n iconCls\n } = token;\n return {\n [`${componentCls}-affix-wrapper`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n display: 'inline-flex',\n [`&:not(${componentCls}-affix-wrapper-disabled):hover`]: Object.assign(Object.assign({}, genHoverStyle(token)), {\n zIndex: 1,\n [`${componentCls}-search-with-button &`]: {\n zIndex: 0\n }\n }),\n '&-focused, &:focus': {\n zIndex: 1\n },\n '&-disabled': {\n [`${componentCls}[disabled]`]: {\n background: 'transparent'\n }\n },\n [`> input${componentCls}`]: {\n padding: 0,\n fontSize: 'inherit',\n border: 'none',\n borderRadius: 0,\n outline: 'none',\n '&::-ms-reveal': {\n display: 'none'\n },\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n '&::before': {\n display: 'inline-block',\n width: 0,\n visibility: 'hidden',\n content: '\"\\\\a0\"'\n },\n [`${componentCls}`]: {\n '&-prefix, &-suffix': {\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n '> *:not(:last-child)': {\n marginInlineEnd: token.paddingXS\n }\n },\n '&-show-count-suffix': {\n color: colorTextDescription\n },\n '&-show-count-has-suffix': {\n marginInlineEnd: token.paddingXXS\n },\n '&-prefix': {\n marginInlineEnd: inputAffixPadding\n },\n '&-suffix': {\n marginInlineStart: inputAffixPadding\n }\n }\n }), genAllowClearStyle(token)), {\n // password\n [`${iconCls}${componentCls}-password-icon`]: {\n color: colorIcon,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorIconHover\n }\n }\n }), genStatusStyle(token, `${componentCls}-affix-wrapper`))\n };\n};\nconst genGroupStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning,\n borderRadiusLG,\n borderRadiusSM\n } = token;\n return {\n [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n '&-rtl': {\n direction: 'rtl'\n },\n '&-wrapper': {\n display: 'inline-block',\n width: '100%',\n textAlign: 'start',\n verticalAlign: 'top',\n '&-rtl': {\n direction: 'rtl'\n },\n // Size\n '&-lg': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusLG,\n fontSize: token.fontSizeLG\n }\n },\n '&-sm': {\n [`${componentCls}-group-addon`]: {\n borderRadius: borderRadiusSM\n }\n },\n // Status\n '&-status-error': {\n [`${componentCls}-group-addon`]: {\n color: colorError,\n borderColor: colorError\n }\n },\n '&-status-warning': {\n [`${componentCls}-group-addon`]: {\n color: colorWarning,\n borderColor: colorWarning\n }\n },\n '&-disabled': {\n [`${componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n },\n // Fix the issue of using icons in Space Compact mode\n // https://github.com/ant-design/ant-design/issues/42122\n [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n }\n },\n [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n [`${componentCls}, ${componentCls}-group-addon`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0\n }\n }\n }\n })\n };\n};\nconst genSearchInputStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const searchPrefixCls = `${componentCls}-search`;\n return {\n [searchPrefixCls]: {\n [`${componentCls}`]: {\n '&:hover, &:focus': {\n borderColor: token.colorPrimaryHover,\n [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n borderInlineStartColor: token.colorPrimaryHover\n }\n }\n },\n [`${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n },\n // fix slight height diff in Firefox:\n // https://ant.design/components/auto-complete-cn/#components-auto-complete-demo-certain-category\n [`${componentCls}-lg`]: {\n lineHeight: token.lineHeightLG - 0.0002\n },\n [`> ${componentCls}-group`]: {\n [`> ${componentCls}-group-addon:last-child`]: {\n insetInlineStart: -1,\n padding: 0,\n border: 0,\n [`${searchPrefixCls}-button`]: {\n paddingTop: 0,\n paddingBottom: 0,\n borderStartStartRadius: 0,\n borderStartEndRadius: token.borderRadius,\n borderEndEndRadius: token.borderRadius,\n borderEndStartRadius: 0\n },\n [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n color: token.colorTextDescription,\n '&:hover': {\n color: token.colorPrimaryHover\n },\n '&:active': {\n color: token.colorPrimaryActive\n },\n [`&${antCls}-btn-loading::before`]: {\n insetInlineStart: 0,\n insetInlineEnd: 0,\n insetBlockStart: 0,\n insetBlockEnd: 0\n }\n }\n }\n },\n [`${searchPrefixCls}-button`]: {\n height: token.controlHeight,\n '&:hover, &:focus': {\n zIndex: 1\n }\n },\n [`&-large ${searchPrefixCls}-button`]: {\n height: token.controlHeightLG\n },\n [`&-small ${searchPrefixCls}-button`]: {\n height: token.controlHeightSM\n },\n '&-rtl': {\n direction: 'rtl'\n },\n // ===================== Compact Item Customized Styles =====================\n [`&${componentCls}-compact-item`]: {\n [`&:not(${componentCls}-compact-last-item)`]: {\n [`${componentCls}-group-addon`]: {\n [`${componentCls}-search-button`]: {\n marginInlineEnd: -token.lineWidth,\n borderRadius: 0\n }\n }\n },\n [`&:not(${componentCls}-compact-first-item)`]: {\n [`${componentCls},${componentCls}-affix-wrapper`]: {\n borderRadius: 0\n }\n },\n [`> ${componentCls}-group-addon ${componentCls}-search-button,\n > ${componentCls},\n ${componentCls}-affix-wrapper`]: {\n '&:hover,&:focus,&:active': {\n zIndex: 2\n }\n },\n [`> ${componentCls}-affix-wrapper-focused`]: {\n zIndex: 2\n }\n }\n }\n };\n};\nexport function initInputToken(token) {\n // @ts-ignore\n return mergeToken(token, {\n inputAffixPadding: token.paddingXXS,\n inputPaddingVertical: Math.max(Math.round((token.controlHeight - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 3),\n inputPaddingVerticalLG: Math.ceil((token.controlHeightLG - token.fontSizeLG * token.lineHeightLG) / 2 * 10) / 10 - token.lineWidth,\n inputPaddingVerticalSM: Math.max(Math.round((token.controlHeightSM - token.fontSize * token.lineHeight) / 2 * 10) / 10 - token.lineWidth, 0),\n inputPaddingHorizontal: token.paddingSM - token.lineWidth,\n inputPaddingHorizontalSM: token.paddingXS - token.lineWidth,\n inputPaddingHorizontalLG: token.controlPaddingHorizontal - token.lineWidth,\n inputBorderHoverColor: token.colorPrimaryHover,\n inputBorderActiveColor: token.colorPrimaryHover\n });\n}\nconst genTextAreaStyle = token => {\n const {\n componentCls,\n paddingLG\n } = token;\n const textareaPrefixCls = `${componentCls}-textarea`;\n return {\n [textareaPrefixCls]: {\n position: 'relative',\n '&-show-count': {\n // https://github.com/ant-design/ant-design/issues/33049\n [`> ${componentCls}`]: {\n height: '100%'\n },\n [`${componentCls}-data-count`]: {\n position: 'absolute',\n bottom: -token.fontSize * token.lineHeight,\n insetInlineEnd: 0,\n color: token.colorTextDescription,\n whiteSpace: 'nowrap',\n pointerEvents: 'none'\n }\n },\n '&-allow-clear': {\n [`> ${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n },\n [`&-affix-wrapper${textareaPrefixCls}-has-feedback`]: {\n [`${componentCls}`]: {\n paddingInlineEnd: paddingLG\n }\n },\n [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n padding: 0,\n [`> textarea${componentCls}`]: {\n fontSize: 'inherit',\n border: 'none',\n outline: 'none',\n '&:focus': {\n boxShadow: 'none !important'\n }\n },\n [`${componentCls}-suffix`]: {\n margin: 0,\n '> *:not(:last-child)': {\n marginInline: 0\n },\n // Clear Icon\n [`${componentCls}-clear-icon`]: {\n position: 'absolute',\n insetInlineEnd: token.paddingXS,\n insetBlockStart: token.paddingXS\n },\n // Feedback Icon\n [`${textareaPrefixCls}-suffix`]: {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.inputPaddingHorizontal,\n bottom: 0,\n zIndex: 1,\n display: 'inline-flex',\n alignItems: 'center',\n margin: 'auto',\n pointerEvents: 'none'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Input', token => {\n const inputToken = initInputToken(token);\n return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(inputToken)];\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcTextArea from 'rc-textarea';\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport { triggerFocus } from './Input';\nimport useStyle from './style';\nconst TextArea = /*#__PURE__*/forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n size: customizeSize,\n disabled: customDisabled,\n status: customStatus,\n allowClear,\n showCount,\n classNames: classes\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"size\", \"disabled\", \"status\", \"allowClear\", \"showCount\", \"classNames\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n // ===================== Size =====================\n const mergedSize = useSize(customizeSize);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = React.useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Ref =====================\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return {\n resizableTextArea: (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea,\n focus: option => {\n var _a, _b;\n triggerFocus((_b = (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.resizableTextArea) === null || _b === void 0 ? void 0 : _b.textArea, option);\n },\n blur: () => {\n var _a;\n return (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.blur();\n }\n };\n });\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n // ===================== Style =====================\n const [wrapSSR, hashId] = useStyle(prefixCls);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTextArea, Object.assign({}, rest, {\n disabled: mergedDisabled,\n allowClear: mergedAllowClear,\n classes: {\n affixWrapper: classNames(`${prefixCls}-textarea-affix-wrapper`, {\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered,\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-textarea-show-count`]: showCount\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus), hashId)\n },\n classNames: Object.assign(Object.assign({}, classes), {\n textarea: classNames({\n [`${prefixCls}-borderless`]: !bordered,\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large'\n }, getStatusClassNames(prefixCls, mergedStatus), hashId, classes === null || classes === void 0 ? void 0 : classes.textarea)\n }),\n prefixCls: prefixCls,\n suffix: hasFeedback && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-textarea-suffix`\n }, feedbackIcon),\n showCount: showCount,\n ref: innerRef\n })));\n});\nexport default TextArea;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport classNames from 'classnames';\nimport RcInput from 'rc-input';\nimport { composeRef } from \"rc-util/es/ref\";\nimport React, { forwardRef, useContext, useEffect, useRef } from 'react';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext, NoFormStyle } from '../form/context';\nimport { NoCompactStyle, useCompactItemContext } from '../space/Compact';\nimport useRemovePasswordTimeout from './hooks/useRemovePasswordTimeout';\nimport useStyle from './style';\nimport { hasPrefixSuffix } from './utils';\nexport function triggerFocus(element, option) {\n if (!element) {\n return;\n }\n element.focus(option);\n // Selection content\n const {\n cursor\n } = option || {};\n if (cursor) {\n const len = element.value.length;\n switch (cursor) {\n case 'start':\n element.setSelectionRange(0, 0);\n break;\n case 'end':\n element.setSelectionRange(len, len);\n break;\n default:\n element.setSelectionRange(0, len);\n break;\n }\n }\n}\nconst Input = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n bordered = true,\n status: customStatus,\n size: customSize,\n disabled: customDisabled,\n onBlur,\n onFocus,\n suffix,\n allowClear,\n addonAfter,\n addonBefore,\n className,\n style,\n styles,\n rootClassName,\n onChange,\n classNames: classes\n } = props,\n rest = __rest(props, [\"prefixCls\", \"bordered\", \"status\", \"size\", \"disabled\", \"onBlur\", \"onFocus\", \"suffix\", \"allowClear\", \"addonAfter\", \"addonBefore\", \"className\", \"style\", \"styles\", \"rootClassName\", \"onChange\", \"classNames\"]);\n const {\n getPrefixCls,\n direction,\n input\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('input', customizePrefixCls);\n const inputRef = useRef(null);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n // ===================== Compact Item =====================\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customSize !== null && customSize !== void 0 ? customSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== Status =====================\n const {\n status: contextStatus,\n hasFeedback,\n feedbackIcon\n } = useContext(FormItemInputContext);\n const mergedStatus = getMergedStatus(contextStatus, customStatus);\n // ===================== Focus warning =====================\n const inputHasPrefixSuffix = hasPrefixSuffix(props) || !!hasFeedback;\n const prevHasPrefixSuffix = useRef(inputHasPrefixSuffix);\n useEffect(() => {\n var _a;\n if (inputHasPrefixSuffix && !prevHasPrefixSuffix.current) {\n process.env.NODE_ENV !== \"production\" ? warning(document.activeElement === ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.input), 'Input', `When Input is focused, dynamic add or remove prefix / suffix will make it lose focus caused by dom structure change. Read more: https://ant.design/components/input/#FAQ`) : void 0;\n }\n prevHasPrefixSuffix.current = inputHasPrefixSuffix;\n }, [inputHasPrefixSuffix]);\n // ===================== Remove Password value =====================\n const removePasswordTimeout = useRemovePasswordTimeout(inputRef, true);\n const handleBlur = e => {\n removePasswordTimeout();\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n };\n const handleFocus = e => {\n removePasswordTimeout();\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n const handleChange = e => {\n removePasswordTimeout();\n onChange === null || onChange === void 0 ? void 0 : onChange(e);\n };\n const suffixNode = (hasFeedback || suffix) && /*#__PURE__*/React.createElement(React.Fragment, null, suffix, hasFeedback && feedbackIcon);\n // Allow clear\n let mergedAllowClear;\n if (typeof allowClear === 'object' && (allowClear === null || allowClear === void 0 ? void 0 : allowClear.clearIcon)) {\n mergedAllowClear = allowClear;\n } else if (allowClear) {\n mergedAllowClear = {\n clearIcon: /*#__PURE__*/React.createElement(CloseCircleFilled, null)\n };\n }\n return wrapSSR( /*#__PURE__*/React.createElement(RcInput, Object.assign({\n ref: composeRef(ref, inputRef),\n prefixCls: prefixCls,\n autoComplete: input === null || input === void 0 ? void 0 : input.autoComplete\n }, rest, {\n disabled: mergedDisabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n style: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.style), style),\n styles: Object.assign(Object.assign({}, input === null || input === void 0 ? void 0 : input.styles), styles),\n suffix: suffixNode,\n allowClear: mergedAllowClear,\n className: classNames(className, rootClassName, compactItemClassnames, input === null || input === void 0 ? void 0 : input.className),\n onChange: handleChange,\n addonAfter: addonAfter && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonAfter)),\n addonBefore: addonBefore && /*#__PURE__*/React.createElement(NoCompactStyle, null, /*#__PURE__*/React.createElement(NoFormStyle, {\n override: true,\n status: true\n }, addonBefore)),\n classNames: Object.assign(Object.assign(Object.assign({}, classes), input === null || input === void 0 ? void 0 : input.classNames), {\n input: classNames({\n [`${prefixCls}-sm`]: mergedSize === 'small',\n [`${prefixCls}-lg`]: mergedSize === 'large',\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, !inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus), classes === null || classes === void 0 ? void 0 : classes.input, (_a = input === null || input === void 0 ? void 0 : input.classNames) === null || _a === void 0 ? void 0 : _a.input, hashId)\n }),\n classes: {\n affixWrapper: classNames({\n [`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-affix-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-affix-wrapper-borderless`]: !bordered\n }, getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus, hasFeedback), hashId),\n wrapper: classNames({\n [`${prefixCls}-group-rtl`]: direction === 'rtl'\n }, hashId),\n group: classNames({\n [`${prefixCls}-group-wrapper-sm`]: mergedSize === 'small',\n [`${prefixCls}-group-wrapper-lg`]: mergedSize === 'large',\n [`${prefixCls}-group-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-group-wrapper-disabled`]: mergedDisabled\n }, getStatusClassNames(`${prefixCls}-group-wrapper`, mergedStatus, hasFeedback), hashId)\n }\n })));\n});\nexport default Input;","// eslint-disable-next-line import/prefer-default-export\nexport const operationUnit = token => ({\n // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n // And Typography use this to generate link style which should not do this.\n color: token.colorLink,\n textDecoration: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `color ${token.motionDurationSlow}`,\n '&:focus, &:hover': {\n color: token.colorLinkHover\n },\n '&:active': {\n color: token.colorLinkActive\n }\n});","import { operationUnit } from '../../style';\nimport { genComponentStyleHook } from '../../theme/internal';\nimport { getCopyableStyles, getEditableStyles, getEllipsisStyles, getLinkStyles, getResetStyles, getTitleStyles } from './mixins';\nconst genTypographyStyle = token => {\n const {\n componentCls,\n titleMarginTop\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n color: token.colorText,\n wordBreak: 'break-word',\n lineHeight: token.lineHeight,\n [`&${componentCls}-secondary`]: {\n color: token.colorTextDescription\n },\n [`&${componentCls}-success`]: {\n color: token.colorSuccess\n },\n [`&${componentCls}-warning`]: {\n color: token.colorWarning\n },\n [`&${componentCls}-danger`]: {\n color: token.colorError,\n 'a&:active, a&:focus': {\n color: token.colorErrorActive\n },\n 'a&:hover': {\n color: token.colorErrorHover\n }\n },\n [`&${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n userSelect: 'none'\n },\n [`\n div&,\n p\n `]: {\n marginBottom: '1em'\n }\n }, getTitleStyles(token)), {\n [`\n & + h1${componentCls},\n & + h2${componentCls},\n & + h3${componentCls},\n & + h4${componentCls},\n & + h5${componentCls}\n `]: {\n marginTop: titleMarginTop\n },\n [`\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5`]: {\n [`\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n `]: {\n marginTop: titleMarginTop\n }\n }\n }), getResetStyles(token)), getLinkStyles(token)), {\n // Operation\n [`\n ${componentCls}-expand,\n ${componentCls}-edit,\n ${componentCls}-copy\n `]: Object.assign(Object.assign({}, operationUnit(token)), {\n marginInlineStart: token.marginXXS\n })\n }), getEditableStyles(token)), getCopyableStyles(token)), getEllipsisStyles()), {\n '&-rtl': {\n direction: 'rtl'\n }\n })\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Typography', token => [genTypographyStyle(token)], () => ({\n titleMarginTop: '1.2em',\n titleMarginBottom: '0.5em'\n}));","/*\n.typography-title(@fontSize; @fontWeight; @lineHeight; @headingColor; @headingMarginBottom;) {\n margin-bottom: @headingMarginBottom;\n color: @headingColor;\n font-weight: @fontWeight;\n fontSize: @fontSize;\n line-height: @lineHeight;\n}\n*/\nimport { gold } from '@ant-design/colors';\nimport { initInputToken } from '../../input/style';\nimport { operationUnit } from '../../style';\n// eslint-disable-next-line import/prefer-default-export\nconst getTitleStyle = (fontSize, lineHeight, color, token) => {\n const {\n titleMarginBottom,\n fontWeightStrong\n } = token;\n return {\n marginBottom: titleMarginBottom,\n color,\n fontWeight: fontWeightStrong,\n fontSize,\n lineHeight\n };\n};\n// eslint-disable-next-line import/prefer-default-export\nexport const getTitleStyles = token => {\n const headings = [1, 2, 3, 4, 5];\n const styles = {};\n headings.forEach(headingLevel => {\n styles[`\n h${headingLevel}&,\n div&-h${headingLevel},\n div&-h${headingLevel} > textarea,\n h${headingLevel}\n `] = getTitleStyle(token[`fontSizeHeading${headingLevel}`], token[`lineHeightHeading${headingLevel}`], token.colorTextHeading, token);\n });\n return styles;\n};\nexport const getLinkStyles = token => {\n const {\n componentCls\n } = token;\n return {\n 'a&, a': Object.assign(Object.assign({}, operationUnit(token)), {\n textDecoration: token.linkDecoration,\n '&:active, &:hover': {\n textDecoration: token.linkHoverDecoration\n },\n [`&[disabled], &${componentCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:active, &:hover': {\n color: token.colorTextDisabled\n },\n '&:active': {\n pointerEvents: 'none'\n }\n }\n })\n };\n};\nexport const getResetStyles = token => ({\n code: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.2em 0.1em',\n fontSize: '85%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3\n },\n kbd: {\n margin: '0 0.2em',\n paddingInline: '0.4em',\n paddingBlock: '0.15em 0.1em',\n fontSize: '90%',\n fontFamily: token.fontFamilyCode,\n background: 'rgba(150, 150, 150, 0.06)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderBottomWidth: 2,\n borderRadius: 3\n },\n mark: {\n padding: 0,\n // FIXME hardcode in v4\n backgroundColor: gold[2]\n },\n 'u, ins': {\n textDecoration: 'underline',\n textDecorationSkipInk: 'auto'\n },\n 's, del': {\n textDecoration: 'line-through'\n },\n strong: {\n fontWeight: 600\n },\n // list\n 'ul, ol': {\n marginInline: 0,\n marginBlock: '0 1em',\n padding: 0,\n li: {\n marginInline: '20px 0',\n marginBlock: 0,\n paddingInline: '4px 0',\n paddingBlock: 0\n }\n },\n ul: {\n listStyleType: 'circle',\n ul: {\n listStyleType: 'disc'\n }\n },\n ol: {\n listStyleType: 'decimal'\n },\n // pre & block\n 'pre, blockquote': {\n margin: '1em 0'\n },\n pre: {\n padding: '0.4em 0.6em',\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n background: 'rgba(150, 150, 150, 0.1)',\n border: '1px solid rgba(100, 100, 100, 0.2)',\n borderRadius: 3,\n fontFamily: token.fontFamilyCode,\n // Compatible for marked\n code: {\n display: 'inline',\n margin: 0,\n padding: 0,\n fontSize: 'inherit',\n fontFamily: 'inherit',\n background: 'transparent',\n border: 0\n }\n },\n blockquote: {\n paddingInline: '0.6em 0',\n paddingBlock: 0,\n borderInlineStart: '4px solid rgba(100, 100, 100, 0.2)',\n opacity: 0.85\n }\n});\nexport const getEditableStyles = token => {\n const {\n componentCls\n } = token;\n const inputToken = initInputToken(token);\n const inputShift = inputToken.inputPaddingVertical + 1;\n return {\n '&-edit-content': {\n position: 'relative',\n 'div&': {\n insetInlineStart: -token.paddingSM,\n marginTop: -inputShift,\n marginBottom: `calc(1em - ${inputShift}px)`\n },\n [`${componentCls}-edit-content-confirm`]: {\n position: 'absolute',\n insetInlineEnd: token.marginXS + 2,\n insetBlockEnd: token.marginXS,\n color: token.colorTextDescription,\n // default style\n fontWeight: 'normal',\n fontSize: token.fontSize,\n fontStyle: 'normal',\n pointerEvents: 'none'\n },\n textarea: {\n margin: '0!important',\n // Fix Editable Textarea flash in Firefox\n MozTransition: 'none',\n height: '1em'\n }\n }\n };\n};\nexport const getCopyableStyles = token => ({\n '&-copy-success': {\n [`\n &,\n &:hover,\n &:focus`]: {\n color: token.colorSuccess\n }\n }\n});\nexport const getEllipsisStyles = () => ({\n [`\n a&-ellipsis,\n span&-ellipsis\n `]: {\n display: 'inline-block',\n maxWidth: '100%'\n },\n '&-single-line': {\n whiteSpace: 'nowrap'\n },\n '&-ellipsis-single-line': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // https://blog.csdn.net/iefreer/article/details/50421025\n 'a&, span&': {\n verticalAlign: 'bottom'\n }\n },\n '&-ellipsis-multiple-line': {\n display: '-webkit-box',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n WebkitBoxOrient: 'vertical'\n }\n});","import EnterOutlined from \"@ant-design/icons/es/icons/EnterOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { cloneElement } from '../_util/reactNode';\nimport TextArea from '../input/TextArea';\nimport useStyle from './style';\nconst Editable = props => {\n const {\n prefixCls,\n 'aria-label': ariaLabel,\n className,\n style,\n direction,\n maxLength,\n autoSize = true,\n value,\n onSave,\n onCancel,\n onEnd,\n component,\n enterIcon = /*#__PURE__*/React.createElement(EnterOutlined, null)\n } = props;\n const ref = React.useRef(null);\n const inComposition = React.useRef(false);\n const lastKeyCode = React.useRef();\n const [current, setCurrent] = React.useState(value);\n React.useEffect(() => {\n setCurrent(value);\n }, [value]);\n React.useEffect(() => {\n if (ref.current && ref.current.resizableTextArea) {\n const {\n textArea\n } = ref.current.resizableTextArea;\n textArea.focus();\n const {\n length\n } = textArea.value;\n textArea.setSelectionRange(length, length);\n }\n }, []);\n const onChange = _ref => {\n let {\n target\n } = _ref;\n setCurrent(target.value.replace(/[\\n\\r]/g, ''));\n };\n const onCompositionStart = () => {\n inComposition.current = true;\n };\n const onCompositionEnd = () => {\n inComposition.current = false;\n };\n const onKeyDown = _ref2 => {\n let {\n keyCode\n } = _ref2;\n // We don't record keyCode when IME is using\n if (inComposition.current) return;\n lastKeyCode.current = keyCode;\n };\n const confirmChange = () => {\n onSave(current.trim());\n };\n const onKeyUp = _ref3 => {\n let {\n keyCode,\n ctrlKey,\n altKey,\n metaKey,\n shiftKey\n } = _ref3;\n // Check if it's a real key\n if (lastKeyCode.current === keyCode && !inComposition.current && !ctrlKey && !altKey && !metaKey && !shiftKey) {\n if (keyCode === KeyCode.ENTER) {\n confirmChange();\n onEnd === null || onEnd === void 0 ? void 0 : onEnd();\n } else if (keyCode === KeyCode.ESC) {\n onCancel();\n }\n }\n };\n const onBlur = () => {\n confirmChange();\n };\n const textClassName = component ? `${prefixCls}-${component}` : '';\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const textAreaClassName = classNames(prefixCls, `${prefixCls}-edit-content`, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, textClassName, hashId);\n return wrapSSR( /*#__PURE__*/React.createElement(\"div\", {\n className: textAreaClassName,\n style: style\n }, /*#__PURE__*/React.createElement(TextArea, {\n ref: ref,\n maxLength: maxLength,\n value: current,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n onCompositionStart: onCompositionStart,\n onCompositionEnd: onCompositionEnd,\n onBlur: onBlur,\n \"aria-label\": ariaLabel,\n rows: 1,\n autoSize: autoSize\n }), enterIcon !== null ? cloneElement(enterIcon, {\n className: `${prefixCls}-edit-content-confirm`\n }) : null));\n};\nexport default Editable;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst Typography = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n component: Component = 'article',\n className,\n rootClassName,\n setContentRef,\n children,\n direction: typographyDirection,\n style\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"component\", \"className\", \"rootClassName\", \"setContentRef\", \"children\", \"direction\", \"style\"]);\n const {\n getPrefixCls,\n direction: contextDirection,\n typography\n } = React.useContext(ConfigContext);\n const direction = typographyDirection !== null && typographyDirection !== void 0 ? typographyDirection : contextDirection;\n let mergedRef = ref;\n if (setContentRef) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography', '`setContentRef` is deprecated. Please use `ref` instead.') : void 0;\n mergedRef = composeRef(ref, setContentRef);\n }\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n // Style\n const [wrapSSR, hashId] = useStyle(prefixCls);\n const componentClassName = classNames(prefixCls, typography === null || typography === void 0 ? void 0 : typography.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, typography === null || typography === void 0 ? void 0 : typography.style), style);\n return wrapSSR(\n /*#__PURE__*/\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n React.createElement(Component, Object.assign({\n className: componentClassName,\n style: mergedStyle,\n ref: mergedRef\n }, restProps), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Typography.displayName = 'Typography';\n}\n// es default export should use const instead of let\nexport default Typography;","import * as React from 'react';\nexport default function useMergedConfig(propConfig, templateConfig) {\n return React.useMemo(() => {\n const support = !!propConfig;\n return [support, Object.assign(Object.assign({}, templateConfig), support && typeof propConfig === 'object' ? propConfig : null)];\n }, [propConfig]);\n}","import * as React from 'react';\n/** Similar with `useEffect` but only trigger after mounted */\nconst useUpdatedEffect = (callback, conditions) => {\n const mountRef = React.useRef(false);\n React.useEffect(() => {\n if (mountRef.current) {\n callback();\n } else {\n mountRef.current = true;\n }\n }, conditions);\n};\nexport default useUpdatedEffect;","import toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nfunction cuttable(node) {\n const type = typeof node;\n return type === 'string' || type === 'number';\n}\nfunction getNodesLen(nodeList) {\n let totalLen = 0;\n nodeList.forEach(node => {\n if (cuttable(node)) {\n totalLen += String(node).length;\n } else {\n totalLen += 1;\n }\n });\n return totalLen;\n}\nfunction sliceNodes(nodeList, len) {\n let currLen = 0;\n const currentNodeList = [];\n for (let i = 0; i < nodeList.length; i += 1) {\n // Match to return\n if (currLen === len) {\n return currentNodeList;\n }\n const node = nodeList[i];\n const canCut = cuttable(node);\n const nodeLen = canCut ? String(node).length : 1;\n const nextLen = currLen + nodeLen;\n // Exceed but current not which means we need cut this\n // This will not happen on validate ReactElement\n if (nextLen > len) {\n const restLen = len - currLen;\n currentNodeList.push(String(node).slice(0, restLen));\n return currentNodeList;\n }\n currentNodeList.push(node);\n currLen = nextLen;\n }\n return nodeList;\n}\nconst NONE = 0;\nconst PREPARE = 1;\nconst WALKING = 2;\nconst DONE_WITH_ELLIPSIS = 3;\nconst DONE_WITHOUT_ELLIPSIS = 4;\nconst Ellipsis = _ref => {\n let {\n enabledMeasure,\n children,\n text,\n width,\n fontSize,\n rows,\n onEllipsis\n } = _ref;\n const [[startLen, midLen, endLen], setCutLength] = React.useState([0, 0, 0]);\n const [walkingState, setWalkingState] = React.useState(NONE);\n const [singleRowHeight, setSingleRowHeight] = React.useState(0);\n const singleRowRef = React.useRef(null);\n const midRowRef = React.useRef(null);\n const nodeList = React.useMemo(() => toArray(text), [text]);\n const totalLen = React.useMemo(() => getNodesLen(nodeList), [nodeList]);\n const mergedChildren = React.useMemo(() => {\n if (!enabledMeasure || walkingState !== DONE_WITH_ELLIPSIS) {\n return children(nodeList, false);\n }\n return children(sliceNodes(nodeList, midLen), midLen < totalLen);\n }, [enabledMeasure, walkingState, children, nodeList, midLen, totalLen]);\n // ======================== Walk ========================\n useIsomorphicLayoutEffect(() => {\n if (enabledMeasure && width && fontSize && totalLen) {\n setWalkingState(PREPARE);\n setCutLength([0, Math.ceil(totalLen / 2), totalLen]);\n }\n }, [enabledMeasure, width, fontSize, text, totalLen, rows]);\n useIsomorphicLayoutEffect(() => {\n var _a;\n if (walkingState === PREPARE) {\n setSingleRowHeight(((_a = singleRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0);\n }\n }, [walkingState]);\n useIsomorphicLayoutEffect(() => {\n var _a, _b;\n if (singleRowHeight) {\n if (walkingState === PREPARE) {\n // Ignore if position is enough\n const midHeight = ((_a = midRowRef.current) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n if (midHeight <= maxHeight) {\n setWalkingState(DONE_WITHOUT_ELLIPSIS);\n onEllipsis(false);\n } else {\n setWalkingState(WALKING);\n }\n } else if (walkingState === WALKING) {\n if (startLen !== endLen) {\n const midHeight = ((_b = midRowRef.current) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 0;\n const maxHeight = rows * singleRowHeight;\n let nextStartLen = startLen;\n let nextEndLen = endLen;\n // We reach the last round\n if (startLen === endLen - 1) {\n nextEndLen = startLen;\n } else if (midHeight <= maxHeight) {\n nextStartLen = midLen;\n } else {\n nextEndLen = midLen;\n }\n const nextMidLen = Math.ceil((nextStartLen + nextEndLen) / 2);\n setCutLength([nextStartLen, nextMidLen, nextEndLen]);\n } else {\n setWalkingState(DONE_WITH_ELLIPSIS);\n onEllipsis(true);\n }\n }\n }\n }, [walkingState, startLen, endLen, rows, singleRowHeight]);\n // ======================= Render =======================\n const measureStyle = {\n width,\n whiteSpace: 'normal',\n margin: 0,\n padding: 0\n };\n const renderMeasure = (content, ref, style) => /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n ref: ref,\n style: Object.assign({\n position: 'fixed',\n display: 'block',\n left: 0,\n top: 0,\n zIndex: -9999,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontSize: Math.floor(fontSize / 2) * 2\n }, style)\n }, content);\n const renderMeasureSlice = (len, ref) => {\n const sliceNodeList = sliceNodes(nodeList, len);\n return renderMeasure(children(sliceNodeList, true), ref, measureStyle);\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, mergedChildren, enabledMeasure && walkingState !== DONE_WITH_ELLIPSIS && walkingState !== DONE_WITHOUT_ELLIPSIS && /*#__PURE__*/React.createElement(React.Fragment, null, renderMeasure('lg', singleRowRef, {\n wordBreak: 'keep-all',\n whiteSpace: 'nowrap'\n }), walkingState === PREPARE ? renderMeasure(children(nodeList, false), midRowRef, measureStyle) : renderMeasureSlice(midLen, midRowRef)));\n};\nif (process.env.NODE_ENV !== 'production') {\n Ellipsis.displayName = 'Ellipsis';\n}\nexport default Ellipsis;","import * as React from 'react';\nimport Tooltip from '../../tooltip';\nconst EllipsisTooltip = _ref => {\n let {\n enabledEllipsis,\n isEllipsis,\n children,\n tooltipProps\n } = _ref;\n if (!(tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.title) || !enabledEllipsis) {\n return children;\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({\n open: isEllipsis ? undefined : false\n }, tooltipProps), children);\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisTooltip.displayName = 'EllipsisTooltip';\n}\nexport default EllipsisTooltip;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CopyOutlined from \"@ant-design/icons/es/icons/CopyOutlined\";\nimport EditOutlined from \"@ant-design/icons/es/icons/EditOutlined\";\nimport classNames from 'classnames';\nimport copy from 'copy-to-clipboard';\nimport ResizeObserver from 'rc-resize-observer';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport useIsomorphicLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport omit from \"rc-util/es/omit\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { isStyleSupport } from '../../_util/styleChecker';\nimport TransButton from '../../_util/transButton';\nimport { ConfigContext } from '../../config-provider';\nimport useLocale from '../../locale/useLocale';\nimport Tooltip from '../../tooltip';\nimport Editable from '../Editable';\nimport Typography from '../Typography';\nimport useMergedConfig from '../hooks/useMergedConfig';\nimport useUpdatedEffect from '../hooks/useUpdatedEffect';\nimport Ellipsis from './Ellipsis';\nimport EllipsisTooltip from './EllipsisTooltip';\nfunction wrapperDecorations(_ref, content) {\n let {\n mark,\n code,\n underline,\n delete: del,\n strong,\n keyboard,\n italic\n } = _ref;\n let currentContent = content;\n function wrap(tag, needed) {\n if (!needed) {\n return;\n }\n currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n }\n wrap('strong', strong);\n wrap('u', underline);\n wrap('del', del);\n wrap('code', code);\n wrap('mark', mark);\n wrap('kbd', keyboard);\n wrap('i', italic);\n return currentContent;\n}\nfunction getNode(dom, defaultNode, needDom) {\n if (dom === true || dom === undefined) {\n return defaultNode;\n }\n return dom || needDom && defaultNode;\n}\nfunction toList(val) {\n if (val === false) {\n return [false, false];\n }\n return Array.isArray(val) ? val : [val];\n}\nconst ELLIPSIS_STR = '...';\nconst Base = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a, _b, _c;\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n type,\n disabled,\n children,\n ellipsis,\n editable,\n copyable,\n component,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"type\", \"disabled\", \"children\", \"ellipsis\", \"editable\", \"copyable\", \"component\", \"title\"]);\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const [textLocale] = useLocale('Text');\n const typographyRef = React.useRef(null);\n const editIconRef = React.useRef(null);\n // ============================ MISC ============================\n const prefixCls = getPrefixCls('typography', customizePrefixCls);\n const textProps = omit(restProps, ['mark', 'code', 'delete', 'underline', 'strong', 'keyboard', 'italic']);\n // ========================== Editable ==========================\n const [enableEdit, editConfig] = useMergedConfig(editable);\n const [editing, setEditing] = useMergedState(false, {\n value: editConfig.editing\n });\n const {\n triggerType = ['icon']\n } = editConfig;\n const triggerEdit = edit => {\n var _a;\n if (edit) {\n (_a = editConfig.onStart) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n }\n setEditing(edit);\n };\n // Focus edit icon when back\n useUpdatedEffect(() => {\n var _a;\n if (!editing) {\n (_a = editIconRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [editing]);\n const onEditClick = e => {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n triggerEdit(true);\n };\n const onEditChange = value => {\n var _a;\n (_a = editConfig.onChange) === null || _a === void 0 ? void 0 : _a.call(editConfig, value);\n triggerEdit(false);\n };\n const onEditCancel = () => {\n var _a;\n (_a = editConfig.onCancel) === null || _a === void 0 ? void 0 : _a.call(editConfig);\n triggerEdit(false);\n };\n // ========================== Copyable ==========================\n const [enableCopy, copyConfig] = useMergedConfig(copyable);\n const [copied, setCopied] = React.useState(false);\n const copyIdRef = React.useRef(null);\n const copyOptions = {};\n if (copyConfig.format) {\n copyOptions.format = copyConfig.format;\n }\n const cleanCopyId = () => {\n if (copyIdRef.current) {\n clearTimeout(copyIdRef.current);\n }\n };\n const onCopyClick = e => {\n var _a;\n e === null || e === void 0 ? void 0 : e.preventDefault();\n e === null || e === void 0 ? void 0 : e.stopPropagation();\n copy(copyConfig.text || String(children) || '', copyOptions);\n setCopied(true);\n // Trigger tips update\n cleanCopyId();\n copyIdRef.current = setTimeout(() => {\n setCopied(false);\n }, 3000);\n (_a = copyConfig.onCopy) === null || _a === void 0 ? void 0 : _a.call(copyConfig, e);\n };\n React.useEffect(() => cleanCopyId, []);\n // ========================== Ellipsis ==========================\n const [isLineClampSupport, setIsLineClampSupport] = React.useState(false);\n const [isTextOverflowSupport, setIsTextOverflowSupport] = React.useState(false);\n const [expanded, setExpanded] = React.useState(false);\n const [isJsEllipsis, setIsJsEllipsis] = React.useState(false);\n const [isNativeEllipsis, setIsNativeEllipsis] = React.useState(false);\n const [isNativeVisible, setIsNativeVisible] = React.useState(true);\n const [enableEllipsis, ellipsisConfig] = useMergedConfig(ellipsis, {\n expandable: false\n });\n const mergedEnableEllipsis = enableEllipsis && !expanded;\n // Shared prop to reduce bundle size\n const {\n rows = 1\n } = ellipsisConfig;\n const needMeasureEllipsis = React.useMemo(() =>\n // Disable ellipsis\n !mergedEnableEllipsis ||\n // Provide suffix\n ellipsisConfig.suffix !== undefined || ellipsisConfig.onEllipsis ||\n // Can't use css ellipsis since we need to provide the place for button\n ellipsisConfig.expandable || enableEdit || enableCopy, [mergedEnableEllipsis, ellipsisConfig, enableEdit, enableCopy]);\n useIsomorphicLayoutEffect(() => {\n if (enableEllipsis && !needMeasureEllipsis) {\n setIsLineClampSupport(isStyleSupport('webkitLineClamp'));\n setIsTextOverflowSupport(isStyleSupport('textOverflow'));\n }\n }, [needMeasureEllipsis, enableEllipsis]);\n const cssEllipsis = React.useMemo(() => {\n if (needMeasureEllipsis) {\n return false;\n }\n if (rows === 1) {\n return isTextOverflowSupport;\n }\n return isLineClampSupport;\n }, [needMeasureEllipsis, isTextOverflowSupport, isLineClampSupport]);\n const isMergedEllipsis = mergedEnableEllipsis && (cssEllipsis ? isNativeEllipsis : isJsEllipsis);\n const cssTextOverflow = mergedEnableEllipsis && rows === 1 && cssEllipsis;\n const cssLineClamp = mergedEnableEllipsis && rows > 1 && cssEllipsis;\n // >>>>> Expand\n const onExpandClick = e => {\n var _a;\n setExpanded(true);\n (_a = ellipsisConfig.onExpand) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, e);\n };\n const [ellipsisWidth, setEllipsisWidth] = React.useState(0);\n const [ellipsisFontSize, setEllipsisFontSize] = React.useState(0);\n const onResize = (_ref2, element) => {\n let {\n offsetWidth\n } = _ref2;\n var _a;\n setEllipsisWidth(offsetWidth);\n setEllipsisFontSize(parseInt((_a = window.getComputedStyle) === null || _a === void 0 ? void 0 : _a.call(window, element).fontSize, 10) || 0);\n };\n // >>>>> JS Ellipsis\n const onJsEllipsis = jsEllipsis => {\n var _a;\n setIsJsEllipsis(jsEllipsis);\n // Trigger if changed\n if (isJsEllipsis !== jsEllipsis) {\n (_a = ellipsisConfig.onEllipsis) === null || _a === void 0 ? void 0 : _a.call(ellipsisConfig, jsEllipsis);\n }\n };\n // >>>>> Native ellipsis\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (enableEllipsis && cssEllipsis && textEle) {\n const currentEllipsis = cssLineClamp ? textEle.offsetHeight < textEle.scrollHeight : textEle.offsetWidth < textEle.scrollWidth;\n if (isNativeEllipsis !== currentEllipsis) {\n setIsNativeEllipsis(currentEllipsis);\n }\n }\n }, [enableEllipsis, cssEllipsis, children, cssLineClamp, isNativeVisible]);\n // https://github.com/ant-design/ant-design/issues/36786\n // Use IntersectionObserver to check if element is invisible\n React.useEffect(() => {\n const textEle = typographyRef.current;\n if (typeof IntersectionObserver === 'undefined' || !textEle || !cssEllipsis || !mergedEnableEllipsis) {\n return;\n }\n /* eslint-disable-next-line compat/compat */\n const observer = new IntersectionObserver(() => {\n setIsNativeVisible(!!textEle.offsetParent);\n });\n observer.observe(textEle);\n return () => {\n observer.disconnect();\n };\n }, [cssEllipsis, mergedEnableEllipsis]);\n // ========================== Tooltip ===========================\n let tooltipProps = {};\n if (ellipsisConfig.tooltip === true) {\n tooltipProps = {\n title: (_a = editConfig.text) !== null && _a !== void 0 ? _a : children\n };\n } else if ( /*#__PURE__*/React.isValidElement(ellipsisConfig.tooltip)) {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n } else if (typeof ellipsisConfig.tooltip === 'object') {\n tooltipProps = Object.assign({\n title: (_b = editConfig.text) !== null && _b !== void 0 ? _b : children\n }, ellipsisConfig.tooltip);\n } else {\n tooltipProps = {\n title: ellipsisConfig.tooltip\n };\n }\n const topAriaLabel = React.useMemo(() => {\n const isValid = val => ['string', 'number'].includes(typeof val);\n if (!enableEllipsis || cssEllipsis) {\n return undefined;\n }\n if (isValid(editConfig.text)) {\n return editConfig.text;\n }\n if (isValid(children)) {\n return children;\n }\n if (isValid(title)) {\n return title;\n }\n if (isValid(tooltipProps.title)) {\n return tooltipProps.title;\n }\n return undefined;\n }, [enableEllipsis, cssEllipsis, title, tooltipProps.title, isMergedEllipsis]);\n // =========================== Render ===========================\n // >>>>>>>>>>> Editing input\n if (editing) {\n return /*#__PURE__*/React.createElement(Editable, {\n value: (_c = editConfig.text) !== null && _c !== void 0 ? _c : typeof children === 'string' ? children : '',\n onSave: onEditChange,\n onCancel: onEditCancel,\n onEnd: editConfig.onEnd,\n prefixCls: prefixCls,\n className: className,\n style: style,\n direction: direction,\n component: component,\n maxLength: editConfig.maxLength,\n autoSize: editConfig.autoSize,\n enterIcon: editConfig.enterIcon\n });\n }\n // >>>>>>>>>>> Typography\n // Expand\n const renderExpand = () => {\n const {\n expandable,\n symbol\n } = ellipsisConfig;\n if (!expandable) return null;\n let expandContent;\n if (symbol) {\n expandContent = symbol;\n } else {\n expandContent = textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand;\n }\n return /*#__PURE__*/React.createElement(\"a\", {\n key: \"expand\",\n className: `${prefixCls}-expand`,\n onClick: onExpandClick,\n \"aria-label\": textLocale === null || textLocale === void 0 ? void 0 : textLocale.expand\n }, expandContent);\n };\n // Edit\n const renderEdit = () => {\n if (!enableEdit) return;\n const {\n icon,\n tooltip\n } = editConfig;\n const editTitle = toArray(tooltip)[0] || (textLocale === null || textLocale === void 0 ? void 0 : textLocale.edit);\n const ariaLabel = typeof editTitle === 'string' ? editTitle : '';\n return triggerType.includes('icon') ? /*#__PURE__*/React.createElement(Tooltip, {\n key: \"edit\",\n title: tooltip === false ? '' : editTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n ref: editIconRef,\n className: `${prefixCls}-edit`,\n onClick: onEditClick,\n \"aria-label\": ariaLabel\n }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n role: \"button\"\n }))) : null;\n };\n // Copy\n const renderCopy = () => {\n if (!enableCopy) return;\n const {\n tooltips,\n icon\n } = copyConfig;\n const tooltipNodes = toList(tooltips);\n const iconNodes = toList(icon);\n const copyTitle = copied ? getNode(tooltipNodes[1], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied) : getNode(tooltipNodes[0], textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy);\n const systemStr = copied ? textLocale === null || textLocale === void 0 ? void 0 : textLocale.copied : textLocale === null || textLocale === void 0 ? void 0 : textLocale.copy;\n const ariaLabel = typeof copyTitle === 'string' ? copyTitle : systemStr;\n return /*#__PURE__*/React.createElement(Tooltip, {\n key: \"copy\",\n title: copyTitle\n }, /*#__PURE__*/React.createElement(TransButton, {\n className: classNames(`${prefixCls}-copy`, copied && `${prefixCls}-copy-success`),\n onClick: onCopyClick,\n \"aria-label\": ariaLabel\n }, copied ? getNode(iconNodes[1], /*#__PURE__*/React.createElement(CheckOutlined, null), true) : getNode(iconNodes[0], /*#__PURE__*/React.createElement(CopyOutlined, null), true)));\n };\n const renderOperations = renderExpanded => [renderExpanded && renderExpand(), renderEdit(), renderCopy()];\n const renderEllipsis = needEllipsis => [needEllipsis && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true,\n key: \"ellipsis\"\n }, ELLIPSIS_STR), ellipsisConfig.suffix, renderOperations(needEllipsis)];\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize,\n disabled: !mergedEnableEllipsis || cssEllipsis\n }, resizeRef => /*#__PURE__*/React.createElement(EllipsisTooltip, {\n tooltipProps: tooltipProps,\n enabledEllipsis: mergedEnableEllipsis,\n isEllipsis: isMergedEllipsis\n }, /*#__PURE__*/React.createElement(Typography, Object.assign({\n className: classNames({\n [`${prefixCls}-${type}`]: type,\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-ellipsis`]: enableEllipsis,\n [`${prefixCls}-single-line`]: mergedEnableEllipsis && rows === 1,\n [`${prefixCls}-ellipsis-single-line`]: cssTextOverflow,\n [`${prefixCls}-ellipsis-multiple-line`]: cssLineClamp\n }, className),\n prefixCls: customizePrefixCls,\n style: Object.assign(Object.assign({}, style), {\n WebkitLineClamp: cssLineClamp ? rows : undefined\n }),\n component: component,\n ref: composeRef(resizeRef, typographyRef, ref),\n direction: direction,\n onClick: triggerType.includes('text') ? onEditClick : undefined,\n \"aria-label\": topAriaLabel === null || topAriaLabel === void 0 ? void 0 : topAriaLabel.toString(),\n title: title\n }, textProps), /*#__PURE__*/React.createElement(Ellipsis, {\n enabledMeasure: mergedEnableEllipsis && !cssEllipsis,\n text: children,\n rows: rows,\n width: ellipsisWidth,\n fontSize: ellipsisFontSize,\n onEllipsis: onJsEllipsis\n }, (node, needEllipsis) => {\n let renderNode = node;\n if (node.length && needEllipsis && topAriaLabel) {\n renderNode = /*#__PURE__*/React.createElement(\"span\", {\n key: \"show-content\",\n \"aria-hidden\": true\n }, renderNode);\n }\n const wrappedContext = wrapperDecorations(props, /*#__PURE__*/React.createElement(React.Fragment, null, renderNode, renderEllipsis(needEllipsis)));\n return wrappedContext;\n }))));\n});\nexport default Base;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nconst Link = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n ellipsis,\n rel\n } = _a,\n restProps = __rest(_a, [\"ellipsis\", \"rel\"]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.') : void 0;\n const mergedProps = Object.assign(Object.assign({}, restProps), {\n rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel\n });\n // @ts-expect-error: https://github.com/ant-design/ant-design/issues/26622\n delete mergedProps.navigate;\n return /*#__PURE__*/React.createElement(Base, Object.assign({}, mergedProps, {\n ref: ref,\n ellipsis: !!ellipsis,\n component: \"a\"\n }));\n});\nexport default Link;","import * as React from 'react';\nimport Base from './Base';\nconst Paragraph = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n}, props, {\n component: \"div\"\n})));\nexport default Paragraph;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nconst Text = (_a, ref) => {\n var {\n ellipsis\n } = _a,\n restProps = __rest(_a, [\"ellipsis\"]);\n const mergedEllipsis = React.useMemo(() => {\n if (ellipsis && typeof ellipsis === 'object') {\n return omit(ellipsis, ['expandable', 'rows']);\n }\n return ellipsis;\n }, [ellipsis]);\n process.env.NODE_ENV !== \"production\" ? warning(typeof ellipsis !== 'object' || !ellipsis || !('expandable' in ellipsis) && !('rows' in ellipsis), 'Typography.Text', '`ellipsis` do not support `expandable` or `rows` props.') : void 0;\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n ellipsis: mergedEllipsis,\n component: \"span\"\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(Text);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport Base from './Base';\nconst TITLE_ELE_LIST = [1, 2, 3, 4, 5];\nconst Title = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n level = 1\n } = props,\n restProps = __rest(props, [\"level\"]);\n let component;\n if (TITLE_ELE_LIST.includes(level)) {\n component = `h${level}`;\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Typography.Title', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.') : void 0;\n component = 'h1';\n }\n return /*#__PURE__*/React.createElement(Base, Object.assign({\n ref: ref\n }, restProps, {\n component: component\n }));\n});\nexport default Title;","'use client';\n\nimport Link from './Link';\nimport Paragraph from './Paragraph';\nimport Text from './Text';\nimport Title from './Title';\nimport OriginTypography from './Typography';\nconst Typography = OriginTypography;\nTypography.Text = Text;\nTypography.Link = Link;\nTypography.Title = Title;\nTypography.Paragraph = Paragraph;\nexport default Typography;","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport clsx from 'clsx'\r\nimport React from 'react'\r\nimport {Link} from 'react-router-dom'\r\nimport {KTSVG, toAbsoluteUrl} from '../../../helpers'\r\nimport {useLayout} from '../../core'\r\nimport {Header} from './Header'\r\nimport {DefaultTitle} from './page-title/DefaultTitle'\r\nimport {Topbar} from './Topbar'\r\nimport {Finance} from './Finance'\r\nimport { Typography } from 'antd';\r\n\r\nconst { Title } = Typography;\r\n\r\nexport function HeaderWrapper() {\r\n const {config, classes, attributes} = useLayout()\r\n const {header, aside} = config\r\n\r\n return (\r\n <div\r\n id='kt_header'\r\n className={clsx('header', classes.header.join(' '), 'align-items-stretch')}\r\n {...attributes.headerMenu}\r\n >\r\n <div\r\n className={clsx(\r\n classes.headerContainer.join(' '),\r\n 'd-flex align-items-stretch justify-content-between'\r\n )}\r\n >\r\n <div className='d-flex justify-content-between '>\r\n <div className='d-flex align-items-center flex-grow-1 flex-lg-grow-0'>\r\n <Link to='/dashboard'>\r\n <img\r\n alt='Logo'\r\n \r\n src={toAbsoluteUrl('/media/reports-logos/logo.png')}\r\n className='h-50px'\r\n />\r\n </Link>\r\n </div>\r\n <div className='m-5'>\r\n <Title level={5} className='text-primary text-italic'>MANAGEMENT PORTAL\r\n
\r\n
\r\n {/* begin::Aside mobile toggle */}\r\n {aside.display && (\r\n
\r\n \r\n \r\n
\r\n
\r\n )}\r\n {/* end::Aside mobile toggle */}\r\n {/* begin::Logo */}\r\n {!aside.display && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n {/* end::Logo */}\r\n\r\n {aside.display && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n\r\n {/* begin::Wrapper */}\r\n
\r\n {/* begin::Navbar */}\r\n {header.left === 'menu' && (\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {header.left === 'page-title' && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n \r\n \r\n {\r\n // @ts-ignore\r\n window.location.reload(true)\r\n }}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n {/* end::Wrapper */}\r\n
\r\n
\r\n )\r\n}\r\n","import React, {useEffect, useRef} from 'react'\nimport {useLocation} from 'react-router-dom'\nimport {\n ScrollTopComponent,\n DrawerComponent,\n ToggleComponent,\n StickyComponent,\n} from '../../assets/ts/components'\nimport {KTSVG} from '../../helpers'\n\nexport function ScrollTop() {\n const {pathname} = useLocation()\n const isFirstRun = useRef(true)\n\n const pluginsReinitialization = () => {\n setTimeout(() => {\n StickyComponent.reInitialization()\n setTimeout(() => {\n ToggleComponent.reinitialization()\n DrawerComponent.reinitialization()\n }, 70)\n }, 140)\n }\n\n const scrollTop = () => {\n ScrollTopComponent.goTop()\n }\n\n const updateHeaderSticky = () => {\n const stickyHeader = document.body.querySelectorAll(`[data-kt-sticky-name=\"header\"]`)\n if (stickyHeader && stickyHeader.length > 0) {\n const sticky = StickyComponent.getInstance(stickyHeader[0] as HTMLElement)\n if (sticky) {\n sticky.update()\n }\n }\n }\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false\n } else {\n pluginsReinitialization()\n }\n\n updateHeaderSticky()\n setTimeout(() => {\n scrollTop()\n }, 0)\n }, [pathname])\n\n return (\n
\n \n
\n )\n}\n","import {FC, useEffect} from 'react'\nimport {useLocation} from 'react-router'\nimport clsx from 'clsx'\nimport {useLayout} from '../core'\nimport {DrawerComponent} from '../../assets/ts/components'\nimport {WithChildren} from '../../helpers'\n\nconst Content: FC = ({children}) => {\n const {classes} = useLayout()\n const location = useLocation()\n useEffect(() => {\n DrawerComponent.hideAll()\n }, [location])\n\n return (\n
\n {children}\n
\n )\n}\n\nexport {Content}\n","import {useEffect} from 'react'\nimport {Outlet, useLocation} from 'react-router-dom'\nimport {AsideDefault} from './components/aside/AsideDefault'\n// import {Footer} from './components/Footer'\nimport {HeaderWrapper} from './components/header/HeaderWrapper'\nimport {Toolbar} from './components/toolbar/Toolbar'\n// import {RightToolbar} from '../partials/layout/RightToolbar'\nimport {ScrollTop} from './components/ScrollTop'\nimport {Content} from './components/Content'\nimport {PageDataProvider} from './core'\nimport {MenuComponent} from '../assets/ts/components'\n\n\n\nconst MasterLayout = () => {\n const location = useLocation()\n useEffect(() => {\n setTimeout(() => {\n MenuComponent.reinitialization()\n }, 500)\n }, [])\n\n useEffect(() => {\n setTimeout(() => {\n MenuComponent.reinitialization()\n }, 500)\n }, [location.key])\n\n return (\n \n
\n {/**/}\n
\n \n\n
\n {/**/}\n \n
\n \n \n \n
\n
\n {/*
*/}\n
\n
\n \n
\n )\n}\n\nexport {MasterLayout}\n","import {FC} from 'react'\nimport {Link} from 'react-router-dom'\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\n\nconst Error404: FC = () => {\n return (\n
\n
\n {/* begin::Illustration */}\n \n {/* end::Illustration */}\n {/* begin::Message */}\n

\n Seems there is nothing here\n

\n {/* end::Message */}\n {/* begin::Link */}\n \n Return Home\n \n {/* end::Link */}\n
\n
\n )\n}\n\nconst Soon: FC = () => {\n return (\n
\n
\n {/* begin::Illustration */}\n \n {/* end::Illustration */}\n {/* begin::Message */}\n

\n Coming Soon\n

\n {/* end::Message */}\n {/* begin::Link */}\n \n Return Home\n \n {/* end::Link */}\n
\n
\n )\n}\n\nexport {Error404, Soon}\n","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: EllipsisOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n EllipsisOutlined.displayName = 'EllipsisOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(EllipsisOutlined);","// This icon file is generated automatically.\nvar PlusOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\" } }] }, \"name\": \"plus\", \"theme\": \"outlined\" };\nexport default PlusOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n PlusOutlined.displayName = 'PlusOutlined';\n}\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import * as React from 'react';\nimport classNames from 'classnames';\nvar TabPane = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var prefixCls = _ref.prefixCls,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n tabKey = _ref.tabKey,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: style,\n className: classNames(prefixCls, active && \"\".concat(prefixCls, \"-active\"), className),\n ref: ref\n }, children);\n});\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'TabPane';\n}\nexport default TabPane;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"key\", \"forceRender\", \"style\", \"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"./TabPane\";\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var tabPanePrefixCls = \"\".concat(prefixCls, \"-tabpane\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated))\n }, tabs.map(function (_ref2) {\n var key = _ref2.key,\n forceRender = _ref2.forceRender,\n paneStyle = _ref2.style,\n paneClassName = _ref2.className,\n restTabProps = _objectWithoutProperties(_ref2, _excluded);\n var active = key === activeKey;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n key: key,\n visible: active,\n forceRender: forceRender,\n removeOnLeave: !!destroyInactiveTabPane,\n leavedClassName: \"\".concat(tabPanePrefixCls, \"-hidden\")\n }, animated.tabPaneMotion), function (_ref3, ref) {\n var motionStyle = _ref3.style,\n motionClassName = _ref3.className;\n return /*#__PURE__*/React.createElement(TabPane, _extends({}, restTabProps, {\n prefixCls: tabPanePrefixCls,\n id: id,\n tabKey: key,\n animated: tabPaneAnimated,\n active: active,\n style: _objectSpread(_objectSpread({}, paneStyle), motionStyle),\n className: classNames(paneClassName, motionClassName),\n ref: ref\n }));\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key);\n\n // Reuse last one when not exist yet\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data);\n\n // Right\n entity.right = rightOffset - entity.left - entity.width;\n\n // Update entity\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL);\n\n// ================================= Hook =================================\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef();\n\n // ========================= Events =========================\n // >>> Touch events\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null);\n\n // Swipe if needed\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY);\n\n // Skip swipe if low distance\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n }\n\n // >>> Wheel event\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY;\n\n // Convert both to x & y since wheel only happened on PC\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n }\n\n // ========================= Effect =========================\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n });\n\n // No need to clean up since element removed\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef, useState } from 'react';\n\n/**\n * Help to merge callback with `useLayoutEffect`.\n * One time will only trigger once.\n */\nexport default function useUpdate(callback) {\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n count = _useState2[0],\n setCount = _useState2[1];\n var effectRef = useRef(0);\n var callbackRef = useRef();\n callbackRef.current = callback;\n\n // Trigger on `useLayoutEffect`\n useLayoutUpdateEffect(function () {\n var _callbackRef$current;\n (_callbackRef$current = callbackRef.current) === null || _callbackRef$current === void 0 ? void 0 : _callbackRef$current.call(callbackRef);\n }, [count]);\n\n // Trigger to update count\n return function () {\n if (effectRef.current !== count) {\n return;\n }\n effectRef.current += 1;\n setCount(effectRef.current);\n };\n}\nexport function useUpdateState(defaultState) {\n var batchRef = useRef([]);\n var _useState3 = useState({}),\n _useState4 = _slicedToArray(_useState3, 2),\n forceUpdate = _useState4[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useUpdate(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, visibleTabContentValue, transform, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var charUnit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n charUnit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(transform);\n } else {\n charUnit = 'height';\n position = 'top';\n transformSize = -transform;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[charUnit] > transformSize + visibleTabContentValue) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return startIndex >= endIndex ? [0, 0] : [startIndex, endIndex];\n }, [tabOffsets, visibleTabContentValue, tabContentSizeValue, addNodeSizeValue, operationNodeSizeValue, transformSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","/**\n * We trade Map as deps which may change with same value but different ref object.\n * We should make it as hash for deps\n * */\nexport function stringify(obj) {\n var tgt;\n if (obj instanceof Map) {\n tgt = {};\n obj.forEach(function (v, k) {\n tgt[k] = v;\n });\n } else {\n tgt = obj;\n }\n return JSON.stringify(tgt);\n}\nvar RC_TABS_DOUBLE_QUOTE = 'TABS_DQ';\nexport function genDataNodeKey(key) {\n return String(key).replace(/\"/g, RC_TABS_DOUBLE_QUOTE);\n}\nexport function getRemovable(closable, closeIcon, editable, disabled) {\n if (\n // Only editable tabs can be removed\n !editable ||\n // Tabs cannot be removed when disabled\n disabled ||\n // closable is false\n closable === false ||\n // If closable is undefined, the remove button should be hidden when closeIcon is null or false\n closable === undefined && (closeIcon === false || closeIcon === null)) {\n return false;\n }\n return true;\n}","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar ExtraContent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content;\n\n // Parse extra\n var assertExtra = {};\n if (_typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\"),\n ref: ref\n }, content) : null;\n});\nif (process.env.NODE_ENV !== 'production') {\n ExtraContent.displayName = 'ExtraContent';\n}\nexport default ExtraContent;","import KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from \"react\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n triggerRef = _ref.triggerRef,\n onVisibleChange = _ref.onVisibleChange,\n autoFocus = _ref.autoFocus,\n overlayRef = _ref.overlayRef;\n var focusMenuRef = React.useRef(false);\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible) {\n var _triggerRef$current, _triggerRef$current$f;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$f = _triggerRef$current.focus) === null || _triggerRef$current$f === void 0 ? void 0 : _triggerRef$current$f.call(_triggerRef$current);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(false);\n }\n };\n var focusMenu = function focusMenu() {\n var _overlayRef$current;\n if ((_overlayRef$current = overlayRef.current) !== null && _overlayRef$current !== void 0 && _overlayRef$current.focus) {\n overlayRef.current.focus();\n focusMenuRef.current = true;\n return true;\n }\n return false;\n };\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n case TAB:\n {\n var focusResult = false;\n if (!focusMenuRef.current) {\n focusResult = focusMenu();\n }\n if (focusResult) {\n event.preventDefault();\n } else {\n handleCloseMenuAndReturnFocus();\n }\n break;\n }\n }\n };\n React.useEffect(function () {\n if (visible) {\n window.addEventListener(\"keydown\", handleKeyDown);\n if (autoFocus) {\n // FIXME: hack with raf\n raf(focusMenu, 3);\n }\n return function () {\n window.removeEventListener(\"keydown\", handleKeyDown);\n focusMenuRef.current = false;\n };\n }\n return function () {\n focusMenuRef.current = false;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n}","import React, { forwardRef, useMemo } from 'react';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nvar Overlay = /*#__PURE__*/forwardRef(function (props, ref) {\n var overlay = props.overlay,\n arrow = props.arrow,\n prefixCls = props.prefixCls;\n var overlayNode = useMemo(function () {\n var overlayElement;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n }, [overlay]);\n var composedRef = composeRef(ref, overlayNode === null || overlayNode === void 0 ? void 0 : overlayNode.ref);\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), /*#__PURE__*/React.cloneElement(overlayNode, {\n ref: supportRef(overlayNode) ? composedRef : undefined\n }));\n});\nexport default Overlay;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n top: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottom: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\", \"autoFocus\", \"overlay\", \"children\", \"onVisibleChange\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport { composeRef, supportRef } from \"rc-util/es/ref\";\nimport React from 'react';\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport Overlay from \"./Overlay\";\nimport Placements from \"./placements\";\nfunction Dropdown(props, ref) {\n var _children$props;\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n autoFocus = props.autoFocus,\n overlay = props.overlay,\n children = props.children,\n onVisibleChange = props.onVisibleChange,\n otherProps = _objectWithoutProperties(props, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n var overlayRef = React.useRef(null);\n var childRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var handleVisibleChange = function handleVisibleChange(newVisible) {\n setTriggerVisible(newVisible);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(newVisible);\n };\n useAccessibility({\n visible: mergedVisible,\n triggerRef: childRef,\n onVisibleChange: handleVisibleChange,\n autoFocus: autoFocus,\n overlayRef: overlayRef\n });\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n setTriggerVisible(false);\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n };\n var getMenuElement = function getMenuElement() {\n return /*#__PURE__*/React.createElement(Overlay, {\n ref: overlayRef,\n overlay: overlay,\n prefixCls: prefixCls,\n arrow: arrow\n });\n };\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n return getMenuElement();\n };\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n return !alignPoint;\n };\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n if (openClassName !== undefined) {\n return openClassName;\n }\n return \"\".concat(prefixCls, \"-open\");\n };\n var childrenNode = /*#__PURE__*/React.cloneElement(children, {\n className: classNames((_children$props = children.props) === null || _children$props === void 0 ? void 0 : _children$props.className, mergedVisible && getOpenClassName()),\n ref: supportRef(children) ? composeRef(childRef, children.ref) : undefined\n });\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n return /*#__PURE__*/React.createElement(Trigger, _extends({\n builtinPlacements: placements\n }, otherProps, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction,\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: handleVisibleChange,\n onPopupClick: onClick,\n getPopupContainer: getPopupContainer\n }), childrenNode);\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from \"./Dropdown\";\nexport default Dropdown;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n var prefixCls = props.prefixCls,\n invalidate = props.invalidate,\n item = props.item,\n renderItem = props.renderItem,\n responsive = props.responsive,\n responsiveDisabled = props.responsiveDisabled,\n registerSize = props.registerSize,\n itemKey = props.itemKey,\n className = props.className,\n style = props.style,\n children = props.children,\n display = props.display,\n order = props.order,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n restProps = _objectWithoutProperties(props, _excluded);\n var mergedHidden = responsive && !display;\n // ================================ Effect ================================\n function internalRegisterSize(width) {\n registerSize(itemKey, width);\n }\n React.useEffect(function () {\n return function () {\n internalRegisterSize(null);\n };\n }, []);\n // ================================ Render ================================\n var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;\n var overflowStyle;\n if (!invalidate) {\n overflowStyle = {\n opacity: mergedHidden ? 0 : 1,\n height: mergedHidden ? 0 : UNDEFINED,\n overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n order: responsive ? order : UNDEFINED,\n pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n position: mergedHidden ? 'absolute' : UNDEFINED\n };\n }\n var overflowProps = {};\n if (mergedHidden) {\n overflowProps['aria-hidden'] = true;\n }\n var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: _objectSpread(_objectSpread({}, overflowStyle), style)\n }, overflowProps, restProps, {\n ref: ref\n }), childNode);\n if (responsive) {\n itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: function onResize(_ref) {\n var offsetWidth = _ref.offsetWidth;\n internalRegisterSize(offsetWidth);\n },\n disabled: responsiveDisabled\n }, itemNode);\n }\n return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from './channelUpdate';\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n // Updater Trigger\n var updateFuncRef = React.useRef(null);\n // Notify update\n var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n if (!updateFuncRef.current) {\n updateFuncRef.current = [];\n channelUpdate(function () {\n unstable_batchedUpdates(function () {\n updateFuncRef.current.forEach(function (fn) {\n fn();\n });\n updateFuncRef.current = null;\n });\n });\n }\n updateFuncRef.current.push(callback);\n };\n return notifyEffectUpdate;\n}\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n // Value\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n stateValue = _React$useState2[0],\n setStateValue = _React$useState2[1];\n // Set State\n var setEffectVal = useEvent(function (nextValue) {\n notifyEffectUpdate(function () {\n setStateValue(nextValue);\n });\n });\n return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n if (typeof MessageChannel === 'undefined') {\n raf(callback);\n } else {\n var channel = new MessageChannel();\n channel.port1.onmessage = function () {\n return callback();\n };\n channel.port2.postMessage(undefined);\n }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n _excluded2 = [\"className\"],\n _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from './Item';\nimport { OverflowContext } from './context';\nvar InternalRawItem = function InternalRawItem(props, ref) {\n var context = React.useContext(OverflowContext);\n // Render directly when context not provided\n if (!context) {\n var _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _restProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n ref: ref\n }));\n }\n var contextClassName = context.className,\n restContext = _objectWithoutProperties(context, _excluded2);\n var className = props.className,\n restProps = _objectWithoutProperties(props, _excluded3);\n // Do not pass context to sub item to avoid multiple measure\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: null\n }, /*#__PURE__*/React.createElement(Item, _extends({\n ref: ref,\n className: classNames(contextClassName, className)\n }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from './Item';\nimport useEffectState, { useBatcher } from './hooks/useEffectState';\nimport RawItem from './RawItem';\nimport { OverflowContext } from './context';\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from './context';\nfunction defaultRenderRest(omittedItems) {\n return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n var _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n _props$data = props.data,\n data = _props$data === void 0 ? [] : _props$data,\n renderItem = props.renderItem,\n renderRawItem = props.renderRawItem,\n itemKey = props.itemKey,\n _props$itemWidth = props.itemWidth,\n itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n ssr = props.ssr,\n style = props.style,\n className = props.className,\n maxCount = props.maxCount,\n renderRest = props.renderRest,\n renderRawRest = props.renderRawRest,\n suffix = props.suffix,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n itemComponent = props.itemComponent,\n onVisibleChange = props.onVisibleChange,\n restProps = _objectWithoutProperties(props, _excluded);\n var fullySSR = ssr === 'full';\n var notifyEffectUpdate = useBatcher();\n var _useEffectState = useEffectState(notifyEffectUpdate, null),\n _useEffectState2 = _slicedToArray(_useEffectState, 2),\n containerWidth = _useEffectState2[0],\n setContainerWidth = _useEffectState2[1];\n var mergedContainerWidth = containerWidth || 0;\n var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n itemWidths = _useEffectState4[0],\n setItemWidths = _useEffectState4[1];\n var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n prevRestWidth = _useEffectState6[0],\n setPrevRestWidth = _useEffectState6[1];\n var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n restWidth = _useEffectState8[0],\n setRestWidth = _useEffectState8[1];\n var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n suffixWidth = _useEffectState10[0],\n setSuffixWidth = _useEffectState10[1];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n suffixFixedStart = _useState2[0],\n setSuffixFixedStart = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n displayCount = _useState4[0],\n setDisplayCount = _useState4[1];\n var mergedDisplayCount = React.useMemo(function () {\n if (displayCount === null && fullySSR) {\n return Number.MAX_SAFE_INTEGER;\n }\n return displayCount || 0;\n }, [displayCount, containerWidth]);\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n restReady = _useState6[0],\n setRestReady = _useState6[1];\n var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n // Always use the max width to avoid blink\n var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n // ================================= Data =================================\n var isResponsive = maxCount === RESPONSIVE;\n var shouldResponsive = data.length && isResponsive;\n var invalidate = maxCount === INVALIDATE;\n /**\n * When is `responsive`, we will always render rest node to get the real width of it for calculation\n */\n var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n var mergedData = useMemo(function () {\n var items = data;\n if (shouldResponsive) {\n if (containerWidth === null && fullySSR) {\n items = data;\n } else {\n items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n }\n } else if (typeof maxCount === 'number') {\n items = data.slice(0, maxCount);\n }\n return items;\n }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n var omittedItems = useMemo(function () {\n if (shouldResponsive) {\n return data.slice(mergedDisplayCount + 1);\n }\n return data.slice(mergedData.length);\n }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n // ================================= Item =================================\n var getKey = useCallback(function (item, index) {\n var _ref;\n if (typeof itemKey === 'function') {\n return itemKey(item);\n }\n return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n }, [itemKey]);\n var mergedRenderItem = useCallback(renderItem || function (item) {\n return item;\n }, [renderItem]);\n function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n // React 18 will sync render even when the value is same in some case.\n // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n // ref: https://github.com/ant-design/ant-design/issues/36559\n if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n return;\n }\n setDisplayCount(count);\n if (!notReady) {\n setRestReady(count < data.length - 1);\n onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);\n }\n if (suffixFixedStartVal !== undefined) {\n setSuffixFixedStart(suffixFixedStartVal);\n }\n }\n // ================================= Size =================================\n function onOverflowResize(_, element) {\n setContainerWidth(element.clientWidth);\n }\n function registerSize(key, width) {\n setItemWidths(function (origin) {\n var clone = new Map(origin);\n if (width === null) {\n clone.delete(key);\n } else {\n clone.set(key, width);\n }\n return clone;\n });\n }\n function registerOverflowSize(_, width) {\n setRestWidth(width);\n setPrevRestWidth(restWidth);\n }\n function registerSuffixSize(_, width) {\n setSuffixWidth(width);\n }\n // ================================ Effect ================================\n function getItemWidth(index) {\n return itemWidths.get(getKey(mergedData[index], index));\n }\n useLayoutEffect(function () {\n if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n var totalWidth = suffixWidth;\n var len = mergedData.length;\n var lastIndex = len - 1;\n // When data count change to 0, reset this since not loop will reach\n if (!len) {\n updateDisplayCount(0, null);\n return;\n }\n for (var i = 0; i < len; i += 1) {\n var currentItemWidth = getItemWidth(i);\n // Fully will always render\n if (fullySSR) {\n currentItemWidth = currentItemWidth || 0;\n }\n // Break since data not ready\n if (currentItemWidth === undefined) {\n updateDisplayCount(i - 1, undefined, true);\n break;\n }\n // Find best match\n totalWidth += currentItemWidth;\n if (\n // Only one means `totalWidth` is the final width\n lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n // Last two width will be the final width\n i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n // Additional check if match the end\n updateDisplayCount(lastIndex, null);\n break;\n } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n // Can not hold all the content to show rest\n updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n break;\n }\n }\n if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n setSuffixFixedStart(null);\n }\n }\n }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n // ================================ Render ================================\n var displayRest = restReady && !!omittedItems.length;\n var suffixStyle = {};\n if (suffixFixedStart !== null && shouldResponsive) {\n suffixStyle = {\n position: 'absolute',\n left: suffixFixedStart,\n top: 0\n };\n }\n var itemSharedProps = {\n prefixCls: itemPrefixCls,\n responsive: shouldResponsive,\n component: itemComponent,\n invalidate: invalidate\n };\n // >>>>> Choice render fun by `renderRawItem`\n var internalRenderItemNode = renderRawItem ? function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n key: key,\n value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n order: index,\n item: item,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n })\n }, renderRawItem(item, index));\n } : function (item, index) {\n var key = getKey(item, index);\n return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n order: index,\n key: key,\n item: item,\n renderItem: mergedRenderItem,\n itemKey: key,\n registerSize: registerSize,\n display: index <= mergedDisplayCount\n }));\n };\n // >>>>> Rest node\n var restNode;\n var restContextProps = {\n order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n className: \"\".concat(itemPrefixCls, \"-rest\"),\n registerSize: registerOverflowSize,\n display: displayRest\n };\n if (!renderRawRest) {\n var mergedRenderRest = renderRest || defaultRenderRest;\n restNode = /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n } else if (renderRawRest) {\n restNode = /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n }, renderRawRest(omittedItems));\n }\n var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n className: classNames(!invalidate && prefixCls, className),\n style: style,\n ref: ref\n }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n responsive: isResponsive,\n responsiveDisabled: !shouldResponsive,\n order: mergedDisplayCount,\n className: \"\".concat(itemPrefixCls, \"-suffix\"),\n registerSize: registerSuffixSize,\n display: true,\n style: suffixStyle\n }), suffix));\n if (isResponsive) {\n overflowNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onOverflowResize,\n disabled: !shouldResponsive\n }, overflowNode);\n }\n return overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from './Overflow';\nexport default Overflow;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n if (uuid === undefined) {\n return null;\n }\n return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n var id = React.useContext(IdContext);\n return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n var clone = _objectSpread({}, origin);\n Object.keys(target).forEach(function (key) {\n var value = target[key];\n if (value !== undefined) {\n clone[key] = value;\n }\n });\n return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n var children = _ref.children,\n locked = _ref.locked,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var context = React.useContext(MenuContext);\n var inheritableContext = useMemo(function () {\n return mergeProps(context, restProps);\n }, [context, restProps], function (prev, next) {\n return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n });\n return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n value: inheritableContext\n }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n var parentKeyPath = React.useContext(PathTrackerContext);\n return React.useMemo(function () {\n return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (isVisible(node)) {\n var nodeName = node.nodeName.toLowerCase();\n var isFocusableElement =\n // Focusable element\n ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n // Editable element\n node.isContentEditable ||\n // Anchor with href element\n nodeName === 'a' && !!node.getAttribute('href');\n\n // Get tabIndex\n var tabIndexAttr = node.getAttribute('tabindex');\n var tabIndexNum = Number(tabIndexAttr);\n\n // Parse as number if validate\n var tabIndex = null;\n if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n tabIndex = tabIndexNum;\n } else if (isFocusableElement && tabIndex === null) {\n tabIndex = 0;\n }\n\n // Block focusable if disabled\n if (isFocusableElement && node.disabled) {\n tabIndex = null;\n }\n return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n }\n return false;\n}\nexport function getFocusNodeList(node) {\n var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n return focusable(child, includePositive);\n });\n if (focusable(node, includePositive)) {\n res.unshift(node);\n }\n return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n if (lastFocusElement) {\n try {\n // 元素可能已经被移动了\n lastFocusElement.focus();\n\n /* eslint-disable no-empty */\n } catch (e) {\n // empty\n }\n /* eslint-enable no-empty */\n }\n}\n\nexport function limitTabRange(node, e) {\n if (e.keyCode === 9) {\n var tabNodeList = getFocusNodeList(node);\n var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n if (leavingTab) {\n var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n target.focus();\n e.preventDefault();\n }\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport { getMenuId } from \"../context/IdContext\";\n\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n RIGHT = KeyCode.RIGHT,\n UP = KeyCode.UP,\n DOWN = KeyCode.DOWN,\n ENTER = KeyCode.ENTER,\n ESC = KeyCode.ESC,\n HOME = KeyCode.HOME,\n END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n var _inline, _horizontal, _vertical, _offsets;\n var prev = 'prev';\n var next = 'next';\n var children = 'children';\n var parent = 'parent';\n\n // Inline enter is special that we use unique operation\n if (mode === 'inline' && which === ENTER) {\n return {\n inlineTrigger: true\n };\n }\n var inline = (_inline = {}, _defineProperty(_inline, UP, prev), _defineProperty(_inline, DOWN, next), _inline);\n var horizontal = (_horizontal = {}, _defineProperty(_horizontal, LEFT, isRtl ? next : prev), _defineProperty(_horizontal, RIGHT, isRtl ? prev : next), _defineProperty(_horizontal, DOWN, children), _defineProperty(_horizontal, ENTER, children), _horizontal);\n var vertical = (_vertical = {}, _defineProperty(_vertical, UP, prev), _defineProperty(_vertical, DOWN, next), _defineProperty(_vertical, ENTER, children), _defineProperty(_vertical, ESC, parent), _defineProperty(_vertical, LEFT, isRtl ? children : parent), _defineProperty(_vertical, RIGHT, isRtl ? parent : children), _vertical);\n var offsets = {\n inline: inline,\n horizontal: horizontal,\n vertical: vertical,\n inlineSub: inline,\n horizontalSub: vertical,\n verticalSub: vertical\n };\n var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n switch (type) {\n case prev:\n return {\n offset: -1,\n sibling: true\n };\n case next:\n return {\n offset: 1,\n sibling: true\n };\n case parent:\n return {\n offset: -1,\n sibling: false\n };\n case children:\n return {\n offset: 1,\n sibling: false\n };\n default:\n return null;\n }\n}\nfunction findContainerUL(element) {\n var current = element;\n while (current) {\n if (current.getAttribute('data-menu-list')) {\n return current;\n }\n current = current.parentElement;\n }\n\n // Normally should not reach this line\n /* istanbul ignore next */\n return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n var current = activeElement || document.activeElement;\n while (current) {\n if (elements.has(current)) {\n return current;\n }\n current = current.parentElement;\n }\n return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nfunction getFocusableElements(container, elements) {\n var list = getFocusNodeList(container, true);\n return list.filter(function (ele) {\n return elements.has(ele);\n });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n // Key on the menu item will not get validate parent container\n if (!parentQueryContainer) {\n return null;\n }\n\n // List current level menu item elements\n var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n // Find next focus index\n var count = sameLevelFocusableMenuElementList.length;\n var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n return focusMenuElement === ele;\n });\n if (offset < 0) {\n if (focusIndex === -1) {\n focusIndex = count - 1;\n } else {\n focusIndex -= 1;\n }\n } else if (offset > 0) {\n focusIndex += 1;\n }\n focusIndex = (focusIndex + count) % count;\n\n // Focus menu item\n return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport default function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n var rafRef = React.useRef();\n var activeRef = React.useRef();\n activeRef.current = activeKey;\n var cleanRaf = function cleanRaf() {\n raf.cancel(rafRef.current);\n };\n React.useEffect(function () {\n return function () {\n cleanRaf();\n };\n }, []);\n return function (e) {\n var which = e.which;\n if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n // Convert key to elements\n var elements;\n var key2element;\n var element2key;\n\n // >>> Wrap as function since we use raf for some case\n var refreshElements = function refreshElements() {\n elements = new Set();\n key2element = new Map();\n element2key = new Map();\n var keys = getKeys();\n keys.forEach(function (key) {\n var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n if (element) {\n elements.add(element);\n element2key.set(element, key);\n key2element.set(key, element);\n }\n });\n return elements;\n };\n refreshElements();\n\n // First we should find current focused MenuItem/SubMenu element\n var activeElement = key2element.get(activeKey);\n var focusMenuElement = getFocusElement(activeElement, elements);\n var focusMenuKey = element2key.get(focusMenuElement);\n var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n // Some mode do not have fully arrow operation like inline\n if (!offsetObj && which !== HOME && which !== END) {\n return;\n }\n\n // Arrow prevent default to avoid page scroll\n if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n e.preventDefault();\n }\n var tryFocus = function tryFocus(menuElement) {\n if (menuElement) {\n var focusTargetElement = menuElement;\n\n // Focus to link instead of menu item if possible\n var link = menuElement.querySelector('a');\n if (link !== null && link !== void 0 && link.getAttribute('href')) {\n focusTargetElement = link;\n }\n var targetKey = element2key.get(menuElement);\n triggerActiveKey(targetKey);\n\n /**\n * Do not `useEffect` here since `tryFocus` may trigger async\n * which makes React sync update the `activeKey`\n * that force render before `useRef` set the next activeKey\n */\n cleanRaf();\n rafRef.current = raf(function () {\n if (activeRef.current === targetKey) {\n focusTargetElement.focus();\n }\n });\n }\n };\n if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n // ========================== Sibling ==========================\n // Find walkable focus menu element container\n var parentQueryContainer;\n if (!focusMenuElement || mode === 'inline') {\n parentQueryContainer = containerRef.current;\n } else {\n parentQueryContainer = findContainerUL(focusMenuElement);\n }\n\n // Get next focus element\n var targetElement;\n var focusableElements = getFocusableElements(parentQueryContainer, elements);\n if (which === HOME) {\n targetElement = focusableElements[0];\n } else if (which === END) {\n targetElement = focusableElements[focusableElements.length - 1];\n } else {\n targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n }\n // Focus menu item\n tryFocus(targetElement);\n\n // ======================= InlineTrigger =======================\n } else if (offsetObj.inlineTrigger) {\n // Inline trigger no need switch to sub menu item\n triggerAccessibilityOpen(focusMenuKey);\n // =========================== Level ===========================\n } else if (offsetObj.offset > 0) {\n triggerAccessibilityOpen(focusMenuKey, true);\n cleanRaf();\n rafRef.current = raf(function () {\n // Async should resync elements\n refreshElements();\n var controlId = focusMenuElement.getAttribute('aria-controls');\n var subQueryContainer = document.getElementById(controlId);\n\n // Get sub focusable menu item\n var targetElement = getNextFocusElement(subQueryContainer, elements);\n\n // Focus menu item\n tryFocus(targetElement);\n }, 5);\n } else if (offsetObj.offset < 0) {\n var keyPath = getKeyPath(focusMenuKey, true);\n var parentKey = keyPath[keyPath.length - 2];\n var parentMenuElement = key2element.get(parentKey);\n\n // Focus menu item\n triggerAccessibilityOpen(parentKey, false);\n tryFocus(parentMenuElement);\n }\n }\n\n // Pass origin key down event\n originOnKeyDown === null || originOnKeyDown === void 0 ? void 0 : originOnKeyDown(e);\n };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n internalForceUpdate = _React$useState2[1];\n var key2pathRef = useRef(new Map());\n var path2keyRef = useRef(new Map());\n var _React$useState3 = React.useState([]),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n overflowKeys = _React$useState4[0],\n setOverflowKeys = _React$useState4[1];\n var updateRef = useRef(0);\n var destroyRef = useRef(false);\n var forceUpdate = function forceUpdate() {\n if (!destroyRef.current) {\n internalForceUpdate({});\n }\n };\n var registerPath = useCallback(function (key, keyPath) {\n // Warning for invalidate or duplicated `key`\n if (process.env.NODE_ENV !== 'production') {\n warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n }\n\n // Fill map\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.set(connectedPath, key);\n key2pathRef.current.set(key, connectedPath);\n updateRef.current += 1;\n var id = updateRef.current;\n nextSlice(function () {\n if (id === updateRef.current) {\n forceUpdate();\n }\n });\n }, []);\n var unregisterPath = useCallback(function (key, keyPath) {\n var connectedPath = getPathStr(keyPath);\n path2keyRef.current.delete(connectedPath);\n key2pathRef.current.delete(key);\n }, []);\n var refreshOverflowKeys = useCallback(function (keys) {\n setOverflowKeys(keys);\n }, []);\n var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n var fullPath = key2pathRef.current.get(eventKey) || '';\n var keys = getPathKeys(fullPath);\n if (includeOverflow && overflowKeys.includes(keys[0])) {\n keys.unshift(OVERFLOW_KEY);\n }\n return keys;\n }, [overflowKeys]);\n var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n return pathKeys.some(function (pathKey) {\n var pathKeyList = getKeyPath(pathKey, true);\n return pathKeyList.includes(eventKey);\n });\n }, [getKeyPath]);\n var getKeys = function getKeys() {\n var keys = _toConsumableArray(key2pathRef.current.keys());\n if (overflowKeys.length) {\n keys.push(OVERFLOW_KEY);\n }\n return keys;\n };\n\n /**\n * Find current key related child path keys\n */\n var getSubPathKeys = useCallback(function (key) {\n var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n var pathKeys = new Set();\n _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n if (pathKey.startsWith(connectedPath)) {\n pathKeys.add(path2keyRef.current.get(pathKey));\n }\n });\n return pathKeys;\n }, []);\n React.useEffect(function () {\n return function () {\n destroyRef.current = true;\n };\n }, []);\n return {\n // Register\n registerPath: registerPath,\n unregisterPath: unregisterPath,\n refreshOverflowKeys: refreshOverflowKeys,\n // Util\n isSubPathKey: isSubPathKey,\n getKeyPath: getKeyPath,\n getKeys: getKeys,\n getSubPathKeys: getSubPathKeys\n };\n}","export function nextSlice(callback) {\n /* istanbul ignore next */\n Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n var funRef = React.useRef(func);\n funRef.current = func;\n var callback = React.useCallback(function () {\n var _funRef$current;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n }, []);\n return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n var _useMergedState = useMergedState(id, {\n value: id\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n uuid = _useMergedState2[0],\n setUUID = _useMergedState2[1];\n React.useEffect(function () {\n internalId += 1;\n var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n setUUID(\"rc-menu-uuid-\".concat(newId));\n }, []);\n return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n var _React$useContext = React.useContext(MenuContext),\n activeKey = _React$useContext.activeKey,\n onActive = _React$useContext.onActive,\n onInactive = _React$useContext.onInactive;\n var ret = {\n active: activeKey === eventKey\n };\n\n // Skip when disabled\n if (!disabled) {\n ret.onMouseEnter = function (domEvent) {\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n onActive(eventKey);\n };\n ret.onMouseLeave = function (domEvent) {\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n onInactive(eventKey);\n };\n }\n return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n var _React$useContext = React.useContext(MenuContext),\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl,\n inlineIndent = _React$useContext.inlineIndent;\n if (mode !== 'inline') {\n return null;\n }\n var len = level;\n return rtl ? {\n paddingRight: len * inlineIndent\n } : {\n paddingLeft: len * inlineIndent\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n var icon = _ref.icon,\n props = _ref.props,\n children = _ref.children;\n var iconNode;\n if (typeof icon === 'function') {\n iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n } else {\n // Compatible for origin definition\n iconNode = icon;\n }\n return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n var item = _ref.item,\n restInfo = _objectWithoutProperties(_ref, _excluded);\n Object.defineProperty(restInfo, 'item', {\n get: function get() {\n warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n return item;\n }\n });\n return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n _inherits(LegacyMenuItem, _React$Component);\n var _super = _createSuper(LegacyMenuItem);\n function LegacyMenuItem() {\n _classCallCheck(this, LegacyMenuItem);\n return _super.apply(this, arguments);\n }\n _createClass(LegacyMenuItem, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n title = _this$props.title,\n attribute = _this$props.attribute,\n elementRef = _this$props.elementRef,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n // Here the props are eventually passed to the DOM element.\n // React does not recognize non-standard attributes.\n // Therefore, remove the props that is not used here.\n // ref: https://github.com/ant-design/ant-design/issues/41395\n var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n title: typeof title === 'string' ? title : undefined\n }, passedProps, {\n ref: elementRef\n }));\n }\n }]);\n return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n var style = props.style,\n className = props.className,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n itemIcon = props.itemIcon,\n children = props.children,\n role = props.role,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onClick = props.onClick,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n restProps = _objectWithoutProperties(props, _excluded2);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n onItemClick = _React$useContext.onItemClick,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n contextItemIcon = _React$useContext.itemIcon,\n selectedKeys = _React$useContext.selectedKeys,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n var itemCls = \"\".concat(prefixCls, \"-item\");\n var legacyMenuItemRef = React.useRef();\n var elementRef = React.useRef();\n var mergedDisabled = contextDisabled || disabled;\n var mergedEleRef = useComposeRef(ref, elementRef);\n var connectedKeys = useFullPath(eventKey);\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'MenuItem should not leave undefined `key`.');\n }\n\n // ============================= Info =============================\n var getEventInfo = function getEventInfo(e) {\n return {\n key: eventKey,\n // Note: For legacy code is reversed which not like other antd component\n keyPath: _toConsumableArray(connectedKeys).reverse(),\n item: legacyMenuItemRef.current,\n domEvent: e\n };\n };\n\n // ============================= Icon =============================\n var mergedItemIcon = itemIcon || contextItemIcon;\n\n // ============================ Active ============================\n var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n // ============================ Select ============================\n var selected = selectedKeys.includes(eventKey);\n\n // ======================== DirectionStyle ========================\n var directionStyle = useDirectionStyle(connectedKeys.length);\n\n // ============================ Events ============================\n var onInternalClick = function onInternalClick(e) {\n if (mergedDisabled) {\n return;\n }\n var info = getEventInfo(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n };\n var onInternalKeyDown = function onInternalKeyDown(e) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.which === KeyCode.ENTER) {\n var info = getEventInfo(e);\n\n // Legacy. Key will also trigger click event\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus(e) {\n onActive(eventKey);\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(e);\n };\n\n // ============================ Render ============================\n var optionRoleProps = {};\n if (props.role === 'option') {\n optionRoleProps['aria-selected'] = selected;\n }\n var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n ref: legacyMenuItemRef,\n elementRef: mergedEleRef,\n role: role === null ? 'none' : role || 'menuitem',\n tabIndex: disabled ? null : -1,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n }, restProps, activeProps, optionRoleProps, {\n component: \"li\",\n \"aria-disabled\": disabled,\n style: _objectSpread(_objectSpread({}, directionStyle), style),\n className: classNames(itemCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(itemCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(itemCls, \"-selected\"), selected), _defineProperty(_classNames, \"\".concat(itemCls, \"-disabled\"), mergedDisabled), _classNames), className),\n onClick: onInternalClick,\n onKeyDown: onInternalKeyDown,\n onFocus: onInternalFocus\n }), children, /*#__PURE__*/React.createElement(Icon, {\n props: _objectSpread(_objectSpread({}, props), {}, {\n isSelected: selected\n }),\n icon: mergedItemIcon\n }));\n if (_internalRenderMenuItem) {\n renderNode = _internalRenderMenuItem(renderNode, props, {\n selected: selected\n });\n }\n return renderNode;\n});\nfunction MenuItem(props, ref) {\n var eventKey = props.eventKey;\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n var connectedKeyPath = useFullPath(eventKey);\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n if (measure) {\n return null;\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n ref: ref\n }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n var className = _ref.className,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n rtl = _React$useContext.rtl;\n return /*#__PURE__*/React.createElement(\"ul\", _extends({\n className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n role: \"menu\"\n }, restProps, {\n \"data-menu-list\": true,\n ref: ref\n }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nexport function parseChildren(children, keyPath) {\n return toArray(children).map(function (child, index) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n var _eventKey, _child$props;\n var key = child.key;\n var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n var emptyKey = eventKey === null || eventKey === undefined;\n if (emptyKey) {\n eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n }\n var cloneProps = {\n key: eventKey,\n eventKey: eventKey\n };\n if (process.env.NODE_ENV !== 'production' && emptyKey) {\n cloneProps.warnKey = true;\n }\n return /*#__PURE__*/React.cloneElement(child, cloneProps);\n }\n return child;\n });\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nexport var placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport var placementsRtl = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow\n },\n rightTop: {\n points: ['tr', 'tl'],\n overflow: autoAdjustOverflow\n },\n rightBottom: {\n points: ['br', 'bl'],\n overflow: autoAdjustOverflow\n },\n leftTop: {\n points: ['tl', 'tr'],\n overflow: autoAdjustOverflow\n },\n leftBottom: {\n points: ['bl', 'br'],\n overflow: autoAdjustOverflow\n }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n if (motion) {\n return motion;\n }\n if (defaultMotions) {\n return defaultMotions[mode] || defaultMotions.other;\n }\n return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n horizontal: 'bottomLeft',\n vertical: 'rightTop',\n 'vertical-left': 'rightTop',\n 'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n var prefixCls = _ref.prefixCls,\n visible = _ref.visible,\n children = _ref.children,\n popup = _ref.popup,\n popupClassName = _ref.popupClassName,\n popupOffset = _ref.popupOffset,\n disabled = _ref.disabled,\n mode = _ref.mode,\n onVisibleChange = _ref.onVisibleChange;\n var _React$useContext = React.useContext(MenuContext),\n getPopupContainer = _React$useContext.getPopupContainer,\n rtl = _React$useContext.rtl,\n subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n builtinPlacements = _React$useContext.builtinPlacements,\n triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n rootClassName = _React$useContext.rootClassName,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerVisible = _React$useState2[0],\n setInnerVisible = _React$useState2[1];\n var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n var popupPlacement = popupPlacementMap[mode];\n var targetMotion = getMotion(mode, motion, defaultMotions);\n var targetMotionRef = React.useRef(targetMotion);\n if (mode !== 'inline') {\n /**\n * PopupTrigger is only used for vertical and horizontal types.\n * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n */\n targetMotionRef.current = targetMotion;\n }\n var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n removeOnLeave: false,\n motionAppear: true\n });\n\n // Delay to change visible\n var visibleRef = React.useRef();\n React.useEffect(function () {\n visibleRef.current = raf(function () {\n setInnerVisible(visible);\n });\n return function () {\n raf.cancel(visibleRef.current);\n };\n }, [visible]);\n return /*#__PURE__*/React.createElement(Trigger, {\n prefixCls: prefixCls,\n popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n stretch: mode === 'horizontal' ? 'minWidth' : null,\n getPopupContainer: getPopupContainer,\n builtinPlacements: placement,\n popupPlacement: popupPlacement,\n popupVisible: innerVisible,\n popup: popup,\n popupAlign: popupOffset && {\n offset: popupOffset\n },\n action: disabled ? [] : [triggerSubMenuAction],\n mouseEnterDelay: subMenuOpenDelay,\n mouseLeaveDelay: subMenuCloseDelay,\n onPopupVisibleChange: onVisibleChange,\n forceRender: forceSubMenuRender,\n popupMotion: mergedMotion\n }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n var id = _ref.id,\n open = _ref.open,\n keyPath = _ref.keyPath,\n children = _ref.children;\n var fixedMode = 'inline';\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n forceSubMenuRender = _React$useContext.forceSubMenuRender,\n motion = _React$useContext.motion,\n defaultMotions = _React$useContext.defaultMotions,\n mode = _React$useContext.mode;\n\n // Always use latest mode check\n var sameModeRef = React.useRef(false);\n sameModeRef.current = mode === fixedMode;\n\n // We record `destroy` mark here since when mode change from `inline` to others.\n // The inline list should remove when motion end.\n var _React$useState = React.useState(!sameModeRef.current),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n destroy = _React$useState2[0],\n setDestroy = _React$useState2[1];\n var mergedOpen = sameModeRef.current ? open : false;\n\n // ================================= Effect =================================\n // Reset destroy state when mode change back\n React.useEffect(function () {\n if (sameModeRef.current) {\n setDestroy(false);\n }\n }, [mode]);\n\n // ================================= Render =================================\n var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n // No need appear since nest inlineCollapse changed\n if (keyPath.length > 1) {\n mergedMotion.motionAppear = false;\n }\n\n // Hide inline list when mode changed and motion end\n var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n mergedMotion.onVisibleChanged = function (newVisible) {\n if (!sameModeRef.current && !newVisible) {\n setDestroy(true);\n }\n return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n };\n if (destroy) {\n return null;\n }\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n mode: fixedMode,\n locked: !sameModeRef.current\n }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n visible: mergedOpen\n }, mergedMotion, {\n forceRender: forceSubMenuRender,\n removeOnLeave: false,\n leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n }), function (_ref2) {\n var motionClassName = _ref2.className,\n motionStyle = _ref2.style;\n return /*#__PURE__*/React.createElement(SubMenuList, {\n id: id,\n className: motionClassName,\n style: motionStyle\n }, children);\n }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/commonUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = function InternalSubMenu(props) {\n var _classNames;\n var style = props.style,\n className = props.className,\n title = props.title,\n eventKey = props.eventKey,\n warnKey = props.warnKey,\n disabled = props.disabled,\n internalPopupClose = props.internalPopupClose,\n children = props.children,\n itemIcon = props.itemIcon,\n expandIcon = props.expandIcon,\n popupClassName = props.popupClassName,\n popupOffset = props.popupOffset,\n onClick = props.onClick,\n onMouseEnter = props.onMouseEnter,\n onMouseLeave = props.onMouseLeave,\n onTitleClick = props.onTitleClick,\n onTitleMouseEnter = props.onTitleMouseEnter,\n onTitleMouseLeave = props.onTitleMouseLeave,\n restProps = _objectWithoutProperties(props, _excluded);\n var domDataId = useMenuId(eventKey);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls,\n mode = _React$useContext.mode,\n openKeys = _React$useContext.openKeys,\n contextDisabled = _React$useContext.disabled,\n overflowDisabled = _React$useContext.overflowDisabled,\n activeKey = _React$useContext.activeKey,\n selectedKeys = _React$useContext.selectedKeys,\n contextItemIcon = _React$useContext.itemIcon,\n contextExpandIcon = _React$useContext.expandIcon,\n onItemClick = _React$useContext.onItemClick,\n onOpenChange = _React$useContext.onOpenChange,\n onActive = _React$useContext.onActive;\n var _React$useContext2 = React.useContext(PrivateContext),\n _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n var _React$useContext3 = React.useContext(PathUserContext),\n isSubPathKey = _React$useContext3.isSubPathKey;\n var connectedPath = useFullPath();\n var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n var mergedDisabled = contextDisabled || disabled;\n var elementRef = React.useRef();\n var popupRef = React.useRef();\n\n // ================================ Warn ================================\n if (process.env.NODE_ENV !== 'production' && warnKey) {\n warning(false, 'SubMenu should not leave undefined `key`.');\n }\n\n // ================================ Icon ================================\n var mergedItemIcon = itemIcon || contextItemIcon;\n var mergedExpandIcon = expandIcon || contextExpandIcon;\n\n // ================================ Open ================================\n var originOpen = openKeys.includes(eventKey);\n var open = !overflowDisabled && originOpen;\n\n // =============================== Select ===============================\n var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n // =============================== Active ===============================\n var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n active = _useActive.active,\n activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n // Fallback of active check to avoid hover on menu title or disabled item\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n childrenActive = _React$useState2[0],\n setChildrenActive = _React$useState2[1];\n var triggerChildrenActive = function triggerChildrenActive(newActive) {\n if (!mergedDisabled) {\n setChildrenActive(newActive);\n }\n };\n var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n triggerChildrenActive(true);\n onMouseEnter === null || onMouseEnter === void 0 ? void 0 : onMouseEnter({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n triggerChildrenActive(false);\n onMouseLeave === null || onMouseLeave === void 0 ? void 0 : onMouseLeave({\n key: eventKey,\n domEvent: domEvent\n });\n };\n var mergedActive = React.useMemo(function () {\n if (active) {\n return active;\n }\n if (mode !== 'inline') {\n return childrenActive || isSubPathKey([activeKey], eventKey);\n }\n return false;\n }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n // ========================== DirectionStyle ==========================\n var directionStyle = useDirectionStyle(connectedPath.length);\n\n // =============================== Events ===============================\n // >>>> Title click\n var onInternalTitleClick = function onInternalTitleClick(e) {\n // Skip if disabled\n if (mergedDisabled) {\n return;\n }\n onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick({\n key: eventKey,\n domEvent: e\n });\n\n // Trigger open by click when mode is `inline`\n if (mode === 'inline') {\n onOpenChange(eventKey, !originOpen);\n }\n };\n\n // >>>> Context for children click\n var onMergedItemClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n onItemClick(info);\n });\n\n // >>>>> Visible change\n var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n if (mode !== 'inline') {\n onOpenChange(eventKey, newVisible);\n }\n };\n\n /**\n * Used for accessibility. Helper will focus element without key board.\n * We should manually trigger an active\n */\n var onInternalFocus = function onInternalFocus() {\n onActive(eventKey);\n };\n\n // =============================== Render ===============================\n var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n // >>>>> Title\n var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n role: \"menuitem\",\n style: directionStyle,\n className: \"\".concat(subMenuPrefixCls, \"-title\"),\n tabIndex: mergedDisabled ? null : -1,\n ref: elementRef,\n title: typeof title === 'string' ? title : null,\n \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n \"aria-expanded\": open,\n \"aria-haspopup\": true,\n \"aria-controls\": popupId,\n \"aria-disabled\": mergedDisabled,\n onClick: onInternalTitleClick,\n onFocus: onInternalFocus\n }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n icon: mode !== 'horizontal' ? mergedExpandIcon : null,\n props: _objectSpread(_objectSpread({}, props), {}, {\n isOpen: open,\n // [Legacy] Not sure why need this mark\n isSubMenu: true\n })\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n })));\n\n // Cache mode if it change to `inline` which do not have popup motion\n var triggerModeRef = React.useRef(mode);\n if (mode !== 'inline' && connectedPath.length > 1) {\n triggerModeRef.current = 'vertical';\n } else {\n triggerModeRef.current = mode;\n }\n if (!overflowDisabled) {\n var triggerMode = triggerModeRef.current;\n\n // Still wrap with Trigger here since we need avoid react re-mount dom node\n // Which makes motion failed\n titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n mode: triggerMode,\n prefixCls: subMenuPrefixCls,\n visible: !internalPopupClose && open && mode !== 'inline',\n popupClassName: popupClassName,\n popupOffset: popupOffset,\n popup: /*#__PURE__*/React.createElement(MenuContextProvider\n // Special handle of horizontal mode\n , {\n mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n }, /*#__PURE__*/React.createElement(SubMenuList, {\n id: popupId,\n ref: popupRef\n }, children)),\n disabled: mergedDisabled,\n onVisibleChange: onPopupVisibleChange\n }, titleNode);\n }\n\n // >>>>> List node\n var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n role: \"none\"\n }, restProps, {\n component: \"li\",\n style: style,\n className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-open\"), open), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), _defineProperty(_classNames, \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled), _classNames)),\n onMouseEnter: onInternalMouseEnter,\n onMouseLeave: onInternalMouseLeave\n }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n id: popupId,\n open: open,\n keyPath: connectedPath\n }, children));\n if (_internalRenderSubMenuItem) {\n listNode = _internalRenderSubMenuItem(listNode, props, {\n selected: childrenSelected,\n active: mergedActive,\n open: open,\n disabled: mergedDisabled\n });\n }\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(MenuContextProvider, {\n onItemClick: onMergedItemClick,\n mode: mode === 'horizontal' ? 'vertical' : mode,\n itemIcon: mergedItemIcon,\n expandIcon: mergedExpandIcon\n }, listNode);\n};\nexport default function SubMenu(props) {\n var eventKey = props.eventKey,\n children = props.children;\n var connectedKeyPath = useFullPath(eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n\n // ==================== Record KeyPath ====================\n var measure = useMeasure();\n\n // eslint-disable-next-line consistent-return\n React.useEffect(function () {\n if (measure) {\n measure.registerPath(eventKey, connectedKeyPath);\n return function () {\n measure.unregisterPath(eventKey, connectedKeyPath);\n };\n }\n }, [connectedKeyPath]);\n var renderNode;\n\n // ======================== Render ========================\n if (measure) {\n renderNode = childList;\n } else {\n renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, props, childList);\n }\n return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n value: connectedKeyPath\n }, renderNode);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"],\n _excluded2 = [\"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/commonUtil\";\nvar InternalMenuItemGroup = function InternalMenuItemGroup(_ref) {\n var className = _ref.className,\n title = _ref.title,\n eventKey = _ref.eventKey,\n children = _ref.children,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n role: \"presentation\"\n }, restProps, {\n onClick: function onClick(e) {\n return e.stopPropagation();\n },\n className: classNames(groupPrefixCls, className)\n }), /*#__PURE__*/React.createElement(\"div\", {\n role: \"presentation\",\n className: \"\".concat(groupPrefixCls, \"-title\"),\n title: typeof title === 'string' ? title : undefined\n }, title), /*#__PURE__*/React.createElement(\"ul\", {\n role: \"group\",\n className: \"\".concat(groupPrefixCls, \"-list\")\n }, children));\n};\nexport default function MenuItemGroup(_ref2) {\n var children = _ref2.children,\n props = _objectWithoutProperties(_ref2, _excluded2);\n var connectedKeyPath = useFullPath(props.eventKey);\n var childList = parseChildren(children, connectedKeyPath);\n var measure = useMeasure();\n if (measure) {\n return childList;\n }\n return /*#__PURE__*/React.createElement(InternalMenuItemGroup, omit(props, ['warnKey']), childList);\n}","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n var className = _ref.className,\n style = _ref.style;\n var _React$useContext = React.useContext(MenuContext),\n prefixCls = _React$useContext.prefixCls;\n var measure = useMeasure();\n if (measure) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n style: style\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\"];\nimport * as React from 'react';\nimport MenuItemGroup from \"../MenuItemGroup\";\nimport SubMenu from \"../SubMenu\";\nimport Divider from \"../Divider\";\nimport MenuItem from \"../MenuItem\";\nimport { parseChildren } from \"./commonUtil\";\nfunction convertItemsToNodes(list) {\n return (list || []).map(function (opt, index) {\n if (opt && _typeof(opt) === 'object') {\n var _ref = opt,\n label = _ref.label,\n children = _ref.children,\n key = _ref.key,\n type = _ref.type,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n // MenuItemGroup & SubMenuItem\n if (children || type === 'group') {\n if (type === 'group') {\n // Group\n return /*#__PURE__*/React.createElement(MenuItemGroup, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // Sub Menu\n return /*#__PURE__*/React.createElement(SubMenu, _extends({\n key: mergedKey\n }, restProps, {\n title: label\n }), convertItemsToNodes(children));\n }\n\n // MenuItem & Divider\n if (type === 'divider') {\n return /*#__PURE__*/React.createElement(Divider, _extends({\n key: mergedKey\n }, restProps));\n }\n return /*#__PURE__*/React.createElement(MenuItem, _extends({\n key: mergedKey\n }, restProps), label);\n }\n return null;\n }).filter(function (opt) {\n return opt;\n });\n}\nexport function parseItems(children, items, keyPath) {\n var childNodes = children;\n if (items) {\n childNodes = convertItemsToNodes(items);\n }\n return parseChildren(childNodes, keyPath);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getMenuId, IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useAccessibility from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _childList$, _classNames;\n var _ref = props,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n rootClassName = _ref.rootClassName,\n style = _ref.style,\n className = _ref.className,\n _ref$tabIndex = _ref.tabIndex,\n tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n items = _ref.items,\n children = _ref.children,\n direction = _ref.direction,\n id = _ref.id,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n inlineCollapsed = _ref.inlineCollapsed,\n disabled = _ref.disabled,\n disabledOverflow = _ref.disabledOverflow,\n _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n forceSubMenuRender = _ref.forceSubMenuRender,\n defaultOpenKeys = _ref.defaultOpenKeys,\n openKeys = _ref.openKeys,\n activeKey = _ref.activeKey,\n defaultActiveFirst = _ref.defaultActiveFirst,\n _ref$selectable = _ref.selectable,\n selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n _ref$multiple = _ref.multiple,\n multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n defaultSelectedKeys = _ref.defaultSelectedKeys,\n selectedKeys = _ref.selectedKeys,\n onSelect = _ref.onSelect,\n onDeselect = _ref.onDeselect,\n _ref$inlineIndent = _ref.inlineIndent,\n inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n motion = _ref.motion,\n defaultMotions = _ref.defaultMotions,\n _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n builtinPlacements = _ref.builtinPlacements,\n itemIcon = _ref.itemIcon,\n expandIcon = _ref.expandIcon,\n _ref$overflowedIndica = _ref.overflowedIndicator,\n overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n getPopupContainer = _ref.getPopupContainer,\n onClick = _ref.onClick,\n onOpenChange = _ref.onOpenChange,\n onKeyDown = _ref.onKeyDown,\n openAnimation = _ref.openAnimation,\n openTransitionName = _ref.openTransitionName,\n _internalRenderMenuItem = _ref._internalRenderMenuItem,\n _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var childList = React.useMemo(function () {\n return parseItems(children, items, EMPTY_LIST);\n }, [children, items]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mounted = _React$useState2[0],\n setMounted = _React$useState2[1];\n var containerRef = React.useRef();\n var uuid = useUUID(id);\n var isRtl = direction === 'rtl';\n\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n }\n\n // ========================= Open =========================\n var _useMergedState = useMergedState(defaultOpenKeys, {\n value: openKeys,\n postState: function postState(keys) {\n return keys || EMPTY_LIST;\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedOpenKeys = _useMergedState2[0],\n setMergedOpenKeys = _useMergedState2[1];\n\n // React 18 will merge mouse event which means we open key will not sync\n // ref: https://github.com/ant-design/ant-design/issues/38818\n var triggerOpenKeys = function triggerOpenKeys(keys) {\n var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n function doUpdate() {\n setMergedOpenKeys(keys);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);\n }\n if (forceFlush) {\n flushSync(doUpdate);\n } else {\n doUpdate();\n }\n };\n\n // >>>>> Cache & Reset open keys when inlineCollapsed changed\n var _React$useState3 = React.useState(mergedOpenKeys),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n inlineCacheOpenKeys = _React$useState4[0],\n setInlineCacheOpenKeys = _React$useState4[1];\n var mountRef = React.useRef(false);\n\n // ========================= Mode =========================\n var _React$useMemo = React.useMemo(function () {\n if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n return ['vertical', inlineCollapsed];\n }\n return [mode, false];\n }, [mode, inlineCollapsed]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n mergedMode = _React$useMemo2[0],\n mergedInlineCollapsed = _React$useMemo2[1];\n var isInlineMode = mergedMode === 'inline';\n var _React$useState5 = React.useState(mergedMode),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n internalMode = _React$useState6[0],\n setInternalMode = _React$useState6[1];\n var _React$useState7 = React.useState(mergedInlineCollapsed),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n internalInlineCollapsed = _React$useState8[0],\n setInternalInlineCollapsed = _React$useState8[1];\n React.useEffect(function () {\n setInternalMode(mergedMode);\n setInternalInlineCollapsed(mergedInlineCollapsed);\n if (!mountRef.current) {\n return;\n }\n // Synchronously update MergedOpenKeys\n if (isInlineMode) {\n setMergedOpenKeys(inlineCacheOpenKeys);\n } else {\n // Trigger open event in case its in control\n triggerOpenKeys(EMPTY_LIST);\n }\n }, [mergedMode, mergedInlineCollapsed]);\n\n // ====================== Responsive ======================\n var _React$useState9 = React.useState(0),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n lastVisibleIndex = _React$useState10[0],\n setLastVisibleIndex = _React$useState10[1];\n var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n // Cache\n React.useEffect(function () {\n if (isInlineMode) {\n setInlineCacheOpenKeys(mergedOpenKeys);\n }\n }, [mergedOpenKeys]);\n React.useEffect(function () {\n mountRef.current = true;\n return function () {\n mountRef.current = false;\n };\n }, []);\n\n // ========================= Path =========================\n var _useKeyRecords = useKeyRecords(),\n registerPath = _useKeyRecords.registerPath,\n unregisterPath = _useKeyRecords.unregisterPath,\n refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n isSubPathKey = _useKeyRecords.isSubPathKey,\n getKeyPath = _useKeyRecords.getKeyPath,\n getKeys = _useKeyRecords.getKeys,\n getSubPathKeys = _useKeyRecords.getSubPathKeys;\n var registerPathContext = React.useMemo(function () {\n return {\n registerPath: registerPath,\n unregisterPath: unregisterPath\n };\n }, [registerPath, unregisterPath]);\n var pathUserContext = React.useMemo(function () {\n return {\n isSubPathKey: isSubPathKey\n };\n }, [isSubPathKey]);\n React.useEffect(function () {\n refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n return child.key;\n }));\n }, [lastVisibleIndex, allVisible]);\n\n // ======================== Active ========================\n var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n value: activeKey\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedActiveKey = _useMergedState4[0],\n setMergedActiveKey = _useMergedState4[1];\n var onActive = useMemoCallback(function (key) {\n setMergedActiveKey(key);\n });\n var onInactive = useMemoCallback(function () {\n setMergedActiveKey(undefined);\n });\n useImperativeHandle(ref, function () {\n return {\n list: containerRef.current,\n focus: function focus(options) {\n var _childList$find;\n var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : (_childList$find = childList.find(function (node) {\n return !node.props.disabled;\n })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n if (shouldFocusKey) {\n var _containerRef$current, _containerRef$current2, _containerRef$current3;\n (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : (_containerRef$current2 = _containerRef$current.querySelector(\"li[data-menu-id='\".concat(getMenuId(uuid, shouldFocusKey), \"']\"))) === null || _containerRef$current2 === void 0 ? void 0 : (_containerRef$current3 = _containerRef$current2.focus) === null || _containerRef$current3 === void 0 ? void 0 : _containerRef$current3.call(_containerRef$current2, options);\n }\n }\n };\n });\n\n // ======================== Select ========================\n // >>>>> Select keys\n var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n value: selectedKeys,\n // Legacy convert key to array\n postState: function postState(keys) {\n if (Array.isArray(keys)) {\n return keys;\n }\n if (keys === null || keys === undefined) {\n return EMPTY_LIST;\n }\n return [keys];\n }\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedSelectKeys = _useMergedState6[0],\n setMergedSelectKeys = _useMergedState6[1];\n\n // >>>>> Trigger select\n var triggerSelection = function triggerSelection(info) {\n if (selectable) {\n // Insert or Remove\n var targetKey = info.key;\n var exist = mergedSelectKeys.includes(targetKey);\n var newSelectKeys;\n if (multiple) {\n if (exist) {\n newSelectKeys = mergedSelectKeys.filter(function (key) {\n return key !== targetKey;\n });\n } else {\n newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n }\n } else {\n newSelectKeys = [targetKey];\n }\n setMergedSelectKeys(newSelectKeys);\n\n // Trigger event\n var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n selectedKeys: newSelectKeys\n });\n if (exist) {\n onDeselect === null || onDeselect === void 0 ? void 0 : onDeselect(selectInfo);\n } else {\n onSelect === null || onSelect === void 0 ? void 0 : onSelect(selectInfo);\n }\n }\n\n // Whatever selectable, always close it\n if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n triggerOpenKeys(EMPTY_LIST);\n }\n };\n\n // ========================= Open =========================\n /**\n * Click for item. SubMenu do not have selection status\n */\n var onInternalClick = useMemoCallback(function (info) {\n onClick === null || onClick === void 0 ? void 0 : onClick(warnItemProp(info));\n triggerSelection(info);\n });\n var onInternalOpenChange = useMemoCallback(function (key, open) {\n var newOpenKeys = mergedOpenKeys.filter(function (k) {\n return k !== key;\n });\n if (open) {\n newOpenKeys.push(key);\n } else if (internalMode !== 'inline') {\n // We need find all related popup to close\n var subPathKeys = getSubPathKeys(key);\n newOpenKeys = newOpenKeys.filter(function (k) {\n return !subPathKeys.has(k);\n });\n }\n if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n triggerOpenKeys(newOpenKeys, true);\n }\n });\n\n // ==================== Accessibility =====================\n var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n onInternalOpenChange(key, nextOpen);\n };\n var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n // ======================== Effect ========================\n React.useEffect(function () {\n setMounted(true);\n }, []);\n\n // ======================= Context ========================\n var privateContext = React.useMemo(function () {\n return {\n _internalRenderMenuItem: _internalRenderMenuItem,\n _internalRenderSubMenuItem: _internalRenderSubMenuItem\n };\n }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n // ======================== Render ========================\n\n // >>>>> Children\n var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n // Need wrap for overflow dropdown that do not response for open\n childList.map(function (child, index) {\n return (\n /*#__PURE__*/\n // Always wrap provider to avoid sub node re-mount\n React.createElement(MenuContextProvider, {\n key: child.key,\n overflowDisabled: index > lastVisibleIndex\n }, child)\n );\n });\n\n // >>>>> Container\n var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n id: id,\n ref: containerRef,\n prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n component: \"ul\",\n itemComponent: MenuItem,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), isRtl), _classNames), rootClassName),\n dir: direction,\n style: style,\n role: \"menu\",\n tabIndex: tabIndex,\n data: wrappedChildList,\n renderRawItem: function renderRawItem(node) {\n return node;\n },\n renderRawRest: function renderRawRest(omitItems) {\n // We use origin list since wrapped list use context to prevent open\n var len = omitItems.length;\n var originOmitItems = len ? childList.slice(-len) : null;\n return /*#__PURE__*/React.createElement(SubMenu, {\n eventKey: OVERFLOW_KEY,\n title: overflowedIndicator,\n disabled: allVisible,\n internalPopupClose: len === 0,\n popupClassName: overflowedIndicatorPopupClassName\n }, originOmitItems);\n },\n maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n ssr: \"full\",\n \"data-menu-list\": true,\n onVisibleChange: function onVisibleChange(newLastIndex) {\n setLastVisibleIndex(newLastIndex);\n },\n onKeyDown: onInternalKeyDown\n }, restProps));\n\n // >>>>> Render\n return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n value: privateContext\n }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n value: uuid\n }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n mode: internalMode,\n openKeys: mergedOpenKeys,\n rtl: isRtl\n // Disabled\n ,\n disabled: disabled\n // Motion\n ,\n motion: mounted ? motion : null,\n defaultMotions: mounted ? defaultMotions : null\n // Active\n ,\n activeKey: mergedActiveKey,\n onActive: onActive,\n onInactive: onInactive\n // Selection\n ,\n selectedKeys: mergedSelectKeys\n // Level\n ,\n inlineIndent: inlineIndent\n // Popup\n ,\n subMenuOpenDelay: subMenuOpenDelay,\n subMenuCloseDelay: subMenuCloseDelay,\n forceSubMenuRender: forceSubMenuRender,\n builtinPlacements: builtinPlacements,\n triggerSubMenuAction: triggerSubMenuAction,\n getPopupContainer: getPopupContainer\n // Icon\n ,\n itemIcon: itemIcon,\n expandIcon: expandIcon\n // Events\n ,\n onItemClick: onInternalClick,\n onOpenChange: onInternalOpenChange\n }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n value: pathUserContext\n }, container), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'none'\n },\n \"aria-hidden\": true\n }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n value: registerPathContext\n }, childList)))));\n});\nexport default Menu;","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport Dropdown from 'rc-dropdown';\nimport Menu, { MenuItem } from 'rc-menu';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport AddButton from \"./AddButton\";\nimport { getRemovable } from \"../util\";\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName;\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n prefixCls: \"\".concat(dropdownPrefix, \"-menu\"),\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var closable = tab.closable,\n disabled = tab.disabled,\n closeIcon = tab.closeIcon,\n key = tab.key,\n label = tab.label;\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: key,\n id: \"\".concat(popupId, \"-\").concat(key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n disabled: disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, key);\n }\n }, closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n }\n\n // ========================= Effect =========================\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]);\n\n // ========================= Render =========================\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: tabs.length ? open : false,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: classNames(overlayClassName, popupClassName),\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { genDataNodeKey, getRemovable } from \"../util\";\nfunction TabNode(_ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n label = _ref$tab.label,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n var removable = getRemovable(closable, closeIcon, editable, disabled);\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key\n // ref={ref}\n ,\n \"data-node-key\": genDataNodeKey(key),\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, label), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\nexport default TabNode;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport useOffsets from \"../hooks/useOffsets\";\nimport useSyncState from \"../hooks/useSyncState\";\nimport useTouchMove from \"../hooks/useTouchMove\";\nimport useUpdate, { useUpdateState } from \"../hooks/useUpdate\";\nimport useVisibleRange from \"../hooks/useVisibleRange\";\nimport TabContext from \"../TabContext\";\nimport { genDataNodeKey, stringify } from \"../util\";\nimport AddButton from \"./AddButton\";\nimport ExtraContent from \"./ExtraContent\";\nimport OperationNode from \"./OperationNode\";\nimport TabNode from \"./TabNode\";\nvar getSize = function getSize(refObj) {\n var _ref = refObj.current || {},\n _ref$offsetWidth = _ref.offsetWidth,\n offsetWidth = _ref$offsetWidth === void 0 ? 0 : _ref$offsetWidth,\n _ref$offsetHeight = _ref.offsetHeight,\n offsetHeight = _ref$offsetHeight === void 0 ? 0 : _ref$offsetHeight;\n return [offsetWidth, offsetHeight];\n};\n\n/**\n * Convert `SizeInfo` to unit value. Such as [123, 456] with `top` position get `123`\n */\nvar getUnitValue = function getUnitValue(size, tabPositionTopOrBottom) {\n return size[tabPositionTopOrBottom ? 0 : 1];\n};\nfunction TabNavList(props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var containerRef = useRef();\n var extraLeftRef = useRef();\n var extraRightRef = useRef();\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n // const [getBtnRef, removeBtnRef] = useRefs();\n\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState([0, 0]),\n _useState2 = _slicedToArray(_useState, 2),\n containerExcludeExtraSize = _useState2[0],\n setContainerExcludeExtraSize = _useState2[1];\n var _useState3 = useState([0, 0]),\n _useState4 = _slicedToArray(_useState3, 2),\n tabContentSize = _useState4[0],\n setTabContentSize = _useState4[1];\n var _useState5 = useState([0, 0]),\n _useState6 = _slicedToArray(_useState5, 2),\n addSize = _useState6[0],\n setAddSize = _useState6[1];\n var _useState7 = useState([0, 0]),\n _useState8 = _slicedToArray(_useState7, 2),\n operationSize = _useState8[0],\n setOperationSize = _useState8[1];\n var _useUpdateState = useUpdateState(new Map()),\n _useUpdateState2 = _slicedToArray(_useUpdateState, 2),\n tabSizes = _useUpdateState2[0],\n setTabSizes = _useUpdateState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, tabContentSize[0]);\n\n // ========================== Unit =========================\n var containerExcludeExtraSizeValue = getUnitValue(containerExcludeExtraSize, tabPositionTopOrBottom);\n var tabContentSizeValue = getUnitValue(tabContentSize, tabPositionTopOrBottom);\n var addSizeValue = getUnitValue(addSize, tabPositionTopOrBottom);\n var operationSizeValue = getUnitValue(operationSize, tabPositionTopOrBottom);\n var needScroll = containerExcludeExtraSizeValue < tabContentSizeValue + addSizeValue;\n var visibleTabContentValue = needScroll ? containerExcludeExtraSizeValue - operationSizeValue : containerExcludeExtraSizeValue - addSizeValue;\n\n // ========================== Util =========================\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, tabContentSizeValue - visibleTabContentValue);\n } else {\n transformMin = Math.min(0, visibleTabContentValue - tabContentSizeValue);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n }\n\n // ========================= Mobile ========================\n var touchMovingRef = useRef();\n var _useState9 = useState(),\n _useState10 = _slicedToArray(_useState9, 2),\n lockAnimation = _useState10[0],\n setLockAnimation = _useState10[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n\n // Skip scroll if place is enough\n if (!needScroll) {\n return false;\n }\n if (tabPositionTopOrBottom) {\n doMove(setTransformLeft, offsetX);\n } else {\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]);\n\n // ===================== Visible Range =====================\n // Render tab node & collect tab offset\n var _useVisibleRange = useVisibleRange(tabOffsets,\n // Container\n visibleTabContentValue,\n // Transform\n tabPositionTopOrBottom ? transformLeft : transformTop,\n // Tabs\n tabContentSizeValue,\n // Add\n addSizeValue,\n // Operation\n operationSizeValue, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n\n // ========================= Scroll ========================\n var scrollToTab = useEvent(function () {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft;\n\n // RTL\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + visibleTabContentValue) {\n newTransform = tabOffset.right + tabOffset.width - visibleTabContentValue;\n }\n }\n // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + visibleTabContentValue) {\n newTransform = -(tabOffset.left + tabOffset.width - visibleTabContentValue);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + visibleTabContentValue) {\n _newTransform = -(tabOffset.top + tabOffset.height - visibleTabContentValue);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n });\n\n // ========================== Tab ==========================\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n }\n // Focus element will make scrollLeft change which we should reset back\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n\n // Update buttons records\n var updateTabSizes = function updateTabSizes() {\n return setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var _tabListRef$current;\n var key = _ref2.key;\n var btnNode = (_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.querySelector(\"[data-node-key=\\\"\".concat(genDataNodeKey(key), \"\\\"]\"));\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n };\n useEffect(function () {\n updateTabSizes();\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_')]);\n var onListHolderResize = useUpdate(function () {\n // Update wrapper records\n var containerSize = getSize(containerRef);\n var extraLeftSize = getSize(extraLeftRef);\n var extraRightSize = getSize(extraRightRef);\n setContainerExcludeExtraSize([containerSize[0] - extraLeftSize[0] - extraRightSize[0], containerSize[1] - extraLeftSize[1] - extraRightSize[1]]);\n var newAddSize = getSize(innerAddButtonRef);\n setAddSize(newAddSize);\n var newOperationSize = getSize(operationsRef);\n setOperationSize(newOperationSize);\n\n // Which includes add button size\n var tabContentFullSize = getSize(tabListRef);\n setTabContentSize([tabContentFullSize[0] - newAddSize[0], tabContentFullSize[1] - newAddSize[1]]);\n\n // Update buttons records\n updateTabSizes();\n });\n\n // ======================== Dropdown =======================\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs));\n\n // =================== Link & Operations ===================\n var _useState11 = useState(),\n _useState12 = _slicedToArray(_useState11, 2),\n inkStyle = _useState12[0],\n setInkStyle = _useState12[1];\n var activeTabOffset = tabOffsets.get(activeKey);\n\n // Delay set ink style to avoid remove tab blink\n var inkBarRafRef = useRef();\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]);\n\n // ========================= Effect ========================\n useEffect(function () {\n scrollToTab();\n // eslint-disable-next-line\n }, [activeKey, transformMin, transformMax, stringify(activeTabOffset), stringify(tabOffsets), tabPositionTopOrBottom]);\n\n // Should recalculate when rtl changed\n useEffect(function () {\n onListHolderResize();\n // eslint-disable-next-line\n }, [rtl]);\n\n // ========================= Render ========================\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft !== transformMax;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = transformLeft !== transformMin;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = transformTop !== transformMin;\n }\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: useComposeRef(ref, containerRef),\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraLeftRef,\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n })))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n ref: extraRightRef,\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n })));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"renderTabBar\"],\n _excluded2 = [\"label\", \"key\"];\n// zombieJ: To compatible with `renderTabBar` usage.\n\nimport * as React from 'react';\nimport TabNavList from '.';\nimport TabContext from \"../TabContext\";\nimport TabPane from \"../TabPanelList/TabPane\";\n// We have to create a TabNavList components.\nexport default function TabNavListWrapper(_ref) {\n var renderTabBar = _ref.renderTabBar,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var _React$useContext = React.useContext(TabContext),\n tabs = _React$useContext.tabs;\n if (renderTabBar) {\n var tabNavBarProps = _objectSpread(_objectSpread({}, restProps), {}, {\n // Legacy support. We do not use this actually\n panes: tabs.map(function (_ref2) {\n var label = _ref2.label,\n key = _ref2.key,\n restTabProps = _objectWithoutProperties(_ref2, _excluded2);\n return /*#__PURE__*/React.createElement(TabPane, _extends({\n tab: label,\n key: key,\n tabKey: key\n }, restTabProps));\n })\n });\n return renderTabBar(tabNavBarProps, TabNavList);\n }\n return /*#__PURE__*/React.createElement(TabNavList, restProps);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"items\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\", \"getPopupContainer\", \"popupClassName\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabPanelList from \"./TabPanelList\";\nimport TabContext from \"./TabContext\";\nimport TabNavListWrapper from \"./TabNavList/Wrapper\";\nimport useAnimateConfig from \"./hooks/useAnimateConfig\";\n\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n\n// Used for accessibility\nvar uuid = 0;\nfunction Tabs(_ref, ref) {\n var _classNames;\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n items = _ref.items,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n animated = _ref.animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n getPopupContainer = _ref.getPopupContainer,\n popupClassName = _ref.popupClassName,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var tabs = React.useMemo(function () {\n return (items || []).filter(function (item) {\n return item && _typeof(item) === 'object' && 'key' in item;\n });\n }, [items]);\n var rtl = direction === 'rtl';\n var mergedAnimated = useAnimateConfig(animated);\n\n // ======================== Mobile ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []);\n\n // ====================== Active Key ======================\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1];\n\n // Reset active key if not exist anymore\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]);\n\n // ===================== Accessibility ====================\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n\n // Async generate id to avoid ssr mapping failed\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []);\n\n // ======================== Events ========================\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n }\n\n // ======================== Render ========================\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: tabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: null,\n getPopupContainer: getPopupContainer,\n popupClassName: popupClassName\n });\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(tabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabNavListWrapper, _extends({}, tabNavBarProps, {\n renderTabBar: renderTabBar\n })), /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nif (process.env.NODE_ENV !== 'production') {\n ForwardTabs.displayName = 'Tabs';\n}\nexport default ForwardTabs;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nexport default function useAnimateConfig() {\n var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n inkBar: true,\n tabPane: false\n };\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: false\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true\n }, _typeof(animated) === 'object' ? animated : {});\n }\n\n // Enable tabPane animation if provide motion\n if (mergedAnimated.tabPaneMotion && mergedAnimated.tabPane === undefined) {\n mergedAnimated.tabPane = true;\n }\n if (!mergedAnimated.tabPaneMotion && mergedAnimated.tabPane) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`animated.tabPane` is true but `animated.tabPaneMotion` is not provided. Motion will not work.');\n }\n mergedAnimated.tabPane = false;\n }\n return mergedAnimated;\n}","import Tabs from \"./Tabs\";\nexport default Tabs;","const TabPane = () => null;\nif (process.env.NODE_ENV !== 'production') {\n TabPane.displayName = 'DeprecatedTabPane';\n}\nexport default TabPane;","import { getTransitionName } from '../../_util/motion';\nconst motion = {\n motionAppear: false,\n motionEnter: true,\n motionLeave: true\n};\nexport default function useAnimateConfig(prefixCls) {\n let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n inkBar: true,\n tabPane: false\n };\n let mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = Object.assign({\n inkBar: true\n }, typeof animated === 'object' ? animated : {});\n }\n if (mergedAnimated.tabPane) {\n mergedAnimated.tabPaneMotion = Object.assign(Object.assign({}, motion), {\n motionName: getTransitionName(prefixCls, 'switch')\n });\n }\n return mergedAnimated;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from '../../_util/warning';\nfunction filter(items) {\n return items.filter(item => item);\n}\nexport default function useLegacyItems(items, children) {\n if (items) {\n return items;\n }\n process.env.NODE_ENV !== \"production\" ? warning(!children, 'Tabs', 'Tabs.TabPane is deprecated. Please use `items` directly.') : void 0;\n const childrenItems = toArray(children).map(node => {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n const {\n key,\n props\n } = node;\n const _a = props || {},\n {\n tab\n } = _a,\n restProps = __rest(_a, [\"tab\"]);\n const item = Object.assign(Object.assign({\n key: String(key)\n }, restProps), {\n label: tab\n });\n return item;\n }\n return null;\n });\n return filter(childrenItems);\n}","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n '0%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n '0%': {\n transform: 'scaleY(1)',\n transformOrigin: '100% 100%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleY(0.8)',\n transformOrigin: '100% 100%',\n opacity: 0\n }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '0% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '0% 0%',\n opacity: 0\n }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n '0%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n },\n '100%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n '0%': {\n transform: 'scaleX(1)',\n transformOrigin: '100% 0%',\n opacity: 1\n },\n '100%': {\n transform: 'scaleX(0.8)',\n transformOrigin: '100% 0%',\n opacity: 0\n }\n});\nconst slideMotion = {\n 'slide-up': {\n inKeyframes: slideUpIn,\n outKeyframes: slideUpOut\n },\n 'slide-down': {\n inKeyframes: slideDownIn,\n outKeyframes: slideDownOut\n },\n 'slide-left': {\n inKeyframes: slideLeftIn,\n outKeyframes: slideLeftOut\n },\n 'slide-right': {\n inKeyframes: slideRightIn,\n outKeyframes: slideRightOut\n }\n};\nexport const initSlideMotion = (token, motionName) => {\n const {\n antCls\n } = token;\n const motionCls = `${antCls}-${motionName}`;\n const {\n inKeyframes,\n outKeyframes\n } = slideMotion[motionName];\n return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n [`\n ${motionCls}-enter,\n ${motionCls}-appear\n `]: {\n transform: 'scale(0)',\n transformOrigin: '0% 0%',\n opacity: 0,\n animationTimingFunction: token.motionEaseOutQuint,\n [`&-prepare`]: {\n transform: 'scale(1)'\n }\n },\n [`${motionCls}-leave`]: {\n animationTimingFunction: token.motionEaseInQuint\n }\n }];\n};","import { initSlideMotion } from '../../style/motion';\nconst genMotionStyle = token => {\n const {\n componentCls,\n motionDurationSlow\n } = token;\n return [{\n [componentCls]: {\n [`${componentCls}-switch`]: {\n '&-appear, &-enter': {\n transition: 'none',\n '&-start': {\n opacity: 0\n },\n '&-active': {\n opacity: 1,\n transition: `opacity ${motionDurationSlow}`\n }\n },\n '&-leave': {\n position: 'absolute',\n transition: 'none',\n inset: 0,\n '&-start': {\n opacity: 1\n },\n '&-active': {\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`\n }\n }\n }\n }\n },\n // Follow code may reuse in other components\n [initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down')]];\n};\nexport default genMotionStyle;","import { genFocusStyle, resetComponent, textEllipsis } from '../../style';\nimport { genComponentStyleHook, mergeToken } from '../../theme/internal';\nimport genMotionStyle from './motion';\nconst genCardStyle = token => {\n const {\n componentCls,\n tabsCardPadding,\n cardBg,\n cardGutter,\n colorBorderSecondary,\n itemSelectedColor\n } = token;\n return {\n [`${componentCls}-card`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: 0,\n padding: tabsCardPadding,\n background: cardBg,\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`\n },\n [`${componentCls}-tab-active`]: {\n color: itemSelectedColor,\n background: token.colorBgContainer\n },\n [`${componentCls}-ink-bar`]: {\n visibility: 'hidden'\n }\n },\n // ========================== Top & Bottom ==========================\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginLeft: {\n _skip_check_: true,\n value: `${cardGutter}px`\n }\n }\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`\n },\n [`${componentCls}-tab-active`]: {\n borderBottomColor: token.colorBgContainer\n }\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px`\n },\n [`${componentCls}-tab-active`]: {\n borderTopColor: token.colorBgContainer\n }\n }\n },\n // ========================== Left & Right ==========================\n [`&${componentCls}-left, &${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginTop: `${cardGutter}px`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadiusLG}px 0 0 ${token.borderRadiusLG}px`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderRightColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0`\n }\n },\n [`${componentCls}-tab-active`]: {\n borderLeftColor: {\n _skip_check_: true,\n value: token.colorBgContainer\n }\n }\n }\n }\n }\n };\n};\nconst genDropdownStyle = token => {\n const {\n componentCls,\n itemHoverColor,\n dropdownEdgeChildVerticalPadding\n } = token;\n return {\n [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'absolute',\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: token.zIndexPopup,\n display: 'block',\n '&-hidden': {\n display: 'none'\n },\n [`${componentCls}-dropdown-menu`]: {\n maxHeight: token.tabsDropdownHeight,\n margin: 0,\n padding: `${dropdownEdgeChildVerticalPadding}px 0`,\n overflowX: 'hidden',\n overflowY: 'auto',\n textAlign: {\n _skip_check_: true,\n value: 'left'\n },\n listStyleType: 'none',\n backgroundColor: token.colorBgContainer,\n backgroundClip: 'padding-box',\n borderRadius: token.borderRadiusLG,\n outline: 'none',\n boxShadow: token.boxShadowSecondary,\n '&-item': Object.assign(Object.assign({}, textEllipsis), {\n display: 'flex',\n alignItems: 'center',\n minWidth: token.tabsDropdownWidth,\n margin: 0,\n padding: `${token.paddingXXS}px ${token.paddingSM}px`,\n color: token.colorText,\n fontWeight: 'normal',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '> span': {\n flex: 1,\n whiteSpace: 'nowrap'\n },\n '&-remove': {\n flex: 'none',\n marginLeft: {\n _skip_check_: true,\n value: token.marginSM\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n '&:hover': {\n color: itemHoverColor\n }\n },\n '&:hover': {\n background: token.controlItemBgHover\n },\n '&-disabled': {\n '&, &:hover': {\n color: token.colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n })\n }\n })\n };\n};\nconst genPositionStyle = token => {\n const {\n componentCls,\n margin,\n colorBorderSecondary,\n horizontalMargin,\n verticalItemPadding,\n verticalItemMargin\n } = token;\n return {\n // ========================== Top & Bottom ==========================\n [`${componentCls}-top, ${componentCls}-bottom`]: {\n flexDirection: 'column',\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n margin: horizontalMargin,\n '&::before': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n borderBottom: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n content: \"''\"\n },\n [`${componentCls}-ink-bar`]: {\n height: token.lineWidthBold,\n '&-animated': {\n transition: `width ${token.motionDurationSlow}, left ${token.motionDurationSlow},\n right ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-wrap`]: {\n '&::before, &::after': {\n top: 0,\n bottom: 0,\n width: token.controlHeight\n },\n '&::before': {\n left: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowLeft\n },\n '&::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n boxShadow: token.boxShadowTabsOverflowRight\n },\n [`&${componentCls}-nav-wrap-ping-left::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-right::after`]: {\n opacity: 1\n }\n }\n }\n },\n [`${componentCls}-top`]: {\n [`> ${componentCls}-nav,\n > div > ${componentCls}-nav`]: {\n '&::before': {\n bottom: 0\n },\n [`${componentCls}-ink-bar`]: {\n bottom: 0\n }\n }\n },\n [`${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n marginTop: `${margin}px`,\n marginBottom: 0,\n '&::before': {\n top: 0\n },\n [`${componentCls}-ink-bar`]: {\n top: 0\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n // ========================== Left & Right ==========================\n [`${componentCls}-left, ${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n flexDirection: 'column',\n minWidth: token.controlHeight * 1.25,\n // >>>>>>>>>>> Tab\n [`${componentCls}-tab`]: {\n padding: verticalItemPadding,\n textAlign: 'center'\n },\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n margin: verticalItemMargin\n },\n // >>>>>>>>>>> Nav\n [`${componentCls}-nav-wrap`]: {\n flexDirection: 'column',\n '&::before, &::after': {\n right: {\n _skip_check_: true,\n value: 0\n },\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeight\n },\n '&::before': {\n top: 0,\n boxShadow: token.boxShadowTabsOverflowTop\n },\n '&::after': {\n bottom: 0,\n boxShadow: token.boxShadowTabsOverflowBottom\n },\n [`&${componentCls}-nav-wrap-ping-top::before`]: {\n opacity: 1\n },\n [`&${componentCls}-nav-wrap-ping-bottom::after`]: {\n opacity: 1\n }\n },\n // >>>>>>>>>>> Ink Bar\n [`${componentCls}-ink-bar`]: {\n width: token.lineWidthBold,\n '&-animated': {\n transition: `height ${token.motionDurationSlow}, top ${token.motionDurationSlow}`\n }\n },\n [`${componentCls}-nav-list, ${componentCls}-nav-operations`]: {\n flex: '1 0 auto',\n flexDirection: 'column'\n }\n }\n },\n [`${componentCls}-left`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-ink-bar`]: {\n right: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n marginLeft: {\n _skip_check_: true,\n value: `-${token.lineWidth}px`\n },\n borderLeft: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingLeft: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n },\n [`${componentCls}-right`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n order: 1,\n [`${componentCls}-ink-bar`]: {\n left: {\n _skip_check_: true,\n value: 0\n }\n }\n },\n [`> ${componentCls}-content-holder, > div > ${componentCls}-content-holder`]: {\n order: 0,\n marginRight: {\n _skip_check_: true,\n value: -token.lineWidth\n },\n borderRight: {\n _skip_check_: true,\n value: `${token.lineWidth}px ${token.lineType} ${token.colorBorder}`\n },\n [`> ${componentCls}-content > ${componentCls}-tabpane`]: {\n paddingRight: {\n _skip_check_: true,\n value: token.paddingLG\n }\n }\n }\n }\n };\n};\nconst genSizeStyle = token => {\n const {\n componentCls,\n cardPaddingSM,\n cardPaddingLG,\n horizontalItemPaddingSM,\n horizontalItemPaddingLG\n } = token;\n return {\n [componentCls]: {\n '&-small': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: horizontalItemPaddingSM,\n fontSize: token.titleFontSizeSM\n }\n }\n },\n '&-large': {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: horizontalItemPaddingLG,\n fontSize: token.titleFontSizeLG\n }\n }\n }\n },\n [`${componentCls}-card`]: {\n [`&${componentCls}-small`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: cardPaddingSM\n }\n },\n [`&${componentCls}-bottom`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `0 0 ${token.borderRadius}px ${token.borderRadius}px`\n }\n },\n [`&${componentCls}-top`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: `${token.borderRadius}px ${token.borderRadius}px 0 0`\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `0 ${token.borderRadius}px ${token.borderRadius}px 0`\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav ${componentCls}-tab`]: {\n borderRadius: {\n _skip_check_: true,\n value: `${token.borderRadius}px 0 0 ${token.borderRadius}px`\n }\n }\n }\n },\n [`&${componentCls}-large`]: {\n [`> ${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n padding: cardPaddingLG\n }\n }\n }\n }\n };\n};\nconst genTabStyle = token => {\n const {\n componentCls,\n itemActiveColor,\n itemHoverColor,\n iconCls,\n tabsHorizontalItemMargin,\n horizontalItemPadding,\n itemSelectedColor\n } = token;\n const tabCls = `${componentCls}-tab`;\n return {\n [tabCls]: {\n position: 'relative',\n WebkitTouchCallout: 'none',\n WebkitTapHighlightColor: 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n padding: horizontalItemPadding,\n fontSize: token.titleFontSize,\n background: 'transparent',\n border: 0,\n outline: 'none',\n cursor: 'pointer',\n '&-btn, &-remove': Object.assign({\n '&:focus:not(:focus-visible), &:active': {\n color: itemActiveColor\n }\n }, genFocusStyle(token)),\n '&-btn': {\n outline: 'none',\n transition: 'all 0.3s'\n },\n '&-remove': {\n flex: 'none',\n marginRight: {\n _skip_check_: true,\n value: -token.marginXXS\n },\n marginLeft: {\n _skip_check_: true,\n value: token.marginXS\n },\n color: token.colorTextDescription,\n fontSize: token.fontSizeSM,\n background: 'transparent',\n border: 'none',\n outline: 'none',\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n '&:hover': {\n color: itemHoverColor\n },\n [`&${tabCls}-active ${tabCls}-btn`]: {\n color: itemSelectedColor,\n textShadow: token.tabsActiveTextShadow\n },\n [`&${tabCls}-disabled`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${tabCls}-disabled ${tabCls}-btn, &${tabCls}-disabled ${componentCls}-remove`]: {\n '&:focus, &:active': {\n color: token.colorTextDisabled\n }\n },\n [`& ${tabCls}-remove ${iconCls}`]: {\n margin: 0\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: token.marginSM\n }\n }\n },\n [`${tabCls} + ${tabCls}`]: {\n margin: {\n _skip_check_: true,\n value: tabsHorizontalItemMargin\n }\n }\n };\n};\nconst genRtlStyle = token => {\n const {\n componentCls,\n tabsHorizontalItemMarginRTL,\n iconCls,\n cardGutter\n } = token;\n const rtlCls = `${componentCls}-rtl`;\n return {\n [rtlCls]: {\n direction: 'rtl',\n [`${componentCls}-nav`]: {\n [`${componentCls}-tab`]: {\n margin: {\n _skip_check_: true,\n value: tabsHorizontalItemMarginRTL\n },\n [`${componentCls}-tab:last-of-type`]: {\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n },\n [iconCls]: {\n marginRight: {\n _skip_check_: true,\n value: 0\n },\n marginLeft: {\n _skip_check_: true,\n value: `${token.marginSM}px`\n }\n },\n [`${componentCls}-tab-remove`]: {\n marginRight: {\n _skip_check_: true,\n value: `${token.marginXS}px`\n },\n marginLeft: {\n _skip_check_: true,\n value: `-${token.marginXXS}px`\n },\n [iconCls]: {\n margin: 0\n }\n }\n }\n },\n [`&${componentCls}-left`]: {\n [`> ${componentCls}-nav`]: {\n order: 1\n },\n [`> ${componentCls}-content-holder`]: {\n order: 0\n }\n },\n [`&${componentCls}-right`]: {\n [`> ${componentCls}-nav`]: {\n order: 0\n },\n [`> ${componentCls}-content-holder`]: {\n order: 1\n }\n },\n // ====================== Card ======================\n [`&${componentCls}-card${componentCls}-top, &${componentCls}-card${componentCls}-bottom`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-tab + ${componentCls}-tab`]: {\n marginRight: {\n _skip_check_: true,\n value: cardGutter\n },\n marginLeft: {\n _skip_check_: true,\n value: 0\n }\n }\n }\n }\n },\n [`${componentCls}-dropdown-rtl`]: {\n direction: 'rtl'\n },\n [`${componentCls}-menu-item`]: {\n [`${componentCls}-dropdown-rtl`]: {\n textAlign: {\n _skip_check_: true,\n value: 'right'\n }\n }\n }\n };\n};\nconst genTabsStyle = token => {\n const {\n componentCls,\n tabsCardPadding,\n cardHeight,\n cardGutter,\n itemHoverColor,\n itemActiveColor,\n colorBorderSecondary\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'flex',\n // ========================== Navigation ==========================\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n position: 'relative',\n display: 'flex',\n flex: 'none',\n alignItems: 'center',\n [`${componentCls}-nav-wrap`]: {\n position: 'relative',\n display: 'flex',\n flex: 'auto',\n alignSelf: 'stretch',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n transform: 'translate(0)',\n // >>>>> Ping shadow\n '&::before, &::after': {\n position: 'absolute',\n zIndex: 1,\n opacity: 0,\n transition: `opacity ${token.motionDurationSlow}`,\n content: \"''\",\n pointerEvents: 'none'\n }\n },\n [`${componentCls}-nav-list`]: {\n position: 'relative',\n display: 'flex',\n transition: `opacity ${token.motionDurationSlow}`\n },\n // >>>>>>>> Operations\n [`${componentCls}-nav-operations`]: {\n display: 'flex',\n alignSelf: 'stretch'\n },\n [`${componentCls}-nav-operations-hidden`]: {\n position: 'absolute',\n visibility: 'hidden',\n pointerEvents: 'none'\n },\n [`${componentCls}-nav-more`]: {\n position: 'relative',\n padding: tabsCardPadding,\n background: 'transparent',\n border: 0,\n color: token.colorText,\n '&::after': {\n position: 'absolute',\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: 0,\n left: {\n _skip_check_: true,\n value: 0\n },\n height: token.controlHeightLG / 8,\n transform: 'translateY(100%)',\n content: \"''\"\n }\n },\n [`${componentCls}-nav-add`]: Object.assign({\n minWidth: cardHeight,\n marginLeft: {\n _skip_check_: true,\n value: cardGutter\n },\n padding: `0 ${token.paddingXS}px`,\n background: 'transparent',\n border: `${token.lineWidth}px ${token.lineType} ${colorBorderSecondary}`,\n borderRadius: `${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0`,\n outline: 'none',\n cursor: 'pointer',\n color: token.colorText,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n '&:hover': {\n color: itemHoverColor\n },\n '&:active, &:focus:not(:focus-visible)': {\n color: itemActiveColor\n }\n }, genFocusStyle(token))\n },\n [`${componentCls}-extra-content`]: {\n flex: 'none'\n },\n // ============================ InkBar ============================\n [`${componentCls}-ink-bar`]: {\n position: 'absolute',\n background: token.inkBarColor,\n pointerEvents: 'none'\n }\n }), genTabStyle(token)), {\n // =========================== TabPanes ===========================\n [`${componentCls}-content`]: {\n position: 'relative',\n width: '100%'\n },\n [`${componentCls}-content-holder`]: {\n flex: 'auto',\n minWidth: 0,\n minHeight: 0\n },\n [`${componentCls}-tabpane`]: {\n outline: 'none',\n '&-hidden': {\n display: 'none'\n }\n }\n }),\n [`${componentCls}-centered`]: {\n [`> ${componentCls}-nav, > div > ${componentCls}-nav`]: {\n [`${componentCls}-nav-wrap`]: {\n [`&:not([class*='${componentCls}-nav-wrap-ping'])`]: {\n justifyContent: 'center'\n }\n }\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genComponentStyleHook('Tabs', token => {\n const tabsToken = mergeToken(token, {\n // `cardPadding` is empty by default, so we could calculate with dynamic `cardHeight`\n tabsCardPadding: token.cardPadding || `${(token.cardHeight - Math.round(token.fontSize * token.lineHeight)) / 2 - token.lineWidth}px ${token.padding}px`,\n dropdownEdgeChildVerticalPadding: token.paddingXXS,\n tabsActiveTextShadow: '0 0 0.25px currentcolor',\n tabsDropdownHeight: 200,\n tabsDropdownWidth: 120,\n tabsHorizontalItemMargin: `0 0 0 ${token.horizontalItemGutter}px`,\n tabsHorizontalItemMarginRTL: `0 0 0 ${token.horizontalItemGutter}px`\n });\n return [genSizeStyle(tabsToken), genRtlStyle(tabsToken), genPositionStyle(tabsToken), genDropdownStyle(tabsToken), genCardStyle(tabsToken), genTabsStyle(tabsToken), genMotionStyle(tabsToken)];\n}, token => {\n const cardHeight = token.controlHeightLG;\n return {\n zIndexPopup: token.zIndexPopupBase + 50,\n cardBg: token.colorFillAlter,\n cardHeight,\n // Initialize with empty string, because cardPadding will be calculated with cardHeight by default.\n cardPadding: ``,\n cardPaddingSM: `${token.paddingXXS * 1.5}px ${token.padding}px`,\n cardPaddingLG: `${token.paddingXS}px ${token.padding}px ${token.paddingXXS * 1.5}px`,\n titleFontSize: token.fontSize,\n titleFontSizeLG: token.fontSizeLG,\n titleFontSizeSM: token.fontSize,\n inkBarColor: token.colorPrimary,\n horizontalMargin: `0 0 ${token.margin}px 0`,\n horizontalItemGutter: 32,\n // Initialize with empty string, because horizontalItemMargin will be calculated with horizontalItemGutter by default.\n horizontalItemMargin: ``,\n horizontalItemMarginRTL: ``,\n horizontalItemPadding: `${token.paddingSM}px 0`,\n horizontalItemPaddingSM: `${token.paddingXS}px 0`,\n horizontalItemPaddingLG: `${token.padding}px 0`,\n verticalItemPadding: `${token.paddingXS}px ${token.paddingLG}px`,\n verticalItemMargin: `${token.margin}px 0 0 0`,\n itemSelectedColor: token.colorPrimary,\n itemHoverColor: token.colorPrimaryHover,\n itemActiveColor: token.colorPrimaryActive,\n cardGutter: token.marginXXS / 2\n };\n});","'use client';\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport classNames from 'classnames';\nimport RcTabs from 'rc-tabs';\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport TabPane from './TabPane';\nimport useAnimateConfig from './hooks/useAnimateConfig';\nimport useLegacyItems from './hooks/useLegacyItems';\nimport useStyle from './style';\nconst Tabs = props => {\n const {\n type,\n className,\n rootClassName,\n size: customSize,\n onEdit,\n hideAdd,\n centered,\n addIcon,\n popupClassName,\n children,\n items,\n animated,\n style\n } = props,\n otherProps = __rest(props, [\"type\", \"className\", \"rootClassName\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\", \"popupClassName\", \"children\", \"items\", \"animated\", \"style\"]);\n const {\n prefixCls: customizePrefixCls,\n moreIcon = /*#__PURE__*/React.createElement(EllipsisOutlined, null)\n } = otherProps;\n const {\n direction,\n tabs,\n getPrefixCls,\n getPopupContainer\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('tabs', customizePrefixCls);\n const [wrapSSR, hashId] = useStyle(prefixCls);\n let editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: (editType, _ref) => {\n let {\n key,\n event\n } = _ref;\n onEdit === null || onEdit === void 0 ? void 0 : onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n const rootPrefixCls = getPrefixCls();\n process.env.NODE_ENV !== \"production\" ? warning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.') : void 0;\n const mergedItems = useLegacyItems(items, children);\n const mergedAnimated = useAnimateConfig(prefixCls, animated);\n const size = useSize(customSize);\n const mergedStyle = Object.assign(Object.assign({}, tabs === null || tabs === void 0 ? void 0 : tabs.style), style);\n return wrapSSR( /*#__PURE__*/React.createElement(RcTabs, Object.assign({\n direction: direction,\n getPopupContainer: getPopupContainer,\n moreTransitionName: `${rootPrefixCls}-slide-up`\n }, otherProps, {\n items: mergedItems,\n className: classNames({\n [`${prefixCls}-${size}`]: size,\n [`${prefixCls}-card`]: ['card', 'editable-card'].includes(type),\n [`${prefixCls}-editable-card`]: type === 'editable-card',\n [`${prefixCls}-centered`]: centered\n }, tabs === null || tabs === void 0 ? void 0 : tabs.className, className, rootClassName, hashId),\n popupClassName: classNames(popupClassName, hashId),\n style: mergedStyle,\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls,\n animated: mergedAnimated\n })));\n};\nTabs.TabPane = TabPane;\nif (process.env.NODE_ENV !== 'production') {\n Tabs.displayName = 'Tabs';\n}\nexport default Tabs;","import {Link} from 'react-router-dom'\r\n\r\nconst ReportsPage = () => {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n FINANCE REPORTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n PROJECTS REPORTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n INVENTORY REPORTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n CONTRACTOR PORTAL REPORTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n HR PAYROLL REPORTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ReportsPage;","import {Link} from 'react-router-dom'\r\n\r\nconst DashboardsPage = () => {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n FINANCE\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n PROJECTS\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n INVENTORY\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n CONTRACTOR PORTAL\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n HR PAYROLL\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default DashboardsPage;","export const CustomStyle = {\n paddingLeft: \"20px\",\n marginLeft: \"-26px\",\n marginRight: \"-25px\",\n}\n\nexport const CustomBreadCrumStyle = {\n paddingLeft: \"20px\",\n marginLeft: \"-26px\",\n marginRight: \"-25px\",\n display: \"flex\",\n}\n\nexport const CustomClassName = \"bg-white pt-10\"\n","import {Tabs, TabsProps} from 'antd'\nimport ReportsPage from './reports/ReportsPage'\nimport DashboardsPage from './dashboards/DashboardsPage'\nimport {CustomStyle} from '../constants/CustomStyles'\n\nconst MainLandingPage = () => {\n const tabItems: TabsProps['items'] = [\n {\n\n label: 'REPORTS',\n key: '1',\n children: [\n ,\n ]\n },\n {\n label: 'DASHBOARDS',\n key: '2',\n children: [\n ,\n ],\n },\n ]\n\n return (\n
\n \n
\n );\n}\n\nexport default MainLandingPage;","import {CustomBreadCrumStyle, CustomClassName, CustomStyle} from './CustomStyles'\nimport {ReactNode} from 'react'\nimport {Link, useNavigate} from 'react-router-dom'\n\n\ntype CustomBreadCrumbProps = {\n title: string;\n button?: string;\n isDashboard: boolean;\n isReport: boolean;\n}\ntype CustomReportBreadcrumbProps = {\n title: string;\n button?: string;\n}\nconst CustomBreadCrumb = ({ button, title, isDashboard, isReport}:CustomBreadCrumbProps) => {\n const navigate = useNavigate()\n return (\n \n \n {title}\n \n \n |\n \n {\n isReport ?\n navigate(-1)}>Go Back\n :\n \n \n {isDashboard ? 'DASHBOARDS' : 'REPORTS'}\n \n \n\n }\n\n\n
\n );\n}\n\n\nexport default CustomBreadCrumb\n","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n // eslint-disable-next-line react/display-name\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function Fa500Px (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAccessibleIcon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAccusoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAcquisitionsIncorporated (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdversal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAffiliatetheme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"},\"child\":[]}]})(props);\n};\nexport function FaAirbnb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAlgolia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAmilia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"},\"child\":[]}]})(props);\n};\nexport function FaAngellist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngrycreative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStoreIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"},\"child\":[]}]})(props);\n};\nexport function FaApper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"},\"child\":[]}]})(props);\n};\nexport function FaApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"},\"child\":[]}]})(props);\n};\nexport function FaApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArtstation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAsymmetrik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlassian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAudible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"},\"child\":[]}]})(props);\n};\nexport function FaAutoprefixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAvianex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAviato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAws (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBandcamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"},\"child\":[]}]})(props);\n};\nexport function FaBattleNet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"},\"child\":[]}]})(props);\n};\nexport function FaBehanceSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBimobject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"},\"child\":[]}]})(props);\n};\nexport function FaBity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackberry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBloggerB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBlogger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetoothB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBootstrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBtc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"},\"child\":[]}]})(props);\n};\nexport function FaBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"},\"child\":[]}]})(props);\n};\nexport function FaBuromobelexperte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"},\"child\":[]}]})(props);\n};\nexport function FaBuyNLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"},\"child\":[]}]})(props);\n};\nexport function FaBuysellads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCanadianMapleLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCcApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDinersClub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDiscover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcJcb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcMastercard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCcPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcVisa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"},\"child\":[]}]})(props);\n};\nexport function FaCentercode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCentos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"},\"child\":[]}]})(props);\n};\nexport function FaChromecast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudflare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudsmith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 332 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudversify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"},\"child\":[]}]})(props);\n};\nexport function FaCodiepie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 472 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"},\"child\":[]}]})(props);\n};\nexport function FaConfluence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"},\"child\":[]}]})(props);\n};\nexport function FaConnectdevelop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"},\"child\":[]}]})(props);\n};\nexport function FaContao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"},\"child\":[]}]})(props);\n};\nexport function FaCottonBureau (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"},\"child\":[]}]})(props);\n};\nexport function FaCpanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsBy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcEu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcJp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPdAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsRemix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSamplingPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSampling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsZero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"},\"child\":[]}]})(props);\n};\nexport function FaCriticalRole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3Alt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"},\"child\":[]}]})(props);\n};\nexport function FaCuttlefish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndDBeyond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDailymotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaDashcube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDeezer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaDelicious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"},\"child\":[]}]})(props);\n};\nexport function FaDeploydog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDeskpro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDeviantart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDiaspora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDigg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalOcean (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaDochub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDocker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDraft2Digital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbbleSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"},\"child\":[]}]})(props);\n};\nexport function FaDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 528 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"},\"child\":[]}]})(props);\n};\nexport function FaDrupal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"},\"child\":[]}]})(props);\n};\nexport function FaDyalog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"},\"child\":[]}]})(props);\n};\nexport function FaEarlybirds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEbay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEdgeLegacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"},\"child\":[]}]})(props);\n};\nexport function FaEdge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z\"},\"child\":[]}]})(props);\n};\nexport function FaElementor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEllo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"},\"child\":[]}]})(props);\n};\nexport function FaEmber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEmpire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"},\"child\":[]}]})(props);\n};\nexport function FaErlang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"},\"child\":[]}]})(props);\n};\nexport function FaEthereum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEtsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"},\"child\":[]}]})(props);\n};\nexport function FaEvernote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"},\"child\":[]}]})(props);\n};\nexport function FaExpeditedssl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFantasyFlightGames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFedex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFedora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefoxBrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstdraft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32Zm16 400a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V80A16 16 0 0 1 48 64H400a16 16 0 0 1 16 16ZM201.6 152c-25.4 0-37.4 10.4-57.6 14.4V160a16 16 0 0 0-32 0V352a16 16 0 0 0 32 0V198.4c20.2-4 32.2-14.4 57.6-14.4 31.4 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.4-16-74.6-16a85.9 85.9 0 0 0-25.6 4v32a80 80 0 0 1 25.6-4c31.4 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16V152c-31.6 11.2-41.2 16-59.8 16C244.8 168 232.8 152 201.6 152Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48V384c-63 23-82 32-119 32-63 0-87-32-150-32-20 0-36 4-51 8V328c15-4 31-8 51-8 63 0 87 32 150 32 20 0 35-3 55-9V135c-20 6-35 9-55 9-63 0-87-32-150-32-51 0-75 21-115 29V448a31.6 31.6 0 0 1-32 32A31.6 31.6 0 0 1 0 448V64A31.6 31.6 0 0 1 32 32 31.6 31.6 0 0 1 64 64V77c40-8 64-29 115-29 63 0 87 32 150 32C366 80 385 71 448 48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeLogoFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 3992 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1209.7 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C1311.7 200.4 1267.5 156.5 1209.7 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C1261.1 281.8 1244.8 309.2 1209.7 309.2Zm962.1-136.1c-4.4-10.9-12.3-16.5-23.5-16.5s-19.1 5.6-23.5 16.5l-59.4 145.8c-7.2 17.7 2.8 27.4 4.4 29a24.6 24.6 0 0 0 17.5 6.8c10.8 0 18.7-6 23.1-18.1l4-10.1h67.7l4 10.1c4.8 12.1 12.3 18.1 23.1 18.1a24.6 24.6 0 0 0 17.5-6.8c10-10.1 6.8-22.6 4.4-29Zm-43 113.6 19.1-56 19.1 56Zm-574.5-130.1c-14.3 0-24.7 10.9-24.7 25.4v76.5l-68.5-85.8c-4.4-5.6-11.6-16.1-25.5-16.1-19.1 0-24.3 17.7-24.3 25.4V329.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V252.8l68.9 86.2c4.8 5.6 11.6 16.1 25.5 16.1 19.1 0 23.9-17.3 23.9-25.4V181.9C1579 167.4 1568.6 156.5 1554.3 156.5Zm-554.1 1.6H916.5c-19.9 0-25.1 17.3-25.1 25.4V328.1c0 19.7 16.7 25.4 24.7 25.4 8 0 24.7-5.2 24.7-25.4V285h44.6c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.1-22.7-22.1H940.8V203.6h59.4c12.8 0 22.7-9.3 22.7-22.6C1022.9 163 1007.3 158.1 1000.2 158.1Zm815.1 0H1691.7c-7.2 0-22.7 4.4-22.7 22.2 0 13.3 10 22.6 22.7 22.6h37V327.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V202.8h37c12.7 0 22.7-9.3 22.7-22.6C1837.9 163 1822.4 158.1 1815.2 158.1Zm1789.5-1.6c-9.6 0-17.5 6-25.1 18.1l-46.6 76.1L3486.4 174.6q-10.8-18.1-25.1-18.1c-19.5 0-24.7 18.1-24.7 25.8V329.7c0 14.1 10.4 25.4 24.7 25.4s24.7-10.9 24.7-25.4V262.8L3510.7 302.7c6.4 10.1 13.9 15.3 22.3 15.3 8.8 0 15.9-5.2 22.3-15.3l24.7-39.9v66.9c0 14.1 10.3 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V182.3C3629.4 174.2 3624.6 156.5 3604.7 156.5Zm248.6 149.8h-65.7V272.9h39.4c11.9 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.6-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.8 0 22.7-9.3 22.7-22.6C3876 311.2 3860.5 306.3 3853.3 306.3ZM3235 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C3337 200.4 3292.8 156.5 3235 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C3286.8 281.8 3270.1 309.2 3235 309.2ZM2550.2 156.5c-11.2 0-19.1 5.6-23.1 16.5l-34.3 94.7-31.5-92.2c-4.4-12.5-12.3-18.9-24.3-18.9-11.9 0-19.9 6.4-24.3 18.9l-31.5 92.2-34.3-95.5q-5.4-15.7-22.7-15.7c-6.8 0-12.3 2.4-17.5 7.3-5.2 5.2-10.8 14.5-4.8 28.6l55.8 145.8c4 11.3 11.6 16.9 23.1 16.9q16.7 0 22.7-16.9l33.5-91.8 33.5 91.8q6 16.9 22.7 16.9c11.2 0 19.1-5.6 23.1-16.9l55.8-145.8c3.6-9.3 4.4-19.3-4.8-28.6A23 23 0 0 0 2550.2 156.5Zm444.2 81-21.9-9.3c-11.9-4.8-16.3-8.5-16.3-15.7q0-12.1 16.7-12.1c12.7 0 19.5 7.7 24.3 10.9 7.2 5.2 18.3 6.8 27.9-2 10.8-10.5 6.8-23.8 1.2-30.6-12.3-14.9-30.3-22.2-53.8-22.2-19.1 0-35.1 5.2-47.4 15.7-12.3 10.5-18.7 24.2-18.7 41.1 0 24.2 15.9 43.5 47.8 57.6l19.5 8.9c15.9 6.8 19.1 9.7 19.1 17.7 0 9.3-6.4 14.1-19.5 14.1-19.1 0-34.7-14.9-36.3-16.1-10.8-7.3-21.5-2-26.3 2.8-6.8 6.4-12.7 20.9 3.2 36.2 6.8 6.4 15.5 11.7 26.7 15.3a94.6 94.6 0 0 0 32.7 5.6c19.9 0 36.7-5.2 49.8-16.1 13.1-10.9 19.5-25.4 19.5-43.5q0-20.5-12-33.8C3022.7 253.2 3010.7 244.3 2994.4 237.5Zm-206.4 68.9h-65.7V272.9h39.4c12 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.7 0 22.7-9.3 22.7-22.6C2810.8 311.2 2795.2 306.3 2788 306.3ZM178.3 49.1c-50.5 0-74.4 20.7-114.6 28.7V65A31.8 31.8 0 1 0 0 65V447a31.8 31.8 0 0 0 63.7 0V141.4c40.2-8 64.1-28.7 114.6-28.7 62.5 0 86 31.8 148.4 31.8 20.3 0 35.4-2.8 55.3-9.2v191c-19.9 6.4-35 9.2-55.3 9.2-62.5 0-86.4-31.8-148.4-31.8-20.3 0-36.2 3.6-50.9 8V375.4a159.1 159.1 0 0 1 50.9-8c62.5 0 86 31.8 148.4 31.8 37 0 56.1-9.6 119-31.8V49.1C382.8 71.4 363.7 80.9 326.7 80.9 264.2 80.9 240.4 49.1 178.3 49.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32ZM336 312c-31.6 11.2-41.2 16-59.8 16-31.4 0-43.2-16-74.6-16a80 80 0 0 0-25.6 4V284a85.9 85.9 0 0 1 25.6-4c31.2 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v-96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.2-16-74.6-16-25.4 0-37.4 10.4-57.6 14.4V352a16 16 0 0 1-32 0V160a16 16 0 0 1 32 0v6.4c20.2-4 32.2-14.4 57.6-14.4 31.2 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16Z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticonsFi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesomeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"},\"child\":[]}]})(props);\n};\nexport function FaForumbee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 368 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFreeCodeCamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"},\"child\":[]}]})(props);\n};\nexport function FaFreebsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFulcrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticSenate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"},\"child\":[]}]})(props);\n};\nexport function FaGetPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGgCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"},\"child\":[]}]})(props);\n};\nexport function FaGitAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"},\"child\":[]}]})(props);\n};\nexport function FaGitSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"},\"child\":[]}]})(props);\n};\nexport function FaGitkraken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 592 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"},\"child\":[]}]})(props);\n};\nexport function FaGitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"},\"child\":[]}]})(props);\n};\nexport function FaGlideG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGlide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGofore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreadsG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGratipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"},\"child\":[]}]})(props);\n};\nexport function FaGrav (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"},\"child\":[]}]})(props);\n};\nexport function FaGripfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuilded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"},\"child\":[]}]})(props);\n};\nexport function FaGulp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNewsSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerrank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"},\"child\":[]}]})(props);\n};\nexport function FaHips (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHireAHelper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"},\"child\":[]}]})(props);\n};\nexport function FaHooli (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHornbill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"},\"child\":[]}]})(props);\n};\nexport function FaHotjar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHouzz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHubspot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"},\"child\":[]}]})(props);\n};\nexport function FaIdeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"},\"child\":[]}]})(props);\n};\nexport function FaImdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"},\"child\":[]}]})(props);\n};\nexport function FaInnosoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.559,159.71a27.379,27.379,0,0,0-13.866-23.337,26.42,26.42,0,0,0-26.211.133L73.943,314.647V176.261a11.955,11.955,0,0,1,6.047-10.34L218.066,86.208a12.153,12.153,0,0,1,11.922.025l32.656,18.853L112.581,191.723v56L359.642,105.086,241.129,36.679c-10.992-6.129-22.3-6.255-33.8-.27l-164.6,95.026c-10.634,6.12-16.771,16.39-17.29,29.124l0,191.5c.17,10.135,5.08,18.672,13.474,23.428a27.037,27.037,0,0,0,26.736-.045L374.057,197.376V335.657a11.976,11.976,0,0,1-5.92,10.368L230.025,425.77a12.175,12.175,0,0,1-11.937.062l-32.723-18.9,150.051-86.627v-56L88.367,406.932l118.794,68.583a33.88,33.88,0,0,0,34.25-.327l164.527-94.995c10.746-6.631,16.649-17.118,16.624-29.528Z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagramSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"},\"child\":[]}]})(props);\n};\nexport function FaInstalod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"},\"child\":[]}]})(props);\n};\nexport function FaIntercom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"},\"child\":[]}]})(props);\n};\nexport function FaInternetExplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"},\"child\":[]}]})(props);\n};\nexport function FaInvision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"},\"child\":[]}]})(props);\n};\nexport function FaIoxhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaItchIo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"},\"child\":[]}]})(props);\n};\nexport function FaItunesNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"},\"child\":[]}]})(props);\n};\nexport function FaItunes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"},\"child\":[]}]})(props);\n};\nexport function FaJava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaJediOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJenkins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaJira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJoget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaJoomla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJsSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJsfiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"},\"child\":[]}]})(props);\n};\nexport function FaKaggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"},\"child\":[]}]})(props);\n};\nexport function FaKeybase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"},\"child\":[]}]})(props);\n};\nexport function FaKeycdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarterK (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"},\"child\":[]}]})(props);\n};\nexport function FaKorvue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 446 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfmSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLeanpub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"},\"child\":[]}]})(props);\n};\nexport function FaLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"},\"child\":[]}]})(props);\n};\nexport function FaLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedinIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"},\"child\":[]}]})(props);\n};\nexport function FaLinode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaLinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLyft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"},\"child\":[]}]})(props);\n};\nexport function FaMagento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMailchimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"},\"child\":[]}]})(props);\n};\nexport function FaMandalorian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"},\"child\":[]}]})(props);\n};\nexport function FaMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"},\"child\":[]}]})(props);\n};\nexport function FaMastodon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"},\"child\":[]}]})(props);\n};\nexport function FaMaxcdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"},\"child\":[]}]})(props);\n};\nexport function FaMedapps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMediumM (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"},\"child\":[]}]})(props);\n};\nexport function FaMedrt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMeetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMegaport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMendeley (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroblog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrosoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"},\"child\":[]}]})(props);\n};\nexport function FaMixcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"},\"child\":[]}]})(props);\n};\nexport function FaMixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaMizuni (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"},\"child\":[]}]})(props);\n};\nexport function FaModx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMonero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"},\"child\":[]}]})(props);\n};\nexport function FaNapster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNeos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"},\"child\":[]}]})(props);\n};\nexport function FaNimblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"},\"child\":[]}]})(props);\n};\nexport function FaNodeJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaNode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"},\"child\":[]}]})(props);\n};\nexport function FaNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"},\"child\":[]}]})(props);\n};\nexport function FaNs8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaNutritionix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaOctopusDeploy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassnikiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaOldRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"},\"child\":[]}]})(props);\n};\nexport function FaOpencart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"},\"child\":[]}]})(props);\n};\nexport function FaOpenid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"},\"child\":[]}]})(props);\n};\nexport function FaOpera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"},\"child\":[]}]})(props);\n};\nexport function FaOptinMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaOrcid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"},\"child\":[]}]})(props);\n};\nexport function FaOsi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPage4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPagelines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"},\"child\":[]}]})(props);\n};\nexport function FaPalfed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPatreon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"},\"child\":[]}]})(props);\n};\nexport function FaPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPennyArcade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"},\"child\":[]}]})(props);\n};\nexport function FaPerbyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeriscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhabricator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixFramework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixSquadron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPhp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperHat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperPp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"},\"child\":[]}]})(props);\n};\nexport function FaProductHunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 432 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaQq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"},\"child\":[]}]})(props);\n};\nexport function FaQuinscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQuora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 581 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRaspberryPi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 407 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRavelry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"},\"child\":[]}]})(props);\n};\nexport function FaReact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"},\"child\":[]}]})(props);\n};\nexport function FaReacteurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaReadme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"},\"child\":[]}]})(props);\n};\nexport function FaRebel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"},\"child\":[]}]})(props);\n};\nexport function FaRedRiver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditAlien (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"},\"child\":[]}]})(props);\n};\nexport function FaReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedhat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"},\"child\":[]}]})(props);\n};\nexport function FaRenren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResearchgate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResolving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"},\"child\":[]}]})(props);\n};\nexport function FaRocketchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaRockrms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaSafari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"},\"child\":[]}]})(props);\n};\nexport function FaSalesforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"},\"child\":[]}]})(props);\n};\nexport function FaSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSchlix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaScribd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchengin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 460 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSellcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSellsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"},\"child\":[]}]})(props);\n};\nexport function FaServicestack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShirtsinbulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaShopify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaShopware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"},\"child\":[]}]})(props);\n};\nexport function FaSimplybuilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSistrix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"},\"child\":[]}]})(props);\n};\nexport function FaSketch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSkyatlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSlackHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSlideshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchatGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchatSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSoundcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSourcetree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakerDeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpotify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarespace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"},\"child\":[]}]})(props);\n};\nexport function FaStackExchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStackOverflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaStackpath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"},\"child\":[]}]})(props);\n};\nexport function FaStaylinked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStickerMule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStrava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"},\"child\":[]}]})(props);\n};\nexport function FaStripeS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStudiovinari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleuponCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleupon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperpowers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"},\"child\":[]}]})(props);\n};\nexport function FaSupple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"},\"child\":[]}]})(props);\n};\nexport function FaSwift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSymfony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTeamspeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegramPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTencentWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTheRedYeti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeisle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"},\"child\":[]}]})(props);\n};\nexport function FaThinkPeaks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"},\"child\":[]}]})(props);\n};\nexport function FaTiktok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"},\"child\":[]}]})(props);\n};\nexport function FaTradeFederation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTripadvisor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.91,178.82,576,127.58H471.66a326.11,326.11,0,0,0-367,0H0l47.09,51.24A143.911,143.911,0,0,0,241.86,390.73L288,440.93l46.11-50.17A143.94,143.94,0,0,0,575.88,285.18h-.03A143.56,143.56,0,0,0,528.91,178.82ZM144.06,382.57a97.39,97.39,0,1,1,97.39-97.39A97.39,97.39,0,0,1,144.06,382.57ZM288,282.37c0-64.09-46.62-119.08-108.09-142.59a281,281,0,0,1,216.17,0C334.61,163.3,288,218.29,288,282.37Zm143.88,100.2h-.01a97.405,97.405,0,1,1,.01,0ZM144.06,234.12h-.01a51.06,51.06,0,1,0,51.06,51.06v-.11A51,51,0,0,0,144.06,234.12Zm287.82,0a51.06,51.06,0,1,0,51.06,51.06A51.06,51.06,0,0,0,431.88,234.12Z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblrSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitterSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"},\"child\":[]}]})(props);\n};\nexport function FaTypo3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUbuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaUikit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbraco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 510 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"},\"child\":[]}]})(props);\n};\nexport function FaUncharted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"},\"child\":[]}]})(props);\n};\nexport function FaUniregistry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUnity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaUnsplash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"},\"child\":[]}]})(props);\n};\nexport function FaUntappd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUsps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUssunnah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"},\"child\":[]}]})(props);\n};\nexport function FaVaadin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViacoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeoSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"},\"child\":[]}]})(props);\n};\nexport function FaViber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVnv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVuejs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWatchmanMonitoring (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"},\"child\":[]}]})(props);\n};\nexport function FaWaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"},\"child\":[]}]})(props);\n};\nexport function FaWeebly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"},\"child\":[]}]})(props);\n};\nexport function FaWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWeixin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsappSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhmcs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWikipediaW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"},\"child\":[]}]})(props);\n};\nexport function FaWizardsOfTheCoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"},\"child\":[]}]})(props);\n};\nexport function FaWodu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"},\"child\":[]}]})(props);\n};\nexport function FaWolfPackBattalion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpressSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWpbeginner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"},\"child\":[]}]})(props);\n};\nexport function FaWpexplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWpforms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"},\"child\":[]}]})(props);\n};\nexport function FaWpressr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"},\"child\":[]}]})(props);\n};\nexport function FaXbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"},\"child\":[]}]})(props);\n};\nexport function FaXingSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"},\"child\":[]}]})(props);\n};\nexport function FaXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYCombinator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaYammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"},\"child\":[]}]})(props);\n};\nexport function FaYandexInternational (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYandex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYarn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"},\"child\":[]}]})(props);\n};\nexport function FaYelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutubeSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"},\"child\":[]}]})(props);\n};\nexport function FaZhihu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"},\"child\":[]}]})(props);\n};\nexport function FaAd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaAdjust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"},\"child\":[]}]})(props);\n};\nexport function FaAirFreshener (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"},\"child\":[]}]})(props);\n};\nexport function FaAllergies (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaAmbulance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaAmericanSignLanguageInterpreting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAnkh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAppleAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"},\"child\":[]}]})(props);\n};\nexport function FaArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaArchway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAltH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAltV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"},\"child\":[]}]})(props);\n};\nexport function FaAssistiveListeningSystems (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaAsterisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"},\"child\":[]}]})(props);\n};\nexport function FaAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"},\"child\":[]}]})(props);\n};\nexport function FaAtom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"},\"child\":[]}]})(props);\n};\nexport function FaAudioDescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"},\"child\":[]}]})(props);\n};\nexport function FaAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBabyCarriage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBaby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBackspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"},\"child\":[]}]})(props);\n};\nexport function FaBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBacon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"},\"child\":[]}]})(props);\n};\nexport function FaBacteria (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"},\"child\":[]}]})(props);\n};\nexport function FaBacterium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"},\"child\":[]}]})(props);\n};\nexport function FaBahai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScaleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScaleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"},\"child\":[]}]})(props);\n};\nexport function FaBandAid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"},\"child\":[]}]})(props);\n};\nexport function FaBars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseballBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketballBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"},\"child\":[]}]})(props);\n};\nexport function FaBeer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"},\"child\":[]}]})(props);\n};\nexport function FaBezierCurve (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"},\"child\":[]}]})(props);\n};\nexport function FaBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"},\"child\":[]}]})(props);\n};\nexport function FaBiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBinoculars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"},\"child\":[]}]})(props);\n};\nexport function FaBiohazard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaBirthdayCake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"},\"child\":[]}]})(props);\n};\nexport function FaBlenderPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"},\"child\":[]}]})(props);\n};\nexport function FaBlind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"},\"child\":[]}]})(props);\n};\nexport function FaBlog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"},\"child\":[]}]})(props);\n};\nexport function FaBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"},\"child\":[]}]})(props);\n};\nexport function FaBomb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"},\"child\":[]}]})(props);\n};\nexport function FaBong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"},\"child\":[]}]})(props);\n};\nexport function FaBookDead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"},\"child\":[]}]})(props);\n};\nexport function FaBookReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderStyle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlingBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxTissue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"},\"child\":[]}]})(props);\n};\nexport function FaBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBraille (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBreadSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcaseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"},\"child\":[]}]})(props);\n};\nexport function FaBroadcastTower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"},\"child\":[]}]})(props);\n};\nexport function FaBroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"},\"child\":[]}]})(props);\n};\nexport function FaBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaBullhorn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"},\"child\":[]}]})(props);\n};\nexport function FaBullseye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBurn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBusAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBusinessTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarTimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"},\"child\":[]}]})(props);\n};\nexport function FaCampground (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"},\"child\":[]}]})(props);\n};\nexport function FaCandyCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCannabis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"},\"child\":[]}]})(props);\n};\nexport function FaCapsules (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCarAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaCarCrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"},\"child\":[]}]})(props);\n};\nexport function FaCarSide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCaravan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"},\"child\":[]}]})(props);\n};\nexport function FaCarrot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCartArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"},\"child\":[]}]})(props);\n};\nexport function FaCartPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCashRegister (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"},\"child\":[]}]})(props);\n};\nexport function FaCat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"},\"child\":[]}]})(props);\n};\nexport function FaChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboardTeacher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChargingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"},\"child\":[]}]})(props);\n};\nexport function FaChartArea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"},\"child\":[]}]})(props);\n};\nexport function FaChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChartLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChartPie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheese (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBishop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKnight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessPawn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessQueen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"},\"child\":[]}]})(props);\n};\nexport function FaChessRook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"},\"child\":[]}]})(props);\n};\nexport function FaChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"},\"child\":[]}]})(props);\n};\nexport function FaChurch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"},\"child\":[]}]})(props);\n};\nexport function FaCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"},\"child\":[]}]})(props);\n};\nexport function FaCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaClinicMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"},\"child\":[]}]})(props);\n};\nexport function FaClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"},\"child\":[]}]})(props);\n};\nexport function FaClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudDownloadAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMeatball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoonRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersHeavy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSunRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudUploadAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCocktail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCogs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCoins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"},\"child\":[]}]})(props);\n};\nexport function FaColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentsDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"},\"child\":[]}]})(props);\n};\nexport function FaComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCompactDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCompressAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"},\"child\":[]}]})(props);\n};\nexport function FaCompressArrowsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaConciergeBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCookieBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCookie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"},\"child\":[]}]})(props);\n};\nexport function FaCouch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCropAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"},\"child\":[]}]})(props);\n};\nexport function FaCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCross (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCrosshairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCrutch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"},\"child\":[]}]})(props);\n};\nexport function FaCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCubes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"},\"child\":[]}]})(props);\n};\nexport function FaDeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"},\"child\":[]}]})(props);\n};\nexport function FaDemocrat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"},\"child\":[]}]})(props);\n};\nexport function FaDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"},\"child\":[]}]})(props);\n};\nexport function FaDharmachakra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagnoses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceSix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceThree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalTachograph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"},\"child\":[]}]})(props);\n};\nexport function FaDirections (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"},\"child\":[]}]})(props);\n};\nexport function FaDisease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"},\"child\":[]}]})(props);\n};\nexport function FaDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDollyFlatbed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDolly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaDonate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDotCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaDove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaDraftingCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"},\"child\":[]}]})(props);\n};\nexport function FaDrawPolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumSteelpan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumstickBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"},\"child\":[]}]})(props);\n};\nexport function FaDumbbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpsterFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDungeon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"},\"child\":[]}]})(props);\n};\nexport function FaEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpenText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaEquals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaEraser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"},\"child\":[]}]})(props);\n};\nexport function FaEthernet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaEuroSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"},\"child\":[]}]})(props);\n};\nexport function FaExchangeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamationCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamationTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"},\"child\":[]}]})(props);\n};\nexport function FaExpandAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"},\"child\":[]}]})(props);\n};\nexport function FaExpandArrowsAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaExternalLinkAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"},\"child\":[]}]})(props);\n};\nexport function FaExternalLinkSquareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeDropper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"},\"child\":[]}]})(props);\n};\nexport function FaEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"},\"child\":[]}]})(props);\n};\nexport function FaFan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFastBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"},\"child\":[]}]})(props);\n};\nexport function FaFax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFeatherAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"},\"child\":[]}]})(props);\n};\nexport function FaFemale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"},\"child\":[]}]})(props);\n};\nexport function FaFighterJet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"},\"child\":[]}]})(props);\n};\nexport function FaFileContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCsv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoiceDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedicalAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"},\"child\":[]}]})(props);\n};\nexport function FaFileUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFillDrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"},\"child\":[]}]})(props);\n};\nexport function FaFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"},\"child\":[]}]})(props);\n};\nexport function FaFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"},\"child\":[]}]})(props);\n};\nexport function FaFireAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"},\"child\":[]}]})(props);\n};\nexport function FaFireExtinguisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstAid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFistRaised (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagCheckered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagUsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"},\"child\":[]}]})(props);\n};\nexport function FaFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"},\"child\":[]}]})(props);\n};\nexport function FaFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"},\"child\":[]}]})(props);\n};\nexport function FaFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFont (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"},\"child\":[]}]})(props);\n};\nexport function FaFootballBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"},\"child\":[]}]})(props);\n};\nexport function FaForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFrog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaFunnelDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"},\"child\":[]}]})(props);\n};\nexport function FaFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"},\"child\":[]}]})(props);\n};\nexport function FaGamepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaGasPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"},\"child\":[]}]})(props);\n};\nexport function FaGavel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGenderless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"},\"child\":[]}]})(props);\n};\nexport function FaGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaGifts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassCheers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassMartiniAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassMartini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWhiskey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAfrica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAmericas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAsia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeEurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"},\"child\":[]}]})(props);\n};\nexport function FaGolfBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGopuram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaGraduationCap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"},\"child\":[]}]})(props);\n};\nexport function FaGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGripHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLinesVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaGripVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGuitar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHamburger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"},\"child\":[]}]})(props);\n};\nexport function FaHamsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingUsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHolding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"},\"child\":[]}]})(props);\n};\nexport function FaHandMiddleFinger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"},\"child\":[]}]})(props);\n};\nexport function FaHandRock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHelping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsWash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"},\"child\":[]}]})(props);\n};\nexport function FaHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeAltSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHanukiah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHardHat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHashtag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboySide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"},\"child\":[]}]})(props);\n};\nexport function FaHatWizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCoughSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphonesAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartBroken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartbeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"},\"child\":[]}]})(props);\n};\nexport function FaHighlighter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"},\"child\":[]}]})(props);\n};\nexport function FaHiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHippo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"},\"child\":[]}]})(props);\n};\nexport function FaHockeyPuck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHollyBerry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"},\"child\":[]}]})(props);\n};\nexport function FaHorseHead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHorse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaHotTub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHotdog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"},\"child\":[]}]})(props);\n};\nexport function FaHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassStart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseDamage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"},\"child\":[]}]})(props);\n};\nexport function FaHryvnia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"},\"child\":[]}]})(props);\n};\nexport function FaICursor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"},\"child\":[]}]})(props);\n};\nexport function FaIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"},\"child\":[]}]})(props);\n};\nexport function FaIcicles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"},\"child\":[]}]})(props);\n};\nexport function FaIcons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"},\"child\":[]}]})(props);\n};\nexport function FaIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCardAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaIgloo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"},\"child\":[]}]})(props);\n};\nexport function FaImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"},\"child\":[]}]})(props);\n};\nexport function FaIndent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIndustry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"},\"child\":[]}]})(props);\n};\nexport function FaInfinity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"},\"child\":[]}]})(props);\n};\nexport function FaInfoCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"},\"child\":[]}]})(props);\n};\nexport function FaInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaJedi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"},\"child\":[]}]})(props);\n};\nexport function FaJoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaJournalWhills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"},\"child\":[]}]})(props);\n};\nexport function FaKaaba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"},\"child\":[]}]})(props);\n};\nexport function FaKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaKhanda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"},\"child\":[]}]})(props);\n};\nexport function FaKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"},\"child\":[]}]})(props);\n};\nexport function FaKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"},\"child\":[]}]})(props);\n};\nexport function FaKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaKiwiBird (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"},\"child\":[]}]})(props);\n};\nexport function FaLayerGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"},\"child\":[]}]})(props);\n};\nexport function FaLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"},\"child\":[]}]})(props);\n};\nexport function FaLevelDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"},\"child\":[]}]})(props);\n};\nexport function FaLevelUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"},\"child\":[]}]})(props);\n};\nexport function FaLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"},\"child\":[]}]})(props);\n};\nexport function FaLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"},\"child\":[]}]})(props);\n};\nexport function FaLiraSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"},\"child\":[]}]})(props);\n};\nexport function FaListAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaListOl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"},\"child\":[]}]})(props);\n};\nexport function FaListUl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"},\"child\":[]}]})(props);\n};\nexport function FaLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"},\"child\":[]}]})(props);\n};\nexport function FaLowVision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"},\"child\":[]}]})(props);\n};\nexport function FaLuggageCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"},\"child\":[]}]})(props);\n};\nexport function FaLungsVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"},\"child\":[]}]})(props);\n};\nexport function FaLungs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"},\"child\":[]}]})(props);\n};\nexport function FaMagic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMailBulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarkedAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarkerAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaMapSigns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMarker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"},\"child\":[]}]})(props);\n};\nexport function FaMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"},\"child\":[]}]})(props);\n};\nexport function FaMedkit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMehRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMemory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"},\"child\":[]}]})(props);\n};\nexport function FaMenorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"},\"child\":[]}]})(props);\n};\nexport function FaMercury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaMeteor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrochip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneAltSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"},\"child\":[]}]})(props);\n};\nexport function FaMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"},\"child\":[]}]})(props);\n};\nexport function FaMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMitten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"},\"child\":[]}]})(props);\n};\nexport function FaMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWaveAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheckAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMonument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"},\"child\":[]}]})(props);\n};\nexport function FaMortarPestle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMosque (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"},\"child\":[]}]})(props);\n};\nexport function FaMotorcycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMountain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"},\"child\":[]}]})(props);\n};\nexport function FaMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"},\"child\":[]}]})(props);\n};\nexport function FaMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMugHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"},\"child\":[]}]})(props);\n};\nexport function FaNetworkWired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"},\"child\":[]}]})(props);\n};\nexport function FaNeuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaNotEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"},\"child\":[]}]})(props);\n};\nexport function FaNotesMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"},\"child\":[]}]})(props);\n};\nexport function FaOilCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"},\"child\":[]}]})(props);\n};\nexport function FaOm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"},\"child\":[]}]})(props);\n};\nexport function FaOtter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"},\"child\":[]}]})(props);\n};\nexport function FaOutdent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintRoller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"},\"child\":[]}]})(props);\n};\nexport function FaParachuteBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"},\"child\":[]}]})(props);\n};\nexport function FaParagraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaParking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPassport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"},\"child\":[]}]})(props);\n};\nexport function FaPastafarianism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"},\"child\":[]}]})(props);\n};\nexport function FaPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"},\"child\":[]}]})(props);\n};\nexport function FaPenAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"},\"child\":[]}]})(props);\n};\nexport function FaPenFancy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"},\"child\":[]}]})(props);\n};\nexport function FaPenNib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"},\"child\":[]}]})(props);\n};\nexport function FaPenSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"},\"child\":[]}]})(props);\n};\nexport function FaPencilAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"},\"child\":[]}]})(props);\n};\nexport function FaPencilRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleArrows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleCarry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPepperHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"},\"child\":[]}]})(props);\n};\nexport function FaPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPercentage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSquareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"},\"child\":[]}]})(props);\n};\nexport function FaPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhotoVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaPiggyBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPizzaSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaceOfWorship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneArrival (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneDeparture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"},\"child\":[]}]})(props);\n};\nexport function FaPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"},\"child\":[]}]})(props);\n};\nexport function FaPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPodcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPollH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPoll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"},\"child\":[]}]})(props);\n};\nexport function FaPooStorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaPortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPoundSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaPowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPray (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"},\"child\":[]}]})(props);\n};\nexport function FaPrayingHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottleAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"},\"child\":[]}]})(props);\n};\nexport function FaPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaProcedures (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaProjectDiagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"},\"child\":[]}]})(props);\n};\nexport function FaPuzzlePiece (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"},\"child\":[]}]})(props);\n};\nexport function FaQrcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestionCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"},\"child\":[]}]})(props);\n};\nexport function FaQuidditch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaQuran (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiationAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRainbow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRandom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"},\"child\":[]}]})(props);\n};\nexport function FaReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaRecordVinyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaRecycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"},\"child\":[]}]})(props);\n};\nexport function FaRedoAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"},\"child\":[]}]})(props);\n};\nexport function FaRedo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"},\"child\":[]}]})(props);\n};\nexport function FaRemoveFormat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaRepublican (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRestroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRetweet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"},\"child\":[]}]})(props);\n};\nexport function FaRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"},\"child\":[]}]})(props);\n};\nexport function FaRobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"},\"child\":[]}]})(props);\n};\nexport function FaRoute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRssSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"},\"child\":[]}]})(props);\n};\nexport function FaRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"},\"child\":[]}]})(props);\n};\nexport function FaRubleSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerCombined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"},\"child\":[]}]})(props);\n};\nexport function FaRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRunning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"},\"child\":[]}]})(props);\n};\nexport function FaRupeeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"},\"child\":[]}]})(props);\n};\nexport function FaSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSatelliteDish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"},\"child\":[]}]})(props);\n};\nexport function FaSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"},\"child\":[]}]})(props);\n};\nexport function FaSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScroll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"},\"child\":[]}]})(props);\n};\nexport function FaSdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"},\"child\":[]}]})(props);\n};\nexport function FaSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaSeedling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"},\"child\":[]}]})(props);\n};\nexport function FaServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"},\"child\":[]}]})(props);\n};\nexport function FaShareAltSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"},\"child\":[]}]})(props);\n};\nexport function FaShareAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaShareSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"},\"child\":[]}]})(props);\n};\nexport function FaShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaShekelSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaShip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"},\"child\":[]}]})(props);\n};\nexport function FaShippingFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaShoePrints (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingBasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"},\"child\":[]}]})(props);\n};\nexport function FaShower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"},\"child\":[]}]})(props);\n};\nexport function FaShuttleVan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"},\"child\":[]}]})(props);\n};\nexport function FaSignInAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"},\"child\":[]}]})(props);\n};\nexport function FaSignLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"},\"child\":[]}]})(props);\n};\nexport function FaSignOutAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"},\"child\":[]}]})(props);\n};\nexport function FaSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"},\"child\":[]}]})(props);\n};\nexport function FaSitemap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkiingNordic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"},\"child\":[]}]})(props);\n};\nexport function FaSkiing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"},\"child\":[]}]})(props);\n};\nexport function FaSkullCrossbones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"},\"child\":[]}]})(props);\n};\nexport function FaSleigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"},\"child\":[]}]})(props);\n};\nexport function FaSlidersH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSmog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"},\"child\":[]}]})(props);\n};\nexport function FaSmokingBan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowplow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"},\"child\":[]}]})(props);\n};\nexport function FaSocks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"},\"child\":[]}]})(props);\n};\nexport function FaSolarPanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSortDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericDownAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericUpAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"},\"child\":[]}]})(props);\n};\nexport function FaSortUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"},\"child\":[]}]})(props);\n};\nexport function FaSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"},\"child\":[]}]})(props);\n};\nexport function FaSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaceShuttle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpellCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSpider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"},\"child\":[]}]})(props);\n};\nexport function FaSpinner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSplotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 512H0V0h512v512z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRootAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaStamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaStarAndCrescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalfAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 536 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfDavid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 464 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfLife (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"},\"child\":[]}]})(props);\n};\nexport function FaStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStepBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaStepForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaStethoscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaStickyNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreAltSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaStream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaStreetView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"},\"child\":[]}]})(props);\n};\nexport function FaStroopwafel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"},\"child\":[]}]})(props);\n};\nexport function FaSubscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseRolling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"},\"child\":[]}]})(props);\n};\nexport function FaSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSwatchbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"},\"child\":[]}]})(props);\n};\nexport function FaSwimmer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSwimmingPool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"},\"child\":[]}]})(props);\n};\nexport function FaSynagogue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"},\"child\":[]}]})(props);\n};\nexport function FaSyncAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSync (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"},\"child\":[]}]})(props);\n};\nexport function FaSyringe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"},\"child\":[]}]})(props);\n};\nexport function FaTableTennis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"},\"child\":[]}]})(props);\n};\nexport function FaTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTablets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaTachometerAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"},\"child\":[]}]})(props);\n};\nexport function FaTape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTeethOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"},\"child\":[]}]})(props);\n};\nexport function FaTeeth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTenge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaTextHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"},\"child\":[]}]})(props);\n};\nexport function FaTextWidth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"},\"child\":[]}]})(props);\n};\nexport function FaThLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaThList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTheaterMasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"},\"child\":[]}]})(props);\n};\nexport function FaTicketAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"},\"child\":[]}]})(props);\n};\nexport function FaTimesCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"},\"child\":[]}]})(props);\n};\nexport function FaTintSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaperSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaToilet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"},\"child\":[]}]})(props);\n};\nexport function FaToolbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"},\"child\":[]}]})(props);\n};\nexport function FaTools (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"},\"child\":[]}]})(props);\n};\nexport function FaTorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"},\"child\":[]}]})(props);\n};\nexport function FaToriiGate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"},\"child\":[]}]})(props);\n};\nexport function FaTractor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"},\"child\":[]}]})(props);\n};\nexport function FaTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"},\"child\":[]}]})(props);\n};\nexport function FaTrafficLight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTrailer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"},\"child\":[]}]})(props);\n};\nexport function FaTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"},\"child\":[]}]})(props);\n};\nexport function FaTram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgenderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashRestoreAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"},\"child\":[]}]})(props);\n};\nexport function FaTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"},\"child\":[]}]})(props);\n};\nexport function FaTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckLoading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMoving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaTshirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrellaBeach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"},\"child\":[]}]})(props);\n};\nexport function FaUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUndoAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"},\"child\":[]}]})(props);\n};\nexport function FaUndo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversalAccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlockAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAltSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAstronaut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"},\"child\":[]}]})(props);\n};\nexport function FaUserClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUserEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserFriends (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGraduate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserInjured (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNinja (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNurse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSecret (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersCog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensilSpoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensils (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVectorSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaVenus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaVestPatches (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"},\"child\":[]}]})(props);\n};\nexport function FaVest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"},\"child\":[]}]})(props);\n};\nexport function FaVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"},\"child\":[]}]})(props);\n};\nexport function FaVials (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"},\"child\":[]}]})(props);\n};\nexport function FaVideoSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"},\"child\":[]}]})(props);\n};\nexport function FaVihara (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"},\"child\":[]}]})(props);\n};\nexport function FaViruses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"},\"child\":[]}]})(props);\n};\nexport function FaVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaVolleyballBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeMute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"},\"child\":[]}]})(props);\n};\nexport function FaVoteYea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"},\"child\":[]}]})(props);\n};\nexport function FaVrCardboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaWalking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWarehouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWaveSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightHanging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"},\"child\":[]}]})(props);\n};\nexport function FaWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"},\"child\":[]}]})(props);\n};\nexport function FaWineBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlassAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaWonSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaXRay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaYenSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaYinYang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarTimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegDotCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFontAwesomeLogoFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 3992 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandRock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHdd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegListAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMehRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoneyBillAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegQuestionCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaRegShareSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStickyNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTimesCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTrashAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUserCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowClose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"},\"child\":[]}]})(props);\n};\n","import { FaUsersBetweenLines } from 'react-icons/fa6';\nimport {Link} from 'react-router-dom'\nimport {FaWpforms} from 'react-icons/fa'\n\ntype CustomCardProps = {\n title?: string;\n description?: string;\n icon?: string;\n url: string ;\n}\n\nconst CustomCard = ({ title, description, icon, url }:CustomCardProps) => {\n return (\n \n
\n
\n
\n \n \n \n \n \n
\n

{title}

\n
\n
\n \n );\n}\n\nexport default CustomCard;","import CustomBreadCrumb from '../../../constants/CustomBreadCrumb'\nimport CustomCard from '../../../constants/CustomCard'\n\n\nconst FinanceReportsPage = () => {\nconst items = [\n {\n title: 'TRIAL BALANCE',\n to: '/trial-balance-report',\n linkName: 'Finance Reports'\n },\n {\n title: 'ACCOUNTS PAYABLE',\n to: '/accounts-payable-report',\n linkName: 'ACCOUNTS PAYABLE'\n },\n {\n title: 'ACCOUNTS RECEIVABLE',\n to: '/accounts-receivable-report',\n linkName: 'ACCOUNTS RECEIVABLE'\n },\n {\n title: 'FIXED ASSETS',\n to: '/fixed-assets-report',\n linkName: 'FIXED ASSETS'\n }\n]\n return (\n <>\n \n
\n {\n items.map((item, index) => (\n
\n \n
\n )\n )\n }\n
\n \n );\n}\n\nexport default FinanceReportsPage;","import CustomBreadCrumb from '../../../constants/CustomBreadCrumb'\nimport CustomCard from '../../../constants/CustomCard'\n\nconst ProductionReportsPage = () => {\n const items = [\n {\n title: 'PRODUCTION UPDATE',\n to: '/production-update',\n linkName: 'Production Reports'\n },{\n title: 'PRODUCTION PTD',\n to: '/production-pdt',\n linkName: 'Production Reports'\n },{\n title: 'PROGRESS',\n to: '/production-progress',\n linkName: 'Production Reports'\n },{\n title: 'DRILL STATISTICS',\n to: '/drill-statistic-report',\n linkName: 'DRILL STATISTICS'\n },{\n title: 'EQUIPMENT STATISTICS',\n to: '/equipment-report',\n linkName: 'EQUIPMENT STATISTICS REPORT'\n },{\n title: 'FUEL REPORT',\n to: '/fuel-report',\n linkName: 'Fuel Report'\n },{\n title: 'SAFETY STATISTIC',\n to: '/production-reports',\n linkName: 'Production Reports'\n },{\n title: 'INCIDENT REGISTER',\n to: '/incident-register-report',\n linkName: 'INCIDENT REGISTER REPORT'\n },{\n title: 'ACTIVITY',\n to: '/activity-production',\n linkName: 'ACTIVITY REPORT'\n },\n\n ]\n return (\n <>\n \n
\n {\n items.map((item, index) => (\n
\n \n
\n )\n )\n }\n
\n \n );\n}\nexport default ProductionReportsPage;","import CustomBreadCrumb from '../../../constants/CustomBreadCrumb'\nimport CustomCard from '../../../constants/CustomCard'\n\nconst HRReportsPage = () => {\n const items = [\n {\n title: 'EMPLOYEE LIST',\n to: '/employee-list-report',\n linkName: 'EMPLOYEE LIST'\n },\n {\n title: 'DEPARTMENT SUMMARY',\n to: '/department-summary-report',\n linkName: 'Department Report'\n },\n {\n title: 'AGE PROFILE',\n to: '/age-report',\n linkName: 'Age Report'\n },\n {\n title: 'LEAVE SUMMARY',\n to: '/leave-summary-report',\n linkName: 'Leave Report'\n },\n ]\n\n return (\n <>\n \n
\n {\n items.map((item, index) => (\n
\n \n
\n )\n )\n }\n
\n \n )\n}\n\nexport default HRReportsPage;","import CustomBreadCrumb from '../../../constants/CustomBreadCrumb'\nimport CustomCard from '../../../constants/CustomCard'\n\nconst EquipServiceReportsPage = () => {\n const items = [\n {\n title: 'EQUIPMENT LIST',\n to: '/equipment-list-report',\n linkName: 'Equipment List Report'\n },{\n title: 'FAULTY SUMMARY',\n to: '/faulty-report',\n linkName: 'Faulty Report'\n },{\n title: 'BACKLOG SUMMARY',\n to: '/backlog-report',\n linkName: 'Backlog Summary Report'\n },{\n title: 'ACTIVITY',\n to: '/activity-report',\n linkName: 'Activity Report'\n }\n ]\n return (\n <>\n \n
\n {\n items.map((item, index) => (\n
\n \n
\n )\n )\n }\n
\n \n );\n}\n\nexport default EquipServiceReportsPage;","import CustomBreadCrumb from '../../../constants/CustomBreadCrumb'\nimport {ReportCard} from '../../../components/ReportCard'\nimport CustomCard from '../../../constants/CustomCard'\n\nconst SupplyChainReportsPage = () => {\n const items = [\n {\n title: 'STOCK ITEMS',\n to: '/stock-items-report',\n linkName: 'STOCK ITEMS'\n },{\n title: 'STOCK BALANCE',\n to: '/stock-balance-report',\n linkName: 'STOCK BALANCE'\n },{\n title: 'LOCATION SUMMARY',\n to: '/location-summary-report',\n linkName: 'LOCATION SUMMARY'\n }\n ]\n return (\n <>\n \n
\n {\n items.map((item, index) => (\n
\n \n
\n )\n )\n }\n
\n \n );\n}\n\nexport default SupplyChainReportsPage;","/**\r\n* DevExpress HTML/JS Reporting (common\\imageSource.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nexport class ImageSource {\n constructor(sourceType, data) {\n this.sourceType = sourceType;\n this.data = data;\n }\n getDataUrl() {\n switch (this.sourceType) {\n case 'svg':\n return 'data:image/svg+xml;charset=UTF-8;base64,' + encodeURI(this.data);\n case 'img':\n return 'data:image/x;base64,' + this.data;\n }\n if (this.sourceType === 'png' || this.sourceType === 'jpg' || this.sourceType === 'jpeg')\n return 'data:image/' + this.sourceType + ';base64,' + this.data;\n }\n static parse(val) {\n var sourceType, data;\n [sourceType, data] = (val || '').split(',');\n return sourceType && new ImageSource(sourceType, data);\n }\n static toString(val) {\n return formatUnicorn('{0},{1}', val.sourceType, val.data);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\metadata.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { PaddingModel } from '@devexpress/analytics-core/analytics-elements';\nimport { colorFromString, colorToString, floatFromModel } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport var previewBackColor = { propertyName: 'backColor', modelName: '@BackColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewSides = { propertyName: 'borders', modelName: '@Sides' };\nexport var previewBorderColor = { propertyName: 'borderColor', modelName: '@BorderColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewBorderStyle = { propertyName: 'borderStyle', modelName: '@BorderStyle' };\nexport var previewBorderDashStyle = { propertyName: 'borderDashStyle', modelName: '@BorderDashStyle' };\nexport var previewBorderWidth = { propertyName: 'borderWidth', modelName: '@BorderWidthSerializable', from: floatFromModel };\nexport var previewForeColor = { propertyName: 'foreColor', modelName: '@ForeColor', from: colorFromString, toJsonObject: colorToString };\nexport var previewFont = { propertyName: 'font', modelName: '@Font' };\nexport var previewPadding = { propertyName: 'padding', modelName: '@Padding', from: PaddingModel.from };\nexport var previewTextAlignment = { propertyName: 'textAlignment', modelName: '@TextAlignment' };\nexport var brickStyleSerializationsInfo = [\n previewBackColor,\n previewSides,\n previewBorderColor,\n previewBorderStyle,\n previewBorderDashStyle,\n previewBorderWidth,\n previewForeColor,\n previewFont,\n previewPadding,\n previewTextAlignment\n];\nexport var defaultCulture = 'Default';\nexport var availableCultures = ko.observable({\n 'Default': '(Default)'\n});\n","/**\r\n* DevExpress HTML/JS Reporting (common\\binding\\exportOptionsEventArgs.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class CustomizeExportOptionsEventArgs {\n constructor(options) {\n this._options = options;\n }\n HideExportOptionsPanel() { this._options.panelVisible = false; }\n HideFormat(format) { delete this._options.exportOptions[format.propertyName || format.format]; }\n HideProperties(format, ...paths) {\n var patchPropName = (propName, obj) => {\n var info = obj.getInfo && obj.getInfo();\n if (info) {\n var p = info.filter(x => x.modelName === propName || x.modelName === '@' + propName)[0];\n if (p)\n return p.propertyName;\n }\n return propName;\n };\n var addPredicate = (obj, propName) => {\n propName = patchPropName(propName, obj);\n var oldPredicate = obj.isPropertyVisible;\n obj.isPropertyVisible =\n oldPredicate\n ? ((x) => oldPredicate(x) && x !== propName)\n : ((x) => x !== propName);\n };\n if (paths.length == 0) {\n addPredicate(this._options.exportOptions, format.format);\n }\n else {\n paths.forEach(property => {\n var path = Array.isArray(property)\n ? property\n : property.split('.');\n var obj = this._options.exportOptions[format.format];\n while (path.length > 1) {\n obj = ko.unwrap(obj[patchPropName(path[0], obj)]);\n path.splice(0, 1);\n }\n addPredicate(obj, path[0]);\n });\n }\n }\n GetExportOptionsModel(format) { return this._options.exportOptions[format.format]; }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\binding\\eventGenerator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend } from '@devexpress/analytics-core/analytics-internal';\nimport { loadMessages as analyticLoadMessages } from '@devexpress/analytics-core/analytics-localization';\nimport * as localization from 'devextreme/localization';\nimport { availableCultures, defaultCulture } from '../metadata';\nimport { CustomizeExportOptionsEventArgs } from './exportOptionsEventArgs';\nexport class EventGenerator {\n static generateCustomizeLocalizationCallback(fireEvent) {\n return function (localizationCallbacks) {\n fireEvent('CustomizeLocalization', {\n LoadMessages: (messages) => {\n if (!messages)\n return;\n if (typeof messages.then === 'function') {\n localizationCallbacks.push(messages);\n }\n else {\n analyticLoadMessages(messages);\n }\n },\n SetAvailableCultures: (customCultures) => {\n var newCultures = {};\n newCultures[defaultCulture] = availableCultures()[defaultCulture];\n extend(newCultures, customCultures);\n availableCultures(newCultures);\n },\n WidgetLocalization: localization\n });\n };\n }\n static generateDesignerEvents(fireEvent) {\n var customizeActionsEvent = { publicName: 'CustomizeMenuActions', privateName: 'customizeActions' };\n var reportTabClosingEvent = { publicName: 'ReportTabClosing', privateName: 'reportTabClosing' };\n var reportTabClosedEvent = { publicName: 'ReportTabClosed', privateName: 'reportTabClosed' };\n var customizeParameterEditorsEvent = { publicName: 'CustomizeParameterEditors', privateName: 'customizeParameterEditors' };\n var customizeParameterLookUpSourceEvent = { publicName: 'CustomizeParameterLookUpSource', privateName: 'customizeParameterLookUpSource' };\n var exitDesignerEvent = { publicName: 'ExitDesigner', privateName: 'exitDesigner' };\n var reportSavingEvent = { publicName: 'ReportSaving', privateName: 'reportSaving' };\n var reportSavedEvent = { publicName: 'ReportSaved', privateName: 'reportSaved' };\n var reportOpeningEvent = { publicName: 'ReportOpening', privateName: 'reportOpening' };\n var reportOpenedEvent = { publicName: 'ReportOpened', privateName: 'reportOpened' };\n var tabChangedEvent = { publicName: 'TabChanged', privateName: 'tabChanged' };\n var onServerErrorEvent = { publicName: 'OnServerError', privateName: 'onServerError' };\n var customizePartsEvent = { publicName: 'CustomizeElements', privateName: 'customizeParts' };\n var componentAddedEvent = { publicName: 'ComponentAdded', privateName: 'componentAdded' };\n var customizeSaveDialogEvent = { publicName: 'CustomizeSaveDialog', privateName: 'customizeSaveDialog' };\n var customizeSaveAsDialogEvent = { publicName: 'CustomizeSaveAsDialog', privateName: 'customizeSaveAsDialog' };\n var customizeOpenDialogEvent = { publicName: 'CustomizeOpenDialog', privateName: 'customizeOpenDialog' };\n var customizeToolboxEvent = { publicName: 'CustomizeToolbox', privateName: 'customizeToolbox' };\n var customizeLocalizationEvent = { publicName: 'CustomizeLocalization', privateName: 'customizeLocalization' };\n var customizeFieldListActionsEvent = { publicName: 'CustomizeFieldListActions', privateName: 'customizeFieldListActions' };\n var onInitializingEvent = { publicName: 'OnInitializing', privateName: 'onInitializing' };\n var beforeRenderEvent = { publicName: 'BeforeRender', privateName: 'beforeRender' };\n var customizeWizardEvent = { publicName: 'CustomizeWizard', privateName: 'customizeWizard' };\n onInitializingEvent['callback'] = function onInitializing() {\n fireEvent(onInitializingEvent.publicName);\n };\n customizeLocalizationEvent['callback'] = EventGenerator.generateCustomizeLocalizationCallback(fireEvent);\n customizeActionsEvent['callback'] = function customizeActions(actions) {\n fireEvent(customizeActionsEvent.publicName, {\n Actions: actions,\n GetById: (actionId) => {\n return actionId ? actions.filter(function (item) { return actionId === item.id; })[0] : null;\n }\n });\n };\n beforeRenderEvent['callback'] = function beforeRender(designerModel) {\n fireEvent(beforeRenderEvent.publicName, designerModel);\n };\n customizeParameterEditorsEvent['callback'] = function customizeParameterEditors(parameter, info) {\n fireEvent(customizeParameterEditorsEvent.publicName, {\n parameter: parameter,\n info: info\n });\n };\n customizeParameterLookUpSourceEvent['callback'] = function customizeParameterLookUpSource(parameter, items) {\n var arg = {\n parameter,\n items,\n dataSource: null\n };\n fireEvent(customizeParameterLookUpSourceEvent.publicName, arg);\n return arg.dataSource;\n };\n exitDesignerEvent['callback'] = function exitDesigner() {\n fireEvent(exitDesignerEvent.publicName);\n };\n reportSavingEvent['callback'] = function reportSaving(args) {\n var arg = {\n Url: args.url,\n Report: args.report,\n Cancel: args.cancel\n };\n fireEvent(reportSavingEvent.publicName, arg);\n args.cancel = arg.Cancel;\n };\n reportSavedEvent['callback'] = function reportSaved(args) {\n var arg = {\n Url: args.url,\n Report: args.report\n };\n fireEvent(reportSavedEvent.publicName, arg);\n };\n reportOpenedEvent['callback'] = function reportOpened(args) {\n var arg = {\n Url: args.url,\n Report: args.report\n };\n fireEvent(reportOpenedEvent.publicName, arg);\n };\n reportOpeningEvent['callback'] = function reportOpening(args) {\n var arg = {\n Url: args.url,\n Report: args.report,\n Cancel: args.cancel\n };\n fireEvent(reportOpeningEvent.publicName, arg);\n args.cancel = arg.Cancel;\n };\n tabChangedEvent['callback'] = function tabChanged(tab) {\n fireEvent(tabChangedEvent.publicName, {\n Tab: tab\n });\n };\n onServerErrorEvent['callback'] = function onServerError(args) {\n fireEvent(onServerErrorEvent.publicName, { Error: args });\n };\n componentAddedEvent['callback'] = function componentAdded(args) {\n fireEvent(componentAddedEvent.publicName, { Model: args.model, Parent: args.parent });\n };\n customizePartsEvent['callback'] = function customizeParts(parts) {\n fireEvent(customizePartsEvent.publicName, {\n Elements: parts,\n GetById: id => {\n return id\n ? parts.filter(item => id === item.id)[0]\n : null;\n }\n });\n };\n customizeSaveDialogEvent['callback'] = function customizeSaveDialog(popup) {\n fireEvent(customizeSaveDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeSaveAsDialogEvent['callback'] = function customizeSaveAsDialog(popup) {\n fireEvent(customizeSaveAsDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeOpenDialogEvent['callback'] = function customizeOpenDialog(popup) {\n fireEvent(customizeOpenDialogEvent.publicName, {\n Popup: popup,\n Customize: (template, model) => {\n popup.customize(template, model);\n }\n });\n };\n customizeToolboxEvent['callback'] = function customizeToolbox(controlsFactory) {\n fireEvent(customizeToolboxEvent.publicName, {\n ControlsFactory: controlsFactory\n });\n };\n customizeFieldListActionsEvent['callback'] = function customizeFieldListActions(item, actions) {\n fireEvent(customizeFieldListActionsEvent.publicName, {\n Item: item,\n Actions: actions\n });\n };\n customizeWizardEvent['callback'] = function customizeWizard(type, wizard) {\n fireEvent(customizeWizardEvent.publicName, {\n Type: type,\n Wizard: wizard\n });\n };\n reportTabClosingEvent['callback'] = function reportTabClosing(tab, deffered) {\n var args = {\n Tab: tab,\n ReadyToClose: deffered,\n Handled: false\n };\n fireEvent(reportTabClosingEvent.publicName, args);\n return args.Handled;\n };\n reportTabClosedEvent['callback'] = function reportTabClosed(tab) {\n fireEvent(reportTabClosedEvent.publicName, {\n Tab: tab\n });\n };\n return [\n customizeActionsEvent,\n reportTabClosingEvent,\n reportTabClosedEvent,\n customizeParameterEditorsEvent,\n customizeParameterLookUpSourceEvent,\n exitDesignerEvent,\n reportSavingEvent,\n reportSavedEvent,\n reportOpeningEvent,\n reportOpenedEvent,\n tabChangedEvent,\n onServerErrorEvent,\n customizePartsEvent,\n componentAddedEvent,\n customizeSaveDialogEvent,\n customizeSaveAsDialogEvent,\n customizeOpenDialogEvent,\n customizeToolboxEvent,\n customizeLocalizationEvent,\n customizeFieldListActionsEvent,\n onInitializingEvent,\n beforeRenderEvent,\n customizeWizardEvent\n ];\n }\n static generatePreviewEvents(fireEvent, prefix) {\n function generateBrickMethods(brick) {\n return {\n GetBrickText: function () { return brick() && brick().text(); },\n GetBrickValue: function (key = 'value') {\n var contentValue = brick() && brick().content && brick().content.filter(function (x) { return x.Key === key; })[0];\n return contentValue && contentValue.Value;\n },\n };\n }\n var previewClickEvent = { publicName: 'PreviewClick', privateName: 'previewClick' };\n var documentReadyEvent = { publicName: [prefix, 'DocumentReady'].join(''), privateName: 'documentReady' };\n var editingFieldChangedEvent = { publicName: [prefix, 'EditingFieldChanged'].join(''), privateName: 'editingFieldChanged' };\n var parametersSubmittedEvent = { publicName: [prefix, 'ParametersSubmitted'].join(''), privateName: 'parametersSubmitted' };\n var parametersInitializedEvent = { publicName: [prefix, 'ParametersInitialized'].join(''), privateName: 'parametersInitialized' };\n var parametersResetEvent = { publicName: [prefix, 'ParametersReset'].join(''), privateName: 'parametersReset' };\n var customizeParameterLookUpSourceEvent = { publicName: 'CustomizeParameterLookUpSource', privateName: 'customizeParameterLookUpSource' };\n var customizeParameterEditorsEvent = { publicName: 'CustomizeParameterEditors', privateName: 'customizeParameterEditors' };\n var customizeActionsEvent = { publicName: [prefix, 'CustomizeMenuActions'].join(''), privateName: 'customizeActions' };\n var customizePartsEvent = { publicName: [prefix, 'CustomizeElements'].join(''), privateName: 'customizeParts' };\n var customizeExportOptionsEvent = { publicName: [prefix, 'CustomizeExportOptions'].join(''), privateName: 'customizeExportOptions' };\n var onServerErrorEvent = { publicName: 'OnServerError', privateName: 'onServerError' };\n var onExportEvent = { publicName: [prefix, 'OnExport'].join(''), privateName: 'onExport' };\n customizeParameterEditorsEvent['callback'] = function customizeParameterEditors(parameter, info) {\n fireEvent(customizeParameterEditorsEvent.publicName, { parameter, info });\n };\n customizePartsEvent['callback'] = function customizeParts(parts) {\n fireEvent(customizePartsEvent.publicName, {\n Elements: parts,\n GetById: (templateId) => {\n return templateId ? parts.filter(function (item) { return templateId === item.templateName; })[0] : null;\n }\n });\n };\n customizeActionsEvent['callback'] = function customizeActions(actions) {\n fireEvent(customizeActionsEvent.publicName, {\n Actions: actions,\n GetById: (actionId) => {\n return actionId ? actions.filter(function (item) { return actionId === item.id; })[0] : null;\n }\n });\n };\n customizeParameterLookUpSourceEvent['callback'] = function customizeParameterLookUpSource(parameter, items) {\n var arg = {\n parameter,\n items,\n dataSource: null\n };\n fireEvent(customizeParameterLookUpSourceEvent.publicName, arg);\n return arg.dataSource;\n };\n previewClickEvent['callback'] = function previewClick(pageIndex, brick, defaultHandler) {\n var arg = Object.assign(Object.assign({ PageIndex: pageIndex, Brick: brick, DefaultHandler: defaultHandler }, generateBrickMethods(() => brick)), { Handled: false });\n fireEvent(previewClickEvent.publicName, arg);\n return arg.Handled;\n };\n parametersResetEvent['callback'] = function parametersReset(model, parameters) {\n fireEvent(parametersResetEvent.publicName, {\n ParametersViewModel: model,\n Parameters: parameters\n });\n };\n parametersSubmittedEvent['callback'] = function parametersSubmitted(model, parameters) {\n fireEvent(parametersSubmittedEvent.publicName, {\n ParametersViewModel: model,\n Parameters: parameters\n });\n };\n parametersInitializedEvent['callback'] = function parametersInitialized(model, info, submit, shouldRequestParameters) {\n fireEvent(parametersInitializedEvent.publicName, {\n ParametersModel: model,\n ActualParametersInfo: info,\n Submit: submit,\n ShouldRequestParameters: shouldRequestParameters\n });\n };\n editingFieldChangedEvent['callback'] = function editingFieldChanged(field, oldValue, newValue) {\n var arg = Object.assign({ Field: field, OldValue: oldValue, NewValue: newValue }, generateBrickMethods(() => field.brick));\n fireEvent(editingFieldChangedEvent.publicName, arg);\n return arg.NewValue;\n };\n documentReadyEvent['callback'] = function documentReady(documentId, reportId, pageCount) {\n fireEvent(documentReadyEvent.publicName, {\n ReportId: reportId,\n DocumentId: documentId,\n PageCount: pageCount\n });\n };\n onServerErrorEvent['callback'] = function onServerError(args) {\n fireEvent(onServerErrorEvent.publicName, { Error: args });\n };\n onExportEvent['callback'] = function onExport(args) {\n fireEvent(onExportEvent.publicName, args);\n };\n customizeExportOptionsEvent['callback'] = function customizeExportOptions(options) {\n var arg = new CustomizeExportOptionsEventArgs(options);\n fireEvent(customizeExportOptionsEvent.publicName, arg);\n };\n var result = [\n previewClickEvent,\n documentReadyEvent,\n editingFieldChangedEvent,\n parametersSubmittedEvent,\n parametersInitializedEvent,\n parametersResetEvent,\n customizeParameterLookUpSourceEvent,\n customizeParameterEditorsEvent,\n customizeActionsEvent,\n customizePartsEvent,\n customizeExportOptionsEvent,\n onServerErrorEvent,\n onExportEvent,\n ];\n if (!prefix) {\n var onInitializingEvent = { publicName: 'OnInitializing', privateName: 'onInitializing' };\n onInitializingEvent['callback'] = function onInitializing() {\n fireEvent(onInitializingEvent.publicName);\n };\n result.push(onInitializingEvent);\n var beforeRenderEvent = { publicName: 'BeforeRender', privateName: 'beforeRender' };\n beforeRenderEvent['callback'] = function beforeRender(designerModel) {\n fireEvent(beforeRenderEvent.publicName, designerModel);\n };\n result.push(beforeRenderEvent);\n var customizeLocalizationEvent = { publicName: 'CustomizeLocalization', privateName: 'customizeLocalization' };\n customizeLocalizationEvent['callback'] = EventGenerator.generateCustomizeLocalizationCallback(fireEvent);\n result.push(customizeLocalizationEvent);\n }\n return result;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\versions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as clientVersions from '@devexpress/analytics-core/core/internal/dx-versions';\nimport { version } from '../dx-reporting-version';\n(clientVersions.dxversions || clientVersions)['reporting'] = version;\n","/**\r\n* DevExpress HTML/JS Reporting (dx-reporting-version.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport const version = '23.1.4';\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\pictureEditMode.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var PictureEditMode;\n(function (PictureEditMode) {\n PictureEditMode[PictureEditMode[\"Image\"] = 0] = \"Image\";\n PictureEditMode[PictureEditMode[\"Signature\"] = 1] = \"Signature\";\n PictureEditMode[PictureEditMode[\"ImageAndSignature\"] = 2] = \"ImageAndSignature\";\n})(PictureEditMode || (PictureEditMode = {}));\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorTypes.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var PictureEditorActionId;\n(function (PictureEditorActionId) {\n PictureEditorActionId[PictureEditorActionId[\"OpenFile\"] = 0] = \"OpenFile\";\n PictureEditorActionId[PictureEditorActionId[\"PickImage\"] = 1] = \"PickImage\";\n PictureEditorActionId[PictureEditorActionId[\"Alignment\"] = 2] = \"Alignment\";\n PictureEditorActionId[PictureEditorActionId[\"Brush\"] = 3] = \"Brush\";\n PictureEditorActionId[PictureEditorActionId[\"Clear\"] = 4] = \"Clear\";\n PictureEditorActionId[PictureEditorActionId[\"Reset\"] = 5] = \"Reset\";\n})(PictureEditorActionId || (PictureEditorActionId = {}));\n","/**\r\n* DevExpress HTML/JS Reporting (common\\utils\\editingFieldExtensions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { extend, formatDate, parseDate, processTextEditorHotKeys } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { ValueEditorHelper } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport { PictureEditMode } from '../../viewer/widgets/pictureEditor/pictureEditMode';\nimport { PictureEditorActionId } from '../../viewer/widgets/pictureEditor/_pictureEditorTypes';\nexport var Categories = {\n Image: () => 'Image',\n Numeric: () => 'Numeric',\n DateTime: () => 'Date-Time',\n Letters: () => 'Letters'\n};\nexport class EditingFieldExtensions {\n constructor() {\n this._editors = {};\n }\n static instance() {\n if (!EditingFieldExtensions._instance) {\n EditingFieldExtensions._instance = new EditingFieldExtensions();\n EditingFieldExtensions._instance._registerStandartEditors();\n }\n return EditingFieldExtensions._instance;\n }\n _registerStandartEditors() {\n var getLocalizedString = getLocalization;\n EditingFieldExtensions.registerRegExpEditor('Integer', getLocalizedString('Integer', 'PreviewStringId.EditingFieldEditors_Integer'), Categories.Numeric(), /^-?\\d*$/, /^-?\\d+$/, '0');\n EditingFieldExtensions.registerRegExpEditor('IntegerPositive', getLocalizedString('Integer Positive', 'PreviewStringId.EditingFieldEditors_IntegerPositive'), Categories.Numeric(), /^\\d+$/, /^\\d+$/, '0');\n EditingFieldExtensions.registerRegExpEditor('FixedPoint', getLocalizedString('Fixed-Point', 'PreviewStringId.EditingFieldEditors_FixedPoint'), Categories.Numeric(), /^-?(\\d+([\\.,]?\\d*)?)?$/, /^-?\\d+([\\.,]?\\d*)?$/, '0');\n EditingFieldExtensions.registerRegExpEditor('FixedPointPositive', getLocalizedString('Fixed-Point Positive', 'PreviewStringId.EditingFieldEditors_FixedPointPositive'), Categories.Numeric(), /^\\d+([\\.,]?\\d*)?$/, /^\\d+([\\.,]?\\d*)?$/, '0');\n var dateEditorOptions = {\n onPreRender: (data) => {\n if (!(data.options.value() instanceof Date)) {\n data.options.value(parseDate(data.options.value(), false) || new Date(Date.now()));\n }\n },\n onHideEditor: (field) => {\n field.editValue(formatDate(field._editorValue()));\n }\n };\n EditingFieldExtensions.registerEditor('Date', getLocalizedString('Date', 'PreviewStringId.EditingFieldEditors_Date'), Categories.DateTime(), dateEditorOptions, 'dxrp-editing-field-datetime');\n EditingFieldExtensions.registerImageEditor({\n name: 'Image',\n displayName: getLocalizedString('Image', 'PreviewStringId.EditingFieldEditors_Image'),\n drawingEnabled: false,\n imageLoadEnabled: true\n });\n EditingFieldExtensions.registerImageEditor({\n name: 'Signature',\n displayName: getLocalizedString('Signature', 'PreviewStringId.EditingFieldEditors_Signature'),\n drawingEnabled: true,\n imageLoadEnabled: false\n });\n EditingFieldExtensions.registerImageEditor({\n name: 'ImageAndSignature',\n displayName: getLocalizedString('Image And Signature', 'PreviewStringId.EditingFieldEditors_ImageAndSignature'),\n drawingEnabled: true,\n imageLoadEnabled: true\n });\n EditingFieldExtensions.registerRegExpEditor('OnlyLatinLetters', getLocalizedString('Only Latin Letters', 'PreviewStringId.EditingFieldEditors_OnlyLatinLetters'), Categories.Letters(), /^[a-zA-Z]*$/, /^[a-zA-Z]*$/, '');\n }\n static enableImageEditorShading() {\n ['Image', 'ImageAndSignature', 'Signature'].forEach(editorType => {\n var editor = EditingFieldExtensions.instance()._editors[editorType];\n extend(true, editor, { options: { registrationOptions: { shadingEnabled: true } } });\n });\n }\n static registerImageEditor(imageRegistrationOptions) {\n imageRegistrationOptions.imageLoadEnabled = imageRegistrationOptions.imageLoadEnabled === undefined ? !imageRegistrationOptions.images : imageRegistrationOptions.imageLoadEnabled;\n imageRegistrationOptions.drawingEnabled = imageRegistrationOptions.drawingEnabled === undefined ? false : imageRegistrationOptions.drawingEnabled;\n var editMode = PictureEditMode.ImageAndSignature;\n if (!imageRegistrationOptions.imageLoadEnabled)\n editMode = PictureEditMode.Signature;\n if (!imageRegistrationOptions.drawingEnabled)\n editMode = PictureEditMode.Image;\n var options = {\n editMode: editMode,\n registrationOptions: imageRegistrationOptions\n };\n options['callbacks'] = {\n customizeActions: (s, actions) => {\n if (imageRegistrationOptions.images) {\n var imagePickerAction = s.actionsProvider.createImagePickerAction(imageRegistrationOptions.images, imageRegistrationOptions.searchEnabled, (base64) => {\n s.painter.image(base64);\n s.painter.refresh();\n });\n actions.splice(0, 0, imagePickerAction);\n if (!imageRegistrationOptions.sizeOptionsEnabled) {\n var alignmentAction = actions.filter(x => x.id === PictureEditorActionId.Alignment)[0];\n alignmentAction && actions.splice(actions.indexOf(alignmentAction), 1);\n }\n }\n if (!imageRegistrationOptions.imageLoadEnabled) {\n var openFile = actions.filter((x => x.id === PictureEditorActionId.OpenFile))[0];\n openFile && actions.splice(actions.indexOf(openFile), 1);\n }\n if (imageRegistrationOptions.sizeOptionsEnabled !== undefined && !imageRegistrationOptions.sizeOptionsEnabled) {\n var alignmentAction = actions.filter(x => x.id === PictureEditorActionId.Alignment)[0];\n alignmentAction && actions.splice(actions.indexOf(alignmentAction), 1);\n }\n if (imageRegistrationOptions.clearEnabled !== undefined && !imageRegistrationOptions.clearEnabled) {\n var clearAction = actions.filter(x => x.id === PictureEditorActionId.Clear)[0];\n clearAction && actions.splice(actions.indexOf(clearAction), 1);\n }\n if (imageRegistrationOptions.customizeActions) {\n imageRegistrationOptions.customizeActions(s, actions);\n return;\n }\n }\n };\n EditingFieldExtensions.registerEditor(imageRegistrationOptions.name, imageRegistrationOptions.displayName, Categories.Image(), options, 'dxrp-editing-field-image');\n }\n static registerEditor(name, displayName, category, options, template, validate, defaultVal = '') {\n var initValue;\n var extendOptions = {\n onInitialized: e => {\n if (validate) {\n ValueEditorHelper.validateWidgetValue(e, validate, defaultVal);\n }\n initValue = e.component.option('value');\n },\n onKeyUp: e => {\n var editor = e.component;\n processTextEditorHotKeys(e.event, {\n esc: () => {\n editor.blur();\n editor.option('value', initValue);\n },\n ctrlEnter: () => {\n editor.blur();\n }\n });\n }\n };\n EditingFieldExtensions.instance()._editors[name] = {\n name: name,\n displayName: displayName,\n category: category,\n options: $.extend({}, options, extendOptions),\n template: template\n };\n }\n static registerMaskEditor(editorID, displayName, category, mask) {\n EditingFieldExtensions.registerEditor(editorID, displayName, category, { mask: mask });\n }\n static registerRegExpEditor(editorID, displayName, category, regExpEditing, regExpFinal, defaultVal) {\n var validate = (val) => { return regExpFinal.test(val); };\n EditingFieldExtensions.registerEditor(editorID, displayName, category, ValueEditorHelper.getValueEditorOptions(regExpEditing, validate, defaultVal), null, validate, defaultVal);\n }\n static unregisterEditor(editorID) {\n delete EditingFieldExtensions.instance()._editors[editorID];\n }\n categories(excludeCategories = []) {\n var categories = [];\n Object.keys(this._editors).forEach(p => {\n var category = this._editors[p].category;\n if (excludeCategories.indexOf(category) === -1 && categories.indexOf(category) === -1) {\n categories.push(category);\n }\n });\n return categories;\n }\n editors() {\n return Object.keys(this._editors).map(key => this._editors[key]);\n }\n editorsByCategories(categories = []) {\n var editors = [];\n Object.keys(this._editors).forEach(p => {\n if (categories.indexOf(this._editors[p].category) != -1) {\n editors.push(this._editors[p]);\n }\n });\n return editors;\n }\n editor(editorID) {\n return this._editors[editorID];\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\utils\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { accessibilityFontSizeZoomFactor } from '@devexpress/analytics-core/analytics-internal';\nimport { propertiesGridEditorsPaddingLeft } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as ko from 'knockout';\nexport var cultureInfo = {};\nexport var generateGuid = () => {\n var getNewQuartet = function (i) {\n return Math.floor((1 + Math.random()) * Math.pow(0x10000, i)).toString(16).substring(1);\n };\n return getNewQuartet(2) + '-' + getNewQuartet(1) + '-' + getNewQuartet(1) + '-' + getNewQuartet(1) + '-' + getNewQuartet(3);\n};\nvar commonBlur = HTMLElement.prototype.blur;\nvar fullscreenEventsList = ['fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'MSFullscreenChange'];\nexport function createFullscreenComputed(element, parent) {\n var _fullscreen = ko.observable(false);\n var func = () => {\n var isFullscreen = document.fullscreen || !!document['msFullscreenElement'] || !!document['webkitFullscreenElement'];\n if (element['msRequestFullscreen']) {\n HTMLElement.prototype.blur = isFullscreen ? function () {\n try {\n commonBlur.apply(this);\n }\n catch (e) {\n document.body.blur();\n }\n } : commonBlur;\n }\n _fullscreen(isFullscreen);\n };\n var fullscreen = ko.computed({\n read: () => _fullscreen(),\n write: (newVal) => {\n _fullscreen(newVal);\n toggleFullscreen(element, newVal);\n }\n });\n addFullscreenListener(document, func);\n parent._disposables.push({\n dispose: () => {\n removeFullscreenListener(document, func);\n commonBlur = null;\n func = null;\n }\n }, fullscreen);\n return fullscreen;\n}\nexport function processZoomFactor(accessibilityCompliant) {\n if (!accessibilityCompliant)\n return;\n var defaultFontSize = 16;\n var zoomFactor = (parseInt(window.getComputedStyle(document.documentElement).getPropertyValue('font-size')) || defaultFontSize) / defaultFontSize;\n if (zoomFactor !== accessibilityFontSizeZoomFactor()) {\n propertiesGridEditorsPaddingLeft(zoomFactor * propertiesGridEditorsPaddingLeft());\n accessibilityFontSizeZoomFactor(zoomFactor);\n }\n}\nfunction addFullscreenListener(element, func) {\n fullscreenEventsList.forEach((eventName) => {\n element.addEventListener(eventName, func);\n });\n}\nfunction removeFullscreenListener(element, func) {\n fullscreenEventsList.forEach((eventName) => {\n element.removeEventListener(eventName, func);\n });\n}\nfunction showFullscreen(element) {\n if (element.requestFullscreen)\n element.requestFullscreen();\n else if (element['mozRequestFullScreen'])\n element['mozRequestFullScreen']();\n else if (element['webkitRequestFullscreen'])\n element['webkitRequestFullscreen']();\n else if (element['msRequestFullscreen']) {\n element['msRequestFullscreen']();\n }\n}\nfunction exitFullscreen() {\n if (document.exitFullscreen)\n document.exitFullscreen();\n else if (document['mozCancelFullScreen'])\n document['mozCancelFullScreen']();\n else if (document['webkitExitFullscreen'])\n document['webkitExitFullscreen']();\n else if (document['msExitFullscreen']) {\n HTMLElement.prototype.blur = commonBlur;\n document['msExitFullscreen']();\n }\n}\nfunction toggleFullscreen(element, value) {\n if (!element)\n return;\n if (value)\n showFullscreen(element);\n else\n exitFullscreen();\n}\nexport function transformNewLineCharacters(value) {\n return value.replace(/(\\r\\n|\\n|\\r)/g, '\\r\\n');\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\widgets\\_editorTemplates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { cultureInfo } from '../utils/_utils';\nexport var editorTemplates = {\n csvSeparator: { header: 'dx-text',\n extendedOptions: { placeholder: ko.pureComputed(() => (cultureInfo['csvTextSeparator'] || '') + ' ' + getLocalization('(Using System Separator)', 'PreviewStringId.ExportOption_CsvSeparator_UsingSystem')) }\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\metadata.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nimport { colorFromString, colorToString, floatFromModel, fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates as analyticEditorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { editorTemplates } from '../widgets/_editorTemplates';\nexport var pageBorderColor = { propertyName: 'pageBorderColor', modelName: '@PageBorderColor', from: colorFromString, toJsonObject: colorToString, displayName: 'Page Border Color', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageBorderColor', editor: analyticEditorTemplates.getEditor('customColorEditor'), defaultVal: 'Black' };\nexport var pageBorderWidth = { propertyName: 'pageBorderWidth', modelName: '@PageBorderWidth', displayName: 'Page Border Width', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageBorderWidth', from: floatFromModel, editor: analyticEditorTemplates.getEditor('numeric'), defaultVal: 1 };\nexport var pageRange = { propertyName: 'pageRange', modelName: '@PageRange', displayName: 'Page Range', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.PageRange', editor: analyticEditorTemplates.getEditor('text'), defaultVal: '' };\nexport var expotOptionsTitle = { propertyName: 'title', modelName: '@Title', displayName: 'Title', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.Title', editor: analyticEditorTemplates.getEditor('text'), defaultVal: 'Document' };\nexport var htmlTableLayout = { propertyName: 'tableLayout', modelName: '@TableLayout', displayName: 'Table Layout', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.TableLayout', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: true };\nexport var docxTableLayout = { propertyName: 'tableLayout', modelName: '@TableLayout', displayName: 'Table Layout', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.TableLayout', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var allowURLsWithJSContent = { propertyName: 'allowURLsWithJSContent', modelName: '@AllowURLsWithJSContent', displayName: 'Allow URLs with JS Content', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.AllowURLsWithJSContent', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var rasterizationResolution = { propertyName: 'rasterizationResolution', modelName: '@RasterizationResolution', displayName: 'Rasterization Resolution', localizationId: 'DevExpress.XtraPrinting.PageByPageExportOptionsBase.RasterizationResolution', editor: analyticEditorTemplates.getEditor('numeric'), defaultVal: 96 };\nexport var rasterizeImages = { propertyName: 'rasterizeImages', modelName: '@RasterizeImages', displayName: 'Rasterize Images', localizationId: 'DevExpress.XtraPrinting.PageByPageExportOptionsBase.RasterizeImages', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var useHRefHyperlinks = { propertyName: 'useHRefHyperlinks', modelName: '@UseHRefHyperlinks', displayName: 'Use HRef Hyperlinks', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.UseHRefHyperlinks', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var exportWatermarks = { propertyName: 'exportWatermarks', modelName: '@ExportWatermarks', displayName: 'Export Watermarks', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.ExportWatermarks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var inlineCss = { propertyName: 'inlineCss', modelName: '@InlineCss', displayName: 'Inline CSS', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.InlineCss', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var removeSecondarySymbols = { propertyName: 'removeSecondarySymbols', modelName: '@RemoveSecondarySymbols', displayName: 'Remove Secondary Symbols', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.RemoveSecondarySymbols', editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, defaultVal: false };\nexport var characterSet = {\n propertyName: 'characterSet', modelName: '@CharacterSet', displayName: 'Character Set', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.CharacterSet', editor: analyticEditorTemplates.getEditor('combobox'), defaultVal: 'utf-8',\n valuesArray: [{ value: 'windows-1256', displayValue: 'Arabic (Windows)' }, { value: 'iso-8859-4', displayValue: 'Baltic (ISO)' }, { value: 'windows-1257', displayValue: 'Baltic (Windows)' }, { value: 'iso-8859-2', displayValue: 'Central European (ISO)' }, { value: 'windows-1250', displayValue: 'Central European (Windows)' }, { value: 'iso-8859-5', displayValue: 'Cyrillic (ISO)' }, { value: 'koi8-r', displayValue: 'Cyrillic (KOI8-r)' }, { value: 'windows-1251', displayValue: 'Cyrillic (Windows)' }, { value: 'iso-8859-15', displayValue: 'Latin 9 (ISO)' }, { value: 'utf-7', displayValue: 'Unicode (UTF-7)' }, { value: 'utf-8', displayValue: 'Unicode (UTF-8)' }, { value: 'iso-8859-1', displayValue: 'Western European (ISO)' }, { value: 'windows-1252', displayValue: 'Western European (Windows)' }]\n};\nexport function getExportModeValues(format = 'Html', preview, merged) {\n var singleFile = { value: 'SingleFile', displayValue: 'Single File', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_SingleFile', format) };\n var singleFilePageByPage = { value: 'SingleFilePageByPage', displayValue: 'Single File PageByPage', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_SingleFilePageByPage', format) };\n var differentFiles = { value: 'DifferentFiles', displayValue: 'Different Files', localizationId: formatUnicorn('PreviewStringId.ExportOption_{0}ExportMode_DifferentFiles', format) };\n if (merged) {\n return [singleFilePageByPage];\n }\n else if (preview) {\n return [singleFile, singleFilePageByPage];\n }\n else {\n return [singleFile, singleFilePageByPage, differentFiles];\n }\n}\nexport var exportPageBreaks = { propertyName: 'exportPageBreaks', modelName: '@ExportPageBreaks', displayName: 'Export Page Breaks', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.ExportPageBreaks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool };\nexport var rtfExportMode = {\n propertyName: 'rtfExportMode', modelName: '@ExportMode', defaultVal: 'SingleFilePageByPage',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions.ExportMode',\n valuesArray: getExportModeValues('Rtf', true)\n};\nexport var docxExportMode = {\n propertyName: 'docxExportMode', modelName: '@ExportMode', defaultVal: 'SingleFilePageByPage',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.ExportMode',\n valuesArray: getExportModeValues('Docx', true)\n};\nexport var htmlExportMode = {\n propertyName: 'htmlExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptionsBase.ExportMode',\n valuesArray: getExportModeValues('Html')\n};\nexport var embedImagesInHTML = {\n propertyName: 'embedImagesInHTML', modelName: '@EmbedImagesInHTML', defaultVal: false,\n editor: analyticEditorTemplates.getEditor('bool'), from: parseBool, displayName: 'Embed Images In HTML', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions.EmbedImagesInHTML'\n};\nexport var imageExportMode = {\n propertyName: 'imageExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.ExportMode',\n valuesArray: getExportModeValues('Image')\n};\nexport var xlsExportMode = {\n propertyName: 'xlsExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ExportMode',\n valuesArray: getExportModeValues('Xls')\n};\nexport var xlsxExportMode = {\n propertyName: 'xlsxExportMode', modelName: '@ExportMode', defaultVal: 'SingleFile',\n editor: analyticEditorTemplates.getEditor('combobox'), displayName: 'Export Mode', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions.ExportMode',\n valuesArray: getExportModeValues('Xlsx')\n};\nfunction getTextExportModeValues() {\n return [\n { value: 'Text', displayValue: 'Text', localizationId: 'DevExpress.XtraPrinting.TextExportMode.Text' },\n { value: 'Value', displayValue: 'Value', localizationId: 'DevExpress.XtraPrinting.TextExportMode.Value' }\n ];\n}\nexport var textExportMode = {\n propertyName: 'textExportMode', modelName: '@TextExportMode', displayName: 'Text Export Mode', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.TextExportMode', defaultVal: 'Text', editor: analyticEditorTemplates.getEditor('combobox'),\n valuesArray: getTextExportModeValues()\n};\nexport var xlsTextExportMode = {\n propertyName: 'textExportMode', modelName: '@TextExportMode', displayName: 'Text Export Mode', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.TextExportMode', defaultVal: 'Value', editor: analyticEditorTemplates.getEditor('combobox'),\n valuesArray: getTextExportModeValues()\n};\nexport var csvTextSeparator = { propertyName: 'separator', modelName: '@Separator', defaultVal: '', displayName: 'Separator', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Separator', editor: editorTemplates.csvSeparator };\nexport var useCustomSeparator = { propertyName: 'useCustomSeparator', displayName: 'Use Custom Separator', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.UseCustomSeparator', editor: analyticEditorTemplates.getEditor('bool') };\nexport var textEncodingType = {\n propertyName: 'encodingType', modelName: '@EncodingType', displayName: 'Encoding', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Encoding', editor: analyticEditorTemplates.getEditor('combobox'), defaultVal: 'Default', from: fromEnum,\n valuesArray: [\n { value: 'Default', displayValue: 'Windows-1252', localizationId: 'DevExpress.XtraPrinting.EncodingType.Default' },\n { value: 'ASCII', displayValue: 'us-ascii', localizationId: 'DevExpress.XtraPrinting.EncodingType.ASCII' },\n { value: 'Unicode', displayValue: 'utf-16', localizationId: 'DevExpress.XtraPrinting.EncodingType.Unicode' },\n { value: 'BigEndianUnicode', displayValue: 'utf-16BE', localizationId: 'DevExpress.XtraPrinting.EncodingType.BigEndianUnicode' },\n { value: 'UTF7', displayValue: 'utf-7', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF7' },\n { value: 'UTF8', displayValue: 'utf-8', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF8' },\n { value: 'UTF32', displayValue: 'utf-32', localizationId: 'DevExpress.XtraPrinting.EncodingType.UTF32' }\n ]\n};\nexport var xlsExportHyperlinks = {\n propertyName: 'exportHyperlinks', modelName: '@ExportHyperlinks', displayName: 'Export Hyperlinks', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ExportHyperlinks', defaultVal: true, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsRawDataMode = {\n propertyName: 'rawDataMode', modelName: '@RawDataMode', displayName: 'Raw Data Mode', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.RawDataMode', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsShowGridLines = {\n propertyName: 'showGridLines', modelName: '@ShowGridLines', displayName: 'Show Grid Lines', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.ShowGridLines', defaultVal: false, editor: analyticEditorTemplates.getEditor('bool'), from: parseBool\n};\nexport var xlsExportOptionsSheetName = {\n propertyName: 'sheetName', modelName: '@SheetName', displayName: 'Sheet Name', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.SheetName', defaultVal: 'Sheet', editor: analyticEditorTemplates.getEditor('text')\n};\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\csvMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { csvTextSeparator, textEncodingType, textExportMode, useCustomSeparator } from './metadata';\nexport var csvExportOptionsSerializationInfo = [\n textEncodingType,\n textExportMode,\n { propertyName: 'quoteStringsWithSeparators', modelName: '@QuoteStringsWithSeparators', displayName: 'Quote Strings with Separators', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.QuoteStringsWithSeparators', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n useCustomSeparator, csvTextSeparator,\n { propertyName: 'skipEmptyRows', modelName: '@SkipEmptyRows', displayName: 'Skip Empty Rows', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.SkipEmptyRows', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'skipEmptyColumns', modelName: '@SkipEmptyColumns', displayName: 'Skip Empty Columns', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions.SkipEmptyColumns', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\csvExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { csvExportOptionsSerializationInfo } from './csvMetaData';\nexport class CsvExportOptions {\n constructor(model, serializer) {\n this.defaultSeparatorValue = '';\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n this.useCustomSeparator = ko.observable(this.separator && this.separator() !== this.defaultSeparatorValue);\n var separatorValue = ko.observable(this.separator());\n this.useCustomSeparator.subscribe((newValue) => {\n if (!newValue)\n separatorValue(this.defaultSeparatorValue);\n });\n this.separator = ko.computed({\n read: () => { return separatorValue(); },\n write: (newValue) => {\n separatorValue(newValue);\n if (this.useCustomSeparator)\n this.useCustomSeparator(newValue !== this.defaultSeparatorValue);\n }\n });\n }\n static from(model, serializer) {\n return new CsvExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, csvExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return csvExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return (name === 'separator') && !(this.useCustomSeparator && this.useCustomSeparator());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\docxExportDocumentOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class DocxExportDocumentOptions {\n static from(model, serializer) {\n return new DocxExportDocumentOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, docxExportDocumentOptionsSerializationInfo, refs);\n }\n getInfo() {\n return docxExportDocumentOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var docxExportDocumentOptionsSerializationInfo = [\n { propertyName: 'title', modelName: '@Title', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Title', displayName: 'Title', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'subject', modelName: '@Subject', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Subject', displayName: 'Subject', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'keywords', modelName: '@Keywords', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Keywords', displayName: 'Keywords', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'category', modelName: '@Category', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Category', displayName: 'Category', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'comments', modelName: '@Comments', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Comments', displayName: 'Comments', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'author', modelName: '@Author', localizationId: 'DevExpress.XtraPrinting.DocxDocumentOptions.Author', displayName: 'Author', defaultVal: '', editor: editorTemplates.getEditor('text') },\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\rtfMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { exportPageBreaks, exportWatermarks, pageRange, rasterizationResolution, rtfExportMode } from './metadata';\nexport var rtfExportOptionsSerializationInfoBase = [\n pageRange,\n rasterizationResolution,\n exportPageBreaks,\n exportWatermarks\n];\nexport var emptyFirstPageHeaderFooter = { propertyName: 'emptyFirstPageHeaderFooter', modelName: '@EmptyFirstPageHeaderFooter', displayName: 'Empty First Page Header/Footer', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.EmptyFirstPageHeaderFooter', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool };\nexport var keepRowHeight = { propertyName: 'keepRowHeight', modelName: '@KeepRowHeight', displayName: 'Keep Row Height', localizationId: 'DevExpress.XtraPrinting.FormattedTextExportOptions.KeepRowHeight', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool };\nexport var rtfExportOptionsSerializationInfo = [\n emptyFirstPageHeaderFooter,\n keepRowHeight,\n rtfExportMode\n].concat(rtfExportOptionsSerializationInfoBase);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\docxMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { docxExportMode, docxTableLayout, exportPageBreaks, exportWatermarks, pageRange, rasterizationResolution, rasterizeImages } from './metadata';\nimport { DocxExportDocumentOptions } from './options/docxExportDocumentOptions';\nimport { emptyFirstPageHeaderFooter, keepRowHeight } from './rtfMetaData';\nexport var docxDocumentOptions = { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.DocumentOptions', from: DocxExportDocumentOptions.from, toJsonObject: DocxExportDocumentOptions.toJson, editor: editorTemplates.getEditor('objecteditor') };\nexport var docxExportOptionsSerializationInfo = [\n docxExportMode,\n exportWatermarks,\n pageRange,\n rasterizeImages,\n rasterizationResolution,\n emptyFirstPageHeaderFooter,\n keepRowHeight,\n exportPageBreaks,\n docxTableLayout,\n { propertyName: 'allowFloatingPictures', modelName: '@AllowFloatingPictures', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions.AllowFloatingPictures', displayName: 'Allow Floating Pictures', editor: editorTemplates.getEditor('bool'), from: parseBool, defaultVal: false },\n docxDocumentOptions,\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\docxExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { docxExportOptionsSerializationInfo } from './docxMetaData';\nimport { docxExportMode } from './metadata';\nexport class DocxExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new DocxExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, docxExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return docxExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n var exportMode = this.docxExportMode ? this.docxExportMode() : docxExportMode.defaultVal;\n if (name === 'pageRange' || name === 'tableLayout')\n return exportMode === 'SingleFile';\n else if (name === 'emptyFirstPageHeaderFooter' || name === 'exportPageBreaks') {\n return exportMode === 'SingleFilePageByPage';\n }\n else if (name === 'keepRowHeight') {\n return exportMode === 'SingleFilePageByPage' && !this.tableLayout();\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\emailExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { fromEnum, ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class AdditionalRecipientModel {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n getInfo() {\n return additionalRecipientSerializationsInfo;\n }\n}\nAdditionalRecipientModel.createNew = () => {\n return new AdditionalRecipientModel({});\n};\nexport var additionalRecipientSerializationsInfo = [\n { propertyName: 'ContactName', modelName: '@ContactName', displayName: 'ContactName', localizationId: 'DevExpress.XtraPrinting.Recipient.ContactName', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'Address', modelName: '@Address', displayName: 'Address', localizationId: 'DevExpress.XtraPrinting.Recipient.Address', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'Prefix', modelName: '@Prefix', displayName: 'Prefix', localizationId: 'DevExpress.XtraPrinting.Recipient.Prefix', defaultVal: 'SMTP:', editor: editorTemplates.getEditor('text') },\n {\n propertyName: 'fieldType', modelName: '@FieldType', displayName: 'Field Type', localizationId: 'DevExpress.XtraPrinting.Recipient.FieldType', defaultVal: 'TO', editor: editorTemplates.getEditor('combobox'), from: fromEnum,\n valuesArray: [\n { value: 'TO', displayValue: 'TO', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.TO' },\n { value: 'CC', displayValue: 'CC', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.CC' },\n { value: 'BCC', displayValue: 'BCC', localizationId: 'DevExpress.XtraPrinting.RecipientFieldType.BCC' }\n ]\n },\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\emailMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { AdditionalRecipientModel } from './emailExportOptions';\nexport var nativeFormatOptionsSerializationInfo = [\n { propertyName: 'compressed', modelName: '@Compressed', displayName: 'Compressed', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.Compressed', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'showOptionsBeforeSave', modelName: '@ShowOptionsBeforeSave', displayName: 'Show Options Before Save', localizationId: 'DevExpress.XtraPrinting.NativeFormatOptions.ShowOptionsBeforeSave', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\nexport var additionalRecipients = { propertyName: 'additionalRecipients', modelName: 'AdditionalRecipients', displayName: 'Additional Recipients', localizationId: 'DevExpress.XtraPrinting.EmailOptions.AdditionalRecipients', array: true, editor: editorTemplates.getEditor('commonCollection'), addHandler: AdditionalRecipientModel.createNew, template: '#dxrd-commonCollectionItem' };\nexport var emailOptionsSerializationInfo = [\n { propertyName: 'recipientName', modelName: '@RecipientName', displayName: 'Recipient Name', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientName', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'recipientAddress', modelName: '@RecipientAddress', displayName: 'Recipient Address', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientAddress', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'recipientAddressPrefix', modelName: '@RecipientAddressPrefix', displayName: 'Recipient Address Prefix', localizationId: 'DevExpress.XtraPrinting.EmailOptions.RecipientAddressPrefix', defaultVal: 'SMTP:', editor: editorTemplates.getEditor('text') },\n { propertyName: 'subject', modelName: '@Subject', displayName: 'Subject', localizationId: 'DevExpress.XtraPrinting.EmailOptions.Subject', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'body', modelName: '@Body', displayName: 'Body', localizationId: 'DevExpress.XtraPrinting.EmailOptions.Body', defaultVal: '', editor: editorTemplates.getEditor('text') },\n additionalRecipients\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\htmlMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { allowURLsWithJSContent, characterSet, embedImagesInHTML, exportWatermarks, expotOptionsTitle, htmlExportMode, htmlTableLayout, inlineCss, pageBorderColor, pageBorderWidth, pageRange, rasterizationResolution, removeSecondarySymbols, useHRefHyperlinks } from './metadata';\nexport var htmlExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n rasterizationResolution,\n expotOptionsTitle,\n htmlTableLayout,\n useHRefHyperlinks,\n allowURLsWithJSContent,\n removeSecondarySymbols,\n exportWatermarks,\n characterSet\n];\nexport var htmlExportOptionsSerializationInfo = [htmlExportMode, embedImagesInHTML, inlineCss].concat(htmlExportOptionsSerializationInfoBase);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\htmlExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { htmlExportOptionsSerializationInfo } from './htmlMetaData';\nimport { htmlExportMode } from './metadata';\nexport class HtmlExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new HtmlExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, htmlExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return htmlExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth') || (name === 'exportWatermarks')) && ((this.htmlExportMode ? this.htmlExportMode() : htmlExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\imageMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { imageExportMode, pageBorderColor, pageBorderWidth, pageRange } from './metadata';\nexport var imageExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n { propertyName: 'resolution', modelName: '@Resolution', displayName: 'Resolution', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.Resolution', editor: editorTemplates.getEditor('numeric'), defaultVal: 96 },\n {\n propertyName: 'format', modelName: '@Format', displayName: 'Format', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.Format', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Png', from: fromEnum,\n valuesArray: [\n { value: 'Bmp', displayValue: 'BMP' },\n { value: 'Gif', displayValue: 'GIF' },\n { value: 'Jpeg', displayValue: 'JPEG' },\n { value: 'Png', displayValue: 'PNG' },\n { value: 'Emf', displayValue: 'EMF' },\n { value: 'Wmf', displayValue: 'WMF' },\n { value: 'Tiff', displayValue: 'TIFF' }\n ]\n }\n];\nexport var imageExportOptionsSerializationInfo = [imageExportMode, { propertyName: 'retainBackgroundTransparency', modelName: '@RetainBackgroundTransparency', displayName: 'Retain Background Transparency', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.RetainBackgroundTransparency', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'textRenderingMode', modelName: '@TextRenderingMode', displayName: 'Text Rendering Mode', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions.TextRenderingMode', editor: editorTemplates.getEditor('combobox'), defaultVal: 'SystemDefault', from: fromEnum,\n valuesArray: [\n { value: 'SystemDefault', displayValue: 'SystemDefault', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SystemDefault' },\n { value: 'SingleBitPerPixelGridFit', displayValue: 'SingleBitPerPixelGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SingleBitPerPixelGridFit' },\n { value: 'SingleBitPerPixel', displayValue: 'SingleBitPerPixel', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.SingleBitPerPixel' },\n { value: 'AntiAliasGridFit', displayValue: 'AntiAliasGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.AntiAliasGridFit' },\n { value: 'AntiAlias', displayValue: 'AntiAlias', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.AntiAlias' },\n { value: 'ClearTypeGridFit', displayValue: 'ClearTypeGridFit', localizationId: 'DevExpress.XtraPrinting.TextRenderingMode.ClearTypeGridFit' }\n ]\n }\n].concat(imageExportOptionsSerializationInfoBase);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\imageExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { imageExportOptionsSerializationInfo } from './imageMetaData';\nimport { imageExportMode } from './metadata';\nexport class ImageExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new ImageExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, imageExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return imageExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth')) && ((this.imageExportMode ? this.imageExportMode() : imageExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\mhtMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { allowURLsWithJSContent, characterSet, exportWatermarks, expotOptionsTitle, htmlExportMode, htmlTableLayout, inlineCss, pageBorderColor, pageBorderWidth, pageRange, rasterizationResolution, removeSecondarySymbols, useHRefHyperlinks } from './metadata';\nexport var mhtExportOptionsSerializationInfoBase = [\n pageBorderColor,\n pageBorderWidth,\n pageRange,\n rasterizationResolution,\n expotOptionsTitle,\n characterSet,\n htmlTableLayout,\n useHRefHyperlinks,\n allowURLsWithJSContent,\n removeSecondarySymbols,\n exportWatermarks\n];\nexport var mhtExportOptionsSerializationInfo = [htmlExportMode, inlineCss].concat(mhtExportOptionsSerializationInfoBase);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\mhtExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { htmlExportMode } from './metadata';\nimport { mhtExportOptionsSerializationInfo } from './mhtMetaData';\nexport class MhtExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new MhtExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, mhtExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return mhtExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return ((name === 'pageRange') || (name === 'pageBorderWidth')) && ((this.htmlExportMode ? this.htmlExportMode() : htmlExportMode.defaultVal) === 'SingleFile');\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfExportDocumentOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class PdfExportDocumentOptions {\n static from(model, serializer) {\n return new PdfExportDocumentOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportDocumentOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportDocumentOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var author = { propertyName: 'author', modelName: '@Author', displayName: 'Author', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Author', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var application = { propertyName: 'application', modelName: '@Application', displayName: 'Application', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Application', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var title = { propertyName: 'title', modelName: '@Title', displayName: 'Title', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Title', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var subject = { propertyName: 'subject', modelName: '@Subject', displayName: 'Subject', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Subject', defaultVal: '', editor: editorTemplates.getEditor('text') };\nexport var pdfExportDocumentOptionsSerializationInfo = [\n author, application, title, subject,\n { propertyName: 'keywords', modelName: '@Keywords', displayName: 'Keywords', localizationId: 'DevExpress.XtraPrinting.PdfDocumentOptions.Keywords', defaultVal: '', editor: editorTemplates.getEditor('text') }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfPermissionsOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport class PdfPermissionsOptions {\n static from(model, serializer) {\n return new PdfPermissionsOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportPermissionsOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportPermissionsOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\nexport var pdfExportPermissionsOptionsSerializationInfo = [\n {\n propertyName: 'printingPermissions', modelName: '@PrintingPermissions', displayName: 'Printing Permissions', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.PrintingPermissions', defaultVal: 'None', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.None' },\n { value: 'LowResolution', displayValue: 'LowResolution', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.LowResolution' },\n { value: 'HighResolution', displayValue: 'HighResolution', localizationId: 'DevExpress.XtraPrinting.PrintingPermissions.HighResolution' }\n ]\n },\n {\n propertyName: 'changingPermissions', modelName: '@ChangingPermissions', displayName: 'Changing Permissions', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.ChangingPermissions', defaultVal: 'None', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.None' },\n { value: 'InsertingDeletingRotating', displayValue: 'InsertingDeletingRotating', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.InsertingDeletingRotating' },\n { value: 'FillingSigning', displayValue: 'FillingSigning', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.FillingSigning' },\n { value: 'CommentingFillingSigning', displayValue: 'CommentingFillingSigning', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.CommentingFillingSigning' },\n { value: 'AnyExceptExtractingPages', displayValue: 'AnyExceptExtractingPages', localizationId: 'DevExpress.XtraPrinting.ChangingPermissions.AnyExceptExtractingPages' }\n ]\n },\n { propertyName: 'enableCopying', modelName: '@EnableCopying', displayName: 'Enable Copying', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.EnableCopying', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'enableScreenReaders', modelName: '@EnableScreenReaders', displayName: 'Enable Screen Readers', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions.EnableScreenReaders', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\options\\pdfPasswordSecurityOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createPasswordSerializationInfo } from '@devexpress/analytics-core/analytics-internal';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { PdfPermissionsOptions } from './pdfPermissionsOptions';\nexport class PdfPasswordSecurityOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new PdfPasswordSecurityOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportPasswordSecurityOptionsSerializationInfo, refs);\n }\n getInfo() {\n return pdfExportPasswordSecurityOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n if (!(this.permissionsPassword && this.permissionsPassword())) {\n if (name === 'permissionsOptions')\n return true;\n if (name === pdfEncryptionLevel.propertyName)\n return !(this.openPassword && this.openPassword());\n return false;\n }\n }\n hasSensitiveData() {\n return !!(this.openPassword && this.openPassword() || this.permissionsPassword && this.permissionsPassword());\n }\n}\nexport var pdfEncryptionLevel = {\n propertyName: 'encryptionLevel', modelName: '@EncryptionLevel', displayName: 'Encryption Level', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.EncryptionLevel', defaultVal: 'AES128', editor: editorTemplates.getEditor('combobox'),\n valuesArray: [\n { value: 'ARC4', displayValue: 'ARC4', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.ARC4' },\n { value: 'AES128', displayValue: 'AES128', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.AES128' },\n { value: 'AES256', displayValue: 'AES256', localizationId: 'DevExpress.XtraPrinting.PdfEncryptionLevel.AES256' },\n ]\n};\nexport var pdfExportPasswordSecurityOptionsSerializationInfo = [\n createPasswordSerializationInfo({ propertyName: 'openPassword', modelName: '@OpenPassword', displayName: 'Open Password', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.OpenPassword', defaultVal: '' }),\n pdfEncryptionLevel,\n createPasswordSerializationInfo({ propertyName: 'permissionsPassword', modelName: '@PermissionsPassword', displayName: 'Permissions Password', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions.PermissionsPassword', defaultVal: '' }),\n { propertyName: 'permissionsOptions', modelName: 'PermissionsOptions', displayName: 'Pdf Permissions Options', localizationId: 'DevExpress.XtraPrinting.PdfPermissionsOptions', from: PdfPermissionsOptions.from, toJsonObject: PdfPermissionsOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\pdfMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { pageRange, rasterizationResolution, rasterizeImages } from './metadata';\nimport { PdfExportDocumentOptions } from './options/pdfExportDocumentOptions';\nimport { PdfPasswordSecurityOptions } from './options/pdfPasswordSecurityOptions';\nexport var pdfACompatibilityValues = { None: 'None', PdfA1a: 'PdfA1a', PdfA1b: 'PdfA1b', PdfA2a: 'PdfA2a', PdfA2b: 'PdfA2b', PdfA3a: 'PdfA3a', PdfA3b: 'PdfA3b' };\nexport var pdfACompatibility = {\n propertyName: 'pdfACompatibility', modelName: '@PdfACompatibility', displayName: 'PDF A Compatibility', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.PdfACompatibility', editor: editorTemplates.getEditor('combobox'), defaultVal: pdfACompatibilityValues.None, from: fromEnum,\n valuesArray: [\n { value: pdfACompatibilityValues.None, displayValue: pdfACompatibilityValues.None, localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.None' },\n { value: pdfACompatibilityValues.PdfA1a, displayValue: 'PDF/A-1a', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA1a' },\n { value: pdfACompatibilityValues.PdfA1b, displayValue: 'PDF/A-1b', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA1b' },\n { value: pdfACompatibilityValues.PdfA2a, displayValue: 'PDF/A-2a', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA2a' },\n { value: pdfACompatibilityValues.PdfA2b, displayValue: 'PDF/A-2b', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA2b' },\n { value: pdfACompatibilityValues.PdfA3a, displayValue: 'PDF/A-3a', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA3a' },\n { value: pdfACompatibilityValues.PdfA3b, displayValue: 'PDF/A-3b', localizationId: 'DevExpress.XtraPrinting.PdfACompatibility.PdfA3b' }\n ]\n};\nexport var pdfUACompatibilityValues = { None: 'None', PdfUA1: 'PdfUA1' };\nexport var pdfUACompatibility = {\n propertyName: 'pdfUACompatibility', modelName: '@PdfUACompatibility', displayName: 'PDF UA Compatibility', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.PdfUACompatibility', editor: editorTemplates.getEditor('combobox'), defaultVal: pdfUACompatibilityValues.None, from: fromEnum,\n valuesArray: [\n { value: pdfUACompatibilityValues.None, displayValue: pdfACompatibilityValues.None, localizationId: 'DevExpress.XtraPrinting.PdfUACompatibility.None' },\n { value: pdfUACompatibilityValues.PdfUA1, displayValue: pdfUACompatibilityValues.PdfUA1, localizationId: 'DevExpress.XtraPrinting.PdfUACompatibility.PdfUA1' }\n ]\n};\nexport var showPrintDialogOnOpen = {\n propertyName: 'showPrintDialogOnOpen', modelName: '@ShowPrintDialogOnOpen', displayName: 'Show Print Dialog on Open', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ShowPrintDialogOnOpen', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool\n};\nexport var pdfExportOptionsSerializationInfo = [\n { propertyName: 'convertImagesToJpeg', modelName: '@ConvertImagesToJpeg', displayName: 'Convert Images to Jpeg', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ConvertImagesToJpeg', defaultVal: true, editor: editorTemplates.getEditor('bool'), from: parseBool },\n showPrintDialogOnOpen,\n { propertyName: 'neverEmbeddedFonts', modelName: '@NeverEmbeddedFonts', displayName: 'Never Embedded Fonts', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.NeverEmbeddedFonts', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'exportEditingFieldsToAcroForms', modelName: '@ExportEditingFieldsToAcroForms', displayName: 'Export Editing Fields To AcroForms', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ExportEditingFieldsToAcroForms', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'imageQuality', modelName: '@ImageQuality', displayName: 'Image Quality', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.ImageQuality', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Highest', from: fromEnum,\n valuesArray: [\n { value: 'Lowest', displayValue: 'Lowest', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Lowest' },\n { value: 'Low', displayValue: 'Low', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Low' },\n { value: 'Medium', displayValue: 'Medium', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Medium' },\n { value: 'High', displayValue: 'High', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.High' },\n { value: 'Highest', displayValue: 'Highest', localizationId: 'DevExpress.XtraPrinting.PdfJpegImageQuality.Highest' }\n ]\n },\n pdfACompatibility,\n pdfUACompatibility,\n pageRange,\n rasterizationResolution,\n rasterizeImages,\n { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions.DocumentOptions', from: PdfExportDocumentOptions.from, toJsonObject: PdfExportDocumentOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdfPasswordSecurityOptions', modelName: 'PasswordSecurityOptions', displayName: 'Pdf Password Security Options', localizationId: 'DevExpress.XtraPrinting.PdfPasswordSecurityOptions', from: PdfPasswordSecurityOptions.from, toJsonObject: PdfPasswordSecurityOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\pdfExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { pdfACompatibility, pdfACompatibilityValues, pdfExportOptionsSerializationInfo, pdfUACompatibility, pdfUACompatibilityValues, showPrintDialogOnOpen } from './pdfMetaData';\nexport class PdfExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model || {});\n }\n static from(model, serializer) {\n return new PdfExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, pdfExportOptionsSerializationInfo, refs);\n }\n isPropertyDisabled(propertyName) {\n const _pdfACompatibility = this.pdfACompatibility ? this.pdfACompatibility() : pdfACompatibility.defaultVal;\n const _pdfUACompatibility = this.pdfUACompatibility ? this.pdfUACompatibility() : pdfUACompatibility.defaultVal;\n const _showDialogOnOpen = this.showPrintDialogOnOpen ? this.showPrintDialogOnOpen() : showPrintDialogOnOpen.defaultVal;\n if (propertyName === 'exportEditingFieldsToAcroForms')\n return _pdfACompatibility === pdfACompatibilityValues.PdfA1b || _pdfACompatibility === pdfACompatibilityValues.PdfA1a;\n else if (propertyName === 'neverEmbeddedFonts')\n return _pdfACompatibility != pdfACompatibilityValues.None || _pdfUACompatibility != pdfUACompatibilityValues.None;\n else if (propertyName === 'pdfPasswordSecurityOptions' || propertyName === 'showPrintDialogOnOpen')\n return _pdfACompatibility != pdfACompatibilityValues.None;\n else if (propertyName === 'pdfACompatibility')\n return _showDialogOnOpen;\n }\n getInfo() {\n return pdfExportOptionsSerializationInfo;\n }\n hasSensitiveData() {\n return this.pdfPasswordSecurityOptions && this.pdfPasswordSecurityOptions.hasSensitiveData();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\printPreviewMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nexport var printPreviewOptionsSerializationInfo = [\n { propertyName: 'defaultFileName', modelName: '@DefaultFileName', displayName: 'Default File Name', localizationId: 'DevExpress.XtraPrinting.PrintPreviewOptions.DefaultFileName', defaultVal: 'Document', editor: editorTemplates.getEditor('text') }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\printPreviewOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { printPreviewOptionsSerializationInfo } from './printPreviewMetaData';\nexport class PrintPreviewOptions {\n static from(model, serializer) {\n return new PrintPreviewOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, printPreviewOptionsSerializationInfo, refs);\n }\n getInfo() {\n return printPreviewOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\rtfExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { rtfExportMode } from './metadata';\nimport { rtfExportOptionsSerializationInfo } from './rtfMetaData';\nexport class RtfExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new RtfExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, rtfExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return rtfExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n var exportMode = this.rtfExportMode ? this.rtfExportMode() : rtfExportMode.defaultVal;\n if (name === 'pageRange')\n return exportMode === 'SingleFile';\n else if (name === 'emptyFirstPageHeaderFooter' || name === 'exportPageBreaks' || name === 'keepRowHeight') {\n return exportMode === 'SingleFilePageByPage';\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\textMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { textEncodingType, textExportMode } from './metadata';\nexport var textExportOptionsSerializationInfo = [\n textEncodingType,\n { propertyName: 'quoteStringsWithSeparators', modelName: '@QuoteStringsWithSeparators', displayName: 'Quote Strings with Separators', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.QuoteStringsWithSeparators', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'separator', modelName: '@Separator', displayName: 'Separator', localizationId: 'DevExpress.XtraPrinting.TextExportOptionsBase.Separator', defaultVal: 'TAB', editor: editorTemplates.getEditor('text') },\n textExportMode\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\textExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { textExportOptionsSerializationInfo } from './textMetaData';\nexport class TextExportOptions {\n static from(model, serializer) {\n return new TextExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, textExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return textExportOptionsSerializationInfo;\n }\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createPasswordSerializationInfo } from '@devexpress/analytics-core/analytics-internal';\nimport { fromEnum, parseBool } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { pageRange, rasterizationResolution, rasterizeImages, xlsExportHyperlinks, xlsExportMode, xlsExportOptionsSheetName, xlsRawDataMode, xlsShowGridLines, xlsTextExportMode } from './metadata';\nimport { application, author, subject, title } from './options/pdfExportDocumentOptions';\nvar documentOptionsSerializationsInfo = [\n author, application, title, subject,\n { propertyName: 'tags', modelName: '@Tags', displayName: 'Tags', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Tags', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'category', modelName: '@Category', displayName: 'Category', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Category', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'comments', modelName: '@Comments', displayName: 'Comments', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Comments', defaultVal: '', editor: editorTemplates.getEditor('text') },\n { propertyName: 'company', modelName: '@Company', displayName: 'Company', localizationId: 'DevExpress.XtraPrinting.XlDocumentOptions.Company', defaultVal: '', editor: editorTemplates.getEditor('text') }\n];\nvar documentOptions = { propertyName: 'documentOptions', modelName: 'DocumentOptions', displayName: 'Document Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.DocumentOptions', info: documentOptionsSerializationsInfo, editor: editorTemplates.getEditor('objecteditor') };\nvar encryptionOptionsSerializationsInfo = [\n {\n propertyName: 'type', modelName: '@Type', displayName: 'Type', localizationId: 'DevExpress.XtraPrinting.XlEncryptionOptions.Type', defaultVal: 'Strong', editor: editorTemplates.getEditor('combobox'), from: fromEnum,\n valuesArray: [\n { value: 'Strong', displayValue: 'Strong', localizationId: 'DevExpress.XtraPrinting.XlEncryptionType.Strong' },\n { value: 'Compatible', displayValue: 'Compatible', localizationId: 'DevExpress.XtraPrinting.XlEncryptionType.Compatible' }\n ]\n },\n createPasswordSerializationInfo({ propertyName: 'password', modelName: '@Password', displayName: 'Password', localizationId: 'DevExpress.XtraPrinting.XlEncryptionOptions.Password', defaultVal: '' })\n];\nvar encryptionOptions = { propertyName: 'encryptionOptions', modelName: 'EncryptionOptions', displayName: 'Encryption Options', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.EncryptionOptions', info: encryptionOptionsSerializationsInfo, editor: editorTemplates.getEditor('objecteditor') };\nexport var xlsExportOptionsSerializationInfoCommon = [\n xlsExportHyperlinks,\n pageRange,\n xlsRawDataMode,\n xlsExportOptionsSheetName,\n xlsShowGridLines,\n xlsTextExportMode,\n rasterizeImages,\n rasterizationResolution,\n { propertyName: 'fitToPrintedPageWidth', modelName: '@FitToPrintedPageWidth', displayName: 'Fit To Printed Page Width', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.FitToPrintedPageWidth', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'fitToPrintedPageHeight', modelName: '@FitToPrintedPageHeight', displayName: 'Fit To Printed Page Height', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.FitToPrintedPageHeight', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'ignoreErrors', modelName: '@IgnoreErrors', displayName: 'Ignore Errors', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.IgnoreErrors', editor: editorTemplates.getEditor('combobox'), defaultVal: 'None', from: fromEnum, valuesArray: [\n { value: 'None', displayValue: 'None', localizationId: 'DevExpress.XtraPrinting.XlIgnoreErrors.None' },\n { value: 'NumberStoredAsText', displayValue: 'Number Stored As Text', localizationId: 'DevExpress.XtraPrinting.XlIgnoreErrors.NumberStoredAsText' }\n ]\n },\n {\n propertyName: 'rightToLeftDocument', modelName: '@RightToLeftDocument', displayName: 'Right To Left Document', localizationId: 'DevExpress.XtraPrinting.XlExportOptionsBase.RightToLeftDocument', defaultVal: 'Default', from: fromEnum, editor: editorTemplates.getEditor('combobox'), valuesArray: [\n { value: 'True', displayValue: 'True', localizationId: 'DevExpress.Utils.DefaultBoolean.True' },\n { value: 'False', displayValue: 'False', localizationId: 'DevExpress.Utils.DefaultBoolean.False' },\n { value: 'Default', displayValue: 'Default', localizationId: 'DevExpress.Utils.DefaultBoolean.Default' }\n ]\n },\n documentOptions,\n encryptionOptions\n];\nexport var xlsExportOptionsSerializationInfoBase = [\n { propertyName: 'suppress256ColumnsWarning', modelName: '@Suppress256ColumnsWarning', displayName: 'Suppress 256 Columns Warning', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.Suppress256ColumnsWarning', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n { propertyName: 'suppress65536RowsWarning', modelName: '@Suppress65536RowsWarning', displayName: 'Suppress 65536 Rows Warning', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.Suppress65536RowsWarning', defaultVal: false, editor: editorTemplates.getEditor('bool'), from: parseBool },\n {\n propertyName: 'workbookColorPaletteCompliance', modelName: '@WorkbookColorPaletteCompliance', displayName: 'Workbook Color Palette Compliance', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions.WorkbookColorPaletteCompliance', editor: editorTemplates.getEditor('combobox'), defaultVal: 'ReducePaletteForExactColors', from: fromEnum,\n valuesArray: [\n { value: 'ReducePaletteForExactColors', displayValue: 'ReducePaletteForExactColors', localizationId: 'DevExpress.XtraPrinting.WorkbookColorPaletteCompliance.ReducePaletteForExactColors' },\n { value: 'AdjustColorsToDefaultPalette', displayValue: 'AdjustColorsToDefaultPalette', localizationId: 'DevExpress.XtraPrinting.WorkbookColorPaletteCompliance.AdjustColorsToDefaultPalette' }\n ]\n }\n];\nexport var xlsExportOptionsSerializationInfo = [xlsExportMode].concat(xlsExportOptionsSerializationInfoCommon, xlsExportOptionsSerializationInfoBase);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { xlsExportMode } from './metadata';\nimport { xlsExportOptionsSerializationInfo } from './xlsMetaData';\nexport class XlsExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new XlsExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, xlsExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return xlsExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return name === 'pageRange' && (this.xlsExportMode ? this.xlsExportMode() : xlsExportMode.defaultVal) === 'SingleFile';\n }\n hasSensitiveData() {\n return !!(this.encryptionOptions && this.encryptionOptions.password());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsxMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { xlsxExportMode } from './metadata';\nimport { xlsExportOptionsSerializationInfoCommon } from './xlsMetaData';\nexport var xlsxExportOptionsSerializationInfo = [xlsxExportMode].concat(xlsExportOptionsSerializationInfoCommon);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\xlsxExportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { xlsxExportMode } from './metadata';\nimport { xlsxExportOptionsSerializationInfo } from './xlsxMetaData';\nexport class XlsxExportOptions {\n constructor(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n }\n static from(model, serializer) {\n return new XlsxExportOptions(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, xlsxExportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return xlsxExportOptionsSerializationInfo;\n }\n isPropertyDisabled(name) {\n return name === 'pageRange' && (this.xlsxExportMode ? this.xlsxExportMode() : xlsxExportMode.defaultVal) === 'SingleFile';\n }\n hasSensitiveData() {\n return !!(this.encryptionOptions && this.encryptionOptions.password());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\exportOptionsMetaData.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { CsvExportOptions } from './csvExportOptions';\nimport { DocxExportOptions } from './docxExportOptions';\nimport { emailOptionsSerializationInfo, nativeFormatOptionsSerializationInfo } from './emailMetaData';\nimport { HtmlExportOptions } from './htmlExportOptions';\nimport { ImageExportOptions } from './imageExportOptions';\nimport { MhtExportOptions } from './mhtExportOptions';\nimport { PdfExportOptions } from './pdfExportOptions';\nimport { PrintPreviewOptions } from './printPreviewOptions';\nimport { RtfExportOptions } from './rtfExportOptions';\nimport { TextExportOptions } from './textExportOptions';\nimport { XlsExportOptions } from './xlsExportOptions';\nimport { XlsxExportOptions } from './xlsxExportOptions';\nexport var exportOptionsSerializationInfo = [\n { propertyName: 'csv', modelName: 'Csv', displayName: 'CSV Export Options', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions', from: CsvExportOptions.from, toJsonObject: CsvExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'email', modelName: 'Email', displayName: 'E-mail Options', localizationId: 'DevExpress.XtraPrinting.EmailOptions', editor: editorTemplates.getEditor('objecteditor'), info: emailOptionsSerializationInfo },\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: HtmlExportOptions.from, toJsonObject: HtmlExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: ImageExportOptions.from, toJsonObject: ImageExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mailMessage', modelName: 'MailMessage', displayName: 'Mail Message Export Options', localizationId: 'DevExpress.XtraPrinting.MailMessageExportOptions', from: MhtExportOptions.from, toJsonObject: MhtExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: MhtExportOptions.from, toJsonObject: MhtExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'nativeFormat', modelName: 'NativeFormat', displayName: 'Native Format Options', localizationId: 'DevExpress.XtraPrinting.NativeFormatOptions', editor: editorTemplates.getEditor('objecteditor'), info: nativeFormatOptionsSerializationInfo },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: PdfExportOptions.from, toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'printPreview', modelName: 'PrintPreview', displayName: 'Print Preview Options', localizationId: 'DevExpress.XtraPrinting.PrintPreviewOptions', from: PrintPreviewOptions.from, toJsonObject: PrintPreviewOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: RtfExportOptions.from, toJsonObject: RtfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'textExportOptions', modelName: 'Text', displayName: 'Text Export Options', localizationId: 'DevExpress.XtraPrinting.TextExportOptions', from: TextExportOptions.from, toJsonObject: TextExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: XlsExportOptions.from, toJsonObject: XlsExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: XlsxExportOptions.from, toJsonObject: XlsxExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: DocxExportOptions.from, toJsonObject: DocxExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') }\n];\n","/**\r\n* DevExpress HTML/JS Reporting (common\\exportOptions\\exportOptions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { exportOptionsSerializationInfo } from './exportOptionsMetaData';\nexport class ExportOptions {\n static from(model, serializer) {\n return new ExportOptions().deserialize(model || {}, serializer);\n }\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, exportOptionsSerializationInfo, refs);\n }\n getInfo() {\n return exportOptionsSerializationInfo;\n }\n deserialize(model, serializer) {\n serializer = serializer || new ModelSerializer();\n serializer.deserialize(this, model);\n return this;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\constants.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var ActionId = {\n Design: 'dxxrp-design',\n FirstPage: 'dxxrp-first-page',\n PrevPage: 'dxxrp-prev-page',\n Pagination: 'dxxrp-pagination',\n NextPage: 'dxxrp-next-page',\n LastPage: 'dxxrp-last-page',\n MultipageToggle: 'dxxrp-multipage-toggle',\n HighlightEditingFields: 'dxxrp-highlight-editing-fields',\n ZoomOut: 'dxxrp-zoom-out',\n ZoomSelector: 'dxxrp-zoom-selector',\n ZoomIn: 'dxxrp-zoom-in',\n Print: 'dxxrp-print',\n PrintPage: 'dxxrp-print-page',\n ExportTo: 'dxxrp-export-menu',\n Search: 'dxxrp-search',\n FullScreen: 'dxrd-fullscreen'\n};\nexport var ExportFormatID = {\n PDF: { text: 'PDF', textId: 'ASPxReportsStringId.ExportName_pdf', format: 'pdf' },\n XLS: { text: 'XLS', textId: 'ASPxReportsStringId.ExportName_xls', format: 'xls' },\n XLSX: { text: 'XLSX', textId: 'ASPxReportsStringId.ExportName_xlsx', format: 'xlsx' },\n RTF: { text: 'RTF', textId: 'ASPxReportsStringId.ExportName_rtf', format: 'rtf' },\n MHT: { text: 'MHT', textId: 'ASPxReportsStringId.ExportName_mht', format: 'mht' },\n HTML: { text: 'HTML', textId: 'ASPxReportsStringId.ExportName_html', format: 'html' },\n Text: { text: 'Text', textId: 'ASPxReportsStringId.ExportName_txt', format: 'txt', propertyName: 'textExportOptions' },\n CSV: { text: 'CSV', textId: 'ASPxReportsStringId.ExportName_csv', format: 'csv' },\n Image: { text: 'Image', textId: 'ASPxReportsStringId.ExportName_png', format: 'image' },\n DOCX: { text: 'DOCX', textId: 'ASPxReportsStringId.ExportName_docx', format: 'docx' }\n};\nexport var PreviewElements = {\n Toolbar: 'dxrd-preview-toolbar-scrollable',\n Surface: 'dxrdp-surface',\n RightPanel: 'dxrd-right-panel-template-base',\n ExportTool: 'dxrd-export-tool'\n};\nexport var ZoomAutoBy = {\n None: 1,\n WholePage: 0,\n PageWidth: -1\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_previewBricksKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccessibilityControlElementBase, findFirstItemMatchesCondition, getLocalization, KeyboardHelperWithArrowButtonBase } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class PreviewBricksKeyboardHelper extends KeyboardHelperWithArrowButtonBase {\n constructor(viewModel) {\n super();\n this.controlElementClassName = 'dx-accessibility-page-item';\n this.liveRegionId = 'dxrd-preview-bricks-live-region';\n this._needFocusNext = false;\n this._firstSelectedBrickIndex = 0;\n this._lastSelectedBrickIndex = 0;\n this._resetBricksIndexes = () => {\n this._firstSelectedBrickIndex = 0;\n this._lastSelectedBrickIndex = 0;\n };\n this._resetBricks = () => {\n return this._currentPage.selectBrick('');\n };\n this.delayedInit = () => {\n this._initTimeout && clearTimeout(this._initTimeout);\n this._initTimeout = setTimeout(() => {\n this.initialize();\n }, 20);\n };\n this.reset = () => {\n this._resetBricks();\n this._resetBricksIndexes();\n };\n this.active = false;\n this._getSelectedContent = viewModel.getSelectedContent;\n this._pages = viewModel.pages;\n this._goToPage = viewModel.goToPage.bind(viewModel);\n this._usePageKeyboardNavigation = viewModel.showMultipagePreview;\n this._disposables.push(viewModel.currentPage.subscribe(newPage => {\n if (newPage) {\n this._currentPage = newPage;\n this.delayedInit();\n }\n }));\n }\n dispose() {\n this._activeBricksSubscription && this._activeBricksSubscription.dispose();\n this._afterInitializeCallback = null;\n this._initTimeout && clearTimeout(this._initTimeout);\n super.dispose();\n }\n initialize() {\n if (!this._currentPage)\n return;\n this._bricks = this._currentPage.bricks;\n if (this._usePageKeyboardNavigation()) {\n this.startIndex = this._pages().indexOf(this._currentPage);\n }\n else {\n this.startIndex = 0;\n }\n super.initialize();\n this._afterInitializeCallback && this._afterInitializeCallback();\n this._afterInitializeCallback = null;\n if (this._needFocusNext) {\n this.controlElements[this.startIndex].element.focus();\n this.lastFocusItem().setAttribute('tabindex', '-1');\n this._needFocusNext = false;\n }\n this._activeBricksSubscription && this._activeBricksSubscription.dispose();\n this._activeBricksSubscription = this._currentPage.activeBricks.subscribe(activeBricks => {\n this._liveRegionTimeout && clearTimeout(this._liveRegionTimeout);\n if (!activeBricks.length)\n return;\n this._liveRegionTimeout = this.liveRegion().changeText(this._getSelectedContent(','));\n var _bricks = this._bricks();\n for (var i = 0; i < _bricks.length; i++) {\n const brick = _bricks[i];\n if (brick === activeBricks[0])\n this._firstSelectedBrickIndex = i;\n if (brick === activeBricks[activeBricks.length - 1]) {\n this._lastSelectedBrickIndex = i;\n break;\n }\n }\n });\n }\n clickHandler() { }\n itemHandleEscKey(e, index) {\n if (!this.active)\n return false;\n this.controlElements[index].element.classList.remove('dx-accessibility-active-state');\n this.active = false;\n this._resetBricks();\n return true;\n }\n _actionExecute(brick, e) {\n if (brick.navigation) {\n brick.onClick(e);\n }\n else if (brick.efIndex) {\n var editField = this._currentPage.editingFields()[brick.efIndex - 1];\n var efItems = Array.prototype.slice.call(e.target.querySelectorAll('.dx-accessibility-editing-field-item'));\n var efItem = findFirstItemMatchesCondition(efItems, (item) => ko.dataFor(item) === editField);\n if (efItem && editField.activateEditor) {\n editField.activateEditor(editField, { target: efItem, currentTarget: efItem });\n var subscription = editField.active.subscribe(value => {\n if (!value) {\n if (document.activeElement === document.body) {\n e.target.focus();\n }\n brick.active(true);\n this.active = true;\n e.target.classList.add('dx-accessibility-active-state');\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n }\n else if (editField.onClick) {\n editField.onClick(editField, e);\n }\n }\n }\n _getNonEmptyBrick(index, reverse) {\n var nextIndex = index + (reverse ? -1 : 1);\n var _bricks = this._bricks();\n var brick = _bricks[nextIndex];\n if (reverse && nextIndex < 0 || nextIndex > _bricks.length - 1) {\n brick = this._getNonEmptyBrick(reverse ? _bricks.length : -1, reverse);\n }\n if (brick.efIndex && brick.efIndex > 0)\n return brick;\n else if (brick.accessibleDescription || brick.text() || brick.efIndex || brick.navigation)\n return brick;\n return this._getNonEmptyBrick(nextIndex, reverse);\n }\n _pageChangeHandle(action, newIndex, reverse = false) {\n this._needFocusNext = true;\n this.reset();\n if (!this.active) {\n if (this._usePageKeyboardNavigation())\n return action();\n else {\n var lastFocusItem = this.lastFocusItem();\n lastFocusItem.setAttribute('tabindex', '0');\n lastFocusItem.focus();\n return false;\n }\n }\n this._getNonEmptyBrick(newIndex, reverse).active(true);\n return true;\n }\n _activatePage(e, index) {\n if (this._bricks().length) {\n var page = this.controlElements[index];\n this.active = true;\n page.element.classList.add('dx-accessibility-active-state');\n var lastBrick = this._getNonEmptyBrick(this._lastSelectedBrickIndex - 1, false);\n lastBrick && lastBrick.active(true);\n }\n }\n itemHandleHomeKey(e, index) {\n return this._pageChangeHandle(() => super.itemHandleHomeKey(e, index), -1);\n }\n itemHandleEndKey(e, index) {\n return this._pageChangeHandle(() => super.itemHandleEndKey(e, index), this._bricks().length, true);\n }\n itemHandleLeftArrowKey(e, index) {\n return this._pageChangeHandle(() => {\n this.setFocusToPrevious(index);\n return true;\n }, this._firstSelectedBrickIndex, true);\n }\n itemHandleRightArrowKey(e, index) {\n return this._pageChangeHandle(() => {\n this.setFocusToNext(index);\n return true;\n }, this._lastSelectedBrickIndex);\n }\n itemHandleEnterKey(e, index) {\n if (this.active) {\n if (this._lastSelectedBrickIndex !== this._firstSelectedBrickIndex)\n return false;\n var brick = this._bricks()[this._lastSelectedBrickIndex];\n if (brick && brick.active()) {\n this._actionExecute(brick, e);\n }\n }\n else if (this._usePageKeyboardNavigation() && this._currentPage !== this._pages()[index]) {\n this._goToPage(index);\n this._afterInitializeCallback = () => {\n this._activatePage(e, index);\n };\n }\n else {\n this._activatePage(e, index);\n }\n return true;\n }\n itemHandleSpaceKey(e, index) {\n return this.itemHandleEnterKey(e, index);\n }\n setFocusToPrevious(currentIndex) {\n return super.setFocusToPrevious(currentIndex);\n }\n setFocusToNext(currentIndex) {\n return super.setFocusToNext(currentIndex);\n }\n createControlElement(element, index) {\n return new PreviewPageControlsElement(element, this);\n }\n}\nclass PreviewPageControlsElement extends AccessibilityControlElementBase {\n constructor(element, _keyboardHelper) {\n super(element);\n this.element = element;\n this._keyboardHelper = _keyboardHelper;\n this._focusHandler = () => {\n this._keyboardHelper.liveRegion().changeText(getLocalization('Press Enter or Space to switch to the document reading mode.', 'ASPxReportsStringId.WebDocumentViewer_AriaSwitchToDocumentReadingMode'));\n this.element.classList.remove('dx-accessibility-active-state');\n if (this._keyboardHelper.active) {\n this._keyboardHelper.reset();\n }\n this._keyboardHelper.active = false;\n };\n element.addEventListener('focus', this._focusHandler);\n }\n dispose() {\n this.element.removeEventListener('focus', this._focusHandler);\n super.dispose();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\settings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { createGlobalModuleVariableFunc, NotifyAboutWarning, NotifyType, ShowMessage } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport var EditablePreviewEnabled = ko.observable(true);\nexport var SearchAvailable = ko.observable(true);\nexport var ReportServerInvokeUri = '/RSWebDocumentViewerApi/Invoke';\nexport var ReportServerExportUri = '/RSWebDocumentViewerApi/Download';\nexport var AsyncExportApproach = createGlobalModuleVariableFunc(false);\nexport var MessageHandler = createGlobalModuleVariableFunc({\n processError: (message, showForUser, prefix = '', element) => {\n showForUser && ShowMessage(message.substr(prefix.length), undefined, undefined, undefined, undefined, element);\n NotifyAboutWarning(message, false);\n },\n processMessage: (message, showForUser, element) => { showForUser && ShowMessage(message, NotifyType.success, 10000, undefined, undefined, element); },\n processWarning: (message, showForUser, element) => { showForUser && ShowMessage(message, undefined, undefined, undefined, undefined, element); }\n});\nexport var HandlerUri = createGlobalModuleVariableFunc('DXXRDV.axd');\nexport var previewDefaultResolution = createGlobalModuleVariableFunc(96);\nexport var ReportServerDownloadUri = createGlobalModuleVariableFunc('');\nexport var PollingDelay = createGlobalModuleVariableFunc(300);\nexport var TimeOut = createGlobalModuleVariableFunc(105000);\nexport var PreloadedPagesOffset = createGlobalModuleVariableFunc(15);\nexport var MultipageScrollingThrottle = createGlobalModuleVariableFunc(150);\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\textEditingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { EditingFieldExtensions } from '../../../common/utils/editingFieldExtensions';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { processTextEditorHotKeys, CssCalculator } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class TextEditingFieldViewModelBase {\n keypressAction(data, event) {\n processTextEditorHotKeys(event, {\n esc: () => {\n this.hideEditor(false);\n },\n ctrlEnter: () => {\n this.hideEditor(true);\n }\n });\n }\n}\nexport class TextEditingFieldViewModel extends TextEditingFieldViewModelBase {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n super();\n this.template = 'dxrp-editing-field-container';\n this.htmlValue = () => this.field.htmlValue();\n this.wordWrap = true;\n this.active = ko.observable(false);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n var padding = cssCalculator.paddingsCss();\n var verticalPadding = parseInt(padding['paddingTop']) + parseInt(padding['paddingBottom']);\n if (cssCalculator.borderCss()['borderTop'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n if (cssCalculator.borderCss()['borderBottom'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n this.breakOffsetStyle = () => {\n return {\n top: bounds.offset.y * -100 / bounds.height + '%',\n left: bounds.offset.x * -100 / bounds.width + '%'\n };\n };\n this.textStyle = () => $.extend({}, cssCalculator.fontCss(), cssCalculator.foreColorCss(), cssCalculator.textAlignmentCss());\n this.zoom = zoom;\n this.field = field;\n if (brickStyle.wordWrap != undefined) {\n this.wordWrap = brickStyle.wordWrap;\n }\n this.hideEditor = (shouldCommit) => {\n setTimeout(() => {\n if (shouldCommit) {\n if (editorOptions.onHideEditor) {\n editorOptions.onHideEditor(field);\n }\n else {\n field.editValue(field._editorValue());\n }\n }\n else {\n field._editorValue(field.editValue());\n }\n this.active(false);\n }, 1);\n };\n var editor = EditingFieldExtensions.instance().editor(field.editorName());\n var editorOptions = $.extend(true, {}, editor && editor.options || {});\n this.data = {\n value: field._editorValue,\n hideEditor: this.hideEditor,\n keypressAction: this.keypressAction,\n textStyle: this.textStyle,\n options: editorOptions,\n getOptions: (templateOptions) => { return $.extend({}, this.data.options, templateOptions); }\n };\n var isCustomEditor = !!(editor && editor.template && editor.template !== 'dxrp-editing-field-datetime');\n if (!isCustomEditor) {\n var self = this;\n this.data.options = $.extend(true, {}, editorOptions, {\n value: field._editorValue,\n onFocusOut: (e) => {\n self.hideEditor(true);\n }\n });\n }\n if (editor) {\n this.editorTemplate = editor.template || 'dxrp-editing-field-mask';\n }\n else {\n this.editorTemplate = 'dxrp-editing-field-text';\n }\n this.containerStyle = ko.pureComputed(() => {\n return $.extend({\n width: bounds.width + 'px',\n height: bounds.height + 'px',\n 'line-height': (bounds.height - verticalPadding) + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%',\n cursor: this.field.readOnly() ? 'auto' : 'text'\n }, this.active() || !this.htmlValue() ? cssCalculator.borderCss() : { border: 'none' }, isCustomEditor && this.active() || (!!this.htmlValue() && !this.active()) ? { padding: 0 } : cssCalculator.paddingsCss(), { 'border-color': 'transparent' });\n });\n this.borderStyle = ko.pureComputed(() => {\n if (style['borderWidth']() > 0 && style['borders']() !== 'None') {\n return {\n left: '-' + style['borderWidth']() + 'px',\n top: '-' + style['borderWidth']() + 'px',\n paddingRight: (style['borderWidth']() * 2 - 2) + 'px',\n paddingBottom: (style['borderWidth']() * 2 - 2) + 'px'\n };\n }\n });\n }\n activateEditor(viewModel, e) {\n if (this.field.readOnly() || this.active()) {\n return;\n }\n var data = viewModel.data;\n if (data && data.options && data.options.onPreRender) {\n data.options.onPreRender(this.data);\n }\n this.active(true);\n var elementFocused = false;\n if (viewModel.options && viewModel.options.onEditorShown) {\n elementFocused = viewModel.options.onEditorShown(this.data, $.fn.constructor(e && e.currentTarget).first().get(0));\n }\n if (!elementFocused) {\n focusTextElement(e && e.currentTarget);\n }\n }\n}\nexport function focusTextElement(target) {\n var element = $.fn.constructor(target).find('input').eq(0)[0];\n if (!element)\n element = $.fn.constructor(target).find('textarea').eq(0)[0];\n element.focus();\n if (element['setSelectionRange']) {\n element['setSelectionRange'](element['value'].length, element['value'].length);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\characterCombEditingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { focusTextElement, TextEditingFieldViewModelBase } from './textEditingField';\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport { CssCalculator } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class CharacterCombEditingFieldViewModel extends TextEditingFieldViewModelBase {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n super();\n this.field = field;\n this.template = 'dxrp-character-comb-editing-field';\n this.active = ko.observable(false);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n var verticalPadding = parseInt(cssCalculator.paddingsCss()['paddingTop']) + parseInt(cssCalculator.paddingsCss()['paddingBottom']);\n var borderCss = cssCalculator.borderCss();\n if (borderCss['borderTop'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n if (borderCss['borderBottom'] !== 'none') {\n verticalPadding += style['borderWidth']();\n }\n this.textStyle = () => $.extend({}, cssCalculator.fontCss(), cssCalculator.foreColorCss(), cssCalculator.textAlignmentCss());\n this.hideEditor = (shouldCommit) => {\n setTimeout(() => {\n if (shouldCommit) {\n field.editValue(field._editorValue());\n }\n else {\n field._editorValue(field.editValue());\n }\n this.active(false);\n });\n };\n this.containerStyle = ko.pureComputed(() => {\n return $.extend({\n width: bounds.width + 'px',\n height: bounds.height + 'px',\n 'line-height': (bounds.height - verticalPadding) + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%'\n }, cssCalculator.fontCss(), cssCalculator.foreColorCss());\n });\n var cellVerticalPadding = 0;\n var borderCellStyle = 'none';\n ['Left', 'Top', 'Right', 'Bottom'].forEach((item) => {\n if (borderCss['border' + item] !== 'none') {\n borderCellStyle = borderCss['border' + item];\n cellVerticalPadding = style['borderWidth']() * 2;\n }\n });\n var cellStyle = {\n 'border': borderCellStyle,\n 'text-align': 'center',\n 'position': 'absolute',\n 'box-sizing': 'border-box',\n 'border-color': 'transparent'\n };\n var characterCombBounds = field.model().brickOptions.characterCombBounds;\n this.cells = [];\n var rowTops = {};\n for (var i = 0; i < characterCombBounds.length; i++) {\n this.cells.push({\n style: $.extend({\n width: characterCombBounds[i].width + 'px',\n height: characterCombBounds[i].height + 'px',\n 'line-height': (characterCombBounds[i].height - cellVerticalPadding) + 'px',\n top: characterCombBounds[i].top + 'px',\n left: characterCombBounds[i].left + 'px'\n }, cellStyle),\n text: ''\n });\n rowTops[characterCombBounds[i].top] = i;\n }\n var rowsCount = Object.keys(rowTops).length;\n var colsCount = this.cells.length / rowsCount;\n CharacterCombEditingFieldViewModel.setText(this.cells, style['textAlignment'](), style.rtl(), field.editValue.peek(), rowsCount, colsCount);\n field.editValue.subscribe(newValue => {\n CharacterCombEditingFieldViewModel.setText(this.cells, style['textAlignment'](), style.rtl(), newValue, rowsCount, colsCount);\n });\n this.zoom = zoom;\n }\n activateEditor(viewModel, e) {\n if (!this.field.readOnly() && !this.active()) {\n this.active(true);\n focusTextElement(e && e.currentTarget);\n }\n }\n static setText(cells, textAlignment, rtl, text, rowsCount, colsCount) {\n for (var j = 0; j < cells.length; j++) {\n cells[j].text = '';\n }\n var textRowsCount = Math.ceil(text.length / colsCount);\n var textLastRowColCount = text.length % colsCount;\n var startRow = -1;\n if (textAlignment.indexOf('Bottom') === 0) {\n startRow = rowsCount - textRowsCount;\n }\n else if (textAlignment.indexOf('Middle') === 0) {\n startRow = Math.floor((rowsCount - textRowsCount) / 2);\n }\n else {\n startRow = 0;\n }\n var lastRowStartCol = -1;\n if (textAlignment.indexOf('Right') > 0) {\n lastRowStartCol = rtl ? 0 : (colsCount - textLastRowColCount);\n }\n else if (textAlignment.indexOf('Center') > 0) {\n lastRowStartCol = Math.floor((colsCount - textLastRowColCount) / 2);\n }\n else {\n lastRowStartCol = rtl ? (colsCount - textLastRowColCount) : 0;\n }\n var j = startRow * colsCount;\n var i = 0;\n for (; i < text.length - textLastRowColCount; i++, j++) {\n if (j >= 0 && j < cells.length) {\n cells[j].text = text[i];\n }\n }\n for (; i < text.length; i++, j++) {\n if (j >= 0 && j < cells.length) {\n cells[j + lastRowStartCol].text = text[i];\n }\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\checkEditingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ImageSource } from '../../../common/imageSource';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport { KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nexport var GlyphStyle;\n(function (GlyphStyle) {\n GlyphStyle[GlyphStyle[\"StandardBox1\"] = 0] = \"StandardBox1\";\n GlyphStyle[GlyphStyle[\"StandardBox2\"] = 1] = \"StandardBox2\";\n GlyphStyle[GlyphStyle[\"YesNoBox\"] = 2] = \"YesNoBox\";\n GlyphStyle[GlyphStyle[\"YesNoSolidBox\"] = 3] = \"YesNoSolidBox\";\n GlyphStyle[GlyphStyle[\"YesNo\"] = 4] = \"YesNo\";\n GlyphStyle[GlyphStyle[\"RadioButton\"] = 5] = \"RadioButton\";\n GlyphStyle[GlyphStyle[\"Smiley\"] = 6] = \"Smiley\";\n GlyphStyle[GlyphStyle[\"Thumb\"] = 7] = \"Thumb\";\n GlyphStyle[GlyphStyle[\"Toggle\"] = 8] = \"Toggle\";\n GlyphStyle[GlyphStyle[\"Star\"] = 9] = \"Star\";\n GlyphStyle[GlyphStyle[\"Heart\"] = 10] = \"Heart\";\n})(GlyphStyle || (GlyphStyle = {}));\nexport var CheckState;\n(function (CheckState) {\n CheckState[CheckState[\"Unchecked\"] = 0] = \"Unchecked\";\n CheckState[CheckState[\"Checked\"] = 1] = \"Checked\";\n CheckState[CheckState[\"Indeterminate\"] = 2] = \"Indeterminate\";\n})(CheckState || (CheckState = {}));\nexport function createCustomGlyphStyleCss(imageSource) {\n var backgroundResult = {};\n if (imageSource) {\n var urlContent = imageSource.getDataUrl();\n if (urlContent) {\n backgroundResult = { background: 'url(' + urlContent + ') no-repeat' };\n backgroundResult['backgroundPosition'] = 'center center';\n backgroundResult['backgroundSize'] = 'cover';\n }\n }\n return backgroundResult;\n}\nexport function getCheckBoxTemplate(style, state, customGlyph) {\n if (!$.isEmptyObject(customGlyph)) {\n return 'dxrd-checkboxcustomglyph';\n }\n else {\n return SvgTemplatesEngine.getExistingTemplate('dxrd-svg-checkboxglyphs-' + style + '_' + state);\n }\n}\nexport class CheckEditingFieldViewModel extends Disposable {\n constructor(field, pageWidth, pageHeight, zoom, editingFieldsProvider) {\n super();\n this.focused = ko.observable(false);\n this._editingFieldsProvider = editingFieldsProvider;\n this.template = 'dxrp-editing-field-checkbox';\n this.field = field;\n this.zoom = zoom;\n var bounds = this.field.model().bounds;\n var checkBounds = this.field.model().brickOptions.checkBoxBounds;\n var rtl = this.field.model().brickOptions.rtlLayout;\n this.containerStyle = () => {\n return {\n height: bounds.height + 'px',\n width: bounds.width + 'px',\n top: bounds.top * 100 / pageHeight + '%',\n left: bounds.left * 100 / pageWidth + '%',\n cursor: this.field.readOnly() ? 'auto' : 'pointer'\n };\n };\n this.checkStyle = () => {\n var result = {\n height: checkBounds.height + 'px',\n width: checkBounds.width + 'px',\n top: checkBounds.top + 'px',\n left: (rtl ? (bounds.width - checkBounds.left - checkBounds.width) : checkBounds.left) + 'px'\n };\n return result;\n };\n this._disposables.push(this.customGlyphStyleCss = ko.pureComputed(() => {\n var imageSourceData = field.model().brickOptions.checkBoxGlyphOptions.customGlyphs.filter(item => item.key === this.field.editValue())[0];\n if (!imageSourceData.value)\n return {};\n var imageSource = new ImageSource(imageSourceData.value.imageType, imageSourceData.value.image);\n return createCustomGlyphStyleCss(imageSource);\n }));\n this._disposables.push(this.checkStateStyleIcon = ko.pureComputed(() => {\n return getCheckBoxTemplate(GlyphStyle[field.model().brickOptions.checkBoxGlyphOptions.glyphStyle], CheckState[this.field.editValue()], this.customGlyphStyleCss());\n }));\n }\n _toggleCheckState() {\n if (this.field.editValue() === CheckState.Checked) {\n this.field.editValue(CheckState.Unchecked);\n }\n else {\n this.field.editValue(CheckState.Checked);\n }\n }\n onKeyDown(_, e) {\n if (e.key == KeyboardEnum.Space) {\n this.toggleCheckState();\n }\n else {\n }\n }\n onBlur() {\n this.focused(false);\n }\n onFocus() {\n this.focused(true);\n }\n onClick(_, e) {\n e.target.focus();\n this.toggleCheckState();\n e.stopPropagation();\n }\n checked() {\n if (this.field.editValue() === CheckState.Checked) {\n return true;\n }\n if (this.field.editValue() === CheckState.Unchecked) {\n return false;\n }\n }\n toggleCheckState() {\n if (this.field.readOnly())\n return;\n if (!this.field.groupID()) {\n this._toggleCheckState();\n }\n else if (this.checked() === false) {\n this._editingFieldsProvider().forEach(value => {\n if (value.groupID() === this.field.groupID()) {\n value.editValue(CheckState.Unchecked);\n }\n });\n this._toggleCheckState();\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewSelection.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport dxPopup from 'devextreme/ui/popup';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nfunction rectIntersection(r1, r2) {\n return !(r2.left > r1.right ||\n r2.right < r1.left ||\n r2.top > r1.bottom ||\n r2.bottom < r1.top);\n}\nexport class PreviewSelection {\n constructor(_element, _page, _click) {\n this._element = _element;\n this._page = _page;\n this._click = _click;\n this._bodyEvents = {\n move: null,\n up: null\n };\n this.dispose = () => this._dispose && this._dispose();\n this._$element = $.fn.constructor(this._element);\n var mousemove = event => this._mouseMove(event);\n var mouseup = event => this._mouseUp(event);\n var mousedown = event => this._mouseDown(event);\n this._element.addEventListener('mousemove', mousemove);\n this._element.addEventListener('mouseup', mouseup);\n this._element.addEventListener('mousedown', mousedown);\n this._dispose = () => {\n this._element.removeEventListener('mousemove', mousemove);\n this._element.removeEventListener('mouseup', mouseup);\n this._element.removeEventListener('mousedown', mousedown);\n this._dispose = null;\n this._click = null;\n this._page = null;\n this._element = null;\n mousemove = null;\n mouseup = null;\n mousedown = null;\n };\n }\n _getBodyScrollTop() {\n return document.documentElement && document.documentElement.scrollTop || (document.body && document.body.scrollTop);\n }\n _getBodyScrollLeft() {\n return document.documentElement && document.documentElement.scrollLeft || (document.body && document.body.scrollLeft);\n }\n _updateSelectionContent(event) {\n if (this._startRect.left > event.clientX) {\n this._$selectionContent.css('left', event.clientX);\n }\n else {\n this._$selectionContent.css('right', document.documentElement.clientWidth - event.clientX);\n }\n if (this._startRect.top > event.clientY) {\n this._$selectionContent.css('top', event.clientY);\n }\n else {\n this._$selectionContent.css('bottom', document.documentElement.clientHeight - event.clientY);\n }\n var offset = this._$element.offset();\n var currentRect = {\n left: (parseInt(this._$selectionContent.css('left')) - offset.left + this._getBodyScrollLeft()) / this._$element.width() * 100,\n width: this._$selectionContent.width() / this._$element.width() * 100,\n top: (parseInt(this._$selectionContent.css('top')) - offset.top + this._getBodyScrollTop()) / this._$element.height() * 100,\n height: this._$selectionContent.height() / this._$element.height() * 100\n };\n currentRect['right'] = currentRect.left + currentRect.width;\n currentRect['bottom'] = currentRect.top + currentRect.height;\n var bricks = this._page.bricks();\n for (var i = 0; i < bricks.length; i++) {\n if (!bricks[i].bricks) {\n bricks[i].active(rectIntersection({\n left: parseFloat(bricks[i].leftP),\n top: parseFloat(bricks[i].topP),\n right: parseFloat(bricks[i].leftP) + parseFloat(bricks[i].widthP),\n bottom: parseFloat(bricks[i].topP) + parseFloat(bricks[i].heightP),\n }, currentRect));\n }\n }\n }\n _mouseMove(event) {\n if (!this._startRect || !this._page.active() || PreviewSelection.disabled)\n return;\n var leftButtonPressed = event.which === 1;\n if (leftButtonPressed) {\n if (!this._$selectionContainer) {\n if (Math.abs(this._startRect.left - event.clientX) >= 2 || Math.abs(this._startRect.top - event.clientY) >= 2) {\n PreviewSelection.started = true;\n var selectionContainer = $.fn.constructor('
');\n selectionContainer.css({ position: 'fixed', top: '0', bottom: '0', left: '0', right: '0' });\n this._$selectionContainer = selectionContainer.appendTo(document.body);\n this._$selectionContent = $.fn.constructor('
').appendTo(this._$selectionContainer);\n this._$selectionContent.css(this._startRect);\n this._$selectionContent.addClass('dxrd-selection-content ui-selectable-helper');\n if (dxPopup.prototype._zIndexInitValue)\n this._$selectionContent.css('z-index', dxPopup.prototype._zIndexInitValue() + 100);\n this._updateSelectionContent(event);\n this._bodyEvents.move = event => this._mouseMove(event);\n this._bodyEvents.up = event => this._mouseUp(event);\n document.body.addEventListener('mousemove', this._bodyEvents.move);\n document.body.addEventListener('mouseup', this._bodyEvents.up);\n }\n }\n else {\n this._updateSelectionContent(event);\n }\n }\n }\n _mouseUp(event) {\n this._$selectionContainer && this._$selectionContainer.remove();\n this._$selectionContainer = null;\n this._bodyEvents.move && document.body.removeEventListener('mousemove', this._bodyEvents.move);\n this._bodyEvents.up && document.body.removeEventListener('mouseup', this._bodyEvents.up);\n this._startRect = null;\n setTimeout(() => {\n PreviewSelection.started = false;\n }, 1);\n }\n _mouseDown(event) {\n if (PreviewSelection.disabled) {\n return;\n }\n this._startRect = {\n left: event.clientX,\n top: event.clientY,\n right: document.documentElement.clientWidth - event.clientX,\n bottom: document.documentElement.clientHeight - event.clientY\n };\n this._click(this._page.pageIndex);\n }\n}\nPreviewSelection.started = false;\nPreviewSelection.disabled = false;\nko.bindingHandlers['brick-selection-prog'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var values = valueAccessor(), unwrappedValues = ko.unwrap(values);\n var selection = new PreviewSelection(element, unwrappedValues.page, unwrappedValues.click);\n addDisposeCallback(element, () => {\n selection.dispose();\n });\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\imageEditingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CssCalculator, KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { brickStyleSerializationsInfo } from '../../../common/metadata';\nimport { EditingFieldExtensions } from '../../../common/utils/editingFieldExtensions';\nimport { PreviewSelection } from '../../internal/_previewSelection';\nexport class ImageEditingFieldViewModel extends Disposable {\n constructor(field, pageWidth, pageHeight, zoom, bounds) {\n var _a;\n super();\n this.field = field;\n this.zoom = zoom;\n this.bounds = bounds;\n this.popupTarget = '.dx-designer';\n this.popupOptions = {\n target: this.popupTarget,\n boundary: this.popupTarget,\n container: this.popupTarget\n };\n this.template = 'dxrp-editing-field-image';\n this.active = ko.observable(false);\n this.shadingEnabled = ko.observable(true);\n var brickStyle = field.model().brickOptions;\n var style = { rtl: () => brickStyle.rtl };\n new ModelSerializer().deserialize(style, JSON.parse(brickStyle.style), brickStyleSerializationsInfo);\n var cssCalculator = new CssCalculator(style, ko.observable(!!brickStyle.rtlLayout));\n this._disposables.push(this.alignment = ko.computed(() => {\n return field.editValue().alignment;\n }), this.sizeMode = ko.computed(() => {\n return field.editValue().sizeMode;\n }));\n var editor = EditingFieldExtensions.instance().editor(field.editorName()) || EditingFieldExtensions.instance().editor('ImageAndSignature');\n var options = editor.options;\n this.shadingEnabled(!!((_a = options.registrationOptions) === null || _a === void 0 ? void 0 : _a.shadingEnabled));\n this.editMode = options.editMode;\n this.containerStyle = () => {\n return $.extend({\n height: this.bounds.height * zoom() + 'px',\n width: this.bounds.width * zoom() + 'px',\n zIndex: this.active() ? 10 : 0,\n top: this.bounds.top * 100 / pageHeight + '%',\n left: this.bounds.left * 100 / pageWidth + '%'\n }, cssCalculator.borderCss(), cssCalculator.paddingsCss());\n };\n this.callbacks = $.extend({\n onDraw: (s) => this.onDraw(s),\n onFocusIn: (s) => this.onFocusIn(s),\n onFocusOut: (s) => this.onBlur(s)\n }, options.callbacks);\n }\n getImage() {\n return this.field.editValue().image;\n }\n getImageType() {\n return this.field.editValue().imageType;\n }\n getPictureEditorOptions() {\n return {\n image: this.getImage(),\n imageType: this.getImageType(),\n imageMode: ko.observable(this.editMode),\n alignment: this.alignment,\n sizeMode: this.sizeMode,\n callbacks: this.callbacks,\n active: this.active,\n zoom: this.zoom,\n popupOptions: this.popupOptions,\n shadingEnabled: this.shadingEnabled\n };\n }\n onKeyDown(_, e) {\n if (e.key == KeyboardEnum.Space) {\n }\n else {\n }\n }\n onFocusIn(s) {\n PreviewSelection.disabled = true;\n }\n onDraw(s) {\n PreviewSelection.disabled = true;\n }\n onBlur(s) {\n var options = s.getCurrentOptions();\n var result = $.extend({}, this.field.editValue(), options);\n if (!!result.imageType) {\n result.imageType = result.imageType === 'svg' ? 'svg' : ImageEditingFieldViewModel.__DefaultImageType;\n }\n var currentVal = this.field.editValue();\n var isNotEqual = Object.keys(currentVal).some(x => {\n if (!result[x] && !currentVal[x])\n return false;\n return result[x] !== currentVal[x];\n });\n if (isNotEqual)\n this.field.editValue(result);\n PreviewSelection.disabled = false;\n }\n}\nImageEditingFieldViewModel.__DefaultImageType = 'img';\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\models\\popupImageEditingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageEditingFieldViewModel } from './imageEditingField';\nexport class PopupImageEditingFieldViewModel extends ImageEditingFieldViewModel {\n constructor() {\n super(...arguments);\n this.parentPopupClass = 'dxrp-editing-field-popup-container';\n this._popupInitializedClass = 'dxrp-editing-field-popup-container-initialized';\n this._getPopupContainer = (element) => $.fn.constructor(element).closest('.' + this.parentPopupClass);\n this._getPainterModel = (element) => {\n var $painter = this._getPopupContainer(element).find('.dx-painter');\n return $painter.length ? ko.dataFor($painter[0]) : null;\n };\n this._getPictureEditorModel = (element) => {\n var $popupEditing = $.fn.constructor(element).find('.dx-picture-editing');\n return $popupEditing.length ? ko.dataFor($popupEditing[0]) : null;\n };\n this._resetPictureEditor = (pictureEditorModel) => {\n pictureEditorModel.reset(this.painterData.imageSource, this.painterData.alignment, this.painterData.sizeMode, this.painterData.imageType);\n this._resetPainter(pictureEditorModel.painter);\n };\n this._resetPainter = (painter) => {\n painter.imagePainter.format(painter.imageFormatByType(this.getImageType()));\n painter.imagePainter.sizeMode(this.sizeMode());\n painter.imagePainter.alignment(this.alignment());\n painter.imagePainter.image(this.getImage());\n painter.refresh();\n };\n this.template = 'dxrp-popup-editing-field-image';\n }\n isPopupActive(element) {\n return this.active() && this._getPopupContainer(element).hasClass(this._popupInitializedClass);\n }\n getPainter() {\n if (this.painterData == null) {\n this.painterData = {\n imageSource: this.getImage(),\n imageType: this.getImageType(),\n alignment: this.alignment(),\n sizeMode: this.sizeMode(),\n zoom: this.zoom,\n canDraw: ko.observable(false)\n };\n }\n return this.painterData;\n }\n getPopupData() {\n var _showContent = ko.observable(false);\n this.popupData = {\n contentData: this,\n paintData: this.painterData,\n contentTemplate: 'dxrp-editing-field-image-editor',\n isVisible: (element) => this.isPopupActive(element),\n getPositionTarget: (element) => this._getPopupContainer(element),\n shading: this.shadingEnabled,\n showContent: _showContent,\n onShown: (e) => {\n _showContent(true);\n },\n onHiding: (e) => {\n this._getPictureEditorModel(e.component._$popupContent[0]).painter.signaturePainter.resetLastPosition();\n this._resetPainter(this._getPainterModel(e.element));\n document.activeElement['blur']();\n this.active(false);\n },\n onContentReady: (e) => {\n this._resetPainter(this._getPainterModel(e.element));\n e.component && e.component.registerKeyHandler('tab', (_) => {\n this.popupData.onHiding(e);\n });\n },\n renderedHandler: (element, model) => {\n this._resetPictureEditor(this._getPictureEditorModel(element));\n }\n };\n return this.popupData;\n }\n activateEditor(viewModel, e) {\n if (!this.field.readOnly()) {\n var _parentPopup = this._getPopupContainer(e.target);\n if (!_parentPopup.hasClass(this._popupInitializedClass))\n _parentPopup.addClass(this._popupInitializedClass);\n this.active(true);\n }\n }\n}\nexport var DefaultImageEditingFieldViewModel = PopupImageEditingFieldViewModel;\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\editing\\editingField.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable, fromEnum } from '@devexpress/analytics-core/analytics-utils';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { EditablePreviewEnabled } from '../settings';\nimport { CharacterCombEditingFieldViewModel } from './models/characterCombEditingField';\nimport { CheckEditingFieldViewModel } from './models/checkEditingField';\nimport { DefaultImageEditingFieldViewModel } from './models/popupImageEditingField';\nimport { TextEditingFieldViewModel } from './models/textEditingField';\nexport var ImageAlignment;\n(function (ImageAlignment) {\n ImageAlignment[ImageAlignment[\"TopLeft\"] = 1] = \"TopLeft\";\n ImageAlignment[ImageAlignment[\"TopCenter\"] = 2] = \"TopCenter\";\n ImageAlignment[ImageAlignment[\"TopRight\"] = 3] = \"TopRight\";\n ImageAlignment[ImageAlignment[\"MiddleLeft\"] = 4] = \"MiddleLeft\";\n ImageAlignment[ImageAlignment[\"MiddleCenter\"] = 5] = \"MiddleCenter\";\n ImageAlignment[ImageAlignment[\"MiddleRight\"] = 6] = \"MiddleRight\";\n ImageAlignment[ImageAlignment[\"BottomLeft\"] = 7] = \"BottomLeft\";\n ImageAlignment[ImageAlignment[\"BottomCenter\"] = 8] = \"BottomCenter\";\n ImageAlignment[ImageAlignment[\"BottomRight\"] = 9] = \"BottomRight\";\n})(ImageAlignment || (ImageAlignment = {}));\nexport var ImageSizeMode;\n(function (ImageSizeMode) {\n ImageSizeMode[ImageSizeMode[\"Normal\"] = 0] = \"Normal\";\n ImageSizeMode[ImageSizeMode[\"StretchImage\"] = 1] = \"StretchImage\";\n ImageSizeMode[ImageSizeMode[\"ZoomImage\"] = 4] = \"ZoomImage\";\n ImageSizeMode[ImageSizeMode[\"Squeeze\"] = 5] = \"Squeeze\";\n ImageSizeMode[ImageSizeMode[\"Cover\"] = 7] = \"Cover\";\n})(ImageSizeMode || (ImageSizeMode = {}));\nexport var sizing = {\n propertyName: 'sizing', modelName: '@Sizing', editor: editorTemplates.getEditor('combobox'), displayName: 'Sizing', localizationId: 'DevExpress.XtraReports.UI.XRPictureBox.Sizing', defaultVal: 'Normal', from: fromEnum, valuesArray: [\n { value: 'Normal', displayValue: 'Normal', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Normal' },\n { value: 'StretchImage', displayValue: 'Stretch Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.StretchImage' },\n { value: 'AutoSize', displayValue: 'Auto-Size', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.AutoSize' },\n { value: 'CenterImage', displayValue: 'Center Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.CenterImage' },\n { value: 'ZoomImage', displayValue: 'Zoom Image', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.ZoomImage' },\n { value: 'Squeeze', displayValue: 'Squeeze', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Squeeze' },\n { value: 'Tile', displayValue: 'Tile', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Tile' },\n { value: 'Cover', displayValue: 'Cover', localizationId: 'DevExpress.XtraPrinting.ImageSizeMode.Cover' }\n ]\n};\nexport var imageAlignment = {\n propertyName: 'imageAlignment', modelName: '@ImageAlignment', editor: editorTemplates.getEditor('combobox'), displayName: 'Alignment', localizationId: 'DevExpress.XtraReports.UI.XRPictureBox.Alignment', defaultVal: 'Default', from: fromEnum, valuesArray: [\n { value: 'Default', displayValue: 'Default', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.Default' },\n { value: 'TopLeft', displayValue: 'Top Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopLeft' },\n { value: 'TopCenter', displayValue: 'Top Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopCenter' },\n { value: 'TopRight', displayValue: 'Top Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.TopRight' },\n { value: 'MiddleLeft', displayValue: 'Middle Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleLeft' },\n { value: 'MiddleCenter', displayValue: 'Middle Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleCenter' },\n { value: 'MiddleRight', displayValue: 'Middle Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.MiddleRight' },\n { value: 'BottomLeft', displayValue: 'Bottom Left', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomLeft' },\n { value: 'BottomCenter', displayValue: 'Bottom Center', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomCenter' },\n { value: 'BottomRight', displayValue: 'Bottom Right', localizationId: 'DevExpress.XtraPrinting.ImageAlignment.BottomRight' }\n ]\n};\nexport class EditingField extends Disposable {\n constructor(model, index, htmlProvider) {\n super();\n this._needToUseHtml = false;\n this._index = -1;\n this._model = model;\n this._index = index;\n this._readOnly = ko.observable(model.readOnly);\n this._disposables.push(this.readOnly = ko.pureComputed({\n read: () => {\n return this._readOnly() || !EditablePreviewEnabled();\n },\n write: (newVal) => {\n this._readOnly(newVal);\n }\n }));\n this.modelValue = ko.observable(model.editValue);\n this.editValue = ko.computed({\n read: () => {\n return this.modelValue();\n },\n write: (newVal) => {\n var oldVal = this.modelValue();\n this.modelValue(newVal);\n var val = this.editingFieldChanged(this, oldVal, newVal);\n val = val == null ? newVal : val;\n if (val !== oldVal) {\n this._refreshHtmlValue(val);\n }\n if (val !== newVal) {\n this.modelValue(val);\n this._editorValue(val);\n }\n }\n });\n this._editorValue = ko.observable(model.editValue);\n this.htmlValue = ko.observable(model.htmlValue);\n this._htmlProvider = htmlProvider;\n }\n _refreshHtmlValue(newValue) {\n this.htmlValue(null);\n if (this._needToUseHtml) {\n this._htmlProvider.getEditingFieldHtml(newValue, this._index).done((html) => {\n this.htmlValue(html);\n });\n }\n }\n editingFieldChanged(field, oldVal, newVal) {\n return newVal;\n }\n editorName() { return this._model.editorName; }\n id() { return this._model.id; }\n groupID() { return this._model.groupID; }\n pageIndex() { return this._model.pageIndex; }\n type() { return this._model.type; }\n model() {\n return $.extend({}, this._model, {\n readOnly: this.readOnly.peek(),\n editValue: this.editValue.peek(),\n htmlValue: this.htmlValue.peek(),\n });\n }\n createViewModel(zoom, pageWidth, pageHeight, editingFieldsProvider, bounds) {\n if (this._model.type === 'check') {\n return new CheckEditingFieldViewModel(this, pageWidth, pageHeight, zoom, editingFieldsProvider);\n }\n else if (this._model.type === 'text') {\n this._needToUseHtml = bounds.height !== this._model.bounds.height || !!this._model.brickOptions.formatString;\n if (!this._needToUseHtml) {\n this.htmlValue(null);\n }\n return new TextEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n else if (this._model.type === 'charactercomb') {\n return new CharacterCombEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n else if (this._model.type === 'image') {\n return new DefaultImageEditingFieldViewModel(this, pageWidth, pageHeight, zoom, bounds);\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\csvExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CsvExportOptions } from '../../common/exportOptions/csvExportOptions';\nimport { useCustomSeparator } from '../../common/exportOptions/metadata';\nexport class CsvExportOptionsPreview extends CsvExportOptions {\n isPropertyVisible(name) {\n return name !== useCustomSeparator.propertyName;\n }\n isPropertyDisabled(name) {\n return false;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\metadata.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { rtfExportMode, getExportModeValues, docxExportMode, htmlExportMode, xlsExportMode, imageExportMode, xlsxExportMode } from '../../common/exportOptions/metadata';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport var rtfExportModeMergedPreview = $.extend({}, rtfExportMode, {\n valuesArray: getExportModeValues('Rtf', true, true)\n});\nexport var docxExportModeMergedPreview = $.extend({}, docxExportMode, {\n valuesArray: getExportModeValues('Docx', true, true)\n});\nexport function excludeModesForMergedDocuments(val) {\n return ko.observable('SingleFilePageByPage');\n}\nexport function excludeDifferentFilesMode(val) {\n return ko.observable(val === 'DifferentFiles' ? 'SingleFile' : val);\n}\nexport var htmlExportModePreviewBase = {\n propertyName: htmlExportMode.propertyName, modelName: htmlExportMode.modelName, defaultVal: htmlExportMode.defaultVal,\n editor: htmlExportMode.editor, displayName: htmlExportMode.displayName, localizationId: htmlExportMode.localizationId\n};\nexport var htmlExportModePreview = $.extend({}, htmlExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Html', true)\n});\nexport var htmlExportModeMergedPreview = $.extend({}, htmlExportModePreviewBase, {\n valuesArray: getExportModeValues('Html', true, true)\n});\nexport var xlsExportModePreviewBase = {\n propertyName: xlsExportMode.propertyName, modelName: xlsExportMode.modelName, defaultVal: xlsExportMode.defaultVal,\n editor: xlsExportMode.editor, displayName: xlsExportMode.displayName, localizationId: xlsExportMode.localizationId\n};\nexport var xlsExportModePreview = $.extend({}, xlsExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Xls', true)\n});\nexport var xlsExportModeMergedPreview = $.extend({}, xlsExportModePreviewBase, {\n valuesArray: getExportModeValues('Xls', true, true)\n});\nexport var imageExportModePreviewBase = {\n propertyName: imageExportMode.propertyName, modelName: imageExportMode.modelName, defaultVal: imageExportMode.defaultVal,\n editor: imageExportMode.editor, displayName: imageExportMode.displayName, localizationId: imageExportMode.localizationId\n};\nexport var imageExportModePreview = $.extend({}, imageExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Image', true)\n});\nexport var imageExportModeMergedPreview = $.extend({}, imageExportModePreviewBase, {\n valuesArray: getExportModeValues('Image', true, true)\n});\nexport var xlsxExportModePreviewBase = {\n propertyName: xlsxExportMode.propertyName, modelName: xlsxExportMode.modelName, defaultVal: xlsxExportMode.defaultVal,\n editor: xlsxExportMode.editor, displayName: xlsxExportMode.displayName, localizationId: xlsxExportMode.localizationId\n};\nexport var xlsxExportModePreview = $.extend({}, xlsxExportModePreviewBase, {\n from: excludeDifferentFilesMode,\n valuesArray: getExportModeValues('Xlsx', true)\n});\nexport var xlsxExportModeMergedPreview = $.extend({}, xlsxExportModePreviewBase, {\n valuesArray: getExportModeValues('Xlsx', true, true)\n});\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewRequestWrapper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ajax, formatUnicorn, getErrorMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { HandlerUri, MessageHandler, TimeOut } from '../settings';\nexport var ColumnSortOrder;\n(function (ColumnSortOrder) {\n ColumnSortOrder[ColumnSortOrder[\"None\"] = 0] = \"None\";\n ColumnSortOrder[ColumnSortOrder[\"Ascending\"] = 1] = \"Ascending\";\n ColumnSortOrder[ColumnSortOrder[\"Descending\"] = 2] = \"Descending\";\n})(ColumnSortOrder || (ColumnSortOrder = {}));\nexport class PreviewRequestWrapper {\n constructor(handlers, _callbacks) {\n this._callbacks = _callbacks;\n Object.keys(handlers || {}).forEach((name) => {\n this[name] = handlers[name];\n });\n }\n static getProcessErrorCallback(reportPreview, defaultErrorMessage, showMessage = true) {\n return function (message, jqXHR, textStatus) {\n if (jqXHR) {\n var statusCodeText = getLocalization(jqXHR.statusText, 'ASPxReportsStringId.HttpResponseStatusCode_' + jqXHR.status);\n if (defaultErrorMessage) {\n var stringFormat = getLocalization('{0} ({1} {2})', 'ASPxReportsStringId.Error_WithStatus');\n var messageWithStatusCode = formatUnicorn(stringFormat, defaultErrorMessage, jqXHR.status, statusCodeText);\n }\n else {\n messageWithStatusCode = statusCodeText;\n }\n }\n if (!reportPreview) {\n var error = getErrorMessage(jqXHR);\n MessageHandler().processError(error || messageWithStatusCode || defaultErrorMessage || 'Internal Server Error', showMessage);\n }\n else {\n reportPreview._processError(messageWithStatusCode || defaultErrorMessage, jqXHR, showMessage);\n }\n };\n }\n static getPage(url, ignoreError) {\n return ajax(url, undefined, undefined, PreviewRequestWrapper.getProcessErrorCallback(), ignoreError, { type: 'GET' });\n }\n initialize(reportPreview, parametersModel, searchModel) {\n this._reportPreview = reportPreview;\n this._parametersModel = parametersModel;\n this._searchModel = searchModel;\n }\n findTextRequest(text, ignore) {\n return ajax(HandlerUri(), 'findText', encodeURIComponent(JSON.stringify({\n text: text,\n documentId: this._reportPreview.documentId,\n matchCase: this._searchModel.matchCase(),\n wholeWord: this._searchModel.matchWholeWord(),\n searchUp: this._searchModel.searchUp()\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during search', 'ASPxReportsStringId.WebDocumentViewer_SearchError')), ignore);\n }\n startSearch(text, ignore) {\n return ajax(HandlerUri(), 'startSearch', encodeURIComponent(JSON.stringify({\n text: text,\n documentId: this._reportPreview.documentId,\n matchCase: this._searchModel.matchCase(),\n wholeWord: this._searchModel.matchWholeWord(),\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during search', 'ASPxReportsStringId.WebDocumentViewer_SearchError')), ignore);\n }\n getSearchStatus(searchOperationId, startIndex = 0, resultLimitPerRequest = 1000, ignore) {\n return ajax(HandlerUri(), 'getSearchStatus', encodeURIComponent(JSON.stringify({\n searchOperationId: searchOperationId,\n documentId: this._reportPreview.documentId,\n startIndex: startIndex,\n resultLimitPerRequest: resultLimitPerRequest\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during search', 'ASPxReportsStringId.WebDocumentViewer_SearchError')), ignore);\n }\n stopSearch(searchOperationId, ignore) {\n return ajax(HandlerUri(), 'stopSearch', encodeURIComponent(JSON.stringify({\n searchOperationId: searchOperationId,\n documentId: this._reportPreview.documentId,\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during search', 'ASPxReportsStringId.WebDocumentViewer_SearchError')), ignore);\n }\n stopBuild(id) {\n ajax(HandlerUri(), 'stopBuild', encodeURIComponent(id), undefined, () => true);\n }\n sendCloseRequest(documentId, reportId) {\n ajax(HandlerUri(), 'close', encodeURIComponent(JSON.stringify({\n reportId: reportId,\n documentId: documentId\n })), undefined, () => true);\n }\n startBuildRequest(shouldIgnoreError) {\n var parameters = this._parametersModel.serializeParameters();\n this._callbacks && this._callbacks.parametersSubmitted && this._callbacks.parametersSubmitted(this._parametersModel, parameters);\n return ajax({\n uri: HandlerUri(),\n action: 'startBuild',\n arg: encodeURIComponent(JSON.stringify({\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n drillDownKeys: this._reportPreview['_drillDownState'],\n sortingState: this._reportPreview['_sortingState'],\n timeZoneOffset: 0 - new Date().getTimezoneOffset(),\n parameters: parameters\n })),\n ignoreError: shouldIgnoreError,\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Cannot create a document for the current report', 'ASPxReportsStringId.WebDocumentViewer_DocumentCreationError'))\n });\n }\n getBuildStatusRequest(documentId, shouldIgnoreError, isFirstRequest, firstPageRequest) {\n return ajax({\n uri: HandlerUri(),\n action: 'getBuildStatus',\n arg: encodeURIComponent(JSON.stringify({\n documentId: documentId,\n firstPageRequest: firstPageRequest,\n isFirstRequest: isFirstRequest,\n timeOut: Math.max(5000, TimeOut())\n })),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Error obtaining a build status', 'ASPxReportsStringId.WebDocumentViewer_GetBuildStatusError')),\n ignoreError: shouldIgnoreError,\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage) || !data.success,\n getErrorMessage: this._reportPreview._getErrorMessage\n });\n }\n getDocumentData(documentId, shouldIgnoreError) {\n return ajax(HandlerUri(), 'getDocumentData', encodeURIComponent(documentId), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Cannot obtain additional document data for the current document', 'ASPxReportsStringId.WebDocumentViewer_GetDocumentDataError')), shouldIgnoreError);\n }\n customDocumentOperation(documentId, serializedExportOptions, editindFields, customData, hideMessageFromUser) {\n return ajax(HandlerUri(), 'documentOperation', encodeURIComponent(JSON.stringify({\n documentId: documentId,\n customData: customData,\n exportOptions: serializedExportOptions,\n editingFieldValues: editindFields\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('The requested document operation cannot be performed.', 'ASPxReportsStringId.WebDocumentViewer_CustomDocumentOperationsDenied_Error'), !hideMessageFromUser));\n }\n openReport(reportName) {\n return ajax(HandlerUri(), 'openReport', encodeURIComponent(reportName), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Could not open report', 'ASPxReportsStringId.WebDocumentViewer_OpenReportError') + \" '\" + reportName + \"'\"));\n }\n drillThrough(customData) {\n return ajax(HandlerUri(), 'drillThrough', encodeURIComponent(JSON.stringify({\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n documentId: this._reportPreview.documentId,\n parameters: this._parametersModel.serializeParameters(),\n editingFields: this._reportPreview.editingFieldsProvider().map(field => field.model()),\n customData: customData\n })), PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Drill through operation failed', 'ASPxReportsStringId.WebDocumentViewer_DrillThroughError')));\n }\n getStartExportOperation(arg, shouldIgnoreError) {\n return ajax(HandlerUri(), 'startExport', arg, PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError')), shouldIgnoreError);\n }\n getExportResult(requestData, shouldIgnoreError, method = 'POST') {\n return ajax({\n uri: requestData.RequestUrl,\n action: requestData.FormData.actionKey,\n arg: requestData.FormData.arg,\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError')),\n ignoreError: shouldIgnoreError,\n method\n });\n }\n cancelExportRequest(operationId, shouldIgnoreError) {\n var arg = encodeURIComponent(JSON.stringify({\n id: operationId\n }));\n return ajax(HandlerUri(), 'cancelExport', arg, PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError')), shouldIgnoreError);\n }\n getExportStatusRequest(operationId) {\n return ajax({\n uri: HandlerUri(),\n action: 'getExportStatus',\n arg: encodeURIComponent(JSON.stringify({\n id: operationId,\n timeOut: Math.max(5000, TimeOut())\n })),\n processErrorCallback: PreviewRequestWrapper.getProcessErrorCallback(this._reportPreview, getLocalization('Error obtaining an export status', 'ASPxReportsStringId.WebDocumentViewer_GetExportStatusError')),\n isError: (data) => !!data.error || !!(data.result && data.result.faultMessage) || !data.success,\n getErrorMessage: this._reportPreview._getErrorMessage\n });\n }\n getEditingFieldHtml(value, editingFieldIndex) {\n return ajax(HandlerUri(), 'getEditingFieldHtmlValue', encodeURIComponent(JSON.stringify({\n documentId: this._reportPreview.documentId,\n value: value,\n editingFieldIndex: editingFieldIndex\n })));\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\htmlExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { htmlExportOptionsSerializationInfoBase } from '../../common/exportOptions/htmlMetaData';\nimport { HtmlExportOptions } from '../../common/exportOptions/htmlExportOptions';\nimport { htmlExportModePreview, htmlExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar htmlExportOptionsSerializationInfoPreview = [].concat(htmlExportOptionsSerializationInfoBase);\nexport class HtmlExportOptionsPreview extends HtmlExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(htmlExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [htmlExportModePreview];\n }\n}\nexport class HtmlExportOptionsMergedPreview extends HtmlExportOptionsPreview {\n _getVariableInfo() {\n return [htmlExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === htmlExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.htmlExportMode(excludeModesForMergedDocuments(this.htmlExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\imageExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { imageExportOptionsSerializationInfoBase } from '../../common/exportOptions/imageMetaData';\nimport { ImageExportOptions } from '../../common/exportOptions/imageExportOptions';\nimport { imageExportModePreview, imageExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar imageExportOptionsSerializationInfoPreview = [].concat(imageExportOptionsSerializationInfoBase);\nexport class ImageExportOptionsPreview extends ImageExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(imageExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [imageExportModePreview];\n }\n}\nexport class ImageExportOptionsMergedPreview extends ImageExportOptionsPreview {\n _getVariableInfo() {\n return [imageExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === imageExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.imageExportMode(excludeModesForMergedDocuments(this.imageExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\mhtExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { mhtExportOptionsSerializationInfoBase } from '../../common/exportOptions/mhtMetaData';\nimport { MhtExportOptions } from '../../common/exportOptions/mhtExportOptions';\nimport { htmlExportModePreview, htmlExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar mhtExportOptionsSerializationInfoPreview = [].concat(mhtExportOptionsSerializationInfoBase);\nexport class MhtExportOptionsPreview extends MhtExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(mhtExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [htmlExportModePreview];\n }\n}\nexport class MhtExportOptionsMergedPreview extends MhtExportOptionsPreview {\n _getVariableInfo() {\n return [htmlExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === htmlExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.htmlExportMode(excludeModesForMergedDocuments(this.htmlExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\rtfExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { rtfExportOptionsSerializationInfoBase } from '../../common/exportOptions/rtfMetaData';\nimport { RtfExportOptions } from '../../common/exportOptions/rtfExportOptions';\nimport { rtfExportMode } from '../../common/exportOptions/metadata';\nimport { rtfExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar rtfExportOptionsSerializationInfoPreview = [].concat(rtfExportOptionsSerializationInfoBase);\nexport class RtfExportOptionsPreview extends RtfExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(rtfExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [rtfExportMode];\n }\n}\nexport class RtfExportOptionsMergedPreview extends RtfExportOptionsPreview {\n _getVariableInfo() {\n return [rtfExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === rtfExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.rtfExportMode(excludeModesForMergedDocuments(this.rtfExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\xlsExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { xlsExportOptionsSerializationInfoBase, xlsExportOptionsSerializationInfoCommon } from '../../common/exportOptions/xlsMetaData';\nimport { XlsExportOptions } from '../../common/exportOptions/xlsExportOptions';\nimport { xlsExportModePreview, xlsExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar xlsExportOptionsSerializationInfoPreview = [].concat(xlsExportOptionsSerializationInfoBase, xlsExportOptionsSerializationInfoCommon);\nexport class XlsExportOptionsPreview extends XlsExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(xlsExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [xlsExportModePreview];\n }\n}\nexport class XlsExportOptionsMergedPreview extends XlsExportOptionsPreview {\n _getVariableInfo() {\n return [xlsExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === xlsExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.xlsExportMode(excludeModesForMergedDocuments(this.xlsExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\xlsxExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { xlsExportOptionsSerializationInfoCommon } from '../../common/exportOptions/xlsMetaData';\nimport { XlsxExportOptions } from '../../common/exportOptions/xlsxExportOptions';\nimport { xlsxExportModePreview, xlsxExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar xlsxExportOptionsSerializationInfoPreview = [].concat(xlsExportOptionsSerializationInfoCommon);\nexport class XlsxExportOptionsPreview extends XlsxExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(xlsxExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [xlsxExportModePreview];\n }\n}\nexport class XlsxExportOptionsMergedPreview extends XlsxExportOptionsPreview {\n _getVariableInfo() {\n return [xlsxExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === xlsxExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.xlsxExportMode(excludeModesForMergedDocuments(this.xlsxExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\docxExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { pageRange, docxTableLayout, rasterizeImages, rasterizationResolution, exportPageBreaks, exportWatermarks, docxExportMode } from '../../common/exportOptions/metadata';\nimport { keepRowHeight } from '../../common/exportOptions/rtfMetaData';\nimport { docxDocumentOptions } from '../../common/exportOptions/docxMetaData';\nimport { DocxExportOptions } from '../../common/exportOptions/docxExportOptions';\nimport { docxExportModeMergedPreview, excludeModesForMergedDocuments } from './metadata';\nvar docxExportOptionsSerializationInfoPreview = [\n pageRange,\n docxTableLayout,\n keepRowHeight,\n rasterizeImages,\n rasterizationResolution,\n exportPageBreaks,\n exportWatermarks,\n docxDocumentOptions,\n];\nexport class DocxExportOptionsPreview extends DocxExportOptions {\n static toJson(value, serializer, refs) {\n return serializer.serialize(value, value.getInfo(), refs);\n }\n getInfo() {\n var variableInfo = this._getVariableInfo();\n return variableInfo.concat(docxExportOptionsSerializationInfoPreview);\n }\n _getVariableInfo() {\n return [docxExportMode];\n }\n}\nexport class DocxExportOptionsMergedPreview extends DocxExportOptionsPreview {\n _getVariableInfo() {\n return [docxExportModeMergedPreview];\n }\n isPropertyDisabled(name) {\n return super.isPropertyDisabled(name) || name === docxExportModeMergedPreview.propertyName;\n }\n constructor(model, serializer) {\n super(model, serializer);\n this.docxExportMode(excludeModesForMergedDocuments(this.docxExportMode())());\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\_groupEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { PropertyGridEditor } from '@devexpress/analytics-core/analytics-widgets';\nexport class ParametersGroupEditor extends PropertyGridEditor {\n constructor(info, level, parentDisabled, textToSearch) {\n super(info, level, parentDisabled, textToSearch);\n this.isGroupLabel = true;\n }\n _setPadding(position, value) {\n var padding = super._setPadding(position, value);\n padding['padding-' + position] = 10;\n padding['padding-bottom'] = 6;\n return padding;\n }\n createObjectProperties() {\n var editorOptions = this.editorOptions;\n this.collapsed(!editorOptions.expanded && editorOptions.titleVisible);\n this.hideEditorHeader = !editorOptions.titleVisible;\n this.alwaysShow(!editorOptions.showExpandButton);\n this.hideBorder = editorOptions.borderVisible === false;\n this.showHorizontally = editorOptions.orientation === 'Horizontal';\n this.level = -1;\n this.editorCreated(true);\n return super.createObjectProperties();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\signatureEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Editor } from '@devexpress/analytics-core/analytics-widgets';\nexport class SignatureEditor extends Editor {\n getAvailableSignature(root) {\n var reportPreviewModel = root.reportPreviewModel;\n if (!reportPreviewModel) {\n reportPreviewModel = root;\n }\n return reportPreviewModel.reportPreview.signatures;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\editorTemplates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { formatUnicorn } from '@devexpress/analytics-core/analytics-internal';\nimport { ParametersGroupEditor } from './_groupEditor';\nimport { SignatureEditor } from './signatureEditor';\nexport var viewerEditorTemplates = {\n multiValue: {\n header: 'dxrd-multivalue', extendedOptions: {\n onMultiTagPreparing: (args) => {\n var selectedItemsLength = args.selectedItems.length, totalCount = args.model.items.length;\n if (selectedItemsLength === totalCount) {\n var stringFormat = getLocalization('All selected ({0})', 'ASPxReportsStringId.WebDocumentViewer_MultiValueEditor_AllSelected');\n args.text = formatUnicorn(stringFormat, selectedItemsLength);\n }\n }\n }\n },\n groupEditor: { header: 'dx-emptyHeader', custom: 'dxrd-parameters-property-editor', content: 'dxrd-parameters-editor-content', editorType: ParametersGroupEditor },\n rangeEditor: { header: 'dxrv-range-parameter' },\n multiValueEditable: { custom: 'dxrd-multivalue-editable' },\n selectBox: { header: 'dx-selectbox' },\n separatorEditor: { header: 'dx-emptyHeader', custom: 'dxrd-parameters-separator' },\n signatures: { header: 'dxrdv-signature', editorType: SignatureEditor },\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\pdfExportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { PdfExportOptions } from '../../common/exportOptions/pdfExportOptions';\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nexport class PdfExportOptionsPreview extends PdfExportOptions {\n constructor(model, serializer, _signatures) {\n super(model, serializer);\n this._signatures = _signatures;\n this.signature = ko.observable();\n }\n getInfo() {\n return [\n { propertyName: 'signature', defaultVal: null, editor: viewerEditorTemplates.signatures, displayName: 'Signature', localizationId: 'PreviewStringId.EditingFieldEditors_Signature' },\n ...super.getInfo()\n ];\n }\n isPropertyVisible(name) {\n return name !== 'signature' || this._signatures().length;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\exportOptionsPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ExportOptions } from '../../common/exportOptions/exportOptions';\nimport { CsvExportOptionsPreview } from './csvExportOptionsPreview';\nimport { HtmlExportOptionsPreview, HtmlExportOptionsMergedPreview } from './htmlExportOptionsPreview';\nimport { ImageExportOptionsPreview, ImageExportOptionsMergedPreview } from './imageExportOptionsPreview';\nimport { MhtExportOptionsPreview, MhtExportOptionsMergedPreview } from './mhtExportOptionsPreview';\nimport { PdfExportOptions } from '../../common/exportOptions/pdfExportOptions';\nimport { RtfExportOptionsPreview, RtfExportOptionsMergedPreview } from './rtfExportOptionsPreview';\nimport { TextExportOptions } from '../../common/exportOptions/textExportOptions';\nimport { XlsExportOptionsPreview, XlsExportOptionsMergedPreview } from './xlsExportOptionsPreview';\nimport { XlsxExportOptionsPreview, XlsxExportOptionsMergedPreview } from './xlsxExportOptionsPreview';\nimport { DocxExportOptionsPreview, DocxExportOptionsMergedPreview } from './docxExportOptionsPreview';\nimport { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';\nimport { PdfExportOptionsPreview } from './pdfExportOptionsPreview';\nexport class ExportOptionsPreview extends ExportOptions {\n constructor(_signatures) {\n super();\n this._signatures = _signatures;\n }\n _generateFromFunction(exportType) {\n return (model, serializer) => {\n return new exportType(model || {}, serializer);\n };\n }\n hasSensitiveData() {\n return (this.xls && this.xls.hasSensitiveData())\n || (this.xlsx && this.xlsx.hasSensitiveData())\n || (this.pdf && this.pdf.hasSensitiveData());\n }\n getInfo() {\n return [\n { propertyName: 'csv', modelName: 'Csv', displayName: 'CSV Export Options', localizationId: 'DevExpress.XtraPrinting.CsvExportOptions', from: this._generateFromFunction(CsvExportOptionsPreview), toJsonObject: CsvExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: this._generateFromFunction(HtmlExportOptionsPreview), toJsonObject: HtmlExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: this._generateFromFunction(ImageExportOptionsPreview), toJsonObject: ImageExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: this._generateFromFunction(MhtExportOptionsPreview), toJsonObject: MhtExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: (model, serializer) => new PdfExportOptionsPreview(model, serializer, this._signatures), toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: this._generateFromFunction(RtfExportOptionsPreview), toJsonObject: RtfExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'textExportOptions', modelName: 'Text', displayName: 'Text Export Options', localizationId: 'DevExpress.XtraPrinting.TextExportOptions', from: this._generateFromFunction(TextExportOptions), toJsonObject: TextExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: this._generateFromFunction(XlsExportOptionsPreview), toJsonObject: XlsExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: this._generateFromFunction(XlsxExportOptionsPreview), toJsonObject: XlsxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: this._generateFromFunction(DocxExportOptionsPreview), toJsonObject: DocxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') }\n ];\n }\n}\nexport class ExportOptionsMergedPreview extends ExportOptionsPreview {\n getInfo() {\n return [\n { propertyName: 'html', modelName: 'Html', displayName: 'HTML Export Options', localizationId: 'DevExpress.XtraPrinting.HtmlExportOptions', from: this._generateFromFunction(HtmlExportOptionsMergedPreview), toJsonObject: HtmlExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'image', modelName: 'Image', displayName: 'Image Export Options', localizationId: 'DevExpress.XtraPrinting.ImageExportOptions', from: this._generateFromFunction(ImageExportOptionsMergedPreview), toJsonObject: ImageExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'mht', modelName: 'Mht', displayName: 'MHT Export Options', localizationId: 'DevExpress.XtraPrinting.MhtExportOptions', from: this._generateFromFunction(MhtExportOptionsMergedPreview), toJsonObject: MhtExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'pdf', modelName: 'Pdf', displayName: 'PDF Export Options', localizationId: 'DevExpress.XtraPrinting.PdfExportOptions', from: (model, serializer) => new PdfExportOptionsPreview(model, serializer, this._signatures), toJsonObject: PdfExportOptions.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'rtf', modelName: 'Rtf', displayName: 'RTF Export Options', localizationId: 'DevExpress.XtraPrinting.RtfExportOptions', from: this._generateFromFunction(RtfExportOptionsMergedPreview), toJsonObject: RtfExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xls', modelName: 'Xls', displayName: 'XLS Export Options', localizationId: 'DevExpress.XtraPrinting.XlsExportOptions', from: this._generateFromFunction(XlsExportOptionsMergedPreview), toJsonObject: XlsExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'xlsx', modelName: 'Xlsx', displayName: 'XLSx Export Options', localizationId: 'DevExpress.XtraPrinting.XlsxExportOptions', from: this._generateFromFunction(XlsxExportOptionsMergedPreview), toJsonObject: XlsxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') },\n { propertyName: 'docx', modelName: 'Docx', displayName: 'Docx Export Options', localizationId: 'DevExpress.XtraPrinting.DocxExportOptions', from: this._generateFromFunction(DocxExportOptionsMergedPreview), toJsonObject: DocxExportOptionsPreview.toJson, editor: editorTemplates.getEditor('objecteditor') }\n ];\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { previewDefaultResolution } from '../settings';\nimport * as $ from 'jquery';\nexport function getCurrentResolution(zoom) {\n return Math.floor((zoom || 1) * previewDefaultResolution());\n}\nexport function getImageBase64(url) {\n var deferred = $.Deferred();\n var background = new Image();\n background.src = url;\n background.crossOrigin = 'anonymous';\n background.onload = () => {\n var canvas = document.createElement('canvas');\n canvas.width = background.width;\n canvas.height = background.height;\n canvas.getContext('2d').drawImage(background, 0, 0);\n try {\n deferred.resolve(canvas.toDataURL());\n }\n catch (e) {\n deferred.reject(e);\n }\n };\n return deferred.promise();\n}\nexport function getEnumValues(enumType) {\n return Object.keys(enumType).filter(key => !isNaN(Number(enumType[key])));\n}\nexport function safelyRunWindowOpen(url, target = '_blank') {\n var newWindow = window.open(url, target);\n target === '_blank' && newWindow && (newWindow.opener = newWindow);\n return newWindow;\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_exportHandler.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { formatUnicorn, StringId } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization, _isFetchConfigured } from '@devexpress/analytics-core/analytics-utils';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nimport browser from 'devextreme/core/utils/browser';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { generateGuid } from '../../common/utils/_utils';\nimport { AsyncExportApproach, HandlerUri, ReportServerDownloadUri } from '../settings';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { safelyRunWindowOpen } from './_utils';\nexport class ExportResultRequestData {\n constructor() {\n this.RequestUrl = '';\n this.FormData = {};\n this.QueryParameters = {};\n }\n}\nexport class ExportHandler extends Disposable {\n constructor(exportSetting, preview) {\n super();\n this.preview = preview;\n this.exportActionUri = ko.observable(null);\n this.exportFormData = ko.observable([]);\n this.reportDisplayName = ko.observable(null);\n this.popupVisible = ko.observable(false);\n this.popupWidth = ko.observable(510);\n this.popupHeight = ko.observable('auto');\n this.exportingFrameName = 'dxrd-exporting-frame' + generateGuid();\n this.popupButtons = [\n {\n toolbar: 'bottom', location: 'after', widget: 'dxButton',\n options: {\n text: getLocalization('OK', StringId.DataAccessBtnOK), type: 'default', stylingMode: 'contained',\n onClick: () => this.popupVisible(false)\n }\n }\n ];\n this.printingLinkCallback = () => { };\n this.printingTextPrefix = ko.observable('');\n this.printingTextPostfix = ko.observable('');\n this.getPopupTitle = () => this.reportDisplayName() || '';\n this._exportResultRequestData = new ExportResultRequestData();\n this._showPrintNotificationDialog = true;\n this._useSameTabExport = true;\n this._useAsynchronousExport = true;\n this._workerTicker = null;\n this._workerFunctionBlobUrl = null;\n this._workerTickerFunction = function () {\n var started, interval;\n self.onmessage = function (e) {\n if (e.data === 'stop') {\n clearInterval(interval);\n return;\n }\n if (started)\n return;\n interval = setInterval(() => {\n postMessage.apply(self, ['tick']);\n }, 10);\n started = true;\n };\n };\n this._window = null;\n this._timeouts = [];\n if (exportSetting) {\n if (exportSetting.useAsynchronousExport !== undefined)\n this._useAsynchronousExport = exportSetting.useAsynchronousExport;\n if (exportSetting.useSameTab !== undefined)\n this._useSameTabExport = exportSetting.useSameTab;\n if (exportSetting.showPrintNotificationDialog !== undefined)\n this._showPrintNotificationDialog = exportSetting.showPrintNotificationDialog;\n }\n }\n _getUrlObject() {\n return window.URL || window['webkitURL'] || window['mozURL'] || window['msURL'] || window['oURL'];\n }\n _createWorker() {\n this._terminateWorker();\n var blob = new Blob(['(' + this._workerTickerFunction.toString() + ')()'], { type: 'text/javascript' });\n var _url = this._getUrlObject();\n this._workerFunctionBlobUrl = _url.createObjectURL(blob);\n this._workerTicker = new Worker(this._workerFunctionBlobUrl);\n return this._workerTicker;\n }\n _terminateWorker() {\n if (this._workerTicker) {\n this._workerTicker.terminate();\n this._workerTicker = null;\n }\n if (this._workerFunctionBlobUrl) {\n var _url = this._getUrlObject();\n _url && _url.revokeObjectURL(this._workerFunctionBlobUrl);\n this._workerFunctionBlobUrl = null;\n }\n }\n _callPrint(_window) {\n var browserVersion = parseInt(browser.version);\n if (_window && (browser.chrome && 76 <= browserVersion)) {\n var worker = this._createWorker();\n var checkOnTick = () => {\n try {\n if (_window.document && _window.document.contentType === 'application/pdf') {\n _window.print();\n worker.postMessage('stop');\n this._terminateWorker();\n }\n }\n catch (ex) {\n this._terminateWorker();\n }\n };\n worker.onerror = (e) => { checkOnTick(); };\n worker.onmessage = (e) => { checkOnTick(); };\n worker.postMessage('start');\n }\n }\n _clearExportingFrame() {\n if (this._isNewBrowser()) {\n var iframe = this.exportingFrame.contentWindow;\n iframe && iframe.location.replace('about:blank');\n }\n }\n _initPrintingWindow() {\n var printingTextParts = getLocalization('If the operation fails, you can download the {0} and print it out from another application.', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Text').split('{0}');\n this.printingTextPrefix(printingTextParts[0]);\n this.printingTextPostfix(printingTextParts[1]);\n if (this._showPrintNotificationDialog) {\n var subscription = this.popupVisible.subscribe((newVal) => {\n if (!newVal) {\n this.printingLinkCallback = () => { };\n this._clearExportingFrame();\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n this.popupVisible(true);\n }\n }\n _setPrintingLinkCallback(printingLinkCallback) {\n if (this._showPrintNotificationDialog) {\n this.printingLinkCallback = printingLinkCallback;\n }\n }\n _formSubmit(_requestData, _formTarget) {\n if (this.postingForm) {\n this.postingForm.target = _formTarget;\n this.exportActionUri(_requestData.RequestUrl);\n var formData = [];\n for (var key in _requestData.FormData) {\n formData.push({ name: key, value: _requestData.FormData[key] });\n }\n this.exportFormData(formData);\n this.postingForm.submit();\n }\n }\n _doExportSync(_exportWindow, printable, useSameTab, operationId, abortController) {\n this.onExportCustomEvent && this.onExportCustomEvent(this._exportResultRequestData);\n var _requestData = this._exportResultRequestData;\n var formTarget = useSameTab ? this.exportingFrameName : '_blank';\n if (!printable || !this._isNewBrowser()) {\n if (_isFetchConfigured() && this._useSameTabExport) {\n this._exportUsingFetch(_requestData, operationId, abortController);\n return;\n }\n this._useSameTabExport ? this._formSubmit(_requestData, formTarget) : this._replaceLocation(_exportWindow, _requestData);\n }\n else {\n if (!_exportWindow) {\n _exportWindow = (useSameTab && this.exportingFrame) ? this.exportingFrame.contentWindow : this._replaceLocation(null, null);\n }\n var method = this._useSameTabExport ? 'POST' : 'GET';\n this._printUsingBlob(_exportWindow, _requestData, method, useSameTab, operationId, abortController);\n }\n }\n _exportUsingFetch(_requestData, operationId, abortController) {\n const handleFile = (fileMetadata, _url) => {\n if (fileMetadata.url) {\n const link = document.createElement('a');\n link.href = fileMetadata.url;\n link.rel = 'noreferrer noopener';\n link.download = fileMetadata.contentFilename;\n document.body.appendChild(link);\n link.click();\n link.remove();\n _url.revokeObjectURL(fileMetadata.url);\n }\n };\n const _method = 'POST';\n this._getExportResultUsingFetch(_requestData, _method, operationId, handleFile, abortController);\n }\n _getExportResultUsingFetch(_requestData, _method, operationId, handleFile, abortController) {\n const _url = this._getUrlObject();\n const shouldIgnoreError = (operationId) => () => this.preview.progressBar.wasCancelRequested(operationId);\n const exportResult = this.preview.requestWrapper.getExportResult(_requestData, shouldIgnoreError(operationId), _method);\n this.preview.progressBar.text(getLocalization('Downloading the document...', 'WebDocumentViewer_DownloadingDocument'));\n let progress = ko.observable(0);\n this._disposables.push(progress.subscribe(value => {\n this._useSameTabExport && this.updateExportStatus(100 + value, operationId);\n }));\n exportResult.done(response => {\n if (response.ok) {\n return this._handleBlobUsingFetch(response, _url, progress, abortController)\n .then(fileMetadata => {\n handleFile(fileMetadata, _url);\n });\n }\n }).catch(response => {\n this.preview.progressBar.complete(operationId);\n const message = getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError');\n PreviewRequestWrapper.getProcessErrorCallback(this.preview, message, true)('', this, '');\n });\n }\n _handleBlobUsingFetch(response, _url, progress, abortController) {\n const contentLength = +response.headers.get('Content-Length');\n const contentDisposition = response.headers.get('Content-Disposition');\n const contentFilename = this._getFileName(contentDisposition);\n const contentType = response.headers.get('Content-Type');\n const reader = response.body.getReader();\n abortController && (abortController.signal.onabort = () => {\n reader.cancel();\n });\n const readChunk = (controller) => {\n reader.read().then(({ done, value }) => {\n if (done) {\n controller.close();\n return;\n }\n receivedLenght += value.byteLength;\n progress(Math.round(receivedLenght * 100 / contentLength));\n controller.enqueue(value);\n readChunk(controller);\n });\n };\n let receivedLenght = 0;\n return Promise.resolve(new ReadableStream({\n start(controller) {\n readChunk(controller);\n }\n }))\n .then(stream => {\n return new Response(stream, {\n headers: {\n 'Content-Type': contentType\n }\n });\n })\n .then(response => response.blob())\n .then(blob => {\n return {\n contentType,\n contentLength,\n contentFilename,\n url: !abortController.signal.aborted ? _url.createObjectURL(blob) : null\n };\n });\n }\n _getFileName(contentDisposition) {\n const utf8FileNameRegex = /filename\\*=UTF-8''(.*?)$/i;\n const fileNameRegex = /^attachment; filename=\\\"?(.*[^\\\"?$])/;\n let fileName = 'downloaded file';\n if (utf8FileNameRegex.test(contentDisposition)) {\n fileName = utf8FileNameRegex.exec(contentDisposition)[1];\n }\n else if (fileNameRegex.test(contentDisposition)) {\n fileName = fileNameRegex.exec(contentDisposition)[1];\n }\n return decodeURIComponent(fileName);\n }\n _initExportWindow() {\n var message = getLocalization('Do not close this tab to get the resulting file.', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportCloseWarning');\n var div = this._window.document.createElement('div');\n div.style['text-align'] = 'center';\n div.innerText = message;\n div.style.position = 'absolute';\n div.style.left = '0';\n div.style.top = '0';\n div.style.right = '0';\n div.style.fontSize = '20px';\n this._window.document.title = getLocalization('Exporting...', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportTabTitle');\n this._window.document.body.appendChild(div);\n div = this._window.document.createElement('div');\n div.id = 'loading';\n div.style.position = 'absolute';\n div.style.left = '0';\n div.style.top = '0';\n div.style.bottom = '0';\n div.style.right = '0';\n div.style['text-align'] = 'center';\n div.style.margin = 'auto';\n div.style.height = '0';\n div.style.fontSize = '32px';\n this._window.document.body.appendChild(div);\n }\n _startExportAsync(args, useSameTabLocal, deferred, inlineResult, printable = false, abortController) {\n if (useSameTabLocal) {\n this._setPrintingLinkCallback(() => this._startExportAsync(args, false, deferred, inlineResult, printable, abortController));\n }\n else {\n if (!this._useSameTabExport) {\n this._window = window.open();\n this._window.onunload = () => {\n this.preview.progressBar.stop();\n this._terminateWorker();\n };\n this._initExportWindow();\n }\n }\n this.preview.progressBar.text(getLocalization('Exporting the document...', 'PreviewStringId.Msg_ExportingDocument'));\n this.preview.progressBar.cancelText(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n var exportOperationIdDeferred = $.Deferred();\n var startExportOperationId = generateGuid();\n var shouldIgnoreError = (operationId) => () => this.preview.progressBar.wasCancelRequested(operationId || startExportOperationId);\n this.preview.progressBar.startProgress(startExportOperationId, (operationId) => {\n if (_isFetchConfigured() && this.preview.progressBar.progress() >= 50)\n abortController.abort();\n else\n this.preview.requestWrapper.cancelExportRequest(operationId, shouldIgnoreError(operationId));\n }, exportOperationIdDeferred.promise());\n this.preview.requestWrapper.getStartExportOperation(args, shouldIgnoreError())\n .done((response) => {\n this.preview.previewHandlersHelper.doneStartExportHandler(deferred, inlineResult, response, exportOperationIdDeferred, startExportOperationId, useSameTabLocal, printable, abortController);\n })\n .fail((error) => {\n this.preview.previewHandlersHelper.errorStartExportHandler(deferred, startExportOperationId);\n exportOperationIdDeferred.reject();\n !this._useSameTabExport && error.responseJSON && error.responseJSON['error'] && this._showAsyncExportError(this._window, error.responseJSON['error']);\n });\n }\n export(args, actionUri, inlineResult, printable = false) {\n this._terminateWorker();\n const abortController = new AbortController();\n var deferred = $.Deferred();\n var requestData = this._exportResultRequestData;\n requestData.RequestUrl = actionUri;\n if (this.preview._editingFields().length > 0 || AsyncExportApproach() || this._useAsynchronousExport || (this.preview.exportOptionsModel() && this.preview.exportOptionsModel().hasSensitiveData())) {\n setTimeout(() => {\n this._startExportAsync(args(), this._useSameTabExport, deferred, inlineResult, printable, abortController);\n });\n }\n else {\n deferred.resolve(true);\n if (this._useSameTabExport) {\n requestData.FormData['arg'] = args();\n requestData.FormData['actionKey'] = 'exportTo';\n this._setPrintingLinkCallback(() => this._doExportSync(null, true, false, null, abortController));\n }\n else {\n requestData.QueryParameters['arg'] = args();\n requestData.QueryParameters['actionKey'] = 'exportTo';\n }\n this._doExportSync(null, printable, this._useSameTabExport, null, abortController);\n }\n return deferred.promise();\n }\n _isNewBrowser() {\n var isNewChrome = browser.chrome && (parseInt(browser.version) >= 76);\n return (isNewChrome || browser.mozilla || browser['safari']);\n }\n _showAsyncExportError(window, message, status, statusText) {\n if (window) {\n var div = window.document.getElementById('loading');\n if (div) {\n if (status || statusText) {\n var stringFormat = getLocalization('{0} ({1} {2})', 'ASPxReportsStringId.Error_WithStatus');\n div.innerText = formatUnicorn(stringFormat, message, status, statusText);\n }\n else\n div.innerText = message;\n }\n }\n }\n _printUsingBlob(_exportWindow, _requestData, _method, useSameTab, operationId, abortControler) {\n _method === 'GET' && (_requestData.RequestUrl = this._addQueryParamsToUri(_requestData.RequestUrl, _requestData.QueryParameters));\n if (_isFetchConfigured()) {\n this._printUsingBlobFetch(_exportWindow, _requestData, _method, useSameTab, operationId, abortControler);\n return;\n }\n var _this = this;\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (this.readyState == 4 && this.status == 200) {\n var _url = _this._getUrlObject();\n var blobUrl = _url.createObjectURL(this.response);\n _exportWindow && _exportWindow.location.replace(blobUrl);\n setTimeout(() => { _url.revokeObjectURL(blobUrl); }, 1);\n _this._callPrint(_exportWindow);\n }\n else if (this.readyState == 4 && this.status >= 400) {\n var message = getLocalization('An error occurred during the export', 'ASPxReportsStringId.WebDocumentViewer_ExportError');\n PreviewRequestWrapper.getProcessErrorCallback(_this.preview, message, true)('', this, '');\n if (_exportWindow && _exportWindow.name != _this.exportingFrameName) {\n _this._showAsyncExportError(_exportWindow, message, this.status, this.statusText);\n }\n }\n };\n xhr.open(_method, _requestData.RequestUrl);\n xhr.responseType = 'blob';\n var formData = new FormData();\n for (var key in _requestData.FormData) {\n formData.append(key, _requestData.FormData[key]);\n }\n xhr.send(formData);\n useSameTab && this._initPrintingWindow();\n }\n _printUsingBlobFetch(_exportWindow, _requestData, _method, useSameTab, operationId, abortController) {\n const handleFile = (fileMetadata, _url) => {\n if (fileMetadata.url && _exportWindow) {\n _exportWindow.location.replace(fileMetadata.url);\n setTimeout(() => { _url.revokeObjectURL(fileMetadata.url); }, 1);\n this._callPrint(_exportWindow);\n useSameTab && this._initPrintingWindow();\n }\n };\n this._getExportResultUsingFetch(_requestData, _method, operationId, handleFile, abortController);\n }\n _addQueryParamsToUri(_exportUri, _queryParameters) {\n var keys = Object.keys(_queryParameters || {});\n if (keys.length > 0) {\n _exportUri += '?';\n _exportUri += keys.map(x => x + '=' + _queryParameters[x]).join('&');\n }\n return _exportUri;\n }\n _replaceLocation(_exportWindow, _requestData) {\n if (!_requestData) {\n return safelyRunWindowOpen('');\n }\n var _exportUrl = this._addQueryParamsToUri(_requestData.RequestUrl, _requestData.QueryParameters);\n _exportWindow ? _exportWindow.location.replace(_exportUrl) : (_exportWindow = safelyRunWindowOpen(_exportUrl));\n return _exportWindow;\n }\n dispose() {\n super.dispose();\n (this._timeouts || []).forEach(tic => clearTimeout(tic));\n this.removeProperties();\n }\n updateExportStatus(progress, operationId) {\n if (_isFetchConfigured() && this._useSameTabExport) {\n progress = Math.floor(progress / 2);\n }\n this.preview.progressBar && this.preview.progressBar.progress(progress);\n if (this._window) {\n var div = this._window.document.getElementById('loading');\n let exportText = getLocalization('Exporting the document...', 'PreviewStringId.Msg_ExportingDocument') + ' ' + progress + '%';\n div && (div.innerText = exportText);\n this._window.document.title = getLocalization('Exporting...', 'ASPxReportsStringId.WebDocumentViewer_AsyncExportTabTitle') + progress + '%';\n }\n if (progress >= 100) {\n this.preview.progressBar.complete(operationId);\n }\n }\n getExportStatus(operationId) {\n var deferred = $.Deferred();\n this._timeouts.push(setTimeout(() => {\n this.preview.requestWrapper.getExportStatusRequest(operationId)\n .done((response) => {\n this.preview.previewHandlersHelper.doneExportStatusHandler(deferred, operationId, response);\n })\n .fail((error) => {\n this.preview.previewHandlersHelper.errorExportStatusHandler(deferred, operationId);\n !this._useSameTabExport && error.responseJSON && error.responseJSON['error'] && this._showAsyncExportError(this._window, error.responseJSON['error']);\n });\n }, 250));\n return deferred.promise();\n }\n getExportResult(operationId, inlineDisposition, useSameTab, token, printable = false, uri = '', abortController) {\n var requestData = this._exportResultRequestData;\n if (uri) {\n requestData.RequestUrl = uri;\n }\n else if (token) {\n requestData.RequestUrl = ReportServerDownloadUri();\n requestData.QueryParameters['token'] = token;\n requestData.QueryParameters['printable'] = printable.toString();\n }\n else {\n var arg = encodeURIComponent(JSON.stringify({ id: operationId, inlineResult: !!inlineDisposition }));\n requestData.RequestUrl = HandlerUri();\n if (this._useSameTabExport) {\n requestData.FormData['actionKey'] = 'getExportResult';\n requestData.FormData['arg'] = arg;\n }\n else {\n requestData.QueryParameters['actionKey'] = 'getExportResult';\n requestData.QueryParameters['arg'] = arg;\n }\n }\n this._window && (this._window.onunload = null);\n this._doExportSync(this._window, printable, useSameTab, operationId, abortController);\n this._window = null;\n }\n}\nko.bindingHandlers['dxViewerExport'] = {\n init: function (element, valueAccessor) {\n var exportHandler = valueAccessor();\n var templateHtml = getTemplate('dxrd-export-tool-content');\n $.fn.constructor(element).append(templateHtml);\n var exportFrame = document.createElement('iframe');\n exportFrame.name = exportHandler.exportingFrameName;\n exportFrame.setAttribute('role', 'none');\n element.querySelector('.dxrd-visually-hidden').appendChild(exportFrame);\n exportHandler.exportingFrame = exportFrame;\n exportHandler.postingForm = element.querySelector('form');\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_previewEditingFieldsKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccessibilityControlElementBase, AccessibilityKeyboardHelperBase } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class PreviewEditingFieldsKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor() {\n super(...arguments);\n this.controlElementClassName = 'dx-accessibility-editing-field-item';\n this.accessibilityCompliantEnabled = true;\n }\n initialize() {\n super.initialize();\n this.setTabIndexes(0);\n }\n clickHandler() { }\n itemHandleEnterKey(e, index) {\n var item = this.controlElements[index];\n item.actionExecute(e);\n return true;\n }\n itemHandleSpaceKey(e, index) {\n return this.itemHandleEnterKey(e, index);\n }\n createControlElement(element, index) {\n return new PreviewEditingFieldsElement(element, ko.dataFor(element));\n }\n}\nclass PreviewEditingFieldsElement extends AccessibilityControlElementBase {\n constructor(element, model) {\n super(element);\n this.element = element;\n this.model = model;\n this._processFocus = true;\n this._isClick = (e) => this._processFocus = false;\n this._activateHandler = (e) => {\n if (this.model.activateEditor && this._processFocus) {\n this.model.activateEditor(this.model, { target: this.element, currentTarget: this.element });\n this.element.setAttribute('tabindex', '-1');\n var subscription = this.model.active.subscribe(value => {\n if (!value) {\n this.element.setAttribute('tabindex', '0');\n if (document.activeElement === document.body) {\n this._processFocus = false;\n this.element.focus();\n }\n subscription.dispose();\n }\n });\n this._disposables.push(subscription);\n }\n };\n this._blur = (e) => {\n this._processFocus = true;\n };\n element.addEventListener('mousedown', this._isClick);\n element.addEventListener('focus', this._activateHandler);\n element.addEventListener('blur', this._blur);\n }\n dispose() {\n this.element.removeEventListener('mousedown', this._isClick);\n this.element.removeEventListener('focus', this._activateHandler);\n this.element.removeEventListener('blur', this._blur);\n super.dispose();\n }\n actionExecute(e) {\n if (this.model.activateEditor)\n this._activateHandler(e);\n else if (this.model.onClick)\n this.model.onClick(this.model, e);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_brickUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport function convertToPercent(childSize, parentSize) {\n return childSize * 100 / parentSize + '%';\n}\nexport function getBrickValueForKey(brick, key = 'text') {\n var brickTextProperty = brick.content && brick.content.filter(x => x.Key === key)[0];\n return brickTextProperty && brickTextProperty.Value;\n}\nexport function brickText(brick, editingFieldsProvider) {\n var fields = editingFieldsProvider ? editingFieldsProvider() : [];\n if (brick.efIndex && brick.efIndex > 0 && brick.efIndex <= fields.length && fields[brick.efIndex - 1].type() === 'text') {\n return fields[brick.efIndex - 1].editValue();\n }\n else {\n return getBrickValueForKey(brick);\n }\n}\nexport function updateBricksPosition(brick, height, width) {\n if (!brick) {\n return;\n }\n brick[brick.rtl ? 'rightP' : 'leftP'] = convertToPercent(brick.left, width);\n brick.widthP = convertToPercent(brick.width, width);\n brick.topP = convertToPercent(brick.top, height);\n brick.heightP = convertToPercent(brick.height, height);\n brick.bricks && brick.bricks.forEach((childBrick) => {\n updateBricksPosition(childBrick, height, width);\n });\n}\nexport function initializeBrick(brick, processClick, zoom, editingFieldBricks) {\n if (!brick) {\n return;\n }\n !!brick.active ? brick.active(false) : (brick.active = ko.observable(false));\n brick['onClick'] = (e) => { processClick && processClick(brick, e); };\n brick.bricks && brick.bricks.forEach(childBrick => {\n if (!childBrick)\n return;\n childBrick.top += brick.top;\n childBrick.left += brick.left;\n initializeBrick(childBrick, processClick, zoom, editingFieldBricks);\n });\n if (brick.efIndex > 0) {\n editingFieldBricks.push(brick);\n }\n brick.text = () => brickText(brick);\n brick.accessibleDescription = getBrickValueForKey(brick, 'AccessibleDescription');\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_page.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { generateGuid } from '../../common/utils/_utils';\nimport { PreviewEditingFieldsKeyboardHelper } from '../accessibility/_previewEditingFieldsKeyboardHelper';\nimport { HandlerUri, previewDefaultResolution } from '../settings';\nimport { brickText, initializeBrick, updateBricksPosition } from './_brickUtils';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { PreviewSelection } from './_previewSelection';\nimport { getCurrentResolution } from './_utils';\nexport class PreviewPage extends Disposable {\n constructor(preview, pageIndex, processClick, loading) {\n super();\n this.isClientVisible = ko.observable(false);\n this.originalHeight = ko.observable(0);\n this.originalWidth = ko.observable(0);\n this.loadingText = getLocalization('Loading...', 'AnalyticsCoreStringId.Loading');\n this.realZoom = ko.observable(1);\n this.actualResolution = 0;\n this.currentScaleFactor = ko.observable(1);\n this.imageHeight = ko.observable(0);\n this.imageWidth = ko.observable(0);\n this.imageSrc = ko.observable('').extend({ rateLimit: { timeout: 100, method: 'notifyWhenChangesStop' } });\n this.displayImageSrc = ko.observable('');\n this.brick = ko.observable(null);\n this.brickLoading = ko.observable(true);\n this.shouldSkipBrickLoading = false;\n this.bricks = ko.computed(() => {\n return this.getBricksFlatList(this.brick());\n });\n this.activeBricks = ko.computed(() => {\n return this.bricks().filter((x) => x.active());\n });\n this.clickableBricks = ko.computed(() => {\n return this.bricks().filter((x) => !!x.navigation);\n });\n this.active = ko.observable(false);\n this.maxZoom = 0;\n this.disableResolutionReduction = false;\n this.shouldSendRequest = true;\n this._lastZoom = 0;\n this._selectedBrickPath = null;\n this.pageIndex = pageIndex;\n this.documentId = preview._currentDocumentId || ko.observable(null);\n this._disposables.push(this.imageSrc.subscribe((newVal) => {\n this.lastGetPageDeferred && this.lastGetPageDeferred.resolve(null);\n var currentGetPageDeferred = $.Deferred();\n this.lastGetPageDeferred = currentGetPageDeferred;\n currentGetPageDeferred\n .done((response) => {\n if (!response)\n return;\n this.imageHeight(response.height);\n this.imageWidth(response.width);\n this.currentScaleFactor(this._currentScaleFactor);\n this.displayImageSrc('data:image/png;base64,' + response.base64string);\n this._onPageLoaded(response, processClick, preview._editingFields);\n }).fail((_e) => {\n this._onPageLoadFailed();\n });\n this.shouldSendRequest && this._requestPage(preview);\n }));\n var unifier = ko.isObservable(preview._unifier) ? preview._unifier : ko.observable(preview._unifier || generateGuid());\n this.pageLoading = loading || ko.observable(true);\n this.originalHeight(ko.unwrap(preview._pageHeight));\n this.originalWidth(ko.unwrap(preview._pageWidth));\n this.zoom = preview._zoom;\n this.imageWidth(this.originalWidth() * this._getPixelRatio());\n this.imageHeight(this.originalHeight() * this._getPixelRatio());\n this._disposables.push(this.isClientVisible.subscribe((newVal) => {\n if (newVal) {\n this._setPageImgSrc(this.documentId(), unifier(), this.zoom());\n }\n }));\n this.color = ko.isObservable(preview._pageBackColor) ? preview._pageBackColor.peek() : '';\n this.width = ko.pureComputed(() => {\n return this.imageWidth() * this.zoom() / this.currentScaleFactor() / this._getPixelRatio();\n }).extend({ deferred: true });\n this.height = ko.pureComputed(() => {\n return this.imageHeight() * this.zoom() / this.currentScaleFactor() / this._getPixelRatio();\n }).extend({ deferred: true });\n this.isEmpty = pageIndex === -1 && !this.brick() && !processClick;\n this.resetBrickRecusive = (brick) => {\n if (brick && brick.active) {\n brick.active(false);\n if (brick.bricks) {\n brick.bricks.forEach((childBrick) => { this.resetBrickRecusive(childBrick); });\n }\n }\n };\n this.selectBrick = (path, ctrlKey) => {\n if (PreviewSelection.started)\n return;\n processClick && processClick(null);\n var currentBrick = this.brick();\n !ctrlKey && this.resetBrickRecusive(currentBrick);\n if (!path) {\n return;\n }\n if (!currentBrick) {\n this._selectedBrickPath = path;\n return;\n }\n var pathElements = path.split(',');\n pathElements.forEach((el) => {\n currentBrick = currentBrick.bricks[parseInt(el)];\n });\n currentBrick.active(true);\n };\n this._disposables.push(ko.computed(() => {\n if (!this.active()) {\n this.resetBrickRecusive(this.brick());\n this._selectedBrickPath = null;\n }\n }));\n this.editingFieldsKeyboardHelper = new PreviewEditingFieldsKeyboardHelper();\n this._disposables.push(this.editingFieldsKeyboardHelper);\n }\n _initializeEditingFields(editingFieldBricks, previewEditngFields, originalWidth, originalHeight) {\n if (this.editingFields) {\n var oldEditFields = ko.unwrap(this.editingFields());\n if (oldEditFields && oldEditFields.length > 0) {\n oldEditFields.forEach(field => field.dispose && field.dispose());\n }\n this.editingFields.dispose();\n }\n this.editingFields = ko.pureComputed(() => {\n if (!previewEditngFields || editingFieldBricks.length === 0) {\n return [];\n }\n var allEditingFields = previewEditngFields();\n var pageFieldViewModels = [];\n for (var i = 0; i < editingFieldBricks.length; i++) {\n var brick = editingFieldBricks[i];\n var editingField = allEditingFields[brick.efIndex - 1];\n if (!editingField)\n return [];\n editingField.brick = brick;\n pageFieldViewModels.push(editingField.createViewModel(this.zoom, originalWidth, originalHeight, () => allEditingFields, brick.absoluteBounds));\n brick.text = (brick => (() => brickText(brick, () => allEditingFields)))(brick);\n }\n return pageFieldViewModels;\n });\n }\n _getPixelRatio() {\n return window['devicePixelRatio'] || 1;\n }\n _onPageLoaded(result, processClick, previewEditingFields) {\n if (this._isDisposed)\n return;\n this.pageLoading(false);\n try {\n if (!result || !result.brick) {\n return;\n }\n this.brickColumnWidthArray = result.columnWidthArray;\n this.originalWidth(result.brick.width);\n this.originalHeight(result.brick.height);\n var editignFieldBricks = [];\n this.initializeBrick(result.brick, processClick, this.zoom, editignFieldBricks);\n this._initializeEditingFields(editignFieldBricks, previewEditingFields, result.brick.width, result.brick.height);\n this._selectedBrickPath && this.selectBrick(this._selectedBrickPath);\n }\n finally {\n if (!this.shouldSkipBrickLoading) {\n this.brickLoading(false);\n }\n this.shouldSkipBrickLoading = false;\n }\n }\n _onPageLoadFailed() {\n if (this._isDisposed)\n return;\n if (this.isClientVisible()) {\n this.pageLoading(false);\n this.pageIndex !== -1 && this.brickLoading(false);\n }\n }\n updateSize(zoom) {\n var newResolution = getCurrentResolution(zoom);\n this.realZoom(newResolution / previewDefaultResolution());\n return newResolution;\n }\n clearBricks() {\n this.brickLoading(true);\n }\n dispose() {\n super.dispose();\n this._isDisposed = true;\n }\n _setPageImgSrc(documentId, unifier, zoom, shouldSkipBricks) {\n if (!documentId || this.pageIndex === -1) {\n return;\n }\n if (this.maxZoom && this.maxZoom < zoom) {\n zoom = this.maxZoom;\n }\n if (this._lastZoom < zoom) {\n this._lastZoom = zoom;\n }\n else {\n if (this.actualResolution && this.disableResolutionReduction && this.imageSrc())\n return;\n }\n var newResolution = this.updateSize(zoom);\n if ((this.actualResolution === newResolution || newResolution < 9) && this.imageSrc()) {\n return;\n }\n this.actualResolution = newResolution;\n this._currentScaleFactor = zoom;\n this.shouldSkipBrickLoading = shouldSkipBricks !== null && shouldSkipBricks !== void 0 ? shouldSkipBricks : false;\n this.imageSrc(HandlerUri() +\n '?actionKey=getPage&unifier=' + unifier +\n '&arg=' + encodeURIComponent(JSON.stringify(this._getCurrentPageRequest(documentId, shouldSkipBricks))));\n }\n _requestPage(preview) {\n this.brickLoading(true);\n var documentId = this.documentId.peek();\n var currentGetPageDeferred = this.lastGetPageDeferred;\n var ignoreError = preview._closeDocumentRequests && (() => preview._closeDocumentRequests[documentId] || currentGetPageDeferred.state() != 'pending');\n PreviewRequestWrapper.getPage(this.imageSrc(), ignoreError)\n .done((response) => {\n currentGetPageDeferred.resolve(response);\n }).fail((_e) => {\n currentGetPageDeferred.reject(_e);\n });\n }\n _getCurrentPageRequest(documentId, shouldSkipBricks) {\n return {\n pageIndex: this.pageIndex,\n documentId: documentId,\n resolution: Math.floor(this.actualResolution * this._getPixelRatio()),\n includeBricks: shouldSkipBricks ? false : this.brickLoading()\n };\n }\n _clear() {\n this.pageIndex = -1;\n this.isClientVisible(false);\n this._setPageImgSrc(null, null, 1);\n this.actualResolution = 0;\n }\n initializeBrick(brick, processClick, zoom, editingFieldBricks) {\n initializeBrick(brick, processClick, this.zoom, editingFieldBricks);\n updateBricksPosition(brick, brick.height, brick.width);\n this.brick(brick);\n }\n clickToBrick(s, e) {\n var target = $.fn.constructor(e.currentTarget);\n var offset = target.offset();\n var xPerc = (e.clientX - offset.left + window.scrollX) / target.width() * 100;\n var yPerc = (e.clientY - offset.top + window.scrollY) / target.height() * 100;\n var bricks = s.bricks();\n for (var i = 0; i < bricks.length; i++) {\n if (parseFloat(bricks[i].topP) < yPerc && parseFloat(bricks[i].topP) + parseFloat(bricks[i].heightP) > yPerc\n && parseFloat(bricks[i].leftP) < xPerc && parseFloat(bricks[i].leftP) + parseFloat(bricks[i].widthP) > xPerc) {\n bricks[i].onClick && bricks[i].onClick(e);\n break;\n }\n }\n }\n getBricksFlatList(brick) {\n if (brick) {\n var bricks = [];\n var innerBricksLength = brick.bricks && brick.bricks.length || 0;\n for (var i = 0; i < innerBricksLength; i++) {\n bricks = bricks.concat(this.getBricksFlatList(brick.bricks[i]));\n }\n bricks.push(brick);\n return bricks;\n }\n return [];\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_pageLoader.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport { PreloadedPagesOffset } from '../settings';\nexport class PageLoader {\n constructor(_preview) {\n this._preview = _preview;\n this._defaultResolution = 0.25;\n this._requestCyclesLimit = 5;\n this._currentPrefetchCycle = 0;\n this._disabled = true;\n }\n get pages() {\n return this._preview.pages && this._preview.pages() || [];\n }\n _getNextStartingIndex(currentIndex) {\n var _a;\n return (_a = this.pages.find(page => (page === null || page === void 0 ? void 0 : page.pageIndex) > currentIndex && !page.imageSrc())) === null || _a === void 0 ? void 0 : _a.pageIndex;\n }\n _getPagesToUpdate(startIndex, endIndex, currentPageIndex) {\n return this.pages.slice(startIndex, endIndex).filter(page => {\n if (currentPageIndex !== undefined) {\n return page.pageIndex !== currentPageIndex;\n }\n return !page.imageSrc();\n });\n }\n _performPrefetch(pagesToUpdate, resolution) {\n pagesToUpdate.forEach(page => this._preview.updatePage(page, resolution));\n }\n _scheduleNextPrefetch(currentIndex, pendingPages) {\n this._loadTimeout = setTimeout(() => {\n var startIndex = this._getNextStartingIndex(currentIndex);\n if (!startIndex) {\n this.reset();\n return;\n }\n var promises = pendingPages.map(page => { var _a; return (_a = page.lastGetPageDeferred) === null || _a === void 0 ? void 0 : _a.promise(); }).filter(x => !!x);\n $.when(...promises).done(() => {\n !this._disabled && this.prefetchPages(startIndex, startIndex + PreloadedPagesOffset(), undefined);\n });\n }, 700);\n }\n prefetchPages(startIndex, endIndex, currentPageIndex) {\n this._disabled = false;\n var zoom = this._preview._zoom();\n if (currentPageIndex === undefined) {\n zoom = this._defaultResolution;\n this._currentPrefetchCycle++;\n }\n if (startIndex > this.pages.length - 1 || this._currentPrefetchCycle >= this._requestCyclesLimit) {\n this.reset();\n return;\n }\n var pendingPages = this._getPagesToUpdate(startIndex, endIndex, currentPageIndex);\n this._performPrefetch(pendingPages, zoom);\n this._scheduleNextPrefetch(endIndex, pendingPages);\n }\n reset() {\n this._loadTimeout && clearTimeout(this._loadTimeout);\n this._loadTimeout = null;\n this._disabled = true;\n this._currentPrefetchCycle = 0;\n }\n isActive() {\n return !!this._loadTimeout;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewHandlersHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization, _isFetchConfigured } from '@devexpress/analytics-core/analytics-utils';\nimport { PollingDelay } from '../settings';\nexport class PreviewHandlersHelper {\n constructor(preview) {\n this._preview = preview;\n }\n doneStartExportHandler(deferred, inlineResult, response, exportOperationIdDeferred, startExportOperationId, useSameTab = false, printable = false, abortController) {\n try {\n if (!response) {\n exportOperationIdDeferred.reject();\n this._preview.progressBar.complete(startExportOperationId);\n return;\n }\n var exportOperationId = response;\n exportOperationIdDeferred.resolve(exportOperationId);\n var progress = 0;\n var doGetExportStatus = (operationId) => {\n var _a;\n if (!((_a = this._preview) === null || _a === void 0 ? void 0 : _a.exportHandler))\n return;\n var promise = this._preview.exportHandler.getExportStatus(operationId);\n promise.done((result) => {\n if (result && result.requestAgain) {\n if (progress < result.progress) {\n progress = result.progress;\n this._preview.exportHandler.updateExportStatus(result.progress, operationId);\n }\n var doStatusRequest = () => { doGetExportStatus(operationId); };\n PollingDelay() ? setTimeout(doStatusRequest, PollingDelay()) : doStatusRequest();\n }\n else {\n if (!_isFetchConfigured())\n this._preview.progressBar.complete(operationId);\n if (!result.requestAgain && result.completed && !this._preview._cancelExportRequests[operationId]) {\n this._preview.exportHandler.updateExportStatus(result.progress, operationId);\n this._preview.exportHandler.getExportResult(operationId, inlineResult, useSameTab, result.token, printable, result.uri, abortController);\n }\n }\n });\n };\n doGetExportStatus(exportOperationId);\n }\n finally {\n deferred.resolve(true);\n this._preview._startBuildOperationId = '';\n }\n }\n errorStartExportHandler(deferred, startExportOperationId) {\n this._preview.progressBar.complete(startExportOperationId);\n deferred.reject();\n }\n doneExportStatusHandler(deferred, operationId, response) {\n try {\n if (!response) {\n deferred.resolve({ requestAgain: false });\n this._preview.progressBar.complete(operationId);\n return;\n }\n this._preview.progressBar && this._preview.progressBar.progress() < response.progress && this._preview.progressBar.progress(response.progress);\n deferred.resolve(response);\n }\n finally {\n if (!deferred.state || deferred.state() === 'pending') {\n deferred.resolve({ requestAgain: false });\n }\n }\n }\n errorExportStatusHandler(deferred, operationId) {\n this._preview.progressBar.complete(operationId);\n deferred.resolve({ requestAgain: false, completed: false });\n }\n doneStartBuildHandler(deferred, response, startBuildOperationId, doucmentIdDeferred) {\n try {\n var removeAllEmptyPages = (all) => {\n all && this._preview.pages.removeAll();\n this._preview.removeEmptyPages();\n };\n if (!response || !response.documentId) {\n doucmentIdDeferred.reject();\n this._preview.progressBar.complete(startBuildOperationId);\n removeAllEmptyPages();\n return;\n }\n var documentId = response.documentId;\n var stopBuildRequest = this._preview._stopBuildRequests[startBuildOperationId];\n var closeDocumentRequest = this._preview._closeDocumentRequests[startBuildOperationId];\n if (startBuildOperationId && (stopBuildRequest || closeDocumentRequest)) {\n if (closeDocumentRequest) {\n closeDocumentRequest && this._preview.closeDocument(documentId);\n }\n else {\n stopBuildRequest && this._preview.stopBuild(documentId);\n }\n doucmentIdDeferred.reject();\n this._preview.progressBar.complete(startBuildOperationId);\n removeAllEmptyPages();\n return;\n }\n this._preview._currentDocumentId(documentId);\n doucmentIdDeferred.resolve(documentId);\n var doGetBuildStatus = this._preview.getDoGetBuildStatusFunc();\n doGetBuildStatus(documentId);\n }\n finally {\n deferred.resolve(true);\n }\n }\n errorStartBuildHandler(deferred, startBuildOperationId) {\n this._preview.pageLoading(false);\n this._preview.errorMessage(getLocalization('Document creation was cancelled due to server error', 'WebDocumentViewer_DocumentCreationCancelled'));\n this._preview.progressBar.complete(startBuildOperationId);\n deferred.resolve(true);\n this._preview.removeEmptyPages();\n }\n errorGetBuildStatusHandler(deferred) {\n deferred.resolve({ requestAgain: false, completed: false });\n }\n processPages(pageCount, stopProcessingPredicate) {\n var wereNoPagesAndNewOnesExist = this._preview.pageIndex() === -1 && pageCount > 0;\n if (wereNoPagesAndNewOnesExist) {\n this._preview.pageIndex(0);\n }\n for (var i = 0; i < pageCount && !stopProcessingPredicate(); i++) {\n var createNewPage = (index) => {\n return this._preview.createPage(index, this._preview.createBrickClickProcessor(index));\n };\n if (i < this._preview.pages().length) {\n var page = this._preview.pages()[i];\n if (!page || page.isEmpty) {\n page = createNewPage(i);\n this._preview.pages.splice(i, 1, page);\n }\n if (page.pageIndex === -1) {\n page.pageIndex = i;\n if (this._preview.pageIndex.peek() === i) {\n this._preview.setPageVisibility(page, true);\n }\n }\n }\n else {\n var newPage = createNewPage(i);\n this._preview.pages.push(newPage);\n }\n }\n this._preview._raiseOnSizeChanged();\n if (wereNoPagesAndNewOnesExist) {\n var pageIndex = this._preview.pages().length ? 0 : -1;\n this._preview.goToPage(pageIndex, true);\n }\n }\n doneGetBuildStatusHandler(deferred, documentId, response, stopProcessingPredicate) {\n try {\n if (!response) {\n deferred.resolve({ requestAgain: false });\n return;\n }\n this._preview.progressBar.progress() < response.progress && !this._preview._stopBuildRequests[documentId] && !stopProcessingPredicate()\n && this._preview.progressBar.progress(response.progress);\n this.processPages(response.pageCount, stopProcessingPredicate);\n this._preview._resolveFirstPage(response);\n deferred.resolve(response);\n }\n finally {\n if (deferred.state() === 'pending') {\n deferred.resolve({ requestAgain: false });\n }\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_progressViewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nexport class ProgressViewModel extends Disposable {\n constructor(enableKeyboardSupport) {\n super();\n this.progress = ko.observable(0);\n this._forceInvisible = ko.observable(false);\n this._cancelExportRequests = {};\n this.inProgress = ko.observable(false);\n this.cancelText = ko.observable(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n this.operationId = ko.observable();\n this.text = ko.observable('');\n this.cssClasses = ko.observable();\n this.cancelVisible = ko.pureComputed(() => !!this.operationId() && !this.isCancelling());\n this.isCancelling = ko.observable(false);\n this.visible = ko.pureComputed({\n read: () => {\n if (this._forceInvisible()) {\n return false;\n }\n return this.inProgress();\n },\n write: (visibleState) => {\n this._forceInvisible(!visibleState);\n }\n });\n if (enableKeyboardSupport) {\n this.progressBarAccessibility = new ListKeyboardHelper();\n this._disposables.push(this.progressBarAccessibility);\n }\n this._disposables.push(this.cancelVisible, this.visible);\n }\n wasCancelRequested(id) {\n return !!(id && this._cancelExportRequests[id]);\n }\n setPosition(position) {\n if (!position) {\n this.cssClasses({\n 'dxrd-align-default': true\n });\n }\n else {\n this.cssClasses({\n 'dxrd-align-bottom': position.bottom,\n 'dxrd-align-top': position.top,\n 'dxrd-align-left': position.left,\n 'dxrd-align-right': position.right\n });\n }\n }\n complete(completeOperationId) {\n if (completeOperationId === this.operationId() || this._startOperationId === completeOperationId || !completeOperationId) {\n this.inProgress(false);\n this.progress(0);\n this._startOperationId = null;\n this.operationId(null);\n this._lastOperationDeferred && this._lastOperationDeferred.resolve(completeOperationId);\n this.rejectLastOperationIdDeferred();\n this.isCancelling(false);\n }\n }\n dispose() {\n this.rejectLastOperationIdDeferred();\n super.dispose();\n }\n rejectLastOperationIdDeferred() {\n this._lastOperationIdDeferred && this._lastOperationIdDeferred.reject();\n }\n rejectLastOperationDeferred() {\n this._lastOperationDeferred && this._lastOperationDeferred.reject();\n }\n startProgress(startOperationId, onStop, operationIdPromise) {\n if (this.inProgress()) {\n this.stop();\n this.rejectLastOperationDeferred();\n this.rejectLastOperationIdDeferred();\n }\n this._startOperationId = startOperationId;\n this.inProgress(true);\n this.progress(0);\n var newOperationDeferred = $.Deferred();\n var newOperationIdDeferred = $.Deferred();\n this._lastOperationDeferred = newOperationDeferred;\n this._lastOperationIdDeferred = newOperationIdDeferred;\n operationIdPromise\n .done(operationId => {\n newOperationIdDeferred.resolve(operationId);\n }).fail(() => {\n newOperationIdDeferred.reject();\n newOperationDeferred.reject();\n this.complete(startOperationId);\n });\n newOperationIdDeferred.done(operationId => {\n this.operationId(operationId);\n });\n this.stop = () => {\n this.isCancelling(true);\n this.text(getLocalization('Cancelling...', 'ASPxReportsStringId.WebDocumentViewer_Cancelling'));\n var operationId = this.operationId();\n var finalizeId = operationId || this._startOperationId;\n try {\n $.isFunction(onStop) && onStop(finalizeId);\n if (operationId)\n this._cancelExportRequests[operationId] = true;\n if (this._startOperationId)\n this._cancelExportRequests[this._startOperationId] = true;\n }\n finally {\n this.complete(operationId);\n }\n };\n return this._lastOperationDeferred.promise();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_sortingProcessor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ColumnSortOrder } from './_previewRequestWrapper';\nexport class SortingProcessor {\n constructor(_getSortingStage) {\n this._getSortingStage = _getSortingStage;\n }\n doSorting(sortData, shiftKey, ctrlKey) {\n if (!sortData)\n return;\n if (ctrlKey) {\n if (this._detachSorting(sortData))\n return;\n }\n else if (shiftKey)\n this._appendSorting(sortData);\n else\n this._applySorting(sortData);\n return true;\n }\n _applySorting(sortData) {\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n var value = sortingStage[i].Value || [];\n for (var index = 0; index < value.length; index++) {\n if (value[index] && (value[index].fieldName === sortData.field)) {\n if (index != 0) {\n var x = value.splice(index, 1)[0];\n this._changeSortOrder(x);\n value.unshift(x);\n }\n else\n this._changeSortOrder(value[index]);\n }\n else\n value[index].sortOrder = ColumnSortOrder.None;\n }\n return;\n }\n }\n }\n _appendSorting(sortData) {\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n var value = sortingStage[i].Value || [];\n for (var index = 0; index < value.length; index++) {\n if (value[index] && (value[index].fieldName === sortData.field)) {\n if (index != value.length - 1) {\n var x = value.splice(index, 1)[0];\n this._changeSortOrder(x);\n value.push(x);\n return;\n }\n this._changeSortOrder(value[index]);\n return;\n }\n }\n }\n }\n }\n _detachSorting(sortData) {\n var skipProcessing = false;\n var sortingStage = this._getSortingStage();\n for (var i = 0; i < sortingStage.length; i++) {\n if (sortingStage[i] && sortingStage[i].Key === sortData.target) {\n (sortingStage[i].Value || []).forEach(f => {\n if (f.sortOrder === ColumnSortOrder.None)\n skipProcessing = true;\n else\n f.sortOrder = ColumnSortOrder.None;\n });\n return;\n }\n }\n return skipProcessing;\n }\n _changeSortOrder(fieldInfo) {\n fieldInfo.sortOrder = fieldInfo.sortOrder === ColumnSortOrder.Ascending ? ColumnSortOrder.Descending : ColumnSortOrder.Ascending;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\reportPreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { CustomSortedArrayStore, formatUnicorn, getErrorMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization, ModelSerializer } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageSource } from '../common/imageSource';\nimport { generateGuid, transformNewLineCharacters } from '../common/utils/_utils';\nimport { PreviewBricksKeyboardHelper } from './accessibility/_previewBricksKeyboardHelper';\nimport { ZoomAutoBy } from './constants';\nimport { EditingField } from './editing/editingField';\nimport { ExportOptionsMergedPreview, ExportOptionsPreview } from './exportOptions/exportOptionsPreview';\nimport { ExportHandler } from './internal/_exportHandler';\nimport { PreviewPage } from './internal/_page';\nimport { PageLoader } from './internal/_pageLoader';\nimport { PreviewHandlersHelper } from './internal/_previewHandlersHelper';\nimport { PreviewRequestWrapper } from './internal/_previewRequestWrapper';\nimport { ProgressViewModel } from './internal/_progressViewModel';\nimport { SortingProcessor } from './internal/_sortingProcessor';\nimport { safelyRunWindowOpen } from './internal/_utils';\nimport { EditablePreviewEnabled, HandlerUri, MessageHandler, PollingDelay, PreloadedPagesOffset } from './settings';\nexport class ReportPreview extends Disposable {\n constructor(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl = false, enableKeyboardSupport, exportSettings, element) {\n super();\n this.enableKeyboardSupport = enableKeyboardSupport;\n this.element = element;\n this.predefinedZoomLevels = ko.observableArray([5, 2, 1.5, 1, 0.75, 0.5, 0.25]);\n this._pageWidth = ko.observable(818);\n this._pageHeight = ko.observable(1058);\n this._pageBackColor = ko.observable('');\n this._currentReportId = ko.observable(null);\n this._currentReportUrl = ko.observable(null);\n this._currentDocumentId = ko.observable(null);\n this._unifier = ko.observable('');\n this._stopBuildRequests = {};\n this._closeReportRequests = {};\n this._closeDocumentRequests = {};\n this._cancelExportRequests = {};\n this._editingFields = ko.observable([]);\n this._startBuildOperationId = '';\n this._editingValuesSubscriptions = [];\n this._drillDownState = [];\n this._sortingState = [];\n this._sortingProcessor = new SortingProcessor(() => this._sortingState || []);\n this._getBuildStatusDeferreds = [];\n this._timeouts = [];\n this._deferreds = [];\n this.getSelectedContent = (punctuationMark = '') => {\n var currentPage = this.pages()[this.pageIndex()];\n if (!currentPage || !currentPage.brickColumnWidthArray) {\n return '';\n }\n var activeBricks = [];\n var getActiveBricks = function (currentBrick, resultArray) {\n if (!currentBrick) {\n return;\n }\n currentBrick.active() && currentBrick.genlIndex != -1 && activeBricks.push(currentBrick);\n currentBrick.bricks && currentBrick.bricks.length != 0 && currentBrick.bricks.forEach((innerBrick) => { getActiveBricks(innerBrick, resultArray); });\n };\n getActiveBricks(currentPage.brick(), activeBricks);\n if (!activeBricks) {\n return '';\n }\n var sortedActiveBricks = [];\n var extendWithSpaces = function (width, text) {\n var spaceCount = width - text.length;\n for (var i = 0; i <= spaceCount; i++) {\n text += ' ';\n }\n return text;\n };\n var firstUsedColumn = currentPage.brickColumnWidthArray.length, lastUsedColumn = -1;\n activeBricks.forEach((activeBrick) => {\n var row = sortedActiveBricks[activeBrick.row];\n if (!row) {\n row = [];\n sortedActiveBricks[activeBrick.row] = row;\n }\n row[activeBrick.col] = activeBrick.accessibleDescription || activeBrick.text();\n if (firstUsedColumn > activeBrick.col) {\n firstUsedColumn = activeBrick.col;\n }\n if (lastUsedColumn < activeBrick.col) {\n lastUsedColumn = activeBrick.col;\n }\n });\n var result = '';\n sortedActiveBricks.forEach((row, index) => {\n for (var c = firstUsedColumn; c <= lastUsedColumn; c++) {\n var rowText = row[c] ? row[c] + punctuationMark : '';\n result += c == lastUsedColumn ? rowText : extendWithSpaces(currentPage.brickColumnWidthArray[c], rowText);\n }\n if (index != sortedActiveBricks.length - 1) {\n result += '\\r\\n';\n }\n });\n return result;\n };\n this.rtlReport = ko.observable(false);\n this.currentPage = ko.observable(null);\n this.originalParametersInfo = ko.observable(null);\n this.pageIndex = ko.observable(-1);\n this.showMultipagePreview = ko.observable(false);\n this.documentMap = ko.observable();\n this.exportOptionsModel = ko.observable();\n this.pageLoading = ko.observable(false);\n this.errorMessage = ko.observable('');\n this.documentBuilding = ko.observable(false);\n this.reportOpening = ko.observable(false);\n this.pages = ko.observableArray([]).extend({ rateLimit: { timeout: 20, method: 'notifyWhenChangesStop' } });\n this.isAutoFit = ko.observable(true);\n this.autoFitBy = ko.observable(ZoomAutoBy.WholePage);\n this.exportDisabled = ko.pureComputed(() => this.progressBar.inProgress() || !this.exportOptionsModel());\n this._zoom = ko.observable(1);\n this.zoom = ko.pureComputed({\n read: () => {\n var autoFitBy = this.autoFitBy();\n if (autoFitBy != ZoomAutoBy.None || this._zoom() === 0) {\n return autoFitBy;\n }\n return this._zoom();\n },\n write: (val) => {\n if (val > 0) {\n this.autoFitBy(ZoomAutoBy.None);\n this._zoom(val);\n }\n else {\n this.autoFitBy(val);\n }\n }\n });\n this.editingFieldsProvider = () => this._editingFields();\n this._currentPageText = ko.pureComputed(() => {\n if (this.pageIndex() === -1) {\n return getLocalization('0 pages', 'ASPxReportsStringId.WebDocumentViewer_0Pages');\n }\n else {\n var ofText = getLocalization('of', 'ASPxReportsStringId.ToolBarItemText_OfLabel');\n return (this.pageIndex() + 1) + ' ' + ofText + ' ' + this.pages().length;\n }\n });\n this._raiseOnSizeChanged = () => { this.onSizeChanged() && this.onSizeChanged()(); };\n this.previewSize = ko.observable(0);\n this.onSizeChanged = ko.observable();\n this.previewVisible = ko.observable(false);\n this.editingFieldsHighlighted = ko.observable(false);\n this.canSwitchToDesigner = true;\n this.allowURLsWithJSContent = false;\n this.zoomStep = ko.observable(0.05);\n this._progressFirstTime = false;\n this.emptyDocumentCaption = ko.pureComputed(() => {\n var parametersInfo = this.originalParametersInfo();\n var parametersExist = parametersInfo && parametersInfo.parameters.some(x => x.Visible);\n var newCaption = '';\n if (this.documentBuilding()) {\n if (this.currentPage()) {\n if (!this._progressFirstTime)\n newCaption = formatUnicorn(getLocalization('Progress {0}%', 'ASPxReportsStringId.WebDocumentViewer_AriaDocumentProgress'), this.progressBar.progress().toString());\n else\n newCaption = this.progressBar.progress() + '%';\n this._progressFirstTime = true;\n }\n else {\n newCaption = getLocalization('Creating the document...', 'PreviewStringId.Msg_CreatingDocument');\n }\n }\n else if (parametersExist && !this.documentId) {\n newCaption = getLocalization('Waiting for parameter values...', 'PreviewStringId.Msg_WaitingForParameterValues');\n }\n else if (this.documentId) {\n this._progressFirstTime = false;\n if (this.pageIndex() !== -1 && !this.progressBar.inProgress()) {\n newCaption = getLocalization('Document is ready', 'ASPxReportsStringId.WebDocumentViewer_AriaDocumentReady');\n }\n else {\n newCaption = getLocalization('The document does not contain any pages.', 'PreviewStringId.Msg_EmptyDocument');\n }\n }\n else if (this.reportOpening()) {\n this._progressFirstTime = false;\n newCaption = getLocalization('Loading...', 'AnalyticsCoreStringId.Loading');\n }\n else if (this.errorMessage()) {\n newCaption = this.errorMessage();\n }\n return newCaption;\n }).extend({ rateLimit: { timeout: 1000 } });\n this.signatures = ko.observableArray([]);\n this.exportOptionsTabVisible = ko.observable(true);\n HandlerUri(handlerUri || HandlerUri());\n this.pageLoader = new PageLoader(this);\n this.progressBar = new ProgressViewModel(enableKeyboardSupport);\n this.editingFieldChanged = callbacks && callbacks.editingFieldChanged;\n this.previewHandlersHelper = previewHandlersHelper || new PreviewHandlersHelper(this);\n this.requestWrapper = previewRequestWrapper || new PreviewRequestWrapper(null, callbacks);\n this.rtlViewer = rtl;\n this.exportHandler = new ExportHandler(exportSettings, this);\n if (callbacks) {\n this.customProcessBrickClick = callbacks.previewClick;\n this.customizeExportOptions = callbacks.customizeExportOptions;\n this.documentReady = callbacks.documentReady;\n this.exportHandler.onExportCustomEvent = callbacks.onExport;\n this._onGetBuildStatus = callbacks._onGetBuildStatus;\n this._onGetDocumentDetails = callbacks._onGetDocumentDetails;\n }\n this._disposables.push(EditablePreviewEnabled.subscribe((newValue) => !newValue && this.editingFieldsHighlighted(false)));\n this._disposables.push(this.documentBuilding.subscribe((newVal) => {\n if (!newVal) {\n this._unifier(generateGuid());\n var documentId = this._currentDocumentId();\n var pageCount = this.pages().length;\n for (var i = 0; i < pageCount; i++) {\n var page = this.pages()[i];\n if (!page.pageLoading()) {\n page.clearBricks();\n }\n page.updateSize(this._zoom());\n page.actualResolution = 0;\n page.isClientVisible() && page._setPageImgSrc(documentId, this._unifier(), this._zoom());\n }\n if (!this.pageLoader.isActive()) {\n this.pageLoader.prefetchPages(0, 0, undefined);\n }\n }\n else {\n this.progressBar.text(getLocalization('Creating the document...', 'PreviewStringId.Msg_CreatingDocument'));\n this.progressBar.cancelText(getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'));\n }\n }));\n this._disposables.push(this._currentDocumentId.subscribe((newVal) => {\n this._unifier(newVal ? generateGuid() : '');\n }));\n this._disposables.push(this.previewSize.subscribe(() => this._raiseOnSizeChanged()));\n this._disposables.push(this.zoom);\n this._disposables.push(this.exportDisabled);\n this._disposables.push(this._currentPageText);\n this._disposables.push(this.progressBar);\n this._disposables.push(this.emptyDocumentCaption);\n this._disposables.push(this.showMultipagePreview.subscribe(() => {\n if (!this.showMultipagePreview()) {\n var currentPage = this.pages()[this.pageIndex()];\n currentPage && currentPage.isClientVisible(true);\n }\n }));\n this._disposables.push(this._zoom.subscribe(() => {\n if (this.showMultipagePreview()) {\n this.pages().forEach((page) => {\n page.updateSize(page.zoom());\n page.isClientVisible(false);\n });\n this._raiseOnSizeChanged();\n }\n else {\n var currentPage = this.pages()[this.pageIndex()];\n currentPage && currentPage.isClientVisible.notifySubscribers(currentPage.isClientVisible.peek());\n }\n }));\n this._disposables.push(ko.computed(() => {\n var pagesArray = this.pages();\n var pageIndex = this.pageIndex();\n if (!pagesArray || pageIndex >= pagesArray.length)\n return;\n var currentPage = null;\n if (pageIndex >= 0)\n currentPage = pagesArray[pageIndex];\n if (currentPage != this.currentPage.peek())\n this.currentPage(currentPage);\n }));\n if (enableKeyboardSupport) {\n this.previewBrickKeyboardHelper = new PreviewBricksKeyboardHelper(this);\n this._disposables.push(this.previewBrickKeyboardHelper);\n }\n }\n _doDrillDown(drillDownKey) {\n this._drillDownState.forEach((x) => x.Key === drillDownKey && (x.Value = !x.Value));\n var documentId = this._currentDocumentId();\n this.closeDocument();\n this.progressBar.complete(documentId);\n this.documentMap(null);\n for (var i = this.pages().length - 1; i >= 0; i--) {\n var page = this.pages()[i];\n if (i > this.pageIndex()) {\n this.pages.remove(page);\n }\n else {\n page._clear();\n }\n }\n this._startBuildRequest();\n }\n _doSorting(sortData, shiftKey, ctrlKey) {\n if (!this._sortingProcessor.doSorting(sortData, shiftKey, ctrlKey))\n return;\n this.closeDocument();\n this.documentMap(null);\n this.pages().forEach(page => page._clear());\n this._startBuildRequest();\n }\n dispose() {\n super.dispose();\n (this._timeouts || []).forEach(tic => clearTimeout(tic));\n (this._deferreds || []).forEach(deferred => deferred.reject());\n this.exportHandler && this.exportHandler.dispose();\n this.removeProperties();\n this._sortingProcessor = null;\n }\n removeEmptyPages(all) {\n all && this.pages.removeAll();\n for (var idx = this.pages().length - 1; idx >= 0; idx--) {\n var tempPage = this.pages()[idx];\n (tempPage.isEmpty || tempPage.pageIndex === -1) && this.pages.remove(tempPage);\n }\n }\n _initialize() {\n var _a, _b, _c;\n this._drillDownState = [];\n this._sortingState = [];\n this._initialDocumentData = null;\n if (this.requestWrapper && ((_a = this.requestWrapper['_searchModel']) === null || _a === void 0 ? void 0 : _a.loading()) && ((_b = this.requestWrapper['_searchModel']) === null || _b === void 0 ? void 0 : _b.useAsyncSearch()))\n (_c = this.requestWrapper['_searchModel']) === null || _c === void 0 ? void 0 : _c.stopSearchProcess();\n this.closeDocument();\n this._editingFields([]);\n this._editingValuesSubscriptions.forEach(item => item.dispose());\n this._editingValuesSubscriptions = [];\n this.documentMap(null);\n this.pageIndex(-1);\n this.pageLoading(true);\n this.errorMessage('');\n this.exportOptionsModel(null);\n this.progressBar.complete(null);\n this._getBuildStatusDeferreds.forEach(a => a.reject());\n this._getBuildStatusDeferreds = [];\n this.pages().forEach(x => x.dispose());\n this.pages([this.createPage(-1, undefined, this.pageLoading)]);\n this.exportHandler.reportDisplayName(null);\n }\n createPage(pageIndex, processClick, loading) {\n return new PreviewPage(this, pageIndex, processClick, loading);\n }\n _getIgnorePredicate(documentId) {\n return () => this._closeDocumentRequests && this._closeDocumentRequests[documentId];\n }\n _cleanTabInfo() {\n this.exportOptionsModel(null);\n this.documentMap(null);\n }\n _clearReportInfo() {\n this._cleanTabInfo();\n this.closeReport();\n this.originalParametersInfo(null);\n }\n createBrickClickProcessor(cyclePageIndex) {\n var _self = this;\n return (brick, e) => {\n _self.goToPage(cyclePageIndex, true);\n if (!brick)\n return;\n var page = _self.pages()[cyclePageIndex];\n if (!page)\n return;\n page.selectBrick('');\n var shiftKey = !!(e && e.shiftKey);\n var ctrlKey = !!(e && e.ctrlKey);\n var brickNavigation = brick && brick.navigation;\n var defaultHandler = () => {\n if (brickNavigation) {\n if (brickNavigation.drillDownKey && _self.reportId && _self._doDrillDown && _self._drillDownState.length > 0) {\n if (_self._startBuildOperationId)\n return;\n _self._doDrillDown(brickNavigation.drillDownKey);\n }\n else if (brickNavigation.sortData && _self.reportId && _self._doSorting && _self._sortingState.length > 0) {\n if (_self._startBuildOperationId)\n return;\n _self._doSorting(brickNavigation.sortData, shiftKey, ctrlKey);\n }\n if (brickNavigation.pageIndex >= 0) {\n var targetPage = _self.pages().filter(page => page.pageIndex === brickNavigation.pageIndex)[0];\n if (targetPage) {\n _self.goToPage(brickNavigation.pageIndex);\n targetPage.selectBrick(brickNavigation.indexes);\n _self.brickClickDocumentMapHandler && _self.brickClickDocumentMapHandler(brickNavigation);\n }\n }\n else {\n var validateUrl = function (url) {\n var isUrlString = typeof url === 'string';\n if (isUrlString) {\n url = url.toLowerCase();\n }\n if (url === 'empty') {\n return false;\n }\n return _self.allowURLsWithJSContent || (isUrlString && (url.indexOf('javascript:') === -1));\n };\n if (brickNavigation.url && validateUrl(brickNavigation.url)) {\n safelyRunWindowOpen(brickNavigation.url, brickNavigation.target || '_blank');\n }\n }\n }\n };\n if (_self.customProcessBrickClick && _self.customProcessBrickClick(cyclePageIndex, brick, defaultHandler))\n return;\n defaultHandler();\n };\n }\n delayedInit() {\n this.previewBrickKeyboardHelper && this.previewBrickKeyboardHelper.delayedInit();\n }\n openReport(reportName) {\n this._clearReportInfo();\n var deferred = $.Deferred();\n this._deferreds.push(deferred);\n this._openReportOperationDeferred = deferred;\n this.requestWrapper.openReport(reportName).done((response) => {\n deferred.resolve(response);\n }).fail((error) => {\n deferred.reject(error);\n });\n return this.initialize(deferred.promise());\n }\n drillThrough(customData, closeCurrentReport = true) {\n var deferred = $.Deferred();\n this.requestWrapper.drillThrough(customData).done(response => {\n if (closeCurrentReport) {\n this._clearReportInfo();\n this.initialize(deferred.promise());\n }\n deferred.resolve(response);\n }).fail((error) => {\n deferred.reject(error);\n });\n return deferred.promise();\n }\n _sortCustomParametersLookUpValues(reportParameterInfo) {\n var _a;\n if (!reportParameterInfo || !reportParameterInfo.knownEnums)\n return;\n (_a = reportParameterInfo.parameters) === null || _a === void 0 ? void 0 : _a.forEach((parameter) => {\n if (!parameter.LookUpValues)\n return;\n if (reportParameterInfo.knownEnums.some(x => x.enumType === parameter.TypeName)) {\n CustomSortedArrayStore._sortItems(parameter.LookUpValues, 'Description');\n }\n });\n }\n _resolveFirstPage(status) {\n var firstPage = this.pages()[0];\n firstPage.shouldSendRequest = true;\n if (firstPage.displayImageSrc() || status.pageCount === 0)\n return;\n if (status.firstPageResponse && firstPage.lastGetPageDeferred) {\n firstPage.lastGetPageDeferred.resolve(status.firstPageResponse);\n }\n else {\n firstPage.lastGetPageDeferred && firstPage._requestPage(this);\n }\n this.setPageVisibility(firstPage, true);\n }\n initialize(initializeDataPromise) {\n this.reportOpening(true);\n this._currentReportId(null);\n this._currentReportUrl(null);\n this._currentDocumentId(null);\n this._initialize();\n var _initializeDeferred = $.Deferred();\n this._deferreds.push(_initializeDeferred);\n _initializeDeferred.done(() => {\n initializeDataPromise.done((previewInitialize) => {\n this.reportOpening(false);\n if (previewInitialize && !previewInitialize.error && !previewInitialize.startBuildFaultMessage && (previewInitialize.reportId || previewInitialize.documentId)) {\n this._currentReportId(previewInitialize.reportId);\n this._currentReportUrl(previewInitialize.reportUrl);\n this._currentDocumentId(previewInitialize.documentId);\n this.rtlReport(previewInitialize.rtlReport);\n var pageSettings = previewInitialize.pageSettings;\n if (pageSettings) {\n if (pageSettings.height)\n this._pageHeight(pageSettings.height);\n if (pageSettings.width)\n this._pageWidth(pageSettings.width);\n this._pageBackColor((pageSettings.color && this.readerMode) ? 'rgba(' + pageSettings.color + ')' : '');\n }\n this._initialDocumentData = previewInitialize.documentData;\n this._sortCustomParametersLookUpValues(previewInitialize.parametersInfo);\n this.originalParametersInfo(previewInitialize.parametersInfo);\n if (previewInitialize.documentId && !this.documentBuilding()) {\n var documentIdPromise = $.Deferred().resolve(previewInitialize.documentId).promise();\n this.progressBar.startProgress(null, () => { this.stopBuild(); }, documentIdPromise)\n .always(() => { this.documentBuilding(false); });\n this.documentBuilding(true);\n var doGetBuildStatusFunc = this.getDoGetBuildStatusFunc(true);\n doGetBuildStatusFunc(previewInitialize.documentId);\n }\n }\n else if (previewInitialize.startBuildFaultMessage) {\n this._processError(getLocalization('Cannot create a document for the current report', 'ASPxReportsStringId.WebDocumentViewer_DocumentCreationError'), null, true, previewInitialize.startBuildFaultMessage);\n }\n else {\n this.pageLoading(false);\n this._processError(getLocalization('The report preview initialization has failed', 'ASPxReportsStringId.WebDocumentViewer_InitializationError'), previewInitialize && previewInitialize.error);\n }\n }).fail((error) => {\n this.reportOpening(false);\n this.removeEmptyPages();\n });\n }).resolve();\n return initializeDataPromise;\n }\n _deserializeExportOptions(exportOptionsString, isMerged) {\n var jsonModel = exportOptionsString && JSON.parse(exportOptionsString);\n return (isMerged ? new ExportOptionsMergedPreview(this.signatures) : new ExportOptionsPreview(this.signatures)).deserialize(jsonModel);\n }\n deactivate() {\n this._initialize();\n this._cleanTabInfo();\n this.closeReport();\n this._currentDocumentId(null);\n this._currentReportId(null);\n this._currentReportUrl(null);\n this.originalParametersInfo(null);\n }\n startBuild() {\n this._initialize();\n return this._startBuildRequest();\n }\n customDocumentOperation(customData, hideMessageFromUser) {\n var documentId = this._currentDocumentId();\n if (this.documentBuilding() || !documentId)\n return;\n var serializedExportOptions = this.exportOptionsModel() ? JSON.stringify(new ModelSerializer().serialize(this.exportOptionsModel())) : null;\n var editingFields = () => this._editingFields && this._editingFields().map(item => item.editValue());\n var deferred = $.Deferred();\n setTimeout(() => this.requestWrapper.customDocumentOperation(documentId, serializedExportOptions, editingFields(), customData, hideMessageFromUser)\n .done((response) => {\n try {\n if (response && response.message) {\n if (response.succeeded) {\n MessageHandler().processMessage(response.message, !hideMessageFromUser, this._getToastMessageContainer());\n }\n else {\n MessageHandler().processError(response.message, !hideMessageFromUser, undefined, this._getToastMessageContainer());\n }\n }\n }\n finally {\n deferred.resolve(response);\n }\n })\n .fail(error => {\n var response = { message: getLocalization('The requested document operation cannot be performed.', 'ASPxReportsStringId.WebDocumentViewer_CustomDocumentOperationsDenied_Error') };\n deferred.reject(response);\n }));\n return deferred.promise();\n }\n _initializeStartBuild(documentIdPromise) {\n if (this.documentBuilding() || this._startBuildOperationId) {\n return false;\n }\n this._startBuildOperationId = generateGuid();\n this._currentDocumentId(null);\n this.progressBar.startProgress(this._startBuildOperationId, () => { this.stopBuild(); }, documentIdPromise)\n .always(() => { this.documentBuilding(false); });\n this.documentBuilding(true);\n return true;\n }\n _startBuildRequest() {\n var documentIdDeferred = $.Deferred();\n if (!this._initializeStartBuild(documentIdDeferred)) {\n return null;\n }\n var deferred = $.Deferred();\n var currentReportId = this._currentReportId();\n var startBuildOperationId = this._startBuildOperationId;\n var shouldIgnoreError = () => this._closeReportRequests[currentReportId];\n this.requestWrapper.startBuildRequest(shouldIgnoreError)\n .done((response) => {\n this.previewHandlersHelper && this.previewHandlersHelper.doneStartBuildHandler(deferred, response, startBuildOperationId, documentIdDeferred);\n })\n .fail(() => {\n this.previewHandlersHelper && this.previewHandlersHelper.errorStartBuildHandler(deferred, startBuildOperationId);\n documentIdDeferred.reject();\n });\n deferred.always(() => this._startBuildOperationId = '');\n return deferred.promise();\n }\n getBuildStatus(documentId, isFirstRequest, shouldRequestFirstPage) {\n var deferred = $.Deferred();\n this._deferreds.push(deferred);\n var sessionDeferred = $.Deferred();\n this._getBuildStatusDeferreds.push(sessionDeferred);\n this._timeouts.push(setTimeout(() => {\n var ignorePredicate = this._getIgnorePredicate(documentId);\n var firstPage = this.pages()[0];\n var firstPageRequest = ((firstPage === null || firstPage === void 0 ? void 0 : firstPage.shouldSendRequest) || !shouldRequestFirstPage) ? undefined : firstPage === null || firstPage === void 0 ? void 0 : firstPage._getCurrentPageRequest(documentId);\n this.requestWrapper.getBuildStatusRequest(documentId, ignorePredicate, isFirstRequest, firstPageRequest)\n .done((response) => {\n sessionDeferred.resolve(response);\n })\n .fail((error) => {\n sessionDeferred.reject(error);\n });\n sessionDeferred.done((response) => {\n this._onGetBuildStatus && this._onGetBuildStatus(response);\n this.previewHandlersHelper && this.previewHandlersHelper.doneGetBuildStatusHandler(deferred, documentId, response, ignorePredicate);\n }).fail(() => {\n this.previewHandlersHelper && this.previewHandlersHelper.errorGetBuildStatusHandler(deferred);\n });\n }, 250));\n return deferred.promise();\n }\n getDoGetBuildStatusFunc(shouldRequestFirstPage = false) {\n var preview = this;\n var isFirstRequest = true;\n this.previewHandlersHelper.processPages(1, this._getIgnorePredicate(this.documentId));\n this.pages()[0].shouldSendRequest = false;\n var doGetBuildStatus = (documentId) => {\n var promise = preview.getBuildStatus(documentId, isFirstRequest, shouldRequestFirstPage);\n promise.done((result) => {\n isFirstRequest = false;\n if (documentId !== preview._currentDocumentId())\n return;\n if (result && result.requestAgain && !preview._closeDocumentRequests[documentId]) {\n var doStatusRequest = () => {\n if (!preview._closeDocumentRequests[documentId]) {\n doGetBuildStatus(documentId);\n }\n };\n PollingDelay() ? this._timeouts.push(setTimeout(doStatusRequest, PollingDelay())) : doStatusRequest();\n }\n else {\n try {\n if (result.error || !result.requestAgain && !result.pageCount) {\n preview.pageLoading(false);\n preview.removeEmptyPages(!result.pageCount);\n if (!preview.pages().length)\n preview.pageIndex(-1);\n return;\n }\n if (!result.completed) {\n return;\n }\n else if (result.pageCount < preview.pages().length) {\n preview.pageIndex(Math.min(result.pageCount - 1, preview.pageIndex()));\n preview.pages.splice(result.pageCount, preview.pages().length);\n }\n preview.getDocumentData(documentId);\n }\n finally {\n preview.progressBar.complete(documentId);\n this._timeouts.push(setTimeout(preview._raiseOnSizeChanged, 1000));\n }\n }\n });\n };\n return doGetBuildStatus;\n }\n getDocumentData(documentId) {\n var ignoreErrorPredicate = this._getIgnorePredicate(documentId);\n var documentDataDeferred = $.Deferred();\n this._deferreds.push(documentDataDeferred);\n documentDataDeferred.done((response) => {\n var _a, _b;\n if (!response) {\n return;\n }\n this.signatures((response.signatures || []).map(x => {\n var fields = [];\n var image = null;\n if (x.issuer)\n fields.push({\n label: getLocalization('Issuer:', 'PreviewStringId.ExportOption_PdfSignature_Issuer'),\n value: x.issuer\n });\n if (x.contactInfo)\n fields.push({\n label: getLocalization('Contact Info', 'PreviewStringId.ExportOption_PdfSignatureOptions_ContactInfo') + ':',\n value: x.contactInfo\n });\n if (x.location)\n fields.push({\n label: getLocalization('Location', 'PreviewStringId.ExportOption_PdfSignatureOptions_Location') + ':',\n value: x.location\n });\n if (x.reason)\n fields.push({\n label: getLocalization('Reason', 'PreviewStringId.ExportOption_PdfSignatureOptions_Reason') + ':',\n value: x.reason\n });\n if (x.validFrom && x.validTo)\n fields.push({\n value: formatUnicorn(getLocalization('Valid from {0:d} to {1:d}', 'PreviewStringId.ExportOption_PdfSignature_ValidRange'), x.validFrom, x.validTo)\n });\n if (x.image)\n image = ImageSource.parse(x.image).getDataUrl();\n return {\n displayName: fields.map(x => x.value).join('; '),\n image,\n key: x.key,\n fields\n };\n }));\n this.previewHandlersHelper.processPages(response.pageCount, () => false);\n this._onGetDocumentDetails && this._onGetDocumentDetails(response);\n this.exportHandler.reportDisplayName(response.displayName);\n this._drillDownState = response.drillDownKeys || [];\n this._sortingState = response.sortingState || [];\n var isMerged = this.reportId\n ? response.canPerformContinuousExport === false\n : (_b = !((_a = this._initialDocumentData) === null || _a === void 0 ? void 0 : _a.canPerformContinuousExport)) !== null && _b !== void 0 ? _b : true;\n var deserializedExportOptions = this._deserializeExportOptions(response.exportOptions, isMerged);\n var customizeExportOptionsArgs = { exportOptions: deserializedExportOptions, panelVisible: true };\n this.customizeExportOptions && this.customizeExportOptions(customizeExportOptionsArgs);\n this.exportOptionsTabVisible(customizeExportOptionsArgs.panelVisible);\n this.exportOptionsModel(deserializedExportOptions);\n this.documentMap(response.documentMap);\n this._editingValuesSubscriptions.forEach(item => item.dispose());\n this._editingValuesSubscriptions = [];\n this._editingFields((response.editingFields || []).map((item, index) => {\n var field = this.createEditingField(item, index);\n if (this.editingFieldChanged) {\n field.editingFieldChanged = this.editingFieldChanged;\n }\n this._editingValuesSubscriptions.push(field.editValue);\n return field;\n }));\n });\n this.requestWrapper.getDocumentData(documentId, ignoreErrorPredicate)\n .done(response => {\n documentDataDeferred.resolve(response);\n if (this.documentReady && documentId) {\n this._timeouts.push(setTimeout(() => {\n const pageCount = this.pages().length;\n this.documentReady(documentId, this._currentReportId(), pageCount);\n }));\n }\n })\n .fail(error => {\n documentDataDeferred.reject(error);\n });\n }\n exportDocumentTo(format, inlineResult) {\n if (!this._currentDocumentId())\n return;\n this.pageLoader.reset();\n var signature = null;\n if (format === 'pdf') {\n signature = this.exportOptionsModel().pdf.signature();\n }\n var serializedExportOptions = this.exportOptionsModel() ? JSON.stringify(new ModelSerializer().serialize(this.exportOptionsModel())) : null;\n var args = () => encodeURIComponent(JSON.stringify({\n documentId: this._currentDocumentId(),\n exportOptions: serializedExportOptions,\n format: format,\n signature,\n inlineResult: inlineResult,\n editingFieldValues: this._editingFields && this._editingFields().map(item => {\n var editValue = item.editValue();\n if (typeof editValue === 'string')\n return transformNewLineCharacters(editValue);\n return editValue;\n })\n }));\n this.exportHandler.export(args, HandlerUri(), inlineResult);\n }\n printDocument(pageIndex) {\n if (!this._currentDocumentId())\n return;\n this.pageLoader.reset();\n const signature = this.exportOptionsModel().pdf.signature();\n const previousShowPrintDialogOnOpen = this.exportOptionsModel().pdf['showPrintDialogOnOpen']();\n const previousPdfACompatibility = this.exportOptionsModel().pdf['pdfACompatibility']();\n const previousPageRange = this.exportOptionsModel().pdf['pageRange']();\n this.exportOptionsModel().pdf['showPrintDialogOnOpen'](true);\n this.exportOptionsModel().pdf['pdfACompatibility']('None');\n pageIndex = parseInt(pageIndex);\n if ((!!pageIndex && pageIndex > 0 || pageIndex === 0) && (this.pages().length > pageIndex)) {\n this.exportOptionsModel().pdf['pageRange'](pageIndex + 1);\n }\n const serializedExportOptions = JSON.stringify(new ModelSerializer().serialize(this.exportOptionsModel()));\n const args = () => encodeURIComponent(JSON.stringify({\n documentId: this._currentDocumentId(),\n exportOptions: serializedExportOptions,\n format: 'printpdf',\n signature,\n inlineResult: true,\n editingFieldValues: this._editingFields && this._editingFields().map(item => item.editValue())\n }));\n this.exportHandler.export(args, HandlerUri(), true, true);\n this.exportOptionsModel().pdf['showPrintDialogOnOpen'](previousShowPrintDialogOnOpen);\n this.exportOptionsModel().pdf['pdfACompatibility'](previousPdfACompatibility);\n this.exportOptionsModel().pdf['pageRange'](previousPageRange);\n }\n stopBuild(documentId) {\n var id = documentId || this._currentDocumentId();\n if (!id) {\n this._startBuildOperationId && (this._stopBuildRequests[this._startBuildOperationId] = true);\n return;\n }\n this._stopBuildRequests[id] = true;\n this.requestWrapper.stopBuild(id);\n }\n closeDocument(documentId) {\n var _documentId = documentId || this._currentDocumentId();\n if (!_documentId) {\n this._startBuildOperationId && (this._closeDocumentRequests[this._startBuildOperationId] = true);\n return;\n }\n this._closeDocumentRequests[_documentId] = true;\n this.progressBar.complete(documentId);\n this.requestWrapper.sendCloseRequest(_documentId);\n }\n closeReport() {\n this._openReportOperationDeferred && this._openReportOperationDeferred.reject();\n var currentReportId = this._currentReportId();\n if (!currentReportId) {\n return;\n }\n this._closeReportRequests[currentReportId] = true;\n this.requestWrapper.sendCloseRequest(null, currentReportId);\n }\n setPageVisibility(page, visible) {\n page.isClientVisible(visible);\n if (visible) {\n this.pageLoader.reset();\n var offset = PreloadedPagesOffset();\n if (offset === 0)\n return;\n var startIndex = page.pageIndex - 2;\n startIndex = startIndex < 0 ? 0 : startIndex;\n var endIndex = page.pageIndex + offset;\n this.pageLoader.prefetchPages(startIndex, endIndex, page.pageIndex);\n }\n }\n updatePage(page, zoom = this._zoom()) {\n page._setPageImgSrc(this._currentDocumentId(), this._unifier(), zoom, this.documentBuilding());\n }\n goToPage(pageIndex, forcePageChanging, throttle) {\n var _a;\n if (!forcePageChanging && this.pageIndex.peek() === pageIndex || this.pages.peek().length === 0 || pageIndex < 0 || pageIndex >= this.pages.peek().length) {\n return;\n }\n if (this._goToPageTimer !== undefined) {\n clearTimeout(this._goToPageTimer);\n }\n var updateActivePage = (activePageIndex) => {\n this.pages.peek().forEach((page) => {\n var visible = page.pageIndex === activePageIndex;\n page.active(visible);\n this.setPageVisibility(page, visible);\n });\n this._goToPageTimer = undefined;\n };\n if (throttle && !ko.unwrap((_a = this.pages()[pageIndex]) === null || _a === void 0 ? void 0 : _a.imageSrc))\n this._timeouts.push(this._goToPageTimer = setTimeout(() => updateActivePage(this.pageIndex()), throttle));\n else\n updateActivePage(pageIndex);\n this.pageIndex(pageIndex);\n }\n createEditingField(item, index) {\n return new EditingField(item, index, this.requestWrapper);\n }\n currentPageAriaLabelImgAlt(index) {\n return formatUnicorn(getLocalization('Report Preview page {0} of {1}', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPreviewPage'), index + 1, this.pages().length);\n }\n _getErrorMessage(jqXHR) {\n var serverError = getErrorMessage(jqXHR);\n if (!serverError)\n return jqXHR && jqXHR.responseJSON && jqXHR.responseJSON.result && jqXHR.responseJSON.result.faultMessage ?\n jqXHR.responseJSON.result.faultMessage :\n serverError;\n return serverError;\n }\n _processError(error, jqXHR, showForUser = true, serverError) {\n var prefix = error + ': ';\n serverError = serverError || this._getErrorMessage(jqXHR);\n serverError && (error = prefix + serverError);\n MessageHandler().processError(error, showForUser, serverError && prefix, this._getToastMessageContainer());\n }\n _getToastMessageContainer() {\n var _a;\n return (_a = this.element) === null || _a === void 0 ? void 0 : _a.getElementsByClassName('dx-designer-viewport')[0];\n }\n get reportId() {\n return this._currentReportId();\n }\n get reportUrl() {\n return this._currentReportUrl();\n }\n get documentId() {\n return this._currentDocumentId();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\binding\\jsReportViewer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { updateLocalization } from '@devexpress/analytics-core/analytics-utils';\nexport class JSReportViewer {\n constructor(_previewModel) {\n this._previewModel = _previewModel;\n }\n get previewModel() {\n return this._previewModel();\n }\n set previewModel(newVal) {\n this._previewModel(newVal);\n }\n previewExists() {\n return this.previewModel && this.previewModel.reportPreview;\n }\n GetReportPreview() {\n return this.previewExists();\n }\n GetPreviewModel() {\n return this.previewModel;\n }\n GetParametersModel() {\n return this.previewModel && this.previewModel.GetParametersModel();\n }\n PerformCustomDocumentOperation(customData, hideMessageFromUser) {\n return this.previewExists() && this.previewModel.PerformCustomDocumentOperation(customData, hideMessageFromUser);\n }\n OpenReport(reportName) {\n return this.previewExists() && this.previewModel.OpenReport(reportName);\n }\n Print(pageIndex) {\n return this.previewExists() && this.previewModel.Print(pageIndex);\n }\n ExportTo(format, inlineResult) {\n this.previewExists() && this.previewModel.ExportTo(format, inlineResult);\n }\n GetCurrentPageIndex() {\n return this.previewExists() && this.previewModel.GetCurrentPageIndex();\n }\n GoToPage(pageIndex) {\n this.previewExists() && this.previewModel.GoToPage(pageIndex);\n }\n Close() {\n this.previewExists() && this.previewModel.Close();\n }\n ResetParameters() {\n this.previewModel && this.previewModel.ResetParameters();\n }\n StartBuild() {\n return this.previewModel && this.previewModel.StartBuild();\n }\n UpdateLocalization(localization) {\n updateLocalization(localization);\n }\n AdjustControlCore() {\n this.previewModel && this.previewModel.updateSurfaceSize && this.previewModel.updateSurfaceSize();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapItemsProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nexport class DocumentMapItemsProvider {\n constructor(bookmark) {\n this.bookmarkDict = {};\n this.getItems = (pathRequest) => {\n var result = $.Deferred();\n if (bookmark) {\n if (pathRequest.fullPath) {\n var nodes = this._selectNode(bookmark, pathRequest.fullPath);\n result.resolve(nodes);\n }\n else {\n var root = this._getRootNode(bookmark);\n result.resolve(root);\n }\n }\n else {\n result.reject();\n }\n return result.promise();\n };\n }\n _selectNode(root, path) {\n if (!!this.bookmarkDict[path]) {\n return this.bookmarkDict[path];\n }\n var pathComponents = path.split('.'), currentNode = root;\n if (pathComponents[0] !== '0') {\n return null;\n }\n for (var i = 1, index = pathComponents[i]; i < pathComponents.length; i++, index = pathComponents[i]) {\n if (currentNode && currentNode.nodes && currentNode.nodes[index]) {\n currentNode = currentNode.nodes[index];\n }\n else {\n return null;\n }\n }\n var result = DocumentMapItemsProvider.fillNode(currentNode);\n if (result && result.length !== 0) {\n this.bookmarkDict[path] = result;\n }\n return result;\n }\n static fillNode(bookmark) {\n if (!bookmark || !bookmark.nodes || bookmark.nodes.length <= 0) {\n return null;\n }\n return bookmark.nodes.map((node, i) => { return { name: i + '', displayName: node.text, isList: node.nodes && node.nodes.length > 0, bookmark: node, specifics: 'node' }; });\n }\n _getRootNode(bookmark) {\n return [{ name: '0', displayName: bookmark.text, isList: bookmark.nodes && bookmark.nodes.length > 0, bookmark: bookmark, specifics: 'node' }];\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapTreeListController.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nexport class DocumentMapTreeListController {\n constructor() {\n this.selectedItem = ko.observable(null);\n this.clickHandler = (item) => void 0;\n }\n itemsFilter(item) {\n return true;\n }\n hasItems(item) {\n return item.isList === true;\n }\n canSelect(value) {\n return true;\n }\n select(value) {\n if (this.canSelect(value) && value !== this.selectedItem.peek()) {\n this.selectedItem.peek() && this.selectedItem.peek().isSelected(false);\n this.selectedItem(value);\n value.isSelected(true);\n }\n }\n showIconsForChildItems() {\n return false;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\documentMap\\_documentMapModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { TreeListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, TabInfo } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { DocumentMapItemsProvider } from './_documentMapItemsProvider';\nimport { DocumentMapTreeListController } from './_documentMapTreeListController';\nexport class DocumentMapModel extends Disposable {\n constructor(reportPreview) {\n super();\n this._selectedPath = ko.observable('0');\n this._setSelectedPathByNavigationNode = (nodes, brickNavigation, path = '0') => {\n nodes.forEach((item, index) => {\n if (item.indexes === brickNavigation.indexes && item.pageIndex === brickNavigation.pageIndex) {\n this._selectedPath(path + '.' + index.toString());\n }\n else if (item.nodes) {\n this._selectedPath(this._setSelectedPathByNavigationNode(item.nodes, brickNavigation, path + '.' + index.toString()));\n }\n });\n return this._selectedPath();\n };\n var treeListController = new DocumentMapTreeListController();\n this.isEmpty = ko.pureComputed(() => {\n return !(reportPreview.documentMap() && reportPreview.documentMap().nodes && (reportPreview.documentMap().nodes.length !== 0));\n });\n treeListController.clickHandler = (item) => {\n var bookmark = item.data.bookmark;\n if (bookmark) {\n var pageIndex = bookmark.pageIndex < 0 ? 0 : bookmark.pageIndex;\n reportPreview.pages.peek()[pageIndex].selectBrick(bookmark.indexes);\n }\n };\n reportPreview.brickClickDocumentMapHandler = (brickNavigation) => {\n if (reportPreview.documentMap && reportPreview.documentMap())\n this._setSelectedPathByNavigationNode(reportPreview.documentMap().nodes, brickNavigation);\n };\n this._disposables.push({ dispose: () => delete reportPreview.brickClickDocumentMapHandler });\n var documentMapTabVisible = ko.pureComputed(() => !this.isEmpty());\n this.tabInfo = new TabInfo({\n text: 'Document Map',\n template: 'dxrd-preview-document-map',\n model: this,\n keyboardHelper: new TreeListKeyboardHelper(),\n localizationId: 'DevExpress.XtraPrinting.PrintingSystemCommand.DocumentMap',\n imageClassName: 'reportexplorer',\n imageTemplateName: 'dxrd-svg-tabs-reportexplorer',\n visible: documentMapTabVisible\n });\n this.documentMapOptions = ko.pureComputed(() => {\n return {\n itemsProvider: new DocumentMapItemsProvider(reportPreview.documentMap()),\n expandRootItems: true,\n selectedPath: this._selectedPath,\n treeListController: treeListController,\n onItemsVisibilityChanged: () => { var _a, _b; return (_b = (_a = this.tabInfo) === null || _a === void 0 ? void 0 : _a.keyboardHelper) === null || _b === void 0 ? void 0 : _b.initialize(); }\n };\n });\n this._disposables.push(this.tabInfo, documentMapTabVisible, this.documentMapOptions, this.isEmpty);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\exportOptions\\exportOptionsModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccordionKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, TabInfo, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ActionId, ExportFormatID } from '../constants';\nexport class ExportOptionsModel extends Disposable {\n constructor(reportPreview, enableKeyboardSupport) {\n super();\n this.actions = [];\n this._reportPreview = reportPreview;\n var tabPanelVisible = ko.pureComputed(() => !!reportPreview.exportOptionsModel() && (!reportPreview.exportOptionsTabVisible || reportPreview.exportOptionsTabVisible()));\n this.tabInfo = new TabInfo({\n text: 'Export Options',\n template: 'dxrd-preview-export-options',\n model: reportPreview.exportOptionsModel,\n keyboardHelper: enableKeyboardSupport ? new AccordionKeyboardHelper() : undefined,\n localizationId: 'DevExpress.XtraPrinting.ExportOptions',\n imageClassName: 'properties',\n imageTemplateName: 'dxrd-svg-tabs-properties',\n visible: tabPanelVisible\n });\n var actionExportTo = {\n id: ActionId.ExportTo,\n text: 'Export To',\n textId: 'ASPxReportsStringId.WebDocumentViewer_ExportToText',\n disabled: reportPreview.exportDisabled,\n visible: true,\n clickAction: (model) => {\n if (reportPreview.exportDisabled())\n return;\n this._exportDocumentByFormat(model.itemData.format);\n },\n templateName: 'dxrd-preview-export-to',\n imageTemplateName: 'dxrd-svg-preview-export-export-to',\n eventHandlers: new ExportOptionsEventHandlers()\n };\n var exportItems = ko.pureComputed(() => {\n var result = this._getExportFormatItems();\n return [{\n text: 'Export To',\n textId: 'ASPxReportsStringId.WebDocumentViewer_ExportToText',\n imageClassName: 'dxrd-image-export-to',\n imageTemplateName: actionExportTo.imageTemplateName,\n items: result\n }];\n });\n actionExportTo['items'] = exportItems;\n this.actions.push(actionExportTo);\n this._disposables.push(tabPanelVisible, this.tabInfo, exportItems);\n }\n _getExportFormatItems() {\n var result = [];\n var exportOptionsModel = this._reportPreview.exportOptionsModel();\n if (exportOptionsModel) {\n exportOptionsModel.pdf && result.push(ExportFormatID.PDF);\n exportOptionsModel.xls && result.push(ExportFormatID.XLS);\n exportOptionsModel.xlsx && result.push(ExportFormatID.XLSX);\n exportOptionsModel.rtf && result.push(ExportFormatID.RTF);\n exportOptionsModel.docx && result.push(ExportFormatID.DOCX);\n exportOptionsModel.mht && result.push(ExportFormatID.MHT);\n exportOptionsModel.html && result.push(ExportFormatID.HTML);\n exportOptionsModel.textExportOptions && result.push(ExportFormatID.Text);\n exportOptionsModel.csv && result.push(ExportFormatID.CSV);\n exportOptionsModel.image && result.push(ExportFormatID.Image);\n }\n return result;\n }\n _exportDocumentByFormat(format) {\n format && this._reportPreview.exportDocumentTo(format);\n }\n getActions(context) {\n return this.actions;\n }\n dispose() {\n super.dispose();\n this.disposeArray(this.actions);\n this.removeProperties();\n }\n}\nexport class ExportOptionsEventHandlers {\n onSubmenuShowing(popupContainer, element) {\n return (e) => {\n e.submenu._overlay.option('container', popupContainer);\n e.submenu._overlay.option('focusStateEnabled', false);\n e.submenu._overlay.option('position', { my: 'left top', at: 'left bottom', of: element, collision: 'none', boundary: popupContainer });\n this._menuButton = e.component.option('focusedElement');\n e.submenu._attachHoverEvents();\n };\n }\n onSubmenuShown(e) {\n var submenu = e.submenu;\n submenu.registerKeyHandler('escape', (e) => submenu.hide());\n submenu.registerKeyHandler('leftArrow', (e) => submenu.hide());\n submenu.registerKeyHandler('rightArrow', (e) => submenu.hide());\n }\n onSubmenuHiding(e) {\n if (e.model.eventHandlers._menuButton) {\n e.component.option('focusedElement', e.model.eventHandlers._menuButton);\n e.component.focus();\n }\n }\n onItemRendered(e) {\n var _a, _b;\n $.fn.constructor(e.itemElement).attr('aria-label', getLocalization((_a = e.itemData) === null || _a === void 0 ? void 0 : _a.text, (_b = e.itemData) === null || _b === void 0 ? void 0 : _b.textId));\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePage.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { PreviewPage } from '../../internal/_page';\nexport class MobilePreviewPage extends PreviewPage {\n constructor(preview, pageIndex, processClick, loading) {\n super(preview, pageIndex, processClick, loading);\n this.maxZoom = 1;\n this.selectBrick = (path, ctrlKey) => {\n var currentBrick = this.brick();\n !ctrlKey && this.resetBrickRecusive(currentBrick);\n if (!path) {\n return;\n }\n if (!currentBrick) {\n this['_selectedBrickPath'] = path;\n return;\n }\n this.bricks().forEach((brick) => { brick.indexes === path && brick.active(true); });\n };\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\mobilePreview.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ReportPreview } from '../reportPreview';\nimport { ZoomAutoBy } from '../constants';\nimport { MobilePreviewPage } from './internal/_mobilePage';\nimport * as ko from 'knockout';\nexport class MobileReportPreview extends ReportPreview {\n constructor(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl = false, mobileSettings = { readerMode: true, animationEnabled: true }) {\n super(handlerUri, previewRequestWrapper, previewHandlersHelper, callbacks, rtl);\n this.availablePages = ko.observable(null);\n this.visiblePages = ko.computed(() => {\n if (!this.availablePages()) {\n return this.pages();\n }\n else {\n return this.pages().filter((x) => { return this.availablePages().indexOf(x.pageIndex) !== -1; });\n }\n });\n this.topOffset = ko.observable(0);\n this.previewWrapperSize = ko.observable({ width: 0, height: 0 });\n this.searchPanelVisible = ko.observable(false);\n this.actionsVisible = ko.observable(false);\n this.scrollReachedLeft = ko.observable(false);\n this.scrollReachedRight = ko.observable(false);\n this.scrollReachedTop = ko.observable(true);\n this.scrollReachedBottom = ko.observable(true);\n this.zoomUpdating = ko.observable(false);\n this.mobileZoom = ko.computed({\n read: () => {\n var currentZoom = this.zoom();\n return currentZoom > 0 ? currentZoom : this._zoom();\n },\n write: (newVal) => {\n this.zoom(newVal);\n }\n });\n this.readerMode = mobileSettings.readerMode;\n var globalAnimationEnabled = mobileSettings.animationEnabled;\n this.animationSettings = { zoomEnabled: ko.observable(globalAnimationEnabled), swipeEnabled: ko.observable(globalAnimationEnabled) };\n this.canSwitchToDesigner = false;\n this.autoFitBy(ZoomAutoBy.PageWidth);\n this.showMultipagePreview(true);\n this._disposables.push(this.interactionDisabled = ko.pureComputed(() => this.pages().length === 0), this.searchPanelVisible.subscribe((newVal) => {\n if (newVal) {\n this.actionsVisible(false);\n }\n }));\n }\n createPage(pageIndex, processClick, loading) {\n return new MobilePreviewPage(this, pageIndex, processClick, loading);\n }\n createBrickClickProcessor(cyclePageIndex) {\n var _clickHandler = super.createBrickClickProcessor(cyclePageIndex);\n var func = (brick) => {\n if (this.zoomUpdating())\n return;\n if (cyclePageIndex !== this.pageIndex()) {\n this.actionsVisible(false);\n var supscription = this.actionsVisible.subscribe((newVal) => {\n supscription.dispose();\n this.actionsVisible(false);\n });\n }\n _clickHandler(brick);\n };\n return func;\n }\n _hasActiveEditingFields() {\n return this.visiblePages().some(p => {\n var pageEditFields = ko.unwrap(p.editingFields);\n return pageEditFields && pageEditFields.some(x => ko.unwrap(x.active));\n });\n }\n showActions(s) {\n if (s.zoomUpdating() || s.interactionDisabled())\n return;\n var searchVisible = s.searchPanelVisible();\n if (!searchVisible) {\n if (!this._hasActiveEditingFields()) {\n s.actionsVisible(!s.actionsVisible());\n }\n }\n else {\n s.searchPanelVisible(!searchVisible);\n }\n }\n onSlide(e) {\n this.scrollReachedLeft(true);\n this.scrollReachedRight(true);\n if (this.autoFitBy() === ZoomAutoBy.None && e.removedItems && e.removedItems[0].blocks().length === 1 && e.addedItems && e.addedItems[0].blocks().length === 1)\n this.autoFitBy(ZoomAutoBy.PageWidth);\n }\n goToPage(pageIndex, forcePage) {\n super.goToPage(pageIndex, forcePage);\n }\n getScrollViewOptions() {\n var options = {\n onUpdated: (e) => { this.setScrollReached(e); },\n direction: 'both',\n pushBackValue: 0,\n bounceEnabled: false,\n disabled: this.zoomUpdating\n };\n return options;\n }\n setScrollReached(e) {\n this.scrollReachedLeft(e.reachedLeft);\n this.scrollReachedRight(e.reachedRight);\n this.scrollReachedTop(e.reachedTop);\n this.scrollReachedBottom(e.reachedBottom);\n }\n dispose() {\n this.mobileZoom.dispose();\n this.visiblePages.dispose();\n super.dispose();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_searchKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { formatUnicorn, getLocalization, ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nexport class SearchKeyboardHelper extends ListKeyboardHelper {\n constructor(searchModel) {\n super();\n this.liveRegionId = 'dxrd-preview-search-live-region';\n this._disposables.push(searchModel.searchResult.subscribe(result => {\n if (result.length > 0)\n this.liveRegion().changeText(formatUnicorn(getLocalization('{0} results are available', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchResultsAvailable'), result.length));\n else if (!searchModel.loading() && !!searchModel.searchText())\n this.liveRegion().changeText(searchModel.noResultText());\n }));\n this._disposables.push(searchModel.searchText.subscribe(inputValue => {\n if (!!inputValue)\n this.liveRegion().changeText(formatUnicorn(getLocalization('You searched for {0}', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchString'), '\"' + inputValue + '\"'));\n }));\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\search\\_searchResultNavigator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport class SearchResultNavigator extends Disposable {\n constructor(searchModel, reportPreview) {\n super();\n this.currentResult = ko.observable(null);\n var goToMatchedResult = (foundResult) => {\n if (!foundResult) {\n return;\n }\n reportPreview.goToPage && reportPreview.goToPage(foundResult.pageIndex);\n var page = reportPreview.pages.peek()[foundResult.pageIndex];\n page && page.selectBrick(foundResult.indexes);\n };\n this.getFirstMatchFromPage = (pageIndex, up, thisPageOnly) => {\n if (!searchModel.searchResult() || searchModel.searchResult().length === 0) {\n return null;\n }\n var firstMatch;\n var sortOutResult = (index) => {\n searchModel.searchResult().forEach((m) => {\n if (thisPageOnly && m.pageIndex === index) {\n if (!firstMatch || (m.id < firstMatch.id && !up || m.id > firstMatch.id && up)) {\n firstMatch = m;\n }\n }\n else {\n if (m.pageIndex >= index && !up && (!firstMatch || m.id < firstMatch.id) || m.pageIndex <= index && up && (!firstMatch || m.id > firstMatch.id)) {\n firstMatch = m;\n }\n }\n });\n };\n sortOutResult(pageIndex);\n !firstMatch && sortOutResult(up ? reportPreview.pages().length : 0);\n return firstMatch;\n };\n var _setCurrentResult = (highlight, resultId, thisPageOnly) => {\n if (searchModel.searchResult() && searchModel.searchResult().length !== 0) {\n var currentResult = (resultId >= 0 && searchModel.searchResult().length > resultId) ?\n searchModel.searchResult()[resultId] :\n this.getFirstMatchFromPage(reportPreview.pageIndex.peek(), searchModel.searchUp.peek(), thisPageOnly);\n this.currentResult(currentResult);\n highlight && goToMatchedResult(this.currentResult.peek());\n }\n else {\n reportPreview.pages() && reportPreview.pages()[reportPreview.pageIndex()] && reportPreview.pages()[reportPreview.pageIndex()].selectBrick('');\n }\n };\n this.goToResult = (id) => {\n if (id !== 0 && !id) {\n return null;\n }\n _setCurrentResult(true, id);\n };\n this._disposables.push(reportPreview.pageIndex.subscribe((newPageIndex) => {\n if (this.currentResult() && newPageIndex === this.currentResult().pageIndex)\n return;\n this.currentResult(null);\n }));\n this._disposables.push(searchModel.searchResult.subscribe(() => {\n if (!this.currentResult())\n _setCurrentResult(true);\n }));\n this.next = (up) => {\n if (!searchModel.searchResult()) {\n return false;\n }\n if (!this.currentResult()) {\n var prevPageIndex = (reportPreview.pageIndex() === 0 ? reportPreview.pages.length : reportPreview.pageIndex()) - 1;\n var pageIndexToSearchFrom = up ? prevPageIndex : reportPreview.pageIndex();\n var firstResult = this.getFirstMatchFromPage(pageIndexToSearchFrom, up);\n this.currentResult(firstResult);\n if (firstResult) {\n goToMatchedResult(firstResult);\n return true;\n }\n else {\n return false;\n }\n }\n var id, currentId = this.currentResult().id;\n if (up) {\n id = (currentId === 0) ? searchModel.searchResult().length - 1 : (currentId - 1);\n }\n else {\n id = (currentId === searchModel.searchResult().length - 1) ? 0 : (currentId + 1);\n }\n this.currentResult(searchModel.searchResult()[id]);\n goToMatchedResult(this.currentResult());\n return true;\n };\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\search\\_searchViewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { formatUnicorn, guid } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization, TabInfo } from '@devexpress/analytics-core/analytics-utils';\nimport DataSource from 'devextreme/data/data_source';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { SearchKeyboardHelper } from '../accessibility/_searchKeyboardHelper';\nimport { ActionId } from '../constants';\nimport { SearchAvailable } from '../settings';\nimport { SearchResultNavigator } from './_searchResultNavigator';\nimport CustomStore from 'devextreme/data/custom_store';\nexport class SearchViewModel extends Disposable {\n constructor(reportPreview, searchSettings, enableKeyboardSupport) {\n var _a, _b;\n super();\n this._searchIgnoreObs = ko.observable(false);\n this.itemClickAction = (e) => {\n this.goToResult(e.data);\n };\n this.actions = [];\n this.focusRequested = ko.observable(true);\n this.matchWholeWord = ko.observable(false);\n this.matchCase = ko.observable(false);\n this.searchUp = ko.observable(false);\n this.searchText = ko.observable();\n this.searchResult = ko.observable();\n this.loading = ko.observable(false);\n this.searchCompleted = ko.observable(false);\n this._renderedSearchResult = ko.observable([]);\n this.searchResultDataSource = ko.observable(new DataSource([]));\n this.useAsyncSearch = ko.observable(true);\n this.searchRequestDeferred = $.Deferred();\n this.startSearchDeferred = $.Deferred();\n this.fetchLimit = 1000;\n this.pageSize = 20;\n this.searchResultHeaderId = `dxrd-${guid()}`;\n this.resetSearchResult();\n this.useAsyncSearch((_a = searchSettings === null || searchSettings === void 0 ? void 0 : searchSettings.useAsyncSearch) !== null && _a !== void 0 ? _a : true);\n var searchEnabled = (_b = searchSettings === null || searchSettings === void 0 ? void 0 : searchSettings.searchEnabled) !== null && _b !== void 0 ? _b : true;\n if (!searchEnabled && SearchAvailable()) {\n SearchAvailable(false);\n }\n this._resultNavigator = SearchViewModel.createResultNavigator(this, reportPreview);\n this.clean = () => { this.searchText(''); };\n this._disposables.push(reportPreview._currentDocumentId.subscribe((newVal) => {\n this.resetSearchResult();\n }));\n this._disposables.push(reportPreview._currentReportId.subscribe((newVal) => {\n this.resetSearchResult();\n }));\n this.findUp = () => { this.searchUp(true); this.findNext(); };\n this.findDown = () => { this.searchUp(false); this.findNext(); };\n this.goToResult = (result) => { this._resultNavigator.goToResult(result.id); };\n this._disposables.push(this.searchResultCount = ko.computed(() => {\n var _a, _b;\n return this.searchResult ? ((_b = (_a = this.searchResult()) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) : 0;\n }));\n this._disposables.push(this.searchResultPageCount = ko.computed(() => {\n var _a;\n if ((_a = this.searchResult()) === null || _a === void 0 ? void 0 : _a.length) {\n return new Set((this.searchResult().map(result => result.pageIndex))).size;\n }\n return 0;\n }, this.stopSearchDisabled = ko.computed(() => this.loading() && !this.useAsyncSearch())));\n this.newSearch = (text, matchCase, matchWholeWord) => {\n this._searchTimeout && clearTimeout(this._searchTimeout);\n this._searchTimeout = setTimeout(() => {\n this._resultNavigator.currentResult(null);\n var mCase = this.matchCase();\n text = mCase ? this.searchText() : this.searchText().toLocaleLowerCase();\n var cache = this.matchWholeWord()\n ? mCase ? this._cachedWholeWordWithCaseRequests : this._cachedWholeWordRequests\n : mCase ? this._cachedCaseSensitiveRequests : this._cachedRequests;\n if (cache[text]) {\n this.loading(false);\n this.searchResult(cache[text]);\n return;\n }\n this._searchIgnoreObs(true);\n this._searchIgnoreObs = ko.observable(false);\n ((ignore) => {\n if (this.useAsyncSearch())\n this.performSearchAsync(text, reportPreview, ignore);\n else\n this.performSearch(text, reportPreview, cache, ignore);\n })(this._searchIgnoreObs);\n }, 100);\n };\n this.findNext = () => {\n if (this.loading() && !this.useAsyncSearch()) {\n return;\n }\n this._resultNavigator.next(this.searchUp());\n };\n this.stopSearchProcess = () => {\n this.resetDeffereds();\n if (this.searchOperationId && this.searchOperationId.length) {\n reportPreview.requestWrapper.stopSearch(this.searchOperationId, ko.observable(false));\n }\n this.loading(false);\n this.searchCompleted(false);\n };\n this.startSearchProcess = () => {\n this.resetDeffereds();\n this.searchCompleted(false);\n this.searchResult([]);\n this.resetSearchResultDataSource();\n if (this.searchText()) {\n this.loading(true);\n this.newSearch(this.searchText(), this.matchCase(), this.matchWholeWord());\n }\n else {\n reportPreview.pages() && reportPreview.pages()[reportPreview.pageIndex()] && reportPreview.pages()[reportPreview.pageIndex()].selectBrick('');\n }\n };\n this.searchButtonClick = () => {\n if (this.loading()) {\n this.stopSearchProcess();\n }\n else {\n this.startSearchProcess();\n }\n };\n var updateSearch = (timeout) => {\n if (!this.useAsyncSearch()) {\n setTimeout(() => {\n this.startSearchProcess();\n }, timeout);\n return;\n }\n if (this.loading())\n this.stopSearchProcess();\n setTimeout(() => {\n if (!this.loading())\n this.startSearchProcess();\n }, timeout);\n };\n this._disposables.push(this.searchText.subscribe(() => {\n updateSearch(200);\n }));\n this._disposables.push(this.matchCase.subscribe(() => {\n updateSearch(100);\n }));\n this._disposables.push(this.matchWholeWord.subscribe(() => {\n updateSearch(100);\n }));\n var disabled = ko.pureComputed(() => {\n var documentId = reportPreview['_currentDocumentId']();\n var pageIndex = reportPreview.pageIndex();\n return reportPreview.documentBuilding() || !documentId || pageIndex === -1;\n });\n var visible = ko.pureComputed(() => SearchAvailable());\n this._disposables.push(disabled, visible);\n this.actions.push({\n id: ActionId.Search,\n text: getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header'),\n imageClassName: 'dxrd-image-search',\n imageTemplateName: 'dxrd-svg-preview-search',\n disabled: disabled,\n visible: visible,\n hasSeparator: true,\n hotKey: { ctrlKey: false, keyCode: 70 },\n clickAction: () => {\n if (!this.tabInfo.active()) {\n this.tabInfo.active(true);\n }\n else {\n this.tabInfo.active.notifySubscribers(true);\n }\n }\n });\n this.tabInfo = new TabInfo({\n text: 'Search',\n template: 'dxrd-preview-search',\n model: this,\n keyboardHelper: enableKeyboardSupport ? new SearchKeyboardHelper(this) : undefined,\n localizationId: 'ASPxReportsStringId.SearchDialog_Header',\n imageClassName: 'search',\n imageTemplateName: 'dxrd-svg-preview-search',\n visible: ko.pureComputed(() => !disabled() && SearchAvailable())\n });\n this._disposables.push(this.searchResult.subscribe((newVal) => {\n if (newVal) {\n this._renderedSearchResult(newVal.map((item) => { return { data: item }; }));\n if (this.searchResultDataSource().items().length < this.pageSize)\n this.searchResultDataSource().reload();\n }\n }));\n this._disposables.push(this.tabInfo);\n }\n resetSearchResult() {\n this._cachedRequests = {};\n this._cachedWholeWordRequests = {};\n this._cachedCaseSensitiveRequests = {};\n this._cachedWholeWordWithCaseRequests = {};\n this.searchResult([]);\n this.searchText('');\n this.resetSearchResultDataSource();\n }\n findTextRequestDone(result, cache) {\n this.loading(false);\n if (!result) {\n this.searchResult([]);\n return;\n }\n cache = (result.success ? result.matches : []) || [];\n this.searchResult(cache);\n }\n appentSearchResult(result) {\n if (result && result.matches && result.matches.length) {\n this.searchResult([...this.searchResult(), ...result.matches]);\n }\n }\n performSearchAsync(text, reportPreview, ignore = ko.observable(true)) {\n this.searchRequestDeferred.reject();\n var getResult = (searchOperationId, startIndex, fetchLimit, ignore) => {\n this.searchRequestDeferred = $.Deferred();\n reportPreview.requestWrapper.getSearchStatus(searchOperationId, startIndex, fetchLimit, ignore)\n .done(result => this.searchRequestDeferred.resolve(result))\n .fail(fail => this.failRequestHandler(fail, ignore()));\n this.searchRequestDeferred.done(result => {\n if (result.faultMessage) {\n this.loading(false);\n return;\n }\n this.appentSearchResult(result);\n if (result.completed) {\n this.loading(false);\n this.searchCompleted(true);\n return;\n }\n if (result.requestAgain) {\n setTimeout(() => {\n getResult(searchOperationId, this.searchResult().length, fetchLimit, ignore);\n }, 100);\n }\n });\n };\n this.resetDeffereds();\n reportPreview.requestWrapper.startSearch(text, ignore)\n .done(result => this.startSearchDeferred.resolve(result))\n .fail(fail => this.failRequestHandler(fail, ignore()));\n this.startSearchDeferred.done(result => {\n if (result.success) {\n if (result.faultMessage) {\n this.failRequestHandler(result.faultMessage, ignore());\n return;\n }\n if (result.completed) {\n this.appentSearchResult(result);\n this.loading(false);\n this.searchCompleted(true);\n return;\n }\n this.searchOperationId = result.searchOperationId;\n getResult(this.searchOperationId, 0, this.fetchLimit, ignore);\n }\n else {\n this.failRequestHandler(result.faultMessage, ignore());\n }\n });\n }\n performSearch(text, reportPreview, cache, ignore = ko.observable(true)) {\n this.resetDeffereds();\n reportPreview.requestWrapper.findTextRequest(text, ignore)\n .done(result => this.searchRequestDeferred.resolve(result))\n .fail(fail => this.failRequestHandler(fail, ignore()));\n this.searchRequestDeferred.done((result) => {\n if (!ignore())\n this.findTextRequestDone(result, cache[text]);\n this.searchCompleted(true);\n });\n }\n resetSearchResultDataSource() {\n if (this.searchResultDataSource && this.searchResultDataSource()) {\n this.searchResultDataSource().reload();\n this.searchResultDataSource().dispose();\n }\n this.searchResultDataSource(new DataSource({\n store: new CustomStore({\n load: (loadOptions) => {\n var resultData = [];\n if (loadOptions.take) {\n resultData = this._renderedSearchResult().splice(loadOptions.skip, loadOptions.take);\n }\n else\n resultData = this._renderedSearchResult();\n var totalCount = this.fetchLimit > this.searchResult().length ? this.fetchLimit : this.searchResult().length;\n return $.Deferred().resolve(resultData, { totalCount: totalCount });\n }\n }),\n paginate: true,\n pageSize: this.pageSize\n }));\n }\n resetDeffereds() {\n this.startSearchDeferred.reject();\n this.startSearchDeferred = $.Deferred();\n this.searchRequestDeferred.reject();\n this.searchRequestDeferred = $.Deferred();\n }\n failRequestHandler(fail, ignore) {\n if (!ignore) {\n this.searchResult([]);\n this.loading(false);\n }\n }\n dispose() {\n this._searchTimeout && clearTimeout(this._searchTimeout);\n super.dispose();\n }\n onItemRendered(e) {\n this._timeoutItemRendered && clearTimeout(this._timeoutItemRendered);\n this._timeoutItemRendered = setTimeout(() => {\n this.tabInfo.keyboardHelper && this.tabInfo.keyboardHelper.initialize();\n }, 100);\n }\n getActions(context) {\n return this.actions;\n }\n noResultText() {\n return formatUnicorn(getLocalization('No results found for {0}', 'ASPxReportsStringId.WebDocumentViewer_AriaSearchNoResults'), '\"' + this.searchText() + '\"');\n }\n get disabled() { return this.loading(); }\n}\nSearchViewModel.createResultNavigator = (seacrhModel, reportPreview) => {\n return new SearchResultNavigator(seacrhModel, reportPreview);\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobileSearch.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SearchViewModel } from '../../search/_searchViewModel';\nimport { SearchAvailable } from '../../settings';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class MobileSearchViewModel extends SearchViewModel {\n constructor(reportPreview, gallery) {\n super(reportPreview);\n this.height = ko.observable(0);\n this['_resultNavigator']['_disposables'].forEach((x) => { x.dispose(); });\n var _galleryCurrentItemBlocksSubscription;\n var currentBlocksSubscribe = (selectedIndex) => {\n this._killSubscription(_galleryCurrentItemBlocksSubscription);\n _galleryCurrentItemBlocksSubscription = gallery.items()[selectedIndex].blocks.subscribe((newBlocks) => this.updatePagesInBlocks(newBlocks));\n this.updatePagesInBlocks(gallery.items()[selectedIndex].blocks());\n };\n var _gallerySelectedIndexSubscription;\n var currentIndexSubscribe = () => {\n this._killSubscription(_gallerySelectedIndexSubscription);\n _gallerySelectedIndexSubscription = gallery.selectedIndex.subscribe((newSelectedIndex) => currentBlocksSubscribe(newSelectedIndex));\n currentBlocksSubscribe(gallery.selectedIndex());\n };\n this._disposables.push(gallery.items.subscribe((newItems) => currentIndexSubscribe()));\n currentIndexSubscribe();\n this._disposables.push(this.searchResult.subscribe((newResult) => {\n if (!newResult || newResult.length === 0) {\n reportPreview.availablePages(null);\n reportPreview.pages().forEach(page => page.resetBrickRecusive(page.brick()));\n }\n else {\n reportPreview.availablePages(newResult.map(x => x.pageIndex));\n }\n var blocks = gallery.items()[gallery.selectedIndex()].blocks();\n blocks.forEach(block => {\n block.page && block.page.resetBrickRecusive(block.page.brick());\n this._updateBricks(block.page, this.searchResult());\n });\n }));\n this.searchPanelVisible = reportPreview.searchPanelVisible;\n this.editorVisible = ko.observable(false);\n this._disposables.push(this.searchPanelVisible.subscribe((newVal) => {\n if (!newVal || !SearchAvailable()) {\n this.stopSearching();\n }\n else {\n this.height(MobileSearchViewModel.maxHeight);\n }\n }));\n this.enabled = SearchAvailable;\n }\n focusEditor(event) {\n if (this.searchPanelVisible()) {\n this.editorVisible(true);\n var previewSearch = $.fn.constructor('.dxrdp-search-editor');\n var searchEditor = dxTextBox['getInstance'](previewSearch.get(0));\n searchEditor.focus();\n setTimeout(() => {\n event.currentTarget.blur();\n searchEditor.focus();\n }, 1);\n }\n }\n _killSubscription(subscription) {\n var index = this._disposables.indexOf(subscription);\n if (index == -1)\n return;\n subscription && subscription.dispose();\n this._disposables.splice(index, 1);\n }\n _updateBricks(page, searchResult) {\n if (page.brick() && searchResult && searchResult.length > 0) {\n var results = searchResult.filter((x) => { return x.pageIndex === page.pageIndex; });\n for (var i = 0; i < results.length; i++) {\n page.selectBrick(results[i].indexes, true);\n }\n }\n else {\n var subscription = page.brick.subscribe((newVal) => {\n subscription.dispose();\n this._updateBricks(page, this.searchResult());\n });\n }\n }\n updatePagesInBlocks(blocks) {\n blocks.forEach(block => {\n if (block.page && this.searchResult() && this.searchResult().length > 0) {\n this._updateBricks(block.page, this.searchResult());\n }\n });\n }\n stopSearching() {\n this.height(0);\n this.editorVisible(false);\n this.searchResult(null);\n }\n startSearch() {\n if (this.searchResult() === null)\n this.findNext();\n }\n}\nMobileSearchViewModel.maxHeight = 80;\nexport class SearchBarModel extends Disposable {\n constructor(viewModel, element, $searchText) {\n super();\n this.viewModel = viewModel;\n this._disposables.push(viewModel.height.subscribe((newValue) => {\n if (!newValue) {\n element.style.display = 'none';\n }\n else {\n element.style.display = 'block';\n }\n $searchText.css({\n 'opacity': Math.min((newValue / MobileSearchViewModel.maxHeight), 1)\n });\n }));\n }\n dispose() {\n super.dispose();\n this.viewModel.stopSearching();\n }\n}\nko.bindingHandlers['dxrdSearchBar'] = {\n init: function (element, valueAccessor) {\n var viewModel = ko.unwrap(valueAccessor());\n var $element = $.fn.constructor(element);\n element.style.display = 'none';\n var $searchText = $element.find('.dxrdp-taptosearch-text');\n var searchBarModel = new SearchBarModel(viewModel, element, $searchText);\n addDisposeCallback(element, function () {\n searchBarModel.dispose();\n });\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\gallery\\_galleryModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getCurrentResolution } from '../../../internal/_utils';\nimport { previewDefaultResolution } from '../../../settings';\nimport { ZoomAutoBy } from '../../../constants';\nimport * as ko from 'knockout';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class GalleryModel extends Disposable {\n constructor(preview, previewWrapperSize) {\n super();\n this.preview = preview;\n this.previewWrapperSize = previewWrapperSize;\n this._spacing = 1;\n this._animationTimeout = null;\n this.repaint = ko.observable({});\n this.repaintTimeout = ko.observable();\n this.horizontal = ko.observable(1);\n this.vertical = ko.observable(1);\n this.pageCount = 0;\n this.isAnimated = ko.observable(false);\n this.items = ko.observableArray([{ blocks: ko.observableArray([]) }, { blocks: ko.observableArray([]) }, { blocks: ko.observableArray([]) }]);\n this.currentBlockText = ko.observable('');\n this.selectedIndexReal = ko.observable(0);\n this.selectedIndex = ko.observable(0);\n var oldIndex = this.selectedIndex();\n this._disposables.push(this.contentSize = ko.pureComputed(() => {\n var blocks = this.items()[this.selectedIndex()].blocks();\n var width, height;\n if (blocks.length === 1) {\n var block = blocks[0];\n var position = block.position();\n width = Math.max(position.width, block.page.width());\n height = Math.max(position.height, block.page.height());\n }\n return { width: width ? width + 'px' : 'auto', height: height ? height + 'px' : 'auto' };\n }));\n this.animationEnabled = preview.animationSettings.swipeEnabled;\n var _calcHorizontalVertical = () => {\n var _zoom = preview._zoom();\n var pageHeight = Math.ceil(preview._pageHeight() * getCurrentResolution(_zoom) / previewDefaultResolution());\n var pageWidth = Math.ceil(preview._pageWidth() * getCurrentResolution(_zoom) / previewDefaultResolution());\n var _containerSize = previewWrapperSize();\n var horizontal = (preview.autoFitBy() != ZoomAutoBy.PageWidth && (Math.floor(_containerSize.width / (pageWidth + 2 * this._spacing)))) || 1;\n var vertical = Math.floor(_containerSize.height / (pageHeight + 2 * this._spacing)) || 1;\n this.horizontal(horizontal);\n this.vertical(vertical);\n };\n var updateGalleryContent = () => {\n _calcHorizontalVertical();\n this.pageCount = this.horizontal() * this.vertical();\n this.updateContent(preview, this.pageCount);\n };\n this._disposables.push(previewWrapperSize.subscribe(() => {\n this.items().forEach(item => item.blocks().forEach(block => block.repaint = true));\n updateGalleryContent();\n var currentGalleryItem = this.items()[this.selectedIndex()];\n this.updateBlocks(currentGalleryItem, this.pageCount, preview, this.selectedIndexReal(), preview.animationSettings.zoomEnabled());\n this.repaint.valueHasMutated();\n }));\n this._disposables.push(preview.visiblePages.subscribe(() => {\n for (var i = 0; i < this.items().length; i++) {\n this.items()[i].blocks([]);\n this.items()[i].realIndex = -1;\n }\n updateGalleryContent();\n }));\n this._disposables.push(preview.pageIndex.subscribe(updateGalleryContent));\n this._disposables.push(preview.zoomUpdating.subscribe((newVal) => {\n if (newVal)\n return;\n clearTimeout(this.repaintTimeout());\n this.repaintTimeout(setTimeout(() => this.repaint.valueHasMutated(), 410));\n }));\n this._disposables.push(preview._zoom.subscribe(() => {\n _calcHorizontalVertical();\n var pageCount = this.horizontal() * this.vertical();\n if (this.pageCount !== pageCount) {\n this.pageCount = pageCount;\n this.items().forEach(item => item.blocks().forEach(block => block.repaint = true));\n this.updateContent(preview, pageCount);\n }\n else if (this.pageCount === 1) {\n var block = this.items()[this.selectedIndex()].blocks()[0];\n this.items().forEach((item, index) => {\n if (index != this.selectedIndex())\n item.blocks().forEach(block => block.repaint = true);\n });\n setTimeout(() => {\n block.position({\n left: block.position().left,\n top: block.position().top,\n height: Math.max(this.previewWrapperSize().height, block.page.height()),\n width: Math.max(this.previewWrapperSize().width, block.page.width())\n });\n });\n }\n }));\n this._disposables.push(this.selectedIndexReal.subscribe((newVal) => {\n if (newVal >= 0) {\n this.changePage(preview);\n }\n else if (newVal < 0) {\n this.selectedIndexReal(0);\n }\n }));\n this._disposables.push(this.selectedIndex.subscribe((newVal) => {\n var result = newVal - oldIndex;\n if (result === -2 || result === 1) {\n this.selectedIndexReal(this.selectedIndexReal() + 1);\n }\n else if (result === 2 || result === -1) {\n this.selectedIndexReal(this.selectedIndexReal() - 1);\n }\n oldIndex = newVal;\n }));\n this._disposables.push(this.swipeLeftEnable = ko.computed(() => {\n return this.selectedIndexReal() !== 0;\n }));\n this._disposables.push(this.swipeRightEnable = ko.computed(() => {\n return this.selectedIndexReal() != (Math.ceil(preview.visiblePages().length / (this.horizontal() * this.vertical())) - 1);\n }));\n }\n _createBlock(previewPage, className, visible) {\n previewPage.disableResolutionReduction = true;\n previewPage.maxZoom = 1;\n var classSet = {};\n if (this.animationEnabled() && this.pageCount > 1) {\n className && (classSet[className] = true);\n classSet['dxrdp-animation'] = true;\n }\n return {\n page: previewPage,\n visible: visible,\n classSet: classSet,\n position: ko.observable({ top: 0, left: 0, width: 0, height: 0 })\n };\n }\n dispose() {\n clearTimeout(this.repaintTimeout());\n super.dispose();\n }\n updatePagesVisible(preview) {\n if (this.items()[this.selectedIndex()]) {\n var someActive = false;\n var pages = this.items()[this.selectedIndex()].blocks();\n if (pages.length > 0) {\n for (var i = 0; i < pages.length; i++) {\n if (pages[i].page) {\n pages[i].page.isClientVisible(true);\n if (pages[i].page.active()) {\n someActive = true;\n }\n }\n }\n if (!someActive) {\n pages[0].page && preview.goToPage(pages[0].page.pageIndex);\n }\n }\n }\n }\n updateCurrentBlock() {\n if (this.items()[this.selectedIndex()]) {\n var blocks = this.items()[this.selectedIndex()].blocks();\n if (blocks.length > 0) {\n if (blocks.length > 1) {\n this.currentBlockText([blocks[0].page.pageIndex + 1, blocks[blocks.length - 1].page.pageIndex + 1].join(' - '));\n }\n else {\n if (blocks[0].page) {\n this.currentBlockText((this.preview.pageIndex() + 1).toString());\n }\n }\n }\n }\n }\n updateContent(preview, pagesCount) {\n var itemsCount = Math.ceil(preview.visiblePages().length / pagesCount);\n var pageIndex = 0;\n var isCurrentBlock = false;\n var realIndex = 0;\n for (var i = 0; i < itemsCount; i++) {\n for (var j = 0; j < pagesCount; j++) {\n if (preview.visiblePages()[pageIndex].active()) {\n isCurrentBlock = true;\n realIndex = i;\n break;\n }\n pageIndex++;\n if (preview.visiblePages().length === pageIndex) {\n break;\n }\n }\n if (isCurrentBlock)\n break;\n }\n if (this.selectedIndexReal() !== realIndex) {\n this.selectedIndexReal(realIndex);\n }\n else {\n this.changePage(preview);\n }\n }\n updateBlockPositions(blocks, visible) {\n var height = this.previewWrapperSize().height / this.vertical();\n var width = this.previewWrapperSize().width / this.horizontal();\n for (var i = 0; i < blocks.length; i++) {\n var vertical = Math.floor((i) / this.horizontal());\n var horizontal = i - (this.horizontal() * vertical);\n var left = horizontal * width;\n if (blocks[i].visible === visible || blocks[i].visible === true) {\n blocks[i].position({\n top: vertical * height,\n left: left,\n width: width,\n height: height\n });\n blocks[i].visible = true;\n }\n else {\n blocks[i].position({\n top: vertical * height,\n left: blocks[i].classSet['left'] ? ((this.previewWrapperSize().width + left) * -1) : this.previewWrapperSize().width + left,\n width: width,\n height: height\n });\n }\n }\n }\n updateStartBlocks(galleryItem, pages) {\n var currentBlockPages = galleryItem.blocks().map(x => x.page);\n var firstPage = pages.indexOf(currentBlockPages[0]);\n if (firstPage !== -1) {\n for (var i = 0; i < firstPage; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], 'left', false));\n }\n }\n else {\n firstPage = currentBlockPages.indexOf(pages[0]);\n if (firstPage !== -1) {\n galleryItem.blocks.splice(0, firstPage);\n }\n }\n return firstPage;\n }\n updateLastBlocks(galleryItem, pages) {\n var currentBlockPages = galleryItem.blocks().map(x => x.page);\n var lastPage = pages.indexOf(currentBlockPages[currentBlockPages.length - 1]);\n if (lastPage === pages.length - 1) {\n return 0;\n }\n if (lastPage !== -1) {\n for (var i = lastPage + 1; i < pages.length; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], 'right', false));\n }\n }\n else {\n lastPage = currentBlockPages.indexOf(pages[pages.length - 1]);\n galleryItem.blocks.splice(lastPage + 1, currentBlockPages.length - lastPage);\n }\n return lastPage;\n }\n updateBlocks(galleryItem, pagesCount, preview, index, useAnimation = false) {\n var blocks = galleryItem.blocks();\n if (galleryItem.realIndex !== index\n || (blocks.length !== pagesCount || blocks[0].page.pageIndex === -1)\n || blocks.some(x => x.repaint)) {\n galleryItem.realIndex = index;\n clearTimeout(this._animationTimeout);\n var startIndex = pagesCount * index;\n if (startIndex < 0 || startIndex >= preview.visiblePages().length) {\n galleryItem.blocks([]);\n return;\n }\n var pages = [];\n for (var i = startIndex; i < startIndex + pagesCount; i++) {\n if (i >= preview.visiblePages().length) {\n break;\n }\n pages.push(preview.visiblePages()[i]);\n }\n var first = this.updateStartBlocks(galleryItem, pages);\n var last = this.updateLastBlocks(galleryItem, pages);\n if (first === -1 && last === -1) {\n galleryItem.blocks([]);\n for (var i = 0; i < pages.length; i++) {\n galleryItem.blocks.splice(i, 0, this._createBlock(pages[i], null, true));\n }\n }\n this.updateBlockPositions(galleryItem.blocks(), true);\n var self = this;\n if (useAnimation) {\n this._animationTimeout = setTimeout(() => {\n self.updateBlockPositions(galleryItem.blocks(), false);\n }, 400);\n }\n else {\n self.updateBlockPositions(galleryItem.blocks(), false);\n }\n }\n }\n changePage(preview) {\n var pagesCount = this.horizontal() * this.vertical();\n var itemsCount = Math.ceil(preview.visiblePages().length / pagesCount);\n if (this.selectedIndex() === this.items().length - 1) {\n this.updateBlocks(this.items()[0], pagesCount, preview, this.selectedIndexReal() + 1);\n this.updateBlocks(this.items()[1], pagesCount, preview, this.selectedIndexReal() - 1);\n }\n else if (this.selectedIndex() === 0) {\n this.updateBlocks(this.items()[2], pagesCount, preview, this.selectedIndexReal() - 1);\n this.updateBlocks(this.items()[1], pagesCount, preview, this.selectedIndexReal() + 1);\n }\n else {\n this.updateBlocks(this.items()[0], pagesCount, preview, this.selectedIndexReal() - 1);\n this.updateBlocks(this.items()[2], pagesCount, preview, this.selectedIndexReal() + 1);\n }\n var currentGalleryItem = this.items()[this.selectedIndex()];\n this.updateBlocks(currentGalleryItem, pagesCount, preview, this.selectedIndexReal(), preview.animationSettings.zoomEnabled());\n if (!this.isAnimated()) {\n this.updatePagesVisible(preview);\n }\n this.updateCurrentBlock();\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_paginator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport class MobilePaginator extends Disposable {\n constructor(reportPreview, gallery) {\n super();\n this.visible = ko.observable(false).extend({ notify: 'always' });\n this._disposables.push(this.text = ko.computed(() => {\n setTimeout(() => { this.visible(true); }, 1);\n if (reportPreview.pageIndex() === -1) {\n return getLocalization('0 pages', 'ASPxReportsStringId.WebDocumentViewer_0Pages');\n }\n else {\n var ofText = getLocalization('of', 'ASPxReportsStringId.ToolBarItemText_OfLabel');\n var pageText = getLocalization('Page', 'ASPxReportsStringId.ToolBarItemText_PageLabel');\n return pageText + ' ' + gallery.currentBlockText() + ' ' + ofText + ' ' + reportPreview.pages().length;\n }\n }));\n }\n}\nko.bindingHandlers['dxrdMobilePaginator'] = {\n init: function (element, valueAccessor) {\n var values = valueAccessor();\n var $element = $.fn.constructor(element);\n var timeoutId = null;\n var hideAnimationTimeoutId = null;\n values.visible.subscribe((newVal) => {\n if (newVal) {\n $element.removeClass('dxrdp-hide').addClass('dxrdp-show');\n timeoutId && clearTimeout(timeoutId);\n timeoutId = setTimeout(() => { values.visible(false); }, 2000);\n }\n else {\n $element.removeClass('dxrdp-show').addClass('dxrdp-hide');\n hideAnimationTimeoutId && clearTimeout(hideAnimationTimeoutId);\n hideAnimationTimeoutId = setTimeout(() => {\n $element.removeClass('dxrdp-hide');\n }, 500);\n }\n });\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\multiValuesHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { compareArrays } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nexport class MultiValuesHelper {\n constructor(value, items, selectAllValues) {\n this.items = items;\n this.selectedItems = ko.observableArray([]);\n this.value = value;\n this.dataSource = items;\n var allValues;\n this.maxDisplayedTags = Math.min(((items && items.length) || 1) - 1, MultiValuesHelper.maxDisplayedTags);\n this.isSelectedAll = ko.pureComputed({\n read: () => this.value().length == items.length,\n write: (selectAll) => {\n var newValue = selectAll ? (allValues || (allValues = items.map(x => x.value))) : [];\n if (!compareArrays(this.value.peek(), newValue))\n this.value(newValue);\n }\n });\n if (selectAllValues)\n this.isSelectedAll(true);\n }\n}\nMultiValuesHelper.maxDisplayedTags = 3;\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\parameterHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { selectPlaceholder, SortedArrayStore } from '@devexpress/analytics-core/analytics-internal';\nimport ArrayStore from 'devextreme/data/array_store';\nimport { getEditorType as analytics_getEditorType } from '@devexpress/analytics-core/analytics-internal';\nimport DataSource from 'devextreme/data/data_source';\nexport function getEditorType(typeString) {\n if (typeString === 'multiValueWithLookUp') {\n return viewerEditorTemplates.multiValue;\n }\n if (typeString === 'multiValue') {\n return viewerEditorTemplates.multiValueEditable;\n }\n if (typeString === 'Enum') {\n return viewerEditorTemplates.selectBox;\n }\n return undefined;\n}\nexport function _convertLocalDateToUTC(localDate) {\n return new Date(Date.UTC(localDate.getFullYear(), localDate.getMonth(), localDate.getDate(), localDate.getHours(), localDate.getMinutes(), localDate.getSeconds()));\n}\nexport class ParameterHelper extends Disposable {\n constructor() {\n super(...arguments);\n this._customizeParameterEditors = ko.observable();\n this.getUnspecifiedDisplayText = () => { return getLocalization('(none)', 'PreviewStringId.NoneString'); };\n }\n _isKnownEnumType(type) {\n return !!this._knownEnums && this._knownEnums.some((knownEnumType) => { return knownEnumType.enumType === type; });\n }\n static getSerializationValue(value, dateConverter) {\n if (value instanceof Array) {\n return value.map((item) => {\n var itemValue = ko.isObservable(item === null || item === void 0 ? void 0 : item.value) ? item.value() : item;\n return (itemValue instanceof Date) ? dateConverter(itemValue) : itemValue;\n });\n }\n return (value instanceof Date) ? dateConverter(value) : value;\n }\n static createDefaultDataSource(store) {\n return new DataSource({\n store: store,\n paginate: true,\n pageSize: 100\n });\n }\n initialize(knownEnums, callbacks) {\n if (arguments.length > 0) {\n this._knownEnums = knownEnums;\n if (callbacks) {\n callbacks.customizeParameterEditors && this._customizeParameterEditors(callbacks.customizeParameterEditors);\n callbacks.customizeParameterLookUpSource && (this.customizeParameterLookUpSource = callbacks.customizeParameterLookUpSource);\n }\n }\n }\n createInfo(parameter) {\n var parameterDescriptor = parameter.getParameterDescriptor();\n var typeString = this.isEnumType(parameter) ? 'Enum' : ko.unwrap(parameterDescriptor.type);\n var editorType = getEditorType(typeString);\n var info = {\n propertyName: 'value',\n displayName: parameterDescriptor['displayName'],\n localizationId: parameterDescriptor['localizationId'],\n editor: editorType || analytics_getEditorType(typeString),\n editorOptions: {}\n };\n if (parameterDescriptor.type === 'System.Guid') {\n info.editorOptions.isNullable = parameterDescriptor.allowNull;\n }\n this.assignValueStore(info, parameter);\n return info;\n }\n addShowCleanButton(info, parameter) {\n info.editorOptions.showClearButton = parameter.allowNull;\n info.editorOptions.placeholder = ko.computed(() => {\n if (ko.unwrap(parameter.allowNull))\n return this.getUnspecifiedDisplayText();\n return ko.unwrap(parameter.isMultiValue) ? selectPlaceholder() : '';\n });\n }\n assignValueStore(info, parameter) {\n var items = this.getEnumCollection(parameter);\n info['valueStore'] = this.getItemsSource(parameter.getParameterDescriptor(), items, true);\n }\n createMultiValue(parameter, value) {\n var newValue = ko.observable();\n if (value !== null && value !== void 0) {\n newValue(value);\n }\n return { value: newValue, getInfo: () => { return [parameter.multiValueInfo()]; } };\n }\n createMultiValueArray(fromArray, parameter, convertSingleValue) {\n var converter = convertSingleValue ? convertSingleValue : this.getValueConverter(ko.unwrap(parameter.type));\n return ko.observableArray(fromArray.map((item) => {\n return this.createMultiValue(parameter, converter(item));\n }));\n }\n isEnumType(parameter) {\n return this._isKnownEnumType(ko.unwrap(parameter.type));\n }\n getItemsSource(parameterDescriptor, items, sort) {\n if (items) {\n var newItems;\n if (this.customizeParameterLookUpSource)\n newItems = this.customizeParameterLookUpSource(parameterDescriptor, items.slice(0));\n return newItems ? newItems : ParameterHelper.createDefaultDataSource(sort ? new SortedArrayStore(items, 'displayValue') : new ArrayStore(items));\n }\n return items;\n }\n getEnumCollection(parameter) {\n var type = ko.unwrap(parameter.type);\n if (this._isKnownEnumType(type)) {\n var currentKnownEnumInfo = this._knownEnums.filter((knownEnumType) => { return knownEnumType.enumType === type; })[0];\n if (currentKnownEnumInfo && currentKnownEnumInfo.values && currentKnownEnumInfo.values.length !== 0) {\n return currentKnownEnumInfo.values.map((val) => { return { value: val.value, displayValue: val.displayName }; });\n }\n }\n }\n getParameterInfo(parameter) {\n var valueInfo = this.createInfo(parameter);\n parameter.multiValueInfo($.extend(true, {}, valueInfo, { propertyName: 'value' }));\n if (parameter.allowNull !== undefined) {\n this.addShowCleanButton(valueInfo, parameter);\n }\n if (ko.unwrap(parameter.isMultiValue)) {\n valueInfo.editor = getEditorType(parameter['isMultiValueWithLookUp'] ? 'multiValueWithLookUp' : 'multiValue');\n valueInfo['addHandler'] = () => { return this.createMultiValue(parameter); };\n }\n valueInfo.editor.custom = valueInfo.editor.custom || 'dxrd-parameters-property-editor';\n if (this._customizeParameterEditors()) {\n this._customizeParameterEditors()(parameter.getParameterDescriptor(), valueInfo);\n }\n return valueInfo;\n }\n getValueConverter(type) {\n return (val => { return val; });\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParameterHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ParameterHelper } from './parameterHelper';\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { parseDate, integerValueConverter, floatValueConverter } from '@devexpress/analytics-core/analytics-internal';\nimport { requiredValidationRules } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nexport class PreviewParameterHelper extends ParameterHelper {\n constructor(knownEnums, callbacks) {\n super();\n this.callbacks = callbacks;\n this.initialize(knownEnums, callbacks);\n }\n mapLookUpValues(type, lookUpValues) {\n var converter = this.getValueConverter(type);\n return $.map(lookUpValues || [], (lookUpValue) => { return { value: converter(lookUpValue.Value), displayValue: lookUpValue.Description }; });\n }\n static fixPropertyName(propertyName) {\n return propertyName.replace(/\\./g, '_');\n }\n static getPrivatePropertyName(propertyName) {\n return '_' + PreviewParameterHelper.fixPropertyName(propertyName);\n }\n createInfo(parameter) {\n var info = super.createInfo(parameter);\n info.propertyName = PreviewParameterHelper.getPrivatePropertyName(parameter.path);\n if (!parameter.isMultiValue && (parameter.lookUpValues() || this.isEnumType(parameter))) {\n info.editorOptions.searchEnabled = true;\n if (!parameter.allowNull)\n info.editorOptions.allowClearing = false;\n }\n if (parameter.isRange) {\n info.editor = this.getRangeEditor();\n return info;\n }\n if ((parameter.type === 'System.DateTime' || parameter.isTypesCurrentType(parameter.intTypes.concat(parameter.floatTypes), parameter.type)) && !parameter.allowNull && !parameter.isMultiValue && !parameter.isMultiValueWithLookUp) {\n info.validationRules = requiredValidationRules;\n }\n else if (parameter.type === 'System.Guid') {\n info.editorOptions.displayCustomValue = false;\n }\n return info;\n }\n assignValueStore(info, parameter) {\n var _helper = this;\n if (!parameter.isMultiValueWithLookUp) {\n Object.defineProperty(info, 'valueStore', {\n get: () => {\n var items = [];\n var needSorting = false;\n if (parameter.isFilteredLookUpSettings || parameter.lookUpValues() && parameter.lookUpValues().length !== 0) {\n items = parameter.lookUpValues();\n }\n else {\n items = _helper.getEnumCollection(parameter);\n needSorting = true;\n }\n if (parameter.valueStoreCache)\n return parameter.valueStoreCache;\n var itemsSource = _helper.getItemsSource(parameter.getParameterDescriptor(), items, needSorting);\n if (itemsSource)\n parameter.valueStoreCache = itemsSource;\n return itemsSource;\n },\n set: (values) => {\n parameter.lookUpValues(values);\n }\n });\n }\n }\n isEnumType(parameter) {\n return parameter.isFilteredLookUpSettings || !!parameter.lookUpValues() || super.isEnumType(parameter);\n }\n getValueConverter(type) {\n if (type === 'System.DateTime') {\n return (dateString) => { return parseDate(dateString); };\n }\n else if (['System.Int16', 'System.Int32', 'System.Int64'].indexOf(type) > -1) {\n return val => integerValueConverter(val, '0');\n }\n else if (['System.Single', 'System.Double', 'System.Decimal'].indexOf(type) > -1) {\n return val => floatValueConverter(val, '0');\n }\n return super.getValueConverter(type);\n }\n getRangeEditor() {\n return viewerEditorTemplates.rangeEditor;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParameterValueValidator.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { validateGuid, ValueEditorHelper } from '@devexpress/analytics-core/analytics-widgets-internal';\nexport class PreviewParameterValueValidator {\n constructor() {\n this._validatorMap = {};\n this._numericTypes = [\n 'System.SByte',\n 'System.Decimal',\n 'System.Int64',\n 'System.Int32',\n 'System.Int16',\n 'System.Single',\n 'System.Double',\n 'System.Byte',\n 'System.UInt16',\n 'System.UInt32',\n 'System.UInt64'\n ];\n this._registerType('System.String', (value) => typeof value === 'string');\n this._registerType('System.Guid', (value) => typeof value === 'string' && validateGuid(value));\n this._registerType('System.Boolean', (value) => typeof value === 'boolean');\n this._registerType('System.DateTime', (value) => {\n return !isNaN(new Date(value));\n });\n this._numericTypes.forEach((type) => this._registerType(type, (value) => typeof value === 'string' && ValueEditorHelper.isValid(type, undefined, value)));\n }\n _registerType(typeName, validator) {\n this._validatorMap[typeName] = validator;\n }\n validate(type, value) {\n return this._validatorMap[type] ? this._validatorMap[type](value) : true;\n }\n isNumericType(type) {\n return this._numericTypes.some(x => x === type);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParameter.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { compareArrays } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { Editor } from '@devexpress/analytics-core/analytics-widgets';\nimport ArrayStore from 'devextreme/data/array_store';\nimport * as ko from 'knockout';\nimport { MultiValuesHelper } from './multiValuesHelper';\nimport { ParameterHelper, _convertLocalDateToUTC } from './parameterHelper';\nimport { PreviewParameterHelper } from './previewParameterHelper';\nimport { PreviewParameterValueValidator } from './previewParameterValueValidator';\nexport class PreviewParameter extends Disposable {\n constructor(parameterInfo, parameterHelper) {\n super();\n this.hasVerticalLabel = ko.observable(false);\n this.valueInfo = ko.observable();\n this.lookUpValues = ko.observableArray();\n this.valueStoreCache = null;\n this.multiValueInfo = ko.observable();\n this.intTypes = ['System.Int16', 'System.Int32', 'System.Int64'];\n this.floatTypes = ['System.Single', 'System.Double', 'System.Decimal'];\n this.isTypesCurrentType = (types, type) => types.indexOf(type) > -1;\n this.tag = parameterInfo.Tag;\n this.type = parameterInfo.TypeName;\n this.isRange = parameterInfo.Value && parameterInfo.Value.Start !== undefined && parameterInfo.Value.End !== undefined;\n this.path = parameterInfo.Path;\n this.visible = ko.observable(parameterInfo.Visible);\n this.enabled = ko.observable(parameterInfo.Enabled);\n this.isFilteredLookUpSettings = parameterInfo.IsFilteredLookUpSettings;\n this.hasBindedExpressions = !!(parameterInfo.EnabledExpression || parameterInfo.VisibleExpression);\n this.hasVisibleExpression = !!parameterInfo.VisibleExpression;\n this._originalLookUpValues = parameterInfo.LookUpValues ? parameterHelper.mapLookUpValues(this.type, parameterInfo.LookUpValues || []) : null;\n this.lookUpValues(this._originalLookUpValues);\n this.lookUpValues.subscribe(() => { this.valueStoreCache = null; });\n this.isMultiValue = parameterInfo.MultiValue;\n this.selectAllValues = parameterInfo.SelectAllValues;\n this.allowNull = parameterInfo.AllowNull;\n this.isMultiValueWithLookUp = this.isMultiValue && !!this.lookUpValues();\n this._originalValue = parameterInfo.Value;\n if (parameterInfo.ValueInfo && this.isTypesCurrentType(this.intTypes.concat(this.floatTypes), this.type) && !this.isMultiValueWithLookUp) {\n this._originalValue = parameterInfo.ValueInfo;\n }\n this.getParameterDescriptor = () => {\n return {\n description: parameterInfo.Description,\n displayName: parameterInfo.Description || parameterInfo.Name,\n name: parameterInfo.Name,\n tag: parameterInfo.Tag,\n type: parameterInfo.TypeName,\n value: this._originalValue,\n multiValue: parameterInfo.MultiValue,\n selectAllValues: parameterInfo.SelectAllValues,\n allowNull: parameterInfo.AllowNull,\n hasLookUpValues: !!this.lookUpValues() || parameterHelper.isEnumType(this),\n visible: parameterInfo.Visible,\n enabled: parameterInfo.Enabled\n };\n };\n this._disposables.push(ko.computed(() => {\n var info = parameterHelper.getParameterInfo(this);\n info.propertyName = PreviewParameterHelper.getPrivatePropertyName(parameterInfo.Path);\n info.editor.editorType = info.editor.editorType || Editor;\n info.editorOptions.hasVerticalLabel = this.hasVerticalLabel();\n this.valueInfo(info);\n }));\n this.initialize(this._originalValue, parameterHelper);\n }\n static _compareValues(value1, value2) {\n if (value1 instanceof Date && value2 instanceof Date) {\n return value1 - value2 === 0;\n }\n return value1 === value2;\n }\n safeAssignObservable(name, value) {\n if (this[name]) {\n if (PreviewParameter._compareValues(this[name](), value()))\n this[name](null);\n var isEqual = false;\n if (value() instanceof MultiValuesHelper && Array.isArray(value().items))\n isEqual = compareArrays(this[name]().items, value().items);\n else if (Array.isArray(value()))\n isEqual = compareArrays(this[name](), value());\n if (!isEqual) {\n this[name](value());\n }\n }\n else {\n this[name] = value;\n }\n }\n _validateRangeType(value) {\n return Array.isArray(value) && value.every(x => x instanceof Date) && value.length === 2;\n }\n validateAndAssignValue(value) {\n if (value === undefined || value === null)\n return this.value(value);\n if (this.isRange && !this._validateRangeType(value))\n throw new Error(`The '${this.path}' parameter must be in the format [Date, Date].`);\n if (!this.isRange) {\n var validator = new PreviewParameterValueValidator();\n if (validator.isNumericType(this.type))\n value = '' + value;\n if (!validator.validate(this.type, value))\n throw new Error(`The '${this.path}' parameter must be a '${this.type}' type.`);\n }\n this.value(value);\n }\n initialize(value, parameterHelper) {\n var resultValue;\n if (this.isMultiValueWithLookUp) {\n this.safeAssignObservable('_value', ko.observableArray((value || []).map((arrayItem) => {\n return parameterHelper.getValueConverter(this.type)(arrayItem);\n })));\n var multiValuesHelper = new MultiValuesHelper(this._value, this.lookUpValues(), this.selectAllValues);\n var newItems;\n if (parameterHelper.customizeParameterLookUpSource)\n newItems = parameterHelper.customizeParameterLookUpSource(this.getParameterDescriptor(), multiValuesHelper.dataSource);\n if (newItems) {\n multiValuesHelper.dataSource = newItems;\n }\n else {\n var store = new ArrayStore({\n data: multiValuesHelper.dataSource,\n key: 'value',\n });\n multiValuesHelper.dataSource = ParameterHelper.createDefaultDataSource(store);\n }\n resultValue = ko.observable(multiValuesHelper);\n }\n else if (this.isMultiValue) {\n resultValue = value ? parameterHelper.createMultiValueArray(value, this) : ko.observableArray();\n }\n else if (this.allowNull && !value && value !== false) {\n resultValue = ko.observable(null);\n }\n else if (this.isRange) {\n var converter = parameterHelper.getValueConverter(this.type);\n resultValue = ko.observableArray([this._originalValue.Start, this._originalValue.End].map(x => ko.unwrap(converter(x))));\n }\n else {\n resultValue = ko.observable(parameterHelper.getValueConverter(this.type)(value));\n }\n this.safeAssignObservable('value', resultValue);\n }\n serialize() {\n var convertItem = (item) => {\n return (this.type === 'System.DateTime' && !!item && (item instanceof Date)) ? _convertLocalDateToUTC(item) : item;\n };\n var value = this.isMultiValueWithLookUp ? this._value() : this.value();\n if (this.allowNull) {\n if ((this.isMultiValue && Array.isArray(value) && value.length === 0) || value === '') {\n value = null;\n }\n }\n return { Value: ParameterHelper.getSerializationValue(value, convertItem), Key: this.path, TypeName: this.type };\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\parameterPanelItemBase.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { floatValueConverter, getUniqueName, integerValueConverter } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { viewerEditorTemplates } from '../widgets/editorTemplates';\nimport { PreviewParameter } from './previewParameter';\nimport { PreviewParameterHelper } from './previewParameterHelper';\nexport class ParameterPanelItemBase extends Disposable {\n constructor(parameterHelper, layoutInfo) {\n super();\n this.parameterHelper = parameterHelper;\n this.layoutInfo = layoutInfo;\n this._parameters = [];\n this._separatorNames = [];\n this._groupLayoutItems = [];\n this.isEmpty = ko.observable(true);\n this.getInfo = ko.observable([]);\n this.parameterHelper = parameterHelper || new PreviewParameterHelper();\n }\n _fixGroupPropertyName(name) {\n return getUniqueName(Object.keys(this), name.toLocaleLowerCase().replace(/\\s/g, '_'));\n }\n _proceedLayoutInfo(layoutInfo, previewParameters) {\n this.getInfo([]);\n this._groupLayoutItems = [];\n layoutInfo.layoutItems.forEach(itemInfo => {\n if (itemInfo.type === 'Group') {\n var groupItemInfo = itemInfo;\n var name = this._fixGroupPropertyName(groupItemInfo.title);\n var info = {\n propertyName: name,\n displayName: groupItemInfo.title,\n editor: viewerEditorTemplates.groupEditor,\n editorOptions: {\n expanded: groupItemInfo.expanded,\n titleVisible: groupItemInfo.titleVisible,\n showExpandButton: groupItemInfo.showExpandButton,\n borderVisible: itemInfo.borderVisible,\n orientation: groupItemInfo.orientation\n }\n };\n var item = new ParameterPanelItemBase(this.parameterHelper, groupItemInfo);\n this[name] = item;\n this._groupLayoutItems.push(item);\n this.getInfo(this.getInfo().concat(info));\n }\n else if (itemInfo.type === 'Parameter') {\n var parameterLayoutInfo = itemInfo;\n var previewParameter = previewParameters.filter(x => x.path === parameterLayoutInfo.path)[0];\n previewParameter && this._add(previewParameter, parameterLayoutInfo);\n }\n else if (itemInfo.type === 'Separator') {\n var generatedName = this._fixGroupPropertyName('Separator');\n this[generatedName] = { name: ko.observable(generatedName) };\n info = {\n propertyName: generatedName,\n editor: viewerEditorTemplates.separatorEditor\n };\n this.getInfo(this.getInfo().concat(info));\n this._separatorNames.push(generatedName);\n }\n });\n }\n _add(parameter, parameterInfo) {\n if (this._parameters.indexOf(parameter) === -1) {\n this._parameters.push(parameter);\n }\n if (!parameter.visible() && !parameter.hasVisibleExpression) {\n return parameter;\n }\n parameter.hasVerticalLabel(parameterInfo.labelOrientation === 'Vertical');\n this[PreviewParameterHelper.getPrivatePropertyName(parameter.path)] = parameter.value;\n var parameterPropertyName = PreviewParameterHelper.fixPropertyName(parameter.path);\n if (parameter.isMultiValue || !parameter.isTypesCurrentType(parameter.intTypes.concat(parameter.floatTypes), parameter.type)) {\n this[parameterPropertyName] = parameter.value;\n }\n else {\n this[parameterPropertyName] = ko.pureComputed({\n read: () => {\n var parseValue = parameter.value();\n if (parseValue === null || parseValue === undefined) {\n return parseValue;\n }\n if (parameter.isTypesCurrentType(parameter.intTypes, parameter.type)) {\n parseValue = parseInt(parseValue);\n }\n else if (parameter.isTypesCurrentType(parameter.floatTypes, parameter.type)) {\n parseValue = parseFloat(parseValue);\n }\n return parseValue;\n },\n write: (newVal) => {\n var expandValue = newVal;\n if (parameter.allowNull && (expandValue === '' || expandValue === undefined)) {\n expandValue = null;\n }\n else if (parameter.isTypesCurrentType(parameter.intTypes, parameter.type)) {\n expandValue = integerValueConverter(expandValue, '0');\n }\n else if (parameter.isTypesCurrentType(parameter.floatTypes, parameter.type)) {\n expandValue = floatValueConverter(expandValue, '0');\n }\n parameter.value(expandValue);\n }\n });\n }\n this.getInfo(this.getInfo().concat(parameter.valueInfo()));\n return parameter;\n }\n isPropertyDisabled(name) {\n var parameter = this._parameters.filter(parameter => PreviewParameterHelper.getPrivatePropertyName(parameter.path) === name)[0];\n return parameter && !parameter.enabled();\n }\n isPropertyVisible(name) {\n var parameter = this._parameters.filter(parameter => PreviewParameterHelper.getPrivatePropertyName(parameter.path) === name)[0];\n return !parameter || parameter.visible();\n }\n initialize(originalParametersInfo, parameters) {\n this._parameters.forEach((usedParameter) => {\n delete this[PreviewParameterHelper.fixPropertyName(usedParameter.path)];\n delete this[PreviewParameterHelper.getPrivatePropertyName(usedParameter.path)];\n });\n this._parameters = [];\n if (!originalParametersInfo) {\n this.isEmpty(true);\n this.getInfo([]);\n return;\n }\n parameters = parameters || (originalParametersInfo.parameters || []).map((parameter) => {\n var previewParameter = new PreviewParameter(parameter, this.parameterHelper);\n this._parameters.push(previewParameter);\n return previewParameter;\n });\n var layoutInfo = originalParametersInfo.parameterPanelLayout || this.layoutInfo;\n layoutInfo && this._proceedLayoutInfo(layoutInfo, parameters);\n this._groupLayoutItems.forEach(item => item.initialize({}, parameters));\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\parameters\\previewParametersViewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccordionKeyboardHelper, ajax } from '@devexpress/analytics-core/analytics-internal';\nimport { getLocalization, TabInfoWithPropertyGrid } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { HandlerUri } from '../settings';\nimport { ParameterPanelItemBase } from './parameterPanelItemBase';\nimport { PreviewParameter } from './previewParameter';\nimport * as $ from 'jquery';\nexport class PreviewParametersViewModel extends ParameterPanelItemBase {\n constructor(reportPreview, parameterHelper, enableKeyboardSupport) {\n super(parameterHelper);\n this._getParametersStateRequest = (argsObject) => {\n return ajax(HandlerUri(), 'getParametersState', encodeURIComponent(JSON.stringify(argsObject)), (message, jqXHR, textStatus) => this._reportPreview._processError(getLocalization('Cannot supply filtered lookup values to a report parameter editor', 'ASPxReportsStringId.WebDocumentViewer_GetLookUpValuesError'), jqXHR));\n };\n this._getDoneGetParametersStateHandler = (changedParameter) => {\n var parametersViewModel = this;\n return (response) => {\n try {\n if (!response || !response.parameters) {\n return;\n }\n response.parameters.forEach((parametersInfoCollection) => {\n var matchedParameter = parametersViewModel._parameters.filter((p) => { return p.path === parametersInfoCollection.Key; })[0];\n if (!parametersViewModel._shouldProcessParameter(matchedParameter))\n return;\n matchedParameter.visible(parametersInfoCollection.Value.visible);\n matchedParameter.enabled(parametersInfoCollection.Value.enabled);\n if (parametersViewModel._parameters.indexOf(changedParameter) < parametersViewModel._parameters.indexOf(matchedParameter) && parametersInfoCollection.Value.lookUpValues != null) {\n parametersViewModel._setLookUpValues(matchedParameter, parametersInfoCollection.Value.lookUpValues);\n }\n });\n }\n finally {\n parametersViewModel.parametersLoading(false);\n }\n };\n };\n this._getFailGetParametersStateHandler = () => {\n var parametersViewModel = this;\n return (jqXHRError) => {\n parametersViewModel.parametersLoading(false);\n };\n };\n this.restore = () => {\n if (this.parametersLoading()) {\n return;\n }\n try {\n this.parametersLoading(true);\n this._parameters.forEach((parameter) => {\n if (!this._shouldProcessParameter(parameter))\n return;\n parameter.lookUpValues(parameter._originalLookUpValues);\n parameter.initialize(parameter._originalValue, this.parameterHelper);\n });\n }\n finally {\n this.parameterHelper.callbacks && this.parameterHelper.callbacks.parametersReset && this.parameterHelper.callbacks.parametersReset(this, this._parameters);\n this.parametersLoading(false);\n }\n };\n this.getInfo = ko.observable(null);\n this.needToUpdateParameter = ko.observable(false);\n this.processInvisibleParameters = false;\n this.parametersLoading = ko.observable(false);\n this.prevParametersStateRequest = $.Deferred();\n this._reportPreview = reportPreview;\n this.validateAndSubmit = (params) => {\n var result = params && params.validationGroup && params.validationGroup.validate && params.validationGroup.validate();\n if (!result || result.isValid)\n this.submit();\n };\n this.submit = () => {\n if (this.parametersLoading())\n return;\n this.parametersLoading(true);\n var promise = reportPreview.startBuild();\n promise && promise.done((val) => { this.parametersLoading(false); });\n };\n this._disposables.push(reportPreview.originalParametersInfo.subscribe((originalParametersInfo) => {\n this.initialize(originalParametersInfo);\n }));\n this.initialize(reportPreview.originalParametersInfo());\n var notEmpty = ko.pureComputed(() => !this.isEmpty());\n this.tabInfo = new TabInfoWithPropertyGrid({\n text: 'Parameters',\n template: 'dxrd-preview-parameters',\n model: this,\n keyboardHelper: enableKeyboardSupport ? new AccordionKeyboardHelper() : undefined,\n localizationId: 'PreviewStringId.RibbonPreview_Parameters_Caption',\n imageClassName: 'parameters',\n imageTemplateName: 'dxrd-svg-tabs-parameters',\n visible: notEmpty\n });\n var popupVisibleSwitch = ko.observable(false);\n var popupVisible = ko.pureComputed({\n read: () => {\n return notEmpty() && popupVisibleSwitch();\n },\n write: (newVal) => {\n return popupVisibleSwitch(newVal);\n }\n });\n this.popupInfo = { visible: popupVisible, notEmpty: notEmpty };\n this._disposables.push(this.popupInfo);\n }\n get _visibleParameters() {\n return this._parameters.filter((p) => { return p.visible(); });\n }\n _shouldProcessParameter(param) {\n return this.processInvisibleParameters || (param && (param.visible() || param.hasVisibleExpression || param.isFilteredLookUpSettings));\n }\n subscribeParameter(parameter) {\n var needToUpdateParameter = this.needToUpdateParameter() || (this._shouldProcessParameter(parameter)) &&\n (parameter.isFilteredLookUpSettings || parameter.hasBindedExpressions);\n this.needToUpdateParameter(needToUpdateParameter);\n if (this._shouldProcessParameter(parameter)) {\n this._disposables.push((parameter.isMultiValueWithLookUp ? parameter._value : parameter.value).subscribe((newValue) => {\n if (this.needToUpdateParameter()) {\n this.updateParameters(parameter);\n }\n }));\n }\n }\n _setLookUpValues(parameter, lookUpValues) {\n if (!lookUpValues) {\n parameter.lookUpValues([]);\n return;\n }\n parameter.lookUpValues(this.parameterHelper.mapLookUpValues(parameter.type, lookUpValues));\n var _parameterValuesContainedInLookUps = this._getParameterValuesContainedInLookups(lookUpValues, parameter);\n if (parameter.isMultiValue) {\n parameter.initialize(_parameterValuesContainedInLookUps.length > 0 ? _parameterValuesContainedInLookUps : [], this.parameterHelper);\n }\n else {\n parameter.initialize(_parameterValuesContainedInLookUps[0] && _parameterValuesContainedInLookUps[0].Value || (lookUpValues.length > 0 ? lookUpValues[0].Value : null), this.parameterHelper);\n }\n }\n _getParameterValuesContainedInLookups(parameterLookUpValues, parameter) {\n if (parameterLookUpValues) {\n if (parameter.isMultiValue) {\n var selectedItems = parameter.value().value();\n return selectedItems.filter((item) => this._filterParameterValuesContainsInLookups(parameterLookUpValues, parameter.type, item).length > 0);\n }\n else {\n return this._filterParameterValuesContainsInLookups(parameterLookUpValues, parameter.type, parameter.value());\n }\n }\n return [];\n }\n _filterParameterValuesContainsInLookups(parameterLookUpValues, parameterType, value) {\n return parameterLookUpValues.filter((x) => PreviewParameter._compareValues(this.parameterHelper.getValueConverter(parameterType)(x.Value), value));\n }\n _setParameterValue(parameter, value) {\n var descriptor = parameter.getParameterDescriptor();\n if (descriptor.multiValue) {\n if (value && !Array.isArray(value))\n throw new Error(`The '${parameter.path}' parameter must be an array.`);\n if (descriptor.hasLookUpValues) {\n parameter.value().value(value);\n }\n else {\n var parameterValues = this.parameterHelper.createMultiValueArray(value, parameter)();\n parameter.value(parameterValues);\n }\n }\n else {\n parameter.validateAndAssignValue(value);\n }\n }\n setParameterValue(parameterName, value) {\n var parameter = this._parameters.filter(x => x.path === parameterName)[0];\n if (!parameter)\n throw new Error(`The '${parameterName}' parameter is not found.`);\n this._setParameterValue(parameter, value);\n }\n initialize(originalParametersInfo) {\n originalParametersInfo && this.parameterHelper.initialize(originalParametersInfo.knownEnums);\n super.initialize(originalParametersInfo);\n if (!originalParametersInfo)\n return;\n var layout = originalParametersInfo.parameterPanelLayout;\n if ((!layout || layout.layoutItems.length === 0) && originalParametersInfo.parameters) {\n this._parameters.forEach(x => this._add(x, {}));\n }\n this.isEmpty(this._visibleParameters.length === 0);\n var actualParametersInfo = [];\n this._parameters.forEach(x => {\n this.subscribeParameter(x);\n var value = ko.computed({\n read: () => {\n return x.serialize().Value;\n },\n write: (newVal) => {\n this._setParameterValue(x, newVal);\n }\n });\n var selectAll = ko.computed({\n read: () => {\n var _a;\n return ((_a = x.value()) === null || _a === void 0 ? void 0 : _a.isSelectedAll) && x.value().isSelectedAll();\n },\n write: (newVal) => {\n var _a;\n ((_a = x.value()) === null || _a === void 0 ? void 0 : _a.isSelectedAll) && x.value().isSelectedAll(newVal);\n }\n });\n this._disposables.push(selectAll);\n this._disposables.push(value);\n actualParametersInfo.push({\n value,\n selectAll,\n parameterDescriptor: x.getParameterDescriptor(),\n lookUpValues: x.lookUpValues\n });\n });\n if (this.parameterHelper.callbacks && this.parameterHelper.callbacks.parametersInitialized) {\n this.parameterHelper.callbacks.parametersInitialized(this, actualParametersInfo, this.submit, originalParametersInfo.shouldRequestParameters);\n }\n if (this._reportPreview.documentId)\n return;\n if (!originalParametersInfo.shouldRequestParameters || this.isEmpty()) {\n this.submit();\n }\n else {\n this._reportPreview.removeEmptyPages();\n this.tabInfo.active(true);\n if (this.tabInfo.visible() && ko.isWriteableObservable(this.tabInfo.collapsed))\n this.tabInfo.collapsed(false);\n this.popupInfo.visible(true);\n this._reportPreview.pageLoading(false);\n }\n }\n getPathsAfterPath(parameterPath) {\n var startIndex = 0;\n for (var index = 0; index < this._parameters.length; index++) {\n if (this._parameters[index].path === parameterPath) {\n startIndex = index + 1;\n break;\n }\n }\n var paths = this._parameters\n .filter((param, index) => {\n return this._shouldProcessParameter(param) &&\n (param.hasBindedExpressions || param.isFilteredLookUpSettings && index >= startIndex);\n })\n .map((x) => x.path);\n return paths || [];\n }\n serializeParameters() {\n return this._parameters.map(x => x.serialize());\n }\n updateParameters(changedParameter) {\n var requiredParameterPaths = this.getPathsAfterPath(changedParameter.path);\n if (!requiredParameterPaths || requiredParameterPaths.length === 0) {\n return;\n }\n var argsObject = {\n reportId: this._reportPreview.reportId,\n reportUrl: this._reportPreview.reportUrl,\n requiredParameterPaths: requiredParameterPaths,\n parameters: this.serializeParameters(),\n changedParameterPath: changedParameter.path,\n timeZoneOffset: 0 - new Date().getTimezoneOffset()\n };\n this.prevParametersStateRequest.reject();\n var deferred = $.Deferred();\n setTimeout(() => {\n this.parametersLoading(true);\n this._getParametersStateRequest(argsObject)\n .done((result) => deferred.resolve(result))\n .fail(() => deferred.resolve());\n deferred.done(this._getDoneGetParametersStateHandler(changedParameter));\n deferred.fail(this._getFailGetParametersStateHandler());\n this.prevParametersStateRequest = deferred;\n }, 10);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_editorTemplates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var editorTemplates = {\n rangeEditor: { header: 'dxrv-range-parameter-mobile' },\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePreviewParameterHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { PreviewParameterHelper } from '../../parameters/previewParameterHelper';\nimport { editorTemplates } from './_editorTemplates';\nexport class MobilePreviewParameterHelper extends PreviewParameterHelper {\n getRangeEditor() {\n return editorTemplates.rangeEditor;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\utils\\_mobileActionList.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SearchAvailable } from '../../settings';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class MobileActionList extends Disposable {\n constructor(actions) {\n super();\n this.actions = actions;\n this.visible = ko.observable(false);\n }\n dispose() {\n this.actions.forEach(action => {\n if (action.content && action.content.dispose) {\n action.content.dispose();\n delete action.content.dispose;\n }\n });\n super.dispose();\n }\n}\nexport function getPreviewActionsMobile(options) {\n var exportToModel = {\n visible: ko.observable(false),\n items: ko.pureComputed(() => {\n var allFormats = options.exportModel._getExportFormatItems();\n var availableFormats = options.exportTypes().filter(x => allFormats.indexOf(x) !== -1);\n if (availableFormats.length > 9) {\n availableFormats.splice(9, availableFormats.length - 9);\n }\n else if (availableFormats.length < 9) {\n var notUsedFormats = allFormats.filter(x => availableFormats.indexOf(x) === -1);\n availableFormats.push.apply(availableFormats, notUsedFormats.slice(0, 9 - availableFormats.length));\n }\n return availableFormats.map((item) => {\n item.action = (model) => { options.exportModel._exportDocumentByFormat(model && model.format); };\n return item;\n });\n })\n };\n var actions = [\n {\n clickAction: () => {\n options.searchModel.searchPanelVisible(true);\n options.searchModel.editorVisible(true);\n options.searchModel.focusEditor({ currentTarget: $.fn.constructor('.dxrdp-taptosearch') });\n options.reportPreview.actionsVisible(false);\n },\n imageClassName: 'dxrd-image-search',\n imageTemplateName: 'dxrd-svg-preview-search',\n visible: SearchAvailable\n },\n {\n clickAction: () => { exportToModel.visible(!exportToModel.visible()); },\n imageClassName: 'dxrd-image-export-to',\n imageTemplateName: 'dxrd-svg-preview-export-export-to',\n visible: true,\n content: {\n name: 'dxrd-menu-export-content',\n data: exportToModel,\n dispose: () => {\n exportToModel.items().forEach(item => {\n delete item.action;\n });\n exportToModel.items.dispose();\n }\n }\n },\n {\n clickAction: () => {\n options.parametersModel.popupInfo.visible(!options.parametersModel.popupInfo.visible());\n options.reportPreview.actionsVisible(false);\n },\n imageClassName: 'dxrd-image-parameters',\n imageTemplateName: 'dxrd-svg-tabs-parameters',\n visible: options.parametersModel.popupInfo.notEmpty\n }\n ];\n options.callbacks && options.callbacks.customizeActions && options.callbacks.customizeActions(actions);\n return new MobileActionList(actions);\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_previewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nexport class PreviewDisposableModel extends Disposable {\n constructor(options) {\n super();\n this.rootStyle = options.rootStyle;\n this.reportPreview = options.reportPreview;\n this.parametersModel = options.parametersModel;\n this.exportModel = options.exportModel;\n this.searchModel = options.searchModel;\n this.rtl = options.rtl;\n this._disposables.push(options.reportPreview);\n this._disposables.push(options.parametersModel);\n this._disposables.push(options.exportModel);\n this._disposables.push(options.searchModel);\n }\n _addDisposable(object) {\n this._disposables.push(object);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n GetParametersModel() {\n return this.parametersModel;\n }\n OpenReport(reportName) {\n this.reportPreview.openReport(reportName);\n }\n Print(pageIndex) {\n this.reportPreview.printDocument(pageIndex);\n }\n ExportTo(format, inlineResult) {\n if (!this.reportPreview.exportDisabled()) {\n this.reportPreview.exportDocumentTo(format || 'pdf', inlineResult);\n }\n }\n GetCurrentPageIndex() {\n return this.reportPreview.pageIndex();\n }\n GoToPage(pageIndex) {\n this.reportPreview.goToPage(pageIndex);\n }\n Close() {\n this.reportPreview.deactivate();\n }\n ResetParameters() {\n this.parametersModel && this.parametersModel.restore();\n }\n StartBuild() {\n this.parametersModel && this.parametersModel.submit();\n }\n PerformCustomDocumentOperation(customData, hideMessageFromUser) {\n return this.reportPreview.customDocumentOperation(customData, hideMessageFromUser);\n }\n}\nexport class PreviewModel extends PreviewDisposableModel {\n constructor(options) {\n super(options);\n this.documentMapModel = options.documentMapModel;\n this.tabPanel = options.tabPanel;\n this.actionLists = options.actionLists;\n this.accessibilityCompliant = options.accessibilityCompliant;\n this._disposables.push(options.documentMapModel);\n this._disposables.push(options.tabPanel);\n this._disposables.push(options.actionLists);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobilePreviewModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as ko from 'knockout';\nimport { PreviewDisposableModel } from '../../internal/_previewModel';\nexport class MobilePreviewModel extends PreviewDisposableModel {\n constructor(options) {\n super(options);\n this.slideOptions = options.slideOptions;\n this.gallery = options.gallery;\n this.paginator = options.paginator;\n this.brickEventsDisabled = options.brickEventsDisabled;\n this.availableFormats = options.availableFormats;\n this._disposables.push(options.gallery);\n if (ko.isComputed(options.brickEventsDisabled))\n this._disposables.push(options.brickEventsDisabled);\n if (options.slideOptions && ko.isComputed(options.slideOptions.scrollAvailable))\n this._disposables.push(options.slideOptions.scrollAvailable);\n if (options.slideOptions && ko.isComputed(options.slideOptions.swipeEnabled))\n this._disposables.push(options.slideOptions.swipeEnabled);\n this._disposables.push(options.paginator);\n this._disposables.push(options.searchModel);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_parametersPopup.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport { StringId, formatDate } from '@devexpress/analytics-core/analytics-internal';\nexport class ParametersPopupModelBase extends Disposable {\n constructor(formModel) {\n super();\n this.formModel = formModel;\n this._submit = (params) => {\n var result = params.validationGroup && params.validationGroup.validate && params.validationGroup.validate();\n if (!result || result.isValid) {\n this.formModel.submit && this.formModel.submit();\n this.visible(false);\n }\n };\n this._reset = () => {\n this.formModel.reset && this.formModel.reset();\n };\n this._cancel = () => {\n this.formModel.cancel && this.formModel.cancel();\n this.visible(false);\n };\n this.showIcons = ko.observable(false);\n this.className = '';\n this.visible = formModel.visible;\n this.cancelDisabled = ko.observable(false);\n this.actionButtons = [\n { className: 'dxrdp-parameters-reset', text: getLocalization('Reset', 'ASPxReportsStringId.ParametersPanel_Reset'), action: this._reset, disabled: false, visible: !!formModel.reset, id: 'dxrv-mobile-reset' },\n { className: 'dxrdp-parameters-cancel', text: getLocalization('Cancel', 'AnalyticsCoreStringId.SearchDialog_Cancel'), action: this._cancel, disabled: this.cancelDisabled, visible: true, id: 'dxrv-mobile-cancel' },\n { className: 'dxrdp-parameters-submit', text: getLocalization('Submit', 'ASPxReportsStringId.ParametersPanel_Submit'), action: this._submit, disabled: false, visible: true, id: 'dxrv-mobile-submit' }\n ];\n this.actionIcons = [\n { className: 'dxrdp-parameters-reset dxrdp-image-parameters-reset', action: this._reset, disabled: false, visible: !!formModel.reset },\n { className: 'dxrdp-parameters-cancel dxrdp-image-parameters-cancel', action: this._cancel, disabled: this.cancelDisabled, visible: true },\n { className: 'dxrdp-parameters-submit dxrdp-image-parameters-submit', action: this._submit, disabled: false, visible: true }\n ];\n }\n cacheElementContent(element) {\n this._parametersButtonContaner = element;\n this.initVisibilityIcons();\n }\n dispose() {\n super.dispose();\n this._parametersButtonContaner = null;\n }\n initVisibilityIcons() {\n if (!this._parametersButtonContaner)\n return;\n var result = this.showIcons();\n var nodeTop = this._parametersButtonContaner.offset().top;\n this._parametersButtonContaner.find('.dxrdp-parameter-action').each((_, el) => {\n result = nodeTop !== el.getBoundingClientRect().top;\n });\n this.showIcons(result);\n }\n}\nexport class ParametersPopupModel extends ParametersPopupModelBase {\n constructor(model, _reportPreview) {\n super({ visible: model.popupInfo.visible, submit: model.submit, reset: model.restore });\n this.model = model;\n this._reportPreview = _reportPreview;\n this._disposables.push(ko.computed(() => {\n this.cancelDisabled(!this._reportPreview._currentDocumentId() || this._reportPreview.pages().length === 0);\n }));\n this.contentTemplate = 'dxrv-preview-parameters-mobile-content';\n this.title = getLocalization('Parameters', 'DevExpress.XtraReports.UI.XtraReport.Parameters');\n }\n}\nexport class DateRangeParemeterPopupModel extends ParametersPopupModelBase {\n constructor(model) {\n super({\n visible: model._popupVisible, cancel: () => {\n this.model.startDate(this._oldStart);\n this.model.endDate(this._oldEnd);\n this.model.applyValue();\n }\n });\n this.model = model;\n this.getStringDate = (value) => formatDate(value);\n this.model.calendarHeight = undefined;\n var defaultButtonSettings = {\n stylingMode: 'contained',\n focusStateEnabled: false,\n activeStateEnabled: false\n };\n this.startButton = Object.assign({ text: ko.computed(() => this.model.startDate() && this.getStringDate(this.model.startDate()) || getLocalization('Start Date', 'AnalyticsCoreStringId.Mobile_DateRange_StartDate')), focused: ko.observable(false), onClick: () => {\n this.startButton.focused(true),\n this.endButton.focused(false);\n } }, defaultButtonSettings);\n this.endButton = Object.assign({ text: ko.computed(() => this.model.endDate() && this.getStringDate(this.model.endDate()) || getLocalization('End Date', 'AnalyticsCoreStringId.Mobile_DateRange_EndDate')), focused: ko.observable(true), onClick: () => {\n this.endButton.focused(true),\n this.startButton.focused(false);\n } }, defaultButtonSettings);\n this._disposables.push(this.endButton.text);\n this._disposables.push(this.startButton.text);\n var submitAction = this.actionButtons.filter(action => action.id == 'dxrv-mobile-submit')[0];\n if (submitAction)\n submitAction.text = getLocalization('OK', StringId.DataAccessBtnOK);\n this._disposables.push(this.textRangeValue = ko.computed({\n read: () => { return this.model._displayText(); },\n write: (val) => { this.model.applyDate(val.range(), true); }\n }));\n this._oldStart = this.model.startDate();\n this._oldEnd = this.model.endDate();\n this.title = getLocalization('Date Range Parameter', 'AnalyticsCoreStringId.Mobile_DateRange_Title');\n this.contentTemplate = 'dxrv-preview-date-range-mobile';\n this.className = 'dxrv-preview-date-range-mobile-popup';\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\constants.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport var MobilePreviewElements = {\n Surface: 'dxrdp-surface-mobile',\n Search: 'dxrdp-search-mobile',\n Pages: 'dxrdp-pages-mobile',\n MobileActions: 'dxrdp-surface-mobile-bottom',\n Parameters: 'dxrd-menu-parameters-content'\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_sizeUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ZoomAutoBy } from '../constants';\nimport { getSizeFactor, accessibilityFontSizeZoomFactor } from '@devexpress/analytics-core/analytics-internal';\nimport { TabPanel } from '@devexpress/analytics-core/analytics-utils';\nimport * as $ from 'jquery';\nexport function stringToPosition(position) {\n var lowerCased = (position || '').toLowerCase();\n if (!lowerCased || lowerCased === 'default') {\n return null;\n }\n var top = lowerCased.indexOf('top') !== -1;\n var right = lowerCased.indexOf('right') !== -1;\n return { top: top, bottom: !top, right: right, left: !right };\n}\nexport function getDockedElementCallback($targetElement, $viewer, $window, selector, position = null) {\n if (!selector)\n return $.noop;\n return (viewer) => {\n if ($viewer.length === 0)\n $viewer = $.fn.constructor(viewer);\n if ($targetElement.length === 0)\n $targetElement = $viewer.find(selector);\n if ($window.length === 0)\n $window = $.fn.constructor(window);\n if (!position || position.bottom) {\n var elementTop = parseInt($targetElement.css('bottom')) + $targetElement.height();\n var viewerTop = $viewer.offset().top;\n var viewerHeight = $viewer.height();\n var windowContentHeight = $window.height() + $window.scrollTop();\n var result = viewerTop + viewerHeight - windowContentHeight;\n if (result < viewerHeight - elementTop) {\n result = Math.max(0, result);\n var transform = 'translateY(-' + result * accessibilityFontSizeZoomFactor() + 'px)';\n $targetElement.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n }\n }\n else {\n var previewWrapper = $viewer.find('.dxrd-preview-wrapper')[0];\n var clientRect = previewWrapper && previewWrapper.getBoundingClientRect();\n if (!clientRect || clientRect.top < 0 && (clientRect.height + clientRect.top < $targetElement.outerHeight()))\n return;\n var translateY = clientRect.top < 0 ? -clientRect.top : 0;\n var transform = 'translateY(' + translateY * accessibilityFontSizeZoomFactor() + 'px)';\n $targetElement.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n }\n };\n}\nfunction _getRightAreaWidth($container) {\n var rightAreaWidth = ($container.find('.dxrd-right-panel:visible').outerWidth() || 0) + ($container.find('.dxrd-right-tabs:visible').outerWidth() || 0);\n return isNaN(rightAreaWidth) ? 0 : rightAreaWidth;\n}\nexport function updatePreviewContentSize(previewSize, root, rtl) {\n var _cashedSizeFactorClass = 'lg';\n return (tabPanelPosition) => {\n var $_root = $.fn.constructor(root);\n var $root = $_root.find('.dxrd-preview');\n var $viewPort = $.fn.constructor(root).children('.dx-designer-viewport');\n var sizeFactor = getSizeFactor($_root.outerWidth());\n if (!!$viewPort.length && _cashedSizeFactorClass !== sizeFactor) {\n $viewPort.removeClass('dx-designer-viewport-' + _cashedSizeFactorClass);\n $viewPort.addClass('dx-designer-viewport-' + sizeFactor);\n }\n _cashedSizeFactorClass = sizeFactor;\n var rightAreaWidth = _getRightAreaWidth($root);\n var surfaceWidth = ($root.width() - rightAreaWidth - 10) * accessibilityFontSizeZoomFactor();\n var cssStyleData = (tabPanelPosition === TabPanel.Position.Left) ? { 'right': '', 'left': rightAreaWidth } : { 'right': rightAreaWidth, 'left': '' };\n $root.find('.dxrd-preview-wrapper').css(cssStyleData);\n previewSize(surfaceWidth);\n };\n}\nexport function updatePreviewZoomWithAutoFit(width, height, $element, autoFitBy = ZoomAutoBy.WholePage) {\n var $previewWrapper = $element.closest('.dxrd-preview-wrapper');\n var $preview = $element.closest('.dxrd-preview');\n if ($previewWrapper.length === 0 || $preview.length === 0) {\n return 1;\n }\n var surfaceWidth = $preview.width() - _getRightAreaWidth($preview) - 10;\n var topAreaHeight = parseFloat($previewWrapper.css('top').split('px')[0]);\n var designerHeight = $preview.outerHeight();\n var surfaceHeight = designerHeight - topAreaHeight;\n if (autoFitBy === ZoomAutoBy.PageWidth) {\n return (surfaceWidth - 12) / width;\n }\n var heightZoom = surfaceHeight / (height + 6);\n var widthZoom = surfaceWidth / width;\n return Math.min(heightZoom, widthZoom);\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_progressBarUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { stringToPosition, getDockedElementCallback } from './_sizeUtils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport function getUpdateProgressBarCallback(progressBarSettings, designerModel, reportPreview, rootElement, $window = $.fn.constructor(window)) {\n var keepProgressBarVisible = !progressBarSettings || progressBarSettings.keepOnVisibleArea !== false;\n var position = stringToPosition(progressBarSettings && progressBarSettings.position);\n reportPreview.progressBar.setPosition(position);\n if (!keepProgressBarVisible)\n return $.noop;\n var $root = $.fn.constructor(rootElement);\n var $progress = $root.find('.dxrd-preview-progress');\n var updateProgressBarPosition = getDockedElementCallback($progress, $root, $window, '.dxrd-preview-progress', position);\n designerModel._addDisposable(reportPreview.progressBar.visible.subscribe((isVisible) => {\n isVisible && updateProgressBarPosition(rootElement);\n }));\n var wrappedUpdateProgressPosition = () => {\n if (reportPreview.progressBar && ko.unwrap(reportPreview.progressBar.visible))\n updateProgressBarPosition(rootElement);\n };\n window.addEventListener('scroll', wrappedUpdateProgressPosition);\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('scroll', wrappedUpdateProgressPosition);\n }\n });\n return wrappedUpdateProgressPosition;\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\utils\\_mobileInitializer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { MobileReportPreview } from '../mobilePreview';\nimport { MobileSearchViewModel } from '../internal/_mobileSearch';\nimport { GalleryModel } from '../internal/gallery/_galleryModel';\nimport { MobilePaginator } from '../internal/_paginator';\nimport { PreviewParametersViewModel } from '../../parameters/previewParametersViewModel';\nimport { PreviewRequestWrapper } from '../../internal/_previewRequestWrapper';\nimport { updatePreviewContentSizeMobile } from '../internal/_sizeUtils';\nimport { MobilePreviewParameterHelper } from '../internal/_mobilePreviewParameterHelper';\nimport { ExportOptionsModel } from '../../exportOptions/exportOptionsModel';\nimport { ExportFormatID, PreviewElements } from '../../constants';\nimport { getPreviewActionsMobile } from './_mobileActionList';\nimport { MobilePreviewModel } from '../internal/_mobilePreviewModel';\nimport { ParametersPopupModel } from '../internal/_parametersPopup';\nimport { MobilePreviewElements } from '../constants';\nimport { getUpdateProgressBarCallback } from '../../internal/_progressBarUtils';\nimport { getDockedElementCallback } from '../../internal/_sizeUtils';\nimport { appendStaticContextToRootViewModel, staticContext } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nexport function createMobilePreview(bindingSettings) {\n var callbacks = bindingSettings.callbacks;\n var bindingModel = bindingSettings.model;\n var bindingElement = bindingSettings.element;\n var previewWrapper = new PreviewRequestWrapper(null, callbacks), reportPreview = new MobileReportPreview(bindingModel.handlerUri, previewWrapper, undefined, callbacks, undefined, bindingModel.mobileModeSettings);\n var $root = $.fn.constructor(bindingElement);\n var updatePreviewContentSize_ = updatePreviewContentSizeMobile(reportPreview.previewWrapperSize, $root);\n updatePreviewContentSize_();\n var gallery = new GalleryModel(reportPreview, reportPreview.previewWrapperSize);\n var searchModel = new MobileSearchViewModel(reportPreview, gallery);\n var parametersModel = new PreviewParametersViewModel(reportPreview, new MobilePreviewParameterHelper(bindingModel.parametersInfo && bindingModel.parametersInfo.knownEnums, callbacks));\n var exportModel = new ExportOptionsModel(reportPreview);\n reportPreview.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent;\n previewWrapper.initialize(reportPreview, parametersModel, searchModel);\n var exportTypes = ko.observableArray([\n ExportFormatID.PDF, ExportFormatID.XLS, ExportFormatID.XLSX,\n ExportFormatID.RTF, ExportFormatID.DOCX, ExportFormatID.HTML,\n ExportFormatID.Text, ExportFormatID.CSV, ExportFormatID.Image\n ]);\n var mobileActions = getPreviewActionsMobile({ reportPreview, exportModel, parametersModel, searchModel, exportTypes, callbacks: callbacks });\n reportPreview.pageIndex.subscribe(function (newVal) { mobileActions.visible(false); });\n reportPreview.actionsVisible = mobileActions.visible;\n var designerModelOptions = {\n rootStyle: 'dxrd-preview dxrdp-mobile dxd-back-primary',\n reportPreview: reportPreview,\n parametersModel: parametersModel,\n exportModel: exportModel,\n searchModel: searchModel,\n rtl: reportPreview.rtlViewer,\n brickEventsDisabled: ko.observable(false),\n gallery: gallery,\n paginator: new MobilePaginator(reportPreview, gallery),\n availableFormats: exportTypes\n };\n var designerModel = new MobilePreviewModel(designerModelOptions);\n designerModel.slideOptions = {\n dispose: () => {\n var model = designerModel.slideOptions;\n if (ko.isComputed(model.swipeEnabled))\n model.swipeEnabled.dispose();\n if (ko.isComputed(model.scrollAvailable))\n model.scrollAvailable.dispose();\n },\n readerMode: reportPreview.readerMode,\n animationSettings: reportPreview.animationSettings,\n searchPanel: searchModel,\n topOffset: reportPreview.topOffset,\n previewWrapperSize: reportPreview.previewWrapperSize,\n reachedTop: reportPreview.scrollReachedTop,\n reachedLeft: reportPreview.scrollReachedLeft,\n reachedRight: reportPreview.scrollReachedRight,\n scrollAvailable: ko.computed(() => {\n return !(reportPreview.scrollReachedTop() && reportPreview.scrollReachedLeft()\n && reportPreview.scrollReachedRight() && reportPreview.scrollReachedBottom());\n }),\n disabled: reportPreview.interactionDisabled,\n swipeEnabled: ko.computed(() => {\n if (reportPreview.zoomUpdating()) {\n return false;\n }\n if (searchModel.height() > 0 && !searchModel.editorVisible()) {\n return false;\n }\n if (!reportPreview.scrollReachedLeft() && !reportPreview.scrollReachedRight()) {\n return false;\n }\n return true;\n }),\n autoFitBy: reportPreview.autoFitBy,\n galleryIsAnimated: gallery.isAnimated,\n repaintTimeout: gallery.repaintTimeout,\n zoomUpdating: reportPreview.zoomUpdating,\n brickEventsDisabled: designerModel.brickEventsDisabled\n };\n var parametersPopup = new ParametersPopupModel(parametersModel, reportPreview);\n designerModel.parts = [\n { id: MobilePreviewElements.Surface, templateName: MobilePreviewElements.Surface, model: designerModel.reportPreview },\n { id: MobilePreviewElements.Search, templateName: MobilePreviewElements.Search, model: designerModel.searchModel },\n { id: MobilePreviewElements.Pages, templateName: MobilePreviewElements.Pages, model: designerModel.paginator },\n { id: MobilePreviewElements.MobileActions, templateName: MobilePreviewElements.MobileActions, model: mobileActions },\n { id: MobilePreviewElements.Parameters, templateName: MobilePreviewElements.Parameters, model: parametersPopup },\n { id: PreviewElements.ExportTool, templateName: PreviewElements.ExportTool, model: designerModel.reportPreview.exportHandler }\n ];\n callbacks && callbacks.customizeParts && callbacks.customizeParts(designerModel.parts);\n var $actions = $root.find('.dxrdp-mobile-actions');\n var $window = $.fn.constructor(window);\n var updateProgressPosition = getUpdateProgressBarCallback(bindingModel.progressBarSettings, designerModel, reportPreview, bindingElement, $window);\n var updateMobilePreviewActionsPosition_ = getDockedElementCallback($actions, $root, $window, '.dxrdp-mobile-actions');\n var updateSizesCallback = () => {\n updatePreviewContentSize_ && updatePreviewContentSize_();\n updateProgressPosition && updateProgressPosition();\n };\n designerModel.updateSurfaceSize = updateSizesCallback;\n designerModel.resizeCallback = () => {\n if (parametersModel.popupInfo.visible()) {\n parametersPopup.initVisibilityIcons();\n }\n updateSizesCallback();\n if (reportPreview.actionsVisible())\n updateMobilePreviewActionsPosition_(bindingElement);\n };\n window.addEventListener('resize', designerModel.resizeCallback);\n var onScroll = () => {\n if (reportPreview.actionsVisible())\n updateMobilePreviewActionsPosition_(bindingElement);\n };\n window.addEventListener('scroll', onScroll);\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('resize', designerModel.resizeCallback);\n window.removeEventListener('scroll', onScroll);\n designerModel.slideOptions.dispose();\n mobileActions.dispose();\n }\n });\n designerModel._addDisposable(reportPreview.actionsVisible.subscribe((newValue) => {\n if (newValue)\n updateMobilePreviewActionsPosition_(bindingElement);\n }));\n appendStaticContextToRootViewModel(designerModel, staticContext);\n return designerModel;\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_sizeUtils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport function updatePreviewContentSizeMobile(previewWrapperSize, $root) {\n return () => {\n var height = $root.outerHeight();\n var width = $root.outerWidth();\n previewWrapperSize({ width, height });\n };\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\search\\_utils.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization } from '@devexpress/analytics-core/analytics-utils';\nexport var formatSearchResult = function (value) { return value && (getLocalization('page', 'ASPxReportsStringId.WebDocumentViewer_SearchPageNumberText') + ' ' + (value.pageIndex + 1)); };\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_actions.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ActionId, ZoomAutoBy } from '../constants';\nimport { EditablePreviewEnabled } from '../settings';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { ActionListsBase, parseZoom } from '@devexpress/analytics-core/analytics-internal';\nexport class PreviewDesignerActions extends Disposable {\n constructor(reportPreview, fullscreen) {\n super();\n this.actions = [];\n var designAction = {\n id: ActionId.Design,\n text: 'Design',\n displayText: () => getLocalization('Design', 'ASPxReportsStringId.ToolBarItemText_Design'),\n imageClassName: 'dxrd-image-design',\n imageTemplateName: 'dxrd-svg-preview-report_designer',\n templateName: reportPreview.canSwitchToDesigner ? 'dxrd-toolbar-two-way-switch' : undefined,\n disabled: ko.observable(false),\n visible: reportPreview.canSwitchToDesigner,\n hotKey: { ctrlKey: true, keyCode: 68 },\n clickAction: () => {\n reportPreview.previewVisible(false);\n reportPreview.deactivate();\n }\n };\n designAction.contentData = {\n items: [\n { itemData: designAction, active: false },\n { getDisplayText: () => getLocalization('Preview', 'ASPxReportsStringId.ToolBarItemText_Preview'), active: true }\n ]\n };\n this.actions.push(designAction);\n this.actions.push({\n id: ActionId.FullScreen,\n text: getLocalization('Full Screen', 'ASPxReportsStringId.ToolBarItemText_FullScreen'),\n imageClassName: 'dxrd-image-fullscreen',\n imageTemplateName: () => fullscreen() ? 'dxrd-svg-toolbar-fullscreen-exit' : 'dxrd-svg-toolbar-fullscreen',\n disabled: ko.observable(false),\n visible: !reportPreview.canSwitchToDesigner,\n selected: fullscreen,\n clickAction: () => {\n fullscreen(!fullscreen());\n }\n });\n this._disposables.push(fullscreen);\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n getActions(context) {\n return this.actions;\n }\n}\nexport class ActionLists extends ActionListsBase {\n constructor(reportPreview, globalActionProviders, customizeActions, enabled) {\n super(enabled);\n this._reportPreview = reportPreview;\n this.globalActionProviders = globalActionProviders;\n this.toolbarItems = ko.computed(() => {\n var globalActions = [];\n globalActionProviders().forEach((actionProvider) => {\n globalActions.push.apply(globalActions, actionProvider.getActions(reportPreview));\n });\n customizeActions && customizeActions(globalActions);\n return globalActions;\n });\n this._disposables.push(this.toolbarItems);\n }\n processShortcut(actions, e) {\n if (this.shouldIgnoreProcessing(e))\n return;\n super.processShortcut(actions, e);\n }\n dispose() {\n super.dispose();\n this.resetObservableArray(this.globalActionProviders);\n this.removeProperties();\n }\n}\nexport class PreviewActions extends Disposable {\n constructor(reportPreview) {\n super();\n this.actions = [];\n var printDisabled = reportPreview.exportDisabled;\n this.actions.push({\n id: ActionId.FirstPage,\n text: getLocalization('First Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_FirstPage'),\n imageClassName: 'dxrd-image-preview-first',\n imageTemplateName: 'dxrd-svg-preview-first_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 37 },\n clickAction: () => {\n if (reportPreview.pageIndex() > 0) {\n reportPreview.goToPage(0);\n }\n }\n });\n this.actions.push({\n id: ActionId.PrevPage,\n text: getLocalization('Previous Page', 'ASPxReportsStringId.ToolBarItemText_PreviousPage'),\n imageClassName: 'dxrd-image-preview-prev',\n imageTemplateName: 'dxrd-svg-preview-previous_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: false, keyCode: 37 },\n clickAction: () => {\n if (reportPreview.pageIndex() >= 1) {\n reportPreview.goToPage(reportPreview.pageIndex() - 1, false, 500);\n }\n },\n });\n var paginationSelectBoxViewModel = {\n id: ActionId.Pagination,\n text: 'Pagination',\n imageClassName: 'dxrd-image-pager',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pages().length === 0 || reportPreview.pageIndex() === -1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n clickAction: $.noop,\n selectedItem: this.wrapDisposable(ko.pureComputed({\n read: () => {\n if (reportPreview.pageIndex() < 0) {\n return null;\n }\n var items = paginationSelectBoxViewModel.pageItems();\n return items && items.store && (items.store.length > reportPreview.pageIndex()) && items.store[reportPreview.pageIndex()];\n },\n write: (newValue) => {\n if (!!newValue && (newValue.index || newValue.index === 0)) {\n reportPreview.goToPage(newValue.index);\n }\n },\n deferEvaluation: true\n })),\n pageItems: this.wrapDisposable(ko.pureComputed(() => {\n var pageCount = reportPreview.pages().length;\n if (pageCount === 0 || reportPreview.pageIndex.peek() === -1) {\n return [];\n }\n var pagesArray = new Array();\n for (var i = 0; i < pageCount;) {\n pagesArray.push({ index: i, text: ++i });\n }\n return {\n store: pagesArray,\n paginate: pageCount > 200,\n pageSize: 100\n };\n })),\n currentPage: reportPreview._currentPageText,\n focusOut: (e) => {\n if (!paginationSelectBoxViewModel._isPageChanged(e.component.option('text'))) {\n reportPreview._currentPageText.notifySubscribers(reportPreview._currentPageText());\n }\n },\n keyUp: (e) => {\n if (e.event.which !== 13)\n return;\n if (paginationSelectBoxViewModel._isPageChanged(e.component.option('text'))) {\n paginationSelectBoxViewModel.opened(false);\n }\n },\n _isPageChanged: (value) => {\n var val = parseInt && parseInt(value);\n if (!!val && val-- > 0 && val < reportPreview.pages().length) {\n reportPreview.goToPage(val);\n return true;\n }\n return false;\n },\n displayExpr: function (value) {\n var pageIndex = reportPreview.pageIndex.peek();\n if (pageIndex === -1 || !value || pageIndex === value.index) {\n return reportPreview._currentPageText.peek();\n }\n else {\n return value.text;\n }\n },\n itemTemplate: function (value) { return value.text; },\n searchMode: 'startswith',\n searchEnabled: ko.observable(true),\n searchTimeout: 10,\n opened: ko.observable(false),\n templateName: 'dxrd-preview-pager'\n };\n this.actions.push(paginationSelectBoxViewModel);\n this.actions.push({\n id: ActionId.NextPage,\n text: getLocalization('Next Page', 'ASPxReportsStringId.ToolBarItemText_NextPage'),\n imageClassName: 'dxrd-image-preview-next',\n imageTemplateName: 'dxrd-svg-preview-next_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 0 || reportPreview.pageIndex() >= reportPreview.pages().length - 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: false, keyCode: 39 },\n clickAction: () => {\n if (reportPreview.pageIndex() < reportPreview.pages().length - 1) {\n reportPreview.goToPage(reportPreview.pageIndex() + 1, false, 500);\n }\n }\n });\n this.actions.push({\n id: ActionId.LastPage,\n text: getLocalization('Last Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_LastPage'),\n imageClassName: 'dxrd-image-preview-last',\n imageTemplateName: 'dxrd-svg-preview-last_page',\n disabled: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.pageIndex() < 0 || reportPreview.pageIndex() >= reportPreview.pages().length - 1; })),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 39 },\n clickAction: () => {\n if (reportPreview.pageIndex() < reportPreview.pages().length - 1) {\n reportPreview.goToPage(reportPreview.pages().length - 1);\n }\n }\n });\n this.actions.push({\n id: ActionId.MultipageToggle,\n text: getLocalization('Toggle Multipage Mode', 'ASPxReportsStringId.WebDocumentViewer_ToggleMultipageMode'),\n imageClassName: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.showMultipagePreview() ? 'dxrd-image-preview-single-page' : 'dxrd-image-preview-multipage'; })),\n imageTemplateName: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.showMultipagePreview() ? 'dxrd-svg-preview-single_page' : 'dxrd-svg-preview-multi_page_preview'; })),\n disabled: ko.observable(false),\n visible: this.wrapDisposable(ko.pureComputed(() => { return reportPreview.previewVisible(); })),\n hotKey: { ctrlKey: true, keyCode: 77 },\n clickAction: () => {\n var zoom = reportPreview._zoom();\n reportPreview.showMultipagePreview(!reportPreview.showMultipagePreview());\n reportPreview.zoom(zoom);\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.ZoomOut,\n text: getLocalization('Zoom Out', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomOut'),\n imageClassName: 'dxrd-image-zoomout',\n imageTemplateName: 'dxrd-svg-toolbar-zoomout',\n disabled: ko.observable(false),\n visible: true,\n zoomStep: reportPreview.zoomStep,\n hotKey: { ctrlKey: false, keyCode: 109 },\n clickAction: () => {\n var currentZoom = reportPreview.zoom();\n var zoomLevel = currentZoom > 0 ? currentZoom : reportPreview._zoom();\n reportPreview.zoom(Math.max(zoomLevel - reportPreview.zoomStep(), 0.1));\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.ZoomSelector,\n text: getLocalization('Zoom to Whole Page', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomToWholePage'),\n imageClassName: 'dxrd-image-zoom',\n disabled: ko.observable(false),\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 187 },\n clickAction: () => {\n reportPreview.zoom(0);\n },\n templateName: 'dxrd-zoom-autofit-select-template',\n displayExpr: (val) => {\n if (val === ZoomAutoBy.PageWidth) {\n return getLocalization('Page Width', 'DevExpress.XtraReports.UI.XtraReport.PageWidth');\n }\n else if (Math.round(val * 100) === 0) {\n return getLocalization('Whole Page', 'PreviewStringId.MenuItem_ZoomWholePage');\n }\n else {\n return Math.round((val || reportPreview.zoom.peek()) * 100) + '%';\n }\n },\n onCustomItemCreating: (e) => { e.customItem = parseZoom(e.text); },\n zoom: reportPreview.zoom,\n zoomLevels: reportPreview.predefinedZoomLevels,\n zoomItems: this.wrapDisposable(ko.pureComputed(() => {\n var items = reportPreview.predefinedZoomLevels.slice(0);\n if (reportPreview.showMultipagePreview() === false && items.indexOf(0) === -1) {\n items.push(ZoomAutoBy.PageWidth);\n items.push(ZoomAutoBy.WholePage);\n }\n return items;\n }))\n });\n this.actions.push({\n id: ActionId.ZoomIn,\n text: getLocalization('Zoom In', 'DevExpress.XtraPrinting.PrintingSystemCommand.ZoomIn'),\n imageClassName: 'dxrd-image-zoomin',\n imageTemplateName: 'dxrd-svg-toolbar-zoomin',\n disabled: ko.observable(false),\n visible: true,\n zoomStep: reportPreview.zoomStep,\n hotKey: { ctrlKey: false, keyCode: 107 },\n clickAction: () => {\n var currentZoom = reportPreview.zoom();\n var zoomLevel = currentZoom > 0 ? currentZoom : reportPreview._zoom();\n reportPreview.zoom(Math.min(zoomLevel + reportPreview.zoomStep(), 10));\n }\n });\n this.actions.push({\n id: ActionId.HighlightEditingFields,\n text: getLocalization('Highlight Editing Fields', 'DevExpress.XtraPrinting.PrintingSystemCommand.HighlightEditingFields'),\n imageClassName: 'dxrp-image-hightlight-editing-fields',\n imageTemplateName: 'dxrd-svg-toolbar-hightlightEditingFields',\n disabled: this.wrapDisposable(ko.pureComputed(() => reportPreview.editingFieldsProvider().length < 1)),\n visible: this.wrapDisposable(ko.pureComputed(() => {\n var available = EditablePreviewEnabled();\n var viewerVisible = reportPreview.previewVisible();\n return available && viewerVisible;\n })),\n selected: this.wrapDisposable(ko.pureComputed(() => reportPreview.editingFieldsHighlighted())),\n hotKey: { ctrlKey: true, keyCode: 72 },\n clickAction: () => {\n reportPreview.editingFieldsHighlighted(!reportPreview.editingFieldsHighlighted());\n },\n hasSeparator: true\n });\n this.actions.push({\n id: ActionId.Print,\n text: getLocalization('Print', 'ASPxReportsStringId.DocumentViewer_RibbonPrintGroupText'),\n imageClassName: 'dxrd-image-print',\n imageTemplateName: 'dxrd-svg-preview-print',\n hasSeparator: true,\n disabled: printDisabled,\n visible: true,\n hotKey: { ctrlKey: true, keyCode: 80 },\n clickAction: () => {\n if (printDisabled()) {\n return;\n }\n reportPreview.printDocument();\n }\n });\n this.actions.push({\n id: ActionId.PrintPage,\n text: getLocalization('Print Page', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_PrintPage'),\n imageClassName: 'dxrd-image-print-page',\n imageTemplateName: 'dxrd-svg-preview-print_page',\n disabled: printDisabled,\n visible: true,\n clickAction: () => {\n if (printDisabled()) {\n return;\n }\n reportPreview.printDocument(reportPreview.pageIndex());\n }\n });\n }\n wrapDisposable(object) {\n this._disposables.push(object);\n return object;\n }\n dispose() {\n super.dispose();\n this.removeProperties();\n }\n getActions(context) {\n return this.actions;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_initializer.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { appendStaticContextToRootViewModel, initGlobalize, processErrorEvent, RequestHelper, resolveFromPromises, staticContext, ToolbarKeyboardHelper, troubleshootingPageWrapper } from '@devexpress/analytics-core/analytics-internal';\nimport { addCultureInfo, ajaxSetup, requestManager, TabPanel, fetchSetup, _isFetchConfigured } from '@devexpress/analytics-core/analytics-utils';\nimport config from 'devextreme/core/config';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { createFullscreenComputed, cultureInfo, processZoomFactor } from '../../common/utils/_utils';\nimport { PreviewElements } from '../constants';\nimport { DocumentMapModel } from '../documentMap/_documentMapModel';\nimport { ExportOptionsModel } from '../exportOptions/exportOptionsModel';\nimport { createMobilePreview } from '../mobile/utils/_mobileInitializer';\nimport { PreviewParameterHelper } from '../parameters/previewParameterHelper';\nimport { PreviewParametersViewModel } from '../parameters/previewParametersViewModel';\nimport { ReportPreview } from '../reportPreview';\nimport { SearchViewModel } from '../search/_searchViewModel';\nimport { formatSearchResult } from '../search/_utils';\nimport { AsyncExportApproach, EditablePreviewEnabled, ReportServerDownloadUri, ReportServerExportUri, ReportServerInvokeUri, SearchAvailable } from '../settings';\nimport { ActionLists, PreviewActions, PreviewDesignerActions } from './_actions';\nimport { PreviewModel } from './_previewModel';\nimport { PreviewRequestWrapper } from './_previewRequestWrapper';\nimport { getUpdateProgressBarCallback } from './_progressBarUtils';\nimport { updatePreviewContentSize } from './_sizeUtils';\nexport function createDesktopPreview(bindingSettings) {\n processZoomFactor(bindingSettings.model.accessibilityCompliant);\n var enableKeyboardSupport = !!bindingSettings.model.accessibilityCompliant;\n var callbacks = bindingSettings.callbacks;\n var bindingModel = bindingSettings.model;\n var bindingElement = bindingSettings.element;\n var previewWrapper = new PreviewRequestWrapper(null, callbacks), reportPreview = new ReportPreview(bindingModel.handlerUri, previewWrapper, undefined, callbacks, bindingModel.rtl, enableKeyboardSupport, bindingModel.exportSettings, bindingSettings.element), searchModel = new SearchViewModel(reportPreview, bindingModel === null || bindingModel === void 0 ? void 0 : bindingModel.searchSettings, enableKeyboardSupport);\n var documentMapModel = new DocumentMapModel(reportPreview);\n var parametersModel = new PreviewParametersViewModel(reportPreview, new PreviewParameterHelper(bindingModel.parametersInfo && bindingModel.parametersInfo.knownEnums, bindingSettings.callbacks), enableKeyboardSupport);\n var exportModel = new ExportOptionsModel(reportPreview, enableKeyboardSupport);\n reportPreview.canSwitchToDesigner = !bindingModel.previewVisible;\n reportPreview.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent;\n previewWrapper.initialize(reportPreview, parametersModel, searchModel);\n var tabPanel = new TabPanel({\n tabs: [\n parametersModel.tabInfo,\n exportModel.tabInfo,\n searchModel.tabInfo,\n documentMapModel.tabInfo\n ],\n width: 396,\n autoSelectTab: true,\n rtl: bindingModel.rtl\n });\n tabPanel.collapsed(true);\n var fullscreenEnabled = createFullscreenComputed(bindingElement, reportPreview);\n var previewActions = new PreviewActions(reportPreview);\n var designPreviewActions = new PreviewDesignerActions(reportPreview, fullscreenEnabled);\n var globalActionProviders = ko.observableArray([previewActions, exportModel, searchModel, designPreviewActions]);\n var actionLists = new ActionLists(reportPreview, globalActionProviders, callbacks && callbacks.customizeActions, reportPreview.previewVisible);\n reportPreview.previewVisible(bindingModel.previewVisible);\n var designerModelOptions = {\n rootStyle: 'dxrd-preview dxd-back-primary-invariant' + (reportPreview.canSwitchToDesigner ? ' dxrd-designer-preview' : ''),\n reportPreview: reportPreview,\n parametersModel: parametersModel,\n exportModel: exportModel,\n searchModel: searchModel,\n documentMapModel: documentMapModel,\n tabPanel: tabPanel,\n actionLists: actionLists,\n rtl: reportPreview.rtlViewer,\n accessibilityCompliant: bindingModel.accessibilityCompliant\n };\n var designerModel = new PreviewModel(designerModelOptions);\n designerModel._addDisposable(previewActions);\n designerModel._addDisposable(designPreviewActions);\n designerModel.parts = [\n { id: PreviewElements.Toolbar, templateName: PreviewElements.Toolbar, model: { actionLists: actionLists, keyboardHelper: new ToolbarKeyboardHelper(actionLists.toolbarItems), canSwitchToDesigner: reportPreview.canSwitchToDesigner } },\n { id: PreviewElements.Surface, templateName: PreviewElements.Surface, model: designerModel.reportPreview },\n { id: PreviewElements.RightPanel, templateName: PreviewElements.RightPanel, model: designerModel },\n { id: PreviewElements.ExportTool, templateName: PreviewElements.ExportTool, model: designerModel.reportPreview.exportHandler }\n ];\n callbacks && callbacks.customizeParts && callbacks.customizeParts(designerModel.parts);\n var $window = $.fn.constructor(window);\n var timers = [];\n var updateProgressPosition = getUpdateProgressBarCallback(bindingModel.progressBarSettings, designerModel, reportPreview, bindingElement, $window);\n var updatePreviewContentSize_ = updatePreviewContentSize(reportPreview.previewSize, bindingElement, bindingModel.rtl);\n if (bindingModel.tabPanelSettings) {\n bindingModel.tabPanelSettings.width && tabPanel.width(parseInt(bindingModel.tabPanelSettings.width));\n bindingModel.tabPanelSettings.position && tabPanel.position(bindingModel.tabPanelSettings.position);\n }\n var updateSizesCallback = () => {\n updatePreviewContentSize_ && updatePreviewContentSize_(tabPanel.position());\n updateProgressPosition && updateProgressPosition();\n };\n designerModel.updateSurfaceSize = updateSizesCallback;\n designerModel.resizeCallback = updateSizesCallback;\n window.addEventListener('resize', designerModel.resizeCallback);\n designerModel._addDisposable(fullscreenEnabled);\n designerModel._addDisposable(fullscreenEnabled.subscribe(designerModel.resizeCallback));\n designerModel._addDisposable(tabPanel.width.subscribe(() => {\n timers.push(setTimeout(() => updatePreviewContentSize_(tabPanel.position()), 1));\n }));\n designerModel._addDisposable(tabPanel.position.subscribe((newVal) => {\n updatePreviewContentSize_(newVal);\n }));\n designerModel._addDisposable(tabPanel.isEmpty.subscribe(() => {\n timers.push(setTimeout(() => {\n updatePreviewContentSize_(tabPanel.position());\n }, 1));\n }));\n updateSizesCallback();\n designerModel._addDisposable({\n dispose: () => {\n window.removeEventListener('resize', designerModel.resizeCallback);\n designerModel.updateSurfaceSize = null;\n designerModel.resizeCallback = null;\n timers.forEach(x => clearTimeout(x));\n updatePreviewContentSize_ = null;\n updateProgressPosition = null;\n }\n });\n appendStaticContextToRootViewModel(designerModel, {\n _static: Object.assign(Object.assign({}, staticContext._static), { formatSearchResult: formatSearchResult })\n }, 'dx-report-viewer');\n return designerModel;\n}\nfunction _createPreview(bindingSettings) {\n var _a;\n var bindingModel = bindingSettings.model;\n bindingModel.previewVisible = bindingModel.previewVisible !== undefined ? bindingModel.previewVisible : true;\n bindingModel.allowURLsWithJSContent = bindingModel.allowURLsWithJSContent !== undefined ? bindingModel.allowURLsWithJSContent : false;\n bindingModel.accessibilityCompliant = bindingModel.accessibilityCompliant !== undefined ? bindingModel.accessibilityCompliant : false;\n bindingSettings.applyBindings = bindingSettings.applyBindings !== undefined ? bindingSettings.applyBindings : true;\n const disposableCallback = bindingSettings.callbacks && bindingSettings.callbacks.onServerError && processErrorEvent(bindingSettings.callbacks.onServerError);\n config({ rtlEnabled: !!bindingModel.rtl });\n if (bindingModel.remoteSettings && (bindingModel.remoteSettings.authToken || bindingModel.remoteSettings.serverUri)) {\n AsyncExportApproach(true);\n bindingModel.handlerUri = RequestHelper.generateUri(bindingModel.remoteSettings.serverUri, ReportServerInvokeUri);\n SearchAvailable(false);\n EditablePreviewEnabled(false);\n ReportServerDownloadUri(RequestHelper.generateUri(bindingModel.remoteSettings.serverUri, ReportServerExportUri));\n if (bindingModel.remoteSettings.authToken) {\n const headers = {\n 'Authorization': `Bearer ${bindingModel.remoteSettings.authToken}`\n };\n const requestManagerSetup = {\n ajaxSetup,\n fetchSetup\n };\n const requestManagerInstance = requestManager.getInstance(requestManagerSetup);\n if (_isFetchConfigured()) {\n requestManagerInstance['fetchSettings'].headers = Object.assign(Object.assign({}, requestManagerInstance['fetchSettings'].headers), headers);\n }\n else {\n requestManagerInstance['ajaxSettings'].headers = Object.assign(Object.assign({}, requestManagerInstance['ajaxSettings'].headers), headers);\n }\n }\n }\n var designerModel;\n if (bindingModel.isMobile) {\n designerModel = createMobilePreview(bindingSettings);\n }\n else {\n designerModel = createDesktopPreview(bindingSettings);\n }\n if (bindingSettings.element && bindingSettings.applyBindings && !designerModel.reportPreview.canSwitchToDesigner) {\n ((_a = bindingSettings.callbacks) === null || _a === void 0 ? void 0 : _a.beforeRender) && bindingSettings.callbacks.beforeRender(designerModel);\n $.fn.constructor(bindingSettings.element).children().remove();\n ko.applyBindings(designerModel, bindingSettings.element);\n }\n if (disposableCallback) {\n designerModel._addDisposable(disposableCallback);\n }\n return designerModel;\n}\nexport function createPreview(bindingSettings) {\n if (bindingSettings.model && bindingSettings.model.localization) {\n addCultureInfo({\n messages: bindingSettings.model.localization\n });\n }\n var localizationCallbacks = [];\n bindingSettings.callbacks && bindingSettings.callbacks.customizeLocalization && bindingSettings.callbacks.customizeLocalization(localizationCallbacks);\n return resolveFromPromises(localizationCallbacks, () => {\n return troubleshootingPageWrapper(() => {\n return _createPreview(bindingSettings);\n }, bindingSettings.model.developmentMode, bindingSettings.element);\n });\n}\nexport function createPreviewModel(viewerModel, element, callbacks, applyBindings) {\n initGlobalize(viewerModel);\n return createPreview({ model: viewerModel, element: element, callbacks: callbacks, applyBindings: applyBindings }).done(() => {\n $.extend(true, cultureInfo, viewerModel.cultureInfoList);\n });\n}\nexport function initPreviewModel(previewModel, viewerModel) {\n if (viewerModel.reportId || viewerModel.documentId) {\n previewModel.reportPreview.initialize($.Deferred().resolve(viewerModel).promise());\n }\n else {\n var unwrappedUrl = ko.unwrap(viewerModel.reportUrl);\n if (unwrappedUrl) {\n previewModel.OpenReport(unwrappedUrl);\n }\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\binding\\jsReportViewerBinding.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { DxAnalyticsComponentCommon, JSDesignerBindingCommon, _wrapModelInObservable, troubleshootingPageWrapper } from '@devexpress/analytics-core/analytics-internal';\nimport { addCultureInfo } from '@devexpress/analytics-core/analytics-utils';\nimport { registerBaseBinding } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { EventGenerator } from '../../common/binding/eventGenerator';\nimport { createPreviewModel, initPreviewModel } from '../internal/_initializer';\nimport { JSReportViewer } from './jsReportViewer';\nexport class JSReportViewerBinding extends JSDesignerBindingCommon {\n constructor(_options, customEventRaiser) {\n super(_options, customEventRaiser);\n this._deferreds = [];\n _options.viewerModel = _wrapModelInObservable(_options.viewerModel);\n this.sender = new JSReportViewer(_options.viewerModel);\n this._closeReportOnDisposing = !_options.keepReportOnComponentDisposal;\n _options.callbacks && _options.callbacks._eventSenderCreated && _options.callbacks._eventSenderCreated(this.sender);\n this._callbacks = this._initializeCallbacks();\n this._callbacks && this._callbacks.onInitializing && this._callbacks.onInitializing();\n }\n dispose() {\n if (this._closeReportOnDisposing && this.sender && this.sender.Close)\n this.sender.Close();\n (this._deferreds || []).forEach((deferred) => {\n deferred.reject();\n });\n super.dispose();\n }\n _initializeCallbacks() {\n if (this._options.callbacks) {\n var previewEvents = EventGenerator.generatePreviewEvents((eventName, args) => {\n this._fireEvent(eventName, args);\n });\n this._checkCallbackName(previewEvents);\n var availablePreviewEvents = this._generateCallbackDictionary(previewEvents);\n return availablePreviewEvents;\n }\n }\n _applyBindings(model, _$element, shouldInitPreviewModel) {\n troubleshootingPageWrapper(() => {\n if (shouldInitPreviewModel) {\n this._callbacks && this._callbacks.beforeRender && this._callbacks.beforeRender(model);\n initPreviewModel(model, this._options);\n }\n this._disposables.push(model);\n _$element.children().remove();\n var child = _$element.append(this._templateHtml).children()[0];\n if (!child)\n return;\n ko.cleanNode(child);\n ko.applyBindings(model, child);\n this._fireEvent('Init');\n }, this.developmentMode, _$element);\n }\n _createModel(element) {\n return createPreviewModel(this._options, element, this._callbacks, false);\n }\n applyBindings(element) {\n var _$element = $.fn.constructor(element);\n _$element.addClass('dx-designer');\n if (this._options.reportPreview && this._options.parts) {\n this._applyBindings(this._options, _$element);\n return;\n }\n var requestOptions = this._options.requestOptions;\n var applyModel = () => {\n if (requestOptions && requestOptions.invokeAction) {\n this._options.handlerUri = this._getServerActionUrl(requestOptions.host, requestOptions.invokeAction);\n }\n this._deferreds.push(this._createModel(element)\n .done((previewModel) => {\n this.sender.previewModel = previewModel;\n if (this._options.reportUrl) {\n if (ko.isSubscribable(this._options.reportUrl)) {\n this._disposables.push(this._options.reportUrl.subscribe((newVal) => {\n this.sender.OpenReport(newVal);\n }));\n }\n }\n this._createDisposeFunction(element);\n this._applyBindings(this.sender.previewModel, _$element, true);\n }));\n };\n if (requestOptions) {\n this._getLocalizationRequest().done((localization) => {\n localization && addCultureInfo(localization);\n }).always(() => {\n applyModel();\n });\n }\n else {\n applyModel();\n }\n }\n}\nconst dxReportViewerBindingName = 'dxReportViewer';\nexport class DxReportViewer extends DxAnalyticsComponentCommon {\n getBindingName() {\n return dxReportViewerBindingName;\n }\n}\nregisterBaseBinding(dxReportViewerBindingName, '$data');\nko.bindingHandlers[dxReportViewerBindingName] = {\n init: function (element, valueAccessor) {\n new JSReportViewerBinding(ko.unwrap(valueAccessor()) || {}).applyBindings(element);\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\accessibility\\_dateRangeKeyboardHelper.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { AccessibilityKeyboardHelperBase, ControlElementWithParentHighlight, ListKeyboardHelper } from '@devexpress/analytics-core/analytics-internal';\nexport class DateRangeDialogElementsKeyboardHelper extends AccessibilityKeyboardHelperBase {\n constructor(_hide, _visible) {\n super();\n this._hide = _hide;\n this._visible = _visible;\n this.controlElementClassName = 'dx-accessibility-daterange-item';\n this.predefinedDateRangesKeyboardHelper = new PredefinedDateRangesKeyboardHelper(this);\n this._disposables.push(this.predefinedDateRangesKeyboardHelper, this._visible.subscribe(newVal => {\n var timeout = setTimeout(() => { newVal && this.predefinedDateRangesKeyboardHelper.focus(); }, 300);\n this._disposables.push({ dispose: () => clearTimeout(timeout) });\n }));\n }\n createControlElement(element, index) {\n return new ControlElementWithParentHighlight(element, this.getContainer().getElementsByClassName('dxrv-daterange-editor-item')[index]);\n }\n itemHandleEscKey(e, index) {\n this._hide();\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n if (!!(e && e.altKey)) {\n this._hide();\n return true;\n }\n return super.itemHandleUpArrowKey(e, index);\n }\n itemHandleTabKey(e, index) {\n var nextIndex = this.setFocusToNext(index);\n if (nextIndex == 0) {\n this.predefinedDateRangesKeyboardHelper.focus();\n }\n return true;\n }\n itemHandleShiftTabKey(e, index) {\n var nextIndex = this.setFocusToPrevious(index);\n if (nextIndex == 0) {\n this.predefinedDateRangesKeyboardHelper.focus();\n }\n return true;\n }\n}\nexport class PredefinedDateRangesKeyboardHelper extends ListKeyboardHelper {\n constructor(owner) {\n super();\n this.owner = owner;\n }\n itemHandleEscKey(e, index) {\n this.owner.itemHandleEscKey.call(this.owner, e, 0);\n return true;\n }\n itemHandleTabKey(e, index) {\n this.owner.setFocusToNext(0);\n return true;\n }\n itemHandleShiftTabKey(e, index) {\n this.owner.setFocusToPrevious(0);\n return true;\n }\n itemHandleUpArrowKey(e, index) {\n if (!!(e && e.altKey)) {\n return this.owner.itemHandleUpArrowKey.call(this.owner, e);\n }\n return super.itemHandleUpArrowKey(e, index);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (dx-reporting-svg-bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_column_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_column_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_data_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_data_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_filter_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_filter_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_field_to_row_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_field_to_row_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_group\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_group'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_parameter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_parameter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-add_separator\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-add_separator'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_bottoms\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_bottoms'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_centers\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_centers'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_lefts\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_lefts'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_middles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_middles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_rights\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_rights'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_tops\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_tops'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-align_to_grid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-align_to_grid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-apply_localization_service\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-apply_localization_service'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-bottom_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-bottom_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-bring_to_front\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-bring_to_front'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-center_horizontally\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-center_horizontally'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-center_vertically\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-center_vertically'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-convert\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-convert'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-convertation\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-convertation'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-decrease_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-decrease_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-decrease_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-decrease_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_cell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_cell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_column\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_column'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-delete_row\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-delete_row'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-detail_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-detail_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-distribute_columns_evenly\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-distribute_columns_evenly'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-distribute_rows_evenly\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-distribute_rows_evenly'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_bounds_to_text\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_bounds_to_text'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_text_to_bounds\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_text_to_bounds'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-fit_to_container\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-fit_to_container'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-group_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-group_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-group_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-group_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-increase_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-increase_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-increase_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-increase_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_cell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_cell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_column_to_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_column_to_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_column_to_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_column_to_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_row_above\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_row_above'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-insert_row_below\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-insert_row_below'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_horizontal_spacing_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_horizontal_spacing_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_height\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_height'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_sizes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_sizes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_same_width\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_same_width'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-make_vertical_spacing_equal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-make_vertical_spacing_equal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-page_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-page_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-page_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-page_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-remove_horizontal_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-remove_horizontal_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-remove_vertical_spacing\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-remove_vertical_spacing'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-report_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-report_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-report_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-report_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-reset\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-reset'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-send_to_back\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-send_to_back'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-size_to_grid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-size_to_grid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-subband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-subband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-top_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-top_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-ungroup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-ungroup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-actions-vertical_total\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-actions-vertical_total'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-bottom_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-bottom_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-detail_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-detail_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-group_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-group_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-group_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-group_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-page_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-page_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-page_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-page_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-report_footer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-report_footer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-report_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-report_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-sub_band\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-sub_band'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-top_margin\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-top_margin'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_detail\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_detail'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_header\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_header'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-bands-vertical_total\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-bands-vertical_total'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axisx\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axisx'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-axisy\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-axisy'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-constantline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-constantline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-constantlines\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-constantlines'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-defaultpane\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-defaultpane'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-diagram\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-diagram'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-legend\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-legend'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-panes\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-panes'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-series\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-series'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-seriescollection\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-seriescollection'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-title\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-title'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-chartstructure-titles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-chartstructure-titles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Heart_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Heart_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Heart_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Heart_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-RadioButton_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-RadioButton_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-RadioButton_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-RadioButton_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Smiley_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Smiley_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Star_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Star_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Star_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Star_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Thumb_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Thumb_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Thumb_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Thumb_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Toggle_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Toggle_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-Toggle_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-Toggle_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoBox_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoBox_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNo_Checked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNo_Checked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-checkboxglyphs-YesNo_Unchecked\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-checkboxglyphs-YesNo_Unchecked'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-color_gear\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-color_gear'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-collectErrors\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-collectErrors'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-error\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-error'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-information\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-information'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-notification\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-notification'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-notification_empty\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-notification_empty'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-errorPanel-warning\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-errorPanel-warning'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-bottommarginband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-bottommarginband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcbool\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcbool'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcdate\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcdate'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcdefault\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcdefault'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcfloat\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcfloat'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcinteger\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcinteger'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-calcstring\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-calcstring'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-component\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-component'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-components\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-components'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-detailband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-detailband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-detailreportband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-detailreportband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-formattingrule\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-formattingrule'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-formattingrules\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-formattingrules'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-groupfooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-groupfooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-groupheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-groupheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-master_report\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-master_report'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-pagefooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-pagefooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-pageheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-pageheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parametergroup\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parametergroup'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-parameterseparator\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-parameterseparator'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-reportfooterband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-reportfooterband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-reportheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-reportheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-stylemodel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-stylemodel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-styles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-styles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-subband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-subband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-topmarginband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-topmarginband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticaldetailband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticaldetailband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticalheaderband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticalheaderband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-verticaltotalband\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-verticaltotalband'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrbarcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrbarcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcharactercomb\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcharactercomb'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrchart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrchart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcheckbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcheckbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrossbandbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrossbandbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrossbandline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrossbandline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrcrosstab\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrcrosstab'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrgauge\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrgauge'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrlabel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrlabel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpagebreak\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpagebreak'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpageinfo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpageinfo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpanel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpanel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpicturebox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpicturebox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrpivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrpivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrrichtext\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrrichtext'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrshape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrshape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrsparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrsparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrsubreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrsubreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtable\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtable'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtablecell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtablecell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtableofcontents\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtableofcontents'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrtablerow\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrtablerow'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-fieldlist-xrzipcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-fieldlist-xrzipcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-landscape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-landscape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-add_datasource\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-add_datasource'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-back\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-back'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-exit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-exit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-localization\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-localization'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-newreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-newreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-new_via_wizard\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-new_via_wizard'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-menu-run_wizard\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-menu-run_wizard'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-multi_select\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-multi_select'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-none\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-none'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomcenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomcenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_bottomright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_bottomright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middlecenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middlecenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middleleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middleleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_middleright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_middleright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topcenter\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topcenter'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topleft\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topleft'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-alignment_topright\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-alignment_topright'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-image_gallery\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-image_gallery'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_cover\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_cover'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_normal\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_normal'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_squeeze\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_squeeze'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_stretchimage\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_stretchimage'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-size_mode_zoomimage\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-size_mode_zoomimage'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_brush_options\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_brush_options'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_clear\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_clear'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_open\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_open'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_reset\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_reset'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-portrait\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-portrait'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-csv\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-csv'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-html\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-html'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-image\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-image'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-mht\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-mht'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-pdf\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-pdf'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-rtf\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-rtf'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-txt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-txt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-xls\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-xls'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to-xlsx\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to-xlsx'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-export-to\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-export-to'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-export-Export\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-export-Export'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-first_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-first_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-last_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-last_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-multi_page_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-multi_page_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-next_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-next_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-previous_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-previous_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-print_preview\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-print_preview'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-report_designer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-report_designer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-signature_img_placeholder\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-signature_img_placeholder'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-single_page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-single_page'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-sort_asc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-sort_asc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-sort_desc\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-sort_desc'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-component\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-component'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-components\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-components'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-formatting_rule\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-formatting_rule'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-formatting_rules\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-formatting_rules'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-style\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-style'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-styles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-styles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-tablecell\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-tablecell'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-reportexplorer-tablerow\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-reportexplorer-tablerow'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-bubbles\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-bubbles'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-candle_stick\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-candle_stick'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-doughnut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-doughnut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-doughnut3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-doughnut3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-full_stacked_spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-full_stacked_spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-funnel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-funnel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-funnel3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-funnel3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-gantt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-gantt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-manhattan_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-manhattan_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-nested_doughnut\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-nested_doughnut'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-pie\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-pie'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-pie3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-pie3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-polar_point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-polar_point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-radar_point\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-radar_point'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-range_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-range_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-scatter_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-scatter_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_full_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_full_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_full_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_full_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_gantt\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_gantt'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_range_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_range_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-side_by_side_stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-side_by_side_stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_bar'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_bar3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_bar3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_spline_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_spline_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stacked_spline_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stacked_spline_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_area\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_area'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_area3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_area3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-step_line3d\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-step_line3d'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-stock\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-stock'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-swift_plot\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-swift_plot'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-series-waterfall\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-series-waterfall'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-collapse\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-collapse'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-expand\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-expand'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-expressions\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-expressions'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-fieldlist\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-fieldlist'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-parameters\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-parameters'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-reportexplorer\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-reportexplorer'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-tabs-search\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-tabs-search'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-bottom_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-bottom_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_bottom_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_bottom_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_center_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_center_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-left_top_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-left_top_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_bottom_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_bottom_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_center_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_center_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-right_top_vertical\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-right_top_vertical'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_center\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_center'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_left\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_left'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-titles-top_right\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-titles-top_right'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-pivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-pivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-todo-sparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-todo-sparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-fullscreen-exit\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-fullscreen-exit'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-fullscreen\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-fullscreen'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-hightlightEditingFields\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-hightlightEditingFields'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-scripts\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-scripts'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbar-validateBindingMode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbar-validateBindingMode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-barcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-barcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-charactercomb\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-charactercomb'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-chart\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-chart'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-checkbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-checkbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crossbandbox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crossbandbox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crossbandline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crossbandline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-crosstab\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-crosstab'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-gauge\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-gauge'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-label\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-label'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-line\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-line'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pagebreak\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pagebreak'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pageinfo\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pageinfo'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-panel\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-panel'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pdfcontent\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pdfcontent'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pdfsignature\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pdfsignature'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-picturebox\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-picturebox'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-pivotgrid\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-pivotgrid'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-richtext\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-richtext'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-shape\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-shape'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-sparkline\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-sparkline'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-subreport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-subreport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-table\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-table'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-tableofcontents\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-tableofcontents'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-unknown\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-unknown'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-toolbox-zipcode\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-toolbox-zipcode'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-columns\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-columns'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-data\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-data'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-fields\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-fields'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-crosstab-rows\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-crosstab-rows'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-CrossTabReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-CrossTabReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-EmptyReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-EmptyReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-LabelReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-LabelReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-StandardReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-StandardReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-UndefinedReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-UndefinedReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-VerticalReport\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-VerticalReport'; } }; });\naddToBindingsCache('template: \\'dxrd-svg-wizard-warning\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-wizard-warning'; } }; });\n","/**\r\n* DevExpress HTML/JS Reporting (dx-reporting-svg-templates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-svg-actions-add_field_to_column_area': '',\n 'dxrd-svg-actions-add_field_to_data_area': '',\n 'dxrd-svg-actions-add_field_to_filter_area': '',\n 'dxrd-svg-actions-add_field_to_row_area': '',\n 'dxrd-svg-actions-add_group': '',\n 'dxrd-svg-actions-add_parameter': '',\n 'dxrd-svg-actions-add_separator': '',\n 'dxrd-svg-actions-align_bottoms': '',\n 'dxrd-svg-actions-align_centers': '',\n 'dxrd-svg-actions-align_lefts': '',\n 'dxrd-svg-actions-align_middles': '',\n 'dxrd-svg-actions-align_rights': '',\n 'dxrd-svg-actions-align_tops': '',\n 'dxrd-svg-actions-align_to_grid': '',\n 'dxrd-svg-actions-apply_localization_service': '',\n 'dxrd-svg-actions-bottom_margin': '',\n 'dxrd-svg-actions-bring_to_front': '',\n 'dxrd-svg-actions-center_horizontally': '',\n 'dxrd-svg-actions-center_vertically': '',\n 'dxrd-svg-actions-convert': '',\n 'dxrd-svg-actions-convertation': '',\n 'dxrd-svg-actions-decrease_horizontal_spacing': '',\n 'dxrd-svg-actions-decrease_vertical_spacing': '',\n 'dxrd-svg-actions-delete_cell': '',\n 'dxrd-svg-actions-delete_column': '',\n 'dxrd-svg-actions-delete_row': '',\n 'dxrd-svg-actions-detail': '',\n 'dxrd-svg-actions-detail_report': '',\n 'dxrd-svg-actions-distribute_columns_evenly': '',\n 'dxrd-svg-actions-distribute_rows_evenly': '',\n 'dxrd-svg-actions-fit_bounds_to_text': '',\n 'dxrd-svg-actions-fit_text_to_bounds': '',\n 'dxrd-svg-actions-fit_to_container': '',\n 'dxrd-svg-actions-group_footer': '',\n 'dxrd-svg-actions-group_header': '',\n 'dxrd-svg-actions-increase_horizontal_spacing': '',\n 'dxrd-svg-actions-increase_vertical_spacing': '',\n 'dxrd-svg-actions-insert_cell': '',\n 'dxrd-svg-actions-insert_column_to_left': '',\n 'dxrd-svg-actions-insert_column_to_right': '',\n 'dxrd-svg-actions-insert_row_above': '',\n 'dxrd-svg-actions-insert_row_below': '',\n 'dxrd-svg-actions-make_horizontal_spacing_equal': '',\n 'dxrd-svg-actions-make_same_height': '',\n 'dxrd-svg-actions-make_same_sizes': '',\n 'dxrd-svg-actions-make_same_width': '',\n 'dxrd-svg-actions-make_vertical_spacing_equal': '',\n 'dxrd-svg-actions-master_report': '',\n 'dxrd-svg-actions-none': '',\n 'dxrd-svg-actions-page_footer': '',\n 'dxrd-svg-actions-page_header': '',\n 'dxrd-svg-actions-remove_horizontal_spacing': '',\n 'dxrd-svg-actions-remove_vertical_spacing': '',\n 'dxrd-svg-actions-report_footer': '',\n 'dxrd-svg-actions-report_header': '',\n 'dxrd-svg-actions-reset': '',\n 'dxrd-svg-actions-send_to_back': '',\n 'dxrd-svg-actions-size_to_grid': '',\n 'dxrd-svg-actions-subband': '',\n 'dxrd-svg-actions-top_margin': '',\n 'dxrd-svg-actions-ungroup': '',\n 'dxrd-svg-actions-vertical_detail': '',\n 'dxrd-svg-actions-vertical_header': '',\n 'dxrd-svg-actions-vertical_total': '',\n 'dxrd-svg-bands-bottom_margin': '',\n 'dxrd-svg-bands-detail': '',\n 'dxrd-svg-bands-detail_report': '',\n 'dxrd-svg-bands-group_footer': '',\n 'dxrd-svg-bands-group_header': '',\n 'dxrd-svg-bands-master_report': '',\n 'dxrd-svg-bands-page_footer': '',\n 'dxrd-svg-bands-page_header': '',\n 'dxrd-svg-bands-report_footer': '',\n 'dxrd-svg-bands-report_header': '',\n 'dxrd-svg-bands-sub_band': '',\n 'dxrd-svg-bands-top_margin': '',\n 'dxrd-svg-bands-vertical_detail': '',\n 'dxrd-svg-bands-vertical_header': '',\n 'dxrd-svg-bands-vertical_total': '',\n 'dxrd-svg-chartstructure-axes': '',\n 'dxrd-svg-chartstructure-axisx': '',\n 'dxrd-svg-chartstructure-axisy': '',\n 'dxrd-svg-chartstructure-chart': '',\n 'dxrd-svg-chartstructure-constantline': '',\n 'dxrd-svg-chartstructure-constantlines': '',\n 'dxrd-svg-chartstructure-defaultpane': '',\n 'dxrd-svg-chartstructure-diagram': '',\n 'dxrd-svg-chartstructure-legend': '',\n 'dxrd-svg-chartstructure-panes': '',\n 'dxrd-svg-chartstructure-series': '',\n 'dxrd-svg-chartstructure-seriescollection': '',\n 'dxrd-svg-chartstructure-title': '',\n 'dxrd-svg-chartstructure-titles': '',\n 'dxrd-svg-checkboxglyphs-Heart_Checked': '',\n 'dxrd-svg-checkboxglyphs-Heart_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-RadioButton_Checked': '',\n 'dxrd-svg-checkboxglyphs-RadioButton_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Checked': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-Smiley_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Checked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-StandardBox1_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Checked': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-StandardBox2_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Star_Checked': '',\n 'dxrd-svg-checkboxglyphs-Star_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Thumb_Checked': '',\n 'dxrd-svg-checkboxglyphs-Thumb_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-Toggle_Checked': '',\n 'dxrd-svg-checkboxglyphs-Toggle_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNoBox_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNoBox_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Indeterminate': '',\n 'dxrd-svg-checkboxglyphs-YesNoSolidBox_Unchecked': '',\n 'dxrd-svg-checkboxglyphs-YesNo_Checked': '',\n 'dxrd-svg-checkboxglyphs-YesNo_Unchecked': '',\n 'dxrd-svg-color_gear': '',\n 'dxrd-svg-errorPanel-collectErrors': '',\n 'dxrd-svg-errorPanel-error': '',\n 'dxrd-svg-errorPanel-information': '',\n 'dxrd-svg-errorPanel-notification': '',\n 'dxrd-svg-errorPanel-notification_empty': '',\n 'dxrd-svg-errorPanel-warning': '',\n 'dxrd-svg-fieldlist-bottommarginband': '',\n 'dxrd-svg-fieldlist-calcbool': '',\n 'dxrd-svg-fieldlist-calcdate': '',\n 'dxrd-svg-fieldlist-calcdefault': '',\n 'dxrd-svg-fieldlist-calcfloat': '',\n 'dxrd-svg-fieldlist-calcinteger': '',\n 'dxrd-svg-fieldlist-calcstring': '',\n 'dxrd-svg-fieldlist-component': '',\n 'dxrd-svg-fieldlist-components': '',\n 'dxrd-svg-fieldlist-detailband': '',\n 'dxrd-svg-fieldlist-detailreportband': '',\n 'dxrd-svg-fieldlist-formattingrule': '',\n 'dxrd-svg-fieldlist-formattingrules': '',\n 'dxrd-svg-fieldlist-groupfooterband': '',\n 'dxrd-svg-fieldlist-groupheaderband': '',\n 'dxrd-svg-fieldlist-master_report': '',\n 'dxrd-svg-fieldlist-pagefooterband': '',\n 'dxrd-svg-fieldlist-pageheaderband': '',\n 'dxrd-svg-fieldlist-parametergroup': '',\n 'dxrd-svg-fieldlist-parameterseparator': '',\n 'dxrd-svg-fieldlist-reportfooterband': '',\n 'dxrd-svg-fieldlist-reportheaderband': '',\n 'dxrd-svg-fieldlist-stylemodel': '',\n 'dxrd-svg-fieldlist-styles': '',\n 'dxrd-svg-fieldlist-subband': '',\n 'dxrd-svg-fieldlist-topmarginband': '',\n 'dxrd-svg-fieldlist-verticaldetailband': '',\n 'dxrd-svg-fieldlist-verticalheaderband': '',\n 'dxrd-svg-fieldlist-verticaltotalband': '',\n 'dxrd-svg-fieldlist-xrbarcode': '',\n 'dxrd-svg-fieldlist-xrcharactercomb': '',\n 'dxrd-svg-fieldlist-xrchart': '',\n 'dxrd-svg-fieldlist-xrcheckbox': '',\n 'dxrd-svg-fieldlist-xrcrossbandbox': '',\n 'dxrd-svg-fieldlist-xrcrossbandline': '',\n 'dxrd-svg-fieldlist-xrcrosstab': '',\n 'dxrd-svg-fieldlist-xrgauge': '',\n 'dxrd-svg-fieldlist-xrlabel': '',\n 'dxrd-svg-fieldlist-xrline': '',\n 'dxrd-svg-fieldlist-xrpagebreak': '',\n 'dxrd-svg-fieldlist-xrpageinfo': '',\n 'dxrd-svg-fieldlist-xrpanel': '',\n 'dxrd-svg-fieldlist-xrpdfcontent': '',\n 'dxrd-svg-fieldlist-xrpdfsignature': '',\n 'dxrd-svg-fieldlist-xrpicturebox': '',\n 'dxrd-svg-fieldlist-xrpivotgrid': '',\n 'dxrd-svg-fieldlist-xrrichtext': '',\n 'dxrd-svg-fieldlist-xrshape': '',\n 'dxrd-svg-fieldlist-xrsparkline': '',\n 'dxrd-svg-fieldlist-xrsubreport': '',\n 'dxrd-svg-fieldlist-xrtable': '',\n 'dxrd-svg-fieldlist-xrtablecell': '',\n 'dxrd-svg-fieldlist-xrtableofcontents': '',\n 'dxrd-svg-fieldlist-xrtablerow': '',\n 'dxrd-svg-fieldlist-xrzipcode': '',\n 'dxrd-svg-landscape': '',\n 'dxrd-svg-menu-add_datasource': '',\n 'dxrd-svg-menu-back': '',\n 'dxrd-svg-menu-exit': '',\n 'dxrd-svg-menu-localization': '',\n 'dxrd-svg-menu-newreport': '',\n 'dxrd-svg-menu-new_via_wizard': '',\n 'dxrd-svg-menu-run_wizard': '',\n 'dxrd-svg-multi_select': '',\n 'dxrd-svg-none': '',\n 'dxrd-svg-pictureeditor-alignment_bottomcenter': '',\n 'dxrd-svg-pictureeditor-alignment_bottomleft': '',\n 'dxrd-svg-pictureeditor-alignment_bottomright': '',\n 'dxrd-svg-pictureeditor-alignment_middlecenter': '',\n 'dxrd-svg-pictureeditor-alignment_middleleft': '',\n 'dxrd-svg-pictureeditor-alignment_middleright': '',\n 'dxrd-svg-pictureeditor-alignment_topcenter': '',\n 'dxrd-svg-pictureeditor-alignment_topleft': '',\n 'dxrd-svg-pictureeditor-alignment_topright': '',\n 'dxrd-svg-pictureeditor-image_gallery': '',\n 'dxrd-svg-pictureeditor-size_mode_cover': '',\n 'dxrd-svg-pictureeditor-size_mode_normal': '',\n 'dxrd-svg-pictureeditor-size_mode_squeeze': '',\n 'dxrd-svg-pictureeditor-size_mode_stretchimage': '',\n 'dxrd-svg-pictureeditor-size_mode_zoomimage': '',\n 'dxrd-svg-pictureeditor-toolbar_brush_options': '',\n 'dxrd-svg-pictureeditor-toolbar_clear': '',\n 'dxrd-svg-pictureeditor-toolbar_open': '',\n 'dxrd-svg-pictureeditor-toolbar_reset': '',\n 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment': '',\n 'dxrd-svg-portrait': '',\n 'dxrd-svg-preview-export-export-to-csv': '',\n 'dxrd-svg-preview-export-export-to-html': '',\n 'dxrd-svg-preview-export-export-to-image': '',\n 'dxrd-svg-preview-export-export-to-mht': '',\n 'dxrd-svg-preview-export-export-to-pdf': '',\n 'dxrd-svg-preview-export-export-to-rtf': '',\n 'dxrd-svg-preview-export-export-to-txt': '',\n 'dxrd-svg-preview-export-export-to-xls': '',\n 'dxrd-svg-preview-export-export-to-xlsx': '',\n 'dxrd-svg-preview-export-export-to': '',\n 'dxrd-svg-preview-export-Export': '',\n 'dxrd-svg-preview-first_page': '',\n 'dxrd-svg-preview-last_page': '',\n 'dxrd-svg-preview-multi_page_preview': '',\n 'dxrd-svg-preview-next_page': '',\n 'dxrd-svg-preview-previous_page': '',\n 'dxrd-svg-preview-print': '',\n 'dxrd-svg-preview-print_page': '',\n 'dxrd-svg-preview-print_preview': '',\n 'dxrd-svg-preview-report_designer': '',\n 'dxrd-svg-preview-search': '',\n 'dxrd-svg-preview-signature_img_placeholder': '',\n 'dxrd-svg-preview-single_page': '',\n 'dxrd-svg-preview-sort_asc': '',\n 'dxrd-svg-preview-sort_desc': '',\n 'dxrd-svg-reportexplorer-component': '',\n 'dxrd-svg-reportexplorer-components': '',\n 'dxrd-svg-reportexplorer-formatting_rule': '',\n 'dxrd-svg-reportexplorer-formatting_rules': '',\n 'dxrd-svg-reportexplorer-style': '',\n 'dxrd-svg-reportexplorer-styles': '',\n 'dxrd-svg-reportexplorer-tablecell': '',\n 'dxrd-svg-reportexplorer-tablerow': '',\n 'dxrd-svg-series-area': '',\n 'dxrd-svg-series-area3d': '',\n 'dxrd-svg-series-bubbles': '',\n 'dxrd-svg-series-candle_stick': '',\n 'dxrd-svg-series-doughnut': '',\n 'dxrd-svg-series-doughnut3d': '',\n 'dxrd-svg-series-full_stacked_area': '',\n 'dxrd-svg-series-full_stacked_area3d': '',\n 'dxrd-svg-series-full_stacked_bar': '',\n 'dxrd-svg-series-full_stacked_bar3d': '',\n 'dxrd-svg-series-full_stacked_line': '',\n 'dxrd-svg-series-full_stacked_line3d': '',\n 'dxrd-svg-series-full_stacked_spline_area': '',\n 'dxrd-svg-series-full_stacked_spline_area3d': '',\n 'dxrd-svg-series-funnel': '',\n 'dxrd-svg-series-funnel3d': '',\n 'dxrd-svg-series-gantt': '',\n 'dxrd-svg-series-line': '',\n 'dxrd-svg-series-line3d': '',\n 'dxrd-svg-series-manhattan_bar3d': '',\n 'dxrd-svg-series-nested_doughnut': '',\n 'dxrd-svg-series-pie': '',\n 'dxrd-svg-series-pie3d': '',\n 'dxrd-svg-series-point': '',\n 'dxrd-svg-series-polar_area': '',\n 'dxrd-svg-series-polar_line': '',\n 'dxrd-svg-series-polar_point': '',\n 'dxrd-svg-series-radar_area': '',\n 'dxrd-svg-series-radar_line': '',\n 'dxrd-svg-series-radar_point': '',\n 'dxrd-svg-series-range_area': '',\n 'dxrd-svg-series-range_area3d': '',\n 'dxrd-svg-series-range_bar': '',\n 'dxrd-svg-series-scatter_line': '',\n 'dxrd-svg-series-side_by_side_bar': '',\n 'dxrd-svg-series-side_by_side_bar3d': '',\n 'dxrd-svg-series-side_by_side_full_stacked_bar': '',\n 'dxrd-svg-series-side_by_side_full_stacked_bar3d': '',\n 'dxrd-svg-series-side_by_side_gantt': '',\n 'dxrd-svg-series-side_by_side_range_bar': '',\n 'dxrd-svg-series-side_by_side_stacked_bar': '',\n 'dxrd-svg-series-side_by_side_stacked_bar3d': '',\n 'dxrd-svg-series-spline': '',\n 'dxrd-svg-series-spline3d': '',\n 'dxrd-svg-series-spline_area': '',\n 'dxrd-svg-series-spline_area3d': '',\n 'dxrd-svg-series-stacked_area': '',\n 'dxrd-svg-series-stacked_area3d': '',\n 'dxrd-svg-series-stacked_bar': '',\n 'dxrd-svg-series-stacked_bar3d': '',\n 'dxrd-svg-series-stacked_line': '',\n 'dxrd-svg-series-stacked_line3d': '',\n 'dxrd-svg-series-stacked_spline_area': '',\n 'dxrd-svg-series-stacked_spline_area3d': '',\n 'dxrd-svg-series-step_area': '',\n 'dxrd-svg-series-step_area3d': '',\n 'dxrd-svg-series-step_line': '',\n 'dxrd-svg-series-step_line3d': '',\n 'dxrd-svg-series-stock': '',\n 'dxrd-svg-series-swift_plot': '',\n 'dxrd-svg-series-waterfall': '',\n 'dxrd-svg-tabs-collapse': '',\n 'dxrd-svg-tabs-expand': '',\n 'dxrd-svg-tabs-expressions': '',\n 'dxrd-svg-tabs-fieldlist': '',\n 'dxrd-svg-tabs-parameters': '',\n 'dxrd-svg-tabs-reportexplorer': '',\n 'dxrd-svg-tabs-search': '',\n 'dxrd-svg-titles-bottom_center': '',\n 'dxrd-svg-titles-bottom_left': '',\n 'dxrd-svg-titles-bottom_right': '',\n 'dxrd-svg-titles-left_bottom_vertical': '',\n 'dxrd-svg-titles-left_center_vertical': '',\n 'dxrd-svg-titles-left_top_vertical': '',\n 'dxrd-svg-titles-right_bottom_vertical': '',\n 'dxrd-svg-titles-right_center_vertical': '',\n 'dxrd-svg-titles-right_top_vertical': '',\n 'dxrd-svg-titles-top_center': '',\n 'dxrd-svg-titles-top_left': '',\n 'dxrd-svg-titles-top_right': '',\n 'dxrd-svg-todo-chart': '',\n 'dxrd-svg-todo-pdfcontent': '',\n 'dxrd-svg-todo-pdfsignature': '',\n 'dxrd-svg-todo-pivotgrid': '',\n 'dxrd-svg-todo-sparkline': '',\n 'dxrd-svg-toolbar-fullscreen-exit': '',\n 'dxrd-svg-toolbar-fullscreen': '',\n 'dxrd-svg-toolbar-hightlightEditingFields': '',\n 'dxrd-svg-toolbar-scripts': '',\n 'dxrd-svg-toolbar-validateBindingMode': '',\n 'dxrd-svg-toolbox-barcode': '',\n 'dxrd-svg-toolbox-charactercomb': '',\n 'dxrd-svg-toolbox-chart': '',\n 'dxrd-svg-toolbox-checkbox': '',\n 'dxrd-svg-toolbox-crossbandbox': '',\n 'dxrd-svg-toolbox-crossbandline': '',\n 'dxrd-svg-toolbox-crosstab': '',\n 'dxrd-svg-toolbox-gauge': '',\n 'dxrd-svg-toolbox-label': '',\n 'dxrd-svg-toolbox-line': '',\n 'dxrd-svg-toolbox-pagebreak': '',\n 'dxrd-svg-toolbox-pageinfo': '',\n 'dxrd-svg-toolbox-panel': '',\n 'dxrd-svg-toolbox-pdfcontent': '',\n 'dxrd-svg-toolbox-pdfsignature': '',\n 'dxrd-svg-toolbox-picturebox': '',\n 'dxrd-svg-toolbox-pivotgrid': '',\n 'dxrd-svg-toolbox-richtext': '',\n 'dxrd-svg-toolbox-shape': '',\n 'dxrd-svg-toolbox-sparkline': '',\n 'dxrd-svg-toolbox-subreport': '',\n 'dxrd-svg-toolbox-table': '',\n 'dxrd-svg-toolbox-tableofcontents': '',\n 'dxrd-svg-toolbox-unknown': '',\n 'dxrd-svg-toolbox-zipcode': '',\n 'dxrd-svg-wizard-crosstab-columns': '',\n 'dxrd-svg-wizard-crosstab-data': '',\n 'dxrd-svg-wizard-crosstab-fields': '',\n 'dxrd-svg-wizard-crosstab-rows': '',\n 'dxrd-svg-wizard-CrossTabReport': '',\n 'dxrd-svg-wizard-EmptyReport': '',\n 'dxrd-svg-wizard-LabelReport': '',\n 'dxrd-svg-wizard-StandardReport': '',\n 'dxrd-svg-wizard-UndefinedReport': '
',\n 'dxrd-svg-wizard-VerticalReport': '',\n 'dxrd-svg-wizard-warning': '',\n});\n","/**\r\n* DevExpress HTML/JS Reporting (dx-viewer-bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\naddToBindingsCache('style: $data.customGlyphStyleCss', function ($context, $element) { return { 'style': function () { return $context.$data.customGlyphStyleCss; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: items, displayExpr: \\'displayName\\', value: popupModel.textRangeValue, useItemTextAsTitle: true , placeholder: $root.getLocalization(\\'Select Period\\', \\'AnalyticsCoreStringId.Mobile_DateRange_SelectPeriod\\') }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$data.items, 'displayExpr': 'displayName', 'value': $context.$data.popupModel.textRangeValue, 'useItemTextAsTitle': true, 'placeholder': $context.$root.getLocalization('Select Period', 'AnalyticsCoreStringId.Mobile_DateRange_SelectPeriod') }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'From\\',\\'AnalyticsCoreStringId.Mobile_DateRange_From\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('From', 'AnalyticsCoreStringId.Mobile_DateRange_From'); } }; });\naddToBindingsCache('css: { \\'dx-button-default\\': popupModel.startButton.focused }, dxButton: popupModel.startButton', function ($context, $element) { return { 'css': function () { return { 'dx-button-default': $context.$data.popupModel.startButton.focused }; }, 'dxButton': function () { return $context.$data.popupModel.startButton; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Until\\',\\'AnalyticsCoreStringId.Mobile_DateRange_Until\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Until', 'AnalyticsCoreStringId.Mobile_DateRange_Until'); } }; });\naddToBindingsCache('css: { \\'dx-button-default\\': popupModel.endButton.focused }, dxButton: popupModel.endButton', function ($context, $element) { return { 'css': function () { return { 'dx-button-default': $context.$data.popupModel.endButton.focused }; }, 'dxButton': function () { return $context.$data.popupModel.endButton; } }; });\naddToBindingsCache('if: popupModel.startButton.focused', function ($context, $element) { return { 'if': function () { return $context.$data.popupModel.startButton.focused; } }; });\naddToBindingsCache('template: { name: \\'dxrv-daterange-calendar\\', data: _createTemplateData(startDate, undefined) }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-daterange-calendar', 'data': $context.$data._createTemplateData($context.$data.startDate, undefined) }; } }; });\naddToBindingsCache('if: popupModel.endButton.focused', function ($context, $element) { return { 'if': function () { return $context.$data.popupModel.endButton.focused; } }; });\naddToBindingsCache('template: { name: \\'dxrv-daterange-calendar\\', data: _createTemplateData(endDate, startDate) }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-daterange-calendar', 'data': $context.$data._createTemplateData($context.$data.endDate, $context.$data.startDate) }; } }; });\naddToBindingsCache('dxclick: clickToBrick, styleunit: { width: width, height: height }, autoFit: { autoFitBy: $root.reportPreview.autoFitBy, zoom: zoom, width: originalWidth, height: originalHeight, previewSize: $root.reportPreview.previewSize, brickLoading: brickLoading, skipIfInvisible: true }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.clickToBrick; }, 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height }; }, 'autoFit': function () { return { 'autoFitBy': $context.$root.reportPreview.autoFitBy, 'zoom': $context.$data.zoom, 'width': $context.$data.originalWidth, 'height': $context.$data.originalHeight, 'previewSize': $context.$root.reportPreview.previewSize, 'brickLoading': $context.$data.brickLoading, 'skipIfInvisible': true }; } }; });\naddToBindingsCache('styleunit: { width: width, height: height, lineHeight: height }, style: { \\'background-color\\': color }, visible: pageLoading, text: loadingText', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height, 'lineHeight': $context.$data.height }; }, 'style': function () { return { 'background-color': $context.$data.color }; }, 'visible': function () { return $context.$data.pageLoading; }, 'text': function () { return $context.$data.loadingText; } }; });\naddToBindingsCache('attr: { src: displayImageSrc }, style:{ \\'background-color\\': color }', function ($context, $element) { return { 'attr': function () { return { 'src': $context.$data.displayImageSrc }; }, 'style': function () { return { 'background-color': $context.$data.color }; } }; });\naddToBindingsCache('css: { \\'dxrdp-active\\': active() && $parents[1].blocks().length > 1 }, visible: !$root.slideOptions.readerMode', function ($context, $element) { return { 'css': function () { return { 'dxrdp-active': $context.$data.active() && $context.$parents[1].blocks().length > 1 }; }, 'visible': function () { return !$context.$root.slideOptions.readerMode; } }; });\naddToBindingsCache('style: { top: topP, left: $data.leftP, right: $data.rightP, height: heightP, width: widthP }, css: { \\'dxrd-report-preview-brick-selected\\': $data.active }', function ($context, $element) { return { 'style': function () { return { 'top': $context.$data.topP, 'left': $context.$data.leftP, 'right': $context.$data.rightP, 'height': $context.$data.heightP, 'width': $context.$data.widthP }; }, 'css': function () { return { 'dxrd-report-preview-brick-selected': $context.$data.active }; } }; });\naddToBindingsCache('foreach: activeBricks', function ($context, $element) { return { 'foreach': function () { return $context.$data.activeBricks; } }; });\naddToBindingsCache('template: { name: \"dxrd-page-brick-mobile\", data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-page-brick-mobile', 'data': $context.$data }; } }; });\naddToBindingsCache('if: !brickLoading() && $data.editingFields', function ($context, $element) { return { 'if': function () { return !$context.$data.brickLoading() && $context.$data.editingFields; } }; });\naddToBindingsCache('foreach: editingFields', function ($context, $element) { return { 'foreach': function () { return $context.$data.editingFields; } }; });\naddToBindingsCache('styleunit:{ height: height }, dxrdSearchBar: $data', function ($context, $element) { return { 'styleunit': function () { return { 'height': $context.$data.height }; }, 'dxrdSearchBar': function () { return $context.$data; } }; });\naddToBindingsCache('visible: !$data.editorVisible(), dxclick: function(s, e) { $data.focusEditor(e); }', function ($context, $element) { return { 'visible': function () { return !$context.$data.editorVisible(); }, 'dxclick': function () { return function (s, e) { $context.$data.focusEditor(e); }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Tap here to Search\\', \\'ASPxReportsStringId.WebDocumentViewer_Mobile_TapHereToSearch\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Tap here to Search', 'ASPxReportsStringId.WebDocumentViewer_Mobile_TapHereToSearch'); } }; });\naddToBindingsCache('visible: $data.editorVisible()', function ($context, $element) { return { 'visible': function () { return $context.$data.editorVisible(); } }; });\naddToBindingsCache('dxTextBox: { value: searchText, onEnterKey: function() { $data.startSearch(); } }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.searchText, 'onEnterKey': function () { $context.$data.startSearch(); } }; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxrd-preview-export-to\\' }, items: items, onItemClick: clickAction }, attr: { title: $root.getLocalization(text, $data.textId) }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxrd-preview-export-to' }, 'items': $context.$data.items, 'onItemClick': $context.$data.clickAction }; }, 'attr': function () { return { 'title': $context.$root.getLocalization($context.$data.text, $context.$data.textId) }; } }; });\naddToBindingsCache('attr: { title: $root.getLocalization(text, $data.textId) }', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$root.getLocalization($context.$data.text, $context.$data.textId) }; } }; });\naddToBindingsCache('text: $root.getLocalization($data.text, $data.textId)', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization($context.$data.text, $context.$data.textId); } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: { name: ko.unwrap($data.imageTemplateName), if: !!ko.unwrap($data.imageTemplateName)}', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return { 'name': $context.ko.unwrap($context.$data.imageTemplateName), 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; } }; });\naddToBindingsCache('visible: visible, css: $data.imageClassName, template: { name: $data.imageTemplateName, if: !!ko.unwrap($data.imageTemplateName)}, dxclick: clickAction', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'css': function () { return $context.$data.imageClassName; }, 'template': function () { return { 'name': $context.$data.imageTemplateName, 'if': !!$context.ko.unwrap($context.$data.imageTemplateName) }; }, 'dxclick': function () { return $context.$data.clickAction; } }; });\naddToBindingsCache('dxrdMobilePaginator: $data', function ($context, $element) { return { 'dxrdMobilePaginator': function () { return $context.$data; } }; });\naddToBindingsCache('text : text', function ($context, $element) { return { 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('dxPopover: { wrapperAttr: { class: \\'dxrd-menu-export-popover\\' }, width: \\'266px\\', height: \\'266px\\', visible: visible, target: \\'.dxrdp-mobile-action.dxrd-image-export-to\\', container: $root.getPopupContainer($element), }', function ($context, $element) { return { 'dxPopover': function () { return { 'wrapperAttr': { 'class': 'dxrd-menu-export-popover' }, 'width': '266px', 'height': '266px', 'visible': $context.$data.visible, 'target': '.dxrdp-mobile-action.dxrd-image-export-to', 'container': $context.$root.getPopupContainer($element) }; } }; });\naddToBindingsCache('dxclick: action, text: text', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; }, 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('dxPopup: { wrapperAttr: { class: \\'dxrd-menu-parameters-popup\\' }, showTitle: false, width: \\'100vw\\', height: \\'100vh\\', visible: visible, container: $root.getPopupContainer($element), }', function ($context, $element) { return { 'dxPopup': function () { return { 'wrapperAttr': { 'class': 'dxrd-menu-parameters-popup' }, 'showTitle': false, 'width': '100vw', 'height': '100vh', 'visible': $context.$data.visible, 'container': $context.$root.getPopupContainer($element) }; } }; });\naddToBindingsCache('dxValidationGroup: {}, css: className', function ($context, $element) { return { 'dxValidationGroup': function () { return {}; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('text: $data.title', function ($context, $element) { return { 'text': function () { return $context.$data.title; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, bounceEnabled: false }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'bounceEnabled': false }; } }; });\naddToBindingsCache('foreach: { data: $data.actionButtons }, cacheElement: { action: function(element) { $data.cacheElementContent(element); } }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.actionButtons }; }, 'cacheElement': function () { return { 'action': function (element) { $context.$data.cacheElementContent(element); } }; } }; });\naddToBindingsCache('dxButton: { text: text, onClick: function(params){ $data.action(params) }, disabled: disabled, visible: visible }, css: className', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$data.text, 'onClick': function (params) { $context.$data.action(params); }, 'disabled': $context.$data.disabled, 'visible': $context.$data.visible }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('visible: showIcons, foreach: { data: $data.actionIcons }', function ($context, $element) { return { 'visible': function () { return $context.$data.showIcons; }, 'foreach': function () { return { 'data': $context.$data.actionIcons }; } }; });\naddToBindingsCache('dxButton: { onClick: function(params){ $data.action(params)}, disabled: disabled }, css: className', function ($context, $element) { return { 'dxButton': function () { return { 'onClick': function (params) { $context.$data.action(params); }, 'disabled': $context.$data.disabled }; }, 'css': function () { return $context.$data.className; } }; });\naddToBindingsCache('dxPropertyGrid: { target: ko.observable($data) }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.ko.observable($context.$data) }; } }; });\naddToBindingsCache('dxrvDateRangeEditor: {value: $data.value(), isMobile: true }', function ($context, $element) { return { 'dxrvDateRangeEditor': function () { return { 'value': $context.$data.value(), 'isMobile': true }; } }; });\naddToBindingsCache('if: $data.format', function ($context, $element) { return { 'if': function () { return $context.$data.format; } }; });\naddToBindingsCache('ifnot: $data.format', function ($context, $element) { return { 'ifnot': function () { return $context.$data.format; } }; });\naddToBindingsCache('if: $data.enabled', function ($context, $element) { return { 'if': function () { return $context.$data.enabled; } }; });\naddToBindingsCache('if: $data.content', function ($context, $element) { return { 'if': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: $data.content', function ($context, $element) { return { 'template': function () { return $context.$data.content; } }; });\naddToBindingsCache('template: { name: \\'dxrv-preview-parameters-mobile\\', data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrv-preview-parameters-mobile', 'data': $context.$data }; } }; });\naddToBindingsCache('template: { name: $data.contentTemplate, data: model }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.model }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.documentId === null ? \\'none\\' : \\'\\', touchEvents: $data.documentId === null ? \\'none\\' : \\'\\' }, styleunit: { top: topOffset, height: previewWrapperSize().height, width: previewWrapperSize().width }, slide: $root.slideOptions, mobileZoom: { zoom: mobileZoom, zoomUpdating: zoomUpdating }, dxclick: function(s,e) { if(!$root.brickEventsDisabled()) { $data.showActions(s,e); } }, css: { \\'dxrp-editing-fields-hightlighted\\': editingFieldsHighlighted }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.documentId === null ? 'none' : '', 'touchEvents': $context.$data.documentId === null ? 'none' : '' }; }, 'styleunit': function () { return { 'top': $context.$data.topOffset, 'height': $context.$data.previewWrapperSize().height, 'width': $context.$data.previewWrapperSize().width }; }, 'slide': function () { return $context.$root.slideOptions; }, 'mobileZoom': function () { return { 'zoom': $context.$data.mobileZoom, 'zoomUpdating': $context.$data.zoomUpdating }; }, 'dxclick': function () { return function (s, e) { if (!$context.$root.brickEventsDisabled()) {\n $context.$data.showActions(s, e);\n } }; }, 'css': function () { return { 'dxrp-editing-fields-hightlighted': $context.$data.editingFieldsHighlighted }; } }; });\naddToBindingsCache('style: { pointerEvents: $data.zoomUpdating() ? \\'none\\' : \\'\\', touchEvents: $data.zoomUpdating() ? \\'none\\' : \\'\\' }, dxGalleryReportPreview: { dataSource: $root.gallery.items, gallery: $root.gallery, animationEnabled: $root.gallery.animationEnabled, disabled: $data.zoomUpdating, selectedIndex: $root.gallery.selectedIndex, width:\\'100%\\', height: \\'100%\\', showIndicator: false, loop: true, onSelectionChanged: onSlide, swipeEnabled: $root.slideOptions.swipeEnabled }', function ($context, $element) { return { 'style': function () { return { 'pointerEvents': $context.$data.zoomUpdating() ? 'none' : '', 'touchEvents': $context.$data.zoomUpdating() ? 'none' : '' }; }, 'dxGalleryReportPreview': function () { return { 'dataSource': $context.$root.gallery.items, 'gallery': $context.$root.gallery, 'animationEnabled': $context.$root.gallery.animationEnabled, 'disabled': $context.$data.zoomUpdating, 'selectedIndex': $context.$root.gallery.selectedIndex, 'width': '100%', 'height': '100%', 'showIndicator': false, 'loop': true, 'onSelectionChanged': $context.$data.onSlide, 'swipeEnabled': $context.$root.slideOptions.swipeEnabled }; } }; });\naddToBindingsCache('dxScrollView: $root.reportPreview.getScrollViewOptions()', function ($context, $element) { return { 'dxScrollView': function () { return $context.$root.reportPreview.getScrollViewOptions(); } }; });\naddToBindingsCache('style: $root.gallery.contentSize()', function ($context, $element) { return { 'style': function () { return $context.$root.gallery.contentSize(); } }; });\naddToBindingsCache('styleunit: position, css: $data.classSet', function ($context, $element) { return { 'styleunit': function () { return $context.$data.position; }, 'css': function () { return $context.$data.classSet; } }; });\naddToBindingsCache('styleunit: { width: Math.max(page.width(), position().width), height: Math.max(page.height(), position().height) }, style: { \\'background-color\\': page.color }', function ($context, $element) { return { 'styleunit': function () { return { 'width': Math.max($context.$data.page.width(), $context.$data.position().width), 'height': Math.max($context.$data.page.height(), $context.$data.position().height) }; }, 'style': function () { return { 'background-color': $context.$data.page.color }; } }; });\naddToBindingsCache('css: { \\'dxrdp-active\\': page.active() && $parents[0].blocks().length > 1, \\'dxrdp-page-padding\\': $parents[0].blocks().length > 1 }, visible: $root.slideOptions.readerMode', function ($context, $element) { return { 'css': function () { return { 'dxrdp-active': $context.$data.page.active() && $context.$parents[0].blocks().length > 1, 'dxrdp-page-padding': $context.$parents[0].blocks().length > 1 }; }, 'visible': function () { return $context.$root.slideOptions.readerMode; } }; });\naddToBindingsCache('styleunit: { width: page.width, height: page.height }, style: { pointerEvents: $root.brickEventsDisabled() ? \\'none\\' : \\'\\', touchEvents: $root.brickEventsDisabled() ? \\'none\\' : \\'\\' }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.page.width, 'height': $context.$data.page.height }; }, 'style': function () { return { 'pointerEvents': $context.$root.brickEventsDisabled() ? 'none' : '', 'touchEvents': $context.$root.brickEventsDisabled() ? 'none' : '' }; } }; });\naddToBindingsCache('template: {name: \\'dxrd-preview-progress-bar\\', data: progressBar }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-progress-bar', 'data': $context.$data.progressBar }; } }; });\naddToBindingsCache('foreach: $data.blocks()', function ($context, $element) { return { 'foreach': function () { return $context.$data.blocks(); } }; });\naddToBindingsCache('if: $data.page', function ($context, $element) { return { 'if': function () { return $context.$data.page; } }; });\naddToBindingsCache('template: { name :\\'dxrd-preview-page-mobile\\', data: page }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-page-mobile', 'data': $context.$data.page }; } }; });\naddToBindingsCache('style: containerStyle(), zoom: zoom, css: { active: active(), readonly: field.readOnly() }', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'zoom': function () { return $context.$data.zoom; }, 'css': function () { return { 'active': $context.$data.active(), 'readonly': $context.$data.field.readOnly() }; } }; });\naddToBindingsCache('style: borderStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.borderStyle(); } }; });\naddToBindingsCache('dxclick: activateEditor', function ($context, $element) { return { 'dxclick': function () { return $context.$data.activateEditor; } }; });\naddToBindingsCache('style: textStyle(), css: {\\'dxrp-editing-field-text-wordwrap\\': !wordWrap}', function ($context, $element) { return { 'style': function () { return $context.$data.textStyle(); }, 'css': function () { return { 'dxrp-editing-field-text-wordwrap': !$context.$data.wordWrap }; } }; });\naddToBindingsCache('style: breakOffsetStyle(), html: htmlValue()', function ($context, $element) { return { 'style': function () { return $context.$data.breakOffsetStyle(); }, 'html': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('style: textStyle(), css: {\\'dxrp-editing-field-text-wordwrap\\': !wordWrap}, text: field.editValue()', function ($context, $element) { return { 'style': function () { return $context.$data.textStyle(); }, 'css': function () { return { 'dxrp-editing-field-text-wordwrap': !$context.$data.wordWrap }; }, 'text': function () { return $context.$data.field.editValue(); } }; });\naddToBindingsCache('value: value, valueUpdate: \\'keypress\\', style: textStyle(), event: { blur: hideEditor, keyup: keypressAction }', function ($context, $element) { return { 'value': function () { return $context.$data.value; }, 'valueUpdate': function () { return 'keypress'; }, 'style': function () { return $context.$data.textStyle(); }, 'event': function () { return { 'blur': $context.$data.hideEditor, 'keyup': $context.$data.keypressAction }; }, '_ko_property_writers': function () { return { 'value': function (_z) { $context.$data.value = _z; } }; } }; });\naddToBindingsCache('dxTextBox: options, childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxTextBox': function () { return $context.$data.options; }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('dxNumberBox: options, childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxNumberBox': function () { return $context.$data.options; }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('dxDateBox: $data.getOptions({ dropDownOptions: { container: $root.getPopupContainer($element), position: { at: \\'left bottom\\', collision: \\'flipfit flip\\', my: \\'left top\\', boundary: $root.getPopupContainer($element), of: $element } } }), childStyle: { style: textStyle(), selector: \\'.dx-texteditor-input\\'}', function ($context, $element) { return { 'dxDateBox': function () { return $context.$data.getOptions({ 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'at': 'left bottom', 'collision': 'flipfit flip', 'my': 'left top', 'boundary': $context.$root.getPopupContainer($element), 'of': $element } } }); }, 'childStyle': function () { return { 'style': $context.$data.textStyle(), 'selector': '.dx-texteditor-input' }; } }; });\naddToBindingsCache('style: containerStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); } }; });\naddToBindingsCache('dxPictureEditor: $data.getPictureEditorOptions()', function ($context, $element) { return { 'dxPictureEditor': function () { return $context.$data.getPictureEditorOptions(); } }; });\naddToBindingsCache('style: containerStyle(), zoom: zoom, click: onClick', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'zoom': function () { return $context.$data.zoom; }, 'click': function () { return $context.$data.onClick; } }; });\naddToBindingsCache('style: checkStyle(), template: {name: $data.checkStateStyleIcon, if: !!ko.unwrap($data.checkStateStyleIcon)}', function ($context, $element) { return { 'style': function () { return $context.$data.checkStyle(); }, 'template': function () { return { 'name': $context.$data.checkStateStyleIcon, 'if': !!$context.ko.unwrap($context.$data.checkStateStyleIcon) }; } }; });\naddToBindingsCache('style: checkStyle()', function ($context, $element) { return { 'style': function () { return $context.$data.checkStyle(); } }; });\naddToBindingsCache('style: { fill: checked() ? \\'black\\' : \\'transparent\\' }', function ($context, $element) { return { 'style': function () { return { 'fill': $context.$data.checked() ? 'black' : 'transparent' }; } }; });\naddToBindingsCache('style: containerStyle(), dxclick: activateEditor, zoom: zoom, css: { active: active(), readonly: field.readOnly() }', function ($context, $element) { return { 'style': function () { return $context.$data.containerStyle(); }, 'dxclick': function () { return $context.$data.activateEditor; }, 'zoom': function () { return $context.$data.zoom; }, 'css': function () { return { 'active': $context.$data.active(), 'readonly': $context.$data.field.readOnly() }; } }; });\naddToBindingsCache('style: style, text: text', function ($context, $element) { return { 'style': function () { return $context.$data.style; }, 'text': function () { return $context.$data.text; } }; });\naddToBindingsCache('value: field._editorValue, valueUpdate: \\'keypress\\', style: textStyle(), event: { blur: hideEditor, keyup: keypressAction }', function ($context, $element) { return { 'value': function () { return $context.$data.field._editorValue; }, 'valueUpdate': function () { return 'keypress'; }, 'style': function () { return $context.$data.textStyle(); }, 'event': function () { return { 'blur': $context.$data.hideEditor, 'keyup': $context.$data.keypressAction }; }, '_ko_property_writers': function () { return { 'value': function (_z) { Object($context.$data.field)._editorValue = _z; } }; } }; });\naddToBindingsCache('if: !active() || field.readOnly()', function ($context, $element) { return { 'if': function () { return !$context.$data.active() || $context.$data.field.readOnly(); } }; });\naddToBindingsCache('if: htmlValue()', function ($context, $element) { return { 'if': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('ifnot: htmlValue()', function ($context, $element) { return { 'ifnot': function () { return $context.$data.htmlValue(); } }; });\naddToBindingsCache('if: active() && !field.readOnly()', function ($context, $element) { return { 'if': function () { return $context.$data.active() && !$context.$data.field.readOnly(); } }; });\naddToBindingsCache('template: { name: editorTemplate, data: data }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.editorTemplate, 'data': $context.$data.data }; } }; });\naddToBindingsCache('template: \\'dxrp-editing-field-image-editor\\'', function ($context, $element) { return { 'template': function () { return 'dxrp-editing-field-image-editor'; } }; });\naddToBindingsCache('foreach: cells', function ($context, $element) { return { 'foreach': function () { return $context.$data.cells; } }; });\naddToBindingsCache('attr: { \\'action\\': exportActionUri }, foreach: exportFormData', function ($context, $element) { return { 'attr': function () { return { 'action': $context.$data.exportActionUri }; }, 'foreach': function () { return $context.$data.exportFormData; } }; });\naddToBindingsCache('attr: {\\'name\\': name, \\'value\\': value}', function ($context, $element) { return { 'attr': function () { return { 'name': $context.$data.name, 'value': $context.$data.value }; } }; });\naddToBindingsCache('dxPopup: { width: popupWidth, height: popupHeight, title: getPopupTitle(), visible: popupVisible, showCloseButton: true, toolbarItems: popupButtons, wrapperAttr: { class: \\'dxrd-print-dialog dx-editors dx-widget\\' }, container: $root.getPopupContainer($element), position: { of: $root.getPopupContainer($element) } }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': $context.$data.popupWidth, 'height': $context.$data.popupHeight, 'title': $context.$data.getPopupTitle(), 'visible': $context.$data.popupVisible, 'showCloseButton': true, 'toolbarItems': $context.$data.popupButtons, 'wrapperAttr': { 'class': 'dxrd-print-dialog dx-editors dx-widget' }, 'container': $context.$root.getPopupContainer($element), 'position': { 'of': $context.$root.getPopupContainer($element) } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'The browser sent the document to the printer.\\', \\'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Caption\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('The browser sent the document to the printer.', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_Caption'); } }; });\naddToBindingsCache('text: printingTextPrefix', function ($context, $element) { return { 'text': function () { return $context.$data.printingTextPrefix; } }; });\naddToBindingsCache('click: printingLinkCallback, text: $root.getLocalization(\\'document in PDF format\\', \\'ASPxReportsStringId.WebDocumentViewer_Print_Popup_LinkText\\')', function ($context, $element) { return { 'click': function () { return $context.$data.printingLinkCallback; }, 'text': function () { return $context.$root.getLocalization('document in PDF format', 'ASPxReportsStringId.WebDocumentViewer_Print_Popup_LinkText'); } }; });\naddToBindingsCache('text: printingTextPostfix', function ($context, $element) { return { 'text': function () { return $context.$data.printingTextPostfix; } }; });\naddToBindingsCache('if: $data.printingTextPrefix', function ($context, $element) { return { 'if': function () { return $context.$data.printingTextPrefix; } }; });\naddToBindingsCache('if: $data.printingTextPostfix', function ($context, $element) { return { 'if': function () { return $context.$data.printingTextPostfix; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Export Options\\', \\'DevExpress.XtraReports.UI.XtraReport.ExportOptions\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Export Options', 'DevExpress.XtraReports.UI.XtraReport.ExportOptions'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('dxPropertyGrid: { target: model }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.model }; } }; });\naddToBindingsCache('dxMenu: { wrapperAttr: { class: \\'dxrd-preview-export-to dxd-button-back-color dxd-state-normal dxd-icon-highlighted\\' }, disabled: $data.disabled(), items: items, cssClass: \\'dxrdp-export-to-menu\\', onItemClick: clickAction, onSubmenuShowing: $data.eventHandlers.onSubmenuShowing($root.getPopupContainer($element), $element), onSubmenuShown: $data.eventHandlers.onSubmenuShown, onSubmenuHiding: $data.eventHandlers.onSubmenuHiding, onItemRendered: $data.eventHandlers.onItemRendered, tabIndex: \\'-1\\' }', function ($context, $element) { return { 'dxMenu': function () { return { 'wrapperAttr': { 'class': 'dxrd-preview-export-to dxd-button-back-color dxd-state-normal dxd-icon-highlighted' }, 'disabled': $context.$data.disabled(), 'items': $context.$data.items, 'cssClass': 'dxrdp-export-to-menu', 'onItemClick': $context.$data.clickAction, 'onSubmenuShowing': $context.$data.eventHandlers.onSubmenuShowing($context.$root.getPopupContainer($element), $element), 'onSubmenuShown': $context.$data.eventHandlers.onSubmenuShown, 'onSubmenuHiding': $context.$data.eventHandlers.onSubmenuHiding, 'onItemRendered': $context.$data.eventHandlers.onItemRendered, 'tabIndex': '-1' }; } }; });\naddToBindingsCache('css: ko.unwrap($data.imageClassName), template: ko.unwrap($data.imageTemplateName)', function ($context, $element) { return { 'css': function () { return $context.ko.unwrap($context.$data.imageClassName); }, 'template': function () { return $context.ko.unwrap($context.$data.imageTemplateName); } }; });\naddToBindingsCache('if: model', function ($context, $element) { return { 'if': function () { return $context.$data.model; } }; });\naddToBindingsCache('dxclick: function(_, event){ onClick(event); event.stopPropagation(); }, style: { top: topP, left: $data.leftP, right: $data.rightP, height: heightP, width: widthP }, css: { \\'dxrd-report-preview-brick-selected\\': $data.active, \\'dxrd-report-preview-brick-selectable\\': !($data.bricks) }', function ($context, $element) { return { 'dxclick': function () { return function (_, event) { $context.$data.onClick(event); event.stopPropagation(); }; }, 'style': function () { return { 'top': $context.$data.topP, 'left': $context.$data.leftP, 'right': $context.$data.rightP, 'height': $context.$data.heightP, 'width': $context.$data.widthP }; }, 'css': function () { return { 'dxrd-report-preview-brick-selected': $context.$data.active, 'dxrd-report-preview-brick-selectable': !($context.$data.bricks) }; } }; });\naddToBindingsCache('css: { \\'dxrdp-navigation-brick-drill-down\\' : !!navigation.drillDownKey, \\'dxrdp-navigation-brick-sorting\\' : !!navigation.sortData, \\'dxrdp-navigation-brick-sorting-desc\\': navigation.sortData && navigation.sortData.order === 1, \\'dxrdp-navigation-brick-sorting-asc\\': navigation.sortData && navigation.sortData.order === 2 }', function ($context, $element) { return { 'css': function () { return { 'dxrdp-navigation-brick-drill-down': !!$context.$data.navigation.drillDownKey, 'dxrdp-navigation-brick-sorting': !!$context.$data.navigation.sortData, 'dxrdp-navigation-brick-sorting-desc': $context.$data.navigation.sortData && $context.$data.navigation.sortData.order === 1, 'dxrdp-navigation-brick-sorting-asc': $context.$data.navigation.sortData && $context.$data.navigation.sortData.order === 2 }; } }; });\naddToBindingsCache('attr: {\\'aria-label\\': $parent.currentPageAriaLabelImgAlt($data.pageIndex) }, dxclick: clickToBrick, \\'brick-selection-prog\\': { page: $data, preview: $parent, click: function(pageIndex) { $parent.goToPage(pageIndex) } }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$parent.currentPageAriaLabelImgAlt($context.$data.pageIndex) }; }, 'dxclick': function () { return $context.$data.clickToBrick; }, 'brick-selection-prog': function () { return { 'page': $context.$data, 'preview': $context.$parent, 'click': function (pageIndex) { $context.$parent.goToPage(pageIndex); } }; } }; });\naddToBindingsCache('styleunit: { \\'width\\': width() + 2, \\'height\\': height() + 2 }, visible: pageLoading', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width() + 2, 'height': $context.$data.height() + 2 }; }, 'visible': function () { return $context.$data.pageLoading; } }; });\naddToBindingsCache('styleunit: { \\'paddingTop\\': height() / 2.3 }', function ($context, $element) { return { 'styleunit': function () { return { 'paddingTop': $context.$data.height() / 2.3 }; } }; });\naddToBindingsCache('text: loadingText', function ($context, $element) { return { 'text': function () { return $context.$data.loadingText; } }; });\naddToBindingsCache('attr: { src: displayImageSrc, \\'alt\\': $parent.currentPageAriaLabelImgAlt($data.pageIndex) }', function ($context, $element) { return { 'attr': function () { return { 'src': $context.$data.displayImageSrc, 'alt': $context.$parent.currentPageAriaLabelImgAlt($context.$data.pageIndex) }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.editingFieldsKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.editingFieldsKeyboardHelper; } }; });\naddToBindingsCache('if: $data.navigation', function ($context, $element) { return { 'if': function () { return $context.$data.navigation; } }; });\naddToBindingsCache('foreach: clickableBricks', function ($context, $element) { return { 'foreach': function () { return $context.$data.clickableBricks; } }; });\naddToBindingsCache('template: { name: \"dxrd-page-brick-clickable\", data: $data }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-page-brick-clickable', 'data': $context.$data }; } }; });\naddToBindingsCache('dxclick: activateEditor, css: parentPopupClass', function ($context, $element) { return { 'dxclick': function () { return $context.$data.activateEditor; }, 'css': function () { return $context.$data.parentPopupClass; } }; });\naddToBindingsCache('dxPainter: $data.getPainter()', function ($context, $element) { return { 'dxPainter': function () { return $context.$data.getPainter(); } }; });\naddToBindingsCache('dxPopup: { width: contentData.containerStyle().width, height: contentData.containerStyle().height, position: { boundary: $root.getPopupContainer($element), of: getPositionTarget($element), collision: \\'flipfit flipfit\\' }, container: $root.getPopupContainer($element), showTitle: false, target: $root.getPopupContainer($element), deferRendering: false, hideOnOutsideClick: true, showCloseButton: false, onContentReady: onContentReady, onHiding: onHiding, onShown: onShown, shading: shading, wrapperAttr: { class: \\'dx-picture-edit-popup-content dx-picture-edit-popup-content-fullscreen\\' }, animation: { show: { type: \\'slide\\', duration: 0, to: { opacity: 1 }, from: { opacity: 0 } }, hide: { type: \\'fade\\', duration: 100, to: { opacity: 0 }, from: { opacity: 1 } } }, visible: isVisible($element) }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': $context.$data.contentData.containerStyle().width, 'height': $context.$data.contentData.containerStyle().height, 'position': { 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.getPositionTarget($element), 'collision': 'flipfit flipfit' }, 'container': $context.$root.getPopupContainer($element), 'showTitle': false, 'target': $context.$root.getPopupContainer($element), 'deferRendering': false, 'hideOnOutsideClick': true, 'showCloseButton': false, 'onContentReady': $context.$data.onContentReady, 'onHiding': $context.$data.onHiding, 'onShown': $context.$data.onShown, 'shading': $context.$data.shading, 'wrapperAttr': { 'class': 'dx-picture-edit-popup-content dx-picture-edit-popup-content-fullscreen' }, 'animation': { 'show': { 'type': 'slide', 'duration': 0, 'to': { 'opacity': 1 }, 'from': { 'opacity': 0 } }, 'hide': { 'type': 'fade', 'duration': 100, 'to': { 'opacity': 0 }, 'from': { 'opacity': 1 } } }, 'visible': $context.$data.isVisible($element) }; } }; });\naddToBindingsCache('template: { name: \\'dx-picture-editing-popup\\', data: $data.getPopupData() }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-picture-editing-popup', 'data': $context.$data.getPopupData() }; } }; });\naddToBindingsCache('if: showContent', function ($context, $element) { return { 'if': function () { return $context.$data.showContent; } }; });\naddToBindingsCache('template: { name: contentTemplate, data: contentData, afterRender: $data.renderedHandler }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.contentData, 'afterRender': $context.$data.renderedHandler }; } }; });\naddToBindingsCache('dxSelectBox: { items: zoomItems, value: $data.zoom, displayExpr: displayExpr, displayCustomValue: true, acceptCustomValue: true, onCustomItemCreating: onCustomItemCreating, useItemTextAsTitle: true, width: 140, dropDownOptions: { container: $root.getPopupContainer($element), position: { my: \\'left top\\', at: \\'left bottom\\', of: $element }, wrapperAttr: { class: \\'dx-zoom-selectbox-popup-wrapper\\' } }, tabIndex: \\'-1\\', inputAttr: { \\'aria-label\\': $root.getLocalization(\\'Zoom\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox\\') }}', function ($context, $element) { return { 'dxSelectBox': function () { return { 'items': $context.$data.zoomItems, 'value': $context.$data.zoom, 'displayExpr': $context.$data.displayExpr, 'displayCustomValue': true, 'acceptCustomValue': true, 'onCustomItemCreating': $context.$data.onCustomItemCreating, 'useItemTextAsTitle': true, 'width': 140, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'my': 'left top', 'at': 'left bottom', 'of': $element }, 'wrapperAttr': { 'class': 'dx-zoom-selectbox-popup-wrapper' } }, 'tabIndex': '-1', 'inputAttr': { 'aria-label': $context.$root.getLocalization('Zoom', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelZoomCombobox') } }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', direction: \\'horizontal\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'direction': 'horizontal', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('keyDownActions: actionLists, accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'keyDownActions': function () { return $context.$data.actionLists; }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('visible: active() && visible(), accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'visible': function () { return $context.$data.active() && $context.$data.visible(); }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header'); } }; });\naddToBindingsCache('dxSearchEditor: { searchModel: $data, inputAttr: { \\'type\\': \\'search\\', \\'title\\': $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_Header\\') }}', function ($context, $element) { return { 'dxSearchEditor': function () { return { 'searchModel': $context.$data, 'inputAttr': { 'type': 'search', 'title': $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_Header') } }; } }; });\naddToBindingsCache('dxButton: { disabled: $data.stopSearchDisabled(), text: $data.loading() ? $root.getLocalization(\\'Stop\\', \\'ASPxReportsStringId.SearchDialog_StopButton\\'): $root.getLocalization(\\'Search\\', \\'ASPxReportsStringId.SearchDialog_SearchButton\\'), onClick: $data.searchButtonClick }', function ($context, $element) { return { 'dxButton': function () { return { 'disabled': $context.$data.stopSearchDisabled(), 'text': $context.$data.loading() ? $context.$root.getLocalization('Stop', 'ASPxReportsStringId.SearchDialog_StopButton') : $context.$root.getLocalization('Search', 'ASPxReportsStringId.SearchDialog_SearchButton'), 'onClick': $context.$data.searchButtonClick }; } }; });\naddToBindingsCache('dxCheckBox: { value: matchCase, text: $root.getLocalization(\\'Match case\\', \\'ASPxReportsStringId.SearchDialog_Case\\')}', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.matchCase, 'text': $context.$root.getLocalization('Match case', 'ASPxReportsStringId.SearchDialog_Case') }; } }; });\naddToBindingsCache('dxCheckBox: { value: matchWholeWord, text: $root.getLocalization(\\'Match whole word only\\', \\'ASPxReportsStringId.SearchDialog_WholeWord\\')}', function ($context, $element) { return { 'dxCheckBox': function () { return { 'value': $context.$data.matchWholeWord, 'text': $context.$root.getLocalization('Match whole word only', 'ASPxReportsStringId.SearchDialog_WholeWord') }; } }; });\naddToBindingsCache('attr: { id: $data.searchResultHeaderId, \\'aria-busy\\': $data.loading() ? \\'true\\' : \\'false\\' }', function ($context, $element) { return { 'attr': function () { return { 'id': $context.$data.searchResultHeaderId, 'aria-busy': $context.$data.loading() ? 'true' : 'false' }; } }; });\naddToBindingsCache('text: $data.searchResultCount', function ($context, $element) { return { 'text': function () { return $context.$data.searchResultCount; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'results in\\', \\'ASPxReportsStringId.SearchDialog_Results_In\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('results in', 'ASPxReportsStringId.SearchDialog_Results_In'); } }; });\naddToBindingsCache('text: $data.searchResultPageCount', function ($context, $element) { return { 'text': function () { return $context.$data.searchResultPageCount; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'pages\\', \\'ASPxReportsStringId.SearchDialog_Results_Pages\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('pages', 'ASPxReportsStringId.SearchDialog_Results_Pages'); } }; });\naddToBindingsCache('dxLoadIndicator: { visible: $data.loading }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': $context.$data.loading }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-arrowup\\', onClick: $data.findUp }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-arrowup', 'onClick': $context.$data.findUp }; } }; });\naddToBindingsCache('dxButtonWithTemplate: { icon: \\'dxrd-svg-operations-arrowdown\\', onClick: $data.findDown }', function ($context, $element) { return { 'dxButtonWithTemplate': function () { return { 'icon': 'dxrd-svg-operations-arrowdown', 'onClick': $context.$data.findDown }; } }; });\naddToBindingsCache('dxList: { dataSource: searchResultDataSource, pageLoadMode: \\'scrollBottom\\', focusStateEnabled:false, hoverStateEnabled:false, onItemRendered: onItemRendered, noDataText: \\'\\', encodeNoDataText: true, height: \\'80%\\' }, attr: { \\'aria-labelledby\\': $data.searchResultHeaderId }', function ($context, $element) { return { 'dxList': function () { return { 'dataSource': $context.$data.searchResultDataSource, 'pageLoadMode': 'scrollBottom', 'focusStateEnabled': false, 'hoverStateEnabled': false, 'onItemRendered': $context.$data.onItemRendered, 'noDataText': '', 'encodeNoDataText': true, 'height': '80%' }; }, 'attr': function () { return { 'aria-labelledby': $context.$data.searchResultHeaderId }; } }; });\naddToBindingsCache('dxAction: { model: $data, action: $parent.itemClickAction }, attr: {\\'aria-label\\': $data.data.text + \\', \\' + $root.dx._static.formatSearchResult($data.data) + \\', \\' + ($parent.searchResult().indexOf($data.data) + 1) + \\' of \\' + $parent.searchResult().length }', function ($context, $element) { return { 'dxAction': function () { return { 'model': $context.$data, 'action': $context.$parent.itemClickAction }; }, 'attr': function () { return { 'aria-label': $context.$data.data.text + ', ' + $context.$root.dx._static.formatSearchResult($context.$data.data) + ', ' + ($context.$parent.searchResult().indexOf($context.$data.data) + 1) + ' of ' + $context.$parent.searchResult().length }; } }; });\naddToBindingsCache('text: $data.data.text', function ($context, $element) { return { 'text': function () { return $context.$data.data.text; } }; });\naddToBindingsCache('text: $root.dx._static.formatSearchResult($data.data)', function ($context, $element) { return { 'text': function () { return $context.$root.dx._static.formatSearchResult($context.$data.data); } }; });\naddToBindingsCache('text: noResultText()', function ($context, $element) { return { 'text': function () { return $context.$data.noResultText(); } }; });\naddToBindingsCache('visible: visible, css: $data.cssClasses, accessibilityKeyboardHelper: $data.progressBarAccessibility', function ($context, $element) { return { 'visible': function () { return $context.$data.visible; }, 'css': function () { return $context.$data.cssClasses; }, 'accessibilityKeyboardHelper': function () { return $context.$data.progressBarAccessibility; } }; });\naddToBindingsCache('style : { width: progress() + \\'%\\' }', function ($context, $element) { return { 'style': function () { return { 'width': $context.$data.progress() + '%' }; } }; });\naddToBindingsCache('text: cancelText, visible: $data.cancelVisible, dxAction: { model: $data, action: function() { $data.stop && stop(); }}', function ($context, $element) { return { 'text': function () { return $context.$data.cancelText; }, 'visible': function () { return $context.$data.cancelVisible; }, 'dxAction': function () { return { 'model': $context.$data, 'action': function () { $context.$data.stop && $context.$data.stop(); } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Preview Parameters\\', \\'ASPxReportsStringId.ReportDesigner_Preview_ParametersTitle\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Preview Parameters', 'ASPxReportsStringId.ReportDesigner_Preview_ParametersTitle'); } }; });\naddToBindingsCache('text: $root.getLocalization(\\'The report does not contain any parameters.\\', \\'ASPxReportsStringId.WebDocumentViewer_NoParameters\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('The report does not contain any parameters.', 'ASPxReportsStringId.WebDocumentViewer_NoParameters'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }, dxValidationGroup: {}, accessibilityKeyboardHelper: $data.keyboardHelper', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; }, 'dxValidationGroup': function () { return {}; }, 'accessibilityKeyboardHelper': function () { return $context.$data.keyboardHelper; } }; });\naddToBindingsCache('dxLoadIndicator: { visible: model.parametersLoading }', function ($context, $element) { return { 'dxLoadIndicator': function () { return { 'visible': $context.$data.model.parametersLoading }; } }; });\naddToBindingsCache('dxButton: { text: $root.getLocalization(\\'Reset\\', \\'ASPxReportsStringId.ParametersPanel_Reset\\'), onClick: function() { model.restore(); } }', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$root.getLocalization('Reset', 'ASPxReportsStringId.ParametersPanel_Reset'), 'onClick': function () { $context.$data.model.restore(); } }; } }; });\naddToBindingsCache('dxButton: { text: $root.getLocalization(\\'Submit\\', \\'ASPxReportsStringId.ParametersPanel_Submit\\'), onClick: function(params) { model.validateAndSubmit(params); } }', function ($context, $element) { return { 'dxButton': function () { return { 'text': $context.$root.getLocalization('Submit', 'ASPxReportsStringId.ParametersPanel_Submit'), 'onClick': function (params) { $context.$data.model.validateAndSubmit(params); } }; } }; });\naddToBindingsCache('dxSelectBox: { dataSource: pageItems, value: selectedItem, opened: opened, displayExpr: displayExpr, useItemTextAsTitle: true, onFocusOut: focusOut, onKeyUp: keyUp, itemTemplate: itemTemplate, searchMode: searchMode, searchEnabled: searchEnabled, searchTimeout: searchTimeout, disabled: disabled, dropDownOptions: { container: $root.getPopupContainer($element), wrapperAttr: { class: \\'dx-page-selectbox-popup-wrapper\\', \\'aria-label\\': $root.getLocalization(\\'Pager\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox\\') }, }, tabIndex: \\'-1\\', inputAttr: { \\'aria-label\\': $root.getLocalization(\\'Pager\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox\\') } }', function ($context, $element) { return { 'dxSelectBox': function () { return { 'dataSource': $context.$data.pageItems, 'value': $context.$data.selectedItem, 'opened': $context.$data.opened, 'displayExpr': $context.$data.displayExpr, 'useItemTextAsTitle': true, 'onFocusOut': $context.$data.focusOut, 'onKeyUp': $context.$data.keyUp, 'itemTemplate': $context.$data.itemTemplate, 'searchMode': $context.$data.searchMode, 'searchEnabled': $context.$data.searchEnabled, 'searchTimeout': $context.$data.searchTimeout, 'disabled': $context.$data.disabled, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'wrapperAttr': { 'class': 'dx-page-selectbox-popup-wrapper', 'aria-label': $context.$root.getLocalization('Pager', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox') } }, 'tabIndex': '-1', 'inputAttr': { 'aria-label': $context.$root.getLocalization('Pager', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPagerCombobox') } }; } }; });\naddToBindingsCache('text: $root.getLocalization(\\'Document Map\\', \\'ASPxReportsStringId.DocumentViewer_RibbonCommandText_DocumentMap\\')', function ($context, $element) { return { 'text': function () { return $context.$root.getLocalization('Document Map', 'ASPxReportsStringId.DocumentViewer_RibbonCommandText_DocumentMap'); } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }, accessibilityKeyboardHelper: $parent.keyboardHelper', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; }, 'accessibilityKeyboardHelper': function () { return $context.$parent.keyboardHelper; } }; });\naddToBindingsCache('treelist: documentMapOptions', function ($context, $element) { return { 'treelist': function () { return $context.$data.documentMapOptions; } }; });\naddToBindingsCache('if: (searchResultCount() > 0 || loading())', function ($context, $element) { return { 'if': function () { return ($context.$data.searchResultCount() > 0 || $context.$data.loading()); } }; });\naddToBindingsCache('if: (searchCompleted() && searchResultCount() == 0)', function ($context, $element) { return { 'if': function () { return ($context.$data.searchCompleted() && $context.$data.searchResultCount() == 0); } }; });\naddToBindingsCache('if: (model && !model.isEmpty())', function ($context, $element) { return { 'if': function () { return ($context.$data.model && !$context.$data.model.isEmpty()); } }; });\naddToBindingsCache('if: (!model || model.isEmpty())', function ($context, $element) { return { 'if': function () { return (!$context.$data.model || $context.$data.model.isEmpty()); } }; });\naddToBindingsCache('template: { name: \\'dx-propertieseditor\\', data: $data.propertyGrid }', function ($context, $element) { return { 'template': function () { return { 'name': 'dx-propertieseditor', 'data': $context.$data.propertyGrid }; } }; });\naddToBindingsCache('dxTemplate : { name: \\'item\\' }', function () { return { dxTemplate: { name: 'item' } }; });\naddToBindingsCache('visible: reportPreview.previewVisible, cssArray: [ $data.rootStyle , { \\'dx-rtl\\' : $data.rtl, \\'dx-ltr\\': !$data.rtl } ]', function ($context, $element) { return { 'visible': function () { return $context.$data.reportPreview.previewVisible; }, 'cssArray': function () { return [$context.$data.rootStyle, { 'dx-rtl': $context.$data.rtl, 'dx-ltr': !$context.$data.rtl }]; } }; });\naddToBindingsCache('textCopier, css: { \\'dx-rtl\\': $data.rtlReport, \\'dxrp-editing-fields-hightlighted\\': editingFieldsHighlighted }', function ($context, $element) { return { 'textCopier': function () { return undefined; }, 'css': function () { return { 'dx-rtl': $context.$data.rtlReport, 'dxrp-editing-fields-hightlighted': $context.$data.editingFieldsHighlighted }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.previewBrickKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.previewBrickKeyboardHelper; } }; });\naddToBindingsCache('autoFit: { autoFitBy: $parent.autoFitBy, zoom: zoom, width: originalWidth, height: originalHeight, rightPanelWidth: $root.tabPanel.width, previewSize: $parent.previewSize, brickLoading: brickLoading }, styleunit: { width: width, height: height }', function ($context, $element) { return { 'autoFit': function () { return { 'autoFitBy': $context.$parent.autoFitBy, 'zoom': $context.$data.zoom, 'width': $context.$data.originalWidth, 'height': $context.$data.originalHeight, 'rightPanelWidth': $context.$root.tabPanel.width, 'previewSize': $context.$parent.previewSize, 'brickLoading': $context.$data.brickLoading }; }, 'styleunit': function () { return { 'width': $context.$data.width, 'height': $context.$data.height }; } }; });\naddToBindingsCache('lazyImages: { enabled: showMultipagePreview, updateCallback: onSizeChanged }', function ($context, $element) { return { 'lazyImages': function () { return { 'enabled': $context.$data.showMultipagePreview, 'updateCallback': $context.$data.onSizeChanged }; } }; });\naddToBindingsCache('styleunit: { \\'width\\': width(), \\'height\\': height() }, toView: { active: active }, css : { \\'dxrd-report-preview-active\\': active }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.width(), 'height': $context.$data.height() }; }, 'toView': function () { return { 'active': $context.$data.active }; }, 'css': function () { return { 'dxrd-report-preview-active': $context.$data.active }; } }; });\naddToBindingsCache('css: { \\'dxrd-visually-hidden\\': currentPage() }', function ($context, $element) { return { 'css': function () { return { 'dxrd-visually-hidden': $context.$data.currentPage() }; } }; });\naddToBindingsCache('text: emptyDocumentCaption()', function ($context, $element) { return { 'text': function () { return $context.$data.emptyDocumentCaption(); } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(\\'Clipboard\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaClipboard\\') }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization('Clipboard', 'ASPxReportsStringId.WebDocumentViewer_AriaClipboard') }; } }; });\naddToBindingsCache('dxViewerExport: $data', function ($context, $element) { return { 'dxViewerExport': function () { return $context.$data; } }; });\naddToBindingsCache('with: progressBar', function ($context, $element) { return { 'with': function () { return $context.$data.progressBar; } }; });\naddToBindingsCache('template: \\'dxrd-preview-progress-bar\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-preview-progress-bar'; } }; });\naddToBindingsCache('if: !showMultipagePreview()', function ($context, $element) { return { 'if': function () { return !$context.$data.showMultipagePreview(); } }; });\naddToBindingsCache('with: currentPage', function ($context, $element) { return { 'with': function () { return $context.$data.currentPage; } }; });\naddToBindingsCache('if: pageLoading() || (!pageLoading() && displayImageSrc())', function ($context, $element) { return { 'if': function () { return $context.$data.pageLoading() || (!$context.$data.pageLoading() && $context.$data.displayImageSrc()); } }; });\naddToBindingsCache('template: { name: \\'dxrd-preview-page\\', afterRender: function() { $parent.delayedInit() } }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-preview-page', 'afterRender': function () { $context.$parent.delayedInit(); } }; } }; });\naddToBindingsCache('if: showMultipagePreview() && !!currentPage()', function ($context, $element) { return { 'if': function () { return $context.$data.showMultipagePreview() && !!$context.$data.currentPage(); } }; });\naddToBindingsCache('foreach: {data: pages, afterRender: function() { $parent.model.delayedInit() } }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.pages, 'afterRender': function () { $context.$parent.model.delayedInit(); } }; } }; });\naddToBindingsCache('lazy: { if: pageLoading() || (!pageLoading() && displayImageSrc()) }', function ($context, $element) { return { 'lazy': function () { return { 'if': $context.$data.pageLoading() || (!$context.$data.pageLoading() && $context.$data.displayImageSrc()) }; } }; });\naddToBindingsCache('template: \\'dxrd-preview-page\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-preview-page'; } }; });\naddToBindingsCache('cacheElement: { action: function(element) { $data._$element = element; } }, dxEllipsisEditor: { value: _displayText, readOnly:true, inputAttr: { \\'aria-label\\': $parent.displayName, id: _editorInputId }, openOnFieldClick: true, buttonAction: function() { $data._showPopup(); } }', function ($context, $element) { return { 'cacheElement': function () { return { 'action': function (element) { $context.$data._$element = element; } }; }, 'dxEllipsisEditor': function () { return { 'value': $context.$data._displayText, 'readOnly': true, 'inputAttr': { 'aria-label': $context.$parent.displayName, 'id': $context.$data._editorInputId }, 'openOnFieldClick': true, 'buttonAction': function () { $context.$data._showPopup(); } }; } }; });\naddToBindingsCache('dxPopup: { width: \\'max-content\\', height: $root.calculateWithZoomFactor(362), wrapperAttr: { class: \\'dxrv-daterange-editor-popup-wrapper\\' }, position: { my: \\'right top\\', at: \\'right bottom\\', of: $data._$element, collision: \\'fit fit\\', offset: \\'1 -1\\' }, container: $root.getPopupContainer($element), target: $root.getPopupContainer($element), showTitle: false, showCloseButton: false, hideOnOutsideClick: true, animation: {}, shading: false, visible: _popupVisible }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 'max-content', 'height': $context.$root.calculateWithZoomFactor(362), 'wrapperAttr': { 'class': 'dxrv-daterange-editor-popup-wrapper' }, 'position': { 'my': 'right top', 'at': 'right bottom', 'of': $context.$data._$element, 'collision': 'fit fit', 'offset': '1 -1' }, 'container': $context.$root.getPopupContainer($element), 'target': $context.$root.getPopupContainer($element), 'showTitle': false, 'showCloseButton': false, 'hideOnOutsideClick': true, 'animation': {}, 'shading': false, 'visible': $context.$data._popupVisible }; } }; });\naddToBindingsCache('dxScrollView: { showScrollbar: \\'always\\', direction: \\'horizontal\\', useNative: false, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'dxScrollView': function () { return { 'showScrollbar': 'always', 'direction': 'horizontal', 'useNative': false, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('accessibilityKeyboardHelper: $data.dialogKeyboardHelper', function ($context, $element) { return { 'accessibilityKeyboardHelper': function () { return $context.$data.dialogKeyboardHelper; } }; });\naddToBindingsCache('attr: { \\'aria-label\\': $root.getLocalization(\\'Predefined periods\\', \\'ASPxReportsStringId.WebDocumentViewer_AriaLabelPredefinedPeriods\\') }, accessibilityKeyboardHelper: $data.dialogKeyboardHelper.predefinedDateRangesKeyboardHelper, dxScrollView: { showScrollbar: \\'onHover\\', scrollByContent: false, bounceEnabled: false, useNative: false, scrollByThumb: true, onInitialized: function(e) { e.component.option(\\'useKeyboard\\', false); } }', function ($context, $element) { return { 'attr': function () { return { 'aria-label': $context.$root.getLocalization('Predefined periods', 'ASPxReportsStringId.WebDocumentViewer_AriaLabelPredefinedPeriods') }; }, 'accessibilityKeyboardHelper': function () { return $context.$data.dialogKeyboardHelper.predefinedDateRangesKeyboardHelper; }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'scrollByContent': false, 'bounceEnabled': false, 'useNative': false, 'scrollByThumb': true, 'onInitialized': function (e) { e.component.option('useKeyboard', false); } }; } }; });\naddToBindingsCache('attr: { \\'aria-selected\\': $parent._isSelected($data) }, css: { \\'dxd-state-selected\\': $parent._isSelected($data) }, dxAction: { model: $data, action: function() { $parent.applyDate($data.range(), true) }}', function ($context, $element) { return { 'attr': function () { return { 'aria-selected': $context.$parent._isSelected($context.$data) }; }, 'css': function () { return { 'dxd-state-selected': $context.$parent._isSelected($context.$data) }; }, 'dxAction': function () { return { 'model': $context.$data, 'action': function () { $context.$parent.applyDate($context.$data.range(), true); } }; } }; });\naddToBindingsCache('dxCalendar: { value: value, cellTemplate: \\'select_cell\\', height: height, min: min }', function ($context, $element) { return { 'dxCalendar': function () { return { 'value': $context.$data.value, 'cellTemplate': 'select_cell', 'height': $context.$data.height, 'min': $context.$data.min }; } }; });\naddToBindingsCache('css: { \\'dxd-back-accented\\': $parent.inRange(date) }', function ($context, $element) { return { 'css': function () { return { 'dxd-back-accented': $context.$parent.inRange($context.$data.date) }; } }; });\naddToBindingsCache('dxrvDateRangeEditor: {value: $data.value() }', function ($context, $element) { return { 'dxrvDateRangeEditor': function () { return { 'value': $context.$data.value() }; } }; });\naddToBindingsCache('template: { name: popupTemplate, data: popupModel }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.popupTemplate, 'data': $context.$data.popupModel }; } }; });\naddToBindingsCache('dxTemplate:{ name:\\'select_cell\\' }', function () { return { dxTemplate: { name: 'select_cell' } }; });\naddToBindingsCache('template: { name: \\'dxrd-propertieseditor\\', data: viewmodel }, css: { \\'dxrd-parameters-border\\' : !$data.hideBorder, \\'dxrd-parameters-horizontal\\' : $data.showHorizontally, }', function ($context, $element) { return { 'template': function () { return { 'name': 'dxrd-propertieseditor', 'data': $context.$data.viewmodel }; }, 'css': function () { return { 'dxrd-parameters-border': !$context.$data.hideBorder, 'dxrd-parameters-horizontal': $context.$data.showHorizontally }; } }; });\naddToBindingsCache('dxTagBox: $parent.getOptions({ dataSource: $data.dataSource, searchEnabled: true, useItemTextAsTitle: true, searchExpr: $data.searchExpr || [\\'displayValue\\'], value: $data.value, displayExpr: $data.displayExpr || \\'displayValue\\', valueExpr: $data.valueExpr || \\'value\\', multiline: false, showSelectionControls: true, showDropDownButton: !!$data.showDropDownButton, selectAllMode: \\'allPages\\', selectedItems: $data.selectedItems, inputAttr: { \\'aria-label\\': $parent.displayName, id: $parent.editorInputId }, disabled: $parent.disabled, selectAllText: $root.getLocalization(\\'Select All\\', \\'AnalyticsCoreStringId.SelectAll\\'), placeholder: $root.dx._static.selectPlaceholder(), maxDisplayedTags: $data.maxDisplayedTags, showMultiTagOnly: true, dropDownOptions: { container: $root.getPopupContainer($element), position: { boundary: $root.getPopupContainer($element), collision: \\'flipfit flipfit\\', of: $element, at: \\'bottom\\', my: \\'top\\' } } }), dxValidator: { validationRules: $parent.validationRules || [] }', function ($context, $element) { return { 'dxTagBox': function () { return $context.$parent.getOptions({ 'dataSource': $context.$data.dataSource, 'searchEnabled': true, 'useItemTextAsTitle': true, 'searchExpr': $context.$data.searchExpr || ['displayValue'], 'value': $context.$data.value, 'displayExpr': $context.$data.displayExpr || 'displayValue', 'valueExpr': $context.$data.valueExpr || 'value', 'multiline': false, 'showSelectionControls': true, 'showDropDownButton': !!$context.$data.showDropDownButton, 'selectAllMode': 'allPages', 'selectedItems': $context.$data.selectedItems, 'inputAttr': { 'aria-label': $context.$parent.displayName, 'id': $context.$parent.editorInputId }, 'disabled': $context.$parent.disabled, 'selectAllText': $context.$root.getLocalization('Select All', 'AnalyticsCoreStringId.SelectAll'), 'placeholder': $context.$root.dx._static.selectPlaceholder(), 'maxDisplayedTags': $context.$data.maxDisplayedTags, 'showMultiTagOnly': true, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element), 'position': { 'boundary': $context.$root.getPopupContainer($element), 'collision': 'flipfit flipfit', 'of': $element, 'at': 'bottom', 'my': 'top' } } }); }, 'dxValidator': function () { return { 'validationRules': $context.$parent.validationRules || [] }; } }; });\naddToBindingsCache('dxCollectionEditor: { values: value, info: info, level: level, displayName: $root.getLocalization(displayName) }', function ($context, $element) { return { 'dxCollectionEditor': function () { return { 'values': $context.$data.value, 'info': $context.$data.info, 'level': $context.$data.level, 'displayName': $context.$root.getLocalization($context.$data.displayName) }; } }; });\naddToBindingsCache('dxPropertyGrid: { target: value, level: editor.level + 1 }', function ($context, $element) { return { 'dxPropertyGrid': function () { return { 'target': $context.$data.value, 'level': $context.$data.editor.level + 1 }; } }; });\naddToBindingsCache('if: value', function ($context, $element) { return { 'if': function () { return $context.$data.value; } }; });\naddToBindingsCache('dxdAccordion: { collapsed: $data.collapsed, alwaysShow: $data.alwaysShow }', function ($context, $element) { return { 'dxdAccordion': function () { return { 'collapsed': $context.$data.collapsed, 'alwaysShow': $context.$data.alwaysShow }; } }; });\naddToBindingsCache('css: { \\'dxrd-empty-header\\': $data.hideEditorHeader }', function ($context, $element) { return { 'css': function () { return { 'dxrd-empty-header': $context.$data.hideEditorHeader }; } }; });\naddToBindingsCache('attr: { role: \\'treeitem\\', \\'id\\': isComplexEditor && headerId, \\'aria-owns\\': isComplexEditor && contentId, \\'aria-expanded\\': isComplexEditor && (alwaysShow() || !collapsed() ? \\'true\\' : \\'false\\') }, css: { \\'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented\\': isComplexEditor, \\'dxrd-vertical-label\\': $data.editorOptions && $data.editorOptions.hasVerticalLabel }', function ($context, $element) { return { 'attr': function () { return { 'role': 'treeitem', 'id': $context.$data.isComplexEditor && $context.$data.headerId, 'aria-owns': $context.$data.isComplexEditor && $context.$data.contentId, 'aria-expanded': $context.$data.isComplexEditor && ($context.$data.alwaysShow() || !$context.$data.collapsed() ? 'true' : 'false') }; }, 'css': function () { return { 'dxrd-accessibility-accordion-trigger dx-accessibility-focus-border-accented': $context.$data.isComplexEditor, 'dxrd-vertical-label': $context.$data.editorOptions && $context.$data.editorOptions.hasVerticalLabel }; } }; });\naddToBindingsCache('styleunit: padding, css: { \\'dx-accordion-empty\\': templateName === \\'dx-emptyHeader\\', \\'dxd-back-secondary\\': $data.isGroupLabel, \\'dx-accordion-hide-collapsing-image\\': $data.alwaysShow() }', function ($context, $element) { return { 'styleunit': function () { return $context.$data.padding; }, 'css': function () { return { 'dx-accordion-empty': $context.$data.templateName === 'dx-emptyHeader', 'dxd-back-secondary': $context.$data.isGroupLabel, 'dx-accordion-hide-collapsing-image': $context.$data.alwaysShow() }; } }; });\naddToBindingsCache('text: displayName, attr: { \\'title\\': displayName, for: editorInputId }, css: { \\'dx-property-required\\': isRequired }, style: { fontWeight: isPropertyModified() ? \\'Bold\\' : \\'\\'}', function ($context, $element) { return { 'text': function () { return $context.$data.displayName; }, 'attr': function () { return { 'title': $context.$data.displayName, 'for': $context.$data.editorInputId }; }, 'css': function () { return { 'dx-property-required': $context.$data.isRequired }; }, 'style': function () { return { 'fontWeight': $context.$data.isPropertyModified() ? 'Bold' : '' }; } }; });\naddToBindingsCache('ifnot: $data.hideEditorHeader', function ($context, $element) { return { 'ifnot': function () { return $context.$data.hideEditorHeader; } }; });\naddToBindingsCache('ifnot: $data.alwaysShow()', function ($context, $element) { return { 'ifnot': function () { return $context.$data.alwaysShow(); } }; });\naddToBindingsCache('zoom: painter.scale', function ($context, $element) { return { 'zoom': function () { return $context.$data.painter.scale; } }; });\naddToBindingsCache('dxPopup: { width: 48, height: \\'auto\\', wrapperAttr: { class: \\'dx-picture-editing-active\\' }, position:{ my: \\'left top\\', at: \\'right top\\', boundary: $root.getPopupContainer($element), of: $data.$element, collision: \\'fit fit\\', offset: \\'1 -1\\' }, container: shadingEnabled() ? \\'.dx-overlay-wrapper.dx-picture-edit-popup-content-fullscreen\\' : $root.getPopupContainer($element), target: $root.getPopupContainer($element), showTitle: false, onContentReady: function(e) { e.component && e.component.registerKeyHandler(\\'tab\\', function(_) { $data.active(false); }); }, showCloseButton: false, animation: {}, shading: false, visible: $data.active }', function ($context, $element) { return { 'dxPopup': function () { return { 'width': 48, 'height': 'auto', 'wrapperAttr': { 'class': 'dx-picture-editing-active' }, 'position': { 'my': 'left top', 'at': 'right top', 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.$element, 'collision': 'fit fit', 'offset': '1 -1' }, 'container': $context.$data.shadingEnabled() ? '.dx-overlay-wrapper.dx-picture-edit-popup-content-fullscreen' : $context.$root.getPopupContainer($element), 'target': $context.$root.getPopupContainer($element), 'showTitle': false, 'onContentReady': function (e) { e.component && e.component.registerKeyHandler('tab', function (_) { $context.$data.active(false); }); }, 'showCloseButton': false, 'animation': {}, 'shading': false, 'visible': $context.$data.active }; } }; });\naddToBindingsCache('foreach: $data.actions', function ($context, $element) { return { 'foreach': function () { return $context.$data.actions; } }; });\naddToBindingsCache('dxclick: $data.action, attr: { title: title }', function ($context, $element) { return { 'dxclick': function () { return $context.$data.action; }, 'attr': function () { return { 'title': $context.$data.title }; } }; });\naddToBindingsCache('template: { name: icon, afterRender: $data.renderedHandler }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.icon, 'afterRender': $context.$data.renderedHandler }; } }; });\naddToBindingsCache('zoom: scale', function ($context, $element) { return { 'zoom': function () { return $context.$data.scale; } }; });\naddToBindingsCache('dxPopover: { width: width, height: height, wrapperAttr: { class: \\'dx-picture-edit-popup-content\\' }, hideOnOutsideClick: $data.hideOnOutsideClick, onShown: $data.onShown, onContentReady: $data.onContentReady, position: { my: \\'left top\\', at: \\'right top\\', boundary: $root.getPopupContainer($element), of: getPositionTarget($element), collision: \\'flipfit fit\\', offset: \\'-10 0\\' }, container: getPositionTarget($element), showTitle: false, target: getPositionTarget($element), showCloseButton: false, shading: false, animation: {}, visible: visible }', function ($context, $element) { return { 'dxPopover': function () { return { 'width': $context.$data.width, 'height': $context.$data.height, 'wrapperAttr': { 'class': 'dx-picture-edit-popup-content' }, 'hideOnOutsideClick': $context.$data.hideOnOutsideClick, 'onShown': $context.$data.onShown, 'onContentReady': $context.$data.onContentReady, 'position': { 'my': 'left top', 'at': 'right top', 'boundary': $context.$root.getPopupContainer($element), 'of': $context.$data.getPositionTarget($element), 'collision': 'flipfit fit', 'offset': '-10 0' }, 'container': $context.$data.getPositionTarget($element), 'showTitle': false, 'target': $context.$data.getPositionTarget($element), 'showCloseButton': false, 'shading': false, 'animation': {}, 'visible': $context.$data.visible }; } }; });\naddToBindingsCache('text: brushWidthText', function ($context, $element) { return { 'text': function () { return $context.$data.brushWidthText; } }; });\naddToBindingsCache('dxSlider: { min: 1, max: 9, value: $data.lineWidth, label: { visible: true }, tooltip: { enabled: true, showMode: \\'always\\', position: \\'bottom\\' } }', function ($context, $element) { return { 'dxSlider': function () { return { 'min': 1, 'max': 9, 'value': $context.$data.lineWidth, 'label': { 'visible': true }, 'tooltip': { 'enabled': true, 'showMode': 'always', 'position': 'bottom' } }; } }; });\naddToBindingsCache('text: brushColorText', function ($context, $element) { return { 'text': function () { return $context.$data.brushColorText; } }; });\naddToBindingsCache('foreach: $data.colors', function ($context, $element) { return { 'foreach': function () { return $context.$data.colors; } }; });\naddToBindingsCache('css: { selected: $data.isSelected }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; } }; });\naddToBindingsCache('style: { background: $data.value }, dxclick: $data.action', function ($context, $element) { return { 'style': function () { return { 'background': $context.$data.value }; }, 'dxclick': function () { return $context.$data.action; } }; });\naddToBindingsCache('text: sizeModeText', function ($context, $element) { return { 'text': function () { return $context.$data.sizeModeText; } }; });\naddToBindingsCache('foreach: { data: sizeModeValues }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.sizeModeValues }; } }; });\naddToBindingsCache('css: { selected: isSelected }, template: $data.iconTemplate, dxclick: $data.action, attr: { title: $data.attrTitle }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; }, 'template': function () { return $context.$data.iconTemplate; }, 'dxclick': function () { return $context.$data.action; }, 'attr': function () { return { 'title': $context.$data.attrTitle }; } }; });\naddToBindingsCache('text: alignmentText', function ($context, $element) { return { 'text': function () { return $context.$data.alignmentText; } }; });\naddToBindingsCache('foreach: { data: alignmentValues }', function ($context, $element) { return { 'foreach': function () { return { 'data': $context.$data.alignmentValues }; } }; });\naddToBindingsCache('css: { selected: isSelected }, template: $data.iconTemplate, dxclick: $data.action, , attr: { title: $data.attrTitle }', function ($context, $element) { return { 'css': function () { return { 'selected': $context.$data.isSelected }; }, 'template': function () { return $context.$data.iconTemplate; }, 'dxclick': function () { return $context.$data.action; }, '': function () { return undefined; }, 'attr': function () { return { 'title': $context.$data.attrTitle }; } }; });\naddToBindingsCache('styleunit: { width: contentWidth }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.contentWidth }; } }; });\naddToBindingsCache('dxTextBox: { value: filter, valueChangeEvent: \\'keyup\\', placeholder: searchPlaceholder(), showClearButton: true }', function ($context, $element) { return { 'dxTextBox': function () { return { 'value': $context.$data.filter, 'valueChangeEvent': 'keyup', 'placeholder': $context.$data.searchPlaceholder(), 'showClearButton': true }; } }; });\naddToBindingsCache('styleunit: { width: contentWidth }, dxScrollView: { showScrollbar: \\'onHover\\', useNative: false, scrollByThumb: true }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$data.contentWidth }; }, 'dxScrollView': function () { return { 'showScrollbar': 'onHover', 'useNative': false, 'scrollByThumb': true }; } }; });\naddToBindingsCache('styleunit: { width: $parent.width + 10 }, visible: visible, click: function() { $parent.action($data); }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$parent.width + 10 }; }, 'visible': function () { return $context.$data.visible; }, 'click': function () { return function () { $context.$parent.action($context.$data); }; } }; });\naddToBindingsCache('styleunit: { width: $parent.width, height: $parent.height }, style: { backgroundImage: \\'url(\\' + ($data.url || $data.data) + \\')\\' }', function ($context, $element) { return { 'styleunit': function () { return { 'width': $context.$parent.width, 'height': $context.$parent.height }; }, 'style': function () { return { 'backgroundImage': 'url(' + ($context.$data.url || $context.$data.data) + ')' }; } }; });\naddToBindingsCache('searchHighlighting: { text: $data.text, textToSearch: $parent.filter }, attr: { title: $data.text }', function ($context, $element) { return { 'searchHighlighting': function () { return { 'text': $context.$data.text, 'textToSearch': $context.$parent.filter }; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('text: $data.text, attr: { title: $data.text }', function ($context, $element) { return { 'text': function () { return $context.$data.text; }, 'attr': function () { return { 'title': $context.$data.text }; } }; });\naddToBindingsCache('template: { if: $data.template, name: $data.template, data: $data.templateOptions }', function ($context, $element) { return { 'template': function () { return { 'if': $context.$data.template, 'name': $context.$data.template, 'data': $context.$data.templateOptions }; } }; });\naddToBindingsCache('template: { name: contentTemplate, data: contentData }', function ($context, $element) { return { 'template': function () { return { 'name': $context.$data.contentTemplate, 'data': $context.$data.contentData }; } }; });\naddToBindingsCache('template: \\'dx-picture-editing-imagespicker\\'', function ($context, $element) { return { 'template': function () { return 'dx-picture-editing-imagespicker'; } }; });\naddToBindingsCache('foreach: images', function ($context, $element) { return { 'foreach': function () { return $context.$data.images; } }; });\naddToBindingsCache('if: $data.text', function ($context, $element) { return { 'if': function () { return $context.$data.text; } }; });\naddToBindingsCache('if: $parent.filterEnabled', function ($context, $element) { return { 'if': function () { return $context.$parent.filterEnabled; } }; });\naddToBindingsCache('ifnot: $parent.filterEnabled', function ($context, $element) { return { 'ifnot': function () { return $context.$parent.filterEnabled; } }; });\naddToBindingsCache('dxSelectBox: getOptions({ dataSource: values, value: value, valueExpr: \\'value\\', displayExpr: \\'displayValue\\', displayCustomValue: true, disabled: disabled, useItemTextAsTitle: true, noDataText: $root.dx._static.noDataText(), encodeNoDataText: true, dropDownOptions: { container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }), dxValidator: { validationRules: $data.validationRules || [] }', function ($context, $element) { return { 'dxSelectBox': function () { return $context.$data.getOptions({ 'dataSource': $context.$data.values, 'value': $context.$data.value, 'valueExpr': 'value', 'displayExpr': 'displayValue', 'displayCustomValue': true, 'disabled': $context.$data.disabled, 'useItemTextAsTitle': true, 'noDataText': $context.$root.dx._static.noDataText(), 'encodeNoDataText': true, 'dropDownOptions': { 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('dxSelectBox: getOptions({ dataSource: getAvailableSignature($root), value: value, itemTemplate: \\'signature\\', displayExpr: \\'displayName\\', valueExpr: \\'key\\', showClearButton: true, noDataText: $root.dx._static.noDataText(), encodeNoDataText: true, dropDownOptions: { minWidth: \\'300px\\', container: $root.getPopupContainer($element) }, popupPosition: { boundary: $root.getPopupContainer($element) }, inputAttr: { \\'aria-label\\': displayName, id: editorInputId } }), dxValidator: { validationRules: $data.validationRules || [] }', function ($context, $element) { return { 'dxSelectBox': function () { return $context.$data.getOptions({ 'dataSource': $context.$data.getAvailableSignature($context.$root), 'value': $context.$data.value, 'itemTemplate': 'signature', 'displayExpr': 'displayName', 'valueExpr': 'key', 'showClearButton': true, 'noDataText': $context.$root.dx._static.noDataText(), 'encodeNoDataText': true, 'dropDownOptions': { 'minWidth': '300px', 'container': $context.$root.getPopupContainer($element) }, 'popupPosition': { 'boundary': $context.$root.getPopupContainer($element) }, 'inputAttr': { 'aria-label': $context.$data.displayName, 'id': $context.$data.editorInputId } }); }, 'dxValidator': function () { return { 'validationRules': $context.$data.validationRules || [] }; } }; });\naddToBindingsCache('attr: { src: image }', function ($context, $element) { return { 'attr': function () { return { 'src': $context.$data.image }; } }; });\naddToBindingsCache('attr: { title: value }', function ($context, $element) { return { 'attr': function () { return { 'title': $context.$data.value }; } }; });\naddToBindingsCache('text: label', function ($context, $element) { return { 'text': function () { return $context.$data.label; } }; });\naddToBindingsCache('text: value', function ($context, $element) { return { 'text': function () { return $context.$data.value; } }; });\naddToBindingsCache('if: image', function ($context, $element) { return { 'if': function () { return $context.$data.image; } }; });\naddToBindingsCache('ifnot: image', function ($context, $element) { return { 'ifnot': function () { return $context.$data.image; } }; });\naddToBindingsCache('template: \\'dxrd-svg-preview-signature_img_placeholder\\'', function ($context, $element) { return { 'template': function () { return 'dxrd-svg-preview-signature_img_placeholder'; } }; });\naddToBindingsCache('foreach: fields', function ($context, $element) { return { 'foreach': function () { return $context.$data.fields; } }; });\naddToBindingsCache('dxTemplate: { name: \\'signature\\' }', function () { return { dxTemplate: { name: 'signature' } }; });\n","/**\r\n* DevExpress HTML/JS Reporting (dx-viewer-templates.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SvgTemplatesEngine } from '@devexpress/analytics-core/analytics-widgets-internal';\nSvgTemplatesEngine.addTemplates({\n 'dxrd-checkboxcustomglyph': '
',\n 'dxrv-preview-date-range-mobile': '
',\n 'dxrd-preview-page-mobile': '
1 }, visible: !$root.slideOptions.readerMode\">
',\n 'dxrd-page-brick-mobile': '
',\n 'dxrdp-search-mobile': '
',\n 'dxrd-preview-export-to-mobile': '
',\n 'dxrdp-surface-mobile-bottom': '
',\n 'dxrdp-pages-mobile': '
',\n 'dxrd-menu-export-content': '
',\n 'dxrd-menu-parameters-content': '
',\n 'dxrv-preview-parameters-mobile': '
',\n 'dxrv-preview-parameters-mobile-content': '
',\n 'dxrv-range-parameter-mobile': '
',\n 'dxrdp-surface-mobile': '
',\n 'dxrp-editing-field-container': '
',\n 'dxrp-editing-field-text': '',\n 'dxrp-editing-field-mask': '
',\n 'dxrp-editing-field-number': '
',\n 'dxrp-editing-field-datetime': '
',\n 'dxrp-editing-field-image': '
',\n 'dxrp-editing-field-image-editor': '
',\n 'dxrp-editing-field-checkbox': '
',\n 'dxrp-editing-field-radio': '
',\n 'dxrp-character-comb-editing-field': '
',\n 'dxrd-export-tool-content': '

',\n 'dxrd-preview-export-options': '
',\n 'dxrd-preview-export-to': '
',\n 'dxrd-page-brick-clickable': '
',\n 'dxrd-preview-page': '
',\n 'dxrp-popup-editing-field-image': '
',\n 'dx-picture-editing-popup': '
',\n 'dxrd-zoom-autofit-select-template': '
',\n 'dxrd-preview-toolbar-scrollable': '
',\n 'dxrd-preview-search': '
     
',\n 'dxrd-preview-progress-bar': '
',\n 'dxrd-preview-parameters': '
',\n 'dxrd-preview-pager': '
',\n 'dxrd-preview-document-map': '
',\n 'dxrd-report-preview': '
',\n 'dxrdp-surface': '
',\n 'dxrd-export-tool': '
',\n 'dxrv-daterange-editor': '
',\n 'dxrv-daterange-editor-popup': '
',\n 'dxrv-daterange-calendar': '
',\n 'dxrv-range-parameter': '
',\n 'dxrd-propertieseditor': '
',\n 'dxrd-parameters-editor-content': '
',\n 'dxrd-parameters-separator': '
',\n 'dxrd-multivalue': '
',\n 'dxrd-multivalue-editable': '
',\n 'dxrd-parameters-property-editor': '
',\n 'dx-picture-editing': '
',\n 'dx-painter': '
',\n 'dx-picture-editing-toolbar-popup': '
',\n 'dx-picture-editing-brush-options': '
',\n 'dx-picture-editing-sizemode-alignment': '
',\n 'dx-picture-editing-imagepickerwithfilter': '
',\n 'dx-picture-editing-imagespicker': '
',\n 'dx-selectbox': '
',\n 'dxrdv-signature': '
'\n});\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\internal\\_bindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ZoomAutoBy } from '../constants';\nimport { updatePreviewZoomWithAutoFit } from './_sizeUtils';\nimport { addDisposeCallback, roundingXDecimals } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { MultipageScrollingThrottle } from '../settings';\nko.bindingHandlers['toView'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var $previewPage = $.fn.constructor(element), $container = $previewPage.parent('.dxrd-report-preview-holder'), pageActive = valueAccessor().active, subscription = pageActive.subscribe((active) => {\n if (active) {\n var pageTop = $previewPage.position().top;\n if (pageTop < 0 && (pageTop + $previewPage.height() < 0) || pageTop >= $container.height()) {\n $container.scrollTop($container.scrollTop() + pageTop);\n }\n }\n });\n addDisposeCallback(element, function () {\n subscription.dispose();\n });\n }\n};\nko.bindingHandlers['lazyImages'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var $element = $.fn.constructor(element), enabled = valueAccessor().enabled, load = null, loadVisibleImages = (time = 300) => {\n load && clearTimeout(load);\n load = setTimeout(function () {\n if (!enabled()) {\n return;\n }\n var visibleArea = $element.height() + 100;\n var reportPreview = ko.dataFor(element);\n for (var i = 0; i < element.children.length; i++) {\n var previewPage = element.children[i], rect = previewPage.getBoundingClientRect(), pageTop = rect.top;\n if (visibleArea > pageTop && pageTop >= 0 || pageTop < 0 && pageTop + rect.height > -100) {\n var previewPageModel = ko.dataFor(previewPage);\n if ((previewPageModel === null || previewPageModel === void 0 ? void 0 : previewPageModel.isClientVisible) && (previewPageModel === null || previewPageModel === void 0 ? void 0 : previewPageModel.isClientVisible()) === false) {\n reportPreview.setPageVisibility(previewPageModel, true);\n }\n }\n }\n }, time);\n };\n if (ko.isObservable(valueAccessor().updateCallback)) {\n valueAccessor().updateCallback(loadVisibleImages);\n }\n var subscribtion = enabled.subscribe((newVal) => {\n newVal && loadVisibleImages(500);\n });\n var scrollLoad = () => loadVisibleImages(MultipageScrollingThrottle());\n element.addEventListener('scroll', scrollLoad);\n loadVisibleImages(500);\n addDisposeCallback(element, function () {\n element.removeEventListener('scroll', scrollLoad);\n subscribtion.dispose();\n });\n }\n};\nko.bindingHandlers['textCopier'] = {\n init: (element, valueAccessor, allBindings, viewModel, bindingContext) => {\n var keyDownHandler = function (e) {\n var value = viewModel.getSelectedContent();\n if (!value || !(e.ctrlKey || e.metaKey)\n || $.fn.constructor(e.target).is('input:visible,textarea:visible')\n || window.getSelection && window.getSelection() && window.getSelection().toString()\n || document['selection'] && document['selection'].createRange().text) {\n return;\n }\n var $clipboardContainer = $.fn.constructor('#clipboard-container');\n $clipboardContainer.empty().show();\n $.fn.constructor(\"\").val(value)\n .appendTo($clipboardContainer)\n .focus()\n .select();\n };\n var keyUpHandler = function (e) {\n if ($.fn.constructor(e.target).is('#clipboard')) {\n $.fn.constructor('#clipboard-container').empty().hide();\n }\n };\n document.addEventListener('keydown', keyDownHandler);\n document.addEventListener('keyup', keyUpHandler);\n addDisposeCallback(element, function () {\n document.removeEventListener('keydown', keyDownHandler);\n document.removeEventListener('keyup', keyUpHandler);\n });\n }\n};\nko.bindingHandlers['autoFit'] = {\n init: (element, valueAccessor) => {\n var options = valueAccessor();\n var subscriptions = [];\n var updateZoom = (newOptions) => {\n var $element = $.fn.constructor(element);\n var autoFitBy = newOptions.autoFitBy();\n if (autoFitBy != ZoomAutoBy.None) {\n if (options.skipIfInvisible && $element.filter(':visible').length == 0)\n return;\n var newZoom = roundingXDecimals(updatePreviewZoomWithAutoFit(newOptions.width(), newOptions.height(), $element, autoFitBy), true);\n newOptions.zoom(Math.max(newZoom, 0.1));\n }\n };\n updateZoom(options);\n var onResize = () => {\n updateZoom(options);\n };\n window.addEventListener('resize', onResize);\n var subscribe = (value) => {\n if (value) {\n subscriptions.push(value.subscribe((newVal) => {\n updateZoom(options);\n }));\n }\n };\n subscribe(options.rightPanelWidth);\n subscribe(options.width);\n subscribe(options.height);\n subscribe(options.autoFitBy);\n subscribe(options.brickLoading);\n subscribe(options.previewSize);\n addDisposeCallback(element, function () {\n window.removeEventListener('resize', onResize);\n subscriptions.forEach((subscription) => {\n subscription.dispose();\n });\n });\n }\n};\nko.bindingHandlers['childStyle'] = {\n init: function (element, valueAccessor) {\n var values = valueAccessor();\n $.fn.constructor(element).find(values.selector).css(values.style);\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\search\\_dxSearchEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport registerComponent from 'devextreme/core/component_registrator';\nimport { KeyboardEnum } from '@devexpress/analytics-core/analytics-internal';\nimport dxTextBox from 'devextreme/ui/text_box';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nvar editor_prefix = 'dx-searcheditor', EDITOR_CLASS = editor_prefix + '', EDITOR_BUTTON_SELECTOR = '.' + editor_prefix + '-button';\nexport class dxSearchEditor extends dxTextBox {\n constructor(element, options) {\n super(element, options);\n this.option('onKeyDown', function (e) {\n if (e.event.key === KeyboardEnum.Enter) {\n e.event.stopPropagation();\n e.event.preventDefault();\n e.component['findNext'](e.event.shiftKey);\n }\n });\n this.option('onFocusOut', function (e) {\n e.component['_searchModel'].searchText(e.component.option('text'));\n });\n this._activeStateUnit = EDITOR_BUTTON_SELECTOR;\n this._focusRequestRaised = () => { this.focus(); };\n this._searchModel = options.searchModel;\n this._searchModel.focusRequested.subscribe((val) => this._focusRequestRaised());\n }\n findNext(searchUp) {\n if (this._searchModel.searchText() !== this.option('text')) {\n this._searchModel.searchText(this.option('text'));\n }\n else {\n try {\n if (searchUp) {\n (!this._searchModel.loading()) && this._searchModel.findUp();\n }\n else {\n (!this._searchModel.loading()) && this._searchModel.findDown();\n }\n }\n finally {\n return true;\n }\n }\n }\n _init() {\n super['_init'].apply(this);\n var $element = $.fn.constructor(this.element());\n $element.addClass(EDITOR_CLASS);\n this._koContext = ko.contextFor($element.get(0));\n }\n _render() {\n super['_render'].apply(this);\n this._$buttons = [];\n this.on('keyDown', (e) => {\n if (e.event.key == 'ArrowUp')\n this.findNext(true) && e.event.stopPropagation();\n if (e.event.key == 'ArrowDown')\n this.findNext(false) && e.event.stopPropagation();\n });\n }\n}\nregisterComponent('dxSearchEditor', dxSearchEditor);\n","/**\r\n * DevExtreme (esm/ui/gallery.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n setOuterWidth,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../events/click\";\r\nimport {\r\n move\r\n} from \"../animation/translator\";\r\nimport devices from \"../core/devices\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar GALLERY_CLASS = \"dx-gallery\";\r\nvar GALLERY_WRAPPER_CLASS = GALLERY_CLASS + \"-wrapper\";\r\nvar GALLERY_LOOP_CLASS = \"dx-gallery-loop\";\r\nvar GALLERY_ITEM_CONTAINER_CLASS = GALLERY_CLASS + \"-container\";\r\nvar GALLERY_ACTIVE_CLASS = GALLERY_CLASS + \"-active\";\r\nvar GALLERY_ITEM_CLASS = GALLERY_CLASS + \"-item\";\r\nvar GALLERY_INVISIBLE_ITEM_CLASS = GALLERY_CLASS + \"-item-invisible\";\r\nvar GALLERY_LOOP_ITEM_CLASS = GALLERY_ITEM_CLASS + \"-loop\";\r\nvar GALLERY_ITEM_SELECTOR = \".\" + GALLERY_ITEM_CLASS;\r\nvar GALLERY_ITEM_SELECTED_CLASS = GALLERY_ITEM_CLASS + \"-selected\";\r\nvar GALLERY_INDICATOR_CLASS = GALLERY_CLASS + \"-indicator\";\r\nvar GALLERY_INDICATOR_ITEM_CLASS = GALLERY_INDICATOR_CLASS + \"-item\";\r\nvar GALLERY_INDICATOR_ITEM_SELECTOR = \".\" + GALLERY_INDICATOR_ITEM_CLASS;\r\nvar GALLERY_INDICATOR_ITEM_SELECTED_CLASS = GALLERY_INDICATOR_ITEM_CLASS + \"-selected\";\r\nvar ITEM_CONTENT_SELECTOR = \".dx-item-content\";\r\nvar GALLERY_IMAGE_CLASS = \"dx-gallery-item-image\";\r\nvar GALLERY_ITEM_DATA_KEY = \"dxGalleryItemData\";\r\nvar MAX_CALC_ERROR = 1;\r\nvar GalleryNavButton = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"next\",\r\n onClick: null,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var that = this;\r\n var $element = this.$element();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n $element.addClass(GALLERY_CLASS + \"-nav-button-\" + this.option(\"direction\"));\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, (function(e) {\r\n that._createActionByOption(\"onClick\")({\r\n event: e\r\n })\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onClick\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar Gallery = CollectionWidget.inherit({\r\n _activeStateUnit: GALLERY_ITEM_SELECTOR,\r\n _wasAnyItemTemplateRendered: false,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n animationDuration: 400,\r\n animationEnabled: true,\r\n loop: false,\r\n swipeEnabled: true,\r\n indicatorEnabled: true,\r\n showIndicator: true,\r\n selectedIndex: 0,\r\n slideshowDelay: 0,\r\n showNavButtons: false,\r\n wrapAround: false,\r\n initialItemWidth: void 0,\r\n stretchImages: false,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.option(\"loopItemFocus\", this.option(\"loop\"))\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n var $img = $(\"\").addClass(GALLERY_IMAGE_CLASS);\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container);\r\n $img.attr({\r\n src: data.imageSrc,\r\n alt: data.imageAlt\r\n }).appendTo($container)\r\n } else {\r\n $img.attr(\"src\", String(data)).appendTo($container)\r\n }\r\n }.bind(this), [\"imageSrc\", \"imageAlt\", \"text\", \"html\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _itemClass: function() {\r\n return GALLERY_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return GALLERY_ITEM_DATA_KEY\r\n },\r\n _actualItemWidth: function() {\r\n var isWrapAround = this.option(\"wrapAround\");\r\n if (this.option(\"stretchImages\")) {\r\n var itemPerPage = isWrapAround ? this._itemsPerPage() + 1 : this._itemsPerPage();\r\n return 1 / itemPerPage\r\n }\r\n if (isWrapAround) {\r\n return this._itemPercentWidth() * this._itemsPerPage() / (this._itemsPerPage() + 1)\r\n }\r\n return this._itemPercentWidth()\r\n },\r\n _itemPercentWidth: function() {\r\n var percentWidth;\r\n var elementWidth = getOuterWidth(this.$element());\r\n var initialItemWidth = this.option(\"initialItemWidth\");\r\n if (initialItemWidth && initialItemWidth <= elementWidth) {\r\n percentWidth = initialItemWidth / elementWidth\r\n } else {\r\n percentWidth = 1\r\n }\r\n return percentWidth\r\n },\r\n _itemsPerPage: function() {\r\n var itemsPerPage = hasWindow() ? Math.floor(1 / this._itemPercentWidth()) : 1;\r\n return Math.min(itemsPerPage, this._itemsCount())\r\n },\r\n _pagesCount: function() {\r\n return Math.ceil(this._itemsCount() / this._itemsPerPage())\r\n },\r\n _itemsCount: function() {\r\n return (this.option(\"items\") || []).length\r\n },\r\n _offsetDirection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _initMarkup: function() {\r\n this._renderWrapper();\r\n this._renderItemsContainer();\r\n this.$element().addClass(GALLERY_CLASS);\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, this.option(\"loop\"));\r\n this.callBase();\r\n this.setAria({\r\n role: \"listbox\",\r\n label: \"gallery\"\r\n })\r\n },\r\n _render: function() {\r\n this._renderDragHandler();\r\n this._renderContainerPosition();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderNavButtons();\r\n this._renderIndicator();\r\n this._renderSelectedItem();\r\n this._renderItemVisibility();\r\n this._renderUserInteraction();\r\n this._setupSlideShow();\r\n this._reviseDimensions();\r\n this.callBase()\r\n },\r\n _dimensionChanged: function() {\r\n var selectedIndex = this.option(\"selectedIndex\") || 0;\r\n this._stopItemAnimations();\r\n this._clearCacheWidth();\r\n this._cloneDuplicateItems();\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderIndicator();\r\n this._renderContainerPosition(this._calculateIndexOffset(selectedIndex), true);\r\n this._renderItemVisibility()\r\n },\r\n _renderDragHandler: function() {\r\n var eventName = addNamespace(\"dragstart\", this.NAME);\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, \"img\", (function() {\r\n return false\r\n }))\r\n },\r\n _renderWrapper: function() {\r\n if (this._$wrapper) {\r\n return\r\n }\r\n this._$wrapper = $(\"
\").addClass(GALLERY_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderItems: function(items) {\r\n if (!hasWindow()) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n items = items.length > selectedIndex ? items.slice(selectedIndex, selectedIndex + 1) : items.slice(0, 1)\r\n }\r\n this.callBase(items);\r\n this._loadNextPageIfNeeded()\r\n },\r\n _onItemTemplateRendered() {\r\n return () => {\r\n if (!this._wasAnyItemTemplateRendered) {\r\n this._wasAnyItemTemplateRendered = true;\r\n triggerResizeEvent(this.$element())\r\n }\r\n }\r\n },\r\n _renderItemsContainer: function() {\r\n if (this._$container) {\r\n return\r\n }\r\n this._$container = $(\"
\").addClass(GALLERY_ITEM_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _cloneDuplicateItems: function() {\r\n if (!this.option(\"loop\")) {\r\n return\r\n }\r\n var items = this.option(\"items\") || [];\r\n var itemsCount = items.length;\r\n var lastItemIndex = itemsCount - 1;\r\n var i;\r\n if (!itemsCount) {\r\n return\r\n }\r\n this._getLoopedItems().remove();\r\n var duplicateCount = Math.min(this._itemsPerPage(), itemsCount);\r\n var $items = this._getRealItems();\r\n var $container = this._itemContainer();\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[i], $container)\r\n }\r\n for (i = 0; i < duplicateCount; i++) {\r\n this._cloneItemForDuplicate($items[lastItemIndex - i], $container)\r\n }\r\n },\r\n _cloneItemForDuplicate: function(item, $container) {\r\n if (item) {\r\n var $clonedItem = $(item).clone(false).addClass(GALLERY_LOOP_ITEM_CLASS).css(\"margin\", 0).appendTo($container);\r\n this.setAria({\r\n role: \"presentation\"\r\n }, $clonedItem)\r\n }\r\n },\r\n _getRealItems: function() {\r\n var selector = \".\" + GALLERY_ITEM_CLASS + \":not(.\" + GALLERY_LOOP_ITEM_CLASS + \")\";\r\n return this.$element().find(selector)\r\n },\r\n _getLoopedItems: function() {\r\n return this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS)\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderItemSizes: function(startIndex) {\r\n var $items = this._itemElements();\r\n var itemWidth = this._actualItemWidth();\r\n if (void 0 !== startIndex) {\r\n $items = $items.slice(startIndex)\r\n }\r\n $items.each((function(index) {\r\n setOuterWidth($($items[index]), 100 * itemWidth + \"%\")\r\n }))\r\n },\r\n _renderItemPositions: function() {\r\n var itemWidth = this._actualItemWidth();\r\n var itemsCount = this._itemsCount();\r\n var itemsPerPage = this._itemsPerPage();\r\n var loopItemsCount = this.$element().find(\".\" + GALLERY_LOOP_ITEM_CLASS).length;\r\n var lastItemDuplicateIndex = itemsCount + loopItemsCount - 1;\r\n var offsetRatio = this.option(\"wrapAround\") ? .5 : 0;\r\n var freeSpace = this._itemFreeSpace();\r\n var isGapBetweenImages = !!freeSpace;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var side = rtlEnabled ? \"Right\" : \"Left\";\r\n this._itemElements().each((function(index) {\r\n var realIndex = index;\r\n var isLoopItem = $(this).hasClass(GALLERY_LOOP_ITEM_CLASS);\r\n if (index > itemsCount + itemsPerPage - 1) {\r\n realIndex = lastItemDuplicateIndex - realIndex - itemsPerPage\r\n }\r\n if (!isLoopItem && 0 !== realIndex) {\r\n if (isGapBetweenImages) {\r\n $(this).css(\"margin\" + side, 100 * freeSpace + \"%\")\r\n }\r\n return\r\n }\r\n var itemPosition = itemWidth * (realIndex + offsetRatio) + freeSpace * (realIndex + 1 - offsetRatio);\r\n var property = isLoopItem ? side.toLowerCase() : \"margin\" + side;\r\n $(this).css(property, 100 * itemPosition + \"%\")\r\n }));\r\n this._relocateItems(selectedIndex, selectedIndex, true)\r\n },\r\n _itemFreeSpace: function() {\r\n var itemsPerPage = this._itemsPerPage();\r\n if (this.option(\"wrapAround\")) {\r\n itemsPerPage += 1\r\n }\r\n return (1 - this._actualItemWidth() * itemsPerPage) / (itemsPerPage + 1)\r\n },\r\n _renderContainerPosition: function(offset, hideItems, animate) {\r\n this._releaseInvisibleItems();\r\n offset = offset || 0;\r\n var that = this;\r\n var itemWidth = this._actualItemWidth();\r\n var targetIndex = offset;\r\n var targetPosition = this._offsetDirection() * targetIndex * (itemWidth + this._itemFreeSpace());\r\n var positionReady;\r\n if (isDefined(this._animationOverride)) {\r\n animate = this._animationOverride;\r\n delete this._animationOverride\r\n }\r\n if (animate) {\r\n that._startSwipe();\r\n positionReady = that._animate(targetPosition).done(that._endSwipe.bind(that))\r\n } else {\r\n move(this._$container, {\r\n left: targetPosition * this._elementWidth(),\r\n top: 0\r\n });\r\n positionReady = (new Deferred).resolveWith(that)\r\n }\r\n positionReady.done((function() {\r\n this._deferredAnimate && that._deferredAnimate.resolveWith(that);\r\n hideItems && this._renderItemVisibility()\r\n }));\r\n return positionReady.promise()\r\n },\r\n _startSwipe: function() {\r\n this.$element().addClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _endSwipe: function() {\r\n this.$element().removeClass(GALLERY_ACTIVE_CLASS)\r\n },\r\n _animate: function(targetPosition, extraConfig) {\r\n var that = this;\r\n var $container = this._$container;\r\n var animationComplete = new Deferred;\r\n fx.animate(this._$container, extend({\r\n type: \"slide\",\r\n to: {\r\n left: targetPosition * this._elementWidth()\r\n },\r\n duration: that.option(\"animationDuration\"),\r\n complete: function() {\r\n if (that._needMoveContainerForward()) {\r\n move($container, {\r\n left: 0,\r\n top: 0\r\n })\r\n }\r\n if (that._needMoveContainerBack()) {\r\n move($container, {\r\n left: that._maxContainerOffset() * that._elementWidth(),\r\n top: 0\r\n })\r\n }\r\n animationComplete.resolveWith(that)\r\n }\r\n }, extraConfig || {}));\r\n return animationComplete\r\n },\r\n _needMoveContainerForward: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = -this._maxItemWidth() * this._elementWidth() * this._itemsCount();\r\n return expectedPosition <= actualPosition + MAX_CALC_ERROR\r\n },\r\n _needMoveContainerBack: function() {\r\n var expectedPosition = this._$container.position().left * this._offsetDirection();\r\n var actualPosition = this._actualItemWidth() * this._elementWidth();\r\n return expectedPosition >= actualPosition - MAX_CALC_ERROR\r\n },\r\n _maxContainerOffset: function() {\r\n return -this._maxItemWidth() * (this._itemsCount() - this._itemsPerPage()) * this._offsetDirection()\r\n },\r\n _maxItemWidth: function() {\r\n return this._actualItemWidth() + this._itemFreeSpace()\r\n },\r\n _reviseDimensions: function() {\r\n var $firstItem = this._itemElements().first().find(ITEM_CONTENT_SELECTOR);\r\n if (!$firstItem || $firstItem.is(\":hidden\")) {\r\n return\r\n }\r\n if (!this.option(\"height\")) {\r\n this.option(\"height\", getOuterHeight($firstItem))\r\n }\r\n if (!this.option(\"width\")) {\r\n this.option(\"width\", getOuterWidth($firstItem))\r\n }\r\n this._dimensionChanged()\r\n },\r\n _renderIndicator: function() {\r\n this._cleanIndicators();\r\n if (!this.option(\"showIndicator\")) {\r\n return\r\n }\r\n var indicator = this._$indicator = $(\"
\").addClass(GALLERY_INDICATOR_CLASS).appendTo(this._$wrapper);\r\n var isIndicatorEnabled = this.option(\"indicatorEnabled\");\r\n for (var i = 0; i < this._pagesCount(); i++) {\r\n var $indicatorItem = $(\"
\").addClass(GALLERY_INDICATOR_ITEM_CLASS).appendTo(indicator);\r\n if (isIndicatorEnabled) {\r\n this._attachIndicatorClickHandler($indicatorItem, i)\r\n }\r\n }\r\n this._renderSelectedPageIndicator()\r\n },\r\n _attachIndicatorClickHandler: function($element, index) {\r\n eventsEngine.on($element, addNamespace(clickEventName, this.NAME), function(event) {\r\n this._indicatorSelectHandler(event, index)\r\n }.bind(this))\r\n },\r\n _detachIndicatorClickHandler: function($element) {\r\n eventsEngine.off($element, addNamespace(clickEventName, this.NAME))\r\n },\r\n _toggleIndicatorInteraction: function(clickEnabled) {\r\n var _this$_$indicator;\r\n var $indicatorItems = (null === (_this$_$indicator = this._$indicator) || void 0 === _this$_$indicator ? void 0 : _this$_$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR)) || [];\r\n if ($indicatorItems.length) {\r\n $indicatorItems.each(function(index, element) {\r\n clickEnabled ? this._attachIndicatorClickHandler($(element), index) : this._detachIndicatorClickHandler($(element))\r\n }.bind(this))\r\n }\r\n },\r\n _cleanIndicators: function() {\r\n if (this._$indicator) {\r\n this._$indicator.remove()\r\n }\r\n },\r\n _renderSelectedItem: function() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n this._itemElements().removeClass(GALLERY_ITEM_SELECTED_CLASS).eq(selectedIndex).addClass(GALLERY_ITEM_SELECTED_CLASS)\r\n },\r\n _renderItemVisibility: function() {\r\n if (this.option(\"initialItemWidth\") || this.option(\"wrapAround\")) {\r\n this._releaseInvisibleItems();\r\n return\r\n }\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n this._itemElements().each((index, item) => {\r\n if (selectedIndex !== index) {\r\n $(item).find(ITEM_CONTENT_SELECTOR).addClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n }\r\n })\r\n },\r\n _releaseInvisibleItems: function() {\r\n this._itemElements().find(ITEM_CONTENT_SELECTOR).removeClass(GALLERY_INVISIBLE_ITEM_CLASS)\r\n },\r\n _renderSelectedPageIndicator: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var itemIndex = this.option(\"selectedIndex\");\r\n var lastIndex = this._pagesCount() - 1;\r\n var pageIndex = Math.ceil(itemIndex / this._itemsPerPage());\r\n pageIndex = Math.min(lastIndex, pageIndex);\r\n this._$indicator.find(GALLERY_INDICATOR_ITEM_SELECTOR).removeClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS).eq(pageIndex).addClass(GALLERY_INDICATOR_ITEM_SELECTED_CLASS)\r\n },\r\n _renderUserInteraction: function() {\r\n var rootElement = this.$element();\r\n var swipeEnabled = this.option(\"swipeEnabled\") && this._itemsCount() > 1;\r\n this._createComponent(rootElement, Swipeable, {\r\n disabled: this.option(\"disabled\") || !swipeEnabled,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._elementWidth.bind(this)\r\n })\r\n },\r\n _indicatorSelectHandler: function(e, indicatorIndex) {\r\n if (!this.option(\"indicatorEnabled\")) {\r\n return\r\n }\r\n var itemIndex = this._fitPaginatedIndex(indicatorIndex * this._itemsPerPage());\r\n this._needLongMove = true;\r\n this.option(\"selectedIndex\", itemIndex);\r\n this._loadNextPageIfNeeded(itemIndex)\r\n },\r\n _renderNavButtons: function() {\r\n var that = this;\r\n if (!that.option(\"showNavButtons\")) {\r\n that._cleanNavButtons();\r\n return\r\n }\r\n that._prevNavButton = $(\"
\").appendTo(this._$wrapper);\r\n that._createComponent(that._prevNavButton, GalleryNavButton, {\r\n direction: \"prev\",\r\n onClick: function() {\r\n that._prevPage()\r\n }\r\n });\r\n that._nextNavButton = $(\"
\").appendTo(this._$wrapper);\r\n that._createComponent(that._nextNavButton, GalleryNavButton, {\r\n direction: \"next\",\r\n onClick: function() {\r\n that._nextPage()\r\n }\r\n });\r\n this._renderNavButtonsVisibility()\r\n },\r\n _prevPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") - visiblePageSize;\r\n if (newSelectedIndex === -visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex))\r\n }\r\n },\r\n _nextPage: function() {\r\n var visiblePageSize = this._itemsPerPage();\r\n var newSelectedIndex = this.option(\"selectedIndex\") + visiblePageSize;\r\n if (newSelectedIndex === visiblePageSize && visiblePageSize === this._itemsCount()) {\r\n return this._relocateItems(newSelectedIndex, 0)\r\n } else {\r\n return this.goToItem(this._fitPaginatedIndex(newSelectedIndex)).done(this._loadNextPageIfNeeded)\r\n }\r\n },\r\n _loadNextPageIfNeeded: function(selectedIndex) {\r\n selectedIndex = void 0 === selectedIndex ? this.option(\"selectedIndex\") : selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate() && this._shouldLoadNextPage(selectedIndex) && !this._isDataSourceLoading() && !this._isLastPage()) {\r\n this._loadNextPage().done(function() {\r\n this._renderIndicator();\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility();\r\n this._renderItemSizes(selectedIndex)\r\n }.bind(this))\r\n }\r\n },\r\n _shouldLoadNextPage: function(selectedIndex) {\r\n var visiblePageSize = this._itemsPerPage();\r\n return selectedIndex + 2 * visiblePageSize > this.option(\"items\").length\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _fitPaginatedIndex: function(itemIndex) {\r\n var itemsPerPage = this._itemsPerPage();\r\n var restItemsCount = itemIndex < 0 ? itemsPerPage + itemIndex : this._itemsCount() - itemIndex;\r\n if (itemIndex > this._itemsCount() - 1) {\r\n itemIndex = 0;\r\n this._goToGhostItem = true\r\n } else if (restItemsCount < itemsPerPage && restItemsCount > 0) {\r\n if (itemIndex > 0) {\r\n itemIndex -= itemsPerPage - restItemsCount\r\n } else {\r\n itemIndex += itemsPerPage - restItemsCount\r\n }\r\n }\r\n return itemIndex\r\n },\r\n _cleanNavButtons: function() {\r\n if (this._prevNavButton) {\r\n this._prevNavButton.remove();\r\n delete this._prevNavButton\r\n }\r\n if (this._nextNavButton) {\r\n this._nextNavButton.remove();\r\n delete this._nextNavButton\r\n }\r\n },\r\n _renderNavButtonsVisibility: function() {\r\n if (!this.option(\"showNavButtons\") || !this._prevNavButton || !this._nextNavButton) {\r\n return\r\n }\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var itemsCount = this._itemsCount();\r\n this._prevNavButton.show();\r\n this._nextNavButton.show();\r\n if (0 === itemsCount) {\r\n this._prevNavButton.hide();\r\n this._nextNavButton.hide()\r\n }\r\n if (loop) {\r\n return\r\n }\r\n var nextHidden = selectedIndex === itemsCount - this._itemsPerPage();\r\n var prevHidden = itemsCount < 2 || 0 === selectedIndex;\r\n if (this._dataSource && this._dataSource.paginate()) {\r\n nextHidden = nextHidden && this._isLastPage()\r\n } else {\r\n nextHidden = nextHidden || itemsCount < 2\r\n }\r\n if (prevHidden) {\r\n this._prevNavButton.hide()\r\n }\r\n if (nextHidden) {\r\n this._nextNavButton.hide()\r\n }\r\n },\r\n _setupSlideShow: function() {\r\n var that = this;\r\n var slideshowDelay = that.option(\"slideshowDelay\");\r\n clearTimeout(that._slideshowTimer);\r\n if (!slideshowDelay) {\r\n return\r\n }\r\n that._slideshowTimer = setTimeout((function() {\r\n if (that._userInteraction) {\r\n that._setupSlideShow();\r\n return\r\n }\r\n that.nextItem(true).done(that._setupSlideShow)\r\n }), slideshowDelay)\r\n },\r\n _elementWidth: function() {\r\n if (!this._cacheElementWidth) {\r\n this._cacheElementWidth = getWidth(this.$element())\r\n }\r\n return this._cacheElementWidth\r\n },\r\n _clearCacheWidth: function() {\r\n delete this._cacheElementWidth\r\n },\r\n _swipeStartHandler: function(e) {\r\n this._releaseInvisibleItems();\r\n this._clearCacheWidth();\r\n this._elementWidth();\r\n var itemsCount = this._itemsCount();\r\n if (!itemsCount) {\r\n e.event.cancel = true;\r\n return\r\n }\r\n this._stopItemAnimations();\r\n this._startSwipe();\r\n this._userInteraction = true;\r\n if (!this.option(\"loop\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var startOffset = itemsCount - selectedIndex - this._itemsPerPage();\r\n var endOffset = selectedIndex;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset\r\n }\r\n },\r\n _stopItemAnimations: function() {\r\n fx.stop(this._$container, true)\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var wrapAroundRatio = this.option(\"wrapAround\") ? 1 : 0;\r\n var offset = this._offsetDirection() * e.event.offset * (this._itemsPerPage() + wrapAroundRatio) - this.option(\"selectedIndex\");\r\n if (offset < 0) {\r\n this._loadNextPageIfNeeded(Math.ceil(Math.abs(offset)))\r\n }\r\n this._renderContainerPosition(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset * this._offsetDirection() * this._itemsPerPage();\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._fitIndex(selectedIndex - targetOffset);\r\n var paginatedIndex = this._fitPaginatedIndex(newIndex);\r\n if (Math.abs(targetOffset) < this._itemsPerPage()) {\r\n this._relocateItems(selectedIndex);\r\n return\r\n }\r\n if (this._itemsPerPage() === this._itemsCount()) {\r\n if (targetOffset > 0) {\r\n this._relocateItems(-targetOffset)\r\n } else {\r\n this._relocateItems(0)\r\n }\r\n return\r\n }\r\n this.option(\"selectedIndex\", paginatedIndex)\r\n },\r\n _setFocusOnSelect: function() {\r\n this._userInteraction = true;\r\n var selectedItem = this.itemElements().filter(\".\" + GALLERY_ITEM_SELECTED_CLASS);\r\n this.option(\"focusedElement\", getPublicElement(selectedItem));\r\n this._userInteraction = false\r\n },\r\n _flipIndex: function(index) {\r\n var itemsCount = this._itemsCount();\r\n index %= itemsCount;\r\n if (index > (itemsCount + 1) / 2) {\r\n index -= itemsCount\r\n }\r\n if (index < -(itemsCount - 1) / 2) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _fitIndex: function(index) {\r\n if (!this.option(\"loop\")) {\r\n return index\r\n }\r\n var itemsCount = this._itemsCount();\r\n if (index >= itemsCount || index < 0) {\r\n this._goToGhostItem = true\r\n }\r\n if (index >= itemsCount) {\r\n index = itemsCount - index\r\n }\r\n index %= itemsCount;\r\n if (index < 0) {\r\n index += itemsCount\r\n }\r\n return index\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._cleanIndicators();\r\n this._cleanNavButtons()\r\n },\r\n _dispose: function() {\r\n this._wasAnyItemTemplateRendered = null;\r\n clearTimeout(this._slideshowTimer);\r\n this.callBase()\r\n },\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n this._stopItemAnimations();\r\n this._renderNavButtonsVisibility();\r\n this._renderSelectedItem();\r\n this._relocateItems(addedSelection[0], removedSelection[0]);\r\n this._renderSelectedPageIndicator()\r\n },\r\n _relocateItems: function(newIndex, prevIndex, withoutAnimation) {\r\n if (void 0 === prevIndex) {\r\n prevIndex = newIndex\r\n }\r\n var indexOffset = this._calculateIndexOffset(newIndex, prevIndex);\r\n this._renderContainerPosition(indexOffset, true, this.option(\"animationEnabled\") && !withoutAnimation).done((function() {\r\n this._setFocusOnSelect();\r\n this._userInteraction = false;\r\n this._setupSlideShow()\r\n }))\r\n },\r\n _focusInHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function() {\r\n if (fx.isAnimating(this._$container) || this._userInteraction) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _selectFocusedItem: noop,\r\n _moveFocus: function() {\r\n this._stopItemAnimations();\r\n this.callBase.apply(this, arguments);\r\n var index = this.itemElements().index($(this.option(\"focusedElement\")));\r\n this.goToItem(index, this.option(\"animationEnabled\"))\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._reviseDimensions()\r\n }\r\n },\r\n _calculateIndexOffset: function(newIndex, lastIndex) {\r\n if (void 0 === lastIndex) {\r\n lastIndex = newIndex\r\n }\r\n var indexOffset = lastIndex - newIndex;\r\n if (this.option(\"loop\") && !this._needLongMove && this._goToGhostItem) {\r\n if (this._isItemOnFirstPage(newIndex) && this._isItemOnLastPage(lastIndex)) {\r\n indexOffset = -this._itemsPerPage()\r\n } else if (this._isItemOnLastPage(newIndex) && this._isItemOnFirstPage(lastIndex)) {\r\n indexOffset = this._itemsPerPage()\r\n }\r\n this._goToGhostItem = false\r\n }\r\n this._needLongMove = false;\r\n indexOffset -= lastIndex;\r\n return indexOffset\r\n },\r\n _isItemOnLastPage: function(itemIndex) {\r\n return itemIndex >= this._itemsCount() - this._itemsPerPage()\r\n },\r\n _isItemOnFirstPage: function(itemIndex) {\r\n return itemIndex <= this._itemsPerPage()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"initialItemWidth\":\r\n this.callBase.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"animationDuration\":\r\n this._renderNavButtonsVisibility();\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"loop\":\r\n this.$element().toggleClass(GALLERY_LOOP_CLASS, args.value);\r\n this.option(\"loopItemFocus\", args.value);\r\n if (hasWindow()) {\r\n this._cloneDuplicateItems();\r\n this._renderItemPositions();\r\n this._renderNavButtonsVisibility()\r\n }\r\n break;\r\n case \"showIndicator\":\r\n this._renderIndicator();\r\n break;\r\n case \"showNavButtons\":\r\n this._renderNavButtons();\r\n break;\r\n case \"slideshowDelay\":\r\n this._setupSlideShow();\r\n break;\r\n case \"wrapAround\":\r\n case \"stretchImages\":\r\n if (hasWindow()) {\r\n this._renderItemSizes();\r\n this._renderItemPositions();\r\n this._renderItemVisibility()\r\n }\r\n break;\r\n case \"swipeEnabled\":\r\n this._renderUserInteraction();\r\n break;\r\n case \"indicatorEnabled\":\r\n this._toggleIndicatorInteraction(args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n goToItem: function(itemIndex, animation) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var itemsCount = this._itemsCount();\r\n if (void 0 !== animation) {\r\n this._animationOverride = animation\r\n }\r\n itemIndex = this._fitIndex(itemIndex);\r\n this._deferredAnimate = new Deferred;\r\n if (itemIndex > itemsCount - 1 || itemIndex < 0 || selectedIndex === itemIndex) {\r\n return this._deferredAnimate.resolveWith(this).promise()\r\n }\r\n this.option(\"selectedIndex\", itemIndex);\r\n return this._deferredAnimate.promise()\r\n },\r\n prevItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") - 1, animation)\r\n },\r\n nextItem: function(animation) {\r\n return this.goToItem(this.option(\"selectedIndex\") + 1, animation)\r\n }\r\n});\r\nregisterComponent(\"dxGallery\", Gallery);\r\nexport default Gallery;\r\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_eventProcessor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { SearchAvailable } from '../../settings';\nimport { MobileSearchViewModel } from './_mobileSearch';\nimport { ZoomAutoBy } from '../../constants';\nimport * as $ from 'jquery';\nimport Gallery from 'devextreme/ui/gallery';\nexport var slowdownDisctanceFactor = 2.5;\nexport var minScale = 0.92;\nfunction setTransform($element, transform) {\n $element.css({\n '-webkit-transform': transform,\n 'transform': transform\n });\n}\nexport class EventProcessor {\n constructor(element, slideOptions) {\n this.element = element;\n this.slideOptions = slideOptions;\n this._direction = {\n vertical: false,\n horizontal: false,\n scrollDown: false\n };\n this.isLeftMove = false;\n this.isRightMove = false;\n this.$window = $.fn.constructor(window);\n this.$element = $.fn.constructor(element),\n this.$body = $.fn.constructor(document.body),\n this.$gallery = this.$element.find('.dxrd-mobile-gallery');\n this.$galleryblocks = this.$gallery.find('.dxrd-gallery-blocks');\n this.firstMobilePageOffset = this._getFirstPageOffset();\n this.slideOptions.searchPanel.height.subscribe((newVal) => {\n if (slideOptions.disabled())\n return;\n if (!this.firstMobilePageOffset)\n this.firstMobilePageOffset = this._getFirstPageOffset();\n if (this.slideOptions.readerMode) {\n this.slideOptions.topOffset(newVal);\n }\n else {\n this.slideOptions.topOffset(Math.min(newVal, Math.max(0, MobileSearchViewModel.maxHeight - this.firstMobilePageOffset.top)));\n }\n if (!newVal) {\n this.applySearchAnimation(newVal);\n }\n else if (newVal === MobileSearchViewModel.maxHeight) {\n this.slideOptions.searchPanel.searchPanelVisible(true);\n this.applySearchAnimation(newVal);\n }\n else {\n var dif = 1 - minScale;\n var perc = newVal / MobileSearchViewModel.maxHeight;\n var scale = 1 - dif * perc;\n setTransform(this.$galleryblocks, 'scale(' + Math.max(minScale, scale) + ')');\n }\n });\n }\n _getFirstPageOffset() {\n return this.$galleryblocks.find('.dxrd-mobile-page').eq(0).offset();\n }\n getDirection(x, y) {\n var differenceY = y - this._startingPositionY;\n var distanceY = Math.abs(differenceY);\n var distanceX = Math.abs(x - this._startingPositionX);\n if (distanceY === 0 && distanceX === 0) {\n this._direction.horizontal = false;\n this._direction.vertical = false;\n return this._direction;\n }\n var tg = !distanceX ? 10 : distanceY / distanceX;\n if (tg < 2) {\n this._direction.horizontal = true;\n this._direction.vertical = false;\n this._direction.scrollDown = false;\n }\n else {\n this._direction.horizontal = false;\n this._direction.vertical = true;\n this._direction.scrollDown = differenceY > 0;\n }\n return this._direction;\n }\n setPosition(x, y) {\n this.isLeftMove = this.latestX > x;\n this.isRightMove = this.latestX < x;\n this.latestY = y;\n this.latestX = x;\n }\n initialize(x, y) {\n this._startingPositionX = x;\n this._startingPositionY = y;\n this.latestX = x;\n this.latestY = y;\n this._direction = { horizontal: false, vertical: false, scrollDown: false };\n }\n start(e) {\n this.$body.addClass('dxrd-prevent-refresh');\n this.$galleryblocks = this.$gallery.find('.dxrd-gallery-blocks');\n if (!this.slideOptions.topOffset()) {\n this.firstMobilePageOffset = this._getFirstPageOffset();\n if (this.firstMobilePageOffset) {\n this.firstMobilePageOffset.top = this.firstMobilePageOffset.top * minScale;\n }\n }\n this.initialize(e.pageX, e.pageY);\n }\n move(e) {\n if (this.slideOptions.zoomUpdating() || this.slideOptions.galleryIsAnimated() || this.slideOptions.disabled()) {\n return;\n }\n if (SearchAvailable() && !this.slideOptions.searchPanel.editorVisible()) {\n var direction = this.getDirection(e.pageX, e.pageY);\n if (!direction.vertical && !direction.horizontal)\n return;\n if (direction.vertical && direction.scrollDown || this.slideOptions.searchPanel.height() !== 0) {\n if (this.slideOptions.reachedTop() && (MobileSearchViewModel.maxHeight + this.$element.offset().top) > this.$window.scrollTop()) {\n this.slideOptions.brickEventsDisabled(true);\n e.stopPropagation();\n var currentHeight = this.slideOptions.searchPanel.height();\n var difference = currentHeight + (e.clientY - this.latestY) / slowdownDisctanceFactor;\n var distance = difference > 0 ? Math.min(difference, MobileSearchViewModel.maxHeight) : 0;\n this.slideOptions.searchPanel.height(distance);\n }\n }\n }\n this.setPosition(e.clientX, e.clientY);\n }\n end(e) {\n if (this.slideOptions.zoomUpdating() || this.slideOptions.galleryIsAnimated()) {\n var touches = e['touches'];\n if (!touches || touches.length === 0) {\n if (this.slideOptions.zoomUpdating()) {\n e.stopPropagation();\n }\n this.slideOptions.zoomUpdating(false);\n }\n return;\n }\n var direction = this.getDirection(e.pageX, e.pageY);\n if (this.slideOptions.scrollAvailable()) {\n if (direction.horizontal && this.slideOptions.swipeEnabled()) {\n var galleryInstance = Gallery.getInstance(this.$gallery.get(0));\n var repaintTimeout = this.slideOptions.repaintTimeout;\n if (this.slideOptions.reachedLeft() && this.isRightMove && galleryInstance.gallery.swipeLeftEnable()) {\n galleryInstance.prevItem();\n clearTimeout(repaintTimeout());\n repaintTimeout(setTimeout(() => galleryInstance.repaint(), 410));\n }\n else if (this.slideOptions.reachedRight() && this.isLeftMove && galleryInstance.gallery.swipeRightEnable()) {\n galleryInstance.nextItem();\n clearTimeout(repaintTimeout());\n repaintTimeout(setTimeout(() => galleryInstance.repaint(), 410));\n }\n }\n }\n if (SearchAvailable() && !this.slideOptions.searchPanel.editorVisible()) {\n if (this.slideOptions.searchPanel.height() >= MobileSearchViewModel.maxHeight / 2) {\n this.slideOptions.searchPanel.height(MobileSearchViewModel.maxHeight);\n }\n else {\n this.slideOptions.searchPanel.height(0);\n }\n if (this.slideOptions.searchPanel.height() == MobileSearchViewModel.maxHeight) {\n this.slideOptions.autoFitBy(ZoomAutoBy.PageWidth);\n }\n }\n this.$body.removeClass('dxrd-prevent-refresh');\n setTimeout(() => { this.slideOptions.brickEventsDisabled(false); }, 10);\n }\n applySearchAnimation(value) {\n if (this.slideOptions.animationSettings.zoomEnabled()) {\n this.$galleryblocks.addClass('dxrdp-animation');\n this.$element.addClass('dxrdp-animation');\n setTimeout(() => {\n this.$galleryblocks.removeClass('dxrdp-animation');\n this.$element.removeClass('dxrdp-animation');\n }, 410);\n }\n setTransform(this.$galleryblocks, !value ? '' : 'scale(0.92)');\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\_mobileBindings.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { EventProcessor } from './_eventProcessor';\nimport { on } from 'devextreme/events';\nimport 'devextreme/events/transform';\nimport 'devextreme/events/pointer';\nimport * as ko from 'knockout';\nimport dxScrollView from 'devextreme/ui/scroll_view';\nko.bindingHandlers['mobileZoom'] = {\n init: function (element, valueAccessor) {\n var options = valueAccessor();\n var scroll;\n var zoom = options.zoom();\n on(element, 'dxpinch', (e) => {\n e.stopPropagation();\n e.preventDefault();\n var scale = e['scale'];\n var newZoom = zoom;\n newZoom *= scale;\n newZoom = Math.max(0.15, Math.min(2, newZoom));\n options.zoom(newZoom);\n });\n on(element, 'dxpinchstart', (e) => {\n scroll = dxScrollView.getInstance(element.getElementsByClassName('dxrd-scrollView-mobile')[0]);\n e.stopPropagation();\n e.preventDefault();\n options.zoomUpdating(true);\n scroll && scroll.option('disabled', true);\n zoom = options.zoom.peek();\n });\n on(element, 'dxpinchend', (e) => {\n e.stopPropagation();\n options.zoomUpdating(false);\n setTimeout(() => {\n scroll && scroll.option('disabled', false);\n scroll && scroll.refresh();\n }, 10);\n });\n }\n};\nko.bindingHandlers['slide'] = {\n init: function (element, valueAccessor) {\n var slideOptionsValue = valueAccessor();\n var isStarted = false;\n var processor = new EventProcessor(element, slideOptionsValue);\n on(element, 'dxpointerdown', (e) => {\n processor.start(e);\n isStarted = true;\n });\n on(element, 'dxpointermove', (e) => {\n isStarted && processor.move(e);\n });\n ['dxpointercancel', 'dxpointerleave', 'dxpointerup'].forEach((value) => {\n on(element, value, (e) => {\n if (isStarted) {\n processor.end(e);\n isStarted = false;\n }\n });\n });\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\mobile\\internal\\gallery\\_galleryComponent.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport registerComponent from 'devextreme/core/component_registrator';\nimport 'devextreme/ui/gallery';\nimport dxGallery from 'devextreme/ui/gallery';\nimport * as $ from 'jquery';\nexport class dxGalleryReportPreview extends dxGallery {\n constructor(element, options) {\n super(element, options);\n this._animationClassName = 'dxrdp-gallery-item-animation';\n this.currentBlockItem = null;\n this.nextBlockItem = null;\n this.initializeBlockItems = () => {\n this.blockItems = [];\n var $items = this['_getAvailableItems']();\n for (var i = 0; i < $items.length; i++) {\n var left = parseFloat($items[i]['style'].left);\n left = isNaN(left) ? 0 : left;\n this.blockItems.push({\n element: $.fn.constructor($items[i]),\n left: left\n });\n }\n };\n this.initializeBlockItems();\n this.gallery = this['option']('gallery');\n var subscription = this.gallery.repaint.subscribe((newVal) => {\n if (!this.gallery.preview._hasActiveEditingFields()) {\n this.repaint();\n }\n });\n addDisposeCallback(element, () => {\n subscription.dispose();\n });\n }\n repaint() {\n super.repaint.apply(this);\n this.initializeBlockItems();\n }\n _swipeStartHandler(e) {\n super['_swipeStartHandler'].apply(this, [e]);\n var swipeRightEnable = this.gallery.swipeRightEnable();\n var swipeLeftEnable = this.gallery.swipeLeftEnable();\n if (!swipeRightEnable || !swipeLeftEnable) {\n var selectedIndex = swipeRightEnable ? 0 : 2;\n var startOffset = 3 - selectedIndex - 1, endOffset = selectedIndex;\n if (!swipeRightEnable && !swipeLeftEnable) {\n startOffset = 0;\n endOffset = 0;\n }\n e.event.maxLeftOffset = startOffset;\n e.event.maxRightOffset = endOffset;\n }\n this.gallery.isAnimated(true);\n if (this.gallery.animationEnabled()) {\n this.currentBlockItem && this.currentBlockItem.element.removeClass(this._animationClassName);\n this.nextBlockItem && this.nextBlockItem.element.removeClass(this._animationClassName);\n }\n }\n _getNextIndex(offset) {\n var index = this.gallery.selectedIndex();\n if (offset < 0) {\n if (index === 2) {\n index = 0;\n }\n else {\n index++;\n }\n }\n else {\n if (index === 0) {\n index = 2;\n }\n else {\n index--;\n }\n }\n return index;\n }\n _setSwipeAnimation(element, difference, offset, right) {\n var diffperc = 100 * offset / 4;\n var newLeft = '0%';\n if (right) {\n newLeft = (element.left + diffperc) + '%';\n }\n else {\n newLeft = (element.left - diffperc) + '%';\n }\n element.element.css({\n 'opacity': difference,\n 'transform': 'scale(' + difference + ')',\n 'left': newLeft\n });\n }\n _addAnimation(item) {\n if (item) {\n if (this.gallery.animationEnabled()) {\n item.element.addClass(this._animationClassName);\n }\n }\n }\n _restoreDefault(item) {\n if (item) {\n item.element.css({\n 'opacity': 1,\n 'transform': 'scale(' + 1 + ')',\n 'left': item.left + '%'\n });\n }\n }\n _getItem(index, loopTest) {\n var realIndex = index;\n var currentBlockIndex = this.blockItems.indexOf(this.currentBlockItem);\n if (loopTest) {\n if (currentBlockIndex === 2 && index === 0) {\n realIndex = 3;\n }\n else if (currentBlockIndex === 0 && index === 2) {\n realIndex = 4;\n }\n }\n var item = this.blockItems[realIndex];\n if (this.gallery.animationEnabled()) {\n item.element.removeClass(this._animationClassName);\n }\n return item;\n }\n _swipeUpdateHandler(e) {\n super['_swipeUpdateHandler'].apply(this, [e]);\n var offset = e.event.offset;\n var nextIndex = this._getNextIndex(offset);\n var currentIndex = this.gallery.selectedIndex();\n var currentBlockIndex = this.blockItems.indexOf(this.currentBlockItem);\n var nextBlockIndex = this.blockItems.indexOf(this.nextBlockItem);\n if (!this.currentBlockItem || currentBlockIndex !== currentIndex) {\n this.currentBlockItem = this._getItem(currentIndex, false);\n }\n if (!this.nextBlockItem || nextBlockIndex !== nextIndex) {\n this.nextBlockItem = this._getItem(nextIndex, true);\n }\n if (this.gallery.animationEnabled()) {\n offset = Math.abs(offset);\n var right = (nextIndex - currentIndex === 1) || (currentIndex === 2 && nextIndex === 0);\n this._setSwipeAnimation(this.currentBlockItem, Math.min(1, (1 - offset)), offset, right);\n this._setSwipeAnimation(this.nextBlockItem, Math.min(1, offset * 1.5), offset, !right);\n }\n }\n _swipeEndHandler(e) {\n super['_swipeEndHandler'].apply(this, [e]);\n if (this.gallery.animationEnabled()) {\n for (var i = 0; i < this.blockItems.length; i++) {\n if (this.blockItems[i] === this.currentBlockItem || this.blockItems[i] === this.nextBlockItem) {\n this._addAnimation(this.blockItems[i]);\n }\n this._restoreDefault(this.blockItems[i]);\n }\n }\n else {\n this.gallery.isAnimated(false);\n this.gallery.updatePagesVisible(this.gallery.preview);\n }\n }\n _endSwipe() {\n super['_endSwipe'].apply(this, arguments);\n this.gallery.isAnimated(false);\n this.gallery.updatePagesVisible(this.gallery.preview);\n }\n}\nregisterComponent('dxGalleryReportPreview', dxGalleryReportPreview);\n","/**\r\n* DevExpress HTML/JS Reporting (common\\utils\\_locker.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nexport class Locker {\n constructor() {\n this.lock = (action) => {\n if (!this.isUpdate) {\n this.isUpdate = true;\n action();\n this.isUpdate = false;\n }\n };\n this.isUpdate = false;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\dateRange\\dateRangeEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Locker } from '../../../common/utils/_locker';\nimport { DateRangeParemeterPopupModel } from '../../mobile/internal/_parametersPopup';\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport { formatDate, addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport { DateRangeDialogElementsKeyboardHelper } from '../../accessibility/_dateRangeKeyboardHelper';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nclass CSDateTime {\n constructor(_date = null) {\n this._date = _date;\n }\n static get today() {\n return new CSDateTime().now();\n }\n get date() {\n return this._date;\n }\n get day() {\n return this._date.getDay();\n }\n get month() {\n return this._date.getMonth();\n }\n get year() {\n return this._date.getFullYear();\n }\n addMonths(months) {\n return new CSDateTime(new Date(this._date.setMonth(CSDateTime.today.month + months)));\n }\n addDays(days) {\n var newDate = this.date.getDate() + days;\n return new CSDateTime(new Date(this._date.setDate(newDate)));\n }\n addHours(hours) {\n var newDate = this.date.getHours() + hours;\n return new CSDateTime(new Date(this._date.setHours(newDate)));\n }\n addYears(years) {\n return new CSDateTime(new Date(this._date.setFullYear(this._date.getFullYear() + years)));\n }\n now() {\n return new CSDateTime(new Date(new Date().setHours(0, 0, 0, 0)));\n }\n}\nfunction createRangeItem(displayName, localizationId, range) {\n var item = {\n displayName: getLocalization(displayName, localizationId),\n range: range\n };\n Object.defineProperty(item, 'displayName', {\n get: () => getLocalization(displayName, localizationId),\n configurable: true\n });\n return item;\n}\nexport var predefinedDateRanges = [\n createRangeItem('Today', 'PreviewStringId.DateRangeParameterEditor_Today', () => [\n CSDateTime.today.date,\n CSDateTime.today.date\n ]),\n createRangeItem('Yesterday', 'PreviewStringId.DateRangeParameterEditor_Yesterday', () => [\n CSDateTime.today.addDays(-1).date,\n CSDateTime.today.addDays(-1).date\n ]),\n createRangeItem('Current Week', 'PreviewStringId.DateRangeParameterEditor_CurrentWeek', () => [\n CSDateTime.today.addDays(-CSDateTime.today.day).date,\n CSDateTime.today.addDays(-CSDateTime.today.day).addDays(6).date\n ]),\n createRangeItem('Last Week', 'PreviewStringId.DateRangeParameterEditor_LastWeek', () => [\n CSDateTime.today.addDays(-7).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Week', 'PreviewStringId.DateRangeParameterEditor_PreviousWeek', () => [\n CSDateTime.today.addDays(-CSDateTime.today.day - 7).date,\n CSDateTime.today.addDays(-CSDateTime.today.day - 1).date\n ]),\n createRangeItem('Current Month', 'PreviewStringId.DateRangeParameterEditor_CurrentMonth', () => [\n new Date(CSDateTime.today.year, CSDateTime.today.month, 1),\n new Date(CSDateTime.today.year, CSDateTime.today.month + 1, 0),\n ]),\n createRangeItem('Last Month', 'PreviewStringId.DateRangeParameterEditor_LastMonth', () => [\n CSDateTime.today.addMonths(-1).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Month', 'PreviewStringId.DateRangeParameterEditor_PreviousMonth', () => [\n new Date(CSDateTime.today.year, CSDateTime.today.month - 1, 1),\n new Date(CSDateTime.today.year, CSDateTime.today.month, 0),\n ]),\n createRangeItem('Current Quarter', 'PreviewStringId.DateRangeParameterEditor_CurrentQuarter', () => [\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date,\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3 + 3).date,\n ]),\n createRangeItem('Previous Quarter', 'PreviewStringId.DateRangeParameterEditor_PreviousQuarter', () => [\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3 - 3).date,\n CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date,\n ]),\n createRangeItem('Current Year', 'PreviewStringId.DateRangeParameterEditor_CurrentYear', () => [\n new Date(CSDateTime.today.year, 0, 1),\n new Date(CSDateTime.today.year, 11, 31),\n ]),\n createRangeItem('Last Year', 'PreviewStringId.DateRangeParameterEditor_LastYear', () => [\n CSDateTime.today.addYears(-1).date,\n CSDateTime.today.date\n ]),\n createRangeItem('Previous Year', 'PreviewStringId.DateRangeParameterEditor_PreviousYear', () => [\n new Date(CSDateTime.today.year - 1, 0, 1),\n new Date(CSDateTime.today.year - 1, 11, 31),\n ])\n];\nexport class DateRangeEditor extends Disposable {\n constructor(_options, editorInputId) {\n super();\n this._options = _options;\n this._locker = new Locker();\n this._popupVisible = ko.observable(false);\n this._showPopup = () => {\n this._popupVisible(true);\n };\n this._hidePopup = () => {\n this._popupVisible(false);\n this._$element.get(0).querySelector('input').focus();\n };\n this._accessibilityDialogItems = ko.observableArray([]);\n this.popupTemplate = 'dxrv-daterange-editor-popup';\n this.items = [];\n this.startDate = ko.observable(new Date(new Date().setHours(0, 0, 0, 0)));\n this.endDate = ko.observable(new Date(new Date().setHours(0, 0, 0, 0)));\n this.calendarHeight = '100%';\n this._disposables.push(_options.value.subscribe((newVal) => this.applyDate(newVal)), this._displayText = ko.computed(() => this._getStringValue([this.startDate(), this.endDate()])), this.startDate.subscribe(() => this.applyValue(this.startDate() > this.endDate())), this.endDate.subscribe(() => this.applyValue()));\n this.applyDate(this._options.value());\n this.items = predefinedDateRanges;\n if (_options.isMobile) {\n this.popupTemplate = 'dxrd-menu-parameters-content';\n this.popupModel = new DateRangeParemeterPopupModel(this);\n }\n else {\n this.popupModel = this;\n }\n this.dialogKeyboardHelper = new DateRangeDialogElementsKeyboardHelper(this._hidePopup, this._popupVisible);\n this._disposables.push(this.dialogKeyboardHelper);\n this._editorInputId = editorInputId;\n }\n _getStringValue(range) {\n return range.map(x => formatDate(x)).join(' - ');\n }\n _isSelected(item) {\n return this._displayText() === this._getStringValue(item.range());\n }\n _toParameterValue() {\n return [this.startDate(), this.endDate()];\n }\n _createTemplateData(value, min) {\n return {\n value,\n min,\n height: this.calendarHeight,\n inRange: (date) => this.inRange(date)\n };\n }\n applyDate(range, force = false) {\n this._locker.lock(() => {\n if (range[1] < this.startDate()) {\n this.startDate(range[0]);\n this.endDate(range[1]);\n }\n else {\n this.endDate(range[1]);\n this.startDate(range[0]);\n }\n });\n if (force)\n this.applyValue();\n }\n inRange(date) {\n var _end = new Date(this.endDate().getTime());\n var _start = new Date(this.startDate().getTime());\n return date <= new Date(_end.setHours(0, 0, 0, 0)) &&\n date >= new Date(_start.setHours(0, 0, 0, 0));\n }\n applyValue(updateEndDate = false) {\n this._locker.lock(() => {\n updateEndDate && this.endDate(this.startDate());\n this._options.value(this._toParameterValue());\n });\n }\n}\nko.bindingHandlers['dxrvDateRangeEditor'] = {\n init: (element, valueAccessor, bindings, model, bindingContext) => {\n var rangeEditor = new DateRangeEditor(valueAccessor(), model.editorInputId);\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dxrv-daterange-editor'), $element = $.fn.constructor(element).append(templateHtml);\n var context = bindingContext.createChildContext(rangeEditor);\n ko.applyBindingsToDescendants(context, $element.children()[0]);\n addDisposeCallback(element, () => rangeEditor.dispose());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\_multiValueEditor.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { getLocalization, Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport class MultiValueEditorOptions extends Disposable {\n constructor(value, items) {\n super();\n this.selectedItems = ko.observable([]);\n var values = value();\n this.value = value;\n var valueHasMutated = () => {\n this.editorValue.notifySubscribers(this.displayItems[0]);\n };\n this._items = items.map((item) => {\n var selected = ko.observable(this._isValueSelected(item.value, values));\n return { selected: selected, value: item.value, displayValue: item.displayValue || item.value, toggleSelected: () => { selected(!selected()); valueHasMutated(); } };\n });\n this._disposables.push(this.selectedItems = ko.pureComputed(() => {\n return this._items.filter((item) => { return item.selected(); });\n }));\n var selectionInProcess = ko.observable(false), isSelectedAllState, stringValue;\n this._disposables.push(this.selectedValuesString = ko.pureComputed({\n read: () => {\n if (selectionInProcess())\n return stringValue;\n stringValue = '';\n this.selectedItems().forEach((item, index, array) => {\n stringValue += item.displayValue;\n if (index < array.length - 1) {\n stringValue += ', ';\n }\n });\n return stringValue;\n },\n write: (newValue) => { }\n }));\n this._disposables.push(this.isSelectedAll = ko.pureComputed({\n read: () => {\n if (selectionInProcess())\n return isSelectedAllState;\n var selectedItemCount = this.selectedItems().length;\n if (selectedItemCount > 0 && selectedItemCount < this._items.length) {\n return undefined;\n }\n isSelectedAllState = selectedItemCount === this._items.length;\n return isSelectedAllState;\n },\n write: (newValue) => {\n isSelectedAllState = newValue;\n try {\n selectionInProcess(true);\n this._items.forEach((item) => { item.selected(newValue); });\n }\n finally {\n selectionInProcess(false);\n }\n }\n }));\n var selectAllItem = { selected: this.isSelectedAll, value: null, displayValue: getLocalization('(Select All)', 'AnalyticsCoreStringId.SelectAll'), toggleSelected: () => { this.isSelectedAll(!this.isSelectedAll()); valueHasMutated(); } };\n this.displayItems = [selectAllItem].concat(this._items);\n this.dataSource = this.displayItems;\n this.editorValue = ko.observable(selectAllItem);\n this.updateValue = () => {\n value(this._items.filter((item) => { return item.selected(); }).map((item) => { return item.value; }));\n valueHasMutated();\n };\n this.onOptionChanged = (e) => {\n if (e.name !== 'opened' || e.value)\n return;\n this.updateValue();\n };\n }\n _isValueSelected(value, array) {\n if (value instanceof Date) {\n return array.filter((item) => { return item - value === 0; }).length > 0;\n }\n return array.indexOf(value) !== -1;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_imagePainter.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageAlignment, ImageSizeMode } from '../../editing/editingField';\nexport class ImagePainter {\n constructor(options) {\n this.format = ko.observable();\n this.image = options.imageSource;\n this.sizeMode = options.sizeMode;\n this.alignment = options.alignment;\n }\n _drawImage(imageSource, context, scale, contentSize) {\n var deferred = $.Deferred();\n if (!imageSource)\n return deferred.resolve().promise();\n var background = new Image();\n var prefix = 'data:image/' + (this.format() || 'png') + ';base64,';\n if (this.format() === 'svg') {\n prefix = 'data:image/svg+xml;charset=UTF-8;base64,';\n }\n var imageBase64 = imageSource.indexOf('base64,') !== -1 ? imageSource : prefix + imageSource;\n background.src = imageBase64;\n background.onload = () => {\n var size = this._getImageSize(background, scale, contentSize);\n var location = this._getImageCoordinate(size, contentSize);\n context.drawImage(background, location.x, location.y, size.width, size.height);\n deferred.resolve();\n };\n return deferred.promise();\n }\n _getImageSize(image, scale, contentSize) {\n var sizeMode = this.sizeMode();\n var width = image.width * scale, height = image.height * scale;\n if (sizeMode === ImageSizeMode.StretchImage) {\n width = contentSize.width;\n height = contentSize.height;\n }\n else if (sizeMode === ImageSizeMode.Cover || sizeMode === ImageSizeMode.ZoomImage || (sizeMode === ImageSizeMode.Squeeze && (contentSize.width < width || contentSize.height < height))) {\n var ratio = (sizeMode === ImageSizeMode.Cover ? Math.max : Math.min)(contentSize.width / width, contentSize.height / height);\n width *= ratio;\n height *= ratio;\n }\n return { width: width, height: height };\n }\n _getImageCoordinate(imageSize, contentSize) {\n var alignment = this.alignment();\n var x = 0, y = 0;\n if (!(alignment in ImageAlignment) && (this.sizeMode() === ImageSizeMode.Cover || this.sizeMode() === ImageSizeMode.ZoomImage || this.sizeMode() === ImageSizeMode.Squeeze)) {\n alignment = ImageAlignment.MiddleCenter;\n }\n if (alignment === ImageAlignment.MiddleLeft || alignment === ImageAlignment.MiddleCenter || alignment === ImageAlignment.MiddleRight) {\n y = (contentSize.height - imageSize.height) / 2;\n }\n else if (alignment === ImageAlignment.BottomLeft || alignment === ImageAlignment.BottomCenter || alignment === ImageAlignment.BottomRight) {\n y = contentSize.height - imageSize.height;\n }\n if (alignment === ImageAlignment.TopCenter || alignment === ImageAlignment.MiddleCenter || alignment === ImageAlignment.BottomCenter) {\n x = (contentSize.width - imageSize.width) / 2;\n }\n else if (alignment === ImageAlignment.TopRight || alignment === ImageAlignment.MiddleRight || alignment === ImageAlignment.BottomRight) {\n x = contentSize.width - imageSize.width;\n }\n return { x: x, y: y };\n }\n refresh(context, scale = 1, contentSize) {\n contentSize = contentSize || {\n width: context.canvas.width,\n height: context.canvas.height\n };\n return this._drawImage(this.image(), context, scale, contentSize);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_signaturePainter.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport * as ko from 'knockout';\nexport class SignaturePainter extends Disposable {\n constructor() {\n super();\n this._points = ko.observableArray([]);\n this.hasPoints = ko.computed(() => { return this._points().length > 0; });\n this._disposables.push(this.hasPoints);\n }\n dispose() {\n super.dispose();\n this.reset();\n }\n _drawPath(context, x, y, lastX, lastY, color, lineWidth) {\n context.beginPath();\n context.strokeStyle = color;\n context.lineWidth = lineWidth;\n context.lineJoin = 'round';\n context.moveTo(lastX, lastY);\n context.lineTo(x, y);\n context.closePath();\n context.stroke();\n }\n _drawCircle(context, x, y, color, lineWidth) {\n context.beginPath();\n context.fillStyle = color;\n context.arc(x, y, lineWidth / 2, 0, 2 * Math.PI, false);\n context.fill();\n }\n _drawAllPoints(context) {\n this._points().forEach((point) => {\n if (point.isStart) {\n this._drawCircle(context, point.x, point.y, point.color, point.width);\n }\n else {\n this._drawPath(context, point.x, point.y, point.lastX, point.lastY, point.color, point.width);\n }\n });\n }\n drawCircle(context, x, y, color, width) {\n this._lastX = x;\n this._lastY = y;\n this._drawCircle(context, x, y, color, width);\n this._points.push({ x: this._lastX, y: this._lastY, color: color, width: width, isStart: true });\n }\n drawPath(context, x, y, color, width) {\n this._drawPath(context, x, y, this._lastX, this._lastY, color, width);\n this._points.push({ x: x, y: y, lastX: this._lastX, lastY: this._lastY, color: color, width: width });\n this._lastX = x;\n this._lastY = y;\n }\n resetLastPosition() {\n this._lastX = undefined;\n this._lastY = undefined;\n }\n resetPoints() {\n this._points([]);\n }\n reset() {\n this.resetLastPosition();\n this.resetPoints();\n }\n refresh(context) {\n this._drawAllPoints(context);\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_painter.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { ImageSizeMode, ImageAlignment } from '../../editing/editingField';\nimport { ImagePainter } from './_imagePainter';\nimport { SignaturePainter } from './_signaturePainter';\nimport { ImageEditingFieldViewModel } from '../../editing/models/imageEditingField';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { addDisposeCallback } from '@devexpress/analytics-core/analytics-internal';\nimport * as ko from 'knockout';\nimport * as $ from 'jquery';\nimport * as events from 'devextreme/events';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nexport class Painter extends Disposable {\n constructor(options) {\n super();\n this._pointerDownHandler = (e) => {\n var point = this._getContextPoint(e);\n point && this.signaturePainter.drawCircle(this._context, point.x, point.y, this.lineColor(), this.lineWidth());\n };\n this._pointerMoveHandler = (e) => {\n if (e.pointerType === 'touch' || e.pointerType === 'pen' || (e.pointerType === 'mouse' && e.originalEvent['buttons'] == 1)) {\n var point = this._getContextPoint(e);\n point && this.signaturePainter.drawPath(this._context, point.x, point.y, this.lineColor(), this.lineWidth());\n }\n };\n this._pointerLeaveHandler = (e) => {\n this.signaturePainter.resetLastPosition();\n };\n this.format = (newVal) => {\n if (newVal)\n this.imagePainter.format(newVal);\n return this.imagePainter.format();\n };\n this.imageSizeMode = ko.observable(ImageSizeMode.Normal);\n this.imageAlignment = ko.observable(ImageAlignment.TopLeft);\n this.lineWidth = ko.observable(1);\n this.lineColor = ko.observable('#000000');\n this.zoom = options.zoom;\n this.image = ko.observable(options.imageSource);\n this.imageSizeMode(options.sizeMode);\n this.imageAlignment(options.alignment);\n this.imagePainter = new ImagePainter({\n alignment: this.imageAlignment,\n imageSource: this.image,\n sizeMode: this.imageSizeMode\n });\n this.format(options.imageType);\n this._disposables.push(this.signaturePainter = new SignaturePainter());\n this._disposables.push(this.signaturePainter.hasPoints.subscribe((newVal) => {\n if (newVal)\n this._setCanvasSize(this.initialSize.width, this.initialSize.height);\n else\n this._setCanvasSize(this.initialSize.width * this.zoom(), this.initialSize.height * this.zoom());\n this.refresh();\n }));\n this._disposables.push(this.scale = ko.computed(() => {\n return this.hasSignature() ? this.zoom() : 1;\n }));\n if (options.canDraw) {\n this._disposables.push((options.canDraw).subscribe((newValue) => {\n if (newValue) {\n this._addEvents();\n }\n else {\n this._removeEvents();\n }\n }));\n }\n this._disposables.push(this.zoom.subscribe((newVal) => {\n if (!this.signaturePainter.hasPoints()) {\n this._setCanvasSize(this.initialSize.width * newVal, this.initialSize.height * newVal);\n this.refresh();\n }\n }));\n }\n _getContextPoint(e) {\n if (e.target.nodeName !== 'CANVAS')\n return;\n var zoom = this.zoom();\n var x, y;\n if (e.offsetX && e.offsetY) {\n zoom = this.hasSignature() ? 1 : zoom;\n x = e.offsetX / zoom;\n y = e.offsetY / zoom;\n }\n else {\n var rect = this._context.canvas.getBoundingClientRect();\n x = (e.clientX - rect.left) / zoom;\n y = (e.clientY - rect.top) / zoom;\n }\n return { x, y };\n }\n _addEvents() {\n var element = this.$element.get(0);\n events.on(element, 'dxpointerdown', this._pointerDownHandler);\n events.on(element, 'dxpointermove', this._pointerMoveHandler);\n events.on(element, 'dxpointerleave', this._pointerLeaveHandler);\n }\n _removeEvents() {\n var element = this.$element.get(0);\n events.off(element, 'dxpointerdown', this._pointerDownHandler);\n events.off(element, 'dxpointermove', this._pointerMoveHandler);\n events.off(element, 'dxpointerleave', this._pointerLeaveHandler);\n }\n _setCanvasSize(width, height) {\n this._context.canvas.setAttribute('width', width);\n this._context.canvas.setAttribute('height', height);\n }\n _cleanCanvas() {\n this._context.clearRect(0, 0, this._context.canvas.width, this._context.canvas.height);\n }\n clear() {\n this.image(null);\n this.signaturePainter.reset();\n this._cleanCanvas();\n }\n refresh() {\n this._cleanCanvas();\n var zoom = this.signaturePainter.hasPoints() ? 1 : this.zoom();\n var size = this.signaturePainter.hasPoints() ? this.initialSize : undefined;\n this.imagePainter.refresh(this._context, zoom, size)\n .done(() => this.signaturePainter.refresh(this._context));\n }\n initSize(element, zoom) {\n this.$element = element;\n this.initialSize = {\n width: this.$element.outerWidth() / zoom,\n height: this.$element.outerHeight() / zoom\n };\n }\n initCanvas(element, zoom) {\n var canvas = this.$element.find('canvas')[0];\n this._context = canvas.getContext('2d');\n this._setCanvasSize(this.initialSize.width * zoom, this.initialSize.height * zoom);\n this.imagePainter.refresh(this._context, zoom, {\n width: this._context.canvas.offsetWidth,\n height: this._context.canvas.offsetHeight\n });\n }\n imageFormatByType(imageType) {\n return imageType === ImageEditingFieldViewModel.__DefaultImageType ? 'png' : imageType;\n }\n getImage() {\n return this._context.canvas.toDataURL('image/png');\n }\n hasSignature() {\n return this.signaturePainter.hasPoints();\n }\n dispose() {\n super.dispose();\n this._removeEvents();\n this.$element = null;\n this._context = null;\n }\n reset(initialImage, initialAlignment, initialSizeMode, initialImageType) {\n this.image(initialImage);\n this.imageAlignment(initialAlignment);\n this.imageSizeMode(initialSizeMode);\n this.format(this.imageFormatByType(initialImageType));\n this.signaturePainter.reset();\n this.refresh();\n }\n}\nko.bindingHandlers['dxPainter'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = (valueAccessor());\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-painter');\n var $element = $.fn.constructor(element).append(templateHtml);\n var child = $element.children()[0];\n var $child = $.fn.constructor(child);\n var model = new Painter(options);\n model.initSize($child, options.zoom());\n addDisposeCallback(element, function () {\n model.dispose();\n });\n ko.applyBindings(model, child);\n model.initCanvas($child, options.zoom());\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorToolbarItem.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { PopupComponentBase } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nexport class PictureEditorToolbarItem {\n constructor(options) {\n this.id = options.id;\n this.icon = options.icon;\n this.action = options.action;\n this.active = options.active;\n this.renderedHandler = options.renderedHandler;\n this.title = options.title;\n }\n dispose() {\n this.renderedHandler = null;\n this.action = null;\n }\n}\nexport class PictureEditorToolbarItemWithPopup extends PictureEditorToolbarItem {\n constructor(options) {\n super(options);\n this.template = options.template;\n if (options.templateOptions) {\n this.templateOptions = options.templateOptions;\n this._popup = new PopupComponentBase();\n this.templateOptions.onContentReady = this._popup.onContentReady;\n this.templateOptions.hideOnOutsideClick = this._popup.hideOnOutsideClick;\n this.templateOptions.onShown = (e) => {\n var $element = $.fn.constructor(e.element);\n var topElement = $element.position().top;\n var popupsOffset = e['model'].getPositionTarget().offset().top - $.fn.constructor(e.component.content()).offset().top;\n var $arrow = $.fn.constructor($element.find('.dx-popover-arrow')[0]);\n $arrow.css('top', popupsOffset + topElement - 24 - 11);\n };\n }\n }\n dispose() {\n super.dispose();\n this._popup.dispose();\n this.templateOptions = null;\n }\n}\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorActionProvider.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { calculateWithZoomFactor, findMatchesInString, searchPlaceholder, ShowMessage } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable, getLocalization } from '@devexpress/analytics-core/analytics-utils';\nimport { addToBindingsCache } from '@devexpress/analytics-core/analytics-widgets-internal';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { imageAlignment, ImageAlignment, ImageSizeMode, sizing } from '../../editing/editingField';\nimport { getEnumValues, getImageBase64 } from '../../internal/_utils';\nimport { PictureEditorToolbarItem, PictureEditorToolbarItemWithPopup } from './_pictureEditorToolbarItem';\nimport { PictureEditorActionId } from './_pictureEditorTypes';\nexport class PictureEditorActionProvider extends Disposable {\n constructor(_editorModel, _popupOptions) {\n super();\n this._editorModel = _editorModel;\n this._popupOptions = _popupOptions;\n }\n _getValues(enumType, prefix, propertyName, info) {\n var array = [];\n getEnumValues(enumType).forEach((item) => {\n var attrTitle = undefined;\n if (info && info.valuesArray.length > 0) {\n var displayValue = info.valuesArray.filter((value) => value.value === item)[0];\n attrTitle = getLocalization(displayValue.displayValue || displayValue.value, displayValue.localizationId);\n }\n array.push({\n value: item,\n iconTemplate: 'dxrd-svg-pictureeditor-' + prefix + '_' + item.toLowerCase(),\n attrTitle,\n isSelected: ko.computed(() => { return this._editorModel.painter[propertyName]() === enumType[item]; }),\n action: () => {\n this._editorModel.painter[propertyName](enumType[item]);\n this._editorModel.painter.refresh();\n }\n });\n });\n return array;\n }\n _getColorValues() {\n var array = [];\n PictureEditorActionProvider.colors.forEach((item) => {\n array.push({\n value: item,\n isSelected: ko.computed(() => { return this._editorModel.painter.lineColor() === item; }),\n action: (e) => {\n this._editorModel.painter.lineColor(item);\n }\n });\n });\n return array;\n }\n _initPopupOptions(options) {\n options.boundary = this._popupOptions.boundary;\n options.getPositionTarget = () => this._popupOptions.getPositionTarget();\n options.target = this._popupOptions.target;\n options.container = this._popupOptions.container;\n return options;\n }\n createOpenFileAction(action) {\n var openFileActionOptions = {\n id: PictureEditorActionId.OpenFile,\n icon: 'dxrd-svg-pictureeditor-toolbar_open',\n title: getLocalization('Load Image', 'PreviewStringId.ImageEditingFieldEditor_LoadImage'),\n active: ko.observable(false),\n action: (e) => action(e)\n };\n return new PictureEditorToolbarItem(openFileActionOptions);\n }\n createImagePickerAction(images, filterEnabled, action) {\n filterEnabled = filterEnabled && images.every((image) => image.text !== undefined);\n var active = ko.observable(false);\n var filter = ko.observable('');\n images.forEach((image) => {\n if (filterEnabled) {\n this._disposables.push(image.visible = ko.computed(() => !!findMatchesInString(image.text, filter())));\n }\n else {\n image.visible = true;\n }\n });\n var popupOptions = this._initPopupOptions({\n width: 'auto',\n height: calculateWithZoomFactor(300) + 'px',\n visible: active,\n contentTemplate: filterEnabled ? 'dx-picture-editing-imagepickerwithfilter' : 'dx-picture-editing-imagespicker',\n contentData: {\n filterEnabled: filterEnabled,\n filter: filter,\n searchPlaceholder: () => searchPlaceholder(),\n contentWidth: this._editorModel.painter.initialSize.width * 2 + 35,\n width: Math.min(this._editorModel.painter.initialSize.width, 150),\n height: Math.min(this._editorModel.painter.initialSize.height, 150),\n action: (data) => {\n if (data.url) {\n getImageBase64(data.url).done((result) => {\n action(result);\n }).fail((e) => {\n ShowMessage(e.name + ' :' + e.message.split(':').pop(), 'error');\n });\n }\n else {\n action(data.data);\n }\n },\n images: images\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.PickImage,\n icon: 'dxrd-svg-pictureeditor-image_gallery',\n title: getLocalization('Choose Image', 'PreviewStringId.ImageEditingFieldEditor_ChooseImage'),\n active: active,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions\n });\n }\n createSizingAction() {\n var alignmentActive = ko.observable(false);\n var popupOptions = this._initPopupOptions({\n width: calculateWithZoomFactor(174) + 'px',\n height: calculateWithZoomFactor(300) + 'px',\n visible: alignmentActive,\n contentTemplate: 'dx-picture-editing-sizemode-alignment',\n contentData: {\n sizeModeText: getLocalization('Size Mode', 'PreviewStringId.ImageEditingFieldEditor_SizeMode'),\n sizeMode: this._editorModel.painter.imageSizeMode,\n sizeModeValues: this._getValues(ImageSizeMode, 'size_mode', 'imageSizeMode', sizing),\n alignmentText: getLocalization('Alignment', 'PreviewStringId.ImageEditingFieldEditor_Alignment'),\n alignment: this._editorModel.painter.imageAlignment,\n alignmentValues: this._getValues(ImageAlignment, 'alignment', 'imageAlignment', imageAlignment),\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.Alignment,\n icon: 'dxrd-svg-pictureeditor-toolbar_size_mode_and_alignment',\n title: getLocalization('Size Mode and Alignment', 'PreviewStringId.ImageEditingFieldEditor_SizeModeAndAlignment'),\n active: alignmentActive,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions\n });\n }\n createBrushAction() {\n var brushItemActive = ko.observable(false);\n var popupOptions = this._initPopupOptions({\n width: calculateWithZoomFactor(226) + 'px',\n height: calculateWithZoomFactor(295) + 'px',\n visible: brushItemActive,\n contentTemplate: 'dx-picture-editing-brush-options',\n contentData: {\n lineWidth: this._editorModel.painter.lineWidth,\n lineColor: this._editorModel.painter.lineColor,\n colors: this._getColorValues(),\n brushWidthText: getLocalization('Brush size', 'PreviewStringId.ImageEditingFieldEditor_BrushSize'),\n brushColorText: getLocalization('Brush color', 'PreviewStringId.ImageEditingFieldEditor_BrushColor'),\n }\n });\n return new PictureEditorToolbarItemWithPopup({\n id: PictureEditorActionId.Brush,\n icon: 'dxrd-svg-pictureeditor-toolbar_brush_options',\n title: getLocalization('Brush Options', 'PreviewStringId.ImageEditingFieldEditor_BrushOptions'),\n active: brushItemActive,\n template: 'dx-picture-editing-toolbar-popup',\n templateOptions: popupOptions,\n renderedHandler: (elem, mod) => {\n if (elem[0].nodeName.toLowerCase() === 'svg') {\n var brushIcon = $.fn.constructor(elem[0]).find('.dxrd-svg-brush-color');\n if (brushIcon) {\n brushIcon.attr('data-bind', '{ style: { fill: $data.templateOptions.contentData.lineColor }}');\n ko.applyBindingsToDescendants(mod, brushIcon[0]);\n }\n }\n }\n });\n }\n createResetItem(action) {\n var clearItemOptions = {\n id: PictureEditorActionId.Reset,\n icon: 'dxrd-svg-pictureeditor-toolbar_reset',\n title: getLocalization('Reset', 'PreviewStringId.ImageEditingFieldEditor_Reset'),\n active: ko.observable(false),\n action: (e) => action()\n };\n return new PictureEditorToolbarItem(clearItemOptions);\n }\n createClearItem(action) {\n var clearItemOptions = {\n id: PictureEditorActionId.Clear,\n icon: 'dxrd-svg-pictureeditor-toolbar_clear',\n title: getLocalization('Clear', 'PreviewStringId.ImageEditingFieldEditor_Clear'),\n active: ko.observable(false),\n action: (e) => action()\n };\n return new PictureEditorToolbarItem(clearItemOptions);\n }\n}\nPictureEditorActionProvider.colors = ['#FFFFFF', '#FFC0C0', '#FFE0C0', '#FFFFC0', '#C0FFC0', '#C0FFFF', '#C0C0FF', '#FFC0FF', '#E0E0E0', '#FF8080', '#FFC080', '#FFFF80', '#80FF80', '#80FFFF', '#8080FF', '#FF80FF', '#C0C0C0', '#FF0000', '#FF8000', '#FFFF00', '#00FF00', '#00FFFF', '#0000FF', '#FF00FF', '#808080', '#C00000', '#C04000', '#C0C000', '#00C000', '#00C0C0', '#0000C0', '#C000C0', '#404040', '#800000', '#804000', '#808000', '#008000', '#008080', '#000080', '#800080', '#000000', '#400000', '#804040', '#404000', '#004000', '#004040', '#000040', '#400040'];\naddToBindingsCache('style: { fill: $data.templateOptions.contentData.lineColor }', function ($context, $element) {\n return {\n 'style': function () {\n return {\n 'fill': $context.$data.templateOptions.contentData.lineColor\n };\n }\n };\n});\n","/**\r\n* DevExpress HTML/JS Reporting (viewer\\widgets\\pictureEditor\\_pictureEditorModel.js)\r\n* Version: 23.1.4\r\n* Build date: Jul 18, 2023\r\n* Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n* License: https://www.devexpress.com/Support/EULAs/universal.xml\r\n*/\r\nimport { addDisposeCallback, getParentContainer, uploadFile } from '@devexpress/analytics-core/analytics-internal';\nimport { Disposable } from '@devexpress/analytics-core/analytics-utils';\nimport { getTemplate } from '@devexpress/analytics-core/analytics-widgets';\nimport * as events from 'devextreme/events';\nimport dxPopup from 'devextreme/ui/popup';\nimport * as $ from 'jquery';\nimport * as ko from 'knockout';\nimport { ImageEditingFieldViewModel } from '../../editing/models/imageEditingField';\nimport { PictureEditMode } from './pictureEditMode';\nimport { Painter } from './_painter';\nimport { PictureEditorActionProvider } from './_pictureEditorActionProvider';\nexport class PictureEditorModel extends Disposable {\n constructor(options, element) {\n super();\n this.GESTURE_COVER_CLASS = 'dx-gesture-cover';\n this.ACTIVE_POPUP_CLASS = '.dx-picture-editing-active';\n this._getPopupContent = () => {\n var popupInstance = dxPopup['getInstance'](this.$element.find(this.ACTIVE_POPUP_CLASS).get(0));\n return popupInstance && $.fn.constructor(popupInstance.content());\n };\n this.getPopupContainer = getParentContainer;\n this.actions = [];\n this.canDraw = ko.observable(false);\n this._initialImageType = ko.unwrap(options.imageType) || 'png';\n this.zoom = options.zoom || ko.observable(1);\n this.editMode = ko.unwrap(options.imageMode) || PictureEditMode.Image;\n this._initialImage = ko.unwrap(options.image);\n this._initialAlignment = ko.unwrap(options.alignment);\n this._initialSizeMode = ko.unwrap(options.sizeMode);\n this._callbacks = options.callbacks;\n this.$element = $.fn.constructor(element);\n this.shadingEnabled = options.shadingEnabled;\n this.active = ko.isObservable(options.active) ? options.active : ko.observable(!!options.active);\n var painterOptions = {\n alignment: this._initialAlignment,\n canDraw: this.editMode !== PictureEditMode.Image && this.canDraw,\n imageSource: this._initialImage,\n imageType: this._initialImageType,\n sizeMode: this._initialSizeMode,\n zoom: this.zoom\n };\n this.painter = new Painter(painterOptions);\n this._disposables.push(this.painter);\n this.painter.initSize(this.$element, this.zoom());\n this.actionsProvider = new PictureEditorActionProvider(this, $.extend(true, {\n getPositionTarget: () => {\n return this._getPopupContent().find('.dx-picture-editing-toolbar');\n }\n }, (options.popupOptions || {})));\n this._disposables.push(this.actionsProvider);\n this._initActions(options.callbacks && options.callbacks.customizeActions);\n this.applyBindings();\n }\n _takeFocus() {\n if (!this.active()) {\n this._callbacks && this._callbacks.onFocusIn && this._callbacks.onFocusIn(this);\n this.active(true);\n }\n else if (this.editMode !== PictureEditMode.Image) {\n this.canDraw(true);\n this._callbacks && this._callbacks.onDraw && this._callbacks.onDraw(this);\n }\n }\n _releaseFocus() {\n if (this.active()) {\n this._callbacks && this._callbacks.onFocusOut && this._callbacks.onFocusOut(this);\n this.active(false);\n this.canDraw(false);\n }\n }\n _wrapButtonAction(item, model) {\n var oldAction = item.action;\n item.action = (sender, event) => {\n model.changeActiveButton(sender);\n if (oldAction)\n oldAction(event, model);\n };\n }\n _initActions(customizeActionsCallback) {\n if (this.editMode == PictureEditMode.Image || this.editMode == PictureEditMode.ImageAndSignature) {\n this.actions.push(this.actionsProvider.createOpenFileAction((e) => this._loadImage(e)));\n this.actions.push(this.actionsProvider.createSizingAction());\n }\n if (this.editMode == PictureEditMode.Signature || this.editMode == PictureEditMode.ImageAndSignature) {\n this.actions.push(this.actionsProvider.createBrushAction());\n }\n if (!!this._initialImage) {\n this.actions.push(this.actionsProvider.createResetItem(() => {\n this.painter.reset(this._initialImage, this._initialAlignment, this._initialSizeMode, this._initialImageType);\n }));\n }\n this.actions.push(this.actionsProvider.createClearItem(() => {\n this.painter.clear();\n }));\n customizeActionsCallback && customizeActionsCallback(this, this.actions);\n this.actions.forEach((item) => this._wrapButtonAction(item, this));\n }\n _loadImage(event) {\n event.stopPropagation();\n event.preventDefault();\n uploadFile({\n accept: 'image/*'\n }).done(result => {\n this.painter.format(result.format);\n this.painter.image(result.content);\n this.painter.refresh();\n });\n }\n _addEvents() {\n this._pointerDownHandler = (e) => {\n this._takeFocus();\n };\n this._pointerCancelHandler = (e) => {\n this._releaseFocus();\n };\n this._pointerUpHandler = (e) => {\n if (!this.active())\n return;\n var isUnderCursor = (componentContent) => {\n return componentContent && (componentContent.is(e.target) || componentContent.has(e.target).length > 0);\n };\n var isEditorContainer = this.$element.is(e.target) || this.$element.has(e.target).length > 0\n || isUnderCursor(this._getPopupContent())\n || this.actions.some(a => {\n if (!a.active())\n return false;\n var component = ko.unwrap(a.component);\n return isUnderCursor(component && $.fn.constructor(component.content()));\n })\n || (e.target && e.target.className && e.target.className.indexOf && e.target.className.indexOf(this.GESTURE_COVER_CLASS) !== -1);\n if (!isEditorContainer) {\n this._releaseFocus();\n }\n };\n var element = this.$element.get(0);\n events.on(element, 'dxpointerdown', this._pointerDownHandler);\n events.on(element, 'dxpointercancel', this._pointerCancelHandler);\n events.on(document, 'dxpointerup', this._pointerUpHandler);\n }\n changeActiveButton(selectedItem) {\n this.actions.forEach(action => {\n action.active(action === selectedItem && !action.active());\n });\n }\n applyBindings() {\n ko.cleanNode(this.$element[0]);\n ko.applyBindings(this, this.$element[0]);\n this._addEvents();\n this.painter.initCanvas(this.$element, this.zoom());\n }\n dispose() {\n super.dispose();\n var element = this.$element.get(0);\n events.off(element, 'dxpointerdown', this._pointerDownHandler);\n events.off(element, 'dxpointercancel', this._pointerCancelHandler);\n events.off(document, 'dxpointerup', this._pointerUpHandler);\n this.actions.forEach(action => action.dispose && action.dispose());\n this.$element = null;\n }\n getImage() {\n return this.painter.getImage();\n }\n reset(image, alignment, sizeMode, imageType) {\n this._initialImage = image;\n this._initialAlignment = alignment;\n this._initialSizeMode = sizeMode;\n this._initialImageType = imageType;\n this.painter.reset(this._initialImage, this._initialAlignment, this._initialSizeMode, this._initialImageType);\n }\n getCurrentOptions() {\n var imageBase64 = (this.painter.hasSignature() ? this.painter.getImage() : this.painter.image()) || '';\n var imageParts = imageBase64.split(',');\n return {\n sizeMode: this.painter.imageSizeMode(),\n alignment: this.painter.imageAlignment(),\n imageType: this.painter.hasSignature() ? ImageEditingFieldViewModel.__DefaultImageType : this.painter.format(),\n image: imageParts[imageParts.length - 1]\n };\n }\n}\nko.bindingHandlers['dxPictureEditor'] = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n var options = (valueAccessor());\n $.fn.constructor(element).children().remove();\n var templateHtml = getTemplate('dx-picture-editing');\n var $element = $.fn.constructor(element).append(templateHtml);\n var child = $element.children()[0];\n var model = new PictureEditorModel(options, child);\n addDisposeCallback(element, function () {\n model.dispose();\n });\n return { controlsDescendantBindings: true };\n }\n};\n","/**\r\n * DevExtreme (esm/ui/track_bar.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Editor from \"./editor/editor\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport fx from \"../animation/fx\";\r\nvar TRACKBAR_CLASS = \"dx-trackbar\";\r\nvar TRACKBAR_CONTAINER_CLASS = \"dx-trackbar-container\";\r\nvar TRACKBAR_RANGE_CLASS = \"dx-trackbar-range\";\r\nvar TRACKBAR_WRAPPER_CLASS = \"dx-trackbar-wrapper\";\r\nvar TrackBar = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n min: 0,\r\n max: 100,\r\n value: 0\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TRACKBAR_CLASS);\r\n this._renderWrapper();\r\n this._renderContainer();\r\n this._renderRange();\r\n this._renderValue();\r\n this._setRangeStyles();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setRangeStyles(this._rangeStylesConfig())\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"
\").addClass(TRACKBAR_WRAPPER_CLASS).appendTo(this.$element())\r\n },\r\n _renderContainer: function() {\r\n this._$bar = $(\"
\").addClass(TRACKBAR_CONTAINER_CLASS).appendTo(this._$wrapper)\r\n },\r\n _renderRange: function() {\r\n this._$range = $(\"
\").addClass(TRACKBAR_RANGE_CLASS).appendTo(this._$bar)\r\n },\r\n _renderValue: function() {\r\n var val = this.option(\"value\");\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (min > max) {\r\n return\r\n }\r\n if (val < min) {\r\n this.option(\"value\", min);\r\n this._currentRatio = 0;\r\n return\r\n }\r\n if (val > max) {\r\n this.option(\"value\", max);\r\n this._currentRatio = 1;\r\n return\r\n }\r\n var ratio = min === max ? 0 : (val - min) / (max - min);\r\n !this._needPreventAnimation && this._setRangeStyles({\r\n width: 100 * ratio + \"%\"\r\n });\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: max,\r\n valuenow: val\r\n });\r\n this._currentRatio = ratio\r\n },\r\n _rangeStylesConfig: function() {\r\n return {\r\n width: 100 * this._currentRatio + \"%\"\r\n }\r\n },\r\n _setRangeStyles: function(options) {\r\n fx.stop(this._$range);\r\n if (!options) {\r\n this._$range.css({\r\n width: 0\r\n });\r\n return\r\n }\r\n if (this._needPreventAnimation || !hasWindow()) {\r\n return\r\n }\r\n fx.animate(this._$range, {\r\n type: \"custom\",\r\n duration: 100,\r\n to: options\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderValue();\r\n this.callBase(args);\r\n break;\r\n case \"max\":\r\n case \"min\":\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$range);\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxTrackBar\", TrackBar);\r\nexport default TrackBar;\r\n","/**\r\n * DevExtreme (esm/ui/slider/slider_tooltip_position_controller.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n PopoverPositionController\r\n} from \"../popover/popover_position_controller\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nvar SLIDER_TOOLTIP_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit none\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit none\"\r\n }\r\n};\r\nvar SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 2,\r\n v: 1\r\n};\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nclass SliderTooltipPositionController extends PopoverPositionController {\r\n _normalizePosition(positionProp) {\r\n var $sliderHandle = this._props.target;\r\n var sliderClass = \".\".concat(SLIDER_CLASS);\r\n var $slider = null === $sliderHandle || void 0 === $sliderHandle ? void 0 : $sliderHandle.closest(sliderClass);\r\n var defaultPositionConfig = {\r\n of: $sliderHandle,\r\n boundaryOffset: SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET,\r\n boundary: null === $slider || void 0 === $slider ? void 0 : $slider.get(0)\r\n };\r\n var resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp));\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _renderContentInitialPosition() {\r\n super._renderContentInitialPosition();\r\n this._fitIntoSlider()\r\n }\r\n _fitIntoSlider() {\r\n var {\r\n collisionSide: collisionSide,\r\n oversize: oversize\r\n } = positionUtils.calculate(this._$content, this._position).h;\r\n var left = this._visualPosition.left;\r\n var isLeftSide = \"left\" === collisionSide;\r\n var offset = (isLeftSide ? 1 : -1) * oversize;\r\n move(this._$content, {\r\n left: left + offset\r\n });\r\n this._updateVisualPositionValue()\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, SLIDER_TOOLTIP_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n SliderTooltipPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_tooltip.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"../tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n SliderTooltipPositionController\r\n} from \"./slider_tooltip_position_controller\";\r\nimport numberLocalization from \"../../localization/number\";\r\nvar SLIDER_TOOLTIP_VISIBILITY_CLASS = \"dx-slider-tooltip-visible-on-hover\";\r\nvar SliderTooltip = Tooltip.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n visible: false,\r\n position: \"top\",\r\n hideOnOutsideClick: false,\r\n hideTopOverlayHandler: null,\r\n hideOnParentScroll: false,\r\n animation: null,\r\n arrowPosition: null,\r\n templatesRenderAsynchronously: false,\r\n _fixWrapperPosition: false,\r\n useResizeObserver: false,\r\n showMode: \"onHover\",\r\n format: value => value,\r\n value: 0\r\n })\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._attachToMarkup(this.option(\"visible\"));\r\n this._toggleShowModeClass()\r\n },\r\n _renderContent() {\r\n this.callBase();\r\n this._renderContentText()\r\n },\r\n _renderContentText() {\r\n var {\r\n value: value,\r\n format: format\r\n } = this.option();\r\n var formattedText = numberLocalization.format(null !== value && void 0 !== value ? value : 0, format);\r\n this.$content().text(formattedText);\r\n this._renderPosition()\r\n },\r\n _toggleShowModeClass() {\r\n var isHoverMode = \"onHover\" === this.option(\"showMode\");\r\n var $sliderHandle = this.option(\"target\");\r\n $sliderHandle.toggleClass(SLIDER_TOOLTIP_VISIBILITY_CLASS, isHoverMode)\r\n },\r\n _initPositionController() {\r\n this._positionController = new SliderTooltipPositionController(this._getPositionControllerConfig())\r\n },\r\n _attachToMarkup(enabled) {\r\n var $sliderHandle = this.option(\"target\");\r\n enabled ? this.$element().appendTo($sliderHandle) : this.$element().detach()\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"visible\":\r\n this._attachToMarkup(value);\r\n this.callBase(args);\r\n break;\r\n case \"showMode\":\r\n this._toggleShowModeClass();\r\n break;\r\n case \"format\":\r\n case \"value\":\r\n this._renderContentText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updatePosition() {\r\n this._renderPosition()\r\n }\r\n});\r\nexport default SliderTooltip;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider_handle.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport SliderTooltip from \"./ui.slider_tooltip\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SLIDER_HANDLE_CLASS = \"dx-slider-handle\";\r\nvar SliderHandle = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: false,\r\n value: 0,\r\n tooltip: {\r\n enabled: false,\r\n format: value => value,\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n }\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SLIDER_HANDLE_CLASS);\r\n this.setAria({\r\n role: \"slider\",\r\n valuenow: this.option(\"value\")\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderTooltip()\r\n },\r\n _renderTooltip: function() {\r\n var {\r\n tooltip: tooltip,\r\n value: value\r\n } = this.option();\r\n var {\r\n position: position,\r\n format: format,\r\n enabled: enabled,\r\n showMode: showMode\r\n } = tooltip;\r\n var $sliderTooltip = $(\"
\");\r\n this._sliderTooltip = this._createComponent($sliderTooltip, SliderTooltip, {\r\n target: this.$element(),\r\n container: $sliderTooltip,\r\n position: position,\r\n visible: enabled,\r\n showMode: showMode,\r\n format: format,\r\n value: value\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._sliderTooltip = null\r\n },\r\n _updateTooltipOptions(args) {\r\n var _this$_sliderTooltip;\r\n var tooltipOptions = Widget.getOptionsFromContainer(args);\r\n this._setWidgetOption(\"_sliderTooltip\", [tooltipOptions]);\r\n null === (_this$_sliderTooltip = this._sliderTooltip) || void 0 === _this$_sliderTooltip ? void 0 : _this$_sliderTooltip.option(\"visible\", tooltipOptions.enabled)\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n var _this$_sliderTooltip2;\r\n null === (_this$_sliderTooltip2 = this._sliderTooltip) || void 0 === _this$_sliderTooltip2 ? void 0 : _this$_sliderTooltip2.option(\"value\", value);\r\n this.setAria(\"valuenow\", value);\r\n break;\r\n case \"tooltip\":\r\n this._updateTooltipOptions(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n updateTooltipPosition: function() {\r\n var _this$_sliderTooltip3;\r\n null === (_this$_sliderTooltip3 = this._sliderTooltip) || void 0 === _this$_sliderTooltip3 ? void 0 : _this$_sliderTooltip3.updatePosition()\r\n },\r\n repaint: function() {\r\n var _this$_sliderTooltip4;\r\n null === (_this$_sliderTooltip4 = this._sliderTooltip) || void 0 === _this$_sliderTooltip4 ? void 0 : _this$_sliderTooltip4.repaint()\r\n }\r\n});\r\nexport default SliderHandle;\r\n","/**\r\n * DevExtreme (esm/ui/slider/ui.slider.js)\r\n * Version: 23.1.4\r\n * Build date: Fri Jul 14 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth\r\n} from \"../../core/utils/size\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n applyServerDecimalSeparator\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name as clickName\r\n} from \"../../events/click\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent,\r\n isTouchEvent,\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport TrackBar from \"../track_bar\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport SliderHandle from \"./ui.slider_handle\";\r\nimport {\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision\r\n} from \"../../core/utils/math\";\r\nvar SLIDER_CLASS = \"dx-slider\";\r\nvar SLIDER_WRAPPER_CLASS = \"dx-slider-wrapper\";\r\nvar SLIDER_HANDLE_SELECTOR = \".dx-slider-handle\";\r\nvar SLIDER_BAR_CLASS = \"dx-slider-bar\";\r\nvar SLIDER_RANGE_CLASS = \"dx-slider-range\";\r\nvar SLIDER_RANGE_VISIBLE_CLASS = \"dx-slider-range-visible\";\r\nvar SLIDER_LABEL_CLASS = \"dx-slider-label\";\r\nvar SLIDER_LABEL_POSITION_CLASS_PREFIX = \"dx-slider-label-position-\";\r\nvar SLIDER_TOOLTIP_POSITION_CLASS_PREFIX = \"dx-slider-tooltip-position-\";\r\nvar INVALID_MESSAGE_VISIBLE_CLASS = \"dx-invalid-message-visible\";\r\nvar SLIDER_VALIDATION_NAMESPACE = \"Validation\";\r\nvar Slider = TrackBar.inherit({\r\n _activeStateUnit: SLIDER_HANDLE_SELECTOR,\r\n _supportedKeys: function() {\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var roundedValue = (offset, isLeftDirection) => {\r\n offset = this._valueStep(offset);\r\n var step = this.option(\"step\");\r\n var value = this.option(\"value\");\r\n var currentPosition = value - this.option(\"min\");\r\n var remainder = getRemainderByDivision(currentPosition, step, this._getValueExponentLength());\r\n var result = isLeftDirection ? value - offset + (remainder ? step - remainder : 0) : value + offset - remainder;\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (result < min) {\r\n result = min\r\n } else if (result > max) {\r\n result = max\r\n }\r\n return this._roundToExponentLength(result)\r\n };\r\n var moveHandleRight = offset => {\r\n this.option(\"value\", roundedValue(offset, isRTL))\r\n };\r\n var moveHandleLeft = offset => {\r\n this.option(\"value\", roundedValue(offset, !isRTL))\r\n };\r\n return extend(this.callBase(), {\r\n leftArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\"))\r\n },\r\n rightArrow: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\"))\r\n },\r\n pageUp: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleRight(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n pageDown: function(e) {\r\n this._processKeyboardEvent(e);\r\n moveHandleLeft(this.option(\"step\") * this.option(\"keyStep\"))\r\n },\r\n home: function(e) {\r\n this._processKeyboardEvent(e);\r\n var min = this.option(\"min\");\r\n this.option(\"value\", min)\r\n },\r\n end: function(e) {\r\n this._processKeyboardEvent(e);\r\n var max = this.option(\"max\");\r\n this.option(\"value\", max)\r\n }\r\n })\r\n },\r\n _processKeyboardEvent: function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 50,\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n step: 1,\r\n showRange: true,\r\n tooltip: {\r\n enabled: false,\r\n format: function(value) {\r\n return value\r\n },\r\n position: \"top\",\r\n showMode: \"onHover\"\r\n },\r\n label: {\r\n visible: false,\r\n position: \"bottom\",\r\n format: function(value) {\r\n return value\r\n }\r\n },\r\n keyStep: 1,\r\n useInkRipple: false,\r\n validationMessageOffset: isMaterial() ? {\r\n h: 18,\r\n v: 0\r\n } : {\r\n h: 7,\r\n v: 4\r\n },\r\n focusStateEnabled: true,\r\n valueChangeMode: \"onHandleMove\"\r\n })\r\n },\r\n _toggleValidationMessage: function(visible) {\r\n if (!this.option(\"isValid\")) {\r\n this.$element().toggleClass(INVALID_MESSAGE_VISIBLE_CLASS, visible)\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n var themeName = currentTheme();\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SLIDER_CLASS);\r\n this._renderSubmitElement();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.callBase();\r\n this._renderLabels();\r\n this._renderStartHandler();\r\n this._renderAriaMinAndMax()\r\n },\r\n _attachFocusEvents: function() {\r\n this.callBase();\r\n var namespace = this.NAME + SLIDER_VALIDATION_NAMESPACE;\r\n var focusInEvent = addNamespace(\"focusin\", namespace);\r\n var focusOutEvent = addNamespace(\"focusout\", namespace);\r\n var $focusTarget = this._focusTarget();\r\n eventsEngine.on($focusTarget, focusInEvent, this._toggleValidationMessage.bind(this, true));\r\n eventsEngine.on($focusTarget, focusOutEvent, this._toggleValidationMessage.bind(this, false))\r\n },\r\n _detachFocusEvents: function() {\r\n this.callBase();\r\n var $focusTarget = this._focusTarget();\r\n this._toggleValidationMessage(false);\r\n eventsEngine.off($focusTarget, this.NAME + SLIDER_VALIDATION_NAMESPACE)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._repaintHandle()\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render({\r\n waveSizeCoefficient: .7,\r\n isCentered: true,\r\n wavesNumber: 2,\r\n useHoldAnimation: false\r\n })\r\n },\r\n _renderInkWave: function(element, dxEvent, doRender, waveIndex) {\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: element,\r\n event: dxEvent,\r\n wave: waveIndex\r\n };\r\n if (doRender) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.repaint()\r\n },\r\n _renderWrapper: function() {\r\n this.callBase();\r\n this._$wrapper.addClass(SLIDER_WRAPPER_CLASS);\r\n this._createComponent(this._$wrapper, Swipeable, {\r\n elastic: false,\r\n immediate: true,\r\n immediateTimeout: 0,\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._itemWidthFunc.bind(this)\r\n })\r\n },\r\n _renderContainer: function() {\r\n this.callBase();\r\n this._$bar.addClass(SLIDER_BAR_CLASS)\r\n },\r\n _renderRange: function() {\r\n this.callBase();\r\n this._$range.addClass(SLIDER_RANGE_CLASS);\r\n this._renderHandle();\r\n this._renderRangeVisibility()\r\n },\r\n _renderRangeVisibility: function() {\r\n this._$range.toggleClass(SLIDER_RANGE_VISIBLE_CLASS, Boolean(this.option(\"showRange\")))\r\n },\r\n _renderHandle: function() {\r\n this._$handle = this._renderHandleImpl(this.option(\"value\"), this._$handle)\r\n },\r\n _renderHandleImpl: function(value, $element) {\r\n var $handle = $element || $(\"
\").appendTo(this._$range);\r\n var tooltip = this.option(\"tooltip\");\r\n this.$element().toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"bottom\", tooltip.enabled && \"bottom\" === tooltip.position).toggleClass(SLIDER_TOOLTIP_POSITION_CLASS_PREFIX + \"top\", tooltip.enabled && \"top\" === tooltip.position);\r\n this._createComponent($handle, SliderHandle, {\r\n value: value,\r\n tooltip: tooltip\r\n });\r\n return $handle\r\n },\r\n _renderAriaMinAndMax: function() {\r\n this.setAria({\r\n valuemin: this.option(\"min\"),\r\n valuemax: this.option(\"max\")\r\n }, this._$handle)\r\n },\r\n _toggleActiveState: function($element, value) {\r\n this.callBase($element, value);\r\n this._renderInkWave($element, null, !!value, 1)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (this._disposed) {\r\n return\r\n }\r\n var $focusTarget = $($element || this._focusTarget());\r\n this._renderInkWave($focusTarget, null, isFocused, 0)\r\n },\r\n _renderLabels: function() {\r\n this.$element().removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"bottom\").removeClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + \"top\");\r\n if (this.option(\"label.visible\")) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var position = this.option(\"label.position\");\r\n var labelFormat = this.option(\"label.format\");\r\n if (!this._$minLabel) {\r\n this._$minLabel = $(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$minLabel.text(numberLocalization.format(min, labelFormat));\r\n if (!this._$maxLabel) {\r\n this._$maxLabel = $(\"
\").addClass(SLIDER_LABEL_CLASS).appendTo(this._$wrapper)\r\n }\r\n this._$maxLabel.text(numberLocalization.format(max, labelFormat));\r\n this.$element().addClass(SLIDER_LABEL_POSITION_CLASS_PREFIX + position)\r\n } else {\r\n if (this._$minLabel) {\r\n this._$minLabel.remove();\r\n delete this._$minLabel\r\n }\r\n if (this._$maxLabel) {\r\n this._$maxLabel.remove();\r\n delete this._$maxLabel\r\n }\r\n }\r\n },\r\n _renderStartHandler: function() {\r\n var pointerDownEventName = addNamespace(pointerEvents.down, this.NAME);\r\n var clickEventName = addNamespace(clickName, this.NAME);\r\n var startAction = this._createAction(this._startHandler.bind(this));\r\n var $element = this.$element();\r\n eventsEngine.off($element, pointerDownEventName);\r\n eventsEngine.on($element, pointerDownEventName, e => {\r\n if (isMouseEvent(e)) {\r\n startAction({\r\n event: e\r\n })\r\n }\r\n });\r\n eventsEngine.off($element, clickEventName);\r\n eventsEngine.on($element, clickEventName, e => {\r\n var $handle = this._activeHandle();\r\n if ($handle) {\r\n eventsEngine.trigger($handle, \"focusin\");\r\n eventsEngine.trigger($handle, \"focus\")\r\n }\r\n startAction({\r\n event: e\r\n });\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue());\r\n this._actualValue = void 0\r\n }\r\n })\r\n },\r\n _itemWidthFunc: function() {\r\n return this._itemWidthRatio\r\n },\r\n _swipeStartHandler: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (isTouchEvent(e.event)) {\r\n this._createAction(this._startHandler.bind(this))({\r\n event: e.event\r\n })\r\n }\r\n this._feedbackDeferred = new Deferred;\r\n lock(this._feedbackDeferred);\r\n this._toggleActiveState(this._activeHandle(), this.option(\"activeStateEnabled\"));\r\n this._startOffset = this._currentRatio;\r\n var startOffset = this._startOffset * this._swipePixelRatio();\r\n var endOffset = (1 - this._startOffset) * this._swipePixelRatio();\r\n e.event.maxLeftOffset = rtlEnabled ? endOffset : startOffset;\r\n e.event.maxRightOffset = rtlEnabled ? startOffset : endOffset;\r\n this._itemWidthRatio = getWidth(this.$element()) / this._swipePixelRatio();\r\n this._needPreventAnimation = true\r\n },\r\n _swipeEndHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._feedbackDeferred.resolve();\r\n this._toggleActiveState(this._activeHandle(), false);\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var ratio = this._startOffset + offsetDirection * e.event.targetOffset / this._swipePixelRatio();\r\n delete this._needPreventAnimation;\r\n this._saveValueChangeEvent(e.event);\r\n this._changeValueOnSwipe(ratio);\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n this.option(\"value\", this._getActualValue())\r\n }\r\n this._actualValue = void 0;\r\n delete this._startOffset;\r\n this._renderValue()\r\n },\r\n _activeHandle: function() {\r\n return this._$handle\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e.event);\r\n this._updateHandlePosition(e)\r\n },\r\n _updateHandlePosition: function(e) {\r\n var offsetDirection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n var newRatio = Math.min(this._startOffset + offsetDirection * e.event.offset / this._swipePixelRatio(), 1);\r\n setWidth(this._$range, 100 * newRatio + \"%\");\r\n SliderHandle.getInstance(this._activeHandle()).fitTooltipPosition;\r\n this._changeValueOnSwipe(newRatio)\r\n },\r\n _swipePixelRatio: function() {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n return (max - min) / step\r\n },\r\n _valueStep: function(step) {\r\n if (!step || isNaN(step)) {\r\n step = 1\r\n }\r\n return step\r\n },\r\n _getValueExponentLength: function() {\r\n var {\r\n step: step,\r\n min: min\r\n } = this.option();\r\n return Math.max(getExponentLength(step), getExponentLength(min))\r\n },\r\n _roundToExponentLength: function(value) {\r\n var valueExponentLength = this._getValueExponentLength();\r\n return roundFloatPart(value, valueExponentLength)\r\n },\r\n _changeValueOnSwipe: function(ratio) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n var step = this._valueStep(this.option(\"step\"));\r\n var newChange = ratio * (max - min);\r\n var newValue = min + newChange;\r\n if (step < 0) {\r\n return\r\n }\r\n if (newValue === max || newValue === min) {\r\n this._setValueOnSwipe(newValue)\r\n } else {\r\n var stepCount = Math.round((newValue - min) / step);\r\n newValue = this._roundToExponentLength(stepCount * step + min);\r\n this._setValueOnSwipe(Math.max(Math.min(newValue, max), min))\r\n }\r\n },\r\n _setValueOnSwipe: function(value) {\r\n this._actualValue = value;\r\n if (\"onHandleRelease\" === this.option(\"valueChangeMode\")) {\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n } else {\r\n this.option(\"value\", value);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n },\r\n _getActualValue: function() {\r\n var _this$_actualValue;\r\n return null !== (_this$_actualValue = this._actualValue) && void 0 !== _this$_actualValue ? _this$_actualValue : this.option(\"value\")\r\n },\r\n _isSingleValuePossible: function() {\r\n var {\r\n min: min,\r\n max: max\r\n } = this.option();\r\n return min === max\r\n },\r\n _startHandler: function(args) {\r\n if (this._isSingleValuePossible()) {\r\n return\r\n }\r\n var e = args.event;\r\n this._currentRatio = (eventData(e).x - this._$bar.offset().left) / getWidth(this._$bar);\r\n if (this.option(\"rtlEnabled\")) {\r\n this._currentRatio = 1 - this._currentRatio\r\n }\r\n this._saveValueChangeEvent(e);\r\n this._changeValueOnSwipe(this._currentRatio)\r\n },\r\n _renderValue: function() {\r\n this.callBase();\r\n var value = this._getActualValue();\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value));\r\n SliderHandle.getInstance(this._activeHandle()).option(\"value\", value)\r\n },\r\n _setRangeStyles: function(options) {\r\n options && this._$range.css(options)\r\n },\r\n _callHandlerMethod: function(name, args) {\r\n SliderHandle.getInstance(this._$handle)[name](args)\r\n },\r\n _repaintHandle: function() {\r\n this._callHandlerMethod(\"repaint\")\r\n },\r\n _fitTooltip: function() {\r\n this._callHandlerMethod(\"updateTooltipPosition\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"visible\":\r\n this.callBase(args);\r\n this._renderHandle();\r\n this._repaintHandle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderValue();\r\n this.callBase(args);\r\n this._renderLabels();\r\n this._renderAriaMinAndMax();\r\n this._fitTooltip();\r\n break;\r\n case \"step\":\r\n this._renderValue();\r\n break;\r\n case \"keyStep\":\r\n break;\r\n case \"showRange\":\r\n this._renderRangeVisibility();\r\n break;\r\n case \"tooltip\":\r\n this._renderHandle();\r\n break;\r\n case \"label\":\r\n this._renderLabels();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"valueChangeMode\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _refresh: function() {\r\n this._toggleRTLDirection(this.option(\"rtlEnabled\"));\r\n this._renderDimensions();\r\n this._renderValue();\r\n this._renderHandle();\r\n this._repaintHandle()\r\n },\r\n _clean: function() {\r\n delete this._inkRipple;\r\n delete this._actualValue;\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxSlider\", Slider);\r\nexport default Slider;\r\n","import React, {useEffect, useRef} from 'react'\nimport ko from 'knockout'\nimport 'devexpress-reporting/dx-webdocumentviewer'\nimport '../../node_modules/devextreme/dist/css/dx.light.css'\nimport '../../node_modules/devexpress-reporting/dist/css/dx-webdocumentviewer.css'\nimport '../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css'\nimport '../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.light.css'\nimport {DxReportViewer} from 'devexpress-reporting/dx-webdocumentviewer'\nimport {BASE_URL} from '../url.ts'\n\nconst ReportViewer = (props) => {\n // const {tenant} = useAuth()\n const reportUrl = ko.observable(`${props.reportName}`)\n const viewerRef = useRef()\n const requestOptions = {\n host: `${BASE_URL}/productionreport/`,\n invokeAction: 'DXXRDV',\n }\n\n useEffect(() => {\n const viewer = new DxReportViewer(viewerRef.current, {\n reportUrl,\n requestOptions,\n })\n viewer.render()\n return () => viewer.dispose()\n })\n return
\n}\nfunction CommonReportComponent(props) {\n return (\n
\n \n
\n )\n}\n\nexport default CommonReportComponent\n","import React, {lazy, FC, Suspense} from 'react'\r\nimport {ErrorBoundary} from '@ant-design/pro-components'\r\nimport {Route, Routes, Navigate, Outlet} from 'react-router-dom'\r\nimport {MasterLayout} from '../../_metronic/layout/MasterLayout'\r\nimport TopBarProgress from 'react-topbar-progress-indicator'\r\nimport {PageTitle} from '../../_metronic/layout/core'\r\nimport {Soon} from '../modules/errors/components/Error404'\r\nimport MainLandingPage from '../../pages/MainLandingPage'\r\nimport FinanceReportsPage from '../../pages/reports/allReportsPages/FinanceReportsPage'\r\nimport ProductionReportsPage from '../../pages/reports/allReportsPages/ProductionReportsPage'\r\nimport HRReportsPage from '../../pages/reports/allReportsPages/HRReportsPage'\r\nimport EquipServiceReportsPage from '../../pages/reports/allReportsPages/EquipServiceReportsPage'\r\nimport SupplyChainReportsPage from '../../pages/reports/allReportsPages/SupplyChainReportsPage'\r\n\r\nimport CustomBreadCrumb from '../../constants/CustomBreadCrumb'\r\nimport CommonReportComponent from '../../constants/CommonReportComponent'\r\n// const FinancePage = lazy(() => import('../pages/finance/FinancePage'))\r\n// const ReportComponent = lazy(() => import('../reports/ReportComponent'))\r\n// const HRDashboardWrapper = lazy(() => import('../pages/hr-payroll/HumanResourceDashBoard'))\r\n// const SupplyChain = lazy(() => import('../pages/supplyChain/SupplyChain'))\r\n// const ServiceManager = lazy(() => import('../pages/dashboard/DashboardWrapper'))\r\n// const ProductionDashboardWrapper = lazy(\r\n// () => import('../pages/production/dashboard/ServiceManagerDashboardWrapper')\r\n// )\r\n\r\nconst Devexpres = lazy(() => import('../pages/dashboard/Devexpres'))\r\nconst PrivateRoutes = () => {\r\n return (\r\n \r\n }>\r\n {/* Redirect to Dashboard after success login/registration */}\r\n } />\r\n } />\r\n {/*} />*/}\r\n {/*} />*/}\r\n\r\n \r\n }>\r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n {/*All DashBoard Routes*/}\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n {/*All Reports routes*/}\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n \r\n }>\r\n \r\n {/* */}\r\n \r\n \r\n \r\n }\r\n />\r\n\r\n\r\n }>\r\n {'Service Manager Dashboard'}\r\n {/**/}\r\n \r\n \r\n }\r\n />\r\n\r\n }>\r\n {'Service Manager Dashboard'}\r\n {/**/}\r\n \r\n \r\n }\r\n />\r\n\r\n {/*}>*/}\r\n {/* {'Service Manager Dashboard'}*/}\r\n {/* /!**!/*/}\r\n {/* */}\r\n {/* */}\r\n {/* }*/}\r\n {/*/>*/}\r\n {/* Page Not Found */}\r\n\r\n } />\r\n \r\n \r\n )\r\n}\r\n\r\nexport {PrivateRoutes}\r\n","import {FC} from 'react'\nimport {Link} from 'react-router-dom'\nimport {toAbsoluteUrl} from '../../../../_metronic/helpers'\n\nconst Error500: FC = () => {\n return (\n
\n {/*begin::Authentication - Error 500 */}\n
\n {/*begin::Content*/}\n
\n {/*begin::Logo*/}\n \n \n \n {/*end::Logo*/}\n {/*begin::Wrapper*/}\n
\n {/*begin::Logo*/}\n

System Error

\n {/*end::Logo*/}\n {/*begin::Message*/}\n
\n Something went wrong!\n
\n Please try again later.\n
\n {/*end::Message*/}\n {/*begin::Action*/}\n
\n \n Go to homepage\n \n
\n {/*end::Action*/}\n
\n {/*end::Wrapper*/}\n {/*begin::Illustration*/}\n
\n {/*end::Illustration*/}\n
\n {/*end::Content*/}\n {/*begin::Footer*/}\n
\n {/*begin::Links*/}\n \n {/*end::Links*/}\n
\n {/*end::Footer*/}\n
\n {/*end::Authentication - Error 500*/}\n
\n )\n}\n\nexport {Error500}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport {Route, Routes, Outlet} from 'react-router-dom'\nimport {Error500} from './components/Error500'\nimport {Error404} from './components/Error404'\n\nconst ErrorsLayout = () => {\n return \n}\n\nconst ErrorsPage = () => (\n \n }>\n } />\n } />\n } />\n \n \n)\n\nexport {ErrorsPage}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n}\n// TODO: We should provide initial value here\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer, IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {}, _b = _a.intlPropName, intlPropName = _b === void 0 ? 'intl' : _b, _c = _a.forwardRef, forwardRef = _c === void 0 ? false : _c, _d = _a.enforceContext, enforceContext = _d === void 0 ? true : _d;\n var WithIntl = function (props) { return (React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return (React.createElement(WrappedComponent, __assign({}, props, intlProp, { ref: forwardRef ? props.forwardedRef : null })));\n })); };\n WithIntl.displayName = \"injectIntl(\".concat(getDisplayName(WrappedComponent), \")\");\n WithIntl.WrappedComponent = WrappedComponent;\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) { return (React.createElement(WithIntl, __assign({}, props, { forwardedRef: ref }))); }), WrappedComponent);\n }\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement, } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () { return ({\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n }); };\n this.getAst = function () { return _this.ast; };\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag,\n });\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = this;\n var err = exception\n ? exception instanceof Error\n ? exception\n : new Error(String(exception))\n : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \".concat(code, \"] \").concat(message, \" \\n\").concat(err ? \"\\n\".concat(err.message, \"\\n\").concat(err.stack) : '')) || this;\n _this.code = code;\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar IntlFormatError = /** @class */ (function (_super) {\n __extends(IntlFormatError, _super);\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, \"\".concat(message, \" \\nLocale: \").concat(locale, \"\\n\"), exception) || this;\n }\n return IntlFormatError;\n}(IntlError));\nexport { IntlFormatError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, \"\".concat(message, \" \\nMessageID: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.id, \"\\nDefault Message: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage, \"\\nDescription: \").concat(descriptor === null || descriptor === void 0 ? void 0 : descriptor.description, \" \\n\"), locale, exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlFormatError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\".concat(descriptor.id, \"\\\" for locale \\\"\").concat(locale, \"\\\", using \").concat(descriptor.defaultMessage ? 'default message' : 'id', \" as fallback.\")) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\n","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, allowlist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return allowlist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nvar defaultWarnHandler = function (warning) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler,\n onWarn: defaultWarnHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \".concat(type, \" format named: \").concat(name)));\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat, } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({ timeZone: timeZone }, opts[k]);\n return all;\n }, {});\n}\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, (opts1[k] || {})), (opts2[k] || {}));\n return all;\n }, {});\n}\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), { date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)), time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone)) });\n}\nexport function formatMessage(_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale, formats = _a.formats, messages = _a.messages, defaultLocale = _a.defaultLocale, defaultFormats = _a.defaultFormats, fallbackOnEmptyString = _a.fallbackOnEmptyString, onError = _a.onError, timeZone = _a.timeZone, defaultRichTextElements = _a.defaultRichTextElements;\n if (messageDescriptor === void 0) { messageDescriptor = { id: '' }; }\n var msgId = messageDescriptor.id, defaultMessage = messageDescriptor.defaultMessage;\n // `id` is a required field of a Message Descriptor.\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = \n // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages &&\n Object.prototype.hasOwnProperty.call(messages, id) &&\n messages[id];\n // IMPORTANT: Hot path if `message` is AST with a single literal node\n if (Array.isArray(message) &&\n message.length === 1 &&\n message[0].type === TYPE.literal) {\n return message[0].value;\n }\n // IMPORTANT: Hot path straight lookup for performance\n if (!values &&\n message &&\n typeof message === 'string' &&\n !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n values = __assign(__assign({}, defaultRichTextElements), (values || {}));\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n if (!defaultMessage ||\n (locale && locale.toLowerCase() !== defaultLocale.toLowerCase())) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\".concat(id, \"\\\", rendering default message verbatim\"), locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n return id;\n }\n // We have the translated message\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({ formatters: state }, (opts || {})));\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\".concat(id, \"\\\", using \").concat(defaultMessage ? 'default message' : 'id', \" as fallback.\"), locale, messageDescriptor, e));\n }\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n }\n catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\".concat(id, \"\\\", rendering message verbatim\"), locale, messageDescriptor, e));\n }\n }\n if (typeof message === 'string') {\n return message;\n }\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n return id;\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar NUMBER_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n // ES2020 NumberFormat\n 'compactDisplay',\n 'currencyDisplay',\n 'currencySign',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'numberingSystem',\n];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = ((format &&\n getNamedFormat(formats, 'number', format, onError)) ||\n {});\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) { options = {}; }\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n return [];\n}\n","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = (!!format && getNamedFormat(formats, 'relative', format, onError)) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) { options = {}; }\n if (!unit) {\n unit = 'second';\n }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n }\n catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n return String(value);\n}\n","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'formatMatcher',\n 'timeZone',\n 'hour12',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'hourCycle',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n // 'dayPeriod',\n 'numberingSystem',\n];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale, formats = _a.formats, onError = _a.onError, timeZone = _a.timeZone;\n if (options === void 0) { options = {}; }\n var format = options.format;\n var defaults = __assign(__assign({}, (timeZone && { timeZone: timeZone })), (format && getNamedFormat(formats, type, format, onError)));\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults);\n if (type === 'time' &&\n !filteredOptions.hour &&\n !filteredOptions.minute &&\n !filteredOptions.second &&\n !filteredOptions.timeStyle &&\n !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), { hour: 'numeric', minute: 'numeric' });\n }\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var from = _a[0], to = _a[1], _b = _a[2], options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone, locale = config.locale, onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? { timeZone: timeZone } : {});\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date time range.', e));\n }\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n var value = _a[0], _b = _a[1], options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n }\n catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n return [];\n}\n","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n }\n catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n return 'other';\n}\n","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlError, IntlErrorCode } from './error';\nvar LIST_FORMAT_OPTIONS = [\n 'localeMatcher',\n 'type',\n 'style',\n];\nvar now = Date.now();\nfunction generateToken(i) {\n return \"\".concat(now, \"_\").concat(i, \"_\").concat(now);\n}\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) { options = {}; }\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n if (typeof val !== 'string') {\n all.push(val);\n }\n else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n }\n else {\n all.push(val);\n }\n return all;\n }, []);\n return results.length === 1 ? results[0] : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale, onError = _a.onError;\n if (options === void 0) { options = {}; }\n var ListFormat = Intl.ListFormat;\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n return String(v);\n });\n return getListFormat(locale, filteredOptions)\n .formatToParts(serializedValues)\n .map(function (part) {\n return part.type === 'literal'\n ? part\n : __assign(__assign({}, part), { value: richValues_1[part.value] || part.value });\n });\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting list.', e));\n }\n // @ts-ignore\n return values;\n}\n","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlErrorCode, IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = [\n 'localeMatcher',\n 'style',\n 'type',\n 'fallback',\n];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale, onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n }\n catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting display name.', e));\n }\n}\n","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange, } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\nfunction verifyConfigMessages(config) {\n if (config.onWarn &&\n config.defaultRichTextElements &&\n messagesContainString(config.messages || {})) {\n config.onWarn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n var locale = resolvedConfig.locale, defaultLocale = resolvedConfig.defaultLocale, onError = resolvedConfig.onError;\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\".concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\")));\n }\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each contains a `defaultMessage` prop.\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n }\n else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.NumberFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length &&\n onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\".concat(locale, \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\").concat(defaultLocale, \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\")));\n }\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), { formatters: formatters, formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat), formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat), formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat), formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat), formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules), formatMessage: formatMessage.bind(null, resolvedConfig, formatters), $t: formatMessage.bind(null, resolvedConfig, formatters), formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat), formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat), formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames) });\n}\n","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, assignUniqueKeysToParts, shallowEqual, } from '../utils';\nimport { formatMessage as coreFormatMessage, createIntl as coreCreateIntl, createIntlCache, } from '@formatjs/intl';\nimport { isFormatXMLElementFn, } from 'intl-messageformat';\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n onWarn: config.onWarn,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements,\n };\n}\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v)\n ? assignUniqueKeysToParts(v)\n : v;\n return acc;\n }, {});\n}\nvar formatMessage = function (config, formatters, descriptor, rawValues) {\n var rest = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config,\n formatters,\n descriptor,\n values], rest, false));\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\nexport var createIntl = function (_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements, config = __rest(_a, [\"defaultRichTextElements\"]);\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), { defaultRichTextElements: defaultRichTextElements }), cache);\n return __assign(__assign({}, coreIntl), { formatMessage: formatMessage.bind(null, {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n fallbackOnEmptyString: coreIntl.fallbackOnEmptyString,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements,\n }, coreIntl.formatters) });\n};\nvar IntlProvider = /** @class */ (function (_super) {\n __extends(IntlProvider, _super);\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props),\n };\n return _this;\n }\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig, cache = _a.cache;\n var config = processIntlConfig(props);\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config,\n };\n }\n return null;\n };\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, { value: this.state.intl }, this.props.children);\n };\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent));\nexport default IntlProvider;\n","import {FC} from 'react'\nimport {useLang} from './Metronici18n'\nimport {IntlProvider} from 'react-intl'\nimport '@formatjs/intl-relativetimeformat/polyfill'\nimport '@formatjs/intl-relativetimeformat/locale-data/en'\nimport '@formatjs/intl-relativetimeformat/locale-data/de'\nimport '@formatjs/intl-relativetimeformat/locale-data/es'\nimport '@formatjs/intl-relativetimeformat/locale-data/fr'\nimport '@formatjs/intl-relativetimeformat/locale-data/ja'\nimport '@formatjs/intl-relativetimeformat/locale-data/zh'\n\nimport deMessages from './messages/de.json'\nimport enMessages from './messages/en.json'\nimport esMessages from './messages/es.json'\nimport frMessages from './messages/fr.json'\nimport jaMessages from './messages/ja.json'\nimport zhMessages from './messages/zh.json'\nimport { WithChildren } from '../helpers'\n\nconst allMessages = {\n de: deMessages,\n en: enMessages,\n es: esMessages,\n fr: frMessages,\n ja: jaMessages,\n zh: zhMessages,\n}\n\nconst I18nProvider: FC = ({children}) => {\n const locale = useLang()\n const messages = allMessages[locale]\n\n return (\n \n {children}\n \n )\n}\n\nexport {I18nProvider}\n","import {EventHandlerUtil} from '../_utils'\n\ntype Mode = 'light' | 'dark' | 'system'\n\nclass ThemeMode {\n menu: HTMLElement | null = null\n element: HTMLElement | null = null\n\n private getParamName = (postfix: string): string => {\n const ktName = document.body.hasAttribute('data-kt-name')\n const name = ktName ? ktName + '_' : ''\n return 'kt_' + name + 'theme_mode_' + postfix\n }\n\n public getMode = (): Mode => {\n const modeParam: string = this.getParamName('value')\n const menuMode: Mode | '' = this.getMenuMode()\n const defaultMode = 'light'\n if (!localStorage) {\n return defaultMode\n }\n\n const ls = localStorage.getItem(modeParam)\n if (ls) {\n return ls as Mode\n }\n\n const dataTheme = this.element?.getAttribute('data-theme')\n if (dataTheme) {\n return dataTheme as Mode\n }\n\n if (!menuMode) {\n return defaultMode\n }\n\n if (menuMode === 'system') {\n return this.getSystemMode()\n }\n\n return menuMode\n }\n\n public setMode = (mode: Mode, menuMode: Mode | ''): void => {\n // Check input values\n if (mode !== 'light' && mode !== 'dark') {\n return\n }\n\n // Get param names\n const modeParam: string = this.getParamName('value')\n const menuModeParam: string = this.getParamName('menu')\n\n // Reset mode if system mode was changed\n if (menuMode === 'system') {\n if (this.getSystemMode() !== mode) {\n mode = this.getSystemMode()\n }\n }\n\n // Check menu mode\n if (!menuMode) {\n menuMode = mode\n }\n\n // Read active menu mode value\n const activeMenuItem: HTMLElement | null =\n this.menu?.querySelector('[data-kt-element=\"mode\"][data-kt-value=\"' + menuMode + '\"]') || null\n\n // Enable switching state\n\t\tthis.element?.setAttribute(\"data-kt-theme-mode-switching\", \"true\");\n\n // Set mode to the target element\n this.element?.setAttribute('data-theme', mode);\n\n // Disable switching state\n const self = this;\n\t\tsetTimeout(function() {\n\t\t\tself.element?.removeAttribute(\"data-kt-theme-mode-switching\");\n\t\t}, 300);\n\n // Store mode value in storage\n if (localStorage) {\n localStorage.setItem(modeParam, mode)\n }\n\n // Set active menu item\n if (activeMenuItem && localStorage) {\n localStorage.setItem(menuModeParam, menuMode)\n this.setActiveMenuItem(activeMenuItem)\n }\n\n // Flip images\n this.flipImages()\n }\n\n public getMenuMode = (): Mode | '' => {\n const menuModeParam = this.getParamName('menu')\n const menuItem = this.menu?.querySelector('.active[data-kt-element=\"mode\"]')\n const dataKTValue = menuItem?.getAttribute('data-kt-value')\n if (dataKTValue) {\n return dataKTValue as Mode\n }\n\n if (!menuModeParam) {\n return ''\n }\n\n const ls = localStorage ? localStorage.getItem(menuModeParam) : null\n return (ls as Mode) || ''\n }\n\n public getSystemMode = (): Mode => {\n return window.matchMedia('(prefers-color-scheme: dark)') ? 'dark' : 'light'\n }\n\n private initMode = (): void => {\n this.setMode(this.getMode(), this.getMenuMode())\n if (this.element) {\n EventHandlerUtil.trigger(this.element, 'kt.thememode.init')\n }\n }\n\n private getActiveMenuItem = (): HTMLElement | null => {\n return (\n this.menu?.querySelector(\n '[data-kt-element=\"mode\"][data-kt-value=\"' + this.getMenuMode() + '\"]'\n ) || null\n )\n }\n\n private setActiveMenuItem = (item: HTMLElement): void => {\n const menuModeParam = this.getParamName('menu')\n const menuMode = item.getAttribute('data-kt-value')\n const activeItem = this.menu?.querySelector('.active[data-kt-element=\"mode\"]')\n if (activeItem) {\n activeItem.classList.remove('active')\n }\n\n item.classList.add('active')\n if (localStorage && menuMode && menuModeParam) {\n localStorage.setItem(menuModeParam, menuMode)\n }\n }\n\n private handleMenu = (): void => {\n this.menu\n ?.querySelectorAll('[data-kt-element=\"mode\"]')\n ?.forEach((item: HTMLElement) => {\n item.addEventListener('click', (e) => {\n e.preventDefault()\n\n const menuMode: string | null = item.getAttribute('data-kt-value')\n const mode = menuMode === 'system' ? this.getSystemMode() : menuMode\n\n if (mode) {\n this.setMode(mode as Mode, menuMode as Mode | '')\n }\n })\n })\n }\n\n public flipImages = () => {\n document.querySelectorAll('[data-kt-img-dark]')?.forEach((item: HTMLElement) => {\n if (item.tagName === 'IMG') {\n if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) {\n item.setAttribute('data-kt-img-light', item.getAttribute('src') || '')\n item.setAttribute('src', item.getAttribute('data-kt-img-dark') || '')\n } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) {\n item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '')\n item.setAttribute('src', item.getAttribute('data-kt-img-light') || '')\n }\n } else {\n if (this.getMode() === 'dark' && item.hasAttribute('data-kt-img-dark')) {\n item.setAttribute('data-kt-img-light', item.getAttribute('src') || '')\n item.style.backgroundImage = \"url('\" + item.getAttribute('data-kt-img-dark') + \"')\"\n } else if (this.getMode() === 'light' && item.hasAttribute('data-kt-img-light')) {\n item.setAttribute('data-kt-img-dark', item.getAttribute('src') || '')\n item.style.backgroundImage = \"url('\" + item.getAttribute('data-kt-img-light') + \"')\"\n }\n }\n })\n }\n\n public on = (name: string, hander: Function) => {\n if (this.element) {\n return EventHandlerUtil.on(this.element, name, hander)\n }\n }\n\n public off = (name: string, handlerId: string) => {\n if (this.element) {\n return EventHandlerUtil.off(this.element, name, handlerId)\n }\n }\n\n public init = () => {\n this.menu = document.querySelector('[data-kt-element=\"theme-mode-menu\"]')\n this.element = document.documentElement\n\n this.initMode()\n\n if (this.menu) {\n this.handleMenu()\n }\n }\n}\n\nconst ThemeModeComponent = new ThemeMode()\n// Initialize app on document ready => ThemeModeComponent.init()\nexport {ThemeModeComponent}\n","import {useEffect, useRef} from 'react'\nimport {\n MenuComponent,\n DrawerComponent,\n ScrollComponent,\n ScrollTopComponent,\n StickyComponent,\n ToggleComponent,\n SwapperComponent,\n} from '../assets/ts/components'\nimport { ThemeModeComponent } from '../assets/ts/layout'\n\nimport {useLayout} from './core'\n\nexport function MasterInit() {\n const {config} = useLayout()\n const isFirstRun = useRef(true)\n const pluginsInitialization = () => {\n isFirstRun.current = false\n ThemeModeComponent.init()\n setTimeout(() => {\n ToggleComponent.bootstrap()\n ScrollTopComponent.bootstrap()\n DrawerComponent.bootstrap()\n StickyComponent.bootstrap()\n MenuComponent.bootstrap()\n ScrollComponent.bootstrap()\n SwapperComponent.bootstrap()\n }, 500)\n }\n\n useEffect(() => {\n if (isFirstRun.current) {\n isFirstRun.current = false\n pluginsInitialization()\n }\n }, [config])\n\n return <>\n}\n","import React from 'react'\n\nconst ToolBarContext = React.createContext({})\nexport default ToolBarContext\n","import {Suspense, useState} from 'react'\nimport {Outlet} from 'react-router-dom'\nimport {I18nProvider} from '../_metronic/i18n/i18nProvider'\nimport {LayoutProvider, LayoutSplashScreen} from '../_metronic/layout/core'\nimport {MasterInit} from '../_metronic/layout/MasterInit'\nimport {AuthInit} from './modules/auth'\nimport ToolBarContext from '../_metronic/layout/components/toolbar/ToolBarContext'\n\nconst App = () => {\n const [value, setValue] = useState('home')\n return (\n }>\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport {App}\n","/**\n * High level router.\n *\n * Note: It's recommended to compose related routes in internal router\n * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).\n */\n\nimport {FC} from 'react'\nimport {Routes, Route, BrowserRouter, Navigate} from 'react-router-dom'\nimport {PrivateRoutes} from './PrivateRoutes'\nimport {ErrorsPage} from '../modules/errors/ErrorsPage'\nimport {Logout, AuthPage, useAuth} from '../modules/auth'\nimport {App} from '../App'\n\n/**\n * Base URL of the website.\n *\n * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder\n */\nconst {PUBLIC_URL} = process.env\n\nconst AppRoutes: FC = () => {\n const {currentUser} = useAuth()\n return (\n \n \n }>\n } />\n } />\n {currentUser ? (\n <>\n } />\n } />\n \n ) : (\n <>\n } />\n } />\n \n )}\n \n \n \n )\n}\n\nexport {AppRoutes}\n","import {createRoot} from 'react-dom/client'\n// Axios\nimport axios from 'axios'\nimport {Chart, registerables} from 'chart.js'\nimport {QueryClient, QueryClientProvider} from 'react-query'\nimport {ReactQueryDevtools} from 'react-query/devtools'\n// Apps\nimport {MetronicI18nProvider} from './_metronic/i18n/Metronici18n'\nimport {registerLicense} from '@syncfusion/ej2-base'\nimport * as serviceWorker from './serviceWorker'\n/**\n * TIP: Replace this style import with rtl styles to enable rtl mode\n *\n * import './_metronic/assets/css/style.rtl.css'\n **/\nimport './_metronic/assets/sass/style.scss'\nimport './_metronic/assets/sass/plugins.scss'\nimport './_metronic/assets/sass/style.react.scss'\nimport {AppRoutes} from './app/routing/AppRoutes'\nimport {AuthProvider, setupAxios} from './app/modules/auth'\n\n/**\n * Creates `axios-mock-adapter` instance for provided `axios` instance, add\n * basic Metronic mocks and returns it.\n *\n * @see https://github.com/ctimmerm/axios-mock-adapter\n */\n/**\n * Inject Metronic interceptors for axios.\n *\n * @see https://github.com/axios/axios#interceptors\n */\nsetupAxios(axios)\nChart.register(...registerables)\n// Registering Syncfusion license key\nregisterLicense(\n 'Mgo+DSMBaFt/QHRqVVhkVFpFdEBBXHxAd1p/VWJYdVt5flBPcDwsT3RfQF5jSn5Rd0ZnXn9Zc3VRRg==;Mgo+DSMBPh8sVXJ0S0J+XE9AflRDX3xKf0x/TGpQb19xflBPallYVBYiSV9jS31TdUVhWHxad3RSRWNZUQ==;ORg4AjUWIQA/Gnt2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkZjW35ddHNVQWNZU0Q=;MTI0MjYyNEAzMjMwMmUzNDJlMzBVSHJ6ak5lNGs3cDgwWjFGeEZQejFnN3VNeVpEOHZmQTg5S2FrN3VLaVdBPQ==;MTI0MjYyNUAzMjMwMmUzNDJlMzBERWhkYWw1RUQ5RUtOWFQ3VnVPR1ZPZysrQmFWbTV0R1RvYkJUL3pqeWJ3PQ==;NRAiBiAaIQQuGjN/V0Z+WE9EaFtKVmJLYVB3WmpQdldgdVRMZVVbQX9PIiBoS35RdUVgWX1fc3BSRmdYUkB2;MTI0MjYyN0AzMjMwMmUzNDJlMzBQSlFjQ1VROUtZZElCVlRncGFTR0pPZDFvRWJIWDR4Q2FabTlxM0FGaE84PQ==;MTI0MjYyOEAzMjMwMmUzNDJlMzBOcXF1MG9IRUIxbW5RSHVtM2x5QmVneDFWaWZiS1hLOHdXZHBqRVcvaHdrPQ==;Mgo+DSMBMAY9C3t2VVhkQlFacldJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxQdkZjW35ddHNVQWVfUEQ=;MTI0MjYzMEAzMjMwMmUzNDJlMzBGc2NpTUFEQ1pPVmcrSDgyVVZ0M3Y4MzlzUkNsQnUyMnNVS1hjcjJYRVo0PQ==;MTI0MjYzMUAzMjMwMmUzNDJlMzBWbDdFQWlET0J4bTdlY1hEeDVGTWhtQm5zWkFySGFJb0RvTXl6Mlp4VlMwPQ==;MTI0MjYzMkAzMjMwMmUzNDJlMzBQSlFjQ1VROUtZZElCVlRncGFTR0pPZDFvRWJIWDR4Q2FabTlxM0FGaE84PQ=='\n)\n\nconst queryClient = new QueryClient()\nconst container = document.getElementById('root')\nif (container) {\n createRoot(container).render(\n \n \n \n \n \n \n \n \n )\n}\n\nserviceWorker.register()\n"],"names":["BASE_URL","ENP_USERS","AccessibilityControlElementBase","element","_eventListeners","this","forEach","item","removeEventListener","eventType","listener","length","handler","e","call","addEventListener","addDisposeCallback","push","index","setAttribute","focus","Disposable","ControlElementWithParentHighlight","_parentElement","_borderCssClassName","toolbarItemHandleFocus","classList","add","toolbarItemHandleBlur","remove","accessibilityFontSizeZoomFactor","createGlobalModuleVariableFunc","calculateWithZoomFactor","value","AccessibilityKeyboardHelperBase","childrenInitialized","accessibilityCompliantEnabled","focusFirstFocusableDescendant","controlElements","setTabIndexes","button","setTabIndex","liveRegion","liveRegionId","_liveRegion","document","getElementById","changeText","text","timeout","setTimeout","textContent","shortcutMap","Esc","handleEscKey","Tab","shiftKey","handleShiftTabKey","handleTabKey","Enter","handleEnterKey","Space","handleSpaceKey","End","handleEndKey","Home","handleHomeKey","Up","handleUpArrowKey","Down","handleDownArrowKey","Left","handleLeftArrowKey","Right","handleRightArrowKey","childrenShortcutMap","itemHandleShiftTabKey","itemHandleTabKey","itemHandleEnterKey","itemHandleSpaceKey","itemHandleEndKey","itemHandleHomeKey","itemHandleUpArrowKey","itemHandleDownArrowKey","itemHandleLeftArrowKey","itemHandleRightArrowKey","itemHandleEscKey","disposeArray","predicate","_disposeItems","_elementContainer","htmlElements","Array","prototype","slice","querySelectorAll","controlElementClassName","filter","newItem","createControlElement","addListener","clickHandler","htmlElement","map","indexOf","roundTrip","elCount","setFocus","elementContainer","handlersManager","KeyDownHandlersManager","initialize","bindHandler","target","findFirstItemMatchesCondition","Object","keys","key","processChildrenShortcut","getIndexByElement","processShortcut","stopPropagation","preventDefault","_prevActiveElement","changeFocus","currentIndex","prevActiveElement","activeElement","startIndex","focusable","KeyboardHelperBase","KeyboardHelperWithArrowButtonBase","arguments","resetTabIndexes","nextIndex","ListKeyboardHelper","getContainer","setFocusToPrevious","setFocusToNext","RightPanelKeyboardHelper","_tabPanel","el","_disposables","ko","tabs","tab","visible","extend","rateLimit","method","AccordionKeyboardHelper","_triggersParentMap","from","elt","_filterPredicate","_getElementsCount","collapsed","alwaysShow","_defferedInit","reduce","acc","trigger","_a","parentTriggerId","closest","getAttribute","id","curEltId","_updateTriggersTree","_collapseItem","ToolbarKeyboardHelper","_buttonModels","buttonModels","ToolbarItemElement","bind","actionExecute","_toolbarElement","_toolbarItemModel","_selectBox","dxSelectBox","children","_menu","dxMenu","_complexItem","getLocalization","disabled","clickAction","TreeListKeyboardHelper","offset","parentItems","parent","items","indexOfParent","getChildCount","_offset","hasItems","i","model","toggleCollapsed","_getItemModel","toggleSelected","_toggleCollapsed","_setFocusToParentNode","_toggleSelected","initGlobalize","settings","globalize","Globalize","cldrSupplemental","load","cldrData","currentCulture","locale","localization","ObjectStructureTreeListController","propertyNames","listPropertyNames","selectedItem","itemsFilter","path","realPropertyName","name","split","$","isList","getActions","data","select","isSelected","showIconsForChildItems","ObjectStructureProviderBase","selectedPath","selectedMember","instance","className","results","exec","constructor","toString","currentTarget","propertyName","propertyValue","result","targetInfo","getInfo","propertyInfo","unwrapPropertyValue","displayName","localizationId","specifics","innerActions","pathComponents","splice","member","getMemberByPath","createArrayItem","createItem","unwrapArrayValue","getClassName","ObjectExplorerProvider","rootITems","getPathByMember","getItems","pathRequest","fullPath","resolve","getObjectPropertiesForPath","dragData","noDragable","promise","read","peek","substr","write","newVal","root","rootItem","x","join","ObjectStructureProvider","subscribe","papperKindMapper","A2","width","height","unit","A3","A3Extra","A3ExtraTransverse","A3Rotated","A3Transverse","A4","A4Extra","A4Plus","A4Rotated","A4Small","A4Transverse","A5","A5Extra","A5Rotated","A5Transverse","A6","A6Rotated","APlus","B4","B4Envelope","B4JisRotated","B5","B5Envelope","B5Extra","B5JisRotated","B5Transverse","B6Envelope","B6Jis","B6JisRotated","BPlus","C3Envelope","C4Envelope","C5Envelope","C65Envelope","C6Envelope","CSheet","DLEnvelope","DSheet","ESheet","Executive","Folio","GermanLegalFanfold","GermanStandardFanfold","InviteEnvelope","IsoB4","ItalyEnvelope","JapaneseDoublePostcard","JapaneseDoublePostcardRotated","JapanesePostcard","Ledger","Legal","LegalExtra","Letter","LetterExtra","LetterExtraTransverse","LetterPlus","LetterRotated","LetterSmall","LetterTransverse","MonarchEnvelope","Note","Number10Envelope","Number11Envelope","Number12Envelope","Number14Envelope","Number9Envelope","PersonalEnvelope","Prc16K","Prc16KRotated","Prc32K","Prc32KBig","Prc32KBigRotated","Prc32KRotated","PrcEnvelopeNumber1","PrcEnvelopeNumber10","PrcEnvelopeNumber10Rotated","PrcEnvelopeNumber1Rotated","PrcEnvelopeNumber2","PrcEnvelopeNumber2Rotated","PrcEnvelopeNumber3","PrcEnvelopeNumber3Rotated","PrcEnvelopeNumber4","PrcEnvelopeNumber4Rotated","PrcEnvelopeNumber5","PrcEnvelopeNumber5Rotated","PrcEnvelopeNumber6","PrcEnvelopeNumber6Rotated","PrcEnvelopeNumber7","PrcEnvelopeNumber7Rotated","PrcEnvelopeNumber8","PrcEnvelopeNumber8Rotated","PrcEnvelopeNumber9","PrcEnvelopeNumber9Rotated","Quarto","Standard10x11","Standard10x14","Standard11x17","Standard12x11","Standard15x11","Standard9x11","Statement","Tabloid","TabloidExtra","USStandardFanfold","calculateDimension","dimension","precision","undefined","roundingXDecimals","getPaperSize","kind","size","getOriginalPositionNum","left","convertFromCssPixelUnits","dataset","originalLeftPosition","top","originalTopPosition","getOriginalSizeNum","originalWidth","originalHeight","getResizedBounds","originalPosition","originalSize","boundsDiff","init","valueAccessor","allBindings","viewModel","bindingContext","values","$element","$parent","currentDirection","$selectedNodes","resizableDirections","calculateSizes","absolutePosition","options","handles","ghost","stop","event","each","_","context","control","$data","surface","$root","$el","rect","newRect","getControlRect","canSetRect","css","JSON","stringify","c","stopped","started","snapHelper","deactivateSnapLines","start","getResizeDirection","starting","bounds","getBoundingClientRect","convertToCssPixelUnits","elementOffset","ghostContainerOffset","find","updateSnapLines","resize","dw","dh","dx","dy","forceResize","Size","offsetWidth","offsetHeight","delta","bounds1","bounds2","mainSelectionOriginalSize","mainSelectionOriginalPosition","altKey","newWidth","newHeight","elementSizeInfo","newAbsolutePosition","getControlNewAbsolutePositionOnResize","y","activateSnapLines","resizedBounds","snapBounds","right","bottom","style","resizableElement","Resizable","dispose","update","allBindingsAccessor","minWidthOption","minimumWidth","minWidth","minHeightOption","minimumHeight","minHeight","getElementHandles","child","contains","maxWidth","maximumWidth","handleClassName","handle","locked","display","editor_template","render","$icon","addClass","iconClass","icon","attr","get","container","append","$span","dxButtonWithTemplate","patchedOptions","optionsToExtend","templateData","dxButton","registerComponent","BaseActionsProvider","actions","action","condition","setDisabled","cloneHtmlBinding","isInitialized","content","disposeWhenNodeIsRemoved","HighlightEngine","_$spanProtect","_$spanSearch","_options","newText","_update","textToSearch","newFind","_getHighlightContent","searchOptions","searchPattern","match","findMatchesInString","newResult","curIndex","subString","itemIndex","textBeforeMath","outerHTML","TabInfoWithPropertyGrid","propertyGrid","ObjectProperties","getEditors","some","editor","isRendered","keyboardHelper","TabInfo","registerBaseBinding","bindingName","optionsName","registerBaseBindingInternal","addToBindingsCache","bindingText","addToBindingsCacheInternal","TextAlignmentModel","object","middle","center","justify","horizontalString","verticalString","updateModel","type","_resetHorizontalValues","_resetVerticalValues","updateValue","val","templateHtml","getTemplate","controlsDescendantBindings","dxFieldListPicker","_b","showClearButton","_path","_value","_parentViewport","_itemsProvider","_hasDisplayNameOption","_defaultPosition","_$element","option","parents","displayValue","_setTitle","popupPosition","boundary","boundaryOffset","collision","_getMaxHeight","repaint","_renderPosition","windowHeight","window","maxHeight","Math","max","outerHeight","min","ignoreContainerClicks","apply","dxPolymorphWidget","popuConfig","position","contentTemplate","_template","hideOnOutsideClick","newValue","args","_renderDisplayText","scroll","scrollByThumb","self","$scrollContent","treeListController","itemsProvider","onItemsVisibilityChanged","childContext","createChildContext","dxDropDownBox","$context","setNone","setAll","setValue","getPopupContainer","editorInputId","getOptions","dataBindingsProvider","displayNameProvider","$displayName","getDisplayNameByPath","dataBindingsGroupProvider","customPatterns","validationRules","viewmodel","observable","level","editorCreated","snapLineSurfaces","transform","templateName","selection","surfaceClass","accessibilityCompliant","designMode","rootStyle","rtl","isLoading","parts","addOns","togglePopoverVisible","unwrap","imageTemplateName","imageClassName","_e","selector","popoverVisible","displayText","isLocked","template","controls","customData","toggleAppMenu","appMenuVisible","getMenuPopupContainer","getMenuPopupTarget","buttonClassName","parentClassList","parentNode","hasSeparator","actionLists","menuItems","actionsGroupTitle","editableObject","group","popularVisible","contextActions","popularProperties","groupActions","isSearching","switchSearchBox","searchPlaceholder","searchBox","active","controlsStore","dataSource","focusedItem","displayExpr","isSortingByGroups","editorsCreated","allEditorsCreated","popupService","title","submenu","_overlay","innerTemplate","contextGroupActions","groups","editorsRendered","editors","editorTemplate","$index","_editors","itemTemplate","dxTemplate","tabPanel","cssClasses","getResizableOptions","headerWidth","s","toggleTabVisibility","toogle","toolbarItems","selected","contentData","toolboxDragHandler","toolboxItems","groupedToolboxItems","zoomLevels","zoom","round","onCustomItemCreating","showPopup","editorMenuButtonCss","hint","contentId","headerId","up","isDisabledButton","getDisplayTextButton","down","padding","showScroll","component","getDisplayTextEmptyArray","createCollectionItemWrapper","$parents","selectedIndex","showButtons","isVisibleButton","info","getValidatorOptions","validatorOptions","arg","generateValue","undoEngine","isComplexEditor","isRequired","isPropertyModified","isPropertyHighlighted","contentTemplateName","bold","italic","underline","strikeout","_z","popupVisible","buttonItems","queriesGrid","_queriesPopupHelper","popupItems","textAreaValue","isValid","resizeHelper","resizable","resizeHandler","editorContainer","theme","aceOptions","additionalOptions","callbacks","modelValueValid","modelValueWarning","onContentReady","onShowing","onHiding","onShown","resizeAceEditor","aceAvailable","tools","toolBox","click","updateContent","allItems","parameters","fields","nodeImageClass","class","dblclick","availableItems","advancedMode","textVisible","getTextCssClasses","textContentHeightPerc","advancedModeText","getCheckBoxStyles","getContentStyles","onInput","cacheElement","textFocused","helper","aceTheme","invalidMessage","advancedModeTop","operandSurface","isSurfaceValid","modelDisplayValue","modelValueIsValid","canRemove","property","aggregatedExpression","begin","end","leftOperand","rightOperand","leftPart","displayType","rightPart","operands","addValue","criteriaOperator","canChange","operand","reverse","isEditable","getStringEditorOptions","getBoolEditorOptions","getDateEditorOptions","getNumberEditorOptions","getListEditOptions","isDefaultDisplay","focusText","parameterName","filterString","isFiltered","hidden","selectedItems","removeItem","getDisplayText","addCustomFormat","canAddCustomFormat","formatResult","updateInputText","formatPrefix","formatSuffix","patternList","setFormat","removeCustomFormat","selectedFormats","isGeneralType","previewString","types","setType","selectedTypes","hasContent","treeListEditAction","renderNext","isHovered","dblClickHandler","mouseenter","mouseleave","getCssRules","isMultiSelected","dragDropHandler","searchEnabled","templates","accordionItem","headerItem","contenttemplate","actionsTemplate","actionsContainer","isDraggable","headerItemContent","itemTextContent","visibleItems","resolver","SvgTemplatesEngine","EDITOR_WARNING_STATE_CLASS","dxEllipsisEditor","editor_prefix","_koContext","_renderButton","_updateWarningState","_attachInputEvents","removeAttr","removeClass","_$button","_attachButtonEvents","_$buttonIcon","appendTo","buttonsContainer","subscribeElements","_$input","off","on","buttonAction","input","KeyboardEnum","dxTextBox","dxFileImagePicker","placeholder","placeholderId","format","inputContainer","$inputContainer","uploadFile","accept","readMode","done","_handleResult","_getDisplayValue","extendedTemplates","PopupComponentBase","_component","getComponent","$content","fn","has","is","dxPopupWithAutoHeight","dxPopup","ReorderTreeListDragDropHelper","dragHelperContent","droppableClassName","approveClassName","classDropBefore","classDropAfter","_targetElement","_target","_draggable","draggable","_draggableModel","_getElementViewModel","isDragToBottom","siblings","getSiblings","_siblings","_targetModel","valueHasMutated","_removeClass","elementModel","clearDroppableClasses","Rectangle","reset","setContent","canDrop","getDroppablePosition","GuidEditor","concat","guidValidationRules","editorOptions","isNullable","guidRequiredValidationRules","Editor","FontEditor","parentDisabled","FontModel","fontInfo","PropertyGridEditor","FilterEditor","fieldListProvider","_displayNameProvider","_advancedMode","languageHelper","getLanguageMode","createCompleters","completor","FilterEditorCodeCompletor","getRealExpression","expression","displayExpressionConverter","toRealExpression","showLineNumbers","showPrintMargin","enableBasicAutocompletion","enableLiveAutocompletion","showGutter","onChange","session","onValueChange","getValue","changeTimeout","onFocus","onBlur","getParentContainer","animationTimeout","clearTimeout","PopupService","initializeInnerValue","DisplayExpressionConverter","save","onSave","serializer","serialize","wrapExpressionValue","modelValue","_validateValue","criteriaTreeValidator","validateModel","deserialize","_generateOperand","_generateSurface","onClosing","createAddButton","criteria","handlers","create","createChangeType","change","createChangeProperty","changeProperty","createChangeParameter","changeParameter","createChangeValueType","changeValueType","toolbar","location","widget","UnaryOperator","mapper","unary","UnaryOperandSurface","GroupOperator","GroupOperatorType","criteriaCreator","assignFrom","onEditorFocusOut","dxTextArea","trim","updateCriteria","fail","focusFn","renderer","updateText","subscription","PopupEditorBase","bindings","computedFunctions","getDisplayPropertyName","FilterEditorPlain","advancedModePosition","advancedModeLeft","realTimeUpdate","valueUpdateTimeout","styles","pointerEvents","createViewModel","params","componentInfo","BooleanEditor","checkBoxElement","jquery","dxRenderer","labels","getElementsByTagName","labelElement","eventListener","dispatchEvent","Event","templateOptions","extendedOptions","editorCustomization","onInitialized","_checkBoxInitializedHandler","ColorPickerEditor","toLowerCase","test","div","createElement","backgroundColor","FieldListEditor","modelPropertyInfo","_model","TreeListController","DataMemberEditor","DataMemberTreeListController","editorTemplates","header","editorType","custom","PropertyGridEditorFlat","guid","date","RequiredNullableEditor","borders","textAlignment","objecteditorCustom","field","dataMember","filterEditor","formatEditor","expressionEditor","customColorEditor","sbyte","createNumericEditor","decimal","int64","int32","int16","single","double","byte","uint16","uint32","uint64","_getContainment","containment","distance","selecting","selectionElement","_event","cancel","ctrlKey","expectClick","applySelection","unselecting","selectable","Selectable","subscriptions","updateTop","scaleY","prev","$viewport","$ghostContainerOffset","$containmentOffset","initialScroll","attachDelta","ui","scrollLeft","scrollTop","uiElement","DragDropHandler","startDrag","stopDrag","drag","$container","parentOffset","containmentElement","_getElementOffset","startLeftPosition","pageX","startTopPosition","pageY","draggableModel","prependTo","parentElement","startDragWithOffset","setDragOffsetMode","Draggable","trackCursorClass","recalculateBounds","body","docElem","documentElement","overHandler","isNotDropTarget","dropTarget","enterHandler","isOver","leaveHandler","pageYOffset","pageXOffset","clientTop","clientLeft","$templateHtml","cssTransform","enabled","keyPressHandler","isNaN","sizeFake","locationFake","JSDesignerBindingCommon","_customEventRaiser","_templateHtml","developmentMode","sender","removeProperties","eventName","publicName","privateName","console","warn","availableEvents","callbackName","_warnForIncorrectCallbackName","host","uri","RequestHelper","eventsArray","prefix","events","convertCallbackArrayToDictionary","deferred","requestOptions","getLocalizationAction","actionUrl","_getServerActionUrl","jqXHR","textStatus","errorThrown","_processError","message","reject","callbackArray","DxAnalyticsComponentCommon","_element","getBindingName","troubleshootingPageWrapper","substring","_snapDisabled","_size","alwaysAlt","doStopDrag","relatedTarget","leftPosition","topPosition","dropTargetSurface","targetWidth","underCursor","getControlModel","addChild","controlSurface","findSurface","unitsToPixel","dpi","measureUnit","controlModel","metaData","needToActivateSnapLines","getMetaData","isContainer","_getAbsoluteSurfacePosition","snapDelta","ghostContainer","DragHelperControlRectangle","DragHelperContent","selectionProvider","_selectionProvider","_isEmpty","surfaceElement","area","SelectionDragDropHandler","cursor","updateSelection","selectedItemInTree","swapFocusedItem","focusedSurface","focused","baseOffsetX","baseOffsetY","offsetX","offsetY","adjustedTarget","getLocation","getNearestParent","adjustDropTarget","focusedModel","changeParent","itemsToDrop","parentModel","removeChilds","ajustLocation","selectItems","ToolboxDragDropHandler","controlsFactory","_controlsFactory","toolboxItem","recalculateSize","createControl","isFit","addControl","WizardDragDropHandler","_addHandler","addHandler","_dropTarget","$target","getTarget","page","SurfaceElementBase","unitProperties","_countSelectedChildren","HoverInfo","allowMultiselect","Point","cssCalculator","CssCalculator","_getChildrenHolderName","collection","createObservableReverseArrayMapCollection","_createSurface","createObservableArrayMapCollection","fontCss","foreColorCss","backGroundCss","textAlignmentCss","contentCss","angle","wordWrapCss","paddingsCss","updateAbsolutePosition","absoluteRect","controlRect","absolutePositionY","absolutePositionX","_getParent","surfaceParent","parentX","parentY","newX","newY","afterUpdateAbsolutePosition","_control","parentSurface","targetSurface","childrenCollection","getChildrenCollection","indexInCollection","findNextSelection","getControlFactory","controlsMap","controlType","_context","preInitProperties","createUnitProperties","_x","_y","_width","_height","_container","rtlLayout","_getX","_setX","lineHeight","_rect","beforeRectUpdated","ElementViewModel","actionProviders","getControlType","ModelSerializer","resetValue","_resetProperty","isResettableProperty","weight","defaultValue","getPropertyDefaultValue","copyObservables","getPropertyInfo","deserializeDefaultValue","isCopyDeny","isDeleteDeny","isPasteDeny","newControl","childs","onDelete","needName","isEmpty","compareObjects","Error","_getRoot","Margins","paddingSerializationsInfo","defaultVal","components","parseFloat","PaddingModel","isUpdating","oldValue","all","every","parseInt","_toString","applyFromString","modelName","isPropertyDisabled","AjaxRequestManager","ajaxSttingsFn","getAjaxSettings","requestSettings","_prepareRequestSettings","DesignControlsHelper","collectionNames","_handlers","_setText","_visitedCollections","_subscriptions","added","_collectControls","deleted","allControls","collectionsVisitor","unwrappedTarget","newTarget","len","addedItems","status","_setName","names","getNameProperty","newName","getUniqueNameForNamedObjectsArray","_getNamePrefix","_setDefaultText","initialText","getControlInfo","pop","array","owner","subscriptionsArray","changeSet","moved","processCollection","patchPositionByRTL","_rtlLayout","borderCss","borderWidth","_getBorderWidth","borderDefault","borderColor","borderStyle","createBorders","color","createFont","createWordWrap","controlPaddings","paddingLeft","_getPixelValueFromUnit","paddingTop","paddingRight","paddingBottom","align","createVerticalAlignment","createHorizontalAlignment","stroke","strokeWidth","strokeWidthWithWidth","strokeDashArray","createStrokeDashArray","strokeDashArrayWithWidth","crossBandBorder","createBorder","createAngle","cellBorder","createControlBorder","zipCodeFontCss","fontSize","createZipCodeFont","zipCodeAlignment","floor","dashStyle","positions","line","dash","defaultColor","border","_patchPosition","DEFAULT_BORDER","fontStyles","fontString","alignment","wordwrap","multiline","controlSurfaceWidth","controlSurfaceHeight","paddings","_bodyEvents","move","_windowEvents","_originalDragStartCoordinates","_originalElementPosition","_dragInitialized","_scrollableContainer","_draggableElementClass","_minDragDistance","mousedown","_mouseDown","_addClassToElement","_startRect","_mouseMove","_mouseUp","_initScrollContainer","dragDeltaLeft","dragDeltaTop","which","shouldStartDrag","_ghostContainer","_calculateElementPosition","abs","inProcess","_initDrag","ExpressionType","IsDataAccessExpression","editorTypeMapper","getEditorType","typeString","__awaiter","thisArg","_arguments","P","generator","Promise","fulfilled","step","next","rejected","then","FetchRequestManager","fetchSettingsFn","_executeRequest","url","abortControler","responseDeferred","response","_fetch","contentType","headers","statusText","json","ok","assign","responseJSON","success","catch","error","cache","signal","fetchSettings","getFetchSettings","beforeSend","fetch","_prepareParams","preparedUrl","abortController","queryParams","URLSearchParams","getTypeNameFromFullName","getShortTypeName","typeNameParts","getControlTypeName","getControlFullName","getImageClassName","isTemplate","objects","indexBand","getUniqueName","inculdeFirst","processTextEditorHotKeys","delegates","InlineTextEdit","_controlText","_showInline","textEditableProperty","alias","show","textarea","keypressAction","esc","ctrlEnter","_addErrorPrefix","processErrorCallback","getErrorMessage","NotifyAboutWarning","_errorProcessor","processErrorEvent","func","_removeErrorEvent","handleClass","handleClassSelector","resizableElementClass","_defaultMinSize","_resizeDirection","_resizeHandles","_startResizeMousePosition","originalLeftMousePosition","originalTopMousePosition","_getBoundsDiff","_removeClassFromElement","_initResize","handleResizeEvent","handleDiv","zIndex","diffWidth","diffHeight","leftDiff","topDiff","updateHeight","updateWidth","resizeFromTop","resizeDistance","respectedDiff","updateHeightFunc","resizeFromLeft","updateWidthFunc","addElementHandles","_initResizeHandle","newHandles","currentClassList","dxScrollProcessor","_updateTime","_currentOffsetY","_currentOffsetX","_scroll","_updateInterval","dxScrollView","clearInterval","setInterval","scrollTo","screenPosition","containerRect","offsetProperty","sizeProperty","scrollOffset","_calculateOffset","_startUpdateScrollPosition","CustomSortedArrayStore","sortPropertyName","_createOptions","sort","a","b","propA","propB","diff","_sortItems","take","skip","byKey","CustomStore","SortedArrayStore","ArrayStore","ControlsStore","_filter","DataSource","store","paginate","pageSize","snapPosition","num","v","curleft","curtop","posLeft","pageWidth","margins","minHeightWithoutScroll","scrollHeight","clientHeight","offsetTop","chooseBetterPositionOf","html","designer","updateSurfaceContentSize","surfaceSize","eq","toolboxWidth","outerWidth","rightAreaWidth","otherWidth","surfaceWidth","getToolboxItems","defaultGroup","nonToolboxItem","toolboxIndex","ToolboxItem","item1","item2","blur","replace","isDefined","restrictedNames","validateName","nameCandidate","letter","RegExp","replaceInvalidSymbols","nameValidationRules","validationCallback","ajaxSetup","ajaxSettings","sendRequest","_isFetchConfigured","requestManager","dxversions","analytics","devextreme","devextremeVersion","fetchSetup","_requestManagerInstance","getInstance","requestManagerSetup","_initialize","requestManagerInstance","SelectableElement","currentRect","r1","r2","_elements","_minSelectDistance","mousemove","mouseup","_$window","_clearElements","elements","getElementsByClassName","_$selectionContent","_updateSelectionContent","shouldStartSelect","_initStartRect","_collectElements","CombinedObject","infos","currentPath","getPath","customMerge","combinedObj","combinedObservable","_merge","isEmptyObject","ignoreProperties","_createProperty","oldPropertyDisabled","mergeProperty","mergeControls","ignoreMultiSelectProperties","SurfaceSelection","_focused","_selectedControls","_selectedControlsInner","_firstSelected","_removeFromSelection","selectedControl","_setFocused","metaKey","selectionWithCtrl","_resetTabPanelFocus","checkParent","selectedControls","deleteSelection","selectedObject","itemModel","removeChild","undo","UndoEngine","SnapLineSurface","_position","_blankPosition","updatePosition","SnapLinesCollector","_verticalSnapLines","_horizontalSnapLines","_snapTargetToIgnore","limitInf","limitSup","snapLines","limSup","binaryIndexOf","parentAbsoluteProsition","_enumerateCollection","itemAbsoluteRect","_appendSnapLine","_collectSnaplines","callback","_getCollection","itemRect","snapTargetToIgnore","vertical","horizontal","SnapLinesHelper","snapTolerance","snapLinesCollector","verticalSnapLines","horizontalSnapLines","_surfaceContext","_snapTolerance","_snapLinesCollector","snapLineCandidate","snapLine","delta1","Number","MAX_VALUE","delta2","position1","position2","line1","_findClosestSnapLine","line2","lines","collectSnaplines","_getActiveSnapLines","ActionListsBase","hotKey","keyCode","ActionLists","surfaceContext","customizeActions","copyPasteStrategy","zoomStep","copyPasteHandler","CopyPasteHandler","selectionControlsLocked","_keyboardHelper","KeyboardHelper","ActionId","canCopy","cut","charCodeAt","copy","canPaste","paste","undoEnabled","redoEnabled","redo","customItem","parseZoom","_registerAction","shouldIgnoreProcessing","createChild","pasteTarget","calculateDelta","pasteTargetSurface","minPoint","_copyPasteStrategy","_copyInfo","hasPasteInfo","copyInfo","createSelfRestoringItems","cutInfo","newSelection","maxPoint","newControlSurface","posMin","posMax","newOriginPoint","KeyboardCodesEnum","_processShortcut","_selection","_undoEngine","processEsc","moveSelectedControls","leftUp","isHoriz","sign","focusedControl","minAxis","maxSide","newAxis","axisProperty","lengthProperty","axis","side","toFixed","itemAxisProperty","itemLengthProperty","parentLengthProperty","targetElement","_activeHandler","_handler","_removeHandler","Cut","Copy","Paste","Delete","Undo","Redo","ZoomOut","ZoomSelector","ZoomIn","imageBaseName","_text","_localizationId","computedVisible","computedDisabled","visibility","TabPanel","Position","toggleCollapsedText","actionString","extendOptions","autoSelectTab","zoomFactor","_self","visibleTabs","disabledTabs","t","nextSelectedTab","selectTab","selectedTab","panelOffset","_resizableOptions","isCollapsed","toggleCollapsedImage","postfix","tabName","_templateName","elementModels","unwrapedTarget","targetLength","deleteCount","valuesToAdd","deserializeChildArray","creator","knockoutArrayWrapper","getFirstItemByPropertyValue","fromIndex","ar","compare","m","n","k","cmp","compareArrays","array1","array2","DEBUG","DebugMode","DesignerContextGeneratorInternal","_rtl","DesignerContextGenerator","ResizeSettings","ContextActionsSettings","createActionWrappingFunction","editableObj","editable","actionProvider","_actionUndoEngineWrappingFunction","_actionProviders","_actions","_groupActions","_collectActions","collectGroupsFromFlatList","DragDropSettings","_dragHelperContent","_dragDropStarted","dragDropStarted","ControlsHelperSettings","controlsHelper","MenuSettings","_appMenuVisible","SelectionSettings","_dragDropSettings","_resizeSettings","_editableObject","_snapHelper","generate","CommonDesignerGenerator","_selectionSettings","properties","_resetModel","elementFunc","disposableContainer","addDisposables","accessibilityProvider","addPropertyGrid","createControlProperties","ControlProperties","registerAccessibilityProvider","popularPropertiesObject","controlInfo","propertiesInfo","_createPopularProperties","panel","addTabInfo","panelModel","isLoadingFunc","useDefaults","generateDefaultParts","actionListsFunc","createDesigner","designControlsHelper","addModel","addSurface","addUndoEngine","getContext","designerGenerator","addDisposableContainer","mapOnContext","addSelection","throttle","addDragDrop","dragDropSettings","addDragDropHandler","addResize","resizeSettings","addToolboxItems","addIsLoading","addControlProperties","addPopularProperties","addControlsHelper","addControlsStore","addTabPanel","getModel","addContextActions","createDefaultActions","addMenu","addElement","availableFonts","sortedObj","fonts","localeCompare","addActionList","addParts","FieldListProvider","fieldListCallback","rootItems","extenders","rootItemsNoDragable","deferreds","_extenders","_beforeFieldListCallback","_el","ref","_afterFieldListCallBack","_patchRequest","always","request","dataSources","dss","extender","beforeItemsFilled","afterItemsFilled","NotifyType","warning","wrappedConsole","getWrappedMethod","methodName","msg","showForUser","ShowMessage","deferredResult","_showMessage","displayTime","containerElement","notify","clientWidth","of","my","at","closeOnSwipe","_setShowMessageFunc","_resetShowMessageFunc","href","showTroubleshootingMessage","link","consoleMessage","log","assignTroubleshootingPage","getTroubleshootingPage","Element","innerHTML","showErrorPage","iconTemplate","useFloor","pow","pixelToUnits","createUnitProperty","afterCreation","lastVal","to","_wrapModelInObservable","list","getGroupId","temp","res","groupId","getOwnPropertyNames","getFullPath","loadTemplates","promises","script","src","deffered","tmpl","getSizeFactor","staticContext","_static","selectPlaceholder","noDataText","_defaultStaticContext","appendStaticContextToRootViewModel","_ajax","ignoreError","customOptions","requestData","isError","igetErrorMessage","actionKey","getRequestDetails","_ajaxWithOptions","ajax","setAjax","newFunc","cutRefs","objectsVisitor","DesignerBaseElements","MenuButton","Toolbar","Toolbox","GroupedToolbox","Surface","RightPanel","wrapperName","oldClickHandler","localizeNoneString","noneValue","startPosition","disabledOption","startResizePosition","sizeDiff","createPasswordSerializationInfo","isNew","mode","inputAttr","autocomplete","visitor","visited","collectionsToProcess","ControlsFactory","typeName","metadata","isToolboxItem","defineProperty","set","enumerable","configurable","_getPropertyInfoByDisplayName","_getPropertyInfoByName","_getPropertyInfo","newInfo","floatFromModel","fromEnum","shotEnumValueKey","valuesArrayItem","valuesArray","parseBool","String","colorFromString","alpha","shift","saveAsInt","colorToInt","colorAsString","colorToString","intToColor","hasAlpha","r","g","suppressActions","canSelect","_createMainPopupButtons","_disableSaveButton","canSave","saveLocalization","stylingMode","onClick","cancelLocalization","close","StringId","requiredValidationRules","dotNetTypeFullName","ValueEditorHelper","BordersModel","_setAllValues","editorsInfo","useAddons","_searchBox","createGroups","focusedImageClassName","_textToSearch","isSearchedProperty","editorNames","recreateEditors","recreate","resetEditors","disposeObservableArray","resetObservableArray","cleanSubscriptions","Group","serializationInfo","findEditorByInfo","createEditor","serializationsInfo","createEditors","_displayName","_serializationsInfo","_accessibilityProvider","_viewModel","PropertiesAccessibilityProvider","isPropertyVisible","_calculateAccessibilityByPropertyInfo","defaultAccessibilityProvider","parsedBindings","globalResolver","isResolved","innerBindings","isDisposed","tasks","innerBindingKey","innerBindingParameters","innerBinding","execute","$accordionContent","first","accordionButton","hide","slideToggle","$scroll","scrollView","scrollUpdateCallback","accordionContentHTML","lazyContentRendering","empty","slideUp","slideDown","prevDisplayExpr","itemData","itemElement","useLocalizedTextAsValue","valueExpr","styleName","styleValue","service","serviceName","findService","entity","EditorAddOn","_editor","_popupService","getPopupServiceActions","actionFilter","_getTitles","editorModel","_wrapVisibleItems","visibleItem","currentItemPath","nextPath","resultTitle","editorName","modelAction","_wrapActionClick","_updateActions","CodeResolver","_queue","_queueObj","_done","_doneOnce","doOnceCallback","time","$deferred","_executeNext","force","doNext","$promise","loadMessages","_messages","messages","_processLocalization","_removeWinSymbols","removeWinSymbols","localize","obj","_getLocalization","_localizedText","isCustomizedWithUpdateLocalizationMethod","custom_localization_values","resolveFromPromises","createModel","localizeWithUpdateLocalizationMethod","oldText","formatDate","parseDate","useDefault","Date","deserializeDate","MasterDetailRelationsEditor","DataAccessBtnOK","DataAccessBtnCancel","DataSourceWizardTitle","WizardPageConfigureQuery","_loadMessages","addCultureInfo","_removeWinSymblols","_stringEndsWith","searchString","updateLocalization","_viewModelSubscription","_infoSubscription","_getInfoComputed","config","createEditorAddOn","editorAddOn","_parentDisabled","_cleanEditorsSubscriptions","compareEditorInfo","assignParent","_parent","newEditors","currentEditors","existEditorIndex","cleanEditors","_recreateEditors","_createEditors","createObjectProperties","visibleByName","isParentSearched","visibleByEditors","gridViewModel","CollectionEditorViewModel","itemTemplateName","itemTemplateHtml","CollectionItemWrapper","displayNameField","buttonMap","removeHandler","hideButtons","_textEmptyArray","textEmptyArray","displayPropertyName","_isDisabled","propertiesGridEditorsPaddingLeft","_timeoutItemRendered","listKeyboardHelper","_setSelectedIndex","_move","valuesCount","old_index","new_index","grandfather","wrapper","rtlEnabled","_validator","EditorValidator","_cachedValue","isEditorSelected","_setPadding","_editorOptions","_values","valueStore","_init","_shouldSkipHighlighting","hasValueInModel","_roundTwoDesemialsForUnitProperties","assignWithValidation","_assignValue","modelInfo","_getInfoFromModel","isSameEditorType","templateValidatorOptions","getValidationRules","provider","_lastValidatorOptions","_lastModelOverridableRules","_onValidatedHandler","onValidatedHandler","validatorInstance","rule","validator","validate","validationEngine","_validatorInstance","resultRules","modelOverridableRules","_getEditorValidationRules","areRulesChanged","extendedValidationRules","_concatValidationRules","extendedValidatorOptions","_wrapValidatorEvents","overridableRuleSet","newRule","onInitializedHandler","_this","_onValidatorInitialized","wrapOnValidatorInitialized","assignValueFunc","assignValueFirst","validationResult","_isValid","brokenRule","EditorTemplates","_useDeferredRegistration","_editorTemplates","editorInfo","_deferred","register","availableUnits","family","isUpdateModel","modificators","defaultFontSerialization","controlName","createBaseFunction","getFromCache","currentParseBindingsString","bindingsString","node","ex","optionsParser","optionsString","RegexGuid","validateGuid","validateNullableGuid","guidValidationMessage","SvgTemplateSource","_data","_templates","_hasTemplate","findEverywhere","hasOwnProperty","_instance","Instance","templateMarkup","makeTemplateSource","doc","getExistingTemplate","SearchMode","_getFileContent","fileUploaderId","appendChild","createFileUploaderElement","onchange","filesHolder","files","file","fr","FileReader","onload","readAsText","readAsDataURL","_uploadFile","_replaceUploadFile","setUploadFile","editor1","editor2","stringWhereSearch","searchExpr","escapeToRegExp","canUseRegex","searchMode","startWith","exprRule","caseSensitive","globalMatch","stringRemove","count","stringReplace","newChar","stringInsert","pos","subStr","formatUnicorn","number","formatSpecifier","addTemplate","querySelector","_defineProperty","legacyObject","realObject","newPropertyName","_definePropertyByString","rootObject","getAndCreateObject","createNew","pathParts","foundedObject","realObjectPath","legacyObjectPath","disposeCallback","currentValue","notifySubscribers","valueToNotify","class2type","hasOwn","isPlainObject","nodeType","isWindow","isFunction","object1","objectN","copyIsArray","clone","deep","isArray","assignObj","objectProps","getPrototypeOf","EventManager","_refTable","_linkTable","useRefs","serializeDate","propertyPath","currentModel","internalModel","refVal","_restoreLinks","_getModel","setRef","_refs","_collectLinksAndEnumRefs","_collectLinks","_enumRefs","linkObjects","refs","linkObjTable","refValue","propName","deserializePropertyValue","strict","ctorResult","proto","deserializeProperty","descriptor","getOwnPropertyDescriptor","currentArray","_serialize","resultValue","beforeSerialize","alwaysSerialize","item_","_isSerializableValue","toJsonObject","asRef","isInitial","serializeProperty","setLinks","isDisposing","deserializeArray","toStringWithDelimiter","delimiter","str","dateDelimiter","datePart","getMonth","getDate","getFullYear","timePart","getHours","getMinutes","getSeconds","datePartString","dateTime","dateTimeParts","dateArgs","timeArgs","propertiesVisitor","checkModelReady","isModelReady","random","_LatestChangeSet","changes","activeEngines","_ignoredProperties","_getInfoMethodName","_alwaysSubscribeProperties","_groupObservers","_groupPosition","_observers","_visited","_lockedPosition","_inUndoRedo","_currentEngineName","_disposeUndoEngineSubscriptionsName","isIngroup","isDirty","_targetSubscription","subscribeProperty","_createDisposeFunction","innerSubscriptions","prevVal","newTargetValue","_removePropertiesSubscriptions","properyChanged","propertyChanged","oldVal","_cleanSubscribtions","record","arrayChanges","removedItems","disposeRemovedRecords","disposalFunction","_disposeRemovedRecord","_disposeObserver","undoRecord","currentPosition","_disposeObservers","subscribtions","alwaysSubscribeProperty","validatePropertyName","addedIndex","_callDisposeFunction","objectInfo","inc","_disposeChilds","subscribtionArray","subscribeChilds","_modelReady","visitProperties","subscribeProperties","removeTargetSubscription","undoAll","clearHistory","removeNode","undoChangeSet","redoChangeSet","integerValueConverter","stringValue","enumValueConverter","valuesList","enumValue","existingValue","validateExpression","requests","_pushRequest","isParameter","propertyDeferred","getItemByPath","PathRequest","CriteriaOperatorStateMachine","criteriaForEach","operator","innerPath","OperandProperty","OperandParameter","responses","floatValueConverter","isDarkTheme","themes","_setIsDarkTheme","setCursorInFunctionParameter","paramCount","insertValue","cursorPosition","getCursorPosition","lastIndexOpeningBracket","lastIndexOf","charAt","gotoLine","row","column","isNullOrEmptyString","ace","createGlobalAceVariableFunc","CodeCompletor","_contextPath","_isInContext","_getPath","identifierRegexps","_fieldListProvider","_functions","functions","functionDisplay","_rootItems","needPrefix","getLine","token","parentPrefix","getTokenAt","endColumn","fieldName","insert","getToken","generateFieldDisplayName","caption","snippet","meta","score","completer","insertMatch","beforeInsertMatch","rootPath","dotIndex","closeIndex","pathArray","completions","ignorePrefix","_getParentPrefix","_getRealPath","_combinePath","$deferreds","_convertDataMemberInfoToCompletions","_cleanupFields","rootPathRequests","_processFields","needCleanup","pushToCompletions","RangeSpecific","subFields","fnDisplay","category","fnKey","createFunctionCompletion","aggregates","operatorNames","getFunctionsCompletions","getAggregateCompletions","getOperatorCompletions","$parametersPromises","paramPath","_addFunctions","_getFields","exceptionInfo","exception","hash","trimmedText","lastNonSpaceSymbol","_addParameterOperators","_getOperands","_addOperators","tokens","blocks","openedContextIndexes","contextItems","tokenIndex","openedAggregatesIndexes","currentToken","currentCursorPosition","aggregateIndex","openBrace","closeBrace","isClosedAggregate","j","openedAggregatePositions","_findOpenedAggregates","openedContextPositions","_findOpenedStartContext","contextPath","trimBrackets","_findStartContextTokenPosition","getTokens","currentTokenIndex","_getContextPath","defaultProcess","previousToken","_addAggregates","_getOperandsOrOperators","aceEditor","_getCompletions","tooltip","docHTML","fnInfo","description","descriptionStringId","filterText","ranges","getAllRanges","range","getTextRange","getDisplayExpression","def","expressionCriteria","FilterEditorSerializer","isContainsParentRelationshipTraversalOperator","getRealName","convertedName","processedRequestsCount","onAlways","deltaName","originalPropertyLength","_replaceNames","AggregateOperand","aggregateType","operationType","enumType","assignLeftPart","operatorType","UnaryOperatorType","operation","visitAggregateOperand","CriteriaOperator","BinaryOperatorType","BetweenOperator","assignRightPart","visitBetweenOperator","BinaryOperator","operatorTokens","visitBinaryOperator","ConstantValue","visitConstantValue","OperandValue","changeValue","assignType","incorrectSpecificsForAggregate","needAssignRightPart","FunctionOperator","FunctionOperatorType","visitFunctionOperator","op","isGroup","emptyRightPart","visitGroupOperator","combinedOperands","InOperator","visitInOperator","JoinOperand","joinTypeName","aggregated","visitJoinOperand","collectionProperty","visitOperandParameter","startColumn","startLine","circumflex","visitOperandProperty","visitUnaryOperator","isSomeType","isGuid","_processStringValue","exports","require","criteriaparser","o","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","parser","trace","yy","symbols_","terminals_","productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","process","Multiply","Divide","Plus","Minus","Modulo","BitwiseOr","BitwiseAnd","BitwiseXor","Not","BitwiseNot","Equal","NotEqual","Greater","Less","GreaterOrEqual","LessOrEqual","Like","combine","And","Or","IsNull","joinOrAggregate","col","last_column","first_column","expr","first_line","table","defaultActions","parseError","recoverable","parse","stack","vstack","lstack","recovering","TERROR","EOF","lexer","sharedState","setInput","yylloc","yyloc","symbol","preErrorSymbol","state","p","newState","expected","lex","yyval","errStr","showPosition","loc","last_line","_input","_more","_backtrack","matched","conditionStack","ch","unput","oldLines","more","backtrack_lexer","less","pastInput","past","upcomingInput","pre","test_match","indexed_rule","backup","matches","tempMatch","rules","_currentRules","flex","popState","conditions","topState","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","CriteriaOperatorPreprocessor","_func","_factory","_changeTypeFactory","changeType","changeOperator","_type","MachineState","tokenName","alphabet","startTerm","endTerm","tokenLength","isActiveState","term","_isSubline","_getToken","stringCriteria","machineStates","_inputStringCriteria","processTransitionFunction","resultTokens","newTokenChar","tempCriteria","char","_replaceTokenToAnotherToken","_tokenize","saveOriginalStringLength","replaceCommentsToChar","getCriteria","createExpressionEditorCollectionToolOptions","collectionItems","toolName","displayToolName","showDescription","converter","_displayValue","toDisplayExpression","valueSubscription","pathSubscription","newPath","editorTemplateName","optionSubscription","ExpressionEditor","newOptions","koOptions","getNotValidRange","errorMessage","errorText","errorLength","createExpressionEditorFieldListProvider","originalProvider","unwrappedFieldName","getValues","_updateTextAreaValue","textArea","_getTextArea","selectionStart","newAddedText","setSelectionRange","posisition","_updateAceValue","insertion","getSession","_updateValue","patchFieldName","_parametersPutSelectionHandler","selectedItemPath","newAddedString","_fieldsPutSelectionHandler","proposedFieldName","showFoldWidgets","highlightActiveLine","clearAnnotations","setAnnotations","warningMessage","pathFunc","initDisplayValue","selectionHandler","fieldsTreeListOptions","_createToolsOptions","ExpressionEditorTreeListController","parametersTreeListController","ExpressionEditorParametersTreeListController","_parametersCustomFilter","parametersTreeListOptions","Tools","ResizeHelper","onResize","resetCategoriesSelection","defaultFunctionDisplay","Avg","Count","Exists","Max","Min","Single","Sum","LocalDateTimeThisYear","LocalDateTimeThisMonth","LocalDateTimeLastMonth","LocalDateTimeLastWeek","LocalDateTimeLastYear","LocalDateTimeThisWeek","LocalDateTimeYesterday","LocalDateTimeToday","LocalDateTimeNow","LocalDateTimeTomorrow","LocalDateTimeDayAfterTomorrow","LocalDateTimeNextWeek","LocalDateTimeTwoMonthsAway","LocalDateTimeTwoYearsAway","LocalDateTimeTwoWeeksAway","LocalDateTimeNextMonth","LocalDateTimeNextYear","LocalDateTimeYearBeforeToday","InDateRange","IsOutlookIntervalBeyondThisYear","IsOutlookIntervalNextWeek","IsOutlookIntervalTomorrow","IsOutlookIntervalToday","IsOutlookIntervalYesterday","IsOutlookIntervalLastWeek","IsOutlookIntervalPriorThisYear","IsLastMonth","IsLastYear","IsNextMonth","IsNextYear","IsThisWeek","IsThisMonth","IsThisYear","IsJanuary","IsFebruary","IsMarch","IsApril","IsMay","IsJune","IsJuly","IsAugust","IsSeptember","IsOctober","IsNovember","IsDecember","IsSameDay","IsYearToDate","DateDiffTick","DateDiffSecond","DateDiffMilliSecond","DateDiffMinute","DateDiffHour","DateDiffDay","DateDiffMonth","DateDiffYear","DateTimeFromParts","GetDate","GetMilliSecond","GetSecond","GetMinute","GetHour","GetDay","GetMonth","GetYear","GetDayOfWeek","GetDayOfYear","GetTimeOfDay","Now","UtcNow","Today","AddTimeSpan","AddTicks","AddMilliSeconds","AddSeconds","AddMinutes","AddHours","AddDays","AddMonths","AddYears","Iif","InRange","IsNullOrEmpty","Abs","Sqr","Cos","Sin","Atn","Exp","Log","Rnd","Tan","Power","Sign","Round","Ceiling","Floor","Acos","Asin","Atn2","BigMul","Cosh","Log10","Sinh","Tanh","ToInt","ToLong","ToFloat","ToDouble","ToDecimal","Trim","Len","Substring","Upper","Lower","Concat","Infinity","Ascii","Char","ToStr","Replace","Reverse","Insert","CharIndex","Remove","PadLeft","PadRight","StartsWith","EndsWith","Contains","Join","insertOrUpdateFunctions","addins","addin","cat","ext","resetFunctionDisplay","combineFunctionDisplay","image","parametersOptions","fieldListOptions","_categories","_defaultClick","_initDescription","functionGroups","funtionGroup","_createFunctionsCategoryItem","selectedContent","firstItem","updateCategories","_disposeCategories","defaultCategories","_createFieldsCategory","_createConstantCategory","_createFunctionsCategory","_createOperatorsCategory","customizeCategories","_generateTab","contentItem","_localizedExpressionEditorItem","expressionEditorItem","functionItem","disposables","_createFunctionsCategoryContent","putSelectionHandler","customFilter","FilterStringOptions","popupContainer","_title","filterEditorHelperType","DefaultFilterEditorHelper","FilterStringPlainOptions","FilterEditorAddOn","_filterPlaceHolder","popupContentTemplate","_action","toLocaleLowerCase","FilterEditorHelper","aggregate","operators","filterEditorOperators","groupName","insertVal","filterEditorAvailable","funcItem","initDisplayText","iOperatorTokens","groupOperator","aggregateOperand","operatorTypeSuffix","propertyResult","conditionResult","aggregateSuffix","operandProperty","operandValue","operandParameter","betweenOperator","inOperator","binaryOperator","separator","unaryOperator","functionOperator","serializeAggregateOperand","serializeBetweenOperator","serializeBinaryOperator","serializeOperandValue","serializeFunctionOperator","serializeGroupOperand","serializeInOperator","serializeOperandParameter","serializeOperandProperty","serializeUnaryOperator","deserializeOperand","FilterEditorTreeListController","CriteriaSurfaceValidatorState","CriteriaSurfaceValidator","customValidate","_checkRightPart","rigthPart","checkLeftPart","checkRightPart","Unary","aggregateIsValid","groupIsValid","unaryIsValid","commonOperandValid","canSelectLists","canCreateParameters","canChoiceParameters","canChoiceProperty","_common","string","integer","float","bool","AggregateOperandSurface","OperandPropertySurface","parameter","OperandParameterSurface","OperandValueSurface","GroupOperandSurface","between","BetweenOperandSurface","binary","BinaryOperandSurface","function","FunctionOperandSurface","in","InOperandSurface","default","CriteriaOperatorSurface","_initDisplayText","specific","targetEnum","opreatorType","maxNumber","newOperator","treeListOptions","_setDefaultFilterEditorHelper","helperType","_createLeftPartProperty","childPath","createChildSurface","newModel","isUpdated","operatorClass","_getFilterEditorOperator","dataType","getDisplayType","OperandSurfaceBase","createItems","getConvertableParameters","valueType","fieldsOptions","generateTreelistOptions","realName","_updateDisplayName","_updateSpecifics","notListProperties","getRealParent","getRealProperty","propertyLocation","getPropertyName","searchProperty","destinationSpecifics","sourceSpecifics","_updateDate","setHours","_getBaseOptions","onFocusOut","onFocusIn","dropDownOptions","closeOnValueChange","isCustomValue","acceptCustomValue","useItemTextAsTitle","getDefaultValue","_defaultValue","scrollElement","scrollToElement","_allFilterEditorOperators","formatStringStandardPatterns","now","patterns","FormatStringEditor","defaultPatterns","_timeout","currentType","localizationIdMap","_standardPatternSource","_customPatternSource","_convertArray","_updateFormatList","_updateCanAddCustomFormat","_updatePreview","_initEditor","updatePreview","_updateSelection","_scrollToBottom","saveCustomPattern","currentSelection","removedItemIndex","removeCustomPattern","_getGeneralPreview","_wrapFormat","okAction","$scrollView","scrollViewInstance","currentTypeInfo","selectedItemIndex","currectFormat","updatedPreviewPromise","_lastUpdatePreviewPromise","previewResult","Result","_setPreviewString","_setErrorMessage","IsError","pattern","newFormat","formatStringValue","isFormatPatternFind","closingBracketIndex","formatPattern","selectTypePatternPair","componentInstance","_resize","deltaWidth","deltaHeight","oldDelta","resultSize","normalizedValue","textInputRange","endRange","selectionEnd","createRange","createTextRange","moveToBookmark","getBookmark","collapse","compareEndPoints","moveStart","moveEnd","minValue","maxValue","negative","valModulo","valMantissa","valExp","boundMantissa","boundExp","boundModulo","valIntPart","valFracPart","boundIntPart","boundFracPart","valOrder","boundOrder","getValueEditorOptions","regExpEditing","_validate","validateWidgetValue","_invokeStandardHandler","onKeyDown","_getCharFromKeyCode","$input","caretPosition","_getCaretPosition","onPaste","clipboardData","originalEvent","pastedData","getData","onValueChanged","previousValue","treeListViewModel","updateScrollBar","scrollViewElt","updateTreeList","fieldDragHandler","factory","DefaultTreeListItemFactory","createRootItem","treeListTemplate","TreeListSearchOptions","modelType","controllers","TreeListSearchViewModel","autoLoadItems","searchTimeout","searchBoxTemplate","_processedNodes","_currentProcess","_roots","valueChanged","clearProcess","setVisible","walkOnTree","regexResult","_collapseTreeBranch","controller","newRoot","addController","maxSearchLevel","TreeListRootItemViewModel","TreeListItemViewModel","TreeListEllipsisButton","_availableItemsCount","_isVisible","_pageSize","_walkCallback","_isLoaded","_actionsSubscription","_visibleItemsCount","_iconName","_nodeIsLocked","_loadChildItemsForCollapsedNodes","loadChildItemsForCollapsedNodes","_treeListController","_onItemsVisibilityChanged","_onItemsChangedCallback","onItemsChanged","_visible","_loadItems","_initPaginate","canMultiSelect","multiSelect","_getLoadChildItemsForCollapsedNodes","_getNodeImageClassName","_updataParentItemsVisibilityCount","obj1","obj2","ignore","showIcon","loadInnerItems","_loader","dataObj","_createItemsObj","isMutated","splicedItems","tempItems","itemsObj","resorted","showIconTemplate","d","currentItem","_equal","_applyPadding","_getImageClassName","_getImageTemplateName","curItem","_onItemsChanged","item2Select","_selectItem","itemPath","selectItemDelegate","_find","childItem","LoadChildItemsForCollapsedNodes","maxItemsCount","_getTemplateName","_resolver","_selectedPathSubscription","clear","walkCallBack","_visitNextNode","doneOnce","walkCallback","_item","processItemsFunc","_getItemsWithLock","expandRootItems","InfernoEffectHost","lockCount","lock","callEffects","effects","areObjectsEqual","firstObject","secondObject","firstObjectKeys","secondObjectKeys","BaseInfernoComponent","_pendingContext","nextProps","nextState","props","Component","InfernoComponent","_effects","_nextProps","_nextState","createEffects","updateEffects","destroyEffects","InfernoWrapperComponent","vDomElement","currentClasses","addedClasses","dxClasses","previous","removedClasses","indexInRemoved","removed","indexInAdded","findDOMfromVNode","$LI","shouldUpdate","vDomUpdateClasses","contextId","createContext","Provider","InfernoEffect","effect","dependency","destroy","currentDependency","createReRenderEffect","reRender","isNull","isSamePropsInnerHTML","dom","Boolean","dangerouslySetInnerHTML","__html","tempdom","isSameInnerHTML","hydrateChildren","parentVNode","currentNode","isSVG","lifecycle","childFlags","flags","_M","hydrateVNode","nextSibling","createTextNode","childNodes","nodeValue","prevVNodeIsTextNode","firstChild","hydrateText","vNode","parentDOM","replaceChild","currentDom","isClass","EMPTY_OBJ","_CI","$CX","_MCCC","_HI","renderFunctionalComponent","_MFCC","hydrateComponent","_ME","_MP","removeAttribute","_MR","hydrateElement","findLastDOMFromVNode","hydrateFragment","throwError","hydrate","$V","renderTemplate","hasTemplate","NUMBER_STYLES","Set","uppercasePattern","normalizeStyles","entries","isNumeric","getNumberStyleValue","CanonicalizeLocaleList","locales","Intl","getCanonicalLocales","CanonicalizeTimeZoneName","tz","tzData","uppercaseLinks","uppercasedTz","toUpperCase","uppercasedZones","z","ianaTimeZone","ToString","TypeError","ToNumber","NaN","TimeClip","isFinite","SameValue","ToInteger","ToObject","ArrayCreate","HasOwnProperty","prop","Type","MS_PER_DAY","mod","Day","WeekDay","DayFromYear","UTC","TimeFromYear","YearFromTime","getUTCFullYear","DaysInYear","DayWithinYear","InLeapYear","MonthFromTime","dwy","leap","DateFromTime","mft","MS_PER_SECOND","HourFromTime","MS_PER_MINUTE","MinFromTime","SecFromTime","OrdinaryHasInstance","C","O","internalSlots","boundTargetFunction","isPrototypeOf","msFromTime","CoerceOptionsToObject","DefaultNumberOption","fallback","RangeError","GetNumberOption","minimum","maximum","GetOption","opts","GetOptionsObject","SANCTIONED_UNITS","removeUnitNamespace","SIMPLE_UNITS","IsSanctionedSimpleUnitIdentifier","unitIdentifier","IsValidTimeZoneName","zoneNames","linkNames","linkName","NOT_A_Z_REGEX","IsWellFormedCurrencyCode","currency","IsWellFormedUnitIdentifier","units","numerator","denominator","ComputeExponentForMagnitude","numberFormat","magnitude","getInternalSlots","notation","dataLocaleData","numberingSystem","compactDisplay","currencyDisplay","thresholdMap","numbers","nu","short","long","thresholds","magnitudeKey","other","ToRawPrecision","minPrecision","maxPrecision","xFinal","int","repeat","xToString","xToStringExponentIndex","xToStringMantissa","xToStringExponent","xToStringMantissaWithoutDecimalPoint","decimalPlaceOffset","getMagnitude","adjustDecimalPlace","formattedString","roundedNumber","integerDigitsCount","ToRawFixed","minFraction","maxFraction","f","mantissa","exponent","FormatNumericToString","intlObject","isNegative","roundingType","minimumSignificantDigits","maximumSignificantDigits","minimumFractionDigits","maximumFractionDigits","minInteger","minimumIntegerDigits","ComputeExponent","formatNumberResult","CurrencyDigits","currencyDigitsData","digitMapping","S_UNICODE_REGEX","CARET_S_UNICODE_REGEX","source","S_DOLLAR_UNICODE_REGEX","CLDR_NUMBER_PATTERN","formatToParts","numberResult","pl","nonNameCurrencyPart","numberPattern","defaultNumberingSystem","compactNumberPattern","compactPluralRules","byNumberingSystem","selectPlural","compactPlaralRule","getPatternForSign","getCompactDisplayPattern","byCurrencyDisplay","currencies","narrow","standard","currencyData","currencySign","percent","decimalNumberPattern","afterCurrency","currencySpacing","afterInsertBetween","beforeCurrency","beforeInsertBetween","numberPatternParts","numberParts","symbols","_i","numberPatternParts_1","part","paritionNumberIntoParts","useGrouping","minusSign","plusSign","percentSign","unitPattern","unitName","currencyNameData","unitPatternParts_1","unitDisplay","unitData","simple","numeratorUnit","denominatorUnit","numeratorUnitPattern","perUnitPattern","perUnit","perPattern","compound","per","denominatorPattern","_c","_d","interpolateMatch","digitReplacementTable","digit","fraction","decimalSepIndex","groupSepSymbol","patternGroups","primaryGroupingSize","secondaryGroupingSize","integerGroup","exponential","exponentResult","zeroPattern","negativePattern","PartitionNumberPattern","nan","infinity","signDisplay","FormatNumericToParts","nf","implDetails","parts_1","SetNumberFormatUnitOptions","SetNumberFormatDigitOptions","mnfdDefault","mxfdDefault","mnid","mnfd","mxfd","mnsd","mxsd","InitializeNumberFormat","localeData","availableLocales","numberingSystemNames","getDefaultLocale","requestedLocales","opt","matcher","localeMatcher","ResolveLocale","dataLocale","invariant","cDigits","PartitionPattern","beginIndex","endIndex","SupportedLocales","LookupSupportedLocales","RangePatternType","_super","MissingLocaleDataError","__extends","isMissingLocaleDataError","LOG10E","times","arr","setInternalSlot","setMultiInternalSlots","getInternalSlot","getMultiInternalSlots","slots","isLiteralPart","patternPart","writable","Err","BestAvailableLocale","candidate","subset","requestedLocales_1","noExtensionLocale","UNICODE_EXTENSION_SEQUENCE_REGEX","availableLocale","UnicodeExtensionValue","extension","searchValue","relevantExtensionKeys","LookupMatcher","foundLocale","minimizedAvailableLocaleMap","availableLocaleMap","canonicalizedLocaleMap","minimizedAvailableLocales","minimizedLocale","Locale","minimize","canonicalizedLocale","maximizedRequestedLocale","maximize","minimizedRequestedLocale","BestFitMatcher","supportedExtension","relevantExtensionKeys_1","foundLocaleData","keyLocaleData","supportedExtensionAddition","requestedValue","optionsValue","privateIndex","preExtension","postExtension","defaultLocale","algorithm","InitializeRelativeTimeFormat","ecma402_abstract_1","intl_localematcher_1","NUMBERING_SYSTEM_REGEX","rtf","initializedRelativeTimeFormat","numeric","NumberFormat","pluralRules","PluralRules","MakePartsList","patternParts_1","PartitionRelativeTimePattern","SingularRelativeTimeUnit_1","MakePartsList_1","resolvedUnit","SingularRelativeTimeUnit","entry","tl","po","fv","internalSlotMap","WeakMap","tslib_1","InitializeRelativeTimeFormat_1","PartitionRelativeTimePattern_1","get_internal_slots_1","__importDefault","RelativeTimeFormat","resolvedOptions","supportedLocalesOf","__addLocaleData","data_1","__defaultLocale","polyfilled","Symbol","toStringTag","_1","shouldPolyfill","supported_locales_1","hasResolvedOptionsNumberingSystem","supportedLocales","global","define","module","deps","payload","modules","payloads","original","_require","parentId","lookup","dep","packagedModule","normalizeModule","moduleName","chunks","packaged","ns","exportAce","defineProp","startsWith","endsWith","subjectString","lastIndex","includes","output","kValue","findIndex","fill","relativeStart","relativeEnd","final","last","stringReverse","stringRepeat","trimBeginRegexp","trimEndRegexp","stringTrimLeft","stringTrimRight","copyObject","copyArray","deepCopy","arrayToMap","createMap","arrayRemove","escapeRegExp","escapeHTML","getMatchOffsets","regExp","deferredCall","fcn","timer","schedule","isPending","delayedCall","defaultTimeout","delay","supportsLookbehind","supportsUnicodeFlag","OS","LINUX","MAC","WINDOWS","getOS","isMac","isLinux","_navigator","navigator","os","platform","ua","userAgent","appName","isWin","isIE","isOldIE","isGecko","isMozilla","isOpera","opera","isWebKit","isChrome","isEdge","isAIR","isAndroid","isChromeOS","isIOS","MSStream","isMobile","strictCSP","useragent","buildDom","txt","els","childIndex","cssText","getDocumentHead","head","tag","createElementNS","removeChildren","ownerDocument","createFragment","createDocumentFragment","hasCssClass","addCssClass","removeCssClass","classes","toggleCssClass","setCssClass","include","hasCssString","sheets","removeElementById","cssCache","insertPendingStyles","importCssString","getRootNode","insertBefore","useStrictCSP","importCssStylsheet","rel","scrollbarWidth","inner","outer","overflow","noScrollbar","withScrollbar","computedStyle","getComputedStyle","setStyle","HAS_CSS_ANIMATION","HAS_CSS_TRANSFORMS","HI_DPI","devicePixelRatio","animationName","translate","tx","ty","xhr","XMLHttpRequest","open","onreadystatechange","readyState","responseText","send","loadScript","isAbort","qualifyURL","inherits","ctor","superCtor","super_","mixin","implement","EventEmitter","propagationStopped","defaultPrevented","_emit","_dispatchEvent","_eventRegistry","_defaultHandlers","listeners","defaultHandler","_signal","once","newCallback","setDefaultHandler","_disabled_","old","removeDefaultHandler","capturing","removeListener","removeAllListeners","oop","optionsProvider","setOptions","optList","setOption","optionNames","$options","getOption","forwardTo","handlesSet","AppConfig","$defaultOptions","defineOptions","initialValue","resetOptions","setDefaultValue","setDefaultValues","optionHash","setMessages","nls","translated","reportError","isDark","cssClass","$id","lang","net","workerPath","modePath","themePath","basePath","suffix","$moduleUrls","loadWorkerFromBlob","sharedPopups","$modes","moduleUrl","sep","base","re","setModuleUrl","subst","customLoader","setLoader","cb","dynamicModules","$loading","$loaded","loadModule","onLoad","loadedModule","moduleType","afterLoad","loader","err","reportErrorIfPathIsNotConfigured","$require","setModuleLoader","version","scriptOptions","scriptUrl","currentScript","_currentScript","currentDocument","scripts","attributes","m1","Range","startRow","endRow","isEqual","compareRange","comparePoint","containsRange","intersects","isEnd","isStart","setStart","setEnd","inside","insideStart","insideEnd","isMultiLine","compareStart","compareEnd","compareInside","clipRows","firstRow","lastRow","fromPoints","collapseRows","toScreenRange","screenPosStart","documentToScreenPosition","screenPosEnd","moveBy","comparePoints","p1","p2","Keys","ret","MODIFIER_KEYS","KEY_MODS","FUNCTION_KEYS","PRINTABLE_KEYS","enter","escape","del","mods","keyCodeToString","keyString","fromCharCode","activeListenerOptions","pressedKeys","ts","getListenerOptions","createComment","passive","detectListenerOptionsSupport","EventListener","elem","destroyer","$toDestroy","stopEvent","getButton","capture","eventHandler","releaseCaptureHandler","onMouseUp","addMouseWheelListener","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","wheelX","wheelY","DOM_DELTA_LINE","DOM_DELTA_PAGE","addMultiMouseDownListener","timeouts","startX","startY","clicks","eventNames","onMousedown","detail","isNewClick","clientX","clientY","_clicks","getModifierHash","normalizeCommandKeys","hashId","getModifierState","altGr","keyLocation","timeStamp","resetPressedKeys","getModifierString","addCommandKeyListener","isOldGecko","lastKeyDownKeyCode","lastDefaultPrevented","postMessage","postMessageId","nextTick","win","messageName","$idleBlocked","onIdle","$idleBlockId","blockIdle","nextFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","$cancelT","lineMode","pasteCancelled","clipboard","BROKEN_SETDATA","USE_IE_MIME_TYPE","HAS_FOCUS_ARGS","MAX_LINE_LENGTH","KEYS","MODS","valueResetRegex","TextInput","opacity","copied","pasted","inComposition","sendingText","tempStyle","commandMode","ignoreFocusEvents","lastValue","lastSelectionStart","lastSelectionEnd","lastRestoreEnd","rowStart","MAX_SAFE_INTEGER","rowEnd","MIN_SAFE_INTEGER","numberOfExtraLines","isFocused","setNumberOfExtraLines","setAriaOptions","activeDescendant","inline","role","setLabel","hasFocus","resetSelection","$focusScroll","enableKeyboardAccessibility","preventScroll","isTransformed","ancestors","curOp","commandName","command","isUserAction","docChanged","selectionChanged","onCompositionEnd","positionToSelection","afterContextMenu","getRange","prevLine","nextLine","inputHandler","setInputHandler","getInputHandler","sendText","fromInput","extendLeft","extendRight","inserted","restoreStart","restoreEnd","shouldReset","onTextInput","onCompositionUpdate","inputType","execCommand","handleClipboardData","forceIEMime","mime","setData","doCopy","isCut","getCopyText","onCut","onCopy","onCommandKey","isAllSelected","selectAll","$readOnly","cancelComposition","useTextareaForIME","markerRange","compositionStartOffset","closeTimeout","syncComposition","onContextMenuClose","$isMousePressed","$keepTextAreaAtCursor","$moveTextAreaToCursor","onCompositionStart","getSelectionRange","msGetInputContext","getInputContext","getElement","setCommandMode","readOnly","setReadOnly","setCopyWithEmptySelection","onContextMenu","domEvent","moveToMouse","bringToFront","characterWidth","borderTopWidth","borderLeftWidth","maxTop","textInput","scroller","typingResetTimeout","typing","detectArrowKeys","$mouseHandler","isMousePressed","modifier","home","commands","findKeyCommand","addIosSelectionHandler","$setUserAgentForTests","_isMobile","_isIOS","DefaultHandlers","mouseHandler","$clickSelection","onMouseDown","onDoubleClick","onTripleClick","onQuadClick","onMouseWheel","selectByLines","extendSelectionBy","selectByWords","ev","inSelection","getDocumentPosition","mousedownEvent","moveToPosition","$focusTimeout","inMultiSelectMode","captureMouse","startSelect","setState","waitForClickSelection","screenToTextCoordinates","getShiftKey","selectToPosition","anchor","orientedRange","calcRangeOrientation","setSelectionAnchor","scrollCursorIntoView","cmpStart","cmpEnd","selectByLinesEnd","unsetStyle","focusWait","ax","ay","bx","by","sqrt","getBracketRange","getWordRange","getLineRange","getAccelKey","$lastScroll","vx","vy","allowed","prevScroll","dt","direction","canScroll","isScrollableBy","speed","scrollBy","selectEnd","selectAllEnd","selectByWordsEnd","extendStatics","setPrototypeOf","__proto__","__","__values","iterator","CLASSNAME","Tooltip","isOpen","$parentNode","$init","setText","setHtml","setPosition","setClassName","setTheme","getHeight","getWidth","popupManager","PopupManager","popups","addPopup","popup","updatePopups","removePopup","e_1","e_2","priority","visiblepopups","shouldDisplay","visiblepopups_1","visiblepopups_1_1","visiblePopup","doPopupsOverlap","e_2_1","return","e_1_1","popupA","popupB","rectA","rectB","HoverTooltip","lastT","idleTime","lastEvent","onMouseOut","onMouseMove","waitForHover","whiteSpace","tabIndex","addToEditor","getMouseEventTarget","removeFromEditor","isOutsideOfText","$gatherData","docPos","screenPos","pixelToScreenCoordinates","clippedPos","setDataProvider","showForRange","domNode","startingEvent","$registerCloseEvents","addMarker","textToScreenCoordinates","cursorPos","labelHeight","isTopdown","marker","$markerSession","removeMarker","$removeCloseEvents","GutterHandler","tooltipTimeout","mouseEvent","gutter","$gutterLayer","GutterTooltip","hideTooltip","moveTooltip","getRegion","selectTo","srcElement","$tooltipFollowsMouse","getLength","screenRow","$pos","documentToScreenRow","showTooltip","gutterRow","getGutterRow","gutterCell","$lines","$gutter","windowWidth","innerWidth","innerHeight","singular","plural","annotation","annotationsInRow","$annotations","fold","getFoldLine","$showFoldedAnnotations","mostSevereAnnotationInFoldType","annotationsInFold","annotationType","summaryFoldedAnnotations","annotationsToSummaryString","annotationMessages","iconClassName","$useSvgGutterIcons","annotationLabels","tooltipContent","annotations","summary","annotationTypes_1","annotationTypes_1_1","label","MouseEvent","$inSelection","documentRow","selectionRange","DragdropHandler","dragImage","dragSelectionMarker","timerId","dragCursor","dragOperation","isInternal","autoScrollStartTime","cursorMovedTime","cursorPointOnCaretMoved","mouseTarget","counter","onDragInterval","prevCursor","vMovement","hMovement","moveCursorToPosition","calcDistance","layerConfig","editorRect","offsets","nearestXOffset","nearestYOffset","scrollCursor","vScroll","hScroll","autoScroll","addDragMarker","toOrientedRange","getSelectionStyle","clearSelection","$cursorLayer","setBlinking","clearDragMarker","fromOrientedRange","$resetCursorStyle","onDragStart","cancelDrag","dataTransfer","effectAllowed","getReadOnly","setDragImage","clearData","onDragEnd","dropEffect","setCursorStyle","onDragEnter","canAccept","getDropEffect","onDragOver","onMouseMoveTimer","onDragLeave","onDrop","moveText","dropData","copyAllowed","copyModifierState","dragWait","getDragDelay","dragWaitEnd","dragReadyEnd","cursorStyle","onMouseDrag","dragDrop","$dragEnabled","eventTarget","unselectable","addTouchListeners","touchStartT","longTouchTimer","animationTimer","pressed","contextMenu","animationSteps","clickCount","vX","vY","createContextMenu","handleClick","hasUndo","getUndoManager","updateMenu","readText","writeText","ontouchstart","ontouchend","onclick","showContextMenu","pagePos","leftOffset","hideContextMenu","handleLongTap","selectWord","touches","h","w","touchObj","setRange","switchToSelectionMode","getPixelPosition","anchorPos","offsetLeft","weightedDistance","diff1","diff2","oldScrollTop","getScrollTop","DefaultGutterHandler","MouseHandler","focusEditor","onMouseEvent","scrollBarV","scrollBarH","gutterEl","$dragDelay","character","$scrollSpeed","mouseMoveHandler","releaseMouse","$mouseMoved","onCaptureEnd","onOperationEnd","onCaptureInterval","$onCaptureMouseMove","endOperation","startOperation","cancelContextMenu","scrollSpeed","dragDelay","dragEnabled","focusTimeout","tooltipFollowsMouse","FoldHandler","getFoldAt","removeFold","expandFold","getUseWrapMode","foldWidgets","onFoldWidgetClick","getParentFoldRangeData","firstRange","addFold","keyUtil","KeyBinding","$editor","$handlers","kb","removeKeyboardHandler","$defaultHandler","addKeyboardHandler","setKeyboardHandler","handleKeyboard","attach","detach","getKeyboardHandler","getStatusText","$callKeyboardHandlers","toExecute","passEvent","dir","hiLevel","lastArabic","hasUBAT_B","hasUBAT_S","impTab_LTR","impTab_RTL","ET","BN","UnicodeTBL00","UnicodeTBL20","_invertLevel","lev","levels","_array","lo","hi","tmp","_getCharClass","chars","ix","wType","nType","cType","rtlCandidate","_getCharacterType","uc","L","R","EN","ON_R","AN","R_H","B","RLE","DOT","doBidiReorder","textCharTypes","isRtl","logicalFromVisual","bidiLevels","charTypes","impTab","prevState","newClass","newLevel","condPos","_computeLevels","hasBidiCharacters","getVisualFromLogicalIdx","logIdx","rowMap","bidiUtil","bidiRE","BidiHandler","bidiMap","currentRow","charWidths","EOL","showInvisibles","isRtlDir","$isRtl","wrapIndent","contentWidth","fontMetrics","rtlLineOffset","wrapOffset","isMoveLeftOperation","seenBidi","isBidiRow","docRow","splitIndex","updateRowLine","updateBidiMap","getDocumentRow","rowCache","$screenRowCache","$getRowCacheIndex","$docRowCache","getSplitIndex","prevIndex","endOfLine","$useWrapMode","splits","$wrapData","indent","isFullWidth","getScreenTabSize","$main","markAsDirty","updateCharacterWidths","$characterSize","bidiCharWidth","$measureCharWidth","setShowInvisibles","setEolChar","eolChar","setContentWidth","isRtlLine","setRtlDirection","getSelectionAnchor","$bidiHandler","removeInLine","getPosLeft","leftBoundary","logicalIdx","getOverwrite","visualIdx","getSelections","startCol","endCol","selections","selColMin","selColMax","isSelectedPrev","visIdx","offsetToCol","posX","charWidth","Selection","getDocument","lead","createAnchor","$silent","$cursorChanged","$isEmpty","$keepDesiredColumnOnChange","$desiredColumn","$anchorChanged","getCursor","getPosition","setAnchor","getAnchor","getSelectionLead","isBackwards","$setSelection","anchorRow","anchorColumn","cursorRow","cursorColumn","wasEmpty","wasMultiselect","$moveSelection","mover","moveCursorTo","moveTo","selectUp","moveCursorUp","selectDown","moveCursorDown","selectRight","moveCursorRight","selectLeft","moveCursorLeft","selectLineStart","moveCursorLineStart","selectLineEnd","moveCursorLineEnd","selectFileEnd","moveCursorFileEnd","selectFileStart","moveCursorFileStart","selectWordRight","moveCursorWordRight","selectWordLeft","moveCursorWordLeft","selectAWord","getAWordRange","excludeLastChar","foldLine","selectLine","moveCursorBy","wouldMoveIntoSoftTab","tabSize","isTabStop","getTabSize","getNavigateWithinSoftTabs","firstColumnPosition","screenToDocumentPosition","leadingSpace","getDisplayLine","$useEmacsStyleLineStart","lineEnd","getDocumentLastRowColumnPosition","textEnd","search","moveCursorLongWordRight","rightOfCursor","nonTokenRe","tokenRe","moveCursorLongWordLeft","getFoldStringAt","leftOfCursor","$shortWordEndIndex","whitespaceRe","moveCursorShortWordRight","moveCursorShortWordLeft","$selectLongWords","rows","lineWidgets","rowsAbove","rowCount","keepDesiredColumn","moveCursorToScreen","desiredColumn","getRangeOfMovements","toJSON","rangeCount","fromJSON","rangeList","toSingleRange","addRange","MAX_TOKEN_COUNT","Tokenizer","states","regExps","matchMappings","ruleRegExps","matchTotal","mapping","defaultToken","flag","splitterRurles","caseInsensitive","unicode","regex","adjustedregex","matchcount","groupCount","tokenArray","onMatch","$arrayTokens","$applyToken","removeCapturingGroups","splitRegex","createSplitterRegexp","$setMaxTokenCount","inChClass","lastCapture","parenOpen","parenClose","square","getLineTokens","startState","currentState","matchAttempts","skipped","consumeLineEnd","merge","unshift","TextHighlightRules","$rules","addRules","getRules","embedRules","HighlightRules","escapeRules","$embeds","getEmbeds","normalizeRules","processState","processed","toInsert","stateName","includeName","noEscape","keywordMap","createKeywordMapper","ignoreCase","splitChar","keywords","$keywordList","word","getKeywords","$keywords","Behaviour","$behaviours","addBehaviours","behaviours","inherit","getBehaviours","TokenIterator","initialRow","initialColumn","$session","$row","$rowTokens","$tokenIndex","stepBackward","stepForward","getCurrentToken","getCurrentTokenRow","getCurrentTokenColumn","rowTokens","getCurrentTokenPosition","getCurrentTokenRange","SAFE_INSERT_IN_TOKENS","SAFE_INSERT_BEFORE_TOKENS","contextCache","defaultQuotes","initContext","autoInsertedBrackets","autoInsertedRow","autoInsertedLineEnd","maybeInsertedBrackets","maybeInsertedRow","maybeInsertedLineStart","maybeInsertedLineEnd","getWrapped","opening","closing","rowDiff","CstyleBehaviour","getWrapBehavioursEnabled","isSaneInsertion","braces","recordAutoInsert","recordMaybeInsert","$findOpeningBracket","isAutoInsertedClosing","popAutoInsertedClosing","isMaybeInsertedClosing","clearMaybeInsertedClosing","openBracePos","findMatchingBracket","next_indent","$getIndent","getTabString","quotes","$mode","$quotes","lineCommentStart","quote","leftChar","rightChar","rightToken","pair","stringBefore","stringAfter","wordRe","isWordBefore","isWordAfter","pairQuotesAfter","$pairQuotesAfter","charBefore","closeDocComment","$matchTokenType","iterator2","bracket","wordChars","code","Mode","$defaultBehaviour","getTokenizer","$tokenizer","$highlightRules","$highlightRuleConfig","blockComment","toggleCommentLines","ignoreBlankLines","shouldRemove","minIndent","insertAtTabStop","regexpStart","getUseSoftTabs","uncomment","shouldInsertSpace","commentWithSpace","comment","insertInLine","testRemove","before","after","spaces","lineCommentEnd","regexpEnd","iter","fun","minEmptyLength","toggleBlockComment","colDiff","initialRange","startRange","getNextLineIndent","checkOutdent","autoOutdent","createWorker","createModeDelegates","delegations","scope","functionName","$delegator","language","transformAction","param","$behaviour","completionKeywords","ruleItr","aLength","$createKeywordList","getCompletions","applyDelta","docLines","doNotValidate","Anchor","$onChange","$clipPositionToDocument","point","moveIfEqual","deltaIsInsert","deltaRowShift","deltaColShift","deltaStart","deltaEnd","$pointsInOrder","$getTransformedPoint","$insertRight","noClip","point1","point2","equalPointsInOrder","bColIsAfter","Document","textOrLines","insertMergedLines","getAllLines","getNewLineCharacter","$detectNewLine","$autoNewLine","$newLineMode","setNewLineMode","newLineMode","getNewLineMode","isNewLine","getLines","getLinesForRange","insertLines","insertFullLines","removeLines","removeFullLines","insertNewLine","$split","clonePos","$clipPosition","deleteFirstNewLine","deleteLastNewLine","deletedLines","removeNewLine","applyDeltas","deltas","revertDeltas","revertDelta","isInsert","$splitAndapplyLargeDelta","$safeApplyDelta","docLength","MAX","chunk","indexToPosition","newlineLength","positionToIndex","BackgroundTokenizer","tokenizer","running","currentLine","$worker","workerStart","endLine","processedLines","$tokenizeRow","fireUpdateEvent","setTokenizer","setDocument","scheduleStart","$updateOnChange","getState","cleanup","SearchHighlight","clazz","setRegexp","markerLayer","renderedMarkerRanges","MAX_RANGES","rangeToAddMarkerTo","rangeAsString","drawSingleLineMarker","FoldLine","foldData","folds","setFoldLine","shiftRow","sameRow","containsRow","walk","lastEnd","isNewRow","getNextFoldTo","addRemoveChars","foldBefore","newFoldLine","foldLineNext","idxToPosition","idx","lastFoldEndColumn","RangeList","$bias","pointIndex","excludeEdges","addList","substractPoint","containsPoint","rangeAtPoint","clipped","removeAll","lineDif","Fold","subFolds","subFold","collapseChildren","addSubFold","consumePoint","afterStart","firstConsumed","consumedFolds","restoreRange","restorePoint","Folding","getFoldsInRange","foldLines","$foldData","foundFolds","getFoldsInRangeList","getAllFolds","lastFold","startFoldLine","getNextFoldLine","getFoldedRowCount","$addFoldLine","$clipRangeToDocument","startFold","endFold","removeFolds","$updateWrapData","$updateRowLengthCache","$modified","addFolds","$updating","cloneFolds","foldAll","expandFolds","unfold","expandInner","outermostFolds","isRowFolded","startFoldRow","getRowFoldEnd","getRowFoldStart","getFoldDisplayLine","textLine","lastColumn","$cloneFoldData","fd","toggleFold","tryToUnfold","bracketPos","getCommentFoldRange","depth","getFoldWidget","getFoldWidgetRange","foldToLevel","foldAllComments","$foldStyles","$foldStyle","setFoldStyle","$foldMode","$setFolding","foldMode","$updateFoldWidgets","$tokenizerUpdateFoldWidgets","updateFoldWidgets","tokenizerUpdateFoldWidgets","ignoreCurrent","fw","$toggleFoldWidget","toggleFoldWidget","toggleParent","BracketMatch","chr","charBeforeCursor","$findClosingBracket","getMatchingBracketRanges","bracketsRegExp","$brackets","typeRe","openBracket","valueIndex","closingBracket","valueLength","getMatchingTags","$findTagName","$findClosingTag","$findOpeningTag","found","backward","prevToken","currentTag","openTagStart","openTagName","foundOpenTagEnd","openTagEnd","closeTagStart","closeTagName","closeTagEnd","openTag","closeTag","stepCount","tmpToken","TextMode","EditSession","$breakpoints","$decorations","$frontMarkers","$backMarkers","$markerId","$undoSelect","$uid","bgTokenizer","onChangeFold","setMode","destroyed","resetCaches","$resetRowCache","cacheArray","low","mid","$rowLengthCache","removedFolds","$updateInternalDataOnChange","$fromUndo","$undoManager","mergeUndoDeltas","$informUndoManager","setUndoManager","getSelection","undoManager","addSession","$syncInformUndoManager","markUndoGroup","$defaultUndoManager","setUseSoftTabs","$useSoftTabs","$indentWithTabs","setTabSize","$tabSize","setNavigateWithinSoftTabs","navigateWithinSoftTabs","$navigateWithinSoftTabs","setOverwrite","overwrite","$overwrite","toggleOverwrite","addGutterDecoration","removeGutterDecoration","getBreakpoints","setBreakpoints","clearBreakpoints","setBreakpoint","clearBreakpoint","inFront","addDynamicMarker","markerId","getMarkers","highlight","$searchHighlight","highlightLines","getAnnotations","inToken","wordRange","setUseWorker","useWorker","getUseWorker","$useWorker","onReloadTokenizer","$onChangeMode","$modeId","$isPlaceholder","oldMode","$stopWorker","$startWorker","attachToSession","wrapMethod","$wrapMethod","foldingRules","terminate","getMode","setScrollTop","$scrollTop","setScrollLeft","$scrollLeft","getScrollLeft","getScreenWidth","$computeWidth","getLineWidgetMaxWidth","screenWidth","lineWidgetsWidth","lineWidgetWidth","$wrapLimit","longestScreenLine","foldIndex","foldStart","$getStringScreenWidth","undoChanges","dontSelect","selectionBefore","$getUndoSelection","redoChanges","selectionAfter","setUndoSelect","enable","isUndo","fromRange","toPosition","toRange","collDiff","oldStart","newStart","indentRows","indentString","outdentRows","rowRange","deleteRange","$moveLines","$clipRowToDocument","moveLinesUp","moveLinesDown","duplicateLines","$clipColumnToRow","setUseWrapMode","useWrapMode","setWrapLimitRange","$wrapLimitRange","adjustWrapLimit","desiredLimit","$printMargin","limits","wrapLimit","$constrainWrapLimit","getWrapLimit","setWrapLimit","limit","getWrapLimitRange","foldLineBefore","wrapData","walkTokens","$getDisplayTokens","PLACEHOLDER_START","PLACEHOLDER_BODY","$computeWrapSplits","displayLength","lastSplit","lastDocSplit","isCode","$wrapAsCode","indentedSoftWrap","$indentedSoftWrap","maxIndent","addSplit","indentation","SPACE","TAB","TAB_SPACE","getWrapIndent","minSplit","PUNCTUATION","CHAR_EXT","CHAR","maxScreenColumn","screenColumn","getRowLength","getRowLineCount","getRowWrapIndent","getScreenLastRowColumn","documentToScreenColumn","getDocumentLastRowColumn","docColumn","getRowSplitData","screenToDocumentRow","screenToDocumentColumn","rowLength","doCache","maxRow","foldStartRow","wrapRow","screenRowOffset","getScreenLength","screenRows","$getWidgetScreenLength","$setFontMetrics","fm","$enableVarChar","getCharacterWidth","hasRedo","startNewGroup","wrap","$wrap","firstLineNumber","useSoftTabs","foldStyle","Search","$matchIterator","sr","sc","er","ec","skipCurrent","findAll","needle","$assembleRegExp","$isMultiLine","prevRange","replacement","preserveCase","$disableFakeMultiline","$supportsUnicodeFlag","wholeWord","wordBoundary","firstChar","needleArray","lastChar","addWordBoundary","$assembleMultilineRegExp","backwards","forEachInLine","MultiHashHandler","$singleCommand","commandKeyBinding","addCommands","addCommand","removeCommand","bindKey","_buildKeyHash","keepCommand","ckb","keyId","cmdGroup","keyPart","chain","binding","parseKeys","_addCommandToBinding","removeCommands","bindKeys","keyList","$keyChain","isDefault","HashHandler","CommandManager","byName","$checkCommandState","isAvailable","returnValue","toggleRecording","$inReplay","recording","macro","$addCommandToMacro","oldMacro","replay","trimMacro","mac","showSettingsMenu","showErrorMarker","scrollIntoView","centerSelection","prompt","$type","multiSelectAction","findNext","findPrevious","aceCommandGroup","navigateFileStart","navigateUp","navigateFileEnd","navigateDown","navigateWordLeft","navigateLineStart","navigateLeft","navigateWordRight","navigateLineEnd","navigateRight","selectPageDown","scrollPageDown","gotoPageDown","selectPageUp","scrollPageUp","gotoPageUp","jumpToMatching","$copyWithEmptySelection","$handlePaste","duplicateSelection","sortLines","modifyNumber","copyLinesUp","copyLinesDown","removeToLineStart","removeToLineEnd","removeWordLeft","removeWordRight","blockOutdent","blockIndent","splitLine","transposeLetters","transposeSelections","autoIndent","openLink","firstLineEndCol","selectedCount","insertLine","curLine","newRanges","exitMultiSelectMode","LineWidgets","widgetManager","updateOnChange","renderWidgets","measureWidgets","_changedWidgets","$onChangeEditor","updateOnFold","_inDocument","removeLineWidget","$updateRows","noWidgets","$oldWidget","$registerLineWidget","addLineWidget","coverGutter","pixelHeight","$fold","onWidgetChanged","w1","getWidgetsAtRow","updateFull","changedWidgets","fixedWidth","ceil","coverLine","gutterWidth","fullWidth","scrollBar","GutterKeyboardHandler","gutterLayer","activeRowIndex","activeLane","annotationTooltip","$onGutterKeyDown","$blurGutter","isRowVisible","scrollToLine","$rowToRowIndex","$cursorCell","nearestFoldIndex","$findNearestFoldWidget","nearestAnnotationIndex","$findNearestAnnotation","$focusAnnotation","$focusFoldWidget","$handleGutterKeyboardInteraction","GutterKeyboardEvent","lane","$switchLane","$rowIndexToRow","rowFoldingWidget","$blurFoldWidget","cells","$moveFoldWidgetDown","$moveAnnotationDown","$moveFoldWidgetUp","$moveAnnotationUp","$blurAnnotation","$isFoldWidgetVisible","isRowFullyVisible","isIconVisible","$getFoldWidget","$isAnnotationVisible","$getAnnotation","foldWidget","keyboardFocusClassName","desinationLane","annotationIndex","foldWidgetIndex","cell","gutterKeyboardHandler","getKey","getRow","isInAnnotationLane","isInFoldLane","defaultCommands","getContainerElement","getTextAreaContainer","keyBinding","$search","$historyTracker","$initOperationListeners","_$emitInputEvent","setSession","$opResetTimer","$lastSel","commandEvent","prevOp","previousCommand","scrollSelectionIntoView","animateScrolling","sel","$mergeUndoDeltas","mergeableCommands","$mergeableCommands","shouldMerge","mergeNextCommand","sequenceStartTime","keyboardHandler","$keybindingId","oldSession","$onDocumentChange","$onTokenizerUpdate","$onChangeTabSize","$onChangeWrapLimit","$onChangeWrapMode","$onChangeFold","$onChangeFrontMarker","$onChangeBackMarker","$onChangeBreakpoint","$onChangeAnnotation","$onCursorChange","$onScrollTopChange","$onScrollLeftChange","$onSelectionChange","onDocumentChange","onChangeMode","onTokenizerUpdate","onChangeTabSize","onChangeWrapLimit","onChangeWrapMode","onChangeFrontMarker","onChangeBackMarker","onChangeBreakpoint","onChangeAnnotation","onCursorChange","onScrollTopChange","onScrollLeftChange","onSelectionChange","oldEditor","getTheme","getFontSize","setFontSize","$highlightBrackets","$highlightPending","$bracketHighlight","markerIds","$getDirectionForHighlight","tagNamesRanges","getMatching","markerType","getHighlightIndentGuides","$textLayer","$highlightIndentGuide","$isFocused","showCursor","visualizeFocus","hideCursor","visualizeBlur","$cursorChange","updateCursor","$updateHighlightActiveLine","updateLines","scrollToY","scrollToX","$highlightActiveLine","$selectionStyle","$selectionColorConflict","$maxLines","$minLines","$highlightLineMarker","$selectionMarker","$highlightSelectedWord","$getSelectionHighLightRegexp","wordWithBoundary","updateFrontMarkers","updateBackMarkers","updateBreakpoints","getSelectedText","nl","copyLine","inVirtualSelectionMode","isFullLine","getBehavioursEnabled","lineState","shouldOutdent","$enableAutoIndent","lineIndent","selectedRange","currIndent","prevLineState","composition","applyComposition","forEachSelection","setScrollSpeed","getScrollSpeed","setDragDelay","setSelectionStyle","setHighlightActiveLine","shouldHighlight","getHighlightActiveLine","setHighlightGutterLine","getHighlightGutterLine","setHighlightSelectedWord","getHighlightSelectedWord","setAnimatedScroll","shouldAnimate","getAnimatedScroll","getShowInvisibles","setDisplayIndentGuides","getDisplayIndentGuides","setHighlightIndentGuides","setShowPrintMargin","getShowPrintMargin","setPrintMarginColumn","getPrintMarginColumn","setBehavioursEnabled","setWrapBehavioursEnabled","setShowFoldWidgets","getShowFoldWidgets","setFadeFoldWidgets","fade","getFadeFoldWidgets","new_range","setGhostText","removeGhostText","swap","originalRange","$getSelectedRows","getNumberAt","_numberRx","amount","charRange","nr","fp","decimals","nnr","replaceRange","toggleWord","currWordStart","wordParts","curLength","itLength","that","reg","wordPairs","$toggleWordPairs","negate","firstCondition","findLinkAt","columnPosition","previousPosition","wordParts_1","wordParts_1_1","endPoint","totalDiff","rangeIndex","subRows","compositionState","showComposition","setCompositionText","hideComposition","getFirstVisibleRow","getLastVisibleRow","getFirstFullyVisibleRow","getLastFullyVisibleRow","$getVisibleRowCount","getScrollBottomRow","getScrollTopRow","$moveByPage","scrollToRow","animate","alignCursor","getCursorPositionScreen","expand","tokenCount","matchType","bracketType","brackets","tagsRanges","lineNumber","navigateTo","replaced","$tryReplace","replaceAll","getLastSearchOptions","newRange","revealRange","setAutoScrollEditorIntoView","shouldScroll","$scrollAnchor","scrollAnchor","onChangeSelection","onBeforeRender","onAfterRender","$pixelPos","$cursorStyle","cursorLayer","setSmoothBlinking","isBlinking","selectionStyle","highlightSelectedWord","copyWithEmptySelection","behavioursEnabled","wrapBehavioursEnabled","enableAutoIndent","autoScrollEditorIntoView","setShowLineNumbers","$loop","CHANGE_GUTTER","$relativeLineNumbers","relativeNumberRenderer","relativeLineNumbers","$showLineNumbers","$updatePlaceholder","hasValue","$composition","placeholderNode","$placeholder","blurCommand","focusOnEnterKeyup","customScrollbar","hScrollBarAlwaysVisible","vScrollBarAlwaysVisible","highlightGutterLine","animatedScroll","printMarginColumn","printMargin","fadeFoldWidgets","displayIndentGuides","highlightIndentGuides","fontFamily","maxLines","minLines","scrollPastEnd","fixedWidthGutter","hasCssTransforms","maxPixelHeight","useResizeObserver","useSvgGutterIcons","showFoldedAnnotations","getText","lastLineNumber","$renderer","UndoManager","$maxRev","$undoDepth","allowMerge","$lastDelta","$keepRedoStack","$redoStack","lastDeltas","undoStackLength","$undoStack","$rev","rev","markIgnored","getRevision","getDeltas","getChangedRanges","getChangedLines","deltaSet","swapped","swapGroups","rearrangeUndoStack","$redoStackBaseRev","undoSelectionRange","$syncRev","redoStack","deltaSets","moveDeltasByOne","rebaseRedoStack","redoSelectionRange","nextDelta","mark","canUndo","canRedo","bookmark","isAtBookmark","$prettyPrint","stringifyDelta","isClean","markClean","stringifyRange","d1","d2","i1","i2","ds1","ds2","xform","c1","splitDelta","shiftPos","rowsBefore","otherLines","cloneDelta","xformed","Lines","canvasHeight","cellCache","$offsetCoefficient","moveContainer","firstRowScreen","pageChanged","oldConfig","newConfig","computeLineTop","screenTop","screenPage","computeLineHeight","$cacheCell","fragment","insertAdjacentElement","createCell","initElement","Gutter","parentEl","$showFoldWidgets","$updateAnnotations","rowInfo","annoText","annoType","gutterOffset","oldLastRow","$updateCursorRow","onCreateCell","$renderCell","$updateGutterWidth","gutterRenderer","$firstLineNumber","lastLineText","$fixedWidth","$padding","$computePadding","$highlightGutterLine","$cursorRow","updateLineHighlight","scrollLines","$renderLines","textNode","annotationNode","annotationIconNode","breakpoints","decorations","rowText","foldClass","isClosedFold","foldAnnotationClass","annotationInFold","foldRange","getShowLineNumbers","borderRightWidth","Marker","setPadding","setMarkers","markers","$getTop","drawFullLineMarker","drawScreenLineMarker","drawTextMarker","drawMultiLineMarker","childElementCount","lastChild","stringBuilder","extraStyle","curr","lineRange","range1","drawBidiSingleLineMarker","radiusClass","extraLength","Text","$updateEolChar","EOL_CHAR","EOL_CHAR_LF","EOL_CHAR_CRLF","margin","getLineHeight","$fontMetrics","measure","$pollSizeChanges","checkForSizeChanges","$pollSizeChangesTimer","$computeTabString","showSpaces","showTabs","showEOL","$highlightIndentGuides","tabStr","$tabStrings","span","TAB_CHAR","$indentGuideRe","spaceClass","spaceContent","SPACE_CHAR","tabClass","tabContent","lineElements","lineElementsIdx","heightChanged","lineElement","$renderLine","$renderLinesFragment","lineEl","$useLineGroups","$renderToken","valueFragment","simpleSpace","controlCharacter","cjkSpace","cjk","cloneNode","com","$textToken","renderIndentGuide","cols","$highlightIndentGuideMarker","indentLevel","initialIndent","elementIndentLevel","currentIndent","$renderHighlightIndentGuide","$clearActiveIndentGuide","$setIndentGuideActive","$createLineElement","$renderWrappedLine","splitChars","$renderOverflowMessage","$renderSimpleLine","overflowEl","$getFoldLineTokens","lastLineEl","invisibleEl","EOF_CHAR","renderTokens","addTokens","Cursor","isVisible","blinkInterval","smoothBlinking","cursors","addCursor","$updateCursors","$updateOpacity","$startCssAnimation","animationDuration","$isAnimating","$stopCssAnimation","blinking","restartTimer","setBlinkInterval","removeCursor","intervalId","timeoutId","$isSmoothBlinking","blink","onScreen","isCursorInView","pixelPos","$selectionMarkers","cursorIndex","drawCursor","$setOverwrite","MAX_SCROLL_H","Scrollbar","classSuffix","skipEvent","onScroll","coeff","VScrollBar","$scrollbarWidth","$minWidth","setHeight","setScrollHeight","setInnerHeight","HScrollBar","setWidth","setInnerWidth","setScrollWidth","ScrollBar","ScrollBarV","ScrollBarH","VScrollWidth","HScrollHeight","eType","mousePageY","startTop","thumbTop","scrollTopFromThumbTop","thumbHeight","pageHeight","viewHeight","slideHeight","scrollWidth","mousePageX","startLeft","thumbLeft","scrollLeftFromThumbLeft","thumbWidth","viewWidth","slideWidth","RenderLoop","onRender","pending","$recursionLimit","_flush","CHAR_COUNT","USE_OBSERVER","ResizeObserver","FontMetrics","$setMeasureNodeStyles","$measureNode","$addObserver","isRoot","font","$measureSizes","fontWeight","boldSize","charSizes","allowBoldFonts","$observer","observe","setPolling","disconnect","$getZoom","$initTransformMeasureNodes","transformCoordinates","clientPos","elPos","mul","solve","l1","l2","det","sub","m2","ut","u","Decorator","canvas","pixelRatio","heightRatio","canvasWidth","minDecorationHeight","halfMinDecorationHeight","colors","dark","light","$updateDecorators","ctx","clearRect","priorities","compensateFold","compensateFoldRows","currentY","y1","y2","yCenter","fillStyle","fillRect","GutterLayer","MarkerLayer","TextLayer","CursorLayer","HScrollBarCustom","VScrollBarCustom","editorCss","VirtualRenderer","onGutterResize","$markerBack","textLayer","$markerFront","$horizScroll","$vScroll","$scrollAnimation","scrollMargin","updateCharacterSize","$size","scrollerHeight","scrollerWidth","$dirty","$renderChanges","defaultView","CHANGE_FULL","$addResizeObserver","$allowBoldFonts","$updatePrintMargin","onChangeNewLineMode","$changedLines","CHANGE_LINES","CHANGE_TEXT","CHANGE_MARKER","updateFontSize","$updateSizeAsync","resizing","$updateCachedSize","$resizeTimer","$changes","$customScrollbar","$updateCustomScrollbar","$extraHeight","oldSize","CHANGE_SIZE","CHANGE_SCROLL","$showGutter","$computeLayerConfig","availableWidth","$showPrintMargin","$printMarginColumn","$animatedScroll","getShowGutter","setShowGutter","$printMarginEl","containerEl","posTop","setScrollMargin","sm","setMargin","getHScrollBarAlwaysVisible","$hScrollBarAlwaysVisible","setHScrollBarAlwaysVisible","alwaysVisible","getVScrollBarAlwaysVisible","$vScrollBarAlwaysVisible","setVScrollBarAlwaysVisible","$updateScrollBarV","$scrollPastEnd","$updateScrollBarH","freeze","$frozen","unfreeze","CHANGE_H_SCROLL","st","$scrollDecorator","$updateLines","CHANGE_CURSOR","CHANGE_MARKER_FRONT","CHANGE_MARKER_BACK","$autosize","desiredHeight","$maxPixelHeight","$gutterWidth","hideScrollbars","longestLine","$getLongestLine","horizScroll","hScrollChanged","vScrollBefore","vScrollChanged","firstRowHeight","lineCount","charCount","$viewMargin","newLeft","newTop","topMargin","bottomMargin","$stopAnimation","currentTop","currentLeft","twoCharsWidth","$calcSteps","fromValue","toValue","x_min","STEPS","steps","oldSteps","$timer","endAnimation","canvasPos","$hasCssTransforms","$blockCursor","$useTextareaForIME","addToken","removeExtraToken","insertPosition","textLines","$ghostText","$ghostTextWidget","newToken","$themeId","$theme","setMouseCursor","attachToShadowRoot","$resizeObserver","contentRect","workerUrl","Worker","blob","Blob","blobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","getBlob","$workerBlob","blobURL","URL","webkitURL","createObjectURL","WorkerClient","worker","$createWorkerFromOldConfig","$sendDeltaQueue","changeListener","onMessage","callbackId","onmessage","topLevelNamespaces","classname","importScripts","nameToUrl","toUrl","normalizePath","$normalizePath","tlns","deltaQueue","onerror","$doc","cmd","emit","attachToDocument","q","UIWorkerClient","main","emitSync","messageBuffer","workerClient","processNext","setEmitSync","Main","PlaceHolder","others","mainClass","othersClass","$onUpdate","onUpdate","$others","undoStack","$undostack","$undoStackDepth","setup","showOtherMarkers","othersActive","hideOtherMarkers","updateAnchors","lengthDiff","inMainRange","distanceFromStart","newPos","otherPos","updateMarkers","updateMarker","undosRequired","isSamePoint","alt","ctrl","accel","selectionMode","isMultiSelect","mouseX","mouseY","screenAnchor","screenCursor","$enableJumpToDef","$blockSelectEnabled","addSelectionMarker","oldRange","removeSelectionMarker","tmpSel","rectSel","blockSelect","newCursor","removeSelectionMarkers","rectangularRangeBlock","updateSelectionMarkers","onSelectionInterval","selectMoreLines","selectMore","joinSelections","splitIntoLines","alignCursors","multiSelectCommands","getSelectionMarkers","$blockChangeEvents","$onAddRange","$onRemoveRange","mergeOverlappingRanges","lastRange","$initRangeList","toggleBlockSelection","includeEmptyLines","xBackwards","startOffsetX","endOffsetX","docEnd","yBackwards","MultiSelect","$multiselectOnSessionChange","$onMultiSelect","$onSingleSelect","onSessionChange","$checkMultiselectChange","altCursor","altDown","addAltCursorListeners","selectionMarkerCount","markerList","$onMultiSelectExec","inVirtualMode","keepOrder","$byLines","cmdResult","anim","buf","additive","screenLead","toRemove","words","stopAtFirst","sameRowRanges","maxCol","minSpace","spaceOffsets","spaceOffset","lr","guessRange","$reAlignText","forceLeft","startW","textW","endW","isLeftAligned","isRightAligned","alignLeft","enableMultiselect","enableBlockSelect","FoldMode","foldingStartMarker","foldingStopMarker","indentationBlock","startLevel","openingBracketBlock","closingBracketBlock","oldWidget","gutterAnno","comparator","binarySearch","findAnnotations","arrow","onmousedown","Renderer","edit","_id","env","tagName","oldNode","createEditSession","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","transitionalDefaults","Cancel","onCanceled","requestHeaders","responseType","cancelToken","unsubscribe","isFormData","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","baseURL","onloadend","responseHeaders","getAllResponseHeaders","paramsSerializer","responseURL","onabort","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","abort","aborted","Axios","mergeConfig","axios","createInstance","defaultConfig","instanceConfig","CancelToken","isCancel","VERSION","spread","isAxiosError","__CANCEL__","executor","resolvePromise","_listeners","onfulfilled","_resolve","reason","throwIfRequested","InterceptorManager","dispatchRequest","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","responseInterceptorChain","onFulfilled","onRejected","getUri","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","common","adapter","transformResponse","fileName","columnNumber","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","encoder","isString","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","encode","serializedParams","isDate","toISOString","hashmarkIndex","relativeURL","expires","domain","secure","cookie","isNumber","toGMTString","decodeURIComponent","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","pathname","requestURL","parsed","normalizedName","ignoreDuplicateOf","thing","deprecatedWarnings","formatMessage","desc","schema","allowUnknown","ArrayBuffer","isView","pipe","product","assignValue","stripBOM","classNames","argType","deselectCurrent","clipboardToIE11Formatting","debug","reselectPrevious","clip","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","selectNodeContents","copyKey","removeRange","removeAllRanges","targetDraggable","sourceDraggable","getWindow","DRAGGABLE","DRAGSTART_EVENT_NAME","addNamespace","dragEventStart","DRAG_EVENT_NAME","dragEventMove","DRAGEND_EVENT_NAME","dragEventEnd","DRAG_ENTER_EVENT_NAME","dragEventEnter","DRAGEND_LEAVE_EVENT_NAME","dragEventLeave","POINTERDOWN_EVENT_NAME","KEYDOWN_EVENT_NAME","CLONE_CLASS","getMousePosition","ScrollHelper","orientation","_$scrollableAtPointer","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","hasClass","isTargetOverOverlayContent","_trySetScrollable","_scrollSpeed","distanceToBorders","sensitivity","isScrollable","_calculateDistanceToBorders","_calculateScrollSpeed","$area","areaBoundingRect","getBoundingRect","maxSpeed","$scrollable","scrollableInstance","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","scrollableSize","ScrollAnimator","Animator","strategy","callBase","_strategy","_step","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","scrollByStep","DOMComponent","noop","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","_getSourceDraggable","_fireRemoveEvent","Deferred","_getDefaultOptions","onDragMove","onDragCancel","onCancelByEsc","immediate","dragDirection","boundOffset","allowMoveByClick","dragTemplate","scrollSensitivity","_setOptionsByReference","_optionsByReference","_attachEventHandlers","_scrollAnimator","_initScrollTop","_initScrollLeft","_normalizeCursorOffset","splitPair","_getNormalizedCursorOffset","_calculateElementOffset","dragElementOffset","$dragElement","dragElement","isCloned","_dragElementIsCloned","cursorOffset","normalizedCursorOffset","currentLocate","_initialLocate","locate","initialOffset","_initPosition","_startPosition","_startAnimator","inProgress","_stopAnimator","_addWidgetPrefix","componentName","NAME","dasherize","_getItemsSelector","_$content","$wrapper","itemsSelector","checkDropTarget","targetGroup","sourceGroup","_getScrollable","isOutsideScrollable","_getArea","eventsEngine","_pointerDownHandler","_dragStartHandler","_dragEndHandler","_dragEnterHandler","_dragLeaveHandler","_keydownHandler","_$dragElement","_getDragTemplateArgs","getPublicElement","_createDragElement","_getContainer","_getTemplate","toggleClass","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_detachEventHandlers","_getDraggableElement","$sourceElement","_getSourceElement","$items","needSkipEvent","_getAction","_getEventArgs","_isValidElement","dragInProgress","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_hasClonedDraggable","_getScrollableScrollTop","_getScrollableScrollLeft","_getDraggableElementOffset","_setGestureCoverCursor","isFixedPosition","_extends","areaOffset","_getAreaOffset","_getBoundOffset","areaWidth","getOuterWidth","areaHeight","getOuterHeight","elementWidth","elementHeight","startOffset_left","startOffset_top","maxLeftOffset","maxRightOffset","maxTopOffset","maxBottomOffset","positionUtils","quadToObject","viewPort","initialOffsetX","initialOffsetY","initScrollTop","initScrollLeft","_updateScrollable","eventArgs","_getTargetDraggable","allObjects","domAdapter","updateScrollable","toArray","_defaultActionArgs","fromComponent","toComponent","fromData","toData","$itemElement","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","when","fromPromise","_resetDragOptions","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","_resetTargetDraggable","_keydownEscapeHandler","dragCancelEventArgs","_createActionByOption","_getAnonymousTemplateName","_initTemplates","_templateManager","addDefaultTemplates","EmptyTemplate","_render","transclude","anonymousTemplateName","_getTemplateByOption","_optionChanged","currentGroup","_resetSourceDraggable","_dispose","hasWindow","requestID","setAnimationFrameMethods","callOnce","nativeRequest","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","easingName","x1","x2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","polynomBezier","removeEventName","removeEvent","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TransitionAnimationStrategy","initAnimation","transitionProperty","setProps","cleanupWhen","transitionAnimation","finish","_finishTransition","_cleanup","resolveWith","_completeAnimationCallback","rejectWith","duration","_startAnimation","simulatedEndEventTimer","startTime","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","transitionEndEventName","waitForJSCompleteTimer","fx","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","valueOf","draw","animationFrameId","getTranslateCss","delayTimeout","_animationStep","transformString","translateData","parseTranslate","scaleData","rotateData","scale","_calcStepValue","currentDuration","calcValueRecursively","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","baseConfigValidator","animationType","typeMessage","errors","isObjectConfigValidator","positionAliases","SlideAnimationConfigurator","validateConfig","positioningConfig","setupPosition","_setUpConfig","clearCache","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","toOpacity","skipElementInitialStyles","animationConfigurators","slide","slideIn","slideOut","fadeIn","fadeOut","fromScale","toScale","getTranslate","_getCssTransform","isStringConfigValidator","defaultJSConfig","complete","defaultCssConfig","setupAnimationOnElement","configurator","startAnimationOnElement","animation","isStarted","removeData","onElementAnimationComplete","stopAnimationOnElement","startTimeout","scopedRemoveEvent","createAnimation","initialConfig","getAnimationConfigurator","animationStrategies","transition","frame","noAnimation","getAnimationStrategy","subscribeToRemoveEvent","getAnimQueueData","destroyAnimQueueData","isAnimating","shiftFromAnimationQueue","queueData","executeAnimation","animationTypes","writeAnimQueueData","pushInAnimationQueue","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","browser","normalizeAlign","raw","normalizeOffset","pairToObject","getAlignFactor","inverseAlign","calculateOversize","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","defaultPositionResult","calculatePosition","what","$what","currentOffset","normalizeCollision","devices","deviceType","visualViewport","ofRect","getOffsetWithoutScale","hZoomLevel","touch","vZoomLevel","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","setScaleProperty","styleAttr","stylePropIsValid","newStyleValue","styleAttributeNode","setAttributeNode","$startElement","_currentElement$getAt","_style$match","$currentElement","currentElement","resetPosition","targetPosition","calculate","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","isPercentValue","cacheTranslate","elementData","matrix","is3D","finishTransition","originalTransition","stylesConfig","translateString","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","colorString","rgb","hsvToRgb","hslToRgb","_round","Color","baseColor","ii","parseColor","colorIsInvalid","normalize","hsv","H","S","V","toHsvFromRgb","hsl","convertTo01Bounds","maxMinSum","calculateHue","toHslFromRgb","colorComponent","vMin","vInc","vDec","makeColorTint","colorPart","colorTint","hueToRgb","modifyColorTint","isIntegerBetweenMinAndMax","alter","toHex","darken","blend","blendColor","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","Action","_beforeExecute","beforeExecute","_afterExecute","afterExecute","_validatingTargetName","validatingTargetName","excludeValidators","_excludeValidators","handled","argsBag","_validateAction","_executeAction","executors","_executor$validate","_executor$execute","registerExecutor","_len","_key","createValidatorByTargetElement","wrapOverridden","baseProto","prevCallBase","redefine","members","overridden","memberName","argument","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","postCtor","subclassOf","parentClass","baseClass","abstract","copyStatic","destination","classImpl","inheritor","includedCtors","includedPostCtors","clonePrototype","componentClass","isMemberInvoke","memberArgs","memberValue","namespace","publicComponentName","MemorizedCallbacks","defaultCurrency","defaultUseCurrencyAccountingStyle","oDataFilterToLower","serverDecimalSeparator","decimalSeparator","thousandsSeparator","forceIsoDateParsing","wrapActionsBeforeExecute","useLegacyStoreResult","useJQuery","editorStylingMode","useLegacyVisibleIndex","floatingActionButtonConfig","closeIcon","maxSpeedDialActionCount","shading","normalizeToJSONString","exNormalize","deprecatedFields","configMethod","deprecatedField","DevExpress","getNavigator","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","phone","tablet","android","ios","generic","grade","uaParsers","isPhone","isTablet","isDesktop","screen","Devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","_eventsStrategy","EventsStrategy","changed","Callbacks","readyCallbacks","_recalculateOrientation","resizeCallbacks","deviceOrName","_forced","fire","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","tinyHippos","device","realDevice","current","isSimulator","Config","_deviceClasses","_getCssClasses","_isSimulator","isRippleEmulator","deviceName","_fromConfig","_fromUA","sessionStorage","SessionStorage","getItem","shortcuts","$window","fireEvent","_currentWidth","_changeOrientation","viewPortElement","attachCssClasses","changeCallback","prevViewport","detachCssClasses","nativeDOMAdapterStrategy","elementMatches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","_document","createAttribute","isNode","isElementNode","isTextNode","isDocument","isDocumentFragment","removeElement","insertElement","newElement","nextSiblingElement","setProperty","setClass","isAdd","getActiveElement","_element$getRootNode","_element$getRootNode2","getBody","getDocumentElement","getReadyState","getHead","hasDocumentProperty","listen","elementsFromPoint","activeElementHolder","getShadowElementsFromPoint","injector","PostponedOperations","_postponedOperations","postponedPromise","completePromise","getEventName","actionName","Class","_setDeprecatedOptions","_deprecatedOptions","_getDeprecatedOptions","onOptionChanged","onDisposing","defaultOptionsRules","_defaultOptionsRules","_setOptionsByDevice","applyRules","_convertRulesToOptions","convertRulesToOptions","_isInitialOptionValue","_getOptionsByReference","_optionChangedCallbacks","_disposingCallbacks","eventsStrategy","_updateLockCount","postponedOperations","beginUpdate","Options","onChanging","_initialized","_optionChanging","onDeprecated","_logDeprecatedOptionWarning","onChanged","_notifyOptionChanged","onStartChange","onEndChange","endUpdate","onInitializing","_initOptions","_createOptionChangedAction","fireWith","since","_logDeprecatedComponentWarning","_optionChangedAction","_createDisposingAction","_disposingAction","_disposed","_lockUpdate","_unlockUpdate","_isUpdateAllowed","_isInitializingRequired","_initializing","_commitUpdate","callPostponedOperations","_initializeComponent","getAliasesByName","getPathParts","fullName","_cancelOptionChange","initialOption","initial","_defaultActionConfig","_createAction","actionSource","actionValue","optionName","actionFunc","hasEvent","_len2","_key2","beforeActionExecute","wrappedAction","hasActionSubscription","silent","isOptionDeprecated","isDeprecated","_setOptionWithoutOptionChange","_getOptionValue","resetOption","DX_POLYMORPH_WIDGET_TEMPLATE","FunctionTemplate","_ref","widgetName","widgetElement","widgetOptions","_createComponent","TemplateManager","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createElement","defaultCreateElement","_createTemplateIfNeeded","tempTemplate","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","findTemplates","suitableTemplates","suitableTemplatesByName","_ref2","_createTemplate","$anonymousTemplate","contents","isEmptyText","templateSource","cachedTemplate","templateKey","validateTemplateSource","_ref3","isAsyncTemplate","skipTemplates","templateSourceResult","getNormalizedTemplateArgs","acquireTemplate","isRenderer","integrationOptions","watchMethod","skipImmediate","useDeferUpdateForTemplates","elementAttr","_useTemplates","createDefaultOptions","_customClass","attachInstanceToElement","_getSynchronizableOptionsForCreateComponent","_checkFunctionValueDeprecation","_visibilityChanged","_dimensionChanged","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","windowResizeCallbacks","_renderComponent","_initMarkup","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","addShadowDomStyles","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_isCssUpdateRequired","resizeEvent","_isHidden","visibilityEvents","_checkVisibilityChanged","_clean","_modelByElement","modelByElement","_invalidate","_requireRefresh","_refresh","_detachWindowResizeCallback","synchronizableOptions","grep","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","_removeAttributes","attrs","_removeClasses","_updateDOMComponent","renderRequired","cleanDataRecursive","createTemplate","extractTemplates","anonymousTemplate","_saveTemplate","getInstanceByElement","defaultOptions","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","beforeCleanData","afterCleanData","cleanData","nodes","cleanSelf","childElements","setDataStrategy","delete","errorUtils","E0001","E0002","E0003","E0004","E0005","E0006","E0007","E0008","E0009","E0010","E0011","E0012","E0013","E0014","E0015","E0017","E0018","E0020","E0021","E0022","E0023","E0024","E0025","E0100","E0101","E0102","E0103","E0110","E0120","E0121","W0000","W0001","W0002","W0003","W0004","W0005","W0006","W0007","W0008","W0009","W0010","W0011","W0012","W0013","W0014","W0015","W0016","W0017","W0018","_events","_owner","syncStrategy","originalAdd","Guid","_normalize","_generate","memory","cachedGetters","cachedSetters","OptionManager","optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","rulesOptions","toComparable","hasNegation","compileSetter","functionsAsIs","unwrapObservables","valueName","_prepareRelevantNames","compileGetter","normalizeOptions","_name","_setPreparedValue","callBack","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","onRelevantNamesPrepared","_setRelevantNames","_cachedOptions","_rules","_initialOptions","_getByRules","_setByReference","_normalizeName","_setField","_clearField","fieldObject","getFieldName","getParentName","previousFieldName","deprecate","_notifyDeprecated","equalByValue","getNestedOptionValue","_initial","isGetter","aliasName","currentDevice","ruleOptions","deviceFilter","deviceMatch","findBestMatches","optionsObject","createDefaultOptionRules","initRender","repeatMethod","setAttributeValue","attrName","toggle","isTablePart","parseHTML","appendElements","tBodies","setCss","styleProp","normalizeStyleProp","prepend","insertAfter","wrapInner","replaceWith","elementId","queryId","_element$host","getClientRects","not","parentChildNodes","previousSibling","targets","emptyArray","getOffset","offsetParent","marginTop","marginLeft","nodeName","offsetProp","scrollWindow","directionStrategy","getWindowByElement","rendererWrapper","ResizeObserverMock","unobserve","resizeObserverSingleton","ResizeObserverSingleton","_callbacksMap","Map","_observer","_this$_callbacksMap$g","BindableTemplate","fieldsMap","_fields","_fieldsMap","_watchMethod","rawData","fieldsDispose","globalDispose","dataWithRawFields","isPrimitive","resolvedData","missedFields","watchHandlers","fieldGetter","watchChanges","TemplateBase","ChildDefaultTemplate","normalizeTemplateElement","renderedCallbacks","$result","onRendered","renovated","_renderCore","_ensureResultInContainer","resultInContainer","triggerShownEvent","nativeXMLHttpRequest","getXhr","SUCCESS","ERROR","createScript","removeScript","scriptNode","appendToHead","evalScript","getRequestOptions","paramsAlreadyString","paramsConvert","getMethod","getRequestHeaders","defaultContentType","getContentTypeHeader","Accept","scriptAccept","accepts","xml","jsonp","extendFromObject","getAcceptHeader","crossDomain","httpRequest","async","originAnchor","urlAnchor","isCrossDomain","needScriptEvaluation","jsonpCallback","callbackParameter","getJsonpOptions","loadHandler","evalCrossDomainScript","customStatus","setHttpTimeout","getDataFromResponse","postProcess","onprogress","onloadstart","xhrFields","createOccurrenceMap","_map$get","wrapToArray","getUniqueValues","getIntersection","firstArray","secondArray","toRemoveMap","occurrencesCount","removeDuplicates","normalizeIndexes","indexPropName","needIndexCallback","indexedItems","shouldUpdateIndex","orderEach","groupBy","getGroupName","groupedResult","_groupedResult$groupN","getKeyWrapper","getSameNewByOld","oldItem","newItems","newIndexByKey","isKeysEqual","oldKeys","newKeys","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","oldNextIndex","nextOldItem","oldIndex","webkitRegExp","mozillaRegExp","browserFromUA","browserName","browserVersion","webkit","_wrappedHandler","Callback","_list","_firing","_fired","_firingIndexes","_fireCore","firingIndexes","stopOnFalse","unique","queue","fired","executingName","ensureDefined","executeAsync","normalizedContext","task","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","deferRender","deferUpdate","deferRenderer","deferUpdater","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","targetValue","mismatch","valueItem","_raw$x","_raw$y","normalizeKey","denormalizeKey","charCode","preventRound","getKeyHash","keyHash","applyServerDecimalSeparator","asyncNoop","checkFunction","invert","expectedCheck","compareByValue","object2","keys1","keys2","keys2Set","DEFAULT_EQUAL_BY_VALUE_OPTS","maxDepth","value1","value2","comparable1","comparable2","compareOptions","getConsoleMethod","logger","assert","assertParam","unwrapVariable","variableWrapper","isWrapped","assignPropValue","propValue","prepareOptions","functionAsIs","hasDefaultValue","pathPart","combineGetters","getters","compiledGetters","getter","pathItem","ensurePropValueDefined","lastLevelIndex","levelIndex","readPropValue","isPropertyFunc","deepExtendArraySafe","getTime","_options$collatorOpti","collatorOptions","REMOVE_DIACRITICAL_MARKS_REGEXP","timeIntervals","millisecond","second","minute","hour","day","week","month","quarter","year","toMilliseconds","dateUnitIntervals","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","convertDateUnitToMilliseconds","dateUnit","getDateUnitInterval","tickInterval","maxInterval","tickIntervalToFormatMap","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","dateInterval","withCorrection","firstDayOfWeek","firstQuarterMonth","oldDate","setMonth","setDate","getFirstWeekDate","fixTimezoneGap","trimTime","addDateInterval","interval","intervalObject","getDateIntervalByString","years","setFullYear","quarters","months","weeks","days","hours","setTime","minutes","seconds","milliseconds","addInterval","adjust","getLastMonthDay","createDateWithFullYear","intervalString","sameMonthAndYear","date1","date2","sameYear","getFirstDecadeInCentury","getFirstYearInDecade","getDay","getUTCTime","getFirstDateInYear","getLastDateInYear","getDayWeekNumber","normalizeDate","normalizedDate","newDate","trial","getTimezonesDifference","getTimezoneOffset","dateUtils","dateToMilliseconds","getNextDateUnit","withWeeks","getDateFormatByTickInterval","getDatesDifferences","differences","getMilliseconds","setToDayEnd","roundDateByStartDayHour","startDayHour","dateTimeFromDecimal","getSequenceByInterval","cur","intervals","sameHoursAndMinutes","sameDate","sameMonth","sameDecade","startDecadeDate1","startDecadeDate2","sameCentury","startCenturyDate1","startCenturyDate2","getDifferenceInMonth","typeView","difference","getDifferenceInMonthForCells","getShortDateFormat","getViewFirstCellDate","viewType","getViewLastCellDate","getViewDown","getViewUp","getLastMonthDate","getFirstMonthDate","getWeekNumber","firstWeekDayInYear","lastWeekDayInYear","daysInFirstWeek","weekNumber","ms","getDayNumber","normalizeDateByWeek","currentDate","differenceInDays","getDatesInterval","resultDate","dateInRange","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","roundToHour","setMinutes","getViewMinBoundaryDate","getViewMaxBoundaryDate","makeDate","startDate","endDate","intervalUnit","millisecondCount","getDatesOfInterval","view","camelize","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","dateParser","skipISO8601Parsing","getTimePart","timeZoneHour","timeZoneMinute","correctYear","parseISO8601String","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","useUtc","getIso8601Format","serializationFormat","getLDMLFormatter","defaultDateNames","deferredConfig","_DeferredObj","_state","_promise","callbackResult","isDeferred","isPromise","whenFunc","contexts","resolvedCount","updateState","BaseClass","InjectedClass","initialFields","injectFields","injectionObject","inject","resetInjection","resetActiveElement","_activeElement$blur","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","clipboardText","getRootNodeHost","createTextElementHiddenCopy","elementStyles","includePaddings","fontStyle","fontVariant","letterSpacing","isElementInDom","shadowHost","ERROR_URL","baseErrors","ERROR_MESSAGES","makeError","combineMessage","formatDetails","details","getErrorUrl","__id","__details","overrideExistingValues","sourceValue","sourceValueIsArray","isTagName","tagWrappers","tagsCount","startTags","endTags","thead","td","tr","tbody","colgroup","tfoot","th","tags","firstRootTag","tagWrapper","ICON_CLASS","getImageSourceType","getImageContainer","_upperCaseFirst","_chop","upperFirst","humanize","titleize","DIGIT_CHARS","captionize","captionList","isPrevCharNewWord","isNewWord","reverseEach","fitIntoRange","isMinValueUndefined","isMaxValueUndefined","inRange","getExponent","toExponential","multiplyInExponentialForm","exponentShift","exponentialNotation","getExponentialNotation","separatedAdjustedValue","getPrecision","separatedValue","absValue","isExponentValue","isExponential","integerPart","toPrecision","positionOfDelimiter","getRoot","solveCubicEquation","D2","roots","D3","acos","PI","cos","trunc","getRemainderByDivision","dividend","divider","digitsCount","quotient","roundFloatPart","getExponentLength","_valueString$split$","valueString","Clone","isNumberX","isNumberY","assignValueToProperty","assignByReference","extendComplexObject","prevValue","getDefaultAlignment","isRtlEnabled","componentNames","nextAnonymousComponent","getName","generatedName","disposeFn","subscribeReady","windowExists","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","handleResize","changedDimension","setPrevSize","SelectionFilterCreator","selectedItemKeys","isSelectAll","selectedItemKeyHashesMap","getLocalFilter","keyGetter","equalKeys","equalByReference","keyExpr","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","getCombinedFilter","dataSourceFilter","forceCombinedFilter","combinedFilter","keyOf","selectedKeyHashesMap","normalizedKeys","normalizeKeys","keyValue","DX_RULE_PREFIX","ownerDocumentStyleSheet","createConstructedStyleSheet","rootNode","CSSStyleSheet","styleElement","sheet","processRules","targetStyleSheet","styleSheets","needApplyAllStyles","cssRules","insertRule","_rule$selectorText","_rule$cssRules","_rule$cssRules$","_rule$cssRules$$selec","_rule$name","_rule$style","selectorText","_el$getRootNode","currentShadowDomStyleSheet","adoptedStyleSheets","isPositionInElementRectangle","elementQueue","shiftIndex","createQueue","childNode","Node","ELEMENT_NODE","SPECIAL_HEIGHT_VALUES","getSizeByStyles","getElementBoxParams","beforeName","afterName","getElementComputedStyle","_element$ownerDocumen","getCSSProperty","_element$style","boxIndices","dimensionComponents","getComponentThickness","getSize","box","offsetFieldName","currentBox","targetBoxIndex","currentBoxIndex","scrollThickness","boxPart","paddingAndBorder","parseHeight","getContainerHeight","getHeightWithOffset","addOffsetToMaxHeight","addOffsetToMinHeight","getVerticalOffsets","withMargins","boxParams","getVisibleHeight","boundingClientRect","implementationsMap","elementSizeHelper","_len3","_key3","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len11","_key11","elementSize","includeMargin","setOuterWidth","setOuterHeight","getInnerWidth","getInnerHeight","partialName","isOuter","isInner","sizeAdjustment","isBorderBox","boxSizing","getSessionStorage","encodeHtml","encodeRegExp","quad","splitQuad","placeholderReg","searchToken","replacementToken","SPACE_REGEXP","jsPrefixes","cssPrefixes","Webkit","Moz","getStyles","originalName","prefixedProp","stylePropPrefix","cssPrefixesCount","jsPrefix","forEachPrefixes","pxExceptions","setDimensionProperty","styleString","resetStyle","styleList","removeProperty","stylePart","maxTouchPoints","transitionEndEventNames","webkitTransition","MozTransition","OTransition","supportProp","touchEvents","hasWindowProperty","detectTouchEvents","hasProperty","detectPointerEvent","nativeScrolling","isNativeScrollingSupported","HIDDEN_FOR_EXPORT","getSvgMarkup","markup","fixNamespaces","getMarkup","getSvgElement","DOMParser","parseFromString","currentTemplateEngine","templateEngine","templateEngines","getCurrentTemplateEngine","compile","setTemplateEngine","Template","_compiledTemplate","rawTemplates","templatesMap","Errors","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","defaultTemplates","integrationTemplate","acquireIntegrationTemplate","typeOfObject","isBoolean","isEvent","dependencyInjector","isWritableWrapped","maxLevel","normalizeArg","xItem","yItem","ready","$originalViewPort","$current","isNewViewportFound","prevViewPort","originalViewPort","hasWindowValue","windowObject","defaultScreenFactorFunc","getCurrentScreenFactor","screenFactorCallback","queryByOptions","storeHelper","storeImpl","Store","_langParams","_errorHandler","errorHandler","_useDefaultSearch","_clearCache","_customLoadOptions","_keyGetter","_requireKey","_withLock","_loadImpl","createQuery","enumerate","processRequestResultLock","totalCount","_totalCountImpl","extraOptions","_addFailHandlers","_byKeyImpl","_insertImpl","callbackValues","callbackKey","_updateImpl","beforePushArgs","waitFor","_pushImpl","_removeImpl","handleError","registerClass","Iterator","countable","ArrayIterator","WrappedIterator","MapIterator","hasNext","SortIterator","langParams","_wrap","thenBy","sortedIter","_ensureSorted","_compare","_unwrap","wrappedItem","_getDefaultCompare","xValue","yValue","Collator","defaultCompare","xIndex","yIndex","rulesCount","compareResult","compileCriteria","_toComparable","toLocaleString","compileEquals","crit","isGroupCriterion","ops","isConjunctiveOperator","isConjunctiveNextOperator","isConjunctiveOperatorChecker","isUnaryOperation","normalizeBinaryCriterion","operatorFn","getterValue","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","SelectIterator","SliceIterator","arrayQueryImpl","queryOptions","handleDataError","aggregateCore","aggregator","finalize","accumulator","seed","standardAggregate","aggregators","chainQuery","selectProp","setLangParams","sortBy","sum","avg","initialArray","Query","indexByKey","rejectedPromise","trivialPromise","applyBatch","keyInfo","findItems","collapsedItems","setDataByKeyMapValue","_dataByKeyMap","_dataByKeyMapLength","cloneInstanceWithChangedPaths","clonedInstances","instanceWithoutPrototype","createObjectWithChanges","useInsertIndex","immutable","disableCache","logError","skipCopying","resultItems","dataByKeyMap","arrayLength","generateDataByKeyMap","getErrorResult","isBatch","errorCode","keyOrKeys","hasKey","keysEqual","getCacheValue","getHasKeyCacheValue","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","pendingDeferred","errorMessageFromXhr","promiseArguments","getResponseHeader","errorMessageFromXhrUtility","XHR_ERROR_UNLOAD","invokeUserLoad","userResult","userFunc","_loadFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","runRawLoadWithQuery","countOnly","userData","itemsQuery","totalCountQuery","rawDataQuery","arrayQuery","waitList","asyncResult","requireTotalCount","useDefaultSearch","loadMode","_loadMode","cacheRawData","_totalCountFunc","_byKeyFunc","_insertFunc","_updateFunc","_removeFunc","clearRawDataCache","invokeUserTotalCountFunc","extra","_byKeyViaLoad","runRawLoadWithKey","invokeUserByKeyFunc","serverResponse","discardPendingTasks","_tasks","_busy","removeTaskCallback","busy","OperationManager","_counter","_deferreds","operationId","CANCELED_TOKEN","_options$reshapeOnPus","normalizeDataSourceOptions","_store","_changedTime","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","throttleChanges","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","_pageIndex","pageIndex","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","searchOperation","_searchExpr","_paginate","_reshapeOnPush","reshapeOnPush","_operationManager","_items","_userData","_totalCount","_isLastPage","_this$_delayedLoadTas","_delayedLoadTask","cancelAll","customNames","loadOptions","newIndex","isLastPage","generateStoreLoadOptionAccessor","normalizedArgs","normalizeStoreLoadOptionAccessorArguments","newFilter","argc","_this$_store","isLoaded","beginLoading","_changeLoadingCount","endLoading","increment","oldLoading","newLoading","_scheduleLoadCallbacks","_scheduleFailCallbacks","_fireChanged","_scheduleChangedCallbacks","loadSingle","_createStoreLoadOptions","refresh","isEmptyArray","_applyMapFunction","loadTask","_loadFromStore","loadOperation","_createLoadOperation","changingArgs","groupLevel","dataSourceChanges","postProcessChanges","storeLoadOptions","reload","_addSearchOptions","_addSearchFilter","searchFilter","handleSuccess","loadResult","normalizeLoadResult","_processStoreLoadResult","resolvePendingDeferred","_applyPostProcessFunction","mapDataRespectingGrouping","_excluded","originalArguments","mapGroup","restItem","_objectWithoutPropertiesLoose","mapRecursive","groupInfo","normalizeSortingInfo","createCustomStoreFromUrl","normalizationOptions","ajaxUtils","fromUrlLoadMode","storeConfig","createCustomStoreFromLoadFunc","createStoreFromConfig","coreErrors","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","remoteQueryImpl","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","queryAdapters","optimize","unmergedTasks","clientChain","query","queryImpl","remote","impl","multiLevelGroup","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","_query$setLangParams","_query","keepInitialKeyOrder","unloading","textStatusMessages","parsererror","lockDeferred","obtain","release","key1","key2","throttled","DataControllerMock","loadFromStore","loadNextPage","addSearchFilter","resetDataSourcePageIndex","applyMapFunction","getDataSource","DataController","_dataSource","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","_disposeDataSource","_refreshDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_initDataController","_this$option","dataController","_dataController","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","_isDataSourceLoading","nodesByEvent","delegateTarget","CLICK_EVENT_NAME","prevented","lastFiredEvent","onNodeRemove","eventAlreadyFired","DXCLICK_FIRED","subscribeNodesDisposing","ClickEmitter","Emitter","blurPrevented","isDefaultPrevented","registerEmitter","emitter","bubble","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","holdEvent","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","isMouseEvent","_fireContextMenu","teardown","registerEvent","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","FeedbackEvent","_fire","_schedule","_timer","FeedbackEmitter","_active","_inactive","configure","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_cancel","_initEvents","_getEmitterTarget","deferFeedback","_fireEvent","skipTimers","lockInactive","_cancelCallback","_acceptCallback","isDxMouseWheelEvent","validatePointers","hasTouches","allowInterruptionByMouseWheel","addCancelCallback","removeCancelCallback","addAcceptCallback","removeAcceptCallback","_accept","_requestAccept","_acceptRequestEvent","_forgetAccept","eventData","delegateSelector","MANAGER_EVENT","EMITTER_DATA","eventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerMoveHandler","_pointerUpHandler","wheelEventName","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","emitterIndex","_allowInterruptionByMouseWheel","pointers","_adjustWheelEvent","allowInterruption","closestGestureEmitter","gesture","getDirection","verticalGestureDirection","isActive","EMITTER_SUBSCRIPTION_DATA","emitterConfig","emitterClass","emitterName","emitterEvents","noBubble","handleObj","disposeEmitter","eventObject","bindType","delegateType","touchPropsToHook","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","matchesSafe","elementDataMap","special","specialData","registerEventCallbacks","getField","callMethod","getHandler","normalizeOnArguments","iterate","getHandlersController","one","oneTimeHandler","normalizeTriggerArguments","extraParameters","handlersController","callHandlers","isPropagationStopped","getParents","_element$parentNode","nativeMethodName","localName","callNativeMethod","triggerHandler","applyForEach","itemArgs","passiveEventHandlersSupported","isSupported","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","eventNameParts","namespaces","eventNameIsDefined","handleObjects","nativeHandler","callHandler","secondaryTargetIsInside","handlerArgs","handleObject","wrappedHandler","nativeListenerOptions","subscribeName","shouldAddNativeListener","removeByEventName","removedHandler","isSubset","forceStop","handleCallback","isImmediatePropagationStopped","checked","iterateEventNames","calculateWhich","initEvent","EventClass","addProperty","hook","eventInstance","_propagationStopped","_immediatePropagationStopped","_defaultPrevented","stopImmediatePropagation","normalizeEventArguments","_src$view","isTrusted","changedTouches","touchPropHook","hookTouchProps","beforeSetStrategy","afterSetStrategy","engine","subscribeGlobal","offArgs","COMPOSITION_START_EVENT","NAMESPACE","createKeyDownOptions","keyName","normalizeKeyName","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","focusTarget","_focusTarget","_processFunction","focusTargets","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","_toggleProcessingWithContext","toggleProcessing","EVENT_NAME","EVENT_NAMESPACE","wheel","_wheelHandler","deltaZ","_normalizeDelta","pointerType","DBLCLICK_EVENT_NAME","NAMESPACED_CLICK_EVENT","clickEventName","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","timeBetweenClicks","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","updateEventsCounter","eventsCount","DragEmitter","GestureEmitter","_initEvent","_start","_maxLeftOffset","_maxRightOffset","_maxTopOffset","_maxBottomOffset","targetElements","dropTargets","_dropTargets","iteratorUtils","eData","dragOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_startEventData","_fitOffset","minOffset","maxOffset","_findDropTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemDelegatedTargets","delegatedTarget","$delegatedTarget","_checkDropTarget","getItemConfig","activeTarget","$prevTarget","dropTargetConfig","itemPositionFunc","targetSize","itemSizeFunc","getItemSize","_end","TOUCH_BOUNDARY","setGestureCover","$cover","_stage","_toggleGestureCover","_needSkipEvent","_startEvent","createEvent","_setupImmediateTimer","_this$immediateTimeou","_immediateTimer","_immediateAccepted","immediateTimeout","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","touchBoundary","_getTouchBoundary","eventDelta","horizontalMove","_validateMove","verticalMove","mainAxis","crossAxis","_toggleGestureCoverImpl","gestureCoverStrategy","gestureCover","isTouchEvent","_stop","initialTouchBoundary","newBoundary","SCROLL_EVENT","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_locked","_proxiedScroll","check","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","isIos","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","scrollTarget","skipCheck","isNative","_prevEventData","isScrollingEvent","_savedEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","DX_SWIPEABLE","ACTION_TO_EVENT_MAP","onStart","swipeEventStart","onUpdated","swipeEventSwipe","onEnd","swipeEventEnd","onCancel","Swipeable","elastic","_createEventData","_eventData","HOLD_EVENT_NAME","HoldEmitter","_startTimer","holdTimeout","_holdTimer","_touchWasMoved","_stopTimer","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","_eventName","HoverStart","HoverEnd","POINTER_EVENTS_NAMESPACE","originalEvents","_originalEvents","_isNoBubble","_originalEvent$target","_getDelegateTarget","eventSource","shadowRoot","_originalEvent$path","_originalEvent$compos","composedPath","_setSelector","_selector","_getSelector","normalizeTouchEvent","pointerId","identifier","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","BaseStrategy","_pointerId","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","observer","addEventsListener","eventMap","pointerEquals","onPointerAdding","getPointerIndex","pointer","removePointer","normalizeMouseEvent","activated","activateStrategy","Observer","MouseStrategy","activate","resetObserver","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","EventStrategy","support","getStrategy","leave","over","out","eventPropName","pureAddNamespace","executeAction","inactive","showTimeout","hideTimeout","hover","shown","hiding","_ref4","_ref5","focusIn","focusOut","_ref6","_ref7","dxClick","keyboardProcessors","keyboard","listenerId","_getProcessor","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","STRATEGIES","defaultItemSizeFunc","getBounds","calcOffsetRatio","_itemSizeFunc","isFastSwipe","endEventData","FAST_SWIPE_SPEED_LIMIT","_tickData","SwipeEmitter","TICK_INTERVAL","_getStrategy","_defaultItemSizeFunc","moveEventData","cancelable","offsetRatio","isFast","startOffset","targetOffset","_calcTargetOffset","DX_PREFIX","START_POSTFIX","UPDATE_POSTFIX","END_POSTFIX","eventAliases","addAlias","deltaScale","rotation","deltaRotation","translation","deltaTranslation","getEventVector","centerX","centerY","getDistance","vector","getScale","firstVector","secondVector","getRotation","scalarProduct","distanceProduct","mathSign","getTranslation","TransformEmitter","startVector","_startVector","_prevVector","_fireEventAliases","currentVector","eventPostfix","eventAlias","exportNames","transformstart","transformend","translatestart","translateend","zoomstart","zoomend","pinchstart","pinch","pinchend","rotatestart","rotate","rotateend","KEY_MAP","backspace","pageup","pagedown","arrowleft","arrowup","arrowright","arrowdown","LEGACY_KEY_CODES","EVENT_SOURCES_REGEX","mouse","fixMethod","isDxEvent","isNativeTouchEvent","isPointerEvent","isNativeMouseEvent","isKeyboardEvent","isFakeClickEvent","screenX","skipEvents","forceSkipEvents","stopEventsSkipping","isContentEditable","hasAttribute","touchInEditable","setEventFixMethod","copyEvent","normalizedKey","normalizedKeyFromWhich","getChar","mappedAddNamespace","isCommandKeyPressed","triggerVisibilityChangeEvent","changeHandlers","triggerHidingEvent","triggerResizeEvent","getClosestNodeWithContext","getClosestNodeWithKoCreation","dxKoCreation","KoTemplate","_registerKoTemplate","containerContext","parentContext","getParentContext","_prepareDataForContainer","afterRender","currentCount","lockName","LOCKS_DATA_KEY","editorsBindingHandlers","registerComponentCallbacks","isBindingPropertyPredicate","optionChangedCallbacks","knockoutConfig","knockout","isBindingPropertyPredicateName","ctorOptions","_model$onInitializing","unwrapModel","skipCallback","watcher","optionNameToModelMap","applyModelValueToOption","locks","optionValue","handleOptionChanged","unwrapModelValue","unwrappedPropertyValue","Widget","VizWidget","ComponentWrapper","ScrollView","registerComponentKoBinding","eventRegistratorCallbacks","koBindingEventName","unwrappedValue","iconElement","VALIDATION_STATUS_VALID","VALIDATION_STATUS_PENDING","koDxValidator","validationError","validationErrors","validationStatus","_validationInfo","_updateValidationResult","currentResult","ValidationEngine","_applyValidationResult","pendingRules","dxValidator","brokenRules","variable","originalKOCleanExternalData","cleanedByJquery","cleanedByKo","compareVersion","jQuery","cleanKoData","andSelf","cleanNode","originalEmpty","originalRemove","keepData","subject","originalHtml","originalReplaceWith","patchCleanData","core","formatNumber","parseNumber","disableIntl","nb","nn","parentLocales","parentLocale","DEFAULT_LOCALE","currentLocale","getValueByClosestLocale","isRootLocale","getParentLocale","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","getOpenXmlCurrencyFormat","agq","ak","asa","ast","az","bas","be","bem","bez","bg","bm","br","bs","ca","ce","cgg","cs","cy","da","de","dje","dsb","dua","dyo","ee","eo","es","et","eu","ewo","fa","ff","fi","fo","fur","fy","ga","gd","gl","gsw","gv","ha","hr","hsb","hu","hy","ia","ig","it","jgo","jmc","ka","kab","kde","kea","khq","kk","kkj","kl","ksb","ksf","ksh","ku","kw","ky","lag","lb","lg","ln","lrc","lt","lu","lv","mfe","mg","mgo","mi","mk","mn","mua","mzn","naq","nds","nmg","nnh","no","nus","nyn","pcm","ps","rm","rn","ro","rof","ru","rw","rwk","sah","sbp","se","ses","sg","shi","si","sk","sl","smn","so","sq","sv","sw","teo","tg","tk","tt","twq","tzm","uk","uz","vai","vi","vun","wae","wo","xog","yav","yi","yo","zgh","SYMBOLS_TO_REMOVE_REGEX","NARROW_NO_BREAK_SPACE_REGEX","getIntlFormatter","timeZoneName","recognizableAsTwentyCentury","temporaryYearValue","utcDate","formatDateTime","timeZone","formattersCache","localizationCoreUtils","DateTimeFormat","getFormatter","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","removeLeadingZeroes","normalizeMonth","intlFormats","dayofweek","weekday","longdate","longdatelongtime","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","getIntlFormat","monthNameStrategies","standalone","monthIndex","monthFormat","getMonthNames","wide","abbreviated","getDayNames","dayIndex","getPeriodNames","hour12Formatter","hour12","hourNumberText","timeParts","_format","formatter","intlFormat","formatType","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","_generateDateArgs","constructValidDate","ampmShift","actual","parsedDate","hoursShift","formatPart","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","possiblePartPatterns","dateLocalization","_getPatternByFormat","_expandPattern","partName","possiblePatterns","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","numberLocalization","getLDMLDateFormatter","ldmlFormat","getLDMLDateFormat","getLDMLDateParser","firstDayOfWeekIndex","localizationCore","firstDayOfWeekData","intlDateLocalization","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","FORMAT_SEPARATORS","checkDigit","zeroCode","checkPatternContinue","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","formatValue","ESCAPE_CHARS_REGEXP","getFormat","processedIndexes","patternPositions","replacedPatterns","datePatterns","patternsFilter","getDifference","indexes","patternIndex","letterCount","baseCharIndex","replaceCharsCore","replaceChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","escapeChars","leftPad","FORMAT_TYPES","LDML_FORMATTERS","M","Q","E","period","timezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","X","Z","charIndex","isCurrentCharEqualsNext","isEscaping","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","timeSeparator","caseInsensitiveIndexOf","monthPatternParser","monthNames","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","regexpPart","isPossibleForParsingFormat","regexp","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","getPatternSetters","getParser","regExpInfo","regExpResult","formatPatterns","maxPatternIndex","getMaxOrderedPatternIndex","orderedFormatPatterns","otherPatterns","getOrderedFormatPatterns","regExpPattern","regExpText","patternChar","partSetter","partParser","setPatternPart","setterName","setPatternPartFromNow","DEFAULT_CONFIG","reverseString","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","formatNumberPart","escapeIndex","isEscape","signFormatParts","signParts","getSignParts","isPositive","floatPointIndex","getFloatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","isPercentFormat","formatString","minIntegerPrecision","maxIntegerPrecision","unlimitedIntegerDigits","integerLength","floatPrecision","groupSizes","singleQuotesLeft","valueParts","valueIntegerPart","valueFloatPart","groupSize","applyGroups","integerString","floatString","parseValue","isPercent","prepareValueText","valueText","isIntegerPart","nextText","nextValueText","hasGroups","getFormatByValueText","valueTextParts","decimalSeparatorIndex","positiveFormat","negativeFormat","baseDictionary","en","Yes","No","Close","Clear","Done","Loading","Select","Back","OK","newMessages","messageLocalization","_dictionary","_localizablePrefix","localizablePrefix","localizeString","escapeString","localizationKey","defaultResult","getMessagesByLocales","getDictionary","onlyNew","coreLocalization","_getFormatterBase","getDataByLocale","stringFormat","af","am","as","bn","bo","brx","ccp","ceb","dav","doi","dz","ebu","fil","gu","guz","haw","he","ja","jv","kam","kgp","ki","kln","km","kn","kok","ks","lkt","luo","luy","mai","mas","mer","mgh","ml","mni","mr","mt","nd","ne","om","or","pa","pt","qu","sa","saq","sat","sd","seh","sn","su","ta","te","ti","ug","und","ur","xh","yrl","yue","zh","zu","CURRENCY_STYLES","detectCurrencySymbolRegex","_normalizeFormatConfig","fractionDigits","_getPrecisionConfig","_formatConfig$useCurr","useAccountingStyle","useCurrencyAccountingStyle","dxConfig","_normalizeFormat","_getCurrencySymbolInfo","getCurrencyFormatter","_extractCurrencySymbolInfo","currencyValueString","targetCurrency","currencySymbol","accountingFormat","encodedCurrencySymbol","encodeSymbols","openXmlCurrencyFormat","accountingFormats","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","largenumber","thousands","millions","billions","trillions","numericFormats","defaultLargeNumberFormatPostfixes","_parseNumberFormatString","formatObject","formatList","power","_calculateNumberPower","minPower","maxPower","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","powString","_addZeroes","multiplier","_addGroupSeparators","_getSeparators","getDecimalSeparator","getThousandsSeparator","convertDigits","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","getNegativeEtalonRegExp","separators","digitalRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","cleanedText","_calcSignificantDigits","fractional","calcDigitsAfterLeadingZeros","currencyLocalization","intlNumberLocalization","adjustValue","precisionMultiplier","roundByAbs","valuePrecision","adjustedValue","ConfigContext","onPreRender","nextNode","mountNode","shallowEquals","revertMutation","addedNodes","TemplateWrapper","cleanParent","MutationObserver","childList","subtree","mutations","takeRecords","recordMutations","_props$model","rendered","buildTemplateContent","nextModel","nextTemplate","equalityComparer","nextData","cloneObjectValue","cloneObjectProp","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","_shouldRaiseContentReady","validateKeyDownHandler","allowNull","twoWay","hasComponentDefaultKeyHandlers","getSupportedKeyNames","hasComponentKeyDownMethod","_viewComponent","keyDown","_this$_viewRef","_viewRef","contentReadyOptions","_getContentReadyOptions","_checkContentReadyOption","_actionsMap","viewDefaultProps","_getViewComponentDefaultProps","_propsInfo","defaultName","unwrappedProps","_this$_templateManage","getDefaultTemplates","optionProxy","_getUnwrappedOption","_props","_optionsWithDefaultTemplates","_componentTemplates","_createTemplateComponent","_getActionConfigsFull","_addAction","createRef","defaultKeyHandlers","_createDefaultKeyHandlers","getProps","_renderWrapper","containerNode","_isNodeReplaced","_fireContentReady","_removeWidget","_elementAttr","_attributes$attr$name","specified","updatedAttributes","isDomAttr","_storedClasses","elemStyle","getPropertyValue","defaultWidgetPropsKeys","onKeyboardHandled","widgetProps","event_options","_getAdditionalProps","_patchElementParam","_this$elementAttr$cla","_elementAttr$class","_patchOptionValues","_extractDefaultSlot","aria","_aria","prepareStyleProp","_getActionConfigs","_getAdditionalActionConfigs","_templatesInfo","_options$templateName","templateValue","customKeyHandlers","viewRef","actionToAdd","actionByOption","actArgs","templateOption","_model$data","buildTemplateArgs","initialHandler","defaultProps","IS_RENOVATED_WIDGET","BaseWidgetProps","activeStateEnabled","focusStateEnabled","hoverStateEnabled","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","resultPaths","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","_excluded2","normalizeProps","DomComponentWrapper","widgetRef","infernoCreateRef","setupWidget","updateWidget","componentProps","templateNames","_this$_effects$","componentType","updatedOptions","getUpdatedOptions","prevProps","_this$config","normalizedProps","valueChange","restProps","isRenovated","_this$props","restAttributes","createVNode","viewFunction","ConfigProvider","__getterCache","WidgetProps","getOwnPropertyDescriptors","_feedbackHideTimeout","_feedbackShowTimeout","addWidgetClass","widgetElementRef","hovered","setRootElementRef","activeEffect","inactiveEffect","clickEffect","deactivate","focusInEffect","focusOutEffect","hoverStartEffect","hoverEndEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onActive","onInactive","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","_this$_effects$11","_this$_effects$12","_this$_effects$13","onRootElementRendered","rootElementRef","subscribeToDxActiveEvent","__state_argument","subscribeToDxInactiveEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","rtlProp","isPropDefined","onlyGlobalDefined","globalConfig","resolveRtlEnabledDefinition","accessKey","computedWidth","computedHeight","isFocusable","isHoverable","canBeActive","classesMap","combineClasses","shouldRenderConfigProvider","createComponentVNode","ValidationMessageProps","positionSide","isReactComponentWrapper","ValidationMessage","LegacyValidationMessage","EditorProps","validationMessageMode","validationMessagePosition","EditorPropsType","validationMessageGuid","isValidationMessageVisible","updateValidationMessageVisibility","shouldShowValidationMessage","getCssClasses","_this$validationError","readonly","invalid","describedBy","allValidationErrors","_this$rootElementRef","_this$props$value","validationMessageTarget","visualContainer","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","DIRECTION_BOTH","SCROLLABLE_CONTENT_CLASS","getRelativeOffset","targetElementClass","sourceElement","elementRect","parentElementRect","ScrollDirection","_window$getComputedSt","subscribeToEvent","subscribeToClickEvent","clickEvent","scrollEvents","toNumber","attribute","BOX_ITEM_DATA_KEY","MINSIZE_MAP","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","styleExpr","BoxItem","fireItemStateChangedAction","oldState","CollectionWidgetItem","LayoutStrategy","_option","justifyContent","_normalizedAlign","alignItems","_normalizedCrossAlign","crossAlign","flexPropPrefix","$item","maxSize","minSize","baseSize","ratio","shrink","itemContent","flexBasis","flexDirection","Box","onItemStateChanged","_itemContainer","_itemSelector","_initLayout","_initBoxQueue","_layout","renderBox","_renderAlign","_renderActions","_onItemStateChanged","renderAlign","renderCrossAlign","_queueIsNotEmpty","_shiftItemFromQueue","itemHoldTimeout","onItemHold","onItemClick","onItemContextMenu","onItemRendered","renderItems","_itemElements","$itemNode","_renderItemContentByNode","boxConfig","_pushItemToQueue","CollectionWidget","ItemClass","ButtonWrapper","_findGroup","_clickAction","validationGroup","_validationGroupConfig","needValidate","submitInput","_getSubmitAction","_createClickAction","$template","_templateData","Icon","generalClasses","sourceType","TemplateProp","IconTemplate","InkRippleProps","InkRipple","hideWave","showWave","getConfig","initConfig","stylingModes","ButtonProps","iconPosition","useInkRipple","useSubmitBehavior","defaultOptionRules","isMaterial","Button","contentRef","inkRippleRef","submitInputRef","submitEffect","onWidgetClick","onSubmit","_titleRegexp$exec$","_titleRegexp$exec","isValidStylingMode","inkRippleConfig","isCentered","useHoldAnimation","waveSizeCoefficient","ButtonTemplate","renderText","isIconLeft","iconComponent","iconSource","buttonTemplateData","__defaultOptionRules","_wrapKeyDownHandler","_this$viewRef","_this$viewRef2","_this$viewRef3","ButtonComponent","BaseComponent","Navigator","onCaptionClick","_initActions","_captionClickAction","_renderButtons","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","captionText","$caption","buttonPrefix","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CELL_IN_RANGE_CLASS","CALENDAR_CELL_RANGE_HOVER_CLASS","CALENDAR_CELL_RANGE_HOVER_START_CLASS","CALENDAR_CELL_RANGE_HOVER_END_CLASS","CALENDAR_RANGE_START_DATE_CLASS","CALENDAR_RANGE_END_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","NOT_WEEK_CELL_SELECTOR","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DXHOVERSTART_EVENT_NAME","hoverStartEventName","CALENDAR_DATE_VALUE_KEY","_getViewName","cellTemplate","disabledDates","onCellClick","onCellHover","colCount","allowValueSelection","_todayDate","_renderImpl","_createTable","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderValue","_renderRange","_renderEvents","_$table","localizedWidgetName","localizedHotKeysInfo","setAria","$body","rowData","cellDate","_getFirstCellData","prevCellDate","rowIndex","_createRow","colIndex","_renderCell","_renderWeekNumberCell","_createCell","cellIndex","$cell","_getClassNameByDate","dateSerialization","coreDateUtils","getCellAriaLabel","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","_isStartDayOfMonth","_isEndDayOfMonth","isDateCell","_createCellClickAction","_cellClickAction","_createCellHoverAction","_cellHoverAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_updateSelectedClass","_this$_$selectedCells","_$selectedCells","_this$_$rangeCells","_this$_$hoveredRangeC","_this$_$rangeStartHov","_this$_$rangeEndHover","_this$_$rangeStartDat","_this$_$rangeEndDateC","_this$_$rangeStartDat2","_this$_$rangeEndDateC2","_$rangeCells","_$hoveredRangeCells","_$rangeStartHoverCell","_$rangeEndHoverCell","_$rangeStartDateCell","_$rangeEndDateCell","_renderHoveredRange","_this$_$hoveredRangeC2","_this$_$rangeStartHov2","_this$_$rangeEndHover2","_this$_$rangeStartHov3","_this$_$rangeEndHover3","hoveredRange","_getFirstAvailableDate","isBoundary","BaseView","_renderHeader","_renderFocusTarget","$headerRow","$header","_renderHeaderCell","_renderWeekHeaderCell","_getDayCaption","fullCaption","full","abbrCaption","abbr","$weekNumberHeaderCell","showWeekNumbers","_getWeekNumber","weekNumberRule","getNavigatorCaption","today","minDate","maxDate","firstDay","firstMonthDayOffset","daysInWeek","foundDate","decade","firstYearInDecade","_isValueOnCurrentView","century","minDecade","maxDecade","firstDecadeInCentury","CalendarSelectionStrategy","calendar","_dateOption","_dateValue","_skipNavigate","_updateAriaSelected","_updateAriaId","_previousValue","_convertToDate","_updateViewsValue","updateAriaSelected","_currentDateChanged","_initCurrentDate","dates","_isMaxZoomLevel","_updateViewsOption","CalendarSingleSelectionStrategy","dateOption","selectedValue","skipNavigate","dateValue","CalendarMultiSelectionStrategy","alreadySelectedIndex","toDateString","_updateCurrentDate","_getLowestDateInArray","DAY_INTERVAL","RANGE_OFFSET","CalendarRangeSelectionStrategy","_getValues","_getDaysInRange","_cellHoverHandler","_valueSelected","_getRange","_allowChangeSelectionOrder","_currentSelection","rangeStartDate","rangeEndDate","isMaxZoomLevel","ANIMATION_DURATION_SHOW_VIEW","CALENDAR_DXHOVEREND_EVENT_NAME","hoverEndEventName","LEVEL_COMPARE_MAP","ZOOM_LEVEL","SELECTION_STRATEGIES","SingleSelection","MultiSelection","RangeSelection","Calendar","_activeStateUnit","dateSerializationFormat","viewsCount","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_supportedKeys","rightArrow","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","leftArrow","upArrow","_navigateUp","_view","downArrow","_navigateDown","_moveToClosestAvailableDate","pageUp","pageDown","_enterKeyHandler","_updateTimeComponent","_selectionStrategy","selectValue","_getSerializationFormat","cellElement","_saveValueChangeEvent","serializedValue","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","_areDatesInSameView","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_initSelectionStrategy","_correctZoomLevel","strategyName","_getSelectionStrategyName","_refreshSelectionStrategy","_this$_getNormalizedD","_getNormalizedDate","getDefaultCurrentDate","_getDate","_onContouredChanged","_$viewsWrapper","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_additionalView","_refreshViews","_setViewContoured","_renderNavigator","_navigate","_isAdditionalViewDate","_getActiveView","_this$_additionalView","_rangeMin","_rangeMax","zoomCorrection","_getMonthsOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","lastDay","_renderSubmitElement","_renderViews","_renderSwipeable","_renderFooter","_getKeyboardListeners","CALENDAR_VIEW_CLASS","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","Views","$view","_viewConfig","_this$option2","_injectComponent","getViewOptions","_cellClickHandler","_moveViewElement","coefficient","_getViewPosition","nextView","setSeconds","setMilliseconds","newCurrentDate","_animateShowView","_navigatorConfig","_getViewsCaption","_updateButtonsVisibility","_navigatorClickHandler","additionalViewActive","_isMinZoomLevel","toggleButton","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","_toggleGestureCoverCursor","_getRequiredView","_updateNavigatorCaption","moveOffset","shouldDoubleOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","additionalView","isMultiView","additionalViewCaption","$todayButton","_toTodayView","_$footer","_$submitElement","_setSubmitValue","_getSubmitElement","_popAnimationView","newView","endPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","_this$viewToRemoveKey","viewOffset","viewToCreateKey","viewToRemoveKey","viewBeforeCreateKey","viewAfterRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_resetActiveState","_focusInHandler","_focusOutHandler","_this$_additionalView2","_this$_additionalView3","_this$_beforeView","_this$_afterView","_setViewsMinOption","_restoreViewsMinMaxOptions","_setViewsMaxOption","ariaId","$newCell","_suppressingNavigation","processValueChanged","_raiseValueChangeAction","getContouredDate","INVALID_MESSAGE_AUTO","VALIDATION_TARGET","$validationMessageWrapper","_el$getRootNode2","querySelectorInSameDocument","showValidationMessageTimeout","saveValueChangeEvent","_valueChangeEventInstance","validationRequest","_valueChangeAction","validationMessageOffset","validationTooltipOptions","innerWidget","optionsContainer","innerWidgetOptions","syncOptions","_silent","areValuesEmpty","_this$_valueChangeAct","_raiseValidation","prevIsEditor","OldEditor","newIsEditor","isEditor","CheckBox","defaultIconSizes","defaultFontSizes","getThemeType","isMaterialTheme","isCompactTheme","isCompact","getFontSizeByIconSize","iconSize","isChecked","defaultFontSize","getDefaultFontSize","fontToIconSizeRatio","getDefaultIconSize","CheckBoxIcon","elementRef","setIconFontSize","getIconSize","getComputedIconSize","newFontSize","iconComputedStyle","cssStyles","CheckBoxProps","enableThreeStateBehavior","CheckBoxPropsType","editorRef","__newValue","_newValue","CheckBoxComponent","twoWayProps","__processTwoWayProps","CollectionItem","_rawData","_watchers","_renderWatchers","_startWatcher","_renderDisabled","_renderVisible","exprGetter","filteredCallback","forcibleWatcher","_dirty","setDataField","_updateOwnerFocus","isDisabled","ownerComponent","_resetItemFocus","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_CONTENT_PLACEHOLDER_CLASS","TEMPLATE_WRAPPER_CLASS","ITEM_PATH_REGEX","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_LAST","FOCUS_FIRST","_moveFocus","space","_getItemData","_itemEventHandlerByHandler","_itemClickHandler","selectOnFocus","loopItemFocus","onFocusedItemChanged","encodeNoDataText","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","disabledExpr","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_displayGetter","_initItemsFromMarkup","_initDefaultItemTemplate","_getFieldsMap","_prepareDefaultItemTemplate","_getBindableFields","rawItems","_prepareItemTemplate","templateId","_dataSourceOptions","_renderedItemsCount","_isFocusTarget","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_updateFocusedItemState","_findActiveTarget","activeElements","_getActiveElement","$newTarget","_getAvailableItems","_prevItem","_nextItem","_getVisibleItems","$itemElements","targetIndex","$last","loop","$first","_selectFocusedItem","selectItem","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","getFocusedItemId","isTargetDisabled","_findItemElementByItem","itemElements","_itemDataKey","_getIndexByItem","_itemOptionChanged","_refreshItem","_itemIndexKey","_renderItem","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_expectNextPageLoading","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","_shouldAppendItems","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_cleanFocusState","_cleanItemContainer","_inkRipple","_itemFocusTimeout","_itemClass","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_renderContentImpl","_fireContentReadyAction","_attachClickEvent","_getPointerEvent","itemSelector","clickEventNamespace","pointerEventNamespace","pointerAction","_itemPointerDownHandler","_itemDXEventHandler","_itemFocusHandler","$closestItem","$closestFocusable","_closestFocusable","_forcePointerDownFocus","_updateFocusState","$itemContainer","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","contextMenuEventName","_itemContextMenuHandler","_shouldFireContextMenuEvent","_renderItems","$itemToReplace","_index$item","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","_renderItemContent","contentClass","defaultTemplateName","_postprocessRenderItem","_executeItemRenderAction","_getItemTemplateName","_addItemContentClasses","$templateResult","_createItemByTemplate","$node","_appendItemToContainer","_itemOptions","_getItemRenderAction","_itemRenderAction","templateProperty","renderArgs","_onItemTemplateRendered","_emptyMessageContainer","hideNoData","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","_focusedItemId","itemsContainer","DataHelperMixin","ITEM_DELETING_DATA_KEY","indexExists","BaseCollectionWidget","selectionRequired","selectByClick","maxFilterLengthInRequest","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","_nullValueSelectionSupported","itemsGetter","allowNullValue","addedItemKeys","removedItemKeys","_updateSelectedItems","_getItemsCount","_dataController$loadO","customQueryParams","plainItems","dataFields","itemsCount","Strategy","PlainEditStrategy","_getSelectedItemIndices","indices","getSelectedItemKeys","beginCache","endCache","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","setSelection","isOptionDefined","_compareKeys","getSelectedItems","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","_itemSelectPromise","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","_setAriaSelectionAttribute","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_fireSelectionChangeEvent","getItemElement","checkPending","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","$movingItem","$destinationItem","movingIndex","destinationIndex","itemPlacementFunc","moveItemAtIndexToIndex","getIndex","toIndex","collectionWidget","_collectionWidget","resultIndex","_denormalizeItemIndex","_equalKeys","_cache","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","EditStrategy","_getPlainItems","movedItemData","PRIVATE_KEY_FIELD","repaintChangesOnly","_this$_dataController","_customizeStoreLoadOptions","_correctionIndex","_refreshItemsCache","_findItemElementByKey","_isItemEquals","_modifyByChanges","_isItemStrictEquals","_shouldAddNewGroup","_partialRefresh","_itemsCache","itemCache","_updateByChange","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_getItemContainer","_afterItemElementInserted","changeData","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","$removedItemElement","COLOR_BOX_CLASS","COLOR_BOX_INPUT_CLASS","COLOR_BOX_COLOR_IS_NOT_DEFINED","colorEditorPrototype","ColorView","colorUtils","makeTransparentBackground","_makeTransparentBackground","makeRgba","_makeRgba","ColorBox","DropDownEditor","arrowHandler","$focusableElement","_getLastPopupElement","_getFirstPopupElement","_validatedOpening","editAlphaChannel","applyValueMode","keyStep","fieldTemplate","buttonsLocation","_popupHidingHandler","_updateColorViewValue","_popupConfig","_contentReadyHandler","_createColorView","_addPopupBottomClasses","$popupBottom","_popup","bottomToolbar","$overlayContent","$colorView","_colorView","_colorViewConfig","registerKeyHandler","_escapeHandler","_rgbInputs","_applyNewColor","_$colorResultPreview","_colorViewEnterKeyPressed","matchValue","_ariaId","onEnterKeyPressed","instantlyMode","isOldValue","changesApplied","valueCleared","_shouldSaveEmptyValue","_applyColorFromInput","colorViewValue","_applyButtonHandler","_cancelButtonHandler","_resetInputValue","_renderInput","_renderColorPreview","_$colorBoxInputContainer","_$textEditorInputContainer","_valueChangeEventHandler","COLOR_VIEW_ROW_CLASS","COLOR_VIEW_PALETTE_GRADIENT_CLASS","COLOR_VIEW_PALETTE_GRADIENT_WHITE_CLASS","COLOR_VIEW_PALETTE_GRADIENT_BLACK_CLASS","COLOR_VIEW_HEX_LABEL_CLASS","COLOR_VIEW_COLOR_PREVIEW","COLOR_VIEW_COLOR_PREVIEW_COLOR_CURRENT","COLOR_VIEW_COLOR_PREVIEW_COLOR_NEW","BLACK_COLOR","isRTL","getHorizontalPaletteStep","_paletteWidth","updateHorizontalPaletteValue","_currentColor","updatePaletteValue","getVerticalPaletteStep","_paletteHeight","updateVerticalPaletteValue","_placePaletteHandle","_updateColorFromHsv","getHueScaleStep","_hueScaleWrapperHeight","_hueScaleHandleHeight","updateHueScaleValue","_placeHueScaleHandle","handleLocation","_$hueScaleHandle","_updateColorHue","getAlphaScaleStep","_alphaChannelScaleWorkWidth","updateAlphaScaleValue","_placeAlphaChannelHandle","_$alphaChannelHandle","_calculateColorTransparencyByScaleWidth","_alphaChannelHandleWidth","_isTopColorHue","_fireEnterKeyPressed","_initColorAndOpacity","_initEnterKeyPressedAction","_onEnterKeyPressedAction","_setCurrentColor","newColor","_$currentColor","_setBaseColor","_$baseColor","_renderColorPickerContainer","_renderPalette","_renderHueScale","_renderControlsContainer","_renderControls","_renderAlphaChannelElements","_$colorPickerContainer","_renderHtmlRows","updatedOption","$renderedRows","renderedRowsCount","_renderHtmlCellInsideRow","$rowParent","additionalClass","$paletteCell","$paletteGradientWhite","$paletteGradientBlack","_$palette","_renderPaletteHandle","_$paletteHandle","handleAria","_paletteHandleHeight","paletteHandlePosition","_updateByDrag","_calculateColorSaturation","_calculateColorValue","_paletteHandleWidth","saturation","hue","_updateColorParamsAndColorPreview","applyColor","$hueScaleCell","_$hueScaleWrapper","_$hueScale","_hueScaleHeight","_renderHueScaleHandle","hueScaleHeight","handleHeight","handlePosition","$controlsContainerCell","_$controlsContainer","_renderColorsPreview","_renderRgbInputs","_renderHexInput","$colorsPreviewContainer","$colorsPreviewContainerInner","_renderAlphaChannelScale","_renderAlphaChannelInput","_rgbInputsWithLabels","_renderEditorWithLabel","NumberBox","_updateColor","labelText","labelAriaText","labelClass","dxNumberBox","$label","_keyboardHandler","hexInputOptions","TextBox","_hexInput","inputId","$hexInput","$alphaChannelScaleCell","$alphaChannelBorder","$alphaChannelScaleWrapper","_$alphaChannelScale","_makeCSSLinearGradient","_renderAlphaChannelHandle","colorAsRgb","startColor","finishColor","backgroundImage","$alphaChannelInputCell","_alphaChannelInput","_updateColorTransparency","transparency","$alphaChannelHandle","alphaChannelHandlePosition","previousTransparency","colorValue","cancelColor","_refreshMarkup","isHex","rgba","_validateHex","_validateRgb","_suppressEditorsValueUpdating","DX_MENU_ITEM_CLASS","DX_MENU_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_SUBMENU_CLASS","DX_STATE_HOVER_CLASS","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","showEventOption","showEvent","onSubmenuCreated","onHidden","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","closeOnOutsideClick","_isSelectionEnabled","$availableItems","$focusedItem","$hoveredItem","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_setFocusedElement","_hideSubmenuHandler","_expandSubmenuHandler","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","_dataAdapter","getNodeByItem","isItemHasSubmenu","_hasSubmenu","$submenu","_showSubmenu","_detachShowContextMenuEvents","_getTarget","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_keyboardListenerId","overlayOptions","_getOverlayOptions","Overlay","_addCustomCssClass","_addPlatformDependentClass","getShowEvent","_showContextMenuEventHandler","contextMenuAction","getShowDelay","_show","submenuContainer","$holder","$itemsContainer","_getChildNodes","internalFields","submenuElement","innerOverlay","_hideOnOutsideClickHandler","propagateOutsideClick","hideOnParentScroll","deferRendering","showTitle","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","_hideAllShownSubmenus","_shouldHideOnOutsideClick","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","_isIncludeOverlay","_getShowSubmenuMode","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","isSubmenuRendered","_renderSubmenuItems","_isSubmenuVisible","_drawSubmenu","$expandedItems","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","animationPosition","_animate","_updateSelectedItemOnClick","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","showing","_hide","jQEvent","_event$originalEvent","_positionContextMenu","_renderContextMenuOverlay","_widgetClass","_renderFocusState","_attachHoverEvents","getRootNodes","_setAriaAttributes","preventShowingDefaultContextMenuAboveOverlay","_overlayContentId","_getContextMenuPosition","isInitialPosition","positioningAction","lastPosition","_cleanAriaAttributes","MenuBase","MenuBaseEditStrategy","getMenuItems","_getTemplateString","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_CAPTION_CLASS","DEFAULT_DELAY","DX_MENU_ITEM_CAPTION_URL_CLASS","DX_ITEM_URL_CLASS","showSubmenuMode","_renderSelectedItem","iconContainer","textContainer","linkAttr","linkAttributes","_getIconContainer","_getTextContainer","_getLinkContainer","_getPopoutContainer","_addContentClasses","itemText","$popOutContainer","$popOutImage","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","nodeToSelect","toggleSelection","selectedKeys","getSelectedNodesKeys","selectedKey","getNodeByKey","_selectByItem","_renderInkRipple","_isDesktopDevice","_getItemElementByEventArgs","_isItemDisabled","_showSubmenusTimeout","_getSubmenuDelay","_disabledGetter","_addExpandedClass","childrenKeys","hasIcons","$nodeContainer","_renderContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","beginGroup","_renderSeparator","$nodeElement","_createDOMElement","hasText","hasIcon","hasSubmenu","_selectedGetter","_isItemSelectable","_skipHandling","itemClickActionHandler","_updateSubmenuVisibilityOnClick","_itemClick","_isItemSelectAllowed","selectedItemKey","selectedNode","_toggleItemSelection","isSelectByClickEnabled","_isContainerEmpty","_itemsGetter","_getElementByItem","oldSelection","HierarchicalCollectionWidget","MenuItem","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","isPM","currentYear","maxLimitLength","renderDateParts","sections","_loop","isStub","caret","setter","forcedPattern","dM","getAmPm","DATE_COMPONENTS","TIME_COMPONENTS","ONE_DAY","SUPPORTED_FORMATS","ONE_MINUTE","ONE_YEAR","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","datetime","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","formatInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","getStringFormat","longestDate","normalizeTime","startValue","endValue","DateBoxStrategy","dateBox","widgetOption","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","_getWidgetOptions","getDefaultOptions","getDisplayFormat","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","popupConfig","_this$_getPopup","_getPopup","renderPopupContent","$popupContent","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","isAdaptivityChanged","todayButtonText","homeEndHandler","viewValue","_getContouredValue","lastActionElement","_lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","displayFormat","_valueChangedHandler","_getTodayButtonConfig","_isCalendarVisible","calendarOptions","_getPopupToolbarItems","DATEVIEW_ROLLER_ITEM_CLASS","DateViewRoller","showScrollbar","useNative","bounceEnabled","showOnClick","onSelectedIndexChanged","scrollByContent","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","_$items","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","_itemHeight","_getItemSelector","_itemElementIndex","targetLocation","isHorizontal","isVertical","convertToLocation","_prepareDirections","_animation","_shouldScrollToNeighborItem","handleMove","_moveIsAllowed","currentSelectedIndex","_isInNullNeighborhood","_fitSelectedIndexInRange","_getSelectedIndexAfterScroll","newSelectedIndex","_getNewSelectedIndex","_visibilityTimer","toggleActiveState","fitIndex","_fireSelectedIndexChanged","_refreshSelectedIndex","Scrollable","DATEVIEW_CLASS","TYPE","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","uiDateUtils","applyCompactClass","_device","_toggleFormatClasses","_toggleCompactClass","currentFormat","previousFormat","_wrapper","_$wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","DATEVIEW_ROLLER_CLASS","displayItems","roller","_toggleActive","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","valueItems","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","_device2","_isNativeType","NativeStrategy","_getDateBoxType","dropDownButton","rotateArrow","$arrow","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_getValue","_renderBox","$box","_renderClock","_renderField","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","SelectBox","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","_resumeValueChangeAction","showSpinButtons","displayValueFormatter","_normalizeHours","_updateField","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","CalendarStrategy","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","BOUNDARY_VALUES","ListStrategy","opened","_widgetItems","_getDateByItemData","_refreshItems","List","_timeListItemTemplate","_listItemClickHandler","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","getSizeValue","_setPopupOption","popupHeight","_timeList","updateDimensions","DATEBOX_CLASS","DATEBOX_WRAPPER_CLASS","PICKER_TYPE","rollers","native","STRATEGY_NAME","STRATEGY_CLASSES","Native","CalendarWithTime","DateBox","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","useHiddenSubmitElement","_showValidationIcon","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","_getStrategyName","_getFormatType","isTime","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_updatePopupWidth","_this$_strategy$_upda","_this$_strategy","inputElement","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","storedPadding","necessaryWidth","_renderPopup","_renderPopupWrapper","_this$_strategy$_getP","_this$_strategy$_getP2","_this$_strategy2","defaultItems","_getPopupTitle","classPostfixes","_renderPopupContent","_popupShowingHandler","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","_recallInternalValidation","editorSpecific","_applyCustomValidation","parsedText","isDateType","isDateInRange","validationMessage","_updateInternalValidationState","_serializeDate","_isValueChanged","_isTextChanged","_renderProps","_renderOpenedState","_refreshStrategy","_this$_strategy3","_updatePopupTitle","_this$_popup","_renderInputValue","isValueChanged","_clearValue","MASK_EVENT_NAMESPACE","BACKWARD","DateBoxMask","DateBoxBase","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_useMaskBehavior","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","useMaskBehavior","emptyDateValue","_isSingleCharKey","_isSingleDigitKey","_e$originalEvent","_useBeforeInputEvent","_keyInputHandler","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_maskBeforeInputHandler","isBackwardDeletion","_keyPressHandler","_maskValue","_activePartIndex","_searchString","_searchNumber","_caret","_getFormatPattern","_formatPattern","isLDMLPattern","_renderDateParts","_partLimitsReached","formatLength","_getActivePartProp","maxSearchLength","isLengthExceeded","isValueOverflowed","_getActivePartLimits","_setActivePartValue","startString","endLimit","_clearSearchValue","_prepareRegExpInfo","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_initMaskState","_renderMask","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_onMouseWheel","isBoundaryIndex","_getRealLimitsPattern","lockOtherParts","limitFunction","_addLeadingZeroes","zeroes","_saveMaskValue","limitDelta","_applyLimits","limitBase","limitClosest","caretInGroup","getDatePartIndexByPosition","_replaceSelectedText","_isDateValid","_isValueDirty","_fireChangeEvent","ANONYMOUS_TEMPLATE_NAME","DropDownBox","$tabbableElements","_getTabbableElements","_getElements","tabbable","_initDataExpressions","_shouldUseDisplayValue","_rejectValueLoading","_getCurrentValue","itemLoadDeferreds","_loadItem","_isValueEquals","_valueGetter","_loadValue","shouldSkipCallback","_popupElementTabHandler","$firstTabbable","$lastTabbable","moveBackward","moveForward","_fieldRenderData","_canShowVirtualKeyboard","_isNestedElementActive","_shouldHideOnParentScroll","_popupPosition","_popupPositionedHandler","_getDefaultPopupPosition","_ignoreFunctionValueDeprecation","_this$_popupPosition","popupLocation","getElementMaxHeightByWindow","$firstElement","_setCollectionWidgetOption","_dataExpressionOptionChanged","DataExpressionMixin","DropDownButton","currentTemplate","_editor$_shouldCallOp","_shouldCallOpenHandler","_openHandler","_getOptions","_addToContainer","_legacyRender","_addTemplate","_isSameTemplate","TextEditorButton","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_OVERLAY","isIOs","_getDefaultButtons","Ctor","onOpened","onClosed","dropDownButtonTemplate","showDropDownButton","buttons","onPopupInitialized","cancelButtonText","_inputWrapper","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_openAction","_closeAction","_popupInitializedAction","_renderOpenHandler","_attachFocusOutHandler","_createPopup","_wrapInput","_setDefaultAria","_$container","haspopup","_isEditable","_detachFocusEvents","_getFieldTemplate","_renderTemplatedField","_renderPlaceholder","_this$_fieldRenderQue","_fieldRenderQueueLength","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","$templateWrapper","_integrateInput","_attachWrapperContent","_this$_$submitElement","_this$_$beforeButtons","_this$_$afterButtonsC","beforeButtonsContainerParent","_$beforeButtonsContainer","afterButtonsContainerParent","_$afterButtonsContainer","_this$_$submitElement2","_$buttonsContainer","_refreshValueChangeEvent","_refreshEvents","_refreshEmptinessEvent","_toggleEmptinessEventHandler","_renderEmptinessEvent","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","_isTargetOutOfComponent","popupWrapper","_$popup","_executeOpenAction","_focusInput","_toggleOpenState","_keyboardEventBindingTarget","_resetCaretPosition","ignoreEditable","_getControlsAria","_popupContentId","arias","expanded","Popup","contentReady","_setPopupContentId","_bindInnerWidgetOptions","_popupInitializedHandler","getElementWidth","_closeOutsideDropDownHandler","showCloseButton","onPositioned","fullScreen","_wrapperClassExternal","_ignorePreventScrollEventsDeprecation","_e$position","_e$position$v","labelMode","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","_label","_this$_validationMess","_validationMessage","_getValidationMessagePositionSide","_this$_validationMess2","myTop","popupTop","$dropDownButton","isInputClicked","isDropDownButtonClicked","_setWidgetOption","_popupElementEscHandler","_popupButtonInitializedHandler","buttonsConfig","shortcut","_applyButtonsLocation","resultConfig","_popupOptionChanged","optionsKeys","_updateButtons","VALIDATION_STATUS_INVALID","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationBoundary","_showValidationMessage","_attachKeyboardEvents","_createValueChangeAction","_valueChangeActionSuppressed","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_valueChangeArgs","isValidationMessageShownOnFocus","_canValueBeChangedByClick","_getStylingModePrefix","_renderStylingMode","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","isInvalid","validationMessageContentId","_getValidationMessageTarget","_getValidationMessagePosition","_toggleBackspaceHandler","isReadOnly","$eventTarget","EventsEngine","$submitElement","_setValidationMessageOption","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","updateMaxWidth","_innerWidgetOptionChanged","_dataExpressionDefaultOptions","_compileValueGetter","_initDynamicTemplates","_itemsToDataSource","_displayGetterExpr","_valueGetterExpr","_unwrappedValue","_loadValueDeferred","_this$_loadValueDefer","_getItemKey","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","isObjectType","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_getCollectionKeyExpr","DataConverter","_dataStructure","_itemsCount","_indexByKey","_convertItemsToNodes","parentKey","_getParentId","_convertItemToNode","_checkForDuplicateId","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","itemKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getByKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","EXPANDED","SELECTED","uiSearchBoxMixin","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","HierarchicalDataConverter","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","getFullData","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","_iterateChildren","recursive","processedKeys","nodeKey","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","getExpandedNodesKeys","getNodesByItems","getPublicNode","getChildrenNodes","addItem","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","dataStructure","toggleExpansion","_filterDataStructure","_createCriteria","filterValue","lookForParents","DISABLED_STATE_CLASS","selectedExpr","itemsExpr","parentIdExpr","expandedExpr","_initAccessors","_initDataAdapter","_createDataAdapterAccessors","HierarchicalDataAdapter","_getDataAdapterOptions","_getItemExtraPropNames","_addContent","_getAccessors","accessor","_compileAccessor","_hasChildren","optionExpr","getterName","newAccessor","_menuEnabled","_menuItems","_deleteEnabled","_fireMenuAction","CONTEXTMENU_CLASS","registerDecorator","EditDecorator","$menu","_renderOverlay","_$menuList","_renderMenuContent","_deleteItem","ListBase","_menuItemClickHandler","_$itemWithMenu","handleContextMenu","EditDecoratorMenuHelperMixin","LIST_EDIT_DECORATOR","POINTER_DOWN_EVENT_NAME","SWITCHABLE_DELETE_READY_CLASS","SWITCHABLE_MENU_ITEM_SHIELD_POSITIONING_CLASS","SwitchableEditDecorator","_$topShield","_$bottomShield","_$itemContentShield","_cancelDeleteReadyItem","_$readyToDeleteItem","_cancelDelete","_toggleDeleteReady","readyToDelete","_isReadyToDelete","_toggleShields","_toggleScrolling","_cacheReadyToDeleteItem","_animateToggleDelete","_updateShieldsHeight","_toggleContentShield","$list","listTopOffset","listHeight","dirtyTopShieldHeight","dirtyBottomShieldHeight","_cancelScrolling","_enablePositioning","_prepareDeleteReady","_animatePrepareDeleteReady","_forgetDeleteReady","_animateForgetDeleteReady","_disablePositioning","_getDeleteButtonContainer","_isRtlEnabled","SWITCHABLE_DELETE_BUTTON_CONTAINER_CLASS","SWITCHABLE_DELETE_BUTTON_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_INNER_WRAPPER_CLASS","SWITCHABLE_DELETE_BUTTON_CLASS","SwitchableButtonEditDecorator","$buttonContainer","$buttonWrapper","$buttonInnerWrapper","$button","_$buttonContainer","listWidth","buttonWidth","_buttonWidth","_buttonContainerWidth","beforeBag","$toggle","_shouldHandleSwipe","ACTION_SHEET_BUTTON_DEFAULT_STYLING_MODE","ActionSheet","usePopover","showCancelButton","cancelText","onCancelClick","_$itemContainer","_toggleVisibility","_createItemContainer","_isPopoverMode","_createPopover","_renderPopupTitle","_mapPopupOption","_overlayConfig","angular","_popupContentReadyAction","Popover","_renderCancelButton","_$cancelButton","cancelClickAction","hidingArgs","SLIDE_MENU_WRAPPER_CLASS","SLIDE_MENU_CONTENT_CLASS","SLIDE_MENU_BUTTONS_CONTAINER_CLASS","SLIDE_MENU_BUTTONS_CLASS","SLIDE_MENU_BUTTON_CLASS","_$buttons","_renderMenu","_renderDeleteButton","menuItem","_renderMenuButton","_fireAction","$menuButton","$deleteButton","_cachedNode","modifyElement","$slideMenuContent","_cacheItemData","_setPositions","_getPositions","signCorrection","isItemReadyToDelete","_getCurrentPositions","_getStartPositions","_cachedItemWidth","_cachedButtonWidth","startPositions","_$cachedContent","_minButtonContainerLeftOffset","endedAtReadyToDelete","_animateToPositions","durationTimePart","afterBag","_renderItemPosition","itemOffset","_itemElementWidth","REORDER_HANDLE_CLASS","_groupedEnabled","_lockedDrag","_sortable","_scrollView","Sortable","allowReordering","_dragTemplate","onDragChange","_dragChangeHandler","onReorder","_reorderHandler","_sameParent","$dragging","getItemElementByFlatIndex","$targetElement","$handle","searchBoxMixin","RADIO_BUTTON_ICON_CLASS","RadioButton","_renderIcon","_renderCheckedState","_renderClick","_$icon","SELECT_DECORATOR_ENABLED_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_CHECKBOX_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","_singleStrategy","_containerClass","_controlClass","_controlWidget","$control","_commonOptions","_isSelected","_saveSelectionChangeEvent","_processCheckedState","_updateSelectAllState","_$selectAll","_selectAllCheckBox","_renderSelectAll","handleKeyboardEvents","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","lastItemIndex","_getLastItemIndex","handleEnterPressing","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","deselectAll","_disposeSelectAll","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","_renderBadge","_renderShowChevron","badge","$badge","$chevron","showChevron","$chevronContainer","getElementStyle","_getWindow$getCompute","_getWindow","getElementMargin","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_GROUP_COLLAPSED_CLASS","WRAP_ITEM_TEXT_CLASS","groupItemsGetter","moveFocusPerPage","getEdgeVisibleItem","resultPosition","containerHeight","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","scrollingEnabled","useNativeScrolling","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onPullRefresh","onPageLoading","pageLoadMode","nextButtonText","onItemSwipe","grouped","onGroupRendered","collapsibleGroups","groupTemplate","indicateLoading","wrapItemText","_swipeEnabled","showChevronExpr","badgeExpr","themeName","deviceDependentOptions","_updateLoadingState","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_initScrollView","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupedOption","_getGroupContainerByIndex","groupIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","reachBottomText","useKeyboard","_createScrollViewActions","_scrollAction","_pullRefreshAction","_pageLoadingAction","$iconContainer","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","startLoading","finishLoading","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","_loadNextPageTimer","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","$group","_collapseGroupHandler","$groupBody","startHeight","endHeight","roledescription","_setListAria","listArea","_toggleActiveState","_inkRippleTimer","LIST_FEEDBACK_SHOW_TIMEOUT","_attachSwipeEvent","endEventName","_itemSwipeEndHandler","_nextButtonHandler","toggleLoading","_$nextButton","$groupElement","groupAria","labelledby","$groupHeaderElement","groupTemplateName","_renderingGroupIndex","_groupRenderAction","groupElement","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_toggleDisabledState","_getNextButton","_createNextButton","expandGroup","collapseGroup","DataConverterMixin","ListItem","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","visibilityChange","getExcludedSelectors","registry","decoratorClass","decoratorsRegistry","decoratorConfig","combineIndex","combinedIndex","_groupElements","_groupItemElements","_getGroups","groupItemByKeyMap","itemMeta","groupKey","getItemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","EditProvider","_fetchRequiredDecorators","_decorators","decorator","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","_eventHandler","contextMenuHandlerExists","getExcludedItemSelectors","excludedSelectors","ListEdit","moveFocusedItem","moveUp","editStrategy","focusedItemIndex","nextItemIndex","_editProvider","privateKey","__dx_key__","showSelectionControls","selectAllMode","onSelectAllValueChanged","selectAllText","localizationMessage","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","GroupedEditStrategy","handledByEditProvider","_this$_editStrategy$g","focusListItem","unselectAll","getSelectAllState","getFlatIndexByItemElement","flatIndex","getItemByIndex","LOADINDICATOR_SEGMENT_CLASS","LoadIndicator","indicatorSrc","_animatingSegmentCount","_animatingSegmentInner","viaImage","isGeneric","_renderIndicatorContent","_renderMarkup","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LoadPanel","showIndicator","showPane","templatesRenderAsynchronously","hideTopOverlayHandler","preventScrollEvents","shadingColor","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_clearShowTimeout","_showTimeout","$message","Submenu","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","hoverStartAction","containerOffset","vLocation","hLocation","rootOffset","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","Menu","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","$menuItems","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","collapseAll","_$adaptiveContainer","menuOptions","animationEnabled","_treeviewItemClickHandler","onItemExpanded","onItemCollapsed","selectNodesRecursive","expandEvent","$hamburger","_renderHamburgerButton","TreeView","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_createSubmenu","_renderBorderElement","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","$currentItem","$newItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","selectedItemData","$prevSelectedItem","submenus","getOverlayContent","submenuMouseLeaveName","hoverEventEnd","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","isHorizontalMenu","mouseMoveEventName","isSelectionActive","_getShowFirstSubmenuMode","_getSubmenuByElement","isOverlayVisible","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","_changeSubmenusOption","_removeAdaptivity","$notify","$containers","getDefaultDirection","getStackContainer","createStackContainer","setContainerClasses","containerClasses","setContainerStyles","dimensions","toastWidth","toastHeight","coordinates","getCoordinatesByAlias","getPositionStylesByCoordinates","_coordinates$bottom","_coordinates$left","_coordinates$right","_coordinates$top","_coordinates$left2","_coordinates$right2","_coordinates$right3","_coordinates$top2","_coordinates$bottom2","_coordinates$left3","_coordinates$top3","_coordinates$bottom3","typeOrStack","userOnHidden","containerKey","userOnShowing","Toast","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","getCaretBoundaries","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","_reverseText","_getDigitPositionByIndex","digitIndex","getCaretWithOffset","getCaretInBoundaries","boundaries","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","SPIN_CLASS","_spinIcon","_spinDownHandler","_spinChangeHandler","_feedBackDeferred","SpinButtons","$spinContainer","$spinContainerChildren","pointerDownAction","_spinButtonsPointerDownHandler","SpinButton","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_isTouchFriendly","isTouchFriendly","$spinButtons","spinUp","spinDown","math","FIREFOX_CONTROL_KEYS","NumberBoxBase","TextEditor","useLargeSpinButtons","invalidValueMessage","_isSupportInputMode","_getDefaultAttributes","inputmode","_keyPressed","_spinValueChange","inputValue","_forceValueRender","valuenow","valuetext","formattedValue","_applyDisplayValueFormatter","valuemin","valuemax","_normalizeInputValue","_correctRounding","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","NUMBER_FORMATTER_NAMESPACE","MINUS_KEY","NumberBoxMask","_isDeleteKey","minus","_revertSign","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","realSeparatorOccurrenceIndex","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_getInputVal","shouldHandleEvent","_focusOutOccurs","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","isCaretInBoundaries","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","_lastKey","_lastKeyName","_shouldHandleKey","normalizedText","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","_isStub","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isExponentialFormat","shouldUseFormatAsIs","getLDMLFormat","_getFormatForSign","_removeStubs","excludeComma","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","strValue","editedText","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","isCaretOnFloat","textParts","floatLength","isPrecisionInRange","endsWithZero","_setInputText","formatted","isSeparatorBasedText","isSeparatorBasedString","pointPosition","newPointPosition","formattedParts","relativeIndex","digitsBefore","formattedIntPart","_trimNonNumericCharsFromEnd","positionFromEnd","digitsFromEnd","newPositionFromEnd","getCaretAfterFormat","_formattedValue","_renderInputType","isNumberType","_setInputType","_isChar","adjustedCaret","isSpecialChar","isMinusKey","_renderFormatter","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","escapedDecimalSeparator","realSeparatorIndex","floatPart","_applyRevertedSign","preserveSelectedText","previousText","currentText","previousBoundaries","getCaretOffset","caretInBoundaries","_removeMinusFromText","textWithoutMinus","wasMinusRemoved","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","onVisualPositionChanged","restorePosition","_fixWrapperPosition","_$root","_$markupContainer","_$visualContainer","_shouldRenderContentInitialPosition","_visualPosition","_initialPosition","_previousVisualPosition","updateContainer","updateVisualContainer","fixWrapperPosition","styleWrapperPosition","shouldRestorePosition","restorePositionOnNextRender","positionProp","_normalizePosition","containerProp","swatch","_getVisualContainer","_updateVisualPositionValue","_raisePositionedEvents","_renderContentInitialPosition","detectVisualPositionChange","positionStyle","$visualContainer","_renderBoundaryOffset","wrapperOverflow","newPosition","_this$_position","_this$_props$position","_this$_props$position2","visualContainerProp","positionOf","defaultPositionConfig","_positionToObject","hideCallback","indexOfCallback","hasCallback","viewPortChanged","INNER_OVERLAY_CLASS","INVISIBLE_STATE_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","_proxiedDocumentDownHandler","wrapperAttr","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","_ignoreElementAttrDeprecation","ignoreChildEvents","_checkParentVisibility","_eventBindingTarget","_logDeprecatedPreventScrollEventsInfo","_initHideOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_hideOnParentsScrollHandler","warnPositionAsFunction","_hideTopOverlayHandler","_getActionsList","_documentDownHandler","_renderWrapperAttributes","_initPositionController","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","_outsideClickHandler","_isTopOverlay","overlayStack","_overlayStack","tabbableElements","_findTabbableBounds","_zIndexInitValue","baseZIndex","_this2","_viewPortChangeHandle","_viewPortChangeHandler","_positionController","_renderVisibilityAnimate","_getAnimationConfig","_toggleBodyScroll","_animateShowing","_this$_getAnimationCo","_showAnimation$start","_showAnimation$comple","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_isAnimationPaused","_toggleSafariScrolling","_showingDeferred","_processShowingHidingCancel","cancelArg","applyFunction","cancelFunction","shouldCancel","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_updateZIndexStackPosition","openingHandled","showingArgs","_isShowingActionCanceled","_moveFromContainer","_stopShowTimer","_asyncShowTimeout","showHideConfig","_animateHiding","_this$_getAnimationCo2","_hideAnimation$start","_hideAnimation$comple","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_this4$_actions","_hideAnimationProcessing","_hidingDeferred","_forceFocusLost","_toggleShading","_toggleSubscriptions","completeCallback","startCallback","_checkContainerExists","_moveToContainer","_renderGeometry","pushToStack","_zIndex","zIndexPool","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","_tabKeyHandler","$elements","elementsCount","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","$focusElement","_toggleHideTopOverlayCallback","_toggleHideOnParentsScrollSubscription","hideTopOverlayCallback","needSubscribe","_this$_parentsScrollS","scrollEvent","prevTargets","closeOnScroll","_hideOnParentScrollTarget","closeHandled","_appendContentToElement","shouldDeferRendering","_contentAlreadyRendered","isHidden","whenContentRendered","contentTemplateOption","noModel","_toggleWrapperScrollEventsSubscription","_getPositionControllerConfig","isWheel","isMouseMove","isScrollByWheel","$wrapperContainer","uiErrors","_renderGeometryImpl","positionContent","_isAllWindowCovered","isIosSafari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","_cachedBodyScrollTop","_renderWrapperDimensions","positionWrapper","isVisualContainerWindow","wrapperWidth","wrapperHeight","_deferShowTimer","_this$_animateDeferre","_animateDeferred","_this$_animateDeferre2","animateDeferred","forceStopAnimation","startLocation","actualOffset","offsetBottom","zIndexStack","ZIndex","baseIndex","isLastZIndexInStack","PopoverFull","borderWidthStyles","WEIGHT_OF_SIDES","POPOVER_POSITION_ALIASES","POPOVER_DEFAULT_BOUNDARY_OFFSET","PopoverPositionController","_$arrow","_positionSide","hOffset","vOffset","isVerticalSide","_isVerticalSide","isHorizontalSide","_isHorizontalSide","arrowOffset","_isPopoverInside","_getContentBorderWidth","weightSign","_getDisplaySide","POSITION_FLIP_MAP","getEventNameByOption","attachEvent","hideEvent","isSelector","shouldIgnoreHideEvent","getEventDelay","_clearEventsTimeouts","_timeouts","EVENT_HANDLER_NAME","detachEvent","resizeEnabled","arrowPosition","_renderArrow","isInteractive","_detachEvents","_attachEvents","_isOutsideClick","_getContainerPosition","_renderTitle","shouldUpdateDimensions","_renderOverlayPosition","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","_renderArrowPosition","_setContentHeight","containerLocation","newContainerWidth","newOverlayContentHeight","newPopupContentHeight","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","contentOffset","arrowSize","contentLocation","contentSize","finalArrowLocation","fullUpdate","_clearEventTimeout","updateTarget","PopupFull","PopupDrag","draggableElement","positionController","_draggableElement","_handle","_dragEnabled","_getEventNames","startEventName","updateEventName","_dragUpdateHandler","dragStartEvent","dragMoveEvent","dragEndEvent","allowedOffsets","_getAllowedOffsets","_prevOffset","_moveByOffset","dragHandled","_fitOffsetIntoAllowedRange","$dragResizeContainer","containerDimensions","_getContainerDimensions","elementDimensions","_getElementDimensions","outsideDragFactor","fullDelta","_getInnerDelta","outerDelta","_getOuterDelta","_getFullDelta","elementPosition","_getElementPosition","containerPosition","RESIZABLE","RESIZABLE_HANDLE_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","stepPrecision","onResizeStart","onResizeEnd","roundStepValue","keepAspectRatio","_renderHandles","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","_dragHandler","handleElement","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","handleWidth","handleOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_proportionate","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","sides","_fitIntoArea","directionName","_fitDeltaProportionally","fittedDelta","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","_roundByStep","_updatePosition","_getOffset","_updateDimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","_roundStrict","_roundNotStrict","_getSteps","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","RESIZABLE_HANDLE_CORNER_CLASS","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","areaElement","_correctAreaGeometry","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","PopupPositionController","forceApplyBindings","dragOutsideBoundary","dragAndResizeArea","_$dragResizeContainer","_updateDragResizeContainer","_fullScreenEnabled","_fullScreenDisabled","_this$_props$forceApp","_this$_props","_getDragResizeContainer","overflowManagerMock","setOverflow","restoreOverflow","createBodyOverflowManager","isIosDevice","prevSettings","overflowX","overflowY","scrollBarWidth","computedBodyPaddingRight","setBodyPaddingRight","propertyInKebabCase","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_TITLE_CLASS","POPUP_BOTTOM_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","IS_OLD_SAFARI","compareVersions","HEIGHT_STRATEGIES","static","_this$_drag","_drag","_this$_drag2","moveDown","_this$_drag3","moveLeft","_this$_drag4","moveRight","titleTemplate","onTitleRendered","enableBodyScroll","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","currentTheme","_iosAnimation","_androidAnimation","popupWrapperClassExternal","popupWrapperClasses","_createBodyOverflowManager","_updateResizeCallbackSkipCondition","_$popupContent","_toggleContentScrollClass","isFullscreen","_toggleFullScreenClass","_bodyOverflowManager","_contentResizeHandler","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_areContentDimensionsRendered","_observeContentResize","shouldObserve","contentElement","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","_renderResize","_renderBottom","_getToolbarItems","titleText","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","toolbarOptions","useDefaultButtons","useFlatButtons","_getToolbarName","$toolbar","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","getButtonPlace","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemType","itemConfig","itemClass","$toolbarItem","_$bottom","$bottom","compactMode","_toggleClasses","aliases","isNativeScrollingEnabled","_getDragTarget","topToolbar","shouldRepeatAnimation","isDimensionChange","_cacheDimensions","_resetContentHeight","$dragTarget","_resizable","_resizeEndHandler","resizeHandled","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","footer","contentVerticalOffsets","popupVerticalOffsets","contentHeight","maxHeightValue","currentClass","excessClasses","_renderFullscreenWidthClass","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","RADIO_BUTTON_CLASS","RadioCollection","$radio","$radioContainer","RadioGroup","layout","_renderRadios","_renderLayout","_getItemValue","isNullSelectable","shouldSelectValue","_getSelectedItemKeys","_setSelection","_updateItemsSize","_areRadiosCreated","$radios","_radios","_this$_radios","_this$_radios2","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","$text","_$pullDownText","_$pullingDownText","_$pulledDownText","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_topPocketSize","contentEl","_bottomBoundary","_allowedDirections","allowedDirections","_pullDownEnabled","handleEnd","_complete","handleStop","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","handleScroll","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","_releaseTimeout","_updateAction","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","_releasePullDown","handleInit","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","_pullDownRefreshHandler","_refreshPullDown","ScrollViewScroller","Scroller","_bottomPocketSize","_updateBounds","_direction","_$bottomPocket","_updateScrollbar","_scrollbar","containerSize","_containerSize","_contentSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","_scrollComplete","_inBounds","_reachBottomLoading","_minOffset","_getMinOffset","_getMaxOffset","_maxOffset","_releaseHandler","_moveToBounds","_releaseTask","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_pendingReleaseHandler","SimulatedStrategy","_createScroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","refreshStrategies","pullDown","PullDownStrategy","swipeDown","SwipeDownStrategy","simulated","isServerSide","scrollViewServerConfig","refreshStrategy","_loadingIndicatorEnabled","_initScrollableMarkup","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","loadPanelOptions","_loadPanel","_createStrategy","strategyClass","_reachBottomHandler","_createActions","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","_lock","_unlock","_finished","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","SCROLLABLE_NATIVE_CLASS","VERTICAL","HORIZONTAL","scrollable","_useSimulatedScrollbar","_isLocked","_isDirection","_allowedDirection","_isRtlNativeStrategy","_isScrollbarVisible","_renderScrollbars","updateRtlPosition","isFirstRender","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","expandable","handleStart","handleCancel","_eachScrollbar","scrollbar","createActions","_createActionArgs","_eventForUserAction","_getScrollOffset","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","reachedBottom","_normalizeOffsetLeft","_hideScrollbars","disabledChanged","_updateScrollbars","_componentContentSize","scrollableNativeRegexp","_removeScrollbars","_isScrolledInMaxDirection","SCROLLABLE","SCROLLABLE_CLASS","BOTH","onBounce","useSimulatedScrollbar","inertiaEnabled","updateManually","_setUseSimulatedScrollbar","_updateRtlPosition","_savedScrollOffset","_renderDirection","_renderStrategy","_renderDisabledState","needInitializeRtlConfig","initEventData","_initHandler","_updateIfNeed","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","_applyScaleRatio","elementInsideContent","elementIsInsideContent","scrollPosition","getScrollElementPosition","additionalOffset","inverseProp","containerOffsetSize","containerClientSize","relativeElementOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","getElementLocationInternal","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SIMULATED_CLASS","ACCELERATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","KEY_CODES","InertiaAnimator","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","BounceAnimator","MIN_VELOCITY_LIMIT","_crossBoundOnNextStep","_bounceLocation","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_prop","_dimension","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollByThumb","visibilityMode","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","bounceDistance","nextLocation","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","feedbackOn","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollBy","_scrollByHandler","containerToContentRatio","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_resetScaleRatio","_updateLocation","baseContainerSize","baseContentSize","locationChanged","_createActionsHandler","bounce","isOverflowHidden","containerScrollSize","_validateEvent","isThumb","_reachedMin","_reachedMax","_cursorEnterHandler","cursorEnter","_cursorLeaveHandler","cursorLeave","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_eachScroller","_isContent","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","addEventNamespace","_keyDownHandler","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","_scrollOffset","_isHoverMode","_hoverHandled","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","_rtlConfig","scrollRight","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","validated","_validateWheelTimer","SCROLLBAR","SCROLLABLE_SCROLLBAR_CLASS","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLBAR_VISIBLE","activeScrollbar","_isHovered","_renderThumb","_attachPointerDownHandler","_$thumb","feedbackOff","_needScrollbar","_adjustVisibility","_baseContainerToContentRatio","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","_realContainerToContentRatio","thumbSize","_normalizeSize","readyCallback","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","_setSelectedElement","_setValue","minSearchLength","valueChangeEvent","showDataBeforeSearch","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_initItemClickAction","_contentReadyAction","_selectionChangedAction","_itemClickAction","_saveFocusOnWidget","_fitIntoRange","dataQuery","_calcNextItem","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_getItemFromPlain","itemByValue","_this$_list","listFocusedItemId","isElementOnDom","activedescendant","_refreshSelected","_listItemElements","itemValue","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_setListOption","_isCustomValueAllowed","_clearFilter","_$list","_renderList","canListHaveFocus","_canListHaveFocus","_listId","_listConfig","_refreshList","_renderPreventBlurOnListClick","_shouldRefreshDataSource","_needPassDataSourceToList","templateProvider","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_updateListDimensions","_isMinSearchLengthExceeded","_needClearFilter","_canKeepDataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","_clearSearchTimer","_searchTimer","_searchDataSource","_searchCanceled","_filterDataSource","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","_isFocused","resultAmount","_needPopupRepaint","currentPageIndex","needRepaint","$customBoundaryContainer","SELECTBOX_POPUP_WRAPPER_CLASS","clearSelectBox","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","isSearchEnabled","customItemCreateEvent","allowClearing","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_focusSelectedElement","_items$indexOf","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","_listFocusedItemChangeHandler","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_loadItemDeferred","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_valueChangeEventIncludesBlur","_getValueChangeEventOptionName","_isPreventedFocusOutEvent","_isOverlayNestedTarget","isOverlayTarget","isPopupVisible","_shouldCancelSearchValue","selectedItemText","$listFocused","_shouldCloseOnItemClick","_completeSelection","_customItemAddedHandler","_customItemCreatingAction","actionResult","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","_refreshFocusEvent","SelectionStrategy","_setOption","_clearItemKeys","preserve","isDeselect","remoteFilter","_removeTemplateProperty","localFilter","filterLength","encodeURI","needLoadAllData","filteredItems","keyHashIndices","dataFilter","ignoreDisabledItems","selectedItemsLength","disabledItemsLength","getSelectableItems","_isAnyItemSelected","hasSelectedItems","hasUnselectedItems","getItemData","isSelectableItem","isItemKeySelected","DeferredStrategy","_loadFilteredData","selectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","keyField","_getKeyExpr","_normalizeKey","skipFilter","_getFilterByKey","subFilter","_findSubFilter","filterOperator","filters","filterItem","_selectionFilter","currentFilter","currentOperation","needAddFilter","_denormalizeFilter","removedIndex","_removeSameFilter","filterIndex","_isOnlyNegativeFiltersLeft","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_addFilterOperator","_normalizeFilter","_isSimpleKeyFilter","inverted","_removeFilterByIndex","_filterIndex","_isLastSubFilter","componentFilter","StandardStrategy","_initSelectedItemKeyHash","keyIndicesToRemoveMap","keyIndex","isBatchDeselect","_batchRemoveSelectedItems","updateSelectedItemKeyHash","selectionFilterCreator","deselectedItems","internalKeys","setSelectedItems","_this$_lastLoadDeferr","_lastLoadDeferred","oldRequestItems","updatedKeys","isDeselectAll","multiSelectEnabled","_isMultiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_concatRequestsItems","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_requestInProgress","_collectLastRequestData","_updateKeysByLastRequestData","_loadSelectedItemsCore","_loadSelectedItems","_preserveSelectionUpdate","_replaceSelectionUpdate","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","ignoreIndicesMap","_getSelectedIndexByKey","_getSelectedIndexByHash","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","keyIndices","_shiftSelectedKeyIndices","oldSelectedKeys","oldSelectedItems","_this$_lastRequestDat3","_updateAddedItemKeys","_updateRemovedItemKeys","_isItemSelectionInProgress","visibleOnly","_getVisibleSelectAllState","_getFullSelectAllState","deferredStrategy","standardStrategy","_focusedItemIndex","filterIsChanged","_keys","setFocusOnly","_this$options$allowLo","_this$options","isSelectedItemsChanged","indexOffset","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","loadIndex","allowLoadByRange","_shiftFocusedItemIndex","isSelectable","isDataItem","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","isItemDataSelected","clearSelectedItems","_removeSelectedItem","_addSelectedItem","_setSelectedItems","getLoadOptions","itemIndexStep","indexOffsetDefined","focusedData","focusedKey","isFocusedItemSelected","isOnePage","_resetFocusedItemIndex","_onePageSelectAll","loadSelectedItemsWithFilter","_getSpecificDataSourceOption","hasSimpleItems","isCorrectStructure","innerItem","PLACEHOLDER_CLASS","isElementVisible","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","dropFeedbackMode","allowDropInsideItem","moveItemOnDrop","onAdd","onRemove","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_unsubscribeFromSourceScroll","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","lastPointPosition","freeSize","_getItems","$lastItem","marginBottom","$sortable","sortable","_allowDrop","$targetDraggable","getScrollableBoundary","itemPoint","cancelAdd","cancelRemove","isSourceDraggable","allowDrop","_fireAddEvent","_moveItem","_fireReorderEvent","axisName","centerPosition","_updatePlaceholderPosition","isScrolling","_createPlaceholder","$placeholderContainer","_allowReordering","_isValidPoint","visibleIndex","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","points","forceUpdate","positionPropName","_togglePlaceholder","_normalizeToIndex","skipOffsetting","isAnotherDraggable","_getActualFromIndex","placeholderElement","_makeWidthCorrection","_$scrollable","scrollableWidth","overflowLeft","overflowRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","clientRect","isVerticalOrientation","pageOffset","showPlaceholder","_moveItems","_updateDragSourceClass","_makeLeftCorrection","prevVisibleItemElement","isLastVerticalPosition","outerPlaceholderHeight","_getDraggableElementSize","prevToIndex","prevPositions","animationConfig","prevPosition","TAGBOX_TAG_DATA_KEY","TAGBOX_TAG_CLASS","TAGBOX_MULTI_TAG_CLASS","TAGBOX_CUSTOM_TAG_CLASS","TAGBOX_TAG_REMOVE_BUTTON_CLASS","TAGBOX_SINGLE_LINE_CLASS","TagBox","sendToList","_isCaretAtTheStart","_processKeyboardEvent","_isTagRemoved","$tagToDelete","_$focusedTag","_tagElements","_moveTagFocus","_preserveFocusedTag","_removeTagElement","isListItemFocused","isInputActive","_scrollContainer","_updateTagsContainer","_$tagsContainer","_updateInputAriaActiveDescendant","clearOnBoundary","tagElements","$nextFocusedTag","_replaceFocusedTag","_clearTagFocus","_focusClassTarget","_getLabelContainer","_getFieldElement","_getScrollPosition","_getBorderPosition","_getFocusedTagPosition","isScrollLeft","maxFilterQueryLength","tagTemplate","hideSelectedItems","maxDisplayedTags","showMultiTagOnly","onMultiTagPreparing","_selectedItems","_initSelectAllValueChangedAction","_initMultiTagPreparingAction","_multiTagPreparingAction","_multiTagPreparingHandler","_data$text","$tagContent","_toggleSubmitElement","multiple","useDisplayText","_tagElementsCache","isSingleLineMode","_initTagTemplate","_getNewLabelId","actualId","newId","_updateElementAria","labelId","newLabelId","_renderTagRemoveAction","_renderSingleLineScroll","_tagTemplate","isDefaultFieldTemplate","tagRemoveAction","_removeTagHandler","mouseWheelEvent","isMultiline","_tagContainerMouseWheelHandler","allowScroll","_isControlKey","_renderPreventBlurOnInputClick","_renderMultiSelect","_selectAllValueChangeAction","_setListDataSourceFilter","_renderInputSize","_renderTags","shouldClearFilter","isEmptyInput","canTypeText","$calculationElement","_updateWidgetHeight","_multiTagRequired","_renderMultiTag","$tag","multiTagElement","_getFilter","filterQueryLength","_getFilteredItems","_this$_loadFilteredIt","_loadFilteredItemsPromise","FilterCreator","listSelectedItems","isListItemsLoaded","clientFilterFunction","selectedItemsAlreadyLoaded","_isDataSourceChanged","mappedItems","_createTagsData","isValueExprSpecified","filteredValues","filteredItem","filteredItemValue","loadItemPromises","_createTagData","_isGroupedData","_getItemsByValues","_getFilteredGroupedItems","_filteredGroupedItemsLoadPromise","_loadTagsData","tagData","isPlainDataUsed","_shouldGetItemsFromPlain","_valuesToUpdate","_getItemsFromPlain","_renderTagsImpl","_renderTagsCore","_renderEmptyState","_getSelectedItemsFromList","_filterSelectedItems","_this$_list2","dataItem","_isInputReady","tagsContainer","_this$_isInputReady","_cleanTags","_renderTagsElements","$multiTag","_renderTag","_refreshTagElements","$tags","_toggleEmptiness","_applyTagTemplate","_getTag","tagId","_createTag","tagsLength","itemId","_removeTagWithUpdate","_removeTag","_lastValue","removedItem","_addTag","listSelectionChangeEvent","_valueIndex","useButtons","indexByValues","currentHeight","_this$_list3","_resetListDataSourceFilter","_userFilter","valueGetterExpr","_dataSourceFilterExpr","_dataSourceFilterFunction","_getSortedListValues","listValues","_getListValues","existedItems","_defaultTagTemplate","_getSelectedItemsDifference","previousItems","previousItemsValuesMap","TextArea","spellcheck","_updateInputHeight","_renderScrollHandler","_createInput","_applyInputAttributes","_updateInputAutoResizeAppearance","customAttributes","_eventY","initScrollData","prepareScrollData","currentEventY","_resetDimensions","_getHeightDifference","_$textEditorContainer","autoHeightResizing","heightDifference","_getBoundaryHeight","inputHeight","adjustedMaxHeight","needScroll","isAutoResizeEnabled","ignoreKeys","SEARCHBOX_CLASS","_showClearButton","maxLength","_renderSearchMode","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","_getLabelContainerWidth","_getLabelBeforeWidth","labelBeforeWidth","_updateLabelWidth","_onKeyDownCutOffHandler","actualMaxLength","_hasSelection","_cutOffExtraChar","_onChangeCutOffHandler","$placeMarker","_isRendered","_create","_addPlaceMarker","_shouldRender","pointerDown","STATE_INVISIBLE_CLASS","ClearButton","CUSTOM_BUTTON_HOVERED_CLASS","CustomButton","ignoreParentReadOnly","_prepareIntegrationOptions","checkNamesUniqueness","existingNames","TextEditorButtonCollection","defaultButtonsInfo","buttonInfo","isStringButton","isDefaultButton","predefinedButtonsInfo","isPredefinedButtonName","defaultButtonInfo","buttonsInfo","$buttonsContainer","_compileButtonInfo","_createButton","buttonName","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","TextEditorLabel","containsButtonsBefore","beforeWidth","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","beforeButtonsClass","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","_buttonCollection","_labelContainerElement","onKeyUp","onEnterKey","showValidationMark","labelMark","_buttonsContainer","_updateButtonsStyling","_renderLabel","_renderEnterKeyAction","_getInputContainer","_renderPendingIndicator","$indicatorElement","_pendingIndicator","_disposePendingIndicator","_showValidMark","renderBeforeButtons","renderAfterButtons","_cleanButtonContainers","clean","_unobserveLabelContainerResize","inputAttrName","inputAttributes","defaultAttributes","updateButtons","buttonInstance","valid","_toggleSpellcheckState","_toggleTabIndex","buttonsBeforeWidth","updateBeforeWidth","_setFieldAria","_this$_$placeholder","getId","_$placeholder","labelConfig","_renderPlaceholderMarkup","_attachPlaceholderEvents","placeholderAttributes","startEvent","_placeholder","isCtrlEnter","isNewValue","keyPressEvent","_renderValueEventName","keyDownEvent","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","shouldPrevent","_isNestedTarget","_enterKeyAction","_enterKeyHandlerUp","updateMark","updateMode","updateContainsButtonsBefore","EMPTY_CHAR","BaseMaskRule","_next","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","isForwardDirection","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","maskChar","rest","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","allowedChars","StubMaskRule","hasValueProperty","nextArgs","DELETE_INPUT_TYPES","HISTORY_INPUT_TYPES","EVENT_NAMES","getEmptyString","MaskStrategy","_editorOption","_editorInput","_changeHandler","_previousText","_prevCaret","_editorCaret","_handleHistoryInputEvent","_handleBackwardDeleteInputEvent","currentCaret","_clearSelectedText","_autoFillHandler","_handleInsertTextInputEvent","_updateEditorMask","setForwardDirection","_adjustCaret","setBackwardDirection","_this$_prevCaret","_this$_prevCaret2","_isAutoFill","_this$_prevCaret$star","_this$_prevCaret3","textLength","processedCharsCount","_handleChain","_displayMask","correction","_showMaskPlaceholder","_isValueEmpty","_maskRulesChain","_maskKeyHandler","_handleKey","selectedText","getClipboardText","_clearDragTimer","_dragTimer","_convertToValue","pastedText","restText","accepted","inputVal","_inputHandlerTimer","_validateMask","_input$matches","handlerName","_attachChangeEventHandler","stubCaret","caretUtils","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","buildInMaskRules","isLiteralChar","isSpaceChar","A","isNumericChar","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","keyHandlerMap","_maskStrategy","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","mouseWheelAction","_removeHiddenElement","detachEvents","attachEvents","_parseMask","_renderMaskedValue","_suppressCaretChanging","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","_shouldShowMask","submitElementValue","_getPreparedValue","_isControlKeyFired","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","raiseInputEvent","_handleKeyChain","emptyChars","_tryMoveCaretBackward","caretStart","maskRuleIndex","_typingDirection","_updateHiddenElement","_updateMaskOption","_processEmptyMask","isFocusingOnCaretChange","getCaret","setCaret","scrollTopPos","scrollBottomPos","validateTarget","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","viewPortValue","initDeferred","DX_LINK_SELECTOR","DX_HAIRLINES_CLASS","ANY_THEME","THEME_MARKER_PREFIX","readThemeMarker","waitForThemeLoad","waitStartTime","intervalCleared","handleLoaded","isPendingThemeLoaded","isTimeout","anyThemePending","themeMarker","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","newContext","$allThemeLinks","fullThemeName","processMarkup","currentThemeData","isAutoInit","_autoInit","loadCallback","_forceTimeout","themeNameParts","$tester","themeReady","isTheme","themeRegExp","isWebFontLoaded","testElement","etalonFontWidth","testedFontWidth","waitWebFont","autoInit","resetTheme","initialized","setDefaultTimeout","TOAST_CLASS","TOAST_CLASS_PREFIX","toastTypes","TOAST_STACK","POSITION_ALIASES","DEFAULT_BOUNDARY_OFFSET","closeOnClick","_posStringToObject","_message","_toggleCloseEvents","verticalPosition","horizontalPosition","_hideTimeout","TOOLBAR_ITEMS","toggleItemFocusableElementTabIndex","_itemData$options","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","dxComponents","getItemInstance","_$focusTarget","$focusTarget","MultiLineStrategy","_toolbar","_this$_toolbar$option","_$toolbarItemsContainer","labelPaddings","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenuList","_renderSections","_setMenuRole","_getSections","section","sectionName","_updateSections","$sections","itemContainer","$after","_item$location","isAction","menuItemTemplate","DropDownMenu","_button","onButtonClick","_initButtonClickAction","_buttonClickAction","_getListDataSource","_deferRendering","_this$_list4","_this$_list5","_toggleMenuVisibility","_updateFocusableItemsTabIndex","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","SingleLineStrategy","_renderOverflowMenu","_renderMenuItems","_hasVisibleMenuItems","_renderMenuButtonContainer","_overflowMenuContainer","itemClickAction","_updateMenuVisibility","_getMenuItems","_$overflowMenuContainer","_$afterSection","isMenuVisible","renderMenuItems","_isMenuItem","_this$_toolbar$option2","_this$_restoreItems","$hiddenItems","_restoreItems","overflowItems","$itemMarkup","optionGetter","overflowGetter","itemVisible","itemOverflow","_this$_restoreItems2","_$centerSection","_hideOverflowItems","_elementWidth","itemsWidth","_getItemsWidth","_$beforeSection","_this$_menu","locateInMenu","_this$_menu2","_this$_menu3","_this$_menu4","_this$_menu5","_this$_menu6","menuContainer","overflowMenuVisible","_layoutStrategy","_renderLayoutStrategy","_isMultiline","showText","_arrangeItems","ToolbarBase","TOOLBAR_CLASS","CollectionWidgetEdit","_deferredItems","renderContentDeferred","itemDeferred","_postProcessRenderItems","_renderItemsAsync","TOOLBAR_BEFORE_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_LABEL_CLASS","TOOLBAR_COMPACT_CLASS","TEXT_BUTTON_MODE","rawModel","_data$options","_data$options2","_data$options$styling","_data$options3","_data$options$type","renderAs","_applyCompactMode","_renderToolbar","_updateDimensionsInMaterial","sectionClass","beforeRect","afterRect","_alignCenterSection","$section","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","freeSpace","sectionMaxWidth","_alignSection","leftRect","rightRect","centerRect","marginRight","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","_item$text","itemHasText","_group$location","groupItems","_renderGroupedItems","_waitParentAnimationTimeout","runCheck","readyToResolve","$labels","AsyncCollectionWidget","_contentId","_toggleAriaDescription","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","_getEventNameByOption","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","_updateItemSelection","toggleExpandedNestedItems","$rootElement","_toggleExpandedNestedItems","_showCheckboxes","asterisk","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","expandAllEnabled","hasItemsExpr","expandNodesRecursive","showCheckBoxesMode","expandIcon","collapseIcon","onItemSelectionChanged","scrollDirection","virtualModeEnabled","createChildren","_initSelectedItems","_fireSelectionChanged","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","dxCheckBox","getScrollable","_initExpandEvent","_useCustomChildrenLoader","_loadChildrenByCustomLoader","_isVirtualMode","_initVirtualMode","internal","_isDataStructurePlain","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","resultFilter","_updateLevel","_parentIdGetter","removedKey","_markChildrenItemsToRemove","_removeItems","_getContainerByParentKey","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_this$_dataSource","_this$_dataSource$loa","_this$_dataSource$loa2","_isSingleSelection","_isRecursiveSelection","_selectAllEnabled","skipContentReadyAction","_skipContentReadyAndItemExpanded","_scrollable","_expandedGetter","_node$internalFields","_node$internalFields$","_getLevel","_hasCustomExpanderIcons","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_renderCustomExpanderIcons","_renderDefaultExpanderIcons","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","$nestedNodeContainer","childNodesByChildrenKeys","_updateParentsState","_normalizeIconState","_getNode","expandedEventName","dblclickEvent","_getNodeByElement","_decodeString","_nodeHasRenderedChildren","_createLoadIndicator","_updateExpandedItemsUI","_renderExpanderIcon","_renderToggleItemVisibilityIconClick","$expandIcon","$collapseIcon","isNodeExpanded","_toggleCustomExpanderIcons","isHiddenNode","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","isExpanded","hasNewItems","_LoadIndicator$getIns","$toggleItem","_onSelectAllCheckboxValueChanged","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","parentValue","_createEventHandler","clickSelector","pointerDownSelector","pointerDownEvent","_updateSelectionToFirstItem","_updateSelectionToLastItem","isSelectAllItem","_setFocusedItemTimeout","_findNonDisabledNodes","$nodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","nextItemElement","$firstItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","decodeURI","expandItem","collapseItem","getNodes","getSelectedNodes","_allItemsExpandedHandler","expandAll","expandingPromises","allSettled","_this$_allItemsExpand","_allItemsExpanded","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_updateSearch","_repaintContainer","_updateDataAdapter","_getNodeContainer","_searchEditor","_getSearchEditorOptions","rootNodes","isSearchMode","_removeSearchBox","STATUS","BaseRuleValidator","rulesValidators","required","valueArray","RequiredRuleValidator","NumericRuleValidator","ignoreEmptyValue","useCultureSettings","RangeRuleValidator","validNumber","validValue","StringLengthRuleValidator","CustomRuleValidator","dataGetter","extraParams","AsyncRuleValidator","reevaluate","_getWrappedPromise","CompareRuleValidator","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","EmailRuleValidator","stringLength","email","GroupConfig","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_unsubscribeFromChangeEvents","_removePendingValidator","_orderBrokenRules","orderedRules","foundRules","_updateBrokenRules","_resolveIfComplete","_synchronizeValidationInfo","removeRegisteredValidator","registerValidator","getGroupConfig","findGroup","_$element$data","_$element$data$dxComp","dxValidationGroup","$dxGroup","initGroups","addGroup","removeGroup","_setDefaultMessage","defaultFormattedMessage","defaultMessage","_addBrokenRule","_rules$","asyncRuleItems","ruleValidationResult","ruleValidator","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","groupConfig","_validationGroup","asyncResults","validateResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","_getAsyncRulesResult","registerValidatorInGroup","_shouldRemoveGroup","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","initValidationOptions","initedOptions","synchronizeValidationOptions","newStatus","validateGroup","resetGroup","VALIDATION_ENGINE_CLASS","ValidationGroup","validatorContainer","Validator","_initGroupRegistration","summaryContainer","ValidationSummary","refreshValidationGroup","INVALID_MESSAGE","_renderInnerHtml","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","validationErrorMessage","_err$message","_getPositionsArray","rtlSide","componentOffset","VALIDATION_SUMMARY_CLASS","_unsubscribeGroup","_groupWasInit","groupSubscription","_groupValidationHandler","_getOrderedItems","orderedItems","foundItems","_validationSummary","_itemValidationHandler","itemsChanged","foundRule","DefaultAdapter","validationRequestsCallbacks","getCurrentValidationError","bypass","applyValidationResults","_initAdapter","skipValidation","_getEditor","dxStandardEditor","_this$option$editor$o","_this$option$editor","_toggleAccessibilityAttributes","_resetValidationRules","_getValidationRules","_validationRules","currentError","validatedAction","focusableFn","isTabIndexNotNaN","isDefaultFocus","isHyperlink","SWATCH_CONTAINER_CLASS_PREFIX","getSwatchContainer","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1015","W1016","W1017","W1018","W1019","W1020","W1021","W1022","W1023","EditorClass","searchEditorOptions","_renderSearch","searchBoxClassName","rootElementClassName","_$searchEditorElement","userEditorOptions","searchText","_valueChangeDeferred","_valueChangeTimeout","_getAriaTarget","getOperationBySearchMode","_cleanAria","setEditorClass","hoveredElement","getOptionsFromContainer","_renderHint","_isFocusable","_attachFeedbackEvents","_toggleIndependentState","_attachFocusEvents","_renderAccessKey","hasChildListeners","onlyChildProcessing","keyboardListeners","_hoverStartHandler","_hoverEndHandler","focusableSelector","_updatedHover","_hover","_findHoverTarget","$previous","newHoveredElement","widgetOptionMap","_isReady","isReady","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","wavesNumber","durations","getDurations","getWaves","inkRipple","getInkRipple","$currentWave","$wave","wave","hidingTimeout","hideSelectedWave","elementDiagonal","waveSize","getWaveStyleConfig","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","currentPaletteName","_floor","_ceil","_isArray","DEFAULT_PALETTE","palettes","simpleSet","indicatingSet","gradientSet","accentColor","currentPalette","normalizeEnum","getPalette","palette","themeDefault","_isString","RingBuf","ind","getAlternateColorsStrategy","stepHighlight","useHighlight","paletteSteps","_reset","originalPalette","getNewColor","getAlteredPalette","getColor","generateColors","createPalette","themeDefaultPalette","paletteObj","_extensionStrategy","getNextColor","extensionMode","paletteCount","cycles","cycleIndex","cycleCount","_Color","diapason","minL","maxL","cycleMiddle","cycleDiff","getExtrapolateColorsStrategy","extendedPalette","distributeColors","colorsCount","distribution","middleIndex","extraItems","getColorAndDistance","extendPalette","colorInGroups","currentColorIndex","cleanColorIndices","keepLastColorInEnd","paletteWithEmptyColors","paletteLength","color1","c2","color2","getColorMixer","currentColor","lightness","getDiscretePalette","colorCount","sourceCount","gradient","addColor","kr","createDiscreteColors","_getTheme","_addCacheItem","addCacheItem","_removeCacheItem","removeCacheItem","_extend","_each","getThemePart","_theme","BaseThemeManager","_themeSection","themeSection","_fontFields","fontFields","_callback","_font","setCallback","_current","_themeName","_defaultPalette","defaultPalette","_initializeTheme","_parseScalar","createDiscretePalette","createGradientPalette","getGradientPalette","getAccentColor","_initializeFont","E2001","E2002","E2003","E2004","E2005","E2006","E2007","E2008","E2009","E2101","E2102","E2103","E2104","E2105","E2202","E2203","W2002","W2003","W2101","W2102","W2103","W2104","W2105","W2106","W2107","W2108","W2301","_min","_max","horizontalAlignmentMap","verticalAlignmentMap","sideMap","slicersMap","pickValue","_normalizeEnum","normalizeLayoutOptions","primary","horizontalAlignment","verticalAlignment","secondary","weak","getShrink","processForward","minSide","processRectBackward","alignmentRect","primarySide","secondarySide","processBackward","fitRect","targetRect","itemFitRect","Layout","_targets","processBackwardHeaderRect","rectCopy","makeHeader","weakElement","weakSize","headerSize","weakRect","headerFitReact","headerRect","forward","layoutOptions","weakItem","processWeakItems","createTargets","backwardRect","targetSide","graphicObjects","warnings","createIncidentOccurred","eventTrigger","_stringFormat","getResizeManager","resizeCallback","createDeferredHandler","_log","OPTION_RTL_ENABLED","SIZED_ELEMENT_CLASS","getTrue","getFalse","defaultOnIncidentOccurred","pickPositiveValue","callForEach","floorCanvasDimensions","baseWidget","emptyComponentConfig","sizedElement","_getDefaultSize","EmptyComponent","originalInherit","getEmptyComponent","_eventsMap","onIncidentOccurred","actionSettings","onDrawn","_useLinks","_graphicObjects","_changesLocker","_optionChangedLocker","_asyncFirstDrawing","_changes","_suspendChanges","_themeManager","_createThemeManager","_requestChange","_themeDependentChanges","_initRenderer","linkTarget","_renderer","enableLinks","virtualLink","_toggleParentsScrollSubscription","_initEventTrigger","_incidentOccurred","_eventTrigger","_Layout","linkAfter","_initPlugins","_initCore","_change","_initialChanges","_getThemeManagerOptions","_plugins","plugin","_disposePlugins","codes","_resumeChanges","_applyingChanges","_applyChanges","_changesApplied","unlock","_optionsQueue","_applyQueuedOptions","resolveItemsDeferred","_legend","_notify","_resolveDeferred","_getTemplatesItems","_collectTemplatesFromItems","getTemplatesDef","getTemplatesGroups","_getExtraTemplatesItems","launchRequest","doneRequest","_setGroupsVisibility","_changesApplying","syncRendering","order","_totalChangesOrder","_optionChangesOrder","_layoutChangesOrder","_customChangesOrder","_change_EVENTS","applyChanges","_change_THEME","_setThemeAndRtl","_change_RENDERER","_setRendererOptions","_change_RESIZE_HANDLER","_setupResizeHandler","_change_ELEMENT_ATTR","_change_CONTAINER_SIZE","_updateSize","_change_LAYOUT","_setContentSize","_change_DISABLED","_initDisabledState","getGrayScaleFilter","rawCanvas","_calculateRawCanvas","_canvas","_rootClassPrefix","_rootClass","pathModified","_disposeRenderer","_disposeGraphicObjects","_getAnimationOptions","_stopCurrentHandling","_proxiedTargetParentsScrollHandler","_$prevRootParents","_removeResizeHandler","_disposeCore","eventsMap","callbackGetter","triggers","triggerEvent","eventInfo","createEventTrigger","defaultCanvas","getSizeOfSide","canvas1","canvas2","__forceRender","_recreateSizeDependentObjects","_getMinSize","_getAlignmentRect","nextRect","_applySize","_getOption","isScalar","redrawOnResize","_disposeResizeHandler","disposeHandler","resizeManager","_windowResizeCallbacks","createResizeHandler","_onBeginUpdate","_isObject","_getActionForUpdating","partialChanges","getPartialChangeOptionsName","pc","_partialOptionChangesMap","_optionChangesMap","_partialOptionChangesPath","changedOption","partialChangeOptionsName","_addOptionsNameForPartialUpdate","_checkOptionsForPartialUpdate","optionObject","optionKeys","_getRendererOptions","svg","_dataIsReady","_resetIsReady","_renderGraphicObjects","graphics","rotationAngle","linearGradient","radialGradient","customPattern","_drawn","onEndAnimation","replaceInherit","Flags","combineMaps","baseMap","thisMap","combineLists","baseList","thisList","buildTotalChanges","addChange","isThemeDependent","isOptionChange","createChainExecutor","executeChain","_chain","expander","addPlugin","customize","_flags","_inherit","plugins","initialChanges","themeDependentChanges","optionChangesMap","partialOptionChangesMap","partialOptionChangesPath","optionChangesOrder","layoutChangesOrder","customChangesOrder","easingFunctions","easeOutCubic","animationSvgStep","segments","progress","currentParams","curSeg","seg","arc","attributeName","currentSettings","animateStep","_animateStep","_progress","_calcProgress","_easing","_currentParams","delayTick","_startTime","tick","Animation","partitionDuration","AnimationController","_animationCount","_timerId","_animations","disableComplete","an","animations","activeAnimation","_endAnimation","_endAnimationTimer","addAnimation","_startDelay","animateElement","unstoppable","hasUnstoppableInAnimations","pxAddingExceptions","orphans","widows","KEY_STROKE","KEY_STROKE_WIDTH","KEY_STROKE_OPACITY","KEY_FONT_SIZE","NONE","ELLIPSIS","objectCreate","F","DEFAULTS","scaleX","getBackup","backupContainer","backupCounter","isObjectArgument","getFuncIri","preserveAspectRatioMap","lefttop","leftcenter","leftbottom","centertop","centerbottom","righttop","rightcenter","rightbottom","processHatchingAttrs","hatching","_hatching","lockDefsElements","releaseDefsElements","buildArcPath","innerR","outerR","startAngleCos","startAngleSin","endAngleCos","endAngleSin","isCircle","longFlag","buildPathSegments","buildLineSegments","buildCurveSegments","buildSegments","buildSimpleLineSegment","buildSimpleCurveSegment","buildSimpleSegment","_points$","k0","prepareConstSegment","constSeg","makeEqualLineSegments","makeEqualAreaSegments","constsSeg1","constsSeg2","shortLength","longLength","baseCss","elemStyles","_styles","fixFuncIri","baseAttr","hasTransformations","recalculateDashStyle","_settings","_addFixIRICallback","_originalSW","_applyTransformation","orderHtmlTree","parentStyle","parentClassName","realStyle","wholeText","KEY_FONT_WEIGHT","KEY_FONT_STYLE","KEY_TEXT_DECORATION","textDecoration","createTspans","restoreText","_hasEllipsis","cloneAndRemoveAttrs","detachTitleElements","titleElements","detachAndStoreTitleElements","getIndexForEllipsis","startBox","endBox","tspan","getSubStringLength","getTextWidth","getEllipsisString","ellipsisMaxWidth","hideOverflowEllipsis","setEllipsis","ellipsis","setNewText","wordWrap","lastStepBreakIndex","breakIndex","initialIndices","spaceIndices","spaceIndex","getSpaceBreakIndex","getWordBreakIndex","restLines","newTextOffset","restString","restTspan","textOverflow","commonLength","setMaxHeight","commonHeight","getItemLineHeight","calculateLineHeight","removeTextSpan","hasEllipsis","applyOverflowRules","texts","wordWrapLines","insertString","setTextNodeAttribute","maxLengthFontSize","locateTextNodes","_texts","_getLineHeight","fontSize1","fontSize2","parsedHeight1","parsedHeight2","height1","height2","baseAnimate","animationParams","translateX","translateY","rotateX","rotateY","buildLink","virtual","SvgElement","removeFuncIriCallback","fixFuncIriCallbacks","_getJQElement","_fixFuncIri","_clearChildrenFuncIri","clearChildren","_links","linkItem","_link","_linkAfter","linkOn","linkOff","updateIndexes","unlinkItem","linkAppend","_insert","linkRemove","toBackground","toForeground","smartAttr","sharp","sharpDirection","transformations","sharpMode","trDirection","strokeOdd","correctionX","correctionY","scaleXDefined","scaleYDefined","animOptions","_getElementBBox","bBox","getBBox","transformation","rotateBBox","normalizeBBox","stopAnimation","setTitle","titleElem","removeTitle","PathSvgElement","segment","jj","combinePathParam","newSegments","endSegments","curSegments","oldSegments","originalNewSegments","oldLength","newLength","makeEqualSegments","compensateSegments","ArcSvgElement","innerRadius","outerRadius","startAngle","endAngle","normalizeArcParams","arcParams","RectSvgElement","maxSW","newSW","_originalX","_originalY","_originalWidth","_originalHeight","TextSvgElement","xmlns","_locker","_backed","isResetRequired","wasStroked","maxTextWidth","textWidth","alignTextNodes","isStroked","parseMultiline","adjustLineHeights","findStyleAndClassAttrs","allTagAttrs","p3","removeExtraAttrs","createTextNodes","strokeOpacity","strokeTextNodes","applyEllipsis","lineParts","ellipsisWidth","prepareLines","setMaxSize","textChanged","textIsEmpty","restoreTitleElement","_defs","_animationController","updateAnimationOptions","removeByRenderer","stopAllAnimations","getRootOffset","simpleRect","circle","cx","preserveAspectRatio","setAttributeNS","stops","getNextDefsSvgId","gradientTransform","_createGradientStops","_stop$stopColor","stepTo2","stepBy15","patternUnits","patternContentUnits","_getPatternUnits","_getPointsWithYOffset","clipShape","methodArgs","clipPath","shape","clipRect","clipCircle","radius","shadowFilter","gaussianBlur","stdDeviation","flood","composite","in2","finalComposite","filterAttrs","offsetAttrs","floodAttrs","brightFilter","slope","componentTransferElement","_grayScaleFilter","lightenFilter","initDefsElements","storage","_defsElementsStorage","byHash","baseId","refToHash","nextId","drawPattern","storageId","drawFilter","storageItem","getHatchingHash","refreshPaths","LN10","atan2","_cos","_sin","sin","PI_DIV_180","_isNaN","_Number","numDefsSvgElements","PANE_PADDING","getLog","getAdjustedLog10","raiseTo","normalizeAngle","convertAngleToRendererSpace","degreesToRadians","getCosAndSin","angleInRadians","diffX","diffY","getDecimalOrder","cn","getAppropriateFormat","roundValue","getPower","selectByKeys","decreaseFields","eachDecrease","decrease","dec","setCanvasValues","originalTop","originalBottom","originalLeft","originalRight","normalizeBBoxField","xl","yt","w2","h2","w2_","h2_","decreaseGaps","arrayGaps","parseScalar","enumParser","stored","patchFontOptions","fontOptions","convertPolarToXY","centerCoords","normalizedRadius","cosSin","convertXYToPolar","phi","processSeriesTemplate","seriesTemplate","series","customizeSeries","nameField","generatedSeries","seriesOrder","nameFieldValue","orderedName","getCategoriesInfo","categories","swapBuf","categoriesValue","indexStartValue","indexEndValue","visibleCategories","lastIdx","isRelativeHeightPane","pane","normalizePanesHeight","panes","parsedHeight","relativeHeightPanes","weightSum","weightHeightCount","emptyHeightPanes","emptyHeightCount","weightForEmpty","emptyWeightSum","updatePanesCanvases","rotated","distributedSpace","paneSpace","totalCustomSpace","usefulSpace","startName","endName","calcLength","getVerticallyShiftedAngularCoords","horizontalOffset1","verticalOffset1","verticalOffset2","horizontalOffset2","mergeMarginOptions","opt1","opt2","checkInterval","percentStick","sizePointNormalState","getVizRangeObject","noArc","angleDiff","convertVisualRangeObject","visualRange","convertToVisualRange","getAddFunction","correctZeroLevel","rangeValue","marginValue","axisType","getLogExt","raiseToExt","adjustVisualRange","wholeRange","dataRange","minDefined","maxDefined","nonDiscrete","rangeLength","_categoriesInfo","allowNegatives","linearThreshold","transformValue","rangesAreEqual","rangeFromOptions","pointInCanvas","extractColor","isBase","fillId","WHITE","BLACK","LIGHT_GREY","GREY_GREEN","RED","PRIMARY_TITLE_COLOR","SECONDARY_TITLE_COLOR","SOLID","TOP","RIGHT","BOTTOM","LEFT","CENTER","INSIDE","OUTSIDE","primaryTitleColor","secondaryTitleColor","gridColor","axisColor","subtitle","loadingIndicator","export","shadowColor","arrowLength","paddingLeftRight","paddingTopBottom","shared","shadow","interactive","legend","hoverMode","markerSize","cornerRadius","columnCount","columnItemSpacing","rowItemSpacing","maxPointCountSupported","commonSeriesSettings","showInLegend","hoverStyle","valueErrorBar","displayMode","lineWidth","edgeLength","horizontalOffset","verticalOffset","radialOffset","showForZeroValues","customizeText","maxLabelCount","connector","seriesSelectionMode","pointSelectionMode","equalRowHeight","dataPrepareSettings","checkTypeForAllData","convertToAxisDataType","sortingMethod","adaptiveLayout","keepLabels","itemTextPosition","resolveLabelOverlapping","valueMarginsEnabled","placeholderSize","logarithmBase","discreteAxisDivisionMode","aggregatedPointsPosition","grid","minorGrid","minorTick","stripStyle","constantLineStyle","arrowWidth","allowDragging","chart","aggregation","scatter","stackedline","stackedspline","fullstackedline","fullstackedspline","stepline","stackedarea","fullstackedarea","fullstackedsplinearea","steparea","spline","splinearea","stackedsplinearea","bar","stackedbar","fullstackedbar","rangebar","rangearea","rangesplinearea","candlestick","reduction","stock","crosshair","verticalLine","horizontalLine","commonAxisSettings","multipleAxesSpacing","forceUserTickInterval","breakStyle","overlappingBehavior","indentFromAxis","horizontalAxis","axisDivisionFactor","staggeringSpacing","constantLines","verticalAxis","argumentAxis","endOnTick","aggregateByCategory","workWeek","valueAxis","autoBreaksEnabled","maxAutoBreakCount","commonPaneSettings","adjustOnZoom","autoHidePointMarkers","synchronizeMultiAxes","stickyHovering","barGroupPadding","minBubbleSize","maxBubbleSize","zoomAndPan","dragBoxStyle","panKey","allowMouseWheel","allowTouchGestures","pie","minDiameter","_skipArgumentSorting","doughnut","donut","gauge","hideFirstOrLast","rangeContainer","valueIndicators","twocolorneedle","secondColor","trianglemarker","textcloud","indicator","hasPositiveMeaning","_circular","scaleDivisionFactor","indentFromTick","valueIndicatorType","subvalueIndicatorType","indentFromCenter","spindleSize","spindleGapSize","beginAdaptingAtRadius","triangleneedle","secondFraction","_linear","horizontalOrientation","verticalOrientation","rectangle","barGauge","relativeInnerRadius","barSpacing","connectorWidth","rangeSelector","showCustomBoundaryTicks","topIndent","separatorHeight","textLeftIndent","textTopIndent","selectedRangeColor","sliderMarker","invalidRangeColor","sliderHandle","shutter","background","behavior","snapToTicks","moveSelectedRangeByClick","manualRangeSelectionEnabled","allowSlidersSwap","valueChangeMode","bottomIndent","layer","hoveredBorderColor","selectedBorderWidth","selectedBorderColor","hoveredColor","selectedColor","selectedStep","backStep","backColor","backOpacity","hoveredBorderWidth","backgroundOpacity","controlBar","treeMap","tile","sparkline","lineColor","areaOpacity","minColor","maxColor","barPositiveColor","barNegativeColor","winColor","lossColor","firstLastColor","pointSymbol","pointColor","pointSize","argumentField","valueField","winlossThreshold","showFirstLast","showMinMax","bullet","targetColor","showTarget","showZeroLevel","polar","closed","firstPointOnStartAngle","funnel","sortData","colorField","hoverEnabled","customizeTooltip","neckWidth","neckHeight","sankey","sourceField","targetField","weightField","useNodeColors","colorMode","baseThemeName","ACCENT_COLOR","BACKGROUND_COLOR","TITLE_COLOR","SUBTITLE_COLOR","TEXT_COLOR","BORDER_COLOR","SOME_GREY","RANGE_COLOR","LINE_COLOR","TARGET_COLOR","POSITIVE_COLOR","CONTRAST_ACTIVE","MARKER_COLOR","menuButtonColor","activeBackgroundColor","activeColor","FONT_FAMILY","LIGHT_LABEL_COLOR","DARK_TITLE_COLOR","DARK_LABEL_COLOR","DARK_BACKGROUND_COLOR","LABEL_BORDER_COLOR","BREAK_STYLE_COLOR","commonAnnotationSettings","getMaterialColorScheme","accentName","markerColor","materialAccents","accent","defaultTheme","themesMapping","themesSchemeMapping","nextCacheUid","widgetsCache","findThemeNameByName","scheme","findThemeNameByPlatform","colorScheme","getCurrentTheme","registerTheme","targetThemeName","themeInfo","splitter","getThemeInfo","registerThemeName","mergeScalar","mergeObject","patchAxes","patchMapLayers","patchTheme","registerThemeSchemeAlias","cacheUid","refreshTheme","lightThemes","carmineThemes","darkThemes","contrastThemes","darkMoonThemes","darkVioletThemes","greenMistThemes","softBlueThemes","materialThemes","canUseDOM","ExecutionEnvironment","canUseWorkers","canUseEventListeners","canUseViewport","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","getOwnPropertySymbols","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","isNullOrUndef","componentHooks","onComponentDidMount","onComponentDidUpdate","onComponentShouldUpdate","onComponentWillMount","onComponentWillUnmount","onComponentWillUpdate","_children","newProps","arguments$1","childLen","prop$1","getFlagsForElementVnode","isStringOrNumber","combineFrom","key$1","isLinkEventObject","normalizeEventName","insertOrAppend","newNode","callAll","arrayFn","findChildVNode","startEdge","removeVNodeDOM","moveVNodeDOM","createDerivedState","renderCheck","componentComparator","renderComplete","setTextContent","isLastValueSameLinkEvent","nextValue","mergeUnsetProperties","safeCall1","arg1","keyPrefix","childFlag","normalizeChildren","resolveComponentFlags","mergeDefaultProps","defaultHooks","mergeDefaultHooks","createTextVNode","createVoidVNode","directClone","vNodeToClone","propsToClone","oldChildren","cloneFragment","_normalizeVNodes","newKey","oldKey","isPrefixedKey","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","normalizeRoot","xlinkNS","xmlNS","getDelegatedEventObject","onDblClick","onKeyPress","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","$EV","attachedEvent","dispatchEvents","extendEventProperties","rootClickEvent","rootEvent","attachEventToDocument","unmountSyntheticEvent","isClick","getTargetNode","currentEvent","cancelBubble","immediatePropagationStopped","triggerEventListener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","previousKey","previousArgs","wrapped","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","nextPropsOrEmpty","updateChildOptions","updateChildOption","onSelectChange","applyValueSelect","mounting","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","domValue","processElement","isControlled","addFormElementEventHandlers","inputEvents","selectEvents","textAreaEvents","isControlledFormElement","unmountRef","mountRef","unmount","unmountAllChildren","componentWillUnmount","$UN","clearDOM","removeAllChildren","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","autofocus","lastAttrValue","nextAttrValue","domStyle","patchStyle","nextEvent","handleSyntheticEvent","wrapLinkEvent","patchEvent","mountProps","isFormElement","renderNewInput","nextInput","getChildContext","createClassComponentInstance","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","componentWillMount","$BR","$PS","mount","mountElement","mountClassComponentCallbacks","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountArrayChildren","mountFragment","placeHolderVNode","mountPortal","documentCreateElement","childrenIsSVG","componentDidMount","createClassMountCallback","createOnMountCallback","patch","nextVNode","nextFlags","newDom","lastDom","replaceWithNewNode","lastProps","lastPropsOrEmpty","nextChildren","nextClassName","patchContentEditableChildren","patchChildren","nextRef","lastRef","patchElement","componentWillReceiveProps","updateClassComponent","patchClassComponent","nextHooksDefined","lastInput","patchFunctionalComponent","patchText","lastChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchFragment","lastContainer","nextContainer","patchPortal","replaceOneVNodeWithMultipleVNodes","patchSingleTextChild","lastLength","nextLength","bLength","outerEdge","nextPos","aEnd","bEnd","aNode","bNode","aStart","bStart","aLeft","bLeft","sources","Int32Array","canRemoveWholeContent","patched","seq","arrI","maxLen","lis_algorithm","patchKeyedChildrenComplex","patchKeyedChildren","lastChildrenLength","nextChildrenLength","nextChild","patchNonKeyedChildren","lastState","hasSCU","shouldComponentUpdate","componentWillUpdate","snapshot","componentDidUpdate","createDidUpdate","rootInput","__render","QUEUE","microTaskPending","queueStateChanges","stateKey","applyState","$F","rerender","QU","$QU","callSetStateCallbacks","pendingState","_nextContext","noGlobal","getProto","flat","fnToString","ObjectFunctionString","preservedScriptAttributes","nonce","noModule","DOMEval","toType","rhtmlSuffix","isArrayLike","pushStack","elems","prevObject","even","_elem","odd","expando","globalEval","makeArray","inArray","isXMLDoc","namespaceURI","callbackExpect","whitespace","rtrimCSS","bup","rcssescape","fcssescape","asCodePoint","escapeSelector","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","nonHex","high","unloadHandler","inDisabledFieldset","addCombinator","nid","newSelector","testContext","tokenize","toSelector","qsaError","cacheLength","markFunction","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","matchIndexes","subWindow","getById","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","sortDetached","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","_argument","ofType","outerCache","useCache","pseudo","setFilters","unmatched","elemLang","safeActiveElement","_matchIndexes","gt","nth","radio","checkbox","submit","parseOnly","soFar","preFilters","cached","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","isXML","selectors","until","truncate","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","rparentsprev","guaranteedUnique","sibling","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","createOptions","firing","firingIndex","disable","tuples","newDefer","tuple","returned","onProgress","mightThrow","notifyWith","exceptionHook","getErrorHook","getStackHook","stateString","singleValue","remaining","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","readyException","readyList","completed","readyWait","wait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","_removeData","dequeue","startLength","hooks","_queueHooks","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","wrapMap","getAll","setGlobalEval","refElements","optgroup","rhtml","buildFragment","ignored","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","origFn","leverageNative","isSetup","saved","isTrigger","handleObjIn","eventHandle","origType","elemData","triggered","dispatch","delegateCount","mappedTypes","origCount","nativeEvent","handlerQueue","fix","preDispatch","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","beforeunload","isSimulated","bubbles","eventPhase","screenY","targetTouches","toElement","focusMappedHandler","documentMode","simulate","attaches","dataHolder","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","rnumnonpx","rcustomProp","opener","rboxStyle","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","borderBottomWidth","emptyStyle","vendorProps","finalPropName","cssProps","capName","vendorPropName","rdisplayswap","cssShow","cssNormalTransform","setPositiveNumber","subtract","boxModelAdjustment","computedVal","marginDelta","getWidthOrHeight","valueIsBorderBox","Tween","cssHooks","animationIterationCount","aspectRatio","borderImageSlice","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","origName","scrollboxSizeBuggy","propHooks","run","eased","fxNow","rfxtypes","rrun","createFxNow","genFx","includeWidth","createTween","tweeners","prefilters","currentTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speeds","fadeTo","optall","doAnimation","stopQueue","timers","cssFn","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","lastModified","etag","isLocal","processData","responseFields","converters","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","overrideMimeType","mimeType","finalText","ifModified","nativeStatusText","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","htmlIsFunction","xhrSuccessStatus","xhrSupported","cors","errorCallback","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","originalSettings","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","_jQuery","noConflict","eval","T","K","W","Y","gb","qc","aa","ba","qd","ra","Qb","mb","I","J","$c","Ja","deferUpdates","useOnlyNativeEvents","foreachHidesDestroyed","D","Na","MouseEvents","propertychange","Jc","Lb","Pa","wc","Mb","jb","Nb","bc","Ba","Ab","Ga","Tb","Yb","la","oa","Ca","va","Xc","Ua","Zc","Db","Ud","vd","Sb","kd","Ac","onError","Gc","za","Fb","Eb","baseVal","Bb","Ad","Yc","mergeAttributes","wd","Pd","Da","Zd","$d","Lc","Nd","Function","hc","Od","includeFields","submitter","Ub","cleanExternalData","yb","G","innerShiv","Md","fc","Uc","ud","Kd","Xb","bd","cd","na","scheduler","zb","resetForTesting","Sd","Ta","throttleEvaluation","Hb","ub","ic","lc","mc","Ib","fb","Jb","qb","U","hb","Qa","Gb","Wa","ed","xc","ob","Dd","nc","sb","rc","Bd","Qc","cc","od","pd","qa","Va","Ya","Yd","ya","xa","Ma","Za","Nc","Ha","trackArrayChanges","_destroy","destroyAll","sorted","reversed","zc","Pc","Pb","Ob","sparse","Kc","Xa","rb","jc","wb","Wc","Sa","disposeWhen","Rb","Ic","pure","deferEvaluation","ea","Ka","Vb","La","Ia","Jd","Rd","Hc","zd","yd","N","Oc","Fd","xb","ad","Wd","ma","__ko__hasDomDataOptionValue__","$b","unknown","Ra","wa","ac","vb","getBindingHandler","preprocess","valueAccessors","bindingParams","Id","eb","ul","ol","Ea","Vc","Wb","Cd","Vd","Sc","nodeHasBindings","getComponentNameForNode","getBindings","getBindingsString","parseBindingsString","tc","getBindingAccessors","Tc","yc","Kb","preprocessNode","bindingContextForDescendants","hd","Zb","Ec","Cb","Mc","shouldBindDescendants","$rawData","dataDependency","exportDependencies","noChildContext","$parentContext","Cc","Fa","notifyImmediately","Td","ib","ld","Oa","vc","Dc","definition","Gd","loaders","suppressLoaderExceptions","Bc","oc","DocumentFragment","Xd","tb","unregister","Fc","loadComponent","loadTemplate","HTMLElement","loadViewModel","dd","$raw","templateNodes","$component","$componentTemplateNodes","koDescendantsComplete","lookupNamespaceURI","removeAttributeNS","uniqueName","checkedValue","__ko__cssValue","foreach","Rc","includeDestroyed","afterAdd","beforeRemove","beforeMove","afterMove","hasfocus","__ko_hasfocusUpdating","__ko_hasfocusLastValue","let","selectedOptions","textinput","rd","form","renderTemplateSource","createJavaScriptEvaluatorBlock","isTemplateRewritten","allowTemplateRewriting","rewriteTemplate","kc","xd","Ld","md","ab","jd","bb","gc","dc","Qd","ifnot","dontLimitMoves","Aa","pb","_countWaitingForRemove","Ed","$a","Hd","koBindingContext","fragments","ko_code","ko_with","symbolTag","reAsciiWord","reLatin","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","freeGlobal","freeSelf","deburrLetter","hasUnicode","stringToArray","unicodeToArray","asciiToArray","objectToString","symbolProto","symbolToString","baseToString","isObjectLike","isSymbol","castSlice","baseSlice","iteratee","initAccum","arrayReduce","guard","hasUnicodeWord","unicodeWords","asciiWords","deburr","strSymbols","trailing","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","Uint8Array","resIndex","baseTimes","isArguments","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseFor","createBaseFor","castPath","toKey","arrayPush","keysFunc","symbolsFunc","getRawTag","symToStringTag","baseGetTag","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","arrayMap","stringToPath","coreJsData","fromRight","iterable","basePropertyOf","arraySome","cacheHas","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","mapToArray","setToArray","symbolValueOf","byteLength","byteOffset","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","nativeCreate","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","IE_PROTO","assocIndexOf","getMapData","memoize","overArg","freeExports","freeModule","freeProcess","nodeUtil","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsModifier","capitalize","createCompounder","baseHas","hasPath","baseHasIn","baseIsArguments","stubFalse","Buffer","baseIsTypedArray","baseUnary","nodeIsTypedArray","arrayLikeKeys","baseKeys","baseAssignValue","baseForOwn","baseIteratee","memoized","Cache","baseProperty","basePropertyDeep","snakeCase","createCaseFirst","_maxSize","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","safe","isBracket","acceptsBooleans","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","for","prepareStackTrace","Reflect","construct","$$typeof","_payload","_valueTracker","stopTracking","defaultChecked","_wrapperState","initialChecked","controlled","defaultSelected","db","MSApp","execUnsafeLocalFunction","borderImageOutset","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columns","flexPositive","flexNegative","flexOrder","gridRowSpan","gridColumnSpan","lineClamp","strokeDasharray","strokeDashoffset","menuitem","embed","img","keygen","track","wbr","correspondingUseElement","stateNode","alternate","memoizedState","dehydrated","unstable_scheduleCallback","unstable_cancelCallback","unstable_shouldYield","unstable_requestPaint","unstable_now","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","unstable_UserBlockingPriority","unstable_NormalPriority","unstable_LowPriority","unstable_IdlePriority","clz32","LN2","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","eventTimes","blockedOn","domEventName","eventSystemFlags","targetContainers","isDehydrated","containerInfo","ReactCurrentBatchConfig","_reactName","_targetInst","persist","isPersistent","fromElement","movementX","movementY","elapsedTime","pseudoElement","Spacebar","Del","Win","Apps","Scroll","MozPrintableKey","Alt","Control","Meta","Shift","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","wheelDeltaX","wheelDeltaY","wheelDelta","ae","ge","tel","ie","je","ke","le","me","oe","pe","qe","ue","oninput","ve","we","xe","ye","ze","Ae","Ce","De","Ee","Fe","Ge","He","HTMLIFrameElement","contentWindow","Ie","contentEditable","Je","focusedElem","anchorNode","anchorOffset","focusNode","focusOffset","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","animationend","animationiteration","animationstart","transitionend","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","bf","cf","gf","hf","jf","kf","lf","mf","pf","qf","rf","fe","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Df","queueMicrotask","Cf","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Tf","Uf","Vf","Wf","Xf","__reactInternalMemoizedMergedChildContext","Yf","Zf","$f","ag","dg","eg","fg","gg","hg","jg","kg","_currentValue","childLanes","ng","dependencies","firstContext","lanes","og","pg","memoizedValue","qg","rg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","interleaved","eventTime","vg","wg","xg","yg","zg","Ag","Bg","Cg","Fg","isMounted","_reactInternals","enqueueSetState","Dg","Eg","enqueueReplaceState","enqueueForceUpdate","Gg","isPureReactComponent","Hg","updater","Ig","UNSAFE_componentWillReceiveProps","Jg","UNSAFE_componentWillMount","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","elementType","deletions","bh","pendingProps","treeContext","retryLane","eh","fh","memoizedProps","gh","hh","ih","_stringRef","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","yh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","gi","ji","li","ni","oi","pi","qi","ri","wi","xi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","zi","Ai","Li","Ni","Oi","Bi","Ci","Di","Ei","Fi","componentDidCatch","Gi","componentStack","Hi","pingCache","Ii","Ji","Ki","Pi","tailMode","tail","subtreeFlags","Qi","pendingContext","Ri","wasMultiple","autoFocus","Si","rendering","Ti","renderingStartTime","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","UNSAFE_componentWillUpdate","hj","ij","kj","lj","mj","nj","oj","pj","qj","_reactRetry","rj","sj","tj","uj","vj","xj","yj","zj","Aj","WeakSet","Bj","Cj","Dj","Ej","Gj","Hj","Ij","Jj","onCommitFiberUnmount","Kj","Lj","Mj","Nj","Oj","Pj","Qj","_reactRootContainer","Rj","Sj","Tj","Xj","Yj","Zj","__reactInternalSnapshotBeforeUpdate","Wj","Lk","bk","ck","dk","ek","fk","gk","hk","ik","jk","Vj","lk","nk","pk","qk","rk","callbackNode","expirationTimes","expiredLanes","callbackPriority","cg","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","finishedWork","finishedLanes","Fk","timeoutHandle","Gk","Hk","Ik","Jk","Kk","mutableReadLanes","Fj","Uj","onCommitFiberRoot","onRecoverableError","Mk","onPostCommitFiberRoot","Nk","Ok","Qk","isReactComponent","pendingChildren","Rk","mutableSourceEagerHydrationData","Sk","transitions","Tk","Uk","Vk","Wk","Xk","Yk","Zk","wj","Pk","al","bl","_internalRoot","cl","dl","fl","hl","unstable_scheduleHydration","il","usingClientEntryPoint","Events","jl","findFiberByHostInstance","bundleType","rendererPackageName","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","ll","supportsFiber","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ReactQueryDevtools","ReactQueryDevtoolsPanel","getLogger","setLogger","newLogger","NotifyManager","transactions","notifyFn","batchNotifyFn","_proto","batch","flush","scheduleMicrotask","batchCalls","setNotifyFunction","setBatchNotifyFunction","notifyManager","_inheritsLoose","subClass","superClass","Subscribable","onSubscribe","onUnsubscribe","hasListeners","focusManager","_Subscribable","FocusManager","isServer","setEventListener","_this$cleanup","_this$cleanup2","setFocused","visibilityState","onlineManager","OnlineManager","onOnline","online","setOnline","isOnline","onLine","defaultRetryDelay","failureCount","isCancelable","CancelledError","revert","isCancelledError","Retryer","cancelFn","continueFn","promiseResolve","promiseReject","cancelRetry","cancelOptions","continueRetry","continue","isPaused","isTransportCancelable","outerResolve","outerReject","onSuccess","promiseOrValue","_unused","_config$retry","_config$retryDelay","retry","retryDelay","shouldRetry","onFail","sleep","continueResolve","onPause","onContinue","abortSignalConsumed","hadObservers","observers","queryKey","queryHash","initialState","getDefaultState","scheduleGc","_this$options$cacheTi","cacheTime","setDefaultOptions","clearGcTimeout","isValidTimeout","gcTimeout","optionalRemove","isFetching","_this$options$isDataE","prevData","functionalUpdate","isDataEqual","structuralSharing","replaceEqualDeep","dataUpdatedAt","updatedAt","setStateOptions","_this$retryer","retryer","isStale","isInvalidated","getCurrentResult","isStaleByTime","staleTime","timeUntilStale","_this$retryer2","shouldFetchOnWindowFocus","refetch","_this$retryer3","shouldFetchOnReconnect","addObserver","removeObserver","getObserversCount","invalidate","fetchOptions","_this$options$behavio","_context$fetchOptions","_abortController$abor","cancelRefetch","_this$retryer4","queryFn","ensureQueryKeyArray","getAbortController","queryFnContext","pageParam","_this$options$behavio2","_context$fetchOptions2","fetchFn","onFetch","revertState","fetchMeta","reducer","onQueryUpdate","initialData","initialDataUpdatedAt","dataUpdateCount","errorUpdateCount","errorUpdatedAt","fetchFailureCount","_action$meta","_action$dataUpdatedAt","QueryCache","queries","queriesMap","build","client","_options$queryHash","hashQueryKeyByOptions","defaultQueryOptions","getQueryDefaults","queryInMap","arg2","parseFilterArgs","exact","matchQuery","Mutation","mutationId","mutationCache","variables","restored","onMutate","executeMutation","onSettled","_this$options$retry","mutationFn","onMutationUpdate","MutationCache","mutation","defaultMutationOptions","mutationKey","getMutationDefaults","matchMutation","resumePausedMutations","pausedMutations","getNextPageParam","pages","getPreviousPageParam","QueryClient","queryCache","queryDefaults","mutationDefaults","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","fetching","isMutating","getQueryData","_this$queryCache$find","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","parsedOptions","parseQueryArgs","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","arg3","_parseFilterArgs3","refetchFilters","refetchQueries","cancelQueries","_parseFilterArgs4","_parseFilterArgs4$","invalidateQueries","_filters$refetchActiv","_filters$refetchInact","_parseFilterArgs5","refetchActive","refetchInactive","_this6","_parseFilterArgs6","refetchPage","throwOnError","fetchQuery","prefetchQuery","fetchInfiniteQuery","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","abortSignal","newPageParams","cancelled","buildNewPages","fetchPage","manual","queryFnResult","_manual","_param","shouldFetchFirstPage","_param2","finalPromise","prefetchInfiniteQuery","cancelMutations","_this7","getMutationCache","setQueryDefaults","hashQueryKey","_this$queryDefaults$f","partialMatchKey","setMutationDefaults","_this$mutationDefault","_defaulted","defaultQueryObserverOptions","isQueryKey","stale","queryStatusFilter","mapQueryStatusFilter","queryKeyHashFn","asArray","partialDeepEqual","aSize","bItems","bSize","equalItems","hasObjectPrototype","prot","AbortController","ReactDOM","defaultContext","React","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","QueryClientProvider","_ref$contextSharing","Context","topbar","semaphore","getTopBar","TopBar","__self","__source","jsx","jsxs","_status","_result","Children","only","PureComponent","cloneElement","_currentValue2","_threadCount","Consumer","_globalName","createFactory","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","getRangeAt","lastTime","vendors","currTime","timeToCall","progressTimerId","fadeTimerId","currentProgress","autoRun","barThickness","barColors","shadowBlur","lineGradient","createLinearGradient","addColorStop","beginPath","lineTo","strokeStyle","createCanvas","toposort","edges","outgoingEdges","edge","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","__assign","__rest","__decorate","decorate","__param","paramIndex","__metadata","metadataKey","metadataValue","__generator","sent","trys","verb","__createBinding","k2","__esModule","__exportStar","__read","__spread","__spreadArrays","__spreadArray","pack","__await","__asyncGenerator","asyncIterator","resume","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__setModuleDefault","__importStar","__classPrivateFieldGet","receiver","__classPrivateFieldSet","__classPrivateFieldIn","_typeof","_regeneratorRuntime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","delegateResult","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","_arrayLikeToArray","arr2","_arrayWithHoles","_assertThisInitialized","ReferenceError","_classCallCheck","Constructor","_construct","Parent","_defineProperties","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_e2","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","_superPropBase","_get","_getPrototypeOf","_inherits","_isNativeReflectConstruct","sham","Proxy","_iterableToArray","_nonIterableRest","excluded","sourceKeys","_setPrototypeOf","_slicedToArray","arrayWithHoles","_s","_r","_arr","_n","unsupportedIterableToArray","nonIterableRest","_toConsumableArray","arrayLikeToArray","iterableToArray","_toPropertyKey","prim","toPrimitive","_unsupportedIterableToArray","minLen","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdD","leafPrototypes","chunkId","miniCssF","dataWebpackPrefix","needAttach","onScriptComplete","doneFns","nmd","paths","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","ownKeys","enumerableOnly","sym","_objectSpread2","defineProperties","requestAnimFrame","updateFn","updateArgs","ticking","_toLeftRightCenter","_alignStartEnd","isNumberFinite","finiteOrDefault","valueOrDefault","toDimension","loopable","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","merger","mergeIf","_mergerIf","indexOfDotOrLength","resolveObjectKey","_capitalize","defined","setsEqual","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","niceNum","roundedRange","almostEquals","niceRange","epsilon","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","atEdge","elasticIn","elasticOut","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","h1","hexString","isShort","lim","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb2hsl","calln","hsl2rgb","hueParse","hwb2rgb","hsv2rgb","names$1","map$1","OiceXe","antiquewEte","aquamarRe","azuY","blanKedOmond","XeviTet","bPwn","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","pRk","powMrXe","purpN","YbeccapurpN","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","skyXe","UXe","UWay","UgYy","sprRggYF","stAlXe","teO","tEstN","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","unpacked","tkeys","unpack","transparent","modHSL","fromObject","functionParse","rgbParse","hexParse","_rgb","_valid","hslString","deg","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","overrides","descriptors","getScope$1","Defaults","_descriptors","datasets","getDevicePixelRatio","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","maintainAspectRatio","onHover","parsing","responsive","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","local","_scriptable","_indexable","_fallback","_measureText","longest","measureText","_longestText","arrayOfThings","garbageCollect","jlen","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","resetTransform","drawPoint","xOffset","yOffset","pointStyle","rad","drawImage","closePath","SQRT1_2","_isPointInArea","clipArea","unclipArea","_steppedLineTo","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","strokeColor","setRenderOpts","strokeText","fillText","decorateText","textAlign","textBaseline","strikethrough","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","_readValueToProps","toTRBL","toTRBLCorners","toPadding","toFont","toFontString","inputs","cacheable","_lookup","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","_chartjs","_arrayUnique","_createResolver","scopes","prefixes","rootScopes","deleteProperty","_cached","_resolveWithPrefixes","_scopes","getKeysFromAllScopes","_storage","_attachContext","subProxy","descriptorDefaults","_cacheable","_proxy","_subProxy","_stack","setContext","override","isScriptable","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","readKey","resolveFallback","getScope","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","pointBefore","iPixel","vPixel","capControlPoint","_updateBezierControlPoints","controlPoints","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","parseMaxStyle","parentProperty","valueInPixels","getPositionedStyle","getRelativePosition","borderBox","useOffsetPos","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","containerStyle","containerBorder","containerPadding","getContainerSize","retinaScale","forceRatio","forceStyle","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","cacheKey","getNumberFormat","getRtlAdapter","rectX","xPlus","leftForLtr","getRightToLeftAdapter","_itemWidth","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","propertyFn","normalizeSegment","_boundSegment","startBound","endBound","getSegment","subStart","shouldStart","shouldStop","_boundSegments","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","_request","_charts","_running","_lastDate","anims","numSteps","currentStep","_total","charts","_getAnims","_duration","animator","interpolators","factor","c0","mix","cfg","_fn","_from","_to","_promises","elapsed","remain","rej","resolved","animationOptions","Animations","_properties","animatedProps","$shared","$animations","resolveTargetOptions","_createAnimations","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","singleMode","isStacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","_cachedMeta","_stacks","iScale","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","DatasetController","_ctx","_cachedDataOpts","getMeta","_parsing","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","_syncList","linkScales","_stacked","addElements","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","listenArrayEvents","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","getLabels","singleScale","xAxisKey","yAxisKey","canStack","otherScale","_getOtherScale","createStack","NEGATIVE_INFINITY","getUserBounds","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","sharing","datasetElementScopeKeys","resolveNamedOptions","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","numMeta","numData","_insertElements","_removeElements","updateElements","_dataChanges","_sync","newCount","computeMinSampleSize","$bar","visibleMetas","getAllParsedValues","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","ticks","getPixelForTick","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","setBorderSkipped","borderSkipped","borderProps","enableBorderRadius","parseEdge","v2","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","getBasePixel","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","updateElement","_getStacks","pixels","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","_value_","beginAtZero","BubbleController","getPixelForDecimal","DoughnutController","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","animateScale","_circumference","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","LineController","_dataset","animationsDisabled","pointCount","getStartAndCountOfVisiblePoints","_scaleRanges","xmin","xmax","ymin","ymax","scaleRangesChanged","_decimated","maxGapLength","directUpdate","prevParsed","nullData","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","cutoutPercentage","getVisibleDatasetCount","xCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","_fullLoop","getPointPositionForValue","ScatterController","DateAdapter","timestamp","adapters","getRelativePosition$1","metaset","lookupMethod","_reversePixels","optimizedEvaluateItems","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","_minPadding","getNearestCartesianItems","distanceMetric","useX","useY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","fullSize","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","widthChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","EVENT_TYPES","touchstart","touchmove","touchend","pointerdown","pointermove","pointerup","pointerout","isNullOrEmpty","eventListenerOptions","nodeListContains","nodeList","createAttachObserver","removedNodes","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","listenDevicePixelRatioChanges","releaseObserver","unlistenDevicePixelRatioChanges","createProxyAndListen","fromNativeEvent","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","isConnected","defaultRoutes","formatters","tickValue","maxTick","logDelta","numDecimal","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","getMajorIndices","numMajorIndices","newTicks","skipMajors","evenMajorSpacing","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","minor","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","afterFit","afterUpdate","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetRight","generateTickLabels","_computeLabelSizes","tickFont","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","ticksLength","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","optsAtIndex","tickBorderDash","tickBorderDashOffset","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","labelPadding","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","gz","axisID","TypedRegistry","parentScope","isIChartComponent","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","Registry","_typedRegistries","typedRegistry","_getRegistryForType","isForType","_exec","itemReg","camelMethod","PluginService","_createDescriptors","_oldCache","_notifyStateChanges","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","axisFromPosition","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","addIfFound","_config","_scopeCache","_resolverCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","getResolver","subPrefixes","needContext","subResolver","resolverCache","hasFunction","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","onAnimationsComplete","onComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_aspectRatio","_metasets","_lastEvent","_responsiveListeners","_sortedMetasets","_hiddenIndices","_doResize","debounce","resizeDelay","bindEvents","_resizeBeforeDraw","newSize","newRatio","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_updateHoverStyles","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","_getUniformDataChanges","datasetCount","makeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","lastActive","hoverOptions","deactivated","updateHoverStyle","inChartArea","eventFilter","_handleEvent","_getActiveElements","_isClickEvent","determineLastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","lineJoin","fullCircles","drawFullCircleBorders","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","PointElement","hoverRadius","getBarBounds","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","beforeElementsUpdate","xAxis","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","maxAreaPoint","maxArea","nextA","bucketWidth","sampledIndex","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","xMin","intermediateIndex1","intermediateIndex2","minMaxDecimation","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","computeLinearBoundary","findSegmentEnd","addPointsBelow","sourcePoint","linesBelow","postponed","findPoint","interpolate","pointValue","linePoints","firstValue","getLineByIndex","sourcePoints","below","getLinesBelow","createBoundaryLine","buildStackLine","pointsFromSegments","resolveTarget","propagate","clipY","lineLoop","_getEdge","clipBounds","interpolatedLineTo","interpolatedPoint","_fill","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","notShape","targetLoop","drawfill","lineOpts","above","doFill","plugin_filler","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","rtlHelper","hitbox","_draw","fontColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","adjustHitBoxes","afterEvent","handleEvent","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","plugin_subtitle","positioners","average","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","_eventPosition","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","createTooltipContext","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addedLabels","addIfString","CategoryScale","_startValue","_valueRange","_addedLabels","getDecimalForPixel","generateTicks$1","generationOptions","niceMin","niceMax","numSpaces","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","stepSize","computeTickLimit","getTickLimit","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","drawPointLabels","gridLineOpts","drawRadiusLine","INTERVALS","UNITS","sorter","_parseOpts","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","minorFormat","majorFormat","_tickFormatFunction","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","registerables","I18N_CONFIG_KEY","REACT_APP_I18N_CONFIG_KEY","selectedLang","I18nContext","MetronicI18nProvider","ls","localStorage","isBlazorPlatform","classFunction","arrayParam","Uint16Array","msCrypto","crypto","getRandomValues","secret","combineArray","messageHandler","nameSpace","fromObj","isNullOrUndefined","containerObject","temrObj","tempProp","keys_1","_loop_1","arguments_1","isArrayChanged","blazorEventExtend","isBlazor","compareElementParent","HijriParser","defaultNumberSymbols","latnNumberSystem","ParserBase","getMainObject","cName","getNumberingSystem","numberingSystems","reverseObject","propKeys_1","getSymbolRegex","regexStr","getSymbolMatch","matchKeys_1","constructRegex","convertValueParts","getDefaultNumberingSystem","nSystem","getCurrentNumericOptions","curObj","numberSystem","needSymbols","blazorMode","numericPair","numberParseRegex","numericRegex","symbolNumberSystem","symbolMatch","getNumberMapper","numberSymbols","latnNumberSystem_1","nPair","nRegex","blazorCurrencyData","dateCorrection","getHijriDate","gDate","tMonth","tYear","yPrefix","julilanOffset","julianNumber","tempMonth","modifiedJulianDate","iyear","cyc","iy","im","tempDay","iln","hYear","hmonth","hDate","toGregorian","julianDate","gDay","gMonth","gYear","abbreviateRegexGlobal","weekdayKey","timeSetter","datePartMatcher","DateFormat","dateFormat","culture","cldr","dependable","numObject","dateObject","formatOptions","isIslamic","isServerRendered","resPattern","skeleton","dateSeperator","numMapper","parserObject","patternMatch_1","designator","eText","era","intDateFormatter","dObject","getCurrentDateValue","matches_1","length_1","curval","curvalstr","processNumber","curstr","curlength","desig","retu","timezone","pattern_1","hourFormat","gmtZeroFormat","getTimeZoneValue","gmtFormat","checkTwodigitNumber","tVal","curPattern","ishour","numberFormatter","symbolPattern","fOptions","cOptions","dOptions","numericObject","numberMapper","defaultCurrencyCode","altSymbol","percentSymbol","minusSymbol","isCurrency","isAccount","groupOne","checkValueRange","nData","pData","groupSeparator","getGroupingDetails","minimumFraction","mval","maximumFraction","mfrac","lfrac","intNumberFormatter","val1","val2","checkbothExist","isFraction","decide","dint","str1","str2","checkRange","curData","zeroData","fValue","processSignificantDigits","processFraction","processMinimumIntegers","customPivotFormat","groupNumbers","nlead","nend","level1","decimalSymbol","level2","latnRegex","DateParser","numOptions","parseOptions","hourOnly","regexString","evalposition","patternMatch","gmtCorrection","zCorrectTemp","isgmtTraversed","nRegx","canUpdate","charKey","optional","weekData","weekObject","monthData","periodValur","tzone","hpattern","parseTimeZoneRegx","parserRegex","parsedDateParts","internalDateParse","dobj","tDate","ystrig","is2DigitYear","getDateObject","tKeys_1","tValue","pDate","lDate","tzValue","retOptions","props_1","curObject","matchString","internalNumberParser","tmatch","getZoneValue","tZone","splitStr","cRegex","ival","parseRegex","groupRegex","NumberParser","numberParser","symbolpattern","symbolRegex","getParsedNumber","tempValue","convertMaxFracDigits","decimalSplitValue","ranArray","boundedEvents","cntxt","notExist","isHandlerPresent","indexLocation","successHandler","blazorCallback","curObject_1","objs","obj_1","isJson","dateReviver","boundedEvents_1","onIntlChange","rightToLeft","defaultCulture","Internationalization","cultureName","getDateFormat","getCulture","getDateParser","getNumberParser","getDatePattern","isExcelFormat","IntlBase","getNumberPattern","isExcel","getFirstDayOfWeek","blazorCultureFormats","negativeDataRegex","customRegex","latnParseRegex","fractionRegex","patternRegex","dateConverterMapper","islamicRegex","firstDayMapper","formatRegex","currencyFormatRegex","curWithoutNumberRegex","typeMapper","getResultantPattern","blazorCulture","iType","compareBlazorDateFormats","basicPatterns","dPattern","tPattern","getDependables","calendartype","blazorDefaultObject","defaultObject","getSymbolPattern","numSystem","ConvertDateToWeekFormat","convertMapper","tempString","curFormatMapper","getProperNumericSkeleton","patternMatcher","getFormatData","needFraction","cSymbol","fractionOnly","changeCurrencySymbol","groupPattern","fmatch","currencyCode","customNumberFormat","spaceCapture","spaceGrouping","fractionPart","isCurrencyPercent","fractionDigitsPattern","minDigits","minimumIntegerPattern","groupingPattern","dateParseRegex","customFormat","formatSplit","getDateSeparator","dateObj","getActualDateTimeFormat","actualPattern","tLength","timeZonePattern","options_1","getActualNumberFormat","minFrac","numrericObject","curMatch","curCode","hasNegativePattern","cPattern","processSymbol","getWeekData","iCulture","replaceBlazorCurrency","aCurrency","rCurrency","iCurrency","pData_1","getWeekOfYear","weeknum","newYear","daynum","nday","headerRegex","REGX_MOBILE","Ajax","emitError","stateChange","onAbort","failureHandler","onFailure","REGX_IE","REGX_IE11","REGX_IOS","REGX_IOS7","REGX_ANDROID","REGX_WINDOWS","REGX_VERSION","REGX_BROWSER","OPERA","EDGE","CHROME","PANTHOMEJS","SAFARI","WEBKIT","MSIE","MOZILLA","browserDetails","Browser","extractBrowserDetail","browserInfo","clientInfo","getEvent","isPointer","isTouch","isDevice","getTouchStartEvent","getTouchEndEvent","getTouchMoveEvent","getTouchCancelEvent","regX","uA","isMSPointer","isWebView","cordova","PhoneGap","phonegap","forge","touchStartEvent","touchMoveEvent","touchEndEvent","touchCancelEvent","EventHandler","addOrGetEventData","__eventList","bindTo","intDebounce","debounceListener","eventFunction","later","clearEvents","copyData","eventProp","eventData_1","event_1","SVG_REG","ele","iKey","getClassList","classList_1","curClass","classList_2","classArr","needsVDOM","querySelectId","charRegex","idList","splitId","setId","setStyleAttribute","isColEName","Base","isComplexArraySetter","allowServerDataBinding","isProtectedOnChange","changedProperties","oldProperties","bulkChanges","refreshing","ignoreCollectionWatch","finalUpdate","childChangedProperties","modelObserver","addInstance","setProperties","isDestroyed","muteOnChange","prevDetection","dataBind","serverDataBind","callChildDataBind","clearChanges","newChanges","oldChanges","onPropertyChanged","saveChanges","moduleClass","getModuleName","ej2_instances","getObject","curKey","propertyGetter","propertySetter","complexGetter","complexSetter","Property","propertyDescriptor","addPropertyCollection","Complex","eventDescriptor","finalContext","NotifyPropertyChanges","classConstructor","propertyType","propList","complexProps","colProps","propNames","complexPropNames","colPropNames","curText","easeIn","easeOut","easeInOut","elasticInOut","Animation_1","elements_1","element_1","delayAnimation","animationId","frameId","animationMode","applyAnimation","prevTimeStamp","startAnimation","timingFunction","newProp","oldProp","accountURL","ModuleLoader","loadedModules","requiredModules","moduleList","reqLength","clearUnusedModule","modl","moduleList_1","modName","isModuleLoaded","moduleObject","getMemberName","isProperty","usedModules","removableModule_1","ChildProperty","parentObj","controlParent","isParentArray","updateChange","updateTimeOut","changeTime_1","restrictServerDataBind","isSaveChanges","parent_1","getParentKey","complexKeys","isFinal","componentList","bypassKey","LicenseValidator","isValidated","isLicensed","noLicense","trailExpired","versionMismatched","platformMismatched","invalidKey","manager","licKey","setKey","npxManager","convertToChar","validateMsg","validateURL","getInfoFromKey","result_1","invalidPlatform","expiryDate","expDate","currDate","licenseContent","errorDiv","getDecryptedData","atob","pkey","decryptedStr","resultArray","isNpxKey","licKeySplit","licKeySplit_1","lKey","decodeStr","buffr","decryptedKey","licenseValidator","cArr","cArr_1","registerLicense","lastPageID","componentCount","lastHistoryLen","instancecount","isvalid","isBannerAdded","versionBasedStatePersistence","randomId","uniqueID","isStringTemplate","needsID","isReactHybrid","enableRtl","moduleLoader","localObserver","detectFunction","enablePersistence","setPersistData","preRender","injectModules","accessMount","getRootElement","actualElement","getLocalData","eleId","ej2StatePersistenceVersion","getUniqueID","mergePersistData","inst","bannerTemplate","errorBackground","createLicenseOverlay","wrapperElement","event_2","getInjectedModules","injectedModules","Inject","isVDOM","triggerStateChange","currentContext","calls","setItem","getPersistData","renderReactTemplates","clearTemplate","definedName","isHistoryChanged","pageID","history","addOnPersist","persistObj","getActualProperties","ignoreOnPersist","iterateJsonProperties","ignoreList","newObj","newList","this_1","defaultPosition","isDraggedObject","isDragged","dragLimit","Draggable_1","getDefaultPosition","prevLeft","prevTop","dragProcessStarted","eleTop","tapHoldTimer","externalInitialize","parentScrollX","parentScrollY","droppables","toggleEvents","isUnWire","enableTapHold","mobileInitialize","removeTapholdTimer","tapHoldThreshold","getScrollableParent","tempScrollHeight","tempScrollWidth","getScrollableValues","curTarget","currentStateTarget","isDragStarted","abortSelectors","intCoord","getCoordinates","initialPosition","relativeXPosition","relativeYPosition","intDragStart","intDestroy","isPreventSelect","isChangeTouch","intCordinate","dragTarget","intClosest","isReplaceDragEle","currentStateCheck","calculateParentPosition","isDragScroll","getHelperElement","dragTargetElement","helperElement","parentClientRect","dragStart","getProperTargetElement","bindDragEvents","dragArea","setDragArea","enableTailMode","enableScrollHandler","posValue","getProcessedPositionValue","dragElePosition","getDragPosition","intDrag","intDragStop","setGlobalDroppables","elementInViewport","queryPositionInfo","docHeight","getDocumentWidthHeight","docWidth","eleObj","checkTargetElement","hoverObject","triggerOutFunction","intOver","tLeft","tTop","pagex","pagey","dLeft","dTop","skipDistanceCheck","helperWidth","helperHeight","draEleTop","draEleLeft","iTop","iLeft","tempDraEleTop","dragValue","enableAutoScroll","getPathElements","scrollParent","getScrollParent","getScrollPosition","hasScroll","nodeEl","scrollingElement","nodeEle","elementTop","elementLeft","intOut","docBody","docEle","dragStop","dragStopCalled","intDrop","eleWidthBound","eleHeightBound","elementArea","tborder","tpadding","lowerKey","elementFromPoint","oldEle","isdragscroll","dragEle","isOffsetParent","isVerticalScroll","cursorAt","draggedElement","dropIns","getDropInstance","drop","eleInst","eleInst_1","Droppable","mouseOver","wireEvents","isDrag","isDropArea","droppedElement","coord","KeyboardEvents","isAltKey","isCtrlKey","isShiftKey","curkeyCode","keyConfigs","configCollection_1","rconfig","rKeyObj","KeyboardEvents_1","getKeyConfigData","keyAction","unwireEvents","configCache","keyData","getKeyCode","keyVal","L10n","localeStrings","setLocale","intLocale","intGetControlConstant","localeObject","getConstant","SwipeSettings","swipeRegex","LINES","Touch","touchAction","tapCount","updateChangeTouches","isTouchMoved","movedDirection","startPoint","lastMovedPoint","startEventData","hScrollLocked","vScrollLocked","tStampStart","timeOutTapHold","tapHoldEvent","moveEvent","endEvent","cancelEvent","movedPoint","eScrollArgs","calcScrollPoints","startEvents","distanceX","distanceY","getVelocity","timeOutTap","swipeFn","tap","tapThreshold","modeclear","calcPoints","swipeArgs","swipeDirection","eSwipeArgs","tDistance","swipeSettings","swipeThresholdDistance","defaultArgs","canTrigger","scrollBool","checkSwipe","modeClear","lastTapTime","eleStyle","eTapArgs","pnt","newT","xDist","yDist","QUOTES","IF_STMT","ELSEIF_STMT","ELSE_STMT","FOR_STMT","IF_OR_FOR","CALL_FUNCTION","NOT_NUMBER","WORD","DBL_QUOTED_STR","WORDIF","ARR_OBJ","SINGLE_SLASH","DOUBLE_SLASH","WORDFUNC","WINDOWFUNC","argName","evalExpResult","varCOunt","localKeys","singleSpace","cnt","matchStr","SPECIAL_CHAR","rlStr","addNameSpace","strs","HandleSpecialCharArrObj","rlStr_1","mtc","fnStr","fNameSpace","ftArray","splRegexp","arrObj","SlashReplace","NameSpaceForspecialChar","evalExp","addNS","tempStr","nameSpaceNew","NameSpaceArrObj","Engine","templateString","removeTags","removeAttrs","jsEvents","SanitizeHtmlHelper","beforeSanitize","sanitize","serializeValue","wrapElement","removeXssTags","removeJsEvents","removeXssAttrs","tempEleValue","fullClone","_objectSpread","reactRender","toggleWarning","MARK","modernRender","legacyRender","cacheRef","warned","preWarningFns","note","warningOnce","preMessage","resetWarned","noteOnce","shallow","refSet","deepEqual","Entity","instanceId","valueFn","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","cssinjsInstanceId","styleHash","_style$parentNode","CacheEntity","StyleContext","hashPriority","defaultCache","canUseDom","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","attachTo","getOrder","findStyles","injectCSS","csp","_option$priority","mergedOrder","isPrependQueue","styleNode","existStyle","nodePriority","findExistNode","removeCSS","existNode","syncRealContainer","cachedRealContainer","placeholderStyle","updateCSS","_option$csp","_option$csp2","_option$csp3","ThemeCache","cacheCallTimes","derivativeOption","_cache2","_cache3","updateCallTimes","derivative","_cache$map","_this$internalGet","internalGet","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","callTimes","targetKey","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","sameDerivativeOption","uuid","Theme","cacheThemes","createTheme","derivativeArr","flattenToken","token2key","salt","randomSelectorKey","checkContent","supportSelector","styleStr","supportCheck","_getComputedStyle$con","_ele$parentNode","_ele","canLayer","supportLayer","useInternalLayoutEffect","firstMountRef","useLayoutUpdateEffect","firstMount","useCompatibleInsertionEffect","renderEffect","effectCleanups","cleanupFlag","useGlobalCache","keyPath","cacheFn","onCacheRemove","onCacheEffect","globalCache","useEffectCleanupRegister","buildCache","useHMR","prevCache","_ref2$","cacheContent","polyfill","_ref6$","EMPTY_OVERRIDE","tokenKeys","recordCleanToken","tokenKey","cleanTokenStyle","tokenKeyList","cleanableKeyList","removeStyleTags","getComputedToken","originToken","overrideToken","mergedDerivativeToken","getDerivativeToken","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","COMMENT","RULESET","DECLARATION","indexof","charat","strlen","characters","alloc","dealloc","delimit","escaping","commenter","rulesets","declarations","atrule","scanning","ampersand","reference","declaration","ruleset","post","sizeof","cachePathMap","ATTR_CACHE_MAP","CSS_FILE_STYLE","fromCSSFile","existPath","_item$split","_item$split2","_inlineMapStyle$paren","inlineMapStyle","prepare","isClientSide","MULTI_VALUE","normalizeStyle","isCompoundCSSProperty","injectSelectorHash","hashClassName","hashSelector","_firstPath$match","firstPath","parseStyle","interpolation","parentSelectors","injectHash","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","_parseStyle","_parsedStr","flattenList","fullList","flattenStyleList","originStyle","_keyframe","mergedStyle","trans","_trans$visit","appendStyle","cssKey","cssValue","unitless","actualValue","subInjectHash","mergedKey","nextRoot","_parseStyle3","_parseStyle4","_parsedStr2","childEffectStyle","layerCells","layerName","Empty","useStyleRegister","styleFn","clientOnly","_info$order","_React$useContext","autoClear","mock","ssrInline","_tokenKey","isMergedClientSide","_useGlobalCache","cachePath","_getStyleAndHash","_style","getStyleAndHash","_getStyleAndHash2","inlineCacheStyleStr","styleObj","_parseStyle5","_parseStyle6","parsedStyle","styleId","uniqueHash","fromHMR","mergedCSSConfig","nonceStr","effectKey","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","Keyframe","noSplit","notSplit","internalSet","removeIfUndefined","_paths","restPath","createEmpty","internalMerge","parentLoopSet","loopSet","originValue","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","rangePlaceholder","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","Pagination","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","DatePicker","TimePicker","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectInvert","selectNone","selectionAll","sortTitle","triggerDesc","triggerAsc","cancelSort","Tour","Next","Previous","Finish","Modal","okText","justOkText","Popconfirm","Transfer","titles","itemUnit","itemsUnit","selectCurrent","removeCurrent","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","PageHeader","back","Form","defaultValidateMessages","enum","Image","preview","QRCode","expired","ColorPicker","presetEmpty","localeList","generateLocale","merged","_ANT_MARK__","clearLocale","newLocale","cloneLocale","changeConfirmLocale","getMemoizedContextValue","exist","LocaleContext","bound01","isOnePointZero","isPercentage","clamp01","boundAlpha","convertToPercentage","pad2","rgbToHsl","hue2rgb","rgbToHsv","rgbToHex","allow3Char","convertDecimalToHex","convertHexToDecimal","parseIntFromHex","inputToRGB","named","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","darkColorMap","toHsv","rgb1","rgb2","getHue","getSaturation","pColor","_hsv","_colorString","presetPrimaryColors","volcano","geekblue","presetPalettes","presetDarkPalettes","controlHeight","controlHeightSM","controlHeightXS","controlHeightLG","defaultPresetColors","colorPrimary","colorSuccess","colorWarning","colorError","colorInfo","colorLink","colorTextBase","colorBgBase","fontFamilyCode","lineType","motionUnit","motionBase","motionEaseOutCirc","motionEaseInOutCirc","motionEaseOut","motionEaseInOut","motionEaseOutBack","motionEaseInBack","motionEaseInQuint","motionEaseOutQuint","sizeUnit","sizeStep","sizePopupArrow","zIndexBase","zIndexPopupBase","opacityImage","wireframe","motion","TinyColor","numberInputToObject","originalInput","roundA","gradientType","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","getAlpha","setAlpha","isMonochrome","toHsl","toHsvString","toHslString","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toHexShortString","allowShortChar","toRgbString","toPercentageRgb","fmt","toPercentageRgbString","rnd","toName","formatSet","lighten","brighten","tint","shade","desaturate","greyscale","spin","analogous","slices","complement","monochromatic","modification","splitcomplement","onBackground","triad","polyad","tetrad","equals","genColorMapToken","generateColorPalettes","generateNeutralColorPalettes","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorder","colorPrimaryBorderHover","colorPrimaryHover","colorPrimaryActive","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBg","colorErrorBgHover","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBg","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","colorLinkHover","colorLinkActive","colorBgMask","colorWhite","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","borderRadiusXS","borderRadiusSM","borderRadiusLG","borderRadiusOuter","getAlphaColor","getSolidColor","brightness","bgBaseColor","textBaseColor","colorText","colorTextSecondary","colorTextTertiary","colorTextQuaternary","colorFill","colorFillSecondary","colorFillTertiary","colorFillQuaternary","colorBgLayout","colorBgContainer","colorBgElevated","colorBgSpotlight","colorBorder","colorBorderSecondary","fontSizePairs","fontSizes","intSize","genFontSizes","lineHeights","fontSizeSM","fontSizeLG","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","lineHeightLG","lineHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","colorPalettes","colorKey","genFontMapToken","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","genSizeMapToken","genControlHeight","motionDurationFast","motionDurationMid","motionDurationSlow","lineWidthBold","genRadius","genCommonMapToken","defaultDerivative","defaultSeedToken","hashed","DesignTokenContext","defaultIconPrefixCls","getPrefixCls","suffixCls","customizePrefixCls","iconPrefixCls","dynamicStyleMark","globalPrefixCls","formatColor","fillColor","colorVal","primaryColor","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","DisabledContext","DisabledContextProvider","originDisabled","SizeContext","SizeContextProvider","originSize","componentDisabled","componentSize","isDOM","SVGElement","fillRef","composeRef","refList","useComposeRef","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","objectWithoutPropertiesLoose","sourceSymbolKeys","MotionProvider","_objectWithoutProperties","DomWrapper","_React$Component","useSafeState","destroyRef","_React$useState","_React$useState2","ignoreDestroy","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","makePrefixMap","vendorPrefixes","domSupport","getVendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","raf","caf","rafUUID","rafIds","wrapperRaf","callRef","leftTimes","realId","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","prepareOnly","_useState","_useState2","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","STEP_QUEUE","useIsomorphicLayoutEffect","nextStep","useStatus","supportMotion","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","mountedRef","deadlineRef","getDomElement","activeRef","updateMotionEndStatus","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","nextEventHandlers","firstMountChangeRef","transitionSupport","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","motionName","leavedClassName","eventProps","contextMotion","isSupportTransition","nodeRef","wrapperNodeRef","_useStatus","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","mergedProps","_classNames","statusSuffix","motionCls","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","diffKeys","prevKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","nextKeyEntities","_onVisibleChanged","onAllRemoved","motionProps","changedVisible","parsedKeyObjects","prevEntity","isStableColor","frontColor","fR","fG","fB","bR","bG","bB","fA","formatToken","derivativeToken","restToken","overrideTokens","seedToken","mergedToken","screenXL","screenXXL","fastDuration","colorFillContent","colorFillContentHover","colorFillAlter","colorBgContainerDisabled","colorBorderBg","colorSplit","colorTextPlaceholder","colorTextDisabled","colorTextHeading","colorTextLabel","colorTextDescription","colorTextLightSolid","colorHighlight","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorWarningOutline","fontSizeIcon","lineWidthFocus","controlOutlineWidth","controlInteractiveSize","controlItemBgHover","controlItemBgActive","controlItemBgActiveHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","fontWeightStrong","opacityLoading","linkDecoration","linkHoverDecoration","linkFocusDecoration","controlPaddingHorizontal","controlPaddingHorizontalSM","paddingXXS","paddingXS","paddingSM","paddingMD","paddingLG","paddingXL","paddingContentHorizontalLG","paddingContentVerticalLG","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginXXS","marginXS","marginSM","marginMD","marginLG","marginXL","marginXXL","boxShadow","boxShadowSecondary","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenSMMax","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","componentTheme","componentTokens","mergedComponentToken","useToken","rootDesignToken","mergedTheme","_option$salt","_option$override","compute","tokenStr","overrideTokenStr","cachedToken","_hashId","useCacheToken","MotionWrapper","needWrapMotionProviderRef","globalIconPrefixCls","globalTheme","textEllipsis","resetComponent","listStyle","genLinkStyle","outline","genCommonStyle","componentPrefixCls","rootPrefixSelector","genFocusOutline","outlineOffset","genFocusStyle","textTransform","verticalAlign","textRendering","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","getIconPrefixCls","getRootPrefixCls","ProviderChildren","customCsp","autoInsertSpaceInButton","alert","dropdownMatchSelectWidth","popupMatchSelectWidth","popupOverflow","legacyLocale","customIconPrefixCls","segmented","statistic","carousel","cascader","typography","descriptions","drawer","mentions","modal","slider","breadcrumb","menu","pagination","rate","SWITCH","switch","transfer","avatar","card","timeline","timePicker","notification","tree","colorPicker","datePicker","prefixCls","mergedPrefixCls","shouldWrapSSR","wrapSSR","useStyle","parentTheme","themeConfig","parentThemeConfig","mergedComponents","prevTheme","nextTheme","useTheme","baseConfig","memoedConfig","prevConfig","currentConfig","memoIconContextValue","validateMessages","ValidateMessagesContext","LocaleProvider","IconContext","memoTheme","themeObj","parsedComponents","componentToken","parsedToken","antLocale","isLegacyTheme","useConfig","_ele$getRootNode","getShadowRoot","ShadowRoot","inShadow","isIconDefinition","normalizeAttrs","rootProps","getSecondaryColor","generateColor","normalizeTwoToneColors","twoToneColor","twoToneColorPalette","secondaryColor","calculated","IconBase","svgRef","eleRef","_useContext","mergedStyleStr","useInsertStyles","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","ReactIcon","_React$useContext$pre","rootClassName","classString","iconTabIndex","svgStyle","msTransform","getTwoToneColor","CheckCircleFilled","AntdIcon","CheckCircleFilledSvg","CloseCircleFilled","CloseCircleFilledSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","InfoCircleFilled","InfoCircleFilledSvg","LoadingOutlined","LoadingOutlinedSvg","KeyCode","MAC_ENTER","BACKSPACE","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","UP","DOWN","PRINT_SCREEN","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","isCharacterKey","Notify","_props$duration","eventKey","closable","_props$closeIcon","divProps","onNoticeClose","hovering","setHovering","onInternalClose","noticePrefixCls","onMouseEnter","onMouseLeave","Notifications","_props$prefixCls","maxCount","configList","setConfigList","_config$onClose","onClose","_list$index","innerConfig","_React$useState3","_React$useState4","placements","setPlacements","nextPlacements","_config$placement","placement","emptyRef","placementList","placementMotion","originPlacements","onAllNoticeRemoved","motionClassName","motionStyle","configClassName","configStyle","Notice","defaultGetContainer","uniqueKey","objList","useEvent","fnRef","memoFn","_fnRef$current","useMergedState","defaultStateValue","postState","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","setPrevValue","enableStatistic","CSSINJS_STATISTIC","genComponentStyleHook","getDefaultToken","rootPrefixCls","sharedConfig","statisticToken","proxyToken","customComponentToken","deprecatedTokens","oldTokenKey","newTokenKey","defaultComponentToken","mergeToken","componentCls","iconCls","antCls","styleInterpolation","overrideComponentToken","genMessageStyle","zIndexPopup","contentPadding","contentBg","noticeCls","messageMoveIn","Keyframes","messageMoveOut","noticeStyle","marginInlineEnd","animationFillMode","animationPlayState","animationTimingFunction","combinedToken","TypeIcon","loading","PureContent","staticPrefixCls","CloseOutlined","CloseOutlinedSvg","wrapPromiseFn","openFn","closeFn","closePromise","filled","Holder","staticGetContainer","mergedCloseIcon","rootConfig","_rootConfig$getContai","shareConfig","setContainer","notificationsRef","contextHolder","taskQueue","setTaskQueue","api","mergedConfig","oriQueue","useRcNotification","getMotion","holder","useInternalMessage","messageConfig","holderRef","wrapAPI","fakeResult","originOpen","restConfig","jointContent","mergedDuration","mergedOnClose","act","defaultGlobalConfig","GlobalHolder","initializeMessageConfig","globalGetContainer","getGlobalContext","setMessageConfig","rootIconPrefixCls","sync","flushNotice","holderFragment","newMessage","setCloseFn","_message$instance","typeOpen","baseStaticMethods","useMessage","_InternalPanelDoNotUseOrYouWillBeFired","PurePanel","staticMethods","isLocalhost","registerValidSW","swUrl","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","NavigationContext","LocationContext","RouteContext","outlet","cond","matchRoutes","locationArg","basename","stripBasename","parsePath","branches","flattenRoutes","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","relativePath","joinPaths","computeScore","paramRe","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","paramNames","regexpSource","compilePath","captureGroups","splatValue","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","useHref","useInRouterContext","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","useNavigate","routePathnamesJson","go","OutletContext","_renderMatches","parentMatches","reduceRight","React.createElement","Navigate","navigate","Outlet","useOutlet","Route","Router","basenameProp","locationProp","navigationType","NavigationType","staticProp","navigationContext","trailingPathname","Routes","routeMatch","parentParams","parentPathnameBase","locationFromContext","parsedLocationArg","_parsedLocationArg$pa","useRoutes","createRoutesFromChildren","BrowserRouter","historyRef","createBrowserHistory","Link","reloadDocument","internalOnClick","replaceProp","isModifiedEvent","createPath","useLinkClickHandler","WarningFilled","WarningFilledSvg","fillRule","strokeLinecap","strokeLinejoin","genBaseStyle","imageWidth","imageHeight","iconFontSize","titleFontSize","marginBlock","subtitleFontSize","extraMargin","genStatusIconStyle","resultSuccessIconColor","resultErrorIconColor","resultInfoIconColor","resultWarningIconColor","genResultStyle","resultToken","IconMap","ExceptionMap","noFound","serverError","unauthorized","ExceptionStatus","SVGComponent","iconNode","Extra","customizeClassName","subTitle","PRESENTED_IMAGE_403","PRESENTED_IMAGE_404","PRESENTED_IMAGE_500","ErrorBoundary","hasError","errorInfo","_jsx","toVal","toAbsoluteUrl","checkIsActive","getCurrentUrl","noTextChildNodes","possibleStandardNames","acceptcharset","accesskey","allowfullscreen","autocapitalize","autocorrect","autoplay","autosave","cellpadding","cellspacing","classid","colspan","contenteditable","contextmenu","controlslist","crossorigin","dangerouslysetinnerhtml","defaultchecked","defaultvalue","enctype","formmethod","formaction","formenctype","formnovalidate","formtarget","frameborder","hreflang","htmlfor","httpequiv","innerhtml","itemid","itemprop","itemref","itemscope","itemtype","keyparams","keytype","marginwidth","marginheight","maxlength","mediagroup","minlength","nomodule","novalidate","playsinline","radiogroup","referrerpolicy","rowspan","srcdoc","srclang","srcset","typemustmatch","usemap","accentheight","alignmentbaseline","allowreorder","arabicform","attributename","attributetype","autoreverse","basefrequency","baselineshift","baseprofile","calcmode","capheight","clippath","clippathunits","cliprule","colorinterpolation","colorinterpolationfilters","colorprofile","colorrendering","contentscripttype","contentstyletype","diffuseconstant","dominantbaseline","edgemode","enablebackground","externalresourcesrequired","fillopacity","fillrule","filterres","filterunits","floodopacity","floodcolor","fontfamily","fontsize","fontsizeadjust","fontstretch","fontstyle","fontvariant","fontweight","glyphname","glyphorientationhorizontal","glyphorientationvertical","glyphref","gradienttransform","gradientunits","horizadvx","horizoriginx","imagerendering","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","letterspacing","lightingcolor","limitingconeangle","markerend","markerheight","markermid","markerstart","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","overlineposition","overlinethickness","paintorder","pathlength","patterncontentunits","patterntransform","patternunits","pointerevents","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","renderingintent","repeatcount","repeatdur","requiredextensions","requiredfeatures","shaperendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stopcolor","stopopacity","strikethroughposition","strikethroughthickness","strokedasharray","strokedashoffset","strokelinecap","strokelinejoin","strokemiterlimit","strokewidth","strokeopacity","suppresscontenteditablewarning","suppresshydrationwarning","surfacescale","systemlanguage","tablevalues","targetx","targety","textanchor","textdecoration","textlength","textrendering","underlineposition","underlinethickness","unicodebidi","unicoderange","unitsperem","valphabetic","vectoreffect","vertadvy","vertoriginx","vertoriginy","vhanging","videographic","viewbox","viewtarget","vmathematical","wordspacing","writingmode","xchannelselector","xheight","xlinkactuate","xlinkarcrole","xlinkhref","xlinkrole","xlinkshow","xlinktitle","xlinktype","xmlbase","xmllang","xmlnsxlink","xmlspace","ychannelselector","zoomandpan","onblur","oncontextmenu","ondoubleclick","ondrag","ondragend","ondragenter","ondragexit","ondragleave","ondragover","ondragstart","ondrop","onfocus","oninvalid","onkeydown","onkeypress","onkeyup","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onscroll","onsubmit","ontouchcancel","ontouchmove","onwheel","parseAttributes","reactKey","nodeClassNames","_$0","$1","convertFromNode","randomKey","randomString","childNodeList","parseChildren","nodeText","parentNodeName","nodeOnly","convertFromString","FAILED","LOADED","LOADING","PENDING","READY","UNSUPPORTED","canUseDOMFlag","isSupportedEnvironment","supportsInlineSVG","randomCharacter","cacheStore","cacheRequests","fileType","currentSrc","handleLoad","hasCache","letters","InlineSVG","previousProps","previousState","processSVG","SVGSVGElement","updateSVGAttributes","originalDesc","descElement","originalTitle","getNode","inlineSrc","dataURI","uniquifyIDs","replaceableAttributes","attributes_1","preProcessor","innerRef","elementProps","omit","KTSVG","svgClassName","DefaultLayoutConfig","darkSkinEnabled","scrolltop","fixed","tabletAndMobile","menuIcon","megaMenu","aside","minimized","hoverable","tabletAndMobileMode","toolbar1","heightAndTabletMobileMode","toolbar2","toolbar3","toolbar4","toolbar5","pageTitle","breadCrumbs","responsiveBreakpoint","responsiveTarget","LAYOUT_CONFIG_KEY","getEmptyHTMLAttributes","asideMenu","headerMobile","headerMenu","headerContainer","getEmptyCSSVariables","LayoutSetup","asideToggle","toolbarContainer","contentContainer","footerContainer","sidebar","cssVariables","typeOptions","bodyStyles","initLayout","initHeader","initPageTitle","initToolbar","initContent","initAside","initFooter","initAsideMenu","fieldsToUpdate","updatedConfig","initCSSClasses","initCSSVariables","initHTMLAttributes","setLayout","getLayout","bootstrap","updatePartialConfig","LayoutContext","disableSplashScreen","splashScreen","LayoutProvider","setConfig","setClasses","setAttributes","setCSSVariables","_themeConfig","enableSplashScreen","useLayout","PageDataContext","setPageTitle","setPageBreadcrumbs","_breadcrumbs","setPageDescription","_description","PageDataProvider","pageDescription","pageBreadcrumbs","usePageData","PageTitle","breadcrumbs","MetronicSplashScreenContext","LayoutSplashScreen","setCount","MenuInner","Header","DefaultTitle","clsx","isSeparator","asyncGeneratorStep","gen","_throw","AUTH_LOCAL_STORAGE_KEY","getAuth","lsValue","API_URL","LOGIN_URL","REGISTER_URL","REQUEST_PASSWORD_URL","getUserByToken","initAuthContextPropsState","authHelper","saveAuth","currentUser","setCurrentUser","logout","AuthContext","useAuth","AuthProvider","setAuth","AuthInit","didRequest","showSplashScreen","setShowSplashScreen","requestUser","apiToken","jwtToken","isMergeableObject","isNonNullObject","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","objectCtorString","getPrototype","nativeKeysIn","isProto","baseKeysIn","keysIn","allocUnsafe","isDeep","getSymbolsIn","arrayBuffer","dataView","cloneArrayBuffer","reFlags","typedArray","cloneDataView","cloneTypedArray","cloneRegExp","cloneSymbol","baseCreate","nodeIsMap","baseIsMap","nodeIsSet","baseIsSet","funcTag","cloneableTags","baseClone","isFlat","isFull","initCloneArray","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","baseAssignIn","copySymbols","baseAssign","initCloneByTag","isSet","subValue","isMap","getAllKeysIn","arrayEach","CLONE_DEEP_FLAG","isInteger","isEmptyChildren","getIn","toPath","setIn","resVal","currentObj","setNestedObjectValues","FormikContext","useFormikContext","formik","formikReducer","touched","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","_ref$validateOnChange","validateOnBlur","_ref$validateOnBlur","validateOnMount","_ref$validateOnMount","isInitialValid","enableReinitialize","_ref$enableReinitiali","initialValues","initialErrors","initialTouched","initialStatus","fieldRegistry","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","validateAt","validateData","prepareDataForValidation","abortEarly","validateYupSchema","yupError","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","dispatchFn","onReset","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","registerField","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","valueProp","currentArrayOfValues","isValueInArray","getValueForCheckbox","getSelectedValues","handleChange","eventOrPath","setFieldTouched","executeBlur","handleBlur","eventOrString","setFormikState","stateOrCb","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","validateForm","handleReset","getFieldMeta","initialError","getFieldHelpers","setError","getFieldProps","nameOrOptions","isAnObject","valueState","dirty","shouldClone","arrayLike","copyArrayLike","FieldArrayInner","alterTouched","alterErrors","updateErrors","updateTouched","fieldError","fieldTouched","updateArrayField","cloneDeep","indexA","indexB","arrayHelpers","handlePush","handlePop","handleSwap","handleInsert","handleReplace","handleUnshift","handleRemove","restOfFormik","circulars","clones","errorToString","regExpToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","printValue","mixed","oneOf","notOneOf","notType","isCast","lowercase","uppercase","lessThan","moreThan","isValue","noUnknown","__isYupSchema__","Condition","otherwise","isSchema","_wrapNativeSuper","Wrapper","strReg","ValidationError","errorOrErrors","captureStackTrace","runTests","endEarly","tests","nestedErrors","Reference","isContext","isSibling","__isYupRef","createValidation","Ref","nextParams","mapValues","formatError","validOrError","OPTIONS","lastPart","lastPartDebug","_part","innerType","ReferenceSet","isRef","removeItems","BaseSchema","transforms","_mutate","_typeError","_whitelist","_blacklist","exclusiveTests","spec","withMutation","typeError","strip","nullable","presence","_whitelistError","_blacklistError","combined","mergedSpec","_typeCheck","resolvedSchema","_cast","formattedResult","getDefault","initialTests","finalTests","maybeCb","validateSync","_getDefault","isStrict","exclusive","_isPresent","isExclusive","enums","valids","resolveAll","invalids","notRequired","Mixed","BooleanSchema","isAbsent","rEmail","rUrl","rUUID","isTrimmed","objStringTag","StringSchema","excludeEmptyString","NumberSchema","_method","avail","isoReg","invalidDate","DateSchema","struct","numericKeys","minutesOffset","isoParse","cast","prepareParam","INVALID_DATE","sortFields","excludedEdges","excludes","addNode","depPath","_err$path","sortByKeyOrder","known","defaultSort","ObjectSchema","_sortErrors","_nodes","_excludedEdges","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","exists","fieldValue","fieldSpec","nextFields","schemaOrRef","dft","getDefaultFromShape","additions","picked","fromGetter","noAllow","unknownKeys","allow","mapKeys","transformKeys","ArraySchema","_opts","castArray","castElement","_options$abortEarly","_options$recursive","rejector","ElementStyleUtil","important","attibuteName","DataUtil","instanceData","newMap","eventId","eventsIds","updateEventsIds","getObjectPropertyValueByKey","getUniqueIdWithPrefix","stringSnakeToCamel","DOMEventHandlerUtil","funcFromStore","calee","ElementAnimateUtil","easings","animateClasses","targetPos","getElementOffset","scrollPos","getCSS","getElementActualCss","attributeValue","getElementIndex","getElementMatches","getViewPort","isVisibleElement","getElementChild","getElementChildren","calcHeight","getElementActualHeight","calcPaddingTop","calcPaddingBottom","getBreakpoint","breakpoint","variableName","getCSSVariableValue","getAttributeValueByBreakpoint","incomingAttr","jsonStr","resultKey","resultBreakpoint","EventHandlerUtil","handlerId","handlersIds","handerId","getEventMetaByHandlerId","setEventMetaByNameAndHandlerId","eventValue","addEvent","DrawerStore","drawerComponentObj","defaultDrawerOptions","overlay","overlayClass","DrawerComponent","overlayElement","toggleElement","instanceUid","lastWidth","closeElement","togglers","closers","_toggle","hasBaseClass","bodyCanvasAttr","_deleteOverlay","_createOverlay","elementZIndex","overlayZindex","overlayClassOption","_getDirection","_getWidth","isShown","goElement","hasInstace","hideAll","getAllInstances","dr","updateAll","handleDismiss","createInstances","initGlobalHandlers","reinitialization","defaultImageInputOptions","defaultImageInputQueires","instanseQuery","inputQuery","wrapperQuery","cancelQuery","removeQuery","hiddenQuery","ImageInputComponent","_queries","cancelElement","hiddenElement","reader","ImageInput","createInsance","CookieComponent","cookieOptions","toUTCString","updatedCookie","defaultScrollOptions","saveState","ScrollComponent","getHeightType","getAutoHeight","wrappers","borderTop","borderBottom","setupHeight","heightType","setupState","setupScrollHandler","scrollHandler","cookieId","destroyScrollHandler","resetHeight","heghtType","defaultScrollTopOptions","ScrollTopComponent","_go","goTop","defaultStepperOptions","animationSpeed","animationNextClass","animationPreviousClass","StepperComponent","btnNext","btnPrev","btnSubmit","totatStepsNumber","passedStepIndex","currentStepIndex","_goTo","refreshUI","initHandlers","stepDirection","_getStepDirection","getStepContent","getLastStepIndex","getTotalStepsNumber","isLastStep","isFirstStep","animateClass","isBetweenStep","goto","goNext","getNextStepIndex","goPrev","getPrevStepIndex","goFirst","goLast","getCurrentStepIndex","getPassedStepIndex","stepper","defaultStickyOptions","animationClass","StickyComponent","instanceName","eventTriggerState","lastScrollTop","offsetNum","dataStickyAttr","attrValue","zindex","widthTarget","sticky","defaultToggleOptions","ToggleComponent","_isEnabled","_disable","_enable","isEnabled","elementTargetAttr","elementToggleAttr","elementModeAttr","defaultPasswordMeterOptions","minLength","checkUppercase","checkLowercase","checkChar","scoreHighlightClass","defaultPasswordMeterQueires","visibilityQuery","highlightQuery","PasswordMeterComponent","visibilityElement","highlightElement","checkSteps","visitbility","visibleIcon","hiddenIcon","checkScore","getCheckScore","getScore","checkLength","checkLowerCase","passwordMeter","SwapperStore","defaultSwapperOptions","defaultSwapperQueires","attrQuery","SwapperComponent","parentSelector","isHTMLElement","isShadowRoot","place","includeScale","getWindowScroll","getNodeName","getWindowScrollBarX","isScrollParent","_getComputedStyle","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getLayoutRect","assignedSlot","listScrollParents","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","perspective","contain","willChange","getContainingBlock","auto","basePlacements","popper","variationPlacements","modifierPhases","modifiers","requires","requiresIfExists","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","modifiersData","effectCleanupFns","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","existing","mergeByName","_ref3$options","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","popperOffsets","initialStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","getOppositePlacement","getOppositeVariationPlacement","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","fittingPlacement","within","mathMax","mathMin","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","arrowElement","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","createPopper","eventListeners","computeStyles","applyStyles","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","defaultMenuOptions","dropdown","hoverTimeout","accordion","slideSpeed","MenuComponent","triggerElement","_setTriggerElement","_isTriggerElement","_getItemOption","_getItemElement","subItem","_getItemParentElement","parentItem","_getItemParentElements","_getDropdownPopperConfig","placementOption","offsetValue","_getItemChildElement","_getItemChildElements","_getItemSubElement","itemSub","_getCss","_getItemSubType","_isItemSubShown","subHTMLElement","_isItemDropdownPermanent","_isItemParentShown","getElementParents","_isItemSubElement","_hasItemSub","_getItemLinkElement","_getItemToggleElement","_showDropdown","hideDropdowns","parentZindex","bufferNode","getHighestZindex","initDropdownPopper","_hideDropdown","referenceNode","insertAfterElement","destroyDropdownPopper","_showAccordion","_hideAccordions","subElement","_hideAccordion","itemsToHide","itemToHide","_mouseout","_mouseover","_dismiss","itemSubType","_click","dismiss","mouseover","mouseout","getItemTriggerType","getItemSubType","getItemLinkElement","getItemToggleElement","getItemSubElement","getItemParentElements","isItemSubShown","isItemParentShown","getTriggerElement","isItemDropdownPermanent","hideAccordions","elementMenu","menuData","updateDropdowns","menuInstance","menuObj","defaultSearchOptions","keypress","showOnFocus","defaultSearchQueires","SearchComponent","formElement","spinnerElement","clearElement","submitElement","toolbarElement","resultsElement","suggestionElement","emptyElement","processing","menuObject","_getElement","getResponsiveFormMode","responsiveFormMode","isProcessing","getQuery","getMenu","getFormElement","firstname","lastname","changepassword","acceptTerms","registrationSchema","Yup","Registration","setLoading","password_confirmation","first_name","last_name","user","noValidate","autoComplete","htmlFor","forgotPasswordSchema","ForgotPassword","hasErrors","setHasErrors","loginSchema","Login","AuthLayout","AuthPage","Logout","HeaderUserMenu","firstName","surname","Topbar","Finance","fontIcon","hasArrow","hasBullet","CheckOutlined","CheckOutlinedSvg","CopyOutlined","CopyOutlinedSvg","EditOutlined","EditOutlinedSvg","keepEmpty","MapShim","class_1","__entries__","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","connect_","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","isReflowProperty","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","elementListeners","resizeObserver","entities","_elementListeners$get","CollectionContext","SingleObserver","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","canRef","originRef","mergedRef","getDom","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","RefResizeObserver","Collection","onBatchResize","resizeIdRef","resizeInfosRef","currentId","isStyleNameSupport","styleNameList","isStyleSupport","origin","isStyleValueSupport","inlineStyle","TransButton","noStyle","fullLocale","getLocale","defaultLocaleData","localeFromContext","localeCode","EMPTY_LIST","ensureSize","fresh","outerStyle","widthContained","widthScroll","getScrollBarSize","UNIQUE_ID","useScrollLocker","mergedLock","scrollbarSize","getTargetScrollBarSize","isOverflow","getPortalContainer","autoLock","_props$autoDestroy","autoDestroy","shouldRender","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","appendedRef","queueCreate","OrderContext","setQueue","mergedQueueCreate","appendFn","_ele$parentElement","useDom","_useDom2","defaultContainer","mergedContainer","childRef","nextInline","renderInline","reffedChildren","innerId","setInnerId","useOriginId","reactNativeId","agent","vendor","useAction","mobile","showAction","hideAction","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","_getBBox","_element$getBoundingC","isPointsEq","a2","isAlignPoint","getAlignPopupClassName","builtinPlacements","_builtinPlacements$pl","getWin","collectScroller","scrollerList","scrollStyle","_getWin$getComputedSt","toNum","getPxValue","getVisibleArea","initArea","visibleArea","HTMLBodyElement","HTMLHtmlElement","_getWin$getComputedSt2","overflowClipMargin","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleRight","eleBottom","getUnitOffset","offsetStr","getNumberOffset","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","useAlign","popupEle","popupAlign","onPopupAlign","offsetR","offsetB","arrowX","arrowY","offsetInfo","setOffsetInfo","alignCountRef","prevFlipRef","onAlign","_popupElement$parentE","_popupElement$parentE2","getIntersectionVisibleArea","popupRect","popupWidth","visibleL","visibleT","visibleR","visibleB","syncNextPopupPosition","nextPopupY","nextOffsetY","nextPopupBottom","nextPopupX","nextOffsetX","nextPopupRight","popupElement","_win$getComputedStyle","originLeft","originTop","originRight","originBottom","placementInfo","_doc$documentElement","targetHeight","visibleRegion","scrollRegion","htmlRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","_getNumberOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset3","_getNumberOffset4","targetOffsetX","targetOffsetY","popupPoint","targetPoints","popupPoints","targetAlignPoint","popupAlignPoint","nextAlignInfo","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","adjustX","adjustY","shiftX","shiftY","supportAdjust","needAdjustY","sameTB","bt","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","rl","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupLeft","popupRight","popupBottom","targetLeft","targetRight","targetTop","targetBottom","nextArrowX","nextArrowY","offsetX4Right","offsetY4Bottom","resetReady","ori","useWatch","notifyScroll","targetScrollList","popupScrollList","mergedList","useWinClick","clickToHide","targetEle","maskClosable","inPopupOrChild","triggerOpen","openRef","lockRef","genClickEvents","clickInside","_genClickEvents","_genClickEvents2","onWinMouseDown","onWinClick","_genClickEvents3","_genClickEvents4","onShadowMouseDown","onShadowClick","targetShadowRoot","Arrow","arrowPos","_arrowPos$x","_arrowPos$y","arrowRef","alignStyle","autoArrow","popupTB","popupLR","targetTB","targetLR","Mask","PopupContent","keepDom","maskMotion","portal","onPointerEnter","isNodeVisible","getPopupContainerNeedParams","setShow","AUTO","offsetStyle","_experimental","dynamicInset","alignRight","alignBottom","miscStyle","resizeObserverRef","nextVisible","_motion$onVisibleChan","motionRef","cls","TriggerWrapper","getTriggerDOMNode","canUseRef","PortalComponent","Trigger","_props$action","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","focusDelay","blurDelay","_props$maskClosable","destroyPopupOnHide","popupClassName","popupStyle","popupPlacement","_props$builtinPlaceme","getPopupClassNameFromAlign","alignPoint","onPopupClick","popupMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","mergedAutoDestroy","setMobile","subPopupElements","TriggerContext","registerSubPopup","subPopupEle","setPopupEle","setPopupRef","_React$useState5","_React$useState6","setTargetEle","setTargetRef","originChildProps","cloneProps","_getShadowRoot","_getShadowRoot2","childDOM","mergePopupMotion","mergeMaskMotion","_React$useState7","_React$useState8","internalOpen","setInternalOpen","mergedOpen","setMergedOpen","nextOpen","internalTriggerOpen","delayRef","clearDelay","_React$useState9","_React$useState10","inMotion","setInMotion","_React$useState11","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState13","_React$useState14","mousePos","setMousePos","setMousePosByEvent","_useAlign","_useAlign2","alignInfo","_useAction","_useAction2","showActions","hideActions","clickToShow","triggerAlign","alignedClassName","baseClassName","forceAlign","_React$useState15","_React$useState16","setTargetWidth","_React$useState17","_React$useState18","setTargetHeight","syncTargetSize","wrapperAction","preEvent","_originChildProps$eve","_originChildProps$onC","onPopupMouseEnter","onPopupMouseLeave","hoverToShow","hoverToHide","_originChildProps$onM","_originChildProps$onC2","mergedChildrenProps","passedProps","_mergedChildrenProps$","triggerNode","innerArrow","autoAdjustOverflowTopBottom","autoAdjustOverflowLeftRight","leftTop","rightTop","rightBottom","leftBottom","overlayInnerStyle","overlayClassName","_props$trigger","_props$mouseEnterDela","overlayStyle","onVisibleChange","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","arrowContent","_props$showArrow","showArrow","triggerRef","extraProps","roundedArrow","bgColor","unitWidth","ey","shadowWidth","polygonOffset","insetInlineStart","_multi_value_","insetInline","_skip_check_","getArrowOffset","contentRadius","dropdownArrowOffset","dropdownArrowOffsetVertical","limitVerticalRadius","isInject","getArrowStyle","colorBg","arrowDistance","arrowPlacement","PlacementAlignMap","ArrowCenterPlacementAlignMap","DisableAutoArrowList","getPlacements","autoAdjustOverflow","arrowPointAtCenter","visibleFirst","halfArrowWidth","placementMap","baseOverflow","mergedOverflow","getOverflowOptions","replaceElement","SpaceCompactItemContext","NoCompactStyle","useInternalToken","initMotionCommon","initMotionCommonLeave","initMotion","inKeyframes","outKeyframes","sameLevel","sameLevelPrefix","zoomIn","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","transformOrigin","zoomUpOut","zoomMotion","initZoomMotion","PresetColors","genPresetColor","genCss","lightColor","lightBorderColor","darkColor","genTooltipStyle","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","tooltipRadiusOuter","injectStyle","useOriginHook","colorBgDefault","TooltipToken","inverseColors","isInternalColor","isPresetColor","arrowStyle","arrowContentStyle","formattedOverlayInnerStyle","getDisabledCompatibleChildren","__ANT_BUTTON","__ANT_SWITCH","__ANT_RADIO","omitted","splitObject","spanStyle","block","openClassName","afterOpenChange","mergedShowArrow","getContextPopupContainer","tooltipRef","forcePopupAlign","defaultOpen","setOpen","noTitle","tooltipPlacements","mergedArrowPointAtCenter","pointAtCenter","memoOverlay","memoOverlayWrapper","otherProps","injectFromPopover","tempOpen","childProps","childCls","customOverlayClassName","RcTooltip","vis","onOpenChange","EnterOutlined","EnterOutlinedSvg","hasAddon","addonBefore","addonAfter","hasPrefixSuffix","allowClear","resolveOnChange","hiddenTextarea","_inputElement$props","_inputElement$props2","triggerFocus","dataAttrs","AffixWrapperComponent","affixWrapper","GroupWrapperComponent","groupWrapper","WrapperComponent","GroupAddonComponent","groupAddon","containerRef","_clsx2","affixWrapperPrefixCls","affixWrapperCls","suffixNode","_clsx","needClear","clearIconCls","clearIcon","getClearIcon","_containerRef$current","wrapperCls","addonCls","mergedWrapperClassName","mergedGroupClassName","HIDDEN_TEXTAREA_STYLE","SIZING_STYLE","computedStyleCache","calculateNodeStyling","paddingSize","borderSize","sizingStyle","nodeInfo","ResizableTextArea","onPressEnter","autoSize","onInternalAutoSize","_useMergedState","_useMergedState2","setMergedValue","textareaRef","_React$useMemo","minRows","maxRows","_React$useMemo2","needAutoSize","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","uiTextNode","_calculateNodeStyling","singleRowHeight","calculateAutoSizeStyle","_textareaRef$current","fixFirefoxAutoScroll","resizeRafRef","cleanRaf","mergedAutoSizeStyle","fixEmojiLength","setTriggerValue","isCursorInEnd","preValue","triggerValue","newTriggerValue","customValue","_ref$prefixCls","showCount","resizableTextAreaRef","compositing","setCompositing","oldCompositionValueRef","oldSelectionStartRef","textareaResized","setTextareaResized","_resizableTextAreaRef","resizableTextArea","_resizableTextAreaRef2","hasMaxLength","fixControlledValue","dataCount","isPureTextArea","BaseInput","_resizableTextAreaRef3","_oldCompositionValueR","_resizableTextAreaRef4","getStatusClassNames","hasFeedback","customSize","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldsValue","validateFields","getInternalHooks","initEntityValue","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","isFormInstance","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","AsyncValidationError","asyncMap","objArr","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","fullFields","fullField","deepMerge","urlReg","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ip","ipv4","ipv6","getUrlRegex","ruleType","any","cloned","Schema","defaultMessages","source_","getValidationMethod","getType","errorFields","doIt","defaultField","addFullField","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","messageIndex","AsyncValidator","RawAsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x2","_x3","_x4","_x5","_validateRule","_asyncToGenerator","_callee2","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","_context2","ruleIndex","t0","mergedMessage","validateRules","namePath","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","warningOnly","_callee","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","_context4","ruleError","getNamePath","cloneByNamePathList","namePathList","newStore","containsNamePath","matchNamePath","changedNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","moveIndex","EMPTY_ERRORS","requireUpdate","Field","resetCount","cancelRegisterFunc","mounted","validatePromise","prevValidating","cancelRegister","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","_this$props3","_this$props3$rules","metaCache","triggerMetaEvent","onMetaChange","onStoreChange","prevStore","_this$props4","_this$props4$dependen","namePathMatch","validating","relatedFields","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","filteredRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref3$errors","isFieldDirty","getErrors","getWarnings","isPreserve","getOnlyChild","getControlled","toChildrenArray","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","validateTriggerList","originTrigger","_this$props7","returnChildNode","_this$getOnlyChild","FieldContext","listContext","ListContext","wrapperListContext","keyManager","parentPrefixName","pathName","_ref3$value","getNewValue","operations","indexSet","keysIndex","listValue","SPLIT","NameMap","kvs","_cell$match","_cell$match2","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","lastValidatePromise","getForm","prevWithoutPreserves","_this$prevWithoutPres","nextStore","updateStore","getFieldEntities","isMergedPreserve","initValue","watchList","notifyWatch","allValues","warningUnhooked","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","filteredNameList","_entity$isListField","_entity$isList","arg0","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","fieldPreserve","mergedPreserve","subNamePath","_prevStore","triggerDependenciesUpdate","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","changedFields","provideNameList","promiseList","TMP_SPLIT","validateNamePathList","mergedErrors","mergedWarnings","allPromiseFinish","resultNamePathList","returnPromise","outOfDate","triggerNamePathList","onFinish","onFinishFailed","formRef","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","formContext","_useForm","useForm","formInstance","_formInstance$getInte","childrenNode","childrenRenderProps","prevFieldsRef","targetKeys","isSimilar","formContextValue","wrapperNode","_restProps$onReset","useWatchWarning","_args$","_args$2","_form","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","FieldForm","FormProvider","onFormChange","onFormFinish","formsRef","forms","newForms","FormItemInputContext","compactItemBorder","parentCls","focusElCls","childCombinator","borderElCls","hoverEffects","compactItemBorderRadius","borderStartEndRadius","borderEndEndRadius","borderStartStartRadius","borderEndStartRadius","genCompactItemStyle","compactCls","genHoverStyle","inputBorderHoverColor","borderInlineEndWidth","genActiveStyle","genDisabledStyle","genInputLargeStyle","inputPaddingVerticalLG","inputPaddingHorizontalLG","genInputSmallStyle","inputPaddingVerticalSM","genStatusStyle","inputBorderActiveColor","genBasicInputStyle","inputPaddingVertical","inputPaddingHorizontal","genInputStyle","colorSmallPadding","genAffixStyle","inputAffixPadding","marginInlineStart","genAllowClearStyle","genGroupStyle","borderCollapse","borderSpacing","paddingInlineEnd","borderInlineEnd","borderInlineStart","genInputGroupStyle","genSearchInputStyle","searchPrefixCls","borderInlineStartColor","insetInlineEnd","insetBlockStart","insetBlockEnd","initInputToken","inputPaddingHorizontalSM","genTextAreaStyle","textareaPrefixCls","marginInline","inputToken","bordered","customizeSize","customDisabled","mergedSize","useSize","mergedDisabled","contextStatus","feedbackIcon","mergedStatus","getMergedStatus","mergedAllowClear","RcTextArea","operationUnit","genTypographyStyle","titleMarginTop","wordBreak","headingLevel","getTitleStyle","getTitleStyles","paddingInline","paddingBlock","kbd","textDecorationSkipInk","strong","listStyleType","blockquote","getResetStyles","getLinkStyles","inputShift","getEditableStyles","getCopyableStyles","WebkitBoxOrient","getEllipsisStyles","ariaLabel","enterIcon","lastKeyCode","setCurrent","confirmChange","textClassName","textAreaClassName","Typography","setContentRef","typographyDirection","contextDirection","componentClassName","useMergedConfig","propConfig","templateConfig","cuttable","sliceNodes","currLen","currentNodeList","nextLen","restLen","enabledMeasure","onEllipsis","startLen","midLen","endLen","setCutLength","walkingState","setWalkingState","setSingleRowHeight","singleRowRef","midRowRef","totalLen","getNodesLen","midHeight","nextStartLen","nextEndLen","nextMidLen","measureStyle","renderMeasure","sliceNodeList","renderMeasureSlice","enabledEllipsis","isEllipsis","tooltipProps","defaultNode","needDom","toList","copyable","useLocale","textLocale","typographyRef","editIconRef","textProps","enableEdit","editConfig","editing","setEditing","triggerType","triggerEdit","useUpdatedEffect","onEditClick","enableCopy","copyConfig","setCopied","copyIdRef","copyOptions","cleanCopyId","onCopyClick","isLineClampSupport","setIsLineClampSupport","isTextOverflowSupport","setIsTextOverflowSupport","setExpanded","isJsEllipsis","setIsJsEllipsis","isNativeEllipsis","setIsNativeEllipsis","isNativeVisible","setIsNativeVisible","enableEllipsis","ellipsisConfig","mergedEnableEllipsis","needMeasureEllipsis","cssEllipsis","isMergedEllipsis","cssTextOverflow","cssLineClamp","onExpandClick","onExpand","setEllipsisWidth","ellipsisFontSize","setEllipsisFontSize","onJsEllipsis","jsEllipsis","textEle","currentEllipsis","IntersectionObserver","topAriaLabel","Editable","renderExpand","expandContent","renderEdit","editTitle","renderCopy","tooltips","tooltipNodes","iconNodes","copyTitle","systemStr","resizeRef","EllipsisTooltip","Ellipsis","needEllipsis","renderNode","wrappedContext","currentContent","needed","wrapperDecorations","renderExpanded","renderEllipsis","mergedEllipsis","TITLE_ELE_LIST","OriginTypography","Paragraph","HeaderWrapper","ScrollTop","isFirstRun","reInitialization","stickyHeader","updateHeaderSticky","Content","MasterLayout","Error404","Soon","EllipsisOutlined","EllipsisOutlinedSvg","PlusOutlined","PlusOutlinedSvg","TabPane","tabKey","TabPanelList","activeKey","tabPosition","destroyInactiveTabPane","TabContext","tabPaneAnimated","tabPane","tabPanePrefixCls","paneStyle","paneClassName","restTabProps","tabPaneMotion","DEFAULT_SIZE","useSyncState","defaultState","stateRef","SPEED_OFF_MULTIPLE","useUpdate","effectRef","_callbackRef$current","genDataNodeKey","getRemovable","AddButton","showAdd","addAriaLabel","onEdit","addIcon","ExtraContent","assertExtra","overlayNode","composedRef","Dropdown","_children$props","_props$arrow","_props$placements","Placements","triggerVisible","setTriggerVisible","overlayRef","handleVisibleChange","newVisible","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$f","focusMenu","_overlayRef$current","handleKeyDown","focusResult","useAccessibility","getMenuElement","getOpenClassName","triggerHideAction","minOverlayWidthMatchTrigger","getMinOverlayWidthMatchTrigger","onOverlayClick","UNDEFINED","InternalItem","renderItem","responsiveDisabled","registerSize","_props$component","mergedHidden","internalRegisterSize","overflowStyle","overflowProps","itemNode","Item","useBatcher","updateFuncRef","channel","channelUpdate","useEffectState","notifyEffectUpdate","stateValue","setStateValue","OverflowContext","_excluded3","InternalRawItem","_restProps","contextClassName","restContext","RawItem","RESPONSIVE","INVALIDATE","defaultRenderRest","omittedItems","Overflow","_props$data","renderRawItem","_props$itemWidth","ssr","renderRest","renderRawRest","itemComponent","fullySSR","_useEffectState","_useEffectState2","setContainerWidth","mergedContainerWidth","_useEffectState3","_useEffectState4","itemWidths","setItemWidths","_useEffectState5","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState7","_useEffectState8","restWidth","setRestWidth","_useEffectState9","_useEffectState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","displayCount","setDisplayCount","mergedDisplayCount","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedData","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","currentItemWidth","displayRest","suffixStyle","restNode","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","overflowNode","ForwardOverflow","IdContext","getMenuId","useMenuId","MenuContext","InheritableContextProvider","inheritableContext","mergeProps","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","includePositive","isFocusableElement","tabIndexAttr","tabIndexNum","getFocusNodeList","ArrowKeys","getFocusableElements","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","key2element","element2key","refreshElements","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_inline","_horizontal","_vertical","inlineTrigger","inlineSub","horizontalSub","verticalSub","tryFocus","menuElement","focusTargetElement","focusableElements","findContainerUL","controlId","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","overflowKeys","setOverflowKeys","updateRef","registerPath","connectedPath","nextSlice","unregisterPath","refreshOverflowKeys","includeOverflow","isSubPathKey","pathKeys","pathKey","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","useActive","useDirectionStyle","inlineIndent","warnItemProp","restInfo","LegacyMenuItem","InternalMenuItem","warnKey","itemIcon","domDataId","contextDisabled","overflowDisabled","contextItemIcon","_internalRenderMenuItem","PrivateContext","itemCls","legacyMenuItemRef","mergedEleRef","connectedKeys","getEventInfo","mergedItemIcon","_useActive","activeProps","directionStyle","optionRoleProps","connectedKeyPath","InternalSubMenuList","SubMenuList","_eventKey","_child$props","placementsRtl","defaultMotions","popupPlacementMap","PopupTrigger","popupOffset","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","innerVisible","setInnerVisible","targetMotion","targetMotionRef","mergedMotion","visibleRef","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","originOnVisibleChanged","MenuContextProvider","InternalSubMenu","internalPopupClose","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","_internalRenderSubMenuItem","subMenuPrefixCls","popupRef","mergedExpandIcon","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isSubMenu","triggerModeRef","triggerMode","listNode","SubMenu","InternalMenuItemGroup","groupPrefixCls","MenuItemGroup","Divider","convertItemsToNodes","parseItems","_childList$","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","setMounted","setUUID","useUUID","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","forceFlush","doUpdate","inlineCacheOpenKeys","setInlineCacheOpenKeys","mergedMode","mergedInlineCollapsed","isInlineMode","internalMode","setInternalMode","internalInlineCollapsed","setInternalInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState3","_useMergedState4","mergedActiveKey","setMergedActiveKey","_childList$find","_containerRef$current2","_containerRef$current3","shouldFocusKey","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","onInternalKeyDown","privateContext","wrappedChildList","omitItems","originOmitItems","newLastIndex","ExportMenu","ItemGroup","OperationNode","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","removeAriaLabel","onTabClick","setSelectedKey","dropdownPrefix","selectedItemId","dropdownAriaLabel","removable","onRemoveTab","removeIcon","selectOffset","enabledTabs","moreStyle","moreNode","_ref$tab","renderWrapper","tabPrefix","refObj","_ref$offsetWidth","_ref$offsetHeight","getUnitValue","tabPositionTopOrBottom","TabNavList","onTabScroll","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","containerExcludeExtraSize","setContainerExcludeExtraSize","tabContentSize","setTabContentSize","addSize","setAddSize","_useState7","_useState8","operationSize","setOperationSize","_useUpdateState","batchRef","flushUpdate","useUpdateState","_useUpdateState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","useOffsets","containerExcludeExtraSizeValue","tabContentSizeValue","addSizeValue","operationSizeValue","visibleTabContentValue","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState9","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","lastWheelDirectionRef","touchEventsRef","_e$touches$","_e$touches$2","absX","absY","currentX","onWheel","onProxyTouchMove","onProxyTouchEnd","useTouchMove","doMove","_useVisibleRange","addNodeSizeValue","operationNodeSizeValue","charUnit","transformSize","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","tabOffset","newTransform","_newTransform","tabNodeStyle","tabNodes","TabNode","updateTabSizes","newSizes","_tabListRef$current","btnNode","onListHolderResize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState11","_useState12","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","inkBar","tabMoving","TabNavListWrapper","renderTabBar","tabNavBarProps","Tabs","defaultActiveKey","_ref$tabPosition","tabBarStyle","tabBarExtraContent","mergedAnimated","useAnimateConfig","activeIndex","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","mergedId","setMergedId","sharedProps","isActiveChanged","tabNavBar","slideMotion","initSlideMotion","inset","genCardStyle","tabsCardPadding","cardBg","cardGutter","itemSelectedColor","borderBottomColor","borderTopColor","borderRightColor","borderLeftColor","genDropdownStyle","itemHoverColor","dropdownEdgeChildVerticalPadding","tabsDropdownHeight","tabsDropdownWidth","genPositionStyle","horizontalMargin","verticalItemPadding","verticalItemMargin","borderLeft","borderRight","genSizeStyle","cardPaddingSM","cardPaddingLG","horizontalItemPaddingSM","horizontalItemPaddingLG","titleFontSizeSM","titleFontSizeLG","genRtlStyle","tabsHorizontalItemMarginRTL","rtlCls","genTabsStyle","cardHeight","itemActiveColor","alignSelf","inkBarColor","tabsHorizontalItemMargin","horizontalItemPadding","tabCls","WebkitTouchCallout","WebkitTapHighlightColor","textShadow","tabsActiveTextShadow","genTabStyle","tabsToken","cardPadding","horizontalItemGutter","genMotionStyle","horizontalItemMargin","horizontalItemMarginRTL","hideAdd","centered","editType","mergedItems","childrenItems","useLegacyItems","RcTabs","justifyItems","CustomStyle","CustomBreadCrumStyle","tabItems","isDashboard","isReport","DefaultContext","_toPrimitive","Tree2Element","GenIcon","conf","svgProps","computedSize","FaWpforms","ImageSource","brickStyleSerializationsInfo","availableCultures","CustomizeExportOptionsEventArgs","panelVisible","exportOptions","patchPropName","addPredicate","oldPredicate","EventGenerator","localizationCallbacks","LoadMessages","analyticLoadMessages","SetAvailableCultures","customCultures","newCultures","WidgetLocalization","customizeActionsEvent","reportTabClosingEvent","reportTabClosedEvent","customizeParameterEditorsEvent","customizeParameterLookUpSourceEvent","exitDesignerEvent","reportSavingEvent","reportSavedEvent","reportOpeningEvent","reportOpenedEvent","tabChangedEvent","onServerErrorEvent","customizePartsEvent","componentAddedEvent","customizeSaveDialogEvent","customizeSaveAsDialogEvent","customizeOpenDialogEvent","customizeToolboxEvent","customizeLocalizationEvent","customizeFieldListActionsEvent","onInitializingEvent","beforeRenderEvent","customizeWizardEvent","generateCustomizeLocalizationCallback","Actions","GetById","actionId","designerModel","Url","Report","report","Model","Elements","Customize","wizard","Wizard","ReadyToClose","Handled","generateBrickMethods","brick","GetBrickText","GetBrickValue","contentValue","Key","Value","previewClickEvent","documentReadyEvent","editingFieldChangedEvent","parametersSubmittedEvent","parametersInitializedEvent","parametersResetEvent","customizeExportOptionsEvent","onExportEvent","PageIndex","Brick","DefaultHandler","ParametersViewModel","Parameters","shouldRequestParameters","ParametersModel","ActualParametersInfo","Submit","ShouldRequestParameters","OldValue","NewValue","documentId","reportId","pageCount","ReportId","DocumentId","PageCount","clientVersions","PictureEditMode","PictureEditorActionId","Categories","EditingFieldExtensions","getLocalizedString","registerRegExpEditor","dateEditorOptions","onHideEditor","editValue","_editorValue","registerEditor","registerImageEditor","drawingEnabled","imageLoadEnabled","excludeCategories","editorID","_registerStandartEditors","registrationOptions","shadingEnabled","imageRegistrationOptions","images","editMode","ImageAndSignature","Signature","imagePickerAction","actionsProvider","createImagePickerAction","base64","painter","sizeOptionsEnabled","alignmentAction","Alignment","openFile","OpenFile","clearEnabled","clearAction","regExpFinal","cultureInfo","generateGuid","getNewQuartet","commonBlur","fullscreenEventsList","createFullscreenComputed","_fullscreen","fullscreen","requestFullscreen","showFullscreen","exitFullscreen","toggleFullscreen","addFullscreenListener","removeFullscreenListener","csvSeparator","pageBorderColor","analyticEditorTemplates","pageBorderWidth","pageRange","expotOptionsTitle","htmlTableLayout","docxTableLayout","allowURLsWithJSContent","rasterizationResolution","rasterizeImages","useHRefHyperlinks","exportWatermarks","inlineCss","removeSecondarySymbols","characterSet","getExportModeValues","singleFile","singleFilePageByPage","differentFiles","exportPageBreaks","rtfExportMode","docxExportMode","htmlExportMode","embedImagesInHTML","imageExportMode","xlsExportMode","xlsxExportMode","textExportMode","xlsTextExportMode","csvTextSeparator","useCustomSeparator","textEncodingType","xlsExportHyperlinks","xlsRawDataMode","xlsShowGridLines","xlsExportOptionsSheetName","csvExportOptionsSerializationInfo","CsvExportOptions","defaultSeparatorValue","separatorValue","DocxExportDocumentOptions","docxExportDocumentOptionsSerializationInfo","rtfExportOptionsSerializationInfoBase","emptyFirstPageHeaderFooter","keepRowHeight","rtfExportOptionsSerializationInfo","docxDocumentOptions","toJson","docxExportOptionsSerializationInfo","DocxExportOptions","exportMode","tableLayout","AdditionalRecipientModel","additionalRecipientSerializationsInfo","nativeFormatOptionsSerializationInfo","additionalRecipients","emailOptionsSerializationInfo","htmlExportOptionsSerializationInfoBase","htmlExportOptionsSerializationInfo","HtmlExportOptions","imageExportOptionsSerializationInfoBase","imageExportOptionsSerializationInfo","ImageExportOptions","mhtExportOptionsSerializationInfoBase","mhtExportOptionsSerializationInfo","MhtExportOptions","PdfExportDocumentOptions","pdfExportDocumentOptionsSerializationInfo","author","application","PdfPermissionsOptions","pdfExportPermissionsOptionsSerializationInfo","PdfPasswordSecurityOptions","pdfExportPasswordSecurityOptionsSerializationInfo","permissionsPassword","pdfEncryptionLevel","openPassword","pdfACompatibilityValues","pdfACompatibility","pdfUACompatibilityValues","pdfUACompatibility","showPrintDialogOnOpen","pdfExportOptionsSerializationInfo","PdfExportOptions","_pdfACompatibility","_pdfUACompatibility","_showDialogOnOpen","pdfPasswordSecurityOptions","hasSensitiveData","printPreviewOptionsSerializationInfo","PrintPreviewOptions","RtfExportOptions","textExportOptionsSerializationInfo","TextExportOptions","documentOptions","encryptionOptions","xlsExportOptionsSerializationInfoCommon","xlsExportOptionsSerializationInfoBase","xlsExportOptionsSerializationInfo","XlsExportOptions","xlsxExportOptionsSerializationInfo","XlsxExportOptions","exportOptionsSerializationInfo","ExportOptions","ExportFormatID","PDF","textId","XLS","XLSX","RTF","MHT","HTML","CSV","DOCX","PreviewElements","ZoomAutoBy","PreviewBricksKeyboardHelper","_needFocusNext","_firstSelectedBrickIndex","_lastSelectedBrickIndex","_resetBricksIndexes","_resetBricks","_currentPage","selectBrick","delayedInit","_initTimeout","_getSelectedContent","getSelectedContent","_pages","_goToPage","goToPage","_usePageKeyboardNavigation","showMultipagePreview","currentPage","newPage","_activeBricksSubscription","_afterInitializeCallback","_bricks","bricks","lastFocusItem","activeBricks","_liveRegionTimeout","navigation","efIndex","editField","editingFields","efItems","efItem","activateEditor","_getNonEmptyBrick","accessibleDescription","lastBrick","_pageChangeHandle","_actionExecute","_activatePage","PreviewPageControlsElement","_focusHandler","EditablePreviewEnabled","SearchAvailable","AsyncExportApproach","MessageHandler","processError","processMessage","processWarning","HandlerUri","previewDefaultResolution","ReportServerDownloadUri","PollingDelay","TimeOut","PreloadedPagesOffset","MultipageScrollingThrottle","TextEditingFieldViewModelBase","hideEditor","TextEditingFieldViewModel","htmlValue","brickStyle","brickOptions","verticalPadding","breakOffsetStyle","textStyle","shouldCommit","isCustomEditor","elementFocused","onEditorShown","focusTextElement","GlyphStyle","CheckState","CharacterCombEditingFieldViewModel","cellVerticalPadding","borderCellStyle","cellStyle","characterCombBounds","rowTops","rowsCount","colsCount","textRowsCount","textLastRowColCount","lastRowStartCol","CheckEditingFieldViewModel","editingFieldsProvider","_editingFieldsProvider","checkBounds","checkBoxBounds","checkStyle","customGlyphStyleCss","imageSourceData","checkBoxGlyphOptions","customGlyphs","imageSource","backgroundResult","urlContent","getDataUrl","createCustomGlyphStyleCss","imageType","checkStateStyleIcon","customGlyph","getCheckBoxTemplate","glyphStyle","Checked","Unchecked","toggleCheckState","groupID","_toggleCheckState","PreviewSelection","_page","_getBodyScrollLeft","_getBodyScrollTop","leftP","topP","widthP","heightP","_$selectionContainer","selectionContainer","unwrappedValues","ImageEditingFieldViewModel","popupTarget","popupOptions","sizeMode","onDraw","getImage","getImageType","imageMode","getCurrentOptions","__DefaultImageType","currentVal","ImageAlignment","ImageSizeMode","PopupImageEditingFieldViewModel","parentPopupClass","_popupInitializedClass","_getPopupContainer","_getPainterModel","$painter","_getPictureEditorModel","$popupEditing","_resetPictureEditor","pictureEditorModel","painterData","_resetPainter","imagePainter","imageFormatByType","canDraw","_showContent","popupData","paintData","isPopupActive","getPositionTarget","showContent","signaturePainter","resetLastPosition","renderedHandler","_parentPopup","DefaultImageEditingFieldViewModel","sizing","imageAlignment","EditingField","htmlProvider","_needToUseHtml","_index","_readOnly","editingFieldChanged","_refreshHtmlValue","_htmlProvider","getEditingFieldHtml","CsvExportOptionsPreview","rtfExportModeMergedPreview","docxExportModeMergedPreview","excludeModesForMergedDocuments","excludeDifferentFilesMode","ColumnSortOrder","htmlExportModePreviewBase","htmlExportModePreview","htmlExportModeMergedPreview","xlsExportModePreviewBase","xlsExportModePreview","xlsExportModeMergedPreview","imageExportModePreviewBase","imageExportModePreview","imageExportModeMergedPreview","xlsxExportModePreviewBase","xlsxExportModePreview","xlsxExportModeMergedPreview","htmlExportOptionsSerializationInfoPreview","HtmlExportOptionsPreview","_getVariableInfo","HtmlExportOptionsMergedPreview","imageExportOptionsSerializationInfoPreview","ImageExportOptionsPreview","ImageExportOptionsMergedPreview","mhtExportOptionsSerializationInfoPreview","MhtExportOptionsPreview","MhtExportOptionsMergedPreview","rtfExportOptionsSerializationInfoPreview","RtfExportOptionsPreview","RtfExportOptionsMergedPreview","xlsExportOptionsSerializationInfoPreview","XlsExportOptionsPreview","XlsExportOptionsMergedPreview","xlsxExportOptionsSerializationInfoPreview","XlsxExportOptionsPreview","XlsxExportOptionsMergedPreview","docxExportOptionsSerializationInfoPreview","DocxExportOptionsPreview","DocxExportOptionsMergedPreview","ParametersGroupEditor","isGroupLabel","titleVisible","hideEditorHeader","showExpandButton","hideBorder","borderVisible","showHorizontally","SignatureEditor","reportPreviewModel","reportPreview","signatures","viewerEditorTemplates","multiValue","groupEditor","rangeEditor","multiValueEditable","selectBox","separatorEditor","PdfExportOptionsPreview","_signatures","signature","ExportOptionsPreview","exportType","xls","xlsx","pdf","_generateFromFunction","ExportOptionsMergedPreview","PreviewRequestWrapper","_callbacks","parametersModel","searchModel","_reportPreview","_parametersModel","_searchModel","matchCase","matchWholeWord","searchUp","getProcessErrorCallback","searchOperationId","resultLimitPerRequest","shouldIgnoreError","serializeParameters","parametersSubmitted","reportUrl","drillDownKeys","sortingState","timeZoneOffset","faultMessage","isFirstRequest","firstPageRequest","timeOut","_getErrorMessage","serializedExportOptions","editindFields","hideMessageFromUser","editingFieldValues","reportName","RequestUrl","FormData","editingFieldIndex","defaultErrorMessage","showMessage","statusCodeText","messageWithStatusCode","getCurrentResolution","safelyRunWindowOpen","newWindow","ExportResultRequestData","QueryParameters","ExportHandler","exportSetting","exportActionUri","exportFormData","reportDisplayName","exportingFrameName","popupButtons","printingLinkCallback","printingTextPrefix","printingTextPostfix","getPopupTitle","_exportResultRequestData","_showPrintNotificationDialog","_useSameTabExport","_useAsynchronousExport","_workerTicker","_workerFunctionBlobUrl","_workerTickerFunction","useAsynchronousExport","useSameTab","showPrintNotificationDialog","_terminateWorker","_url","_getUrlObject","revokeObjectURL","_createWorker","checkOnTick","print","_isNewBrowser","iframe","exportingFrame","printingTextParts","_clearExportingFrame","_requestData","_formTarget","postingForm","formData","_exportWindow","printable","onExportCustomEvent","formTarget","_replaceLocation","_printUsingBlob","_exportUsingFetch","_formSubmit","_getExportResultUsingFetch","fileMetadata","download","contentFilename","handleFile","exportResult","requestWrapper","getExportResult","progressBar","wasCancelRequested","updateExportStatus","_handleBlobUsingFetch","contentLength","contentDisposition","_getFileName","getReader","readChunk","receivedLenght","enqueue","ReadableStream","stream","Response","utf8FileNameRegex","fileNameRegex","innerText","useSameTabLocal","inlineResult","_setPrintingLinkCallback","_startExportAsync","onunload","_initExportWindow","exportOperationIdDeferred","startExportOperationId","startProgress","cancelExportRequest","getStartExportOperation","previewHandlersHelper","doneStartExportHandler","errorStartExportHandler","_showAsyncExportError","actionUri","_editingFields","exportOptionsModel","_doExportSync","_addQueryParamsToUri","_printUsingBlobFetch","blobUrl","_callPrint","_initPrintingWindow","_exportUri","_queryParameters","_exportUrl","tic","exportText","getExportStatusRequest","doneExportStatusHandler","errorExportStatusHandler","inlineDisposition","exportHandler","exportFrame","PreviewEditingFieldsKeyboardHelper","PreviewEditingFieldsElement","_processFocus","_isClick","_activateHandler","_blur","convertToPercent","childSize","parentSize","getBrickValueForKey","brickTextProperty","brickText","updateBricksPosition","childBrick","initializeBrick","processClick","editingFieldBricks","PreviewPage","isClientVisible","loadingText","realZoom","actualResolution","currentScaleFactor","imageSrc","displayImageSrc","brickLoading","shouldSkipBrickLoading","getBricksFlatList","clickableBricks","maxZoom","disableResolutionReduction","shouldSendRequest","_lastZoom","_selectedBrickPath","_currentDocumentId","lastGetPageDeferred","currentGetPageDeferred","_currentScaleFactor","base64string","_onPageLoaded","_onPageLoadFailed","_requestPage","unifier","_unifier","pageLoading","_pageHeight","_pageWidth","_zoom","_getPixelRatio","_setPageImgSrc","_pageBackColor","resetBrickRecusive","currentBrick","editingFieldsKeyboardHelper","previewEditngFields","oldEditFields","allEditingFields","pageFieldViewModels","editingField","absoluteBounds","previewEditingFields","_isDisposed","brickColumnWidthArray","columnWidthArray","editignFieldBricks","_initializeEditingFields","newResolution","shouldSkipBricks","updateSize","_getCurrentPageRequest","_closeDocumentRequests","getPage","resolution","includeBricks","xPerc","yPerc","innerBricksLength","PageLoader","_preview","_defaultResolution","_requestCyclesLimit","_currentPrefetchCycle","_disabled","pagesToUpdate","updatePage","pendingPages","_loadTimeout","_getNextStartingIndex","prefetchPages","_getPagesToUpdate","_performPrefetch","_scheduleNextPrefetch","PreviewHandlersHelper","exportOperationId","doGetExportStatus","getExportStatus","requestAgain","doStatusRequest","_cancelExportRequests","_startBuildOperationId","startBuildOperationId","doucmentIdDeferred","removeAllEmptyPages","removeEmptyPages","stopBuildRequest","_stopBuildRequests","closeDocumentRequest","closeDocument","stopBuild","getDoGetBuildStatusFunc","doGetBuildStatus","stopProcessingPredicate","wereNoPagesAndNewOnesExist","createNewPage","createPage","createBrickClickProcessor","setPageVisibility","_raiseOnSizeChanged","processPages","_resolveFirstPage","ProgressViewModel","enableKeyboardSupport","_forceInvisible","cancelVisible","isCancelling","progressBarAccessibility","completeOperationId","_startOperationId","_lastOperationDeferred","rejectLastOperationIdDeferred","_lastOperationIdDeferred","startOperationId","onStop","operationIdPromise","rejectLastOperationDeferred","newOperationDeferred","newOperationIdDeferred","finalizeId","SortingProcessor","_getSortingStage","_detachSorting","_appendSorting","_applySorting","sortingStage","_changeSortOrder","None","skipProcessing","fieldInfo","Ascending","Descending","ReportPreview","handlerUri","previewRequestWrapper","exportSettings","predefinedZoomLevels","_currentReportId","_currentReportUrl","_closeReportRequests","_editingValuesSubscriptions","_drillDownState","_sortingState","_sortingProcessor","_getBuildStatusDeferreds","punctuationMark","getActiveBricks","genlIndex","innerBrick","sortedActiveBricks","extendWithSpaces","spaceCount","firstUsedColumn","lastUsedColumn","activeBrick","rtlReport","originalParametersInfo","documentMap","documentBuilding","reportOpening","isAutoFit","autoFitBy","exportDisabled","_currentPageText","ofText","onSizeChanged","previewSize","previewVisible","editingFieldsHighlighted","canSwitchToDesigner","_progressFirstTime","emptyDocumentCaption","parametersInfo","parametersExist","Visible","newCaption","exportOptionsTabVisible","pageLoader","rtlViewer","customProcessBrickClick","previewClick","customizeExportOptions","documentReady","onExport","_onGetBuildStatus","_onGetDocumentDetails","clearBricks","pagesArray","previewBrickKeyboardHelper","drillDownKey","_clear","_startBuildRequest","doSorting","tempPage","_initialDocumentData","useAsyncSearch","stopSearchProcess","_cleanTabInfo","closeReport","cyclePageIndex","brickNavigation","_doDrillDown","_doSorting","targetPage","brickClickDocumentMapHandler","isUrlString","validateUrl","_clearReportInfo","_openReportOperationDeferred","openReport","closeCurrentReport","drillThrough","reportParameterInfo","knownEnums","LookUpValues","TypeName","firstPage","firstPageResponse","initializeDataPromise","_initializeDeferred","previewInitialize","startBuildFaultMessage","pageSettings","readerMode","documentData","_sortCustomParametersLookUpValues","documentIdPromise","doGetBuildStatusFunc","exportOptionsString","isMerged","jsonModel","customDocumentOperation","succeeded","_getToastMessageContainer","documentIdDeferred","_initializeStartBuild","currentReportId","startBuildRequest","doneStartBuildHandler","errorStartBuildHandler","shouldRequestFirstPage","sessionDeferred","ignorePredicate","_getIgnorePredicate","getBuildStatusRequest","doneGetBuildStatusHandler","errorGetBuildStatusHandler","getBuildStatus","getDocumentData","ignoreErrorPredicate","documentDataDeferred","issuer","contactInfo","validFrom","validTo","canPerformContinuousExport","deserializedExportOptions","_deserializeExportOptions","customizeExportOptionsArgs","createEditingField","previousShowPrintDialogOnOpen","previousPdfACompatibility","previousPageRange","_documentId","sendCloseRequest","forcePageChanging","_goToPageTimer","updateActivePage","activePageIndex","JSReportViewer","_previewModel","previewModel","previewExists","GetParametersModel","PerformCustomDocumentOperation","OpenReport","Print","ExportTo","GetCurrentPageIndex","GoToPage","ResetParameters","StartBuild","updateSurfaceSize","DocumentMapItemsProvider","bookmarkDict","_selectNode","_getRootNode","fillNode","DocumentMapTreeListController","DocumentMapModel","_selectedPath","_setSelectedPathByNavigationNode","documentMapTabVisible","tabInfo","documentMapOptions","ExportOptionsModel","tabPanelVisible","actionExportTo","_exportDocumentByFormat","ExportOptionsEventHandlers","exportItems","_getExportFormatItems","docx","mht","textExportOptions","csv","exportDocumentTo","_menuButton","MobilePreviewPage","MobileReportPreview","mobileSettings","availablePages","visiblePages","topOffset","previewWrapperSize","searchPanelVisible","actionsVisible","scrollReachedLeft","scrollReachedRight","scrollReachedTop","scrollReachedBottom","zoomUpdating","mobileZoom","currentZoom","globalAnimationEnabled","animationSettings","zoomEnabled","swipeEnabled","interactionDisabled","supscription","pageEditFields","searchVisible","_hasActiveEditingFields","forcePage","setScrollReached","pushBackValue","SearchKeyboardHelper","searchResult","noResultText","SearchResultNavigator","goToMatchedResult","foundResult","getFirstMatchFromPage","thisPageOnly","firstMatch","sortOutResult","_setCurrentResult","resultId","goToResult","newPageIndex","prevPageIndex","pageIndexToSearchFrom","firstResult","SearchViewModel","searchSettings","_searchIgnoreObs","focusRequested","searchCompleted","_renderedSearchResult","searchResultDataSource","searchRequestDeferred","startSearchDeferred","fetchLimit","searchResultHeaderId","resetSearchResult","_resultNavigator","createResultNavigator","findUp","findDown","searchResultCount","searchResultPageCount","stopSearchDisabled","newSearch","_searchTimeout","mCase","_cachedWholeWordWithCaseRequests","_cachedWholeWordRequests","_cachedCaseSensitiveRequests","_cachedRequests","performSearchAsync","performSearch","resetDeffereds","stopSearch","startSearchProcess","resetSearchResultDataSource","searchButtonClick","updateSearch","getResult","getSearchStatus","failRequestHandler","appentSearchResult","startSearch","findTextRequest","findTextRequestDone","resultData","seacrhModel","MobileSearchViewModel","gallery","_galleryCurrentItemBlocksSubscription","_gallerySelectedIndexSubscription","currentBlocksSubscribe","_killSubscription","newBlocks","updatePagesInBlocks","currentIndexSubscribe","_updateBricks","editorVisible","stopSearching","previewSearch","searchEditor","SearchBarModel","$searchText","searchBarModel","GalleryModel","_spacing","_animationTimeout","repaintTimeout","isAnimated","currentBlockText","selectedIndexReal","_calcHorizontalVertical","updateGalleryContent","currentGalleryItem","updateBlocks","realIndex","changePage","swipeLeftEnable","swipeRightEnable","previewPage","classSet","someActive","pagesCount","isCurrentBlock","galleryItem","currentBlockPages","_createBlock","lastPage","useAnimation","updateStartBlocks","updateLastBlocks","updateBlockPositions","updatePagesVisible","updateCurrentBlock","MobilePaginator","hideAnimationTimeoutId","MultiValuesHelper","selectAllValues","ParameterHelper","_customizeParameterEditors","getUnspecifiedDisplayText","_knownEnums","knownEnumType","customizeParameterEditors","customizeParameterLookUpSource","parameterDescriptor","getParameterDescriptor","isEnumType","analytics_getEditorType","assignValueStore","isMultiValue","getEnumCollection","getItemsSource","multiValueInfo","fromArray","convertSingleValue","getValueConverter","createMultiValue","_isKnownEnumType","createDefaultDataSource","currentKnownEnumInfo","valueInfo","createInfo","addShowCleanButton","dateConverter","PreviewParameterHelper","lookUpValues","lookUpValue","Description","getPrivatePropertyName","isRange","getRangeEditor","isTypesCurrentType","intTypes","floatTypes","isMultiValueWithLookUp","_helper","needSorting","isFilteredLookUpSettings","valueStoreCache","itemsSource","fixPropertyName","PreviewParameterValueValidator","_validatorMap","_numericTypes","_registerType","PreviewParameter","parameterInfo","parameterHelper","hasVerticalLabel","Tag","Start","Path","Enabled","IsFilteredLookUpSettings","hasBindedExpressions","EnabledExpression","VisibleExpression","hasVisibleExpression","_originalLookUpValues","mapLookUpValues","MultiValue","SelectAllValues","AllowNull","_originalValue","ValueInfo","Name","hasLookUpValues","getParameterInfo","_validateRangeType","isNumericType","safeAssignObservable","arrayItem","multiValuesHelper","createMultiValueArray","getSerializationValue","localDate","ParameterPanelItemBase","layoutInfo","_parameters","_separatorNames","_groupLayoutItems","previewParameters","layoutItems","itemInfo","groupItemInfo","_fixGroupPropertyName","parameterLayoutInfo","previewParameter","labelOrientation","parameterPropertyName","expandValue","usedParameter","parameterPanelLayout","_proceedLayoutInfo","PreviewParametersViewModel","_getParametersStateRequest","argsObject","_getDoneGetParametersStateHandler","changedParameter","parametersViewModel","parametersInfoCollection","matchedParameter","_shouldProcessParameter","_setLookUpValues","parametersLoading","_getFailGetParametersStateHandler","jqXHRError","parametersReset","needToUpdateParameter","processInvisibleParameters","prevParametersStateRequest","validateAndSubmit","startBuild","notEmpty","popupVisibleSwitch","popupInfo","updateParameters","_parameterValuesContainedInLookUps","_getParameterValuesContainedInLookups","parameterLookUpValues","_filterParameterValuesContainsInLookups","parameterType","parameterValues","validateAndAssignValue","_setParameterValue","_visibleParameters","actualParametersInfo","subscribeParameter","parametersInitialized","parameterPath","requiredParameterPaths","getPathsAfterPath","changedParameterPath","MobilePreviewParameterHelper","MobileActionList","PreviewDisposableModel","exportModel","printDocument","PreviewModel","documentMapModel","MobilePreviewModel","slideOptions","paginator","brickEventsDisabled","availableFormats","scrollAvailable","ParametersPopupModelBase","formModel","_submit","showIcons","cancelDisabled","actionButtons","actionIcons","_parametersButtonContaner","initVisibilityIcons","nodeTop","ParametersPopupModel","DateRangeParemeterPopupModel","_popupVisible","_oldStart","_oldEnd","getStringDate","calendarHeight","defaultButtonSettings","startButton","endButton","submitAction","textRangeValue","_displayText","applyDate","MobilePreviewElements","stringToPosition","lowerCased","getDockedElementCallback","$viewer","viewer","viewerTop","viewerHeight","previewWrapper","_getRightAreaWidth","getUpdateProgressBarCallback","progressBarSettings","rootElement","keepProgressBarVisible","keepOnVisibleArea","$progress","updateProgressBarPosition","_addDisposable","wrappedUpdateProgressPosition","createMobilePreview","bindingSettings","bindingModel","bindingElement","mobileModeSettings","updatePreviewContentSize_","updatePreviewContentSizeMobile","exportTypes","mobileActions","exportToModel","allFormats","notUsedFormats","getPreviewActionsMobile","designerModelOptions","searchPanel","galleryIsAnimated","parametersPopup","customizeParts","$actions","updateProgressPosition","updateMobilePreviewActionsPosition_","updateSizesCallback","formatSearchResult","PreviewDesignerActions","designAction","globalActionProviders","globalActions","PreviewActions","printDisabled","wrapDisposable","paginationSelectBoxViewModel","pageItems","_isPageChanged","keyUp","zoomItems","available","viewerVisible","createDesktopPreview","processZoomFactor","fullscreenEnabled","previewActions","designPreviewActions","_cashedSizeFactorClass","tabPanelPosition","$_root","$viewPort","sizeFactor","cssStyleData","updatePreviewContentSize","tabPanelSettings","createPreview","customizeLocalization","applyBindings","disposableCallback","onServerError","remoteSettings","authToken","serverUri","beforeRender","_createPreview","JSReportViewerBinding","customEventRaiser","viewerModel","_closeReportOnDisposing","keepReportOnComponentDisposal","_eventSenderCreated","_initializeCallbacks","previewEvents","generatePreviewEvents","_checkCallbackName","_generateCallbackDictionary","shouldInitPreviewModel","unwrappedUrl","initPreviewModel","cultureInfoList","createPreviewModel","_applyBindings","applyModel","invokeAction","_createModel","_getLocalizationRequest","dxReportViewerBindingName","DxReportViewer","DateRangeDialogElementsKeyboardHelper","predefinedDateRangesKeyboardHelper","PredefinedDateRangesKeyboardHelper","popupModel","_createTemplateData","clickToBrick","rightP","cacheElementContent","onSlide","getScrollViewOptions","getPictureEditorOptions","currentPageAriaLabelImgAlt","getPainter","getPopupData","_editorInputId","_showPopup","dialogKeyboardHelper","popupTemplate","brushWidthText","brushColorText","sizeModeText","sizeModeValues","attrTitle","alignmentText","alignmentValues","filterEnabled","getAvailableSignature","$previewPage","pageTop","loadVisibleImages","previewPageModel","updateCallback","subscribtion","scrollLoad","keyDownHandler","$clipboardContainer","keyUpHandler","updateZoom","skipIfInvisible","newZoom","$previewWrapper","$preview","topAreaHeight","surfaceHeight","heightZoom","widthZoom","updatePreviewZoomWithAutoFit","rightPanelWidth","dxSearchEditor","_focusRequestRaised","GALLERY_CLASS","GALLERY_LOOP_CLASS","GALLERY_ACTIVE_CLASS","GALLERY_ITEM_CLASS","GALLERY_INVISIBLE_ITEM_CLASS","GALLERY_LOOP_ITEM_CLASS","GALLERY_ITEM_SELECTED_CLASS","GALLERY_INDICATOR_CLASS","GALLERY_INDICATOR_ITEM_CLASS","GALLERY_INDICATOR_ITEM_SELECTOR","GALLERY_INDICATOR_ITEM_SELECTED_CLASS","ITEM_CONTENT_SELECTOR","GalleryNavButton","Gallery","_wasAnyItemTemplateRendered","indicatorEnabled","slideshowDelay","showNavButtons","wrapAround","initialItemWidth","stretchImages","$img","imageAlt","_actualItemWidth","isWrapAround","_itemsPerPage","_itemPercentWidth","itemsPerPage","_pagesCount","_offsetDirection","_renderItemsContainer","_renderDragHandler","_renderContainerPosition","_renderItemSizes","_renderItemPositions","_renderNavButtons","_renderIndicator","_renderItemVisibility","_renderUserInteraction","_setupSlideShow","_reviseDimensions","_stopItemAnimations","_clearCacheWidth","_cloneDuplicateItems","_calculateIndexOffset","_loadNextPageIfNeeded","_getLoopedItems","duplicateCount","_getRealItems","_cloneItemForDuplicate","$clonedItem","loopItemsCount","lastItemDuplicateIndex","_itemFreeSpace","isGapBetweenImages","isLoopItem","itemPosition","_relocateItems","hideItems","_releaseInvisibleItems","positionReady","_animationOverride","_startSwipe","_endSwipe","_deferredAnimate","extraConfig","animationComplete","_needMoveContainerForward","_needMoveContainerBack","_maxContainerOffset","_maxItemWidth","_cleanIndicators","isIndicatorEnabled","$indicatorItem","_attachIndicatorClickHandler","_renderSelectedPageIndicator","_indicatorSelectHandler","_detachIndicatorClickHandler","_toggleIndicatorInteraction","clickEnabled","_this$_$indicator","$indicatorItems","indicatorIndex","_fitPaginatedIndex","_needLongMove","_prevNavButton","_prevPage","_nextNavButton","_nextPage","_renderNavButtonsVisibility","_cleanNavButtons","visiblePageSize","goToItem","_shouldLoadNextPage","restItemsCount","_goToGhostItem","nextHidden","prevHidden","_slideshowTimer","_userInteraction","nextItem","_cacheElementWidth","endOffset","wrapAroundRatio","paginatedIndex","_setFocusOnSelect","_flipIndex","withoutAnimation","_isItemOnFirstPage","_isItemOnLastPage","minScale","EventProcessor","scrollDown","isLeftMove","isRightMove","$gallery","$galleryblocks","firstMobilePageOffset","_getFirstPageOffset","applySearchAnimation","differenceY","_startingPositionY","_startingPositionX","latestX","latestY","galleryInstance","slideOptionsValue","processor","dxGalleryReportPreview","_animationClassName","currentBlockItem","nextBlockItem","initializeBlockItems","blockItems","diffperc","loopTest","currentBlockIndex","_getNextIndex","nextBlockIndex","_getItem","_setSwipeAnimation","_addAnimation","_restoreDefault","dxGallery","isUpdate","CSDateTime","createRangeItem","predefinedDateRanges","addDays","addMonths","addYears","DateRangeEditor","_hidePopup","_accessibilityDialogItems","_getStringValue","updateEndDate","_toParameterValue","ImagePainter","imageBase64","_getImageSize","_getImageCoordinate","StretchImage","Cover","ZoomImage","Squeeze","imageSize","MiddleCenter","MiddleLeft","MiddleRight","BottomLeft","BottomCenter","BottomRight","TopCenter","TopRight","_drawImage","SignaturePainter","hasPoints","lastX","_drawCircle","_drawPath","_lastX","_lastY","resetPoints","_drawAllPoints","Painter","_getContextPoint","drawCircle","drawPath","_pointerLeaveHandler","imageSizeMode","Normal","TopLeft","_setCanvasSize","initialSize","hasSignature","_addEvents","_removeEvents","_cleanCanvas","initialImage","initialAlignment","initialSizeMode","initialImageType","$child","initSize","PictureEditorToolbarItem","PictureEditorToolbarItemWithPopup","topElement","popupsOffset","PictureEditorActionProvider","_editorModel","_popupOptions","getEnumValues","openFileActionOptions","_initPopupOptions","crossOrigin","getImageBase64","PickImage","alignmentActive","brushItemActive","_getColorValues","Brush","brushIcon","clearItemOptions","Reset","PictureEditorModel","GESTURE_COVER_CLASS","ACTIVE_POPUP_CLASS","_getPopupContent","popupInstance","_initialImageType","_initialImage","_initialAlignment","_initialSizeMode","painterOptions","oldAction","changeActiveButton","customizeActionsCallback","createOpenFileAction","_loadImage","createSizingAction","createBrushAction","createResetItem","createClearItem","_wrapButtonAction","_takeFocus","_pointerCancelHandler","_releaseFocus","isUnderCursor","componentContent","imageParts","TrackBar","_setRangeStyles","_rangeStylesConfig","_$bar","_$range","_currentRatio","_needPreventAnimation","SLIDER_TOOLTIP_POSITION_ALIASES","SLIDER_TOOLTIP_DEFAULT_BOUNDARY_OFFSET","SliderTooltipPositionController","$sliderHandle","sliderClass","$slider","_fitIntoSlider","SliderTooltip","showMode","_attachToMarkup","_toggleShowModeClass","_renderContentText","formattedText","isHoverMode","SliderHandle","$sliderTooltip","_sliderTooltip","_updateTooltipOptions","_this$_sliderTooltip","tooltipOptions","_this$_sliderTooltip2","updateTooltipPosition","_this$_sliderTooltip3","_this$_sliderTooltip4","SLIDER_LABEL_CLASS","SLIDER_LABEL_POSITION_CLASS_PREFIX","SLIDER_VALIDATION_NAMESPACE","Slider","roundedValue","isLeftDirection","_valueStep","remainder","_getValueExponentLength","_roundToExponentLength","moveHandleRight","moveHandleLeft","showRange","_toggleValidationMessage","_renderLabels","_renderStartHandler","_renderAriaMinAndMax","focusInEvent","focusOutEvent","_repaintHandle","_renderInkWave","doRender","waveIndex","_itemWidthFunc","_renderRangeVisibility","_$handle","_renderHandleImpl","SLIDER_TOOLTIP_POSITION_CLASS_PREFIX","labelFormat","_$minLabel","_$maxLabel","pointerDownEventName","clickName","startAction","_activeHandle","_getActualValue","_actualValue","_itemWidthRatio","_feedbackDeferred","_startOffset","_swipePixelRatio","_isSingleValuePossible","offsetDirection","_changeValueOnSwipe","_updateHandlePosition","fitTooltipPosition","valueExponentLength","_setValueOnSwipe","_this$_actualValue","_callHandlerMethod","_fitTooltip","ReportViewer","viewerRef","Devexpres","PrivateRoutes","dashboardId","Error500","ErrorsLayout","ErrorsPage","IntlContext","ErrorKind","SKELETON_TYPE","isLiteralElement","literal","isArgumentElement","isNumberElement","isDateElement","isTimeElement","isSelectElement","isPluralElement","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","hourCycle","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","g1","g2","parseSign","parseConciseScientificAndEngineeringStem","stem","parseNotationOptions","signOpts","parseNumberSkeleton","tokens_1","g3","g4","g5","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","createLocation","hasNativeStartsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","codePoints","entries_1","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","parseArgument","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","bumpTo","typeStartPosition","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","stemAndOptions","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","hasDigits","nextCode","pruneLocation","SyntaxError","originalMessage","captureLocation","cacheDefault","serializerDefault","strategyDefault","monadic","computedValue","variadic","assemble","ObjectWithoutPrototypeCache","ErrorCode","strategies","PART_TYPE","FormatError","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isFormatXMLElementFn","currentPluralValue","els_1","varName","getDateTimeFormat","medium","value_1","formatFn","MISSING_INTL_API","getPluralRules","mergeLiteral","mergeConfigs","configs","createFastMemoizeCache","IntlErrorCode","IntlMessageFormat","overrideFormats","formatterCache","getAst","__parse","memoizedDefaultLocale","IntlError","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","FORMAT_ERROR","MessageFormatError","MissingTranslationError","MISSING_TRANSLATION","filterProps","allowlist","filtered","DEFAULT_INTL_CONFIG","defaultFormats","fallbackOnEmptyString","onWarn","getNamedFormat","CORE_DEFAULT_INTL_CONFIG","textComponent","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","messageDescriptor","defaultRichTextElements","msgId","getMessageFormat","NUMBER_FORMAT_OPTIONS","formatNumberToParts","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","getRelativeTimeFormat","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","dateStyle","formatTime","formatDateTimeRange","formatRange","formatDateToParts","formatTimeToParts","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","getListFormat","formatListToParts","ListFormat","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","getDisplayNames","DisplayNames","verifyConfigMessages","messagesContainString","createIntl","relativeTime","displayNames","createFormatters","resolvedConfig","$t","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","formatXMLElementFn","rawValues","coreFormatMessage","rawDefaultRichTextElements","coreIntl","coreCreateIntl","IntlProvider","intl","objA","objB","aKeys","bKeys","shallowEqual","allMessages","I18nProvider","ThemeModeComponent","ThemeMode","getParamName","ktName","modeParam","getMenuMode","defaultMode","dataTheme","getSystemMode","menuModeParam","activeMenuItem","setActiveMenuItem","flipImages","dataKTValue","matchMedia","initMode","getActiveMenuItem","activeItem","handleMenu","hander","MasterInit","App","AppRoutes","setupAxios","queryClient","initialIsOpen","checkValidServiceWorker"],"sourceRoot":""}